tm_case finish code

This commit is contained in:
PikalaxALT 2019-04-14 20:29:37 -04:00
parent c95740ab85
commit a4b19e9187
10 changed files with 278 additions and 885 deletions

View File

@ -1,878 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_8133244
sub_8133244: @ 8133244
push {r4,lr}
ldr r0, _081332E0 @ =gUnknown_8463190
bl InitWindows
bl DeactivateAllTextPrinters
movs r0, 0
movs r1, 0x5B
movs r2, 0xE0
bl sub_815001C
movs r0, 0
movs r1, 0x64
movs r2, 0xB0
bl sub_814FEAC
movs r0, 0
movs r1, 0x78
movs r2, 0xD0
bl sub_814FF2C
ldr r4, _081332E4 @ =gUnknown_841F408
adds r0, r4, 0
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
adds r0, r4, 0
movs r1, 0xA0
movs r2, 0x20
bl LoadPalette
ldr r4, _081332E8 @ =gUnknown_8463180
adds r0, r4, 0
movs r1, 0xF6
movs r2, 0x4
bl LoadPalette
adds r0, r4, 0
movs r1, 0xD6
movs r2, 0x4
bl LoadPalette
movs r0, 0xC0
movs r1, 0x1
bl sub_8107D38
movs r4, 0
_081332A4:
adds r0, r4, 0
movs r1, 0
bl FillWindowPixelBuffer
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x8
bls _081332A4
movs r0, 0
bl PutWindowTilemap
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x3
bl PutWindowTilemap
movs r0, 0x4
bl PutWindowTilemap
movs r0, 0x5
bl PutWindowTilemap
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081332E0: .4byte gUnknown_8463190
_081332E4: .4byte gUnknown_841F408
_081332E8: .4byte gUnknown_8463180
thumb_func_end sub_8133244
thumb_func_start sub_81332EC
sub_81332EC: @ 81332EC
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x14
mov r9, r3
ldr r3, [sp, 0x30]
ldr r4, [sp, 0x34]
ldr r6, [sp, 0x38]
ldr r5, [sp, 0x3C]
mov r8, r5
ldr r5, [sp, 0x40]
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
mov r7, r9
lsls r7, 24
lsrs r7, 24
mov r9, r7
lsls r3, 24
lsrs r3, 24
lsls r4, 24
lsrs r4, 24
lsls r6, 24
lsrs r6, 24
lsls r5, 24
lsrs r5, 24
str r4, [sp]
str r6, [sp, 0x4]
lsls r4, r5, 1
adds r4, r5
ldr r5, _08133350 @ =gUnknown_8463184
adds r4, r5
str r4, [sp, 0x8]
mov r4, r8
lsls r4, 24
asrs r4, 24
str r4, [sp, 0xC]
str r2, [sp, 0x10]
mov r2, r9
bl AddTextPrinterParametrized2
add sp, 0x14
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08133350: .4byte gUnknown_8463184
thumb_func_end sub_81332EC
thumb_func_start sub_8133354
sub_8133354: @ 8133354
push {lr}
lsls r0, 24
lsrs r0, 24
movs r1, 0
movs r2, 0x5B
movs r3, 0xE
bl SetWindowBorderStyle
pop {r0}
bx r0
thumb_func_end sub_8133354
thumb_func_start sub_8133368
sub_8133368: @ 8133368
push {lr}
lsls r0, 24
lsrs r0, 24
movs r1, 0
movs r2, 0x78
movs r3, 0xD
bl SetWindowBorderStyle
pop {r0}
bx r0
thumb_func_end sub_8133368
thumb_func_start sub_813337C
sub_813337C: @ 813337C
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x10
adds r5, r0, 0
adds r4, r1, 0
adds r6, r2, 0
mov r8, r3
lsls r5, 24
lsrs r5, 24
lsls r4, 24
lsrs r4, 24
bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
str r4, [sp]
str r0, [sp, 0x4]
str r6, [sp, 0x8]
mov r0, r8
str r0, [sp, 0xC]
adds r0, r5, 0
movs r1, 0x6
movs r2, 0x64
movs r3, 0xB
bl DisplayMessageAndContinueTask
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_813337C
thumb_func_start sub_81333C4
sub_81333C4: @ 81333C4
push {r4,lr}
sub sp, 0xC
ldr r4, _081333FC @ =gUnknown_84166D3
movs r0, 0x1
adds r1, r4, 0
movs r2, 0
bl GetStringWidth
movs r2, 0x48
subs r2, r0
lsrs r2, 1
lsls r2, 24
lsrs r2, 24
ldr r0, _08133400 @ =gUnknown_8463184
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0x3
movs r1, 0x1
movs r3, 0x1
bl box_print
add sp, 0xC
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081333FC: .4byte gUnknown_84166D3
_08133400: .4byte gUnknown_8463184
thumb_func_end sub_81333C4
thumb_func_start sub_8133404
sub_8133404: @ 8133404
push {lr}
movs r0, 0x4
movs r1, 0x13
movs r2, 0
movs r3, 0
bl sub_8107D68
movs r0, 0x4
movs r1, 0x14
movs r2, 0
movs r3, 0xC
bl sub_8107D68
movs r0, 0x4
movs r1, 0x15
movs r2, 0
movs r3, 0x18
bl sub_8107D68
movs r0, 0x4
movs r1, 0x16
movs r2, 0
movs r3, 0x24
bl sub_8107D68
movs r0, 0x4
movs r1, 0x2
bl CopyWindowToVram
pop {r0}
bx r0
thumb_func_end sub_8133404
thumb_func_start sub_8133444
sub_8133444: @ 8133444
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x14
lsls r0, 16
lsrs r4, r0, 16
movs r0, 0x28
str r0, [sp]
movs r0, 0x30
str r0, [sp, 0x4]
movs r0, 0x5
movs r1, 0
movs r2, 0
movs r3, 0
bl FillWindowPixelRect
cmp r4, 0
bne _081334A8
movs r4, 0
movs r5, 0
_0813346E:
lsls r0, r4, 1
adds r0, r4
lsls r0, 26
lsrs r0, 24
str r0, [sp]
str r5, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0xFF
str r0, [sp, 0xC]
movs r0, 0x3
str r0, [sp, 0x10]
movs r0, 0x5
movs r1, 0x3
ldr r2, _081334A4 @ =gUnknown_8416213
movs r3, 0x7
bl sub_81332EC
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _0813346E
movs r0, 0x5
movs r1, 0x2
bl CopyWindowToVram
b _0813359A
.align 2, 0
_081334A4: .4byte gUnknown_8416213
_081334A8:
adds r0, r4, 0
bl ItemIdToBattleMoveId
lsls r0, 16
lsrs r7, r0, 16
ldr r1, _081334D8 @ =gBattleMoves
lsls r0, r7, 1
adds r0, r7
lsls r0, 2
adds r5, r0, r1
ldrb r1, [r5, 0x2]
adds r1, 0x1
lsls r1, 24
lsrs r1, 24
movs r0, 0x5
movs r2, 0
movs r3, 0
bl sub_8107D68
ldrb r0, [r5, 0x1]
cmp r0, 0x1
bhi _081334E0
ldr r2, _081334DC @ =gUnknown_8416213
b _081334F0
.align 2, 0
_081334D8: .4byte gBattleMoves
_081334DC: .4byte gUnknown_8416213
_081334E0:
ldr r4, _08133524 @ =gStringVar1
ldrb r1, [r5, 0x1]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
adds r2, r4, 0
_081334F0:
movs r0, 0xC
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
str r0, [sp, 0x8]
movs r0, 0xFF
str r0, [sp, 0xC]
movs r0, 0x3
str r0, [sp, 0x10]
movs r0, 0x5
movs r1, 0x3
movs r3, 0x7
bl sub_81332EC
ldr r2, _08133528 @ =gBattleMoves
lsls r1, r7, 1
adds r0, r1, r7
lsls r0, 2
adds r2, r0, r2
ldrb r0, [r2, 0x3]
adds r6, r1, 0
cmp r0, 0
bne _08133530
ldr r2, _0813352C @ =gUnknown_8416213
b _08133540
.align 2, 0
_08133524: .4byte gStringVar1
_08133528: .4byte gBattleMoves
_0813352C: .4byte gUnknown_8416213
_08133530:
ldr r4, _081335A8 @ =gStringVar1
ldrb r1, [r2, 0x3]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
adds r2, r4, 0
_08133540:
movs r0, 0x18
str r0, [sp]
movs r4, 0
str r4, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0xFF
mov r8, r0
str r0, [sp, 0xC]
movs r0, 0x3
mov r9, r0
str r0, [sp, 0x10]
movs r0, 0x5
movs r1, 0x3
movs r3, 0x7
bl sub_81332EC
ldr r5, _081335A8 @ =gStringVar1
ldr r1, _081335AC @ =gBattleMoves
adds r0, r6, r7
lsls r0, 2
adds r0, r1
ldrb r1, [r0, 0x4]
adds r0, r5, 0
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
movs r0, 0x24
str r0, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
mov r0, r8
str r0, [sp, 0xC]
mov r0, r9
str r0, [sp, 0x10]
movs r0, 0x5
movs r1, 0x3
adds r2, r5, 0
movs r3, 0x7
bl sub_81332EC
movs r0, 0x5
movs r1, 0x2
bl CopyWindowToVram
_0813359A:
add sp, 0x14
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_081335A8: .4byte gStringVar1
_081335AC: .4byte gBattleMoves
thumb_func_end sub_8133444
thumb_func_start sub_81335B0
sub_81335B0: @ 81335B0
push {r4,lr}
sub sp, 0x8
adds r4, r1, 0
adds r3, r2, 0
lsls r0, 24
lsrs r0, 24
lsls r4, 24
lsrs r4, 24
lsls r3, 24
lsrs r3, 24
ldr r1, _081335DC @ =gUnknown_8E99118
movs r2, 0x10
str r2, [sp]
movs r2, 0xC
str r2, [sp, 0x4]
adds r2, r4, 0
bl BlitBitmapToWindow
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081335DC: .4byte gUnknown_8E99118
thumb_func_end sub_81335B0
thumb_func_start sub_81335E0
sub_81335E0: @ 81335E0
push {lr}
ldr r0, _08133600 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xA4
lsls r1, 2
adds r0, r1
bl GetMoney
adds r3, r0, 0
movs r0, 0x8
movs r1, 0x78
movs r2, 0xD
bl PrintMoneyAmountInMoneyBoxWithBorder
pop {r0}
bx r0
.align 2, 0
_08133600: .4byte gSaveBlock1Ptr
thumb_func_end sub_81335E0
thumb_func_start sub_8133604
sub_8133604: @ 8133604
push {lr}
sub sp, 0x10
adds r3, r1, 0
lsls r0, 24
lsrs r0, 24
ldr r1, _0813362C @ =gUnknown_84631E0
movs r2, 0x2
str r2, [sp]
movs r2, 0x5B
str r2, [sp, 0x4]
movs r2, 0xE
str r2, [sp, 0x8]
str r3, [sp, 0xC]
movs r2, 0x2
movs r3, 0
bl sub_80BF5D0
add sp, 0x10
pop {r0}
bx r0
.align 2, 0
_0813362C: .4byte gUnknown_84631E0
thumb_func_end sub_8133604
thumb_func_start sub_8133630
sub_8133630: @ 8133630
push {r4,lr}
adds r4, r0, 0
lsls r1, 24
lsrs r1, 24
ldrb r0, [r4]
cmp r0, 0xFF
bne _08133656
lsls r0, r1, 3
ldr r1, _08133660 @ =gUnknown_84631E8
adds r0, r1
bl AddWindow
strb r0, [r4]
ldrb r0, [r4]
bl sub_8133354
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
_08133656:
ldrb r0, [r4]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08133660: .4byte gUnknown_84631E8
thumb_func_end sub_8133630
thumb_func_start sub_8133664
sub_8133664: @ 8133664
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
movs r1, 0
bl sub_810F4D8
ldrb r0, [r4]
bl ClearWindowTilemap
ldrb r0, [r4]
bl RemoveWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0xFF
strb r0, [r4]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8133664
thumb_func_start sub_813368C
sub_813368C: @ 813368C
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 16
lsrs r6, r0, 16
ldr r0, _081336E8 @ =gUnknown_8463220
movs r1, 0x29
movs r2, 0x2E
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r7, r0, 24
cmp r6, 0
beq _081336F4
adds r5, r6, 0
subs r5, 0x21
lsls r5, 24
lsrs r5, 24
lsls r4, r7, 4
adds r4, r7
lsls r4, 2
ldr r0, _081336EC @ =gSprites
adds r4, r0
adds r0, r4, 0
adds r1, r5, 0
bl sub_8133714
ldr r0, _081336F0 @ =gBattleMoves
mov r8, r0
adds r0, r6, 0
bl ItemIdToBattleMoveId
lsls r0, 16
lsrs r0, 16
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
add r1, r8
ldrb r0, [r1, 0x2]
bl sub_8133730
adds r0, r4, 0
adds r1, r5, 0
b _08133700
.align 2, 0
_081336E8: .4byte gUnknown_8463220
_081336EC: .4byte gSprites
_081336F0: .4byte gBattleMoves
_081336F4:
lsls r0, r7, 4
adds r0, r7
lsls r0, 2
ldr r1, _08133710 @ =gSprites
adds r0, r1
movs r1, 0xFF
_08133700:
bl sub_8133790
adds r0, r7, 0
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08133710: .4byte gSprites
thumb_func_end sub_813368C
thumb_func_start sub_8133714
sub_8133714: @ 8133714
push {lr}
lsls r1, 24
lsrs r1, 24
cmp r1, 0x31
bls _08133726
movs r1, 0x1
bl StartSpriteAnim
b _0813372C
_08133726:
movs r1, 0
bl StartSpriteAnim
_0813372C:
pop {r0}
bx r0
thumb_func_end sub_8133714
thumb_func_start sub_8133730
sub_8133730: @ 8133730
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0xC8
lsls r0, 1
bl IndexOfSpritePaletteTag
lsls r0, 28
lsrs r5, r0, 24
ldr r2, _08133784 @ =gUnknown_203B12C
ldr r0, _08133788 @ =gUnknown_8463238
lsls r4, 1
adds r4, r0
ldrh r1, [r4]
lsls r1, 1
ldr r0, [r2]
adds r0, r1
movs r1, 0x80
lsls r1, 1
adds r2, r1, 0
adds r1, r5, 0
orrs r1, r2
movs r2, 0x20
bl LoadPalette
ldr r0, _0813378C @ =gUnknown_203B10C
ldrb r0, [r0, 0x4]
cmp r0, 0x4
bne _0813377C
adds r1, r5, 0
adds r1, 0x10
movs r0, 0x1
lsls r0, r1
movs r1, 0x4
movs r2, 0
bl BlendPalettes
_0813377C:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08133784: .4byte gUnknown_203B12C
_08133788: .4byte gUnknown_8463238
_0813378C: .4byte gUnknown_203B10C
thumb_func_end sub_8133730
thumb_func_start sub_8133790
sub_8133790: @ 8133790
push {r4-r6,lr}
adds r5, r0, 0
lsls r1, 24
lsrs r4, r1, 24
cmp r4, 0xFF
bne _081337A6
movs r6, 0x1B
movs r1, 0x36
movs r0, 0x14
strh r0, [r5, 0x26]
b _081337D8
_081337A6:
cmp r4, 0x31
bls _081337B0
adds r0, r4, 0
subs r0, 0x32
b _081337B4
_081337B0:
adds r0, r4, 0
adds r0, 0x8
_081337B4:
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 3
subs r0, r4
lsls r0, 9
movs r1, 0x3A
bl __divsi3
asrs r0, 8
movs r1, 0x29
subs r6, r1, r0
lsls r0, r4, 11
movs r1, 0x3A
bl __divsi3
asrs r0, 8
adds r1, r0, 0
adds r1, 0x2E
_081337D8:
strh r6, [r5, 0x20]
strh r1, [r5, 0x22]
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8133790
thumb_func_start sub_81337E4
sub_81337E4: @ 81337E4
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r3, _08133808 @ =gSprites
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r0, r2, r3
movs r4, 0
strh r1, [r0, 0x2E]
strh r4, [r0, 0x30]
adds r3, 0x1C
adds r2, r3
ldr r0, _0813380C @ =sub_8133810
str r0, [r2]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08133808: .4byte gSprites
_0813380C: .4byte sub_8133810
thumb_func_end sub_81337E4
thumb_func_start sub_8133810
sub_8133810: @ 8133810
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x30
ldrsh r0, [r5, r1]
cmp r0, 0
beq _08133822
cmp r0, 0x1
beq _08133886
b _081338A2
_08133822:
ldrh r1, [r5, 0x26]
movs r2, 0x26
ldrsh r0, [r5, r2]
cmp r0, 0x13
ble _08133880
movs r1, 0x2E
ldrsh r0, [r5, r1]
cmp r0, 0
beq _08133890
ldrh r0, [r5, 0x30]
adds r0, 0x1
strh r0, [r5, 0x30]
ldr r4, _08133878 @ =gBattleMoves
ldrh r0, [r5, 0x2E]
bl ItemIdToBattleMoveId
lsls r0, 16
lsrs r0, 16
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r4
ldrb r0, [r1, 0x2]
bl sub_8133730
ldr r2, _0813387C @ =0xfffffedf
adds r1, r2, 0
ldrh r0, [r5, 0x2E]
adds r1, r0
strh r1, [r5, 0x2E]
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl sub_8133714
ldrh r1, [r5, 0x2E]
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl sub_8133790
b _081338A2
.align 2, 0
_08133878: .4byte gBattleMoves
_0813387C: .4byte 0xfffffedf
_08133880:
adds r0, r1, 0
adds r0, 0xA
b _081338A0
_08133886:
ldrh r1, [r5, 0x26]
movs r2, 0x26
ldrsh r0, [r5, r2]
cmp r0, 0
bgt _0813389C
_08133890:
ldr r0, _08133898 @ =SpriteCallbackDummy
str r0, [r5, 0x1C]
b _081338A2
.align 2, 0
_08133898: .4byte SpriteCallbackDummy
_0813389C:
adds r0, r1, 0
subs r0, 0xA
_081338A0:
strh r0, [r5, 0x26]
_081338A2:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8133810
thumb_func_start sub_81338A8
sub_81338A8: @ 81338A8
push {r4,r5,lr}
sub sp, 0x8
ldr r4, _081338F4 @ =gUnknown_203B12C
movs r5, 0x88
lsls r5, 2
adds r0, r5, 0
bl Alloc
adds r1, r0, 0
str r1, [r4]
ldr r0, _081338F8 @ =gUnknown_8E84F20
bl LZDecompressWram
ldr r0, _081338FC @ =gUnknown_8E85068
ldr r1, [r4]
movs r2, 0x80
lsls r2, 2
adds r1, r2
bl LZDecompressWram
ldr r0, [r4]
adds r0, r5
str r0, [sp]
ldr r1, _08133900 @ =0xffff0000
ldr r0, [sp, 0x4]
ands r0, r1
movs r1, 0xC8
lsls r1, 1
orrs r0, r1
str r0, [sp, 0x4]
mov r0, sp
bl LoadSpritePalette
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_081338F4: .4byte gUnknown_203B12C
_081338F8: .4byte gUnknown_8E84F20
_081338FC: .4byte gUnknown_8E85068
_08133900: .4byte 0xffff0000
thumb_func_end sub_81338A8
.align 2, 0 @ Don't pad with nop.

