Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/MMZ/MatryoshkaBom.h
338 views
1
#ifndef OBJ_MATRYOSHKABOM_H
2
#define OBJ_MATRYOSHKABOM_H
3
4
#include "Game.h"
5
6
typedef enum {
7
MATRYOSHKA_SIZE_BIG,
8
MATRYOSHKA_SIZE_MED,
9
MATRYOSHKA_SIZE_SMALL,
10
MATRYOSHKA_SIZE_SHRAPNEL,
11
} MatryoshkaSizes;
12
13
// Object Class
14
struct ObjectMatryoshkaBom {
15
RSDK_OBJECT
16
Hitbox hitboxHurt;
17
Hitbox hitboxExplode;
18
Hitbox hitboxShrapnel;
19
uint16 aniFrames;
20
uint16 sfxExplosion;
21
uint16 sfxButton;
22
uint16 sfxPon;
23
};
24
25
// Entity Class
26
struct EntityMatryoshkaBom {
27
RSDK_ENTITY
28
StateMachine(state);
29
PlaneFilterTypes planeFilter;
30
MatryoshkaSizes size;
31
bool32 canExplode;
32
bool32 destroyOffscreen;
33
int32 offsetY;
34
int32 offsetX;
35
Vector2 startPos;
36
uint8 startDir;
37
int32 timer;
38
int32 fusePos;
39
Animator bodyAnimator;
40
Animator fuseAnimator;
41
Animator legsAnimator;
42
};
43
44
// Object Struct
45
extern ObjectMatryoshkaBom *MatryoshkaBom;
46
47
// Standard Entity Events
48
void MatryoshkaBom_Update(void);
49
void MatryoshkaBom_LateUpdate(void);
50
void MatryoshkaBom_StaticUpdate(void);
51
void MatryoshkaBom_Draw(void);
52
void MatryoshkaBom_Create(void *data);
53
void MatryoshkaBom_StageLoad(void);
54
#if GAME_INCLUDE_EDITOR
55
void MatryoshkaBom_EditorDraw(void);
56
void MatryoshkaBom_EditorLoad(void);
57
#endif
58
void MatryoshkaBom_Serialize(void);
59
60
// Extra Entity Functions
61
void MatryoshkaBom_DebugSpawn(void);
62
void MatryoshkaBom_DebugDraw(void);
63
64
void MatryoshkaBom_CheckPlayerCollisions(void);
65
void MatryoshkaBom_CheckOffScreen(void);
66
67
void MatryoshkaBom_State_Init(void);
68
void MatryoshkaBom_State_Walk(void);
69
void MatryoshkaBom_State_Stopped(void);
70
void MatryoshkaBom_State_Turn(void);
71
void MatryoshkaBom_State_FuseLit(void);
72
void MatryoshkaBom_State_ReleaseSmallerBuddy(void);
73
void MatryoshkaBom_State_Hatched(void);
74
void MatryoshkaBom_State_Shrapnel(void);
75
76
#endif //! OBJ_MATRYOSHKABOM_H
77
78