diff options
-rw-r--r-- | asm/tv.s | 75 | ||||
-rw-r--r-- | include/global.h | 4 | ||||
-rw-r--r-- | src/tv.c | 26 |
3 files changed, 28 insertions, 77 deletions
@@ -3121,81 +3121,6 @@ _080BF4F0: .4byte gSaveBlock1 + 0x2738 .section .text_80BF544 - thumb_func_start sub_80BF79C -sub_80BF79C: @ 80BF79C - push {r4-r6,lr} - adds r4, r0, 0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 24 - lsrs r2, r0, 24 - adds r5, r4, 0x4 - ldr r6, _080BF7B8 @ =0x0000ffff - b _080BF7C2 - .align 2, 0 -_080BF7B8: .4byte 0x0000ffff -_080BF7BC: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_080BF7C2: - cmp r2, 0x6 - bne _080BF7C8 - movs r2, 0 -_080BF7C8: - lsls r1, r2, 1 - adds r0, r5, r1 - ldrh r0, [r0] - adds r3, r4, 0x4 - cmp r0, r6 - beq _080BF7BC - ldr r0, _080BF7E4 @ =gStringVar3 - adds r1, r3, r1 - ldrh r1, [r1] - bl sub_80EB3FC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BF7E4: .4byte gStringVar3 - thumb_func_end sub_80BF79C - - thumb_func_start sub_80BF7E8 -sub_80BF7E8: @ 80BF7E8 - push {lr} - adds r2, r0, 0 - movs r3, 0 - movs r1, 0 - ldrb r0, [r2, 0x4] - cmp r0, 0xFF - beq _080BF814 - adds r2, 0x4 -_080BF7F8: - adds r0, r2, r1 - ldrb r0, [r0] - adds r0, r3, r0 - lsls r0, 16 - lsrs r3, r0, 16 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xA - bhi _080BF814 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080BF7F8 -_080BF814: - movs r0, 0x7 - ands r3, r0 - adds r0, r3, 0 - pop {r1} - bx r1 - thumb_func_end sub_80BF7E8 - thumb_func_start sub_80BF820 sub_80BF820: @ 80BF820 push {r4-r7,lr} diff --git a/include/global.h b/include/global.h index 4f1e189ba..f08c76bac 100644 --- a/include/global.h +++ b/include/global.h @@ -210,7 +210,7 @@ struct TVShowRecentHappenings { /*0x00*/ u8 var00; /*0x01*/ u8 var01; /*0x02*/ u16 var02; - u8 pad04[12]; + /*0x04*/ u16 var04[6]; /*0x10*/ u8 var10[8]; /*0x18*/ u8 var18; u8 pad19[10]; @@ -222,7 +222,7 @@ struct TVShowFanclubOpinions { /*0x02*/ u16 var02; /*0x04*/ u8 var04A:4; u8 var04B:4; - /*0x04*/ u8 var05[8]; + /*0x05*/ u8 var05[8]; /*0x0D*/ u8 var0D; /*0x0E*/ u8 var0E; /*0x0F*/ u8 var0F; @@ -437,6 +437,32 @@ bool8 sub_80BF77C(u16 value) return TRUE; } +void sub_80BF79C(struct TVShowRecentHappenings *arg0) // TVShowFanClubLetter? +{ + u8 i = Random() % 6; + while (1) { + if (i == 6) + i = 0; + if (arg0->var04[i] != 0xFFFF) + break; + i ++; + } + sub_80EB3FC(gStringVar3, arg0->var04[i]); +} + +u8 sub_80BF7E8(struct TVShowFanClubLetter *arg0) // TVShowRecentHappenings? +{ + u16 flagsum = 0; + u8 i = 0; + if (arg0->pad04[0] != 0xFF) { + while (i < 11 && arg0->pad04[i] != 0xFF) { + flagsum += arg0->pad04[i]; + i++; + } + } + return flagsum & 0x7; +} + asm(".section .text_c"); void DoTVShowPokemonNewsMassOutbreak(void) |