summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2020-04-21 15:53:48 -0400
committerhuderlem <huderlem@gmail.com>2020-04-28 19:59:08 -0500
commitcb5b8da77b9ba6837fcc8c5163bedc5008b12c2c (patch)
tree51658bb18ba0f8008c7eaa4816b763cd05559a30 /src
parent8d9e39e6d151cae303a330ccd84f1944b013cdb1 (diff)
More trainer type usage
Diffstat (limited to 'src')
-rw-r--r--src/event_object_movement.c11
-rw-r--r--src/field_player_avatar.c3
-rw-r--r--src/trainer_hill.c3
-rw-r--r--src/trainer_see.c19
4 files changed, 21 insertions, 15 deletions
diff --git a/src/event_object_movement.c b/src/event_object_movement.c
index 09cdd94cd..e166f8b95 100644
--- a/src/event_object_movement.c
+++ b/src/event_object_movement.c
@@ -27,6 +27,7 @@
#include "constants/field_effects.h"
#include "constants/items.h"
#include "constants/mauville_old_man.h"
+#include "constants/trainer_types.h"
// this file was known as evobjmv.c in Game Freak's original source
@@ -1454,7 +1455,7 @@ u8 SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 l
objectEventTemplate.movementType = movementBehavior;
objectEventTemplate.movementRangeX = 0;
objectEventTemplate.movementRangeY = 0;
- objectEventTemplate.trainerType = 0;
+ objectEventTemplate.trainerType = TRAINER_TYPE_NONE;
objectEventTemplate.trainerRange_berryTreeId = 0;
return SpawnSpecialObjectEvent(&objectEventTemplate);
}
@@ -2344,7 +2345,8 @@ static u16 GetObjectEventFlagIdByObjectEventId(u8 objectEventId)
return GetObjectEventFlagIdByLocalIdAndMap(gObjectEvents[objectEventId].localId, gObjectEvents[objectEventId].mapNum, gObjectEvents[objectEventId].mapGroup);
}
-u8 sub_808F080(u8 localId, u8 mapNum, u8 mapGroup)
+// Unused
+static u8 GetObjectTrainerTypeByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup)
{
u8 objectEventId;
@@ -2355,7 +2357,8 @@ u8 sub_808F080(u8 localId, u8 mapNum, u8 mapGroup)
return gObjectEvents[objectEventId].trainerType;
}
-u8 sub_808F0BC(u8 objectEventId)
+// Unused
+static u8 GetObjectTrainerTypeByObjectEventId(u8 objectEventId)
{
return gObjectEvents[objectEventId].trainerType;
}
@@ -2604,7 +2607,7 @@ bool8 ObjectEventIsTrainerAndCloseToPlayer(struct ObjectEvent *objectEvent)
{
return FALSE;
}
- if (objectEvent->trainerType != 1 && objectEvent->trainerType != 3)
+ if (objectEvent->trainerType != TRAINER_TYPE_NORMAL && objectEvent->trainerType != TRAINER_TYPE_BURIED)
{
return FALSE;
}
diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c
index 6d44f4b51..b0918a78d 100644
--- a/src/field_player_avatar.c
+++ b/src/field_player_avatar.c
@@ -30,6 +30,7 @@
#include "constants/moves.h"
#include "constants/songs.h"
#include "constants/species.h"
+#include "constants/trainer_types.h"
static EWRAM_DATA u8 gUnknown_0203734C = 0;
EWRAM_DATA struct ObjectEvent gObjectEvents[OBJECT_EVENTS_COUNT] = {};
@@ -1378,7 +1379,7 @@ void InitPlayerAvatar(s16 x, s16 y, u8 direction, u8 gender)
playerObjEventTemplate.movementType = MOVEMENT_TYPE_PLAYER;
playerObjEventTemplate.movementRangeX = 0;
playerObjEventTemplate.movementRangeY = 0;
- playerObjEventTemplate.trainerType = 0;
+ playerObjEventTemplate.trainerType = TRAINER_TYPE_NONE;
playerObjEventTemplate.trainerRange_berryTreeId = 0;
playerObjEventTemplate.script = NULL;
playerObjEventTemplate.flagId = 0;
diff --git a/src/trainer_hill.c b/src/trainer_hill.c
index 11ac49e3a..8ff9d2eaf 100644
--- a/src/trainer_hill.c
+++ b/src/trainer_hill.c
@@ -33,6 +33,7 @@
#include "constants/trainers.h"
#include "constants/easy_chat.h"
#include "constants/trainer_hill.h"
+#include "constants/trainer_types.h"
#define HILL_TAG_NORMAL 0
#define HILL_TAG_VARIETY 1
@@ -258,7 +259,7 @@ static const struct ObjectEventTemplate sTrainerObjectEventTemplate =
.movementType = MOVEMENT_TYPE_LOOK_AROUND,
.movementRangeX = 1,
.movementRangeY = 1,
- .trainerType = 1,
+ .trainerType = TRAINER_TYPE_NORMAL,
};
static const u32 sNextFloorMapNum[NUM_TRAINER_HILL_FLOORS] =
diff --git a/src/trainer_see.c b/src/trainer_see.c
index b34b8f106..68a16e208 100644
--- a/src/trainer_see.c
+++ b/src/trainer_see.c
@@ -17,6 +17,7 @@
#include "constants/event_objects.h"
#include "constants/event_object_movement.h"
#include "constants/field_effects.h"
+#include "constants/trainer_types.h"
// this file's functions
static u8 CheckTrainer(u8 objectEventId);
@@ -181,18 +182,18 @@ bool8 CheckForTrainersWantingBattle(void)
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{
- u8 retVal;
+ u8 numTrainers;
if (!gObjectEvents[i].active)
continue;
- if (gObjectEvents[i].trainerType != 1 && gObjectEvents[i].trainerType != 3)
+ if (gObjectEvents[i].trainerType != TRAINER_TYPE_NORMAL && gObjectEvents[i].trainerType != TRAINER_TYPE_BURIED)
continue;
- retVal = CheckTrainer(i);
- if (retVal == 2)
- break; // two trainers have been found
+ numTrainers = CheckTrainer(i);
+ if (numTrainers == 2)
+ break;
- if (retVal == 0) // no trainers
+ if (numTrainers == 0)
continue;
if (gNoOfApproachingTrainers > 1)
@@ -289,14 +290,14 @@ static u8 GetTrainerApproachDistance(struct ObjectEvent *trainerObj)
u8 approachDistance;
PlayerGetDestCoords(&x, &y);
- if (trainerObj->trainerType == 1) // can only see in one direction
+ if (trainerObj->trainerType == TRAINER_TYPE_NORMAL) // can only see in one direction
{
approachDistance = sDirectionalApproachDistanceFuncs[trainerObj->facingDirection - 1](trainerObj, trainerObj->trainerRange_berryTreeId, x, y);
return CheckPathBetweenTrainerAndPlayer(trainerObj, approachDistance, trainerObj->facingDirection);
}
- else // can see in all directions
+ else // TRAINER_TYPE_SEE_ALL_DIRECTIONS, TRAINER_TYPE_BURIED
{
- for (i = 0; i < 4; i++)
+ for (i = 0; i < ARRAY_COUNT(sDirectionalApproachDistanceFuncs); i++)
{
approachDistance = sDirectionalApproachDistanceFuncs[i](trainerObj, trainerObj->trainerRange_berryTreeId, x, y);
if (CheckPathBetweenTrainerAndPlayer(trainerObj, approachDistance, i + 1)) // directions are 1-4 instead of 0-3. south north west east