diff --git a/LEGO1/lego/legoomni/include/legomodelpresenter.h b/LEGO1/lego/legoomni/include/legomodelpresenter.h index 480de885..8bc784a4 100644 --- a/LEGO1/lego/legoomni/include/legomodelpresenter.h +++ b/LEGO1/lego/legoomni/include/legomodelpresenter.h @@ -36,7 +36,7 @@ class LegoModelPresenter : public MxVideoPresenter { void ParseExtra() override; // vtable+0x30 void Destroy() override; // vtable+0x38 - MxResult FUN_1007ff70(MxDSChunk& p_chunk, LegoEntity* p_entity, undefined p_modelUnknown0x34, LegoWorld* p_world); + MxResult FUN_1007ff70(MxDSChunk& p_chunk, LegoEntity* p_entity, MxBool p_roiVisible, LegoWorld* p_world); inline void Reset() { diff --git a/LEGO1/lego/legoomni/include/legonavcontroller.h b/LEGO1/lego/legoomni/include/legonavcontroller.h index a4ae8b21..f5f0d44f 100644 --- a/LEGO1/lego/legoomni/include/legonavcontroller.h +++ b/LEGO1/lego/legoomni/include/legonavcontroller.h @@ -71,7 +71,7 @@ class LegoNavController : public MxCore { MxBool p_urs ); static void SetLocation(MxU32 p_location); - void UpdateCameraLocation(char* p_location); + static void UpdateCameraLocation(const char* p_location); // SYNTHETIC: LEGO1 0x10054c10 // LegoNavController::`scalar deleting destructor' diff --git a/LEGO1/lego/legoomni/src/common/legovariables.cpp b/LEGO1/lego/legoomni/src/common/legovariables.cpp index c775b9aa..d4689af5 100644 --- a/LEGO1/lego/legoomni/src/common/legovariables.cpp +++ b/LEGO1/lego/legoomni/src/common/legovariables.cpp @@ -31,6 +31,10 @@ const char* g_varCURSOR = "CURSOR"; // STRING: LEGO1 0x100f3a1c const char* g_varWHOAMI = "WHO_AM_I"; +// GLOBAL: LEGO1 0x100f3a50 +// STRING: LEGO1 0x100f3a18 +const char* g_delimiter2 = " \t"; + // GLOBAL: LEGO1 0x100f3a54 // STRING: LEGO1 0x100f3a10 const char* g_varHIDE = "HIDE"; @@ -59,15 +63,14 @@ const char* g_nick = "Nick"; // STRING: LEGO1 0x100f39e0 const char* g_laura = "Laura"; -extern const char* g_delimiter; - // FUNCTION: LEGO1 0x10037d00 void VisibilityVariable::SetValue(const char* p_value) { MxVariable::SetValue(p_value); + if (p_value) { - char* instruction = strtok(m_value.GetDataPtr(), g_delimiter); - char* name = strtok(NULL, g_delimiter); + char* instruction = strtok(m_value.GetDataPtr(), g_delimiter2); + char* name = strtok(NULL, g_delimiter2); MxBool show; if (!strcmpi(instruction, g_varHIDE)) { diff --git a/LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp b/LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp index f2b2dfae..a6578c3d 100644 --- a/LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp +++ b/LEGO1/lego/legoomni/src/entity/legonavcontroller.cpp @@ -362,8 +362,9 @@ MxBool LegoNavController::CalculateNewPosDir( } // STUB: LEGO1 0x10055500 -void LegoNavController::UpdateCameraLocation(char* p_location) +void LegoNavController::UpdateCameraLocation(const char* p_location) { + // TODO } // STUB: LEGO1 0x10055620 diff --git a/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp b/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp index 6e7dd28b..aee10656 100644 --- a/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp @@ -162,7 +162,7 @@ void LegoAnimPresenter::FUN_100692b0() roi = CharacterManager()->FUN_10083500(src, TRUE); if (roi != NULL && str[0] == '*') { - roi->SetVisibility(0); + roi->SetVisibility(FALSE); } } else if (unk0x04 == 4) { @@ -174,7 +174,7 @@ void LegoAnimPresenter::FUN_100692b0() roi = CharacterManager()->FUN_10085a80(und, src, 1); if (roi != NULL) { - roi->SetVisibility(0); + roi->SetVisibility(FALSE); } delete[] src; diff --git a/LEGO1/lego/legoomni/src/video/legomodelpresenter.cpp b/LEGO1/lego/legoomni/src/video/legomodelpresenter.cpp index 5c4d6e44..af207540 100644 --- a/LEGO1/lego/legoomni/src/video/legomodelpresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legomodelpresenter.cpp @@ -208,7 +208,7 @@ MxResult LegoModelPresenter::CreateROI(MxDSChunk* p_chunk) MxResult LegoModelPresenter::FUN_1007ff70( MxDSChunk& p_chunk, LegoEntity* p_entity, - undefined p_modelUnknown0x34, + undefined p_roiVisible, LegoWorld* p_world ) { @@ -222,7 +222,7 @@ MxResult LegoModelPresenter::FUN_1007ff70( } if (m_roi != NULL) { - m_roi->SetVisibility(p_modelUnknown0x34); + m_roi->SetVisibility(p_roiVisible); } if (p_entity != NULL) { diff --git a/LEGO1/lego/legoomni/src/worlds/infocenter.cpp b/LEGO1/lego/legoomni/src/worlds/infocenter.cpp index 60af9f1e..88a04570 100644 --- a/LEGO1/lego/legoomni/src/worlds/infocenter.cpp +++ b/LEGO1/lego/legoomni/src/worlds/infocenter.cpp @@ -296,8 +296,8 @@ MxLong Infocenter::HandleEndAction(MxEndActionNotificationParam& p_param) m_currentCutscene = e_noIntro; return 1; case 2: - SetROIVisible(g_object2x4red, 0); - SetROIVisible(g_object2x4grn, 0); + SetROIVisible(g_object2x4red, FALSE); + SetROIVisible(g_object2x4grn, FALSE); BackgroundAudioManager()->RaiseVolume(); return 1; case 4: @@ -329,7 +329,7 @@ MxLong Infocenter::HandleEndAction(MxEndActionNotificationParam& p_param) } m_infocenterState->SetUnknown0x74(2); - SetROIVisible("infoman", 1); + SetROIVisible("infoman", TRUE); return 1; case 12: if (action->GetObjectId() == m_currentInfomainScript) { @@ -1067,15 +1067,15 @@ MxLong Infocenter::HandleNotification0(MxNotificationParam& p_param) } PlayAction(objectId); - SetROIVisible(g_object2x4red, 0); - SetROIVisible(g_object2x4grn, 0); + SetROIVisible(g_object2x4red, FALSE); + SetROIVisible(g_object2x4grn, FALSE); return 1; } case 6: if (m_infocenterState->GetUnknown0x74() == 8) { StopCurrentAction(); - SetROIVisible(g_object2x4red, 0); - SetROIVisible(g_object2x4grn, 0); + SetROIVisible(g_object2x4red, FALSE); + SetROIVisible(g_object2x4grn, FALSE); m_infocenterState->SetUnknown0x74(2); PlayAction(InfomainScript::c_iicb28in_RunAnim); return 1; diff --git a/LEGO1/lego/legoomni/src/worlds/isle.cpp b/LEGO1/lego/legoomni/src/worlds/isle.cpp index 903dcb42..ce5cf365 100644 --- a/LEGO1/lego/legoomni/src/worlds/isle.cpp +++ b/LEGO1/lego/legoomni/src/worlds/isle.cpp @@ -773,11 +773,11 @@ void Isle::Enable(MxBool p_enable) FUN_10015820(FALSE, LegoOmni::c_disableInput | LegoOmni::c_disable3d | LegoOmni::c_clearScreen); } - SetROIVisible("stretch", 0); - SetROIVisible("bird", 0); - SetROIVisible("rcred", 0); - SetROIVisible("towtk", 0); - SetROIVisible("pizpie", 0); + SetROIVisible("stretch", FALSE); + SetROIVisible("bird", FALSE); + SetROIVisible("rcred", FALSE); + SetROIVisible("towtk", FALSE); + SetROIVisible("pizpie", FALSE); } else { if (InputManager()->GetWorld() == this) { diff --git a/LEGO1/lego/legoomni/src/worlds/registrationbook.cpp b/LEGO1/lego/legoomni/src/worlds/registrationbook.cpp index fcc3fcb9..3f0a6108 100644 --- a/LEGO1/lego/legoomni/src/worlds/registrationbook.cpp +++ b/LEGO1/lego/legoomni/src/worlds/registrationbook.cpp @@ -324,7 +324,7 @@ void RegistrationBook::ReadyWorld() LegoROI* infoman = FindROI(g_infoman); if (infoman != NULL) { - infoman->SetVisibility(0); + infoman->SetVisibility(FALSE); } } else { diff --git a/LEGO1/realtime/roi.h b/LEGO1/realtime/roi.h index a529e1ae..e0a9a6da 100644 --- a/LEGO1/realtime/roi.h +++ b/LEGO1/realtime/roi.h @@ -112,16 +112,16 @@ class ROI { int GetLODCount() const { return lods ? lods->Size() : 0; } const CompoundObject* GetComp() const { return comp; } - inline char GetVisibility() { return m_visible; } - inline void SetVisibility(char p_visible) { m_visible = p_visible; } + inline unsigned char GetVisibility() { return m_visible; } + inline void SetVisibility(unsigned char p_visible) { m_visible = p_visible; } // SYNTHETIC: LEGO1 0x100a5d60 // ROI::`scalar deleting destructor' protected: - CompoundObject* comp; // 0x04 - LODListBase* lods; // 0x08 - char m_visible; // 0x0c + CompoundObject* comp; // 0x04 + LODListBase* lods; // 0x08 + unsigned char m_visible; // 0x0c }; // TEMPLATE: LEGO1 0x10084930