Files
st/include/Player/Player.hpp
T
Yanis 5e934a8c9b Decompile overlay 24 (Part 3) (#68)
* name func_01ffd3d8 and func_01ffd400

* name func_01ffd3b0

* match func_ov024_020cf9d4 + improve the Random struct

* UnkStruct_027e0cf8_00_0C_024 45%

* match PassengerManager::GetRandomIndex

* UnkStruct_027e0cf8_00_0C_024 OK

* UnkStruct_027e0cf8_00_0C_024: do other sections

* UnkStruct_027e0cf8_08_024 55%

* cleanup: remplace delete into null by the delete macro

* UnkStruct_027e0cf8_08_024 OK

* fix build issues

* UnkStruct_ov024_020d86a0_024 OK

* PlayerActor_A0_38_024 .text OK, CreditsEndingType OK

* tools: create courselist.py to convert .CLB data to yaml

* UnkDataStruct4_14 OK

* UnkDataStruct4 17%

* UnkDataStruct4 OK

* MiscAdvManager OK

* PassengerManager OK

* fix build issues

* ZeldaTrainBinary OK

* mark PassengerManager as complete and adjust delinks

* UnkStruct_027e0cf8_08_00_024 OK

* document more of UnkStruct_027e0ce0

* savefile hotfixes

* UnkStruct_027e0ce0_34_024 OK

* code_020d46b4_024 OK

* UnkStruct_027e0d00 & UnkStruct_027e0d00_20 OK

* code_020d51dc_024 OK

* fix weird formatting

* UnkTrainSystem1 OK

* fix jp broken match

* UnkTrainSystem2 OK

* UnkStruct_027e0d08_024 31%

* fix build issues

* UnkStruct_027e0d08 OK!!!

* remove useless parenthesis

* ActorUnk_ov000_020a8bb0_EC OK

* move ActorUnk_ov000_020a8bb0_EC to MainGame/Actor/

* ActorUnkOBPC OK

* add sjiswrap support

* solve remaining gaps and fix build issues

* reorganise files + counter docs

* tools: remove format command execution from defaults
2026-06-09 23:01:32 +02:00

205 lines
4.4 KiB
C++

#pragma once
#include "LinkList.hpp"
#include "Unknown/Common.hpp"
#include "Unknown/UnkStruct_ov000_0208f820.hpp"
#include "math.hpp"
#include "types.h"
class PlayerActorBase_5C {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ unk32 mUnk_0C;
/* 10 */ void *mUnk_10;
/* 14 */
};
class PlayerActorBase_70 {
public:
/* 000 */ STRUCT_PAD(0x00, 0x160);
/* 160 */
PlayerActorBase_70();
};
class PlayerActorBase_74 {
public:
/* 00 */ STRUCT_PAD(0x00, 0x34);
/* 34 */
PlayerActorBase_74();
};
class PlayerActorBase {
public:
/* 00 */ VecFx32 mPos;
/* 0C */ VecFx32 mPrevPos;
/* 18 */ VecFx32 mVel;
/* 24 */ VecFx32 mAccel;
/* 30 */ u16 mAngle;
/* 32 */ u8 mInvincibilityTimer;
/* 33 */ u8 mInvincibilityIconTimer; // the blinking icon on top-screen
/* 34 */ unk32 mUnk_34;
/* 38 */ UnkStruct_PlayerGet_64 mUnk_38;
/* 44 */ unk32 mUnk_44;
/* 48 */ unk32 mUnk_48;
/* 4C */ unk32 mUnk_4C;
/* 50 */ unk32 mUnk_50;
/* 54 */ unk32 mUnk_54;
/* 58 */ unk32 mUnk_58;
/* 5C */ PlayerActorBase_5C mUnk_5C;
/* 70 */ PlayerActorBase_70 *mUnk_70;
/* 74 */ PlayerActorBase_74 *mUnk_74;
/* 78 */ STRUCT_PAD(0x78, 0x84);
/* 84 */ UnkStruct_ov019_020d24c8_28_258 mUnk_84;
/* 9C */
PlayerActorBase();
};
class PlayerActor_9C {
public:
/* 000 (vtable) */
/* 004 */ STRUCT_PAD(0x04, 0x154);
/* 154 */
PlayerActor_9C();
// data_ov000_020b2a8c
/* 00 */ virtual ~PlayerActor_9C();
};
class PlayerActor_A0_38;
class PlayerActor_A0_38_04_Base : public LinkList<PlayerActor_A0_38_04_Base> {
public:
/* 00 (vtable) */
/* 04 (base) */
/* 0C */ unk32 mUnk_0C;
/* 10 */ PlayerActor_A0_38 *mUnk_10;
/* 14 */
PlayerActor_A0_38_04_Base(PlayerActor_A0_38 *param1) {
this->mUnk_0C = 0;
this->mUnk_10 = param1;
}
/* 00 */ virtual void vfunc_00();
};
class PlayerActor_A0_38_04 : public PlayerActor_A0_38_04_Base {
public:
/* 00 (vtable) */
/* 04 (base) */
/* 0C */
PlayerActor_A0_38_04(PlayerActor_A0_38 *param1) :
PlayerActor_A0_38_04_Base(param1) {}
// data_ov024_020d8250
/* 00 */ virtual void vfunc_00() override;
};
class PlayerActor_A0_38_18 : public PlayerActor_A0_38_04_Base {
public:
/* 00 (vtable) */
/* 04 (base) */
/* 0C */
PlayerActor_A0_38_18(PlayerActor_A0_38 *param1) :
PlayerActor_A0_38_04_Base(param1) {}
// data_ov024_020d8244
/* 00 */ virtual void vfunc_00() override;
};
class PlayerActor_A0_38 {
public:
/* 00 */ unk16 mUnk_00;
/* 02 */ unk16 mUnk_02;
/* 04 */ PlayerActor_A0_38_04 mUnk_04;
/* 18 */ PlayerActor_A0_38_18 mUnk_18;
/* 2C */ Vec2s mUnk_2C;
/* 30 */ u16 mUnk_30;
/* 32 */ unk16 mUnk_32;
/* 34 */ u16 mUnk_34;
/* 36 */ bool mUnk_36;
/* 37 */ bool mUnk_37;
/* 38 */
PlayerActor_A0_38();
~PlayerActor_A0_38();
void func_ov024_020d19d8();
};
class PlayerActor_A0 {
public:
/* 00 */ STRUCT_PAD(0x00, 0x38);
/* 38 */ PlayerActor_A0_38 *mUnk_38;
/* 3C */ STRUCT_PAD(0x3C, 0x94);
/* 94 */
PlayerActor_A0();
};
class PlayerActor_A4 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk8 mUnk_08;
/* 09 */ unk8 mUnk_09;
/* 0A */ unk8 mUnk_0A;
/* 0B */ unk8 mUnk_0B;
/* 0C */
};
class PlayerActor_134 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */
PlayerActor_134() {
this->mUnk_00 = 0;
this->mUnk_04 = 0;
}
};
class PlayerActor_1B0 : public UnkSystem7 {
public:
/* 00 (base) */
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */
PlayerActor_1B0();
~PlayerActor_1B0();
};
class PlayerActor : public PlayerActorBase {
public:
/* 000 (base) */
/* 09C */ PlayerActor_9C *mUnk_9C;
/* 0A0 */ PlayerActor_A0 *mUnk_A0;
/* 0A4 */ PlayerActor_A4 mUnk_A4;
/* 0B0 */ unk32 mUnk_B0;
/* 0B4 */ unk8 mUnk_B4;
/* 0B5 */ unk8 mUnk_B5;
/* 0B6 */ unk8 mUnk_B6;
/* 0B7 */ unk8 mUnk_B7;
/* 0B8 */ unk8 mUnk_B8;
/* 0B9 */ unk8 mUnk_B9;
/* 0BA */ unk8 mUnk_BA;
/* 0BB */ unk8 mUnk_BB;
/* 0BC */ UnkSubStruct19 mUnk_BC;
/* 134 */ PlayerActor_134 *mUnk_134;
/* 138 */ UnkSubStruct19 mUnk_138; // sanctuary link icon animation
/* 1B0 */ PlayerActor_1B0 mUnk_1B0[3];
/* 1D4 */
PlayerActor(); //! TODO: params
};