diff options
author | PikalaxALT <pikalax1@gmail.com> | 2017-05-29 19:07:55 -0400 |
---|---|---|
committer | PikalaxALT <pikalax1@gmail.com> | 2017-05-29 19:07:55 -0400 |
commit | e18309037970a8034c4c3022c978bb7122984953 (patch) | |
tree | 7654a72115ca118fb51ee2266e6e58bca1fa2c33 | |
parent | 8c18d43811d663d9998e32444d137c6064eba840 (diff) |
SetTVMetatilesOnMap
-rwxr-xr-x | asm/tv.s | 56 | ||||
-rw-r--r-- | include/asm.inc.h | 2 | ||||
-rwxr-xr-x | src/tv.c | 20 |
3 files changed, 19 insertions, 59 deletions
@@ -7,62 +7,6 @@ .text - thumb_func_start SetTVMetatilesOnMap -SetTVMetatilesOnMap: @ 80BD98C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r9, r0 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - movs r5, 0 - cmp r5, r10 - bge _080BD9E0 - movs r1, 0xC0 - lsls r1, 4 - adds r0, r1, 0 - mov r8, r2 - mov r1, r8 - orrs r1, r0 - mov r8, r1 -_080BD9B2: - movs r4, 0 - adds r7, r5, 0x1 - cmp r4, r9 - bge _080BD9DA - mov r0, r8 - lsls r6, r0, 16 -_080BD9BE: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileBehaviorAt - cmp r0, 0x86 - bne _080BD9D4 - adds r0, r4, 0 - adds r1, r5, 0 - lsrs r2, r6, 16 - bl MapGridSetMetatileIdAt -_080BD9D4: - adds r4, 0x1 - cmp r4, r9 - blt _080BD9BE -_080BD9DA: - adds r5, r7, 0 - cmp r5, r10 - blt _080BD9B2 -_080BD9E0: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end SetTVMetatilesOnMap - thumb_func_start TurnOffTVScreen TurnOffTVScreen: @ 80BD9F0 push {lr} diff --git a/include/asm.inc.h b/include/asm.inc.h index 86a520666..e087acd28 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(s32, s32); +void UpdateTVScreensOnMap(int, int); void ResetGabbyAndTy(void); u8 sub_80BDEAC(u8 *); void sub_80BE160(TVShow *); @@ -294,11 +294,11 @@ u8 sub_80BD8B8(void) } u8 CheckForBigMovieOrEmergencyNewsOnTV(void); -void SetTVMetatilesOnMap(s32, s32, u16); +void SetTVMetatilesOnMap(int, int, u16); bool8 sub_80BECA0(void); bool8 IsTVShowInSearchOfTrainersAiring(void); -void UpdateTVScreensOnMap(s32 a0, s32 a1) +void UpdateTVScreensOnMap(int a0, int a1) { u8 bigMovieOrEmergencyNewsOnTv; FlagSet(SYS_TV_WATCH); @@ -323,6 +323,22 @@ void UpdateTVScreensOnMap(s32 a0, s32 a1) } } +void SetTVMetatilesOnMap(int width, int height, u16 tileId) +{ + int x; + int y; + for (y=0; y<height; y++) + { + for (x=0; x<width; x++) + { + if (MapGridGetMetatileBehaviorAt(x, y) == 0x86) + { + MapGridSetMetatileIdAt(x, y, tileId | 0xc00); + } + } + } +} + asm(".section .text_a"); s8 sub_80BF74C(TVShow tvShow[]); |