mirror of
https://github.com/zeldaret/st
synced 2026-05-27 08:08:20 -04:00
Decompile Door Map Objects 1 (DRDS, DRCK, DRKY, DRSW, DRTC) (#56)
* random docs * "match" ctor * match ctor and link miniblocks * DRDS 98% * jp differences * improve MapObjectUnkDRDS::vfunc_04 * MapObjectDoorBase 78% * fix regressions * MapObjectDoorBase 98% * MapObjectUnkDRKY 98% * MapObjectUnkDRSW 100% * fix build issues * MapObjectUnkDRTC 100% * DRCK delinks * MapObjectUnkDRCK 98%
This commit is contained in:
@@ -51,7 +51,7 @@ enum MapObjFlag_ {
|
||||
class MapObject_10_Base {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ unk8 mUnk_04;
|
||||
/* 04 */ u8 mUnk_04;
|
||||
/* 05 */ unk8 mUnk_05;
|
||||
/* 06 */ unk8 mUnk_06;
|
||||
/* 07 */ unk8 mUnk_07;
|
||||
@@ -75,10 +75,11 @@ public:
|
||||
class MapObject_10 : public MapObject_10_Base {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 0C */
|
||||
/* 0C */ Vec3p mUnk_0C;
|
||||
/* 18 */ Vec3p mUnk_18;
|
||||
/* 24 */
|
||||
|
||||
MapObject_10() {}
|
||||
~MapObject_10() {}
|
||||
|
||||
// data_ov031_02113f18
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
@@ -100,7 +101,7 @@ public:
|
||||
/* 0E */ unk16 mUnk_0E;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ s16 mUnk_14;
|
||||
/* 16 */ unk8 mUnk_16;
|
||||
/* 16 */ bool mUnk_16;
|
||||
/* 16 */ unk8 mUnk_17;
|
||||
/* 18 */
|
||||
|
||||
@@ -117,36 +118,51 @@ public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ Vec3p mPos;
|
||||
/* 10 */ MapObject_10 *mUnk_10;
|
||||
/* 14 */ unk16 mUnk_14;
|
||||
/* 16 */ unk16 mUnk_16;
|
||||
/* 18 */ unk8 mUnk_18[2]; // bools? when set Link walks to the map object when touched
|
||||
/* 14 */ s16 mUnk_14;
|
||||
/* 16 */ s16 mUnk_16;
|
||||
/* 18 */ unk8 mUnk_18[2]; // related to Link walking to the map object when touched
|
||||
/* 1A */ unk8 mUnk_1A;
|
||||
/* 1B */ unk8 mUnk_1B;
|
||||
/* 1C */ MapObjFlags mFlags[1];
|
||||
/* 1E */ unk16 mUnk_1E;
|
||||
/* 20 */ MapObject_20 mUnk_20;
|
||||
/* 38 */ unk8 mUnk_38;
|
||||
/* 38 */ unk8 mUnk_39;
|
||||
/* 39 */ unk8 mUnk_39;
|
||||
/* 3A */ Vec2b mUnk_3A;
|
||||
/* 3C */ MapObjectProfile *mpProfile;
|
||||
/* 40 */
|
||||
|
||||
// data_ov000_020b3590
|
||||
/* 00 */ virtual bool vfunc_00();
|
||||
/* 04 */ virtual bool vfunc_04();
|
||||
/* 08 */ virtual unk16 vfunc_08();
|
||||
/* 0C */ virtual unk8 vfunc_0C();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C();
|
||||
/* 10 */ virtual void vfunc_10();
|
||||
/* 14 */ virtual void vfunc_14();
|
||||
/* 18 */ virtual void vfunc_18();
|
||||
/* 18 */ virtual void vfunc_18(s8 *param1, s8 param2);
|
||||
/* 1C */ virtual bool vfunc_1C();
|
||||
/* 20 */ virtual void vfunc_20();
|
||||
/* 24 */ virtual void vfunc_24();
|
||||
/* 28 */ virtual bool vfunc_28();
|
||||
/* 28 */ virtual unk32 vfunc_28();
|
||||
/* 2C */ virtual bool vfunc_2C(Vec3p *param1);
|
||||
/* 30 */ virtual ~MapObject();
|
||||
/* 38 */
|
||||
|
||||
u16 GetDirection() {
|
||||
return (u16) (this->mUnk_14 + DEG_TO_ANG(45)) / DEG_TO_ANG(90);
|
||||
}
|
||||
|
||||
bool IsOrientedVertically() {
|
||||
bool isVertical = true;
|
||||
u16 direction = GetDirection();
|
||||
|
||||
if (direction != 3 && direction != 1) {
|
||||
isVertical = false;
|
||||
}
|
||||
|
||||
return isVertical;
|
||||
}
|
||||
|
||||
MapObject();
|
||||
|
||||
MapObjectId GetMapObjectId();
|
||||
@@ -156,13 +172,12 @@ public:
|
||||
bool func_ov000_0209d12c();
|
||||
bool func_ov000_0209d144(Vec2s *param1, unk32 param2, unk32 param3);
|
||||
void func_ov000_0209d274(unk32 param1);
|
||||
unk32 func_ov000_0209d29c(unk32 param1);
|
||||
bool func_ov000_0209d29c(unk32 param1);
|
||||
void func_ov000_0209d2c4(unk32 param1, unk32 param2);
|
||||
void func_ov000_0209d2f0(unk32 param1, unk32 param2, Vec2b *param3);
|
||||
void func_ov000_0209d3b4(unk32 param1, q20 size);
|
||||
void func_ov000_0209d434(s8 *param1, UnkStruct_ov019_020d24c8_28_258_00 *param2, unk32 param3);
|
||||
void func_ov000_0209d518(unk32 param1, unk32 param2, unk32 param3, u8 param4);
|
||||
void func_ov000_0209d54c(unk32 param1, u16 param2, Vec3p *param3, s16 param4, u16 param5);
|
||||
void func_ov000_0209d5c8(ActorRef ref);
|
||||
void func_ov000_0209d614(unk32 param1);
|
||||
bool func_ov000_0209d668();
|
||||
@@ -172,4 +187,5 @@ public:
|
||||
|
||||
static void func_ov000_0209d0bc(Vec2b *param1, MapObject *thisx);
|
||||
static void func_ov000_0209d22c(unk16 *param1, MapObject *thisx, unk32 param2);
|
||||
static void func_ov000_0209d54c(void *param1, MapObject *thisx, unk32 param2, Vec3p *param3, unk32 param4, unk32 param5);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user