Path: blob/master/SonicMania/Objects/MMZ/EggPistonsMKII.h
338 views
#ifndef OBJ_EGGPISTONSMKII_H1#define OBJ_EGGPISTONSMKII_H23#include "Game.h"45typedef enum {6EGGPISTON_PISTON,7EGGPISTON_CONTROL,8EGGPISTON_EMITTER,9EGGPISTON_BARRIER,10EGGPISTON_PLASMABALL,11EGGPISTON_ALARM,12} EggPistonMKIITypes;1314// Object Class15struct ObjectEggPistonsMKII {16RSDK_OBJECT17int32 invincibilityTimer;18int32 health;19int32 alarmAngle;20int32 alarmTimer;21EntityEggPistonsMKII *controller;22EntityEggPistonsMKII *pistons[5];23uint8 pistonCount;24uint8 isPhase2;25uint8 pistonID;26uint16 aniFrames;27uint16 eggmanFrames;28uint16 sfxHit;29uint16 sfxWall;30uint16 sfxElectrify;31uint16 sfxExplosion;32uint16 sfxAlarm;33};3435// Entity Class36struct EntityEggPistonsMKII {37RSDK_ENTITY38StateMachine(state);39StateMachine(stateDraw);40uint8 type;41int32 timer;42int32 pistonID;43EntityEggPistonsMKII *parent;44Animator mainAnimator;45Animator altAnimator;46Hitbox hitbox;47};4849// Object Struct50extern ObjectEggPistonsMKII *EggPistonsMKII;5152// Standard Entity Events53void EggPistonsMKII_Update(void);54void EggPistonsMKII_LateUpdate(void);55void EggPistonsMKII_StaticUpdate(void);56void EggPistonsMKII_Draw(void);57void EggPistonsMKII_Create(void *data);58void EggPistonsMKII_StageLoad(void);59#if GAME_INCLUDE_EDITOR60void EggPistonsMKII_EditorDraw(void);61void EggPistonsMKII_EditorLoad(void);62#endif63void EggPistonsMKII_Serialize(void);6465// Extra Entity Functions66void EggPistonsMKII_CheckPlayerCollisions_Piston(void);67void EggPistonsMKII_CheckPlayerCollisions_EggPiston(void);68void EggPistonsMKII_CheckPlayerCollisions_Ball(void);69void EggPistonsMKII_CheckPlayerCollisions_Solid(void);7071void EggPistonsMKII_Hit(void);72void EggPistonsMKII_Explode(void);7374EntityEggPistonsMKII *EggPistonsMKII_GetNextPiston(void);75void EggPistonsMKII_SpawnElecBall(void);76bool32 EggPistonsMKII_CheckPlayerAttacking(EntityPlayer *player);7778void EggPistonsMKII_State_SetupArena(void);79void EggPistonsMKII_State_EnterBoss(void);80void EggPistonsMKII_State_PistonReveal(void);81void EggPistonsMKII_State_ClassicMode(void);82void EggPistonsMKII_State_StartPinchMode(void);83void EggPistonsMKII_State_PinchMode(void);84void EggPistonsMKII_State_Destroyed(void);85void EggPistonsMKII_State_Finish(void);8687void EggPistonsMKII_StatePiston_Idle(void);88void EggPistonsMKII_StatePiston_Shaking(void);89void EggPistonsMKII_StatePiston_BeginCrushing(void);90void EggPistonsMKII_StatePiston_CrushExtend(void);91void EggPistonsMKII_StatePiston_Retract(void);92void EggPistonsMKII_StatePiston_Explode(void);9394void EggPistonsMKII_StateOrbGenerator_Idle(void);95void EggPistonsMKII_StateOrbGenerator_Warning(void);9697void EggPistonsMKII_StateOrb_MoveToTargetPos(void);98void EggPistonsMKII_StateOrb_Charging(void);99void EggPistonsMKII_StateOrb_Attacking(void);100101void EggPistonsMKII_StateAlarm_Active(void);102void EggPistonsMKII_StateAlarm_Destroyed(void);103104void EggPistonsMKII_StateBarrier_Solid(void);105void EggPistonsMKII_StateBarrier_Explode(void);106107#endif //! OBJ_EGGPISTONSMKII_H108109110