From 140a4736223937071c708e4a6e6735964cd2f3d6 Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Mon, 23 Nov 2020 17:17:20 +0100 Subject: [PATCH 1/3] gyorgMale.c: ok --- asm/gyorgMale.s | 3466 ----------------------------------------- include/functions.h | 7 + include/player.h | 3 +- linker.ld | 2 +- src/enemy/gyorgMale.c | 1098 +++++++++++++ src/enemy/keese.c | 1 - src/npc/townMinish.c | 1 - src/npc/zelda.c | 1 - src/object/objectA2.c | 2 - 9 files changed, 1108 insertions(+), 3473 deletions(-) delete mode 100644 asm/gyorgMale.s create mode 100644 src/enemy/gyorgMale.c diff --git a/asm/gyorgMale.s b/asm/gyorgMale.s deleted file mode 100644 index f51bb0d8..00000000 --- a/asm/gyorgMale.s +++ /dev/null @@ -1,3466 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start GyorgMale -GyorgMale: @ 0x080467F0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _08046810 - adds r0, r4, #0 - adds r0, #0x7d - ldrb r1, [r0] - movs r0, #3 - ands r1, r0 - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_08046810: - ldr r1, _0804688C @ =gUnk_080D1AFC - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xc] - adds r5, r4, #0 - adds r5, #0x78 - cmp r0, #7 - beq _08046836 - ldrh r3, [r5] - adds r0, r4, #0 - movs r1, #0xaa - movs r2, #0xaa - bl sub_0805EC9C -_08046836: - ldrh r0, [r5] - lsrs r0, r0, #8 - rsbs r0, r0, #0 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08048004 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - adds r1, r4, #0 - adds r1, #0x7d - strb r0, [r1] - ldrb r2, [r4, #0x18] - lsls r0, r2, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _08046878 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldr r1, _08046890 @ =gRoomControls - movs r3, #0xc - ldrsh r1, [r1, r3] - subs r0, r0, r1 - adds r0, #0x30 - movs r1, #0x80 - lsls r1, r1, #1 - cmp r0, r1 - bls _08046878 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r4, #0x18] -_08046878: - ldr r2, _08046894 @ =gPlayerEntity - ldrh r1, [r2, #0x2e] - adds r0, r4, #0 - adds r0, #0x84 - strh r1, [r0] - ldrh r1, [r2, #0x32] - adds r0, #2 - strh r1, [r0] - pop {r4, r5, pc} - .align 2, 0 -_0804688C: .4byte gUnk_080D1AFC -_08046890: .4byte gRoomControls -_08046894: .4byte gPlayerEntity - - thumb_func_start sub_08046898 -sub_08046898: @ 0x08046898 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x22 - bl sub_080A7EE0 - adds r1, r0, #0 - cmp r1, #0 - beq _0804690C - movs r4, #0 - movs r3, #1 - movs r0, #1 - strb r0, [r1, #0xa] - str r5, [r1, #0x50] - str r1, [r5, #0x54] - strb r0, [r5, #0xc] - strb r4, [r5, #0xd] - ldrb r1, [r5, #0x19] - movs r0, #3 - orrs r1, r0 - ldrb r2, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r3 - strb r0, [r5, #0x18] - ldrb r2, [r5, #0x1b] - movs r3, #0x3f - adds r0, r3, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r5, #0x1b] - ands r1, r3 - orrs r1, r2 - strb r1, [r5, #0x19] - adds r2, r5, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x7c - strb r4, [r0] - subs r0, #4 - strh r4, [r0] - adds r0, #2 - strh r4, [r0] - subs r0, #8 - strh r4, [r0] - adds r0, r5, #0 - movs r1, #0 - bl InitAnimationForceUpdate -_0804690C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08046910 -sub_08046910: @ 0x08046910 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0804692C @ =gUnk_080D1B1C - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, pc} - .align 2, 0 -_0804692C: .4byte gUnk_080D1B1C - - thumb_func_start sub_08046930 -sub_08046930: @ 0x08046930 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08046948 - movs r0, #5 - strb r0, [r4, #0xd] - movs r0, #0x20 - strb r0, [r4, #0x15] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] -_08046948: - adds r0, r4, #0 - bl sub_08047D88 - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - beq _0804696A - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xd] - strb r0, [r4, #0xe] - strb r1, [r4, #0x14] - strb r1, [r4, #0x15] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] -_0804696A: - pop {r4, pc} - - thumb_func_start sub_0804696C -sub_0804696C: @ 0x0804696C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08047E48 - ldr r5, _080469C8 @ =gRoomControls - ldrh r0, [r5, #8] - movs r1, #0x98 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080469A6 - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x80 - strb r0, [r4, #0x15] - adds r0, #0x80 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - orrs r0, r1 - strb r0, [r4, #0x19] - movs r0, #0x2e - bl PlaySFX -_080469A6: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080469C6 - ldrh r0, [r5, #8] - movs r1, #0x96 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080469C6 - movs r0, #0 - strb r0, [r4, #0xe] - movs r0, #0xf7 - bl PlaySFX -_080469C6: - pop {r4, r5, pc} - .align 2, 0 -_080469C8: .4byte gRoomControls - - thumb_func_start sub_080469CC -sub_080469CC: @ 0x080469CC - push {r4, lr} - adds r4, r0, #0 - bl sub_08047E48 - ldr r0, _080469F0 @ =gRoomControls - ldrh r0, [r0, #8] - movs r1, #0x84 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _080469EE - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x90 - strb r0, [r4, #0x15] -_080469EE: - pop {r4, pc} - .align 2, 0 -_080469F0: .4byte gRoomControls - - thumb_func_start sub_080469F4 -sub_080469F4: @ 0x080469F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047E48 - ldr r0, _08046A2C @ =gRoomControls - ldrh r0, [r0, #8] - movs r1, #0xa4 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _08046A28 - movs r0, #4 - strb r0, [r4, #0xd] - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] -_08046A28: - pop {r4, pc} - .align 2, 0 -_08046A2C: .4byte gRoomControls - - thumb_func_start sub_08046A30 -sub_08046A30: @ 0x08046A30 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047D88 - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08046A50 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08046A50: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08046A54 -sub_08046A54: @ 0x08046A54 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047E48 - ldr r0, _08046A74 @ =gRoomControls - ldrh r0, [r0, #6] - movs r1, #0xe0 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _08046A72 - movs r0, #6 - strb r0, [r4, #0xd] -_08046A72: - pop {r4, pc} - .align 2, 0 -_08046A74: .4byte gRoomControls - - thumb_func_start sub_08046A78 -sub_08046A78: @ 0x08046A78 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047D88 - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08046A98 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08046A98: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08046A9C -sub_08046A9C: @ 0x08046A9C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #1 - bne _08046ABA - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - bne _08046ABA - adds r0, r4, #0 - movs r1, #0 - bl InitAnimationForceUpdate -_08046ABA: - ldr r1, _08046AE4 @ =gUnk_080D1B38 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - beq _08046AE2 - movs r1, #0 - movs r0, #6 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08046AE2: - pop {r4, pc} - .align 2, 0 -_08046AE4: .4byte gUnk_080D1B38 - - thumb_func_start sub_08046AE8 -sub_08046AE8: @ 0x08046AE8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - ldrb r1, [r0, #0x14] - lsrs r1, r1, #5 - adds r0, r4, #0 - bl sub_08048178 - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08047D88 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08046B18 -sub_08046B18: @ 0x08046B18 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r1, r0, #0 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _08046B6C - subs r0, r1, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _08046B54 - adds r1, r4, #0 - adds r1, #0x76 - ldr r2, _08046B50 @ =0xFFFFFF00 - b _08046B5C - .align 2, 0 -_08046B50: .4byte 0xFFFFFF00 -_08046B54: - adds r1, r4, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_08046B5C: - adds r0, r2, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - b _08046B70 -_08046B6C: - movs r0, #2 - strb r0, [r4, #0xd] -_08046B70: - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - - thumb_func_start sub_08046B8C -sub_08046B8C: @ 0x08046B8C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x80 - ldrh r1, [r5] - adds r6, r4, #0 - adds r6, #0x82 - ldrh r2, [r6] - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08046BD8 - movs r0, #3 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - ldr r1, _08046BD4 @ =gRoomControls - movs r2, #0x80 - lsls r2, r2, #2 - adds r0, r2, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r5] - adds r2, #0x10 - adds r0, r2, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r6] - adds r0, r4, #0 - bl sub_08047D88 - b _08046C02 - .align 2, 0 -_08046BD4: .4byte gRoomControls -_08046BD8: - ldrh r0, [r5] - movs r3, #0x2e - ldrsh r1, [r4, r3] - subs r0, r0, r1 - ldrh r1, [r6] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 -_08046C02: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08046C04 -sub_08046C04: @ 0x08046C04 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r1, r0, #0 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _08046C58 - subs r0, r1, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _08046C40 - adds r1, r4, #0 - adds r1, #0x76 - ldr r2, _08046C3C @ =0xFFFFFF00 - b _08046C48 - .align 2, 0 -_08046C3C: .4byte 0xFFFFFF00 -_08046C40: - adds r1, r4, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_08046C48: - adds r0, r2, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - b _08046C6C -_08046C58: - movs r0, #4 - strb r0, [r4, #0xd] - adds r0, r1, #0 - adds r0, #0x20 - movs r1, #0xc0 - ands r0, r1 - lsrs r0, r0, #6 - adds r1, r4, #0 - adds r1, #0x70 - strh r0, [r1] -_08046C6C: - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - - thumb_func_start sub_08046C88 -sub_08046C88: @ 0x08046C88 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x80 - ldrh r1, [r5] - adds r6, r4, #0 - adds r6, #0x82 - ldrh r2, [r6] - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08046CC0 - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - bl sub_08048158 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08048178 - adds r0, r4, #0 - bl sub_08047D88 - b _08046CEA -_08046CC0: - ldrh r0, [r5] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - ldrh r1, [r6] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 -_08046CEA: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08046CEC -sub_08046CEC: @ 0x08046CEC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - bne _08046D0A - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - bne _08046D0A - adds r0, r4, #0 - movs r1, #1 - bl InitAnimationForceUpdate -_08046D0A: - ldr r1, _08046D40 @ =gUnk_080D1B4C - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08046D3C - movs r0, #0 - movs r1, #2 - strb r1, [r4, #0xc] - strb r0, [r4, #0xd] - ldrh r0, [r4, #0x24] - strb r0, [r4, #0x14] -_08046D3C: - pop {r4, pc} - .align 2, 0 -_08046D40: .4byte gUnk_080D1B4C - - thumb_func_start sub_08046D44 -sub_08046D44: @ 0x08046D44 - push {lr} - mov ip, r0 - movs r0, #1 - mov r1, ip - strb r0, [r1, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r1, #0x24] - ldr r0, [r1, #0x64] - ldr r0, [r0, #4] - ldrb r1, [r0, #0x14] - lsrs r1, r1, #5 - lsls r1, r1, #1 - ldr r0, _08046D90 @ =gUnk_080D1B60 - adds r1, r1, r0 - ldr r3, _08046D94 @ =gRoomControls - ldrh r0, [r3, #6] - ldrh r2, [r1] - adds r0, r0, r2 - mov r2, ip - adds r2, #0x80 - strh r0, [r2] - ldrh r0, [r3, #8] - ldrh r1, [r1, #2] - adds r0, r0, r1 - mov r1, ip - adds r1, #0x82 - strh r0, [r1] - mov r1, ip - ldrb r0, [r1, #0x15] - lsls r0, r0, #8 - adds r1, #0x76 - strh r0, [r1] - mov r0, ip - bl sub_08047D88 - pop {pc} - .align 2, 0 -_08046D90: .4byte gUnk_080D1B60 -_08046D94: .4byte gRoomControls - - thumb_func_start sub_08046D98 -sub_08046D98: @ 0x08046D98 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r1, r0, #0 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _08046DEC - subs r0, r1, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _08046DD4 - adds r1, r4, #0 - adds r1, #0x76 - ldr r2, _08046DD0 @ =0xFFFFFF00 - b _08046DDC - .align 2, 0 -_08046DD0: .4byte 0xFFFFFF00 -_08046DD4: - adds r1, r4, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_08046DDC: - adds r0, r2, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - b _08046DF0 -_08046DEC: - movs r0, #2 - strb r0, [r4, #0xd] -_08046DF0: - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - - thumb_func_start sub_08046E0C -sub_08046E0C: @ 0x08046E0C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x80 - ldrh r1, [r5] - adds r6, r4, #0 - adds r6, #0x82 - ldrh r2, [r6] - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08046E3C - movs r0, #3 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08047D88 - b _08046E66 -_08046E3C: - ldrh r0, [r5] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - ldrh r1, [r6] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 -_08046E66: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08046E68 -sub_08046E68: @ 0x08046E68 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x64] - ldr r0, [r0, #4] - ldrb r1, [r0, #0x14] - movs r0, #0x80 - adds r6, r0, #0 - eors r6, r1 - ldrb r0, [r5, #0x15] - cmp r6, r0 - beq _08046EC6 - subs r0, r6, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _08046E94 - adds r1, r5, #0 - adds r1, #0x76 - ldr r2, _08046E90 @ =0xFFFFFF00 - b _08046E9C - .align 2, 0 -_08046E90: .4byte 0xFFFFFF00 -_08046E94: - adds r1, r5, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_08046E9C: - adds r0, r2, #0 - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_08047D88 - ldrb r0, [r5, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r5, #0 - bl sub_08047EA4 - b _08046EEE -_08046EC6: - movs r0, #4 - strb r0, [r5, #0xd] - movs r0, #0x3f - strb r0, [r5, #0xe] - movs r4, #1 - strb r4, [r5, #0xf] - bl Random - ldr r1, _08046EF0 @ =gUnk_080D1B70 - ands r0, r4 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - adds r0, r0, r6 - movs r1, #0xc0 - ands r0, r1 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_08047D88 -_08046EEE: - pop {r4, r5, r6, pc} - .align 2, 0 -_08046EF0: .4byte gUnk_080D1B70 - - thumb_func_start sub_08046EF4 -sub_08046EF4: @ 0x08046EF4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r3, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08046F12 - movs r0, #0x7f - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x15] - movs r1, #0x80 - eors r0, r1 - strb r0, [r4, #0x15] -_08046F12: - ldr r2, _08046F60 @ =gUnk_080D1B74 - ldrb r0, [r4, #0xe] - lsrs r0, r0, #3 - movs r1, #0xf - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r4, #0x24] - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r3 - cmp r0, #0 - bne _08046F58 - bl Random - movs r1, #0x38 - ands r0, r1 - adds r0, #0x78 - strb r0, [r4, #0xf] - movs r0, #0x23 - bl sub_080A7EE0 - adds r2, r0, #0 - cmp r2, #0 - beq _08046F58 - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - str r4, [r2, #0x50] - adds r0, r2, #0 - bl UpdateSpriteForCollisionLayer -_08046F58: - adds r0, r4, #0 - bl sub_08047E48 - pop {r4, pc} - .align 2, 0 -_08046F60: .4byte gUnk_080D1B74 - - thumb_func_start sub_08046F64 -sub_08046F64: @ 0x08046F64 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - bne _08046F82 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - bne _08046F82 - adds r0, r4, #0 - movs r1, #1 - bl InitAnimationForceUpdate -_08046F82: - ldr r1, _08046FE4 @ =gUnk_080D1B94 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08046FC8 - movs r0, #0x78 - strh r0, [r1] - movs r0, #0x23 - bl sub_080A7EE0 - adds r2, r0, #0 - cmp r2, #0 - beq _08046FC8 - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - str r4, [r2, #0x50] - adds r0, r2, #0 - bl UpdateSpriteForCollisionLayer -_08046FC8: - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08046FE0 - movs r1, #0 - movs r0, #5 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08046FE0: - pop {r4, pc} - .align 2, 0 -_08046FE4: .4byte gUnk_080D1B94 - - thumb_func_start sub_08046FE8 -sub_08046FE8: @ 0x08046FE8 - push {lr} - adds r3, r0, #0 - movs r0, #1 - strb r0, [r3, #0xd] - movs r0, #0xe0 - lsls r0, r0, #1 - strh r0, [r3, #0x24] - adds r1, r3, #0 - adds r1, #0x7e - movs r0, #0x1e - strh r0, [r1] - ldr r2, _08047028 @ =gRoomControls - movs r1, #0xa4 - lsls r1, r1, #2 - adds r0, r1, #0 - ldrh r1, [r2, #6] - adds r0, r0, r1 - adds r1, r3, #0 - adds r1, #0x80 - strh r0, [r1] - movs r1, #0xc8 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r1, r3, #0 - adds r1, #0x82 - strh r0, [r1] - adds r0, r3, #0 - bl sub_08047D88 - pop {pc} - .align 2, 0 -_08047028: .4byte gRoomControls - - thumb_func_start sub_0804702C -sub_0804702C: @ 0x0804702C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r3, r0, #0 - ldrb r2, [r4, #0x15] - subs r0, r2, r3 - adds r0, #2 - movs r1, #0xff - ands r0, r1 - cmp r0, #4 - bls _0804706C - subs r0, r3, r2 - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08047068 - subs r0, r2, #1 - b _0804706A -_08047068: - adds r0, r2, #1 -_0804706A: - strb r0, [r4, #0x15] -_0804706C: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 - adds r0, r4, #0 - adds r0, #0x80 - ldrh r1, [r0] - adds r0, #2 - ldrh r2, [r0] - movs r0, #0x24 - ldrsh r3, [r4, r0] - asrs r3, r3, #0x10 - adds r3, #0x10 - adds r0, r4, #0 - bl sub_0806FCB8 - cmp r0, #0 - beq _080470B0 - movs r0, #2 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] -_080470B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080470B4 -sub_080470B4: @ 0x080470B4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x40 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _0804710A - subs r0, r1, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _080470D8 - adds r1, r4, #0 - adds r1, #0x76 - ldr r2, _080470D4 @ =0xFFFFFF00 - b _080470E0 - .align 2, 0 -_080470D4: .4byte 0xFFFFFF00 -_080470D8: - adds r1, r4, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_080470E0: - adds r0, r2, #0 - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - b _0804713A -_0804710A: - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - bl Random - ldr r2, _0804713C @ =gUnk_080D1BBC - movs r1, #1 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - adds r0, r4, #0 - bl sub_08047D88 -_0804713A: - pop {r4, pc} - .align 2, 0 -_0804713C: .4byte gUnk_080D1BBC - - thumb_func_start sub_08047140 -sub_08047140: @ 0x08047140 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x76 - adds r0, #0x74 - ldrh r0, [r0] - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r2, #0x15] - cmp r0, #0xbf - bls _08047164 - movs r0, #0xc0 - strb r0, [r2, #0x15] - movs r0, #4 - strb r0, [r2, #0xd] -_08047164: - ldrb r0, [r2, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_08047DF0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804717C -sub_0804717C: @ 0x0804717C - push {r4, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldr r0, _080471C0 @ =0x0000027F - cmp r1, r0 - bgt _08047192 - adds r0, r2, #0 - adds r0, #8 - strh r0, [r4, #0x24] -_08047192: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 - ldr r0, _080471C4 @ =gRoomControls - ldrh r0, [r0, #6] - movs r1, #0x80 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080471BC - movs r0, #5 - strb r0, [r4, #0xd] -_080471BC: - pop {r4, pc} - .align 2, 0 -_080471C0: .4byte 0x0000027F -_080471C4: .4byte gRoomControls - - thumb_func_start sub_080471C8 -sub_080471C8: @ 0x080471C8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - movs r0, #0xc0 - lsls r0, r0, #1 - cmp r1, r0 - ble _080471E0 - adds r0, r2, #0 - subs r0, #0x10 - strh r0, [r4, #0x24] -_080471E0: - ldrb r0, [r4, #0x15] - cmp r0, #0xdf - bhi _080471EA - adds r0, #1 - strb r0, [r4, #0x15] -_080471EA: - ldrb r1, [r4, #0x15] - movs r5, #0x80 - lsls r5, r5, #1 - subs r1, r5, r1 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 - ldr r0, _0804722C @ =gRoomControls - ldrh r0, [r0, #8] - movs r1, #0xc8 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _08047238 - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - cmp r0, r5 - bls _08047234 - bl Random - adds r1, r0, #0 - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _08047230 - movs r0, #6 - b _08047236 - .align 2, 0 -_0804722C: .4byte gRoomControls -_08047230: - strb r1, [r4, #0xd] - b _08047238 -_08047234: - movs r0, #0 -_08047236: - strb r0, [r4, #0xd] -_08047238: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0804723C -sub_0804723C: @ 0x0804723C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - subs r0, #2 - strb r0, [r4, #0x15] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xbf - bhi _08047266 - movs r0, #7 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - movs r0, #0xc0 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x76 - movs r0, #0xc0 - lsls r0, r0, #8 - strh r0, [r1] -_08047266: - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08047284 -sub_08047284: @ 0x08047284 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x76 - ldrh r0, [r1] - subs r0, #0xe0 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r2, #0x15] - cmp r0, #0x3f - bhi _080472A4 - movs r0, #0x40 - strb r0, [r2, #0x15] - movs r0, #8 - strb r0, [r2, #0xd] -_080472A4: - ldrb r0, [r2, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_08047DF0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080472BC -sub_080472BC: @ 0x080472BC - push {r4, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldr r0, _08047308 @ =0x000002FF - cmp r1, r0 - bgt _080472D2 - adds r0, r2, #0 - adds r0, #8 - strh r0, [r4, #0x24] -_080472D2: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 - ldr r0, _0804730C @ =gRoomControls - ldrh r0, [r0, #6] - movs r1, #0xac - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _08047306 - movs r0, #9 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] -_08047306: - pop {r4, pc} - .align 2, 0 -_08047308: .4byte 0x000002FF -_0804730C: .4byte gRoomControls - - thumb_func_start sub_08047310 -sub_08047310: @ 0x08047310 - push {lr} - adds r2, r0, #0 - ldrh r3, [r2, #0x24] - movs r0, #0x24 - ldrsh r1, [r2, r0] - ldr r0, _08047364 @ =0x0000017F - cmp r1, r0 - bgt _08047326 - adds r0, r3, #0 - subs r0, #0x10 - strh r0, [r2, #0x24] -_08047326: - adds r1, r2, #0 - adds r1, #0x76 - ldr r3, _08047368 @ =0xFFFFFE30 - adds r0, r3, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r2, #0x15] - adds r0, #0x7f - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3f - bhi _0804734C - movs r0, #0xc0 - strb r0, [r2, #0x15] - movs r0, #4 - strb r0, [r2, #0xd] -_0804734C: - ldrb r0, [r2, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_08047DF0 - pop {pc} - .align 2, 0 -_08047364: .4byte 0x0000017F -_08047368: .4byte 0xFFFFFE30 - - thumb_func_start sub_0804736C -sub_0804736C: @ 0x0804736C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #1 - bne _0804738A - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - bne _0804738A - adds r0, r4, #0 - movs r1, #0 - bl InitAnimationForceUpdate -_0804738A: - ldr r0, _080473B4 @ =gUnk_080D1BC0 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - cmp r1, #0 - bne _080473B0 - movs r0, #7 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_080473B0: - pop {r4, pc} - .align 2, 0 -_080473B4: .4byte gUnk_080D1BC0 - - thumb_func_start sub_080473B8 -sub_080473B8: @ 0x080473B8 - push {lr} - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x90 - lsls r1, r1, #1 - strh r1, [r0, #0x24] - ldr r3, _080473EC @ =gRoomControls - movs r2, #0x80 - lsls r2, r2, #2 - adds r1, r2, #0 - ldrh r2, [r3, #6] - adds r1, r1, r2 - adds r2, r0, #0 - adds r2, #0x80 - strh r1, [r2] - movs r2, #0xe8 - lsls r2, r2, #1 - adds r1, r2, #0 - ldrh r3, [r3, #8] - adds r1, r1, r3 - adds r2, r0, #0 - adds r2, #0x82 - strh r1, [r2] - bl sub_08047D88 - pop {pc} - .align 2, 0 -_080473EC: .4byte gRoomControls - - thumb_func_start sub_080473F0 -sub_080473F0: @ 0x080473F0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r3, r0, #0 - ldrb r2, [r4, #0x15] - subs r0, r2, r3 - adds r0, #2 - movs r1, #0xff - ands r0, r1 - cmp r0, #4 - bls _08047444 - subs r1, r3, r2 - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08047438 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bge _08047434 - subs r0, r2, #2 - b _08047442 -_08047434: - subs r0, r2, #1 - b _08047442 -_08047438: - cmp r1, #1 - ble _08047440 - adds r0, r2, #2 - b _08047442 -_08047440: - adds r0, r2, #1 -_08047442: - strb r0, [r4, #0x15] -_08047444: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 - adds r0, r4, #0 - adds r0, #0x80 - ldrh r1, [r0] - adds r0, #2 - ldrh r2, [r0] - adds r0, r4, #0 - movs r3, #8 - bl sub_0806FCB8 - cmp r0, #0 - beq _08047482 - movs r0, #2 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] -_08047482: - pop {r4, pc} - - thumb_func_start sub_08047484 -sub_08047484: @ 0x08047484 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x40 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _080474DA - subs r0, r1, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _080474A8 - adds r1, r4, #0 - adds r1, #0x76 - ldr r2, _080474A4 @ =0xFFFFFF00 - b _080474B0 - .align 2, 0 -_080474A4: .4byte 0xFFFFFF00 -_080474A8: - adds r1, r4, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_080474B0: - adds r0, r2, #0 - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - b _08047504 -_080474DA: - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - strb r1, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x76 - movs r0, #0x80 - lsls r0, r0, #7 - strh r0, [r1] - subs r1, #2 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - adds r1, #0xa - movs r0, #0xf0 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08047D88 -_08047504: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08047508 -sub_08047508: @ 0x08047508 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0804754C @ =gRoomControls - ldrh r0, [r2, #6] - movs r1, #0xd0 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r3, #0x2e - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _0804759A - ldrb r1, [r4, #0x15] - cmp r1, #0 - bne _08047550 - ldrh r0, [r2, #8] - movs r1, #0x82 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _0804759A - adds r0, r4, #0 - adds r0, #0x74 - ldrh r1, [r0] - rsbs r1, r1, #0 - strh r1, [r0] - adds r2, r4, #0 - adds r2, #0x76 - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - lsrs r0, r0, #8 - b _08047598 - .align 2, 0 -_0804754C: .4byte gRoomControls -_08047550: - adds r0, r4, #0 - adds r0, #0x74 - movs r3, #0 - ldrsh r2, [r0, r3] - cmp r2, #0 - bge _0804757E - adds r3, r4, #0 - adds r3, #0x76 - ldrh r0, [r3] - adds r0, r0, r2 - strh r0, [r3] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r4, #0x15] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0804759A - movs r0, #0 - strb r0, [r4, #0x15] - movs r0, #0 - strh r0, [r3] - b _0804759A -_0804757E: - cmp r1, #0x3f - bhi _0804759A - adds r1, r4, #0 - adds r1, #0x76 - ldrh r0, [r1] - adds r0, r0, r2 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r4, #0x15] - cmp r0, #0x3f - bls _0804759A - movs r0, #0x40 -_08047598: - strb r0, [r4, #0x15] -_0804759A: - adds r0, r4, #0 - bl sub_08047E48 - ldr r0, _080475F0 @ =gRoomControls - ldrh r0, [r0, #6] - movs r1, #0xa0 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _080475CA - movs r0, #4 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x15] - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] -_080475CA: - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080475EE - bl Random - movs r1, #3 - ands r1, r0 - movs r0, #0x62 - bl CreateEnemy - cmp r0, #0 - beq _080475EE - str r4, [r0, #0x50] -_080475EE: - pop {r4, pc} - .align 2, 0 -_080475F0: .4byte gRoomControls - - thumb_func_start sub_080475F4 -sub_080475F4: @ 0x080475F4 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x76 - movs r3, #0xc0 - lsls r3, r3, #1 - adds r0, r3, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r2, #0x15] - cmp r0, #0xbf - bls _08047626 - movs r0, #0xc0 - strb r0, [r2, #0x15] - movs r0, #5 - strb r0, [r2, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r2, #0x24] - adds r1, #8 - movs r0, #0x3c - strh r0, [r1] -_08047626: - ldrb r0, [r2, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_08047DF0 - pop {pc} - - thumb_func_start sub_0804763C -sub_0804763C: @ 0x0804763C - push {r4, lr} - adds r4, r0, #0 - ldr r2, _08047680 @ =gRoomControls - ldrh r0, [r2, #6] - movs r1, #0xf8 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r3, #0x2e - ldrsh r1, [r4, r3] - cmp r0, r1 - ble _080476D0 - ldrb r1, [r4, #0x15] - cmp r1, #0 - bne _08047684 - ldrh r0, [r2, #8] - movs r1, #0x82 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080476D0 - adds r0, r4, #0 - adds r0, #0x74 - ldrh r1, [r0] - rsbs r1, r1, #0 - strh r1, [r0] - adds r2, r4, #0 - adds r2, #0x76 - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - lsrs r0, r0, #8 - b _080476CE - .align 2, 0 -_08047680: .4byte gRoomControls -_08047684: - adds r0, r4, #0 - adds r0, #0x74 - movs r3, #0 - ldrsh r2, [r0, r3] - cmp r2, #0 - ble _080476B4 - adds r3, r4, #0 - adds r3, #0x76 - ldrh r0, [r3] - adds r0, r0, r2 - strh r0, [r3] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r4, #0x15] - movs r1, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080476D0 - movs r0, #0 - strb r0, [r4, #0x15] - strh r1, [r3] - b _080476D0 -_080476B4: - cmp r1, #0xc0 - bls _080476D0 - adds r1, r4, #0 - adds r1, #0x76 - ldrh r0, [r1] - adds r0, r0, r2 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r4, #0x15] - cmp r0, #0xc0 - bhi _080476D0 - movs r0, #0xc0 -_080476CE: - strb r0, [r4, #0x15] -_080476D0: - adds r0, r4, #0 - bl sub_08047E48 - ldr r0, _08047728 @ =gRoomControls - ldrh r0, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _08047700 - movs r0, #6 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x15] - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] -_08047700: - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08047724 - bl Random - movs r1, #3 - ands r1, r0 - movs r0, #0x62 - bl CreateEnemy - cmp r0, #0 - beq _08047724 - str r4, [r0, #0x50] -_08047724: - pop {r4, pc} - .align 2, 0 -_08047728: .4byte gRoomControls - - thumb_func_start sub_0804772C -sub_0804772C: @ 0x0804772C - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x76 - ldr r3, _08047774 @ =0xFFFFFE80 - adds r0, r3, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r2, #0x15] - cmp r0, #0x40 - bhi _0804775C - movs r0, #0x40 - strb r0, [r2, #0x15] - movs r0, #3 - strb r0, [r2, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r2, #0x24] - adds r1, #8 - movs r0, #0x1e - strh r0, [r1] -_0804775C: - ldrb r0, [r2, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_08047DF0 - pop {pc} - .align 2, 0 -_08047774: .4byte 0xFFFFFE80 - - thumb_func_start sub_08047778 -sub_08047778: @ 0x08047778 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08047794 @ =gUnk_080D1BDC - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, pc} - .align 2, 0 -_08047794: .4byte gUnk_080D1BDC - - thumb_func_start sub_08047798 -sub_08047798: @ 0x08047798 - push {r4, lr} - adds r3, r0, #0 - movs r0, #1 - strb r0, [r3, #0xd] - movs r0, #0x80 - strh r0, [r3, #0x24] - movs r0, #0x2e - ldrsh r1, [r3, r0] - ldr r2, _080477BC @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - ldr r0, _080477C0 @ =0x000001F7 - cmp r1, r0 - bgt _080477C4 - adds r1, r3, #0 - adds r1, #0x80 - movs r0, #0xa8 - b _080477CC - .align 2, 0 -_080477BC: .4byte gRoomControls -_080477C0: .4byte 0x000001F7 -_080477C4: - adds r1, r3, #0 - adds r1, #0x80 - movs r0, #0xd2 - lsls r0, r0, #2 -_080477CC: - strh r0, [r1] - ldrh r0, [r2, #6] - ldrh r4, [r1] - adds r0, r0, r4 - strh r0, [r1] - movs r1, #0xd2 - lsls r1, r1, #2 - adds r0, r1, #0 - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r1, r3, #0 - adds r1, #0x82 - strh r0, [r1] - adds r0, r3, #0 - bl sub_08047D88 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080477F0 -sub_080477F0: @ 0x080477F0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldr r0, _08047868 @ =0x000002FF - cmp r1, r0 - bgt _0804780A - adds r0, r2, #0 - adds r0, #8 - strh r0, [r4, #0x24] -_0804780A: - adds r7, r4, #0 - adds r7, #0x80 - ldrh r0, [r7] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r6, r4, #0 - adds r6, #0x82 - ldrh r1, [r6] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08047E48 - ldr r0, _0804786C @ =gPlayerEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x80 - bl sub_0806FCB8 - adds r1, r0, #0 - cmp r1, #0 - bne _08047870 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] - ldrb r0, [r4, #0x14] - strb r0, [r4, #0x15] - b _0804790C - .align 2, 0 -_08047868: .4byte 0x000002FF -_0804786C: .4byte gPlayerEntity -_08047870: - ldr r5, _080478FC @ =gRoomControls - ldrh r1, [r5, #6] - movs r0, #0x80 - lsls r0, r0, #2 - mov r8, r0 - add r1, r8 - ldrh r2, [r5, #8] - movs r3, #0x84 - lsls r3, r3, #2 - adds r2, r2, r3 - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r4, #0 - bl sub_0806FCB8 - cmp r0, #0 - bne _080478A0 - ldrb r0, [r4, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - orrs r0, r1 - strb r0, [r4, #0x19] -_080478A0: - ldrh r1, [r7] - ldrh r2, [r6] - adds r0, r4, #0 - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _0804790C - movs r0, #2 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x14] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - bl Random - ldr r2, _08047900 @ =gUnk_080D1BF0 - movs r1, #1 - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r2, [r0] - adds r0, r4, #0 - adds r0, #0x74 - strh r2, [r0] - ldr r2, [r4, #0x64] - ldr r0, [r2] - adds r0, #0x6c - ldrh r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08047904 - ldr r3, [r2, #4] - ldrh r0, [r5, #6] - add r0, r8 - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r2, #0x83 - cmp r0, r1 - ble _080478F4 - movs r2, #0x81 -_080478F4: - adds r0, r3, #0 - adds r0, #0x79 - strb r2, [r0] - b _0804790C - .align 2, 0 -_080478FC: .4byte gRoomControls -_08047900: .4byte gUnk_080D1BF0 -_08047904: - ldr r0, [r2, #4] - adds r0, #0x79 - movs r1, #0x80 - strb r1, [r0] -_0804790C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08047914 -sub_08047914: @ 0x08047914 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047D88 - ldrb r1, [r4, #0x14] - movs r0, #0x1f - ands r0, r1 - cmp r0, #0 - beq _08047950 - adds r1, r4, #0 - adds r1, #0x76 - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x14] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - b _08047976 -_08047950: - movs r0, #3 - strb r0, [r4, #0xd] - adds r1, r4, #0 - adds r1, #0x70 - movs r0, #0x3c - strh r0, [r1] - ldrb r1, [r4, #0xa] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, #0x78 - adds r1, r4, #0 - adds r1, #0x7e - strh r0, [r1] - ldr r0, [r4, #0x64] - ldr r0, [r0] - ldrb r1, [r4, #0x14] - bl sub_080A1D70 -_08047976: - pop {r4, pc} - - thumb_func_start sub_08047978 -sub_08047978: @ 0x08047978 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047D88 - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - cmp r1, #0 - beq _080479C6 - adds r2, r4, #0 - adds r2, #0x70 - ldrh r0, [r2] - subs r1, r0, #1 - strh r1, [r2] - lsls r0, r1, #0x10 - cmp r0, #0 - bne _080479B6 - adds r1, r4, #0 - adds r1, #0x72 - movs r0, #1 - strh r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080479AE - movs r0, #0xb4 - strh r0, [r2] - b _080479CC -_080479AE: - movs r0, #0xb4 - lsls r0, r0, #1 - strh r0, [r2] - b _080479CC -_080479B6: - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xf0 - bne _080479CC - adds r0, r4, #0 - bl sub_0804813C - b _080479CC -_080479C6: - adds r0, r4, #0 - adds r0, #0x72 - strh r1, [r0] -_080479CC: - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080479F4 - movs r0, #0xf0 - strh r0, [r1] - bl Random - movs r1, #3 - ands r1, r0 - movs r0, #0x62 - bl CreateEnemy - cmp r0, #0 - beq _080479F4 - str r4, [r0, #0x50] -_080479F4: - ldr r0, _08047A78 @ =gPlayerEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x80 - bl sub_0806FCB8 - adds r1, r0, #0 - cmp r1, #0 - bne _08047A2C - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] - ldrb r0, [r4, #0x14] - strb r0, [r4, #0x15] -_08047A2C: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _08047B06 - ldr r0, [r4, #0x54] - ldrb r0, [r0, #0xc] - cmp r0, #1 - bne _08047B06 - movs r0, #4 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08047AA4 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #6 - cmp r0, #1 - bne _08047A80 - ldr r2, _08047A7C @ =gRoomControls - movs r1, #0xe0 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r3, [r2, #6] - adds r0, r0, r3 - adds r1, r4, #0 - adds r1, #0x80 - strh r0, [r1] - movs r1, #0x94 - lsls r1, r1, #2 - adds r0, r1, #0 - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r1, r4, #0 - adds r1, #0x82 - b _08047B04 - .align 2, 0 -_08047A78: .4byte gPlayerEntity -_08047A7C: .4byte gRoomControls -_08047A80: - ldr r2, _08047AA0 @ =gRoomControls - movs r3, #0x90 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r2, #6] - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x80 - strh r0, [r1] - adds r3, #0x10 - adds r0, r3, #0 - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r1, #2 - b _08047B04 - .align 2, 0 -_08047AA0: .4byte gRoomControls -_08047AA4: - ldr r0, _08047AC4 @ =gRoomControls - ldrh r1, [r0, #6] - movs r2, #0x80 - lsls r2, r2, #2 - adds r1, r1, r2 - movs r3, #0x2e - ldrsh r2, [r4, r3] - adds r3, r0, #0 - cmp r1, r2 - bge _08047AC8 - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #0xc8 - lsls r0, r0, #1 - b _08047AD0 - .align 2, 0 -_08047AC4: .4byte gRoomControls -_08047AC8: - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #0x9c - lsls r0, r0, #2 -_08047AD0: - strh r0, [r1] - ldrh r0, [r3, #6] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - ldrh r0, [r3, #8] - movs r1, #0x84 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _08047AF4 - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0xd0 - lsls r0, r0, #1 - b _08047AFC -_08047AF4: - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0xa0 - lsls r0, r0, #2 -_08047AFC: - strh r0, [r1] - ldrh r0, [r3, #8] - ldrh r3, [r1] - adds r0, r0, r3 -_08047B04: - strh r0, [r1] -_08047B06: - pop {r4, pc} - - thumb_func_start sub_08047B08 -sub_08047B08: @ 0x08047B08 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - bl sub_08047D88 - adds r4, r5, #0 - adds r4, #0x80 - ldrh r0, [r4] - movs r2, #0x2e - ldrsh r1, [r5, r2] - subs r0, r0, r1 - adds r6, r5, #0 - adds r6, #0x82 - ldrh r1, [r6] - movs r3, #0x32 - ldrsh r2, [r5, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r5, #0x15] - movs r7, #0 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_08047E58 - ldrh r1, [r4] - ldrh r2, [r6] - adds r0, r5, #0 - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08047B80 - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _08047B60 - movs r0, #7 - strb r0, [r5, #0xc] - strb r7, [r5, #0xd] - ldrb r0, [r5, #0x15] - movs r1, #0x80 - eors r0, r1 - b _08047B7E -_08047B60: - movs r0, #4 - strb r0, [r5, #0xc] - strb r7, [r5, #0xd] - ldrb r2, [r5, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r5, #0x1b] - ldrb r0, [r5, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r5, #0x19] - ldrb r0, [r5, #0x14] -_08047B7E: - strb r0, [r5, #0x15] -_08047B80: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08047B84 -sub_08047B84: @ 0x08047B84 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08047BA0 @ =gUnk_080D1BF4 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, pc} - .align 2, 0 -_08047BA0: .4byte gUnk_080D1BF4 - - thumb_func_start sub_08047BA4 -sub_08047BA4: @ 0x08047BA4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xd] - movs r2, #0x78 - strb r2, [r4, #0xe] - strb r1, [r4, #0xf] - ldr r0, _08047BD0 @ =gRoomControls - ldrh r0, [r0, #6] - movs r1, #0x80 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r3, #0x2e - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _08047BD4 - adds r0, r4, #0 - adds r0, #0x76 - strh r2, [r0] - b _08047BDC - .align 2, 0 -_08047BD0: .4byte gRoomControls -_08047BD4: - adds r1, r4, #0 - adds r1, #0x76 - movs r0, #0x88 - strh r0, [r1] -_08047BDC: - ldr r0, _08047BEC @ =0x000001B5 - bl PlaySFX - adds r0, r4, #0 - bl sub_08047BF0 - pop {r4, pc} - .align 2, 0 -_08047BEC: .4byte 0x000001B5 - - thumb_func_start sub_08047BF0 -sub_08047BF0: @ 0x08047BF0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r2, _08047CB8 @ =gUnk_080D1C00 - ldrb r1, [r5, #0xe] - movs r0, #3 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r5, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_08047E48 - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _08047CC4 - ldrb r1, [r5, #0xf] - adds r0, r1, #1 - strb r0, [r5, #0xf] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08047C74 - adds r0, r5, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFx - adds r4, r0, #0 - cmp r4, #0 - beq _08047C74 - bl Random - movs r3, #0x1e - adds r1, r0, #0 - ands r1, r3 - ldr r6, _08047CBC @ =0x0000FFF1 - adds r2, r6, #0 - adds r1, r2, r1 - ldrh r6, [r4, #0x2e] - adds r1, r1, r6 - strh r1, [r4, #0x2e] - lsrs r0, r0, #8 - ands r0, r3 - adds r2, r2, r0 - ldrh r0, [r4, #0x32] - adds r2, r2, r0 - strh r2, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteForCollisionLayer -_08047C74: - adds r0, r5, #0 - adds r0, #0x76 - ldrh r0, [r0] - strb r0, [r5, #0x15] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_08047E48 - movs r2, #0x32 - ldrsh r1, [r5, r2] - ldr r0, _08047CC0 @ =gRoomControls - ldrh r0, [r0, #8] - movs r6, #0x9c - lsls r6, r6, #2 - adds r0, r0, r6 - cmp r1, r0 - ble _08047D10 - movs r0, #2 - strb r0, [r5, #0xd] - adds r1, r5, #0 - adds r1, #0x7e - movs r0, #0xaa - strh r0, [r1] - adds r0, #0x83 - bl PlaySFX - adds r0, r5, #0 - movs r1, #1 - bl InitAnimationForceUpdate - b _08047D10 - .align 2, 0 -_08047CB8: .4byte gUnk_080D1C00 -_08047CBC: .4byte 0x0000FFF1 -_08047CC0: .4byte gRoomControls -_08047CC4: - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x5a - bne _08047CD4 - ldr r4, [r5, #0x54] - b _08047CDC -_08047CD4: - cmp r0, #0x3c - bne _08047CF2 - ldr r0, [r5, #0x54] - ldr r4, [r0, #0x54] -_08047CDC: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFx - b _08047D10 -_08047CF2: - cmp r0, #0x1e - bne _08047D10 - ldr r0, [r5, #0x54] - ldr r0, [r0, #0x54] - ldr r4, [r0, #0x54] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFx -_08047D10: - adds r0, r5, #0 - adds r0, #0x78 - ldrh r3, [r0] - adds r0, r5, #0 - movs r1, #0xaa - movs r2, #0xaa - bl sub_0805EC9C - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08047D24 -sub_08047D24: @ 0x08047D24 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - adds r0, #8 - movs r2, #0 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r0, #0x80 - lsls r0, r0, #4 - cmp r1, r0 - bls _08047D5A - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08047D4C - ldr r0, [r4, #0x64] - str r2, [r0, #8] - b _08047D50 -_08047D4C: - ldr r0, [r4, #0x64] - str r2, [r0, #0xc] -_08047D50: - movs r0, #0 - str r0, [r4, #0x64] - bl DeleteThisEntity - b _08047D84 -_08047D5A: - ldr r0, _08047D68 @ =0x000001FF - cmp r1, r0 - bhi _08047D6C - adds r0, r4, #0 - bl sub_08047E48 - b _08047D72 - .align 2, 0 -_08047D68: .4byte 0x000001FF -_08047D6C: - adds r0, r4, #0 - bl sub_08047E58 -_08047D72: - adds r0, r4, #0 - adds r0, #0x7e - ldrh r2, [r0] - subs r0, #6 - ldrh r3, [r0] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C -_08047D84: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08047D88 -sub_08047D88: @ 0x08047D88 - push {r4, r5, lr} - adds r3, r0, #0 - adds r5, r3, #0 - adds r5, #0x7c - ldrb r2, [r5] - lsls r1, r2, #1 - movs r0, #0x7f - ands r1, r0 - movs r0, #0x80 - ands r0, r2 - orrs r1, r0 - strb r1, [r5] - ldrb r0, [r3, #0x19] - lsrs r0, r0, #6 - cmp r0, #3 - bne _08047DB0 - ldr r0, _08047DE8 @ =gPlayerState - ldrb r0, [r0, #0x14] - cmp r0, #0 - bne _08047DE6 -_08047DB0: - adds r0, r3, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #1 - beq _08047DE6 - ldr r4, _08047DEC @ =gPlayerEntity - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0x32 - ldrsh r2, [r4, r0] - adds r0, r3, #0 - movs r3, #0x20 - bl sub_0806FCB8 - cmp r0, #0 - beq _08047DE6 - ldr r0, _08047DE8 @ =gPlayerState - movs r1, #1 - strb r1, [r0, #0x14] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08047DE6 - ldrb r0, [r5] - movs r1, #1 - orrs r0, r1 - strb r0, [r5] -_08047DE6: - pop {r4, r5, pc} - .align 2, 0 -_08047DE8: .4byte gPlayerState -_08047DEC: .4byte gPlayerEntity - - thumb_func_start sub_08047DF0 -sub_08047DF0: @ 0x08047DF0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_08047D88 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08047EA4 - movs r0, #0x2e - ldrsh r4, [r5, r0] - movs r2, #0x32 - ldrsh r6, [r5, r2] - movs r0, #0x24 - ldrsh r1, [r5, r0] - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F62C - adds r0, r5, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08047E42 - bl sub_08079F8C - cmp r0, #0 - beq _08047E42 - ldr r0, _08047E44 @ =gPlayerEntity - ldrh r1, [r5, #0x2e] - subs r1, r1, r4 - ldrh r2, [r0, #0x2e] - adds r1, r1, r2 - strh r1, [r0, #0x2e] - ldrh r1, [r5, #0x32] - subs r1, r1, r6 - ldrh r2, [r0, #0x32] - adds r1, r1, r2 - strh r1, [r0, #0x32] -_08047E42: - pop {r4, r5, r6, pc} - .align 2, 0 -_08047E44: .4byte gPlayerEntity - - thumb_func_start sub_08047E48 -sub_08047E48: @ 0x08047E48 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047D88 - adds r0, r4, #0 - bl sub_08047E58 - pop {r4, pc} - - thumb_func_start sub_08047E58 -sub_08047E58: @ 0x08047E58 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r5, [r4, r0] - movs r2, #0x32 - ldrsh r6, [r4, r2] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08047E9C - bl sub_08079F8C - cmp r0, #0 - beq _08047E9C - ldr r0, _08047EA0 @ =gPlayerEntity - ldrh r1, [r4, #0x2e] - subs r1, r1, r5 - ldrh r2, [r0, #0x2e] - adds r1, r1, r2 - strh r1, [r0, #0x2e] - ldrh r1, [r4, #0x32] - subs r1, r1, r6 - ldrh r2, [r0, #0x32] - adds r1, r1, r2 - strh r1, [r0, #0x32] -_08047E9C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08047EA0: .4byte gPlayerEntity - - thumb_func_start sub_08047EA4 -sub_08047EA4: @ 0x08047EA4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r0, #0x78 - strh r1, [r0] - ldrh r1, [r0] - adds r0, #2 - ldrh r0, [r0] - subs r4, r1, r0 - movs r0, #0x80 - lsls r0, r0, #1 - adds r1, r4, r0 - adds r0, #0xff - cmp r1, r0 - bls _08047F58 - adds r0, r5, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08047F4E - adds r0, r5, #0 - bl sub_08047F68 - lsls r0, r0, #8 - mov r8, r0 - ldr r6, _08047F60 @ =gPlayerEntity - movs r1, #0x2e - ldrsh r0, [r6, r1] - movs r2, #0x2e - ldrsh r1, [r5, r2] - subs r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r6, r3] - movs r7, #0x32 - ldrsh r2, [r5, r7] - subs r1, r1, r2 - bl sub_080045DA - adds r3, r0, #0 - adds r0, r4, #0 - cmp r4, #0 - bge _08047F00 - adds r0, #0xff -_08047F00: - asrs r0, r0, #8 - subs r4, r3, r0 - movs r0, #0xff - ands r4, r0 - ldr r2, _08047F64 @ =gSineTable - lsls r0, r4, #1 - adds r0, r0, r2 - movs r7, #0 - ldrsh r1, [r0, r7] - lsls r0, r3, #1 - adds r0, r0, r2 - movs r7, #0 - ldrsh r0, [r0, r7] - subs r1, r1, r0 - mov r0, r8 - muls r0, r1, r0 - adds r1, r0, #0 - ldr r0, [r6, #0x2c] - adds r0, r0, r1 - str r0, [r6, #0x2c] - adds r0, r4, #0 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r2 - movs r4, #0 - ldrsh r1, [r0, r4] - adds r0, r3, #0 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r2 - movs r7, #0 - ldrsh r0, [r0, r7] - subs r1, r1, r0 - mov r0, r8 - muls r0, r1, r0 - adds r1, r0, #0 - ldr r0, [r6, #0x30] - subs r0, r0, r1 - str r0, [r6, #0x30] -_08047F4E: - adds r0, r5, #0 - adds r0, #0x78 - ldrh r1, [r0] - adds r0, #2 - strh r1, [r0] -_08047F58: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08047F60: .4byte gPlayerEntity -_08047F64: .4byte gSineTable - - thumb_func_start sub_08047F68 -sub_08047F68: @ 0x08047F68 - push {r4, r5, lr} - ldr r3, _08047F98 @ =gPlayerEntity - movs r1, #0x2e - ldrsh r2, [r3, r1] - movs r4, #0x2e - ldrsh r1, [r0, r4] - subs r2, r2, r1 - movs r4, #0x32 - ldrsh r1, [r3, r4] - movs r3, #0x32 - ldrsh r0, [r0, r3] - subs r1, r1, r0 - adds r4, r2, #0 - muls r4, r2, r4 - adds r2, r4, #0 - adds r0, r1, #0 - muls r0, r1, r0 - adds r4, r2, r0 - movs r0, #0x80 - lsls r0, r0, #3 - cmp r4, r0 - bne _08047F9C - movs r0, #0x20 - b _08048002 - .align 2, 0 -_08047F98: .4byte gPlayerEntity -_08047F9C: - ldr r0, _08047FB8 @ =gUnk_080D1C04 - movs r3, #0x18 - adds r2, r0, #0 - ldrh r0, [r2, #0x20] - cmp r4, r0 - bge _08047FAA - movs r3, #8 -_08047FAA: - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r4, r0 - bge _08047FBC - subs r3, #4 - b _08047FBE - .align 2, 0 -_08047FB8: .4byte gUnk_080D1C04 -_08047FBC: - adds r3, #4 -_08047FBE: - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r4, r0 - bge _08047FCC - subs r3, #2 - b _08047FCE -_08047FCC: - adds r3, #2 -_08047FCE: - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r4, r0 - bge _08047FDC - subs r3, #1 - b _08047FDE -_08047FDC: - adds r3, #1 -_08047FDE: - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r1, [r0] - cmp r4, r1 - bge _08048000 - subs r5, r3, #1 - lsls r0, r5, #1 - adds r0, r0, r2 - ldrh r2, [r0] - subs r0, r1, r2 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - adds r2, r2, r0 - cmp r4, r2 - bgt _08048000 - adds r3, r5, #0 -_08048000: - adds r0, r3, #0 -_08048002: - pop {r4, r5, pc} - - thumb_func_start sub_08048004 -sub_08048004: @ 0x08048004 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08048010 - b _08048138 -_08048010: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - beq _0804801C - b _08048130 -_0804801C: - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - ldr r6, _080480A4 @ =gPlayerEntity - movs r1, #0x36 - ldrsh r0, [r6, r1] - cmp r0, #0 - beq _08048030 - b _08048138 -_08048030: - bl sub_08079F8C - cmp r0, #0 - bne _0804803A - b _08048138 -_0804803A: - adds r1, r4, #0 - adds r1, #0x7c - ldrb r3, [r1] - movs r0, #1 - ands r0, r3 - adds r5, r1, #0 - cmp r0, #0 - beq _080480BA - ldrb r0, [r4, #0x19] - lsrs r0, r0, #6 - cmp r0, #3 - bne _080480B0 - movs r7, #0x2e - ldrsh r2, [r6, r7] - ldr r1, _080480A8 @ =gRoomControls - ldrh r0, [r1, #6] - subs r2, r2, r0 - asrs r2, r2, #3 - movs r7, #0x32 - ldrsh r0, [r6, r7] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #3 - ldr r1, _080480AC @ =gUnk_02019EE0 - lsls r0, r0, #7 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _080480B0 - movs r0, #2 - ands r0, r3 - cmp r0, #0 - bne _08048086 - movs r0, #0x80 - orrs r0, r3 - strb r0, [r5] -_08048086: - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08048138 - adds r0, r4, #0 - adds r0, #0x84 - ldrh r0, [r0] - strh r0, [r6, #0x2e] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - strh r0, [r6, #0x32] - b _08048138 - .align 2, 0 -_080480A4: .4byte gPlayerEntity -_080480A8: .4byte gRoomControls -_080480AC: .4byte gUnk_02019EE0 -_080480B0: - ldrb r1, [r5] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5] - b _08048138 -_080480BA: - ldrb r0, [r4, #0x19] - lsrs r0, r0, #6 - cmp r0, #3 - beq _08048124 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r3, #0x32 - ldrsh r2, [r4, r3] - adds r0, r6, #0 - movs r3, #0x24 - bl sub_0806FCB8 - cmp r0, #0 - beq _08048124 - ldrb r1, [r5] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08048124 - movs r7, #0x2e - ldrsh r0, [r6, r7] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r6, r3] - movs r7, #0x32 - ldrsh r2, [r4, r7] - subs r1, r1, r2 - bl sub_080045DA - ldr r3, _0804812C @ =gSineTable - lsls r1, r0, #1 - adds r1, r1, r3 - movs r2, #0 - ldrsh r1, [r1, r2] - lsls r2, r1, #3 - adds r2, r2, r1 - lsls r2, r2, #0xa - ldr r1, [r4, #0x2c] - adds r1, r1, r2 - str r1, [r6, #0x2c] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r3, #0 - ldrsh r0, [r0, r3] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #0xa - ldr r0, [r4, #0x30] - subs r0, r0, r1 - str r0, [r6, #0x30] -_08048124: - movs r0, #0 - strb r0, [r5] - b _08048138 - .align 2, 0 -_0804812C: .4byte gSineTable -_08048130: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_08048138: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0804813C -sub_0804813C: @ 0x0804813C - push {lr} - bl Random - adds r2, r0, #0 - movs r0, #7 - ands r0, r2 - lsrs r2, r2, #8 - movs r1, #3 - ands r2, r1 - movs r1, #1 - bl sub_080A1ED0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08048158 -sub_08048158: @ 0x08048158 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _08048174 @ =gUnk_080D1C44 - bl Random - lsls r4, r5, #1 - adds r4, r4, r5 - movs r1, #3 - bl __modsi3 - adds r4, r4, r0 - adds r4, r4, r6 - ldrb r0, [r4] - pop {r4, r5, r6, pc} - .align 2, 0 -_08048174: .4byte gUnk_080D1C44 - - thumb_func_start sub_08048178 -sub_08048178: @ 0x08048178 - push {r4, lr} - adds r4, r0, #0 - adds r2, r1, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #6 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08048198 - lsls r1, r2, #1 - ldr r0, _08048194 @ =gUnk_080D1C60 - b _0804819C - .align 2, 0 -_08048194: .4byte gUnk_080D1C60 -_08048198: - lsls r1, r2, #1 - ldr r0, _080481B8 @ =gUnk_080D1C50 -_0804819C: - adds r3, r1, r0 - ldr r2, _080481BC @ =gRoomControls - ldrh r0, [r2, #6] - ldrh r1, [r3] - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x80 - strh r0, [r1] - ldrh r0, [r2, #8] - ldrh r3, [r3, #2] - adds r0, r0, r3 - adds r1, #2 - strh r0, [r1] - pop {r4, pc} - .align 2, 0 -_080481B8: .4byte gUnk_080D1C50 -_080481BC: .4byte gRoomControls diff --git a/include/functions.h b/include/functions.h index 1a7a87d7..f2cad58e 100644 --- a/include/functions.h +++ b/include/functions.h @@ -270,4 +270,11 @@ extern u32 sub_0800442E(Entity*); extern void sub_08081404(Entity*, u32); extern void sub_0807B7D8(u32, u32, u32); extern void sub_08052D74(void*, void*, void*); +extern u32 sub_080045DA(s32, s32); +u32 sub_0806FCB8(Entity*, u32, u32, u32); +extern Entity* sub_080A7EE0(u32); +extern void sub_080A1D70(Entity*, u32); +extern void sub_0806F62C(Entity*, u32, u32); +extern u32 sub_08079F8C(void); +extern void sub_080A1ED0(u32, u32, u32); #endif diff --git a/include/player.h b/include/player.h index 0d604dbd..5432a5e1 100644 --- a/include/player.h +++ b/include/player.h @@ -47,7 +47,8 @@ typedef struct { /* */ u32 filler11b : 16; /* */ } PACKED b; /* */ } flags; - /*0x34*/ u8 field_0x34[4]; + /*0x34*/ u8 field_0x34[2]; + /*0x36*/ s16 field_0x36; /*0x38*/ u8 field_0x38; /*0x39*/ u8 field_0x39; /*0x3a*/ u16 field_0x3a; diff --git a/linker.ld b/linker.ld index 0a1b0159..df9b5aad 100644 --- a/linker.ld +++ b/linker.ld @@ -424,7 +424,7 @@ SECTIONS { asm/enemy5A.o(.text); asm/businessScrubPrologue.o(.text); asm/gyorgFemale.o(.text); - asm/gyorgMale.o(.text); + src/enemy/gyorgMale.o(.text); asm/curtain.o(.text); asm/enemy5F.o(.text); asm/gyorgChild.o(.text); diff --git a/src/enemy/gyorgMale.c b/src/enemy/gyorgMale.c new file mode 100644 index 00000000..238b6b34 --- /dev/null +++ b/src/enemy/gyorgMale.c @@ -0,0 +1,1098 @@ +#include "global.h" +#include "enemy.h" +#include "player.h" +#include "room.h" +#include "trig.h" +#include "structures.h" +#include "functions.h" + +extern void (* const gUnk_080D1AFC[8])(Entity*); +extern void (* const gUnk_080D1B1C[7])(Entity*); +extern void (* const gUnk_080D1B38[5])(Entity*); +extern void (* const gUnk_080D1B4C[5])(Entity*); +extern const u16 gUnk_080D1B60[8]; +extern const u8 gUnk_080D1B70[4];//or 3? +extern const u16 gUnk_080D1B74[0x10]; +extern void (* const gUnk_080D1B94[0xA])(Entity*); +extern const u16 gUnk_080D1BBC[2]; +extern void (* const gUnk_080D1BC0[7])(Entity*); +extern void (* const gUnk_080D1BDC[5])(Entity*); +extern const u16 gUnk_080D1BF0[2]; +extern void (* const gUnk_080D1BF4[3])(Entity*); +extern const u8 gUnk_080D1C00[4]; +extern const u16 gUnk_080D1C04[0x20]; +extern const u8 gUnk_080D1C44[0xC]; +extern const u16 gUnk_080D1C50[8]; +extern const u16 gUnk_080D1C60[8]; + +void sub_08046898(Entity*); +void sub_08046910(Entity*); +void sub_08046930(Entity*); +void sub_0804696C(Entity*); +void sub_080469CC(Entity*); +void sub_080469F4(Entity*); +void sub_08046A30(Entity*); +void sub_08046A54(Entity*); +void sub_08046A78(Entity*); +void sub_08046A9C(Entity*); +void sub_08046AE8(Entity*); +void sub_08046B18(Entity*); +void sub_08046B8C(Entity*); +void sub_08046C04(Entity*); +void sub_08046C88(Entity*); +void sub_08046CEC(Entity*); +void sub_08046D44(Entity*); +void sub_08046D98(Entity*); +void sub_08046E0C(Entity*); +void sub_08046E68(Entity*); +void sub_08046EF4(Entity*); +void sub_08046F64(Entity*); +void sub_08046FE8(Entity*); +void sub_0804702C(Entity*); +void sub_080470B4(Entity*); +void sub_08047140(Entity*); +void sub_0804717C(Entity*); +void sub_080471C8(Entity*); +void sub_0804723C(Entity*); +void sub_08047284(Entity*); +void sub_080472BC(Entity*); +void sub_08047310(Entity*); +void sub_0804736C(Entity*); +void sub_080473B8(Entity*); +void sub_080473F0(Entity*); +void sub_08047484(Entity*); +void sub_08047508(Entity*); +void sub_080475F4(Entity*); +void sub_0804763C(Entity*); +void sub_0804772C(Entity*); +void sub_08047778(Entity*); +void sub_08047798(Entity*); +void sub_080477F0(Entity*); +void sub_08047914(Entity*); +void sub_08047978(Entity*); +void sub_08047B08(Entity*); +void sub_08047B84(Entity*); +void sub_08047BA4(Entity*); +void sub_08047BF0(Entity*);// +void sub_08047D24(Entity*); +void sub_08047D88(Entity*);// +void sub_08047DF0(Entity*, u32); +void sub_08047E48(Entity*);// +void sub_08047E58(Entity*);// +void sub_08047EA4(Entity*, u32); +u32 sub_08047F68(Entity*);//distance this to player? +void sub_08048004(Entity*);// +void sub_0804813C(Entity*);// +u32 sub_08048158(u32); +void sub_08048178(Entity*, u32); + +void GyorgMale(Entity* this) { + if (this->action) { + this->spriteSettings.b.draw = this->field_0x7c.BYTES.byte1; + } + gUnk_080D1AFC[this->action](this); + if (this->action != 7) { + sub_0805EC9C(this, 0xaa, 0xaa, this->field_0x78.HWORD); + } + this->animationState = -(this->field_0x78.HWORD >> 8); + sub_08048004(this); + this->field_0x7c.BYTES.byte1 = this->spriteSettings.b.draw; + if (this->spriteSettings.b.draw == 1 && (this->y.HALF.HI - gRoomControls.roomScrollY + 0x30) > 0x100u) { + this->spriteSettings.b.draw = 0; + } + this->cutsceneBeh.HWORD = gPlayerEntity.x.HALF.HI; + this->field_0x86.HWORD = gPlayerEntity.y.HALF.HI; +} + +void sub_08046898(Entity* this) { + Entity* tmp = sub_080A7EE0(0x22); + u32 tmp2; + if (!tmp) return; + tmp->entityType.form = 1; + tmp->parent = this; + this->attachedEntity = tmp; + this->action = 1; + this->previousActionFlag = 0; + this->spriteRendering.b0 = 3; + this->spriteSettings.b.draw = 1; + this->spriteOrientation.flipY = 2; + this->spriteRendering.b3 = 2; + this->field_0x3c |= 0x10; + this->collisionLayer = 2; + this->field_0x7c.BYTES.byte0 = 0; + this->field_0x78.HWORD = 0; + this->field_0x7a.HWORD = 0; + this->field_0x70.HALF.HI = 0; + InitAnimationForceUpdate(this, 0); +} + +void sub_08046910(Entity* this) { + gUnk_080D1B1C[this->previousActionFlag](this); + UpdateAnimationSingleFrame(this); +} + +void sub_08046930(Entity* this) { + if (this->entityType.form) { + this->previousActionFlag = 5; + this->direction = 0x20; + this->nonPlanarMovement = 0x280; + } + sub_08047D88(this); + if (this->field_0x7c.BYTES.byte0 == 0) return; + this->previousActionFlag = 1; + this->actionDelay = 1; + this->animationState = 0; + this->direction = 0; + this->nonPlanarMovement = 0x280; +} + +void sub_0804696C(Entity* this) { + sub_08047E48(this); + if (gRoomControls.roomOriginY + 0x130 > this->y.HALF.HI) { + this->previousActionFlag = 2; + this->direction = 0x80; + this->nonPlanarMovement = 0x100; + this->spriteOrientation.flipY = 3; + this->spriteRendering.b3 = 3; + PlaySFX(0x2e); + } + if (this->actionDelay) { + if (gRoomControls.roomOriginY + 0x258 > this->y.HALF.HI) { + this->actionDelay = 0; + PlaySFX(0xf7); + } + } +} + +void sub_080469CC(Entity* this) { + sub_08047E48(this); + if (gRoomControls.roomOriginY + 0x210 < this->y.HALF.HI) { + this->previousActionFlag = 3; + this->direction = 0x90; + } +} + +void sub_080469F4(Entity* this) { + sub_08047E48(this); + if (gRoomControls.roomOriginY + 0x290 < this->y.HALF.HI) { + this->previousActionFlag = 4; + this->spriteOrientation.flipY = 2; + this->spriteRendering.b3 = 2; + } +} + +void sub_08046A30(Entity* this) { + sub_08047D88(this); + if (((Entity*) this->otherEntity)->prev->field_0x6c.HWORD & 1) { + this->action = 2; + this->previousActionFlag = 0; + } +} + +void sub_08046A54(Entity* this) { + sub_08047E48(this); + if (gRoomControls.roomOriginX + 0x380 < this->x.HALF.HI) { + this->previousActionFlag = 6; + } +} + +void sub_08046A78(Entity* this) { + sub_08047D88(this); + if (((Entity*) this->otherEntity)->prev->field_0x6c.HWORD & 0x10) { + this->action = 3; + this->previousActionFlag = 0; + } +} + +void sub_08046A9C(Entity* this) { + if (this->animIndex == 1) { + if (this->frames.all == 1) { + InitAnimationForceUpdate(this, 0); + } + } + gUnk_080D1B38[this->previousActionFlag](this); + UpdateAnimationSingleFrame(this); + if (this->field_0x7c.BYTES.byte0) { + this->action = 6; + this->previousActionFlag = 0; + } +} + +void sub_08046AE8(Entity* this) { + this->previousActionFlag = 1; + this->nonPlanarMovement = 0x180; + sub_08048178(this, ((Entity*) this->otherEntity)->next->animationState >> 5); + this->field_0x76.HWORD = this->direction << 8; + sub_08047D88(this); +} + +void sub_08046B18(Entity* this) { + u32 tmp = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + if (tmp != this->direction) { + if (((tmp - this->direction) & 0xFF) > 0x80) { + this->field_0x76.HWORD -= 0x100; + } else { + this->field_0x76.HWORD += 0x100; + } + this->direction = this->field_0x76.HWORD >> 8; + } else { + this->previousActionFlag = 2; + } + sub_08047D88(this); + sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); +} + +void sub_08046B8C(Entity* this) { + if (sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, 4)) { + this->previousActionFlag = 3; + this->field_0x76.HWORD = this->direction << 8; + this->field_0x80.HWORD = gRoomControls.roomOriginX + 0x200; + this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x210; + sub_08047D88(this); + } else { + this->direction = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + } +} + +void sub_08046C04(Entity* this) { + u32 tmp = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + if (tmp != this->direction) { + if (((tmp - this->direction) & 0xFF) > 0x80) { + this->field_0x76.HWORD -= 0x100; + } else { + this->field_0x76.HWORD += 0x100; + } + this->direction = this->field_0x76.HWORD >> 8; + } else { + this->previousActionFlag = 4; + this->field_0x70.HALF.LO = ((tmp + 0x20) & 0xC0) >> 6; + } + sub_08047D88(this); + sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); +} + +void sub_08046C88(Entity* this) { + if (sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, 4)) { + this->previousActionFlag = 1; + sub_08048178(this, sub_08048158(this->field_0x70.HALF_U.LO)); + sub_08047D88(this); + } else { + this->direction = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + } +} + +void sub_08046CEC(Entity* this) { + if (this->animIndex == 0) { + if (this->frames.all == 1) { + InitAnimationForceUpdate(this, 1); + } + } + gUnk_080D1B4C[this->previousActionFlag](this); + UpdateAnimationSingleFrame(this); + if (((Entity*) this->otherEntity)->prev->field_0x6c.HWORD & 2) { + this->action = 2; + this->previousActionFlag = 0; + this->animationState = this->nonPlanarMovement; + } +} + +void sub_08046D44(Entity* this) { + const u16 * tmp; + this->previousActionFlag = 1; + this->nonPlanarMovement = 0x200; + tmp = gUnk_080D1B60 + (((Entity*) this->otherEntity)->next->animationState >> 5); + this->field_0x80.HWORD = tmp[0] + gRoomControls.roomOriginX; + this->field_0x82.HWORD = tmp[1] + gRoomControls.roomOriginY; + this->field_0x76.HWORD = this->direction << 8; + sub_08047D88(this); +} + +void sub_08046D98(Entity* this) { + u32 tmp = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + if (tmp != this->direction) { + if (((tmp - this->direction) & 0xFF) > 0x80) { + this->field_0x76.HWORD -= 0x100; + } else { + this->field_0x76.HWORD += 0x100; + } + this->direction = this->field_0x76.HWORD >> 8; + } else { + this->previousActionFlag = 2; + } + sub_08047D88(this); + sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); +} + +void sub_08046E0C(Entity* this) { + if (sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, 4)) { + this->previousActionFlag = 3; + this->field_0x76.HWORD = this->direction << 8; + sub_08047D88(this); + } else { + this->direction = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + } +} + +void sub_08046E68(Entity* this) { + u32 tmp = ((Entity*) this->otherEntity)->next->animationState ^ 0x80; + if (tmp != this->direction) { + if (((tmp - this->direction) & 0xFF) > 0x80) { + this->field_0x76.HWORD -= 0x100; + } else { + this->field_0x76.HWORD += 0x100; + } + this->direction = this->field_0x76.HWORD >> 8; + sub_08047D88(this); + sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); + } else { + this->previousActionFlag = 4; + this->actionDelay = 0x3F; + this->field_0xf = 1; + this->direction = (gUnk_080D1B70[(Random() & 1) << 1] + tmp) & 0xC0; + sub_08047D88(this); + } +} + +void sub_08046EF4(Entity* this) { + if (--this->actionDelay == 0) { + this->actionDelay = 0x7F; + this->direction ^= 0x80; + } + this->nonPlanarMovement = gUnk_080D1B74[(this->actionDelay >> 3) & 0xF]; + if ((--this->field_0xf & 0xFF) == 0) { + Entity* tmp; + this->field_0xf = (Random() & 0x38) + 0x78; + tmp = sub_080A7EE0(0x23); + if (tmp) { + tmp->collisionLayer = 2; + tmp->parent = this; + UpdateSpriteForCollisionLayer(tmp); + } + } + sub_08047E48(this); +} + +void sub_08046F64(Entity* this) { + if (this->animIndex == 0) { + if (this->frames.all == 1) { + InitAnimationForceUpdate(this, 1); + } + } + gUnk_080D1B94[this->previousActionFlag](this); + UpdateAnimationSingleFrame(this); + if (--this->field_0x7c.HALF.HI == 0) { + Entity* tmp; + this->field_0x7c.HALF.HI = 0x78; + tmp = sub_080A7EE0(0x23); + if (tmp) { + tmp->collisionLayer = 2; + tmp->parent = this; + UpdateSpriteForCollisionLayer(tmp); + } + } + if (((Entity*) this->otherEntity)->prev->field_0x6c.HWORD & 4) { + this->action = 5; + this->previousActionFlag = 0; + } +} + +void sub_08046FE8(Entity* this) { + this->previousActionFlag = 1; + this->nonPlanarMovement = 0x1c0; + this->field_0x7c.HALF.HI = 0x1e; + this->field_0x80.HWORD = gRoomControls.roomOriginX + 0x290; + this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x190; + sub_08047D88(this); +} + +void sub_0804702C(Entity* this) { + u32 tmp = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + if (((this->direction - tmp + 2) & 0xFF) > 4) { + if ((tmp - this->direction) & 0x80) { + this->direction--; + } else { + this->direction++; + } + } + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + if (sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, (this->nonPlanarMovement >> 0x10) + 0x10)) { + this->previousActionFlag = 2; + this->field_0x76.HWORD = this->direction << 8; + this->nonPlanarMovement = 0x280; + } +} + +void sub_080470B4(Entity* this) { + u32 tmp = 0x40; + if (tmp != this->direction) { + if (((tmp - this->direction) & 0xFF) > 0x80) { + this->field_0x76.HWORD -= 0x100; + } else { + this->field_0x76.HWORD += 0x100; + } + this->direction = this->field_0x76.HWORD >> 8; + sub_08047D88(this); + sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); + } else { + this->previousActionFlag = 3; + this->nonPlanarMovement = 0x200; + this->field_0x76.HWORD = this->direction << 8; + this->field_0x74.HWORD = gUnk_080D1BBC[Random() & 1]; + sub_08047D88(this); + } +} + +void sub_08047140(Entity* this) { + this->field_0x76.HWORD += this->field_0x74.HWORD; + this->direction = this->field_0x76.HWORD >> 8; + if (this->direction > 0xbf) { + this->direction = 0xC0; + this->previousActionFlag = 4; + } + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); +} + +void sub_0804717C(Entity* this) { + if (this->nonPlanarMovement < 0x280) { + this->nonPlanarMovement += 8; + } + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + if (gRoomControls.roomOriginX + 0x200 > this->x.HALF.HI) { + this->previousActionFlag = 5; + } +} + +void sub_080471C8(Entity* this) { + if (this->nonPlanarMovement > 0x180) { + this->nonPlanarMovement -= 0x10; + } + if (this->direction < 0xe0) { + this->direction++; + } + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + if (gRoomControls.roomOriginY + 0x190 <= this->y.HALF.HI) return; + if (this->field_0x74.HWORD > 0x100) { + if (Random() & 1) { + this->previousActionFlag = 6; + } else { + this->previousActionFlag = 0; + } + } else { + this->previousActionFlag = 0; + } +} + +void sub_0804723C(Entity* this) { + this->direction -= 2; + if (this->direction < 0xc0) { + this->previousActionFlag = 7; + this->nonPlanarMovement = 0x200; + this->direction = 0xc0; + this->field_0x76.HWORD = 0xc000; + } + sub_08047D88(this); + sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); +} + +void sub_08047284(Entity* this) { + this->field_0x76.HWORD -= 0xe0; + this->direction = this->field_0x76.HWORD >> 8; + if (this->direction < 0x40) { + this->direction = 0x40; + this->previousActionFlag = 8; + } + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); +} + +void sub_080472BC(Entity* this) { + if (this->nonPlanarMovement < 0x300) { + this->nonPlanarMovement += 8; + } + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + if (gRoomControls.roomOriginX + 0x2B0 >= this->x.HALF.HI) return; + this->previousActionFlag = 9; + this->field_0x76.HWORD = this->direction << 8; +} + +void sub_08047310(Entity* this) { + if (this->nonPlanarMovement < 0x180) { + this->nonPlanarMovement -= 0x10; + } + this->field_0x76.HWORD -= 0x1D0; + this->direction = this->field_0x76.HWORD >> 8; + if ((u8) (this->direction + 0x7F) < 0x40) { + this->direction = 0xC0; + this->previousActionFlag = 4; + } + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); +} + +void sub_0804736C(Entity* this) { + if (this->animIndex == 1) { + if (this->frames.all == 1) { + InitAnimationForceUpdate(this, 0); + } + } + gUnk_080D1BC0[this->previousActionFlag](this); + UpdateAnimationSingleFrame(this); + if (this->currentHealth == 0) { + this->action = 7; + this->previousActionFlag = 0; + } +} + +void sub_080473B8(Entity* this) { + this->previousActionFlag = 1; + this->nonPlanarMovement = 0x120; + this->field_0x80.HWORD = gRoomControls.roomOriginX + 0x200; + this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x1D0; + sub_08047D88(this); +} + +void sub_080473F0(Entity* this) { + u32 tmp = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + if (((this->direction - tmp + 2) & 0xFF) > 4) { + s32 tmp2 = tmp - this->direction; + if (tmp2 & 0x80) { + if (tmp2 < -1) { + this->direction -= 2; + } else { + this->direction -= 1; + } + } else { + if (tmp2 > 1) { + this->direction += 2; + } else { + this->direction += 1; + } + } + } + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + if (sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, 8)) { + this->previousActionFlag = 2; + this->field_0x76.HWORD = this->direction << 8; + this->nonPlanarMovement = 0x180; + } +} + +void sub_08047484(Entity* this) { + u32 tmp = 0x40; + if (tmp != this->direction) { + if (((tmp - this->direction) & 0xFF) > 0x80) { + this->field_0x76.HWORD -= 0x100; + } else { + this->field_0x76.HWORD += 0x100; + } + this->direction = this->field_0x76.HWORD >> 8; + sub_08047D88(this); + sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); + } else { + this->previousActionFlag = 3; + this->nonPlanarMovement = 0x200; + this->direction = 0x40; + this->field_0x76.HWORD = 0x4000; + this->field_0x74.HWORD = 0x180; + this->field_0x7c.HALF.HI = 0xF0; + sub_08047D88(this); + } +} + +void sub_08047508(Entity* this) { + if (gRoomControls.roomOriginX + 0x1A0 < this->x.HALF.HI) { + if (this->direction == 0) { + if (gRoomControls.roomOriginY + 0x208 >= this->y.HALF.HI) { + this->field_0x74.HWORD = -this->field_0x74.HWORD; + this->field_0x76.HWORD += this->field_0x74.HWORD; + this->direction = this->field_0x76.HWORD >> 8; + } + } else { + s32 tmp = (s16)this->field_0x74.HWORD; + if (tmp < 0) { + this->field_0x76.HWORD += tmp; + this->direction = this->field_0x76.HWORD >> 8; + if (this->direction & 0x80) { + this->direction = 0; + this->field_0x76.HWORD = 0; + } + } else { + if (this->direction < 0x40) { + this->field_0x76.HWORD += tmp; + this->direction = this->field_0x76.HWORD >> 8; + if (this->direction >= 0x40) { + this->direction = 0x40; + } + } + } + } + } + sub_08047E48(this); + if (gRoomControls.roomOriginX + 0x280 < this->x.HALF.HI) { + this->previousActionFlag = 4; + this->nonPlanarMovement = 0x200; + this->animationState = this->direction; + this->field_0x76.HWORD = this->direction << 8; + } + if (--this->field_0x7c.HALF.HI == 0) { + Entity* tmp = CreateEnemy(0x62, Random() & 3); + if (tmp) { + tmp->parent = this; + } + } +} + +void sub_080475F4(Entity* this) { + this->field_0x76.HWORD += 0x180; + this->direction = this->field_0x76.HWORD >> 8; + if (this->direction >= 0xc0) { + this->direction = 0xc0; + this->previousActionFlag = 5; + this->nonPlanarMovement = 0x200; + this->field_0x7c.HALF.HI = 0x3c; + } + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); +} + +void sub_0804763C(Entity* this) { + if (gRoomControls.roomOriginX + 0x1F0 > this->x.HALF.HI) { + if (this->direction == 0) { + if (gRoomControls.roomOriginY + 0x208 >= this->y.HALF.HI) { + this->field_0x74.HWORD = -this->field_0x74.HWORD; + this->field_0x76.HWORD += this->field_0x74.HWORD; + this->direction = this->field_0x76.HWORD >> 8; + } + } else { + s32 tmp = (s16) this->field_0x74.HWORD; + if (tmp > 0) { + this->field_0x76.HWORD += tmp; + this->direction = this->field_0x76.HWORD >> 8; + if ((this->direction & 0x80) == 0) { + this->direction = 0; + this->field_0x76.HWORD = 0; + } + } else { + if (this->direction > 0xC0) { + this->field_0x76.HWORD += tmp; + this->direction = this->field_0x76.HWORD >> 8; + if (this->direction <= 0xC0) { + this->direction = 0xC0; + } + } + } + } + } + sub_08047E48(this); + if (gRoomControls.roomOriginX + 0x180 > this->x.HALF.HI) { + this->previousActionFlag = 6; + this->nonPlanarMovement = 0x200; + this->animationState = this->direction; + this->field_0x76.HWORD = this->direction << 8; + } + if (--this->field_0x7c.HALF.HI == 0) { + Entity* tmp = CreateEnemy(0x62, Random() & 3); + if (tmp) { + tmp->parent = this; + } + } +} + +void sub_0804772C(Entity* this) { + this->field_0x76.HWORD -= 0x180; + this->direction = this->field_0x76.HWORD >> 8; + if (this->direction <= 0x40) { + this->direction = 0x40; + this->previousActionFlag = 3; + this->nonPlanarMovement = 0x200; + this->field_0x7c.HALF.HI = 0x1e; + } + sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); +} + +void sub_08047778(Entity* this) { + gUnk_080D1BDC[this->previousActionFlag](this); + UpdateAnimationSingleFrame(this); +} + +void sub_08047798(Entity* this) { + this->previousActionFlag = 1; + this->nonPlanarMovement = 0x80; + if (this->x.HALF.HI - gRoomControls.roomOriginX < 0x1F8) { + this->field_0x80.HWORD = 0xa8; + } else { + this->field_0x80.HWORD = 0x348; + } + this->field_0x80.HWORD += gRoomControls.roomOriginX; + this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x348; + sub_08047D88(this); +} + +void sub_080477F0(Entity* this) { + if (this->nonPlanarMovement < 0x300) { + this->nonPlanarMovement += 8; + } + this->direction = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + sub_08047E48(this); + if (!sub_0806FCB8(this, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI, 0x80)) { + this->action = 2; + this->previousActionFlag = 0; + this->spriteOrientation.flipY = 2; + this->spriteRendering.b3 = 2; + this->direction = this->animationState; + return; + } + if (!sub_0806FCB8(this, gRoomControls.roomOriginX + 0x200, gRoomControls.roomOriginY + 0x210, 0x100)) { + this->spriteOrientation.flipY = 3; + this->spriteRendering.b3 = 3; + } + if (sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, 4)) { + this->previousActionFlag = 2; + this->field_0x76.HWORD = this->animationState << 8; + this->field_0x74.HWORD = gUnk_080D1BF0[Random() & 1]; + if (((Entity*) this->otherEntity)->prev->field_0x6c.HWORD & 1) { + ((Entity*) this->otherEntity)->next->field_0x78.HALF.HI = gRoomControls.roomOriginX + 0x200 > this->x.HALF.HI ? 0x81 : 0x83; + } else { + ((Entity*) this->otherEntity)->next->field_0x78.HALF.HI = 0x80; + } + } +} + +void sub_08047914(Entity* this) { + sub_08047D88(this); + if (this->animationState & 0x1F) { + this->field_0x76.HWORD += this->field_0x74.HWORD; + this->animationState = this->field_0x76.HWORD >> 8; + sub_08047EA4(this, ((0x100 - this->animationState) & 0xFF) << 8); + } else { + this->previousActionFlag = 3; + this->field_0x70.HALF.LO = 0x3C; + this->field_0x7c.HALF.HI = ((this->entityType.form * 0xF) << 2) + 0x78; + sub_080A1D70(((Entity*) this->otherEntity)->prev, this->animationState); + } +} + +void sub_08047978(Entity* this) { + sub_08047D88(this); + if (this->currentHealth != 0) { + if (--this->field_0x70.HALF_U.LO == 0) { + this->field_0x70.HALF.HI = 1; + if (this->entityType.form == 0) { + this->field_0x70.HALF.LO = 0xB4; + } else { + this->field_0x70.HALF.LO = 0x168; + } + } else { + if (this->field_0x70.HALF_U.LO == 0xF0) { + sub_0804813C(this); + } + } + } else { + this->field_0x70.HALF.HI = 0; + } + if (--this->field_0x7c.HALF.HI == 0) { + Entity* tmp; + this->field_0x7c.HALF.HI = 0xF0; + tmp = CreateEnemy(0x62, Random() & 3); + if (tmp) { + tmp->parent = this; + } + } + if (!sub_0806FCB8(this, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI, 0x80)) { + this->action = 2; + this->previousActionFlag = 0; + this->spriteOrientation.flipY = 2; + this->spriteRendering.b3 = 2; + this->direction = this->animationState; + } + if (this->currentHealth != 0) return; + if (this->attachedEntity->action != 1) return; + this->previousActionFlag = 4; + if (this->entityType.form == 0) { + if ((((Entity*) this->otherEntity)->next->animationState >> 6) == 1) { + this->field_0x80.HWORD = gRoomControls.roomOriginX + 0x1C0; + this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x250; + } else { + this->field_0x80.HWORD = gRoomControls.roomOriginX + 0x240; + this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x250; + } + } else { + if (gRoomControls.roomOriginX + 0x200 < this->x.HALF.HI) { + this->field_0x80.HWORD = 0x190; + } else { + this->field_0x80.HWORD = 0x270; + } + this->field_0x80.HWORD += gRoomControls.roomOriginX; + if (gRoomControls.roomOriginY + 0x210 < this->y.HALF.HI) { + this->field_0x82.HWORD = 0x1A0; + } else { + this->field_0x82.HWORD = 0x280; + } + this->field_0x82.HWORD += gRoomControls.roomOriginY; + } + +} + +void sub_08047B08(Entity* this) { + sub_08047D88(this); + this->direction = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + this->nonPlanarMovement = 0x200; + sub_08047E58(this); + if (!sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, 4)) return; + if (this->entityType.form == 0) { + this->action = 7; + this->previousActionFlag = 0; + this->direction ^= 0x80; + } else { + this->action = 4; + this->previousActionFlag = 0; + this->spriteOrientation.flipY = 2; + this->spriteRendering.b3 = 2; + this->direction = this->animationState; + } +} + +void sub_08047B84(Entity* this) { + gUnk_080D1BF4[this->previousActionFlag](this); + UpdateAnimationSingleFrame(this); +} + +void sub_08047BA4(Entity* this) { + this->previousActionFlag = 1; + this->actionDelay = 0x78; + this->field_0xf = 0; + if (gRoomControls.roomOriginX + 0x200 < this->x.HALF.HI) { + this->field_0x76.HWORD = 0x78; + } else { + this->field_0x76.HWORD = 0x88; + } + PlaySFX(0x1B5); + sub_08047BF0(this); +} + +void sub_08047BF0(Entity* this) { + Entity* tmp; + this->direction = gUnk_080D1C00[this->actionDelay & 3]; + this->nonPlanarMovement = 0x100; + sub_08047E48(this); + if (this->actionDelay == 0) { + if ((this->field_0xf++ & 0xF) == 0) { + tmp = CreateFx(this, 0x51, 0); + if (tmp) { + u32 rand = Random(); + tmp->x.HALF.HI += (rand & 0x1E) + 0xFFF1; + rand >>= 8; + tmp->y.HALF.HI += (rand & 0x1E) + 0xFFF1; + tmp->spritePriority.b0 = 3; + tmp->collisionLayer = 1; + UpdateSpriteForCollisionLayer(tmp); + } + } + this->direction = this->field_0x76.HWORD; + this->nonPlanarMovement = 0x140; + sub_08047E48(this); + if (this->y.HALF.HI > gRoomControls.roomOriginY + 0x270) { + this->previousActionFlag = 2; + this->field_0x7c.HALF.HI = 0xAA; + PlaySFX(0x12D); + InitAnimationForceUpdate(this, 1); + } + } else { + this->actionDelay--; + if (this->actionDelay == 0x5A) { + tmp = this->attachedEntity; + tmp->spriteSettings.b.draw = 0; + CreateFx(tmp, 0x51, 0); + } else { + if (this->actionDelay == 0x3C) { + tmp = this->attachedEntity->attachedEntity; + tmp->spriteSettings.b.draw = 0; + CreateFx(tmp, 0x51, 0); + } else { + if (this->actionDelay == 0x1E) { + tmp = this->attachedEntity->attachedEntity->attachedEntity; + tmp->spriteSettings.b.draw = 0; + CreateFx(tmp, 0x51, 0); + } + } + } + } + sub_0805EC9C(this, 0xAA, 0xAA, this->field_0x78.HWORD); +} + +void sub_08047D24(Entity* this) { + this->field_0x7c.HALF_U.HI += 8; + if (this->field_0x7c.HALF_U.HI > 0x800) { + if (this->entityType.form == 0) { + ((u32*) this->otherEntity)[2] = 0; + } else { + ((u32*) this->otherEntity)[3] = 0; + } + this->otherEntity = 0; + DeleteThisEntity(); + } else { + if (this->field_0x7c.HALF_U.HI < 0x200) { + sub_08047E48(this); + } else { + sub_08047E58(this); + } + sub_0805EC9C(this, this->field_0x7c.HALF_U.HI, this->field_0x7c.HALF_U.HI, this->field_0x78.HWORD); + } +} + +void sub_08047D88(Entity* this) { + u32 tmp2; + u32 tmp = this->field_0x7c.BYTES.byte0; + tmp = ((tmp << 1) & 0x7F) | (tmp & 0x80); + this->field_0x7c.BYTES.byte0 = tmp; + tmp2 = this->spriteRendering.b3; + if (tmp2 == 3 && gPlayerState.field_0x14 != 0) return; + if (this->animIndex == 1) return; + if (!sub_0806FCB8(this, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI, 0x20)) return; + gPlayerState.field_0x14 = 1; + if (gPlayerEntity.height.HALF.HI != 0) return; + this->field_0x7c.BYTES.byte0 |= 1; +} + +void sub_08047DF0(Entity* this, u32 unk1) { + u32 oldX, oldY; + sub_08047D88(this); + sub_08047EA4(this, unk1); + oldX = this->x.HALF.HI; + oldY = this->y.HALF.HI; + sub_0806F62C(this, this->nonPlanarMovement, this->direction); + if (this->field_0x7c.BYTES.byte0 & 1) { + if (sub_08079F8C()) { + gPlayerEntity.x.HALF.HI += this->x.HALF.HI - oldX; + gPlayerEntity.y.HALF.HI += this->y.HALF.HI - oldY; + } + } +} + +void sub_08047E48(Entity* this) { + sub_08047D88(this); + sub_08047E58(this); +} + +void sub_08047E58(Entity* this) { + u32 oldX, oldY; + oldX = this->x.HALF.HI; + oldY = this->y.HALF.HI; + sub_0806F62C(this, this->nonPlanarMovement, this->direction); + if (this->field_0x7c.BYTES.byte0 & 1) { + if (sub_08079F8C()) { + gPlayerEntity.x.HALF.HI += this->x.HALF.HI - oldX; + gPlayerEntity.y.HALF.HI += this->y.HALF.HI - oldY; + } + } +} + +void sub_08047EA4(Entity* this, u32 unk1) { + s32 tmp; + u32 tmp2, dir; + this->field_0x78.HWORD = unk1; + tmp = this->field_0x78.HWORD - this->field_0x7a.HWORD; + if (tmp + 0x100 < 0x200u) return; + if (this->field_0x7c.BYTES.byte0 & 1) { + tmp2 = sub_08047F68(this) << 8; + dir = sub_080045DA(gPlayerEntity.x.HALF.HI - this->x.HALF.HI, gPlayerEntity.y.HALF.HI - this->y.HALF.HI); + tmp = dir - (tmp / 256); + tmp &= 0xFF; + gPlayerEntity.x.WORD += (gSineTable[tmp] - gSineTable[dir]) * tmp2; + gPlayerEntity.y.WORD -= (gSineTable[tmp + 0x40] - gSineTable[dir + 0x40]) * tmp2; + } + this->field_0x7a.HWORD = this->field_0x78.HWORD; +} + +u32 sub_08047F68(Entity* this) { + s32 diffX, diffY; + s32 distSquared, approx; + diffX = gPlayerEntity.x.HALF.HI - this->x.HALF.HI; + diffY = gPlayerEntity.y.HALF.HI - this->y.HALF.HI; + distSquared = (diffX * diffX) + (diffY * diffY); + if (distSquared == 0x400) return 0x20; + if (distSquared < gUnk_080D1C04[0x10]) { + approx = 0x8; + } else { + approx = 0x18; + } + if (distSquared < gUnk_080D1C04[approx]) { + approx -= 4; + } else { + approx += 4; + } + if (distSquared < gUnk_080D1C04[approx]) { + approx -= 2; + } else { + approx += 2; + } + if (distSquared < gUnk_080D1C04[approx]) { + approx -= 1; + } else { + approx += 1; + } + if (distSquared < gUnk_080D1C04[approx]) { + s32 tmp = gUnk_080D1C04[approx-1]; + tmp += (gUnk_080D1C04[approx] - tmp) / 2; + if (distSquared <= tmp) { + approx = approx - 1; + } + } + return approx; +} + +void sub_08048004(Entity* this) { + if (this->action == 0) return; + if (this->animIndex == 0) { + this->flags &= ~0x80; + if (gPlayerEntity.height.HALF.HI != 0) return; + if (!sub_08079F8C()) return; + if (this->field_0x7c.BYTES.byte0 & 1) { + u32 b = this->spriteRendering.b3; + if (b == 3) { + s32 posX = ((gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX) >> 3); + s32 posY = ((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) >> 3); + u16 * tmp = (u16*)&gUnk_02019EE0; + if (tmp[(posY << 7) + posX]) { + if (!(this->field_0x7c.BYTES.byte0 & 2)) { + this->field_0x7c.BYTES.byte0 |= 0x80; + } + if ((this->field_0x7c.BYTES.byte0 & 0x80)) return; + gPlayerEntity.x.HALF.HI = this->cutsceneBeh.HWORD; + gPlayerEntity.y.HALF.HI = this->field_0x86.HWORD; + return; + } + } + this->field_0x7c.BYTES.byte0 &= ~0x80; + } else { + u32 b = this->spriteRendering.b3; + if (b != 3) { + if (sub_0806FCB8(&gPlayerEntity, this->x.HALF.HI, this->y.HALF.HI, 0x24)) { + if (!(this->field_0x7c.BYTES.byte0 & 2)) { + u32 tmp = sub_080045DA(gPlayerEntity.x.HALF.HI - this->x.HALF.HI, gPlayerEntity.y.HALF.HI - this->y.HALF.HI); + gPlayerEntity.x.WORD = this->x.WORD + (gSineTable[tmp] * 9216); + gPlayerEntity.y.WORD = this->y.WORD - (gSineTable[tmp + 0x40] * 9216); + } + } + } + this->field_0x7c.BYTES.byte0 = 0; + } + } else { + this->flags |= 0x80; + } +} + +void sub_0804813C(Entity* this) { + u32 rand = Random(); + sub_080A1ED0(rand & 7, 1, (rand >> 8) & 3); +} + +u32 sub_08048158(u32 unk1) { + return gUnk_080D1C44[(unk1 * 3) + ((signed)Random() % 3)]; +} + +void sub_08048178(Entity* this, u32 unk1) { + const u16* tmp = ((((Entity*) this->otherEntity)->next->animationState >> 6 & 1) ? gUnk_080D1C60 + unk1: gUnk_080D1C50 + unk1); + this->field_0x80.HWORD = *tmp + gRoomControls.roomOriginX; + this->field_0x82.HWORD = *(tmp + 1) + gRoomControls.roomOriginY; +} diff --git a/src/enemy/keese.c b/src/enemy/keese.c index d73475f3..0b9890c0 100644 --- a/src/enemy/keese.c +++ b/src/enemy/keese.c @@ -13,7 +13,6 @@ extern void sub_0804A720(Entity*); extern void Keese_StartFly(Entity*); extern void sub_080AEFB4(Entity*); extern void sub_08021F24(Entity*); -extern u32 sub_0806FCB8(Entity*, s32, s32, u32); extern u32 sub_08049FA0(Entity*); extern u32 sub_08049EE4(Entity*); diff --git a/src/npc/townMinish.c b/src/npc/townMinish.c index 0ef4098e..0f454fc6 100644 --- a/src/npc/townMinish.c +++ b/src/npc/townMinish.c @@ -15,7 +15,6 @@ extern void sub_0806AEE4(Entity*); extern void sub_0806AFE8(Entity*, s32*); extern s32 sub_0806EDD8(Entity*, u32, u32); extern u32 sub_0806F5B0(u32); -extern void sub_0806F62C(Entity*, s32, s32); extern void sub_08078784(Entity*, u32); extern void sub_08078850(Entity*, u32, u32, u32*); diff --git a/src/npc/zelda.c b/src/npc/zelda.c index f708c6b8..9ef2018e 100644 --- a/src/npc/zelda.c +++ b/src/npc/zelda.c @@ -15,7 +15,6 @@ u32 GetAnimationState(Entity* ent); void DeleteThisEntity(void); extern Entity* GetEntityByType(u32, u32); extern void sub_080686C4(Entity*, Entity*); -extern void sub_0806F62C(Entity*, u32, u32); extern void PlaySFX(u32); extern void SetTileType(u32, u32, u32); diff --git a/src/object/objectA2.c b/src/object/objectA2.c index 4b163b17..5f4d2e55 100644 --- a/src/object/objectA2.c +++ b/src/object/objectA2.c @@ -21,8 +21,6 @@ typedef struct { const struct_08124708 gUnk_08124708[5] = { { 0, 0x2F }, { 1, 0x20 }, { 1, 0x16 }, { 2, 0x10 }, { 3, 0x01 } }; -extern u32 sub_080045DA(s32, u32); - void ObjectA2(Entity* this) { gUnk_081246F4[this->action](this); GetNextFrame(this); From 275041cd5a5f8427e0ac62e5c9f153ddd034cc97 Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Mon, 23 Nov 2020 17:19:26 +0100 Subject: [PATCH 2/3] Update Progress Bar --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 78672c1b..61c60717 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # The Legend of Zelda: The Minish Cap -**Progress:** [⬛⬛⬛⬛⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜] 20% +**Progress:** [⬛⬛⬛⬛⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜] 22% ```diff - WARNING! - From 7c1391f5c06d9b0c1ef772fb70afdc7748c7ade7 Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Mon, 23 Nov 2020 18:19:40 +0100 Subject: [PATCH 3/3] gyorgMale.c: split out rodata --- data/data_080D0448.s | 729 ------------------------------------------ data/data_080D1C70.s | 672 ++++++++++++++++++++++++++++++++++++++ linker.ld | 2 + src/enemy/gyorgMale.c | 305 ++++++++++++++---- 4 files changed, 910 insertions(+), 798 deletions(-) create mode 100644 data/data_080D1C70.s diff --git a/data/data_080D0448.s b/data/data_080D0448.s index 86577c9a..37adec31 100644 --- a/data/data_080D0448.s +++ b/data/data_080D0448.s @@ -1362,732 +1362,3 @@ gUnk_080D1AF4:: @ 080D1AF4 gUnk_080D1AF8:: @ 080D1AF8 .incbin "baserom.gba", 0x0D1AF8, 0x0000004 - -gUnk_080D1AFC:: @ 080D1AFC - .incbin "baserom.gba", 0x0D1AFC, 0x0000020 - -gUnk_080D1B1C:: @ 080D1B1C - .incbin "baserom.gba", 0x0D1B1C, 0x0000003 - -gUnk_080D1B1F:: @ 080D1B1F - .incbin "baserom.gba", 0x0D1B1F, 0x0000019 - -gUnk_080D1B38:: @ 080D1B38 - .incbin "baserom.gba", 0x0D1B38, 0x0000014 - -gUnk_080D1B4C:: @ 080D1B4C - .incbin "baserom.gba", 0x0D1B4C, 0x0000014 - -gUnk_080D1B60:: @ 080D1B60 - .incbin "baserom.gba", 0x0D1B60, 0x0000010 - -gUnk_080D1B70:: @ 080D1B70 - .incbin "baserom.gba", 0x0D1B70, 0x0000004 - -gUnk_080D1B74:: @ 080D1B74 - .incbin "baserom.gba", 0x0D1B74, 0x0000020 - -gUnk_080D1B94:: @ 080D1B94 - .incbin "baserom.gba", 0x0D1B94, 0x0000028 - -gUnk_080D1BBC:: @ 080D1BBC - .incbin "baserom.gba", 0x0D1BBC, 0x0000004 - -gUnk_080D1BC0:: @ 080D1BC0 - .incbin "baserom.gba", 0x0D1BC0, 0x000001C - -gUnk_080D1BDC:: @ 080D1BDC - .incbin "baserom.gba", 0x0D1BDC, 0x0000014 - -gUnk_080D1BF0:: @ 080D1BF0 - .incbin "baserom.gba", 0x0D1BF0, 0x0000004 - -gUnk_080D1BF4:: @ 080D1BF4 - .incbin "baserom.gba", 0x0D1BF4, 0x000000C - -gUnk_080D1C00:: @ 080D1C00 - .incbin "baserom.gba", 0x0D1C00, 0x0000004 - -gUnk_080D1C04:: @ 080D1C04 - .incbin "baserom.gba", 0x0D1C04, 0x0000017 - -gUnk_080D1C1B:: @ 080D1C1B - .incbin "baserom.gba", 0x0D1C1B, 0x0000013 - -gUnk_080D1C2E:: @ 080D1C2E - .incbin "baserom.gba", 0x0D1C2E, 0x0000016 - -gUnk_080D1C44:: @ 080D1C44 - .incbin "baserom.gba", 0x0D1C44, 0x000000C - -gUnk_080D1C50:: @ 080D1C50 - .incbin "baserom.gba", 0x0D1C50, 0x0000010 - -gUnk_080D1C60:: @ 080D1C60 - .incbin "baserom.gba", 0x0D1C60, 0x0000010 - -gUnk_080D1C70:: @ 080D1C70 - .incbin "baserom.gba", 0x0D1C70, 0x0000021 - -gUnk_080D1C91:: @ 080D1C91 - .incbin "baserom.gba", 0x0D1C91, 0x000002B - -gUnk_080D1CBC:: @ 080D1CBC - .incbin "baserom.gba", 0x0D1CBC, 0x000000C - -gUnk_080D1CC8:: @ 080D1CC8 - .incbin "baserom.gba", 0x0D1CC8, 0x0000018 - -gUnk_080D1CE0:: @ 080D1CE0 - .incbin "baserom.gba", 0x0D1CE0, 0x0000010 - -gUnk_080D1CF0:: @ 080D1CF0 - .incbin "baserom.gba", 0x0D1CF0, 0x0000009 - -gUnk_080D1CF9:: @ 080D1CF9 - .incbin "baserom.gba", 0x0D1CF9, 0x0000009 - -gUnk_080D1D02:: @ 080D1D02 - .incbin "baserom.gba", 0x0D1D02, 0x0000020 - -gUnk_080D1D22:: @ 080D1D22 - .incbin "baserom.gba", 0x0D1D22, 0x0000001 - -gUnk_080D1D23:: @ 080D1D23 - .incbin "baserom.gba", 0x0D1D23, 0x0000003 - -gUnk_080D1D26:: @ 080D1D26 - .incbin "baserom.gba", 0x0D1D26, 0x0000001 - -gUnk_080D1D27:: @ 080D1D27 - .incbin "baserom.gba", 0x0D1D27, 0x0000005 - -gUnk_080D1D2C:: @ 080D1D2C - .incbin "baserom.gba", 0x0D1D2C, 0x0000008 - -gUnk_080D1D34:: @ 080D1D34 - .incbin "baserom.gba", 0x0D1D34, 0x0000014 - -gUnk_080D1D48:: @ 080D1D48 - .incbin "baserom.gba", 0x0D1D48, 0x0000028 - -gUnk_080D1D70:: @ 080D1D70 - .incbin "baserom.gba", 0x0D1D70, 0x0000008 - -gUnk_080D1D78:: @ 080D1D78 - .incbin "baserom.gba", 0x0D1D78, 0x0000020 - -gUnk_080D1D98:: @ 080D1D98 - .incbin "baserom.gba", 0x0D1D98, 0x0000008 - -gUnk_080D1DA0:: @ 080D1DA0 - .incbin "baserom.gba", 0x0D1DA0, 0x0000028 - -gUnk_080D1DC8:: @ 080D1DC8 - .incbin "baserom.gba", 0x0D1DC8, 0x0000004 - -gUnk_080D1DCC:: @ 080D1DCC - .incbin "baserom.gba", 0x0D1DCC, 0x0000004 - -gUnk_080D1DD0:: @ 080D1DD0 - .incbin "baserom.gba", 0x0D1DD0, 0x000000C - -gUnk_080D1DDC:: @ 080D1DDC - .incbin "baserom.gba", 0x0D1DDC, 0x000000C - -gUnk_080D1DE8:: @ 080D1DE8 - .incbin "baserom.gba", 0x0D1DE8, 0x000001D - -gUnk_080D1E05:: @ 080D1E05 - .incbin "baserom.gba", 0x0D1E05, 0x0000016 - -gUnk_080D1E1B:: @ 080D1E1B - .incbin "baserom.gba", 0x0D1E1B, 0x0000006 - -gUnk_080D1E21:: @ 080D1E21 - .incbin "baserom.gba", 0x0D1E21, 0x0000005 - -gUnk_080D1E26:: @ 080D1E26 - .incbin "baserom.gba", 0x0D1E26, 0x000000C - -gUnk_080D1E32:: @ 080D1E32 - .incbin "baserom.gba", 0x0D1E32, 0x0000012 - -gUnk_080D1E44:: @ 080D1E44 - .incbin "baserom.gba", 0x0D1E44, 0x0000028 - -gUnk_080D1E6C:: @ 080D1E6C - .incbin "baserom.gba", 0x0D1E6C, 0x0000018 - -gUnk_080D1E84:: @ 080D1E84 - .incbin "baserom.gba", 0x0D1E84, 0x0000010 - -gUnk_080D1E94:: @ 080D1E94 - .incbin "baserom.gba", 0x0D1E94, 0x000000C - -gUnk_080D1EA0:: @ 080D1EA0 - .incbin "baserom.gba", 0x0D1EA0, 0x0000016 - -gUnk_080D1EB6:: @ 080D1EB6 - .incbin "baserom.gba", 0x0D1EB6, 0x0000009 - -gUnk_080D1EBF:: @ 080D1EBF - .incbin "baserom.gba", 0x0D1EBF, 0x0000009 - -gUnk_080D1EC8:: @ 080D1EC8 - .incbin "baserom.gba", 0x0D1EC8, 0x0000009 - -gUnk_080D1ED1:: @ 080D1ED1 - .incbin "baserom.gba", 0x0D1ED1, 0x0000009 - -gUnk_080D1EDA:: @ 080D1EDA - .incbin "baserom.gba", 0x0D1EDA, 0x0000009 - -gUnk_080D1EE3:: @ 080D1EE3 - .incbin "baserom.gba", 0x0D1EE3, 0x0000009 - -gUnk_080D1EEC:: @ 080D1EEC - .incbin "baserom.gba", 0x0D1EEC, 0x0000009 - -gUnk_080D1EF5:: @ 080D1EF5 - .incbin "baserom.gba", 0x0D1EF5, 0x0000009 - -gUnk_080D1EFE:: @ 080D1EFE - .incbin "baserom.gba", 0x0D1EFE, 0x0000004 - -gUnk_080D1F02:: @ 080D1F02 - .incbin "baserom.gba", 0x0D1F02, 0x0000004 - -gUnk_080D1F06:: @ 080D1F06 - .incbin "baserom.gba", 0x0D1F06, 0x0000004 - -gUnk_080D1F0A:: @ 080D1F0A - .incbin "baserom.gba", 0x0D1F0A, 0x0000004 - -gUnk_080D1F0E:: @ 080D1F0E - .incbin "baserom.gba", 0x0D1F0E, 0x0000004 - -gUnk_080D1F12:: @ 080D1F12 - .incbin "baserom.gba", 0x0D1F12, 0x0000004 - -gUnk_080D1F16:: @ 080D1F16 - .incbin "baserom.gba", 0x0D1F16, 0x0000004 - -gUnk_080D1F1A:: @ 080D1F1A - .incbin "baserom.gba", 0x0D1F1A, 0x0000006 - -gUnk_080D1F20:: @ 080D1F20 - .incbin "baserom.gba", 0x0D1F20, 0x0000014 - -gUnk_080D1F34:: @ 080D1F34 - .incbin "baserom.gba", 0x0D1F34, 0x0000030 - -gUnk_080D1F64:: @ 080D1F64 - .incbin "baserom.gba", 0x0D1F64, 0x0000018 - -gUnk_080D1F7C:: @ 080D1F7C - .incbin "baserom.gba", 0x0D1F7C, 0x0000014 - -gUnk_080D1F90:: @ 080D1F90 - .incbin "baserom.gba", 0x0D1F90, 0x0000080 - -gUnk_080D2010:: @ 080D2010 - .incbin "baserom.gba", 0x0D2010, 0x0000020 - -gUnk_080D2030:: @ 080D2030 - .incbin "baserom.gba", 0x0D2030, 0x0000020 - -gUnk_080D2050:: @ 080D2050 - .incbin "baserom.gba", 0x0D2050, 0x0000014 - -gUnk_080D2064:: @ 080D2064 - .incbin "baserom.gba", 0x0D2064, 0x0000014 - -gUnk_080D2078:: @ 080D2078 - .incbin "baserom.gba", 0x0D2078, 0x0000014 - -gUnk_080D208C:: @ 080D208C - .incbin "baserom.gba", 0x0D208C, 0x0000014 - -gUnk_080D20A0:: @ 080D20A0 - .incbin "baserom.gba", 0x0D20A0, 0x0000014 - -gUnk_080D20B4:: @ 080D20B4 - .incbin "baserom.gba", 0x0D20B4, 0x0000014 - -gUnk_080D20C8:: @ 080D20C8 - .incbin "baserom.gba", 0x0D20C8, 0x0000014 - -gUnk_080D20DC:: @ 080D20DC - .incbin "baserom.gba", 0x0D20DC, 0x0000014 - -gUnk_080D20F0:: @ 080D20F0 - .incbin "baserom.gba", 0x0D20F0, 0x0000014 - -gUnk_080D2104:: @ 080D2104 - .incbin "baserom.gba", 0x0D2104, 0x0000014 - -gUnk_080D2118:: @ 080D2118 - .incbin "baserom.gba", 0x0D2118, 0x0000014 - -gUnk_080D212C:: @ 080D212C - .incbin "baserom.gba", 0x0D212C, 0x0000014 - -gUnk_080D2140:: @ 080D2140 - .incbin "baserom.gba", 0x0D2140, 0x0000014 - -gUnk_080D2154:: @ 080D2154 - .incbin "baserom.gba", 0x0D2154, 0x0000014 - -gUnk_080D2168:: @ 080D2168 - .incbin "baserom.gba", 0x0D2168, 0x0000014 - -gUnk_080D217C:: @ 080D217C - .incbin "baserom.gba", 0x0D217C, 0x0000014 - -gUnk_080D2190:: @ 080D2190 - .incbin "baserom.gba", 0x0D2190, 0x0000029 - -gUnk_080D21B9:: @ 080D21B9 - .incbin "baserom.gba", 0x0D21B9, 0x0000029 - -gUnk_080D21E2:: @ 080D21E2 - .incbin "baserom.gba", 0x0D21E2, 0x0000029 - -gUnk_080D220B:: @ 080D220B - .incbin "baserom.gba", 0x0D220B, 0x0000029 - -gUnk_080D2234:: @ 080D2234 - .incbin "baserom.gba", 0x0D2234, 0x0000010 - -gUnk_080D2244:: @ 080D2244 - .incbin "baserom.gba", 0x0D2244, 0x0000010 - -gUnk_080D2254:: @ 080D2254 - .incbin "baserom.gba", 0x0D2254, 0x0000010 - -gUnk_080D2264:: @ 080D2264 - .incbin "baserom.gba", 0x0D2264, 0x0000010 - -gUnk_080D2274:: @ 080D2274 - .incbin "baserom.gba", 0x0D2274, 0x0000064 - -gUnk_080D22D8:: @ 080D22D8 - .incbin "baserom.gba", 0x0D22D8, 0x0000018 - -gUnk_080D22F0:: @ 080D22F0 - .incbin "baserom.gba", 0x0D22F0, 0x0000010 - -gUnk_080D2300:: @ 080D2300 - .incbin "baserom.gba", 0x0D2300, 0x0000048 - -gUnk_080D2348:: @ 080D2348 - .incbin "baserom.gba", 0x0D2348, 0x0000020 - -gUnk_080D2368:: @ 080D2368 - .incbin "baserom.gba", 0x0D2368, 0x0000011 - -gUnk_080D2379:: @ 080D2379 - .incbin "baserom.gba", 0x0D2379, 0x0000011 - -gUnk_080D238A:: @ 080D238A - .incbin "baserom.gba", 0x0D238A, 0x0000011 - -gUnk_080D239B:: @ 080D239B - .incbin "baserom.gba", 0x0D239B, 0x0000011 - -gUnk_080D23AC:: @ 080D23AC - .incbin "baserom.gba", 0x0D23AC, 0x0000011 - -gUnk_080D23BD:: @ 080D23BD - .incbin "baserom.gba", 0x0D23BD, 0x0000011 - -gUnk_080D23CE:: @ 080D23CE - .incbin "baserom.gba", 0x0D23CE, 0x0000011 - -gUnk_080D23DF:: @ 080D23DF - .incbin "baserom.gba", 0x0D23DF, 0x0000011 - -gUnk_080D23F0:: @ 080D23F0 - .incbin "baserom.gba", 0x0D23F0, 0x0000011 - -gUnk_080D2401:: @ 080D2401 - .incbin "baserom.gba", 0x0D2401, 0x0000011 - -gUnk_080D2412:: @ 080D2412 - .incbin "baserom.gba", 0x0D2412, 0x0000011 - -gUnk_080D2423:: @ 080D2423 - .incbin "baserom.gba", 0x0D2423, 0x0000011 - -gUnk_080D2434:: @ 080D2434 - .incbin "baserom.gba", 0x0D2434, 0x0000011 - -gUnk_080D2445:: @ 080D2445 - .incbin "baserom.gba", 0x0D2445, 0x0000011 - -gUnk_080D2456:: @ 080D2456 - .incbin "baserom.gba", 0x0D2456, 0x0000011 - -gUnk_080D2467:: @ 080D2467 - .incbin "baserom.gba", 0x0D2467, 0x0000011 - -gUnk_080D2478:: @ 080D2478 - .incbin "baserom.gba", 0x0D2478, 0x0000011 - -gUnk_080D2489:: @ 080D2489 - .incbin "baserom.gba", 0x0D2489, 0x0000011 - -gUnk_080D249A:: @ 080D249A - .incbin "baserom.gba", 0x0D249A, 0x0000011 - -gUnk_080D24AB:: @ 080D24AB - .incbin "baserom.gba", 0x0D24AB, 0x0000011 - -gUnk_080D24BC:: @ 080D24BC - .incbin "baserom.gba", 0x0D24BC, 0x0000011 - -gUnk_080D24CD:: @ 080D24CD - .incbin "baserom.gba", 0x0D24CD, 0x0000011 - -gUnk_080D24DE:: @ 080D24DE - .incbin "baserom.gba", 0x0D24DE, 0x0000011 - -gUnk_080D24EF:: @ 080D24EF - .incbin "baserom.gba", 0x0D24EF, 0x0000011 - -gUnk_080D2500:: @ 080D2500 - .incbin "baserom.gba", 0x0D2500, 0x0000011 - -gUnk_080D2511:: @ 080D2511 - .incbin "baserom.gba", 0x0D2511, 0x0000011 - -gUnk_080D2522:: @ 080D2522 - .incbin "baserom.gba", 0x0D2522, 0x0000011 - -gUnk_080D2533:: @ 080D2533 - .incbin "baserom.gba", 0x0D2533, 0x0000011 - -gUnk_080D2544:: @ 080D2544 - .incbin "baserom.gba", 0x0D2544, 0x0000011 - -gUnk_080D2555:: @ 080D2555 - .incbin "baserom.gba", 0x0D2555, 0x0000011 - -gUnk_080D2566:: @ 080D2566 - .incbin "baserom.gba", 0x0D2566, 0x0000011 - -gUnk_080D2577:: @ 080D2577 - .incbin "baserom.gba", 0x0D2577, 0x0000011 - -gUnk_080D2588:: @ 080D2588 - .incbin "baserom.gba", 0x0D2588, 0x0000011 - -gUnk_080D2599:: @ 080D2599 - .incbin "baserom.gba", 0x0D2599, 0x0000011 - -gUnk_080D25AA:: @ 080D25AA - .incbin "baserom.gba", 0x0D25AA, 0x0000011 - -gUnk_080D25BB:: @ 080D25BB - .incbin "baserom.gba", 0x0D25BB, 0x0000011 - -gUnk_080D25CC:: @ 080D25CC - .incbin "baserom.gba", 0x0D25CC, 0x0000011 - -gUnk_080D25DD:: @ 080D25DD - .incbin "baserom.gba", 0x0D25DD, 0x0000011 - -gUnk_080D25EE:: @ 080D25EE - .incbin "baserom.gba", 0x0D25EE, 0x0000011 - -gUnk_080D25FF:: @ 080D25FF - .incbin "baserom.gba", 0x0D25FF, 0x0000011 - -gUnk_080D2610:: @ 080D2610 - .incbin "baserom.gba", 0x0D2610, 0x0000011 - -gUnk_080D2621:: @ 080D2621 - .incbin "baserom.gba", 0x0D2621, 0x0000011 - -gUnk_080D2632:: @ 080D2632 - .incbin "baserom.gba", 0x0D2632, 0x0000011 - -gUnk_080D2643:: @ 080D2643 - .incbin "baserom.gba", 0x0D2643, 0x0000011 - -gUnk_080D2654:: @ 080D2654 - .incbin "baserom.gba", 0x0D2654, 0x0000011 - -gUnk_080D2665:: @ 080D2665 - .incbin "baserom.gba", 0x0D2665, 0x0000011 - -gUnk_080D2676:: @ 080D2676 - .incbin "baserom.gba", 0x0D2676, 0x0000011 - -gUnk_080D2687:: @ 080D2687 - .incbin "baserom.gba", 0x0D2687, 0x0000011 - -gUnk_080D2698:: @ 080D2698 - .incbin "baserom.gba", 0x0D2698, 0x0000011 - -gUnk_080D26A9:: @ 080D26A9 - .incbin "baserom.gba", 0x0D26A9, 0x0000011 - -gUnk_080D26BA:: @ 080D26BA - .incbin "baserom.gba", 0x0D26BA, 0x0000011 - -gUnk_080D26CB:: @ 080D26CB - .incbin "baserom.gba", 0x0D26CB, 0x0000011 - -gUnk_080D26DC:: @ 080D26DC - .incbin "baserom.gba", 0x0D26DC, 0x0000011 - -gUnk_080D26ED:: @ 080D26ED - .incbin "baserom.gba", 0x0D26ED, 0x0000011 - -gUnk_080D26FE:: @ 080D26FE - .incbin "baserom.gba", 0x0D26FE, 0x0000011 - -gUnk_080D270F:: @ 080D270F - .incbin "baserom.gba", 0x0D270F, 0x0000011 - -gUnk_080D2720:: @ 080D2720 - .incbin "baserom.gba", 0x0D2720, 0x0000011 - -gUnk_080D2731:: @ 080D2731 - .incbin "baserom.gba", 0x0D2731, 0x0000011 - -gUnk_080D2742:: @ 080D2742 - .incbin "baserom.gba", 0x0D2742, 0x0000011 - -gUnk_080D2753:: @ 080D2753 - .incbin "baserom.gba", 0x0D2753, 0x0000011 - -gUnk_080D2764:: @ 080D2764 - .incbin "baserom.gba", 0x0D2764, 0x0000011 - -gUnk_080D2775:: @ 080D2775 - .incbin "baserom.gba", 0x0D2775, 0x0000011 - -gUnk_080D2786:: @ 080D2786 - .incbin "baserom.gba", 0x0D2786, 0x0000011 - -gUnk_080D2797:: @ 080D2797 - .incbin "baserom.gba", 0x0D2797, 0x0000011 - -gUnk_080D27A8:: @ 080D27A8 - .incbin "baserom.gba", 0x0D27A8, 0x0000104 - -gUnk_080D28AC:: @ 080D28AC - .incbin "baserom.gba", 0x0D28AC, 0x0000020 - -gUnk_080D28CC:: @ 080D28CC - .incbin "baserom.gba", 0x0D28CC, 0x0000010 - -gUnk_080D28DC:: @ 080D28DC - .incbin "baserom.gba", 0x0D28DC, 0x0000008 - -gUnk_080D28E4:: @ 080D28E4 - .incbin "baserom.gba", 0x0D28E4, 0x0000008 - -gUnk_080D28EC:: @ 080D28EC - .incbin "baserom.gba", 0x0D28EC, 0x0000008 - -gUnk_080D28F4:: @ 080D28F4 - .incbin "baserom.gba", 0x0D28F4, 0x0000008 - -gUnk_080D28FC:: @ 080D28FC - .incbin "baserom.gba", 0x0D28FC, 0x0000008 - -gUnk_080D2904:: @ 080D2904 - .incbin "baserom.gba", 0x0D2904, 0x0000008 - -gUnk_080D290C:: @ 080D290C - .incbin "baserom.gba", 0x0D290C, 0x0000008 - -gUnk_080D2914:: @ 080D2914 - .incbin "baserom.gba", 0x0D2914, 0x0000008 - -gUnk_080D291C:: @ 080D291C - .incbin "baserom.gba", 0x0D291C, 0x0000011 - -gUnk_080D292D:: @ 080D292D - .incbin "baserom.gba", 0x0D292D, 0x0000011 - -gUnk_080D293E:: @ 080D293E - .incbin "baserom.gba", 0x0D293E, 0x000000C - -gUnk_080D294A:: @ 080D294A - .incbin "baserom.gba", 0x0D294A, 0x0000005 - -gUnk_080D294F:: @ 080D294F - .incbin "baserom.gba", 0x0D294F, 0x0000011 - -gUnk_080D2960:: @ 080D2960 - .incbin "baserom.gba", 0x0D2960, 0x0000014 - -gUnk_080D2974:: @ 080D2974 - .incbin "baserom.gba", 0x0D2974, 0x0000014 - -gUnk_080D2988:: @ 080D2988 - .incbin "baserom.gba", 0x0D2988, 0x0000008 - -gUnk_080D2990:: @ 080D2990 - .incbin "baserom.gba", 0x0D2990, 0x0000018 - -gUnk_080D29A8:: @ 080D29A8 - .incbin "baserom.gba", 0x0D29A8, 0x0000010 - -gUnk_080D29B8:: @ 080D29B8 - .incbin "baserom.gba", 0x0D29B8, 0x0000008 - -gUnk_080D29C0:: @ 080D29C0 - .incbin "baserom.gba", 0x0D29C0, 0x0000020 - -gUnk_080D29E0:: @ 080D29E0 - .byte 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - -gUnk_080D2AB0:: @ 080D2AB0 - .byte 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x00, 0x00, 0x00, 0x00 - -gUnk_080D2ABC:: @ 080D2ABC - .incbin "baserom.gba", 0x0D2ABC, 0x000019C - -gUnk_080D2C58:: @ 080D2C58 - .incbin "baserom.gba", 0x0D2C58, 0x00001CE - -gUnk_080D2E26:: @ 080D2E26 - .incbin "baserom.gba", 0x0D2E26, 0x0000492 - -gUnk_080D32B8:: @ 080D32B8 - .incbin "baserom.gba", 0x0D32B8, 0x0000030 - -gUnk_080D32E8:: @ 080D32E8 - .incbin "baserom.gba", 0x0D32E8, 0x0000020 - -gUnk_080D3308:: @ 080D3308 - .incbin "baserom.gba", 0x0D3308, 0x0000080 - -gUnk_080D3388:: @ 080D3388 - .incbin "baserom.gba", 0x0D3388, 0x0000040 - -gUnk_080D33C8:: @ 080D33C8 - .incbin "baserom.gba", 0x0D33C8, 0x0000090 - -gUnk_080D3458:: @ 080D3458 - .incbin "baserom.gba", 0x0D3458, 0x0000030 - -gUnk_080D3488:: @ 080D3488 - .incbin "baserom.gba", 0x0D3488, 0x0000030 - -gUnk_080D34B8:: @ 080D34B8 - .incbin "baserom.gba", 0x0D34B8, 0x0000020 - -gUnk_080D34D8:: @ 080D34D8 - .incbin "baserom.gba", 0x0D34D8, 0x0000030 - -gUnk_080D3508:: @ 080D3508 - .incbin "baserom.gba", 0x0D3508, 0x0000090 - -gUnk_080D3598:: @ 080D3598 - .incbin "baserom.gba", 0x0D3598, 0x0000040 - -gUnk_080D35D8:: @ 080D35D8 - .incbin "baserom.gba", 0x0D35D8, 0x0000070 - -gUnk_080D3648:: @ 080D3648 - .incbin "baserom.gba", 0x0D3648, 0x0000080 - -gUnk_080D36C8:: @ 080D36C8 - .incbin "baserom.gba", 0x0D36C8, 0x0000020 - -gUnk_080D36E8:: @ 080D36E8 - .incbin "baserom.gba", 0x0D36E8, 0x0000030 - -gUnk_080D3718:: @ 080D3718 - .incbin "baserom.gba", 0x0D3718, 0x0000030 - -gUnk_080D3748:: @ 080D3748 - .incbin "baserom.gba", 0x0D3748, 0x0000020 - -gUnk_080D3768:: @ 080D3768 - .incbin "baserom.gba", 0x0D3768, 0x0000020 - -gUnk_080D3788:: @ 080D3788 - .incbin "baserom.gba", 0x0D3788, 0x0000050 - -gUnk_080D37D8:: @ 080D37D8 - .incbin "baserom.gba", 0x0D37D8, 0x0000020 - -gUnk_080D37F8:: @ 080D37F8 - .incbin "baserom.gba", 0x0D37F8, 0x0000030 - -gUnk_080D3828:: @ 080D3828 - .incbin "baserom.gba", 0x0D3828, 0x0000080 - -gUnk_080D38A8:: @ 080D38A8 - .incbin "baserom.gba", 0x0D38A8, 0x0000030 - -gUnk_080D38D8:: @ 080D38D8 - .incbin "baserom.gba", 0x0D38D8, 0x0000040 - -gUnk_080D3918:: @ 080D3918 - .incbin "baserom.gba", 0x0D3918, 0x0000020 - -gUnk_080D3938:: @ 080D3938 - .incbin "baserom.gba", 0x0D3938, 0x0000017 - -gUnk_080D394F:: @ 080D394F - .incbin "baserom.gba", 0x0D394F, 0x0000029 - -gUnk_080D3978:: @ 080D3978 - .incbin "baserom.gba", 0x0D3978, 0x0000060 - -gUnk_080D39D8:: @ 080D39D8 - .incbin "baserom.gba", 0x0D39D8, 0x0000040 - -gUnk_080D3A18:: @ 080D3A18 - .incbin "baserom.gba", 0x0D3A18, 0x0000050 - -gUnk_080D3A68:: @ 080D3A68 - .incbin "baserom.gba", 0x0D3A68, 0x0000030 - -gUnk_080D3A98:: @ 080D3A98 - .incbin "baserom.gba", 0x0D3A98, 0x0000030 - -gUnk_080D3AC8:: @ 080D3AC8 - .incbin "baserom.gba", 0x0D3AC8, 0x0000020 - -gUnk_080D3AE8:: @ 080D3AE8 - .incbin "baserom.gba", 0x0D3AE8, 0x0000040 - -gUnk_080D3B28:: @ 080D3B28 - .incbin "baserom.gba", 0x0D3B28, 0x0000020 - -gUnk_080D3B48:: @ 080D3B48 - .incbin "baserom.gba", 0x0D3B48, 0x0000040 - -gUnk_080D3B88:: @ 080D3B88 - .incbin "baserom.gba", 0x0D3B88, 0x0000020 - -gUnk_080D3BA8:: @ 080D3BA8 - .incbin "baserom.gba", 0x0D3BA8, 0x0000020 - -gUnk_080D3BC8:: @ 080D3BC8 - .incbin "baserom.gba", 0x0D3BC8, 0x0000020 - -gUnk_080D3BE8:: @ 080D3BE8 - .incbin "baserom.gba", 0x0D3BE8, 0x0000010 diff --git a/data/data_080D1C70.s b/data/data_080D1C70.s new file mode 100644 index 00000000..0f32e4cf --- /dev/null +++ b/data/data_080D1C70.s @@ -0,0 +1,672 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2 + + +gUnk_080D1C70:: @ 080D1C70 + .incbin "baserom.gba", 0x0D1C70, 0x0000021 + +gUnk_080D1C91:: @ 080D1C91 + .incbin "baserom.gba", 0x0D1C91, 0x000002B + +gUnk_080D1CBC:: @ 080D1CBC + .incbin "baserom.gba", 0x0D1CBC, 0x000000C + +gUnk_080D1CC8:: @ 080D1CC8 + .incbin "baserom.gba", 0x0D1CC8, 0x0000018 + +gUnk_080D1CE0:: @ 080D1CE0 + .incbin "baserom.gba", 0x0D1CE0, 0x0000010 + +gUnk_080D1CF0:: @ 080D1CF0 + .incbin "baserom.gba", 0x0D1CF0, 0x0000009 + +gUnk_080D1CF9:: @ 080D1CF9 + .incbin "baserom.gba", 0x0D1CF9, 0x0000009 + +gUnk_080D1D02:: @ 080D1D02 + .incbin "baserom.gba", 0x0D1D02, 0x0000020 + +gUnk_080D1D22:: @ 080D1D22 + .incbin "baserom.gba", 0x0D1D22, 0x0000001 + +gUnk_080D1D23:: @ 080D1D23 + .incbin "baserom.gba", 0x0D1D23, 0x0000003 + +gUnk_080D1D26:: @ 080D1D26 + .incbin "baserom.gba", 0x0D1D26, 0x0000001 + +gUnk_080D1D27:: @ 080D1D27 + .incbin "baserom.gba", 0x0D1D27, 0x0000005 + +gUnk_080D1D2C:: @ 080D1D2C + .incbin "baserom.gba", 0x0D1D2C, 0x0000008 + +gUnk_080D1D34:: @ 080D1D34 + .incbin "baserom.gba", 0x0D1D34, 0x0000014 + +gUnk_080D1D48:: @ 080D1D48 + .incbin "baserom.gba", 0x0D1D48, 0x0000028 + +gUnk_080D1D70:: @ 080D1D70 + .incbin "baserom.gba", 0x0D1D70, 0x0000008 + +gUnk_080D1D78:: @ 080D1D78 + .incbin "baserom.gba", 0x0D1D78, 0x0000020 + +gUnk_080D1D98:: @ 080D1D98 + .incbin "baserom.gba", 0x0D1D98, 0x0000008 + +gUnk_080D1DA0:: @ 080D1DA0 + .incbin "baserom.gba", 0x0D1DA0, 0x0000028 + +gUnk_080D1DC8:: @ 080D1DC8 + .incbin "baserom.gba", 0x0D1DC8, 0x0000004 + +gUnk_080D1DCC:: @ 080D1DCC + .incbin "baserom.gba", 0x0D1DCC, 0x0000004 + +gUnk_080D1DD0:: @ 080D1DD0 + .incbin "baserom.gba", 0x0D1DD0, 0x000000C + +gUnk_080D1DDC:: @ 080D1DDC + .incbin "baserom.gba", 0x0D1DDC, 0x000000C + +gUnk_080D1DE8:: @ 080D1DE8 + .incbin "baserom.gba", 0x0D1DE8, 0x000001D + +gUnk_080D1E05:: @ 080D1E05 + .incbin "baserom.gba", 0x0D1E05, 0x0000016 + +gUnk_080D1E1B:: @ 080D1E1B + .incbin "baserom.gba", 0x0D1E1B, 0x0000006 + +gUnk_080D1E21:: @ 080D1E21 + .incbin "baserom.gba", 0x0D1E21, 0x0000005 + +gUnk_080D1E26:: @ 080D1E26 + .incbin "baserom.gba", 0x0D1E26, 0x000000C + +gUnk_080D1E32:: @ 080D1E32 + .incbin "baserom.gba", 0x0D1E32, 0x0000012 + +gUnk_080D1E44:: @ 080D1E44 + .incbin "baserom.gba", 0x0D1E44, 0x0000028 + +gUnk_080D1E6C:: @ 080D1E6C + .incbin "baserom.gba", 0x0D1E6C, 0x0000018 + +gUnk_080D1E84:: @ 080D1E84 + .incbin "baserom.gba", 0x0D1E84, 0x0000010 + +gUnk_080D1E94:: @ 080D1E94 + .incbin "baserom.gba", 0x0D1E94, 0x000000C + +gUnk_080D1EA0:: @ 080D1EA0 + .incbin "baserom.gba", 0x0D1EA0, 0x0000016 + +gUnk_080D1EB6:: @ 080D1EB6 + .incbin "baserom.gba", 0x0D1EB6, 0x0000009 + +gUnk_080D1EBF:: @ 080D1EBF + .incbin "baserom.gba", 0x0D1EBF, 0x0000009 + +gUnk_080D1EC8:: @ 080D1EC8 + .incbin "baserom.gba", 0x0D1EC8, 0x0000009 + +gUnk_080D1ED1:: @ 080D1ED1 + .incbin "baserom.gba", 0x0D1ED1, 0x0000009 + +gUnk_080D1EDA:: @ 080D1EDA + .incbin "baserom.gba", 0x0D1EDA, 0x0000009 + +gUnk_080D1EE3:: @ 080D1EE3 + .incbin "baserom.gba", 0x0D1EE3, 0x0000009 + +gUnk_080D1EEC:: @ 080D1EEC + .incbin "baserom.gba", 0x0D1EEC, 0x0000009 + +gUnk_080D1EF5:: @ 080D1EF5 + .incbin "baserom.gba", 0x0D1EF5, 0x0000009 + +gUnk_080D1EFE:: @ 080D1EFE + .incbin "baserom.gba", 0x0D1EFE, 0x0000004 + +gUnk_080D1F02:: @ 080D1F02 + .incbin "baserom.gba", 0x0D1F02, 0x0000004 + +gUnk_080D1F06:: @ 080D1F06 + .incbin "baserom.gba", 0x0D1F06, 0x0000004 + +gUnk_080D1F0A:: @ 080D1F0A + .incbin "baserom.gba", 0x0D1F0A, 0x0000004 + +gUnk_080D1F0E:: @ 080D1F0E + .incbin "baserom.gba", 0x0D1F0E, 0x0000004 + +gUnk_080D1F12:: @ 080D1F12 + .incbin "baserom.gba", 0x0D1F12, 0x0000004 + +gUnk_080D1F16:: @ 080D1F16 + .incbin "baserom.gba", 0x0D1F16, 0x0000004 + +gUnk_080D1F1A:: @ 080D1F1A + .incbin "baserom.gba", 0x0D1F1A, 0x0000006 + +gUnk_080D1F20:: @ 080D1F20 + .incbin "baserom.gba", 0x0D1F20, 0x0000014 + +gUnk_080D1F34:: @ 080D1F34 + .incbin "baserom.gba", 0x0D1F34, 0x0000030 + +gUnk_080D1F64:: @ 080D1F64 + .incbin "baserom.gba", 0x0D1F64, 0x0000018 + +gUnk_080D1F7C:: @ 080D1F7C + .incbin "baserom.gba", 0x0D1F7C, 0x0000014 + +gUnk_080D1F90:: @ 080D1F90 + .incbin "baserom.gba", 0x0D1F90, 0x0000080 + +gUnk_080D2010:: @ 080D2010 + .incbin "baserom.gba", 0x0D2010, 0x0000020 + +gUnk_080D2030:: @ 080D2030 + .incbin "baserom.gba", 0x0D2030, 0x0000020 + +gUnk_080D2050:: @ 080D2050 + .incbin "baserom.gba", 0x0D2050, 0x0000014 + +gUnk_080D2064:: @ 080D2064 + .incbin "baserom.gba", 0x0D2064, 0x0000014 + +gUnk_080D2078:: @ 080D2078 + .incbin "baserom.gba", 0x0D2078, 0x0000014 + +gUnk_080D208C:: @ 080D208C + .incbin "baserom.gba", 0x0D208C, 0x0000014 + +gUnk_080D20A0:: @ 080D20A0 + .incbin "baserom.gba", 0x0D20A0, 0x0000014 + +gUnk_080D20B4:: @ 080D20B4 + .incbin "baserom.gba", 0x0D20B4, 0x0000014 + +gUnk_080D20C8:: @ 080D20C8 + .incbin "baserom.gba", 0x0D20C8, 0x0000014 + +gUnk_080D20DC:: @ 080D20DC + .incbin "baserom.gba", 0x0D20DC, 0x0000014 + +gUnk_080D20F0:: @ 080D20F0 + .incbin "baserom.gba", 0x0D20F0, 0x0000014 + +gUnk_080D2104:: @ 080D2104 + .incbin "baserom.gba", 0x0D2104, 0x0000014 + +gUnk_080D2118:: @ 080D2118 + .incbin "baserom.gba", 0x0D2118, 0x0000014 + +gUnk_080D212C:: @ 080D212C + .incbin "baserom.gba", 0x0D212C, 0x0000014 + +gUnk_080D2140:: @ 080D2140 + .incbin "baserom.gba", 0x0D2140, 0x0000014 + +gUnk_080D2154:: @ 080D2154 + .incbin "baserom.gba", 0x0D2154, 0x0000014 + +gUnk_080D2168:: @ 080D2168 + .incbin "baserom.gba", 0x0D2168, 0x0000014 + +gUnk_080D217C:: @ 080D217C + .incbin "baserom.gba", 0x0D217C, 0x0000014 + +gUnk_080D2190:: @ 080D2190 + .incbin "baserom.gba", 0x0D2190, 0x0000029 + +gUnk_080D21B9:: @ 080D21B9 + .incbin "baserom.gba", 0x0D21B9, 0x0000029 + +gUnk_080D21E2:: @ 080D21E2 + .incbin "baserom.gba", 0x0D21E2, 0x0000029 + +gUnk_080D220B:: @ 080D220B + .incbin "baserom.gba", 0x0D220B, 0x0000029 + +gUnk_080D2234:: @ 080D2234 + .incbin "baserom.gba", 0x0D2234, 0x0000010 + +gUnk_080D2244:: @ 080D2244 + .incbin "baserom.gba", 0x0D2244, 0x0000010 + +gUnk_080D2254:: @ 080D2254 + .incbin "baserom.gba", 0x0D2254, 0x0000010 + +gUnk_080D2264:: @ 080D2264 + .incbin "baserom.gba", 0x0D2264, 0x0000010 + +gUnk_080D2274:: @ 080D2274 + .incbin "baserom.gba", 0x0D2274, 0x0000064 + +gUnk_080D22D8:: @ 080D22D8 + .incbin "baserom.gba", 0x0D22D8, 0x0000018 + +gUnk_080D22F0:: @ 080D22F0 + .incbin "baserom.gba", 0x0D22F0, 0x0000010 + +gUnk_080D2300:: @ 080D2300 + .incbin "baserom.gba", 0x0D2300, 0x0000048 + +gUnk_080D2348:: @ 080D2348 + .incbin "baserom.gba", 0x0D2348, 0x0000020 + +gUnk_080D2368:: @ 080D2368 + .incbin "baserom.gba", 0x0D2368, 0x0000011 + +gUnk_080D2379:: @ 080D2379 + .incbin "baserom.gba", 0x0D2379, 0x0000011 + +gUnk_080D238A:: @ 080D238A + .incbin "baserom.gba", 0x0D238A, 0x0000011 + +gUnk_080D239B:: @ 080D239B + .incbin "baserom.gba", 0x0D239B, 0x0000011 + +gUnk_080D23AC:: @ 080D23AC + .incbin "baserom.gba", 0x0D23AC, 0x0000011 + +gUnk_080D23BD:: @ 080D23BD + .incbin "baserom.gba", 0x0D23BD, 0x0000011 + +gUnk_080D23CE:: @ 080D23CE + .incbin "baserom.gba", 0x0D23CE, 0x0000011 + +gUnk_080D23DF:: @ 080D23DF + .incbin "baserom.gba", 0x0D23DF, 0x0000011 + +gUnk_080D23F0:: @ 080D23F0 + .incbin "baserom.gba", 0x0D23F0, 0x0000011 + +gUnk_080D2401:: @ 080D2401 + .incbin "baserom.gba", 0x0D2401, 0x0000011 + +gUnk_080D2412:: @ 080D2412 + .incbin "baserom.gba", 0x0D2412, 0x0000011 + +gUnk_080D2423:: @ 080D2423 + .incbin "baserom.gba", 0x0D2423, 0x0000011 + +gUnk_080D2434:: @ 080D2434 + .incbin "baserom.gba", 0x0D2434, 0x0000011 + +gUnk_080D2445:: @ 080D2445 + .incbin "baserom.gba", 0x0D2445, 0x0000011 + +gUnk_080D2456:: @ 080D2456 + .incbin "baserom.gba", 0x0D2456, 0x0000011 + +gUnk_080D2467:: @ 080D2467 + .incbin "baserom.gba", 0x0D2467, 0x0000011 + +gUnk_080D2478:: @ 080D2478 + .incbin "baserom.gba", 0x0D2478, 0x0000011 + +gUnk_080D2489:: @ 080D2489 + .incbin "baserom.gba", 0x0D2489, 0x0000011 + +gUnk_080D249A:: @ 080D249A + .incbin "baserom.gba", 0x0D249A, 0x0000011 + +gUnk_080D24AB:: @ 080D24AB + .incbin "baserom.gba", 0x0D24AB, 0x0000011 + +gUnk_080D24BC:: @ 080D24BC + .incbin "baserom.gba", 0x0D24BC, 0x0000011 + +gUnk_080D24CD:: @ 080D24CD + .incbin "baserom.gba", 0x0D24CD, 0x0000011 + +gUnk_080D24DE:: @ 080D24DE + .incbin "baserom.gba", 0x0D24DE, 0x0000011 + +gUnk_080D24EF:: @ 080D24EF + .incbin "baserom.gba", 0x0D24EF, 0x0000011 + +gUnk_080D2500:: @ 080D2500 + .incbin "baserom.gba", 0x0D2500, 0x0000011 + +gUnk_080D2511:: @ 080D2511 + .incbin "baserom.gba", 0x0D2511, 0x0000011 + +gUnk_080D2522:: @ 080D2522 + .incbin "baserom.gba", 0x0D2522, 0x0000011 + +gUnk_080D2533:: @ 080D2533 + .incbin "baserom.gba", 0x0D2533, 0x0000011 + +gUnk_080D2544:: @ 080D2544 + .incbin "baserom.gba", 0x0D2544, 0x0000011 + +gUnk_080D2555:: @ 080D2555 + .incbin "baserom.gba", 0x0D2555, 0x0000011 + +gUnk_080D2566:: @ 080D2566 + .incbin "baserom.gba", 0x0D2566, 0x0000011 + +gUnk_080D2577:: @ 080D2577 + .incbin "baserom.gba", 0x0D2577, 0x0000011 + +gUnk_080D2588:: @ 080D2588 + .incbin "baserom.gba", 0x0D2588, 0x0000011 + +gUnk_080D2599:: @ 080D2599 + .incbin "baserom.gba", 0x0D2599, 0x0000011 + +gUnk_080D25AA:: @ 080D25AA + .incbin "baserom.gba", 0x0D25AA, 0x0000011 + +gUnk_080D25BB:: @ 080D25BB + .incbin "baserom.gba", 0x0D25BB, 0x0000011 + +gUnk_080D25CC:: @ 080D25CC + .incbin "baserom.gba", 0x0D25CC, 0x0000011 + +gUnk_080D25DD:: @ 080D25DD + .incbin "baserom.gba", 0x0D25DD, 0x0000011 + +gUnk_080D25EE:: @ 080D25EE + .incbin "baserom.gba", 0x0D25EE, 0x0000011 + +gUnk_080D25FF:: @ 080D25FF + .incbin "baserom.gba", 0x0D25FF, 0x0000011 + +gUnk_080D2610:: @ 080D2610 + .incbin "baserom.gba", 0x0D2610, 0x0000011 + +gUnk_080D2621:: @ 080D2621 + .incbin "baserom.gba", 0x0D2621, 0x0000011 + +gUnk_080D2632:: @ 080D2632 + .incbin "baserom.gba", 0x0D2632, 0x0000011 + +gUnk_080D2643:: @ 080D2643 + .incbin "baserom.gba", 0x0D2643, 0x0000011 + +gUnk_080D2654:: @ 080D2654 + .incbin "baserom.gba", 0x0D2654, 0x0000011 + +gUnk_080D2665:: @ 080D2665 + .incbin "baserom.gba", 0x0D2665, 0x0000011 + +gUnk_080D2676:: @ 080D2676 + .incbin "baserom.gba", 0x0D2676, 0x0000011 + +gUnk_080D2687:: @ 080D2687 + .incbin "baserom.gba", 0x0D2687, 0x0000011 + +gUnk_080D2698:: @ 080D2698 + .incbin "baserom.gba", 0x0D2698, 0x0000011 + +gUnk_080D26A9:: @ 080D26A9 + .incbin "baserom.gba", 0x0D26A9, 0x0000011 + +gUnk_080D26BA:: @ 080D26BA + .incbin "baserom.gba", 0x0D26BA, 0x0000011 + +gUnk_080D26CB:: @ 080D26CB + .incbin "baserom.gba", 0x0D26CB, 0x0000011 + +gUnk_080D26DC:: @ 080D26DC + .incbin "baserom.gba", 0x0D26DC, 0x0000011 + +gUnk_080D26ED:: @ 080D26ED + .incbin "baserom.gba", 0x0D26ED, 0x0000011 + +gUnk_080D26FE:: @ 080D26FE + .incbin "baserom.gba", 0x0D26FE, 0x0000011 + +gUnk_080D270F:: @ 080D270F + .incbin "baserom.gba", 0x0D270F, 0x0000011 + +gUnk_080D2720:: @ 080D2720 + .incbin "baserom.gba", 0x0D2720, 0x0000011 + +gUnk_080D2731:: @ 080D2731 + .incbin "baserom.gba", 0x0D2731, 0x0000011 + +gUnk_080D2742:: @ 080D2742 + .incbin "baserom.gba", 0x0D2742, 0x0000011 + +gUnk_080D2753:: @ 080D2753 + .incbin "baserom.gba", 0x0D2753, 0x0000011 + +gUnk_080D2764:: @ 080D2764 + .incbin "baserom.gba", 0x0D2764, 0x0000011 + +gUnk_080D2775:: @ 080D2775 + .incbin "baserom.gba", 0x0D2775, 0x0000011 + +gUnk_080D2786:: @ 080D2786 + .incbin "baserom.gba", 0x0D2786, 0x0000011 + +gUnk_080D2797:: @ 080D2797 + .incbin "baserom.gba", 0x0D2797, 0x0000011 + +gUnk_080D27A8:: @ 080D27A8 + .incbin "baserom.gba", 0x0D27A8, 0x0000104 + +gUnk_080D28AC:: @ 080D28AC + .incbin "baserom.gba", 0x0D28AC, 0x0000020 + +gUnk_080D28CC:: @ 080D28CC + .incbin "baserom.gba", 0x0D28CC, 0x0000010 + +gUnk_080D28DC:: @ 080D28DC + .incbin "baserom.gba", 0x0D28DC, 0x0000008 + +gUnk_080D28E4:: @ 080D28E4 + .incbin "baserom.gba", 0x0D28E4, 0x0000008 + +gUnk_080D28EC:: @ 080D28EC + .incbin "baserom.gba", 0x0D28EC, 0x0000008 + +gUnk_080D28F4:: @ 080D28F4 + .incbin "baserom.gba", 0x0D28F4, 0x0000008 + +gUnk_080D28FC:: @ 080D28FC + .incbin "baserom.gba", 0x0D28FC, 0x0000008 + +gUnk_080D2904:: @ 080D2904 + .incbin "baserom.gba", 0x0D2904, 0x0000008 + +gUnk_080D290C:: @ 080D290C + .incbin "baserom.gba", 0x0D290C, 0x0000008 + +gUnk_080D2914:: @ 080D2914 + .incbin "baserom.gba", 0x0D2914, 0x0000008 + +gUnk_080D291C:: @ 080D291C + .incbin "baserom.gba", 0x0D291C, 0x0000011 + +gUnk_080D292D:: @ 080D292D + .incbin "baserom.gba", 0x0D292D, 0x0000011 + +gUnk_080D293E:: @ 080D293E + .incbin "baserom.gba", 0x0D293E, 0x000000C + +gUnk_080D294A:: @ 080D294A + .incbin "baserom.gba", 0x0D294A, 0x0000005 + +gUnk_080D294F:: @ 080D294F + .incbin "baserom.gba", 0x0D294F, 0x0000011 + +gUnk_080D2960:: @ 080D2960 + .incbin "baserom.gba", 0x0D2960, 0x0000014 + +gUnk_080D2974:: @ 080D2974 + .incbin "baserom.gba", 0x0D2974, 0x0000014 + +gUnk_080D2988:: @ 080D2988 + .incbin "baserom.gba", 0x0D2988, 0x0000008 + +gUnk_080D2990:: @ 080D2990 + .incbin "baserom.gba", 0x0D2990, 0x0000018 + +gUnk_080D29A8:: @ 080D29A8 + .incbin "baserom.gba", 0x0D29A8, 0x0000010 + +gUnk_080D29B8:: @ 080D29B8 + .incbin "baserom.gba", 0x0D29B8, 0x0000008 + +gUnk_080D29C0:: @ 080D29C0 + .incbin "baserom.gba", 0x0D29C0, 0x0000020 + +gUnk_080D29E0:: @ 080D29E0 + .byte 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + +gUnk_080D2AB0:: @ 080D2AB0 + .byte 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x00, 0x00, 0x00, 0x00 + +gUnk_080D2ABC:: @ 080D2ABC + .incbin "baserom.gba", 0x0D2ABC, 0x000019C + +gUnk_080D2C58:: @ 080D2C58 + .incbin "baserom.gba", 0x0D2C58, 0x00001CE + +gUnk_080D2E26:: @ 080D2E26 + .incbin "baserom.gba", 0x0D2E26, 0x0000492 + +gUnk_080D32B8:: @ 080D32B8 + .incbin "baserom.gba", 0x0D32B8, 0x0000030 + +gUnk_080D32E8:: @ 080D32E8 + .incbin "baserom.gba", 0x0D32E8, 0x0000020 + +gUnk_080D3308:: @ 080D3308 + .incbin "baserom.gba", 0x0D3308, 0x0000080 + +gUnk_080D3388:: @ 080D3388 + .incbin "baserom.gba", 0x0D3388, 0x0000040 + +gUnk_080D33C8:: @ 080D33C8 + .incbin "baserom.gba", 0x0D33C8, 0x0000090 + +gUnk_080D3458:: @ 080D3458 + .incbin "baserom.gba", 0x0D3458, 0x0000030 + +gUnk_080D3488:: @ 080D3488 + .incbin "baserom.gba", 0x0D3488, 0x0000030 + +gUnk_080D34B8:: @ 080D34B8 + .incbin "baserom.gba", 0x0D34B8, 0x0000020 + +gUnk_080D34D8:: @ 080D34D8 + .incbin "baserom.gba", 0x0D34D8, 0x0000030 + +gUnk_080D3508:: @ 080D3508 + .incbin "baserom.gba", 0x0D3508, 0x0000090 + +gUnk_080D3598:: @ 080D3598 + .incbin "baserom.gba", 0x0D3598, 0x0000040 + +gUnk_080D35D8:: @ 080D35D8 + .incbin "baserom.gba", 0x0D35D8, 0x0000070 + +gUnk_080D3648:: @ 080D3648 + .incbin "baserom.gba", 0x0D3648, 0x0000080 + +gUnk_080D36C8:: @ 080D36C8 + .incbin "baserom.gba", 0x0D36C8, 0x0000020 + +gUnk_080D36E8:: @ 080D36E8 + .incbin "baserom.gba", 0x0D36E8, 0x0000030 + +gUnk_080D3718:: @ 080D3718 + .incbin "baserom.gba", 0x0D3718, 0x0000030 + +gUnk_080D3748:: @ 080D3748 + .incbin "baserom.gba", 0x0D3748, 0x0000020 + +gUnk_080D3768:: @ 080D3768 + .incbin "baserom.gba", 0x0D3768, 0x0000020 + +gUnk_080D3788:: @ 080D3788 + .incbin "baserom.gba", 0x0D3788, 0x0000050 + +gUnk_080D37D8:: @ 080D37D8 + .incbin "baserom.gba", 0x0D37D8, 0x0000020 + +gUnk_080D37F8:: @ 080D37F8 + .incbin "baserom.gba", 0x0D37F8, 0x0000030 + +gUnk_080D3828:: @ 080D3828 + .incbin "baserom.gba", 0x0D3828, 0x0000080 + +gUnk_080D38A8:: @ 080D38A8 + .incbin "baserom.gba", 0x0D38A8, 0x0000030 + +gUnk_080D38D8:: @ 080D38D8 + .incbin "baserom.gba", 0x0D38D8, 0x0000040 + +gUnk_080D3918:: @ 080D3918 + .incbin "baserom.gba", 0x0D3918, 0x0000020 + +gUnk_080D3938:: @ 080D3938 + .incbin "baserom.gba", 0x0D3938, 0x0000017 + +gUnk_080D394F:: @ 080D394F + .incbin "baserom.gba", 0x0D394F, 0x0000029 + +gUnk_080D3978:: @ 080D3978 + .incbin "baserom.gba", 0x0D3978, 0x0000060 + +gUnk_080D39D8:: @ 080D39D8 + .incbin "baserom.gba", 0x0D39D8, 0x0000040 + +gUnk_080D3A18:: @ 080D3A18 + .incbin "baserom.gba", 0x0D3A18, 0x0000050 + +gUnk_080D3A68:: @ 080D3A68 + .incbin "baserom.gba", 0x0D3A68, 0x0000030 + +gUnk_080D3A98:: @ 080D3A98 + .incbin "baserom.gba", 0x0D3A98, 0x0000030 + +gUnk_080D3AC8:: @ 080D3AC8 + .incbin "baserom.gba", 0x0D3AC8, 0x0000020 + +gUnk_080D3AE8:: @ 080D3AE8 + .incbin "baserom.gba", 0x0D3AE8, 0x0000040 + +gUnk_080D3B28:: @ 080D3B28 + .incbin "baserom.gba", 0x0D3B28, 0x0000020 + +gUnk_080D3B48:: @ 080D3B48 + .incbin "baserom.gba", 0x0D3B48, 0x0000040 + +gUnk_080D3B88:: @ 080D3B88 + .incbin "baserom.gba", 0x0D3B88, 0x0000020 + +gUnk_080D3BA8:: @ 080D3BA8 + .incbin "baserom.gba", 0x0D3BA8, 0x0000020 + +gUnk_080D3BC8:: @ 080D3BC8 + .incbin "baserom.gba", 0x0D3BC8, 0x0000020 + +gUnk_080D3BE8:: @ 080D3BE8 + .incbin "baserom.gba", 0x0D3BE8, 0x0000010 diff --git a/linker.ld b/linker.ld index df9b5aad..209d2dad 100644 --- a/linker.ld +++ b/linker.ld @@ -980,6 +980,8 @@ SECTIONS { data/data_080D015C.o(.rodata); src/enemy/lakituCloud.o(.rodata); data/data_080D0448.o(.rodata); + src/enemy/gyorgMale.o(.rodata); + data/data_080D1C70.o(.rodata); src/enemy.o(.rodata); data/data_080D3D94.o(.rodata); data/entity_headers.o(.rodata); diff --git a/src/enemy/gyorgMale.c b/src/enemy/gyorgMale.c index 238b6b34..96b79038 100644 --- a/src/enemy/gyorgMale.c +++ b/src/enemy/gyorgMale.c @@ -6,75 +6,76 @@ #include "structures.h" #include "functions.h" -extern void (* const gUnk_080D1AFC[8])(Entity*); -extern void (* const gUnk_080D1B1C[7])(Entity*); -extern void (* const gUnk_080D1B38[5])(Entity*); -extern void (* const gUnk_080D1B4C[5])(Entity*); -extern const u16 gUnk_080D1B60[8]; -extern const u8 gUnk_080D1B70[4];//or 3? -extern const u16 gUnk_080D1B74[0x10]; -extern void (* const gUnk_080D1B94[0xA])(Entity*); -extern const u16 gUnk_080D1BBC[2]; -extern void (* const gUnk_080D1BC0[7])(Entity*); -extern void (* const gUnk_080D1BDC[5])(Entity*); -extern const u16 gUnk_080D1BF0[2]; -extern void (* const gUnk_080D1BF4[3])(Entity*); -extern const u8 gUnk_080D1C00[4]; -extern const u16 gUnk_080D1C04[0x20]; -extern const u8 gUnk_080D1C44[0xC]; -extern const u16 gUnk_080D1C50[8]; -extern const u16 gUnk_080D1C60[8]; +void (* const gUnk_080D1AFC[8])(Entity*); +void (* const gUnk_080D1B1C[7])(Entity*); +void (* const gUnk_080D1B38[5])(Entity*); +void (* const gUnk_080D1B4C[5])(Entity*); +const u16 gUnk_080D1B60[8]; +const s16 gUnk_080D1B70[2];//or 3? +const u16 gUnk_080D1B74[0x10]; +void (* const gUnk_080D1B94[0xA])(Entity*); +const u16 gUnk_080D1BBC[2]; +void (* const gUnk_080D1BC0[7])(Entity*); +void (* const gUnk_080D1BDC[5])(Entity*); +const s16 gUnk_080D1BF0[2]; +void (* const gUnk_080D1BF4[3])(Entity*); +const s8 gUnk_080D1C00[4]; +const u16 gUnk_080D1C04[0x20]; +const u8 gUnk_080D1C44[0xC]; +const u16 gUnk_080D1C50[8]; +const u16 gUnk_080D1C60[8]; -void sub_08046898(Entity*); -void sub_08046910(Entity*); -void sub_08046930(Entity*); -void sub_0804696C(Entity*); -void sub_080469CC(Entity*); -void sub_080469F4(Entity*); -void sub_08046A30(Entity*); -void sub_08046A54(Entity*); -void sub_08046A78(Entity*); -void sub_08046A9C(Entity*); -void sub_08046AE8(Entity*); -void sub_08046B18(Entity*); -void sub_08046B8C(Entity*); -void sub_08046C04(Entity*); -void sub_08046C88(Entity*); -void sub_08046CEC(Entity*); -void sub_08046D44(Entity*); -void sub_08046D98(Entity*); -void sub_08046E0C(Entity*); -void sub_08046E68(Entity*); -void sub_08046EF4(Entity*); -void sub_08046F64(Entity*); -void sub_08046FE8(Entity*); -void sub_0804702C(Entity*); -void sub_080470B4(Entity*); -void sub_08047140(Entity*); -void sub_0804717C(Entity*); -void sub_080471C8(Entity*); -void sub_0804723C(Entity*); -void sub_08047284(Entity*); -void sub_080472BC(Entity*); -void sub_08047310(Entity*); -void sub_0804736C(Entity*); -void sub_080473B8(Entity*); -void sub_080473F0(Entity*); -void sub_08047484(Entity*); -void sub_08047508(Entity*); -void sub_080475F4(Entity*); -void sub_0804763C(Entity*); -void sub_0804772C(Entity*); -void sub_08047778(Entity*); -void sub_08047798(Entity*); -void sub_080477F0(Entity*); -void sub_08047914(Entity*); -void sub_08047978(Entity*); -void sub_08047B08(Entity*); -void sub_08047B84(Entity*); -void sub_08047BA4(Entity*); -void sub_08047BF0(Entity*);// -void sub_08047D24(Entity*); +void GyorgMale(Entity*); +void sub_08046898(Entity*);//action 0 +void sub_08046910(Entity*);//action 1 +void sub_08046930(Entity*);//action 1 previousActionFlag 0 +void sub_0804696C(Entity*);//action 1 previousActionFlag 1 +void sub_080469CC(Entity*);//action 1 previousActionFlag 2 +void sub_080469F4(Entity*);//action 1 previousActionFlag 3 +void sub_08046A30(Entity*);//action 1 previousActionFlag 4 +void sub_08046A54(Entity*);//action 1 previousActionFlag 5 +void sub_08046A78(Entity*);//action 1 previousActionFlag 6 +void sub_08046A9C(Entity*);//action 2 +void sub_08046AE8(Entity*);//action 2 previousActionFlag 0 +void sub_08046B18(Entity*);//action 2 previousActionFlag 1 +void sub_08046B8C(Entity*);//action 2 previousActionFlag 2 +void sub_08046C04(Entity*);//action 2 previousActionFlag 3 +void sub_08046C88(Entity*);//action 2 previousActionFlag 4 +void sub_08046CEC(Entity*);//action 3 +void sub_08046D44(Entity*);//action 3 previousActionFlag 0 +void sub_08046D98(Entity*);//action 3 previousActionFlag 1 +void sub_08046E0C(Entity*);//action 3 previousActionFlag 2 +void sub_08046E68(Entity*);//action 3 previousActionFlag 3 +void sub_08046EF4(Entity*);//action 3 previousActionFlag 4 +void sub_08046F64(Entity*);//action 4 +void sub_08046FE8(Entity*);//action 4 previousActionFlag 0 +void sub_0804702C(Entity*);//action 4 previousActionFlag 1 +void sub_080470B4(Entity*);//action 4 previousActionFlag 2 +void sub_08047140(Entity*);//action 4 previousActionFlag 3 +void sub_0804717C(Entity*);//action 4 previousActionFlag 4 +void sub_080471C8(Entity*);//action 4 previousActionFlag 5 +void sub_0804723C(Entity*);//action 4 previousActionFlag 6 +void sub_08047284(Entity*);//action 4 previousActionFlag 7 +void sub_080472BC(Entity*);//action 4 previousActionFlag 8 +void sub_08047310(Entity*);//action 4 previousActionFlag 9 +void sub_0804736C(Entity*);//action 5 +void sub_080473B8(Entity*);//action 5 previousActionFlag 0 +void sub_080473F0(Entity*);//action 5 previousActionFlag 1 +void sub_08047484(Entity*);//action 5 previousActionFlag 2 +void sub_08047508(Entity*);//action 5 previousActionFlag 3 +void sub_080475F4(Entity*);//action 5 previousActionFlag 4 +void sub_0804763C(Entity*);//action 5 previousActionFlag 5 +void sub_0804772C(Entity*);//action 5 previousActionFlag 6 +void sub_08047778(Entity*);//action 6 +void sub_08047798(Entity*);//action 6 previousActionFlag 0 +void sub_080477F0(Entity*);//action 6 previousActionFlag 1 +void sub_08047914(Entity*);//action 6 previousActionFlag 2 +void sub_08047978(Entity*);//action 6 previousActionFlag 3 +void sub_08047B08(Entity*);//action 6 previousActionFlag 4 +void sub_08047B84(Entity*);//action 7 +void sub_08047BA4(Entity*);//action 7 previousActionFlag 0 +void sub_08047BF0(Entity*);//action 7 previousActionFlag 1, also called elsewhere +void sub_08047D24(Entity*);//action 7 previousActionFlag 2 void sub_08047D88(Entity*);// void sub_08047DF0(Entity*, u32); void sub_08047E48(Entity*);// @@ -86,6 +87,17 @@ void sub_0804813C(Entity*);// u32 sub_08048158(u32); void sub_08048178(Entity*, u32); +void (* const gUnk_080D1AFC[8])(Entity*) = { + sub_08046898, + sub_08046910, + sub_08046A9C, + sub_08046CEC, + sub_08046F64, + sub_0804736C, + sub_08047778, + sub_08047B84 +}; + void GyorgMale(Entity* this) { if (this->action) { this->spriteSettings.b.draw = this->field_0x7c.BYTES.byte1; @@ -126,6 +138,16 @@ void sub_08046898(Entity* this) { InitAnimationForceUpdate(this, 0); } +void (* const gUnk_080D1B1C[7])(Entity*) = { + sub_08046930, + sub_0804696C, + sub_080469CC, + sub_080469F4, + sub_08046A30, + sub_08046A54, + sub_08046A78 +}; + void sub_08046910(Entity* this) { gUnk_080D1B1C[this->previousActionFlag](this); UpdateAnimationSingleFrame(this); @@ -204,6 +226,14 @@ void sub_08046A78(Entity* this) { } } +void (* const gUnk_080D1B38[5])(Entity*) = { + sub_08046AE8, + sub_08046B18, + sub_08046B8C, + sub_08046C04, + sub_08046C88 +}; + void sub_08046A9C(Entity* this) { if (this->animIndex == 1) { if (this->frames.all == 1) { @@ -283,6 +313,14 @@ void sub_08046C88(Entity* this) { } } +void (* const gUnk_080D1B4C[5])(Entity*) = { + sub_08046D44, + sub_08046D98, + sub_08046E0C, + sub_08046E68, + sub_08046EF4 +}; + void sub_08046CEC(Entity* this) { if (this->animIndex == 0) { if (this->frames.all == 1) { @@ -298,6 +336,17 @@ void sub_08046CEC(Entity* this) { } } +const u16 gUnk_080D1B60[8] = { + 0x200, + 0x184, + 0x28C, + 0x210, + 0x200, + 0x29C, + 0x174, + 0x210 +}; + void sub_08046D44(Entity* this) { const u16 * tmp; this->previousActionFlag = 1; @@ -336,6 +385,11 @@ void sub_08046E0C(Entity* this) { } } +const s16 gUnk_080D1B70[2] = { + 0x40, + -0x40 +}; + void sub_08046E68(Entity* this) { u32 tmp = ((Entity*) this->otherEntity)->next->animationState ^ 0x80; if (tmp != this->direction) { @@ -351,11 +405,30 @@ void sub_08046E68(Entity* this) { this->previousActionFlag = 4; this->actionDelay = 0x3F; this->field_0xf = 1; - this->direction = (gUnk_080D1B70[(Random() & 1) << 1] + tmp) & 0xC0; + this->direction = (gUnk_080D1B70[Random() & 1] + tmp) & 0xC0; sub_08047D88(this); } } +const u16 gUnk_080D1B74[0x10] = { + 0x20, + 0x40, + 0x60, + 0x80, + 0xA0, + 0xC0, + 0xE0, + 0x100, + 0x100, + 0xE0, + 0xC0, + 0xA0, + 0x80, + 0x60, + 0x40, + 0x20 +}; + void sub_08046EF4(Entity* this) { if (--this->actionDelay == 0) { this->actionDelay = 0x7F; @@ -375,6 +448,19 @@ void sub_08046EF4(Entity* this) { sub_08047E48(this); } +void (* const gUnk_080D1B94[0xA])(Entity*) = { + sub_08046FE8, + sub_0804702C, + sub_080470B4, + sub_08047140, + sub_0804717C, + sub_080471C8, + sub_0804723C, + sub_08047284, + sub_080472BC, + sub_08047310 +}; + void sub_08046F64(Entity* this) { if (this->animIndex == 0) { if (this->frames.all == 1) { @@ -425,6 +511,11 @@ void sub_0804702C(Entity* this) { } } +const u16 gUnk_080D1BBC[2] = { + 0x1A0, + 0xE0 +}; + void sub_080470B4(Entity* this) { u32 tmp = 0x40; if (tmp != this->direction) { @@ -530,6 +621,16 @@ void sub_08047310(Entity* this) { sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); } +void (* const gUnk_080D1BC0[7])(Entity*) = { + sub_080473B8, + sub_080473F0, + sub_08047484, + sub_08047508, + sub_080475F4, + sub_0804763C, + sub_0804772C +}; + void sub_0804736C(Entity* this) { if (this->animIndex == 1) { if (this->frames.all == 1) { @@ -710,6 +811,14 @@ void sub_0804772C(Entity* this) { sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); } +void (* const gUnk_080D1BDC[5])(Entity*) = { + sub_08047798, + sub_080477F0, + sub_08047914, + sub_08047978, + sub_08047B08 +}; + void sub_08047778(Entity* this) { gUnk_080D1BDC[this->previousActionFlag](this); UpdateAnimationSingleFrame(this); @@ -728,6 +837,11 @@ void sub_08047798(Entity* this) { sub_08047D88(this); } +const s16 gUnk_080D1BF0[2] = { + 0x80, + -0x80 +}; + void sub_080477F0(Entity* this) { if (this->nonPlanarMovement < 0x300) { this->nonPlanarMovement += 8; @@ -852,6 +966,12 @@ void sub_08047B08(Entity* this) { } } +void (* const gUnk_080D1BF4[3])(Entity*) = { + sub_08047BA4, + sub_08047BF0, + sub_08047D24 +}; + void sub_08047B84(Entity* this) { gUnk_080D1BF4[this->previousActionFlag](this); UpdateAnimationSingleFrame(this); @@ -870,6 +990,13 @@ void sub_08047BA4(Entity* this) { sub_08047BF0(this); } +const s8 gUnk_080D1C00[4] = { + 0x40, + -0x40, + -0x40, + 0x40 +}; + void sub_08047BF0(Entity* this) { Entity* tmp; this->direction = gUnk_080D1C00[this->actionDelay & 3]; @@ -1004,6 +1131,17 @@ void sub_08047EA4(Entity* this, u32 unk1) { this->field_0x7a.HWORD = this->field_0x78.HWORD; } +const u16 gUnk_080D1C04[0x20] = { + 0, 1, 4, 9, + 16, 25, 36, 49, + 64, 81, 100, 121, + 144, 169, 196, 225, + 256, 289, 324, 361, + 400, 441, 484, 529, + 576, 625, 676, 729, + 784, 841, 900, 961 +}; + u32 sub_08047F68(Entity* this) { s32 diffX, diffY; s32 distSquared, approx; @@ -1087,10 +1225,39 @@ void sub_0804813C(Entity* this) { sub_080A1ED0(rand & 7, 1, (rand >> 8) & 3); } + +const u8 gUnk_080D1C44[0xC] = { + 0, 2, 6, 0, + 2, 4, 2, 4, + 6, 0, 4, 6 +}; + u32 sub_08048158(u32 unk1) { return gUnk_080D1C44[(unk1 * 3) + ((signed)Random() % 3)]; } +const u16 gUnk_080D1C50[8] = { + 0x200, + 0x180, + 0x2C0, + 0x210, + 0x200, + 0x2A0, + 0x140, + 0x210 +}; + +const u16 gUnk_080D1C60[8] = { + 0x200, + 0x150, + 0x290, + 0x210, + 0x200, + 0x2D0, + 0x170, + 0x210 +}; + void sub_08048178(Entity* this, u32 unk1) { const u16* tmp = ((((Entity*) this->otherEntity)->next->animationState >> 6 & 1) ? gUnk_080D1C60 + unk1: gUnk_080D1C50 + unk1); this->field_0x80.HWORD = *tmp + gRoomControls.roomOriginX;