checkpoint
This commit is contained in:
555
asm/shop.s
555
asm/shop.s
@@ -5,561 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start BuyMenuAddScrollIndicatorArrows
|
||||
@ void BuyMenuAddScrollIndicatorArrows()
|
||||
BuyMenuAddScrollIndicatorArrows: @ 80E01C8
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x10
|
||||
ldr r5, =gShopDataPtr
|
||||
ldr r2, [r5]
|
||||
ldr r4, =0x0000200b
|
||||
adds r0, r2, r4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0xFF
|
||||
bne _080E0206
|
||||
ldr r0, =gMartInfo
|
||||
ldrh r1, [r0, 0xC]
|
||||
adds r0, r1, 0x1
|
||||
cmp r0, 0x8
|
||||
ble _080E0206
|
||||
subs r0, r1, 0x7
|
||||
str r0, [sp]
|
||||
ldr r0, =0x00000834
|
||||
str r0, [sp, 0x4]
|
||||
str r0, [sp, 0x8]
|
||||
ldr r1, =0x00002008
|
||||
adds r0, r2, r1
|
||||
str r0, [sp, 0xC]
|
||||
movs r0, 0x2
|
||||
movs r1, 0xAC
|
||||
movs r2, 0xC
|
||||
movs r3, 0x94
|
||||
bl AddScrollIndicatorArrowPairParameterized
|
||||
ldr r1, [r5]
|
||||
adds r1, r4
|
||||
strb r0, [r1]
|
||||
_080E0206:
|
||||
add sp, 0x10
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end BuyMenuAddScrollIndicatorArrows
|
||||
|
||||
thumb_func_start BuyMenuRemoveScrollIndicatorArrows
|
||||
@ void BuyMenuRemoveScrollIndicatorArrows()
|
||||
BuyMenuRemoveScrollIndicatorArrows: @ 80E0224
|
||||
push {r4,lr}
|
||||
ldr r4, =gShopDataPtr
|
||||
ldr r0, [r4]
|
||||
ldr r2, =0x0000200b
|
||||
adds r1, r0, r2
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0xFF
|
||||
beq _080E0242
|
||||
bl RemoveScrollIndicatorArrowPair
|
||||
ldr r0, [r4]
|
||||
ldr r1, =0x0000200b
|
||||
adds r0, r1
|
||||
movs r1, 0xFF
|
||||
strb r1, [r0]
|
||||
_080E0242:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end BuyMenuRemoveScrollIndicatorArrows
|
||||
|
||||
thumb_func_start BuyMenuPrintCursor
|
||||
@ void BuyMenuPrintCursor(u8 taskId, u8 colorSetId)
|
||||
BuyMenuPrintCursor: @ 80E0250
|
||||
push {r4,lr}
|
||||
sub sp, 0x8
|
||||
adds r4, r1, 0
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
bl ListMenuGetYCoordForPrintingArrowCursor
|
||||
adds r3, r0, 0
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
ldr r1, =gText_SelectorArrow2
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
str r4, [sp, 0x4]
|
||||
movs r0, 0x1
|
||||
movs r2, 0
|
||||
bl BuyMenuPrint
|
||||
add sp, 0x8
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end BuyMenuPrintCursor
|
||||
|
||||
thumb_func_start BuyMenuAddItemIcon
|
||||
@ void BuyMenuAddItemIcon(u16 id, u8 iconSlot)
|
||||
BuyMenuAddItemIcon: @ 80E0284
|
||||
push {r4,lr}
|
||||
sub sp, 0x8
|
||||
lsls r0, 16
|
||||
lsrs r2, r0, 16
|
||||
lsls r1, 24
|
||||
lsrs r3, r1, 24
|
||||
ldr r0, =gShopDataPtr
|
||||
ldr r4, =0x0000200d
|
||||
adds r1, r3, r4
|
||||
ldr r0, [r0]
|
||||
adds r4, r0, r1
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0xFF
|
||||
bne _080E0310
|
||||
ldr r0, =gMartInfo
|
||||
ldrb r0, [r0, 0xF]
|
||||
cmp r0, 0
|
||||
beq _080E02AE
|
||||
ldr r0, =0x0000ffff
|
||||
cmp r2, r0
|
||||
bne _080E02F0
|
||||
_080E02AE:
|
||||
ldr r0, =0x0000083e
|
||||
adds r1, r3, r0
|
||||
adds r0, r1, 0
|
||||
bl AddItemIconSprite
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
cmp r2, 0x40
|
||||
beq _080E0310
|
||||
strb r2, [r4]
|
||||
ldr r1, =gSprites
|
||||
lsls r0, r2, 4
|
||||
adds r0, r2
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
movs r1, 0x18
|
||||
strh r1, [r0, 0x24]
|
||||
movs r1, 0x58
|
||||
strh r1, [r0, 0x26]
|
||||
b _080E0310
|
||||
.pool
|
||||
_080E02F0:
|
||||
lsls r0, r2, 24
|
||||
lsrs r0, 24
|
||||
ldr r2, =0x0000083e
|
||||
adds r1, r3, r2
|
||||
str r1, [sp]
|
||||
str r1, [sp, 0x4]
|
||||
movs r1, 0x14
|
||||
movs r2, 0x54
|
||||
movs r3, 0x1
|
||||
bl AddDecorationIconObject
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
cmp r2, 0x40
|
||||
beq _080E0310
|
||||
strb r2, [r4]
|
||||
_080E0310:
|
||||
add sp, 0x8
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end BuyMenuAddItemIcon
|
||||
|
||||
thumb_func_start BuyMenuRemoveItemIcon
|
||||
@ void BuyMenuRemoveItemIcon(u16 id, u8 iconSlot)
|
||||
BuyMenuRemoveItemIcon: @ 80E031C
|
||||
push {r4,r5,lr}
|
||||
lsls r1, 24
|
||||
lsrs r4, r1, 24
|
||||
ldr r0, =gShopDataPtr
|
||||
ldr r2, =0x0000200d
|
||||
adds r1, r4, r2
|
||||
ldr r0, [r0]
|
||||
adds r5, r0, r1
|
||||
ldrb r0, [r5]
|
||||
cmp r0, 0xFF
|
||||
beq _080E0356
|
||||
ldr r0, =0x0000083e
|
||||
adds r4, r0
|
||||
adds r0, r4, 0
|
||||
bl FreeSpriteTilesByTag
|
||||
adds r0, r4, 0
|
||||
bl FreeSpritePaletteByTag
|
||||
ldrb r1, [r5]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
ldr r1, =gSprites
|
||||
adds r0, r1
|
||||
bl DestroySprite
|
||||
movs r0, 0xFF
|
||||
strb r0, [r5]
|
||||
_080E0356:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end BuyMenuRemoveItemIcon
|
||||
|
||||
thumb_func_start BuyMenuInitBgs
|
||||
@ void BuyMenuInitBgs()
|
||||
BuyMenuInitBgs: @ 80E036C
|
||||
push {r4,lr}
|
||||
movs r0, 0
|
||||
bl ResetBgsAndClearDma3BusyFlags
|
||||
ldr r1, =gUnknown_08589A60
|
||||
movs r0, 0
|
||||
movs r2, 0x4
|
||||
bl InitBgsFromTemplates
|
||||
ldr r4, =gShopDataPtr
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x80
|
||||
lsls r0, 4
|
||||
adds r1, r0
|
||||
movs r0, 0x1
|
||||
bl SetBgTilemapBuffer
|
||||
ldr r1, [r4]
|
||||
movs r0, 0xC0
|
||||
lsls r0, 5
|
||||
adds r1, r0
|
||||
movs r0, 0x2
|
||||
bl SetBgTilemapBuffer
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x80
|
||||
lsls r0, 5
|
||||
adds r1, r0
|
||||
movs r0, 0x3
|
||||
bl SetBgTilemapBuffer
|
||||
movs r0, 0x10
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x12
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x14
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x16
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x18
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x1A
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x1C
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x1E
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x50
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r1, 0x82
|
||||
lsls r1, 5
|
||||
movs r0, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0
|
||||
bl ShowBg
|
||||
movs r0, 0x1
|
||||
bl ShowBg
|
||||
movs r0, 0x2
|
||||
bl ShowBg
|
||||
movs r0, 0x3
|
||||
bl ShowBg
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end BuyMenuInitBgs
|
||||
|
||||
thumb_func_start BuyMenuDecompressBgGraphics
|
||||
@ void BuyMenuDecompressBgGraphics()
|
||||
BuyMenuDecompressBgGraphics: @ 80E0424
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
ldr r1, =gBuyMenuFrame_Gfx
|
||||
movs r2, 0xE8
|
||||
lsls r2, 2
|
||||
ldr r3, =0x000003e3
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x1
|
||||
bl decompress_and_copy_tile_data_to_vram
|
||||
ldr r0, =gBuyMenuFrame_Tilemap
|
||||
ldr r1, =gShopDataPtr
|
||||
ldr r1, [r1]
|
||||
bl LZDecompressWram
|
||||
ldr r0, =gMenuMoneyPal
|
||||
movs r1, 0xC0
|
||||
movs r2, 0x20
|
||||
bl LoadCompressedPalette
|
||||
add sp, 0x4
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end BuyMenuDecompressBgGraphics
|
||||
|
||||
thumb_func_start BuyMenuInitWindows
|
||||
@ void BuyMenuInitWindows()
|
||||
BuyMenuInitWindows: @ 80E0468
|
||||
push {lr}
|
||||
ldr r0, =gUnknown_08589A70
|
||||
bl InitWindows
|
||||
bl DeactivateAllTextPrinters
|
||||
movs r0, 0
|
||||
movs r1, 0x1
|
||||
movs r2, 0xD0
|
||||
bl LoadUserWindowBorderGfx
|
||||
movs r0, 0
|
||||
movs r1, 0xA
|
||||
movs r2, 0xE0
|
||||
bl LoadMessageBoxGfx
|
||||
movs r0, 0
|
||||
bl PutWindowTilemap
|
||||
movs r0, 0x1
|
||||
bl PutWindowTilemap
|
||||
movs r0, 0x2
|
||||
bl PutWindowTilemap
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end BuyMenuInitWindows
|
||||
|
||||
thumb_func_start BuyMenuPrint
|
||||
@ void BuyMenuPrint(u8 windowId, u8 *str, u8 x, u8 y, u8 speed, u8 colorSetId)
|
||||
BuyMenuPrint: @ 80E04A4
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x14
|
||||
ldr r6, [sp, 0x24]
|
||||
ldr r5, [sp, 0x28]
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
lsls r5, 24
|
||||
lsrs r5, 24
|
||||
movs r4, 0
|
||||
str r4, [sp]
|
||||
str r4, [sp, 0x4]
|
||||
lsls r4, r5, 1
|
||||
adds r4, r5
|
||||
ldr r5, =gUnknown_08589AB0
|
||||
adds r4, r5
|
||||
str r4, [sp, 0x8]
|
||||
lsls r6, 24
|
||||
asrs r6, 24
|
||||
str r6, [sp, 0xC]
|
||||
str r1, [sp, 0x10]
|
||||
movs r1, 0x1
|
||||
bl AddTextPrinterParameterized2
|
||||
add sp, 0x14
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end BuyMenuPrint
|
||||
|
||||
thumb_func_start BuyMenuDisplayMessage
|
||||
@ void BuyMenuDisplayMessage(u8 taskId, u8 *str, void ( *callback)(u8 taskId))
|
||||
BuyMenuDisplayMessage: @ 80E04E8
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x10
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
adds r6, r2, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
bl GetPlayerTextSpeed
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
movs r1, 0x1
|
||||
str r1, [sp]
|
||||
str r0, [sp, 0x4]
|
||||
str r5, [sp, 0x8]
|
||||
str r6, [sp, 0xC]
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x5
|
||||
movs r2, 0xA
|
||||
movs r3, 0xE
|
||||
bl DisplayMessageAndContinueTask
|
||||
movs r0, 0
|
||||
bl schedule_bg_copy_tilemap_to_vram
|
||||
add sp, 0x10
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end BuyMenuDisplayMessage
|
||||
|
||||
thumb_func_start BuyMenuDrawGraphics
|
||||
@ void BuyMenuDrawGraphics()
|
||||
BuyMenuDrawGraphics: @ 80E0524
|
||||
push {lr}
|
||||
bl BuyMenuDrawMapGraphics
|
||||
bl BuyMenuCopyMenuBgToBg1TilemapBuffer
|
||||
movs r0, 0x13
|
||||
movs r1, 0xB
|
||||
bl AddMoneyLabelObject
|
||||
ldr r0, =gSaveBlock1Ptr
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x92
|
||||
lsls r1, 3
|
||||
adds r0, r1
|
||||
bl GetMoney
|
||||
adds r3, r0, 0
|
||||
movs r0, 0
|
||||
movs r1, 0x1
|
||||
movs r2, 0xD
|
||||
bl PrintMoneyAmountInMoneyBoxWithBorder
|
||||
movs r0, 0
|
||||
bl schedule_bg_copy_tilemap_to_vram
|
||||
movs r0, 0x1
|
||||
bl schedule_bg_copy_tilemap_to_vram
|
||||
movs r0, 0x2
|
||||
bl schedule_bg_copy_tilemap_to_vram
|
||||
movs r0, 0x3
|
||||
bl schedule_bg_copy_tilemap_to_vram
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end BuyMenuDrawGraphics
|
||||
|
||||
thumb_func_start BuyMenuDrawMapGraphics
|
||||
@ void BuyMenuDrawMapGraphics()
|
||||
BuyMenuDrawMapGraphics: @ 80E0570
|
||||
push {lr}
|
||||
bl BuyMenuCollectEventObjectData
|
||||
bl BuyMenuDrawEventObjects
|
||||
bl BuyMenuDrawMapBg
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end BuyMenuDrawMapGraphics
|
||||
|
||||
thumb_func_start BuyMenuDrawMapBg
|
||||
@ void BuyMenuDrawMapBg()
|
||||
BuyMenuDrawMapBg: @ 80E0584
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x4
|
||||
ldr r0, =gMapHeader
|
||||
ldr r0, [r0]
|
||||
mov r9, r0
|
||||
mov r4, sp
|
||||
adds r4, 0x2
|
||||
mov r0, sp
|
||||
adds r1, r4, 0
|
||||
bl GetXYCoordsOneStepInFrontOfPlayer
|
||||
mov r1, sp
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
subs r0, 0x4
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r4]
|
||||
subs r0, 0x4
|
||||
strh r0, [r4]
|
||||
movs r1, 0
|
||||
mov r10, r4
|
||||
_080E05B6:
|
||||
movs r4, 0
|
||||
lsls r7, r1, 16
|
||||
asrs r0, r7, 16
|
||||
mov r8, r0
|
||||
_080E05BE:
|
||||
mov r0, sp
|
||||
movs r1, 0
|
||||
ldrsh r0, [r0, r1]
|
||||
lsls r4, 16
|
||||
asrs r5, r4, 16
|
||||
adds r0, r5
|
||||
mov r2, r10
|
||||
movs r3, 0
|
||||
ldrsh r1, [r2, r3]
|
||||
add r1, r8
|
||||
bl MapGridGetMetatileIdAt
|
||||
lsls r0, 16
|
||||
lsrs r6, r0, 16
|
||||
adds r0, r5, 0
|
||||
mov r1, r8
|
||||
bl BuyMenuCheckForOverlapWithMenuBg
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _080E0608
|
||||
mov r0, sp
|
||||
movs r1, 0
|
||||
ldrsh r0, [r0, r1]
|
||||
adds r0, r5
|
||||
mov r2, r10
|
||||
movs r3, 0
|
||||
ldrsh r1, [r2, r3]
|
||||
add r1, r8
|
||||
bl MapGridGetMetatileLayerTypeAt
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
b _080E060A
|
||||
.pool
|
||||
_080E0608:
|
||||
movs r5, 0x1
|
||||
_080E060A:
|
||||
ldr r0, =0x000001ff
|
||||
cmp r6, r0
|
||||
bhi _080E062C
|
||||
asrs r0, r4, 16
|
||||
mov r2, r9
|
||||
ldr r1, [r2, 0x10]
|
||||
lsls r3, r6, 4
|
||||
ldr r2, [r1, 0xC]
|
||||
adds r2, r3
|
||||
asrs r1, r7, 16
|
||||
adds r3, r5, 0
|
||||
bl BuyMenuDrawMapMetatile
|
||||
b _080E0644
|
||||
.pool
|
||||
_080E062C:
|
||||
asrs r0, r4, 16
|
||||
mov r3, r9
|
||||
ldr r2, [r3, 0x14]
|
||||
ldr r3, =0xfffffe00
|
||||
adds r1, r6, r3
|
||||
lsls r1, 4
|
||||
ldr r2, [r2, 0xC]
|
||||
adds r2, r1
|
||||
asrs r1, r7, 16
|
||||
adds r3, r5, 0
|
||||
bl BuyMenuDrawMapMetatile
|
||||
_080E0644:
|
||||
movs r1, 0x80
|
||||
lsls r1, 9
|
||||
adds r0, r4, r1
|
||||
lsrs r4, r0, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0xE
|
||||
ble _080E05BE
|
||||
adds r0, r7, r1
|
||||
lsrs r1, r0, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0x9
|
||||
ble _080E05B6
|
||||
add sp, 0x4
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end BuyMenuDrawMapBg
|
||||
|
||||
thumb_func_start BuyMenuDrawMapMetatile
|
||||
@ void BuyMenuDrawMapMetatile(u16 x, u16 y, u16 *src, u8 metatileLayerType)
|
||||
BuyMenuDrawMapMetatile: @ 80E0670
|
||||
|
||||
Reference in New Issue
Block a user