Path: blob/master/SonicMania/Objects/AIZ/AIZRockPile.h
338 views
#ifndef OBJ_AIZROCKPILE_H1#define OBJ_AIZROCKPILE_H23#include "Game.h"45#if MANIA_USE_PLUS67typedef enum {8AIZROCKPILE_SMALL,9AIZROCKPILE_MED,10AIZROCKPILE_BIG,11} AIZRockPileTypes;1213// Object Class14struct ObjectAIZRockPile {15RSDK_OBJECT16TABLE(int32 rockPositions_small[8], { -0x40000, -0x40000, 0xC0000, -0x40000, -0xC0000, 0x40000, 0xC0000, 0x40000 });17TABLE(int32 rockSpeedsT_small[8], { -0x10000, -0x20000, 0x10000, -0x1E000, -0x1B000, -0x1C000, 0x1C000, -0x1C000 });18TABLE(int32 rockSpeedsL_small[8], { -0x30000, -0x30000, -0x2C000, -0x28000, -0x2C000, -0x28000, -0x28000, -0x20000 });19TABLE(int32 rockSpeedsR_small[8], { 0x2C000, -0x28000, 0x30000, -0x30000, 0x28000, -0x20000, 0x2C000, -0x28000 });20TABLE(int32 rockPositions_med[10], { -0x40000, -0xC0000, 0xB0000, -0xC0000, -0x40000, -0x40000, -0xC0000, 0xC0000, 0xC0000, 0xC0000 });21TABLE(int32 rockSpeedsT_med[10], { -0x30000, -0x30000, 0x2C000, -0x28000, -0x2C000, -0x28000, -0x28000, -0x20000, 0x28000, -0x18000 });22TABLE(int32 rockSpeedsL_med[12],23{ -0x30000, -0x30000, -0x2C000, -0x28000, -0x2C000, -0x28000, -0x28000, -0x20000, -0x28000, -0x18000, -0x24000, -0x18000 });24TABLE(int32 rockSpeedsR_med[12],25{ 0x2C000, -0x28000, 0x30000, -0x30000, 0x28000, -0x20000, 0x2C000, -0x28000, 0x24000, -0x18000, 0x28000, -0x18000 });26TABLE(int32 rockPositions_large[16], { -0x80000, -0x180000, 0xB0000, -0x1C0000, -0x40000, -0xC0000, 0xC0000, -0x40000, -0xC0000, 0x40000, 0x40000,270xC0000, -0xC0000, 0x1C0000, 0xC0000, 0x1C0000 });28TABLE(int32 rockSpeedsT_large[16], { -0x30000, -0x30000, 0x2C000, -0x28000, -0x2C000, -0x28000, 0x28000, -0x20000, -0x28000, -0x18000, 0x24000,29-0x18000, -0x24000, -0x10000, 0x20000, -0x10000 });30TABLE(int32 rockSpeedsL_large[16], { -0x30000, -0x30000, -0x2C000, -0x28000, -0x2C000, -0x28000, -0x28000, -0x20000, -0x28000, -0x18000, -0x24000,31-0x18000, -0x24000, -0x10000, -0x20000, -0x10000 });32TABLE(int32 rockSpeedsR_large[16], { 0x2C000, -0x28000, 0x30000, -0x30000, 0x28000, -0x20000, 0x2C000, -0x28000, 0x24000, -0x18000, 0x28000,33-0x18000, 0x20000, -0x10000, 0x24000, -0x10000 });34uint16 aniFrames;35uint16 sfxBreak;36};3738// Entity Class39struct EntityAIZRockPile {40RSDK_ENTITY41int32 size;42bool32 smashTop;43bool32 smashSides;44bool32 onlyKnux;45bool32 onlyMighty;46int32 *rockPositions;47int32 *rockSpeedsT;48int32 *rockSpeedsL;49int32 *rockSpeedsR;50Animator animator;51};5253// Object Struct54extern ObjectAIZRockPile *AIZRockPile;5556// Standard Entity Events57void AIZRockPile_Update(void);58void AIZRockPile_LateUpdate(void);59void AIZRockPile_StaticUpdate(void);60void AIZRockPile_Draw(void);61void AIZRockPile_Create(void *data);62void AIZRockPile_StageLoad(void);63#if GAME_INCLUDE_EDITOR64void AIZRockPile_EditorDraw(void);65void AIZRockPile_EditorLoad(void);66#endif67void AIZRockPile_Serialize(void);6869// Extra Entity Functions70void AIZRockPile_SpawnRocks(int32 *speeds);7172#endif7374#endif //! OBJ_AIZROCKPILE_H757677