summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/contest_effect.s217
-rw-r--r--src/contest_effect.c62
2 files changed, 62 insertions, 217 deletions
diff --git a/asm/contest_effect.s b/asm/contest_effect.s
index bcc49aa02..ff19558d6 100644
--- a/asm/contest_effect.s
+++ b/asm/contest_effect.s
@@ -5,223 +5,6 @@
.text
- thumb_func_start ContestEffect_31
-ContestEffect_31: @ 80B86A0
- push {r4-r7,lr}
- movs r1, 0
- movs r3, 0
- ldr r4, _080B86EC @ =gSharedMem + 0x192D0
- ldrb r0, [r4, 0x11]
- adds r0, r4
- ldrb r5, [r0]
- movs r2, 0
- adds r6, r4, 0
- subs r6, 0x70
-_080B86B4:
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r5, r0
- bls _080B86C4
- adds r0, r2, r6
- movs r7, 0x2
- ldrsh r0, [r0, r7]
- adds r3, r0
-_080B86C4:
- adds r2, 0x1C
- adds r1, 0x1
- cmp r1, 0x3
- ble _080B86B4
- cmp r3, 0
- bge _080B86D2
- movs r3, 0
-_080B86D2:
- ldr r4, _080B86EC @ =gSharedMem + 0x192D0
- ldrb r2, [r4, 0x11]
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B86E2
- cmp r3, 0
- bne _080B86F0
-_080B86E2:
- adds r0, r2, 0
- movs r1, 0x12
- bl SetContestantStatusUnk13
- b _080B8710
- .align 2, 0
-_080B86EC: .4byte gSharedMem + 0x192D0
-_080B86F0:
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r0, r4, 0
- subs r0, 0x70
- adds r1, r0
- lsrs r0, r3, 31
- adds r0, r3, r0
- asrs r0, 1
- ldrh r2, [r1, 0x2]
- adds r0, r2
- strh r0, [r1, 0x2]
- ldrb r0, [r4, 0x11]
- movs r1, 0x11
- bl SetContestantStatusUnk13
-_080B8710:
- ldr r4, _080B873C @ =gSharedMem + 0x192D0
- ldrb r1, [r4, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r5, r4, 0
- subs r5, 0x70
- adds r0, r5
- movs r7, 0x2
- ldrsh r0, [r0, r7]
- bl sub_80B9224
- ldrb r2, [r4, 0x11]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r5
- strh r0, [r1, 0x2]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B873C: .4byte gSharedMem + 0x192D0
- thumb_func_end ContestEffect_31
-
- thumb_func_start ContestEffect_32
-ContestEffect_32: @ 80B8740
- push {r4-r7,lr}
- movs r6, 0
- ldr r0, _080B8794 @ =gSharedMem + 0x192D0
- ldrb r1, [r0, 0x11]
- adds r3, r1, r0
- ldrb r1, [r3]
- adds r4, r0, 0
- cmp r1, 0
- beq _080B8788
- movs r2, 0
- adds r7, r4, 0
- adds r0, r1, 0
- subs r1, r0, 0x1
- movs r3, 0
- adds r5, r4, 0
- subs r5, 0x70
-_080B8760:
- adds r0, r2, r7
- ldrb r0, [r0]
- cmp r1, r0
- bne _080B876C
- adds r0, r3, r5
- ldrh r6, [r0, 0x2]
-_080B876C:
- adds r3, 0x1C
- adds r2, 0x1
- cmp r2, 0x3
- ble _080B8760
- adds r0, r4, 0
- ldrb r2, [r0, 0x11]
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B8788
- lsls r0, r6, 16
- asrs r3, r0, 16
- cmp r3, 0
- bgt _080B8798
-_080B8788:
- ldrb r0, [r4, 0x11]
- movs r1, 0x14
- bl SetContestantStatusUnk13
- b _080B87B2
- .align 2, 0
-_080B8794: .4byte gSharedMem + 0x192D0
-_080B8798:
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r0, r4, 0
- subs r0, 0x70
- adds r1, r0
- ldrh r0, [r1, 0x2]
- adds r0, r3, r0
- strh r0, [r1, 0x2]
- ldrb r0, [r4, 0x11]
- movs r1, 0x13
- bl SetContestantStatusUnk13
-_080B87B2:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_32
-
- thumb_func_start ContestEffect_33
-ContestEffect_33: @ 80B87B8
- push {lr}
- ldr r0, _080B87D8 @ =gSharedMem + 0x192D0
- ldrb r2, [r0, 0x11]
- adds r1, r2, r0
- ldrb r3, [r1]
- mov r12, r0
- cmp r3, 0
- bne _080B87DC
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- mov r1, r12
- subs r1, 0x70
- adds r0, r1
- movs r1, 0xA
- b _080B87EE
- .align 2, 0
-_080B87D8: .4byte gSharedMem + 0x192D0
-_080B87DC:
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- mov r1, r12
- subs r1, 0x70
- adds r0, r1
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
-_080B87EE:
- strh r1, [r0, 0x2]
- cmp r3, 0
- bne _080B8800
- mov r1, r12
- ldrb r0, [r1, 0x11]
- movs r1, 0x15
- bl SetContestantStatusUnk13
- b _080B882A
-_080B8800:
- cmp r3, 0x1
- bne _080B8810
- mov r1, r12
- ldrb r0, [r1, 0x11]
- movs r1, 0x16
- bl SetContestantStatusUnk13
- b _080B882A
-_080B8810:
- cmp r3, 0x2
- bne _080B8820
- mov r1, r12
- ldrb r0, [r1, 0x11]
- movs r1, 0x17
- bl SetContestantStatusUnk13
- b _080B882A
-_080B8820:
- mov r1, r12
- ldrb r0, [r1, 0x11]
- movs r1, 0x18
- bl SetContestantStatusUnk13
-_080B882A:
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_33
-
thumb_func_start ContestEffect_34
ContestEffect_34: @ 80B8830
push {r4,lr}
diff --git a/src/contest_effect.c b/src/contest_effect.c
index 546ab0fc8..415732003 100644
--- a/src/contest_effect.c
+++ b/src/contest_effect.c
@@ -6,6 +6,7 @@
u8 sub_80B9120(void);
bool8 sub_80B90C0(u8);
void sub_80B9038(u8);
+s16 sub_80B9224(s16);
extern bool8 const gComboStarterLookupTable[];
@@ -443,3 +444,64 @@ void ContestEffect_30(void)
SetContestantStatusUnk13(shared192D0.unk11, 16);
}
}
+
+void ContestEffect_31(void)
+{
+ int r1;
+ int r3;
+
+ for (r1 = 0, r3 = 0; r1 < 4; r1++)
+ {
+ if (shared192D0.unk0[shared192D0.unk11] > shared192D0.unk0[r1])
+ r3 += sContestantStatus[r1].appeal2;
+ }
+ if (r3 < 0)
+ r3 = 0;
+ if (shared192D0.unk0[shared192D0.unk11] == 0 || r3 == 0)
+ SetContestantStatusUnk13(shared192D0.unk11, 18);
+ else
+ {
+ curContestant->appeal2 += r3 / 2;
+ SetContestantStatusUnk13(shared192D0.unk11, 17);
+ }
+ sContestantStatus[shared192D0.unk11].appeal2 = sub_80B9224(sContestantStatus[shared192D0.unk11].appeal2);
+}
+
+void ContestEffect_32(void)
+{
+ s16 r6 = 0;
+
+ if (shared192D0.unk0[shared192D0.unk11] != 0)
+ {
+ int i;
+ for (i = 0; i < 4; i++)
+ {
+ if (shared192D0.unk0[shared192D0.unk11] - 1 == shared192D0.unk0[i])
+ r6 = sContestantStatus[i].appeal2;
+ }
+ }
+ if (shared192D0.unk0[shared192D0.unk11] == 0 || r6 <= 0)
+ SetContestantStatusUnk13(shared192D0.unk11, 20);
+ else
+ {
+ curContestant->appeal2 += r6;
+ SetContestantStatusUnk13(shared192D0.unk11, 19);
+ }
+}
+
+void ContestEffect_33(void)
+{
+ u8 r3 = shared192D0.unk0[shared192D0.unk11];
+ if (r3 == 0)
+ sContestantStatus[shared192D0.unk11].appeal2 = 10;
+ else
+ sContestantStatus[shared192D0.unk11].appeal2 = 20 * r3;
+ if (r3 == 0)
+ SetContestantStatusUnk13(shared192D0.unk11, 21);
+ else if (r3 == 1)
+ SetContestantStatusUnk13(shared192D0.unk11, 22);
+ else if (r3 == 2)
+ SetContestantStatusUnk13(shared192D0.unk11, 23);
+ else
+ SetContestantStatusUnk13(shared192D0.unk11, 24);
+}