summaryrefslogtreecommitdiff
path: root/src/objectUtils.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/objectUtils.c')
-rw-r--r--src/objectUtils.c70
1 files changed, 36 insertions, 34 deletions
diff --git a/src/objectUtils.c b/src/objectUtils.c
index 21ec9568..965b0437 100644
--- a/src/objectUtils.c
+++ b/src/objectUtils.c
@@ -1,17 +1,19 @@
-
-#include "global.h"
#include "entity.h"
#include "physics.h"
#include "room.h"
#include "object.h"
-#include "functions.h"
+#include "asm.h"
+#include "effects.h"
+#include "player.h"
+#include "pauseMenu.h"
#include "definitions.h"
+#include "vram.h"
#include "object/linkAnimation.h"
#include "object/itemOnGround.h"
+#include "color.h"
extern const Hitbox* const gObjectHitboxes[];
-u32 LoadObjectSprite(Entity* this, s32 type, const ObjectDefinition* definition);
extern const ObjectDefinition gObjectDefinitions[];
static Entity* CreateSpeechBubble(Entity*, u32, s32, s32);
@@ -119,20 +121,20 @@ u32 LoadObjectSprite(Entity* this, s32 type, const ObjectDefinition* definition)
return 2;
}
-Entity* CreateObject(u32 subtype, u32 form, u32 type2) {
+Entity* CreateObject(Object id, u32 type, u32 type2) {
Entity* entity = GetEmptyEntity();
if (entity != NULL) {
entity->kind = OBJECT;
- entity->id = subtype;
- entity->type = form;
+ entity->id = id;
+ entity->type = type;
entity->type2 = type2;
AppendEntityToList(entity, 6);
}
return entity;
}
-Entity* CreateObjectWithParent(Entity* parent, u32 subtype, u32 form, u32 type2) {
- Entity* entity = CreateObject(subtype, form, type2);
+Entity* CreateObjectWithParent(Entity* parent, Object id, u32 type, u32 type2) {
+ Entity* entity = CreateObject(id, type, type2);
if (entity != NULL) {
entity->parent = parent;
CopyPosition(parent, entity);
@@ -141,15 +143,15 @@ Entity* CreateObjectWithParent(Entity* parent, u32 subtype, u32 form, u32 type2)
return entity;
}
-Entity* CreateFx(Entity* parentEnt, u32 form, u32 parameter) {
- return CreateObjectWithParent(parentEnt, SPECIAL_FX, form, parameter);
+Entity* CreateFx(Entity* parentEnt, Effect type, u32 type2) {
+ return CreateObjectWithParent(parentEnt, SPECIAL_FX, type, type2);
}
-void CreateDust(Entity* parent) {
+void CreateDeathFx(Entity* parent) {
CreateFx(parent, FX_DEATH, 0);
}
-void CreateDustAt(s32 xOff, s32 yOff, u32 layer) {
+void CreateDeathFxAt(s32 xOff, s32 yOff, u32 layer) {
Entity* ent;
ent = CreateObject(SPECIAL_FX, FX_DEATH, 0);
@@ -160,41 +162,41 @@ void CreateDustAt(s32 xOff, s32 yOff, u32 layer) {
}
}
-void CreateDustSmall(Entity* parent) {
+void CreateDashFx(Entity* parent) {
CreateFx(parent, FX_DASH, 0);
}
-void CreateExplosionBroken(Entity* parent) {
+void CreateExplosionBrokenFx(Entity* parent) {
CreateFx(parent, FX_6, 0);
}
-void CreateWaterSplash(Entity* parent) {
+void CreateWaterSplashFx(Entity* parent) {
CreateFx(parent, FX_WATER_SPLASH, 0);
}
-Entity* CreateGroundItem(Entity* parent, u32 form, u32 subtype) {
+Entity* CreateGroundItem(Entity* parent, u32 item, u32 subvalue) {
Entity* ent;
- ent = CreateObjectWithParent(parent, GROUND_ITEM, form, subtype);
+ ent = CreateObjectWithParent(parent, GROUND_ITEM, item, subvalue);
if (ent != NULL) {
ent->timer = 5;
}
return ent;
}
-Entity* CreateGroundItemWithFlags(Entity* parent, u32 form, u32 subtype, u32 flags) {
+Entity* CreateGroundItemWithFlags(Entity* parent, u32 item, u32 subvalue, u32 flags) {
Entity* ent;
- ent = CreateObjectWithParent(parent, GROUND_ITEM, form, subtype);
+ ent = CreateObjectWithParent(parent, GROUND_ITEM, item, subvalue);
if (ent != NULL) {
ItemOnGroundEntity* this = (ItemOnGroundEntity*)ent;
ent->timer = 5;
- this->unk_86 = flags;
+ this->flag = flags;
}
return ent;
}
-Entity* CreateWaterTrace(Entity* parent) {
+Entity* CreateRippleFx(Entity* parent) {
Entity* ent;
ent = CreateFx(parent, FX_RIPPLE, 0);
@@ -204,12 +206,12 @@ Entity* CreateWaterTrace(Entity* parent) {
return ent;
}
-void CreateRandomWaterTrace(Entity* parent, int range) {
- s32 sVar1, sVar2, sVar3;
+void CreateRippleFxRandom(Entity* parent, s32 range) {
+ s32 sVar1, sVar2;
Entity* ent;
u32 uVar3;
- ent = CreateWaterTrace(parent);
+ ent = CreateRippleFx(parent);
if (ent != NULL) {
uVar3 = Random();
sVar1 = (int)uVar3 % (++range);
@@ -228,7 +230,7 @@ void CreateRandomWaterTrace(Entity* parent, int range) {
}
}
-Entity* CreateLargeWaterTrace(Entity* parent) {
+Entity* CreateLargeRippleFx(Entity* parent) {
Entity* ent = CreateFx(parent, FX_RIPPLE_LARGE, 0);
if (ent != NULL) {
ent->spritePriority.b0 = 7;
@@ -236,22 +238,22 @@ Entity* CreateLargeWaterTrace(Entity* parent) {
return ent;
}
-void sub_080A2AF4(Entity* parent, s32 param_2, s32 param_3) {
+void CreateLargeRippleFxRandom(Entity* parent, s32 minDistance, s32 maxDistance) {
Entity* entity;
s32 radius;
s32 angle;
- entity = CreateLargeWaterTrace(parent);
+ entity = CreateLargeRippleFx(parent);
if (entity != NULL) {
angle = Random();
- radius = (angle % (param_3 - param_2 + 1)) + param_2;
+ radius = (angle % (maxDistance - minDistance + 1)) + minDistance;
angle = angle >> 0x10 & 0xff;
entity->x.WORD += FixedDiv(FixedMul(gSineTable[angle], radius << 8), 0x100) << 8;
entity->y.WORD -= FixedDiv(FixedMul(gSineTable[angle + 0x40], radius << 8), 0x100) << 8;
}
}
-void CreateSparkle(Entity* entity) {
+void CreateSparkleFx(Entity* parent) {
Entity* sparkle;
u32 rand;
s32 y;
@@ -268,10 +270,10 @@ void CreateSparkle(Entity* entity) {
if (4 < y) {
y = -y;
}
- PositionRelative(entity, sparkle, x << 0x10, y << 0x10);
- SortEntityAbove(entity, sparkle);
- sparkle->spriteOffsetX = entity->spriteOffsetX;
- sparkle->spriteOffsetY = entity->spriteOffsetY;
+ PositionRelative(parent, sparkle, x << 0x10, y << 0x10);
+ SortEntityAbove(parent, sparkle);
+ sparkle->spriteOffsetX = parent->spriteOffsetX;
+ sparkle->spriteOffsetY = parent->spriteOffsetY;
}
}