summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-03-29 12:01:29 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-03-29 12:01:29 -0400
commit18e6512599ad5a52ee0046f2504a7b357cc80894 (patch)
treef5454bbb72ca858a372d2f71ac0e84607e2d43db
parentaf266c9e1bc286e80a451db7e2f95116655a4827 (diff)
ContestEffect_25
-rw-r--r--asm/contest_effect.s61
-rw-r--r--include/contest.h1
-rw-r--r--src/contest_effect.c31
3 files changed, 32 insertions, 61 deletions
diff --git a/asm/contest_effect.s b/asm/contest_effect.s
index 35c4b3518..b3d865b3d 100644
--- a/asm/contest_effect.s
+++ b/asm/contest_effect.s
@@ -5,67 +5,6 @@
.text
- thumb_func_start ContestEffect_25
-ContestEffect_25: @ 80B829C
- push {r4-r7,lr}
- movs r4, 0
- ldr r0, _080B82E0 @ =gSharedMem + 0x192D0
- ldrb r1, [r0, 0x11]
- adds r1, r0
- ldrb r1, [r1]
- adds r7, r0, 0
- cmp r1, 0x3
- beq _080B82F4
- movs r5, 0
- adds r6, r7, 0
-_080B82B2:
- ldrb r0, [r6, 0x11]
- adds r0, r6
- ldrb r0, [r0]
- adds r0, 0x1
- adds r1, r5, r6
- ldrb r1, [r1]
- cmp r0, r1
- bne _080B82EE
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80B90C0
- lsls r0, 24
- cmp r0, 0
- beq _080B82E4
- adds r0, r4, 0
- bl sub_80B157C
- adds r0, r4, 0
- movs r1, 0xA
- b _080B82E8
- .align 2, 0
-_080B82E0: .4byte gSharedMem + 0x192D0
-_080B82E4:
- adds r0, r4, 0
- movs r1, 0x3C
-_080B82E8:
- bl SetContestantStatusUnk13
- movs r4, 0x1
-_080B82EE:
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B82B2
-_080B82F4:
- ldrb r0, [r7, 0x11]
- movs r1, 0x9
- bl SetContestantStatusUnk13
- cmp r4, 0
- bne _080B8308
- ldrb r0, [r7, 0x11]
- movs r1, 0x36
- bl SetContestantStatusUnk14
-_080B8308:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_25
-
thumb_func_start ContestEffect_26
ContestEffect_26: @ 80B8310
push {r4-r7,lr}
diff --git a/include/contest.h b/include/contest.h
index 9ac51b536..24f3331b7 100644
--- a/include/contest.h
+++ b/include/contest.h
@@ -279,5 +279,6 @@ extern u8 gUnknown_02038696[4];
extern u8 gUnknown_0203869B;
void SetContestantStatusUnk13(u8 a, u8 b);
void SetContestantStatusUnk14(u8 a, u8 b);
+void sub_80B157C(u8 p);
#endif // GUARD_CONTEST_H
diff --git a/src/contest_effect.c b/src/contest_effect.c
index 7a6ffc0b0..c38cb2f96 100644
--- a/src/contest_effect.c
+++ b/src/contest_effect.c
@@ -270,3 +270,34 @@ void ContestEffect_24(void)
sub_80B9038(CONTEST_CATEGORY_TOUGH);
SetContestantStatusUnk13(shared192D0.unk11, 48);
}
+
+void ContestEffect_25(void)
+{
+ bool32 r4 = FALSE;
+
+ if (shared192D0.unk0[shared192D0.unk11] != 3)
+ {
+ int r5;
+
+ for (r5 = 0; r5 < 4; r5++)
+ {
+ if (shared192D0.unk0[shared192D0.unk11] + 1 == shared192D0.unk0[r5])
+ {
+ if (sub_80B90C0(r5))
+ {
+ sub_80B157C(r5);
+ SetContestantStatusUnk13(r5, 10);
+ r4 = TRUE;
+ }
+ else
+ {
+ SetContestantStatusUnk13(r5, 60);
+ r4 = TRUE;
+ }
+ }
+ }
+ }
+ SetContestantStatusUnk13(shared192D0.unk11, 9);
+ if (!r4)
+ SetContestantStatusUnk14(shared192D0.unk11, 0x36);
+}