Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/Common/Button.h
338 views
1
#ifndef OBJ_BUTTON_H
2
#define OBJ_BUTTON_H
3
4
#include "Game.h"
5
6
typedef enum { BUTTON_FLOOR, BUTTON_ROOF, BUTTON_RWALL, BUTTON_LWALL } ButtonTypes;
7
8
// Object Class
9
struct ObjectButton {
10
RSDK_OBJECT
11
uint16 aniFrames;
12
bool32 hasEggman;
13
bool32 hasPhantomRider;
14
Hitbox hitboxV;
15
Hitbox hitboxH;
16
int32 activatePos;
17
int32 buttonOffset;
18
int32 hitboxOffset;
19
int32 unused1; // set in stageload, but never used. no way to tell what it is
20
uint16 sfxButton;
21
};
22
23
// Entity Class
24
struct EntityButton {
25
MANIA_BUTTON_BASE
26
27
Hitbox hitboxButton;
28
Animator buttonAnimator;
29
Animator baseAnimator;
30
};
31
32
// Object Struct
33
extern ObjectButton *Button;
34
35
// Standard Entity Events
36
void Button_Update(void);
37
void Button_LateUpdate(void);
38
void Button_StaticUpdate(void);
39
void Button_Draw(void);
40
void Button_Create(void *data);
41
void Button_StageLoad(void);
42
#if GAME_INCLUDE_EDITOR
43
void Button_EditorDraw(void);
44
void Button_EditorLoad(void);
45
#endif
46
void Button_Serialize(void);
47
48
// Extra Entity Functions
49
void Button_CheckEggmanCollisions(void);
50
void Button_CheckPRiderCollisions(void);
51
52
void Button_HandleFloor(void);
53
void Button_HandleRoof(void);
54
void Button_HandleRWall(void);
55
void Button_HandleLWall(void);
56
57
#endif //! OBJ_BUTTON_H
58
59