From 1a6d14cd36f803607b66a6e5688fcce219caeaa3 Mon Sep 17 00:00:00 2001 From: Elliptic Ellipsis Date: Sat, 19 Mar 2022 04:02:46 +0000 Subject: New RoomMemory struct --- src/code_08049CD4.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'src/code_08049CD4.c') diff --git a/src/code_08049CD4.c b/src/code_08049CD4.c index a773306d..5f030d8e 100644 --- a/src/code_08049CD4.c +++ b/src/code_08049CD4.c @@ -1,25 +1,25 @@ +#define NENT_DEPRECATED #include "global.h" - -extern u32* gUnk_020354B0; -extern u32 gRoomMemory; +#include "entity.h" +#include "room.h" extern void MemFill32(u32, void*, u32); void ClearRoomMemory(void) { - MemFill32(0xFFFFFFFF, &gRoomMemory, 0x40); - gUnk_020354B0 = &gRoomMemory; + MemFill32(0xFFFFFFFF, gRoomMemory, 0x40); + gUnk_020354B0 = gRoomMemory; } -void sub_08049CF4(u8* arg0) { - u8 field_0x6c = *(arg0 + 0x6c); +void sub_08049CF4(GenericEntity* ent) { + u8 field_0x6c = ent->field_0x6c.HALF.LO; if (field_0x6c & 0x80) { - *(gUnk_020354B0 + 1) |= 1 << (field_0x6c & 0x1f); + gUnk_020354B0->unk_04 |= 1 << (field_0x6c & 0x1f); } } u32 sub_08049D1C(u32 arg0) { - u32 bitmask = *(gUnk_020354B0 + 1) >> arg0; + u32 bitmask = gUnk_020354B0->unk_04 >> arg0; u32 output = 1; output &= ~bitmask; return output; -} +} \ No newline at end of file -- cgit v1.2.3 From a320d42431d7dfdcad4ac77f416415001ecf854d Mon Sep 17 00:00:00 2001 From: Elliptic Ellipsis Date: Sat, 19 Mar 2022 06:35:05 +0000 Subject: Format --- src/code_08049CD4.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/code_08049CD4.c') diff --git a/src/code_08049CD4.c b/src/code_08049CD4.c index 5f030d8e..8fb02487 100644 --- a/src/code_08049CD4.c +++ b/src/code_08049CD4.c @@ -22,4 +22,4 @@ u32 sub_08049D1C(u32 arg0) { u32 output = 1; output &= ~bitmask; return output; -} \ No newline at end of file +} -- cgit v1.2.3 From 4a01f2f7d71c1f896fedc24932daddf625eb04e5 Mon Sep 17 00:00:00 2001 From: Elliptic Ellipsis Date: Sun, 20 Mar 2022 15:39:13 +0000 Subject: Move top three functions of D30 to CD4 and rename --- src/code_08049CD4.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'src/code_08049CD4.c') diff --git a/src/code_08049CD4.c b/src/code_08049CD4.c index 8fb02487..c79effa8 100644 --- a/src/code_08049CD4.c +++ b/src/code_08049CD4.c @@ -5,6 +5,9 @@ extern void MemFill32(u32, void*, u32); +void sub_08049DCC(RoomMemory*); +RoomMemory* sub_08049D88(void); + void ClearRoomMemory(void) { MemFill32(0xFFFFFFFF, gRoomMemory, 0x40); gUnk_020354B0 = gRoomMemory; @@ -23,3 +26,53 @@ u32 sub_08049D1C(u32 arg0) { output &= ~bitmask; return output; } + + +void UpdateRoomTracker(void) { + gUnk_020354B0 = gRoomMemory; + + do { + if (gUnk_020354B0->area == gRoomControls.area && gUnk_020354B0->room == gRoomControls.room) { + sub_08049DCC(gUnk_020354B0); + return; + } + gUnk_020354B0++; + + } while (gUnk_020354B0 < gRoomMemory + 8); + gUnk_020354B0 = sub_08049D88(); +} + +RoomMemory* sub_08049D88(void) { + RoomMemory* r4 = gRoomMemory; + RoomMemory* r1 = r4 + 1; + + do { + if (r1->unk_02 > r4->unk_02) { + r4 = r1; + } + r1++; + } while (r1 < gRoomMemory + 8); + + r4->area = gRoomControls.area; + r4->room = gRoomControls.room; + + r4->unk_02 = 0xFFFF; + r4->unk_04 = 0; + + sub_08049DCC(r4); + + return r4; +} + +void sub_08049DCC(RoomMemory* rm) { + RoomMemory* r1 = gRoomMemory; + + do { + if (r1->unk_02 < rm->unk_02) { + r1->unk_02++; + } + r1++; + } while (r1 < gRoomMemory + 8); + + rm->unk_02 = 0; +} \ No newline at end of file -- cgit v1.2.3 From cbb3beaa4527e4b54db2300bbbf699b9b6e4dc48 Mon Sep 17 00:00:00 2001 From: Elliptic Ellipsis Date: Sun, 20 Mar 2022 15:47:11 +0000 Subject: Tidy includes --- src/code_08049CD4.c | 1 - 1 file changed, 1 deletion(-) (limited to 'src/code_08049CD4.c') diff --git a/src/code_08049CD4.c b/src/code_08049CD4.c index c79effa8..8d8e7f7c 100644 --- a/src/code_08049CD4.c +++ b/src/code_08049CD4.c @@ -1,6 +1,5 @@ #define NENT_DEPRECATED #include "global.h" -#include "entity.h" #include "room.h" extern void MemFill32(u32, void*, u32); -- cgit v1.2.3 From 9143b1f4c79b7a54eb440173acf51031999f0542 Mon Sep 17 00:00:00 2001 From: Elliptic Ellipsis Date: Sun, 20 Mar 2022 18:23:09 +0000 Subject: Last formatting --- src/code_08049CD4.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) (limited to 'src/code_08049CD4.c') diff --git a/src/code_08049CD4.c b/src/code_08049CD4.c index 8d8e7f7c..c98323d1 100644 --- a/src/code_08049CD4.c +++ b/src/code_08049CD4.c @@ -26,7 +26,6 @@ u32 sub_08049D1C(u32 arg0) { return output; } - void UpdateRoomTracker(void) { gUnk_020354B0 = gRoomMemory; @@ -42,25 +41,25 @@ void UpdateRoomTracker(void) { } RoomMemory* sub_08049D88(void) { - RoomMemory* r4 = gRoomMemory; - RoomMemory* r1 = r4 + 1; + RoomMemory* rm = gRoomMemory; + RoomMemory* r1 = rm + 1; do { - if (r1->unk_02 > r4->unk_02) { - r4 = r1; + if (r1->unk_02 > rm->unk_02) { + rm = r1; } r1++; } while (r1 < gRoomMemory + 8); - r4->area = gRoomControls.area; - r4->room = gRoomControls.room; + rm->area = gRoomControls.area; + rm->room = gRoomControls.room; - r4->unk_02 = 0xFFFF; - r4->unk_04 = 0; + rm->unk_02 = 0xFFFF; + rm->unk_04 = 0; - sub_08049DCC(r4); + sub_08049DCC(rm); - return r4; + return rm; } void sub_08049DCC(RoomMemory* rm) { @@ -74,4 +73,4 @@ void sub_08049DCC(RoomMemory* rm) { } while (r1 < gRoomMemory + 8); rm->unk_02 = 0; -} \ No newline at end of file +} -- cgit v1.2.3