summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-12-19 17:32:23 -0800
committerYamaArashi <shadow962@live.com>2016-12-19 17:32:23 -0800
commit805b2241b191cc33015a6d7cbb8a413050ea974a (patch)
treea75b64534ba0572c069298ed3cc4b68607a8dcaf /src
parent614ab538006f6a5df1de007f3e8343de35cf0cad (diff)
decompile GetGroundEffectFlags_Reflection
Diffstat (limited to 'src')
-rw-r--r--src/field_ground_effect.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/field_ground_effect.c b/src/field_ground_effect.c
index e4742d384..358697339 100644
--- a/src/field_ground_effect.c
+++ b/src/field_ground_effect.c
@@ -1,6 +1,8 @@
#include "global.h"
#include "asm_fieldmap.h"
+extern u32 gUnknown_08376008[];
+
void FieldObjectUpdateMetatileBehaviors(struct MapObject *);
void GetGroundEffectFlags_Reflection(struct MapObject *, u32 *);
void GetGroundEffectFlags_TallGrassOnSpawn(struct MapObject *, u32 *);
@@ -16,6 +18,7 @@ void GetGroundEffectFlags_ShortGrass(struct MapObject *, u32 *);
void GetGroundEffectFlags_HotSprings(struct MapObject *, u32 *);
void GetGroundEffectFlags_Seaweed(struct MapObject *, u32 *);
void GetGroundEffectFlags_JumpLanding(struct MapObject *, u32 *);
+u8 FieldObjectCheckForReflectiveSurface(struct MapObject *);
void GetAllGroundEffectFlags_OnSpawn(struct MapObject *mapObj, u32 *flags)
{
@@ -61,3 +64,25 @@ void FieldObjectUpdateMetatileBehaviors(struct MapObject *mapObj)
mapObj->mapobj_unk_1F = MapGridGetMetatileBehaviorAt(mapObj->coords3.x, mapObj->coords3.y);
mapObj->mapobj_unk_1E = MapGridGetMetatileBehaviorAt(mapObj->coords2.x, mapObj->coords2.y);
}
+
+void GetGroundEffectFlags_Reflection(struct MapObject *mapObj, u32 *flags)
+{
+ u32 reflectionFlags[2] = { 0x00000020, 0x00000010 };
+ u8 type;
+
+ type = FieldObjectCheckForReflectiveSurface(mapObj);
+
+ if (type)
+ {
+ if (!mapObj->mapobj_bit_17)
+ {
+ mapObj->mapobj_bit_17 = 0;
+ mapObj->mapobj_bit_17 = 1;
+ *flags |= reflectionFlags[type - 1];
+ }
+ }
+ else
+ {
+ mapObj->mapobj_bit_17 = 0;
+ }
+}