summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcompugab <compugab@hotmail.com>2026-05-31 20:56:23 -0400
committercompugab <compugab@hotmail.com>2026-05-31 20:56:23 -0400
commit86b7b5691818858b13d6293d048549cf5d07e2de (patch)
tree09b3786686d50aaee822d23d5d8495b5349b2830
parente6cc236379784f6c95df311a868b67ce8d157799 (diff)
match d_lyt_map_capture
-rw-r--r--include/d/d_stage.h19
-rw-r--r--include/d/lyt/d_lyt_map_capture.h8
-rw-r--r--src/d/lyt/d_lyt_map_capture.cpp57
3 files changed, 71 insertions, 13 deletions
diff --git a/include/d/d_stage.h b/include/d/d_stage.h
index 3c3d2a93..de690955 100644
--- a/include/d/d_stage.h
+++ b/include/d/d_stage.h
@@ -48,15 +48,16 @@ public:
/* 0x000 */ mHeapAllocator_c mAllocator;
/* 0x01C */ Child mChildren[8];
/* 0x0FC */ mVec3_c field_0x0FC;
- /* 0x108 */ f32 field_0x108;
- /* 0x10C */ f32 field_0x10C;
- /* 0x110 */ f32 field_0x110;
- /* 0x114 */ f32 field_0x114;
- /* 0x118 */ f32 field_0x118;
- /* 0x11C */ f32 field_0x11C;
- /* 0x120 */ f32 field_0x120;
- /* 0x124 */ f32 field_0x124;
- /* 0x128 */ f32 field_0x128;
+ /* 0x108 */ mVec3_c field_0x108;
+ //f32 field_0x108;
+ /* 0x10C f32 field_0x10C;
+ /* 0x110 f32 field_0x110; */
+ /* 0x114 */ mVec3_c field_0x114;
+ ///* 0x118 */ f32 field_0x118;
+ ///* 0x11C */ f32 field_0x11C;
+ /* 0x120 */ mVec3_c field_0x120;
+ ///* 0x124 */ f32 field_0x124;
+ ///* 0x128 */ f32 field_0x128;
/* 0x12C */ f32 field_0x12C;
/* 0x130 */ EGG::ScreenEffectBlur mScreenEffect;
/* 0x168 */ EGG::PostEffectBlur mPostEffect;
diff --git a/include/d/lyt/d_lyt_map_capture.h b/include/d/lyt/d_lyt_map_capture.h
index a99fb335..c9e0dcf5 100644
--- a/include/d/lyt/d_lyt_map_capture.h
+++ b/include/d/lyt/d_lyt_map_capture.h
@@ -9,8 +9,6 @@
class dLytMapCapture_c {
public:
dLytMapCapture_c() :mStateMgr(*this), mpPicture(nullptr) {
- field_0x070 = 0.0f;
- field_0x074 = 0.0f;
mRenderRequest = false;
mIsBusyRendering = false;
field_0x06C = 0.0f;
@@ -34,8 +32,11 @@ public:
void execute();
bool isBusyRendering() const;
+
+
private:
void fn_8012D6F0();
+ void fn_8012D800(nw4r::lyt::Pane *pane, const GXTexObj *texObj);
/* 0x004 */ UI_STATE_MGR_DECLARE(dLytMapCapture_c);
/* 0x040 */ nw4r::lyt::Picture *mpPicture;
@@ -43,8 +44,7 @@ private:
/* 0x064 */ f32 field_0x064;
/* 0x068 */ f32 field_0x068;
/* 0x06C */ f32 field_0x06C;
- /* 0x070 */ f32 field_0x070;
- /* 0x074 */ f32 field_0x074;
+ /* 0x070 */ nw4r::lyt::Size field_0x070;
/* 0x078 */ bool mRenderRequest;
/* 0x079 */ bool mIsBusyRendering;
};
diff --git a/src/d/lyt/d_lyt_map_capture.cpp b/src/d/lyt/d_lyt_map_capture.cpp
index c8ead0c9..9f1c0053 100644
--- a/src/d/lyt/d_lyt_map_capture.cpp
+++ b/src/d/lyt/d_lyt_map_capture.cpp
@@ -1,6 +1,7 @@
#include "d/lyt/d_lyt_map_capture.h"
#include "common.h"
#include "d/d_stage.h"
+#include "d/lyt/d_lyt_map_global.h"
STATE_DEFINE(dLytMapCapture_c, RenderingWait);
STATE_DEFINE(dLytMapCapture_c, RenderingWaitStep2);
@@ -38,3 +39,59 @@ bool dLytMapCapture_c::isBusyRendering() const{
void dLytMapCapture_c::execute() {
mStateMgr.executeState();
}
+
+void fn_8012D6D0(mVec3_c *ignored, mVec3_c *out) {
+ *out = dStage_c::GetInstance()->getMapRelated()->field_0x0FC;
+}
+
+void fn_8012D610(mVec3_c *ignored, mVec3_c *out){
+ dStage_c::GetInstance()->getMapRelated()->fn_801B50C0(0);
+ const mVec3_c &v = dStage_c::GetInstance()->getMapRelated()->fn_801B4CB0();
+
+ float z = v.z;
+ float y = v.y;
+ float x = v.x;
+ out->y = y;
+ out->x = x;
+ out->z = z;
+}
+
+extern int fn_801B5970(MapRelated*, const GXTexObj*);
+
+void dLytMapCapture_c::fn_8012D800(nw4r::lyt::Pane *param_2, const GXTexObj *param_3) {
+ if (param_3 != nullptr && dStage_c::GetInstance() != nullptr && fn_801B5970(dStage_c::GetInstance()->getMapRelated(), param_3)) {
+ field_0x070.width = GXGetTexObjWidth(param_3);
+ field_0x070.height = GXGetTexObjHeight(param_3);
+ param_2->SetSize(field_0x070);
+ param_2->GetMaterial()->GetTexMapAry()->ReplaceImage(*param_3);
+ }
+}
+
+
+void dLytMapCapture_c::fn_8012D6F0(){
+
+ dStage_c * pStage = dStage_c::GetInstance();
+
+ if (pStage != nullptr) {
+ dLytMapGlobal_c* pLytMap = dLytMapGlobal_c::GetInstance();
+
+ f32 zoom = pLytMap->getZoomFrame();
+ f32 inv = 1.0f / pLytMap->getField_0x44();
+ s32 floor = pLytMap->getFloor();
+
+ mVec3_c v(field_0x064 * inv, 1, field_0x06C * inv);
+
+ pStage->getMapRelated()->fn_801B50C0(floor);
+
+ pStage->getMapRelated()->field_0x108 = pLytMap->getMapScroll();
+ pStage->getMapRelated()->field_0x114 = v;
+
+ pStage->getMapRelated()->field_0x120 = pLytMap->getMapRotationCenter();
+
+
+ pStage->getMapRelated()->field_0x1E6 = (u16)(-pLytMap->getMapRotation());
+ pStage->getMapRelated()->field_0x12C = zoom;
+ pStage->getMapRelated()->field_0x1EE = 1;
+ }
+ return;
+}