Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/HCZ/Gondola.h
338 views
1
#ifndef OBJ_GONDOLA_H
2
#define OBJ_GONDOLA_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectGondola {
8
RSDK_OBJECT
9
uint16 aniFrames;
10
bool32 taggedBoatIDs[3];
11
bool32 hasAchievement;
12
};
13
14
// Entity Class
15
struct EntityGondola {
16
RSDK_ENTITY
17
StateMachine(state);
18
int32 minY;
19
int32 maxY;
20
uint8 boatID;
21
uint8 activePlayers;
22
Vector2 startPos;
23
int32 unused;
24
bool32 waterInRange;
25
bool32 stoppedL;
26
bool32 stoppedR;
27
int32 waterDistance;
28
Vector2 centerPos;
29
Vector2 drawPos;
30
Vector2 collisionOffset;
31
int32 stoodAngle;
32
int32 maxStoodAngle;
33
int32 floatAngle;
34
Hitbox hitbox;
35
Animator animator;
36
};
37
38
// Object Struct
39
extern ObjectGondola *Gondola;
40
41
// Standard Entity Events
42
void Gondola_Update(void);
43
void Gondola_LateUpdate(void);
44
void Gondola_StaticUpdate(void);
45
void Gondola_Draw(void);
46
void Gondola_Create(void *data);
47
void Gondola_StageLoad(void);
48
#if GAME_INCLUDE_EDITOR
49
void Gondola_EditorDraw(void);
50
void Gondola_EditorLoad(void);
51
#endif
52
void Gondola_Serialize(void);
53
54
// Extra Entity Functions
55
int32 Gondola_GetWaterLevel(void);
56
void Gondola_HandleWaterFloating(void);
57
void Gondola_HandleTilting(void);
58
void Gondola_HandleMoveVelocity(void);
59
void Gondola_HandleTileCollisions(void);
60
void Gondola_HandlePlayerInteractions(void);
61
62
#endif //! OBJ_GONDOLA_H
63
64