summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/contest_effect.s194
-rw-r--r--src/contest_effect.c57
2 files changed, 57 insertions, 194 deletions
diff --git a/asm/contest_effect.s b/asm/contest_effect.s
index 6b65c85c8..fd648ab54 100644
--- a/asm/contest_effect.s
+++ b/asm/contest_effect.s
@@ -5,200 +5,6 @@
.text
- thumb_func_start ContestEffect_36
-ContestEffect_36: @ 80B89A4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _080B8A28 @ =gSharedMem + 0x192D0
- ldrb r2, [r0, 0x11]
- adds r1, r2, r0
- ldrb r1, [r1]
- mov r8, r0
- cmp r1, 0
- beq _080B8A3C
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- mov r1, r8
- subs r1, 0x70
- adds r0, r1
- ldrh r0, [r0, 0x6]
- mov r9, r0
- movs r4, 0
- mov r6, r8
- ldr r0, _080B8A2C @ =gContestMoves
- mov r12, r0
- movs r7, 0
-_080B89D4:
- ldrb r2, [r6, 0x11]
- adds r0, r2, r6
- ldrb r0, [r0]
- subs r0, 0x1
- adds r1, r4, r6
- ldrb r1, [r1]
- cmp r0, r1
- bne _080B8A34
- mov r1, r9
- lsls r0, r1, 3
- mov r1, r12
- adds r3, r0, r1
- ldrb r1, [r3, 0x1]
- lsls r1, 29
- mov r5, r8
- subs r5, 0x70
- adds r0, r7, r5
- ldrh r0, [r0, 0x6]
- lsls r0, 3
- add r0, r12
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- cmp r1, r0
- beq _080B8A34
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r5
- ldr r2, _080B8A30 @ =gContestEffects
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- lsls r0, 1
- ldrh r2, [r1, 0x2]
- adds r0, r2
- strh r0, [r1, 0x2]
- ldrb r0, [r6, 0x11]
- movs r1, 0x20
- bl SetContestantStatusUnk13
- b _080B8A3C
- .align 2, 0
-_080B8A28: .4byte gSharedMem + 0x192D0
-_080B8A2C: .4byte gContestMoves
-_080B8A30: .4byte gContestEffects
-_080B8A34:
- adds r7, 0x1C
- adds r4, 0x1
- cmp r4, 0x3
- ble _080B89D4
-_080B8A3C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_36
-
- thumb_func_start ContestEffect_37
-ContestEffect_37: @ 80B8A48
- push {r4-r7,lr}
- ldr r1, _080B8A94 @ =gSharedMem + 0x192D0
- ldrb r0, [r1, 0x11]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B8AB0
- movs r5, 0
- adds r4, r1, 0
- adds r6, r4, 0
- subs r6, 0x70
- adds r7, r6, 0
-_080B8A60:
- ldrb r2, [r4, 0x11]
- adds r0, r2, r4
- ldrb r0, [r0]
- subs r0, 0x1
- adds r1, r5, r4
- ldrb r1, [r1]
- cmp r0, r1
- bne _080B8AA8
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r2, r0, r7
- movs r0, 0x2
- ldrsh r1, [r2, r0]
- movs r3, 0x2
- ldrsh r0, [r6, r3]
- cmp r1, r0
- ble _080B8A98
- adds r0, r1, 0
- lsls r0, 1
- strh r0, [r2, 0x2]
- ldrb r0, [r4, 0x11]
- movs r1, 0x21
- bl SetContestantStatusUnk13
- b _080B8AA8
- .align 2, 0
-_080B8A94: .4byte gSharedMem + 0x192D0
-_080B8A98:
- cmp r1, r0
- bge _080B8AA8
- movs r0, 0
- strh r0, [r2, 0x2]
- ldrb r0, [r4, 0x11]
- movs r1, 0x22
- bl SetContestantStatusUnk13
-_080B8AA8:
- adds r6, 0x1C
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B8A60
-_080B8AB0:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_37
-
- thumb_func_start ContestEffect_38
-ContestEffect_38: @ 80B8AB8
- push {r4,r5,lr}
- ldr r4, _080B8AFC @ =gSharedMem + 0x192D0
- ldrb r2, [r4, 0x11]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r5, r4, 0
- subs r5, 0x70
- adds r1, r0, r5
- ldrb r3, [r1, 0xD]
- movs r0, 0xD
- ldrsb r0, [r1, r0]
- cmp r0, 0x1D
- bgt _080B8B00
- adds r0, r3, 0
- adds r0, 0xA
- strb r0, [r1, 0xD]
- ldrb r1, [r4, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r2, [r0, 0x10]
- movs r1, 0x31
- negs r1, r1
- ands r1, r2
- movs r2, 0x10
- orrs r1, r2
- strb r1, [r0, 0x10]
- ldrb r0, [r4, 0x11]
- movs r1, 0x23
- bl SetContestantStatusUnk13
- b _080B8B08
- .align 2, 0
-_080B8AFC: .4byte gSharedMem + 0x192D0
-_080B8B00:
- adds r0, r2, 0
- movs r1, 0x3A
- bl SetContestantStatusUnk13
-_080B8B08:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_38
-
thumb_func_start ContestEffect_39
ContestEffect_39: @ 80B8B10
push {r4,lr}
diff --git a/src/contest_effect.c b/src/contest_effect.c
index 83ac56a14..1d4f9d448 100644
--- a/src/contest_effect.c
+++ b/src/contest_effect.c
@@ -679,3 +679,60 @@ __attribute__((naked)) void ContestEffect_35(void)
"_080B89A0: .4byte gContestEffects");
}
#endif
+
+void ContestEffect_36(void)
+{
+ if (shared192D0.unk0[shared192D0.unk11] != 0)
+ {
+ u16 move = curContestant->currMove;
+ int i;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (shared192D0.unk0[shared192D0.unk11] - 1 == shared192D0.unk0[i] &&
+ gContestMoves[move].contestCategory != gContestMoves[sContestantStatus[i].currMove].contestCategory)
+ {
+ curContestant->appeal2 += gContestEffects[gContestMoves[move].effect].appeal * 2;
+ SetContestantStatusUnk13(shared192D0.unk11, 32);
+ break;
+ }
+ }
+ }
+}
+
+void ContestEffect_37(void)
+{
+ if (shared192D0.unk0[shared192D0.unk11] != 0)
+ {
+ int i;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (shared192D0.unk0[shared192D0.unk11] - 1 == shared192D0.unk0[i])
+ {
+ if (curContestant->appeal2 > sContestantStatus[i].appeal2)
+ {
+ curContestant->appeal2 *= 2;
+ SetContestantStatusUnk13(shared192D0.unk11, 33);
+ }
+ else if (curContestant->appeal2 < sContestantStatus[i].appeal2)
+ {
+ curContestant->appeal2 = 0;
+ SetContestantStatusUnk13(shared192D0.unk11, 34);
+ }
+ }
+ }
+ }
+}
+
+void ContestEffect_38(void)
+{
+ if (curContestant->unkD < 30)
+ {
+ curContestant->unkD += 10;
+ curContestant->unk10_4 = 1;
+ SetContestantStatusUnk13(shared192D0.unk11, 35);
+ }
+ else
+ SetContestantStatusUnk13(shared192D0.unk11, 58);
+}