Files
st/include/Unknown/UnkStruct_027e0d00.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

123 lines
3.6 KiB
C++

#pragma once
#include "Unknown/Common.hpp"
#include "global.h"
#include "types.h"
#include <nns/g3d/g3d.h>
#define MAX_TRAIN_PARTS 4
#define MAX_TRAIN_SETS 8
struct UnkStruct_027e0d00_00 {
/* 00 */ STRUCT_PAD(0x00, 0x1B);
/* 1B */ u8 mUnk_1B;
/* 1C */ unk32 mUnk_1C;
/* 20 */ unk32 mUnk_20;
/* 24 */ unk32 mUnk_24;
/* 28 */
};
struct UnkStruct_027e0d00_10 {
/* 0000 */ STRUCT_PAD(0x00, 0x44C0);
/* 44C0 */
};
class UnkStruct_027e0d00_20 : public MapObjectProfile_Derived2_20_Base {
public:
/* 00 (base) */
/* 94 */ unk32 mUnk_94;
/* 98 */ unk32 mUnk_98;
/* 9C */ MapObjectProfile_Derived2_20_Base_18 mUnk_9C;
/* A4 */ UnkSystem3 mUnk_A4;
/* B0 */ unk32 mUnk_B0;
/* B4 */ unk32 mUnk_B4;
/* B8 */
UnkStruct_027e0d00_20(unk32 param1, unk32 param2);
/* 00 */ virtual ~UnkStruct_027e0d00_20() override {}
void func_ov024_020d4fa0(unk32 param1, unk32 param2);
void func_ov024_020d5174();
static void func_ov024_020d4e9c(wchar_t *param1, unk32 param2, bool param3);
static void func_ov024_020d4edc(wchar_t *param1, wchar_t *param2, unk32 param3);
};
class UnkStruct_027e0d00 : public AutoInstance<UnkStruct_027e0d00> {
public:
/* 000 */ UnkStruct_027e0d00_00 *mUnk_000[MAX_TRAIN_PARTS];
/* 010 */ UnkStruct_027e0d00_10 *mUnk_010[MAX_TRAIN_PARTS];
/* 020 */ UnkStruct_027e0d00_20 *mUnk_020[MAX_TRAIN_PARTS][MAX_TRAIN_SETS];
/* 0A0 */ unk32 mUnk_0A0[MAX_TRAIN_PARTS];
/* 0B0 */ MapObjectProfile_Derived5 *mUnk_0B0[12]; // train parts models
/* 0E0 */ unk32 mUnk_0E0;
/* 0E4 */ UnkStruct_027e0d00_20 *mUnk_0E4[MAX_TRAIN_PARTS];
/* 0F4 */ MapObjectProfile_Derived5 *mUnk_0F4; // cargo models
/* 0F8 */ UnkStruct_027e0d00_00 *mUnk_0F8;
/* 0FC */ void *mUnk_0FC;
/* 100 */ MapObjectProfile_Derived5 *mUnk_100;
/* 104 */ bool mUnk_104;
/* 104 */ unk8 mUnk_105;
/* 104 */ unk8 mUnk_106;
/* 104 */ unk8 mUnk_107;
/* 108 */
void DestroyUnk020(unk32 param1, unk32 param2) {
if (this->mUnk_020[param1][param2] != NULL) {
this->mUnk_020[param1][param2]->func_ov024_020d5174();
this->mUnk_020[param1][param2]->func_ov000_020589e4();
this->mUnk_020[param1][param2]->~UnkStruct_027e0d00_20();
this->mUnk_020[param1][param2] = NULL;
}
}
void DestroyUnk0F4() {
if (this->mUnk_0F4 != NULL) {
this->mUnk_0F4->func_ov000_020589e4();
this->mUnk_0F4->~MapObjectProfile_Derived5();
this->mUnk_0F4 = NULL;
}
}
UnkStruct_027e0d00();
~UnkStruct_027e0d00();
// overlay 0
static UnkStruct_027e0d00 *GetInstance();
// overlay 24
unk32 func_ov024_020d485c(unk32 param1, unk32 param2);
u8 func_ov024_020d48c8(unk32 param1);
void func_ov024_020d48d8(unk32 param1, unk32 param2);
void func_ov024_020d49ec(unk32 param1, unk32 param2);
void func_ov024_020d4a50();
void func_ov024_020d4ab4();
void func_ov024_020d4af4();
unk32 func_ov024_020d4b9c(unk32 param1);
void func_ov024_020d4bf8();
void func_ov024_020d4cc0(u32 cargoType);
void func_ov024_020d4d10();
void func_ov024_020d4d44();
void func_ov024_020d4d6c(unk32 param1);
void func_ov024_020d4df8();
G3d_Model *func_ov024_020d4e3c(unk32 param1);
static void func_ov024_020d47c4(unk32 *param1, unk32 *param2, unk32 param3);
static UnkStruct_027e0d00 *Create();
};
extern UnkStruct_027e0d00 *data_027e0d00;
extern const unk32 data_ov024_020d766c[];
extern "C" {
typedef struct UnkStruct_ov024_020d7624 {
u8 unk_00;
u8 unk_01[7];
} UnkStruct_ov024_020d7624;
extern const UnkStruct_ov024_020d7624 data_ov024_020d7624;
}