diff --git a/asm/non_matching/manager2B/sub_0805D02C.inc b/asm/non_matching/manager2B/sub_0805D02C.inc deleted file mode 100644 index fc30b11f..00000000 --- a/asm/non_matching/manager2B/sub_0805D02C.inc +++ /dev/null @@ -1,74 +0,0 @@ - .syntax unified - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - ldrh r0, [r6, #0x3e] - bl CheckFlags - cmp r0, #0 - beq _0805D046 - bl DeleteThisEntity -_0805D046: - ldr r0, _0805D0BC @ =gEntCount - ldrb r0, [r0] - cmp r0, #0x43 - bhi _0805D0B0 - ldrb r0, [r6, #0xa] - bl GetCurrentRoomProperty - adds r5, r0, #0 - movs r7, #0 - movs r0, #0x36 - adds r0, r0, r6 - mov sl, r0 - ldr r1, _0805D0C0 @ =gRoomControls - mov r8, r1 - movs r0, #0x20 - adds r0, r0, r6 - mov sb, r0 -_0805D068: - ldrh r1, [r5, #4] - movs r0, #0xa0 - adds r2, r7, #0 - bl CreateObject - adds r4, r0, #0 - mov r1, r8 - ldrh r0, [r1, #6] - ldrh r1, [r5] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - mov r1, r8 - ldrh r0, [r1, #8] - ldrh r1, [r5, #2] - adds r0, r0, r1 - strh r0, [r4, #0x32] - str r6, [r4, #0x50] - adds r0, r4, #0 - bl sub_08016A30 - mov r0, sb - adds r0, #4 - mov sb, r0 - subs r0, #4 - stm r0!, {r4} - adds r7, #1 - adds r5, #6 - cmp r7, #3 - bls _0805D068 - movs r0, #0 - movs r1, #1 - strb r1, [r6, #0xc] - movs r1, #0x3c - strb r1, [r6, #0xf] - mov r1, sl - strb r0, [r1] -_0805D0B0: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805D0BC: .4byte gEntCount -_0805D0C0: .4byte gRoomControls - .syntax divided diff --git a/asm/non_matching/manager2B/sub_0805D11C.inc b/asm/non_matching/manager2B/sub_0805D11C.inc deleted file mode 100644 index 6f1e4f0e..00000000 --- a/asm/non_matching/manager2B/sub_0805D11C.inc +++ /dev/null @@ -1,44 +0,0 @@ - .syntax unified - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r6, #0 - ldr r1, _0805D170 @ =gRoomControls - mov r8, r1 - movs r7, #0x3f - adds r5, r0, #0 - adds r5, #0x20 -_0805D12E: - ldr r4, [r5] - movs r0, #0 - stm r5!, {r0} - movs r2, #0x2e - ldrsh r0, [r4, r2] - mov r3, r8 - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r7 - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldrh r2, [r3, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r7 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_0807BA8C - adds r0, r4, #0 - bl DeleteEntity - adds r6, #1 - cmp r6, #3 - bls _0805D12E - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805D170: .4byte gRoomControls - .syntax divided diff --git a/src/manager/manager2B.c b/src/manager/manager2B.c index 29cc7462..3ef01daf 100644 --- a/src/manager/manager2B.c +++ b/src/manager/manager2B.c @@ -7,19 +7,7 @@ typedef struct { Manager manager; - Entity* field_0x20; - u8 field_0x24; - u8 field_0x25; - u8 field_0x26; - u8 field_0x27; - u8 field_0x28; - u8 field_0x29; - u8 field_0x2a; - u8 field_0x2b; - u8 field_0x2c; - u8 field_0x2d; - u8 field_0x2e; - u8 field_0x2f; + Entity* field_0x20[4]; u8 field_0x30; u8 field_0x31; u8 field_0x32; @@ -47,36 +35,31 @@ void Manager2B_Main(Manager2B* this) { gUnk_08108D30[this->manager.action](this); } -NONMATCH("asm/non_matching/manager2B/sub_0805D02C.inc", void sub_0805D02C(Manager2B* this)) { +void sub_0805D02C(Manager2B* this) { u32 counter; u16* objectData; Entity* object; - Entity** createdObjects; - - if (CheckFlags((u32)this->field_0x3e) != 0) { + if (CheckFlags(this->field_0x3e)) { DeleteThisEntity(); } if (gEntCount < 0x44) { objectData = GetCurrentRoomProperty(this->manager.unk_0a); counter = 0; - createdObjects = &this->field_0x20; while (counter < 4) { object = CreateObject(OBJECT_A0, objectData[2], counter); object->x.HALF.HI = objectData[0] + gRoomControls.roomOriginX; object->y.HALF.HI = objectData[1] + gRoomControls.roomOriginY; object->parent = (Entity*)this; sub_08016A30(object); - *createdObjects = object; + this->field_0x20[counter] = object; counter += 1; objectData += 3; - createdObjects += 1; } this->manager.action = 1; this->manager.unk_0f = 0x3c; this->field_0x36 = 0; } } -END_NONMATCH void sub_0805D0C4(Manager2B* this) { if (--this->manager.unk_0f == 0) { @@ -98,20 +81,15 @@ void sub_0805D0FC(Manager2B* this) { } } -NONMATCH("asm/non_matching/manager2B/sub_0805D11C.inc", void sub_0805D11C(Manager2B* this)) { - Entity* entity; - Entity** createdObjects; +void sub_0805D11C(Manager2B* this) { + Entity** entity_iterator; u32 counter; - - counter = 0; - createdObjects = &this->field_0x20; - while (counter < 4) { - entity = *createdObjects; - *createdObjects = NULL; - sub_0807BA8C(TILE(entity->x.HALF.HI, entity->y.HALF.HI), entity->collisionLayer); + for (counter = 0; counter < 4; counter++) { + Entity* entity; + entity_iterator = &this->field_0x20[counter]; + entity = *entity_iterator; + *entity_iterator = NULL; + sub_0807BA8C(COORD_TO_TILE(entity), entity->collisionLayer); DeleteEntity(entity); - createdObjects += 1; - counter += 1; } } -END_NONMATCH