diff --git a/src/SB/Core/x/xAnim.h b/src/SB/Core/x/xAnim.h index 3025c0c2a..e84da8ed9 100644 --- a/src/SB/Core/x/xAnim.h +++ b/src/SB/Core/x/xAnim.h @@ -161,6 +161,13 @@ struct xAnimPlay void (*BeforeAnimMatrices)(xAnimPlay*, xQuat*, xVec3*, S32); }; +class AnimTableList { // size: 0xC +public: + char * name; // offset 0x0, size 0x4 + class xAnimTable * (* constructor)(); // offset 0x4, size 0x4 + unsigned int id; // offset 0x8, size 0x4 +}; + void xAnimInit(); void xAnimTempTransitionInit(U32 count); xAnimFile* xAnimFileNew(void* rawData, const char* name, U32 flags, xAnimFile** linkedList); diff --git a/src/SB/Game/zAssetTypes.cpp b/src/SB/Game/zAssetTypes.cpp index 0841ae140..ffae46263 100644 --- a/src/SB/Game/zAssetTypes.cpp +++ b/src/SB/Game/zAssetTypes.cpp @@ -8,6 +8,203 @@ #include #include +void* Curve_Read(void* param_1, U32 param_2, void* indata, U32 insize, U32* outsize); +void* ATBL_Read(void* param_1, U32 param_2, void* indata, U32 insize, U32* outsize); +void* RWTX_Read(void* param_1, U32 param_2, void* indata, U32 insize, U32* outsize); +void* Model_Read(void* param_1, U32 param_2, void* indata, U32 insize, U32* outsize); +void* BSP_Read(void* param_1, U32 param_2, void* indata, U32 insize, U32* outsize); +void* JSP_Read(void* param_1, U32 param_2, void* indata, U32 insize, U32* outsize); +void* SndInfoRead(void*, unsigned int, void*, unsigned int, unsigned int*); +void Model_Unload(void*, U32); +void BSP_Unload(void*, U32); +void JSP_Unload(void*, U32); +void Anim_Unload(void*, U32); +void TextureRW3_Unload(void*, U32); +void LightKit_Unload(void*, U32); +void MovePoint_Unload(void*, U32); + +static xJSPHeader sDummyEmptyJSP; + +static st_PACKER_ASSETTYPE assetTypeHandlers[78] = { + {'BSP ', 0, 0, BSP_Read, NULL, NULL, NULL, NULL, BSP_Unload, NULL}, + {'JSP ', 0, 0, JSP_Read, NULL, NULL, NULL, NULL, JSP_Unload, NULL}, + {'TXD '}, + {'MODL', 0, 0, Model_Read, NULL, NULL, NULL, NULL, Model_Unload, NULL}, + {'ANIM', 0, 0, NULL, NULL, NULL, NULL, NULL, Anim_Unload, NULL}, + {'RWTX', 0, 0, RWTX_Read, NULL, NULL, NULL, NULL, TextureRW3_Unload, NULL}, + {'LKIT', 0, 0, NULL, NULL, NULL, NULL, NULL, LightKit_Unload, NULL}, + {'CAM '}, + {'PLYR'}, + {'NPC '}, + {'ITEM'}, + {'PKUP'}, + {'TRIG'}, + {'SDF '}, + {'TEX '}, + {'TXT '}, + {'ENV '}, + {'ATBL', 0, 0, ATBL_Read, NULL, NULL, NULL, NULL, NULL, NULL}, + {'MINF'}, + {'PICK'}, + {'PLAT'}, + {'PEND'}, + {'MRKR'}, + {'MVPT', 0, 0, NULL, NULL, NULL, NULL, NULL, MovePoint_Unload, NULL}, + {'TIMR'}, + {'CNTR'}, + {'PORT'}, + {'SND '}, + {'SNDS'}, + {'GRUP'}, + {'MPHT'}, + {'SFX '}, + {'SNDI', 0, 0, SndInfoRead, NULL, NULL, NULL, NULL, NULL, NULL}, + {'HANG'}, + {'SIMP'}, + {'BUTN'}, + {'SURF'}, + {'DSTR'}, + {'BOUL'}, + {'MAPR'}, + {'GUST'}, + {'VOLU'}, + {'UI '}, + {'UIFT'}, + {'TEXT'}, + {'COND'}, + {'DPAT'}, + {'PRJT'}, + {'LOBM'}, + {'FOG '}, + {'LITE'}, + {'PARE'}, + {'PARS'}, + {'CSN '}, + {'CTOC'}, + {'CSNM'}, + {'EGEN'}, + {'ALST'}, + {'RAW '}, + {'LODT'}, + {'SHDW'}, + {'DYNA'}, + {'VIL '}, + {'VILP'}, + {'COLL'}, + {'PARP'}, + {'PIPT'}, + {'DSCO'}, + {'JAW '}, + {'SHRP'}, + {'FLY '}, + {'TRCK'}, + {'CRV ', 0, 0, Curve_Read, NULL, NULL, NULL, NULL, NULL, NULL}, + {'ZLIN'}, + {'DUPC'}, + {'SLID'}, + {'CRDT'}, +}; + +static HackModelRadius hackRadiusTable[3] = { { 0xFA77E6FAU, 20.0f }, + { 0x5BD0EDACU, 1000.0f }, + { 0xED21A1C6U, 50.0f } }; + +static char* jsp_shadow_hack_textures[5] = { + "beach_towel", "wood_board_Nails_singleV2", "wood_board_Nails_singleV3", + "glass_broken", "ground_path_alpha", +}; + +struct AnimTableList animTable[33] = { + { "ZNPC_AnimTable_Test", ZNPC_AnimTable_Test, 0 }, + { "ZNPC_AnimTable_Dutchman", ZNPC_AnimTable_Dutchman, 0 }, + { "ZNPC_AnimTable_Duplotron", ZNPC_AnimTable_Duplotron, 0 }, + { "ZNPC_AnimTable_Common", ZNPC_AnimTable_Common, 0 }, + { "ZNPC_AnimTable_BossPlankton", ZNPC_AnimTable_BossPlankton, 0 }, + { "ZNPC_AnimTable_BossSandy", ZNPC_AnimTable_BossSandy, 0 }, + { "ZNPC_AnimTable_SleepyTime", ZNPC_AnimTable_SleepyTime, 0 }, + { "ZNPC_AnimTable_BossSandyHead", ZNPC_AnimTable_BossSandyHead, 0 }, + { "ZNPC_AnimTable_Hammer", ZNPC_AnimTable_Hammer, 0 }, + { "ZNPC_AnimTable_TTSauce", ZNPC_AnimTable_TTSauce, 0 }, + { "ZNPC_AnimTable_KingJelly", ZNPC_AnimTable_KingJelly, 0 }, + { "ZNPC_AnimTable_Slick", ZNPC_AnimTable_Slick, 0 }, + { "ZNPC_AnimTable_TarTar", ZNPC_AnimTable_TarTar, 0 }, + { "ZNPC_AnimTable_Villager", ZNPC_AnimTable_Villager, 0 }, + { "ZNPC_AnimTable_BalloonBoy", ZNPC_AnimTable_BalloonBoy, 0 }, + { "ZNPC_AnimTable_Fodder", ZNPC_AnimTable_Fodder, 0 }, + { "ZNPC_AnimTable_Prawn", ZNPC_AnimTable_Prawn, 0 }, + { "ZNPC_AnimTable_Neptune", ZNPC_AnimTable_Neptune, 0 }, + { "ZNPC_AnimTable_BossSB1", ZNPC_AnimTable_BossSB1, 0 }, + { "ZNPC_AnimTable_BossSBobbyArm", ZNPC_AnimTable_BossSBobbyArm, 0 }, + { "ZNPC_AnimTable_Monsoon", ZNPC_AnimTable_Monsoon, 0 }, + { "ZNPC_AnimTable_ArfDog", ZNPC_AnimTable_ArfDog, 0 }, + { "ZNPC_AnimTable_ArfArf", ZNPC_AnimTable_ArfArf, 0 }, + { "ZNPC_AnimTable_BossSB2", ZNPC_AnimTable_BossSB2, 0 }, + { "ZNPC_AnimTable_Tiki", ZNPC_AnimTable_Tiki, 0 }, + { "ZNPC_AnimTable_Tubelet", ZNPC_AnimTable_Tubelet, 0 }, + { "ZNPC_AnimTable_Ambient", ZNPC_AnimTable_Ambient, 0 }, + { "ZNPC_AnimTable_GLove", ZNPC_AnimTable_GLove, 0 }, + { "ZNPC_AnimTable_LassoGuide", ZNPC_AnimTable_LassoGuide, 0 }, + { "ZNPC_AnimTable_Chuck", ZNPC_AnimTable_Chuck, 0 }, + { "ZNPC_AnimTable_Jelly", ZNPC_AnimTable_Jelly, 0 }, + { "ZNPC_AnimTable_SuperFriend", ZNPC_AnimTable_SuperFriend, 0 }, + { + "ZNPC_AnimTable_BossPatrick\0SB_run1L\0SB_run1R\0SC_run_kelpL\0Pat_run_rock_dryL\0Pat_run_rock_dryR\0\0Debug%02d", + ZNPC_AnimTable_BossPatrick, + 0, + }, +}; + +static xAnimTable* (*tableFuncList[48])() = { + zEntPlayer_AnimTable, + ZNPC_AnimTable_Common, + zPatrick_AnimTable, + zSandy_AnimTable, + ZNPC_AnimTable_Villager, + zSpongeBobTongue_AnimTable, + ZNPC_AnimTable_LassoGuide, + ZNPC_AnimTable_Hammer, + ZNPC_AnimTable_TarTar, + ZNPC_AnimTable_GLove, + ZNPC_AnimTable_Monsoon, + ZNPC_AnimTable_SleepyTime, + ZNPC_AnimTable_ArfDog, + ZNPC_AnimTable_ArfArf, + ZNPC_AnimTable_Chuck, + ZNPC_AnimTable_Tubelet, + ZNPC_AnimTable_Slick, + ZNPC_AnimTable_Ambient, + ZNPC_AnimTable_Tiki, + ZNPC_AnimTable_Fodder, + ZNPC_AnimTable_Duplotron, + ZNPC_AnimTable_Jelly, + ZNPC_AnimTable_Test, + ZNPC_AnimTable_Neptune, + ZNPC_AnimTable_KingJelly, + ZNPC_AnimTable_Dutchman, + ZNPC_AnimTable_Prawn, + ZNPC_AnimTable_BossSandy, + ZNPC_AnimTable_BossPatrick, + ZNPC_AnimTable_BossSB1, + ZNPC_AnimTable_BossSB2, + ZNPC_AnimTable_BossSBobbyArm, + ZNPC_AnimTable_BossPlankton, + zEntPlayer_BoulderVehicleAnimTable, + ZNPC_AnimTable_BossSandyHead, + ZNPC_AnimTable_BalloonBoy, + xEnt_AnimTable_AutoEventSmall, + ZNPC_AnimTable_SlickShield, + ZNPC_AnimTable_SuperFriend, + ZNPC_AnimTable_ThunderCloud, + XHUD_AnimTable_Idle, + ZNPC_AnimTable_NightLight, + ZNPC_AnimTable_HazardStd, + ZNPC_AnimTable_FloatDevice, + anim_table, // Cruise Bubble anim table based on PS2 DWARF data + ZNPC_AnimTable_BossSandyScoreboard, + zEntPlayer_TreeDomeSBAnimTable, + NULL, +}; + extern xJSPHeader* sTempJSP; extern xJSPHeader sDummyEmptyJSP; @@ -16,7 +213,18 @@ void zAssetShutdown() xSTShutdown(); } -#if 0 +void* Model_Read(void*, unsigned int, void*, unsigned int, unsigned int*) { + +} + +void* Curve_Read(void*, unsigned int, void*, unsigned int, unsigned int*) { + +} + +void Model_Unload(void*, U32) { + +} + // Ghidra's output here is not helpful void* BSP_Read(void* param_1, U32 param_2, void* indata, U32 insize, U32* outsize) { @@ -33,7 +241,7 @@ void* BSP_Read(void* param_1, U32 param_2, void* indata, U32 insize, U32* outsiz { // damn // chunk header info is austack in ghidra :/ - RwStreamReadChunkHeaderInfo(stream, chunkHeaderInfo); + RwStreamReadChunkHeaderInfo(stream, &chunkHeaderInfo); *outsize = 0; } else @@ -48,7 +256,10 @@ void* BSP_Read(void* param_1, U32 param_2, void* indata, U32 insize, U32* outsiz } return bsp; } -#endif + +void BSP_Unload(void*, U32) { + +} void* JSP_Read(void* param_1, U32 param_2, void* indata, U32 insize, U32* outsize) { @@ -65,7 +276,15 @@ void* JSP_Read(void* param_1, U32 param_2, void* indata, U32 insize, U32* outsiz return retjsp; } -void Anim_Unload(void*, U32) +void JSP_Unload(void*, U32) { + +} + +void* RWTX_Read(void*, unsigned int, void*, unsigned int, unsigned int*) { + +} + +void TextureRW3_Unload(void*, U32) { } @@ -74,9 +293,29 @@ U8 dummyEffectCB(U32, xAnimActiveEffect*, xAnimSingle*, void*) return 0; } +void* ATBL_Read(void*, unsigned int, void*, unsigned int, unsigned int*) { + +} + +void Anim_Unload(void*, U32) +{ +} + +void LightKit_Unload(void*, U32) +{ +} + +void MovePoint_Unload(void*, U32) +{ + +} + +void* SndInfoRead(void*, unsigned int, void*, unsigned int, unsigned int*) { + +} -U32 xSndPlay3D(U32 id, F32 vol, F32 pitch, U32 priority, U32 flags, - xEnt* ent, F32 radius, sound_category category, F32 delay) +U32 xSndPlay3D(U32 id, F32 vol, F32 pitch, U32 priority, U32 flags, xEnt* ent, F32 radius, + sound_category category, F32 delay) { return xSndPlay3D(id, vol, pitch, priority, flags, ent, radius / 4.0f, radius, category, delay); } diff --git a/src/SB/Game/zAssetTypes.h b/src/SB/Game/zAssetTypes.h index 022e676db..e583102e5 100644 --- a/src/SB/Game/zAssetTypes.h +++ b/src/SB/Game/zAssetTypes.h @@ -8,12 +8,37 @@ #include "xJSP.h" +#include "zEntCruiseBubble.h" +#include "zEntPlayerAnimationTables.h" +#include "xHudModel.h" +#include "zNPCTypeAmbient.h" +#include "zNPCTypeCommon.h" +#include "zNPCTypeBossPatrick.h" +#include "zNPCTypeBossPlankton.h" +#include "zNPCTypeBossSandy.h" +#include "zNPCTypeBossSB1.h" +#include "zNPCTypeBossSB2.h" +#include "zNPCTypeDuplotron.h" +#include "zNPCTypeDutchman.h" +#include "zNPCHazard.h" +#include "zNPCTypeKingJelly.h" +#include "zNPCTypePrawn.h" +#include "zNPCTypeRobot.h" +#include "zNPCTypeTest.h" +#include "zNPCTypeTiki.h" + struct RwMemory { U8* start; U32 length; }; +class HackModelRadius { +public: + U32 assetid; + F32 radius; +}; + void FootstepHackSceneEnter(); void jsp_shadow_hack(xJSPHeader* param_1); diff --git a/src/SB/Game/zEntCruiseBubble.h b/src/SB/Game/zEntCruiseBubble.h index 76c1bea03..2581cfd57 100644 --- a/src/SB/Game/zEntCruiseBubble.h +++ b/src/SB/Game/zEntCruiseBubble.h @@ -647,4 +647,6 @@ namespace cruise_bubble xMat4x3* get_missle_mat(); } // namespace cruise_bubble +xAnimTable* anim_table(); + #endif diff --git a/src/SB/Game/zEntPlayerAnimationTables.h b/src/SB/Game/zEntPlayerAnimationTables.h new file mode 100644 index 000000000..efea2b7c6 --- /dev/null +++ b/src/SB/Game/zEntPlayerAnimationTables.h @@ -0,0 +1,4 @@ +#include "xAnim.h" + +xAnimTable* zEntPlayer_BoulderVehicleAnimTable(); +xAnimTable* zEntPlayer_TreeDomeSBAnimTable(); diff --git a/src/SB/Game/zNPCHazard.h b/src/SB/Game/zNPCHazard.h index f36b49386..a00887b7a 100644 --- a/src/SB/Game/zNPCHazard.h +++ b/src/SB/Game/zNPCHazard.h @@ -251,6 +251,9 @@ void zNPCHazard_KillEffects(); S32 HAZ_ord_sorttest(void* vkey, void* vitem); void zNPCHazard_Timestep(F32 dt); void zNPCCommon_Hazards_RenderAll(S32 doOpaqueStuff); + +xAnimTable* ZNPC_AnimTable_HazardStd(); + NPCHazard* HAZ_Acquire(); S32 HAZ_AvailablePool(); void HAZ_Iterate(bool (*fp)(NPCHazard&, void*), void* context, S32 flag_filter); diff --git a/src/SB/Game/zNPCTypeAmbient.h b/src/SB/Game/zNPCTypeAmbient.h index 72946b43e..6189f074c 100644 --- a/src/SB/Game/zNPCTypeAmbient.h +++ b/src/SB/Game/zNPCTypeAmbient.h @@ -80,4 +80,8 @@ xFactoryInst* ZNPC_Create_Ambient(S32 who, RyzMemGrow* grow, void*); void ZNPC_Destroy_Ambient(xFactoryInst* inst); S32 JELY_grul_getAngry(xGoal* rawgoal, void* p1, en_trantype* trantype, F32 f, void* p2); +xAnimTable* ZNPC_AnimTable_Ambient(); +xAnimTable* ZNPC_AnimTable_Jelly(); +xAnimTable* ZNPC_AnimTable_Neptune(); + #endif diff --git a/src/SB/Game/zNPCTypeBoss.h b/src/SB/Game/zNPCTypeBoss.h index 16e5cd045..9965935b7 100644 --- a/src/SB/Game/zNPCTypeBoss.h +++ b/src/SB/Game/zNPCTypeBoss.h @@ -31,6 +31,8 @@ void ZNPC_Boss_Shutdown(); xFactoryInst* ZNPC_Create_Boss(S32 who, RyzMemGrow* grow, void*); void ZNPC_Destroy_Boss(xFactoryInst* inst); +xAnimTable* ZNPC_AnimTable_BossSBobbyArm(); + #define ANIM_COUNT 78 extern U32 g_hash_bossanim[ANIM_COUNT]; extern char* g_strz_bossanim[ANIM_COUNT]; diff --git a/src/SB/Game/zNPCTypeBossPatrick.h b/src/SB/Game/zNPCTypeBossPatrick.h index 00f1ef86f..47cc96ed4 100644 --- a/src/SB/Game/zNPCTypeBossPatrick.h +++ b/src/SB/Game/zNPCTypeBossPatrick.h @@ -293,4 +293,6 @@ struct zNPCGoalBossPatFudge : zNPCGoalCommon void zNPCBPatrick_AddBoundEntsToGrid(zScene*); void zNPCBPatrick_GameIsPaused(zScene*); +xAnimTable* ZNPC_AnimTable_BossPatrick(); + #endif diff --git a/src/SB/Game/zNPCTypeBossPlankton.h b/src/SB/Game/zNPCTypeBossPlankton.h index 6efefe25f..b0930a8f4 100644 --- a/src/SB/Game/zNPCTypeBossPlankton.h +++ b/src/SB/Game/zNPCTypeBossPlankton.h @@ -237,4 +237,6 @@ struct zNPCGoalBPlanktonBomb : zNPCGoalCommon S32 Process(en_trantype*, float, void*, xScene*); }; +xAnimTable * ZNPC_AnimTable_BossPlankton(); + #endif diff --git a/src/SB/Game/zNPCTypeBossSB1.h b/src/SB/Game/zNPCTypeBossSB1.h index 89c447eb1..34e55fe5f 100644 --- a/src/SB/Game/zNPCTypeBossSB1.h +++ b/src/SB/Game/zNPCTypeBossSB1.h @@ -100,4 +100,6 @@ struct zNPCGoalBossSB1Deflate : zNPCGoalCommon S32 Process(en_trantype* trantype, float dt, void* ctxt, xScene* scene); }; +xAnimTable* ZNPC_AnimTable_BossSB1(); + #endif diff --git a/src/SB/Game/zNPCTypeBossSB2.h b/src/SB/Game/zNPCTypeBossSB2.h index 408928ed1..d584223a8 100644 --- a/src/SB/Game/zNPCTypeBossSB2.h +++ b/src/SB/Game/zNPCTypeBossSB2.h @@ -278,4 +278,6 @@ struct zNPCGoalBossSB2Death : zNPCGoalCommon S32 Process(en_trantype*, F32, void*, xScene*); }; +xAnimTable* ZNPC_AnimTable_BossSB2(); + #endif diff --git a/src/SB/Game/zNPCTypeBossSandy.h b/src/SB/Game/zNPCTypeBossSandy.h index 0235fedb8..178bb7a47 100644 --- a/src/SB/Game/zNPCTypeBossSandy.h +++ b/src/SB/Game/zNPCTypeBossSandy.h @@ -176,7 +176,7 @@ struct zNPCBSandy : zNPCBoss virtual void SelfSetup(); // 8013e5ec entry=28 virtual void Damage(en_NPC_DAMAGE_TYPE damtype, xBase*, xVec3 const*); // 8014184c entry=32 virtual U32 AnimPick(S32 gid, en_NPC_GOAL_SPOT param_2, - xGoal* rawgoal); // 8013f1f8 entry=44 + xGoal* rawgoal); // 8013f1f8 entry=44 }; struct zNPCGoalBossSandyIdle : zNPCGoalCommon @@ -297,6 +297,10 @@ struct zNPCGoalBossSandyClothesline : zNPCGoalCommon void zNPCBSandy_AddBoundEntsToGrid(zScene*); void zNPCBSandy_GameIsPaused(zScene*); +xAnimTable* ZNPC_AnimTable_BossSandy(); +xAnimTable* ZNPC_AnimTable_BossSandyHead(); +xAnimTable* ZNPC_AnimTable_BossSandyScoreboard(); + U32 HeadNotShocked(xAnimTransition*, xAnimSingle*, void*); U32 HeadIsShocked(xAnimTransition*, xAnimSingle*, void*); U32 HeadNotCarried(xAnimTransition*, xAnimSingle*, void*); diff --git a/src/SB/Game/zNPCTypeCommon.h b/src/SB/Game/zNPCTypeCommon.h index af36bac10..1cb628024 100644 --- a/src/SB/Game/zNPCTypeCommon.h +++ b/src/SB/Game/zNPCTypeCommon.h @@ -641,6 +641,9 @@ void zNPCCommon_WonderReset(); void ZNPC_Common_Shutdown(); void NPCC_BuildStandardAnimTran(xAnimTable* table, char** namelist, S32* ourAnims, S32 idx_dflt, F32 blend); + +xAnimTable * ZNPC_AnimTable_Common(); +xAnimTable * ZNPC_AnimTable_LassoGuide(); S32 NPCC_NPCIsConversing(); void zNPCCommon_EjectPhlemOnPawz(); U32 xSndIsPlaying(U32 assetID, U32 parid); diff --git a/src/SB/Game/zNPCTypeDuplotron.h b/src/SB/Game/zNPCTypeDuplotron.h index d39fb3a5f..8d5624ba6 100644 --- a/src/SB/Game/zNPCTypeDuplotron.h +++ b/src/SB/Game/zNPCTypeDuplotron.h @@ -36,6 +36,7 @@ void zNPCDuplotron_ScenePostInit(); void ZNPC_Duplotron_Shutdown(); xFactoryInst* ZNPC_Create_Duplotron(S32 who, RyzMemGrow* grow, void*); void ZNPC_Destroy_Duplotron(xFactoryInst* inst); +xAnimTable* ZNPC_AnimTable_Duplotron(); void DUPO_KillEffects(); void DUPO_InitEffects(); diff --git a/src/SB/Game/zNPCTypeDutchman.h b/src/SB/Game/zNPCTypeDutchman.h index 313f2fc55..b5f383126 100644 --- a/src/SB/Game/zNPCTypeDutchman.h +++ b/src/SB/Game/zNPCTypeDutchman.h @@ -279,4 +279,6 @@ struct zNPCGoalDutchmanDeath : zNPCGoalCommon static xFactoryInst* create(S32 who, RyzMemGrow* grow, void* info); }; +xAnimTable* ZNPC_AnimTable_Dutchman(); + #endif diff --git a/src/SB/Game/zNPCTypeKingJelly.h b/src/SB/Game/zNPCTypeKingJelly.h index cb88e2f8f..336be168c 100644 --- a/src/SB/Game/zNPCTypeKingJelly.h +++ b/src/SB/Game/zNPCTypeKingJelly.h @@ -192,4 +192,6 @@ struct zNPCGoalKJDeath : zNPCGoalCommon } }; +xAnimTable* ZNPC_AnimTable_KingJelly(); + #endif diff --git a/src/SB/Game/zNPCTypePrawn.h b/src/SB/Game/zNPCTypePrawn.h index e44a5a9a7..cc52d5821 100644 --- a/src/SB/Game/zNPCTypePrawn.h +++ b/src/SB/Game/zNPCTypePrawn.h @@ -192,4 +192,6 @@ struct zNPCGoalPrawnDeath : zNPCGoalCommon } }; +xAnimTable* ZNPC_AnimTable_Prawn(); + #endif diff --git a/src/SB/Game/zNPCTypeRobot.h b/src/SB/Game/zNPCTypeRobot.h index 0645eae26..af03cb791 100644 --- a/src/SB/Game/zNPCTypeRobot.h +++ b/src/SB/Game/zNPCTypeRobot.h @@ -160,7 +160,6 @@ struct zNPCFodder : zNPCRobot { zNPCFodder(S32 myType) : zNPCRobot(myType) { - } void Stun(F32 stuntime); @@ -181,7 +180,6 @@ struct zNPCFodBomb : zNPCRobot zNPCFodBomb(S32 myType) : zNPCRobot(myType) { - } zNPCLassoInfo* PRIV_GetLassoData(); @@ -204,7 +202,6 @@ struct zNPCFodBzzt : zNPCRobot zNPCFodBzzt(S32 myType) : zNPCRobot(myType) { - } zNPCLassoInfo* PRIV_GetLassoData(); @@ -221,7 +218,6 @@ struct zNPCChomper : zNPCRobot zNPCChomper(S32 myType) : zNPCRobot(myType) { - } zNPCLassoInfo* PRIV_GetLassoData(); @@ -234,7 +230,6 @@ struct zNPCCritter : zNPCRobot { zNPCCritter(S32 myType) : zNPCRobot(myType) { - } zNPCLassoInfo* PRIV_GetLassoData(); @@ -247,7 +242,6 @@ struct zNPCHammer : zNPCRobot { zNPCHammer(S32 myType) : zNPCRobot(myType) { - } void Init(xEntAsset*); @@ -259,7 +253,6 @@ struct zNPCTarTar : zNPCRobot { zNPCTarTar(S32 myType) : zNPCRobot(myType) { - } void Reset(); @@ -271,7 +264,6 @@ struct zNPCGlove : zNPCRobot { zNPCGlove(S32 myType) : zNPCRobot(myType) { - } void Init(xEntAsset*); @@ -282,7 +274,6 @@ struct zNPCMonsoon : zNPCRobot { zNPCMonsoon(S32 myType) : zNPCRobot(myType) { - } U8 FoulWeather(float); @@ -309,7 +300,6 @@ struct zNPCSleepy : zNPCRobot zNPCSleepy(S32 myType) : zNPCRobot(myType) { - } void Reset(); @@ -330,7 +320,6 @@ struct zNPCArfDog : zNPCRobot zNPCArfDog(S32 myType) : zNPCRobot(myType) { - } zNPCLassoInfo* PRIV_GetLassoData(); @@ -348,7 +337,6 @@ struct zNPCArfArf : zNPCRobot zNPCArfArf(S32 myType) : zNPCRobot(myType) { - } zMovePoint* GetTelepoint(S32 unk); @@ -363,7 +351,6 @@ struct zNPCChuck : zNPCRobot zNPCChuck(S32 myType) : zNPCRobot(myType) { - } // 0x00000000; // 0x0 @@ -463,7 +450,6 @@ struct zNPCTubelet : zNPCRobot zNPCTubelet(S32 myType) : zNPCRobot(myType) { - } void ParseINI(); @@ -494,7 +480,6 @@ struct zNPCTubeSlave : zNPCRobot zNPCTubeSlave(S32 myType) : zNPCRobot(myType) { - } U8 PhysicsFlags() const; @@ -525,7 +510,6 @@ struct zNPCSlick : zNPCRobot zNPCSlick(S32 myType) : zNPCRobot(myType) { - } zNPCSlick* YouOwnSlipFX(); @@ -558,6 +542,22 @@ void ZNPC_Destroy_Robot(xFactoryInst* inst); void ROBO_KillEffects(); void zNPCFodBzzt_ResetDanceParty(); void ROBO_InitEffects(); +xAnimTable* ZNPC_AnimTable_ArfArf(); +xAnimTable* ZNPC_AnimTable_ArfDog(); +xAnimTable* ZNPC_AnimTable_Chuck(); +xAnimTable* ZNPC_AnimTable_Fodder(); +xAnimTable* ZNPC_AnimTable_GLove(); +xAnimTable* ZNPC_AnimTable_Hammer(); +xAnimTable* ZNPC_AnimTable_Monsoon(); +xAnimTable* ZNPC_AnimTable_ThunderCloud(); +xAnimTable* ZNPC_AnimTable_SleepyTime(); +xAnimTable* ZNPC_AnimTable_NightLight(); +xAnimTable* ZNPC_AnimTable_Slick(); +xAnimTable* ZNPC_AnimTable_SlickShield(); +xAnimTable* ZNPC_AnimTable_TarTar(); +xAnimTable* ZNPC_AnimTable_TTSauce(); +xAnimTable* ZNPC_AnimTable_Tubelet(); +xAnimTable* ZNPC_AnimTable_FloatDevice(); S32 DUMY_grul_returnToIdle(xGoal*, void*, en_trantype*, F32, void*); S32 xEntIsEnabled(xEnt* ent); diff --git a/src/SB/Game/zNPCTypeTiki.h b/src/SB/Game/zNPCTypeTiki.h index 72a7eadd0..79e76f518 100644 --- a/src/SB/Game/zNPCTypeTiki.h +++ b/src/SB/Game/zNPCTypeTiki.h @@ -69,4 +69,6 @@ void zNPCTiki_ExplodeFX(zNPCTiki* tiki); xFactoryInst* ZNPC_Create_Tiki(S32 who, RyzMemGrow* grow, void*); void ZNPC_Destroy_Tiki(xFactoryInst* inst); +xAnimTable* ZNPC_AnimTable_Tiki(); + #endif diff --git a/src/SB/Game/zNPCTypeVillager.h b/src/SB/Game/zNPCTypeVillager.h index 223560c46..11f03a669 100644 --- a/src/SB/Game/zNPCTypeVillager.h +++ b/src/SB/Game/zNPCTypeVillager.h @@ -176,9 +176,12 @@ struct zNPCNewsFishTV : zNPCVillager U8 ColChkFlags() const; }; +xAnimTable* ZNPC_AnimTable_Villager(); xAnimTable* ZNPC_AnimTable_Villager(xAnimTable* callerTable); void zNPCBubbleBuddy_AlphaUpdate(F32 dt); +xAnimTable* ZNPC_AnimTable_BalloonBoy(); xAnimTable* ZNPC_AnimTable_BalloonBoy(xAnimTable* callerTable); +xAnimTable* ZNPC_AnimTable_SuperFriend(); xAnimTable* ZNPC_AnimTable_SuperFriend(xAnimTable* callerTable); void FOLK_KillEffects(); void FOLK_InitEffects();