23#ifndef M4_WSCRIPT_WS_LOAD_H
24#define M4_WSCRIPT_WS_LOAD_H
26#include "m4/m4_types.h"
27#include "m4/fileio/sys_file.h"
28#include "m4/mem/reloc.h"
29#include "m4/wscript/ws_machine.h"
33#define _WS_ASSET_MACH 0
34#define _WS_ASSET_SEQU 1
35#define _WS_ASSET_CELS 2
36#define _WS_ASSET_DATA 3
38#define CHUNK_MACH 0x4D414348
39#define CHUNK_SEQU 0x53455155
40#define CHUNK_DATA 0x44415441
41#define CHUNK_CELS 0x43454C53
43#define CHUNK_NECS 0x4E454353
44#define CHUNK_HCAM 0x4843414D
45#define CHUNK_UQES 0x55514553
46#define CHUNK_SLEC 0x534C4543
47#define CHUNK_ATAD 0x41544144
49#define MACH_NUM_STATES 0
52#define SEQU_NUM_VARS 0
53#define SEQU_SEQU_START 1
55#define DATA_REC_COUNT 0
56#define DATA_REC_SIZE 1
57#define DATA_REC_START 2
59#define MAX_ASSET_HASH 255
62 bool _wsloaderInitialized =
false;
63 char **_globalMACHnames =
nullptr;
64 char **_globalSEQUnames =
nullptr;
65 char **_globalDATAnames =
nullptr;
66 char **_globalCELSnames =
nullptr;
68 MemHandle *_globalMACHHandles =
nullptr;
69 int32 *_globalMACHoffsets =
nullptr;
70 MemHandle *_globalSEQUHandles =
nullptr;
71 int32 *_globalSEQUoffsets =
nullptr;
72 MemHandle *_globalDATAHandles =
nullptr;
73 int32 *_globalDATAoffsets =
nullptr;
74 MemHandle *_globalCELSHandles =
nullptr;
75 int32 *_globalCELSoffsets =
nullptr;
76 int32 *_globalCELSPaloffsets =
nullptr;
80bool ClearWSAssets(uint32 assetType, int32 minHash, int32 maxHash);
81void ShutdownWSAssets();
83bool LoadWSAssets(
const char *wsAssetName);
84bool LoadWSAssets(
const char *wsAssetName,
RGB8 *myPalette);
85int32 AddWSAssetCELS(
const char *wsAssetName, int32 hash,
RGB8 *myPalette);
86M4sprite *GetWSAssetSprite(
char *spriteName, uint32 hash, uint32 index,
M4sprite *mySprite,
bool *streamSeries);
88CCB *GetWSAssetCEL(uint32 hash, uint32 index,
CCB *myCCB);
89int32 GetWSAssetCELCount(uint32 hash);
90int32 GetWSAssetCELFrameRate(uint32 hash);
91int32 GetWSAssetCELPixSpeed(uint32 hash);
92int32 ws_get_sprite_width(uint32 hash, int32 index);
93int32 ws_get_sprite_height(uint32 hash, int32 index);
94MemHandle ws_GetSEQU(uint32 hash, int32 *numLocalVars, int32 *offset);
95MemHandle ws_GetMACH(uint32 hash, int32 *numStates, int32 *stateTableOffset, int32 *machInstrOffset);
96MemHandle ws_GetDATA(uint32 hash, uint32 index, int32 *rowOffset);
97int32 ws_GetDATACount(uint32 hash);
98bool ws_GetSSMaxWH(MemHandle ssHandle, int32 ssOffset, int32 *maxW, int32 *maxH);
101int32 LoadSpriteSeries(
const char *assetName, MemHandle *seriesHandle, int32 *celsOffset, int32 *palOffset,
RGB8 *myPalette);
102M4sprite *CreateSprite(MemHandle resourceHandle, int32 handleOffset, int32 index,
M4sprite *mySprite,
bool *streamSeries);
106bool ws_GetNextSSstreamCel(
Anim8 *anim8);
107void ws_CloseSSstream(
CCB *myCCB);
Definition: sys_file.h:47
Definition: database.h:28
Definition: ws_machine.h:118
Definition: ws_machine.h:102
Definition: m4_types.h:78