22#ifndef M4_GRAPHICS_GR_SERIES_H
23#define M4_GRAPHICS_GR_SERIES_H
25#include "m4/m4_types.h"
26#include "m4/wscript/ws_machine.h"
30constexpr uint32 SERIES_FORWARD = 0;
31constexpr uint32 SERIES_PINGPONG = 1;
32constexpr uint32 SERIES_BACKWARD = 2;
33constexpr uint32 SERIES_RANDOM = 4;
34constexpr uint32 SERIES_NO_TOSS = 8;
35constexpr uint32 SERIES_STICK = 16;
36constexpr uint32 SERIES_LOOP_TRIGGER = 32;
37constexpr uint32 SERIES_LOAD_PALETTE = 64;
38constexpr uint32 SERIES_HORZ_FLIP = 128;
41 HASH_SERIES_PLAY_MACHINE = 0,
42 HASH_SERIES_SHOW_MACHINE = 1,
43 HASH_STREAM_MACHINE = 6
53 void play(
const char *seriesName,
frac16 layer, uint32 flags = 0,
54 int16 triggerNum = -1, int32 frameRate = 6, int32 loopCount = 0, int32 s = 100,
55 int32 x = 0, int32 y = 0, int32 firstFrame = 0, int32 lastFrame = -1);
56 void show(
const char *seriesName,
frac16 layer, uint32 flags = 0,
57 int16 triggerNum = -1, int32 duration = -1, int32 index = 0, int32 s = 100,
58 int32 x = 0, int32 y = 0);
59 void show(
const char *series1,
const char *series2,
int layer);
62 operator bool()
const {
63 return _series !=
nullptr;
66 machine *&operator[](uint idx) {
67 return (idx == 0) ? _series : _seriesS;
71 return _series->myAnim8->myRegs;
74 static void series_play(
const char *seriesName,
frac16 layer, uint32 flags = 0,
75 int16 triggerNum = -1, int32 frameRate = 6, int32 loopCount = 0, int32 s = 100,
76 int32 x = 0, int32 y = 0, int32 firstFrame = 0, int32 lastFrame = -1);
77 static void series_show(
const char *seriesName,
frac16 layer, uint32 flags = 0,
78 int16 triggerNum = -1, int32 duration = -1, int32 index = 0, int32 s = 100,
79 int32 x = 0, int32 y = 0);
82int32 series_load(
const char *seriesName, int32 assetIndex = -1,
RGB8 *myPal =
nullptr);
83void series_unload(int32 assetIndex);
84bool series_draw_sprite(int32 spriteHash, int32 index,
Buffer *destBuff, int32 x, int32 y);
86bool series_show_frame(int32 spriteHash, int32 index,
Buffer *destBuff, int32 x, int32 y);
87machine *series_place_sprite(
const char *seriesName, int32 index, int32 x, int32 y, int32 s, int32 layer);
88machine *series_show_sprite(
const char *seriesName, int32 index, int32 layer);
90machine *series_play(
const char *seriesName,
frac16 layer, uint32 flags = 0,
91 int16 triggerNum = -1, int32 frameRate = 6, int32 loopCount = 0, int32 s = 100,
92 int32 x = 0, int32 y = 0, int32 firstFrame = 0, int32 lastFrame = -1);
93machine *series_simple_play(
const char *seriesName,
frac16 layer,
bool stickWhenDone);
95machine *series_show(
const char *seriesName,
frac16 layer, uint32 flags = 0,
96 int16 triggerNum = -1, int32 duration = -1, int32 index = 0, int32 s = 100,
97 int32 x = 0, int32 y = 0);
99machine *series_ranged_play(
const char *seriesName, int32 loopCount, uint32 flags,
100 int32 firstFrame, int32 lastFrame, int32 s, uint32 layer,
101 int32 frameRate, int32 trigger = -1,
bool stick_when_done =
false);
102machine *series_ranged_play_xy(
const char *seriesName,
int loopCount,
int flags,
103 int firstFrame,
int lastFrame,
int x,
int y,
int s,
int layer,
104 int frameRate,
int trigger = -1,
bool stick_when_done =
false);
105machine *series_plain_play(
const char *seriesName, int32 loopCount, uint32 flags,
106 int32 s, int32 layer, int32 frameRate, int32 trigger = -1,
bool stickWhenDone =
false);
107machine *series_play_xy(
const char *seriesName,
int loopCount,
int flags,
108 int x,
int y,
int scale,
int layer,
int frameRate,
int trigger);
110machine *series_stream(
const char *seriesName, int32 frameRate, int32 layer, int32 trigger);
111bool series_stream_break_on_frame(
machine *m, int32 frameNum, int32 trigger);
112void series_set_frame_rate(
machine *m, int32 newFrameRate);
Definition: database.h:28
intptr frac16
Definition: m4_types.h:45
Definition: m4_types.h:54
Definition: m4_types.h:78
Definition: gr_series.h:49
Definition: ws_machine.h:156