Path: blob/master/SonicMania/Objects/PGZ/JuggleSaw.h
338 views
#ifndef OBJ_JUGGLESAW_H1#define OBJ_JUGGLESAW_H23#include "Game.h"45typedef enum { JUGGLESAW_NO_SAW = 0, JUGGLESAW_HAS_SAW = 1, JUGGLESAW_AWAITING_SAW = 2 } JuggleSawMode;67#define JUGGLESAW_MAX_FRIENDS (8)89// Object Class10struct ObjectJuggleSaw {11RSDK_OBJECT12Hitbox hitboxBadnik;13Hitbox hitboxFriendRange;14Hitbox hitboxSaw;15Hitbox hitboxGrabV;16Hitbox hitboxGrabH;17uint16 aniFrames;18uint16 sfxExplode;19uint16 sfxJuggle;20uint16 sfxThrow;21};2223// Entity Class24struct EntityJuggleSaw {25RSDK_ENTITY26StateMachine(state);27uint16 sawDelay;28uint32 sawSpeed;29bool32 hasSaw;30uint16 setID;31EntityJuggleSaw *friends[JUGGLESAW_MAX_FRIENDS];32uint8 friendCount;33uint8 sawTimer;34Vector2 startPos;35uint8 startDir;36Animator animator;37};3839// Object Struct40extern ObjectJuggleSaw *JuggleSaw;4142// Standard Entity Events43void JuggleSaw_Update(void);44void JuggleSaw_LateUpdate(void);45void JuggleSaw_StaticUpdate(void);46void JuggleSaw_Draw(void);47void JuggleSaw_Create(void *data);48void JuggleSaw_StageLoad(void);49#if GAME_INCLUDE_EDITOR50void JuggleSaw_EditorDraw(void);51void JuggleSaw_EditorLoad(void);52#endif53void JuggleSaw_Serialize(void);5455void JuggleSaw_DebugDraw(void);56void JuggleSaw_DebugSpawn(void);5758// Extra Entity Functions59void JuggleSaw_CheckPlayerCollisions(void);60void JuggleSaw_CheckOffScreen(void);6162void JuggleSaw_StateCrab_Setup(void);63void JuggleSaw_StateCrab_Handle(void);64void JuggleSaw_StateCrab_ThrowSaw(void);6566void JuggleSaw_StateSaw_Handle(void);67void JuggleSaw_StateSaw_Debris(void);6869#endif //! OBJ_JUGGLESAW_H707172