Path: blob/master/SonicMania/Objects/Pinball/PBL_Crane.h
338 views
#ifndef OBJ_PBL_CRANE_H1#define OBJ_PBL_CRANE_H23#include "Game.h"45#if MANIA_USE_PLUS67typedef enum {8PBL_CRANE_MANAGER,9PBL_CRANE_CRANE,10PBL_CRANE_PRIZEDISPLAY,11PBL_CRANE_PRIZE,12} PBL_CraneTypes;1314typedef enum {15PBL_CRANE_PRIZE_SONIC,16PBL_CRANE_PRIZE_TAILS,17PBL_CRANE_PRIZE_KNUCKLES,18PBL_CRANE_PRIZE_MIGHTY,19PBL_CRANE_PRIZE_RAY,20PBL_CRANE_PRIZE_EGGMAN,21PBL_CRANE_PRIZE_RINGS,22PBL_CRANE_PRIZE_SHIELD_BLUE,23PBL_CRANE_PRIZE_SHIELD_BUBBLE,24PBL_CRANE_PRIZE_SHIELD_FIRE,25PBL_CRANE_PRIZE_SHIELD_ELECTRIC,26PBL_CRANE_PRIZE_TABLE_RESTORE,27PBL_CRANE_PRIZE_1UP,28} PBL_CranePrizes;2930typedef enum {31PBL_CRANE_PRIZEID_NONE,32PBL_CRANE_PRIZEID_NOTHING,33PBL_CRANE_PRIZEID_BAD,34PBL_CRANE_PRIZEID_BUDDY,35PBL_CRANE_PRIZEID_RINGS,36PBL_CRANE_PRIZEID_ITEM,37PBL_CRANE_PRIZEID_TBLRESTORE,38PBL_CRANE_PRIZEID_1UP,39} PBL_CranePrizeIDs;4041// Object Class42struct ObjectPBL_Crane {43RSDK_OBJECT44int32 prizeID;45uint16 aniFrames;46uint16 sfxBackGlass;47uint16 sfxCraneMove;48uint16 sfxCraneDrop;49uint16 sfxCraneGrab;50uint16 sfxCraneRise;51uint16 sfxPrizeGood;52uint16 sfxPrizeBad;53};5455// Entity Class56struct EntityPBL_Crane {57RSDK_ENTITY58StateMachine(state);59StateMachine(stateDraw);60int32 type;61int32 unused1;62int32 timer;63int32 unused2;64int32 unused3;65EntityPBL_Crane *parent;66Entity *cameraTarget;67Animator displayAnimator;68Animator bgAnimator;69Animator craneBackAnimator;70Animator craneFrontAnimator;71Animator machineAnimator;72};7374// Object Struct75extern ObjectPBL_Crane *PBL_Crane;7677// Standard Entity Events78void PBL_Crane_Update(void);79void PBL_Crane_LateUpdate(void);80void PBL_Crane_StaticUpdate(void);81void PBL_Crane_Draw(void);82void PBL_Crane_Create(void *data);83void PBL_Crane_StageLoad(void);84#if GAME_INCLUDE_EDITOR85void PBL_Crane_EditorDraw(void);86void PBL_Crane_EditorLoad(void);87#endif88void PBL_Crane_Serialize(void);8990// Extra Entity Functions91void PBL_Crane_HandlePrizes(void);9293void PBL_Crane_Draw_CraneMachine(void);94void PBL_Crane_Draw_PrizeDisplay(void);95void PBL_Crane_Draw_Crane(void);9697void PBL_Crane_State_CreatePrizes(void);98void PBL_Crane_State_DisplayPrizes(void);99void PBL_Crane_StatePrizeDisplay_Move(void);100101void PBL_Crane_StateCrane_Lower(void);102void PBL_Crane_StateCrane_Move(void);103void PBL_Crane_StateCrane_Controlled(void);104void PBL_Crane_StateCrane_Drop(void);105void PBL_Crane_StateCrane_Grab(void);106void PBL_Crane_StateCrane_Rise(void);107108void PBL_Crane_StatePrize_Bounce(void);109void PBL_Crane_StatePrize_Flash(void);110void PBL_Crane_StatePrize_PrizeGet(void);111112#endif113114#endif //! OBJ_PBL_CRANE_H115116117