mirror of
https://github.com/isledecomp/isle-portable.git
synced 2025-09-25 13:41:32 -04:00
Implement/match ViewManager::RemoveAll (#616)
* Implement/match ViewManager::RemoveAll * Use const_iterator * const * Naming
This commit is contained in:
parent
6de17cf1b6
commit
de5cd98b76
@ -65,7 +65,7 @@ protected:
|
|||||||
void FUN_100692b0();
|
void FUN_100692b0();
|
||||||
void FUN_100695c0();
|
void FUN_100695c0();
|
||||||
LegoChar* FUN_100697c0(const LegoChar* p_und1, const LegoChar* p_und2);
|
LegoChar* FUN_100697c0(const LegoChar* p_und1, const LegoChar* p_und2);
|
||||||
LegoBool FUN_100698b0(const CompoundObject& p_und1, const LegoChar* p_und2);
|
LegoBool FUN_100698b0(const CompoundObject& p_rois, const LegoChar* p_und2);
|
||||||
void FUN_10069b10();
|
void FUN_10069b10();
|
||||||
LegoBool FUN_1006aba0();
|
LegoBool FUN_1006aba0();
|
||||||
LegoBool FUN_1006abb0(LegoTreeNode*, undefined4);
|
LegoBool FUN_1006abb0(LegoTreeNode*, undefined4);
|
||||||
|
@ -547,7 +547,7 @@ void LegoWorld::Enable(MxBool p_enable)
|
|||||||
while (cursor.Next(entity)) {
|
while (cursor.Next(entity)) {
|
||||||
if (entity->GetROI()) {
|
if (entity->GetROI()) {
|
||||||
entity->GetROI()->SetUnknown0x104(entity);
|
entity->GetROI()->SetUnknown0x104(entity);
|
||||||
GetViewManager()->AddToUnknown0x08(entity->GetROI());
|
GetViewManager()->Add(entity->GetROI());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -829,10 +829,10 @@ void LegoOmni::DeleteObject(MxDSAction& p_dsAction)
|
|||||||
LegoROI* LegoOmni::FindROI(const char* p_name)
|
LegoROI* LegoOmni::FindROI(const char* p_name)
|
||||||
{
|
{
|
||||||
ViewManager* viewManager = GetVideoManager()->Get3DManager()->GetLego3DView()->GetViewManager();
|
ViewManager* viewManager = GetVideoManager()->Get3DManager()->GetLego3DView()->GetViewManager();
|
||||||
CompoundObject& unk0x08 = viewManager->GetUnknown0x08();
|
const CompoundObject& rois = viewManager->GetROIs();
|
||||||
|
|
||||||
if (p_name != NULL && *p_name != '\0' && unk0x08.size() > 0) {
|
if (p_name != NULL && *p_name != '\0' && rois.size() > 0) {
|
||||||
for (CompoundObject::iterator it = unk0x08.begin(); it != unk0x08.end(); it++) {
|
for (CompoundObject::const_iterator it = rois.begin(); it != rois.end(); it++) {
|
||||||
LegoROI* roi = (LegoROI*) *it;
|
LegoROI* roi = (LegoROI*) *it;
|
||||||
const char* name = roi->GetName();
|
const char* name = roi->GetName();
|
||||||
|
|
||||||
|
@ -218,11 +218,11 @@ void LegoAnimPresenter::FUN_100695c0()
|
|||||||
m_unk0x70 = new LegoROIList();
|
m_unk0x70 = new LegoROIList();
|
||||||
|
|
||||||
if (m_unk0x70) {
|
if (m_unk0x70) {
|
||||||
CompoundObject& unk0x08 = VideoManager()->Get3DManager()->GetLego3DView()->GetViewManager()->GetUnknown0x08();
|
const CompoundObject& rois = VideoManager()->Get3DManager()->GetLego3DView()->GetViewManager()->GetROIs();
|
||||||
LegoU32 numActors = m_anim->GetNumActors();
|
LegoU32 numActors = m_anim->GetNumActors();
|
||||||
|
|
||||||
for (LegoU32 i = 0; i < numActors; i++) {
|
for (LegoU32 i = 0; i < numActors; i++) {
|
||||||
if (FUN_100698b0(unk0x08, m_anim->GetActorName(i)) == FALSE) {
|
if (FUN_100698b0(rois, m_anim->GetActorName(i)) == FALSE) {
|
||||||
undefined4 unk0x04 = m_anim->GetActorUnknown0x04(i);
|
undefined4 unk0x04 = m_anim->GetActorUnknown0x04(i);
|
||||||
|
|
||||||
if (unk0x04 == 5 || unk0x04 == 6) {
|
if (unk0x04 == 5 || unk0x04 == 6) {
|
||||||
@ -239,7 +239,7 @@ void LegoAnimPresenter::FUN_100695c0()
|
|||||||
strlwr(dest);
|
strlwr(dest);
|
||||||
|
|
||||||
UnkSaveDataWriter()->FUN_10085210(str, dest, 0);
|
UnkSaveDataWriter()->FUN_10085210(str, dest, 0);
|
||||||
FUN_100698b0(unk0x08, str);
|
FUN_100698b0(rois, str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -274,7 +274,7 @@ LegoChar* LegoAnimPresenter::FUN_100697c0(const LegoChar* p_und1, const LegoChar
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100698b0
|
// FUNCTION: LEGO1 0x100698b0
|
||||||
LegoBool LegoAnimPresenter::FUN_100698b0(const CompoundObject& p_und1, const LegoChar* p_und2)
|
LegoBool LegoAnimPresenter::FUN_100698b0(const CompoundObject& p_rois, const LegoChar* p_und2)
|
||||||
{
|
{
|
||||||
LegoBool result = FALSE;
|
LegoBool result = FALSE;
|
||||||
|
|
||||||
@ -285,8 +285,8 @@ LegoBool LegoAnimPresenter::FUN_100698b0(const CompoundObject& p_und1, const Leg
|
|||||||
str = tmp;
|
str = tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (str != NULL && *str != '\0' && p_und1.size() > 0) {
|
if (str != NULL && *str != '\0' && p_rois.size() > 0) {
|
||||||
for (CompoundObject::const_iterator it = p_und1.begin(); it != p_und1.end(); it++) {
|
for (CompoundObject::const_iterator it = p_rois.begin(); it != p_rois.end(); it++) {
|
||||||
LegoROI* roi = (LegoROI*) *it;
|
LegoROI* roi = (LegoROI*) *it;
|
||||||
const char* name = roi->GetName();
|
const char* name = roi->GetName();
|
||||||
|
|
||||||
|
@ -32,8 +32,39 @@ ViewManager::~ViewManager()
|
|||||||
SetPOVSource(NULL);
|
SetPOVSource(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x100a64d0
|
// FUNCTION: LEGO1 0x100a64d0
|
||||||
void ViewManager::RemoveAll(ViewROI*)
|
void ViewManager::RemoveAll(ViewROI* p_roi)
|
||||||
|
{
|
||||||
|
if (p_roi == NULL) {
|
||||||
|
for (CompoundObject::iterator it = rois.begin(); !(it == rois.end()); it++) {
|
||||||
|
ViewROI* roi = (ViewROI*) *it;
|
||||||
|
RemoveAll(roi);
|
||||||
|
}
|
||||||
|
|
||||||
|
rois.erase(rois.begin(), rois.end());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (p_roi->GetUnknown0xe0() >= 0) {
|
||||||
|
FUN_100a66a0(p_roi);
|
||||||
|
}
|
||||||
|
|
||||||
|
p_roi->SetUnknown0xe0(-1);
|
||||||
|
const CompoundObject* comp = p_roi->GetComp();
|
||||||
|
|
||||||
|
if (comp != NULL) {
|
||||||
|
for (CompoundObject::const_iterator it = comp->begin(); !(it == comp->end()); it++) {
|
||||||
|
ViewROI* roi = (ViewROI*) *it;
|
||||||
|
|
||||||
|
if (roi != NULL) {
|
||||||
|
RemoveAll(roi);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// STUB: LEGO1 0x100a66a0
|
||||||
|
void ViewManager::FUN_100a66a0(ViewROI* p_roi)
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
@ -21,8 +21,8 @@ public:
|
|||||||
ViewManager(Tgl::Renderer* pRenderer, Tgl::Group* scene, const OrientableROI* point_of_view);
|
ViewManager(Tgl::Renderer* pRenderer, Tgl::Group* scene, const OrientableROI* point_of_view);
|
||||||
virtual ~ViewManager();
|
virtual ~ViewManager();
|
||||||
|
|
||||||
void RemoveAll(ViewROI*);
|
void RemoveAll(ViewROI* p_roi);
|
||||||
|
void FUN_100a66a0(ViewROI* p_roi);
|
||||||
void SetPOVSource(const OrientableROI* point_of_view);
|
void SetPOVSource(const OrientableROI* point_of_view);
|
||||||
void SetResolution(int width, int height);
|
void SetResolution(int width, int height);
|
||||||
void SetFrustrum(float fov, float front, float back);
|
void SetFrustrum(float fov, float front, float back);
|
||||||
@ -31,13 +31,13 @@ public:
|
|||||||
// SYNTHETIC: LEGO1 0x100a6000
|
// SYNTHETIC: LEGO1 0x100a6000
|
||||||
// ViewManager::`scalar deleting destructor'
|
// ViewManager::`scalar deleting destructor'
|
||||||
|
|
||||||
inline CompoundObject& GetUnknown0x08() { return unk0x08; }
|
inline const CompoundObject& GetROIs() { return rois; }
|
||||||
|
|
||||||
inline void AddToUnknown0x08(ViewROI* p_roi) { unk0x08.push_back(p_roi); }
|
inline void Add(ViewROI* p_roi) { rois.push_back(p_roi); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Tgl::Group* scene; // 0x04
|
Tgl::Group* scene; // 0x04
|
||||||
CompoundObject unk0x08; // 0x08
|
CompoundObject rois; // 0x08
|
||||||
RealtimeView rt_view; // 0x14
|
RealtimeView rt_view; // 0x14
|
||||||
ROIList visible_rois; // 0x18
|
ROIList visible_rois; // 0x18
|
||||||
float unk0x28; // 0x28
|
float unk0x28; // 0x28
|
||||||
|
@ -56,6 +56,9 @@ public:
|
|||||||
virtual const Tgl::Group* GetGeometry() const; // vtable+0x34
|
virtual const Tgl::Group* GetGeometry() const; // vtable+0x34
|
||||||
virtual Tgl::Group* GetGeometry(); // vtable+0x30
|
virtual Tgl::Group* GetGeometry(); // vtable+0x30
|
||||||
|
|
||||||
|
inline int GetUnknown0xe0() { return m_unk0xe0; }
|
||||||
|
inline void SetUnknown0xe0(int p_unk0xe0) { m_unk0xe0 = p_unk0xe0; }
|
||||||
|
|
||||||
static undefined SetUnk101013d8(undefined p_flag);
|
static undefined SetUnk101013d8(undefined p_flag);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user