summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/contest_effect.s222
-rw-r--r--src/contest_effect.c67
2 files changed, 67 insertions, 222 deletions
diff --git a/asm/contest_effect.s b/asm/contest_effect.s
index cbab264d5..bcc49aa02 100644
--- a/asm/contest_effect.s
+++ b/asm/contest_effect.s
@@ -5,228 +5,6 @@
.text
- thumb_func_start ContestEffect_27
-ContestEffect_27: @ 80B84F8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0
- mov r8, r0
- movs r6, 0
- ldr r7, _080B8580 @ =gSharedMem + 0x192D0
- adds r5, r7, 0
- subs r5, 0x63
-_080B850A:
- ldrb r0, [r7, 0x11]
- adds r0, r7
- adds r1, r6, r7
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080B8556
- movs r0, 0
- ldrsb r0, [r5, r0]
- cmp r0, 0
- ble _080B8556
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80B90C0
- lsls r0, 24
- cmp r0, 0
- beq _080B8556
- movs r0, 0
- strb r0, [r5]
- ldrb r1, [r5, 0x3]
- movs r2, 0x31
- negs r2, r2
- adds r0, r2, 0
- ands r1, r0
- movs r0, 0x20
- orrs r1, r0
- strb r1, [r5, 0x3]
- adds r0, r4, 0
- movs r1, 0xD
- bl SetContestantStatusUnk13
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
-_080B8556:
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _080B850A
- ldr r4, _080B8580 @ =gSharedMem + 0x192D0
- ldrb r0, [r4, 0x11]
- movs r1, 0xC
- bl SetContestantStatusUnk13
- mov r0, r8
- cmp r0, 0
- bne _080B8576
- ldrb r0, [r4, 0x11]
- movs r1, 0x39
- bl SetContestantStatusUnk14
-_080B8576:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8580: .4byte gSharedMem + 0x192D0
- thumb_func_end ContestEffect_27
-
- thumb_func_start ContestEffect_28
-ContestEffect_28: @ 80B8584
- push {r4-r7,lr}
- movs r7, 0
- movs r5, 0
- ldr r4, _080B85B0 @ =gSharedMem + 0x192D0
- movs r6, 0
-_080B858E:
- ldrb r0, [r4, 0x11]
- adds r0, r4
- adds r1, r5, r4
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080B85CE
- adds r0, r4, 0
- subs r0, 0x70
- adds r0, r6, r0
- ldrb r0, [r0, 0xD]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- ble _080B85B4
- movs r0, 0x28
- b _080B85B6
- .align 2, 0
-_080B85B0: .4byte gSharedMem + 0x192D0
-_080B85B4:
- movs r0, 0xA
-_080B85B6:
- 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 _080B85CE
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_080B85CE:
- adds r6, 0x1C
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B858E
- ldr r4, _080B85F4 @ =gSharedMem + 0x192D0
- ldrb r0, [r4, 0x11]
- movs r1, 0xE
- bl SetContestantStatusUnk13
- cmp r7, 0
- bne _080B85EC
- ldrb r0, [r4, 0x11]
- movs r1, 0x39
- bl SetContestantStatusUnk14
-_080B85EC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B85F4: .4byte gSharedMem + 0x192D0
- thumb_func_end ContestEffect_28
-
- thumb_func_start ContestEffect_29
-ContestEffect_29: @ 80B85F8
- push {r4,lr}
- ldr r0, _080B863C @ =gUnknown_02038696
- ldr r4, _080B8640 @ =gSharedMem + 0x192D0
- ldrb r2, [r4, 0x11]
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B8636
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r0, r4, 0
- subs r0, 0x70
- adds r1, r0
- ldrh r0, [r1, 0x6]
- ldr r3, _080B8644 @ =gContestEffects
- ldr r2, _080B8648 @ =gContestMoves
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x1]
- lsls r0, 1
- ldrh r2, [r1, 0x2]
- adds r0, r2
- strh r0, [r1, 0x2]
- ldrb r0, [r4, 0x11]
- movs r1, 0xF
- bl SetContestantStatusUnk13
-_080B8636:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B863C: .4byte gUnknown_02038696
-_080B8640: .4byte gSharedMem + 0x192D0
-_080B8644: .4byte gContestEffects
-_080B8648: .4byte gContestMoves
- thumb_func_end ContestEffect_29
-
- thumb_func_start ContestEffect_30
-ContestEffect_30: @ 80B864C
- push {r4,lr}
- ldr r0, _080B8690 @ =gUnknown_02038696
- ldr r4, _080B8694 @ =gSharedMem + 0x192D0
- ldrb r2, [r4, 0x11]
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _080B868A
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r0, r4, 0
- subs r0, 0x70
- adds r1, r0
- ldrh r0, [r1, 0x6]
- ldr r3, _080B8698 @ =gContestEffects
- ldr r2, _080B869C @ =gContestMoves
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x1]
- lsls r0, 1
- ldrh r2, [r1, 0x2]
- adds r0, r2
- strh r0, [r1, 0x2]
- ldrb r0, [r4, 0x11]
- movs r1, 0x10
- bl SetContestantStatusUnk13
-_080B868A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8690: .4byte gUnknown_02038696
-_080B8694: .4byte gSharedMem + 0x192D0
-_080B8698: .4byte gContestEffects
-_080B869C: .4byte gContestMoves
- thumb_func_end ContestEffect_30
-
thumb_func_start ContestEffect_31
ContestEffect_31: @ 80B86A0
push {r4-r7,lr}
diff --git a/src/contest_effect.c b/src/contest_effect.c
index bbd56493b..546ab0fc8 100644
--- a/src/contest_effect.c
+++ b/src/contest_effect.c
@@ -376,3 +376,70 @@ void ContestEffect_26(void)
if (r9 == 0)
SetContestantStatusUnk14(shared192D0.unk11, 0x36);
}
+
+void ContestEffect_27(void)
+{
+ u8 r8 = 0;
+ int r6;
+
+ for (r6 = 0; r6 < 4; r6++)
+ {
+ if (shared192D0.unk0[shared192D0.unk11] > shared192D0.unk0[r6] &&
+ sContestantStatus[r6].unkD > 0 &&
+ sub_80B90C0(r6))
+ {
+ sContestantStatus[r6].unkD = 0;
+ sContestantStatus[r6].unk10_4 = 2;
+ SetContestantStatusUnk13(r6, 13);
+ r8++;
+ }
+ }
+
+ SetContestantStatusUnk13(shared192D0.unk11, 12);
+ if (r8 == 0)
+ SetContestantStatusUnk14(shared192D0.unk11, 0x39);
+}
+
+void ContestEffect_28(void)
+{
+ u8 r7 = 0;
+ int r5;
+
+ for (r5 = 0; r5 < 4; r5++)
+ {
+ if (shared192D0.unk0[shared192D0.unk11] > shared192D0.unk0[r5])
+ {
+ if (sContestantStatus[r5].unkD > 0)
+ shared192D0.unk4 = 40;
+ else
+ shared192D0.unk4 = 10;
+ shared192D0.unk8[0] = r5;
+ shared192D0.unk8[1] = 0xFF;
+ if (sub_80B9120())
+ r7++;
+ }
+ }
+ SetContestantStatusUnk13(shared192D0.unk11, 14);
+ if (r7 == 0)
+ SetContestantStatusUnk14(shared192D0.unk11, 0x39);
+}
+
+void ContestEffect_29(void)
+{
+ if (gUnknown_02038696[shared192D0.unk11] == 0)
+ {
+ u16 move = curContestant->currMove;
+ curContestant->appeal2 += 2 * gContestEffects[gContestMoves[move].effect].appeal;
+ SetContestantStatusUnk13(shared192D0.unk11, 15);
+ }
+}
+
+void ContestEffect_30(void)
+{
+ if (gUnknown_02038696[shared192D0.unk11] == 3)
+ {
+ u16 move = curContestant->currMove;
+ curContestant->appeal2 += 2 * gContestEffects[gContestMoves[move].effect].appeal;
+ SetContestantStatusUnk13(shared192D0.unk11, 16);
+ }
+}