Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/LRZ/Iwamodoki.h
338 views
1
#ifndef OBJ_IWAMODOKI_H
2
#define OBJ_IWAMODOKI_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectIwamodoki {
8
RSDK_OBJECT
9
Hitbox hitboxBadnik;
10
Hitbox hitboxRange;
11
Hitbox hitboxProjectile;
12
uint16 aniFrames;
13
};
14
15
// Entity Class
16
struct EntityIwamodoki {
17
RSDK_ENTITY
18
StateMachine(state);
19
bool32 lrzConvPhys;
20
Vector2 startPos;
21
Vector2 moveOffset;
22
Vector2 preMovePos;
23
Vector2 postMovePos;
24
uint8 startDir;
25
int32 timer;
26
int32 chargeCount;
27
Animator animator;
28
};
29
30
// Object Struct
31
extern ObjectIwamodoki *Iwamodoki;
32
33
// Standard Entity Events
34
void Iwamodoki_Update(void);
35
void Iwamodoki_LateUpdate(void);
36
void Iwamodoki_StaticUpdate(void);
37
void Iwamodoki_Draw(void);
38
void Iwamodoki_Create(void *data);
39
void Iwamodoki_StageLoad(void);
40
#if GAME_INCLUDE_EDITOR
41
void Iwamodoki_EditorDraw(void);
42
void Iwamodoki_EditorLoad(void);
43
#endif
44
void Iwamodoki_Serialize(void);
45
46
// Extra Entity Functions
47
void Iwamodoki_DebugSpawn(void);
48
void Iwamodoki_DebugDraw(void);
49
50
void Iwamodoki_HandlePlayerCollisions(void);
51
void Iwamodoki_CheckOffScreen(void);
52
53
void Iwamodoki_State_Init(void);
54
void Iwamodoki_State_AwaitPlayer(void);
55
void Iwamodoki_State_Appear(void);
56
void Iwamodoki_State_Charging(void);
57
void Iwamodoki_State_Explode(void);
58
void Iwamodoki_State_Debris(void);
59
60
#endif //! OBJ_IWAMODOKI_H
61
62