pokeemerald/asm/contest_link_80F57C4.s

5651 lines
86 KiB
ArmAsm
Raw Normal View History

2016-11-01 18:08:48 +01:00
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_80F57C4
sub_80F57C4: @ 80F57C4
push {r4,lr}
movs r0, 0
movs r1, 0x40
bl SetGpuReg
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, =gUnknown_0858D888
movs r0, 0
movs r2, 0x4
bl InitBgsFromTemplates
movs r4, 0
_080F57E0:
lsls r0, r4, 24
lsrs r0, 24
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r1, [r1]
lsls r2, r4, 2
adds r1, 0xC
adds r1, r2
ldr r1, [r1]
bl SetBgTilemapBuffer
adds r4, 0x1
cmp r4, 0x3
ble _080F57E0
ldr r0, =gUnknown_0858D898
bl InitWindows
bl DeactivateAllTextPrinters
movs r0, 0x4C
movs r1, 0
bl SetGpuReg
ldr r1, =0x00003f3f
movs r0, 0x48
bl SetGpuReg
ldr r1, =0x00003f2e
movs r0, 0x4A
bl SetGpuReg
movs r0, 0x40
movs r1, 0
bl SetGpuReg
movs r0, 0x44
movs r1, 0
bl SetGpuReg
movs r0, 0x42
movs r1, 0
bl SetGpuReg
movs r0, 0x46
movs r1, 0
bl SetGpuReg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
movs r0, 0x54
movs r1, 0
bl SetGpuReg
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 r1, 0xFF
lsls r1, 8
movs r0, 0
bl SetGpuRegBits
2017-10-01 01:12:42 +02:00
ldr r0, =gBattle_BG0_X
2016-11-01 18:08:48 +01:00
movs r1, 0
strh r1, [r0]
2017-10-01 01:12:42 +02:00
ldr r0, =gBattle_BG0_Y
2016-11-01 18:08:48 +01:00
strh r1, [r0]
2017-09-26 22:39:59 +02:00
ldr r0, =gBattle_BG1_X
2016-11-01 18:08:48 +01:00
strh r1, [r0]
2017-09-26 22:39:59 +02:00
ldr r0, =gBattle_BG1_Y
2016-11-01 18:08:48 +01:00
strh r1, [r0]
2017-09-26 22:39:59 +02:00
ldr r0, =gBattle_BG2_X
2016-11-01 18:08:48 +01:00
strh r1, [r0]
2017-09-26 22:39:59 +02:00
ldr r0, =gBattle_BG2_Y
2016-11-01 18:08:48 +01:00
strh r1, [r0]
2017-09-28 15:34:21 +02:00
ldr r0, =gBattle_BG3_X
2016-11-01 18:08:48 +01:00
strh r1, [r0]
2017-10-01 01:12:42 +02:00
ldr r0, =gBattle_BG3_Y
2016-11-01 18:08:48 +01:00
strh r1, [r0]
2017-10-01 01:12:42 +02:00
ldr r0, =gBattle_WIN0H
2016-11-01 18:08:48 +01:00
strh r1, [r0]
2017-10-01 01:12:42 +02:00
ldr r0, =gBattle_WIN0V
2016-11-01 18:08:48 +01:00
strh r1, [r0]
2017-10-01 01:12:42 +02:00
ldr r0, =gBattle_WIN1H
2016-11-01 18:08:48 +01:00
strh r1, [r0]
2017-10-01 01:12:42 +02:00
ldr r0, =gBattle_WIN1V
2016-11-01 18:08:48 +01:00
strh r1, [r0]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F57C4
thumb_func_start sub_80F591C
sub_80F591C: @ 80F591C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
ldr r0, =gUnknown_08C19588
movs r1, 0xC0
lsls r1, 19
bl LZDecompressVram
ldr r1, =gUnknown_08C1A12C
movs r0, 0x3
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
ldr r1, =gUnknown_08C1A000
movs r0, 0x2
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
ldr r1, =gUnknown_08C19EEC
movs r0, 0
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
bl sub_80F71C8
ldr r0, =gUnknown_08C1A2B4
movs r2, 0x80
lsls r2, 2
movs r1, 0
bl LoadCompressedPalette
2016-11-01 18:08:48 +01:00
ldr r0, =gUnknown_0858D6B0
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
2016-11-01 18:08:48 +01:00
movs r7, 0
movs r0, 0x1
mov r8, r0
_080F5976:
lsls r5, r7, 24
lsrs r5, 24
adds r0, r5, 0
movs r1, 0x1
bl sub_80F7310
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x1
bl sub_80F7364
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x8]
movs r6, 0
lsls r1, r7, 1
adds r2, r7, 0x1
str r2, [sp, 0xC]
lsls r4, 24
asrs r4, 24
mov r10, r4
adds r1, r7
adds r0, r1, 0x6
lsls r0, 24
mov r9, r0
adds r1, 0x5
lsls r7, r1, 24
_080F59B0:
ldr r1, =0x000060b2
cmp r6, r10
bge _080F59B8
adds r1, 0x2
_080F59B8:
ldr r4, [sp, 0x8]
lsls r0, r4, 24
asrs r0, 24
adds r2, r0, 0
cmp r0, 0
bge _080F59C6
negs r2, r0
_080F59C6:
cmp r6, r2
bge _080F59F4
ldr r5, =0x000060a4
cmp r0, 0
bge _080F59F6
adds r5, 0x2
b _080F59F6
.pool
_080F59F4:
ldr r5, =0x000060a2
_080F59F6:
adds r4, r6, 0
adds r4, 0x13
lsls r4, 24
lsrs r4, 24
mov r0, r8
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0x1
adds r2, r4, 0
lsrs r3, r7, 24
bl FillBgTilemapBufferRect_Palette0
mov r2, r8
str r2, [sp]
str r2, [sp, 0x4]
movs r0, 0x1
adds r1, r5, 0
adds r2, r4, 0
mov r4, r9
lsrs r3, r4, 24
bl FillBgTilemapBufferRect_Palette0
adds r6, 0x1
cmp r6, 0x9
ble _080F59B0
ldr r7, [sp, 0xC]
cmp r7, 0x3
ble _080F5976
movs r0, 0
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x3
bl ShowBg
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F591C
thumb_func_start sub_80F5A74
sub_80F5A74: @ 80F5A74
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
lsls r1, r5, 6
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039E00
2016-11-01 18:08:48 +01:00
adds r7, r1, r0
ldr r6, =gDisplayedStringBattle
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F25
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
cmp r5, r0
bne _080F5A96
2017-09-20 21:38:05 +02:00
ldr r1, =gText_ColorDarkGrey
2016-11-01 18:08:48 +01:00
adds r0, r6, 0
2017-01-14 20:53:20 +01:00
bl StringCopy
2016-11-01 18:08:48 +01:00
adds r6, r0, 0
_080F5A96:
adds r1, r7, 0x2
adds r0, r6, 0
2017-01-14 20:53:20 +01:00
bl StringCopy
ldr r4, =gDisplayedStringBattle
2016-11-01 18:08:48 +01:00
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0
bl sub_80F7ED0
2017-09-12 08:23:34 +02:00
ldr r1, =gText_Slash
2016-11-01 18:08:48 +01:00
adds r0, r6, 0
2017-01-14 20:53:20 +01:00
bl StringCopy
2016-11-01 18:08:48 +01:00
adds r1, r7, 0
adds r1, 0xD
adds r0, r6, 0
2017-01-14 20:53:20 +01:00
bl StringAppend
2016-11-01 18:08:48 +01:00
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x32
bl sub_80F7ED0
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F5A74
thumb_func_start sub_80F5AE0
sub_80F5AE0: @ 80F5AE0
push {r4,lr}
movs r4, 0
_080F5AE4:
lsls r0, r4, 24
lsrs r0, 24
bl sub_80F5A74
adds r4, 0x1
cmp r4, 0x3
ble _080F5AE4
movs r0, 0x1
bl CopyBgTilemapBufferToVram
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80F5AE0
thumb_func_start sub_80F5B00
sub_80F5B00: @ 80F5B00
push {r4-r6,lr}
sub sp, 0x4
ldr r5, =gPaletteFade
2016-11-01 18:08:48 +01:00
ldrb r0, [r5, 0x8]
movs r6, 0x80
orrs r0, r6
strb r0, [r5, 0x8]
movs r0, 0
bl SetVBlankCallback
bl sub_80F7DF4
bl sub_80F57C4
2018-01-29 17:47:12 +01:00
bl ScanlineEffect_Clear
bl ResetPaletteFade
2017-09-02 00:21:11 +02:00
bl ResetSpriteData
2016-11-01 18:08:48 +01:00
bl ResetTasks
2017-09-02 13:11:19 +02:00
bl FreeAllSpritePalettes
2016-11-01 18:08:48 +01:00
bl sub_80F591C
bl sub_80F6A9C
movs r0, 0
movs r1, 0x1
bl sub_80F6A64
bl sub_80F5AE0
2016-11-01 19:35:16 +01:00
ldr r4, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r4]
ldr r0, [r0]
movs r1, 0
movs r2, 0x18
bl memset
ldr r0, [r4]
ldr r0, [r0, 0x4]
movs r1, 0
movs r2, 0x50
bl memset
bl sub_80F6DC0
bl sub_80F6AE8
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
2016-11-01 18:08:48 +01:00
ldrb r1, [r5, 0x8]
movs r0, 0x7F
ands r0, r1
strb r0, [r5, 0x8]
ldr r0, =sub_80F5CE4
movs r1, 0x5
bl CreateTask
ldr r1, [r4]
ldr r1, [r1]
strb r0, [r1, 0x2]
ldr r0, =sub_80F5C00
bl SetMainCallback2
2017-10-01 01:12:42 +02:00
ldr r1, =gBattle_WIN1H
2016-11-01 18:08:48 +01:00
movs r0, 0xF0
strh r0, [r1]
2017-10-01 01:12:42 +02:00
ldr r1, =gBattle_WIN1V
2016-11-01 18:08:48 +01:00
ldr r2, =0x000080a0
adds r0, r2, 0
strh r0, [r1]
ldr r0, =sub_80F68B4
movs r1, 0x14
bl CreateTask
bl sub_80F7880
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F2A
2016-11-01 18:08:48 +01:00
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _080F5BE4
ldrb r0, [r5, 0x8]
orrs r0, r6
strb r0, [r5, 0x8]
b _080F5BEC
.pool
_080F5BE4:
movs r0, 0xDF
lsls r0, 1
2017-09-02 16:03:53 +02:00
bl PlayBGM
2016-11-01 18:08:48 +01:00
_080F5BEC:
ldr r0, =sub_80F5C24
bl SetVBlankCallback
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F5B00
thumb_func_start sub_80F5C00
sub_80F5C00: @ 80F5C00
push {lr}
2017-09-01 19:43:26 +02:00
bl AnimateSprites
bl BuildOamBuffer
2016-11-01 18:08:48 +01:00
bl RunTasks
bl UpdatePaletteFade
2016-11-01 18:08:48 +01:00
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
pop {r0}
bx r0
thumb_func_end sub_80F5C00
thumb_func_start sub_80F5C24
sub_80F5C24: @ 80F5C24
push {lr}
2017-10-01 01:12:42 +02:00
ldr r0, =gBattle_BG0_X
2016-11-01 18:08:48 +01:00
ldrh r1, [r0]
movs r0, 0x10
bl SetGpuReg
2017-10-01 01:12:42 +02:00
ldr r0, =gBattle_BG0_Y
2016-11-01 18:08:48 +01:00
ldrh r1, [r0]
movs r0, 0x12
bl SetGpuReg
2017-09-26 22:39:59 +02:00
ldr r0, =gBattle_BG1_X
2016-11-01 18:08:48 +01:00
ldrh r1, [r0]
movs r0, 0x14
bl SetGpuReg
2017-09-26 22:39:59 +02:00
ldr r0, =gBattle_BG1_Y
2016-11-01 18:08:48 +01:00
ldrh r1, [r0]
movs r0, 0x16
bl SetGpuReg
2017-09-26 22:39:59 +02:00
ldr r0, =gBattle_BG2_X
2016-11-01 18:08:48 +01:00
ldrh r1, [r0]
movs r0, 0x18
bl SetGpuReg
2017-09-26 22:39:59 +02:00
ldr r0, =gBattle_BG2_Y
2016-11-01 18:08:48 +01:00
ldrh r1, [r0]
movs r0, 0x1A
bl SetGpuReg
2017-09-28 15:34:21 +02:00
ldr r0, =gBattle_BG3_X
2016-11-01 18:08:48 +01:00
ldrh r1, [r0]
movs r0, 0x1C
bl SetGpuReg
2017-10-01 01:12:42 +02:00
ldr r0, =gBattle_BG3_Y
2016-11-01 18:08:48 +01:00
ldrh r1, [r0]
movs r0, 0x1E
bl SetGpuReg
2017-10-01 01:12:42 +02:00
ldr r0, =gBattle_WIN0H
2016-11-01 18:08:48 +01:00
ldrh r1, [r0]
movs r0, 0x40
bl SetGpuReg
2017-10-01 01:12:42 +02:00
ldr r0, =gBattle_WIN0V
2016-11-01 18:08:48 +01:00
ldrh r1, [r0]
movs r0, 0x44
bl SetGpuReg
2017-10-01 01:12:42 +02:00
ldr r0, =gBattle_WIN1H
2016-11-01 18:08:48 +01:00
ldrh r1, [r0]
movs r0, 0x42
bl SetGpuReg
2017-10-01 01:12:42 +02:00
ldr r0, =gBattle_WIN1V
2016-11-01 18:08:48 +01:00
ldrh r1, [r0]
movs r0, 0x46
bl SetGpuReg
2017-09-02 01:42:44 +02:00
bl LoadOam
2017-09-01 23:40:13 +02:00
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
2018-01-29 17:47:12 +01:00
bl ScanlineEffect_InitHBlankDmaTransfer
2016-11-01 18:08:48 +01:00
pop {r0}
bx r0
.pool
thumb_func_end sub_80F5C24
thumb_func_start sub_80F5CE4
sub_80F5CE4: @ 80F5CE4
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
2016-11-01 19:35:16 +01:00
ldr r3, =gUnknown_02039F2A
2016-11-01 18:08:48 +01:00
ldrb r1, [r3]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _080F5CF8
b _080F5E2E
_080F5CF8:
2016-11-01 19:35:16 +01:00
ldr r2, =gTasks
2016-11-01 18:08:48 +01:00
lsls r1, r6, 2
adds r0, r1, r6
lsls r0, 3
adds r4, r0, r2
movs r2, 0x8
ldrsh r0, [r4, r2]
adds r7, r1, 0
cmp r0, 0x1
beq _080F5DE0
cmp r0, 0x1
bgt _080F5D20
cmp r0, 0
beq _080F5D2A
b _080F5E2E
.pool
_080F5D20:
cmp r0, 0x2
beq _080F5DF4
cmp r0, 0x3
beq _080F5E0A
b _080F5E2E
_080F5D2A:
bl sub_80DBED4
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_02039F20
ldr r0, =gUnknown_02039F25
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _080F5D58
movs r0, 0x23
2017-09-03 14:13:01 +02:00
bl IncrementGameStat
2017-09-02 22:31:37 +02:00
ldr r1, =gSpecialVar_0x8005
2016-11-01 18:08:48 +01:00
movs r0, 0x8
strh r0, [r1]
bl InterviewBefore
2017-11-11 01:12:18 +01:00
ldr r0, =gSpecialVar_Result
2016-11-01 18:08:48 +01:00
ldrh r0, [r0]
cmp r0, 0x1
beq _080F5D58
bl InterviewAfter
_080F5D58:
movs r0, 0x2
bl sub_813BADC
2017-11-11 01:12:18 +01:00
ldr r0, =gSpecialVar_ContestRank
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
bl sub_80DEDA8
movs r0, 0xFE
bl sub_80DEDA8
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_02039F5C
2016-11-01 18:08:48 +01:00
movs r0, 0x1
strb r0, [r1]
movs r0, 0xFE
movs r1, 0
bl sub_80DEFA8
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_02039F5D
2016-11-01 18:08:48 +01:00
strb r0, [r1]
ldr r5, =0x00004086
adds r0, r5, 0
bl VarGet
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
movs r1, 0
bl VarSet
bl sub_8076D5C
movs r0, 0x1
2017-09-03 14:13:01 +02:00
bl TrySavingData
2016-11-01 18:08:48 +01:00
bl sav2_gender2_inplace_and_xFE
adds r0, r5, 0
adds r1, r4, 0
bl VarSet
2016-11-01 19:35:16 +01:00
ldr r0, =gTasks
2016-11-01 18:08:48 +01:00
adds r1, r7, r6
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
b _080F5E2E
.pool
_080F5DE0:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
ldrb r1, [r3]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _080F5E2E
movs r0, 0x64
b _080F5E2C
_080F5DF4:
bl sub_800A520
lsls r0, 24
cmp r0, 0
beq _080F5EBA
bl sub_800ADF8
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _080F5EBA
_080F5E0A:
bl sub_800A520
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080F5EBA
movs r0, 0xDF
lsls r0, 1
2017-09-02 16:03:53 +02:00
bl PlayBGM
ldr r2, =gPaletteFade
2016-11-01 18:08:48 +01:00
ldrb r1, [r2, 0x8]
movs r0, 0x7F
ands r0, r1
strb r0, [r2, 0x8]
ldrh r0, [r4, 0x8]
adds r0, 0x1
_080F5E2C:
strh r0, [r4, 0x8]
_080F5E2E:
ldr r0, =gPaletteFade
2016-11-01 18:08:48 +01:00
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
bne _080F5EBA
2016-11-01 19:35:16 +01:00
ldr r1, =gTasks
2016-11-01 18:08:48 +01:00
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r4, r0, r1
strh r2, [r4, 0x8]
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F2A
2016-11-01 18:08:48 +01:00
ldrb r1, [r0]
movs r5, 0x1
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _080F5E78
2017-09-20 21:38:05 +02:00
ldr r0, =gText_CommunicationStandby
2016-11-01 18:08:48 +01:00
bl sub_80F707C
ldr r0, =sub_80F5ED8
b _080F5EB8
.pool
_080F5E78:
movs r0, 0x24
2017-09-03 14:13:01 +02:00
bl IncrementGameStat
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_02039F20
ldr r0, =gUnknown_02039F25
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _080F5E92
movs r0, 0x25
2017-09-03 14:13:01 +02:00
bl IncrementGameStat
2016-11-01 18:08:48 +01:00
_080F5E92:
2017-11-11 01:12:18 +01:00
ldr r0, =gSpecialVar_ContestRank
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
bl sub_80DEDA8
movs r0, 0xFE
bl sub_80DEDA8
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F5C
2016-11-01 18:08:48 +01:00
strb r5, [r0]
movs r0, 0xFE
movs r1, 0
bl sub_80DEFA8
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_02039F5D
2016-11-01 18:08:48 +01:00
strb r0, [r1]
movs r0, 0x2
bl sub_813BADC
ldr r0, =sub_80F5F74
_080F5EB8:
str r0, [r4]
_080F5EBA:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F5CE4
thumb_func_start sub_80F5ED8
sub_80F5ED8: @ 80F5ED8
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
2017-10-01 01:12:42 +02:00
ldr r0, =gReceivedRemoteLinkPlayers
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
cmp r0, 0
beq _080F5EFC
ldr r0, =sub_80F5F14
movs r1, 0
bl CreateTask
2016-11-01 19:35:16 +01:00
ldr r1, =gTasks
2016-11-01 18:08:48 +01:00
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, =TaskDummy
str r1, [r0]
_080F5EFC:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F5ED8
thumb_func_start sub_80F5F14
sub_80F5F14: @ 80F5F14
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r1, =sub_80FC998
ldr r2, =sub_80F5F30
bl SetTaskFuncWithFollowupFunc
pop {r0}
bx r0
.pool
thumb_func_end sub_80F5F14
thumb_func_start sub_80F5F30
sub_80F5F30: @ 80F5F30
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl sub_800A520
lsls r0, 24
cmp r0, 0
beq _080F5F60
adds r0, r4, 0
bl DestroyTask
2016-11-01 19:35:16 +01:00
ldr r2, =gTasks
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0, 0x2]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldr r1, =sub_80F5F74
str r1, [r0]
bl sub_80F7144
_080F5F60:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F5F30
thumb_func_start sub_80F5F74
sub_80F5F74: @ 80F5F74
push {r4,lr}
lsls r0, 24
lsrs r0, 24
2016-11-01 19:35:16 +01:00
ldr r2, =gTasks
2016-11-01 18:08:48 +01:00
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
ldrh r1, [r4, 0x8]
movs r2, 0x8
ldrsh r0, [r4, r2]
cmp r0, 0
bne _080F5FC4
ldr r0, =sub_80F68F0
movs r1, 0x14
bl CreateTask
2017-09-20 21:38:05 +02:00
ldr r0, =gText_AnnouncingResults
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r1, [r1]
ldr r1, [r1]
ldrb r1, [r1]
bl sub_80F6B78
lsls r0, 16
asrs r0, 16
movs r3, 0x88
lsls r3, 3
movs r1, 0x90
movs r2, 0x78
b _080F6016
.pool
_080F5FC4:
cmp r0, 0x1
bne _080F5FDC
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r0, [r0]
ldrb r0, [r0, 0x4]
cmp r0, 0
bne _080F6048
b _080F5FF0
.pool
_080F5FDC:
cmp r0, 0x2
bne _080F5FF8
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x15
bne _080F6048
movs r0, 0
_080F5FF0:
strh r0, [r4, 0xA]
adds r0, r1, 0x1
strh r0, [r4, 0x8]
b _080F6048
_080F5FF8:
cmp r0, 0x3
bne _080F6030
2017-09-20 21:38:05 +02:00
ldr r0, =gText_PreliminaryResults
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r1, [r1]
ldr r1, [r1]
ldrb r1, [r1]
bl sub_80F6B78
lsls r0, 16
asrs r0, 16
ldr r2, =0x0000ffff
movs r3, 0x88
lsls r3, 3
movs r1, 0x90
_080F6016:
bl sub_80F6E9C
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _080F6048
.pool
_080F6030:
cmp r0, 0x4
bne _080F6048
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r0, [r0]
ldrb r0, [r0, 0x4]
cmp r0, 0x2
bne _080F6048
movs r0, 0
strh r0, [r4, 0x8]
ldr r0, =sub_80F6058
str r0, [r4]
_080F6048:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F5F74
thumb_func_start sub_80F6058
sub_80F6058: @ 80F6058
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
2016-11-01 19:35:16 +01:00
ldr r2, =gTasks
2016-11-01 18:08:48 +01:00
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x1
beq _080F60C0
cmp r0, 0x1
bgt _080F6080
cmp r0, 0
beq _080F6086
b _080F60E6
.pool
_080F6080:
cmp r0, 0x2
beq _080F60D4
b _080F60E6
_080F6086:
2016-11-01 19:35:16 +01:00
ldr r5, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r5]
ldr r0, [r0]
ldrb r0, [r0, 0xA]
cmp r0, 0
bne _080F60E6
ldrh r1, [r4, 0xC]
adds r0, r1, 0x1
strh r0, [r4, 0xC]
lsls r1, 24
lsrs r1, 24
movs r0, 0
bl sub_80F7A80
ldr r0, [r5]
ldr r0, [r0]
ldrb r0, [r0, 0x14]
cmp r0, 0
bne _080F60B8
movs r0, 0x2
strh r0, [r4, 0x8]
b _080F60E6
.pool
_080F60B8:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _080F60E6
_080F60C0:
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r0, [r0]
ldrb r0, [r0, 0x14]
cmp r0, 0
bne _080F60E6
strh r0, [r4, 0x8]
b _080F60E6
.pool
_080F60D4:
movs r0, 0x88
lsls r0, 3
bl sub_80F6EF4
movs r0, 0
strh r0, [r4, 0x8]
strh r0, [r4, 0xC]
ldr r0, =sub_80F60F0
str r0, [r4]
_080F60E6:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F6058
thumb_func_start sub_80F60F0
sub_80F60F0: @ 80F60F0
push {r4,r5,lr}
lsls r0, 24
lsrs r2, r0, 24
adds r4, r2, 0
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r5, [r0]
ldr r0, [r5]
ldrb r3, [r0, 0x4]
cmp r3, 0
bne _080F614C
2016-11-01 19:35:16 +01:00
ldr r1, =gTasks
2016-11-01 18:08:48 +01:00
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r1, r0, r1
ldrh r0, [r1, 0xA]
adds r0, 0x1
strh r0, [r1, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x15
bne _080F615E
strh r3, [r1, 0xA]
2017-09-20 21:38:05 +02:00
ldr r0, =gText_Round2Results
2016-11-01 18:08:48 +01:00
ldr r1, [r5]
ldrb r1, [r1]
bl sub_80F6B78
lsls r0, 16
asrs r0, 16
ldr r2, =0x0000ffff
movs r3, 0x88
lsls r3, 3
movs r1, 0x90
bl sub_80F6E9C
b _080F615E
.pool
_080F614C:
cmp r3, 0x2
bne _080F615E
2016-11-01 19:35:16 +01:00
ldr r0, =gTasks
2016-11-01 18:08:48 +01:00
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, =sub_80F616C
str r0, [r1]
_080F615E:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F60F0
thumb_func_start sub_80F616C
sub_80F616C: @ 80F616C
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
2016-11-01 19:35:16 +01:00
ldr r2, =gTasks
2016-11-01 18:08:48 +01:00
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x1
beq _080F61D4
cmp r0, 0x1
bgt _080F6194
cmp r0, 0
beq _080F619A
b _080F61F8
.pool
_080F6194:
cmp r0, 0x2
beq _080F61E8
b _080F61F8
_080F619A:
2016-11-01 19:35:16 +01:00
ldr r5, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r5]
ldr r0, [r0]
ldrb r0, [r0, 0xA]
cmp r0, 0
bne _080F61F8
ldrh r1, [r4, 0xC]
adds r0, r1, 0x1
strh r0, [r4, 0xC]
lsls r1, 24
lsrs r1, 24
movs r0, 0x1
bl sub_80F7A80
ldr r0, [r5]
ldr r0, [r0]
ldrb r0, [r0, 0x14]
cmp r0, 0
bne _080F61CC
movs r0, 0x2
strh r0, [r4, 0x8]
b _080F61F8
.pool
_080F61CC:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _080F61F8
_080F61D4:
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r0, [r0]
ldrb r0, [r0, 0x14]
cmp r0, 0
bne _080F61F8
strh r0, [r4, 0x8]
b _080F61F8
.pool
_080F61E8:
movs r0, 0x88
lsls r0, 3
bl sub_80F6EF4
movs r0, 0
strh r0, [r4, 0x8]
ldr r0, =sub_80F6204
str r0, [r4]
_080F61F8:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F616C
thumb_func_start sub_80F6204
sub_80F6204: @ 80F6204
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x64
lsls r0, 24
lsrs r5, r0, 24
2016-11-01 19:35:16 +01:00
ldr r1, =gTasks
2016-11-01 18:08:48 +01:00
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
movs r2, 0x8
ldrsh r0, [r0, r2]
adds r2, r1, 0
cmp r0, 0x5
bls _080F6226
b _080F63F4
_080F6226:
lsls r0, 2
ldr r1, =_080F6238
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_080F6238:
.4byte _080F6250
.4byte _080F6274
.4byte _080F6292
.4byte _080F62CC
.4byte _080F6334
.4byte _080F63E4
_080F6250:
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r0, [r0]
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _080F625E
b _080F63F4
_080F625E:
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r2
ldrh r1, [r0, 0x8]
adds r1, 0x1
strh r1, [r0, 0x8]
b _080F63F4
.pool
_080F6274:
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r1, r0, r2
ldrh r0, [r1, 0xA]
adds r0, 0x1
strh r0, [r1, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1F
beq _080F628C
b _080F63F4
_080F628C:
movs r0, 0
strh r0, [r1, 0xA]
b _080F63BC
_080F6292:
movs r4, 0
lsls r6, r5, 2
2016-11-01 19:35:16 +01:00
ldr r7, =gTasks
2016-11-01 18:08:48 +01:00
_080F6298:
ldr r0, =sub_80F73DC
movs r1, 0xA
bl CreateTask
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r7
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F20
2016-11-01 18:08:48 +01:00
adds r0, r4, r0
ldrb r0, [r0]
strh r0, [r1, 0x8]
strh r4, [r1, 0xA]
adds r4, 0x1
cmp r4, 0x3
ble _080F6298
b _080F63B4
.pool
_080F62CC:
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r0, [r0]
ldrb r0, [r0, 0x5]
cmp r0, 0x4
beq _080F62DA
b _080F63F4
_080F62DA:
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r4, r0, r2
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1F
beq _080F62F2
b _080F63F4
_080F62F2:
movs r0, 0
strh r0, [r4, 0xA]
ldr r0, =sub_80F74BC
movs r1, 0xA
bl CreateTask
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
movs r4, 0
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_02039F20
2016-11-01 18:08:48 +01:00
ldrb r0, [r1]
cmp r0, 0
beq _080F631C
_080F630E:
adds r4, 0x1
cmp r4, 0x3
bgt _080F631C
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, 0
bne _080F630E
_080F631C:
lsls r0, r4, 24
lsrs r0, 24
movs r1, 0xE
bl sub_80F77E0
b _080F63F4
.pool
_080F6334:
lsls r1, r5, 2
adds r0, r1, r5
lsls r0, 3
adds r2, r0, r2
ldrh r0, [r2, 0xA]
adds r0, 0x1
strh r0, [r2, 0xA]
lsls r0, 16
asrs r0, 16
adds r6, r1, 0
cmp r0, 0x15
bne _080F63F4
movs r0, 0
strh r0, [r2, 0xA]
movs r4, 0
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_02039F20
2016-11-01 18:08:48 +01:00
ldrb r0, [r1]
2017-01-14 20:53:20 +01:00
ldr r7, =gStringVar1
Decompile TV (#80) * ClearTVShowData * special_0x44 * DoTVShow (nonmatching because align) * DoTVShowBravoTrainerPokemonProfile * Update field names * DoTVShowBravoTrainerBattleTower * Renaming of struct fields * sub_80EBFF4 and UpdateTVScreensOnMap * SetTVMetatilesOnMap * Power buttons for the TV screens on the map * special_0x45 * sub_80EC18C * special_0x4a * ResetGabbyAndTy * GabbyAndTyBeforeInterview * GabbyAndTyAfterInterview * Through IsTVShowInSearchOfTrainersAiring * GabbyAndTyGetLastQuote * GabbyAndTyGetLastBattleTrivia * GabbyAndTySetScriptVarsToFieldObjectLocalIds * InterviewAfter; use TVShow as a precursor for making the individual show structs anonymous * Make TV structs anonymous within the union * Move the TV union to its own subheader * Move TV show enums to the global.tv.h subheader * Funcion renaming * Apply static attributes where able * PutPokemonTodayCaughtOnAir * sub_80EC8A4 * PutPokemonTodayFailedOnTheAir * sub_80EC9E8, sub_80ECA10 * sub_80ECA38 * sub_80ECB00 * Put3CheersForPokeblocksOnTheAir * PutFanClubSpecialOnTheAir * ContestLiveUpdates_BeforeInterview * Other before-interview Contest Live Updates functions * ContestLiveUpdates_BeforeInterview_5 * InterviewAfter_BravoTrainerPokemonProfile * BravoTrainerPokemonProfile_BeforeInterview1 * BravoTrainerPokemonProfile_BeforeInterview2 * Disassemble TV data * Decompile TV data * InterviewAfter_BravoTrainerBattleTowerProfile * SaveRecordedItemPurchasesForTVShow * PutNameRaterShowOnTheAir * StartMassOutbreak * PutLilycoveContestLadyShowOnTheAir * InterviewAfter_FanClubLetter * Rip TV strings * InterviewAfter_RecentHappenings * InterviewAfter_PkmnFanClubOpinions * sub_80ED718 * EndMassOutbreak * sub_80ED888 * sub_80ED8B4 * UpdateMassOutbreakTimeLeft * sub_80ED950 * PutFishingAdviceShowOnTheAir * through sub_80EDA80 * ewram and common syms are now fetched from the object files * BSS symbols are taken from the tv.o file * through sub_80EDC60 * sub_80EDCE8 * sub_80EDD78 * through sub_80EDE84 * nomatching sub_80EDE98 * sub_80EDFB4 * sub_80EE104 * sub_80EE104 * sub_80EE184 * sub_80EE2CC * sub_80EE35C * sub_80EE44C * sub_80EE4DC * sub_80EE5A4 * sub_80EE69C * sub_80EE72C * sub_80EE7C0 * sub_80EE818 * sub_80EE8C8 * sub_80EEA70 * sub_80EEB98 * sub_80EEBF4 * through sub_80EED60 * Functions relating to Pokemon News * sub_80EEF6C * GetPriceReduction * IsPriceDiscounted * sub_80EF120 * through sub_80EF370 * sub_80EF40C * HasMixableShowAlreadyBeenSpawnedWithPlayerID * TV_SortPurchasesByQuantity * FindActiveBroadcastByShowType_SetScriptResult * InterviewBefore * through sub_80EF88C * through sub_80EF93C * through sub_80EFA24 * through TV_BernoulliTrial * sub_80EFB58 * sub_80EFBA4 * sub_80EFBDC * through sub_80EFD98 * ChangePokemonNickname * ChangeBoxPokemonNickname * sub_80EFF9C * through player_id_to_dword * CheckForBigMovieOrEmergencyNewsOnTV * GetMomOrDadStringForTVMessage * sub_80F01E8 * sub_80F0358 * sub_80F049C * TV record mixing functions * sub_80F06D0 * sub_80F0708 nonmatching * through sub_80F0B24 * sub_80F0B64 * through sub_80F0C04 * sub_80F0C7C * sub_80F0D60 * sub_80F0E58 * sub_80F0E84 * through sub_80F0F24 * sub_80F0F64 * sub_80F1208 * sub_80F1254 * sub_80F1290 * sub_80F12A4 * sub_80F14F8 * DoTVShowTodaysSmartShopper * DoTVShowTheNameRaterShow * DoTVShowPokemonTodaySuccessfulCapture * DoTVShowPokemonTodayFailedCapture * DoTVShowPokemonFanClubLetter * DoTVShowRecentHappenings * DoTVShowPokemonFanClubOpinions * DoTVShowPokemonNewsMassOutbreak * DoTVShowPokemonContestLiveUpdates * DoTVShowPokemonBattleUpdate * DoTVShow3CheersForPokeblocks * DoTVShowInSearchOfTrainers * Label GabbyAndTyData fields; remove ddump comments from data/text/tv.inc * DoTVShowPokemonAngler * DoTVShowTheWorldOfMasters; update RAM symbols and field names * Decorate static functions * DoTVShowTodaysRivalTrainer; region map enums * TVDewfordTrendWatcherNetworkTextGroup * DoTVShowHoennTreasureInvestigators * DoTVShowFindThatGamer * DoTVShowBreakingNewsTV * DoTVShowSecretBaseVisit * DoTVShowPokemonLotterWinnerFlashReport * DoTVShowThePokemonBattleSeminar * DoTVShowTrainerFanClubSpecial, DoTVShowTrainerFanClub * DoTVShowSpotTheCuties * DoTVShowPokemonNewsBattleFrontier * DoTVShowWhatsNo1InHoennToday * Helpers for DoTVShowSecretBaseSecrets * DoTVShowSecretBaseSecrets * DoTVShowSafariFanClub * Finish decompilation of tv.s * Some renaming * Rename text group pointers * revoke statis; pokenews enums * Labels are number one * Label all TV struct fields * Make data/text/tv.inc more readable * Split data/text/tv.inc * Rename pokenews text pointers * Frontier Symbol constants; indicate static rodata objects with 's' prefix * Fix leading spaces/tabs F*** CLion sometimes * Fix inconsequential warning
2017-10-13 17:09:36 +02:00
ldr r2, =gUnknown_02039E00 + 13
2016-11-01 18:08:48 +01:00
mov r8, r2
cmp r0, 0
beq _080F636E
_080F6360:
adds r4, 0x1
cmp r4, 0x3
bgt _080F636E
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, 0
bne _080F6360
_080F636E:
lsls r4, 6
mov r0, r8
adds r1, r4, r0
adds r0, r7, 0
2017-01-14 20:53:20 +01:00
bl StringCopy
2016-11-01 18:08:48 +01:00
adds r0, r7, 0
bl sub_81DB5AC
2017-01-14 20:53:20 +01:00
ldr r0, =gStringVar2
2016-11-01 18:08:48 +01:00
mov r1, r8
subs r1, 0xB
adds r4, r1
adds r1, r4, 0
2017-01-14 20:53:20 +01:00
bl StringCopy
2017-09-20 21:38:05 +02:00
ldr r1, =gText_Var1sVar2Won
2016-11-01 18:08:48 +01:00
mov r0, sp
2017-01-14 20:53:20 +01:00
bl StringExpandPlaceholders
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0]
mov r0, sp
bl sub_80F6B78
lsls r0, 16
asrs r0, 16
ldr r2, =0x0000ffff
movs r3, 0x88
lsls r3, 3
movs r1, 0x90
bl sub_80F6E9C
_080F63B4:
2016-11-01 19:35:16 +01:00
ldr r0, =gTasks
2016-11-01 18:08:48 +01:00
adds r1, r6, r5
lsls r1, 3
adds r1, r0
_080F63BC:
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
b _080F63F4
.pool
_080F63E4:
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r2
movs r1, 0
strh r1, [r0, 0x8]
ldr r1, =sub_80F6404
str r1, [r0]
_080F63F4:
add sp, 0x64
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F6204
thumb_func_start sub_80F6404
sub_80F6404: @ 80F6404
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r7, r0, 24
2016-11-01 19:35:16 +01:00
ldr r1, =gTasks
2016-11-01 18:08:48 +01:00
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r1
movs r2, 0x8
ldrsh r0, [r0, r2]
adds r4, r1, 0
cmp r0, 0x5
bls _080F6428
b _080F669C
_080F6428:
lsls r0, 2
ldr r1, =_080F643C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_080F643C:
.4byte _080F6454
.4byte _080F658C
.4byte _080F65DC
.4byte _080F65F0
.4byte _080F6638
.4byte _080F667C
_080F6454:
2017-10-01 01:12:42 +02:00
ldr r1, =gBattle_WIN0H
2016-11-01 18:08:48 +01:00
movs r0, 0xF0
strh r0, [r1]
2017-10-01 01:12:42 +02:00
ldr r1, =gBattle_WIN0V
2016-11-01 18:08:48 +01:00
ldr r3, =0x00005050
adds r0, r3, 0
strh r0, [r1]
movs r2, 0
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_02039F20
2016-11-01 18:08:48 +01:00
ldrb r0, [r1]
lsls r4, r7, 2
mov r10, r4
2016-11-01 19:35:16 +01:00
ldr r3, =gUnknown_02039E00
ldr r4, =gUnknown_02039F25
2016-11-01 18:08:48 +01:00
mov r9, r4
ldr r4, =gMonFrontPicTable
mov r12, r4
2017-10-01 01:12:42 +02:00
ldr r4, =gMonSpritesGfxPtr
2016-11-01 18:08:48 +01:00
mov r8, r4
cmp r0, 0
beq _080F648C
_080F647E:
adds r2, 0x1
cmp r2, 0x3
bgt _080F648C
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0
bne _080F647E
_080F648C:
lsls r1, r2, 6
adds r0, r1, r3
ldrh r6, [r0]
adds r0, r3, 0
adds r0, 0x38
adds r0, r1, r0
ldr r4, [r0]
adds r0, r3, 0
adds r0, 0x3C
adds r1, r0
ldr r5, [r1]
mov r0, r9
ldrb r0, [r0]
cmp r2, r0
bne _080F64E0
lsls r0, r6, 3
add r0, r12
mov r2, r8
ldr r1, [r2]
ldr r1, [r1, 0x8]
adds r2, r6, 0
adds r3, r4, 0
2017-09-02 19:55:39 +02:00
bl HandleLoadSpecialPokePic_2
2016-11-01 18:08:48 +01:00
b _080F64F2
.pool
_080F64E0:
lsls r0, r6, 3
add r0, r12
mov r3, r8
ldr r1, [r3]
ldr r1, [r1, 0x8]
adds r2, r6, 0
adds r3, r4, 0
2017-09-02 19:55:39 +02:00
bl HandleLoadSpecialPokePic_DontHandleDeoxys
2016-11-01 18:08:48 +01:00
_080F64F2:
adds r0, r6, 0
adds r1, r5, 0
adds r2, r4, 0
2017-10-27 18:52:21 +02:00
bl GetMonSpritePalStructFromOtIdPersonality
2016-11-01 18:08:48 +01:00
adds r4, r0, 0
bl LoadCompressedObjectPalette
adds r0, r6, 0
movs r1, 0x1
bl SetMultiuseSpriteTemplateToPokemon
ldr r0, =gMultiuseSpriteTemplate
2016-11-01 18:08:48 +01:00
ldrh r1, [r4, 0x4]
strh r1, [r0, 0x2]
movs r1, 0x88
lsls r1, 1
movs r2, 0x50
movs r3, 0xA
bl CreateSprite
2016-11-01 18:08:48 +01:00
lsls r0, 24
lsrs r0, 24
2017-08-31 16:48:24 +02:00
ldr r5, =gSprites
2016-11-01 18:08:48 +01:00
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r3, r2, r5
strh r6, [r3, 0x30]
ldrb r4, [r3, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r4
strb r1, [r3, 0x5]
adds r5, 0x1C
adds r2, r5
ldr r1, =sub_80F75A8
str r1, [r2]
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r1, [r1]
ldr r1, [r1]
strb r0, [r1, 0x8]
ldr r0, =gUnknown_0858D878
bl LoadCompressedObjectPic
ldr r0, =gUnknown_0858D880
bl LoadCompressedObjectPalette
ldr r0, =sub_80F7670
movs r1, 0xA
bl CreateTask
2016-11-01 19:35:16 +01:00
ldr r0, =gTasks
2016-11-01 18:08:48 +01:00
mov r4, r10
adds r1, r4, r7
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
b _080F669C
.pool
_080F658C:
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r4, r0, r4
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
beq _080F65A4
b _080F669C
_080F65A4:
movs r0, 0
strh r0, [r4, 0xE]
ldrh r0, [r4, 0xC]
adds r0, 0x2
strh r0, [r4, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0x20
ble _080F65BA
movs r0, 0x20
strh r0, [r4, 0xC]
_080F65BA:
ldrb r2, [r4, 0xC]
2017-10-01 01:12:42 +02:00
ldr r3, =gBattle_WIN0V
2016-11-01 18:08:48 +01:00
movs r0, 0x50
subs r0, r2
lsls r0, 8
adds r1, r2, 0
adds r1, 0x50
orrs r0, r1
strh r0, [r3]
cmp r2, 0x20
bne _080F669C
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _080F669C
.pool
_080F65DC:
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r0, [r0]
ldrb r0, [r0, 0x6]
cmp r0, 0x1
bne _080F669C
b _080F6664
.pool
_080F65F0:
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r3, r0, r4
ldrh r0, [r3, 0xA]
adds r0, 0x1
strh r0, [r3, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x79
bne _080F669C
movs r0, 0
strh r0, [r3, 0xA]
2017-08-31 16:48:24 +02:00
ldr r2, =gSprites
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0, 0x8]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, =sub_80F7620
str r1, [r0]
ldrh r0, [r3, 0x8]
adds r0, 0x1
strh r0, [r3, 0x8]
b _080F669C
.pool
_080F6638:
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r0, [r0]
ldrb r0, [r0, 0x6]
cmp r0, 0x2
bne _080F669C
2017-10-01 01:12:42 +02:00
ldr r3, =gBattle_WIN0V
2016-11-01 18:08:48 +01:00
ldrh r0, [r3]
lsrs r2, r0, 8
adds r0, r2, 0x2
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x50
bls _080F6656
movs r2, 0x50
_080F6656:
lsls r1, r2, 8
movs r0, 0xA0
subs r0, r2
orrs r1, r0
strh r1, [r3]
cmp r2, 0x50
bne _080F669C
_080F6664:
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r4
ldrh r1, [r0, 0x8]
adds r1, 0x1
strh r1, [r0, 0x8]
b _080F669C
.pool
_080F667C:
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r2, [r0]
ldrb r0, [r2, 0x6]
cmp r0, 0x2
bne _080F669C
movs r1, 0
movs r0, 0x1
strb r0, [r2, 0x9]
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r4
strh r1, [r0, 0x8]
ldr r1, =sub_80F66B4
str r1, [r0]
_080F669C:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F6404
thumb_func_start sub_80F66B4
sub_80F66B4: @ 80F66B4
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
2017-02-04 01:44:06 +01:00
ldr r0, =gMain
2016-11-01 18:08:48 +01:00
ldrh r1, [r0, 0x2E]
movs r2, 0x1
adds r0, r2, 0
ands r0, r1
cmp r0, 0
beq _080F6702
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F2A
2016-11-01 18:08:48 +01:00
ldrb r1, [r0]
adds r0, r2, 0
ands r0, r1
lsls r6, r7, 2
cmp r0, 0
bne _080F66F2
2016-11-01 19:35:16 +01:00
ldr r5, =gUnknown_02039E00
2016-11-01 18:08:48 +01:00
movs r4, 0x3
_080F66DA:
ldrh r0, [r5]
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0x2
2017-09-12 15:05:40 +02:00
bl GetSetPokedexFlag
2016-11-01 18:08:48 +01:00
adds r5, 0x40
subs r4, 0x1
cmp r4, 0
bge _080F66DA
_080F66F2:
2016-11-01 19:35:16 +01:00
ldr r1, =gTasks
2016-11-01 18:08:48 +01:00
adds r0, r6, r7
lsls r0, 3
adds r0, r1
movs r1, 0
strh r1, [r0, 0x1C]
ldr r1, =sub_80F671C
str r1, [r0]
_080F6702:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F66B4
thumb_func_start sub_80F671C
sub_80F671C: @ 80F671C
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F2A
2016-11-01 18:08:48 +01:00
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080F6760
2016-11-01 19:35:16 +01:00
ldr r0, =gTasks
2016-11-01 18:08:48 +01:00
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r4, r1, r0
movs r1, 0x1C
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080F676E
2017-09-20 21:38:05 +02:00
ldr r0, =gText_CommunicationStandby
2016-11-01 18:08:48 +01:00
bl sub_80F707C
bl sub_800AC34
ldr r0, =sub_80F677C
str r0, [r4]
b _080F676E
.pool
_080F6760:
2016-11-01 19:35:16 +01:00
ldr r0, =gTasks
2016-11-01 18:08:48 +01:00
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r1, r0
ldr r0, =task_repel
str r0, [r1]
_080F676E:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F671C
thumb_func_start sub_80F677C
sub_80F677C: @ 80F677C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
2017-10-01 01:12:42 +02:00
ldr r0, =gReceivedRemoteLinkPlayers
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
cmp r0, 0
bne _080F67AC
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F2A
2016-11-01 18:08:48 +01:00
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _080F679A
bl sub_800E084
_080F679A:
bl sub_80F7144
2016-11-01 19:35:16 +01:00
ldr r0, =gTasks
2016-11-01 18:08:48 +01:00
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, =task_repel
str r0, [r1]
_080F67AC:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F677C
thumb_func_start task_repel
task_repel: @ 80F67C4
push {r4,lr}
sub sp, 0x4
lsls r0, 24
lsrs r4, r0, 24
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F2A
2016-11-01 18:08:48 +01:00
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _080F67E6
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_02039F20
ldr r0, =gUnknown_02039F25
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
Decompile TV (#80) * ClearTVShowData * special_0x44 * DoTVShow (nonmatching because align) * DoTVShowBravoTrainerPokemonProfile * Update field names * DoTVShowBravoTrainerBattleTower * Renaming of struct fields * sub_80EBFF4 and UpdateTVScreensOnMap * SetTVMetatilesOnMap * Power buttons for the TV screens on the map * special_0x45 * sub_80EC18C * special_0x4a * ResetGabbyAndTy * GabbyAndTyBeforeInterview * GabbyAndTyAfterInterview * Through IsTVShowInSearchOfTrainersAiring * GabbyAndTyGetLastQuote * GabbyAndTyGetLastBattleTrivia * GabbyAndTySetScriptVarsToFieldObjectLocalIds * InterviewAfter; use TVShow as a precursor for making the individual show structs anonymous * Make TV structs anonymous within the union * Move the TV union to its own subheader * Move TV show enums to the global.tv.h subheader * Funcion renaming * Apply static attributes where able * PutPokemonTodayCaughtOnAir * sub_80EC8A4 * PutPokemonTodayFailedOnTheAir * sub_80EC9E8, sub_80ECA10 * sub_80ECA38 * sub_80ECB00 * Put3CheersForPokeblocksOnTheAir * PutFanClubSpecialOnTheAir * ContestLiveUpdates_BeforeInterview * Other before-interview Contest Live Updates functions * ContestLiveUpdates_BeforeInterview_5 * InterviewAfter_BravoTrainerPokemonProfile * BravoTrainerPokemonProfile_BeforeInterview1 * BravoTrainerPokemonProfile_BeforeInterview2 * Disassemble TV data * Decompile TV data * InterviewAfter_BravoTrainerBattleTowerProfile * SaveRecordedItemPurchasesForTVShow * PutNameRaterShowOnTheAir * StartMassOutbreak * PutLilycoveContestLadyShowOnTheAir * InterviewAfter_FanClubLetter * Rip TV strings * InterviewAfter_RecentHappenings * InterviewAfter_PkmnFanClubOpinions * sub_80ED718 * EndMassOutbreak * sub_80ED888 * sub_80ED8B4 * UpdateMassOutbreakTimeLeft * sub_80ED950 * PutFishingAdviceShowOnTheAir * through sub_80EDA80 * ewram and common syms are now fetched from the object files * BSS symbols are taken from the tv.o file * through sub_80EDC60 * sub_80EDCE8 * sub_80EDD78 * through sub_80EDE84 * nomatching sub_80EDE98 * sub_80EDFB4 * sub_80EE104 * sub_80EE104 * sub_80EE184 * sub_80EE2CC * sub_80EE35C * sub_80EE44C * sub_80EE4DC * sub_80EE5A4 * sub_80EE69C * sub_80EE72C * sub_80EE7C0 * sub_80EE818 * sub_80EE8C8 * sub_80EEA70 * sub_80EEB98 * sub_80EEBF4 * through sub_80EED60 * Functions relating to Pokemon News * sub_80EEF6C * GetPriceReduction * IsPriceDiscounted * sub_80EF120 * through sub_80EF370 * sub_80EF40C * HasMixableShowAlreadyBeenSpawnedWithPlayerID * TV_SortPurchasesByQuantity * FindActiveBroadcastByShowType_SetScriptResult * InterviewBefore * through sub_80EF88C * through sub_80EF93C * through sub_80EFA24 * through TV_BernoulliTrial * sub_80EFB58 * sub_80EFBA4 * sub_80EFBDC * through sub_80EFD98 * ChangePokemonNickname * ChangeBoxPokemonNickname * sub_80EFF9C * through player_id_to_dword * CheckForBigMovieOrEmergencyNewsOnTV * GetMomOrDadStringForTVMessage * sub_80F01E8 * sub_80F0358 * sub_80F049C * TV record mixing functions * sub_80F06D0 * sub_80F0708 nonmatching * through sub_80F0B24 * sub_80F0B64 * through sub_80F0C04 * sub_80F0C7C * sub_80F0D60 * sub_80F0E58 * sub_80F0E84 * through sub_80F0F24 * sub_80F0F64 * sub_80F1208 * sub_80F1254 * sub_80F1290 * sub_80F12A4 * sub_80F14F8 * DoTVShowTodaysSmartShopper * DoTVShowTheNameRaterShow * DoTVShowPokemonTodaySuccessfulCapture * DoTVShowPokemonTodayFailedCapture * DoTVShowPokemonFanClubLetter * DoTVShowRecentHappenings * DoTVShowPokemonFanClubOpinions * DoTVShowPokemonNewsMassOutbreak * DoTVShowPokemonContestLiveUpdates * DoTVShowPokemonBattleUpdate * DoTVShow3CheersForPokeblocks * DoTVShowInSearchOfTrainers * Label GabbyAndTyData fields; remove ddump comments from data/text/tv.inc * DoTVShowPokemonAngler * DoTVShowTheWorldOfMasters; update RAM symbols and field names * Decorate static functions * DoTVShowTodaysRivalTrainer; region map enums * TVDewfordTrendWatcherNetworkTextGroup * DoTVShowHoennTreasureInvestigators * DoTVShowFindThatGamer * DoTVShowBreakingNewsTV * DoTVShowSecretBaseVisit * DoTVShowPokemonLotterWinnerFlashReport * DoTVShowThePokemonBattleSeminar * DoTVShowTrainerFanClubSpecial, DoTVShowTrainerFanClub * DoTVShowSpotTheCuties * DoTVShowPokemonNewsBattleFrontier * DoTVShowWhatsNo1InHoennToday * Helpers for DoTVShowSecretBaseSecrets * DoTVShowSecretBaseSecrets * DoTVShowSafariFanClub * Finish decompilation of tv.s * Some renaming * Rename text group pointers * revoke statis; pokenews enums * Labels are number one * Label all TV struct fields * Make data/text/tv.inc more readable * Split data/text/tv.inc * Rename pokenews text pointers * Frontier Symbol constants; indicate static rodata objects with 's' prefix * Fix leading spaces/tabs F*** CLion sometimes * Fix inconsequential warning
2017-10-13 17:09:36 +02:00
bl BravoTrainerPokemonProfile_BeforeInterview2
2016-11-01 18:08:48 +01:00
_080F67E6:
movs r0, 0
str r0, [sp]
movs r0, 0xFF
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginHardwarePaletteFade
2016-11-01 19:35:16 +01:00
ldr r1, =gTasks
2016-11-01 18:08:48 +01:00
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, =sub_80F6820
str r1, [r0]
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end task_repel
thumb_func_start sub_80F6820
sub_80F6820: @ 80F6820
push {r4,r5,lr}
lsls r0, 24
lsrs r2, r0, 24
adds r5, r2, 0
ldr r0, =gPaletteFade
2016-11-01 18:08:48 +01:00
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080F68A8
2016-11-01 19:35:16 +01:00
ldr r1, =gTasks
2016-11-01 18:08:48 +01:00
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r4, r0, r1
movs r1, 0xA
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080F6868
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r0, [r0]
ldrb r0, [r0, 0x3]
bl DestroyTask
ldr r0, =0x0000ffff
b _080F686E
.pool
_080F6868:
cmp r0, 0x1
bne _080F6884
ldr r0, =0xffff0000
_080F686E:
movs r1, 0x10
movs r2, 0
bl BlendPalettes
2016-11-01 18:08:48 +01:00
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
b _080F68A8
.pool
_080F6884:
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x54
movs r1, 0
bl SetGpuReg
adds r0, r5, 0
bl DestroyTask
bl FreeAllWindowBuffers
2018-02-14 00:58:22 +01:00
ldr r0, =CB2_ReturnToFieldContinueScript
2016-11-01 18:08:48 +01:00
bl SetMainCallback2
bl sub_80F7E64
_080F68A8:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F6820
thumb_func_start sub_80F68B4
sub_80F68B4: @ 80F68B4
push {r4,r5,lr}
2017-09-28 15:34:21 +02:00
ldr r2, =gBattle_BG3_X
2016-11-01 18:08:48 +01:00
ldrh r3, [r2]
adds r0, r3, 0x2
strh r0, [r2]
2017-10-01 01:12:42 +02:00
ldr r4, =gBattle_BG3_Y
2016-11-01 18:08:48 +01:00
ldrh r5, [r4]
adds r1, r5, 0x1
strh r1, [r4]
lsls r0, 16
lsrs r0, 16
cmp r0, 0xFF
bls _080F68D4
adds r0, r3, 0
subs r0, 0xFD
strh r0, [r2]
_080F68D4:
lsls r0, r1, 16
lsrs r0, 16
cmp r0, 0xFF
bls _080F68E2
adds r0, r5, 0
subs r0, 0xFE
strh r0, [r4]
_080F68E2:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F68B4
thumb_func_start sub_80F68F0
sub_80F68F0: @ 80F68F0
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
2016-11-01 19:35:16 +01:00
ldr r1, =gTasks
2016-11-01 18:08:48 +01:00
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r2, r0, r1
ldrh r0, [r2, 0x8]
adds r0, 0x1
strh r0, [r2, 0x8]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
bne _080F6972
movs r0, 0
strh r0, [r2, 0x8]
movs r3, 0xC
ldrsh r0, [r2, r3]
cmp r0, 0
bne _080F6924
ldrh r0, [r2, 0xA]
adds r0, 0x1
b _080F6928
.pool
_080F6924:
ldrh r0, [r2, 0xA]
subs r0, 0x1
_080F6928:
strh r0, [r2, 0xA]
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r1, r0, r1
movs r2, 0xA
ldrsh r0, [r1, r2]
cmp r0, 0x10
bne _080F693E
movs r0, 0x1
b _080F6942
_080F693E:
cmp r0, 0
bne _080F6944
_080F6942:
strh r0, [r1, 0xC]
_080F6944:
2016-11-01 19:35:16 +01:00
ldr r0, =gTasks
2016-11-01 18:08:48 +01:00
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
adds r4, r0
ldrb r2, [r4, 0xA]
ldr r3, =0x00002ede
movs r0, 0x6B
movs r1, 0x1
bl BlendPalette
2016-11-01 18:08:48 +01:00
ldrb r2, [r4, 0xA]
ldr r3, =0x00007fff
movs r0, 0x68
movs r1, 0x1
bl BlendPalette
2016-11-01 18:08:48 +01:00
ldrb r2, [r4, 0xA]
ldr r3, =0x000077be
movs r0, 0x6E
movs r1, 0x1
bl BlendPalette
2016-11-01 18:08:48 +01:00
_080F6972:
2016-11-01 19:35:16 +01:00
ldr r1, =gTasks
2016-11-01 18:08:48 +01:00
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
movs r3, 0xA
ldrsh r4, [r0, r3]
cmp r4, 0
bne _080F69A4
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r0, [r0]
strb r4, [r0, 0xA]
b _080F69AE
.pool
_080F69A4:
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0xA]
_080F69AE:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F68F0
thumb_func_start sub_80F69B8
sub_80F69B8: @ 80F69B8
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x10
lsls r0, 16
lsrs r7, r0, 16
lsls r1, 24
lsrs r4, r1, 24
mov r8, r4
lsls r2, 24
lsrs r5, r2, 24
lsls r3, 24
lsrs r6, r3, 24
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F25
2016-11-01 18:08:48 +01:00
movs r2, 0
ldrb r0, [r0]
cmp r4, r0
bne _080F69DE
movs r2, 0x1
_080F69DE:
adds r0, r7, 0
ldr r1, [sp, 0x28]
2017-09-26 22:39:59 +02:00
bl GetMonIconPtr
2016-11-01 18:08:48 +01:00
adds r3, r0, 0
lsls r0, r5, 9
adds r0, 0x80
adds r3, r0
cmp r6, 0
beq _080F6A40
lsls r1, r4, 9
ldr r0, =0x06004000
adds r1, r0
movs r2, 0xC0
lsls r2, 1
adds r0, r3, 0
movs r3, 0x1
bl RequestDma3Copy
adds r0, r4, 0
adds r0, 0xA
lsls r0, 28
lsls r1, r4, 20
movs r2, 0x80
lsls r2, 18
adds r1, r2
orrs r1, r0
lsrs r1, 16
lsls r3, r4, 1
adds r3, r4
adds r3, 0x4
lsls r3, 24
lsrs r3, 24
movs r0, 0x4
str r0, [sp]
movs r0, 0x3
str r0, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
movs r0, 0x1
str r0, [sp, 0xC]
movs r2, 0x3
bl WriteSequenceToBgTilemapBuffer
b _080F6A54
.pool
_080F6A40:
mov r0, r8
lsls r1, r0, 9
ldr r2, =0x06004000
adds r1, r2
movs r2, 0xC0
lsls r2, 1
adds r0, r3, 0
movs r3, 0x1
bl RequestDma3Copy
_080F6A54:
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F69B8
thumb_func_start sub_80F6A64
sub_80F6A64: @ 80F6A64
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
lsrs r7, r0, 24
lsls r1, 24
lsrs r6, r1, 24
movs r5, 0
2016-11-01 19:35:16 +01:00
ldr r4, =gUnknown_02039E00
2016-11-01 18:08:48 +01:00
_080F6A74:
ldrh r0, [r4]
lsls r1, r5, 24
lsrs r1, 24
ldr r2, [r4, 0x38]
str r2, [sp]
adds r2, r7, 0
adds r3, r6, 0
bl sub_80F69B8
adds r4, 0x40
adds r5, 0x1
cmp r5, 0x3
ble _080F6A74
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F6A64
thumb_func_start sub_80F6A9C
sub_80F6A9C: @ 80F6A9C
push {r4-r6,lr}
movs r4, 0
ldr r6, =gMonIconPaletteIndices
movs r5, 0xA0
lsls r5, 16
_080F6AA6:
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_02039E00
2016-11-01 18:08:48 +01:00
lsls r0, r4, 6
adds r0, r1
ldrh r0, [r0]
movs r1, 0
bl mon_icon_convert_unown_species_id
lsls r0, 16
lsrs r0, 16
adds r0, r6
ldrb r0, [r0]
lsls r0, 5
ldr r1, =gMonIconPalettes
adds r0, r1
lsrs r1, r5, 16
movs r2, 0x20
bl LoadPalette
2016-11-01 18:08:48 +01:00
movs r0, 0x80
lsls r0, 13
adds r5, r0
adds r4, 0x1
cmp r4, 0x3
ble _080F6AA6
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F6A9C
thumb_func_start sub_80F6AE8
sub_80F6AE8: @ 80F6AE8
push {r4,lr}
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F2A
2016-11-01 18:08:48 +01:00
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _080F6B58
bl sub_800E0E8
movs r0, 0x8
movs r1, 0x8
2017-12-04 04:01:06 +01:00
bl CreateWirelessStatusIndicatorSprite
2017-08-31 16:48:24 +02:00
ldr r4, =gSprites
2017-12-04 04:01:06 +01:00
ldr r0, =gWirelessStatusIndicatorSpriteId
2016-11-01 18:08:48 +01:00
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
adds r0, 0x43
movs r1, 0x1
strb r1, [r0]
ldr r0, =gUnknown_0858D8E0
2017-09-02 12:12:09 +02:00
bl LoadSpriteSheet
2016-11-01 18:08:48 +01:00
adds r1, r0, 0
lsls r1, 16
movs r0, 0x1
negs r0, r0
lsrs r1, 11
ldr r2, =0x06010000
adds r1, r2
movs r2, 0x80
movs r3, 0x1
bl RequestDma3Fill
ldr r0, =gSpriteTemplate_858D8C8
2016-11-01 18:08:48 +01:00
movs r1, 0x8
movs r2, 0x8
movs r3, 0
bl CreateSprite
2016-11-01 18:08:48 +01:00
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
ldrb r2, [r1, 0x1]
movs r0, 0xD
negs r0, r0
ands r0, r2
movs r2, 0x8
orrs r0, r2
strb r0, [r1, 0x1]
_080F6B58:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F6AE8
thumb_func_start sub_80F6B78
sub_80F6B78: @ 80F6B78
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x44
adds r5, r0, 0
lsls r1, 24
lsrs r7, r1, 24
add r4, sp, 0x20
adds r0, r4, 0
movs r1, 0
movs r2, 0x8
bl memset
movs r0, 0x1E
strb r0, [r4, 0x3]
movs r0, 0x2
strb r0, [r4, 0x4]
adds r0, r4, 0
bl AddWindow
lsls r6, r0, 24
lsrs r4, r6, 24
adds r0, r4, 0
movs r1, 0x11
bl FillWindowPixelBuffer
movs r0, 0x1
adds r1, r5, 0
movs r2, 0
bl GetStringWidth
adds r2, r0, 0
adds r2, 0x9
cmp r2, 0
bge _080F6BC4
adds r2, 0x7
_080F6BC4:
asrs r2, 3
mov r10, r2
cmp r2, 0x1E
ble _080F6BD0
movs r1, 0x1E
mov r10, r1
_080F6BD0:
mov r1, r10
lsls r2, r1, 3
subs r2, r0
lsrs r0, r2, 31
adds r2, r0
asrs r2, 1
lsls r2, 24
lsrs r2, 24
ldr r0, =gUnknown_0858D8E8
str r0, [sp]
movs r0, 0x1
negs r0, r0
str r0, [sp, 0x4]
str r5, [sp, 0x8]
adds r0, r4, 0
movs r1, 0x1
movs r3, 0x1
bl box_print
adds r0, r4, 0
movs r1, 0x7
bl GetWindowAttribute
mov r9, r0
ldr r2, =gUnknown_0858D6D0
mov r8, r2
lsls r1, r7, 4
adds r1, r7
lsls r1, 2
2017-08-31 16:48:24 +02:00
ldr r3, =gSprites
2016-11-01 18:08:48 +01:00
adds r1, r3
ldrh r0, [r1, 0x4]
lsls r0, 22
lsrs r0, 17
ldr r2, =0x06010000
adds r0, r2
str r0, [sp, 0xC]
str r6, [sp, 0x38]
mov r7, sp
adds r7, 0x1C
str r7, [sp, 0x2C]
mov r0, r10
adds r0, 0x2
str r0, [sp, 0x30]
movs r5, 0
add r7, sp, 0x10
mov r12, r7
adds r6, r1, 0
adds r6, 0x2E
movs r4, 0x2
_080F6C34:
adds r0, r6, r5
movs r7, 0
ldrsh r1, [r0, r7]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r0, [r0, 0x4]
lsls r0, 22
lsrs r0, 17
adds r0, r2
mov r1, r12
adds r1, 0x4
mov r12, r1
subs r1, 0x4
stm r1!, {r0}
adds r5, 0x2
subs r4, 0x1
cmp r4, 0
bge _080F6C34
mov r7, r8
adds r7, 0x80
mov r2, r8
adds r2, 0x40
str r2, [sp, 0x28]
mov r0, r8
adds r0, 0x20
str r0, [sp, 0x3C]
mov r1, r8
adds r1, 0xA0
str r1, [sp, 0x40]
adds r2, 0x20
str r2, [sp, 0x34]
add r5, sp, 0xC
movs r6, 0
movs r4, 0x3
_080F6C7C:
str r6, [sp, 0x1C]
ldm r5!, {r1}
ldr r0, [sp, 0x2C]
ldr r2, =0x05000100
bl CpuSet
subs r4, 0x1
cmp r4, 0
bge _080F6C7C
ldr r5, [sp, 0xC]
ldr r6, =0x04000008
mov r0, r8
adds r1, r5, 0
adds r2, r6, 0
bl CpuSet
movs r0, 0x80
lsls r0, 1
adds r1, r5, r0
adds r0, r7, 0
adds r2, r6, 0
bl CpuSet
movs r2, 0x80
lsls r2, 2
adds r1, r5, r2
adds r0, r7, 0
adds r2, r6, 0
bl CpuSet
movs r7, 0xC0
lsls r7, 2
adds r1, r5, r7
ldr r0, [sp, 0x28]
adds r2, r6, 0
bl CpuSet
movs r4, 0
cmp r4, r10
bge _080F6D32
adds r7, r6, 0
_080F6CCE:
adds r6, r4, 0x1
adds r0, r6, 0
cmp r6, 0
bge _080F6CDA
adds r0, r4, 0
adds r0, 0x8
_080F6CDA:
asrs r0, 3
lsls r1, r0, 2
add r1, sp
adds r1, 0xC
lsls r0, 3
subs r0, r6, r0
lsls r0, 5
ldr r1, [r1]
adds r5, r1, r0
mov r0, r8
adds r0, 0xC0
adds r1, r5, 0
adds r2, r7, 0
bl CpuSet
movs r0, 0x80
lsls r0, 1
adds r1, r5, r0
mov r0, r9
adds r2, r7, 0
bl CpuSet
movs r0, 0xF0
lsls r0, 2
add r0, r9
movs r2, 0x80
lsls r2, 2
adds r1, r5, r2
adds r2, r7, 0
bl CpuSet
movs r0, 0xC0
lsls r0, 2
adds r1, r5, r0
mov r0, r8
adds r0, 0xE0
adds r2, r7, 0
bl CpuSet
movs r1, 0x20
add r9, r1
adds r4, r6, 0
cmp r4, r10
blt _080F6CCE
_080F6D32:
adds r2, r4, 0x1
adds r0, r2, 0
cmp r2, 0
bge _080F6D3E
adds r0, r4, 0
adds r0, 0x8
_080F6D3E:
asrs r0, 3
lsls r1, r0, 2
add r1, sp
adds r1, 0xC
lsls r0, 3
subs r0, r2, r0
lsls r0, 5
ldr r1, [r1]
adds r5, r1, r0
ldr r4, =0x04000008
ldr r0, [sp, 0x3C]
adds r1, r5, 0
adds r2, r4, 0
bl CpuSet
movs r2, 0x80
lsls r2, 1
adds r1, r5, r2
ldr r0, [sp, 0x40]
adds r2, r4, 0
bl CpuSet
movs r7, 0x80
lsls r7, 2
adds r1, r5, r7
ldr r0, [sp, 0x40]
adds r2, r4, 0
bl CpuSet
movs r0, 0xC0
lsls r0, 2
adds r1, r5, r0
ldr r0, [sp, 0x34]
adds r2, r4, 0
bl CpuSet
ldr r1, [sp, 0x38]
lsrs r0, r1, 24
bl RemoveWindow
ldr r2, [sp, 0x30]
lsls r1, r2, 3
movs r0, 0xF0
subs r0, r1
asrs r0, 1
add sp, 0x44
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_80F6B78
thumb_func_start sub_80F6DC0
sub_80F6DC0: @ 80F6DC0
push {r4-r6,lr}
sub sp, 0x20
mov r1, sp
ldr r0, =gSpriteTemplate_858D7F8
2016-11-01 18:08:48 +01:00
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
add r5, sp, 0x18
ldr r6, =gUnknown_0858D810
movs r4, 0x7
_080F6DD6:
adds r0, r6, 0
2017-09-02 12:12:09 +02:00
bl LoadSpriteSheet
2016-11-01 18:08:48 +01:00
adds r6, 0x8
subs r4, 0x1
cmp r4, 0
bge _080F6DD6
ldr r0, =gUnknown_0858D850
2017-09-02 13:11:19 +02:00
bl LoadSpritePalette
2016-11-01 18:08:48 +01:00
movs r4, 0
mov r6, sp
_080F6DEE:
mov r0, sp
movs r1, 0x88
lsls r1, 1
movs r2, 0x90
movs r3, 0xA
bl CreateSprite
2016-11-01 18:08:48 +01:00
adds r1, r5, r4
strb r0, [r1]
ldrh r0, [r6]
adds r0, 0x1
strh r0, [r6]
adds r4, 0x1
cmp r4, 0x7
ble _080F6DEE
2017-08-31 16:48:24 +02:00
ldr r2, =gSprites
2016-11-01 18:08:48 +01:00
ldrb r1, [r5]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r5, 0x1]
movs r3, 0
strh r1, [r0, 0x2E]
ldrb r1, [r5]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r5, 0x2]
strh r1, [r0, 0x30]
ldrb r1, [r5]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r5, 0x3]
strh r1, [r0, 0x32]
ldrb r1, [r5, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r5, 0x5]
strh r1, [r0, 0x2E]
ldrb r1, [r5, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r5, 0x6]
strh r1, [r0, 0x30]
ldrb r1, [r5, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r5, 0x7]
strh r1, [r0, 0x32]
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r1]
ldr r2, [r0]
ldrb r0, [r5]
strb r0, [r2]
ldr r0, [r1]
ldr r0, [r0]
strb r3, [r0, 0x4]
ldr r0, [r1]
ldr r1, [r0]
ldrb r0, [r5, 0x4]
strb r0, [r1, 0x1]
bl sub_80F7144
add sp, 0x20
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F6DC0
thumb_func_start sub_80F6E9C
sub_80F6E9C: @ 80F6E9C
push {r4-r6,lr}
mov r6, r8
push {r6}
2016-11-01 19:35:16 +01:00
ldr r4, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r4, [r4]
mov r8, r4
ldr r4, [r4]
ldrb r5, [r4]
lsls r4, r5, 4
adds r4, r5
lsls r4, 2
2017-08-31 16:48:24 +02:00
ldr r5, =gSprites
2016-11-01 18:08:48 +01:00
adds r4, r5
movs r6, 0
movs r5, 0x88
lsls r5, 1
strh r5, [r4, 0x20]
strh r1, [r4, 0x22]
strh r6, [r4, 0x24]
strh r6, [r4, 0x26]
lsls r0, 16
asrs r0, 16
adds r0, 0x20
strh r0, [r4, 0x36]
strh r2, [r4, 0x38]
strh r3, [r4, 0x3A]
strh r6, [r4, 0x3C]
ldr r0, =sub_80F6F68
str r0, [r4, 0x1C]
mov r0, r8
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x4]
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F6E9C
thumb_func_start sub_80F6EF4
sub_80F6EF4: @ 80F6EF4
push {r4,r5,lr}
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r4, [r1]
ldr r1, [r4]
ldrb r2, [r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
2017-08-31 16:48:24 +02:00
ldr r2, =gSprites
2016-11-01 18:08:48 +01:00
adds r1, r2
ldrh r2, [r1, 0x24]
ldrh r3, [r1, 0x20]
adds r2, r3
movs r3, 0
strh r2, [r1, 0x20]
ldrh r2, [r1, 0x26]
ldrh r5, [r1, 0x22]
adds r2, r5
strh r2, [r1, 0x22]
strh r3, [r1, 0x26]
strh r3, [r1, 0x24]
strh r0, [r1, 0x3A]
strh r3, [r1, 0x3C]
ldr r0, =sub_80F7014
str r0, [r1, 0x1C]
ldr r1, [r4]
movs r0, 0x3
strb r0, [r1, 0x4]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F6EF4
thumb_func_start sub_80F6F40
sub_80F6F40: @ 80F6F40
movs r3, 0
movs r2, 0
movs r1, 0x88
lsls r1, 1
strh r1, [r0, 0x20]
movs r1, 0x90
strh r1, [r0, 0x22]
strh r2, [r0, 0x26]
strh r2, [r0, 0x24]
2017-09-01 23:40:13 +02:00
ldr r1, =SpriteCallbackDummy
2016-11-01 18:08:48 +01:00
str r1, [r0, 0x1C]
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r0, [r0]
strb r3, [r0, 0x4]
bx lr
.pool
thumb_func_end sub_80F6F40
thumb_func_start sub_80F6F68
sub_80F6F68: @ 80F6F68
push {r4-r7,lr}
adds r3, r0, 0
ldrh r2, [r3, 0x3A]
ldrh r0, [r3, 0x3C]
adds r2, r0
lsls r1, r2, 16
asrs r1, 24
ldrh r0, [r3, 0x20]
subs r0, r1
strh r0, [r3, 0x20]
movs r1, 0xFF
ands r2, r1
strh r2, [r3, 0x3C]
lsls r0, 16
asrs r0, 16
ldrh r2, [r3, 0x36]
movs r4, 0x36
ldrsh r1, [r3, r4]
cmp r0, r1
bge _080F6F92
strh r2, [r3, 0x20]
_080F6F92:
movs r4, 0
2017-08-31 16:48:24 +02:00
ldr r6, =gSprites
2016-11-01 18:08:48 +01:00
movs r5, 0x40
adds r2, r3, 0
adds r2, 0x2E
_080F6F9C:
movs r7, 0
ldrsh r0, [r2, r7]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r6
ldrh r0, [r3, 0x24]
ldrh r7, [r3, 0x20]
adds r0, r7
adds r0, r5
strh r0, [r1, 0x20]
adds r5, 0x40
adds r2, 0x2
adds r4, 0x1
cmp r4, 0x2
ble _080F6F9C
movs r0, 0x20
ldrsh r1, [r3, r0]
movs r2, 0x36
ldrsh r0, [r3, r2]
cmp r1, r0
bne _080F6FCC
ldr r0, =sub_80F6FDC
str r0, [r3, 0x1C]
_080F6FCC:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F6F68
thumb_func_start sub_80F6FDC
sub_80F6FDC: @ 80F6FDC
push {lr}
adds r2, r0, 0
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r1, [r0]
movs r0, 0x2
strb r0, [r1, 0x4]
ldrh r3, [r2, 0x38]
ldr r1, =0xffff0000
lsrs r0, r1, 16
cmp r3, r0
beq _080F7008
subs r0, r3, 0x1
strh r0, [r2, 0x38]
lsls r0, 16
asrs r0, 16
asrs r1, 16
cmp r0, r1
bne _080F7008
ldrh r0, [r2, 0x3A]
bl sub_80F6EF4
_080F7008:
pop {r0}
bx r0
.pool
thumb_func_end sub_80F6FDC
thumb_func_start sub_80F7014
sub_80F7014: @ 80F7014
push {r4-r7,lr}
adds r3, r0, 0
ldrh r2, [r3, 0x3A]
ldrh r0, [r3, 0x3C]
adds r2, r0
lsls r1, r2, 16
asrs r1, 24
ldrh r0, [r3, 0x20]
subs r0, r1
strh r0, [r3, 0x20]
movs r0, 0xFF
ands r2, r0
strh r2, [r3, 0x3C]
movs r4, 0
2017-08-31 16:48:24 +02:00
ldr r6, =gSprites
2016-11-01 18:08:48 +01:00
movs r5, 0x40
adds r2, r3, 0
adds r2, 0x2E
_080F7038:
movs r1, 0
ldrsh r0, [r2, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r6
ldrh r0, [r3, 0x24]
ldrh r7, [r3, 0x20]
adds r0, r7
adds r0, r5
strh r0, [r1, 0x20]
adds r5, 0x40
adds r2, 0x2
adds r4, 0x1
cmp r4, 0x2
ble _080F7038
movs r1, 0x20
ldrsh r0, [r3, r1]
movs r2, 0x24
ldrsh r1, [r3, r2]
adds r0, r1
movs r1, 0xE0
negs r1, r1
cmp r0, r1
bge _080F7070
adds r0, r3, 0
bl sub_80F6F40
_080F7070:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F7014
thumb_func_start sub_80F707C
sub_80F707C: @ 80F707C
push {r4-r7,lr}
2016-11-01 19:35:16 +01:00
ldr r4, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r1, [r4]
ldr r1, [r1]
ldrb r1, [r1, 0x1]
bl sub_80F6B78
lsls r0, 16
lsrs r0, 16
ldr r1, [r4]
ldr r1, [r1]
ldrb r2, [r1, 0x1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
2017-08-31 16:48:24 +02:00
ldr r3, =gSprites
2016-11-01 18:08:48 +01:00
adds r4, r1, r3
adds r0, 0x20
strh r0, [r4, 0x20]
movs r0, 0x50
strh r0, [r4, 0x22]
adds r5, r4, 0
adds r5, 0x3E
ldrb r1, [r5]
movs r2, 0x5
negs r2, r2
adds r0, r2, 0
ands r0, r1
strb r0, [r5]
movs r5, 0
adds r6, r3, 0
mov r12, r2
movs r3, 0x40
_080F70BE:
lsls r0, r5, 1
adds r2, r4, 0
adds r2, 0x2E
adds r2, r0
movs r1, 0
ldrsh r0, [r2, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r6
ldrh r0, [r4, 0x24]
ldrh r7, [r4, 0x20]
adds r0, r7
adds r0, r3
strh r0, [r1, 0x20]
movs r0, 0
ldrsh r1, [r2, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
ldrh r1, [r4, 0x22]
strh r1, [r0, 0x22]
movs r1, 0
ldrsh r0, [r2, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r6
adds r1, 0x3E
ldrb r2, [r1]
mov r0, r12
ands r0, r2
strb r0, [r1]
adds r3, 0x40
adds r5, 0x1
cmp r5, 0x2
ble _080F70BE
2017-10-01 01:12:42 +02:00
ldr r1, =gBattle_WIN0H
2016-11-01 18:08:48 +01:00
movs r0, 0xF0
strh r0, [r1]
2017-10-01 01:12:42 +02:00
ldr r2, =gBattle_WIN0V
2016-11-01 18:08:48 +01:00
ldrh r1, [r4, 0x22]
adds r0, r1, 0
subs r0, 0x10
lsls r0, 8
adds r1, 0x10
orrs r0, r1
strh r0, [r2]
ldr r1, =0x00003f3e
movs r0, 0x48
bl SetGpuReg
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F707C
thumb_func_start sub_80F7144
sub_80F7144: @ 80F7144
push {r4-r7,lr}
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r0, [r0]
ldrb r0, [r0, 0x1]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
2017-08-31 16:48:24 +02:00
ldr r3, =gSprites
2016-11-01 18:08:48 +01:00
adds r2, r3
movs r0, 0x3E
adds r0, r2
mov r12, r0
ldrb r0, [r0]
movs r1, 0x4
orrs r0, r1
mov r1, r12
strb r0, [r1]
2017-10-01 01:12:42 +02:00
ldr r7, =gBattle_WIN0H
ldr r6, =gBattle_WIN0V
2016-11-01 18:08:48 +01:00
adds r5, r3, 0
movs r4, 0x4
adds r2, 0x2E
movs r3, 0x2
_080F7174:
movs r1, 0
ldrsh r0, [r2, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r5
adds r1, 0x3E
ldrb r0, [r1]
orrs r0, r4
strb r0, [r1]
adds r2, 0x2
subs r3, 0x1
cmp r3, 0
bge _080F7174
movs r0, 0
strh r0, [r7]
strh r0, [r6]
movs r0, 0x40
movs r1, 0
bl SetGpuReg
ldrh r1, [r6]
movs r0, 0x44
bl SetGpuReg
ldr r1, =0x00003f3f
movs r0, 0x48
bl SetGpuReg
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F7144
thumb_func_start sub_80F71C8
sub_80F71C8: @ 80F71C8
push {r4-r6,lr}
sub sp, 0xC
movs r5, 0x5
movs r4, 0x1
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F2A
2016-11-01 18:08:48 +01:00
ldrb r1, [r0]
adds r0, r4, 0
ands r0, r1
cmp r0, 0
beq _080F71F8
ldr r1, =gUnknown_08DC6498
str r5, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r2, 0x5
movs r3, 0x1
bl CopyToBgTilemapBufferRect
movs r5, 0xA
b _080F7240
.pool
_080F71F8:
2017-11-11 01:12:18 +01:00
ldr r0, =gSpecialVar_ContestRank
2016-11-01 18:08:48 +01:00
ldrh r2, [r0]
cmp r2, 0
bne _080F720C
ldr r1, =gUnknown_08DC63F8
b _080F722E
.pool
_080F720C:
cmp r2, 0x1
bne _080F7218
ldr r1, =gUnknown_08DC6420
b _080F722E
.pool
_080F7218:
cmp r2, 0x2
bne _080F722C
ldr r1, =gUnknown_08DC6448
movs r0, 0xA
str r0, [sp]
str r2, [sp, 0x4]
movs r0, 0x2
b _080F7236
.pool
_080F722C:
ldr r1, =gUnknown_08DC6470
_080F722E:
movs r0, 0xA
str r0, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
_080F7236:
movs r2, 0x5
movs r3, 0x1
bl CopyToBgTilemapBufferRect
movs r5, 0xF
_080F7240:
2017-11-11 01:12:18 +01:00
ldr r0, =gSpecialVar_ContestCategory
2016-11-01 18:08:48 +01:00
ldrh r0, [r0]
cmp r0, 0
bne _080F725C
movs r6, 0
ldr r1, =gUnknown_08DC64AC
b _080F7298
.pool
_080F725C:
cmp r0, 0x1
bne _080F726C
movs r6, 0x1
ldr r1, =gUnknown_08DC64C0
b _080F7298
.pool
_080F726C:
cmp r0, 0x2
bne _080F7290
movs r6, 0x2
ldr r1, =gUnknown_08DC64D4
lsls r2, r5, 24
lsrs r2, 24
lsls r4, 24
lsrs r3, r4, 24
movs r0, 0x5
str r0, [sp]
str r6, [sp, 0x4]
movs r0, 0x2
bl CopyToBgTilemapBufferRect
b _080F72CC
.pool
_080F7290:
cmp r0, 0x3
bne _080F72B4
movs r6, 0x3
ldr r1, =gUnknown_08DC64E8
_080F7298:
lsls r2, r5, 24
lsrs r2, 24
lsls r4, 24
lsrs r3, r4, 24
movs r0, 0x5
str r0, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
bl CopyToBgTilemapBufferRect
b _080F72CC
.pool
_080F72B4:
movs r6, 0x4
ldr r1, =gUnknown_08DC64FC
lsls r2, r5, 24
lsrs r2, 24
lsls r4, 24
lsrs r3, r4, 24
movs r0, 0x5
str r0, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
bl CopyToBgTilemapBufferRect
_080F72CC:
adds r5, 0x5
ldr r1, =gUnknown_08DC6510
lsls r2, r5, 24
lsrs r2, 24
lsrs r3, r4, 24
movs r0, 0x6
str r0, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
bl CopyToBgTilemapBufferRect
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r1, [r0, 0x14]
movs r0, 0x20
str r0, [sp]
movs r0, 0x4
str r0, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0x2
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBufferRect_ChangePalette
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F71C8
thumb_func_start sub_80F7310
sub_80F7310: @ 80F7310
push {r4,r5,lr}
lsls r0, 24
lsls r1, 24
lsrs r5, r1, 24
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_02039F00
2016-11-01 18:08:48 +01:00
lsrs r0, 23
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
lsls r4, r0, 16
adds r0, r4, 0
movs r1, 0x3F
bl __udivsi3
adds r1, r0, 0
ldr r0, =0x0000ffff
ands r0, r1
cmp r0, 0
beq _080F733C
movs r0, 0x80
lsls r0, 9
adds r1, r0
_080F733C:
lsrs r1, 16
cmp r1, 0
bne _080F7348
cmp r4, 0
beq _080F7348
movs r1, 0x1
_080F7348:
cmp r5, 0
beq _080F7352
cmp r1, 0xA
bls _080F7352
movs r1, 0xA
_080F7352:
lsls r0, r1, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_80F7310
thumb_func_start sub_80F7364
sub_80F7364: @ 80F7364
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 24
lsrs r6, r1, 24
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_02039F18
2016-11-01 18:08:48 +01:00
lsls r0, r5, 1
adds r0, r1
movs r2, 0
ldrsh r0, [r0, r2]
adds r7, r1, 0
cmp r0, 0
bge _080F7380
negs r0, r0
_080F7380:
lsls r4, r0, 16
adds r0, r4, 0
movs r1, 0x50
bl __udivsi3
adds r2, r0, 0
ldr r0, =0x0000ffff
ands r0, r2
cmp r0, 0
beq _080F739A
movs r0, 0x80
lsls r0, 9
adds r2, r0
_080F739A:
lsrs r2, 16
cmp r2, 0
bne _080F73A6
cmp r4, 0
beq _080F73A6
movs r2, 0x1
_080F73A6:
cmp r6, 0
beq _080F73B0
cmp r2, 0xA
bls _080F73B0
movs r2, 0xA
_080F73B0:
lsls r0, r5, 1
adds r0, r7
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bge _080F73CC
negs r0, r2
lsls r0, 24
b _080F73CE
.pool
_080F73CC:
lsls r0, r2, 24
_080F73CE:
lsrs r0, 24
lsls r0, 24
asrs r0, 24
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80F7364
thumb_func_start sub_80F73DC
sub_80F73DC: @ 80F73DC
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
mov r8, r0
2016-11-01 19:35:16 +01:00
ldr r1, =gTasks
2016-11-01 18:08:48 +01:00
lsls r0, 2
add r0, r8
lsls r0, 3
adds r7, r0, r1
ldrh r2, [r7, 0x1C]
movs r0, 0x1C
ldrsh r6, [r7, r0]
cmp r6, 0
bne _080F741C
movs r1, 0x8
ldrsh r0, [r7, r1]
movs r1, 0x3
subs r1, r0
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
strh r0, [r7, 0x1E]
adds r0, r2, 0x1
strh r0, [r7, 0x1C]
b _080F74A4
.pool
_080F741C:
cmp r6, 0x1
bne _080F74A4
ldrh r0, [r7, 0x1E]
subs r0, 0x1
strh r0, [r7, 0x1E]
lsls r0, 16
asrs r0, 16
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _080F74A4
movs r2, 0x8
ldrsh r4, [r7, r2]
lsls r4, 17
ldr r0, =0x50430000
adds r4, r0
lsrs r4, 16
movs r1, 0xA
ldrsh r0, [r7, r1]
lsls r3, r0, 1
adds r3, r0
adds r3, 0x5
lsls r3, 24
lsrs r3, 24
movs r2, 0x2
mov r9, r2
str r2, [sp]
str r6, [sp, 0x4]
movs r5, 0x11
str r5, [sp, 0x8]
str r6, [sp, 0xC]
movs r0, 0x2
adds r1, r4, 0
movs r2, 0x1
bl WriteSequenceToBgTilemapBuffer
adds r4, 0x10
lsls r4, 16
lsrs r4, 16
movs r1, 0xA
ldrsh r0, [r7, r1]
lsls r3, r0, 1
adds r3, r0
adds r3, 0x6
lsls r3, 24
lsrs r3, 24
mov r2, r9
str r2, [sp]
str r6, [sp, 0x4]
str r5, [sp, 0x8]
str r6, [sp, 0xC]
movs r0, 0x2
adds r1, r4, 0
movs r2, 0x1
bl WriteSequenceToBgTilemapBuffer
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r1, [r0]
ldrb r0, [r1, 0x5]
adds r0, 0x1
strb r0, [r1, 0x5]
mov r0, r8
bl DestroyTask
movs r0, 0x18
2017-09-02 17:03:46 +02:00
bl PlaySE
2016-11-01 18:08:48 +01:00
_080F74A4:
add sp, 0x10
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F73DC
thumb_func_start sub_80F74BC
sub_80F74BC: @ 80F74BC
push {r4-r6,lr}
sub sp, 0xC
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_02039F20
2016-11-01 18:08:48 +01:00
ldrb r0, [r1]
2016-11-01 19:35:16 +01:00
ldr r6, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
cmp r0, 0
beq _080F74DE
_080F74D0:
adds r4, 0x1
cmp r4, 0x3
bgt _080F74DE
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, 0
bne _080F74D0
_080F74DE:
ldr r1, [r6]
lsls r3, r4, 1
adds r3, r4
lsls r0, r3, 6
movs r2, 0x80
lsls r2, 1
adds r0, r2
ldr r1, [r1, 0x14]
adds r1, r0
adds r3, 0x4
lsls r3, 24
lsrs r3, 24
movs r0, 0x20
str r0, [sp]
movs r0, 0x3
str r0, [sp, 0x4]
movs r0, 0x9
str r0, [sp, 0x8]
movs r0, 0x2
movs r2, 0
bl CopyToBgTilemapBufferRect_ChangePalette
2016-11-01 19:35:16 +01:00
ldr r1, =gTasks
2016-11-01 18:08:48 +01:00
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
strh r4, [r0, 0x1C]
movs r1, 0x1
strh r1, [r0, 0x20]
ldr r1, =sub_80F753C
str r1, [r0]
ldr r0, [r6]
ldr r0, [r0]
strb r5, [r0, 0x3]
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F74BC
thumb_func_start sub_80F753C
sub_80F753C: @ 80F753C
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
2016-11-01 19:35:16 +01:00
ldr r2, =gTasks
2016-11-01 18:08:48 +01:00
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
ldrh r0, [r4, 0x1E]
adds r0, 0x1
strh r0, [r4, 0x1E]
lsls r0, 16
asrs r5, r0, 16
cmp r5, 0x1
bne _080F75A0
movs r0, 0
strh r0, [r4, 0x1E]
ldrh r2, [r4, 0x20]
lsls r2, 24
lsrs r2, 24
ldr r3, =0x00006f8d
movs r0, 0x91
movs r1, 0x1
bl BlendPalette
2016-11-01 18:08:48 +01:00
movs r1, 0x22
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080F7590
ldrh r0, [r4, 0x20]
adds r0, 0x1
strh r0, [r4, 0x20]
lsls r0, 16
asrs r0, 16
cmp r0, 0x10
bne _080F75A0
strh r5, [r4, 0x22]
b _080F75A0
.pool
_080F7590:
ldrh r0, [r4, 0x20]
subs r0, 0x1
strh r0, [r4, 0x20]
lsls r0, 16
asrs r0, 16
cmp r0, 0
bne _080F75A0
strh r0, [r4, 0x22]
_080F75A0:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80F753C
thumb_func_start sub_80F75A8
sub_80F75A8: @ 80F75A8
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x2E]
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r0, 0x9
bgt _080F75D0
adds r0, r1, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0xA
bne _080F7610
ldrh r0, [r4, 0x30]
movs r1, 0
2017-09-02 16:03:53 +02:00
bl PlayCry1
2016-11-01 18:08:48 +01:00
movs r0, 0
strh r0, [r4, 0x30]
b _080F7610
_080F75D0:
movs r0, 0xC0
lsls r0, 3
adds r2, r0, 0
ldrh r1, [r4, 0x30]
adds r2, r1
lsls r1, r2, 16
asrs r1, 24
ldrh r0, [r4, 0x20]
subs r0, r1
strh r0, [r4, 0x20]
movs r1, 0xFF
ands r2, r1
strh r2, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x77
bgt _080F75F6
movs r0, 0x78
strh r0, [r4, 0x20]
_080F75F6:
movs r2, 0x20
ldrsh r0, [r4, r2]
cmp r0, 0x78
bne _080F7610
2017-09-01 23:40:13 +02:00
ldr r0, =SpriteCallbackDummy
2016-11-01 18:08:48 +01:00
str r0, [r4, 0x1C]
movs r0, 0
strh r0, [r4, 0x30]
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x6]
_080F7610:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F75A8
thumb_func_start sub_80F7620
sub_80F7620: @ 80F7620
push {lr}
adds r3, r0, 0
movs r0, 0xC0
lsls r0, 3
adds r2, r0, 0
ldrh r0, [r3, 0x30]
adds r2, r0
lsls r1, r2, 16
asrs r1, 24
ldrh r0, [r3, 0x20]
subs r0, r1
strh r0, [r3, 0x20]
movs r1, 0xFF
ands r2, r1
strh r2, [r3, 0x30]
lsls r0, 16
asrs r0, 16
movs r1, 0x20
negs r1, r1
cmp r0, r1
bge _080F7664
2017-09-01 23:40:13 +02:00
ldr r0, =SpriteCallbackDummy
2016-11-01 18:08:48 +01:00
str r0, [r3, 0x1C]
adds r2, r3, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r1, [r0]
movs r0, 0x2
strb r0, [r1, 0x6]
_080F7664:
pop {r0}
bx r0
.pool
thumb_func_end sub_80F7620
thumb_func_start sub_80F7670
sub_80F7670: @ 80F7670
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r7, r0, 24
2016-11-01 19:35:16 +01:00
ldr r1, =gTasks
2016-11-01 18:08:48 +01:00
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r1, r0, r1
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
lsls r0, 16
asrs r0, 16
cmp r0, 0x5
bne _080F7732
movs r0, 0
strh r0, [r1, 0x8]
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
mov r8, r0
ldr r0, [r0]
ldr r0, [r0]
ldrb r0, [r0, 0x7]
cmp r0, 0x27
bhi _080F7732
ldr r4, =gSpriteTemplate_858D860
bl Random
2016-11-01 18:08:48 +01:00
lsls r0, 16
lsrs r0, 16
movs r1, 0xF0
bl __umodsi3
adds r1, r0, 0
subs r1, 0x14
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
movs r2, 0x2C
movs r3, 0x5
bl CreateSprite
2016-11-01 18:08:48 +01:00
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl Random
2017-08-31 16:48:24 +02:00
ldr r1, =gSprites
2016-11-01 18:08:48 +01:00
lsls r5, r4, 4
adds r5, r4
lsls r5, 2
adds r5, r1
lsls r0, 23
lsrs r0, 23
strh r0, [r5, 0x2E]
bl Random
2016-11-01 18:08:48 +01:00
lsls r0, 16
lsrs r0, 16
movs r1, 0x18
bl __umodsi3
adds r0, 0x10
strh r0, [r5, 0x30]
bl Random
2016-11-01 18:08:48 +01:00
lsls r0, 16
lsrs r0, 16
movs r1, 0xFF
ands r0, r1
adds r0, 0x30
strh r0, [r5, 0x32]
bl Random
2016-11-01 18:08:48 +01:00
ldrh r6, [r5, 0x4]
lsls r4, r6, 22
lsrs r4, 22
lsls r0, 16
lsrs r0, 16
movs r1, 0x11
bl __umodsi3
adds r4, r0
ldr r1, =0x000003ff
adds r0, r1, 0
ands r4, r0
ldr r0, =0xfffffc00
ands r0, r6
orrs r0, r4
strh r0, [r5, 0x4]
mov r1, r8
ldr r0, [r1]
ldr r1, [r0]
ldrb r0, [r1, 0x7]
adds r0, 0x1
strb r0, [r1, 0x7]
_080F7732:
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r0, [r0]
ldrb r0, [r0, 0x9]
cmp r0, 0
beq _080F7744
adds r0, r7, 0
bl DestroyTask
_080F7744:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F7670
thumb_func_start sub_80F7768
sub_80F7768: @ 80F7768
push {r4,r5,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x2E]
ldrh r1, [r4, 0x34]
adds r0, r1
strh r0, [r4, 0x34]
lsls r0, 16
asrs r0, 24
movs r2, 0x30
ldrsh r1, [r4, r2]
bl Sin
2016-11-01 18:08:48 +01:00
strh r0, [r4, 0x24]
ldrh r1, [r4, 0x32]
ldrh r0, [r4, 0x36]
adds r1, r0
lsls r0, r1, 16
asrs r0, 24
ldrh r2, [r4, 0x20]
adds r0, r2
strh r0, [r4, 0x20]
movs r0, 0xFF
ands r1, r0
strh r1, [r4, 0x36]
ldrh r0, [r4, 0x22]
adds r0, 0x1
strh r0, [r4, 0x22]
2016-11-01 19:35:16 +01:00
ldr r5, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r5]
ldr r0, [r0]
ldrb r0, [r0, 0x9]
cmp r0, 0
beq _080F77B6
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
_080F77B6:
movs r1, 0x20
ldrsh r0, [r4, r1]
cmp r0, 0xF8
bgt _080F77C6
movs r2, 0x22
ldrsh r0, [r4, r2]
cmp r0, 0x74
ble _080F77D6
_080F77C6:
adds r0, r4, 0
bl DestroySprite
2016-11-01 18:08:48 +01:00
ldr r0, [r5]
ldr r1, [r0]
ldrb r0, [r1, 0x7]
subs r0, 0x1
strb r0, [r1, 0x7]
_080F77D6:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F7768
thumb_func_start sub_80F77E0
sub_80F77E0: @ 80F77E0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
lsls r4, 24
lsrs r4, 24
lsls r5, 24
lsrs r5, 24
ldr r0, =sub_80F7824
movs r1, 0x8
bl CreateTask
lsls r0, 24
lsrs r0, 24
2016-11-01 19:35:16 +01:00
ldr r2, =gTasks
2016-11-01 18:08:48 +01:00
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r4, [r1, 0x8]
strh r5, [r1, 0xA]
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039E00
2016-11-01 18:08:48 +01:00
lsls r4, 6
adds r4, r0
ldrh r0, [r4]
strh r0, [r1, 0xC]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F77E0
thumb_func_start sub_80F7824
sub_80F7824: @ 80F7824
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
2016-11-01 19:35:16 +01:00
ldr r2, =gTasks
2016-11-01 18:08:48 +01:00
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
ldrb r5, [r4, 0x8]
ldrh r0, [r4, 0x1C]
adds r1, r0, 0x1
strh r1, [r4, 0x1C]
lsls r0, 16
asrs r0, 16
movs r2, 0xA
ldrsh r1, [r4, r2]
cmp r0, r1
bne _080F786E
movs r0, 0
strh r0, [r4, 0x1C]
ldrh r0, [r4, 0xC]
ldrb r2, [r4, 0x1E]
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_02039E00
2016-11-01 18:08:48 +01:00
lsls r3, r5, 6
adds r1, 0x38
adds r3, r1
ldr r1, [r3]
str r1, [sp]
adds r1, r5, 0
movs r3, 0
bl sub_80F69B8
ldrh r0, [r4, 0x1E]
movs r1, 0x1
eors r0, r1
strh r0, [r4, 0x1E]
_080F786E:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F7824
thumb_func_start sub_80F7880
sub_80F7880: @ 80F7880
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F08
2016-11-01 18:08:48 +01:00
ldrh r2, [r0]
adds r4, r0, 0
adds r3, r4, 0x2
movs r0, 0x2
mov r8, r0
_080F7898:
lsls r0, r2, 16
asrs r0, 16
movs r5, 0
ldrsh r1, [r3, r5]
cmp r0, r1
bge _080F78A6
ldrh r2, [r3]
_080F78A6:
adds r3, 0x2
movs r0, 0x1
negs r0, r0
add r8, r0
mov r1, r8
cmp r1, 0
bge _080F7898
lsls r0, r2, 16
str r0, [sp]
cmp r0, 0
bge _080F78E4
ldrh r2, [r4]
adds r3, r4, 0x2
movs r4, 0x2
mov r8, r4
_080F78C4:
lsls r0, r2, 16
asrs r0, 16
movs r5, 0
ldrsh r1, [r3, r5]
cmp r0, r1
ble _080F78D2
ldrh r2, [r3]
_080F78D2:
adds r3, 0x2
movs r0, 0x1
negs r0, r0
add r8, r0
lsls r1, r2, 16
str r1, [sp]
mov r4, r8
cmp r4, 0
bge _080F78C4
_080F78E4:
movs r5, 0
mov r8, r5
mov r10, r5
_080F78EA:
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F00
2016-11-01 18:08:48 +01:00
mov r1, r8
lsls r7, r1, 1
adds r0, r7, r0
movs r2, 0
ldrsh r1, [r0, r2]
lsls r0, r1, 5
subs r0, r1
lsls r0, 2
adds r0, r1
lsls r0, 3
ldr r4, [sp]
asrs r5, r4, 16
adds r1, r5, 0
cmp r5, 0
bge _080F790C
negs r1, r5
_080F790C:
bl __divsi3
adds r4, r0, 0
movs r1, 0xA
bl __modsi3
cmp r0, 0x4
ble _080F791E
adds r4, 0xA
_080F791E:
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
mov r9, r0
ldr r0, [r0]
ldr r0, [r0, 0x4]
mov r1, r10
adds r6, r1, r0
adds r0, r4, 0
movs r1, 0xA
bl __divsi3
str r0, [r6]
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F18
2016-11-01 18:08:48 +01:00
adds r7, r0
movs r2, 0
ldrsh r1, [r7, r2]
cmp r1, 0
bge _080F7942
negs r1, r1
_080F7942:
lsls r0, r1, 5
subs r0, r1
lsls r0, 2
adds r0, r1
lsls r0, 3
adds r1, r5, 0
cmp r1, 0
bge _080F7954
negs r1, r1
_080F7954:
bl __divsi3
adds r4, r0, 0
movs r1, 0xA
bl __modsi3
cmp r0, 0x4
ble _080F7966
adds r4, 0xA
_080F7966:
adds r0, r4, 0
movs r1, 0xA
bl __divsi3
str r0, [r6, 0x4]
movs r4, 0
ldrsh r0, [r7, r4]
cmp r0, 0
bge _080F797C
movs r0, 0x1
strb r0, [r6, 0x10]
_080F797C:
mov r5, r9
ldr r0, [r5]
ldr r0, [r0, 0x4]
mov r1, r10
adds r4, r1, r0
ldr r1, [r4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
subs r0, r1
lsls r0, 11
movs r1, 0x64
bl __divsi3
adds r1, r0, 0
movs r5, 0xFF
ands r0, r5
cmp r0, 0x7F
bls _080F79A8
movs r2, 0x80
lsls r2, 1
adds r1, r2
_080F79A8:
lsrs r0, r1, 8
str r0, [r4, 0x8]
ldr r1, [r4, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
subs r0, r1
lsls r0, 11
movs r1, 0x64
bl __divsi3
adds r1, r0, 0
ands r0, r5
cmp r0, 0x7F
bls _080F79CC
movs r5, 0x80
lsls r5, 1
adds r1, r5
_080F79CC:
lsrs r0, r1, 8
str r0, [r4, 0xC]
mov r0, r8
lsls r4, r0, 24
lsrs r4, 24
adds r0, r4, 0
movs r1, 0x1
bl sub_80F7310
mov r2, r9
ldr r1, [r2]
ldr r1, [r1, 0x4]
add r1, r10
strb r0, [r1, 0x11]
adds r0, r4, 0
movs r1, 0x1
bl sub_80F7364
mov r4, r9
ldr r1, [r4]
ldr r1, [r1, 0x4]
add r1, r10
lsls r0, 24
asrs r0, 24
cmp r0, 0
bge _080F7A02
negs r0, r0
_080F7A02:
strb r0, [r1, 0x12]
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F20
2016-11-01 18:08:48 +01:00
add r0, r8
ldrb r0, [r0]
cmp r0, 0
beq _080F7A60
mov r5, r9
ldr r0, [r5]
ldr r0, [r0, 0x4]
mov r2, r10
adds r1, r2, r0
ldr r5, [r1, 0x8]
ldrh r3, [r1, 0x8]
ldr r4, [r1, 0xC]
ldrh r2, [r1, 0xC]
ldrb r0, [r1, 0x10]
cmp r0, 0
beq _080F7A2C
lsls r0, r2, 16
negs r0, r0
lsrs r2, r0, 16
_080F7A2C:
lsls r0, r3, 16
asrs r3, r0, 16
lsls r0, r2, 16
asrs r2, r0, 16
adds r0, r3, r2
cmp r0, 0x58
bne _080F7A60
cmp r2, 0
ble _080F7A58
subs r0, r4, 0x1
str r0, [r1, 0xC]
b _080F7A60
.pool
_080F7A58:
cmp r3, 0
ble _080F7A60
subs r0, r5, 0x1
str r0, [r1, 0x8]
_080F7A60:
movs r4, 0x14
add r10, r4
movs r5, 0x1
add r8, r5
mov r0, r8
cmp r0, 0x3
bgt _080F7A70
b _080F78EA
_080F7A70:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80F7880
thumb_func_start sub_80F7A80
sub_80F7A80: @ 80F7A80
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
lsls r0, 24
lsls r1, 24
lsrs r1, 24
mov r8, r1
movs r1, 0
str r1, [sp, 0x8]
movs r3, 0
str r3, [sp, 0xC]
cmp r0, 0
bne _080F7B5C
mov r9, r3
2016-11-01 19:35:16 +01:00
ldr r4, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
mov r10, r4
movs r7, 0xA0
lsls r7, 19
movs r6, 0
_080F7AAC:
mov r1, r10
ldr r0, [r1]
ldr r0, [r0, 0x4]
adds r0, r6, r0
ldrb r2, [r0, 0x11]
cmp r8, r2
bcs _080F7B2E
adds r2, 0x13
mov r3, r8
subs r2, r3
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
lsrs r3, r7, 24
movs r0, 0x1
str r0, [sp]
str r0, [sp, 0x4]
ldr r1, =0x000060b3
bl FillBgTilemapBufferRect_Palette0
ldr r0, =sub_80F7CA8
movs r1, 0xA
bl CreateTask
lsls r0, 24
lsrs r5, r0, 24
mov r0, r10
ldr r4, [r0]
ldr r1, [r4, 0x4]
adds r1, r6, r1
ldr r0, [r1, 0x8]
lsls r0, 16
ldrb r1, [r1, 0x11]
bl __udivsi3
mov r1, r8
adds r1, 0x1
adds r3, r0, 0
muls r3, r1
ldr r0, =0x0000ffff
ands r0, r3
ldr r1, =0x00007fff
cmp r0, r1
bls _080F7B0A
movs r1, 0x80
lsls r1, 9
adds r3, r1
_080F7B0A:
2016-11-01 19:35:16 +01:00
ldr r1, =gTasks
2016-11-01 18:08:48 +01:00
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
mov r1, r9
strh r1, [r0, 0x8]
lsrs r1, r3, 16
strh r1, [r0, 0xA]
ldr r1, [r4]
ldrb r0, [r1, 0x14]
adds r0, 0x1
strb r0, [r1, 0x14]
ldr r0, [sp, 0x8]
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x8]
_080F7B2E:
movs r3, 0xC0
lsls r3, 18
adds r7, r3
adds r6, 0x14
movs r4, 0x1
add r9, r4
mov r0, r9
cmp r0, 0x3
ble _080F7AAC
b _080F7C7E
.pool
_080F7B5C:
movs r1, 0
mov r9, r1
mov r10, r1
movs r3, 0xC0
lsls r3, 19
str r3, [sp, 0x10]
_080F7B68:
2016-11-01 19:35:16 +01:00
ldr r4, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r4]
ldr r0, [r0, 0x4]
add r0, r10
ldrb r2, [r0, 0x12]
ldrb r0, [r0, 0x10]
ldr r1, =0x000060a3
cmp r0, 0
beq _080F7B7C
adds r1, 0x2
_080F7B7C:
lsls r0, r2, 24
asrs r0, 24
cmp r8, r0
bge _080F7C64
mov r3, r8
lsls r2, r3, 24
asrs r2, 24
subs r2, 0x13
subs r2, r0, r2
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
ldr r4, [sp, 0x10]
lsrs r3, r4, 24
movs r7, 0x1
str r7, [sp]
str r7, [sp, 0x4]
movs r0, 0x1
bl FillBgTilemapBufferRect_Palette0
ldr r0, =sub_80F7CA8
movs r1, 0xA
bl CreateTask
lsls r0, 24
lsrs r5, r0, 24
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r6, [r0]
ldr r1, [r6, 0x4]
add r1, r10
ldr r0, [r1, 0xC]
lsls r0, 16
ldrb r1, [r1, 0x12]
bl __udivsi3
mov r1, r8
adds r1, 0x1
adds r3, r0, 0
muls r3, r1
ldr r0, =0x0000ffff
ands r0, r3
ldr r1, =0x00007fff
cmp r0, r1
bls _080F7BDA
movs r1, 0x80
lsls r1, 9
adds r3, r1
_080F7BDA:
2016-11-01 19:35:16 +01:00
ldr r1, =gTasks
2016-11-01 18:08:48 +01:00
lsls r2, r5, 2
adds r0, r2, r5
lsls r0, 3
adds r4, r0, r1
mov r0, r9
strh r0, [r4, 0x8]
ldr r0, [r6, 0x4]
add r0, r10
ldrb r0, [r0, 0x10]
adds r6, r1, 0
cmp r0, 0
beq _080F7C1C
strh r7, [r4, 0xC]
ldr r0, [sp, 0xC]
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0xC]
b _080F7C26
.pool
_080F7C1C:
ldr r0, [sp, 0x8]
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x8]
_080F7C26:
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r1]
ldr r0, [r0, 0x4]
mov r4, r10
adds r1, r4, r0
ldrb r0, [r1, 0x10]
2016-11-01 19:35:16 +01:00
ldr r4, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
cmp r0, 0
beq _080F7C4C
adds r0, r2, r5
lsls r0, 3
adds r0, r6
lsrs r2, r3, 16
ldr r1, [r1, 0x8]
subs r1, r2
b _080F7C58
.pool
_080F7C4C:
adds r0, r2, r5
lsls r0, 3
adds r0, r6
lsrs r2, r3, 16
ldr r1, [r1, 0x8]
adds r1, r2
_080F7C58:
strh r1, [r0, 0xA]
ldr r0, [r4]
ldr r1, [r0]
ldrb r0, [r1, 0x14]
adds r0, 0x1
strb r0, [r1, 0x14]
_080F7C64:
movs r0, 0x14
add r10, r0
ldr r1, [sp, 0x10]
movs r3, 0xC0
lsls r3, 18
adds r1, r3
str r1, [sp, 0x10]
movs r4, 0x1
add r9, r4
mov r0, r9
cmp r0, 0x3
bgt _080F7C7E
b _080F7B68
_080F7C7E:
ldr r1, [sp, 0xC]
cmp r1, 0
beq _080F7C8A
movs r0, 0x16
2017-09-02 17:03:46 +02:00
bl PlaySE
2016-11-01 18:08:48 +01:00
_080F7C8A:
ldr r3, [sp, 0x8]
cmp r3, 0
beq _080F7C96
movs r0, 0x15
2017-09-02 17:03:46 +02:00
bl PlaySE
2016-11-01 18:08:48 +01:00
_080F7C96:
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80F7A80
thumb_func_start sub_80F7CA8
sub_80F7CA8: @ 80F7CA8
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x8
lsls r0, 24
lsrs r0, 24
mov r8, r0
movs r4, 0
mov r9, r4
2016-11-01 19:35:16 +01:00
ldr r1, =gTasks
2016-11-01 18:08:48 +01:00
lsls r0, 2
add r0, r8
lsls r0, 3
adds r0, r1
ldrb r6, [r0, 0x8]
ldrh r7, [r0, 0xA]
ldrh r1, [r0, 0xC]
mov r12, r1
movs r2, 0xC
ldrsh r0, [r0, r2]
cmp r0, 0
beq _080F7CF8
2016-11-01 19:35:16 +01:00
ldr r2, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r2]
ldr r0, [r0]
lsls r1, r6, 1
adds r0, 0xC
adds r0, r1
movs r3, 0
ldrsh r0, [r0, r3]
adds r5, r1, 0
cmp r0, 0
bgt _080F7D10
b _080F7D0E
.pool
_080F7CF8:
2016-11-01 19:35:16 +01:00
ldr r2, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r2]
ldr r0, [r0]
lsls r1, r6, 1
adds r0, 0xC
adds r0, r1
movs r3, 0
ldrsh r0, [r0, r3]
adds r5, r1, 0
cmp r0, 0x57
ble _080F7D10
_080F7D0E:
movs r4, 0x1
_080F7D10:
ldr r0, [r2]
ldr r0, [r0]
adds r0, 0xC
adds r2, r0, r5
ldrh r3, [r2]
movs r0, 0
ldrsh r1, [r2, r0]
lsls r0, r7, 16
asrs r0, 16
cmp r1, r0
bne _080F7D2A
movs r1, 0x1
mov r9, r1
_080F7D2A:
mov r0, r9
cmp r0, 0
bne _080F7D4A
cmp r4, 0
beq _080F7D3C
strh r7, [r2]
b _080F7D4A
.pool
_080F7D3C:
mov r1, r12
cmp r1, 0
beq _080F7D46
subs r0, r3, 0x1
b _080F7D48
_080F7D46:
adds r0, r3, 0x1
_080F7D48:
strh r0, [r2]
_080F7D4A:
cmp r4, 0
bne _080F7DC4
mov r2, r9
cmp r2, 0
bne _080F7DCA
movs r2, 0
_080F7D56:
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r0, [r0]
adds r0, 0xC
adds r0, r5
movs r1, 0
ldrsh r3, [r0, r1]
adds r0, r2, 0x1
lsls r1, r0, 3
adds r4, r0, 0
cmp r3, r1
blt _080F7D78
movs r0, 0x8
b _080F7D94
.pool
_080F7D78:
lsls r0, r2, 3
cmp r3, r0
blt _080F7D92
adds r0, r3, 0
cmp r3, 0
bge _080F7D86
adds r0, r3, 0x7
_080F7D86:
asrs r0, 3
lsls r0, 3
subs r0, r3, r0
lsls r0, 24
lsrs r0, 24
b _080F7D94
_080F7D92:
movs r0, 0
_080F7D94:
cmp r0, 0x3
bhi _080F7DA0
ldr r3, =0x0000504c
b _080F7DA2
.pool
_080F7DA0:
ldr r3, =0x00005057
_080F7DA2:
adds r1, r0, r3
adds r2, 0x7
lsls r2, 24
lsrs r2, 24
adds r3, r5, r6
adds r3, 0x6
lsls r3, 24
movs r0, 0x1
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0x2
lsrs r3, 24
bl FillBgTilemapBufferRect_Palette0
adds r2, r4, 0
cmp r2, 0xA
ble _080F7D56
_080F7DC4:
mov r0, r9
cmp r0, 0
beq _080F7DDC
_080F7DCA:
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
ldr r1, [r0]
ldrb r0, [r1, 0x14]
subs r0, 0x1
strb r0, [r1, 0x14]
mov r0, r8
bl DestroyTask
_080F7DDC:
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F7CA8
thumb_func_start sub_80F7DF4
sub_80F7DF4: @ 80F7DF4
push {r4,r5,lr}
2016-11-01 19:35:16 +01:00
ldr r4, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
movs r0, 0x20
bl AllocZeroed
str r0, [r4]
movs r0, 0x18
bl AllocZeroed
ldr r1, [r4]
str r0, [r1]
movs r0, 0x50
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, 0x4]
movs r5, 0x80
lsls r5, 4
adds r0, r5, 0
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, 0x8]
adds r0, r5, 0
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, 0xC]
adds r0, r5, 0
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, 0x10]
adds r0, r5, 0
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, 0x14]
adds r0, r5, 0
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, 0x18]
movs r0, 0x80
lsls r0, 5
bl AllocZeroed
ldr r1, [r4]
str r0, [r1, 0x1C]
2017-10-01 01:12:42 +02:00
bl AllocateMonSpritesGfx
2016-11-01 18:08:48 +01:00
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F7DF4
thumb_func_start sub_80F7E64
sub_80F7E64: @ 80F7E64
push {r4,r5,lr}
2016-11-01 19:35:16 +01:00
ldr r5, =gUnknown_0203A034
2016-11-01 18:08:48 +01:00
ldr r0, [r5]
ldr r0, [r0]
bl Free
ldr r0, [r5]
movs r4, 0
str r4, [r0]
ldr r0, [r0, 0x4]
bl Free
ldr r0, [r5]
str r4, [r0, 0x4]
ldr r0, [r0, 0x8]
bl Free
ldr r0, [r5]
str r4, [r0, 0x8]
ldr r0, [r0, 0xC]
bl Free
ldr r0, [r5]
str r4, [r0, 0xC]
ldr r0, [r0, 0x10]
bl Free
ldr r0, [r5]
str r4, [r0, 0x10]
ldr r0, [r0, 0x14]
bl Free
ldr r0, [r5]
str r4, [r0, 0x14]
ldr r0, [r0, 0x18]
bl Free
ldr r0, [r5]
str r4, [r0, 0x18]
ldr r0, [r0, 0x1C]
bl Free
ldr r0, [r5]
str r4, [r0, 0x1C]
bl Free
str r4, [r5]
2017-10-01 18:54:01 +02:00
bl FreeMonSpritesGfx
2016-11-01 18:08:48 +01:00
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F7E64
thumb_func_start sub_80F7ED0
sub_80F7ED0: @ 80F7ED0
push {r4,lr}
sub sp, 0x10
adds r4, r0, 0
str r1, [sp]
mov r0, sp
movs r3, 0
strb r4, [r0, 0x4]
mov r1, sp
movs r0, 0x7
strb r0, [r1, 0x5]
mov r0, sp
strb r2, [r0, 0x6]
movs r1, 0x2
strb r1, [r0, 0x7]
strb r2, [r0, 0x8]
strb r1, [r0, 0x9]
strb r3, [r0, 0xA]
strb r3, [r0, 0xB]
mov r3, sp
ldrb r2, [r3, 0xC]
subs r1, 0x12
adds r0, r1, 0
ands r0, r2
strb r0, [r3, 0xC]
mov r2, sp
movs r0, 0x10
strb r0, [r2, 0xC]
ldrb r0, [r2, 0xD]
ands r1, r0
strb r1, [r2, 0xD]
mov r1, sp
movs r0, 0x80
strb r0, [r1, 0xD]
mov r0, sp
movs r1, 0
movs r2, 0
bl AddTextPrinter
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
bl PutWindowTilemap
add sp, 0x10
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80F7ED0
thumb_func_start sub_80F7F30
sub_80F7F30: @ 80F7F30
push {r4,r5,lr}
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F24
2016-11-01 18:08:48 +01:00
ldrb r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
2016-11-01 18:08:48 +01:00
adds r0, r1
bl sub_80DAE0C
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
cmp r5, 0
beq _080F7F5E
2017-11-11 01:12:18 +01:00
ldr r4, =gSpecialVar_ContestCategory
2016-11-01 18:08:48 +01:00
ldrb r0, [r4]
2017-11-11 01:12:18 +01:00
ldr r1, =gSpecialVar_ContestRank
2016-11-01 18:08:48 +01:00
ldrb r1, [r1]
bl sub_80DAB8C
ldrb r0, [r4]
bl sub_80DB09C
_080F7F5E:
2017-11-11 01:12:18 +01:00
ldr r0, =gSpecialVar_Result
2016-11-01 18:08:48 +01:00
strh r5, [r0]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F7F30
thumb_func_start sub_80F7F7C
sub_80F7F7C: @ 80F7F7C
push {r4,lr}
movs r4, 0
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F24
2016-11-01 18:08:48 +01:00
ldrb r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, =gPlayerParty
2016-11-01 18:08:48 +01:00
adds r2, r1, r0
2017-11-11 01:12:18 +01:00
ldr r0, =gSpecialVar_ContestCategory
2016-11-01 18:08:48 +01:00
ldrh r0, [r0]
cmp r0, 0x4
bhi _080F7FEE
lsls r0, 2
ldr r1, =_080F7FB0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_080F7FB0:
.4byte _080F7FC4
.4byte _080F7FCA
.4byte _080F7FD0
.4byte _080F7FD6
.4byte _080F7FDC
_080F7FC4:
adds r0, r2, 0
movs r1, 0x32
b _080F7FE0
_080F7FCA:
adds r0, r2, 0
movs r1, 0x33
b _080F7FE0
_080F7FD0:
adds r0, r2, 0
movs r1, 0x34
b _080F7FE0
_080F7FD6:
adds r0, r2, 0
movs r1, 0x35
b _080F7FE0
_080F7FDC:
adds r0, r2, 0
movs r1, 0x36
_080F7FE0:
bl GetMonData
2017-11-11 01:12:18 +01:00
ldr r1, =gSpecialVar_ContestRank
2016-11-01 18:08:48 +01:00
ldrh r1, [r1]
cmp r0, r1
bls _080F7FEE
movs r4, 0x1
_080F7FEE:
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_80F7F7C
thumb_func_start sub_80F7FFC
sub_80F7FFC: @ 80F7FFC
push {r4-r7,lr}
sub sp, 0x4
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_02039F20
ldr r0, =gUnknown_02039F25
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _080F8010
b _080F8250
_080F8010:
2017-11-11 01:12:18 +01:00
ldr r0, =gSpecialVar_ContestCategory
2016-11-01 18:08:48 +01:00
ldrh r0, [r0]
cmp r0, 0x4
bls _080F801A
b _080F8250
_080F801A:
lsls r0, 2
ldr r1, =_080F8034
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_080F8034:
.4byte _080F8048
.4byte _080F80B8
.4byte _080F8124
.4byte _080F8190
.4byte _080F81F8
_080F8048:
2016-11-01 19:35:16 +01:00
ldr r6, =gUnknown_02039F24
2016-11-01 18:08:48 +01:00
ldrb r0, [r6]
movs r5, 0x64
muls r0, r5
ldr r4, =gPlayerParty
2016-11-01 18:08:48 +01:00
adds r0, r4
movs r1, 0x32
bl GetMonData
2016-11-01 18:08:48 +01:00
lsls r0, 24
lsrs r1, r0, 24
mov r0, sp
strb r1, [r0]
2017-11-11 01:12:18 +01:00
ldr r0, =gSpecialVar_ContestRank
2016-11-01 18:08:48 +01:00
ldrh r0, [r0]
cmp r1, r0
bls _080F806C
b _080F8250
_080F806C:
adds r0, r1, 0
cmp r0, 0x3
bls _080F8074
b _080F8250
_080F8074:
adds r1, r0, 0x1
mov r0, sp
strb r1, [r0]
ldrb r0, [r6]
muls r0, r5
adds r0, r4
movs r1, 0x32
mov r2, sp
2017-08-31 16:48:24 +02:00
bl SetMonData
2016-11-01 18:08:48 +01:00
ldrb r0, [r6]
muls r0, r5
adds r0, r4
Decompile TV (#80) * ClearTVShowData * special_0x44 * DoTVShow (nonmatching because align) * DoTVShowBravoTrainerPokemonProfile * Update field names * DoTVShowBravoTrainerBattleTower * Renaming of struct fields * sub_80EBFF4 and UpdateTVScreensOnMap * SetTVMetatilesOnMap * Power buttons for the TV screens on the map * special_0x45 * sub_80EC18C * special_0x4a * ResetGabbyAndTy * GabbyAndTyBeforeInterview * GabbyAndTyAfterInterview * Through IsTVShowInSearchOfTrainersAiring * GabbyAndTyGetLastQuote * GabbyAndTyGetLastBattleTrivia * GabbyAndTySetScriptVarsToFieldObjectLocalIds * InterviewAfter; use TVShow as a precursor for making the individual show structs anonymous * Make TV structs anonymous within the union * Move the TV union to its own subheader * Move TV show enums to the global.tv.h subheader * Funcion renaming * Apply static attributes where able * PutPokemonTodayCaughtOnAir * sub_80EC8A4 * PutPokemonTodayFailedOnTheAir * sub_80EC9E8, sub_80ECA10 * sub_80ECA38 * sub_80ECB00 * Put3CheersForPokeblocksOnTheAir * PutFanClubSpecialOnTheAir * ContestLiveUpdates_BeforeInterview * Other before-interview Contest Live Updates functions * ContestLiveUpdates_BeforeInterview_5 * InterviewAfter_BravoTrainerPokemonProfile * BravoTrainerPokemonProfile_BeforeInterview1 * BravoTrainerPokemonProfile_BeforeInterview2 * Disassemble TV data * Decompile TV data * InterviewAfter_BravoTrainerBattleTowerProfile * SaveRecordedItemPurchasesForTVShow * PutNameRaterShowOnTheAir * StartMassOutbreak * PutLilycoveContestLadyShowOnTheAir * InterviewAfter_FanClubLetter * Rip TV strings * InterviewAfter_RecentHappenings * InterviewAfter_PkmnFanClubOpinions * sub_80ED718 * EndMassOutbreak * sub_80ED888 * sub_80ED8B4 * UpdateMassOutbreakTimeLeft * sub_80ED950 * PutFishingAdviceShowOnTheAir * through sub_80EDA80 * ewram and common syms are now fetched from the object files * BSS symbols are taken from the tv.o file * through sub_80EDC60 * sub_80EDCE8 * sub_80EDD78 * through sub_80EDE84 * nomatching sub_80EDE98 * sub_80EDFB4 * sub_80EE104 * sub_80EE104 * sub_80EE184 * sub_80EE2CC * sub_80EE35C * sub_80EE44C * sub_80EE4DC * sub_80EE5A4 * sub_80EE69C * sub_80EE72C * sub_80EE7C0 * sub_80EE818 * sub_80EE8C8 * sub_80EEA70 * sub_80EEB98 * sub_80EEBF4 * through sub_80EED60 * Functions relating to Pokemon News * sub_80EEF6C * GetPriceReduction * IsPriceDiscounted * sub_80EF120 * through sub_80EF370 * sub_80EF40C * HasMixableShowAlreadyBeenSpawnedWithPlayerID * TV_SortPurchasesByQuantity * FindActiveBroadcastByShowType_SetScriptResult * InterviewBefore * through sub_80EF88C * through sub_80EF93C * through sub_80EFA24 * through TV_BernoulliTrial * sub_80EFB58 * sub_80EFBA4 * sub_80EFBDC * through sub_80EFD98 * ChangePokemonNickname * ChangeBoxPokemonNickname * sub_80EFF9C * through player_id_to_dword * CheckForBigMovieOrEmergencyNewsOnTV * GetMomOrDadStringForTVMessage * sub_80F01E8 * sub_80F0358 * sub_80F049C * TV record mixing functions * sub_80F06D0 * sub_80F0708 nonmatching * through sub_80F0B24 * sub_80F0B64 * through sub_80F0C04 * sub_80F0C7C * sub_80F0D60 * sub_80F0E58 * sub_80F0E84 * through sub_80F0F24 * sub_80F0F64 * sub_80F1208 * sub_80F1254 * sub_80F1290 * sub_80F12A4 * sub_80F14F8 * DoTVShowTodaysSmartShopper * DoTVShowTheNameRaterShow * DoTVShowPokemonTodaySuccessfulCapture * DoTVShowPokemonTodayFailedCapture * DoTVShowPokemonFanClubLetter * DoTVShowRecentHappenings * DoTVShowPokemonFanClubOpinions * DoTVShowPokemonNewsMassOutbreak * DoTVShowPokemonContestLiveUpdates * DoTVShowPokemonBattleUpdate * DoTVShow3CheersForPokeblocks * DoTVShowInSearchOfTrainers * Label GabbyAndTyData fields; remove ddump comments from data/text/tv.inc * DoTVShowPokemonAngler * DoTVShowTheWorldOfMasters; update RAM symbols and field names * Decorate static functions * DoTVShowTodaysRivalTrainer; region map enums * TVDewfordTrendWatcherNetworkTextGroup * DoTVShowHoennTreasureInvestigators * DoTVShowFindThatGamer * DoTVShowBreakingNewsTV * DoTVShowSecretBaseVisit * DoTVShowPokemonLotterWinnerFlashReport * DoTVShowThePokemonBattleSeminar * DoTVShowTrainerFanClubSpecial, DoTVShowTrainerFanClub * DoTVShowSpotTheCuties * DoTVShowPokemonNewsBattleFrontier * DoTVShowWhatsNo1InHoennToday * Helpers for DoTVShowSecretBaseSecrets * DoTVShowSecretBaseSecrets * DoTVShowSafariFanClub * Finish decompilation of tv.s * Some renaming * Rename text group pointers * revoke statis; pokenews enums * Labels are number one * Label all TV struct fields * Make data/text/tv.inc more readable * Split data/text/tv.inc * Rename pokenews text pointers * Frontier Symbol constants; indicate static rodata objects with 's' prefix * Fix leading spaces/tabs F*** CLion sometimes * Fix inconsequential warning
2017-10-13 17:09:36 +02:00
bl GetRibbonCount
2016-11-01 18:08:48 +01:00
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bhi _080F809C
b _080F8250
_080F809C:
ldrb r0, [r6]
muls r0, r5
adds r0, r4
movs r1, 0x32
bl sub_80EE4DC
b _080F8250
.pool
_080F80B8:
mov r4, sp
2016-11-01 19:35:16 +01:00
ldr r7, =gUnknown_02039F24
2016-11-01 18:08:48 +01:00
ldrb r0, [r7]
movs r6, 0x64
muls r0, r6
ldr r5, =gPlayerParty
2016-11-01 18:08:48 +01:00
adds r0, r5
movs r1, 0x33
bl GetMonData
2016-11-01 18:08:48 +01:00
strb r0, [r4]
mov r0, sp
ldrb r2, [r0]
2017-11-11 01:12:18 +01:00
ldr r0, =gSpecialVar_ContestRank
2016-11-01 18:08:48 +01:00
ldrh r0, [r0]
cmp r2, r0
bls _080F80DC
b _080F8250
_080F80DC:
cmp r2, 0x3
bls _080F80E2
b _080F8250
_080F80E2:
mov r1, sp
adds r0, r2, 0x1
strb r0, [r1]
ldrb r0, [r7]
muls r0, r6
adds r0, r5
movs r1, 0x33
mov r2, sp
2017-08-31 16:48:24 +02:00
bl SetMonData
2016-11-01 18:08:48 +01:00
ldrb r0, [r7]
muls r0, r6
adds r0, r5
Decompile TV (#80) * ClearTVShowData * special_0x44 * DoTVShow (nonmatching because align) * DoTVShowBravoTrainerPokemonProfile * Update field names * DoTVShowBravoTrainerBattleTower * Renaming of struct fields * sub_80EBFF4 and UpdateTVScreensOnMap * SetTVMetatilesOnMap * Power buttons for the TV screens on the map * special_0x45 * sub_80EC18C * special_0x4a * ResetGabbyAndTy * GabbyAndTyBeforeInterview * GabbyAndTyAfterInterview * Through IsTVShowInSearchOfTrainersAiring * GabbyAndTyGetLastQuote * GabbyAndTyGetLastBattleTrivia * GabbyAndTySetScriptVarsToFieldObjectLocalIds * InterviewAfter; use TVShow as a precursor for making the individual show structs anonymous * Make TV structs anonymous within the union * Move the TV union to its own subheader * Move TV show enums to the global.tv.h subheader * Funcion renaming * Apply static attributes where able * PutPokemonTodayCaughtOnAir * sub_80EC8A4 * PutPokemonTodayFailedOnTheAir * sub_80EC9E8, sub_80ECA10 * sub_80ECA38 * sub_80ECB00 * Put3CheersForPokeblocksOnTheAir * PutFanClubSpecialOnTheAir * ContestLiveUpdates_BeforeInterview * Other before-interview Contest Live Updates functions * ContestLiveUpdates_BeforeInterview_5 * InterviewAfter_BravoTrainerPokemonProfile * BravoTrainerPokemonProfile_BeforeInterview1 * BravoTrainerPokemonProfile_BeforeInterview2 * Disassemble TV data * Decompile TV data * InterviewAfter_BravoTrainerBattleTowerProfile * SaveRecordedItemPurchasesForTVShow * PutNameRaterShowOnTheAir * StartMassOutbreak * PutLilycoveContestLadyShowOnTheAir * InterviewAfter_FanClubLetter * Rip TV strings * InterviewAfter_RecentHappenings * InterviewAfter_PkmnFanClubOpinions * sub_80ED718 * EndMassOutbreak * sub_80ED888 * sub_80ED8B4 * UpdateMassOutbreakTimeLeft * sub_80ED950 * PutFishingAdviceShowOnTheAir * through sub_80EDA80 * ewram and common syms are now fetched from the object files * BSS symbols are taken from the tv.o file * through sub_80EDC60 * sub_80EDCE8 * sub_80EDD78 * through sub_80EDE84 * nomatching sub_80EDE98 * sub_80EDFB4 * sub_80EE104 * sub_80EE104 * sub_80EE184 * sub_80EE2CC * sub_80EE35C * sub_80EE44C * sub_80EE4DC * sub_80EE5A4 * sub_80EE69C * sub_80EE72C * sub_80EE7C0 * sub_80EE818 * sub_80EE8C8 * sub_80EEA70 * sub_80EEB98 * sub_80EEBF4 * through sub_80EED60 * Functions relating to Pokemon News * sub_80EEF6C * GetPriceReduction * IsPriceDiscounted * sub_80EF120 * through sub_80EF370 * sub_80EF40C * HasMixableShowAlreadyBeenSpawnedWithPlayerID * TV_SortPurchasesByQuantity * FindActiveBroadcastByShowType_SetScriptResult * InterviewBefore * through sub_80EF88C * through sub_80EF93C * through sub_80EFA24 * through TV_BernoulliTrial * sub_80EFB58 * sub_80EFBA4 * sub_80EFBDC * through sub_80EFD98 * ChangePokemonNickname * ChangeBoxPokemonNickname * sub_80EFF9C * through player_id_to_dword * CheckForBigMovieOrEmergencyNewsOnTV * GetMomOrDadStringForTVMessage * sub_80F01E8 * sub_80F0358 * sub_80F049C * TV record mixing functions * sub_80F06D0 * sub_80F0708 nonmatching * through sub_80F0B24 * sub_80F0B64 * through sub_80F0C04 * sub_80F0C7C * sub_80F0D60 * sub_80F0E58 * sub_80F0E84 * through sub_80F0F24 * sub_80F0F64 * sub_80F1208 * sub_80F1254 * sub_80F1290 * sub_80F12A4 * sub_80F14F8 * DoTVShowTodaysSmartShopper * DoTVShowTheNameRaterShow * DoTVShowPokemonTodaySuccessfulCapture * DoTVShowPokemonTodayFailedCapture * DoTVShowPokemonFanClubLetter * DoTVShowRecentHappenings * DoTVShowPokemonFanClubOpinions * DoTVShowPokemonNewsMassOutbreak * DoTVShowPokemonContestLiveUpdates * DoTVShowPokemonBattleUpdate * DoTVShow3CheersForPokeblocks * DoTVShowInSearchOfTrainers * Label GabbyAndTyData fields; remove ddump comments from data/text/tv.inc * DoTVShowPokemonAngler * DoTVShowTheWorldOfMasters; update RAM symbols and field names * Decorate static functions * DoTVShowTodaysRivalTrainer; region map enums * TVDewfordTrendWatcherNetworkTextGroup * DoTVShowHoennTreasureInvestigators * DoTVShowFindThatGamer * DoTVShowBreakingNewsTV * DoTVShowSecretBaseVisit * DoTVShowPokemonLotterWinnerFlashReport * DoTVShowThePokemonBattleSeminar * DoTVShowTrainerFanClubSpecial, DoTVShowTrainerFanClub * DoTVShowSpotTheCuties * DoTVShowPokemonNewsBattleFrontier * DoTVShowWhatsNo1InHoennToday * Helpers for DoTVShowSecretBaseSecrets * DoTVShowSecretBaseSecrets * DoTVShowSafariFanClub * Finish decompilation of tv.s * Some renaming * Rename text group pointers * revoke statis; pokenews enums * Labels are number one * Label all TV struct fields * Make data/text/tv.inc more readable * Split data/text/tv.inc * Rename pokenews text pointers * Frontier Symbol constants; indicate static rodata objects with 's' prefix * Fix leading spaces/tabs F*** CLion sometimes * Fix inconsequential warning
2017-10-13 17:09:36 +02:00
bl GetRibbonCount
2016-11-01 18:08:48 +01:00
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bhi _080F810A
b _080F8250
_080F810A:
ldrb r0, [r7]
muls r0, r6
adds r0, r5
movs r1, 0x33
bl sub_80EE4DC
b _080F8250
.pool
_080F8124:
mov r4, sp
2016-11-01 19:35:16 +01:00
ldr r7, =gUnknown_02039F24
2016-11-01 18:08:48 +01:00
ldrb r0, [r7]
movs r6, 0x64
muls r0, r6
ldr r5, =gPlayerParty
2016-11-01 18:08:48 +01:00
adds r0, r5
movs r1, 0x34
bl GetMonData
2016-11-01 18:08:48 +01:00
strb r0, [r4]
mov r0, sp
ldrb r2, [r0]
2017-11-11 01:12:18 +01:00
ldr r0, =gSpecialVar_ContestRank
2016-11-01 18:08:48 +01:00
ldrh r0, [r0]
cmp r2, r0
bls _080F8148
b _080F8250
_080F8148:
cmp r2, 0x3
bls _080F814E
b _080F8250
_080F814E:
mov r1, sp
adds r0, r2, 0x1
strb r0, [r1]
ldrb r0, [r7]
muls r0, r6
adds r0, r5
movs r1, 0x34
mov r2, sp
2017-08-31 16:48:24 +02:00
bl SetMonData
2016-11-01 18:08:48 +01:00
ldrb r0, [r7]
muls r0, r6
adds r0, r5
Decompile TV (#80) * ClearTVShowData * special_0x44 * DoTVShow (nonmatching because align) * DoTVShowBravoTrainerPokemonProfile * Update field names * DoTVShowBravoTrainerBattleTower * Renaming of struct fields * sub_80EBFF4 and UpdateTVScreensOnMap * SetTVMetatilesOnMap * Power buttons for the TV screens on the map * special_0x45 * sub_80EC18C * special_0x4a * ResetGabbyAndTy * GabbyAndTyBeforeInterview * GabbyAndTyAfterInterview * Through IsTVShowInSearchOfTrainersAiring * GabbyAndTyGetLastQuote * GabbyAndTyGetLastBattleTrivia * GabbyAndTySetScriptVarsToFieldObjectLocalIds * InterviewAfter; use TVShow as a precursor for making the individual show structs anonymous * Make TV structs anonymous within the union * Move the TV union to its own subheader * Move TV show enums to the global.tv.h subheader * Funcion renaming * Apply static attributes where able * PutPokemonTodayCaughtOnAir * sub_80EC8A4 * PutPokemonTodayFailedOnTheAir * sub_80EC9E8, sub_80ECA10 * sub_80ECA38 * sub_80ECB00 * Put3CheersForPokeblocksOnTheAir * PutFanClubSpecialOnTheAir * ContestLiveUpdates_BeforeInterview * Other before-interview Contest Live Updates functions * ContestLiveUpdates_BeforeInterview_5 * InterviewAfter_BravoTrainerPokemonProfile * BravoTrainerPokemonProfile_BeforeInterview1 * BravoTrainerPokemonProfile_BeforeInterview2 * Disassemble TV data * Decompile TV data * InterviewAfter_BravoTrainerBattleTowerProfile * SaveRecordedItemPurchasesForTVShow * PutNameRaterShowOnTheAir * StartMassOutbreak * PutLilycoveContestLadyShowOnTheAir * InterviewAfter_FanClubLetter * Rip TV strings * InterviewAfter_RecentHappenings * InterviewAfter_PkmnFanClubOpinions * sub_80ED718 * EndMassOutbreak * sub_80ED888 * sub_80ED8B4 * UpdateMassOutbreakTimeLeft * sub_80ED950 * PutFishingAdviceShowOnTheAir * through sub_80EDA80 * ewram and common syms are now fetched from the object files * BSS symbols are taken from the tv.o file * through sub_80EDC60 * sub_80EDCE8 * sub_80EDD78 * through sub_80EDE84 * nomatching sub_80EDE98 * sub_80EDFB4 * sub_80EE104 * sub_80EE104 * sub_80EE184 * sub_80EE2CC * sub_80EE35C * sub_80EE44C * sub_80EE4DC * sub_80EE5A4 * sub_80EE69C * sub_80EE72C * sub_80EE7C0 * sub_80EE818 * sub_80EE8C8 * sub_80EEA70 * sub_80EEB98 * sub_80EEBF4 * through sub_80EED60 * Functions relating to Pokemon News * sub_80EEF6C * GetPriceReduction * IsPriceDiscounted * sub_80EF120 * through sub_80EF370 * sub_80EF40C * HasMixableShowAlreadyBeenSpawnedWithPlayerID * TV_SortPurchasesByQuantity * FindActiveBroadcastByShowType_SetScriptResult * InterviewBefore * through sub_80EF88C * through sub_80EF93C * through sub_80EFA24 * through TV_BernoulliTrial * sub_80EFB58 * sub_80EFBA4 * sub_80EFBDC * through sub_80EFD98 * ChangePokemonNickname * ChangeBoxPokemonNickname * sub_80EFF9C * through player_id_to_dword * CheckForBigMovieOrEmergencyNewsOnTV * GetMomOrDadStringForTVMessage * sub_80F01E8 * sub_80F0358 * sub_80F049C * TV record mixing functions * sub_80F06D0 * sub_80F0708 nonmatching * through sub_80F0B24 * sub_80F0B64 * through sub_80F0C04 * sub_80F0C7C * sub_80F0D60 * sub_80F0E58 * sub_80F0E84 * through sub_80F0F24 * sub_80F0F64 * sub_80F1208 * sub_80F1254 * sub_80F1290 * sub_80F12A4 * sub_80F14F8 * DoTVShowTodaysSmartShopper * DoTVShowTheNameRaterShow * DoTVShowPokemonTodaySuccessfulCapture * DoTVShowPokemonTodayFailedCapture * DoTVShowPokemonFanClubLetter * DoTVShowRecentHappenings * DoTVShowPokemonFanClubOpinions * DoTVShowPokemonNewsMassOutbreak * DoTVShowPokemonContestLiveUpdates * DoTVShowPokemonBattleUpdate * DoTVShow3CheersForPokeblocks * DoTVShowInSearchOfTrainers * Label GabbyAndTyData fields; remove ddump comments from data/text/tv.inc * DoTVShowPokemonAngler * DoTVShowTheWorldOfMasters; update RAM symbols and field names * Decorate static functions * DoTVShowTodaysRivalTrainer; region map enums * TVDewfordTrendWatcherNetworkTextGroup * DoTVShowHoennTreasureInvestigators * DoTVShowFindThatGamer * DoTVShowBreakingNewsTV * DoTVShowSecretBaseVisit * DoTVShowPokemonLotterWinnerFlashReport * DoTVShowThePokemonBattleSeminar * DoTVShowTrainerFanClubSpecial, DoTVShowTrainerFanClub * DoTVShowSpotTheCuties * DoTVShowPokemonNewsBattleFrontier * DoTVShowWhatsNo1InHoennToday * Helpers for DoTVShowSecretBaseSecrets * DoTVShowSecretBaseSecrets * DoTVShowSafariFanClub * Finish decompilation of tv.s * Some renaming * Rename text group pointers * revoke statis; pokenews enums * Labels are number one * Label all TV struct fields * Make data/text/tv.inc more readable * Split data/text/tv.inc * Rename pokenews text pointers * Frontier Symbol constants; indicate static rodata objects with 's' prefix * Fix leading spaces/tabs F*** CLion sometimes * Fix inconsequential warning
2017-10-13 17:09:36 +02:00
bl GetRibbonCount
2016-11-01 18:08:48 +01:00
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bls _080F8250
ldrb r0, [r7]
muls r0, r6
adds r0, r5
movs r1, 0x34
bl sub_80EE4DC
b _080F8250
.pool
_080F8190:
mov r4, sp
2016-11-01 19:35:16 +01:00
ldr r7, =gUnknown_02039F24
2016-11-01 18:08:48 +01:00
ldrb r0, [r7]
movs r6, 0x64
muls r0, r6
ldr r5, =gPlayerParty
2016-11-01 18:08:48 +01:00
adds r0, r5
movs r1, 0x35
bl GetMonData
2016-11-01 18:08:48 +01:00
strb r0, [r4]
mov r0, sp
ldrb r2, [r0]
2017-11-11 01:12:18 +01:00
ldr r0, =gSpecialVar_ContestRank
2016-11-01 18:08:48 +01:00
ldrh r0, [r0]
cmp r2, r0
bhi _080F8250
cmp r2, 0x3
bhi _080F8250
mov r1, sp
adds r0, r2, 0x1
strb r0, [r1]
ldrb r0, [r7]
muls r0, r6
adds r0, r5
movs r1, 0x35
mov r2, sp
2017-08-31 16:48:24 +02:00
bl SetMonData
2016-11-01 18:08:48 +01:00
ldrb r0, [r7]
muls r0, r6
adds r0, r5
Decompile TV (#80) * ClearTVShowData * special_0x44 * DoTVShow (nonmatching because align) * DoTVShowBravoTrainerPokemonProfile * Update field names * DoTVShowBravoTrainerBattleTower * Renaming of struct fields * sub_80EBFF4 and UpdateTVScreensOnMap * SetTVMetatilesOnMap * Power buttons for the TV screens on the map * special_0x45 * sub_80EC18C * special_0x4a * ResetGabbyAndTy * GabbyAndTyBeforeInterview * GabbyAndTyAfterInterview * Through IsTVShowInSearchOfTrainersAiring * GabbyAndTyGetLastQuote * GabbyAndTyGetLastBattleTrivia * GabbyAndTySetScriptVarsToFieldObjectLocalIds * InterviewAfter; use TVShow as a precursor for making the individual show structs anonymous * Make TV structs anonymous within the union * Move the TV union to its own subheader * Move TV show enums to the global.tv.h subheader * Funcion renaming * Apply static attributes where able * PutPokemonTodayCaughtOnAir * sub_80EC8A4 * PutPokemonTodayFailedOnTheAir * sub_80EC9E8, sub_80ECA10 * sub_80ECA38 * sub_80ECB00 * Put3CheersForPokeblocksOnTheAir * PutFanClubSpecialOnTheAir * ContestLiveUpdates_BeforeInterview * Other before-interview Contest Live Updates functions * ContestLiveUpdates_BeforeInterview_5 * InterviewAfter_BravoTrainerPokemonProfile * BravoTrainerPokemonProfile_BeforeInterview1 * BravoTrainerPokemonProfile_BeforeInterview2 * Disassemble TV data * Decompile TV data * InterviewAfter_BravoTrainerBattleTowerProfile * SaveRecordedItemPurchasesForTVShow * PutNameRaterShowOnTheAir * StartMassOutbreak * PutLilycoveContestLadyShowOnTheAir * InterviewAfter_FanClubLetter * Rip TV strings * InterviewAfter_RecentHappenings * InterviewAfter_PkmnFanClubOpinions * sub_80ED718 * EndMassOutbreak * sub_80ED888 * sub_80ED8B4 * UpdateMassOutbreakTimeLeft * sub_80ED950 * PutFishingAdviceShowOnTheAir * through sub_80EDA80 * ewram and common syms are now fetched from the object files * BSS symbols are taken from the tv.o file * through sub_80EDC60 * sub_80EDCE8 * sub_80EDD78 * through sub_80EDE84 * nomatching sub_80EDE98 * sub_80EDFB4 * sub_80EE104 * sub_80EE104 * sub_80EE184 * sub_80EE2CC * sub_80EE35C * sub_80EE44C * sub_80EE4DC * sub_80EE5A4 * sub_80EE69C * sub_80EE72C * sub_80EE7C0 * sub_80EE818 * sub_80EE8C8 * sub_80EEA70 * sub_80EEB98 * sub_80EEBF4 * through sub_80EED60 * Functions relating to Pokemon News * sub_80EEF6C * GetPriceReduction * IsPriceDiscounted * sub_80EF120 * through sub_80EF370 * sub_80EF40C * HasMixableShowAlreadyBeenSpawnedWithPlayerID * TV_SortPurchasesByQuantity * FindActiveBroadcastByShowType_SetScriptResult * InterviewBefore * through sub_80EF88C * through sub_80EF93C * through sub_80EFA24 * through TV_BernoulliTrial * sub_80EFB58 * sub_80EFBA4 * sub_80EFBDC * through sub_80EFD98 * ChangePokemonNickname * ChangeBoxPokemonNickname * sub_80EFF9C * through player_id_to_dword * CheckForBigMovieOrEmergencyNewsOnTV * GetMomOrDadStringForTVMessage * sub_80F01E8 * sub_80F0358 * sub_80F049C * TV record mixing functions * sub_80F06D0 * sub_80F0708 nonmatching * through sub_80F0B24 * sub_80F0B64 * through sub_80F0C04 * sub_80F0C7C * sub_80F0D60 * sub_80F0E58 * sub_80F0E84 * through sub_80F0F24 * sub_80F0F64 * sub_80F1208 * sub_80F1254 * sub_80F1290 * sub_80F12A4 * sub_80F14F8 * DoTVShowTodaysSmartShopper * DoTVShowTheNameRaterShow * DoTVShowPokemonTodaySuccessfulCapture * DoTVShowPokemonTodayFailedCapture * DoTVShowPokemonFanClubLetter * DoTVShowRecentHappenings * DoTVShowPokemonFanClubOpinions * DoTVShowPokemonNewsMassOutbreak * DoTVShowPokemonContestLiveUpdates * DoTVShowPokemonBattleUpdate * DoTVShow3CheersForPokeblocks * DoTVShowInSearchOfTrainers * Label GabbyAndTyData fields; remove ddump comments from data/text/tv.inc * DoTVShowPokemonAngler * DoTVShowTheWorldOfMasters; update RAM symbols and field names * Decorate static functions * DoTVShowTodaysRivalTrainer; region map enums * TVDewfordTrendWatcherNetworkTextGroup * DoTVShowHoennTreasureInvestigators * DoTVShowFindThatGamer * DoTVShowBreakingNewsTV * DoTVShowSecretBaseVisit * DoTVShowPokemonLotterWinnerFlashReport * DoTVShowThePokemonBattleSeminar * DoTVShowTrainerFanClubSpecial, DoTVShowTrainerFanClub * DoTVShowSpotTheCuties * DoTVShowPokemonNewsBattleFrontier * DoTVShowWhatsNo1InHoennToday * Helpers for DoTVShowSecretBaseSecrets * DoTVShowSecretBaseSecrets * DoTVShowSafariFanClub * Finish decompilation of tv.s * Some renaming * Rename text group pointers * revoke statis; pokenews enums * Labels are number one * Label all TV struct fields * Make data/text/tv.inc more readable * Split data/text/tv.inc * Rename pokenews text pointers * Frontier Symbol constants; indicate static rodata objects with 's' prefix * Fix leading spaces/tabs F*** CLion sometimes * Fix inconsequential warning
2017-10-13 17:09:36 +02:00
bl GetRibbonCount
2016-11-01 18:08:48 +01:00
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bls _080F8250
ldrb r0, [r7]
muls r0, r6
adds r0, r5
movs r1, 0x35
bl sub_80EE4DC
b _080F8250
.pool
_080F81F8:
mov r4, sp
2016-11-01 19:35:16 +01:00
ldr r7, =gUnknown_02039F24
2016-11-01 18:08:48 +01:00
ldrb r0, [r7]
movs r6, 0x64
muls r0, r6
ldr r5, =gPlayerParty
2016-11-01 18:08:48 +01:00
adds r0, r5
movs r1, 0x36
bl GetMonData
2016-11-01 18:08:48 +01:00
strb r0, [r4]
mov r0, sp
ldrb r2, [r0]
2017-11-11 01:12:18 +01:00
ldr r0, =gSpecialVar_ContestRank
2016-11-01 18:08:48 +01:00
ldrh r0, [r0]
cmp r2, r0
bhi _080F8250
cmp r2, 0x3
bhi _080F8250
mov r1, sp
adds r0, r2, 0x1
strb r0, [r1]
ldrb r0, [r7]
muls r0, r6
adds r0, r5
movs r1, 0x36
mov r2, sp
2017-08-31 16:48:24 +02:00
bl SetMonData
2016-11-01 18:08:48 +01:00
ldrb r0, [r7]
muls r0, r6
adds r0, r5
Decompile TV (#80) * ClearTVShowData * special_0x44 * DoTVShow (nonmatching because align) * DoTVShowBravoTrainerPokemonProfile * Update field names * DoTVShowBravoTrainerBattleTower * Renaming of struct fields * sub_80EBFF4 and UpdateTVScreensOnMap * SetTVMetatilesOnMap * Power buttons for the TV screens on the map * special_0x45 * sub_80EC18C * special_0x4a * ResetGabbyAndTy * GabbyAndTyBeforeInterview * GabbyAndTyAfterInterview * Through IsTVShowInSearchOfTrainersAiring * GabbyAndTyGetLastQuote * GabbyAndTyGetLastBattleTrivia * GabbyAndTySetScriptVarsToFieldObjectLocalIds * InterviewAfter; use TVShow as a precursor for making the individual show structs anonymous * Make TV structs anonymous within the union * Move the TV union to its own subheader * Move TV show enums to the global.tv.h subheader * Funcion renaming * Apply static attributes where able * PutPokemonTodayCaughtOnAir * sub_80EC8A4 * PutPokemonTodayFailedOnTheAir * sub_80EC9E8, sub_80ECA10 * sub_80ECA38 * sub_80ECB00 * Put3CheersForPokeblocksOnTheAir * PutFanClubSpecialOnTheAir * ContestLiveUpdates_BeforeInterview * Other before-interview Contest Live Updates functions * ContestLiveUpdates_BeforeInterview_5 * InterviewAfter_BravoTrainerPokemonProfile * BravoTrainerPokemonProfile_BeforeInterview1 * BravoTrainerPokemonProfile_BeforeInterview2 * Disassemble TV data * Decompile TV data * InterviewAfter_BravoTrainerBattleTowerProfile * SaveRecordedItemPurchasesForTVShow * PutNameRaterShowOnTheAir * StartMassOutbreak * PutLilycoveContestLadyShowOnTheAir * InterviewAfter_FanClubLetter * Rip TV strings * InterviewAfter_RecentHappenings * InterviewAfter_PkmnFanClubOpinions * sub_80ED718 * EndMassOutbreak * sub_80ED888 * sub_80ED8B4 * UpdateMassOutbreakTimeLeft * sub_80ED950 * PutFishingAdviceShowOnTheAir * through sub_80EDA80 * ewram and common syms are now fetched from the object files * BSS symbols are taken from the tv.o file * through sub_80EDC60 * sub_80EDCE8 * sub_80EDD78 * through sub_80EDE84 * nomatching sub_80EDE98 * sub_80EDFB4 * sub_80EE104 * sub_80EE104 * sub_80EE184 * sub_80EE2CC * sub_80EE35C * sub_80EE44C * sub_80EE4DC * sub_80EE5A4 * sub_80EE69C * sub_80EE72C * sub_80EE7C0 * sub_80EE818 * sub_80EE8C8 * sub_80EEA70 * sub_80EEB98 * sub_80EEBF4 * through sub_80EED60 * Functions relating to Pokemon News * sub_80EEF6C * GetPriceReduction * IsPriceDiscounted * sub_80EF120 * through sub_80EF370 * sub_80EF40C * HasMixableShowAlreadyBeenSpawnedWithPlayerID * TV_SortPurchasesByQuantity * FindActiveBroadcastByShowType_SetScriptResult * InterviewBefore * through sub_80EF88C * through sub_80EF93C * through sub_80EFA24 * through TV_BernoulliTrial * sub_80EFB58 * sub_80EFBA4 * sub_80EFBDC * through sub_80EFD98 * ChangePokemonNickname * ChangeBoxPokemonNickname * sub_80EFF9C * through player_id_to_dword * CheckForBigMovieOrEmergencyNewsOnTV * GetMomOrDadStringForTVMessage * sub_80F01E8 * sub_80F0358 * sub_80F049C * TV record mixing functions * sub_80F06D0 * sub_80F0708 nonmatching * through sub_80F0B24 * sub_80F0B64 * through sub_80F0C04 * sub_80F0C7C * sub_80F0D60 * sub_80F0E58 * sub_80F0E84 * through sub_80F0F24 * sub_80F0F64 * sub_80F1208 * sub_80F1254 * sub_80F1290 * sub_80F12A4 * sub_80F14F8 * DoTVShowTodaysSmartShopper * DoTVShowTheNameRaterShow * DoTVShowPokemonTodaySuccessfulCapture * DoTVShowPokemonTodayFailedCapture * DoTVShowPokemonFanClubLetter * DoTVShowRecentHappenings * DoTVShowPokemonFanClubOpinions * DoTVShowPokemonNewsMassOutbreak * DoTVShowPokemonContestLiveUpdates * DoTVShowPokemonBattleUpdate * DoTVShow3CheersForPokeblocks * DoTVShowInSearchOfTrainers * Label GabbyAndTyData fields; remove ddump comments from data/text/tv.inc * DoTVShowPokemonAngler * DoTVShowTheWorldOfMasters; update RAM symbols and field names * Decorate static functions * DoTVShowTodaysRivalTrainer; region map enums * TVDewfordTrendWatcherNetworkTextGroup * DoTVShowHoennTreasureInvestigators * DoTVShowFindThatGamer * DoTVShowBreakingNewsTV * DoTVShowSecretBaseVisit * DoTVShowPokemonLotterWinnerFlashReport * DoTVShowThePokemonBattleSeminar * DoTVShowTrainerFanClubSpecial, DoTVShowTrainerFanClub * DoTVShowSpotTheCuties * DoTVShowPokemonNewsBattleFrontier * DoTVShowWhatsNo1InHoennToday * Helpers for DoTVShowSecretBaseSecrets * DoTVShowSecretBaseSecrets * DoTVShowSafariFanClub * Finish decompilation of tv.s * Some renaming * Rename text group pointers * revoke statis; pokenews enums * Labels are number one * Label all TV struct fields * Make data/text/tv.inc more readable * Split data/text/tv.inc * Rename pokenews text pointers * Frontier Symbol constants; indicate static rodata objects with 's' prefix * Fix leading spaces/tabs F*** CLion sometimes * Fix inconsequential warning
2017-10-13 17:09:36 +02:00
bl GetRibbonCount
2016-11-01 18:08:48 +01:00
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bls _080F8250
ldrb r0, [r7]
muls r0, r6
adds r0, r5
movs r1, 0x36
bl sub_80EE4DC
_080F8250:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F7FFC
thumb_func_start sub_80F8264
sub_80F8264: @ 80F8264
push {r4,lr}
2017-01-14 20:53:20 +01:00
ldr r4, =gStringVar1
2017-09-02 22:31:37 +02:00
ldr r0, =gSpecialVar_0x8006
2016-11-01 18:08:48 +01:00
ldrh r1, [r0]
lsls r1, 6
Decompile TV (#80) * ClearTVShowData * special_0x44 * DoTVShow (nonmatching because align) * DoTVShowBravoTrainerPokemonProfile * Update field names * DoTVShowBravoTrainerBattleTower * Renaming of struct fields * sub_80EBFF4 and UpdateTVScreensOnMap * SetTVMetatilesOnMap * Power buttons for the TV screens on the map * special_0x45 * sub_80EC18C * special_0x4a * ResetGabbyAndTy * GabbyAndTyBeforeInterview * GabbyAndTyAfterInterview * Through IsTVShowInSearchOfTrainersAiring * GabbyAndTyGetLastQuote * GabbyAndTyGetLastBattleTrivia * GabbyAndTySetScriptVarsToFieldObjectLocalIds * InterviewAfter; use TVShow as a precursor for making the individual show structs anonymous * Make TV structs anonymous within the union * Move the TV union to its own subheader * Move TV show enums to the global.tv.h subheader * Funcion renaming * Apply static attributes where able * PutPokemonTodayCaughtOnAir * sub_80EC8A4 * PutPokemonTodayFailedOnTheAir * sub_80EC9E8, sub_80ECA10 * sub_80ECA38 * sub_80ECB00 * Put3CheersForPokeblocksOnTheAir * PutFanClubSpecialOnTheAir * ContestLiveUpdates_BeforeInterview * Other before-interview Contest Live Updates functions * ContestLiveUpdates_BeforeInterview_5 * InterviewAfter_BravoTrainerPokemonProfile * BravoTrainerPokemonProfile_BeforeInterview1 * BravoTrainerPokemonProfile_BeforeInterview2 * Disassemble TV data * Decompile TV data * InterviewAfter_BravoTrainerBattleTowerProfile * SaveRecordedItemPurchasesForTVShow * PutNameRaterShowOnTheAir * StartMassOutbreak * PutLilycoveContestLadyShowOnTheAir * InterviewAfter_FanClubLetter * Rip TV strings * InterviewAfter_RecentHappenings * InterviewAfter_PkmnFanClubOpinions * sub_80ED718 * EndMassOutbreak * sub_80ED888 * sub_80ED8B4 * UpdateMassOutbreakTimeLeft * sub_80ED950 * PutFishingAdviceShowOnTheAir * through sub_80EDA80 * ewram and common syms are now fetched from the object files * BSS symbols are taken from the tv.o file * through sub_80EDC60 * sub_80EDCE8 * sub_80EDD78 * through sub_80EDE84 * nomatching sub_80EDE98 * sub_80EDFB4 * sub_80EE104 * sub_80EE104 * sub_80EE184 * sub_80EE2CC * sub_80EE35C * sub_80EE44C * sub_80EE4DC * sub_80EE5A4 * sub_80EE69C * sub_80EE72C * sub_80EE7C0 * sub_80EE818 * sub_80EE8C8 * sub_80EEA70 * sub_80EEB98 * sub_80EEBF4 * through sub_80EED60 * Functions relating to Pokemon News * sub_80EEF6C * GetPriceReduction * IsPriceDiscounted * sub_80EF120 * through sub_80EF370 * sub_80EF40C * HasMixableShowAlreadyBeenSpawnedWithPlayerID * TV_SortPurchasesByQuantity * FindActiveBroadcastByShowType_SetScriptResult * InterviewBefore * through sub_80EF88C * through sub_80EF93C * through sub_80EFA24 * through TV_BernoulliTrial * sub_80EFB58 * sub_80EFBA4 * sub_80EFBDC * through sub_80EFD98 * ChangePokemonNickname * ChangeBoxPokemonNickname * sub_80EFF9C * through player_id_to_dword * CheckForBigMovieOrEmergencyNewsOnTV * GetMomOrDadStringForTVMessage * sub_80F01E8 * sub_80F0358 * sub_80F049C * TV record mixing functions * sub_80F06D0 * sub_80F0708 nonmatching * through sub_80F0B24 * sub_80F0B64 * through sub_80F0C04 * sub_80F0C7C * sub_80F0D60 * sub_80F0E58 * sub_80F0E84 * through sub_80F0F24 * sub_80F0F64 * sub_80F1208 * sub_80F1254 * sub_80F1290 * sub_80F12A4 * sub_80F14F8 * DoTVShowTodaysSmartShopper * DoTVShowTheNameRaterShow * DoTVShowPokemonTodaySuccessfulCapture * DoTVShowPokemonTodayFailedCapture * DoTVShowPokemonFanClubLetter * DoTVShowRecentHappenings * DoTVShowPokemonFanClubOpinions * DoTVShowPokemonNewsMassOutbreak * DoTVShowPokemonContestLiveUpdates * DoTVShowPokemonBattleUpdate * DoTVShow3CheersForPokeblocks * DoTVShowInSearchOfTrainers * Label GabbyAndTyData fields; remove ddump comments from data/text/tv.inc * DoTVShowPokemonAngler * DoTVShowTheWorldOfMasters; update RAM symbols and field names * Decorate static functions * DoTVShowTodaysRivalTrainer; region map enums * TVDewfordTrendWatcherNetworkTextGroup * DoTVShowHoennTreasureInvestigators * DoTVShowFindThatGamer * DoTVShowBreakingNewsTV * DoTVShowSecretBaseVisit * DoTVShowPokemonLotterWinnerFlashReport * DoTVShowThePokemonBattleSeminar * DoTVShowTrainerFanClubSpecial, DoTVShowTrainerFanClub * DoTVShowSpotTheCuties * DoTVShowPokemonNewsBattleFrontier * DoTVShowWhatsNo1InHoennToday * Helpers for DoTVShowSecretBaseSecrets * DoTVShowSecretBaseSecrets * DoTVShowSafariFanClub * Finish decompilation of tv.s * Some renaming * Rename text group pointers * revoke statis; pokenews enums * Labels are number one * Label all TV struct fields * Make data/text/tv.inc more readable * Split data/text/tv.inc * Rename pokenews text pointers * Frontier Symbol constants; indicate static rodata objects with 's' prefix * Fix leading spaces/tabs F*** CLion sometimes * Fix inconsequential warning
2017-10-13 17:09:36 +02:00
ldr r0, =gUnknown_02039E00 + 13
2016-11-01 18:08:48 +01:00
adds r1, r0
adds r0, r4, 0
2017-01-14 20:53:20 +01:00
bl StringCopy
2016-11-01 18:08:48 +01:00
adds r0, r4, 0
bl sub_81DB5AC
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F8264
thumb_func_start sub_80F8290
sub_80F8290: @ 80F8290
push {lr}
2017-01-14 20:53:20 +01:00
ldr r0, =gStringVar3
2017-09-02 22:31:37 +02:00
ldr r1, =gSpecialVar_0x8006
2016-11-01 18:08:48 +01:00
ldrh r1, [r1]
lsls r1, 6
Decompile TV (#80) * ClearTVShowData * special_0x44 * DoTVShow (nonmatching because align) * DoTVShowBravoTrainerPokemonProfile * Update field names * DoTVShowBravoTrainerBattleTower * Renaming of struct fields * sub_80EBFF4 and UpdateTVScreensOnMap * SetTVMetatilesOnMap * Power buttons for the TV screens on the map * special_0x45 * sub_80EC18C * special_0x4a * ResetGabbyAndTy * GabbyAndTyBeforeInterview * GabbyAndTyAfterInterview * Through IsTVShowInSearchOfTrainersAiring * GabbyAndTyGetLastQuote * GabbyAndTyGetLastBattleTrivia * GabbyAndTySetScriptVarsToFieldObjectLocalIds * InterviewAfter; use TVShow as a precursor for making the individual show structs anonymous * Make TV structs anonymous within the union * Move the TV union to its own subheader * Move TV show enums to the global.tv.h subheader * Funcion renaming * Apply static attributes where able * PutPokemonTodayCaughtOnAir * sub_80EC8A4 * PutPokemonTodayFailedOnTheAir * sub_80EC9E8, sub_80ECA10 * sub_80ECA38 * sub_80ECB00 * Put3CheersForPokeblocksOnTheAir * PutFanClubSpecialOnTheAir * ContestLiveUpdates_BeforeInterview * Other before-interview Contest Live Updates functions * ContestLiveUpdates_BeforeInterview_5 * InterviewAfter_BravoTrainerPokemonProfile * BravoTrainerPokemonProfile_BeforeInterview1 * BravoTrainerPokemonProfile_BeforeInterview2 * Disassemble TV data * Decompile TV data * InterviewAfter_BravoTrainerBattleTowerProfile * SaveRecordedItemPurchasesForTVShow * PutNameRaterShowOnTheAir * StartMassOutbreak * PutLilycoveContestLadyShowOnTheAir * InterviewAfter_FanClubLetter * Rip TV strings * InterviewAfter_RecentHappenings * InterviewAfter_PkmnFanClubOpinions * sub_80ED718 * EndMassOutbreak * sub_80ED888 * sub_80ED8B4 * UpdateMassOutbreakTimeLeft * sub_80ED950 * PutFishingAdviceShowOnTheAir * through sub_80EDA80 * ewram and common syms are now fetched from the object files * BSS symbols are taken from the tv.o file * through sub_80EDC60 * sub_80EDCE8 * sub_80EDD78 * through sub_80EDE84 * nomatching sub_80EDE98 * sub_80EDFB4 * sub_80EE104 * sub_80EE104 * sub_80EE184 * sub_80EE2CC * sub_80EE35C * sub_80EE44C * sub_80EE4DC * sub_80EE5A4 * sub_80EE69C * sub_80EE72C * sub_80EE7C0 * sub_80EE818 * sub_80EE8C8 * sub_80EEA70 * sub_80EEB98 * sub_80EEBF4 * through sub_80EED60 * Functions relating to Pokemon News * sub_80EEF6C * GetPriceReduction * IsPriceDiscounted * sub_80EF120 * through sub_80EF370 * sub_80EF40C * HasMixableShowAlreadyBeenSpawnedWithPlayerID * TV_SortPurchasesByQuantity * FindActiveBroadcastByShowType_SetScriptResult * InterviewBefore * through sub_80EF88C * through sub_80EF93C * through sub_80EFA24 * through TV_BernoulliTrial * sub_80EFB58 * sub_80EFBA4 * sub_80EFBDC * through sub_80EFD98 * ChangePokemonNickname * ChangeBoxPokemonNickname * sub_80EFF9C * through player_id_to_dword * CheckForBigMovieOrEmergencyNewsOnTV * GetMomOrDadStringForTVMessage * sub_80F01E8 * sub_80F0358 * sub_80F049C * TV record mixing functions * sub_80F06D0 * sub_80F0708 nonmatching * through sub_80F0B24 * sub_80F0B64 * through sub_80F0C04 * sub_80F0C7C * sub_80F0D60 * sub_80F0E58 * sub_80F0E84 * through sub_80F0F24 * sub_80F0F64 * sub_80F1208 * sub_80F1254 * sub_80F1290 * sub_80F12A4 * sub_80F14F8 * DoTVShowTodaysSmartShopper * DoTVShowTheNameRaterShow * DoTVShowPokemonTodaySuccessfulCapture * DoTVShowPokemonTodayFailedCapture * DoTVShowPokemonFanClubLetter * DoTVShowRecentHappenings * DoTVShowPokemonFanClubOpinions * DoTVShowPokemonNewsMassOutbreak * DoTVShowPokemonContestLiveUpdates * DoTVShowPokemonBattleUpdate * DoTVShow3CheersForPokeblocks * DoTVShowInSearchOfTrainers * Label GabbyAndTyData fields; remove ddump comments from data/text/tv.inc * DoTVShowPokemonAngler * DoTVShowTheWorldOfMasters; update RAM symbols and field names * Decorate static functions * DoTVShowTodaysRivalTrainer; region map enums * TVDewfordTrendWatcherNetworkTextGroup * DoTVShowHoennTreasureInvestigators * DoTVShowFindThatGamer * DoTVShowBreakingNewsTV * DoTVShowSecretBaseVisit * DoTVShowPokemonLotterWinnerFlashReport * DoTVShowThePokemonBattleSeminar * DoTVShowTrainerFanClubSpecial, DoTVShowTrainerFanClub * DoTVShowSpotTheCuties * DoTVShowPokemonNewsBattleFrontier * DoTVShowWhatsNo1InHoennToday * Helpers for DoTVShowSecretBaseSecrets * DoTVShowSecretBaseSecrets * DoTVShowSafariFanClub * Finish decompilation of tv.s * Some renaming * Rename text group pointers * revoke statis; pokenews enums * Labels are number one * Label all TV struct fields * Make data/text/tv.inc more readable * Split data/text/tv.inc * Rename pokenews text pointers * Frontier Symbol constants; indicate static rodata objects with 's' prefix * Fix leading spaces/tabs F*** CLion sometimes * Fix inconsequential warning
2017-10-13 17:09:36 +02:00
ldr r2, =gUnknown_02039E00 + 2
2016-11-01 18:08:48 +01:00
adds r1, r2
2017-01-14 20:53:20 +01:00
bl StringCopy
2016-11-01 18:08:48 +01:00
pop {r0}
bx r0
.pool
thumb_func_end sub_80F8290
thumb_func_start sub_80F82B4
sub_80F82B4: @ 80F82B4
push {r4-r6,lr}
movs r1, 0
movs r2, 0
2017-09-02 22:31:37 +02:00
ldr r5, =gSpecialVar_0x8004
2016-11-01 19:35:16 +01:00
ldr r4, =gUnknown_02039F00
2017-09-02 22:31:37 +02:00
ldr r0, =gSpecialVar_0x8006
2016-11-01 18:08:48 +01:00
ldrh r0, [r0]
lsls r0, 1
adds r0, r4
movs r6, 0
ldrsh r3, [r0, r6]
_080F82CA:
lsls r0, r1, 1
adds r0, r4
movs r6, 0
ldrsh r0, [r0, r6]
cmp r3, r0
bge _080F82DC
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
_080F82DC:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x3
bls _080F82CA
strh r2, [r5]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F82B4
thumb_func_start sub_80F82FC
sub_80F82FC: @ 80F82FC
2017-09-02 22:31:37 +02:00
ldr r2, =gSpecialVar_0x8004
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_02039F00
2017-09-02 22:31:37 +02:00
ldr r0, =gSpecialVar_0x8006
2016-11-01 18:08:48 +01:00
ldrh r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
strh r0, [r2]
bx lr
.pool
thumb_func_end sub_80F82FC
thumb_func_start sub_80F831C
sub_80F831C: @ 80F831C
push {lr}
movs r1, 0
2016-11-01 19:35:16 +01:00
ldr r2, =gUnknown_02039F20
2016-11-01 18:08:48 +01:00
ldrb r0, [r2]
2017-09-02 22:31:37 +02:00
ldr r3, =gSpecialVar_0x8005
2016-11-01 18:08:48 +01:00
cmp r0, 0
beq _080F833C
_080F832A:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x3
bhi _080F833C
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _080F832A
_080F833C:
strh r1, [r3]
pop {r0}
bx r0
.pool
thumb_func_end sub_80F831C
thumb_func_start sub_80F834C
sub_80F834C: @ 80F834C
push {r4,lr}
movs r1, 0
2016-11-01 19:35:16 +01:00
ldr r2, =gUnknown_02039F20
2016-11-01 18:08:48 +01:00
ldrb r0, [r2]
2017-01-14 20:53:20 +01:00
ldr r4, =gStringVar3
Decompile TV (#80) * ClearTVShowData * special_0x44 * DoTVShow (nonmatching because align) * DoTVShowBravoTrainerPokemonProfile * Update field names * DoTVShowBravoTrainerBattleTower * Renaming of struct fields * sub_80EBFF4 and UpdateTVScreensOnMap * SetTVMetatilesOnMap * Power buttons for the TV screens on the map * special_0x45 * sub_80EC18C * special_0x4a * ResetGabbyAndTy * GabbyAndTyBeforeInterview * GabbyAndTyAfterInterview * Through IsTVShowInSearchOfTrainersAiring * GabbyAndTyGetLastQuote * GabbyAndTyGetLastBattleTrivia * GabbyAndTySetScriptVarsToFieldObjectLocalIds * InterviewAfter; use TVShow as a precursor for making the individual show structs anonymous * Make TV structs anonymous within the union * Move the TV union to its own subheader * Move TV show enums to the global.tv.h subheader * Funcion renaming * Apply static attributes where able * PutPokemonTodayCaughtOnAir * sub_80EC8A4 * PutPokemonTodayFailedOnTheAir * sub_80EC9E8, sub_80ECA10 * sub_80ECA38 * sub_80ECB00 * Put3CheersForPokeblocksOnTheAir * PutFanClubSpecialOnTheAir * ContestLiveUpdates_BeforeInterview * Other before-interview Contest Live Updates functions * ContestLiveUpdates_BeforeInterview_5 * InterviewAfter_BravoTrainerPokemonProfile * BravoTrainerPokemonProfile_BeforeInterview1 * BravoTrainerPokemonProfile_BeforeInterview2 * Disassemble TV data * Decompile TV data * InterviewAfter_BravoTrainerBattleTowerProfile * SaveRecordedItemPurchasesForTVShow * PutNameRaterShowOnTheAir * StartMassOutbreak * PutLilycoveContestLadyShowOnTheAir * InterviewAfter_FanClubLetter * Rip TV strings * InterviewAfter_RecentHappenings * InterviewAfter_PkmnFanClubOpinions * sub_80ED718 * EndMassOutbreak * sub_80ED888 * sub_80ED8B4 * UpdateMassOutbreakTimeLeft * sub_80ED950 * PutFishingAdviceShowOnTheAir * through sub_80EDA80 * ewram and common syms are now fetched from the object files * BSS symbols are taken from the tv.o file * through sub_80EDC60 * sub_80EDCE8 * sub_80EDD78 * through sub_80EDE84 * nomatching sub_80EDE98 * sub_80EDFB4 * sub_80EE104 * sub_80EE104 * sub_80EE184 * sub_80EE2CC * sub_80EE35C * sub_80EE44C * sub_80EE4DC * sub_80EE5A4 * sub_80EE69C * sub_80EE72C * sub_80EE7C0 * sub_80EE818 * sub_80EE8C8 * sub_80EEA70 * sub_80EEB98 * sub_80EEBF4 * through sub_80EED60 * Functions relating to Pokemon News * sub_80EEF6C * GetPriceReduction * IsPriceDiscounted * sub_80EF120 * through sub_80EF370 * sub_80EF40C * HasMixableShowAlreadyBeenSpawnedWithPlayerID * TV_SortPurchasesByQuantity * FindActiveBroadcastByShowType_SetScriptResult * InterviewBefore * through sub_80EF88C * through sub_80EF93C * through sub_80EFA24 * through TV_BernoulliTrial * sub_80EFB58 * sub_80EFBA4 * sub_80EFBDC * through sub_80EFD98 * ChangePokemonNickname * ChangeBoxPokemonNickname * sub_80EFF9C * through player_id_to_dword * CheckForBigMovieOrEmergencyNewsOnTV * GetMomOrDadStringForTVMessage * sub_80F01E8 * sub_80F0358 * sub_80F049C * TV record mixing functions * sub_80F06D0 * sub_80F0708 nonmatching * through sub_80F0B24 * sub_80F0B64 * through sub_80F0C04 * sub_80F0C7C * sub_80F0D60 * sub_80F0E58 * sub_80F0E84 * through sub_80F0F24 * sub_80F0F64 * sub_80F1208 * sub_80F1254 * sub_80F1290 * sub_80F12A4 * sub_80F14F8 * DoTVShowTodaysSmartShopper * DoTVShowTheNameRaterShow * DoTVShowPokemonTodaySuccessfulCapture * DoTVShowPokemonTodayFailedCapture * DoTVShowPokemonFanClubLetter * DoTVShowRecentHappenings * DoTVShowPokemonFanClubOpinions * DoTVShowPokemonNewsMassOutbreak * DoTVShowPokemonContestLiveUpdates * DoTVShowPokemonBattleUpdate * DoTVShow3CheersForPokeblocks * DoTVShowInSearchOfTrainers * Label GabbyAndTyData fields; remove ddump comments from data/text/tv.inc * DoTVShowPokemonAngler * DoTVShowTheWorldOfMasters; update RAM symbols and field names * Decorate static functions * DoTVShowTodaysRivalTrainer; region map enums * TVDewfordTrendWatcherNetworkTextGroup * DoTVShowHoennTreasureInvestigators * DoTVShowFindThatGamer * DoTVShowBreakingNewsTV * DoTVShowSecretBaseVisit * DoTVShowPokemonLotterWinnerFlashReport * DoTVShowThePokemonBattleSeminar * DoTVShowTrainerFanClubSpecial, DoTVShowTrainerFanClub * DoTVShowSpotTheCuties * DoTVShowPokemonNewsBattleFrontier * DoTVShowWhatsNo1InHoennToday * Helpers for DoTVShowSecretBaseSecrets * DoTVShowSecretBaseSecrets * DoTVShowSafariFanClub * Finish decompilation of tv.s * Some renaming * Rename text group pointers * revoke statis; pokenews enums * Labels are number one * Label all TV struct fields * Make data/text/tv.inc more readable * Split data/text/tv.inc * Rename pokenews text pointers * Frontier Symbol constants; indicate static rodata objects with 's' prefix * Fix leading spaces/tabs F*** CLion sometimes * Fix inconsequential warning
2017-10-13 17:09:36 +02:00
ldr r3, =gUnknown_02039E00 + 13
2016-11-01 18:08:48 +01:00
cmp r0, 0
beq _080F836E
_080F835C:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x3
bhi _080F836E
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _080F835C
_080F836E:
lsls r1, 6
adds r1, r3
adds r0, r4, 0
2017-01-14 20:53:20 +01:00
bl StringCopy
2016-11-01 18:08:48 +01:00
adds r0, r4, 0
bl sub_81DB5AC
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F834C
thumb_func_start sub_80F8390
sub_80F8390: @ 80F8390
push {r4,lr}
movs r1, 0
2016-11-01 19:35:16 +01:00
ldr r2, =gUnknown_02039F20
2016-11-01 18:08:48 +01:00
ldrb r0, [r2]
2017-01-14 20:53:20 +01:00
ldr r4, =gStringVar1
Decompile TV (#80) * ClearTVShowData * special_0x44 * DoTVShow (nonmatching because align) * DoTVShowBravoTrainerPokemonProfile * Update field names * DoTVShowBravoTrainerBattleTower * Renaming of struct fields * sub_80EBFF4 and UpdateTVScreensOnMap * SetTVMetatilesOnMap * Power buttons for the TV screens on the map * special_0x45 * sub_80EC18C * special_0x4a * ResetGabbyAndTy * GabbyAndTyBeforeInterview * GabbyAndTyAfterInterview * Through IsTVShowInSearchOfTrainersAiring * GabbyAndTyGetLastQuote * GabbyAndTyGetLastBattleTrivia * GabbyAndTySetScriptVarsToFieldObjectLocalIds * InterviewAfter; use TVShow as a precursor for making the individual show structs anonymous * Make TV structs anonymous within the union * Move the TV union to its own subheader * Move TV show enums to the global.tv.h subheader * Funcion renaming * Apply static attributes where able * PutPokemonTodayCaughtOnAir * sub_80EC8A4 * PutPokemonTodayFailedOnTheAir * sub_80EC9E8, sub_80ECA10 * sub_80ECA38 * sub_80ECB00 * Put3CheersForPokeblocksOnTheAir * PutFanClubSpecialOnTheAir * ContestLiveUpdates_BeforeInterview * Other before-interview Contest Live Updates functions * ContestLiveUpdates_BeforeInterview_5 * InterviewAfter_BravoTrainerPokemonProfile * BravoTrainerPokemonProfile_BeforeInterview1 * BravoTrainerPokemonProfile_BeforeInterview2 * Disassemble TV data * Decompile TV data * InterviewAfter_BravoTrainerBattleTowerProfile * SaveRecordedItemPurchasesForTVShow * PutNameRaterShowOnTheAir * StartMassOutbreak * PutLilycoveContestLadyShowOnTheAir * InterviewAfter_FanClubLetter * Rip TV strings * InterviewAfter_RecentHappenings * InterviewAfter_PkmnFanClubOpinions * sub_80ED718 * EndMassOutbreak * sub_80ED888 * sub_80ED8B4 * UpdateMassOutbreakTimeLeft * sub_80ED950 * PutFishingAdviceShowOnTheAir * through sub_80EDA80 * ewram and common syms are now fetched from the object files * BSS symbols are taken from the tv.o file * through sub_80EDC60 * sub_80EDCE8 * sub_80EDD78 * through sub_80EDE84 * nomatching sub_80EDE98 * sub_80EDFB4 * sub_80EE104 * sub_80EE104 * sub_80EE184 * sub_80EE2CC * sub_80EE35C * sub_80EE44C * sub_80EE4DC * sub_80EE5A4 * sub_80EE69C * sub_80EE72C * sub_80EE7C0 * sub_80EE818 * sub_80EE8C8 * sub_80EEA70 * sub_80EEB98 * sub_80EEBF4 * through sub_80EED60 * Functions relating to Pokemon News * sub_80EEF6C * GetPriceReduction * IsPriceDiscounted * sub_80EF120 * through sub_80EF370 * sub_80EF40C * HasMixableShowAlreadyBeenSpawnedWithPlayerID * TV_SortPurchasesByQuantity * FindActiveBroadcastByShowType_SetScriptResult * InterviewBefore * through sub_80EF88C * through sub_80EF93C * through sub_80EFA24 * through TV_BernoulliTrial * sub_80EFB58 * sub_80EFBA4 * sub_80EFBDC * through sub_80EFD98 * ChangePokemonNickname * ChangeBoxPokemonNickname * sub_80EFF9C * through player_id_to_dword * CheckForBigMovieOrEmergencyNewsOnTV * GetMomOrDadStringForTVMessage * sub_80F01E8 * sub_80F0358 * sub_80F049C * TV record mixing functions * sub_80F06D0 * sub_80F0708 nonmatching * through sub_80F0B24 * sub_80F0B64 * through sub_80F0C04 * sub_80F0C7C * sub_80F0D60 * sub_80F0E58 * sub_80F0E84 * through sub_80F0F24 * sub_80F0F64 * sub_80F1208 * sub_80F1254 * sub_80F1290 * sub_80F12A4 * sub_80F14F8 * DoTVShowTodaysSmartShopper * DoTVShowTheNameRaterShow * DoTVShowPokemonTodaySuccessfulCapture * DoTVShowPokemonTodayFailedCapture * DoTVShowPokemonFanClubLetter * DoTVShowRecentHappenings * DoTVShowPokemonFanClubOpinions * DoTVShowPokemonNewsMassOutbreak * DoTVShowPokemonContestLiveUpdates * DoTVShowPokemonBattleUpdate * DoTVShow3CheersForPokeblocks * DoTVShowInSearchOfTrainers * Label GabbyAndTyData fields; remove ddump comments from data/text/tv.inc * DoTVShowPokemonAngler * DoTVShowTheWorldOfMasters; update RAM symbols and field names * Decorate static functions * DoTVShowTodaysRivalTrainer; region map enums * TVDewfordTrendWatcherNetworkTextGroup * DoTVShowHoennTreasureInvestigators * DoTVShowFindThatGamer * DoTVShowBreakingNewsTV * DoTVShowSecretBaseVisit * DoTVShowPokemonLotterWinnerFlashReport * DoTVShowThePokemonBattleSeminar * DoTVShowTrainerFanClubSpecial, DoTVShowTrainerFanClub * DoTVShowSpotTheCuties * DoTVShowPokemonNewsBattleFrontier * DoTVShowWhatsNo1InHoennToday * Helpers for DoTVShowSecretBaseSecrets * DoTVShowSecretBaseSecrets * DoTVShowSafariFanClub * Finish decompilation of tv.s * Some renaming * Rename text group pointers * revoke statis; pokenews enums * Labels are number one * Label all TV struct fields * Make data/text/tv.inc more readable * Split data/text/tv.inc * Rename pokenews text pointers * Frontier Symbol constants; indicate static rodata objects with 's' prefix * Fix leading spaces/tabs F*** CLion sometimes * Fix inconsequential warning
2017-10-13 17:09:36 +02:00
ldr r3, =gUnknown_02039E00 + 2
2016-11-01 18:08:48 +01:00
cmp r0, 0
beq _080F83B2
_080F83A0:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x3
bhi _080F83B2
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _080F83A0
_080F83B2:
lsls r1, 6
adds r1, r3
adds r0, r4, 0
2017-01-14 20:53:20 +01:00
bl StringCopy
2016-11-01 18:08:48 +01:00
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F8390
thumb_func_start sub_80F83D0
sub_80F83D0: @ 80F83D0
push {lr}
ldr r0, =sub_80D7B24
bl SetMainCallback2
pop {r0}
bx r0
.pool
thumb_func_end sub_80F83D0
thumb_func_start sub_80F83E0
sub_80F83E0: @ 80F83E0
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, =gPaletteFade
2016-11-01 18:08:48 +01:00
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080F83FE
adds r0, r2, 0
bl DestroyTask
ldr r0, =sub_80F83D0
bl SetMainCallback2
_080F83FE:
pop {r0}
bx r0
.pool
thumb_func_end sub_80F83E0
thumb_func_start sub_80F840C
sub_80F840C: @ 80F840C
push {lr}
sub sp, 0x4
2017-09-10 23:05:23 +02:00
bl ScriptContext2_Enable
2016-11-01 18:08:48 +01:00
ldr r0, =sub_80F83E0
movs r1, 0xA
bl CreateTask
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
2016-11-01 18:08:48 +01:00
add sp, 0x4
pop {r0}
bx r0
.pool
thumb_func_end sub_80F840C
thumb_func_start sub_80F8438
sub_80F8438: @ 80F8438
2017-09-02 22:31:37 +02:00
ldr r2, =gSpecialVar_0x8004
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_02039E00
2017-09-02 22:31:37 +02:00
ldr r0, =gSpecialVar_0x8006
2016-11-01 18:08:48 +01:00
ldrh r0, [r0]
lsls r0, 6
adds r0, r1
ldrh r0, [r0]
strh r0, [r2]
bx lr
.pool
thumb_func_end sub_80F8438
thumb_func_start sub_80F8458
sub_80F8458: @ 80F8458
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, =gPaletteFade
2016-11-01 18:08:48 +01:00
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080F8476
adds r0, r2, 0
bl DestroyTask
ldr r0, =sub_80F5B00
bl SetMainCallback2
_080F8476:
pop {r0}
bx r0
.pool
thumb_func_end sub_80F8458
thumb_func_start sub_80F8484
sub_80F8484: @ 80F8484
push {lr}
sub sp, 0x4
2017-09-10 23:05:23 +02:00
bl ScriptContext2_Enable
2016-11-01 18:08:48 +01:00
ldr r0, =sub_80F8458
movs r1, 0xA
bl CreateTask
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
2016-11-01 18:08:48 +01:00
add sp, 0x4
pop {r0}
bx r0
.pool
thumb_func_end sub_80F8484
thumb_func_start sub_80F84B0
sub_80F84B0: @ 80F84B0
2017-09-02 22:31:37 +02:00
ldr r0, =gSpecialVar_0x8004
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_02039F25
2016-11-01 18:08:48 +01:00
ldrb r1, [r1]
strh r1, [r0]
bx lr
.pool
thumb_func_end sub_80F84B0
thumb_func_start sub_80F84C4
sub_80F84C4: @ 80F84C4
push {r4-r6,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
2017-09-10 23:05:23 +02:00
bl ScriptContext2_Enable
2016-11-01 18:08:48 +01:00
ldr r6, =sub_80FC580
adds r0, r6, 0
movs r1, 0
bl CreateTask
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r2, =sub_80F8508
adds r0, r4, 0
adds r1, r6, 0
bl SetTaskFuncWithFollowupFunc
2016-11-01 19:35:16 +01:00
ldr r1, =gTasks
2016-11-01 18:08:48 +01:00
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
strh r5, [r0, 0x1A]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F84C4
thumb_func_start sub_80F8508
sub_80F8508: @ 80F8508
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F2A
2016-11-01 18:08:48 +01:00
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _080F8540
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F24
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
bl sub_80DA8C8
ldr r1, =sub_80FC6BC
ldr r2, =sub_80F8568
adds r0, r4, 0
bl SetTaskFuncWithFollowupFunc
b _080F8556
.pool
_080F8540:
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F24
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
bl sub_80DA8C8
2016-11-01 19:35:16 +01:00
ldr r1, =gTasks
2016-11-01 18:08:48 +01:00
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, =sub_81D9DE4
str r1, [r0]
_080F8556:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F8508
thumb_func_start sub_80F8568
sub_80F8568: @ 80F8568
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r1, =sub_80FC804
ldr r2, =sub_80F8584
bl SetTaskFuncWithFollowupFunc
pop {r0}
bx r0
.pool
thumb_func_end sub_80F8568
thumb_func_start sub_80F8584
sub_80F8584: @ 80F8584
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r1, =sub_80FCE48
ldr r2, =sub_80F85A0
bl SetTaskFuncWithFollowupFunc
pop {r0}
bx r0
.pool
thumb_func_end sub_80F8584
thumb_func_start sub_80F85A0
sub_80F85A0: @ 80F85A0
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r1, =sub_80FC894
ldr r2, =sub_80F85BC
bl SetTaskFuncWithFollowupFunc
pop {r0}
bx r0
.pool
thumb_func_end sub_80F85A0
thumb_func_start sub_80F85BC
sub_80F85BC: @ 80F85BC
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x8
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
movs r3, 0
2016-11-01 19:35:16 +01:00
ldr r5, =gUnknown_02039F30
2016-11-01 18:08:48 +01:00
mov r12, r5
2017-09-02 22:31:37 +02:00
ldr r0, =gSpecialVar_0x8004
2016-11-01 18:08:48 +01:00
mov r9, r0
add r1, sp, 0x4
mov r8, r1
ldrb r0, [r5]
cmp r3, r0
bcs _080F8606
lsls r0, r6, 2
adds r0, r6
lsls r4, r0, 3
2016-11-01 19:35:16 +01:00
ldr r7, =gTasks + 0x8
2016-11-01 18:08:48 +01:00
_080F85EC:
mov r1, sp
adds r2, r1, r3
adds r1, r3, 0x1
lsls r0, r1, 1
adds r0, r4
adds r0, r7
ldrh r0, [r0]
strb r0, [r2]
lsls r1, 24
lsrs r3, r1, 24
ldrb r0, [r5]
cmp r3, r0
bcc _080F85EC
_080F8606:
movs r3, 0
mov r1, r12
ldrb r0, [r1]
cmp r3, r0
bcs _080F862A
adds r4, r0, 0
mov r2, sp
_080F8614:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, r4
bcs _080F862A
mov r0, sp
adds r1, r0, r3
ldrb r0, [r2]
ldrb r1, [r1]
cmp r0, r1
beq _080F8614
_080F862A:
mov r1, r12
ldrb r1, [r1]
cmp r3, r1
bne _080F8644
movs r0, 0
b _080F8646
.pool
_080F8644:
movs r0, 0x1
_080F8646:
mov r1, r9
strh r0, [r1]
movs r3, 0
mov r4, r12
ldrb r0, [r4]
cmp r3, r0
bcs _080F8678
mov r5, r8
lsls r0, r6, 2
adds r0, r6
lsls r2, r0, 3
2016-11-01 19:35:16 +01:00
ldr r7, =gTasks + 0x8
2016-11-01 18:08:48 +01:00
_080F865E:
adds r1, r5, r3
adds r0, r3, 0x5
lsls r0, 1
adds r0, r2
adds r0, r7
ldrh r0, [r0]
strb r0, [r1]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
ldrb r1, [r4]
cmp r3, r1
bcc _080F865E
_080F8678:
mov r0, r8
bl sub_80F86E0
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_02039F2B
2016-11-01 18:08:48 +01:00
strb r0, [r1]
2017-11-11 01:12:18 +01:00
ldr r0, =gSpecialVar_ContestCategory
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
bl sub_80DB09C
ldr r1, =sub_80FCF40
ldr r2, =sub_80F86B8
adds r0, r6, 0
bl SetTaskFuncWithFollowupFunc
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F85BC
thumb_func_start sub_80F86B8
sub_80F86B8: @ 80F86B8
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0
bl sub_80DCE58
ldr r1, =sub_80FCFD0
ldr r2, =sub_80F8714
adds r0, r4, 0
bl SetTaskFuncWithFollowupFunc
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F86B8
thumb_func_start sub_80F86E0
sub_80F86E0: @ 80F86E0
push {r4,r5,lr}
adds r3, r0, 0
movs r4, 0
movs r2, 0x1
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_02039F30
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
cmp r2, r0
bge _080F8708
adds r5, r0, 0
_080F86F2:
adds r0, r3, r4
adds r1, r3, r2
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
bcs _080F8702
lsls r0, r2, 24
lsrs r4, r0, 24
_080F8702:
adds r2, 0x1
cmp r2, r5
blt _080F86F2
_080F8708:
adds r0, r4, 0
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_80F86E0
thumb_func_start sub_80F8714
sub_80F8714: @ 80F8714
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
2017-09-02 22:31:37 +02:00
ldr r0, =gSpecialVar_0x8004
2016-11-01 18:08:48 +01:00
ldrh r0, [r0]
cmp r0, 0x1
bne _080F8748
bl sub_800A520
lsls r0, 24
cmp r0, 0
beq _080F877E
2016-11-01 19:35:16 +01:00
ldr r0, =gTasks
2016-11-01 18:08:48 +01:00
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
adds r1, r0
ldr r0, =sub_80F878C
str r0, [r1]
b _080F877E
.pool
_080F8748:
Decompile TV (#80) * ClearTVShowData * special_0x44 * DoTVShow (nonmatching because align) * DoTVShowBravoTrainerPokemonProfile * Update field names * DoTVShowBravoTrainerBattleTower * Renaming of struct fields * sub_80EBFF4 and UpdateTVScreensOnMap * SetTVMetatilesOnMap * Power buttons for the TV screens on the map * special_0x45 * sub_80EC18C * special_0x4a * ResetGabbyAndTy * GabbyAndTyBeforeInterview * GabbyAndTyAfterInterview * Through IsTVShowInSearchOfTrainersAiring * GabbyAndTyGetLastQuote * GabbyAndTyGetLastBattleTrivia * GabbyAndTySetScriptVarsToFieldObjectLocalIds * InterviewAfter; use TVShow as a precursor for making the individual show structs anonymous * Make TV structs anonymous within the union * Move the TV union to its own subheader * Move TV show enums to the global.tv.h subheader * Funcion renaming * Apply static attributes where able * PutPokemonTodayCaughtOnAir * sub_80EC8A4 * PutPokemonTodayFailedOnTheAir * sub_80EC9E8, sub_80ECA10 * sub_80ECA38 * sub_80ECB00 * Put3CheersForPokeblocksOnTheAir * PutFanClubSpecialOnTheAir * ContestLiveUpdates_BeforeInterview * Other before-interview Contest Live Updates functions * ContestLiveUpdates_BeforeInterview_5 * InterviewAfter_BravoTrainerPokemonProfile * BravoTrainerPokemonProfile_BeforeInterview1 * BravoTrainerPokemonProfile_BeforeInterview2 * Disassemble TV data * Decompile TV data * InterviewAfter_BravoTrainerBattleTowerProfile * SaveRecordedItemPurchasesForTVShow * PutNameRaterShowOnTheAir * StartMassOutbreak * PutLilycoveContestLadyShowOnTheAir * InterviewAfter_FanClubLetter * Rip TV strings * InterviewAfter_RecentHappenings * InterviewAfter_PkmnFanClubOpinions * sub_80ED718 * EndMassOutbreak * sub_80ED888 * sub_80ED8B4 * UpdateMassOutbreakTimeLeft * sub_80ED950 * PutFishingAdviceShowOnTheAir * through sub_80EDA80 * ewram and common syms are now fetched from the object files * BSS symbols are taken from the tv.o file * through sub_80EDC60 * sub_80EDCE8 * sub_80EDD78 * through sub_80EDE84 * nomatching sub_80EDE98 * sub_80EDFB4 * sub_80EE104 * sub_80EE104 * sub_80EE184 * sub_80EE2CC * sub_80EE35C * sub_80EE44C * sub_80EE4DC * sub_80EE5A4 * sub_80EE69C * sub_80EE72C * sub_80EE7C0 * sub_80EE818 * sub_80EE8C8 * sub_80EEA70 * sub_80EEB98 * sub_80EEBF4 * through sub_80EED60 * Functions relating to Pokemon News * sub_80EEF6C * GetPriceReduction * IsPriceDiscounted * sub_80EF120 * through sub_80EF370 * sub_80EF40C * HasMixableShowAlreadyBeenSpawnedWithPlayerID * TV_SortPurchasesByQuantity * FindActiveBroadcastByShowType_SetScriptResult * InterviewBefore * through sub_80EF88C * through sub_80EF93C * through sub_80EFA24 * through TV_BernoulliTrial * sub_80EFB58 * sub_80EFBA4 * sub_80EFBDC * through sub_80EFD98 * ChangePokemonNickname * ChangeBoxPokemonNickname * sub_80EFF9C * through player_id_to_dword * CheckForBigMovieOrEmergencyNewsOnTV * GetMomOrDadStringForTVMessage * sub_80F01E8 * sub_80F0358 * sub_80F049C * TV record mixing functions * sub_80F06D0 * sub_80F0708 nonmatching * through sub_80F0B24 * sub_80F0B64 * through sub_80F0C04 * sub_80F0C7C * sub_80F0D60 * sub_80F0E58 * sub_80F0E84 * through sub_80F0F24 * sub_80F0F64 * sub_80F1208 * sub_80F1254 * sub_80F1290 * sub_80F12A4 * sub_80F14F8 * DoTVShowTodaysSmartShopper * DoTVShowTheNameRaterShow * DoTVShowPokemonTodaySuccessfulCapture * DoTVShowPokemonTodayFailedCapture * DoTVShowPokemonFanClubLetter * DoTVShowRecentHappenings * DoTVShowPokemonFanClubOpinions * DoTVShowPokemonNewsMassOutbreak * DoTVShowPokemonContestLiveUpdates * DoTVShowPokemonBattleUpdate * DoTVShow3CheersForPokeblocks * DoTVShowInSearchOfTrainers * Label GabbyAndTyData fields; remove ddump comments from data/text/tv.inc * DoTVShowPokemonAngler * DoTVShowTheWorldOfMasters; update RAM symbols and field names * Decorate static functions * DoTVShowTodaysRivalTrainer; region map enums * TVDewfordTrendWatcherNetworkTextGroup * DoTVShowHoennTreasureInvestigators * DoTVShowFindThatGamer * DoTVShowBreakingNewsTV * DoTVShowSecretBaseVisit * DoTVShowPokemonLotterWinnerFlashReport * DoTVShowThePokemonBattleSeminar * DoTVShowTrainerFanClubSpecial, DoTVShowTrainerFanClub * DoTVShowSpotTheCuties * DoTVShowPokemonNewsBattleFrontier * DoTVShowWhatsNo1InHoennToday * Helpers for DoTVShowSecretBaseSecrets * DoTVShowSecretBaseSecrets * DoTVShowSafariFanClub * Finish decompilation of tv.s * Some renaming * Rename text group pointers * revoke statis; pokenews enums * Labels are number one * Label all TV struct fields * Make data/text/tv.inc more readable * Split data/text/tv.inc * Rename pokenews text pointers * Frontier Symbol constants; indicate static rodata objects with 's' prefix * Fix leading spaces/tabs F*** CLion sometimes * Fix inconsequential warning
2017-10-13 17:09:36 +02:00
ldr r5, =gUnknown_02039E00 + 2
2016-11-01 18:08:48 +01:00
movs r4, 0x3
_080F874C:
adds r0, r5, 0
2017-01-14 20:53:20 +01:00
bl StringGetEnd10
2016-11-01 18:08:48 +01:00
adds r5, 0x40
subs r4, 0x1
cmp r4, 0
bge _080F874C
adds r0, r6, 0
bl DestroyTask
2017-01-14 20:53:20 +01:00
ldr r0, =gSaveBlock1Ptr
2016-11-01 18:08:48 +01:00
ldr r0, [r0]
movs r1, 0x4
ldrsb r1, [r0, r1]
movs r2, 0x5
ldrsb r2, [r0, r2]
movs r3, 0x1
negs r3, r3
movs r0, 0
bl saved_warp2_set
2017-09-10 23:05:23 +02:00
bl ScriptContext2_Disable
bl EnableBothScriptContexts
2016-11-01 18:08:48 +01:00
_080F877E:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F8714
thumb_func_start sub_80F878C
sub_80F878C: @ 80F878C
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_800AC34
2016-11-01 19:35:16 +01:00
ldr r1, =gTasks
2016-11-01 18:08:48 +01:00
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, =sub_80F87B4
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80F878C
thumb_func_start sub_80F87B4
sub_80F87B4: @ 80F87B4
push {lr}
lsls r0, 24
lsrs r1, r0, 24
2017-10-01 01:12:42 +02:00
ldr r0, =gReceivedRemoteLinkPlayers
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
cmp r0, 0
bne _080F87D0
adds r0, r1, 0
bl DestroyTask
2017-09-10 23:05:23 +02:00
bl ScriptContext2_Disable
bl EnableBothScriptContexts
2016-11-01 18:08:48 +01:00
_080F87D0:
pop {r0}
bx r0
.pool
thumb_func_end sub_80F87B4
.align 2, 0 @ Don't pad with nop.