Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/MSZ/EggLoco.h
338 views
1
#ifndef OBJ_EGGLOCO_H
2
#define OBJ_EGGLOCO_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectEggLoco {
8
RSDK_OBJECT
9
uint16 aniFrames;
10
uint16 sfxSmoke;
11
uint16 sfxWhistle;
12
};
13
14
// Entity Class
15
struct EntityEggLoco {
16
RSDK_ENTITY
17
StateMachine(state);
18
int32 timer;
19
int32 couplingAngle;
20
int32 tootPullPos;
21
int32 unused1;
22
int32 unused2;
23
Animator unusedAnimator;
24
Animator eggmanAnimator;
25
Animator eggmanTootAnimator;
26
Animator locomotiveAnimator;
27
Animator whistleAnimator;
28
Animator bigWheelAnimator;
29
Animator bigWheelEdgeAnimator;
30
Animator smallWheelAnimator;
31
Animator couplingAnimator;
32
Animator guardAnimator;
33
Animator lanternAnimator;
34
Animator pistonRodAnimator;
35
Animator whistleCableAnimator;
36
};
37
38
// Object Struct
39
extern ObjectEggLoco *EggLoco;
40
41
// Standard Entity Events
42
void EggLoco_Update(void);
43
void EggLoco_LateUpdate(void);
44
void EggLoco_StaticUpdate(void);
45
void EggLoco_Draw(void);
46
void EggLoco_Create(void *data);
47
void EggLoco_StageLoad(void);
48
#if GAME_INCLUDE_EDITOR
49
void EggLoco_EditorDraw(void);
50
void EggLoco_EditorLoad(void);
51
#endif
52
void EggLoco_Serialize(void);
53
54
// Extra Entity Functions
55
bool32 EggLoco_SfxCheck_LocoChugga(void);
56
void EggLoco_SfxUpdate_LocoChugga(int32 sfx);
57
58
void EggLoco_State_TootDelay(void);
59
void EggLoco_State_Whistle(void);
60
void EggLoco_State_Tooting(void);
61
62
#endif //! OBJ_EGGLOCO_H
63
64