summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-05-11 10:51:38 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-05-11 10:51:38 -0400
commit5539e282a39c34a278d1ea2fdc53ee46ffe154d5 (patch)
treeeb4c88d5f6f96ee082e2e8b395c1f97285c6272e
parent8d0da7d8e006beda6c72c437545bca9f20086b28 (diff)
through sub_80DB798
-rw-r--r--asm/contest.s559
-rw-r--r--src/contest.c234
2 files changed, 223 insertions, 570 deletions
diff --git a/asm/contest.s b/asm/contest.s
index 69060422e..78660871c 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -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
diff --git a/src/contest.c b/src/contest.c
index b4e71d82b..4303c56ca 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -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;
}