Path: blob/master/SonicMania/Objects/OOZ/MeterDroid.h
338 views
#ifndef OBJ_METERDROID_H1#define OBJ_METERDROID_H23#include "Game.h"45// Object Class6struct ObjectMeterDroid {7RSDK_OBJECT8TABLE(int32 debrisSpeeds[21],9{ 5, 0, 0, -0x20000, -0x28000, 1, 0, 0x20000, -0x20000, 2, 0, -0x28000, -0x10000, 3, 0, 0x28000, -0x10000, 4, 0, 0x10000, 0x10000 });10Hitbox hitboxBoss;11Hitbox hitboxPropellor;12Hitbox hitboxWrench;13int32 boundsL;14int32 boundsR;15int32 boundsM;16int32 boundsT;17int32 boundsB;18uint16 sfxHit;19uint16 sfxExplosion;20uint16 sfxDestroy;21uint16 sfxToss;22uint16 sfxGrab;23uint16 sfxValve;24uint16 sfxWrench;25uint16 aniFrames;26};2728// Entity Class29struct EntityMeterDroid {30RSDK_ENTITY31StateMachine(state);32StateMachine(stateDraw);33int32 timer;34int32 invincibilityTimer;35int32 health;36int32 bgFadeAmount;37Vector2 origin;38Vector2 targetPos;39Vector2 moveVel;40Vector2 wrenchPos;41Vector2 wrenchMoveVel;42Vector2 wrenchMoveInc;43int32 moveRadius;44EntityValve *targetValve;45Animator mainAnimator;46Animator propellorAnimator;47Animator armAnimator;48Animator wrenchAnimator;49};5051// Object Struct52extern ObjectMeterDroid *MeterDroid;5354// Standard Entity Events55void MeterDroid_Update(void);56void MeterDroid_LateUpdate(void);57void MeterDroid_StaticUpdate(void);58void MeterDroid_Draw(void);59void MeterDroid_Create(void *data);60void MeterDroid_StageLoad(void);61#if GAME_INCLUDE_EDITOR62void MeterDroid_EditorDraw(void);63void MeterDroid_EditorLoad(void);64#endif65void MeterDroid_Serialize(void);6667// Extra Entity Functions68void MeterDroid_CheckPlayerCollisions_NoWrench_UseFlip(void);69void MeterDroid_CheckPlayerCollisions_Wrench_NoFlip(void);70void MeterDroid_CheckPlayerCollisions_NoWrench_NoFlip(void);71void MeterDroid_Hit(void);72void MeterDroid_Explode(void);73void MeterDroid_FindTargetValve(void);74void MeterDroid_PopPlatforms(void);7576void MeterDroid_Draw_Normal(void);77void MeterDroid_Draw_SpinningValve(void);78void MeterDroid_Draw_ThrownWrench(void);7980void MeterDroid_State_Init(void);81void MeterDroid_State_StartFight(void);82void MeterDroid_State_Idle(void);83void MeterDroid_State_PickMoveDir(void);84void MeterDroid_State_MoveRight(void);85void MeterDroid_State_MoveLeft(void);86void MeterDroid_State_ThrowWrench(void);87void MeterDroid_State_ThrownWrench(void);88void MeterDroid_State_CaughtWrench(void);89void MeterDroid_State_MoveToValve(void);90void MeterDroid_State_MoveIntoBG(void);91void MeterDroid_State_TurningValve(void);92void MeterDroid_State_StopTurningValve(void);93void MeterDroid_State_WatchPlatformsPopUp(void);94void MeterDroid_State_Destroyed(void);95void MeterDroid_State_FinishAct(void);9697#endif //! OBJ_METERDROID_H9899100