summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalax1@gmail.com>2017-05-29 19:07:55 -0400
committerPikalaxALT <pikalax1@gmail.com>2017-05-29 19:07:55 -0400
commite18309037970a8034c4c3022c978bb7122984953 (patch)
tree7654a72115ca118fb51ee2266e6e58bca1fa2c33
parent8c18d43811d663d9998e32444d137c6064eba840 (diff)
SetTVMetatilesOnMap
-rwxr-xr-xasm/tv.s56
-rw-r--r--include/asm.inc.h2
-rwxr-xr-xsrc/tv.c20
3 files changed, 19 insertions, 59 deletions
diff --git a/asm/tv.s b/asm/tv.s
index 790f6180f..eca9ef761 100755
--- a/asm/tv.s
+++ b/asm/tv.s
@@ -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 *);
diff --git a/src/tv.c b/src/tv.c
index 6a1034f81..94aab8f56 100755
--- a/src/tv.c
+++ b/src/tv.c
@@ -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[]);