Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/MSZ/GiantPistol.h
338 views
1
#ifndef OBJ_GIANTPISTOL_H
2
#define OBJ_GIANTPISTOL_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectGiantPistol {
8
RSDK_OBJECT
9
#if MANIA_USE_PLUS
10
bool32 inCutscene;
11
#endif
12
Hitbox hitboxFront;
13
Hitbox hitboxEntry;
14
Hitbox hitboxRear;
15
uint16 sfxClack;
16
uint16 sfxCannonFire;
17
uint16 aniFrames;
18
};
19
20
// Entity Class
21
struct EntityGiantPistol {
22
RSDK_ENTITY
23
StateMachine(state);
24
int32 timer;
25
int32 activePlayers;
26
int32 playerPos;
27
int32 rotationVel;
28
Vector2 startPos;
29
Vector2 pivot;
30
Animator pistolAnimator;
31
Animator pistolEntryAnimator;
32
Animator chamberAnimator;
33
Animator hammerAnimator;
34
Animator handLowAnimator;
35
Animator handHighAnimator;
36
Animator triggerAnimator;
37
Animator triggerFingerAnimator;
38
};
39
40
// Object Struct
41
extern ObjectGiantPistol *GiantPistol;
42
43
// Standard Entity Events
44
void GiantPistol_Update(void);
45
void GiantPistol_LateUpdate(void);
46
void GiantPistol_StaticUpdate(void);
47
void GiantPistol_Draw(void);
48
void GiantPistol_Create(void *data);
49
void GiantPistol_StageLoad(void);
50
#if GAME_INCLUDE_EDITOR
51
void GiantPistol_EditorDraw(void);
52
void GiantPistol_EditorLoad(void);
53
#endif
54
void GiantPistol_Serialize(void);
55
56
// Extra Entity Functions
57
void GiantPistol_State_AwaitPlayerEntry(void);
58
void GiantPistol_State_CloseChamber(void);
59
void GiantPistol_State_SpinGun(void);
60
void GiantPistol_State_Aiming(void);
61
void GiantPistol_State_FiredPlayers(void);
62
63
#if MANIA_USE_PLUS
64
void GiantPistol_PlayerState_PistolAir(void);
65
void GiantPistol_PlayerState_PistolGround(void);
66
#endif
67
68
#endif //! OBJ_GIANTPISTOL_H
69
70