Path: blob/master/SonicMania/Objects/MSZ/DBTower.h
338 views
#ifndef OBJ_DBTOWER_H1#define OBJ_DBTOWER_H23#include "Game.h"45#define DBTOWER_SEGMENT_COUNT (4)67// Object Class8struct ObjectDBTower {9RSDK_OBJECT10Hitbox hitboxSegment;11bool32 defeated;12uint16 sfxRocketJet;13uint16 sfxHit;14uint16 sfxExplosion2;15uint16 sfxExplosion3;16uint16 sfxBumper3;17uint16 sfxAssemble;18uint16 sfxRocketJet2;19uint16 sfxRockemSockem;20uint16 aniFrames;21};2223// Entity Class24struct EntityDBTower {25RSDK_ENTITY26StateMachine(state);27int32 timer;28int32 invincibilityTimer;29int32 health;30Vector2 originPos;31Vector2 bodyPositions[DBTOWER_SEGMENT_COUNT];32int32 segmentUnused1[DBTOWER_SEGMENT_COUNT];33int32 segmentUnused2[DBTOWER_SEGMENT_COUNT];34int32 segmentUnused3[DBTOWER_SEGMENT_COUNT];35int32 bodyAngles[DBTOWER_SEGMENT_COUNT];36int32 wobbleAngle;37int32 wobbleAngleVel;38int32 segmentOffsetY;39int32 xOffsetAngle;40uint8 connectedSegmentCount;41Animator *segmentAnimators[DBTOWER_SEGMENT_COUNT];42uint8 playerTimers[PLAYER_COUNT];43Animator headAnimator;44Animator bodyAnimator;45};4647// Object Struct48extern ObjectDBTower *DBTower;4950// Standard Entity Events51void DBTower_Update(void);52void DBTower_LateUpdate(void);53void DBTower_StaticUpdate(void);54void DBTower_Draw(void);55void DBTower_Create(void *data);56void DBTower_StageLoad(void);57#if GAME_INCLUDE_EDITOR58void DBTower_EditorDraw(void);59void DBTower_EditorLoad(void);60#endif61void DBTower_Serialize(void);6263// Extra Entity Functions64void DBTower_CheckPlayerCollisions_Head(void);65void DBTower_Explode(void);6667void DBTower_State_SetupArena(void);68#if MANIA_USE_PLUS69void DBTower_State_Setup_Encore(void);70#endif71void DBTower_State_HandleBoss(void);72void DBTower_State_Destroyed(void);73void DBTower_State_Finish(void);74#if MANIA_USE_PLUS75void DBTower_State_SpawnSignPost(void);76#endif7778void DBTower_CheckPlayerCollisions_Body(void);79void DBTower_State_BodyBouncing(void);80void DBTower_State_BodyRolling(void);8182#endif //! OBJ_DBTOWER_H838485