View File

@ -58,5 +58,7 @@ void get_coro_args_x18_x1A(u8 a0, u16 *a1, u16 *a2);
void sub_81AE6C8(u8 a0, u16 *a1, u16 *a2);
void sub_810713C(u8, u16 *, u16 *);
u16 ListMenuGetYCoordForPrintingArrowCursor(u8);
void sub_8107D38(u8, u8);
void sub_8107D68(u8, u8, u8, u8);
#endif //GUARD_LIST_MENU_H

View File

@ -24,5 +24,7 @@ void sub_80BF768(void);
void sub_80BF7C8(void);
u8 sub_80BF8E4(void);
u8 sub_80BF848(s16 * a0, u16 a1);
void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 arg2, u8 arg3, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc);
void sub_80BF5D0(u8 taskId, const struct WindowTemplate * unk1, u8 unk2, u8 unk3, u8 unk4, u8 unk5, u8 unk6, const TaskFunc *ptrs);
#endif //GUARD_MENU_HELPERS_H

View File

@ -10,9 +10,9 @@ void AddMoney(u32* moneyPtr, u32 toAdd);
void RemoveMoney(u32* moneyPtr, u32 toSub);
bool8 IsEnoughForCostInVar0x8005(void);
void SubtractMoneyFromVar0x8005(void);
void PrintMoneyAmountInMoneyBoxInMoneyBox(u8 windowId, int amount, u8 speed);
void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed);
void PrintMoneyAmountInMoneyBoxInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 pallete, int amount);
void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed);
void PrintMoneyAmountInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 pallete, int amount);
void ChangeAmountInMoneyBox(int amount);
void DrawMoneyBox(int amount, u8 x, u8 y);
void HideMoneyBox(void);

