diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2021-05-26 17:37:14 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2021-05-26 17:37:14 -0400 |
commit | 059a3d1496fc192b35e3a6779195d28ad35cc499 (patch) | |
tree | c96dd950d0cabedb7af5b9173a56f80495029e78 | |
parent | 7d10ba28169226bf00b741f7d01bc3386b383343 (diff) |
Decompile FUN_0203FCF4
-rw-r--r-- | arm9/arm9.lsf | 1 | ||||
-rw-r--r-- | arm9/asm/scrcmd_2.s | 278 | ||||
-rw-r--r-- | arm9/modules/06/include/module_06.h | 6 | ||||
-rw-r--r-- | arm9/modules/18/asm/module_18.s | 29 | ||||
-rw-r--r-- | arm9/src/scrcmd_mart.c | 395 |
5 files changed, 420 insertions, 289 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 7a8f19f1..cceff08b 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -157,6 +157,7 @@ Static arm9 Object unk_02038C78.o Object scrcmd.o Object scrcmd_asm.o + Object scrcmd_mart.o Object scrcmd_2.o Object scrcmd_3.o Object scrcmd_names.o diff --git a/arm9/asm/scrcmd_2.s b/arm9/asm/scrcmd_2.s index d7d98c66..418d10bf 100644 --- a/arm9/asm/scrcmd_2.s +++ b/arm9/asm/scrcmd_2.s @@ -1,284 +1,12 @@ .include "asm/macros.inc" .include "global.inc" - .section .rodata - - .global UNK_020F40A0 -UNK_020F40A0: ; 0x020F40A0 - .byte 0x8E, 0x00, 0x0B, 0x00, 0xFF, 0xFF - - .global UNK_020F40A6 -UNK_020F40A6: ; 0x020F40A6 - .byte 0x92, 0x00, 0x0E, 0x00, 0xFF, 0xFF - - .global UNK_020F40AC -UNK_020F40AC: ; 0x020F40AC - .byte 0x8C, 0x00, 0x0E, 0x00, 0x06, 0x00, 0xFF, 0xFF - - .global UNK_020F40B4 -UNK_020F40B4: ; 0x020F40B4 - .byte 0x8D, 0x00, 0x0E, 0x00, 0x06, 0x00, 0xFF, 0xFF - - .global UNK_020F40BC -UNK_020F40BC: ; 0x020F40BC - .byte 0x92, 0x00, 0x0E, 0x00, 0x06, 0x00, 0x08, 0x00, 0xFF, 0xFF - - .global UNK_020F40C6 -UNK_020F40C6: ; 0x020F40C6 - .byte 0x24, 0x00, 0x22, 0x00, 0x23, 0x00, 0x25, 0x00, 0xFF, 0xFF - - .global UNK_020F40D0 -UNK_020F40D0: ; 0x020F40D0 - .byte 0x90, 0x00, 0x0D, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0xFF, 0xFF - - .global UNK_020F40DA -UNK_020F40DA: ; 0x020F40DA - .byte 0x92, 0x00, 0x06, 0x00, 0x08, 0x00, 0x0D, 0x00, 0xFF, 0xFF - - .global UNK_020F40E4 -UNK_020F40E4: ; 0x020F40E4 - .byte 0x92, 0x00, 0x08, 0x00, 0x0D, 0x00, 0x0F, 0x00, 0xFF, 0xFF - - .global UNK_020F40EE -UNK_020F40EE: ; 0x020F40EE - .byte 0x92, 0x00, 0x0D, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0xFF, 0xFF - - .global UNK_020F40F8 -UNK_020F40F8: ; 0x020F40F8 - .byte 0x8F, 0x00, 0x0E, 0x00, 0x06, 0x00, 0x08, 0x00, 0xFF, 0xFF - - .global UNK_020F4102 -UNK_020F4102: ; 0x020F4102 - .byte 0x92, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x09, 0x00, 0xFF, 0xFF - - .global UNK_020F410C -UNK_020F410C: ; 0x020F410C - .byte 0x07, 0x00, 0x16, 0x00, 0x19, 0x00, 0x1A, 0x00, 0x1B, 0x00, 0xFF, 0xFF - - .global UNK_020F4118 -UNK_020F4118: ; 0x020F4118 - .byte 0x73, 0x00, 0x74, 0x00, 0x75, 0x00, 0x77, 0x00, 0x78, 0x00, 0x79, 0x00, 0xFF, 0xFF - - .global UNK_020F4126 -UNK_020F4126: ; 0x020F4126 - .byte 0x2E, 0x00, 0x2F, 0x00, 0x31, 0x00, 0x34, 0x00, 0x30, 0x00, 0x2D, 0x00, 0xFF, 0xFF - - .global UNK_020F4134 -UNK_020F4134: ; 0x020F4134 - .byte 0x6D, 0x01, 0x60, 0x01, 0x55, 0x01, 0x5D, 0x01, 0x7B, 0x01, 0x56, 0x01, 0xFF, 0xFF - - .global UNK_020F4142 -UNK_020F4142: ; 0x020F4142 - .byte 0x02, 0x00, 0x09, 0x00, 0x1E, 0x00, 0x25, 0x00, 0x2C, 0x00, 0x10, 0x00, 0x17, 0x00, 0xFF, 0xFF - - .global UNK_020F4152 -UNK_020F4152: ; 0x020F4152 - .byte 0x1B, 0x00, 0x22, 0x00, 0x29, 0x00, 0x30, 0x00, 0x06, 0x00, 0x0D, 0x00, 0x14, 0x00, 0xFF, 0xFF - - .global UNK_020F4162 -UNK_020F4162: ; 0x020F4162 - .byte 0x03, 0x00, 0x0A, 0x00, 0x1F, 0x00, 0x26, 0x00, 0x2D, 0x00, 0x11, 0x00, 0x18, 0x00, 0xFF, 0xFF - - .global UNK_020F4172 -UNK_020F4172: ; 0x020F4172 - .byte 0x04, 0x00, 0x19, 0x00, 0x20, 0x00, 0x27, 0x00, 0x2E, 0x00, 0x0B, 0x00, 0x12, 0x00, 0xFF, 0xFF - - .global UNK_020F4182 -UNK_020F4182: ; 0x020F4182 - .byte 0x9A, 0x01, 0x58, 0x01, 0x7D, 0x01, 0x5B, 0x01, 0x68, 0x01, 0x57, 0x01, 0x8D, 0x01, 0xFF, 0xFF - - .global UNK_020F4192 -UNK_020F4192: ; 0x020F4192 - .byte 0x01, 0x00, 0x08, 0x00, 0x1D, 0x00, 0x2B, 0x00, 0x0F, 0x00, 0x16, 0x00, 0x24, 0x00, 0xFF, 0xFF - - .global UNK_020F41A2 -UNK_020F41A2: ; 0x020F41A2 - .byte 0x1A, 0x00, 0x21, 0x00, 0x28, 0x00, 0x2F, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x13, 0x00, 0xFF, 0xFF - - .global UNK_020F41B2 -UNK_020F41B2: ; 0x020F41B2 - .byte 0x07, 0x00, 0x31, 0x00, 0x1C, 0x00, 0x2A, 0x00, 0x0E, 0x00, 0x15, 0x00, 0x23, 0x00, 0xFF, 0xFF - - .global UNK_020F41C2 -UNK_020F41C2: ; 0x020F41C2 - .byte 0x0E, 0x00, 0x06, 0x00, 0x08, 0x00, 0x0D, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x09, 0x00, 0x0B, 0x00 - .byte 0xFF, 0xFF - - .global UNK_020F41D4 -UNK_020F41D4: ; 0x020F41D4 - .byte 0x3B, 0x00, 0x39, 0x00, 0x3A, 0x00, 0x37, 0x00, 0x38, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, 0x00 - .byte 0xFF, 0xFF - - .global UNK_020F41E6 -UNK_020F41E6: ; 0x020F41E6 - .byte 0x11, 0x00, 0x1A, 0x00, 0x19, 0x00, 0x18, 0x00, 0x1C, 0x00, 0x12, 0x00, 0x16, 0x00, 0x13, 0x00 - .byte 0x14, 0x00, 0x15, 0x00, 0x1B, 0x00, 0xFF, 0xFF - - .global UNK_020F41FE -UNK_020F41FE: ; 0x020F41FE - .byte 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x4E, 0x00, 0x3F, 0x00, 0x4F, 0x00, 0x4C, 0x00, 0x4D, 0x00 - .byte 0x89, 0x00, 0x8A, 0x00, 0x8B, 0x00, 0x91, 0x00, 0xFF, 0xFF - - .global UNK_020F4218 -UNK_020F4218: ; 0x020F4218 - .byte 0x04, 0x00, 0x01, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x04, 0x00, 0x11, 0x00, 0x01, 0x00 - .byte 0x1A, 0x00, 0x02, 0x00, 0x19, 0x00, 0x04, 0x00, 0x18, 0x00, 0x05, 0x00, 0x17, 0x00, 0x06, 0x00 - .byte 0x1C, 0x00, 0x03, 0x00, 0x12, 0x00, 0x01, 0x00, 0x16, 0x00, 0x01, 0x00, 0x15, 0x00, 0x02, 0x00 - .byte 0x13, 0x00, 0x02, 0x00, 0x14, 0x00, 0x02, 0x00, 0x1B, 0x00, 0x04, 0x00, 0x4E, 0x00, 0x02, 0x00 - .byte 0x4F, 0x00, 0x02, 0x00, 0x4C, 0x00, 0x03, 0x00, 0x4D, 0x00, 0x04, 0x00 - - .section .data - - .balign 4, 0 - .global UNK_02105DEC -UNK_02105DEC: ; 0x02105DEC - .word UNK_020F410C - .word UNK_020F4118 - - .global UNK_02105DF4 -UNK_02105DF4: ; 0x02105DF4 - .word UNK_020F4192 - .word UNK_020F4142 - .word UNK_020F4162 - .word UNK_020F4172 - .word UNK_020F41A2 - .word UNK_020F4152 - .word UNK_020F41B2 - - .global UNK_02105E10 -UNK_02105E10: ; 0x02105E10 - .word UNK_020F40A6 - .word UNK_020F40B4 - .word UNK_020F40AC - .word UNK_020F40BC - .word UNK_020F40C6 - .word UNK_020F40F8 - .word UNK_020F40DA - .word UNK_020F40E4 - .word UNK_020F41E6 - .word UNK_020F41FE - .word UNK_020F41D4 - .word UNK_020F4126 - .word UNK_020F4182 - .word UNK_020F4134 - .word UNK_020F40EE - .word UNK_020F40D0 - .word UNK_020F4102 - .word UNK_020F40A0 - .word UNK_020F41C2 + .extern UNK_02105DEC + .extern UNK_02105DF4 + .extern UNK_02105E10 .text - thumb_func_start FUN_0203FCF4 -FUN_0203FCF4: ; 0x0203FCF4 - push {r4-r7, lr} - sub sp, #0x84 - add r7, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r7, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - mov r4, #0x0 - add r6, r4, #0x0 - add r5, r4, #0x0 -_0203FD10: - add r0, r7, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetProfileAddr - add r1, r5, #0x0 - bl PlayerProfile_TestBadgeFlag - cmp r0, #0x1 - bne _0203FD2C - add r0, r6, #0x1 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 -_0203FD2C: - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #0x8 - blo _0203FD10 - cmp r6, #0x8 - bhi _0203FD70 - add r0, r6, r6 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0203FD46: ; jump table (using 16-bit offset) - .short _0203FD58 - _0203FD46 - 2; case 0 - .short _0203FD5C - _0203FD46 - 2; case 1 - .short _0203FD5C - _0203FD46 - 2; case 2 - .short _0203FD60 - _0203FD46 - 2; case 3 - .short _0203FD60 - _0203FD46 - 2; case 4 - .short _0203FD64 - _0203FD46 - 2; case 5 - .short _0203FD64 - _0203FD46 - 2; case 6 - .short _0203FD68 - _0203FD46 - 2; case 7 - .short _0203FD6C - _0203FD46 - 2; case 8 -_0203FD58: - mov r1, #0x1 - b _0203FD72 -_0203FD5C: - mov r1, #0x2 - b _0203FD72 -_0203FD60: - mov r1, #0x3 - b _0203FD72 -_0203FD64: - mov r1, #0x4 - b _0203FD72 -_0203FD68: - mov r1, #0x5 - b _0203FD72 -_0203FD6C: - mov r1, #0x6 - b _0203FD72 -_0203FD70: - mov r1, #0x1 -_0203FD72: - ldr r0, _0203FDB4 ; =UNK_020F4218 - mov r2, #0x0 - add r6, sp, #0x4 -_0203FD78: - lsl r3, r2, #0x2 - add r5, r0, r3 - ldrh r3, [r5, #0x2] - cmp r1, r3 - blt _0203FD8E - ldrh r5, [r5, #0x0] - lsl r3, r4, #0x1 - strh r5, [r6, r3] - add r3, r4, #0x1 - lsl r3, r3, #0x18 - lsr r4, r3, #0x18 -_0203FD8E: - add r2, r2, #0x1 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - cmp r2, #0x13 - blo _0203FD78 - ldr r1, _0203FDB8 ; =0x0000FFFF - lsl r0, r4, #0x1 - add r2, sp, #0x4 - strh r1, [r2, r0] - mov r3, #0x0 - str r3, [sp, #0x0] - ldr r0, [r7, #0x74] - add r7, #0x80 - ldr r1, [r7, #0x0] - bl MOD06_0223D3D0 - mov r0, #0x1 - add sp, #0x84 - pop {r4-r7, pc} - .balign 4 -_0203FDB4: .word UNK_020F4218 -_0203FDB8: .word 0x0000FFFF - thumb_func_start FUN_0203FDBC FUN_0203FDBC: ; 0x0203FDBC push {r3-r4, lr} diff --git a/arm9/modules/06/include/module_06.h b/arm9/modules/06/include/module_06.h new file mode 100644 index 00000000..f8d2c4fb --- /dev/null +++ b/arm9/modules/06/include/module_06.h @@ -0,0 +1,6 @@ +#ifndef POKEDIAMOND_MODULE_06_H
+#define POKEDIAMOND_MODULE_06_H
+
+void MOD06_0223D3D0(struct UnkStruct_0204639C *, struct UnkSavStruct80 *, u16 *, u32, u32);
+
+#endif //POKEDIAMOND_MODULE_06_H
diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index 15b80554..db648255 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -33727,7 +33727,7 @@ MOD18_02249BA8: ; 0x02249BA8 bl MOD18_0223D678 ldr r1, _02249CB0 ; =0x0000023B mov r2, #0 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank add r0, r6, #1 mov r1, #4 bl ListMenuItems_ctor @@ -34194,7 +34194,7 @@ MOD18_02249F8C: ; 0x02249F8C bl MOD18_0223D678 ldr r1, _0224A0D4 ; =0x00000239 mov r2, #0 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank add r0, r6, #1 mov r1, #4 bl ListMenuItems_ctor @@ -34643,7 +34643,7 @@ MOD18_0224A360: ; 0x0224A360 bl MOD18_0223D678 ldr r1, _0224A464 ; =0x00000239 mov r2, #0 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank add r0, r6, #1 mov r1, #4 bl ListMenuItems_ctor @@ -35581,7 +35581,7 @@ MOD18_0224AB08: ; 0x0224AB08 bl MOD18_0223D678 ldr r1, _0224AC0C ; =0x00000237 mov r2, #0 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank add r0, r6, #1 mov r1, #4 bl ListMenuItems_ctor @@ -37823,7 +37823,7 @@ MOD18_0224BD54: ; 0x0224BD54 mov r1, #0x91 lsl r1, r1, #2 mov r2, #1 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank ldr r0, _0224BDE4 ; =0x00000246 mov r1, #0 strb r1, [r4, r0] @@ -39123,7 +39123,7 @@ MOD18_0224C7D4: ; 0x0224C7D4 bl MOD18_0223D678 ldr r1, _0224C938 ; =0x0000023B mov r2, #0 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank b _0224C876 _0224C83C: cmp r0, #0 @@ -39137,7 +39137,7 @@ _0224C83C: bl MOD18_0223D678 ldr r1, _0224C93C ; =0x00000237 mov r2, #0 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank b _0224C876 _0224C85C: mov r0, #0 @@ -39149,7 +39149,7 @@ _0224C85C: bl MOD18_0223D678 ldr r1, _0224C940 ; =0x00000239 mov r2, #0 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank _0224C876: mov r7, #0x21 mov r4, #0 @@ -39394,7 +39394,7 @@ MOD18_0224CA58: ; 0x0224CA58 bl MOD18_0223D658 ldr r1, _0224CA90 ; =0x00000241 mov r2, #1 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank bl MOD18_0223D658 add r4, r0, #0 bl FUN_02031190 @@ -41034,7 +41034,7 @@ _0224D7BC: bl MOD18_0223D658 ldr r1, _0224D80C ; =0x00000245 mov r2, #1 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank mov r0, #4 bl FUN_02025964 add r6, r0, #0 @@ -41468,8 +41468,9 @@ MOD18_0224DB5C: ; 0x0224DB5C pop {r4, pc} thumb_func_end MOD18_0224DB5C - thumb_func_start MOD18_0224DB80 -MOD18_0224DB80: ; 0x0224DB80 + thumb_func_start MOD18_LoadMsgBank +MOD18_LoadMsgBank: ; 0x0224DB80 + ; void MOD18_LoadMsgBank(struct MOD18Work * work, s32 bank, u32 async) push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5, #0x2c] @@ -41492,7 +41493,7 @@ MOD18_0224DB80: ; 0x0224DB80 _0224DBAC: pop {r4, r5, r6, pc} .align 2, 0 - thumb_func_end MOD18_0224DB80 + thumb_func_end MOD18_LoadMsgBank thumb_func_start MOD18_0224DBB0 MOD18_0224DBB0: ; 0x0224DBB0 @@ -42917,7 +42918,7 @@ _0224E5CE: bl MOD18_0223D678 ldr r1, _0224E68C ; =0x00000237 mov r2, #0 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank ldr r4, _0224E698 ; =0x022507D0 add r3, sp, #0x30 add r2, r3, #0 diff --git a/arm9/src/scrcmd_mart.c b/arm9/src/scrcmd_mart.c new file mode 100644 index 00000000..8f49e0e4 --- /dev/null +++ b/arm9/src/scrcmd_mart.c @@ -0,0 +1,395 @@ +#include "global.h"
+#include "constants/items.h"
+#include "scrcmd.h"
+#include "module_06.h"
+
+static const u16 UNK_020F40A6[] = {
+ ITEM_AIR_MAIL,
+ ITEM_HEAL_BALL,
+ 0xFFFF
+};
+
+static const u16 UNK_020F40A0[] = {
+ ITEM_STEEL_MAIL,
+ ITEM_LUXURY_BALL,
+ 0xFFFF
+};
+
+static const u16 UNK_020F40B4[] = {
+ ITEM_TUNNEL_MAIL,
+ ITEM_HEAL_BALL,
+ ITEM_NET_BALL,
+ 0xFFFF
+};
+
+static const u16 UNK_020F40AC[] = {
+ ITEM_BLOOM_MAIL,
+ ITEM_HEAL_BALL,
+ ITEM_NET_BALL,
+ 0xFFFF
+};
+
+static const u16 UNK_020F40BC[] = {
+ ITEM_AIR_MAIL,
+ ITEM_HEAL_BALL,
+ ITEM_NET_BALL,
+ ITEM_NEST_BALL,
+ 0xFFFF
+};
+
+static const u16 UNK_020F40F8[] = {
+ ITEM_HEART_MAIL,
+ ITEM_HEAL_BALL,
+ ITEM_NET_BALL,
+ ITEM_NEST_BALL,
+ 0xFFFF
+};
+
+static const u16 UNK_020F4102[] = {
+ ITEM_AIR_MAIL,
+ ITEM_QUICK_BALL,
+ ITEM_TIMER_BALL,
+ ITEM_REPEAT_BALL,
+ 0xFFFF
+};
+
+static const u16 UNK_020F40DA[] = {
+ ITEM_AIR_MAIL,
+ ITEM_NET_BALL,
+ ITEM_NEST_BALL,
+ ITEM_DUSK_BALL,
+ 0xFFFF
+};
+
+static const u16 UNK_020F40EE[] = {
+ ITEM_AIR_MAIL,
+ ITEM_DUSK_BALL,
+ ITEM_QUICK_BALL,
+ ITEM_TIMER_BALL,
+ 0xFFFF
+};
+
+static const u16 UNK_020F40D0[] = {
+ ITEM_SNOW_MAIL,
+ ITEM_DUSK_BALL,
+ ITEM_QUICK_BALL,
+ ITEM_TIMER_BALL,
+ 0xFFFF
+};
+
+static const u16 UNK_020F40C6[] = {
+ ITEM_HEAL_POWDER,
+ ITEM_ENERGYPOWDER,
+ ITEM_ENERGY_ROOT,
+ ITEM_REVIVAL_HERB,
+ 0xFFFF
+};
+
+static const u16 UNK_020F40E4[] = {
+ ITEM_AIR_MAIL,
+ ITEM_NEST_BALL,
+ ITEM_DUSK_BALL,
+ ITEM_QUICK_BALL,
+ 0xFFFF
+};
+
+static const u16 UNK_020F410C[] = {
+ ITEM_DIVE_BALL,
+ ITEM_PARLYZ_HEAL,
+ ITEM_HYPER_POTION,
+ ITEM_SUPER_POTION,
+ ITEM_FULL_HEAL,
+ 0xFFFF
+};
+
+static const u16 UNK_020F4118[] = {
+ 115,
+ 116,
+ 117,
+ 119,
+ 120,
+ 121,
+ 0xFFFF
+};
+
+static const u16 UNK_020F4126[] = {
+ ITEM_PROTEIN,
+ ITEM_IRON,
+ ITEM_CALCIUM,
+ ITEM_ZINC,
+ ITEM_CARBOS,
+ ITEM_HP_UP,
+ 0xFFFF
+};
+
+static const u16 UNK_020F4134[] = {
+ ITEM_TM38,
+ ITEM_TM25,
+ ITEM_TM14,
+ ITEM_TM22,
+ ITEM_TM52,
+ ITEM_TM15,
+ 0xFFFF
+};
+
+static const u16 UNK_020F41B2[] = {
+ ITEM_DIVE_BALL,
+ ITEM_CALCIUM,
+ ITEM_REVIVE,
+ ITEM_LAVA_COOKIE,
+ ITEM_HEAL_BALL,
+ ITEM_AWAKENING,
+ ITEM_ENERGY_ROOT,
+ 0xFFFF
+};
+
+static const u16 UNK_020F4142[] = {
+ ITEM_ULTRA_BALL,
+ ITEM_REPEAT_BALL,
+ ITEM_FRESH_WATER,
+ ITEM_REVIVAL_HERB,
+ ITEM_SACRED_ASH,
+ ITEM_CHERISH_BALL,
+ ITEM_FULL_RESTORE,
+ 0xFFFF
+};
+
+static const u16 UNK_020F4152[] = {
+ ITEM_FULL_HEAL,
+ ITEM_ENERGYPOWDER,
+ ITEM_MAX_ELIXIR,
+ ITEM_CARBOS,
+ ITEM_NET_BALL,
+ ITEM_DUSK_BALL,
+ ITEM_ICE_HEAL,
+ 0xFFFF
+};
+
+static const u16 UNK_020F4162[] = {
+ ITEM_GREAT_BALL,
+ ITEM_TIMER_BALL,
+ ITEM_SODA_POP,
+ ITEM_ETHER,
+ ITEM_HP_UP,
+ ITEM_POTION,
+ ITEM_MAX_POTION,
+ 0xFFFF
+};
+
+static const u16 UNK_020F4172[] = {
+ ITEM_POKE_BALL,
+ ITEM_HYPER_POTION,
+ ITEM_LEMONADE,
+ ITEM_MAX_ETHER,
+ ITEM_PROTEIN,
+ ITEM_LUXURY_BALL,
+ ITEM_ANTIDOTE,
+ 0xFFFF
+};
+
+static const u16 UNK_020F4182[] = {
+ ITEM_TM83,
+ ITEM_TM17,
+ ITEM_TM54,
+ ITEM_TM20,
+ ITEM_TM33,
+ ITEM_TM16,
+ ITEM_TM70,
+ 0xFFFF
+};
+
+static const u16 UNK_020F4192[] = {
+ ITEM_MASTER_BALL,
+ ITEM_NEST_BALL,
+ ITEM_MAX_REVIVE,
+ ITEM_BERRY_JUICE,
+ ITEM_QUICK_BALL,
+ ITEM_PARLYZ_HEAL,
+ ITEM_HEAL_POWDER,
+ 0xFFFF
+};
+
+static const u16 UNK_020F41A2[] = {
+ ITEM_SUPER_POTION,
+ ITEM_MOOMOO_MILK,
+ ITEM_ELIXIR,
+ ITEM_IRON,
+ ITEM_SAFARI_BALL,
+ ITEM_PREMIER_BALL,
+ ITEM_BURN_HEAL,
+ 0xFFFF
+};
+
+static const u16 UNK_020F41D4[] = {
+ ITEM_X_SPEED,
+ ITEM_X_ATTACK,
+ ITEM_X_DEFENSE,
+ ITEM_GUARD_SPEC_,
+ ITEM_DIRE_HIT,
+ ITEM_X_ACCURACY,
+ ITEM_X_SPECIAL,
+ ITEM_X_SP__DEF,
+ 0xFFFF
+};
+
+static const u16 UNK_020F41C2[] = {
+ ITEM_HEAL_BALL,
+ ITEM_NET_BALL,
+ ITEM_NEST_BALL,
+ ITEM_DUSK_BALL,
+ ITEM_QUICK_BALL,
+ ITEM_TIMER_BALL,
+ ITEM_REPEAT_BALL,
+ ITEM_LUXURY_BALL,
+ 0xFFFF
+};
+
+static const u16 UNK_020F41E6[] = {
+ ITEM_POTION,
+ ITEM_SUPER_POTION,
+ ITEM_HYPER_POTION,
+ ITEM_MAX_POTION,
+ ITEM_REVIVE,
+ ITEM_ANTIDOTE,
+ ITEM_PARLYZ_HEAL,
+ ITEM_BURN_HEAL,
+ ITEM_ICE_HEAL,
+ ITEM_AWAKENING,
+ ITEM_FULL_HEAL,
+ 0xFFFF
+};
+
+static const u16 UNK_020F41FE[] = {
+ ITEM_POKE_BALL,
+ ITEM_GREAT_BALL,
+ ITEM_ULTRA_BALL,
+ ITEM_ESCAPE_ROPE,
+ ITEM_POKE_DOLL,
+ ITEM_REPEL,
+ ITEM_SUPER_REPEL,
+ ITEM_MAX_REPEL,
+ ITEM_GRASS_MAIL,
+ ITEM_FLAME_MAIL,
+ ITEM_BUBBLE_MAIL,
+ ITEM_SPACE_MAIL,
+ 0xFFFF
+};
+
+static const u16 UNK_020F4218[][2] = {
+ // Balls
+ {ITEM_POKE_BALL, 1},
+ {ITEM_GREAT_BALL, 3},
+ {ITEM_ULTRA_BALL, 4},
+ // Potions
+ {ITEM_POTION, 1},
+ {ITEM_SUPER_POTION, 2},
+ {ITEM_HYPER_POTION, 4},
+ {ITEM_MAX_POTION, 5},
+ {ITEM_FULL_RESTORE, 6},
+ // Revives
+ {ITEM_REVIVE, 3},
+ // Status heal
+ {ITEM_ANTIDOTE, 1},
+ {ITEM_PARLYZ_HEAL, 1},
+ {ITEM_AWAKENING, 2},
+ {ITEM_BURN_HEAL, 2},
+ {ITEM_ICE_HEAL, 2},
+ {ITEM_FULL_HEAL, 4},
+ // Dungeon items
+ {ITEM_ESCAPE_ROPE, 2},
+ // Repels
+ {ITEM_REPEL, 2},
+ {ITEM_SUPER_REPEL, 3},
+ {ITEM_MAX_REPEL, 4},
+};
+
+const u16 *UNK_02105DEC[] = {
+ UNK_020F410C,
+ UNK_020F4118,
+};
+
+const u16 *UNK_02105DF4[] = {
+ UNK_020F4192,
+ UNK_020F4142,
+ UNK_020F4162,
+ UNK_020F4172,
+ UNK_020F41A2,
+ UNK_020F4152,
+ UNK_020F41B2,
+};
+
+const u16 *UNK_02105E10[] = {
+ UNK_020F40A6,
+ UNK_020F40B4,
+ UNK_020F40AC,
+ UNK_020F40BC,
+ UNK_020F40C6,
+ UNK_020F40F8,
+ UNK_020F40DA,
+ UNK_020F40E4,
+ UNK_020F41E6,
+ UNK_020F41FE,
+ UNK_020F41D4,
+ UNK_020F4126,
+ UNK_020F4182,
+ UNK_020F4134,
+ UNK_020F40EE,
+ UNK_020F40D0,
+ UNK_020F4102,
+ UNK_020F40A0,
+ UNK_020F41C2,
+};
+
+THUMB_FUNC BOOL FUN_0203FCF4(struct ScriptContext * ctx)
+{
+ u16 whichMart = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ s32 param;
+ u16 martItems[64];
+ u8 martIdx = 0;
+ u8 badgeCount = 0;
+ u8 i;
+
+ for (i = 0; i < 8; i++)
+ {
+ if (PlayerProfile_TestBadgeFlag(Sav2_PlayerData_GetProfileAddr(ctx->unk80->saveBlock2), i) == TRUE)
+ badgeCount++;
+ }
+ switch (badgeCount)
+ {
+ case 0:
+ param = 1;
+ break;
+ case 1:
+ case 2:
+ param = 2;
+ break;
+ case 3:
+ case 4:
+ param = 3;
+ break;
+ case 5:
+ case 6:
+ param = 4;
+ break;
+ case 7:
+ param = 5;
+ break;
+ case 8:
+ param = 6;
+ break;
+ default:
+ param = 1;
+ break;
+ }
+ for (i = 0; i < NELEMS(UNK_020F4218); i++)
+ {
+ if (param >= UNK_020F4218[i][1])
+ {
+ martItems[martIdx] = UNK_020F4218[i][0];
+ martIdx++;
+ }
+ }
+ martItems[martIdx] = 0xFFFF; // terminator
+ MOD06_0223D3D0(ctx->unk74, ctx->unk80, martItems, 0, 0);
+ return TRUE;
+}
|