Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/HCZ/MegaChopper.h
338 views
1
#ifndef OBJ_MEGACHOPPER_H
2
#define OBJ_MEGACHOPPER_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectMegaChopper {
8
RSDK_OBJECT
9
Hitbox hitboxBadnik;
10
Hitbox hitboxChop;
11
uint16 aniFrames;
12
};
13
14
// Entity Class
15
struct EntityMegaChopper {
16
RSDK_ENTITY
17
StateMachine(state);
18
Vector2 startPos;
19
EntityPlayer *grabbedPlayer;
20
Vector2 playerPos;
21
uint8 playerDir;
22
uint16 shakeTimer;
23
uint16 shakeCount;
24
uint16 lastShakeFlags;
25
uint8 nibbleTimer;
26
Animator animator;
27
};
28
29
// Object Struct
30
extern ObjectMegaChopper *MegaChopper;
31
32
// Standard Entity Events
33
void MegaChopper_Update(void);
34
void MegaChopper_LateUpdate(void);
35
void MegaChopper_StaticUpdate(void);
36
void MegaChopper_Draw(void);
37
void MegaChopper_Create(void *data);
38
void MegaChopper_StageLoad(void);
39
#if GAME_INCLUDE_EDITOR
40
void MegaChopper_EditorDraw(void);
41
void MegaChopper_EditorLoad(void);
42
#endif
43
void MegaChopper_Serialize(void);
44
45
// Extra Entity Functions
46
void MegaChopper_DebugSpawn(void);
47
void MegaChopper_DebugDraw(void);
48
49
void MegaChopper_CheckPlayerCollisions(void);
50
void MegaChopper_CheckOffScreen(void);
51
52
void MegaChopper_Input_GrabbedP1(void);
53
void MegaChopper_Input_GrabbedP2(void);
54
void MegaChopper_Input_GrabbedP2_AI(void);
55
56
void MegaChopper_State_Init(void);
57
void MegaChopper_State_InWater(void);
58
void MegaChopper_State_OutOfWater(void);
59
void MegaChopper_State_Chopping(void);
60
void MegaChopper_State_ShakenOff(void);
61
62
#endif //! OBJ_MEGACHOPPER_H
63
64