Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/TMZ/MagnetSphere.h
338 views
1
#ifndef OBJ_MAGNETSPHERE_H
2
#define OBJ_MAGNETSPHERE_H
3
4
#include "Game.h"
5
6
// Object Class
7
struct ObjectMagnetSphere {
8
RSDK_OBJECT
9
Hitbox hitbox;
10
uint8 sphereAngle[PLAYER_COUNT];
11
uint8 playerAngles[PLAYER_COUNT];
12
TABLE(int32 angleTable[16], { 0x20, 0x20, 0x20, 0x30, 0x40, 0x50, 0x60, 0x60, 0x60, 0xA0, 0xA0, 0xB0, 0xC0, 0xD0, 0xE0, 0xE0 });
13
uint16 aniFrames;
14
uint16 sfxBumper;
15
uint16 sfxPlasmaBall;
16
};
17
18
// Entity Class
19
struct EntityMagnetSphere {
20
RSDK_ENTITY
21
uint8 activePlayers;
22
uint8 playerTimers[PLAYER_COUNT];
23
Animator unusedAnimator;
24
Animator glassInnerAnimator;
25
Animator glassOuterAnimator;
26
Animator plasma1Animator;
27
Animator plasma2Animator;
28
Animator centerBallAnimator;
29
};
30
31
// Object Struct
32
extern ObjectMagnetSphere *MagnetSphere;
33
34
// Standard Entity Events
35
void MagnetSphere_Update(void);
36
void MagnetSphere_LateUpdate(void);
37
void MagnetSphere_StaticUpdate(void);
38
void MagnetSphere_Draw(void);
39
void MagnetSphere_Create(void *data);
40
void MagnetSphere_StageLoad(void);
41
#if GAME_INCLUDE_EDITOR
42
void MagnetSphere_EditorDraw(void);
43
void MagnetSphere_EditorLoad(void);
44
#endif
45
void MagnetSphere_Serialize(void);
46
47
// Extra Entity Functions
48
void MagnetSphere_DebugSpawn(void);
49
void MagnetSphere_DebugDraw(void);
50
51
void MagnetSphere_CheckPlayerCollision(void);
52
void MagnetSphere_MovePlayer(EntityPlayer *player, int32 playerID);
53
54
#endif //! OBJ_MAGNETSPHERE_H
55
56