Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/TMZ/MetalArm.h
338 views
1
#ifndef OBJ_METALARM_H
2
#define OBJ_METALARM_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectMetalArm {
8
RSDK_OBJECT
9
uint16 aniFrames;
10
};
11
12
// Entity Class
13
struct EntityMetalArm {
14
RSDK_ENTITY
15
StateMachine(state);
16
int32 startAngleA;
17
int32 startAngleB;
18
int32 endAngleA;
19
int32 endAngleB;
20
int32 durationA;
21
int32 durationB;
22
int32 holdDuration;
23
Vector2 armAngle;
24
uint8 stoodPlayers;
25
Vector2 startPos;
26
int32 moveTimer;
27
int32 holdTimer;
28
Vector2 armPosition;
29
Vector2 moveOffset;
30
Hitbox hitbox;
31
Animator baseAnimator;
32
Animator armAAnimator;
33
Animator armBAnimator;
34
Animator platformAnimator;
35
};
36
37
// Object Struct
38
extern ObjectMetalArm *MetalArm;
39
40
// Standard Entity Events
41
void MetalArm_Update(void);
42
void MetalArm_LateUpdate(void);
43
void MetalArm_StaticUpdate(void);
44
void MetalArm_Draw(void);
45
void MetalArm_Create(void *data);
46
void MetalArm_StageLoad(void);
47
#if GAME_INCLUDE_EDITOR
48
void MetalArm_EditorDraw(void);
49
void MetalArm_EditorLoad(void);
50
#endif
51
void MetalArm_Serialize(void);
52
53
// Extra Entity Functions
54
bool32 MetalArm_SfxCheck_MetalArm(void);
55
Vector2 MetalArm_GetArmPosition(void);
56
void MetalArm_CheckPlayerCollisions(void);
57
void MetalArm_State_Idle(void);
58
void MetalArm_State_MoveToHold(void);
59
void MetalArm_State_Holding(void);
60
void MetalArm_State_MoveToStart(void);
61
62
#endif //! OBJ_METALARM_H
63
64