Merge branch 'master' into doc-cinnabar

This commit is contained in:
GriffinR
2020-01-19 17:00:39 -05:00
committed by GitHub
57 changed files with 3414 additions and 8469 deletions
-7021
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -22001,7 +22001,7 @@ GetItemIconPic: @ 8096674
lsls r0, 16
lsrs r0, 16
movs r1, 0
bl sub_8098974
bl GetItemIconGfxPtr
pop {r1}
bx r1
thumb_func_end GetItemIconPic
@@ -22012,7 +22012,7 @@ GetItemIconPalette: @ 8096684
lsls r0, 16
lsrs r0, 16
movs r1, 0x1
bl sub_8098974
bl GetItemIconGfxPtr
pop {r1}
bx r1
thumb_func_end GetItemIconPalette
-595
View File
@@ -1,595 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_80F50F4
sub_80F50F4: @ 80F50F4
ldr r1, _080F50FC @ =gUnknown_3005430
movs r0, 0
str r0, [r1]
bx lr
.align 2, 0
_080F50FC: .4byte gUnknown_3005430
thumb_func_end sub_80F50F4
thumb_func_start DoSaveFailedScreen
DoSaveFailedScreen: @ 80F5100
lsls r0, 24
lsrs r0, 24
ldr r1, _080F5110 @ =gUnknown_203AB4C
strh r0, [r1]
ldr r1, _080F5114 @ =gUnknown_3005430
movs r0, 0x1
str r0, [r1]
bx lr
.align 2, 0
_080F5110: .4byte gUnknown_203AB4C
_080F5114: .4byte gUnknown_3005430
thumb_func_end DoSaveFailedScreen
thumb_func_start sub_80F5118
sub_80F5118: @ 80F5118
push {lr}
ldr r0, _080F5130 @ =gUnknown_203AB50
ldrb r1, [r0]
adds r2, r0, 0
cmp r1, 0x8
bls _080F5126
b _080F52D6
_080F5126:
lsls r0, r1, 2
ldr r1, _080F5134 @ =_080F5138
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080F5130: .4byte gUnknown_203AB50
_080F5134: .4byte _080F5138
.align 2, 0
_080F5138:
.4byte _080F515C
.4byte _080F5190
.4byte _080F51B4
.4byte _080F51E4
.4byte _080F5204
.4byte _080F5240
.4byte _080F5280
.4byte _080F5298
.4byte _080F52B4
_080F515C:
ldr r0, _080F5168 @ =gUnknown_3005430
ldr r0, [r0]
cmp r0, 0
bne _080F516C
movs r0, 0
b _080F52D8
.align 2, 0
_080F5168: .4byte gUnknown_3005430
_080F516C:
ldr r0, _080F5184 @ =gMPlayInfo_BGM
ldr r1, _080F5188 @ =0x0000ffff
movs r2, 0x80
bl m4aMPlayVolumeControl
bl SaveCallbacks
ldr r1, _080F518C @ =gUnknown_203AB50
movs r0, 0x1
strb r0, [r1]
b _080F52D6
.align 2, 0
_080F5184: .4byte gMPlayInfo_BGM
_080F5188: .4byte 0x0000ffff
_080F518C: .4byte gUnknown_203AB50
_080F5190:
bl SaveMapTiles
bl SaveMapGPURegs
bl SaveMapTextColors
bl sub_80F52EC
movs r0, 0
movs r1, 0
bl SetGpuReg
ldr r1, _080F51B0 @ =gUnknown_203AB50
movs r0, 0x2
strb r0, [r1]
b _080F52D6
.align 2, 0
_080F51B0: .4byte gUnknown_203AB50
_080F51B4:
ldr r1, _080F51D8 @ =0x0600c000
movs r2, 0x80
lsls r2, 7
movs r0, 0
movs r3, 0
bl RequestDma3Fill
ldr r0, _080F51DC @ =gUnknown_841EE44
movs r1, 0xA0
lsls r1, 19
movs r2, 0x20
movs r3, 0
bl RequestDma3Copy
ldr r1, _080F51E0 @ =gUnknown_203AB50
movs r0, 0x3
strb r0, [r1]
b _080F52D6
.align 2, 0
_080F51D8: .4byte 0x0600c000
_080F51DC: .4byte gUnknown_841EE44
_080F51E0: .4byte gUnknown_203AB50
_080F51E4:
bl sub_80F53E8
ldr r0, _080F51FC @ =gUnknown_8418C83
bl sub_80F5404
bl sub_80F53CC
ldr r1, _080F5200 @ =gUnknown_203AB50
movs r0, 0x4
strb r0, [r1]
b _080F52D6
.align 2, 0
_080F51FC: .4byte gUnknown_8418C83
_080F5200: .4byte gUnknown_203AB50
_080F5204:
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x10
movs r1, 0
bl SetGpuReg
movs r0, 0x12
movs r1, 0
bl SetGpuReg
ldr r1, _080F5238 @ =0x00001f0c
movs r0, 0x8
bl SetGpuReg
movs r1, 0x80
lsls r1, 1
movs r0, 0
bl SetGpuReg
ldr r1, _080F523C @ =gUnknown_203AB50
movs r0, 0x5
strb r0, [r1]
b _080F52D6
.align 2, 0
_080F5238: .4byte 0x00001f0c
_080F523C: .4byte gUnknown_203AB50
_080F5240:
bl sub_80F5458
adds r1, r0, 0
cmp r1, 0x1
bne _080F5260
ldr r0, _080F5258 @ =gSaveSucceeded
strh r1, [r0]
ldr r0, _080F525C @ =gUnknown_8418E09
bl sub_80F5404
b _080F526C
.align 2, 0
_080F5258: .4byte gSaveSucceeded
_080F525C: .4byte gUnknown_8418E09
_080F5260:
ldr r0, _080F5274 @ =gSaveSucceeded
movs r1, 0xFF
strh r1, [r0]
ldr r0, _080F5278 @ =gUnknown_8418CD9
bl sub_80F5404
_080F526C:
ldr r1, _080F527C @ =gUnknown_203AB50
movs r0, 0x6
strb r0, [r1]
b _080F52D6
.align 2, 0
_080F5274: .4byte gSaveSucceeded
_080F5278: .4byte gUnknown_8418CD9
_080F527C: .4byte gUnknown_203AB50
_080F5280:
ldr r0, _080F5294 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080F52D6
movs r0, 0x7
strb r0, [r2]
b _080F52D6
.align 2, 0
_080F5294: .4byte gMain
_080F5298:
movs r0, 0
movs r1, 0
bl SetGpuReg
bl RestoreMapTiles
bl sub_80F52EC
ldr r1, _080F52B0 @ =gUnknown_203AB50
movs r0, 0x8
strb r0, [r1]
b _080F52D6
.align 2, 0
_080F52B0: .4byte gUnknown_203AB50
_080F52B4:
ldr r0, _080F52DC @ =gMPlayInfo_BGM
ldr r1, _080F52E0 @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
bl m4aMPlayVolumeControl
bl RestoreMapTextColors
bl RestoreGPURegs
bl RestoreCallbacks
ldr r0, _080F52E4 @ =gUnknown_3005430
movs r1, 0
str r1, [r0]
ldr r0, _080F52E8 @ =gUnknown_203AB50
strb r1, [r0]
_080F52D6:
movs r0, 0x1
_080F52D8:
pop {r1}
bx r1
.align 2, 0
_080F52DC: .4byte gMPlayInfo_BGM
_080F52E0: .4byte 0x0000ffff
_080F52E4: .4byte gUnknown_3005430
_080F52E8: .4byte gUnknown_203AB50
thumb_func_end sub_80F5118
thumb_func_start sub_80F52EC
sub_80F52EC: @ 80F52EC
push {r4,r5,lr}
movs r1, 0
ldr r5, _080F5310 @ =0x000001ff
movs r4, 0xA0
lsls r4, 19
movs r2, 0
ldr r3, _080F5314 @ =0x05000200
_080F52FA:
adds r0, r1, r4
strh r2, [r0]
adds r0, r1, r3
strh r2, [r0]
adds r1, 0x2
cmp r1, r5
ble _080F52FA
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080F5310: .4byte 0x000001ff
_080F5314: .4byte 0x05000200
thumb_func_end sub_80F52EC
thumb_func_start sub_80F5318
sub_80F5318: @ 80F5318
push {lr}
ldr r0, _080F532C @ =gDecompressionBuffer + 0x3800
ldr r1, _080F5330 @ =0x0600f800
movs r2, 0xA0
lsls r2, 3
movs r3, 0
bl RequestDma3Copy
pop {r0}
bx r0
.align 2, 0
_080F532C: .4byte gDecompressionBuffer + 0x3800
_080F5330: .4byte 0x0600f800
thumb_func_end sub_80F5318
thumb_func_start sub_80F5334
sub_80F5334: @ 80F5334
push {lr}
ldr r0, _080F5348 @ =gDecompressionBuffer + 0x020
ldr r1, _080F534C @ =0x0600c020
movs r2, 0x8C
lsls r2, 6
movs r3, 0
bl RequestDma3Copy
pop {r0}
bx r0
.align 2, 0
_080F5348: .4byte gDecompressionBuffer + 0x020
_080F534C: .4byte 0x0600c020
thumb_func_end sub_80F5334
thumb_func_start sub_80F5350
sub_80F5350: @ 80F5350
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r4, [sp, 0x20]
ldr r5, [sp, 0x24]
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 24
lsrs r1, 24
mov r9, r1
lsls r2, 24
lsls r3, 24
lsrs r3, 24
mov r8, r3
lsls r4, 24
lsrs r4, 24
lsls r5, 16
lsrs r7, r5, 16
lsrs r0, r2, 24
adds r2, r0, r4
cmp r0, r2
bge _080F53B6
mov r12, r2
ldr r1, _080F53C8 @ =gDecompressionBuffer + 0x3800
mov r10, r1
_080F5386:
mov r4, r9
mov r2, r8
adds r1, r4, r2
adds r3, r0, 0x1
cmp r4, r1
bge _080F53AE
lsls r2, r0, 6
mov r5, r10
_080F5396:
lsls r0, r4, 1
adds r0, r2, r0
adds r0, r5
strh r6, [r0]
adds r0, r6, r7
lsls r0, 16
lsrs r6, r0, 16
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, r1
blt _080F5396
_080F53AE:
lsls r0, r3, 16
lsrs r0, 16
cmp r0, r12
blt _080F5386
_080F53B6:
bl sub_80F5318
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080F53C8: .4byte gDecompressionBuffer + 0x3800
thumb_func_end sub_80F5350
thumb_func_start sub_80F53CC
sub_80F53CC: @ 80F53CC
push {lr}
sub sp, 0x8
movs r0, 0xA
str r0, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
movs r1, 0x1
movs r2, 0x5
movs r3, 0x1C
bl sub_80F5350
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_80F53CC
thumb_func_start sub_80F53E8
sub_80F53E8: @ 80F53E8
push {lr}
sub sp, 0x8
movs r0, 0x14
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
movs r1, 0
movs r2, 0
movs r3, 0x1E
bl sub_80F5350
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_80F53E8
thumb_func_start sub_80F5404
sub_80F5404: @ 80F5404
push {r4,r5,lr}
sub sp, 0x10
adds r5, r0, 0
movs r0, 0x2
movs r1, 0x1
movs r2, 0x3
bl GenerateFontHalfRowLookupTable
add r1, sp, 0xC
ldr r2, _080F544C @ =0x00001111
adds r0, r2, 0
strh r0, [r1]
ldr r4, _080F5450 @ =gDecompressionBuffer + 0x020
ldr r2, _080F5454 @ =0x01001180
adds r0, r1, 0
adds r1, r4, 0
bl CpuSet
movs r0, 0x2
str r0, [sp]
movs r0, 0x1C
str r0, [sp, 0x4]
movs r0, 0xA
str r0, [sp, 0x8]
movs r0, 0x2
adds r1, r4, 0
adds r2, r5, 0
movs r3, 0x2
bl HelpSystemRenderText
bl sub_80F5334
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080F544C: .4byte 0x00001111
_080F5450: .4byte gDecompressionBuffer + 0x020
_080F5454: .4byte 0x01001180
thumb_func_end sub_80F5404
thumb_func_start sub_80F5458
sub_80F5458: @ 80F5458
push {r4,r5,lr}
movs r5, 0
ldr r0, _080F5490 @ =gDamagedSaveSectors
ldr r1, [r0]
adds r4, r0, 0
cmp r1, 0
beq _080F548C
_080F5466:
ldr r0, [r4]
bl sub_80F5540
cmp r0, 0
bne _080F5498
ldr r0, _080F5494 @ =gUnknown_203AB4C
ldrb r0, [r0]
bl HandleSavingData
adds r5, 0x1
ldr r0, [r4]
cmp r0, 0
beq _080F548C
ldr r4, _080F5490 @ =gDamagedSaveSectors
cmp r5, 0x2
ble _080F5466
ldr r0, [r4]
cmp r0, 0
bne _080F5498
_080F548C:
movs r0, 0x1
b _080F549A
.align 2, 0
_080F5490: .4byte gDamagedSaveSectors
_080F5494: .4byte gUnknown_203AB4C
_080F5498:
movs r0, 0
_080F549A:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80F5458
thumb_func_start VerifySectorWipe
VerifySectorWipe: @ 80F54A0
push {r4,lr}
lsls r0, 16
lsrs r0, 16
ldr r4, _080F54C4 @ =gSaveDataBuffer
movs r3, 0x80
lsls r3, 5
movs r1, 0
adds r2, r4, 0
bl ReadFlash
movs r1, 0
ldr r2, _080F54C8 @ =0x000003ff
_080F54B8:
ldr r0, [r4]
cmp r0, 0
beq _080F54CC
movs r0, 0x1
b _080F54DA
.align 2, 0
_080F54C4: .4byte gSaveDataBuffer
_080F54C8: .4byte 0x000003ff
_080F54CC:
adds r0, r1, 0x1
lsls r0, 16
lsrs r1, r0, 16
adds r4, 0x4
cmp r1, r2
bls _080F54B8
movs r0, 0
_080F54DA:
pop {r4}
pop {r1}
bx r1
thumb_func_end VerifySectorWipe
thumb_func_start WipeSector
WipeSector: @ 80F54E0
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r7, r0, 0
movs r0, 0
lsls r6, r7, 16
ldr r1, _080F5538 @ =ProgramFlashByte
mov r9, r1
ldr r1, _080F553C @ =0x00000fff
mov r8, r1
_080F54F6:
movs r4, 0
adds r5, r0, 0x1
_080F54FA:
mov r0, r9
ldr r3, [r0]
lsrs r0, r6, 16
adds r1, r4, 0
movs r2, 0
bl _call_via_r3
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, r8
bls _080F54FA
adds r0, r7, 0
bl VerifySectorWipe
lsls r0, 16
lsrs r1, r0, 16
lsls r0, r5, 16
lsrs r0, 16
cmp r1, 0
beq _080F5528
cmp r0, 0x81
bls _080F54F6
_080F5528:
adds r0, r1, 0
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080F5538: .4byte ProgramFlashByte
_080F553C: .4byte 0x00000fff
thumb_func_end WipeSector
thumb_func_start sub_80F5540
sub_80F5540: @ 80F5540
push {r4-r6,lr}
adds r5, r0, 0
movs r6, 0
_080F5546:
movs r4, 0x1
lsls r4, r6
adds r0, r5, 0
ands r0, r4
cmp r0, 0
beq _080F555E
adds r0, r6, 0
bl WipeSector
cmp r0, 0
bne _080F555E
bics r5, r4
_080F555E:
adds r6, 0x1
cmp r6, 0x1F
ble _080F5546
cmp r5, 0
beq _080F556C
movs r0, 0x1
b _080F556E
_080F556C:
movs r0, 0
_080F556E:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80F5540
.align 2, 0 @ Don't pad with nop.
+3
View File
@@ -1 +1,4 @@
gUnknown_3005E88
sNumQuestLogs
gUnknown_3005E90
gUnknown_3005E94
+1
View File
@@ -0,0 +1 @@
sIsInSaveFailedScreen
+1 -1
View File
@@ -1502,7 +1502,7 @@ EventScript_1A778C:: @ 81A778C
releaseall
end
gUnknown_81A77A0:: @ 81A77A0
EventScript_BagItemCanBeRegistered:: @ 81A77A0
msgbox Text_BagItemCanBeRegistered, MSGBOX_SIGN
end
+4 -4
View File
@@ -13476,7 +13476,7 @@ gTrainerBackPic_Leaf:: @ 8E6C6BC
.incbin "graphics/trainers/back_pics/leaf_back_pic.4bpp"
.align 2
gTrainerBackPic_PokeDude:: @ 8E6EEBC
gTrainerBackPic_Pokedude:: @ 8E6EEBC
.incbin "graphics/trainers/back_pics/pokedude_back_pic.4bpp"
.align 2
@@ -13500,7 +13500,7 @@ gTrainerPalette_LeafBackPic:: @ 8E76EE4
.incbin "graphics/trainers/palettes/red_back_pic.gbapal.lz"
.align 2
gTrainerPalette_PokeDudeBackPic:: @ 8E76F0C
gTrainerPalette_PokedudeBackPic:: @ 8E76F0C
.incbin "graphics/trainers/palettes/pokedude_back_pic.gbapal.lz"
.align 2
@@ -14004,11 +14004,11 @@ gUnknown_8E83444:: @ 8E83444
.incbin "graphics/item_menu/bag_tilemap2.bin.lz" @ PC deposit items
.align 2
gUnknown_8E835B4:: @ 8E835B4
gBagBgPalette:: @ 8E835B4
.incbin "graphics/item_menu/bag_pal1.gbapal.lz" @ palette 1 (Boy + misc Pal)
.align 2
gUnknown_8E83604:: @ 8E83604
gBagBgPalette_FemaleOverride:: @ 8E83604
.incbin "graphics/item_menu/bag_pal2.gbapal.lz" @ palette 2 (Girl)
gUnknown_8E8362C:: @ 8E8362C
-116
View File
@@ -1,116 +0,0 @@
#include "constants/region_map.h"
#include "constants/flags.h"
#include "constants/moves.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnknown_8452CF4:: @ 8452CF4
.4byte 0x000001f0
@ {
@ .bg = 0,
@ .charBaseIndex = 0,
@ .mapBaseIndex = 31,
@ .screenSize = 0,
@ .paletteMode = 0,
@ .priority = 0,
@ .baseTile = 0x0000
@ }
.4byte 0x000011ed
@ {
@ .bg = 1,
@ .charBaseIndex = 3,
@ .mapBaseIndex = 30,
@ .screenSize = 0,
@ .paletteMode = 0,
@ .priority = 1,
@ .baseTile = 0x0000
@ }
gUnknown_8452CFC:: @ 8452CFC
.4byte gUnknown_84162CD
.4byte gUnknown_84162DE
.4byte gUnknown_84162D3
gUnknown_8452D08:: @ 8452D08
.incbin "graphics/item_menu/bagmap_0.bin"
.incbin "graphics/item_menu/bagmap_1.bin"
.incbin "graphics/item_menu/bagmap_2.bin"
.incbin "graphics/item_menu/bagmap_3.bin"
.incbin "graphics/item_menu/bagmap_4.bin"
.incbin "graphics/item_menu/bagmap_5.bin"
.incbin "graphics/item_menu/bagmap_6.bin"
.incbin "graphics/item_menu/bagmap_7.bin"
.incbin "graphics/item_menu/bagmap_8.bin"
.incbin "graphics/item_menu/bagmap_9.bin"
.incbin "graphics/item_menu/bagmap_A.bin"
.incbin "graphics/item_menu/bagmap_B.bin"
gUnknown_8452EB8:: @ 8452EB8
.4byte gOtherText_Use, sub_8109C50
.4byte gOtherText_Toss, sub_8109CC0
.4byte gUnknown_84161A9, sub_810A000
.4byte gOtherText_Give, sub_810A0A8
.4byte gFameCheckerText_Cancel, sub_810A2DC
.4byte gOtherText_Use, sub_810A324
.4byte gUnknown_84161E9, sub_8109C50
.4byte gUnknown_84161F4, sub_8109C50
.4byte gUnknown_84161F4, sub_810A324
.4byte gUnknown_84161BC, sub_8109C50
.4byte gUnknown_84161F9, sub_810A000
.4byte gString_Dummy, NULL
gUnknown_8452F18:: @ 8452F18
.byte 0x00, 0x03, 0x01, 0x04
.byte 0x00, 0x02, 0x04, 0x0b
.byte 0x03, 0x01, 0x04, 0x0b
gUnknown_8452F24:: @ 8452F24
.byte 0x06, 0x03, 0x01, 0x04
gUnknown_8452F28:: @ 8452F28
.byte 0x03, 0x04
.byte 0x04, 0x0b
.byte 0x03, 0x04
gUnknown_8452F2E:: @ 8452F2E
.byte 0x07, 0x04
gUnknown_8452F30:: @ 8452F30
.byte 0x05, 0x04
gUnknown_8452F32:: @ 8452F32
.byte 0x04, 0x0b
gUnknown_8452F34:: @ 8452F34
.4byte sub_8109BB8
.4byte sub_810A370
.4byte sub_810A568
.4byte sub_810AB40
.4byte sub_810A468
.4byte sub_8109BB8
.4byte NULL
gUnknown_8452F50:: @ 8452F50
.4byte sub_8109EA8
.4byte sub_8109DB0
gUnknown_8452F58:: @ 8452F58
.4byte sub_810A940
.4byte sub_810A720
gUnknown_8452F60:: @ 8452F60
.string "{COLOR_HIGHLIGHT_SHADOW RED TRANSPARENT GREEN}$"
gUnknown_8452F66:: @ 8452F66
.string "{COLOR_HIGHLIGHT_SHADOW LIGHT_GRAY TRANSPARENT BLACK}$"
gUnknown_8452F6C:: @ 8452F6C
.byte 0, 8, 72, 1, 72, 72
.2byte 0, 2, 111, 111
.byte 0
.align 2
gUnknown_8452F7C:: @ 8452F7C
.incbin "graphics/interface/select_button.4bpp"
-10
View File
@@ -1,10 +0,0 @@
#include "constants/region_map.h"
#include "constants/flags.h"
#include "constants/moves.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnknown_841EE44:: @ 841EE44
.incbin "graphics/interface/save_failed_screen.gbapal"
+16 -16
View File
@@ -411,7 +411,7 @@ gOtherText_Use::
gOtherText_Toss::
.string "TOSS$"
gUnknown_84161A9::
gOtherText_Register::
.string "REGISTER$"
gOtherText_Give::
@@ -420,7 +420,7 @@ gOtherText_Give::
gUnknown_84161B7::
.string "$"
gUnknown_84161BC::
gOtherText_Walk::
.string "WALK$"
gFameCheckerText_Cancel:: @ 84161C1
@@ -447,16 +447,16 @@ gText_Take::
gText_Store::
.string "STORE$"
gUnknown_84161E9::
gOtherText_Check::
.string "CHECK$"
gUnknown_84161EF:: @ 84161EF
.string "NONE$"
gUnknown_84161F4::
gOtherText_Open::
.string "OPEN$"
gUnknown_84161F9::
gOtherText_Deselect::
.string "DESELECT$"
gUnknown_8416202:: @ 8416202
@@ -555,19 +555,19 @@ gUnknown_84162BD:: @ 84162BD
gText_Coins:: @ 84162C4
.string "{STR_VAR_1} COINS$"
gUnknown_84162CD:: @ 0x84162CD
gText_Items2:: @ 0x84162CD
.string "ITEMS$"
gUnknown_84162D3:: @ 0x84162D3
gText_PokeBalls2:: @ 0x84162D3
.string "POKé BALLS$"
gUnknown_84162DE:: @ 0x84162DE
gText_KeyItems2:: @ 0x84162DE
.string "KEY ITEMS$"
gText_DepositItem:: @ 84162E8
.string "DEPOSIT ITEM$"
gUnknown_84162F5:: @ 84162F5
gText_CloseBag:: @ 84162F5
.string "CLOSE BAG$"
gOtherText_StrVar1:: @ 84162FF
@@ -577,7 +577,7 @@ gText_IsSelected:: @ 8416301
.string " is\n"
.string "selected.$"
gUnknown_841630F:: @ 841630F
gText_CantWriteMailHere:: @ 841630F
.string "You can't write\n"
.string "MAIL here.$"
@@ -596,15 +596,15 @@ gText_TheStrVar1CantBeHeldHere:: @ 8416374
.string "The {STR_VAR_1} can't be held\n"
.string "here.$"
gUnknown_841638F:: @ 841638F
gText_DepositHowManyStrVars1:: @ 841638F
.string "Deposit how many\n"
.string "{STR_VAR_1}(s)?$"
gUnknown_84163A7:: @ 84163A7
gText_DepositedStrVar2StrVar1s:: @ 84163A7
.string "Deposited {STR_VAR_2}\n"
.string "{STR_VAR_1}(s).$"
gUnknown_84163BB:: @ 84163BB
gText_NoRoomToStoreItems:: @ 84163BB
.string "There's no room to\n"
.string "store items.$"
@@ -2465,14 +2465,14 @@ gUnknown_8418C62:: @ 0x8418C62
gUnknown_8418C6F:: @ 0x8418C6F
.string " $"
gUnknown_8418C83:: @ 8418C83
gText_SaveFailedScreen_CheckingBackupMemory:: @ 8418C83
.string "Save failed.\n"
.string "Checking the backup memory\n"
.string "Please wait.\n"
.string "Time required:\n"
.string "about 1 minute$"
gUnknown_8418CD9:: @ 8418CD9
gText_SaveFailedScreen_BackupMemoryDamaged:: @ 8418CD9
.string "The backup memory is damaged or\n"
.string "the game's battery has run dry.\n"
.string "The game can be played, but its\n"
@@ -2493,7 +2493,7 @@ gUnknown_8418DC9:: @ 0x8418DC9
.string "{COLOR RED} \n"
.string " $"
gUnknown_8418E09:: @ 8418E09
gText_SaveFailedScreen_SaveCompleted:: @ 8418E09
.string "Save completed.\n"
.string "Please press the A Button.$"
+3 -3
View File
@@ -19,7 +19,7 @@ gTeachyTvString_RegisterItem:: @ 841B81B
gTeachyTvString_Cancel:: @ 841B836
.string "CANCEL$"
gTeachyTvText_PokeDudeSaysHello:: @ 841B83D
gTeachyTvText_PokedudeSaysHello:: @ 841B83D
.string "Hey, all you TRAINERS out there!\n"
.string "HELLO, TRAINERS!\p"
.string "……… ……… ………\p"
@@ -164,7 +164,7 @@ gTeachyTvText_TMsScript1:: @ 841C459
.string "You can check them out in detail,\n"
.string "too.$"
gPokeDudeText_TMTypes:: @ 841C587
gPokedudeText_TMTypes:: @ 841C587
.string "POKé DUDE: NORMAL, WATER, GRASS…\n"
.string "TMs also come in types.\p"
.string "Check the type and teach it to\n"
@@ -175,7 +175,7 @@ gPokeDudeText_TMTypes:: @ 841C587
.string "GRASS-type POKéMON can learn.\p"
.string "There's one other thing!$"
gPokeDudeText_ReadTMDescription:: @ 841C693
gPokedudeText_ReadTMDescription:: @ 841C693
.string "Don't just look at the type, read\n"
.string "the description, too.\p"
.string "It will contain hints about what\n"
+15 -13
View File
@@ -1,18 +1,20 @@
#ifndef GUARD_BAG_H
#define GUARD_BAG_H
void sub_810B858(void);
void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 colorIdx);
void sub_810B958(const u8 * str);
void sub_810B994(void);
u8 sub_810B9DC(u8 a0, u8 a1);
void sub_810BA3C(u8 a0);
u8 sub_810BA70(u8 a0);
void sub_810BA9C(u8 a0);
u8 sub_810BAD8(u8 a0);
void sub_810BAE8(u8 taskId, const struct YesNoFuncTable * ptrs);
void sub_810BB14(u8 taskId, const struct YesNoFuncTable * ptrs);
void sub_810BB40(void);
void sub_810BB74(u8 windowId);
#include "menu_helpers.h"
void InitBagWindows(void);
void BagPrintTextOnWindow(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx);
void BagPrintTextOnWin1CenteredColor0(const u8 * str, u8 unused);
void BagDrawDepositItemTextBox(void);
u8 ShowBagWindow(u8 whichWindow, u8 nItems);
void HideBagWindow(u8 whichWindow);
u8 OpenBagWindow(u8 whichWindow);
void CloseBagWindow(u8 whichWindow);
u8 GetBagWindow(u8 whichWindow);
void BagCreateYesNoMenuBottomRight(u8 taskId, const struct YesNoFuncTable * ptrs);
void BagCreateYesNoMenuTopRight(u8 taskId, const struct YesNoFuncTable * ptrs);
void BagPrintMoneyAmount(void);
void BagDrawTextBoxOnWindow(u8 windowId);
#endif //GUARD_BAG_H
+1
View File
@@ -2,6 +2,7 @@
#define GUARD_BATTLE_CONTROLLERS_H
#include "global.h"
#include "battle.h"
enum
{
+35
View File
@@ -0,0 +1,35 @@
#ifndef GUARD_CONSTANTS_ITEM_MENU_H
#define GUARD_CONSTANTS_ITEM_MENU_H
#define OPEN_BAG_ITEMS 0
#define OPEN_BAG_KEYITEMS 1
#define OPEN_BAG_POKEBALLS 2
#define OPEN_BAG_LAST 3
#define ITEMMENULOCATION_FIELD 0
#define ITEMMENULOCATION_PARTY 1
#define ITEMMENULOCATION_SHOP 2
#define ITEMMENULOCATION_ITEMPC 3
#define ITEMMENULOCATION_PCBOX 4
#define ITEMMENULOCATION_BATTLE 5
#define ITEMMENULOCATION_OLD_MAN 6
#define ITEMMENULOCATION_TTVSCR_STATUS 7
#define ITEMMENULOCATION_TTVSCR_CATCHING 8
#define ITEMMENULOCATION_TTVSCR_REGISTER 9
#define ITEMMENULOCATION_TTVSCR_TMS 10
#define ITEMMENULOCATION_LAST 11
#define ITEMMENUACTION_USE 0
#define ITEMMENUACTION_TOSS 1
#define ITEMMENUACTION_REGISTER 2
#define ITEMMENUACTION_GIVE 3
#define ITEMMENUACTION_CANCEL 4
#define ITEMMENUACTION_BATTLE_USE 5
#define ITEMMENUACTION_CHECK 6
#define ITEMMENUACTION_OPEN 7
#define ITEMMENUACTION_OPEN_BERRIES 8
#define ITEMMENUACTION_WALK 9
#define ITEMMENUACTION_DESELECT 10
#define ITEMMENUACTION_DUMMY 11
#endif //GUARD_CONSTANTS_ITEM_MENU_H
+1 -1
View File
@@ -57,7 +57,7 @@ extern const struct SpriteFrameImage gUnknown_82346D8[];
extern const struct SpriteFrameImage gUnknown_82346F8[];
extern const struct SpriteFrameImage gTrainerBackPicTable_Red[];
extern const struct SpriteFrameImage gTrainerBackPicTable_Leaf[];
extern const struct SpriteFrameImage gTrainerBackPicTable_PokeDude[];
extern const struct SpriteFrameImage gTrainerBackPicTable_Pokedude[];
extern const struct SpriteFrameImage gTrainerBackPicTable_OldMan[];
extern const struct SpriteFrameImage gTrainerBackPicTable_RSBrendan[];
extern const struct SpriteFrameImage gTrainerBackPicTable_RSMay[];
+2
View File
@@ -1195,4 +1195,6 @@ extern const u8 Text_MonSentToBoxInBillsPC[];
extern const u8 Text_MonSentToBoxSomeonesBoxFull[];
extern const u8 Text_MonSentToBoxBillsBoxFull[];
extern const u8 EventScript_BagItemCanBeRegistered[];
#endif //GUARD_EVENT_SCRIPTS_H
+18
View File
@@ -0,0 +1,18 @@
#ifndef GUARD_GFLIB_H
#define GUARD_GFLIB_H
#include "global.h"
#include "bg.h"
#include "palette.h"
#include "gpu_regs.h"
#include "dma3.h"
#include "malloc.h"
#include "sound.h"
#include "text.h"
#include "sprite.h"
#include "window.h"
#include "blit.h"
#include "string_util.h"
#endif //GUARD_GFLIB_H
+9 -6
View File
@@ -1,7 +1,3 @@
//
// Created by scott on 10/21/2017.
//
#ifndef GUARD_GRAPHICS_H
#define GUARD_GRAPHICS_H
@@ -2656,7 +2652,7 @@ extern const u32 gTrainerPalette_RSBrendan1[];
extern const u32 gTrainerPalette_RSMay1[];
extern const u32 gTrainerPalette_LeafBackPic[];
extern const u32 gTrainerPalette_RedBackPic[];
extern const u32 gTrainerPalette_PokeDudeBackPic[];
extern const u32 gTrainerPalette_PokedudeBackPic[];
extern const u32 gTrainerPalette_OldManBackPic[];
extern const u32 gTrainerPalette_PokemonBreederM[];
extern const u32 gTrainerPalette_RSPokemonBreederF[];
@@ -4358,7 +4354,7 @@ extern const u8 gBerryPouchBg1Tilemap[];
extern const u8 gTrainerBackPic_Red[];
extern const u8 gTrainerBackPic_Leaf[];
extern const u8 gTrainerBackPic_PokeDude[];
extern const u8 gTrainerBackPic_Pokedude[];
extern const u8 gTrainerBackPic_OldMan[];
extern const u8 gTrainerBackPic_RSBrendan[];
extern const u8 gTrainerBackPic_RSMay[];
@@ -4861,4 +4857,11 @@ extern const u16 gBattleInterface_BallStatusBarPal[];
extern const u16 gBattleInterface_BallDisplayPal[];
extern const u16 gUnknown_8D12404[];
// item_menu
extern const u32 gUnknown_8E830CC[];
extern const u32 gUnknown_8E832C0[];
extern const u32 gUnknown_8E83444[];
extern const u32 gBagBgPalette[];
extern const u32 gBagBgPalette_FemaleOverride[];
#endif //GUARD_GRAPHICS_H
+1
View File
@@ -91,5 +91,6 @@ void PlaceListMenuCursor(void);
bool8 MoveCursor(u8 by, u8 dirn);
void HelpSystem_BackupSomeVariable(void);
void HelpSystem_RestoreSomeVariable(void);
void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 width, u8 height);
#endif //GUARD_HELP_SYSTEM_H
+17 -16
View File
@@ -3,6 +3,7 @@
#include "global.h"
#include "task.h"
#include "constants/item_menu.h"
// Exported type declarations
@@ -10,15 +11,15 @@
struct BagStruct
{
void (*bagCallback)(void);
MainCallback bagCallback;
u8 location;
u8 pocket;
u16 unk6;
u8 cursorPosition[6];
u8 scrollPosition[6];
bool8 bagOpen;
u16 pocket;
u16 itemsAbove[3];
u16 cursorPos[3];
};
extern struct BagStruct gUnknown_203ACFC;
extern struct BagStruct gBagMenuState;
extern u16 gSpecialVar_ItemId;
@@ -26,19 +27,19 @@ extern u16 gSpecialVar_ItemId;
void sub_81AAC50(void);
void sub_81AAC70(void);
void CB2_SetUpReshowBattleScreenAfterMenu(void);
void sub_81089BC(void);
void sub_810B108(u8);
void ResetBagCursorPositions(void);
void InitPokedudeBag(u8);
void CB2_BagMenuFromStartMenu(void);
void ItemMenu_MoveItemSlotToNewPositionInArray(struct ItemSlot * slots, int pos1, int pos2);
void MoveItemSlotInList(struct ItemSlot * itemSlots_, u32 from, u32 to_);
void ItemMenu_StartFadeToExitCallback(u8 taskId);
void sub_8108CB4(void);
void Bag_BeginCloseWin0Animation(void);
void ItemMenu_SetExitCallback(void (*)(void));
void DisplayItemMessageInBag(u8 taskId, u8 bgId, const u8 * string, TaskFunc followUpFunc);
void sub_810A1F8(u8 taskId);
void sub_8107ECC(void);
void sub_810AF74(void);
void sub_8108DC8(u8 pocketId);
void sub_81089F4(u8 pocketId);
void DisplayItemMessageInBag(u8 taskId, u8 fontId, const u8 * string, TaskFunc followUpFunc);
void Task_ReturnToBagFromContextMenu(u8 taskId);
void CB2_BagMenuFromBattle(void);
void InitOldManBag(void);
void Pocket_CalculateNItemsAndMaxShowed(u8 pocketId);
void PocketCalculateInitialCursorPosAndItemsAbove(u8 pocketId);
void GoToBagMenu(u8 menuType, u8 pocket, MainCallback callback);
#endif //GUARD_ITEM_MENU_H
+8 -10
View File
@@ -3,28 +3,26 @@
#include "global.h"
extern void * gUnknown_2039884;
extern const struct CompressedSpriteSheet gUnknown_83D41E4;
extern const struct CompressedSpriteSheet gUnknown_83D41EC;
extern const struct CompressedSpritePalette gUnknown_83D41F4;
extern const struct CompressedSpriteSheet gSpriteSheet_Backpack;
extern const struct CompressedSpriteSheet gSpriteSheet_Satchel;
extern const struct CompressedSpritePalette gSpritePalette_BagOrSatchel;
extern const struct CompressedSpriteSheet gBagSwapSpriteSheet;
extern const struct CompressedSpritePalette gBagSwapSpritePalette;
void ResetItemMenuIconState(void);
void sub_80985E4(void);
void ItemMenuIcons_CreateInsertIndicatorBarHidden(void);
void DestroyItemMenuIcon(bool8 a0);
void CreateItemMenuIcon(u16 itemId, bool8 a0);
void CopyItemIconPicTo4x4Buffer(const void *src, void *dest);
u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId);
u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origTemplate, u16 tilesTag, u16 paletteTag, u16 itemId);
void sub_80989A0(u16 itemId, u8 idx);
void sub_80986A8(s16 x, u16 y);
void sub_8098660(u8);
void ItemMenuIcons_MoveInsertIndicatorBar(s16 x, u16 y);
void ItemMenuIcons_ToggleInsertIndicatorBarVisibility(bool8 invisible);
void sub_8098528(u8);
void sub_8098580(void);
const void * sub_8098974(u16 itemId, u8 ptrId);
void sub_80984FC(u8 animNum);
const void * GetItemIconGfxPtr(u16 itemId, u8 ptrId);
void CreateBagOrSatchelSprite(u8 animNum);
#endif // GUARD_ITEM_MENU_ICONS
+1
View File
@@ -4,5 +4,6 @@
#include "global.h"
void CreateMapNamePopupIfNotAlreadyRunning(bool32 palIntoFadedBuffer);
void DismissMapNamePopup(void);
#endif //GUARD_MAP_NAME_POPUP_H
+2 -2
View File
@@ -20,14 +20,14 @@ bool8 sub_80BF748(void);
bool8 MenuHelpers_LinkSomething(void);
void SetVBlankHBlankCallbacksToNull(void);
void ResetAllBgsCoordinatesAndBgCntRegs(void);
u8 sub_80BF8E4(void);
u8 GetDialogBoxFontId(void);
bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1);
void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 tileNum, u8 paletteNum, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc);
void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 fontId, u8 left, u8 top, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo);
u8 GetLRKeysState(void);
u8 GetLRKeysPressedAndHeld(void);
bool8 itemid_link_can_give_berry(u16 itemId);
bool8 itemid_80BF6D8_mail_related(u16 itemId);
bool8 CanWriteMailHere(u16 itemId);
void ResetVramOamAndBgCntRegs(void);
#endif //GUARD_MENU_HELPERS_H
+2 -2
View File
@@ -2,7 +2,7 @@
#define GUARD_SAVE_FAILED_SCREEN_H
extern void DoSaveFailedScreen(u8 saveType); // save_failed_screen
void sub_80F50F4(void);
bool32 sub_80F5118(void);
void SetNotInSaveFailedScreen(void);
bool32 RunSaveFailedScreen(void);
#endif //GUARD_SAVE_FAILED_SCREEN_H
+26 -3
View File
@@ -112,8 +112,8 @@ extern const u8 gText_OhNoICantBuyThat[];
extern const u8 gText_HowManyWouldYouLikeToSell[];
extern const u8 gText_ICanPayThisMuch_WouldThatBeOkay[];
extern const u8 gText_TurnedOverItemsWorthYen[];
extern const u8 gPokeDudeText_TMTypes[];
extern const u8 gPokeDudeText_ReadTMDescription[];
extern const u8 gPokedudeText_TMTypes[];
extern const u8 gPokedudeText_ReadTMDescription[];
extern const u8 gFameCheckerText_Cancel[];
extern const u8 gFameCheckerText_ListMenuCursor[];
extern const u8 gFameCheckerText_FameCheckerWillBeClosed[];
@@ -134,7 +134,7 @@ extern const u8 gTeachyTvString_CatchPkmn[];
extern const u8 gTeachyTvString_AboutTMs[];
extern const u8 gTeachyTvString_RegisterItem[];
extern const u8 gTeachyTvString_Cancel[];
extern const u8 gTeachyTvText_PokeDudeSaysHello[];
extern const u8 gTeachyTvText_PokedudeSaysHello[];
extern const u8 gTeachyTvText_BattleScript1[];
extern const u8 gTeachyTvText_StatusScript1[];
extern const u8 gTeachyTvText_MatchupsScript1[];
@@ -1033,4 +1033,27 @@ extern const u8 gText_RegionMap_AreaDesc_AlteringCave[];
extern const u8 gText_RegionMap_AreaDesc_PatternBush[];
extern const u8 gText_RegionMap_AreaDesc_DottedHole[];
// save_failed_screen
extern const u8 gText_SaveFailedScreen_CheckingBackupMemory[];
extern const u8 gText_SaveFailedScreen_BackupMemoryDamaged[];
extern const u8 gText_SaveFailedScreen_SaveCompleted[];
// bag
extern const u8 gText_DepositItem[];
// item_menu
extern const u8 gOtherText_Register[];
extern const u8 gOtherText_Walk[];
extern const u8 gOtherText_Check[];
extern const u8 gOtherText_Open[];
extern const u8 gOtherText_Deselect[];
extern const u8 gText_Items2[];
extern const u8 gText_PokeBalls2[];
extern const u8 gText_KeyItems2[];
extern const u8 gText_CloseBag[];
extern const u8 gText_CantWriteMailHere[];
extern const u8 gText_DepositHowManyStrVars1[];
extern const u8 gText_DepositedStrVar2StrVar1s[];
extern const u8 gText_NoRoomToStoreItems[];
#endif //GUARD_STRINGS_H
+10
View File
@@ -1,6 +1,16 @@
#ifndef GUARD_TEACHY_TV_H
#define GUARD_TEACHY_TV_H
enum TeachyTvScript
{
TTVSCR_BATTLE,
TTVSCR_STATUS,
TTVSCR_MATCHUPS,
TTVSCR_CATCHING,
TTVSCR_TMS,
TTVSCR_REGISTER
};
void InitTeachyTvController(u8 mode, void (*cb)());
void CB2_ReturnToTeachyTV(void);
void SetTeachyTvControllerModeToResume(void);
+11 -1
View File
@@ -1,8 +1,18 @@
#ifndef GUARD_TM_CASE_H
#define GUARD_TM_CASE_H
enum TmCaseType
{
TMCASE_FROMFIELD,
TMCASE_FROMPARTYGIVE,
TMCASE_FROMMARTSELL,
TMCASE_FROMPOKEMONSTORAGEPC,
TMCASE_FROMBATTLE,
TMCASE_NA
};
void InitTMCase(u8 a0, void (* a1)(void), u8 a2);
void ResetTMCaseCursorPos(void);
void PokeDude_InitTMCase(void);
void Pokedude_InitTMCase(void);
#endif //GUARD_TM_CASE_H
+4 -4
View File
@@ -217,7 +217,7 @@ SECTIONS {
src/hall_of_fame.o(.text);
src/credits.o(.text);
src/diploma.o(.text);
asm/save_failed_screen.o(.text);
src/save_failed_screen.o(.text);
asm/clear_save_data_screen.o(.text);
src/evolution_graphics.o(.text);
src/fldeff_teleport.o(.text);
@@ -232,7 +232,7 @@ SECTIONS {
src/pokedex_screen.o(.text);
asm/pokedex_screen.o(.text);
src/list_menu.o(.text);
asm/item_menu.o(.text);
src/item_menu.o(.text);
src/save_location.o(.text);
src/bag.o(.text);
src/trainer_pokemon_sprites.o(.text);
@@ -505,7 +505,7 @@ SECTIONS {
src/credits.o(.rodata);
src/diploma.o(.rodata);
data/strings.o(.rodata);
data/save_failed_screen.o(.rodata);
src/save_failed_screen.o(.rodata);
data/clear_save_data_screen.o(.rodata);
src/evolution_graphics.o(.rodata);
src/new_menu_helpers.o(.rodata);
@@ -517,7 +517,7 @@ SECTIONS {
src/pokedex_screen.o(.rodata);
data/pokedex_screen.o(.rodata);
src/list_menu.o(.rodata);
data/item_menu.o(.rodata);
src/item_menu.o(.rodata);
src/save_location.o(.rodata);
src/bag.o(.rodata);
src/trainer_pokemon_sprites.o(.rodata);
+141 -147
View File
@@ -10,17 +10,18 @@
#include "menu.h"
#include "money.h"
#include "bag.h"
#include "strings.h"
extern const u8 gText_DepositItem[];
static const u16 sBagWindowPalF[] = INCBIN_U16("data/bag/bag_window_pal.gbapal");
const u16 gUnknown_8453098[] = INCBIN_U16("data/bag/bag_window_pal.gbapal");
const u8 gUnknown_84530B8[][3] = {
static const u8 sTextColors[][3] = {
{0, 1, 2},
{0, 2, 3},
{0, 3, 2},
{0, 8, 9}
};
const struct WindowTemplate gUnknown_84530C4[] = {
static const struct WindowTemplate sDefaultBagWindowsStd[] = {
{
.bg = 0,
.tilemapLeft = 0x0b,
@@ -47,7 +48,8 @@ const struct WindowTemplate gUnknown_84530C4[] = {
.baseBlock = 0x01f8
}, DUMMY_WIN_TEMPLATE
};
const struct WindowTemplate gUnknown_84530E4[] = {
static const struct WindowTemplate sDefaultBagWindowsDeposit[] = {
{
.bg = 0,
.tilemapLeft = 0x0b,
@@ -74,7 +76,8 @@ const struct WindowTemplate gUnknown_84530E4[] = {
.baseBlock = 0x01f8
}, DUMMY_WIN_TEMPLATE
};
const struct WindowTemplate gUnknown_8453104[] = {
static const struct WindowTemplate sWindowTemplates[] = {
{
.bg = 0,
.tilemapLeft = 24,
@@ -99,122 +102,114 @@ const struct WindowTemplate gUnknown_8453104[] = {
.height = 3,
.paletteNum = 0xC,
.baseBlock = 0x272
}, {
.bg = 0,
.tilemapLeft = 23,
.tilemapTop = 15,
.width = 6,
.height = 4,
.paletteNum = 0xF,
.baseBlock = 0x28a
}, {
.bg = 0,
.tilemapLeft = 21,
.tilemapTop = 9,
.width = 6,
.height = 4,
.paletteNum = 0xF,
.baseBlock = 0x28a
}, {
.bg = 0,
.tilemapLeft = 2,
.tilemapTop = 15,
.width = 26,
.height = 4,
.paletteNum = 0xF,
.baseBlock = 0x2a2
}, {
.bg = 0,
.tilemapLeft = 6,
.tilemapTop = 15,
.width = 14,
.height = 4,
.paletteNum = 0xC,
.baseBlock = 0x2a2
}, {
.bg = 0,
.tilemapLeft = 6,
.tilemapTop = 15,
.width = 15,
.height = 4,
.paletteNum = 0xC,
.baseBlock = 0x2da
}, {
.bg = 0,
.tilemapLeft = 6,
.tilemapTop = 15,
.width = 16,
.height = 4,
.paletteNum = 0xC,
.baseBlock = 0x316
}, {
.bg = 0,
.tilemapLeft = 6,
.tilemapTop = 15,
.width = 23,
.height = 4,
.paletteNum = 0xC,
.baseBlock = 0x356
}, {
.bg = 0,
.tilemapLeft = 22,
.tilemapTop = 17,
.width = 7,
.height = 2,
.paletteNum = 0xF,
.baseBlock = 0x20a
}, {
.bg = 0,
.tilemapLeft = 22,
.tilemapTop = 15,
.width = 7,
.height = 4,
.paletteNum = 0xF,
.baseBlock = 0x20a
}, {
.bg = 0,
.tilemapLeft = 22,
.tilemapTop = 13,
.width = 7,
.height = 6,
.paletteNum = 0xF,
.baseBlock = 0x20a
}, {
.bg = 0,
.tilemapLeft = 22,
.tilemapTop = 11,
.width = 7,
.height = 8,
.paletteNum = 0xF,
.baseBlock = 0x20a
}
};
const struct WindowTemplate gUnknown_845311C = {
.bg = 0,
.tilemapLeft = 23,
.tilemapTop = 15,
.width = 6,
.height = 4,
.paletteNum = 0xF,
.baseBlock = 0x28a
};
static const u8 sUnused_8453174[] = {16, 8, 4};
const struct WindowTemplate gUnknown_8453124 = {
.bg = 0,
.tilemapLeft = 21,
.tilemapTop = 9,
.width = 6,
.height = 4,
.paletteNum = 0xF,
.baseBlock = 0x28a
};
static EWRAM_DATA u8 sOpenWindows[11] = {};
const struct WindowTemplate gUnknown_845312C[] = {
{
.bg = 0x00,
.tilemapLeft = 0x02,
.tilemapTop = 0x0f,
.width = 0x1a,
.height = 0x04,
.paletteNum = 0x0f,
.baseBlock = 0x02a2
}, {
.bg = 0x00,
.tilemapLeft = 0x06,
.tilemapTop = 0x0f,
.width = 0x0e,
.height = 0x04,
.paletteNum = 0x0c,
.baseBlock = 0x02a2
}, {
.bg = 0x00,
.tilemapLeft = 0x06,
.tilemapTop = 0x0f,
.width = 0x0f,
.height = 0x04,
.paletteNum = 0x0c,
.baseBlock = 0x02da
}, {
.bg = 0x00,
.tilemapLeft = 0x06,
.tilemapTop = 0x0f,
.width = 0x10,
.height = 0x04,
.paletteNum = 0x0c,
.baseBlock = 0x0316
}, {
.bg = 0x00,
.tilemapLeft = 0x06,
.tilemapTop = 0x0f,
.width = 0x17,
.height = 0x04,
.paletteNum = 0x0c,
.baseBlock = 0x0356
}, {
.bg = 0x00,
.tilemapLeft = 0x16,
.tilemapTop = 0x11,
.width = 0x07,
.height = 0x02,
.paletteNum = 0x0f,
.baseBlock = 0x020a
}, {
.bg = 0x00,
.tilemapLeft = 0x16,
.tilemapTop = 0x0f,
.width = 0x07,
.height = 0x04,
.paletteNum = 0x0f,
.baseBlock = 0x020a
}, {
.bg = 0x00,
.tilemapLeft = 0x16,
.tilemapTop = 0x0d,
.width = 0x07,
.height = 0x06,
.paletteNum = 0x0f,
.baseBlock = 0x020a
}, {
.bg = 0x00,
.tilemapLeft = 0x16,
.tilemapTop = 0x0b,
.width = 0x07,
.height = 0x08,
.paletteNum = 0x0f,
.baseBlock = 0x020a
}
};
const u8 gUnknown_8453174[] = {16, 8, 4};
EWRAM_DATA u8 gUnknown_203AD34[11] = {};
void sub_810B858(void)
void InitBagWindows(void)
{
u8 i;
if (gUnknown_203ACFC.location != 3)
InitWindows(gUnknown_84530C4);
if (gBagMenuState.location != 3)
InitWindows(sDefaultBagWindowsStd);
else
InitWindows(gUnknown_84530E4);
InitWindows(sDefaultBagWindowsDeposit);
DeactivateAllTextPrinters();
TextWindow_SetUserSelectedFrame(0, 0x64, 0xE0);
TextWindow_LoadResourcesStdFrame0(0, 0x6D, 0xD0);
TextWindow_SetStdFrame0_WithPal(0, 0x81, 0xC0);
LoadPalette(gUnknown_8453098, 0xF0, 0x20);
LoadPalette(sBagWindowPalF, 0xF0, 0x20);
for (i = 0; i < 3; i++)
{
FillWindowPixelBuffer(i, 0x00);
@@ -223,22 +218,22 @@ void sub_810B858(void)
ScheduleBgCopyTilemapToVram(0);
for (i = 0; i < 11; i++)
{
gUnknown_203AD34[i] = 0xFF;
sOpenWindows[i] = 0xFF;
}
}
void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 colorIdx)
void BagPrintTextOnWindow(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx)
{
AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, gUnknown_84530B8[colorIdx], speed, str);
AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, sTextColors[colorIdx], speed, str);
}
void sub_810B958(const u8 * str)
void BagPrintTextOnWin1CenteredColor0(const u8 * str, u8 unused)
{
u32 x = 0x48 - GetStringWidth(1, str, 0);
AddTextPrinterParameterized3(2, 1, x / 2, 1, gUnknown_84530B8[0], 0, str);
AddTextPrinterParameterized3(2, 1, x / 2, 1, sTextColors[0], 0, str);
}
void sub_810B994(void)
void BagDrawDepositItemTextBox(void)
{
u32 x;
DrawStdFrameWithCustomTileAndPalette(2, FALSE, 0x081, 0x0C);
@@ -246,77 +241,76 @@ void sub_810B994(void)
AddTextPrinterParameterized(2, 0, gText_DepositItem, x / 2, 1, 0, NULL);
}
u8 sub_810B9DC(u8 a0, u8 a1)
u8 ShowBagWindow(u8 whichWindow, u8 nItems)
{
if (gUnknown_203AD34[a0] == 0xFF)
if (sOpenWindows[whichWindow] == 0xFF)
{
gUnknown_203AD34[a0] = AddWindow(&gUnknown_8453104[a0 + a1]);
if (a0 != 6)
sOpenWindows[whichWindow] = AddWindow(&sWindowTemplates[whichWindow + nItems]);
if (whichWindow != 6)
{
DrawStdFrameWithCustomTileAndPalette(gUnknown_203AD34[a0], FALSE, 0x064, 0x0E);
DrawStdFrameWithCustomTileAndPalette(sOpenWindows[whichWindow], FALSE, 0x064, 0xE);
}
else
{
DrawStdFrameWithCustomTileAndPalette(gUnknown_203AD34[a0], FALSE, 0x081, 0x0C);
DrawStdFrameWithCustomTileAndPalette(sOpenWindows[whichWindow], FALSE, 0x081, 0xC);
}
ScheduleBgCopyTilemapToVram(0);
}
return gUnknown_203AD34[a0];
return sOpenWindows[whichWindow];
}
void sub_810BA3C(u8 a0)
void HideBagWindow(u8 whichWindow)
{
ClearStdWindowAndFrameToTransparent(gUnknown_203AD34[a0], FALSE);
ClearWindowTilemap(gUnknown_203AD34[a0]);
RemoveWindow(gUnknown_203AD34[a0]);
ClearStdWindowAndFrameToTransparent(sOpenWindows[whichWindow], FALSE);
ClearWindowTilemap(sOpenWindows[whichWindow]);
RemoveWindow(sOpenWindows[whichWindow]);
ScheduleBgCopyTilemapToVram(0);
gUnknown_203AD34[a0] = 0xFF;
sOpenWindows[whichWindow] = 0xFF;
}
u8 sub_810BA70(u8 a0)
u8 OpenBagWindow(u8 whichWindow)
{
if (gUnknown_203AD34[a0] == 0xFF)
if (sOpenWindows[whichWindow] == 0xFF)
{
gUnknown_203AD34[a0] = AddWindow(&gUnknown_8453104[a0]);
sOpenWindows[whichWindow] = AddWindow(&sWindowTemplates[whichWindow]);
}
return gUnknown_203AD34[a0];
return sOpenWindows[whichWindow];
}
void sub_810BA9C(u8 a0)
void CloseBagWindow(u8 whichWindow)
{
if (gUnknown_203AD34[a0] != 0xFF)
if (sOpenWindows[whichWindow] != 0xFF)
{
ClearDialogWindowAndFrameToTransparent(gUnknown_203AD34[a0], FALSE);
ClearWindowTilemap(gUnknown_203AD34[a0]);
RemoveWindow(gUnknown_203AD34[a0]);
ClearDialogWindowAndFrameToTransparent(sOpenWindows[whichWindow], FALSE);
ClearWindowTilemap(sOpenWindows[whichWindow]);
RemoveWindow(sOpenWindows[whichWindow]);
PutWindowTilemap(1);
ScheduleBgCopyTilemapToVram(0);
gUnknown_203AD34[a0] = 0xFF;
sOpenWindows[whichWindow] = 0xFF;
}
}
u8 sub_810BAD8(u8 a0)
u8 GetBagWindow(u8 whichWindow)
{
return gUnknown_203AD34[a0];
return sOpenWindows[whichWindow];
}
void sub_810BAE8(u8 taskId, const struct YesNoFuncTable * ptrs)
void BagCreateYesNoMenuBottomRight(u8 taskId, const struct YesNoFuncTable * ptrs)
{
CreateYesNoMenuWithCallbacks(taskId, &gUnknown_845311C, 2, 0, 2, 0x64, 0x0E, ptrs);
CreateYesNoMenuWithCallbacks(taskId, &sWindowTemplates[3], 2, 0, 2, 0x064, 0x0E, ptrs);
}
void sub_810BB14(u8 taskId, const struct YesNoFuncTable * ptrs)
void BagCreateYesNoMenuTopRight(u8 taskId, const struct YesNoFuncTable * ptrs)
{
CreateYesNoMenuWithCallbacks(taskId, &gUnknown_8453124, 2, 0, 2, 0x064, 0x0E, ptrs);
CreateYesNoMenuWithCallbacks(taskId, &sWindowTemplates[4], 2, 0, 2, 0x064, 0x0E, ptrs);
}
void sub_810BB40(void)
void BagPrintMoneyAmount(void)
{
PrintMoneyAmountInMoneyBoxWithBorder(sub_810B9DC(2, 0), 0x081, 0x0C, GetMoney(&gSaveBlock1Ptr->money));
PrintMoneyAmountInMoneyBoxWithBorder(ShowBagWindow(2, 0), 0x081, 0x0C, GetMoney(&gSaveBlock1Ptr->money));
}
void sub_810BB74(u8 windowId)
void BagDrawTextBoxOnWindow(u8 windowId)
{
DrawTextBorderOuter(windowId, 0x064, 0x0E);
}
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -379,9 +379,9 @@ static void OpenBagAndChooseItem(void)
nullsub_44();
FreeAllWindowBuffers();
if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
sub_8107ECC();
CB2_BagMenuFromBattle();
else
sub_810AF74();
InitOldManBag();
}
}
+1 -1
View File
@@ -1330,7 +1330,7 @@ static void OpenBagAndChooseItem(void)
gBattlerControllerFuncs[gActiveBattler] = CompleteWhenChoseItem;
nullsub_44();
FreeAllWindowBuffers();
sub_8107ECC();
CB2_BagMenuFromBattle();
}
}
+6 -5
View File
@@ -23,6 +23,7 @@
#include "battle_interface.h"
#include "battle_message.h"
#include "reshow_battle_screen.h"
#include "teachy_tv.h"
#include "constants/songs.h"
#include "constants/items.h"
#include "constants/moves.h"
@@ -733,15 +734,15 @@ static void OpenBagAndChooseItem(void)
FreeAllWindowBuffers();
switch (gSpecialVar_0x8004)
{
case 1:
case TTVSCR_STATUS:
default:
callbackId = 7;
callbackId = ITEMMENULOCATION_TTVSCR_STATUS;
break;
case 3:
callbackId = 8;
case TTVSCR_CATCHING:
callbackId = ITEMMENULOCATION_TTVSCR_CATCHING;
break;
}
sub_810B108(callbackId);
InitPokedudeBag(callbackId);
}
}
+3 -3
View File
@@ -86,7 +86,7 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum);
static void CB2_HandleStartBattle(void);
static void TryCorrectShedinjaLanguage(struct Pokemon *mon);
static void BattleMainCB1(void);
static void CB2_QuitPokeDudeBattle(void);
static void CB2_QuitPokedudeBattle(void);
static void sub_80111FC(struct Sprite *sprite);
static void sub_8011B94(void);
static void sub_8011BB0(void);
@@ -1438,7 +1438,7 @@ void BattleMainCB2(void)
gSpecialVar_Result = gBattleOutcome = B_OUTCOME_DREW;
ResetPaletteFadeControl();
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
SetMainCallback2(CB2_QuitPokeDudeBattle);
SetMainCallback2(CB2_QuitPokedudeBattle);
}
}
@@ -1454,7 +1454,7 @@ void FreeRestoreBattleData(void)
FreeBattleResources();
}
static void CB2_QuitPokeDudeBattle(void)
static void CB2_QuitPokedudeBattle(void)
{
UpdatePaletteFade();
if (!gPaletteFade.active)
+2 -2
View File
@@ -463,7 +463,7 @@ const u8 *const gPokeblockWasTooXStringTable[] = {
static const u8 sText_PlayerUsedItem[] = _("{B_PLAYER_NAME} used\n{B_LAST_ITEM}!");
static const u8 sText_OldManUsedItem[] = _("The old man used\n{B_LAST_ITEM}!");
static const u8 sText_PokeDudeUsedItem[] = _("The POKé DUDE used\n{B_LAST_ITEM}!");
static const u8 sText_PokedudeUsedItem[] = _("The POKé DUDE used\n{B_LAST_ITEM}!");
static const u8 sText_Trainer1UsedItem[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nused {B_LAST_ITEM}!");
static const u8 sText_TrainerBlockedBall[] = _("The TRAINER blocked the BALL!");
static const u8 sText_DontBeAThief[] = _("Don't be a thief!");
@@ -876,7 +876,7 @@ const u8 *const gBattleStringsTable[] = {
Text_MonSentToBoxInBillsPC,
Text_MonSentToBoxSomeonesBoxFull,
Text_MonSentToBoxBillsBoxFull,
sText_PokeDudeUsedItem,
sText_PokedudeUsedItem,
gUnknown_83FDA4D,
gUnknown_83FDA7A,
gUnknown_83FDA8C,
+3 -3
View File
@@ -1269,7 +1269,7 @@ static void Task_ContextMenu_Sell(u8 taskId)
{
CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat);
DisplayItemMessageInBerryPouch(taskId, sub_80BF8E4(), gStringVar4, Task_BerryPouch_DestroyDialogueWindowAndRefreshListMenu);
DisplayItemMessageInBerryPouch(taskId, GetDialogBoxFontId(), gStringVar4, Task_BerryPouch_DestroyDialogueWindowAndRefreshListMenu);
}
else
{
@@ -1285,7 +1285,7 @@ static void Task_ContextMenu_Sell(u8 taskId)
data[2] = 99;
CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_HowManyWouldYouLikeToSell);
DisplayItemMessageInBerryPouch(taskId, sub_80BF8E4(), gStringVar4, Task_Sell_PrintSelectMultipleUI);
DisplayItemMessageInBerryPouch(taskId, GetDialogBoxFontId(), gStringVar4, Task_Sell_PrintSelectMultipleUI);
}
}
}
@@ -1295,7 +1295,7 @@ static void Task_AskSellMultiple(u8 taskId)
s16 * data = gTasks[taskId].data;
ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
StringExpandPlaceholders(gStringVar4, gText_ICanPayThisMuch_WouldThatBeOkay);
DisplayItemMessageInBerryPouch(taskId, sub_80BF8E4(), gStringVar4, Task_SellMultiple_CreateYesNoMenu);
DisplayItemMessageInBerryPouch(taskId, GetDialogBoxFontId(), gStringVar4, Task_SellMultiple_CreateYesNoMenu);
}
static void Task_SellMultiple_CreateYesNoMenu(u8 taskId)
+5 -5
View File
@@ -60,12 +60,12 @@ const struct SpriteFrameImage gTrainerBackPicTable_Leaf[] =
gTrainerBackPic_Leaf + 0x2000, 0x0800,
};
const struct SpriteFrameImage gTrainerBackPicTable_PokeDude[] =
const struct SpriteFrameImage gTrainerBackPicTable_Pokedude[] =
{
gTrainerBackPic_PokeDude, 0x0800,
gTrainerBackPic_PokeDude + 0x0800, 0x0800,
gTrainerBackPic_PokeDude + 0x1000, 0x0800,
gTrainerBackPic_PokeDude + 0x1800, 0x0800,
gTrainerBackPic_Pokedude, 0x0800,
gTrainerBackPic_Pokedude + 0x0800, 0x0800,
gTrainerBackPic_Pokedude + 0x1000, 0x0800,
gTrainerBackPic_Pokedude + 0x1800, 0x0800,
};
const struct SpriteFrameImage gTrainerBackPicTable_OldMan[] =
+4 -4
View File
@@ -16,7 +16,7 @@ static const union AnimCmd sAnimCmd_Leaf_1[] = {
ANIMCMD_END
};
static const union AnimCmd sAnimCmd_PokeDude_1[] = {
static const union AnimCmd sAnimCmd_Pokedude_1[] = {
ANIMCMD_FRAME(1, 24),
ANIMCMD_FRAME(2, 9),
ANIMCMD_FRAME(3, 24),
@@ -60,9 +60,9 @@ const union AnimCmd *const sBackAnims_Leaf[] = {
sAnimCmd_Leaf_1
};
const union AnimCmd *const sBackAnims_PokeDude[] = {
const union AnimCmd *const sBackAnims_Pokedude[] = {
sAnim_GeneralFrame0,
sAnimCmd_PokeDude_1
sAnimCmd_Pokedude_1
};
const union AnimCmd *const sBackAnims_OldMan[] = {
@@ -85,6 +85,6 @@ const union AnimCmd *const *const gTrainerBackAnimsPtrTable[] = {
sBackAnims_Leaf,
sBackAnims_RSBrendan,
sBackAnims_RSMay,
sBackAnims_PokeDude,
sBackAnims_Pokedude,
sBackAnims_OldMan
};
+2 -2
View File
@@ -12,7 +12,7 @@ const struct CompressedSpriteSheet gTrainerBackPicTable[] = {
{ (const u32 *)gTrainerBackPic_Leaf, 0x2800, 1 },
{ (const u32 *)gTrainerBackPic_RSBrendan, 0x2000, 2 },
{ (const u32 *)gTrainerBackPic_RSMay, 0x2000, 3 },
{ (const u32 *)gTrainerBackPic_PokeDude, 0x2000, 4 },
{ (const u32 *)gTrainerBackPic_Pokedude, 0x2000, 4 },
{ (const u32 *)gTrainerBackPic_OldMan, 0x2000, 5 }
};
@@ -21,6 +21,6 @@ const struct CompressedSpritePalette gTrainerBackPicPaletteTable[] = {
{ gTrainerPalette_LeafBackPic, 1 },
{ gTrainerPalette_RSBrendan1, 2 },
{ gTrainerPalette_RSMay1, 3 },
{ gTrainerPalette_PokeDudeBackPic, 4 },
{ gTrainerPalette_PokedudeBackPic, 4 },
{ gTrainerPalette_OldManBackPic, 5 }
};
+2
View File
@@ -25,6 +25,8 @@ static void sub_80C99A0(u8 taskId);
static void sub_80C9A10(void);
static void sub_80C9A60(void);
EWRAM_DATA struct MapPosition gPlayerFacingPosition = {};
bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId)
{
u8 mapObjId;
View File
+2400
View File
File diff suppressed because it is too large Load Diff
+76 -72
View File
@@ -5,14 +5,14 @@
#include "malloc.h"
#include "constants/items.h"
static EWRAM_DATA u8 gUnknown_2039878[12] = {0};
EWRAM_DATA void * gUnknown_2039884 = NULL;
static EWRAM_DATA void * gUnknown_2039888 = NULL;
static EWRAM_DATA u8 sItemMenuIconSpriteIds[12] = {0};
static EWRAM_DATA void * sItemIconTilesBuffer = NULL;
static EWRAM_DATA void * sItemIconTilesBufferPadded = NULL;
static void sub_8098560(struct Sprite * sprite);
static void sub_80985BC(struct Sprite * sprite);
static const struct OamData gUnknown_83D416C = {
static const struct OamData sOamData_BagOrSatchel = {
.affineMode = ST_OAM_AFFINE_NORMAL,
.shape = ST_OAM_SQUARE,
.size = 3,
@@ -20,36 +20,36 @@ static const struct OamData gUnknown_83D416C = {
.paletteNum = 0
};
static const union AnimCmd gUnknown_83D4174[] = {
static const union AnimCmd sAnim_BagOrSatchel_OpenItemPocket[] = {
ANIMCMD_FRAME( 0, 5),
ANIMCMD_FRAME(0x40, 0),
ANIMCMD_END
};
static const union AnimCmd gUnknown_83D4180[] = {
static const union AnimCmd sAnim_BagOrSatchel_OpenKeyItemPocket[] = {
ANIMCMD_FRAME( 0, 5),
ANIMCMD_FRAME(0x80, 0),
ANIMCMD_END
};
static const union AnimCmd gUnknown_83D418C[] = {
static const union AnimCmd sAnim_BagOrSatchel_OpenPokeBallsPocket[] = {
ANIMCMD_FRAME( 0, 5),
ANIMCMD_FRAME(0xc0, 0),
ANIMCMD_END
};
static const union AnimCmd *const gUnknown_83D4198[] = {
gUnknown_83D4180,
gUnknown_83D418C,
gUnknown_83D4174
static const union AnimCmd *const sAnimTable_BagOrSatchel[] = {
sAnim_BagOrSatchel_OpenKeyItemPocket,
sAnim_BagOrSatchel_OpenPokeBallsPocket,
sAnim_BagOrSatchel_OpenItemPocket
};
static const union AffineAnimCmd gUnknown_83D41A4[] = {
static const union AffineAnimCmd sAffineAnim_Idle[] = {
AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
AFFINEANIMCMD_END
};
static const union AffineAnimCmd gUnknown_83D41B4[] = {
static const union AffineAnimCmd sAffineAnim_Wobble[] = {
AFFINEANIMCMD_FRAME(0, 0, -2, 2),
AFFINEANIMCMD_FRAME(0, 0, 2, 4),
AFFINEANIMCMD_FRAME(0, 0, -2, 4),
@@ -57,35 +57,35 @@ static const union AffineAnimCmd gUnknown_83D41B4[] = {
AFFINEANIMCMD_END
};
static const union AffineAnimCmd *const gUnknown_83D41DC[] = {
gUnknown_83D41A4,
gUnknown_83D41B4
static const union AffineAnimCmd *const sAffineAnimTable_BagOrSatchel[] = {
sAffineAnim_Idle,
sAffineAnim_Wobble
};
const struct CompressedSpriteSheet gUnknown_83D41E4 = {
const struct CompressedSpriteSheet gSpriteSheet_Backpack = {
gUnknown_8E8362C,
0x2000,
100
};
const struct CompressedSpriteSheet gUnknown_83D41EC = {
const struct CompressedSpriteSheet gSpriteSheet_Satchel = {
gUnknown_8E83DBC,
0x2000,
100
};
const struct CompressedSpritePalette gUnknown_83D41F4 = {
const struct CompressedSpritePalette gSpritePalette_BagOrSatchel = {
gUnknown_8E84560,
100
};
static const struct SpriteTemplate gUnknown_83D41FC = {
static const struct SpriteTemplate sSpriteTemplate_BagOrSatchel = {
100,
100,
&gUnknown_83D416C,
gUnknown_83D4198,
&sOamData_BagOrSatchel,
sAnimTable_BagOrSatchel,
NULL,
gUnknown_83D41DC,
sAffineAnimTable_BagOrSatchel,
SpriteCallbackDummy
};
@@ -139,7 +139,7 @@ static const struct SpriteTemplate gUnknown_83D4250 = {
SpriteCallbackDummy
};
static const struct OamData gUnknown_83D4268 = {
static const struct OamData sOamData_ItemIcon = {
.affineMode = ST_OAM_AFFINE_OFF,
.shape = ST_OAM_SQUARE,
.size = 2,
@@ -147,26 +147,26 @@ static const struct OamData gUnknown_83D4268 = {
.paletteNum = 2
};
static const union AnimCmd gUnknown_83D4270[] = {
static const union AnimCmd sAnim_ItemIcon_0[] = {
ANIMCMD_FRAME(0, 0),
ANIMCMD_END
};
static const union AnimCmd *const gUnknown_83D4278[] = {
gUnknown_83D4270
static const union AnimCmd *const sAnimTable_ItemIcon[] = {
sAnim_ItemIcon_0
};
static const struct SpriteTemplate gUnknown_83D427C = {
static const struct SpriteTemplate sSpriteTemplate_ItemIcon = {
102,
102,
&gUnknown_83D4268,
gUnknown_83D4278,
&sOamData_ItemIcon,
sAnimTable_ItemIcon,
NULL,
gDummySpriteAffineAnimTable,
SpriteCallbackDummy
};
static const void *const gUnknown_83D4294[][2] = {
static const void *const sItemIconGfxPtrs[][2] = {
{gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
{gFile_graphics_items_icons_master_ball_sheet, gFile_graphics_items_icon_palettes_master_ball_palette},
{gFile_graphics_items_icons_ultra_ball_sheet, gFile_graphics_items_icon_palettes_ultra_ball_palette},
@@ -549,19 +549,19 @@ void ResetItemMenuIconState(void)
{
u16 i;
for (i = 0; i < NELEMS(gUnknown_2039878); i++)
gUnknown_2039878[i] = 0xFF;
for (i = 0; i < NELEMS(sItemMenuIconSpriteIds); i++)
sItemMenuIconSpriteIds[i] = 0xFF;
}
void sub_80984FC(u8 animNum)
void CreateBagOrSatchelSprite(u8 animNum)
{
gUnknown_2039878[0] = CreateSprite(&gUnknown_83D41FC, 40, 68, 0);
sItemMenuIconSpriteIds[0] = CreateSprite(&sSpriteTemplate_BagOrSatchel, 40, 68, 0);
sub_8098528(animNum);
}
void sub_8098528(u8 animNum)
{
struct Sprite * sprite = &gSprites[gUnknown_2039878[0]];
struct Sprite * sprite = &gSprites[sItemMenuIconSpriteIds[0]];
sprite->pos2.y = -5;
sprite->callback = sub_8098560;
StartSpriteAnim(sprite, animNum);
@@ -577,7 +577,7 @@ static void sub_8098560(struct Sprite * sprite)
void sub_8098580(void)
{
struct Sprite * sprite = &gSprites[gUnknown_2039878[0]];
struct Sprite * sprite = &gSprites[sItemMenuIconSpriteIds[0]];
if (sprite->affineAnimEnded)
{
StartSpriteAffineAnim(sprite, 1);
@@ -594,40 +594,44 @@ static void sub_80985BC(struct Sprite * sprite)
}
}
void sub_80985E4(void)
void ItemMenuIcons_CreateInsertIndicatorBarHidden(void)
{
u8 i;
u8 * ptr = &gUnknown_2039878[1];
u8 * ptr = &sItemMenuIconSpriteIds[1];
for (i = 0; i < 9; i++)
{
ptr[i] = CreateSprite(&gUnknown_83D4250, i * 16 + 0x60, 7, 0);
if (i != 0)
switch (i)
{
if (i == 8)
StartSpriteAnim(&gSprites[ptr[i]], 2);
else
StartSpriteAnim(&gSprites[ptr[i]], 1);
case 0:
break;
case 8:
StartSpriteAnim(&gSprites[ptr[i]], 2);
break;
default:
StartSpriteAnim(&gSprites[ptr[i]], 1);
break;
}
gSprites[ptr[i]].invisible = TRUE;
}
}
void sub_8098660(u8 flag)
void ItemMenuIcons_ToggleInsertIndicatorBarVisibility(bool8 invisible)
{
u8 i;
u8 * ptr = &gUnknown_2039878[1];
u8 * ptr = &sItemMenuIconSpriteIds[1];
for (i = 0; i < 9; i++)
{
gSprites[ptr[i]].invisible = flag;
gSprites[ptr[i]].invisible = invisible;
}
}
void sub_80986A8(s16 x, u16 y)
void ItemMenuIcons_MoveInsertIndicatorBar(s16 x, u16 y)
{
u8 i;
u8 * ptr = &gUnknown_2039878[1];
u8 * ptr = &sItemMenuIconSpriteIds[1];
for (i = 0; i < 9; i++)
{
@@ -636,15 +640,15 @@ void sub_80986A8(s16 x, u16 y)
}
}
static bool8 sub_80986EC(void)
static bool8 TryAllocItemIconTilesBuffers(void)
{
void ** ptr1, ** ptr2;
ptr1 = &gUnknown_2039884;
ptr1 = &sItemIconTilesBuffer;
*ptr1 = Alloc(0x120);
if (*ptr1 == NULL)
return FALSE;
ptr2 = &gUnknown_2039888;
ptr2 = &sItemIconTilesBufferPadded;
*ptr2 = AllocZeroed(0x200);
if (*ptr2 == NULL)
{
@@ -671,27 +675,27 @@ u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId)
struct CompressedSpritePalette spritePalette;
u8 spriteId;
if (!sub_80986EC())
if (!TryAllocItemIconTilesBuffers())
return MAX_SPRITES;
LZDecompressWram(sub_8098974(itemId, 0), gUnknown_2039884);
CopyItemIconPicTo4x4Buffer(gUnknown_2039884, gUnknown_2039888);
spriteSheet.data = gUnknown_2039888;
LZDecompressWram(GetItemIconGfxPtr(itemId, 0), sItemIconTilesBuffer);
CopyItemIconPicTo4x4Buffer(sItemIconTilesBuffer, sItemIconTilesBufferPadded);
spriteSheet.data = sItemIconTilesBufferPadded;
spriteSheet.size = 0x200;
spriteSheet.tag = tilesTag;
LoadSpriteSheet(&spriteSheet);
spritePalette.data = sub_8098974(itemId, 1);
spritePalette.data = GetItemIconGfxPtr(itemId, 1);
spritePalette.tag = paletteTag;
LoadCompressedSpritePalette(&spritePalette);
CpuCopy16(&gUnknown_83D427C, &template, sizeof(struct SpriteTemplate));
CpuCopy16(&sSpriteTemplate_ItemIcon, &template, sizeof(struct SpriteTemplate));
template.tileTag = tilesTag;
template.paletteTag = paletteTag;
spriteId = CreateSprite(&template, 0, 0, 0);
Free(gUnknown_2039884);
Free(gUnknown_2039888);
Free(sItemIconTilesBuffer);
Free(sItemIconTilesBufferPadded);
return spriteId;
}
@@ -702,17 +706,17 @@ u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origT
struct CompressedSpritePalette spritePalette;
u8 spriteId;
if (!sub_80986EC())
if (!TryAllocItemIconTilesBuffers())
return MAX_SPRITES;
LZDecompressWram(sub_8098974(itemId, 0), gUnknown_2039884);
CopyItemIconPicTo4x4Buffer(gUnknown_2039884, gUnknown_2039888);
spriteSheet.data = gUnknown_2039888;
LZDecompressWram(GetItemIconGfxPtr(itemId, 0), sItemIconTilesBuffer);
CopyItemIconPicTo4x4Buffer(sItemIconTilesBuffer, sItemIconTilesBufferPadded);
spriteSheet.data = sItemIconTilesBufferPadded;
spriteSheet.size = 0x200;
spriteSheet.tag = tilesTag;
LoadSpriteSheet(&spriteSheet);
spritePalette.data = sub_8098974(itemId, 1);
spritePalette.data = GetItemIconGfxPtr(itemId, 1);
spritePalette.tag = paletteTag;
LoadCompressedSpritePalette(&spritePalette);
@@ -721,14 +725,14 @@ u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origT
template.paletteTag = paletteTag;
spriteId = CreateSprite(&template, 0, 0, 0);
Free(gUnknown_2039884);
Free(gUnknown_2039888);
Free(sItemIconTilesBuffer);
Free(sItemIconTilesBufferPadded);
return spriteId;
}
void CreateItemMenuIcon(u16 itemId, u8 idx)
{
u8 * ptr = &gUnknown_2039878[10];
u8 * ptr = &sItemMenuIconSpriteIds[10];
u8 spriteId;
if (ptr[idx] == 0xFF)
@@ -747,7 +751,7 @@ void CreateItemMenuIcon(u16 itemId, u8 idx)
void DestroyItemMenuIcon(u8 idx)
{
u8 * ptr = &gUnknown_2039878[10];
u8 * ptr = &sItemMenuIconSpriteIds[10];
if (ptr[idx] != 0xFF)
{
@@ -756,16 +760,16 @@ void DestroyItemMenuIcon(u8 idx)
}
}
const void * sub_8098974(u16 itemId, u8 attrId)
const void * GetItemIconGfxPtr(u16 itemId, u8 attrId)
{
if (itemId > ITEM_N_A)
itemId = ITEM_NONE;
return gUnknown_83D4294[itemId][attrId];
return sItemIconGfxPtrs[itemId][attrId];
}
void sub_80989A0(u16 itemId, u8 idx)
{
u8 * ptr = &gUnknown_2039878[10];
u8 * ptr = &sItemMenuIconSpriteIds[10];
u8 spriteId;
if (ptr[idx] == 0xFF)
+7 -7
View File
@@ -348,7 +348,7 @@ static bool8 ItemPc_DoGfxSetup(void)
gMain.state++;
break;
case 14:
sub_80985E4();
ItemMenuIcons_CreateInsertIndicatorBarHidden();
gMain.state++;
break;
case 15:
@@ -780,8 +780,8 @@ static void ItemPc_MoveItemModeInit(u8 taskId, s16 pos)
StringExpandPlaceholders(gStringVar4, gOtherText_WhereShouldTheStrVar1BePlaced);
FillWindowPixelBuffer(1, 0x00);
ItemPc_AddTextPrinterParameterized(1, 2, gStringVar4, 0, 3, 2, 3, 0, 0);
sub_80986A8(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
sub_8098660(0);
ItemMenuIcons_MoveInsertIndicatorBar(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
ItemMenuIcons_ToggleInsertIndicatorBarVisibility(FALSE);
ItemPc_PrintOrRemoveCursor(data[0], 2);
gTasks[taskId].func = Task_ItemPcMoveItemModeRun;
}
@@ -792,7 +792,7 @@ static void Task_ItemPcMoveItemModeRun(u8 taskId)
ListMenu_ProcessInput(data[0]);
ListMenuGetScrollAndRow(data[0], &sListMenuState.scroll, &sListMenuState.row);
sub_80986A8(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
ItemMenuIcons_MoveInsertIndicatorBar(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
if (JOY_NEW(A_BUTTON | SELECT_BUTTON))
{
PlaySE(SE_SELECT);
@@ -814,13 +814,13 @@ static void ItemPc_InsertItemIntoNewSlot(u8 taskId, u32 pos)
ItemPc_MoveItemModeCancel(taskId, pos);
else
{
ItemMenu_MoveItemSlotToNewPositionInArray(gSaveBlock1Ptr->pcItems, data[1], pos);
MoveItemSlotInList(gSaveBlock1Ptr->pcItems, data[1], pos);
DestroyListMenuTask(data[0], &sListMenuState.scroll, &sListMenuState.row);
if (data[1] < pos)
sListMenuState.row--;
ItemPc_BuildListMenuTemplate();
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row);
sub_8098660(1);
ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE);
gTasks[taskId].func = Task_ItemPcMain;
}
}
@@ -834,7 +834,7 @@ static void ItemPc_MoveItemModeCancel(u8 taskId, u32 pos)
sListMenuState.row--;
ItemPc_BuildListMenuTemplate();
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row);
sub_8098660(1);
ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE);
gTasks[taskId].func = Task_ItemPcMain;
}
+17 -17
View File
@@ -154,7 +154,7 @@ static void sub_80A0FBC(u8 taskId)
{
ItemMenu_SetExitCallback(gUnknown_83E2954[itemType]);
if (itemType == 1)
sub_8108CB4();
Bag_BeginCloseWin0Animation();
ItemMenu_StartFadeToExitCallback(taskId);
}
}
@@ -188,7 +188,7 @@ static void sub_80A10C4(u8 taskId, bool8 a1, u8 a2, const u8 * str)
{
StringExpandPlaceholders(gStringVar4, str);
if (a1 == FALSE)
DisplayItemMessageInBag(taskId, a2, gStringVar4, sub_810A1F8);
DisplayItemMessageInBag(taskId, a2, gStringVar4, Task_ReturnToBagFromContextMenu);
else
DisplayItemMessageOnField(taskId, a2, gStringVar4, sub_80A112C);
}
@@ -345,7 +345,7 @@ void FieldUseFunc_CoinCase(u8 taskId)
StringExpandPlaceholders(gStringVar4, gUnknown_8416537);
ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF);
if (gTasks[taskId].data[3] == 0)
DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8);
DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_ReturnToBagFromContextMenu);
else
DisplayItemMessageOnField(taskId, 2, gStringVar4, sub_80A112C);
}
@@ -356,7 +356,7 @@ void FieldUseFunc_PowderJar(u8 taskId)
StringExpandPlaceholders(gStringVar4, gUnknown_8416644);
ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF);
if (gTasks[taskId].data[3] == 0)
DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8);
DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_ReturnToBagFromContextMenu);
else
DisplayItemMessageOnField(taskId, 2, gStringVar4, sub_80A112C);
}
@@ -384,7 +384,7 @@ void FieldUseFunc_PokeFlute(u8 taskId)
{
// Now that's a catchy tune!
if (gTasks[taskId].data[3] == 0)
DisplayItemMessageInBag(taskId, 2, gUnknown_841665C, sub_810A1F8);
DisplayItemMessageInBag(taskId, 2, gUnknown_841665C, Task_ReturnToBagFromContextMenu);
else
DisplayItemMessageOnField(taskId, 2, gUnknown_841665C, sub_80A112C);
}
@@ -401,7 +401,7 @@ static void sub_80A1674(u8 taskId)
if (WaitFanfare(FALSE))
{
if (gTasks[taskId].data[3] == 0)
DisplayItemMessageInBag(taskId, 2, gUnknown_84166A7, sub_810A1F8);
DisplayItemMessageInBag(taskId, 2, gUnknown_84166A7, Task_ReturnToBagFromContextMenu);
else
DisplayItemMessageOnField(taskId, 2, gUnknown_84166A7, sub_80A112C);
}
@@ -518,7 +518,7 @@ void BattleUseFunc_BerryPouch(u8 taskId)
static void InitBerryPouchFromBattle(void)
{
InitBerryPouch(BERRYPOUCH_FROMBATTLE, sub_8107ECC, 0);
InitBerryPouch(BERRYPOUCH_FROMBATTLE, CB2_BagMenuFromBattle, 0);
}
void FieldUseFunc_TeachyTv(u8 taskId)
@@ -562,7 +562,7 @@ void FieldUseFunc_SuperRepel(u8 taskId)
}
else
// An earlier repel is still in effect
DisplayItemMessageInBag(taskId, 2, gUnknown_841659E, sub_810A1F8);
DisplayItemMessageInBag(taskId, 2, gUnknown_841659E, Task_ReturnToBagFromContextMenu);
}
static void sub_80A19E8(u8 taskId)
@@ -572,15 +572,15 @@ static void sub_80A19E8(u8 taskId)
ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF);
VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gSpecialVar_ItemId));
sub_80A1A44();
DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8);
DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_ReturnToBagFromContextMenu);
}
}
static void sub_80A1A44(void)
{
RemoveBagItem(gSpecialVar_ItemId, 1);
sub_8108DC8(ItemId_GetPocket(gSpecialVar_ItemId));
sub_81089F4(ItemId_GetPocket(gSpecialVar_ItemId));
Pocket_CalculateNItemsAndMaxShowed(ItemId_GetPocket(gSpecialVar_ItemId));
PocketCalculateInitialCursorPosAndItemsAbove(ItemId_GetPocket(gSpecialVar_ItemId));
CopyItemName(gSpecialVar_ItemId, gStringVar2);
StringExpandPlaceholders(gStringVar4, gUnknown_841658C);
}
@@ -613,7 +613,7 @@ static void sub_80A1B48(u8 taskId)
if (++gTasks[taskId].data[8] > 7)
{
PlaySE(SE_BIDORO);
DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8);
DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_ReturnToBagFromContextMenu);
}
}
@@ -745,18 +745,18 @@ void BattleUseFunc_PokeBallEtc(u8 taskId)
if (!IsPlayerPartyAndPokemonStorageFull())
{
RemoveBagItem(gSpecialVar_ItemId, 1);
sub_8108CB4();
Bag_BeginCloseWin0Animation();
ItemMenu_StartFadeToExitCallback(taskId);
}
else
{
DisplayItemMessageInBag(taskId, 2, gUnknown_8416631, sub_810A1F8);
DisplayItemMessageInBag(taskId, 2, gUnknown_8416631, Task_ReturnToBagFromContextMenu);
}
}
void BattleUseFunc_PokeFlute(u8 taskId)
{
sub_8108CB4();
Bag_BeginCloseWin0Animation();
ItemMenu_StartFadeToExitCallback(taskId);
}
@@ -764,7 +764,7 @@ void BattleUseFunc_GuardSpec(u8 taskId)
{
if (ExecuteTableBasedItemEffect(&gPlayerParty[gBattlerPartyIndexes[gBattlerInMenuId]], gSpecialVar_ItemId, gBattlerPartyIndexes[gBattlerInMenuId], 0))
{
DisplayItemMessageInBag(taskId, 2, gText_WontHaveEffect, sub_810A1F8);
DisplayItemMessageInBag(taskId, 2, gText_WontHaveEffect, Task_ReturnToBagFromContextMenu);
}
else
{
@@ -790,7 +790,7 @@ static void Task_BattleUse_StatBooster_WaitButton_ReturnToBattle(u8 taskId)
{
if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))
{
sub_8108CB4();
Bag_BeginCloseWin0Animation();
ItemMenu_StartFadeToExitCallback(taskId);
}
}
+2 -2
View File
@@ -115,7 +115,7 @@ void AgbMain()
gSoftResetDisabled = FALSE;
gHelpSystemEnabled = FALSE;
sub_80F50F4();
SetNotInSaveFailedScreen();
AGBPrintInit();
@@ -186,7 +186,7 @@ static void InitMainCallbacks(void)
static void CallCallbacks(void)
{
if (!sub_80F5118() && !RunHelpSystemCallback())
if (!RunSaveFailedScreen() && !RunHelpSystemCallback())
{
if (gMain.callback1)
gMain.callback1();
+2 -2
View File
@@ -107,7 +107,7 @@ bool8 itemid_link_can_give_berry(u16 itemId)
return FALSE;
}
bool8 itemid_80BF6D8_mail_related(u16 itemId)
bool8 CanWriteMailHere(u16 itemId)
{
if (IsUpdateLinkStateCBActive() != TRUE && InUnionRoom() != TRUE)
return TRUE;
@@ -242,7 +242,7 @@ bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
return FALSE;
}
u8 sub_80BF8E4(void)
u8 GetDialogBoxFontId(void)
{
if (!ContextNpcGetTextColor())
return 4;
+1 -1
View File
@@ -98,7 +98,7 @@ void ResetMenuAndMonGlobals(void)
gDifferentSaveFile = FALSE;
ZeroPlayerPartyMons();
ZeroEnemyPartyMons();
sub_81089BC();
ResetBagCursorPositions();
ResetTMCaseCursorPos();
BerryPouch_CursorResetToTop();
ResetQuestLog();
+6 -6
View File
@@ -3451,7 +3451,7 @@ static void CursorCB_Give(u8 taskId)
void CB2_SelectBagItemToGive(void)
{
GoToBagMenu(1, 3, CB2_GiveHoldItem);
GoToBagMenu(ITEMMENULOCATION_PARTY, OPEN_BAG_LAST, CB2_GiveHoldItem);
}
void CB2_GiveHoldItem(void)
@@ -4283,12 +4283,12 @@ void CB2_ShowPartyMenuForItemUse(void)
static void CB2_ReturnToBagMenu(void)
{
GoToBagMenu(11, 3, NULL);
GoToBagMenu(ITEMMENULOCATION_LAST, OPEN_BAG_LAST, NULL);
}
static void CB2_ReturnToTMCaseMenu(void)
{
InitTMCase(5, NULL, 0xFF);
InitTMCase(TMCASE_NA, NULL, 0xFF);
}
static void CB2_ReturnToBerryPouchMenu(void)
@@ -5904,7 +5904,7 @@ void OpenPartyMenuInBattle(void)
void ChooseMonForInBattleItem(void)
{
InitPartyMenu(PARTY_MENU_TYPE_IN_BATTLE, GetPartyLayoutFromBattleType(), PARTY_ACTION_REUSABLE_ITEM, FALSE, PARTY_MSG_USE_ON_WHICH_MON, sub_8120FCC, sub_8107ECC);
InitPartyMenu(PARTY_MENU_TYPE_IN_BATTLE, GetPartyLayoutFromBattleType(), PARTY_ACTION_REUSABLE_ITEM, FALSE, PARTY_MSG_USE_ON_WHICH_MON, sub_8120FCC, CB2_BagMenuFromBattle);
nullsub_44();
UpdatePartyToBattleOrder();
}
@@ -5919,7 +5919,7 @@ void sub_81279E0(void)
FALSE,
PARTY_MSG_NONE,
sub_8120C3C,
sub_8107ECC);
CB2_BagMenuFromBattle);
sub_80EB2F4(8);
}
else
@@ -5929,7 +5929,7 @@ void sub_81279E0(void)
if (GetPocketByItemId(gSpecialVar_ItemId) == POCKET_BERRY_POUCH)
callback = CB2_ReturnToBerryPouchMenu;
else
callback = sub_8107ECC;
callback = CB2_BagMenuFromBattle;
InitPartyMenu(PARTY_MENU_TYPE_IN_BATTLE,
GetPartyLayoutFromBattleType(),
PARTY_ACTION_USE_ITEM,
+1 -1
View File
@@ -322,7 +322,7 @@ static void Task_DepositItem_WaitFadeAndGoToBag(u8 taskId)
if (!gPaletteFade.active)
{
CleanupOverworldWindowsAndTilemaps();
GoToBagMenu(3, POCKET_ITEMS - 1, CB2_ReturnToField);
GoToBagMenu(ITEMMENULOCATION_ITEMPC, OPEN_BAG_ITEMS, CB2_ReturnToField);
gFieldCallback = CB2_ReturnFromDepositMenu;
DestroyTask(taskId);
}
+1 -1
View File
@@ -1547,7 +1547,7 @@ const struct SpriteTemplate gUnknown_825DF50[] =
.paletteTag = 0,
.oam = &gOamData_824F018,
.anims = NULL,
.images = gTrainerBackPicTable_PokeDude,
.images = gTrainerBackPicTable_Pokedude,
.affineAnims = gSpriteAffineAnimTable_82348C8,
.callback = sub_80120C4,
},
+231
View File
@@ -0,0 +1,231 @@
#include "global.h"
#include "decompress.h"
#include "dma3.h"
#include "gba/flash_internal.h"
#include "gpu_regs.h"
#include "help_system.h"
#include "m4a.h"
#include "save.h"
#include "save_failed_screen.h"
#include "strings.h"
#include "text.h"
bool32 sIsInSaveFailedScreen;
static EWRAM_DATA u16 sSaveType = SAVE_NORMAL;
static EWRAM_DATA u16 unused_203AB4E = 0;
static EWRAM_DATA u8 sSaveFailedScreenState = 0;
static void BlankPalettes(void);
static void UpdateMapBufferWithText(void);
static void ClearMapBuffer(void);
static void PrintTextOnSaveFailedScreen(const u8 *a0);
static bool32 TryWipeDamagedSectors(void);
static bool32 WipeDamagedSectors(u32 damagedSectors);
static const u16 sSaveFailedScreenPals[] = INCBIN_U16("graphics/interface/save_failed_screen.gbapal");
void SetNotInSaveFailedScreen(void)
{
sIsInSaveFailedScreen = FALSE;
}
void DoSaveFailedScreen(u8 saveType)
{
sSaveType = saveType;
sIsInSaveFailedScreen = TRUE;
}
bool32 RunSaveFailedScreen(void)
{
switch (sSaveFailedScreenState)
{
case 0:
if (!sIsInSaveFailedScreen)
return FALSE;
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 128);
SaveCallbacks();
sSaveFailedScreenState = 1;
break;
case 1:
SaveMapTiles();
SaveMapGPURegs();
SaveMapTextColors();
BlankPalettes();
SetGpuReg(REG_OFFSET_DISPCNT, 0);
sSaveFailedScreenState = 2;
break;
case 2:
RequestDma3Fill(0, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0);
RequestDma3Copy(sSaveFailedScreenPals, (void *)PLTT, 0x20, 0);
sSaveFailedScreenState = 3;
break;
case 3:
ClearMapBuffer();
PrintTextOnSaveFailedScreen(gText_SaveFailedScreen_CheckingBackupMemory);
UpdateMapBufferWithText();
sSaveFailedScreenState = 4;
break;
case 4:
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BG0HOFS, 0);
SetGpuReg(REG_OFFSET_BG0VOFS, 0);
SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(3) | BGCNT_SCREENBASE(31));
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_BG0_ON);
sSaveFailedScreenState = 5;
break;
case 5:
if (TryWipeDamagedSectors() == TRUE)
{
gSaveSucceeded = SAVE_STATUS_OK;
PrintTextOnSaveFailedScreen(gText_SaveFailedScreen_SaveCompleted);
}
else
{
gSaveSucceeded = SAVE_STATUS_ERROR;
PrintTextOnSaveFailedScreen(gText_SaveFailedScreen_BackupMemoryDamaged);
}
sSaveFailedScreenState = 6;
break;
case 6:
if (JOY_NEW(A_BUTTON))
sSaveFailedScreenState = 7;
break;
case 7:
SetGpuReg(REG_OFFSET_DISPCNT, 0);
RestoreMapTiles();
BlankPalettes();
sSaveFailedScreenState = 8;
break;
case 8:
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 256);
RestoreMapTextColors();
RestoreGPURegs();
RestoreCallbacks();
sIsInSaveFailedScreen = FALSE;
sSaveFailedScreenState = 0;
break;
}
return TRUE;
}
static void BlankPalettes(void)
{
int i;
for (i = 0; i < BG_PLTT_SIZE; i += sizeof(u16))
{
*((u16 *)(BG_PLTT + i)) = RGB_BLACK;
*((u16 *)(OBJ_PLTT + i)) = RGB_BLACK;
}
}
static void RequestDmaCopyFromScreenBuffer(void)
{
RequestDma3Copy(gDecompressionBuffer + 0x3800, (void *)BG_SCREEN_ADDR(31), 0x500, 0);
}
static void RequestDmaCopyFromCharBuffer(void)
{
RequestDma3Copy(gDecompressionBuffer + 0x020, (void *)BG_CHAR_ADDR(3) + 0x20, 0x2300, 0);
}
static void FillBgMapBufferRect(u16 baseBlock, u8 left, u8 top, u8 width, u8 height, u16 blockOffset)
{
u16 i, j;
for (i = top; i < top + height; i++)
{
for (j = left; j < left + width; j++)
{
*((u16 *)(gDecompressionBuffer + 0x3800 + 64 * i + 2 * j)) = baseBlock;
baseBlock += blockOffset;
}
}
RequestDmaCopyFromScreenBuffer();
}
static void UpdateMapBufferWithText(void)
{
FillBgMapBufferRect(0x001, 1, 5, 28, 10, 0x001);
}
static void ClearMapBuffer(void)
{
FillBgMapBufferRect(0x000, 0, 0, 30, 20, 0x000);
}
static void PrintTextOnSaveFailedScreen(const u8 *str)
{
GenerateFontHalfRowLookupTable(TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
CpuFill16(PIXEL_FILL(1) | (PIXEL_FILL(1) << 8), gDecompressionBuffer + 0x20, 0x2300);
HelpSystemRenderText(2, gDecompressionBuffer + 0x20, str, 2, 2, 28, 10);
RequestDmaCopyFromCharBuffer();
}
static bool32 TryWipeDamagedSectors(void)
{
int i = 0;
for (i = 0; gDamagedSaveSectors != 0 && i < 3; i++)
{
if (WipeDamagedSectors(gDamagedSaveSectors))
return FALSE;
HandleSavingData(sSaveType);
}
if (gDamagedSaveSectors != 0)
return FALSE;
return TRUE;
}
static bool16 VerifySectorWipe(u32 sector)
{
u16 sector0 = sector;
u16 i;
u32 *saveDataBuffer = (void *)&gSaveDataBuffer;
ReadFlash(sector0, 0, saveDataBuffer, 0x1000);
for (i = 0; i < 0x1000 / sizeof(u32); i++, saveDataBuffer++)
{
if (*saveDataBuffer != 0)
return TRUE;
}
return FALSE;
}
static bool32 WipeSector(u32 sector)
{
bool32 result;
u16 i, j;
i = 0;
while (i < 130)
{
for (j = 0; j < 0x1000; j++)
{
ProgramFlashByte(sector, j, 0);
}
result = VerifySectorWipe(sector);
i++;
if (!result)
break;
}
return result;
}
static bool32 WipeDamagedSectors(u32 damagedSectors)
{
int i;
for (i = 0; i < 32; i++)
{
if (damagedSectors & (1 << i))
{
if (!WipeSector(i))
{
damagedSectors &= ~(1 << i);
}
}
}
if (damagedSectors == 0)
return FALSE;
else
return TRUE;
}
+1 -1
View File
@@ -307,7 +307,7 @@ static void Task_HandleShopMenuSell(u8 taskId)
static void CB2_GoToSellMenu(void)
{
GoToBagMenu(2, POCKET_POKE_BALLS, CB2_ReturnToField);
GoToBagMenu(ITEMMENULOCATION_SHOP, OPEN_BAG_LAST, CB2_ReturnToField);
gFieldCallback = MapPostLoadHook_ReturnToShopMenu;
}
+3 -13
View File
@@ -34,16 +34,6 @@
#include "fieldmap.h"
#include "strings.h"
enum TeachyTvScript
{
TTVSCR_BATTLE,
TTVSCR_STATUS,
TTVSCR_MATCHUPS,
TTVSCR_CATCHING,
TTVSCR_TMS,
TTVSCR_REGISTER
};
struct TeachyTvCtrlBlk
{
MainCallback callback;
@@ -805,7 +795,7 @@ static void TTVcmd_NpcMoveAndSetupTextPrinter(u8 taskId)
if (spriteAddr->pos2.x == 0x78)
{
StartSpriteAnim(&gSprites[data[1]], 0);
TeachyTvInitTextPrinter(gTeachyTvText_PokeDudeSaysHello);
TeachyTvInitTextPrinter(gTeachyTvText_PokedudeSaysHello);
data[2] = 0;
++data[3];
}
@@ -1103,9 +1093,9 @@ static void TTVcmd_TaskBattleOrFadeByOptionChosen(u8 taskId)
static void TeachyTvSetupBagItemsByOptionChosen(void)
{
if (sStaticResources.whichScript == TTVSCR_TMS)
sub_810B108(10);
InitPokedudeBag(ITEMMENULOCATION_TTVSCR_TMS);
else
sub_810B108(9);
InitPokedudeBag(ITEMMENULOCATION_TTVSCR_REGISTER);
}
static void TeachyTvPostBattleFadeControl(u8 taskId)
+17 -17
View File
@@ -67,7 +67,7 @@ struct UnkStruct_203B11C
static EWRAM_DATA struct UnkStruct_203B10C sTMCaseStaticResources = {};
static EWRAM_DATA struct UnkStruct_203B118 * sTMCaseDynamicResources = NULL;
static EWRAM_DATA struct UnkStruct_203B11C * sPokeDudePackBackup = NULL;
static EWRAM_DATA struct UnkStruct_203B11C * sPokedudePackBackup = NULL;
static EWRAM_DATA void * sTilemapBuffer = NULL; // tilemap buffer
static EWRAM_DATA struct ListMenuItem * sListMenuItemsBuffer = NULL;
static EWRAM_DATA u8 (* sListMenuStringsBuffer)[29] = NULL;
@@ -977,7 +977,7 @@ static void Task_SelectTMAction_FromSellMenu(u8 taskId)
{
CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat);
TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Subtask_CloseContextMenuAndReturnToMain);
TMCase_PrintMessageWithFollowupTask(taskId, GetDialogBoxFontId(), gStringVar4, Subtask_CloseContextMenuAndReturnToMain);
}
else
{
@@ -993,7 +993,7 @@ static void Task_SelectTMAction_FromSellMenu(u8 taskId)
data[2] = 99;
CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_HowManyWouldYouLikeToSell);
TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Task_InitQuantitySelectUI);
TMCase_PrintMessageWithFollowupTask(taskId, GetDialogBoxFontId(), gStringVar4, Task_InitQuantitySelectUI);
}
}
}
@@ -1004,7 +1004,7 @@ static void Task_AskConfirmSaleWithAmount(u8 taskId)
ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
StringExpandPlaceholders(gStringVar4, gText_ICanPayThisMuch_WouldThatBeOkay);
TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Task_PlaceYesNoBox);
TMCase_PrintMessageWithFollowupTask(taskId, GetDialogBoxFontId(), gStringVar4, Task_PlaceYesNoBox);
}
static void Task_PlaceYesNoBox(u8 taskId)
@@ -1133,13 +1133,13 @@ static void Task_AfterSale_ReturnToList(u8 taskId)
}
}
void PokeDude_InitTMCase(void)
void Pokedude_InitTMCase(void)
{
sPokeDudePackBackup = AllocZeroed(sizeof(*sPokeDudePackBackup));
memcpy(sPokeDudePackBackup->bagPocket_TMHM, gSaveBlock1Ptr->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
memcpy(sPokeDudePackBackup->bagPocket_KeyItems, gSaveBlock1Ptr->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
sPokeDudePackBackup->unk_160 = sTMCaseStaticResources.selectedRow;
sPokeDudePackBackup->unk_162 = sTMCaseStaticResources.scrollOffset;
sPokedudePackBackup = AllocZeroed(sizeof(*sPokedudePackBackup));
memcpy(sPokedudePackBackup->bagPocket_TMHM, gSaveBlock1Ptr->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
memcpy(sPokedudePackBackup->bagPocket_KeyItems, gSaveBlock1Ptr->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
sPokedudePackBackup->unk_160 = sTMCaseStaticResources.selectedRow;
sPokedudePackBackup->unk_162 = sTMCaseStaticResources.scrollOffset;
ClearItemSlots(gSaveBlock1Ptr->bagPocket_TMHM, NELEMS(gSaveBlock1Ptr->bagPocket_TMHM));
ClearItemSlots(gSaveBlock1Ptr->bagPocket_KeyItems, NELEMS(gSaveBlock1Ptr->bagPocket_KeyItems));
ResetTMCaseCursorPos();
@@ -1234,7 +1234,7 @@ static void Task_TMCaseDude_Playback(u8 taskId)
break;
case 8:
FillBG2RowWithPalette_2timesNplus1(1);
TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokeDudeText_TMTypes, 0);
TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokedudeText_TMTypes, 0);
gTasks[taskId].func = Task_TMCaseDude_Playback;
data[8]++;
break;
@@ -1256,7 +1256,7 @@ static void Task_TMCaseDude_Playback(u8 taskId)
break;
case 18:
FillBG2RowWithPalette_2timesNplus1(1);
TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokeDudeText_ReadTMDescription, NULL);
TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokedudeText_ReadTMDescription, NULL);
gTasks[taskId].func = Task_TMCaseDude_Playback; // this function
data[8]++;
break;
@@ -1267,12 +1267,12 @@ static void Task_TMCaseDude_Playback(u8 taskId)
case 21:
if (!gPaletteFade.active)
{
memcpy(gSaveBlock1Ptr->bagPocket_TMHM, sPokeDudePackBackup->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, sPokeDudePackBackup->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
memcpy(gSaveBlock1Ptr->bagPocket_TMHM, sPokedudePackBackup->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, sPokedudePackBackup->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
DestroyListMenuTask(data[0], NULL, NULL);
sTMCaseStaticResources.selectedRow = sPokeDudePackBackup->unk_160;
sTMCaseStaticResources.scrollOffset = sPokeDudePackBackup->unk_162;
Free(sPokeDudePackBackup);
sTMCaseStaticResources.selectedRow = sPokedudePackBackup->unk_160;
sTMCaseStaticResources.scrollOffset = sPokedudePackBackup->unk_162;
Free(sPokedudePackBackup);
CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, 0x400);
CB2_SetUpReshowBattleScreenAfterMenu();
BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, 0);
+20 -15
View File
@@ -1,13 +1,22 @@
.align 2
.include "main.o"
.align 2
.include "bg.o"
.align 2
.include "text_printer.o"
.align 2
.include "window.o"
.align 2
.include "text.o"
.align 2
.include "sprite.o"
.align 2
.include "link.o"
.align 4
.include "battle_main.o"
.align 2
.include "random.o"
.align 2
.include "load_save.o"
.align 2
@@ -35,6 +44,7 @@ gUnknown_300502C: @ 300502C
gUnknown_3005030: @ 3005030
.space 0x10
.align 2
.include "fieldmap.o"
.align 4
@@ -47,16 +57,21 @@ gUnknown_3005068: @ 3005068
gUnknown_300506C: @ 300506C
.space 0x4
.align 2
.include "scrcmd.o"
.align 2
gSelectedObjectEvent: @ 3005074
.space 0x4
gUnknown_3005078: @ 3005078
.space 0x4
.align 2
.include "event_data.o"
.align 2
.include "sound.o"
.align 2
.include "task.o"
@ what is this?
@@ -71,10 +86,8 @@ gUnknown_3005078: @ 3005078
.include "save.o"
.align 2
.include "battle_anim_special.o"
gUnknown_3005430: @ 3005430
.space 0x10
.align 2
.include "save_failed_screen.o"
.align 4
.include "link_rfu_2.o"
.align 4
@@ -83,31 +96,23 @@ gUnknown_3005430: @ 3005430
.include "list_menu.o"
.align 2
.include "quest_log.o"
sNumQuestLogs: @ 3005E8C
.space 0x4
gUnknown_3005E90: @ 3005E90
.space 0x4
gUnknown_3005E94: @ 3005E94
.space 0x4
.align 2
.include "party_menu.o"
.align 2
.include "help_system_812B1E0.o"
.align 4
.include "fame_checker.o"
.align 2
.include "help_system.o"
.align 4
.include "mevent.o"
.align 4
.include "battle_controller_pokedude.o"
.align 4
.include "berry_fix_program.o"
.align 2
.include "m4a.o"
.align 2
.include "agb_flash.o"
.align 2
.include "librfu_stwi.o"
+11 -60
View File
@@ -16,7 +16,6 @@
.align 2
.include "src/link.o"
.space 8
.align 2
.include "src/battle_controllers.o"
.align 2
@@ -144,6 +143,7 @@ gUnknown_20386A4: @ 20386A4
gUnknown_20386A8: @ 20386A8
.space 0x4
.align 2
.include "src/battle_setup.o"
.align 2
.include "src/wild_encounter.o"
@@ -154,7 +154,6 @@ gFieldEffectArguments: @ 20386E0
.align 2
.include "src/scanline_effect.o"
.align 2
.include "src/option_menu.o"
.align 2
@@ -268,14 +267,10 @@ gUnknown_203998C: @ 203998C
.include "src/menu_helpers.o"
.align 2
.include "src/region_map.o"
.align 2
gAIScriptPtr: @ 2039A00
.space 0x4
gPlayerFacingPosition: @ 2039A04
.space 0x8
.include "src/battle_ai_script_commands.o"
.align 2
.include "src/fldeff_rocksmash.o"
.align 2
.include "src/field_specials.o"
.align 2
@@ -310,15 +305,13 @@ gPlayerFacingPosition: @ 2039A04
.include "src/diploma.o"
.align 2
gUnknown_203AB4C: @ 203AB4C
.space 0x4
gUnknown_203AB50: @ 203AB50
.space 0x4
.include "src/save_failed_screen.o"
.align 2
gUnknown_203AB54: @ 203AB54
.space 0x4
.align 2
.include "src/new_menu_helpers.o"
.align 2
.include "src/box_party_pokemon_dropdown.o"
@@ -342,45 +335,7 @@ gUnknown_203ACF0: @ 203ACF0
.align 2
.include "src/list_menu.o"
.align 2
gUnknown_203ACFC: @ 203ACFC
.space 0x6
gUnknown_203AD02: @ 203AD02
.space 0x2
gUnknown_203AD04: @ 203AD04
.space 0x6
gUnknown_203AD0A: @ 203AD0A
.space 0x6
gUnknown_203AD10: @ 203AD10
.space 0x4
gUnknown_203AD14: @ 203AD14
.space 0x4
gUnknown_203AD18: @ 203AD18
.space 0x4
gUnknown_203AD1C: @ 203AD1C
.space 0x4
gUnknown_203AD20: @ 203AD20
.space 0x4
gUnknown_203AD24: @ 203AD24
.space 0x4
gUnknown_203AD28: @ 203AD28
.space 0x4
gUnknown_203AD2C: @ 203AD2C
.space 0x4
gSpecialVar_ItemId: @ 203AD30
.space 0x4
.include "src/item_menu.o"
.align 2
.include "src/bag.o"
.align 2
@@ -460,6 +415,7 @@ gUnknown_203B0E8: @ 203B0E8
.include "src/oak_speech.o"
.align 2
.include "src/tm_case.o"
.align 2
.include "src/menu_indicators.o"
gUnknown_203B140: @ 203B140
@@ -506,13 +462,8 @@ gUnknown_203B170: @ 203B170
.include "src/berry_pouch.o"
.align 2
.include "src/slot_machine.o"
sLocationHistory: @ 203F3A8
.space 0x6
sRoamerLocation: @ 203F3AE
.space 0x2
.align 2
.include "src/roamer.o"
.align 2
.include "src/mystery_gift_menu.o"
.align 2