#ifndef POKEPLATINUM_PLAYER_AVATAR_H #define POKEPLATINUM_PLAYER_AVATAR_H #include #include "constants/player_avatar.h" #include "struct_decls/struct_02061830_decl.h" #include "struct_decls/struct_02061AB4_decl.h" #include "struct_defs/struct_0205EC34.h" #include "field/field_system_decl.h" #include "location.h" #include "overworld_anim_manager.h" enum PlayerAvatarForm { PLAYER_AVATAR_WALKING = 0, PLAYER_AVATAR_BIKING, PLAYER_AVATAR_SURFING, }; enum PlayerAvatarFlagUnk00 { UNK_00_0 = (1 << 0), UNK_00_1 = (1 << 1), UNK_00_2 = (1 << 2), UNK_00_IS_ON_CYCLING_ROAD = (1 << 3), UNK_00_ESCAPED_FROM_DEEP_MUD = (1 << 4), UNK_00_5 = (1 << 5), UNK_00_6 = (1 << 6), UNK_00_7 = (1 << 7), UNK_00_8 = (1 << 8), UNK_00_9 = (1 << 9), UNK_00_10 = (1 << 10), UNK_00_11 = (1 << 11), UNK_00_12 = (1 << 12) }; typedef struct PlayerAvatar { u32 unk_00; u32 unk_04; u32 unk_08; int unk_0C; u32 unk_10; int unk_14; int unk_18; int unk_1C; int gender; int speed; enum FaceDirection faceLeftOrRight; enum FaceDirection faceUpOrDown; MapObject *mapObject; OverworldAnimManager *surfMountAnimMan; PlayerData *player; const PlayerData *playerConst; } PlayerAvatar; PlayerAvatar *PlayerAvatar_Init(const MapObjectManager *param0, int param1, int param2, int param3, int param4, int param5, int param6, PlayerData *param7); PlayerAvatar *sub_0205E820(const MapObjectManager *param0, PlayerData *param1, int gender); void PlayerAvatar_InitDraw(PlayerAvatar *playerAvatar, int dynamicMapFeaturesID); void Player_Delete(PlayerAvatar *playerAvatar); void Player_DeleteAll(PlayerAvatar *playerAvatar); MapObject *sub_0205EA24(const MapObjectManager *param0); int PlayerAvatar_GetDir(PlayerAvatar *const playerAvatar); void Player_SetDir(PlayerAvatar *playerAvatar, int param1); int PlayerAvatar_GetMoveDir(PlayerAvatar *const playerAvatar); int PlayerAvatar_GetDistortionDir(PlayerAvatar *const playerAvatar); int Player_GetXPos(PlayerAvatar *const playerAvatar); int Player_GetZPos(PlayerAvatar *const playerAvatar); int PlayerAvatar_XPosPrev(PlayerAvatar *const playerAvatar); int PlayerAvatar_ZPosPrev(PlayerAvatar *const playerAvatar); void PlayerAvatar_PosVectorOut(PlayerAvatar *const playerAvatar, VecFx32 *param1); const VecFx32 *PlayerAvatar_PosVector(PlayerAvatar *const playerAvatar); void sub_0205EB08(PlayerAvatar *playerAvatar, int param1); int PlayerAvatar_MoveState(const PlayerAvatar *playerAvatar); void sub_0205EB10(PlayerAvatar *playerAvatar, int param1); int Player_MoveState(const PlayerAvatar *playerAvatar); void PlayerAvatar_SetVisible(PlayerAvatar *playerAvatar, BOOL hidden); void PlayerAvatar_SetMapObject(PlayerAvatar *playerAvatar, MapObject *param1); MapObject *Player_MapObject(PlayerAvatar *playerAvatar); const MapObject *PlayerAvatar_ConstMapObject(const PlayerAvatar *playerAvatar); void PlayerAvatar_SetPlayerState(PlayerAvatar *playerAvatar, int param1); int PlayerAvatar_GetPlayerState(PlayerAvatar *playerAvatar); void PlayerAvatar_TurnOnRequestStateBit(PlayerAvatar *playerAvatar, u32 param1); void PlayerAvatar_SetRequestStateFlag(PlayerAvatar *playerAvatar, u32 param1); u32 PlayerAvatar_RequestStateFlag(PlayerAvatar *playerAvatar); void PlayerAvatar_SetGender(PlayerAvatar *playerAvatar, int param1); int PlayerAvatar_Gender(PlayerAvatar *playerAvatar); int PlayerAvatar_Speed(PlayerAvatar *playerAvatar); void PlayerAvatar_SetSpeed(PlayerAvatar *playerAvatar, int param1); void PlayerAvatar_ClearSpeed(PlayerAvatar *playerAvatar); int PlayerAvatar_AddMoveSpeed(PlayerAvatar *playerAvatar, int param1, int param2); void PlayerAvatar_SetFaceLeftOrRight(PlayerAvatar *playerAvatar, enum FaceDirection leftOrRight); enum FaceDirection PlayerAvatar_GetFaceLeftOrRight(PlayerAvatar *playerAvatar); void PlayerAvatar_SetFaceUpOrDown(PlayerAvatar *playerAvatar, enum FaceDirection faceUpOrDown); enum FaceDirection PlayerAvatar_GetFaceUpOrDown(PlayerAvatar *playerAvatar); void PlayerAvatar_SetFaceDirection(PlayerAvatar *playerAvatar, enum FaceDirection faceLeftOrRight, enum FaceDirection faceUpOrDown); void PlayerAvatar_SetSurfMountAnimManager(PlayerAvatar *playerAvatar, OverworldAnimManager *surfMountAnimMan); OverworldAnimManager *PlayerAvatar_GetSurfMountAnimManager(PlayerAvatar *playerAvatar); PlayerData *PlayerAvatar_PlayerData(PlayerAvatar *playerAvatar); void sub_0205EC10(PlayerAvatar *playerAvatar, u32 param1); u32 sub_0205EC14(PlayerAvatar *playerAvatar); void sub_0205EC18(PlayerAvatar *playerAvatar, int param1); int sub_0205EC1C(PlayerAvatar *playerAvatar); void sub_0205EC20(PlayerAvatar *playerAvatar, u32 param1, int param2); void PlayerData_Init(PlayerData *param0); int PlayerData_HasRunningShoes(PlayerData *param0); void PlayerData_SetRunningShoes(PlayerData *param0, int param1); int PlayerData_CyclingGear(PlayerData *param0); void PlayerData_SetCyclingGear(PlayerData *param0, int param1); void PlayerAvatar_SetCyclingGear(PlayerAvatar *playerAvatar, int param1); int PlayerAvatar_CyclingGear(PlayerAvatar *playerAvatar); void sub_0205ECB8(PlayerAvatar *playerAvatar, const VecFx32 *param1, int param2); void sub_0205ECE0(PlayerAvatar *playerAvatar, int x, int z, int dir); void Player_SetYPos(PlayerAvatar *playerAvatar, fx32 y); void PlayerAvatar_SetHeightCalculationEnabled(PlayerAvatar *playerAvatar, BOOL heightCalculationEnabled); void PlayerAvatar_SetHeightCalculationEnabledAndUpdate(PlayerAvatar *playerAvatar, BOOL heightCalculationEnabled); int Player_MoveStateFromGender(int param0, int param1); u32 Player_ConvertStateToTransition(int param0); PlayerAvatar *FieldSystem_GetPlayerAvatar(FieldSystem *fieldSystem); void sub_0205EF40(PlayerAvatar *playerAvatar, int param1); BOOL sub_0205EF58(PlayerAvatar *playerAvatar); void sub_0205EF6C(PlayerAvatar *playerAvatar, int param1); BOOL sub_0205EF84(PlayerAvatar *playerAvatar); void sub_0205EF98(PlayerAvatar *playerAvatar, int param1); BOOL sub_0205EFB0(PlayerAvatar *playerAvatar); void PlayerAvatar_SetFlagIsOnCyclingRoad(PlayerAvatar *playerAvatar, int param1); BOOL PlayerAvatar_GetFlagIsOnCyclingRoad(PlayerAvatar *playerAvatar); void PlayerAvatar_SetEscapedFromDeepMud(PlayerAvatar *playerAvatar, BOOL flag); BOOL PlayerAvatar_CheckEscapedFromDeepMud(PlayerAvatar *playerAvatar); void sub_0205F01C(PlayerAvatar *playerAvatar, BOOL param1); BOOL sub_0205F034(PlayerAvatar *playerAvatar); void sub_0205F048(PlayerAvatar *playerAvatar); void sub_0205F054(PlayerAvatar *playerAvatar); BOOL sub_0205F060(PlayerAvatar *playerAvatar); void sub_0205F074(PlayerAvatar *playerAvatar, BOOL param1); int sub_0205F08C(PlayerAvatar *playerAvatar); void PlayerAvatar_SetDistortionState(PlayerAvatar *playerAvatar, enum AvatarDistortionState state); enum AvatarDistortionState PlayerAvatar_MapDistortionState(PlayerAvatar *const playerAvatar); BOOL PlayerAvatar_DistortionGravityChanged(PlayerAvatar *const playerAvatar); BOOL PlayerAvatar_DistortionStateOnFloor(PlayerAvatar *const playerAvatar); #endif // POKEPLATINUM_PLAYER_AVATAR_H