Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/LRZ/KingClaw.h
338 views
1
#ifndef OBJ_KINGCLAW_H
2
#define OBJ_KINGCLAW_H
3
4
#include "Game.h"
5
6
#define KINGCLAW_CHAIN_COUNT (12)
7
8
// Object Class
9
struct ObjectKingClaw {
10
RSDK_OBJECT
11
uint16 aniFrames;
12
uint16 sfxClack;
13
uint16 sfxWalkerLegs;
14
};
15
16
// Entity Class
17
struct EntityKingClaw {
18
RSDK_ENTITY
19
StateMachine(state);
20
int32 timer;
21
int32 targetY;
22
Vector2 chainPos[KINGCLAW_CHAIN_COUNT];
23
Vector2 drawPos;
24
EntityHPZEmerald *masterEmerald;
25
bool32 forceHighdrawGroup;
26
Animator chainAnimator;
27
Animator hingeAnimator;
28
Animator clawBackAnimator;
29
Animator clawFrontAnimator;
30
};
31
32
// Object Struct
33
extern ObjectKingClaw *KingClaw;
34
35
// Standard Entity Events
36
void KingClaw_Update(void);
37
void KingClaw_LateUpdate(void);
38
void KingClaw_StaticUpdate(void);
39
void KingClaw_Draw(void);
40
void KingClaw_Create(void *data);
41
void KingClaw_StageLoad(void);
42
#if GAME_INCLUDE_EDITOR
43
void KingClaw_EditorDraw(void);
44
void KingClaw_EditorLoad(void);
45
#endif
46
void KingClaw_Serialize(void);
47
48
// Extra Entity Functions
49
void KingClaw_HandleJointPositions(void);
50
51
void KingClaw_State_EnterClaw(void);
52
void KingClaw_State_Grab(void);
53
void KingClaw_State_LiftMasterEmerald(void);
54
void KingClaw_State_Swinging(void);
55
void KingClaw_State_LowerClaw(void);
56
void KingClaw_State_RaiseClaw(void);
57
58
#endif //! OBJ_KINGCLAW_H
59
60