summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-03-30 10:42:20 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-03-30 10:42:20 -0400
commitb71650219f89ce9d7de6d9377b9cd7c47e975b4d (patch)
treea1e68a8005dd2d289b71f700ebddf503edee3478
parentf1bae90be3aca017e19776c26906ddfd13147c0f (diff)
through ContestEffect_40
-rw-r--r--asm/contest_effect.s199
-rw-r--r--src/contest_effect.c50
2 files changed, 50 insertions, 199 deletions
diff --git a/asm/contest_effect.s b/asm/contest_effect.s
index fd648ab54..37149e452 100644
--- a/asm/contest_effect.s
+++ b/asm/contest_effect.s
@@ -5,205 +5,6 @@
.text
- thumb_func_start ContestEffect_39
-ContestEffect_39: @ 80B8B10
- push {r4,lr}
- ldr r3, _080B8B48 @ =gSharedMem + 0x192D0
- ldrb r1, [r3, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r4, r3, 0
- subs r4, 0x70
- adds r0, r4
- ldrb r1, [r0, 0x11]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldrb r1, [r3, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0xD]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080B8B4C
- adds r0, r1, 0
- movs r1, 0x24
- bl SetContestantStatusUnk13
- b _080B8B54
- .align 2, 0
-_080B8B48: .4byte gSharedMem + 0x192D0
-_080B8B4C:
- adds r0, r1, 0
- movs r1, 0x3B
- bl SetContestantStatusUnk13
-_080B8B54:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_39
-
- thumb_func_start ContestEffect_40
-ContestEffect_40: @ 80B8B5C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r1, _080B8BE4 @ =gSharedMem + 0x19204
- ldrb r0, [r1, 0x1]
- cmp r0, 0x4
- bne _080B8B6E
- b _080B8C76
-_080B8B6E:
- movs r6, 0
- adds r7, r1, 0
- adds r7, 0xCC
- adds r3, r1, 0
- adds r3, 0x5C
-_080B8B78:
- lsls r1, r6, 24
- asrs r1, 24
- mov r0, sp
- adds r2, r0, r1
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x19]
- strb r0, [r2]
- adds r1, 0x1
- lsls r1, 24
- lsrs r6, r1, 24
- asrs r1, 24
- cmp r1, 0x3
- ble _080B8B78
- ldrb r0, [r7, 0x11]
- mov r2, sp
- adds r1, r2, r0
- movs r0, 0xFF
- strb r0, [r1]
- movs r6, 0
- mov r12, r7
- movs r4, 0x70
- negs r4, r4
- adds r4, r7
- mov r8, r4
-_080B8BAE:
- movs r5, 0
-_080B8BB0:
- lsls r0, r5, 24
- asrs r2, r0, 24
- mov r0, r12
- ldrb r0, [r0, 0x11]
- cmp r2, r0
- beq _080B8BE8
- lsls r0, r6, 24
- asrs r3, r0, 24
- mov r1, sp
- adds r4, r1, r2
- ldrb r0, [r4]
- cmp r3, r0
- bne _080B8BE8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r8
- lsls r0, r3, 24
- lsrs r0, 24
- ldrb r1, [r1, 0x19]
- cmp r0, r1
- bne _080B8BE8
- adds r0, r3, 0x1
- strb r0, [r4]
- b _080B8BF8
- .align 2, 0
-_080B8BE4: .4byte gSharedMem + 0x19204
-_080B8BE8:
- lsls r0, r5, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r5, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080B8BB0
-_080B8BF8:
- cmp r5, 0x4
- beq _080B8C0C
- lsls r0, r6, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r6, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080B8BAE
-_080B8C0C:
- ldrb r0, [r7, 0x11]
- mov r4, sp
- adds r1, r4, r0
- movs r0, 0
- strb r0, [r1]
- ldrb r0, [r7, 0x11]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r3, r7, 0
- subs r3, 0x70
- adds r1, r3
- ldrb r2, [r1, 0x10]
- movs r0, 0x3F
- ands r0, r2
- movs r2, 0x40
- orrs r0, r2
- strb r0, [r1, 0x10]
- movs r6, 0
-_080B8C32:
- lsls r1, r6, 24
- asrs r1, 24
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- mov r4, sp
- adds r2, r4, r1
- ldrb r2, [r2]
- strb r2, [r0, 0x19]
- adds r1, 0x1
- lsls r1, 24
- lsrs r6, r1, 24
- asrs r1, 24
- cmp r1, 0x3
- ble _080B8C32
- ldrb r0, [r7, 0x11]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r7, 0
- subs r0, 0x70
- adds r1, r0
- ldrb r2, [r1, 0x11]
- movs r0, 0x4
- negs r0, r0
- ands r0, r2
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r1, 0x11]
- ldrb r0, [r7, 0x11]
- movs r1, 0x25
- bl SetContestantStatusUnk13
-_080B8C76:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_40
-
thumb_func_start ContestEffect_41
ContestEffect_41: @ 80B8C84
push {r4-r7,lr}
diff --git a/src/contest_effect.c b/src/contest_effect.c
index 1d4f9d448..fe6b18d99 100644
--- a/src/contest_effect.c
+++ b/src/contest_effect.c
@@ -736,3 +736,53 @@ void ContestEffect_38(void)
else
SetContestantStatusUnk13(shared192D0.unk11, 58);
}
+
+void ContestEffect_39(void)
+{
+ curContestant->unk11_5 = TRUE;
+ if (curContestant->unkD != 0)
+ SetContestantStatusUnk13(shared192D0.unk11, 36);
+ else
+ SetContestantStatusUnk13(shared192D0.unk11, 59);
+}
+
+void ContestEffect_40(void)
+{
+ s8 i;
+ s8 j;
+ u8 sp00[4];
+
+ if (sContest.turnNumber != 4)
+ {
+ for (i = 0; i < 4; i++)
+ sp00[i] = sContestantStatus[i].unk19;
+
+ sp00[shared192D0.unk11] = 0xFF;
+
+ for (i = 0; i < 4; i++)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ if (j != shared192D0.unk11 &&
+ i == sp00[j] &&
+ sp00[j] == sContestantStatus[j].unk19)
+ {
+ sp00[j]++;
+ break;
+ }
+ }
+ if (j == 4)
+ break;
+ }
+
+ sp00[shared192D0.unk11] = 0;
+ curContestant->unk10_6 = 1;
+
+ for (i = 0; i < 4; i++)
+ {
+ sContestantStatus[i].unk19 = sp00[i];
+ }
+ curContestant->unk11_0 = 1;
+ SetContestantStatusUnk13(shared192D0.unk11, 37);
+ }
+}