diff options
| author | Tal Hayon <talhayon1@gmail.com> | 2022-05-20 19:34:58 +0300 |
|---|---|---|
| committer | Tal Hayon <talhayon1@gmail.com> | 2022-05-21 00:15:10 +0300 |
| commit | 62ece59d4d36e12b5807ae061e0aa4defd35ce14 (patch) | |
| tree | 86ba4f5de9c93382de437ac453490e2cced31c5d /src/manager/delayedEntityLoadManager.c | |
| parent | a7844b9eb124c729c73446c8d39bb6304edc75b8 (diff) | |
Match sub_0805ACC0
Diffstat (limited to 'src/manager/delayedEntityLoadManager.c')
| -rw-r--r-- | src/manager/delayedEntityLoadManager.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/manager/delayedEntityLoadManager.c b/src/manager/delayedEntityLoadManager.c index 00a0bbde..a878d70e 100644 --- a/src/manager/delayedEntityLoadManager.c +++ b/src/manager/delayedEntityLoadManager.c @@ -5,8 +5,33 @@ * @brief Delayed entity loader. */ #include "manager/delayedEntityLoadManager.h" +#include "room.h" ASM_FUNC("asm/non_matching/delayedEntityLoadManager/DelayedEntityLoadManager_Main.inc", void DelayedEntityLoadManager_Main()) -ASM_FUNC("asm/non_matching/delayedEntityLoadManager/sub_0805ACC0.inc", u32 sub_0805ACC0(Entity* ent)) +u32 sub_0805ACC0(Entity* param_1) { + u16* ptr; + Entity* entity; + Entity* list; + s32 tmp; + + if (param_1->health == 0) { + return 0; + } + tmp = (param_1->health & 0x7f) - 1; + list = (Entity*)(gEntityLists + 6); + + for (entity = gEntityLists[6].first; entity != list; entity = entity->next) { + if ((entity->kind == 9 && entity->id == 0x16) && entity->type2 <= tmp && + (entity->type2 + *(u8*)((u32)&entity->zVelocity + 1)) > tmp) { + + ptr = (u16*)GetCurrentRoomProperty(entity->type); + if (ptr != NULL) { + ptr += (tmp - entity->type2) * 8; + return (((ptr[2] + gRoomControls.origin_x) * 0x10000) | ptr[3]) + gRoomControls.origin_y; + } + } + } + return 0; +} |
