Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/HCZ/Jellygnite.h
338 views
1
#ifndef OBJ_JELLYGNITE_H
2
#define OBJ_JELLYGNITE_H
3
4
#include "Game.h"
5
6
typedef enum {
7
JELLYGNITE_ANI_FLOATING,
8
JELLYGNITE_ANI_ANGRY,
9
JELLYGNITE_ANI_FLASHING,
10
} JellygniteAnimIDs;
11
12
// Object Class
13
struct ObjectJellygnite {
14
RSDK_OBJECT
15
Hitbox hitbox;
16
Hitbox hitboxUnused;
17
uint16 aniFrames;
18
uint16 sfxGrab;
19
uint16 sfxElectrify;
20
};
21
22
// Entity Class
23
struct EntityJellygnite {
24
RSDK_ENTITY
25
StateMachine(state);
26
Vector2 startPos;
27
uint8 startDir;
28
uint8 timer;
29
uint8 grabDelay;
30
int32 frontTentacleAngle;
31
int32 oscillateAngle;
32
EntityPlayer *grabbedPlayer;
33
uint8 shakeTimer;
34
uint8 shakeCount;
35
uint8 lastShakeFlags;
36
uint8 prevAnimationID;
37
Animator bodyAnimator;
38
Animator frontTentacleAnimator;
39
Animator backTentacleAnimator;
40
};
41
42
// Object Struct
43
extern ObjectJellygnite *Jellygnite;
44
45
// Standard Entity Events
46
void Jellygnite_Update(void);
47
void Jellygnite_LateUpdate(void);
48
void Jellygnite_StaticUpdate(void);
49
void Jellygnite_Draw(void);
50
void Jellygnite_Create(void *data);
51
void Jellygnite_StageLoad(void);
52
#if GAME_INCLUDE_EDITOR
53
void Jellygnite_EditorDraw(void);
54
void Jellygnite_EditorLoad(void);
55
#endif
56
void Jellygnite_Serialize(void);
57
58
// Extra Entity Functions
59
void Jellygnite_DebugSpawn(void);
60
void Jellygnite_DebugDraw(void);
61
62
void Jellygnite_SetupAnimations(uint8 animationID);
63
64
void Jellygnite_CheckPlayerCollisions(void);
65
void Jellygnite_HandlePlayerStruggle(void);
66
bool32 Jellygnite_CheckInWater(EntityPlayer *player);
67
68
void Jellygnite_DrawBackTentacle(void);
69
void Jellygnite_DrawFrontTentacle(void);
70
71
void Jellygnite_State_Init(void);
72
void Jellygnite_State_Swimming(void);
73
void Jellygnite_State_GrabbedPlayer(void);
74
void Jellygnite_State_Explode(void);
75
76
#endif //! OBJ_JELLYGNITE_H
77
78