summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-06-11 21:55:07 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-06-11 21:56:37 -0400
commit0e92523067b31f9f9c17c1a06c76b62a801abc51 (patch)
tree2425b792ee6211f79a11d7502e31701eac77cc4d
parentc73f73789a798de5c28dab7ba601ca36731d049a (diff)
Decompile unk_0205EC84, 2
-rw-r--r--arm9/arm9.lsf1
-rw-r--r--arm9/asm/unk_0205EC84_s.s534
-rw-r--r--arm9/src/unk_0205EC84.c321
-rw-r--r--include/unk_0205EC84.h58
4 files changed, 336 insertions, 578 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index f179bf81..8dd9759c 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -229,7 +229,6 @@ Static arm9
Object unk_0205E4EC.o
Object unk_0205EB38.o
Object unk_0205EC84.o
- Object unk_0205EC84_s.o
Object unk_0205F314.o
Object unk_0205F7A0.o
Object unk_0205FA2C.o
diff --git a/arm9/asm/unk_0205EC84_s.s b/arm9/asm/unk_0205EC84_s.s
deleted file mode 100644
index 90fa69b4..00000000
--- a/arm9/asm/unk_0205EC84_s.s
+++ /dev/null
@@ -1,534 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
- .extern FUN_0205EC84
- .extern FUN_0205EC8C
- .extern FUN_0205EC94
- .extern FUN_0205EC9C
-
- .text
-
- 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
index 94795ee7..a7e4531f 100644
--- a/arm9/src/unk_0205EC84.c
+++ b/arm9/src/unk_0205EC84.c
@@ -1,33 +1,34 @@
#include "global.h"
-#include "event_data.h"
+#include "proto.h"
+#include "unk_0205EC84.h"
-THUMB_FUNC void FUN_0205EC84(struct ScriptState * state, u16 flag_id)
+static THUMB_FUNC void _flag_set(struct ScriptState * state, u16 flag_id)
{
SetFlagInArray(state, flag_id);
}
-THUMB_FUNC void FUN_0205EC8C(struct ScriptState * state, u16 flag_id)
+static THUMB_FUNC void _flag_clear(struct ScriptState * state, u16 flag_id)
{
ClearFlagInArray(state, flag_id);
}
-THUMB_FUNC BOOL FUN_0205EC94(struct ScriptState * state, u16 flag_id)
+static THUMB_FUNC BOOL _flag_check(struct ScriptState * state, u16 flag_id)
{
return CheckFlagInArray(state, flag_id);
}
-THUMB_FUNC BOOL FUN_0205EC9C(struct ScriptState * state, u32 op, u32 flag_id)
+static THUMB_FUNC BOOL _flag_op(struct ScriptState * state, u32 op, u32 flag_id)
{
switch (op)
{
case 1:
- FUN_0205EC84(state, (u16)flag_id);
+ _flag_set(state, (u16)flag_id);
break;
case 0:
- FUN_0205EC8C(state, (u16)flag_id);
+ _flag_clear(state, (u16)flag_id);
break;
case 2:
- return FUN_0205EC94(state, (u16)flag_id);
+ return _flag_check(state, (u16)flag_id);
default:
GF_ASSERT(0);
}
@@ -36,102 +37,102 @@ THUMB_FUNC BOOL FUN_0205EC9C(struct ScriptState * state, u32 op, u32 flag_id)
THUMB_FUNC void FUN_0205ECD4(struct ScriptState * state)
{
- FUN_0205EC84(state, 0x960);
+ _flag_set(state, 0x960);
}
THUMB_FUNC BOOL FUN_0205ECE0(struct ScriptState * state)
{
- return FUN_0205EC94(state, 0x960);
+ return _flag_check(state, 0x960);
}
THUMB_FUNC BOOL FUN_0205ECEC(struct ScriptState * state)
{
- return FUN_0205EC94(state, 0x98D);
+ return _flag_check(state, 0x98D);
}
THUMB_FUNC void FUN_0205ECFC(struct ScriptState * state)
{
- FUN_0205EC84(state, 0x964);
+ _flag_set(state, 0x964);
}
THUMB_FUNC BOOL FUN_0205ED0C(struct ScriptState * state)
{
- return FUN_0205EC94(state, 0x964);
+ return _flag_check(state, 0x964);
}
THUMB_FUNC void FUN_0205ED1C(struct ScriptState * state)
{
- FUN_0205EC84(state, 0x961);
+ _flag_set(state, 0x961);
}
THUMB_FUNC void FUN_0205ED2C(struct ScriptState * state)
{
- FUN_0205EC8C(state, 0x961);
+ _flag_clear(state, 0x961);
}
THUMB_FUNC BOOL FUN_0205ED3C(struct ScriptState * state)
{
- return FUN_0205EC94(state, 0x961);
+ return _flag_check(state, 0x961);
}
THUMB_FUNC void FUN_0205ED4C(struct ScriptState * state)
{
- FUN_0205EC84(state, 0x965);
+ _flag_set(state, 0x965);
}
THUMB_FUNC void FUN_0205ED5C(struct ScriptState * state)
{
- FUN_0205EC8C(state, 0x965);
+ _flag_clear(state, 0x965);
}
THUMB_FUNC BOOL FUN_0205ED6C(struct ScriptState * state)
{
- return FUN_0205EC94(state, 0x965);
+ return _flag_check(state, 0x965);
}
THUMB_FUNC void FUN_0205ED7C(struct ScriptState * state)
{
- FUN_0205EC84(state, 0x96D);
+ _flag_set(state, 0x96D);
}
THUMB_FUNC void FUN_0205ED8C(struct ScriptState * state)
{
- FUN_0205EC8C(state, 0x96D);
+ _flag_clear(state, 0x96D);
}
THUMB_FUNC BOOL FUN_0205ED9C(struct ScriptState * state)
{
- return FUN_0205EC94(state, 0x96D);
+ return _flag_check(state, 0x96D);
}
THUMB_FUNC void FUN_0205EDAC(struct ScriptState * state)
{
- FUN_0205EC84(state, 0x96E);
+ _flag_set(state, 0x96E);
}
THUMB_FUNC void FUN_0205EDBC(struct ScriptState * state)
{
- FUN_0205EC84(state, 0x96F);
+ _flag_set(state, 0x96F);
}
THUMB_FUNC void FUN_0205EDCC(struct ScriptState * state)
{
- FUN_0205EC84(state, 0x970);
+ _flag_set(state, 0x970);
}
THUMB_FUNC void FUN_0205EDD8(struct ScriptState * state)
{
- FUN_0205EC84(state, 0x971);
+ _flag_set(state, 0x971);
}
THUMB_FUNC void FUN_0205EDE8(struct ScriptState * state)
{
- FUN_0205EC84(state, 0x972);
+ _flag_set(state, 0x972);
}
THUMB_FUNC void FUN_0205EDF8(struct ScriptState * state)
{
- FUN_0205EC84(state, 0x973);
+ _flag_set(state, 0x973);
}
THUMB_FUNC void FUN_0205EE08(struct ScriptState * state, u32 a1)
@@ -139,19 +140,19 @@ THUMB_FUNC void FUN_0205EE08(struct ScriptState * state, u32 a1)
switch (a1)
{
case 0:
- FUN_0205EC84(state, 0x968);
+ _flag_set(state, 0x968);
break;
case 1:
- FUN_0205EC84(state, 0x969);
+ _flag_set(state, 0x969);
break;
case 2:
- FUN_0205EC84(state, 0x96A);
+ _flag_set(state, 0x96A);
break;
case 3:
- FUN_0205EC84(state, 0x96B);
+ _flag_set(state, 0x96B);
break;
case 4:
- FUN_0205EC84(state, 0x96C);
+ _flag_set(state, 0x96C);
break;
}
}
@@ -161,15 +162,15 @@ THUMB_FUNC BOOL FUN_0205EE60(struct ScriptState * state, u32 a1)
switch (a1)
{
case 0:
- return FUN_0205EC94(state, 0x968);
+ return _flag_check(state, 0x968);
case 1:
- return FUN_0205EC94(state, 0x969);
+ return _flag_check(state, 0x969);
case 2:
- return FUN_0205EC94(state, 0x96A);
+ return _flag_check(state, 0x96A);
case 3:
- return FUN_0205EC94(state, 0x96B);
+ return _flag_check(state, 0x96B);
case 4:
- return FUN_0205EC94(state, 0x96C);
+ return _flag_check(state, 0x96C);
}
// UB: No return value
}
@@ -182,20 +183,254 @@ THUMB_FUNC BOOL FUN_0205EEB8(struct ScriptState * state, u32 a1)
case 0:
break;
case 1:
- ret = FUN_0205EC94(state, 0x97F);
+ ret = _flag_check(state, 0x97F);
break;
case 2:
- ret = FUN_0205EC94(state, 0x980);
+ ret = _flag_check(state, 0x980);
break;
case 3:
- ret = FUN_0205EC94(state, 0x981);
+ ret = _flag_check(state, 0x981);
break;
case 4:
- ret = FUN_0205EC94(state, 0x982);
+ ret = _flag_check(state, 0x982);
break;
case 5:
- ret = FUN_0205EC94(state, 0x983);
+ 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