Skip to content

Commit

Permalink
Merge pull request #136 from celias-stupid-team/ow_expansion
Browse files Browse the repository at this point in the history
Implement overworld expansion
  • Loading branch information
CeliaDawn authored Feb 9, 2025
2 parents 436a579 + 6984c36 commit 7d75ed7
Show file tree
Hide file tree
Showing 22 changed files with 68 additions and 74 deletions.
2 changes: 1 addition & 1 deletion asm/macros/event.inc
Original file line number Diff line number Diff line change
Expand Up @@ -1348,7 +1348,7 @@
@ The specified id can be used to refer to the sprite again later with turnvobject.
.macro createvobject graphicsId:req, id:req, x:req, y:req, elevation=3, direction=DIR_SOUTH
.byte 0xaa
.byte \graphicsId
.2byte \graphicsId
.byte \id
.2byte \x
.2byte \y
Expand Down
14 changes: 4 additions & 10 deletions asm/macros/map.inc
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,11 @@
@ Defines an object event template for map data, to be used by a normal object. Mirrors the struct layout of ObjectEventTemplate in include/global.fieldmap.h
.macro object_event index:req, gfx:req, x:req, y:req, elevation:req, movement_type:req, x_radius:req, y_radius:req, trainer_type:req, sight_radius_tree_etc:req, script:req, event_flag:req
.byte \index
.byte \gfx
.byte OBJ_KIND_NORMAL
.space 1 @ Padding
.2byte \gfx
.2byte \x, \y
.byte \elevation
.byte \movement_type
.byte ((\y_radius << 4) | \x_radius)
.space 1 @ Padding
.2byte \trainer_type
.2byte \sight_radius_tree_etc
.byte \elevation, \movement_type, ((\y_radius << 4) | \x_radius), 0
.2byte \trainer_type, \sight_radius_tree_etc
.4byte \script
.2byte \event_flag
.space 2 @ Padding
Expand All @@ -41,9 +36,8 @@
@ Defines an object event template for map data, to be used by a clone object. Mirrors the struct layout of ObjectEventTemplate in include/global.fieldmap.h
.macro clone_event index:req, gfx:req, x:req, y:req, target_local_id:req, target_map_id:req
.byte \index
.byte \gfx
.byte OBJ_KIND_CLONE
.space 1 @ Padding
.2byte \gfx
.2byte \x, \y
.byte \target_local_id
.space 3 @ Padding
Expand Down
6 changes: 3 additions & 3 deletions include/constants/event_objects.h
Original file line number Diff line number Diff line change
Expand Up @@ -248,8 +248,8 @@
// These are dynamic object gfx ids.
// They correspond with the values of the VAR_OBJ_GFX_ID_X vars.
// More info about them in include/constants/vars.h
#define OBJ_EVENT_GFX_VARS 240
#define OBJ_EVENT_GFX_VAR_0 (OBJ_EVENT_GFX_VARS + 0x0) // 240
#define OBJ_EVENT_GFX_VARS NUM_OBJ_EVENT_GFX
#define OBJ_EVENT_GFX_VAR_0 (OBJ_EVENT_GFX_VARS + 0x0)
#define OBJ_EVENT_GFX_VAR_1 (OBJ_EVENT_GFX_VARS + 0x1)
#define OBJ_EVENT_GFX_VAR_2 (OBJ_EVENT_GFX_VARS + 0x2)
#define OBJ_EVENT_GFX_VAR_3 (OBJ_EVENT_GFX_VARS + 0x3)
Expand All @@ -264,7 +264,7 @@
#define OBJ_EVENT_GFX_VAR_C (OBJ_EVENT_GFX_VARS + 0xC)
#define OBJ_EVENT_GFX_VAR_D (OBJ_EVENT_GFX_VARS + 0xD)
#define OBJ_EVENT_GFX_VAR_E (OBJ_EVENT_GFX_VARS + 0xE)
#define OBJ_EVENT_GFX_VAR_F (OBJ_EVENT_GFX_VARS + 0xF) // 255
#define OBJ_EVENT_GFX_VAR_F (OBJ_EVENT_GFX_VARS + 0xF)

