Some more quest log and field player avater documentation
This commit is contained in:
@@ -4,14 +4,14 @@
|
||||
#define OBJ_EVENT_GFX_RED_NORMAL 0
|
||||
#define OBJ_EVENT_GFX_RED_BIKE 1
|
||||
#define OBJ_EVENT_GFX_RED_SURF 2
|
||||
#define OBJ_EVENT_GFX_RED_ITEM 3
|
||||
#define OBJ_EVENT_GFX_RED_FIELD_MOVE 3
|
||||
#define OBJ_EVENT_GFX_RED_FISH 4
|
||||
#define OBJ_EVENT_GFX_RED_VS_SEEKER 5
|
||||
#define OBJ_EVENT_GFX_RED_VS_SEEKER_BIKE 6
|
||||
#define OBJ_EVENT_GFX_GREEN_NORMAL 7
|
||||
#define OBJ_EVENT_GFX_GREEN_BIKE 8
|
||||
#define OBJ_EVENT_GFX_GREEN_SURF 9
|
||||
#define OBJ_EVENT_GFX_GREEN_ITEM 10
|
||||
#define OBJ_EVENT_GFX_GREEN_FIELD_MOVE 10
|
||||
#define OBJ_EVENT_GFX_GREEN_FISH 11
|
||||
#define OBJ_EVENT_GFX_GREEN_VS_SEEKER 12
|
||||
#define OBJ_EVENT_GFX_GREEN_VS_SEEKER_BIKE 13
|
||||
|
||||
@@ -28,7 +28,7 @@ void StartFishing(u8 secondaryId);
|
||||
u8 GetPlayerAvatarObjectId(void);
|
||||
u8 PlayerGetZCoord(void);
|
||||
u8 GetPlayerAvatarGraphicsIdByCurrentState(void);
|
||||
void sub_805CB70(void);
|
||||
void StartPlayerAvatarSummonMonForFieldMoveAnim(void);
|
||||
void SetPlayerInvisibility(bool8);
|
||||
void StartTeleportInPlayerAnim(void);
|
||||
void StartTeleportWarpOutPlayerAnim(void);
|
||||
@@ -37,7 +37,7 @@ bool32 WaitTeleportInPlayerAnim(void);
|
||||
bool8 PartyHasMonWithSurf(void);
|
||||
bool8 IsPlayerSurfingNorth(void);
|
||||
u8 player_get_pos_including_state_based_drift(s16 *x, s16 *y);
|
||||
void sub_805CBE8(void);
|
||||
void StartPlayerAvatarVsSeekerAnim(void);
|
||||
u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender);
|
||||
u8 GetPlayerAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender);
|
||||
u8 CheckForObjectEventCollision(struct ObjectEvent *objectEvent, s16 x, s16 y, u8 direction, u8 metatileBehavior);
|
||||
|
||||
@@ -293,6 +293,15 @@ enum {
|
||||
#define PLAYER_AVATAR_FLAG_FISHING (1 << PLAYER_AVATAR_STATE_FISHING)
|
||||
#define PLAYER_AVATAR_FLAG_DASH (1 << PLAYER_AVATAR_STATE_WATERING)
|
||||
|
||||
enum {
|
||||
PLAYER_AVATAR_GFX_NORMAL,
|
||||
PLAYER_AVATAR_GFX_BIKE,
|
||||
PLAYER_AVATAR_GFX_SURF,
|
||||
PLAYER_AVATAR_GFX_FIELD_MOVE,
|
||||
PLAYER_AVATAR_GFX_FISH,
|
||||
PLAYER_AVATAR_GFX_VSSEEKER,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
ACRO_BIKE_NORMAL,
|
||||
|
||||
+16
-12
@@ -8,10 +8,11 @@
|
||||
|
||||
struct QuestLogEntry
|
||||
{
|
||||
u8 localId;
|
||||
u8 mapNum;
|
||||
u8 mapGroup;
|
||||
u8 animId;
|
||||
// When command == 2, these fields have different meanings
|
||||
u8 localId; // cmd == 2: Pressed A/B, checked wild, held direction, took step
|
||||
u8 mapNum; // cmd == 2: Always set to 0
|
||||
u8 mapGroup; // cmd == 2: Dpad direction
|
||||
u8 animId; // cmd == 2: Always set to 0
|
||||
u16 duration;
|
||||
u8 command;
|
||||
};
|
||||
@@ -32,7 +33,7 @@ extern u16 *gUnknown_203AE04;
|
||||
extern u16 *sEventRecordingPointer;
|
||||
extern u16 sQuestLogCursor;
|
||||
|
||||
void sub_8112720(u8);
|
||||
void QuestLogRecordPlayerAvatarGfxTransition(u8);
|
||||
void SetQuestLogEvent(u16, const u16 *);
|
||||
void SetQLPlayedTheSlots(void);
|
||||
void QuestLog_RecordEnteredMap(u16);
|
||||
@@ -54,15 +55,18 @@ void *QuestLogGetFlagOrVarPtr(bool8 isFlag, u16 idx);
|
||||
void QuestLogSetFlagOrVar(bool8 isFlag, u16 idx, u16 value);
|
||||
void SetQuestLogRecordAndPlaybackPointers(void *oldSave);
|
||||
void sub_811246C(struct Sprite *sprite);
|
||||
void sub_81124EC(u8 a0, u8 a1, u8 a2, u8 a3);
|
||||
void QuestLogRecordNPCStep(u8 a0, u8 a1, u8 a2, u8 a3);
|
||||
bool8 sub_8111C2C(void);
|
||||
void sub_81128BC(u8 a0);
|
||||
void sub_811278C(u8 movementActionId, u8 duration);
|
||||
|
||||
#define QL_ESCALATOR_OUT 1
|
||||
#define QL_ESCALATOR_IN 2
|
||||
void QuestLog_OnEscalatorWarp(u8 direction);
|
||||
void QuestLogRecordPlayerAvatarGfxTransitionWithDuration(u8 movementActionId, u8 duration);
|
||||
void Special_UpdateTrainerFansAfterLinkBattle(void);
|
||||
void sub_8112628(u8 movementActionId);
|
||||
void sub_81126AC(u8 movementActionId, u8 duration);
|
||||
void sub_8112588(u8 localId, u8 mapNum, u8 mapGroup, u8 movementActionId, u8 duration);
|
||||
void sub_8112C9C(void);
|
||||
void QuestLogRecordPlayerStep(u8 movementActionId);
|
||||
void QuestLogRecordPlayerStepWithDuration(u8 movementActionId, u8 duration);
|
||||
void QuestLogRecordNPCStepWithDuration(u8 localId, u8 mapNum, u8 mapGroup, u8 movementActionId, u8 duration);
|
||||
void QL_AfterRecordFishActionSuccessful(void);
|
||||
void sub_8110920(void);
|
||||
void sub_8111708(void);
|
||||
void sub_81127F8(struct FieldInput * a0);
|
||||
|
||||
@@ -3,8 +3,18 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
void sub_8150454(void);
|
||||
bool32 sub_8150474(u8 a0);
|
||||
void sub_8150498(u8 a0);
|
||||
#define QL_PLAYER_GFX_NORMAL 0
|
||||
#define QL_PLAYER_GFX_BIKE 1
|
||||
#define QL_PLAYER_GFX_FISH 2
|
||||
#define QL_PLAYER_GFX_SURF 3
|
||||
#define QL_PLAYER_GFX_STOP_SURF_S 4
|
||||
#define QL_PLAYER_GFX_STOP_SURF_N 5
|
||||
#define QL_PLAYER_GFX_STOP_SURF_W 6
|
||||
#define QL_PLAYER_GFX_STOP_SURF_E 7
|
||||
#define QL_PLAYER_GFX_VSSEEKER 8
|
||||
|
||||
void QuestLogUpdatePlayerSprite(u8 state);
|
||||
bool32 QuestLogTryRecordPlayerAvatarGfxTransition(u8 state);
|
||||
void QuestLogCallUpdatePlayerSprite(u8 state);
|
||||
|
||||
#endif //GUARD_QUEST_LOG_PLAYER_H
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedNormal = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenNormal, gObjectEventPicTable_RedNormal, gDummySpriteAffineAnimTable};
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedBike = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RedBike, gDummySpriteAffineAnimTable};
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedSurf = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenSurf, gObjectEventPicTable_RedSurf, gDummySpriteAffineAnimTable};
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedItem = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenItem, gObjectEventPicTable_RedItem, gDummySpriteAffineAnimTable};
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedFieldMove = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenItem, gObjectEventPicTable_RedItem, gDummySpriteAffineAnimTable};
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Policeman = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Policeman, gDummySpriteAffineAnimTable};
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RSBrendan = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RSBrendan, gDummySpriteAffineAnimTable};
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RSMay = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RSMay, gDummySpriteAffineAnimTable};
|
||||
@@ -70,7 +70,7 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_StrengthBoulder =
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenNormal = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenNormal, gObjectEventPicTable_GreenNormal, gDummySpriteAffineAnimTable};
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenBike = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_GreenBike, gDummySpriteAffineAnimTable};
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenSurf = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenSurf, gObjectEventPicTable_GreenSurf, gDummySpriteAffineAnimTable};
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenItem = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenItem, gObjectEventPicTable_GreenItem, gDummySpriteAffineAnimTable};
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenFieldMove = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_RedGreenItem, gObjectEventPicTable_GreenItem, gDummySpriteAffineAnimTable};
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_83A45F4 = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RedBike, gDummySpriteAffineAnimTable};
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RocketM = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RocketM, gDummySpriteAffineAnimTable};
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Celio = {SPRITE_INVALID_TAG, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Celio, gDummySpriteAffineAnimTable};
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedNormal;
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedBike;
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedSurf;
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedItem;
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedFieldMove;
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedFish;
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedVSSeeker;
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedVSSeekerBike;
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenNormal;
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenBike;
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenSurf;
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenItem;
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenFieldMove;
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenFish;
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenVSSeeker;
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenVSSeekerBike;
|
||||
@@ -156,14 +156,14 @@ const struct ObjectEventGraphicsInfo *const gObjectEventGraphicsInfoPointers[NUM
|
||||
[OBJ_EVENT_GFX_RED_NORMAL] = &gObjectEventGraphicsInfo_RedNormal,
|
||||
[OBJ_EVENT_GFX_RED_BIKE] = &gObjectEventGraphicsInfo_RedBike,
|
||||
[OBJ_EVENT_GFX_RED_SURF] = &gObjectEventGraphicsInfo_RedSurf,
|
||||
[OBJ_EVENT_GFX_RED_ITEM] = &gObjectEventGraphicsInfo_RedItem,
|
||||
[OBJ_EVENT_GFX_RED_FIELD_MOVE] = &gObjectEventGraphicsInfo_RedFieldMove,
|
||||
[OBJ_EVENT_GFX_RED_FISH] = &gObjectEventGraphicsInfo_RedFish,
|
||||
[OBJ_EVENT_GFX_RED_VS_SEEKER] = &gObjectEventGraphicsInfo_RedVSSeeker,
|
||||
[OBJ_EVENT_GFX_RED_VS_SEEKER_BIKE] = &gObjectEventGraphicsInfo_RedVSSeekerBike,
|
||||
[OBJ_EVENT_GFX_GREEN_NORMAL] = &gObjectEventGraphicsInfo_GreenNormal,
|
||||
[OBJ_EVENT_GFX_GREEN_BIKE] = &gObjectEventGraphicsInfo_GreenBike,
|
||||
[OBJ_EVENT_GFX_GREEN_SURF] = &gObjectEventGraphicsInfo_GreenSurf,
|
||||
[OBJ_EVENT_GFX_GREEN_ITEM] = &gObjectEventGraphicsInfo_GreenItem,
|
||||
[OBJ_EVENT_GFX_GREEN_FIELD_MOVE] = &gObjectEventGraphicsInfo_GreenFieldMove,
|
||||
[OBJ_EVENT_GFX_GREEN_FISH] = &gObjectEventGraphicsInfo_GreenFish,
|
||||
[OBJ_EVENT_GFX_GREEN_VS_SEEKER] = &gObjectEventGraphicsInfo_GreenVSSeeker,
|
||||
[OBJ_EVENT_GFX_GREEN_VS_SEEKER_BIKE] = &gObjectEventGraphicsInfo_GreenVSSeekerBike,
|
||||
|
||||
@@ -6,13 +6,13 @@ static EWRAM_DATA const u8 *sStringPointers[8] = {0};
|
||||
|
||||
static const u8 sTextColorTable[] =
|
||||
{
|
||||
// [LOW_NYBBLE / 2] = 0xXY, // HIGH_NYBBLE
|
||||
// [LOW_NYBBLE / 2] = 0xXY, // HIGH_NYBBLE
|
||||
[OBJ_EVENT_GFX_RED_NORMAL / 2] = 0x00, // OBJ_EVENT_GFX_RED_BIKE
|
||||
[OBJ_EVENT_GFX_RED_SURF / 2] = 0x00, // OBJ_EVENT_GFX_RED_ITEM
|
||||
[OBJ_EVENT_GFX_RED_SURF / 2] = 0x00, // OBJ_EVENT_GFX_RED_FIELD_MOVE
|
||||
[OBJ_EVENT_GFX_RED_FISH / 2] = 0x00, // OBJ_EVENT_GFX_RED_VS_SEEKER
|
||||
[OBJ_EVENT_GFX_RED_VS_SEEKER_BIKE / 2] = 0x10, // OBJ_EVENT_GFX_GREEN_NORMAL
|
||||
[OBJ_EVENT_GFX_RED_VS_SEEKER_BIKE / 2] = 0x10, // OBJ_EVENT_GFX_GREEN_NORMAL
|
||||
[OBJ_EVENT_GFX_GREEN_BIKE / 2] = 0x11, // OBJ_EVENT_GFX_GREEN_SURF
|
||||
[OBJ_EVENT_GFX_GREEN_ITEM / 2] = 0x11, // OBJ_EVENT_GFX_GREEN_FISH
|
||||
[OBJ_EVENT_GFX_GREEN_FIELD_MOVE / 2] = 0x11, // OBJ_EVENT_GFX_GREEN_FISH
|
||||
[OBJ_EVENT_GFX_GREEN_VS_SEEKER / 2] = 0x11, // OBJ_EVENT_GFX_GREEN_VS_SEEKER_BIKE
|
||||
[OBJ_EVENT_GFX_RS_BRENDAN / 2] = 0x10, // OBJ_EVENT_GFX_RS_MAY
|
||||
[OBJ_EVENT_GFX_LITTLE_BOY / 2] = 0x10, // OBJ_EVENT_GFX_LITTLE_GIRL
|
||||
|
||||
@@ -5557,7 +5557,7 @@ static void ObjectEventSetSingleMovement(struct ObjectEvent *objectEvent, struct
|
||||
|
||||
if (gQuestLogPlaybackState == 2)
|
||||
{
|
||||
sub_81124EC(objectEvent->localId, objectEvent->mapNum, objectEvent->mapGroup, animId);
|
||||
QuestLogRecordNPCStep(objectEvent->localId, objectEvent->mapNum, objectEvent->mapGroup, animId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+7
-7
@@ -1293,7 +1293,7 @@ static bool8 EscalatorWarpEffect_1(struct Task * task)
|
||||
FreezeObjectEvents();
|
||||
CameraObjectReset2();
|
||||
StartEscalator(task->data[1]);
|
||||
sub_81128BC(1);
|
||||
QuestLog_OnEscalatorWarp(QL_ESCALATOR_OUT);
|
||||
task->data[0]++;
|
||||
return FALSE;
|
||||
}
|
||||
@@ -1534,7 +1534,7 @@ static bool8 EscalatorWarpInEffect_7(struct Task * task)
|
||||
UnfreezeObjectEvents();
|
||||
ObjectEventSetHeldMovement(objectEvent, GetWalkNormalMovementAction(DIR_EAST));
|
||||
DestroyTask(FindTaskIdByFunc(Task_EscalatorWarpInFieldEffect));
|
||||
sub_81128BC(2);
|
||||
QuestLog_OnEscalatorWarp(QL_ESCALATOR_IN);
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
@@ -2919,7 +2919,7 @@ static void UseSurfEffect_2(struct Task * task)
|
||||
objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||
if (!ObjectEventIsMovementOverridden(objectEvent) || ObjectEventClearHeldMovementIfFinished(objectEvent))
|
||||
{
|
||||
sub_805CB70();
|
||||
StartPlayerAvatarSummonMonForFieldMoveAnim();
|
||||
ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION);
|
||||
task->data[0]++;
|
||||
}
|
||||
@@ -2988,7 +2988,7 @@ static void (*const sUseVsSeekerEffectFuncs[])(struct Task * task) = {
|
||||
u32 FldEff_UseVsSeeker(void)
|
||||
{
|
||||
if (gQuestLogState == QL_STATE_RECORDING)
|
||||
sub_811278C(8, 89);
|
||||
QuestLogRecordPlayerAvatarGfxTransitionWithDuration(8, 89);
|
||||
CreateTask(Task_FldEffUseVsSeeker, 0xFF);
|
||||
return 0;
|
||||
}
|
||||
@@ -3011,7 +3011,7 @@ static void UseVsSeekerEffect_2(struct Task * task)
|
||||
struct ObjectEvent * playerObj = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||
if (!ObjectEventIsMovementOverridden(playerObj) || ObjectEventClearHeldMovementIfFinished(playerObj))
|
||||
{
|
||||
sub_805CBE8();
|
||||
StartPlayerAvatarVsSeekerAnim();
|
||||
ObjectEventSetHeldMovement(playerObj, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION);
|
||||
task->data[0]++;
|
||||
}
|
||||
@@ -3132,7 +3132,7 @@ static void UseFlyEffect_1(struct Task * task)
|
||||
task->data[15] = gPlayerAvatar.flags;
|
||||
gPlayerAvatar.preventStep = TRUE;
|
||||
SetPlayerAvatarStateMask(1);
|
||||
sub_805CB70();
|
||||
StartPlayerAvatarSummonMonForFieldMoveAnim();
|
||||
ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION);
|
||||
task->data[0]++;
|
||||
}
|
||||
@@ -3518,7 +3518,7 @@ static void FlyInEffect_4(struct Task * task)
|
||||
sprite->pos2.x = 0;
|
||||
sprite->pos2.y = 0;
|
||||
sprite->coordOffsetEnabled = TRUE;
|
||||
sub_805CB70();
|
||||
StartPlayerAvatarSummonMonForFieldMoveAnim();
|
||||
ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION);
|
||||
task->data[0]++;
|
||||
}
|
||||
|
||||
+39
-39
@@ -581,12 +581,12 @@ u8 CheckForObjectEventCollision(struct ObjectEvent *objectEvent, s16 x, s16 y, u
|
||||
return collision;
|
||||
}
|
||||
|
||||
static const u8 gUnknown_835B820[] = {
|
||||
MOVEMENT_ACTION_FACE_DOWN_FAST,
|
||||
MOVEMENT_ACTION_FACE_DOWN_FAST,
|
||||
MOVEMENT_ACTION_FACE_UP_FAST,
|
||||
MOVEMENT_ACTION_FACE_LEFT_FAST,
|
||||
MOVEMENT_ACTION_FACE_RIGHT_FAST
|
||||
static const u8 sQuestLogSurfDismountActionIds[] = {
|
||||
QL_PLAYER_GFX_STOP_SURF_S,
|
||||
QL_PLAYER_GFX_STOP_SURF_S,
|
||||
QL_PLAYER_GFX_STOP_SURF_N,
|
||||
QL_PLAYER_GFX_STOP_SURF_W,
|
||||
QL_PLAYER_GFX_STOP_SURF_E
|
||||
};
|
||||
|
||||
static bool8 CanStopSurfing(s16 x, s16 y, u8 direction)
|
||||
@@ -595,7 +595,7 @@ static bool8 CanStopSurfing(s16 x, s16 y, u8 direction)
|
||||
&& MapGridGetZCoordAt(x, y) == 3
|
||||
&& GetObjectEventIdByXYZ(x, y, 3) == OBJECT_EVENTS_COUNT)
|
||||
{
|
||||
sub_811278C(gUnknown_835B820[direction], 16);
|
||||
QuestLogRecordPlayerAvatarGfxTransitionWithDuration(sQuestLogSurfDismountActionIds[direction], 16);
|
||||
CreateStopSurfingTask(direction);
|
||||
return TRUE;
|
||||
}
|
||||
@@ -711,21 +711,21 @@ static void PlayerAvatarTransition_Dummy(struct ObjectEvent * playerObjEvent)
|
||||
|
||||
static void PlayerAvatarTransition_Normal(struct ObjectEvent * playerObjEvent)
|
||||
{
|
||||
sub_8150474(0);
|
||||
sub_8150498(0);
|
||||
QuestLogTryRecordPlayerAvatarGfxTransition(QL_PLAYER_GFX_NORMAL);
|
||||
QuestLogCallUpdatePlayerSprite(QL_PLAYER_GFX_NORMAL);
|
||||
}
|
||||
|
||||
static void PlayerAvatarTransition_Bike(struct ObjectEvent * playerObjEvent)
|
||||
{
|
||||
sub_8150474(1);
|
||||
sub_8150498(1);
|
||||
QuestLogTryRecordPlayerAvatarGfxTransition(QL_PLAYER_GFX_BIKE);
|
||||
QuestLogCallUpdatePlayerSprite(QL_PLAYER_GFX_BIKE);
|
||||
InitPlayerAvatarBikeState(0, 0);
|
||||
}
|
||||
|
||||
static void PlayerAvatarTransition_Surfing(struct ObjectEvent * playerObjEvent)
|
||||
{
|
||||
sub_8150474(3);
|
||||
sub_8150498(3);
|
||||
QuestLogTryRecordPlayerAvatarGfxTransition(QL_PLAYER_GFX_SURF);
|
||||
QuestLogCallUpdatePlayerSprite(QL_PLAYER_GFX_SURF);
|
||||
}
|
||||
|
||||
static void PlayerAvatarTransition_Underwater(struct ObjectEvent * playerObjEvent)
|
||||
@@ -809,20 +809,20 @@ static void PlayerSetAnimId(u8 movementActionId, u8 copyableMovement)
|
||||
{
|
||||
PlayerSetCopyableMovement(copyableMovement);
|
||||
if (!ObjectEventSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], movementActionId))
|
||||
sub_8112628(movementActionId);
|
||||
QuestLogRecordPlayerStep(movementActionId);
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_805C06C(struct ObjectEvent * objectEvent, u8 movementAction)
|
||||
{
|
||||
if (!ObjectEventSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], movementAction))
|
||||
sub_81126AC(movementAction, 0);
|
||||
QuestLogRecordPlayerStepWithDuration(movementAction, 0);
|
||||
}
|
||||
|
||||
static void sub_805C0A4(struct ObjectEvent * objectEvent, u8 movementAction)
|
||||
{
|
||||
if (!ObjectEventSetHeldMovement(objectEvent, movementAction))
|
||||
sub_8112588(objectEvent->localId, objectEvent->mapNum, objectEvent->mapGroup, movementAction, 32);
|
||||
QuestLogRecordNPCStepWithDuration(objectEvent->localId, objectEvent->mapNum, objectEvent->mapGroup, movementAction, 32);
|
||||
}
|
||||
|
||||
void sub_805C0D4(u8 direction)
|
||||
@@ -1126,12 +1126,12 @@ void StopPlayerAvatar(void)
|
||||
}
|
||||
|
||||
static const u8 sPlayerAvatarGfxIds[][GENDER_COUNT] = {
|
||||
{OBJ_EVENT_GFX_RED_NORMAL, OBJ_EVENT_GFX_GREEN_NORMAL},
|
||||
{OBJ_EVENT_GFX_RED_BIKE, OBJ_EVENT_GFX_GREEN_BIKE},
|
||||
{OBJ_EVENT_GFX_RED_SURF, OBJ_EVENT_GFX_GREEN_SURF},
|
||||
{OBJ_EVENT_GFX_RED_ITEM, OBJ_EVENT_GFX_GREEN_ITEM},
|
||||
{OBJ_EVENT_GFX_RED_FISH, OBJ_EVENT_GFX_GREEN_FISH},
|
||||
{OBJ_EVENT_GFX_RED_VS_SEEKER, OBJ_EVENT_GFX_GREEN_VS_SEEKER},
|
||||
[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_SURF] = {OBJ_EVENT_GFX_RED_SURF, OBJ_EVENT_GFX_GREEN_SURF},
|
||||
[PLAYER_AVATAR_GFX_FIELD_MOVE] = {OBJ_EVENT_GFX_RED_FIELD_MOVE, OBJ_EVENT_GFX_GREEN_FIELD_MOVE},
|
||||
[PLAYER_AVATAR_GFX_FISH] = {OBJ_EVENT_GFX_RED_FISH, OBJ_EVENT_GFX_GREEN_FISH},
|
||||
[PLAYER_AVATAR_GFX_VSSEEKER] = {OBJ_EVENT_GFX_RED_VS_SEEKER, OBJ_EVENT_GFX_GREEN_VS_SEEKER},
|
||||
};
|
||||
|
||||
static const u8 sHoennLinkPartnerGfxIds[] = {
|
||||
@@ -1166,7 +1166,7 @@ u8 GetPlayerAvatarGenderByGraphicsId(u8 gfxId)
|
||||
case OBJ_EVENT_GFX_GREEN_NORMAL:
|
||||
case OBJ_EVENT_GFX_GREEN_BIKE:
|
||||
case OBJ_EVENT_GFX_GREEN_SURF:
|
||||
case OBJ_EVENT_GFX_GREEN_ITEM:
|
||||
case OBJ_EVENT_GFX_GREEN_FIELD_MOVE:
|
||||
case OBJ_EVENT_GFX_GREEN_FISH:
|
||||
return FEMALE;
|
||||
default:
|
||||
@@ -1283,7 +1283,7 @@ void InitPlayerAvatar(s16 x, s16 y, u8 direction, u8 gender)
|
||||
struct ObjectEvent *objectEvent;
|
||||
|
||||
playerObjEventTemplate.localId = OBJ_EVENT_ID_PLAYER;
|
||||
playerObjEventTemplate.graphicsId = GetPlayerAvatarGraphicsIdByStateIdAndGender(PLAYER_AVATAR_STATE_NORMAL, gender);
|
||||
playerObjEventTemplate.graphicsId = GetPlayerAvatarGraphicsIdByStateIdAndGender(PLAYER_AVATAR_GFX_NORMAL, gender);
|
||||
playerObjEventTemplate.x = x - 7;
|
||||
playerObjEventTemplate.y = y - 7;
|
||||
playerObjEventTemplate.elevation = 0;
|
||||
@@ -1315,34 +1315,34 @@ void SetPlayerInvisibility(bool8 invisible)
|
||||
gSprites[gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId].invisible = invisible;
|
||||
}
|
||||
|
||||
void sub_805CB70(void)
|
||||
void StartPlayerAvatarSummonMonForFieldMoveAnim(void)
|
||||
{
|
||||
ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_SURFING));
|
||||
ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_FIELD_MOVE));
|
||||
StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], 0);
|
||||
}
|
||||
|
||||
static const u8 gUnknown_835B88E[] = {
|
||||
static const u8 sPlayerAvatarVsSeekerBikeGfxIds[] = {
|
||||
OBJ_EVENT_GFX_RED_VS_SEEKER_BIKE,
|
||||
OBJ_EVENT_GFX_GREEN_VS_SEEKER_BIKE
|
||||
};
|
||||
|
||||
u8 sub_805CBB8(void)
|
||||
u8 GetPlayerAvatarVsSeekerGfxId(void)
|
||||
{
|
||||
if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE))
|
||||
return gUnknown_835B88E[gPlayerAvatar.gender];
|
||||
return sPlayerAvatarVsSeekerBikeGfxIds[gPlayerAvatar.gender];
|
||||
else
|
||||
return GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_FIELD_MOVE);
|
||||
return GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_VSSEEKER);
|
||||
}
|
||||
|
||||
void sub_805CBE8(void)
|
||||
void StartPlayerAvatarVsSeekerAnim(void)
|
||||
{
|
||||
ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], sub_805CBB8());
|
||||
ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarVsSeekerGfxId());
|
||||
StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], 0);
|
||||
}
|
||||
|
||||
void sub_805CC2C(u8 direction)
|
||||
void StartPlayerAvatarFishAnim(u8 direction)
|
||||
{
|
||||
sub_8150498(2);
|
||||
QuestLogCallUpdatePlayerSprite(QL_PLAYER_GFX_FISH);
|
||||
}
|
||||
|
||||
void nullsub_24(u8 direction)
|
||||
@@ -1596,7 +1596,7 @@ void SeafoamIslandsB4F_CurrentDumpsPlayerOnLand(void)
|
||||
{
|
||||
if (gQuestLogPlaybackState != 1 && gQuestLogPlaybackState != 3)
|
||||
{
|
||||
sub_811278C(gUnknown_835B820[DIR_NORTH], 16);
|
||||
QuestLogRecordPlayerAvatarGfxTransitionWithDuration(sQuestLogSurfDismountActionIds[DIR_NORTH], 16);
|
||||
CreateStopSurfingTask(DIR_NORTH);
|
||||
}
|
||||
}
|
||||
@@ -1621,7 +1621,7 @@ static void Task_WaitStopSurfing(u8 taskId)
|
||||
|
||||
if (ObjectEventClearHeldMovementIfFinished(playerObjEvent))
|
||||
{
|
||||
ObjectEventSetGraphicsId(playerObjEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_NORMAL));
|
||||
ObjectEventSetGraphicsId(playerObjEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_NORMAL));
|
||||
sub_805C06C(playerObjEvent, GetFaceDirectionMovementAction(playerObjEvent->facingDirection));
|
||||
gPlayerAvatar.preventStep = FALSE;
|
||||
ScriptContext2_Disable();
|
||||
@@ -1674,8 +1674,8 @@ void StartFishing(u8 rod)
|
||||
|
||||
gTasks[taskId].tFishingRod = rod;
|
||||
Task_Fishing(taskId);
|
||||
if (sub_8150474(2) == TRUE)
|
||||
sub_8112C9C();
|
||||
if (QuestLogTryRecordPlayerAvatarGfxTransition(QL_PLAYER_GFX_FISH) == TRUE)
|
||||
QL_AfterRecordFishActionSuccessful();
|
||||
}
|
||||
|
||||
|
||||
@@ -1705,7 +1705,7 @@ static bool8 Fishing2(struct Task *task)
|
||||
playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||
ObjectEventClearHeldMovementIfActive(playerObjEvent);
|
||||
playerObjEvent->enableAnim = 1;
|
||||
sub_805CC2C(playerObjEvent->facingDirection);
|
||||
StartPlayerAvatarFishAnim(playerObjEvent->facingDirection);
|
||||
task->tStep++;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ static void Task_FieldEffectShowMon_Init(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_805CB70();
|
||||
StartPlayerAvatarSummonMonForFieldMoveAnim();
|
||||
ObjectEventSetHeldMovement(&gObjectEvents[mapObjId], MOVEMENT_ACTION_START_ANIM_IN_DIRECTION);
|
||||
gTasks[taskId].func = Task_FieldEffectShowMon_WaitPlayerAnim;
|
||||
}
|
||||
|
||||
+27
-16
@@ -1295,10 +1295,10 @@ void sub_811246C(struct Sprite *sprite)
|
||||
ObjectEventSetHeldMovement(objectEvent, sMovementScripts[0][0]);
|
||||
sMovementScripts[0][0] = 0xFF;
|
||||
}
|
||||
if (sMovementScripts[0][1] != OBJ_EVENT_ID_PLAYER)
|
||||
if (sMovementScripts[0][1] != 0xFF)
|
||||
{
|
||||
sub_8150454();
|
||||
sMovementScripts[0][1] = OBJ_EVENT_ID_PLAYER;
|
||||
QuestLogUpdatePlayerSprite(sMovementScripts[0][1]);
|
||||
sMovementScripts[0][1] = 0xFF;
|
||||
}
|
||||
sub_8063E28(objectEvent, sprite);
|
||||
}
|
||||
@@ -1313,7 +1313,7 @@ void sub_811246C(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_81124EC(u8 localId, u8 mapNum, u8 mapGroup, u8 movementActionId)
|
||||
void QuestLogRecordNPCStep(u8 localId, u8 mapNum, u8 mapGroup, u8 movementActionId)
|
||||
{
|
||||
if (!RecordHeadAtEndOfEntryOrScriptContext2Enabled())
|
||||
{
|
||||
@@ -1328,7 +1328,7 @@ void sub_81124EC(u8 localId, u8 mapNum, u8 mapGroup, u8 movementActionId)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8112588(u8 localId, u8 mapNum, u8 mapGroup, u8 movementActionId, u8 duration)
|
||||
void QuestLogRecordNPCStepWithDuration(u8 localId, u8 mapNum, u8 mapGroup, u8 movementActionId, u8 duration)
|
||||
{
|
||||
if (!RecordHeadAtEndOfEntry())
|
||||
{
|
||||
@@ -1343,7 +1343,7 @@ void sub_8112588(u8 localId, u8 mapNum, u8 mapGroup, u8 movementActionId, u8 dur
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8112628(u8 movementActionId)
|
||||
void QuestLogRecordPlayerStep(u8 movementActionId)
|
||||
{
|
||||
if (!RecordHeadAtEndOfEntryOrScriptContext2Enabled())
|
||||
{
|
||||
@@ -1360,7 +1360,7 @@ void sub_8112628(u8 movementActionId)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_81126AC(u8 movementActionId, u8 duration)
|
||||
void QuestLogRecordPlayerStepWithDuration(u8 movementActionId, u8 duration)
|
||||
{
|
||||
if (!RecordHeadAtEndOfEntry())
|
||||
{
|
||||
@@ -1374,7 +1374,7 @@ void sub_81126AC(u8 movementActionId, u8 duration)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8112720(u8 movementActionId)
|
||||
void QuestLogRecordPlayerAvatarGfxTransition(u8 movementActionId)
|
||||
{
|
||||
if (!RecordHeadAtEndOfEntry())
|
||||
{
|
||||
@@ -1387,7 +1387,7 @@ void sub_8112720(u8 movementActionId)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_811278C(u8 movementActionId, u8 duration)
|
||||
void QuestLogRecordPlayerAvatarGfxTransitionWithDuration(u8 movementActionId, u8 duration)
|
||||
{
|
||||
if (!RecordHeadAtEndOfEntry())
|
||||
{
|
||||
@@ -1404,13 +1404,21 @@ void sub_81127F8(struct FieldInput * a0)
|
||||
{
|
||||
if (sQuestLogCursor < sNumEventsInLogEntry)
|
||||
{
|
||||
// Retain only the following fields:
|
||||
// - pressedAButton
|
||||
// - checkStandardWildEncounter
|
||||
// - heldDirection
|
||||
// - heldDirection2
|
||||
// - tookStep
|
||||
// - pressedBButton
|
||||
// - dpadDirection
|
||||
u32 r2 = *(u32 *)a0 & 0x00FF00F3;
|
||||
sCurQuestLogEntry[sQuestLogCursor].duration = sNextStepDelay;
|
||||
sCurQuestLogEntry[sQuestLogCursor].command = 2;
|
||||
sCurQuestLogEntry[sQuestLogCursor].localId = r2;
|
||||
sCurQuestLogEntry[sQuestLogCursor].mapNum = r2 >> 8;
|
||||
sCurQuestLogEntry[sQuestLogCursor].mapNum = r2 >> 8; // always 0
|
||||
sCurQuestLogEntry[sQuestLogCursor].mapGroup = r2 >> 16;
|
||||
sCurQuestLogEntry[sQuestLogCursor].animId = r2 >> 24;
|
||||
sCurQuestLogEntry[sQuestLogCursor].animId = r2 >> 24; // always 0
|
||||
sQuestLogCursor++;
|
||||
if (ScriptContext2_IsEnabled())
|
||||
sNextStepDelay = TRUE;
|
||||
@@ -1434,13 +1442,13 @@ static void TogglePlaybackStateForOverworldLock(u8 a0)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_81128BC(u8 a0)
|
||||
void QuestLog_OnEscalatorWarp(u8 direction)
|
||||
{
|
||||
u8 r1 = sub_8112CAC();
|
||||
|
||||
switch (a0)
|
||||
switch (direction)
|
||||
{
|
||||
case 1:
|
||||
case QL_ESCALATOR_OUT: // warp out
|
||||
if (r1 == 1)
|
||||
gQuestLogPlaybackState = 3;
|
||||
else if (r1 == 2)
|
||||
@@ -1452,7 +1460,7 @@ void sub_81128BC(u8 a0)
|
||||
gQuestLogPlaybackState = 4;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
case QL_ESCALATOR_IN: // warp in
|
||||
if (r1 == 1)
|
||||
gQuestLogPlaybackState = 1;
|
||||
else if (r1 == 2)
|
||||
@@ -1546,9 +1554,11 @@ void sub_8112B3C(void)
|
||||
switch (sCurQuestLogEntry[sQuestLogCursor].command)
|
||||
{
|
||||
case 0:
|
||||
// NPC movement action
|
||||
sMovementScripts[sCurQuestLogEntry[sQuestLogCursor].localId][0] = sCurQuestLogEntry[sQuestLogCursor].animId;
|
||||
break;
|
||||
case 1:
|
||||
// State transition
|
||||
sMovementScripts[sCurQuestLogEntry[sQuestLogCursor].localId][1] = sCurQuestLogEntry[sQuestLogCursor].animId;
|
||||
break;
|
||||
case 2:
|
||||
@@ -1556,6 +1566,7 @@ void sub_8112B3C(void)
|
||||
*(u32 *)&gQuestLogFieldInput = ((sCurQuestLogEntry[sQuestLogCursor].animId << 24) | (sCurQuestLogEntry[sQuestLogCursor].mapGroup << 16) | (sCurQuestLogEntry[sQuestLogCursor].mapNum << 8) | (sCurQuestLogEntry[sQuestLogCursor].localId << 0));
|
||||
break;
|
||||
case 3:
|
||||
// End
|
||||
gQuestLogPlaybackState = 3;
|
||||
break;
|
||||
case 0xFE:
|
||||
@@ -1596,7 +1607,7 @@ void sub_8112B3C(void)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8112C9C(void)
|
||||
void QL_AfterRecordFishActionSuccessful(void)
|
||||
{
|
||||
sNextStepDelay++;
|
||||
}
|
||||
|
||||
+56
-55
@@ -7,71 +7,72 @@
|
||||
#include "field_effect.h"
|
||||
#include "field_effect_helpers.h"
|
||||
#include "quest_log.h"
|
||||
#include "quest_log_player.h"
|
||||
|
||||
static void sub_81504A8(void);
|
||||
static void sub_81504E8(void);
|
||||
static void sub_8150530(void);
|
||||
static void sub_81505C4(u8 taskId);
|
||||
static void sub_8150708(void);
|
||||
static void sub_815077C(void);
|
||||
static void sub_8150794(u8 taskId);
|
||||
static void sub_81507CC(void);
|
||||
static void sub_81507D8(void);
|
||||
static void sub_81507E4(void);
|
||||
static void sub_81507F0(void);
|
||||
static void sub_81507BC(struct ObjectEvent *a0, u8 a1);
|
||||
static void QL_GfxTransition_Normal(void);
|
||||
static void QL_GfxTransition_Bike(void);
|
||||
static void QL_GfxTransition_Fish(void);
|
||||
static void Task_QLFishMovement(u8 taskId);
|
||||
static void QL_GfxTransition_StartSurf(void);
|
||||
static void QL_GfxTransition_VSSeeker(void);
|
||||
static void Task_QLVSSeekerMovement(u8 taskId);
|
||||
static void QL_GfxTransition_StopSurfSouth(void);
|
||||
static void QL_GfxTransition_StopSurfNorth(void);
|
||||
static void QL_GfxTransition_StopSurfWest(void);
|
||||
static void QL_GfxTransition_StopSurfEast(void);
|
||||
static void QL_SetObjectGraphicsId(struct ObjectEvent *object, u8 graphicsId);
|
||||
|
||||
static void (*const gUnknown_8471EDC[])(void) = {
|
||||
sub_81504A8,
|
||||
sub_81504E8,
|
||||
sub_8150530,
|
||||
sub_8150708,
|
||||
sub_81507CC,
|
||||
sub_81507D8,
|
||||
sub_81507E4,
|
||||
sub_81507F0,
|
||||
sub_815077C
|
||||
static void (*const sQLGfxTransitions[])(void) = {
|
||||
[QL_PLAYER_GFX_NORMAL] = QL_GfxTransition_Normal,
|
||||
[QL_PLAYER_GFX_BIKE] = QL_GfxTransition_Bike,
|
||||
[QL_PLAYER_GFX_FISH] = QL_GfxTransition_Fish,
|
||||
[QL_PLAYER_GFX_SURF] = QL_GfxTransition_StartSurf,
|
||||
[QL_PLAYER_GFX_STOP_SURF_S] = QL_GfxTransition_StopSurfSouth,
|
||||
[QL_PLAYER_GFX_STOP_SURF_N] = QL_GfxTransition_StopSurfNorth,
|
||||
[QL_PLAYER_GFX_STOP_SURF_W] = QL_GfxTransition_StopSurfWest,
|
||||
[QL_PLAYER_GFX_STOP_SURF_E] = QL_GfxTransition_StopSurfEast,
|
||||
[QL_PLAYER_GFX_VSSEEKER] = QL_GfxTransition_VSSeeker
|
||||
};
|
||||
|
||||
void sub_8150454(u8 a0)
|
||||
void QuestLogUpdatePlayerSprite(u8 state)
|
||||
{
|
||||
if (a0 < NELEMS(gUnknown_8471EDC))
|
||||
gUnknown_8471EDC[a0]();
|
||||
if (state < NELEMS(sQLGfxTransitions))
|
||||
sQLGfxTransitions[state]();
|
||||
}
|
||||
|
||||
bool32 sub_8150474(u8 a0)
|
||||
bool32 QuestLogTryRecordPlayerAvatarGfxTransition(u8 state)
|
||||
{
|
||||
if (gQuestLogPlaybackState == 2)
|
||||
{
|
||||
sub_8112720(a0);
|
||||
QuestLogRecordPlayerAvatarGfxTransition(state);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_8150498(u8 a0)
|
||||
void QuestLogCallUpdatePlayerSprite(u8 state)
|
||||
{
|
||||
return sub_8150454(a0);
|
||||
return QuestLogUpdatePlayerSprite(state);
|
||||
}
|
||||
|
||||
static void sub_81504A8(void)
|
||||
static void QL_GfxTransition_Normal(void)
|
||||
{
|
||||
struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||
sub_81507BC(objectEvent, GetPlayerAvatarGraphicsIdByStateId(0));
|
||||
QL_SetObjectGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_NORMAL));
|
||||
ObjectEventTurn(objectEvent, objectEvent->movementDirection);
|
||||
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_ON_FOOT);
|
||||
}
|
||||
|
||||
static void sub_81504E8(void)
|
||||
static void QL_GfxTransition_Bike(void)
|
||||
{
|
||||
struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||
sub_81507BC(objectEvent, GetPlayerAvatarGraphicsIdByStateId(1));
|
||||
QL_SetObjectGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_BIKE));
|
||||
ObjectEventTurn(objectEvent, objectEvent->movementDirection);
|
||||
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_MACH_BIKE);
|
||||
InitPlayerAvatarBikeState(0, 0);
|
||||
}
|
||||
|
||||
static void sub_8150530(void)
|
||||
static void QL_GfxTransition_Fish(void)
|
||||
{
|
||||
struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||
struct Sprite *sprite = &gSprites[objectEvent->spriteId];
|
||||
@@ -81,17 +82,17 @@ static void sub_8150530(void)
|
||||
u8 taskId;
|
||||
ScriptContext2_Enable();
|
||||
gPlayerAvatar.preventStep = TRUE;
|
||||
taskId = CreateTask(sub_81505C4, 0xFF);
|
||||
taskId = CreateTask(Task_QLFishMovement, 0xFF);
|
||||
gTasks[taskId].data[0] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_81507BC(objectEvent, GetPlayerAvatarGraphicsIdByStateId(4));
|
||||
QL_SetObjectGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_FISH));
|
||||
StartSpriteAnim(sprite, GetFishingDirectionAnimNum(objectEvent->facingDirection));
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_81505C4(u8 taskId)
|
||||
static void Task_QLFishMovement(u8 taskId)
|
||||
{
|
||||
struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||
struct Sprite *sprite = &gSprites[objectEvent->spriteId];
|
||||
@@ -101,7 +102,7 @@ static void sub_81505C4(u8 taskId)
|
||||
case 0:
|
||||
ObjectEventClearHeldMovementIfActive(objectEvent);
|
||||
objectEvent->enableAnim = TRUE;
|
||||
sub_81507BC(objectEvent, GetPlayerAvatarGraphicsIdByStateId(4));
|
||||
QL_SetObjectGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_FISH));
|
||||
StartSpriteAnim(sprite, GetFishingDirectionAnimNum(objectEvent->facingDirection));
|
||||
gTasks[taskId].data[0]++;
|
||||
gTasks[taskId].data[1] = 0;
|
||||
@@ -122,9 +123,9 @@ static void sub_81505C4(u8 taskId)
|
||||
if (sprite->animEnded)
|
||||
{
|
||||
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING))
|
||||
sub_81507BC(objectEvent, GetPlayerAvatarGraphicsIdByStateId(0));
|
||||
QL_SetObjectGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_NORMAL));
|
||||
else
|
||||
sub_81507BC(objectEvent, GetPlayerAvatarGraphicsIdByStateId(2));
|
||||
QL_SetObjectGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_SURF));
|
||||
ObjectEventTurn(objectEvent, objectEvent->movementDirection);
|
||||
sprite->pos2.x = 0;
|
||||
sprite->pos2.y = 0;
|
||||
@@ -135,14 +136,14 @@ static void sub_81505C4(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8150708(void)
|
||||
static void QL_GfxTransition_StartSurf(void)
|
||||
{
|
||||
struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||
u8 fieldEffectId;
|
||||
|
||||
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING))
|
||||
{
|
||||
sub_81507BC(objectEvent, GetPlayerAvatarGraphicsIdByStateId(2));
|
||||
QL_SetObjectGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_SURF));
|
||||
ObjectEventTurn(objectEvent, objectEvent->movementDirection);
|
||||
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_SURFING);
|
||||
gFieldEffectArguments[0] = objectEvent->currentCoords.x;
|
||||
@@ -154,13 +155,13 @@ static void sub_8150708(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_815077C(void)
|
||||
static void QL_GfxTransition_VSSeeker(void)
|
||||
{
|
||||
FieldEffectStart(FLDEFF_USE_VS_SEEKER);
|
||||
CreateTask(sub_8150794, 0x00);
|
||||
CreateTask(Task_QLVSSeekerMovement, 0x00);
|
||||
}
|
||||
|
||||
static void sub_8150794(u8 taskId)
|
||||
static void Task_QLVSSeekerMovement(u8 taskId)
|
||||
{
|
||||
if (!FieldEffectActiveListContains(FLDEFF_USE_VS_SEEKER))
|
||||
{
|
||||
@@ -170,27 +171,27 @@ static void sub_8150794(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_81507BC(struct ObjectEvent * a0, u8 a1)
|
||||
static void QL_SetObjectGraphicsId(struct ObjectEvent * object, u8 graphicsId)
|
||||
{
|
||||
ObjectEventSetGraphicsId(a0, a1);
|
||||
ObjectEventSetGraphicsId(object, graphicsId);
|
||||
}
|
||||
|
||||
static void sub_81507CC(void)
|
||||
static void QL_GfxTransition_StopSurfSouth(void)
|
||||
{
|
||||
CreateStopSurfingTask_NoMusicChange(1);
|
||||
CreateStopSurfingTask_NoMusicChange(DIR_SOUTH);
|
||||
}
|
||||
|
||||
static void sub_81507D8(void)
|
||||
static void QL_GfxTransition_StopSurfNorth(void)
|
||||
{
|
||||
CreateStopSurfingTask_NoMusicChange(2);
|
||||
CreateStopSurfingTask_NoMusicChange(DIR_NORTH);
|
||||
}
|
||||
|
||||
static void sub_81507E4(void)
|
||||
static void QL_GfxTransition_StopSurfWest(void)
|
||||
{
|
||||
CreateStopSurfingTask_NoMusicChange(3);
|
||||
CreateStopSurfingTask_NoMusicChange(DIR_WEST);
|
||||
}
|
||||
|
||||
static void sub_81507F0(void)
|
||||
static void QL_GfxTransition_StopSurfEast(void)
|
||||
{
|
||||
CreateStopSurfingTask_NoMusicChange(4);
|
||||
CreateStopSurfingTask_NoMusicChange(DIR_EAST);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user