mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-22 08:44:17 -05:00
Merge pull request #206 from SethBarberee/july_august_2024
July august 2024
This commit is contained in:
1713
asm/code_800E9E4.s
1713
asm/code_800E9E4.s
File diff suppressed because it is too large
Load Diff
1281
asm/code_800ED38.s
Normal file
1281
asm/code_800ED38.s
Normal file
File diff suppressed because it is too large
Load Diff
1975
asm/code_80140DC.s
1975
asm/code_80140DC.s
File diff suppressed because it is too large
Load Diff
1821
asm/code_8015080.s
Normal file
1821
asm/code_8015080.s
Normal file
File diff suppressed because it is too large
Load Diff
@@ -5,376 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_803D204
|
||||
sub_803D204:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0xA4
|
||||
adds r2, r0, 0
|
||||
mov r9, r1
|
||||
movs r6, 0
|
||||
add r4, sp, 0x5C
|
||||
adds r0, r4, 0
|
||||
adds r1, r2, 0
|
||||
movs r2, 0x36
|
||||
bl MemoryCopy8
|
||||
movs r2, 0
|
||||
mov r8, r4
|
||||
add r5, sp, 0x24
|
||||
ldr r4, _0803D2A8
|
||||
mov r12, r4
|
||||
mov r10, r5
|
||||
_0803D22E:
|
||||
movs r1, 0
|
||||
mov r3, r12
|
||||
adds r0, r2, r3
|
||||
adds r3, r2, 0x1
|
||||
ldrb r0, [r0]
|
||||
cmp r1, r0
|
||||
beq _0803D24A
|
||||
adds r0, r2, r4
|
||||
_0803D23E:
|
||||
adds r1, 0x1
|
||||
cmp r1, 0x35
|
||||
bgt _0803D24A
|
||||
ldrb r7, [r0]
|
||||
cmp r1, r7
|
||||
bne _0803D23E
|
||||
_0803D24A:
|
||||
mov r7, r10
|
||||
adds r0, r7, r2
|
||||
add r1, r8
|
||||
ldrb r1, [r1]
|
||||
strb r1, [r0]
|
||||
adds r2, r3, 0
|
||||
cmp r2, 0x35
|
||||
ble _0803D22E
|
||||
adds r0, r5, 0
|
||||
mov r1, sp
|
||||
movs r2, 0x36
|
||||
bl sub_803D110
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0803D2AC
|
||||
movs r2, 0x1
|
||||
_0803D26C:
|
||||
mov r1, sp
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0]
|
||||
adds r0, r2
|
||||
adds r0, r6, r0
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
adds r2, 0x1
|
||||
cmp r2, 0x21
|
||||
ble _0803D26C
|
||||
mov r0, sp
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r6
|
||||
bne _0803D2AC
|
||||
add r4, sp, 0x94
|
||||
adds r1, 0x1
|
||||
adds r0, r4, 0
|
||||
movs r2, 0x21
|
||||
bl xxx_init_struct_8094924_restore_809485C
|
||||
adds r0, r4, 0
|
||||
mov r1, r9
|
||||
bl sub_8095774
|
||||
adds r0, r4, 0
|
||||
bl nullsub_102
|
||||
movs r0, 0x1
|
||||
b _0803D2AE
|
||||
.align 2, 0
|
||||
_0803D2A8: .4byte gUnknown_80F43F0
|
||||
_0803D2AC:
|
||||
movs r0, 0
|
||||
_0803D2AE:
|
||||
add sp, 0xA4
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_803D204
|
||||
|
||||
thumb_func_start sub_803D2C0
|
||||
sub_803D2C0:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
sub sp, 0xA4
|
||||
mov r9, r0
|
||||
adds r6, r1, 0
|
||||
movs r5, 0
|
||||
add r4, sp, 0x94
|
||||
mov r1, sp
|
||||
adds r1, 0x1
|
||||
add r7, sp, 0x24
|
||||
add r0, sp, 0x5C
|
||||
mov r8, r0
|
||||
movs r2, 0
|
||||
mov r0, sp
|
||||
adds r0, 0x21
|
||||
_0803D2E2:
|
||||
strb r2, [r0]
|
||||
subs r0, 0x1
|
||||
cmp r0, sp
|
||||
bge _0803D2E2
|
||||
adds r0, r4, 0
|
||||
movs r2, 0x21
|
||||
bl xxx_init_struct_8094924_save_809486C
|
||||
adds r0, r4, 0
|
||||
adds r1, r6, 0
|
||||
bl sub_8095824
|
||||
adds r0, r4, 0
|
||||
bl nullsub_102
|
||||
movs r2, 0x1
|
||||
_0803D302:
|
||||
mov r1, sp
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0]
|
||||
adds r0, r2
|
||||
adds r0, r5, r0
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
adds r2, 0x1
|
||||
cmp r2, 0x21
|
||||
ble _0803D302
|
||||
mov r0, sp
|
||||
strb r5, [r0]
|
||||
adds r0, r7, 0
|
||||
movs r2, 0x36
|
||||
bl sub_803D1A8
|
||||
movs r2, 0
|
||||
mov r4, r8
|
||||
ldr r5, _0803D354
|
||||
adds r3, r7, 0
|
||||
_0803D32A:
|
||||
adds r0, r2, r5
|
||||
ldrb r1, [r0]
|
||||
adds r1, r4, r1
|
||||
adds r0, r3, r2
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1]
|
||||
adds r2, 0x1
|
||||
cmp r2, 0x35
|
||||
ble _0803D32A
|
||||
mov r0, r9
|
||||
mov r1, r8
|
||||
movs r2, 0x36
|
||||
bl MemoryCopy8
|
||||
add sp, 0xA4
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803D354: .4byte gUnknown_80F43F0
|
||||
thumb_func_end sub_803D2C0
|
||||
|
||||
thumb_func_start DecodeWonderMailPassword
|
||||
DecodeWonderMailPassword:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x50
|
||||
adds r2, r0, 0
|
||||
mov r9, r1
|
||||
movs r6, 0
|
||||
add r4, sp, 0x28
|
||||
adds r0, r4, 0
|
||||
adds r1, r2, 0
|
||||
movs r2, 0x18
|
||||
bl MemoryCopy8
|
||||
movs r2, 0
|
||||
mov r8, r4
|
||||
add r5, sp, 0x10
|
||||
ldr r4, _0803D3FC
|
||||
mov r12, r4
|
||||
mov r10, r5
|
||||
_0803D382:
|
||||
movs r1, 0
|
||||
mov r3, r12
|
||||
adds r0, r2, r3
|
||||
adds r3, r2, 0x1
|
||||
ldrb r0, [r0]
|
||||
cmp r1, r0
|
||||
beq _0803D39E
|
||||
adds r0, r2, r4
|
||||
_0803D392:
|
||||
adds r1, 0x1
|
||||
cmp r1, 0x17
|
||||
bgt _0803D39E
|
||||
ldrb r7, [r0]
|
||||
cmp r1, r7
|
||||
bne _0803D392
|
||||
_0803D39E:
|
||||
mov r7, r10
|
||||
adds r0, r7, r2
|
||||
add r1, r8
|
||||
ldrb r1, [r1]
|
||||
strb r1, [r0]
|
||||
adds r2, r3, 0
|
||||
cmp r2, 0x17
|
||||
ble _0803D382
|
||||
adds r0, r5, 0
|
||||
mov r1, sp
|
||||
movs r2, 0x18
|
||||
bl sub_803D110
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0803D400
|
||||
movs r2, 0x1
|
||||
_0803D3C0:
|
||||
mov r1, sp
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0]
|
||||
adds r0, r2
|
||||
adds r0, r6, r0
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
adds r2, 0x1
|
||||
cmp r2, 0xE
|
||||
ble _0803D3C0
|
||||
mov r0, sp
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r6
|
||||
bne _0803D400
|
||||
add r4, sp, 0x40
|
||||
adds r1, 0x1
|
||||
adds r0, r4, 0
|
||||
movs r2, 0xC
|
||||
bl xxx_init_struct_8094924_restore_809485C
|
||||
adds r0, r4, 0
|
||||
mov r1, r9
|
||||
bl RestoreWonderMail
|
||||
adds r0, r4, 0
|
||||
bl nullsub_102
|
||||
movs r0, 0x1
|
||||
b _0803D402
|
||||
.align 2, 0
|
||||
_0803D3FC: .4byte gUnknown_80F4426
|
||||
_0803D400:
|
||||
movs r0, 0
|
||||
_0803D402:
|
||||
add sp, 0x50
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end DecodeWonderMailPassword
|
||||
|
||||
thumb_func_start sub_803D414
|
||||
sub_803D414:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
sub sp, 0x50
|
||||
mov r9, r0
|
||||
adds r6, r1, 0
|
||||
movs r5, 0
|
||||
add r4, sp, 0x40
|
||||
mov r1, sp
|
||||
adds r1, 0x1
|
||||
add r7, sp, 0x10
|
||||
add r0, sp, 0x28
|
||||
mov r8, r0
|
||||
movs r2, 0
|
||||
mov r0, sp
|
||||
adds r0, 0xE
|
||||
_0803D436:
|
||||
strb r2, [r0]
|
||||
subs r0, 0x1
|
||||
cmp r0, sp
|
||||
bge _0803D436
|
||||
adds r0, r4, 0
|
||||
movs r2, 0xC
|
||||
bl xxx_init_struct_8094924_save_809486C
|
||||
adds r0, r4, 0
|
||||
adds r1, r6, 0
|
||||
bl SaveWonderMail
|
||||
adds r0, r4, 0
|
||||
bl nullsub_102
|
||||
movs r2, 0x1
|
||||
_0803D456:
|
||||
mov r1, sp
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0]
|
||||
adds r0, r2
|
||||
adds r0, r5, r0
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
adds r2, 0x1
|
||||
cmp r2, 0xE
|
||||
ble _0803D456
|
||||
mov r0, sp
|
||||
strb r5, [r0]
|
||||
adds r0, r7, 0
|
||||
movs r2, 0x18
|
||||
bl sub_803D1A8
|
||||
movs r2, 0
|
||||
mov r4, r8
|
||||
ldr r5, _0803D4A8
|
||||
adds r3, r7, 0
|
||||
_0803D47E:
|
||||
adds r0, r2, r5
|
||||
ldrb r1, [r0]
|
||||
adds r1, r4, r1
|
||||
adds r0, r3, r2
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1]
|
||||
adds r2, 0x1
|
||||
cmp r2, 0x17
|
||||
ble _0803D47E
|
||||
mov r0, r9
|
||||
mov r1, r8
|
||||
movs r2, 0x18
|
||||
bl MemoryCopy8
|
||||
add sp, 0x50
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803D4A8: .4byte gUnknown_80F4426
|
||||
thumb_func_end sub_803D414
|
||||
|
||||
thumb_func_start sub_803D4AC
|
||||
sub_803D4AC:
|
||||
ldr r2, _0803D4C4
|
||||
ldr r0, [r2]
|
||||
ldr r1, _0803D4C8
|
||||
adds r0, r1
|
||||
movs r1, 0x63
|
||||
strb r1, [r0]
|
||||
ldr r0, [r2]
|
||||
ldr r1, _0803D4CC
|
||||
adds r0, r1
|
||||
movs r1, 0xFF
|
||||
strb r1, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0803D4C4: .4byte gDungeon
|
||||
_0803D4C8: .4byte 0x0001c570
|
||||
_0803D4CC: .4byte 0x0001c571
|
||||
thumb_func_end sub_803D4AC
|
||||
|
||||
thumb_func_start sub_803D4D0
|
||||
sub_803D4D0:
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -1,199 +0,0 @@
|
||||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_803E490
|
||||
sub_803E490:
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x8
|
||||
ldr r1, _0803E4D8
|
||||
ldr r0, [r1]
|
||||
adds r0, 0x1
|
||||
str r0, [r1]
|
||||
bl xxx_draw_string_80524F0
|
||||
bl sub_8085F78
|
||||
movs r0, 0x1
|
||||
bl sub_803F580
|
||||
ldr r2, _0803E4DC
|
||||
ldr r1, [r2]
|
||||
ldr r3, _0803E4E0
|
||||
adds r0, r1, r3
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0803E4EC
|
||||
ldr r4, _0803E4E4
|
||||
adds r1, r4
|
||||
movs r0, 0x2
|
||||
strb r0, [r1]
|
||||
ldr r1, [r2]
|
||||
ldr r2, _0803E4E8
|
||||
adds r0, r1, r2
|
||||
movs r3, 0
|
||||
ldrsh r0, [r0, r3]
|
||||
subs r4, 0x16
|
||||
adds r1, r4
|
||||
movs r2, 0
|
||||
ldrsh r1, [r1, r2]
|
||||
bl SetBG2RegOffsets
|
||||
b _0803E4FC
|
||||
.align 2, 0
|
||||
_0803E4D8: .4byte gUnknown_202EDD4
|
||||
_0803E4DC: .4byte gDungeon
|
||||
_0803E4E0: .4byte 0x0001821a
|
||||
_0803E4E4: .4byte 0x00018208
|
||||
_0803E4E8: .4byte 0x000181f0
|
||||
_0803E4EC:
|
||||
ldr r3, _0803E628
|
||||
adds r1, r3
|
||||
movs r0, 0x3
|
||||
strb r0, [r1]
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl SetBG2RegOffsets
|
||||
_0803E4FC:
|
||||
ldr r4, _0803E62C
|
||||
ldr r2, [r4]
|
||||
ldr r5, _0803E630
|
||||
adds r0, r2, r5
|
||||
movs r1, 0
|
||||
ldrsh r0, [r0, r1]
|
||||
ldr r3, _0803E634
|
||||
adds r1, r2, r3
|
||||
movs r3, 0
|
||||
ldrsh r1, [r1, r3]
|
||||
ldr r3, _0803E638
|
||||
adds r2, r3
|
||||
ldr r2, [r2]
|
||||
subs r1, r2
|
||||
bl SetBG3RegOffsets
|
||||
bl sub_806CC10
|
||||
bl sub_804522C
|
||||
bl sub_803F9CC
|
||||
ldr r0, [r4]
|
||||
adds r0, r5
|
||||
bl sub_800F7D0
|
||||
ldr r1, [r4]
|
||||
ldrh r2, [r1, 0x12]
|
||||
movs r3, 0x12
|
||||
ldrsh r0, [r1, r3]
|
||||
cmp r0, 0x63
|
||||
bgt _0803E540
|
||||
adds r0, r2, 0x1
|
||||
strh r0, [r1, 0x12]
|
||||
_0803E540:
|
||||
ldr r0, [r4]
|
||||
adds r0, r5
|
||||
bl sub_800E90C
|
||||
bl sub_8042E5C
|
||||
ldr r0, _0803E63C
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0803E562
|
||||
cmp r0, 0x3
|
||||
beq _0803E562
|
||||
ldr r0, _0803E640
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x4]
|
||||
cmp r0, 0x6
|
||||
bne _0803E566
|
||||
_0803E562:
|
||||
bl sub_8040894
|
||||
_0803E566:
|
||||
bl sub_803ECE0
|
||||
bl sub_803EDF0
|
||||
ldr r0, _0803E62C
|
||||
ldr r3, [r0]
|
||||
ldr r4, _0803E644
|
||||
adds r0, r3, r4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0803E5A2
|
||||
ldr r1, _0803E648
|
||||
adds r0, r3, r1
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0x3
|
||||
beq _0803E5A2
|
||||
ldr r0, _0803E64C
|
||||
ldrb r0, [r0]
|
||||
ldr r1, _0803E650
|
||||
ldr r2, _0803E654
|
||||
ldr r2, [r2]
|
||||
str r2, [sp]
|
||||
movs r4, 0xBE
|
||||
lsls r4, 1
|
||||
adds r2, r3, r4
|
||||
str r2, [sp, 0x4]
|
||||
movs r2, 0xA0
|
||||
movs r3, 0x20
|
||||
bl sub_8004AF0
|
||||
_0803E5A2:
|
||||
ldr r0, _0803E640
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0xA]
|
||||
bl nullsub_8
|
||||
bl sub_8005180
|
||||
bl nullsub_12
|
||||
bl sub_80060EC
|
||||
ldr r1, _0803E658
|
||||
ldr r0, [r1]
|
||||
adds r0, 0x1
|
||||
str r0, [r1]
|
||||
ldr r0, _0803E65C
|
||||
ldr r0, [r0]
|
||||
bl IncrementPlayTime
|
||||
bl sub_800CB20
|
||||
bl LoadBufferedInputs
|
||||
bl CopySpritesToOam
|
||||
bl nullsub_13
|
||||
bl sub_8005304
|
||||
bl nullsub_14
|
||||
bl TransferBGPaletteBuffer
|
||||
bl sub_8009908
|
||||
bl xxx_call_update_bg_vram
|
||||
bl sub_8040788
|
||||
bl xxx_call_update_bg_sound_input
|
||||
ldr r0, _0803E62C
|
||||
ldr r0, [r0]
|
||||
ldr r1, _0803E660
|
||||
adds r0, r1
|
||||
movs r1, 0
|
||||
strb r1, [r0]
|
||||
bl UpdateDungeonMusic
|
||||
bl sub_8011860
|
||||
bl sub_8040B60
|
||||
movs r0, 0
|
||||
bl ResetSprites
|
||||
movs r0, 0
|
||||
bl nullsub_10
|
||||
ldr r1, _0803E664
|
||||
ldr r0, [r1]
|
||||
subs r0, 0x1
|
||||
str r0, [r1]
|
||||
add sp, 0x8
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803E628: .4byte 0x00018208
|
||||
_0803E62C: .4byte gDungeon
|
||||
_0803E630: .4byte 0x000181f0
|
||||
_0803E634: .4byte 0x000181f2
|
||||
_0803E638: .4byte 0x000181fc
|
||||
_0803E63C: .4byte gUnknown_202EDD0
|
||||
_0803E640: .4byte gGameOptionsRef
|
||||
_0803E644: .4byte 0x00018215
|
||||
_0803E648: .4byte 0x0001c06c
|
||||
_0803E64C: .4byte gUnknown_203B40D
|
||||
_0803E650: .4byte gUnknown_202EE8C
|
||||
_0803E654: .4byte gUnknown_202EDC8
|
||||
_0803E658: .4byte gUnknown_202EDCC
|
||||
_0803E65C: .4byte gPlayTimeRef
|
||||
_0803E660: .4byte 0x00018213
|
||||
_0803E664: .4byte gUnknown_202EDD4
|
||||
thumb_func_end sub_803E490
|
||||
|
||||
@ https://decomp.me/scratch/biQXr (kermalis 100%) `void sub_803E668(u32)`
|
||||
.align 2, 0
|
||||
@@ -5,176 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_803E724
|
||||
sub_803E724:
|
||||
push {r4-r6,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r5, _0803E744
|
||||
movs r6, 0xF0
|
||||
_0803E72C:
|
||||
adds r0, r4, 0
|
||||
bl sub_803E46C
|
||||
ldrh r1, [r5]
|
||||
adds r0, r6, 0
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _0803E72C
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803E744: .4byte gRealInputs
|
||||
thumb_func_end sub_803E724
|
||||
|
||||
thumb_func_start sub_803E748
|
||||
sub_803E748:
|
||||
push {r4,r5,lr}
|
||||
movs r5, 0x1F
|
||||
ldr r1, _0803E7B8
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
ldr r1, _0803E7BC
|
||||
movs r0, 0
|
||||
str r0, [r1]
|
||||
movs r0, 0x1
|
||||
movs r1, 0x1F
|
||||
bl sub_803E874
|
||||
movs r4, 0
|
||||
_0803E762:
|
||||
cmp r4, 0x1F
|
||||
bgt _0803E780
|
||||
subs r5, 0x2
|
||||
cmp r5, 0
|
||||
bgt _0803E780
|
||||
movs r5, 0
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
bl sub_803EAF0
|
||||
ldr r0, _0803E7C0
|
||||
ldr r0, [r0]
|
||||
ldr r1, _0803E7C4
|
||||
adds r0, r1
|
||||
strb r5, [r0]
|
||||
_0803E780:
|
||||
cmp r4, 0xB
|
||||
ble _0803E790
|
||||
ldr r1, _0803E7BC
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0x1E
|
||||
bgt _0803E790
|
||||
adds r0, 0x1
|
||||
str r0, [r1]
|
||||
_0803E790:
|
||||
movs r0, 0x1
|
||||
adds r1, r5, 0
|
||||
bl sub_803E874
|
||||
movs r0, 0x5
|
||||
bl sub_803E46C
|
||||
adds r4, 0x1
|
||||
cmp r4, 0x2B
|
||||
ble _0803E762
|
||||
ldr r1, _0803E7B8
|
||||
movs r0, 0
|
||||
strb r0, [r1]
|
||||
ldr r1, _0803E7BC
|
||||
movs r0, 0x1F
|
||||
str r0, [r1]
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803E7B8: .4byte gUnknown_203B40D
|
||||
_0803E7BC: .4byte gUnknown_202EDC8
|
||||
_0803E7C0: .4byte gDungeon
|
||||
_0803E7C4: .4byte 0x00018217
|
||||
thumb_func_end sub_803E748
|
||||
|
||||
thumb_func_start sub_803E7C8
|
||||
sub_803E7C8:
|
||||
push {r4,r5,lr}
|
||||
movs r4, 0x1F
|
||||
ldr r1, _0803E820
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
ldr r1, _0803E824
|
||||
movs r0, 0
|
||||
str r0, [r1]
|
||||
movs r0, 0x5
|
||||
bl sub_803E46C
|
||||
movs r5, 0
|
||||
_0803E7E0:
|
||||
movs r0, 0x1
|
||||
adds r1, r4, 0
|
||||
bl sub_803E874
|
||||
cmp r5, 0x1F
|
||||
bgt _0803E806
|
||||
subs r4, 0x2
|
||||
cmp r4, 0
|
||||
bgt _0803E806
|
||||
movs r4, 0
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
bl sub_803EAF0
|
||||
ldr r0, _0803E828
|
||||
ldr r0, [r0]
|
||||
ldr r1, _0803E82C
|
||||
adds r0, r1
|
||||
strb r4, [r0]
|
||||
_0803E806:
|
||||
movs r0, 0x5
|
||||
bl sub_803E46C
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x2B
|
||||
ble _0803E7E0
|
||||
ldr r1, _0803E820
|
||||
movs r0, 0
|
||||
strb r0, [r1]
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803E820: .4byte gUnknown_203B40D
|
||||
_0803E824: .4byte gUnknown_202EDC8
|
||||
_0803E828: .4byte gDungeon
|
||||
_0803E82C: .4byte 0x00018217
|
||||
thumb_func_end sub_803E7C8
|
||||
|
||||
thumb_func_start sub_803E830
|
||||
sub_803E830:
|
||||
push {r4,r5,lr}
|
||||
ldr r1, _0803E86C
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
ldr r5, _0803E870
|
||||
movs r4, 0x1F
|
||||
_0803E83C:
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_803E874
|
||||
movs r0, 0x5
|
||||
bl sub_803E46C
|
||||
ldr r0, [r5]
|
||||
cmp r0, 0
|
||||
ble _0803E854
|
||||
subs r0, 0x1
|
||||
str r0, [r5]
|
||||
_0803E854:
|
||||
subs r4, 0x1
|
||||
cmp r4, 0
|
||||
bge _0803E83C
|
||||
ldr r0, _0803E870
|
||||
movs r1, 0
|
||||
str r1, [r0]
|
||||
ldr r0, _0803E86C
|
||||
strb r1, [r0]
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803E86C: .4byte gUnknown_203B40D
|
||||
_0803E870: .4byte gUnknown_202EDC8
|
||||
thumb_func_end sub_803E830
|
||||
|
||||
thumb_func_start sub_803E874
|
||||
sub_803E874:
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -2594,103 +2594,4 @@ _08069D0E:
|
||||
bx r0
|
||||
thumb_func_end sub_8069844
|
||||
|
||||
thumb_func_start sub_8069D18
|
||||
sub_8069D18:
|
||||
push {r4,r5,lr}
|
||||
ldr r3, [r1, 0x70]
|
||||
ldr r4, _08069D48
|
||||
adds r3, 0x46
|
||||
ldrb r2, [r3]
|
||||
lsls r2, 2
|
||||
adds r2, r4
|
||||
ldrh r2, [r2]
|
||||
ldrh r5, [r1, 0x4]
|
||||
adds r2, r5
|
||||
strh r2, [r0]
|
||||
ldrb r2, [r3]
|
||||
lsls r2, 2
|
||||
adds r2, r4
|
||||
ldrh r2, [r2, 0x2]
|
||||
ldrh r1, [r1, 0x6]
|
||||
adds r2, r1
|
||||
strh r2, [r0, 0x2]
|
||||
ldrb r1, [r3]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08069D48: .4byte gAdjacentTileOffsets
|
||||
thumb_func_end sub_8069D18
|
||||
|
||||
thumb_func_start sub_8069D4C
|
||||
sub_8069D4C:
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0xC
|
||||
adds r5, r0, 0
|
||||
ldr r4, [r1, 0x70]
|
||||
ldrh r0, [r4, 0x2]
|
||||
strh r0, [r5]
|
||||
ldr r0, [r1, 0x4]
|
||||
str r0, [r5, 0x4]
|
||||
adds r0, r4, 0
|
||||
adds r0, 0xF7
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08069D6A
|
||||
ldrh r0, [r4, 0x12]
|
||||
b _08069D6C
|
||||
_08069D6A:
|
||||
ldrh r0, [r4, 0x10]
|
||||
_08069D6C:
|
||||
strh r0, [r5, 0x8]
|
||||
ldrb r0, [r4, 0x9]
|
||||
strh r0, [r5, 0xE]
|
||||
movs r0, 0x2
|
||||
ldrsh r1, [r4, r0]
|
||||
ldrb r2, [r4, 0x9]
|
||||
mov r0, sp
|
||||
bl GetPokemonLevelData
|
||||
ldr r0, [sp]
|
||||
str r0, [r5, 0x10]
|
||||
ldrb r0, [r4, 0x14]
|
||||
strb r0, [r5, 0xA]
|
||||
ldrb r0, [r4, 0x15]
|
||||
strb r0, [r5, 0xB]
|
||||
ldrb r0, [r4, 0x16]
|
||||
strb r0, [r5, 0xC]
|
||||
ldrb r0, [r4, 0x17]
|
||||
strb r0, [r5, 0xD]
|
||||
ldr r0, [r4, 0x60]
|
||||
str r0, [r5, 0x1C]
|
||||
adds r1, r5, 0
|
||||
adds r1, 0x20
|
||||
movs r2, 0x8C
|
||||
lsls r2, 1
|
||||
adds r0, r4, r2
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
movs r3, 0x9E
|
||||
lsls r3, 1
|
||||
adds r0, r4, r3
|
||||
ldr r0, [r0]
|
||||
str r0, [r5, 0x14]
|
||||
movs r6, 0xA0
|
||||
lsls r6, 1
|
||||
adds r0, r4, r6
|
||||
ldr r0, [r0]
|
||||
str r0, [r5, 0x18]
|
||||
ldr r0, [r4, 0x3C]
|
||||
str r0, [r5, 0x44]
|
||||
add sp, 0xC
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8069D4C
|
||||
|
||||
.align 2,0
|
||||
|
||||
@@ -5,125 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8078A58
|
||||
sub_8078A58:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, 0x14
|
||||
mov r8, r0
|
||||
adds r6, r1, 0
|
||||
adds r7, r2, 0
|
||||
adds r5, r3, 0
|
||||
adds r0, r6, 0
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08078B4A
|
||||
ldr r4, [r6, 0x70]
|
||||
cmp r5, 0
|
||||
beq _08078AE0
|
||||
mov r0, sp
|
||||
adds r1, r5, 0
|
||||
bl sub_80943A0
|
||||
ldr r2, [sp]
|
||||
movs r0, 0xA0
|
||||
lsls r0, 1
|
||||
adds r5, r4, r0
|
||||
ldr r7, [r5]
|
||||
add r0, sp, 0x4
|
||||
adds r1, r7, 0
|
||||
bl sub_80942C0
|
||||
ldr r2, [sp, 0x4]
|
||||
str r2, [r5]
|
||||
movs r0, 0x9E
|
||||
lsls r0, 1
|
||||
adds r4, r0
|
||||
ldr r1, [r4]
|
||||
add r0, sp, 0x8
|
||||
bl sub_8094318
|
||||
ldr r0, [sp, 0x8]
|
||||
str r0, [r4]
|
||||
ldr r0, _08078AD0
|
||||
adds r1, r6, 0
|
||||
movs r2, 0
|
||||
bl SetMessageArgument
|
||||
adds r0, r7, 0
|
||||
bl RoundUpFixedPoint
|
||||
adds r4, r0, 0
|
||||
ldr r0, [r5]
|
||||
bl RoundUpFixedPoint
|
||||
cmp r4, r0
|
||||
beq _08078AD8
|
||||
adds r0, r6, 0
|
||||
bl sub_8041D9C
|
||||
ldr r0, _08078AD4
|
||||
b _08078B22
|
||||
.align 2, 0
|
||||
_08078AD0: .4byte gAvailablePokemonNames
|
||||
_08078AD4: .4byte gUnknown_80FBD9C
|
||||
_08078AD8:
|
||||
ldr r0, _08078ADC
|
||||
b _08078B22
|
||||
.align 2, 0
|
||||
_08078ADC: .4byte gUnknown_80FBE3C
|
||||
_08078AE0:
|
||||
add r0, sp, 0xC
|
||||
adds r1, r7, 0
|
||||
bl sub_80943A0
|
||||
ldr r2, [sp, 0xC]
|
||||
movs r0, 0x9E
|
||||
lsls r0, 1
|
||||
adds r4, r0
|
||||
ldr r7, [r4]
|
||||
add r0, sp, 0x10
|
||||
adds r1, r7, 0
|
||||
bl sub_80942C0
|
||||
ldr r0, [sp, 0x10]
|
||||
str r0, [r4]
|
||||
ldr r0, _08078B30
|
||||
adds r1, r6, 0
|
||||
movs r2, 0
|
||||
bl SetMessageArgument
|
||||
adds r0, r7, 0
|
||||
bl RoundUpFixedPoint
|
||||
adds r5, r0, 0
|
||||
ldr r0, [r4]
|
||||
bl RoundUpFixedPoint
|
||||
cmp r5, r0
|
||||
beq _08078B38
|
||||
adds r0, r6, 0
|
||||
bl nullsub_84
|
||||
ldr r0, _08078B34
|
||||
_08078B22:
|
||||
ldr r2, [r0]
|
||||
mov r0, r8
|
||||
adds r1, r6, 0
|
||||
bl sub_80522F4
|
||||
b _08078B44
|
||||
.align 2, 0
|
||||
_08078B30: .4byte gAvailablePokemonNames
|
||||
_08078B34: .4byte gUnknown_80FBD78
|
||||
_08078B38:
|
||||
ldr r0, _08078B58
|
||||
ldr r2, [r0]
|
||||
mov r0, r8
|
||||
adds r1, r6, 0
|
||||
bl sub_80522F4
|
||||
_08078B44:
|
||||
adds r0, r6, 0
|
||||
bl EntityUpdateStatusSprites
|
||||
_08078B4A:
|
||||
add sp, 0x14
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08078B58: .4byte gUnknown_80FBE40
|
||||
thumb_func_end sub_8078A58
|
||||
|
||||
thumb_func_start sub_8078B5C
|
||||
sub_8078B5C:
|
||||
push {r4-r7,lr}
|
||||
|
||||
1415
asm/code_8080CF0.s
1415
asm/code_8080CF0.s
File diff suppressed because it is too large
Load Diff
@@ -1,73 +0,0 @@
|
||||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80847D4
|
||||
sub_80847D4:
|
||||
push {r4,r5,lr}
|
||||
ldr r2, _08084820
|
||||
ldr r0, [r2]
|
||||
ldr r1, _08084824
|
||||
adds r0, r1
|
||||
movs r1, 0
|
||||
strb r1, [r0]
|
||||
ldr r0, [r2]
|
||||
ldr r2, _08084828
|
||||
adds r0, r2
|
||||
strb r1, [r0]
|
||||
bl sub_8040A84
|
||||
movs r4, 0
|
||||
ldr r0, _0808482C
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08084846
|
||||
movs r3, 0
|
||||
_080847FA:
|
||||
ldr r0, _08084820
|
||||
ldr r0, [r0]
|
||||
ldr r5, _08084830
|
||||
adds r0, r5
|
||||
movs r2, 0
|
||||
ldrsh r1, [r0, r2]
|
||||
adds r0, r1, 0
|
||||
subs r0, 0x1C
|
||||
cmp r0, 0x15
|
||||
bhi _08084810
|
||||
movs r1, 0x1B
|
||||
_08084810:
|
||||
ldr r2, _0808482C
|
||||
adds r0, r3, r2
|
||||
ldrb r5, [r0]
|
||||
cmp r1, r5
|
||||
bne _08084834
|
||||
bl sub_8084854
|
||||
b _08084846
|
||||
.align 2, 0
|
||||
_08084820: .4byte gDungeon
|
||||
_08084824: .4byte 0x00003a0d
|
||||
_08084828: .4byte 0x0001356c
|
||||
_0808482C: .4byte gUnknown_8107234
|
||||
_08084830: .4byte 0x00003a14
|
||||
_08084834:
|
||||
adds r3, 0x8
|
||||
adds r4, 0x1
|
||||
ldr r0, _08084850
|
||||
cmp r4, r0
|
||||
bgt _08084846
|
||||
adds r0, r3, r2
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _080847FA
|
||||
_08084846:
|
||||
bl sub_8097FF8
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08084850: .4byte 0x000003e6
|
||||
thumb_func_end sub_80847D4
|
||||
|
||||
.align 2,0
|
||||
@@ -1,331 +0,0 @@
|
||||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
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 gDungeon
|
||||
_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 gDungeon
|
||||
_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 gDungeon
|
||||
_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 EntityExists
|
||||
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 gTeamInventoryRef
|
||||
_0808610C: .4byte gDungeon
|
||||
_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 DungeonFadeOutBGM
|
||||
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
|
||||
@@ -1,144 +0,0 @@
|
||||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
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
|
||||
@@ -1,147 +0,0 @@
|
||||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
||||
thumb_func_start InitActionWithParams
|
||||
InitActionWithParams:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r7, r0, 0
|
||||
adds r6, r1, 0
|
||||
mov r8, r2
|
||||
adds r4, r3, 0
|
||||
ldr r5, [sp, 0x18]
|
||||
lsls r4, 16
|
||||
asrs r4, 16
|
||||
lsls r5, 24
|
||||
asrs r5, 24
|
||||
bl InitAction
|
||||
str r6, [r7]
|
||||
mov r0, r8
|
||||
str r0, [r7, 0x4]
|
||||
strh r4, [r7, 0x10]
|
||||
strb r5, [r7, 0x12]
|
||||
ldrh r0, [r6]
|
||||
strh r0, [r7, 0x8]
|
||||
ldr r1, [r6, 0x4]
|
||||
cmp r1, 0
|
||||
beq _0809D63A
|
||||
mov r0, r8
|
||||
bl _call_via_r1
|
||||
strh r0, [r7, 0xA]
|
||||
b _0809D63C
|
||||
_0809D63A:
|
||||
strh r1, [r7, 0xA]
|
||||
_0809D63C:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end InitActionWithParams
|
||||
|
||||
thumb_func_start sub_809D648
|
||||
sub_809D648:
|
||||
push {lr}
|
||||
bl InitAction
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_809D648
|
||||
|
||||
thumb_func_start sub_809D654
|
||||
sub_809D654:
|
||||
movs r1, 0x26
|
||||
ldrsh r0, [r0, r1]
|
||||
bx lr
|
||||
thumb_func_end sub_809D654
|
||||
|
||||
thumb_func_start sub_809D65C
|
||||
sub_809D65C:
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
movs r2, 0x26
|
||||
ldrsh r0, [r1, r2]
|
||||
cmp r0, 0
|
||||
bne _0809D66E
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
b _0809D672
|
||||
_0809D66E:
|
||||
movs r2, 0x24
|
||||
ldrsh r0, [r1, r2]
|
||||
_0809D672:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_809D65C
|
||||
|
||||
thumb_func_start sub_809D678
|
||||
sub_809D678:
|
||||
movs r2, 0x26
|
||||
ldrsh r1, [r0, r2]
|
||||
negs r0, r1
|
||||
orrs r0, r1
|
||||
lsrs r0, 31
|
||||
bx lr
|
||||
thumb_func_end sub_809D678
|
||||
|
||||
thumb_func_start sub_809D684
|
||||
sub_809D684:
|
||||
push {lr}
|
||||
adds r2, r0, 0
|
||||
adds r3, r1, 0
|
||||
movs r1, 0x26
|
||||
ldrsh r0, [r2, r1]
|
||||
cmp r0, 0
|
||||
beq _0809D6A4
|
||||
ldr r0, [r2, 0x34]
|
||||
cmp r0, 0
|
||||
beq _0809D69C
|
||||
ldr r1, [r2, 0x38]
|
||||
b _0809D69E
|
||||
_0809D69C:
|
||||
ldr r1, [r2, 0x2C]
|
||||
_0809D69E:
|
||||
ldr r0, [r3]
|
||||
cmp r1, r0
|
||||
beq _0809D6CC
|
||||
_0809D6A4:
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x86
|
||||
movs r1, 0
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r0, 0
|
||||
beq _0809D6D0
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x94
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0809D6C0
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x98
|
||||
b _0809D6C4
|
||||
_0809D6C0:
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x8C
|
||||
_0809D6C4:
|
||||
ldr r1, [r0]
|
||||
ldr r0, [r3]
|
||||
cmp r1, r0
|
||||
bne _0809D6D0
|
||||
_0809D6CC:
|
||||
movs r0, 0x1
|
||||
b _0809D6D2
|
||||
_0809D6D0:
|
||||
movs r0, 0
|
||||
_0809D6D2:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_809D684
|
||||
|
||||
.align 2,0
|
||||
@@ -5,90 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80A1440
|
||||
sub_80A1440:
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
adds r3, r2, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
movs r0, 0
|
||||
adds r1, r4, 0
|
||||
adds r2, r5, 0
|
||||
bl sub_80A14E8
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80A1440
|
||||
|
||||
thumb_func_start GroundScript_ExecuteTrigger
|
||||
GroundScript_ExecuteTrigger:
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0xF4
|
||||
lsls r0, 16
|
||||
asrs r4, r0, 16
|
||||
lsls r0, r4, 1
|
||||
adds r0, r4
|
||||
lsls r0, 2
|
||||
ldr r1, _080A14C8
|
||||
adds r0, r1
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r0, 0xB
|
||||
bne _080A14C4
|
||||
add r5, sp, 0x10
|
||||
ldr r1, _080A14CC
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
adds r0, r5, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl InitActionWithParams
|
||||
movs r0, 0
|
||||
add r1, sp, 0x4
|
||||
adds r2, r4, 0
|
||||
bl sub_809D710
|
||||
ldr r3, _080A14D0
|
||||
adds r0, r5, 0
|
||||
movs r1, 0
|
||||
add r2, sp, 0x4
|
||||
bl GroundScript_ExecutePP
|
||||
add r1, sp, 0x44
|
||||
add r0, sp, 0x38
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
ldr r0, _080A14D4
|
||||
str r0, [r5, 0x34]
|
||||
str r0, [r5, 0x38]
|
||||
ldr r1, _080A14D8
|
||||
adds r0, r5, 0
|
||||
bl HandleAction
|
||||
adds r4, r0, 0
|
||||
lsls r4, 16
|
||||
asrs r4, 16
|
||||
adds r0, r5, 0
|
||||
bl sub_809D648
|
||||
cmp r4, 0
|
||||
beq _080A14DC
|
||||
_080A14C4:
|
||||
movs r0, 0
|
||||
b _080A14DE
|
||||
.align 2, 0
|
||||
_080A14C8: .4byte gFunctionScriptTable
|
||||
_080A14CC: .4byte gUnknown_8116488
|
||||
_080A14D0: .4byte gUnknown_81166F8
|
||||
_080A14D4: .4byte gUnknown_81164E4
|
||||
_080A14D8: .4byte gUnknown_8116704
|
||||
_080A14DC:
|
||||
movs r0, 0x1
|
||||
_080A14DE:
|
||||
add sp, 0xF4
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end GroundScript_ExecuteTrigger
|
||||
|
||||
thumb_func_start sub_80A14E8
|
||||
sub_80A14E8:
|
||||
push {r4-r7,lr}
|
||||
@@ -1875,118 +1791,4 @@ _080A2424: .4byte gUnknown_8116848
|
||||
_080A2428: .4byte gUnknown_2039AC0
|
||||
thumb_func_end GroundScript_Unlock
|
||||
|
||||
thumb_func_start sub_80A242C
|
||||
sub_80A242C:
|
||||
push {r4-r7,lr}
|
||||
sub sp, 0x10
|
||||
adds r4, r1, 0
|
||||
ldr r0, [r0, 0x2C]
|
||||
adds r2, r0, 0
|
||||
adds r2, 0x10
|
||||
mov r3, sp
|
||||
_080A243A:
|
||||
mov r1, sp
|
||||
adds r0, r2, 0
|
||||
ldm r0!, {r5-r7}
|
||||
stm r1!, {r5-r7}
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
adds r2, 0x10
|
||||
ldrb r0, [r3]
|
||||
cmp r0, 0xF4
|
||||
bne _080A243A
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r3, r1]
|
||||
cmp r4, r0
|
||||
bne _080A243A
|
||||
adds r0, r2, 0
|
||||
add sp, 0x10
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80A242C
|
||||
|
||||
thumb_func_start sub_80A2460
|
||||
sub_80A2460:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, 0x10
|
||||
adds r5, r0, 0
|
||||
mov r8, r1
|
||||
ldr r6, [r5, 0x28]
|
||||
mov r4, sp
|
||||
_080A2470:
|
||||
mov r0, sp
|
||||
adds r1, r6, 0
|
||||
ldm r1!, {r2,r3,r7}
|
||||
stm r0!, {r2,r3,r7}
|
||||
ldr r1, [r1]
|
||||
str r1, [r0]
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0xCC
|
||||
bne _080A249E
|
||||
ldr r1, [sp, 0x4]
|
||||
mov r0, r8
|
||||
movs r2, 0x2
|
||||
bl FlagJudge
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080A24F0
|
||||
movs r0, 0x2
|
||||
ldrsh r1, [r4, r0]
|
||||
adds r0, r5, 0
|
||||
bl sub_80A242C
|
||||
b _080A24F4
|
||||
_080A249E:
|
||||
cmp r0, 0xCD
|
||||
bne _080A24BE
|
||||
ldr r1, [sp, 0x4]
|
||||
ldrb r2, [r4, 0x1]
|
||||
mov r0, r8
|
||||
bl FlagJudge
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080A24F0
|
||||
movs r2, 0x2
|
||||
ldrsh r1, [r4, r2]
|
||||
adds r0, r5, 0
|
||||
bl sub_80A242C
|
||||
b _080A24F4
|
||||
_080A24BE:
|
||||
cmp r0, 0xCE
|
||||
bne _080A24EC
|
||||
ldr r1, [sp, 0x4]
|
||||
lsls r1, 16
|
||||
asrs r1, 16
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x74
|
||||
bl sub_8001658
|
||||
adds r1, r0, 0
|
||||
ldrb r2, [r4, 0x1]
|
||||
mov r0, r8
|
||||
bl FlagJudge
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080A24F0
|
||||
movs r3, 0x2
|
||||
ldrsh r1, [r4, r3]
|
||||
adds r0, r5, 0
|
||||
bl sub_80A242C
|
||||
b _080A24F4
|
||||
_080A24EC:
|
||||
adds r0, r6, 0
|
||||
b _080A24F4
|
||||
_080A24F0:
|
||||
adds r6, 0x10
|
||||
b _080A2470
|
||||
_080A24F4:
|
||||
add sp, 0x10
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80A2460
|
||||
|
||||
.align 2,0
|
||||
|
||||
@@ -1,36 +1,6 @@
|
||||
.section .rodata
|
||||
|
||||
.align 2, 0
|
||||
@ START code_80130A8 #3
|
||||
.string "pksdir0\0"
|
||||
|
||||
.global gUnknown_80DAF70
|
||||
gUnknown_80DAF70: @ 80DAF70
|
||||
.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_80DAF88
|
||||
gUnknown_80DAF88: @ 80DAF88
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x02, 0x00, 0x02, 0x00
|
||||
.byte 0x1a, 0x00, 0x0c, 0x00
|
||||
.byte 0x0c, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80DAFA0
|
||||
gUnknown_80DAFA0: @ 80DAFA0
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x16, 0x00, 0x0f, 0x00
|
||||
.byte 0x06, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
@ END code_80130A8 #3
|
||||
|
||||
@ START code_80130A8 #4
|
||||
.string "pksdir0\0"
|
||||
@@ -365,4 +335,4 @@ gUnknown_80DB664: @ 80DB664
|
||||
.string "%s\0"
|
||||
.align 2,0
|
||||
|
||||
@ END code_80130A8 #4
|
||||
@ END code_80130A8 #4
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
.section .rodata
|
||||
|
||||
.align 2,0
|
||||
@ code_803D110.s (probably part of code_803D0D8)
|
||||
.global gUnknown_80F43F0
|
||||
gUnknown_80F43F0: @ 80F43F0
|
||||
.byte 0x0d, 0x07, 0x19, 0x0f, 0x04, 0x1d, 0x2a, 0x31, 0x08, 0x13, 0x2d, 0x18, 0x0e, 0x1a, 0x1b, 0x29, 0x01, 0x20, 0x21, 0x22, 0x11, 0x33, 0x26, 0x00, 0x35, 0x0a, 0x2b, 0x1f, 0x12, 0x23, 0x2c, 0x17
|
||||
.byte 0x27, 0x10, 0x1c, 0x30, 0x0b, 0x02, 0x24, 0x09, 0x32, 0x05, 0x28, 0x34, 0x2e, 0x03, 0x1e, 0x0c, 0x25, 0x14, 0x2f, 0x16, 0x06, 0x15
|
||||
|
||||
.global gUnknown_80F4426
|
||||
gUnknown_80F4426: @ 80F4426
|
||||
.byte 0x0c, 0x06, 0x13, 0x08, 0x04, 0x0d, 0x0f, 0x09, 0x10, 0x02, 0x14, 0x12, 0x00, 0x15, 0x0b, 0x05, 0x17, 0x03, 0x11, 0x0a, 0x01, 0x0e, 0x16, 0x07, 0x00, 0x00
|
||||
.byte 0x70, 0x6b, 0x73, 0x64, 0x69, 0x72, 0x30, 0x00
|
||||
@@ -1,627 +1,5 @@
|
||||
.section .rodata
|
||||
|
||||
.align 2,0
|
||||
.string "pksdir0\0"
|
||||
|
||||
.global gUnknown_80E2068
|
||||
gUnknown_80E2068: @ 80E2068
|
||||
.4byte GoRescue_80E20AC
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.4byte GetHelp_80E20A0
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.4byte Info_80E2098
|
||||
.byte 0x17, 0x00, 0x00, 0x00
|
||||
.4byte Exit_80E2090
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
.global Exit_80E2090
|
||||
Exit_80E2090:
|
||||
.string "Exit\0"
|
||||
.align 2,0
|
||||
|
||||
.global Info_80E2098
|
||||
Info_80E2098:
|
||||
.string "Info\0"
|
||||
.align 2,0
|
||||
|
||||
.global GetHelp_80E20A0
|
||||
GetHelp_80E20A0:
|
||||
.string "Get Help\0"
|
||||
.align 2,0
|
||||
|
||||
.global GoRescue_80E20AC
|
||||
GoRescue_80E20AC:
|
||||
.string "Go Rescue\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E20B8
|
||||
gUnknown_80E20B8: @ 80E20B8
|
||||
.4byte GoRescue_80E20AC
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.4byte GetHelp_80E20A0
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte Info_80E2098
|
||||
.byte 0x17, 0x00, 0x00, 0x00
|
||||
.4byte Exit_80E2090
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E20E0
|
||||
gUnknown_80E20E0: @ 80E20E0
|
||||
.4byte GoRescue_80E20AC
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte GetHelp_80E20A0
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.4byte Info_80E2098
|
||||
.byte 0x17, 0x00, 0x00, 0x00
|
||||
.4byte Exit_80E2090
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E2108
|
||||
gUnknown_80E2108: @ 80E2108
|
||||
.4byte GoRescue_80E20AC
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte GetHelp_80E20A0
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte Info_80E2098
|
||||
.byte 0x17, 0x00, 0x00, 0x00
|
||||
.4byte Exit_80E2090
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E2130
|
||||
gUnknown_80E2130: @ 80E2130
|
||||
@ Friend Resuce Pelipper Menu
|
||||
.4byte ReceiveSOSMail_80E217C
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.4byte SendAOKMail_80E216C
|
||||
.byte 0x04, 0x00, 0x00, 0x00
|
||||
.4byte GetThankYouMail_80E2158
|
||||
.byte 0x14, 0x00, 0x00, 0x00
|
||||
.4byte Exit_80E2090
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
.global GetThankYouMail_80E2158
|
||||
GetThankYouMail_80E2158:
|
||||
.string "Get Thank-You Mail\0"
|
||||
.align 2,0
|
||||
|
||||
.global SendAOKMail_80E216C
|
||||
SendAOKMail_80E216C:
|
||||
.string "Send A-OK Mail\0"
|
||||
.align 2,0
|
||||
|
||||
.global ReceiveSOSMail_80E217C
|
||||
ReceiveSOSMail_80E217C:
|
||||
.string "Receive SOS Mail\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2190
|
||||
gUnknown_80E2190: @ 80E2190
|
||||
.4byte ReceiveSOSMail_80E217C
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.4byte SendAOKMail_80E216C
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte GetThankYouMail_80E2158
|
||||
.byte 0x14, 0x00, 0x00, 0x00
|
||||
.4byte Exit_80E2090
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E21B8
|
||||
gUnknown_80E21B8: @ 80E21B8
|
||||
.4byte SendSOS_80E2208
|
||||
.byte 0x11, 0x00, 0x00, 0x00
|
||||
.4byte ReceiveAOK_80E21F4
|
||||
.byte 0x12, 0x00, 0x00, 0x00
|
||||
.4byte SendThankYou_80E21E0
|
||||
.byte 0x13, 0x00, 0x00, 0x00
|
||||
.4byte Exit_80E2090
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
.global SendThankYou_80E21E0
|
||||
SendThankYou_80E21E0:
|
||||
.string "Send Thank-You Mail\0"
|
||||
.align 2,0
|
||||
|
||||
.global ReceiveAOK_80E21F4
|
||||
ReceiveAOK_80E21F4:
|
||||
.string "Receive A-OK Mail\0"
|
||||
.align 2,0
|
||||
|
||||
.global SendSOS_80E2208
|
||||
SendSOS_80E2208:
|
||||
.string "Send SOS Mail\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2218
|
||||
gUnknown_80E2218: @ 80E2218
|
||||
.4byte SendSOS_80E2208
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte ReceiveAOK_80E21F4
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte SendThankYou_80E21E0
|
||||
.byte 0x13, 0x00, 0x00, 0x00
|
||||
.4byte Exit_80E2090
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E2240
|
||||
gUnknown_80E2240: @ 80E2240
|
||||
.4byte SendSOS_80E2208
|
||||
.byte 0x11, 0x00, 0x00, 0x00
|
||||
.4byte ReceiveAOK_80E21F4
|
||||
.byte 0x12, 0x00, 0x00, 0x00
|
||||
.4byte SendThankYou_80E21E0
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte Exit_80E2090
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E2268
|
||||
gUnknown_80E2268: @ 80E2268
|
||||
.4byte SendSOS_80E2208
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte ReceiveAOK_80E21F4
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte SendThankYou_80E21E0
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte Exit_80E2090
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E2290
|
||||
gUnknown_80E2290: @ 80E2290
|
||||
.4byte Yes_80E22B0
|
||||
.byte 0x06, 0x00, 0x00, 0x00
|
||||
.4byte Cancel_80E22A8
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
.global Cancel_80E22A8
|
||||
Cancel_80E22A8:
|
||||
.string "Cancel\0"
|
||||
.align 2,0
|
||||
|
||||
.global Yes_80E22B0
|
||||
Yes_80E22B0:
|
||||
.string "Yes\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E22B4
|
||||
gUnknown_80E22B4: @ 80E22B4
|
||||
.4byte Yes_80E22B0
|
||||
.byte 0x06, 0x00, 0x00, 0x00
|
||||
.4byte No_80E22CC
|
||||
.byte 0x07, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
.global No_80E22CC
|
||||
No_80E22CC:
|
||||
.string "No\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E22D0
|
||||
gUnknown_80E22D0: @ 80E22D0
|
||||
.4byte Yes_80E22B0
|
||||
.byte 0x06, 0x00, 0x00, 0x00
|
||||
.4byte No_80E22CC
|
||||
.byte 0x07, 0x00, 0x00, 0x00
|
||||
.4byte Cancel_80E22A8
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E22F0
|
||||
gUnknown_80E22F0: @ 80E22F0
|
||||
.4byte SendPokemon_80E2308
|
||||
.byte 0x10, 0x00, 0x00, 0x00
|
||||
.4byte Cancel_80E22A8
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
.global SendPokemon_80E2308
|
||||
SendPokemon_80E2308:
|
||||
.string "Send w/o Pokémon\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E231C
|
||||
gUnknown_80E231C: @ 80E231C
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x16, 0x00, 0x07, 0x00
|
||||
.byte 0x06, 0x00, 0x04, 0x00
|
||||
.byte 0x04, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E2334
|
||||
gUnknown_80E2334: @ 80E2334
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x16, 0x00, 0x06, 0x00
|
||||
.byte 0x06, 0x00, 0x04, 0x00
|
||||
.byte 0x04, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E234C
|
||||
gUnknown_80E234C: @ 80E234C
|
||||
.4byte Confirm_80E2364
|
||||
.byte 0x09, 0x00, 0x00, 0x00
|
||||
.4byte Info_80E2098
|
||||
.byte 0x0a, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
.global Confirm_80E2364
|
||||
Confirm_80E2364:
|
||||
.string "Confirm\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E236C
|
||||
gUnknown_80E236C: @ 80E236C
|
||||
.4byte GameLinkCable_80E2398
|
||||
.byte 0x0b, 0x00, 0x00, 0x00
|
||||
.4byte Password_80E238C
|
||||
.byte 0x0d, 0x00, 0x00, 0x00
|
||||
.4byte Cancel_80E22A8
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
.global Password_80E238C
|
||||
Password_80E238C:
|
||||
.string "Password\0"
|
||||
.align 2,0
|
||||
.global GameLinkCable_80E2398
|
||||
GameLinkCable_80E2398:
|
||||
.string "Game Link cable\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E23A8
|
||||
gUnknown_80E23A8: @ 80E23A8
|
||||
.4byte SendPokemon_80E23E0
|
||||
.byte 0x0f, 0x00, 0x00, 0x00
|
||||
.4byte DontSendPokemon_80E23C8
|
||||
.byte 0x10, 0x00, 0x00, 0x00
|
||||
.4byte Cancel_80E22A8
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
.global DontSendPokemon_80E23C8
|
||||
DontSendPokemon_80E23C8:
|
||||
.string "Don{APOSTROPHE}t Send Pokémon\0"
|
||||
.align 2,0
|
||||
|
||||
.global SendPokemon_80E23E0
|
||||
SendPokemon_80E23E0:
|
||||
.string "Send Pokémon\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E23F0
|
||||
gUnknown_80E23F0: @ 80E23F0
|
||||
.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_80E2408
|
||||
gUnknown_80E2408: @ 80E2408
|
||||
.4byte Confirm_80E2364
|
||||
.byte 0x09, 0x00, 0x00, 0x00
|
||||
.4byte Info_80E2098
|
||||
.byte 0x0a, 0x00, 0x00, 0x00
|
||||
.4byte Cancel_80E22A8
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
.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_80E2440
|
||||
gUnknown_80E2440: @ 80E2440
|
||||
.4byte Yes_80E22B0
|
||||
.byte 0x06, 0x00, 0x00, 0x00
|
||||
.4byte Cancel_80E22A8
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E2458
|
||||
gUnknown_80E2458: @ 80E2458
|
||||
.4byte Yes_80E22B0
|
||||
.byte 0x06, 0x00, 0x00, 0x00
|
||||
.4byte No_80E22CC
|
||||
.byte 0x07, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E2470
|
||||
gUnknown_80E2470: @ 80E2470
|
||||
.4byte SendItem_80E24A4
|
||||
.byte 0x15, 0x00, 0x00, 0x00
|
||||
.4byte DontSendItem_80E2490
|
||||
.byte 0x16, 0x00, 0x00, 0x00
|
||||
.4byte Cancel_80E22A8
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
DontSendItem_80E2490:
|
||||
.string "Don{APOSTROPHE}t Send Item\0"
|
||||
.align 2,0
|
||||
SendItem_80E24A4:
|
||||
.string "Send Item\0"
|
||||
.align 2,0
|
||||
|
||||
|
||||
.global gUnknown_80E24B0
|
||||
gUnknown_80E24B0: @ 80E24B0
|
||||
.4byte SendwoItem_80E24C8
|
||||
.byte 0x16, 0x00, 0x00, 0x00
|
||||
.4byte Cancel_80E22A8
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
SendwoItem_80E24C8:
|
||||
.string "Send w/o Item\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E24D8
|
||||
gUnknown_80E24D8: @ 80E24D8
|
||||
.4byte Yes_80E22B0
|
||||
.byte 0x06, 0x00, 0x00, 0x00
|
||||
.4byte No_80E22CC
|
||||
.byte 0x07, 0x00, 0x00, 0x00
|
||||
.4byte Cancel_80E22A8
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x08, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80E24F8
|
||||
gUnknown_80E24F8: @ 80E24F8
|
||||
.4byte RescueInfo_80E2540
|
||||
.byte 0x1A, 0x00, 0x00, 0x00
|
||||
.4byte GoRescue_80E530
|
||||
.byte 0x1B, 0x00, 0x00, 0x00
|
||||
.4byte GetHelp_80E2520
|
||||
.byte 0x1C, 0x00, 0x00, 0x00
|
||||
.4byte Cancel_80E22A8
|
||||
.byte 0x19, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x19, 0x00, 0x00, 0x00
|
||||
|
||||
GetHelp_80E2520:
|
||||
.string "{COLOR_1 YELLOW}Get help{END_COLOR_TEXT_1} \0"
|
||||
.align 2,0
|
||||
GoRescue_80E530:
|
||||
.string "{COLOR_1 YELLOW}Go rescue{END_COLOR_TEXT_1} \0"
|
||||
.align 2,0
|
||||
RescueInfo_80E2540:
|
||||
.string "Friend Rescue Info\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2554
|
||||
gUnknown_80E2554: @ 80E2554
|
||||
.4byte RescueProcedures_80E25A0
|
||||
.byte 0x1E, 0x00, 0x00, 0x00
|
||||
.4byte ReceiveSOSMail_80E217C
|
||||
.byte 0x1F, 0x00, 0x00, 0x00
|
||||
.4byte LeaveForRescue_80E258C
|
||||
.byte 0x20, 0x00, 0x00, 0x00
|
||||
.4byte SendAOKMail_80E216C
|
||||
.byte 0x21, 0x00, 0x00, 0x00
|
||||
.4byte GetThankYouMail_80E2158
|
||||
.byte 0x22, 0x00, 0x00, 0x00
|
||||
.4byte Exit_80E2090
|
||||
.byte 0x19, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x19, 0x00, 0x00, 0x00
|
||||
|
||||
LeaveForRescue_80E258C:
|
||||
.string "Leave for Rescue\0"
|
||||
.align 2,0
|
||||
|
||||
RescueProcedures_80E25A0:
|
||||
.string "Rescue Procedures\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E25B4
|
||||
gUnknown_80E25B4: @ 80E25B4
|
||||
.4byte GettingHelp_80E25E4
|
||||
.byte 0x23, 0x00, 0x00, 0x00
|
||||
.4byte SendSOS_80E2208
|
||||
.byte 0x24, 0x00, 0x00, 0x00
|
||||
.4byte ReceiveAOK_80E21F4
|
||||
.byte 0x25, 0x00, 0x00, 0x00
|
||||
.4byte SendThankYou_80E21E0
|
||||
.byte 0x26, 0x00, 0x00, 0x00
|
||||
.4byte Exit_80E2090
|
||||
.byte 0x19, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x19, 0x00, 0x00, 0x00
|
||||
|
||||
GettingHelp_80E25E4:
|
||||
.string "Getting Help\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E25F4
|
||||
gUnknown_80E25F4: @ 80E25F4
|
||||
.string "What would you like to do?\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2610
|
||||
gUnknown_80E2610: @ 80E2610
|
||||
.string "How would you like to send your\n"
|
||||
.string "{COLOR_1 LIGHT_BLUE}SOS Mail{END_COLOR_TEXT_1}?\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2640
|
||||
gUnknown_80E2640: @ 80E2640
|
||||
.string "How would you like to receive your\n"
|
||||
.string "friend{APOSTROPHE}s {COLOR_1 LIGHT_BLUE}SOS Mail{END_COLOR_TEXT_1}?\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2680
|
||||
gUnknown_80E2680: @ 80E2680
|
||||
.string "How would you like to send your\n"
|
||||
.string "{COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1}?\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E26B0
|
||||
gUnknown_80E26B0: @ 80E26B0
|
||||
.string "How would you like to receive your\n"
|
||||
.string "friend{APOSTROPHE}s {COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1}?\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E26F0
|
||||
gUnknown_80E26F0: @ 80E26F0
|
||||
.string "How would you like to send your\n"
|
||||
.string "{COLOR_1 LIGHT_BLUE}Thank-You Mail{END_COLOR_TEXT_1}?\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2728
|
||||
gUnknown_80E2728: @ 80E2728
|
||||
.string "How would you like to receive your\n"
|
||||
.string "friend{APOSTROPHE}s {COLOR_1 LIGHT_BLUE}Thank-You Mail{END_COLOR_TEXT_1}?\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E276C
|
||||
gUnknown_80E276C: @ 80E276C
|
||||
.string "The GBA Game Pak does not have\n"
|
||||
.string "an {COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1} on it.\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E27A4
|
||||
gUnknown_80E27A4: @ 80E27A4
|
||||
.string "If you accept an {COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1}{COMMA} the\n"
|
||||
.string "{COLOR_1 LIGHT_BLUE}Thank-You Mail{END_COLOR_TEXT_1} you received before\n"
|
||||
.string "will be overwritten. Is that OK?\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2814
|
||||
gUnknown_80E2814: @ 80E2814
|
||||
.string "Please enter the {COLOR_1 LIGHT_BLUE}A-OK Mail password{END_COLOR_TEXT_1}.\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2840
|
||||
gUnknown_80E2840: @ 80E2840
|
||||
.string "The {COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1} will be received and\n"
|
||||
.string "processed.\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2874
|
||||
gUnknown_80E2874: @ 80E2874
|
||||
.string "A {COLOR_1 LIGHT_BLUE}helper Pokémon{END_COLOR_TEXT_1} also arrived!\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2898
|
||||
gUnknown_80E2898: @ 80E2898
|
||||
.string "An {COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1} was received.\n"
|
||||
.string "Your adventure will be saved.\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E28D8
|
||||
gUnknown_80E28D8: @ 80E28D8
|
||||
.string "Resume your game using {COLOR_1 LIGHT_BLUE}Revive Team{END_COLOR_TEXT_1}.\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2904
|
||||
gUnknown_80E2904: @ 80E2904
|
||||
.string "Your friend{APOSTROPHE}s Mailbox is full.\n"
|
||||
.string "This piece of mail cannot be sent.\n"
|
||||
.string "The recipient must delete old mail.\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E296C
|
||||
gUnknown_80E296C: @ 80E296C
|
||||
.string "Please choose the {COLOR_1 LIGHT_BLUE}SOS Mail{END_COLOR_TEXT_1} you want\n"
|
||||
.string "to send.\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E29A0
|
||||
gUnknown_80E29A0: @ 80E29A0
|
||||
.string "This {COLOR_1 LIGHT_BLUE}SOS Mail{END_COLOR_TEXT_1} will be sent.\n"
|
||||
.string "Is that OK?\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E29D0
|
||||
gUnknown_80E29D0: @ 80E29D0
|
||||
.string "Your {COLOR_1 LIGHT_BLUE}SOS Mail{END_COLOR_TEXT_1} was sent.\n"
|
||||
.string "Your adventure will be saved.\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2A0C
|
||||
gUnknown_80E2A0C: @ 80E2A0C
|
||||
.asciz "Save completed."
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2A1C
|
||||
gUnknown_80E2A1C: @ 80E2A1C
|
||||
.string "Please give this password to the friend\n"
|
||||
.string "coming to your rescue.\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2A5C
|
||||
gUnknown_80E2A5C: @ 80E2A5C
|
||||
.string "Here is the {COLOR_1 LIGHT_BLUE}SOS Mail password{END_COLOR_TEXT_1}.\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2A80
|
||||
gUnknown_80E2A80: @ 80E2A80
|
||||
.string "Here is the {COLOR_1 LIGHT_BLUE}A-OK Mail password{END_COLOR_TEXT_1}.\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2AA8
|
||||
gUnknown_80E2AA8: @ 80E2AA8
|
||||
.string "Please give this password to the friend\n"
|
||||
.string "that you rescued.\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2AE4
|
||||
gUnknown_80E2AE4: @ 80E2AE4
|
||||
.string "Please connect a {COLOR_1 LIGHT_BLUE}Link Cable{END_COLOR_TEXT_1}.\n"
|
||||
.string "When your friend{APOSTROPHE}s side is ready{COMMA} you may\n"
|
||||
.string "communicate and exchange data.\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2B54
|
||||
gUnknown_80E2B54: @ 80E2B54
|
||||
.string "Your {COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1} was sent.\n"
|
||||
.string "Your adventure will be saved.\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2B90
|
||||
gUnknown_80E2B90: @ 80E2B90
|
||||
.string "Using a {COLOR_1 LIGHT_BLUE}Game Link cable{END_COLOR_TEXT_1}{COMMA}\n"
|
||||
.string "you can send a {COLOR_1 LIGHT_BLUE}helper Pokémon{END_COLOR_TEXT_1} to\n"
|
||||
.string "a friend.\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80E2BE0
|
||||
gUnknown_80E2BE0: @ 80E2BE0
|
||||
.string "Your own Pokémon will not disappear\n"
|
||||
@@ -1132,4 +510,4 @@ gUnknown_80E499C: @ 80E499C
|
||||
gUnknown_80E49C4: @ 80E49C4
|
||||
.string "This password does not appear to be\n"
|
||||
.string "that of a {COLOR_1 LIGHT_BLUE}Thank-You Mail{END_COLOR_TEXT_1}.\0"
|
||||
.align 2,0
|
||||
.align 2,0
|
||||
|
||||
@@ -2,15 +2,7 @@
|
||||
#define GUARD_CODE_8004AA0_H
|
||||
|
||||
#include "file_system.h"
|
||||
|
||||
// size: 0x4
|
||||
typedef struct RGB
|
||||
{
|
||||
// IDK which is R G B
|
||||
u8 unk0;
|
||||
u8 unk1;
|
||||
u8 unk2;
|
||||
} RGB;
|
||||
#include "structs/rgb.h"
|
||||
|
||||
// size: 0x18
|
||||
typedef struct unkStruct_202EE8C
|
||||
@@ -24,6 +16,8 @@ typedef struct unkStruct_202EE8C
|
||||
RGB unk14;
|
||||
} unkStruct_202EE8C;
|
||||
|
||||
extern unkStruct_202EE8C gUnknown_202EE8C[32];
|
||||
|
||||
// size: Variable
|
||||
typedef struct unkDataFor8004AA4
|
||||
{
|
||||
@@ -38,4 +32,4 @@ bool8 sub_8004AF0(bool8, unkStruct_202EE8C *, s32, s32, s32, u8 *);
|
||||
bool8 sub_8004D14(unkStruct_202EE8C *, s32);
|
||||
bool8 sub_8004D40(unkStruct_202EE8C *, s32);
|
||||
|
||||
#endif // GUARD_CODE_8004AA0_H
|
||||
#endif // GUARD_CODE_8004AA0_H
|
||||
|
||||
@@ -31,5 +31,7 @@ struct unkStruct_203B0CC
|
||||
};
|
||||
|
||||
bool8 sub_800E9A8(s32 a0);
|
||||
bool8 sub_800E9E4(void);
|
||||
bool8 sub_800E9FC(u8 a0);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -2,15 +2,7 @@
|
||||
#define GUARD_CODE_8010EF0_H
|
||||
|
||||
#include "file_system.h"
|
||||
|
||||
// size: 0x4
|
||||
typedef struct RGB
|
||||
{
|
||||
// IDK which is R G B
|
||||
u8 unk0;
|
||||
u8 unk1;
|
||||
u8 unk2;
|
||||
} RGB;
|
||||
#include "structs/rgb.h"
|
||||
|
||||
// size: 0x18
|
||||
typedef struct unkStruct_202EE8C
|
||||
|
||||
@@ -7,10 +7,15 @@ void PlaySound(u16);
|
||||
void sub_801180C(void);
|
||||
void sub_8011830(void);
|
||||
void sub_8011860(void);
|
||||
void xxx_call_fade_in_new_bgm(u16, u16);
|
||||
void xxx_call_fade_out_bgm(u16);
|
||||
void xxx_call_fade_in_new_bgm(u16 songIndex, u16 speed);
|
||||
void xxx_call_fade_out_bgm(u16 speed);
|
||||
void xxx_call_start_bg_music(void);
|
||||
void xxx_call_stop_bgm(void);
|
||||
void xxx_call_stop_fanfare_se(u16);
|
||||
void xxx_call_stop_fanfare_se(u16 songIndex);
|
||||
void StopAllMusic_1(void);
|
||||
void xxx_call_start_new_bgm(u16 songIndex);
|
||||
void xxx_call_queue_bgm(u16 songIndex);
|
||||
void xxx_call_play_fanfare_se(u16 songIndex, u16 volume);
|
||||
void xxx_call_fade_out_fanfare_se(u16 songIndex, u16 speed);
|
||||
|
||||
#endif // GUARD_CODE_80118A4_H
|
||||
#endif // GUARD_CODE_80118A4_H
|
||||
|
||||
@@ -1,10 +1,17 @@
|
||||
#ifndef GUARD_CODE_803D0D8_H
|
||||
#define GUARD_CODE_803D0D8_H
|
||||
|
||||
#include "structs/str_wonder_mail.h"
|
||||
|
||||
u8 sub_803D0D8(void);
|
||||
u8 sub_803D0F0(u8);
|
||||
u8 sub_803D100(u8);
|
||||
u8 sub_803D110(u8 *param_1, u8 *param_2, s32 size);
|
||||
void sub_803D1A8(u8 *param_1, u8 *param_2, s32 size);
|
||||
|
||||
bool8 sub_803D204(u8 *buffer,unkStruct_203B480 *param_2);
|
||||
void sub_803D2C0(u8 *buffer, unkStruct_203B480 *mail);
|
||||
bool8 DecodeWonderMailPassword(u8* buffer, WonderMail *mail);
|
||||
void sub_803D414(u8 *param_1,WonderMail *mail);
|
||||
|
||||
#endif // GUARD_CODE_803D0D8_H
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
#ifndef GUARD_CODE_803D110_H
|
||||
#define GUARD_CODE_803D110_H
|
||||
|
||||
#include "structs/str_wonder_mail.h"
|
||||
|
||||
// code_803D110.s
|
||||
extern void sub_803D414(u8 *, WonderMail *);
|
||||
|
||||
#endif // GUARD_CODE_803D110_H
|
||||
@@ -7,8 +7,8 @@ void sub_806CC10(void);
|
||||
void sub_806CC70(void);
|
||||
void sub_806CCB4(Entity *entity, u8);
|
||||
void sub_806CD90(void);
|
||||
void sub_806CDD4(Entity *entity, u8, u32);
|
||||
void sub_806CDFC(Entity *entity, u8, u32);
|
||||
void sub_806CDD4(Entity *entity, u8, u32 direction);
|
||||
void sub_806CDFC(Entity *entity, u8, u32 direction);
|
||||
void sub_806CE34(Entity *entity, u32 newDir);
|
||||
void sub_806CE68(Entity *entity, u32 newDir);
|
||||
void sub_806CE94(Entity *entity, u32 newDir);
|
||||
@@ -19,4 +19,4 @@ u8 sub_806CF54(Entity *entity);
|
||||
void sub_806CF60(void);
|
||||
u32 sub_806CF98(Entity *entity);
|
||||
|
||||
#endif // GUARD_CODE_806CD90_H
|
||||
#endif // GUARD_CODE_806CD90_H
|
||||
|
||||
@@ -4,5 +4,7 @@
|
||||
#include "structs/dungeon_entity.h"
|
||||
|
||||
void sub_80861A8(Entity *a0);
|
||||
void sub_80861B8(Entity *a0, u8 r1, s32 direction);
|
||||
void sub_80861D4(Entity *a0, u8 r1, s32 direction);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "constants/mailbox.h"
|
||||
#include "structs/str_wonder_mail.h"
|
||||
#include "code_8092334.h"
|
||||
|
||||
// size: 0xC
|
||||
typedef struct subStruct_203B490
|
||||
@@ -67,5 +68,7 @@ u8 *sub_8096DD8(void);
|
||||
u8 *sub_8096DE8(void);
|
||||
u8 sub_8096E2C(void);
|
||||
void sub_8096EEC(WonderMail *mail);
|
||||
void SaveWonderMail(unkStruct_8094924 *a, WonderMail *b);
|
||||
void RestoreWonderMail(unkStruct_8094924 *a, WonderMail *b);
|
||||
|
||||
#endif // GUARD_CODE_80958E8_H
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#define POKEMON_NAME_LENGTH 10
|
||||
#define TEAM_NAME_LENGTH 10
|
||||
#define MAX_TEAM_MEMBERS 4
|
||||
#define MAX_TEAM_BODY_SIZE 6
|
||||
|
||||
#define MAX_MON_MOVES 4
|
||||
|
||||
|
||||
6
include/ground_link.h
Normal file
6
include/ground_link.h
Normal file
@@ -0,0 +1,6 @@
|
||||
#ifndef GUARD_GROUND_LINK_H
|
||||
#define GUARD_GROUND_LINK_H
|
||||
|
||||
void GroundLink_Select(s16 r0);
|
||||
|
||||
#endif // GUARD_GROUND_LINK_H
|
||||
@@ -27,6 +27,7 @@ bool8 GroundMainRescueRequest(s16 r0, u32 r1);
|
||||
|
||||
bool32 GroundMainGameEndRequest(u32 r0);
|
||||
bool32 GroundMainGameCancelRequest(u32 r0);
|
||||
bool8 sub_8098D80(u32 speed);
|
||||
|
||||
extern GroundConversionStruct gGroundConversion_811BAF4[10];
|
||||
|
||||
|
||||
@@ -104,12 +104,12 @@ typedef struct CallbackData
|
||||
typedef struct Action
|
||||
{
|
||||
// size: 0xE4
|
||||
/* 0x00 */ struct CallbackData *callbacks;
|
||||
/* 0x00 */ const struct CallbackData *callbacks;
|
||||
/* 0x04 */ void *parentObject; // struct GroundObject *
|
||||
/* 0x08 */ s16 unk8[2]; // id?
|
||||
/* 0x0C */ ScriptUnion1632 unkC;
|
||||
/* 0x10 */ u16 group;
|
||||
/* 0x12 */ u8 sector;
|
||||
/* 0x10 */ s16 group;
|
||||
/* 0x12 */ s8 sector;
|
||||
// padding
|
||||
/* 0x14 */ ScriptCommand *predefinedScripts[4];
|
||||
/* 0x24 */ ScriptData scriptData;
|
||||
@@ -129,7 +129,8 @@ typedef struct GroundMapAction
|
||||
|
||||
typedef struct FunctionScript
|
||||
{
|
||||
u32 unk0;
|
||||
u16 unk0;
|
||||
s16 unk2;
|
||||
u8 *funcName;
|
||||
ScriptCommand *script;
|
||||
} FunctionScript;
|
||||
@@ -138,6 +139,15 @@ extern FunctionScript gFunctionScriptTable[];
|
||||
|
||||
#include "debug.h"
|
||||
|
||||
void InitScriptData(ScriptData *a0);
|
||||
u8 sub_809D8EC(Action *param_1, s16 param_2);
|
||||
void sub_809D648(Action *action);
|
||||
void sub_809D710(Action *param_1, ScriptInfoSmall *script, s16 index);
|
||||
bool8 sub_809DA08(Action *param_1, s16 index, u32 param_3);
|
||||
bool8 InitActionScriptData(Action *param_1, const DebugLocation *unused);
|
||||
bool8 GroundScript_ExecutePP(Action *, s32 *, ScriptInfoSmall *, const DebugLocation *unused);
|
||||
ScriptCommand *sub_80A242C(Action *action, s32 r1);
|
||||
ScriptCommand *sub_80A2460(Action *action, s32 r1);
|
||||
void InitActionWithParams(Action *action, const CallbackData *callbacks, void *parent, s16 group, s8 sector);
|
||||
|
||||
#endif // GUARD_GROUND_SCRIPT_H
|
||||
|
||||
@@ -290,7 +290,8 @@ typedef struct EntityInfo
|
||||
u8 unk15D;
|
||||
u8 unk15E;
|
||||
u8 unk15F;
|
||||
u8 fill160[0x164 - 0x160];
|
||||
u8 unk160;
|
||||
u8 fill161[3];
|
||||
/* 0x164 */ u8 unk164;
|
||||
/* 0x165 */ u8 unk165;
|
||||
/* 0x166 */ u8 unk166;
|
||||
|
||||
12
include/structs/rgb.h
Normal file
12
include/structs/rgb.h
Normal file
@@ -0,0 +1,12 @@
|
||||
#ifndef GUARD_RGB_H
|
||||
#define GUARD_RGB_H
|
||||
|
||||
typedef struct RGB
|
||||
{
|
||||
// IDK which is R G B
|
||||
u8 unk0;
|
||||
u8 unk1;
|
||||
u8 unk2;
|
||||
} RGB;
|
||||
|
||||
#endif // GUARD_RGB_H
|
||||
@@ -12,6 +12,7 @@
|
||||
#define DUNGEON_MAX_SIZE_X 56
|
||||
#define DUNGEON_MAX_SIZE_Y 32
|
||||
#define DUNGEON_MAX_WILD_POKEMON 16
|
||||
#define DUNGEON_MAX_WILD_POKEMON_BODY_SIZE 16
|
||||
#define DUNGEON_MAX_POKEMON MAX_TEAM_MEMBERS + DUNGEON_MAX_WILD_POKEMON
|
||||
#define DUNGEON_MAX_TRAPS 64
|
||||
#define DUNGEON_MAX_ITEMS 64
|
||||
@@ -269,7 +270,12 @@ typedef struct Dungeon
|
||||
/* 0x17B44 */ OpenedFile *sprites[MONSTER_MAX];
|
||||
/* 0x181E4 */ OpenedFile *paletFile;
|
||||
/* 0x181E8 */ unkDungeonGlobal_unk181E8_sub unk181e8;
|
||||
u8 fill18220[0x1C578 - 0x18220];
|
||||
u8 fill18220[0x1C06C - 0x18220];
|
||||
u32 unk1C06C;
|
||||
u8 fill1C070[0x1C570 - 0x1C070];
|
||||
u8 unk1C570;
|
||||
u8 unk1C571;
|
||||
u8 fill1C572[0x1C578 - 0x1C572];
|
||||
u8 unk1C578;
|
||||
u8 fill1C579[0x1C57E - 0x1C579];
|
||||
u8 unk1C57E;
|
||||
|
||||
@@ -4,5 +4,6 @@
|
||||
#include "structs/dungeon_entity.h"
|
||||
|
||||
u8 GetApparentWeather(Entity *pokemon);
|
||||
void sub_807E5E4(u8 weather);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -87,6 +87,8 @@ SECTIONS {
|
||||
asm/code_800DAC0.o(.text);
|
||||
src/code_800E9A8.o(.text);
|
||||
asm/code_800E9E4.o(.text);
|
||||
src/code_800ED38.o(.text);
|
||||
asm/code_800ED38.o(.text);
|
||||
src/code_800F958.o(.text);
|
||||
asm/code_800F990.o(.text);
|
||||
src/code_8010EF0.o(.text);
|
||||
@@ -103,6 +105,8 @@ SECTIONS {
|
||||
asm/code_80130A8.o(.text);
|
||||
src/code_80140DC.o(.text);
|
||||
asm/code_80140DC.o(.text);
|
||||
src/code_8015080.o(.text);
|
||||
asm/code_8015080.o(.text);
|
||||
src/code_8012A18_1.o(.text);
|
||||
src/code_801602C.o(.text);
|
||||
src/felicity_bank.o(.text);
|
||||
@@ -203,8 +207,6 @@ SECTIONS {
|
||||
src/code_803D0D8.o(.text);
|
||||
asm/code_803D110.o(.text);
|
||||
src/code_803E46C.o(.text);
|
||||
asm/code_803E490.o(.text);
|
||||
src/code_803E668.o(.text);
|
||||
asm/code_803E724.o(.text);
|
||||
src/code_8040094.o(.text);
|
||||
asm/code_8040094.o(.text);
|
||||
@@ -246,6 +248,7 @@ SECTIONS {
|
||||
asm/code_8066D04.o(.text);
|
||||
src/code_805D8C8.o(.text);
|
||||
asm/code_805D8C8_1.o(.text);
|
||||
src/code_8069D4C.o(.text);
|
||||
src/targeting.o(.text);
|
||||
src/code_8069E0C.o(.text);
|
||||
asm/code_8069E0C.o(.text);
|
||||
@@ -296,15 +299,12 @@ SECTIONS {
|
||||
src/code_808417C.o(.text);
|
||||
asm/code_808417C.o(.text);
|
||||
src/code_8084778.o(.text);
|
||||
asm/code_80847D4.o(.text);
|
||||
src/code_80848F0.o(.text);
|
||||
asm/code_80848F0.o(.text);
|
||||
src/dungeon_util_1.o(.text);
|
||||
asm/code_8085B80.o(.text);
|
||||
src/code_8085E98.o(.text);
|
||||
asm/code_8085EB0.o(.text);
|
||||
src/code_80861A8.o(.text);
|
||||
asm/code_80861B8.o(.text);
|
||||
src/code_80869E4.o(.text);
|
||||
src/code_8086A3C.o(.text);
|
||||
asm/code_8086A3C.o(.text);
|
||||
@@ -351,11 +351,11 @@ SECTIONS {
|
||||
src/code_809C5C4.o(.text);
|
||||
asm/code_809C5C4.o(.text);
|
||||
src/code_809D148.o(.text);
|
||||
asm/code_809D148.o(.text);
|
||||
src/ground_script.o(.text);
|
||||
asm/handleaction.o(.text);
|
||||
src/ground_script_1.o(.text);
|
||||
asm/ground_script.o(.text);
|
||||
src/ground_script_2.o(.text);
|
||||
src/code_80A26CC.o(.text);
|
||||
asm/code_80A26CC_1.o(.text);
|
||||
src/ground_map.o(.text);
|
||||
@@ -454,6 +454,7 @@ SECTIONS {
|
||||
src/code_80140DC.o(.rodata);
|
||||
data/data_80D47B8.o(.rodata);
|
||||
src/common_strings.o(.rodata);
|
||||
src/code_8015080.o(.rodata);
|
||||
data/data_80DAF70.o(.rodata);
|
||||
src/code_801602C.o(.rodata);
|
||||
src/felicity_bank.o(.rodata);
|
||||
@@ -519,6 +520,7 @@ SECTIONS {
|
||||
src/post_office_guide2.o(.rodata);
|
||||
src/code_8031D70.o(.rodata);
|
||||
src/adventure_log.o(.rodata);
|
||||
src/friend_rescue.o(.rodata);
|
||||
data/friend_rescue.o(.rodata);
|
||||
data/credits1.o(.rodata);
|
||||
src/credits2.o(.rodata);
|
||||
@@ -542,7 +544,6 @@ SECTIONS {
|
||||
src/personality_test1.o(.rodata);
|
||||
src/personality_test2.o(.rodata);
|
||||
src/code_803D0D8.o(.rodata);
|
||||
data/data_80F4278.o(.rodata);
|
||||
src/dungeon_util.o(.rodata);
|
||||
data/data_80F4468.o(.rodata);
|
||||
src/dungeon_ai_movement.o(.rodata);
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
#include "global.h"
|
||||
#include "code_800E9A8.h"
|
||||
|
||||
s32 sub_800E2C0(void);
|
||||
u8 sub_800EC74(void);
|
||||
|
||||
struct unkStruct_203B0CC *gUnknown_203B0CC;
|
||||
|
||||
bool8 sub_800E9A8(s32 a0)
|
||||
@@ -21,4 +24,36 @@ bool8 sub_800E9A8(s32 a0)
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_800E9E4(void)
|
||||
{
|
||||
if(sub_800E2C0() != -1)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_800E9FC(u8 a0)
|
||||
{
|
||||
s32 i;
|
||||
struct unkStruct_203B0CC_sub *ptr;
|
||||
|
||||
|
||||
ptr = gUnknown_203B0CC->unk0;
|
||||
for (i = 0; i < 32; i++, ptr++) {
|
||||
if (ptr->unk4 != -1) {
|
||||
if(a0 != 0)
|
||||
return TRUE;
|
||||
if (ptr->unk54 == 0)
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if(sub_800EC74())
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
201
src/code_800ED38.c
Normal file
201
src/code_800ED38.c
Normal file
@@ -0,0 +1,201 @@
|
||||
#include "global.h"
|
||||
#include "file_system.h"
|
||||
#include "memory.h"
|
||||
|
||||
struct unkStruct_203B0D0_sub
|
||||
{
|
||||
// size: 0x24
|
||||
u32 unk0;
|
||||
struct unkStruct_203B0D0_sub *unk4;
|
||||
struct unkStruct_203B0D0_sub *unk8;
|
||||
u32 unkC;
|
||||
s32 unk10;
|
||||
s32 unk14;
|
||||
s32 unk18;
|
||||
s32 unk1C;
|
||||
u32 unk20;
|
||||
};
|
||||
|
||||
struct unkStruct_203B0D0 {
|
||||
// size: 0x4C
|
||||
u32 unk0;
|
||||
struct unkStruct_203B0D0_sub unk4[2];
|
||||
};
|
||||
|
||||
struct unkStruct_203B0D0 *gUnknown_203B0D0;
|
||||
|
||||
extern s32 sub_8000728();
|
||||
s32 *sub_800ECA4(s32);
|
||||
OpenedFile *sub_800F1C0(s32, s32);
|
||||
s32 sub_800F0F4(s32, s32);
|
||||
void sub_800F204(OpenedFile *file);
|
||||
void sub_800F13C(s32, OpenedFile *, s32 *);
|
||||
void sub_800F15C(s32);
|
||||
s16 *sub_800ECB8(u16);
|
||||
s16 sub_800ECE4(u8);
|
||||
s16 sub_800ECF8(u8 r0);
|
||||
s16 sub_800ED0C(u8 r0);
|
||||
|
||||
void sub_800ED38(s32 r0)
|
||||
{
|
||||
if(gUnknown_203B0D0 == 0)
|
||||
{
|
||||
gUnknown_203B0D0 = MemoryAlloc(sizeof(struct unkStruct_203B0D0), 0xB);
|
||||
MemoryClear8((u8 *)gUnknown_203B0D0, sizeof(struct unkStruct_203B0D0));
|
||||
}
|
||||
gUnknown_203B0D0->unk0 = r0;
|
||||
}
|
||||
|
||||
void sub_800ED64(void)
|
||||
{
|
||||
if(gUnknown_203B0D0)
|
||||
{
|
||||
MemoryFree(gUnknown_203B0D0);
|
||||
gUnknown_203B0D0 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_800ED80(void)
|
||||
{
|
||||
s32 index;
|
||||
struct unkStruct_203B0D0_sub *sub;
|
||||
|
||||
gUnknown_203B0D0->unk0 = 0;
|
||||
for(index = 0; index < 2; index++)
|
||||
{
|
||||
sub = &gUnknown_203B0D0->unk4[index];
|
||||
sub->unk0 = 0;
|
||||
sub->unk4 = 0;
|
||||
sub->unk8 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_800EDB0(struct unkStruct_203B0D0_sub *r0)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
for(index = 0; index < 2; index++)
|
||||
{
|
||||
if(gUnknown_203B0D0->unk4[index].unk0 == 0)
|
||||
{
|
||||
gUnknown_203B0D0->unk4[index] = *r0;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_800EDF0(u32 r0, struct unkStruct_203B0D0_sub *r1) {
|
||||
struct unkStruct_203B0D0_sub stack;
|
||||
s32 uVar1;
|
||||
|
||||
switch(r0)
|
||||
{
|
||||
case 0:
|
||||
stack.unk0 = 3;
|
||||
stack.unkC = 0xE;
|
||||
stack.unk10 = -1;
|
||||
stack.unk18 = 0xDC << 2;
|
||||
stack.unk1C = 0x1F;
|
||||
stack.unk14 = -1;
|
||||
stack.unk4 = r1;
|
||||
break;
|
||||
case 1:
|
||||
stack.unk0 = 4;
|
||||
stack.unkC = 0xE;
|
||||
stack.unk10 = 0xF0 << 4;
|
||||
stack.unk18 = -1;
|
||||
stack.unk1C = -1;
|
||||
|
||||
// TODO: what math op is this again?
|
||||
uVar1 = sub_8000728();
|
||||
stack.unk14 = (((int)(-(uVar1 ^ 2) | (uVar1 ^ 2)) >> 0x1f) & 2);
|
||||
stack.unk4 = r1;
|
||||
break;
|
||||
}
|
||||
stack.unk8 = r1->unk4;
|
||||
stack.unk20 = 0;
|
||||
sub_800EDB0(&stack);
|
||||
}
|
||||
|
||||
void sub_800EE5C(s32 r0)
|
||||
{
|
||||
s32 *ret;
|
||||
OpenedFile *file;
|
||||
s32 ret2;
|
||||
|
||||
ret = sub_800ECA4(r0);
|
||||
if(r0 != 0)
|
||||
{
|
||||
if((u32)(ret[0] - 1) > 1)
|
||||
{
|
||||
file = sub_800F1C0(ret[0], ret[1]);
|
||||
if(file)
|
||||
{
|
||||
ret2 = sub_800F0F4(ret[0], ret[1]);
|
||||
if(ret2 == -1)
|
||||
{
|
||||
sub_800F204(file);
|
||||
return;
|
||||
}
|
||||
else if(ret2 != -2)
|
||||
{
|
||||
sub_800F13C(ret2, file, ret);
|
||||
sub_800EDF0(ret2, (void *)file);
|
||||
|
||||
}
|
||||
else {
|
||||
sub_800F204(file);
|
||||
}
|
||||
sub_800F15C(ret[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_800EEC8(u16 r0)
|
||||
{
|
||||
s16 *ret;
|
||||
ret = sub_800ECB8(r0);
|
||||
sub_800EE5C(ret[0]);
|
||||
}
|
||||
|
||||
void sub_800EEE0(u16 r0)
|
||||
{
|
||||
s16 *ret;
|
||||
ret = sub_800ECB8(r0);
|
||||
sub_800EE5C(ret[2]);
|
||||
}
|
||||
|
||||
void sub_800EEF8(u16 r0)
|
||||
{
|
||||
s16 *ret;
|
||||
ret = sub_800ECB8(r0);
|
||||
sub_800EE5C(ret[1]);
|
||||
}
|
||||
|
||||
void sub_800EF10(u16 r0)
|
||||
{
|
||||
s16 *ret;
|
||||
ret = sub_800ECB8(r0);
|
||||
sub_800EE5C(ret[3]);
|
||||
}
|
||||
|
||||
void sub_800EF28(u8 r0)
|
||||
{
|
||||
sub_800EE5C(sub_800ECE4(r0));
|
||||
}
|
||||
|
||||
void sub_800EF40(u8 r0, u8 r1)
|
||||
{
|
||||
s32 ret;
|
||||
if(r1)
|
||||
{
|
||||
ret = sub_800ECF8(r0);
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = sub_800ED0C(r0);
|
||||
}
|
||||
sub_800EE5C(ret);
|
||||
}
|
||||
@@ -1,10 +1,61 @@
|
||||
#include "global.h"
|
||||
#include "code_800F958.h"
|
||||
#include "memory.h"
|
||||
|
||||
extern DungeonPokemonSprites *gDungeonPokemonSprites;
|
||||
|
||||
extern DungeonPokemonSprite *NewDungeonPokemonSprite(void);
|
||||
extern DungeonPokemonSprite* GetDungeonPokemonSprite(s32 id);
|
||||
|
||||
extern Position gUnknown_80D3564;
|
||||
|
||||
void AddPokemonDungeonSprite(s32 id, s16 species, Position *pos, u32 r3) {
|
||||
DungeonPokemonSprite *dSprite;
|
||||
DungeonPokemonSprite *newSprite;
|
||||
Position newPos;
|
||||
s32 species_s32;
|
||||
|
||||
species_s32 = species;
|
||||
|
||||
if(gDungeonPokemonSprites == NULL)
|
||||
return;
|
||||
|
||||
dSprite = GetDungeonPokemonSprite(id);
|
||||
if(dSprite != NULL)
|
||||
return;
|
||||
|
||||
newSprite = NewDungeonPokemonSprite();
|
||||
if(newSprite == NULL)
|
||||
return;
|
||||
|
||||
newSprite->exists = 1;
|
||||
newSprite->id = id;
|
||||
newSprite->species = species_s32;
|
||||
newSprite->status = 0;
|
||||
newSprite->pos = *pos;
|
||||
newSprite->unk11 = r3;
|
||||
newPos = gUnknown_80D3564;
|
||||
newSprite->statusOffsets[1] = newPos;
|
||||
newSprite->statusOffsets[0] = newPos;
|
||||
newSprite->statusSprites[0].status = 0;
|
||||
newSprite->statusSprites[0].frame = 0;
|
||||
newSprite->statusSprites[1].status = 0;
|
||||
newSprite->statusSprites[1].frame = 0;
|
||||
}
|
||||
|
||||
void DeletePokemonDungeonSprite(s32 id)
|
||||
{
|
||||
DungeonPokemonSprite *dSprite;
|
||||
|
||||
if(gDungeonPokemonSprites == NULL)
|
||||
return;
|
||||
|
||||
dSprite = GetDungeonPokemonSprite(id);
|
||||
if(dSprite == NULL)
|
||||
return;
|
||||
|
||||
MemoryClear8((u8 *)dSprite, sizeof(DungeonPokemonSprite));
|
||||
}
|
||||
|
||||
void sub_800F958(s32 dungeonSpriteID, Position *pos, Position *statusOffsets, u32 a3)
|
||||
{
|
||||
DungeonPokemonSprite *dSprite;
|
||||
|
||||
99
src/code_8015080.c
Normal file
99
src/code_8015080.c
Normal file
@@ -0,0 +1,99 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "code_80130A8.h"
|
||||
#include "input.h"
|
||||
#include "memory.h"
|
||||
#include "menu_input.h"
|
||||
#include "text1.h"
|
||||
#include "text2.h"
|
||||
|
||||
struct unkStruct_203B1F8
|
||||
{
|
||||
// size: 0x4B4
|
||||
u32 menuAction;
|
||||
MenuStruct unk4;
|
||||
UnkTextStruct2 unk54[4];
|
||||
u8 buffer[0x400];
|
||||
};
|
||||
|
||||
EWRAM_DATA_2 struct unkStruct_203B1F8 *gUnknown_203B1F8 = {0};
|
||||
|
||||
const UnkTextStruct2 gUnknown_80DAF70 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
NULL
|
||||
};
|
||||
|
||||
const UnkTextStruct2 gUnknown_80DAF88 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x02, 0x02,
|
||||
0x1A, 0x0c,
|
||||
0x0c, 0x00,
|
||||
NULL
|
||||
};
|
||||
|
||||
const UnkTextStruct2 gUnknown_80DAFA0 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x16, 0x0F,
|
||||
0x06, 0x03,
|
||||
0x03, 0x00,
|
||||
NULL
|
||||
};
|
||||
|
||||
bool8 sub_8015080(u8 *buffer, const MenuItem *menuItems)
|
||||
{
|
||||
|
||||
s32 index;
|
||||
|
||||
gUnknown_203B1F8 = MemoryAlloc(sizeof(struct unkStruct_203B1F8), 8);
|
||||
gUnknown_203B1F8->menuAction = 0;
|
||||
|
||||
for(index = 0; index < 4; index++)
|
||||
{
|
||||
gUnknown_203B1F8->unk54[index] = gUnknown_80DAF70;
|
||||
}
|
||||
|
||||
gUnknown_203B1F8->unk54[0] = gUnknown_80DAF88;
|
||||
gUnknown_203B1F8->unk54[2] = gUnknown_80DAFA0;
|
||||
sub_8012CAC(&gUnknown_203B1F8->unk54[2], menuItems);
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B1F8->unk54, 1, 1);
|
||||
sub_80073B8(0);
|
||||
xxx_format_string(buffer, gUnknown_203B1F8->buffer, gUnknown_203B1F8->buffer + 0x400, 0);
|
||||
PrintStringOnWindow(4, 4, gUnknown_203B1F8->buffer, 0, 0);
|
||||
sub_80073E0(0);
|
||||
sub_8012D60(&gUnknown_203B1F8->unk4, menuItems, 0, 0, -1, 2);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u32 sub_801516C(void)
|
||||
{
|
||||
if(!sub_8012FD8(&gUnknown_203B1F8->unk4))
|
||||
{
|
||||
sub_8013114(&gUnknown_203B1F8->unk4, &gUnknown_203B1F8->menuAction);
|
||||
return 3;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_8015198(void)
|
||||
{
|
||||
return gUnknown_203B1F8->menuAction;
|
||||
}
|
||||
|
||||
void sub_80151A4(void)
|
||||
{
|
||||
if(gUnknown_203B1F8)
|
||||
{
|
||||
MemoryFree(gUnknown_203B1F8);
|
||||
gUnknown_203B1F8 = NULL;
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,7 @@
|
||||
#include "code_80118A4.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern unkStruct_203B270 *gUnknown_203B270;
|
||||
EWRAM_DATA_2 unkStruct_203B270 *gUnknown_203B270 = {0};
|
||||
|
||||
const UnkTextStruct2 gUnknown_80DC240 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
@@ -19,7 +19,7 @@ struct unkStruct_203B274
|
||||
unkStruct_808E218_arg unk8;
|
||||
struct_Sub80095E4_2 s348;
|
||||
};
|
||||
extern struct unkStruct_203B274 *gUnknown_203B274;
|
||||
EWRAM_DATA_2 struct unkStruct_203B274 *gUnknown_203B274 = {0};
|
||||
|
||||
extern u8 gAvailablePokemonNames[];
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ struct unkStruct_203B278
|
||||
MenuInputStructSub unkC8;
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B278 *gUnknown_203B278;
|
||||
EWRAM_DATA_2 struct unkStruct_203B278 *gUnknown_203B278 = {0};
|
||||
|
||||
static const UnkTextStruct2 sUnknown_80DC2F8 = {
|
||||
0, 0, 0, 0,
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#include "globaldata.h"
|
||||
#include "constants/wonder_mail.h"
|
||||
#include "constants/colors.h"
|
||||
#include "code_803D0D8.h"
|
||||
#include "input.h"
|
||||
#include "memory.h"
|
||||
#include "text1.h"
|
||||
@@ -48,8 +49,6 @@ const UnkTextStruct2 gUnknown_80E1FC4 = {
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E1FDC[] = "Password";
|
||||
|
||||
extern void sub_803D2C0(u8 *, unkStruct_203B480 *);
|
||||
|
||||
void sub_8031E00(void);
|
||||
void sub_8031E58(void);
|
||||
void DrawSOSPasswordScreen(void);
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "structs/str_wonder_mail.h"
|
||||
#include "code_803D0D8.h"
|
||||
#include "code_8092334.h"
|
||||
#include "code_8094F88.h"
|
||||
#include "code_80958E8.h"
|
||||
#include "memory.h"
|
||||
|
||||
static EWRAM_DATA_2 u8 sUnknown_203B408 = {0};
|
||||
@@ -95,4 +98,150 @@ void sub_803D1A8(u8 *param_1, u8 *param_2, s32 size)
|
||||
}
|
||||
}
|
||||
|
||||
// Probably continues in code_803D110.s
|
||||
bool8 sub_803D204(u8 *buffer,unkStruct_203B480 *param_2)
|
||||
{
|
||||
s32 innerIndex;
|
||||
u8 checksum;
|
||||
u8 local_c4 [34];
|
||||
u8 translateBuffer [PASSWORD_BUFFER_SIZE];
|
||||
u8 localBuffer [PASSWORD_BUFFER_SIZE];
|
||||
unkStruct_8094924 uStack_30;
|
||||
s32 index;
|
||||
|
||||
checksum = 0;
|
||||
MemoryCopy8(localBuffer,buffer,sizeof(localBuffer));
|
||||
for(index = 0; index < PASSWORD_BUFFER_SIZE; index++)
|
||||
{
|
||||
for(innerIndex = 0; innerIndex < PASSWORD_BUFFER_SIZE; innerIndex++)
|
||||
{
|
||||
if (innerIndex == gUnknown_80F43F0[index]) break;
|
||||
}
|
||||
translateBuffer[index] = localBuffer[innerIndex];
|
||||
}
|
||||
|
||||
|
||||
if (sub_803D110(translateBuffer,local_c4,sizeof(translateBuffer)) != 0) {
|
||||
|
||||
for(index = 1; index < 34; index++)
|
||||
{
|
||||
checksum += local_c4[index] + index;
|
||||
}
|
||||
if (local_c4[0] == checksum) {
|
||||
xxx_init_struct_8094924_restore_809485C(&uStack_30,&local_c4[1],33);
|
||||
sub_8095774(&uStack_30,param_2);
|
||||
nullsub_102(&uStack_30);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_803D2C0(u8 *buffer, unkStruct_203B480 *mail)
|
||||
{
|
||||
u8 checksum;
|
||||
int index;
|
||||
u8 local_c0 [34];
|
||||
u8 buffer1 [PASSWORD_BUFFER_SIZE];
|
||||
u8 buffer2 [PASSWORD_BUFFER_SIZE];
|
||||
unkStruct_8094924 auStack_2c;
|
||||
|
||||
checksum = 0;
|
||||
|
||||
for(index = 0; index < 34; index++)
|
||||
{
|
||||
local_c0[index] = 0;
|
||||
}
|
||||
|
||||
xxx_init_struct_8094924_save_809486C(&auStack_2c,&local_c0[1],33);
|
||||
sub_8095824(&auStack_2c,mail);
|
||||
nullsub_102(&auStack_2c);
|
||||
for(index = 1; index < 34; index++)
|
||||
{
|
||||
checksum += + local_c0[index] + index;
|
||||
}
|
||||
local_c0[0] = checksum;
|
||||
sub_803D1A8(buffer1,local_c0,sizeof(buffer1));
|
||||
for(index = 0; index < PASSWORD_BUFFER_SIZE; index++)
|
||||
{
|
||||
buffer2[gUnknown_80F43F0[index]] = buffer1[index];
|
||||
}
|
||||
MemoryCopy8(buffer,buffer2,sizeof(buffer2));
|
||||
}
|
||||
|
||||
bool8 DecodeWonderMailPassword(u8* buffer, WonderMail *mail)
|
||||
{
|
||||
s32 innerIndex;
|
||||
int index;
|
||||
u8 checksum;
|
||||
u8 local_70 [16];
|
||||
u8 local_60 [24];
|
||||
u8 password [24];
|
||||
unkStruct_8094924 puVar1;
|
||||
|
||||
checksum = 0;
|
||||
MemoryCopy8(password,buffer,24);
|
||||
|
||||
for(index = 0; index < 24; index++)
|
||||
{
|
||||
for(innerIndex = 0; innerIndex < 24; innerIndex++)
|
||||
{
|
||||
if (innerIndex == gUnknown_80F4426[index]) break;
|
||||
}
|
||||
local_60[index] = password[innerIndex];
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (sub_803D110(local_60,local_70,24) != 0) {
|
||||
|
||||
for(index = 1; index < 0xF; index++)
|
||||
{
|
||||
checksum += (local_70[index] + index);
|
||||
}
|
||||
if (local_70[0] == checksum) {
|
||||
xxx_init_struct_8094924_restore_809485C(&puVar1,&local_70[1],0xc);
|
||||
RestoreWonderMail(&puVar1,mail);
|
||||
nullsub_102(&puVar1);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_803D414(u8 *buffer,WonderMail *mail)
|
||||
{
|
||||
u8 checksum;
|
||||
s32 index;
|
||||
u8 local_6c [15];
|
||||
u8 local_5c [24];
|
||||
u8 auStack_44 [24];
|
||||
unkStruct_8094924 uStack_2c;
|
||||
|
||||
checksum = 0;
|
||||
for(index = 0; index < 0xF; index++)
|
||||
{
|
||||
local_6c[index] = 0;
|
||||
}
|
||||
|
||||
xxx_init_struct_8094924_save_809486C(&uStack_2c,&local_6c[1],12);
|
||||
SaveWonderMail(&uStack_2c,mail);
|
||||
nullsub_102(&uStack_2c);
|
||||
|
||||
for(index = 1; index < 0xF; index++)
|
||||
{
|
||||
checksum += local_6c[index] + index;
|
||||
}
|
||||
local_6c[0] = checksum;
|
||||
sub_803D1A8(local_5c,local_6c, sizeof(local_5c));
|
||||
for(index = 0; index < 0x18; index++)
|
||||
{
|
||||
auStack_44[(gUnknown_80F4426)[index]] = local_5c[index];
|
||||
}
|
||||
MemoryCopy8(buffer,auStack_44,sizeof(auStack_44));
|
||||
}
|
||||
|
||||
void sub_803D4AC(void)
|
||||
{
|
||||
gDungeon->unk1C570 = 0x63;
|
||||
gDungeon->unk1C571 = 0xFF;
|
||||
}
|
||||
|
||||
@@ -1,11 +1,46 @@
|
||||
#include "global.h"
|
||||
#include "structs/str_dungeon.h"
|
||||
#include "code_803E46C.h"
|
||||
|
||||
#include "code_8004AA0.h"
|
||||
#include "code_800558C.h"
|
||||
#include "code_8009804.h"
|
||||
#include "code_800C9CC.h"
|
||||
#include "code_80118A4.h"
|
||||
#include "code_803E668.h"
|
||||
|
||||
#include "bg_palette_buffer.h"
|
||||
#include "bg_control.h"
|
||||
#include "dungeon_music.h"
|
||||
#include "game_options.h"
|
||||
#include "input.h"
|
||||
#include "play_time.h"
|
||||
#include "sprite.h"
|
||||
|
||||
extern u8 gUnknown_203B40C;
|
||||
extern u8 gUnknown_203B40D;
|
||||
extern s32 gUnknown_202EDC8;
|
||||
extern s32 gUnknown_202EDCC;
|
||||
extern u32 gUnknown_202EDD0;
|
||||
extern s32 gUnknown_202EDD4;
|
||||
|
||||
extern void sub_803E490(u32);
|
||||
void xxx_draw_string_80524F0(void);
|
||||
void sub_8085F78(void);
|
||||
void sub_803F580(s32);
|
||||
void sub_806CC10();
|
||||
void sub_804522C();
|
||||
void sub_803F9CC();
|
||||
extern void xxx_call_update_bg_vram(void);
|
||||
void sub_8040894();
|
||||
void sub_803ECE0();
|
||||
void sub_803EDF0();
|
||||
void sub_800E90C();
|
||||
void sub_8042E5C();
|
||||
void sub_8040B60();
|
||||
void sub_8040788();
|
||||
void sub_800F7D0(Position *);
|
||||
void sub_803E874(s32, s32);
|
||||
void sub_803EAF0(s32, s32);
|
||||
|
||||
void sub_803E46C(u32 a0)
|
||||
{
|
||||
@@ -14,3 +49,194 @@ void sub_803E46C(u32 a0)
|
||||
else
|
||||
sub_803E668(a0);
|
||||
}
|
||||
|
||||
void sub_803E490(u32 unused)
|
||||
{
|
||||
gUnknown_202EDD4++;
|
||||
xxx_draw_string_80524F0();
|
||||
sub_8085F78();
|
||||
sub_803F580(1);
|
||||
|
||||
if(gDungeon->unk181e8.unk1821A)
|
||||
{
|
||||
gDungeon->unk181e8.unk18208 = 2;
|
||||
SetBG2RegOffsets(gDungeon->unk181e8.cameraPixelPos.x, gDungeon->unk181e8.cameraPixelPos.y);
|
||||
}
|
||||
else
|
||||
{
|
||||
gDungeon->unk181e8.unk18208 = 3;
|
||||
SetBG2RegOffsets(0, 0);
|
||||
}
|
||||
SetBG3RegOffsets(gDungeon->unk181e8.cameraPixelPos.x, gDungeon->unk181e8.cameraPixelPos.y - gDungeon->unk181e8.unk181FC);
|
||||
sub_806CC10();
|
||||
sub_804522C();
|
||||
sub_803F9CC();
|
||||
|
||||
sub_800F7D0(&gDungeon->unk181e8.cameraPixelPos);
|
||||
|
||||
if(gDungeon->unk12 <= 0x63)
|
||||
gDungeon->unk12++;
|
||||
|
||||
sub_800E90C(&gDungeon->unk181e8.cameraPixelPos);
|
||||
sub_8042E5C();
|
||||
|
||||
if(gUnknown_202EDD0 == 0 || gUnknown_202EDD0 == 3 || gGameOptionsRef->mapOption == TOP_MAP_AND_TEAM_NO_BOTTOM)
|
||||
sub_8040894();
|
||||
sub_803ECE0();
|
||||
sub_803EDF0();
|
||||
|
||||
|
||||
if(gDungeon->unk181e8.unk18215 != 0 && gDungeon->unk1C06C != 3)
|
||||
sub_8004AF0(gUnknown_203B40D, gUnknown_202EE8C, 0xA0, 0x20, gUnknown_202EDC8, (u8 *)gDungeon->unk17C);
|
||||
|
||||
nullsub_8(gGameOptionsRef->unkA);
|
||||
sub_8005180();
|
||||
nullsub_12();
|
||||
sub_80060EC();
|
||||
|
||||
gUnknown_202EDCC++;
|
||||
|
||||
IncrementPlayTime(gPlayTimeRef);
|
||||
sub_800CB20();
|
||||
LoadBufferedInputs();
|
||||
CopySpritesToOam();
|
||||
nullsub_13();
|
||||
sub_8005304();
|
||||
nullsub_14();
|
||||
|
||||
TransferBGPaletteBuffer();
|
||||
sub_8009908();
|
||||
xxx_call_update_bg_vram();
|
||||
sub_8040788();
|
||||
xxx_call_update_bg_sound_input();
|
||||
|
||||
gDungeon->unk181e8.unk18213 = 0;
|
||||
UpdateDungeonMusic();
|
||||
sub_8011860();
|
||||
sub_8040B60();
|
||||
ResetSprites(FALSE);
|
||||
nullsub_10(FALSE);
|
||||
gUnknown_202EDD4--;
|
||||
}
|
||||
|
||||
void sub_803E668(u32 unused)
|
||||
{
|
||||
gUnknown_202EDD4++;
|
||||
nullsub_8(gGameOptionsRef->unkA);
|
||||
sub_8005180();
|
||||
nullsub_12();
|
||||
sub_8005838(NULL, 0);
|
||||
sub_80060EC();
|
||||
gUnknown_202EDCC++;
|
||||
IncrementPlayTime(gPlayTimeRef);
|
||||
sub_800CB20();
|
||||
LoadBufferedInputs();
|
||||
CopySpritesToOam();
|
||||
nullsub_13();
|
||||
sub_8005304();
|
||||
nullsub_14();
|
||||
TransferBGPaletteBuffer();
|
||||
sub_8009908();
|
||||
xxx_call_update_bg_vram();
|
||||
xxx_call_update_bg_sound_input();
|
||||
gDungeon->unk181e8.unk18213 = 0;
|
||||
sub_8011860();
|
||||
ResetSprites(FALSE);
|
||||
nullsub_10(FALSE);
|
||||
gUnknown_202EDD4--;
|
||||
}
|
||||
|
||||
void sub_803E708(s32 a0, u32 a1)
|
||||
{
|
||||
while (a0 != 0) {
|
||||
sub_803E46C(a1);
|
||||
a0--;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_803E724(s32 r0)
|
||||
{
|
||||
do
|
||||
{
|
||||
sub_803E46C(r0);
|
||||
} while (gRealInputs.held & 0xF0);
|
||||
}
|
||||
|
||||
void sub_803E748(void) {
|
||||
|
||||
s32 index1;
|
||||
s32 index2;
|
||||
|
||||
index2 = 0x1F;
|
||||
gUnknown_203B40D = 1;
|
||||
gUnknown_202EDC8 = 0;
|
||||
|
||||
sub_803E874(1, 0x1F);
|
||||
|
||||
for(index1 = 0; index1 < 0x2C; index1++)
|
||||
{
|
||||
if(index1 < 0x20)
|
||||
{
|
||||
index2 -= 2;
|
||||
if(index2 <= 0)
|
||||
{
|
||||
index2 = 0;
|
||||
sub_803EAF0(1, 0);
|
||||
gDungeon->unk181e8.unk18217 = index2;
|
||||
}
|
||||
}
|
||||
if(index1 > 0xB)
|
||||
if(gUnknown_202EDC8 <= 0x1E)
|
||||
gUnknown_202EDC8++;
|
||||
sub_803E874(1, index2);
|
||||
sub_803E46C(5);
|
||||
}
|
||||
gUnknown_203B40D = 0;
|
||||
gUnknown_202EDC8 = 0x1F;
|
||||
}
|
||||
|
||||
void sub_803E7C8(void)
|
||||
{
|
||||
|
||||
s32 index1;
|
||||
s32 index2;
|
||||
|
||||
index2 = 0x1F;
|
||||
gUnknown_203B40D = 1;
|
||||
gUnknown_202EDC8 = 0;
|
||||
|
||||
sub_803E46C(5);
|
||||
|
||||
for(index1 = 0; index1 < 0x2C; index1++)
|
||||
{
|
||||
sub_803E874(1, index2);
|
||||
if(index1 < 0x20)
|
||||
{
|
||||
index2 -= 2;
|
||||
if(index2 <= 0)
|
||||
{
|
||||
index2 = 0;
|
||||
sub_803EAF0(1, 0);
|
||||
gDungeon->unk181e8.unk18217 = index2;
|
||||
}
|
||||
}
|
||||
sub_803E46C(5);
|
||||
}
|
||||
gUnknown_203B40D = 0;
|
||||
}
|
||||
|
||||
void sub_803E830(void)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
gUnknown_203B40D = 1;
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
sub_803E874(0, 0);
|
||||
sub_803E46C(5);
|
||||
if(gUnknown_202EDC8 > 0)
|
||||
gUnknown_202EDC8--;
|
||||
}
|
||||
gUnknown_202EDC8 = 0;
|
||||
gUnknown_203B40D = 0;
|
||||
}
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
#include "global.h"
|
||||
#include "code_803E668.h"
|
||||
|
||||
#include "bg_palette_buffer.h"
|
||||
#include "code_800558C.h"
|
||||
#include "code_8009804.h"
|
||||
#include "code_800C9CC.h"
|
||||
#include "code_80118A4.h"
|
||||
#include "code_803E46C.h"
|
||||
#include "game_options.h"
|
||||
#include "input.h"
|
||||
#include "play_time.h"
|
||||
#include "sprite.h"
|
||||
#include "structs/str_dungeon.h"
|
||||
|
||||
extern s32 gUnknown_202EDCC;
|
||||
extern s32 gUnknown_202EDD4;
|
||||
|
||||
extern void xxx_call_update_bg_vram(void);
|
||||
|
||||
void sub_803E668(u32 a0)
|
||||
{
|
||||
gUnknown_202EDD4++;
|
||||
nullsub_8(gGameOptionsRef->unkA);
|
||||
sub_8005180();
|
||||
nullsub_12();
|
||||
sub_8005838(NULL, 0);
|
||||
sub_80060EC();
|
||||
gUnknown_202EDCC++;
|
||||
IncrementPlayTime(gPlayTimeRef);
|
||||
sub_800CB20();
|
||||
LoadBufferedInputs();
|
||||
CopySpritesToOam();
|
||||
nullsub_13();
|
||||
sub_8005304();
|
||||
nullsub_14();
|
||||
TransferBGPaletteBuffer();
|
||||
sub_8009908();
|
||||
xxx_call_update_bg_vram();
|
||||
xxx_call_update_bg_sound_input();
|
||||
gDungeon->unk181e8.unk18213 = 0;
|
||||
sub_8011860();
|
||||
ResetSprites(FALSE);
|
||||
nullsub_10(FALSE);
|
||||
gUnknown_202EDD4--;
|
||||
}
|
||||
|
||||
void sub_803E708(s32 a0, u32 a1)
|
||||
{
|
||||
while (a0 != 0) {
|
||||
sub_803E46C(a1);
|
||||
a0--;
|
||||
}
|
||||
}
|
||||
@@ -64,7 +64,6 @@ extern s32 gUnknown_202EDC8;
|
||||
extern u8 gUnknown_203B40D;
|
||||
extern s16 gUnknown_2026E4E;
|
||||
|
||||
extern u8 sub_800E9FC(u8);
|
||||
extern void sub_800DBBC(void);
|
||||
extern void sub_803EA10(void);
|
||||
extern void sub_8042E98(void);
|
||||
|
||||
@@ -112,7 +112,7 @@ extern void sub_8072008(Entity *pokemon, Entity *r1, u32 r2, u8 r3, u32);
|
||||
extern void LevelDownTarget(Entity *pokemon, Entity *r1, u32 r2);
|
||||
extern void sub_80522F4(Entity *pokemon, Entity *r1, const u8[]);
|
||||
extern void sub_806F370(Entity *pokemon, Entity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32);
|
||||
extern void sub_8078A58(Entity *, Entity *, s16, u32);
|
||||
extern void sub_8078A58(Entity *, Entity *, s32, u32);
|
||||
extern s32 sub_8042520(Entity *);
|
||||
Entity *sub_80696FC(Entity *);
|
||||
extern void sub_80943A0(void*, s32);
|
||||
|
||||
@@ -327,7 +327,6 @@ extern void sub_8068FE0(Entity *, u32, u32);
|
||||
extern void sub_8086448(void);
|
||||
extern void sub_8042B0C(Entity *);
|
||||
extern u8 sub_806FD18(Entity *);
|
||||
extern void sub_80861D4(Entity *, u32, s32 direction);
|
||||
extern void sub_806FDF4(Entity *, Entity *, Entity **);
|
||||
extern u32 sub_80861F8(u32, Entity *, u32);
|
||||
extern s32 GetCameraXPos();
|
||||
@@ -363,7 +362,6 @@ extern void sub_806BFC0(EntityInfo *, u32);
|
||||
|
||||
extern void sub_808BBA8(Entity * );
|
||||
extern void sub_8041888(u32);
|
||||
extern void sub_80861B8(Entity *, u32, u32);
|
||||
extern void DisplayDungeonDialogue(const u8 *r0);
|
||||
|
||||
extern u32 sub_80861F8(u32, Entity *, u32);
|
||||
@@ -1259,7 +1257,7 @@ void sub_808862C(void)
|
||||
sub_8085930(DIRECTION_NORTH);
|
||||
sub_80855E4(sub_8086A3C);
|
||||
SetFacingDirection(AlakazamEntity, DIRECTION_NORTH);
|
||||
sub_80861D4(AlakazamEntity,0xd,4);
|
||||
sub_80861D4(AlakazamEntity,0xd,DIRECTION_NORTH);
|
||||
SetFacingDirection(GroudonEntity, DIRECTION_SOUTH);
|
||||
sub_8086A3C(GroudonEntity);
|
||||
sub_8085860(LeaderEntity->pos.x,LeaderEntity->pos.y -3);
|
||||
@@ -1315,7 +1313,7 @@ void sub_808875C(void)
|
||||
else {
|
||||
sub_8072008(GroudonEntity,GroudonEntity,gUnknown_80F57D2,0,0);
|
||||
SetFacingDirection(GroudonEntity, DIRECTION_SOUTH);
|
||||
sub_80861D4(GroudonEntity,0xf,0);
|
||||
sub_80861D4(GroudonEntity,0xf,DIRECTION_SOUTH);
|
||||
}
|
||||
sub_8085860(LeaderEntity->pos.x,LeaderEntity->pos.y - 3);
|
||||
CopyMonsterNametoBuffer(gUnknown_202E038, MONSTER_GROUDON);
|
||||
@@ -1375,7 +1373,7 @@ void GroudonPreFightDialogue(void)
|
||||
sub_803E708(10,0x46);
|
||||
sub_808682C();
|
||||
sub_803E708(0x3c,0x46);
|
||||
sub_80861B8(AlakazamEntity,6,4);
|
||||
sub_80861B8(AlakazamEntity,6,DIRECTION_NORTH);
|
||||
PlaySoundEffect(0x205);
|
||||
sub_8086738();
|
||||
sub_8068FE0(AlakazamEntity,0x21c,0);
|
||||
@@ -1498,7 +1496,7 @@ void SceneGroudonMovement(Entity * GroudonEntity)
|
||||
sub_803E46C(0x46);
|
||||
}
|
||||
sub_80856C8(GroudonEntity,GroudonEntity->pos.x,GroudonEntity->pos.y + 1);
|
||||
sub_80861D4(GroudonEntity,0xf,0);
|
||||
sub_80861D4(GroudonEntity,0xf,DIRECTION_SOUTH);
|
||||
sub_803E708(10,0x46);
|
||||
sub_808682C();
|
||||
sub_8085930(DIRECTION_NORTH);
|
||||
@@ -3465,7 +3463,7 @@ void sub_808B50C(void)
|
||||
sub_8041888(0);
|
||||
JirachiEntity->info->unk15C = 1;
|
||||
JirachiEntity->info->unk15E = 0;
|
||||
sub_80861B8(JirachiEntity,0xe,0);
|
||||
sub_80861B8(JirachiEntity,0xe,DIRECTION_SOUTH);
|
||||
DungeonFadeOutBGM(0x1e);
|
||||
sub_803E708(0x1e,70);
|
||||
// Fwaaaahhhh
|
||||
@@ -3506,7 +3504,7 @@ void JirachiWish(void)
|
||||
sub_8041888(0);
|
||||
JirachiEntity->info->unk15C = 1;
|
||||
JirachiEntity->info->unk15E = 0;
|
||||
sub_80861B8(JirachiEntity,0xe,0);
|
||||
sub_80861B8(JirachiEntity,0xe,DIRECTION_SOUTH);
|
||||
sub_80855E4(sub_80861A8);
|
||||
gDungeon->unk1356C = 1;
|
||||
DungeonFadeOutBGM(0x1e);
|
||||
@@ -3744,7 +3742,7 @@ void JirachiDropInEffect(Entity *jirachiEntity)
|
||||
|
||||
sub_80861F8(0x1b,jirachiEntity,0);
|
||||
sub_8086A54(jirachiEntity);
|
||||
sub_80861B8(jirachiEntity,0xe,0);
|
||||
sub_80861B8(jirachiEntity,0xe,DIRECTION_SOUTH);
|
||||
iVar1 = 0xa000;
|
||||
iVar2 = 0x200;
|
||||
PlaySoundEffect(0x1f8);
|
||||
@@ -3912,16 +3910,16 @@ void LugiaPreFightDialogue(void)
|
||||
sub_803E708(10,0x46);
|
||||
DisplayDungeonDialogue(gLugiaPreFightDialogue_4);
|
||||
PlaySoundEffect(0x1f8);
|
||||
sub_80861D4(LugiaEntity,0xd,0);
|
||||
sub_80861D4(LugiaEntity,0xd,DIRECTION_SOUTH);
|
||||
sub_803E708(0x2b,0x46);
|
||||
sub_80861B8(LugiaEntity,0,0);
|
||||
sub_80861B8(LugiaEntity,0,DIRECTION_SOUTH);
|
||||
DisplayDungeonDialogue(gLugiaPreFightDialogue_5);
|
||||
LugiaScreenFlash();
|
||||
DisplayDungeonDialogue(gLugiaPreFightDialogue_6);
|
||||
LugiaScreenFlash2();
|
||||
SetDungeonBGColorRGB(0xffffff06,0xffffff06,0xffffff06,1,0);
|
||||
DungeonStopBGM();
|
||||
sub_80861D4(LugiaEntity,7,0);
|
||||
sub_80861D4(LugiaEntity,7,DIRECTION_SOUTH);
|
||||
DisplayDungeonDialogue(gLugiaPreFightDialogue_7);
|
||||
LugiaScreenFlash();
|
||||
SetupBossFightHP(LugiaEntity,800,MUS_BATTLE_WITH_RAYQUAZA);
|
||||
@@ -4308,7 +4306,7 @@ void CelebiJoinDialogue(void)
|
||||
}
|
||||
DungeonStartNewBGM(MUS_FRIEND_AREA_HEALING_FOREST);
|
||||
PlaySoundEffect(0x1c7);
|
||||
sub_80861D4(CelebiEntity,0xd,0);
|
||||
sub_80861D4(CelebiEntity,0xd,DIRECTION_SOUTH);
|
||||
sub_803E708(0x37,0x46);
|
||||
PlaySoundEffect(0x1d5);
|
||||
sub_803E708(0x1a,0x46);
|
||||
@@ -4321,7 +4319,7 @@ void CelebiJoinDialogue(void)
|
||||
DisplayDungeonDialogue(gCelebiJoinDialogue_5);
|
||||
sub_803E708(10,0x46);
|
||||
PlaySoundEffect(0x1c7);
|
||||
sub_80861D4(CelebiEntity,0xd,0);
|
||||
sub_80861D4(CelebiEntity,0xd,DIRECTION_SOUTH);
|
||||
sub_803E708(0x37,0x46);
|
||||
PlaySoundEffect(0x1d5);
|
||||
sub_803E708(0x1a,0x46);
|
||||
|
||||
@@ -2445,11 +2445,11 @@ void sub_805E738(Entity *a0)
|
||||
// What???
|
||||
for (i = 0; i < 1; i++) {
|
||||
bool8 r9 = FALSE;
|
||||
u32 r5 = entityInfo->action.direction;
|
||||
r5++;
|
||||
for (j = 1; j < 8; j++, r5++) {
|
||||
r5 &= 7;
|
||||
tile = GetTile(a0->pos.x + gAdjacentTileOffsets[r5].x, a0->pos.y + gAdjacentTileOffsets[r5].y);
|
||||
u32 direction = entityInfo->action.direction;
|
||||
direction++;
|
||||
for (j = 1; j < 8; j++, direction++) {
|
||||
direction &= DIRECTION_MASK;
|
||||
tile = GetTile(a0->pos.x + gAdjacentTileOffsets[direction].x, a0->pos.y + gAdjacentTileOffsets[direction].y);
|
||||
if (tile->monster != NULL && GetEntityType(tile->monster) == ENTITY_MONSTER) {
|
||||
EntityInfo *tileMonsterInfo = tile->monster->info;
|
||||
if (CanSeeTarget(a0, tile->monster)) {
|
||||
@@ -2461,8 +2461,8 @@ void sub_805E738(Entity *a0)
|
||||
}
|
||||
}
|
||||
if (r9) {
|
||||
a0->info->action.direction = r5 & 7;
|
||||
sub_806CDD4(a0, sub_806CEBC(a0), r5);
|
||||
a0->info->action.direction = direction & DIRECTION_MASK;
|
||||
sub_806CDD4(a0, sub_806CEBC(a0), direction);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
64
src/code_8069D4C.c
Normal file
64
src/code_8069D4C.c
Normal file
@@ -0,0 +1,64 @@
|
||||
#include "global.h"
|
||||
#include "pokemon_mid.h"
|
||||
#include "dungeon_util.h"
|
||||
|
||||
struct unkStruct_8069D4C
|
||||
{
|
||||
s16 id;
|
||||
Position pos;
|
||||
s16 HP;
|
||||
u8 atk;
|
||||
u8 spAtk;
|
||||
u8 def;
|
||||
u8 spDef;
|
||||
u16 level;
|
||||
u32 exp;
|
||||
u32 belly;
|
||||
u32 maxBelly;
|
||||
Item heldItem;
|
||||
Move moves[MAX_MON_MOVES];
|
||||
u32 unk40; // strugglemoveFlags?
|
||||
HiddenPower hiddenPower;
|
||||
};
|
||||
|
||||
u32 sub_8069D18(Position *pos,Entity *entity)
|
||||
{
|
||||
EntityInfo *info;
|
||||
|
||||
info = entity->info;
|
||||
|
||||
pos->x = (entity->pos).x + gAdjacentTileOffsets[(info->action).direction].x;
|
||||
pos->y = (entity->pos).y + gAdjacentTileOffsets[(info->action).direction].y;
|
||||
return info->action.direction & 1;
|
||||
}
|
||||
|
||||
void sub_8069D4C(struct unkStruct_8069D4C *r0, Entity *target)
|
||||
{
|
||||
EntityInfo *info;
|
||||
LevelData leveldata;
|
||||
|
||||
info = target->info;
|
||||
|
||||
r0->id = info->id;
|
||||
r0->pos = target->pos;
|
||||
|
||||
if(info->bossFlag)
|
||||
r0->HP = info->originalHP;
|
||||
else
|
||||
r0->HP = info->maxHPStat;
|
||||
|
||||
r0->level = info->level;
|
||||
|
||||
|
||||
GetPokemonLevelData(&leveldata, info->id, info->level);
|
||||
r0->exp = leveldata.expRequired;
|
||||
r0->atk = info->atk;
|
||||
r0->spAtk = info->spAtk;
|
||||
r0->def = info->def;
|
||||
r0->spDef = info->spDef;
|
||||
r0->heldItem = info->heldItem;
|
||||
memcpy(r0->moves, info->moves, sizeof(r0->moves) + sizeof(r0->unk40));
|
||||
r0->belly = info->belly;
|
||||
r0->maxBelly = info->maxBelly;
|
||||
r0->hiddenPower = info->hiddenPower;
|
||||
}
|
||||
@@ -89,22 +89,22 @@ void sub_806CD90(void)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_806CDD4(Entity *entity, u8 a1, u32 a2)
|
||||
void sub_806CDD4(Entity *entity, u8 a1, u32 direction)
|
||||
{
|
||||
if (GetEntityType(entity) == ENTITY_MONSTER) {
|
||||
entity->unk6A = a1;
|
||||
|
||||
if (a2 < NUM_DIRECTIONS)
|
||||
entity->direction = a2;
|
||||
if (direction < NUM_DIRECTIONS)
|
||||
entity->direction = direction;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_806CDFC(Entity *entity, u8 a1, u32 a2)
|
||||
void sub_806CDFC(Entity *entity, u8 a1, u32 direction)
|
||||
{
|
||||
if (GetEntityType(entity) == ENTITY_MONSTER) {
|
||||
if (entity->unk6B == a1 && entity->direction2 == a2)
|
||||
if (entity->unk6B == a1 && entity->direction2 == direction)
|
||||
return;
|
||||
sub_806CDD4(entity, a1, a2);
|
||||
sub_806CDD4(entity, a1, direction);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,326 @@
|
||||
#include "global.h"
|
||||
#include "constants/dungeon_action.h"
|
||||
#include "code_805D8C8.h"
|
||||
#include "code_806CD90.h"
|
||||
#include "code_8092334.h"
|
||||
#include "dungeon_map_access.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "structs/dungeon_entity.h"
|
||||
#include "structs/str_dungeon.h"
|
||||
#include "structs/str_position.h"
|
||||
|
||||
extern void sub_8082FE0(unkStruct_8094924 *, void *, u32 size);
|
||||
extern void sub_8082FA8(unkStruct_8094924 *, void *, u32);
|
||||
|
||||
u16 sub_8083158(unkStruct_8094924 *param_1);
|
||||
s16 sub_8083170(unkStruct_8094924 *param_1);
|
||||
u8 sub_8083188(unkStruct_8094924 *param_1);
|
||||
u32 sub_80831A0(unkStruct_8094924 *param_1);
|
||||
bool8 sub_80831DC(unkStruct_8094924 *param_1);
|
||||
void sub_8082FE0(unkStruct_8094924 *param_1, u8 *param_2, s32 size);
|
||||
void sub_80831F8(unkStruct_8094924 *param_1,Position *param_2);
|
||||
|
||||
void AddPokemonDungeonSprite(u32, s16, Position *, u32);
|
||||
|
||||
void sub_8082B40(void)
|
||||
{
|
||||
EntityInfo *info;
|
||||
Entity *entity;
|
||||
int index;
|
||||
Position pos;
|
||||
|
||||
for(index = 0; index < DUNGEON_MAX_POKEMON; index++)
|
||||
{
|
||||
entity = gDungeon->allPokemon[index];
|
||||
if (EntityExists(entity)) {
|
||||
info = entity->info;
|
||||
entity->sprite = sub_80687D0(info->apparentID);
|
||||
sub_806CCB4(entity,sub_806CEBC(entity));
|
||||
pos = entity->pos;
|
||||
AddPokemonDungeonSprite(info->unk98,info->apparentID,&pos,3);
|
||||
entity->room = GetTileSafe(entity->pos.x,entity->pos.y)->room;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
s16 sub_8082BC0(unkStruct_8094924 *param_1)
|
||||
{
|
||||
s16 temp[2];
|
||||
|
||||
temp[0] = 0;
|
||||
|
||||
sub_8082FE0(param_1, (u8 *)temp, 2);
|
||||
return temp[0];
|
||||
}
|
||||
|
||||
|
||||
u8 sub_8082BE0(unkStruct_8094924 *param_1)
|
||||
{
|
||||
u8 temp[4];
|
||||
|
||||
temp[0] = 0;
|
||||
|
||||
sub_8082FE0(param_1, temp, 1);
|
||||
return temp[0];
|
||||
}
|
||||
|
||||
|
||||
u8 sub_8082BFC(unkStruct_8094924 *param_1)
|
||||
{
|
||||
u8 temp[4];
|
||||
|
||||
temp[0] = 0;
|
||||
|
||||
sub_8082FE0(param_1, temp, 1);
|
||||
return temp[0];
|
||||
}
|
||||
|
||||
u8 sub_8082C18(unkStruct_8094924 *param_1)
|
||||
{
|
||||
u8 temp[4];
|
||||
|
||||
temp[0] = 0;
|
||||
|
||||
sub_8082FE0(param_1, temp, 1);
|
||||
return temp[0];
|
||||
}
|
||||
|
||||
u8 sub_8082C34(unkStruct_8094924 *param_1)
|
||||
{
|
||||
u8 temp[4];
|
||||
|
||||
temp[0] = 0;
|
||||
|
||||
sub_8082FE0(param_1, temp, 1);
|
||||
return temp[0];
|
||||
}
|
||||
|
||||
u8 sub_8082C50(unkStruct_8094924 *param_1)
|
||||
{
|
||||
u8 temp[4];
|
||||
|
||||
temp[0] = 0;
|
||||
|
||||
sub_8082FE0(param_1, temp, 1);
|
||||
return temp[0];
|
||||
}
|
||||
|
||||
u32 sub_8082C6C(unkStruct_8094924 *param_1)
|
||||
{
|
||||
u32 temp;
|
||||
|
||||
temp = 0;
|
||||
|
||||
sub_8082FE0(param_1, (u8 *)&temp, 4);
|
||||
return temp;
|
||||
}
|
||||
|
||||
u8 sub_8082C84(unkStruct_8094924 *param_1)
|
||||
{
|
||||
u8 temp[4];
|
||||
|
||||
temp[0] = 0;
|
||||
|
||||
sub_8082FE0(param_1, temp, 1);
|
||||
return temp[0];
|
||||
}
|
||||
|
||||
u8 sub_8082CA0(unkStruct_8094924 *param_1)
|
||||
{
|
||||
u8 temp[4];
|
||||
|
||||
temp[0] = 0;
|
||||
|
||||
sub_8082FE0(param_1, temp, 1);
|
||||
return temp[0];
|
||||
}
|
||||
|
||||
void sub_8082CBC(unkStruct_8094924 *param_1, ActionContainer *action)
|
||||
{
|
||||
action->action = ACTION_NOTHING;
|
||||
sub_8082FE0(param_1, &action->direction, 1);
|
||||
action->fill3 = 7;
|
||||
sub_80831F8(param_1, &action->itemTargetPosition);
|
||||
}
|
||||
|
||||
void sub_8082CE4(unkStruct_8094924 *param_1, AITarget *aitarget)
|
||||
{
|
||||
sub_8082FE0(param_1, (u8 *)&aitarget->aiObjective, 1);
|
||||
aitarget->aiNotNextToTarget = sub_80831DC(param_1);
|
||||
aitarget->aiTargetingEnemy = sub_80831DC(param_1);
|
||||
aitarget->aiTurningAround = sub_80831DC(param_1);
|
||||
aitarget->aiTargetSpawnGenID = sub_8083158(param_1);
|
||||
aitarget->aiTarget = NULL;
|
||||
aitarget->unkC = 0;
|
||||
sub_80831F8(param_1, &aitarget->aiTargetPos);
|
||||
}
|
||||
|
||||
void sub_8082D28(unkStruct_8094924 *param_1, u8 *param_2)
|
||||
{
|
||||
sub_8082FE0(param_1, param_2, 3);
|
||||
}
|
||||
|
||||
void sub_8082D34(unkStruct_8094924 *param_1, Sleep *sleep)
|
||||
{
|
||||
sub_8082FE0(param_1, &sleep->sleep, 1);
|
||||
sleep->sleepTurns = sub_8083188(param_1);
|
||||
}
|
||||
|
||||
void sub_8082D50(unkStruct_8094924 *param_1, NonVolatile *nonvoltaile)
|
||||
{
|
||||
sub_8082FE0(param_1, &nonvoltaile->nonVolatileStatus, 1);
|
||||
nonvoltaile->nonVolatileStatusTurns = sub_8083188(param_1);
|
||||
nonvoltaile->nonVolatileStatusDamageCountdown = sub_8083188(param_1);
|
||||
nonvoltaile->unk4 = sub_8083188(param_1);
|
||||
}
|
||||
|
||||
void sub_8082D7C(unkStruct_8094924 *param_1, Immobilize *immobilze)
|
||||
{
|
||||
sub_8082FE0(param_1, &immobilze->immobilizeStatus, 1);
|
||||
immobilze->immobilizeStatusTurns = sub_8083188(param_1);
|
||||
immobilze->immobilizeStatusDamageCountdown = sub_8083188(param_1);
|
||||
immobilze->unk4 = sub_80831A0(param_1);
|
||||
}
|
||||
|
||||
void sub_8082DA8(unkStruct_8094924 *param_1, Volatile *volatileStatus)
|
||||
{
|
||||
sub_8082FE0(param_1, &volatileStatus->volatileStatus, 1);
|
||||
volatileStatus->volatileStatusTurns = sub_8083188(param_1);
|
||||
}
|
||||
|
||||
void sub_8082DC4(unkStruct_8094924 *param_1, Charging *charging)
|
||||
{
|
||||
sub_8082FE0(param_1, &charging->chargingStatus, 1);
|
||||
charging->chargingStatusTurns = sub_8083188(param_1);
|
||||
charging->chargingStatusMoveIndex = sub_8083188(param_1);
|
||||
}
|
||||
|
||||
void sub_8082DE8(unkStruct_8094924 *param_1, Protection *protect)
|
||||
{
|
||||
sub_8082FE0(param_1, &protect->protectionStatus, 1);
|
||||
protect->protectionStatusTurns = sub_8083188(param_1);
|
||||
}
|
||||
|
||||
void sub_8082E04(unkStruct_8094924 *param_1, Waiting *waiting)
|
||||
{
|
||||
sub_8082FE0(param_1, &waiting->waitingStatus, 1);
|
||||
waiting->enemyDecoy = sub_80831DC(param_1);
|
||||
waiting->unkCA = sub_80831DC(param_1);
|
||||
waiting->waitingStatusTurns = sub_8083188(param_1);
|
||||
waiting->curseDamageCountdown = sub_8083188(param_1);
|
||||
}
|
||||
|
||||
void sub_8082E38(unkStruct_8094924 *param_1, Linked *linked)
|
||||
{
|
||||
sub_8082FE0(param_1, &linked->linkedStatus, 1);
|
||||
linked->unkD4 = sub_80831A0(param_1);
|
||||
linked->unkD8 = sub_8083188(param_1);
|
||||
linked->linkedStatusTurns = sub_8083188(param_1);
|
||||
linked->linkedStatusDamageCountdown = sub_8083188(param_1);
|
||||
}
|
||||
|
||||
void sub_8082E6C(unkStruct_8094924 *param_1, MoveStatus *moveStatus)
|
||||
{
|
||||
sub_8082FE0(param_1, &moveStatus->moveStatus, 1);
|
||||
moveStatus->moveStatusTurns = sub_8083188(param_1);
|
||||
}
|
||||
|
||||
void sub_8082E88(unkStruct_8094924 *param_1, u8 *param_2, s32 size)
|
||||
{
|
||||
sub_8082FE0(param_1, param_2, 1);
|
||||
}
|
||||
|
||||
void sub_8082E94(unkStruct_8094924 *param_1, TransformStatus *transform)
|
||||
{
|
||||
sub_8082FE0(param_1, &transform->transformStatus, 1);
|
||||
transform->transformStatusTurns = sub_8083188(param_1);
|
||||
}
|
||||
|
||||
void sub_8082EB0(unkStruct_8094924 *param_1, EyesightStatus *eyesight)
|
||||
{
|
||||
sub_8082FE0(param_1, &eyesight->eyesightStatus, 1);
|
||||
eyesight->eyesightStatusTurns = sub_8083188(param_1);
|
||||
}
|
||||
|
||||
void sub_8082ECC(unkStruct_8094924 *param_1, Muzzled *muzzle)
|
||||
{
|
||||
sub_8082FE0(param_1, (u8 *)&muzzle->muzzled, 1);
|
||||
muzzle->muzzledTurns = sub_8083188(param_1);
|
||||
}
|
||||
|
||||
void RestoreDungeonPokemonMove(unkStruct_8094924 *param_1, Move *move)
|
||||
{
|
||||
move->moveFlags = sub_8083188(param_1);
|
||||
move->moveFlags2 = sub_8083188(param_1);
|
||||
sub_8082FE0(param_1, (u8 *)&move->id, 2);
|
||||
move->PP = sub_8083188(param_1);
|
||||
move->ginseng = sub_8083188(param_1);
|
||||
}
|
||||
|
||||
void sub_8082F1C(unkStruct_8094924 *param_1,Move *moves)
|
||||
{
|
||||
s32 index;
|
||||
Move *move;
|
||||
for(index = 0; index < MAX_MON_MOVES; index++)
|
||||
{
|
||||
move = &moves[index];
|
||||
RestoreDungeonPokemonMove(param_1, move);
|
||||
}
|
||||
*(u8 *)(moves + 4) = sub_8083188(param_1); // TODO: struggleMoveFlags again
|
||||
}
|
||||
|
||||
|
||||
void sub_8082F48(unkStruct_8094924 *param_1, u16 *r1)
|
||||
{
|
||||
r1[0] = sub_8083170(param_1);
|
||||
r1[1] = sub_8083170(param_1);
|
||||
}
|
||||
|
||||
void sub_8082F64(unkStruct_8094924 *param_1, JoinedAt *joined)
|
||||
{
|
||||
joined->joinedAt = sub_8083188(param_1);
|
||||
joined->unk1 = sub_8083188(param_1);
|
||||
}
|
||||
|
||||
void sub_8082F80(unkStruct_8094924 *param_1, HiddenPower *hidden)
|
||||
{
|
||||
hidden->hiddenPowerBasePower = sub_8083170(param_1);
|
||||
hidden->hiddenPowerType = sub_8082BFC(param_1);
|
||||
}
|
||||
|
||||
void sub_8082F9C(unkStruct_8094924 *param_1, u8 *r1, u32 r2)
|
||||
{
|
||||
param_1->unk0 = r1;
|
||||
param_1->unk8 = 0;
|
||||
param_1->unk4 = r1 + r2;
|
||||
}
|
||||
|
||||
void sub_8082FA8(unkStruct_8094924 *param_1, u8 *param_2, s32 size)
|
||||
{
|
||||
while (size != 0) {
|
||||
*(param_1->unk0) = *param_2;
|
||||
param_1->unk0++;
|
||||
param_2++;
|
||||
size--;
|
||||
param_1->unk8++;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8082FD4(unkStruct_8094924 *param_1, u8 *r1, u32 r2)
|
||||
{
|
||||
param_1->unk0 = r1;
|
||||
param_1->unk8 = 0;
|
||||
param_1->unk4 = r1 + r2;
|
||||
}
|
||||
|
||||
void sub_8082FE0(unkStruct_8094924 *param_1, u8 *param_2, s32 size)
|
||||
{
|
||||
while (size != 0) {
|
||||
*param_2 = *(param_1->unk0);
|
||||
param_1->unk0++;
|
||||
param_2++;
|
||||
size--;
|
||||
param_1->unk8++;
|
||||
}
|
||||
}
|
||||
|
||||
void nullsub_98(unkStruct_8094924 *param_1)
|
||||
{}
|
||||
@@ -26,7 +343,7 @@ void sub_8083030(unkStruct_8094924 *param_1, u16 param_2)
|
||||
u16 uStack_8;
|
||||
|
||||
uStack_8 = param_2;
|
||||
sub_8082FA8(param_1,&uStack_8,2);
|
||||
sub_8082FA8(param_1,(u8 *)&uStack_8,2);
|
||||
}
|
||||
|
||||
void sub_8083048(unkStruct_8094924 *param_1, u32 param_2)
|
||||
@@ -34,7 +351,7 @@ void sub_8083048(unkStruct_8094924 *param_1, u32 param_2)
|
||||
u16 uStack_8;
|
||||
|
||||
uStack_8 = param_2;
|
||||
sub_8082FA8(param_1,&uStack_8,2);
|
||||
sub_8082FA8(param_1,(u8 *)&uStack_8,2);
|
||||
}
|
||||
|
||||
void sub_8083060(unkStruct_8094924 *param_1, u32 param_2)
|
||||
@@ -50,7 +367,7 @@ void sub_8083078(unkStruct_8094924 *param_1, u32 param_2)
|
||||
u32 uStack_8;
|
||||
|
||||
uStack_8 = param_2;
|
||||
sub_8082FA8(param_1,&uStack_8,4);
|
||||
sub_8082FA8(param_1,(u8 *)&uStack_8,4);
|
||||
}
|
||||
|
||||
void sub_808308C(unkStruct_8094924 *param_1, u32 param_2)
|
||||
@@ -58,7 +375,7 @@ void sub_808308C(unkStruct_8094924 *param_1, u32 param_2)
|
||||
u32 uStack_8;
|
||||
|
||||
uStack_8 = param_2;
|
||||
sub_8082FA8(param_1,&uStack_8,4);
|
||||
sub_8082FA8(param_1,(u8 *)&uStack_8,4);
|
||||
}
|
||||
|
||||
void sub_80830A0(unkStruct_8094924 *param_1, u32 param_2)
|
||||
@@ -66,7 +383,7 @@ void sub_80830A0(unkStruct_8094924 *param_1, u32 param_2)
|
||||
u32 uStack_8;
|
||||
|
||||
uStack_8 = param_2;
|
||||
sub_8082FA8(param_1,&uStack_8,4);
|
||||
sub_8082FA8(param_1,(u8 *)&uStack_8,4);
|
||||
}
|
||||
|
||||
void sub_80830B4(unkStruct_8094924 *param_1, u8 param_2)
|
||||
@@ -79,34 +396,34 @@ void sub_80830B4(unkStruct_8094924 *param_1, u8 param_2)
|
||||
|
||||
void SavePosition(unkStruct_8094924 *param_1, Position *param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, ¶m_2->x, 1);
|
||||
sub_8082FA8(param_1, ¶m_2->y, 1);
|
||||
sub_8082FA8(param_1, (u8 *)¶m_2->x, 1);
|
||||
sub_8082FA8(param_1, (u8 *)¶m_2->y, 1);
|
||||
}
|
||||
|
||||
void sub_80830F8(unkStruct_8094924 *param_1, u32 *param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, ¶m_2[0], 1);
|
||||
sub_8082FA8(param_1, ¶m_2[1], 1);
|
||||
sub_8082FA8(param_1, ¶m_2[2], 1);
|
||||
sub_8082FA8(param_1, ¶m_2[3], 1);
|
||||
sub_8082FA8(param_1, (u8 *)¶m_2[0], 1);
|
||||
sub_8082FA8(param_1, (u8 *)¶m_2[1], 1);
|
||||
sub_8082FA8(param_1, (u8 *)¶m_2[2], 1);
|
||||
sub_8082FA8(param_1, (u8 *)¶m_2[3], 1);
|
||||
}
|
||||
|
||||
void sub_808312C(unkStruct_8094924 *param_1, u16 *param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, ¶m_2[0], 1);
|
||||
sub_8082FA8(param_1, ¶m_2[1], 1);
|
||||
sub_8082FA8(param_1, (u8 *)¶m_2[0], 1);
|
||||
sub_8082FA8(param_1, (u8 *)¶m_2[1], 1);
|
||||
}
|
||||
|
||||
void SaveSpeedCounters(unkStruct_8094924 *param_1, u32 *speedCounters, u32 numCounters)
|
||||
{
|
||||
sub_8082FA8(param_1, speedCounters, numCounters);
|
||||
sub_8082FA8(param_1, (u8 *)speedCounters, numCounters);
|
||||
}
|
||||
|
||||
u16 sub_8083158(unkStruct_8094924 *param_1)
|
||||
{
|
||||
u16 local_8;
|
||||
|
||||
sub_8082FE0(param_1,&local_8,2);
|
||||
sub_8082FE0(param_1,(u8 *)&local_8,2);
|
||||
return local_8;
|
||||
}
|
||||
|
||||
@@ -114,7 +431,7 @@ s16 sub_8083170(unkStruct_8094924 *param_1)
|
||||
{
|
||||
s16 local_8;
|
||||
|
||||
sub_8082FE0(param_1,&local_8,2);
|
||||
sub_8082FE0(param_1,(u8 *)&local_8,2);
|
||||
return local_8;
|
||||
}
|
||||
|
||||
@@ -130,7 +447,7 @@ u32 sub_80831A0(unkStruct_8094924 *param_1)
|
||||
{
|
||||
u32 local_8;
|
||||
|
||||
sub_8082FE0(param_1,&local_8,4);
|
||||
sub_8082FE0(param_1,(u8 *)&local_8,4);
|
||||
return local_8;
|
||||
}
|
||||
|
||||
@@ -138,7 +455,7 @@ u32 sub_80831B4(unkStruct_8094924 *param_1)
|
||||
{
|
||||
u32 local_8;
|
||||
|
||||
sub_8082FE0(param_1,&local_8,4);
|
||||
sub_8082FE0(param_1,(u8 *)&local_8,4);
|
||||
return local_8;
|
||||
}
|
||||
|
||||
@@ -146,7 +463,7 @@ u32 sub_80831C8(unkStruct_8094924 *param_1)
|
||||
{
|
||||
u32 local_8;
|
||||
|
||||
sub_8082FE0(param_1,&local_8,4);
|
||||
sub_8082FE0(param_1,(u8 *)&local_8,4);
|
||||
return local_8;
|
||||
}
|
||||
|
||||
@@ -158,12 +475,12 @@ bool8 sub_80831DC(unkStruct_8094924 *param_1)
|
||||
return local_8 != 0;
|
||||
}
|
||||
|
||||
void sub_80831F8(unkStruct_8094924 *param_1,u16 *param_2)
|
||||
void sub_80831F8(unkStruct_8094924 *param_1,Position *param_2)
|
||||
{
|
||||
param_2[0] = 0;
|
||||
param_2[1] = 0;
|
||||
sub_8082FE0(param_1,¶m_2[0],1);
|
||||
sub_8082FE0(param_1,¶m_2[1],1);
|
||||
param_2->x = 0;
|
||||
param_2->y = 0;
|
||||
sub_8082FE0(param_1,(u8 *)¶m_2->x,1);
|
||||
sub_8082FE0(param_1,(u8 *)¶m_2->y,1);
|
||||
}
|
||||
|
||||
|
||||
@@ -173,22 +490,22 @@ void sub_8083220(unkStruct_8094924 *param_1,u32 *param_2)
|
||||
param_2[1] = 0;
|
||||
param_2[2] = 0;
|
||||
param_2[3] = 0;
|
||||
sub_8082FE0(param_1,¶m_2[0],1);
|
||||
sub_8082FE0(param_1,¶m_2[1],1);
|
||||
sub_8082FE0(param_1,¶m_2[2],1);
|
||||
sub_8082FE0(param_1,¶m_2[3],1);
|
||||
sub_8082FE0(param_1,(u8 *)¶m_2[0],1);
|
||||
sub_8082FE0(param_1,(u8 *)¶m_2[1],1);
|
||||
sub_8082FE0(param_1,(u8 *)¶m_2[2],1);
|
||||
sub_8082FE0(param_1,(u8 *)¶m_2[3],1);
|
||||
}
|
||||
|
||||
void sub_8083260(unkStruct_8094924 *param_1,u16 *param_2)
|
||||
{
|
||||
param_2[0] = 0;
|
||||
param_2[1] = 0;
|
||||
sub_8082FE0(param_1,¶m_2[0],1);
|
||||
sub_8082FE0(param_1,¶m_2[1],1);
|
||||
sub_8082FE0(param_1,(u8 *)¶m_2[0],1);
|
||||
sub_8082FE0(param_1,(u8 *)¶m_2[1],1);
|
||||
}
|
||||
|
||||
void sub_8083288(unkStruct_8094924 *r0, u16 *r1, u32 size)
|
||||
{
|
||||
sub_8082FE0(r0, r1, size);
|
||||
sub_8082FE0(r0, (u8 *)r1, size);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
#include "global.h"
|
||||
#include "constants/weather.h"
|
||||
#include "structs/str_dungeon.h"
|
||||
#include "dungeon_music.h"
|
||||
#include "exclusive_pokemon.h"
|
||||
#include "weather.h"
|
||||
|
||||
extern void SkarmoryPreFightDialogue();
|
||||
extern void SkarmoryReFightDialogue();
|
||||
@@ -143,35 +145,66 @@ extern void sub_808C9C4(void);
|
||||
extern void sub_808CB5C(void);
|
||||
extern void sub_808CBB0(void);
|
||||
extern void sub_808CD44(void);
|
||||
extern void sub_8040A84(void);
|
||||
|
||||
extern void sub_807E5E4(u32);
|
||||
struct unkData_8107234
|
||||
{
|
||||
u8 unk0[8];
|
||||
};
|
||||
|
||||
void sub_8084854(u8 *param_1)
|
||||
extern struct unkData_8107234 gUnknown_8107234[];
|
||||
|
||||
void sub_8084854(struct unkData_8107234 *);
|
||||
|
||||
|
||||
void sub_80847D4(void)
|
||||
{
|
||||
u32 bossBattleIndex;
|
||||
s32 index;
|
||||
|
||||
gDungeon->unk3A0D = 0;
|
||||
gDungeon->unk1356C = 0;
|
||||
sub_8040A84();
|
||||
for(index = 0; index < 0x3e7 && gUnknown_8107234[index].unk0[0] != 0; index++) {
|
||||
bossBattleIndex = gDungeon->bossBattleIndex;
|
||||
if (bossBattleIndex - 0x1c < 0x16) {
|
||||
bossBattleIndex = 0x1b;
|
||||
}
|
||||
if (bossBattleIndex == gUnknown_8107234[index].unk0[0])
|
||||
{
|
||||
sub_8084854(&gUnknown_8107234[index]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
sub_8097FF8();
|
||||
}
|
||||
|
||||
void sub_8084854(struct unkData_8107234 *param_1)
|
||||
{
|
||||
if (gDungeon->unk678 != 0) {
|
||||
gDungeon->unk3A0D = param_1[5];
|
||||
gDungeon->unk3A0D = param_1->unk0[5];
|
||||
}
|
||||
else
|
||||
{
|
||||
if (sub_8098100(param_1[4]) != 0) {
|
||||
gDungeon->unk3A0D = param_1[5];
|
||||
if (sub_8098100(param_1->unk0[4]) != 0) {
|
||||
gDungeon->unk3A0D = param_1->unk0[5];
|
||||
}
|
||||
else
|
||||
{
|
||||
if (sub_8098100(param_1[2]) != 0) {
|
||||
gDungeon->unk3A0D = param_1[3];
|
||||
if (sub_8098100(param_1->unk0[2]) != 0) {
|
||||
gDungeon->unk3A0D = param_1->unk0[3];
|
||||
}
|
||||
else
|
||||
{
|
||||
gDungeon->unk3A0D = param_1[1];
|
||||
if (param_1[2] != 0x40) {
|
||||
sub_8097FA8(param_1[2]);
|
||||
gDungeon->unk3A0D = param_1->unk0[1];
|
||||
if (param_1->unk0[2] != 0x40) {
|
||||
sub_8097FA8(param_1->unk0[2]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
gDungeon->unk675 = 1;
|
||||
sub_807E5E4(0);
|
||||
sub_807E5E4(WEATHER_CLEAR);
|
||||
}
|
||||
|
||||
u32 sub_80848EC(void)
|
||||
|
||||
@@ -1,9 +1,141 @@
|
||||
#include "global.h"
|
||||
#include "code_8085E98.h"
|
||||
#include "code_800E9A8.h"
|
||||
#include "code_803E46C.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "items.h"
|
||||
|
||||
#include "structs/str_dungeon.h"
|
||||
|
||||
struct unkStruct_80420E8
|
||||
{
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
u32 unk8;
|
||||
};
|
||||
extern const struct unkStruct_80420E8 gUnknown_8107374;
|
||||
|
||||
typedef struct unkStruct_80416E0
|
||||
{
|
||||
s32 unk0;
|
||||
s32 unk4;
|
||||
s32 unk8;
|
||||
u16 x;
|
||||
u16 y;
|
||||
u16 unk10;
|
||||
u16 unk12;
|
||||
s32 unk14;
|
||||
u32 unk18;
|
||||
} unkStruct_80416E0;
|
||||
|
||||
extern u32 sub_800E890(unkStruct_80416E0 *);
|
||||
void sub_800EF64(void);
|
||||
void sub_800EE5C(s32);
|
||||
void sub_8085F44(s32);
|
||||
void sub_800E90C(Position *);
|
||||
void sub_8088EE8(void);
|
||||
void sub_8088848(void);
|
||||
void sub_808A718(void);
|
||||
|
||||
|
||||
void sub_8085E98(void)
|
||||
{
|
||||
gDungeon->unk181e8.unk18215 = 0;
|
||||
}
|
||||
|
||||
void sub_8085EB0(void)
|
||||
{
|
||||
gDungeon->unk181e8.unk18215 = 1;
|
||||
}
|
||||
|
||||
u32 sub_8085EC8(s16 param_1,u32 param_2,u32 param_3,Position *param_4,bool32 param_5)
|
||||
{
|
||||
u32 uVar1;
|
||||
unkStruct_80416E0 local_40;
|
||||
struct unkStruct_80420E8 local;
|
||||
|
||||
bool8 param_5_bool8;
|
||||
s32 param_1_s32 = param_1;
|
||||
|
||||
|
||||
param_5_bool8 = param_5;
|
||||
|
||||
sub_800EE5C(param_1_s32);
|
||||
sub_800EF64();
|
||||
sub_803E46C(0x46);
|
||||
local_40.unk0 = param_1;
|
||||
local_40.unk4 = param_2;
|
||||
local_40.unk8 = param_3;
|
||||
local_40.x = param_4->x;
|
||||
local_40.y = param_4->y;
|
||||
local_40.unk10 = 0;
|
||||
local_40.unk12 = 0;
|
||||
local_40.unk18 = 0xffff;
|
||||
local = gUnknown_8107374;
|
||||
|
||||
|
||||
uVar1 = sub_800E890(&local_40);
|
||||
if (param_5_bool8) {
|
||||
sub_8085F44(uVar1);
|
||||
uVar1 = -1;
|
||||
}
|
||||
return uVar1;
|
||||
}
|
||||
|
||||
void sub_8085F44(s32 param_1)
|
||||
{
|
||||
while (sub_800E9A8(param_1)) {
|
||||
sub_800E90C(&gDungeon->unk181e8.cameraPixelPos);
|
||||
sub_803E46C(0x46);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8085F78(void)
|
||||
{
|
||||
switch(gDungeon->unk3A0D) {
|
||||
case 0x12:
|
||||
case 0x13:
|
||||
case 0x14:
|
||||
sub_8088848();
|
||||
break;
|
||||
case 0x15:
|
||||
sub_8088EE8();
|
||||
break;
|
||||
case 0x29:
|
||||
case 0x2A:
|
||||
sub_808A718();
|
||||
break;
|
||||
|
||||
case 0:
|
||||
case 0x3C:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
bool8 sub_80860A8(u8 id)
|
||||
{
|
||||
|
||||
Item *item;
|
||||
EntityInfo *info;
|
||||
Entity *entity;
|
||||
int index;
|
||||
|
||||
|
||||
for(index = 0; index < INVENTORY_SIZE; index++)
|
||||
{
|
||||
item = &gTeamInventoryRef->teamItems[index];
|
||||
if((item->flags & 1) != 0)
|
||||
{
|
||||
if((item->id) == id) return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
for(index = 0; index < MAX_TEAM_MEMBERS; index++)
|
||||
{
|
||||
entity = gDungeon->teamPokemon[index];
|
||||
if (((EntityExists(entity)) && (info = entity->info, ((info->heldItem).flags & 1))) && ((info->heldItem).id == id)) return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -1,9 +1,138 @@
|
||||
#include "global.h"
|
||||
#include "constants/direction.h"
|
||||
#include "code_80861A8.h"
|
||||
|
||||
#include "code_803E668.h"
|
||||
#include "code_806CD90.h"
|
||||
#include "dungeon_music.h"
|
||||
|
||||
typedef struct unkStruct_80416E0
|
||||
{
|
||||
s32 unk0;
|
||||
s32 unk4;
|
||||
s32 unk8;
|
||||
u16 x;
|
||||
u16 y;
|
||||
u16 unk10;
|
||||
u16 unk12;
|
||||
s32 unk14;
|
||||
u32 unk18;
|
||||
} unkStruct_80416E0;
|
||||
extern s32 sub_800E890(unkStruct_80416E0 *);
|
||||
|
||||
struct unkStruct_8107380
|
||||
{
|
||||
u8 unk0[12];
|
||||
};
|
||||
extern struct unkStruct_8107380 gUnknown_8107380;
|
||||
|
||||
extern const u8 *gUnknown_810665C[];
|
||||
extern const u8 *gUnknown_810668C[];
|
||||
extern const u8 *gUnknown_81066D4[];
|
||||
extern const u8 *gUnknown_81066F0[];
|
||||
extern const u8 *gUnknown_810671C[];
|
||||
|
||||
static void sub_80861EC(Entity *);
|
||||
|
||||
void sub_800EE5C(s32);
|
||||
void sub_800EF64();
|
||||
void sub_803E46C(s32);
|
||||
s32 sub_800E700(s32);
|
||||
void sub_800569C(Position *, EntitySpriteInfo *, u8);
|
||||
void sub_8085F44(void);
|
||||
|
||||
void sub_8052FB8(const u8 *);
|
||||
|
||||
void sub_8086124(Entity *entity, u8 param_2)
|
||||
{
|
||||
entity->info->unk160 = param_2;
|
||||
}
|
||||
|
||||
void sub_8086130(void)
|
||||
{
|
||||
DungeonFadeOutBGM(0x3c);
|
||||
sub_803E708(0x3c,0x46);
|
||||
sub_8052FB8(*gUnknown_810665C);
|
||||
sub_803E708(0x1e,0x46);
|
||||
sub_8052FB8(*gUnknown_810668C);
|
||||
sub_803E708(0x1e,0x46);
|
||||
sub_8052FB8(*gUnknown_81066D4);
|
||||
sub_803E708(0x1e,0x46);
|
||||
sub_8052FB8(*gUnknown_81066F0);
|
||||
sub_803E708(0x1e,0x46);
|
||||
sub_8052FB8(*gUnknown_810671C);
|
||||
sub_803E708(0x1e,0x46);
|
||||
}
|
||||
|
||||
void sub_80861A8(Entity *a0)
|
||||
{
|
||||
sub_806CDD4(a0, 0, 8);
|
||||
sub_806CDD4(a0, 0, NUM_DIRECTIONS);
|
||||
}
|
||||
|
||||
void sub_80861B8(Entity *a0, u8 r1, s32 direction)
|
||||
{
|
||||
EntityInfo *info;
|
||||
|
||||
info = a0->info;
|
||||
|
||||
sub_806CDD4(a0, r1, direction);
|
||||
info->unkFE = r1;
|
||||
}
|
||||
|
||||
void sub_80861D4(Entity *a0, u8 r1, s32 direction)
|
||||
{
|
||||
sub_806CDD4(a0, r1, direction);
|
||||
sub_80861EC(a0);
|
||||
}
|
||||
|
||||
void sub_80861EC(Entity *a0)
|
||||
{
|
||||
a0->info->unkFE = 0x63;
|
||||
}
|
||||
|
||||
s32 sub_80861F8(s16 param_1,Entity *param_2,bool32 param_3)
|
||||
{
|
||||
EntityInfo *info;
|
||||
s32 uVar2;
|
||||
s32 uStack_38;
|
||||
Position pos;
|
||||
unkStruct_80416E0 stack;
|
||||
struct unkStruct_8107380 stack4;
|
||||
|
||||
#ifdef NONMATCHING
|
||||
s32 param_1_s32 = param_1;
|
||||
#else
|
||||
register s32 param_1_s32 asm("r5") = param_1;
|
||||
#endif
|
||||
|
||||
u8 param_3_bool32 = param_3;
|
||||
|
||||
sub_800EE5C(param_1);
|
||||
sub_800EF64();
|
||||
sub_803E46C(0x46);
|
||||
info = param_2->info;
|
||||
pos.x = 0;
|
||||
pos.y = 0;
|
||||
uStack_38 = sub_800E700(param_1_s32);
|
||||
if (uStack_38 != -1) {
|
||||
sub_800569C(&pos,¶m_2->spriteInfo,uStack_38);
|
||||
}
|
||||
stack.unk0 = param_1_s32;
|
||||
stack.unk4 = 0;
|
||||
stack.unk8 = (u32)(info->action).direction;
|
||||
stack.x = (param_2->pixelPos).x / 256;
|
||||
stack.y = (param_2->pixelPos).y / 256;
|
||||
|
||||
stack.unk10 = pos.x;
|
||||
stack.unk12 = pos.y;
|
||||
stack.unk14 = uStack_38;
|
||||
stack.unk18 = 0xffff;
|
||||
stack4 = gUnknown_8107380;
|
||||
|
||||
uVar2 = sub_800E890(&stack);
|
||||
if (param_3_bool32 != '\0') {
|
||||
sub_8085F44();
|
||||
uVar2 = -1;
|
||||
}
|
||||
return uVar2;
|
||||
}
|
||||
|
||||
@@ -28,12 +28,10 @@ bool8 GenerateMailJobInfo(WonderMail *);
|
||||
bool8 sub_8096E80(u8);
|
||||
u8 sub_8095E78(void);
|
||||
bool8 sub_80963B4(void);
|
||||
void SaveWonderMail(struct unkStruct_8094924 *a, WonderMail *b);
|
||||
void RestoreWonderMail(struct unkStruct_8094924 *a, WonderMail *b);
|
||||
s32 CalculateMailChecksum(WonderMail *mail);
|
||||
|
||||
extern void SaveDungeonLocation(struct unkStruct_8094924*, DungeonLocation*);
|
||||
extern void RestoreDungeonLocation(struct unkStruct_8094924*, DungeonLocation*);
|
||||
extern void SaveDungeonLocation(unkStruct_8094924*, DungeonLocation*);
|
||||
extern void RestoreDungeonLocation(unkStruct_8094924*, DungeonLocation*);
|
||||
extern void sub_803C4F0(WonderMail *);
|
||||
extern void sub_803C3E0(WonderMail *);
|
||||
extern void sub_803C45C(WonderMail *);
|
||||
@@ -1578,7 +1576,7 @@ bool8 sub_8096F50(WonderMail *mail)
|
||||
u32 RestoreMailInfo(u8 *r0, u32 size)
|
||||
{
|
||||
s32 index;
|
||||
struct unkStruct_8094924 backup;
|
||||
unkStruct_8094924 backup;
|
||||
u32 temp;
|
||||
|
||||
xxx_init_struct_8094924_restore_809485C(&backup, r0, size);
|
||||
@@ -1623,7 +1621,7 @@ u32 RestoreMailInfo(u8 *r0, u32 size)
|
||||
u32 SaveMailInfo(u8 *r0, u32 size)
|
||||
{
|
||||
s32 index;
|
||||
struct unkStruct_8094924 backup;
|
||||
unkStruct_8094924 backup;
|
||||
u32 temp;
|
||||
|
||||
xxx_init_struct_8094924_save_809486C(&backup, r0, size);
|
||||
@@ -1664,7 +1662,7 @@ u32 SaveMailInfo(u8 *r0, u32 size)
|
||||
return backup.unk8;
|
||||
}
|
||||
|
||||
void RestoreWonderMail(struct unkStruct_8094924 *a, WonderMail *b)
|
||||
void RestoreWonderMail(unkStruct_8094924 *a, WonderMail *b)
|
||||
{
|
||||
RestoreIntegerBits(a, &b->mailType, 4);
|
||||
RestoreIntegerBits(a, &b->missionType, 3);
|
||||
@@ -1679,7 +1677,7 @@ void RestoreWonderMail(struct unkStruct_8094924 *a, WonderMail *b)
|
||||
RestoreDungeonLocation(a, &b->unk4.dungeon);
|
||||
}
|
||||
|
||||
void SaveWonderMail(struct unkStruct_8094924 *a, WonderMail *b)
|
||||
void SaveWonderMail(unkStruct_8094924 *a, WonderMail *b)
|
||||
{
|
||||
SaveIntegerBits(a, &b->mailType, 4);
|
||||
SaveIntegerBits(a, &b->missionType, 3);
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
#include "global.h"
|
||||
#include "other_random.h"
|
||||
#include "memory.h"
|
||||
#include "ground_script.h"
|
||||
|
||||
struct unkStruct_809D158
|
||||
{
|
||||
@@ -415,71 +414,3 @@ void sub_809D508(void)
|
||||
MemoryFree(gUnknown_203B4B0);
|
||||
gUnknown_203B4B0 = NULL;
|
||||
}
|
||||
|
||||
// -1 didn't match
|
||||
void sub_809D520(void *a0)
|
||||
{
|
||||
u16 *ptr = a0;
|
||||
u16 v = 0xFFFF;
|
||||
*ptr = v;
|
||||
}
|
||||
|
||||
extern s32 sub_80A882C(s16);
|
||||
extern s32 sub_80AC240(s16);
|
||||
extern s32 sub_80AD158(s16);
|
||||
|
||||
s32 sub_809D52C(void *a0)
|
||||
{
|
||||
s16 *ptr = a0;
|
||||
|
||||
switch (ptr[0])
|
||||
{
|
||||
case 0: return 0;
|
||||
case 1: return sub_80A882C(ptr[1]);
|
||||
case 2: return sub_80AC240(ptr[1]);
|
||||
case 3: return sub_80AD158(ptr[1]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void InitScriptData(ScriptData *a0)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
a0->state = -1;
|
||||
a0->savedState = 0;
|
||||
a0->script.ptr2 = 0;
|
||||
a0->script.ptr = 0;
|
||||
a0->savedScript.ptr2 = 0;
|
||||
a0->savedScript.ptr = 0;
|
||||
a0->curScriptOp = 0;
|
||||
a0->curPtr = 0;
|
||||
a0->unk22 = -1;
|
||||
a0->unk24 = 0;
|
||||
a0->unk26 = 0xFF;
|
||||
a0->branchDiscriminant = 0;
|
||||
a0->unk2A = 0;
|
||||
a0->unk2C = 0;
|
||||
a0->unk30 = 0;
|
||||
for (i = 0; i < 4; i++) {
|
||||
a0->unk50[i].raw = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void InitAction(Action *a0)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
a0->callbacks = NULL;
|
||||
a0->parentObject = NULL;
|
||||
a0->group = -1;
|
||||
a0->sector = 0xFF;
|
||||
sub_809D520(&a0->unkC);
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
a0->predefinedScripts[i] = NULL;
|
||||
}
|
||||
|
||||
InitScriptData(&a0->scriptData);
|
||||
InitScriptData(&a0->scriptData2);
|
||||
}
|
||||
|
||||
@@ -38,4 +38,21 @@ static const u8 sUnknown_80F42F0[256] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
};
|
||||
|
||||
static const u8 gUnknown_80F43F0[PASSWORD_BUFFER_SIZE] = {
|
||||
0x0d, 0x07, 0x19, 0x0f, 0x04, 0x1d, 0x2a, 0x31, 0x08, 0x13,
|
||||
0x2d, 0x18, 0x0e, 0x1a, 0x1b, 0x29, 0x01, 0x20, 0x21,
|
||||
0x22, 0x11, 0x33, 0x26, 0x00, 0x35, 0x0a, 0x2b, 0x1f,
|
||||
0x12, 0x23, 0x2c, 0x17, 0x27, 0x10, 0x1c, 0x30, 0x0b,
|
||||
0x02, 0x24, 0x09, 0x32, 0x05, 0x28, 0x34, 0x2e, 0x03,
|
||||
0x1e, 0x0c, 0x25, 0x14, 0x2f, 0x16, 0x06, 0x15
|
||||
};
|
||||
|
||||
static const u8 gUnknown_80F4426[34] = {
|
||||
0x0c, 0x06, 0x13, 0x08, 0x04, 0x0d, 0x0f, 0x09, 0x10, 0x02,
|
||||
0x14, 0x12, 0x00, 0x15, 0x0b, 0x05, 0x17, 0x03, 0x11,
|
||||
0x0a, 0x01, 0x0e, 0x16, 0x07, 0x00, 0x00,0x70, 0x6b,
|
||||
0x73, 0x64, 0x69, 0x72, 0x30, 0x00
|
||||
};
|
||||
|
||||
|
||||
316
src/data/friend_rescue_menus.h
Normal file
316
src/data/friend_rescue_menus.h
Normal file
@@ -0,0 +1,316 @@
|
||||
extern const u8 GoRescue_80E20AC[];
|
||||
extern const u8 GetHelp_80E20A0[];
|
||||
extern const u8 Info_80E2098[];
|
||||
extern const u8 Exit_80E2090[];
|
||||
|
||||
const MenuItem gUnknown_80E2068[5] = {
|
||||
{GoRescue_80E20AC, 0x0},
|
||||
{GetHelp_80E20A0, 0x1},
|
||||
{Info_80E2098, 0x17},
|
||||
{Exit_80E2090, 0x8},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
const u8 Exit_80E2090[] = "Exit";
|
||||
const u8 Info_80E2098[] = "Info";
|
||||
const u8 GetHelp_80E20A0[] = "Get Help";
|
||||
const u8 GoRescue_80E20AC[] = "Go Rescue";
|
||||
|
||||
const MenuItem gUnknown_80E20B8[5] = {
|
||||
{GoRescue_80E20AC, 0x0},
|
||||
{GetHelp_80E20A0, -1},
|
||||
{Info_80E2098, 0x17},
|
||||
{Exit_80E2090, 0x8},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
const MenuItem gUnknown_80E20E0[5] = {
|
||||
{GoRescue_80E20AC, -1},
|
||||
{GetHelp_80E20A0, 1},
|
||||
{Info_80E2098, 0x17},
|
||||
{Exit_80E2090, 0x8},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
const MenuItem gUnknown_80E2108[5] = {
|
||||
{GoRescue_80E20AC, -1},
|
||||
{GetHelp_80E20A0, -1},
|
||||
{Info_80E2098, 0x17},
|
||||
{Exit_80E2090, 0x8},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
extern const u8 ReceiveSOSMail_80E217C[];
|
||||
extern const u8 SendAOKMail_80E216C[];
|
||||
extern const u8 GetThankYouMail_80E2158[];
|
||||
|
||||
const MenuItem gUnknown_80E2130[5] = {
|
||||
{ReceiveSOSMail_80E217C, 3},
|
||||
{SendAOKMail_80E216C, 4},
|
||||
{GetThankYouMail_80E2158, 0x14},
|
||||
{Exit_80E2090, 0x8},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
const u8 GetThankYouMail_80E2158[] = "Get Thank-You Mail";
|
||||
const u8 SendAOKMail_80E216C[] = "Send A-OK Mail";
|
||||
const u8 ReceiveSOSMail_80E217C[] = "Receive SOS Mail";
|
||||
|
||||
const MenuItem gUnknown_80E2190[5] = {
|
||||
{ReceiveSOSMail_80E217C, 3},
|
||||
{SendAOKMail_80E216C, -1},
|
||||
{GetThankYouMail_80E2158, 0x14},
|
||||
{Exit_80E2090, 0x8},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
extern const u8 SendSOS_80E2208[];
|
||||
extern const u8 ReceiveAOK_80E21F4[];
|
||||
extern const u8 SendThankYou_80E21E0[];
|
||||
|
||||
|
||||
const MenuItem gUnknown_80E21B8[5] = {
|
||||
{SendSOS_80E2208, 0x11},
|
||||
{ReceiveAOK_80E21F4, 0x12},
|
||||
{SendThankYou_80E21E0, 0x13},
|
||||
{Exit_80E2090, 0x8},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
const u8 SendThankYou_80E21E0[] = "Send Thank-You Mail";
|
||||
const u8 ReceiveAOK_80E21F4[] = "Receive A-OK Mail";
|
||||
const u8 SendSOS_80E2208[] = "Send SOS Mail";
|
||||
|
||||
const MenuItem gUnknown_80E2218[5] = {
|
||||
{SendSOS_80E2208, -1},
|
||||
{ReceiveAOK_80E21F4, -1},
|
||||
{SendThankYou_80E21E0, 0x13},
|
||||
{Exit_80E2090, 0x8},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
const MenuItem gUnknown_80E2240[5] = {
|
||||
{SendSOS_80E2208, 0x11},
|
||||
{ReceiveAOK_80E21F4, 0x12},
|
||||
{SendThankYou_80E21E0, -1},
|
||||
{Exit_80E2090, 0x8},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
const MenuItem gUnknown_80E2268[5] = {
|
||||
{SendSOS_80E2208, -1},
|
||||
{ReceiveAOK_80E21F4, -1},
|
||||
{SendThankYou_80E21E0, -1},
|
||||
{Exit_80E2090, 0x8},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
extern const u8 Yes_80E22B0[];
|
||||
extern const u8 Cancel_80E22A8[];
|
||||
|
||||
|
||||
const MenuItem gUnknown_80E2290[3] = {
|
||||
{Yes_80E22B0, 6},
|
||||
{Cancel_80E22A8, 0x8},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
const u8 Cancel_80E22A8[] = "Cancel";
|
||||
const u8 Yes_80E22B0[] = "Yes";
|
||||
|
||||
|
||||
extern const u8 No_80E22CC[];
|
||||
|
||||
const MenuItem gUnknown_80E22B4[3] = {
|
||||
{Yes_80E22B0, 6},
|
||||
{No_80E22CC, 7},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
const u8 No_80E22CC[] = "No";
|
||||
|
||||
const MenuItem gUnknown_80E22D0[4] = {
|
||||
{Yes_80E22B0, 6},
|
||||
{No_80E22CC, 7},
|
||||
{Cancel_80E22A8, 8},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
extern const u8 SendPokemon_80E2308[];
|
||||
|
||||
const MenuItem gUnknown_80E22F0[3] = {
|
||||
{SendPokemon_80E2308, 0x10},
|
||||
{Cancel_80E22A8, 8},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
const u8 SendPokemon_80E2308[] = _("Send w/o Pokémon");
|
||||
|
||||
const UnkTextStruct2 gUnknown_80E231C =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x16, 0x07,
|
||||
0x06, 0x04,
|
||||
0x04, 0x00,
|
||||
NULL
|
||||
};
|
||||
|
||||
const UnkTextStruct2 gUnknown_80E2334 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x16, 0x06,
|
||||
0x06, 0x04,
|
||||
0x04, 0x00,
|
||||
NULL
|
||||
};
|
||||
|
||||
extern const u8 Confirm_80E2364[];
|
||||
|
||||
const MenuItem gUnknown_80E234C[3] = {
|
||||
{Confirm_80E2364, 9},
|
||||
{Info_80E2098, 10},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
const u8 Confirm_80E2364[] = "Confirm";
|
||||
|
||||
extern const u8 GameLinkCable_80E2398[];
|
||||
extern const u8 Password_80E238C[];
|
||||
|
||||
const MenuItem gUnknown_80E236C[4] = {
|
||||
{GameLinkCable_80E2398, 0xB},
|
||||
{Password_80E238C, 0xD},
|
||||
{Cancel_80E22A8, 8},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
const u8 Password_80E238C[] = "Password";
|
||||
const u8 GameLinkCable_80E2398[] = "Game Link cable";
|
||||
|
||||
extern const u8 SendPokemon_80E23E0[];
|
||||
extern const u8 DontSendPokemon_80E23C8[];
|
||||
|
||||
const MenuItem gUnknown_80E23A8[4] = {
|
||||
{SendPokemon_80E23E0, 0xF},
|
||||
{DontSendPokemon_80E23C8, 0x10},
|
||||
{Cancel_80E22A8, 8},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
ALIGNED(4) const u8 DontSendPokemon_80E23C8[] = _("Don{APOSTROPHE}t Send Pokémon");
|
||||
ALIGNED(4) const u8 SendPokemon_80E23E0[] = _("Send Pokémon");
|
||||
|
||||
const UnkTextStruct2 gUnknown_80E23F0 =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x15, 0x04,
|
||||
0x06, 0x05,
|
||||
0x05, 0x00,
|
||||
NULL
|
||||
};
|
||||
|
||||
const MenuItem gUnknown_80E2408[4] = {
|
||||
{Confirm_80E2364, 0x9},
|
||||
{Info_80E2098, 0xA},
|
||||
{Cancel_80E22A8, 5},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
UNUSED static const UnkTextStruct2 unused_text =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
NULL
|
||||
};
|
||||
|
||||
const MenuItem gUnknown_80E2440[3] = {
|
||||
{Yes_80E22B0, 6},
|
||||
{Cancel_80E22A8, 0x8},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
const MenuItem gUnknown_80E2458[3] = {
|
||||
{Yes_80E22B0, 6},
|
||||
{No_80E22CC, 0x7},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
extern const u8 SendItem_80E24A4[];
|
||||
extern const u8 DontSendItem_80E2490[];
|
||||
|
||||
const MenuItem gUnknown_80E2470[4] = {
|
||||
{SendItem_80E24A4, 0x15},
|
||||
{DontSendItem_80E2490, 0x16},
|
||||
{Cancel_80E22A8, 8},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
const u8 DontSendItem_80E2490[] = _("Don{APOSTROPHE}t Send Item");
|
||||
const u8 SendItem_80E24A4[] = "Send Item";
|
||||
|
||||
extern const u8 SendwoItem_80E24C8[];
|
||||
|
||||
const MenuItem gUnknown_80E24B0[3] = {
|
||||
{SendwoItem_80E24C8, 0x16},
|
||||
{Cancel_80E22A8, 8},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
const u8 SendwoItem_80E24C8[] = "Send w/o Item";
|
||||
|
||||
const MenuItem gUnknown_80E24D8[4] = {
|
||||
{Yes_80E22B0, 6},
|
||||
{No_80E22CC, 0x7},
|
||||
{Cancel_80E22A8, 0x8},
|
||||
{NULL, 0x8},
|
||||
};
|
||||
|
||||
extern const u8 RescueInfo_80E2540[];
|
||||
extern const u8 GoRescue_80E530[];
|
||||
extern const u8 GetHelp_80E2520[];
|
||||
|
||||
const MenuItem gUnknown_80E24F8[5] = {
|
||||
{RescueInfo_80E2540, 0x1A},
|
||||
{GoRescue_80E530, 0x1B},
|
||||
{GetHelp_80E2520, 0x1C},
|
||||
{Cancel_80E22A8, 0x19},
|
||||
{NULL, 0x19},
|
||||
};
|
||||
|
||||
ALIGNED(4) const u8 GetHelp_80E2520[] = _("{COLOR_1 YELLOW}Get help{END_COLOR_TEXT_1} ");
|
||||
ALIGNED(4) const u8 GoRescue_80E530[] = _("{COLOR_1 YELLOW}Go rescue{END_COLOR_TEXT_1} ");
|
||||
const u8 RescueInfo_80E2540[] = "Friend Rescue Info";
|
||||
|
||||
extern const u8 RescueProcedures_80E25A0[];
|
||||
extern const u8 LeaveForRescue_80E258C[];
|
||||
|
||||
const MenuItem gUnknown_80E2554[7] = {
|
||||
{RescueProcedures_80E25A0, 0x1E},
|
||||
{ReceiveSOSMail_80E217C, 0x1F},
|
||||
{LeaveForRescue_80E258C, 0x20},
|
||||
{SendAOKMail_80E216C, 0x21},
|
||||
{GetThankYouMail_80E2158, 0x22},
|
||||
{Exit_80E2090, 0x19},
|
||||
{NULL, 0x19},
|
||||
};
|
||||
|
||||
const u8 LeaveForRescue_80E258C[] = "Leave for Rescue";
|
||||
const u8 RescueProcedures_80E25A0[] = "Rescue Procedures";
|
||||
|
||||
extern const u8 GettingHelp_80E25E4[];
|
||||
|
||||
const MenuItem gUnknown_80E25B4[6] = {
|
||||
{GettingHelp_80E25E4, 0x23},
|
||||
{SendSOS_80E2208, 0x24},
|
||||
{ReceiveAOK_80E21F4, 0x25},
|
||||
{SendThankYou_80E21E0, 0x26},
|
||||
{Exit_80E2090, 0x19},
|
||||
{NULL, 0x19},
|
||||
};
|
||||
|
||||
const u8 GettingHelp_80E25E4[] = "Getting Help";
|
||||
@@ -5,8 +5,9 @@
|
||||
#include "structs/str_dungeon.h"
|
||||
#include "structs/str_traps.h"
|
||||
|
||||
extern u8 gUnknown_202EE70[0x6];
|
||||
extern u8 gUnknown_202EE76[0x10];
|
||||
extern u8 gUnknown_202EE70[MAX_TEAM_BODY_SIZE];
|
||||
extern u8 gUnknown_202EE76[DUNGEON_MAX_WILD_POKEMON_BODY_SIZE];
|
||||
|
||||
u32 EntityGetStatusSprites(Entity *entity);
|
||||
void UpdateDungeonPokemonSprite(int id, short species, int status, char visible);
|
||||
|
||||
@@ -84,7 +85,7 @@ void sub_804513C(void)
|
||||
gDungeon->teamPokemon[index]->type = ENTITY_NOTHING;
|
||||
}
|
||||
|
||||
for(index = 0; index < 6; index++)
|
||||
for(index = 0; index < MAX_TEAM_BODY_SIZE; index++)
|
||||
{
|
||||
gUnknown_202EE70[index] = 0;
|
||||
}
|
||||
@@ -95,7 +96,7 @@ void sub_804513C(void)
|
||||
gDungeon->wildPokemon[index]->type = ENTITY_NOTHING;
|
||||
}
|
||||
|
||||
for(index = 0; index < 0x10; index++)
|
||||
for(index = 0; index < DUNGEON_MAX_WILD_POKEMON_BODY_SIZE; index++)
|
||||
{
|
||||
gUnknown_202EE76[index] = 0;
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "code_806CD90.h"
|
||||
#include "constants/direction.h"
|
||||
#include "constants/dungeon.h"
|
||||
#include "code_80861A8.h"
|
||||
#include "dungeon_leader.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "random.h"
|
||||
@@ -21,7 +22,6 @@ extern void sub_803F878(s32, s32);
|
||||
|
||||
extern void sub_8068FE0(Entity *, u32, Entity*);
|
||||
extern void sub_80457DC(Entity *);
|
||||
extern void sub_80861D4(Entity *, u32, s32 direction);
|
||||
extern void sub_80694C0(Entity *, s32, s32, u32);
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "code_80118A4.h"
|
||||
#include "code_80130A8.h"
|
||||
#include "code_801B3C0.h"
|
||||
@@ -12,6 +13,7 @@
|
||||
#include "constants/wonder_mail.h"
|
||||
#include "cpu.h"
|
||||
#include "friend_rescue.h"
|
||||
#include "input.h"
|
||||
#include "items.h"
|
||||
#include "main_menu1.h"
|
||||
#include "memory.h"
|
||||
@@ -30,6 +32,167 @@ extern char gUnknown_202E5D8[0x50];
|
||||
extern char gAvailablePokemonNames[0x50];
|
||||
extern TeamInventory *gTeamInventoryRef;
|
||||
|
||||
|
||||
// NOTE: MenuItems and UnkTextStruct2 defined in here..
|
||||
#include "data/friend_rescue_menus.h"
|
||||
|
||||
const u8 gUnknown_80E25F4[] = "What would you like to do?";
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E2610[] = _(
|
||||
"How would you like to send your\n"
|
||||
"{COLOR_1 LIGHT_BLUE}SOS Mail{END_COLOR_TEXT_1}?");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E2640[] = _(
|
||||
"How would you like to receive your\n"
|
||||
"friend{APOSTROPHE}s {COLOR_1 LIGHT_BLUE}SOS Mail{END_COLOR_TEXT_1}?");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E2680[] = _(
|
||||
"How would you like to send your\n"
|
||||
"{COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1}?");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E26B0[] = _(
|
||||
"How would you like to receive your\n"
|
||||
"friend{APOSTROPHE}s {COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1}?");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E26F0[] = _(
|
||||
"How would you like to send your\n"
|
||||
"{COLOR_1 LIGHT_BLUE}Thank-You Mail{END_COLOR_TEXT_1}?");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E2728[] = _(
|
||||
"How would you like to receive your\n"
|
||||
"friend{APOSTROPHE}s {COLOR_1 LIGHT_BLUE}Thank-You Mail{END_COLOR_TEXT_1}?");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E276C[] = _(
|
||||
"The GBA Game Pak does not have\n"
|
||||
"an {COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1} on it.");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E27A4[] = _(
|
||||
"If you accept an {COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1}{COMMA} the\n"
|
||||
"{COLOR_1 LIGHT_BLUE}Thank-You Mail{END_COLOR_TEXT_1} you received before\n"
|
||||
"will be overwritten. Is that OK?");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E2814[] = _(
|
||||
"Please enter the {COLOR_1 LIGHT_BLUE}A-OK Mail password{END_COLOR_TEXT_1}.");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E2840[] = _(
|
||||
"The {COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1} will be received and\n"
|
||||
"processed.");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E2874[] = _(
|
||||
"A {COLOR_1 LIGHT_BLUE}helper Pokémon{END_COLOR_TEXT_1} also arrived!");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E2898[] = _(
|
||||
"An {COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1} was received.\n"
|
||||
"Your adventure will be saved.");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E28D8[] = _(
|
||||
"Resume your game using {COLOR_1 LIGHT_BLUE}Revive Team{END_COLOR_TEXT_1}.");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E2904[] = _(
|
||||
"Your friend{APOSTROPHE}s Mailbox is full.\n"
|
||||
"This piece of mail cannot be sent.\n"
|
||||
"The recipient must delete old mail.");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E296C[] = _(
|
||||
"Please choose the {COLOR_1 LIGHT_BLUE}SOS Mail{END_COLOR_TEXT_1} you want\n"
|
||||
"to send.");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E29A0[] = _(
|
||||
"This {COLOR_1 LIGHT_BLUE}SOS Mail{END_COLOR_TEXT_1} will be sent.\n"
|
||||
"Is that OK?");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E29D0[] = _(
|
||||
"Your {COLOR_1 LIGHT_BLUE}SOS Mail{END_COLOR_TEXT_1} was sent.\n"
|
||||
"Your adventure will be saved.");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E2A0C[] = "Save completed.";
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E2A1C[] = _(
|
||||
"Please give this password to the friend\n"
|
||||
"coming to your rescue.");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E2A5C[] = _(
|
||||
"Here is the {COLOR_1 LIGHT_BLUE}SOS Mail password{END_COLOR_TEXT_1}.");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E2A80[] = _(
|
||||
"Here is the {COLOR_1 LIGHT_BLUE}A-OK Mail password{END_COLOR_TEXT_1}.");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E2AA8[] = _(
|
||||
"Please give this password to the friend\n"
|
||||
"that you rescued.");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E2AE4[] = _(
|
||||
"Please connect a {COLOR_1 LIGHT_BLUE}Link Cable{END_COLOR_TEXT_1}.\n"
|
||||
"When your friend{APOSTROPHE}s side is ready{COMMA} you may\n"
|
||||
"communicate and exchange data.");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E2B54[] = _(
|
||||
"Your {COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1} was sent.\n"
|
||||
"Your adventure will be saved.");
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E2B90[] = _(
|
||||
"Using a {COLOR_1 LIGHT_BLUE}Game Link cable{END_COLOR_TEXT_1}{COMMA}\n"
|
||||
"you can send a {COLOR_1 LIGHT_BLUE}helper Pokémon{END_COLOR_TEXT_1} to\n"
|
||||
"a friend.");
|
||||
|
||||
extern u8 gUnknown_80E2BE0[];
|
||||
extern u8 gUnknown_80E2C48[];
|
||||
extern u8 gUnknown_80E2C94[];
|
||||
extern u8 gUnknown_80E2CD4[];
|
||||
extern u8 gUnknown_80E2CE8[];
|
||||
extern u8 gUnknown_80E2D30[];
|
||||
extern u8 gUnknown_80E2D60[];
|
||||
extern u8 gUnknown_80E2D7C[];
|
||||
extern u8 gUnknown_80E2DD0[];
|
||||
extern u8 gUnknown_80E2E20[];
|
||||
extern u8 gUnknown_80E2E54[];
|
||||
extern u8 gUnknown_80E2EB4[];
|
||||
extern u8 gUnknown_80E2F14[];
|
||||
extern u8 gUnknown_80E2F44[];
|
||||
extern u8 gUnknown_80E2F78[];
|
||||
extern u8 gUnknown_80E2FA0[];
|
||||
extern u8 gUnknown_80E2FEC[];
|
||||
extern u8 gUnknown_80E3030[];
|
||||
extern u8 gUnknown_80E3078[];
|
||||
extern u8 gUnknown_80E30A4[];
|
||||
extern u8 gUnknown_80E30D0[];
|
||||
extern u8 gUnknown_80E311C[];
|
||||
extern u8 gUnknown_80E314C[];
|
||||
extern u8 gUnknown_80E317C[];
|
||||
extern u8 gUnknown_80E319C[];
|
||||
extern u8 gUnknown_80E31D8[];
|
||||
extern u8 gUnknown_80E31FC[];
|
||||
extern u8 gUnknown_80E31FC[];
|
||||
extern u8 gUnknown_80E3220[];
|
||||
extern u8 gUnknown_80E3248[];
|
||||
extern u8 gUnknown_80E3288[];
|
||||
extern u8 gUnknown_80E32C4[];
|
||||
extern u8 gUnknown_80E331C[];
|
||||
extern u8 gUnknown_80E3378[];
|
||||
extern u8 gUnknown_80E339C[];
|
||||
extern u8 gUnknown_80E33D8[];
|
||||
extern u8 gUnknown_80E3430[];
|
||||
extern u8 gUnknown_80E34B0[];
|
||||
extern u8 gUnknown_80E34F0[];
|
||||
extern u8 gUnknown_80E352C[];
|
||||
extern u8 gUnknown_80E355C[];
|
||||
extern u8 gUnknown_80E35AC[];
|
||||
extern u8 gUnknown_80E35E8[];
|
||||
extern u8 gUnknown_80E360C[];
|
||||
extern u8 gUnknown_80E3644[];
|
||||
extern u8 gUnknown_80E367C[];
|
||||
extern u8 gUnknown_80E3690[];
|
||||
extern u8 gUnknown_80E3818[];
|
||||
extern u8 gUnknown_80E3998[];
|
||||
extern u8 gUnknown_80E3B1C[];
|
||||
extern u8 gUnknown_80E3BF8[];
|
||||
extern u8 gUnknown_80E3DE4[];
|
||||
extern u8 gUnknown_80E3E98[];
|
||||
extern u8 gUnknown_80E4014[];
|
||||
extern u8 gUnknown_80E4130[];
|
||||
extern u8 gUnknown_80E41DC[];
|
||||
extern u8 gUnknown_80E4314[];
|
||||
extern u8 gUnknown_80E4480[];
|
||||
extern u8 gUnknown_80E44A4[];
|
||||
extern u8 gUnknown_80E4500[];
|
||||
extern u8 gUnknown_80E4550[];
|
||||
@@ -42,216 +205,98 @@ extern u8 gUnknown_80E4704[];
|
||||
extern u8 gUnknown_80E4744[];
|
||||
extern u8 gUnknown_80E4788[];
|
||||
extern u8 gUnknown_80E47D8[];
|
||||
extern u8 gUnknown_80E4480[];
|
||||
extern u8 gUnknown_80E482C[];
|
||||
extern u8 gUnknown_80E25F4[];
|
||||
extern u8 gUnknown_80E2D7C[];
|
||||
extern u8 gUnknown_80E2E20[];
|
||||
extern u8 gUnknown_80E319C[];
|
||||
extern u8 gUnknown_80E311C[];
|
||||
extern u8 gUnknown_80E32C4[];
|
||||
extern u8 gUnknown_80E4314[];
|
||||
extern u8 gUnknown_80E41DC[];
|
||||
extern u8 gUnknown_80E2FEC[];
|
||||
extern u8 gUnknown_80E2898[];
|
||||
extern u8 gUnknown_80E2B54[];
|
||||
extern u8 gUnknown_80E29D0[];
|
||||
extern u8 gUnknown_80E3220[];
|
||||
extern u8 gUnknown_80E2A0C[];
|
||||
extern u8 gUnknown_80E2610[];
|
||||
extern u8 gUnknown_80E2640[];
|
||||
extern u8 gUnknown_80E2680[];
|
||||
extern u8 gUnknown_80E26B0[];
|
||||
extern u8 gUnknown_80E26F0[];
|
||||
extern u8 gUnknown_80E2728[];
|
||||
extern u8 gUnknown_80E3690[];
|
||||
extern u8 gUnknown_80E3818[];
|
||||
extern u8 gUnknown_80E3998[];
|
||||
extern u8 gUnknown_80E3B1C[];
|
||||
extern u8 gUnknown_80E367C[];
|
||||
extern u8 gUnknown_80E3BF8[];
|
||||
extern u8 gUnknown_80E3DE4[];
|
||||
extern u8 gUnknown_80E4014[];
|
||||
extern u8 gUnknown_80E3E98[];
|
||||
extern u8 gUnknown_80E4130[];
|
||||
extern u8 gUnknown_80E2E54[];
|
||||
extern u8 gUnknown_80E2EB4[];
|
||||
extern u8 gUnknown_80E2DD0[];
|
||||
extern u8 gUnknown_80E2FA0[];
|
||||
extern u8 gUnknown_80E2F14[];
|
||||
extern u8 gUnknown_80E2F44[];
|
||||
extern u8 gUnknown_80E30A4[];
|
||||
extern u8 gUnknown_80E2F78[];
|
||||
extern u8 gUnknown_80E360C[];
|
||||
extern u8 gUnknown_80E3644[];
|
||||
extern u8 gUnknown_80E35E8[];
|
||||
extern u8 gUnknown_80E35AC[];
|
||||
extern u8 gUnknown_80E355C[];
|
||||
extern u8 gUnknown_80E352C[];
|
||||
extern u8 gUnknown_80E34F0[];
|
||||
extern u8 gUnknown_80E34B0[];
|
||||
extern u8 gUnknown_80E3430[];
|
||||
extern u8 gUnknown_80E33D8[];
|
||||
extern u8 gUnknown_80E339C[];
|
||||
extern u8 gUnknown_80E3378[];
|
||||
extern u8 gUnknown_80E331C[];
|
||||
extern u8 gUnknown_80E3288[];
|
||||
extern u8 gUnknown_80E3248[];
|
||||
extern u8 gUnknown_80E31FC[];
|
||||
extern u8 gUnknown_80E276C[];
|
||||
extern u8 gUnknown_80E27A4[];
|
||||
extern u8 gUnknown_80E2CD4[];
|
||||
extern u8 gUnknown_80E3030[];
|
||||
extern u8 gUnknown_80E3078[];
|
||||
extern u8 gUnknown_80E31D8[];
|
||||
extern u8 gUnknown_80E2CE8[];
|
||||
extern u8 gUnknown_80E2B90[];
|
||||
extern u8 gUnknown_80E2AE4[];
|
||||
extern u8 gUnknown_80E2A80[];
|
||||
extern u8 gUnknown_80E2AA8[];
|
||||
extern u8 gUnknown_80E2D60[];
|
||||
extern u8 gUnknown_80E2BE0[];
|
||||
extern u8 gUnknown_80E2C48[];
|
||||
extern u8 gUnknown_80E29A0[];
|
||||
extern u8 gUnknown_80E2A5C[];
|
||||
extern u8 gUnknown_80E2904[];
|
||||
extern u8 gUnknown_80E2C94[];
|
||||
extern u8 gUnknown_80E2D30[];
|
||||
extern u8 gUnknown_80E296C[];
|
||||
extern u8 gUnknown_80E314C[];
|
||||
extern u8 gUnknown_80E2A1C[];
|
||||
extern u8 gUnknown_80E2840[];
|
||||
extern u8 gUnknown_80E2874[];
|
||||
extern u8 gUnknown_80E317C[];
|
||||
extern u8 gUnknown_80E28D8[];
|
||||
extern u8 gUnknown_80E2814[];
|
||||
extern u8 gUnknown_80E30D0[];
|
||||
extern u8 gUnknown_80E48A8[];
|
||||
extern u8 gUnknown_80E49C4[];
|
||||
extern u8 gUnknown_80E4704[];
|
||||
extern u8 gUnknown_80E48E8[];
|
||||
extern u8 gUnknown_80E4928[];
|
||||
extern u8 gUnknown_80E4964[];
|
||||
extern u8 gUnknown_80E499C[];
|
||||
extern u8 gUnknown_80E460C[];
|
||||
extern u8 gUnknown_80E31FC[];
|
||||
|
||||
extern MenuItem gUnknown_80E20B8;
|
||||
extern MenuItem gUnknown_80E2108;
|
||||
extern MenuItem gUnknown_80E20E0;
|
||||
extern MenuItem gUnknown_80E2068;
|
||||
extern MenuItem gUnknown_80E24F8;
|
||||
extern MenuItem gUnknown_80E2554;
|
||||
extern MenuItem gUnknown_80E22F0;
|
||||
extern MenuItem gUnknown_80E236C;
|
||||
extern MenuItem gUnknown_80E2440;
|
||||
extern MenuItem gUnknown_80E2470;
|
||||
extern MenuItem gUnknown_80E24B0;
|
||||
extern MenuItem gUnknown_80E2130;
|
||||
extern MenuItem gUnknown_80E2190;
|
||||
extern MenuItem gUnknown_80E21B8;
|
||||
extern MenuItem gUnknown_80E2268;
|
||||
extern MenuItem gUnknown_80E2218;
|
||||
extern MenuItem gUnknown_80E2240;
|
||||
extern MenuItem gUnknown_80E2290;
|
||||
extern MenuItem gUnknown_80E22D0;
|
||||
extern MenuItem gUnknown_80E234C;
|
||||
extern MenuItem gUnknown_80E24D8;
|
||||
extern MenuItem gUnknown_80E2458;
|
||||
extern MenuItem gUnknown_80E2408;
|
||||
extern MenuItem gUnknown_80E23A8;
|
||||
extern MenuItem gUnknown_80E22B4;
|
||||
|
||||
extern UnkTextStruct2 gUnknown_80E231C;
|
||||
extern UnkTextStruct2 gUnknown_80E23F0;
|
||||
extern UnkTextStruct2 gUnknown_80E2334;
|
||||
|
||||
extern MenuItem gUnknown_80E25B4;
|
||||
extern u8 gUnknown_80E49C4[];
|
||||
|
||||
EWRAM_DATA_2 WonderMailStruct_203B33C *gUnknown_203B33C = {0};
|
||||
|
||||
extern u8 sub_8039880(void);
|
||||
|
||||
extern void sub_8035300(void);
|
||||
extern void QueueNextFriendRescueState(u32);
|
||||
extern void nullsub_41(void);
|
||||
extern void nullsub_42(void);
|
||||
extern void nullsub_43(void);
|
||||
extern void nullsub_44(void);
|
||||
extern void nullsub_45(void);
|
||||
extern void nullsub_46(void);
|
||||
extern void nullsub_47(void);
|
||||
extern void nullsub_48(void);
|
||||
extern void nullsub_49(void);
|
||||
extern void nullsub_50(void);
|
||||
extern void nullsub_51(void);
|
||||
extern void sub_8035374(void);
|
||||
extern void sub_80353BC(void);
|
||||
extern void sub_8033A2C(void);
|
||||
extern void sub_803477C(void);
|
||||
extern void sub_80347AC(void);
|
||||
extern void sub_80347C8(void);
|
||||
extern void sub_80347E4(void);
|
||||
extern void sub_8034804(void);
|
||||
extern void sub_80344C0(void);
|
||||
extern void sub_8034478(void);
|
||||
extern void sub_80344A0(void);
|
||||
extern void sub_803418C(void);
|
||||
extern void sub_8034254(void);
|
||||
extern void sub_8034310(void);
|
||||
extern void sub_8034378(void);
|
||||
extern void sub_80343C4(void);
|
||||
extern void sub_8034404(void);
|
||||
extern void sub_8034500(void);
|
||||
extern void sub_8034590(void);
|
||||
extern void sub_803464C(void);
|
||||
extern void sub_80346A8(void);
|
||||
extern void sub_80346D8(void);
|
||||
extern void sub_8034700(void);
|
||||
extern void sub_8034720(void);
|
||||
extern void sub_803473C(void);
|
||||
extern void sub_8033FB4(void);
|
||||
extern void sub_8034074(void);
|
||||
extern void sub_8034130(void);
|
||||
extern void sub_8033FE4(void);
|
||||
extern void sub_8033D74(void);
|
||||
extern void sub_8033D94(void);
|
||||
extern void sub_8033DBC(void);
|
||||
extern void sub_8033F64(void);
|
||||
extern void sub_8033C54(void);
|
||||
extern void sub_8033CAC(void);
|
||||
extern void sub_8033D48(void);
|
||||
extern void sub_8035424(void);
|
||||
extern void sub_8034970(void);
|
||||
extern void sub_80351E0(void);
|
||||
extern void sub_8034D74(void);
|
||||
extern void sub_8034EF0(void);
|
||||
extern void sub_8034F38(void);
|
||||
extern void sub_80352A4(void);
|
||||
extern void sub_8034EC8(void);
|
||||
extern void sub_8033B8C(void);
|
||||
extern void sub_80339C8(void);
|
||||
extern void sub_80348C4(void);
|
||||
extern void sub_803482C(void);
|
||||
extern void sub_80349B0(void);
|
||||
extern void sub_8034A70(void);
|
||||
extern void sub_8034B2C(void);
|
||||
extern void sub_80349E0(void);
|
||||
extern void sub_8034B88(void);
|
||||
extern void sub_8034C98(void);
|
||||
extern void sub_8034C38(void);
|
||||
extern void sub_8034D54(void);
|
||||
extern void sub_8034F18(void);
|
||||
extern void sub_8034F58(void);
|
||||
extern void sub_8034F88(void);
|
||||
extern void sub_8035018(void);
|
||||
extern void sub_8035038(void);
|
||||
extern void sub_8035094(void);
|
||||
extern void sub_80350F4(void);
|
||||
extern void sub_803517C(void);
|
||||
extern void sub_8035210(void);
|
||||
extern void sub_8035430(void);
|
||||
extern void sub_8034848(void);
|
||||
void sub_8035300(void);
|
||||
void QueueNextFriendRescueState(u32);
|
||||
void nullsub_41(void);
|
||||
void nullsub_42(void);
|
||||
void nullsub_43(void);
|
||||
void nullsub_44(void);
|
||||
void nullsub_45(void);
|
||||
void nullsub_46(void);
|
||||
void nullsub_47(void);
|
||||
void nullsub_48(void);
|
||||
void nullsub_49(void);
|
||||
void nullsub_50(void);
|
||||
void nullsub_51(void);
|
||||
void sub_80339C8(void);
|
||||
void sub_8033A2C(void);
|
||||
void sub_8033B8C(void);
|
||||
void sub_8033C54(void);
|
||||
void sub_8033CAC(void);
|
||||
void sub_8033D48(void);
|
||||
void sub_8033D74(void);
|
||||
void sub_8033D94(void);
|
||||
void sub_8033DBC(void);
|
||||
void sub_8033F64(void);
|
||||
void sub_8033FB4(void);
|
||||
void sub_8033FE4(void);
|
||||
void sub_8034074(void);
|
||||
void sub_8034130(void);
|
||||
void sub_803418C(void);
|
||||
void sub_8034254(void);
|
||||
void sub_8034310(void);
|
||||
void sub_8034378(void);
|
||||
void sub_80343C4(void);
|
||||
void sub_8034404(void);
|
||||
void sub_8034478(void);
|
||||
void sub_80344A0(void);
|
||||
void sub_80344C0(void);
|
||||
void sub_8034500(void);
|
||||
void sub_8034590(void);
|
||||
void sub_803464C(void);
|
||||
void sub_80346A8(void);
|
||||
void sub_80346D8(void);
|
||||
void sub_8034700(void);
|
||||
void sub_8034720(void);
|
||||
void sub_803473C(void);
|
||||
void sub_803477C(void);
|
||||
void sub_80347AC(void);
|
||||
void sub_80347C8(void);
|
||||
void sub_80347E4(void);
|
||||
void sub_8034804(void);
|
||||
void sub_803482C(void);
|
||||
void sub_8034848(void);
|
||||
void sub_80348C4(void);
|
||||
void sub_8034970(void);
|
||||
void sub_80349B0(void);
|
||||
void sub_80349E0(void);
|
||||
void sub_8034A70(void);
|
||||
void sub_8034B2C(void);
|
||||
void sub_8034B88(void);
|
||||
void sub_8034C38(void);
|
||||
void sub_8034C98(void);
|
||||
void sub_8034D54(void);
|
||||
void sub_8034D74(void);
|
||||
void sub_8034EC8(void);
|
||||
void sub_8034EF0(void);
|
||||
void sub_8034F18(void);
|
||||
void sub_8034F38(void);
|
||||
void sub_8034F58(void);
|
||||
void sub_8034F88(void);
|
||||
void sub_8035018(void);
|
||||
void sub_8035038(void);
|
||||
void sub_8035094(void);
|
||||
void sub_80350F4(void);
|
||||
void sub_803517C(void);
|
||||
void sub_80351E0(void);
|
||||
void sub_8035210(void);
|
||||
void sub_80352A4(void);
|
||||
void sub_8035374(void);
|
||||
void sub_80353BC(void);
|
||||
void sub_8035424(void);
|
||||
void sub_8035430(void);
|
||||
|
||||
extern u32 sub_8030DA0(void);
|
||||
extern void sub_8030DE4(void);
|
||||
@@ -262,13 +307,10 @@ extern void sub_8030D40(u8, u32);
|
||||
extern void sub_8030810(u32);
|
||||
extern u8 sub_80307EC(void);
|
||||
extern u32 sub_8031DCC(void);
|
||||
extern void sub_8031E10(void);
|
||||
extern void sub_8031E00(void);
|
||||
extern u32 sub_8039068(u32, u8 *passwordBuffer, unkStruct_203B480 *r0);
|
||||
|
||||
extern void sub_803084C(void);
|
||||
extern void sub_8031E10(void);
|
||||
extern void sub_8030DE4(void);
|
||||
extern u8 sub_800D588(void);
|
||||
extern u32 sub_8023CE8(void);
|
||||
extern u32 sub_80306A8(u32 wonderMailType, u32, UnkTextStruct2_sub *, u32);
|
||||
@@ -277,13 +319,7 @@ extern void sub_803092C(void);
|
||||
extern bool8 sub_8031D70(u32 mailIndex, s32);
|
||||
extern s32 sub_8037B28(u32);
|
||||
|
||||
extern s32 CountMailType(u8 mailType);
|
||||
extern u32 GetDungeonTeamRankPts(DungeonLocation *, u32);
|
||||
unkStruct_203B480 * GetMailatIndex(u8 index);
|
||||
extern s32 GetMailIndex(u8 mailType, u32 param_2);
|
||||
extern char * GetMonSpecies(s16 index);
|
||||
extern void MemoryFill8(u8 *dest, u8 value, s32 size);
|
||||
extern void ResetUnusedInputStruct(void);
|
||||
extern void sprintfStatic(char *buffer, const char *text, ...);
|
||||
|
||||
u32 CreateFriendRescueMenu(void)
|
||||
@@ -692,70 +728,70 @@ void sub_8032828(void)
|
||||
case 0x0:
|
||||
if (CountMailType(WONDER_MAIL_TYPE_SOS) == 0 && CountMailType(WONDER_MAIL_TYPE_THANK_YOU) == 0) {
|
||||
if (gUnknown_203B33C->unk52C != 0)
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 0, &gUnknown_80E2108, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E2108, NULL, 4, 0, NULL, 0x101);
|
||||
else
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 0, &gUnknown_80E20B8, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E20B8, NULL, 4, 0, NULL, 0x101);
|
||||
}
|
||||
else {
|
||||
if (gUnknown_203B33C->unk52C != 0)
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 0, &gUnknown_80E20E0, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E20E0, NULL, 4, 0, NULL, 0x101);
|
||||
else
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 0, &gUnknown_80E2068, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E2068, NULL, 4, 0, NULL, 0x101);
|
||||
}
|
||||
break;
|
||||
case 0x1:
|
||||
if (CountMailType(WONDER_MAIL_TYPE_SOS) == 0 && CountMailType(WONDER_MAIL_TYPE_THANK_YOU) == 0) {
|
||||
if (gUnknown_203B33C->unk52C != 0)
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 0, &gUnknown_80E2108, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E2108, NULL, 4, 0, NULL, 0x101);
|
||||
else
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 0, &gUnknown_80E20B8, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E20B8, NULL, 4, 0, NULL, 0x101);
|
||||
}
|
||||
else {
|
||||
if (gUnknown_203B33C->unk52C != 0)
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 0, &gUnknown_80E20E0, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E20E0, NULL, 4, 0, NULL, 0x101);
|
||||
else
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 0, &gUnknown_80E2068, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E2068, NULL, 4, 0, NULL, 0x101);
|
||||
}
|
||||
break;
|
||||
case 0x3:
|
||||
if (CountMailType(WONDER_MAIL_TYPE_AOK) != 0)
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 3, &gUnknown_80E2130, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 3, gUnknown_80E2130, NULL, 4, 0, NULL, 0x101);
|
||||
else
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 3, &gUnknown_80E2190, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 3, gUnknown_80E2190, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0x4:
|
||||
if (CountMailType(WONDER_MAIL_TYPE_SOS) == 0) {
|
||||
if (CountMailType(WONDER_MAIL_TYPE_THANK_YOU) == 0)
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 17, &gUnknown_80E2268, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 17, gUnknown_80E2268, NULL, 4, 0, NULL, 0x101);
|
||||
else
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 17, &gUnknown_80E2218, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 17, gUnknown_80E2218, NULL, 4, 0, NULL, 0x101);
|
||||
}
|
||||
else {
|
||||
if (CountMailType(WONDER_MAIL_TYPE_THANK_YOU) == 0)
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 17, &gUnknown_80E2240, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 17, gUnknown_80E2240, NULL, 4, 0, NULL, 0x101);
|
||||
else
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 17, &gUnknown_80E21B8, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E25F4[0], 0, 17, gUnknown_80E21B8, NULL, 4, 0, NULL, 0x101);
|
||||
}
|
||||
break;
|
||||
case 0xE:
|
||||
switch(gUnknown_203B33C->unk528) {
|
||||
case 0x11:
|
||||
sub_8014248(&gUnknown_80E2610[0], 0, 11, &gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E2610[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0x3:
|
||||
sub_8014248(&gUnknown_80E2640[0], 0, 11, &gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E2640[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0x4:
|
||||
sub_8014248(&gUnknown_80E2680[0], 0, 11, &gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E2680[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0x12:
|
||||
sub_8014248(&gUnknown_80E26B0[0], 0, 11, &gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E26B0[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0x13:
|
||||
sub_8014248(&gUnknown_80E26F0[0], 0, 11, &gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E26F0[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0x14:
|
||||
sub_8014248(&gUnknown_80E2728[0], 0, 11, &gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E2728[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -763,7 +799,7 @@ void sub_8032828(void)
|
||||
sub_80141B4(&gUnknown_80E276C[0], 0, 0, 0x101);
|
||||
break;
|
||||
case 0x3D:
|
||||
sub_8014248(&gUnknown_80E27A4[0], 0, 6, &gUnknown_80E2458, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E27A4[0], 0, 6, gUnknown_80E2458, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0x43:
|
||||
sub_80141B4(&gUnknown_80E2814[0], 0, 0, 0x101);
|
||||
@@ -802,7 +838,7 @@ void sub_8032828(void)
|
||||
}
|
||||
break;
|
||||
case 0x35:
|
||||
sub_8014248(&gUnknown_80E29A0[0], 0, 6, &gUnknown_80E22B4, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E29A0[0], 0, 6, gUnknown_80E22B4, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0x37:
|
||||
switch ((u32)gUnknown_203B33C->unk524) {
|
||||
@@ -864,7 +900,7 @@ void sub_8032828(void)
|
||||
sub_80141B4(&gUnknown_80E2B90[0], 0, 0, 0x101);
|
||||
break;
|
||||
case 0x21:
|
||||
sub_8014248(&gUnknown_80E2BE0[0], 0, 15, &gUnknown_80E23A8, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E2BE0[0], 0, 15, gUnknown_80E23A8, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0x25:
|
||||
sub_80141B4(&gUnknown_80E2C48[0], 0, 0, 0x101);
|
||||
@@ -878,15 +914,15 @@ void sub_8032828(void)
|
||||
break;
|
||||
case 0x27:
|
||||
sub_8006518(gUnknown_203B33C->unk35C);
|
||||
SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E2334, &gUnknown_80E234C, TRUE, 0, FALSE);
|
||||
SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E2334, gUnknown_80E234C, TRUE, 0, FALSE);
|
||||
sub_8023DA4();
|
||||
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
|
||||
break;
|
||||
case 0x24:
|
||||
sub_8014248(&gUnknown_80E2C94[0], 0, 16, &gUnknown_80E22F0, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E2C94[0], 0, 16, gUnknown_80E22F0, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0x29:
|
||||
sub_8014248(&gUnknown_80E2CD4[0], 0, 6, &gUnknown_80E22D0, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E2CD4[0], 0, 6, gUnknown_80E22D0, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0x1C:
|
||||
sub_80141B4(&gUnknown_80E2CE8[0], 0, 0, 0x101);
|
||||
@@ -899,17 +935,17 @@ void sub_8032828(void)
|
||||
}
|
||||
break;
|
||||
case 0x20:
|
||||
sub_8014248(&gUnknown_80E2D30[0], 0, 6, &gUnknown_80E22B4, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E2D30[0], 0, 6, gUnknown_80E22B4, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0x22:
|
||||
sub_80141B4(&gUnknown_80E2D60[0], 0, 0, 0x101);
|
||||
break;
|
||||
case 0x5:
|
||||
sub_8014248(&gUnknown_80E2D7C[0], 0, 6, &gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E2D7C[0], 0, 6, gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0xA:
|
||||
case 0x4C:
|
||||
sub_8014248(&gUnknown_80E2E20[0], 0, 6, &gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E2E20[0], 0, 6, gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0xB:
|
||||
case 0x4D:
|
||||
@@ -1005,7 +1041,7 @@ void sub_8032828(void)
|
||||
sub_80306A8(1, 0, NULL, 6);
|
||||
break;
|
||||
case 0x15:
|
||||
sub_8014248(&gUnknown_80E2F78[0], 0, 6, &gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E2F78[0], 0, 6, gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0xF:
|
||||
sub_80141B4(&gUnknown_80E2FA0[0], 0, 0, 0x101);
|
||||
@@ -1034,14 +1070,14 @@ void sub_8032828(void)
|
||||
sub_80151C0(4, gUnknown_203B33C->passwordBuffer);
|
||||
break;
|
||||
case 0x5A:
|
||||
sub_8014248(&gUnknown_80E30A4[0], 0, 6, &gUnknown_80E2458, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E30A4[0], 0, 6, gUnknown_80E2458, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0x5B:
|
||||
sub_80141B4(gUnknown_80E30D0, 0, 0, 0x101);
|
||||
break;
|
||||
case 0x5D:
|
||||
sub_8006518(gUnknown_203B33C->unk35C);
|
||||
SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, &gUnknown_80E2408, TRUE, 0, FALSE);
|
||||
SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, gUnknown_80E2408, TRUE, 0, FALSE);
|
||||
sub_803092C();
|
||||
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
|
||||
break;
|
||||
@@ -1057,7 +1093,7 @@ void sub_8032828(void)
|
||||
break;
|
||||
case 0x60:
|
||||
sub_8006518(gUnknown_203B33C->unk35C);
|
||||
SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E23F0, &gUnknown_80E2408, TRUE, 0, FALSE);
|
||||
SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E23F0, gUnknown_80E2408, TRUE, 0, FALSE);
|
||||
sub_801CCD8();
|
||||
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
|
||||
break;
|
||||
@@ -1173,7 +1209,7 @@ void sub_8032828(void)
|
||||
sub_80141B4(gUnknown_80E3288, 0, 0, 0x101);
|
||||
break;
|
||||
case 0x69:
|
||||
sub_8014248(&gUnknown_80E2D7C[0], 0, 6, &gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E2D7C[0], 0, 6, gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0x59:
|
||||
sub_80922B4(buffer, GetPlayerPokemonStruct()->name, POKEMON_NAME_LENGTH);
|
||||
@@ -1181,7 +1217,7 @@ void sub_8032828(void)
|
||||
sub_80141B4(gUnknown_203B33C->unk424, 0, 0, 0x101);
|
||||
break;
|
||||
case 0x58:
|
||||
sub_8014248(&gUnknown_80E331C[0], 0, 6, &gUnknown_80E24D8, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E331C[0], 0, 6, gUnknown_80E24D8, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0x75:
|
||||
sub_80141B4(gUnknown_80E317C, 0, 0, 0x101);
|
||||
@@ -1193,16 +1229,16 @@ void sub_8032828(void)
|
||||
sub_80141B4(&gUnknown_80E3378[0], 0, 0, 0x101);
|
||||
break;
|
||||
case 0x56:
|
||||
sub_8014248(&gUnknown_80E339C[0], 0, 22, &gUnknown_80E24B0, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E339C[0], 0, 22, gUnknown_80E24B0, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0x55:
|
||||
sub_8014248(&gUnknown_80E33D8[0], 0, 21, &gUnknown_80E2470, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E33D8[0], 0, 21, gUnknown_80E2470, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0x53:
|
||||
sub_80141B4(&gUnknown_80E3430[0], 0, 0, 0x101);
|
||||
break;
|
||||
case 0x54:
|
||||
sub_8014248(&gUnknown_80E34B0[0], 0, 6, &gUnknown_80E2440, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E34B0[0], 0, 6, gUnknown_80E2440, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0x46:
|
||||
sub_80141B4(&gUnknown_80E34F0[0], 0, 0, 0x101);
|
||||
@@ -1220,12 +1256,12 @@ void sub_8032828(void)
|
||||
case 0x1E:
|
||||
case 0x33:
|
||||
sub_8006518(gUnknown_203B33C->unk35C);
|
||||
SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, &gUnknown_80E234C, TRUE, 0, FALSE);
|
||||
SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, gUnknown_80E234C, TRUE, 0, FALSE);
|
||||
sub_803092C();
|
||||
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
|
||||
break;
|
||||
case 0x4A:
|
||||
sub_8014248(&gUnknown_80E352C[0], 0, 6, &gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E352C[0], 0, 6, gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0x44:
|
||||
sub_80141B4(&gUnknown_80E355C[0], 0, 0, 0x101);
|
||||
@@ -1238,12 +1274,12 @@ void sub_8032828(void)
|
||||
break;
|
||||
case 0x52:
|
||||
if (gUnknown_203B33C->unk40 == 6)
|
||||
sub_8014248(&gUnknown_80E360C[0], 0, 11, &gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E360C[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
|
||||
else
|
||||
sub_8014248(&gUnknown_80E3644[0], 0, 11, &gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
|
||||
sub_8014248(&gUnknown_80E3644[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
|
||||
break;
|
||||
case 0x7C:
|
||||
sub_8014248(&gUnknown_80E367C[0], 0, gUnknown_203B33C->unk564, &gUnknown_80E25B4, 0, 4, 0, 0, 0x101);
|
||||
sub_8014248(&gUnknown_80E367C[0], 0, gUnknown_203B33C->unk564, gUnknown_80E25B4, 0, 4, 0, 0, 0x101);
|
||||
break;
|
||||
case 0x7D:
|
||||
switch (gUnknown_203B33C->unk564) {
|
||||
@@ -1262,7 +1298,7 @@ void sub_8032828(void)
|
||||
}
|
||||
break;
|
||||
case 0x7A:
|
||||
sub_8014248(&gUnknown_80E367C[0], 0, gUnknown_203B33C->unk564, &gUnknown_80E2554, 0, 4, 0, 0, 0x101);
|
||||
sub_8014248(&gUnknown_80E367C[0], 0, gUnknown_203B33C->unk564, gUnknown_80E2554, 0, 4, 0, 0, 0x101);
|
||||
break;
|
||||
case 0x7B:
|
||||
switch (gUnknown_203B33C->unk564) {
|
||||
@@ -1284,7 +1320,7 @@ void sub_8032828(void)
|
||||
}
|
||||
break;
|
||||
case 0x78:
|
||||
sub_8014248(&gUnknown_80E367C[0], 0, gUnknown_203B33C->unk564, &gUnknown_80E24F8, 0, 4, 0, 0, 0x101);
|
||||
sub_8014248(&gUnknown_80E367C[0], 0, gUnknown_203B33C->unk564, gUnknown_80E24F8, 0, 4, 0, 0, 0x101);
|
||||
break;
|
||||
case 0x79:
|
||||
switch (gUnknown_203B33C->unk564) {
|
||||
@@ -1648,7 +1684,7 @@ void sub_8033DBC(void)
|
||||
switch(sub_8039068(mailMode, gUnknown_203B33C->passwordBuffer, &mail))
|
||||
{
|
||||
case PASSWORD_ENTRY_INCORRECT_PASSWORD:
|
||||
sub_8014248(gUnknown_80E48A8, 0, 6, &gUnknown_80E2290, 0, 4, 0, 0, 0x101);
|
||||
sub_8014248(gUnknown_80E48A8, 0, 6, gUnknown_80E2290, 0, 4, 0, 0, 0x101);
|
||||
SetFriendRescueMenuState(0x1B);
|
||||
break;
|
||||
case PASSWORD_ENTRY_NOT_SOS_MAIL:
|
||||
@@ -2532,7 +2568,7 @@ void sub_8034D74(void)
|
||||
switch(sub_8039068(PASSWORD_ENTRY_THANK_YOU_MAIL_MODE, gUnknown_203B33C->passwordBuffer, &mail))
|
||||
{
|
||||
case PASSWORD_ENTRY_INCORRECT_PASSWORD:
|
||||
sub_8014248(gUnknown_80E48A8, 0, 6, &gUnknown_80E2440, 0, 4, 0, 0, 0x101);
|
||||
sub_8014248(gUnknown_80E48A8, 0, 6, gUnknown_80E2440, 0, 4, 0, 0, 0x101);
|
||||
SetFriendRescueMenuState(0x74);
|
||||
break;
|
||||
case PASSWORD_ENTRY_NOT_THANK_YOU_MAIL:
|
||||
|
||||
@@ -13,9 +13,7 @@ extern const CallbackData gUnknown_811736C;
|
||||
extern const DebugLocation gUnknown_8117538[];
|
||||
|
||||
extern void InitActionWithParams(Action *action, const CallbackData *callbacks, void *parent, s16 group, s8 sector);
|
||||
extern void sub_809D648(void *);
|
||||
extern void sub_80A2D00(unkStruct_3001B70 *);
|
||||
extern void InitActionScriptData(GroundMapAction *, const DebugLocation *);
|
||||
extern void sub_80A2D68(unkStruct_3001B70 *);
|
||||
extern void sub_80A2D88(unkStruct_3001B70 *);
|
||||
|
||||
@@ -32,7 +30,7 @@ void FreeGroundMapAction(void)
|
||||
{
|
||||
GroundMap_Reset();
|
||||
sub_80A5EBC();
|
||||
sub_809D648(gGroundMapAction);
|
||||
sub_809D648((Action *)gGroundMapAction);
|
||||
MemoryFree(gGroundMapAction);
|
||||
gGroundMapAction = NULL;
|
||||
}
|
||||
@@ -41,7 +39,7 @@ void GroundMap_Reset(void)
|
||||
{
|
||||
sub_80015C0(0, 0x37);
|
||||
sub_80015C0(0, 0x38);
|
||||
InitActionScriptData(gGroundMapAction, gUnknown_8117538);
|
||||
InitActionScriptData((Action *)gGroundMapAction, gUnknown_8117538);
|
||||
|
||||
if (gUnknown_3001B70 != NULL) {
|
||||
sub_80A2D00(gUnknown_3001B70);
|
||||
|
||||
@@ -16,7 +16,6 @@ extern const DebugLocation gUnknown_8117698;
|
||||
extern void GroundMap_GetStationScript(ScriptInfoSmall *, s16, u32, u32);
|
||||
|
||||
extern u8 sub_809D678(void *);
|
||||
extern void sub_809D710(u8 *, ScriptInfoSmall *, s32);
|
||||
extern bool8 sub_809D968(void *, s32);
|
||||
|
||||
static void sub_80A4BE8(ScriptInfoSmall *script, s16 r1)
|
||||
|
||||
@@ -17,14 +17,151 @@ extern u8 gUnknown_811656C[];
|
||||
extern DebugLocation gUnknown_81165C8;
|
||||
|
||||
extern void sub_809D520(void *);
|
||||
extern void InitScriptData(void *);
|
||||
extern u8 sub_80AC378(void);
|
||||
extern u8 sub_80AD290(void);
|
||||
extern u8 sub_80A8B74(void);
|
||||
extern u8 sub_809A750(void);
|
||||
extern ScriptCommand *sub_80A2460(Action *param_1, u32);
|
||||
extern s32 sub_80A882C(s16);
|
||||
extern s32 sub_80AC240(s16);
|
||||
extern s32 sub_80AD158(s16);
|
||||
void FatalError(u32 *, const char *, ...) __attribute__((noreturn));
|
||||
|
||||
// -1 didn't match
|
||||
void sub_809D520(void *a0)
|
||||
{
|
||||
u16 *ptr = a0;
|
||||
u16 v = 0xFFFF;
|
||||
*ptr = v;
|
||||
}
|
||||
|
||||
s32 sub_809D52C(void *a0)
|
||||
{
|
||||
s16 *ptr = a0;
|
||||
|
||||
switch (ptr[0])
|
||||
{
|
||||
case 0: return 0;
|
||||
case 1: return sub_80A882C(ptr[1]);
|
||||
case 2: return sub_80AC240(ptr[1]);
|
||||
case 3: return sub_80AD158(ptr[1]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void InitScriptData(ScriptData *a0)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
a0->state = -1;
|
||||
a0->savedState = 0;
|
||||
a0->script.ptr2 = 0;
|
||||
a0->script.ptr = 0;
|
||||
a0->savedScript.ptr2 = 0;
|
||||
a0->savedScript.ptr = 0;
|
||||
a0->curScriptOp = 0;
|
||||
a0->curPtr = 0;
|
||||
a0->unk22 = -1;
|
||||
a0->unk24 = 0;
|
||||
a0->unk26 = 0xFF;
|
||||
a0->branchDiscriminant = 0;
|
||||
a0->unk2A = 0;
|
||||
a0->unk2C = 0;
|
||||
a0->unk30 = 0;
|
||||
for (i = 0; i < 4; i++) {
|
||||
a0->unk50[i].raw = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void InitAction(Action *a0)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
a0->callbacks = NULL;
|
||||
a0->parentObject = NULL;
|
||||
a0->group = -1;
|
||||
a0->sector = 0xFF;
|
||||
sub_809D520(&a0->unkC);
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
a0->predefinedScripts[i] = NULL;
|
||||
}
|
||||
|
||||
InitScriptData(&a0->scriptData);
|
||||
InitScriptData(&a0->scriptData2);
|
||||
}
|
||||
|
||||
void InitActionWithParams(Action *action, const CallbackData *callbacks, void *parent, s16 group, s8 sector)
|
||||
{
|
||||
s32 group_s32;
|
||||
s32 sector_s32;
|
||||
|
||||
group_s32 = group;
|
||||
sector_s32 = sector;
|
||||
|
||||
InitAction(action);
|
||||
|
||||
action->callbacks = callbacks;
|
||||
action->parentObject = parent;
|
||||
action->group = group_s32;
|
||||
action->sector = sector_s32;
|
||||
action->unk8[0] = callbacks->maybeId;
|
||||
|
||||
if(callbacks->func04)
|
||||
action->unk8[1] = callbacks->func04(parent);
|
||||
else
|
||||
action->unk8[1] = 0;
|
||||
}
|
||||
|
||||
void sub_809D648(Action *action)
|
||||
{
|
||||
InitAction(action);
|
||||
}
|
||||
|
||||
UNUSED s16 sub_809D654(Action *action)
|
||||
{
|
||||
return action->scriptData.savedState;
|
||||
}
|
||||
|
||||
UNUSED s16 sub_809D65C(Action *action)
|
||||
{
|
||||
if(action->scriptData.savedState != 0)
|
||||
return action->scriptData.state;
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
bool8 sub_809D678(Action *action)
|
||||
{
|
||||
return action->scriptData.savedState == 0 ? FALSE : TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_809D684(Action *action, ScriptCommand **scriptPtr)
|
||||
{
|
||||
if(action->scriptData.savedState != 0)
|
||||
{
|
||||
if(action->scriptData.savedScript.ptr != 0)
|
||||
{
|
||||
if(action->scriptData.savedScript.ptr2 == *scriptPtr) return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(action->scriptData.script.ptr2 == *scriptPtr) return 1;
|
||||
}
|
||||
}
|
||||
if(action->scriptData2.savedState != 0)
|
||||
{
|
||||
if(action->scriptData2.savedScript.ptr != 0)
|
||||
{
|
||||
if(action->scriptData2.savedScript.ptr2 == *scriptPtr) return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(action->scriptData2.script.ptr2 == *scriptPtr) return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void SetPredefinedScript(Action *param_1, s16 index, ScriptCommand *param_3)
|
||||
{
|
||||
param_1->predefinedScripts[index] = param_3;
|
||||
@@ -58,7 +195,7 @@ void sub_809D710(Action *param_1, ScriptInfoSmall *script, s16 index)
|
||||
}
|
||||
}
|
||||
|
||||
bool8 InitActionScriptData(Action *param_1, DebugLocation *unused)
|
||||
bool8 InitActionScriptData(Action *param_1, const DebugLocation *unused)
|
||||
{
|
||||
InitScriptData(¶m_1->scriptData);
|
||||
InitScriptData(¶m_1->scriptData2);
|
||||
|
||||
@@ -1,11 +1,16 @@
|
||||
#include "global.h"
|
||||
#include "debug.h"
|
||||
#include "ground_link.h"
|
||||
#include "ground_script.h"
|
||||
#include "ground_sprite.h"
|
||||
#include "ground_map.h"
|
||||
#include "dungeon.h"
|
||||
#include "other_random.h"
|
||||
#include "rescue_team_info.h"
|
||||
#include "code_80118A4.h"
|
||||
#include "code_8097670.h"
|
||||
#include "exclusive_pokemon.h"
|
||||
#include "items.h"
|
||||
|
||||
#ifndef NONMATCHING
|
||||
#define GROUND_SCRIPT_INCOMPLETE_DECLARATIONS
|
||||
@@ -37,7 +42,6 @@ typedef struct GroundEffectData {
|
||||
ScriptCommand *script;
|
||||
} GroundEffectData;
|
||||
|
||||
void GroundSprite_Reset(s16);
|
||||
void GroundMap_Select(s16);
|
||||
void GroundMap_SelectDungeon(s16, DungeonLocation*, u8);
|
||||
void GroundMap_ExecuteEnter(s16);
|
||||
@@ -47,7 +51,6 @@ void GroundMap_ExecuteStation(s32, s32, s32, bool8);
|
||||
void GroundLives_ExecuteScript(s32, s16 *, ScriptInfoSmall *);
|
||||
void GroundObject_ExecuteScript(s32, s16 *, ScriptInfoSmall *);
|
||||
void GroundEffect_ExecuteScript(s32, s16 *, ScriptInfoSmall *);
|
||||
void GroundLink_Select(s16);
|
||||
void GroundLives_Select(s16, s32 group, s32 sector);
|
||||
void GroundObject_Select(s16, s32 group, s32 sector);
|
||||
void GroundEffect_Select(s16, s32 group, s32 sector);
|
||||
@@ -94,27 +97,15 @@ u32 sub_8002D54();
|
||||
u8 sub_8002DF0(Position32*, Position32*, Position32*, Position32*);
|
||||
s32 sub_8009FB8();
|
||||
|
||||
// TODO: move to code_80118A4.h
|
||||
u32 StopAllMusic_1();
|
||||
u32 xxx_call_start_new_bgm();
|
||||
u32 xxx_call_queue_bgm();
|
||||
u32 xxx_call_play_fanfare_se();
|
||||
u32 xxx_call_fade_out_fanfare_se();
|
||||
|
||||
bool8 sub_8021700(s32);
|
||||
bool8 sub_802FCF0(void);
|
||||
|
||||
|
||||
s32 FindItemInInventory();
|
||||
u32 ShiftItemsDownFrom();
|
||||
void sub_809733C(s16, bool8);
|
||||
void sub_80973A8(s16, bool8);
|
||||
void sub_8097418(s16, bool8);
|
||||
void sub_80975A8(s16, bool8);
|
||||
void sub_80976F8(u8);
|
||||
u32 sub_8098100();
|
||||
void sub_8098D1C(s32, u32, s32);
|
||||
void sub_8098D80(s32);
|
||||
void sub_8098E18(s32, s32);
|
||||
u32 sub_80999E8();
|
||||
u32 sub_80999FC();
|
||||
@@ -129,7 +120,7 @@ u32 sub_809A738();
|
||||
u32 sub_809A768();
|
||||
bool8 ScriptPrintNullTextbox(void);
|
||||
bool8 ScriptPrintEmptyTextbox(void);
|
||||
u32 sub_809A83C();
|
||||
void sub_809A83C(s16);
|
||||
u32 sub_809AC7C();
|
||||
u32 sub_809ADD8();
|
||||
bool8 ScriptPrintText(s32, s16, char*);
|
||||
@@ -154,14 +145,8 @@ void sub_809D1E4(s32, s32, s32);
|
||||
void sub_809D208(s32, Position32*, s32);
|
||||
void sub_809D220(s32, s32, s32);
|
||||
u32 sub_809D52C();
|
||||
u32 InitScriptData();
|
||||
void sub_809D710(Action*, ScriptInfoSmall*, s16);
|
||||
u8 sub_809D8EC(Action*, s16);
|
||||
bool8 sub_809D940(void);
|
||||
void sub_809D9B8(s16);
|
||||
bool8 sub_809DA08(Action*, s16, u8);
|
||||
ScriptCommand *sub_80A242C(Action*, s32);
|
||||
ScriptCommand *sub_80A2460(Action*, s32);
|
||||
s16 sub_80A4D7C(s32);
|
||||
s16 sub_80A7AE8(s16);
|
||||
void sub_80A87AC(s32, s32);
|
||||
@@ -184,6 +169,9 @@ void DeleteBlankGroundLives(void);
|
||||
void DeleteBlankGroundObjects(void);
|
||||
void DeleteBlankGroundEffects(void);
|
||||
|
||||
u32 sub_80A14E8(u32, u8, u32, u32);
|
||||
s16 HandleAction(void *, DebugLocation *);
|
||||
|
||||
extern int gFormatData_202DE30[10];
|
||||
|
||||
extern s16 gCurrentMap;
|
||||
@@ -207,8 +195,11 @@ extern char gUnknown_8116684[];
|
||||
extern char gUnknown_81166C0[];
|
||||
extern char gUnknown_81166D8[];
|
||||
|
||||
|
||||
extern const CallbackData gUnknown_8116488;
|
||||
extern DebugLocation gUnknown_81166B4;
|
||||
extern DebugLocation gUnknown_81166F8;
|
||||
extern DebugLocation gUnknown_8116704;
|
||||
extern ScriptCommand gUnknown_81164E4;
|
||||
|
||||
// Return values:
|
||||
// This function returns what's likely an enum, which controls the state of the script engine state machine, and possibly provides information to code calling the engine.
|
||||
@@ -1608,7 +1599,9 @@ s32 ExecuteScriptCommand(Action *action) {
|
||||
break;
|
||||
}
|
||||
case 0x41: {
|
||||
if (FindItemInInventory((u8)curCmd.argShort) >= 0) ShiftItemsDownFrom();
|
||||
s32 val;
|
||||
val = FindItemInInventory(curCmd.argShort);
|
||||
if ( val >= 0) ShiftItemsDownFrom(val);
|
||||
break;
|
||||
}
|
||||
case 0xc0 ... 0xcb: {
|
||||
@@ -1872,3 +1865,34 @@ s32 ExecuteScriptCommand(Action *action) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UNUSED u32 sub_80A1440(u32 r0, u32 r1, u32 r2)
|
||||
{
|
||||
return sub_80A14E8(0, r0, r1, r2);
|
||||
}
|
||||
|
||||
UNUSED bool8 GroundScript_ExecuteTrigger(s16 r0)
|
||||
{
|
||||
s32 ret;
|
||||
ScriptInfoSmall scriptInfo;
|
||||
Action action;
|
||||
FunctionScript *ptr;
|
||||
|
||||
ptr = &gFunctionScriptTable[r0];
|
||||
|
||||
if(ptr->unk2 != 0xB)
|
||||
return FALSE;
|
||||
InitActionWithParams(&action, &gUnknown_8116488, NULL, 0, 0);
|
||||
sub_809D710(NULL, &scriptInfo, r0);
|
||||
GroundScript_ExecutePP(&action, NULL, &scriptInfo, &gUnknown_81166F8);
|
||||
|
||||
action.scriptData.savedScript = action.scriptData.script;
|
||||
action.scriptData.savedScript.ptr = &gUnknown_81164E4;
|
||||
action.scriptData.savedScript.ptr2 = &gUnknown_81164E4;
|
||||
ret = HandleAction(&action, &gUnknown_8116704);
|
||||
sub_809D648(&action);
|
||||
if(ret == 0)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
116
src/ground_script_2.c
Normal file
116
src/ground_script_2.c
Normal file
@@ -0,0 +1,116 @@
|
||||
#include "debug.h"
|
||||
#include "global.h"
|
||||
#include "ground_map_1.h"
|
||||
#include "ground_script.h"
|
||||
|
||||
s32 sub_8001658(ScriptUnion832*, s32);
|
||||
u8 FlagJudge(s32 r0, s32 r1, u32 operation);
|
||||
|
||||
extern u8 gUnknown_2039A36;
|
||||
extern u8 gUnknown_2039A38[];
|
||||
extern u32 gUnknown_2039B48[];
|
||||
extern u8 gUnknown_2039AC0[];
|
||||
extern u8 gUnknown_8116848[];
|
||||
|
||||
s32 sub_80A8B1C(s16);
|
||||
s32 sub_80AC320(s16);
|
||||
s32 sub_80AD238(s16);
|
||||
|
||||
// TODO: this is still WIP
|
||||
|
||||
// void GroundScript_Unlock(void)
|
||||
// {
|
||||
// s32 index;
|
||||
// u8 temp;
|
||||
// s16 temp_s16;
|
||||
//
|
||||
// if(gUnknown_2039A36 != 0)
|
||||
// {
|
||||
// gUnknown_2039A36 = 0;
|
||||
// for(index = 0; index < 0x81; index++)
|
||||
// {
|
||||
// if(gUnknown_2039A38[index] != 0)
|
||||
// {
|
||||
// Log(1, gUnknown_8116848, index);
|
||||
// temp = sub_80A4D2C(index);
|
||||
// temp |= sub_80A8B1C(index);
|
||||
// temp |= sub_80AC320(index);
|
||||
// temp |= sub_80AD238(index);
|
||||
//
|
||||
// if(gUnknown_2039AC0[index] != 0)
|
||||
// {
|
||||
// if (temp != 0)
|
||||
// {
|
||||
// temp_s16 = index;
|
||||
// temp_s16 |= 0x80;
|
||||
// sub_80A4D2C(temp_s16);
|
||||
// sub_80A8B1C(temp_s16);
|
||||
// sub_80AC320(temp_s16);
|
||||
// sub_80AD238(temp_s16);
|
||||
// gUnknown_2039AC0[index] = 0;
|
||||
// }
|
||||
// }
|
||||
// else {
|
||||
// gUnknown_2039A38[index] = 0;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
ScriptCommand *sub_80A242C(Action *action, s32 r1)
|
||||
{
|
||||
ScriptCommand script;
|
||||
ScriptCommand *scriptPtr2;
|
||||
ScriptCommand *scriptPtr;
|
||||
|
||||
scriptPtr2 = action->scriptData.script.ptr2;
|
||||
scriptPtr = scriptPtr2 + 1;
|
||||
|
||||
while(1) {
|
||||
script = *scriptPtr;
|
||||
scriptPtr++;
|
||||
|
||||
if(script.op == 0xF4)
|
||||
{
|
||||
if(r1 == script.argShort)
|
||||
return scriptPtr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ScriptCommand *sub_80A2460(Action *action, s32 r1)
|
||||
{
|
||||
ScriptCommand script;
|
||||
ScriptCommand *scriptPtr;
|
||||
s32 temp;
|
||||
|
||||
scriptPtr = action->scriptData.script.ptr;
|
||||
|
||||
while(1) {
|
||||
script = *scriptPtr;
|
||||
|
||||
if (script.op == 0xCC)
|
||||
{
|
||||
if(FlagJudge(r1, script.arg1, 0x2))
|
||||
return sub_80A242C(action, script.argShort);
|
||||
}
|
||||
else if (script.op == 0xCD)
|
||||
{
|
||||
if(FlagJudge(r1, script.arg1, script.argByte))
|
||||
return sub_80A242C(action, script.argShort);
|
||||
}
|
||||
else if (script.op == 0xCE)
|
||||
{
|
||||
temp = sub_8001658(action->scriptData.unk50, (s16)script.arg1);
|
||||
if(FlagJudge(r1, temp, script.argByte))
|
||||
return sub_80A242C(action, script.argShort);
|
||||
}
|
||||
else
|
||||
{
|
||||
return scriptPtr;
|
||||
}
|
||||
scriptPtr++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
#include "gba/defines.h"
|
||||
#include "global.h"
|
||||
#include "code_800558C.h"
|
||||
#include "code_800DAC0.h"
|
||||
@@ -10,13 +11,16 @@
|
||||
|
||||
IWRAM_DATA unkStruct_3001B7C *gUnknown_3001B7C = {0};
|
||||
|
||||
extern unkStruct_2039DB0 gUnknown_2039DB0;
|
||||
extern unkStruct_2039DB0 gUnknown_2039DC0;
|
||||
extern u16 gUnknown_2039DCC;
|
||||
extern u16 gUnknown_2039DCE;
|
||||
extern u8 gUnknown_2039DD0;
|
||||
extern u32 gUnknown_2039DD4;
|
||||
extern OpenedFile *gUnknown_203B4B4;
|
||||
EWRAM_DATA unkStruct_2039DB0 gUnknown_2039DB0 = {0};
|
||||
EWRAM_DATA u32 sUnknown_2039DBC = {0}; // Unused, for alignment
|
||||
EWRAM_DATA unkStruct_2039DB0 gUnknown_2039DC0 = {0};
|
||||
EWRAM_DATA u16 gUnknown_2039DCC = {0};
|
||||
EWRAM_DATA u16 gUnknown_2039DCE = {0};
|
||||
EWRAM_DATA u8 gUnknown_2039DD0 = {0};
|
||||
EWRAM_DATA u8 gUnknown_2039DD1[3] = {0, 0, 0}; // Unused, for alignment
|
||||
EWRAM_DATA u32 gUnknown_2039DD4 = {0};
|
||||
|
||||
EWRAM_DATA_2 OpenedFile *gUnknown_203B4B4 = {0};
|
||||
|
||||
// dungeon_sbin.s
|
||||
extern const struct FileArchive gDungeonFileArchive;
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
#include "code_800D090.h"
|
||||
#include "code_8012A18_1.h"
|
||||
#include "code_803C1D0.h"
|
||||
#include "code_803D110.h"
|
||||
#include "constants/colors.h"
|
||||
#include "code_803D0D8.h"
|
||||
#include "dungeon.h"
|
||||
#include "event_flag.h"
|
||||
#include "exclusive_pokemon.h"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "code_80130A8.h"
|
||||
#include "code_803D0D8.h"
|
||||
#include "code_8094F88.h"
|
||||
#include "constants/main_menu.h"
|
||||
#include "dungeon.h"
|
||||
@@ -251,7 +252,6 @@ void sub_8039174(void);
|
||||
void DisplayPasswordAcceptScreen(void);
|
||||
u32 sub_8039068(u32, u8 *passwordBuffer, unkStruct_203B480 *r0);
|
||||
void sub_80391F8(void);
|
||||
bool8 sub_803D204(u8 *, unkStruct_203B480 *);
|
||||
u32 ConvertMenutoRescuePasswordState(u32);
|
||||
|
||||
void CreateRescuePasswordMenu(u32 currMenu)
|
||||
|
||||
68
src/status.c
68
src/status.c
@@ -17,6 +17,7 @@
|
||||
#include "dungeon_pokemon_attributes.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "math.h"
|
||||
#include "number_util.h"
|
||||
#include "status_checks_1.h"
|
||||
#include "structs/map.h"
|
||||
#include "structs/str_dungeon.h"
|
||||
@@ -24,6 +25,11 @@
|
||||
extern u8 gAvailablePokemonNames[];
|
||||
extern u8 gUnknown_202DE58[];
|
||||
|
||||
extern u8 *gUnknown_80FBD78[];
|
||||
extern u8 *gUnknown_80FBD9C[];
|
||||
extern u8 *gUnknown_80FBE40[];
|
||||
extern u8 *gUnknown_80FBE3C[];
|
||||
extern u8 *gUnknown_80FBE3C[];
|
||||
extern u8 *gUnknown_80FC084[];
|
||||
extern u8 *gUnknown_80FC090[];
|
||||
extern u8 *gUnknown_80FC1C4[];
|
||||
@@ -146,6 +152,13 @@ extern void nullsub_80(Entity *);
|
||||
extern void nullsub_81(Entity *);
|
||||
extern void nullsub_82(Entity *);
|
||||
extern void nullsub_83(Entity *);
|
||||
extern void nullsub_84(Entity *);
|
||||
|
||||
extern void sub_80943A0(void*, s32);
|
||||
extern void sub_80942C0(void*, s32, s32);
|
||||
extern void sub_8094318(u32 *, u32, u32 );
|
||||
extern void sub_8041D9C(Entity *);
|
||||
|
||||
extern void sub_803F580(u32);
|
||||
extern void sub_8040A84(void);
|
||||
extern void sub_8041CA8(Entity *);
|
||||
@@ -1225,3 +1238,58 @@ void EncoreStatusTarget(Entity *pokemon,Entity *target)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8078A58(struct Entity *pokemon, struct Entity *target, s32 param_3, s32 param_4)
|
||||
{
|
||||
struct EntityInfo *targetInfo;
|
||||
u32 r7;
|
||||
u32 sp_0x0;
|
||||
u32 sp_0x4;
|
||||
u32 sp_0x8;
|
||||
u32 sp_0xC;
|
||||
u32 sp_0x10;
|
||||
u32 temp;
|
||||
u32 temp2;
|
||||
u32 temp3;
|
||||
|
||||
if (!EntityExists(target))
|
||||
return;
|
||||
|
||||
targetInfo = target->info;
|
||||
|
||||
if (param_4 != 0) {
|
||||
sub_80943A0(&sp_0x0, param_4);
|
||||
temp2 = sp_0x0;
|
||||
r7 = targetInfo->maxBelly;
|
||||
sub_80942C0(&sp_0x4, r7, temp2);
|
||||
targetInfo->maxBelly = sp_0x4;
|
||||
temp3 = targetInfo->belly;
|
||||
sub_8094318(&sp_0x8, temp3, targetInfo->maxBelly);
|
||||
targetInfo->belly = sp_0x8;
|
||||
SetMessageArgument(gAvailablePokemonNames, target, 0);
|
||||
|
||||
if (RoundUpFixedPoint(r7) != RoundUpFixedPoint(targetInfo->maxBelly)) {
|
||||
sub_8041D9C(target);
|
||||
sub_80522F4(pokemon, target, *gUnknown_80FBD9C);
|
||||
}
|
||||
else
|
||||
sub_80522F4(pokemon, target, *gUnknown_80FBE3C);
|
||||
}
|
||||
else {
|
||||
sub_80943A0(&sp_0xC, param_3);
|
||||
temp = sp_0xC;
|
||||
r7 = targetInfo->belly;
|
||||
sub_80942C0(&sp_0x10, r7, temp);
|
||||
targetInfo->belly = sp_0x10;
|
||||
SetMessageArgument(gAvailablePokemonNames, target, 0);
|
||||
|
||||
if (RoundUpFixedPoint(r7) != RoundUpFixedPoint(targetInfo->belly)) {
|
||||
nullsub_84(target);
|
||||
sub_80522F4(pokemon, target, *gUnknown_80FBD78);
|
||||
}
|
||||
else
|
||||
sub_80522F4(pokemon, target, *gUnknown_80FBE40);
|
||||
}
|
||||
|
||||
EntityUpdateStatusSprites(target);
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
extern void sub_807F43C(Entity *, Entity *);
|
||||
extern void sub_807DC68(Entity *, Entity *);
|
||||
extern void sub_8078A58(Entity *, Entity *, s16, u32);
|
||||
extern void sub_8078A58(Entity *, Entity *, s32, u32);
|
||||
extern u32 sub_803D73C(u32);
|
||||
extern void sub_8045C28(Item *, u8 , u8);
|
||||
extern void sub_80464C8(Entity *, Position *, Item *);
|
||||
|
||||
238
src/trap_1.c
238
src/trap_1.c
@@ -5,6 +5,7 @@
|
||||
#include "code_803E668.h"
|
||||
#include "code_806CD90.h"
|
||||
#include "code_8092334.h"
|
||||
#include "dungeon_map_access.h"
|
||||
#include "items.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "structs/str_dungeon.h"
|
||||
@@ -71,6 +72,32 @@ void SaveSpeedCounters(unkStruct_8094924 *param_1, u8 *speedCounters, u32 numCou
|
||||
void SaveClientType(unkStruct_8094924 *param_1, u8 param_2);
|
||||
void sub_80421C0(Entity *, u16);
|
||||
void sub_804687C(Entity *, Position *, Position *, Item *, u32);
|
||||
extern void sub_8083018(unkStruct_8094924 *, u8 *);
|
||||
extern void sub_8081C50(unkStruct_8094924 *);
|
||||
extern void sub_8081C7C(unkStruct_8094924 *);
|
||||
extern void sub_8081F2C(unkStruct_8094924 *);
|
||||
extern void RestoreDungeonMusic(unkStruct_8094924 *);
|
||||
extern void RestoreItemData(unkStruct_8094924 *);
|
||||
extern void RestoreTrapData(unkStruct_8094924 *);
|
||||
extern void sub_808217C(unkStruct_8094924 *);
|
||||
extern void sub_8082FD4(unkStruct_8094924 *param_1, u8 *r1, u32 r2);
|
||||
extern void sub_8082FE0(unkStruct_8094924 *, u32 *, u32);
|
||||
u8 sub_80831DC(unkStruct_8094924 *r0);
|
||||
u8 sub_8083188(unkStruct_8094924 *r0);
|
||||
s16 sub_8083170(unkStruct_8094924 *r0);
|
||||
void sub_80831F8(unkStruct_8094924 *r0, Position *);
|
||||
void RestoreDungeonWeather(unkStruct_8094924 *r0, Weather *);
|
||||
void sub_8083220(unkStruct_8094924 *r0, u32 *);
|
||||
void sub_8083260(unkStruct_8094924 *r0, u32 *);
|
||||
void RestoreTile(unkStruct_8094924 *r0, Tile *);
|
||||
extern u16 sub_8083158(unkStruct_8094924 *param_1);
|
||||
void sub_80820A8(unkStruct_8094924 *r0, Item *);
|
||||
void sub_80460F8(Position *, Item *, u32);
|
||||
Entity *sub_8045684(u8, Position *, u8);
|
||||
u32 sub_80831A0(unkStruct_8094924 *param_1);
|
||||
void sub_8082280(unkStruct_8094924 *param_1,bool8 isTeamMember,s32 index);
|
||||
|
||||
extern u8 gUnknown_81071D4[];
|
||||
|
||||
void HandleTripTrap(Entity *pokemon, Entity *target)
|
||||
{
|
||||
@@ -761,3 +788,214 @@ void SaveDungeonWeather(unkStruct_8094924 *r0, Weather *weather)
|
||||
sub_80830B4(r0, weather->nullifyWeather);
|
||||
}
|
||||
|
||||
void sub_8081BF4(u8 *r0, u32 r1)
|
||||
{
|
||||
unkStruct_8094924 uStack_14;
|
||||
|
||||
sub_8082FD4(&uStack_14, r0, r1);
|
||||
|
||||
sub_8082FE0(&uStack_14, &uStack_14.unkC, 4);
|
||||
sub_8081C50(&uStack_14);
|
||||
sub_8081C7C(&uStack_14);
|
||||
sub_8081F2C(&uStack_14);
|
||||
RestoreDungeonMusic(&uStack_14);
|
||||
RestoreItemData(&uStack_14);
|
||||
RestoreTrapData(&uStack_14);
|
||||
sub_808217C(&uStack_14);
|
||||
|
||||
sub_8083018(&uStack_14, gUnknown_81071D4);
|
||||
nullsub_98(&uStack_14);
|
||||
}
|
||||
|
||||
void sub_8081C50(unkStruct_8094924 *r0)
|
||||
{
|
||||
sub_8083018(r0, gUnknown_81071E0);
|
||||
sub_8082FE0(r0, (u32 *)&gDungeon->dungeonLocation, 0x58);
|
||||
}
|
||||
|
||||
void sub_8081C7C(unkStruct_8094924 *r0)
|
||||
{
|
||||
int x;
|
||||
int y;
|
||||
s32 iVar7;
|
||||
|
||||
sub_8083018(r0,gUnknown_81071E0);
|
||||
gDungeon->unk3A08 = sub_80831DC(r0);
|
||||
gDungeon->unk3A09 = sub_80831DC(r0);
|
||||
gDungeon->unk3A0A = sub_80831DC(r0);
|
||||
gDungeon->unk3A0B = sub_80831DC(r0);
|
||||
gDungeon->unk3A0C = sub_8083188(r0);
|
||||
gDungeon->unk3A0D = sub_8083188(r0);
|
||||
gDungeon->tileset = sub_8083170(r0);
|
||||
gDungeon->unk3A10 = sub_8083170(r0);
|
||||
gDungeon->unk3A12 = sub_8083170(r0);
|
||||
gDungeon->bossBattleIndex = sub_8083170(r0);
|
||||
gDungeon->unk3A16 = sub_8083170(r0);
|
||||
|
||||
for(y = 0; y < DUNGEON_MAX_SIZE_Y; y++)
|
||||
{
|
||||
for(x = 0; x < DUNGEON_MAX_SIZE_X; x++)
|
||||
{
|
||||
RestoreTile(r0,&gDungeon->tiles[y][x]);
|
||||
}
|
||||
}
|
||||
sub_80831F8(r0,&gDungeon->unkE218);
|
||||
sub_80831F8(r0,&gDungeon->unkE21C);
|
||||
|
||||
for(iVar7 = 0; iVar7 < 8; iVar7++)
|
||||
{
|
||||
sub_80831F8(r0,&gDungeon->unkE220[iVar7]);
|
||||
}
|
||||
sub_8083220(r0,&gDungeon->unkE240);
|
||||
sub_8083220(r0,&gDungeon->unkE240 + 0x4);
|
||||
sub_8083260(r0,&gDungeon->unkE240 + 0x8);
|
||||
|
||||
|
||||
for(y = 0; y < 8; y++)
|
||||
{
|
||||
for(x = 0; x < 8; x++)
|
||||
{
|
||||
RestoreTile(r0,&gDungeon->unkE27C[y][x]);
|
||||
gDungeon->unkE87C[y][x] = sub_8083188(r0);
|
||||
}
|
||||
}
|
||||
RestoreDungeonWeather(r0,&gDungeon->weather);
|
||||
}
|
||||
|
||||
void RestoreTile(unkStruct_8094924 *r0, Tile *tile)
|
||||
{
|
||||
memset(tile, 0, sizeof(Tile));
|
||||
tile->terrainType = sub_8083158(r0);
|
||||
tile->unk4 = sub_8083158(r0);
|
||||
|
||||
sub_8082FE0(r0, (u32 *)&tile->room, 1);
|
||||
sub_8082FE0(r0, (u32 *)&tile->unkE, 1);
|
||||
|
||||
tile->monster = NULL;
|
||||
tile->object = NULL;
|
||||
}
|
||||
|
||||
void RestoreDungeonWeather(unkStruct_8094924 *r0, Weather *weather)
|
||||
{
|
||||
s32 index;
|
||||
memset(weather, 0, sizeof(Weather));
|
||||
sub_8082FE0(r0, (u32 *)&weather->weather, 1);
|
||||
sub_8082FE0(r0, (u32 *)&weather->unkE265, 1);
|
||||
for(index = 0; index < 8; index++)
|
||||
{
|
||||
weather->unkE267[index] = sub_8083188(r0);
|
||||
weather->naturalWeather[index] = sub_8083188(r0);
|
||||
}
|
||||
weather->weatherDamageCounter = sub_8083188(r0);
|
||||
weather->mudSportTurns = sub_8083188(r0);
|
||||
weather->waterSportTurns = sub_8083188(r0);
|
||||
weather->nullifyWeather = sub_80831DC(r0);
|
||||
}
|
||||
|
||||
void sub_8081F2C(unkStruct_8094924 *param_1)
|
||||
{
|
||||
sub_8083018(param_1,gUnknown_81071E0);
|
||||
gDungeon->unk181e8.cameraTarget = NULL;
|
||||
gDungeon->unk181e8.unk18208 = sub_8083188(param_1);
|
||||
gDungeon->unk181e8.visibilityRange = sub_8083188(param_1);
|
||||
gDungeon->unk181e8.blinded = sub_80831DC(param_1);
|
||||
gDungeon->unk181e8.unk1820B = sub_80831DC(param_1);
|
||||
gDungeon->unk181e8.unk1820C = sub_80831DC(param_1);
|
||||
gDungeon->unk181e8.unk1820D = sub_80831DC(param_1);
|
||||
gDungeon->unk181e8.unk1820E = sub_80831DC(param_1);
|
||||
gDungeon->unk181e8.unk1820F = sub_80831DC(param_1);
|
||||
gDungeon->unk181e8.hallucinating = sub_80831DC(param_1);
|
||||
gDungeon->unk181e8.unk18211 = sub_80831DC(param_1);
|
||||
gDungeon->unk181e8.unk18213 = sub_80831DC(param_1);
|
||||
}
|
||||
|
||||
void RestoreDungeonMusic(unkStruct_8094924 *r0)
|
||||
{
|
||||
gDungeon->musPlayer.songIndex = sub_8083170(r0);
|
||||
gDungeon->musPlayer.pastSongIndex = sub_8083170(r0);
|
||||
gDungeon->musPlayer.queuedSongIndex = sub_8083170(r0);
|
||||
}
|
||||
|
||||
void RestoreItemData(unkStruct_8094924 *r0) {
|
||||
s32 index;
|
||||
Item item;
|
||||
Position pos;
|
||||
sub_8083018(r0, gUnknown_81071E0);
|
||||
for(index = 0; index < DUNGEON_MAX_ITEMS; index++)
|
||||
{
|
||||
sub_80820A8(r0, &item);
|
||||
sub_80831F8(r0, &pos);
|
||||
if(item.flags & ITEM_FLAG_EXISTS)
|
||||
sub_80460F8(&pos, &item, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80820A8(unkStruct_8094924 *param_1, Item *item)
|
||||
{
|
||||
memset(item, 0, sizeof(Item));
|
||||
sub_8082FE0(param_1,(u32 *)&item->flags,1);
|
||||
sub_8082FE0(param_1,(u32 *)&item->quantity,1);
|
||||
sub_8082FE0(param_1,(u32 *)&item->id,1);
|
||||
}
|
||||
|
||||
|
||||
void RestoreTrapData(unkStruct_8094924 *param_1)
|
||||
{
|
||||
int counter;
|
||||
Tile *tile;
|
||||
Entity *entity;
|
||||
Position pos;
|
||||
u8 isVisible;
|
||||
u8 unk1;
|
||||
u8 trapID;
|
||||
|
||||
sub_8083018(param_1, gUnknown_81071E0);
|
||||
|
||||
for(counter = 0; counter < DUNGEON_MAX_TRAPS; counter++)
|
||||
{
|
||||
trapID = 6;
|
||||
unk1 = 0;
|
||||
sub_8082FE0(param_1,(u32 *)&trapID,1);
|
||||
sub_8082FE0(param_1,(u32 *)&unk1,1);
|
||||
isVisible = sub_80831DC(param_1);
|
||||
sub_80831F8(param_1, &pos);
|
||||
|
||||
if(trapID != 0xFF)
|
||||
{
|
||||
tile = GetTileSafe(pos.x, pos.y);
|
||||
entity = sub_8045684(trapID, &pos, unk1);
|
||||
if(entity)
|
||||
{
|
||||
tile->object = entity;
|
||||
entity->isVisible = isVisible;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_808217C(unkStruct_8094924 *param_1)
|
||||
{
|
||||
s32 counter;
|
||||
|
||||
sub_8083018(param_1,gUnknown_81071E0);
|
||||
gDungeon->unk37F0 = sub_80831A0(param_1);
|
||||
gDungeon->unk37F4 = sub_80831A0(param_1);
|
||||
gDungeon->plusIsActive[0] = sub_80831DC(param_1);
|
||||
gDungeon->plusIsActive[1] = sub_80831DC(param_1);
|
||||
gDungeon->minusIsActive[0] = sub_80831DC(param_1);
|
||||
gDungeon->minusIsActive[1] = sub_80831DC(param_1);
|
||||
gDungeon->decoyActive = sub_80831DC(param_1);
|
||||
gDungeon->fill37FD = sub_80831DC(param_1);
|
||||
gDungeon->deoxysDefeat = sub_80831DC(param_1);
|
||||
gDungeon->fill37FF = sub_80831DC(param_1);
|
||||
gDungeon->unk3800 = sub_8083158(param_1);
|
||||
for(counter = 0; counter < MAX_TEAM_MEMBERS; counter++)
|
||||
{
|
||||
sub_8082280(param_1, TRUE, counter);
|
||||
}
|
||||
for(counter = 0; counter < DUNGEON_MAX_WILD_POKEMON; counter++)
|
||||
{
|
||||
sub_8082280(param_1, FALSE, counter);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "code_801B3C0.h"
|
||||
#include "code_803B050.h"
|
||||
#include "code_801C8C4.h"
|
||||
#include "code_803D0D8.h"
|
||||
#include "code_8094F88.h"
|
||||
#include "constants/communication_error_codes.h"
|
||||
#include "constants/wonder_mail.h"
|
||||
@@ -77,7 +78,6 @@ extern void sub_802EF48(void);
|
||||
|
||||
extern s32 sub_8037B28(u32);
|
||||
|
||||
extern bool8 DecodeWonderMailPassword(u8 *, WonderMail *);
|
||||
extern bool8 IsValidWonderMail(WonderMail *WonderMailData);
|
||||
|
||||
void PrintWonderMailMainMenuError(u32);
|
||||
|
||||
@@ -348,7 +348,7 @@ gUnknown_202EE6C: /* 202EE6C (sub_8044F5C - sub_8067A80) */
|
||||
gUnknown_202EE70: /* 202EE70 (sub_804513C - sub_80828E0) */
|
||||
.space 0x6
|
||||
gUnknown_202EE76: /* 202EE76 (sub_804513C - sub_8082A08) */
|
||||
.space 0x12
|
||||
.space 0x10
|
||||
|
||||
.include "src/dungeon_map_access.o"
|
||||
|
||||
@@ -602,18 +602,8 @@ gUnknown_2039DA4: /* 2039DA4 (HandleAction) */
|
||||
gUnknown_2039DA8: /* 2039DA8 (sub_80A14E8) */
|
||||
.space 0x8
|
||||
|
||||
gUnknown_2039DB0: /* 2039DB0 (GroundSprite_Reset - sub_80A65F0) [unkStruct_2039DB0] */
|
||||
.space 0x10
|
||||
gUnknown_2039DC0: /* 2039DC0 (GroundSprite_Reset - sub_80A65F0) [unkStruct_2039DB0] */
|
||||
.space 0xC
|
||||
gUnknown_2039DCC: /* 2039DCC (GroundSprite_Reset - sub_80A73EC) */
|
||||
.space 0x2
|
||||
gUnknown_2039DCE: /* 2039DCE (GroundSprite_Reset - sub_80A73EC) */
|
||||
.space 0x2
|
||||
gUnknown_2039DD0: /* 2039DD0 (sub_80A62F0 - sub_80A69FC) */
|
||||
.space 0x4
|
||||
gUnknown_2039DD4: /* 2039DD4 (sub_80A62F0 - sub_80A69FC) */
|
||||
.space 0x4
|
||||
.include "src/ground_sprite.o"
|
||||
|
||||
gUnknown_2039DD8: /* 2039DD8 (sub_80A6E80 - sub_80A7310) */
|
||||
.space 0x8
|
||||
|
||||
|
||||
@@ -113,8 +113,7 @@ gUnknown_203B0EC: /* 203B0EC (sub_8010C58) */
|
||||
gUnknown_203B198: /* 203B198 (sub_8014248 - sub_8014A88) */
|
||||
.space 0x60
|
||||
|
||||
gUnknown_203B1F8: /* 203B1F8 (sub_8015080 - sub_80151A4) */
|
||||
.space 0x4
|
||||
.include "src/code_8015080.o"
|
||||
|
||||
gUnknown_203B1FC: /* 203B1FC (sub_80151C0 - sub_8015F84) */
|
||||
.space 0x4
|
||||
@@ -141,16 +140,9 @@ gUnknown_203B1FC: /* 203B1FC (sub_80151C0 - sub_8015F84) */
|
||||
.include "src/hints_menu1.o"
|
||||
.include "src/hints_menu2.o"
|
||||
.include "src/gulpin_shop.o"
|
||||
|
||||
gUnknown_203B270: /* 203B270 (sub_801EE10 - sub_801F3F8) */
|
||||
.space 0x4
|
||||
|
||||
gUnknown_203B274: /* 203B274 (sub_801F428 - sub_801F7E4) */
|
||||
.space 0x4
|
||||
|
||||
gUnknown_203B278: /* 203B278 (sub_801F808 - sub_801FAD4) */
|
||||
.space 0x4
|
||||
|
||||
.include "src/code_801EE10.o"
|
||||
.include "src/code_801F428.o"
|
||||
.include "src/code_801F808.o"
|
||||
.include "src/gulpin_shop_801FB50.o"
|
||||
.include "src/wigglytuff_shop1.o"
|
||||
.include "src/wigglytuff_shop2.o"
|
||||
@@ -298,7 +290,5 @@ gUnknown_203B4AC: /* 203B4AC (ExecuteScriptCommand) */
|
||||
gUnknown_203B4B0: /* 203B4B0 (sub_809D490 - HandleAction) */
|
||||
.space 0x4
|
||||
|
||||
gUnknown_203B4B4: /* 203B4B4 (sub_80A62F0 - sub_80A658C) */
|
||||
.space 0x4
|
||||
|
||||
.include "src/ground_sprite.o"
|
||||
.include "src/ground_link.o"
|
||||
|
||||
Reference in New Issue
Block a user