mirror of
https://github.com/isledecomp/isle.git
synced 2025-03-23 21:20:11 -04:00
Implement/match LegoAnimationManager::FUN_10062e20 (#967)
This commit is contained in:
parent
2f1aa58153
commit
b978787f8f
11 changed files with 197 additions and 47 deletions
LEGO1/lego/legoomni
|
@ -28,7 +28,7 @@ public:
|
|||
// SIZE 0x18
|
||||
struct Character {
|
||||
char* m_name; // 0x00
|
||||
MxBool m_unk0x04; // 0x04
|
||||
MxBool m_inExtras; // 0x04
|
||||
MxS8 m_vehicleId; // 0x05
|
||||
undefined m_unk0x06; // 0x06 (unused?)
|
||||
MxBool m_unk0x07; // 0x07
|
||||
|
|
|
@ -81,7 +81,7 @@ public:
|
|||
virtual MxResult Create(MxU8* p_data, const Vector3& p_location, const MxAtomId& p_trigger); // vtable+0x14
|
||||
virtual void Destroy(); // vtable+0x18
|
||||
|
||||
MxResult FUN_10045c20(
|
||||
MxResult PlaceActor(
|
||||
LegoPathActor* p_actor,
|
||||
const char* p_name,
|
||||
MxS32 p_src,
|
||||
|
@ -89,13 +89,13 @@ public:
|
|||
MxS32 p_dest,
|
||||
float p_destScale
|
||||
);
|
||||
MxResult FUN_10046050(
|
||||
MxResult PlaceActor(
|
||||
LegoPathActor* p_actor,
|
||||
LegoAnimPresenter* p_presenter,
|
||||
Vector3& p_position,
|
||||
Vector3& p_direction
|
||||
);
|
||||
MxResult AddActor(LegoPathActor* p_actor);
|
||||
MxResult PlaceActor(LegoPathActor* p_actor);
|
||||
MxResult RemoveActor(LegoPathActor* p_actor);
|
||||
void FUN_100468f0(LegoAnimPresenter* p_presenter);
|
||||
void FUN_10046930(LegoAnimPresenter* p_presenter);
|
||||
|
|
|
@ -72,14 +72,14 @@ public:
|
|||
MxS32 p_dest,
|
||||
float p_destScale
|
||||
);
|
||||
MxResult AddPathActor(LegoPathActor* p_actor);
|
||||
MxResult FUN_1001fb70(
|
||||
MxResult PlaceActor(LegoPathActor* p_actor);
|
||||
MxResult PlaceActor(
|
||||
LegoPathActor* p_actor,
|
||||
LegoAnimPresenter* p_presenter,
|
||||
Vector3& p_position,
|
||||
Vector3& p_direction
|
||||
);
|
||||
void RemovePathActor(LegoPathActor* p_actor);
|
||||
void RemoveActor(LegoPathActor* p_actor);
|
||||
void FUN_1001fda0(LegoAnimPresenter* p_presenter);
|
||||
void FUN_1001fe90(LegoAnimPresenter* p_presenter);
|
||||
LegoPathBoundary* FindPathBoundary(const char* p_name);
|
||||
|
|
|
@ -192,7 +192,7 @@ MxU32 Helicopter::VTable0xd4(LegoControlManagerEvent& p_param)
|
|||
if (m_state->GetUnkown8() == 0) {
|
||||
state->SetUnknown18(4);
|
||||
m_state->SetUnknown8(1);
|
||||
m_world->RemovePathActor(this);
|
||||
m_world->RemoveActor(this);
|
||||
InvokeAction(Extra::ActionType::e_start, script, IsleScript::c_HelicopterTakeOff_Anim, NULL);
|
||||
SetState(0);
|
||||
}
|
||||
|
@ -205,7 +205,7 @@ MxU32 Helicopter::VTable0xd4(LegoControlManagerEvent& p_param)
|
|||
}
|
||||
if (m_state->GetUnkown8() == 2) {
|
||||
m_state->SetUnknown8(3);
|
||||
m_world->RemovePathActor(this);
|
||||
m_world->RemoveActor(this);
|
||||
InvokeAction(Extra::ActionType::e_start, script, IsleScript::c_HelicopterLand_Anim, NULL);
|
||||
SetState(4);
|
||||
}
|
||||
|
|
|
@ -471,7 +471,7 @@ void IslePathActor::SpawnPlayer(LegoGameState::Area p_area, MxBool p_und, MxU8 p
|
|||
assert(world);
|
||||
|
||||
if (m_world != NULL) {
|
||||
m_world->RemovePathActor(this);
|
||||
m_world->RemoveActor(this);
|
||||
m_world->Remove(this);
|
||||
VideoManager()->Get3DManager()->Remove(*m_roi);
|
||||
}
|
||||
|
@ -556,7 +556,7 @@ void IslePathActor::SpawnPlayer(LegoGameState::Area p_area, MxBool p_und, MxU8 p
|
|||
void IslePathActor::VTable0xec(MxMatrix p_transform, LegoPathBoundary* p_boundary, MxBool p_reset)
|
||||
{
|
||||
if (m_world) {
|
||||
m_world->RemovePathActor(this);
|
||||
m_world->RemoveActor(this);
|
||||
m_world->Remove(this);
|
||||
VideoManager()->Get3DManager()->GetLego3DView()->Remove(*m_roi);
|
||||
}
|
||||
|
@ -566,7 +566,7 @@ void IslePathActor::VTable0xec(MxMatrix p_transform, LegoPathBoundary* p_boundar
|
|||
VTable0xe0();
|
||||
}
|
||||
|
||||
m_world->AddPathActor(this);
|
||||
m_world->PlaceActor(this);
|
||||
p_boundary->AddActor(this);
|
||||
if (m_actorId != GameState()->GetActorId()) {
|
||||
m_world->Add(this);
|
||||
|
|
|
@ -347,7 +347,7 @@ LegoAnimationManager::~LegoAnimationManager()
|
|||
LegoPathActor* actor = CharacterManager()->GetActor(roi->GetName());
|
||||
|
||||
if (actor != NULL && actor->GetController() != NULL && CurrentWorld() != NULL) {
|
||||
CurrentWorld()->RemovePathActor(actor);
|
||||
CurrentWorld()->RemoveActor(actor);
|
||||
actor->SetController(NULL);
|
||||
}
|
||||
|
||||
|
@ -467,7 +467,7 @@ void LegoAnimationManager::Suspend()
|
|||
m_unk0x401 = FALSE;
|
||||
|
||||
for (i = 0; i < (MxS32) sizeOfArray(g_characters); i++) {
|
||||
g_characters[i].m_unk0x04 = FALSE;
|
||||
g_characters[i].m_inExtras = FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -531,7 +531,7 @@ void LegoAnimationManager::Init()
|
|||
|
||||
for (i = 0; i < (MxS32) sizeOfArray(g_characters); i++) {
|
||||
g_characters[i].m_active = FALSE;
|
||||
g_characters[i].m_unk0x04 = FALSE;
|
||||
g_characters[i].m_inExtras = FALSE;
|
||||
}
|
||||
|
||||
for (i = 0; i < (MxS32) sizeOfArray(g_vehicles); i++) {
|
||||
|
@ -1468,7 +1468,7 @@ MxResult LegoAnimationManager::Tickle()
|
|||
}
|
||||
|
||||
m_extras[i].m_roi = NULL;
|
||||
g_characters[m_extras[i].m_characterId].m_unk0x04 = FALSE;
|
||||
g_characters[m_extras[i].m_characterId].m_inExtras = FALSE;
|
||||
g_characters[m_extras[i].m_characterId].m_unk0x07 = FALSE;
|
||||
m_extras[i].m_characterId = -1;
|
||||
m_extras[i].m_unk0x0d = FALSE;
|
||||
|
@ -1837,7 +1837,7 @@ void LegoAnimationManager::PurgeExtra(MxBool p_und)
|
|||
}
|
||||
|
||||
m_extras[i].m_roi = NULL;
|
||||
g_characters[m_extras[i].m_characterId].m_unk0x04 = FALSE;
|
||||
g_characters[m_extras[i].m_characterId].m_inExtras = FALSE;
|
||||
g_characters[m_extras[i].m_characterId].m_unk0x07 = FALSE;
|
||||
m_extras[i].m_characterId = -1;
|
||||
}
|
||||
|
@ -1928,7 +1928,7 @@ void LegoAnimationManager::AddExtra(MxS32 p_location, MxBool p_und)
|
|||
tryNextCharacter:
|
||||
if (g_characters[m_lastExtraCharacterId].m_unk0x09 &&
|
||||
g_characters[m_lastExtraCharacterId].m_unk0x08 &&
|
||||
!g_characters[m_lastExtraCharacterId].m_unk0x04 &&
|
||||
!g_characters[m_lastExtraCharacterId].m_inExtras &&
|
||||
g_characters[m_lastExtraCharacterId].m_active == active) {
|
||||
if (!CharacterManager()->FUN_10083b20(g_characters[m_lastExtraCharacterId].m_name
|
||||
)) {
|
||||
|
@ -1994,7 +1994,7 @@ void LegoAnimationManager::AddExtra(MxS32 p_location, MxBool p_und)
|
|||
actor->SetWorldSpeed(speed);
|
||||
|
||||
m_extras[i].m_characterId = m_lastExtraCharacterId;
|
||||
g_characters[m_lastExtraCharacterId].m_unk0x04 = TRUE;
|
||||
g_characters[m_lastExtraCharacterId].m_inExtras = TRUE;
|
||||
m_extras[i].m_unk0x08 = Timer()->GetTime();
|
||||
m_extras[i].m_speed = -1;
|
||||
m_extras[i].m_unk0x0d = FALSE;
|
||||
|
@ -2029,10 +2029,160 @@ void LegoAnimationManager::AddExtra(MxS32 p_location, MxBool p_und)
|
|||
}
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10062e20
|
||||
// FUNCTION: LEGO1 0x10062e20
|
||||
// FUNCTION: BETA10 0x100444cb
|
||||
MxBool LegoAnimationManager::FUN_10062e20(LegoROI* p_roi, LegoAnimPresenter* p_presenter)
|
||||
{
|
||||
LegoWorld* world = CurrentWorld();
|
||||
|
||||
if (world == NULL || m_suspended || !m_unk0x400) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
MxBool inExtras = FALSE;
|
||||
const char* name = p_roi->GetName();
|
||||
|
||||
LegoExtraActor* actor = CharacterManager()->GetActor(name);
|
||||
if (actor != NULL) {
|
||||
MxS32 characterId = -1;
|
||||
MxS32 i;
|
||||
|
||||
for (i = 0; i < (MxS32) sizeOfArray(g_characters); i++) {
|
||||
if (!strcmpi(name, g_characters[i].m_name)) {
|
||||
characterId = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (characterId == -1) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!g_characters[characterId].m_inExtras) {
|
||||
for (i = 0; i < (MxS32) sizeOfArray(m_extras); i++) {
|
||||
if (m_extras[i].m_roi == NULL) {
|
||||
m_extras[i].m_roi = p_roi;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (i == (MxS32) sizeOfArray(m_extras)) {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else {
|
||||
inExtras = TRUE;
|
||||
|
||||
for (i = 0; i < (MxS32) sizeOfArray(m_extras); i++) {
|
||||
if (m_extras[i].m_roi == p_roi) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (i == (MxS32) sizeOfArray(m_extras)) {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
if (g_characters[characterId].m_unk0x07) {
|
||||
m_unk0x414--;
|
||||
|
||||
if (actor->GetBoundary() == NULL) {
|
||||
g_characters[characterId].m_unk0x07 = FALSE;
|
||||
|
||||
if (g_characters[characterId].m_unk0x0c < 0) {
|
||||
g_characters[characterId].m_unk0x0c = 0;
|
||||
}
|
||||
|
||||
if (g_characters[characterId].m_unk0x10 < 0) {
|
||||
g_characters[characterId].m_unk0x10 = 0;
|
||||
}
|
||||
|
||||
m_extras[i].m_roi = NULL;
|
||||
g_characters[characterId].m_unk0x07 = FALSE;
|
||||
g_characters[characterId].m_inExtras = FALSE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
CharacterManager()->FUN_10083db0(p_roi);
|
||||
}
|
||||
else {
|
||||
if (inExtras) {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
if (GameState()->GetCurrentAct() != LegoGameState::e_act1 && !strcmp(name, "brickstr")) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
MxBool local24 = inExtras && g_characters[characterId].m_unk0x07 &&
|
||||
(g_characters[characterId].m_unk0x0c < 0 || g_characters[characterId].m_unk0x10 < 0);
|
||||
|
||||
MxResult result = 1; // Not a valid MxResult value
|
||||
|
||||
if (!local24) {
|
||||
MxU8 unk0x0c;
|
||||
|
||||
switch (rand() % 3) {
|
||||
case 0:
|
||||
unk0x0c = 1;
|
||||
break;
|
||||
case 1:
|
||||
unk0x0c = 2;
|
||||
break;
|
||||
case 2:
|
||||
unk0x0c = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
actor->SetUnknown0x0c(unk0x0c);
|
||||
|
||||
Mx3DPointFloat position;
|
||||
Mx3DPointFloat direction;
|
||||
|
||||
position = p_roi->GetWorldPosition();
|
||||
direction = p_roi->GetWorldDirection();
|
||||
|
||||
((Vector3&) direction).Mul(-1.0f);
|
||||
m_extras[i].m_speed = -1.0f;
|
||||
|
||||
if (inExtras) {
|
||||
actor->ClearMaps();
|
||||
}
|
||||
|
||||
if (FUN_10063b90(world, actor, CharacterManager()->GetMood(p_roi), characterId)) {
|
||||
m_extras[i].m_unk0x14 = TRUE;
|
||||
}
|
||||
else {
|
||||
m_extras[i].m_unk0x14 = FALSE;
|
||||
}
|
||||
|
||||
result = world->PlaceActor(actor, p_presenter, position, direction);
|
||||
}
|
||||
|
||||
if (result != SUCCESS && g_characters[characterId].m_unk0x07) {
|
||||
result = world->PlaceActor(actor);
|
||||
}
|
||||
|
||||
g_characters[characterId].m_unk0x07 = FALSE;
|
||||
|
||||
if (result != SUCCESS) {
|
||||
m_extras[i].m_roi = NULL;
|
||||
g_characters[characterId].m_inExtras = FALSE;
|
||||
}
|
||||
else {
|
||||
m_extras[i].m_characterId = characterId;
|
||||
m_extras[i].m_unk0x08 = Timer()->GetTime();
|
||||
m_extras[i].m_unk0x0c = TRUE;
|
||||
m_extras[i].m_unk0x0d = FALSE;
|
||||
g_characters[characterId].m_inExtras = TRUE;
|
||||
actor->SetWorldSpeed(0.0f);
|
||||
m_unk0x414++;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -2091,7 +2241,7 @@ void LegoAnimationManager::FUN_10063270(LegoROIList* p_list, LegoAnimPresenter*
|
|||
}
|
||||
|
||||
m_extras[i].m_roi = NULL;
|
||||
g_characters[m_extras[i].m_characterId].m_unk0x04 = FALSE;
|
||||
g_characters[m_extras[i].m_characterId].m_inExtras = FALSE;
|
||||
g_characters[m_extras[i].m_characterId].m_unk0x07 = FALSE;
|
||||
m_extras[i].m_characterId = -1;
|
||||
m_extras[i].m_unk0x0d = FALSE;
|
||||
|
@ -2510,7 +2660,7 @@ MxResult LegoAnimationManager::FUN_10064380(
|
|||
|
||||
g_characters[characterId].m_unk0x0c = p_unk0x0c;
|
||||
g_characters[characterId].m_unk0x10 = p_unk0x10;
|
||||
g_characters[characterId].m_unk0x04 = TRUE;
|
||||
g_characters[characterId].m_inExtras = TRUE;
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
@ -433,7 +433,7 @@ MxBool LegoAnimMMPresenter::FUN_1004b6d0(MxLong p_time)
|
|||
undefined4 und = 1;
|
||||
|
||||
if (m_presenter != NULL) {
|
||||
m_unk0x64->RemovePathActor(actor);
|
||||
m_unk0x64->RemoveActor(actor);
|
||||
|
||||
if (m_tranInfo->m_unk0x29) {
|
||||
Mx3DPointFloat position, direction;
|
||||
|
@ -442,7 +442,7 @@ MxBool LegoAnimMMPresenter::FUN_1004b6d0(MxLong p_time)
|
|||
direction = viewROI->GetWorldDirection();
|
||||
position[1] -= 1.25;
|
||||
|
||||
und = m_unk0x64->FUN_1001fb70(actor, m_presenter, position, direction);
|
||||
und = m_unk0x64->PlaceActor(actor, m_presenter, position, direction);
|
||||
}
|
||||
else {
|
||||
und = 0;
|
||||
|
@ -452,7 +452,7 @@ MxBool LegoAnimMMPresenter::FUN_1004b6d0(MxLong p_time)
|
|||
if (und != 0) {
|
||||
viewROI->WrappedSetLocalTransform(m_tranInfo->m_unk0x2c);
|
||||
VideoManager()->Get3DManager()->Moved(*viewROI);
|
||||
m_unk0x64->AddPathActor(actor);
|
||||
m_unk0x64->PlaceActor(actor);
|
||||
}
|
||||
|
||||
if (m_tranInfo->m_unk0x29) {
|
||||
|
|
|
@ -1102,28 +1102,28 @@ void LegoGameState::Init()
|
|||
|
||||
Helicopter* copter = (Helicopter*) isle->Find(*g_copterScript, CopterScript::c_Helicopter_Actor);
|
||||
if (copter) {
|
||||
isle->RemovePathActor(copter);
|
||||
isle->RemoveActor(copter);
|
||||
isle->VTable0x6c(copter);
|
||||
delete copter;
|
||||
}
|
||||
|
||||
DuneBuggy* dunebuggy = (DuneBuggy*) isle->Find(*g_dunecarScript, DunecarScript::c_DuneBugy_Actor);
|
||||
if (dunebuggy) {
|
||||
isle->RemovePathActor(dunebuggy);
|
||||
isle->RemoveActor(dunebuggy);
|
||||
isle->VTable0x6c(dunebuggy);
|
||||
delete dunebuggy;
|
||||
}
|
||||
|
||||
Jetski* jetski = (Jetski*) isle->Find(*g_jetskiScript, JetskiScript::c_Jetski_Actor);
|
||||
if (jetski) {
|
||||
isle->RemovePathActor(jetski);
|
||||
isle->RemoveActor(jetski);
|
||||
isle->VTable0x6c(jetski);
|
||||
delete jetski;
|
||||
}
|
||||
|
||||
RaceCar* racecar = (RaceCar*) isle->Find(*g_racecarScript, RacecarScript::c_RaceCar_Actor);
|
||||
if (racecar) {
|
||||
isle->RemovePathActor(racecar);
|
||||
isle->RemoveActor(racecar);
|
||||
isle->VTable0x6c(racecar);
|
||||
delete racecar;
|
||||
}
|
||||
|
|
|
@ -286,7 +286,7 @@ MxResult LegoWorld::PlaceActor(
|
|||
LegoPathController* controller;
|
||||
|
||||
while (cursor.Next(controller)) {
|
||||
if (controller->FUN_10045c20(p_actor, p_name, p_src, p_srcScale, p_dest, p_destScale) == SUCCESS) {
|
||||
if (controller->PlaceActor(p_actor, p_name, p_src, p_srcScale, p_dest, p_destScale) == SUCCESS) {
|
||||
return SUCCESS;
|
||||
}
|
||||
}
|
||||
|
@ -295,13 +295,13 @@ MxResult LegoWorld::PlaceActor(
|
|||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1001fa70
|
||||
MxResult LegoWorld::AddPathActor(LegoPathActor* p_actor)
|
||||
MxResult LegoWorld::PlaceActor(LegoPathActor* p_actor)
|
||||
{
|
||||
LegoPathControllerListCursor cursor(&m_list0x68);
|
||||
LegoPathController* controller;
|
||||
|
||||
while (cursor.Next(controller)) {
|
||||
if (controller->AddActor(p_actor) == SUCCESS) {
|
||||
if (controller->PlaceActor(p_actor) == SUCCESS) {
|
||||
return SUCCESS;
|
||||
}
|
||||
}
|
||||
|
@ -310,7 +310,7 @@ MxResult LegoWorld::AddPathActor(LegoPathActor* p_actor)
|
|||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1001fb70
|
||||
MxResult LegoWorld::FUN_1001fb70(
|
||||
MxResult LegoWorld::PlaceActor(
|
||||
LegoPathActor* p_actor,
|
||||
LegoAnimPresenter* p_presenter,
|
||||
Vector3& p_position,
|
||||
|
@ -321,7 +321,7 @@ MxResult LegoWorld::FUN_1001fb70(
|
|||
LegoPathController* controller;
|
||||
|
||||
while (cursor.Next(controller)) {
|
||||
if (controller->FUN_10046050(p_actor, p_presenter, p_position, p_direction) == SUCCESS) {
|
||||
if (controller->PlaceActor(p_actor, p_presenter, p_position, p_direction) == SUCCESS) {
|
||||
return SUCCESS;
|
||||
}
|
||||
}
|
||||
|
@ -330,7 +330,7 @@ MxResult LegoWorld::FUN_1001fb70(
|
|||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1001fc80
|
||||
void LegoWorld::RemovePathActor(LegoPathActor* p_actor)
|
||||
void LegoWorld::RemoveActor(LegoPathActor* p_actor)
|
||||
{
|
||||
LegoPathControllerListCursor cursor(&m_list0x68);
|
||||
LegoPathController* controller;
|
||||
|
@ -502,7 +502,7 @@ void LegoWorld::Remove(MxCore* p_object)
|
|||
}
|
||||
else if (p_object->IsA("MxEntity")) {
|
||||
if (p_object->IsA("LegoPathActor")) {
|
||||
RemovePathActor((LegoPathActor*) p_object);
|
||||
RemoveActor((LegoPathActor*) p_object);
|
||||
}
|
||||
|
||||
if (m_entityList) {
|
||||
|
@ -703,7 +703,7 @@ void LegoWorld::Enable(MxBool p_enable)
|
|||
LegoPathActor* actor = CurrentActor();
|
||||
|
||||
if (actor) {
|
||||
RemovePathActor(actor);
|
||||
RemoveActor(actor);
|
||||
}
|
||||
|
||||
AnimationManager()->Reset(FALSE);
|
||||
|
|
|
@ -198,7 +198,7 @@ MxResult LegoPathController::Tickle()
|
|||
|
||||
// FUNCTION: LEGO1 0x10045c20
|
||||
// FUNCTION: BETA10 0x100b6d80
|
||||
MxResult LegoPathController::FUN_10045c20(
|
||||
MxResult LegoPathController::PlaceActor(
|
||||
LegoPathActor* p_actor,
|
||||
const char* p_name,
|
||||
MxS32 p_src,
|
||||
|
@ -229,7 +229,7 @@ MxResult LegoPathController::FUN_10045c20(
|
|||
|
||||
// FUNCTION: LEGO1 0x10046050
|
||||
// FUNCTION: BETA10 0x100b6f35
|
||||
MxResult LegoPathController::FUN_10046050(
|
||||
MxResult LegoPathController::PlaceActor(
|
||||
LegoPathActor* p_actor,
|
||||
LegoAnimPresenter* p_presenter,
|
||||
Vector3& p_position,
|
||||
|
@ -303,7 +303,7 @@ MxResult LegoPathController::FUN_10046050(
|
|||
|
||||
// FUNCTION: LEGO1 0x100466a0
|
||||
// FUNCTION: BETA10 0x100b71fe
|
||||
MxResult LegoPathController::AddActor(LegoPathActor* p_actor)
|
||||
MxResult LegoPathController::PlaceActor(LegoPathActor* p_actor)
|
||||
{
|
||||
if (p_actor->GetController() != NULL) {
|
||||
p_actor->GetController()->RemoveActor(p_actor);
|
||||
|
|
|
@ -590,7 +590,7 @@ void Isle::Enable(MxBool p_enable)
|
|||
m_act1state->m_unk0x018 = 5;
|
||||
}
|
||||
|
||||
AddPathActor(CurrentActor());
|
||||
PlaceActor(CurrentActor());
|
||||
SetIsWorldActive(TRUE);
|
||||
|
||||
#ifdef COMPAT_MODE
|
||||
|
@ -613,7 +613,7 @@ void Isle::Enable(MxBool p_enable)
|
|||
SetIsWorldActive(FALSE);
|
||||
break;
|
||||
case LegoGameState::e_bike:
|
||||
AddPathActor(CurrentActor());
|
||||
PlaceActor(CurrentActor());
|
||||
SetIsWorldActive(TRUE);
|
||||
|
||||
#ifdef COMPAT_MODE
|
||||
|
@ -626,7 +626,7 @@ void Isle::Enable(MxBool p_enable)
|
|||
#endif
|
||||
break;
|
||||
case LegoGameState::e_dunecar:
|
||||
AddPathActor(CurrentActor());
|
||||
PlaceActor(CurrentActor());
|
||||
SetIsWorldActive(TRUE);
|
||||
|
||||
#ifdef COMPAT_MODE
|
||||
|
@ -639,7 +639,7 @@ void Isle::Enable(MxBool p_enable)
|
|||
#endif
|
||||
break;
|
||||
case LegoGameState::e_motocycle:
|
||||
AddPathActor(CurrentActor());
|
||||
PlaceActor(CurrentActor());
|
||||
SetIsWorldActive(TRUE);
|
||||
|
||||
#ifdef COMPAT_MODE
|
||||
|
@ -652,7 +652,7 @@ void Isle::Enable(MxBool p_enable)
|
|||
#endif
|
||||
break;
|
||||
case LegoGameState::e_copter:
|
||||
AddPathActor(CurrentActor());
|
||||
PlaceActor(CurrentActor());
|
||||
SetIsWorldActive(TRUE);
|
||||
|
||||
#ifdef COMPAT_MODE
|
||||
|
@ -665,7 +665,7 @@ void Isle::Enable(MxBool p_enable)
|
|||
#endif
|
||||
break;
|
||||
case LegoGameState::e_skateboard:
|
||||
AddPathActor(CurrentActor());
|
||||
PlaceActor(CurrentActor());
|
||||
SetIsWorldActive(TRUE);
|
||||
|
||||
#ifdef COMPAT_MODE
|
||||
|
@ -678,7 +678,7 @@ void Isle::Enable(MxBool p_enable)
|
|||
#endif
|
||||
break;
|
||||
case LegoGameState::e_jetski:
|
||||
AddPathActor(CurrentActor());
|
||||
PlaceActor(CurrentActor());
|
||||
SetIsWorldActive(TRUE);
|
||||
|
||||
#ifdef COMPAT_MODE
|
||||
|
|
Loading…
Add table
Reference in a new issue