BLADERUNNER: _playerActorIdle should affect McCoy only
Should be set or cleared only when McCoy is the actor who is walking and affect only McCoy
This commit is contained in:
parent
2287a4f607
commit
f3cdbd2ea9
3 changed files with 85 additions and 0 deletions
|
@ -493,9 +493,18 @@ bool Actor::loopWalk(const Vector3 &destination, int proximity, bool interruptib
|
|||
_vm->playerGainsControl();
|
||||
}
|
||||
|
||||
#if BLADERUNNER_ORIGINAL_BUGS
|
||||
if (!wasInterrupted && proximity == 0 && !_vm->_playerActorIdle) {
|
||||
setAtXYZ(destination, _facing, true, false, false);
|
||||
}
|
||||
#else
|
||||
if (!wasInterrupted && proximity == 0
|
||||
&& (_id == kActorMcCoy && !_vm->_playerActorIdle)
|
||||
&& !isRetired()
|
||||
) {
|
||||
setAtXYZ(destination, _facing, true, false, false);
|
||||
}
|
||||
#endif // BLADERUNNER_ORIGINAL_BUGS
|
||||
|
||||
if (_id != kActorMcCoy) {
|
||||
_vm->_mouse->enable();
|
||||
|
|
|
@ -353,8 +353,13 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
|
|||
} else {
|
||||
Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie);
|
||||
}
|
||||
#if BLADERUNNER_ORIGINAL_BUGS
|
||||
Delay(3000);
|
||||
Actor_Retired_Here(kActorMcCoy, 12, 48, true, kActorClovis);
|
||||
#else
|
||||
Actor_Retired_Here(kActorMcCoy, 12, 48, true, kActorClovis);
|
||||
Delay(3000);
|
||||
#endif // BLADERUNNER_ORIGINAL_BUGS
|
||||
return true;
|
||||
|
||||
case kGoalClovisStartChapter5:
|
||||
|
|
|
@ -489,15 +489,29 @@ bool ScriptBase::Loop_Actor_Walk_To_Actor(int actorId, int otherActorId, int pro
|
|||
run = true;
|
||||
}
|
||||
|
||||
#if BLADERUNNER_ORIGINAL_BUGS
|
||||
_vm->_playerActorIdle = false;
|
||||
#else
|
||||
if (actorId == kActorMcCoy) {
|
||||
_vm->_playerActorIdle = false;
|
||||
}
|
||||
#endif // BLADERUNNER_ORIGINAL_BUGS
|
||||
|
||||
bool isRunning;
|
||||
bool result = _vm->_actors[actorId]->loopWalkToActor(otherActorId, proximity, interruptible, run, true, &isRunning);
|
||||
|
||||
#if BLADERUNNER_ORIGINAL_BUGS
|
||||
if (_vm->_playerActorIdle) {
|
||||
result = true;
|
||||
_vm->_playerActorIdle = false;
|
||||
}
|
||||
#else
|
||||
if (actorId == kActorMcCoy && _vm->_playerActorIdle) {
|
||||
result = true;
|
||||
_vm->_playerActorIdle = false;
|
||||
}
|
||||
#endif // BLADERUNNER_ORIGINAL_BUGS
|
||||
|
||||
if (isRunning) {
|
||||
_vm->_runningActorId = actorId;
|
||||
}
|
||||
|
@ -514,15 +528,29 @@ bool ScriptBase::Loop_Actor_Walk_To_Item(int actorId, int itemId, int proximity,
|
|||
run = true;
|
||||
}
|
||||
|
||||
#if BLADERUNNER_ORIGINAL_BUGS
|
||||
_vm->_playerActorIdle = false;
|
||||
#else
|
||||
if (actorId == kActorMcCoy) {
|
||||
_vm->_playerActorIdle = false;
|
||||
}
|
||||
#endif // BLADERUNNER_ORIGINAL_BUGS
|
||||
|
||||
bool isRunning;
|
||||
bool result = _vm->_actors[actorId]->loopWalkToItem(itemId, proximity, interruptible, run, true, &isRunning);
|
||||
|
||||
#if BLADERUNNER_ORIGINAL_BUGS
|
||||
if (_vm->_playerActorIdle) {
|
||||
result = true;
|
||||
_vm->_playerActorIdle = false;
|
||||
}
|
||||
#else
|
||||
if (actorId == kActorMcCoy && _vm->_playerActorIdle) {
|
||||
result = true;
|
||||
_vm->_playerActorIdle = false;
|
||||
}
|
||||
#endif // BLADERUNNER_ORIGINAL_BUGS
|
||||
|
||||
if (isRunning) {
|
||||
_vm->_runningActorId = actorId;
|
||||
}
|
||||
|
@ -539,15 +567,29 @@ bool ScriptBase::Loop_Actor_Walk_To_Scene_Object(int actorId, const char *object
|
|||
run = true;
|
||||
}
|
||||
|
||||
#if BLADERUNNER_ORIGINAL_BUGS
|
||||
_vm->_playerActorIdle = false;
|
||||
#else
|
||||
if (actorId == kActorMcCoy) {
|
||||
_vm->_playerActorIdle = false;
|
||||
}
|
||||
#endif // BLADERUNNER_ORIGINAL_BUGS
|
||||
|
||||
bool isRunning;
|
||||
bool result = _vm->_actors[actorId]->loopWalkToSceneObject(objectName, proximity, interruptible, run, true, &isRunning);
|
||||
|
||||
#if BLADERUNNER_ORIGINAL_BUGS
|
||||
if (_vm->_playerActorIdle) {
|
||||
result = true;
|
||||
_vm->_playerActorIdle = false;
|
||||
}
|
||||
#else
|
||||
if (actorId == kActorMcCoy && _vm->_playerActorIdle) {
|
||||
result = true;
|
||||
_vm->_playerActorIdle = false;
|
||||
}
|
||||
#endif // BLADERUNNER_ORIGINAL_BUGS
|
||||
|
||||
if (isRunning) {
|
||||
_vm->_runningActorId = actorId;
|
||||
}
|
||||
|
@ -564,15 +606,29 @@ bool ScriptBase::Loop_Actor_Walk_To_Waypoint(int actorId, int waypointId, int pr
|
|||
run = true;
|
||||
}
|
||||
|
||||
#if BLADERUNNER_ORIGINAL_BUGS
|
||||
_vm->_playerActorIdle = false;
|
||||
#else
|
||||
if (actorId == kActorMcCoy) {
|
||||
_vm->_playerActorIdle = false;
|
||||
}
|
||||
#endif // BLADERUNNER_ORIGINAL_BUGS
|
||||
|
||||
bool isRunning;
|
||||
bool result = _vm->_actors[actorId]->loopWalkToWaypoint(waypointId, proximity, interruptible, run, true, &isRunning);
|
||||
|
||||
#if BLADERUNNER_ORIGINAL_BUGS
|
||||
if (_vm->_playerActorIdle) {
|
||||
result = true;
|
||||
_vm->_playerActorIdle = false;
|
||||
}
|
||||
#else
|
||||
if (actorId == kActorMcCoy && _vm->_playerActorIdle) {
|
||||
result = true;
|
||||
_vm->_playerActorIdle = false;
|
||||
}
|
||||
#endif // BLADERUNNER_ORIGINAL_BUGS
|
||||
|
||||
if (isRunning) {
|
||||
_vm->_runningActorId = actorId;
|
||||
}
|
||||
|
@ -592,15 +648,30 @@ bool ScriptBase::Loop_Actor_Walk_To_XYZ(int actorId, float x, float y, float z,
|
|||
run = true;
|
||||
}
|
||||
}
|
||||
|
||||
#if BLADERUNNER_ORIGINAL_BUGS
|
||||
_vm->_playerActorIdle = false;
|
||||
#else
|
||||
if (actorId == kActorMcCoy) {
|
||||
_vm->_playerActorIdle = false;
|
||||
}
|
||||
#endif // BLADERUNNER_ORIGINAL_BUGS
|
||||
|
||||
bool isRunning;
|
||||
bool result = _vm->_actors[actorId]->loopWalkToXYZ(Vector3(x, y, z), proximity, interruptible, run, true, &isRunning);
|
||||
|
||||
#if BLADERUNNER_ORIGINAL_BUGS
|
||||
if (_vm->_playerActorIdle) {
|
||||
result = true;
|
||||
_vm->_playerActorIdle = false;
|
||||
}
|
||||
#else
|
||||
if (actorId == kActorMcCoy && _vm->_playerActorIdle) {
|
||||
result = true;
|
||||
_vm->_playerActorIdle = false;
|
||||
}
|
||||
#endif // BLADERUNNER_ORIGINAL_BUGS
|
||||
|
||||
if (isRunning) {
|
||||
_vm->_runningActorId = actorId;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue