summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/contest_effect.s213
-rw-r--r--src/contest_effect.c114
2 files changed, 91 insertions, 236 deletions
diff --git a/asm/contest_effect.s b/asm/contest_effect.s
index 1996857eb..35c4b3518 100644
--- a/asm/contest_effect.s
+++ b/asm/contest_effect.s
@@ -5,219 +5,6 @@
.text
- thumb_func_start ContestEffect_17
-ContestEffect_17: @ 80B810C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r0, 0
- mov r9, r0
- ldr r0, _080B8150 @ =gSharedMem + 0x192D0
- ldrb r1, [r0, 0x11]
- mov r8, r1
- adds r1, r0
- ldrb r1, [r1]
- adds r6, r0, 0
- cmp r1, 0
- beq _080B817C
- movs r5, 0
- adds r4, r6, 0
- movs r7, 0
-_080B812E:
- mov r2, r8
- adds r0, r2, r4
- adds r1, r5, r4
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080B8172
- adds r0, r6, 0
- subs r0, 0x70
- adds r0, r7, r0
- ldrb r1, [r0, 0x15]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080B8154
- movs r0, 0x32
- b _080B8156
- .align 2, 0
-_080B8150: .4byte gSharedMem + 0x192D0
-_080B8154:
- movs r0, 0xA
-_080B8156:
- strh r0, [r4, 0x4]
- strb r5, [r4, 0x8]
- movs r0, 0xFF
- strb r0, [r4, 0x9]
- bl sub_80B9120
- lsls r0, 24
- cmp r0, 0
- beq _080B8172
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080B8172:
- adds r7, 0x1C
- adds r5, 0x1
- ldr r6, _080B81A0 @ =gSharedMem + 0x192D0
- cmp r5, 0x3
- ble _080B812E
-_080B817C:
- ldrb r0, [r6, 0x11]
- movs r1, 0x30
- bl SetContestantStatusUnk13
- mov r0, r9
- cmp r0, 0
- bne _080B8192
- ldrb r0, [r6, 0x11]
- movs r1, 0x36
- bl SetContestantStatusUnk14
-_080B8192:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B81A0: .4byte gSharedMem + 0x192D0
- thumb_func_end ContestEffect_17
-
- thumb_func_start ContestEffect_18
-ContestEffect_18: @ 80B81A4
- push {r4,lr}
- ldr r4, _080B81D0 @ =gSharedMem + 0x192D0
- ldrb r1, [r4, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r4, 0
- subs r1, 0x70
- adds r0, r1
- ldrb r1, [r0, 0x11]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x11]
- bl ContestEffect_09
- ldrb r0, [r4, 0x11]
- movs r1, 0x30
- bl SetContestantStatusUnk13
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B81D0: .4byte gSharedMem + 0x192D0
- thumb_func_end ContestEffect_18
-
- thumb_func_start ContestEffect_19
-ContestEffect_19: @ 80B81D4
- push {r4,lr}
- ldr r4, _080B8208 @ =gSharedMem + 0x192D0
- ldrb r1, [r4, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r4, 0
- subs r1, 0x70
- adds r0, r1
- ldrh r0, [r0, 0x6]
- ldr r1, _080B820C @ =gContestMoves
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 29
- bl sub_80B9038
- ldrb r0, [r4, 0x11]
- movs r1, 0x30
- bl SetContestantStatusUnk13
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8208: .4byte gSharedMem + 0x192D0
-_080B820C: .4byte gContestMoves
- thumb_func_end ContestEffect_19
-
- thumb_func_start ContestEffect_20
-ContestEffect_20: @ 80B8210
- push {lr}
- movs r0, 0
- bl sub_80B9038
- ldr r0, _080B8228 @ =gSharedMem + 0x192D0
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl SetContestantStatusUnk13
- pop {r0}
- bx r0
- .align 2, 0
-_080B8228: .4byte gSharedMem + 0x192D0
- thumb_func_end ContestEffect_20
-
- thumb_func_start ContestEffect_21
-ContestEffect_21: @ 80B822C
- push {lr}
- movs r0, 0x1
- bl sub_80B9038
- ldr r0, _080B8244 @ =gSharedMem + 0x192D0
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl SetContestantStatusUnk13
- pop {r0}
- bx r0
- .align 2, 0
-_080B8244: .4byte gSharedMem + 0x192D0
- thumb_func_end ContestEffect_21
-
- thumb_func_start ContestEffect_22
-ContestEffect_22: @ 80B8248
- push {lr}
- movs r0, 0x2
- bl sub_80B9038
- ldr r0, _080B8260 @ =gSharedMem + 0x192D0
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl SetContestantStatusUnk13
- pop {r0}
- bx r0
- .align 2, 0
-_080B8260: .4byte gSharedMem + 0x192D0
- thumb_func_end ContestEffect_22
-
- thumb_func_start ContestEffect_23
-ContestEffect_23: @ 80B8264
- push {lr}
- movs r0, 0x3
- bl sub_80B9038
- ldr r0, _080B827C @ =gSharedMem + 0x192D0
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl SetContestantStatusUnk13
- pop {r0}
- bx r0
- .align 2, 0
-_080B827C: .4byte gSharedMem + 0x192D0
- thumb_func_end ContestEffect_23
-
- thumb_func_start ContestEffect_24
-ContestEffect_24: @ 80B8280
- push {lr}
- movs r0, 0x4
- bl sub_80B9038
- ldr r0, _080B8298 @ =gSharedMem + 0x192D0
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl SetContestantStatusUnk13
- pop {r0}
- bx r0
- .align 2, 0
-_080B8298: .4byte gSharedMem + 0x192D0
- thumb_func_end ContestEffect_24
-
thumb_func_start ContestEffect_25
ContestEffect_25: @ 80B829C
push {r4-r7,lr}
diff --git a/src/contest_effect.c b/src/contest_effect.c
index 60dd2f320..7a6ffc0b0 100644
--- a/src/contest_effect.c
+++ b/src/contest_effect.c
@@ -5,6 +5,7 @@
u8 sub_80B9120(void);
bool8 sub_80B90C0(u8);
+void sub_80B9038(u8);
extern bool8 const gComboStarterLookupTable[];
@@ -117,12 +118,12 @@ void ContestEffect_14(void)
{
u8 r0 = Random() % 10;
int r1 = 20;
- if (r0 >= 2)
- {
+ if (r0 < 2)
+ r1 = 20;
+ else if (r0 < 8)
+ r1 = 40;
+ else
r1 = 60;
- if (r0 < 8)
- r1 = 40;
- }
shared192D0.unk4 = r1;
ContestEffect_08();
}
@@ -143,25 +144,19 @@ void ContestEffect_15(void) {
shared192D0.unk8[1] = 0xFF;
{
u8 r0 = Random() % 10;
- int r1 = 0;
- if (r0 > 0)
- {
+ int r1;
+ if (r0 == 0)
+ r1 = 0;
+ else if (r0 <= 2)
r1 = 10;
- if (r0 > 2)
- {
- r1 = 20;
- if (r0 > 4)
- {
- r1 = 30;
- if (r0 > 6)
- {
- r1 = 60;
- if (r0 <= 8)
- r1 = 40;
- }
- }
- }
- }
+ else if (r0 <= 4)
+ r1 = 20;
+ else if (r0 <= 6)
+ r1 = 30;
+ else if (r0 <= 8)
+ r1 = 40;
+ else
+ r1 = 60;
shared192D0.unk4 = r1;
}
if (sub_80B9120())
@@ -202,3 +197,76 @@ void ContestEffect_16(void)
SetContestantStatusUnk14(shared192D0.unk11, 0x36);
}
}
+
+void ContestEffect_17(void)
+{
+ u8 r9 = 0;
+ u8 r8 = shared192D0.unk11;
+
+ if (shared192D0.unk0[shared192D0.unk11] != 0)
+ {
+ int r5;
+
+ for (r5 = 0; r5 < 4; r5++)
+ {
+ if (shared192D0.unk0[r8] > shared192D0.unk0[r5])
+ {
+ if (sContestantStatus[r5].unk15_4)
+ shared192D0.unk4 = 50;
+ else
+ shared192D0.unk4 = 10;
+ shared192D0.unk8[0] = r5;
+ shared192D0.unk8[1] = 0xFF;
+ if (sub_80B9120())
+ r9++;
+ }
+ }
+ }
+ SetContestantStatusUnk13(shared192D0.unk11, 48);
+ if (r9 == 0)
+ SetContestantStatusUnk14(shared192D0.unk11, 0x36);
+}
+
+void ContestEffect_18(void)
+{
+ curContestant->unk11_2 = TRUE;
+ ContestEffect_09();
+ SetContestantStatusUnk13(shared192D0.unk11, 48);
+}
+
+void ContestEffect_19(void)
+{
+ u16 move = curContestant->currMove;
+ sub_80B9038(gContestMoves[move].contestCategory);
+ SetContestantStatusUnk13(shared192D0.unk11, 48);
+}
+
+void ContestEffect_20(void)
+{
+ sub_80B9038(CONTEST_CATEGORY_COOL);
+ SetContestantStatusUnk13(shared192D0.unk11, 48);
+}
+
+void ContestEffect_21(void)
+{
+ sub_80B9038(CONTEST_CATEGORY_BEAUTY);
+ SetContestantStatusUnk13(shared192D0.unk11, 48);
+}
+
+void ContestEffect_22(void)
+{
+ sub_80B9038(CONTEST_CATEGORY_CUTE);
+ SetContestantStatusUnk13(shared192D0.unk11, 48);
+}
+
+void ContestEffect_23(void)
+{
+ sub_80B9038(CONTEST_CATEGORY_SMART);
+ SetContestantStatusUnk13(shared192D0.unk11, 48);
+}
+
+void ContestEffect_24(void)
+{
+ sub_80B9038(CONTEST_CATEGORY_TOUGH);
+ SetContestantStatusUnk13(shared192D0.unk11, 48);
+}