marioparty4/include/game/hsfanim.h
Dávid Balatoni b05b70d6b7
Fixed many bugs (#586)
* Fixed some includes

* Fix allocation bugs

* More fixes and trying to get 3D rendering done

* Fixed many bugs
2025-04-22 03:40:10 +02:00

149 lines
4.8 KiB
C

#ifndef GAME_HSFANIM_H
#define GAME_HSFANIM_H
#include "game/hsfformat.h"
#include "game/hsfman.h"
#include "game/animdata.h"
#include "version.h"
typedef struct model_data ModelData;
typedef struct particle_data ParticleData;
#ifdef TARGET_PC
typedef void (*ParticleDLCallFunc)(ParticleData *particle);
#endif
typedef void (*ParticleHook)(ModelData *model, ParticleData *particle, Mtx matrix);
typedef struct {
/* 0x00 */ s16 unk00;
/* 0x02 */ s16 unk02;
/* 0x04 */ s16 unk04;
/* 0x06 */ s16 unk06;
/* 0x08 */ Vec unk08;
/* 0x14 */ Vec unk14;
/* 0x20 */ float unk20;
/* 0x24 */ float unk24;
/* 0x28 */ float unk28;
/* 0x2C */ float unk2C;
/* 0x30 */ float unk30;
/* 0x34 */ Vec unk34;
/* 0x40 */ GXColor unk40;
} HsfanimStruct01; // Size 0x44
struct particle_data {
/* 0x00 */ s16 unk_00;
/* 0x02 */ s16 unk_02;
/* 0x04 */ Vec unk_04;
/* 0x04 */ Vec unk_10;
/* 0x1C */ void *unk_1C;
/* 0x20 */ s16 unk_20;
/* 0x22 */ s16 unk_22;
/* 0x24 */ float unk_24;
/* 0x28 */ float unk_28;
/* 0x2C */ u8 unk_2C;
/* 0x2D */ u8 unk_2D;
/* 0x2E */ s16 unk_2E;
/* 0x30 */ s16 unk_30;
/* 0x32 */ char unk_32[2];
/* 0x34 */ u32 unk_34;
/* 0x38 */ s32 unk_38;
/* 0x3C */ u32 unk_3C;
/* 0x40 */ s32 unk_40; // dlSize
/* 0x44 */ AnimData *unk_44;
/* 0x48 */ HsfanimStruct01 *unk_48;
/* 0x4C */ Vec *unk_4C;
/* 0x50 */ void *unk_50; // dlPtr
/* 0x54 */ ParticleHook unk_54;
}; // Size 0x58
typedef struct {
/* 0x00 */ s16 unk00;
/* 0x02 */ char unk02[2];
/* 0x04 */ float unk04;
/* 0x08 */ float unk08;
/* 0x0C */ float unk0C;
/* 0x10 */ Vec unk10;
/* 0x1C */ float unk1C;
/* 0x20 */ float unk20;
/* 0x24 */ float unk24;
/* 0x28 */ float unk28;
/* 0x2C */ s16 unk2C;
/* 0x2E */ GXColor unk2E[4];
/* 0x3E */ GXColor unk3E[4];
} HsfanimStruct00; // Size (min:0x4E, max:0x50)
typedef struct {
/* 0x00 */ u16 unk00;
/* 0x02 */ s16 unk02;
/* 0x04 */ s16 unk04;
/* 0x06 */ s16 unk06;
/* 0x08 */ float unk08;
/* 0x0C */ float unk0C;
/* 0x10 */ AnimData *unk10;
} Hu3DTexAnimDataStruct; // Size 0x14
typedef struct {
/* 0x00 */ u16 unk00;
/* 0x02 */ s16 unk02;
/* 0x04 */ Vec unk04;
/* 0x10 */ char unk10[0xC];
/* 0x1C */ Vec unk1C;
/* 0x28 */ char unk28[0xC];
/* 0x34 */ float unk34;
/* 0x38 */ float unk38;
/* 0x3C */ Mtx unk3C;
} Hu3DTexScrDataStruct; // Size 0x6C
void Hu3DAnimInit(void);
s16 Hu3DAnimCreate(void *arg0, s16 arg1, char *arg2);
s16 Hu3DAnimLink(s16 arg0, s16 arg1, char *arg2);
void Hu3DAnimKill(s16 arg0);
void Hu3DAnimModelKill(s16 arg0);
void Hu3DAnimAllKill(void);
void Hu3DAnimAttrSet(s16 arg0, u16 arg1);
void Hu3DAnimAttrReset(s16 arg0, s32 arg1);
void Hu3DAnimSpeedSet(s16 arg0, float arg1);
void Hu3DAnimBankSet(s16 arg0, s32 arg1);
void Hu3DAnmNoSet(s16 arg0, u16 arg1);
s32 Hu3DAnimSet(ModelData *arg0, HsfAttribute *arg1, s16 arg2);
void Hu3DAnimExec(void);
s16 Hu3DTexScrollCreate(s16 arg0, char *arg1);
void Hu3DTexScrollKill(s16 arg0);
void Hu3DTexScrollAllKill(void);
void Hu3DTexScrollPosSet(s16 arg0, float arg1, float arg2, float arg3);
void Hu3DTexScrollPosMoveSet(s16 arg0, float arg1, float arg2, float arg3);
void Hu3DTexScrollRotSet(s16 arg0, float arg1);
void Hu3DTexScrollRotMoveSet(s16 arg0, float arg1);
void Hu3DTexScrollPauseDisableSet(s16 arg0, s32 arg1);
s16 Hu3DParticleCreate(AnimData *arg0, s16 arg1);
void Hu3DParticleScaleSet(s16 arg0, float arg1);
void Hu3DParticleZRotSet(s16 arg0, float arg1);
void Hu3DParticleColSet(s16 arg0, u8 arg1, u8 arg2, u8 arg3);
void Hu3DParticleTPLvlSet(s16 arg0, float arg1);
void Hu3DParticleBlendModeSet(s16 arg0, u8 arg1);
void Hu3DParticleHookSet(s16 arg0, ParticleHook arg1);
void Hu3DParticleAttrSet(s16 arg0, u8 arg1);
void Hu3DParticleAttrReset(s16 arg0, u8 arg1);
void Hu3DParticleCntSet(s16 arg0, s16 arg1);
void Hu3DParticleAnimModeSet(s16 arg0, s16 arg1);
void Hu3DParManInit(void);
s16 Hu3DParManCreate(AnimData *arg0, s16 arg1, HsfanimStruct00 *arg2);
s16 Hu3DParManLink(s16 arg0, HsfanimStruct00 *arg1);
void Hu3DParManKill(s16 arg0);
void Hu3DParManAllKill(void);
void *Hu3DParManPtrGet(s16 arg0);
void Hu3DParManPosSet(s16 arg0, float arg1, float arg2, float arg3);
void Hu3DParManVecSet(s16 arg0, float arg1, float arg2, float arg3);
void Hu3DParManRotSet(s16 arg0, float arg1, float arg2, float arg3);
void Hu3DParManAttrSet(s16 arg0, s32 arg1);
void Hu3DParManAttrReset(s16 arg0, s32 arg1);
s16 Hu3DParManModelIDGet(s16 arg0);
void Hu3DParManTimeLimitSet(s16 arg0, s32 arg1);
void Hu3DParManVacumeSet(s16 arg0, float arg1, float arg2, float arg3, float arg4);
void Hu3DParManColorSet(s16 arg0, s16 arg1);
SHARED_SYM extern Hu3DTexAnimDataStruct Hu3DTexAnimData[256];
SHARED_SYM extern Hu3DTexScrDataStruct Hu3DTexScrData[16];
#endif