View File

@ -445,6 +445,8 @@ struct BattleMove
u8 flags;
};
extern const struct BattleMove gBattleMoves[];
#define FLAG_MAKES_CONTACT 0x1
#define FLAG_PROTECT_AFFECTED 0x2
#define FLAG_MAGICCOAT_AFFECTED 0x4

View File

@ -20,6 +20,8 @@ void rbox_fill_rectangle(u8 windowId);
const u16* stdpal_get(u8 id);
const u16* GetOverworldTextboxPalettePtr(void);
void sub_8098C6C(u8 bg, u16 destOffset, u8 palOffset);
void sub_814FEAC(u8 windowId, u16 tileStart, u8 palette);
void sub_814FF2C(u8 windowId, u16 tileStart, u8 palette);
void sub_815001C(u8 windowId, u16 tileStart, u8 palette);
#endif // GUARD_TEXT_WINDOW_H

View File

@ -56,7 +56,7 @@ void PutWindowTilemap(u8 windowId);
void PutWindowRectTilemapOverridePalette(u8 windowId, u8 x, u8 y, u8 width, u8 height, u8 palette);
void ClearWindowTilemap(u8 windowId);
void PutWindowRectTilemap(u8 windowId, u8 x, u8 y, u8 width, u8 height);
void BlitBitmapToWindow(u8 windowId, u8 *pixels, u16 x, u16 y, u16 width, u16 height);
void BlitBitmapToWindow(u8 windowId, const u8 *pixels, u16 x, u16 y, u16 width, u16 height);
void BlitBitmapRectToWindow(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight);
void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height);
void CopyToWindowPixelBuffer(u8 windowId, const u8 *src, u16 size, u16 tileOffset);

