mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-26 01:44:19 +00:00
Implement LegoWorld::Enable (#516)
* WIP VTable0x68 * Improve match * Match * Fix * Fix * Move vars * Match * Add call to Isle * Rename functions * Fix style
This commit is contained in:
committed by
GitHub
parent
a7acf8c607
commit
558bda4dd2
@@ -35,7 +35,7 @@ void LegoAct2::ReadyWorld()
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10050cf0
|
||||
void LegoAct2::VTable0x68(MxBool p_add)
|
||||
void LegoAct2::Enable(MxBool p_enable)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ void Act3::FUN_10073430()
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10073a90
|
||||
void Act3::VTable0x68(MxBool p_add)
|
||||
void Act3::Enable(MxBool p_enable)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ Helicopter::~Helicopter()
|
||||
MxResult Helicopter::Create(MxDSAction& p_dsAction)
|
||||
{
|
||||
MxResult result = IslePathActor::Create(p_dsAction);
|
||||
LegoWorld* world = GetCurrentWorld();
|
||||
LegoWorld* world = CurrentWorld();
|
||||
SetWorld(world);
|
||||
if (world->IsA("Act3")) {
|
||||
((Act3*) GetWorld())->SetUnkown420c(this);
|
||||
@@ -65,9 +65,9 @@ void Helicopter::VTable0xe4()
|
||||
IslePathActor::VTable0xe4();
|
||||
if (!GameState()->GetUnknown10()) {
|
||||
GameState()->SetCurrentArea(0x3c);
|
||||
if (GetCurrentVehicle()) {
|
||||
if (GetCurrentVehicle()->IsA("IslePathActor")) {
|
||||
((IslePathActor*) GetCurrentVehicle())->VTable0xe8(0x37, TRUE, 7);
|
||||
if (CurrentVehicle()) {
|
||||
if (CurrentVehicle()->IsA("IslePathActor")) {
|
||||
((IslePathActor*) CurrentVehicle())->VTable0xe8(0x37, TRUE, 7);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -93,12 +93,12 @@ MxU32 Helicopter::VTable0xcc()
|
||||
return 1;
|
||||
}
|
||||
if (!m_world) {
|
||||
m_world = GetCurrentWorld();
|
||||
m_world = CurrentWorld();
|
||||
}
|
||||
AnimationManager()->FUN_1005f6d0(FALSE);
|
||||
if (GetCurrentVehicle()) {
|
||||
if (GetCurrentVehicle()->VTable0x60() != GameState()->GetUnknownC()) {
|
||||
GetCurrentVehicle()->VTable0xe4();
|
||||
if (CurrentVehicle()) {
|
||||
if (CurrentVehicle()->VTable0x60() != GameState()->GetUnknownC()) {
|
||||
CurrentVehicle()->VTable0xe4();
|
||||
}
|
||||
}
|
||||
switch (GameState()->GetUnknown10()) {
|
||||
@@ -106,7 +106,7 @@ MxU32 Helicopter::VTable0xcc()
|
||||
m_script = *g_isleScript;
|
||||
AnimationManager()->FUN_10064670(FALSE);
|
||||
VTable0xe8(0x29, TRUE, 7);
|
||||
((Isle*) GetCurrentWorld())->SetUnknown13c(0x3c);
|
||||
((Isle*) CurrentWorld())->SetUnknown13c(0x3c);
|
||||
FUN_10015820(TRUE, 0);
|
||||
TransitionManager()->StartTransition(MxTransitionManager::e_pixelation, 50, FALSE, TRUE);
|
||||
SetUnknownDC(4);
|
||||
@@ -146,7 +146,7 @@ MxU32 Helicopter::VTable0xd4(LegoControlManagerEvent& p_param)
|
||||
switch (p_param.GetClickedObjectId()) {
|
||||
case 0x17:
|
||||
if (*g_act3Script == script) {
|
||||
((Act3*) GetCurrentWorld())->SetUnkown4270(2);
|
||||
((Act3*) CurrentWorld())->SetUnkown4270(2);
|
||||
TransitionManager()->StartTransition(MxTransitionManager::e_pixelation, 50, FALSE, FALSE);
|
||||
}
|
||||
else if (m_state->GetUnkown8() != 0) {
|
||||
@@ -218,7 +218,7 @@ MxU32 Helicopter::VTable0xd4(LegoControlManagerEvent& p_param)
|
||||
break;
|
||||
case 0x1c:
|
||||
if (GameState()->GetUnknown10() == 0) {
|
||||
((Isle*) GetCurrentWorld())->SetUnknown13c(2);
|
||||
((Isle*) CurrentWorld())->SetUnknown13c(2);
|
||||
TransitionManager()->StartTransition(MxTransitionManager::e_pixelation, 50, FALSE, FALSE);
|
||||
VTable0xe4();
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ void LegoCarBuild::ReadyWorld()
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x100256c0
|
||||
void LegoCarBuild::VTable0x68(MxBool p_add)
|
||||
void LegoCarBuild::Enable(MxBool p_enable)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
@@ -113,6 +113,12 @@ void LegoGameState::FUN_10039780(MxU8)
|
||||
// TODO
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10039940
|
||||
void LegoGameState::FUN_10039940()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10039980
|
||||
MxResult LegoGameState::Save(MxULong p_slot)
|
||||
{
|
||||
|
||||
@@ -7,7 +7,7 @@ DECOMP_SIZE_ASSERT(LegoState::Shuffle, 0x0c)
|
||||
MxU32 LegoState::Shuffle::FUN_10014d00()
|
||||
{
|
||||
// TODO
|
||||
return 0;
|
||||
return m_objectIds[0];
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10014de0
|
||||
|
||||
@@ -118,7 +118,7 @@ MxBool CheckIfEntityExists(MxBool p_enable, const char* p_filename, MxS32 p_enti
|
||||
LegoWorld* world = FindWorld(MxAtomId(p_filename, e_lowerCase2), p_entityId);
|
||||
|
||||
if (world) {
|
||||
world->VTable0x68(p_enable);
|
||||
world->Enable(p_enable);
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// FUNCTION: LEGO1 0x10076c30
|
||||
void LegoActorPresenter::ReadyTickle()
|
||||
{
|
||||
if (GetCurrentWorld()) {
|
||||
if (CurrentWorld()) {
|
||||
m_entity = (LegoEntity*) CreateEntity("LegoActor");
|
||||
if (m_entity) {
|
||||
SetEntityLocation(m_action->GetLocation(), m_action->GetDirection(), m_action->GetUp());
|
||||
|
||||
@@ -55,7 +55,7 @@ void LegoEntity::Destroy(MxBool p_fromDestructor)
|
||||
m_roi->SetUnknown0x104(NULL);
|
||||
}
|
||||
|
||||
GetUnkSaveDataWriter()->FUN_10083db0(m_roi);
|
||||
UnkSaveDataWriter()->FUN_10083db0(m_roi);
|
||||
}
|
||||
else {
|
||||
VideoManager()->Get3DManager()->GetLego3DView()->Remove(*m_roi);
|
||||
@@ -70,7 +70,7 @@ void LegoEntity::Destroy(MxBool p_fromDestructor)
|
||||
// FUNCTION: LEGO1 0x10010880
|
||||
void LegoEntity::SetWorld()
|
||||
{
|
||||
LegoWorld* world = GetCurrentWorld();
|
||||
LegoWorld* world = CurrentWorld();
|
||||
if (world != NULL && world != (LegoWorld*) this) {
|
||||
world->Add(this);
|
||||
}
|
||||
@@ -91,7 +91,7 @@ void LegoEntity::SetLocation(Mx3DPointFloat& p_location, Mx3DPointFloat& p_direc
|
||||
// FUNCTION: LEGO1 0x10010c30
|
||||
void LegoEntity::FUN_10010c30()
|
||||
{
|
||||
LegoWorld* world = GetCurrentWorld();
|
||||
LegoWorld* world = CurrentWorld();
|
||||
|
||||
if (m_cameraFlag && world && world->GetCamera() && m_roi) {
|
||||
world->GetCamera()->FUN_100123e0(m_roi->GetLocal2World(), 1);
|
||||
|
||||
@@ -62,7 +62,7 @@ MxResult LegoEntityPresenter::StartAction(MxStreamController* p_controller, MxDS
|
||||
// FUNCTION: LEGO1 0x100536c0
|
||||
void LegoEntityPresenter::ReadyTickle()
|
||||
{
|
||||
if (GetCurrentWorld()) {
|
||||
if (CurrentWorld()) {
|
||||
m_entity = (LegoEntity*) MxPresenter::CreateEntity("LegoEntity");
|
||||
if (m_entity) {
|
||||
m_entity->Create(*m_action);
|
||||
|
||||
@@ -82,7 +82,7 @@ MxLong LegoRace::Notify(MxParam& p_param)
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10015ed0
|
||||
void LegoRace::VTable0x68(MxBool p_add)
|
||||
void LegoRace::Enable(MxBool p_enable)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
#include "legoworld.h"
|
||||
|
||||
#include "legoanimationmanager.h"
|
||||
#include "legoanimpresenter.h"
|
||||
#include "legobuildingmanager.h"
|
||||
#include "legocontrolmanager.h"
|
||||
#include "legogamestate.h"
|
||||
#include "legoinputmanager.h"
|
||||
#include "legolocomotionanimpresenter.h"
|
||||
#include "legonavcontroller.h"
|
||||
#include "legoomni.h"
|
||||
#include "legoplantmanager.h"
|
||||
#include "legosoundmanager.h"
|
||||
@@ -80,8 +83,8 @@ MxResult LegoWorld::Create(MxDSAction& p_dsAction)
|
||||
}
|
||||
|
||||
if (p_dsAction.GetFlags() & MxDSAction::c_enabled) {
|
||||
if (GetCurrentWorld()) {
|
||||
GetCurrentWorld()->VTable0x68(0);
|
||||
if (CurrentWorld()) {
|
||||
CurrentWorld()->Enable(0);
|
||||
}
|
||||
|
||||
SetCurrentWorld(this);
|
||||
@@ -99,7 +102,7 @@ void LegoWorld::Destroy(MxBool p_fromDestructor)
|
||||
{
|
||||
m_destroyed = TRUE;
|
||||
|
||||
if (GetCurrentWorld() == this) {
|
||||
if (CurrentWorld() == this) {
|
||||
ControlManager()->FUN_10028df0(NULL);
|
||||
SetCurrentWorld(NULL);
|
||||
}
|
||||
@@ -513,10 +516,119 @@ MxCore* LegoWorld::Find(const MxAtomId& p_atom, MxS32 p_entityId)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10021a70
|
||||
void LegoWorld::VTable0x68(MxBool p_add)
|
||||
// FUNCTION: LEGO1 0x10021a70
|
||||
void LegoWorld::Enable(MxBool p_enable)
|
||||
{
|
||||
// TODO
|
||||
if (p_enable && !m_set0xd0.empty()) {
|
||||
if (CurrentWorld() != this) {
|
||||
if (CurrentWorld()) {
|
||||
AnimationManager()->FUN_10061010(0);
|
||||
CurrentWorld()->Enable(FALSE);
|
||||
|
||||
LegoEntityListCursor cursor(m_entityList);
|
||||
LegoEntity* entity;
|
||||
|
||||
while (cursor.Next(entity)) {
|
||||
if (entity->GetROI()) {
|
||||
entity->GetROI()->SetUnknown0x104(entity);
|
||||
GetViewManager()->AddToUnknown0x08(entity->GetROI());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
while (!m_set0xd0.empty()) {
|
||||
MxCoreSet::iterator it = m_set0xd0.begin();
|
||||
|
||||
if ((*it)->IsA("MxPresenter")) {
|
||||
((MxPresenter*) *it)->Enable(TRUE);
|
||||
}
|
||||
else if ((*it)->IsA("LegoPathController")) {
|
||||
((LegoPathController*) *it)->Enable(TRUE);
|
||||
}
|
||||
|
||||
m_set0xd0.erase(it);
|
||||
}
|
||||
|
||||
SetCurrentWorld(this);
|
||||
ControlManager()->FUN_10028df0(&m_controlPresenters);
|
||||
InputManager()->SetCamera(m_cameraController);
|
||||
|
||||
if (m_cameraController) {
|
||||
InputManager()->Register(m_cameraController->GetNavController());
|
||||
Lego()->SetNavController(m_cameraController->GetNavController());
|
||||
}
|
||||
|
||||
if (m_unk0xec != -1) {
|
||||
PlantManager()->FUN_10026360(m_unk0xec);
|
||||
AnimationManager()->FUN_1005f720(m_unk0xec);
|
||||
BuildingManager()->FUN_1002fa00();
|
||||
AnimationManager()->FUN_1005f0b0();
|
||||
}
|
||||
|
||||
GameState()->FUN_10039940();
|
||||
SetIsWorldActive(TRUE);
|
||||
}
|
||||
}
|
||||
else if (!p_enable && m_set0xd0.empty()) {
|
||||
MxPresenter* presenter;
|
||||
LegoPathController* controller;
|
||||
IslePathActor* vehicle = CurrentVehicle();
|
||||
|
||||
if (vehicle) {
|
||||
FUN_1001fc80(vehicle);
|
||||
}
|
||||
|
||||
AnimationManager()->FUN_1005ee80(FALSE);
|
||||
m_set0xd0.insert(this);
|
||||
|
||||
if (m_unk0xec != -1) {
|
||||
PlantManager()->FUN_100263a0(m_unk0xec);
|
||||
BuildingManager()->FUN_1002fb30();
|
||||
}
|
||||
|
||||
MxPresenterListCursor controlPresenterCursor(&m_controlPresenters);
|
||||
|
||||
while (controlPresenterCursor.Next(presenter)) {
|
||||
if (presenter->IsEnabled()) {
|
||||
m_set0xd0.insert(presenter);
|
||||
presenter->Enable(FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
for (MxCoreSet::iterator it = m_set0xa8.begin(); it != m_set0xa8.end(); it++) {
|
||||
if ((*it)->IsA("LegoActionControlPresenter") ||
|
||||
((*it)->IsA("MxPresenter") && ((MxPresenter*) *it)->IsEnabled())) {
|
||||
m_set0xd0.insert(*it);
|
||||
((MxPresenter*) *it)->Enable(FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
if (CurrentWorld() && CurrentWorld() == this) {
|
||||
ControlManager()->FUN_10028df0(NULL);
|
||||
Lego()->SetCurrentWorld(NULL);
|
||||
}
|
||||
|
||||
if (InputManager()->GetCamera() == m_cameraController) {
|
||||
InputManager()->ClearCamera();
|
||||
}
|
||||
|
||||
if (m_cameraController) {
|
||||
InputManager()->UnRegister(m_cameraController->GetNavController());
|
||||
|
||||
if (NavController() == m_cameraController->GetNavController()) {
|
||||
Lego()->SetNavController(NULL);
|
||||
}
|
||||
}
|
||||
|
||||
LegoPathControllerListCursor pathControllerCursor(&m_list0x68);
|
||||
|
||||
while (pathControllerCursor.Next(controller)) {
|
||||
controller->Enable(FALSE);
|
||||
m_set0xd0.insert(controller);
|
||||
}
|
||||
|
||||
GetViewManager()->RemoveAll(NULL);
|
||||
}
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10022080
|
||||
|
||||
@@ -54,7 +54,7 @@ void GasStation::ReadyWorld()
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10005c40
|
||||
void GasStation::VTable0x68(MxBool p_add)
|
||||
void GasStation::Enable(MxBool p_enable)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ void Hospital::ReadyWorld()
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10076220
|
||||
void Hospital::VTable0x68(MxBool p_add)
|
||||
void Hospital::Enable(MxBool p_enable)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
@@ -116,11 +116,11 @@ MxLong ElevatorBottom::HandleClick(LegoControlManagerEvent& p_param)
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100182c0
|
||||
void ElevatorBottom::VTable0x68(MxBool p_add)
|
||||
void ElevatorBottom::Enable(MxBool p_enable)
|
||||
{
|
||||
LegoWorld::VTable0x68(p_add);
|
||||
LegoWorld::Enable(p_enable);
|
||||
|
||||
if (p_add) {
|
||||
if (p_enable) {
|
||||
InputManager()->SetWorld(this);
|
||||
SetIsWorldActive(FALSE);
|
||||
}
|
||||
|
||||
@@ -709,11 +709,11 @@ MxLong Infocenter::HandleNotification0(MxNotificationParam& p_param)
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10070aa0
|
||||
void Infocenter::VTable0x68(MxBool p_add)
|
||||
void Infocenter::Enable(MxBool p_enable)
|
||||
{
|
||||
LegoWorld::VTable0x68(p_add);
|
||||
LegoWorld::Enable(p_enable);
|
||||
|
||||
if (p_add) {
|
||||
if (p_enable) {
|
||||
InputManager()->SetWorld(this);
|
||||
SetIsWorldActive(FALSE);
|
||||
}
|
||||
|
||||
@@ -140,11 +140,11 @@ MxLong InfocenterDoor::HandleClick(LegoControlManagerEvent& p_param)
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10037c80
|
||||
void InfocenterDoor::VTable0x68(MxBool p_add)
|
||||
void InfocenterDoor::Enable(MxBool p_enable)
|
||||
{
|
||||
LegoWorld::VTable0x68(p_add);
|
||||
LegoWorld::Enable(p_enable);
|
||||
|
||||
if (p_add) {
|
||||
if (p_enable) {
|
||||
InputManager()->SetWorld(this);
|
||||
SetIsWorldActive(FALSE);
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ MxResult RegistrationBook::Tickle()
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10078180
|
||||
void RegistrationBook::VTable0x68(MxBool p_add)
|
||||
void RegistrationBook::Enable(MxBool p_enable)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
@@ -217,11 +217,11 @@ MxLong Score::FUN_100016d0(LegoControlManagerEvent& p_param)
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10001980
|
||||
void Score::VTable0x68(MxBool p_add)
|
||||
void Score::Enable(MxBool p_enable)
|
||||
{
|
||||
LegoWorld::VTable0x68(p_add);
|
||||
LegoWorld::Enable(p_enable);
|
||||
|
||||
if (p_add) {
|
||||
if (p_enable) {
|
||||
InputManager()->SetWorld(this);
|
||||
SetIsWorldActive(FALSE);
|
||||
}
|
||||
|
||||
@@ -46,8 +46,8 @@ Isle::~Isle()
|
||||
InputManager()->ClearWorld();
|
||||
}
|
||||
|
||||
if (GetCurrentVehicle() != NULL) {
|
||||
VTable0x6c(GetCurrentVehicle());
|
||||
if (CurrentVehicle() != NULL) {
|
||||
VTable0x6c(CurrentVehicle());
|
||||
}
|
||||
|
||||
NotificationManager()->Unregister(this);
|
||||
@@ -121,7 +121,7 @@ MxLong Isle::Notify(MxParam& p_param)
|
||||
case c_notificationType18:
|
||||
switch (m_act1state->GetUnknown18()) {
|
||||
case 4:
|
||||
result = GetCurrentVehicle()->Notify(p_param);
|
||||
result = CurrentVehicle()->Notify(p_param);
|
||||
break;
|
||||
case 8:
|
||||
result = m_towtrack->Notify(p_param);
|
||||
@@ -135,7 +135,7 @@ MxLong Isle::Notify(MxParam& p_param)
|
||||
result = HandleType19Notification(p_param);
|
||||
break;
|
||||
case c_notificationType20:
|
||||
VTable0x68(TRUE);
|
||||
Enable(TRUE);
|
||||
break;
|
||||
case c_notificationTransitioned:
|
||||
result = HandleTransitionEnd();
|
||||
@@ -183,9 +183,23 @@ MxLong Isle::HandleType19Notification(MxParam& p_param)
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10031820
|
||||
void Isle::VTable0x68(MxBool p_add)
|
||||
void Isle::Enable(MxBool p_enable)
|
||||
{
|
||||
// TODO
|
||||
if (m_set0xd0.empty() == p_enable) {
|
||||
return;
|
||||
}
|
||||
|
||||
LegoWorld::Enable(p_enable);
|
||||
m_radio.Initialize(p_enable);
|
||||
|
||||
if (p_enable) {
|
||||
// TODO
|
||||
}
|
||||
else {
|
||||
if (InputManager()->GetWorld() == this) {
|
||||
InputManager()->ClearWorld();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10032620
|
||||
|
||||
@@ -41,7 +41,7 @@ void JukeBox::ReadyWorld()
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1005dde0
|
||||
void JukeBox::VTable0x68(MxBool p_add)
|
||||
void JukeBox::Enable(MxBool p_enable)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ MxLong Radio::Notify(MxParam& p_param)
|
||||
void Radio::Play()
|
||||
{
|
||||
if (!m_state->IsActive()) {
|
||||
GetCurrentWorld();
|
||||
CurrentWorld();
|
||||
|
||||
MxDSAction action;
|
||||
action.SetObjectId(m_state->FUN_1002d090());
|
||||
@@ -75,7 +75,7 @@ void Radio::Play()
|
||||
void Radio::Stop()
|
||||
{
|
||||
if (m_state->IsActive()) {
|
||||
LegoWorld* world = GetCurrentWorld();
|
||||
LegoWorld* world = CurrentWorld();
|
||||
|
||||
MxControlPresenter* presenter = (MxControlPresenter*) world->Find(world->GetAtom(), 18);
|
||||
|
||||
@@ -103,12 +103,12 @@ MxLong Radio::HandleClick(LegoControlManagerEvent& p_param)
|
||||
Play();
|
||||
}
|
||||
|
||||
if (GetCurrentWorld()) {
|
||||
if (CurrentWorld()) {
|
||||
#ifdef COMPAT_MODE
|
||||
MxNotificationParam param(c_notificationEndAction, this);
|
||||
GetCurrentWorld()->Notify(param);
|
||||
CurrentWorld()->Notify(param);
|
||||
#else
|
||||
GetCurrentWorld()->Notify(MxNotificationParam(c_notificationType0, this));
|
||||
CurrentWorld()->Notify(MxNotificationParam(c_notificationType0, this));
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "mxstreamer.h"
|
||||
#include "mxticklemanager.h"
|
||||
#include "mxtransitionmanager.h"
|
||||
#include "viewmanager/viewmanager.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(LegoWorldList, 0x18);
|
||||
DECOMP_SIZE_ASSERT(LegoWorldListCursor, 0x10);
|
||||
@@ -172,23 +173,29 @@ LegoNavController* NavController()
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10015790
|
||||
IslePathActor* GetCurrentVehicle()
|
||||
IslePathActor* CurrentVehicle()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetCurrentVehicle();
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100157a0
|
||||
LegoWorld* GetCurrentWorld()
|
||||
LegoWorld* CurrentWorld()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetCurrentWorld();
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100157b0
|
||||
LegoUnkSaveDataWriter* GetUnkSaveDataWriter()
|
||||
LegoUnkSaveDataWriter* UnkSaveDataWriter()
|
||||
{
|
||||
return LegoOmni::GetInstance()->GetUnkSaveDataWriter();
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100157c0
|
||||
ViewManager* GetViewManager()
|
||||
{
|
||||
return VideoManager()->Get3DManager()->GetLego3DView()->GetViewManager();
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100157e0
|
||||
LegoPlantManager* PlantManager()
|
||||
{
|
||||
@@ -234,7 +241,7 @@ MxDSAction& GetCurrentAction()
|
||||
// FUNCTION: LEGO1 0x100158f0
|
||||
void SetCurrentWorld(LegoWorld* p_world)
|
||||
{
|
||||
LegoOmni::GetInstance()->SetWorld(p_world);
|
||||
LegoOmni::GetInstance()->SetCurrentWorld(p_world);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10015900
|
||||
@@ -740,11 +747,11 @@ MxBool LegoOmni::DoesEntityExist(MxDSAction& p_dsAction)
|
||||
// FUNCTION: LEGO1 0x1005b400
|
||||
MxS32 LegoOmni::GetCurrPathInfo(LegoPathBoundary** p_path, MxS32& p_value)
|
||||
{
|
||||
if (::GetCurrentWorld() == NULL) {
|
||||
if (::CurrentWorld() == NULL) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return ::GetCurrentWorld()->GetCurrPathInfo(p_path, p_value);
|
||||
return ::CurrentWorld()->GetCurrPathInfo(p_path, p_value);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1005b4f0
|
||||
|
||||
@@ -24,3 +24,9 @@ MxResult LegoPathController::Tickle()
|
||||
// TODO
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10046be0
|
||||
void LegoPathController::Enable(MxBool p_enable)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ void Police::ReadyWorld()
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1005e740
|
||||
void Police::VTable0x68(MxBool p_add)
|
||||
void Police::Enable(MxBool p_enable)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
@@ -21,9 +21,22 @@ LegoAnimationManager::~LegoAnimationManager()
|
||||
// TODO
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1005ee80
|
||||
void LegoAnimationManager::FUN_1005ee80(MxBool)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1005ef10
|
||||
void LegoAnimationManager::FUN_1005ef10()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1005f0b0
|
||||
void LegoAnimationManager::FUN_1005f0b0()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1005f130
|
||||
@@ -44,6 +57,12 @@ void LegoAnimationManager::FUN_1005f720(undefined4)
|
||||
// TODO
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10061010
|
||||
void LegoAnimationManager::FUN_10061010(undefined4)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x100619f0
|
||||
MxLong LegoAnimationManager::Notify(MxParam& p_param)
|
||||
{
|
||||
|
||||
@@ -102,7 +102,7 @@ void LegoAnimPresenter::PutFrame()
|
||||
// FUNCTION: LEGO1 0x1006b550
|
||||
void LegoAnimPresenter::ReadyTickle()
|
||||
{
|
||||
m_currentWorld = GetCurrentWorld();
|
||||
m_currentWorld = CurrentWorld();
|
||||
|
||||
if (m_currentWorld) {
|
||||
MxStreamChunk* chunk = m_subscriber->CurrentChunk();
|
||||
|
||||
@@ -137,7 +137,7 @@ void MxTransitionManager::EndTransition(MxBool p_notifyWorld)
|
||||
TickleManager()->UnregisterClient(this);
|
||||
|
||||
if (p_notifyWorld) {
|
||||
LegoWorld* world = GetCurrentWorld();
|
||||
LegoWorld* world = CurrentWorld();
|
||||
|
||||
if (world) {
|
||||
#ifdef COMPAT_MODE
|
||||
|
||||
Reference in New Issue
Block a user