Merge pull request #111 from adrienntindall/unk_0203DE74

Decompile field_system.c
This commit is contained in:
Thomas 2022-12-23 16:24:29 -06:00 committed by GitHub
commit cb8d9a9f1c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
96 changed files with 10213 additions and 32490 deletions

View File

@ -57,7 +57,7 @@ FieldSys_TakePhoto: ; 0x0206A798
strb r0, [r1]
_0206A7FE:
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Save_PhotoAlbum_get
bl PhotoAlbum_GetIndexOfFirstEmptySlot
cmp r0, #0xff
@ -652,7 +652,7 @@ _0206AC36:
ldr r0, _0206AEAC ; =NNS_G3dGlb + 0x80
str r1, [r0, #0x20]
add r0, r6, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_PlayerData_GetProfileAddr
bl PlayerProfile_GetTrainerGender
add r5, #0x30
@ -1123,7 +1123,7 @@ sub_0206B014: ; 0x0206B014
add r0, r4, #0
str r2, [sp]
str r3, [sp, #4]
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
add r7, r0, #0
bl Sav2_PlayerData_GetProfileAddr
add r6, r0, #0
@ -1511,7 +1511,7 @@ _0206B332:
b _0206B824
_0206B346:
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_PlayerData_GetProfileAddr
bl PlayerProfile_GetTrainerGender
ldr r1, [r4, #0x40]
@ -1897,7 +1897,7 @@ _0206B652:
cmp r0, #0
beq _0206B6EA
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Save_PhotoAlbum_get
add r5, r0, #0
bl PhotoAlbum_GetIndexOfFirstEmptySlot

View File

@ -3868,7 +3868,7 @@
.short \arg0
.endm
.macro scrcmd_683 arg0
.macro get_static_encounter_outcome arg0
.short 683
.short \arg0
.endm

View File

@ -633,7 +633,7 @@ _021E5EB4: .word FS_OVERLAY_ID(OVY_3)
thumb_func_start ov01_021E5EB8
ov01_021E5EB8: ; 0x021E5EB8
push {r3, lr}
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
bl SavGymmick_GetType
cmp r0, #0

View File

@ -18287,7 +18287,7 @@ ov02_0224E4EC: ; 0x0224E4EC
add r4, r0, #0
bl MI_CpuFill8
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
str r0, [r4]
mov r0, #0x43
lsl r0, r0, #2

View File

@ -206,7 +206,7 @@ _02253F84:
str r0, [r2, #0x74]
ldr r0, [r1]
ldr r0, [r0, #0x68]
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_PlayerData_GetProfileAddr
ldr r1, _02254050 ; =ov03_022598A0
ldr r1, [r1]

View File

@ -10,7 +10,7 @@ ov04_02253E20: ; 0x02253E20
push {r3, r4, r5, r6, lr}
sub sp, #0x24
add r5, r0, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #4
bl SavGymmick_AssertMagic_GetData
@ -103,7 +103,7 @@ ov04_02253ED4: ; 0x02253ED4
str r0, [r4]
add r0, r5, #0
str r5, [r4, #4]
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #4
bl SavGymmick_AssertMagic_GetData
@ -432,7 +432,7 @@ ov04_02254190: ; 0x02254190
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r4, r0, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #5
bl SavGymmick_AssertMagic_GetData
@ -719,7 +719,7 @@ Fsys_FlipAzaleaGymSwitch: ; 0x02254404
sub sp, #0xc
add r5, r0, #0
add r6, r1, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #5
bl SavGymmick_AssertMagic_GetData
@ -897,7 +897,7 @@ Fsys_BeginAzaleaGymSpinarakRide: ; 0x02254568
strb r0, [r4, #0x16]
add r0, r6, #0
str r1, [r4, #0x1c]
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #5
bl SavGymmick_AssertMagic_GetData
@ -1451,7 +1451,7 @@ _02254992:
cmp r0, r1
blt _022549FE
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #5
bl SavGymmick_AssertMagic_GetData
@ -1808,7 +1808,7 @@ ov04_02254CBC: ; 0x02254CBC
push {r4, r5, r6, r7, lr}
sub sp, #0x34
add r5, r0, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #1
bl SavGymmick_AssertMagic_GetData
@ -2049,7 +2049,7 @@ _02254E86:
mov r1, #1
bl ov01_021F3B2C
ldr r0, [r4, #0xc]
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #1
bl SavGymmick_AssertMagic_GetData
@ -2175,7 +2175,7 @@ ov04_02254F8C: ; 0x02254F8C
ldr r0, [r3]
str r0, [r2]
ldr r0, [sp, #4]
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #6
bl SavGymmick_AssertMagic_GetData
@ -2296,7 +2296,7 @@ ov04_0225507C: ; 0x0225507C
ov04_02255090: ; 0x02255090
push {r4, r5, r6, lr}
add r5, r0, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
bl SavGymmick_GetType
cmp r0, #6
@ -3650,7 +3650,7 @@ _02255A16:
mul r1, r2
add r5, r0, r1
add r0, r6, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #6
bl SavGymmick_AssertMagic_GetData
@ -3824,7 +3824,7 @@ _02255BA6:
add r0, #0x4f
strb r1, [r0]
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #6
bl SavGymmick_AssertMagic_GetData
@ -4327,7 +4327,7 @@ _02255FBC: .word SEQ_SE_GS_GONDORA_KABEHIT
ov04_02255FC0: ; 0x02255FC0
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #2
bl SavGymmick_AssertMagic_GetData
@ -4401,7 +4401,7 @@ ov04_02256044: ; 0x02256044
ov04_02256058: ; 0x02256058
push {r3, r4, r5, lr}
add r5, r0, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
add r4, r0, #0
bl SavGymmick_GetType
@ -4438,7 +4438,7 @@ ov04_0225609C: ; 0x0225609C
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5]
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #2
bl SavGymmick_AssertMagic_GetData
@ -4732,7 +4732,7 @@ _022562EC:
ov04_02256304: ; 0x02256304
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #3
bl SavGymmick_AssertMagic_GetData
@ -4828,7 +4828,7 @@ ov04_022563B0: ; 0x022563B0
ov04_022563C4: ; 0x022563C4
push {r4, lr}
add r4, r1, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #3
bl SavGymmick_AssertMagic_GetData
@ -4872,7 +4872,7 @@ ov04_0225640C: ; 0x0225640C
add r5, r0, #0
add r7, r1, #0
str r2, [sp]
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #3
bl SavGymmick_AssertMagic_GetData
@ -5156,7 +5156,7 @@ _0225664C: .word SEQ_SE_DP_UG_020
ov04_02256650: ; 0x02256650
push {r4, lr}
add r4, r0, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #7
bl SavGymmick_AssertMagic_GetData
@ -5832,7 +5832,7 @@ ov04_02256B3C: ; 0x02256B3C
ov04_02256B64: ; 0x02256B64
push {r4, lr}
add r4, r0, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #8
bl SavGymmick_AssertMagic_GetData
@ -6227,7 +6227,7 @@ _02256E5A:
ov04_02256E60: ; 0x02256E60
push {r3, r4, r5, lr}
add r5, r0, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #9
bl SavGymmick_AssertMagic_GetData
@ -6325,7 +6325,7 @@ _02256F14:
bl GF_AssertFail
_02256F24:
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #9
bl SavGymmick_AssertMagic_GetData
@ -6612,7 +6612,7 @@ ov04_02257148: ; 0x02257148
strb r0, [r1, #1]
strb r0, [r1, #2]
ldr r0, [r7]
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #9
bl SavGymmick_AssertMagic_GetData

View File

@ -3,8 +3,8 @@
.text
thumb_func_start ov12_02262098
ov12_02262098: ; 0x02262098
thumb_func_start BattleController_SendData
BattleController_SendData: ; 0x02262098
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r7, r0, #0
@ -13,7 +13,7 @@ ov12_02262098: ; 0x02262098
str r2, [sp, #4]
cmp r1, #1
bne _022620BE
bl ov12_0223A948
bl BattleSys_GetRecvBufferPtr
add r4, r0, #0
add r0, r7, #0
bl ov12_0223A984
@ -22,7 +22,7 @@ ov12_02262098: ; 0x02262098
bl ov12_0223A990
b _022620D2
_022620BE:
bl ov12_0223A940
bl BattleSys_GetSendBufferPtr
add r4, r0, #0
add r0, r7, #0
bl ov12_0223A960
@ -81,10 +81,10 @@ _0226212A:
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov12_02262098
thumb_func_end BattleController_SendData
thumb_func_start ov12_02262130
ov12_02262130: ; 0x02262130
thumb_func_start BattleController_RecvData
BattleController_RecvData: ; 0x02262130
push {r3, r4, r5, r6, r7, lr}
add r3, r1, #0
ldrb r6, [r3, #3]
@ -165,7 +165,7 @@ _022621BE:
_022621C0:
add r0, r2, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov12_02262130
thumb_func_end BattleController_RecvData
thumb_func_start ov12_022621C4
ov12_022621C4: ; 0x022621C4
@ -173,7 +173,7 @@ ov12_022621C4: ; 0x022621C4
add r5, r0, #0
cmp r1, #1
bne _022621EA
bl ov12_0223A948
bl BattleSys_GetRecvBufferPtr
add r6, r0, #0
add r0, r5, #0
bl ov12_0223A978
@ -185,7 +185,7 @@ ov12_022621C4: ; 0x022621C4
bl ov12_0223A990
b _02262206
_022621EA:
bl ov12_0223A940
bl BattleSys_GetSendBufferPtr
add r6, r0, #0
add r0, r5, #0
bl ov12_0223A954
@ -210,7 +210,7 @@ _0226221A:
ldrh r1, [r4]
add r0, r5, #0
add r1, r6, r1
bl ov12_02262130
bl BattleController_RecvData
cmp r0, #1
bne _0226223C
ldrh r0, [r4]
@ -290,7 +290,7 @@ _022622AC:
str r0, [sp]
add r0, r5, #0
add r3, r6, #0
bl ov12_02262098
bl BattleController_SendData
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop

View File

@ -279,22 +279,22 @@ ov12_0223A93C: ; 0x0223A93C
bx lr
thumb_func_end ov12_0223A93C
thumb_func_start ov12_0223A940
ov12_0223A940: ; 0x0223A940
thumb_func_start BattleSys_GetSendBufferPtr
BattleSys_GetSendBufferPtr: ; 0x0223A940
mov r1, #0x8a
lsl r1, r1, #2
add r0, r0, r1
bx lr
thumb_func_end ov12_0223A940
thumb_func_end BattleSys_GetSendBufferPtr
thumb_func_start ov12_0223A948
ov12_0223A948: ; 0x0223A948
thumb_func_start BattleSys_GetRecvBufferPtr
BattleSys_GetRecvBufferPtr: ; 0x0223A948
ldr r1, _0223A950 ; =0x00001228
add r0, r0, r1
bx lr
nop
_0223A950: .word 0x00001228
thumb_func_end ov12_0223A948
thumb_func_end BattleSys_GetRecvBufferPtr
thumb_func_start ov12_0223A954
ov12_0223A954: ; 0x0223A954

View File

@ -1413,7 +1413,7 @@ MGGive_MemorialPhoto: ; 0x0204C798
bl FieldSys_GetDataOfNextMG
add r5, r0, #0
add r0, r4, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Save_PhotoAlbum_get
add r4, r0, #0
bl PhotoAlbum_GetIndexOfFirstEmptySlot

View File

@ -753,7 +753,7 @@ _0204F3E2:
ldr r1, _0204F3F4 ; =_0210159C
add r0, r6, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
ldr r0, [r5, #8]
str r4, [r0]
mov r0, #1
@ -858,7 +858,7 @@ sub_0204F448: ; 0x0204F448
ldr r1, _0204F4D4 ; =_02103A1C
add r0, r7, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
ldr r0, [r6, #8]
str r4, [r0]
mov r0, #3

View File

@ -70,7 +70,7 @@ ScrCmd_410: ; 0x02049CA8
add r0, r5, #0
add r0, #0x80
ldr r0, [r0]
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
add r1, r4, #0
add r2, r6, #0
bl sub_0204A824

View File

@ -495,7 +495,7 @@ ScrCmd_GenderMsgbox: ; 0x021EF41C
add r5, r0, #0
add r0, #0x80
ldr r0, [r0]
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_PlayerData_GetProfileAddr
ldr r0, [r5, #8]
add r1, r0, #1
@ -507,7 +507,7 @@ ScrCmd_GenderMsgbox: ; 0x021EF41C
add r0, #0x80
ldr r0, [r0]
ldrb r4, [r1]
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_PlayerData_GetProfileAddr
bl PlayerProfile_GetTrainerGender
cmp r0, #0

View File

@ -2602,7 +2602,7 @@ _0203D066:
ldr r0, [sp, #8]
ldr r1, _0203D19C ; =_0210159C
add r2, r5, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
mov r0, #0xe
lsl r0, r0, #6
str r5, [r4, r0]
@ -2699,7 +2699,7 @@ _0203D166:
ldr r0, [sp, #8]
ldr r1, _0203D19C ; =_0210159C
add r2, r5, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
mov r0, #0xe
lsl r0, r0, #6
str r5, [r4, r0]
@ -3294,7 +3294,7 @@ _0203D604:
ldr r0, [sp]
ldr r1, _0203D65C ; =_0210159C
add r2, r5, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
mov r0, #0xe1
lsl r0, r0, #2
ldr r0, [r4, r0]
@ -3718,7 +3718,7 @@ sub_0203D940: ; 0x0203D940
ldr r1, _0203D9AC ; =_0210159C
add r0, r7, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
mov r0, #0xe
lsl r0, r0, #6
str r4, [r5, r0]

View File

@ -1,707 +0,0 @@
.include "asm/macros.inc"
.include "global.inc"
.rodata
.public gApplication_NewGameFieldsys
gApplication_NewGameFieldsys:
.word Field_NewGame_AppInit, Field_AppExec, Field_AppExit, 0xFFFFFFFF
.public gApplication_ContinueFieldsys
gApplication_ContinueFieldsys:
.word Field_Continue_AppInit, Field_AppExec, Field_AppExit, 0xFFFFFFFF
.bss
sFieldSysPtr:
.space 0x4
.text
thumb_func_start Field_Continue_AppInit
Field_Continue_AppInit: ; 0x0203DE74
push {r3, r4, r5, lr}
add r5, r0, #0
bl OverlayManager_GetArgs
add r4, r0, #0
add r0, r5, #0
bl FieldSystem_new
ldr r1, _0203DEA0 ; =sFieldSysPtr
str r0, [r1]
ldr r1, [r4, #4]
cmp r1, #0
beq _0203DE94
bl CallFieldTask_ContinueGame_CommError
b _0203DE98
_0203DE94:
bl CallFieldTask_ContinueGame_Normal
_0203DE98:
mov r0, #0
str r0, [r4, #4]
mov r0, #1
pop {r3, r4, r5, pc}
.balign 4, 0
_0203DEA0: .word sFieldSysPtr
thumb_func_end Field_Continue_AppInit
thumb_func_start Field_NewGame_AppInit
Field_NewGame_AppInit: ; 0x0203DEA4
push {r3, lr}
bl FieldSystem_new
ldr r1, _0203DEB8 ; =sFieldSysPtr
str r0, [r1]
bl CallFieldTask_NewGame
mov r0, #1
pop {r3, pc}
nop
_0203DEB8: .word sFieldSysPtr
thumb_func_end Field_NewGame_AppInit
thumb_func_start Field_AppExec
Field_AppExec: ; 0x0203DEBC
push {r3, lr}
bl OverlayManager_GetData
bl FieldSys_Main
cmp r0, #0
beq _0203DECE
mov r0, #1
pop {r3, pc}
_0203DECE:
mov r0, #0
pop {r3, pc}
.balign 4, 0
thumb_func_end Field_AppExec
.public ov60_021EAFE0
thumb_func_start Field_AppExit
Field_AppExit: ; 0x0203DED4
push {r3, lr}
bl FieldSystem_delete
ldr r0, _0203DEE8 ; =FS_OVERLAY_ID(OVY_60)
ldr r1, _0203DEEC ; =ov60_021EAFE0
bl RegisterMainOverlay
mov r0, #1
pop {r3, pc}
nop
_0203DEE8: .word FS_OVERLAY_ID(OVY_60)
_0203DEEC: .word ov60_021EAFE0
thumb_func_end Field_AppExit
.public ov01_02206378
thumb_func_start sub_0203DEF0
sub_0203DEF0: ; 0x0203DEF0
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
ldr r0, [r0, #4]
cmp r0, #0
beq _0203DF00
bl GF_AssertFail
_0203DF00:
ldr r0, [r4]
ldr r0, [r0]
cmp r0, #0
beq _0203DF0C
bl GF_AssertFail
_0203DF0C:
ldr r0, _0203DF2C ; =FS_OVERLAY_ID(field)
mov r1, #2
bl HandleLoadOverlay
mov r1, #0
str r1, [r4, #0x6c]
ldr r0, [r4]
mov r2, #0xb
str r1, [r0, #8]
ldr r0, _0203DF30 ; =ov01_02206378
add r1, r4, #0
bl OverlayManager_new
ldr r1, [r4]
str r0, [r1]
pop {r4, pc}
.balign 4, 0
_0203DF2C: .word FS_OVERLAY_ID(field)
_0203DF30: .word ov01_02206378
thumb_func_end sub_0203DEF0
thumb_func_start sub_0203DF34
sub_0203DF34: ; 0x0203DF34
mov r1, #0
str r1, [r0, #0x6c]
bx lr
.balign 4, 0
thumb_func_end sub_0203DF34
thumb_func_start sub_0203DF3C
sub_0203DF3C: ; 0x0203DF3C
push {r4, lr}
add r4, r0, #0
mov r0, #0x11
lsl r0, r0, #4
ldrb r0, [r4, r0]
mov r1, #1
cmp r0, #0
beq _0203DF52
cmp r0, #1
beq _0203DF52
mov r1, #0
_0203DF52:
cmp r1, #0
bne _0203DF5A
bl GF_AssertFail
_0203DF5A:
mov r0, #0x11
lsl r0, r0, #4
ldrb r0, [r4, r0]
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_0203DF3C
thumb_func_start sub_0203DF64
sub_0203DF64: ; 0x0203DF64
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
beq _0203DF74
cmp r4, #1
beq _0203DF74
bl GF_AssertFail
_0203DF74:
mov r0, #0x11
lsl r0, r0, #4
strb r4, [r5, r0]
pop {r3, r4, r5, pc}
thumb_func_end sub_0203DF64
thumb_func_start sub_0203DF7C
sub_0203DF7C: ; 0x0203DF7C
ldr r0, [r0]
ldr r0, [r0]
cmp r0, #0
beq _0203DF88
mov r0, #1
bx lr
_0203DF88:
mov r0, #0
bx lr
thumb_func_end sub_0203DF7C
thumb_func_start sub_0203DF8C
sub_0203DF8C: ; 0x0203DF8C
ldr r1, [r0]
ldr r1, [r1]
cmp r1, #0
beq _0203DF9E
ldr r0, [r0, #0x6c]
cmp r0, #0
beq _0203DF9E
mov r0, #1
bx lr
_0203DF9E:
mov r0, #0
bx lr
.balign 4, 0
thumb_func_end sub_0203DF8C
thumb_func_start sub_0203DFA4
sub_0203DFA4: ; 0x0203DFA4
ldr r0, [r0]
ldr r0, [r0, #4]
cmp r0, #0
beq _0203DFB0
mov r0, #1
bx lr
_0203DFB0:
mov r0, #0
bx lr
thumb_func_end sub_0203DFA4
thumb_func_start Fsys_LaunchApplication
Fsys_LaunchApplication: ; 0x0203DFB4
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, [r5]
add r4, r1, #0
ldr r0, [r0, #4]
add r6, r2, #0
cmp r0, #0
beq _0203DFC8
bl GF_AssertFail
_0203DFC8:
add r0, r5, #0
bl sub_0203DF34
add r0, r4, #0
add r1, r6, #0
mov r2, #0xb
bl OverlayManager_new
ldr r1, [r5]
str r0, [r1, #4]
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end Fsys_LaunchApplication
thumb_func_start FieldSystem_new
FieldSystem_new: ; 0x0203DFE0
push {r4, r5, r6, lr}
mov r2, #7
add r5, r0, #0
mov r0, #3
mov r1, #0xb
lsl r2, r2, #0xe
bl CreateHeap
mov r1, #0x20
mov r0, #3
lsl r2, r1, #9
bl CreateHeap
mov r2, #0x57
mov r0, #0
mov r1, #0x59
lsl r2, r2, #4
bl CreateHeap
mov r1, #0x4a
add r0, r5, #0
lsl r1, r1, #2
mov r2, #0xb
bl OverlayManager_CreateAndGetData
mov r2, #0x4a
mov r1, #0
lsl r2, r2, #2
add r4, r0, #0
bl MI_CpuFill8
mov r0, #0xb
mov r1, #0x10
bl AllocFromHeap
str r0, [r4]
mov r1, #0
str r1, [r0]
ldr r0, [r4]
ldr r6, _0203E054 ; =FS_OVERLAY_ID(OVY_124)
str r1, [r0, #4]
ldr r0, [r4]
str r1, [r0, #8]
ldr r0, [r4]
str r1, [r0, #0xc]
add r0, r6, #0
mov r1, #2
bl HandleLoadOverlay
add r0, r5, #0
add r1, r4, #0
bl FieldSystem_init
add r0, r6, #0
bl UnloadOverlayByID
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0
_0203E054: .word FS_OVERLAY_ID(OVY_124)
thumb_func_end FieldSystem_new
thumb_func_start FieldSystem_delete
FieldSystem_delete: ; 0x0203E058
push {r3, r4, r5, lr}
add r5, r0, #0
bl OverlayManager_GetData
add r4, r0, #0
ldr r0, [r4, #0x30]
bl MapMatrix_Free
add r0, r4, #0
bl Field_FreeMapEvents
add r0, r4, #0
add r0, #0x94
ldr r0, [r0]
bl FreeToHeap
add r0, r4, #0
add r0, #0xa8
ldr r0, [r0]
bl sub_02092BD0
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl sub_02092DD8
ldr r0, [r4]
bl FreeToHeap
add r0, r5, #0
bl OverlayManager_FreeData
mov r0, #0x59
bl DestroyHeap
mov r0, #0xb
bl DestroyHeap
mov r0, #0x20
bl DestroyHeap
pop {r3, r4, r5, pc}
thumb_func_end FieldSystem_delete
thumb_func_start ppOverlayManager_RunFrame_DeleteIfFinished
ppOverlayManager_RunFrame_DeleteIfFinished: ; 0x0203E0AC
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _0203E0C8
bl OverlayManager_run
cmp r0, #0
beq _0203E0C8
ldr r0, [r4]
bl OverlayManager_delete
mov r0, #0
str r0, [r4]
_0203E0C8:
pop {r4, pc}
.balign 4, 0
thumb_func_end ppOverlayManager_RunFrame_DeleteIfFinished
thumb_func_start FieldSys_Main
FieldSys_Main: ; 0x0203E0CC
push {r4, lr}
add r4, r0, #0
bl sub_0203E15C
add r0, r4, #0
bl Fsys_RunTaskFrame
cmp r0, #1
bne _0203E0EE
ldr r0, [r4, #4]
cmp r0, #0
beq _0203E0EE
mov r1, #0
add r0, r4, #0
add r2, r1, #0
bl ov01_021F6830
_0203E0EE:
ldr r0, [r4]
ldr r1, [r0]
cmp r1, #0
beq _0203E10A
bl ppOverlayManager_RunFrame_DeleteIfFinished
ldr r0, [r4]
ldr r0, [r0]
cmp r0, #0
bne _0203E116
ldr r0, _0203E138 ; =FS_OVERLAY_ID(field)
bl UnloadOverlayByID
b _0203E116
_0203E10A:
ldr r1, [r0, #4]
cmp r1, #0
beq _0203E116
add r0, r0, #4
bl ppOverlayManager_RunFrame_DeleteIfFinished
_0203E116:
ldr r1, [r4]
ldr r0, [r1, #0xc]
cmp r0, #0
beq _0203E134
ldr r0, [r4, #0x10]
cmp r0, #0
bne _0203E134
ldr r0, [r1]
cmp r0, #0
bne _0203E134
ldr r0, [r1, #4]
cmp r0, #0
bne _0203E134
mov r0, #1
pop {r4, pc}
_0203E134:
mov r0, #0
pop {r4, pc}
.balign 4, 0
_0203E138: .word FS_OVERLAY_ID(field)
thumb_func_end FieldSys_Main
thumb_func_start sub_0203E13C
sub_0203E13C: ; 0x0203E13C
push {r3, lr}
ldr r1, [r0]
ldr r1, [r1, #8]
cmp r1, #0
bne _0203E158
ldr r1, [r0, #0x6c]
cmp r1, #0
beq _0203E158
bl Fsys_TaskIsRunning
cmp r0, #0
bne _0203E158
mov r0, #1
pop {r3, pc}
_0203E158:
mov r0, #0
pop {r3, pc}
thumb_func_end sub_0203E13C
thumb_func_start sub_0203E15C
sub_0203E15C: ; 0x0203E15C
push {r4, r5, lr}
sub sp, #0x14
add r4, r0, #0
bl sub_0203E13C
add r5, r0, #0
beq _0203E186
ldr r0, [r4, #0x40]
bl sub_0205CE68
ldr r3, _0203E2EC ; =gSystem
add r0, sp, #8
ldr r2, [r3, #0x48]
ldr r3, [r3, #0x44]
lsl r2, r2, #0x10
lsl r3, r3, #0x10
add r1, r4, #0
lsr r2, r2, #0x10
lsr r3, r3, #0x10
bl ov01_021E6928
_0203E186:
ldr r0, [r4, #0x20]
ldr r2, [r4, #0x70]
ldr r1, [r0]
ldr r0, _0203E2F0 ; =0x00000109
cmp r1, r0
bne _0203E194
mov r2, #0
_0203E194:
cmp r2, #2
beq _0203E1CC
cmp r2, #3
beq _0203E1A2
cmp r2, #4
beq _0203E1F8
b _0203E268
_0203E1A2:
cmp r5, #0
beq _0203E1C0
bl sub_02057A0C
cmp r0, #0
beq _0203E1BE
add r0, sp, #8
add r1, r4, #0
bl ov01_021E6E00
cmp r0, #1
bne _0203E1C0
mov r5, #0
b _0203E1C0
_0203E1BE:
mov r5, #0
_0203E1C0:
add r0, r4, #0
add r1, r5, #0
bl sub_020573F0
add sp, #0x14
pop {r4, r5, pc}
_0203E1CC:
cmp r5, #0
beq _0203E1DC
add r0, sp, #8
add r1, r4, #0
bl ov01_021E6EFC
cmp r0, #1
bne _0203E1DE
_0203E1DC:
b _0203E2E8
_0203E1DE:
add r3, sp, #8
ldrh r0, [r3, #8]
mov r2, #0
str r0, [sp]
str r2, [sp, #4]
ldrh r3, [r3, #6]
ldr r0, [r4, #0x40]
ldr r1, [r4, #0x2c]
sub r2, r2, #1
bl sub_0205CB48
add sp, #0x14
pop {r4, r5, pc}
_0203E1F8:
cmp r5, #0
beq _0203E2E8
add r0, sp, #8
add r1, r4, #0
bl ov01_021E6FD4
cmp r0, #1
bne _0203E22C
ldr r0, [r4, #4]
ldr r0, [r0, #8]
bl ov01_021EFACC
add r0, r4, #0
mov r1, #4
bl ov01_021F3DFC
ldr r0, [r4, #0x40]
bl ov01_021F2F24
add r0, r4, #0
mov r1, #0
mov r2, #1
bl ov01_021F6830
add sp, #0x14
pop {r4, r5, pc}
_0203E22C:
ldr r0, _0203E2EC ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #1
tst r0, r1
beq _0203E23E
ldr r0, [r4, #4]
ldr r0, [r0, #8]
bl ov01_021EFACC
_0203E23E:
mov r5, #0
bl sub_0203E324
cmp r0, #0
beq _0203E24E
bl ov35_02259DB8
add r5, r0, #0
_0203E24E:
add r3, sp, #8
ldrh r0, [r3, #8]
mov r2, #0
mvn r2, r2
str r0, [sp]
str r5, [sp, #4]
ldrh r3, [r3, #6]
ldr r0, [r4, #0x40]
ldr r1, [r4, #0x2c]
bl sub_0205CB48
add sp, #0x14
pop {r4, r5, pc}
_0203E268:
cmp r5, #0
beq _0203E2E8
add r0, sp, #8
add r1, r4, #0
bl ov01_021E6AF4
add r5, r0, #0
beq _0203E2B0
ldr r0, [r4, #4]
ldr r0, [r0, #8]
bl ov01_021EFACC
add r0, r4, #0
mov r1, #4
bl ov01_021F3DFC
ldr r0, [r4, #0x40]
bl sub_0205CF44
ldr r0, [r4, #0x40]
bl ov01_021F2F24
add r0, r4, #0
mov r1, #0
mov r2, #1
bl ov01_021F6830
cmp r5, #2
beq _0203E2E8
mov r0, #0x45
lsl r0, r0, #2
ldr r0, [r4, r0]
bl sub_02092FA8
add sp, #0x14
pop {r4, r5, pc}
_0203E2B0:
ldr r0, _0203E2EC ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #1
tst r0, r1
beq _0203E2C2
ldr r0, [r4, #4]
ldr r0, [r0, #8]
bl ov01_021EFACC
_0203E2C2:
mov r5, #0
bl sub_0203E324
cmp r0, #0
beq _0203E2D2
bl ov35_02259DB8
add r5, r0, #0
_0203E2D2:
add r3, sp, #8
ldrh r0, [r3, #8]
mov r2, #0
mvn r2, r2
str r0, [sp]
str r5, [sp, #4]
ldrh r3, [r3, #6]
ldr r0, [r4, #0x40]
ldr r1, [r4, #0x2c]
bl sub_0205CB48
_0203E2E8:
add sp, #0x14
pop {r4, r5, pc}
.balign 4, 0
_0203E2EC: .word gSystem
_0203E2F0: .word 0x00000109
thumb_func_end sub_0203E15C
thumb_func_start sub_0203E2F4
sub_0203E2F4: ; 0x0203E2F4
ldr r0, _0203E304 ; =sFieldSysPtr
ldr r3, _0203E308 ; =sub_02037504
ldr r0, [r0]
mov r1, #1
ldr r0, [r0]
str r1, [r0, #8]
bx r3
nop
_0203E304: .word sFieldSysPtr
_0203E308: .word sub_02037504
thumb_func_end sub_0203E2F4
thumb_func_start sub_0203E30C
sub_0203E30C: ; 0x0203E30C
ldr r0, _0203E31C ; =sFieldSysPtr
ldr r3, _0203E320 ; =sub_020374E4
ldr r0, [r0]
mov r1, #0
ldr r0, [r0]
str r1, [r0, #8]
bx r3
nop
_0203E31C: .word sFieldSysPtr
_0203E320: .word sub_020374E4
thumb_func_end sub_0203E30C
thumb_func_start sub_0203E324
sub_0203E324: ; 0x0203E324
ldr r0, _0203E338 ; =sFieldSysPtr
ldr r0, [r0]
ldr r0, [r0, #4]
cmp r0, #0
bne _0203E332
mov r0, #0
bx lr
_0203E332:
ldr r0, [r0, #0x14]
bx lr
nop
_0203E338: .word sFieldSysPtr
thumb_func_end sub_0203E324
thumb_func_start sub_0203E33C
sub_0203E33C: ; 0x0203E33C
str r1, [r0, #0x1c]
bx lr
thumb_func_end sub_0203E33C
thumb_func_start Fsys_GetBgConfigPtr
Fsys_GetBgConfigPtr: ; 0x0203E340
ldr r0, [r0, #8]
bx lr
thumb_func_end Fsys_GetBgConfigPtr
thumb_func_start Fsys_GetSaveDataPtr
Fsys_GetSaveDataPtr: ; 0x0203E344
ldr r0, [r0, #0xc]
bx lr
thumb_func_end Fsys_GetSaveDataPtr
thumb_func_start sub_0203E348
sub_0203E348: ; 0x0203E348
push {r3, lr}
bl LCRandom
bl LCRandom
pop {r3, pc}
thumb_func_end sub_0203E348
thumb_func_start sub_0203E354
sub_0203E354: ; 0x0203E354
ldr r0, _0203E364 ; =sFieldSysPtr
mov r1, #1
ldr r0, [r0]
mvn r1, r1
add r0, #0xc4
str r1, [r0]
bx lr
nop
_0203E364: .word sFieldSysPtr
thumb_func_end sub_0203E354

View File

@ -199,12 +199,12 @@ sub_0203E3C0: ; 0x0203E3C0
thumb_func_start sub_0203E3C4
sub_0203E3C4: ; 0x0203E3C4
ldr r3, _0203E3CC ; =Fsys_LaunchApplication
ldr r3, _0203E3CC ; =FieldSys_LaunchApplication
add r2, r1, #0
ldr r1, _0203E3D0 ; =_020FA484
bx r3
.balign 4, 0
_0203E3CC: .word Fsys_LaunchApplication
_0203E3CC: .word FieldSys_LaunchApplication
_0203E3D0: .word _020FA484
thumb_func_end sub_0203E3C4
@ -223,7 +223,7 @@ sub_0203E3D4: ; 0x0203E3D4
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add sp, #0x10
pop {r4, r5, r6, pc}
nop
@ -352,12 +352,12 @@ _0203E4E6:
thumb_func_start sub_0203E4EC
sub_0203E4EC: ; 0x0203E4EC
ldr r3, _0203E4F4 ; =Fsys_LaunchApplication
ldr r3, _0203E4F4 ; =FieldSys_LaunchApplication
add r2, r1, #0
ldr r1, _0203E4F8 ; =_02103A1C
bx r3
.balign 4, 0
_0203E4F4: .word Fsys_LaunchApplication
_0203E4F4: .word FieldSys_LaunchApplication
_0203E4F8: .word _02103A1C
thumb_func_end sub_0203E4EC
@ -419,7 +419,7 @@ sub_0203E550: ; 0x0203E550
ldr r1, _0203E57C ; =_0210159C
add r0, r5, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
nop
@ -438,7 +438,7 @@ sub_0203E580: ; 0x0203E580
ldr r1, _0203E5A0 ; =_0210159C
add r0, r5, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
@ -457,7 +457,7 @@ sub_0203E5A4: ; 0x0203E5A4
ldr r1, _0203E5C4 ; =_0210159C
add r0, r5, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
@ -487,7 +487,7 @@ sub_0203E5D0: ; 0x0203E5D0
ldr r1, _0203E5F4 ; =_0210159C
add r0, r5, #0
add r2, r6, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r6, #0
pop {r4, r5, r6, pc}
.balign 4, 0
@ -539,7 +539,7 @@ _0203E63A:
ldr r1, _0203E6D0 ; =_0210159C
ldr r2, [r4, #4]
add r0, r6, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
mov r0, #1
str r0, [r5]
b _0203E6CC
@ -683,7 +683,7 @@ sub_0203E740: ; 0x0203E740
ldr r1, _0203E768 ; =_0210159C
add r0, r5, #0
add r2, r6, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r6, #0
pop {r4, r5, r6, pc}
nop
@ -808,12 +808,12 @@ sub_0203E864: ; 0x0203E864
thumb_func_start sub_0203E868
sub_0203E868: ; 0x0203E868
ldr r3, _0203E870 ; =Fsys_LaunchApplication
ldr r3, _0203E870 ; =FieldSys_LaunchApplication
add r2, r1, #0
ldr r1, _0203E874 ; =_020FA414
bx r3
.balign 4, 0
_0203E870: .word Fsys_LaunchApplication
_0203E870: .word FieldSys_LaunchApplication
_0203E874: .word _020FA414
thumb_func_end sub_0203E868
@ -1031,12 +1031,12 @@ _0203EA20: .word sub_0203E878
thumb_func_start sub_0203EA24
sub_0203EA24: ; 0x0203EA24
ldr r3, _0203EA2C ; =Fsys_LaunchApplication
ldr r3, _0203EA2C ; =FieldSys_LaunchApplication
add r2, r1, #0
ldr r1, _0203EA30 ; =_020FA404
bx r3
.balign 4, 0
_0203EA2C: .word Fsys_LaunchApplication
_0203EA2C: .word FieldSys_LaunchApplication
_0203EA30: .word _020FA404
thumb_func_end sub_0203EA24
@ -1055,7 +1055,7 @@ SwitchToPokegearApp_Phone: ; 0x0203EA34
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add sp, #0x10
pop {r4, r5, r6, pc}
nop
@ -1077,7 +1077,7 @@ SwitchToPokegearApp_TownMap: ; 0x0203EA5C
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add sp, #0x10
pop {r4, r5, r6, pc}
nop
@ -1145,7 +1145,7 @@ sub_0203EAE0: ; 0x0203EAE0
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add sp, #0x10
pop {r4, r5, r6, pc}
nop
@ -1164,7 +1164,7 @@ sub_0203EB08: ; 0x0203EB08
add r4, r0, #0
bl MI_CpuFill8
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
str r0, [r4]
mov r0, #0x43
lsl r0, r0, #2
@ -1193,7 +1193,7 @@ sub_0203EB3C: ; 0x0203EB3C
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add sp, #0x10
pop {r4, r5, r6, pc}
nop
@ -1229,7 +1229,7 @@ sub_0203EB7C: ; 0x0203EB7C
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add sp, #0x10
pop {r4, r5, r6, pc}
nop
@ -1249,7 +1249,7 @@ sub_0203EBA4: ; 0x0203EBA4
add r4, r0, #0
bl MI_CpuFill8
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
str r0, [r4, #0xc]
mov r0, #0x43
lsl r0, r0, #2
@ -1264,8 +1264,8 @@ sub_0203EBA4: ; 0x0203EBA4
.balign 4, 0
thumb_func_end sub_0203EBA4
thumb_func_start Fsys_LaunchApplication_AlphPuzzle
Fsys_LaunchApplication_AlphPuzzle: ; 0x0203EBDC
thumb_func_start FieldSys_LaunchApplication_AlphPuzzle
FieldSys_LaunchApplication_AlphPuzzle: ; 0x0203EBDC
push {r4, r5, r6, lr}
sub sp, #0x10
ldr r5, _0203EC00 ; =_020FA3A4
@ -1279,12 +1279,12 @@ Fsys_LaunchApplication_AlphPuzzle: ; 0x0203EBDC
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_0203EC00: .word _020FA3A4
thumb_func_end Fsys_LaunchApplication_AlphPuzzle
thumb_func_end FieldSys_LaunchApplication_AlphPuzzle
thumb_func_start Fsys_CreateApplication_AlphPuzzle
Fsys_CreateApplication_AlphPuzzle: ; 0x0203EC04
@ -1299,7 +1299,7 @@ Fsys_CreateApplication_AlphPuzzle: ; 0x0203EC04
add r4, r0, #0
bl MI_CpuFill8
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
str r0, [r4, #0xc]
mov r0, #0x43
lsl r0, r0, #2
@ -1308,7 +1308,7 @@ Fsys_CreateApplication_AlphPuzzle: ; 0x0203EC04
add r0, r5, #0
add r1, r4, #0
strb r6, [r4, #5]
bl Fsys_LaunchApplication_AlphPuzzle
bl FieldSys_LaunchApplication_AlphPuzzle
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0
@ -1329,7 +1329,7 @@ sub_0203EC3C: ; 0x0203EC3C
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add sp, #0x10
pop {r4, r5, r6, pc}
nop
@ -1348,7 +1348,7 @@ CreateUnownReportWork: ; 0x0203EC64
add r4, r0, #0
bl MI_CpuFill8
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
str r0, [r4, #4]
mov r0, #0x43
lsl r0, r0, #2
@ -1377,7 +1377,7 @@ sub_0203EC98: ; 0x0203EC98
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add sp, #0x10
pop {r4, r5, r6, pc}
nop
@ -1396,7 +1396,7 @@ CreateBerryPotsWork: ; 0x0203ECC0
add r4, r0, #0
bl MI_CpuFill8
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
str r0, [r4, #0xc]
mov r0, #0x43
lsl r0, r0, #2
@ -1429,7 +1429,7 @@ sub_0203ECFC: ; 0x0203ECFC
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add sp, #0x10
pop {r4, r5, r6, pc}
nop
@ -1449,7 +1449,7 @@ CreateApricornBoxWork: ; 0x0203ED24
add r4, r0, #0
bl MI_CpuFill8
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
str r0, [r4, #0x18]
mov r0, #0x43
lsl r0, r0, #2
@ -1494,7 +1494,7 @@ sub_0203ED80: ; 0x0203ED80
add r4, r0, #0
bl MI_CpuFill8
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
str r0, [r4, #0x18]
mov r0, #0x43
lsl r0, r0, #2
@ -1518,12 +1518,12 @@ sub_0203ED80: ; 0x0203ED80
thumb_func_start sub_0203EDCC
sub_0203EDCC: ; 0x0203EDCC
ldr r3, _0203EDD4 ; =Fsys_LaunchApplication
ldr r3, _0203EDD4 ; =FieldSys_LaunchApplication
add r2, r1, #0
ldr r1, _0203EDD8 ; =_020FA364
bx r3
.balign 4, 0
_0203EDD4: .word Fsys_LaunchApplication
_0203EDD4: .word FieldSys_LaunchApplication
_0203EDD8: .word _020FA364
thumb_func_end sub_0203EDCC
@ -1557,12 +1557,12 @@ sub_0203EDDC: ; 0x0203EDDC
thumb_func_start sub_0203EE14
sub_0203EE14: ; 0x0203EE14
ldr r3, _0203EE1C ; =Fsys_LaunchApplication
ldr r3, _0203EE1C ; =FieldSys_LaunchApplication
add r2, r1, #0
ldr r1, _0203EE20 ; =_020FA354
bx r3
.balign 4, 0
_0203EE1C: .word Fsys_LaunchApplication
_0203EE1C: .word FieldSys_LaunchApplication
_0203EE20: .word _020FA354
thumb_func_end sub_0203EE14
@ -1575,7 +1575,7 @@ sub_0203EE24: ; 0x0203EE24
bl AllocFromHeapAtEnd
add r4, r0, #0
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_PlayerData_GetOptionsAddr
str r0, [r4, #4]
mov r0, #0x43
@ -1621,12 +1621,12 @@ _0203EE8A:
thumb_func_start sub_0203EE90
sub_0203EE90: ; 0x0203EE90
ldr r3, _0203EE98 ; =Fsys_LaunchApplication
ldr r3, _0203EE98 ; =FieldSys_LaunchApplication
add r2, r1, #0
ldr r1, _0203EE9C ; =_020FA344
bx r3
.balign 4, 0
_0203EE98: .word Fsys_LaunchApplication
_0203EE98: .word FieldSys_LaunchApplication
_0203EE9C: .word _020FA344
thumb_func_end sub_0203EE90
@ -1639,7 +1639,7 @@ sub_0203EEA0: ; 0x0203EEA0
bl AllocFromHeapAtEnd
add r4, r0, #0
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
add r6, r0, #0
bl Save_Pokeathlon_get
bl sub_02031974
@ -1656,12 +1656,12 @@ sub_0203EEA0: ; 0x0203EEA0
thumb_func_start sub_0203EED4
sub_0203EED4: ; 0x0203EED4
ldr r3, _0203EEDC ; =Fsys_LaunchApplication
ldr r3, _0203EEDC ; =FieldSys_LaunchApplication
add r2, r1, #0
ldr r1, _0203EEE0 ; =_020FA314
bx r3
.balign 4, 0
_0203EEDC: .word Fsys_LaunchApplication
_0203EEDC: .word FieldSys_LaunchApplication
_0203EEE0: .word _020FA314
thumb_func_end sub_0203EED4
@ -1674,7 +1674,7 @@ sub_0203EEE4: ; 0x0203EEE4
bl AllocFromHeapAtEnd
add r4, r0, #0
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
add r6, r0, #0
bl Save_Pokeathlon_get
add r7, r0, #0
@ -1701,12 +1701,12 @@ sub_0203EEE4: ; 0x0203EEE4
thumb_func_start sub_0203EF30
sub_0203EF30: ; 0x0203EF30
ldr r3, _0203EF38 ; =Fsys_LaunchApplication
ldr r3, _0203EF38 ; =FieldSys_LaunchApplication
add r2, r1, #0
ldr r1, _0203EF3C ; =_020FA324
bx r3
.balign 4, 0
_0203EF38: .word Fsys_LaunchApplication
_0203EF38: .word FieldSys_LaunchApplication
_0203EF3C: .word _020FA324
thumb_func_end sub_0203EF30
@ -1719,7 +1719,7 @@ sub_0203EF40: ; 0x0203EF40
bl AllocFromHeapAtEnd
add r4, r0, #0
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
add r6, r0, #0
bl Save_Pokeathlon_get
add r7, r0, #0
@ -1747,12 +1747,12 @@ sub_0203EF40: ; 0x0203EF40
thumb_func_start sub_0203EF90
sub_0203EF90: ; 0x0203EF90
ldr r3, _0203EF98 ; =Fsys_LaunchApplication
ldr r3, _0203EF98 ; =FieldSys_LaunchApplication
add r2, r1, #0
ldr r1, _0203EF9C ; =_020FA424
bx r3
.balign 4, 0
_0203EF98: .word Fsys_LaunchApplication
_0203EF98: .word FieldSys_LaunchApplication
_0203EF9C: .word _020FA424
thumb_func_end sub_0203EF90
@ -1765,7 +1765,7 @@ sub_0203EFA0: ; 0x0203EFA0
bl AllocFromHeapAtEnd
add r4, r0, #0
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
add r7, r0, #0
bl Sav2_PlayerData_GetProfileAddr
add r6, r0, #0
@ -1788,11 +1788,11 @@ sub_0203EFD4: ; 0x0203EFD4
lsl r1, r1, #2
add r1, r0, r1
str r1, [r2, #0x1c]
ldr r3, _0203EFE4 ; =Fsys_LaunchApplication
ldr r3, _0203EFE4 ; =FieldSys_LaunchApplication
ldr r1, _0203EFE8 ; =_020FA434
bx r3
.balign 4, 0
_0203EFE4: .word Fsys_LaunchApplication
_0203EFE4: .word FieldSys_LaunchApplication
_0203EFE8: .word _020FA434
thumb_func_end sub_0203EFD4
@ -1803,7 +1803,7 @@ sub_0203EFEC: ; 0x0203EFEC
add r4, r1, #0
add r6, r2, #0
add r7, r3, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
mov r1, #0xb
str r1, [sp]
add r1, r4, #0
@ -1828,13 +1828,13 @@ CreateUseMailWork: ; 0x0203F018
add r6, r3, #0
cmp r5, #3
bne _0203F034
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
add r1, r4, #0
add r2, r6, #0
bl sub_02090F38
b _0203F042
_0203F034:
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
add r1, r5, #0
add r2, r4, #0
add r3, r6, #0
@ -1854,7 +1854,7 @@ sub_0203F050: ; 0x0203F050
add r4, r1, #0
add r6, r2, #0
add r5, r0, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
add r1, r4, #0
add r2, r6, #0
bl sub_02090F00
@ -1876,7 +1876,7 @@ sub_0203F074: ; 0x0203F074
bl AllocFromHeap
add r4, r0, #0
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
str r0, [r4]
mov r0, #0x43
lsl r0, r0, #2
@ -1886,7 +1886,7 @@ sub_0203F074: ; 0x0203F074
ldr r1, _0203F0A4 ; =_020FA2F4
add r0, r5, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
@ -1908,7 +1908,7 @@ sub_0203F0A8: ; 0x0203F0A8
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add sp, #0x10
pop {r4, r5, r6, pc}
nop
@ -2062,7 +2062,7 @@ sub_0203F1E8: ; 0x0203F1E8
add r1, r0, r1
str r1, [r2, #0x20]
ldr r1, _0203F200 ; =_0210F9AC
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
mov r0, #1
pop {r3, pc}
nop
@ -2074,7 +2074,7 @@ sub_0203F204: ; 0x0203F204
push {r3, lr}
add r2, r1, #0
ldr r1, _0203F214 ; =_0210F99C
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
mov r0, #1
pop {r3, pc}
nop
@ -2430,7 +2430,7 @@ sub_0203F4C8: ; 0x0203F4C8
ldr r1, _0203F4F4 ; =_020FA2C4
add r0, r5, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
pop {r3, r4, r5, pc}
nop
_0203F4F4: .word _020FA2C4
@ -2463,7 +2463,7 @@ sub_0203F4F8: ; 0x0203F4F8
ldr r1, _0203F538 ; =_020FA2B4
add r0, r5, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
@ -2490,7 +2490,7 @@ CreatePalPadWork: ; 0x0203F53C
ldr r1, _0203F56C ; =_020FA2A4
add r0, r5, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0
@ -2499,12 +2499,12 @@ _0203F56C: .word _020FA2A4
thumb_func_start sub_0203F570
sub_0203F570: ; 0x0203F570
ldr r3, _0203F578 ; =Fsys_LaunchApplication
ldr r3, _0203F578 ; =FieldSys_LaunchApplication
ldr r1, _0203F57C ; =_02102830
add r2, r0, #0
bx r3
.balign 4, 0
_0203F578: .word Fsys_LaunchApplication
_0203F578: .word FieldSys_LaunchApplication
_0203F57C: .word _02102830
thumb_func_end sub_0203F570
@ -2808,7 +2808,7 @@ sub_0203F7B0: ; 0x0203F7B0
ldr r1, _0203F7F0 ; =_020FA294
add r0, r5, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
pop {r3, r4, r5, pc}
nop
_0203F7E8: .word 0x0000066C
@ -2821,7 +2821,7 @@ sub_0203F7F4: ; 0x0203F7F4
push {r3, lr}
add r2, r1, #0
ldr r1, _0203F804 ; =_020FA284
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
mov r0, #1
pop {r3, pc}
nop
@ -2830,12 +2830,12 @@ _0203F804: .word _020FA284
thumb_func_start LaunchChooseStarterApp
LaunchChooseStarterApp: ; 0x0203F808
ldr r3, _0203F810 ; =Fsys_LaunchApplication
ldr r3, _0203F810 ; =FieldSys_LaunchApplication
add r2, r1, #0
ldr r1, _0203F814 ; =sAppTemplate_ChooseStarter
bx r3
.balign 4, 0
_0203F810: .word Fsys_LaunchApplication
_0203F810: .word FieldSys_LaunchApplication
_0203F814: .word sAppTemplate_ChooseStarter
thumb_func_end LaunchChooseStarterApp
@ -2856,7 +2856,7 @@ sub_0203F818: ; 0x0203F818
add r1, r2, #0
ldr r2, [r4, #0xc]
add r0, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add sp, #0x10
pop {r3, r4, r5, pc}
.balign 4, 0
@ -2928,7 +2928,7 @@ sub_0203F844: ; 0x0203F844
add r1, sp, #0
add r2, r4, #0
str r6, [r4, #0x3c]
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add sp, #0x10
pop {r4, r5, r6, pc}
.balign 4, 0
@ -2981,7 +2981,7 @@ sub_0203F8EC: ; 0x0203F8EC
add r0, r5, #0
add r1, sp, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r4, #0
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
@ -2991,23 +2991,23 @@ _0203F960: .word _020FA334
thumb_func_start sub_0203F964
sub_0203F964: ; 0x0203F964
ldr r3, _0203F96C ; =Fsys_LaunchApplication
ldr r3, _0203F96C ; =FieldSys_LaunchApplication
ldr r1, _0203F970 ; =_020FA224
ldr r2, [r0, #0xc]
bx r3
.balign 4, 0
_0203F96C: .word Fsys_LaunchApplication
_0203F96C: .word FieldSys_LaunchApplication
_0203F970: .word _020FA224
thumb_func_end sub_0203F964
thumb_func_start LaunchHOFCongratsApp
LaunchHOFCongratsApp: ; 0x0203F974
ldr r3, _0203F97C ; =Fsys_LaunchApplication
ldr r3, _0203F97C ; =FieldSys_LaunchApplication
add r2, r1, #0
ldr r1, _0203F980 ; =_020FA214
bx r3
.balign 4, 0
_0203F97C: .word Fsys_LaunchApplication
_0203F97C: .word FieldSys_LaunchApplication
_0203F980: .word _020FA214
thumb_func_end LaunchHOFCongratsApp
@ -3030,7 +3030,7 @@ _0203F9A2:
ldr r1, _0203F9B0 ; =_020FA204
add r0, r5, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
@ -3039,12 +3039,12 @@ _0203F9B0: .word _020FA204
thumb_func_start LaunchCreditsApp
LaunchCreditsApp: ; 0x0203F9B4
ldr r3, _0203F9BC ; =Fsys_LaunchApplication
ldr r3, _0203F9BC ; =FieldSys_LaunchApplication
add r2, r1, #0
ldr r1, _0203F9C0 ; =_020FA1F4
bx r3
.balign 4, 0
_0203F9BC: .word Fsys_LaunchApplication
_0203F9BC: .word FieldSys_LaunchApplication
_0203F9C0: .word _020FA1F4
thumb_func_end LaunchCreditsApp
@ -3067,7 +3067,7 @@ sub_0203F9C4: ; 0x0203F9C4
str r0, [r2, #0xc]
add r0, r3, #0
add r1, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add sp, #0x10
pop {r4, r5, r6, pc}
nop
@ -3118,7 +3118,7 @@ sub_0203FA38: ; 0x0203FA38
add r4, r0, #0
bl MI_CpuFill8
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
add r6, r0, #0
bl Sav2_PlayerData_GetCoinsAddr
str r0, [r4, #4]
@ -3137,7 +3137,7 @@ sub_0203FA38: ; 0x0203FA38
str r0, [r4, #0x10]
add r0, r5, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r4, #0
pop {r4, r5, r6, pc}
nop
@ -3159,7 +3159,7 @@ sub_0203FA8C: ; 0x0203FA8C
str r0, [r4]
add r0, r5, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0
@ -3186,7 +3186,7 @@ sub_0203FAB4: ; 0x0203FAB4
add r2, r4, #0
str r0, [r4]
add r0, r5, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
nop
@ -3241,7 +3241,7 @@ sub_0203FAE8: ; 0x0203FAE8
ldr r1, _0203FB5C ; =_0210159C
add r0, r5, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r4, #0
pop {r4, r5, r6, pc}
nop
@ -3269,7 +3269,7 @@ _0203FB74:
str r0, [r4]
add r0, r5, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
@ -3323,7 +3323,7 @@ sub_0203FB94: ; 0x0203FB94
ldr r1, _0203FC10 ; =_02103A1C
add r0, r5, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r4, #0
pop {r4, r5, r6, pc}
nop
@ -3359,7 +3359,7 @@ sub_0203FC14: ; 0x0203FC14
add r0, r5, #0
add r2, r4, #0
strb r7, [r4, #0xc]
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
@ -3368,12 +3368,12 @@ _0203FC54: .word _020FA1C4
thumb_func_start Fsys_LaunchPokeathlonCourseApplication
Fsys_LaunchPokeathlonCourseApplication: ; 0x0203FC58
ldr r3, _0203FC60 ; =Fsys_LaunchApplication
ldr r3, _0203FC60 ; =FieldSys_LaunchApplication
add r2, r1, #0
ldr r1, _0203FC64 ; =_020FA244
bx r3
.balign 4, 0
_0203FC60: .word Fsys_LaunchApplication
_0203FC60: .word FieldSys_LaunchApplication
_0203FC64: .word _020FA244
thumb_func_end Fsys_LaunchPokeathlonCourseApplication
@ -3392,7 +3392,7 @@ sub_0203FC68: ; 0x0203FC68
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add sp, #0x10
pop {r4, r5, r6, pc}
nop
@ -3414,7 +3414,7 @@ sub_0203FC90: ; 0x0203FC90
stmia r4!, {r0, r1}
add r0, r6, #0
add r1, r3, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add sp, #0x10
pop {r4, r5, r6, pc}
nop
@ -3436,7 +3436,7 @@ sub_0203FCB8: ; 0x0203FCB8
add r4, r0, #0
bl memset
add r0, r6, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
str r0, [r4]
add r3, r4, #4
mov r2, #9
@ -3455,7 +3455,7 @@ _0203FCE0:
ldr r1, _0203FD04 ; =_020FA474
add r0, r6, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
@ -3464,11 +3464,11 @@ _0203FD04: .word _020FA474
thumb_func_start sub_0203FD08
sub_0203FD08: ; 0x0203FD08
ldr r3, _0203FD10 ; =Fsys_LaunchApplication
ldr r3, _0203FD10 ; =FieldSys_LaunchApplication
add r2, r1, #0
ldr r1, _0203FD14 ; =_020FA494
bx r3
.balign 4, 0
_0203FD10: .word Fsys_LaunchApplication
_0203FD10: .word FieldSys_LaunchApplication
_0203FD14: .word _020FA494
thumb_func_end sub_0203FD08

View File

@ -1105,7 +1105,7 @@ _0204FD3A:
ldr r1, _0204FD4C ; =_0210159C
add r0, r6, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
ldr r0, [r5, #0xc]
str r4, [r0]
mov r0, #1
@ -1210,7 +1210,7 @@ sub_0204FDA0: ; 0x0204FDA0
ldr r1, _0204FE2C ; =_02103A1C
add r0, r7, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
ldr r0, [r6, #0xc]
str r4, [r0]
mov r0, #3
@ -1782,7 +1782,7 @@ _0205027A:
ldr r1, _0205028C ; =_0210159C
add r0, r6, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
ldr r0, [r5, #0xc]
str r4, [r0]
mov r0, #1
@ -1887,7 +1887,7 @@ sub_020502E0: ; 0x020502E0
ldr r1, _0205036C ; =_02103A1C
add r0, r7, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
ldr r0, [r6, #0xc]
str r4, [r0]
mov r0, #3

View File

@ -112,7 +112,7 @@ sub_020580E4: ; 0x020580E4
cmp r0, #0
bne _0205811C
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
mov r1, #0
add r3, r5, #0
str r1, [sp]
@ -144,7 +144,7 @@ sub_02058124: ; 0x02058124
cmp r0, #0
bne _0205815C
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
mov r1, #0
add r3, r5, #0
str r1, [sp]

View File

@ -74,7 +74,7 @@ sub_02058AEC: ; 0x02058AEC
ldr r1, _02058B80 ; =_02103A1C
add r0, r6, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
str r4, [r7]
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
@ -202,7 +202,7 @@ _02058C5C:
ldr r0, [r5, #0x24]
ldr r1, _02058C7C ; =_0210159C
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
str r4, [r5, #4]
pop {r3, r4, r5, pc}
.balign 4, 0
@ -2474,7 +2474,7 @@ sub_02059E1C: ; 0x02059E1C
mov r0, #0
pop {r4, r5, r6, pc}
_02059E2E:
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
add r6, r0, #0
bl sub_02037F18
mov r1, #0x19

View File

@ -1,924 +0,0 @@
.include "asm/macros.inc"
.include "global.inc"
.rodata
_020FCA74:
.byte 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.text
thumb_func_start sub_0205B6E8
sub_0205B6E8: ; 0x0205B6E8
cmp r0, #2
bne _0205B6F0
mov r0, #1
bx lr
_0205B6F0:
mov r0, #0
bx lr
thumb_func_end sub_0205B6E8
thumb_func_start sub_0205B6F4
sub_0205B6F4: ; 0x0205B6F4
cmp r0, #3
bne _0205B6FC
mov r0, #1
bx lr
_0205B6FC:
mov r0, #0
bx lr
thumb_func_end sub_0205B6F4
thumb_func_start sub_0205B700
sub_0205B700: ; 0x0205B700
cmp r0, #0x80
bne _0205B708
mov r0, #1
bx lr
_0205B708:
mov r0, #0
bx lr
thumb_func_end sub_0205B700
thumb_func_start sub_0205B70C
sub_0205B70C: ; 0x0205B70C
cmp r0, #0x69
bne _0205B714
mov r0, #1
bx lr
_0205B714:
mov r0, #0
bx lr
thumb_func_end sub_0205B70C
thumb_func_start sub_0205B718
sub_0205B718: ; 0x0205B718
cmp r0, #0x62
bne _0205B720
mov r0, #1
bx lr
_0205B720:
mov r0, #0
bx lr
thumb_func_end sub_0205B718
thumb_func_start sub_0205B724
sub_0205B724: ; 0x0205B724
cmp r0, #0x63
bne _0205B72C
mov r0, #1
bx lr
_0205B72C:
mov r0, #0
bx lr
thumb_func_end sub_0205B724
thumb_func_start sub_0205B730
sub_0205B730: ; 0x0205B730
cmp r0, #0x64
bne _0205B738
mov r0, #1
bx lr
_0205B738:
mov r0, #0
bx lr
thumb_func_end sub_0205B730
thumb_func_start sub_0205B73C
sub_0205B73C: ; 0x0205B73C
cmp r0, #0x65
bne _0205B744
mov r0, #1
bx lr
_0205B744:
mov r0, #0
bx lr
thumb_func_end sub_0205B73C
thumb_func_start sub_0205B748
sub_0205B748: ; 0x0205B748
cmp r0, #0x6c
bne _0205B750
mov r0, #1
bx lr
_0205B750:
mov r0, #0
bx lr
thumb_func_end sub_0205B748
thumb_func_start sub_0205B754
sub_0205B754: ; 0x0205B754
cmp r0, #0x6d
bne _0205B75C
mov r0, #1
bx lr
_0205B75C:
mov r0, #0
bx lr
thumb_func_end sub_0205B754
thumb_func_start sub_0205B760
sub_0205B760: ; 0x0205B760
cmp r0, #0x6e
bne _0205B768
mov r0, #1
bx lr
_0205B768:
mov r0, #0
bx lr
thumb_func_end sub_0205B760
thumb_func_start sub_0205B76C
sub_0205B76C: ; 0x0205B76C
cmp r0, #0x6f
bne _0205B774
mov r0, #1
bx lr
_0205B774:
mov r0, #0
bx lr
thumb_func_end sub_0205B76C
thumb_func_start sub_0205B778
sub_0205B778: ; 0x0205B778
ldr r1, _0205B788 ; =_020FCA74
ldrb r1, [r1, r0]
mov r0, #1
tst r1, r0
bne _0205B784
mov r0, #0
_0205B784:
bx lr
nop
_0205B788: .word _020FCA74
thumb_func_end sub_0205B778
thumb_func_start sub_0205B78C
sub_0205B78C: ; 0x0205B78C
cmp r0, #0x22
bne _0205B794
mov r0, #1
bx lr
_0205B794:
mov r0, #0
bx lr
thumb_func_end sub_0205B78C
thumb_func_start sub_0205B798
sub_0205B798: ; 0x0205B798
cmp r0, #0x21
bne _0205B7A0
mov r0, #1
bx lr
_0205B7A0:
mov r0, #0
bx lr
thumb_func_end sub_0205B798
thumb_func_start sub_0205B7A4
sub_0205B7A4: ; 0x0205B7A4
cmp r0, #0x17
bne _0205B7AC
mov r0, #1
bx lr
_0205B7AC:
mov r0, #0
bx lr
thumb_func_end sub_0205B7A4
thumb_func_start sub_0205B7B0
sub_0205B7B0: ; 0x0205B7B0
cmp r0, #0x3a
bne _0205B7B8
mov r0, #1
bx lr
_0205B7B8:
mov r0, #0
bx lr
thumb_func_end sub_0205B7B0
thumb_func_start sub_0205B7BC
sub_0205B7BC: ; 0x0205B7BC
cmp r0, #0x3b
bne _0205B7C4
mov r0, #1
bx lr
_0205B7C4:
mov r0, #0
bx lr
thumb_func_end sub_0205B7BC
thumb_func_start sub_0205B7C8
sub_0205B7C8: ; 0x0205B7C8
cmp r0, #0x39
bne _0205B7D0
mov r0, #1
bx lr
_0205B7D0:
mov r0, #0
bx lr
thumb_func_end sub_0205B7C8
thumb_func_start sub_0205B7D4
sub_0205B7D4: ; 0x0205B7D4
cmp r0, #0x38
bne _0205B7DC
mov r0, #1
bx lr
_0205B7DC:
mov r0, #0
bx lr
thumb_func_end sub_0205B7D4
thumb_func_start sub_0205B7E0
sub_0205B7E0: ; 0x0205B7E0
cmp r0, #0x83
bne _0205B7E8
mov r0, #1
bx lr
_0205B7E8:
mov r0, #0
bx lr
thumb_func_end sub_0205B7E0
thumb_func_start sub_0205B7EC
sub_0205B7EC: ; 0x0205B7EC
cmp r0, #0x85
bne _0205B7F4
mov r0, #1
bx lr
_0205B7F4:
mov r0, #0
bx lr
thumb_func_end sub_0205B7EC
thumb_func_start sub_0205B7F8
sub_0205B7F8: ; 0x0205B7F8
cmp r0, #0x6a
bne _0205B800
mov r0, #1
bx lr
_0205B800:
mov r0, #0
bx lr
thumb_func_end sub_0205B7F8
thumb_func_start sub_0205B804
sub_0205B804: ; 0x0205B804
cmp r0, #0x6b
bne _0205B80C
mov r0, #1
bx lr
_0205B80C:
mov r0, #0
bx lr
thumb_func_end sub_0205B804
thumb_func_start sub_0205B810
sub_0205B810: ; 0x0205B810
cmp r0, #0x5e
bne _0205B818
mov r0, #1
bx lr
_0205B818:
mov r0, #0
bx lr
thumb_func_end sub_0205B810
thumb_func_start sub_0205B81C
sub_0205B81C: ; 0x0205B81C
cmp r0, #0x5f
bne _0205B824
mov r0, #1
bx lr
_0205B824:
mov r0, #0
bx lr
thumb_func_end sub_0205B81C
thumb_func_start sub_0205B828
sub_0205B828: ; 0x0205B828
cmp r0, #0x20
bne _0205B830
mov r0, #1
bx lr
_0205B830:
mov r0, #0
bx lr
thumb_func_end sub_0205B828
thumb_func_start sub_0205B834
sub_0205B834: ; 0x0205B834
cmp r0, #0x4b
bne _0205B83C
mov r0, #1
bx lr
_0205B83C:
mov r0, #0
bx lr
thumb_func_end sub_0205B834
thumb_func_start sub_0205B840
sub_0205B840: ; 0x0205B840
cmp r0, #0x4c
bne _0205B848
mov r0, #1
bx lr
_0205B848:
mov r0, #0
bx lr
thumb_func_end sub_0205B840
thumb_func_start sub_0205B84C
sub_0205B84C: ; 0x0205B84C
cmp r0, #0xe0
bne _0205B854
mov r0, #1
bx lr
_0205B854:
mov r0, #0
bx lr
thumb_func_end sub_0205B84C
thumb_func_start sub_0205B858
sub_0205B858: ; 0x0205B858
cmp r0, #0xea
bne _0205B860
mov r0, #1
bx lr
_0205B860:
mov r0, #0
bx lr
thumb_func_end sub_0205B858
thumb_func_start sub_0205B864
sub_0205B864: ; 0x0205B864
cmp r0, #0xe1
bne _0205B86C
mov r0, #1
bx lr
_0205B86C:
mov r0, #0
bx lr
thumb_func_end sub_0205B864
thumb_func_start sub_0205B870
sub_0205B870: ; 0x0205B870
cmp r0, #0xe2
bne _0205B878
mov r0, #1
bx lr
_0205B878:
mov r0, #0
bx lr
thumb_func_end sub_0205B870
thumb_func_start sub_0205B87C
sub_0205B87C: ; 0x0205B87C
cmp r0, #0xe4
bne _0205B884
mov r0, #1
bx lr
_0205B884:
mov r0, #0
bx lr
thumb_func_end sub_0205B87C
thumb_func_start sub_0205B888
sub_0205B888: ; 0x0205B888
cmp r0, #0xe5
bne _0205B890
mov r0, #1
bx lr
_0205B890:
mov r0, #0
bx lr
thumb_func_end sub_0205B888
thumb_func_start sub_0205B894
sub_0205B894: ; 0x0205B894
cmp r0, #0xeb
bne _0205B89C
mov r0, #1
bx lr
_0205B89C:
mov r0, #0
bx lr
thumb_func_end sub_0205B894
thumb_func_start sub_0205B8A0
sub_0205B8A0: ; 0x0205B8A0
cmp r0, #0xec
bne _0205B8A8
mov r0, #1
bx lr
_0205B8A8:
mov r0, #0
bx lr
thumb_func_end sub_0205B8A0
thumb_func_start sub_0205B8AC
sub_0205B8AC: ; 0x0205B8AC
cmp r0, #0xa4
bne _0205B8B4
mov r0, #1
bx lr
_0205B8B4:
mov r0, #0
bx lr
thumb_func_end sub_0205B8AC
thumb_func_start sub_0205B8B8
sub_0205B8B8: ; 0x0205B8B8
cmp r0, #0xa8
bne _0205B8C0
mov r0, #1
bx lr
_0205B8C0:
mov r0, #0
bx lr
thumb_func_end sub_0205B8B8
thumb_func_start sub_0205B8C4
sub_0205B8C4: ; 0x0205B8C4
cmp r0, #0xa8
bne _0205B8CC
mov r0, #1
bx lr
_0205B8CC:
mov r0, #0
bx lr
thumb_func_end sub_0205B8C4
thumb_func_start sub_0205B8D0
sub_0205B8D0: ; 0x0205B8D0
cmp r0, #8
bne _0205B8D8
mov r0, #1
bx lr
_0205B8D8:
mov r0, #0
bx lr
thumb_func_end sub_0205B8D0
thumb_func_start MetatileBehavior_IsWaterfall
MetatileBehavior_IsWaterfall: ; 0x0205B8DC
cmp r0, #0x13
bne _0205B8E4
mov r0, #1
bx lr
_0205B8E4:
mov r0, #0
bx lr
thumb_func_end MetatileBehavior_IsWaterfall
thumb_func_start MetatileBehavior_IsWhirlpool
MetatileBehavior_IsWhirlpool: ; 0x0205B8E8
cmp r0, #0x11
bne _0205B8F0
mov r0, #1
bx lr
_0205B8F0:
mov r0, #0
bx lr
thumb_func_end MetatileBehavior_IsWhirlpool
thumb_func_start sub_0205B8F4
sub_0205B8F4: ; 0x0205B8F4
add r0, #0xce
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r3, #0
cmp r0, #0x17
bhi _0205B90E
mov r1, #1
add r2, r1, #0
lsl r2, r0
ldr r0, _0205B914 ; =0x0080040D
tst r0, r2
beq _0205B90E
add r3, r1, #0
_0205B90E:
add r0, r3, #0
bx lr
nop
_0205B914: .word 0x0080040D
thumb_func_end sub_0205B8F4
thumb_func_start sub_0205B918
sub_0205B918: ; 0x0205B918
add r0, #0xcd
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r3, #0
cmp r0, #0x16
bhi _0205B932
mov r1, #1
add r2, r1, #0
lsl r2, r0
ldr r0, _0205B938 ; =0x00400419
tst r0, r2
beq _0205B932
add r3, r1, #0
_0205B932:
add r0, r3, #0
bx lr
nop
_0205B938: .word 0x00400419
thumb_func_end sub_0205B918
thumb_func_start sub_0205B93C
sub_0205B93C: ; 0x0205B93C
add r0, #0xcf
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r3, #0
cmp r0, #0x19
bhi _0205B956
mov r1, #1
add r2, r1, #0
lsl r2, r0
ldr r0, _0205B95C ; =0x02000051
tst r0, r2
beq _0205B956
add r3, r1, #0
_0205B956:
add r0, r3, #0
bx lr
nop
_0205B95C: .word 0x02000051
thumb_func_end sub_0205B93C
thumb_func_start sub_0205B960
sub_0205B960: ; 0x0205B960
add r0, #0xd0
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r3, #0
cmp r0, #0x1a
bhi _0205B97A
mov r1, #1
add r2, r1, #0
lsl r2, r0
ldr r0, _0205B980 ; =0x04000051
tst r0, r2
beq _0205B97A
add r3, r1, #0
_0205B97A:
add r0, r3, #0
bx lr
nop
_0205B980: .word 0x04000051
thumb_func_end sub_0205B960
thumb_func_start sub_0205B984
sub_0205B984: ; 0x0205B984
cmp r0, #0x16
beq _0205B98C
cmp r0, #0x1d
bne _0205B990
_0205B98C:
mov r0, #1
bx lr
_0205B990:
mov r0, #0
bx lr
thumb_func_end sub_0205B984
thumb_func_start sub_0205B994
sub_0205B994: ; 0x0205B994
ldr r1, _0205B9A8 ; =_020FCA74
ldrb r1, [r1, r0]
mov r0, #2
tst r0, r1
beq _0205B9A2
mov r0, #1
bx lr
_0205B9A2:
mov r0, #0
bx lr
nop
_0205B9A8: .word _020FCA74
thumb_func_end sub_0205B994
thumb_func_start sub_0205B9AC
sub_0205B9AC: ; 0x0205B9AC
cmp r0, #0x86
bne _0205B9B4
mov r0, #1
bx lr
_0205B9B4:
mov r0, #0
bx lr
thumb_func_end sub_0205B9AC
thumb_func_start sub_0205B9B8
sub_0205B9B8: ; 0x0205B9B8
add r0, #0xf0
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r3, #0
cmp r0, #0x1d
bhi _0205B9D2
mov r1, #1
add r2, r1, #0
lsl r2, r0
ldr r0, _0205B9D8 ; =0x20012041
tst r0, r2
beq _0205B9D2
add r3, r1, #0
_0205B9D2:
add r0, r3, #0
bx lr
nop
_0205B9D8: .word 0x20012041
thumb_func_end sub_0205B9B8
thumb_func_start sub_0205B9DC
sub_0205B9DC: ; 0x0205B9DC
cmp r0, #0x40
bne _0205B9E4
mov r0, #1
bx lr
_0205B9E4:
mov r0, #0
bx lr
thumb_func_end sub_0205B9DC
thumb_func_start sub_0205B9E8
sub_0205B9E8: ; 0x0205B9E8
cmp r0, #0x41
bne _0205B9F0
mov r0, #1
bx lr
_0205B9F0:
mov r0, #0
bx lr
thumb_func_end sub_0205B9E8
thumb_func_start sub_0205B9F4
sub_0205B9F4: ; 0x0205B9F4
cmp r0, #0x42
bne _0205B9FC
mov r0, #1
bx lr
_0205B9FC:
mov r0, #0
bx lr
thumb_func_end sub_0205B9F4
thumb_func_start sub_0205BA00
sub_0205BA00: ; 0x0205BA00
cmp r0, #0x43
bne _0205BA08
mov r0, #1
bx lr
_0205BA08:
mov r0, #0
bx lr
thumb_func_end sub_0205BA00
thumb_func_start sub_0205BA0C
sub_0205BA0C: ; 0x0205BA0C
cmp r0, #0x4d
bne _0205BA14
mov r0, #1
bx lr
_0205BA14:
mov r0, #0
bx lr
thumb_func_end sub_0205BA0C
thumb_func_start sub_0205BA18
sub_0205BA18: ; 0x0205BA18
cmp r0, #0x67
bne _0205BA20
mov r0, #1
bx lr
_0205BA20:
mov r0, #0
bx lr
thumb_func_end sub_0205BA18
thumb_func_start sub_0205BA24
sub_0205BA24: ; 0x0205BA24
cmp r0, #0x70
bne _0205BA2C
mov r0, #1
bx lr
_0205BA2C:
mov r0, #0
bx lr
thumb_func_end sub_0205BA24
thumb_func_start sub_0205BA30
sub_0205BA30: ; 0x0205BA30
add r0, #0x8f
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #2
bhi _0205BA3E
mov r0, #1
bx lr
_0205BA3E:
mov r0, #0
bx lr
.balign 4, 0
thumb_func_end sub_0205BA30
thumb_func_start sub_0205BA44
sub_0205BA44: ; 0x0205BA44
cmp r0, #0x71
beq _0205BA4C
cmp r0, #0x72
bne _0205BA50
_0205BA4C:
mov r0, #1
bx lr
_0205BA50:
mov r0, #0
bx lr
thumb_func_end sub_0205BA44
thumb_func_start sub_0205BA54
sub_0205BA54: ; 0x0205BA54
cmp r0, #0x73
bne _0205BA5C
mov r0, #1
bx lr
_0205BA5C:
mov r0, #0
bx lr
thumb_func_end sub_0205BA54
thumb_func_start sub_0205BA60
sub_0205BA60: ; 0x0205BA60
cmp r0, #0xff
bne _0205BA68
mov r0, #1
bx lr
_0205BA68:
mov r0, #0
bx lr
thumb_func_end sub_0205BA60
thumb_func_start sub_0205BA6C
sub_0205BA6C: ; 0x0205BA6C
mov r0, #0xff
bx lr
thumb_func_end sub_0205BA6C
thumb_func_start sub_0205BA70
sub_0205BA70: ; 0x0205BA70
add r0, #0xe3
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r3, #0
cmp r0, #0x10
bhi _0205BA8A
mov r1, #1
add r2, r1, #0
lsl r2, r0
ldr r0, _0205BA90 ; =0x00010009
tst r0, r2
beq _0205BA8A
add r3, r1, #0
_0205BA8A:
add r0, r3, #0
bx lr
nop
_0205BA90: .word 0x00010009
thumb_func_end sub_0205BA70
thumb_func_start sub_0205BA94
sub_0205BA94: ; 0x0205BA94
cmp r0, #0xa9
bne _0205BA9C
mov r0, #1
bx lr
_0205BA9C:
mov r0, #0
bx lr
thumb_func_end sub_0205BA94
thumb_func_start sub_0205BAA0
sub_0205BAA0: ; 0x0205BAA0
cmp r0, #0x3c
bne _0205BAA8
mov r0, #1
bx lr
_0205BAA8:
mov r0, #0
bx lr
thumb_func_end sub_0205BAA0
thumb_func_start sub_0205BAAC
sub_0205BAAC: ; 0x0205BAAC
cmp r0, #0x3d
bne _0205BAB4
mov r0, #1
bx lr
_0205BAB4:
mov r0, #0
bx lr
thumb_func_end sub_0205BAAC
thumb_func_start sub_0205BAB8
sub_0205BAB8: ; 0x0205BAB8
cmp r0, #0x3e
bne _0205BAC0
mov r0, #1
bx lr
_0205BAC0:
mov r0, #0
bx lr
thumb_func_end sub_0205BAB8
thumb_func_start sub_0205BAC4
sub_0205BAC4: ; 0x0205BAC4
cmp r0, #0x2c
bne _0205BACC
mov r0, #1
bx lr
_0205BACC:
mov r0, #0
bx lr
thumb_func_end sub_0205BAC4
thumb_func_start sub_0205BAD0
sub_0205BAD0: ; 0x0205BAD0
cmp r0, #0
beq _0205BADC
cmp r0, #0x21
beq _0205BADC
cmp r0, #0xa4
bne _0205BAE0
_0205BADC:
mov r0, #1
bx lr
_0205BAE0:
mov r0, #0
bx lr
thumb_func_end sub_0205BAD0
thumb_func_start sub_0205BAE4
sub_0205BAE4: ; 0x0205BAE4
ldr r3, _0205BAE8 ; =sub_0205B778
bx r3
.balign 4, 0
_0205BAE8: .word sub_0205B778
thumb_func_end sub_0205BAE4
thumb_func_start sub_0205BAEC
sub_0205BAEC: ; 0x0205BAEC
cmp r0, #0x23
bne _0205BAF4
mov r0, #1
bx lr
_0205BAF4:
mov r0, #0
bx lr
thumb_func_end sub_0205BAEC
thumb_func_start MetatileBehavior_IsHeadbutt
MetatileBehavior_IsHeadbutt: ; 0x0205BAF8
cmp r0, #6
bne _0205BB00
mov r0, #1
bx lr
_0205BB00:
mov r0, #0
bx lr
thumb_func_end MetatileBehavior_IsHeadbutt
thumb_func_start sub_0205BB04
sub_0205BB04: ; 0x0205BB04
push {r4, lr}
add r4, r0, #0
bl sub_0205BA44
cmp r0, #0
bne _0205BB14
cmp r4, #0x2e
bne _0205BB18
_0205BB14:
mov r0, #1
pop {r4, pc}
_0205BB18:
mov r0, #0
pop {r4, pc}
thumb_func_end sub_0205BB04

View File

@ -2553,7 +2553,7 @@ _0206115A:
add r1, r4, #0
bl sub_0205F4FC
add r0, r4, #0
bl sub_0205BA60
bl MetatileBehavior_IsNone
cmp r0, #1
bne _02061182
mov r1, #2

View File

@ -92,7 +92,7 @@ _02066F64:
ldr r1, _02066F8C ; =_0210159C
add r0, r6, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
ldr r0, [r5, #0x14]
str r4, [r0]
mov r0, #1
@ -208,7 +208,7 @@ sub_02066FEC: ; 0x02066FEC
ldr r1, _02067084 ; =_02103A1C
add r0, r7, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
ldr r0, [r6, #0x14]
str r4, [r0]
mov r0, #3

View File

@ -40,7 +40,7 @@ sTrashCanData:
thumb_func_start Fsys_InitEcruteakGymSaveData
Fsys_InitEcruteakGymSaveData: ; 0x02068DE0
push {r4, lr}
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
add r4, r0, #0
mov r1, #1
@ -61,7 +61,7 @@ _02068DFE:
thumb_func_start Fsys_InitCianwoodGym
Fsys_InitCianwoodGym: ; 0x02068E08
push {r4, lr}
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
add r4, r0, #0
mov r1, #2
@ -76,7 +76,7 @@ Fsys_InitCianwoodGym: ; 0x02068E08
Fsys_InitVermilionGym: ; 0x02068E24
push {r3, r4, r5, lr}
add r5, r0, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
add r4, r0, #0
mov r1, #3
@ -111,7 +111,7 @@ _02068E60:
thumb_func_start PlaceVermilionGymSwitches
PlaceVermilionGymSwitches: ; 0x02068E70
push {r3, r4, r5, r6, r7, lr}
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #3
bl SavGymmick_AssertMagic_GetData
@ -140,7 +140,7 @@ _02068EAC: .word sTrashCanData
thumb_func_start Fsys_InitVioletGym
Fsys_InitVioletGym: ; 0x02068EB0
push {r4, lr}
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
add r4, r0, #0
mov r1, #4
@ -156,7 +156,7 @@ Fsys_InitVioletGym: ; 0x02068EB0
thumb_func_start Fsys_InitAzaleaGym
Fsys_InitAzaleaGym: ; 0x02068ED0
push {r4, lr}
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
add r4, r0, #0
mov r1, #5
@ -180,7 +180,7 @@ Fsys_InitAzaleaGym: ; 0x02068ED0
thumb_func_start Fsys_InitBlackthornGym
Fsys_InitBlackthornGym: ; 0x02068F00
push {r4, lr}
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
add r4, r0, #0
mov r1, #6
@ -212,7 +212,7 @@ Fsys_InitBlackthornGym: ; 0x02068F00
thumb_func_start Fsys_InitFuchsiaGym
Fsys_InitFuchsiaGym: ; 0x02068F40
push {r3, lr}
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #7
bl SavGymmick_Init
@ -223,7 +223,7 @@ Fsys_InitFuchsiaGym: ; 0x02068F40
thumb_func_start Fsys_InitViridianGym
Fsys_InitViridianGym: ; 0x02068F54
push {r3, lr}
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
mov r1, #8
bl SavGymmick_Init
@ -235,7 +235,7 @@ Fsys_InitViridianGym: ; 0x02068F54
Fsys_IsSavGymmickTypeEqualTo: ; 0x02068F68
push {r4, lr}
add r4, r1, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
bl SavGymmick_GetType
cmp r4, r0

View File

@ -14,7 +14,7 @@ sub_02068FC8: ; 0x02068FC8
add r0, r6, #0
str r3, [sp, #0x1c]
ldr r5, [sp, #0xbc]
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
str r0, [sp, #0x20]
bl Sav2_PlayerData_GetProfileAddr
add r7, r0, #0
@ -247,7 +247,7 @@ _020691E4: .word FreeToHeap
thumb_func_start sub_020691E8
sub_020691E8: ; 0x020691E8
push {r3, r4, r5, r6, r7, lr}
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
add r7, r0, #0
bl Sav2_GameStats_get
add r0, r7, #0

View File

@ -56,7 +56,7 @@ sub_0206A388: ; 0x0206A388
str r0, [r4]
str r0, [r4, #4]
ldr r0, [sp, #4]
bl Fsys_GetBgConfigPtr
bl FieldSys_GetBgConfigPtr
str r0, [r4, #0xc]
mov r0, #0
strh r0, [r4, #0x18]

View File

@ -1054,7 +1054,7 @@ _0206DCC0: .word 0x00004021
thumb_func_start Fsys_InitMystriStageGymmick
Fsys_InitMystriStageGymmick: ; 0x0206DCC4
push {r4, lr}
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_GetGymmickPtr
add r4, r0, #0
mov r1, #9

View File

@ -275,7 +275,7 @@ sub_02074F9C: ; 0x02074F9C
bl AllocFromHeap
add r6, r0, #0
ldr r0, [sp]
bl ov12_0223A940
bl BattleSys_GetSendBufferPtr
add r5, r0, #0
ldr r0, [sp]
bl ov12_0223A960
@ -342,7 +342,7 @@ sub_02075028: ; 0x02075028
add r0, r3, #0
add r5, r1, #0
add r6, r2, #0
bl ov12_0223A948
bl BattleSys_GetRecvBufferPtr
add r7, r0, #0
ldr r0, [sp]
bl ov12_0223A984
@ -929,7 +929,7 @@ sub_02075434: ; 0x02075434
add r5, r1, #0
str r0, [sp]
ldr r0, [r5]
bl ov12_0223A940
bl BattleSys_GetSendBufferPtr
add r6, r0, #0
ldr r0, [r5]
bl ov12_0223A954
@ -998,7 +998,7 @@ sub_020754C0: ; 0x020754C0
add r5, r1, #0
str r0, [sp]
ldr r0, [r5]
bl ov12_0223A948
bl BattleSys_GetRecvBufferPtr
add r6, r0, #0
ldr r0, [r5]
bl ov12_0223A978

View File

@ -486,7 +486,7 @@ sub_02078B9C: ; 0x02078B9C
str r0, [r2, #8]
add r0, r5, #0
str r2, [r6, #0x10]
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
pop {r4, r5, r6, pc}
.balign 4, 0
_02078BD0: .word _0210125C
@ -560,7 +560,7 @@ sub_02078C18: ; 0x02078C18
ldr r1, _02078C5C ; =_02101260
add r0, r5, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0
@ -602,7 +602,7 @@ sub_02078C74: ; 0x02078C74
ldr r1, _02078CB0 ; =_02101270
add r0, r5, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0
@ -648,7 +648,7 @@ sub_02078CC8: ; 0x02078CC8
ldr r1, _02078D0C ; =_021012A0
add r0, r5, #0
add r2, r4, #0
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0

View File

@ -61,7 +61,7 @@ _0209112E:
bl TaskManager_GetSys
add r6, r0, #0
ldr r5, [r4, #0xc]
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_PlayerData_GetProfileAddr
add r7, r0, #0
ldr r0, [r6, #0x20]
@ -89,7 +89,7 @@ _0209112E:
add r1, r5, #0
bl sub_02093134
add r0, r6, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
ldr r1, [r4, #0xc]
bl UpdatePokedexWithReceivedSpecies
ldr r0, [r4, #4]
@ -112,7 +112,7 @@ _0209119A:
bl GetMonData
add r7, r0, #0
add r0, r6, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
bl Sav2_PlayerData_GetOptionsAddr
str r0, [sp]
mov r0, #0

View File

@ -79,7 +79,7 @@ _02095E72:
ldr r0, [r4, #4]
str r1, [r0, #4]
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
ldr r1, [r4, #4]
str r0, [r1]
ldrh r1, [r4, #0xc]

View File

@ -49,7 +49,7 @@ sub_020968B0: ; 0x020968B0
ldr r1, _0209690C ; =_02108584
add r0, r5, #0
str r5, [r4, #0x24]
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
add r0, r4, #0
pop {r4, r5, r6, pc}
nop

View File

@ -126,7 +126,7 @@ sub_020970E4: ; 0x020970E4
ldr r0, [r4, #0x28]
ldr r1, _02097104 ; =_02108EA0
ldr r2, [r4, #0x24]
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
mov r0, #0
pop {r4, pc}
.balign 4, 0
@ -205,7 +205,7 @@ _0209718C:
str r4, [r0, #4]
ldr r0, [r5, #0x28]
ldr r2, [r5, #0x24]
bl Fsys_LaunchApplication
bl FieldSys_LaunchApplication
ldr r0, [r5, #0x24]
mov r1, #3
str r1, [r0]

View File

@ -25,7 +25,7 @@ sub_02097D3C: ; 0x02097D3C
bl AllocFromHeapAtEnd
str r0, [r4, #4]
add r0, r5, #0
bl Fsys_GetSaveDataPtr
bl FieldSys_GetSaveDataPtr
ldr r1, [r4, #4]
add r2, r4, #0
str r0, [r1, #4]

View File

@ -31,7 +31,7 @@ scr_seq_D03R0103_000:
check_battle_won VAR_SPECIAL_RESULT
compare VAR_SPECIAL_RESULT, 0
goto_if_eq _0077
scrcmd_683 VAR_TEMP_x4002
get_static_encounter_outcome VAR_TEMP_x4002
compare VAR_TEMP_x4002, 3
goto_if_eq _0073
compare VAR_TEMP_x4002, 4

View File

@ -31,7 +31,7 @@ scr_seq_D11R0105_000:
check_battle_won VAR_SPECIAL_RESULT
compare VAR_SPECIAL_RESULT, 0
goto_if_eq _0077
scrcmd_683 VAR_TEMP_x4002
get_static_encounter_outcome VAR_TEMP_x4002
compare VAR_TEMP_x4002, 3
goto_if_eq _0073
compare VAR_TEMP_x4002, 4

View File

@ -72,7 +72,7 @@ _0103:
setflag FLAG_ENGAGING_STATIC_POKEMON
wild_battle VAR_TEMP_x400A, VAR_SPECIAL_x8004, 0
clearflag FLAG_ENGAGING_STATIC_POKEMON
scrcmd_683 VAR_TEMP_x4005
get_static_encounter_outcome VAR_TEMP_x4005
compare VAR_TEMP_x4005, 2
goto_if_eq _0167
compare VAR_TEMP_x4005, 3

View File

@ -235,7 +235,7 @@ scr_seq_D18R0102_001:
check_battle_won VAR_SPECIAL_RESULT
compare VAR_SPECIAL_RESULT, 0
goto_if_eq _035C
scrcmd_683 VAR_TEMP_x4002
get_static_encounter_outcome VAR_TEMP_x4002
compare VAR_TEMP_x4002, 3
goto_if_eq _0358
compare VAR_TEMP_x4002, 4

View File

@ -84,7 +84,7 @@ _013A:
setflag FLAG_ENGAGING_STATIC_POKEMON
wild_battle VAR_TEMP_x400A, VAR_SPECIAL_x8004, 0
clearflag FLAG_ENGAGING_STATIC_POKEMON
scrcmd_683 VAR_TEMP_x4005
get_static_encounter_outcome VAR_TEMP_x4005
compare VAR_TEMP_x4005, 2
goto_if_eq _019E
compare VAR_TEMP_x4005, 3

View File

@ -31,7 +31,7 @@ scr_seq_D41R0105_000:
check_battle_won VAR_SPECIAL_RESULT
compare VAR_SPECIAL_RESULT, 0
goto_if_eq _0077
scrcmd_683 VAR_TEMP_x4002
get_static_encounter_outcome VAR_TEMP_x4002
compare VAR_TEMP_x4002, 3
goto_if_eq _0073
compare VAR_TEMP_x4002, 4

View File

@ -65,7 +65,7 @@ scr_seq_D52R0101_000:
check_battle_won VAR_SPECIAL_RESULT
compare VAR_SPECIAL_RESULT, 0
goto_if_eq _019D
scrcmd_683 VAR_TEMP_x4002
get_static_encounter_outcome VAR_TEMP_x4002
compare VAR_TEMP_x4002, 3
goto_if_eq _00EC
compare VAR_TEMP_x4002, 4

View File

@ -65,7 +65,7 @@ scr_seq_D52R0102_000:
check_battle_won VAR_SPECIAL_RESULT
compare VAR_SPECIAL_RESULT, 0
goto_if_eq _019D
scrcmd_683 VAR_TEMP_x4002
get_static_encounter_outcome VAR_TEMP_x4002
compare VAR_TEMP_x4002, 3
goto_if_eq _00EC
compare VAR_TEMP_x4002, 4

View File

@ -82,7 +82,7 @@ scr_seq_D52R0103_000:
check_battle_won VAR_SPECIAL_RESULT
compare VAR_SPECIAL_RESULT, 0
goto_if_eq _0142
scrcmd_683 VAR_TEMP_x4002
get_static_encounter_outcome VAR_TEMP_x4002
compare VAR_TEMP_x4002, 3
goto_if_eq _0123
compare VAR_TEMP_x4002, 4

View File

@ -181,7 +181,7 @@ scr_seq_R10_003:
check_battle_won VAR_SPECIAL_RESULT
compare VAR_SPECIAL_RESULT, 0
goto_if_eq _02B3
scrcmd_683 VAR_TEMP_x4002
get_static_encounter_outcome VAR_TEMP_x4002
compare VAR_TEMP_x4002, 3
goto_if_eq _02AF
compare VAR_TEMP_x4002, 4

View File

@ -51,7 +51,7 @@ _006A:
check_battle_won VAR_SPECIAL_RESULT
compare VAR_SPECIAL_RESULT, 0
goto_if_eq _00B4
scrcmd_683 VAR_TEMP_x4005
get_static_encounter_outcome VAR_TEMP_x4005
compare VAR_TEMP_x4005, 4
call_if_eq _00BA
setflag FLAG_UNK_998

View File

@ -194,7 +194,7 @@ _0268:
check_battle_won VAR_SPECIAL_RESULT
compare VAR_SPECIAL_RESULT, 0
goto_if_eq _02AE
scrcmd_683 VAR_TEMP_x4005
get_static_encounter_outcome VAR_TEMP_x4005
compare VAR_TEMP_x4005, 4
call_if_eq _02B4
setflag FLAG_SNORLAX_MEET

View File

@ -537,7 +537,7 @@ scr_seq_R25_007:
check_battle_won VAR_SPECIAL_RESULT
compare VAR_SPECIAL_RESULT, 0
goto_if_eq _07AA
scrcmd_683 VAR_TEMP_x4002
get_static_encounter_outcome VAR_TEMP_x4002
compare VAR_TEMP_x4002, 3
goto_if_eq _07A6
compare VAR_TEMP_x4002, 4

View File

@ -101,7 +101,7 @@ _012C:
check_battle_won VAR_SPECIAL_RESULT
compare VAR_SPECIAL_RESULT, 0
goto_if_eq _0255
scrcmd_683 VAR_TEMP_x4001
get_static_encounter_outcome VAR_TEMP_x4001
compare VAR_TEMP_x4001, 3
goto_if_eq _0251
compare VAR_TEMP_x4001, 4
@ -213,7 +213,7 @@ _02E2:
check_battle_won VAR_SPECIAL_RESULT
compare VAR_SPECIAL_RESULT, 0
goto_if_eq _0255
scrcmd_683 VAR_TEMP_x4001
get_static_encounter_outcome VAR_TEMP_x4001
compare VAR_TEMP_x4001, 4
call_if_eq _023F
scrcmd_221 VAR_TEMP_x4000, 0

View File

@ -382,7 +382,7 @@ _04D7:
setflag FLAG_ENGAGING_STATIC_POKEMON
wild_battle VAR_TEMP_x400A, 40, 0
clearflag FLAG_ENGAGING_STATIC_POKEMON
scrcmd_683 VAR_TEMP_x4000
get_static_encounter_outcome VAR_TEMP_x4000
compare VAR_TEMP_x4000, 2
goto_if_eq _057B
compare VAR_TEMP_x4000, 3

View File

@ -288,7 +288,7 @@ scr_seq_T29_001:
check_battle_won VAR_SPECIAL_RESULT
compare VAR_SPECIAL_RESULT, 0
goto_if_eq _0456
scrcmd_683 VAR_TEMP_x4002
get_static_encounter_outcome VAR_TEMP_x4002
compare VAR_TEMP_x4002, 3
goto_if_eq _0452
compare VAR_TEMP_x4002, 4

38859
global.inc

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,240 @@
enum TILE_BEHAVIOR {
TILE_BEHAVIOR_0,
TILE_BEHAVIOR_1,
TILE_BEHAVIOR_2,
TILE_BEHAVIOR_3,
TILE_BEHAVIOR_4,
TILE_BEHAVIOR_5,
TILE_BEHAVIOR_HEADBUTT,
TILE_BEHAVIOR_7,
TILE_BEHAVIOR_8,
TILE_BEHAVIOR_9,
TILE_BEHAVIOR_10,
TILE_BEHAVIOR_11,
TILE_BEHAVIOR_12,
TILE_BEHAVIOR_13,
TILE_BEHAVIOR_14,
TILE_BEHAVIOR_15,
TILE_BEHAVIOR_16,
TILE_BEHAVIOR_WHIRLPOOL,
TILE_BEHAVIOR_18,
TILE_BEHAVIOR_WATERFALL,
TILE_BEHAVIOR_20,
TILE_BEHAVIOR_21,
TILE_BEHAVIOR_22,
TILE_BEHAVIOR_23,
TILE_BEHAVIOR_24,
TILE_BEHAVIOR_25,
TILE_BEHAVIOR_26,
TILE_BEHAVIOR_27,
TILE_BEHAVIOR_28,
TILE_BEHAVIOR_29,
TILE_BEHAVIOR_30,
TILE_BEHAVIOR_31,
TILE_BEHAVIOR_32,
TILE_BEHAVIOR_33,
TILE_BEHAVIOR_34,
TILE_BEHAVIOR_35,
TILE_BEHAVIOR_36,
TILE_BEHAVIOR_37,
TILE_BEHAVIOR_38,
TILE_BEHAVIOR_39,
TILE_BEHAVIOR_40,
TILE_BEHAVIOR_41,
TILE_BEHAVIOR_42,
TILE_BEHAVIOR_43,
TILE_BEHAVIOR_44,
TILE_BEHAVIOR_45,
TILE_BEHAVIOR_46,
TILE_BEHAVIOR_47,
TILE_BEHAVIOR_48,
TILE_BEHAVIOR_49,
TILE_BEHAVIOR_50,
TILE_BEHAVIOR_51,
TILE_BEHAVIOR_52,
TILE_BEHAVIOR_53,
TILE_BEHAVIOR_54,
TILE_BEHAVIOR_55,
TILE_BEHAVIOR_56,
TILE_BEHAVIOR_57,
TILE_BEHAVIOR_58,
TILE_BEHAVIOR_59,
TILE_BEHAVIOR_60,
TILE_BEHAVIOR_61,
TILE_BEHAVIOR_62,
TILE_BEHAVIOR_63,
TILE_BEHAVIOR_64,
TILE_BEHAVIOR_65,
TILE_BEHAVIOR_66,
TILE_BEHAVIOR_67,
TILE_BEHAVIOR_68,
TILE_BEHAVIOR_69,
TILE_BEHAVIOR_70,
TILE_BEHAVIOR_71,
TILE_BEHAVIOR_72,
TILE_BEHAVIOR_73,
TILE_BEHAVIOR_74,
TILE_BEHAVIOR_75,
TILE_BEHAVIOR_76,
TILE_BEHAVIOR_77,
TILE_BEHAVIOR_78,
TILE_BEHAVIOR_79,
TILE_BEHAVIOR_80,
TILE_BEHAVIOR_81,
TILE_BEHAVIOR_82,
TILE_BEHAVIOR_83,
TILE_BEHAVIOR_84,
TILE_BEHAVIOR_85,
TILE_BEHAVIOR_86,
TILE_BEHAVIOR_87,
TILE_BEHAVIOR_88,
TILE_BEHAVIOR_89,
TILE_BEHAVIOR_90,
TILE_BEHAVIOR_91,
TILE_BEHAVIOR_92,
TILE_BEHAVIOR_93,
TILE_BEHAVIOR_94,
TILE_BEHAVIOR_95,
TILE_BEHAVIOR_96,
TILE_BEHAVIOR_97,
TILE_BEHAVIOR_98,
TILE_BEHAVIOR_99,
TILE_BEHAVIOR_100,
TILE_BEHAVIOR_101,
TILE_BEHAVIOR_102,
TILE_BEHAVIOR_103,
TILE_BEHAVIOR_104,
TILE_BEHAVIOR_105,
TILE_BEHAVIOR_106,
TILE_BEHAVIOR_107,
TILE_BEHAVIOR_108,
TILE_BEHAVIOR_109,
TILE_BEHAVIOR_110,
TILE_BEHAVIOR_111,
TILE_BEHAVIOR_112,
TILE_BEHAVIOR_113,
TILE_BEHAVIOR_114,
TILE_BEHAVIOR_115,
TILE_BEHAVIOR_116,
TILE_BEHAVIOR_117,
TILE_BEHAVIOR_118,
TILE_BEHAVIOR_119,
TILE_BEHAVIOR_120,
TILE_BEHAVIOR_121,
TILE_BEHAVIOR_122,
TILE_BEHAVIOR_123,
TILE_BEHAVIOR_124,
TILE_BEHAVIOR_125,
TILE_BEHAVIOR_126,
TILE_BEHAVIOR_127,
TILE_BEHAVIOR_128,
TILE_BEHAVIOR_129,
TILE_BEHAVIOR_130,
TILE_BEHAVIOR_131,
TILE_BEHAVIOR_132,
TILE_BEHAVIOR_133,
TILE_BEHAVIOR_134,
TILE_BEHAVIOR_135,
TILE_BEHAVIOR_136,
TILE_BEHAVIOR_137,
TILE_BEHAVIOR_138,
TILE_BEHAVIOR_139,
TILE_BEHAVIOR_140,
TILE_BEHAVIOR_141,
TILE_BEHAVIOR_142,
TILE_BEHAVIOR_143,
TILE_BEHAVIOR_144,
TILE_BEHAVIOR_145,
TILE_BEHAVIOR_146,
TILE_BEHAVIOR_147,
TILE_BEHAVIOR_148,
TILE_BEHAVIOR_149,
TILE_BEHAVIOR_150,
TILE_BEHAVIOR_151,
TILE_BEHAVIOR_152,
TILE_BEHAVIOR_153,
TILE_BEHAVIOR_154,
TILE_BEHAVIOR_155,
TILE_BEHAVIOR_156,
TILE_BEHAVIOR_157,
TILE_BEHAVIOR_158,
TILE_BEHAVIOR_159,
TILE_BEHAVIOR_160,
TILE_BEHAVIOR_161,
TILE_BEHAVIOR_162,
TILE_BEHAVIOR_163,
TILE_BEHAVIOR_164,
TILE_BEHAVIOR_165,
TILE_BEHAVIOR_166,
TILE_BEHAVIOR_167,
TILE_BEHAVIOR_168,
TILE_BEHAVIOR_169,
TILE_BEHAVIOR_170,
TILE_BEHAVIOR_171,
TILE_BEHAVIOR_172,
TILE_BEHAVIOR_173,
TILE_BEHAVIOR_174,
TILE_BEHAVIOR_175,
TILE_BEHAVIOR_176,
TILE_BEHAVIOR_177,
TILE_BEHAVIOR_178,
TILE_BEHAVIOR_179,
TILE_BEHAVIOR_180,
TILE_BEHAVIOR_181,
TILE_BEHAVIOR_182,
TILE_BEHAVIOR_183,
TILE_BEHAVIOR_184,
TILE_BEHAVIOR_185,
TILE_BEHAVIOR_186,
TILE_BEHAVIOR_187,
TILE_BEHAVIOR_188,
TILE_BEHAVIOR_189,
TILE_BEHAVIOR_190,
TILE_BEHAVIOR_191,
TILE_BEHAVIOR_192,
TILE_BEHAVIOR_193,
TILE_BEHAVIOR_194,
TILE_BEHAVIOR_195,
TILE_BEHAVIOR_196,
TILE_BEHAVIOR_197,
TILE_BEHAVIOR_198,
TILE_BEHAVIOR_199,
TILE_BEHAVIOR_200,
TILE_BEHAVIOR_201,
TILE_BEHAVIOR_202,
TILE_BEHAVIOR_203,
TILE_BEHAVIOR_204,
TILE_BEHAVIOR_205,
TILE_BEHAVIOR_206,
TILE_BEHAVIOR_207,
TILE_BEHAVIOR_208,
TILE_BEHAVIOR_209,
TILE_BEHAVIOR_210,
TILE_BEHAVIOR_211,
TILE_BEHAVIOR_212,
TILE_BEHAVIOR_213,
TILE_BEHAVIOR_214,
TILE_BEHAVIOR_215,
TILE_BEHAVIOR_216,
TILE_BEHAVIOR_217,
TILE_BEHAVIOR_218,
TILE_BEHAVIOR_219,
TILE_BEHAVIOR_220,
TILE_BEHAVIOR_221,
TILE_BEHAVIOR_222,
TILE_BEHAVIOR_223,
TILE_BEHAVIOR_224,
TILE_BEHAVIOR_225,
TILE_BEHAVIOR_226,
TILE_BEHAVIOR_227,
TILE_BEHAVIOR_228,
TILE_BEHAVIOR_229,
TILE_BEHAVIOR_230,
TILE_BEHAVIOR_231,
TILE_BEHAVIOR_232,
TILE_BEHAVIOR_233,
TILE_BEHAVIOR_234,
TILE_BEHAVIOR_235,
TILE_BEHAVIOR_236,
TILE_BEHAVIOR_NONE = 255
};

206
include/field_system.h Normal file
View File

@ -0,0 +1,206 @@
#ifndef POKEHEARTGOLD_UNK_0203DE74_H
#define POKEHEARTGOLD_UNK_0203DE74_H
#include "map_matrix.h"
#include "overlay_manager.h"
#include "save.h"
typedef struct FieldSystem FieldSystem;
typedef struct TaskManager TaskManager;
typedef struct FsysUnkSub2C FsysUnkSub2C;
typedef struct FollowMon {
LocalMapObject *mapObject;
u32 unk4;
u32 unk8;
u32 unkC;
u32 species;
u8 gender;
u8 unk15;
u8 active;
u8 shiny;
u16 forme;
u16 dummy;
u32 unk1C;
} FollowMon;
typedef struct GearPhoneRingManager {
u8 unk_var0_0:1;
u8 unk_var0_1:1;
u8 unk_var0_2:1;
u8 unk_var0_3:1;
u8 unk_var0_4:4;
u8 unk_var1;
u8 unk_var2;
u8 unk_var3;
u8 unk_var4;
u8 unk_arr5[2];
u8 unk_var7;
s32 unk_var8;
s32 unk_varC;
u16 unk_var10;
u16 unk_var12;
s64 unk_var14; //Seconds? see sub_02092F30
PhoneBookEntry entry; //0x1c
SavePokegear *pokegearData; //0x30
MomsSavings *savingsData;//0x34
SAVEDATA *saveData; //0x38
FieldSystem *sys; //0x3c
struct PokegearRingingTask {
SysTask *task;
u8 counter;
} gearRing;
} GearPhoneRingManager; //size: 0x48
typedef struct Location {
int mapId;
int warpId;
int x;
int y;
int direction;
} Location;
struct FieldSystemUnk108 {
u32 personality;
u16 species;
u16 isRegistered;
POKEMON *pokemon;
};
struct FieldSystemUnkSub0 {
OVY_MANAGER *unk0;
OVY_MANAGER *unk4;
BOOL unk8;
BOOL unkC;
};
typedef struct FieldEnvSubUnk18 {
int state;
u32 direction;
} FieldEnvSubUnk18;
struct FieldSystemUnkSub68 {
WINDOW unk0;
u16 unk10;
u8 unk12;
u8 unk13_0:7;
u8 unk13_7:1;
};
typedef struct FsysUnkSub4 {
u32 unk0;
u32 unk4;
u32 unk8;
void *unk_0C; // weather related?
u8 unk10[0x4];
u32 unk14;
u32 unk18;
u32 unk1c;
} FsysUnkSub4;
struct FieldSystem {
struct FieldSystemUnkSub0 *unk0;
FsysUnkSub4 *unk4;
BGCONFIG *bgConfig;
SAVEDATA *savedata;
TaskManager *taskman;
MAP_EVENTS *mapEvents;
FieldEnvSubUnk18 *unk18;
int unk1C;
Location *location;
GF_Camera *camera;
void *unk28;
FsysUnkSub2C *unk2C;
MAPMATRIX *mapMatrix;
u8 filler34[0x8];
MapObjectMan *mapObjectMan;
FIELD_PLAYER_AVATAR *playerAvatar;
void *unk_44;
u8 filler48[0xC];
void *unk54;
u8 filler_58[0x8];
u32 unk60;
int unk64;
struct FieldSystemUnkSub68 *unk68;
u32 unk6C;
int unk70;
const struct UnkStruct_020FC5CC *unk74;
u16 unk78;
u16 unk7A;
u16 unk7C;
u16 unk7E;
struct UnkStruct_02059E1C *unk80;
struct UnkStruct_0205AC88 *unk84;
u8 filler_88[0xC];
void *unk94;
u8 filler_98[0x4];
void *unk9C;
void *unkA0;
u8 filler_A4[0x4];
u32 *unkA8;
u32 unkAC;
void *unkB0;
s64 unkB4;
u8 unkBC[8];
int unkC4;
u8 filler_C8[0xA];
u8 unkD2_0:6;
u8 unkD2_6:1;
u8 unkD2_7:1;
u8 filler_D3[0x11];
FollowMon followMon; // A4
u8 unk104[4];
struct FieldSystemUnk108 *unk108;
u32 unk_10C;
u8 unk_110;
u8 unk_111[3];
GearPhoneRingManager *unk114;
BUGCONTEST *bugContest;
u8 unk11C[0x8];
u32 judgeStatPosition;
}; // size: 0x128
typedef struct Unk_0203E15C {
u8 unk0[6];
u16 unk6;
u16 unk8;
u16 unkA;
} Unk_0203E15C;
BOOL Field_Continue_AppInit(OVY_MANAGER *man, int *unused);
BOOL Field_NewGame_AppInit(OVY_MANAGER *man, int *unused);
BOOL Field_AppExec(OVY_MANAGER *man, int *unused);
BOOL Field_AppExit(OVY_MANAGER *man, int *unused);
void sub_0203DEF0(FieldSystem *fsys);
void sub_0203DF34(FieldSystem *fsys);
u8 sub_0203DF3C(FieldSystem *fsys);
void sub_0203DF64(FieldSystem *fsys, int a1);
BOOL sub_0203DF7C(FieldSystem *fsys);
BOOL sub_0203DF8C(FieldSystem *fsys);
BOOL sub_0203DFA4(FieldSystem *fsys);
void FieldSys_LaunchApplication(FieldSystem *fsys, const OVY_MGR_TEMPLATE *template, void *parentWork);
FieldSystem *FieldSys_New(OVY_MANAGER *man);
void FieldSys_Delete(OVY_MANAGER *man);
BOOL sub_0203E13C(FieldSystem *fsys);
void sub_0203E15C(FieldSystem *fsys);
void sub_0203E2F4();
void sub_0203E30C();
int sub_0203E324();
void sub_0203E33C(FieldSystem *fsys, int a1);
BGCONFIG *FieldSys_GetBgConfigPtr(FieldSystem *fsys);
SAVEDATA *FieldSys_GetSaveDataPtr(FieldSystem *fsys);
void sub_0203E348();
void sub_0203E354();
extern const OVY_MGR_TEMPLATE gApplication_NewGameFieldsys;
extern const OVY_MGR_TEMPLATE gApplication_ContinueFieldsys;
static inline void InitLocation(Location *location, int mapId, int warpId, int x, int y, int direction) {
location->mapId = mapId;
location->warpId = warpId;
location->x = x;
location->y = y;
location->direction = direction;
}
#endif //POKEHEARTGOLD_UNK_0203DE74_H

View File

@ -0,0 +1,81 @@
#ifndef POKEHEARTGOLD_UNK_METATILE_BEHAVIOR_H
#define POKEHEARTGOLD_UNK_METATILE_BEHAVIOR_H
BOOL sub_0205B6E8(u8 tile);
BOOL sub_0205B6F4(u8 tile);
BOOL sub_0205B700(u8 tile);
BOOL sub_0205B70C(u8 tile);
BOOL sub_0205B718(u8 tile);
BOOL sub_0205B724(u8 tile);
BOOL sub_0205B730(u8 tile);
BOOL sub_0205B73C(u8 tile);
BOOL sub_0205B748(u8 tile);
BOOL sub_0205B754(u8 tile);
BOOL sub_0205B760(u8 tile);
BOOL sub_0205B76C(u8 tile);
BOOL sub_0205B778(u8 tile);
BOOL sub_0205B78C(u8 tile);
BOOL sub_0205B798(u8 tile);
BOOL sub_0205B7A4(u8 tile);
BOOL sub_0205B7B0(u8 tile);
BOOL sub_0205B7BC(u8 tile);
BOOL sub_0205B7C8(u8 tile);
BOOL sub_0205B7D4(u8 tile);
BOOL sub_0205B7E0(u8 tile);
BOOL sub_0205B7EC(u8 tile);
BOOL sub_0205B7F8(u8 tile);
BOOL sub_0205B804(u8 tile);
BOOL sub_0205B810(u8 tile);
BOOL sub_0205B81C(u8 tile);
BOOL sub_0205B828(u8 tile);
BOOL sub_0205B834(u8 tile);
BOOL sub_0205B840(u8 tile);
BOOL sub_0205B84C(u8 tile);
BOOL sub_0205B858(u8 tile);
BOOL sub_0205B864(u8 tile);
BOOL sub_0205B870(u8 tile);
BOOL sub_0205B87C(u8 tile);
BOOL sub_0205B888(u8 tile);
BOOL sub_0205B894(u8 tile);
BOOL sub_0205B8A0(u8 tile);
BOOL sub_0205B8AC(u8 tile);
BOOL sub_0205B8B8(u8 tile);
BOOL sub_0205B8C4(u8 tile);
BOOL sub_0205B8D0(u8 tile);
BOOL MetatileBehavior_IsWaterfall(u8 tile);
BOOL MetatileBehavior_IsWhirlpool(u8 tile);
BOOL sub_0205B8F4(u8 tile);
BOOL sub_0205B918(u8 tile);
BOOL sub_0205B93C(u8 tile);
BOOL sub_0205B960(u8 tile);
BOOL sub_0205B984(u8 tile);
BOOL sub_0205B994(u8 tile);
BOOL sub_0205B9AC(u8 tile);
BOOL sub_0205B9B8(u8 tile);
BOOL sub_0205B9DC(u8 tile);
BOOL sub_0205B9E8(u8 tile);
BOOL sub_0205B9F4(u8 tile);
BOOL sub_0205BA00(u8 tile);
BOOL sub_0205BA0C(u8 tile);
BOOL sub_0205BA18(u8 tile);
BOOL sub_0205BA24(u8 tile);
BOOL sub_0205BA30(u8 tile);
BOOL sub_0205BA44(u8 tile);
BOOL sub_0205BA54(u8 tile);
BOOL MetatileBehavior_IsNone(u8 tile);
u8 sub_0205BA6C(void);
BOOL sub_0205BA70(u8 tile);
BOOL sub_0205BA94(u8 tile);
BOOL sub_0205BAA0(u8 tile);
BOOL sub_0205BAAC(u8 tile);
BOOL sub_0205BAB8(u8 tile);
BOOL sub_0205BAC4(u8 tile);
BOOL sub_0205BAD0(u8 tile);
BOOL sub_0205BAE4(u8 tile);
BOOL sub_0205BAEC(u8 tile);
BOOL MetatileBehavior_IsHeadbutt(u8 tile);
BOOL sub_0205BB04(u8 tile);
#endif //POKEHEARTGOLD_UNK_0205B6E8_H

View File

@ -0,0 +1,12 @@
#ifndef POKEHEARTGOLD_OV_01_021E6880_H
#define POKEHEARTGOLD_OV_01_021E6880_H
#include "field_system.h"
void ov01_021E6928(Unk_0203E15C *a0, FieldSystem *fsys, u16 newKeys, u16 heldKeys);
int ov01_021E6AF4(Unk_0203E15C *a0, FieldSystem *fsys);
BOOL ov01_021E6E00(Unk_0203E15C *a0, FieldSystem *fsys);
BOOL ov01_021E6EFC(Unk_0203E15C *a0, FieldSystem *fsys);
BOOL ov01_021E6FD4(Unk_0203E15C *a0, FieldSystem *fsys);
#endif

View File

@ -0,0 +1,6 @@
#ifndef POKEHEARTGOLD_OV_01_021EF7A0_H
#define POKEHEARTGOLD_OV_01_021EF7A0_H
void ov01_021EFACC(u32 a0);
#endif

View File

@ -5,5 +5,6 @@
void ov01_PlayerAvatar_OrrTransitionFlags(FIELD_PLAYER_AVATAR *playerAvatar, int flags);
void ov01_PlayerAvatar_ApplyTransitionFlags(FIELD_PLAYER_AVATAR *playerAvatar);
void ov01_021F2F24(FIELD_PLAYER_AVATAR *playerAvatar);
#endif //POKEHEARTGOLD_OVERLAY_01_021F1AFC_H

View File

@ -0,0 +1,8 @@
#ifndef POKEHEARTGOLD_OV_01_021F3D38_H
#define POKEHEARTGOLD_OV_01_021F3D38_H
#include "script.h"
void ov01_021F3DFC(FieldSystem *fsys, int a1);
#endif

View File

@ -0,0 +1,8 @@
#ifndef POKEHEARTGOLD_OV_01_021F6830_H
#define POKEHEARTGOLD_OV_01_021F6830_H
#include "script.h"
void ov01_021F6830(FieldSystem *fsys, int a1, int a2);
#endif

View File

@ -4,6 +4,6 @@
#include "field_player_avatar.h"
BOOL ov01_021FA2D4(LocalMapObject *obj);
void ov01_021FA930(LocalMapObject *obj, u32 a1);
void ov01_021FA930(LocalMapObject *obj, u32 sprite);
#endif //POKEHEARTGOLD_OVERLAY_01_021F944C_H

6
include/overlay_35.h Normal file
View File

@ -0,0 +1,6 @@
#ifndef POKEHEARTGOLD_OVERLAY_35_H
#define POKEHEARTGOLD_OVERLAY_35_H
int ov35_02259DB8();
#endif //POKEHEARTGOLD_OVERLAY_35_H

View File

@ -5,9 +5,6 @@
#include "fieldmap.h"
#include "script.h"
// unk_0203DE74.s
extern SAVEDATA* Fsys_GetSaveDataPtr(FieldSystem*);
static inline u16 ScriptGetVar(SCRIPTCONTEXT* ctx) {
return VarGet(ctx->fsys, ScriptReadHalfword(ctx));
}
@ -719,7 +716,7 @@ BOOL ScrCmd_679(SCRIPTCONTEXT* ctx);
BOOL ScrCmd_AddSpecialGameStat(SCRIPTCONTEXT* ctx);
BOOL ScrCmd_681(SCRIPTCONTEXT* ctx);
BOOL ScrCmd_682(SCRIPTCONTEXT* ctx);
BOOL ScrCmd_683(SCRIPTCONTEXT* ctx);
BOOL ScrCmd_GetStaticEncounterOutcomeFlag(SCRIPTCONTEXT* ctx);
BOOL ScrCmd_684(SCRIPTCONTEXT* ctx);
BOOL ScrCmd_GetPlayerXYZ(SCRIPTCONTEXT* ctx);
BOOL ScrCmd_686(SCRIPTCONTEXT* ctx);

View File

@ -1,9 +1,7 @@
#ifndef POKEHEARTGOLD_SCRIPT_H
#define POKEHEARTGOLD_SCRIPT_H
#include "save.h"
#include "map_events_internal.h"
#include "map_matrix.h"
#include "msgdata.h"
#include "window.h"
#include "field_player_avatar.h"
@ -16,6 +14,7 @@
#include "list_menu_2.h"
#include "unk_0200E398.h"
#include "unk_02022D74.h"
#include "field_system.h"
#define SCRIPT_MODE_STOPPED 0
#define SCRIPT_MODE_BYTECODE 1
@ -27,7 +26,6 @@
#define ScriptReadByte(ctx) *(ctx->script_ptr++)
typedef struct FieldSystem FieldSystem;
typedef struct SCRIPTCONTEXT SCRIPTCONTEXT;
#define Unk80_10_C_MAGIC (222271)
@ -43,7 +41,6 @@ typedef struct EngagedTrainer {
} EngagedTrainer;
typedef struct _NPC_TRADE_WORK NPC_TRADE_WORK;
typedef struct FsysUnkSub2C FsysUnkSub2C;
typedef struct ScriptEnvironment {
u32 check;
@ -59,17 +56,17 @@ typedef struct ScriptEnvironment {
WINDOW unk_14;
struct ListMenu2 *listMenu;
int facingDirection;
LocalMapObject* lastTalked;
LocalMapObject *lastTalked;
u32 cameraFocusObj;
LocalMapObject* unk_34;
SCRIPTCONTEXT* scriptContexts[3];
MSGFMT* msgfmt;
STRING* strbuf1;
STRING* strbuf2;
LocalMapObject *unk_34;
SCRIPTCONTEXT *scriptContexts[3];
MSGFMT *msgfmt;
STRING *strbuf1;
STRING *strbuf2;
struct WaitingIconManager *unk_50;
EngagedTrainer engagedTrainers[2];
u16 specialVars[NUM_SPECIAL_VARS];
void (*scrctx_end_cb)(FieldSystem* fsys);
void (*scrctx_end_cb)(FieldSystem *fsys);
void *unk_AC;
void *genericWorkPtr;
void *unk_B4;
@ -138,78 +135,6 @@ enum ScriptEnvField {
SCRIPTENV_SPECIAL_VAR_LAST_TALKED = 55,
};
typedef struct TaskManager TaskManager;
typedef struct Location {
int mapId;
int warpId;
int x;
int y;
int direction;
} Location;
typedef struct FollowMon {
LocalMapObject *mapObject;
u32 unk4;
u32 unk8;
u32 unkC;
u32 species;
u8 gender;
u8 unk15;
u8 active;
u8 shiny;
u16 forme;
u16 dummy;
u32 unk1C;
} FollowMon;
struct FieldSystemUnk108 {
u32 personality;
u16 species;
u16 isRegistered;
POKEMON *pokemon;
};
struct FieldSystemUnkSub0 {
OVY_MANAGER *unk0;
OVY_MANAGER *unk4;
BOOL unk8;
BOOL unkC;
};
typedef struct FieldEnvSubUnk18 {
int state;
u32 direction;
} FieldEnvSubUnk18;
typedef struct GearPhoneRingManager {
u8 unk_var0_0:1;
u8 unk_var0_1:1;
u8 unk_var0_2:1;
u8 unk_var0_3:1;
u8 unk_var0_4:4;
u8 unk_var1;
u8 unk_var2;
u8 unk_var3;
u8 unk_var4;
u8 unk_arr5[2];
u8 unk_var7;
s32 unk_var8;
s32 unk_varC;
u16 unk_var10;
u16 unk_var12;
s64 unk_var14; //Seconds? see sub_02092F30
PhoneBookEntry entry; //0x1c
SavePokegear* pokegear_data; //0x30
MomsSavings* savings_data;//0x34
SAVEDATA* saveData; //0x38
FieldSystem* sys; //0x3c
struct PokegearRingingTask {
SysTask *task;
u8 counter;
} gearRing;
} GearPhoneRingManager; //size: 0x48
struct UnkStruct_020FC5CC {
u32 unk0_00:4;
u32 unk0_04:4;
@ -226,124 +151,38 @@ struct UnkStruct_020FC5CC {
struct UnkStruct_02059E1C;
struct UnkStruct_0205AC88;
struct FieldSystemUnkSub68 {
WINDOW unk0;
u16 unk10;
u8 unk12;
u8 unk13_0:7;
u8 unk13_7:1;
};
typedef struct FsysUnkSub4 {
u32 unk0;
u32 unk4;
u32 unk8;
void *unk_0C; // weather related?
u8 unk10[0x4];
u32 unk14;
u32 unk18;
u32 unk1c;
} FsysUnkSub4;
struct FieldSystem {
struct FieldSystemUnkSub0 *unk0;
FsysUnkSub4 *unk4;
BGCONFIG* bg_config;
SAVEDATA* savedata;
TaskManager* taskman;
MAP_EVENTS* map_events;
FieldEnvSubUnk18 *unk18;
int unk1C;
Location* location;
GF_Camera *camera;
void *unk28;
FsysUnkSub2C *unk2C;
MAPMATRIX* map_matrix;
u8 filler34[0x8];
MapObjectMan* mapObjectMan;
FIELD_PLAYER_AVATAR *playerAvatar;
void *unk_44;
u8 filler48[0xC];
void *unk54;
u8 filler_58[0x8];
u32 unk60;
int unk64;
struct FieldSystemUnkSub68* unk68;
u32 unk6C;
int unk70;
const struct UnkStruct_020FC5CC *unk74;
u16 unk78;
u16 unk7A;
u16 unk7C;
u16 unk7E;
struct UnkStruct_02059E1C *unk80;
struct UnkStruct_0205AC88 *unk84;
u8 filler_88[0xC];
void *unk94;
u8 filler_98[0x4];
void *unk9C;
void *unkA0;
u8 filler_A4[0x8];
u32 unkAC;
void *unkB0;
s64 unkB4;
u8 unkBC[8];
int unkC4;
u8 filler_C8[0xA];
u8 unkD2_0:6;
u8 unkD2_6:1;
u8 unkD2_7:1;
u8 filler_D3[0x11];
FollowMon followMon; // A4
u8 unk104[4];
struct FieldSystemUnk108 *unk108;
u32 unk_10C[2];
GearPhoneRingManager* unk114;
BUGCONTEST* bugContest;
u8 unk11C[0x8];
u32 judgeStatPosition;
}; // size: 0x128
typedef BOOL (*ScrCmdFunc)(SCRIPTCONTEXT* ctx);
typedef BOOL (*ScrCmdFunc)(SCRIPTCONTEXT *ctx);
struct SCRIPTCONTEXT {
u8 stack_depth;
u8 stackDepth;
u8 mode;
u8 comparison_result;
u8 comparisonResult;
u8 id;
ScrCmdFunc native_ptr;
const u8* script_ptr;
const u8* stack[20];
const ScrCmdFunc* cmd_table;
const u8 *script_ptr;
const u8 *stack[20];
const ScrCmdFunc *cmdTable;
u32 cmd_count;
u32 data[4];
TaskManager* taskman;
MSGDATA* msg_data;
u8* mapScripts;
FieldSystem* fsys;
TaskManager *taskman;
MSGDATA *msgdata;
u8 *mapScripts;
FieldSystem *fsys;
};
void InitScriptContext(SCRIPTCONTEXT* ctx, const ScrCmdFunc* cmd_table, u32 cmd_count);
BOOL SetupBytecodeScript(SCRIPTCONTEXT* ctx, const u8* ptr);
void SetupNativeScript(SCRIPTCONTEXT* ctx, ScrCmdFunc ptr);
void InitScriptContext(SCRIPTCONTEXT *ctx, const ScrCmdFunc *cmd_table, u32 cmd_count);
BOOL SetupBytecodeScript(SCRIPTCONTEXT *ctx, const u8 *ptr);
void SetupNativeScript(SCRIPTCONTEXT *ctx, ScrCmdFunc ptr);
BOOL ScrNative_WaitApplication_DestroyTaskData(SCRIPTCONTEXT *ctx);
void StopScript(SCRIPTCONTEXT* ctx);
void sub_0203FD68(SCRIPTCONTEXT* ctx, TaskManager *unk);
BOOL RunScriptCommand(SCRIPTCONTEXT* ctx);
BOOL ScriptPush(SCRIPTCONTEXT* ctx, const u8* ptr);
const u8* ScriptPop(SCRIPTCONTEXT* ctx);
void ScriptJump(SCRIPTCONTEXT* ctx, const u8* ptr);
void ScriptCall(SCRIPTCONTEXT* ctx, const u8* ptr);
void ScriptReturn(SCRIPTCONTEXT* ctx);
u16 ScriptReadHalfword(SCRIPTCONTEXT* ctx);
u32 ScriptReadWord(SCRIPTCONTEXT* ctx);
static inline void InitLocation(Location *location, int mapId, int warpId, int x, int y, int direction) {
location->mapId = mapId;
location->warpId = warpId;
location->x = x;
location->y = y;
location->direction = direction;
}
void StopScript(SCRIPTCONTEXT *ctx);
void sub_0203FD68(SCRIPTCONTEXT *ctx, TaskManager *unk);
BOOL RunScriptCommand(SCRIPTCONTEXT *ctx);
BOOL ScriptPush(SCRIPTCONTEXT *ctx, const u8 *ptr);
const u8 *ScriptPop(SCRIPTCONTEXT *ctx);
void ScriptJump(SCRIPTCONTEXT *ctx, const u8 *ptr);
void ScriptCall(SCRIPTCONTEXT *ctx, const u8 *ptr);
void ScriptReturn(SCRIPTCONTEXT *ctx);
u16 ScriptReadHalfword(SCRIPTCONTEXT *ctx);
u32 ScriptReadWord(SCRIPTCONTEXT *ctx);
#endif

View File

@ -3,6 +3,8 @@
BOOL sub_02036144(void);
BOOL sub_02037474(void);
void sub_020374E4(void);
void sub_02037504(void);
BOOL sub_0203769C(void);
void sub_020380F4(void);
void sub_02038104(void);

View File

@ -1,9 +0,0 @@
#ifndef POKEHEARTGOLD_UNK_0203DE74_H
#define POKEHEARTGOLD_UNK_0203DE74_H
#include "script.h"
void sub_0203E30C(void);
u8 sub_0203DF3C(FieldSystem *fsys);
#endif //POKEHEARTGOLD_UNK_0203DE74_H

View File

@ -9,6 +9,6 @@ void sub_0203DEF0(FieldSystem *fsys);
BOOL sub_0203DF7C(FieldSystem *fsys);
BOOL sub_0203DF8C(FieldSystem *fsys);
BOOL sub_0203DFA4(FieldSystem *fsys);
void Fsys_LaunchApplication(FieldSystem *fsys, const OVY_MGR_TEMPLATE *template, void *parentWork);
void FieldSys_LaunchApplication(FieldSystem *fsys, const OVY_MGR_TEMPLATE *template, void *parentWork);
#endif //POKEHEARTGOLD_UNK_0203DFA4_H

View File

@ -131,7 +131,6 @@ void *sub_0203E5D0(HeapID heapId, FieldSystem *fsys, u16 a2);
void *sub_0203FAB4(FieldSystem *fsys, u8 a1, u8 a2, u16 a3, HeapID heapId);
void *ScratchOffCards_Create(FieldSystem *fsys, HeapID heapId);
void sub_0203FC14(FieldSystem *fsys, u16 a1, u16 a2);
void sub_0203E33C(FieldSystem *fsys, u16 a1);
void *PhoneUI_new(FieldSystem *fsys);
void *sub_0203EEE4(FieldSystem *fsys);
void *sub_0203EF40(FieldSystem *fsys);

View File

@ -1,7 +1,11 @@
#ifndef POKEHEARTGOLD_UNK_02056D7C_H
#define POKEHEARTGOLD_UNK_02056D7C_H
#include "script.h"
void sub_02056E38(void);
void sub_020573F0(FieldSystem *fsys, int a1);
int sub_02057A0C(void);
void sub_02057F28(u16 val);
#endif //POKEHEARTGOLD_UNK_02056D7C_H

View File

@ -1,17 +0,0 @@
#ifndef POKEHEARTGOLD_UNK_0205B6E8_H
#define POKEHEARTGOLD_UNK_0205B6E8_H
BOOL sub_0205B6F4(u8 tile);
BOOL sub_0205B778(u8 tile);
BOOL sub_0205B8AC(u8 tile);
BOOL MetatileBehavior_IsWaterfall(u8 tile);
BOOL MetatileBehavior_IsWhirlpool(u8 tile);
BOOL sub_0205BA24(u8 tile);
BOOL sub_0205BA30(u8 tile);
BOOL MetatileBehavior_IsHeadbutt(u8 tile);
BOOL sub_0205B6E8(u8 tile);
BOOL sub_0205B984(u8 tile);
BOOL sub_0205B7A4(u8 tile);
BOOL sub_0205BA70(u8 tile);
#endif //POKEHEARTGOLD_UNK_0205B6E8_H

View File

@ -4,5 +4,8 @@
#include "field_player_avatar.h"
void PlayerAvatar_GetCoordsInFront(FIELD_PLAYER_AVATAR *playerAvatar, int *x, int *z);
void sub_0205CE68(FIELD_PLAYER_AVATAR *playerAvatar);
void sub_0205CB48(FIELD_PLAYER_AVATAR *playerAvatar, FsysUnkSub2C *a1, int a2, u16 a3, u16 a4, int a5);
void sub_0205CF44(FIELD_PLAYER_AVATAR *playerAvatar);
#endif //POKEHEARTGOLD_UNK_0205CB48_H

6
include/unk_02092BB8.h Normal file
View File

@ -0,0 +1,6 @@
#ifndef POKEHEARTGOLD_UNK_02092BB8_H
#define POKEHEARTGOLD_UNK_02092BB8_H
void sub_02092BD0(u32 *a0);
#endif //POKEHEARTGOLD_UNK_02092BB8_H

View File

@ -12,6 +12,9 @@ BOOL OS_IsThreadAvailable(void);
void OS_CreateThread(OSThread *thread, void (*func) (void *), void *arg, void *stack, u32 stackSize, u32 prio);
void OS_ExitThread(void);
void OS_DestroyThread(OSThread *thread);
void OS_KillThread(OSThread *thread, void *arg);
void OS_KillThreadWithPriority(OSThread *thread, void *arg, u32 prio);
void OSi_CancelThreadAlarmForSleep(OSThread *thread);
void OS_JoinThread(OSThread *thread);
BOOL OS_IsThreadTerminated(const OSThread *thread);
void OS_SleepThread(OSThreadQueue *queue);

View File

@ -8,6 +8,7 @@ BOOL OS_IsTickAvailable(void);
void OSi_CountUpTick(void);
OSTick OS_GetTick(void);
u16 OS_GetTickLo(void);
void OS_SetTick(OSTick tick);
extern vu64 OSi_TickCounter;

View File

@ -158,7 +158,7 @@ Static main
Object src/diamond_dust.o
Object asm/unk_0203BC10.o
Object asm/unk_0203DB6C.o
Object asm/unk_0203DE74.o
Object src/field_system.o
Object asm/unk_0203E348.o
Object src/script.o
Object src/fieldmap.o
@ -208,7 +208,7 @@ Static main
Object asm/unk_0205AC88.o
Object src/unk_0205B3DC.o
Object asm/text_0205B4EC.o
Object asm/unk_0205B6E8.o
Object src/metatile_behavior.o
Object asm/unk_0205BB1C.o
Object asm/unk_0205BFF0.o
Object src/field_player_avatar.o

View File

@ -1,7 +1,7 @@
#include "task.h"
#include "unk_0200FA24.h"
#include "unk_0203E348.h"
#include "unk_0203DE74.h"
#include "field_system.h"
#include "update_dex_received.h"
#include "map_header.h"
#include "pokedex.h"

View File

@ -682,7 +682,7 @@ BOOL ScrCmd_679(SCRIPTCONTEXT *ctx);
BOOL ScrCmd_AddSpecialGameStat2(SCRIPTCONTEXT *ctx);
BOOL ScrCmd_681(SCRIPTCONTEXT *ctx);
BOOL ScrCmd_682(SCRIPTCONTEXT *ctx);
BOOL ScrCmd_683(SCRIPTCONTEXT *ctx);
BOOL ScrCmd_GetStaticEncounterOutcomeFlag(SCRIPTCONTEXT *ctx);
BOOL ScrCmd_684(SCRIPTCONTEXT *ctx);
BOOL ScrCmd_GetPlayerXYZ(SCRIPTCONTEXT *ctx);
BOOL ScrCmd_686(SCRIPTCONTEXT *ctx);
@ -1537,7 +1537,7 @@ const ScrCmdFunc gScriptCmdTable[] = {
ScrCmd_AddSpecialGameStat2,
ScrCmd_681,
ScrCmd_682,
ScrCmd_683,
ScrCmd_GetStaticEncounterOutcomeFlag,
ScrCmd_684,
ScrCmd_GetPlayerXYZ,
ScrCmd_686,

View File

@ -96,7 +96,7 @@ static void _DrawScurryMessageScreen(FieldSystem *fsys, TaskManager *taskManager
AddWindow(env->bgConfig, &env->window, &_020FC51C);
}
BufferPlayersName(env->msgFmt, 0, Sav2_PlayerData_GetProfileAddr(Fsys_GetSaveDataPtr(fsys)));
BufferPlayersName(env->msgFmt, 0, Sav2_PlayerData_GetProfileAddr(FieldSys_GetSaveDataPtr(fsys)));
if (fsys->location->mapId == MAP_T20R0201) {
_PrintMessage(env, msg_0203_00004, 0, 0);
} else {

View File

@ -9,7 +9,7 @@
#include "save_flypoints.h"
#include "overlay_01.h"
#include "overlay_02.h"
#include "unk_0205B6E8.h"
#include "metatile_behavior.h"
#include "unk_0203BC10.h"
#include "map_header.h"
#include "sys_flags.h"

318
src/field_system.c Normal file
View File

@ -0,0 +1,318 @@
#include "field_warp_tasks.h"
#include "main.h"
#include "math_util.h"
#include "overlay_manager.h"
#include "poke_overlay.h"
#include "system.h"
#include "overlay_35.h"
#include "field_system.h"
#include "unk_02092BB8.h"
#include "unk_02092BE8.h"
#include "unk_02056D7C.h"
#include "unk_02035900.h"
#include "overlay_01_021F6830.h"
#include "overlay_01_021E6880.h"
#include "overlay_01_021EF7A0.h"
#include "overlay_01_021F3D38.h"
#include "overlay_01_021F1AFC.h"
#include "constants/maps.h"
FS_EXTERN_OVERLAY(OVY_60);
FS_EXTERN_OVERLAY(OVY_124);
FS_EXTERN_OVERLAY(field);
const OVY_MGR_TEMPLATE gApplication_NewGameFieldsys = {
.init = Field_NewGame_AppInit,
.exec = Field_AppExec,
.exit = Field_AppExit,
.ovy_id = FS_OVERLAY_ID_NONE
};
const OVY_MGR_TEMPLATE gApplication_ContinueFieldsys = {
.init = Field_Continue_AppInit,
.exec = Field_AppExec,
.exit = Field_AppExit,
.ovy_id = FS_OVERLAY_ID_NONE
};
static FieldSystem *sFieldSysPtr;
typedef struct UnkFsysInit {
int unk0;
int unk4;
} FsysInitWork;
static BOOL FieldSys_Main(FieldSystem *fsys);
BOOL Field_Continue_AppInit(OVY_MANAGER *man, int *unused) {
FsysInitWork *args = OverlayManager_GetArgs(man);
sFieldSysPtr = FieldSys_New(man);
if (args->unk4) {
CallFieldTask_ContinueGame_CommError(sFieldSysPtr);
} else {
CallFieldTask_ContinueGame_Normal(sFieldSysPtr);
}
args->unk4 = 0;
return TRUE;
}
BOOL Field_NewGame_AppInit(OVY_MANAGER *man, int *unused) {
sFieldSysPtr = FieldSys_New(man);
CallFieldTask_NewGame(sFieldSysPtr);
return TRUE;
}
BOOL Field_AppExec(OVY_MANAGER *man, int *unused) {
if (FieldSys_Main(OverlayManager_GetData(man))) {
return TRUE;
}
return FALSE;
}
extern OVY_MGR_TEMPLATE ov60_021EAFE0;
BOOL Field_AppExit(OVY_MANAGER *man, int *unused) {
FieldSys_Delete(man);
RegisterMainOverlay(FS_OVERLAY_ID(OVY_60), &ov60_021EAFE0);
return TRUE;
}
extern OVY_MGR_TEMPLATE ov01_02206378;
void sub_0203DEF0(FieldSystem *fsys) {
GF_ASSERT(fsys->unk0->unk4 == NULL);
GF_ASSERT(fsys->unk0->unk0 == NULL);
HandleLoadOverlay(FS_OVERLAY_ID(field), OVY_LOAD_ASYNC);
fsys->unk6C = 0;
fsys->unk0->unk8 = FALSE;
fsys->unk0->unk0 = OverlayManager_new(&ov01_02206378, fsys, 11);
}
void sub_0203DF34(FieldSystem *fsys) {
fsys->unk6C = 0;
}
u8 sub_0203DF3C(FieldSystem *fsys) {
GF_ASSERT(fsys->unk_110 == 0 || fsys->unk_110 == 1);
return fsys->unk_110;
}
void sub_0203DF64(FieldSystem *fsys, int a1) {
GF_ASSERT(a1 == 0 || a1 == 1);
fsys->unk_110 = a1;
}
BOOL sub_0203DF7C(FieldSystem *fsys) {
return (fsys->unk0->unk0 != NULL);
}
BOOL sub_0203DF8C(FieldSystem *fsys) {
return (fsys->unk0->unk0 && fsys->unk6C);
}
BOOL sub_0203DFA4(FieldSystem *fsys) {
return (fsys->unk0->unk4 != NULL);
}
void FieldSys_LaunchApplication(FieldSystem *fsys, const OVY_MGR_TEMPLATE *template, void *parentWork) {
GF_ASSERT(fsys->unk0->unk4 == NULL);
sub_0203DF34(fsys);
fsys->unk0->unk4 = OverlayManager_new(template, parentWork, 11);
}
FieldSystem *FieldSys_New(OVY_MANAGER *man) {
CreateHeap(3, 11, 0x1C000);
CreateHeap(3, 32, 0x4000);
CreateHeap(0, 89, 0x570);
FieldSystem *fsys = OverlayManager_CreateAndGetData(man, sizeof(FieldSystem), 11);
MI_CpuFill8(fsys, 0, sizeof(FieldSystem));
fsys->unk0 = AllocFromHeap(11, sizeof(struct FieldSystemUnkSub0));
fsys->unk0->unk0 = NULL;
fsys->unk0->unk4 = NULL;
fsys->unk0->unk8 = FALSE;
fsys->unk0->unkC = FALSE;
HandleLoadOverlay(FS_OVERLAY_ID(OVY_124), OVY_LOAD_ASYNC);
FieldSystem_init(man, fsys);
UnloadOverlayByID(FS_OVERLAY_ID(OVY_124));
return fsys;
}
void FieldSys_Delete(OVY_MANAGER *man) {
FieldSystem *fsys = OverlayManager_GetData(man);
MapMatrix_Free(fsys->mapMatrix);
Field_FreeMapEvents(fsys);
FreeToHeap(fsys->unk94);
sub_02092BD0(fsys->unkA8);
sub_02092DD8(fsys->unk114);
FreeToHeap(fsys->unk0);
OverlayManager_FreeData(man);
DestroyHeap(89);
DestroyHeap(11);
DestroyHeap(32);
}
static void ppOverlayManager_RunFrame_DeleteIfFinished(OVY_MANAGER **man) {
if (*man && OverlayManager_run(*man)) {
OverlayManager_delete(*man);
*man = NULL;
}
}
static BOOL FieldSys_Main(FieldSystem *fsys) {
sub_0203E15C(fsys);
if (Fsys_RunTaskFrame(fsys) == TRUE) {
if (fsys->unk4) {
ov01_021F6830(fsys, 0, 0);
}
}
if (fsys->unk0->unk0) {
ppOverlayManager_RunFrame_DeleteIfFinished(&fsys->unk0->unk0);
if (!fsys->unk0->unk0) {
UnloadOverlayByID(FS_OVERLAY_ID(field));
}
} else if (fsys->unk0->unk4) {
ppOverlayManager_RunFrame_DeleteIfFinished(&fsys->unk0->unk4);
}
if (fsys->unk0->unkC && !fsys->taskman && !fsys->unk0->unk0 && !fsys->unk0->unk4) {
return TRUE;
}
return FALSE;
}
BOOL sub_0203E13C(FieldSystem *fsys) {
if (!fsys->unk0->unk8 && fsys->unk6C && !Fsys_TaskIsRunning(fsys)) {
return TRUE;
}
return FALSE;
}
void sub_0203E15C(FieldSystem *fsys) {
Unk_0203E15C unkStruct;
BOOL flag = sub_0203E13C(fsys);
if (flag) {
sub_0205CE68(fsys->playerAvatar);
ov01_021E6928(&unkStruct, fsys, gSystem.newKeys, gSystem.heldKeys);
}
int unkVar = fsys->unk70;
if (fsys->location->mapId == MAP_D31R0201) {
unkVar = 0;
}
switch (unkVar) {
case 3:
if (flag) {
if (sub_02057A0C()) {
if (ov01_021E6E00(&unkStruct, fsys) == TRUE) {
flag = FALSE;
}
} else {
flag = FALSE;
}
}
sub_020573F0(fsys, flag);
break;
case 2:
if (flag && ov01_021E6EFC(&unkStruct, fsys) != TRUE) {
sub_0205CB48(fsys->playerAvatar, fsys->unk2C, -1, unkStruct.unk6, unkStruct.unk8, 0);
}
break;
case 4:
if (flag) {
if (ov01_021E6FD4(&unkStruct, fsys) == TRUE) {
ov01_021EFACC(fsys->unk4->unk8);
ov01_021F3DFC(fsys, 4);
ov01_021F2F24(fsys->playerAvatar);
ov01_021F6830(fsys, 0, 1);
break;
}
if (gSystem.newKeys & PAD_BUTTON_A) {
ov01_021EFACC(fsys->unk4->unk8);
}
flag = 0;
if (sub_0203E324()) {
flag = ov35_02259DB8();
}
sub_0205CB48(fsys->playerAvatar, fsys->unk2C, -1, unkStruct.unk6, unkStruct.unk8, flag);
}
break;
default:
if (flag) {
flag = ov01_021E6AF4(&unkStruct, fsys);
if (flag) {
ov01_021EFACC(fsys->unk4->unk8);
ov01_021F3DFC(fsys, 4);
sub_0205CF44(fsys->playerAvatar);
ov01_021F2F24(fsys->playerAvatar);
ov01_021F6830(fsys, 0, 1);
if (flag != 2) {
sub_02092FA8(fsys->unk114);
}
} else {
if (gSystem.newKeys & PAD_BUTTON_A) {
ov01_021EFACC(fsys->unk4->unk8);
}
flag = 0;
if (sub_0203E324()) {
flag = ov35_02259DB8();
}
sub_0205CB48(fsys->playerAvatar, fsys->unk2C, -1, unkStruct.unk6, unkStruct.unk8, flag);
}
}
break;
}
}
void sub_0203E2F4() {
sFieldSysPtr->unk0->unk8 = TRUE;
sub_02037504();
}
void sub_0203E30C() {
sFieldSysPtr->unk0->unk8 = FALSE;
sub_020374E4();
}
int sub_0203E324() {
if (sFieldSysPtr->unk4 == NULL) {
return 0;
}
return sFieldSysPtr->unk4->unk14;
}
void sub_0203E33C(FieldSystem *fsys, int a1) {
fsys->unk1C = a1;
}
BGCONFIG *FieldSys_GetBgConfigPtr(FieldSystem *fsys) {
return fsys->bgConfig;
}
SAVEDATA *FieldSys_GetSaveDataPtr(FieldSystem *fsys) {
return fsys->savedata;
}
void sub_0203E348() {
LCRandom();
LCRandom();
}
void sub_0203E354() {
sFieldSysPtr->unkC4 = -2;
}

View File

@ -13,7 +13,7 @@
#include "overlay_01.h"
#include "overlay_02.h"
#include "unk_02054E00.h"
#include "unk_0205B6E8.h"
#include "metatile_behavior.h"
#include "unk_0203E348.h"
#include "unk_0200E398.h"
#include "unk_0200FA24.h"
@ -228,7 +228,7 @@ static void ItemMenuUseFunc_HealingItem(struct ItemMenuUseData *data, const stru
usedat->itemId = data->itemId;
usedat->unk26 = data->unk6;
usedat->unk20 = &fsys->unk_10C;
Fsys_LaunchApplication(fsys, &_0210159C, usedat);
FieldSys_LaunchApplication(fsys, &_0210159C, usedat);
env->atexit_TaskEnv = usedat;
sub_0203C8F0(env, sub_0203CA9C);
}
@ -351,7 +351,7 @@ static void ItemMenuUseFunc_TMHM(struct ItemMenuUseData *data, const struct Item
usedat->unk26 = data->unk6;
usedat->unk2A = TMHMGetMove(data->itemId);
usedat->unk20 = &fsys->unk_10C;
Fsys_LaunchApplication(fsys, &_0210159C, usedat);
FieldSys_LaunchApplication(fsys, &_0210159C, usedat);
env->atexit_TaskEnv = usedat;
sub_0203C8F0(env, sub_0203CA9C);
}
@ -490,7 +490,7 @@ static BOOL Task_PrintRegisteredKeyItemUseMessage(TaskManager *taskManager) {
case 0:
fsys->unkD2_6 = TRUE;
MapObjectMan_PauseAllMovement(fsys->mapObjectMan);
sub_0205B514(fsys->bg_config, &env->window, 3);
sub_0205B514(fsys->bgConfig, &env->window, 3);
options = Sav2_PlayerData_GetOptionsAddr(fsys->savedata);
sub_0205B564(&env->window, options);
env->printerId = sub_0205B5B4(&env->window, env->strbuf, options, TRUE);
@ -541,7 +541,7 @@ static void ItemMenuUseFunc_EvoStone(struct ItemMenuUseData *data, const struct
usedat->unk26 = data->unk6;
usedat->fsys = fsys;
usedat->unk20 = &fsys->unk_10C;
Fsys_LaunchApplication(fsys, &_0210159C, usedat);
FieldSys_LaunchApplication(fsys, &_0210159C, usedat);
env->atexit_TaskEnv = usedat;
sub_0203C8F0(env, sub_0203CA9C);
}

View File

@ -182,7 +182,7 @@ void sub_02053038(FieldSystem *fsys, BOOL isConnection) {
}
if (!isConnection) {
SavGymmick_Clear(Sav2_GetGymmickPtr(fsys->savedata));
SetLakeOfRageWaterLevel(fsys->map_matrix, ShouldUseAlternateLakeOfRage(fsys->savedata, mapId));
SetLakeOfRageWaterLevel(fsys->mapMatrix, ShouldUseAlternateLakeOfRage(fsys->savedata, mapId));
}
scriptState = SavArray_Flags_get(fsys->savedata);
weather = Fsys_GetWeather_HandleDiamondDust(fsys, mapId);
@ -262,13 +262,13 @@ static void sub_02053284(FieldSystem *fsys) {
sub_02052F30(fsys);
GF_ASSERT(fsys->unk60 == 0);
MapMatrix_Load(fsys->location->mapId, fsys->map_matrix);
MapMatrix_Load(fsys->location->mapId, fsys->mapMatrix);
scriptState = SavArray_Flags_get(fsys->savedata);
if (sub_02066C74(scriptState, 0)) {
RemoveMahoganyTownAntennaTree(fsys->map_matrix);
RemoveMahoganyTownAntennaTree(fsys->mapMatrix);
}
SetLakeOfRageWaterLevel(fsys->map_matrix, sub_02066C74(scriptState, 1));
PlaceSafariZoneAreas(fsys->map_matrix, fsys->savedata);
SetLakeOfRageWaterLevel(fsys->mapMatrix, sub_02066C74(scriptState, 1));
PlaceSafariZoneAreas(fsys->mapMatrix, fsys->savedata);
GF_ASSERT(fsys->unk70 < 6);
fsys->unk74 = &_020FC5CC[fsys->unk70];
fsys->unk64 = fsys->unk74->unk0_04;

View File

@ -151,7 +151,7 @@ ScriptEnvironment *ScriptEnvironment_new(void) {
}
void DestroyScriptContext(SCRIPTCONTEXT *ctx) {
DestroyMsgData(ctx->msg_data);
DestroyMsgData(ctx->msgdata);
FreeToHeap(ctx->mapScripts);
FreeToHeap(ctx);
}
@ -209,12 +209,12 @@ u16 LoadScriptsAndMessagesByMapId(FieldSystem *fsys, SCRIPTCONTEXT *ctx, u16 scr
void LoadScriptsAndMessagesParameterized(FieldSystem *fsys, SCRIPTCONTEXT *ctx, int scriptBank, u32 msgBank) {
ctx->mapScripts = AllocAndReadWholeNarcMemberByIdPair(NARC_fielddata_script_scr_seq, scriptBank, HEAP_ID_FIELDMAP);
ctx->msg_data = NewMsgDataFromNarc(MSGDATA_LOAD_LAZY, NARC_msgdata_msg, msgBank, HEAP_ID_FIELDMAP);
ctx->msgdata = NewMsgDataFromNarc(MSGDATA_LOAD_LAZY, NARC_msgdata_msg, msgBank, HEAP_ID_FIELDMAP);
}
void LoadScriptsAndMessagesForCurrentMap(FieldSystem *fsys, SCRIPTCONTEXT *ctx) {
ctx->mapScripts = LoadScriptsForCurrentMap(fsys->location->mapId);
ctx->msg_data = NewMsgDataFromNarc(MSGDATA_LOAD_LAZY, NARC_msgdata_msg, GetCurrentMapMessageBank(fsys->location->mapId), HEAP_ID_FIELDMAP);
ctx->msgdata = NewMsgDataFromNarc(MSGDATA_LOAD_LAZY, NARC_msgdata_msg, GetCurrentMapMessageBank(fsys->location->mapId), HEAP_ID_FIELDMAP);
}
void *FieldSysGetAttrAddrInternal(ScriptEnvironment *unk, enum ScriptEnvField field) {

View File

@ -8,21 +8,21 @@ static void MapEvents_ComputeRamHeader(MAP_EVENTS *events);
static void MapScriptHeader_ReadFromNarc(MAP_EVENTS *events, u32 mapno);
void Field_AllocateMapEvents(FieldSystem *work, HeapID heapId) {
GF_ASSERT(work->map_events == NULL);
work->map_events = AllocFromHeap(heapId, sizeof(MAP_EVENTS));
GF_ASSERT(work->mapEvents == NULL);
work->mapEvents = AllocFromHeap(heapId, sizeof(MAP_EVENTS));
}
void Field_FreeMapEvents(FieldSystem *work) {
GF_ASSERT(work->map_events != NULL);
FreeToHeap(work->map_events);
GF_ASSERT(work->mapEvents != NULL);
FreeToHeap(work->mapEvents);
}
void Field_InitMapEvents(FieldSystem *work, u32 mapno) {
GF_ASSERT(work->map_events != NULL);
MapEvents_ReadFromNarc(work->map_events, mapno);
MapEvents_ComputeRamHeader(work->map_events);
WildEncounters_ReadFromNarc(&work->map_events->wildEncounters, mapno);
MapScriptHeader_ReadFromNarc(work->map_events, mapno);
GF_ASSERT(work->mapEvents != NULL);
MapEvents_ReadFromNarc(work->mapEvents, mapno);
MapEvents_ComputeRamHeader(work->mapEvents);
WildEncounters_ReadFromNarc(&work->mapEvents->wildEncounters, mapno);
MapScriptHeader_ReadFromNarc(work->mapEvents, mapno);
}
static void MapEvents_ReadFromNarc(MAP_EVENTS *events, u32 mapno) {
@ -32,35 +32,35 @@ static void MapEvents_ReadFromNarc(MAP_EVENTS *events, u32 mapno) {
}
void Field_InitMapObjectsFromZoneEventData(FieldSystem *fsys) {
u32 obj_count = fsys->map_events->num_object_events;
GF_ASSERT(fsys->map_events != NULL);
u32 obj_count = fsys->mapEvents->num_object_events;
GF_ASSERT(fsys->mapEvents != NULL);
if (obj_count != 0) {
InitMapObjectsFromEventTemplates(fsys->mapObjectMan, fsys->location->mapId, obj_count, fsys->map_events->object_events);
InitMapObjectsFromEventTemplates(fsys->mapObjectMan, fsys->location->mapId, obj_count, fsys->mapEvents->object_events);
}
}
BG_EVENT *Field_GetBgEvents(FieldSystem *fsys) {
return fsys->map_events->bg_events;
return fsys->mapEvents->bg_events;
}
u32 Field_GetNumBgEvents(const FieldSystem *fsys) {
return fsys->map_events->num_bg_events;
return fsys->mapEvents->num_bg_events;
}
const WARP_EVENT *Field_GetWarpEventI(const FieldSystem *fsys, u32 warpno) {
MAP_EVENTS *events = fsys->map_events;
if (warpno >= fsys->map_events->num_warp_events) {
MAP_EVENTS *events = fsys->mapEvents;
if (warpno >= fsys->mapEvents->num_warp_events) {
return NULL;
} else {
return &fsys->map_events->warp_events[warpno];
return &fsys->mapEvents->warp_events[warpno];
}
}
int Field_GetWarpEventAtXYPos(const FieldSystem *fsys, int x, int y) {
int i;
for (i = 0; i < fsys->map_events->num_warp_events; i++) {
if (x == fsys->map_events->warp_events[i].x && y == fsys->map_events->warp_events[i].y) {
for (i = 0; i < fsys->mapEvents->num_warp_events; i++) {
if (x == fsys->mapEvents->warp_events[i].x && y == fsys->mapEvents->warp_events[i].y) {
return i;
}
}
@ -69,25 +69,25 @@ int Field_GetWarpEventAtXYPos(const FieldSystem *fsys, int x, int y) {
}
u32 Field_GetNumCoordEvents(const FieldSystem *fsys) {
return fsys->map_events->num_coord_events;
return fsys->mapEvents->num_coord_events;
}
const COORD_EVENT *Field_GetCoordEvents(const FieldSystem *fsys) {
return fsys->map_events->coord_events;
return fsys->mapEvents->coord_events;
}
u32 Field_GetNumObjectEvents(const FieldSystem *fsys) {
return fsys->map_events->num_object_events;
return fsys->mapEvents->num_object_events;
}
const OBJECT_EVENT *Field_GetObjectEvents(const FieldSystem *fsys) {
return fsys->map_events->object_events;
return fsys->mapEvents->object_events;
}
BOOL Field_SetObjectEventXYPos(FieldSystem *fsys, int id, u16 x, u16 y) {
int i;
OBJECT_EVENT *objs = fsys->map_events->object_events;
u32 num_objs = fsys->map_events->num_object_events;
OBJECT_EVENT *objs = fsys->mapEvents->object_events;
u32 num_objs = fsys->mapEvents->num_object_events;
for (i = 0; i < num_objs; i++) {
if (objs[i].id == id) {
@ -103,8 +103,8 @@ BOOL Field_SetObjectEventXYPos(FieldSystem *fsys, int id, u16 x, u16 y) {
BOOL Field_SetObjectEventFacing(FieldSystem *fsys, int id, u16 dirn) {
int i;
OBJECT_EVENT *objs = fsys->map_events->object_events;
u32 num_objs = fsys->map_events->num_object_events;
OBJECT_EVENT *objs = fsys->mapEvents->object_events;
u32 num_objs = fsys->mapEvents->num_object_events;
for (i = 0; i < num_objs; i++) {
if (objs[i].id == id) {
@ -119,8 +119,8 @@ BOOL Field_SetObjectEventFacing(FieldSystem *fsys, int id, u16 dirn) {
BOOL Field_SetObjectEventMovement(FieldSystem *fsys, int id, u16 mvt) {
int i;
OBJECT_EVENT *objs = fsys->map_events->object_events;
u32 num_objs = fsys->map_events->num_object_events;
OBJECT_EVENT *objs = fsys->mapEvents->object_events;
u32 num_objs = fsys->mapEvents->num_object_events;
for (i = 0; i < num_objs; i++) {
if (objs[i].id == id) {
@ -134,7 +134,7 @@ BOOL Field_SetObjectEventMovement(FieldSystem *fsys, int id, u16 mvt) {
}
BOOL Field_SetWarpXYPos(FieldSystem *fsys, int warpno, u16 x, u16 y) {
WARP_EVENT *warps = fsys->map_events->warp_events;
WARP_EVENT *warps = fsys->mapEvents->warp_events;
warps[warpno].x = x;
warps[warpno].y = y;
return TRUE;
@ -195,7 +195,7 @@ void WildEncounters_ReadFromNarc(ENC_DATA *encData, u32 mapno) {
}
ENC_DATA *MapEvents_GetLoadedEncTable(FieldSystem *fsys) {
return &fsys->map_events->wildEncounters;
return &fsys->mapEvents->wildEncounters;
}
static void MapScriptHeader_ReadFromNarc(MAP_EVENTS *events, u32 mapno) {
@ -206,6 +206,6 @@ static void MapScriptHeader_ReadFromNarc(MAP_EVENTS *events, u32 mapno) {
}
u8 *MapEvents_GetScriptHeader(FieldSystem *fsys) {
GF_ASSERT(fsys->map_events != NULL);
return fsys->map_events->script_header;
GF_ASSERT(fsys->mapEvents != NULL);
return fsys->mapEvents->script_header;
}

341
src/metatile_behavior.c Normal file
View File

@ -0,0 +1,341 @@
#include "metatile_behavior.h"
#include "constants/metatile_behavior.h"
static const u8 _020FCA74[] = {
0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
0x03, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
BOOL sub_0205B6E8(u8 tile) {
return tile == TILE_BEHAVIOR_2;
}
BOOL sub_0205B6F4(u8 tile) {
return tile == TILE_BEHAVIOR_3;
}
BOOL sub_0205B700(u8 tile) {
return tile == TILE_BEHAVIOR_128;
}
BOOL sub_0205B70C(u8 tile) {
return tile == TILE_BEHAVIOR_105;
}
BOOL sub_0205B718(u8 tile) {
return tile == TILE_BEHAVIOR_98;
}
BOOL sub_0205B724(u8 tile) {
return tile == TILE_BEHAVIOR_99;
}
BOOL sub_0205B730(u8 tile) {
return tile == TILE_BEHAVIOR_100;
}
BOOL sub_0205B73C(u8 tile) {
return tile == TILE_BEHAVIOR_101;
}
BOOL sub_0205B748(u8 tile) {
return tile == TILE_BEHAVIOR_108;
}
BOOL sub_0205B754(u8 tile) {
return tile == TILE_BEHAVIOR_109;
}
BOOL sub_0205B760(u8 tile) {
return tile == TILE_BEHAVIOR_110;
}
BOOL sub_0205B76C(u8 tile) {
return tile == TILE_BEHAVIOR_111;
}
BOOL sub_0205B778(u8 tile) {
return (_020FCA74[tile] & 1) != FALSE;
}
BOOL sub_0205B78C(u8 tile) {
return tile == TILE_BEHAVIOR_34;
}
BOOL sub_0205B798(u8 tile) {
return tile == TILE_BEHAVIOR_33;
}
BOOL sub_0205B7A4(u8 tile) {
return tile == TILE_BEHAVIOR_23;
}
BOOL sub_0205B7B0(u8 tile) {
return tile == TILE_BEHAVIOR_58;
}
BOOL sub_0205B7BC(u8 tile) {
return tile == TILE_BEHAVIOR_59;
}
BOOL sub_0205B7C8(u8 tile) {
return tile == TILE_BEHAVIOR_57;
}
BOOL sub_0205B7D4(u8 tile) {
return tile == TILE_BEHAVIOR_56;
}
BOOL sub_0205B7E0(u8 tile) {
return tile == TILE_BEHAVIOR_131;
}
BOOL sub_0205B7EC(u8 tile) {
return tile == TILE_BEHAVIOR_133;
}
BOOL sub_0205B7F8(u8 tile) {
return tile == TILE_BEHAVIOR_106;
}
BOOL sub_0205B804(u8 tile) {
return tile == TILE_BEHAVIOR_107;
}
BOOL sub_0205B810(u8 tile) {
return tile == TILE_BEHAVIOR_94;
}
BOOL sub_0205B81C(u8 tile) {
return tile == TILE_BEHAVIOR_95;
}
BOOL sub_0205B828(u8 tile) {
return tile == TILE_BEHAVIOR_32;
}
BOOL sub_0205B834(u8 tile) {
return tile == TILE_BEHAVIOR_75;
}
BOOL sub_0205B840(u8 tile) {
return tile == TILE_BEHAVIOR_76;
}
BOOL sub_0205B84C(u8 tile) {
return tile == TILE_BEHAVIOR_224;
}
BOOL sub_0205B858(u8 tile) {
return tile == TILE_BEHAVIOR_234;
}
BOOL sub_0205B864(u8 tile) {
return tile == TILE_BEHAVIOR_225;
}
BOOL sub_0205B870(u8 tile) {
return tile == TILE_BEHAVIOR_226;
}
BOOL sub_0205B87C(u8 tile) {
return tile == TILE_BEHAVIOR_228;
}
BOOL sub_0205B888(u8 tile) {
return tile == TILE_BEHAVIOR_229;
}
BOOL sub_0205B894(u8 tile) {
return tile == TILE_BEHAVIOR_235;
}
BOOL sub_0205B8A0(u8 tile) {
return tile == TILE_BEHAVIOR_236;
}
BOOL sub_0205B8AC(u8 tile) {
return tile == TILE_BEHAVIOR_164;
}
BOOL sub_0205B8B8(u8 tile) {
return tile == TILE_BEHAVIOR_168;
}
BOOL sub_0205B8C4(u8 tile) {
return tile == TILE_BEHAVIOR_168;
}
BOOL sub_0205B8D0(u8 tile) {
return tile == TILE_BEHAVIOR_8;
}
BOOL MetatileBehavior_IsWaterfall(u8 tile) {
return tile == TILE_BEHAVIOR_WATERFALL;
}
BOOL MetatileBehavior_IsWhirlpool(u8 tile) {
return tile == TILE_BEHAVIOR_WHIRLPOOL;
}
BOOL sub_0205B8F4(u8 tile) {
return tile == TILE_BEHAVIOR_50 ||
tile == TILE_BEHAVIOR_52 ||
tile == TILE_BEHAVIOR_53 ||
tile == TILE_BEHAVIOR_60 ||
tile == TILE_BEHAVIOR_73;
}
BOOL sub_0205B918(u8 tile) {
return tile == TILE_BEHAVIOR_51 ||
tile == TILE_BEHAVIOR_54 ||
tile == TILE_BEHAVIOR_55 ||
tile == TILE_BEHAVIOR_61 ||
tile == TILE_BEHAVIOR_73;
}
BOOL sub_0205B93C(u8 tile) {
return tile == TILE_BEHAVIOR_49 ||
tile == TILE_BEHAVIOR_53 ||
tile == TILE_BEHAVIOR_55 ||
tile == TILE_BEHAVIOR_74;
}
BOOL sub_0205B960(u8 tile) {
return tile == TILE_BEHAVIOR_48 ||
tile == TILE_BEHAVIOR_52 ||
tile == TILE_BEHAVIOR_54 ||
tile == TILE_BEHAVIOR_74;
}
BOOL sub_0205B984(u8 tile) {
return tile == TILE_BEHAVIOR_22 || tile == TILE_BEHAVIOR_29;
}
BOOL sub_0205B994(u8 tile) {
return (_020FCA74[tile] & 2) != 0;
}
BOOL sub_0205B9AC(u8 tile) {
return tile == TILE_BEHAVIOR_134;
}
BOOL sub_0205B9B8(u8 tile) {
return tile == TILE_BEHAVIOR_16 ||
tile == TILE_BEHAVIOR_22 ||
tile == TILE_BEHAVIOR_29 ||
tile == TILE_BEHAVIOR_32 ||
tile == TILE_BEHAVIOR_45;
}
BOOL sub_0205B9DC(u8 tile) {
return tile == TILE_BEHAVIOR_64;
}
BOOL sub_0205B9E8(u8 tile) {
return tile == TILE_BEHAVIOR_65;
}
BOOL sub_0205B9F4(u8 tile) {
return tile == TILE_BEHAVIOR_66;
}
BOOL sub_0205BA00(u8 tile) {
return tile == TILE_BEHAVIOR_67;
}
BOOL sub_0205BA0C(u8 tile) {
return tile == TILE_BEHAVIOR_77;
}
BOOL sub_0205BA18(u8 tile) {
return tile == TILE_BEHAVIOR_103;
}
BOOL sub_0205BA24(u8 tile) {
return tile == TILE_BEHAVIOR_112;
}
BOOL sub_0205BA30(u8 tile) {
return tile == TILE_BEHAVIOR_113 ||
tile == TILE_BEHAVIOR_114 ||
tile == TILE_BEHAVIOR_115;
}
BOOL sub_0205BA44(u8 tile) {
return tile == TILE_BEHAVIOR_113 || tile == TILE_BEHAVIOR_114;
}
BOOL sub_0205BA54(u8 tile) {
return tile == TILE_BEHAVIOR_115;
}
BOOL MetatileBehavior_IsNone(u8 tile) {
return tile == TILE_BEHAVIOR_NONE;
}
u8 sub_0205BA6C(void) {
return TILE_BEHAVIOR_NONE;
}
BOOL sub_0205BA70(u8 tile) {
return tile == TILE_BEHAVIOR_29 ||
tile == TILE_BEHAVIOR_32 ||
tile == TILE_BEHAVIOR_45;
}
BOOL sub_0205BA94(u8 tile) {
return tile == TILE_BEHAVIOR_169;
}
BOOL sub_0205BAA0(u8 tile) {
return tile == TILE_BEHAVIOR_60;
}
BOOL sub_0205BAAC(u8 tile) {
return tile == TILE_BEHAVIOR_61;
}
BOOL sub_0205BAB8(u8 tile) {
return tile == TILE_BEHAVIOR_62;
}
BOOL sub_0205BAC4(u8 tile) {
return tile == TILE_BEHAVIOR_44;
}
BOOL sub_0205BAD0(u8 tile) {
return tile == TILE_BEHAVIOR_0 ||
tile == TILE_BEHAVIOR_33 ||
tile == TILE_BEHAVIOR_164;
}
BOOL sub_0205BAE4(u8 tile) {
return sub_0205B778(tile);
}
BOOL sub_0205BAEC(u8 tile) {
return tile == TILE_BEHAVIOR_35;
}
BOOL MetatileBehavior_IsHeadbutt(u8 tile) {
return tile == TILE_BEHAVIOR_HEADBUTT;
}
BOOL sub_0205BB04(u8 tile) {
return sub_0205BA44(tile) || tile == TILE_BEHAVIOR_46;
}

View File

@ -23,12 +23,11 @@
#include "unk_0202C730.h"
#include "unk_02066EDC.h"
#include "unk_0203E348.h"
#include "field_system.h"
#include "msgdata/msg/msg_0445.h"
#define HEAPID_OV36 ((HeapID)75)
extern const OVY_MGR_TEMPLATE gApplication_NewGameFieldsys;
extern const OVY_MGR_TEMPLATE gApplication_ContinueFieldsys;
extern const OVY_MGR_TEMPLATE gApplication_OakSpeech;
static BOOL ov36_App_MainMenu_SelectOption_Continue_AppInit(OVY_MANAGER* man, int* state);

View File

@ -64,7 +64,7 @@ BOOL PartyMenu_AnimateIconFormeChange(PartyMenuStruct* unkPtr) {
GF_ASSERT(FALSE);
break;
}
Pokedex_SetMonCaughtFlag(Sav2_Pokedex_get(Fsys_GetSaveDataPtr(unkPtr->unk654->fsys)), pokemon);
Pokedex_SetMonCaughtFlag(Sav2_Pokedex_get(FieldSys_GetSaveDataPtr(unkPtr->unk654->fsys)), pokemon);
work->state++;
break;
case 1:

View File

@ -5,7 +5,7 @@
#include "unk_0203E348.h"
#include "math_util.h"
BOOL ScrCmd_683(SCRIPTCONTEXT *ctx) {
BOOL ScrCmd_GetStaticEncounterOutcomeFlag(SCRIPTCONTEXT *ctx) {
u32 *unkC = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_0C);
u16 *var0 = ScriptGetVarPointer(ctx);
*var0 = *unkC;

View File

@ -22,7 +22,7 @@
#include "map_events.h"
#include "unk_0205FD20.h"
#include "unk_02054648.h"
#include "unk_0205B6E8.h"
#include "metatile_behavior.h"
#include "unk_0203E348.h"
#include "unk_02055418.h"
#include "unk_020932A4.h"
@ -32,6 +32,7 @@
#include "unk_02078834.h"
#include "unk_020961D8.h"
#include "unk_02055244.h"
#include "field_system.h"
#include "fashion_case.h"
#include "save_flypoints.h"
#include "unk_0206B910.h"
@ -247,7 +248,7 @@ BOOL ScrCmd_CompareLocalToLocal(SCRIPTCONTEXT* ctx) {
u8 a = ctx->data[ScriptReadByte(ctx)];
u8 b = ctx->data[ScriptReadByte(ctx)];
ctx->comparison_result = Compare(a, b);
ctx->comparisonResult = Compare(a, b);
return FALSE;
}
@ -256,7 +257,7 @@ BOOL ScrCmd_CompareLocalToValue(SCRIPTCONTEXT* ctx) {
u8 a = ctx->data[ScriptReadByte(ctx)];
u8 b = ScriptReadByte(ctx);
ctx->comparison_result = Compare(a, b);
ctx->comparisonResult = Compare(a, b);
return FALSE;
}
@ -265,7 +266,7 @@ BOOL ScrCmd_CompareLocalToAddr(SCRIPTCONTEXT* ctx) {
u8 a = ctx->data[ScriptReadByte(ctx)];
u8 b = *(u8*)ScriptReadWord(ctx);
ctx->comparison_result = Compare(a, b);
ctx->comparisonResult = Compare(a, b);
return FALSE;
}
@ -274,7 +275,7 @@ BOOL ScrCmd_CompareAddrToLocal(SCRIPTCONTEXT* ctx) {
u8 a = *(u8*)ScriptReadWord(ctx);
u8 b = ctx->data[ScriptReadByte(ctx)];
ctx->comparison_result = Compare(a, b);
ctx->comparisonResult = Compare(a, b);
return FALSE;
}
@ -283,7 +284,7 @@ BOOL ScrCmd_CompareAddrToValue(SCRIPTCONTEXT* ctx) {
u8 a = *(u8*)ScriptReadWord(ctx);
u8 b = ScriptReadByte(ctx);
ctx->comparison_result = Compare(a, b);
ctx->comparisonResult = Compare(a, b);
return FALSE;
}
@ -292,7 +293,7 @@ BOOL ScrCmd_CompareAddrToAddr(SCRIPTCONTEXT* ctx) {
u8 a = *(u8*)ScriptReadWord(ctx);
u8 b = *(u8*)ScriptReadWord(ctx);
ctx->comparison_result = Compare(a, b);
ctx->comparisonResult = Compare(a, b);
return FALSE;
}
@ -301,7 +302,7 @@ BOOL ScrCmd_CompareVarToValue(SCRIPTCONTEXT* ctx) {
u16 a = *ScriptGetVarPointer(ctx);
u16 b = ScriptReadHalfword(ctx);
ctx->comparison_result = Compare(a, b);
ctx->comparisonResult = Compare(a, b);
return FALSE;
}
@ -310,7 +311,7 @@ BOOL ScrCmd_CompareVarToVar(SCRIPTCONTEXT* ctx) {
u16* a_ptr = ScriptGetVarPointer(ctx);
u16* b_ptr = ScriptGetVarPointer(ctx);
ctx->comparison_result = Compare(*a_ptr, *b_ptr);
ctx->comparisonResult = Compare(*a_ptr, *b_ptr);
return FALSE;
}
@ -424,7 +425,7 @@ BOOL ScrCmd_GoToIf(SCRIPTCONTEXT* ctx) {
u8 condition = ScriptReadByte(ctx);
u32 offset_in_script = ScriptReadWord(ctx);
if (sConditionTable[condition][ctx->comparison_result] == 1) {
if (sConditionTable[condition][ctx->comparisonResult] == 1) {
ScriptJump(ctx, ctx->script_ptr + offset_in_script);
}
@ -435,7 +436,7 @@ BOOL ScrCmd_CallIf(SCRIPTCONTEXT* ctx) {
u8 condition = ScriptReadByte(ctx);
u32 offset_in_script = ScriptReadWord(ctx);
if (sConditionTable[condition][ctx->comparison_result] == 1) {
if (sConditionTable[condition][ctx->comparisonResult] == 1) {
ScriptCall(ctx, ctx->script_ptr + offset_in_script);
}
@ -464,7 +465,7 @@ BOOL ScrCmd_CheckFlag(SCRIPTCONTEXT* ctx) {
FieldSystem* fsys = ctx->fsys;
u16 flag_to_check = ScriptReadHalfword(ctx);
ctx->comparison_result = FlagGet(fsys, flag_to_check);
ctx->comparisonResult = FlagGet(fsys, flag_to_check);
return FALSE;
}
@ -517,7 +518,7 @@ BOOL ScrCmd_CheckTrainerFlag(SCRIPTCONTEXT* ctx) {
FieldSystem* fsys = ctx->fsys;
u16 flag_to_check = ScriptGetVar(ctx);
ctx->comparison_result = TrainerFlagCheck(fsys->savedata, flag_to_check);
ctx->comparisonResult = TrainerFlagCheck(fsys->savedata, flag_to_check);
return FALSE;
}
@ -571,13 +572,13 @@ BOOL ScrCmd_048(SCRIPTCONTEXT* ctx) {
u8 msg_no = ScriptReadByte(ctx);
if (!sub_02037474()) {
ov01_021EF4DC(ctx, ctx->msg_data, msg_no, TRUE, NULL);
ov01_021EF4DC(ctx, ctx->msgdata, msg_no, TRUE, NULL);
} else {
struct UnkStruct_Ov01_021EF4C4 unk_struct;
ov01_021EF4C4(&unk_struct, ctx);
unk_struct.textFrameDelay = 1;
unk_struct.unk1 = 1;
ov01_021EF4DC(ctx, ctx->msg_data, msg_no, FALSE, &unk_struct);
ov01_021EF4DC(ctx, ctx->msgdata, msg_no, FALSE, &unk_struct);
}
SetupNativeScript(ctx, ov01_021EF348);
@ -663,7 +664,7 @@ BOOL ScrCmd_OpenMsg(SCRIPTCONTEXT* ctx) {
FieldSystem* fsys = ctx->fsys;
u8* unk = FieldSysGetAttrAddr(fsys, SCRIPTENV_08);
sub_0205B514(fsys->bg_config, FieldSysGetAttrAddr(fsys, SCRIPTENV_WINDOW), 3);
sub_0205B514(fsys->bgConfig, FieldSysGetAttrAddr(fsys, SCRIPTENV_WINDOW), 3);
sub_0205B564(FieldSysGetAttrAddr(fsys, SCRIPTENV_WINDOW), Sav2_PlayerData_GetOptionsAddr(ctx->fsys->savedata));
fsys->unkD2_6 = 1;
@ -736,17 +737,17 @@ static BOOL sub_02041270(SCRIPTCONTEXT* ctx) {
if (*var_8008 != 0) {
if (*var_8009 == 0) {
BgSetPosTextAndCommit(fsys->bg_config, GF_BG_LYR_MAIN_3, BG_POS_OP_ADD_X, *var_8008);
BgSetPosTextAndCommit(fsys->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_ADD_X, *var_8008);
} else {
BgSetPosTextAndCommit(fsys->bg_config, GF_BG_LYR_MAIN_3, BG_POS_OP_SUB_X, *var_8008);
BgSetPosTextAndCommit(fsys->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_SUB_X, *var_8008);
}
}
if (*var_800A != 0) {
if (*var_800B == 0) {
BgSetPosTextAndCommit(fsys->bg_config, GF_BG_LYR_MAIN_3, BG_POS_OP_ADD_Y, *var_800A);
BgSetPosTextAndCommit(fsys->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_ADD_Y, *var_800A);
} else {
BgSetPosTextAndCommit(fsys->bg_config, GF_BG_LYR_MAIN_3, BG_POS_OP_SUB_Y, *var_800A);
BgSetPosTextAndCommit(fsys->bgConfig, GF_BG_LYR_MAIN_3, BG_POS_OP_SUB_Y, *var_800A);
}
}
@ -779,7 +780,7 @@ BOOL ScrCmd_DirectionSignpost(SCRIPTCONTEXT* ctx) {
ov01_021F3D70(fsys->unk68, 1);
ov01_021F3D98(fsys);
ReadMsgDataIntoString(ctx->msg_data, msg_no, *tmp_str);
ReadMsgDataIntoString(ctx->msgdata, msg_no, *tmp_str);
StringExpandPlaceholders(*msg_fmt, *unk1, *tmp_str);
WINDOW* window = ov01_021F3D80(fsys->unk68);
AddTextPrinterParameterized2(window, 1, *unk1, 0, 0, 0, MakeTextColor(2, 10, 15), NULL);
@ -832,7 +833,7 @@ BOOL ScrCmd_TrainerTips(SCRIPTCONTEXT* ctx) {
u8 msg_no = ScriptReadByte(ctx);
u16 result_var_id = ScriptReadHalfword(ctx);
ReadMsgDataIntoString(ctx->msg_data, msg_no, *tmp_str);
ReadMsgDataIntoString(ctx->msgdata, msg_no, *tmp_str);
StringExpandPlaceholders(*msg_fmt, *unk, *tmp_str);
TextFlags_SetCanABSpeedUpPrint(TRUE);
@ -932,8 +933,8 @@ BOOL ScrCmd_YesNo(SCRIPTCONTEXT* ctx) {
FieldSystem *fsys = ctx->fsys;
struct ListMenu2 **listMenu = FieldSysGetAttrAddr(fsys, SCRIPTENV_MENU);
u16 data = ScriptReadHalfword(ctx);
LoadUserFrameGfx1(fsys->bg_config, 3, 0x3D9, 11, 0, 4);
*listMenu = Std_CreateYesNoMenu(fsys->bg_config, &_020FAC94, 0x3D9, 11, 4);
LoadUserFrameGfx1(fsys->bgConfig, 3, 0x3D9, 11, 0, 4);
*listMenu = Std_CreateYesNoMenu(fsys->bgConfig, &_020FAC94, 0x3D9, 11, 4);
ctx->data[0] = data;
SetupNativeScript(ctx, sub_020416E4);
return TRUE;
@ -987,7 +988,7 @@ BOOL ScrCmd_064(SCRIPTCONTEXT *ctx) {
}
BOOL ScrCmd_065(SCRIPTCONTEXT *ctx) {
sub_02041770(ctx, FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW), ctx->msg_data);
sub_02041770(ctx, FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW), ctx->msgdata);
return TRUE;
}
@ -1052,7 +1053,7 @@ BOOL ScrCmd_068(SCRIPTCONTEXT *ctx) {
}
BOOL ScrCmd_069(SCRIPTCONTEXT *ctx) {
sub_02041770(ctx, FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW), ctx->msg_data);
sub_02041770(ctx, FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW), ctx->msgdata);
return TRUE;
}
@ -1842,8 +1843,8 @@ BOOL ScrCmd_452(SCRIPTCONTEXT *ctx) {
struct PokepicManager **p_work = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_GENERIC_WORK_PTR);
u16 species = ScriptGetVar(ctx);
u16 gender = ScriptGetVar(ctx);
LoadUserFrameGfx1(ctx->fsys->bg_config, 3, 0x3D9, 0xB, 0, 4);
*p_work = sub_0200F4A0(ctx->fsys->bg_config, 3, 10, 5, 11, 0x3D9, species, gender, 4);
LoadUserFrameGfx1(ctx->fsys->bgConfig, 3, 0x3D9, 0xB, 0, 4);
*p_work = sub_0200F4A0(ctx->fsys->bgConfig, 3, 10, 5, 11, 0x3D9, species, gender, 4);
Script_SetMonSeenFlagBySpecies(ctx->fsys, species);
return FALSE;
}
@ -1852,8 +1853,8 @@ BOOL ScrCmd_547(SCRIPTCONTEXT *ctx) {
struct PokepicManager **p_work = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_GENERIC_WORK_PTR);
u16 partyIdx = ScriptGetVar(ctx);
POKEMON *pokemon = GetPartyMonByIndex(SavArray_PlayerParty_get(ctx->fsys->savedata), partyIdx);
LoadUserFrameGfx1(ctx->fsys->bg_config, 3, 0x3D9, 0xB, 0, 4);
*p_work = sub_0200F4F8(ctx->fsys->bg_config, 3, 10, 5, 11, 0x3D9, pokemon, 4);
LoadUserFrameGfx1(ctx->fsys->bgConfig, 3, 0x3D9, 0xB, 0, 4);
*p_work = sub_0200F4F8(ctx->fsys->bgConfig, 3, 10, 5, 11, 0x3D9, pokemon, 4);
return FALSE;
}
@ -2689,8 +2690,8 @@ BOOL ScrCmd_264(SCRIPTCONTEXT *ctx) {
LocalMapObject **p_lastTalked = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_LAST_TALKED);
MSGFMT **p_msgFmt = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MSGFMT);
u16 r4 = ScriptReadHalfword(ctx);
PLAYERPROFILE *profile = Sav2_PlayerData_GetProfileAddr(Fsys_GetSaveDataPtr(ctx->fsys));
SAVE_EASY_CHAT_T *easyChat = SaveData_EasyChat_get(Fsys_GetSaveDataPtr(ctx->fsys));
PLAYERPROFILE *profile = Sav2_PlayerData_GetProfileAddr(FieldSys_GetSaveDataPtr(ctx->fsys));
SAVE_EASY_CHAT_T *easyChat = SaveData_EasyChat_get(FieldSys_GetSaveDataPtr(ctx->fsys));
u16 objId;
if (r4 == 0) {
@ -2854,7 +2855,7 @@ BOOL ScrCmd_286(SCRIPTCONTEXT *ctx) {
}
BOOL ScrCmd_287(SCRIPTCONTEXT *ctx) {
PLAYERPROFILE *profile = Sav2_PlayerData_GetProfileAddr(Fsys_GetSaveDataPtr(ctx->fsys));
PLAYERPROFILE *profile = Sav2_PlayerData_GetProfileAddr(FieldSys_GetSaveDataPtr(ctx->fsys));
MSGFMT **p_msgFmt = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MSGFMT);
sub_0205B3DC(
PlayerProfile_GetTrainerID(profile),
@ -2865,7 +2866,7 @@ BOOL ScrCmd_287(SCRIPTCONTEXT *ctx) {
}
BOOL ScrCmd_288(SCRIPTCONTEXT *ctx) {
PLAYERPROFILE *profile = Sav2_PlayerData_GetProfileAddr(Fsys_GetSaveDataPtr(ctx->fsys));
PLAYERPROFILE *profile = Sav2_PlayerData_GetProfileAddr(FieldSys_GetSaveDataPtr(ctx->fsys));
u16 choice = ScriptGetVar(ctx);
u16 *p_ret = ScriptGetVarPointer(ctx);
*p_ret = sub_0205B418(
@ -2882,7 +2883,7 @@ BOOL ScrCmd_288(SCRIPTCONTEXT *ctx) {
}
BOOL ScrCmd_558(SCRIPTCONTEXT *ctx) {
PLAYERPROFILE *profile = Sav2_PlayerData_GetProfileAddr(Fsys_GetSaveDataPtr(ctx->fsys));
PLAYERPROFILE *profile = Sav2_PlayerData_GetProfileAddr(FieldSys_GetSaveDataPtr(ctx->fsys));
u16 choice = ScriptGetVar(ctx);
u16 *p_ret = ScriptGetVarPointer(ctx);
*p_ret = sub_0205B418(
@ -2894,7 +2895,7 @@ BOOL ScrCmd_558(SCRIPTCONTEXT *ctx) {
}
BOOL ScrCmd_289(SCRIPTCONTEXT *ctx) {
PLAYERPROFILE *profile = Sav2_PlayerData_GetProfileAddr(Fsys_GetSaveDataPtr(ctx->fsys));
PLAYERPROFILE *profile = Sav2_PlayerData_GetProfileAddr(FieldSys_GetSaveDataPtr(ctx->fsys));
u16 choice = ScriptGetVar(ctx);
PlayerProfile_SetAvatar(profile, choice);
return FALSE;
@ -2913,7 +2914,7 @@ BOOL ScrCmd_SetSpawn(SCRIPTCONTEXT *ctx) {
}
BOOL ScrCmd_GetPlayerGender(SCRIPTCONTEXT *ctx) {
PLAYERPROFILE *profile = Sav2_PlayerData_GetProfileAddr(Fsys_GetSaveDataPtr(ctx->fsys));
PLAYERPROFILE *profile = Sav2_PlayerData_GetProfileAddr(FieldSys_GetSaveDataPtr(ctx->fsys));
u16 *p_ret = ScriptGetVarPointer(ctx);
*p_ret = PlayerProfile_GetTrainerGender(profile);
return FALSE;
@ -3074,7 +3075,7 @@ BOOL ScrCmd_EcruteakGymInit(SCRIPTCONTEXT *ctx) {
BOOL ScrCmd_315(SCRIPTCONTEXT *ctx) {
FieldSystem *fsys = ctx->fsys;
if (SavGymmick_GetType(Sav2_GetGymmickPtr(Fsys_GetSaveDataPtr(fsys))) != GYMMICK_ECRUTEAK) {
if (SavGymmick_GetType(Sav2_GetGymmickPtr(FieldSys_GetSaveDataPtr(fsys))) != GYMMICK_ECRUTEAK) {
return FALSE;
}
ov04_02254D98(fsys);
@ -3083,7 +3084,7 @@ BOOL ScrCmd_315(SCRIPTCONTEXT *ctx) {
BOOL ScrCmd_316(SCRIPTCONTEXT *ctx) {
FieldSystem *fsys = ctx->fsys;
if (SavGymmick_GetType(Sav2_GetGymmickPtr(Fsys_GetSaveDataPtr(fsys))) != GYMMICK_ECRUTEAK) {
if (SavGymmick_GetType(Sav2_GetGymmickPtr(FieldSys_GetSaveDataPtr(fsys))) != GYMMICK_ECRUTEAK) {
return FALSE;
}
ov04_02254DD0(fsys);
@ -3093,7 +3094,7 @@ BOOL ScrCmd_316(SCRIPTCONTEXT *ctx) {
BOOL ScrCmd_317(SCRIPTCONTEXT *ctx) {
FieldSystem *fsys = ctx->fsys;
u8 r5 = ScriptReadByte(ctx);
if (SavGymmick_GetType(Sav2_GetGymmickPtr(Fsys_GetSaveDataPtr(fsys))) != GYMMICK_ECRUTEAK) {
if (SavGymmick_GetType(Sav2_GetGymmickPtr(FieldSys_GetSaveDataPtr(fsys))) != GYMMICK_ECRUTEAK) {
return TRUE;
}
ov04_02254DE0(fsys, (r5 != 0) ? 10 : 30);
@ -3574,7 +3575,7 @@ BOOL ScrCmd_GetGameVersion(SCRIPTCONTEXT *ctx) {
BOOL ScrCmd_PrimoPasswordCheck1(SCRIPTCONTEXT *ctx) {
FieldSystem *fsys = ctx->fsys;
PLAYERPROFILE *profile = Sav2_PlayerData_GetProfileAddr(Fsys_GetSaveDataPtr(fsys));
PLAYERPROFILE *profile = Sav2_PlayerData_GetProfileAddr(FieldSys_GetSaveDataPtr(fsys));
u16 *p_ret = ScriptGetVarPointer(ctx);
PC_STORAGE *pcStorage = GetStoragePCPointer(fsys->savedata);
u16 a = ScriptGetVar(ctx);
@ -3596,7 +3597,7 @@ BOOL ScrCmd_PrimoPasswordCheck1(SCRIPTCONTEXT *ctx) {
BOOL ScrCmd_PrimoPasswordCheck2(SCRIPTCONTEXT *ctx) {
FieldSystem *fsys = ctx->fsys;
PLAYERPROFILE *profile = Sav2_PlayerData_GetProfileAddr(Fsys_GetSaveDataPtr(fsys));
PLAYERPROFILE *profile = Sav2_PlayerData_GetProfileAddr(FieldSys_GetSaveDataPtr(fsys));
u16 *p_ret = ScriptGetVarPointer(ctx);
PC_STORAGE *pcStorage = GetStoragePCPointer(fsys->savedata);
u16 a = ScriptGetVar(ctx);
@ -4598,7 +4599,7 @@ BOOL ScrCmd_Pokeathlon(SCRIPTCONTEXT *ctx) {
BOOL ScrCmd_GetFriendSprite(SCRIPTCONTEXT *ctx) {
u16 *p_ret = ScriptGetVarPointer(ctx);
if (PlayerProfile_GetTrainerGender(Sav2_PlayerData_GetProfileAddr(Fsys_GetSaveDataPtr(ctx->fsys))) != PLAYER_GENDER_MALE) {
if (PlayerProfile_GetTrainerGender(Sav2_PlayerData_GetProfileAddr(FieldSys_GetSaveDataPtr(ctx->fsys))) != PLAYER_GENDER_MALE) {
*p_ret = SPRITE_HERO;
} else {
*p_ret = SPRITE_HEROINE;
@ -4607,7 +4608,7 @@ BOOL ScrCmd_GetFriendSprite(SCRIPTCONTEXT *ctx) {
}
BOOL ScrCmd_RegisterPokegearCard(SCRIPTCONTEXT *ctx) {
SavePokegear *pokegear = SaveData_GSPlayerMisc_get(Fsys_GetSaveDataPtr(ctx->fsys));
SavePokegear *pokegear = SaveData_GSPlayerMisc_get(FieldSys_GetSaveDataPtr(ctx->fsys));
u8 card = ScriptReadByte(ctx);
switch (card) {
case 1:
@ -4630,7 +4631,7 @@ BOOL ScrCmd_804(SCRIPTCONTEXT *ctx) {
}
BOOL ScrCmd_RegisterGearNumber(SCRIPTCONTEXT *ctx) {
SavePokegear *pokegear = SaveData_GSPlayerMisc_get(Fsys_GetSaveDataPtr(ctx->fsys));
SavePokegear *pokegear = SaveData_GSPlayerMisc_get(FieldSys_GetSaveDataPtr(ctx->fsys));
u8 number = ScriptGetVar(ctx);
if (number < NUM_PHONE_CONTACTS) {
RegisterPhoneNumberInPokeGear(pokegear, number);
@ -4639,7 +4640,7 @@ BOOL ScrCmd_RegisterGearNumber(SCRIPTCONTEXT *ctx) {
}
BOOL ScrCmd_CheckRegisteredPhoneNumber(SCRIPTCONTEXT *ctx) {
SavePokegear *pokegear = SaveData_GSPlayerMisc_get(Fsys_GetSaveDataPtr(ctx->fsys));
SavePokegear *pokegear = SaveData_GSPlayerMisc_get(FieldSys_GetSaveDataPtr(ctx->fsys));
u8 number = ScriptGetVar(ctx);
u16 *p_ret = ScriptGetVarPointer(ctx);
if (number < NUM_PHONE_CONTACTS) {
@ -5014,7 +5015,7 @@ BOOL ScrCmd_MenuInitStdGmm(SCRIPTCONTEXT *ctx) {
}
BOOL ScrCmd_MenuInit(SCRIPTCONTEXT *ctx) {
sub_02041770(ctx, ov01_021F6B20(ctx->fsys), ctx->msg_data);
sub_02041770(ctx, ov01_021F6B20(ctx->fsys), ctx->msgdata);
return TRUE;
}

View File

@ -44,7 +44,7 @@ BOOL ScrCmd_GiveDayCareEgg(SCRIPTCONTEXT* ctx) {
FieldSystem* fsys = ctx->fsys;
DAYCARE* daycare = SavArray_get(fsys->savedata, SAVE_DAYCARE);
PARTY* party = SavArray_PlayerParty_get(fsys->savedata);
SAVEDATA* savedata = Fsys_GetSaveDataPtr(ctx->fsys);
SAVEDATA* savedata = FieldSys_GetSaveDataPtr(ctx->fsys);
PLAYERPROFILE* profile = Sav2_PlayerData_GetProfileAddr(savedata);
GiveEggToPlayer(daycare, party, profile);

View File

@ -2,7 +2,7 @@
#include "player_data.h"
BOOL ScrCmd_AddMoney(SCRIPTCONTEXT* ctx) {
SAVEDATA* savedata = Fsys_GetSaveDataPtr(ctx->fsys);
SAVEDATA* savedata = FieldSys_GetSaveDataPtr(ctx->fsys);
PLAYERPROFILE* profile = Sav2_PlayerData_GetProfileAddr(savedata);
u32 amount = ScriptReadWord(ctx);
@ -12,7 +12,7 @@ BOOL ScrCmd_AddMoney(SCRIPTCONTEXT* ctx) {
}
BOOL ScrCmd_SubMoneyImmediate(SCRIPTCONTEXT* ctx) {
SAVEDATA* savedata = Fsys_GetSaveDataPtr(ctx->fsys);
SAVEDATA* savedata = FieldSys_GetSaveDataPtr(ctx->fsys);
PLAYERPROFILE* profile = Sav2_PlayerData_GetProfileAddr(savedata);
u32 amount = ScriptReadWord(ctx);
@ -22,7 +22,7 @@ BOOL ScrCmd_SubMoneyImmediate(SCRIPTCONTEXT* ctx) {
}
BOOL ScrCmd_SubMoneyVar(SCRIPTCONTEXT* ctx) {
SAVEDATA* savedata = Fsys_GetSaveDataPtr(ctx->fsys);
SAVEDATA* savedata = FieldSys_GetSaveDataPtr(ctx->fsys);
PLAYERPROFILE* profile = Sav2_PlayerData_GetProfileAddr(savedata);
u16 amount = VarGet(ctx->fsys, ScriptReadHalfword(ctx));
@ -32,7 +32,7 @@ BOOL ScrCmd_SubMoneyVar(SCRIPTCONTEXT* ctx) {
}
BOOL ScrCmd_HasEnoughMoneyImmediate(SCRIPTCONTEXT* ctx) {
SAVEDATA* savedata = Fsys_GetSaveDataPtr(ctx->fsys);
SAVEDATA* savedata = FieldSys_GetSaveDataPtr(ctx->fsys);
PLAYERPROFILE* profile = Sav2_PlayerData_GetProfileAddr(savedata);
u16* ret_ptr = GetVarPointer(ctx->fsys, ScriptReadHalfword(ctx));
@ -48,7 +48,7 @@ BOOL ScrCmd_HasEnoughMoneyImmediate(SCRIPTCONTEXT* ctx) {
}
BOOL ScrCmd_HasEnoughMoneyVar(SCRIPTCONTEXT* ctx) {
SAVEDATA* savedata = Fsys_GetSaveDataPtr(ctx->fsys);
SAVEDATA* savedata = FieldSys_GetSaveDataPtr(ctx->fsys);
PLAYERPROFILE* profile = Sav2_PlayerData_GetProfileAddr(savedata);
u16* ret_ptr = GetVarPointer(ctx->fsys, ScriptReadHalfword(ctx));

View File

@ -44,7 +44,7 @@ static void CreateMoveRelearner(SCRIPTCONTEXT *ctx, int a1, POKEMON *pokemon, u1
*unkAC = moveRelearner;
moveRelearner->pokemon = pokemon;
moveRelearner->profile = Sav2_PlayerData_GetProfileAddr(Fsys_GetSaveDataPtr(ctx->fsys));
moveRelearner->profile = Sav2_PlayerData_GetProfileAddr(FieldSys_GetSaveDataPtr(ctx->fsys));
moveRelearner->options = Sav2_PlayerData_GetOptionsAddr(ctx->fsys->savedata);
moveRelearner->eligibleMoves = eligibleMoves;
moveRelearner->unk_19 = a1;

View File

@ -56,7 +56,7 @@ BOOL ScrCmd_GetPartyMonSpecies(SCRIPTCONTEXT *ctx) {
BOOL ScrCmd_PartymonIsMine(SCRIPTCONTEXT *ctx) {
FieldSystem *fsys = ctx->fsys;
SAVEDATA *save = Fsys_GetSaveDataPtr(fsys);
SAVEDATA *save = FieldSys_GetSaveDataPtr(fsys);
PLAYERPROFILE *profile = Sav2_PlayerData_GetProfileAddr(save);
u16 *slot = ScriptGetVarPointer(ctx);

View File

@ -209,11 +209,11 @@ static void ov01_02200DF8(SCR_648_STRUCT *unkPtr, int strNo, u16 a2, u32 a3) {
static void ov01_02200E00(SCR_648_STRUCT *unkPtr) {
u32 unk = unkPtr->totalItems;
if (unk > 8) {
AddWindowParameterized(unkPtr->fsys->bg_config, &unkPtr->window_8, 3, unkPtr->x, unkPtr->y, 11, 0x10, 13, 1);
AddWindowParameterized(unkPtr->fsys->bgConfig, &unkPtr->window_8, 3, unkPtr->x, unkPtr->y, 11, 0x10, 13, 1);
} else {
AddWindowParameterized(unkPtr->fsys->bg_config, &unkPtr->window_8, 3, unkPtr->x, unkPtr->y, 11, 2*unk, 13, 1);
AddWindowParameterized(unkPtr->fsys->bgConfig, &unkPtr->window_8, 3, unkPtr->x, unkPtr->y, 11, 2*unk, 13, 1);
}
LoadUserFrameGfx1(unkPtr->fsys->bg_config, 3, 0x3D9, 0xb, 0, 4);
LoadUserFrameGfx1(unkPtr->fsys->bgConfig, 3, 0x3D9, 0xb, 0, 4);
DrawFrameAndWindow1(&unkPtr->window_8, 1, 0x3D9, 11);
ov01_02200F54(unkPtr);
unkPtr->listMenu_23C = ListMenuInit(&unkPtr->listMenuTemplate, *unkPtr->cursorPos, *unkPtr->itemsAbove, 4);
@ -1432,7 +1432,7 @@ BOOL ScrCmd_BufferBugContestWinner(SCRIPTCONTEXT *ctx) {
msgfmt = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MSGFMT);
bugContest = FieldSys_BugContest_get(ctx->fsys);
BugContest_BufferContestWinnerNames(bugContest, ctx->msg_data, *msgfmt, *ctx->script_ptr++);
BugContest_BufferContestWinnerNames(bugContest, ctx->msgdata, *msgfmt, *ctx->script_ptr++);
return FALSE;
}

View File

@ -29,7 +29,7 @@ BOOL ScrCmd_BufferPlayersName(SCRIPTCONTEXT* ctx) {
FieldSystem* fsys = ctx->fsys;
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MSGFMT);
u8 idx = ScriptReadByte(ctx);
PLAYERPROFILE* profile = Sav2_PlayerData_GetProfileAddr(Fsys_GetSaveDataPtr(fsys));
PLAYERPROFILE* profile = Sav2_PlayerData_GetProfileAddr(FieldSys_GetSaveDataPtr(fsys));
BufferPlayersName(*msg_fmt, idx, profile);
@ -201,7 +201,7 @@ BOOL ScrCmd_BufferTrainerClassName(SCRIPTCONTEXT* ctx) {
BOOL ScrCmd_BufferPlayerUnionAvatarClassName(SCRIPTCONTEXT* ctx) {
FieldSystem* fsys = ctx->fsys;
SAVEDATA* savedata = Fsys_GetSaveDataPtr(fsys);
SAVEDATA* savedata = FieldSys_GetSaveDataPtr(fsys);
PLAYERPROFILE* profile = Sav2_PlayerData_GetProfileAddr(savedata);
MSGFMT** msg_fmt = FieldSysGetAttrAddr(fsys, SCRIPTENV_MSGFMT);
u8 idx = ScriptReadByte(ctx);

View File

@ -5,10 +5,10 @@ void InitScriptContext(SCRIPTCONTEXT* ctx, const ScrCmdFunc* cmd_table, u32 cmd_
ctx->mode = SCRIPT_MODE_STOPPED;
ctx->script_ptr = NULL;
ctx->stack_depth = 0;
ctx->stackDepth = 0;
ctx->id = 0;
ctx->native_ptr = NULL;
ctx->cmd_table = cmd_table;
ctx->cmdTable = cmd_table;
ctx->cmd_count = cmd_count;
for (i = 0; i < NELEMS(ctx->data); i++) {
@ -79,7 +79,7 @@ BOOL RunScriptCommand(SCRIPTCONTEXT* ctx) {
return FALSE;
}
ScrCmdFunc cmd = ctx->cmd_table[cmd_code];
ScrCmdFunc cmd = ctx->cmdTable[cmd_code];
if ((*cmd)(ctx) == TRUE) {
break;
}
@ -90,22 +90,22 @@ BOOL RunScriptCommand(SCRIPTCONTEXT* ctx) {
}
BOOL ScriptPush(SCRIPTCONTEXT* ctx, const u8* ptr) {
if (ctx->stack_depth + 1 >= (s32)NELEMS(ctx->stack)) {
if (ctx->stackDepth + 1 >= (s32)NELEMS(ctx->stack)) {
return TRUE;
}
ctx->stack[ctx->stack_depth] = ptr;
ctx->stack_depth++;
ctx->stack[ctx->stackDepth] = ptr;
ctx->stackDepth++;
return FALSE;
}
const u8* ScriptPop(SCRIPTCONTEXT* ctx) {
if (ctx->stack_depth == 0) {
if (ctx->stackDepth == 0) {
return NULL;
}
return ctx->stack[--ctx->stack_depth];
return ctx->stack[--ctx->stackDepth];
}
void ScriptJump(SCRIPTCONTEXT* ctx, const u8* ptr) {

View File

@ -91,7 +91,7 @@ static BOOL Task_RunApplicationUntilComplete(TaskManager *taskManager) {
switch (env->state) {
case 0:
Fsys_LaunchApplication(fsys, env->template, env->work);
FieldSys_LaunchApplication(fsys, env->template, env->work);
env->state++;
break;
case 1:

View File

@ -12,14 +12,14 @@ static const FieldSystemFunc1 _020FE1EC[];
static const FieldSystemFunc2 _020FE23C[];
void sub_020648EC(FieldSystem* fsys) {
int gymmickType = SavGymmick_GetType(Sav2_GetGymmickPtr(Fsys_GetSaveDataPtr(fsys)));
int gymmickType = SavGymmick_GetType(Sav2_GetGymmickPtr(FieldSys_GetSaveDataPtr(fsys)));
if (gymmickType != GYMMICK_NONE) {
_020FE214[gymmickType](fsys);
}
}
void sub_02064910(FieldSystem* fsys) {
int gymmickType = SavGymmick_GetType(Sav2_GetGymmickPtr(Fsys_GetSaveDataPtr(fsys)));
int gymmickType = SavGymmick_GetType(Sav2_GetGymmickPtr(FieldSys_GetSaveDataPtr(fsys)));
if (gymmickType) {
FieldSystemFunc1 func = _020FE1EC[gymmickType];
if (func != NULL) {
@ -29,7 +29,7 @@ void sub_02064910(FieldSystem* fsys) {
}
BOOL sub_02064938(FieldSystem *fsys, u32 a1, u32 a2, u32 a3, u32 a4) {
int gymmickType = SavGymmick_GetType(Sav2_GetGymmickPtr(Fsys_GetSaveDataPtr(fsys)));
int gymmickType = SavGymmick_GetType(Sav2_GetGymmickPtr(FieldSys_GetSaveDataPtr(fsys)));
if (gymmickType == GYMMICK_NONE) return FALSE;
FieldSystemFunc2 func = _020FE23C[gymmickType];

View File

@ -4,7 +4,7 @@
#include "map_header.h"
#include "scrcmd.h"
#include "unk_02054E00.h"
#include "unk_0203DE74.h"
#include "field_system.h"
#include "unk_0206D494.h"
#include "sys_vars.h"
#include "overlay_02.h"
@ -52,7 +52,7 @@ static void sub_02092BE8(FieldSystem* sys, Unk_PokegearSTRUCT_2C* ptr, BOOL a2)
MapMatrix_Free(matrix);
}
ptr->playerGender = PlayerProfile_GetTrainerGender(Sav2_PlayerData_GetProfileAddr(Fsys_GetSaveDataPtr(sys)));
ptr->playerGender = PlayerProfile_GetTrainerGender(Sav2_PlayerData_GetProfileAddr(FieldSys_GetSaveDataPtr(sys)));
ptr->unk28 = &sys->unk_10C;
ptr->unk01 = sub_0203DF3C(sys);
ptr->mapMusicID = Fsys_GetSurfOverriddenMusicId(sys, ptr->mapID);
@ -97,8 +97,8 @@ GearPhoneRingManager* GearPhoneRingManager_new(HeapID heapId, FieldSystem* sys)
ptr->unk_var10 = 30;
ptr->unk_var12 = 50;
ptr->saveData = sys->savedata;
ptr->pokegear_data = SaveData_GSPlayerMisc_get(ptr->saveData);
ptr->savings_data = SaveData_GetMomsSavingsAddr(ptr->saveData);
ptr->pokegearData = SaveData_GSPlayerMisc_get(ptr->saveData);
ptr->savingsData = SaveData_GetMomsSavingsAddr(ptr->saveData);
ptr->sys = sys;
return ptr;
}
@ -126,7 +126,7 @@ PhoneBookEntry* sub_02092E10(GearPhoneRingManager* ptr) {
}
void sub_02092E14(GearPhoneRingManager* ptr, u8 a1, BOOL a2) {
sub_0202F01C(ptr->savings_data, a1);
sub_0202F01C(ptr->savingsData, a1);
if (a2) {
if (ptr->unk_var8 < ptr->unk_varC - 1) {
ptr->unk_var8 = ptr->unk_varC - 1;
@ -152,7 +152,7 @@ static void sub_02092E54(GearPhoneRingManager* ptr) {
u8 var4057 = ScriptState_GetVar4057(state);
u8 i;
for (i = 0; i < 5; i++) {
if (sub_0202F08C(ptr->savings_data, i + 7)) {
if (sub_0202F08C(ptr->savingsData, i + 7)) {
return;
}
}