summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/metatile_behavior.s2
-rw-r--r--include/constants/metatile_behaviors.h1
-rw-r--r--include/metatile_behavior.h1
-rw-r--r--ld_script.txt1
-rw-r--r--src/metatile_behavior.c18
5 files changed, 18 insertions, 5 deletions
diff --git a/data/metatile_behavior.s b/data/metatile_behavior.s
index b366baa15..64d88840d 100644
--- a/data/metatile_behavior.s
+++ b/data/metatile_behavior.s
@@ -1,8 +1,6 @@
.section .rodata
.align 2
-sTileBitAttributes:: @ 8352F78
- .incbin "baserom.gba", 0x352F78, 0xF0
gUnknown_8353068:: @ 8353068
.incbin "baserom.gba", 0x353068, 0x8420
diff --git a/include/constants/metatile_behaviors.h b/include/constants/metatile_behaviors.h
index 11a429953..0ceeda33f 100644
--- a/include/constants/metatile_behaviors.h
+++ b/include/constants/metatile_behaviors.h
@@ -1,6 +1,7 @@
#ifndef GUARD_METATILE_BEHAVIORS
#define GUARD_METATILE_BEHAVIORS
+#define METATILE_COUNT 0xF0
#define MB_NORMAL 0x00
#define MB_01 0x01
#define MB_TALL_GRASS 0x02
diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h
index bcaca7969..c81e743c7 100644
--- a/include/metatile_behavior.h
+++ b/include/metatile_behavior.h
@@ -149,7 +149,6 @@ bool8 MetatileBehavior_IsImpressiveMachine(u8 metatileBehavior);
bool8 MetatileBehavior_IsVideoGame(u8 metatileBehavior);
bool8 MetatileBehavior_IsBurglary(u8 metatileBehavior);
bool8 MetatileBehavior_IsMBA3(u8 metatileBehavior);
-extern u8 sTileBitAttributes[];
extern u8 gUnknown_8353068[];
#endif // GUARD_METATILE_BEHAVIOR
diff --git a/ld_script.txt b/ld_script.txt
index fd9360f96..40f9f25f2 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -364,6 +364,7 @@ SECTIONS {
src/bg_regs.o(.rodata);
src/string_util.o(.rodata);
data/data.o(.rodata);
+ src/metatile_behavior.o(.rodata);
data/metatile_behavior.o(.rodata);
data/data_835B488.o(.rodata);
src/battle_ai_script_commands.o(.rodata);
diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c
index 71dcf15fe..cc9b7c023 100644
--- a/src/metatile_behavior.c
+++ b/src/metatile_behavior.c
@@ -2,6 +2,20 @@
#include "metatile_behavior.h"
#include "constants/metatile_behaviors.h"
+static const bool8 sTileSurfable[METATILE_COUNT] = {
+ [MB_POND_WATER] = TRUE,
+ [MB_SEMI_DEEP_WATER] = TRUE,
+ [MB_DEEP_WATER] = TRUE,
+ [MB_WATERFALL] = TRUE,
+ [MB_SPLASHING_WATER] = TRUE,
+ [MB_1A] = TRUE,
+ [MB_1B] = TRUE,
+ [MB_EASTWARD_CURRENT] = TRUE,
+ [MB_WESTWARD_CURRENT] = TRUE,
+ [MB_NORTHWARD_CURRENT] = TRUE,
+ [MB_SOUTHWARD_CURRENT] = TRUE
+};
+
bool8 MetatileBehavior_UnusedReturnTrue(u8 metatileBehavior)
{
return TRUE;
@@ -181,7 +195,7 @@ bool8 MetatileBehavior_ReturnFalse_2(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_IsSurfable(u8 metatileBehavior)
{
- if(sTileBitAttributes[metatileBehavior] & 1)
+ if(sTileSurfable[metatileBehavior] & 1)
return TRUE;
else
return FALSE;
@@ -501,7 +515,7 @@ bool8 MetatileBehavior_IsDeepSemiDeepOrSplashingWater(u8 metatileBehavior)
return FALSE;
}
-bool8 MetatileBehavior_IsMB1A(u8 metatileBehavior)
+bool8 MetatileBehavior_UnusedIsMB1A(u8 metatileBehavior)
{
if(metatileBehavior == MB_1A)
return TRUE;