diff options
-rw-r--r-- | arm9/asm/unk_0205EC84.s | 906 | ||||
-rw-r--r-- | arm9/src/unk_0205EC84.c | 436 | ||||
-rw-r--r-- | include/unk_0205EC84.h | 58 |
3 files changed, 494 insertions, 906 deletions
diff --git a/arm9/asm/unk_0205EC84.s b/arm9/asm/unk_0205EC84.s deleted file mode 100644 index d247c1f8..00000000 --- a/arm9/asm/unk_0205EC84.s +++ /dev/null @@ -1,906 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_0205EC84 -FUN_0205EC84: ; 0x0205EC84 - ldr r3, _0205EC88 ; =SetFlagInArray - bx r3 - .balign 4 -_0205EC88: .word SetFlagInArray - - thumb_func_start FUN_0205EC8C -FUN_0205EC8C: ; 0x0205EC8C - ldr r3, _0205EC90 ; =ClearFlagInArray - bx r3 - .balign 4 -_0205EC90: .word ClearFlagInArray - - thumb_func_start FUN_0205EC94 -FUN_0205EC94: ; 0x0205EC94 - ldr r3, _0205EC98 ; =CheckFlagInArray - bx r3 - .balign 4 -_0205EC98: .word CheckFlagInArray - - thumb_func_start FUN_0205EC9C -FUN_0205EC9C: ; 0x0205EC9C - push {r3, lr} - cmp r1, #0x0 - beq _0205ECB6 - cmp r1, #0x1 - beq _0205ECAC - cmp r1, #0x2 - beq _0205ECC0 - b _0205ECCA -_0205ECAC: - lsl r1, r2, #0x10 - lsr r1, r1, #0x10 - bl FUN_0205EC84 - b _0205ECCE -_0205ECB6: - lsl r1, r2, #0x10 - lsr r1, r1, #0x10 - bl FUN_0205EC8C - b _0205ECCE -_0205ECC0: - lsl r1, r2, #0x10 - lsr r1, r1, #0x10 - bl FUN_0205EC94 - pop {r3, pc} -_0205ECCA: - bl GF_AssertFail -_0205ECCE: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0205ECD4 -FUN_0205ECD4: ; 0x0205ECD4 - ldr r3, _0205ECDC ; =FUN_0205EC84 - mov r1, #0x96 - lsl r1, r1, #0x4 - bx r3 - .balign 4 -_0205ECDC: .word FUN_0205EC84 - - thumb_func_start FUN_0205ECE0 -FUN_0205ECE0: ; 0x0205ECE0 - ldr r3, _0205ECE8 ; =FUN_0205EC94 - mov r1, #0x96 - lsl r1, r1, #0x4 - bx r3 - .balign 4 -_0205ECE8: .word FUN_0205EC94 - - thumb_func_start FUN_0205ECEC -FUN_0205ECEC: ; 0x0205ECEC - ldr r3, _0205ECF4 ; =FUN_0205EC94 - ldr r1, _0205ECF8 ; =0x0000098D - bx r3 - nop -_0205ECF4: .word FUN_0205EC94 -_0205ECF8: .word 0x0000098D - - thumb_func_start FUN_0205ECFC -FUN_0205ECFC: ; 0x0205ECFC - ldr r3, _0205ED04 ; =FUN_0205EC84 - ldr r1, _0205ED08 ; =0x00000964 - bx r3 - nop -_0205ED04: .word FUN_0205EC84 -_0205ED08: .word 0x00000964 - - thumb_func_start FUN_0205ED0C -FUN_0205ED0C: ; 0x0205ED0C - ldr r3, _0205ED14 ; =FUN_0205EC94 - ldr r1, _0205ED18 ; =0x00000964 - bx r3 - nop -_0205ED14: .word FUN_0205EC94 -_0205ED18: .word 0x00000964 - - thumb_func_start FUN_0205ED1C -FUN_0205ED1C: ; 0x0205ED1C - ldr r3, _0205ED24 ; =FUN_0205EC84 - ldr r1, _0205ED28 ; =0x00000961 - bx r3 - nop -_0205ED24: .word FUN_0205EC84 -_0205ED28: .word 0x00000961 - - thumb_func_start FUN_0205ED2C -FUN_0205ED2C: ; 0x0205ED2C - ldr r3, _0205ED34 ; =FUN_0205EC8C - ldr r1, _0205ED38 ; =0x00000961 - bx r3 - nop -_0205ED34: .word FUN_0205EC8C -_0205ED38: .word 0x00000961 - - thumb_func_start FUN_0205ED3C -FUN_0205ED3C: ; 0x0205ED3C - ldr r3, _0205ED44 ; =FUN_0205EC94 - ldr r1, _0205ED48 ; =0x00000961 - bx r3 - nop -_0205ED44: .word FUN_0205EC94 -_0205ED48: .word 0x00000961 - - thumb_func_start FUN_0205ED4C -FUN_0205ED4C: ; 0x0205ED4C - ldr r3, _0205ED54 ; =FUN_0205EC84 - ldr r1, _0205ED58 ; =0x00000965 - bx r3 - nop -_0205ED54: .word FUN_0205EC84 -_0205ED58: .word 0x00000965 - - thumb_func_start FUN_0205ED5C -FUN_0205ED5C: ; 0x0205ED5C - ldr r3, _0205ED64 ; =FUN_0205EC8C - ldr r1, _0205ED68 ; =0x00000965 - bx r3 - nop -_0205ED64: .word FUN_0205EC8C -_0205ED68: .word 0x00000965 - - thumb_func_start FUN_0205ED6C -FUN_0205ED6C: ; 0x0205ED6C - ldr r3, _0205ED74 ; =FUN_0205EC94 - ldr r1, _0205ED78 ; =0x00000965 - bx r3 - nop -_0205ED74: .word FUN_0205EC94 -_0205ED78: .word 0x00000965 - - thumb_func_start FUN_0205ED7C -FUN_0205ED7C: ; 0x0205ED7C - ldr r3, _0205ED84 ; =FUN_0205EC84 - ldr r1, _0205ED88 ; =0x0000096D - bx r3 - nop -_0205ED84: .word FUN_0205EC84 -_0205ED88: .word 0x0000096D - - thumb_func_start FUN_0205ED8C -FUN_0205ED8C: ; 0x0205ED8C - ldr r3, _0205ED94 ; =FUN_0205EC8C - ldr r1, _0205ED98 ; =0x0000096D - bx r3 - nop -_0205ED94: .word FUN_0205EC8C -_0205ED98: .word 0x0000096D - - thumb_func_start FUN_0205ED9C -FUN_0205ED9C: ; 0x0205ED9C - ldr r3, _0205EDA4 ; =FUN_0205EC94 - ldr r1, _0205EDA8 ; =0x0000096D - bx r3 - nop -_0205EDA4: .word FUN_0205EC94 -_0205EDA8: .word 0x0000096D - - thumb_func_start FUN_0205EDAC -FUN_0205EDAC: ; 0x0205EDAC - ldr r3, _0205EDB4 ; =FUN_0205EC84 - ldr r1, _0205EDB8 ; =0x0000096E - bx r3 - nop -_0205EDB4: .word FUN_0205EC84 -_0205EDB8: .word 0x0000096E - - thumb_func_start FUN_0205EDBC -FUN_0205EDBC: ; 0x0205EDBC - ldr r3, _0205EDC4 ; =FUN_0205EC84 - ldr r1, _0205EDC8 ; =0x0000096F - bx r3 - nop -_0205EDC4: .word FUN_0205EC84 -_0205EDC8: .word 0x0000096F - - thumb_func_start FUN_0205EDCC -FUN_0205EDCC: ; 0x0205EDCC - ldr r3, _0205EDD4 ; =FUN_0205EC84 - mov r1, #0x97 - lsl r1, r1, #0x4 - bx r3 - .balign 4 -_0205EDD4: .word FUN_0205EC84 - - thumb_func_start FUN_0205EDD8 -FUN_0205EDD8: ; 0x0205EDD8 - ldr r3, _0205EDE0 ; =FUN_0205EC84 - ldr r1, _0205EDE4 ; =0x00000971 - bx r3 - nop -_0205EDE0: .word FUN_0205EC84 -_0205EDE4: .word 0x00000971 - - thumb_func_start FUN_0205EDE8 -FUN_0205EDE8: ; 0x0205EDE8 - ldr r3, _0205EDF0 ; =FUN_0205EC84 - ldr r1, _0205EDF4 ; =0x00000972 - bx r3 - nop -_0205EDF0: .word FUN_0205EC84 -_0205EDF4: .word 0x00000972 - - thumb_func_start FUN_0205EDF8 -FUN_0205EDF8: ; 0x0205EDF8 - ldr r3, _0205EE00 ; =FUN_0205EC84 - ldr r1, _0205EE04 ; =0x00000973 - bx r3 - nop -_0205EE00: .word FUN_0205EC84 -_0205EE04: .word 0x00000973 - - thumb_func_start FUN_0205EE08 -FUN_0205EE08: ; 0x0205EE08 - push {r3, lr} - cmp r1, #0x4 - bhi _0205EE4A - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0205EE1A: ; jump table (using 16-bit offset) - .short _0205EE24 - _0205EE1A - 2; case 0 - .short _0205EE2C - _0205EE1A - 2; case 1 - .short _0205EE34 - _0205EE1A - 2; case 2 - .short _0205EE3C - _0205EE1A - 2; case 3 - .short _0205EE44 - _0205EE1A - 2; case 4 -_0205EE24: - ldr r1, _0205EE4C ; =0x00000968 - bl FUN_0205EC84 - pop {r3, pc} -_0205EE2C: - ldr r1, _0205EE50 ; =0x00000969 - bl FUN_0205EC84 - pop {r3, pc} -_0205EE34: - ldr r1, _0205EE54 ; =0x0000096A - bl FUN_0205EC84 - pop {r3, pc} -_0205EE3C: - ldr r1, _0205EE58 ; =0x0000096B - bl FUN_0205EC84 - pop {r3, pc} -_0205EE44: - ldr r1, _0205EE5C ; =0x0000096C - bl FUN_0205EC84 -_0205EE4A: - pop {r3, pc} - .balign 4 -_0205EE4C: .word 0x00000968 -_0205EE50: .word 0x00000969 -_0205EE54: .word 0x0000096A -_0205EE58: .word 0x0000096B -_0205EE5C: .word 0x0000096C - - thumb_func_start FUN_0205EE60 -FUN_0205EE60: ; 0x0205EE60 - push {r3, lr} - cmp r1, #0x4 - bhi _0205EEA2 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0205EE72: ; jump table (using 16-bit offset) - .short _0205EE7C - _0205EE72 - 2; case 0 - .short _0205EE84 - _0205EE72 - 2; case 1 - .short _0205EE8C - _0205EE72 - 2; case 2 - .short _0205EE94 - _0205EE72 - 2; case 3 - .short _0205EE9C - _0205EE72 - 2; case 4 -_0205EE7C: - ldr r1, _0205EEA4 ; =0x00000968 - bl FUN_0205EC94 - pop {r3, pc} -_0205EE84: - ldr r1, _0205EEA8 ; =0x00000969 - bl FUN_0205EC94 - pop {r3, pc} -_0205EE8C: - ldr r1, _0205EEAC ; =0x0000096A - bl FUN_0205EC94 - pop {r3, pc} -_0205EE94: - ldr r1, _0205EEB0 ; =0x0000096B - bl FUN_0205EC94 - pop {r3, pc} -_0205EE9C: - ldr r1, _0205EEB4 ; =0x0000096C - bl FUN_0205EC94 -_0205EEA2: - pop {r3, pc} - .balign 4 -_0205EEA4: .word 0x00000968 -_0205EEA8: .word 0x00000969 -_0205EEAC: .word 0x0000096A -_0205EEB0: .word 0x0000096B -_0205EEB4: .word 0x0000096C - - thumb_func_start FUN_0205EEB8 -FUN_0205EEB8: ; 0x0205EEB8 - push {r3, lr} - mov r2, #0x0 - cmp r1, #0x5 - bhi _0205EF0A - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0205EECC: ; jump table (using 16-bit offset) - .short _0205EF0A - _0205EECC - 2; case 0 - .short _0205EED8 - _0205EECC - 2; case 1 - .short _0205EEE2 - _0205EECC - 2; case 2 - .short _0205EEEE - _0205EECC - 2; case 3 - .short _0205EEF8 - _0205EECC - 2; case 4 - .short _0205EF02 - _0205EECC - 2; case 5 -_0205EED8: - ldr r1, _0205EF10 ; =0x0000097F - bl FUN_0205EC94 - add r2, r0, #0x0 - b _0205EF0A -_0205EEE2: - mov r1, #0x26 - lsl r1, r1, #0x6 - bl FUN_0205EC94 - add r2, r0, #0x0 - b _0205EF0A -_0205EEEE: - ldr r1, _0205EF14 ; =0x00000981 - bl FUN_0205EC94 - add r2, r0, #0x0 - b _0205EF0A -_0205EEF8: - ldr r1, _0205EF18 ; =0x00000982 - bl FUN_0205EC94 - add r2, r0, #0x0 - b _0205EF0A -_0205EF02: - ldr r1, _0205EF1C ; =0x00000983 - bl FUN_0205EC94 - add r2, r0, #0x0 -_0205EF0A: - add r0, r2, #0x0 - pop {r3, pc} - nop -_0205EF10: .word 0x0000097F -_0205EF14: .word 0x00000981 -_0205EF18: .word 0x00000982 -_0205EF1C: .word 0x00000983 - - thumb_func_start FUN_0205EF20 -FUN_0205EF20: ; 0x0205EF20 - push {r4-r6, lr} - add r4, r1, #0x0 - ldr r1, _0205F0E4 ; =0x00000132 - add r6, r0, #0x0 - mov r5, #0x0 - cmp r4, r1 - bgt _0205EF7E - blt _0205EF32 - b _0205F036 -_0205EF32: - cmp r4, #0xc9 - bgt _0205EF60 - blt _0205EF3A - b _0205F084 -_0205EF3A: - cmp r4, #0x4b - bgt _0205EF58 - add r1, r4, #0x0 - sub r1, #0x48 - bmi _0205EF5E - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0205EF50: ; jump table (using 16-bit offset) - .short _0205F06A - _0205EF50 - 2; case 0 - .short _0205F06A - _0205EF50 - 2; case 1 - .short _0205F06A - _0205EF50 - 2; case 2 - .short _0205F06A - _0205EF50 - 2; case 3 -_0205EF58: - cmp r4, #0xb9 - bne _0205EF5E - b _0205F0D2 -_0205EF5E: - b _0205F0E0 -_0205EF60: - add r2, r1, #0x0 - sub r2, #0x32 - cmp r4, r2 - bgt _0205EF76 - sub r1, #0x32 - cmp r4, r1 - blt _0205EF70 - b _0205F09E -_0205EF70: - cmp r4, #0xfb - beq _0205F018 - b _0205F0E0 -_0205EF76: - sub r0, r1, #0x1 - cmp r4, r0 - beq _0205F036 - b _0205F0E0 -_0205EF7E: - add r2, r1, #0x0 - add r2, #0x5d - cmp r4, r2 - bgt _0205EFC8 - add r2, r1, #0x0 - add r2, #0x5d - cmp r4, r2 - blt _0205EF90 - b _0205F0B8 -_0205EF90: - add r2, r1, #0x1 - cmp r4, r2 - bgt _0205EF9E - add r0, r2, #0x0 - cmp r4, r0 - beq _0205F036 - b _0205F0E0 -_0205EF9E: - add r1, r1, #0x2 - sub r1, r4, r1 - cmp r1, #0xa - bhi _0205EFD6 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0205EFB2: ; jump table (using 16-bit offset) - .short _0205F036 - _0205EFB2 - 2; case 0 - .short _0205F036 - _0205EFB2 - 2; case 1 - .short _0205F036 - _0205EFB2 - 2; case 2 - .short _0205F0E0 - _0205EFB2 - 2; case 3 - .short _0205EFFC - _0205EFB2 - 2; case 4 - .short _0205F0E0 - _0205EFB2 - 2; case 5 - .short _0205EFE0 - _0205EFB2 - 2; case 6 - .short _0205F0E0 - _0205EFB2 - 2; case 7 - .short _0205EFEE - _0205EFB2 - 2; case 8 - .short _0205F0E0 - _0205EFB2 - 2; case 9 - .short _0205F00A - _0205EFB2 - 2; case 10 -_0205EFC8: - ldr r0, _0205F0E8 ; =0x000001EE - cmp r4, r0 - bgt _0205EFD8 - bge _0205F036 - sub r0, #0x48 - cmp r4, r0 - beq _0205F026 -_0205EFD6: - b _0205F0E0 -_0205EFD8: - add r0, r0, #0x3 - cmp r4, r0 - beq _0205F036 - b _0205F0E0 -_0205EFE0: - ldr r1, _0205F0EC ; =0x00000984 - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - ldr r5, _0205F0F0 ; =0x0000042E - b _0205F0E0 -_0205EFEE: - ldr r1, _0205F0EC ; =0x00000984 - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - ldr r5, _0205F0F4 ; =0x00000429 - b _0205F0E0 -_0205EFFC: - ldr r1, _0205F0F8 ; =0x0000098E - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - ldr r5, _0205F0F0 ; =0x0000042E - b _0205F0E0 -_0205F00A: - ldr r1, _0205F0FC ; =0x0000098F - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - ldr r5, _0205F0F0 ; =0x0000042E - b _0205F0E0 -_0205F018: - ldr r1, _0205F100 ; =0x00000995 - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - ldr r5, _0205F104 ; =0x0000042D - b _0205F0E0 -_0205F026: - ldr r1, _0205F108 ; =0x00000993 - add r0, r6, #0x0 - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - ldr r5, _0205F10C ; =0x0000044A - b _0205F0E0 -_0205F036: - ldr r1, _0205F110 ; =0x00000985 - add r0, r6, #0x0 - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F054 - bl IsNighttime - cmp r0, #0x0 - bne _0205F050 - mov r5, #0xfe - lsl r5, r5, #0x2 - b _0205F0E0 -_0205F050: - ldr r5, _0205F114 ; =0x00000415 - b _0205F0E0 -_0205F054: - ldr r0, _0205F118 ; =0x00000131 - cmp r4, r0 - bne _0205F0E0 - ldr r1, _0205F11C ; =0x00000986 - add r0, r6, #0x0 - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - ldr r5, _0205F120 ; =0x0000042B - b _0205F0E0 -_0205F06A: - ldr r1, _0205F124 ; =0x00000987 - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - bl IsNighttime - cmp r0, #0x0 - bne _0205F080 - ldr r5, _0205F128 ; =0x000003F5 - b _0205F0E0 -_0205F080: - ldr r5, _0205F12C ; =0x00000412 - b _0205F0E0 -_0205F084: - ldr r1, _0205F130 ; =0x00000988 - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - bl IsNighttime - cmp r0, #0x0 - bne _0205F09A - ldr r5, _0205F134 ; =0x000003FF - b _0205F0E0 -_0205F09A: - ldr r5, _0205F138 ; =0x0000041C - b _0205F0E0 -_0205F09E: - ldr r1, _0205F13C ; =0x00000989 - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - bl IsNighttime - cmp r0, #0x0 - bne _0205F0B4 - ldr r5, _0205F140 ; =0x000003EE - b _0205F0E0 -_0205F0B4: - ldr r5, _0205F144 ; =0x0000040B - b _0205F0E0 -_0205F0B8: - ldr r1, _0205F148 ; =0x0000098A - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - bl IsNighttime - cmp r0, #0x0 - bne _0205F0CE - ldr r5, _0205F140 ; =0x000003EE - b _0205F0E0 -_0205F0CE: - ldr r5, _0205F144 ; =0x0000040B - b _0205F0E0 -_0205F0D2: - ldr r1, _0205F14C ; =0x0000098B - add r0, r6, #0x0 - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - ldr r5, _0205F150 ; =0x000003E9 -_0205F0E0: - add r0, r5, #0x0 - pop {r4-r6, pc} - .balign 4 -_0205F0E4: .word 0x00000132 -_0205F0E8: .word 0x000001EE -_0205F0EC: .word 0x00000984 -_0205F0F0: .word 0x0000042E -_0205F0F4: .word 0x00000429 -_0205F0F8: .word 0x0000098E -_0205F0FC: .word 0x0000098F -_0205F100: .word 0x00000995 -_0205F104: .word 0x0000042D -_0205F108: .word 0x00000993 -_0205F10C: .word 0x0000044A -_0205F110: .word 0x00000985 -_0205F114: .word 0x00000415 -_0205F118: .word 0x00000131 -_0205F11C: .word 0x00000986 -_0205F120: .word 0x0000042B -_0205F124: .word 0x00000987 -_0205F128: .word 0x000003F5 -_0205F12C: .word 0x00000412 -_0205F130: .word 0x00000988 -_0205F134: .word 0x000003FF -_0205F138: .word 0x0000041C -_0205F13C: .word 0x00000989 -_0205F140: .word 0x000003EE -_0205F144: .word 0x0000040B -_0205F148: .word 0x0000098A -_0205F14C: .word 0x0000098B -_0205F150: .word 0x000003E9 - - thumb_func_start FUN_0205F154 -FUN_0205F154: ; 0x0205F154 - ldr r3, _0205F15C ; =FUN_0205EC84 - ldr r1, _0205F160 ; =0x00000966 - bx r3 - nop -_0205F15C: .word FUN_0205EC84 -_0205F160: .word 0x00000966 - - thumb_func_start FUN_0205F164 -FUN_0205F164: ; 0x0205F164 - ldr r3, _0205F16C ; =FUN_0205EC8C - ldr r1, _0205F170 ; =0x00000966 - bx r3 - nop -_0205F16C: .word FUN_0205EC8C -_0205F170: .word 0x00000966 - - thumb_func_start FUN_0205F174 -FUN_0205F174: ; 0x0205F174 - ldr r3, _0205F17C ; =FUN_0205EC94 - ldr r1, _0205F180 ; =0x00000966 - bx r3 - nop -_0205F17C: .word FUN_0205EC94 -_0205F180: .word 0x00000966 - - thumb_func_start FUN_0205F184 -FUN_0205F184: ; 0x0205F184 - ldr r3, _0205F18C ; =FUN_0205EC94 - ldr r1, _0205F190 ; =0x00000978 - bx r3 - nop -_0205F18C: .word FUN_0205EC94 -_0205F190: .word 0x00000978 - - thumb_func_start FUN_0205F194 -FUN_0205F194: ; 0x0205F194 - ldr r3, _0205F19C ; =FUN_0205EC94 - ldr r1, _0205F1A0 ; =0x00000992 - bx r3 - nop -_0205F19C: .word FUN_0205EC94 -_0205F1A0: .word 0x00000992 - - thumb_func_start FUN_0205F1A4 -FUN_0205F1A4: ; 0x0205F1A4 - ldr r3, _0205F1AC ; =FUN_0205EC94 - ldr r1, _0205F1B0 ; =0x0000097D - bx r3 - nop -_0205F1AC: .word FUN_0205EC94 -_0205F1B0: .word 0x0000097D - - thumb_func_start FUN_0205F1B4 -FUN_0205F1B4: ; 0x0205F1B4 - ldr r3, _0205F1BC ; =FUN_0205EC94 - ldr r1, _0205F1C0 ; =0x0000097E - bx r3 - nop -_0205F1BC: .word FUN_0205EC94 -_0205F1C0: .word 0x0000097E - - thumb_func_start FUN_0205F1C4 -FUN_0205F1C4: ; 0x0205F1C4 - ldr r3, _0205F1CC ; =FUN_0205EC84 - ldr r1, _0205F1D0 ; =0x0000097C - bx r3 - nop -_0205F1CC: .word FUN_0205EC84 -_0205F1D0: .word 0x0000097C - - thumb_func_start FUN_0205F1D4 -FUN_0205F1D4: ; 0x0205F1D4 - ldr r3, _0205F1DC ; =FUN_0205EC8C - ldr r1, _0205F1E0 ; =0x0000097C - bx r3 - nop -_0205F1DC: .word FUN_0205EC8C -_0205F1E0: .word 0x0000097C - - thumb_func_start FUN_0205F1E4 -FUN_0205F1E4: ; 0x0205F1E4 - ldr r3, _0205F1EC ; =FUN_0205EC94 - ldr r1, _0205F1F0 ; =0x0000097C - bx r3 - nop -_0205F1EC: .word FUN_0205EC94 -_0205F1F0: .word 0x0000097C - - thumb_func_start FUN_0205F1F4 -FUN_0205F1F4: ; 0x0205F1F4 - ldr r3, _0205F1FC ; =FUN_0205EC84 - ldr r1, _0205F200 ; =0x00000967 - bx r3 - nop -_0205F1FC: .word FUN_0205EC84 -_0205F200: .word 0x00000967 - - thumb_func_start FUN_0205F204 -FUN_0205F204: ; 0x0205F204 - ldr r3, _0205F20C ; =FUN_0205EC8C - ldr r1, _0205F210 ; =0x00000967 - bx r3 - nop -_0205F20C: .word FUN_0205EC8C -_0205F210: .word 0x00000967 - - thumb_func_start FUN_0205F214 -FUN_0205F214: ; 0x0205F214 - ldr r3, _0205F21C ; =FUN_0205EC94 - ldr r1, _0205F220 ; =0x00000967 - bx r3 - nop -_0205F21C: .word FUN_0205EC94 -_0205F220: .word 0x00000967 - - thumb_func_start FUN_0205F224 -FUN_0205F224: ; 0x0205F224 - ldr r3, _0205F22C ; =FUN_0205EC84 - ldr r1, _0205F230 ; =0x00000979 - bx r3 - nop -_0205F22C: .word FUN_0205EC84 -_0205F230: .word 0x00000979 - - thumb_func_start FUN_0205F234 -FUN_0205F234: ; 0x0205F234 - ldr r3, _0205F23C ; =FUN_0205EC8C - ldr r1, _0205F240 ; =0x00000979 - bx r3 - nop -_0205F23C: .word FUN_0205EC8C -_0205F240: .word 0x00000979 - - thumb_func_start FUN_0205F244 -FUN_0205F244: ; 0x0205F244 - ldr r3, _0205F24C ; =FUN_0205EC94 - ldr r1, _0205F250 ; =0x00000979 - bx r3 - nop -_0205F24C: .word FUN_0205EC94 -_0205F250: .word 0x00000979 - - thumb_func_start FUN_0205F254 -FUN_0205F254: ; 0x0205F254 - ldr r3, _0205F25C ; =FUN_0205EC8C - ldr r1, _0205F260 ; =0x00000994 - bx r3 - nop -_0205F25C: .word FUN_0205EC8C -_0205F260: .word 0x00000994 - - thumb_func_start FUN_0205F264 -FUN_0205F264: ; 0x0205F264 - ldr r3, _0205F26C ; =FUN_0205EC9C - ldr r2, _0205F270 ; =0x00000962 - bx r3 - nop -_0205F26C: .word FUN_0205EC9C -_0205F270: .word 0x00000962 - - thumb_func_start FUN_0205F274 -FUN_0205F274: ; 0x0205F274 - ldr r3, _0205F27C ; =FUN_0205EC84 - ldr r1, _0205F280 ; =0x0000097A - bx r3 - nop -_0205F27C: .word FUN_0205EC84 -_0205F280: .word 0x0000097A - - thumb_func_start FUN_0205F284 -FUN_0205F284: ; 0x0205F284 - ldr r3, _0205F28C ; =FUN_0205EC8C - ldr r1, _0205F290 ; =0x0000097A - bx r3 - nop -_0205F28C: .word FUN_0205EC8C -_0205F290: .word 0x0000097A - - thumb_func_start FUN_0205F294 -FUN_0205F294: ; 0x0205F294 - ldr r3, _0205F29C ; =FUN_0205EC94 - ldr r1, _0205F2A0 ; =0x0000097A - bx r3 - nop -_0205F29C: .word FUN_0205EC94 -_0205F2A0: .word 0x0000097A - - thumb_func_start FUN_0205F2A4 -FUN_0205F2A4: ; 0x0205F2A4 - ldr r3, _0205F2AC ; =FUN_0205EC84 - ldr r1, _0205F2B0 ; =0x0000097B - bx r3 - nop -_0205F2AC: .word FUN_0205EC84 -_0205F2B0: .word 0x0000097B - - thumb_func_start FUN_0205F2B4 -FUN_0205F2B4: ; 0x0205F2B4 - ldr r3, _0205F2BC ; =FUN_0205EC8C - ldr r1, _0205F2C0 ; =0x0000097B - bx r3 - nop -_0205F2BC: .word FUN_0205EC8C -_0205F2C0: .word 0x0000097B - - thumb_func_start FUN_0205F2C4 -FUN_0205F2C4: ; 0x0205F2C4 - ldr r3, _0205F2CC ; =FUN_0205EC94 - ldr r1, _0205F2D0 ; =0x0000097B - bx r3 - nop -_0205F2CC: .word FUN_0205EC94 -_0205F2D0: .word 0x0000097B - - thumb_func_start FUN_0205F2D4 -FUN_0205F2D4: ; 0x0205F2D4 - ldr r3, _0205F2DC ; =FUN_0205EC9C - ldr r2, _0205F2E0 ; =0x00000963 - bx r3 - nop -_0205F2DC: .word FUN_0205EC9C -_0205F2E0: .word 0x00000963 - - thumb_func_start FUN_0205F2E4 -FUN_0205F2E4: ; 0x0205F2E4 - push {r4-r6, lr} - add r4, r2, #0x0 - add r5, r0, #0x0 - add r6, r1, #0x0 - cmp r4, #0x45 - blo _0205F2F4 - bl GF_AssertFail -_0205F2F4: - mov r2, #0x9b - lsl r2, r2, #0x4 - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r4, r2 - bl FUN_0205EC9C - pop {r4-r6, pc} - - thumb_func_start FUN_0205F304 -FUN_0205F304: ; 0x0205F304 - ldr r3, _0205F30C ; =FUN_0205EC84 - ldr r1, _0205F310 ; =0x0000098C - bx r3 - nop -_0205F30C: .word FUN_0205EC84 -_0205F310: .word 0x0000098C diff --git a/arm9/src/unk_0205EC84.c b/arm9/src/unk_0205EC84.c new file mode 100644 index 00000000..a7e4531f --- /dev/null +++ b/arm9/src/unk_0205EC84.c @@ -0,0 +1,436 @@ +#include "global.h"
+#include "proto.h"
+#include "unk_0205EC84.h"
+
+static THUMB_FUNC void _flag_set(struct ScriptState * state, u16 flag_id)
+{
+ SetFlagInArray(state, flag_id);
+}
+
+static THUMB_FUNC void _flag_clear(struct ScriptState * state, u16 flag_id)
+{
+ ClearFlagInArray(state, flag_id);
+}
+
+static THUMB_FUNC BOOL _flag_check(struct ScriptState * state, u16 flag_id)
+{
+ return CheckFlagInArray(state, flag_id);
+}
+
+static THUMB_FUNC BOOL _flag_op(struct ScriptState * state, u32 op, u32 flag_id)
+{
+ switch (op)
+ {
+ case 1:
+ _flag_set(state, (u16)flag_id);
+ break;
+ case 0:
+ _flag_clear(state, (u16)flag_id);
+ break;
+ case 2:
+ return _flag_check(state, (u16)flag_id);
+ default:
+ GF_ASSERT(0);
+ }
+ return FALSE;
+}
+
+THUMB_FUNC void FUN_0205ECD4(struct ScriptState * state)
+{
+ _flag_set(state, 0x960);
+}
+
+THUMB_FUNC BOOL FUN_0205ECE0(struct ScriptState * state)
+{
+ return _flag_check(state, 0x960);
+}
+
+THUMB_FUNC BOOL FUN_0205ECEC(struct ScriptState * state)
+{
+ return _flag_check(state, 0x98D);
+}
+
+THUMB_FUNC void FUN_0205ECFC(struct ScriptState * state)
+{
+ _flag_set(state, 0x964);
+}
+
+THUMB_FUNC BOOL FUN_0205ED0C(struct ScriptState * state)
+{
+ return _flag_check(state, 0x964);
+}
+
+THUMB_FUNC void FUN_0205ED1C(struct ScriptState * state)
+{
+ _flag_set(state, 0x961);
+}
+
+THUMB_FUNC void FUN_0205ED2C(struct ScriptState * state)
+{
+ _flag_clear(state, 0x961);
+}
+
+THUMB_FUNC BOOL FUN_0205ED3C(struct ScriptState * state)
+{
+ return _flag_check(state, 0x961);
+}
+
+THUMB_FUNC void FUN_0205ED4C(struct ScriptState * state)
+{
+ _flag_set(state, 0x965);
+}
+
+THUMB_FUNC void FUN_0205ED5C(struct ScriptState * state)
+{
+ _flag_clear(state, 0x965);
+}
+
+THUMB_FUNC BOOL FUN_0205ED6C(struct ScriptState * state)
+{
+ return _flag_check(state, 0x965);
+}
+
+THUMB_FUNC void FUN_0205ED7C(struct ScriptState * state)
+{
+ _flag_set(state, 0x96D);
+}
+
+THUMB_FUNC void FUN_0205ED8C(struct ScriptState * state)
+{
+ _flag_clear(state, 0x96D);
+}
+
+THUMB_FUNC BOOL FUN_0205ED9C(struct ScriptState * state)
+{
+ return _flag_check(state, 0x96D);
+}
+
+THUMB_FUNC void FUN_0205EDAC(struct ScriptState * state)
+{
+ _flag_set(state, 0x96E);
+}
+
+THUMB_FUNC void FUN_0205EDBC(struct ScriptState * state)
+{
+ _flag_set(state, 0x96F);
+}
+
+THUMB_FUNC void FUN_0205EDCC(struct ScriptState * state)
+{
+ _flag_set(state, 0x970);
+}
+
+THUMB_FUNC void FUN_0205EDD8(struct ScriptState * state)
+{
+ _flag_set(state, 0x971);
+}
+
+THUMB_FUNC void FUN_0205EDE8(struct ScriptState * state)
+{
+ _flag_set(state, 0x972);
+}
+
+THUMB_FUNC void FUN_0205EDF8(struct ScriptState * state)
+{
+ _flag_set(state, 0x973);
+}
+
+THUMB_FUNC void FUN_0205EE08(struct ScriptState * state, u32 a1)
+{
+ switch (a1)
+ {
+ case 0:
+ _flag_set(state, 0x968);
+ break;
+ case 1:
+ _flag_set(state, 0x969);
+ break;
+ case 2:
+ _flag_set(state, 0x96A);
+ break;
+ case 3:
+ _flag_set(state, 0x96B);
+ break;
+ case 4:
+ _flag_set(state, 0x96C);
+ break;
+ }
+}
+
+THUMB_FUNC BOOL FUN_0205EE60(struct ScriptState * state, u32 a1)
+{
+ switch (a1)
+ {
+ case 0:
+ return _flag_check(state, 0x968);
+ case 1:
+ return _flag_check(state, 0x969);
+ case 2:
+ return _flag_check(state, 0x96A);
+ case 3:
+ return _flag_check(state, 0x96B);
+ case 4:
+ return _flag_check(state, 0x96C);
+ }
+ // UB: No return value
+}
+
+THUMB_FUNC BOOL FUN_0205EEB8(struct ScriptState * state, u32 a1)
+{
+ BOOL ret = FALSE;
+ switch (a1)
+ {
+ case 0:
+ break;
+ case 1:
+ ret = _flag_check(state, 0x97F);
+ break;
+ case 2:
+ ret = _flag_check(state, 0x980);
+ break;
+ case 3:
+ ret = _flag_check(state, 0x981);
+ break;
+ case 4:
+ ret = _flag_check(state, 0x982);
+ break;
+ case 5:
+ ret = _flag_check(state, 0x983);
+ break;
+ }
+ return ret;
+}
+
+THUMB_FUNC s32 FUN_0205EF20(struct ScriptState * state, s32 a1)
+{
+ s32 ret = 0;
+ switch (a1)
+ {
+ case 314:
+ if (_flag_check(state, 0x984) == TRUE)
+ ret = 1070;
+ break;
+ case 316:
+ if (_flag_check(state, 0x984) == TRUE)
+ ret = 1065;
+ break;
+ case 312:
+ if (_flag_check(state, 0x98E) == TRUE)
+ ret = 1070;
+ break;
+ case 318:
+ if (_flag_check(state, 0x98F) == TRUE)
+ ret = 1070;
+ break;
+ case 251:
+ if (_flag_check(state, 0x995) == TRUE)
+ ret = 1069;
+ break;
+ case 422:
+ if (_flag_check(state, 0x993) == TRUE)
+ ret = 1098;
+ break;
+ case 305:
+ case 306:
+ case 307:
+ case 308:
+ case 309:
+ case 310:
+ case 494:
+ case 497:
+ if (_flag_check(state, 0x985) == TRUE)
+ {
+ if (!IsNighttime())
+ ret = 1016;
+ else
+ ret = 1045;
+ }
+ else if (a1 == 305)
+ {
+ if (_flag_check(state, 0x986) == TRUE)
+ ret = 1067;
+ }
+ break;
+ case 72:
+ case 73:
+ case 74:
+ case 75:
+ if (_flag_check(state, 0x987) == TRUE)
+ {
+ if (!IsNighttime())
+ ret = 1013;
+ else
+ ret = 1042;
+ }
+ break;
+ case 201:
+ if (_flag_check(state, 0x988) == TRUE)
+ {
+ if (!IsNighttime())
+ ret = 1023;
+ else
+ ret = 1052;
+ }
+ break;
+ case 256:
+ if (_flag_check(state, 0x989) == TRUE)
+ {
+ if (!IsNighttime())
+ ret = 1006;
+ else
+ ret = 1035;
+ }
+ break;
+ case 399:
+ if (_flag_check(state, 0x98A) == TRUE)
+ {
+ if (!IsNighttime())
+ ret = 1006;
+ else
+ ret = 1035;
+ }
+ break;
+ case 185:
+ if (_flag_check(state, 0x98B) == TRUE)
+ ret = 1001;
+ break;
+ }
+ return ret;
+}
+
+
+THUMB_FUNC void FUN_0205F154(struct ScriptState * state)
+{
+ _flag_set(state, 0x966);
+}
+
+THUMB_FUNC void FUN_0205F164(struct ScriptState * state)
+{
+ _flag_clear(state, 0x966);
+}
+
+THUMB_FUNC BOOL FUN_0205F174(struct ScriptState * state)
+{
+ return _flag_check(state, 0x966);
+}
+
+THUMB_FUNC BOOL FUN_0205F184(struct ScriptState * state)
+{
+ return _flag_check(state, 0x978);
+}
+
+THUMB_FUNC BOOL FUN_0205F194(struct ScriptState * state)
+{
+ return _flag_check(state, 0x992);
+}
+
+THUMB_FUNC BOOL FUN_0205F1A4(struct ScriptState * state)
+{
+ return _flag_check(state, 0x97D);
+}
+
+THUMB_FUNC BOOL FUN_0205F1B4(struct ScriptState * state)
+{
+ return _flag_check(state, 0x97E);
+}
+
+THUMB_FUNC void FUN_0205F1C4(struct ScriptState * state)
+{
+ _flag_set(state, 0x97C);
+}
+
+THUMB_FUNC void FUN_0205F1D4(struct ScriptState * state)
+{
+ _flag_clear(state, 0x97C);
+}
+
+THUMB_FUNC BOOL FUN_0205F1E4(struct ScriptState * state)
+{
+ return _flag_check(state, 0x97C);
+}
+
+THUMB_FUNC void FUN_0205F1F4(struct ScriptState * state)
+{
+ _flag_set(state, 0x967);
+}
+
+THUMB_FUNC void FUN_0205F204(struct ScriptState * state)
+{
+ _flag_clear(state, 0x967);
+}
+
+THUMB_FUNC BOOL FUN_0205F214(struct ScriptState * state)
+{
+ return _flag_check(state, 0x967);
+}
+
+THUMB_FUNC void FUN_0205F224(struct ScriptState * state)
+{
+ _flag_set(state, 0x979);
+}
+
+THUMB_FUNC void FUN_0205F234(struct ScriptState * state)
+{
+ _flag_clear(state, 0x979);
+}
+
+THUMB_FUNC BOOL FUN_0205F244(struct ScriptState * state)
+{
+ return _flag_check(state, 0x979);
+}
+
+THUMB_FUNC void FUN_0205F254(struct ScriptState * state)
+{
+ _flag_clear(state, 0x994);
+}
+
+THUMB_FUNC BOOL FUN_0205F264(struct ScriptState * state, u32 op)
+{
+ return _flag_op(state, op, 0x962);
+}
+
+THUMB_FUNC void FUN_0205F274(struct ScriptState * state)
+{
+ _flag_set(state, 0x97A);
+}
+
+THUMB_FUNC void FUN_0205F284(struct ScriptState * state)
+{
+ _flag_clear(state, 0x97A);
+}
+
+THUMB_FUNC BOOL FUN_0205F294(struct ScriptState * state)
+{
+ return _flag_check(state, 0x97A);
+}
+
+THUMB_FUNC void FUN_0205F2A4(struct ScriptState * state)
+{
+ _flag_set(state, 0x97B);
+}
+
+THUMB_FUNC void FUN_0205F2B4(struct ScriptState * state)
+{
+ _flag_clear(state, 0x97B);
+}
+
+THUMB_FUNC BOOL FUN_0205F2C4(struct ScriptState * state)
+{
+ return _flag_check(state, 0x97B);
+}
+
+THUMB_FUNC BOOL FUN_0205F2D4(struct ScriptState * state, u32 op)
+{
+ return _flag_op(state, op, 0x963);
+}
+
+THUMB_FUNC BOOL FUN_0205F2E4(struct ScriptState * state, u32 op, u16 flag_id)
+{
+ GF_ASSERT(flag_id < 69);
+ return _flag_op(state, op, 0x9B0 + flag_id);
+}
+
+THUMB_FUNC void FUN_0205F304(struct ScriptState * state)
+{
+ _flag_set(state, 0x98C);
+}
diff --git a/include/unk_0205EC84.h b/include/unk_0205EC84.h new file mode 100644 index 00000000..0cbf6f77 --- /dev/null +++ b/include/unk_0205EC84.h @@ -0,0 +1,58 @@ +#ifndef POKEDIAMOND_UNK_0205EC84_H
+#define POKEDIAMOND_UNK_0205EC84_H
+
+#include "event_data.h"
+
+void FUN_0205ECD4(struct ScriptState * state);
+BOOL FUN_0205ECE0(struct ScriptState * state);
+BOOL FUN_0205ECEC(struct ScriptState * state);
+void FUN_0205ECFC(struct ScriptState * state);
+BOOL FUN_0205ED0C(struct ScriptState * state);
+void FUN_0205ED1C(struct ScriptState * state);
+void FUN_0205ED2C(struct ScriptState * state);
+BOOL FUN_0205ED3C(struct ScriptState * state);
+void FUN_0205ED4C(struct ScriptState * state);
+void FUN_0205ED5C(struct ScriptState * state);
+BOOL FUN_0205ED6C(struct ScriptState * state);
+void FUN_0205ED7C(struct ScriptState * state);
+void FUN_0205ED8C(struct ScriptState * state);
+BOOL FUN_0205ED9C(struct ScriptState * state);
+void FUN_0205EDAC(struct ScriptState * state);
+void FUN_0205EDBC(struct ScriptState * state);
+void FUN_0205EDCC(struct ScriptState * state);
+void FUN_0205EDD8(struct ScriptState * state);
+void FUN_0205EDE8(struct ScriptState * state);
+void FUN_0205EDF8(struct ScriptState * state);
+void FUN_0205EE08(struct ScriptState * state, u32 a1);
+BOOL FUN_0205EE60(struct ScriptState * state, u32 a1);
+BOOL FUN_0205EEB8(struct ScriptState * state, u32 a1);
+s32 FUN_0205EF20(struct ScriptState * state, s32 a1);
+void FUN_0205F154(struct ScriptState * state);
+void FUN_0205F164(struct ScriptState * state);
+BOOL FUN_0205F174(struct ScriptState * state);
+BOOL FUN_0205F184(struct ScriptState * state);
+BOOL FUN_0205F194(struct ScriptState * state);
+BOOL FUN_0205F1A4(struct ScriptState * state);
+BOOL FUN_0205F1B4(struct ScriptState * state);
+void FUN_0205F1C4(struct ScriptState * state);
+void FUN_0205F1D4(struct ScriptState * state);
+BOOL FUN_0205F1E4(struct ScriptState * state);
+void FUN_0205F1F4(struct ScriptState * state);
+void FUN_0205F204(struct ScriptState * state);
+BOOL FUN_0205F214(struct ScriptState * state);
+void FUN_0205F224(struct ScriptState * state);
+void FUN_0205F234(struct ScriptState * state);
+BOOL FUN_0205F244(struct ScriptState * state);
+void FUN_0205F254(struct ScriptState * state);
+BOOL FUN_0205F264(struct ScriptState * state, u32 op);
+void FUN_0205F274(struct ScriptState * state);
+void FUN_0205F284(struct ScriptState * state);
+BOOL FUN_0205F294(struct ScriptState * state);
+void FUN_0205F2A4(struct ScriptState * state);
+void FUN_0205F2B4(struct ScriptState * state);
+BOOL FUN_0205F2C4(struct ScriptState * state);
+BOOL FUN_0205F2D4(struct ScriptState * state, u32 op);
+BOOL FUN_0205F2E4(struct ScriptState * state, u32 op, u16 flag_id);
+void FUN_0205F304(struct ScriptState * state);
+
+#endif //POKEDIAMOND_UNK_0205EC84_H
|