#define SHADOW_SIZE_S 0
#define SHADOW_SIZE_M 1
Expand Down
2 changes: 1 addition & 1 deletion include/event_data.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ bool32 CanResetRTC(void);
u16 *GetVarPointer(u16 id);
u16 VarGet(u16 id);
bool8 VarSet(u16 id, u16 value);
u8 VarGetObjectEventGraphicsId(u8 id);
u16 VarGetObjectEventGraphicsId(u8 id);
u8 *GetFlagPointer(u16 id);
u8 FlagSet(u16 id);
u8 FlagClear(u16 id);
Expand Down
13 changes: 6 additions & 7 deletions include/event_object_movement.h
Original file line number Diff line number Diff line change
Expand Up @@ -90,18 +90,17 @@ u8 GetFaceDirectionAnimNum(u8);
void SetSpritePosToOffsetMapCoords(s16 *, s16 *, s16, s16);
void ObjectEventClearHeldMovement(struct ObjectEvent *);
void ObjectEventClearHeldMovementIfActive(struct ObjectEvent *);
u8 CreateVirtualObject(u8 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 elevation, u8 direction);
u8 CreateVirtualObject(u16 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 elevation, u8 direction);
u8 CreateObjectGraphicsSprite(u16 graphicsId, SpriteCallback callback, s16 x, s16 y, u8 subpriority);
u8 TrySpawnObjectEvent(u8 localId, u8 mapNum, u8 mapGroup);
int SpawnSpecialObjectEventParameterized(u8, u8, u8, s16, s16, u8);
int SpawnSpecialObjectEventParameterized(u16, u8, u8, s16, s16, u8);
u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *);
void CameraObjectReset1(void);
void CameraObjectReset2(void);
void ObjectEventSetGraphicsId(struct ObjectEvent *, u8);
void ObjectEventTurn(struct ObjectEvent *, u8);
void ObjectEventTurnByLocalIdAndMap(u8, u8, u8, u8);
void ObjectEventForceSetHeldMovement(struct ObjectEvent *, u8);
const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u8);
const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u16);
void SetObjectInvisibility(u8 localId, u8 mapNum, u8 mapGroup, u8 state);
void FreeAndReserveObjectSpritePalettes(void);
void SetObjectPositionByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y);
Expand Down Expand Up @@ -130,8 +129,8 @@ void OverrideMovementTypeForObjectEvent(const struct ObjectEvent *, u8);
void SetTrainerMovementType(struct ObjectEvent *, u8);
u8 GetFishingDirectionAnimNum(u8 direction);
u8 GetFishingNoCatchDirectionAnimNum(u8 a0);
void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 a1);
u8 CreateFameCheckerObject(u8 graphicsId, u8 localId, s16 x, s16 y);
void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u16 graphicsId);
u8 CreateFameCheckerObject(u16 graphicsId, u8 localId, s16 x, s16 y);
bool8 ObjectEventIsMovementOverridden(struct ObjectEvent *objectEvent);
u8 ObjectEventCheckHeldMovementStatus(struct ObjectEvent *objectEvent);
u8 GetWalkNormalMovementAction(u32);
Expand Down Expand Up @@ -162,7 +161,7 @@ void FreezeObjectEvents(void);
bool8 FreezeObjectEvent(struct ObjectEvent *);
void UnfreezeObjectEvent(struct ObjectEvent *);
void FreezeObjectEventsExceptOne(u8 objEventId);
void SetVirtualObjectGraphics(u8 virtualObjId, u8 direction);
void SetVirtualObjectGraphics(u8 virtualObjId, u16 graphicsId);
void SetVirtualObjectInvisibility(u8 virtualObjId, bool32 invisible);
bool32 IsVirtualObjectInvisible(u8 virtualObjId);
void SetVirtualObjectSpriteAnim(u8 virtualObjId, u8 animNo);
Expand Down
14 changes: 7 additions & 7 deletions include/field_player_avatar.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
#include "global.h"

