diff options
author | PikalaxALT <pikalax1@gmail.com> | 2017-05-29 18:47:32 -0400 |
---|---|---|
committer | PikalaxALT <pikalax1@gmail.com> | 2017-05-29 18:47:32 -0400 |
commit | 8c18d43811d663d9998e32444d137c6064eba840 (patch) | |
tree | b5856be84a3c4243800c27b5f1ef6482edeec5bd | |
parent | d3ed70f31029e3702d2a7e2eb1844bcdaad323b2 (diff) |
UpdateTVScreensOnMap
-rwxr-xr-x | asm/tv.s | 63 | ||||
-rw-r--r-- | include/asm.inc.h | 2 | ||||
-rwxr-xr-x | src/tv.c | 30 |
3 files changed, 31 insertions, 64 deletions
@@ -7,69 +7,6 @@ .text - thumb_func_start UpdateTVScreensOnMap -UpdateTVScreensOnMap: @ 80BD908 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, _080BD938 @ =0x00000831 - bl FlagSet - bl CheckForBigMovieOrEmergencyNewsOnTV - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BD92C - cmp r0, 0x2 - beq _080BD97E - ldr r0, _080BD93C @ =gSaveBlock1 - ldrh r0, [r0, 0x4] - cmp r0, 0xD - bne _080BD940 -_080BD92C: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl SetTVMetatilesOnMap - b _080BD97E - .align 2, 0 -_080BD938: .4byte 0x00000831 -_080BD93C: .4byte gSaveBlock1 -_080BD940: - ldr r0, _080BD984 @ =0x00000832 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080BD97E - bl sub_80BD8B8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080BD96E - bl sub_80BECA0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080BD96E - bl IsTVShowInSearchOfTrainersAiring - lsls r0, 24 - cmp r0, 0 - beq _080BD97E -_080BD96E: - ldr r0, _080BD988 @ =0x00000831 - bl FlagReset - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl SetTVMetatilesOnMap -_080BD97E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BD984: .4byte 0x00000832 -_080BD988: .4byte 0x00000831 - thumb_func_end UpdateTVScreensOnMap - thumb_func_start SetTVMetatilesOnMap SetTVMetatilesOnMap: @ 80BD98C push {r4-r7,lr} diff --git a/include/asm.inc.h b/include/asm.inc.h index dbd3f0820..86a520666 100644 --- a/include/asm.inc.h +++ b/include/asm.inc.h @@ -286,7 +286,7 @@ void sub_80BD674(void *, u32, u8); // asm/tv.o void ClearTVShowData(void); -void UpdateTVScreensOnMap(u32, u32); +void UpdateTVScreensOnMap(s32, s32); void ResetGabbyAndTy(void); u8 sub_80BDEAC(u8 *); void sub_80BE160(TVShow *); @@ -293,6 +293,36 @@ u8 sub_80BD8B8(void) return retval; } +u8 CheckForBigMovieOrEmergencyNewsOnTV(void); +void SetTVMetatilesOnMap(s32, s32, u16); +bool8 sub_80BECA0(void); +bool8 IsTVShowInSearchOfTrainersAiring(void); + +void UpdateTVScreensOnMap(s32 a0, s32 a1) +{ + u8 bigMovieOrEmergencyNewsOnTv; + FlagSet(SYS_TV_WATCH); + bigMovieOrEmergencyNewsOnTv = CheckForBigMovieOrEmergencyNewsOnTV(); + switch (bigMovieOrEmergencyNewsOnTv) + { + case 1: + SetTVMetatilesOnMap(a0, a1, 0x3); + break; + case 2: + break; + default: + if (gSaveBlock1.location.mapGroup == MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F && gSaveBlock1.location.mapNum == MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_1F) + { + SetTVMetatilesOnMap(a0, a1, 0x3); + } + else if (FlagGet(SYS_TV_START) && (sub_80BD8B8() != 0xff || sub_80BECA0() != 0xff || IsTVShowInSearchOfTrainersAiring())) + { + FlagReset(SYS_TV_WATCH); + SetTVMetatilesOnMap(a0, a1, 0x3); + } + } +} + asm(".section .text_a"); s8 sub_80BF74C(TVShow tvShow[]); |