Path: blob/master/SonicMania/Objects/FBZ/FBZStorm.h
338 views
#ifndef OBJ_FBZSTORM_H1#define OBJ_FBZSTORM_H23#include "Game.h"45// Object Class6struct ObjectFBZStorm {7RSDK_OBJECT8TABLE(int32 thunderFade[20],9{ 0x40, 0x80, 0xC0, 0x100, 0x100, 0x80, 0x00, 0x20, 0x40, 0x80, 0xC0, 0x100, 0x100, 0xC0, 0x80, 0x60, 0x40, 0x20, 0x10, 0x00 });10Vector2 raindropPositions[0x100];11uint16 aniFrames;12uint16 sfxRain;13bool32 playingRainSfx; // should be uint8 according to the static vars file, bool32 actually *breaks* outsideBank, but that's how mania is so..14uint16 sfxThunder;15STATIC(uint8 outsideBank, 1);16};1718// Entity Class19struct EntityFBZStorm {20RSDK_ENTITY21StateMachine(state);22int32 thunderTimer;23int32 blendAmount;24int32 stormAngle[SCREEN_COUNT];25int32 screenPosX[SCREEN_COUNT];26bool32 enabled;27Animator animator;28};2930// Object Struct31extern ObjectFBZStorm *FBZStorm;3233// Standard Entity Events34void FBZStorm_Update(void);35void FBZStorm_LateUpdate(void);36void FBZStorm_StaticUpdate(void);37void FBZStorm_Draw(void);38void FBZStorm_Create(void *data);39void FBZStorm_StageLoad(void);40#if GAME_INCLUDE_EDITOR41void FBZStorm_EditorDraw(void);42void FBZStorm_EditorLoad(void);43#endif44void FBZStorm_Serialize(void);4546// Extra Entity Functions47void FBZStorm_State_WaitForActive(void);48void FBZStorm_State_StormStart(void);49void FBZStorm_State_StormFinish(void);50void FBZStorm_State_Storming(void);51void FBZStorm_State_Thunder(void);5253#endif //! OBJ_FBZSTORM_H545556