Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/SPZ/RockemSockem.h
338 views
1
#ifndef OBJ_ROCKEMSOCKEM_H
2
#define OBJ_ROCKEMSOCKEM_H
3
4
#include "Game.h"
5
6
// Extras
7
#define ROCKEMSOCKEM_COIL_COUNT (6)
8
9
// Object Class
10
struct ObjectRockemSockem {
11
RSDK_OBJECT
12
Hitbox hitbox;
13
uint16 aniFrames;
14
uint16 sfxRockemSockem;
15
};
16
17
// Entity Class
18
struct EntityRockemSockem {
19
RSDK_ENTITY
20
int32 bounceTimer;
21
int32 reboundTimer;
22
Vector2 drawPos;
23
Vector2 startPos;
24
Vector2 jointPositions[ROCKEMSOCKEM_COIL_COUNT];
25
Vector2 unused1[ROCKEMSOCKEM_COIL_COUNT];
26
int32 jointRotations[ROCKEMSOCKEM_COIL_COUNT];
27
int32 angleVel;
28
int32 unused2;
29
Animator baseAnimator;
30
Animator jointAnimator;
31
Animator ballAnimator;
32
};
33
34
// Object Struct
35
extern ObjectRockemSockem *RockemSockem;
36
37
// Standard Entity Events
38
void RockemSockem_Update(void);
39
void RockemSockem_LateUpdate(void);
40
void RockemSockem_StaticUpdate(void);
41
void RockemSockem_Draw(void);
42
void RockemSockem_Create(void *data);
43
void RockemSockem_StageLoad(void);
44
#if GAME_INCLUDE_EDITOR
45
void RockemSockem_EditorDraw(void);
46
void RockemSockem_EditorLoad(void);
47
#endif
48
void RockemSockem_Serialize(void);
49
50
// Extra Entity Functions
51
void RockemSockem_HandleJointPositions(void);
52
53
#endif //! OBJ_ROCKEMSOCKEM_H
54
55