pokefirered/include/follower_npc.h
2025-04-30 23:25:45 +02:00

130 lines
3.7 KiB
C

// #ifndef GUARD_FOLLOWER_NPC_H
// #define GUARD_FOLLOWER_NPC_H
// #include "constants/follower_npc.h"
// #define MOVEMENT_INVALID 0xFE
// struct FollowerNPCSpriteGraphics
// {
// u16 normalId;
// u16 machBikeId;
// u16 acroBikeId;
// u16 surfId;
// u16 underwaterId;
// };
// enum FollowerNPCDataTypes
// {
// FNPC_DATA_IN_PROGRESS,
// FNPC_DATA_WARP_END,
// FNPC_DATA_SURF_BLOB,
// FNPC_DATA_COME_OUT_DOOR,
// FNPC_DATA_OBJ_ID,
// FNPC_DATA_CURRENT_SPRITE,
// FNPC_DATA_DELAYED_STATE,
// FNPC_DATA_MAP_ID,
// FNPC_DATA_MAP_NUM,
// FNPC_DATA_MAP_GROUP,
// FNPC_DATA_EVENT_FLAG,
// FNPC_DATA_GFX_ID,
// FNPC_DATA_FOLLOWER_FLAGS,
// FNPC_DATA_BATTLE_PARTNER
// };
// enum FollowerNPCSpriteTypes
// {
// FOLLOWER_NPC_SPRITE_INDEX_NORMAL,
// FOLLOWER_NPC_SPRITE_INDEX_MACH_BIKE,
// FOLLOWER_NPC_SPRITE_INDEX_ACRO_BIKE,
// FOLLOWER_NPC_SPRITE_INDEX_SURF,
// FOLLOWER_NPC_SPRITE_INDEX_UNDERWATER,
// };
// enum FollowerNPCDoorStairsStates
// {
// FNPC_DOOR_NONE,
// FNPC_DOOR_NEEDS_TO_EXIT
// };
// enum FollowerNPCWarpEndStates
// {
// FNPC_WARP_NONE,
// FNPC_WARP_REAPPEAR
// };
// enum FollowerNPCSurfBlobStates
// {
// FNPC_SURF_BLOB_NONE,
// FNPC_SURF_BLOB_NEW,
// FNPC_SURF_BLOB_RECREATE,
// FNPC_SURF_BLOB_DESTROY
// };
// enum FollowerNPCOutOfDoorTaskStates{
// OPEN_DOOR,
// NPC_WALK_OUT,
// CLOSE_DOOR,
// UNFREEZE_OBJECTS,
// REALLOW_MOVEMENT
// };
// enum FollowerNPCHandleEscalatorFinishTaskStates{
// MOVE_TO_PLAYER_POS,
// WAIT_FOR_PLAYER_MOVE,
// SHOW_FOLLOWER_DOWN,
// MOVE_FOLLOWER_DOWN,
// SHOW_FOLLOWER_UP,
// MOVE_FOLLOWER_UP,
// MOVEMENT_FINISH
// };
// void SetFollowerNPCData(enum FollowerNPCDataTypes type, u32 value);
// const u8 *GetFollowerNPCScriptPointer(void);
// u32 GetFollowerNPCData(enum FollowerNPCDataTypes type);
// void ClearFollowerNPCData(void);
// u32 DetermineFollowerNPCState(struct ObjectEvent *follower, u32 state, u32 direction);
// void SetFollowerNPCSprite(u32 spriteIndex);
// bool32 PlayerHasFollowerNPC(void);
// void NPCFollow(struct ObjectEvent *npc, u32 state, bool32 ignoreScriptActive);
// void CreateFollowerNPCAvatar(void);
// void FollowerNPC_HandleSprite(void);
// u32 DetermineFollowerNPCDirection(struct ObjectEvent *player, struct ObjectEvent *follower);
// u32 GetFollowerNPCObjectId(void);
// bool32 CheckFollowerNPCFlag(u32 flag);
// bool32 FollowerNPC_IsCollisionExempt(struct ObjectEvent *obstacle, struct ObjectEvent *collider);
// void HideNPCFollower(void);
// void FollowerNPC_WarpSetEnd(void);
// bool32 FollowerNPCCanBike(void);
// void FollowerNPC_HandleBike(void);
// void FollowerNPC_FollowerToWater(void);
// void FollowerNPC_SetIndicatorToRecreateSurfBlob(void);
// void FollowerNPC_BindToSurfBlobOnReloadScreen(void);
// void PrepareFollowerNPCDismountSurf(void);
// bool32 FollowerNPCComingThroughDoor(void);
// void FollowerNPC_SetIndicatorToComeOutDoor(void);
// void EscalatorMoveFollowerNPC(u32 movementType);
// void EscalatorMoveFollowerNPCFinish(void);
// void FollowerNPCWalkIntoPlayerForLeaveMap(void);
// void FollowerNPCHideForLeaveMap(struct ObjectEvent *follower);
// void FollowerNPCReappearAfterLeaveMap(struct ObjectEvent *follower, struct ObjectEvent *player);
// void FollowerNPCFaceAfterLeaveMap(void);
// bool32 FollowerNPCIsBattlePartner(void);
// bool32 IsNPCFollowerWildBattle(void);
// void PrepareForFollowerNPCBattle(void);
// void RestorePartyAfterFollowerNPCBattle(void);
// void FollowerNPC_TryRemoveFollowerOnWhiteOut(void);
// void Task_MoveNPCFollowerAfterForcedMovement(u8 taskId);
// void Task_HideNPCFollowerAfterMovementFinish(u8 taskId);
// #endif // GUARD_FOLLOWER_NPC_H