diff options
-rw-r--r-- | asm/tv.s | 57 | ||||
-rw-r--r-- | include/global.h | 4 | ||||
-rw-r--r-- | src/tv.c | 14 |
3 files changed, 17 insertions, 58 deletions
@@ -1613,63 +1613,6 @@ _080BE474: .4byte gSaveBlock2 .section .text_80BE8EC - - thumb_func_start sub_80C004C -sub_80C004C: @ 80C004C - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - lsls r0, r2, 24 - lsrs r0, 24 - bl GetLinkPlayerTrainerId - adds r5, r0, 0 - movs r2, 0xFF - ands r0, r2 - adds r1, r4, 0 - adds r1, 0x22 - ldrb r1, [r1] - cmp r0, r1 - bne _080C007C - lsrs r0, r5, 8 - ands r0, r2 - adds r1, r4, 0 - adds r1, 0x23 - ldrb r1, [r1] - cmp r0, r1 - bne _080C007C - movs r0, 0 - b _080C00AC -_080C007C: - adds r1, r4, 0 - adds r1, 0x20 - ldrb r0, [r1] - adds r2, r4, 0 - adds r2, 0x22 - strb r0, [r2] - adds r3, r4, 0 - adds r3, 0x21 - ldrb r0, [r3] - adds r2, 0x1 - strb r0, [r2] - strb r5, [r1] - lsrs r0, r5, 8 - strb r0, [r3] - adds r1, r6, 0 - adds r0, r4, 0 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r0, 0x1 - strb r0, [r6, 0x1] -_080C00AC: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C004C - thumb_func_start sub_80C00B4 sub_80C00B4: @ 80C00B4 push {r4-r6,lr} diff --git a/include/global.h b/include/global.h index 3454ab0b8..a294b3e01 100644 --- a/include/global.h +++ b/include/global.h @@ -194,7 +194,9 @@ struct EasyChatPair struct TVShowCommon { /*0x00*/ u8 var00; /*0x01*/ u8 var01; - /*0x02*/ u8 pad02[32]; + /*0x02*/ u8 pad02[30]; + /*0x20*/ u8 srcTrainerIdLo; + /*0x21*/ u8 srcTrainerIdHi; /*0x22*/ u8 trainerIdLo; /*0x23*/ u8 trainerIdHi; }; @@ -1613,6 +1613,20 @@ _080C0048: .4byte gUnknown_03000722\n\ } #endif +u8 sub_80C004C(TVShow *tv1, TVShow *tv2, u8 idx) { + u32 linkTrainerId = GetLinkPlayerTrainerId(idx); + if ((linkTrainerId & 0xFF) == tv2->common.trainerIdLo && ((linkTrainerId >> 8) & 0xFF) == tv2->common.trainerIdHi) { + return FALSE; + } + tv2->common.trainerIdLo = tv2->common.srcTrainerIdLo; + tv2->common.trainerIdHi = tv2->common.srcTrainerIdHi; + tv2->common.srcTrainerIdLo = linkTrainerId & 0xFF; + tv2->common.srcTrainerIdHi = linkTrainerId >> 8; + *tv1 = *tv2; + tv1->common.var01 = 1; + return TRUE; +} + asm(".section .dotvshow\n"); void DoTVShowPokemonFanClubLetter(void); |