diff options
33 files changed, 5742 insertions, 7607 deletions
diff --git a/asm/code_807001C.s b/asm/code_807001C.s index 19a3a30..c5f3413 100644 --- a/asm/code_807001C.s +++ b/asm/code_807001C.s @@ -41960,2812 +41960,5 @@ _08084B5C: bx r0 thumb_func_end sub_80848F0 - thumb_func_start DisplayPreFightDialogue -DisplayPreFightDialogue: - push {lr} - ldr r0, _08084B80 - ldr r0, [r0] - ldr r1, _08084B84 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3C - bls _08084B76 - b _08084DDA -_08084B76: - lsls r0, 2 - ldr r1, _08084B88 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08084B80: .4byte gDungeonGlobalData -_08084B84: .4byte 0x00003a0d -_08084B88: .4byte _08084B8C - .align 2, 0 -_08084B8C: - .4byte _08084DDA - .4byte _08084C80 - .4byte _08084C86 - .4byte _08084C8C - .4byte _08084C92 - .4byte _08084C98 - .4byte _08084C9E - .4byte _08084CA4 - .4byte _08084CAA - .4byte _08084CB0 - .4byte _08084CB6 - .4byte _08084CBC - .4byte _08084CC2 - .4byte _08084CC8 - .4byte _08084CCE - .4byte _08084CD4 - .4byte _08084CDA - .4byte _08084CE0 - .4byte _08084CE6 - .4byte _08084CEC - .4byte _08084CF2 - .4byte _08084CF8 - .4byte _08084CFE - .4byte _08084D04 - .4byte _08084D0A - .4byte _08084D10 - .4byte _08084D16 - .4byte _08084D1C - .4byte _08084D22 - .4byte _08084D28 - .4byte _08084D28 - .4byte _08084D2E - .4byte _08084D34 - .4byte _08084D3A - .4byte _08084D40 - .4byte _08084D46 - .4byte _08084D4C - .4byte _08084D52 - .4byte _08084D58 - .4byte _08084D5E - .4byte _08084D64 - .4byte _08084D6A - .4byte _08084D70 - .4byte _08084D76 - .4byte _08084D7C - .4byte _08084D82 - .4byte _08084D88 - .4byte _08084D8E - .4byte _08084D94 - .4byte _08084D9A - .4byte _08084DA0 - .4byte _08084DA6 - .4byte _08084DAC - .4byte _08084DB2 - .4byte _08084DB8 - .4byte _08084DBE - .4byte _08084DC4 - .4byte _08084DCA - .4byte _08084DD0 - .4byte _08084DD6 - .4byte _08084DDA -_08084C80: - bl SkarmonyPreFightDialogue - b _08084DDA -_08084C86: - bl SkarmonyReFightDialogue - b _08084DDA -_08084C8C: - bl sub_8086E40 - b _08084DDA -_08084C92: - bl TeamMeaniePreFightDialogue - b _08084DDA -_08084C98: - bl TeamMeanieReFightDialogue - b _08084DDA -_08084C9E: - bl sub_8087130 - b _08084DDA -_08084CA4: - bl ZapdosPreFightDialogue - b _08084DDA -_08084CAA: - bl ZapdosReFightDialogue - b _08084DDA -_08084CB0: - bl ZapdosPostStoryPreFightDialogue - b _08084DDA -_08084CB6: - bl MoltresPreFightDialogue - b _08084DDA -_08084CBC: - bl MoltresReFightDialogue - b _08084DDA -_08084CC2: - bl MoltresPostStoryPreFightDialogue - b _08084DDA -_08084CC8: - bl ArticunoPreFightDialogue - b _08084DDA -_08084CCE: - bl ArticunoReFightDialogue - b _08084DDA -_08084CD4: - bl ArticunoPostStoryPreFightDialogue - b _08084DDA -_08084CDA: - bl sub_8088608 - b _08084DDA -_08084CE0: - bl sub_8088618 - b _08084DDA -_08084CE6: - bl GroudonPreFightDialogue - b _08084DDA -_08084CEC: - bl GroudonReFightDialogue - b _08084DDA -_08084CF2: - bl GroudonPostStoryPreFightDialogue - b _08084DDA -_08084CF8: - bl MagmaCavernMidDialogue - b _08084DDA -_08084CFE: - bl sub_8089168 - b _08084DDA -_08084D04: - bl RayquazaPreFightDialogue - b _08084DDA -_08084D0A: - bl RayquazaReFightDialogue - b _08084DDA -_08084D10: - bl RayquazaPostStoryPreFightDialogue - b _08084DDA -_08084D16: - bl sub_80897F0 - b _08084DDA -_08084D1C: - bl sub_8089878 - b _08084DDA -_08084D22: - bl sub_80898E4 - b _08084DDA -_08084D28: - bl MewtwoPreFightDialogue - b _08084DDA -_08084D2E: - bl MewtwoPreFightDialogue1 - b _08084DDA -_08084D34: - bl EnteiPreFightDialogue - b _08084DDA -_08084D3A: - bl EnteiPreFightDialogue1 - b _08084DDA -_08084D40: - bl EnteiPreFightDialogue2 - b _08084DDA -_08084D46: - bl RaikouPreFightDialogue - b _08084DDA -_08084D4C: - bl RaikouPreFightDialogue1 - b _08084DDA -_08084D52: - bl RaikouPreFightDialogue2 - b _08084DDA -_08084D58: - bl SuicunePreFightDialogue - b _08084DDA -_08084D5E: - bl SuicunePreFightDialogue1 - b _08084DDA -_08084D64: - bl SuicunePreFightDialogue2 - b _08084DDA -_08084D6A: - bl HoOhPreFightDialogue - b _08084DDA -_08084D70: - bl HoOhPreFightDialogue1 - b _08084DDA -_08084D76: - bl LatiosPreFightDialogue - b _08084DDA -_08084D7C: - bl LatiosReFightDialogue - b _08084DDA -_08084D82: - bl sub_808AC3C - b _08084DDA -_08084D88: - bl RegirockPreFightDialogue - b _08084DDA -_08084D8E: - bl RegicePreFightDialogue - b _08084DDA -_08084D94: - bl RegisteelPreFightDialogue - b _08084DDA -_08084D9A: - bl JirachiPreFightDialogue - b _08084DDA -_08084DA0: - bl JirachiPreFightDialogue1 - b _08084DDA -_08084DA6: - bl LugiaPreFightDialogue - b _08084DDA -_08084DAC: - bl KyogrePreFightDialogue - b _08084DDA -_08084DB2: - bl DeoxysPreFightDialogue - b _08084DDA -_08084DB8: - bl CelebiJoinDialogue - b _08084DDA -_08084DBE: - bl sub_808C998 - b _08084DDA -_08084DC4: - bl MedichamRescueDialogue - b _08084DDA -_08084DCA: - bl DummyFightDialogue - b _08084DDA -_08084DD0: - bl SmeargleRescueDialogue - b _08084DDA -_08084DD6: - bl sub_808CD9C -_08084DDA: - bl sub_8085764 - bl sub_80857B8 - ldr r0, _08084DF8 - ldr r0, [r0] - ldr r1, _08084DFC - adds r0, r1 - movs r1, 0 - strb r1, [r0] - bl sub_8097FF8 - pop {r0} - bx r0 - .align 2, 0 -_08084DF8: .4byte gDungeonGlobalData -_08084DFC: .4byte 0x0001356c - thumb_func_end DisplayPreFightDialogue - - thumb_func_start sub_8084E00 -sub_8084E00: - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r3, r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - cmp r3, 0 - bne _08084E12 - b _0808512E -_08084E12: - ldr r1, _08084E30 - ldr r0, [r1] - ldr r2, _08084E34 - adds r0, r2 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0x3C - bls _08084E24 - b _0808511A -_08084E24: - lsls r0, 2 - ldr r1, _08084E38 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08084E30: .4byte gDungeonGlobalData -_08084E34: .4byte 0x00003a0d -_08084E38: .4byte _08084E3C - .align 2, 0 -_08084E3C: - .4byte _0808511A - .4byte _08084F30 - .4byte _08084F30 - .4byte _0808511A - .4byte _08084F44 - .4byte _08084F44 - .4byte _0808511A - .4byte _08084F58 - .4byte _08084F58 - .4byte _08084F58 - .4byte _08084F6C - .4byte _08084F6C - .4byte _08084F6C - .4byte _08084F80 - .4byte _08084F80 - .4byte _08084F80 - .4byte _0808511A - .4byte _0808511A - .4byte _08084F94 - .4byte _08084F94 - .4byte _08084F94 - .4byte _0808511A - .4byte _0808511A - .4byte _08084FA8 - .4byte _08084FA8 - .4byte _08084FA8 - .4byte _08084FBC - .4byte _08084FBC - .4byte _0808511A - .4byte _08084FD4 - .4byte _08084FD4 - .4byte _08084FD4 - .4byte _08084FE8 - .4byte _08084FE8 - .4byte _08084FE8 - .4byte _08084FFC - .4byte _08084FFC - .4byte _08084FFC - .4byte _08085010 - .4byte _08085010 - .4byte _08085010 - .4byte _08085024 - .4byte _08085024 - .4byte _08085038 - .4byte _08085038 - .4byte _08085038 - .4byte _0808504C - .4byte _08085064 - .4byte _0808507C - .4byte _08085094 - .4byte _08085094 - .4byte _080850AC - .4byte _080850C4 - .4byte _080850DC - .4byte _080850F4 - .4byte _0808510C - .4byte _0808511A - .4byte _0808511A - .4byte _0808511A - .4byte _0808511A - .4byte _0808511A -_08084F30: - ldr r0, [r2] - ldr r1, _08084F40 - adds r0, r1 - ldrb r1, [r0] - adds r0, r3, 0 - bl sub_8086BDC - b _0808511A - .align 2, 0 -_08084F40: .4byte 0x00003a0d -_08084F44: - ldr r0, [r2] - ldr r2, _08084F54 - adds r0, r2 - ldrb r1, [r0] - adds r0, r3, 0 - bl sub_8086F54 - b _0808511A - .align 2, 0 -_08084F54: .4byte 0x00003a0d -_08084F58: - ldr r0, [r2] - ldr r1, _08084F68 - adds r0, r1 - ldrb r1, [r0] - adds r0, r3, 0 - bl sub_8087334 - b _0808511A - .align 2, 0 -_08084F68: .4byte 0x00003a0d -_08084F6C: - ldr r0, [r2] - ldr r2, _08084F7C - adds r0, r2 - ldrb r1, [r0] - adds r0, r3, 0 - bl sub_80878F4 - b _0808511A - .align 2, 0 -_08084F7C: .4byte 0x00003a0d -_08084F80: - ldr r0, [r2] - ldr r1, _08084F90 - adds r0, r1 - ldrb r1, [r0] - adds r0, r3, 0 - bl sub_8088088 - b _0808511A - .align 2, 0 -_08084F90: .4byte 0x00003a0d -_08084F94: - ldr r0, [r2] - ldr r2, _08084FA4 - adds r0, r2 - ldrb r1, [r0] - adds r0, r3, 0 - bl sub_8088818 - b _0808511A - .align 2, 0 -_08084FA4: .4byte 0x00003a0d -_08084FA8: - ldr r0, [r2] - ldr r1, _08084FB8 - adds r0, r1 - ldrb r1, [r0] - adds r0, r3, 0 - bl sub_80893B4 - b _0808511A - .align 2, 0 -_08084FB8: .4byte 0x00003a0d -_08084FBC: - ldr r0, [r2] - ldr r2, _08084FD0 - adds r0, r2 - ldrb r2, [r0] - adds r0, r4, 0 - adds r1, r3, 0 - bl sub_8089788 - b _0808511A - .align 2, 0 -_08084FD0: .4byte 0x00003a0d -_08084FD4: - ldr r0, [r2] - ldr r1, _08084FE4 - adds r0, r1 - ldrb r1, [r0] - adds r0, r3, 0 - bl sub_8089A00 - b _0808511A - .align 2, 0 -_08084FE4: .4byte 0x00003a0d -_08084FE8: - ldr r0, [r2] - ldr r2, _08084FF8 - adds r0, r2 - ldrb r1, [r0] - adds r0, r3, 0 - bl sub_8089CFC - b _0808511A - .align 2, 0 -_08084FF8: .4byte 0x00003a0d -_08084FFC: - ldr r0, [r2] - ldr r1, _0808500C - adds r0, r1 - ldrb r1, [r0] - adds r0, r3, 0 - bl sub_8089FF0 - b _0808511A - .align 2, 0 -_0808500C: .4byte 0x00003a0d -_08085010: - ldr r0, [r2] - ldr r2, _08085020 - adds r0, r2 - ldrb r1, [r0] - adds r0, r3, 0 - bl sub_808A36C - b _0808511A - .align 2, 0 -_08085020: .4byte 0x00003a0d -_08085024: - ldr r0, [r2] - ldr r1, _08085034 - adds r0, r1 - ldrb r1, [r0] - adds r0, r3, 0 - bl sub_808A6E8 - b _0808511A - .align 2, 0 -_08085034: .4byte 0x00003a0d -_08085038: - ldr r0, [r2] - ldr r2, _08085048 - adds r0, r2 - ldrb r1, [r0] - adds r0, r3, 0 - bl sub_808AAF0 - b _0808511A - .align 2, 0 -_08085048: .4byte 0x00003a0d -_0808504C: - ldr r0, [r2] - ldr r1, _08085060 - adds r0, r1 - ldrb r1, [r0] - adds r2, r4, 0x4 - adds r0, r3, 0 - bl sub_808AE54 - b _0808511A - .align 2, 0 -_08085060: .4byte 0x00003a0d -_08085064: - ldr r0, [r2] - ldr r2, _08085078 - adds r0, r2 - ldrb r1, [r0] - adds r2, r4, 0x4 - adds r0, r3, 0 - bl sub_808AEC8 - b _0808511A - .align 2, 0 -_08085078: .4byte 0x00003a0d -_0808507C: - ldr r0, [r2] - ldr r1, _08085090 - adds r0, r1 - ldrb r1, [r0] - adds r2, r4, 0x4 - adds r0, r3, 0 - bl sub_808AF3C - b _0808511A - .align 2, 0 -_08085090: .4byte 0x00003a0d -_08085094: - ldr r0, [r2] - ldr r2, _080850A8 - adds r0, r2 - ldrb r1, [r0] - adds r0, r3, 0 - adds r2, r5, 0 - bl sub_808B3E4 - b _0808511A - .align 2, 0 -_080850A8: .4byte 0x00003a0d -_080850AC: - ldr r0, [r2] - ldr r1, _080850C0 - adds r0, r1 - ldrb r1, [r0] - adds r0, r3, 0 - adds r2, r5, 0 - bl sub_808BE70 - b _0808511A - .align 2, 0 -_080850C0: .4byte 0x00003a0d -_080850C4: - ldr r0, [r2] - ldr r2, _080850D8 - adds r0, r2 - ldrb r1, [r0] - adds r0, r3, 0 - adds r2, r5, 0 - bl sub_808C1A4 - b _0808511A - .align 2, 0 -_080850D8: .4byte 0x00003a0d -_080850DC: - ldr r0, [r2] - ldr r1, _080850F0 - adds r0, r1 - ldrb r1, [r0] - adds r0, r3, 0 - adds r2, r5, 0 - bl sub_808C414 - b _0808511A - .align 2, 0 -_080850F0: .4byte 0x00003a0d -_080850F4: - ldr r0, [r2] - ldr r2, _08085108 - adds r0, r2 - ldrb r1, [r0] - adds r0, r3, 0 - adds r2, r5, 0 - bl nullsub_100 - b _0808511A - .align 2, 0 -_08085108: .4byte 0x00003a0d -_0808510C: - ldr r0, [r2] - ldr r1, _08085134 - adds r0, r1 - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_808C948 -_0808511A: - cmp r5, 0 - bne _0808512E - ldr r0, _08085138 - ldr r0, [r0] - ldrb r0, [r0, 0x2] - cmp r0, 0 - beq _0808512E - ldr r0, _0808513C - bl sub_8083E88 -_0808512E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08085134: .4byte 0x00003a0d -_08085138: .4byte gDungeonGlobalData -_0808513C: .4byte 0x000003e7 - thumb_func_end sub_8084E00 - - thumb_func_start sub_8085140 -sub_8085140: - push {lr} - ldr r1, _08085160 - ldr r0, [r1] - ldr r2, _08085164 - adds r0, r2 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0x3C - bls _08085154 - b _08085294 -_08085154: - lsls r0, 2 - ldr r1, _08085168 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08085160: .4byte gDungeonGlobalData -_08085164: .4byte 0x00003a0d -_08085168: .4byte _0808516C - .align 2, 0 -_0808516C: - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085260 - .4byte _08085274 - .4byte _08085288 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 - .4byte _08085294 -_08085260: - ldr r0, [r2] - ldr r1, _08085270 - adds r0, r1 - ldrb r0, [r0] - bl sub_808AFB0 - b _08085294 - .align 2, 0 -_08085270: .4byte 0x00003a0d -_08085274: - ldr r0, [r2] - ldr r2, _08085284 - adds r0, r2 - ldrb r0, [r0] - bl sub_808B030 - b _08085294 - .align 2, 0 -_08085284: .4byte 0x00003a0d -_08085288: - ldr r0, [r2] - ldr r1, _08085298 - adds r0, r1 - ldrb r0, [r0] - bl sub_808B0B0 -_08085294: - pop {r0} - bx r0 - .align 2, 0 -_08085298: .4byte 0x00003a0d - thumb_func_end sub_8085140 - - thumb_func_start sub_808529C -sub_808529C: - push {lr} - lsls r0, 16 - asrs r1, r0, 16 - adds r2, r1, 0 - movs r3, 0x40 - movs r0, 0x86 - lsls r0, 1 - cmp r1, r0 - beq _08085348 - cmp r1, r0 - bgt _080852E0 - cmp r1, 0x90 - beq _08085334 - cmp r1, 0x90 - bgt _080852CE - cmp r1, 0x38 - beq _08085354 - cmp r1, 0x38 - bgt _080852C8 - cmp r1, 0x17 - beq _08085328 - b _0808535A -_080852C8: - cmp r1, 0x5E - beq _08085328 - b _0808535A -_080852CE: - cmp r1, 0x92 - beq _08085330 - cmp r1, 0x92 - blt _0808532C - cmp r1, 0x96 - beq _08085340 - cmp r1, 0xFC - beq _08085324 - b _0808535A -_080852E0: - ldr r0, _08085304 - cmp r1, r0 - beq _08085358 - cmp r1, r0 - bgt _08085308 - subs r0, 0x87 - cmp r1, r0 - beq _0808534C - cmp r1, r0 - blt _08085344 - adds r0, 0x5 - cmp r1, r0 - beq _08085350 - adds r0, 0x3A - cmp r1, r0 - beq _08085328 - b _0808535A - .align 2, 0 -_08085304: .4byte 0x00000195 -_08085308: - ldr r0, _08085320 - cmp r2, r0 - beq _08085358 - cmp r2, r0 - blt _08085358 - adds r0, 0x4 - cmp r2, r0 - beq _08085338 - adds r0, 0x1 - cmp r2, r0 - beq _0808533C - b _0808535A - .align 2, 0 -_08085320: .4byte 0x00000197 -_08085324: - movs r3, 0x1 - b _0808535A -_08085328: - movs r3, 0x3 - b _0808535A -_0808532C: - movs r3, 0x5 - b _0808535A -_08085330: - movs r3, 0x7 - b _0808535A -_08085334: - movs r3, 0x9 - b _0808535A -_08085338: - movs r3, 0xC - b _0808535A -_0808533C: - movs r3, 0xF - b _0808535A -_08085340: - movs r3, 0x13 - b _0808535A -_08085344: - movs r3, 0x15 - b _0808535A -_08085348: - movs r3, 0x17 - b _0808535A -_0808534C: - movs r3, 0x19 - b _0808535A -_08085350: - movs r3, 0x1A - b _0808535A -_08085354: - movs r3, 0x11 - b _0808535A -_08085358: - movs r3, 0x1D -_0808535A: - cmp r3, 0x40 - beq _0808536E - adds r0, r3, 0 - bl sub_8098100 - lsls r0, 24 - cmp r0, 0 - bne _0808536E - movs r0, 0 - b _08085370 -_0808536E: - movs r0, 0x1 -_08085370: - pop {r1} - bx r1 - thumb_func_end sub_808529C - - thumb_func_start sub_8085374 -sub_8085374: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - movs r7, 0 - movs r6, 0 - bl sub_808D3F8 - movs r2, 0x8 - ldrsh r1, [r0, r2] - mov r8, r1 - movs r5, 0 -_0808538E: - ldr r0, _08085444 - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _08085448 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080853BE - ldr r1, [r4, 0x70] - ldrb r0, [r1, 0x7] - cmp r0, 0 - beq _080853B2 - adds r7, r4, 0 -_080853B2: - adds r0, r1, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x41 - bne _080853BE - adds r6, r4, 0 -_080853BE: - adds r5, 0x1 - cmp r5, 0x3 - ble _0808538E - cmp r7, 0 - beq _0808546E - cmp r6, 0 - bne _0808546E - ldr r0, _08085444 - ldr r0, [r0] - ldr r1, _0808544C - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0808546E - movs r6, 0 - ldr r0, _08085450 - ldr r4, [r0] - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0x63 - beq _0808546E - mov r5, sp - movs r0, 0 - mov r9, r0 -_080853EE: - ldrh r0, [r7, 0x4] - adds r0, r4 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08085454 - ands r4, r1 - orrs r4, r0 - asrs r1, r4, 16 - ldrh r2, [r7, 0x6] - adds r1, r2 - lsls r1, 16 - ldr r0, _08085458 - ands r4, r0 - orrs r4, r1 - lsls r0, r4, 16 - asrs r0, 16 - asrs r1, r4, 16 - bl sub_804954C - adds r1, r0, 0 - mov r0, r8 - bl sub_807034C - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _0808545C - mov r0, r8 - strh r0, [r5] - movs r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0x2 - strb r0, [r5, 0x2] - str r4, [sp, 0xC] - str r1, [sp, 0x4] - mov r1, r9 - strb r1, [r5, 0x10] - mov r0, sp - movs r1, 0x1 - bl sub_806B7F8 - b _0808546E - .align 2, 0 -_08085444: .4byte gDungeonGlobalData -_08085448: .4byte 0x0001357c -_0808544C: .4byte 0x0000065c -_08085450: .4byte gUnknown_80F4598 -_08085454: .4byte 0xffff0000 -_08085458: .4byte 0x0000ffff -_0808545C: - adds r6, 0x1 - ldr r0, _0808547C - lsls r1, r6, 2 - adds r1, r0 - ldr r4, [r1] - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x63 - bne _080853EE -_0808546E: - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0808547C: .4byte gUnknown_80F4598 - thumb_func_end sub_8085374 - - thumb_func_start sub_8085480 -sub_8085480: - push {lr} - bl sub_8083600 - pop {r1} - bx r1 - thumb_func_end sub_8085480 - - thumb_func_start sub_808548C -sub_808548C: - push {r4,r5,lr} - movs r5, 0 -_08085490: - ldr r0, _080854B8 - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _080854BC - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080854C0 - ldr r0, [r4, 0x70] - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x41 - bne _080854C0 - adds r0, r4, 0 - b _080854CC - .align 2, 0 -_080854B8: .4byte gDungeonGlobalData -_080854BC: .4byte 0x0001357c -_080854C0: - adds r5, 0x1 - cmp r5, 0x3 - ble _08085490 - movs r0, 0x2 - bl sub_8085680 -_080854CC: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_808548C - - thumb_func_start sub_80854D4 -sub_80854D4: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x20 - movs r6, 0 - movs r5, 0 - add r0, sp, 0x10 - mov r8, r0 - mov r7, sp -_080854E6: - ldr r0, _080855D8 - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _080855DC - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08085504 - stm r7!, {r4} - adds r6, 0x1 -_08085504: - adds r5, 0x1 - cmp r5, 0x3 - ble _080854E6 - cmp r6, 0x3 - bgt _0808551C - movs r1, 0 - lsls r0, r6, 2 - add r0, sp -_08085514: - stm r0!, {r1} - adds r6, 0x1 - cmp r6, 0x3 - ble _08085514 -_0808551C: - movs r6, 0 - movs r4, 0 - mov r2, sp - mov r3, r8 - movs r5, 0x3 -_08085526: - ldr r1, [r2] - cmp r1, 0 - beq _0808553A - ldr r0, [r1, 0x70] - ldrb r0, [r0, 0x7] - cmp r0, 0 - beq _0808553A - str r4, [r2] - stm r3!, {r1} - adds r6, 0x1 -_0808553A: - adds r2, 0x4 - subs r5, 0x1 - cmp r5, 0 - bge _08085526 - movs r4, 0 - mov r2, sp - lsls r0, r6, 2 - mov r1, r8 - adds r3, r0, r1 - movs r5, 0x3 -_0808554E: - ldr r1, [r2] - cmp r1, 0 - beq _08085564 - ldr r0, [r1, 0x70] - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x41 - bne _08085564 - str r4, [r2] - stm r3!, {r1} - adds r6, 0x1 -_08085564: - adds r2, 0x4 - subs r5, 0x1 - cmp r5, 0 - bge _0808554E - movs r3, 0 - mov r2, sp - lsls r0, r6, 2 - add r0, r8 - movs r5, 0x3 -_08085576: - ldr r1, [r2] - cmp r1, 0 - beq _08085582 - str r3, [r2] - stm r0!, {r1} - adds r6, 0x1 -_08085582: - adds r2, 0x4 - subs r5, 0x1 - cmp r5, 0 - bge _08085576 - cmp r6, 0x3 - bgt _0808559C - movs r1, 0 - lsls r0, r6, 2 - add r0, r8 -_08085594: - stm r0!, {r1} - adds r6, 0x1 - cmp r6, 0x3 - ble _08085594 -_0808559C: - movs r5, 0 - mov r4, r8 -_080855A0: - lsls r1, r5, 2 - ldr r3, [r4] - cmp r3, 0 - beq _080855C4 - ldr r0, _080855D8 - ldr r0, [r0] - adds r0, r1 - ldr r2, _080855E0 - adds r1, r0, r2 - movs r6, 0 - ldrsh r1, [r1, r6] - adds r2, 0x2 - adds r0, r2 - movs r6, 0 - ldrsh r2, [r0, r6] - adds r0, r3, 0 - bl sub_80856C8 -_080855C4: - adds r4, 0x4 - adds r5, 0x1 - cmp r5, 0x3 - ble _080855A0 - add sp, 0x20 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080855D8: .4byte gDungeonGlobalData -_080855DC: .4byte 0x0001357c -_080855E0: .4byte 0x0000e220 - thumb_func_end sub_80854D4 - - thumb_func_start sub_80855E4 -sub_80855E4: - push {r4-r7,lr} - adds r6, r0, 0 - movs r7, 0 - movs r5, 0 -_080855EC: - ldr r0, _08085634 - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _08085638 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08085618 - ldr r0, [r4, 0x70] - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x41 - bne _08085612 - movs r7, 0x1 -_08085612: - adds r0, r4, 0 - bl _call_via_r6 -_08085618: - adds r5, 0x1 - cmp r5, 0x3 - ble _080855EC - cmp r7, 0 - bne _0808562E - bl sub_808548C - cmp r0, 0 - beq _0808562E - bl _call_via_r6 -_0808562E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08085634: .4byte gDungeonGlobalData -_08085638: .4byte 0x0001357c - thumb_func_end sub_80855E4 - - thumb_func_start sub_808563C -sub_808563C: - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 -_08085642: - ldr r0, _08085678 - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _0808567C - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _0808566C - ldr r0, [r4, 0x70] - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x41 - beq _0808566C - adds r0, r4, 0 - bl _call_via_r6 -_0808566C: - adds r5, 0x1 - cmp r5, 0xF - ble _08085642 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08085678: .4byte gDungeonGlobalData -_0808567C: .4byte 0x0001358c - thumb_func_end sub_808563C - - thumb_func_start sub_8085680 -sub_8085680: - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 -_08085688: - ldr r0, _080856B0 - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _080856B4 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080856B8 - ldr r0, [r4, 0x70] - adds r0, 0xA4 - ldrb r0, [r0] - cmp r0, r6 - bne _080856B8 - adds r0, r4, 0 - b _080856C0 - .align 2, 0 -_080856B0: .4byte gDungeonGlobalData -_080856B4: .4byte 0x000135cc -_080856B8: - adds r5, 0x1 - cmp r5, 0x13 - ble _08085688 - movs r0, 0 -_080856C0: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8085680 - - thumb_func_start sub_80856C8 -sub_80856C8: - push {r4,lr} - adds r4, r0, 0 - movs r3, 0x1 - bl sub_80694C0 - adds r0, r4, 0 - movs r1, 0 - bl sub_804535C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80856C8 - - thumb_func_start sub_80856E0 -sub_80856E0: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r7, r1, 0 - ldr r0, [r6, 0x70] - mov r8, r0 - adds r0, r6, 0 - movs r1, 0x6 - adds r2, r7, 0 - bl sub_80861D4 - movs r5, 0xBA - lsls r5, 1 - add r5, r8 - movs r4, 0x4 -_08085700: - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 2 - adds r0, r1 - str r0, [r5] - movs r0, 0x46 - bl sub_803E46C - subs r4, 0x1 - cmp r4, 0 - bge _08085700 - movs r1, 0x7 - adds r0, r7, 0 - ands r0, r1 - mov r1, r8 - adds r1, 0x46 - strb r0, [r1] - adds r0, r6, 0 - adds r1, r7, 0 - bl sub_806CE68 - movs r5, 0xBA - lsls r5, 1 - add r5, r8 - movs r4, 0x4 -_08085732: - ldr r0, [r5] - ldr r1, _08085760 - adds r0, r1 - str r0, [r5] - movs r0, 0x46 - bl sub_803E46C - subs r4, 0x1 - cmp r4, 0 - bge _08085732 - movs r1, 0xBA - lsls r1, 1 - add r1, r8 - movs r0, 0 - str r0, [r1] - movs r0, 0x46 - bl sub_803E46C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08085760: .4byte 0xfffffe00 - thumb_func_end sub_80856E0 - - thumb_func_start sub_8085764 -sub_8085764: - push {r4,r5,lr} - sub sp, 0x74 - mov r0, sp - bl sub_80457DC - movs r5, 0 -_08085770: - ldr r0, _080857AC - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _080857B0 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _0808579E - ldr r0, [r4, 0x70] - adds r0, 0xA4 - ldrb r0, [r0] - cmp r0, 0x2 - bne _0808579E - adds r0, r4, 0 - ldr r1, _080857B4 - mov r2, sp - bl sub_8068FE0 -_0808579E: - adds r5, 0x1 - cmp r5, 0xF - ble _08085770 - add sp, 0x74 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080857AC: .4byte gDungeonGlobalData -_080857B0: .4byte 0x0001358c -_080857B4: .4byte 0x00000207 - thumb_func_end sub_8085764 - - thumb_func_start sub_80857B8 -sub_80857B8: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r7, 0 - ldr r0, _08085854 - mov r9, r0 - ldr r1, _08085858 - mov r8, r1 -_080857CA: - mov r2, r9 - ldr r0, [r2] - lsls r1, r7, 2 - ldr r3, _0808585C - adds r0, r3 - adds r0, r1 - ldr r6, [r0] - adds r0, r6, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08085840 - ldr r5, [r6, 0x70] - mov r0, r9 - ldr r1, [r0] - ldrb r0, [r1, 0x4] - cmp r0, 0 - bne _08085840 - ldrb r4, [r1, 0x2] - cmp r4, 0 - bne _08085840 - adds r0, r6, 0 - movs r1, 0 - bl sub_804535C - movs r1, 0xAE - lsls r1, 1 - adds r0, r5, r1 - strb r4, [r0] - adds r1, r5, 0 - adds r1, 0xFE - movs r0, 0x63 - strb r0, [r1] - adds r2, r5, 0 - adds r2, 0x46 - ldrb r0, [r2] - lsls r0, 2 - add r0, r8 - ldrh r1, [r6, 0x4] - ldrh r0, [r0] - adds r1, r0 - movs r3, 0xB6 - lsls r3, 1 - adds r0, r5, r3 - strh r1, [r0] - ldrb r0, [r2] - lsls r0, 2 - add r0, r8 - ldrh r1, [r6, 0x6] - ldrh r0, [r0, 0x2] - adds r1, r0 - adds r3, 0x2 - adds r0, r5, r3 - strh r1, [r0] - ldrb r1, [r2] - adds r0, r6, 0 - bl sub_806CE68 -_08085840: - adds r7, 0x1 - cmp r7, 0x13 - ble _080857CA - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08085854: .4byte gDungeonGlobalData -_08085858: .4byte gUnknown_80F4448 -_0808585C: .4byte 0x000135cc - thumb_func_end sub_80857B8 - - thumb_func_start sub_8085860 -sub_8085860: - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - bl sub_803F4A0 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 11 - movs r1, 0xC0 - lsls r1, 4 - adds r0, r1 - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 11 - movs r2, 0x80 - lsls r2, 5 - adds r1, r2 - bl sub_803F878 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8085860 - - thumb_func_start sub_8085890 -sub_8085890: - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - bl sub_803F4A0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_803F878 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8085890 - - thumb_func_start sub_80858AC -sub_80858AC: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - adds r4, r1, 0 - bl sub_803F994 - adds r6, r0, 0 - bl sub_803F9B0 - adds r5, r0, 0 - ldr r0, [r7] - subs r0, r6 - adds r1, r4, 0 - bl __divsi3 - mov r9, r0 - ldr r0, [r7, 0x4] - subs r0, r5 - adds r1, r4, 0 - bl __divsi3 - mov r8, r0 - movs r0, 0 - bl sub_803F4A0 - cmp r4, 0 - ble _080858FE -_080858E6: - add r6, r9 - add r5, r8 - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_803F878 - movs r0, 0x46 - bl sub_803E46C - subs r4, 0x1 - cmp r4, 0 - bne _080858E6 -_080858FE: - ldr r0, [r7] - ldr r1, [r7, 0x4] - bl sub_803F878 - movs r0, 0x46 - bl sub_803E46C - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80858AC - - thumb_func_start sub_8085918 -sub_8085918: - push {r4,lr} - ldr r3, [r0, 0x70] - movs r4, 0x7 - adds r2, r1, 0 - ands r2, r4 - adds r3, 0x46 - strb r2, [r3] - bl sub_806CE68 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8085918 - - thumb_func_start sub_8085930 -sub_8085930: - push {r4-r7,lr} - adds r6, r0, 0 - movs r5, 0 - movs r0, 0x7 - adds r7, r6, 0 - ands r7, r0 -_0808593C: - ldr r0, _0808596C - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _08085970 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08085982 - cmp r6, 0x7 - ble _08085974 - movs r0, 0x8 - bl RandomCapped - adds r1, r0, 0 - adds r0, r4, 0 - bl sub_806CE68 - b _08085982 - .align 2, 0 -_0808596C: .4byte gDungeonGlobalData -_08085970: .4byte 0x0001357c -_08085974: - ldr r0, [r4, 0x70] - adds r0, 0x46 - strb r7, [r0] - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_806CE68 -_08085982: - adds r5, 0x1 - cmp r5, 0x3 - ble _0808593C - movs r5, 0 - movs r0, 0x7 - adds r7, r6, 0 - ands r7, r0 -_08085990: - ldr r0, _080859CC - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _080859D0 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080859E2 - ldr r1, [r4, 0x70] - adds r0, r1, 0 - adds r0, 0xA4 - ldrb r0, [r0] - cmp r0, 0x2 - bne _080859E2 - cmp r6, 0x7 - ble _080859D4 - movs r0, 0x8 - bl RandomCapped - adds r1, r0, 0 - adds r0, r4, 0 - bl sub_806CE68 - b _080859E2 - .align 2, 0 -_080859CC: .4byte gDungeonGlobalData -_080859D0: .4byte 0x0001358c -_080859D4: - adds r0, r1, 0 - adds r0, 0x46 - strb r7, [r0] - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_806CE68 -_080859E2: - adds r5, 0x1 - cmp r5, 0xF - ble _08085990 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8085930 - - thumb_func_start sub_80859F0 -sub_80859F0: - push {r4-r7,lr} - adds r6, r0, 0 - movs r5, 0 - movs r0, 0x7 - adds r7, r6, 0 - ands r7, r0 -_080859FC: - ldr r0, _08085A2C - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _08085A30 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08085A42 - cmp r6, 0x7 - ble _08085A34 - movs r0, 0x8 - bl RandomCapped - adds r1, r0, 0 - adds r0, r4, 0 - bl sub_806CE68 - b _08085A42 - .align 2, 0 -_08085A2C: .4byte gDungeonGlobalData -_08085A30: .4byte 0x0001358c -_08085A34: - ldr r0, [r4, 0x70] - adds r0, 0x46 - strb r7, [r0] - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_806CE68 -_08085A42: - adds r5, 0x1 - cmp r5, 0xF - ble _080859FC - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80859F0 - - thumb_func_start sub_8085A50 -sub_8085A50: - push {lr} - ldr r0, [r0, 0x70] - adds r0, 0xA4 - ldrb r0, [r0] - cmp r0, 0x24 - bhi _08085B04 - lsls r0, 2 - ldr r1, _08085A68 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08085A68: .4byte _08085A6C - .align 2, 0 -_08085A6C: - .4byte _08085B04 - .4byte _08085B00 - .4byte _08085B04 - .4byte _08085B00 - .4byte _08085B04 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B04 - .4byte _08085B04 - .4byte _08085B04 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 - .4byte _08085B00 -_08085B00: - movs r0, 0x1 - b _08085B06 -_08085B04: - movs r0, 0 -_08085B06: - pop {r1} - bx r1 - thumb_func_end sub_8085A50 - - thumb_func_start sub_8085B0C -sub_8085B0C: - push {r4,r5,lr} - sub sp, 0x1C - adds r5, r0, 0 - ldr r1, _08085B48 - mov r0, sp - movs r2, 0x19 - bl memcpy - mov r0, sp - ldrb r0, [r0] - cmp r0, 0 - beq _08085B3E - mov r4, sp -_08085B26: - ldrb r1, [r4] - adds r0, r5, 0 - bl sub_8085918 - movs r0, 0x6 - movs r1, 0x46 - bl sub_803E708 - adds r4, 0x1 - ldrb r0, [r4] - cmp r0, 0 - bne _08085B26 -_08085B3E: - add sp, 0x1C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08085B48: .4byte gUnknown_8107358 - thumb_func_end sub_8085B0C - - thumb_func_start sub_8085B4C -sub_8085B4C: - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _08085B7C - str r3, [r0] - cmp r3, 0 - ble _08085B76 - movs r6, 0x1 - adds r4, r1, 0 - adds r1, r5, 0 -_08085B5E: - strb r6, [r1] - ldm r2!, {r0} - str r0, [r1, 0x4] - ldm r4!, {r0} - str r0, [r1, 0xC] - movs r5, 0x4 - ldrsh r0, [r0, r5] - str r0, [r1, 0x8] - adds r1, 0x10 - subs r3, 0x1 - cmp r3, 0 - bne _08085B5E -_08085B76: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08085B7C: .4byte gUnknown_202F3D8 - thumb_func_end sub_8085B4C - - thumb_func_start sub_8085B80 -sub_8085B80: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r1, r0, 0 - movs r0, 0 - mov r8, r0 - movs r7, 0 - ldr r0, _08085BE4 - ldr r0, [r0] - cmp r8, r0 - bge _08085C3E - adds r5, r1, 0 -_08085B98: - ldr r6, [r5, 0x4] - ldr r2, [r6, 0x70] - adds r3, r2, 0 - ldr r4, [r5, 0xC] - ldrb r0, [r5] - cmp r0, 0 - beq _08085C32 - movs r1, 0x1 - mov r8, r1 - ldr r0, [r5, 0x8] - cmp r0, 0 - bne _08085C08 - adds r4, 0x8 - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08085BE8 - strb r0, [r5] - ldrb r1, [r4] - movs r0, 0x7 - ands r0, r1 - adds r1, r2, 0 - adds r1, 0x46 - strb r0, [r1] - movs r3, 0 - ldrsh r2, [r4, r3] - adds r0, r6, 0 - movs r1, 0x7 - bl sub_806CDD4 - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r3, 0xC - ldrsh r2, [r4, r3] - adds r0, r6, 0 - bl sub_80856C8 - b _08085C32 - .align 2, 0 -_08085BE4: .4byte gUnknown_202F3D8 -_08085BE8: - movs r1, 0x4 - ldrsh r0, [r4, r1] - str r0, [r5, 0x8] - str r4, [r5, 0xC] - ldrb r1, [r4] - movs r0, 0x7 - ands r0, r1 - adds r1, r3, 0 - adds r1, 0x46 - strb r0, [r1] - movs r3, 0 - ldrsh r2, [r4, r3] - adds r0, r6, 0 - movs r1, 0 - bl sub_806CDD4 -_08085C08: - ldr r0, [r5, 0x8] - subs r0, 0x1 - str r0, [r5, 0x8] - ldr r1, _08085C4C - movs r2, 0 - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x2 - ldrsh r2, [r4, r3] - muls r1, r2 - lsls r1, 8 - movs r3, 0x2 - ldrsh r0, [r0, r3] - muls r2, r0 - lsls r2, 8 - adds r0, r6, 0 - bl sub_804539C -_08085C32: - adds r5, 0x10 - adds r7, 0x1 - ldr r0, _08085C50 - ldr r0, [r0] - cmp r7, r0 - blt _08085B98 -_08085C3E: - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08085C4C: .4byte gUnknown_80F4448 -_08085C50: .4byte gUnknown_202F3D8 - thumb_func_end sub_8085B80 - - thumb_func_start sub_8085C54 -sub_8085C54: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - str r0, [sp, 0x14] - mov r10, r1 - mov r9, r2 - ldr r4, [sp, 0x48] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x18] - lsls r4, 24 - lsrs r4, 24 - bl sub_8085E98 - movs r0, 0 - mov r8, r0 - ldr r0, _08085E70 - ldr r0, [r0] - ldr r5, [r0, 0x4] - cmp r4, 0 - beq _08085CAE - ldr r1, [sp, 0x14] - cmp r1, 0 - blt _08085C92 - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - str r0, [sp, 0x14] -_08085C92: - mov r2, r10 - cmp r2, 0 - blt _08085CA0 - lsrs r0, r2, 31 - add r0, r10 - asrs r0, 1 - mov r10, r0 -_08085CA0: - mov r3, r9 - cmp r3, 0 - blt _08085CAE - lsrs r0, r3, 31 - add r0, r9 - asrs r0, 1 - mov r9, r0 -_08085CAE: - ldr r1, _08085E74 - ldr r0, [sp, 0x8] - ands r0, r1 - ldr r1, _08085E78 - ands r0, r1 - ldr r1, _08085E7C - ands r0, r1 - str r0, [sp, 0x8] - ldr r0, _08085E80 - ldr r2, [r0] - ldr r0, _08085E84 - ldr r3, [r0] - movs r0, 0xBE - lsls r0, 1 - adds r3, r0 - mov r0, r8 - add r1, sp, 0x8 - bl SetBGPaletteBufferColorRGB - adds r5, 0x4 - movs r1, 0x1 - add r8, r1 - ldr r2, [sp, 0x14] - lsls r2, 16 - str r2, [sp, 0x1C] - mov r3, r10 - lsls r3, 16 - str r3, [sp, 0x20] - mov r0, r9 - lsls r0, 16 - str r0, [sp, 0x24] - add r7, sp, 0xC - movs r1, 0xA0 - cmp r1, 0x1 - ble _08085D56 - add r6, sp, 0x8 - movs r4, 0xA0 - subs r4, 0x1 -_08085CFA: - ldrb r0, [r5] - ldr r3, [sp, 0x14] - adds r2, r0, r3 - ldrb r0, [r5, 0x1] - mov r3, r10 - adds r1, r0, r3 - ldrb r0, [r5, 0x2] - add r0, r9 - cmp r2, 0xFF - ble _08085D10 - movs r2, 0xFF -_08085D10: - cmp r1, 0xFF - ble _08085D16 - movs r1, 0xFF -_08085D16: - cmp r0, 0xFF - ble _08085D1C - movs r0, 0xFF -_08085D1C: - cmp r2, 0 - bge _08085D22 - movs r2, 0 -_08085D22: - cmp r1, 0 - bge _08085D28 - movs r1, 0 -_08085D28: - cmp r0, 0 - bge _08085D2E - movs r0, 0 -_08085D2E: - strb r2, [r6] - strb r1, [r6, 0x1] - strb r0, [r6, 0x2] - ldr r0, _08085E80 - ldr r2, [r0] - ldr r0, _08085E84 - ldr r3, [r0] - movs r0, 0xBE - lsls r0, 1 - adds r3, r0 - mov r0, r8 - add r1, sp, 0x8 - bl SetBGPaletteBufferColorRGB - adds r5, 0x4 - movs r1, 0x1 - add r8, r1 - subs r4, 0x1 - cmp r4, 0 - bne _08085CFA -_08085D56: - ldr r2, _08085E88 - ldr r3, [sp, 0x1C] - lsrs r0, r3, 16 - ldr r1, [sp, 0x20] - orrs r0, r1 - str r0, [sp, 0xC] - ldr r3, [sp, 0x24] - lsrs r1, r3, 16 - ldr r0, [r7, 0x4] - ands r0, r2 - orrs r0, r1 - str r0, [r7, 0x4] - ldr r0, _08085E8C - ldr r1, _08085E80 - ldr r3, [r1] - ldr r1, _08085E84 - ldr r1, [r1] - movs r2, 0xBE - lsls r2, 1 - adds r1, r2 - str r1, [sp] - str r7, [sp, 0x4] - movs r1, 0xA0 - movs r2, 0x20 - bl sub_8004C00 - movs r3, 0x20 - add r8, r3 - ldr r5, _08085E90 - add r6, sp, 0x8 - movs r4, 0x20 -_08085D94: - ldrb r0, [r5] - ldr r1, [sp, 0x14] - adds r2, r0, r1 - ldrb r0, [r5, 0x1] - mov r3, r10 - adds r1, r0, r3 - ldrb r0, [r5, 0x2] - add r0, r9 - cmp r2, 0xFF - ble _08085DAA - movs r2, 0xFF -_08085DAA: - cmp r1, 0xFF - ble _08085DB0 - movs r1, 0xFF -_08085DB0: - cmp r0, 0xFF - ble _08085DB6 - movs r0, 0xFF -_08085DB6: - cmp r2, 0 - bge _08085DBC - movs r2, 0 -_08085DBC: - cmp r1, 0 - bge _08085DC2 - movs r1, 0 -_08085DC2: - cmp r0, 0 - bge _08085DC8 - movs r0, 0 -_08085DC8: - strb r2, [r6] - strb r1, [r6, 0x1] - strb r0, [r6, 0x2] - ldr r0, _08085E80 - ldr r2, [r0] - ldr r7, _08085E84 - ldr r3, [r7] - movs r0, 0xBE - lsls r0, 1 - adds r3, r0 - mov r0, r8 - add r1, sp, 0x8 - bl SetBGPaletteBufferColorRGB - adds r5, 0x4 - movs r1, 0x1 - add r8, r1 - subs r4, 0x1 - cmp r4, 0 - bne _08085D94 - ldr r2, [sp, 0x18] - cmp r2, 0 - beq _08085E5E - ldr r0, [r7] - ldr r3, _08085E94 - adds r0, r3 - ldr r0, [r0] - ldr r5, [r0, 0x4] - movs r0, 0x80 - lsls r0, 1 - mov r8, r0 - add r6, sp, 0x8 - movs r4, 0xD0 -_08085E0A: - ldrb r0, [r5] - ldr r1, [sp, 0x14] - adds r2, r0, r1 - ldrb r0, [r5, 0x1] - mov r3, r10 - adds r1, r0, r3 - ldrb r0, [r5, 0x2] - add r0, r9 - cmp r2, 0xFF - ble _08085E20 - movs r2, 0xFF -_08085E20: - cmp r1, 0xFF - ble _08085E26 - movs r1, 0xFF -_08085E26: - cmp r0, 0xFF - ble _08085E2C - movs r0, 0xFF -_08085E2C: - cmp r2, 0 - bge _08085E32 - movs r2, 0 -_08085E32: - cmp r1, 0 - bge _08085E38 - movs r1, 0 -_08085E38: - cmp r0, 0 - bge _08085E3E - movs r0, 0 -_08085E3E: - strb r2, [r6] - strb r1, [r6, 0x1] - strb r0, [r6, 0x2] - ldr r0, _08085E80 - ldr r2, [r0] - mov r0, r8 - add r1, sp, 0x8 - movs r3, 0 - bl SetBGPaletteBufferColorRGB - adds r5, 0x4 - movs r0, 0x1 - add r8, r0 - subs r4, 0x1 - cmp r4, 0 - bne _08085E0A -_08085E5E: - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08085E70: .4byte gUnknown_202EE88 -_08085E74: .4byte 0xffffff00 -_08085E78: .4byte 0xffff00ff -_08085E7C: .4byte 0xff00ffff -_08085E80: .4byte gUnknown_202EDC8 -_08085E84: .4byte gDungeonGlobalData -_08085E88: .4byte 0xffff0000 -_08085E8C: .4byte gUnknown_202EE8C -_08085E90: .4byte gUnknown_202ECA4 -_08085E94: .4byte 0x000181e4 - thumb_func_end sub_8085C54 - - thumb_func_start sub_8085E98 -sub_8085E98: - ldr r0, _08085EA8 - ldr r0, [r0] - ldr r1, _08085EAC - adds r0, r1 - movs r1, 0 - strb r1, [r0] - bx lr - .align 2, 0 -_08085EA8: .4byte gDungeonGlobalData -_08085EAC: .4byte 0x00018215 - thumb_func_end sub_8085E98 - - thumb_func_start sub_8085EB0 -sub_8085EB0: - ldr r0, _08085EC0 - ldr r0, [r0] - ldr r1, _08085EC4 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - bx lr - .align 2, 0 -_08085EC0: .4byte gDungeonGlobalData -_08085EC4: .4byte 0x00018215 - thumb_func_end sub_8085EB0 - - thumb_func_start sub_8085EC8 -sub_8085EC8: - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x28 - adds r4, r0, 0 - mov r8, r1 - mov r9, r2 - adds r6, r3, 0 - ldr r5, [sp, 0x40] - lsls r4, 16 - asrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - adds r0, r4, 0 - bl sub_800EE5C - bl sub_800EF64 - movs r0, 0x46 - bl sub_803E46C - str r4, [sp] - mov r0, r8 - str r0, [sp, 0x4] - mov r2, r9 - str r2, [sp, 0x8] - mov r1, sp - ldrh r0, [r6] - movs r2, 0 - strh r0, [r1, 0xC] - ldrh r0, [r6, 0x2] - strh r0, [r1, 0xE] - mov r0, sp - strh r2, [r0, 0x10] - strh r2, [r0, 0x12] - ldr r0, _08085F3C - str r0, [sp, 0x18] - add r1, sp, 0x1C - ldr r0, _08085F40 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - mov r0, sp - bl sub_800E890 - cmp r5, 0 - beq _08085F2E - bl sub_8085F44 - movs r0, 0x1 - negs r0, r0 -_08085F2E: - add sp, 0x28 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08085F3C: .4byte 0x0000ffff -_08085F40: .4byte gUnknown_8107374 - thumb_func_end sub_8085EC8 - - thumb_func_start sub_8085F44 -sub_8085F44: - push {r4,lr} - adds r4, r0, 0 - b _08085F5C -_08085F4A: - ldr r0, _08085F70 - ldr r0, [r0] - ldr r1, _08085F74 - adds r0, r1 - bl sub_800E90C - movs r0, 0x46 - bl sub_803E46C -_08085F5C: - adds r0, r4, 0 - bl sub_800E9A8 - lsls r0, 24 - cmp r0, 0 - bne _08085F4A - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08085F70: .4byte gDungeonGlobalData -_08085F74: .4byte 0x000181f0 - thumb_func_end sub_8085F44 - - thumb_func_start sub_8085F78 -sub_8085F78: - push {lr} - ldr r0, _08085F94 - ldr r0, [r0] - ldr r1, _08085F98 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3C - bls _08085F8A - b _080860A4 -_08085F8A: - lsls r0, 2 - ldr r1, _08085F9C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08085F94: .4byte gDungeonGlobalData -_08085F98: .4byte 0x00003a0d -_08085F9C: .4byte _08085FA0 - .align 2, 0 -_08085FA0: - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _08086094 - .4byte _08086094 - .4byte _08086094 - .4byte _0808609A - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A0 - .4byte _080860A0 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 - .4byte _080860A4 -_08086094: - bl sub_8088848 - b _080860A4 -_0808609A: - bl sub_8088EE8 - b _080860A4 -_080860A0: - bl sub_808A718 -_080860A4: - pop {r0} - bx r0 - thumb_func_end sub_8085F78 - - thumb_func_start sub_80860A8 -sub_80860A8: - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r0, _08086108 - ldr r2, [r0] - movs r3, 0x1 -_080860B6: - ldrb r1, [r2] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080860C6 - ldrb r0, [r2, 0x2] - cmp r0, r6 - beq _08086104 -_080860C6: - adds r2, 0x4 - adds r5, 0x1 - cmp r5, 0x13 - ble _080860B6 - movs r5, 0 -_080860D0: - ldr r0, _0808610C - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _08086110 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08086114 - ldr r2, [r4, 0x70] - adds r0, r2, 0 - adds r0, 0x60 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08086114 - adds r0, r2, 0 - adds r0, 0x62 - ldrb r0, [r0] - cmp r0, r6 - bne _08086114 -_08086104: - movs r0, 0x1 - b _0808611C - .align 2, 0 -_08086108: .4byte gTeamInventory_203B460 -_0808610C: .4byte gDungeonGlobalData -_08086110: .4byte 0x0001357c -_08086114: - adds r5, 0x1 - cmp r5, 0x3 - ble _080860D0 - movs r0, 0 -_0808611C: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80860A8 - - thumb_func_start sub_8086124 -sub_8086124: - ldr r0, [r0, 0x70] - movs r2, 0xB0 - lsls r2, 1 - adds r0, r2 - strb r1, [r0] - bx lr - thumb_func_end sub_8086124 - - thumb_func_start sub_8086130 -sub_8086130: - push {lr} - movs r0, 0x3C - bl sub_8083ED8 - movs r0, 0x3C - movs r1, 0x46 - bl sub_803E708 - ldr r0, _08086194 - ldr r0, [r0] - bl sub_8052FB8 - movs r0, 0x1E - movs r1, 0x46 - bl sub_803E708 - ldr r0, _08086198 - ldr r0, [r0] - bl sub_8052FB8 - movs r0, 0x1E - movs r1, 0x46 - bl sub_803E708 - ldr r0, _0808619C - ldr r0, [r0] - bl sub_8052FB8 - movs r0, 0x1E - movs r1, 0x46 - bl sub_803E708 - ldr r0, _080861A0 - ldr r0, [r0] - bl sub_8052FB8 - movs r0, 0x1E - movs r1, 0x46 - bl sub_803E708 - ldr r0, _080861A4 - ldr r0, [r0] - bl sub_8052FB8 - movs r0, 0x1E - movs r1, 0x46 - bl sub_803E708 - pop {r0} - bx r0 - .align 2, 0 -_08086194: .4byte gUnknown_810665C -_08086198: .4byte gUnknown_810668C -_0808619C: .4byte gUnknown_81066D4 -_080861A0: .4byte gUnknown_81066F0 -_080861A4: .4byte gUnknown_810671C - thumb_func_end sub_8086130 - - thumb_func_start sub_80861A8 -sub_80861A8: - push {lr} - movs r1, 0 - movs r2, 0x8 - bl sub_806CDD4 - pop {r0} - bx r0 - thumb_func_end sub_80861A8 - - thumb_func_start sub_80861B8 -sub_80861B8: - push {r4,r5,lr} - adds r4, r1, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, [r0, 0x70] - adds r1, r4, 0 - bl sub_806CDD4 - adds r5, 0xFE - strb r4, [r5] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80861B8 - - thumb_func_start sub_80861D4 -sub_80861D4: - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - bl sub_806CDD4 - adds r0, r4, 0 - bl sub_80861EC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80861D4 - - thumb_func_start sub_80861EC -sub_80861EC: - ldr r0, [r0, 0x70] - adds r0, 0xFE - movs r1, 0x63 - strb r1, [r0] - bx lr - thumb_func_end sub_80861EC - - thumb_func_start sub_80861F8 -sub_80861F8: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - adds r6, r1, 0 - lsls r0, 16 - asrs r0, 16 - adds r5, r0, 0 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - bl sub_800EE5C - bl sub_800EF64 - movs r0, 0x46 - bl sub_803E46C - ldr r0, [r6, 0x70] - mov r8, r0 - movs r1, 0 - mov r9, r1 - str r1, [sp, 0x28] - adds r0, r5, 0 - bl sub_800E700 - adds r7, r0, 0 - add r4, sp, 0x28 - movs r2, 0x1 - negs r2, r2 - cmp r7, r2 - beq _0808624A - adds r1, r6, 0 - adds r1, 0x28 - lsls r2, r7, 24 - lsrs r2, 24 - adds r0, r4, 0 - bl sub_800569C -_0808624A: - str r5, [sp] - mov r3, r9 - str r3, [sp, 0x4] - mov r0, r8 - adds r0, 0x46 - ldrb r0, [r0] - str r0, [sp, 0x8] - mov r1, sp - ldr r0, [r6, 0xC] - cmp r0, 0 - bge _08086262 - adds r0, 0xFF -_08086262: - asrs r0, 8 - strh r0, [r1, 0xC] - mov r1, sp - ldr r0, [r6, 0x10] - cmp r0, 0 - bge _08086270 - adds r0, 0xFF -_08086270: - asrs r0, 8 - strh r0, [r1, 0xE] - mov r1, sp - ldrh r0, [r4] - strh r0, [r1, 0x10] - add r0, sp, 0x28 - ldrh r0, [r0, 0x2] - strh r0, [r1, 0x12] - str r7, [sp, 0x14] - ldr r0, _080862B4 - str r0, [sp, 0x18] - add r1, sp, 0x1C - ldr r0, _080862B8 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - mov r0, sp - bl sub_800E890 - mov r4, r10 - cmp r4, 0 - beq _080862A2 - bl sub_8085F44 - movs r0, 0x1 - negs r0, r0 -_080862A2: - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080862B4: .4byte 0x0000ffff -_080862B8: .4byte gUnknown_8107380 - thumb_func_end sub_80861F8 .align 2,0 diff --git a/asm/code_80848F0.s b/asm/code_80848F0.s new file mode 100644 index 0000000..2d9252a --- /dev/null +++ b/asm/code_80848F0.s @@ -0,0 +1,2076 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_808529C +sub_808529C: + push {lr} + lsls r0, 16 + asrs r1, r0, 16 + adds r2, r1, 0 + movs r3, 0x40 + movs r0, 0x86 + lsls r0, 1 + cmp r1, r0 + beq _08085348 + cmp r1, r0 + bgt _080852E0 + cmp r1, 0x90 + beq _08085334 + cmp r1, 0x90 + bgt _080852CE + cmp r1, 0x38 + beq _08085354 + cmp r1, 0x38 + bgt _080852C8 + cmp r1, 0x17 + beq _08085328 + b _0808535A +_080852C8: + cmp r1, 0x5E + beq _08085328 + b _0808535A +_080852CE: + cmp r1, 0x92 + beq _08085330 + cmp r1, 0x92 + blt _0808532C + cmp r1, 0x96 + beq _08085340 + cmp r1, 0xFC + beq _08085324 + b _0808535A +_080852E0: + ldr r0, _08085304 + cmp r1, r0 + beq _08085358 + cmp r1, r0 + bgt _08085308 + subs r0, 0x87 + cmp r1, r0 + beq _0808534C + cmp r1, r0 + blt _08085344 + adds r0, 0x5 + cmp r1, r0 + beq _08085350 + adds r0, 0x3A + cmp r1, r0 + beq _08085328 + b _0808535A + .align 2, 0 +_08085304: .4byte 0x00000195 +_08085308: + ldr r0, _08085320 + cmp r2, r0 + beq _08085358 + cmp r2, r0 + blt _08085358 + adds r0, 0x4 + cmp r2, r0 + beq _08085338 + adds r0, 0x1 + cmp r2, r0 + beq _0808533C + b _0808535A + .align 2, 0 +_08085320: .4byte 0x00000197 +_08085324: + movs r3, 0x1 + b _0808535A +_08085328: + movs r3, 0x3 + b _0808535A +_0808532C: + movs r3, 0x5 + b _0808535A +_08085330: + movs r3, 0x7 + b _0808535A +_08085334: + movs r3, 0x9 + b _0808535A +_08085338: + movs r3, 0xC + b _0808535A +_0808533C: + movs r3, 0xF + b _0808535A +_08085340: + movs r3, 0x13 + b _0808535A +_08085344: + movs r3, 0x15 + b _0808535A +_08085348: + movs r3, 0x17 + b _0808535A +_0808534C: + movs r3, 0x19 + b _0808535A +_08085350: + movs r3, 0x1A + b _0808535A +_08085354: + movs r3, 0x11 + b _0808535A +_08085358: + movs r3, 0x1D +_0808535A: + cmp r3, 0x40 + beq _0808536E + adds r0, r3, 0 + bl sub_8098100 + lsls r0, 24 + cmp r0, 0 + bne _0808536E + movs r0, 0 + b _08085370 +_0808536E: + movs r0, 0x1 +_08085370: + pop {r1} + bx r1 + thumb_func_end sub_808529C + + thumb_func_start sub_8085374 +sub_8085374: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + movs r7, 0 + movs r6, 0 + bl sub_808D3F8 + movs r2, 0x8 + ldrsh r1, [r0, r2] + mov r8, r1 + movs r5, 0 +_0808538E: + ldr r0, _08085444 + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _08085448 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080853BE + ldr r1, [r4, 0x70] + ldrb r0, [r1, 0x7] + cmp r0, 0 + beq _080853B2 + adds r7, r4, 0 +_080853B2: + adds r0, r1, 0 + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x41 + bne _080853BE + adds r6, r4, 0 +_080853BE: + adds r5, 0x1 + cmp r5, 0x3 + ble _0808538E + cmp r7, 0 + beq _0808546E + cmp r6, 0 + bne _0808546E + ldr r0, _08085444 + ldr r0, [r0] + ldr r1, _0808544C + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0808546E + movs r6, 0 + ldr r0, _08085450 + ldr r4, [r0] + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0x63 + beq _0808546E + mov r5, sp + movs r0, 0 + mov r9, r0 +_080853EE: + ldrh r0, [r7, 0x4] + adds r0, r4 + lsls r0, 16 + lsrs r0, 16 + ldr r1, _08085454 + ands r4, r1 + orrs r4, r0 + asrs r1, r4, 16 + ldrh r2, [r7, 0x6] + adds r1, r2 + lsls r1, 16 + ldr r0, _08085458 + ands r4, r0 + orrs r4, r1 + lsls r0, r4, 16 + asrs r0, 16 + asrs r1, r4, 16 + bl sub_804954C + adds r1, r0, 0 + mov r0, r8 + bl sub_807034C + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _0808545C + mov r0, r8 + strh r0, [r5] + movs r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0x2 + strb r0, [r5, 0x2] + str r4, [sp, 0xC] + str r1, [sp, 0x4] + mov r1, r9 + strb r1, [r5, 0x10] + mov r0, sp + movs r1, 0x1 + bl sub_806B7F8 + b _0808546E + .align 2, 0 +_08085444: .4byte gDungeonGlobalData +_08085448: .4byte 0x0001357c +_0808544C: .4byte 0x0000065c +_08085450: .4byte gUnknown_80F4598 +_08085454: .4byte 0xffff0000 +_08085458: .4byte 0x0000ffff +_0808545C: + adds r6, 0x1 + ldr r0, _0808547C + lsls r1, r6, 2 + adds r1, r0 + ldr r4, [r1] + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0x63 + bne _080853EE +_0808546E: + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0808547C: .4byte gUnknown_80F4598 + thumb_func_end sub_8085374 + + thumb_func_start sub_8085480 +sub_8085480: + push {lr} + bl sub_8083600 + pop {r1} + bx r1 + thumb_func_end sub_8085480 + + thumb_func_start sub_808548C +sub_808548C: + push {r4,r5,lr} + movs r5, 0 +_08085490: + ldr r0, _080854B8 + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _080854BC + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080854C0 + ldr r0, [r4, 0x70] + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x41 + bne _080854C0 + adds r0, r4, 0 + b _080854CC + .align 2, 0 +_080854B8: .4byte gDungeonGlobalData +_080854BC: .4byte 0x0001357c +_080854C0: + adds r5, 0x1 + cmp r5, 0x3 + ble _08085490 + movs r0, 0x2 + bl sub_8085680 +_080854CC: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_808548C + + thumb_func_start sub_80854D4 +sub_80854D4: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x20 + movs r6, 0 + movs r5, 0 + add r0, sp, 0x10 + mov r8, r0 + mov r7, sp +_080854E6: + ldr r0, _080855D8 + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _080855DC + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08085504 + stm r7!, {r4} + adds r6, 0x1 +_08085504: + adds r5, 0x1 + cmp r5, 0x3 + ble _080854E6 + cmp r6, 0x3 + bgt _0808551C + movs r1, 0 + lsls r0, r6, 2 + add r0, sp +_08085514: + stm r0!, {r1} + adds r6, 0x1 + cmp r6, 0x3 + ble _08085514 +_0808551C: + movs r6, 0 + movs r4, 0 + mov r2, sp + mov r3, r8 + movs r5, 0x3 +_08085526: + ldr r1, [r2] + cmp r1, 0 + beq _0808553A + ldr r0, [r1, 0x70] + ldrb r0, [r0, 0x7] + cmp r0, 0 + beq _0808553A + str r4, [r2] + stm r3!, {r1} + adds r6, 0x1 +_0808553A: + adds r2, 0x4 + subs r5, 0x1 + cmp r5, 0 + bge _08085526 + movs r4, 0 + mov r2, sp + lsls r0, r6, 2 + mov r1, r8 + adds r3, r0, r1 + movs r5, 0x3 +_0808554E: + ldr r1, [r2] + cmp r1, 0 + beq _08085564 + ldr r0, [r1, 0x70] + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x41 + bne _08085564 + str r4, [r2] + stm r3!, {r1} + adds r6, 0x1 +_08085564: + adds r2, 0x4 + subs r5, 0x1 + cmp r5, 0 + bge _0808554E + movs r3, 0 + mov r2, sp + lsls r0, r6, 2 + add r0, r8 + movs r5, 0x3 +_08085576: + ldr r1, [r2] + cmp r1, 0 + beq _08085582 + str r3, [r2] + stm r0!, {r1} + adds r6, 0x1 +_08085582: + adds r2, 0x4 + subs r5, 0x1 + cmp r5, 0 + bge _08085576 + cmp r6, 0x3 + bgt _0808559C + movs r1, 0 + lsls r0, r6, 2 + add r0, r8 +_08085594: + stm r0!, {r1} + adds r6, 0x1 + cmp r6, 0x3 + ble _08085594 +_0808559C: + movs r5, 0 + mov r4, r8 +_080855A0: + lsls r1, r5, 2 + ldr r3, [r4] + cmp r3, 0 + beq _080855C4 + ldr r0, _080855D8 + ldr r0, [r0] + adds r0, r1 + ldr r2, _080855E0 + adds r1, r0, r2 + movs r6, 0 + ldrsh r1, [r1, r6] + adds r2, 0x2 + adds r0, r2 + movs r6, 0 + ldrsh r2, [r0, r6] + adds r0, r3, 0 + bl sub_80856C8 +_080855C4: + adds r4, 0x4 + adds r5, 0x1 + cmp r5, 0x3 + ble _080855A0 + add sp, 0x20 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080855D8: .4byte gDungeonGlobalData +_080855DC: .4byte 0x0001357c +_080855E0: .4byte 0x0000e220 + thumb_func_end sub_80854D4 + + thumb_func_start sub_80855E4 +sub_80855E4: + push {r4-r7,lr} + adds r6, r0, 0 + movs r7, 0 + movs r5, 0 +_080855EC: + ldr r0, _08085634 + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _08085638 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08085618 + ldr r0, [r4, 0x70] + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x41 + bne _08085612 + movs r7, 0x1 +_08085612: + adds r0, r4, 0 + bl _call_via_r6 +_08085618: + adds r5, 0x1 + cmp r5, 0x3 + ble _080855EC + cmp r7, 0 + bne _0808562E + bl sub_808548C + cmp r0, 0 + beq _0808562E + bl _call_via_r6 +_0808562E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08085634: .4byte gDungeonGlobalData +_08085638: .4byte 0x0001357c + thumb_func_end sub_80855E4 + + thumb_func_start sub_808563C +sub_808563C: + push {r4-r6,lr} + adds r6, r0, 0 + movs r5, 0 +_08085642: + ldr r0, _08085678 + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _0808567C + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _0808566C + ldr r0, [r4, 0x70] + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x41 + beq _0808566C + adds r0, r4, 0 + bl _call_via_r6 +_0808566C: + adds r5, 0x1 + cmp r5, 0xF + ble _08085642 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08085678: .4byte gDungeonGlobalData +_0808567C: .4byte 0x0001358c + thumb_func_end sub_808563C + + thumb_func_start sub_8085680 +sub_8085680: + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 +_08085688: + ldr r0, _080856B0 + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _080856B4 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080856B8 + ldr r0, [r4, 0x70] + adds r0, 0xA4 + ldrb r0, [r0] + cmp r0, r6 + bne _080856B8 + adds r0, r4, 0 + b _080856C0 + .align 2, 0 +_080856B0: .4byte gDungeonGlobalData +_080856B4: .4byte 0x000135cc +_080856B8: + adds r5, 0x1 + cmp r5, 0x13 + ble _08085688 + movs r0, 0 +_080856C0: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8085680 + + thumb_func_start sub_80856C8 +sub_80856C8: + push {r4,lr} + adds r4, r0, 0 + movs r3, 0x1 + bl sub_80694C0 + adds r0, r4, 0 + movs r1, 0 + bl sub_804535C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80856C8 + + thumb_func_start sub_80856E0 +sub_80856E0: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + adds r7, r1, 0 + ldr r0, [r6, 0x70] + mov r8, r0 + adds r0, r6, 0 + movs r1, 0x6 + adds r2, r7, 0 + bl sub_80861D4 + movs r5, 0xBA + lsls r5, 1 + add r5, r8 + movs r4, 0x4 +_08085700: + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 2 + adds r0, r1 + str r0, [r5] + movs r0, 0x46 + bl sub_803E46C + subs r4, 0x1 + cmp r4, 0 + bge _08085700 + movs r1, 0x7 + adds r0, r7, 0 + ands r0, r1 + mov r1, r8 + adds r1, 0x46 + strb r0, [r1] + adds r0, r6, 0 + adds r1, r7, 0 + bl sub_806CE68 + movs r5, 0xBA + lsls r5, 1 + add r5, r8 + movs r4, 0x4 +_08085732: + ldr r0, [r5] + ldr r1, _08085760 + adds r0, r1 + str r0, [r5] + movs r0, 0x46 + bl sub_803E46C + subs r4, 0x1 + cmp r4, 0 + bge _08085732 + movs r1, 0xBA + lsls r1, 1 + add r1, r8 + movs r0, 0 + str r0, [r1] + movs r0, 0x46 + bl sub_803E46C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08085760: .4byte 0xfffffe00 + thumb_func_end sub_80856E0 + + thumb_func_start sub_8085764 +sub_8085764: + push {r4,r5,lr} + sub sp, 0x74 + mov r0, sp + bl sub_80457DC + movs r5, 0 +_08085770: + ldr r0, _080857AC + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _080857B0 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _0808579E + ldr r0, [r4, 0x70] + adds r0, 0xA4 + ldrb r0, [r0] + cmp r0, 0x2 + bne _0808579E + adds r0, r4, 0 + ldr r1, _080857B4 + mov r2, sp + bl sub_8068FE0 +_0808579E: + adds r5, 0x1 + cmp r5, 0xF + ble _08085770 + add sp, 0x74 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080857AC: .4byte gDungeonGlobalData +_080857B0: .4byte 0x0001358c +_080857B4: .4byte 0x00000207 + thumb_func_end sub_8085764 + + thumb_func_start sub_80857B8 +sub_80857B8: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r7, 0 + ldr r0, _08085854 + mov r9, r0 + ldr r1, _08085858 + mov r8, r1 +_080857CA: + mov r2, r9 + ldr r0, [r2] + lsls r1, r7, 2 + ldr r3, _0808585C + adds r0, r3 + adds r0, r1 + ldr r6, [r0] + adds r0, r6, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08085840 + ldr r5, [r6, 0x70] + mov r0, r9 + ldr r1, [r0] + ldrb r0, [r1, 0x4] + cmp r0, 0 + bne _08085840 + ldrb r4, [r1, 0x2] + cmp r4, 0 + bne _08085840 + adds r0, r6, 0 + movs r1, 0 + bl sub_804535C + movs r1, 0xAE + lsls r1, 1 + adds r0, r5, r1 + strb r4, [r0] + adds r1, r5, 0 + adds r1, 0xFE + movs r0, 0x63 + strb r0, [r1] + adds r2, r5, 0 + adds r2, 0x46 + ldrb r0, [r2] + lsls r0, 2 + add r0, r8 + ldrh r1, [r6, 0x4] + ldrh r0, [r0] + adds r1, r0 + movs r3, 0xB6 + lsls r3, 1 + adds r0, r5, r3 + strh r1, [r0] + ldrb r0, [r2] + lsls r0, 2 + add r0, r8 + ldrh r1, [r6, 0x6] + ldrh r0, [r0, 0x2] + adds r1, r0 + adds r3, 0x2 + adds r0, r5, r3 + strh r1, [r0] + ldrb r1, [r2] + adds r0, r6, 0 + bl sub_806CE68 +_08085840: + adds r7, 0x1 + cmp r7, 0x13 + ble _080857CA + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08085854: .4byte gDungeonGlobalData +_08085858: .4byte gUnknown_80F4448 +_0808585C: .4byte 0x000135cc + thumb_func_end sub_80857B8 + + thumb_func_start sub_8085860 +sub_8085860: + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + movs r0, 0 + bl sub_803F4A0 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 11 + movs r1, 0xC0 + lsls r1, 4 + adds r0, r1 + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 11 + movs r2, 0x80 + lsls r2, 5 + adds r1, r2 + bl sub_803F878 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8085860 + + thumb_func_start sub_8085890 +sub_8085890: + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + movs r0, 0 + bl sub_803F4A0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_803F878 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8085890 + + thumb_func_start sub_80858AC +sub_80858AC: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r0, 0 + adds r4, r1, 0 + bl sub_803F994 + adds r6, r0, 0 + bl sub_803F9B0 + adds r5, r0, 0 + ldr r0, [r7] + subs r0, r6 + adds r1, r4, 0 + bl __divsi3 + mov r9, r0 + ldr r0, [r7, 0x4] + subs r0, r5 + adds r1, r4, 0 + bl __divsi3 + mov r8, r0 + movs r0, 0 + bl sub_803F4A0 + cmp r4, 0 + ble _080858FE +_080858E6: + add r6, r9 + add r5, r8 + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_803F878 + movs r0, 0x46 + bl sub_803E46C + subs r4, 0x1 + cmp r4, 0 + bne _080858E6 +_080858FE: + ldr r0, [r7] + ldr r1, [r7, 0x4] + bl sub_803F878 + movs r0, 0x46 + bl sub_803E46C + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80858AC + + thumb_func_start sub_8085918 +sub_8085918: + push {r4,lr} + ldr r3, [r0, 0x70] + movs r4, 0x7 + adds r2, r1, 0 + ands r2, r4 + adds r3, 0x46 + strb r2, [r3] + bl sub_806CE68 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8085918 + + thumb_func_start sub_8085930 +sub_8085930: + push {r4-r7,lr} + adds r6, r0, 0 + movs r5, 0 + movs r0, 0x7 + adds r7, r6, 0 + ands r7, r0 +_0808593C: + ldr r0, _0808596C + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _08085970 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08085982 + cmp r6, 0x7 + ble _08085974 + movs r0, 0x8 + bl RandomCapped + adds r1, r0, 0 + adds r0, r4, 0 + bl sub_806CE68 + b _08085982 + .align 2, 0 +_0808596C: .4byte gDungeonGlobalData +_08085970: .4byte 0x0001357c +_08085974: + ldr r0, [r4, 0x70] + adds r0, 0x46 + strb r7, [r0] + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_806CE68 +_08085982: + adds r5, 0x1 + cmp r5, 0x3 + ble _0808593C + movs r5, 0 + movs r0, 0x7 + adds r7, r6, 0 + ands r7, r0 +_08085990: + ldr r0, _080859CC + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _080859D0 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080859E2 + ldr r1, [r4, 0x70] + adds r0, r1, 0 + adds r0, 0xA4 + ldrb r0, [r0] + cmp r0, 0x2 + bne _080859E2 + cmp r6, 0x7 + ble _080859D4 + movs r0, 0x8 + bl RandomCapped + adds r1, r0, 0 + adds r0, r4, 0 + bl sub_806CE68 + b _080859E2 + .align 2, 0 +_080859CC: .4byte gDungeonGlobalData +_080859D0: .4byte 0x0001358c +_080859D4: + adds r0, r1, 0 + adds r0, 0x46 + strb r7, [r0] + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_806CE68 +_080859E2: + adds r5, 0x1 + cmp r5, 0xF + ble _08085990 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8085930 + + thumb_func_start sub_80859F0 +sub_80859F0: + push {r4-r7,lr} + adds r6, r0, 0 + movs r5, 0 + movs r0, 0x7 + adds r7, r6, 0 + ands r7, r0 +_080859FC: + ldr r0, _08085A2C + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _08085A30 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08085A42 + cmp r6, 0x7 + ble _08085A34 + movs r0, 0x8 + bl RandomCapped + adds r1, r0, 0 + adds r0, r4, 0 + bl sub_806CE68 + b _08085A42 + .align 2, 0 +_08085A2C: .4byte gDungeonGlobalData +_08085A30: .4byte 0x0001358c +_08085A34: + ldr r0, [r4, 0x70] + adds r0, 0x46 + strb r7, [r0] + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_806CE68 +_08085A42: + adds r5, 0x1 + cmp r5, 0xF + ble _080859FC + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80859F0 + + thumb_func_start sub_8085A50 +sub_8085A50: + push {lr} + ldr r0, [r0, 0x70] + adds r0, 0xA4 + ldrb r0, [r0] + cmp r0, 0x24 + bhi _08085B04 + lsls r0, 2 + ldr r1, _08085A68 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08085A68: .4byte _08085A6C + .align 2, 0 +_08085A6C: + .4byte _08085B04 + .4byte _08085B00 + .4byte _08085B04 + .4byte _08085B00 + .4byte _08085B04 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B04 + .4byte _08085B04 + .4byte _08085B04 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 + .4byte _08085B00 +_08085B00: + movs r0, 0x1 + b _08085B06 +_08085B04: + movs r0, 0 +_08085B06: + pop {r1} + bx r1 + thumb_func_end sub_8085A50 + + thumb_func_start sub_8085B0C +sub_8085B0C: + push {r4,r5,lr} + sub sp, 0x1C + adds r5, r0, 0 + ldr r1, _08085B48 + mov r0, sp + movs r2, 0x19 + bl memcpy + mov r0, sp + ldrb r0, [r0] + cmp r0, 0 + beq _08085B3E + mov r4, sp +_08085B26: + ldrb r1, [r4] + adds r0, r5, 0 + bl sub_8085918 + movs r0, 0x6 + movs r1, 0x46 + bl sub_803E708 + adds r4, 0x1 + ldrb r0, [r4] + cmp r0, 0 + bne _08085B26 +_08085B3E: + add sp, 0x1C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08085B48: .4byte gUnknown_8107358 + thumb_func_end sub_8085B0C + + thumb_func_start sub_8085B4C +sub_8085B4C: + push {r4-r6,lr} + adds r5, r0, 0 + ldr r0, _08085B7C + str r3, [r0] + cmp r3, 0 + ble _08085B76 + movs r6, 0x1 + adds r4, r1, 0 + adds r1, r5, 0 +_08085B5E: + strb r6, [r1] + ldm r2!, {r0} + str r0, [r1, 0x4] + ldm r4!, {r0} + str r0, [r1, 0xC] + movs r5, 0x4 + ldrsh r0, [r0, r5] + str r0, [r1, 0x8] + adds r1, 0x10 + subs r3, 0x1 + cmp r3, 0 + bne _08085B5E +_08085B76: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08085B7C: .4byte gUnknown_202F3D8 + thumb_func_end sub_8085B4C + + thumb_func_start sub_8085B80 +sub_8085B80: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r1, r0, 0 + movs r0, 0 + mov r8, r0 + movs r7, 0 + ldr r0, _08085BE4 + ldr r0, [r0] + cmp r8, r0 + bge _08085C3E + adds r5, r1, 0 +_08085B98: + ldr r6, [r5, 0x4] + ldr r2, [r6, 0x70] + adds r3, r2, 0 + ldr r4, [r5, 0xC] + ldrb r0, [r5] + cmp r0, 0 + beq _08085C32 + movs r1, 0x1 + mov r8, r1 + ldr r0, [r5, 0x8] + cmp r0, 0 + bne _08085C08 + adds r4, 0x8 + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08085BE8 + strb r0, [r5] + ldrb r1, [r4] + movs r0, 0x7 + ands r0, r1 + adds r1, r2, 0 + adds r1, 0x46 + strb r0, [r1] + movs r3, 0 + ldrsh r2, [r4, r3] + adds r0, r6, 0 + movs r1, 0x7 + bl sub_806CDD4 + movs r0, 0xA + ldrsh r1, [r4, r0] + movs r3, 0xC + ldrsh r2, [r4, r3] + adds r0, r6, 0 + bl sub_80856C8 + b _08085C32 + .align 2, 0 +_08085BE4: .4byte gUnknown_202F3D8 +_08085BE8: + movs r1, 0x4 + ldrsh r0, [r4, r1] + str r0, [r5, 0x8] + str r4, [r5, 0xC] + ldrb r1, [r4] + movs r0, 0x7 + ands r0, r1 + adds r1, r3, 0 + adds r1, 0x46 + strb r0, [r1] + movs r3, 0 + ldrsh r2, [r4, r3] + adds r0, r6, 0 + movs r1, 0 + bl sub_806CDD4 +_08085C08: + ldr r0, [r5, 0x8] + subs r0, 0x1 + str r0, [r5, 0x8] + ldr r1, _08085C4C + movs r2, 0 + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r1 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x2 + ldrsh r2, [r4, r3] + muls r1, r2 + lsls r1, 8 + movs r3, 0x2 + ldrsh r0, [r0, r3] + muls r2, r0 + lsls r2, 8 + adds r0, r6, 0 + bl sub_804539C +_08085C32: + adds r5, 0x10 + adds r7, 0x1 + ldr r0, _08085C50 + ldr r0, [r0] + cmp r7, r0 + blt _08085B98 +_08085C3E: + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08085C4C: .4byte gUnknown_80F4448 +_08085C50: .4byte gUnknown_202F3D8 + thumb_func_end sub_8085B80 + + thumb_func_start sub_8085C54 +sub_8085C54: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + str r0, [sp, 0x14] + mov r10, r1 + mov r9, r2 + ldr r4, [sp, 0x48] + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x18] + lsls r4, 24 + lsrs r4, 24 + bl sub_8085E98 + movs r0, 0 + mov r8, r0 + ldr r0, _08085E70 + ldr r0, [r0] + ldr r5, [r0, 0x4] + cmp r4, 0 + beq _08085CAE + ldr r1, [sp, 0x14] + cmp r1, 0 + blt _08085C92 + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + str r0, [sp, 0x14] +_08085C92: + mov r2, r10 + cmp r2, 0 + blt _08085CA0 + lsrs r0, r2, 31 + add r0, r10 + asrs r0, 1 + mov r10, r0 +_08085CA0: + mov r3, r9 + cmp r3, 0 + blt _08085CAE + lsrs r0, r3, 31 + add r0, r9 + asrs r0, 1 + mov r9, r0 +_08085CAE: + ldr r1, _08085E74 + ldr r0, [sp, 0x8] + ands r0, r1 + ldr r1, _08085E78 + ands r0, r1 + ldr r1, _08085E7C + ands r0, r1 + str r0, [sp, 0x8] + ldr r0, _08085E80 + ldr r2, [r0] + ldr r0, _08085E84 + ldr r3, [r0] + movs r0, 0xBE + lsls r0, 1 + adds r3, r0 + mov r0, r8 + add r1, sp, 0x8 + bl SetBGPaletteBufferColorRGB + adds r5, 0x4 + movs r1, 0x1 + add r8, r1 + ldr r2, [sp, 0x14] + lsls r2, 16 + str r2, [sp, 0x1C] + mov r3, r10 + lsls r3, 16 + str r3, [sp, 0x20] + mov r0, r9 + lsls r0, 16 + str r0, [sp, 0x24] + add r7, sp, 0xC + movs r1, 0xA0 + cmp r1, 0x1 + ble _08085D56 + add r6, sp, 0x8 + movs r4, 0xA0 + subs r4, 0x1 +_08085CFA: + ldrb r0, [r5] + ldr r3, [sp, 0x14] + adds r2, r0, r3 + ldrb r0, [r5, 0x1] + mov r3, r10 + adds r1, r0, r3 + ldrb r0, [r5, 0x2] + add r0, r9 + cmp r2, 0xFF + ble _08085D10 + movs r2, 0xFF +_08085D10: + cmp r1, 0xFF + ble _08085D16 + movs r1, 0xFF +_08085D16: + cmp r0, 0xFF + ble _08085D1C + movs r0, 0xFF +_08085D1C: + cmp r2, 0 + bge _08085D22 + movs r2, 0 +_08085D22: + cmp r1, 0 + bge _08085D28 + movs r1, 0 +_08085D28: + cmp r0, 0 + bge _08085D2E + movs r0, 0 +_08085D2E: + strb r2, [r6] + strb r1, [r6, 0x1] + strb r0, [r6, 0x2] + ldr r0, _08085E80 + ldr r2, [r0] + ldr r0, _08085E84 + ldr r3, [r0] + movs r0, 0xBE + lsls r0, 1 + adds r3, r0 + mov r0, r8 + add r1, sp, 0x8 + bl SetBGPaletteBufferColorRGB + adds r5, 0x4 + movs r1, 0x1 + add r8, r1 + subs r4, 0x1 + cmp r4, 0 + bne _08085CFA +_08085D56: + ldr r2, _08085E88 + ldr r3, [sp, 0x1C] + lsrs r0, r3, 16 + ldr r1, [sp, 0x20] + orrs r0, r1 + str r0, [sp, 0xC] + ldr r3, [sp, 0x24] + lsrs r1, r3, 16 + ldr r0, [r7, 0x4] + ands r0, r2 + orrs r0, r1 + str r0, [r7, 0x4] + ldr r0, _08085E8C + ldr r1, _08085E80 + ldr r3, [r1] + ldr r1, _08085E84 + ldr r1, [r1] + movs r2, 0xBE + lsls r2, 1 + adds r1, r2 + str r1, [sp] + str r7, [sp, 0x4] + movs r1, 0xA0 + movs r2, 0x20 + bl sub_8004C00 + movs r3, 0x20 + add r8, r3 + ldr r5, _08085E90 + add r6, sp, 0x8 + movs r4, 0x20 +_08085D94: + ldrb r0, [r5] + ldr r1, [sp, 0x14] + adds r2, r0, r1 + ldrb r0, [r5, 0x1] + mov r3, r10 + adds r1, r0, r3 + ldrb r0, [r5, 0x2] + add r0, r9 + cmp r2, 0xFF + ble _08085DAA + movs r2, 0xFF +_08085DAA: + cmp r1, 0xFF + ble _08085DB0 + movs r1, 0xFF +_08085DB0: + cmp r0, 0xFF + ble _08085DB6 + movs r0, 0xFF +_08085DB6: + cmp r2, 0 + bge _08085DBC + movs r2, 0 +_08085DBC: + cmp r1, 0 + bge _08085DC2 + movs r1, 0 +_08085DC2: + cmp r0, 0 + bge _08085DC8 + movs r0, 0 +_08085DC8: + strb r2, [r6] + strb r1, [r6, 0x1] + strb r0, [r6, 0x2] + ldr r0, _08085E80 + ldr r2, [r0] + ldr r7, _08085E84 + ldr r3, [r7] + movs r0, 0xBE + lsls r0, 1 + adds r3, r0 + mov r0, r8 + add r1, sp, 0x8 + bl SetBGPaletteBufferColorRGB + adds r5, 0x4 + movs r1, 0x1 + add r8, r1 + subs r4, 0x1 + cmp r4, 0 + bne _08085D94 + ldr r2, [sp, 0x18] + cmp r2, 0 + beq _08085E5E + ldr r0, [r7] + ldr r3, _08085E94 + adds r0, r3 + ldr r0, [r0] + ldr r5, [r0, 0x4] + movs r0, 0x80 + lsls r0, 1 + mov r8, r0 + add r6, sp, 0x8 + movs r4, 0xD0 +_08085E0A: + ldrb r0, [r5] + ldr r1, [sp, 0x14] + adds r2, r0, r1 + ldrb r0, [r5, 0x1] + mov r3, r10 + adds r1, r0, r3 + ldrb r0, [r5, 0x2] + add r0, r9 + cmp r2, 0xFF + ble _08085E20 + movs r2, 0xFF +_08085E20: + cmp r1, 0xFF + ble _08085E26 + movs r1, 0xFF +_08085E26: + cmp r0, 0xFF + ble _08085E2C + movs r0, 0xFF +_08085E2C: + cmp r2, 0 + bge _08085E32 + movs r2, 0 +_08085E32: + cmp r1, 0 + bge _08085E38 + movs r1, 0 +_08085E38: + cmp r0, 0 + bge _08085E3E + movs r0, 0 +_08085E3E: + strb r2, [r6] + strb r1, [r6, 0x1] + strb r0, [r6, 0x2] + ldr r0, _08085E80 + ldr r2, [r0] + mov r0, r8 + add r1, sp, 0x8 + movs r3, 0 + bl SetBGPaletteBufferColorRGB + adds r5, 0x4 + movs r0, 0x1 + add r8, r0 + subs r4, 0x1 + cmp r4, 0 + bne _08085E0A +_08085E5E: + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08085E70: .4byte gUnknown_202EE88 +_08085E74: .4byte 0xffffff00 +_08085E78: .4byte 0xffff00ff +_08085E7C: .4byte 0xff00ffff +_08085E80: .4byte gUnknown_202EDC8 +_08085E84: .4byte gDungeonGlobalData +_08085E88: .4byte 0xffff0000 +_08085E8C: .4byte gUnknown_202EE8C +_08085E90: .4byte gUnknown_202ECA4 +_08085E94: .4byte 0x000181e4 + thumb_func_end sub_8085C54 + + thumb_func_start sub_8085E98 +sub_8085E98: + ldr r0, _08085EA8 + ldr r0, [r0] + ldr r1, _08085EAC + adds r0, r1 + movs r1, 0 + strb r1, [r0] + bx lr + .align 2, 0 +_08085EA8: .4byte gDungeonGlobalData +_08085EAC: .4byte 0x00018215 + thumb_func_end sub_8085E98 + + thumb_func_start sub_8085EB0 +sub_8085EB0: + ldr r0, _08085EC0 + ldr r0, [r0] + ldr r1, _08085EC4 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + bx lr + .align 2, 0 +_08085EC0: .4byte gDungeonGlobalData +_08085EC4: .4byte 0x00018215 + thumb_func_end sub_8085EB0 + + thumb_func_start sub_8085EC8 +sub_8085EC8: + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x28 + adds r4, r0, 0 + mov r8, r1 + mov r9, r2 + adds r6, r3, 0 + ldr r5, [sp, 0x40] + lsls r4, 16 + asrs r4, 16 + lsls r5, 24 + lsrs r5, 24 + adds r0, r4, 0 + bl sub_800EE5C + bl sub_800EF64 + movs r0, 0x46 + bl sub_803E46C + str r4, [sp] + mov r0, r8 + str r0, [sp, 0x4] + mov r2, r9 + str r2, [sp, 0x8] + mov r1, sp + ldrh r0, [r6] + movs r2, 0 + strh r0, [r1, 0xC] + ldrh r0, [r6, 0x2] + strh r0, [r1, 0xE] + mov r0, sp + strh r2, [r0, 0x10] + strh r2, [r0, 0x12] + ldr r0, _08085F3C + str r0, [sp, 0x18] + add r1, sp, 0x1C + ldr r0, _08085F40 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + mov r0, sp + bl sub_800E890 + cmp r5, 0 + beq _08085F2E + bl sub_8085F44 + movs r0, 0x1 + negs r0, r0 +_08085F2E: + add sp, 0x28 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08085F3C: .4byte 0x0000ffff +_08085F40: .4byte gUnknown_8107374 + thumb_func_end sub_8085EC8 + + thumb_func_start sub_8085F44 +sub_8085F44: + push {r4,lr} + adds r4, r0, 0 + b _08085F5C +_08085F4A: + ldr r0, _08085F70 + ldr r0, [r0] + ldr r1, _08085F74 + adds r0, r1 + bl sub_800E90C + movs r0, 0x46 + bl sub_803E46C +_08085F5C: + adds r0, r4, 0 + bl sub_800E9A8 + lsls r0, 24 + cmp r0, 0 + bne _08085F4A + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08085F70: .4byte gDungeonGlobalData +_08085F74: .4byte 0x000181f0 + thumb_func_end sub_8085F44 + + thumb_func_start sub_8085F78 +sub_8085F78: + push {lr} + ldr r0, _08085F94 + ldr r0, [r0] + ldr r1, _08085F98 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3C + bls _08085F8A + b _080860A4 +_08085F8A: + lsls r0, 2 + ldr r1, _08085F9C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08085F94: .4byte gDungeonGlobalData +_08085F98: .4byte 0x00003a0d +_08085F9C: .4byte _08085FA0 + .align 2, 0 +_08085FA0: + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _08086094 + .4byte _08086094 + .4byte _08086094 + .4byte _0808609A + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A0 + .4byte _080860A0 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 + .4byte _080860A4 +_08086094: + bl sub_8088848 + b _080860A4 +_0808609A: + bl sub_8088EE8 + b _080860A4 +_080860A0: + bl sub_808A718 +_080860A4: + pop {r0} + bx r0 + thumb_func_end sub_8085F78 + + thumb_func_start sub_80860A8 +sub_80860A8: + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + ldr r0, _08086108 + ldr r2, [r0] + movs r3, 0x1 +_080860B6: + ldrb r1, [r2] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _080860C6 + ldrb r0, [r2, 0x2] + cmp r0, r6 + beq _08086104 +_080860C6: + adds r2, 0x4 + adds r5, 0x1 + cmp r5, 0x13 + ble _080860B6 + movs r5, 0 +_080860D0: + ldr r0, _0808610C + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _08086110 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08086114 + ldr r2, [r4, 0x70] + adds r0, r2, 0 + adds r0, 0x60 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08086114 + adds r0, r2, 0 + adds r0, 0x62 + ldrb r0, [r0] + cmp r0, r6 + bne _08086114 +_08086104: + movs r0, 0x1 + b _0808611C + .align 2, 0 +_08086108: .4byte gTeamInventory_203B460 +_0808610C: .4byte gDungeonGlobalData +_08086110: .4byte 0x0001357c +_08086114: + adds r5, 0x1 + cmp r5, 0x3 + ble _080860D0 + movs r0, 0 +_0808611C: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80860A8 + + thumb_func_start sub_8086124 +sub_8086124: + ldr r0, [r0, 0x70] + movs r2, 0xB0 + lsls r2, 1 + adds r0, r2 + strb r1, [r0] + bx lr + thumb_func_end sub_8086124 + + thumb_func_start sub_8086130 +sub_8086130: + push {lr} + movs r0, 0x3C + bl sub_8083ED8 + movs r0, 0x3C + movs r1, 0x46 + bl sub_803E708 + ldr r0, _08086194 + ldr r0, [r0] + bl sub_8052FB8 + movs r0, 0x1E + movs r1, 0x46 + bl sub_803E708 + ldr r0, _08086198 + ldr r0, [r0] + bl sub_8052FB8 + movs r0, 0x1E + movs r1, 0x46 + bl sub_803E708 + ldr r0, _0808619C + ldr r0, [r0] + bl sub_8052FB8 + movs r0, 0x1E + movs r1, 0x46 + bl sub_803E708 + ldr r0, _080861A0 + ldr r0, [r0] + bl sub_8052FB8 + movs r0, 0x1E + movs r1, 0x46 + bl sub_803E708 + ldr r0, _080861A4 + ldr r0, [r0] + bl sub_8052FB8 + movs r0, 0x1E + movs r1, 0x46 + bl sub_803E708 + pop {r0} + bx r0 + .align 2, 0 +_08086194: .4byte gUnknown_810665C +_08086198: .4byte gUnknown_810668C +_0808619C: .4byte gUnknown_81066D4 +_080861A0: .4byte gUnknown_81066F0 +_080861A4: .4byte gUnknown_810671C + thumb_func_end sub_8086130 + + thumb_func_start sub_80861A8 +sub_80861A8: + push {lr} + movs r1, 0 + movs r2, 0x8 + bl sub_806CDD4 + pop {r0} + bx r0 + thumb_func_end sub_80861A8 + + thumb_func_start sub_80861B8 +sub_80861B8: + push {r4,r5,lr} + adds r4, r1, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, [r0, 0x70] + adds r1, r4, 0 + bl sub_806CDD4 + adds r5, 0xFE + strb r4, [r5] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80861B8 + + thumb_func_start sub_80861D4 +sub_80861D4: + push {r4,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r1, 24 + bl sub_806CDD4 + adds r0, r4, 0 + bl sub_80861EC + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80861D4 + + thumb_func_start sub_80861EC +sub_80861EC: + ldr r0, [r0, 0x70] + adds r0, 0xFE + movs r1, 0x63 + strb r1, [r0] + bx lr + thumb_func_end sub_80861EC + + thumb_func_start sub_80861F8 +sub_80861F8: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + adds r6, r1, 0 + lsls r0, 16 + asrs r0, 16 + adds r5, r0, 0 + lsls r2, 24 + lsrs r2, 24 + mov r10, r2 + bl sub_800EE5C + bl sub_800EF64 + movs r0, 0x46 + bl sub_803E46C + ldr r0, [r6, 0x70] + mov r8, r0 + movs r1, 0 + mov r9, r1 + str r1, [sp, 0x28] + adds r0, r5, 0 + bl sub_800E700 + adds r7, r0, 0 + add r4, sp, 0x28 + movs r2, 0x1 + negs r2, r2 + cmp r7, r2 + beq _0808624A + adds r1, r6, 0 + adds r1, 0x28 + lsls r2, r7, 24 + lsrs r2, 24 + adds r0, r4, 0 + bl sub_800569C +_0808624A: + str r5, [sp] + mov r3, r9 + str r3, [sp, 0x4] + mov r0, r8 + adds r0, 0x46 + ldrb r0, [r0] + str r0, [sp, 0x8] + mov r1, sp + ldr r0, [r6, 0xC] + cmp r0, 0 + bge _08086262 + adds r0, 0xFF +_08086262: + asrs r0, 8 + strh r0, [r1, 0xC] + mov r1, sp + ldr r0, [r6, 0x10] + cmp r0, 0 + bge _08086270 + adds r0, 0xFF +_08086270: + asrs r0, 8 + strh r0, [r1, 0xE] + mov r1, sp + ldrh r0, [r4] + strh r0, [r1, 0x10] + add r0, sp, 0x28 + ldrh r0, [r0, 0x2] + strh r0, [r1, 0x12] + str r7, [sp, 0x14] + ldr r0, _080862B4 + str r0, [sp, 0x18] + add r1, sp, 0x1C + ldr r0, _080862B8 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + mov r0, sp + bl sub_800E890 + mov r4, r10 + cmp r4, 0 + beq _080862A2 + bl sub_8085F44 + movs r0, 0x1 + negs r0, r0 +_080862A2: + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080862B4: .4byte 0x0000ffff +_080862B8: .4byte gUnknown_8107380 + thumb_func_end sub_80861F8 + + .align 2,0 diff --git a/asm/main_menu_1.s b/asm/main_menu_1.s deleted file mode 100644 index 3a2f1b7..0000000 --- a/asm/main_menu_1.s +++ /dev/null @@ -1,167 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start UpdateMainMenu -UpdateMainMenu: - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, _08035F64 - str r6, [sp] - ldr r4, _08035F68 - ldr r0, [r4] - ldr r5, [r0] - cmp r5, 0xC - beq _08035FB8 - cmp r5, 0xC - bls _08035F04 - b _0803601A -_08035F04: - cmp r5, 0x1 - beq _08035F0A - b _0803601A -_08035F0A: - adds r0, 0xA4 - bl sub_8012FD8 - ldr r0, [r4] - adds r0, 0x4 - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _08035F28 - ldr r0, [r4] - adds r0, 0x4 - mov r1, sp - bl sub_8013114 -_08035F28: - bl SetMainMenuText - lsls r0, 24 - cmp r0, 0 - beq _08035F4A - ldr r0, [r4] - adds r0, 0x4 - movs r1, 0 - movs r2, 0x1 - bl sub_8035CF4 - ldr r0, [r4] - adds r0, 0x4 - movs r1, 0x2 - movs r2, 0 - bl sub_8035CF4 -_08035F4A: - ldr r1, [sp] - cmp r1, 0xC - beq _08035FA8 - cmp r1, 0xC - bhi _08035F6C - cmp r1, 0x3 - beq _08035FAC - cmp r1, 0x3 - bcc _0803601A - cmp r1, 0x6 - bcc _0803601A - b _08035FAC - .align 2, 0 -_08035F64: .4byte 0x0000ffdc -_08035F68: .4byte gUnknown_203B34C -_08035F6C: - cmp r1, r6 - beq _08035FF2 - cmp r1, r6 - bhi _08035F7A - cmp r1, 0x10 - bhi _0803601A - b _08035FAC -_08035F7A: - ldr r0, _08035FA4 - cmp r1, r0 - bne _0803601A - ldr r0, [r4] - str r5, [r0] - str r6, [sp] - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x4 - movs r1, 0 - movs r2, 0x1 - bl sub_8035CF4 - ldr r0, [r4] - adds r0, 0x4 - movs r1, 0x2 - movs r2, 0 - bl sub_8035CF4 - b _0803601A - .align 2, 0 -_08035FA4: .4byte 0x0000ffdd -_08035FA8: - bl sub_8035DA0 -_08035FAC: - ldr r1, _08035FB4 - ldr r0, [sp] - str r0, [r1] - b _0803601A - .align 2, 0 -_08035FB4: .4byte gUnknown_203B350 -_08035FB8: - adds r0, 0x54 - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _08035FCE - ldr r0, [r4] - adds r0, 0x54 - mov r1, sp - bl sub_8013114 -_08035FCE: - ldr r1, [sp] - cmp r1, 0x12 - beq _08036008 - cmp r1, 0x12 - bhi _08035FDE - cmp r1, 0x11 - beq _08035FFC - b _0803601A -_08035FDE: - cmp r1, r6 - beq _08036018 - ldr r0, _08035FF8 - cmp r1, r0 - bne _0803601A - bl sub_803623C - ldr r1, [r4] - movs r0, 0x1 - str r0, [r1] -_08035FF2: - str r6, [sp] - b _0803601A - .align 2, 0 -_08035FF8: .4byte 0x0000ffdd -_08035FFC: - ldr r0, _08036004 - str r1, [r0] - str r5, [sp] - b _0803601A - .align 2, 0 -_08036004: .4byte gUnknown_203B354 -_08036008: - ldr r0, _08036014 - str r1, [r0] - movs r0, 0x14 - str r0, [sp] - b _0803601A - .align 2, 0 -_08036014: .4byte gUnknown_203B354 -_08036018: - str r1, [sp] -_0803601A: - ldr r0, [sp] - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end UpdateMainMenu - - .align 2,0 diff --git a/asm/memory_1.s b/asm/memory_1.s index d9f1362..f289567 100644 --- a/asm/memory_1.s +++ b/asm/memory_1.s @@ -25,7 +25,7 @@ _08003412: cmp r1, 0 bge _08003438 ldr r0, =gUnknown_80B7F88 - ldr r1, =gUnknown_80B7F94 + ldr r1, =gLocalCreateErrorMessage adds r2, r5, 0 bl FatalError .align 2, 0 diff --git a/asm/wonder_mail.s b/asm/wonder_mail.s deleted file mode 100644 index 45f3360..0000000 --- a/asm/wonder_mail.s +++ /dev/null @@ -1,941 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8028348 -sub_8028348: - push {r4-r6,lr} - sub sp, 0x14 - ldr r1, _08028368 - ldr r0, [r1] - ldr r0, [r0, 0x4] - adds r6, r1, 0 - cmp r0, 0x3C - bls _0802835C - bl _08028AF2 -_0802835C: - lsls r0, 2 - ldr r1, _0802836C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08028368: .4byte gUnknown_203B2C0 -_0802836C: .4byte _08028370 - .align 2, 0 -_08028370: - .4byte _08028A84 - .4byte _08028AB4 - .4byte _08028AE0 - .4byte _08028AF2 - .4byte _08028650 - .4byte _08028660 - .4byte _08028678 - .4byte _08028AF2 - .4byte _08028802 - .4byte _08028640 - .4byte _0802890C - .4byte _08028948 - .4byte _08028988 - .4byte _08028978 - .4byte _080289A0 - .4byte _08028990 - .4byte _080289B8 - .4byte _080289B0 - .4byte _080289C8 - .4byte _080289E8 - .4byte _08028A48 - .4byte _08028A58 - .4byte _08028A68 - .4byte _080289F8 - .4byte _08028A08 - .4byte _08028A18 - .4byte _08028850 - .4byte _08028860 - .4byte _08028868 - .4byte _08028878 - .4byte _08028890 - .4byte _080288A0 - .4byte _080288C6 - .4byte _08028AF2 - .4byte _08028888 - .4byte _08028790 - .4byte _08028AF2 - .4byte _080287C4 - .4byte _080287D4 - .4byte _080287DC - .4byte _08028AF2 - .4byte _080285CC - .4byte _080285DC - .4byte _080288C6 - .4byte _08028AF2 - .4byte _080285AC - .4byte _08028610 - .4byte _080285F8 - .4byte _08028600 - .4byte _0802856C - .4byte _080284F4 - .4byte _0802850C - .4byte _08028532 - .4byte _08028AF2 - .4byte _0802859C - .4byte _080284B8 - .4byte _080284A8 - .4byte _080284EC - .4byte _080284A0 - .4byte _08028464 - .4byte _08028490 -_08028464: - ldr r0, [r6] - movs r1, 0xEF - lsls r1, 2 - adds r0, r1 - bl sub_8006518 - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r6] - movs r2, 0x86 - lsls r2, 2 - adds r0, r2 - ldrb r0, [r0] - movs r1, 0 - bl sub_8031D70 - b _08028AF2 -_08028490: - ldr r0, _0802849C - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_0802849C: .4byte gUnknown_80DDBA8 -_080284A0: - ldr r0, _080284A4 - b _08028A6A - .align 2, 0 -_080284A4: .4byte gUnknown_80DDBFC -_080284A8: - ldr r0, _080284B4 - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _08028A72 - .align 2, 0 -_080284B4: .4byte gUnknown_80DDC30 -_080284B8: - ldr r0, [r6] - ldr r2, _080284D0 - adds r0, r2 - ldr r0, [r0] - cmp r0, 0xE - bne _080284C6 - b _08028AF2 -_080284C6: - cmp r0, 0xE - bhi _080284D4 - cmp r0, 0xD - beq _080284DA - b _08028AF2 - .align 2, 0 -_080284D0: .4byte 0x00000534 -_080284D4: - cmp r0, 0x10 - bls _080284DA - b _08028AF2 -_080284DA: - ldr r0, _080284E8 - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_080284E8: .4byte gUnknown_80DDC70 -_080284EC: - ldr r0, _080284F0 - b _08028A6A - .align 2, 0 -_080284F0: .4byte gUnknown_80DDC30 -_080284F4: - ldr r0, _08028504 - ldr r3, _08028508 - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - b _08028AF2 - .align 2, 0 -_08028504: .4byte gUnknown_80DDCBC -_08028508: .4byte 0x00000101 -_0802850C: - bl sub_8023CE8 - cmp r0, 0 - beq _08028516 - b _08028AF2 -_08028516: - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - movs r3, 0x9 - bl sub_8023868 - b _08028AF2 -_08028532: - ldr r0, [r6] - movs r4, 0xD7 - lsls r4, 2 - adds r0, r4 - bl sub_8006518 - ldr r1, [r6] - movs r5, 0x87 - lsls r5, 2 - adds r0, r1, r5 - adds r1, r4 - ldr r3, _08028564 - ldr r2, _08028568 - str r2, [sp] - movs r2, 0x1 - str r2, [sp, 0x4] - movs r2, 0 - str r2, [sp, 0x8] - str r2, [sp, 0xC] - movs r2, 0x3 - bl SetMenuItems - bl sub_8023DA4 - b _080288F6 - .align 2, 0 -_08028564: .4byte gUnknown_80DDAE4 -_08028568: .4byte gUnknown_80DDAFC -_0802856C: - ldr r0, _08028594 - ldr r3, _08028598 - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r1, [r6] - movs r2, 0x84 - lsls r2, 3 - adds r1, r2 - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - bl sub_8014248 - b _08028AF2 - .align 2, 0 -_08028594: .4byte gUnknown_80DDD2C -_08028598: .4byte gUnknown_80DDAA0 -_0802859C: - ldr r0, _080285A4 - ldr r3, _080285A8 - b _08028A1C - .align 2, 0 -_080285A4: .4byte gUnknown_80DDD88 -_080285A8: .4byte gUnknown_80DDA80 -_080285AC: - ldr r0, _080285C4 - ldr r3, _080285C8 - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r1, [r6] - movs r2, 0x84 - lsls r2, 3 - adds r1, r2 - b _08028A2E - .align 2, 0 -_080285C4: .4byte gUnknown_80DDDBC -_080285C8: .4byte gUnknown_80DDA64 -_080285CC: - ldr r0, _080285D8 - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_080285D8: .4byte gUnknown_80DDDD8 -_080285DC: - bl sub_8030894 - cmp r0, 0 - beq _080285E6 - b _08028AF2 -_080285E6: - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - movs r0, 0x4 - b _080288BA -_080285F8: - ldr r0, _080285FC - b _08028A6A - .align 2, 0 -_080285FC: .4byte gUnknown_80DDE20 -_08028600: - ldr r0, _0802860C - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _08028A72 - .align 2, 0 -_0802860C: .4byte gUnknown_80DDE58 -_08028610: - ldr r0, _08028638 - ldr r3, _0802863C - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r1, [r6] - movs r2, 0x84 - lsls r2, 3 - adds r1, r2 - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0x11 - bl sub_8014248 - b _08028AF2 - .align 2, 0 -_08028638: .4byte gUnknown_80DDEC0 -_0802863C: .4byte gUnknown_80DDB60 -_08028640: - ldr r0, _0802864C - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_0802864C: .4byte gUnknown_80DDF2C -_08028650: - ldr r0, _08028658 - ldr r3, _0802865C - b _08028A1C - .align 2, 0 -_08028658: .4byte gUnknown_80DDFB8 -_0802865C: .4byte gUnknown_80DDA48 -_08028660: - movs r0, 0 - bl nullsub_23 - ldr r0, _08028674 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80141B4 - b _08028AF2 - .align 2, 0 -_08028674: .4byte gUnknown_80DE01C -_08028678: - ldr r1, [r6] - movs r0, 0 - str r0, [r1, 0x44] - bl sub_8011830 - ldr r0, [r6] - ldr r0, [r0, 0x40] - bl sub_8037B28 - adds r4, r0, 0 - ldr r0, [r6] - str r4, [r0, 0x44] - cmp r4, 0 - bne _0802878A - ldr r1, [r0, 0x40] - cmp r1, 0x3 - beq _080286A0 - cmp r1, 0x4 - beq _080286C2 - b _08028748 -_080286A0: - adds r0, 0x48 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - ldr r0, [r6] - adds r0, 0x78 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - ldr r2, [r6] - ldr r0, [r2, 0x40] - adds r1, r2, 0 - adds r1, 0x48 - adds r2, 0x78 - b _08028740 -_080286C2: - adds r0, 0xA8 - movs r1, 0 - movs r2, 0x88 - bl MemoryFill8 - ldr r0, [r6] - movs r5, 0x98 - lsls r5, 1 - adds r0, r5 - movs r1, 0 - movs r2, 0x88 - bl MemoryFill8 - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0xE0 - strh r4, [r0] - movs r2, 0xB4 - lsls r2, 1 - adds r0, r1, r2 - strh r4, [r0] - movs r3, 0x86 - lsls r3, 2 - adds r0, r1, r3 - ldrb r0, [r0] - bl sub_8095228 - ldr r1, [r6] - adds r1, 0xA8 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r2, [r6] - ldr r4, _08028760 - adds r3, r2, r4 - movs r0, 0 - ldrsh r1, [r3, r0] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08028736 - adds r0, r2, 0 - adds r0, 0xD8 - ldr r1, _08028764 - ldr r1, [r1] - movs r2, 0 - ldrsh r3, [r3, r2] - movs r2, 0x58 - muls r2, r3 - adds r1, r2 - movs r2, 0x58 - bl memcpy -_08028736: - ldr r2, [r6] - ldr r0, [r2, 0x40] - adds r1, r2, 0 - adds r1, 0xA8 - adds r2, r5 -_08028740: - bl sub_8037D64 - ldr r1, [r6] - str r0, [r1, 0x44] -_08028748: - ldr r4, _08028768 - ldr r2, [r4] - ldr r0, [r2, 0x44] - cmp r0, 0 - bne _0802878A - ldr r0, [r2, 0x40] - cmp r0, 0x3 - beq _0802876C - cmp r0, 0x4 - beq _08028776 - b _0802878A - .align 2, 0 -_08028760: .4byte 0x00000544 -_08028764: .4byte gRecruitedPokemonRef -_08028768: .4byte gUnknown_203B2C0 -_0802876C: - adds r1, r2, 0 - adds r1, 0x48 - adds r2, 0x78 - movs r0, 0x3 - b _08028782 -_08028776: - adds r1, r2, 0 - adds r1, 0xA8 - movs r3, 0x98 - lsls r3, 1 - adds r2, r3 - movs r0, 0x4 -_08028782: - bl sub_80381F4 - ldr r1, [r4] - str r0, [r1, 0x44] -_0802878A: - bl xxx_call_start_bg_music - b _08028AF2 -_08028790: - ldr r0, [r6] - ldr r4, _080287A8 - adds r0, r4 - ldr r0, [r0] - cmp r0, 0xE - bne _0802879E - b _08028AF2 -_0802879E: - cmp r0, 0xE - bhi _080287AC - cmp r0, 0xD - beq _080287B2 - b _08028AF2 - .align 2, 0 -_080287A8: .4byte 0x00000534 -_080287AC: - cmp r0, 0x10 - bls _080287B2 - b _08028AF2 -_080287B2: - ldr r0, _080287C0 - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _08028A72 - .align 2, 0 -_080287C0: .4byte gUnknown_80DE06C -_080287C4: - ldr r0, _080287D0 - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_080287D0: .4byte gUnknown_80DE0C0 -_080287D4: - ldr r0, _080287D8 - b _08028A6A - .align 2, 0 -_080287D8: .4byte gUnknown_80DE124 -_080287DC: - ldr r0, [r6] - movs r1, 0xEF - lsls r1, 2 - adds r0, r1 - bl sub_8006518 - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r1, [r6] - adds r1, 0x8 - movs r0, 0x4 - bl sub_80151C0 - b _08028AF2 -_08028802: - ldr r4, [r6] - movs r2, 0xA7 - lsls r2, 3 - adds r0, r4, r2 - ldr r2, [r0] - cmp r2, 0 - beq _08028816 - cmp r2, 0x2 - beq _08028824 - b _08028AF2 -_08028816: - ldr r0, _0802881C - ldr r3, _08028820 - b _0802882A - .align 2, 0 -_0802881C: .4byte gUnknown_80DE178 -_08028820: .4byte gUnknown_80DDB24 -_08028824: - ldr r0, _08028848 - ldr r3, _0802884C - movs r2, 0 -_0802882A: - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - movs r2, 0x84 - lsls r2, 3 - adds r1, r4, r2 - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0xD - bl sub_8014248 - b _08028AF2 - .align 2, 0 -_08028848: .4byte gUnknown_80DE1B4 -_0802884C: .4byte gUnknown_80DDB24 -_08028850: - ldr r0, _0802885C - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_0802885C: .4byte gUnknown_80DE1E4 -_08028860: - ldr r0, _08028864 - b _08028A6A - .align 2, 0 -_08028864: .4byte gUnknown_80DE280 -_08028868: - ldr r0, _08028874 - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _08028A72 - .align 2, 0 -_08028874: .4byte gUnknown_80DE2B0 -_08028878: - ldr r0, _08028884 - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_08028884: .4byte gUnknown_80DE368 -_08028888: - ldr r0, _0802888C - b _08028A1A - .align 2, 0 -_0802888C: .4byte gUnknown_80DDDBC -_08028890: - ldr r0, _0802889C - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _08028A72 - .align 2, 0 -_0802889C: .4byte gUnknown_80DE430 -_080288A0: - bl sub_8030894 - cmp r0, 0 - beq _080288AA - b _08028AF2 -_080288AA: - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - movs r0, 0x2 -_080288BA: - movs r1, 0 - movs r2, 0 - movs r3, 0x6 - bl sub_80306A8 - b _08028AF2 -_080288C6: - ldr r0, [r6] - movs r4, 0xD7 - lsls r4, 2 - adds r0, r4 - bl sub_8006518 - ldr r1, [r6] - movs r5, 0x87 - lsls r5, 2 - adds r0, r1, r5 - adds r1, r4 - ldr r3, _08028904 - ldr r2, _08028908 - str r2, [sp] - movs r2, 0x1 - str r2, [sp, 0x4] - movs r2, 0 - str r2, [sp, 0x8] - str r2, [sp, 0xC] - movs r2, 0x3 - bl SetMenuItems - bl sub_803092C -_080288F6: - ldr r0, [r6] - adds r0, r5 - movs r1, 0x3 - movs r2, 0x1 - bl sub_8035CF4 - b _08028AF2 - .align 2, 0 -_08028904: .4byte gUnknown_80DDACC -_08028908: .4byte gUnknown_80DDAFC -_0802890C: - bl sub_8095350 - ldr r1, _0802893C - ldr r1, [r1] - movs r3, 0xA8 - lsls r3, 3 - adds r2, r1, r3 - str r0, [r2] - movs r4, 0xA7 - lsls r4, 3 - adds r1, r4 - ldr r1, [r1] - cmp r1, 0x6 - beq _08028940 - cmp r1, 0x6 - bls _0802892E - b _08028AF2 -_0802892E: - cmp r1, 0x5 - beq _08028934 - b _08028AF2 -_08028934: - movs r0, 0x2 - bl sub_8030F58 - b _08028AF2 - .align 2, 0 -_0802893C: .4byte gUnknown_203B2C0 -_08028940: - movs r0, 0x4 - bl sub_8030F58 - b _08028AF2 -_08028948: - ldr r0, _08028970 - ldr r3, _08028974 - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r1, [r6] - movs r2, 0x84 - lsls r2, 3 - adds r1, r2 - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0x5 - bl sub_8014248 - b _08028AF2 - .align 2, 0 -_08028970: .4byte gUnknown_80DE48C -_08028974: .4byte gUnknown_80DD9EC -_08028978: - ldr r0, _08028984 - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_08028984: .4byte gUnknown_80DE4B8 -_08028988: - ldr r0, _0802898C - b _08028A6A - .align 2, 0 -_0802898C: .4byte gUnknown_80DE4F0 -_08028990: - ldr r0, _0802899C - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _08028A72 - .align 2, 0 -_0802899C: .4byte gUnknown_80DE524 -_080289A0: - ldr r0, _080289AC - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_080289AC: .4byte gUnknown_80DE614 -_080289B0: - ldr r0, _080289B4 - b _08028A6A - .align 2, 0 -_080289B4: .4byte gUnknown_80DE648 -_080289B8: - ldr r0, _080289C4 - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _08028A72 - .align 2, 0 -_080289C4: .4byte gUnknown_80DE694 -_080289C8: - ldr r0, _080289E0 - ldr r3, _080289E4 - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r1, [r6] - movs r2, 0x84 - lsls r2, 3 - adds r1, r2 - b _08028A2E - .align 2, 0 -_080289E0: .4byte gUnknown_80DE6D4 -_080289E4: .4byte gUnknown_80DDA48 -_080289E8: - ldr r0, _080289F0 - ldr r3, _080289F4 - b _08028A1C - .align 2, 0 -_080289F0: .4byte gUnknown_80DE754 -_080289F4: .4byte gUnknown_80DDA48 -_080289F8: - ldr r0, _08028A04 - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _08028A72 - .align 2, 0 -_08028A04: .4byte gUnknown_80DE7B8 -_08028A08: - ldr r0, _08028A14 - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_08028A14: .4byte gUnknown_80DE7E8 -_08028A18: - ldr r0, _08028A40 -_08028A1A: - ldr r3, _08028A44 -_08028A1C: - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r1, [r6] - movs r4, 0x84 - lsls r4, 3 - adds r1, r4 -_08028A2E: - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0x8 - bl sub_8014248 - b _08028AF2 - .align 2, 0 -_08028A40: .4byte gUnknown_80DE808 -_08028A44: .4byte gUnknown_80DDA64 -_08028A48: - ldr r0, _08028A54 - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _08028A72 - .align 2, 0 -_08028A54: .4byte gUnknown_80DE830 -_08028A58: - ldr r0, _08028A64 - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_08028A64: .4byte gUnknown_80DE864 -_08028A68: - ldr r0, _08028A7C -_08028A6A: - ldr r2, [r6] - movs r4, 0x84 - lsls r4, 3 - adds r2, r4 -_08028A72: - ldr r3, _08028A80 - movs r1, 0 - bl sub_80141B4 - b _08028AF2 - .align 2, 0 -_08028A7C: .4byte gUnknown_80DE7E8 -_08028A80: .4byte 0x0000010d -_08028A84: - ldr r0, _08028AAC - ldr r3, _08028AB0 - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r1, [r6] - movs r2, 0x84 - lsls r2, 3 - adds r1, r2 - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0 - bl sub_8014248 - b _08028AF2 - .align 2, 0 -_08028AAC: .4byte gUnknown_80DE8B4 -_08028AB0: .4byte gUnknown_80DD970 -_08028AB4: - ldr r0, _08028AD8 - ldr r3, _08028ADC - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r1, [r6] - movs r4, 0x84 - lsls r4, 3 - adds r1, r4 - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - bl sub_8014248 - b _08028AF2 - .align 2, 0 -_08028AD8: .4byte gUnknown_80DE918 -_08028ADC: .4byte gUnknown_80DD970 -_08028AE0: - ldr r0, _08028AFC - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - ldr r3, _08028B00 - movs r1, 0 - bl sub_80141B4 -_08028AF2: - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08028AFC: .4byte gUnknown_80DE93C -_08028B00: .4byte 0x0000010d - thumb_func_end sub_8028348 - - .align 2,0 diff --git a/asm/wonder_mail_3.s b/asm/wonder_mail_3.s index 3d5781b..797431c 100644 --- a/asm/wonder_mail_3.s +++ b/asm/wonder_mail_3.s @@ -5,360 +5,6 @@ .text - thumb_func_start sub_802D2A8 -sub_802D2A8: - push {r4,lr} - sub sp, 0x14 - ldr r1, _0802D2C4 - ldr r0, [r1] - ldr r0, [r0] - adds r4, r1, 0 - cmp r0, 0x10 - bls _0802D2BA - b _0802D59A -_0802D2BA: - lsls r0, 2 - ldr r1, _0802D2C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802D2C4: .4byte gUnknown_203B2F8 -_0802D2C8: .4byte _0802D2CC - .align 2, 0 -_0802D2CC: - .4byte _0802D310 - .4byte _0802D398 - .4byte _0802D59A - .4byte _0802D3B4 - .4byte _0802D3C4 - .4byte _0802D3D4 - .4byte _0802D3E4 - .4byte _0802D3F4 - .4byte _0802D404 - .4byte _0802D498 - .4byte _0802D4C8 - .4byte _0802D4E4 - .4byte _0802D4F0 - .4byte _0802D4F8 - .4byte _0802D524 - .4byte _0802D558 - .4byte _0802D576 -_0802D310: - ldr r0, [r4] - ldr r0, [r0, 0xC] - bl sub_80968B0 - lsls r0, 24 - cmp r0, 0 - beq _0802D326 - movs r0, 0x3 - bl sub_802D1A0 - b _0802D59A -_0802D326: - ldr r0, [r4] - ldr r0, [r0, 0xC] - bl sub_8096F50 - lsls r0, 24 - cmp r0, 0 - beq _0802D33C - movs r0, 0x4 - bl sub_802D1A0 - b _0802D59A -_0802D33C: - ldr r1, [r4] - ldr r0, [r1, 0xC] - ldrb r0, [r0, 0x2] - cmp r0, 0x4 - bne _0802D36E - adds r0, r1, 0 - adds r0, 0x10 - bl sub_8096C08 - lsls r0, 24 - cmp r0, 0 - beq _0802D36E - bl sub_802DAA8 - lsls r0, 24 - cmp r0, 0 - beq _0802D366 - movs r0, 0x9 - bl sub_802D1A0 - b _0802D59A -_0802D366: - movs r0, 0x5 - bl sub_802D1A0 - b _0802D59A -_0802D36E: - bl sub_80969AC - cmp r0, 0x7 - ble _0802D390 - bl sub_802DADC - lsls r0, 24 - cmp r0, 0 - beq _0802D388 - movs r0, 0xA - bl sub_802D1A0 - b _0802D59A -_0802D388: - movs r0, 0x6 - bl sub_802D1A0 - b _0802D59A -_0802D390: - movs r0, 0x8 - bl sub_802D1A0 - b _0802D59A -_0802D398: - bl sub_802D73C - ldr r0, _0802D3AC - ldr r1, _0802D3B0 - ldr r3, [r1] - ldr r2, [r3, 0x70] - movs r1, 0xAC - lsls r1, 1 - adds r3, r1 - b _0802D4AA - .align 2, 0 -_0802D3AC: .4byte gUnknown_80DFE4C -_0802D3B0: .4byte gUnknown_203B2F8 -_0802D3B4: - ldr r1, [r4] - movs r0, 0x2 - str r0, [r1, 0x4] - ldr r0, _0802D3C0 - b _0802D4D0 - .align 2, 0 -_0802D3C0: .4byte gUnknown_80DFE9C -_0802D3C4: - ldr r1, [r4] - movs r0, 0x2 - str r0, [r1, 0x4] - ldr r0, _0802D3D0 - b _0802D4D0 - .align 2, 0 -_0802D3D0: .4byte gUnknown_80DFED0 -_0802D3D4: - ldr r1, [r4] - movs r0, 0x2 - str r0, [r1, 0x4] - ldr r0, _0802D3E0 - b _0802D4D0 - .align 2, 0 -_0802D3E0: .4byte gUnknown_80DFF2C -_0802D3E4: - ldr r1, [r4] - movs r0, 0x2 - str r0, [r1, 0x4] - ldr r0, _0802D3F0 - b _0802D4D0 - .align 2, 0 -_0802D3F0: .4byte gUnknown_80DFFA4 -_0802D3F4: - ldr r1, [r4] - movs r0, 0xC - str r0, [r1, 0x4] - ldr r0, _0802D400 - b _0802D4D0 - .align 2, 0 -_0802D400: .4byte gUnknown_80E0010 -_0802D404: - ldr r4, _0802D45C - ldr r1, [r4] - movs r0, 0x1 - strb r0, [r1, 0x8] - ldr r0, [r4] - ldr r0, [r0, 0xC] - bl sub_8096A78 - bl sub_8096C80 - bl sub_8096D24 - ldr r0, [r4] - ldr r0, [r0, 0xC] - ldrb r0, [r0, 0x2] - cmp r0, 0x4 - bne _0802D446 - bl sub_8096DD8 - ldr r1, [r4] - ldr r1, [r1, 0xC] - ldr r1, [r1, 0x14] - movs r2, 0x28 - bl MemoryCopy8 - bl sub_8096DE8 - ldr r1, [r4] - ldr r1, [r1, 0xC] - ldr r1, [r1, 0x18] - movs r2, 0x78 - bl MemoryCopy8 -_0802D446: - ldr r0, [r4] - ldr r0, [r0, 0xC] - ldrb r0, [r0, 0x4] - cmp r0, 0x2C - beq _0802D46E - cmp r0, 0x2C - bgt _0802D460 - cmp r0, 0x2B - beq _0802D46A - b _0802D484 - .align 2, 0 -_0802D45C: .4byte gUnknown_203B2F8 -_0802D460: - cmp r0, 0x2D - beq _0802D472 - cmp r0, 0x2E - beq _0802D47C - b _0802D484 -_0802D46A: - movs r0, 0x2A - b _0802D474 -_0802D46E: - movs r0, 0x2B - b _0802D474 -_0802D472: - movs r0, 0x2C -_0802D474: - movs r1, 0x1 - bl sub_8097418 - b _0802D484 -_0802D47C: - movs r0, 0x2D - movs r1, 0x1 - bl sub_8097418 -_0802D484: - ldr r0, _0802D490 - ldr r1, [r0] - movs r0, 0x2 - str r0, [r1, 0x4] - ldr r0, _0802D494 - b _0802D4D0 - .align 2, 0 -_0802D490: .4byte gUnknown_203B2F8 -_0802D494: .4byte gUnknown_80E0074 -_0802D498: - bl sub_802D690 - ldr r0, _0802D4C0 - ldr r1, _0802D4C4 - ldr r3, [r1] - ldr r2, [r3, 0x74] - movs r4, 0xAC - lsls r4, 1 - adds r3, r4 -_0802D4AA: - movs r4, 0 - str r4, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - bl sub_8014248 - b _0802D59A - .align 2, 0 -_0802D4C0: .4byte gUnknown_80E0094 -_0802D4C4: .4byte gUnknown_203B2F8 -_0802D4C8: - ldr r1, [r4] - movs r0, 0xB - str r0, [r1, 0x4] - ldr r0, _0802D4DC -_0802D4D0: - ldr r3, _0802D4E0 - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - b _0802D59A - .align 2, 0 -_0802D4DC: .4byte gUnknown_80E0108 -_0802D4E0: .4byte 0x00000101 -_0802D4E4: - movs r0, 0 - movs r1, 0 - movs r2, 0x4 - bl sub_802C4C8 - b _0802D59A -_0802D4F0: - movs r0, 0x1 - bl sub_802C640 - b _0802D59A -_0802D4F8: - bl sub_802C750 - ldr r0, _0802D520 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x78 - movs r3, 0x8C - lsls r3, 1 - adds r1, r2, r3 - movs r4, 0xCC - lsls r4, 1 - adds r3, r2, r4 - ldr r2, [r2, 0x6C] - str r2, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r2, 0 - bl sub_8012D60 - b _0802D59A - .align 2, 0 -_0802D520: .4byte gUnknown_203B2F8 -_0802D524: - bl sub_802C750 - ldr r4, _0802D554 - ldr r0, [r4] - adds r0, 0x78 - movs r1, 0 - bl sub_8012EA4 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0xC8 - movs r2, 0xAC - lsls r2, 1 - adds r1, r2 - movs r2, 0x4 - str r2, [sp] - movs r2, 0x3 - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8012D60 - b _0802D59A - .align 2, 0 -_0802D554: .4byte gUnknown_203B2F8 -_0802D558: - ldr r0, [r4] - ldrb r0, [r0, 0x10] - bl sub_8096AB4 - ldr r1, [r4] - adds r1, 0x14 - bl sub_803B35C - ldr r0, [r4] - movs r1, 0x3 - str r1, [r0, 0x14] - adds r0, 0x14 - bl sub_802DE84 - b _0802D59A -_0802D576: - ldr r1, [r4] - ldr r0, [r1, 0xC] - adds r1, 0x14 - bl sub_803B35C - ldr r0, [r4] - movs r1, 0x3 - str r1, [r0, 0x14] - adds r0, 0x58 - movs r1, 0 - strb r1, [r0] - ldr r0, [r4] - ldr r1, [r0, 0xC] - ldr r1, [r1, 0x18] - str r1, [r0, 0x64] - adds r0, 0x14 - bl sub_802DE84 -_0802D59A: - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802D2A8 - thumb_func_start sub_802D5A4 sub_802D5A4: push {r4-r7,lr} diff --git a/asm/wonder_mail_3_mid.s b/asm/wonder_mail_3_mid.s index 208805c..4aa1e3b 100644 --- a/asm/wonder_mail_3_mid.s +++ b/asm/wonder_mail_3_mid.s @@ -5,1334 +5,6 @@ .text - thumb_func_start sub_802EF48 -sub_802EF48: - push {r4,lr} - ldr r4, _0802EF68 - movs r0, 0xA8 - lsls r0, 1 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] - movs r0, 0 - bl sub_802EFEC - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0802EF68: .4byte gUnknown_203B30C - thumb_func_end sub_802EF48 - - thumb_func_start sub_802EF6C -sub_802EF6C: - push {lr} - ldr r0, _0802EF84 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0x5 - bhi _0802EFBA - lsls r0, 2 - ldr r1, _0802EF88 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802EF84: .4byte gUnknown_203B30C -_0802EF88: .4byte _0802EF8C - .align 2, 0 -_0802EF8C: - .4byte _0802EFA4 - .4byte _0802EFA4 - .4byte _0802EFAA - .4byte _0802EFB0 - .4byte _0802EFB6 - .4byte _0802EFBA -_0802EFA4: - bl sub_802F148 - b _0802EFBE -_0802EFAA: - bl sub_802F184 - b _0802EFBE -_0802EFB0: - bl sub_802F1E8 - b _0802EFBE -_0802EFB6: - movs r0, 0x3 - b _0802EFC0 -_0802EFBA: - movs r0, 0x2 - b _0802EFC0 -_0802EFBE: - movs r0, 0 -_0802EFC0: - pop {r1} - bx r1 - thumb_func_end sub_802EF6C - - thumb_func_start sub_802EFC4 -sub_802EFC4: - ldr r0, _0802EFCC - ldr r0, [r0] - ldrb r0, [r0, 0x4] - bx lr - .align 2, 0 -_0802EFCC: .4byte gUnknown_203B30C - thumb_func_end sub_802EFC4 - - thumb_func_start sub_802EFD0 -sub_802EFD0: - push {r4,lr} - ldr r4, _0802EFE8 - ldr r0, [r4] - cmp r0, 0 - beq _0802EFE2 - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802EFE2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802EFE8: .4byte gUnknown_203B30C - thumb_func_end sub_802EFD0 - - thumb_func_start sub_802EFEC -sub_802EFEC: - push {lr} - ldr r1, _0802F000 - ldr r1, [r1] - str r0, [r1] - bl sub_802F004 - bl sub_802F088 - pop {r0} - bx r0 - .align 2, 0 -_0802F000: .4byte gUnknown_203B30C - thumb_func_end sub_802EFEC - - thumb_func_start sub_802F004 -sub_802F004: - push {r4-r7,lr} - ldr r4, _0802F03C - ldr r0, [r4] - adds r0, 0xF0 - bl sub_8006518 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0x2 - bne _0802F044 - bl sub_802F108 - ldr r2, [r4] - movs r0, 0x90 - lsls r0, 1 - adds r2, r0 - ldr r1, _0802F040 - ldm r1!, {r3,r5,r6} - stm r2!, {r3,r5,r6} - ldm r1!, {r3,r5,r7} - stm r2!, {r3,r5,r7} - ldr r1, [r4] - adds r0, r1, r0 - adds r1, 0xB0 - bl sub_8012CAC - b _0802F066 - .align 2, 0 -_0802F03C: .4byte gUnknown_203B30C -_0802F040: .4byte gUnknown_80E03F4 -_0802F044: - mov r12, r4 - ldr r4, _0802F080 - movs r2, 0 - movs r3, 0x3 -_0802F04C: - mov r6, r12 - ldr r1, [r6] - adds r1, r2 - adds r1, 0xF0 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r2, 0x18 - subs r3, 0x1 - cmp r3, 0 - bge _0802F04C -_0802F066: - bl ResetUnusedInputStruct - ldr r0, _0802F084 - ldr r0, [r0] - adds r0, 0xF0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802F080: .4byte gUnknown_80E03C4 -_0802F084: .4byte gUnknown_203B30C - thumb_func_end sub_802F004 - - thumb_func_start sub_802F088 -sub_802F088: - push {r4-r6,lr} - sub sp, 0x8 - ldr r6, _0802F0A0 - ldr r0, [r6] - ldr r5, [r0] - cmp r5, 0x1 - beq _0802F0B6 - cmp r5, 0x1 - bgt _0802F0A4 - cmp r5, 0 - beq _0802F0AE - b _0802F100 - .align 2, 0 -_0802F0A0: .4byte gUnknown_203B30C -_0802F0A4: - cmp r5, 0x2 - beq _0802F0BE - cmp r5, 0x3 - beq _0802F0DA - b _0802F100 -_0802F0AE: - movs r0, 0 - bl sub_802CDD4 - b _0802F100 -_0802F0B6: - movs r0, 0x1 - bl sub_802CED8 - b _0802F100 -_0802F0BE: - bl sub_802CFD0 - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0x60 - adds r1, 0xB0 - movs r2, 0x3 - str r2, [sp] - str r5, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8012D60 - b _0802F100 -_0802F0DA: - ldrb r0, [r0, 0x4] - bl sub_803B344 - adds r4, r0, 0 - ldr r1, [r6] - adds r1, 0x8 - bl sub_803B35C - ldr r0, [r6] - str r5, [r0, 0x8] - adds r0, 0x4C - movs r1, 0 - strb r1, [r0] - ldr r0, [r6] - ldr r1, [r4, 0x18] - str r1, [r0, 0x58] - adds r0, 0x8 - bl sub_802DE84 -_0802F100: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_802F088 - - thumb_func_start sub_802F108 -sub_802F108: - ldr r0, _0802F13C - ldr r0, [r0] - mov r12, r0 - movs r3, 0 - mov r1, r12 - adds r1, 0xB0 - ldr r0, _0802F140 - str r0, [r1] - adds r1, 0x4 - movs r0, 0x2 - str r0, [r1] - movs r2, 0x1 - adds r1, 0x4 - ldr r0, _0802F144 - ldr r0, [r0] - str r0, [r1] - adds r1, 0x4 - movs r0, 0x3 - str r0, [r1] - mov r0, r12 - adds r0, 0xC0 - str r3, [r0] - adds r0, 0x4 - str r2, [r0] - bx lr - .align 2, 0 -_0802F13C: .4byte gUnknown_203B30C -_0802F140: .4byte gUnknown_80E040C -_0802F144: .4byte gUnknown_80D4970 - thumb_func_end sub_802F108 - - thumb_func_start sub_802F148 -sub_802F148: - push {lr} - movs r0, 0x1 - bl sub_802CE5C - cmp r0, 0x2 - beq _0802F174 - cmp r0, 0x2 - bcc _0802F17E - cmp r0, 0x3 - bne _0802F17E - bl sub_802CEBC - ldr r1, _0802F170 - ldr r1, [r1] - strb r0, [r1, 0x4] - movs r0, 0x2 - bl sub_802EFEC - b _0802F17E - .align 2, 0 -_0802F170: .4byte gUnknown_203B30C -_0802F174: - bl sub_802CF14 - movs r0, 0x5 - bl sub_802EFEC -_0802F17E: - pop {r0} - bx r0 - thumb_func_end sub_802F148 - - thumb_func_start sub_802F184 -sub_802F184: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - bl sub_802CE5C - ldr r4, _0802F1BC - ldr r0, [r4] - adds r0, 0x60 - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802F1AA - ldr r0, [r4] - adds r0, 0x60 - mov r1, sp - bl sub_8013114 -_0802F1AA: - ldr r0, [sp] - cmp r0, 0x2 - beq _0802F1C6 - cmp r0, 0x2 - bgt _0802F1C0 - cmp r0, 0x1 - beq _0802F1DA - b _0802F1E0 - .align 2, 0 -_0802F1BC: .4byte gUnknown_203B30C -_0802F1C0: - cmp r0, 0x3 - beq _0802F1D2 - b _0802F1E0 -_0802F1C6: - bl sub_802CF14 - movs r0, 0x4 - bl sub_802EFEC - b _0802F1E0 -_0802F1D2: - movs r0, 0x3 - bl sub_802EFEC - b _0802F1E0 -_0802F1DA: - movs r0, 0x1 - bl sub_802EFEC -_0802F1E0: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802F184 - - thumb_func_start sub_802F1E8 -sub_802F1E8: - push {lr} - bl sub_802DEE0 - cmp r0, 0x1 - bls _0802F200 - cmp r0, 0x3 - bhi _0802F200 - bl sub_802DF24 - movs r0, 0x1 - bl sub_802EFEC -_0802F200: - pop {r0} - bx r0 - thumb_func_end sub_802F1E8 - - thumb_func_start sub_802F204 -sub_802F204: - push {r4-r6,lr} - adds r6, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r5, _0802F28C - movs r0, 0x84 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] - str r6, [r0, 0x10] - movs r6, 0 - str r6, [r0, 0xC] - strb r4, [r0, 0x8] - ldr r1, [r5] - ldr r0, _0802F290 - ldr r1, [r1, 0x10] - bl strcpy - ldr r4, _0802F294 - bl sub_808D33C - adds r1, r0, 0 - adds r0, r4, 0 - bl sub_808DA34 - ldr r0, [r5] - ldr r0, [r0, 0x10] - movs r1, 0x14 - ldrsh r0, [r0, r1] - bl GetDialogueSpriteDataPtr - ldr r1, [r5] - str r0, [r1, 0x14] - str r6, [r1, 0x18] - adds r1, 0x20 - strb r6, [r1] - ldr r0, [r5] - adds r0, 0x21 - strb r6, [r0] - ldr r0, [r5] - adds r0, 0x22 - strb r6, [r0] - ldr r5, [r5] - movs r0, 0x2 - strh r0, [r5, 0x1C] - movs r0, 0x8 - strh r0, [r5, 0x1E] - ldr r0, [r5, 0x14] - cmp r0, 0 - beq _0802F27C - ldr r0, [r0, 0x4] - str r0, [r5, 0x18] -_0802F27C: - movs r0, 0 - bl sub_802F2E8 - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0802F28C: .4byte gUnknown_203B310 -_0802F290: .4byte gUnknown_202E5D8 -_0802F294: .4byte gAvailablePokemonNames - thumb_func_end sub_802F204 - - thumb_func_start sub_802F298 -sub_802F298: - push {lr} - ldr r0, _0802F2AC - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0x5 - beq _0802F2B0 - cmp r0, 0x9 - bne _0802F2B6 - movs r0, 0x3 - b _0802F2BC - .align 2, 0 -_0802F2AC: .4byte gUnknown_203B310 -_0802F2B0: - bl sub_802F6FC - b _0802F2BA -_0802F2B6: - bl sub_802F718 -_0802F2BA: - movs r0, 0 -_0802F2BC: - pop {r1} - bx r1 - thumb_func_end sub_802F298 - - thumb_func_start sub_802F2C0 -sub_802F2C0: - push {r4,lr} - ldr r4, _0802F2E4 - ldr r0, [r4] - cmp r0, 0 - beq _0802F2DE - ldr r0, [r0, 0x14] - cmp r0, 0 - beq _0802F2D4 - bl CloseFile -_0802F2D4: - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802F2DE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802F2E4: .4byte gUnknown_203B310 - thumb_func_end sub_802F2C0 - - thumb_func_start sub_802F2E8 -sub_802F2E8: - push {lr} - ldr r1, _0802F2FC - ldr r1, [r1] - str r0, [r1] - bl sub_802F300 - bl HandleMissionReward - pop {r0} - bx r0 - .align 2, 0 -_0802F2FC: .4byte gUnknown_203B310 - thumb_func_end sub_802F2E8 - - thumb_func_start sub_802F300 -sub_802F300: - push {r4-r7,lr} - ldr r4, _0802F350 - ldr r1, [r4] - ldr r0, [r1] - cmp r0, 0 - bne _0802F348 - adds r0, r1, 0 - adds r0, 0x24 - bl sub_8006518 - mov r12, r4 - ldr r4, _0802F354 - movs r3, 0 - movs r2, 0x3 -_0802F31C: - mov r0, r12 - ldr r1, [r0] - adds r1, r3 - adds r1, 0x24 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r3, 0x18 - subs r2, 0x1 - cmp r2, 0 - bge _0802F31C - bl ResetUnusedInputStruct - ldr r0, _0802F350 - ldr r0, [r0] - adds r0, 0x24 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C -_0802F348: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802F350: .4byte gUnknown_203B310 -_0802F354: .4byte gUnknown_80E041C - thumb_func_end sub_802F300 - - thumb_func_start HandleMissionReward -HandleMissionReward: - push {r4-r6,lr} - sub sp, 0x10 - ldr r1, _0802F374 - ldr r0, [r1] - ldr r0, [r0] - adds r6, r1, 0 - cmp r0, 0x9 - bls _0802F36A - b _0802F6E4 -_0802F36A: - lsls r0, 2 - ldr r1, _0802F378 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802F374: .4byte gUnknown_203B310 -_0802F378: .4byte _0802F37C - .align 2, 0 -_0802F37C: - .4byte _0802F3A4 - .4byte _0802F3E8 - .4byte _0802F444 - .4byte _0802F494 - .4byte _0802F524 - .4byte _0802F5CC - .4byte _0802F614 - .4byte _0802F630 - .4byte _0802F6A4 - .4byte _0802F6E4 -_0802F3A4: - ldr r2, [r6] - ldr r0, [r2, 0x10] - ldr r1, [r0, 0x18] - cmp r1, 0 - bne _0802F3B6 - movs r0, 0x2 - bl sub_802F2E8 - b _0802F6E4 -_0802F3B6: - ldr r0, _0802F3D4 - str r1, [r0] - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _0802F3E0 - ldr r0, _0802F3D8 - adds r2, 0x14 - ldr r3, _0802F3DC - movs r1, 0 - bl sub_80141B4 - ldr r1, [r6] - movs r0, 0x1 - str r0, [r1, 0x4] - b _0802F6E4 - .align 2, 0 -_0802F3D4: .4byte gUnknown_202DE30 -_0802F3D8: .4byte gUnknown_80E0434 -_0802F3DC: .4byte 0x0000010d -_0802F3E0: - movs r0, 0x1 - bl sub_802F2E8 - b _0802F6E4 -_0802F3E8: - movs r0, 0xCB - bl PlaySound - ldr r0, _0802F414 - ldr r0, [r0] - ldr r0, [r0, 0x10] - ldr r0, [r0, 0x18] - bl AddToTeamMoney - movs r0, 0 - bl sub_808D544 - cmp r0, 0x1 - bgt _0802F420 - ldr r0, _0802F418 - ldr r3, _0802F41C - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - b _0802F42C - .align 2, 0 -_0802F414: .4byte gUnknown_203B310 -_0802F418: .4byte gUnknown_80E045C -_0802F41C: .4byte 0x00000101 -_0802F420: - ldr r0, _0802F438 - ldr r3, _0802F43C - movs r1, 0 - movs r2, 0 - bl sub_80141B4 -_0802F42C: - ldr r0, _0802F440 - ldr r1, [r0] - movs r0, 0x2 - str r0, [r1, 0x4] - b _0802F6E4 - .align 2, 0 -_0802F438: .4byte gUnknown_80E0484 -_0802F43C: .4byte 0x00000101 -_0802F440: .4byte gUnknown_203B310 -_0802F444: - ldr r0, [r6] - ldr r0, [r0, 0x10] - adds r1, r0, 0 - adds r1, 0x20 - ldrb r0, [r1] - cmp r0, 0 - bne _0802F45A - movs r0, 0x4 - bl sub_802F2E8 - b _0802F6E4 -_0802F45A: - ldr r0, _0802F480 - ldrb r1, [r1] - movs r2, 0 - bl sub_8092578 - ldr r2, [r6] - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _0802F48C - ldr r0, _0802F484 - adds r2, 0x14 - ldr r3, _0802F488 - movs r1, 0 - bl sub_80141B4 - ldr r1, [r6] - movs r0, 0x3 - str r0, [r1, 0x4] - b _0802F6E4 - .align 2, 0 -_0802F480: .4byte gUnknown_202E628 -_0802F484: .4byte gUnknown_80E04B4 -_0802F488: .4byte 0x0000010d -_0802F48C: - movs r0, 0x3 - bl sub_802F2E8 - b _0802F6E4 -_0802F494: - ldr r4, _0802F4B4 - ldr r0, [r4] - ldr r0, [r0, 0x10] - adds r0, 0x20 - ldrb r0, [r0] - bl GetFriendAreaStatus - lsls r0, 24 - cmp r0, 0 - beq _0802F4BC - movs r0, 0xFA - lsls r0, 2 - bl AddToTeamMoney - ldr r0, _0802F4B8 - b _0802F4DA - .align 2, 0 -_0802F4B4: .4byte gUnknown_203B310 -_0802F4B8: .4byte gUnknown_80E04F4 -_0802F4BC: - movs r0, 0 - bl sub_808D544 - cmp r0, 0x1 - bgt _0802F4F0 - ldr r0, [r4] - ldr r0, [r0, 0x10] - adds r0, 0x20 - ldrb r0, [r0] - bl UnlockFriendArea - movs r0, 0xCE - bl PlaySound - ldr r0, _0802F4E8 -_0802F4DA: - ldr r3, _0802F4EC - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - b _0802F50E - .align 2, 0 -_0802F4E8: .4byte gUnknown_80E05C0 -_0802F4EC: .4byte 0x00000101 -_0802F4F0: - ldr r0, [r4] - ldr r0, [r0, 0x10] - adds r0, 0x20 - ldrb r0, [r0] - bl UnlockFriendArea - movs r0, 0xCE - bl PlaySound - ldr r0, _0802F518 - ldr r3, _0802F51C - movs r1, 0 - movs r2, 0 - bl sub_80141B4 -_0802F50E: - ldr r0, _0802F520 - ldr r1, [r0] - movs r0, 0x4 - str r0, [r1, 0x4] - b _0802F6E4 - .align 2, 0 -_0802F518: .4byte gUnknown_80E05FC -_0802F51C: .4byte 0x00000101 -_0802F520: .4byte gUnknown_203B310 -_0802F524: - ldr r0, [r6] - ldr r0, [r0, 0x10] - ldrb r2, [r0, 0x1C] - cmp r2, 0 - beq _0802F628 - ldr r0, [r0, 0x18] - cmp r0, 0 - bne _0802F620 - lsls r2, 16 - ldr r1, _0802F564 - ldr r0, [sp, 0xC] - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0xC] - lsrs r0, 16 - lsls r0, 24 - lsrs r0, 24 - bl IsThrowableItem - lsls r0, 24 - cmp r0, 0 - beq _0802F56C - ldr r0, [r6] - ldr r0, [r0, 0x10] - ldrb r1, [r0, 0x1F] - lsls r1, 8 - ldr r2, _0802F568 - ldr r0, [sp, 0xC] - ands r0, r2 - orrs r0, r1 - b _0802F572 - .align 2, 0 -_0802F564: .4byte 0xff00ffff -_0802F568: .4byte 0xffff00ff -_0802F56C: - ldr r1, _0802F5B4 - ldr r0, [sp, 0xC] - ands r0, r1 -_0802F572: - str r0, [sp, 0xC] - ldr r1, _0802F5B8 - ldr r0, [sp, 0xC] - ands r0, r1 - movs r2, 0x1 - orrs r0, r2 - str r0, [sp, 0xC] - movs r1, 0 - str r1, [sp] - mov r0, sp - strb r1, [r0, 0x4] - strb r2, [r0, 0x8] - ldr r0, _0802F5BC - add r1, sp, 0xC - mov r2, sp - bl sub_8090E14 - ldr r4, _0802F5C0 - ldr r2, [r4] - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _0802F620 - ldr r0, _0802F5C4 - adds r2, 0x14 - ldr r3, _0802F5C8 - movs r1, 0 - bl sub_80141B4 - ldr r1, [r4] - movs r0, 0x5 - str r0, [r1, 0x4] - b _0802F6E4 - .align 2, 0 -_0802F5B4: .4byte 0xffff00ff -_0802F5B8: .4byte 0xffffff00 -_0802F5BC: .4byte gUnknown_202DEA8 -_0802F5C0: .4byte gUnknown_203B310 -_0802F5C4: .4byte gUnknown_80E0640 -_0802F5C8: .4byte 0x0000010d -_0802F5CC: - ldr r0, [r6] - ldr r2, [r0, 0x10] - adds r1, r2, 0 - adds r1, 0x1C - ldr r3, [r0, 0xC] - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0 - bne _0802F5E6 - movs r0, 0x6 - bl sub_802F2E8 - b _0802F6E4 -_0802F5E6: - cmp r3, 0 - bne _0802F5FC - ldr r0, [r2, 0x18] - cmp r0, 0 - bne _0802F5FC - ldrb r1, [r2, 0x1C] - ldrb r2, [r2, 0x1F] - movs r0, 0 - bl sub_801B60C - b _0802F6E4 -_0802F5FC: - ldr r1, [r6] - ldr r2, [r1, 0x10] - adds r0, r2, 0 - adds r0, 0x1C - ldr r1, [r1, 0xC] - adds r0, r1 - ldrb r1, [r0] - ldrb r2, [r2, 0x1F] - movs r0, 0x1 - bl sub_801B60C - b _0802F6E4 -_0802F614: - ldr r1, [r6] - ldr r0, [r1, 0xC] - adds r0, 0x1 - str r0, [r1, 0xC] - cmp r0, 0x2 - bgt _0802F628 -_0802F620: - movs r0, 0x5 - bl sub_802F2E8 - b _0802F6E4 -_0802F628: - movs r0, 0x7 - bl sub_802F2E8 - b _0802F6E4 -_0802F630: - adds r5, r6, 0 - ldr r0, [r5] - ldr r0, [r0, 0x10] - ldr r0, [r0, 0x24] - cmp r0, 0 - bne _0802F644 - movs r0, 0x9 - bl sub_802F2E8 - b _0802F6E4 -_0802F644: - bl GetRescueTeamRank - ldr r1, [r5] - strb r0, [r1, 0x9] - ldr r0, [r5] - ldr r0, [r0, 0x10] - ldr r0, [r0, 0x24] - bl AddToTeamRankPts - movs r0, 0xCB - bl PlaySound - ldr r4, [r5] - bl GetRescueTeamRank - ldrb r1, [r4, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - beq _0802F672 - ldr r1, [r5] - movs r0, 0x8 - b _0802F676 -_0802F672: - ldr r1, [r6] - movs r0, 0x9 -_0802F676: - str r0, [r1, 0x4] - ldr r1, _0802F694 - ldr r0, _0802F698 - ldr r0, [r0] - ldr r0, [r0, 0x10] - ldr r0, [r0, 0x24] - str r0, [r1] - ldr r0, _0802F69C - ldr r3, _0802F6A0 - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - b _0802F6E4 - .align 2, 0 -_0802F694: .4byte gUnknown_202DE30 -_0802F698: .4byte gUnknown_203B310 -_0802F69C: .4byte gUnknown_80E0670 -_0802F6A0: .4byte 0x00000101 -_0802F6A4: - movs r0, 0xC9 - bl PlaySound - ldr r0, _0802F6EC - ldr r1, [r0] - movs r0, 0x9 - str r0, [r1, 0x4] - ldrb r0, [r1, 0x9] - bl GetTeamRankString - adds r1, r0, 0 - ldr r4, _0802F6F0 - adds r0, r4, 0 - bl strcpy - bl GetRescueTeamRank - lsls r0, 24 - lsrs r0, 24 - bl GetTeamRankString - adds r1, r0, 0 - adds r4, 0x50 - adds r0, r4, 0 - bl strcpy - ldr r0, _0802F6F4 - ldr r3, _0802F6F8 - movs r1, 0 - movs r2, 0 - bl sub_80141B4 -_0802F6E4: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802F6EC: .4byte gUnknown_203B310 -_0802F6F0: .4byte gUnknown_202E038 -_0802F6F4: .4byte gUnknown_80E06A8 -_0802F6F8: .4byte 0x00000101 - thumb_func_end HandleMissionReward - - thumb_func_start sub_802F6FC -sub_802F6FC: - push {lr} - bl sub_801B6AC - cmp r0, 0x1 - bls _0802F714 - cmp r0, 0x3 - bhi _0802F714 - bl sub_801B72C - movs r0, 0x6 - bl sub_802F2E8 -_0802F714: - pop {r0} - bx r0 - thumb_func_end sub_802F6FC - - thumb_func_start sub_802F718 -sub_802F718: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802F730 - ldr r0, _0802F738 - ldr r0, [r0] - ldr r0, [r0, 0x4] - bl sub_802F2E8 -_0802F730: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0802F738: .4byte gUnknown_203B310 - thumb_func_end sub_802F718 - - thumb_func_start sub_802F73C -sub_802F73C: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - adds r7, r1, 0 - mov r8, r2 - lsls r3, 24 - lsrs r6, r3, 24 - bl sub_802FCF0 - lsls r0, 24 - cmp r0, 0 - beq _0802F75A - movs r0, 0 - b _0802F836 -_0802F75A: - ldr r4, _0802F7AC - ldr r0, [r4] - cmp r0, 0 - bne _0802F76E - movs r0, 0xAE - lsls r0, 1 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] -_0802F76E: - ldr r0, [r4] - adds r0, 0xB8 - strb r6, [r0] - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0xF0 - str r5, [r1] - adds r2, r0, 0 - adds r2, 0xF4 - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 3 - adds r1, 0xF8 - adds r1, r0, r1 - str r1, [r2] - adds r0, 0xF8 - bl sub_8006518 - cmp r6, 0 - beq _0802F7B4 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0xF0 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0xF8 - ldr r0, _0802F7B0 - b _0802F7C8 - .align 2, 0 -_0802F7AC: .4byte gUnknown_203B314 -_0802F7B0: .4byte gUnknown_80E072C -_0802F7B4: - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0xF0 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0xF8 - ldr r0, _0802F840 -_0802F7C8: - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r4, _0802F844 - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0xF4 - ldr r1, [r0] - movs r3, 0xAC - lsls r3, 1 - adds r0, r2, r3 - str r0, [r1, 0x14] - cmp r7, 0 - beq _0802F7FC - adds r0, r2, 0 - adds r0, 0xF0 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - subs r3, 0x58 - adds r1, r2, r3 - adds r1, r0 - ldr r0, [r7] - str r0, [r1] -_0802F7FC: - ldr r0, [r4] - adds r0, 0xF4 - ldr r0, [r0] - mov r1, r8 - bl sub_8012D08 - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0xF8 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r4, [r4] - adds r4, 0xBC - bl sub_802FBF4 - adds r1, r0, 0 - adds r0, r4, 0 - mov r2, r8 - adds r3, r5, 0 - bl sub_8013818 - bl sub_802F9C0 - bl sub_802FA50 - movs r0, 0x1 -_0802F836: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0802F840: .4byte gUnknown_80E0714 -_0802F844: .4byte gUnknown_203B314 - thumb_func_end sub_802F73C - - thumb_func_start sub_802F848 -sub_802F848: - push {r4,r5,lr} - lsls r0, 16 - asrs r4, r0, 16 - movs r3, 0 - ldr r1, _0802F858 - ldr r0, [r1] - b _0802F884 - .align 2, 0 -_0802F858: .4byte gUnknown_203B314 -_0802F85C: - ldr r2, [r1] - lsls r0, r3, 1 - adds r0, r2, r0 - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r0, r4 - bne _0802F880 - adds r0, r2, 0 - adds r0, 0xBC - adds r1, r3, 0 - bl sub_8013878 - bl sub_802F9C0 - bl sub_802FA50 - movs r0, 0x1 - b _0802F89A -_0802F880: - adds r3, 0x1 - adds r0, r2, 0 -_0802F884: - adds r0, 0xDE - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r3, r0 - blt _0802F85C - ldr r0, [r1] - adds r0, 0xBC - movs r1, 0 - bl sub_8013878 - movs r0, 0 -_0802F89A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_802F848 - - thumb_func_start sub_802F8A0 -sub_802F8A0: - push {r4,lr} - lsls r0, 24 - cmp r0, 0 - bne _0802F8BC - ldr r0, _0802F8B8 - ldr r0, [r0] - adds r0, 0xBC - bl sub_8013660 - movs r0, 0 - b _0802F904 - .align 2, 0 -_0802F8B8: .4byte gUnknown_203B314 -_0802F8BC: - ldr r4, _0802F8D8 - ldr r0, [r4] - adds r0, 0xBC - bl GetKeyPress - cmp r0, 0x1 - beq _0802F8DC - cmp r0, 0x2 - bne _0802F8E6 - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _0802F904 - .align 2, 0 -_0802F8D8: .4byte gUnknown_203B314 -_0802F8DC: - movs r0, 0 - bl PlayMenuSoundEffect - movs r0, 0x3 - b _0802F904 -_0802F8E6: - ldr r0, [r4] - adds r0, 0xBC - movs r1, 0x1 - bl sub_80138B8 - lsls r0, 24 - cmp r0, 0 - bne _0802F8FA - movs r0, 0 - b _0802F904 -_0802F8FA: - bl sub_802F9C0 - bl sub_802FA50 - movs r0, 0x1 -_0802F904: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_802F8A0 - - thumb_func_start sub_802F90C -sub_802F90C: - ldr r0, _0802F934 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0xDA - movs r3, 0 - ldrsh r1, [r0, r3] - subs r0, 0x2 - movs r3, 0 - ldrsh r0, [r0, r3] - muls r0, r1 - adds r1, r2, 0 - adds r1, 0xD4 - movs r3, 0 - ldrsh r1, [r1, r3] - adds r0, r1 - lsls r0, 1 - adds r0, r2, r0 - movs r1, 0 - ldrsh r0, [r0, r1] - bx lr - .align 2, 0 -_0802F934: .4byte gUnknown_203B314 - thumb_func_end sub_802F90C - - thumb_func_start sub_802F938 -sub_802F938: - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_802FBF4 - adds r1, r0, 0 - ldr r5, _0802F970 - ldr r0, [r5] - adds r2, r0, 0 - adds r2, 0xDE - strh r1, [r2] - adds r0, 0xBC - bl sub_8013984 - bl sub_802F9C0 - bl sub_802FA50 - cmp r4, 0 - beq _0802F96A - ldr r0, [r5] - adds r0, 0xBC - bl AddMenuCursorSprite -_0802F96A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802F970: .4byte gUnknown_203B314 - thumb_func_end sub_802F938 - - thumb_func_start sub_802F974 -sub_802F974: - push {r4,r5,lr} - ldr r4, _0802F9B8 - ldr r2, [r4] - cmp r2, 0 - beq _0802F9B2 - adds r0, r2, 0 - adds r0, 0xF0 - ldr r0, [r0] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0xF8 - ldr r0, _0802F9BC - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0xF8 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802F9B2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802F9B8: .4byte gUnknown_203B314 -_0802F9BC: .4byte gUnknown_80E06FC - thumb_func_end sub_802F974 - thumb_func_start sub_802F9C0 sub_802F9C0: push {r4,r5,lr} diff --git a/asm/wonder_mail_4.s b/asm/wonder_mail_4.s index c946c5f..ea27a3f 100644 --- a/asm/wonder_mail_4.s +++ b/asm/wonder_mail_4.s @@ -5,263 +5,6 @@ .text - thumb_func_start sub_80306A8 -sub_80306A8: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - adds r5, r1, 0 - adds r7, r2, 0 - mov r8, r3 - bl sub_8030C20 - lsls r0, 24 - cmp r0, 0 - beq _080306C4 - movs r0, 0 - b _08030756 -_080306C4: - ldr r6, _08030760 - movs r0, 0xC4 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r6] - str r4, [r0, 0x20] - str r5, [r0, 0x58] - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 3 - adds r1, 0x60 - adds r1, r0, r1 - str r1, [r0, 0x5C] - adds r0, 0x60 - bl sub_8006518 - ldr r1, [r6] - ldr r2, [r1, 0x58] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0x60 - ldr r0, _08030764 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r2, [r6] - ldr r1, [r2, 0x5C] - adds r0, r2, 0 - adds r0, 0xC0 - str r0, [r1, 0x14] - cmp r7, 0 - beq _0803071E - ldr r1, [r2, 0x58] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r1, r2, 0 - adds r1, 0x68 - adds r1, r0 - ldr r0, [r7] - str r0, [r1] -_0803071E: - ldr r0, [r6] - ldr r0, [r0, 0x5C] - mov r1, r8 - bl sub_8012D08 - bl ResetUnusedInputStruct - ldr r0, [r6] - adds r0, 0x60 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r4, [r6] - adds r4, 0x24 - bl sub_8030A74 - adds r1, r0, 0 - adds r0, r4, 0 - mov r2, r8 - adds r3, r5, 0 - bl sub_8013818 - bl sub_80308A0 - bl sub_803092C - movs r0, 0x1 -_08030756: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08030760: .4byte gUnknown_203B320 -_08030764: .4byte gUnknown_80E0854 - thumb_func_end sub_80306A8 - - thumb_func_start sub_8030768 -sub_8030768: - push {lr} - lsls r0, 24 - cmp r0, 0 - bne _08030784 - ldr r0, _08030780 - ldr r0, [r0] - adds r0, 0x24 - bl sub_8013660 - movs r0, 0 - b _080307E6 - .align 2, 0 -_08030780: .4byte gUnknown_203B320 -_08030784: - ldr r0, _0803079C - ldr r0, [r0] - adds r0, 0x24 - bl GetKeyPress - cmp r0, 0x2 - beq _080307AE - cmp r0, 0x2 - bgt _080307A0 - cmp r0, 0x1 - beq _080307B8 - b _080307C2 - .align 2, 0 -_0803079C: .4byte gUnknown_203B320 -_080307A0: - cmp r0, 0x4 - bne _080307C2 - movs r0, 0x4 - bl PlayMenuSoundEffect - movs r0, 0x4 - b _080307E6 -_080307AE: - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _080307E6 -_080307B8: - movs r0, 0 - bl PlayMenuSoundEffect - movs r0, 0x3 - b _080307E6 -_080307C2: - ldr r0, _080307D8 - ldr r0, [r0] - adds r0, 0x24 - movs r1, 0x1 - bl sub_80138B8 - lsls r0, 24 - cmp r0, 0 - bne _080307DC - movs r0, 0 - b _080307E6 - .align 2, 0 -_080307D8: .4byte gUnknown_203B320 -_080307DC: - bl sub_80308A0 - bl sub_803092C - movs r0, 0x1 -_080307E6: - pop {r1} - bx r1 - thumb_func_end sub_8030768 - - thumb_func_start sub_80307EC -sub_80307EC: - ldr r0, _0803080C - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x42 - movs r3, 0 - ldrsh r1, [r0, r3] - subs r0, 0x2 - movs r3, 0 - ldrsh r0, [r0, r3] - muls r0, r1 - movs r3, 0x3C - ldrsh r1, [r2, r3] - adds r0, r1 - adds r2, r0 - ldrb r0, [r2] - bx lr - .align 2, 0 -_0803080C: .4byte gUnknown_203B320 - thumb_func_end sub_80307EC - - thumb_func_start sub_8030810 -sub_8030810: - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8030A74 - adds r1, r0, 0 - ldr r5, _08030848 - ldr r0, [r5] - adds r2, r0, 0 - adds r2, 0x46 - strh r1, [r2] - adds r0, 0x24 - bl sub_8013984 - bl sub_80308A0 - bl sub_803092C - cmp r4, 0 - beq _08030842 - ldr r0, [r5] - adds r0, 0x24 - bl AddMenuCursorSprite -_08030842: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08030848: .4byte gUnknown_203B320 - thumb_func_end sub_8030810 - - thumb_func_start sub_803084C -sub_803084C: - push {r4,r5,lr} - ldr r4, _0803088C - ldr r2, [r4] - cmp r2, 0 - beq _08030886 - ldr r0, [r2, 0x58] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x60 - ldr r0, _08030890 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x60 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_08030886: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0803088C: .4byte gUnknown_203B320 -_08030890: .4byte gUnknown_80E083C - thumb_func_end sub_803084C - - thumb_func_start sub_8030894 -sub_8030894: - ldr r0, _0803089C - ldr r0, [r0] - bx lr - .align 2, 0 -_0803089C: .4byte gUnknown_203B320 - thumb_func_end sub_8030894 - thumb_func_start sub_80308A0 sub_80308A0: push {r4,lr} diff --git a/data/data.s b/data/data.s index 23f9d6c..0306e42 100644 --- a/data/data.s +++ b/data/data.s @@ -525,8 +525,8 @@ gUnknown_80B7F14: @ 80B7F14 .byte 0x2C, 0x03, 0x00, 0x00 .4byte LocateSetText - .global gUnknown_80B7F20 -gUnknown_80B7F20: @ 80B7F20 + .global gLocateSetErrorMessage +gLocateSetErrorMessage: @ 80B7F20 .string "Memroy LocateSet [%p] buffer %8x size can't locate\n" .string " atb %02x grp %3d \0" .align 2,0 @@ -542,8 +542,8 @@ gUnknown_80B7F88: @ 80B7F88 .byte 0x55, 0x04, 0x00, 0x00 .4byte MemoryLocate_LocalCreateText - .global gUnknown_80B7F94 -gUnknown_80B7F94: @ 80B7F94 + .global gLocalCreateErrorMessage +gLocalCreateErrorMessage: @ 80B7F94 .string "Memroy LocalCreate buffer %08x size can't locate\0" @ Spelling error is intentional .align 2,0 .string "pksdir0\0" diff --git a/data/data_80E2068.s b/data/data_80E2068.s index 70b5242..5604c39 100644 --- a/data/data_80E2068.s +++ b/data/data_80E2068.s @@ -1234,1106 +1234,3 @@ gUnknown_80E5990: @ 80E5990 .string "pksdir0\0" .align 2,0 - .global gUnknown_80E59A8 -gUnknown_80E59A8: @ 80E59A8 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .string "pksdir0\0" - .align 2,0 - - .global gUnknown_80E59C8 -gUnknown_80E59C8: @ 80E59C8 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E59E0 -gUnknown_80E59E0: @ 80E59E0 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x0A, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E59F8 -gUnknown_80E59F8: @ 80E59F8 - .incbin "baserom.gba", 0xE59F8, 0x68 - - .global gUnknown_80E5A60 -gUnknown_80E5A60: @ 80E5A60 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x0A, 0x00, 0x08, 0x00 - .byte 0x08, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E5A78 -gUnknown_80E5A78: @ 80E5A78 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x0B, 0x00, 0x09, 0x00 - .byte 0x09, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E5A90 -gUnknown_80E5A90: @ 80E5A90 - .4byte Continue_80E5AF0 - .byte 0x07, 0x00, 0x00, 0x00 - .4byte DeleteSaveData_80E5ADC - .byte 0x08, 0x00, 0x00, 0x00 - .4byte 0x80E5A10 - .byte 0x0a, 0x00, 0x00, 0x00 - .4byte FriendRescue_80E5ACC - .byte 0x0b, 0x00, 0x00, 0x00 - .4byte TradeItems_80E5AC0 - .byte 0x0c, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0xdd, 0xff, 0x00, 0x00 - - TradeItems_80E5AC0: - .string "Trade Items\0" - .align 2,0 - FriendRescue_80E5ACC: - .string "Friend Rescue\0" - .align 2,0 - DeleteSaveData_80E5ADC: - .string "Delete Save Data\0" - .align 2,0 - Continue_80E5AF0: - .string "Continue\0" - .align 2,0 - - .global gUnknown_80E5AFC -gUnknown_80E5AFC: @ 80E5AFC - .4byte Continue_80E5AF0 - .byte 0x07, 0x00, 0x00, 0x00 - .4byte DeleteSaveData_80E5ADC - .byte 0x08, 0x00, 0x00, 0x00 - .4byte 0x80E5A10 - .byte 0x0a, 0x00, 0x00, 0x00 - .4byte FriendRescue_80E5ACC - .byte 0x0b, 0x00, 0x00, 0x00 - .4byte TradeItems_80E5AC0 - .byte 0x0c, 0x00, 0x00, 0x00 - .4byte 0x80E5A54 - .byte 0x0d, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0xdd, 0xff, 0x00, 0x00 - - .global gUnknown_80E5B34 -gUnknown_80E5B34: @ 80E5B34 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x0A, 0x00, 0x08, 0x00 - .byte 0x08, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E5B4C -gUnknown_80E5B4C: @ 80E5B4C - .4byte AwaitingRescue_80E5B7C - .byte 0x06, 0x00, 0x00, 0x00 - .4byte DeleteSaveData_80E5ADC - .byte 0x08, 0x00, 0x00, 0x00 - .4byte 0x80E5A10 - .byte 0x0a, 0x00, 0x00, 0x00 - .4byte FriendRescue_80E5ACC - .byte 0x0b, 0x00, 0x00, 0x00 - .4byte TradeItems_80E5AC0 - .byte 0x0c, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0xdd, 0xff, 0x00, 0x00 - - AwaitingRescue_80E5B7C: - .string "Awaiting Rescue\0" - .align 2,0 - - .global gUnknown_80E5B8C -gUnknown_80E5B8C: @ 80E5B8C - .4byte AwaitingRescue_80E5B7C - .byte 0x06, 0x00, 0x00, 0x00 - .4byte DeleteSaveData_80E5ADC - .byte 0x08, 0x00, 0x00, 0x00 - .4byte 0x80E5A10 - .byte 0x0a, 0x00, 0x00, 0x00 - .4byte FriendRescue_80E5ACC - .byte 0x0b, 0x00, 0x00, 0x00 - .4byte TradeItems_80E5AC0 - .byte 0x0c, 0x00, 0x00, 0x00 - .4byte 0x80E5A54 - .byte 0x0d, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0xdd, 0xff, 0x00, 0x00 - - .global gUnknown_80E5BC4 -gUnknown_80E5BC4: @ 80E5BC4 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x0A, 0x00, 0x08, 0x00 - .byte 0x08, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E5BDC -gUnknown_80E5BDC: @ 80E5BDC - .4byte ReviveTeam_80E5C0C - .byte 0x07, 0x00, 0x00, 0x00 - .4byte DeleteSaveData_80E5ADC - .byte 0x08, 0x00, 0x00, 0x00 - .4byte 0x80E5A10 - .byte 0x0a, 0x00, 0x00, 0x00 - .4byte FriendRescue_80E5ACC - .byte 0x0b, 0x00, 0x00, 0x00 - .4byte TradeItems_80E5AC0 - .byte 0x0c, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0xdd, 0xff, 0x00, 0x00 - - ReviveTeam_80E5C0C: - .string "Revive Team\0" - .align 2,0 - - .global gUnknown_80E5C18 -gUnknown_80E5C18: @ 80E5C18 - .incbin "baserom.gba", 0xE5C18, 0x9C - - .global gUnknown_80E5CB4 -gUnknown_80E5CB4: @ 80E5CB4 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x0F, 0x00 - .byte 0x1A, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E5CCC -gUnknown_80E5CCC: @ 80E5CCC - .incbin "baserom.gba", 0xE5CCC, 0x40 - - .global gUnknown_80E5D0C -gUnknown_80E5D0C: @ 80E5D0C - .incbin "baserom.gba", 0xE5D0C, 0x3C - - .global gUnknown_80E5D48 -gUnknown_80E5D48: @ 80E5D48 - .incbin "baserom.gba", 0xE5D48, 0x58 - - .global gUnknown_80E5DA0 -gUnknown_80E5DA0: @ 80E5DA0 - .incbin "baserom.gba", 0xE5DA0, 0x50 - - .global gUnknown_80E5DF0 -gUnknown_80E5DF0: @ 80E5DF0 - .incbin "baserom.gba", 0xE5DF0, 0x6C - - .global gUnknown_80E5E5C -gUnknown_80E5E5C: @ 80E5E5C - .incbin "baserom.gba", 0xE5E5C, 0x60 - - .global gUnknown_80E5EBC -gUnknown_80E5EBC: @ 80E5EBC - .incbin "baserom.gba", 0xE5EBC, 0x60 - - .global gUnknown_80E5F1C -gUnknown_80E5F1C: @ 80E5F1C - .incbin "baserom.gba", 0xE5F1C, 0x64 - - .global gUnknown_80E5F80 -gUnknown_80E5F80: @ 80E5F80 - .incbin "baserom.gba", 0xE5F80, 0x4C - - .global gUnknown_80E5FCC -gUnknown_80E5FCC: @ 80E5FCC - .incbin "baserom.gba", 0xE5FCC, 0x64 - - .global gUnknown_80E6030 -gUnknown_80E6030: @ 80E6030 - .incbin "baserom.gba", 0xE6030, 0x70 - -@ Start of Trade Items Data - - .global gUnknown_80E60A0 -gUnknown_80E60A0: @ 80E60A0 - .4byte SendItem_80E60C8 - .4byte 1 - .4byte ReceiveItem_80E60B8 - .4byte 2 - .4byte 0 - .4byte 0 - - .global ReceiveItem_80E60B8 - ReceiveItem_80E60B8: - .asciz "Receive item" - .align 2,0 - - .global SendItem_80E60C8 - SendItem_80E60C8: - .asciz "Send item" - .align 2,0 - - .global gUnknown_80E60D4 -gUnknown_80E60D4: @ 80E60D4 - .4byte SendItem_80E60C8 - .4byte -1 - .4byte ReceiveItem_80E60B8 - .4byte 2 - .4byte 0 - .4byte 0 - - .global gUnknown_80E60EC -gUnknown_80E60EC: @ 80E60EC - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x15, 0x00, 0x04, 0x00 - .byte 0x06, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E6104 -gUnknown_80E6104: @ 80E6104 - .4byte Confirm_80E6134 - .4byte 3 - .4byte Info_80E612C - .4byte 4 - .4byte Cancel_80E6124 - .4byte 7 - .4byte 0 - .4byte 0 - - .global Cancel_80E6124 - Cancel_80E6124: - .asciz "Cancel" - .align 2,0 - - - .global Info_80E612C - Info_80E612C: - .asciz "Info" - .align 2,0 - - .global Confirm_80E6134 - Confirm_80E6134: - .asciz "Confirm" - .align 2,0 - - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x16, 0x00, 0x09, 0x00 - .byte 0x05, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E6154 -gUnknown_80E6154: @ 80E6154 - .4byte Yes_80E6170 - .4byte 5 - .4byte No_80E616C - .4byte 6 - .4byte 0 - .4byte 0 - - .global No_80E616C - No_80E616C: - .asciz "No" - .align 2,0 - - .global Yes_80E6170 - Yes_80E6170: - .asciz "Yes" - .align 2,0 - - .global gUnknown_80E6174 -gUnknown_80E6174: @ 80E6174 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x15, 0x00, 0x0D, 0x00 - .byte 0x06, 0x00, 0x04, 0x00 - .byte 0x04, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E618C -gUnknown_80E618C: @ 80E618C - .4byte Yes_80E6170 - .4byte 5 - .4byte Cancel_80E6124 - .4byte 0 - .4byte 0 - .4byte 0 - - .global gUnknown_80E61A4 -gUnknown_80E61A4: @ 80E61A4 - .asciz "What would you like to do? " - .align 2,0 - - .global gUnknown_80E61C0 -gUnknown_80E61C0: @ 80E61C0 - .asciz "Please choose the item to be sent." - .align 2,0 - - .global gUnknown_80E61E4 -gUnknown_80E61E4: @ 80E61E4 - .string "#CG$d0#R #CI$i0(s)#R\n" - .string "will be sent.\n" - .string "Is that OK?\0" - .align 2,0 - - .global gUnknown_80E6214 -gUnknown_80E6214: @ 80E6214 - .string "Your friend will send you an item.\n" - .string "When you are both ready~2c you\n" - .string "may communicate.\0" - .align 2,0 - - .global gUnknown_80E6268 -gUnknown_80E6268: @ 80E6268 - .string "Preparing to send an item to your\n" - .string "friend. When you are both ready~2c\n" - .string "you may communicate.\0" - .align 2,0 - - .global gUnknown_80E62C4 -gUnknown_80E62C4: @ 80E62C4 - .string "#+In communication...\n" - .string "#+Please wait with the power on.\n" - .string "#+To cancel~2c press {B_BUTTON}.\0" - .align 2,0 - - .global gUnknown_80E6314 -gUnknown_80E6314: @ 80E6314 - .string "You received\n" - .string "#CG$d0#R #CI$i0(s)#R.\n" - .string "Your adventure will be saved.\0" - .align 2,0 - - .global gUnknown_80E6358 -gUnknown_80E6358: @ 80E6358 - .string "You sent #CG$d0#R #CI$i0(s)#R.\0" - .align 2,0 - -@ Trade Items Link Errors - .global gTradeItemsCommunicationError -gTradeItemsCommunicationError: @ 80E6378 - .asciz "There was a communication error." - .align 2,0 - - .global gUnknown_80E639C -gUnknown_80E639C: @ 80E639C - .string "An incorrect number of GBA systems are\n" - .string "connected.\n" - .string "Please redo this process from the start.\0" - .align 2,0 - - .global gUnknown_80E63F8 -gUnknown_80E63F8: @ 80E63F8 - .string "There is no response from your friend.\n" - .string "Please redo this process from the start.\0" - .align 2,0 - - .global gUnknown_80E6448 -gUnknown_80E6448: @ 80E6448 - .string "The sender and receiver appear to be\n" - .string "in different modes.\n" - .string "Please redo the process from the start.\0" - .align 2,0 - - .global gUnknown_80E64AC -gUnknown_80E64AC: @ 80E64AC - .string "There is no response from your friend.\n" - .string "Please make sure the sender and receiver\n" - .string "are ready~2c then redo this from the start.\0" - .align 2,0 - - .global gTradeItemsHowManyText -gTradeItemsHowManyText: @ 80E6528 - .asciz "How many?" - .align 2,0 - .asciz "pksdir0" - -@ End of Trade Menu Data - - .global gUnknown_80E653C -gUnknown_80E653C: @ 80E653C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E6554 -gUnknown_80E6554: @ 80E6554 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x08, 0x00 - .byte 0x18, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - - .global gUnknown_80E656C -gUnknown_80E656C: @ 80E656C - .incbin "baserom.gba", 0xE656C, 0x6C - - .global gUnknown_80E65D8 -gUnknown_80E65D8: @ 80E65D8 - .incbin "baserom.gba", 0xE65D8, 0x44 - - .global gUnknown_80E661C -gUnknown_80E661C: @ 80E661C - .incbin "baserom.gba", 0xE661C, 0x40 - - .global gUnknown_80E665C -gUnknown_80E665C: @ 80E665C - .incbin "baserom.gba", 0xE665C, 0x20 - - .global gUnknown_80E667C -gUnknown_80E667C: @ 80E667C - .incbin "baserom.gba", 0xE667C, 0x40 - - .global gUnknown_80E66BC -gUnknown_80E66BC: @ 80E66BC - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x08, 0x00 - .byte 0x18, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E66D4 -gUnknown_80E66D4: @ 80E66D4 - .incbin "baserom.gba", 0xE66D4, 0x74 - - .global gUnknown_80E6748 -gUnknown_80E6748: @ 80E6748 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x08, 0x00 - .byte 0x18, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E6760 -gUnknown_80E6760: @ 80E6760 - .incbin "baserom.gba", 0xE6760, 0x74 - - .global gUnknown_80E67D4 -gUnknown_80E67D4: @ 80E67D4 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x08, 0x00 - .byte 0x18, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E67EC -gUnknown_80E67EC: @ 80E67EC - .incbin "baserom.gba", 0xE67EC, 0xB0 - - .global gUnknown_80E689C -gUnknown_80E689C: @ 80E689C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x08, 0x00 - .byte 0x18, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E68B4 -gUnknown_80E68B4: @ 80E68B4 - .incbin "baserom.gba", 0xE68B4, 0x84 - - .global gUnknown_80E6938 -gUnknown_80E6938: @ 80E6938 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x08, 0x00 - .byte 0x18, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E6950 -gUnknown_80E6950: @ 80E6950 - .incbin "baserom.gba", 0xE6950, 0x60 - - .global gUnknown_80E69B0 -gUnknown_80E69B0: @ 80E69B0 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x08, 0x00 - .byte 0x18, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E69C8 -gUnknown_80E69C8: @ 80E69C8 - .incbin "baserom.gba", 0xE69C8, 0x48 - - .global gUnknown_80E6A10 -gUnknown_80E6A10: @ 80E6A10 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x08, 0x00 - .byte 0x18, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E6A28 -gUnknown_80E6A28: @ 80E6A28 - .incbin "baserom.gba", 0xE6A28, 0x4C - - .global gUnknown_80E6A74 -gUnknown_80E6A74: @ 80E6A74 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x08, 0x00 - .byte 0x18, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E6A8C -gUnknown_80E6A8C: @ 80E6A8C - .incbin "baserom.gba", 0xE6A8C, 0xEC - - .global gUnknown_80E6B78 -gUnknown_80E6B78: @ 80E6B78 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x08, 0x00 - .byte 0x18, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E6B90 -gUnknown_80E6B90: @ 80E6B90 - .incbin "baserom.gba", 0xE6B90, 0x64 - - .global gUnknown_80E6BF4 -gUnknown_80E6BF4: @ 80E6BF4 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x08, 0x00 - .byte 0x18, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E6C0C -gUnknown_80E6C0C: @ 80E6C0C - .incbin "baserom.gba", 0xE6C0C, 0x44 - - .global gUnknown_80E6C50 -gUnknown_80E6C50: @ 80E6C50 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x08, 0x00 - .byte 0x18, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E6C68 -gUnknown_80E6C68: @ 80E6C68 - .incbin "baserom.gba", 0xE6C68, 0x68 - - .global gUnknown_80E6CD0 -gUnknown_80E6CD0: @ 80E6CD0 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x08, 0x00 - .byte 0x18, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E6CE8 -gUnknown_80E6CE8: @ 80E6CE8 - .incbin "baserom.gba", 0xE6CE8, 0x6C - - .global gUnknown_80E6D54 -gUnknown_80E6D54: @ 80E6D54 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x08, 0x00 - .byte 0x18, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E6D6C -gUnknown_80E6D6C: @ 80E6D6C - .incbin "baserom.gba", 0xE6D6C, 0x70 - - .global gUnknown_80E6DDC -gUnknown_80E6DDC: @ 80E6DDC - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x08, 0x00 - .byte 0x18, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E6DF4 -gUnknown_80E6DF4: @ 80E6DF4 - .incbin "baserom.gba", 0xE6DF4, 0x5C - - .global gUnknown_80E6E50 -gUnknown_80E6E50:: @ 80E6E50 - .string "CHUNSOFT\0" - .align 2,0 - - .string "pksdir0\0" - - .string "pksdir0\0" - - .string "pksdir0\0" - - .string "pksdir0\0" - - - .global gUnknown_80E6E7C -gUnknown_80E6E7C: @ 80E6E7C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E6E94 -gUnknown_80E6E94: @ 80E6E94 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x05, 0x00, 0x09, 0x00 - .byte 0x13, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E6EAC -gUnknown_80E6EAC: @ 80E6EAC - .4byte Caution_80E6F04 - .4byte 3 - .4byte StorageEmpty_80E6EE4 - .4byte 3 - .4byte CheckAgain_80E6ECC - .4byte 3 - .4byte 0 - .4byte 1 - - .global CheckAgain_80E6ECC - CheckAgain_80E6ECC: - .asciz "#+Please check again." - .align 2,0 - - .global StorageEmpty_80E6EE4 - StorageEmpty_80E6EE4: - .asciz "#+The storage space is empty!" - .align 2,0 - - .global Caution_80E6F04 - Caution_80E6F04: - .asciz "#+#C2Caution!#R " - .align 2,0 - - .asciz "pksdir0" - - .global gUnknown_80E6F20 -gUnknown_80E6F20: @ 80E6F20 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E6F38 -gUnknown_80E6F38: @ 80E6F38 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x05, 0x00, 0x08, 0x00 - .byte 0x15, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E6F50 -gUnknown_80E6F50: @ 80E6F50 - .incbin "baserom.gba", 0xE6F50, 0x6C - - .global gUnknown_80E6FBC -gUnknown_80E6FBC: @ 80E6FBC - .incbin "baserom.gba", 0xE6FBC, 0x60 - - .global gUnknown_80E701C -gUnknown_80E701C: @ 80E701C - .incbin "baserom.gba", 0xE701C, 0x74 - - .global gUnknown_80E7090 -gUnknown_80E7090: @ 80E7090 - .4byte 0x80e6fac - .4byte 4 - .4byte DeletingAdventure_80E70B0 - .4byte 4 - .4byte 0x80e6f70 - .4byte 4 - .4byte 0 - .4byte 2 - - .global DeletingAdventure_80E70B0 - DeletingAdventure_80E70B0: - .string "#+Deleting your adventure!" - .align 2,0 - - .global gUnknown_80E70CC -gUnknown_80E70CC: @ 80E70CC - .4byte 0x80e7008 - .4byte 4 - .4byte AdventureDeleted_80E70F0 - .4byte 4 - .4byte Data_80E70EC - .4byte 4 - .4byte 0 - .4byte 2 - - .global Data_80E70EC - Data_80E70EC: - .string " " - .align 2,0 - - .global AdventureDeleted_80E70F0 - AdventureDeleted_80E70F0: - .string "#+Your adventure has been deleted." - .align 2,0 - - .global gUnknown_80E7114 -gUnknown_80E7114: @ 80E7114 - .incbin "baserom.gba", 0xE7114, 0x64 - - .global gUnknown_80E7178 -gUnknown_80E7178: @ 80E7178 - .incbin "baserom.gba", 0xE7178, 0x6C - - .global gUnknown_80E71E4 -gUnknown_80E71E4: @ 80E71E4 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E71FC -gUnknown_80E71FC: @ 80E71FC - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x09, 0x00 - .byte 0x17, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E7214 -gUnknown_80E7214: @ 80E7214 - .4byte Error_80E7268 - .4byte 0xC - .4byte IncorrectPassword_80E7250 - .4byte 0xC - .4byte CheckAgain_80E7234 - .4byte 0xC - .4byte 0 - .4byte 0xA - - .global CheckAgain_80E7234 - CheckAgain_80E7234: - .asciz "#+Please check it again." - .align 2,0 - - .global IncorrectPassword_80E7250 - IncorrectPassword_80E7250: - .asciz "#+Incorrect password!" - .align 2,0 - - .global Error_80E7268 - Error_80E7268: - .asciz "#+#C2Error!#R " - .align 2,0 - - .global gUnknown_80E7278 -gUnknown_80E7278: @ 80E7278 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x09, 0x00 - .byte 0x17, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E7290 -gUnknown_80E7290: @ 80E7290 - .4byte Success_80E72D8 - .4byte 0xC - .4byte PasswordAccept_80E72B4 - .4byte 0xC - .4byte DATA_80E72B0 - .4byte 0xC - .4byte 0 - .4byte 0xA - - .global DATA_80E72B0 - DATA_80E72B0: - .byte 0x20, 0x20, 0x00, 0x00 @ 2 spaces?? - - .global PasswordAccept_80E72B4 - PasswordAccept_80E72B4: - .asciz "#+The password has been accepted." - .align 2,0 - - .global Success_80E72D8 - Success_80E72D8: - .asciz "#+#CGSuccess!#R " - .align 2,0 - - .global gUnknown_80E72EC -gUnknown_80E72EC: @ 80E72EC - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x09, 0x00 - .byte 0x17, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E7304 -gUnknown_80E7304: @ 80E7304 - .4byte Error_80E7268 - .4byte 0xC - .4byte NotSOSMail_80E7324 - .4byte 0xC - .4byte CheckAgain_80E7234 - .4byte 0xC - .4byte 0 - .4byte 0xA - - .global NotSOSMail_80E7324 - NotSOSMail_80E7324: - .asciz "#+This is not an #CGSOS Mail#R." - .align 2,0 - - .global gUnknown_80E7344 -gUnknown_80E7344: @ 80E7344 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x09, 0x00 - .byte 0x17, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E735C -gUnknown_80E735C: @ 80E735C - .4byte Error_80E7268 - .4byte 0xC - .4byte ReceiveSOSMail_80E737C - .4byte 0xC - .4byte CheckAgain_80E7234 - .4byte 0xC - .4byte 0 - .4byte 0xA - - .global ReceiveSOSMail_80E737C - ReceiveSOSMail_80E737C: - .asciz "#+This #CGSOS Mail#R has been received already." - .align 2,0 - - .global gUnknown_80E73AC -gUnknown_80E73AC: @ 80E73AC - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x09, 0x00 - .byte 0x17, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E73C4 -gUnknown_80E73C4: @ 80E73C4 - .incbin "baserom.gba", 0xE73C4, 0x44 - - .global gUnknown_80E7408 -gUnknown_80E7408: @ 80E7408 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x09, 0x00 - .byte 0x17, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E7420 -gUnknown_80E7420: @ 80E7420 - .incbin "baserom.gba", 0xE7420, 0x48 - - .global gUnknown_80E7468 -gUnknown_80E7468: @ 80E7468 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x09, 0x00 - .byte 0x17, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E7480 -gUnknown_80E7480: @ 80E7480 - .incbin "baserom.gba", 0xE7480, 0x48 - - .global gUnknown_80E74C8 -gUnknown_80E74C8: @ 80E74C8 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x09, 0x00 - .byte 0x17, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E74E0 -gUnknown_80E74E0: @ 80E74E0 - .incbin "baserom.gba", 0xE74E0, 0x4C - - .global gUnknown_80E752C -gUnknown_80E752C: @ 80E752C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x09, 0x00 - .byte 0x17, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E7544 -gUnknown_80E7544: @ 80E7544 - .incbin "baserom.gba", 0xE7544, 0x44 - - .global gUnknown_80E7588 -gUnknown_80E7588: @ 80E7588 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x09, 0x00 - .byte 0x17, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E75A0 -gUnknown_80E75A0: @ 80E75A0 - .incbin "baserom.gba", 0xE75A0, 0x58 - - .global gUnknown_80E75F8 -gUnknown_80E75F8: @ 80E75F8 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E7610 -gUnknown_80E7610: @ 80E7610 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x1A, 0x00, 0x0B, 0x00 - .byte 0x0B, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x20, 0x00, 0x00, 0x00 - - .global gUnknown_80E762C -gUnknown_80E762C: @ 80E762C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x0F, 0x00 - .byte 0x13, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gResumeQuicksaveMenuItems -gResumeQuicksaveMenuItems: @ 80E7644 - .4byte ResumeQuicksave_80E7668 - .byte 0x05, 0x00, 0x00, 0x00 - .4byte IsThatOK_80E765C - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - - IsThatOK_80E765C: - .string "Is that OK?\0" - .align 2,0 - - ResumeQuicksave_80E7668: - .string "Resuming from quicksave.\0" - .align 2,0 - - .global gResumeAdventureMenuItems -gResumeAdventureMenuItems: @ 80E7684 - .4byte ResumeAdventure_80E769C - .byte 0x05, 0x00, 0x00, 0x00 - .4byte IsThatOK_80E765C - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - - ResumeAdventure_80E769C: - .string "Resuming saved adventure.\0" - .align 2,0 - - .global gQuitWaitingRescueMenuItems -gQuitWaitingRescueMenuItems: @ 80E76B8 - .4byte QuitAwaitingRescue_80E76D0 - .byte 0x05, 0x00, 0x00, 0x00 - .4byte IsThatOK_80E765C - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - - QuitAwaitingRescue_80E76D0: - .string "Quit awaiting rescue?\0" - .align 2,0 - - .global gDeleteSavePromptMenuItems -gDeleteSavePromptMenuItems: @ 80E76E8 - .4byte Deleted_80E7718 - .byte 0x05, 0x00, 0x00, 0x00 - .4byte Deleted_80E7700 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - - Deleted_80E7700: - .string "deleted. Is that OK?\0" - .align 2,0 - - Deleted_80E7718: - .string "Your saved data will be\0" - .align 2,0 - - .global gDeleteSaveConfirmMenuItems -gDeleteSaveConfirmMenuItems: @ 80E7730 - .4byte Deleted_80E7768 - .byte 0x05, 0x00, 0x00, 0x00 - .4byte Deleted_80E7748 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - - Deleted_80E7748: - .string "delete all of your saved data?\0" - .align 2,0 - - Deleted_80E7768: - .string "Are you sure you want to\0" - .align 2,0 - - - .global gUnknown_80E7784 -gUnknown_80E7784: @ 80E7784 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x17, 0x00, 0x0F, 0x00 - .byte 0x05, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 diff --git a/data/data_80E59A8.s b/data/data_80E59A8.s new file mode 100644 index 0000000..fc972e6 --- /dev/null +++ b/data/data_80E59A8.s @@ -0,0 +1,943 @@ + .section .rodata + + .global gUnknown_80E5CB4 +gUnknown_80E5CB4: @ 80E5CB4 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x02, 0x00, 0x0F, 0x00 + .byte 0x1A, 0x00, 0x03, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E5CCC +gUnknown_80E5CCC: @ 80E5CCC + .byte 0xe8, 0x5c, 0x0e, 0x08 + .byte 0xde, 0xff, 0x00, 0x00 + .byte 0xe4, 0x5c, 0x0e, 0x08 + .byte 0xde, 0xff, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0xdd, 0xff, 0x00, 0x00 + + .string " \0" + .align 2,0 + .string "Start an entirely new adventure.\0" + .align 2,0 + + .global gUnknown_80E5D0C +gUnknown_80E5D0C: @ 80E5D0C + .incbin "baserom.gba", 0xE5D0C, 0x3C + + .global gUnknown_80E5D48 +gUnknown_80E5D48: @ 80E5D48 + .incbin "baserom.gba", 0xE5D48, 0x58 + + .global gUnknown_80E5DA0 +gUnknown_80E5DA0: @ 80E5DA0 + .incbin "baserom.gba", 0xE5DA0, 0x50 + + .global gUnknown_80E5DF0 +gUnknown_80E5DF0: @ 80E5DF0 + .incbin "baserom.gba", 0xE5DF0, 0x6C + + .global gUnknown_80E5E5C +gUnknown_80E5E5C: @ 80E5E5C + .incbin "baserom.gba", 0xE5E5C, 0x60 + + .global gUnknown_80E5EBC +gUnknown_80E5EBC: @ 80E5EBC + .incbin "baserom.gba", 0xE5EBC, 0x60 + + .global gUnknown_80E5F1C +gUnknown_80E5F1C: @ 80E5F1C + .incbin "baserom.gba", 0xE5F1C, 0x64 + + .global gUnknown_80E5F80 +gUnknown_80E5F80: @ 80E5F80 + .incbin "baserom.gba", 0xE5F80, 0x4C + + .global gUnknown_80E5FCC +gUnknown_80E5FCC: @ 80E5FCC + .incbin "baserom.gba", 0xE5FCC, 0x64 + + .global gUnknown_80E6030 +gUnknown_80E6030: @ 80E6030 + .incbin "baserom.gba", 0xE6030, 0x70 + +@ Start of Trade Items Data + + .global gUnknown_80E60A0 +gUnknown_80E60A0: @ 80E60A0 + .4byte SendItem_80E60C8 + .4byte 1 + .4byte ReceiveItem_80E60B8 + .4byte 2 + .4byte 0 + .4byte 0 + + .global ReceiveItem_80E60B8 + ReceiveItem_80E60B8: + .asciz "Receive item" + .align 2,0 + + .global SendItem_80E60C8 + SendItem_80E60C8: + .asciz "Send item" + .align 2,0 + + .global gUnknown_80E60D4 +gUnknown_80E60D4: @ 80E60D4 + .4byte SendItem_80E60C8 + .4byte -1 + .4byte ReceiveItem_80E60B8 + .4byte 2 + .4byte 0 + .4byte 0 + + .global gUnknown_80E60EC +gUnknown_80E60EC: @ 80E60EC + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x15, 0x00, 0x04, 0x00 + .byte 0x06, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E6104 +gUnknown_80E6104: @ 80E6104 + .4byte Confirm_80E6134 + .4byte 3 + .4byte Info_80E612C + .4byte 4 + .4byte Cancel_80E6124 + .4byte 7 + .4byte 0 + .4byte 0 + + .global Cancel_80E6124 + Cancel_80E6124: + .asciz "Cancel" + .align 2,0 + + + .global Info_80E612C + Info_80E612C: + .asciz "Info" + .align 2,0 + + .global Confirm_80E6134 + Confirm_80E6134: + .asciz "Confirm" + .align 2,0 + + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x16, 0x00, 0x09, 0x00 + .byte 0x05, 0x00, 0x03, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E6154 +gUnknown_80E6154: @ 80E6154 + .4byte Yes_80E6170 + .4byte 5 + .4byte No_80E616C + .4byte 6 + .4byte 0 + .4byte 0 + + .global No_80E616C + No_80E616C: + .asciz "No" + .align 2,0 + + .global Yes_80E6170 + Yes_80E6170: + .asciz "Yes" + .align 2,0 + + .global gUnknown_80E6174 +gUnknown_80E6174: @ 80E6174 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x15, 0x00, 0x0D, 0x00 + .byte 0x06, 0x00, 0x04, 0x00 + .byte 0x04, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E618C +gUnknown_80E618C: @ 80E618C + .4byte Yes_80E6170 + .4byte 5 + .4byte Cancel_80E6124 + .4byte 0 + .4byte 0 + .4byte 0 + + .global gUnknown_80E61A4 +gUnknown_80E61A4: @ 80E61A4 + .asciz "What would you like to do? " + .align 2,0 + + .global gUnknown_80E61C0 +gUnknown_80E61C0: @ 80E61C0 + .asciz "Please choose the item to be sent." + .align 2,0 + + .global gUnknown_80E61E4 +gUnknown_80E61E4: @ 80E61E4 + .string "#CG$d0#R #CI$i0(s)#R\n" + .string "will be sent.\n" + .string "Is that OK?\0" + .align 2,0 + + .global gUnknown_80E6214 +gUnknown_80E6214: @ 80E6214 + .string "Your friend will send you an item.\n" + .string "When you are both ready~2c you\n" + .string "may communicate.\0" + .align 2,0 + + .global gUnknown_80E6268 +gUnknown_80E6268: @ 80E6268 + .string "Preparing to send an item to your\n" + .string "friend. When you are both ready~2c\n" + .string "you may communicate.\0" + .align 2,0 + + .global gUnknown_80E62C4 +gUnknown_80E62C4: @ 80E62C4 + .string "#+In communication...\n" + .string "#+Please wait with the power on.\n" + .string "#+To cancel~2c press {B_BUTTON}.\0" + .align 2,0 + + .global gUnknown_80E6314 +gUnknown_80E6314: @ 80E6314 + .string "You received\n" + .string "#CG$d0#R #CI$i0(s)#R.\n" + .string "Your adventure will be saved.\0" + .align 2,0 + + .global gUnknown_80E6358 +gUnknown_80E6358: @ 80E6358 + .string "You sent #CG$d0#R #CI$i0(s)#R.\0" + .align 2,0 + +@ Trade Items Link Errors + .global gTradeItemsCommunicationError +gTradeItemsCommunicationError: @ 80E6378 + .asciz "There was a communication error." + .align 2,0 + + .global gUnknown_80E639C +gUnknown_80E639C: @ 80E639C + .string "An incorrect number of GBA systems are\n" + .string "connected.\n" + .string "Please redo this process from the start.\0" + .align 2,0 + + .global gUnknown_80E63F8 +gUnknown_80E63F8: @ 80E63F8 + .string "There is no response from your friend.\n" + .string "Please redo this process from the start.\0" + .align 2,0 + + .global gUnknown_80E6448 +gUnknown_80E6448: @ 80E6448 + .string "The sender and receiver appear to be\n" + .string "in different modes.\n" + .string "Please redo the process from the start.\0" + .align 2,0 + + .global gUnknown_80E64AC +gUnknown_80E64AC: @ 80E64AC + .string "There is no response from your friend.\n" + .string "Please make sure the sender and receiver\n" + .string "are ready~2c then redo this from the start.\0" + .align 2,0 + + .global gTradeItemsHowManyText +gTradeItemsHowManyText: @ 80E6528 + .asciz "How many?" + .align 2,0 + .asciz "pksdir0" + +@ End of Trade Menu Data + + .global gUnknown_80E653C +gUnknown_80E653C: @ 80E653C + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E6554 +gUnknown_80E6554: @ 80E6554 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x08, 0x00 + .byte 0x18, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + + .global gUnknown_80E656C +gUnknown_80E656C: @ 80E656C + .incbin "baserom.gba", 0xE656C, 0x6C + + .global gUnknown_80E65D8 +gUnknown_80E65D8: @ 80E65D8 + .incbin "baserom.gba", 0xE65D8, 0x44 + + .global gUnknown_80E661C +gUnknown_80E661C: @ 80E661C + .incbin "baserom.gba", 0xE661C, 0x40 + + .global gUnknown_80E665C +gUnknown_80E665C: @ 80E665C + .incbin "baserom.gba", 0xE665C, 0x20 + + .global gUnknown_80E667C +gUnknown_80E667C: @ 80E667C + .incbin "baserom.gba", 0xE667C, 0x40 + + .global gUnknown_80E66BC +gUnknown_80E66BC: @ 80E66BC + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x08, 0x00 + .byte 0x18, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E66D4 +gUnknown_80E66D4: @ 80E66D4 + .incbin "baserom.gba", 0xE66D4, 0x74 + + .global gUnknown_80E6748 +gUnknown_80E6748: @ 80E6748 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x08, 0x00 + .byte 0x18, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E6760 +gUnknown_80E6760: @ 80E6760 + .incbin "baserom.gba", 0xE6760, 0x74 + + .global gUnknown_80E67D4 +gUnknown_80E67D4: @ 80E67D4 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x08, 0x00 + .byte 0x18, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E67EC +gUnknown_80E67EC: @ 80E67EC + .incbin "baserom.gba", 0xE67EC, 0xB0 + + .global gUnknown_80E689C +gUnknown_80E689C: @ 80E689C + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x08, 0x00 + .byte 0x18, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E68B4 +gUnknown_80E68B4: @ 80E68B4 + .incbin "baserom.gba", 0xE68B4, 0x84 + + .global gUnknown_80E6938 +gUnknown_80E6938: @ 80E6938 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x08, 0x00 + .byte 0x18, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E6950 +gUnknown_80E6950: @ 80E6950 + .incbin "baserom.gba", 0xE6950, 0x60 + + .global gUnknown_80E69B0 +gUnknown_80E69B0: @ 80E69B0 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x08, 0x00 + .byte 0x18, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E69C8 +gUnknown_80E69C8: @ 80E69C8 + .incbin "baserom.gba", 0xE69C8, 0x48 + + .global gUnknown_80E6A10 +gUnknown_80E6A10: @ 80E6A10 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x08, 0x00 + .byte 0x18, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E6A28 +gUnknown_80E6A28: @ 80E6A28 + .incbin "baserom.gba", 0xE6A28, 0x4C + + .global gUnknown_80E6A74 +gUnknown_80E6A74: @ 80E6A74 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x08, 0x00 + .byte 0x18, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E6A8C +gUnknown_80E6A8C: @ 80E6A8C + .incbin "baserom.gba", 0xE6A8C, 0xEC + + .global gUnknown_80E6B78 +gUnknown_80E6B78: @ 80E6B78 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x08, 0x00 + .byte 0x18, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E6B90 +gUnknown_80E6B90: @ 80E6B90 + .incbin "baserom.gba", 0xE6B90, 0x64 + + .global gUnknown_80E6BF4 +gUnknown_80E6BF4: @ 80E6BF4 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x08, 0x00 + .byte 0x18, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E6C0C +gUnknown_80E6C0C: @ 80E6C0C + .incbin "baserom.gba", 0xE6C0C, 0x44 + + .global gUnknown_80E6C50 +gUnknown_80E6C50: @ 80E6C50 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x08, 0x00 + .byte 0x18, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E6C68 +gUnknown_80E6C68: @ 80E6C68 + .incbin "baserom.gba", 0xE6C68, 0x68 + + .global gUnknown_80E6CD0 +gUnknown_80E6CD0: @ 80E6CD0 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x08, 0x00 + .byte 0x18, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E6CE8 +gUnknown_80E6CE8: @ 80E6CE8 + .incbin "baserom.gba", 0xE6CE8, 0x6C + + .global gUnknown_80E6D54 +gUnknown_80E6D54: @ 80E6D54 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x08, 0x00 + .byte 0x18, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E6D6C +gUnknown_80E6D6C: @ 80E6D6C + .incbin "baserom.gba", 0xE6D6C, 0x70 + + .global gUnknown_80E6DDC +gUnknown_80E6DDC: @ 80E6DDC + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x08, 0x00 + .byte 0x18, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E6DF4 +gUnknown_80E6DF4: @ 80E6DF4 + .incbin "baserom.gba", 0xE6DF4, 0x5C + + .global gUnknown_80E6E50 +gUnknown_80E6E50:: @ 80E6E50 + .string "CHUNSOFT\0" + .align 2,0 + + .string "pksdir0\0" + + .string "pksdir0\0" + + .string "pksdir0\0" + + .string "pksdir0\0" + + + .global gUnknown_80E6E7C +gUnknown_80E6E7C: @ 80E6E7C + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E6E94 +gUnknown_80E6E94: @ 80E6E94 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x05, 0x00, 0x09, 0x00 + .byte 0x13, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E6EAC +gUnknown_80E6EAC: @ 80E6EAC + .4byte Caution_80E6F04 + .4byte 3 + .4byte StorageEmpty_80E6EE4 + .4byte 3 + .4byte CheckAgain_80E6ECC + .4byte 3 + .4byte 0 + .4byte 1 + + .global CheckAgain_80E6ECC + CheckAgain_80E6ECC: + .asciz "#+Please check again." + .align 2,0 + + .global StorageEmpty_80E6EE4 + StorageEmpty_80E6EE4: + .asciz "#+The storage space is empty!" + .align 2,0 + + .global Caution_80E6F04 + Caution_80E6F04: + .asciz "#+#C2Caution!#R " + .align 2,0 + + .asciz "pksdir0" + + .global gUnknown_80E6F20 +gUnknown_80E6F20: @ 80E6F20 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E6F38 +gUnknown_80E6F38: @ 80E6F38 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x05, 0x00, 0x08, 0x00 + .byte 0x15, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E6F50 +gUnknown_80E6F50: @ 80E6F50 + .incbin "baserom.gba", 0xE6F50, 0x6C + + .global gUnknown_80E6FBC +gUnknown_80E6FBC: @ 80E6FBC + .incbin "baserom.gba", 0xE6FBC, 0x60 + + .global gUnknown_80E701C +gUnknown_80E701C: @ 80E701C + .incbin "baserom.gba", 0xE701C, 0x74 + + .global gUnknown_80E7090 +gUnknown_80E7090: @ 80E7090 + .4byte 0x80e6fac + .4byte 4 + .4byte DeletingAdventure_80E70B0 + .4byte 4 + .4byte 0x80e6f70 + .4byte 4 + .4byte 0 + .4byte 2 + + .global DeletingAdventure_80E70B0 + DeletingAdventure_80E70B0: + .string "#+Deleting your adventure!" + .align 2,0 + + .global gUnknown_80E70CC +gUnknown_80E70CC: @ 80E70CC + .4byte 0x80e7008 + .4byte 4 + .4byte AdventureDeleted_80E70F0 + .4byte 4 + .4byte Data_80E70EC + .4byte 4 + .4byte 0 + .4byte 2 + + .global Data_80E70EC + Data_80E70EC: + .string " " + .align 2,0 + + .global AdventureDeleted_80E70F0 + AdventureDeleted_80E70F0: + .string "#+Your adventure has been deleted." + .align 2,0 + + .global gUnknown_80E7114 +gUnknown_80E7114: @ 80E7114 + .incbin "baserom.gba", 0xE7114, 0x64 + + .global gUnknown_80E7178 +gUnknown_80E7178: @ 80E7178 + .incbin "baserom.gba", 0xE7178, 0x6C + + .global gUnknown_80E71E4 +gUnknown_80E71E4: @ 80E71E4 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E71FC +gUnknown_80E71FC: @ 80E71FC + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x09, 0x00 + .byte 0x17, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E7214 +gUnknown_80E7214: @ 80E7214 + .4byte Error_80E7268 + .4byte 0xC + .4byte IncorrectPassword_80E7250 + .4byte 0xC + .4byte CheckAgain_80E7234 + .4byte 0xC + .4byte 0 + .4byte 0xA + + .global CheckAgain_80E7234 + CheckAgain_80E7234: + .asciz "#+Please check it again." + .align 2,0 + + .global IncorrectPassword_80E7250 + IncorrectPassword_80E7250: + .asciz "#+Incorrect password!" + .align 2,0 + + .global Error_80E7268 + Error_80E7268: + .asciz "#+#C2Error!#R " + .align 2,0 + + .global gUnknown_80E7278 +gUnknown_80E7278: @ 80E7278 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x09, 0x00 + .byte 0x17, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E7290 +gUnknown_80E7290: @ 80E7290 + .4byte Success_80E72D8 + .4byte 0xC + .4byte PasswordAccept_80E72B4 + .4byte 0xC + .4byte DATA_80E72B0 + .4byte 0xC + .4byte 0 + .4byte 0xA + + .global DATA_80E72B0 + DATA_80E72B0: + .byte 0x20, 0x20, 0x00, 0x00 @ 2 spaces?? + + .global PasswordAccept_80E72B4 + PasswordAccept_80E72B4: + .asciz "#+The password has been accepted." + .align 2,0 + + .global Success_80E72D8 + Success_80E72D8: + .asciz "#+#CGSuccess!#R " + .align 2,0 + + .global gUnknown_80E72EC +gUnknown_80E72EC: @ 80E72EC + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x09, 0x00 + .byte 0x17, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E7304 +gUnknown_80E7304: @ 80E7304 + .4byte Error_80E7268 + .4byte 0xC + .4byte NotSOSMail_80E7324 + .4byte 0xC + .4byte CheckAgain_80E7234 + .4byte 0xC + .4byte 0 + .4byte 0xA + + .global NotSOSMail_80E7324 + NotSOSMail_80E7324: + .asciz "#+This is not an #CGSOS Mail#R." + .align 2,0 + + .global gUnknown_80E7344 +gUnknown_80E7344: @ 80E7344 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x09, 0x00 + .byte 0x17, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E735C +gUnknown_80E735C: @ 80E735C + .4byte Error_80E7268 + .4byte 0xC + .4byte ReceiveSOSMail_80E737C + .4byte 0xC + .4byte CheckAgain_80E7234 + .4byte 0xC + .4byte 0 + .4byte 0xA + + .global ReceiveSOSMail_80E737C + ReceiveSOSMail_80E737C: + .asciz "#+This #CGSOS Mail#R has been received already." + .align 2,0 + + .global gUnknown_80E73AC +gUnknown_80E73AC: @ 80E73AC + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x09, 0x00 + .byte 0x17, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E73C4 +gUnknown_80E73C4: @ 80E73C4 + .incbin "baserom.gba", 0xE73C4, 0x44 + + .global gUnknown_80E7408 +gUnknown_80E7408: @ 80E7408 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x09, 0x00 + .byte 0x17, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E7420 +gUnknown_80E7420: @ 80E7420 + .incbin "baserom.gba", 0xE7420, 0x48 + + .global gUnknown_80E7468 +gUnknown_80E7468: @ 80E7468 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x09, 0x00 + .byte 0x17, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E7480 +gUnknown_80E7480: @ 80E7480 + .incbin "baserom.gba", 0xE7480, 0x48 + + .global gUnknown_80E74C8 +gUnknown_80E74C8: @ 80E74C8 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x09, 0x00 + .byte 0x17, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E74E0 +gUnknown_80E74E0: @ 80E74E0 + .incbin "baserom.gba", 0xE74E0, 0x4C + + .global gUnknown_80E752C +gUnknown_80E752C: @ 80E752C + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x09, 0x00 + .byte 0x17, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E7544 +gUnknown_80E7544: @ 80E7544 + .incbin "baserom.gba", 0xE7544, 0x44 + + .global gUnknown_80E7588 +gUnknown_80E7588: @ 80E7588 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x09, 0x00 + .byte 0x17, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E75A0 +gUnknown_80E75A0: @ 80E75A0 + .incbin "baserom.gba", 0xE75A0, 0x58 + + .global gUnknown_80E75F8 +gUnknown_80E75F8: @ 80E75F8 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gUnknown_80E7610 +gUnknown_80E7610: @ 80E7610 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x02, 0x00, 0x02, 0x00 + .byte 0x1A, 0x00, 0x0B, 0x00 + .byte 0x0B, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x20, 0x00, 0x00, 0x00 + + .global gUnknown_80E762C +gUnknown_80E762C: @ 80E762C + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x02, 0x00, 0x0F, 0x00 + .byte 0x13, 0x00, 0x03, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .global gResumeQuicksaveMenuItems +gResumeQuicksaveMenuItems: @ 80E7644 + .4byte ResumeQuicksave_80E7668 + .byte 0x05, 0x00, 0x00, 0x00 + .4byte IsThatOK_80E765C + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + + IsThatOK_80E765C: + .string "Is that OK?\0" + .align 2,0 + + ResumeQuicksave_80E7668: + .string "Resuming from quicksave.\0" + .align 2,0 + + .global gResumeAdventureMenuItems +gResumeAdventureMenuItems: @ 80E7684 + .4byte ResumeAdventure_80E769C + .byte 0x05, 0x00, 0x00, 0x00 + .4byte IsThatOK_80E765C + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + + ResumeAdventure_80E769C: + .string "Resuming saved adventure.\0" + .align 2,0 + + .global gQuitWaitingRescueMenuItems +gQuitWaitingRescueMenuItems: @ 80E76B8 + .4byte QuitAwaitingRescue_80E76D0 + .byte 0x05, 0x00, 0x00, 0x00 + .4byte IsThatOK_80E765C + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + + QuitAwaitingRescue_80E76D0: + .string "Quit awaiting rescue?\0" + .align 2,0 + + .global gDeleteSavePromptMenuItems +gDeleteSavePromptMenuItems: @ 80E76E8 + .4byte Deleted_80E7718 + .byte 0x05, 0x00, 0x00, 0x00 + .4byte Deleted_80E7700 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + + Deleted_80E7700: + .string "deleted. Is that OK?\0" + .align 2,0 + + Deleted_80E7718: + .string "Your saved data will be\0" + .align 2,0 + + .global gDeleteSaveConfirmMenuItems +gDeleteSaveConfirmMenuItems: @ 80E7730 + .4byte Deleted_80E7768 + .byte 0x05, 0x00, 0x00, 0x00 + .4byte Deleted_80E7748 + .byte 0x05, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + + Deleted_80E7748: + .string "delete all of your saved data?\0" + .align 2,0 + + Deleted_80E7768: + .string "Are you sure you want to\0" + .align 2,0 + + + .global gUnknown_80E7784 +gUnknown_80E7784: @ 80E7784 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x17, 0x00, 0x0F, 0x00 + .byte 0x05, 0x00, 0x03, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + diff --git a/data/data_80F4278.s b/data/data_80F4278.s index d4e0f27..bc96174 100644 --- a/data/data_80F4278.s +++ b/data/data_80F4278.s @@ -1,11 +1,5 @@ .section .rodata - .global gPartnerSelectionHeaderText -gPartnerSelectionHeaderText: @ 80F42C0 - .string "Pokémon\0" - .string "pksdir0\0" - .align 2,0 - .global gUnknown_80F42D0 gUnknown_80F42D0: @ 80F42D0 @ replacing .incbin "baserom.gba", 0x000f42d0, 0x20 diff --git a/include/dungeon_global_data.h b/include/dungeon_global_data.h index 17f4b3a..bc1ad46 100644 --- a/include/dungeon_global_data.h +++ b/include/dungeon_global_data.h @@ -41,7 +41,8 @@ struct DungeonGlobalData /* 0x363C */ u8 expYieldRankings[NUM_SPECIES]; u8 fill37E3[0x37FC - 0x37D9]; /* 0x37FC */ bool8 decoyActive; - u8 fill37FD[0x3A0E - 0x37FD]; + u8 fill37FD[0x3A0D - 0x37FD]; + /* 0x3A0D */ u8 unk3A0D; /* 0x3A0E */ s16 tileset; u8 fill3A10[0x3A14 - 0x3A10]; /* 0x3A14 */ s16 bossBattleIndex; diff --git a/include/item.h b/include/item.h index 998f1ac..e1a8a0d 100644 --- a/include/item.h +++ b/include/item.h @@ -93,6 +93,7 @@ bool8 xxx_insert_unk230_80919FC(u8); u32 xxx_count_non_empty_inv_unk250_8091A48(); void sub_8091BB4(u8); void sub_8090F58(void*, u8 *, struct ItemSlot *, struct unkStruct_8090F58*); +void sub_8090E14(u8* ext_buffer, struct ItemSlot* slot, struct unkStruct_8090F58* a3); void SlotToHeldItem(struct HeldItem *held,struct ItemSlot *slot); void RestoreHeldItem(struct unkStruct_8094924*, struct HeldItem*); diff --git a/include/main_menu.h b/include/main_menu.h index 3d72acb..b794250 100644 --- a/include/main_menu.h +++ b/include/main_menu.h @@ -6,7 +6,7 @@ enum MainMenuScreens MENU_MAIN_SCREEN = 1, MENU_NEW_GAME = 3, MENU_AWAITING_RESCUE = 6, - MENU_CONTINUE = 7, + MENU_CONTINUE = 7, // used by Revive Team/Continue MENU_DELETE_SAVE_PROMPT, MENU_DELETE_SAVE_CONFIRM, MENU_ADVENTURE_LOG = 10, @@ -16,6 +16,8 @@ enum MainMenuScreens MENU_DUAL_SLOT, MENU_WIRELESS_COMMS, MENU_DEBUG = 16, + MENU_SEND_ITEMS, + MENU_RECEIVE_ITEMS, MENU_COMMUNICATION_1 = 19, MENU_COMMUNICATION_2, // NOTE: 0x1B - 0x22 used by Rescue Password Menu @@ -54,4 +56,12 @@ struct MainMenu }; + +void InitMainMenu(void); +void DeleteMainMenu(void); +void SetUpMenu(void); +s32 UpdateMenu(void); +void CleanUpMenu(void); +bool8 sub_80363E0(void); + #endif // GUARD_MAIN_MENU_H diff --git a/include/sub_8095228.h b/include/sub_8095228.h index e7d214b..3fd5993 100644 --- a/include/sub_8095228.h +++ b/include/sub_8095228.h @@ -1,3 +1,5 @@ +#ifndef GUARD_SUB_8095228_H +#define GUARD_SUB_8095228_H struct unkStruct_8095228 { @@ -18,4 +20,4 @@ struct unkStruct_8095228 extern struct unkStruct_8095228 *sub_8095228(u8); - +#endif // GUARD_SUB_8095228_H diff --git a/include/wonder_mail.h b/include/wonder_mail.h index 2879f1f..e079230 100644 --- a/include/wonder_mail.h +++ b/include/wonder_mail.h @@ -4,8 +4,25 @@ #include "file_system.h" #include "text.h" #include "item.h" +#include "pokemon.h" +#include "sub_8095228.h" #define PASSWORD_BUFFER_SIZE 54 +#define MAX_ITEM_REWARDS 3 + +struct unkStruct_802F204 +{ + /* 0x0 */ u8 clientName[POKEMON_NAME_LENGTH]; // client name? + /* 0xA */ u8 name2[POKEMON_NAME_LENGTH]; // target name? + /* 0x14 */ s16 unk14; // poke species (client??) + /* 0x16 */ u8 unk16; + /* 0x18 */ s32 moneyReward; + /* 0x1C */ u8 itemRewards[MAX_ITEM_REWARDS]; + /* 0x1F */ u8 numItems; + /* 0x20 */ u8 friendAreaReward; + u8 fill21[0x24 - 0x21]; + /* 0x24 */ u32 teamRankPtsReward; +}; struct WonderMail { @@ -34,7 +51,14 @@ struct WonderMailStruct_203B2C0 u8 unk3E; u32 unk40; u32 linkError; - u16 unk48[232]; + u8 unk48[0x30]; + u8 unk78[0x30]; + struct unkStruct_8095228 unkA8; + struct PokemonStruct unkD8; + u8 unk130; + u8 fill131[0x168 - 0x131]; + u16 unk168; + u8 fill16A[0x218 - 0x16A]; u8 unk218; u32 unk21C; u8 padding[0x7C]; @@ -92,20 +116,7 @@ struct WonderMailStruct_203B2C4 u8 formattedString[0x100]; s32 wonderMailMethod; u32 wonderMailMode; - u8 unk53C[0xA]; - u32 unk548; - u32 unk54C; - u16 unk550; - u8 unk552; - u8 unk553; - u32 unk554; - u8 unk558; - u8 unk559; - u8 unk55A; - u8 unk55B; - u8 unk55C; - u8 fill55C[0x560 - 0x55D]; - u32 unk560; + struct unkStruct_802F204 unk53C; }; void sub_8028B04(u32 r0); diff --git a/ld_script.txt b/ld_script.txt index 6aca15d..7bdcb4b 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -119,8 +119,6 @@ SECTIONS { asm/friend_area_action_menu.o(.text); src/friend_area_action_menu_1.o(.text); asm/friend_area_action_menu_1.o(.text); - src/wonder_mail_pre.o(.text); - asm/wonder_mail.o(.text); src/wonder_mail.o(.text); src/thank_you_wonder_mail.o(.text); src/wonder_mail_2.o(.text); @@ -133,10 +131,12 @@ SECTIONS { src/pelipper_board.o(.text); asm/pelipper_board.o(.text); src/pelipper_board_1.o(.text); + src/wonder_mail_3_mid.o(.text); asm/wonder_mail_3_mid.o(.text); src/wonder_mail_3_1.o(.text); src/makuhita_dojo.o(.text); asm/makuhita_dojo.o(.text); + src/wonder_mail_4.o(.text); asm/wonder_mail_4.o(.text); src/post_office_guide.o(.text); asm/wonder_mail_5.o(.text); @@ -147,8 +147,6 @@ SECTIONS { asm/credits.o(.text); src/credits.o(.text); src/main_menu.o(.text); - asm/main_menu_1.o(.text); - src/main_menu_1.o(.text); src/trade_items_menu.o(.text); src/other_menus.o(.text); asm/other_menus.o(.text); @@ -191,6 +189,8 @@ SECTIONS { src/code_8057824.o(.text); asm/code_8057824.o(.text); asm/code_807001C.o(.text); + src/code_80848F0.o(.text); + asm/code_80848F0.o(.text); src/code_80869E4.o(.text); asm/code_80869E4.o(.text); src/code_8086A3C.o(.text); @@ -323,6 +323,8 @@ SECTIONS { data/data_80E1F30.o(.rodata); src/adventure_log.o(.rodata); data/data_80E2068.o(.rodata); + src/main_menu.o(.rodata); + data/data_80E59A8.o(.rodata); src/load_screen.o(.rodata); src/wonder_mail_main_menu.o(.rodata); src/debug_menu.o(.rodata); diff --git a/src/code_2.c b/src/code_2.c index 9ed43f9..c26b20b 100644 --- a/src/code_2.c +++ b/src/code_2.c @@ -6,6 +6,7 @@ #include "friend_area.h" #include "input.h" #include "memory.h" +#include "main_menu.h" #include "music.h" #include "play_time.h" #include "save.h" @@ -41,12 +42,6 @@ extern void sub_800CDA8(u32); extern void LoadTitleScreen(void); extern void SetBGPaletteBufferColorRGB(s32, u8 *, s32, u8 *); extern void sub_80095CC(u32, u32); -extern void InitMainMenu(void); -extern bool8 sub_80363E0(void); -extern void SetUpMenu(void); -extern u32 UpdateMenu(void); -extern void CleanUpMenu(void); -extern void DeleteMainMenu(void); extern s32 sub_80953D4(u32); extern void sub_8095240(u8); extern void nullsub_33(void); @@ -168,7 +163,7 @@ void GameLoop(void) CleanUpMenu(); if (nextMenu == 2) break; if (nextMenu == 4) break; - if (nextMenu == 3) break; + if (nextMenu == MENU_NEW_GAME) break; } DeleteMainMenu(); while (gUnknown_2000A80 > 0) { @@ -193,7 +188,7 @@ void GameLoop(void) case 4: tmp3 = sub_80009D0(3); break; - case 3: + case MENU_NEW_GAME: sub_80122A8(); nullsub_33(); tmp3 = sub_80009D0(0); diff --git a/src/code_80521D0_1.c b/src/code_80521D0_1.c index ecb0ec1..fa1c79e 100644 --- a/src/code_80521D0_1.c +++ b/src/code_80521D0_1.c @@ -659,7 +659,7 @@ void sub_808C5C0(void) } // Dummy Celebi Fight Dialogue?? -void nullsub_100(void) +void nullsub_100(u32 r0, u32 r1, u32 r2) { } diff --git a/src/code_8057824_1.c b/src/code_8057824_1.c index d88918f..ec518d7 100644 --- a/src/code_8057824_1.c +++ b/src/code_8057824_1.c @@ -259,7 +259,7 @@ extern struct DungeonEntity *sub_8083600(); extern void sub_80421C0(struct DungeonEntity *, u32); extern void sub_8046D20(); extern void sub_808B1CC(u8); -extern void sub_80464C8(struct DungeonEntity *, u32, struct ItemSlot *); +extern void sub_80464C8(struct DungeonEntity *, u32 *, struct ItemSlot *); extern void sub_8098044(u32); extern void PlaySoundEffect(u32); extern void sub_8085C54(u32, u32, u32, u32, u32); @@ -3092,7 +3092,7 @@ void sub_808ADCC(void) } } -void sub_808AE54(char param_1,char param_2,u32 param_3) +void sub_808AE54(char param_1,char param_2,u32 *param_3) { struct DungeonEntity * uVar3; u8 auStack24 [4]; @@ -3115,7 +3115,7 @@ void sub_808AE54(char param_1,char param_2,u32 param_3) } -void sub_808AEC8(char param_1,char param_2,u32 param_3) +void sub_808AEC8(char param_1,char param_2,u32 *param_3) { struct DungeonEntity * uVar3; u8 auStack24 [4]; @@ -3137,7 +3137,7 @@ void sub_808AEC8(char param_1,char param_2,u32 param_3) } } -void sub_808AF3C(char param_1,char param_2,u32 param_3) +void sub_808AF3C(char param_1,char param_2,u32 *param_3) { struct DungeonEntity * uVar3; u8 auStack24 [4]; diff --git a/src/code_80848F0.c b/src/code_80848F0.c new file mode 100644 index 0000000..f82c4af --- /dev/null +++ b/src/code_80848F0.c @@ -0,0 +1,421 @@ +#include "global.h" +#include "dungeon_global_data.h" + +extern struct DungeonGlobalData *gDungeonGlobalData; + +extern void SkarmonyPreFightDialogue(); +extern void SkarmonyReFightDialogue(); +extern void sub_8086E40(); +extern void TeamMeaniePreFightDialogue(); +extern void TeamMeanieReFightDialogue(); +extern void sub_8087130(); +extern void ZapdosPreFightDialogue(); +extern void ZapdosReFightDialogue(); +extern void ZapdosPostStoryPreFightDialogue(); +extern void MoltresPreFightDialogue(); +extern void MoltresReFightDialogue(); +extern void MoltresPostStoryPreFightDialogue(); +extern void ArticunoPreFightDialogue(); +extern void ArticunoReFightDialogue(); +extern void ArticunoPostStoryPreFightDialogue(); +extern void sub_8088608(); +extern void sub_8088618(); +extern void GroudonPreFightDialogue(); +extern void GroudonReFightDialogue(); +extern void GroudonPostStoryPreFightDialogue(); +extern void MagmaCavernMidDialogue(); +extern void sub_8089168(); +extern void RayquazaPreFightDialogue(); +extern void RayquazaReFightDialogue(); +extern void RayquazaPostStoryPreFightDialogue(); +extern void sub_80897F0(); +extern void sub_8089878(); +extern void sub_80898E4(); +extern void MewtwoPreFightDialogue(); +extern void MewtwoPreFightDialogue1(); +extern void EnteiPreFightDialogue(); +extern void EnteiPreFightDialogue1(); +extern void EnteiPreFightDialogue2(); +extern void RaikouPreFightDialogue(); +extern void RaikouPreFightDialogue1(); +extern void RaikouPreFightDialogue2(); +extern void SuicunePreFightDialogue(); +extern void SuicunePreFightDialogue1(); +extern void SuicunePreFightDialogue2(); +extern void HoOhPreFightDialogue(); +extern void HoOhPreFightDialogue1(); +extern void LatiosPreFightDialogue(); +extern void LatiosReFightDialogue(); +extern void sub_808AC3C(); +extern void RegirockPreFightDialogue(); +extern void RegicePreFightDialogue(); +extern void RegisteelPreFightDialogue(); +extern void JirachiPreFightDialogue(); +extern void JirachiPreFightDialogue1(); +extern void LugiaPreFightDialogue(); +extern void KyogrePreFightDialogue(); +extern void DeoxysPreFightDialogue(); +extern void CelebiJoinDialogue(); +extern void sub_808C998(); +extern void MedichamRescueDialogue(); +extern void DummyFightDialogue(); +extern void SmeargleRescueDialogue(); +extern void sub_808CD9C(); +extern void sub_8085764(); +extern void sub_80857B8(); +extern void sub_8097FF8(); + +extern void sub_8086BDC(u32,u8); +extern void sub_8086F54(u32,u8); +extern void sub_8087334(u32,u8); +extern void sub_80878F4(u32,u8); +extern void sub_8088088(u32,u8); +extern void sub_8088818(u32,u8); +extern void sub_80893B4(u32,u8); +extern void sub_8089788(struct DungeonEntity *,u32,u8); +extern void sub_8089A00(u32,u8); +extern void sub_8089CFC(u32,u8); +extern void sub_8089FF0(u32,u8); +extern void sub_808A36C(u32,u8); +extern void sub_808A6E8(u32,u8); +extern void sub_808AAF0(u32,u8); +extern void sub_808AE54(u32,u8,s16 *); +extern void sub_808AEC8(u32,u8,s16 *); +extern void sub_808AF3C(u32,u8,s16 *); +extern void sub_808B3E4(u32,u8,u8); +extern void sub_808BE70(u32,u8,u8); +extern void sub_808C1A4(u32,u8,u8); +extern void sub_808C414(u32,u8,u8); +extern void nullsub_100(u32,u8,u8); +extern void sub_808C948(struct DungeonEntity *,u8); +extern void sub_8083E88(u32); + +extern void sub_808AFB0(u8); +extern void sub_808B030(u8); +extern void sub_808B0B0(u8); + + +void DisplayPreFightDialogue(void) +{ + + switch(gDungeonGlobalData->unk3A0D) { + case 0: + break; + case 1: + SkarmonyPreFightDialogue(); + break; + case 2: + SkarmonyReFightDialogue(); + break; + case 3: + sub_8086E40(); + break; + case 4: + TeamMeaniePreFightDialogue(); + break; + case 5: + TeamMeanieReFightDialogue(); + break; + case 6: + sub_8087130(); + break; + case 7: + ZapdosPreFightDialogue(); + break; + case 8: + ZapdosReFightDialogue(); + break; + case 9: + ZapdosPostStoryPreFightDialogue(); + break; + case 10: + MoltresPreFightDialogue(); + break; + case 0xb: + MoltresReFightDialogue(); + break; + case 0xc: + MoltresPostStoryPreFightDialogue(); + break; + case 0xd: + ArticunoPreFightDialogue(); + break; + case 0xe: + ArticunoReFightDialogue(); + break; + case 0xf: + ArticunoPostStoryPreFightDialogue(); + break; + case 0x10: + sub_8088608(); + break; + case 0x11: + sub_8088618(); + break; + case 0x12: + GroudonPreFightDialogue(); + break; + case 0x13: + GroudonReFightDialogue(); + break; + case 0x14: + GroudonPostStoryPreFightDialogue(); + break; + case 0x15: + MagmaCavernMidDialogue(); + break; + case 0x16: + sub_8089168(); + break; + case 0x17: + RayquazaPreFightDialogue(); + break; + case 0x18: + RayquazaReFightDialogue(); + break; + case 0x19: + RayquazaPostStoryPreFightDialogue(); + break; + case 0x1a: + sub_80897F0(); + break; + case 0x1b: + sub_8089878(); + break; + case 0x1c: + sub_80898E4(); + break; + case 0x1d: + case 0x1e: + MewtwoPreFightDialogue(); + break; + case 0x1f: + MewtwoPreFightDialogue1(); + break; + case 0x20: + EnteiPreFightDialogue(); + break; + case 0x21: + EnteiPreFightDialogue1(); + break; + case 0x22: + EnteiPreFightDialogue2(); + break; + case 0x23: + RaikouPreFightDialogue(); + break; + case 0x24: + RaikouPreFightDialogue1(); + break; + case 0x25: + RaikouPreFightDialogue2(); + break; + case 0x26: + SuicunePreFightDialogue(); + break; + case 0x27: + SuicunePreFightDialogue1(); + break; + case 0x28: + SuicunePreFightDialogue2(); + break; + case 0x29: + HoOhPreFightDialogue(); + break; + case 0x2a: + HoOhPreFightDialogue1(); + break; + case 0x2b: + LatiosPreFightDialogue(); + break; + case 0x2c: + LatiosReFightDialogue(); + break; + case 0x2d: + sub_808AC3C(); + break; + case 0x2e: + RegirockPreFightDialogue(); + break; + case 0x2f: + RegicePreFightDialogue(); + break; + case 0x30: + RegisteelPreFightDialogue(); + break; + case 0x31: + JirachiPreFightDialogue(); + break; + case 0x32: + JirachiPreFightDialogue1(); + break; + case 0x33: + LugiaPreFightDialogue(); + break; + case 0x34: + KyogrePreFightDialogue(); + break; + case 0x35: + DeoxysPreFightDialogue(); + break; + case 0x36: + CelebiJoinDialogue(); + break; + case 0x37: + sub_808C998(); + break; + case 0x38: + MedichamRescueDialogue(); + break; + case 0x39: + DummyFightDialogue(); + break; + case 0x3a: + SmeargleRescueDialogue(); + break; + case 0x3b: + sub_808CD9C(); + break; + case 0x3C: + break; + } + sub_8085764(); + sub_80857B8(); + gDungeonGlobalData->unk1356C = 0; + sub_8097FF8(); +} + +void sub_8084E00(struct DungeonEntity *param_1,char param_2,char param_3) +{ + + if (param_2 != '\0') { + switch(gDungeonGlobalData->unk3A0D) { + case 0: + break; + case 1: + case 2: + sub_8086BDC(param_2,gDungeonGlobalData->unk3A0D); + break; + case 4: + case 5: + sub_8086F54(param_2,gDungeonGlobalData->unk3A0D); + break; + case 7: + case 8: + case 9: + sub_8087334(param_2,gDungeonGlobalData->unk3A0D); + break; + case 10: + case 0xb: + case 0xc: + sub_80878F4(param_2,gDungeonGlobalData->unk3A0D); + break; + case 0xd: + case 0xe: + case 0xf: + sub_8088088(param_2,gDungeonGlobalData->unk3A0D); + break; + case 0x12: + case 0x13: + case 0x14: + sub_8088818(param_2,gDungeonGlobalData->unk3A0D); + break; + case 0x17: + case 0x18: + case 0x19: + sub_80893B4(param_2,gDungeonGlobalData->unk3A0D); + break; + case 0x1a: + case 0x1b: + sub_8089788(param_1,param_2,gDungeonGlobalData->unk3A0D); + break; + case 0x1d: + case 0x1e: + case 0x1f: + sub_8089A00(param_2,gDungeonGlobalData->unk3A0D); + break; + case 0x20: + case 0x21: + case 0x22: + sub_8089CFC(param_2,gDungeonGlobalData->unk3A0D); + break; + case 0x23: + case 0x24: + case 0x25: + sub_8089FF0(param_2,gDungeonGlobalData->unk3A0D); + break; + case 0x26: + case 0x27: + case 0x28: + sub_808A36C(param_2,gDungeonGlobalData->unk3A0D); + break; + case 0x29: + case 0x2a: + sub_808A6E8(param_2,gDungeonGlobalData->unk3A0D); + break; + case 0x2b: + case 0x2c: + case 0x2d: + sub_808AAF0(param_2,gDungeonGlobalData->unk3A0D); + break; + case 0x2e: + sub_808AE54(param_2,gDungeonGlobalData->unk3A0D,¶m_1->posWorldX); + break; + case 0x2f: + sub_808AEC8(param_2,gDungeonGlobalData->unk3A0D,¶m_1->posWorldX); + break; + case 0x30: + sub_808AF3C(param_2,gDungeonGlobalData->unk3A0D,¶m_1->posWorldX); + break; + case 0x31: + case 0x32: + sub_808B3E4(param_2,gDungeonGlobalData->unk3A0D,param_3); + break; + case 0x33: + sub_808BE70(param_2,gDungeonGlobalData->unk3A0D,param_3); + break; + case 0x34: + sub_808C1A4(param_2,gDungeonGlobalData->unk3A0D,param_3); + break; + case 0x35: + sub_808C414(param_2,gDungeonGlobalData->unk3A0D,param_3); + break; + case 0x36: + nullsub_100(param_2,gDungeonGlobalData->unk3A0D,param_3); + break; + case 0x37: + sub_808C948(param_1,gDungeonGlobalData->unk3A0D); + break; + case 0x38: + case 0x39: + case 0x3A: + case 0x3B: + case 0x3C: + break; + } + if ((param_3 == '\0') && (gDungeonGlobalData->unk2 != '\0')) { + sub_8083E88(999); + } + } +} + +void sub_8085140(void) +{ + switch(gDungeonGlobalData->unk3A0D) { + // NOTE: shortcut way to generate all cases from 0 - 0x3C properly + default: + case 0: + case 1: + case 0x3C: + break; + case 0x2e: + sub_808AFB0(gDungeonGlobalData->unk3A0D); + break; + case 0x2f: + sub_808B030(gDungeonGlobalData->unk3A0D); + break; + case 0x30: + sub_808B0B0(gDungeonGlobalData->unk3A0D); + break; + } +} diff --git a/src/main_menu.c b/src/main_menu.c index cf0524a..37cd217 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -22,9 +22,6 @@ // Deletes the Save -extern struct MainMenu *gMainMenu; -void sub_8035DA0(void); - extern void sub_8094C14(void); extern void sub_8099690(u32); extern void sub_8036FDC(s32); @@ -35,7 +32,7 @@ extern void CreateWonderMailMenu(void); extern void CreateLoadScreen(u32); extern void CreateRescuePasswordMenu(u32); extern void CreateSaveMenu(u32); -extern s32 UpdateMainMenu(void); +extern u32 UpdateMainMenu(void); extern s32 UpdateLoadScreenMenu(void); extern s32 UpdateFriendRescueMenu(void); extern s32 UpdateWonderMailMenu(void); @@ -53,38 +50,261 @@ extern void CleanWirelessCommsMenu(void); extern void CleanRescuePasswordMenu(void); extern void sub_80383A8(void); extern void CleanSaveMenu(void); +extern u8 sub_8012FD8(u32 *); +extern void sub_8013114(u32 *, s32 *); +extern u8 sub_803D0D8(); +extern s32 sub_8011C34(); +extern s32 sub_8095324(u32); void CleanMainMenu(void); void DrawMainMenu(void); s32 sub_8035DB4(u32); - -struct unkSubStruct -{ - u32 unk0; - u32 unk4; -}; +void sub_803623C(void); +bool8 SetMainMenuText(); +void SetMainMenuItems(); +void sub_8035DA0(void); struct unkStruct_203B34C { // size: 0x1A8 u32 unk0; u32 unk4; - struct unkSubStruct *unk8; // Array of menu choices?? + struct MenuItem *unk8; // Array of menu choices?? u8 fillC[0x30 - 0xC]; s16 menuIndex; - u8 fill32[0x144 - 0x32]; + u8 fill32[0x54 - 0x32]; + + u32 unk54; + u8 fill58[0xA4 - 0x58]; + + u32 unkA4; + u32 unkA8; + u8 fillAC[0x144 - 0xAC]; struct UnkTextStruct2 unk144[4]; /* 0x1A4 */ u32 currMenuChoice; }; -extern struct unkStruct_203B34C *gUnknown_203B34C; +EWRAM_DATA struct MainMenu *gMainMenu; +EWRAM_DATA struct unkStruct_203B34C *gUnknown_203B34C; +EWRAM_DATA u32 gUnknown_203B350; +EWRAM_DATA u32 gUnknown_203B354; // unused everywhere else except here.. + + +extern const char NewGame_80E5A20[]; +extern const char AdventureLog_80E5A10[]; +extern const char WonderMail_80E5A54[]; +extern const char Continue_80E5AF0[]; +extern const char DeleteSaveData_80E5ADC[]; +extern const char FriendRescue_80E5ACC[]; +extern const char TradeItems_80E5AC0[]; +extern const char ReviveTeam_80E5C0C[]; +extern const char SendItems_80E5C90[]; +extern const char ReceiveItems_80E5C80[]; +extern const char AwaitingRescue_80E5B7C[]; + +const struct UnkTextStruct2 gUnknown_80E59A8 = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; + +const char main_menu_fill[] = "pksdir0"; + +const struct UnkTextStruct2 gUnknown_80E59C8 = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; + +const struct UnkTextStruct2 gUnknown_80E59E0 = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x02, 0x00, + 0x0A, 0x03, + 0x03, 0x00, + NULL +}; + +const struct MenuItem gUnknown_80E59F8[] = +{ + {NewGame_80E5A20, MENU_NEW_GAME}, + {AdventureLog_80E5A10, MENU_ADVENTURE_LOG}, + {NULL, 0xffdd}, +}; + +const char AdventureLog_80E5A10[] = "Adventure Log"; +const char NewGame_80E5A20[] = "New Game"; + +const struct UnkTextStruct2 gUnknown_80E5A29 = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x02, 0x00, + 0x0A, 0x02, + 0x02, 0x00, + NULL +}; + +const struct MenuItem gUnknown_80E5A44[] = +{ + {WonderMail_80E5A54, MENU_WONDER_MAIL}, + {NULL, 0xffdd}, +}; + +const char WonderMail_80E5A54[] = "Wonder Mail"; + +const struct UnkTextStruct2 gUnknown_80E5A60 = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x02, 0x00, + 0x0A, 0x08, + 0x08, 0x00, + NULL +}; + +const struct UnkTextStruct2 gUnknown_80E5A78 = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x02, 0x00, + 0x0B, 0x09, + 0x09, 0x00, + NULL +}; + +const struct MenuItem gUnknown_80E5A90[] = +{ + {Continue_80E5AF0, MENU_CONTINUE}, + {DeleteSaveData_80E5ADC, MENU_DELETE_SAVE_PROMPT}, + {AdventureLog_80E5A10, MENU_ADVENTURE_LOG}, + {FriendRescue_80E5ACC, MENU_FRIEND_RESCUE}, + {TradeItems_80E5AC0, MENU_TRADE_ITEMS}, + {NULL, 0xffdd}, +}; + +const char TradeItems_80E5AC0[] = "Trade Items"; +const char FriendRescue_80E5ACC[] = "Friend Rescue"; +const char DeleteSaveData_80E5ADC[] = "Delete Save Data"; +const char Continue_80E5AF0[] = "Continue"; + + +const struct MenuItem gUnknown_80E5AFC[] = +{ + {Continue_80E5AF0, MENU_CONTINUE}, + {DeleteSaveData_80E5ADC, MENU_DELETE_SAVE_PROMPT}, + {AdventureLog_80E5A10, MENU_ADVENTURE_LOG}, + {FriendRescue_80E5ACC, MENU_FRIEND_RESCUE}, + {TradeItems_80E5AC0, MENU_TRADE_ITEMS}, + {WonderMail_80E5A54, MENU_WONDER_MAIL}, + {NULL, 0xffdd}, +}; + +const struct UnkTextStruct2 gUnknown_80E5B34 = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x02, 0x00, + 0x0A, 0x08, + 0x08, 0x00, + NULL +}; + +const struct MenuItem gUnknown_80E5B4C[] = +{ + {AwaitingRescue_80E5B7C, MENU_AWAITING_RESCUE}, + {DeleteSaveData_80E5ADC, MENU_DELETE_SAVE_PROMPT}, + {AdventureLog_80E5A10, MENU_ADVENTURE_LOG}, + {FriendRescue_80E5ACC, MENU_FRIEND_RESCUE}, + {TradeItems_80E5AC0, MENU_TRADE_ITEMS}, + {NULL, 0xffdd}, +}; +const char AwaitingRescue_80E5B7C[] = "Awaiting Rescue"; + +const struct MenuItem gUnknown_80E5B8C[] = +{ + {AwaitingRescue_80E5B7C, MENU_AWAITING_RESCUE}, + {DeleteSaveData_80E5ADC, MENU_DELETE_SAVE_PROMPT}, + {AdventureLog_80E5A10, MENU_ADVENTURE_LOG}, + {FriendRescue_80E5ACC, MENU_FRIEND_RESCUE}, + {TradeItems_80E5AC0, MENU_TRADE_ITEMS}, + {WonderMail_80E5A54, MENU_WONDER_MAIL}, + {NULL, 0xffdd}, +}; + +const struct UnkTextStruct2 gUnknown_80E5BC4 = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x02, 0x00, + 0x0A, 0x08, + 0x08, 0x00, + NULL +}; + +const struct MenuItem gUnknown_80E5BDC[] = +{ + {ReviveTeam_80E5C0C, MENU_CONTINUE}, + {DeleteSaveData_80E5ADC, MENU_DELETE_SAVE_PROMPT}, + {AdventureLog_80E5A10, MENU_ADVENTURE_LOG}, + {FriendRescue_80E5ACC, MENU_FRIEND_RESCUE}, + {TradeItems_80E5AC0, MENU_TRADE_ITEMS}, + {NULL, 0xffdd}, +}; +const char ReviveTeam_80E5C0C[] = "Revive Team"; + +const struct MenuItem gUnknown_80E5C18[] = +{ + {ReviveTeam_80E5C0C, MENU_CONTINUE}, + {DeleteSaveData_80E5ADC, MENU_DELETE_SAVE_PROMPT}, + {AdventureLog_80E5A10, MENU_ADVENTURE_LOG}, + {FriendRescue_80E5ACC, MENU_FRIEND_RESCUE}, + {TradeItems_80E5AC0, MENU_TRADE_ITEMS}, + {WonderMail_80E5A54, MENU_WONDER_MAIL}, + {NULL, 0xffdd}, +}; + +const struct UnkTextStruct2 gUnknown_80E5C50 = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x02, 0x00, + 0x0A, 0x03, + 0x03, 0x00, + NULL +}; + +const struct MenuItem gUnknown_80E5C68[] = +{ + {SendItems_80E5C90, MENU_SEND_ITEMS}, + {ReceiveItems_80E5C80, MENU_RECEIVE_ITEMS}, + {NULL, 0xffdd}, +}; + +const char ReceiveItems_80E5C80[] = "Receive Items"; +const char SendItems_80E5C90[] = "Send Items"; + +const struct MenuItem gUnknown_80E5C9C[] = +{ + {SendItems_80E5C90, -1}, + {ReceiveItems_80E5C80, MENU_RECEIVE_ITEMS}, + {NULL, 0xffdd}, +}; + +extern const struct UnkTextStruct2 gUnknown_80E5CB4; +extern const struct MenuItem gUnknown_80E5CCC[]; +extern const struct MenuItem gUnknown_80E5D0C[]; +extern const struct MenuItem gUnknown_80E5D48[]; +extern const struct MenuItem gUnknown_80E5DA0[]; +extern const struct MenuItem gUnknown_80E5DF0[]; +extern const struct MenuItem gUnknown_80E5E5C[]; +extern const struct MenuItem gUnknown_80E5EBC[]; +extern const struct MenuItem gUnknown_80E5F1C[]; +extern const struct MenuItem gUnknown_80E5F80[]; +extern const struct MenuItem gUnknown_80E5FCC[]; +extern const struct MenuItem gUnknown_80E6030[]; -extern struct MainMenu *gMainMenu; -extern struct UnkTextStruct2 gUnknown_80E59A8; -extern struct UnkTextStruct2 gUnknown_80E59C8; -extern bool8 SetMainMenuText(); -extern void SetMainMenuItems(); struct unkStruct_Menu { @@ -396,6 +616,7 @@ void sub_8035D1C(void) gMainMenu->unk38 = -1; } +// Unused void sub_8035D30(s32 r0) { gMainMenu->unk38 = r0; @@ -411,11 +632,13 @@ struct MainMenu *GetMainMenu(void) return gMainMenu; } +// Unused void sub_8035D58(void) { gMainMenu->unk3C = -1; } +// Unused void sub_8035D68(s32 r0) { gMainMenu->unk3C = r0; @@ -528,3 +751,241 @@ void CleanMainMenu(void) } } +u32 UpdateMainMenu(void) +{ + u32 nextMenu = MENU_NO_SCREEN_CHANGE; + switch(gUnknown_203B34C->unk0) + { + case 1: + sub_8012FD8(&gUnknown_203B34C->unkA4); + if(!sub_8012FD8(&gUnknown_203B34C->unk4)) + sub_8013114(&gUnknown_203B34C->unk4, &nextMenu); + + if(SetMainMenuText()) + { + sub_8035CF4(&gUnknown_203B34C->unk4, 0, 1); + sub_8035CF4(&gUnknown_203B34C->unk4, 2, 0); + } + switch(nextMenu) + { + case MENU_NO_SCREEN_CHANGE: + nextMenu = MENU_NO_SCREEN_CHANGE; + break; + case 0xffdd: + gUnknown_203B34C->unk0 = 1; + nextMenu = MENU_NO_SCREEN_CHANGE; + ResetUnusedInputStruct(); + sub_8035CF4(&gUnknown_203B34C->unk4, 0, 1); + sub_8035CF4(&gUnknown_203B34C->unk4, 2, 0); + break; + case MENU_TRADE_ITEMS: + sub_8035DA0(); + gUnknown_203B350 = nextMenu; + break; + case MENU_NEW_GAME: + case MENU_AWAITING_RESCUE: + case MENU_CONTINUE: + case MENU_DELETE_SAVE_PROMPT: + case MENU_DELETE_SAVE_CONFIRM: + case MENU_ADVENTURE_LOG: + case MENU_FRIEND_RESCUE: + case MENU_WONDER_MAIL: + case MENU_DUAL_SLOT: + case MENU_WIRELESS_COMMS: + case MENU_DEBUG: + gUnknown_203B350 = nextMenu; + break; + + } + break; + case 0xC: + if(!sub_8012FD8(&gUnknown_203B34C->unk54)) + sub_8013114(&gUnknown_203B34C->unk54, &nextMenu); + switch(nextMenu) + { + case 0xffdd: + sub_803623C(); + gUnknown_203B34C->unk0 = 1; + nextMenu = MENU_NO_SCREEN_CHANGE; + break; + case MENU_SEND_ITEMS: + gUnknown_203B354 = nextMenu; + nextMenu = MENU_TRADE_ITEMS; + break; + case MENU_RECEIVE_ITEMS: + gUnknown_203B354 = nextMenu; + nextMenu = MENU_COMMUNICATION_2; + break; + case MENU_NO_SCREEN_CHANGE: + nextMenu = MENU_NO_SCREEN_CHANGE; + break; + default: + break; + } + break; + default: + case 0xD: // forces the bls switch + break; + } + return nextMenu; +} + +bool8 SetMainMenuText(void) +{ + u32 menuChoice; + struct MenuItem *preload; + + // Have to load the pointer before the index + preload = gUnknown_203B34C->unk8; + menuChoice = preload[gUnknown_203B34C->menuIndex].menuAction; // chosen menu action? + if (gUnknown_203B34C->currMenuChoice == menuChoice) { + return FALSE; + } + + gUnknown_203B34C->currMenuChoice = menuChoice; + sub_8035CC0(gUnknown_203B34C->unk144,2); + sub_8035CC0(gUnknown_203B34C->unk144,3); + switch(menuChoice) { + case MENU_WIRELESS_COMMS: + // Using wireless communications, you can go on an adventure to unknown worlds. + SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E6030,0,0,0); + break; + case MENU_WONDER_MAIL: + // Using passwords, you can receive Wonder Mail + SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F80,0,0,0); + break; + case MENU_AWAITING_RESCUE: + // You are awaiting resuce by a friend + // You can give up waiting for rescue + SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F1C,0,0,0); + break; + case MENU_NEW_GAME: + // Start an entirely new adventure + SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5CCC,0,0,0); + break; + case MENU_CONTINUE: + // Resume your adventure from where you last saved + SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DA0,0,0,0); + break; + case MENU_DELETE_SAVE_PROMPT: + // This will delete your saved game data. + // Beware! This will delete it forever + SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DF0,0,0,0); + break; + case MENU_ADVENTURE_LOG: + // Check your career as an adventurer + SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D0C,0,0,0); + break; + case MENU_FRIEND_RESCUE: + // Using a Game Link cable or passwords, friends may rescue each other + SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5E5C,0,0,0); + break; + case MENU_TRADE_ITEMS: + // Using a Game Link cable you can trade stored items with a friend + SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5EBC,0,0,0); + break; + case MENU_DUAL_SLOT: + // Using Dual Slot function, you can receive teams from your friends + SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5FCC,0,0,0); + break; + case MENU_DEBUG: + // This is the Debug Mode. + // It won't be in the release version + SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D48,0,0,0); + break; + default: + break; + } + return TRUE; +} + +void sub_803623C(void) +{ + sub_8035CC0(gUnknown_203B34C->unk144,1); + SetMainMenuItems(); + gUnknown_203B34C->currMenuChoice = -1; + if (SetMainMenuText()) { + sub_8035CF4(&gUnknown_203B34C->unk4,2,0); + } + sub_8035CF4(&gUnknown_203B34C->unk4,0,1); +} + +void SetMainMenuItems(void) +{ + if (sub_8011C34() != -1) { + if (sub_8095324(1) == 0) { + if (sub_8095324(7) != 0) { + if (sub_803D0D8() != 0) { + // Revive Team + // Delete Save Data + // Adventure Log + // Friend Rescue + // Trade Items + // Wonder Mail + SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5C18,1,gUnknown_203B350,1); + } + else { + // Revive Team + // Delete Save Data + // Adventure Log + // Friend Rescue + // Trade Items + SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5BC4,gUnknown_80E5BDC,1,gUnknown_203B350,1); + } + } + else { + if (sub_803D0D8() != 0) { + // Continue + // Delete Save Data + // Adventure Log + // Friend Rescue + // Trade Items + // Wonder Mail + SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5AFC,1,gUnknown_203B350,1); + } + else { + // Continue + // Delete Save Data + // Adventure Log + // Friend Rescue + // Trade Items + SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A60,gUnknown_80E5A90,1,gUnknown_203B350,1); + } + } + } + else { + if (sub_803D0D8() != 0) { + // Awaiting Rescue + // Delete Save Data + // Adventure Log + // Friend Rescue + // Trade Items + // Wonder Mail + SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5B8C,1,gUnknown_203B350,1); + } + else { + // Awaiting Rescue + // Delete Save Data + // Adventure Log + // Friend Rescue + // Trade Items + SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5B34,gUnknown_80E5B4C,1,gUnknown_203B350,1); + } + } + } + else + { + // New Game + // Adventure Log + SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E59E0,gUnknown_80E59F8,1,gUnknown_203B350,1); + } +} + +bool8 sub_80363E0(void) +{ + if(gUnknown_203B34C == NULL) + return FALSE; + if(gUnknown_203B34C->unk0 == 0xC) + return FALSE; + return TRUE; +} diff --git a/src/main_menu_1.c b/src/main_menu_1.c deleted file mode 100644 index 668df86..0000000 --- a/src/main_menu_1.c +++ /dev/null @@ -1,216 +0,0 @@ -#include "global.h" -#include "main_menu.h" -#include "menu.h" -#include "text.h" - -struct unkStruct_203B34C -{ - // size: 0x1A8 - u32 unk0; - u32 unk4; - struct MenuItem *unk8; // Array of menu choices?? - u8 fillC[0x30 - 0xC]; - s16 menuIndex; - u8 fill32[0x144 - 0x32]; - struct UnkTextStruct2 unk144[4]; - /* 0x1A4 */ u32 currMenuChoice; -}; - -extern struct unkStruct_203B34C *gUnknown_203B34C; -extern u32 gUnknown_203B350; - - -extern u32 gUnknown_80E59E0; -extern u32 gUnknown_80E5A78; -extern u32 gUnknown_80E5B34; -extern u32 gUnknown_80E5BC4; -extern u32 gUnknown_80E5CB4; -extern u32 gUnknown_80E5A60; - -extern const struct MenuItem gUnknown_80E59F8[]; -extern const struct MenuItem gUnknown_80E5A90[]; -extern const struct MenuItem gUnknown_80E5AFC[]; -extern const struct MenuItem gUnknown_80E5B4C[]; -extern const struct MenuItem gUnknown_80E5B8C[]; -extern const struct MenuItem gUnknown_80E5BDC[]; -extern const struct MenuItem gUnknown_80E5C18[]; -extern const struct MenuItem gUnknown_80E5CCC[]; -extern const struct MenuItem gUnknown_80E5D0C[]; -extern const struct MenuItem gUnknown_80E5D48[]; -extern const struct MenuItem gUnknown_80E5DA0[]; -extern const struct MenuItem gUnknown_80E5DF0[]; -extern const struct MenuItem gUnknown_80E5E5C[]; -extern const struct MenuItem gUnknown_80E5EBC[]; -extern const struct MenuItem gUnknown_80E5F1C[]; -extern const struct MenuItem gUnknown_80E5F80[]; -extern const struct MenuItem gUnknown_80E5FCC[]; -extern const struct MenuItem gUnknown_80E6030[]; - -extern u8 sub_803D0D8(); -extern s32 sub_8011C34(); -extern s32 sub_8095324(u32); -extern void SetMenuItems(u32 *, struct UnkTextStruct2 *, u32, u32 *, const struct MenuItem *, u32, u32, u32); -void SetMainMenuItems(void); -extern bool8 SetMainMenuText(); -extern void sub_8035CF4(u32 *, u32, u32); -extern void sub_8035CC0(struct UnkTextStruct2 *, u32); - -bool8 SetMainMenuText(void) -{ - u32 menuChoice; - struct MenuItem *preload; - - // Have to load the pointer before the index - preload = gUnknown_203B34C->unk8; - menuChoice = preload[gUnknown_203B34C->menuIndex].menuAction; // chosen menu action? - if (gUnknown_203B34C->currMenuChoice == menuChoice) { - return FALSE; - } - - gUnknown_203B34C->currMenuChoice = menuChoice; - sub_8035CC0(gUnknown_203B34C->unk144,2); - sub_8035CC0(gUnknown_203B34C->unk144,3); - switch(menuChoice) { - case MENU_WIRELESS_COMMS: - // Using wireless communications, you can go on an adventure to unknown worlds. - SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E6030,0,0,0); - break; - case MENU_WONDER_MAIL: - // Using passwords, you can receive Wonder Mail - SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F80,0,0,0); - break; - case MENU_AWAITING_RESCUE: - // You are awaiting resuce by a friend - // You can give up waiting for rescue - SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F1C,0,0,0); - break; - case MENU_NEW_GAME: - // Start an entirely new adventure - SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5CCC,0,0,0); - break; - case MENU_CONTINUE: - // Resume your adventure from where you last saved - SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DA0,0,0,0); - break; - case MENU_DELETE_SAVE_PROMPT: - // This will delete your saved game data. - // Beware! This will delete it forever - SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DF0,0,0,0); - break; - case MENU_ADVENTURE_LOG: - // Check your career as an adventurer - SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D0C,0,0,0); - break; - case MENU_FRIEND_RESCUE: - // Using a Game Link cable or passwords, friends may rescue each other - SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5E5C,0,0,0); - break; - case MENU_TRADE_ITEMS: - // Using a Game Link cable you can trade stored items with a friend - SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5EBC,0,0,0); - break; - case MENU_DUAL_SLOT: - // Using Dual Slot function, you can receive teams from your friends - SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5FCC,0,0,0); - break; - case MENU_DEBUG: - // This is the Debug Mode. - // It won't be in the release version - SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D48,0,0,0); - break; - default: - break; - } - return TRUE; -} - -void sub_803623C(void) -{ - sub_8035CC0(gUnknown_203B34C->unk144,1); - SetMainMenuItems(); - gUnknown_203B34C->currMenuChoice = -1; - if (SetMainMenuText()) { - sub_8035CF4(&gUnknown_203B34C->unk4,2,0); - } - sub_8035CF4(&gUnknown_203B34C->unk4,0,1); -} - -void SetMainMenuItems(void) -{ - if (sub_8011C34() != -1) { - if (sub_8095324(1) == 0) { - if (sub_8095324(7) != 0) { - if (sub_803D0D8() != 0) { - // Revive Team - // Delete Save Data - // Adventure Log - // Friend Rescue - // Trade Items - // Wonder Mail - SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5C18,1,gUnknown_203B350,1); - } - else { - // Revive Team - // Delete Save Data - // Adventure Log - // Friend Rescue - // Trade Items - SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5BC4,gUnknown_80E5BDC,1,gUnknown_203B350,1); - } - } - else { - if (sub_803D0D8() != 0) { - // Continue - // Delete Save Data - // Adventure Log - // Friend Rescue - // Trade Items - // Wonder Mail - SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5AFC,1,gUnknown_203B350,1); - } - else { - // Continue - // Delete Save Data - // Adventure Log - // Friend Rescue - // Trade Items - SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A60,gUnknown_80E5A90,1,gUnknown_203B350,1); - } - } - } - else { - if (sub_803D0D8() != 0) { - // Awaiting Rescue - // Delete Save Data - // Adventure Log - // Friend Rescue - // Trade Items - // Wonder Mail - SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5B8C,1,gUnknown_203B350,1); - } - else { - // Awaiting Rescue - // Delete Save Data - // Adventure Log - // Friend Rescue - // Trade Items - SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5B34,gUnknown_80E5B4C,1,gUnknown_203B350,1); - } - } - } - else - { - // New Game - // Adventure Log - SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E59E0,gUnknown_80E59F8,1,gUnknown_203B350,1); - } -} - -bool8 sub_80363E0(void) -{ - if(gUnknown_203B34C == NULL) - return FALSE; - if(gUnknown_203B34C->unk0 == 0xC) - return FALSE; - return TRUE; -} diff --git a/src/memory_mid.c b/src/memory_mid.c index 1eb707c..51c927a 100644 --- a/src/memory_mid.c +++ b/src/memory_mid.c @@ -2,7 +2,7 @@ #include "memory.h" extern u32 gUnknown_80B7F14; -extern u32 gUnknown_80B7F20; +extern const char gLocateSetErrorMessage[]; extern struct HeapDescriptor gMainHeapDescriptor; extern s32 MemorySearchFromBack(struct HeapDescriptor *heap, s32, s32); @@ -12,7 +12,7 @@ extern struct HeapDescriptor * _LocateSetFront(struct HeapDescriptor *, u32, u32 void DoFree(struct HeapDescriptor *, void *); void *DoAlloc(struct HeapDescriptor *, s32, u32); -void FatalError(u32 *, u32 *, ...) __attribute__((noreturn)); +void FatalError(u32 *, const char *, ...) __attribute__((noreturn)); s32 _LocateSet(struct HeapDescriptor *heap, s32 size, s32 group) @@ -48,7 +48,7 @@ error: // LocateSet [%p] buffer %8x size can't locate // atb %02x grp %3d FatalError(&gUnknown_80B7F14, - &gUnknown_80B7F20, + gLocateSetErrorMessage, heap,size,atb,group); } diff --git a/src/personality_test.c b/src/personality_test.c index 2034b7b..d129d8c 100644 --- a/src/personality_test.c +++ b/src/personality_test.c @@ -56,7 +56,6 @@ extern struct UnkSaveStruct1 *gUnknown_203B46C; extern const char gStarterReveal[]; extern const char gGenderText[]; extern struct MenuItem gGenderMenu[]; -extern const char gPartnerSelectionHeaderText; extern u8 gNatureQuestionTable[NUM_QUIZ_QUESTIONS]; extern u8 gAvailablePokemonNames[0x50]; @@ -170,7 +169,8 @@ const struct UnkTextStruct2 gUnknown_80F42A8 = NULL }; - +const char gPartnerSelectionHeaderText[] = _("Pokémon"); +const char personality_test_fill[] = "pksdir0"; u8 CreateTestTracker(void) { @@ -712,7 +712,7 @@ void RedrawPartnerSelectionMenu(void) sub_800641C(gUnknown_203B404->unk54,1,1); sub_8008C54(gUnknown_203B404->unk4C); sub_80073B8(gUnknown_203B404->unk4C); - xxx_call_draw_string(0xc, 0, &gPartnerSelectionHeaderText, gUnknown_203B404->unk4C, 0); + xxx_call_draw_string(0xc, 0, gPartnerSelectionHeaderText, gUnknown_203B404->unk4C, 0); monCounter = 0; while (monCounter < gUnknown_203B404->unk32) { diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c index 745d682..536c9d9 100644 --- a/src/thank_you_wonder_mail.c +++ b/src/thank_you_wonder_mail.c @@ -424,7 +424,7 @@ extern struct PokemonStruct *sub_808D33C(void); extern void ExpandPlaceholdersBuffer(u8 *buffer, const char *text, ...); extern void SetMenuItems(void *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32); extern void sub_80922B4(u8 *, u8 *, u32); -extern void sub_802F204(u8 *, u32); +extern void sub_802F204(struct unkStruct_802F204 *, u32); extern void sub_80151C0(u32, u8 *); extern void xxx_call_start_bg_music(void); extern void sub_803092C(void); @@ -1615,23 +1615,23 @@ void UpdateThankYouMailText(void) break; case 0x22: monName = GetMonSpecies(SPECIES_PELIPPER); - strcpy(gUnknown_203B2C4->unk53C,monName); - gUnknown_203B2C4->unk550 = 0x130; - gUnknown_203B2C4->unk552 = 2; - gUnknown_203B2C4->unk554 = 0; + strcpy(gUnknown_203B2C4->unk53C.clientName,monName); // 0x53C + gUnknown_203B2C4->unk53C.unk14 = SPECIES_PELIPPER; // 0x550 + gUnknown_203B2C4->unk53C.unk16 = 2; // 0x552 + gUnknown_203B2C4->unk53C.moneyReward = 0; // 0x554 uVar2 = sub_809539C(6,gUnknown_203B2C4->unk430); puVar4 = sub_8095228(uVar2); cVar1 = puVar4->unk20.itemIndex; if (cVar1 != '\0') - gUnknown_203B2C4->unk558 = cVar1; + gUnknown_203B2C4->unk53C.itemRewards[0] = cVar1; // unk558 else - gUnknown_203B2C4->unk558 = 0; - gUnknown_203B2C4->unk55B = 1; - gUnknown_203B2C4->unk560 = sub_803C200(&puVar4->unk4, 0); - gUnknown_203B2C4->unk559 = 0; - gUnknown_203B2C4->unk55A = 0; - gUnknown_203B2C4->unk55C = 0; - sub_802F204(gUnknown_203B2C4->unk53C,0); + gUnknown_203B2C4->unk53C.itemRewards[0] = 0; // unk558 + gUnknown_203B2C4->unk53C.numItems = 1; // unk55B + gUnknown_203B2C4->unk53C.teamRankPtsReward = sub_803C200(&puVar4->unk4, 0); // unk560 + gUnknown_203B2C4->unk53C.itemRewards[1] = 0; // unk559 + gUnknown_203B2C4->unk53C.itemRewards[2] = 0; // unk55A + gUnknown_203B2C4->unk53C.friendAreaReward = 0; // unk55C + sub_802F204(&gUnknown_203B2C4->unk53C,0); // unk53C break; case COMMUNICATING_THANK_YOU_MAIL: // Communicating.. diff --git a/src/wonder_mail.c b/src/wonder_mail.c index 29cd2bc..cae3233 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -34,7 +34,7 @@ extern struct MenuItem gUnknown_80DDA48[]; extern s32 sub_8095190(void); extern u32 sub_8095324(u32); -extern void sub_80141B4(const char *r0, u32, u32 *r1, u32); +extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32); extern void nullsub_130(void); extern void sub_8028348(void); extern void ResetUnusedInputStruct(); @@ -52,7 +52,7 @@ extern void sub_803092C(void); extern u32 sub_80154F0(); extern u32 sub_8039068(u32, u8 *r1, u8 *r0); -extern void sub_8014248(const char *r0, u32, u32, struct MenuItem *r4, u32, u32, u32, u32 *r5, u32); +extern void sub_8014248(const char *r0, u32, u32, struct MenuItem *r4, u32, u32, u32, void *r5, u32); extern void sub_8095274(u32); extern void sub_80155F0(); extern void sub_80951BC(u8 *r0); @@ -83,6 +83,621 @@ extern void sub_8099690(u32); extern void sub_8031E10(void); extern void sub_803084C(void); extern void sub_8030DE4(); +extern u8 gUnknown_80DDAE4[]; +extern struct MenuItem gUnknown_80DDAA0[]; +extern struct MenuItem gUnknown_80DDA80[]; +extern struct MenuItem gUnknown_80DDAFC[]; +extern struct MenuItem gUnknown_80DDB60[]; +extern struct MenuItem gUnknown_80DDA64[]; +extern struct unkStruct_203B45C *gRecruitedPokemonRef; +extern struct MenuItem gUnknown_80DDB24[]; +extern struct MenuItem gUnknown_80DD9EC[]; +extern u8 gUnknown_80DDACC[]; +extern struct MenuItem gUnknown_80DD970[]; + +extern void nullsub_23(u32); +extern s32 sub_8037D64(u32, void *, void *); +extern s32 sub_80381F4(u32, void *, void *); +extern void sub_8023868(u32, u32, u32, u32); +extern void sub_80306A8(u32, u32, u32, u32); +extern s32 sub_8037B28(u32); +extern void sub_8011830(void); +extern u32 sub_8095350(); +extern void sub_8031D70(u8, u32); +extern void sub_80151C0(u32, u8 *); +extern void xxx_call_start_bg_music(void); +extern u32 sub_8023CE8(void); +extern u32 sub_8030894(void); +extern void sub_8030F58(u32); +extern void sub_8023DA4(void); +extern void SetMenuItems(void *, struct UnkTextStruct2 *, u32, u8 *, struct MenuItem *, u32, u32, u32); +extern void sub_8029B34(void); +extern void sub_8029AD8(void); +extern void sub_8029AF4(void); +extern void sub_8029A88(void); +extern void sub_8029AB0(void); +extern void sub_80297B8(void); +extern void sub_80297D4(void); +extern void sub_8029884(void); +extern void sub_8029944(void); +extern void sub_80299AC(void); +extern void sub_80299D8(void); +extern void sub_8029A6C(void); +extern void sub_8028CE0(void); +extern void sub_8028BF0(void); +extern void sub_8029A18(void); +extern void sub_80295A8(void); +extern void sub_8029668(void); +extern void sub_8029684(void); +extern void sub_8029740(void); +extern void sub_80295D8(void); +extern void sub_802979C(void); +extern void sub_8029358(void); +extern void sub_8029374(void); +extern void sub_802939C(void); +extern void sub_8028F58(void); +extern void sub_8028F30(void); +extern void sub_8028F04(void); +extern void sub_8028ED4(void); +extern void sub_80293D8(void); +extern void sub_80293F4(void); +extern void sub_8028DE8(u32); +extern void sub_8028EAC(void); +extern void sub_802955C(void); +extern void sub_80292A4(void); +extern void sub_80292EC(void); +extern void sub_802933C(void); +extern void sub_802958C(void); +extern void sub_8029208(void); +extern void sub_8028E84(void); +extern void sub_8028F80(void); +extern void sub_8028FC0(void); +extern void sub_8028FDC(void); +extern void sub_8028E54(void); +extern void sub_8028E24(void); +extern void sub_8028E08(void); +extern void sub_80290D4(void); +extern void sub_80290F0(void); +extern void sub_80291AC(void); +extern void sub_8029044(void); +extern void sub_8028CFC(void); +extern void sub_8028D4C(void); +extern void sub_8031E10(void); +extern void sub_8023C60(void); +extern void sub_803084C(void); +extern void sub_80155F0(void); +extern void sub_80310B4(void); +extern void sub_8030DE4(void); +extern void sub_802453C(void); + + + +u32 sub_8027F88(void) +{ + char *monName; + struct OpenedFile *faceFile; + s32 counter; + + ResetUnusedInputStruct(); + sub_800641C(0, 1, 1); + gUnknown_203B2C0 = MemoryAlloc(sizeof(struct WonderMailStruct_203B2C0), 8); + MemoryFill8((u8 *)gUnknown_203B2C0, 0, sizeof(struct WonderMailStruct_203B2C0)); + gUnknown_203B2C0->unk53C = 0; + gUnknown_203B2C0->unk218 = -1; + gUnknown_203B2C0->unk544 = -1; + CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_PELIPPER); + monName = GetMonSpecies(SPECIES_PELIPPER); + strcpy(gAvailablePokemonNames, monName); + faceFile = GetDialogueSpriteDataPtr(SPECIES_PELIPPER); + gUnknown_203B2C0->faceFile = faceFile; + gUnknown_203B2C0->faceData = faceFile->data; + gUnknown_203B2C0->unk42C = 0; + gUnknown_203B2C0->unk42D = 0; + gUnknown_203B2C0->unk42E = 0; + gUnknown_203B2C0->unk428 = 2; + gUnknown_203B2C0->unk42A = 8; + for(counter = 0; counter < PASSWORD_BUFFER_SIZE; counter++){ + gUnknown_203B2C0->passwordBuffer[counter] = 0; + } + gUnknown_203B2C0->unk0 = 0x3D; + sub_8028B04(0); // Set initial state to 0? + return 1; +} + +u32 sub_8028078(void) +{ + + switch(gUnknown_203B2C0->state) { + case 0x3c: + sub_8029B34(); + break; + case 0x3a: + sub_8029AD8(); + break; + case 0x3b: + sub_8029AF4(); + break; + case 0x38: + sub_8029A88(); + break; + case 0x37: + sub_8029AB0(); + break; + case 0x32: + sub_80297B8(); + break; + case 0x33: + sub_80297D4(); + break; + case 0x34: + sub_8029884(); + break; + case 0x35: + sub_8029944(); + break; + case 0x31: + sub_80299AC(); + break; + case 0x36: + sub_80299D8(); + break; + case 0x30: + sub_8029A6C(); + break; + case 0x2e: + sub_8029A18(); + break; + case 0x2d: + sub_80295A8(); + break; + case 0x29: + sub_8029668(); + break; + case 0x2b: + sub_8029684(); + break; + case 0x2c: + sub_8029740(); + break; + case 0x2a: + sub_80295D8(); + break; + case 0x2f: + sub_802979C(); + break; + case 9: + sub_8029358(); + break; + case 0x23: + sub_8029374(); + break; + case 0x24: + sub_802939C(); + break; + case 0x26: + sub_80293D8(); + break; + case 0x27: + sub_80293F4(); + break; + case 0x28: + sub_802955C(); + break; + case 4: + sub_80292A4(); + break; + case 6: + sub_80292EC(); + break; + case 7: + sub_802933C(); + break; + case 5: + sub_802958C(); + break; + case 8: + sub_8029208(); + break; + case 0x1a: + sub_8028DE8(1); + break; + case 0x1b: + sub_8028F80(); + break; + case 0x1c: + case 0x1d: + sub_8028FC0(); + break; + case 0x22: + sub_8028FDC(); + break; + case 0x1e: + sub_80290D4(); + break; + case 0x20: + sub_80290F0(); + break; + case 0x21: + sub_80291AC(); + break; + case 0x1f: + sub_8029044(); + break; + case 10: + sub_8028CFC(); + break; + case 0xb: + sub_8028D4C(); + break; + case 0xd: + case 0xf: + sub_8028DE8(10); + break; + case 0x11: + sub_8028E08(); + break; + case 0xc: + case 0xe: + case 0x10: + sub_8028DE8(0x19); + break; + case 0x12: + sub_8028E24(); + break; + case 0x13: + sub_8028E54(); + break; + case 0x17: + sub_8028E84(); + break; + case 0x18: + sub_8028EAC(); + break; + case 0x19: + sub_8028ED4(); + break; + case 0x14: + sub_8028F04(); + break; + case 0x15: + sub_8028F30(); + break; + case 0x16: + sub_8028F58(); + break; + case 0: + case 1: + sub_8028BF0(); + break; + case 2: + case 0x25: + case 0x39: + sub_8028CE0(); + break; + case 3: + return 3; + } + return 0; +} + +s32 sub_80282DC(u8 *r0) +{ + *r0 = gUnknown_203B2C0->unk218; + return gUnknown_203B2C0->unk53C; +} + +void sub_80282FC(void) +{ + if (gUnknown_203B2C0 != NULL) { + CloseFile(gUnknown_203B2C0->faceFile); + MemoryFree(gUnknown_203B2C0); + gUnknown_203B2C0 = NULL; + sub_8031E10(); + sub_8023C60(); + sub_803084C(); + sub_80155F0(); + sub_80310B4(); + sub_8030DE4(); + sub_802453C(); + } +} + +void nullsub_130(void) +{ +} + +void sub_8028348(void) +{ + s32 linkError; + switch(gUnknown_203B2C0->state) + { + case 0x3B: + sub_8006518(gUnknown_203B2C0->unk3BC); + ResetUnusedInputStruct(); + sub_800641C(0, 1, 1); + sub_8031D70(gUnknown_203B2C0->unk218, 0); + break; + case 0x3C: + sub_80141B4(gUnknown_80DDBA8, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x3A: + sub_80141B4(gUnknown_80DDBFC, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x38: + sub_80141B4(gUnknown_80DDC30, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x37: + switch(gUnknown_203B2C0->unk534) + { + // 0x0 - 0x9 included here too... + case 0x10: + case 0xF: + case 0xD: + sub_80141B4(gUnknown_80DDC70, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0xE: + break; + } + break; + case 0x39: + sub_80141B4(gUnknown_80DDC30, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x32: + sub_80141B4(gUnknown_80DDCBC, 0, 0,0x101); + break; + case 0x33: + if(sub_8023CE8() != 0) + { + break; + } + else + { + ResetUnusedInputStruct(); + sub_800641C(0, 1, 1); + sub_8023868(3, 0, 0, 9); + } + break; + case 0x34: + sub_8006518(gUnknown_203B2C0->unk35C); + SetMenuItems(&gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, gUnknown_80DDAE4, gUnknown_80DDAFC, 1, 0, 0); + sub_8023DA4(); + sub_8035CF4(&gUnknown_203B2C0->unk21C, 3, 1); + break; + case 0x31: + sub_8014248(gUnknown_80DDD2C, 0, 0xA, gUnknown_80DDAA0, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + break; + case 0x36: + sub_8014248(gUnknown_80DDD88, 0, 8, gUnknown_80DDA80, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + break; + case 0x2D: + sub_8014248(gUnknown_80DDDBC, 0, 8, gUnknown_80DDA64, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + break; + case 0x29: + sub_80141B4(gUnknown_80DDDD8, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x2A: + if(sub_8030894() != 0) + { + break; + } + else + { + ResetUnusedInputStruct(); + sub_800641C(0, 1, 1); + sub_80306A8(4, 0, 0, 6); + } + break; + case 0x2F: + sub_80141B4(gUnknown_80DDE20, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x30: + sub_80141B4(gUnknown_80DDE58, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x2E: + sub_8014248(gUnknown_80DDEC0, 0, 0x11, gUnknown_80DDB60, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + break; + case 9: + sub_80141B4(gUnknown_80DDF2C, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 4: + sub_8014248(gUnknown_80DDFB8, 0, 8, gUnknown_80DDA48, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + break; + case 5: + nullsub_23(0); + sub_80141B4(gUnknown_80DE01C, 0 , 0, 0); + break; + case 6: + gUnknown_203B2C0->linkError = 0; + sub_8011830(); + linkError = sub_8037B28(gUnknown_203B2C0->unk40); + gUnknown_203B2C0->linkError = linkError; + if(linkError == 0) + { + switch(gUnknown_203B2C0->unk40) + { + case 3: + MemoryFill8(gUnknown_203B2C0->unk48, 0, 0x30); + MemoryFill8(gUnknown_203B2C0->unk78, 0, 0x30); + gUnknown_203B2C0->linkError = sub_8037D64(gUnknown_203B2C0->unk40, gUnknown_203B2C0->unk48, gUnknown_203B2C0->unk78); + break; + case 4: + MemoryFill8((u8 *)&gUnknown_203B2C0->unkA8, 0, 0x88); + MemoryFill8(&gUnknown_203B2C0->unk130, 0, 0x88); + gUnknown_203B2C0->unkD8.speciesNum = linkError; + gUnknown_203B2C0->unk168 = linkError; + gUnknown_203B2C0->unkA8 = *sub_8095228(gUnknown_203B2C0->unk218); + if(gUnknown_203B2C0->unk544 != -1) + { + gUnknown_203B2C0->unkD8 = gRecruitedPokemonRef->pokemon[gUnknown_203B2C0->unk544]; + } + gUnknown_203B2C0->linkError = sub_8037D64(gUnknown_203B2C0->unk40, &gUnknown_203B2C0->unkA8, &gUnknown_203B2C0->unk130); + break; + } + if(gUnknown_203B2C0->linkError == 0) + { + switch(gUnknown_203B2C0->unk40) + { + case 3: + gUnknown_203B2C0->linkError = sub_80381F4(3, gUnknown_203B2C0->unk48, gUnknown_203B2C0->unk78); + break; + case 4: + gUnknown_203B2C0->linkError = sub_80381F4(4, &gUnknown_203B2C0->unkA8, &gUnknown_203B2C0->unk130); + break; + } + } + xxx_call_start_bg_music(); + } + else + { + xxx_call_start_bg_music(); + } + break; + case 0x23: + switch(gUnknown_203B2C0->unk534) + { + // 0x0 - 0x9 included here too... + case 0x10: + case 0xF: + case 0xD: + sub_80141B4(gUnknown_80DE06C, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0xE: + break; + } + break; + case 0x25: + sub_80141B4(gUnknown_80DE0C0, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x26: + sub_80141B4(gUnknown_80DE124, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x27: + sub_8006518(gUnknown_203B2C0->unk3BC); + ResetUnusedInputStruct(); + sub_800641C(0, 1, 1); + sub_80151C0(4, gUnknown_203B2C0->passwordBuffer); + break; + case 8: + switch(gUnknown_203B2C0->unk538) + { + case 0: + sub_8014248(gUnknown_80DE178, 0, 0xD, gUnknown_80DDB24, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + break; + case 2: + sub_8014248(gUnknown_80DE1B4, 0, 0xD, gUnknown_80DDB24, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + break; + } + break; + case 0x1A: + sub_80141B4(gUnknown_80DE1E4, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x1B: + sub_80141B4(gUnknown_80DE280, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x1C: + sub_80141B4(gUnknown_80DE2B0, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x1D: + sub_80141B4(gUnknown_80DE368, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x22: + sub_8014248(gUnknown_80DDDBC, 0, 8, gUnknown_80DDA64, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + break; + case 0x1E: + sub_80141B4(gUnknown_80DE430, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x1F: + if(sub_8030894() != 0) + { + break; + } + else + { + ResetUnusedInputStruct(); + sub_800641C(0, 1, 1); + sub_80306A8(2, 0, 0, 6); + } + break; + case 0x20: + case 0x2B: + sub_8006518(gUnknown_203B2C0->unk35C); + SetMenuItems(&gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, gUnknown_80DDACC, gUnknown_80DDAFC, 1, 0, 0); + sub_803092C(); + sub_8035CF4(&gUnknown_203B2C0->unk21C, 3, 1); + break; + case 0xA: + gUnknown_203B2C0->unk540 = sub_8095350(); + switch((u32)gUnknown_203B2C0->unk538) + { + case 5: + sub_8030F58(2); + break; + case 6: + sub_8030F58(4); + break; + default: + case 7: + break; + } + break; + case 0xB: + sub_8014248(gUnknown_80DE48C, 0, 5, gUnknown_80DD9EC, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + break; + case 0xD: + sub_80141B4(gUnknown_80DE4B8, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0xC: + sub_80141B4(gUnknown_80DE4F0, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0xF: + sub_80141B4(gUnknown_80DE524, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0xE: + sub_80141B4(gUnknown_80DE614, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x11: + sub_80141B4(gUnknown_80DE648, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x10: + sub_80141B4(gUnknown_80DE694, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x12: + sub_8014248(gUnknown_80DE6D4, 0, 8, gUnknown_80DDA48, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + break; + case 0x13: + sub_8014248(gUnknown_80DE754, 0, 8, gUnknown_80DDA48, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + break; + case 0x17: + sub_80141B4(gUnknown_80DE7B8, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x18: + sub_80141B4(gUnknown_80DE7E8, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x19: + sub_8014248(gUnknown_80DE808, 0, 8, gUnknown_80DDA64, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + break; + case 0x14: + sub_80141B4(gUnknown_80DE830, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x15: + sub_80141B4(gUnknown_80DE864, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0x16: + sub_80141B4(gUnknown_80DE7E8, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 0: + sub_8014248(gUnknown_80DE8B4, 0, 0, gUnknown_80DD970, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + break; + case 1: + sub_8014248(gUnknown_80DE918, 0, 0, gUnknown_80DD970, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); + break; + case 2: + sub_80141B4(gUnknown_80DE93C, 0, &gUnknown_203B2C0->faceFile,0x10d); + break; + case 3: + break; + } +} void sub_8028B04(u32 r0) @@ -101,43 +716,43 @@ void sub_8028B1C(u32 r0) break; case 1: case 2: - sub_80141B4(gWonderMailErrorText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailErrorText, 0, &gUnknown_203B2C0->faceFile, 0x10d); break; case 3: - sub_80141B4(gWonderMailNumGBAsText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailNumGBAsText, 0, &gUnknown_203B2C0->faceFile, 0x10d); break; case 4: - sub_80141B4(gWonderMailWrongModeText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailWrongModeText, 0, &gUnknown_203B2C0->faceFile, 0x10d); break; case 5: - sub_80141B4(gWonderMailErrorText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailErrorText, 0, &gUnknown_203B2C0->faceFile, 0x10d); break; case 6: - sub_80141B4(gWonderMailStorageFullText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailStorageFullText, 0, &gUnknown_203B2C0->faceFile, 0x10d); break; case 7: - sub_80141B4(gWonderMailDuplicateText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailDuplicateText, 0, &gUnknown_203B2C0->faceFile, 0x10d); break; case 8: break; case 9: - sub_80141B4(gWonderMailNotEligibleReceiveText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailNotEligibleReceiveText, 0, &gUnknown_203B2C0->faceFile, 0x10d); break; case 10: break; case 11: - sub_80141B4(gWonderMailNotEligibleReceiveText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailNotEligibleReceiveText, 0, &gUnknown_203B2C0->faceFile, 0x10d); break; case 12: break; case 13: - sub_80141B4(gWonderMailNoRoomText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailNoRoomText, 0, &gUnknown_203B2C0->faceFile, 0x10d); break; case 14: - sub_80141B4(gWonderMailErrorText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailErrorText, 0, &gUnknown_203B2C0->faceFile, 0x10d); break; case 15: - sub_80141B4(gWonderMailFriendErrorText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailFriendErrorText, 0, &gUnknown_203B2C0->faceFile, 0x10d); break; default: break; @@ -774,22 +1389,22 @@ void sub_80293F4(void) switch(sub_8039068(0x1C, (gUnknown_203B2C0->passwordBuffer), &temp.unk0)) { case 17: - sub_8014248(gWonderMailPasswordIncorrectText, 0, 8, gUnknown_80DDA48, 0, 4, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0xC); + sub_8014248(gWonderMailPasswordIncorrectText, 0, 8, gUnknown_80DDA48, 0, 4, 0, &gUnknown_203B2C0->faceFile, 0xC); sub_8028B04(40); break; case 18: - sub_80141B4(gWonderMailSOSPasswordIncorrectText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailSOSPasswordIncorrectText, 0, &gUnknown_203B2C0->faceFile, 0x10d); sub_8028B04(7); break; case 7: - sub_80141B4(gWonderMailDuplicateText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); + sub_80141B4(gWonderMailDuplicateText, 0, &gUnknown_203B2C0->faceFile, 0x10d); sub_8028B04(7); break; case 22: sub_8095274(temp.unk10); temp.unk0 = 2; // Some sort of Ack? sub_80951BC(&temp.unk0); - sub_80141B4(gWonderMailAOKMailReceivedText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x101); + sub_80141B4(gWonderMailAOKMailReceivedText, 0, &gUnknown_203B2C0->faceFile, 0x101); sub_8028B04(35); break; case 23: diff --git a/src/wonder_mail_2.c b/src/wonder_mail_2.c index 285c0d0..21074d6 100644 --- a/src/wonder_mail_2.c +++ b/src/wonder_mail_2.c @@ -25,19 +25,7 @@ struct unkStruct_203B2C8 /* 0x13 */ u8 unk13; /* 0x14 */ u8 teamName[4]; // Figure out size of this buffer u8 fill18[0x114 - 0x18]; - u8 speciesName[0xA]; // holds species name - u8 fill118[0x128 - 0x11E]; - u16 unk128; - u8 unk12A; - u8 unk12B; - u32 unk12C; - u8 unk130; - u8 unk131; - u8 unk132; - u8 unk133; - u8 unk134; - u8 fill135[0x3]; - u32 unk138; + struct unkStruct_802F204 unk114; u32 fill13C; }; @@ -107,7 +95,7 @@ extern void sub_802B5FC(void); extern void sub_802B624(void); void ExpandPlaceholdersBuffer(u8 *buffer, const char *text, ...); -extern void sub_802F204(u8 *, u32); +extern void sub_802F204(struct unkStruct_802F204 *, u32); extern void sub_803C37C(u8 *, u32, u8 *); extern u32 sub_803C200(u8 *, u32); extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32); @@ -233,19 +221,19 @@ void sub_802B3E0(void) break; case 1: monName = GetMonSpecies(SPECIES_PELIPPER); - strcpy(gUnknown_203B2C8->speciesName, monName); - gUnknown_203B2C8->unk128 = 0x130; - gUnknown_203B2C8->unk12A = 2; - gUnknown_203B2C8->unk12C = 0; + strcpy(gUnknown_203B2C8->unk114.clientName, monName); + gUnknown_203B2C8->unk114.unk14 = SPECIES_PELIPPER; + gUnknown_203B2C8->unk114.unk16 = 2; + gUnknown_203B2C8->unk114.moneyReward = 0; sub_8097790(); iVar3 = sub_8095228(gUnknown_203B2C8->unk1); - sub_803C37C(&iVar3->unk4, 0, &gUnknown_203B2C8->unk130); - gUnknown_203B2C8->unk138 = sub_803C200(&iVar3->unk4, 0); - gUnknown_203B2C8->unk131 = 0; - gUnknown_203B2C8->unk132 = 0; - gUnknown_203B2C8->unk133 = 10; - gUnknown_203B2C8->unk134 = 0; - sub_802F204(gUnknown_203B2C8->speciesName, 0); + sub_803C37C(&iVar3->unk4, 0, gUnknown_203B2C8->unk114.itemRewards); + gUnknown_203B2C8->unk114.teamRankPtsReward = sub_803C200(&iVar3->unk4, 0); + gUnknown_203B2C8->unk114.itemRewards[1] = 0; + gUnknown_203B2C8->unk114.itemRewards[2] = 0; + gUnknown_203B2C8->unk114.numItems = 10; + gUnknown_203B2C8->unk114.friendAreaReward = 0; + sub_802F204(&gUnknown_203B2C8->unk114, 0); break; case 2: // I hope you will keep on rescuing your friends diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c index e318d26..6cc1e96 100644 --- a/src/wonder_mail_3.c +++ b/src/wonder_mail_3.c @@ -3,6 +3,15 @@ #include "text.h" #include "input.h" #include "menu.h" +#include "constants/dungeon.h" +#include "wonder_mail.h" + +struct unkSubStruct_203B2F8 +{ + struct WonderMail wonderMail; + u8 *unk14; + u8 *unk18; +}; struct unkStruct_203B2F8 { @@ -13,12 +22,21 @@ struct unkStruct_203B2F8 u8 unk9; u8 unkA; u8 unkB; - u32 unkC; - u8 fill10[0x6C - 0x10]; + struct unkSubStruct_203B2F8 *unkC; + u8 unk10; + u8 fill11[0x14 - 0x11]; + u32 unk14; + u8 fill18[0x58 - 0x18]; + u8 unk58; + u8 fill59[0x64 - 0x59]; + u8 *unk64; + u32 unk68; u32 unk6C; u32 unk70; u32 unk74; - u8 fill78[0x118 - 0x78]; + u8 unk78[0xC8 - 0x78]; + u8 unkC8[4]; + u8 fillCC[0x118 - 0xCC]; struct MenuItem unk118[8]; struct MenuItem unk158[8]; u16 unk198[8]; @@ -47,8 +65,44 @@ extern void sub_802DA84(); extern void sub_802D1B8(); extern void sub_802D2A8(); +extern u8 gUnknown_80E0010[]; +extern u8 gUnknown_80DFFA4[]; +extern u8 gUnknown_80DFF2C[]; +extern u8 gUnknown_80DFED0[]; +extern u8 gUnknown_80DFE9C[]; +extern u8 gUnknown_80DFE4C[]; +extern u8 gUnknown_80E0108[]; +extern u8 gUnknown_80E0094[]; +extern u8 gUnknown_80E0074[]; + +extern u8 sub_80968B0(void *); +extern u8 sub_8096F50(void *); +extern u8 sub_802DAA8(void); +extern u8 sub_802DADC(void); +extern u8 *sub_8096DD8(void); +extern u8 sub_8096C08(u8 *); +extern void sub_802C750(void); +extern s32 sub_80969AC(void); +extern void sub_802D1A0(u32); +extern void sub_8012EA4(u8 *, u32); +extern void* sub_8096AB4(u8); +extern void sub_803B35C(void *, u32*); +extern void sub_802DE84(u32 *); +extern void sub_802D73C(void); +extern void sub_802C640(u32); +extern void sub_802C4C8(u32, u32, u32); +extern void sub_8097418(u32, u32); +extern void sub_802D690(void); +extern void sub_8096C80(void); +extern void sub_8096D24(void); +extern void sub_80141B4(u8 *, u32, u32, u32); +extern void sub_8012D60(u8 *, struct MenuItem *, u32, u16 *, u32, u32); +extern u8 *sub_8096DE8(void); +extern void sub_8096A78(struct unkSubStruct_203B2F8 *); +extern void sub_8014248(const char *text, u32, u32, struct MenuItem *r0, u32, u32, u32, u32, u32); -u32 sub_802D098(u32 param_1) + +u32 sub_802D098(struct unkSubStruct_203B2F8 *param_1) { gUnknown_203B2F8 = MemoryAlloc(0x208,8); gUnknown_203B2F8->unk6C = 0; @@ -149,3 +203,133 @@ void sub_802D1B8(void) ResetUnusedInputStruct(); sub_800641C(gUnknown_203B2F8->unk1A8, 1, 1); } + +void sub_802D2A8(void) +{ + + switch(gUnknown_203B2F8->state) { + case 0: + if (sub_80968B0(gUnknown_203B2F8->unkC) != 0) { + sub_802D1A0(3); + } + else + { + if (sub_8096F50(gUnknown_203B2F8->unkC) != 0) { + sub_802D1A0(4); + } + else + { + if ((gUnknown_203B2F8->unkC->wonderMail.unk2 == 4) && (sub_8096C08(&gUnknown_203B2F8->unk10) != 0)) { + if (sub_802DAA8() != 0) { + sub_802D1A0(9); + } + else { + sub_802D1A0(5); + } + } + else { + if (sub_80969AC() >= 8) { + if (sub_802DADC() != 0) { + sub_802D1A0(10); + } + else { + sub_802D1A0(6); + } + } + else + { + sub_802D1A0(8); + } + } + } + } + break; + case 1: + sub_802D73C(); + sub_8014248(gUnknown_80DFE4C,0,gUnknown_203B2F8->unk70,gUnknown_203B2F8->unk158,0,4,0,0,0); + break; + case 3: + gUnknown_203B2F8->unk4 = 2; + sub_80141B4(gUnknown_80DFE9C,0,0,0x101); + break; + case 4: + gUnknown_203B2F8->unk4 = 2; + sub_80141B4(gUnknown_80DFED0,0,0,0x101); + break; + case 5: + gUnknown_203B2F8->unk4 = 2; + sub_80141B4(gUnknown_80DFF2C,0,0,0x101); + break; + case 6: + gUnknown_203B2F8->unk4 = 2; + sub_80141B4(gUnknown_80DFFA4,0,0,0x101); + break; + case 7: + gUnknown_203B2F8->unk4 = 0xc; + sub_80141B4(gUnknown_80E0010,0,0,0x101); + break; + case 8: + gUnknown_203B2F8->unk8 = 1; + sub_8096A78(gUnknown_203B2F8->unkC); + sub_8096C80(); + sub_8096D24(); + if (gUnknown_203B2F8->unkC->wonderMail.unk2 == 4) { + MemoryCopy8(sub_8096DD8(),gUnknown_203B2F8->unkC->unk14,0x28); + MemoryCopy8(sub_8096DE8(),gUnknown_203B2F8->unkC->unk18,0x78); + } + switch(gUnknown_203B2F8->unkC->wonderMail.dungeon) + { + // NOTE: subtract 1 from each of the case as the input?? + case DUNGEON_ODDITY_CAVE: // 0x2B + sub_8097418(0x2A, 1); + break; + case DUNGEON_REMAINS_ISLAND: + sub_8097418(0x2B, 1); + break; + case DUNGEON_MARVELOUS_SEA: + sub_8097418(0x2C, 1); + break; + case DUNGEON_FANTASY_STRAIT: // 0x2E + sub_8097418(0x2D, 1); + break; + } + gUnknown_203B2F8->unk4 = 2; + sub_80141B4(gUnknown_80E0074,0,0,0x101); + break; + case 9: + sub_802D690(); + sub_8014248(gUnknown_80E0094,0,gUnknown_203B2F8->unk74,gUnknown_203B2F8->unk158,0,4,0,0,0); + break; + case 10: + gUnknown_203B2F8->unk4 = 0xb; + sub_80141B4(gUnknown_80E0108,0,0,0x101); + break; + case 0xb: + sub_802C4C8(0,0,4); + break; + case 0xc: + sub_802C640(1); + break; + case 0xd: + sub_802C750(); + sub_8012D60(gUnknown_203B2F8->unk78,gUnknown_203B2F8->unk118,0,gUnknown_203B2F8->unk198, + gUnknown_203B2F8->unk6C,2); + break; + case 0xe: + sub_802C750(); + sub_8012EA4(gUnknown_203B2F8->unk78,0); + sub_8012D60(gUnknown_203B2F8->unkC8,gUnknown_203B2F8->unk158,0,0,4,3); + break; + case 0xf: + sub_803B35C(sub_8096AB4(gUnknown_203B2F8->unk10),&gUnknown_203B2F8->unk14); + gUnknown_203B2F8->unk14 = 3; + sub_802DE84(&gUnknown_203B2F8->unk14); + break; + case 0x10: + sub_803B35C(gUnknown_203B2F8->unkC,&gUnknown_203B2F8->unk14); + gUnknown_203B2F8->unk14 = 3; + gUnknown_203B2F8->unk58 = 0; + gUnknown_203B2F8->unk64 = gUnknown_203B2F8->unkC->unk18; + sub_802DE84(&gUnknown_203B2F8->unk14); + } +} diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c new file mode 100644 index 0000000..5661d44 --- /dev/null +++ b/src/wonder_mail_3_mid.c @@ -0,0 +1,772 @@ +#include "global.h" +#include "memory.h" +#include "text.h" +#include "input.h" +#include "wonder_mail.h" +#include "menu.h" +#include "pokemon.h" +#include "rescue_team_info.h" +#include "friend_area.h" +#include "item.h" + +struct unkStruct_803B344 +{ + // size: 0xB4 + struct WonderMail unk0; + u8* unk14; + u8* unk18; + u8 fill1C[0x3C - 0x1C]; + u8 unk3C[0x78]; +}; + +extern struct unkStruct_803B344 *sub_803B344(u8); + +struct unkStruct_203B30C +{ + // size: 0x150 + s32 state; + u8 unk4; + u8 unk5[3]; + u32 unk8; + u8 fillC[0x4C - 0xC]; + u8 unk4C; + u8 fill4D[0x58 - 0x4D]; + u8 *unk58; + u32 unk5C; + u32 unk60; + u8 fill64[0xB0 - 0x64]; + struct MenuItem unkB0[8]; + struct UnkTextStruct2 unkF0[4]; +}; +extern struct unkStruct_203B30C *gUnknown_203B30C; + +struct unkStruct_203B310 +{ + // size: 0x84 + /* 0x0 */ u32 state; + u32 unk4; + u8 unk8; + /* 0x9 */ u8 currTeamRank; // team rank + u8 unkA; + u8 unkB; + /* 0xC */ s32 itemRewardIndex; + struct unkStruct_802F204 *unk10; + /* 0x14 */ struct OpenedFile *faceFile; + /* 0x18 */ u8 *faceData; + s16 unk1C; + s16 unk1E; + u8 unk20; + u8 unk21; + u8 unk22; + struct UnkTextStruct2 unk24[4]; +}; +extern struct unkStruct_203B310 *gUnknown_203B310; + +// TODO: port to ItemSlot +struct ItemSlot_Alt +{ + // OG struct + // u8 itemFlags + // u8 numItems + // u8 itemIndex + union temp { + u8 itemFlags; + u8 numItems; + u8 itemIndex; + u32 full_bits; + } temp; +}; + +struct unkStruct_203B314 +{ + // size: 0x15C + s16 unk0[2]; + u8 fill4[0xB8 - 0x4]; + u8 unkB8; + u8 unkB9; + u8 unkBA; + u8 unkBB; + u32 unkBC; + u8 fillC0[0xD4 - 0xC0]; + s16 unkD4; + s16 unkD6; + s16 unkD8; + s16 unkDA; + s16 unkDC; + s16 unkDE; + u8 fillDF[0xF0 - 0xE0]; + u32 unkF0; + struct UnkTextStruct2 *unkF4; + struct UnkTextStruct2 unkF8[4]; + u8 unk158[4]; +}; + +extern struct unkStruct_203B314 *gUnknown_203B314; +extern struct UnkTextStruct2 gUnknown_80E072C; +extern struct UnkTextStruct2 gUnknown_80E0714; +extern struct UnkTextStruct2 gUnknown_80E06FC; + +extern u8 sub_802FCF0(u32); +extern void sub_802F9C0(void); +extern void sub_802FA50(void); +extern void sub_8012D08(struct UnkTextStruct2 *, u32); +extern void sub_8013818(u32 *, u32, u32, u32); +extern u32 sub_802FBF4(void); +extern void sub_8013878(u32 *, s32); + +extern void AddMenuCursorSprite(u32 *); +extern void sub_8013984(u32 *); +extern void sub_802F2E8(u32); +extern void sub_802EFEC(u32); +extern void sub_802F148(void); +extern void sub_802F184(void); +extern void sub_802F1E8(void); +extern void sub_802F004(); +extern void sub_802F088(); +extern void sub_801B72C(void); +extern u32 sub_801B6AC(void); +extern void sub_802F108(void); +extern s32 sub_80144A4(s32 *); +extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *); +extern void sub_803B35C(void *, u32 *); +extern void sub_802DE84(u32 *); +extern void sub_8012D60(u32 *, struct MenuItem *, u32, u16 *, u32, u32); +extern void sub_802CDD4(u32); +extern void sub_802CED8(u32); +extern void sub_802CFD0(void); +extern u8 sub_802CEBC(void); +extern u32 sub_802CE5C(u32); +extern void sub_802CF14(void); +extern u8 sub_8012FD8(u32 *r0); +extern void sub_8013114(u32 *, s32 *); +extern u32 sub_802DEE0(void); +extern void sub_802DF24(void); +extern void sub_808DA34(u8 *buffer, struct PokemonStruct *pokemon); +extern struct PokemonStruct *sub_808D33C(void); +extern void sub_802F6FC(void); +extern void sub_802F718(void); +extern u8 sub_80138B8(u32 *, u32); +extern void sub_8013660(u32 *); +extern u32 GetKeyPress(u32 *); +extern void PlayMenuSoundEffect(u32); +extern void sub_802F300(void); +extern void PlaySound(u32); +extern s32 sub_808D544(u32); +extern void sub_80141B4(u8 *, u32, struct OpenedFile **, u32); +extern u32 sub_801B60C(u32, u8, u8); +extern void sub_8092578(u8 *buffer, u8 index, u8 r2); +void HandleMissionReward(void); + +extern struct UnkTextStruct2 gUnknown_80E03C4; +extern struct UnkTextStruct2 gUnknown_80E03F4; +extern struct UnkTextStruct2 gUnknown_80E041C; +extern u8 gUnknown_80E0434[]; +extern u8 gUnknown_80E045C[]; +extern u8 gUnknown_80E0484[]; +extern u8 gUnknown_80E04F4[]; +extern u8 gUnknown_80E06A8[]; +extern u8 gUnknown_80E0670[]; +extern u8 gUnknown_80E05FC[]; +extern u8 gUnknown_80E04B4[]; +extern u8 gUnknown_80E05C0[]; +extern u8 gUnknown_80E0640[]; + +extern u8 gUnknown_202E038[]; +extern u8 gUnknown_202E088[]; +extern u8 gUnknown_202E628[]; +extern u8 gUnknown_202DEA8[]; +extern u8 gUnknown_202E5D8[]; +extern u8 gAvailablePokemonNames[]; +extern u32 gUnknown_202DE30; +extern const char gUnknown_80E040C[]; +extern const char *gUnknown_80D4970[]; + + + +u32 sub_802EF48(void) +{ + gUnknown_203B30C = MemoryAlloc(sizeof(struct unkStruct_203B30C), 8); + sub_802EFEC(0); + return 1; +} + +u32 sub_802EF6C(void) +{ + switch(gUnknown_203B30C->state) + { + case 0: + case 1: + sub_802F148(); + break; + case 2: + sub_802F184(); + break; + case 3: + sub_802F1E8(); + break; + case 4: + return 3; + case 5: + default: + return 2; + } + return 0; +} + +u8 sub_802EFC4(void) +{ + return gUnknown_203B30C->unk4; +} + +void sub_802EFD0(void) +{ + if(gUnknown_203B30C != NULL) + { + MemoryFree(gUnknown_203B30C); + gUnknown_203B30C = NULL; + } +} + +void sub_802EFEC(u32 newState) +{ + gUnknown_203B30C->state = newState; + sub_802F004(); + sub_802F088(); +} + +void sub_802F004(void) +{ + s32 iVar3; + + sub_8006518(gUnknown_203B30C->unkF0); + switch(gUnknown_203B30C->state) + { + case 2: + sub_802F108(); + gUnknown_203B30C->unkF0[2] = gUnknown_80E03F4; + sub_8012CAC(&gUnknown_203B30C->unkF0[2], gUnknown_203B30C->unkB0); + break; + default: + for(iVar3 = 0; iVar3 < 4; iVar3++) + { + gUnknown_203B30C->unkF0[iVar3] = gUnknown_80E03C4; + } + } + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B30C->unkF0, 1, 1); +} + +void sub_802F088(void) +{ + struct unkStruct_803B344 *temp; + + switch(gUnknown_203B30C->state) + { + case 0: + sub_802CDD4(0); + break; + case 1: + sub_802CED8(1); + break; + case 2: + sub_802CFD0(); + sub_8012D60(&gUnknown_203B30C->unk60, gUnknown_203B30C->unkB0, 0, 0, 3, 2); + break; + case 3: + temp = sub_803B344(gUnknown_203B30C->unk4); + sub_803B35C(temp, &gUnknown_203B30C->unk8); + gUnknown_203B30C->unk8 = 3; + gUnknown_203B30C->unk4C = 0; + gUnknown_203B30C->unk58 = temp->unk18; + sub_802DE84(&gUnknown_203B30C->unk8); + } +} + +void sub_802F108(void) +{ + struct unkStruct_203B30C *preload; + const char *blankText; + s32 action_1; + + preload = gUnknown_203B30C; + blankText = NULL; + preload->unkB0[0].text = gUnknown_80E040C; + preload->unkB0[0].menuAction = 2; + action_1 = 1; + preload->unkB0[1].text = *gUnknown_80D4970; + preload->unkB0[1].menuAction = 3; + preload->unkB0[2].text = blankText; + preload->unkB0[2].menuAction = action_1; +} + +void sub_802F148(void) +{ + switch(sub_802CE5C(1)) + { + case 0: + case 1: + break; + case 3: + gUnknown_203B30C->unk4 = sub_802CEBC(); + sub_802EFEC(2); + break; + case 2: + sub_802CF14(); + sub_802EFEC(5); + break; + } +} + +void sub_802F184(void) +{ + s32 menuAction; + + menuAction = 0; + sub_802CE5C(0); + + if (sub_8012FD8(&gUnknown_203B30C->unk60) == 0) { + sub_8013114(&gUnknown_203B30C->unk60, &menuAction); + } + + switch(menuAction) + { + case 2: + sub_802CF14(); + sub_802EFEC(4); + break; + case 3: + sub_802EFEC(3); + break; + case 1: + sub_802EFEC(1); + break; + } +} + +void sub_802F1E8(void) +{ + switch(sub_802DEE0()) + { + case 2: + case 3: + sub_802DF24(); + sub_802EFEC(1); + break; + case 0: + case 1: + break; + } +} + + + +u32 sub_802F204(struct unkStruct_802F204 *r0, u8 r1) +{ + struct unkStruct_203B310 *preload; + + ResetUnusedInputStruct(); + sub_800641C(0, 1, 1); + gUnknown_203B310 = MemoryAlloc(sizeof(struct unkStruct_203B310), 8); + gUnknown_203B310->unk10 = r0; + gUnknown_203B310->itemRewardIndex = 0; + gUnknown_203B310->unk8 = r1; + + // NOTE: dumb var to get correct ordering + preload = gUnknown_203B310; + strcpy(gUnknown_202E5D8, preload->unk10->clientName); + sub_808DA34(gAvailablePokemonNames, sub_808D33C()); + + gUnknown_203B310->faceFile = GetDialogueSpriteDataPtr(gUnknown_203B310->unk10->unk14); + gUnknown_203B310->faceData = NULL; + + gUnknown_203B310->unk20 = 0; + gUnknown_203B310->unk21 = 0; + gUnknown_203B310->unk22 = 0; + gUnknown_203B310->unk1C = 2; + gUnknown_203B310->unk1E = 8; + + if(gUnknown_203B310->faceFile != NULL) + { + gUnknown_203B310->faceData = gUnknown_203B310->faceFile->data; + } + + sub_802F2E8(0); + return 1; +} + +u32 sub_802F298(void) +{ + switch(gUnknown_203B310->state) + { + case 9: + return 3; + case 5: + sub_802F6FC(); + return 0; + default: + sub_802F718(); + return 0; + } +} + +void sub_802F2C0(void) +{ + if(gUnknown_203B310 != NULL) + { + if(gUnknown_203B310->faceFile != 0) + CloseFile(gUnknown_203B310->faceFile); + MemoryFree(gUnknown_203B310); + gUnknown_203B310 = NULL; + } +} + +void sub_802F2E8(u32 newState) +{ + gUnknown_203B310->state = newState; + sub_802F300(); + HandleMissionReward(); +} + +void sub_802F300(void) +{ + s32 iVar3; + switch(gUnknown_203B310->state) + { + case 0: + sub_8006518(gUnknown_203B310->unk24); + for(iVar3 = 0; iVar3 < 4; iVar3++) + { + gUnknown_203B310->unk24[iVar3] = gUnknown_80E041C; + } + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B310->unk24, 1, 1); + default: + break; + } +} + +void HandleMissionReward(void) +{ + int moneyReward; + const char *rankString; + u8 uVar7; + struct unkStruct_8090F58 local_20; + struct ItemSlot_Alt local_14; + u32 numItems; + u32 index_cast; + u32 index_cast2; + + switch(gUnknown_203B310->state) { + case 0: + // Reward intro.. + moneyReward = gUnknown_203B310->unk10->moneyReward; + if (moneyReward == 0) { + sub_802F2E8(2); + } + else { + gUnknown_202DE30 = moneyReward; + if (gUnknown_203B310->unk8 != '\0') { + sub_80141B4(gUnknown_80E0434,0,&gUnknown_203B310->faceFile,0x10d); + gUnknown_203B310->unk4 = 1; + } + else { + sub_802F2E8(1); + } + } + break; + case 1: + PlaySound(0xcb); + AddToTeamMoney(gUnknown_203B310->unk10->moneyReward); + if (sub_808D544(0) < 2) { + sub_80141B4(gUnknown_80E045C,0,0,0x101); + } + else { + sub_80141B4(gUnknown_80E0484,0,0,0x101); + } + gUnknown_203B310->unk4 = 2; + break; + case 2: + if (gUnknown_203B310->unk10->friendAreaReward == '\0') { + // No friend area reward.. go to item reward + sub_802F2E8(4); + } + else { + sub_8092578(gUnknown_202E628,gUnknown_203B310->unk10->friendAreaReward,0); + if (gUnknown_203B310->unk8 != '\0') { + sub_80141B4(gUnknown_80E04B4,0,&gUnknown_203B310->faceFile,0x10d); + gUnknown_203B310->unk4 = 3; + } + else { + sub_802F2E8(3); + } + } + break; + case 3: + // Friend area reward + if (GetFriendAreaStatus(gUnknown_203B310->unk10->friendAreaReward)) { + // We already have the friend area + AddToTeamMoney(1000); + sub_80141B4(gUnknown_80E04F4,0,0,0x101); + } + else + { + if (sub_808D544(0) < 2) { + UnlockFriendArea(gUnknown_203B310->unk10->friendAreaReward); + PlaySound(0xce); + sub_80141B4(gUnknown_80E05C0,0,0,0x101); + } + else + { + UnlockFriendArea(gUnknown_203B310->unk10->friendAreaReward); + PlaySound(0xce); + sub_80141B4(gUnknown_80E05FC,0,0,0x101); + } + } + gUnknown_203B310->unk4 = 4; + break; + case 4: + uVar7 = gUnknown_203B310->unk10->itemRewards[0]; + if (uVar7 != 0) + { + if (gUnknown_203B310->unk10->moneyReward == 0) { + + // Cast ItemIndex + index_cast = uVar7 << 16; + local_14.temp.full_bits = (local_14.temp.full_bits & 0xff00ffff) | index_cast; + + index_cast2 = local_14.temp.full_bits >> 16; + if (IsThrowableItem(index_cast2)) { + // Cast number items + numItems = (gUnknown_203B310->unk10->numItems << 8); + local_14.temp.full_bits = (local_14.temp.full_bits & 0xffff00ff) | numItems; + } + else { + local_14.temp.full_bits = (local_14.temp.full_bits & 0xffff00ff) | 0; + } + local_14.temp.full_bits = (local_14.temp.full_bits & 0xffffff00) | ITEM_FLAG_EXISTS; + local_20.unk0 = 0; + local_20.unk4 = 0; + local_20.unk8 = 1; + sub_8090E14(gUnknown_202DEA8,(struct ItemSlot *)&local_14,&local_20); + if (gUnknown_203B310->unk8 != '\0') { + sub_80141B4(gUnknown_80E0640,0,&gUnknown_203B310->faceFile,0x10d); + gUnknown_203B310->unk4 = 5; + } + else + { + sub_802F2E8(5); + } + } + else + { + sub_802F2E8(5); + } + } + else + sub_802F2E8(7); + break; + case 5: + // Item reward + if ((gUnknown_203B310->unk10->itemRewards[gUnknown_203B310->itemRewardIndex]) == 0) { + // No item in this reward slot + sub_802F2E8(6); + } + else { + if ((gUnknown_203B310->itemRewardIndex == 0) && (gUnknown_203B310->unk10->moneyReward == 0)) { + sub_801B60C(0,gUnknown_203B310->unk10->itemRewards[0],gUnknown_203B310->unk10->numItems); + } + else { + sub_801B60C(1,gUnknown_203B310->unk10->itemRewards[gUnknown_203B310->itemRewardIndex],gUnknown_203B310->unk10->numItems); + } + } + break; + case 6: + // Increase item reward slot index + gUnknown_203B310->itemRewardIndex++; + if(gUnknown_203B310->itemRewardIndex < MAX_ITEM_REWARDS) + sub_802F2E8(5); + else + // No more items to check... move to give points + sub_802F2E8(7); + break; + case 7: + if (gUnknown_203B310->unk10->teamRankPtsReward == 0) { + // No pnts to reward + sub_802F2E8(9); + } + else { + gUnknown_203B310->currTeamRank = GetRescueTeamRank(); + AddToTeamRankPts(gUnknown_203B310->unk10->teamRankPtsReward); + PlaySound(0xcb); + if (gUnknown_203B310->currTeamRank != GetRescueTeamRank()) { + // Rank up time + gUnknown_203B310->unk4 = 8; + } + else { + // No rank up.. close out + gUnknown_203B310->unk4 = 9; + } + gUnknown_202DE30 = gUnknown_203B310->unk10->teamRankPtsReward; + sub_80141B4(gUnknown_80E0670,0,0,0x101); + } + break; + case 8: + // Rank up + PlaySound(0xc9); + gUnknown_203B310->unk4 = 9; + rankString = GetTeamRankString(gUnknown_203B310->currTeamRank); + strcpy(gUnknown_202E038,rankString); + rankString = GetTeamRankString(GetRescueTeamRank()); + strcpy(gUnknown_202E038 + 0x50,rankString); + sub_80141B4(gUnknown_80E06A8,0,0,0x101); + break; + case 9: + break; + } +} + +void sub_802F6FC(void) +{ + switch(sub_801B6AC()) + { + case 2: + case 3: + sub_801B72C(); + sub_802F2E8(6); + break; + case 0: + case 1: + break; + } +} + +void sub_802F718(void) +{ + s32 temp; + + if (sub_80144A4(&temp) == 0) { + sub_802F2E8(gUnknown_203B310->unk4); + } +} + +u32 sub_802F73C(u32 r0, struct UnkTextStruct2_sub *r1, u32 r2, u8 r3) +{ + if(sub_802FCF0(r0)) + { + return 0; + } + else + { + if(gUnknown_203B314 == NULL) + gUnknown_203B314 = MemoryAlloc(sizeof(struct unkStruct_203B314), 0x8); + gUnknown_203B314->unkB8 = r3; + gUnknown_203B314->unkF0 = r0; + gUnknown_203B314->unkF4 = &gUnknown_203B314->unkF8[gUnknown_203B314->unkF0]; + sub_8006518(gUnknown_203B314->unkF8); + if(r3 != 0) + { + gUnknown_203B314->unkF8[gUnknown_203B314->unkF0] = gUnknown_80E072C; + } + else + { + gUnknown_203B314->unkF8[gUnknown_203B314->unkF0] = gUnknown_80E0714; + } + + gUnknown_203B314->unkF4->unk14 = gUnknown_203B314->unk158; + if(r1 != 0) + { + gUnknown_203B314->unkF8[gUnknown_203B314->unkF0].unk08 = *r1; + } + + sub_8012D08(gUnknown_203B314->unkF4, r2); + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B314->unkF8, 1, 1); + sub_8013818(&gUnknown_203B314->unkBC, sub_802FBF4(), r2, r0); + sub_802F9C0(); + sub_802FA50(); + return 1; + } +} + +u32 sub_802F848(s16 param_1) +{ + int iVar2; + s32 param_1_32; + + param_1_32 = param_1; // cast needed + + for( iVar2 = 0; iVar2 < gUnknown_203B314->unkDE; iVar2++ ) { + if (gUnknown_203B314->unk0[iVar2] == param_1_32) { + sub_8013878(&gUnknown_203B314->unkBC,iVar2); + sub_802F9C0(); + sub_802FA50(); + return 1; + } + } + sub_8013878(&gUnknown_203B314->unkBC,0); + return 0; +} + +u32 sub_802F8A0(u8 r0) +{ + if(r0 == 0) + { + sub_8013660(&gUnknown_203B314->unkBC); + return 0; + } + else + { + switch(GetKeyPress(&gUnknown_203B314->unkBC)) + { + case 2: + PlayMenuSoundEffect(1); + return 2; + case 1: + PlayMenuSoundEffect(0); + return 3; + default: + if(sub_80138B8(&gUnknown_203B314->unkBC, 1) != 0) + { + sub_802F9C0(); + sub_802FA50(); + return 1; + } + else + { + return 0; + } + } + } +} + +s16 sub_802F90C(void) +{ + return gUnknown_203B314->unk0[(gUnknown_203B314->unkDA * gUnknown_203B314->unkD8) + gUnknown_203B314->unkD4]; +} + +void sub_802F938(u32 r0) +{ + u8 r0_u8; + + r0_u8 = r0; + + gUnknown_203B314->unkDE = sub_802FBF4(); + sub_8013984(&gUnknown_203B314->unkBC); + sub_802F9C0(); + sub_802FA50(); + + if(r0_u8 != 0) + AddMenuCursorSprite(&gUnknown_203B314->unkBC); +} + +void sub_802F974(void) +{ + if(gUnknown_203B314 != NULL) + { + gUnknown_203B314->unkF8[gUnknown_203B314->unkF0] = gUnknown_80E06FC; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B314->unkF8, 1, 1); + MemoryFree(gUnknown_203B314); + gUnknown_203B314 = NULL; + } +} diff --git a/src/wonder_mail_4.c b/src/wonder_mail_4.c new file mode 100644 index 0000000..873daf4 --- /dev/null +++ b/src/wonder_mail_4.c @@ -0,0 +1,137 @@ +#include "global.h" +#include "text.h" +#include "input.h" +#include "memory.h" + +struct unkStruct_203B320 +{ + // size: 0xC4 + u8 unk0[4]; + u8 fill4[0x20 - 4]; + u32 unk20; + u8 fill24[0x3C - 0x24]; + s16 unk3C; + s16 unk3E; + s16 unk40; + s16 unk42; + s16 unk44; + s16 unk46; + u8 fill48[0x58 - 0x48]; + u32 unk58; + struct UnkTextStruct2 *unk5C; + struct UnkTextStruct2 unk60[4]; + u8 unkC0[4]; +}; +extern struct unkStruct_203B320 *gUnknown_203B320; +extern struct UnkTextStruct2 gUnknown_80E083C; +extern struct UnkTextStruct2 gUnknown_80E0854; + +extern u8 sub_8030C20(u32); +extern s32 sub_8030A74(void); +extern void sub_80308A0(void); +extern void sub_803092C(void); +extern void sub_8012D08(struct UnkTextStruct2 *, s32); +extern void sub_8013818(void *, u32, u32, u32); + +extern u8 sub_80138B8(u8 *, u32); +extern void sub_8013660(u8 *); +extern s32 GetKeyPress(u8 *); +extern void PlayMenuSoundEffect(u32); +extern void sub_8013984(u8 *); +extern void AddMenuCursorSprite(u8 *); + +u32 sub_80306A8(u32 r0, u32 r1, struct UnkTextStruct2_sub *r2, u32 r3) +{ + if(sub_8030C20(r0)) + return 0; + gUnknown_203B320 = MemoryAlloc(sizeof(struct unkStruct_203B320), 0x8); + gUnknown_203B320->unk20 = r0; + gUnknown_203B320->unk58 = r1; + + gUnknown_203B320->unk5C = &gUnknown_203B320->unk60[gUnknown_203B320->unk58]; + sub_8006518(gUnknown_203B320->unk60); + + gUnknown_203B320->unk60[gUnknown_203B320->unk58] = gUnknown_80E0854; + gUnknown_203B320->unk5C->unk14 = gUnknown_203B320->unkC0; + + if(r2 != 0) + { + gUnknown_203B320->unk60[gUnknown_203B320->unk58].unk08 = *r2; + } + + + sub_8012D08(gUnknown_203B320->unk5C, r3); + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B320->unk60, 1, 1); + sub_8013818(gUnknown_203B320->fill24, sub_8030A74(), r3, r1); + sub_80308A0(); + sub_803092C(); + return 1; +} + +u32 sub_8030768(u8 r0) +{ + if(r0 == 0) + { + sub_8013660(gUnknown_203B320->fill24); + return 0; + } + switch(GetKeyPress(gUnknown_203B320->fill24)) + { + case 4: + PlayMenuSoundEffect(4); + return 4; + case 2: + PlayMenuSoundEffect(1); + return 2; + case 1: + PlayMenuSoundEffect(0); + return 3; + default: + if(sub_80138B8(gUnknown_203B320->fill24, 1) != 0) + { + sub_80308A0(); + sub_803092C(); + return 1; + } + else + return 0; + } +} + +u8 sub_80307EC(void) +{ + return gUnknown_203B320->unk0[(gUnknown_203B320->unk42 * gUnknown_203B320->unk40) + gUnknown_203B320->unk3C]; +} + +void sub_8030810(u32 r0) +{ + u8 r0_u8; + + r0_u8 = r0; // cast needed.. + + gUnknown_203B320->unk46 = sub_8030A74(); + sub_8013984(gUnknown_203B320->fill24); + + sub_80308A0(); + sub_803092C(); + if(r0_u8 != 0) + AddMenuCursorSprite(gUnknown_203B320->fill24); +} + +void sub_803084C() +{ + if(gUnknown_203B320 != NULL) + { + gUnknown_203B320->unk60[gUnknown_203B320->unk58] = gUnknown_80E083C; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B320->unk60, 1, 1); + MemoryFree(gUnknown_203B320); + gUnknown_203B320 = NULL; + } +} + +u8 *sub_8030894() +{ + return gUnknown_203B320->unk0; +} diff --git a/src/wonder_mail_pre.c b/src/wonder_mail_pre.c deleted file mode 100644 index 34cbaea..0000000 --- a/src/wonder_mail_pre.c +++ /dev/null @@ -1,305 +0,0 @@ -#include "global.h" -#include "file_system.h" -#include "input.h" -#include "pokemon.h" -#include "sub_8095228.h" -#include "wonder_mail.h" -#include "memory.h" - - -extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0; -extern char gUnknown_202E5D8[0x50]; -extern char gAvailablePokemonNames[0x50]; - -extern void sub_8029B34(void); -extern void sub_8029AD8(void); -extern void sub_8029AF4(void); -extern void sub_8029A88(void); -extern void sub_8029AB0(void); -extern void sub_80297B8(void); -extern void sub_80297D4(void); -extern void sub_8029884(void); -extern void sub_8029944(void); -extern void sub_80299AC(void); -extern void sub_80299D8(void); -extern void sub_8029A6C(void); -extern void sub_8028CE0(void); -extern void sub_8028BF0(void); -extern void sub_8029A18(void); -extern void sub_80295A8(void); -extern void sub_8029668(void); -extern void sub_8029684(void); -extern void sub_8029740(void); -extern void sub_80295D8(void); -extern void sub_802979C(void); -extern void sub_8029358(void); -extern void sub_8029374(void); -extern void sub_802939C(void); -extern void sub_8028F58(void); -extern void sub_8028F30(void); -extern void sub_8028F04(void); -extern void sub_8028ED4(void); -extern void sub_80293D8(void); -extern void sub_80293F4(void); -extern void sub_8028DE8(u32); -extern void sub_8028EAC(void); -extern void sub_802955C(void); -extern void sub_80292A4(void); -extern void sub_80292EC(void); -extern void sub_802933C(void); -extern void sub_802958C(void); -extern void sub_8029208(void); -extern void sub_8028E84(void); -extern void sub_8028F80(void); -extern void sub_8028FC0(void); -extern void sub_8028FDC(void); -extern void sub_8028E54(void); -extern void sub_8028E24(void); -extern void sub_8028E08(void); -extern void sub_80290D4(void); -extern void sub_80290F0(void); -extern void sub_80291AC(void); -extern void sub_8029044(void); -extern void sub_8028CFC(void); -extern void sub_8028D4C(void); -extern void sub_8031E10(void); -extern void sub_8023C60(void); -extern void sub_803084C(void); -extern void sub_80155F0(void); -extern void sub_80310B4(void); -extern void sub_8030DE4(void); -extern void sub_802453C(void); - -u32 sub_8027F88(void) -{ - char *monName; - struct OpenedFile *faceFile; - s32 counter; - - ResetUnusedInputStruct(); - sub_800641C(0, 1, 1); - gUnknown_203B2C0 = MemoryAlloc(sizeof(struct WonderMailStruct_203B2C0), 8); - MemoryFill8((u8 *)gUnknown_203B2C0, 0, sizeof(struct WonderMailStruct_203B2C0)); - gUnknown_203B2C0->unk53C = 0; - gUnknown_203B2C0->unk218 = -1; - gUnknown_203B2C0->unk544 = -1; - CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_PELIPPER); - monName = GetMonSpecies(SPECIES_PELIPPER); - strcpy(gAvailablePokemonNames, monName); - faceFile = GetDialogueSpriteDataPtr(SPECIES_PELIPPER); - gUnknown_203B2C0->faceFile = faceFile; - gUnknown_203B2C0->faceData = faceFile->data; - gUnknown_203B2C0->unk42C = 0; - gUnknown_203B2C0->unk42D = 0; - gUnknown_203B2C0->unk42E = 0; - gUnknown_203B2C0->unk428 = 2; - gUnknown_203B2C0->unk42A = 8; - for(counter = 0; counter < PASSWORD_BUFFER_SIZE; counter++){ - gUnknown_203B2C0->passwordBuffer[counter] = 0; - } - gUnknown_203B2C0->unk0 = 0x3D; - sub_8028B04(0); // Set initial state to 0? - return 1; -} - -u32 sub_8028078(void) -{ - - switch(gUnknown_203B2C0->state) { - case 0x3c: - sub_8029B34(); - break; - case 0x3a: - sub_8029AD8(); - break; - case 0x3b: - sub_8029AF4(); - break; - case 0x38: - sub_8029A88(); - break; - case 0x37: - sub_8029AB0(); - break; - case 0x32: - sub_80297B8(); - break; - case 0x33: - sub_80297D4(); - break; - case 0x34: - sub_8029884(); - break; - case 0x35: - sub_8029944(); - break; - case 0x31: - sub_80299AC(); - break; - case 0x36: - sub_80299D8(); - break; - case 0x30: - sub_8029A6C(); - break; - case 0x2e: - sub_8029A18(); - break; - case 0x2d: - sub_80295A8(); - break; - case 0x29: - sub_8029668(); - break; - case 0x2b: - sub_8029684(); - break; - case 0x2c: - sub_8029740(); - break; - case 0x2a: - sub_80295D8(); - break; - case 0x2f: - sub_802979C(); - break; - case 9: - sub_8029358(); - break; - case 0x23: - sub_8029374(); - break; - case 0x24: - sub_802939C(); - break; - case 0x26: - sub_80293D8(); - break; - case 0x27: - sub_80293F4(); - break; - case 0x28: - sub_802955C(); - break; - case 4: - sub_80292A4(); - break; - case 6: - sub_80292EC(); - break; - case 7: - sub_802933C(); - break; - case 5: - sub_802958C(); - break; - case 8: - sub_8029208(); - break; - case 0x1a: - sub_8028DE8(1); - break; - case 0x1b: - sub_8028F80(); - break; - case 0x1c: - case 0x1d: - sub_8028FC0(); - break; - case 0x22: - sub_8028FDC(); - break; - case 0x1e: - sub_80290D4(); - break; - case 0x20: - sub_80290F0(); - break; - case 0x21: - sub_80291AC(); - break; - case 0x1f: - sub_8029044(); - break; - case 10: - sub_8028CFC(); - break; - case 0xb: - sub_8028D4C(); - break; - case 0xd: - case 0xf: - sub_8028DE8(10); - break; - case 0x11: - sub_8028E08(); - break; - case 0xc: - case 0xe: - case 0x10: - sub_8028DE8(0x19); - break; - case 0x12: - sub_8028E24(); - break; - case 0x13: - sub_8028E54(); - break; - case 0x17: - sub_8028E84(); - break; - case 0x18: - sub_8028EAC(); - break; - case 0x19: - sub_8028ED4(); - break; - case 0x14: - sub_8028F04(); - break; - case 0x15: - sub_8028F30(); - break; - case 0x16: - sub_8028F58(); - break; - case 0: - case 1: - sub_8028BF0(); - break; - case 2: - case 0x25: - case 0x39: - sub_8028CE0(); - break; - case 3: - return 3; - } - return 0; -} - -s32 sub_80282DC(u8 *r0) -{ - *r0 = gUnknown_203B2C0->unk218; - return gUnknown_203B2C0->unk53C; -} - -void sub_80282FC(void) -{ - if (gUnknown_203B2C0 != NULL) { - CloseFile(gUnknown_203B2C0->faceFile); - MemoryFree(gUnknown_203B2C0); - gUnknown_203B2C0 = NULL; - sub_8031E10(); - sub_8023C60(); - sub_803084C(); - sub_80155F0(); - sub_80310B4(); - sub_8030DE4(); - sub_802453C(); - } -} - -void nullsub_130(void) -{ -} |