Path: blob/master/SonicMania/Objects/CPZ/ChemicalBall.h
338 views
#ifndef OBJ_CHEMICALBALL_H1#define OBJ_CHEMICALBALL_H23#include "Game.h"45typedef enum { CHEMICALBALL_ARC, CHEMICALBALL_VERTICAL } ChemicalBallTypes;67// Object Class8struct ObjectChemicalBall {9RSDK_OBJECT10Hitbox hitboxBall;11TABLE(int32 arcOffsets[196],12{ -0x320000, 0, -0x320000, -0x48000, -0x31F500, -0x8E800, -0x31DF00, -0xD3800, -0x31BE00, -0x117000, -0x319200, -0x159000,13-0x315B00, -0x199800, -0x311900, -0x1D8800, -0x30CC00, -0x216000, -0x307400, -0x252000, -0x301100, -0x28C800, -0x2FA300, -0x2C5800,14-0x2F2A00, -0x2FD000, -0x2EA600, -0x333000, -0x2E1700, -0x367800, -0x2D7D00, -0x39A800, -0x2CD800, -0x3CC000, -0x2C2800, -0x3FC000,15-0x2B6D00, -0x42A800, -0x2AA700, -0x457800, -0x29D600, -0x483000, -0x28FA00, -0x4AD000, -0x281300, -0x4D5800, -0x272100, -0x4FC800,16-0x262400, -0x522000, -0x251C00, -0x546000, -0x240900, -0x568800, -0x22EB00, -0x589800, -0x21C200, -0x5A9000, -0x208E00, -0x5C7000,17-0x1F4F00, -0x5E3800, -0x1E0500, -0x5FE800, -0x1CB000, -0x618000, -0x1B5000, -0x630000, -0x19E500, -0x646800, -0x186F00, -0x65B800,18-0x16EE00, -0x66F000, -0x156200, -0x681000, -0x13CB00, -0x691800, -0x122900, -0x6A0800, -0x107C00, -0x6AE000, -0xEC400, -0x6BA000,19-0xD0100, -0x6C4800, -0xB3300, -0x6CD800, -0x95A00, -0x6D5000, -0x77600, -0x6DB000, -0x58700, -0x6DF800, -0x38D00, -0x6E2800,20-0x18800, -0x6E4000, 0x8800, -0x6E4000, 0x28D00, -0x6E2800, 0x48700, -0x6DF800, 0x67600, -0x6DB000, 0x85A00, -0x6D5000,210xA3300, -0x6CD800, 0xC0100, -0x6C4800, 0xDC400, -0x6BA000, 0xF7C00, -0x6AE000, 0x112900, -0x6A0800, 0x12CB00, -0x691800,220x146200, -0x681000, 0x15EE00, -0x66F000, 0x176F00, -0x65B800, 0x18E500, -0x646800, 0x1A5000, -0x630000, 0x1BB000, -0x618000,230x1D0500, -0x5FE800, 0x1E4F00, -0x5E3800, 0x1F8E00, -0x5C7000, 0x20C200, -0x5A9000, 0x21EB00, -0x589800, 0x230900, -0x568800,240x241C00, -0x546000, 0x252400, -0x522000, 0x262100, -0x4FC800, 0x271300, -0x4D5800, 0x27FA00, -0x4AD000, 0x28D600, -0x483000,250x29A700, -0x457800, 0x2A6D00, -0x42A800, 0x2B2800, -0x3FC000, 0x2BD800, -0x3CC000, 0x2C7D00, -0x39A800, 0x2D1700, -0x367800,260x2DA600, -0x333000, 0x2E2A00, -0x2FD000, 0x2EA300, -0x2C5800, 0x2F1100, -0x28C800, 0x2F7400, -0x252000, 0x2FCC00, -0x216000,270x301900, -0x1D8800, 0x305B00, -0x199800, 0x309200, -0x159000, 0x30BE00, -0x117000, 0x30DF00, -0xD3800, 0x30F500, -0x8E800,280x310000, -0x48000, 0x310000, 0 });29TABLE(int32 moveOffsets[98],30{ -0x264000, -0x262800, -0x25F800, -0x25B000, -0x255000, -0x24D800, -0x244800, -0x23A000, -0x22E000, -0x220800, -0x211800,31-0x201000, -0x1EF000, -0x1DB800, -0x1C6800, -0x1B0000, -0x198000, -0x17E800, -0x163800, -0x147000, -0x129000, -0x109800,32-0xE8800, -0xC6000, -0xA2000, -0x7C800, -0x55800, -0x2D000, -0x3000, 0x28800, 0x55800, 0x84000, 0xB4000,330xE5800, 0x118800, 0x14D000, 0x183000, 0x1BA800, 0x1F3800, 0x22E000, 0x26A000, 0x2A7800, 0x2E6800, 0x327000,340x369000, 0x3AC800, 0x3F1800, 0x438000, 0x480000, 0x480000, 0x438000, 0x3F1800, 0x3AC800, 0x369000, 0x327000,350x2E6800, 0x2A7800, 0x26A000, 0x22E000, 0x1F3800, 0x1BA800, 0x183000, 0x14D000, 0x118800, 0xE5800, 0xB4000,360x84000, 0x55800, 0x28800, -0x3000, -0x2D000, -0x55800, -0x7C800, -0xA2000, -0xC6000, -0xE8800, -0x109800,37-0x129000, -0x147000, -0x163800, -0x17E800, -0x198000, -0x1B0000, -0x1C6800, -0x1DB800, -0x1EF000, -0x201000, -0x211800,38-0x220800, -0x22E000, -0x23A000, -0x244800, -0x24D800, -0x255000, -0x25B000, -0x25F800, -0x262800, -0x264000 });39uint16 aniFrames;40uint16 sfxBloop;41};4243// Entity Class44struct EntityChemicalBall {45RSDK_ENTITY46StateMachine(state);47uint8 type;48uint8 interval;49uint8 intervalOffset;50int32 unused;51Vector2 startPos;52Vector2 drawPos;53Animator animator;54int32 unused2;55bool32 master;56};5758// Object Struct59extern ObjectChemicalBall *ChemicalBall;6061// Standard Entity Events62void ChemicalBall_Update(void);63void ChemicalBall_LateUpdate(void);64void ChemicalBall_StaticUpdate(void);65void ChemicalBall_Draw(void);66void ChemicalBall_Create(void *data);67void ChemicalBall_StageLoad(void);68#if GAME_INCLUDE_EDITOR69void ChemicalBall_EditorDraw(void);70void ChemicalBall_EditorLoad(void);71#endif72void ChemicalBall_Serialize(void);7374// Extra Entity Functions75void ChemicalBall_CheckHit(void);76void ChemicalBall_State_MoveArc(void);77void ChemicalBall_State_MoveVertical(void);7879#endif //! OBJ_CHEMICALBALL_H808182