From c6174c2a13eac4151d72a85076860c66682c7f20 Mon Sep 17 00:00:00 2001
From: Joshua Peisach <itzswirlz2020@outlook.com>
Date: Wed, 27 Dec 2023 13:32:32 -0500
Subject: [PATCH] Bootstrap rest of LegoTexturePresenter (#374)

* Bootstrap rest of LegoTexturePresenter

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
---
 LEGO1/legotexturepresenter.cpp | 19 +++++++++++++++++++
 LEGO1/legotexturepresenter.h   |  2 ++
 2 files changed, 21 insertions(+)

diff --git a/LEGO1/legotexturepresenter.cpp b/LEGO1/legotexturepresenter.cpp
index 36a7e243..6d0cbe8c 100644
--- a/LEGO1/legotexturepresenter.cpp
+++ b/LEGO1/legotexturepresenter.cpp
@@ -2,6 +2,7 @@
 
 #include "legoomni.h"
 #include "legovideomanager.h"
+#include "mxcompositepresenter.h"
 
 // FUNCTION: LEGO1 0x1004eb40
 LegoTexturePresenter::~LegoTexturePresenter()
@@ -15,3 +16,21 @@ MxResult LegoTexturePresenter::AddToManager()
 	VideoManager()->AddPresenter(*this);
 	return SUCCESS;
 }
+
+// STUB: LEGO1 0x1004fc60
+MxResult LegoTexturePresenter::PutData()
+{
+	// TODO
+	return FAILURE;
+}
+
+// FUNCTION: LEGO1 0x1004fcb0
+void LegoTexturePresenter::DoneTickle()
+{
+	if (this->m_compositePresenter && !this->m_compositePresenter->VTable0x64(2)) {
+		SetTickleState(TickleState_Idle);
+		return;
+	}
+
+	MxMediaPresenter::DoneTickle();
+}
diff --git a/LEGO1/legotexturepresenter.h b/LEGO1/legotexturepresenter.h
index 22a23500..36cc59b9 100644
--- a/LEGO1/legotexturepresenter.h
+++ b/LEGO1/legotexturepresenter.h
@@ -22,7 +22,9 @@ public:
 		return !strcmp(p_name, LegoTexturePresenter::ClassName()) || MxMediaPresenter::IsA(p_name);
 	}
 
+	virtual void DoneTickle() override;       // vtable+0x2c
 	virtual MxResult AddToManager() override; // vtable+0x34
+	virtual MxResult PutData() override;      // vtable+0x4c
 };
 
 #endif // LEGOTEXTUREPRESENTER_H