Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/OOZ/Octus.h
338 views
1
#ifndef OBJ_OCTUS_H
2
#define OBJ_OCTUS_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectOctus {
8
RSDK_OBJECT
9
Hitbox hitboxBadnik;
10
Hitbox hitboxProjectile;
11
Hitbox hitboxRange;
12
uint16 aniFrames;
13
uint16 sfxShot;
14
};
15
16
// Entity Class
17
struct EntityOctus {
18
RSDK_ENTITY
19
StateMachine(state);
20
int32 timer;
21
uint8 unused1;
22
Vector2 startPos;
23
uint8 startDir;
24
int32 unused2;
25
Animator animator;
26
};
27
28
// Object Struct
29
extern ObjectOctus *Octus;
30
31
// Standard Entity Events
32
void Octus_Update(void);
33
void Octus_LateUpdate(void);
34
void Octus_StaticUpdate(void);
35
void Octus_Draw(void);
36
void Octus_Create(void *data);
37
void Octus_StageLoad(void);
38
#if GAME_INCLUDE_EDITOR
39
void Octus_EditorDraw(void);
40
void Octus_EditorLoad(void);
41
#endif
42
void Octus_Serialize(void);
43
44
// Extra Entity Functions
45
void Octus_DebugSpawn(void);
46
void Octus_DebugDraw(void);
47
48
void Octus_CheckPlayerCollisions(void);
49
void Octus_CheckOffScreen(void);
50
51
void Octus_State_Init(void);
52
void Octus_State_CheckPlayerInRange(void);
53
void Octus_State_JumpDelay(void);
54
void Octus_State_Jump(void);
55
void Octus_State_Shoot(void);
56
void Octus_State_Fall(void);
57
void Octus_State_Shot(void);
58
59
#endif //! OBJ_OCTUS_H
60
61