Path: blob/master/SonicMania/Objects/FBZ/BigSqueeze.h
338 views
#ifndef OBJ_BIGSQUEEZE_H1#define OBJ_BIGSQUEEZE_H23#include "Game.h"45typedef enum {6BIGSQUEEZE_MANAGER,7BIGSQUEEZE_BOSS,8BIGSQUEEZE_CRUSHER_L,9BIGSQUEEZE_CRUSHER_R,10} BigSqueezeTypes;1112// Object Class13struct ObjectBigSqueeze {14RSDK_OBJECT15TABLE(int32 prongDebrisInfo[10], { 3, 12, -0x20000, -0x10000, 13, 0, -0x10000, 14, 0x20000, -0x10000 });16TABLE(int32 domeDebrisInfo[13], { 4, 8, -0x20000, -0x10000, 9, -0x10000, -0x10000, 10, 0x10000, -0x10000, 11, 0x20000, -0x10000 });17TABLE(int32 baseDebrisInfo[25], { 8, 0, -0x20000, -0x10000, 1, -0x10000, -0x10000, 2, 0x10000, -0x10000, 3, 0x20000, -0x10000, 4, -0x20000,18-0x8000, 5, -0x10000, -0x8000, 6, 0x10000, -0x8000, 7, 0x20000, -0x8000 });19int32 crusherX[4];20bool32 isCrushing;21int32 crushTimer;22int32 boundsB;23uint16 sfxBossHit;24uint16 sfxExplosion2;25uint16 sfxMagnet;26uint16 sfxOrbinaut;27uint16 aniFrames;28};2930// Entity Class31struct EntityBigSqueeze {32RSDK_ENTITY33StateMachine(state);34StateMachine(stateDraw);35BigSqueezeTypes type;36int32 setupTimer;37int32 invincibilityTimer;38int32 timer;39EntityEggman *eggman;40bool32 invincible;41Animator animator;42Animator domeAnimator;43Animator prongsAnimator;44Animator wheelAnimator;45Animator electricAnimator;46Hitbox hitbox;47};4849// Object Struct50extern ObjectBigSqueeze *BigSqueeze;5152// Standard Entity Events53void BigSqueeze_Update(void);54void BigSqueeze_LateUpdate(void);55void BigSqueeze_StaticUpdate(void);56void BigSqueeze_Draw(void);57void BigSqueeze_Create(void *data);58void BigSqueeze_StageLoad(void);59#if GAME_INCLUDE_EDITOR60void BigSqueeze_EditorDraw(void);61void BigSqueeze_EditorLoad(void);62#endif63void BigSqueeze_Serialize(void);6465// Extra Entity Functions66bool32 BigSqueeze_SfxCheck_Rumble(void);6768void BigSqueeze_HandleWallCollisions(void);69void BigSqueeze_CheckPlayerCollisions_Vulnerable(void);70void BigSqueeze_CheckPlayerCollisions_Electrified(void);71void BigSqueeze_Hit(void);72void BigSqueeze_Explode(void);7374void BigSqueeze_HandleBossMovement(void);75void BigSqueeze_SpawnDebris(int32 *debrisInfo);7677void BigSqueeze_Draw_Boss(void);78void BigSqueeze_Draw_Crusher(void);7980void BigSqueeze_StateManager_SetupIntro(void);81void BigSqueeze_StateManager_SetupEggman(void);82void BigSqueeze_StateManager_SetupArena(void);83void BigSqueeze_StateManager_SetupBoss(void);8485void BigSqueeze_StateBoss_Idle(void);86void BigSqueeze_StateBoss_Electrified(void);87void BigSqueeze_StateBoss_Destroyed(void);88void BigSqueeze_StateBoss_DropSignPost(void);89void BigSqueeze_StateManager_HandleOutro(void);9091void BigSqueeze_StateManager_HandleBoss(void);9293void BigSqueeze_StateCrusher_BeginCrushing(void);94void BigSqueeze_StateCrusher_Crushing(void);9596#endif //! OBJ_BIGSQUEEZE_H979899