Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/Helpers/BadnikHelpers.c
338 views
1
// ---------------------------------------------------------------------
2
// RSDK Project: Sonic Mania
3
// Object Description: BadnikHelpers Object
4
// Object Author: Christian Whitehead/Simon Thomley/Hunter Bridges
5
// Decompiled by: Rubberduckycooly & RMGRich
6
// ---------------------------------------------------------------------
7
8
#include "Game.h"
9
10
ObjectBadnikHelpers *BadnikHelpers = NULL;
11
12
void BadnikHelpers_Update(void) {}
13
14
void BadnikHelpers_LateUpdate(void) {}
15
16
void BadnikHelpers_StaticUpdate(void) {}
17
18
void BadnikHelpers_Draw(void) {}
19
20
void BadnikHelpers_Create(void *data) {}
21
22
void BadnikHelpers_StageLoad(void) {}
23
24
void BadnikHelpers_BadnikBreak(void *badnik, bool32 destroy, bool32 spawnAnimals)
25
{
26
Entity *badnikEntity = badnik;
27
28
if (spawnAnimals) {
29
CREATE_ENTITY(Animals, INT_TO_VOID((Animals->animalTypes[(ZONE_RAND(0, 32) >> 4)]) + 1), badnikEntity->position.x, badnikEntity->position.y);
30
}
31
32
EntityExplosion *explosion = CREATE_ENTITY(Explosion, INT_TO_VOID(EXPLOSION_ENEMY), badnikEntity->position.x, badnikEntity->position.y);
33
explosion->drawGroup = Zone->objectDrawGroup[1];
34
RSDK.PlaySfx(Explosion->sfxDestroy, false, 255);
35
36
if (destroy)
37
destroyEntity(badnikEntity);
38
}
39
40
void BadnikHelpers_BadnikBreakUnseeded(void *badnik, bool32 destroy, bool32 spawnAnimals)
41
{
42
Entity *badnikEntity = badnik;
43
44
if (spawnAnimals) {
45
CREATE_ENTITY(Animals, INT_TO_VOID((Animals->animalTypes[(RSDK.Rand(0, 32) >> 4)]) + 1), badnikEntity->position.x, badnikEntity->position.y);
46
}
47
48
EntityExplosion *explosion = CREATE_ENTITY(Explosion, INT_TO_VOID(EXPLOSION_ENEMY), badnikEntity->position.x, badnikEntity->position.y);
49
explosion->drawGroup = Zone->objectDrawGroup[1];
50
RSDK.PlaySfx(Explosion->sfxDestroy, false, 255);
51
52
if (destroy)
53
destroyEntity(badnikEntity);
54
}
55
56
int32 BadnikHelpers_Oscillate(int32 origin, int32 speed, int32 amplitude)
57
{
58
RSDK_THIS_GEN(); // generic type
59
60
self->angle = (self->angle + speed) & 0xFF;
61
return ((RSDK.Sin256(self->angle) << amplitude) + origin) & 0xFFFF0000;
62
}
63
64
#if GAME_INCLUDE_EDITOR
65
void BadnikHelpers_EditorDraw(void) {}
66
67
void BadnikHelpers_EditorLoad(void) {}
68
#endif
69
70
void BadnikHelpers_Serialize(void) {}
71
72