diff --git a/KAIN2/Game/FX.H b/KAIN2/Game/FX.H index 56b6cdabb..a14d50f66 100644 --- a/KAIN2/Game/FX.H +++ b/KAIN2/Game/FX.H @@ -110,7 +110,7 @@ struct _FXParticle // hashcode: 0xDD6F143E (dec: -579922882) unsigned char type; // size=0, offset=13 short lifeTime; // size=0, offset=14 struct TextureMT3* texture; // size=16, offset=16 - void* fxprim_modify_process; // size=0, offset=20 + void (*fxprim_modify_process)(struct _FX_PRIM* fxPrim, struct _Instance* instance, struct _FXParticle* particle, struct _FXTracker* fxTracker); // size=0, offset=20 void* fxprim_process; // size=0, offset=24 short size; // size=0, offset=28 short primLifeTime; // size=0, offset=30 diff --git a/KAIN2/Game/PHYSOBS.C b/KAIN2/Game/PHYSOBS.C index 842627c50..f12e06329 100644 --- a/KAIN2/Game/PHYSOBS.C +++ b/KAIN2/Game/PHYSOBS.C @@ -941,7 +941,7 @@ void InitPhysicalObject(struct _Instance* instance, struct GameTracker* gameTrac switchProp->startAnim = 0; } G2EmulationInstanceSetAnimation(instance, 0, switchProp->startAnim, 0, 0); - G2EmulationInstanceInitSection(instance, 0, &PhysobAnimCallback, instance); + G2EmulationInstanceInitSection(instance, 0, PhysobAnimCallback, instance); if (switchProp->Class == 7) { interact->Properties.family = 1024; diff --git a/KAIN2/Game/STATE.C b/KAIN2/Game/STATE.C index c51ea36f8..0e9a1027f 100644 --- a/KAIN2/Game/STATE.C +++ b/KAIN2/Game/STATE.C @@ -1011,7 +1011,7 @@ void G2EmulationSetTotalSections(struct __CharacterState* In, short Total) G2EmulationInstanceSetTotalSections(In->CharacterInstance, In->TotalSections); } -void G2EmulationInstanceInitSection(struct _Instance* instance, int CurrentSection, void* callback, void* data) +void G2EmulationInstanceInitSection(struct _Instance* instance, int CurrentSection, long (*callback)(struct _G2Anim_Type* anim, int sectionID, enum _G2AnimCallbackMsg_Enum message, long messageDataA, long messageDataB, void* data), void* data) { struct _G2AnimSection_Type* animSection; diff --git a/KAIN2/Game/STATE.H b/KAIN2/Game/STATE.H index 27c300a8b..f5e66243e 100644 --- a/KAIN2/Game/STATE.H +++ b/KAIN2/Game/STATE.H @@ -195,7 +195,7 @@ extern void G2EmulationInstanceSetTotalSections(struct _Instance *instance, shor extern void G2EmulationSetTotalSections(struct __CharacterState *In, short Total); // 0x800723D4 -extern void G2EmulationInstanceInitSection(struct _Instance *instance, int CurrentSection, void *callback, void *data); // 0x80072404 +extern void G2EmulationInstanceInitSection(struct _Instance *instance, int CurrentSection, long (*callback)(struct _G2Anim_Type* anim, int sectionID, enum _G2AnimCallbackMsg_Enum message, long messageDataA, long messageDataB, void* data), void *data); // 0x80072404 extern void G2EmulationSetInterpController_Vector(struct _Instance *instance, long segment, long type, struct _G2SVector3_Type *vec, int Frames, int Data); // 0x80072428