From a3b8fb9023269ab7e92276268677e474727303d2 Mon Sep 17 00:00:00 2001 From: Sebastian Snoer Date: Mon, 26 May 2025 17:22:10 +0200 Subject: [PATCH] Only missing mapped data --- .../SOUE01/rels/d_a_obj_tarzan_poleNP/symbols.txt | 12 ++++++------ include/d/a/obj/d_a_obj_tarzan_pole.h | 6 ++---- src/REL/d/a/obj/d_a_obj_tarzan_pole.cpp | 13 ++++++++----- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/config/SOUE01/rels/d_a_obj_tarzan_poleNP/symbols.txt b/config/SOUE01/rels/d_a_obj_tarzan_poleNP/symbols.txt index bf3434b5..287711d0 100644 --- a/config/SOUE01/rels/d_a_obj_tarzan_poleNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_tarzan_poleNP/symbols.txt @@ -4,15 +4,15 @@ _unresolved = .text:0x00000060; // type:function size:0x4 scope:global dAcOTarzanPole_c_classInit__Fv = .text:0x00000070; // type:function size:0x6C createHeap__16dAcOTarzanPole_cFv = .text:0x000000E0; // type:function size:0xCC create__16dAcOTarzanPole_cFv = .text:0x000001B0; // type:function size:0x16C -fn_288_320 = .text:0x00000320; // type:function size:0x8 -AcOTarzanPole__update = .text:0x00000330; // type:function size:0x224 +doDelete__16dAcOTarzanPole_cFv = .text:0x00000320; // type:function size:0x8 +actorExecute__16dAcOTarzanPole_cFv = .text:0x00000330; // type:function size:0x224 draw__16dAcOTarzanPole_cFv = .text:0x00000560; // type:function size:0x28 __dt__16dAcOTarzanPole_cFv = .text:0x00000590; // type:function size:0x80 _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global lbl_288_rodata_0 = .rodata:0x00000000; // type:object size:0x4C data:float g_profile_OBJ_TARZAN_POLE = .data:0x00000000; // type:object size:0x10 -lbl_288_data_10 = .data:0x00000010; // type:object size:0x30 -lbl_288_data_40 = .data:0x00000040; // type:object size:0x8 data:string -lbl_288_data_48 = .data:0x00000048; // type:object size:0x20 -AcOTarzanPole__vtable = .data:0x00000068; // type:object size:0x80 +sCcSrc__16dAcOTarzanPole_c = .data:0x00000010; // type:object size:0x30 +@23333 = .data:0x00000040; // type:object size:0x8 scope:local data:string +@23358 = .data:0x00000048; // type:object size:0x20 scope:local +__vt__16dAcOTarzanPole_c = .data:0x00000068; // type:object size:0x80 diff --git a/include/d/a/obj/d_a_obj_tarzan_pole.h b/include/d/a/obj/d_a_obj_tarzan_pole.h index 795c533e..ec9754d8 100644 --- a/include/d/a/obj/d_a_obj_tarzan_pole.h +++ b/include/d/a/obj/d_a_obj_tarzan_pole.h @@ -1,7 +1,6 @@ #ifndef D_A_OBJ_TARZAN_POLE_H #define D_A_OBJ_TARZAN_POLE_H -#include "UnknownTypeBelongings.h" #include "d/a/obj/d_a_obj_base.h" #include "d/col/bg/d_bg_w.h" #include "d/col/cc/d_cc_d.h" @@ -18,7 +17,6 @@ public: virtual int create() override; virtual int doDelete() override; virtual int actorExecute() override; - virtual int preDraw() override; virtual int draw() override; private: @@ -28,8 +26,8 @@ private: /* 0x334 */ m3d::smdl_c mMdl; /* 0x350 */ dBgW mBgCollider; /* 0x560 */ dCcD_Sph mCollider; - /* 0x6b0 */ mVec3_c mVec; - /* 0x6bc */ float mFloat; + /* 0x6b0 */ mVec3_c mVec; // TODO: Find better name, and figure out it's purpose + /* 0x6bc */ float mFloat; // TODO: No usage found yet }; #endif diff --git a/src/REL/d/a/obj/d_a_obj_tarzan_pole.cpp b/src/REL/d/a/obj/d_a_obj_tarzan_pole.cpp index c8e23740..042916fb 100644 --- a/src/REL/d/a/obj/d_a_obj_tarzan_pole.cpp +++ b/src/REL/d/a/obj/d_a_obj_tarzan_pole.cpp @@ -17,9 +17,9 @@ SPECIAL_ACTOR_PROFILE(OBJ_TARZAN_POLE, dAcOTarzanPole_c, fProfile::OBJ_TARZAN_PO // TODO: FIX: INCORRECT DATA! dCcD_SrcSph dAcOTarzanPole_c::sCcSrc = { /* mObjInf */ { - /* mObjAt */ {0,0,0,0,0,0,0,0}, - /* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_0x80000 | AT_TYPE_0x8000), 0x801111, {0, 0xA, 0x40F}, 8, 0}, - /* mObjCo */ {0x1E9}}, + /* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, + /* mObjTg */ {0xA00, 0x800311, {0, 0, 0x407}, 0x0000, 0x0000}, + /* mObjCo */ {0x00000000}}, /* mSphInf */ {10.0f} }; // clang-format on @@ -58,11 +58,14 @@ int dAcOTarzanPole_c::create() { forwardAccel = 0; forwardMaxSpeed = -40; - mFloat = (double)params; + mFloat = (s32)(params & 0xFF) * 10.0f; + if ((s32)(params & 0xFF) == 0xFF) { + mFloat = 0.0f; + } mVec = mVec3_c::Ex * 400; mVec.rotY(rotation.y); - boundingBox.Set(mVec3_c(-0, -120, -110), mVec3_c(500, 140, 110)); + boundingBox.Set(mVec3_c(-0.0f, -120.0f, -110.0f), mVec3_c(500.0f, 140.0f, 110.0f)); return SUCCEEDED; }