Path: blob/master/SonicMania/Objects/CPZ/DNARiser.h
338 views
#ifndef OBJ_DNARISER_H1#define OBJ_DNARISER_H23#include "Game.h"45// Object Class6struct ObjectDNARiser {7RSDK_OBJECT8uint16 aniFrames;9uint16 sfxGrab;10uint16 sfxScan;11uint16 sfxBurst;12uint16 sfxTiny[6];13Hitbox hitbox;14};1516// Entity Class17struct EntityDNARiser {18RSDK_ENTITY19StateMachine(state);20StateMachine(stateDraw);21bool32 noBubbleScaling;22bool32 popped;23Vector2 popPos;24int32 bubbleScale;25Animator bubbleAnimator;26Animator popAnimator;27uint16 startHelixPos;28int16 timer;29uint8 scaleTimer;30bool32 canDestroySelf;31int32 scanSfxDir;32uint16 sfxTimer;33uint8 lastSfxID;34int32 height;35Vector2 speed;36uint8 activePlayers;37int32 risePos;38int32 amplitude;39Vector2 startPos;40Vector2 maxSpeed;41uint16 helixPos;42EntityDNARiser *firstChild;43EntityDNARiser *child;44EntityDNARiser *sibling;45EntityDNARiser *lastChild;46EntityDNARiser *parent;47};4849// Object Struct50extern ObjectDNARiser *DNARiser;5152// Standard Entity Events53void DNARiser_Update(void);54void DNARiser_LateUpdate(void);55void DNARiser_StaticUpdate(void);56void DNARiser_Draw(void);57void DNARiser_Create(void *data);58void DNARiser_StageLoad(void);59#if GAME_INCLUDE_EDITOR60void DNARiser_EditorDraw(void);61void DNARiser_EditorLoad(void);62#endif63void DNARiser_Serialize(void);6465// Extra Entity Functions66void DNARiser_State_BubbleBurst(void);67void DNARiser_SetupBurst(void);68Vector2 DNARiser_CalculateScale(Vector2 *scalePtr);6970void DNARiser_State_Init(void);71void DNARiser_State_HandleInteractions(void);72void DNARiser_State_HelixRise(void);73void DNARiser_State_HelixBurst(void);74void DNARiser_State_ResetRiser(void);75void DNARiser_State_OrbSetup(void);76void DNARiser_State_OrbIdle(void);77void DNARiser_State_OrbFall(void);7879void DNARiser_Draw_Main(void);80void DNARiser_Draw_Helix(void);8182#endif //! OBJ_DNARISER_H838485