Path: blob/master/SonicMania/Objects/TMZ/TurboTurtle.h
338 views
#ifndef OBJ_TURBOTURTLE_H1#define OBJ_TURBOTURTLE_H23#include "Game.h"45typedef enum {6TURBOTURTLE_FANDIR_TOP,7TURBOTURTLE_FANDIR_RIGHT,8TURBOTURTLE_FANDIR_LEFT,9} TurboTurtleFanDirs;1011// Object Class12struct ObjectTurboTurtle {13RSDK_OBJECT14Hitbox hitboxBadnik;15uint16 aniFrames;16uint16 sfxWalk;17uint16 sfxWalk2;18};1920// Entity Class21struct EntityTurboTurtle {22RSDK_ENTITY23StateMachine(state);24Vector2 startPos;25uint8 startDir;26int32 timer;27Animator animator;28uint8 currentSide;29uint16 stepTimer;30Hitbox hitboxFanT;31Hitbox hitboxFanR;32Hitbox hitboxFanL;33bool32 fanActiveTop;34bool32 rightFanActive;35bool32 leftFanActive;36uint16 stepCount;37uint8 initialSide;38bool32 stationary;39uint8 leftFanDir;40int32 leftFanDuration;41int32 leftFanStrength;42int32 leftFanLength;43uint8 rightFanDir;44int32 rightFanDuration;45int32 rightFanStrength;46int32 rightFanLength;47};4849// Object Struct50extern ObjectTurboTurtle *TurboTurtle;5152// Standard Entity Events53void TurboTurtle_Update(void);54void TurboTurtle_LateUpdate(void);55void TurboTurtle_StaticUpdate(void);56void TurboTurtle_Draw(void);57void TurboTurtle_Create(void *data);58void TurboTurtle_StageLoad(void);59#if GAME_INCLUDE_EDITOR60void TurboTurtle_EditorDraw(void);61void TurboTurtle_EditorLoad(void);62#endif63void TurboTurtle_Serialize(void);6465// Extra Entity Functions66void TurboTurtle_DebugSpawn(void);67void TurboTurtle_DebugDraw(void);6869void TurboTurtle_CheckPlayerCollisions(void);70void TurboTurtle_SetupState(void);71void TurboTurtle_HandleFans(void);72void TurboTurtle_HandleFanParticles(uint8 type, int32 strength, int32 length);7374bool32 TurboTurtle_SfxCheck_SmallFan(void);7576void TurboTurtle_State_Init(void);77void TurboTurtle_State_Walking(void);78void TurboTurtle_State_TurnFanUp(void);79void TurboTurtle_State_FanTop(void);80void TurboTurtle_State_TurnFanRight(void);81void TurboTurtle_State_FanRight(void);82void TurboTurtle_State_TurnFanLeft(void);83void TurboTurtle_State_FanLeft(void);8485#endif //! OBJ_TURBOTURTLE_H868788