diff options
-rw-r--r-- | asm/contest_effect.s | 217 | ||||
-rw-r--r-- | src/contest_effect.c | 62 |
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); +} |