Path: blob/master/SonicMania/Objects/MMZ/Scarab.h
338 views
#ifndef OBJ_SCARAB_H1#define OBJ_SCARAB_H23#include "Game.h"45// Object Class6struct ObjectScarab {7RSDK_OBJECT8Hitbox hitboxBadnik;9Hitbox hitboxGrab;10uint16 aniFrames;11};1213// Entity Class14struct EntityScarab {15RSDK_ENTITY16StateMachine(state);17Vector2 startPos;18Vector2 moveOffset;19uint8 startDir;20int32 timer;21int32 playerTimers[PLAYER_COUNT];22Animator bodyAnimator;23Animator frontLegAnimator;24Animator backLegAnimator;25int32 amplitude;26uint8 childCount;27PlaneFilterTypes planeFilter;28uint8 drawGroupLow;29uint8 drawGroupHigh;30uint8 pullCount;31int8 moveDir;32uint8 grabbedPlayers;33};3435// Object Struct36extern ObjectScarab *Scarab;3738// Standard Entity Events39void Scarab_Update(void);40void Scarab_LateUpdate(void);41void Scarab_StaticUpdate(void);42void Scarab_Draw(void);43void Scarab_Create(void *data);44void Scarab_StageLoad(void);45#if GAME_INCLUDE_EDITOR46void Scarab_EditorDraw(void);47void Scarab_EditorLoad(void);48#endif49void Scarab_Serialize(void);5051// Extra Entity Functions52void Scarab_DebugSpawn(void);53void Scarab_DebugDraw(void);5455void Scarab_CheckPlayerCollisions(void);56void Scarab_HandleChildMove(void);57void Scarab_HandlePlayerGrab(void);58void Scarab_HandlePlayerRelease(void);5960void Scarab_State_Init(void);61void Scarab_State_Move(void);62void Scarab_State_Wait(void);6364#endif //! OBJ_SCARAB_H656667