Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/HCZ/DiveEggman.h
338 views
1
#ifndef OBJ_DIVEEGGMAN_H
2
#define OBJ_DIVEEGGMAN_H
3
4
#include "Game.h"
5
6
typedef enum {
7
DIVEEGGMAN_EGGMAN,
8
DIVEEGGMAN_BOMB,
9
} DiveEggmanTypes;
10
11
// Object Class
12
struct ObjectDiveEggman {
13
RSDK_OBJECT
14
Hitbox unusedHitbox1;
15
Hitbox hitboxBomb;
16
Hitbox hitboxEggman;
17
EntityScrewMobile *screwMobile;
18
uint16 diveFrames;
19
uint16 aniFrames;
20
uint16 sfxBigFan;
21
uint16 sfxHit;
22
uint16 sfxExplosion;
23
uint16 sfxRockemSockem;
24
};
25
26
// Entity Class
27
struct EntityDiveEggman {
28
RSDK_ENTITY
29
StateMachine(state);
30
int32 startY;
31
int32 timer;
32
int32 invincibilityTimer;
33
uint8 health;
34
Animator animator;
35
};
36
37
// Object Struct
38
extern ObjectDiveEggman *DiveEggman;
39
40
// Standard Entity Events
41
void DiveEggman_Update(void);
42
void DiveEggman_LateUpdate(void);
43
void DiveEggman_StaticUpdate(void);
44
void DiveEggman_Draw(void);
45
void DiveEggman_Create(void *data);
46
void DiveEggman_StageLoad(void);
47
#if GAME_INCLUDE_EDITOR
48
void DiveEggman_EditorDraw(void);
49
void DiveEggman_EditorLoad(void);
50
#endif
51
void DiveEggman_Serialize(void);
52
53
// Extra Entity Functions
54
void DiveEggman_Hit(void);
55
void DiveEggman_Explode(void);
56
57
void DiveEggman_StateEggman_AwaitPlayer(void);
58
void DiveEggman_StateEggman_Swimming(void);
59
void DiveEggman_StateEggman_InWhirlpool(void);
60
void DiveEggman_StateEggman_WhirlpoolRise(void);
61
void DiveEggman_StateEggman_Falling(void);
62
void DiveEggman_StateEggman_PlaceBomb(void);
63
void DiveEggman_StateEggman_Destroyed(void);
64
void DiveEggman_StateEggman_Finish(void);
65
66
bool32 DiveEggman_CheckNoBombExplode(void);
67
68
void DiveEggman_StateBomb_Idle(void);
69
void DiveEggman_StateBomb_InWhirlpool(void);
70
void DiveEggman_StateBomb_WhirlpoolRise(void);
71
void DiveEggman_StateBomb_Falling(void);
72
73
#endif //! OBJ_DIVEEGGMAN_H
74
75