Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/LRZ/LRZConvItem.h
338 views
1
#ifndef OBJ_LRZCONVITEM_H
2
#define OBJ_LRZCONVITEM_H
3
4
#include "Game.h"
5
6
typedef enum {
7
LRZCONVITEM_ROCK,
8
LRZCONVITEM_SPIKEBALL,
9
} LRZConvItemTypes;
10
11
// Object Class
12
struct ObjectLRZConvItem {
13
RSDK_OBJECT
14
Hitbox hitboxRock;
15
Hitbox hitboxSpikeball;
16
uint16 aniFrames;
17
uint16 sfxSizzle;
18
};
19
20
// Entity Class
21
struct EntityLRZConvItem {
22
RSDK_ENTITY
23
StateMachine(state);
24
uint8 type;
25
Vector2 startPos;
26
int32 unused;
27
Animator animator;
28
};
29
30
// Object Struct
31
extern ObjectLRZConvItem *LRZConvItem;
32
33
// Standard Entity Events
34
void LRZConvItem_Update(void);
35
void LRZConvItem_LateUpdate(void);
36
void LRZConvItem_StaticUpdate(void);
37
void LRZConvItem_Draw(void);
38
void LRZConvItem_Create(void *data);
39
void LRZConvItem_StageLoad(void);
40
#if GAME_INCLUDE_EDITOR
41
void LRZConvItem_EditorDraw(void);
42
void LRZConvItem_EditorLoad(void);
43
#endif
44
void LRZConvItem_Serialize(void);
45
46
// Extra Entity Functions
47
void LRZConvItem_SetupHitboxes(void);
48
Vector2 LRZConvItem_HandleLRZConvPhys(void *e);
49
50
void LRZConvItem_State_Rock(void);
51
void LRZConvItem_State_SpikeBall(void);
52
53
#endif //! OBJ_LRZCONVITEM_H
54
55