View File

@ -230,7 +230,6 @@ SECTIONS {
src/menu2.o(.text);
src/oak_speech.o(.text);
src/tm_case.o(.text);
asm/tm_case.o(.text);
asm/menu_indicators.o(.text);
asm/pokedex_area_markers.o(.text);
asm/pokemon_summary_screen.o(.text);

View File

@ -6,6 +6,7 @@
#include "palette.h"
#include "task.h"
#include "text.h"
#include "text_window.h"
#include "menu.h"
#include "menu_helpers.h"
#include "new_menu_helpers.h"
@ -109,20 +110,26 @@ void sub_8133404(void);
void sub_8133444(u16 itemId);
void sub_81335B0(u8 windowId, u8 x, u8 y);
void sub_81335E0(void);
void sub_8133604(u8 taskId, const u8 *const *ptrs);
void sub_8133604(u8 taskId, const TaskFunc * ptrs);
u8 sub_8133630(u8 * a0, u8 a1);
void sub_8133664(u8 * a0);
u8 sub_813368C(u16 itemId);
void sub_8133714(struct Sprite * sprite, u8 var);
void sub_8133730(u8 type);
void sub_8133790(struct Sprite * sprite, u8 var);
void sub_81337E4(u8 a0, u16 itemId);
void sub_8133810(struct Sprite * sprite);
void sub_81338A8(void);
// event scripts
extern const u8 gUnknown_8416213[];
extern const u8 gUnknown_8416226[];
extern const u8 gFameCheckerText_ListMenuCursor[];
extern const u8 gUnknown_84162B9[];
extern const u8 gUnknown_8416301[];
extern const u8 gUnknown_841632A[];
extern const u8 gUnknown_841635E[];
extern const u8 gUnknown_84166D3[];
extern const u8 gUnknown_84166DB[];
extern const u8 gUnknown_84166E1[];
extern const u8 gUnknown_84166FF[];
@ -134,16 +141,25 @@ extern const u8 gUnknown_8416959[];
extern const u8 gUnknown_841C587[];
extern const u8 gUnknown_841C693[];
extern const u16 gUnknown_841F408[];
// my rodata
extern const struct BgTemplate gUnknown_8463134[3];
extern void (*const gUnknown_8463140[])(u8 taskId);
extern const struct MenuAction gUnknown_8463150[];
extern const u8 gUnknown_8463168[];
extern const u8 gUnknown_846316B[];
extern const u8 *const gUnknown_8463170[];
extern const TaskFunc gUnknown_8463170[];
extern const u8 gUnknown_8463178[];
extern const u8 gUnknown_846317C[];
extern const u16 gUnknown_8463180[];
extern const struct TextColor gUnknown_8463184[];
extern const struct WindowTemplate gUnknown_8463190[];
extern const struct WindowTemplate gUnknown_84631E0;
extern const struct WindowTemplate gUnknown_84631E8[];
extern const struct CompressedSpriteSheet gUnknown_8463218;
extern const struct SpriteTemplate gUnknown_8463220;
extern const u16 gUnknown_8463238[];
// graphics
extern const u32 gUnknown_8E845D8[];
@ -151,6 +167,9 @@ extern const u32 gUnknown_8E84A24[];
extern const u32 gUnknown_8E84B70[];
extern const u32 gUnknown_8E84CB0[];
extern const u32 gUnknown_8E84D20[];
extern const u32 gUnknown_8E84F20[];
extern const u32 gUnknown_8E85068[];
extern const u8 gUnknown_8E99118[];
void sub_81317F8(u8 a0, void (* a1)(void), u8 a2)
{
@ -1174,3 +1193,248 @@ void sub_8132F60(u8 taskId)
break;
}
}
void sub_8133244(void)
{
u8 i;
InitWindows(gUnknown_8463190);
DeactivateAllTextPrinters();
sub_815001C(0, 0x5B, 0xE0);
sub_814FEAC(0, 0x64, 0xB0);
sub_814FF2C(0, 0x78, 0xD0);
LoadPalette(gUnknown_841F408, 0xF0, 0x20);
LoadPalette(gUnknown_841F408, 0xA0, 0x20);
LoadPalette(gUnknown_8463180, 0xF6, 0x04);
LoadPalette(gUnknown_8463180, 0xD6, 0x04);
sub_8107D38(0xc0, 0x01);
for (i = 0; i < 9; i++)
FillWindowPixelBuffer(i, 0x00);
PutWindowTilemap(0);
PutWindowTilemap(1);
PutWindowTilemap(3);
PutWindowTilemap(4);
PutWindowTilemap(5);
schedule_bg_copy_tilemap_to_vram(0);
}
void sub_81332EC(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx)
{
AddTextPrinterParametrized2(windowId, fontId, x, y, letterSpacing, lineSpacing, &gUnknown_8463184[colorIdx], speed, str);
}
void sub_8133354(u8 windowId)
{
SetWindowBorderStyle(windowId, FALSE, 0x5B, 0x0E);
}
void sub_8133368(u8 windowId)
{
SetWindowBorderStyle(windowId, FALSE, 0x78, 0x0D);
}
void sub_813337C(u8 taskId, u8 windowId, const u8 * str, TaskFunc func)
{
DisplayMessageAndContinueTask(taskId, 6, 0x64, 0x0B, windowId, GetTextSpeedSetting(), str, func);
schedule_bg_copy_tilemap_to_vram(1);
}
void sub_81333C4(void)
{
u32 distance = 72 - GetStringWidth(1, gUnknown_84166D3, 0);
box_print(3, 1, distance / 2, 1, &gUnknown_8463184[0], 0, gUnknown_84166D3);
}
void sub_8133404(void)
{
sub_8107D68(4, 19, 0, 0);
sub_8107D68(4, 20, 0, 12);
sub_8107D68(4, 21, 0, 24);
sub_8107D68(4, 22, 0, 36);
CopyWindowToVram(4, 2);
}
void sub_8133444(u16 itemId)
{
u8 i;
u16 move;
const u8 * str;
FillWindowPixelRect(5, 0, 0, 0, 40, 48);
if (itemId == ITEM_NONE)
{
for (i = 0; i < 4; i++)
{
sub_81332EC(5, 3, gUnknown_8416213, 7, 12 * i, 0, 0, 0xFF, 3);
}
CopyWindowToVram(5, 2);
}
else
{
move = ItemIdToBattleMoveId(itemId);
sub_8107D68(5, gBattleMoves[move].type + 1, 0, 0);
if (gBattleMoves[move].power < 2)
str = gUnknown_8416213;
else
{
ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].power, STR_CONV_MODE_RIGHT_ALIGN, 3);
str = gStringVar1;
}
sub_81332EC(5, 3, str, 7, 12, 0, 0, 0xFF, 3);
if (gBattleMoves[move].accuracy == 0)
str = gUnknown_8416213;
else
{
ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].accuracy, STR_CONV_MODE_RIGHT_ALIGN, 3);
str = gStringVar1;
}
sub_81332EC(5, 3, str, 7, 24, 0, 0, 0xFF, 3);
ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].pp, STR_CONV_MODE_RIGHT_ALIGN, 3);
sub_81332EC(5, 3, gStringVar1, 7, 36, 0, 0, 0xFF, 3);
CopyWindowToVram(5, 2);
}
}
void sub_81335B0(u8 windowId, u8 x, u8 y)
{
BlitBitmapToWindow(windowId, gUnknown_8E99118, x, y, 16, 12);
}
void sub_81335E0(void)
{
PrintMoneyAmountInMoneyBoxWithBorder(8, 0x78, 0xD, GetMoney(&gSaveBlock1Ptr->money));
}
void sub_8133604(u8 taskId, const TaskFunc *ptrs)
{
sub_80BF5D0(taskId, &gUnknown_84631E0, 2, 0, 2, 0x5B, 0x0E, ptrs);
}
u8 sub_8133630(u8 * a0, u8 a1)
{
if (*a0 == 0xFF)
{
*a0 = AddWindow(&gUnknown_84631E8[a1]);
sub_8133354(*a0);
schedule_bg_copy_tilemap_to_vram(0);
}
return *a0;
}
void sub_8133664(u8 * a0)
{
sub_810F4D8(*a0, FALSE);
ClearWindowTilemap(*a0);
RemoveWindow(*a0);
schedule_bg_copy_tilemap_to_vram(0);
*a0 = 0xFF;
}
u8 sub_813368C(u16 itemId)
{
u8 spriteId = CreateSprite(&gUnknown_8463220, 0x29, 0x2E, 0);
u8 r5;
if (itemId == ITEM_NONE)
{
sub_8133790(&gSprites[spriteId], 0xFF);
return spriteId;
}
else
{
r5 = itemId - 33;
sub_8133714(&gSprites[spriteId], r5);
sub_8133730(gBattleMoves[ItemIdToBattleMoveId(itemId)].type);
sub_8133790(&gSprites[spriteId], r5);
return spriteId;
}
}
void sub_8133714(struct Sprite * sprite, u8 idx)
{
if (idx >= 50)
StartSpriteAnim(sprite, 1);
else
StartSpriteAnim(sprite, 0);
}
void sub_8133730(u8 type)
{
u8 palIndex = IndexOfSpritePaletteTag(400) << 4;
LoadPalette(gUnknown_203B12C + gUnknown_8463238[type], 0x100 | palIndex, 0x20);
if (gUnknown_203B10C.unk_04 == 4)
{
BlendPalettes(1 << (0x10 + palIndex), 4, RGB_BLACK);
}
}
void sub_8133790(struct Sprite * sprite, u8 var)
{
s32 x, y;
if (var == 0xFF)
{
x = 0x1B;
y = 0x36;
sprite->pos2.y = 0x14;
}
else
{
if (var >= 50)
var -= 50;
else
var += 8;
x = 0x29 - (((0xE00 * var) / 58) >> 8);
y = 0x2E + (((0x800 * var) / 58) >> 8);
}
sprite->pos1.x = x;
sprite->pos1.y = y;
}
void sub_81337E4(u8 spriteId, u16 itemId)
{
gSprites[spriteId].data[0] = itemId;
gSprites[spriteId].data[1] = 0;
gSprites[spriteId].callback = sub_8133810;
}
void sub_8133810(struct Sprite * sprite)
{
switch (sprite->data[1])
{
case 0:
if (sprite->pos2.y >= 20)
{
if (sprite->data[0] != ITEM_NONE)
{
sprite->data[1]++;
sub_8133730(gBattleMoves[ItemIdToBattleMoveId(sprite->data[0])].type);
sprite->data[0] -= ITEM_TM01;
sub_8133714(sprite, sprite->data[0]);
sub_8133790(sprite, sprite->data[0]);
}
else
sprite->callback = SpriteCallbackDummy;
}
else
{
sprite->pos2.y += 10;
}
break;
case 1:
if (sprite->pos2.y <= 0)
sprite->callback = SpriteCallbackDummy;
else
sprite->pos2.y -= 10;
}
}
void sub_81338A8(void)
{
struct SpritePalette spritePalette;
gUnknown_203B12C = Alloc(0x110 * sizeof(u16));
LZDecompressWram(gUnknown_8E84F20, gUnknown_203B12C);
LZDecompressWram(gUnknown_8E85068, gUnknown_203B12C + 0x100);
spritePalette.data = gUnknown_203B12C + 0x110;
spritePalette.tag = 400;
LoadSpritePalette(&spritePalette);
}

View File

@ -320,7 +320,7 @@ void PutWindowRectTilemap(u8 windowId, u8 x, u8 y, u8 width, u8 height)
}
}
void BlitBitmapToWindow(u8 windowId, u8 *pixels, u16 x, u16 y, u16 width, u16 height)
void BlitBitmapToWindow(u8 windowId, const u8 *pixels, u16 x, u16 y, u16 width, u16 height)
{
BlitBitmapRectToWindow(windowId, pixels, 0, 0, width, height, x, y, width, height);
}