Decompile overlay 102 (CourseExecLand) (#150)

* fix extra cflags not being used

* decomp overlay 102 + mlck "ok"

* fix build and match issues

* type func_01fff350 param1

* add changes report (based on dtk-template)

* docs

* changes_fmt implicits

* fix regressions

* cleanup

* ninja format

* CourseExecLand.cpp -> UnkStruct_027e0ce0_40_102.cpp
This commit is contained in:
Yanis
2026-09-16 15:19:14 +02:00
committed by GitHub
parent 44499db695
commit b40c9e9c50
327 changed files with 3336 additions and 1705 deletions
+4
View File
@@ -173,6 +173,10 @@ public:
return isVertical;
}
void Kill(void) {
UNSET_FLAG(this->mFlags, MapObjFlag_Alive);
}
MapObject();
MapObjectId GetMapObjectId();
-4
View File
@@ -34,10 +34,6 @@ class MapObjectDoorClick : public MapObjectDoorBase {
public:
/* 00 (base) */
/* 94 */ UnkSystem6_Derived2 mUnk_94;
/* 9C */ unk8 mUnk_9C; // bool?
/* 9D */ unk8 mUnk_9D; // pad?
/* 9E */ unk8 mUnk_9E; // pad?
/* 9F */ unk8 mUnk_9F; // pad?
/* A0 */ UnkStruct_PlayerGet_ec mUnk_A0;
/* A0 */ unk32 mUnk_A4;
/* A8 */ MapObject_10 mUnk_A8;
@@ -44,10 +44,6 @@ class MapObjectDoorDangerSpawn : public MapObjectDoorBase {
public:
/* 00 (base) */
/* 94 */ UnkSystem6_Derived2 mUnk_94;
/* 9C */ unk8 mUnk_9C;
/* 9D */ unk8 mUnk_9D;
/* 9E */ unk8 mUnk_9E;
/* 9F */ unk8 mUnk_9F;
/* A0 */ unk8 mUnk_A0;
/* A1 */ bool mUnk_A1;
/* A2 */ bool mUnk_A2;
-4
View File
@@ -23,10 +23,6 @@ class MapObjectDoorKey : public MapObjectDoorBase {
public:
/* 00 (base) */
/* 94 */ UnkSystem6_Derived2 mUnk_94;
/* 9C */ unk8 mUnk_9C;
/* 9D */ unk8 mUnk_9D; // pad?
/* 9E */ unk8 mUnk_9E; // pad?
/* 9F */ unk8 mUnk_9F; // pad?
/* A0 */ UnkStruct_PlayerGet_ec mUnk_A0;
/* A4 */ bool mUnk_A4;
/* A5 */ unk8 mUnk_A5; // pad?
@@ -10,9 +10,6 @@ class MapObjectMiniBlocks : public MapObject {
public:
/* 00 (base) */
/* 40 */ UnkSystem6_Derived2 mUnk_40;
/* 48 */ unk8 mUnk_48;
/* 49 */ unk8 mUnk_49; // pad?
/* 4A */ unk16 mUnk_4A; // pad?
/* 4C */
MapObjectMiniBlocks();
+32 -5
View File
@@ -5,26 +5,53 @@
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "global.h"
#include "types.h"
typedef MapObjState MapObjectUnkPTFLState;
enum MapObjectUnkPTFLState_ {
/* 0 */ MapObjectUnkPTFLState_0 = 0,
/* 1 */ MapObjectUnkPTFLState_1 = 1,
/* 2 */ MapObjectUnkPTFLState_2 = 2,
/* 3 */ MapObjectUnkPTFLState_3 = 3,
/* 4 */ MapObjectUnkPTFLState_4 = 4,
};
class MapObjectUnkPTFL : public MapObject {
public:
/* 00 (base) */
/* 40 */
/* 40 */ unk32 mUnk_40;
/* 44 */ u16 mUnk_44;
/* 46 */ unk16 mUnk_46;
/* 48 */ unk32 mUnk_48;
/* 4C */ unk32 mUnk_4C;
/* 50 */ unk32 mUnk_50;
/* 54 */ fx16 mUnk_54;
/* 56 */ volatile u16 mUnk_56;
/* 58 */ volatile u16 mUnk_58;
/* 5A */ u8 mUnk_5A;
/* 5B */ bool mUnk_5B;
/* 5C */ bool mUnk_5C;
MapObjectUnkPTFL();
/* 08 */ virtual void vfunc_08();
/* 0C */ virtual void vfunc_0C();
/* 0C */ virtual void vfunc_14();
/* 30 */ virtual ~MapObjectUnkPTFL() override;
// overlay 70
void func_ov070_0214ba34(void);
void func_ov070_0214bb78(void);
void func_ov070_0214bbd0(void);
void func_ov070_0214bbd0(MapObjectUnkPTFLState state, bool param2);
void func_ov070_0214bd48(void);
void func_ov070_0214bd90(void);
void func_ov070_0214bf58(void);
void func_ov070_0214bf5c(void);
void func_ov070_0214bf6c(void);
bool func_ov070_0214bf5c(void);
bool func_ov070_0214bf6c(void);
void func_ov070_0214bfbc(void);
// overlay 102
void func_ov102_0218419c();
void func_ov102_021843b4();
};
class MapObjectProfileUnkPTFL : public MapObjectProfile {
+29 -3
View File
@@ -2,23 +2,47 @@
#pragma once
#include "Actor/ActorUnkSCCN.hpp"
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "global.h"
#include "math.hpp"
#include "types.h"
enum MapObjectUnkSANDState_ {
/* 0 */ MapObjectUnkSANDState_0 = 0,
/* 0 */ MapObjectUnkSANDState_1 = 1,
};
class MapObjectUnkSAND_40 {
public:
/* 00 */ u8 mUnk_00;
/* 01 */ u8 mUnk_01;
/* 02 */ unk16 mUnk_02;
/* 04 */ unk16 mUnk_04;
/* 06 */
void func_ov102_021835c4(VecFx32 *param1);
void func_ov102_021837a8(Vec2bCpp param1, VecFx32 *param2);
};
class MapObjectUnkSAND : public MapObject {
public:
/* 00 (base) */
/* 40 */
/* 40 */ MapObjectUnkSAND_40 mUnk_40[2];
/* 4C */ unk32 mUnk_4C;
/* 50 */ ActorUnkSCCN_B8 mUnk_50;
/* 60 */ VecFx32 mUnk_60;
MapObjectUnkSAND();
/* 08 */ virtual void vfunc_08();
/* 0C */ virtual void vfunc_0C();
/* 0C */ virtual void vfunc_14();
/* 30 */ virtual ~MapObjectUnkSAND() override;
void func_ov031_0210acd4(void);
void func_ov031_0210ad64(void);
void func_ov031_0210ae00(void);
void func_ov031_0210ae90(void);
void func_ov031_0210af50(void);
void func_ov031_0210b018(void);
@@ -26,11 +50,13 @@ public:
void func_ov031_0210b0ac(void);
void func_ov031_0210b0e4(void);
void func_ov031_0210b144(void);
void func_ov031_0210b17c(void);
void func_ov031_0210b1ec(void);
void func_ov031_0210b2cc(void);
void func_ov031_0210b32c(void);
void func_ov031_0210b34c(void);
static unk32 func_ov031_0210ae00(Vec2bCpp param1, void *param2);
static void func_ov031_0210b17c(MapObjectUnkSAND_40 *param1, unk32 param2);
};
class MapObjectProfileUnkSAND : public MapObjectProfile_Derived6 {
-2
View File
@@ -19,8 +19,6 @@ class MapObjectUnkSKDI : public MapObject {
public:
/* 000 (base) */
/* 040 */ UnkSystem6_Derived2 mUnk_040;
/* 048 */ unk8 mUnk_048;
/* 049 */ STRUCT_PAD(0x049, 0x04C);
/* 04C */ ActorBomb_unk mUnk_04C[0x4];
/* 07C */ unk32 mUnk_07C;
/* 080 */ unk32 mUnk_080;
-2
View File
@@ -10,8 +10,6 @@ class MapObjectUnkSTAT : public MapObject {
public:
/* 00 (base) */
/* 40 */ UnkSystem6_Derived2 mUnk_40;
/* 48 */ unk8 mUnk_48;
/* 49 */ STRUCT_PAD(0x49, 0x4C);
/* 4C */ unk32 mUnk_4C;
/* 50 */ unk32 mUnk_50;
/* 54 */ unk32 mUnk_54;