Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/AIZ/AIZSetup.h
338 views
1
#ifndef OBJ_AIZSETUP_H
2
#define OBJ_AIZSETUP_H
3
4
#include "Game.h"
5
6
typedef enum {
7
AIZ_BG_JUNGLE,
8
AIZ_BG_SKY,
9
} BGSwitchIDsAIZ;
10
11
typedef enum {
12
AIZ_DECOR_LEAF1,
13
AIZ_DECOR_LEAF2,
14
AIZ_DECOR_LEAF3,
15
AIZ_DECOR_LEAF4,
16
} DecorTypesAIZ;
17
18
// Object Class
19
struct ObjectAIZSetup {
20
RSDK_OBJECT
21
#if MANIA_USE_PLUS
22
TABLE(int32 bellPlantAniFramePos[13], { 0, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1, -1 });
23
TABLE(int32 bellPlantAniDurations[12], { 6, 4, 3, 2, 3, 4, 6, 4, 3, 2, 3, 4 });
24
TABLE(int32 curlPlant1AniFramePos[15], { 0, 1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 1, -1 });
25
TABLE(int32 curlPlant1AniDurations[14], { 30, 4, 3, 2, 3, 4, 6, 12, 6, 4, 3, 2, 3, 4 });
26
TABLE(int32 curlPlant2AniFramePos[15], { 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, -1 });
27
TABLE(int32 curlPlant2AniDurations[14], { 12, 6, 4, 3, 2, 3, 4, 30, 4, 3, 2, 3, 4, 6 });
28
#endif
29
bool32 hasSetupCutscene;
30
bool32 playDrillSfx;
31
bool32 playingDrillSfx;
32
TileLayer *background1;
33
TileLayer *background2;
34
TileLayer *background3;
35
TileLayer *background4;
36
EntityAIZTornado *tornado;
37
EntityAIZKingClaw *claw;
38
EntityPlatform *platform;
39
EntityPhantomRuby *phantomRuby;
40
EntityFXRuby *fxRuby;
41
EntityDecoration *decorations[3];
42
#if MANIA_USE_PLUS
43
int32 bellPlantAniFrame;
44
int32 bellPlantAniTimer;
45
int32 curlPlant1AniFrame;
46
int32 curlPlant1AniTimer;
47
int32 curlPlant2AniFrame;
48
int32 curlPlant2AniTimer;
49
#endif
50
uint16 knuxFrames;
51
uint16 sfxDrill;
52
uint16 sfxBreak;
53
uint16 sfxImpact;
54
uint16 sfxHeliWoosh;
55
uint16 aniTiles;
56
};
57
58
// Entity Class
59
struct EntityAIZSetup {
60
RSDK_ENTITY
61
};
62
63
// Object Struct
64
extern ObjectAIZSetup *AIZSetup;
65
66
// Standard Entity Events
67
void AIZSetup_Update(void);
68
void AIZSetup_LateUpdate(void);
69
void AIZSetup_StaticUpdate(void);
70
void AIZSetup_Draw(void);
71
void AIZSetup_Create(void *data);
72
void AIZSetup_StageLoad(void);
73
#if GAME_INCLUDE_EDITOR
74
void AIZSetup_EditorDraw(void);
75
void AIZSetup_EditorLoad(void);
76
#endif
77
void AIZSetup_Serialize(void);
78
79
// Extra Entity Functions
80
#if MANIA_USE_PLUS
81
void AIZSetup_BGSwitch_Jungle(void);
82
void AIZSetup_BGSwitch_Sky(void);
83
#endif
84
85
void AIZSetup_PlayerState_Static(void);
86
void AIZSetup_PlayerState_P2Enter(void);
87
88
void AIZSetup_HandleHeavyMovement(void);
89
90
void AIZSetup_SetupObjects(void);
91
92
void AIZSetup_GetCutsceneSetupPtr(void);
93
#if MANIA_USE_PLUS
94
void AIZSetup_Cutscene_SkipCB(void);
95
#endif
96
97
void AIZSetup_CutsceneST_Setup(void);
98
bool32 AIZSetup_CutsceneSonic_EnterAIZ(EntityCutsceneSeq *host);
99
bool32 AIZSetup_CutsceneSonic_EnterAIZJungle(EntityCutsceneSeq *host);
100
bool32 AIZSetup_CutsceneSonic_EnterHeavies(EntityCutsceneSeq *host);
101
bool32 AIZSetup_CutsceneSonic_P2FlyIn(EntityCutsceneSeq *host);
102
bool32 AIZSetup_CutsceneSonic_EnterClaw(EntityCutsceneSeq *host);
103
bool32 AIZSetup_CutsceneSonic_WatchClaw(EntityCutsceneSeq *host);
104
bool32 AIZSetup_CutsceneSonic_RubyGrabbed(EntityCutsceneSeq *host);
105
bool32 AIZSetup_CutsceneSonic_RubyAppear(EntityCutsceneSeq *host);
106
bool32 AIZSetup_CutsceneSonic_RubyFX(EntityCutsceneSeq *host);
107
108
void AIZSetup_CutsceneK_Setup(void);
109
bool32 AIZSetup_CutsceneKnux_Chillin(EntityCutsceneSeq *host);
110
bool32 AIZSetup_CutsceneKnux_StartDrillin(EntityCutsceneSeq *host);
111
bool32 AIZSetup_CutsceneKnux_Drillin(EntityCutsceneSeq *host);
112
bool32 AIZSetup_CutsceneKnux_PrepareForTrouble(EntityCutsceneSeq *host);
113
bool32 AIZSetup_CutsceneKnux_EnterThreat(EntityCutsceneSeq *host);
114
bool32 AIZSetup_CutsceneKnux_HeaviesAppear(EntityCutsceneSeq *host);
115
bool32 AIZSetup_CutsceneKnux_RubyImpact(EntityCutsceneSeq *host);
116
bool32 AIZSetup_CutsceneKnux_RubyFX(EntityCutsceneSeq *host);
117
118
bool32 AIZSetup_Cutscene_LoadGHZ(EntityCutsceneSeq *host);
119
120
#endif //! OBJ_AIZSETUP_H
121
122