SpaceCadetPinball/SpaceCadetPinball/loader.h

78 lines
1.7 KiB
C
Raw Normal View History

2020-10-25 15:17:26 +01:00
#pragma once
2020-11-08 16:37:59 +01:00
#include "gdrv.h"
#include "zdrv.h"
2020-10-25 15:17:26 +01:00
struct datFileStruct;
struct errorMsg
{
int Code;
const char* Message;
};
struct soundListStruct
{
char* WavePtr;
int GroupIndex;
int Loaded;
float Volume;
char* PtrToSmth;
};
2020-10-30 13:26:00 +01:00
struct __declspec(align(4)) visualKickerStruct
{
float Unknown1F;
float Unknown2F;
float Unknown3F;
float Unknown4F;
float Unknown5F;
float Unknown6F;
float Unknown7F;
int SoundIndex;
};
struct __declspec(align(4)) visualStruct
{
float Unknown1F;
float Unknown2F;
int FloatArrSizeDiv8Sub2;
float* FloatArr;
int SoundIndex2;
visualKickerStruct Kicker;
int Flag;
2020-10-30 13:26:00 +01:00
int SoundIndex4;
int SoundIndex3;
2020-11-08 16:37:59 +01:00
gdrv_bitmap8* Bitmap;
zmap_header_type* ZMap;
2020-10-30 13:26:00 +01:00
};
2020-10-25 15:17:26 +01:00
class loader
{
public:
static int error(int errorCode, int captionCode);
2020-10-30 13:26:00 +01:00
static void default_vsi(visualStruct* visual);
2020-10-25 15:17:26 +01:00
static int get_sound_id(int groupIndex);
2020-10-30 13:26:00 +01:00
static void unload();
static void loadfrom(datFileStruct* datFile);
2020-10-25 15:17:26 +01:00
static int query_handle(LPCSTR lpString);
static short query_visual_states(int groupIndex);
2020-10-30 13:26:00 +01:00
static int material(int groupIndex, visualStruct* visual);
static int kicker(int groupIndex, visualKickerStruct* kicker);
static int state_id(int groupIndex, int groupIndexOffset);
static int query_visual(int groupIndex, int groupIndexOffset, visualStruct* visual);
2020-10-25 15:17:26 +01:00
static char* query_name(int groupIndex);
static float* query_float_attribute(int groupIndex, int groupIndexOffset, int firstValue);
2020-10-30 13:26:00 +01:00
static __int16* query_iattribute(int groupIndex, int firstValue, int* arraySize);
static double play_sound(int soundIndex);
2020-10-25 15:17:26 +01:00
static datFileStruct* loader_table;
private:
static errorMsg loader_errors[];
2020-10-25 15:17:26 +01:00
static datFileStruct* sound_record_table;
static int sound_count;
static int loader_sound_count;
static soundListStruct sound_list[65];
};