From b174637d188288ac7f454efeb4c97afd26c0d872 Mon Sep 17 00:00:00 2001 From: Behemoth Date: Wed, 26 Aug 2020 02:21:46 +0200 Subject: - label effect functions - combine object creation function --- src/createObject.c | 96 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 85 insertions(+), 11 deletions(-) (limited to 'src/createObject.c') diff --git a/src/createObject.c b/src/createObject.c index 93db1d93..d58c995a 100644 --- a/src/createObject.c +++ b/src/createObject.c @@ -1,21 +1,95 @@ #include "global.h" #include "entity.h" +#include "room.h" extern Entity* GetEmptyEntity(); extern void AppendEntityToList(Entity*, u8); -Entity* CreateObject(u32 subtype, u32 param1, u32 param2) +Entity* CreateObject(u32 subtype, u32 form, u32 parameter) { + Entity* ent; -{ - Entity* newEnt; + ent = GetEmptyEntity(); + if (ent != NULL) { + ent->entityType.type = 6; + ent->entityType.subtype = subtype; + ent->entityType.form = form; + ent->entityType.parameter = parameter; + AppendEntityToList(ent, 6); + } + return ent; +} + +Entity* CreateObjectWithParent(Entity* parentEnt, u32 subtype, u32 form, u32 parameter) { + Entity* ent; + + ent = CreateObject(subtype, form, parameter); + if (ent != NULL) { + ent->parent = parentEnt; + CopyPosition(parentEnt, ent); + } + + return ent; +} + +Entity* CreateFx(Entity* parentEnt, u32 param1, u32 param2) { + asm("nop"); + CreateObjectWithParent(parentEnt, 0, 0x60, 0); +} + +void CreateDust(Entity* parent) { + CreateFx(parent, 2, 0); +} + +void CreateDustAt(s32 xOff, s32 yOff, u32 layer) { + Entity* ent; + + ent = CreateObject(0xf, 2, 0); + if (ent != NULL) { + ent->x.HALF.HI = gRoomControls.roomOriginX + xOff; + ent->y.HALF.HI = gRoomControls.roomOriginY + yOff; + ent->collisionLayer = layer; + } +} + +void CreateDustSmall(Entity* parent) { + CreateFx(parent, 0x11, 0); +} + +void CreateExplosionBroken(Entity* parent) { + CreateFx(parent, 0x6, 0); +} + +void CreateWaterSplash(Entity* parent) { + CreateFx(parent, 0xb, 0); +} + +Entity* sub_080A2A20(Entity* parent, u32 form, u32 parameter) { + Entity* ent; + + ent = CreateObjectWithParent(parent, 0, form, parameter); + if (ent != NULL) { + ent->actionDelay = 5; + } + return ent; +} + +Entity* sub_080A2A3C(Entity* parent, u32 form, u32 subtype, u32 param_4) { + Entity* ent; + + ent = CreateObjectWithParent(parent, 0, form, subtype); + if (ent != NULL) { + ent->actionDelay = 5; + ent->field_0x86 = param_4; + } + return ent; +} + +Entity* CreateWaterTrace(Entity* parent) { + Entity* ent; - newEnt = GetEmptyEntity(); - if (newEnt != NULL) { - (newEnt->entityType).type = 6; - (newEnt->entityType).subtype = subtype; - (newEnt->entityType).form = param1; - (newEnt->entityType).parameter = param2; - AppendEntityToList(newEnt, 6); + ent = CreateFx(parent, 0x20, 0); + if (ent != NULL) { + ent->spritePriority.b0 = 7; } - return newEnt; + return ent; } -- cgit v1.2.3 From 02eaaf938ecec28b8445d7c105ddc321b37d23e3 Mon Sep 17 00:00:00 2001 From: Behemoth Date: Wed, 26 Aug 2020 13:56:00 +0200 Subject: lol --- src/createObject.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/createObject.c') diff --git a/src/createObject.c b/src/createObject.c index d58c995a..9397169b 100644 --- a/src/createObject.c +++ b/src/createObject.c @@ -31,9 +31,8 @@ Entity* CreateObjectWithParent(Entity* parentEnt, u32 subtype, u32 form, u32 par return ent; } -Entity* CreateFx(Entity* parentEnt, u32 param1, u32 param2) { - asm("nop"); - CreateObjectWithParent(parentEnt, 0, 0x60, 0); +Entity* CreateFx(Entity* parentEnt, u32 form, u32 parameter) { + CreateObjectWithParent(parentEnt, 0xf, form, parameter); } void CreateDust(Entity* parent) { -- cgit v1.2.3 From ccd02a96ec7c7ab3158d4fb873f11d7de708bd59 Mon Sep 17 00:00:00 2001 From: Behemoth Date: Fri, 28 Aug 2020 03:34:01 +0200 Subject: whoops --- src/createObject.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/createObject.c') diff --git a/src/createObject.c b/src/createObject.c index 9397169b..25adbe29 100644 --- a/src/createObject.c +++ b/src/createObject.c @@ -32,7 +32,7 @@ Entity* CreateObjectWithParent(Entity* parentEnt, u32 subtype, u32 form, u32 par } Entity* CreateFx(Entity* parentEnt, u32 form, u32 parameter) { - CreateObjectWithParent(parentEnt, 0xf, form, parameter); + return CreateObjectWithParent(parentEnt, 0xf, form, parameter); } void CreateDust(Entity* parent) { -- cgit v1.2.3 From 34d16a7db5098015386b092cbfcdad8ffdfe9c86 Mon Sep 17 00:00:00 2001 From: Behemoth Date: Fri, 18 Sep 2020 01:20:53 +0200 Subject: decompile madderpillar --- src/createObject.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/createObject.c') diff --git a/src/createObject.c b/src/createObject.c index 25adbe29..ad852900 100644 --- a/src/createObject.c +++ b/src/createObject.c @@ -78,7 +78,7 @@ Entity* sub_080A2A3C(Entity* parent, u32 form, u32 subtype, u32 param_4) { ent = CreateObjectWithParent(parent, 0, form, subtype); if (ent != NULL) { ent->actionDelay = 5; - ent->field_0x86 = param_4; + ent->field_0x86.HWORD = param_4; } return ent; } -- cgit v1.2.3