Path: blob/master/SonicMania/Objects/MMZ/SizeLaser.h
338 views
#ifndef OBJ_SIZELASER_H1#define OBJ_SIZELASER_H23#include "Game.h"45typedef enum {6SIZELASER_SHRINK,7SIZELASER_GROW,8} SizeLaserTypes;910typedef enum {11SIZELASER_ORIENTATION_DOWN,12SIZELASER_ORIENTATION_RIGHT,13SIZELASER_ORIENTATION_LEFT,14} SizeLaserOrientations;1516// Object Class17struct ObjectSizeLaser {18RSDK_OBJECT19Hitbox hitbox;20Hitbox playerOuterBox[PLAYER_COUNT];21Hitbox playerInnerBox[PLAYER_COUNT];22Vector2 playerPositions[PLAYER_COUNT];23uint16 aniFrames;24uint16 sonicFrames;25uint16 tailsFrames;26uint16 tailFrames;27uint16 knuxFrames;28#if MANIA_USE_PLUS29uint16 mightyFrames;30uint16 rayFrames;31#endif32uint16 sfxShrink2;33uint16 sfxGrow2;34};3536// Entity Class37struct EntitySizeLaser {38RSDK_ENTITY39StateMachine(state);40uint8 type;41uint8 orientation;42int32 timer;43Vector2 impactPos;44int32 extend;45Animator mainAnimator;46Animator impactAnimator;47};4849// Object Struct50extern ObjectSizeLaser *SizeLaser;5152// Standard Entity Events53void SizeLaser_Update(void);54void SizeLaser_LateUpdate(void);55void SizeLaser_StaticUpdate(void);56void SizeLaser_Draw(void);57void SizeLaser_Create(void *data);58void SizeLaser_StageLoad(void);59#if GAME_INCLUDE_EDITOR60void SizeLaser_EditorDraw(void);61void SizeLaser_EditorLoad(void);62#endif63void SizeLaser_Serialize(void);6465// Extra Entity Functions66bool32 SizeLaser_SfxCheck_SizeLaser(void);6768void SizeLaser_SetPlayerSize(EntityPlayer *player, bool32 chibiFlag);69void SizeLaser_PlayerState_Resize(void);70void SizeLaser_PlayerState_GrowNormal(void);71void SizeLaser_PlayerState_ShrinkChibi(void);72void SizeLaser_PlayerState_GrowGiant(void);7374void SizeLaser_CheckPlayerCollisions(void);7576void SizeLaser_State_Emitter(void);77void SizeLaser_State_Laser(void);78void SizeLaser_State_Impact(void);7980#endif //! OBJ_SIZELASER_H818283