void ClearPlayerAvatarInfo(void);
void SetPlayerAvatarExtraStateTransition(u8, u8);
u8 GetPlayerAvatarGenderByGraphicsId(u8);
void SetPlayerAvatarExtraStateTransition(u16, u8);
u8 GetPlayerAvatarGenderByGraphicsId(u16);
bool8 TestPlayerAvatarFlags(u8);
void PlayerGetDestCoords(s16 *, s16 *);
u8 GetPlayerFacingDirection(void);
Expand All @@ -17,7 +17,7 @@ void MovementType_Player(struct Sprite *sprite);
void HandleEnforcedLookDirectionOnPlayerStopMoving(void);
void StopPlayerAvatar(void);
void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
u8 GetPlayerAvatarGraphicsIdByStateId(u8);
u16 GetPlayerAvatarGraphicsIdByStateId(u8);
void SetPlayerAvatarStateMask(u8 mask);
void AlignFishingAnimationFrames(struct Sprite *sprite);
void CreateStopSurfingTask_NoMusicChange(u8 direction);
Expand All @@ -27,7 +27,7 @@ bool8 IsPlayerFacingSurfableFishableWater(void);
void StartFishing(u8 secondaryId);
u8 GetPlayerAvatarObjectId(void);
u8 PlayerGetElevation(void);
u8 GetPlayerAvatarGraphicsIdByCurrentState(void);
u16 GetPlayerAvatarGraphicsIdByCurrentState(void);
void StartPlayerAvatarSummonMonForFieldMoveAnim(void);
void SetPlayerInvisibility(bool8);
void StartTeleportInPlayerAnim(void);
Expand All @@ -38,8 +38,8 @@ bool8 PartyHasMonWithSurf(void);
bool8 IsPlayerSurfingNorth(void);
u8 player_get_pos_including_state_based_drift(s16 *x, s16 *y);
void StartPlayerAvatarVsSeekerAnim(void);
u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender);
u8 GetPlayerAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender);
u16 GetRivalAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender);
u16 GetPlayerAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender);
u8 CheckForObjectEventCollision(struct ObjectEvent *objectEvent, s16 x, s16 y, u8 direction, u8 metatileBehavior);
void PlayerWalkSlower(u8 direction);
void PlayerWalkSlow(u8 direction);
Expand All @@ -62,6 +62,6 @@ bool32 PlayerIsMovingOnRockStairs(u8 direction);
void UpdatePlayerAvatarTransitionState(void);
void InitPlayerAvatar(s16 x, s16 y, u8 direction, u8 gender);
void PlayerUseAcroBikeOnBumpySlope(u8 direction);
u8 GetRSAvatarGraphicsIdByGender(u8 gender);
u16 GetRSAvatarGraphicsIdByGender(u8 gender);

#endif //GUARD_FIELD_PLAYER_AVATAR_H
2 changes: 1 addition & 1 deletion include/fldeff.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ gTasks[taskId].data[9] = (u32)func;

extern struct MapPosition gPlayerFacingPosition;

bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId);
bool8 CheckObjectGraphicsInFrontOfPlayer(u16 graphicsId);
u8 CreateFieldEffectShowMon(void);

// flash
Expand Down
6 changes: 3 additions & 3 deletions include/global.fieldmap.h
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,8 @@ struct BackupMapLayout
struct ObjectEventTemplate
{
u8 localId;
u8 graphicsId;
u8 kind; // The "kind" field determines how to access objUnion union below.
u16 graphicsId;
s16 x, y;
union {
struct {
Expand Down Expand Up @@ -239,8 +239,7 @@ struct ObjectEvent
/*25*/ u32 disableJumpLandingGroundEffect:1;
/*26*/ u32 fixedPriority:1;
/*27*/ u32 hideReflection:1;
/*0x04*/ u8 spriteId;
/*0x05*/ u8 graphicsId;
/*0x04*/ u16 graphicsId;
/*0x06*/ u8 movementType;
/*0x07*/ u8 trainerType;
/*0x08*/ u8 localId;
Expand All @@ -264,6 +263,7 @@ struct ObjectEvent
/*0x20*/ u8 previousMovementDirection;
/*0x21*/ u8 directionSequenceIndex;
/*0x22*/ u8 playerCopyableMovement;
/*0x23*/ u8 spriteId;
/*size = 0x24*/
};

Expand Down
2 changes: 1 addition & 1 deletion include/global.h
Original file line number Diff line number Diff line change
Expand Up @@ -600,7 +600,7 @@ struct QuestLogObjectEvent
/*0x02*/ u8 unused:3;
/*0x03*/ u8 currentElevation:4;
/*0x03*/ u8 previousElevation:4;
/*0x04*/ u8 graphicsId;
/*0x04*/ u16 graphicsId;
/*0x05*/ u8 movementType;
/*0x06*/ u8 trainerType;
/*0x07*/ u8 localId;
Expand Down
2 changes: 1 addition & 1 deletion include/union_room.h
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ struct WirelessLink_Group
struct UnionRoomObject
{
u8 state;
u8 gfxId;
u16 gfxId;
s8 animState;
u8 schedAnim;
};
Expand Down
2 changes: 1 addition & 1 deletion src/event_data.c
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ bool8 VarSet(u16 idx, u16 val)
return TRUE;
}

u8 VarGetObjectEventGraphicsId(u8 idx)
u16 VarGetObjectEventGraphicsId(u8 idx)
{
return VarGet(VAR_OBJ_GFX_ID_0 + idx);
}
Expand Down
16 changes: 8 additions & 8 deletions src/event_object_movement.c
Original file line number Diff line number Diff line change
Expand Up @@ -1468,7 +1468,7 @@ u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *objectEventTemplate)
return TrySpawnObjectEventTemplate(objectEventTemplate, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, cameraX, cameraY);
}

int SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 elevation)
int SpawnSpecialObjectEventParameterized(u16 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 elevation)
{
struct ObjectEventTemplate objectEventTemplate;

Expand Down Expand Up @@ -1581,7 +1581,7 @@ u8 CreateObjectGraphicsSprite(u16 graphicsId, SpriteCallback callback, s16 x, s1
#define sVirtualObjId data[0]
#define sVirtualObjElev data[1]

u8 CreateVirtualObject(u8 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 elevation, u8 direction)
u8 CreateVirtualObject(u16 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 elevation, u8 direction)
{
u8 spriteId;
struct Sprite *sprite;
Expand Down Expand Up @@ -1620,7 +1620,7 @@ u8 CreateVirtualObject(u8 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 elevatio
return spriteId;
}

u8 CreateFameCheckerObject(u8 graphicsId, u8 localId, s16 x, s16 y)
u8 CreateFameCheckerObject(u16 graphicsId, u8 localId, s16 x, s16 y)
{
u8 spriteId;
struct Sprite *sprite;
Expand Down Expand Up @@ -1851,14 +1851,14 @@ static void ObjectEventSetGraphics(struct ObjectEvent *objectEvent, const struct
}
}

void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 graphicsId)
void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u16 graphicsId)
{
objectEvent->graphicsId = graphicsId;
ObjectEventSetGraphics(objectEvent, GetObjectEventGraphicsInfo(graphicsId));
objectEvent->graphicsId = graphicsId;
}

void ObjectEventSetGraphicsIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, u8 graphicsId)
void ObjectEventSetGraphicsIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, u16 graphicsId)
{
u8 objectEventId;

Expand Down Expand Up @@ -1893,7 +1893,7 @@ void PlayerObjectTurn(struct PlayerAvatar *playerAvatar, u8 direction)
ObjectEventTurn(&gObjectEvents[playerAvatar->objectEventId], direction);
}

const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u8 graphicsId)
const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u16 graphicsId)
{
if (graphicsId >= OBJ_EVENT_GFX_VARS)
graphicsId = VarGetObjectEventGraphicsId(graphicsId - OBJ_EVENT_GFX_VARS);
Expand Down Expand Up @@ -9198,13 +9198,13 @@ void TurnVirtualObject(u8 virtualObjId, u8 direction)
}
}

