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