mirror of
https://github.com/isledecomp/isle-portable.git
synced 2025-02-16 19:50:52 -05:00
Finish LegoVariables class (#698)
* Finish LegoVariables class * Update legonavcontroller.cpp * Update legobackgroundcolor.cpp * Match functions, style, refactor visible * Use MxBool * Merge/fix --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
parent
d92963982a
commit
eaa935f646
18 changed files with 135 additions and 39 deletions
|
@ -36,7 +36,7 @@ public:
|
||||||
void ParseExtra() override; // vtable+0x30
|
void ParseExtra() override; // vtable+0x30
|
||||||
void Destroy() override; // vtable+0x38
|
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()
|
inline void Reset()
|
||||||
{
|
{
|
||||||
|
|
|
@ -71,6 +71,7 @@ public:
|
||||||
MxBool p_urs
|
MxBool p_urs
|
||||||
);
|
);
|
||||||
static void SetLocation(MxU32 p_location);
|
static void SetLocation(MxU32 p_location);
|
||||||
|
static void UpdateCameraLocation(const char* p_location);
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x10054c10
|
// SYNTHETIC: LEGO1 0x10054c10
|
||||||
// LegoNavController::`scalar deleting destructor'
|
// LegoNavController::`scalar deleting destructor'
|
||||||
|
|
|
@ -64,7 +64,7 @@ void SetIsWorldActive(MxBool p_isWorldActive);
|
||||||
void DeleteObjects(MxAtomId* p_id, MxS32 p_first, MxS32 p_last);
|
void DeleteObjects(MxAtomId* p_id, MxS32 p_first, MxS32 p_last);
|
||||||
void SetCurrentWorld(LegoWorld* p_world);
|
void SetCurrentWorld(LegoWorld* p_world);
|
||||||
void FUN_10015820(MxBool p_disable, MxU16 p_flags);
|
void FUN_10015820(MxBool p_disable, MxU16 p_flags);
|
||||||
void SetROIUnknown0x0c(const char* p_name, undefined p_unk0x0c);
|
void SetROIVisible(const char* p_name, MxBool p_visible);
|
||||||
void SetCurrentActor(IslePathActor* p_currentActor);
|
void SetCurrentActor(IslePathActor* p_currentActor);
|
||||||
|
|
||||||
#endif // MISC_H
|
#endif // MISC_H
|
||||||
|
|
|
@ -113,7 +113,7 @@ LegoROI* LegoCharacterManager::GetROI(const char* p_key, MxBool p_createEntity)
|
||||||
|
|
||||||
if (character == NULL) {
|
if (character == NULL) {
|
||||||
LegoROI* roi = CreateROI(p_key);
|
LegoROI* roi = CreateROI(p_key);
|
||||||
roi->SetUnknown0x0c(0);
|
roi->SetVisibility(FALSE);
|
||||||
|
|
||||||
if (roi != NULL) {
|
if (roi != NULL) {
|
||||||
character = new LegoCharacter(roi);
|
character = new LegoCharacter(roi);
|
||||||
|
|
|
@ -2,8 +2,12 @@
|
||||||
|
|
||||||
#include "legobuildingmanager.h"
|
#include "legobuildingmanager.h"
|
||||||
#include "legocharactermanager.h"
|
#include "legocharactermanager.h"
|
||||||
|
#include "legogamestate.h"
|
||||||
|
#include "legonavcontroller.h"
|
||||||
#include "legoplantmanager.h"
|
#include "legoplantmanager.h"
|
||||||
|
#include "legovideomanager.h"
|
||||||
#include "misc.h"
|
#include "misc.h"
|
||||||
|
#include "roi/legoroi.h"
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(VisibilityVariable, 0x24)
|
DECOMP_SIZE_ASSERT(VisibilityVariable, 0x24)
|
||||||
DECOMP_SIZE_ASSERT(CameraLocationVariable, 0x24)
|
DECOMP_SIZE_ASSERT(CameraLocationVariable, 0x24)
|
||||||
|
@ -27,16 +31,81 @@ const char* g_varCURSOR = "CURSOR";
|
||||||
// STRING: LEGO1 0x100f3a1c
|
// STRING: LEGO1 0x100f3a1c
|
||||||
const char* g_varWHOAMI = "WHO_AM_I";
|
const char* g_varWHOAMI = "WHO_AM_I";
|
||||||
|
|
||||||
// STUB: LEGO1 0x10037d00
|
// GLOBAL: LEGO1 0x100f3a50
|
||||||
|
// STRING: LEGO1 0x100f3a18
|
||||||
|
const char* g_delimiter2 = " \t";
|
||||||
|
|
||||||
|
// GLOBAL: LEGO1 0x100f3a54
|
||||||
|
// STRING: LEGO1 0x100f3a10
|
||||||
|
const char* g_varHIDE = "HIDE";
|
||||||
|
|
||||||
|
// GLOBAL: LEGO1 0x100f3a58
|
||||||
|
// STRING: LEGO1 0x100f3a08
|
||||||
|
const char* g_varSHOW = "SHOW";
|
||||||
|
|
||||||
|
// GLOBAL: LEGO1 0x100f3a5c
|
||||||
|
// STRING: LEGO1 0x100f3a00
|
||||||
|
const char* g_papa = "Papa";
|
||||||
|
|
||||||
|
// GLOBAL: LEGO1 0x100f3a60
|
||||||
|
// STRING: LEGO1 0x100f39f8
|
||||||
|
const char* g_mama = "Mama";
|
||||||
|
|
||||||
|
// GLOBAL: LEGO1 0x100f3a64
|
||||||
|
// STRING: LEGO1 0x100f39f0
|
||||||
|
const char* g_pepper = "Pepper";
|
||||||
|
|
||||||
|
// GLOBAL: LEGO1 0x100f3a68
|
||||||
|
// STRING: LEGO1 0x100f39e8
|
||||||
|
const char* g_nick = "Nick";
|
||||||
|
|
||||||
|
// GLOBAL: LEGO1 0x100f3a6c
|
||||||
|
// STRING: LEGO1 0x100f39e0
|
||||||
|
const char* g_laura = "Laura";
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10037d00
|
||||||
void VisibilityVariable::SetValue(const char* p_value)
|
void VisibilityVariable::SetValue(const char* p_value)
|
||||||
{
|
{
|
||||||
// TODO
|
MxVariable::SetValue(p_value);
|
||||||
|
|
||||||
|
if (p_value) {
|
||||||
|
char* instruction = strtok(m_value.GetDataPtr(), g_delimiter2);
|
||||||
|
char* name = strtok(NULL, g_delimiter2);
|
||||||
|
MxBool show;
|
||||||
|
|
||||||
|
if (!strcmpi(instruction, g_varHIDE)) {
|
||||||
|
show = FALSE;
|
||||||
|
}
|
||||||
|
else if (!strcmpi(instruction, g_varSHOW)) {
|
||||||
|
show = TRUE;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
LegoROI* roi = FindROI(name);
|
||||||
|
if (roi) {
|
||||||
|
roi->SetVisibility(show);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x10037d80
|
// FUNCTION: LEGO1 0x10037d80
|
||||||
void CameraLocationVariable::SetValue(const char* p_value)
|
void CameraLocationVariable::SetValue(const char* p_value)
|
||||||
{
|
{
|
||||||
// TODO
|
char buffer[256];
|
||||||
|
MxVariable::SetValue(p_value);
|
||||||
|
|
||||||
|
strcpy(buffer, p_value);
|
||||||
|
|
||||||
|
char* location = strtok(buffer, ",");
|
||||||
|
NavController()->UpdateCameraLocation(location);
|
||||||
|
|
||||||
|
location = strtok(NULL, ",");
|
||||||
|
if (location) {
|
||||||
|
MxFloat pov = (MxFloat) atof(location);
|
||||||
|
VideoManager()->Get3DManager()->SetFrustrum(pov, 0.1f, 250.0f);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10037e30
|
// FUNCTION: LEGO1 0x10037e30
|
||||||
|
@ -44,10 +113,26 @@ void CursorVariable::SetValue(const char* p_value)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x10037e40
|
// FUNCTION: LEGO1 0x10037e40
|
||||||
void WhoAmIVariable::SetValue(const char* p_value)
|
void WhoAmIVariable::SetValue(const char* p_value)
|
||||||
{
|
{
|
||||||
// TODO
|
MxVariable::SetValue(p_value);
|
||||||
|
|
||||||
|
if (!strcmpi(p_value, g_papa)) {
|
||||||
|
GameState()->SetActorId(3);
|
||||||
|
}
|
||||||
|
else if (!strcmpi(p_value, g_mama)) {
|
||||||
|
GameState()->SetActorId(2);
|
||||||
|
}
|
||||||
|
else if (!strcmpi(p_value, g_pepper)) {
|
||||||
|
GameState()->SetActorId(1);
|
||||||
|
}
|
||||||
|
else if (!strcmpi(p_value, g_nick)) {
|
||||||
|
GameState()->SetActorId(4);
|
||||||
|
}
|
||||||
|
else if (!strcmpi(p_value, g_laura)) {
|
||||||
|
GameState()->SetActorId(5);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10085aa0
|
// FUNCTION: LEGO1 0x10085aa0
|
||||||
|
|
|
@ -124,12 +124,12 @@ LegoROI* FindROI(const char* p_name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10015860
|
// FUNCTION: LEGO1 0x10015860
|
||||||
void SetROIUnknown0x0c(const char* p_name, undefined p_unk0x0c)
|
void SetROIVisible(const char* p_name, MxBool p_visible)
|
||||||
{
|
{
|
||||||
LegoROI* roi = FindROI(p_name);
|
LegoROI* roi = FindROI(p_name);
|
||||||
|
|
||||||
if (roi) {
|
if (roi) {
|
||||||
roi->SetUnknown0x0c(p_unk0x0c);
|
roi->SetVisibility(p_visible);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -361,6 +361,12 @@ MxBool LegoNavController::CalculateNewPosDir(
|
||||||
return changed;
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// STUB: LEGO1 0x10055500
|
||||||
|
void LegoNavController::UpdateCameraLocation(const char* p_location)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x10055620
|
// STUB: LEGO1 0x10055620
|
||||||
void LegoNavController::SetLocation(MxU32 p_location)
|
void LegoNavController::SetLocation(MxU32 p_location)
|
||||||
{
|
{
|
||||||
|
|
|
@ -388,7 +388,7 @@ MxBool LegoInputManager::ProcessOneEvent(LegoEventNotificationParam& p_param)
|
||||||
LegoROI* roi = PickROI(p_param.GetX(), p_param.GetY());
|
LegoROI* roi = PickROI(p_param.GetX(), p_param.GetY());
|
||||||
p_param.SetROI(roi);
|
p_param.SetROI(roi);
|
||||||
|
|
||||||
if (roi && roi->GetUnknown0x0c() == 1) {
|
if (roi && roi->GetVisibility()) {
|
||||||
for (OrientableROI* parent = roi->GetParentROI(); parent; parent = parent->GetParentROI()) {
|
for (OrientableROI* parent = roi->GetParentROI(); parent; parent = parent->GetParentROI()) {
|
||||||
roi = (LegoROI*) parent;
|
roi = (LegoROI*) parent;
|
||||||
}
|
}
|
||||||
|
|
|
@ -162,7 +162,7 @@ void LegoAnimPresenter::FUN_100692b0()
|
||||||
roi = CharacterManager()->GetROI(src, TRUE);
|
roi = CharacterManager()->GetROI(src, TRUE);
|
||||||
|
|
||||||
if (roi != NULL && str[0] == '*') {
|
if (roi != NULL && str[0] == '*') {
|
||||||
roi->SetUnknown0x0c(0);
|
roi->SetVisibility(FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (unk0x04 == 4) {
|
else if (unk0x04 == 4) {
|
||||||
|
@ -174,7 +174,7 @@ void LegoAnimPresenter::FUN_100692b0()
|
||||||
roi = CharacterManager()->FUN_10085a80(und, src, 1);
|
roi = CharacterManager()->FUN_10085a80(und, src, 1);
|
||||||
|
|
||||||
if (roi != NULL) {
|
if (roi != NULL) {
|
||||||
roi->SetUnknown0x0c(0);
|
roi->SetVisibility(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
delete[] src;
|
delete[] src;
|
||||||
|
@ -198,7 +198,7 @@ void LegoAnimPresenter::FUN_100692b0()
|
||||||
roi = CharacterManager()->FUN_10085210(und, src, 1);
|
roi = CharacterManager()->FUN_10085210(und, src, 1);
|
||||||
|
|
||||||
if (roi != NULL) {
|
if (roi != NULL) {
|
||||||
roi->SetUnknown0x0c(0);
|
roi->SetVisibility(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
delete[] src;
|
delete[] src;
|
||||||
|
|
|
@ -208,7 +208,7 @@ done:
|
||||||
MxResult LegoModelPresenter::FUN_1007ff70(
|
MxResult LegoModelPresenter::FUN_1007ff70(
|
||||||
MxDSChunk& p_chunk,
|
MxDSChunk& p_chunk,
|
||||||
LegoEntity* p_entity,
|
LegoEntity* p_entity,
|
||||||
undefined p_modelUnknown0x34,
|
MxBool p_roiVisible,
|
||||||
LegoWorld* p_world
|
LegoWorld* p_world
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
@ -222,7 +222,7 @@ MxResult LegoModelPresenter::FUN_1007ff70(
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_roi != NULL) {
|
if (m_roi != NULL) {
|
||||||
m_roi->SetUnknown0x0c(p_modelUnknown0x34);
|
m_roi->SetVisibility(p_roiVisible);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p_entity != NULL) {
|
if (p_entity != NULL) {
|
||||||
|
|
|
@ -296,8 +296,8 @@ MxLong Infocenter::HandleEndAction(MxEndActionNotificationParam& p_param)
|
||||||
m_currentCutscene = e_noIntro;
|
m_currentCutscene = e_noIntro;
|
||||||
return 1;
|
return 1;
|
||||||
case 2:
|
case 2:
|
||||||
SetROIUnknown0x0c(g_object2x4red, 0);
|
SetROIVisible(g_object2x4red, FALSE);
|
||||||
SetROIUnknown0x0c(g_object2x4grn, 0);
|
SetROIVisible(g_object2x4grn, FALSE);
|
||||||
BackgroundAudioManager()->RaiseVolume();
|
BackgroundAudioManager()->RaiseVolume();
|
||||||
return 1;
|
return 1;
|
||||||
case 4:
|
case 4:
|
||||||
|
@ -329,7 +329,7 @@ MxLong Infocenter::HandleEndAction(MxEndActionNotificationParam& p_param)
|
||||||
}
|
}
|
||||||
|
|
||||||
m_infocenterState->SetUnknown0x74(2);
|
m_infocenterState->SetUnknown0x74(2);
|
||||||
SetROIUnknown0x0c("infoman", 1);
|
SetROIVisible("infoman", TRUE);
|
||||||
return 1;
|
return 1;
|
||||||
case 12:
|
case 12:
|
||||||
if (action->GetObjectId() == m_currentInfomainScript) {
|
if (action->GetObjectId() == m_currentInfomainScript) {
|
||||||
|
@ -1067,15 +1067,15 @@ MxLong Infocenter::HandleNotification0(MxNotificationParam& p_param)
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayAction(objectId);
|
PlayAction(objectId);
|
||||||
SetROIUnknown0x0c(g_object2x4red, 0);
|
SetROIVisible(g_object2x4red, FALSE);
|
||||||
SetROIUnknown0x0c(g_object2x4grn, 0);
|
SetROIVisible(g_object2x4grn, FALSE);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
case 6:
|
case 6:
|
||||||
if (m_infocenterState->GetUnknown0x74() == 8) {
|
if (m_infocenterState->GetUnknown0x74() == 8) {
|
||||||
StopCurrentAction();
|
StopCurrentAction();
|
||||||
SetROIUnknown0x0c(g_object2x4red, 0);
|
SetROIVisible(g_object2x4red, FALSE);
|
||||||
SetROIUnknown0x0c(g_object2x4grn, 0);
|
SetROIVisible(g_object2x4grn, FALSE);
|
||||||
m_infocenterState->SetUnknown0x74(2);
|
m_infocenterState->SetUnknown0x74(2);
|
||||||
PlayAction(InfomainScript::c_iicb28in_RunAnim);
|
PlayAction(InfomainScript::c_iicb28in_RunAnim);
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -773,11 +773,11 @@ void Isle::Enable(MxBool p_enable)
|
||||||
FUN_10015820(FALSE, LegoOmni::c_disableInput | LegoOmni::c_disable3d | LegoOmni::c_clearScreen);
|
FUN_10015820(FALSE, LegoOmni::c_disableInput | LegoOmni::c_disable3d | LegoOmni::c_clearScreen);
|
||||||
}
|
}
|
||||||
|
|
||||||
SetROIUnknown0x0c("stretch", 0);
|
SetROIVisible("stretch", FALSE);
|
||||||
SetROIUnknown0x0c("bird", 0);
|
SetROIVisible("bird", FALSE);
|
||||||
SetROIUnknown0x0c("rcred", 0);
|
SetROIVisible("rcred", FALSE);
|
||||||
SetROIUnknown0x0c("towtk", 0);
|
SetROIVisible("towtk", FALSE);
|
||||||
SetROIUnknown0x0c("pizpie", 0);
|
SetROIVisible("pizpie", FALSE);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (InputManager()->GetWorld() == this) {
|
if (InputManager()->GetWorld() == this) {
|
||||||
|
@ -828,7 +828,7 @@ MxLong Isle::HandleTransitionEnd()
|
||||||
|
|
||||||
switch (m_destLocation) {
|
switch (m_destLocation) {
|
||||||
case LegoGameState::e_infomain:
|
case LegoGameState::e_infomain:
|
||||||
((LegoEntity*) Find(*g_isleScript, IsleScript::c_InfoCenter_Entity))->GetROI()->SetUnknown0x0c(1);
|
((LegoEntity*) Find(*g_isleScript, IsleScript::c_InfoCenter_Entity))->GetROI()->SetVisibility(TRUE);
|
||||||
GameState()->SwitchArea(m_destLocation);
|
GameState()->SwitchArea(m_destLocation);
|
||||||
m_destLocation = LegoGameState::e_undefined;
|
m_destLocation = LegoGameState::e_undefined;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -324,7 +324,7 @@ void RegistrationBook::ReadyWorld()
|
||||||
|
|
||||||
LegoROI* infoman = FindROI(g_infoman);
|
LegoROI* infoman = FindROI(g_infoman);
|
||||||
if (infoman != NULL) {
|
if (infoman != NULL) {
|
||||||
infoman->SetUnknown0x0c(0);
|
infoman->SetVisibility(FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -394,7 +394,7 @@ LegoResult LegoROI::FUN_100a8da0(LegoTreeNode* p_node, const Matrix4& p_matrix,
|
||||||
roi->VTable0x1c();
|
roi->VTable0x1c();
|
||||||
|
|
||||||
LegoBool und = data->FUN_100a0990(p_time);
|
LegoBool und = data->FUN_100a0990(p_time);
|
||||||
roi->SetUnknown0x0c(und);
|
roi->SetVisibility(und);
|
||||||
|
|
||||||
for (LegoU32 i = 0; i < p_node->GetNumChildren(); i++) {
|
for (LegoU32 i = 0; i < p_node->GetNumChildren(); i++) {
|
||||||
FUN_100a8da0(p_node->GetChild(i), roi->m_local2world, p_time, roi);
|
FUN_100a8da0(p_node->GetChild(i), roi->m_local2world, p_time, roi);
|
||||||
|
|
|
@ -45,6 +45,9 @@
|
||||||
// LIBRARY: LEGO1 0x1008b680
|
// LIBRARY: LEGO1 0x1008b680
|
||||||
// _strncmp
|
// _strncmp
|
||||||
|
|
||||||
|
// LIBRARY: LEGO1 0x1008b6c0
|
||||||
|
// _atof
|
||||||
|
|
||||||
// LIBRARY: LEGO1 0x1008b730
|
// LIBRARY: LEGO1 0x1008b730
|
||||||
// _fprintf
|
// _fprintf
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ public:
|
||||||
|
|
||||||
inline MxS8 Compare(const MxString& p_str) const { return strcmp(m_data, p_str.m_data); }
|
inline MxS8 Compare(const MxString& p_str) const { return strcmp(m_data, p_str.m_data); }
|
||||||
inline const char* GetData() const { return m_data; }
|
inline const char* GetData() const { return m_data; }
|
||||||
|
inline char* GetDataPtr() const { return m_data; }
|
||||||
inline const MxU16 GetLength() const { return m_length; }
|
inline const MxU16 GetLength() const { return m_length; }
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100ae280
|
// SYNTHETIC: LEGO1 0x100ae280
|
||||||
|
|
|
@ -90,7 +90,7 @@ public:
|
||||||
{
|
{
|
||||||
comp = 0;
|
comp = 0;
|
||||||
lods = 0;
|
lods = 0;
|
||||||
m_unk0x0c = 1;
|
m_visible = true;
|
||||||
}
|
}
|
||||||
virtual ~ROI()
|
virtual ~ROI()
|
||||||
{
|
{
|
||||||
|
@ -112,16 +112,16 @@ public:
|
||||||
int GetLODCount() const { return lods ? lods->Size() : 0; }
|
int GetLODCount() const { return lods ? lods->Size() : 0; }
|
||||||
const CompoundObject* GetComp() const { return comp; }
|
const CompoundObject* GetComp() const { return comp; }
|
||||||
|
|
||||||
inline undefined GetUnknown0x0c() { return m_unk0x0c; }
|
inline unsigned char GetVisibility() { return m_visible; }
|
||||||
inline void SetUnknown0x0c(undefined p_unk0x0c) { m_unk0x0c = p_unk0x0c; }
|
inline void SetVisibility(unsigned char p_visible) { m_visible = p_visible; }
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100a5d60
|
// SYNTHETIC: LEGO1 0x100a5d60
|
||||||
// ROI::`scalar deleting destructor'
|
// ROI::`scalar deleting destructor'
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
CompoundObject* comp; // 0x04
|
CompoundObject* comp; // 0x04
|
||||||
LODListBase* lods; // 0x08
|
LODListBase* lods; // 0x08
|
||||||
undefined m_unk0x0c; // 0x0c
|
unsigned char m_visible; // 0x0c
|
||||||
};
|
};
|
||||||
|
|
||||||
// TEMPLATE: LEGO1 0x10084930
|
// TEMPLATE: LEGO1 0x10084930
|
||||||
|
|
|
@ -185,7 +185,7 @@ void ViewManager::FUN_100a66a0(ViewROI* p_roi)
|
||||||
// FUNCTION: LEGO1 0x100a66f0
|
// FUNCTION: LEGO1 0x100a66f0
|
||||||
inline void ViewManager::FUN_100a66f0(ViewROI* p_roi, int p_und)
|
inline void ViewManager::FUN_100a66f0(ViewROI* p_roi, int p_und)
|
||||||
{
|
{
|
||||||
if (p_roi->GetUnknown0x0c() == FALSE && p_und != -2) {
|
if (!p_roi->GetVisibility() && p_und != -2) {
|
||||||
FUN_100a66f0(p_roi, -2);
|
FUN_100a66f0(p_roi, -2);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
Loading…
Reference in a new issue