From 6faa63347a9ad99d90f81c24fa41531cd20656bb Mon Sep 17 00:00:00 2001 From: Kurausukun Date: Mon, 14 Dec 2020 21:41:30 -0500 Subject: [PATCH] document reuse of variables in link mode --- src/overworld.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/overworld.c b/src/overworld.c index dbc923e7b7..3a7eb34de2 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -2908,6 +2908,9 @@ static void ZeroObjectEvent(struct ObjectEvent *objEvent) memset(objEvent, 0, sizeof(struct ObjectEvent)); } +// Note: Emerald reuses the direction and range variables during Link mode +// as special gender and direction values. The types and placement +// conflict with the usual Event Object struct, thus the definitions. #define linkGender(obj) obj->singleMovementActive // not even one can reference *byte* aligned bitfield members... #define linkDirection(obj) ((u8*)obj)[offsetof(typeof(*obj), fieldEffectSpriteId) - 1] // -> rangeX