through sub_80DB798

This commit is contained in:
PikalaxALT
2018-05-11 10:51:38 -04:00
parent 8d0da7d8e0
commit 5539e282a3
2 changed files with 223 additions and 570 deletions

View File

@@ -5,481 +5,6 @@
.text
thumb_func_start sub_80DB4E0
sub_80DB4E0: @ 80DB4E0
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x10
lsls r0, 16
lsrs r5, r0, 16
lsls r1, 24
lsrs r4, r1, 24
ldr r0, =gUnknown_02039F26
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
adds r0, 0x2
lsls r0, 24
lsrs r7, r0, 24
adds r0, r4, 0
bl sub_80DBCA8
lsls r0, 24
cmp r0, 0
bne _080DB560
cmp r5, 0
beq _080DB560
adds r0, r5, 0
adds r1, r4, 0
bl sub_80DB2EC
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
movs r0, 0x2
mov r8, r0
str r0, [sp]
movs r5, 0x1
str r5, [sp, 0x4]
movs r6, 0x11
str r6, [sp, 0x8]
str r5, [sp, 0xC]
movs r0, 0
adds r1, r4, 0
movs r2, 0x14
adds r3, r7, 0
bl sub_80DECB8
adds r4, 0x10
lsls r4, 16
lsrs r4, 16
adds r3, r7, 0x1
lsls r3, 24
lsrs r3, 24
mov r0, r8
str r0, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
str r5, [sp, 0xC]
movs r0, 0
adds r1, r4, 0
movs r2, 0x14
bl sub_80DECB8
b _080DB576
.pool
_080DB560:
movs r0, 0x2
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0
movs r2, 0x14
adds r3, r7, 0
bl sub_80DED10
_080DB576:
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80DB4E0
thumb_func_start sub_80DB584
sub_80DB584: @ 80DB584
push {r4,r5,lr}
movs r4, 0
movs r5, 0
_080DB58A:
ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x4]
adds r0, r5, r0
ldrh r0, [r0, 0x6]
lsls r1, r4, 24
lsrs r1, 24
bl sub_80DB4E0
adds r5, 0x1C
adds r4, 0x1
cmp r4, 0x3
ble _080DB58A
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80DB584
thumb_func_start sub_80DB5B0
sub_80DB5B0: @ 80DB5B0
ldr r0, =0x00002034
bx lr
.pool
thumb_func_end sub_80DB5B0
thumb_func_start sub_80DB5B8
sub_80DB5B8: @ 80DB5B8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
lsls r0, 24
lsrs r2, r0, 24
lsls r1, 24
lsrs r1, 24
mov r8, r1
mov r10, r8
ldr r0, =gContestResources
mov r9, r0
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r2, 3
subs r0, r2
lsls r7, r0, 2
adds r3, r7, r1
ldrb r0, [r3, 0x10]
movs r5, 0x30
ands r5, r0
cmp r5, 0
bne _080DB5F4
movs r0, 0
b _080DB68A
.pool
_080DB5F4:
ldr r0, =gUnknown_02039F26
adds r0, r2, r0
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
adds r0, 0x2
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0xD
ldrsb r0, [r3, r0]
movs r1, 0xA
bl __divsi3
lsls r0, 24
asrs r4, r0, 24
cmp r5, 0x10
bne _080DB648
bl sub_80DB5B0
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
movs r0, 0x1
str r0, [sp]
lsls r0, r4, 24
lsrs r0, 24
str r0, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
movs r0, 0
movs r2, 0x13
adds r3, r6, 0
bl sub_80DED10
mov r1, r8
cmp r1, 0
beq _080DB688
movs r0, 0x5B
b _080DB672
.pool
_080DB648:
adds r3, r6, r4
lsls r3, 24
lsrs r3, 24
movs r0, 0x1
str r0, [sp]
movs r0, 0x3
subs r0, r4
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0
movs r2, 0x13
bl sub_80DED10
mov r0, r10
cmp r0, 0
beq _080DB688
movs r0, 0x26
_080DB672:
bl PlaySE
mov r1, r9
ldr r0, [r1]
ldr r1, [r0, 0x4]
adds r1, r7, r1
ldrb r2, [r1, 0x10]
movs r0, 0x31
negs r0, r0
ands r0, r2
strb r0, [r1, 0x10]
_080DB688:
movs r0, 0x1
_080DB68A:
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80DB5B8
thumb_func_start sub_80DB69C
sub_80DB69C: @ 80DB69C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
movs r7, 0
movs r0, 0x1
mov r10, r0
movs r1, 0x11
mov r9, r1
movs r0, 0
mov r8, r0
_080DB6B6:
ldr r0, =gUnknown_02039F26
adds r0, r7, r0
ldrb r0, [r0]
lsls r4, r0, 2
adds r4, r0
adds r4, 0x2
lsls r4, 24
lsrs r4, 24
bl sub_80DB5B0
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x4]
add r0, r8
ldrb r0, [r0, 0xD]
lsls r0, 24
asrs r0, 24
movs r1, 0xA
bl __divsi3
lsls r0, 24
mov r1, r10
str r1, [sp]
asrs r6, r0, 24
lsrs r0, 24
str r0, [sp, 0x4]
mov r0, r9
str r0, [sp, 0x8]
movs r0, 0
adds r1, r5, 0
movs r2, 0x13
adds r3, r4, 0
bl sub_80DED10
adds r4, r6
lsls r4, 24
lsrs r4, 24
mov r1, r10
str r1, [sp]
movs r0, 0x3
subs r0, r6
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x4]
mov r0, r9
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0
movs r2, 0x13
adds r3, r4, 0
bl sub_80DED10
movs r1, 0x1C
add r8, r1
adds r7, 0x1
cmp r7, 0x3
ble _080DB6B6
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80DB69C
thumb_func_start sub_80DB748
sub_80DB748: @ 80DB748
push {lr}
lsls r0, 24
lsrs r1, r0, 24
movs r0, 0
cmp r1, 0x4
bhi _080DB78A
lsls r0, r1, 2
ldr r1, =_080DB764
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_080DB764:
.4byte _080DB778
.4byte _080DB77C
.4byte _080DB780
.4byte _080DB784
.4byte _080DB788
_080DB778:
movs r0, 0x80
b _080DB78A
_080DB77C:
movs r0, 0x84
b _080DB78A
_080DB780:
movs r0, 0x86
b _080DB78A
_080DB784:
movs r0, 0x88
b _080DB78A
_080DB788:
movs r0, 0x82
_080DB78A:
movs r1, 0x90
lsls r1, 8
adds r0, r1
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
thumb_func_end sub_80DB748
thumb_func_start sub_80DB798
sub_80DB798: @ 80DB798
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
mov r9, r1
movs r1, 0
mov r8, r1
ldr r1, =gUnknown_02039F26
adds r1, r0, r1
ldrb r2, [r1]
lsls r1, r2, 2
adds r1, r2
adds r1, 0x2
lsls r1, 24
lsrs r7, r1, 24
ldr r1, =gContestResources
ldr r1, [r1]
ldr r2, [r1, 0x4]
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r2, r1, r2
ldr r0, [r2, 0x10]
ldr r1, =0x00ff0003
ands r0, r1
cmp r0, 0
bne _080DB7DC
ldrb r0, [r2, 0xF]
cmp r0, 0
beq _080DB7EC
_080DB7DC:
movs r0, 0
b _080DB80E
.pool
_080DB7EC:
ldrb r1, [r2, 0xC]
mov r0, r9
ands r0, r1
cmp r0, 0
beq _080DB7FA
movs r0, 0x1
b _080DB80E
_080DB7FA:
movs r0, 0x6
ands r0, r1
cmp r0, 0
bne _080DB80C
ldrb r1, [r2, 0xB]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _080DB81A
_080DB80C:
movs r0, 0x2
_080DB80E:
bl sub_80DB748
lsls r0, 16
lsrs r0, 16
mov r8, r0
b _080DB81E
_080DB81A:
movs r0, 0
mov r9, r0
_080DB81E:
mov r1, r9
cmp r1, 0
beq _080DB85E
movs r6, 0x2
str r6, [sp]
movs r4, 0x1
str r4, [sp, 0x4]
movs r5, 0x11
str r5, [sp, 0x8]
str r4, [sp, 0xC]
movs r0, 0
mov r1, r8
movs r2, 0x14
adds r3, r7, 0
bl sub_80DECB8
mov r1, r8
adds r1, 0x10
lsls r1, 16
lsrs r1, 16
adds r3, r7, 0x1
lsls r3, 24
lsrs r3, 24
str r6, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
str r4, [sp, 0xC]
movs r0, 0
movs r2, 0x14
bl sub_80DECB8
b _080DB874
_080DB85E:
movs r0, 0x2
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0
movs r2, 0x14
adds r3, r7, 0
bl sub_80DED10
_080DB874:
mov r0, r9
add sp, 0x10
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80DB798
thumb_func_start sub_80DB884
sub_80DB884: @ 80DB884
push {r4,lr}
@@ -506,7 +31,7 @@ sub_80DB89C: @ 80DB89C
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0
bl sub_80DED60
bl Contest_SetBgCopyFlags
pop {r0}
bx r0
thumb_func_end sub_80DB89C
@@ -1417,7 +942,7 @@ sub_80DBF68: @ 80DBF68
bl sub_80DB89C
ldr r0, =gUnknown_0827E8DA
movs r1, 0
bl sub_80DEC30
bl Contest_StartTextPrinter
pop {r0}
bx r0
.pool
@@ -1441,7 +966,7 @@ _080DBF9A:
movs r0, 0
movs r1, 0
movs r2, 0x16
bl sub_80DED10
bl ContestBG_FillBoxWithTile
movs r0, 0xA0
lsls r0, 19
adds r5, r0
@@ -1778,7 +1303,7 @@ _080DC226:
str r0, [sp, 0x8]
movs r0, 0
adds r1, r6, 0
bl sub_80DED10
bl ContestBG_FillBoxWithTile
mov r3, r8
cmp r3, 0
ble _080DC284
@@ -3207,7 +2732,7 @@ _080DCDBC:
add r1, sp, 0x4
movs r2, 0x37
movs r3, 0x1
bl sub_80DEBD0
bl Contest_PrintTextToBg0WindowAt
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
@@ -3250,7 +2775,7 @@ _080DCE14:
add r1, sp, 0x4
movs r2, 0x5
movs r3, 0x1
bl sub_80DEBD0
bl Contest_PrintTextToBg0WindowAt
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
@@ -4146,7 +3671,7 @@ _080DD52C:
bl sub_80DB89C
adds r0, r4, 0
movs r1, 0x1
bl sub_80DEC30
bl Contest_StartTextPrinter
pop {r4-r6}
pop {r0}
bx r0
@@ -5640,7 +5165,7 @@ _080DE146:
adds r1, r4, 0
movs r2, 0x14
adds r3, r6, 0
bl sub_80DECB8
bl ContestBG_FillBoxWithIncrementingTile
adds r4, 0x10
lsls r4, 16
lsrs r4, 16
@@ -5659,7 +5184,7 @@ _080DE146:
adds r1, r4, 0
movs r2, 0x14
adds r3, r5, 0
bl sub_80DECB8
bl ContestBG_FillBoxWithIncrementingTile
movs r0, 0x63
bl PlaySE
_080DE1CA:
@@ -5800,7 +5325,7 @@ sub_80DE224: @ 80DE224
movs r3, 0
bl CopyToBgTilemapBuffer
movs r0, 0x1
bl sub_80DED60
bl Contest_SetBgCopyFlags
movs r5, 0
ldr r7, =gSprites
movs r6, 0x4
@@ -5863,7 +5388,7 @@ sub_80DE350: @ 80DE350
mov r0, sp
bl CpuSet
movs r0, 0x1
bl sub_80DED60
bl Contest_SetBgCopyFlags
movs r0, 0xA
bl GetGpuReg
add r3, sp, 0x4
@@ -6812,8 +6337,8 @@ _080DEB64:
.pool
thumb_func_end sub_80DEAA8
thumb_func_start sub_80DEB70
sub_80DEB70: @ 80DEB70
thumb_func_start Contest_PrintTextToBg0WindowStd
Contest_PrintTextToBg0WindowStd: @ 80DEB70
push {r4,lr}
sub sp, 0x10
adds r4, r0, 0
@@ -6853,15 +6378,15 @@ sub_80DEB70: @ 80DEB70
adds r0, r4, 0
bl PutWindowTilemap
movs r0, 0
bl sub_80DED60
bl Contest_SetBgCopyFlags
add sp, 0x10
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80DEB70
thumb_func_end Contest_PrintTextToBg0WindowStd
thumb_func_start sub_80DEBD0
sub_80DEBD0: @ 80DEBD0
thumb_func_start Contest_PrintTextToBg0WindowAt
Contest_PrintTextToBg0WindowAt: @ 80DEBD0
push {r4,r5,lr}
sub sp, 0x10
adds r5, r0, 0
@@ -6901,15 +6426,15 @@ sub_80DEBD0: @ 80DEBD0
adds r0, r5, 0
bl PutWindowTilemap
movs r0, 0
bl sub_80DED60
bl Contest_SetBgCopyFlags
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80DEBD0
thumb_func_end Contest_PrintTextToBg0WindowAt
thumb_func_start sub_80DEC30
sub_80DEC30: @ 80DEC30
thumb_func_start Contest_StartTextPrinter
Contest_StartTextPrinter: @ 80DEC30
push {r4,r5,lr}
sub sp, 0x10
str r0, [sp]
@@ -6971,15 +6496,15 @@ _080DECA4:
movs r0, 0x4
bl PutWindowTilemap
movs r0, 0
bl sub_80DED60
bl Contest_SetBgCopyFlags
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80DEC30
thumb_func_end Contest_StartTextPrinter
thumb_func_start sub_80DECB8
sub_80DECB8: @ 80DECB8
thumb_func_start ContestBG_FillBoxWithIncrementingTile
ContestBG_FillBoxWithIncrementingTile: @ 80DECB8
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -7014,17 +6539,17 @@ sub_80DECB8: @ 80DECB8
mov r0, r8
bl WriteSequenceToBgTilemapBuffer
mov r0, r8
bl sub_80DED60
bl Contest_SetBgCopyFlags
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80DECB8
thumb_func_end ContestBG_FillBoxWithIncrementingTile
thumb_func_start sub_80DED10
sub_80DED10: @ 80DED10
thumb_func_start ContestBG_FillBoxWithTile
ContestBG_FillBoxWithTile: @ 80DED10
push {r4-r6,lr}
sub sp, 0x10
ldr r4, [sp, 0x20]
@@ -7049,15 +6574,15 @@ sub_80DED10: @ 80DED10
str r6, [sp, 0x8]
movs r4, 0
str r4, [sp, 0xC]
bl sub_80DECB8
bl ContestBG_FillBoxWithIncrementingTile
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80DED10
thumb_func_end ContestBG_FillBoxWithTile
thumb_func_start sub_80DED4C
sub_80DED4C: @ 80DED4C
thumb_func_start Contest_RunTextPrinters
Contest_RunTextPrinters: @ 80DED4C
push {lr}
bl RunTextPrinters
movs r0, 0x4
@@ -7066,10 +6591,10 @@ sub_80DED4C: @ 80DED4C
lsrs r0, 16
pop {r1}
bx r1
thumb_func_end sub_80DED4C
thumb_func_end Contest_RunTextPrinters
thumb_func_start sub_80DED60
sub_80DED60: @ 80DED60
thumb_func_start Contest_SetBgCopyFlags
Contest_SetBgCopyFlags: @ 80DED60
ldr r2, =sContestBgCopyFlags
movs r1, 0x1
lsls r1, r0
@@ -7078,7 +6603,7 @@ sub_80DED60: @ 80DED60
strb r1, [r2]
bx lr
.pool
thumb_func_end sub_80DED60
thumb_func_end Contest_SetBgCopyFlags
thumb_func_start ResetContestLinkResults
ResetContestLinkResults: @ 80DED74
@@ -8411,7 +7936,7 @@ _080DF7AE:
add r1, sp, 0x4
movs r2, 0x5
movs r3, 0x1
bl sub_80DEBD0
bl Contest_PrintTextToBg0WindowAt
ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0x1C]
@@ -8469,7 +7994,7 @@ _080DF80A:
mov r1, r9
movs r2, 0x5
movs r3, 0x1
bl sub_80DEBD0
bl Contest_PrintTextToBg0WindowAt
ldrb r0, [r4]
mov r1, sp
adds r1, r5
@@ -8478,7 +8003,7 @@ _080DF80A:
str r2, [sp]
movs r2, 0x37
movs r3, 0x1
bl sub_80DEBD0
bl Contest_PrintTextToBg0WindowAt
mov r1, r8
lsls r0, r1, 24
lsrs r7, r0, 24
@@ -8557,7 +8082,7 @@ _080DF8CC:
mov r1, r9
movs r2, 0x5
movs r3, 0x1
bl sub_80DEBD0
bl Contest_PrintTextToBg0WindowAt
ldrb r0, [r4]
mov r1, sp
adds r1, r5
@@ -8566,7 +8091,7 @@ _080DF8CC:
str r2, [sp]
movs r2, 0x37
movs r3, 0x1
bl sub_80DEBD0
bl Contest_PrintTextToBg0WindowAt
mov r1, r8
lsls r0, r1, 24
lsrs r7, r0, 24

