mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-12 03:01:17 +00:00
Fill several unknowns
This commit is contained in:
parent
02f2dd5400
commit
03f8c0fe05
@ -149,7 +149,7 @@ IsleApp::~IsleApp()
|
||||
void IsleApp::Close()
|
||||
{
|
||||
MxDSAction ds;
|
||||
ds.SetUnknown24(-2);
|
||||
ds.SetFlags(-2);
|
||||
|
||||
if (Lego()) {
|
||||
GameState()->Save(0);
|
||||
|
||||
@ -90,7 +90,7 @@ class LegoAnimMMPresenter : public MxCompositePresenter {
|
||||
MxU8 m_unk0x59; // 0x59
|
||||
MxU32 m_animmanId; // 0x5c
|
||||
LegoTranInfo* m_tranInfo; // 0x60
|
||||
LegoWorld* m_unk0x64; // 0x64
|
||||
LegoWorld* m_world; // 0x64
|
||||
MxMatrix* m_unk0x68; // 0x68
|
||||
LegoROI** m_roiMap; // 0x6c
|
||||
MxU32 m_roiMapSize; // 0x70
|
||||
|
||||
@ -26,10 +26,10 @@ struct LegoBuildingInfo {
|
||||
MxU32 m_sound; // 0x08
|
||||
MxU32 m_move; // 0x0c
|
||||
MxU8 m_mood; // 0x10
|
||||
MxS8 m_unk0x11; // 0x11
|
||||
MxS8 m_Downshift; // 0x11
|
||||
MxS8 m_initialUnk0x11; // 0x12 - initial value loaded to m_unk0x11
|
||||
MxU8 m_flags; // 0x13
|
||||
float m_unk0x14; // 0x14
|
||||
float m_downshiftScale; // 0x14
|
||||
const char* m_boundaryName; // 0x18
|
||||
float m_x; // 0x1c
|
||||
float m_y; // 0x20
|
||||
|
||||
@ -74,7 +74,7 @@ class LegoInputManager : public MxPresenter {
|
||||
c_right = 0x02,
|
||||
c_up = 0x04,
|
||||
c_down = 0x08,
|
||||
c_bit5 = 0x10,
|
||||
c_ctrl = 0x10,
|
||||
|
||||
c_leftOrRight = c_left | c_right,
|
||||
c_upOrDown = c_up | c_down
|
||||
|
||||
@ -155,7 +155,7 @@ class LegoNavController : public MxCore {
|
||||
float m_unk0x60; // 0x60
|
||||
float m_unk0x64; // 0x64
|
||||
float m_unk0x68; // 0x68
|
||||
MxBool m_unk0x6c; // 0x6c
|
||||
MxBool m_isAccelerating; // 0x6c
|
||||
|
||||
// one copy of defaults (these can be set by App.)
|
||||
static int g_defdeadZone;
|
||||
|
||||
@ -30,14 +30,14 @@ class LegoMouseController : public MxCore {
|
||||
virtual void RightUp(int, int); // vtable+0x28
|
||||
|
||||
BOOL GetIsButtonDown() { return m_isButtonDown; }
|
||||
MxDouble GetButtonX() { return m_buttonX; }
|
||||
MxDouble GetButtonY() { return m_buttonY; }
|
||||
MxDouble GetX() { return m_X; }
|
||||
MxDouble GetY() { return m_Y; }
|
||||
|
||||
private:
|
||||
BOOL m_isButtonDown; // 0x08
|
||||
undefined4 m_unk0x0c; // 0x0c
|
||||
MxDouble m_buttonX; // 0x10
|
||||
MxDouble m_buttonY; // 0x18
|
||||
MxDouble m_X; // 0x10
|
||||
MxDouble m_Y; // 0x18
|
||||
};
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100655b0
|
||||
|
||||
@ -125,7 +125,7 @@ class LegoWorld : public LegoEntity {
|
||||
// LegoWorld::`scalar deleting destructor'
|
||||
|
||||
protected:
|
||||
LegoPathControllerList m_list0x68; // 0x68
|
||||
LegoPathControllerList m_controllerList; // 0x68
|
||||
MxPresenterList m_animPresenters; // 0x80
|
||||
LegoCameraController* m_cameraController; // 0x98
|
||||
LegoEntityList* m_entityList; // 0x9c
|
||||
|
||||
@ -719,11 +719,11 @@ LegoEntity* Act2Actor::FUN_10019b90(MxBool* p_param)
|
||||
|
||||
switch (m_unk0x1d) {
|
||||
case 0:
|
||||
if (buildingInfo[12].m_unk0x11) {
|
||||
if (buildingInfo[12].m_Downshift) {
|
||||
result = buildingInfo[12].m_entity;
|
||||
*p_param = TRUE;
|
||||
}
|
||||
else if (buildingInfo[14].m_unk0x11) {
|
||||
else if (buildingInfo[14].m_Downshift) {
|
||||
result = buildingInfo[14].m_entity;
|
||||
*p_param = TRUE;
|
||||
}
|
||||
@ -737,7 +737,7 @@ LegoEntity* Act2Actor::FUN_10019b90(MxBool* p_param)
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (buildingInfo[13].m_unk0x11) {
|
||||
if (buildingInfo[13].m_Downshift) {
|
||||
result = buildingInfo[13].m_entity;
|
||||
*p_param = TRUE;
|
||||
}
|
||||
@ -751,11 +751,11 @@ LegoEntity* Act2Actor::FUN_10019b90(MxBool* p_param)
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (buildingInfo[9].m_unk0x11) {
|
||||
if (buildingInfo[9].m_Downshift) {
|
||||
result = buildingInfo[9].m_entity;
|
||||
*p_param = TRUE;
|
||||
}
|
||||
else if (buildingInfo[11].m_unk0x11) {
|
||||
else if (buildingInfo[11].m_Downshift) {
|
||||
result = buildingInfo[11].m_entity;
|
||||
*p_param = TRUE;
|
||||
}
|
||||
@ -769,15 +769,15 @@ LegoEntity* Act2Actor::FUN_10019b90(MxBool* p_param)
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (buildingInfo[7].m_unk0x11) {
|
||||
if (buildingInfo[7].m_Downshift) {
|
||||
result = buildingInfo[7].m_entity;
|
||||
*p_param = TRUE;
|
||||
}
|
||||
else if (buildingInfo[8].m_unk0x11) {
|
||||
else if (buildingInfo[8].m_Downshift) {
|
||||
result = buildingInfo[8].m_entity;
|
||||
*p_param = TRUE;
|
||||
}
|
||||
else if (buildingInfo[3].m_unk0x11) {
|
||||
else if (buildingInfo[3].m_Downshift) {
|
||||
result = buildingInfo[3].m_entity;
|
||||
*p_param = TRUE;
|
||||
}
|
||||
@ -791,11 +791,11 @@ LegoEntity* Act2Actor::FUN_10019b90(MxBool* p_param)
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (buildingInfo[5].m_unk0x11) {
|
||||
if (buildingInfo[5].m_Downshift) {
|
||||
result = buildingInfo[5].m_entity;
|
||||
*p_param = TRUE;
|
||||
}
|
||||
else if (buildingInfo[10].m_unk0x11) {
|
||||
else if (buildingInfo[10].m_Downshift) {
|
||||
result = buildingInfo[10].m_entity;
|
||||
*p_param = TRUE;
|
||||
}
|
||||
@ -809,7 +809,7 @@ LegoEntity* Act2Actor::FUN_10019b90(MxBool* p_param)
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (buildingInfo[4].m_unk0x11) {
|
||||
if (buildingInfo[4].m_Downshift) {
|
||||
result = buildingInfo[4].m_entity;
|
||||
*p_param = TRUE;
|
||||
}
|
||||
@ -823,7 +823,7 @@ LegoEntity* Act2Actor::FUN_10019b90(MxBool* p_param)
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (buildingInfo[2].m_unk0x11) {
|
||||
if (buildingInfo[2].m_Downshift) {
|
||||
result = buildingInfo[2].m_entity;
|
||||
*p_param = TRUE;
|
||||
}
|
||||
@ -837,7 +837,7 @@ LegoEntity* Act2Actor::FUN_10019b90(MxBool* p_param)
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
if (buildingInfo[6].m_unk0x11) {
|
||||
if (buildingInfo[6].m_Downshift) {
|
||||
result = buildingInfo[6].m_entity;
|
||||
*p_param = TRUE;
|
||||
}
|
||||
@ -862,7 +862,7 @@ LegoEntity* Act2Actor::FUN_10019b90(MxBool* p_param)
|
||||
return result;
|
||||
}
|
||||
|
||||
if (buildingInfo[15].m_unk0x11) {
|
||||
if (buildingInfo[15].m_Downshift) {
|
||||
result = buildingInfo[15].m_entity;
|
||||
*p_param = TRUE;
|
||||
}
|
||||
|
||||
@ -653,7 +653,7 @@ void Act3Brickster::Animate(float p_time)
|
||||
assert(SoundManager()->GetCacheSoundManager());
|
||||
SoundManager()->GetCacheSoundManager()->Play("thpt", NULL, FALSE);
|
||||
|
||||
while (m_bInfo->m_unk0x11 > 0 || m_bInfo->m_unk0x11 == -1) {
|
||||
while (m_bInfo->m_Downshift > 0 || m_bInfo->m_Downshift == -1) {
|
||||
if (!BuildingManager()->FUN_10030110(m_bInfo)) {
|
||||
break;
|
||||
}
|
||||
@ -865,7 +865,7 @@ MxResult Act3Brickster::FUN_100417c0()
|
||||
float local124;
|
||||
|
||||
for (MxS32 i = 0; i < length; i++) {
|
||||
if (bInfo[i].m_unk0x11 < 0 && bInfo[i].m_boundary != NULL && bInfo[i].m_entity != NULL && i != 0 &&
|
||||
if (bInfo[i].m_Downshift < 0 && bInfo[i].m_boundary != NULL && bInfo[i].m_entity != NULL && i != 0 &&
|
||||
(local120 == -1 || i != 15)) {
|
||||
Mx3DPointFloat local188(bInfo[i].m_x, bInfo[i].m_y, bInfo[i].m_z);
|
||||
|
||||
|
||||
@ -71,7 +71,7 @@ void MxBackgroundAudioManager::DestroyMusic()
|
||||
if (m_script.GetInternal()) {
|
||||
MxDSAction ds;
|
||||
ds.SetAtomId(m_script);
|
||||
ds.SetUnknown24(-2);
|
||||
ds.SetFlags(-2);
|
||||
DeleteObject(ds);
|
||||
Streamer()->Close(m_script.GetInternal());
|
||||
m_enabled = FALSE;
|
||||
@ -257,7 +257,7 @@ MxResult MxBackgroundAudioManager::PlayMusic(
|
||||
MxDSAction action;
|
||||
action.SetAtomId(GetCurrentAction().GetAtomId());
|
||||
action.SetObjectId(GetCurrentAction().GetObjectId());
|
||||
action.SetUnknown24(GetCurrentAction().GetUnknown24());
|
||||
action.SetFlags(GetCurrentAction().GetFlags());
|
||||
|
||||
m_action2.SetAtomId(p_action.GetAtomId());
|
||||
m_action2.SetObjectId(p_action.GetObjectId());
|
||||
@ -268,7 +268,7 @@ MxResult MxBackgroundAudioManager::PlayMusic(
|
||||
|
||||
GetCurrentAction().SetAtomId(action.GetAtomId());
|
||||
GetCurrentAction().SetObjectId(action.GetObjectId());
|
||||
GetCurrentAction().SetUnknown24(action.GetUnknown24());
|
||||
GetCurrentAction().SetFlags(action.GetFlags());
|
||||
|
||||
if (result == SUCCESS) {
|
||||
m_tickleState = p_tickleState;
|
||||
|
||||
@ -1012,7 +1012,7 @@ MxResult LegoAnimationManager::FUN_100605e0(
|
||||
|
||||
action.SetAtomId(*Lego()->GetWorldAtom(m_worldId));
|
||||
action.SetObjectId(animInfo.m_objectId);
|
||||
action.SetUnknown24(-1);
|
||||
action.SetFlags(-1);
|
||||
action.AppendExtra(strlen(buf) + 1, buf);
|
||||
|
||||
if (StartActionIfUnknown0x13c(action) == SUCCESS) {
|
||||
@ -1079,7 +1079,7 @@ MxResult LegoAnimationManager::FUN_100609f0(MxU32 p_objectId, MxMatrix* p_matrix
|
||||
|
||||
action.SetAtomId(*Lego()->GetWorldAtom(m_worldId));
|
||||
action.SetObjectId(p_objectId);
|
||||
action.SetUnknown24(-1);
|
||||
action.SetFlags(-1);
|
||||
action.AppendExtra(strlen(buf) + 1, buf);
|
||||
|
||||
if (StartActionIfUnknown0x13c(action) == SUCCESS) {
|
||||
|
||||
@ -30,7 +30,7 @@ LegoAnimMMPresenter::LegoAnimMMPresenter()
|
||||
m_unk0x59 = 0;
|
||||
m_tranInfo = NULL;
|
||||
m_unk0x54 = 0;
|
||||
m_unk0x64 = NULL;
|
||||
m_world = NULL;
|
||||
m_unk0x68 = NULL;
|
||||
m_roiMap = NULL;
|
||||
m_roiMapSize = 0;
|
||||
@ -101,9 +101,9 @@ MxResult LegoAnimMMPresenter::StartAction(MxStreamController* p_controller, MxDS
|
||||
}
|
||||
}
|
||||
|
||||
m_unk0x64 = CurrentWorld();
|
||||
if (m_unk0x64) {
|
||||
m_unk0x64->Add(this);
|
||||
m_world = CurrentWorld();
|
||||
if (m_world) {
|
||||
m_world->Add(this);
|
||||
}
|
||||
VideoManager()->RegisterPresenter(*this);
|
||||
|
||||
@ -133,8 +133,8 @@ void LegoAnimMMPresenter::EndAction()
|
||||
if (m_action != NULL) {
|
||||
MxCompositePresenter::EndAction();
|
||||
|
||||
if (m_unk0x64 != NULL) {
|
||||
m_unk0x64->Remove(this);
|
||||
if (m_world != NULL) {
|
||||
m_world->Remove(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -429,11 +429,11 @@ MxBool LegoAnimMMPresenter::FUN_1004b6d0(MxLong p_time)
|
||||
LegoPathActor* actor = UserActor();
|
||||
|
||||
if (m_tranInfo != NULL && m_tranInfo->m_unk0x14 && m_tranInfo->m_location != -1 && actor != NULL) {
|
||||
if (m_unk0x64 != NULL) {
|
||||
if (m_world != NULL) {
|
||||
undefined4 und = 1;
|
||||
|
||||
if (m_presenter != NULL) {
|
||||
m_unk0x64->RemoveActor(actor);
|
||||
m_world->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->PlaceActor(actor, m_presenter, position, direction);
|
||||
und = m_world->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->PlaceActor(actor);
|
||||
m_world->PlaceActor(actor);
|
||||
}
|
||||
|
||||
if (m_tranInfo->m_unk0x29) {
|
||||
|
||||
@ -301,7 +301,7 @@ void LegoBuildingManager::CreateBuilding(MxS32 p_index, LegoWorld* p_world)
|
||||
LegoROI* roi = entity->GetROI();
|
||||
AdjustHeight(p_index);
|
||||
MxMatrix mat = roi->GetLocal2World();
|
||||
mat[3][1] = g_buildingInfo[p_index].m_unk0x14;
|
||||
mat[3][1] = g_buildingInfo[p_index].m_downshiftScale;
|
||||
roi->UpdateTransformationRelativeToParent(mat);
|
||||
VideoManager()->Get3DManager()->Moved(*roi);
|
||||
}
|
||||
@ -376,11 +376,11 @@ MxResult LegoBuildingManager::Read(LegoStorage* p_storage)
|
||||
if (p_storage->Read(&info->m_mood, sizeof(info->m_mood)) != SUCCESS) {
|
||||
goto done;
|
||||
}
|
||||
if (p_storage->Read(&info->m_unk0x11, sizeof(info->m_unk0x11)) != SUCCESS) {
|
||||
if (p_storage->Read(&info->m_Downshift, sizeof(info->m_Downshift)) != SUCCESS) {
|
||||
goto done;
|
||||
}
|
||||
|
||||
info->m_initialUnk0x11 = info->m_unk0x11;
|
||||
info->m_initialUnk0x11 = info->m_Downshift;
|
||||
AdjustHeight(i);
|
||||
}
|
||||
|
||||
@ -402,15 +402,15 @@ MxResult LegoBuildingManager::Read(LegoStorage* p_storage)
|
||||
// FUNCTION: BETA10 0x10063f1a
|
||||
void LegoBuildingManager::AdjustHeight(MxS32 p_index)
|
||||
{
|
||||
if (g_buildingInfo[p_index].m_unk0x11 > 0) {
|
||||
float value = g_buildingInfoDownshift[p_index] - g_buildingInfo[p_index].m_unk0x11;
|
||||
g_buildingInfo[p_index].m_unk0x14 =
|
||||
g_buildingInfoInit[p_index].m_unk0x14 - value * g_buildingInfoDownshiftScale[p_index];
|
||||
if (g_buildingInfo[p_index].m_Downshift > 0) {
|
||||
float value = g_buildingInfoDownshift[p_index] - g_buildingInfo[p_index].m_Downshift;
|
||||
g_buildingInfo[p_index].m_downshiftScale =
|
||||
g_buildingInfoInit[p_index].m_downshiftScale - value * g_buildingInfoDownshiftScale[p_index];
|
||||
}
|
||||
else if (g_buildingInfo[p_index].m_unk0x11 == 0) {
|
||||
float value = g_buildingInfoDownshift[p_index] - g_buildingInfo[p_index].m_unk0x11;
|
||||
g_buildingInfo[p_index].m_unk0x14 =
|
||||
g_buildingInfoInit[p_index].m_unk0x14 - value * g_buildingInfoDownshiftScale[p_index];
|
||||
else if (g_buildingInfo[p_index].m_Downshift == 0) {
|
||||
float value = g_buildingInfoDownshift[p_index] - g_buildingInfo[p_index].m_Downshift;
|
||||
g_buildingInfo[p_index].m_downshiftScale =
|
||||
g_buildingInfoInit[p_index].m_downshiftScale - value * g_buildingInfoDownshiftScale[p_index];
|
||||
|
||||
if (g_buildingInfo[p_index].m_entity != NULL) {
|
||||
LegoROI* roi = g_buildingInfo[p_index].m_entity->GetROI();
|
||||
@ -420,7 +420,7 @@ void LegoBuildingManager::AdjustHeight(MxS32 p_index)
|
||||
}
|
||||
}
|
||||
else {
|
||||
g_buildingInfo[p_index].m_unk0x14 = g_buildingInfoInit[p_index].m_unk0x14;
|
||||
g_buildingInfo[p_index].m_downshiftScale = g_buildingInfoInit[p_index].m_downshiftScale;
|
||||
}
|
||||
}
|
||||
|
||||
@ -453,7 +453,7 @@ MxBool LegoBuildingManager::SwitchVariant(LegoEntity* p_entity)
|
||||
|
||||
LegoBuildingInfo* info = GetInfo(p_entity);
|
||||
|
||||
if (info != NULL && info->m_flags & LegoBuildingInfo::c_hasVariants && info->m_unk0x11 == -1) {
|
||||
if (info != NULL && info->m_flags & LegoBuildingInfo::c_hasVariants && info->m_Downshift == -1) {
|
||||
LegoROI* roi = p_entity->GetROI();
|
||||
if (++m_nextVariant >= sizeOfArray(g_buildingInfoVariants)) {
|
||||
m_nextVariant = 0;
|
||||
@ -621,25 +621,25 @@ MxBool LegoBuildingManager::FUN_10030030(MxS32 p_index)
|
||||
|
||||
MxBool result = TRUE;
|
||||
|
||||
if (info->m_unk0x11 < 0) {
|
||||
info->m_unk0x11 = g_buildingInfoDownshift[p_index];
|
||||
if (info->m_Downshift < 0) {
|
||||
info->m_Downshift = g_buildingInfoDownshift[p_index];
|
||||
}
|
||||
|
||||
if (info->m_unk0x11 <= 0) {
|
||||
if (info->m_Downshift <= 0) {
|
||||
result = FALSE;
|
||||
}
|
||||
else {
|
||||
LegoROI* roi = info->m_entity->GetROI();
|
||||
|
||||
info->m_unk0x11 -= 2;
|
||||
if (info->m_unk0x11 == 1) {
|
||||
info->m_unk0x11 = 0;
|
||||
info->m_Downshift -= 2;
|
||||
if (info->m_Downshift == 1) {
|
||||
info->m_Downshift = 0;
|
||||
roi->SetVisibility(FALSE);
|
||||
}
|
||||
else {
|
||||
AdjustHeight(p_index);
|
||||
MxMatrix mat = roi->GetLocal2World();
|
||||
mat[3][1] = g_buildingInfo[p_index].m_unk0x14;
|
||||
mat[3][1] = g_buildingInfo[p_index].m_downshiftScale;
|
||||
roi->UpdateTransformationRelativeToParent(mat);
|
||||
VideoManager()->Get3DManager()->Moved(*roi);
|
||||
}
|
||||
@ -741,16 +741,16 @@ MxResult LegoBuildingManager::Tickle()
|
||||
if (entry->m_time < time) {
|
||||
LegoBuildingInfo* info = GetInfo(entry->m_entity);
|
||||
|
||||
if (info->m_unk0x11 && !m_unk0x28) {
|
||||
if (info->m_Downshift && !m_unk0x28) {
|
||||
MxS32 index = info - g_buildingInfo;
|
||||
AdjustHeight(index);
|
||||
MxMatrix mat = entry->m_roi->GetLocal2World();
|
||||
mat[3][1] = g_buildingInfo[index].m_unk0x14;
|
||||
mat[3][1] = g_buildingInfo[index].m_downshiftScale;
|
||||
entry->m_roi->UpdateTransformationRelativeToParent(mat);
|
||||
VideoManager()->Get3DManager()->Moved(*entry->m_roi);
|
||||
}
|
||||
else {
|
||||
info->m_unk0x11 = 0;
|
||||
info->m_Downshift = 0;
|
||||
entry->m_roi->SetVisibility(FALSE);
|
||||
}
|
||||
|
||||
@ -777,14 +777,14 @@ MxResult LegoBuildingManager::Tickle()
|
||||
void LegoBuildingManager::FUN_10030590()
|
||||
{
|
||||
for (MxS32 i = 0; i < sizeOfArray(g_buildingInfo); i++) {
|
||||
g_buildingInfo[i].m_unk0x11 = -1;
|
||||
g_buildingInfo[i].m_Downshift = -1;
|
||||
g_buildingInfo[i].m_initialUnk0x11 = -1;
|
||||
AdjustHeight(i);
|
||||
|
||||
if (g_buildingInfo[i].m_entity != NULL) {
|
||||
LegoROI* roi = g_buildingInfo[i].m_entity->GetROI();
|
||||
MxMatrix mat = roi->GetLocal2World();
|
||||
mat[3][1] = g_buildingInfo[i].m_unk0x14;
|
||||
mat[3][1] = g_buildingInfo[i].m_downshiftScale;
|
||||
roi->UpdateTransformationRelativeToParent(mat);
|
||||
VideoManager()->Get3DManager()->Moved(*roi);
|
||||
}
|
||||
@ -881,14 +881,14 @@ void LegoBuildingManager::FUN_100307b0(LegoEntity* p_entity, MxS32 p_adjust)
|
||||
LegoBuildingInfo* info = GetInfo(p_entity);
|
||||
|
||||
if (info != NULL) {
|
||||
if (info->m_unk0x11 < 0) {
|
||||
info->m_unk0x11 = g_buildingInfoDownshift[info - g_buildingInfo];
|
||||
if (info->m_Downshift < 0) {
|
||||
info->m_Downshift = g_buildingInfoDownshift[info - g_buildingInfo];
|
||||
}
|
||||
|
||||
if (info->m_unk0x11 > 0) {
|
||||
info->m_unk0x11 += p_adjust;
|
||||
if (info->m_unk0x11 <= 1 && p_adjust < 0) {
|
||||
info->m_unk0x11 = 0;
|
||||
if (info->m_Downshift > 0) {
|
||||
info->m_Downshift += p_adjust;
|
||||
if (info->m_Downshift <= 1 && p_adjust < 0) {
|
||||
info->m_Downshift = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -898,6 +898,6 @@ void LegoBuildingManager::FUN_100307b0(LegoEntity* p_entity, MxS32 p_adjust)
|
||||
void LegoBuildingManager::FUN_10030800()
|
||||
{
|
||||
for (MxU32 i = 0; i < sizeOfArray(g_buildingInfo); i++) {
|
||||
g_buildingInfo[i].m_initialUnk0x11 = g_buildingInfo[i].m_unk0x11;
|
||||
g_buildingInfo[i].m_initialUnk0x11 = g_buildingInfo[i].m_Downshift;
|
||||
}
|
||||
}
|
||||
|
||||
@ -573,7 +573,7 @@ LegoROI* LegoCharacterManager::CreateActorROI(const char* p_key)
|
||||
}
|
||||
else if (g_actorLODs[i + 1].m_flags & LegoActorLOD::c_flag2 || (i == 0 && part.m_unk0x00[part.m_unk0x08] == 0)) {
|
||||
LegoFloat red, green, blue, alpha;
|
||||
childROI->FUN_100a9bf0(part.m_unk0x10[part.m_unk0x0c[part.m_unk0x14]], red, green, blue, alpha);
|
||||
childROI->GetColorFromGlobalHandlerOrAlias(part.m_unk0x10[part.m_unk0x0c[part.m_unk0x14]], red, green, blue, alpha);
|
||||
childROI->FUN_100a9170(red, green, blue, alpha);
|
||||
}
|
||||
|
||||
@ -796,7 +796,7 @@ MxBool LegoCharacterManager::SwitchColor(LegoROI* p_roi, LegoROI* p_targetROI)
|
||||
}
|
||||
|
||||
LegoFloat red, green, blue, alpha;
|
||||
LegoROI::FUN_100a9bf0(part.m_unk0x10[part.m_unk0x0c[part.m_unk0x14]], red, green, blue, alpha);
|
||||
LegoROI::GetColorFromGlobalHandlerOrAlias(part.m_unk0x10[part.m_unk0x0c[part.m_unk0x14]], red, green, blue, alpha);
|
||||
p_targetROI->FUN_100a9170(red, green, blue, alpha);
|
||||
return TRUE;
|
||||
}
|
||||
@ -832,7 +832,7 @@ MxBool LegoCharacterManager::SwitchVariant(LegoROI* p_roi)
|
||||
|
||||
Tgl::Renderer* renderer = VideoManager()->GetRenderer();
|
||||
LegoFloat red, green, blue, alpha;
|
||||
LegoROI::FUN_100a9bf0(part.m_unk0x10[part.m_unk0x0c[part.m_unk0x14]], red, green, blue, alpha);
|
||||
LegoROI::GetColorFromGlobalHandlerOrAlias(part.m_unk0x10[part.m_unk0x0c[part.m_unk0x14]], red, green, blue, alpha);
|
||||
|
||||
for (MxS32 i = 0; i < lodSize; i++) {
|
||||
LegoLOD* lod = (LegoLOD*) (*lodList)[i];
|
||||
|
||||
@ -176,7 +176,7 @@ LegoGameState::LegoGameState()
|
||||
// FUNCTION: LEGO1 0x10039720
|
||||
LegoGameState::~LegoGameState()
|
||||
{
|
||||
LegoROI::FUN_100a9d30(NULL);
|
||||
LegoROI::SetGlobalROIHandler(NULL);
|
||||
|
||||
if (m_stateCount) {
|
||||
for (MxS16 i = 0; i < m_stateCount; i++) {
|
||||
@ -1062,7 +1062,7 @@ void LegoGameState::SetColors()
|
||||
// FUNCTION: LEGO1 0x1003bac0
|
||||
void LegoGameState::SetROIHandlerFunction()
|
||||
{
|
||||
LegoROI::FUN_100a9d30(&ROIHandlerFunction);
|
||||
LegoROI::SetGlobalROIHandler(&ROIHandlerFunction);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1003bad0
|
||||
|
||||
@ -294,7 +294,7 @@ void InvokeAction(Extra::ActionType p_actionId, const MxAtomId& p_pAtom, MxS32 p
|
||||
|
||||
break;
|
||||
case Extra::ActionType::e_close:
|
||||
action.SetUnknown24(-2);
|
||||
action.SetFlags(-2);
|
||||
DeleteObject(action);
|
||||
Streamer()->Close(p_pAtom.GetInternal());
|
||||
break;
|
||||
@ -308,7 +308,7 @@ void InvokeAction(Extra::ActionType p_actionId, const MxAtomId& p_pAtom, MxS32 p
|
||||
break;
|
||||
case Extra::ActionType::e_stop:
|
||||
assert(p_streamId != DS_NOT_A_STREAM);
|
||||
action.SetUnknown24(-2);
|
||||
action.SetFlags(-2);
|
||||
|
||||
if (!RemoveFromCurrentWorld(p_pAtom, p_streamId)) {
|
||||
DeleteObject(action);
|
||||
|
||||
@ -239,7 +239,7 @@ void DeleteObjects(MxAtomId* p_id, MxS32 p_first, MxS32 p_last)
|
||||
MxDSAction action;
|
||||
|
||||
action.SetAtomId(*p_id);
|
||||
action.SetUnknown24(-2);
|
||||
action.SetFlags(-2);
|
||||
|
||||
for (MxS32 first = p_first, last = p_last; first <= last; first++) {
|
||||
action.SetObjectId(first);
|
||||
|
||||
@ -135,7 +135,7 @@ LegoNavController::LegoNavController()
|
||||
m_rotationalAccel = 0.0f;
|
||||
m_trackDefault = FALSE;
|
||||
m_unk0x5d = FALSE;
|
||||
m_unk0x6c = FALSE;
|
||||
m_isAccelerating = FALSE;
|
||||
m_unk0x64 = 0.0f;
|
||||
m_unk0x68 = 0.0f;
|
||||
m_unk0x60 = 0.0f;
|
||||
@ -564,8 +564,8 @@ MxResult LegoNavController::ProcessJoystickInput(MxBool& p_und)
|
||||
// FUNCTION: LEGO1 0x100558b0
|
||||
MxResult LegoNavController::ProcessKeyboardInput()
|
||||
{
|
||||
MxBool bool1 = FALSE;
|
||||
MxBool bool2 = FALSE;
|
||||
MxBool skipRotationVelAndAccelCalc = FALSE;
|
||||
MxBool skipLinearVelAndAccelCalc = FALSE;
|
||||
LegoInputManager* inputManager = LegoOmni::GetInstance()->GetInputManager();
|
||||
MxU32 keyFlags;
|
||||
|
||||
@ -574,18 +574,18 @@ MxResult LegoNavController::ProcessKeyboardInput()
|
||||
}
|
||||
|
||||
if (keyFlags == 0) {
|
||||
if (m_unk0x6c) {
|
||||
if (m_isAccelerating) {
|
||||
m_targetRotationalVel = 0.0;
|
||||
m_targetLinearVel = 0.0;
|
||||
m_rotationalAccel = m_maxRotationalDeccel;
|
||||
m_linearAccel = m_maxLinearDeccel;
|
||||
m_unk0x6c = FALSE;
|
||||
m_isAccelerating = FALSE;
|
||||
}
|
||||
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
m_unk0x6c = TRUE;
|
||||
m_isAccelerating = TRUE;
|
||||
|
||||
MxS32 hMax;
|
||||
switch (keyFlags & LegoInputManager::c_leftOrRight) {
|
||||
@ -598,7 +598,7 @@ MxResult LegoNavController::ProcessKeyboardInput()
|
||||
default:
|
||||
m_targetRotationalVel = 0.0;
|
||||
m_rotationalAccel = m_maxRotationalDeccel;
|
||||
bool1 = TRUE;
|
||||
skipRotationVelAndAccelCalc = TRUE;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -613,23 +613,23 @@ MxResult LegoNavController::ProcessKeyboardInput()
|
||||
default:
|
||||
m_targetLinearVel = 0.0;
|
||||
m_linearAccel = m_maxLinearDeccel;
|
||||
bool2 = TRUE;
|
||||
skipLinearVelAndAccelCalc = TRUE;
|
||||
break;
|
||||
}
|
||||
|
||||
MxFloat val = keyFlags & LegoInputManager::c_bit5 ? 1.0f : 4.0f;
|
||||
MxFloat val2 = keyFlags & LegoInputManager::c_bit5 ? 1.0f : 2.0f;
|
||||
MxFloat maxAccelDivisor = keyFlags & LegoInputManager::c_ctrl ? 1.0f : 4.0f;
|
||||
MxFloat minAccelDivisor = keyFlags & LegoInputManager::c_ctrl ? 1.0f : 2.0f;
|
||||
|
||||
if (!bool1) {
|
||||
if (!skipRotationVelAndAccelCalc) {
|
||||
m_targetRotationalVel = CalculateNewTargetVel(hMax, m_hMax / 2, m_maxRotationalVel);
|
||||
m_rotationalAccel =
|
||||
CalculateNewAccel(hMax, m_hMax / 2, m_maxRotationalAccel / val, (int) (m_minRotationalAccel / val2));
|
||||
CalculateNewAccel(hMax, m_hMax / 2, m_maxRotationalAccel / maxAccelDivisor, (int) (m_minRotationalAccel / minAccelDivisor));
|
||||
}
|
||||
|
||||
if (!bool2) {
|
||||
if (!skipLinearVelAndAccelCalc) {
|
||||
m_targetLinearVel = CalculateNewTargetVel(m_vMax - vMax, m_vMax / 2, m_maxLinearVel);
|
||||
m_linearAccel =
|
||||
CalculateNewAccel(m_vMax - vMax, m_vMax / 2, m_maxLinearAccel / val, (int) (m_minLinearAccel / val2));
|
||||
CalculateNewAccel(m_vMax - vMax, m_vMax / 2, m_maxLinearAccel / maxAccelDivisor, (int) (m_minLinearAccel / minAccelDivisor));
|
||||
}
|
||||
|
||||
return SUCCESS;
|
||||
|
||||
@ -34,46 +34,46 @@ LegoMouseController::~LegoMouseController()
|
||||
void LegoMouseController::LeftDown(int p_x, int p_y)
|
||||
{
|
||||
m_isButtonDown = TRUE;
|
||||
m_buttonX = p_x;
|
||||
m_buttonY = p_y;
|
||||
m_X = p_x;
|
||||
m_Y = p_y;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10065640
|
||||
void LegoMouseController::LeftUp(int p_x, int p_y)
|
||||
{
|
||||
m_isButtonDown = FALSE;
|
||||
m_buttonX = p_x;
|
||||
m_buttonY = p_y;
|
||||
m_X = p_x;
|
||||
m_Y = p_y;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10065660
|
||||
void LegoMouseController::LeftDrag(int p_x, int p_y)
|
||||
{
|
||||
m_buttonX = p_x;
|
||||
m_buttonY = p_y;
|
||||
m_X = p_x;
|
||||
m_Y = p_y;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10065680
|
||||
void LegoMouseController::RightDown(int p_x, int p_y)
|
||||
{
|
||||
m_isButtonDown = TRUE;
|
||||
m_buttonX = p_x;
|
||||
m_buttonY = p_y;
|
||||
m_X = p_x;
|
||||
m_Y = p_y;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100656a0
|
||||
void LegoMouseController::RightUp(int p_x, int p_y)
|
||||
{
|
||||
m_isButtonDown = FALSE;
|
||||
m_buttonX = p_x;
|
||||
m_buttonY = p_y;
|
||||
m_X = p_x;
|
||||
m_Y = p_y;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100656c0
|
||||
void LegoMouseController::RightDrag(int p_x, int p_y)
|
||||
{
|
||||
m_buttonX = p_x;
|
||||
m_buttonY = p_y;
|
||||
m_X = p_x;
|
||||
m_Y = p_y;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
@ -134,7 +134,7 @@ void LegoPointOfViewController::LeftDrag(int p_x, int p_y)
|
||||
// FUNCTION: LEGO1 0x10065900
|
||||
void LegoPointOfViewController::AffectPointOfView()
|
||||
{
|
||||
m_nav->SetTargets(GetButtonX(), GetButtonY(), GetIsButtonDown());
|
||||
m_nav->SetTargets(GetX(), GetY(), GetIsButtonDown());
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10065930
|
||||
|
||||
@ -32,7 +32,7 @@ DECOMP_SIZE_ASSERT(LegoCacheSoundList, 0x18)
|
||||
DECOMP_SIZE_ASSERT(LegoCacheSoundListCursor, 0x10)
|
||||
|
||||
// FUNCTION: LEGO1 0x1001ca40
|
||||
LegoWorld::LegoWorld() : m_list0x68(TRUE)
|
||||
LegoWorld::LegoWorld() : m_controllerList(TRUE)
|
||||
{
|
||||
m_startupTicks = e_four;
|
||||
m_cameraController = NULL;
|
||||
@ -100,7 +100,7 @@ void LegoWorld::Destroy(MxBool p_fromDestructor)
|
||||
SetCurrentWorld(NULL);
|
||||
}
|
||||
|
||||
m_list0x68.DeleteAll();
|
||||
m_controllerList.DeleteAll();
|
||||
|
||||
if (m_cameraController) {
|
||||
delete m_cameraController;
|
||||
@ -273,7 +273,7 @@ MxResult LegoWorld::PlaceActor(
|
||||
float p_destScale
|
||||
)
|
||||
{
|
||||
LegoPathControllerListCursor cursor(&m_list0x68);
|
||||
LegoPathControllerListCursor cursor(&m_controllerList);
|
||||
LegoPathController* controller;
|
||||
|
||||
while (cursor.Next(controller)) {
|
||||
@ -288,7 +288,7 @@ MxResult LegoWorld::PlaceActor(
|
||||
// FUNCTION: LEGO1 0x1001fa70
|
||||
MxResult LegoWorld::PlaceActor(LegoPathActor* p_actor)
|
||||
{
|
||||
LegoPathControllerListCursor cursor(&m_list0x68);
|
||||
LegoPathControllerListCursor cursor(&m_controllerList);
|
||||
LegoPathController* controller;
|
||||
|
||||
while (cursor.Next(controller)) {
|
||||
@ -308,7 +308,7 @@ MxResult LegoWorld::PlaceActor(
|
||||
Vector3& p_direction
|
||||
)
|
||||
{
|
||||
LegoPathControllerListCursor cursor(&m_list0x68);
|
||||
LegoPathControllerListCursor cursor(&m_controllerList);
|
||||
LegoPathController* controller;
|
||||
|
||||
while (cursor.Next(controller)) {
|
||||
@ -324,7 +324,7 @@ MxResult LegoWorld::PlaceActor(
|
||||
// FUNCTION: BETA10 0x100da4bf
|
||||
void LegoWorld::RemoveActor(LegoPathActor* p_actor)
|
||||
{
|
||||
LegoPathControllerListCursor cursor(&m_list0x68);
|
||||
LegoPathControllerListCursor cursor(&m_controllerList);
|
||||
LegoPathController* controller;
|
||||
|
||||
while (cursor.Next(controller)) {
|
||||
@ -337,7 +337,7 @@ void LegoWorld::RemoveActor(LegoPathActor* p_actor)
|
||||
// FUNCTION: BETA10 0x100da560
|
||||
MxBool LegoWorld::ActorExists(LegoPathActor* p_actor)
|
||||
{
|
||||
LegoPathControllerListCursor cursor(&m_list0x68);
|
||||
LegoPathControllerListCursor cursor(&m_controllerList);
|
||||
LegoPathController* controller;
|
||||
|
||||
while (cursor.Next(controller)) {
|
||||
@ -353,7 +353,7 @@ MxBool LegoWorld::ActorExists(LegoPathActor* p_actor)
|
||||
// FUNCTION: BETA10 0x100da621
|
||||
void LegoWorld::FUN_1001fda0(LegoAnimPresenter* p_presenter)
|
||||
{
|
||||
LegoPathControllerListCursor cursor(&m_list0x68);
|
||||
LegoPathControllerListCursor cursor(&m_controllerList);
|
||||
LegoPathController* controller;
|
||||
|
||||
while (cursor.Next(controller)) {
|
||||
@ -365,7 +365,7 @@ void LegoWorld::FUN_1001fda0(LegoAnimPresenter* p_presenter)
|
||||
// FUNCTION: BETA10 0x100da6b5
|
||||
void LegoWorld::FUN_1001fe90(LegoAnimPresenter* p_presenter)
|
||||
{
|
||||
LegoPathControllerListCursor cursor(&m_list0x68);
|
||||
LegoPathControllerListCursor cursor(&m_controllerList);
|
||||
LegoPathController* controller;
|
||||
|
||||
while (cursor.Next(controller)) {
|
||||
@ -377,14 +377,14 @@ void LegoWorld::FUN_1001fe90(LegoAnimPresenter* p_presenter)
|
||||
void LegoWorld::AddPath(LegoPathController* p_controller)
|
||||
{
|
||||
p_controller->FUN_10046bb0(this);
|
||||
m_list0x68.Append(p_controller);
|
||||
m_controllerList.Append(p_controller);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10020020
|
||||
// FUNCTION: BETA10 0x100da77c
|
||||
LegoPathBoundary* LegoWorld::FindPathBoundary(const char* p_name)
|
||||
{
|
||||
LegoPathControllerListCursor cursor(&m_list0x68);
|
||||
LegoPathControllerListCursor cursor(&m_controllerList);
|
||||
LegoPathController* controller;
|
||||
|
||||
while (cursor.Next(controller)) {
|
||||
@ -401,7 +401,7 @@ LegoPathBoundary* LegoWorld::FindPathBoundary(const char* p_name)
|
||||
// FUNCTION: LEGO1 0x10020120
|
||||
MxResult LegoWorld::GetCurrPathInfo(LegoPathBoundary** p_boundaries, MxS32& p_numL)
|
||||
{
|
||||
LegoPathControllerListCursor cursor(&m_list0x68);
|
||||
LegoPathControllerListCursor cursor(&m_controllerList);
|
||||
LegoPathController* controller;
|
||||
|
||||
cursor.Next(controller);
|
||||
@ -795,7 +795,7 @@ void LegoWorld::Enable(MxBool p_enable)
|
||||
}
|
||||
}
|
||||
|
||||
LegoPathControllerListCursor pathControllerCursor(&m_list0x68);
|
||||
LegoPathControllerListCursor pathControllerCursor(&m_controllerList);
|
||||
|
||||
while (pathControllerCursor.Next(controller)) {
|
||||
controller->Enable(FALSE);
|
||||
|
||||
@ -195,7 +195,7 @@ MxResult LegoInputManager::GetNavigationKeyStates(MxU32& p_keyFlags)
|
||||
}
|
||||
|
||||
if ((m_keyboardState[DIK_LCONTROL] | m_keyboardState[DIK_RCONTROL]) & 0x80) {
|
||||
keyFlags |= c_bit5;
|
||||
keyFlags |= c_ctrl;
|
||||
}
|
||||
|
||||
p_keyFlags = keyFlags;
|
||||
|
||||
@ -550,7 +550,7 @@ MxResult LegoOmni::Start(MxDSAction* p_dsAction)
|
||||
MxResult result = MxOmni::Start(p_dsAction);
|
||||
this->m_action.SetAtomId(p_dsAction->GetAtomId());
|
||||
this->m_action.SetObjectId(p_dsAction->GetObjectId());
|
||||
this->m_action.SetUnknown24(p_dsAction->GetUnknown24());
|
||||
this->m_action.SetFlags(p_dsAction->GetFlags());
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@ -114,11 +114,11 @@ void LegoPathStruct::FUN_1001bc40(const char* p_name, MxU32 p_data, MxBool p_boo
|
||||
action.SetAtomId(m_atomId);
|
||||
|
||||
if (p_bool) {
|
||||
action.SetUnknown24(-1);
|
||||
action.SetFlags(-1);
|
||||
Start(&action);
|
||||
}
|
||||
else {
|
||||
action.SetUnknown24(-2);
|
||||
action.SetFlags(-2);
|
||||
DeleteObject(action);
|
||||
}
|
||||
}
|
||||
@ -155,7 +155,7 @@ void LegoPathStruct::PlayMusic(MxBool p_direction, MxU32 p_data)
|
||||
|
||||
MxDSAction action;
|
||||
action.SetAtomId(*g_jukeboxScript);
|
||||
action.SetUnknown24(-1);
|
||||
action.SetFlags(-1);
|
||||
|
||||
if (p_data <= sizeOfArray(triggersReff)) {
|
||||
action.SetObjectId(music[triggersReff[p_data - 1][p_direction == FALSE] - 1]);
|
||||
|
||||
@ -198,7 +198,7 @@ LegoChar* LegoAnimPresenter::FUN_10069150(const LegoChar* p_und1)
|
||||
}
|
||||
else {
|
||||
LegoChar buffer[32];
|
||||
sprintf(buffer, "%d", m_action->GetUnknown24());
|
||||
sprintf(buffer, "%d", m_action->GetFlags());
|
||||
str = new LegoChar[strlen(p_und1) + strlen(buffer) + strlen(GetActionObjectName()) + 1];
|
||||
|
||||
if (str != NULL) {
|
||||
|
||||
@ -588,7 +588,7 @@ MxLong Act3::Notify(MxParam& p_param)
|
||||
m_unk0x421e = 0;
|
||||
|
||||
while (--length >= 0) {
|
||||
if (info[length].m_unk0x11 < 0 && info[length].m_boundary != NULL &&
|
||||
if (info[length].m_Downshift < 0 && info[length].m_boundary != NULL &&
|
||||
info[length].m_entity != NULL) {
|
||||
m_unk0x421e++;
|
||||
}
|
||||
|
||||
@ -1494,7 +1494,7 @@ void Infocenter::StopCredits()
|
||||
MxDSAction action;
|
||||
action.SetObjectId(CreditsScript::c_LegoCredits);
|
||||
action.SetAtomId(*g_creditsScript);
|
||||
action.SetUnknown24(-2);
|
||||
action.SetFlags(-2);
|
||||
DeleteObject(action);
|
||||
}
|
||||
|
||||
@ -1519,7 +1519,7 @@ void Infocenter::StopCurrentAction()
|
||||
MxDSAction action;
|
||||
action.SetObjectId(m_currentInfomainScript);
|
||||
action.SetAtomId(*g_infomainScript);
|
||||
action.SetUnknown24(-2);
|
||||
action.SetFlags(-2);
|
||||
DeleteObject(action);
|
||||
m_currentInfomainScript = InfomainScript::c_noneInfomain;
|
||||
}
|
||||
@ -1540,7 +1540,7 @@ void Infocenter::StopBookAnimation()
|
||||
MxDSAction action;
|
||||
action.SetObjectId(SndanimScript::c_BookWig_Flic);
|
||||
action.SetAtomId(*g_sndAnimScript);
|
||||
action.SetUnknown24(-2);
|
||||
action.SetFlags(-2);
|
||||
DeleteObject(action);
|
||||
}
|
||||
|
||||
|
||||
@ -401,7 +401,7 @@ MxLong Isle::HandleControl(LegoControlManagerNotificationParam& p_param)
|
||||
case IsleScript::c_Observe_LCab_Ctl:
|
||||
action.SetAtomId(*g_isleScript);
|
||||
action.SetObjectId(IsleScript::c_Observe_Monkey_Flc);
|
||||
action.SetUnknown24(0);
|
||||
action.SetFlags(0);
|
||||
Start(&action);
|
||||
break;
|
||||
case IsleScript::c_Observe_RCab_Ctl:
|
||||
|
||||
@ -580,7 +580,7 @@ void LegoAct2::Enable(MxBool p_enable)
|
||||
if (m_unk0x1144 != (Act2mainScript::Script) 0) {
|
||||
MxDSAction action;
|
||||
action.SetAtomId(m_atomId);
|
||||
action.SetUnknown24(-2);
|
||||
action.SetFlags(-2);
|
||||
action.SetObjectId(m_unk0x1144);
|
||||
DeleteObject(action);
|
||||
m_unk0x1144 = (Act2mainScript::Script) 0;
|
||||
|
||||
@ -190,7 +190,7 @@ MxLong RegistrationBook::HandleKeyPress(MxU8 p_key)
|
||||
m_name[0][m_unk0x280.m_cursorPos] = m_alphabet[key - 'A']->Clone();
|
||||
|
||||
if (m_name[0][m_unk0x280.m_cursorPos] != NULL) {
|
||||
m_alphabet[key - 'A']->GetAction()->SetUnknown24(m_alphabet[key - 'A']->GetAction()->GetUnknown24() + 1);
|
||||
m_alphabet[key - 'A']->GetAction()->SetFlags(m_alphabet[key - 'A']->GetAction()->GetFlags() + 1);
|
||||
m_name[0][m_unk0x280.m_cursorPos]->Enable(TRUE);
|
||||
m_name[0][m_unk0x280.m_cursorPos]->SetTickleState(MxPresenter::e_repeating);
|
||||
m_name[0][m_unk0x280.m_cursorPos]->SetPosition(m_unk0x280.m_cursorPos * 23 + 343, 121);
|
||||
|
||||
@ -71,7 +71,7 @@ void Score::DeleteScript()
|
||||
MxDSAction action;
|
||||
action.SetObjectId(InfoscorScript::c_iicc31in_PlayWav);
|
||||
action.SetAtomId(*g_infoscorScript);
|
||||
action.SetUnknown24(-2);
|
||||
action.SetFlags(-2);
|
||||
DeleteObject(action);
|
||||
m_state->SetTutorialFlag(FALSE);
|
||||
}
|
||||
|
||||
@ -13,7 +13,7 @@ DECOMP_SIZE_ASSERT(LegoLOD, 0x20)
|
||||
DECOMP_SIZE_ASSERT(LegoLOD::Mesh, 0x08)
|
||||
|
||||
// GLOBAL: LEGO1 0x101013d4
|
||||
LPDIRECT3DRMMATERIAL g_unk0x101013d4 = NULL;
|
||||
LPDIRECT3DRMMATERIAL g_d3d_material = NULL;
|
||||
|
||||
// GLOBAL: LEGO1 0x101013dc
|
||||
const char* g_unk0x101013dc = "inh";
|
||||
@ -24,8 +24,8 @@ inline BOOL GetMeshData(IDirect3DRMMesh*& mesh, D3DRMGROUPINDEX& index, Tgl::Mes
|
||||
// FUNCTION: LEGO1 0x100aa380
|
||||
LegoLOD::LegoLOD(Tgl::Renderer* p_renderer) : ViewLOD(p_renderer)
|
||||
{
|
||||
if (g_unk0x101013d4 == NULL) {
|
||||
GetD3DRM(p_renderer)->CreateMaterial(10.0, &g_unk0x101013d4);
|
||||
if (g_d3d_material == NULL) {
|
||||
GetD3DRM(p_renderer)->CreateMaterial(10.0, &g_d3d_material);
|
||||
}
|
||||
|
||||
m_melems = NULL;
|
||||
@ -211,7 +211,7 @@ LegoResult LegoLOD::Read(Tgl::Renderer* p_renderer, LegoTextureContainer* p_text
|
||||
m_melems[meshIndex].m_tglMesh->SetShadingModel(shadingModel);
|
||||
|
||||
if (textureName != NULL) {
|
||||
if (mesh->GetUnknown0x21()) {
|
||||
if (mesh->GetUseColorAlias()) {
|
||||
LegoROI::FUN_100a9cf0(textureName, paletteEntries, sizeOfArray(paletteEntries));
|
||||
}
|
||||
|
||||
@ -231,8 +231,8 @@ LegoResult LegoLOD::Read(Tgl::Renderer* p_renderer, LegoTextureContainer* p_text
|
||||
LegoFloat blue = 1.0F;
|
||||
LegoFloat alpha = 0.0F;
|
||||
|
||||
if (mesh->GetUnknown0x21()) {
|
||||
LegoROI::FUN_100a9bf0(materialName, red, green, blue, alpha);
|
||||
if (mesh->GetUseColorAlias()) {
|
||||
LegoROI::GetColorFromGlobalHandlerOrAlias(materialName, red, green, blue, alpha);
|
||||
}
|
||||
else {
|
||||
red = mesh->GetColor().GetRed() / 255.0;
|
||||
@ -248,7 +248,7 @@ LegoResult LegoLOD::Read(Tgl::Renderer* p_renderer, LegoTextureContainer* p_text
|
||||
IDirect3DRMMesh* mesh;
|
||||
D3DRMGROUPINDEX index;
|
||||
GetMeshData(mesh, index, m_melems[meshIndex].m_tglMesh);
|
||||
mesh->SetGroupMaterial(index, g_unk0x101013d4);
|
||||
mesh->SetGroupMaterial(index, g_d3d_material);
|
||||
}
|
||||
|
||||
if (mesh != NULL) {
|
||||
|
||||
@ -52,7 +52,7 @@ const char* g_unk0x10101380[] = {"bike", "moto", "haus", NULL};
|
||||
const char* g_unk0x10101390[] = {"rcuser", "jsuser", "dunebugy", "chtrblad", "chtrbody", "chtrshld", NULL};
|
||||
|
||||
// GLOBAL: LEGO1 0x101013ac
|
||||
ROIHandler g_unk0x101013ac = NULL;
|
||||
ROIHandler g_roi_handler = NULL;
|
||||
|
||||
// GLOBAL: LEGO1 0x101013b0
|
||||
TextureHandler g_unk0x101013b0 = NULL;
|
||||
@ -169,11 +169,11 @@ LegoResult LegoROI::Read(
|
||||
textureName = NULL;
|
||||
}
|
||||
|
||||
if (p_storage->Read(&m_unk0x100, sizeof(m_unk0x100)) != SUCCESS) {
|
||||
if (p_storage->Read(&m_defined_elsewhere, sizeof(m_defined_elsewhere)) != SUCCESS) {
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (m_unk0x100) {
|
||||
if (m_defined_elsewhere) {
|
||||
for (roiLength = strlen(m_name); roiLength; roiLength--) {
|
||||
if (m_name[roiLength - 1] < '0' || m_name[roiLength - 1] > '9') {
|
||||
break;
|
||||
@ -188,7 +188,7 @@ LegoResult LegoROI::Read(
|
||||
delete[] roiName;
|
||||
|
||||
if (lodList == NULL) {
|
||||
goto done;
|
||||
goto done; // error
|
||||
}
|
||||
}
|
||||
else {
|
||||
@ -307,7 +307,7 @@ LegoResult LegoROI::Read(
|
||||
LegoFloat green = 0.0F;
|
||||
LegoFloat blue = 1.0F;
|
||||
LegoFloat alpha = 0.0F;
|
||||
FUN_100a9bf0(textureName, red, green, blue, alpha);
|
||||
GetColorFromGlobalHandlerOrAlias(textureName, red, green, blue, alpha);
|
||||
FUN_100a9170(red, green, blue, alpha);
|
||||
}
|
||||
}
|
||||
@ -755,15 +755,15 @@ void TimeROI::FUN_100a9b40(Matrix4& p_matrix, LegoTime p_time)
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100a9bf0
|
||||
LegoBool LegoROI::FUN_100a9bf0(const LegoChar* p_param, float& p_red, float& p_green, float& p_blue, float& p_alpha)
|
||||
LegoBool LegoROI::GetColorFromGlobalHandlerOrAlias(const LegoChar* p_param, float& p_red, float& p_green, float& p_blue, float& p_alpha)
|
||||
{
|
||||
if (p_param == NULL) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (g_unk0x101013ac) {
|
||||
if (g_roi_handler) {
|
||||
char buf[32];
|
||||
if (g_unk0x101013ac(p_param, buf, sizeof(buf))) {
|
||||
if (g_roi_handler(p_param, buf, sizeof(buf))) {
|
||||
p_param = buf;
|
||||
}
|
||||
}
|
||||
@ -804,9 +804,9 @@ LegoBool LegoROI::FUN_100a9cf0(const LegoChar* p_param, unsigned char* paletteEn
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100a9d30
|
||||
void LegoROI::FUN_100a9d30(ROIHandler p_func)
|
||||
void LegoROI::SetGlobalROIHandler(ROIHandler p_func)
|
||||
{
|
||||
g_unk0x101013ac = p_func;
|
||||
g_roi_handler = p_func;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100a9d40
|
||||
|
||||
@ -54,8 +54,8 @@ class LegoROI : public ViewROI {
|
||||
static LegoResult FUN_100a8cb0(LegoAnimNodeData* p_data, LegoTime p_time, Matrix4& p_matrix);
|
||||
static void FUN_100a81b0(const LegoChar* p_error, const LegoChar* p_name);
|
||||
static void configureLegoROI(int p_roi);
|
||||
static void FUN_100a9d30(ROIHandler p_func);
|
||||
static LegoBool FUN_100a9bf0(const LegoChar* p_param, float& p_red, float& p_green, float& p_blue, float& p_alpha);
|
||||
static void SetGlobalROIHandler(ROIHandler p_func);
|
||||
static LegoBool GetColorFromGlobalHandlerOrAlias(const LegoChar* p_param, float& p_red, float& p_green, float& p_blue, float& p_alpha);
|
||||
static LegoBool ColorAliasLookup(
|
||||
const LegoChar* p_param,
|
||||
float& p_red,
|
||||
@ -86,7 +86,7 @@ class LegoROI : public ViewROI {
|
||||
private:
|
||||
LegoChar* m_name; // 0xe4
|
||||
BoundingSphere m_sphere; // 0xe8
|
||||
undefined m_unk0x100; // 0x100
|
||||
LegoU8 m_defined_elsewhere; // 0x100
|
||||
LegoEntity* m_entity; // 0x104
|
||||
};
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ LegoMesh::LegoMesh()
|
||||
m_unk0x0d = 0;
|
||||
m_unk0x10 = NULL;
|
||||
m_unk0x20 = 0;
|
||||
m_unk0x21 = FALSE;
|
||||
m_use_color_alias = FALSE;
|
||||
m_materialName = NULL;
|
||||
}
|
||||
|
||||
@ -55,7 +55,7 @@ LegoResult LegoMesh::Read(LegoStorage* p_storage)
|
||||
if ((result = p_storage->Read(&m_unk0x20, sizeof(m_unk0x20))) != SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
if ((result = p_storage->Read(&m_unk0x21, sizeof(m_unk0x21))) != SUCCESS) {
|
||||
if ((result = p_storage->Read(&m_use_color_alias, sizeof(m_use_color_alias))) != SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@ -56,7 +56,7 @@ class LegoMesh {
|
||||
LegoU8 GetUnknown0x0d() { return m_unk0x0d; }
|
||||
const LegoChar* GetTextureName() { return m_textureName; }
|
||||
const LegoChar* GetMaterialName() { return m_materialName; }
|
||||
LegoBool GetUnknown0x21() { return m_unk0x21; }
|
||||
LegoBool GetUseColorAlias() { return m_use_color_alias; }
|
||||
LegoResult Read(LegoStorage* p_storage);
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100d3840
|
||||
@ -72,7 +72,7 @@ class LegoMesh {
|
||||
LegoChar* m_textureName; // 0x18
|
||||
LegoChar* m_materialName; // 0x1c
|
||||
undefined m_unk0x20; // 0x20 - unused
|
||||
LegoBool m_unk0x21; // 0x21
|
||||
LegoBool m_use_color_alias; // 0x21
|
||||
};
|
||||
|
||||
#endif // __LEGOMESH_H
|
||||
|
||||
@ -26,7 +26,7 @@ class MxActionNotificationParam : public MxNotificationParam {
|
||||
|
||||
m_action->SetAtomId(oldAction->GetAtomId());
|
||||
m_action->SetObjectId(oldAction->GetObjectId());
|
||||
m_action->SetUnknown24(oldAction->GetUnknown24());
|
||||
m_action->SetFlags(oldAction->GetFlags());
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10051050
|
||||
|
||||
@ -88,7 +88,7 @@ class MxDSObject : public MxCore {
|
||||
// FUNCTION: BETA10 0x10017940
|
||||
const MxAtomId& GetAtomId() { return m_atomId; }
|
||||
|
||||
MxS16 GetUnknown24() { return m_unk0x24; }
|
||||
MxS16 GetFlags() { return m_flags; }
|
||||
MxPresenter* GetUnknown28() { return m_unk0x28; }
|
||||
|
||||
void SetType(Type p_type) { m_type = p_type; }
|
||||
@ -97,7 +97,7 @@ class MxDSObject : public MxCore {
|
||||
void SetObjectId(MxU32 p_objectId) { m_objectId = p_objectId; }
|
||||
|
||||
// FUNCTION: BETA10 0x10039570
|
||||
void SetUnknown24(MxS16 p_unk0x24) { m_unk0x24 = p_unk0x24; }
|
||||
void SetFlags(MxS16 p_unk0x24) { m_flags = p_unk0x24; }
|
||||
|
||||
void SetUnknown28(MxPresenter* p_unk0x28) { m_unk0x28 = p_unk0x28; }
|
||||
|
||||
@ -115,7 +115,7 @@ class MxDSObject : public MxCore {
|
||||
char* m_objectName; // 0x18
|
||||
MxU32 m_objectId; // 0x1c
|
||||
MxAtomId m_atomId; // 0x20
|
||||
MxS16 m_unk0x24; // 0x24
|
||||
MxS16 m_flags; // 0x24
|
||||
MxPresenter* m_unk0x28; // 0x28
|
||||
};
|
||||
|
||||
|
||||
@ -256,9 +256,9 @@ void MxDSAction::AppendExtra(MxU16 p_extraLength, const char* p_extraData)
|
||||
|
||||
// FUNCTION: LEGO1 0x100adf70
|
||||
// FUNCTION: BETA10 0x1012ba6a
|
||||
void MxDSAction::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
||||
void MxDSAction::Deserialize(MxU8*& p_source, MxS16 p_flags)
|
||||
{
|
||||
MxDSObject::Deserialize(p_source, p_unk0x24);
|
||||
MxDSObject::Deserialize(p_source, p_flags);
|
||||
|
||||
// clang-format off
|
||||
m_flags = *( MxU32*) p_source; p_source += sizeof(m_flags);
|
||||
|
||||
@ -129,9 +129,9 @@ MxU32 MxDSMediaAction::GetSizeOnDisk()
|
||||
|
||||
// FUNCTION: LEGO1 0x100c8f60
|
||||
// FUNCTION: BETA10 0x1015cc93
|
||||
void MxDSMediaAction::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
||||
void MxDSMediaAction::Deserialize(MxU8*& p_source, MxS16 p_flags)
|
||||
{
|
||||
MxDSAction::Deserialize(p_source, p_unk0x24);
|
||||
MxDSAction::Deserialize(p_source, p_flags);
|
||||
|
||||
CopyMediaSrcPath((char*) p_source);
|
||||
p_source += strlen(m_mediaSrcPath) + 1;
|
||||
|
||||
@ -149,11 +149,11 @@ MxU32 MxDSMultiAction::GetSizeOnDisk()
|
||||
|
||||
// FUNCTION: LEGO1 0x100ca7b0
|
||||
// FUNCTION: BETA10 0x10159b79
|
||||
void MxDSMultiAction::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
||||
void MxDSMultiAction::Deserialize(MxU8*& p_source, MxS16 p_flags)
|
||||
{
|
||||
MxDSAction::Deserialize(p_source, p_unk0x24);
|
||||
MxDSAction::Deserialize(p_source, p_flags);
|
||||
|
||||
MxU32 extraFlag = *(MxU32*) (p_source + 4) & 1;
|
||||
MxU32 length = *(MxU32*) (p_source + 4) & 1;
|
||||
p_source += 12;
|
||||
|
||||
MxU32 count = *(MxU32*) p_source;
|
||||
@ -161,17 +161,17 @@ void MxDSMultiAction::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
||||
|
||||
if (count) {
|
||||
while (count--) {
|
||||
MxU32 extraFlag = *(MxU32*) (p_source + 4) & 1;
|
||||
MxU32 length = *(MxU32*) (p_source + 4) & 1;
|
||||
p_source += 8;
|
||||
|
||||
MxDSAction* action = (MxDSAction*) DeserializeDSObjectDispatch(p_source, p_unk0x24);
|
||||
p_source += extraFlag;
|
||||
MxDSAction* action = (MxDSAction*) DeserializeDSObjectDispatch(p_source, p_flags);
|
||||
p_source += length;
|
||||
|
||||
m_actionList->Append(action);
|
||||
}
|
||||
}
|
||||
|
||||
p_source += extraFlag;
|
||||
p_source += length;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100ca8c0
|
||||
|
||||
@ -29,7 +29,7 @@ MxDSObject::MxDSObject()
|
||||
m_unk0x14 = 0;
|
||||
m_objectName = NULL;
|
||||
m_objectId = -1;
|
||||
m_unk0x24 = -1;
|
||||
m_flags = -1;
|
||||
m_unk0x28 = NULL;
|
||||
}
|
||||
|
||||
@ -49,7 +49,7 @@ void MxDSObject::CopyFrom(MxDSObject& p_dsObject)
|
||||
m_unk0x14 = p_dsObject.m_unk0x14;
|
||||
SetObjectName(p_dsObject.m_objectName);
|
||||
m_objectId = p_dsObject.m_objectId;
|
||||
m_unk0x24 = p_dsObject.m_unk0x24;
|
||||
m_flags = p_dsObject.m_flags;
|
||||
m_atomId = p_dsObject.m_atomId;
|
||||
m_unk0x28 = p_dsObject.m_unk0x28;
|
||||
}
|
||||
@ -156,7 +156,7 @@ MxU32 MxDSObject::GetSizeOnDisk()
|
||||
|
||||
// FUNCTION: LEGO1 0x100bfa20
|
||||
// FUNCTION: BETA10 0x10147d73
|
||||
void MxDSObject::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
||||
void MxDSObject::Deserialize(MxU8*& p_source, MxS16 p_flags)
|
||||
{
|
||||
SetSourceName((char*) p_source);
|
||||
p_source += strlen(m_sourceName) + 1;
|
||||
@ -170,7 +170,7 @@ void MxDSObject::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
||||
m_objectId = *(MxU32*) p_source;
|
||||
p_source += sizeof(m_objectId);
|
||||
|
||||
m_unk0x24 = p_unk0x24;
|
||||
m_flags = p_flags;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100bfa80
|
||||
@ -188,10 +188,10 @@ MxDSObject* MxDSObjectList::FindInternal(MxDSObject* p_action, MxBool p_delete)
|
||||
for (iterator it = begin(); it != end(); it++) {
|
||||
#endif
|
||||
if (p_action->GetObjectId() == -1 || p_action->GetObjectId() == (*it)->GetObjectId()) {
|
||||
if (p_action->GetUnknown24() == -2 || p_action->GetUnknown24() == -3 ||
|
||||
p_action->GetUnknown24() == (*it)->GetUnknown24()) {
|
||||
if (p_action->GetFlags() == -2 || p_action->GetFlags() == -3 ||
|
||||
p_action->GetFlags() == (*it)->GetFlags()) {
|
||||
found = *it;
|
||||
if (p_action->GetUnknown24() != -3) {
|
||||
if (p_action->GetFlags() != -3) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -92,13 +92,13 @@ MxU32 MxDSSelectAction::GetSizeOnDisk()
|
||||
|
||||
// FUNCTION: LEGO1 0x100cbf60
|
||||
// FUNCTION: BETA10 0x1015aa30
|
||||
void MxDSSelectAction::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
||||
void MxDSSelectAction::Deserialize(MxU8*& p_source, MxS16 p_flags)
|
||||
{
|
||||
MxDSAction* action = NULL;
|
||||
MxString string;
|
||||
MxDSAction::Deserialize(p_source, p_unk0x24);
|
||||
MxDSAction::Deserialize(p_source, p_flags);
|
||||
|
||||
MxU32 extraFlag = *(MxU32*) (p_source + 4) & 1;
|
||||
MxU32 length = *(MxU32*) (p_source + 4) & 1;
|
||||
p_source += 12;
|
||||
|
||||
m_unk0x9c = (char*) p_source;
|
||||
@ -135,10 +135,10 @@ void MxDSSelectAction::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
||||
}
|
||||
|
||||
for (i = 0; i < count; i++) {
|
||||
MxU32 extraFlag = *(MxU32*) (p_source + 4) & 1;
|
||||
MxU32 length = *(MxU32*) (p_source + 4) & 1;
|
||||
p_source += 8;
|
||||
|
||||
action = (MxDSAction*) DeserializeDSObjectDispatch(p_source, p_unk0x24);
|
||||
action = (MxDSAction*) DeserializeDSObjectDispatch(p_source, p_flags);
|
||||
|
||||
if (index == i) {
|
||||
m_actionList->Append(action);
|
||||
@ -147,9 +147,9 @@ void MxDSSelectAction::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
||||
delete action;
|
||||
}
|
||||
|
||||
p_source += extraFlag;
|
||||
p_source += length;
|
||||
}
|
||||
}
|
||||
|
||||
p_source += extraFlag;
|
||||
p_source += length;
|
||||
}
|
||||
|
||||
@ -58,9 +58,9 @@ MxDSAction* MxDSSound::Clone()
|
||||
|
||||
// FUNCTION: LEGO1 0x100c95a0
|
||||
// FUNCTION: BETA10 0x1015d272
|
||||
void MxDSSound::Deserialize(MxU8*& p_source, MxS16 p_unk0x24)
|
||||
void MxDSSound::Deserialize(MxU8*& p_source, MxS16 p_flags)
|
||||
{
|
||||
MxDSMediaAction::Deserialize(p_source, p_unk0x24);
|
||||
MxDSMediaAction::Deserialize(p_source, p_flags);
|
||||
m_volume = *(MxS32*) p_source;
|
||||
p_source += sizeof(m_volume);
|
||||
}
|
||||
|
||||
@ -118,7 +118,7 @@ MxResult MxMediaPresenter::StartAction(MxStreamController* p_controller, MxDSAct
|
||||
m_subscriber = new MxDSSubscriber;
|
||||
|
||||
if (!m_subscriber ||
|
||||
m_subscriber->Create(p_controller, p_action->GetObjectId(), p_action->GetUnknown24()) != SUCCESS) {
|
||||
m_subscriber->Create(p_controller, p_action->GetObjectId(), p_action->GetFlags()) != SUCCESS) {
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
|
||||
@ -184,7 +184,7 @@ void MxOmni::Destroy()
|
||||
{
|
||||
MxDSAction action;
|
||||
action.SetObjectId(-1);
|
||||
action.SetUnknown24(-2);
|
||||
action.SetFlags(-2);
|
||||
DeleteObject(action);
|
||||
}
|
||||
|
||||
|
||||
@ -280,7 +280,7 @@ MxDSStreamingAction* MxDiskStreamController::FUN_100c7db0()
|
||||
MxDSStreamingAction* streamingAction = (MxDSStreamingAction*) *it2;
|
||||
|
||||
if (streamingAction->GetObjectId() == data->GetObjectId() &&
|
||||
streamingAction->GetUnknown24() == data->GetUnknown24() &&
|
||||
streamingAction->GetFlags() == data->GetUnknown24() &&
|
||||
streamingAction->GetBufferOffset() == data->GetData()) {
|
||||
m_nextActionList.erase(it);
|
||||
|
||||
|
||||
@ -171,7 +171,7 @@ MxResult MxDSBuffer::CreateObject(
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
MxCore* header = ReadChunk(this, p_data, p_action->GetUnknown24());
|
||||
MxCore* header = ReadChunk(this, p_data, p_action->GetFlags());
|
||||
|
||||
if (header == NULL) {
|
||||
return FAILURE;
|
||||
@ -308,7 +308,7 @@ MxResult MxDSBuffer::ParseChunk(
|
||||
}
|
||||
|
||||
if (p_header) {
|
||||
if (p_header->SendChunk(p_controller->GetSubscriberList(), TRUE, p_action->GetUnknown24()) != SUCCESS) {
|
||||
if (p_header->SendChunk(p_controller->GetSubscriberList(), TRUE, p_action->GetFlags()) != SUCCESS) {
|
||||
delete p_header;
|
||||
}
|
||||
}
|
||||
|
||||
@ -143,7 +143,7 @@ MxDSSubscriber* MxDSSubscriberList::Find(MxDSObject* p_object)
|
||||
{
|
||||
for (iterator it = begin(); it != end(); it++) {
|
||||
if (p_object->GetObjectId() == -1 || p_object->GetObjectId() == (*it)->GetObjectId()) {
|
||||
if (p_object->GetUnknown24() == -2 || p_object->GetUnknown24() == (*it)->GetUnknown48()) {
|
||||
if (p_object->GetFlags() == -2 || p_object->GetFlags() == (*it)->GetUnknown48()) {
|
||||
return *it;
|
||||
}
|
||||
}
|
||||
|
||||
@ -41,13 +41,13 @@ MxResult MxRAMStreamController::VTable0x20(MxDSAction* p_action)
|
||||
MxS32 unk0x24 = 0;
|
||||
MxResult result = FAILURE;
|
||||
|
||||
if (p_action->GetUnknown24() == -1) {
|
||||
p_action->SetUnknown24(-3);
|
||||
if (p_action->GetFlags() == -1) {
|
||||
p_action->SetFlags(-3);
|
||||
MxDSObject* action = m_unk0x54.Find(p_action);
|
||||
if (action != NULL) {
|
||||
unk0x24 = action->GetUnknown24() + 1;
|
||||
unk0x24 = action->GetFlags() + 1;
|
||||
}
|
||||
p_action->SetUnknown24(unk0x24);
|
||||
p_action->SetFlags(unk0x24);
|
||||
}
|
||||
else {
|
||||
if (m_unk0x54.Find(p_action)) {
|
||||
|
||||
@ -127,7 +127,7 @@ MxResult MxStreamController::VTable0x24(MxDSAction* p_action)
|
||||
return FAILURE;
|
||||
}
|
||||
else {
|
||||
p_action->SetUnknown24(m_action0x60->GetUnknown24());
|
||||
p_action->SetFlags(m_action0x60->GetFlags());
|
||||
p_action->SetObjectId(m_action0x60->GetObjectId());
|
||||
return FUN_100c1f00(m_action0x60);
|
||||
}
|
||||
@ -138,7 +138,7 @@ MxResult MxStreamController::VTable0x24(MxDSAction* p_action)
|
||||
MxResult MxStreamController::FUN_100c1800(MxDSAction* p_action, MxU32 p_val)
|
||||
{
|
||||
MxNextActionDataStart* dataActionStart =
|
||||
new MxNextActionDataStart(p_action->GetObjectId(), p_action->GetUnknown24(), p_val);
|
||||
new MxNextActionDataStart(p_action->GetObjectId(), p_action->GetFlags(), p_val);
|
||||
if (dataActionStart == NULL) {
|
||||
return FAILURE;
|
||||
}
|
||||
@ -151,7 +151,7 @@ MxResult MxStreamController::FUN_100c1800(MxDSAction* p_action, MxU32 p_val)
|
||||
// FUNCTION: BETA10 0x1014eb04
|
||||
MxResult MxStreamController::FUN_100c1a00(MxDSAction* p_action, MxU32 p_offset)
|
||||
{
|
||||
if (p_action->GetUnknown24() == -1) {
|
||||
if (p_action->GetFlags() == -1) {
|
||||
MxS16 newUnknown24 = -1;
|
||||
|
||||
// These loops might be a template function in the list classes
|
||||
@ -159,7 +159,7 @@ MxResult MxStreamController::FUN_100c1a00(MxDSAction* p_action, MxU32 p_offset)
|
||||
MxDSObject* action = *it;
|
||||
|
||||
if (action->GetObjectId() == p_action->GetObjectId()) {
|
||||
newUnknown24 = Max(newUnknown24, action->GetUnknown24());
|
||||
newUnknown24 = Max(newUnknown24, action->GetFlags());
|
||||
}
|
||||
}
|
||||
|
||||
@ -168,7 +168,7 @@ MxResult MxStreamController::FUN_100c1a00(MxDSAction* p_action, MxU32 p_offset)
|
||||
MxDSObject* action = *it;
|
||||
|
||||
if (action->GetObjectId() == p_action->GetObjectId()) {
|
||||
newUnknown24 = Max(newUnknown24, action->GetUnknown24());
|
||||
newUnknown24 = Max(newUnknown24, action->GetFlags());
|
||||
}
|
||||
}
|
||||
|
||||
@ -183,7 +183,7 @@ MxResult MxStreamController::FUN_100c1a00(MxDSAction* p_action, MxU32 p_offset)
|
||||
}
|
||||
}
|
||||
|
||||
p_action->SetUnknown24(newUnknown24 + 1);
|
||||
p_action->SetFlags(newUnknown24 + 1);
|
||||
}
|
||||
else {
|
||||
if (m_unk0x3c.Find(p_action)) {
|
||||
@ -230,7 +230,7 @@ MxResult MxStreamController::VTable0x30(MxDSAction* p_action)
|
||||
MxDSObject* action = m_unk0x3c.FindAndErase(p_action);
|
||||
|
||||
if (action != NULL) {
|
||||
MxNextActionDataStart* data = m_nextActionList.FindAndErase(action->GetObjectId(), action->GetUnknown24());
|
||||
MxNextActionDataStart* data = m_nextActionList.FindAndErase(action->GetObjectId(), action->GetFlags());
|
||||
delete action;
|
||||
delete data;
|
||||
result = SUCCESS;
|
||||
@ -288,7 +288,7 @@ MxResult MxStreamController::FUN_100c1f00(MxDSAction* p_action)
|
||||
chunk->SetChunkFlags(DS_CHUNK_BIT3);
|
||||
chunk->SetObjectId(objectId);
|
||||
|
||||
if (chunk->SendChunk(m_subscribers, FALSE, p_action->GetUnknown24()) != SUCCESS) {
|
||||
if (chunk->SendChunk(m_subscribers, FALSE, p_action->GetFlags()) != SUCCESS) {
|
||||
delete chunk;
|
||||
}
|
||||
|
||||
@ -311,7 +311,7 @@ MxResult MxStreamController::FUN_100c1f00(MxDSAction* p_action)
|
||||
// FUNCTION: BETA10 0x1014f37d
|
||||
MxNextActionDataStart* MxStreamController::FindNextActionDataStartFromStreamingAction(MxDSStreamingAction* p_action)
|
||||
{
|
||||
return m_nextActionList.Find(p_action->GetObjectId(), p_action->GetUnknown24());
|
||||
return m_nextActionList.Find(p_action->GetObjectId(), p_action->GetFlags());
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100c20d0
|
||||
|
||||
@ -98,7 +98,7 @@ MxStreamController* MxStreamer::Open(const char* p_name, MxU16 p_lookupType)
|
||||
MxLong MxStreamer::Close(const char* p_name)
|
||||
{
|
||||
MxDSAction ds;
|
||||
ds.SetUnknown24(-2);
|
||||
ds.SetFlags(-2);
|
||||
|
||||
for (list<MxStreamController*>::iterator it = m_controllers.begin(); it != m_controllers.end(); it++) {
|
||||
MxStreamController* c = *it;
|
||||
@ -192,10 +192,10 @@ MxResult MxStreamer::DeleteObject(MxDSAction* p_dsAction)
|
||||
if (p_dsAction) {
|
||||
tempAction.SetObjectId(p_dsAction->GetObjectId());
|
||||
tempAction.SetAtomId(p_dsAction->GetAtomId());
|
||||
tempAction.SetUnknown24(p_dsAction->GetUnknown24());
|
||||
tempAction.SetFlags(p_dsAction->GetFlags());
|
||||
}
|
||||
else {
|
||||
tempAction.SetUnknown24(-2);
|
||||
tempAction.SetFlags(-2);
|
||||
}
|
||||
|
||||
MxResult result = FAILURE;
|
||||
@ -233,7 +233,7 @@ MxLong MxStreamer::Notify(MxParam& p_param)
|
||||
MxStreamController* c = s.GetController();
|
||||
|
||||
MxDSAction ds;
|
||||
ds.SetUnknown24(-2);
|
||||
ds.SetFlags(-2);
|
||||
|
||||
if (c->IsStoped(&ds)) {
|
||||
delete c;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user