Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/UFO/UFO_ItemBox.h
338 views
1
#ifndef OBJ_UFO_ITEMBOX_H
2
#define OBJ_UFO_ITEMBOX_H
3
4
#include "Game.h"
5
6
typedef enum {
7
UFO_ITEMBOX_RING,
8
UFO_ITEMBOX_SPHERE,
9
UFO_ITEMBOX_LVLUP,
10
#if MANIA_USE_PLUS
11
UFO_ITEMBOX_BUMPER,
12
#endif
13
} UFO_ItemBoxTypes;
14
15
// Object Class
16
struct ObjectUFO_ItemBox {
17
RSDK_OBJECT
18
int32 breakCount;
19
int32 unused1;
20
int32 unused2;
21
uint16 aniFrames;
22
uint16 meshFrames;
23
uint16 sceneIndex;
24
uint16 sfxDestroy;
25
uint16 sfxRockemSockem;
26
uint16 sfxBumper;
27
};
28
29
// Entity Class
30
struct EntityUFO_ItemBox {
31
RSDK_ENTITY
32
StateMachine(state);
33
int32 type;
34
int32 timer;
35
int32 height;
36
int32 contentsTimer;
37
int32 worldX;
38
int32 worldY;
39
Vector2 drawPos;
40
Matrix unusedMatrix1;
41
Matrix matTransform;
42
Matrix matWorld;
43
Matrix matNormal;
44
int32 sfxTimer;
45
Animator contentsAnimator;
46
Animator unusedAnimator1;
47
};
48
49
// Object Struct
50
extern ObjectUFO_ItemBox *UFO_ItemBox;
51
52
// Standard Entity Events
53
void UFO_ItemBox_Update(void);
54
void UFO_ItemBox_LateUpdate(void);
55
void UFO_ItemBox_StaticUpdate(void);
56
void UFO_ItemBox_Draw(void);
57
void UFO_ItemBox_Create(void *data);
58
void UFO_ItemBox_StageLoad(void);
59
#if GAME_INCLUDE_EDITOR
60
void UFO_ItemBox_EditorDraw(void);
61
void UFO_ItemBox_EditorLoad(void);
62
#endif
63
void UFO_ItemBox_Serialize(void);
64
65
// Extra Entity Functions
66
void UFO_ItemBox_State_HasContents(void);
67
void UFO_ItemBox_State_ShowContents(void);
68
69
#endif //! OBJ_UFO_ITEMBOX_H
70
71