void SetVirtualObjectGraphics(u8 virtualObjId, u8 direction)
void SetVirtualObjectGraphics(u8 virtualObjId, u16 graphicsId)
{
int spriteId = GetVirtualObjectSpriteId(virtualObjId);
if (spriteId != MAX_SPRITES)
{
struct Sprite *sprite = &gSprites[spriteId];
const struct ObjectEventGraphicsInfo *info = GetObjectEventGraphicsInfo(direction);
const struct ObjectEventGraphicsInfo *info = GetObjectEventGraphicsInfo(graphicsId);
u16 baseBlock = sprite->oam.tileNum;
u8 i = FindObjectEventPaletteIndexByTag(info->paletteTag);
if (i != 0xFF)
Expand Down
2 changes: 1 addition & 1 deletion src/fame_checker.c
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ static const u8 *const sFameCheckerFlavorTextPointers[] = {
gFameCheckerFlavorText_Giovanni0, gFameCheckerFlavorText_Giovanni1, gFameCheckerFlavorText_Giovanni2, gFameCheckerFlavorText_Giovanni3, gFameCheckerFlavorText_Giovanni4, gFameCheckerFlavorText_Giovanni5
};

static const u8 sFameCheckerArrayNpcGraphicsIds[] = {
static const u16 sFameCheckerArrayNpcGraphicsIds[] = {
// Pallet
OBJ_EVENT_GFX_CUT_TREE,
OBJ_EVENT_GFX_BLUE,
Expand Down
26 changes: 13 additions & 13 deletions src/field_player_avatar.c
Original file line number Diff line number Diff line change
Expand Up @@ -1137,7 +1137,7 @@ void StopPlayerAvatar(void)
}
}

static const u8 sPlayerAvatarGfxIds[][GENDER_COUNT] = {
static const u16 sPlayerAvatarGfxIds[][GENDER_COUNT] = {
[PLAYER_AVATAR_GFX_NORMAL] = {OBJ_EVENT_GFX_RED_NORMAL, OBJ_EVENT_GFX_GREEN_NORMAL},
[PLAYER_AVATAR_GFX_BIKE] = {OBJ_EVENT_GFX_RED_BIKE, OBJ_EVENT_GFX_GREEN_BIKE},
[PLAYER_AVATAR_GFX_RIDE] = {OBJ_EVENT_GFX_RED_SURF, OBJ_EVENT_GFX_GREEN_SURF},
Expand All @@ -1146,32 +1146,32 @@ static const u8 sPlayerAvatarGfxIds[][GENDER_COUNT] = {
[PLAYER_AVATAR_GFX_VSSEEKER] = {OBJ_EVENT_GFX_RED_VS_SEEKER, OBJ_EVENT_GFX_GREEN_VS_SEEKER},
};

static const u8 sHoennLinkPartnerGfxIds[] = {
static const u16 sHoennLinkPartnerGfxIds[] = {
OBJ_EVENT_GFX_RS_BRENDAN,
OBJ_EVENT_GFX_RS_MAY
};

u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender)
u16 GetRivalAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender)
{
return GetPlayerAvatarGraphicsIdByStateIdAndGender(state, gender);
}

u8 GetPlayerAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender)
u16 GetPlayerAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender)
{
return sPlayerAvatarGfxIds[state][gender];
}

u8 GetRSAvatarGraphicsIdByGender(u8 gender)
u16 GetRSAvatarGraphicsIdByGender(u8 gender)
{
return sHoennLinkPartnerGfxIds[gender];
}

u8 GetPlayerAvatarGraphicsIdByStateId(u8 state)
u16 GetPlayerAvatarGraphicsIdByStateId(u8 state)
{
return GetPlayerAvatarGraphicsIdByStateIdAndGender(state, gPlayerAvatar.gender);
}

u8 GetPlayerAvatarGenderByGraphicsId(u8 gfxId)
u8 GetPlayerAvatarGenderByGraphicsId(u16 gfxId)
{
switch (gfxId)
{
Expand Down Expand Up @@ -1242,7 +1242,7 @@ void SetPlayerAvatarStateMask(u8 flags)
gPlayerAvatar.flags |= flags;
}

static const u8 sPlayerAvatarGfxToStateFlag[][3][GENDER_COUNT] = {
static const u16 sPlayerAvatarGfxToStateFlag[][3][GENDER_COUNT] = {
[MALE] = {
{OBJ_EVENT_GFX_RED_NORMAL, PLAYER_AVATAR_FLAG_ON_FOOT},
{OBJ_EVENT_GFX_RED_BIKE, PLAYER_AVATAR_FLAG_MACH_BIKE},
Expand All @@ -1255,7 +1255,7 @@ static const u8 sPlayerAvatarGfxToStateFlag[][3][GENDER_COUNT] = {
}
};

u8 GetPlayerAvatarStateTransitionByGraphicsId(u8 graphicsId, u8 gender)
u8 GetPlayerAvatarStateTransitionByGraphicsId(u16 graphicsId, u8 gender)
{
u8 i;

Expand All @@ -1267,7 +1267,7 @@ u8 GetPlayerAvatarStateTransitionByGraphicsId(u8 graphicsId, u8 gender)
return 1;
}

u8 GetPlayerAvatarGraphicsIdByCurrentState(void)
u16 GetPlayerAvatarGraphicsIdByCurrentState(void)
{
u8 i;
u8 flags = gPlayerAvatar.flags;
Expand All @@ -1280,7 +1280,7 @@ u8 GetPlayerAvatarGraphicsIdByCurrentState(void)
return 0;
}

void SetPlayerAvatarExtraStateTransition(u8 graphicsId, u8 extras)
void SetPlayerAvatarExtraStateTransition(u16 graphicsId, u8 extras)
{
u8 unk = GetPlayerAvatarStateTransitionByGraphicsId(graphicsId, gPlayerAvatar.gender);

Expand Down Expand Up @@ -1333,12 +1333,12 @@ void StartPlayerAvatarSummonMonForFieldMoveAnim(void)
StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], ANIM_FIELD_MOVE);
}

static const u8 sPlayerAvatarVsSeekerBikeGfxIds[] = {
static const u16 sPlayerAvatarVsSeekerBikeGfxIds[] = {
OBJ_EVENT_GFX_RED_VS_SEEKER_BIKE,
OBJ_EVENT_GFX_GREEN_VS_SEEKER_BIKE
};

u8 GetPlayerAvatarVsSeekerGfxId(void)
u16 GetPlayerAvatarVsSeekerGfxId(void)
{
if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE))
return sPlayerAvatarVsSeekerBikeGfxIds[gPlayerAvatar.gender];
Expand Down
Loading

0 comments on commit 7d75ed7

Please sign in to comment.