Path: blob/master/SonicMania/Objects/SPZ/LottoMachine.h
338 views
#ifndef OBJ_LOTTOMACHINE_H1#define OBJ_LOTTOMACHINE_H23#include "Game.h"45// Object Class6struct ObjectLottoMachine {7RSDK_OBJECT8Hitbox hitboxBottom;9Hitbox hitboxMotor;10uint8 activePlayers;11uint16 sfxPimPom;12uint16 sfxFail;13Animator shineAnimator;14uint16 aniFrames;15};1617// Entity Class18struct EntityLottoMachine {19RSDK_ENTITY20StateMachine(state);21int32 playerCount;22EntityPlayer *playerPtrs[PLAYER_COUNT];23int32 timer;24int32 spinSpeed;25int32 playerDir;26int32 playerTimers[PLAYER_COUNT];27int32 collectedBallCount;28int32 collectedBallTypes[4];29int32 chutePos;30int32 chuteTargetPos;31int32 chuteVel;32uint8 drawGroupHigh;33int32 playerAngles[PLAYER_COUNT];34Animator machineAnimator;35Animator supportAnimator;36Animator chuteAnimator;37Animator motorAnimator;38Animator glassAnimator;39};4041// Object Struct42extern ObjectLottoMachine *LottoMachine;4344// Standard Entity Events45void LottoMachine_Update(void);46void LottoMachine_LateUpdate(void);47void LottoMachine_StaticUpdate(void);48void LottoMachine_Draw(void);49void LottoMachine_Create(void *data);50void LottoMachine_StageLoad(void);51#if GAME_INCLUDE_EDITOR52void LottoMachine_EditorDraw(void);53void LottoMachine_EditorLoad(void);54#endif55void LottoMachine_Serialize(void);5657// Extra Entity Functions58void LottoMachine_VSSwap_CheckBusy(void);59void LottoMachine_CheckPlayerCollisions(void);60void LottoMachine_CheckPlayerCollisions_Bottom(void);61void LottoMachine_HandleMotor(void);62void LottoMachine_SetupBalls(void);63void LottoMachine_SetupUIBalls(void);64void LottoMachine_GiveRings(void);6566void LottoMachine_State_Startup(void);67void LottoMachine_State_HandleBallCollect(void);68void LottoMachine_State_CollectBall(void);69void LottoMachine_State_HandleBallCollected(void);70void LottoMachine_State_DropPlayers(void);71void LottoMachine_State_ReleasePlayers(void);72void LottoMachine_State_StopSpinning(void);7374#endif //! OBJ_LOTTOMACHINE_H757677