Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/MMZ/PohBee.h
338 views
1
#ifndef OBJ_POHBEE_H
2
#define OBJ_POHBEE_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectPohBee {
8
RSDK_OBJECT
9
Hitbox hitbox;
10
uint16 aniFrames;
11
};
12
13
// Entity Class
14
struct EntityPohBee {
15
RSDK_ENTITY
16
StateMachine(state);
17
Vector2 startPos;
18
uint8 startDir;
19
int32 chainPos[2];
20
int32 chainAngle[2];
21
int32 unused;
22
bool32 isTurning;
23
Animator bodyAnimator;
24
Animator wingsAnimator;
25
Animator chainAnimator;
26
Animator spikeAnimator;
27
Hitbox hitboxes[2];
28
uint8 spikeCount;
29
Vector2 amplitude;
30
PlaneFilterTypes planeFilter;
31
};
32
33
// Object Struct
34
extern ObjectPohBee *PohBee;
35
36
// Standard Entity Events
37
void PohBee_Update(void);
38
void PohBee_LateUpdate(void);
39
void PohBee_StaticUpdate(void);
40
void PohBee_Draw(void);
41
void PohBee_Create(void *data);
42
void PohBee_StageLoad(void);
43
#if GAME_INCLUDE_EDITOR
44
void PohBee_EditorDraw(void);
45
void PohBee_EditorLoad(void);
46
#endif
47
void PohBee_Serialize(void);
48
49
// Extra Entity Functions
50
void PohBee_DebugSpawn(void);
51
void PohBee_DebugDraw(void);
52
53
void PohBee_CheckOffScreen(void);
54
void PohBee_CheckPlayerCollisions(void);
55
56
void PohBee_DrawSprites(void);
57
58
Vector2 PohBee_GetSpikePos(uint8 spikeID, uint8 shift);
59
void PohBee_SetupHitboxes(void);
60
61
void PohBee_State_Init(void);
62
void PohBee_State_Move(void);
63
64
#endif //! OBJ_POHBEE_H
65
66