View File

@@ -131,11 +131,11 @@ void sub_80DE350(void);
void sub_80DE424(u8);
void sub_80DE69C(u8);
void sub_80DEA20(void);
void sub_80DEBD0(u32, u8 *, s32, u8, u8);
void sub_80DEC30(const u8 *, u8);
void sub_80DECB8(u8, u16, u8, u8, u8, u8, u8, u8);
bool32 sub_80DED4C(void);
void sub_80DED60(u32);
void Contest_PrintTextToBg0WindowAt(u32, u8 *, s32, u8, u8);
void Contest_StartTextPrinter(const u8 *, u8);
void ContestBG_FillBoxWithIncrementingTile(u8, u16, u8, u8, u8, u8, u8, u8);
bool32 Contest_RunTextPrinters(void);
void Contest_SetBgCopyFlags(u32);
void sub_80FC9F8(u8);
bool8 AreMovesContestCombo(u16, u16);
void sub_80DBD18(void);
@@ -171,8 +171,8 @@ void sub_80DC3AC(void);
bool8 sub_80DC3C4(void);
void sub_80DF9D4(u8 *);
void sub_80DF9E0(u8 *, s32);
void sub_80DED10(u8, u16, u8, u8, u8, u8, u8);
void sub_80DEB70(u8, const u8 *);
void ContestBG_FillBoxWithTile(u8, u16, u8, u8, u8, u8, u8);
void Contest_PrintTextToBg0WindowStd(u8, const u8 *);
EWRAM_DATA struct ContestPokemon gContestMons[4] = {0};
EWRAM_DATA s16 gContestMonConditions[4] = {0};
@@ -730,12 +730,12 @@ void sub_80D833C(u8 taskId)
StringCopy(gDisplayedStringBattle, gText_0827D531);
sub_80DB89C();
StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle);
sub_80DEC30(gStringVar4, 1);
Contest_StartTextPrinter(gStringVar4, 1);
gTasks[taskId].data[0]++;
}
else
{
if (!sub_80DED4C())
if (!Contest_RunTextPrinters())
{
gTasks[taskId].data[0] = 0;
gTasks[taskId].func = sub_80D8424;
@@ -790,7 +790,7 @@ void sub_80D8490(u8 taskId)
r5 = StringCopy(r5, gMoveNames[move]);
FillWindowPixelBuffer(i + 5, 0);
sub_80DEBD0(i + 5, sp8, 5, 1, 7);
Contest_PrintTextToBg0WindowAt(i + 5, sp8, 5, 1, 7);
}
sub_80D880C(gContestResources->field_0->playerMoveChoice);
@@ -828,7 +828,7 @@ void sub_80D8610(u8 taskId)
StringCopy(gDisplayedStringBattle, gText_0827D531);
sub_80DB89C();
StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle);
sub_80DEC30(gStringVar4, 0);
Contest_StartTextPrinter(gStringVar4, 0);
gBattle_BG0_Y = 0;
gBattle_BG2_Y = 0;
gTasks[taskId].func = sub_80D8424;
@@ -864,13 +864,13 @@ void sub_80D8610(u8 taskId)
void sub_80D880C(s8 a0)
{
sub_80DECB8(2, 55, 0, 31 + a0 * 2, 2, 2, 17, 1);
ContestBG_FillBoxWithIncrementingTile(2, 55, 0, 31 + a0 * 2, 2, 2, 17, 1);
}
void sub_80D883C(s8 a0)
{
sub_80DECB8(2, 11, 0, 31 + a0 * 2, 2, 1, 17, 1);
sub_80DECB8(2, 11, 0, 32 + a0 * 2, 2, 1, 17, 1);
ContestBG_FillBoxWithIncrementingTile(2, 11, 0, 31 + a0 * 2, 2, 1, 17, 1);
ContestBG_FillBoxWithIncrementingTile(2, 11, 0, 32 + a0 * 2, 2, 1, 17, 1);
}
void sub_80D8894(u8 taskId)
@@ -915,7 +915,7 @@ void sub_80D895C(u8 taskId)
PutWindowTilemap(5 + i);
CopyWindowToVram(5 + i, 2);
}
sub_80DED60(0);
Contest_SetBgCopyFlags(0);
DmaCopy32Defvars(3, gPlttBufferFaded, shared18000.unk18604, 0x400);
LoadPalette(shared18000.unk18204, 0, 0x400);
@@ -1055,12 +1055,12 @@ void sub_80D8B38(u8 taskId)
else
StringCopy(gStringVar2, gUnknown_08587F1C[gContestResources->field_4[r6].moveCategory]);
StringExpandPlaceholders(gStringVar4, gText_0827D55A);
sub_80DEC30(gStringVar4, 1);
Contest_StartTextPrinter(gStringVar4, 1);
gTasks[taskId].data[0] = 6;
}
return;
case 6:
if (!sub_80DED4C())
if (!Contest_RunTextPrinters())
{
gContestResources->field_0->unk1925E = 0;
gTasks[taskId].data[0] = 7;
@@ -1138,7 +1138,7 @@ void sub_80D8B38(u8 taskId)
}
return;
case 24:
if (!sub_80DED4C())
if (!Contest_RunTextPrinters())
gTasks[taskId].data[0] = 23;
return;
case 48:
@@ -1250,7 +1250,7 @@ void sub_80D8B38(u8 taskId)
}
return;
case 27:
if (!sub_80DED4C())
if (!Contest_RunTextPrinters())
gTasks[taskId].data[0] = 28;
return;
case 28:
@@ -1313,13 +1313,13 @@ void sub_80D8B38(u8 taskId)
sub_80DB89C();
StringCopy(gStringVar1, gContestMons[r6].nickname);
StringExpandPlaceholders(gStringVar4, gText_0827E793);
sub_80DEC30(gStringVar4, 1);
Contest_StartTextPrinter(gStringVar4, 1);
}
gTasks[taskId].data[0] = 52;
}
return;
case 52:
if (!sub_80DED4C())
if (!Contest_RunTextPrinters())
{
if (!gContestResources->field_4[r6].unk15_6)
gTasks[taskId].data[0] = 17;
@@ -1333,11 +1333,11 @@ void sub_80D8B38(u8 taskId)
{
sub_80DB89C();
if (r3 == 1)
sub_80DEC30(gText_0827E32E, 1);
Contest_StartTextPrinter(gText_0827E32E, 1);
else if (r3 == 2)
sub_80DEC30(gText_0827E35B, 1);
Contest_StartTextPrinter(gText_0827E35B, 1);
else
sub_80DEC30(gText_0827E38D, 1);
Contest_StartTextPrinter(gText_0827E38D, 1);
sub_80DD720(3);
gTasks[taskId].data[10] = 0;
gTasks[taskId].data[0] = 45;
@@ -1347,7 +1347,7 @@ void sub_80D8B38(u8 taskId)
sub_80DB89C();
StringCopy(gStringVar1, gContestMons[r6].nickname);
StringExpandPlaceholders(gStringVar4, gText_0827E2FE);
sub_80DEC30(gStringVar4, 1);
Contest_StartTextPrinter(gStringVar4, 1);
sub_80DD720(2);
gTasks[taskId].data[10] = 0;
gTasks[taskId].data[0] = 45;
@@ -1361,7 +1361,7 @@ void sub_80D8B38(u8 taskId)
}
return;
case 15:
if (!sub_80DED4C())
if (!Contest_RunTextPrinters())
{
if (++gTasks[taskId].data[10] > 50)
{
@@ -1390,7 +1390,7 @@ void sub_80D8B38(u8 taskId)
sub_80DB89C();
StringCopy(gStringVar1, gContestMons[r6].nickname);
StringExpandPlaceholders(gStringVar4, gText_0827E6E3);
sub_80DEC30(gStringVar4, 1);
Contest_StartTextPrinter(gStringVar4, 1);
gTasks[taskId].data[10] = 0;
sub_80DD720(0);
gTasks[taskId].data[0] = 46;
@@ -1405,7 +1405,7 @@ void sub_80D8B38(u8 taskId)
gTasks[taskId].data[0] = 19;
return;
case 19:
if (!sub_80DED4C())
if (!Contest_RunTextPrinters())
{
sub_80DC028(gContestResources->field_4[r6].appeal2, -gContestResources->field_4[r6].unk18, r6);
gContestResources->field_4[r6].appeal2 -= gContestResources->field_4[r6].unk18;
@@ -1460,7 +1460,7 @@ void sub_80D8B38(u8 taskId)
StringExpandPlaceholders(gStringVar4, gText_0827E717);
else
StringExpandPlaceholders(gStringVar4, gText_0827E76A);
sub_80DEC30(gStringVar4, 1);
Contest_StartTextPrinter(gStringVar4, 1);
gTasks[taskId].data[10] = 0;
gTasks[taskId].data[11] = 0;
if (r3 < 0)
@@ -1479,7 +1479,7 @@ void sub_80D8B38(u8 taskId)
gTasks[taskId].data[10]++;
break;
case 1:
if (!gContestResources->field_0->unk1920B_0 && !sub_80DED4C())
if (!gContestResources->field_0->unk1920B_0 && !Contest_RunTextPrinters())
{
sub_80DDCDC(-1);
gTasks[taskId].data[10]++;
@@ -1510,7 +1510,7 @@ void sub_80D8B38(u8 taskId)
switch (gTasks[taskId].data[10])
{
case 0:
if (!sub_80DED4C())
if (!Contest_RunTextPrinters())
{
sub_80DDED0(1, 1);
gTasks[taskId].data[10]++;
@@ -1570,20 +1570,20 @@ void sub_80D8B38(u8 taskId)
StringCopy(gStringVar1, gContestMons[r6].nickname);
StringCopy(gStringVar2, gMoveNames[gContestResources->field_4[r6].currMove]);
StringExpandPlaceholders(gStringVar4, gText_0827E7EA);
sub_80DEC30(gStringVar4, 1);
Contest_StartTextPrinter(gStringVar4, 1);
gTasks[taskId].data[0] = 58;
return;
case 58:
if (!sub_80DED4C())
if (!Contest_RunTextPrinters())
{
sub_80DB89C();
StringExpandPlaceholders(gStringVar4, gText_0827E817);
sub_80DEC30(gStringVar4, 1);
Contest_StartTextPrinter(gStringVar4, 1);
gTasks[taskId].data[0] = 59;
}
return;
case 59:
if (!sub_80DED4C())
if (!Contest_RunTextPrinters())
{
sub_80DB89C();
gTasks[taskId].data[0] = 55;
@@ -1596,11 +1596,11 @@ void sub_80D8B38(u8 taskId)
StringCopy(gStringVar1, gContestMons[r6].nickname);
StringCopy(gStringVar2, gMoveNames[gContestResources->field_4[r6].currMove]);
StringExpandPlaceholders(gStringVar4, gText_0827E58A);
sub_80DEC30(gStringVar4, 1);
Contest_StartTextPrinter(gStringVar4, 1);
gTasks[taskId].data[0] = 34;
return;
case 34:
if (!sub_80DED4C())
if (!Contest_RunTextPrinters())
gTasks[taskId].data[0] = 55;
return;
case 55:
@@ -1640,11 +1640,11 @@ void sub_80D8B38(u8 taskId)
sub_80DB89C();
StringCopy(gStringVar1, gContestMons[r6].nickname);
StringExpandPlaceholders(gStringVar4, gText_0827D56F);
sub_80DEC30(gStringVar4, 1);
Contest_StartTextPrinter(gStringVar4, 1);
gTasks[taskId].data[0] = 32;
return;
case 32:
if (!sub_80DED4C())
if (!Contest_RunTextPrinters())
gTasks[taskId].data[0] = 21;
return;
case 21:
@@ -1812,12 +1812,12 @@ void sub_80DA3CC(u8 taskId)
sub_80DB89C();
StringCopy(gStringVar1, gContestMons[gContestPlayerMonIndex].nickname);
StringExpandPlaceholders(gStringVar4, gUnknown_08587D90[r4]);
sub_80DEC30(gStringVar4, 1);
Contest_StartTextPrinter(gStringVar4, 1);
gTasks[taskId].data[0]++;
}
else
{
if (!sub_80DED4C())
if (!Contest_RunTextPrinters())
{
gTasks[taskId].data[0] = 0;
gTasks[taskId].func = sub_80DA464;
@@ -1903,14 +1903,14 @@ void sub_80DA5E8(u8 taskId)
}
gContestRngValue = gRngValue;
StringExpandPlaceholders(gStringVar4, gText_0827D597);
sub_80DEC30(gStringVar4, 1);
Contest_StartTextPrinter(gStringVar4, 1);
gTasks[taskId].data[2] = 0;
gTasks[taskId].func = sub_80DA6B4;
}
void sub_80DA6B4(u8 taskId)
{
if (!sub_80DED4C())
if (!Contest_RunTextPrinters())
{
sub_80DE224();
gBattle_BG1_X = 0;
@@ -2441,7 +2441,7 @@ void sub_80DAF1C(u8 a0, u8 a1)
offset = GetStringRightAlignXOffset(7, gDisplayedStringBattle, 0x60);
if (offset > 55)
offset = 55;
sub_80DEBD0(gUnknown_02039F26[a0], gDisplayedStringBattle, offset, 1, 7);
Contest_PrintTextToBg0WindowAt(gUnknown_02039F26[a0], gDisplayedStringBattle, offset, 1, 7);
}
void sub_80DAF88(u8 a0)
@@ -2452,7 +2452,7 @@ void sub_80DAF88(u8 a0)
void sub_80DAFA0(u8 a0, u8 a1)
{
sub_80DAED4(gContestMons[a0].nickname, a1);
sub_80DEBD0(gUnknown_02039F26[a0], gDisplayedStringBattle, 5, 1, 7);
Contest_PrintTextToBg0WindowAt(gUnknown_02039F26[a0], gDisplayedStringBattle, 5, 1, 7);
}
u16 sub_80DAFE0(u8 who, u8 contestCategory)
@@ -2609,8 +2609,8 @@ void prints_contest_move_description(u16 a)
else
categoryTile = 0x408A;
sub_80DECB8(0, categoryTile, 0x0b, 0x1f, 0x05, 0x01, 0x11, 0x01);
sub_80DECB8(0, categoryTile + 0x10, 0x0b, 0x20, 0x05, 0x01, 0x11, 0x01);
ContestBG_FillBoxWithIncrementingTile(0, categoryTile, 0x0b, 0x1f, 0x05, 0x01, 0x11, 0x01);
ContestBG_FillBoxWithIncrementingTile(0, categoryTile + 0x10, 0x0b, 0x20, 0x05, 0x01, 0x11, 0x01);
if (gContestEffects[gContestMoves[a].effect].appeal == 0xFF)
numHearts = 0;
@@ -2618,8 +2618,8 @@ void prints_contest_move_description(u16 a)
numHearts = gContestEffects[gContestMoves[a].effect].appeal / 10;
if (numHearts > 8)
numHearts = 8;
sub_80DED10(0, 0x5035, 0x15, 0x1f, 0x08, 0x01, 0x11);
sub_80DED10(0, 0x5012, 0x15, 0x1f, numHearts, 0x01, 0x11);
ContestBG_FillBoxWithTile(0, 0x5035, 0x15, 0x1f, 0x08, 0x01, 0x11);
ContestBG_FillBoxWithTile(0, 0x5012, 0x15, 0x1f, numHearts, 0x01, 0x11);
if (gContestEffects[gContestMoves[a].effect].jam == 0xFF)
numHearts = 0;
@@ -2627,10 +2627,138 @@ void prints_contest_move_description(u16 a)
numHearts = gContestEffects[gContestMoves[a].effect].jam / 10;
if (numHearts > 8)
numHearts = 8;
sub_80DED10(0, 0x5036, 0x15, 0x20, 0x08, 0x01, 0x11);
sub_80DED10(0, 0x5014, 0x15, 0x20, numHearts, 0x01, 0x11);
ContestBG_FillBoxWithTile(0, 0x5036, 0x15, 0x20, 0x08, 0x01, 0x11);
ContestBG_FillBoxWithTile(0, 0x5014, 0x15, 0x20, numHearts, 0x01, 0x11);
FillWindowPixelBuffer(10, 0);
sub_80DEB70(10, gContestEffectDescriptionPointers[gContestMoves[a].effect]);
sub_80DEB70(9, gText_Slash);
Contest_PrintTextToBg0WindowStd(10, gContestEffectDescriptionPointers[gContestMoves[a].effect]);
Contest_PrintTextToBg0WindowStd(9, gText_Slash);
}
void sub_80DB4E0(u16 move, u8 b)
{
u8 r7 = gUnknown_02039F26[b] * 5 + 2;
if (!sub_80DBCA8(b) && move != MOVE_NONE)
{
u16 tile = sub_80DB2EC(move, b);
ContestBG_FillBoxWithIncrementingTile(0, tile, 20, r7, 2, 1, 17, 1);
ContestBG_FillBoxWithIncrementingTile(0, tile + 16, 20, r7 + 1, 2, 1, 17, 1);
}
else
{
ContestBG_FillBoxWithTile(0, 0, 20, r7, 2, 2, 17);
}
}
void sub_80DB584(void)
{
s32 i;
for (i = 0; i < 4; i++)
sub_80DB4E0(gContestResources->field_4[i].currMove, i);
}
u16 sub_80DB5B0(void)
{
return 0x2034;
}
bool8 sub_80DB5B8(u8 contestantIdx, bool8 resetMod)
{
u8 r6;
s32 r4;
if (sContestantStatus[contestantIdx].conditionMod == 0)
return FALSE;
r6 = gUnknown_02039F26[contestantIdx] * 5 + 2;
r4 = sContestantStatus[contestantIdx].condition / 10;
if (sContestantStatus[contestantIdx].conditionMod == 1)
{
ContestBG_FillBoxWithTile(0, sub_80DB5B0(), 19, r6, 1, r4, 17);
if (resetMod)
{
PlaySE(SE_EXPMAX);
sContestantStatus[contestantIdx].conditionMod = 0;
}
}
else
{
ContestBG_FillBoxWithTile(0, 0, 19, r6 + r4, 1, 3 - r4, 17);
if (resetMod)
{
PlaySE(SE_FU_ZAKU2);
sContestantStatus[contestantIdx].conditionMod = 0;
}
}
return TRUE;
}
void sub_80DB69C(void)
{
s32 i;
s32 r6;
for (i = 0; i < 4; i++)
{
u8 r4 = gUnknown_02039F26[i] * 5 + 2;
u16 r5 = sub_80DB5B0();
r6 = sContestantStatus[i].condition / 10;
ContestBG_FillBoxWithTile(0, r5, 19, r4, 1, r6, 17);
ContestBG_FillBoxWithTile(0, 0, 19, r4 + r6, 1, 3 - r6, 17);
}
}
u16 sub_80DB748(u8 status)
{
u16 var = 0;
switch (status)
{
case 0:
var = 0x80;
break;
case 1:
var = 0x84;
break;
case 2:
var = 0x86;
break;
case 3:
var = 0x88;
break;
case 4:
var = 0x82;
break;
}
var += 0x9000;
return var;
}
bool8 sub_80DB798(u8 a)
{
bool8 r9 = TRUE;
u16 r8 = 0;
u8 r7 = gUnknown_02039F26[a] * 5 + 2;
if (sContestantStatus[a].resistant != 0 || sContestantStatus[a].immune != 0 || sContestantStatus[a].jamSafetyCount != 0 || sContestantStatus[a].jamReduction != 0)
r8 = sub_80DB748(0);
else if (sContestantStatus[a].nervous)
r8 = sub_80DB748(1);
else if (sContestantStatus[a].numTurnsSkipped != 0 || sContestantStatus[a].noMoreTurns)
r8 = sub_80DB748(2);
else
r9 = FALSE;
if (r9)
{
ContestBG_FillBoxWithIncrementingTile(0, r8, 20, r7, 2, 1, 17, 1);
ContestBG_FillBoxWithIncrementingTile(0, r8 + 16, 20, r7 + 1, 2, 1, 17, 1);
}
else
{
ContestBG_FillBoxWithTile(0, 0, 20, r7, 2, 2, 17);
}
return r9;
}