mirror of
https://github.com/zeldaret/st
synced 2026-06-17 23:21:10 -04:00
5e934a8c9b
* 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
123 lines
3.6 KiB
C++
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;
|
|
}
|