Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/ERZ/ERZRider.c
338 views
1
// ---------------------------------------------------------------------
2
// RSDK Project: Sonic Mania
3
// Object Description: ERZRider Object
4
// Object Author: Christian Whitehead/Simon Thomley/Hunter Bridges
5
// Decompiled by: Rubberduckycooly & RMGRich
6
// ---------------------------------------------------------------------
7
8
#include "Game.h"
9
10
ObjectERZRider *ERZRider;
11
12
void ERZRider_Update(void)
13
{
14
RSDK_THIS(ERZRider);
15
16
StateMachine_Run(self->state);
17
}
18
19
void ERZRider_LateUpdate(void) {}
20
21
void ERZRider_StaticUpdate(void) {}
22
23
void ERZRider_Draw(void)
24
{
25
RSDK_THIS(ERZRider);
26
27
if (self->stateDraw) {
28
StateMachine_Run(self->stateDraw);
29
}
30
else {
31
RSDK.DrawSprite(&self->mainAnimator, NULL, false);
32
}
33
}
34
35
void ERZRider_Create(void *data)
36
{
37
RSDK_THIS(ERZRider);
38
39
if (!SceneInfo->inEditor) {
40
self->visible = true;
41
self->drawGroup = Zone->objectDrawGroup[0];
42
self->active = ACTIVE_NORMAL;
43
self->updateRange.x = 0x800000;
44
self->updateRange.y = 0x800000;
45
self->isJimmy = VOID_TO_INT(data);
46
47
if (!VOID_TO_INT(data)) {
48
self->drawFX = FX_FLIP;
49
50
RSDK.SetSpriteAnimation(ERZRider->aniFrames, 0, &self->mainAnimator, true, 0);
51
RSDK.SetSpriteAnimation(ERZRider->aniFrames, 4, &self->jimmyAnimator, true, 0);
52
RSDK.SetSpriteAnimation(ERZRider->aniFrames, 5, &self->wheelAnimator, true, 0);
53
RSDK.SetSpriteAnimation(ERZRider->aniFrames, 6, &self->thrustAnimator, true, 0);
54
55
self->startPos = self->position;
56
self->stateDraw = ERZRider_Draw_Rider;
57
self->state = StateMachine_None;
58
}
59
}
60
}
61
62
void ERZRider_StageLoad(void) { ERZRider->aniFrames = RSDK.LoadSpriteAnimation("Phantom/PhantomRider.bin", SCOPE_STAGE); }
63
64
void ERZRider_Draw_Rider(void)
65
{
66
// thats all folks!
67
}
68
69
#if GAME_INCLUDE_EDITOR
70
void ERZRider_EditorDraw(void)
71
{
72
RSDK_THIS(ERZRider);
73
74
self->drawFX = FX_FLIP;
75
RSDK.SetSpriteAnimation(ERZRider->aniFrames, 0, &self->mainAnimator, false, 0);
76
RSDK.SetSpriteAnimation(ERZRider->aniFrames, 4, &self->jimmyAnimator, false, 0);
77
RSDK.SetSpriteAnimation(ERZRider->aniFrames, 5, &self->wheelAnimator, false, 0);
78
RSDK.SetSpriteAnimation(ERZRider->aniFrames, 6, &self->thrustAnimator, false, 0);
79
}
80
81
void ERZRider_EditorLoad(void) { ERZRider->aniFrames = RSDK.LoadSpriteAnimation("Phantom/PhantomRider.bin", SCOPE_STAGE); }
82
#endif
83
84
void ERZRider_Serialize(void) {}
85
86