Create Timer struct, improve angle usage and name known virtual functions (#154)

* name some actor vfuncs

* name some map object vfuncs

* remove angle union

* fix lots of clangd errors

* create Timer struct

* fix regressions
This commit is contained in:
Yanis
2026-10-02 20:54:43 +02:00
committed by GitHub
parent 205dc5a1ca
commit 07a5bd9fcc
204 changed files with 1851 additions and 1985 deletions
+4 -7
View File
@@ -126,10 +126,7 @@ public:
/* 00 (vtable) */
/* 04 */ VecFx32 mPos;
/* 10 */ MapObject_10_Base *mUnk_10;
/* 14 */ union {
s16 mAngle;
UnkAngleStruct mAngleStruct;
};
/* 14 */ UnkAngleStruct mAngle;
/* 16 */ MapObjState mState;
/* 18 */ unk8 mUnk_18[2]; // related to Link walking to the map object when touched
/* 1A */ unk8 mUnk_1A;
@@ -144,8 +141,8 @@ public:
/* 40 */
// data_ov000_020b3590
/* 00 */ virtual bool vfunc_00(); // Init
/* 04 */ virtual void vfunc_04(); // Setup
/* 00 */ virtual bool Init();
/* 04 */ virtual void Setup();
/* 08 */ virtual void vfunc_08();
/* 0C */ virtual void vfunc_0C();
/* 10 */ virtual void vfunc_10();
@@ -160,7 +157,7 @@ public:
/* 38 */
u16 GetDirection() {
return (u16) (this->mAngle + DEG_TO_ANG(45)) / DEG_TO_ANG(90);
return (u16) (this->mAngle.angle_s + DEG_TO_ANG(45)) / DEG_TO_ANG(90);
}
bool IsOrientedVertically() {
+1 -11
View File
@@ -27,8 +27,7 @@ public:
/* A8 */ STRUCT_PAD(0xA8, 0xB0);
/* BC */ fx32 mUnk_B0;
/* BC */ fx32 mUnk_B4;
/* B8 */ volatile u16 mUnk_B8;
/* BA */ u16 mUnk_BA;
/* B8 */ Timer mUnk_B8;
/* BC */ bool mUnk_BC;
/* C0 */ MapObject_10_Pot mUnk_C0;
@@ -44,15 +43,6 @@ public:
/* 50 */ virtual void vfunc_50(ActorRef *param1, MapObjectPot_Base *thisx) override;
/* 58 */ virtual void vfunc_58();
bool IsInternalTimerOut() {
if (this->mUnk_B8 < this->mUnk_BA) {
++this->mUnk_B8;
return false;
}
return true;
}
void func_ov031_02102728(unk32 param1);
};
+2 -2
View File
@@ -58,8 +58,8 @@ public:
MapObjectChestBase(unk32 param1); // func_ov031_0210307c
/* 00 */ virtual bool vfunc_00() override;
/* 04 */ virtual void vfunc_04() override;
/* 00 */ virtual bool Init() override;
/* 04 */ virtual void Setup() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
+1 -1
View File
@@ -41,7 +41,7 @@ public:
MapObjectDoorClick();
/* 00 */ virtual bool vfunc_00() override;
/* 00 */ virtual bool Init() override;
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 18 */ virtual void vfunc_18(s8 *param1) override;
@@ -5,6 +5,7 @@
#include "Unknown/Common.hpp"
#include "Unknown/UnkStruct_ov000_020b34c4.hpp"
#include "global.h"
#include "timer.hpp"
#include "types.h"
class MapObjectDoorDangerSpawn_ov031_02116e24 : public UnkStruct_ov000_020b34c4 {
@@ -50,14 +51,13 @@ public:
/* A3 */ unk8 mUnk_A3;
/* A4 */ unk32 mUnk_A4;
/* A8 */ UnkStruct_PlayerGet_ec mUnk_A8;
/* AC */ volatile u16 mUnk_AC;
/* AE */ u16 mUnk_AE;
/* AC */ Timer mUnk_AC;
MapObjectDoorDangerSpawn();
// data_ov031_021150d8 (MapObject)
/* 00 */ virtual bool vfunc_00() override;
/* 04 */ virtual void vfunc_04() override;
/* 00 */ virtual bool Init() override;
/* 04 */ virtual void Setup() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
+1 -1
View File
@@ -32,7 +32,7 @@ public:
MapObjectDoorKey();
/* 00 */ virtual bool vfunc_00() override;
/* 00 */ virtual bool Init() override;
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 18 */ virtual void vfunc_18(s8 *param1) override;
+1 -1
View File
@@ -40,7 +40,7 @@ public:
MapObjectDoorSwitch();
// data_ov031_0211527c (MapObject)
/* 00 */ virtual bool vfunc_00() override;
/* 00 */ virtual bool Init() override;
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 18 */ virtual void vfunc_18(s8 *param1) override;
+1 -1
View File
@@ -12,7 +12,7 @@ public:
MapObjectDoorTouch();
/* 00 */ virtual bool vfunc_00() override;
/* 00 */ virtual bool Init() override;
/* 30 */ virtual ~MapObjectDoorTouch() override;
/* 40 */ virtual void vfunc_40() override;
/* 44 */ virtual void vfunc_44() override;
+1 -1
View File
@@ -37,7 +37,7 @@ public:
MapObjectGrass();
/* 00 */ virtual bool vfunc_00() override;
/* 00 */ virtual bool Init() override;
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) override;
+1 -1
View File
@@ -14,7 +14,7 @@ public:
MapObjectMiniBlocks();
/* 00 */ virtual bool vfunc_00() override;
/* 00 */ virtual bool Init() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 30 */ virtual ~MapObjectMiniBlocks() override;
};
+1 -1
View File
@@ -13,7 +13,7 @@ public:
MapObjectPot();
/* 04 */ virtual void vfunc_04() override; // func_ov031_02105088
/* 04 */ virtual void Setup() override; // func_ov031_02105088
/* 14 */ virtual void vfunc_14(unk32 param1) override; // func_ov031_021052cc
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3); // func_ov031_021050b4
/* 24 */ virtual void vfunc_24(MapObject *param1, VecFx32 param2) override; // func_ov031_02105348
+1 -1
View File
@@ -20,7 +20,7 @@ public:
MapObjectPot_Base();
// data_ov000_020b35d0
/* 00 */ virtual bool vfunc_00();
/* 00 */ virtual bool Init();
/* 24 */ virtual void vfunc_24(MapObject *param1, VecFx32 param2) override;
/* 28 */ virtual unk32 vfunc_28(unk32 param1, unk32 param2, unk32 param3) override;
/* 30 */ virtual ~MapObjectPot_Base() = 0 override;
+3 -3
View File
@@ -5,6 +5,7 @@
#include "Render/ModelRender.hpp"
#include "Unknown/Common.hpp"
#include "global.h"
#include "timer.hpp"
#include "types.h"
class MapObjectSwitchStep_40 : public ModelRender {
@@ -39,8 +40,7 @@ public:
/* A4 */ UnkSystem5 mUnk_A4;
/* C4 */ unk32 mUnk_C4;
/* C8 */ STRUCT_PAD(0xC8, 0xE4);
/* E4 */ volatile u16 mUnk_E4;
/* E6 */ u16 mUnk_E6;
/* E4 */ Timer mUnk_E4;
/* E8 */ unk16 mUnk_E8;
/* EA */ u8 mUnk_EA; // bool?
/* EB */ unk8 mUnk_EB;
@@ -48,7 +48,7 @@ public:
MapObjectSwitchStep();
/* 00 */ virtual bool vfunc_00() override;
/* 00 */ virtual bool Init() override;
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 18 */ virtual void vfunc_18(s8 *param1) override;
+3 -3
View File
@@ -5,6 +5,7 @@
#include "MapObject/MapObjectProfile.hpp"
#include "Render/ModelRender.hpp"
#include "global.h"
#include "timer.hpp"
class UnkStruct_ov063_021639e4 : public ActorUnkTLKT_9C_Base {
public:
@@ -24,13 +25,12 @@ public:
/* 00 (base) */
/* 40 */ ModelRender mUnk_40;
/* A0 */ unk32 mUnk_A0;
/* A4 */ volatile u16 mUnk_A4;
/* A6 */ u16 mUnk_A6;
/* A4 */ Timer mUnk_A4;
/* A8 */ UnkStruct_ov063_021639e4 mUnk_A8;
MapObjectUnkLTRW();
/* 00 */ virtual bool vfunc_00() override;
/* 00 */ virtual bool Init() override;
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) override;
+3 -3
View File
@@ -5,6 +5,7 @@
#include "MapObject/MapObjectUnkSTAT.hpp"
#include "Render/ModelRender.hpp"
#include "Unknown/Common.hpp"
#include "timer.hpp"
#include "types.h"
class MapObjectUnkMTJR : public MapObject {
@@ -12,15 +13,14 @@ public:
/* 00 (base) */
/* 40 */ ModelRender mUnk_40;
/* A0 */ unk32 mUnk_A0;
/* A4 */ volatile u16 mUnk_A4; // Probably a counter
/* A6 */ u16 mUnk_A6; // Counter (mUnk_A4) bound
/* A4 */ Timer mUnk_A4;
/* A8 */ UnkSystem7 mUnk_A8;
/* AC */ unk32 mUnk_AC;
/* B0 */ unk32 mUnk_B0;
MapObjectUnkMTJR();
/* 00 */ virtual bool vfunc_00() override;
/* 00 */ virtual bool Init() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
+2 -2
View File
@@ -5,6 +5,7 @@
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "global.h"
#include "timer.hpp"
typedef MapObjState MapObjectUnkPTFLState;
enum MapObjectUnkPTFLState_ {
@@ -25,8 +26,7 @@ public:
/* 4C */ unk32 mUnk_4C;
/* 50 */ unk32 mUnk_50;
/* 54 */ fx16 mUnk_54;
/* 56 */ volatile u16 mUnk_56;
/* 58 */ volatile u16 mUnk_58;
/* 56 */ Timer mUnk_56;
/* 5A */ u8 mUnk_5A;
/* 5B */ bool mUnk_5B;
/* 5C */ bool mUnk_5C;
+4 -4
View File
@@ -5,6 +5,7 @@
#include "MapObject/MapObjectProfile.hpp"
#include "Unknown/UnkStruct_ov031_Items.hpp"
#include "global.h"
#include "timer.hpp"
#include "types.h"
enum MapObjUnkSKDIState_ {
@@ -33,15 +34,14 @@ public:
/* 0BC */ unk32 mUnk_0BC;
/* 0C0 */ STRUCT_PAD(0x0C0, 0x0D4);
/* 0D4 */ MapObject_10 mUnk_0D4;
/* 0F8 */ volatile u16 mUnk_0F8;
/* 0FA */ u16 mUnk_0FA;
/* 0F8 */ Timer mUnk_0F8;
/* 0FC */ unk32 mUnk_0FC;
/* 100 */
MapObjectUnkSKDI();
/* 00 */ virtual bool vfunc_00() override;
/* 04 */ virtual void vfunc_04() override;
/* 00 */ virtual bool Init() override;
/* 04 */ virtual void Setup() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
+3 -3
View File
@@ -4,6 +4,7 @@
#include "MapObject/MapObjectProfile.hpp"
#include "Render/ModelRender.hpp"
#include "global.h"
#include "timer.hpp"
#include "types.h"
class MapObjectUnkSTAT : public MapObject {
@@ -14,8 +15,7 @@ public:
/* 50 */ unk32 mUnk_50;
/* 54 */ unk32 mUnk_54;
/* 58 */ unk16 mUnk_58;
/* 5A */ volatile u16 mUnk_5A;
/* 5C */ u16 mUnk_5C;
/* 5A */ Timer mUnk_5A;
/* 5E */ STRUCT_PAD(0x5E, 0x60);
/* 60 */ unk32 mUnk_60;
/* 64 */ unk32 mUnk_64;
@@ -23,7 +23,7 @@ public:
MapObjectUnkSTAT();
/* 00 */ virtual bool vfunc_00() override; // Init
/* 00 */ virtual bool Init() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
+1 -1
View File
@@ -31,7 +31,7 @@ public:
MapObjectUnkSWHT();
/* 00 */ virtual bool vfunc_00() override;
/* 00 */ virtual bool Init() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
+4 -13
View File
@@ -3,6 +3,7 @@
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "global.h"
#include "timer.hpp"
#include "types.h"
class ActorUnkNSSW;
@@ -34,29 +35,19 @@ public:
/* 0EC */ VecFx32 mUnk_0EC;
/* 0F8 */ ActorUnkNSSW *mUnk_0F8;
/* 0FC */ unk32 mUnk_0FC;
/* 100 */ volatile u16 mUnk_100;
/* 102 */ u16 mUnk_102;
/* 100 */ Timer mUnk_100;
/* 104 */ u8 mUnk_104;
/* 105 */ u8 mUnk_105;
/* 106 */ STRUCT_PAD(0x106, 0x108);
/* 108 */ fx32 mUnk_108;
/* 10C */ unk16 mUnk_10C;
/* 10E */ volatile u16 mUnk_10E;
/* 110 */ u16 mUnk_110;
/* 10E */ Timer mUnk_10E;
/* 114 */ ActorUnkNSSW *mUnk_114;
/* 118 */
MapObjectUnkSWSW();
bool IsInternalTimerOut() {
if (this->mUnk_100 < this->mUnk_102) {
++this->mUnk_100;
return false;
}
return true;
}
/* 00 */ virtual bool vfunc_00() override;
/* 00 */ virtual bool Init() override;
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14(unk32 param1) override;
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) override;
+1
View File
@@ -1,4 +1,5 @@
#pragma once
#include "MapObject.hpp"
class MapObject_10_Pot_Base : public MapObject_10_Base {
+3 -2
View File
@@ -1,5 +1,7 @@
#pragma once
#include "MapObject/MapObject.hpp"
class MapObjectPot_Base : public MapObject {
public:
/* 00 (base) */
@@ -8,8 +10,7 @@ public:
MapObjectPot_Base();
// data_ov000_020b35d0
/* 00 */ virtual bool vfunc_00(); // func_ov000_0209d780
/* 00 */ virtual bool Init(); // func_ov000_0209d780
/* 24 */ virtual void vfunc_24(MapObject *param1, VecFx32 param2) override; // func_ov000_0209d8e8
/* 28 */ virtual unk32 vfunc_28(unk32 param1) override; // func_ov000_0209d9f8
/* 30 */ virtual ~MapObjectPot_Base() = 0 override;