diff options
| -rw-r--r-- | asm/contest_effect.s | 61 | ||||
| -rw-r--r-- | include/contest.h | 1 | ||||
| -rw-r--r-- | src/contest_effect.c | 31 | 
3 files changed, 32 insertions, 61 deletions
| diff --git a/asm/contest_effect.s b/asm/contest_effect.s index 35c4b3518..b3d865b3d 100644 --- a/asm/contest_effect.s +++ b/asm/contest_effect.s @@ -5,67 +5,6 @@  	.text -	thumb_func_start ContestEffect_25 -ContestEffect_25: @ 80B829C -	push {r4-r7,lr} -	movs r4, 0 -	ldr r0, _080B82E0 @ =gSharedMem + 0x192D0 -	ldrb r1, [r0, 0x11] -	adds r1, r0 -	ldrb r1, [r1] -	adds r7, r0, 0 -	cmp r1, 0x3 -	beq _080B82F4 -	movs r5, 0 -	adds r6, r7, 0 -_080B82B2: -	ldrb r0, [r6, 0x11] -	adds r0, r6 -	ldrb r0, [r0] -	adds r0, 0x1 -	adds r1, r5, r6 -	ldrb r1, [r1] -	cmp r0, r1 -	bne _080B82EE -	lsls r0, r5, 24 -	lsrs r4, r0, 24 -	adds r0, r4, 0 -	bl sub_80B90C0 -	lsls r0, 24 -	cmp r0, 0 -	beq _080B82E4 -	adds r0, r4, 0 -	bl sub_80B157C -	adds r0, r4, 0 -	movs r1, 0xA -	b _080B82E8 -	.align 2, 0 -_080B82E0: .4byte gSharedMem + 0x192D0 -_080B82E4: -	adds r0, r4, 0 -	movs r1, 0x3C -_080B82E8: -	bl SetContestantStatusUnk13 -	movs r4, 0x1 -_080B82EE: -	adds r5, 0x1 -	cmp r5, 0x3 -	ble _080B82B2 -_080B82F4: -	ldrb r0, [r7, 0x11] -	movs r1, 0x9 -	bl SetContestantStatusUnk13 -	cmp r4, 0 -	bne _080B8308 -	ldrb r0, [r7, 0x11] -	movs r1, 0x36 -	bl SetContestantStatusUnk14 -_080B8308: -	pop {r4-r7} -	pop {r0} -	bx r0 -	thumb_func_end ContestEffect_25 -  	thumb_func_start ContestEffect_26  ContestEffect_26: @ 80B8310  	push {r4-r7,lr} diff --git a/include/contest.h b/include/contest.h index 9ac51b536..24f3331b7 100644 --- a/include/contest.h +++ b/include/contest.h @@ -279,5 +279,6 @@ extern u8 gUnknown_02038696[4];  extern u8 gUnknown_0203869B;  void SetContestantStatusUnk13(u8 a, u8 b);  void SetContestantStatusUnk14(u8 a, u8 b); +void sub_80B157C(u8 p);  #endif // GUARD_CONTEST_H diff --git a/src/contest_effect.c b/src/contest_effect.c index 7a6ffc0b0..c38cb2f96 100644 --- a/src/contest_effect.c +++ b/src/contest_effect.c @@ -270,3 +270,34 @@ void ContestEffect_24(void)      sub_80B9038(CONTEST_CATEGORY_TOUGH);      SetContestantStatusUnk13(shared192D0.unk11, 48);  } + +void ContestEffect_25(void) +{ +    bool32 r4 = FALSE; + +    if (shared192D0.unk0[shared192D0.unk11] != 3) +    { +        int r5; + +        for (r5 = 0; r5 < 4; r5++) +        { +            if (shared192D0.unk0[shared192D0.unk11] + 1 == shared192D0.unk0[r5]) +            { +                if (sub_80B90C0(r5)) +                { +                    sub_80B157C(r5); +                    SetContestantStatusUnk13(r5, 10); +                    r4 = TRUE; +                } +                else +                { +                    SetContestantStatusUnk13(r5, 60); +                    r4 = TRUE; +                } +            } +        } +    } +    SetContestantStatusUnk13(shared192D0.unk11, 9); +    if (!r4) +        SetContestantStatusUnk14(shared192D0.unk11, 0x36); +} | 
