Path: blob/master/SonicMania/Objects/PGZ/PetalPile.h
338 views
#ifndef OBJ_PETALPILE_H1#define OBJ_PETALPILE_H23#include "Game.h"45typedef enum {6PETALPILE_FGHIGH,7PETALPILE_FGLOW,8} PetalPileLayerIDs;910typedef enum {11PETALPILE_PATTERN_0,12PETALPILE_PATTERN_1,13PETALPILE_PATTERN_2,14PETALPILE_PATTERN_3,15PETALPILE_PATTERN_4,16} PetalPilePatterns;1718// Object Class19struct ObjectPetalPile {20RSDK_OBJECT21TABLE(int32 patternSize[5], { 7, 6, 6, 10, 3 });22TABLE(int32 pattern1[14],23{ -0x10000, 0x10000, -0x8000, -0x10000, -0x5555, 0x10000, 0, -0x10000, 0x5555, 0x10000, 0x8000, -0x10000, 0x10000, 0x10000 });24TABLE(int32 pattern2[12], { -0x10000, 0x10000, -0x5555, -0x5555, 0x10000, -0x10000, 0, 0xAAAA, 0xAAAA, 0, 0x10000, 0x10000 });25TABLE(int32 pattern3[12], { 0x10000, 0x10000, 0x5555, -0x5555, -0x10000, -0x10000, 0, 0xAAAA, -0xAAAA, 0, -0x10000, 0x10000 });26TABLE(int32 pattern4[20], { -0x10000, 0x10000, -0x8000, -0x10000, -0x5555, 0x10000, 0, -0x10000, 0x5555, 0x10000,270x8000, -0x10000, 0x10000, 0x10000, -0xAAAA, 0, 0, 0, 0xAAAA, 0 });28TABLE(int32 pattern5[6], { 0, -0x10000, -0x10000, 0x10000, 0x10000, 0x10000 });29uint16 aniFrames;30uint16 sfxPetals;31};3233// Entity Class34struct EntityPetalPile {35RSDK_ENTITY36StateMachine(state);37StateMachine(stateDraw);38uint16 timer;39int8 leafPattern;40int8 tileLayer;41Vector2 pileSize;42Vector2 maxSpeed;43bool32 emitterMode;44uint8 layerID;45Vector2 velStore;46Vector2 distance; // dunno if this is actually a vec2 but the .y is always set to 0 so maybe?47int32 petalVel;48int32 unused;49int8 petalDir;50int32 petalRadius;51int32 petalOffset;52bool32 noRemoveTiles;53Hitbox hitbox;54Animator animator;55};5657// Object Struct58extern ObjectPetalPile *PetalPile;5960// Standard Entity Events61void PetalPile_Update(void);62void PetalPile_LateUpdate(void);63void PetalPile_StaticUpdate(void);64void PetalPile_Draw(void);65void PetalPile_Create(void *data);66void PetalPile_StageLoad(void);67#if GAME_INCLUDE_EDITOR68void PetalPile_EditorDraw(void);69void PetalPile_EditorLoad(void);70#endif71void PetalPile_Serialize(void);7273// Extra Entity Functions74int32 PetalPile_GetLeafPattern(Vector2 *patternPtr);7576void PetalPile_State_Init(void);77void PetalPile_State_HandleInteractions(void);78void PetalPile_State_SetupEmitter(void);79void PetalPile_State_Emitter(void);8081void PetalPile_StateLeaf_Setup(void);82void PetalPile_StateLeaf_Delay(void);83void PetalPile_StateLeaf_HandleVelocity(void);84void PetalPile_StateLeaf_Fall(void);8586void PetalPile_Draw_Leaf(void);8788#endif //! OBJ_PETALPILE_H899091