diff options
21 files changed, 123 insertions, 141 deletions
diff --git a/engines/bladerunner/actor.cpp b/engines/bladerunner/actor.cpp index 6403eab9e8..b884fe7453 100644 --- a/engines/bladerunner/actor.cpp +++ b/engines/bladerunner/actor.cpp @@ -285,7 +285,6 @@ void Actor::timerUpdate(int timerId) { void Actor::movementTrackNext(bool omitAiScript) { bool hasNextMovement; - int waypointSetId; bool running; int angle; int delay; @@ -302,7 +301,7 @@ void Actor::movementTrackNext(bool omitAiScript) { if (angle == -1) { angle = 0; } - waypointSetId = _vm->_waypoints->getSetId(waypointId); + int waypointSetId = _vm->_waypoints->getSetId(waypointId); _vm->_waypoints->getXYZ(waypointId, &waypointPosition.x, &waypointPosition.y, &waypointPosition.z); if (_setId == waypointSetId && waypointSetId == _vm->_actors[0]->_setId) { stopWalking(false); @@ -545,8 +544,8 @@ bool Actor::loopWalkToSceneObject(const Common::String &objectName, int proximit if (d < closestDistance) { closestX = x0; closestZ = z1; - closestDistance = d; } + bool inWalkbox; float y = _vm->_scene->_set->getAltitudeAtXZ(closestX, closestZ, &inWalkbox); Vector3 destination(closestX, y, closestZ); diff --git a/engines/bladerunner/audio_player.cpp b/engines/bladerunner/audio_player.cpp index df92be2d42..4507506888 100644 --- a/engines/bladerunner/audio_player.cpp +++ b/engines/bladerunner/audio_player.cpp @@ -76,8 +76,8 @@ void AudioPlayer::adjustVolume(int track, int volume, int delay, bool overrideVo actualVolume = actualVolume * _sfxVolume / 100; } - _tracks[track].volume = volume; - _vm->_audioMixer->adjustVolume(_tracks[track].channel, volume, 60 * delay); + _tracks[track].volume = actualVolume; + _vm->_audioMixer->adjustVolume(_tracks[track].channel, actualVolume, 60 * delay); } void AudioPlayer::adjustPan(int track, int pan, int delay) { diff --git a/engines/bladerunner/decompress_lcw.cpp b/engines/bladerunner/decompress_lcw.cpp index 9fc4640d1b..7f96fa8f7c 100644 --- a/engines/bladerunner/decompress_lcw.cpp +++ b/engines/bladerunner/decompress_lcw.cpp @@ -28,7 +28,7 @@ namespace BladeRunner { uint32 decompress_lcw(uint8 *inBuf, uint32 inLen, uint8 *outBuf, uint32 outLen) { int version = 1; - int count, i, color, pos, relpos, out_remain; + int count, i, color, pos, relpos; uint8 *src = inBuf; uint8 *dst = outBuf; @@ -40,7 +40,7 @@ uint32 decompress_lcw(uint8 *inBuf, uint32 inLen, uint8 *outBuf, uint32 outLen) } while (src < inBuf + inLen && dst < outEnd && src[0] != 0x80) { - out_remain = (int)(outEnd - dst); + int out_remain = (int)(outEnd - dst); if (src[0] == 0xff) { // 0b11111111 count = src[1] | (src[2] << 8); diff --git a/engines/bladerunner/fog.cpp b/engines/bladerunner/fog.cpp index edebc9412f..4856f1d3b3 100644 --- a/engines/bladerunner/fog.cpp +++ b/engines/bladerunner/fog.cpp @@ -78,17 +78,17 @@ void Fog::readAnimationData(Common::ReadStream *stream, int size) { } _m11ptr = _animationData; - _m12ptr = _m11ptr + (_animatedParameters & 0x1 ? _frameCount : 1); - _m13ptr = _m12ptr + (_animatedParameters & 0x2 ? _frameCount : 1); - _m14ptr = _m13ptr + (_animatedParameters & 0x4 ? _frameCount : 1); - _m21ptr = _m14ptr + (_animatedParameters & 0x8 ? _frameCount : 1); - _m22ptr = _m21ptr + (_animatedParameters & 0x10 ? _frameCount : 1); - _m23ptr = _m22ptr + (_animatedParameters & 0x20 ? _frameCount : 1); - _m24ptr = _m23ptr + (_animatedParameters & 0x40 ? _frameCount : 1); - _m31ptr = _m24ptr + (_animatedParameters & 0x80 ? _frameCount : 1); - _m32ptr = _m31ptr + (_animatedParameters & 0x100 ? _frameCount : 1); - _m33ptr = _m32ptr + (_animatedParameters & 0x200 ? _frameCount : 1); - _m34ptr = _m33ptr + (_animatedParameters & 0x400 ? _frameCount : 1); + _m12ptr = _m11ptr + ((_animatedParameters & 0x1) ? _frameCount : 1); + _m13ptr = _m12ptr + ((_animatedParameters & 0x2) ? _frameCount : 1); + _m14ptr = _m13ptr + ((_animatedParameters & 0x4) ? _frameCount : 1); + _m21ptr = _m14ptr + ((_animatedParameters & 0x8) ? _frameCount : 1); + _m22ptr = _m21ptr + ((_animatedParameters & 0x10) ? _frameCount : 1); + _m23ptr = _m22ptr + ((_animatedParameters & 0x20) ? _frameCount : 1); + _m24ptr = _m23ptr + ((_animatedParameters & 0x40) ? _frameCount : 1); + _m31ptr = _m24ptr + ((_animatedParameters & 0x80) ? _frameCount : 1); + _m32ptr = _m31ptr + ((_animatedParameters & 0x100) ? _frameCount : 1); + _m33ptr = _m32ptr + ((_animatedParameters & 0x200) ? _frameCount : 1); + _m34ptr = _m33ptr + ((_animatedParameters & 0x400) ? _frameCount : 1); setupFrame(0); } @@ -98,18 +98,18 @@ void Fog::reset() { void Fog::setupFrame(int frame) { int offset = frame % _frameCount; - _matrix._m[0][0] = (_animatedParameters & 0x1 ? _m11ptr[offset] : *_m11ptr); - _matrix._m[0][1] = (_animatedParameters & 0x2 ? _m12ptr[offset] : *_m12ptr); - _matrix._m[0][2] = (_animatedParameters & 0x4 ? _m13ptr[offset] : *_m13ptr); - _matrix._m[0][3] = (_animatedParameters & 0x8 ? _m14ptr[offset] : *_m14ptr); - _matrix._m[1][0] = (_animatedParameters & 0x10 ? _m21ptr[offset] : *_m21ptr); - _matrix._m[1][1] = (_animatedParameters & 0x20 ? _m22ptr[offset] : *_m22ptr); - _matrix._m[1][2] = (_animatedParameters & 0x40 ? _m23ptr[offset] : *_m23ptr); - _matrix._m[1][3] = (_animatedParameters & 0x80 ? _m24ptr[offset] : *_m24ptr); - _matrix._m[2][0] = (_animatedParameters & 0x100 ? _m31ptr[offset] : *_m31ptr); - _matrix._m[2][1] = (_animatedParameters & 0x200 ? _m32ptr[offset] : *_m32ptr); - _matrix._m[2][2] = (_animatedParameters & 0x400 ? _m33ptr[offset] : *_m33ptr); - _matrix._m[2][3] = (_animatedParameters & 0x800 ? _m34ptr[offset] : *_m34ptr); + _matrix._m[0][0] = ((_animatedParameters & 0x1) ? _m11ptr[offset] : *_m11ptr); + _matrix._m[0][1] = ((_animatedParameters & 0x2) ? _m12ptr[offset] : *_m12ptr); + _matrix._m[0][2] = ((_animatedParameters & 0x4) ? _m13ptr[offset] : *_m13ptr); + _matrix._m[0][3] = ((_animatedParameters & 0x8) ? _m14ptr[offset] : *_m14ptr); + _matrix._m[1][0] = ((_animatedParameters & 0x10) ? _m21ptr[offset] : *_m21ptr); + _matrix._m[1][1] = ((_animatedParameters & 0x20) ? _m22ptr[offset] : *_m22ptr); + _matrix._m[1][2] = ((_animatedParameters & 0x40) ? _m23ptr[offset] : *_m23ptr); + _matrix._m[1][3] = ((_animatedParameters & 0x80) ? _m24ptr[offset] : *_m24ptr); + _matrix._m[2][0] = ((_animatedParameters & 0x100) ? _m31ptr[offset] : *_m31ptr); + _matrix._m[2][1] = ((_animatedParameters & 0x200) ? _m32ptr[offset] : *_m32ptr); + _matrix._m[2][2] = ((_animatedParameters & 0x400) ? _m33ptr[offset] : *_m33ptr); + _matrix._m[2][3] = ((_animatedParameters & 0x800) ? _m34ptr[offset] : *_m34ptr); _inverted = invertMatrix(_matrix); } diff --git a/engines/bladerunner/game_info.cpp b/engines/bladerunner/game_info.cpp index f777a86fae..e610dc96fa 100644 --- a/engines/bladerunner/game_info.cpp +++ b/engines/bladerunner/game_info.cpp @@ -56,7 +56,6 @@ bool GameInfo::open(const Common::String &name) { return false; } - uint32 unk; _actorCount = s->readUint32LE(); /* 00 */ _playerId = s->readUint32LE(); /* 01 */ _flagCount = s->readUint32LE(); /* 02 */ @@ -64,9 +63,9 @@ bool GameInfo::open(const Common::String &name) { _globalVarCount = s->readUint32LE(); /* 04 */ _sceneNamesCount = s->readUint32LE(); /* 05 */ _initialSceneId = s->readUint32LE(); /* 06 */ - unk = s->readUint32LE(); /* 07 */ + s->skip(4); /* 07 */ _initialSetId = s->readUint32LE(); /* 08 */ - unk = s->readUint32LE(); /* 09 */ + s->skip(4); /* 09 */ _waypointCount = s->readUint32LE(); /* 10 */ _sfxTrackCount = s->readUint32LE(); /* 11 */ _musicTrackCount = s->readUint32LE(); /* 12 */ @@ -76,8 +75,6 @@ bool GameInfo::open(const Common::String &name) { _coverWaypointCount = s->readUint32LE(); /* 16 */ _fleeWaypointCount = s->readUint32LE(); /* 17 */ - (void)unk; - char buf[9]; _sceneNames.resize(_sceneNamesCount); diff --git a/engines/bladerunner/light.cpp b/engines/bladerunner/light.cpp index 2231e0460e..0590630dbb 100644 --- a/engines/bladerunner/light.cpp +++ b/engines/bladerunner/light.cpp @@ -85,24 +85,24 @@ void Light::read(Common::ReadStream *stream, int frameCount, int frame, int anim } _m11ptr = _animationData; - _m12ptr = _m11ptr + (_animatedParameters & 0x1 ? frameCount : 1); - _m13ptr = _m12ptr + (_animatedParameters & 0x2 ? frameCount : 1); - _m14ptr = _m13ptr + (_animatedParameters & 0x4 ? frameCount : 1); - _m21ptr = _m14ptr + (_animatedParameters & 0x8 ? frameCount : 1); - _m22ptr = _m21ptr + (_animatedParameters & 0x10 ? frameCount : 1); - _m23ptr = _m22ptr + (_animatedParameters & 0x20 ? frameCount : 1); - _m24ptr = _m23ptr + (_animatedParameters & 0x40 ? frameCount : 1); - _m31ptr = _m24ptr + (_animatedParameters & 0x80 ? frameCount : 1); - _m32ptr = _m31ptr + (_animatedParameters & 0x100 ? frameCount : 1); - _m33ptr = _m32ptr + (_animatedParameters & 0x200 ? frameCount : 1); - _m34ptr = _m33ptr + (_animatedParameters & 0x400 ? frameCount : 1); - _colorRPtr = _m34ptr + (_animatedParameters & 0x800 ? frameCount : 1); - _colorGPtr = _colorRPtr + (_animatedParameters & 0x1000 ? frameCount : 1); - _colorBPtr = _colorGPtr + (_animatedParameters & 0x2000 ? frameCount : 1); - _falloffStartPtr = _colorBPtr + (_animatedParameters & 0x4000 ? frameCount : 1); - _falloffEndPtr = _falloffStartPtr + (_animatedParameters & 0x8000 ? frameCount : 1); - _angleStartPtr = _falloffEndPtr + (_animatedParameters & 0x10000 ? frameCount : 1); - _angleEndPtr = _angleStartPtr + (_animatedParameters & 0x20000 ? frameCount : 1); + _m12ptr = _m11ptr + ((_animatedParameters & 0x1) ? frameCount : 1); + _m13ptr = _m12ptr + ((_animatedParameters & 0x2) ? frameCount : 1); + _m14ptr = _m13ptr + ((_animatedParameters & 0x4) ? frameCount : 1); + _m21ptr = _m14ptr + ((_animatedParameters & 0x8) ? frameCount : 1); + _m22ptr = _m21ptr + ((_animatedParameters & 0x10) ? frameCount : 1); + _m23ptr = _m22ptr + ((_animatedParameters & 0x20) ? frameCount : 1); + _m24ptr = _m23ptr + ((_animatedParameters & 0x40) ? frameCount : 1); + _m31ptr = _m24ptr + ((_animatedParameters & 0x80) ? frameCount : 1); + _m32ptr = _m31ptr + ((_animatedParameters & 0x100) ? frameCount : 1); + _m33ptr = _m32ptr + ((_animatedParameters & 0x200) ? frameCount : 1); + _m34ptr = _m33ptr + ((_animatedParameters & 0x400) ? frameCount : 1); + _colorRPtr = _m34ptr + ((_animatedParameters & 0x800) ? frameCount : 1); + _colorGPtr = _colorRPtr + ((_animatedParameters & 0x1000) ? frameCount : 1); + _colorBPtr = _colorGPtr + ((_animatedParameters & 0x2000) ? frameCount : 1); + _falloffStartPtr = _colorBPtr + ((_animatedParameters & 0x4000) ? frameCount : 1); + _falloffEndPtr = _falloffStartPtr + ((_animatedParameters & 0x8000) ? frameCount : 1); + _angleStartPtr = _falloffEndPtr + ((_animatedParameters & 0x10000) ? frameCount : 1); + _angleEndPtr = _angleStartPtr + ((_animatedParameters & 0x20000) ? frameCount : 1); setupFrame(frame); } @@ -126,49 +126,49 @@ void Light::readVqa(Common::ReadStream *stream, int frameCount, int frame, int a } _m11ptr = _animationData; - _m12ptr = _m11ptr + (_animatedParameters & 0x1 ? frameCount : 1); - _m13ptr = _m12ptr + (_animatedParameters & 0x2 ? frameCount : 1); - _m14ptr = _m13ptr + (_animatedParameters & 0x4 ? frameCount : 1); - _m21ptr = _m14ptr + (_animatedParameters & 0x8 ? frameCount : 1); - _m22ptr = _m21ptr + (_animatedParameters & 0x10 ? frameCount : 1); - _m23ptr = _m22ptr + (_animatedParameters & 0x20 ? frameCount : 1); - _m24ptr = _m23ptr + (_animatedParameters & 0x40 ? frameCount : 1); - _m31ptr = _m24ptr + (_animatedParameters & 0x80 ? frameCount : 1); - _m32ptr = _m31ptr + (_animatedParameters & 0x100 ? frameCount : 1); - _m33ptr = _m32ptr + (_animatedParameters & 0x200 ? frameCount : 1); - _m34ptr = _m33ptr + (_animatedParameters & 0x400 ? frameCount : 1); - _colorRPtr = _m34ptr + (_animatedParameters & 0x800 ? frameCount : 1); - _colorGPtr = _colorRPtr + (_animatedParameters & 0x1000 ? frameCount : 1); - _colorBPtr = _colorGPtr + (_animatedParameters & 0x2000 ? frameCount : 1); - _falloffStartPtr = _colorBPtr + (_animatedParameters & 0x4000 ? frameCount : 1); - _falloffEndPtr = _falloffStartPtr + (_animatedParameters & 0x8000 ? frameCount : 1); - _angleStartPtr = _falloffEndPtr + (_animatedParameters & 0x10000 ? frameCount : 1); - _angleEndPtr = _angleStartPtr + (_animatedParameters & 0x20000 ? frameCount : 1); + _m12ptr = _m11ptr + ((_animatedParameters & 0x1) ? frameCount : 1); + _m13ptr = _m12ptr + ((_animatedParameters & 0x2) ? frameCount : 1); + _m14ptr = _m13ptr + ((_animatedParameters & 0x4) ? frameCount : 1); + _m21ptr = _m14ptr + ((_animatedParameters & 0x8) ? frameCount : 1); + _m22ptr = _m21ptr + ((_animatedParameters & 0x10) ? frameCount : 1); + _m23ptr = _m22ptr + ((_animatedParameters & 0x20) ? frameCount : 1); + _m24ptr = _m23ptr + ((_animatedParameters & 0x40) ? frameCount : 1); + _m31ptr = _m24ptr + ((_animatedParameters & 0x80) ? frameCount : 1); + _m32ptr = _m31ptr + ((_animatedParameters & 0x100) ? frameCount : 1); + _m33ptr = _m32ptr + ((_animatedParameters & 0x200) ? frameCount : 1); + _m34ptr = _m33ptr + ((_animatedParameters & 0x400) ? frameCount : 1); + _colorRPtr = _m34ptr + ((_animatedParameters & 0x800) ? frameCount : 1); + _colorGPtr = _colorRPtr + ((_animatedParameters & 0x1000) ? frameCount : 1); + _colorBPtr = _colorGPtr + ((_animatedParameters & 0x2000) ? frameCount : 1); + _falloffStartPtr = _colorBPtr + ((_animatedParameters & 0x4000) ? frameCount : 1); + _falloffEndPtr = _falloffStartPtr + ((_animatedParameters & 0x8000) ? frameCount : 1); + _angleStartPtr = _falloffEndPtr + ((_animatedParameters & 0x10000) ? frameCount : 1); + _angleEndPtr = _angleStartPtr + ((_animatedParameters & 0x20000) ? frameCount : 1); setupFrame(frame); } void Light::setupFrame(int frame) { int offset = frame % _frameCount; - _matrix._m[0][0] = (_animatedParameters & 0x1 ? _m11ptr[offset] : *_m11ptr); - _matrix._m[0][1] = (_animatedParameters & 0x2 ? _m12ptr[offset] : *_m12ptr); - _matrix._m[0][2] = (_animatedParameters & 0x4 ? _m13ptr[offset] : *_m13ptr); - _matrix._m[0][3] = (_animatedParameters & 0x8 ? _m14ptr[offset] : *_m14ptr); - _matrix._m[1][0] = (_animatedParameters & 0x10 ? _m21ptr[offset] : *_m21ptr); - _matrix._m[1][1] = (_animatedParameters & 0x20 ? _m22ptr[offset] : *_m22ptr); - _matrix._m[1][2] = (_animatedParameters & 0x40 ? _m23ptr[offset] : *_m23ptr); - _matrix._m[1][3] = (_animatedParameters & 0x80 ? _m24ptr[offset] : *_m24ptr); - _matrix._m[2][0] = (_animatedParameters & 0x100 ? _m31ptr[offset] : *_m31ptr); - _matrix._m[2][1] = (_animatedParameters & 0x200 ? _m32ptr[offset] : *_m32ptr); - _matrix._m[2][2] = (_animatedParameters & 0x400 ? _m33ptr[offset] : *_m33ptr); - _matrix._m[2][3] = (_animatedParameters & 0x800 ? _m34ptr[offset] : *_m34ptr); - _color.r = (_animatedParameters & 0x1000 ? _colorRPtr[offset] : *_colorRPtr); - _color.g = (_animatedParameters & 0x2000 ? _colorGPtr[offset] : *_colorGPtr); - _color.b = (_animatedParameters & 0x4000 ? _colorBPtr[offset] : *_colorBPtr); - _falloffStart = (_animatedParameters & 0x8000 ? _falloffStartPtr[offset] : *_falloffStartPtr); - _falloffEnd = (_animatedParameters & 0x10000 ? _falloffEndPtr[offset] : *_falloffEndPtr); - _angleStart = (_animatedParameters & 0x20000 ? _angleStartPtr[offset] : *_angleStartPtr); - _angleEnd = (_animatedParameters & 0x40000 ? _angleEndPtr[offset] : *_angleEndPtr); + _matrix._m[0][0] = ((_animatedParameters & 0x1) ? _m11ptr[offset] : *_m11ptr); + _matrix._m[0][1] = ((_animatedParameters & 0x2) ? _m12ptr[offset] : *_m12ptr); + _matrix._m[0][2] = ((_animatedParameters & 0x4) ? _m13ptr[offset] : *_m13ptr); + _matrix._m[0][3] = ((_animatedParameters & 0x8) ? _m14ptr[offset] : *_m14ptr); + _matrix._m[1][0] = ((_animatedParameters & 0x10) ? _m21ptr[offset] : *_m21ptr); + _matrix._m[1][1] = ((_animatedParameters & 0x20) ? _m22ptr[offset] : *_m22ptr); + _matrix._m[1][2] = ((_animatedParameters & 0x40) ? _m23ptr[offset] : *_m23ptr); + _matrix._m[1][3] = ((_animatedParameters & 0x80) ? _m24ptr[offset] : *_m24ptr); + _matrix._m[2][0] = ((_animatedParameters & 0x100) ? _m31ptr[offset] : *_m31ptr); + _matrix._m[2][1] = ((_animatedParameters & 0x200) ? _m32ptr[offset] : *_m32ptr); + _matrix._m[2][2] = ((_animatedParameters & 0x400) ? _m33ptr[offset] : *_m33ptr); + _matrix._m[2][3] = ((_animatedParameters & 0x800) ? _m34ptr[offset] : *_m34ptr); + _color.r = ((_animatedParameters & 0x1000) ? _colorRPtr[offset] : *_colorRPtr); + _color.g = ((_animatedParameters & 0x2000) ? _colorGPtr[offset] : *_colorGPtr); + _color.b = ((_animatedParameters & 0x4000) ? _colorBPtr[offset] : *_colorBPtr); + _falloffStart = ((_animatedParameters & 0x8000) ? _falloffStartPtr[offset] : *_falloffStartPtr); + _falloffEnd = ((_animatedParameters & 0x10000) ? _falloffEndPtr[offset] : *_falloffEndPtr); + _angleStart = ((_animatedParameters & 0x20000) ? _angleStartPtr[offset] : *_angleStartPtr); + _angleEnd = ((_animatedParameters & 0x40000) ? _angleEndPtr[offset] : *_angleEndPtr); } float Light::calculate(Vector3 start, Vector3 end) const { diff --git a/engines/bladerunner/screen_effects.cpp b/engines/bladerunner/screen_effects.cpp index a65d4edcbd..eae768166d 100644 --- a/engines/bladerunner/screen_effects.cpp +++ b/engines/bladerunner/screen_effects.cpp @@ -50,7 +50,7 @@ void ScreenEffects::readVqa(Common::SeekableReadStream *stream) { entryCount = MIN(entryCount, 7); _entries.resize(entryCount); - for (Common::Array<Entry>::iterator entry = _entries.begin(); entry != _entries.end(); entry++) { + for (Common::Array<Entry>::iterator entry = _entries.begin(); entry != _entries.end(); ++entry) { stream->read(&entry->palette, sizeof(Color256) * 16); entry->x = stream->readUint16LE(); @@ -123,7 +123,7 @@ void ScreenEffects::readVqa(Common::SeekableReadStream *stream) { void ScreenEffects::getColor(Color256 *outColor, uint16 x, uint16 y, uint16 z) const { Color256 color = { 0, 0, 0 }; - for (Common::Array<const Entry>::iterator entry = _entries.begin(); entry != _entries.end(); entry++) { + for (Common::Array<const Entry>::iterator entry = _entries.begin(); entry != _entries.end(); ++entry) { uint16 x1 = (x / 2) - entry->x; uint16 y1 = (y / 2) - entry->y; if (x1 < entry->width && y1 < entry->height && z > entry->z) { diff --git a/engines/bladerunner/script/ai/free_slot_a.cpp b/engines/bladerunner/script/ai/free_slot_a.cpp index f31fbaa550..c80b4da778 100644 --- a/engines/bladerunner/script/ai/free_slot_a.cpp +++ b/engines/bladerunner/script/ai/free_slot_a.cpp @@ -202,13 +202,14 @@ void AIScriptFreeSlotA::OtherAgentEnteredCombatMode(int otherActorId, int combat } void AIScriptFreeSlotA::ShotAtAndMissed() { - if (Actor_Query_In_Set(kActorFreeSlotA, kSetUG15)) - calcHit(); + if (Actor_Query_In_Set(kActorFreeSlotA, kSetUG15)) { + checkIfOnBridge(); + } } bool AIScriptFreeSlotA::ShotAtAndHit() { if (Actor_Query_In_Set(kActorFreeSlotA, kSetUG15)) { - calcHit(); + checkIfOnBridge(); Actor_Set_Goal_Number(kActorFreeSlotA, kGoalFreeSlotAUG15Die); return true; } @@ -539,14 +540,11 @@ void AIScriptFreeSlotA::FledCombat() { // return false; } -void AIScriptFreeSlotA::calcHit() { +void AIScriptFreeSlotA::checkIfOnBridge() { float x, y, z; - Actor_Query_XYZ(kActorFreeSlotA, &x, &y, &z); - - if (x >= -30.0f - && x < -150.0f - ) { + // bug? this should probably check if McCoy is close enough because bridge will break long after rat died and player tries to walk through + if (-150.0 <= x && x < -30.0f) { Game_Flag_Set(kFlagUG15BridgeWillBreak); } } diff --git a/engines/bladerunner/script/ai/officer_leary.cpp b/engines/bladerunner/script/ai/officer_leary.cpp index 69ec583a6a..d1e7eea4d7 100644 --- a/engines/bladerunner/script/ai/officer_leary.cpp +++ b/engines/bladerunner/script/ai/officer_leary.cpp @@ -539,9 +539,6 @@ bool AIScriptOfficerLeary::GoalChanged(int currentGoalNumber, int newGoalNumber) } bool AIScriptOfficerLeary::UpdateAnimation(int *animation, int *frame) { - int v57; - int a1; - switch (_animationState) { case 32: *animation = 603; @@ -872,10 +869,8 @@ bool AIScriptOfficerLeary::UpdateAnimation(int *animation, int *frame) { *animation = 591; } if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(*animation) / 2) { - a1 = *animation; _animationFrame += 3; - v57 = _animationFrame; - if (v57 > Slice_Animation_Query_Number_Of_Frames(a1) - 1) { + if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(*animation) - 1) { _animationFrame = 0; _animationState = _animationStateNext; *animation = _animationNext; diff --git a/engines/bladerunner/script/ai_script.h b/engines/bladerunner/script/ai_script.h index 5c5a77457d..6c857da43c 100644 --- a/engines/bladerunner/script/ai_script.h +++ b/engines/bladerunner/script/ai_script.h @@ -462,7 +462,7 @@ DECLARE_SCRIPT(FreeSlotA) float _fallHeightCurrent; float _fallHeightTarget; - void calcHit(); + void checkIfOnBridge(); void goToRandomUGxx(); END_SCRIPT diff --git a/engines/bladerunner/script/scene/ar01.cpp b/engines/bladerunner/script/scene/ar01.cpp index 1213f47814..6c6067d1d5 100644 --- a/engines/bladerunner/script/scene/ar01.cpp +++ b/engines/bladerunner/script/scene/ar01.cpp @@ -111,7 +111,7 @@ void SceneScriptAR01::InitializeScene() { && Game_Flag_Query(kFlagHC01toAR01) ) { Scene_Loop_Set_Default(kAR01LoopMainLoopNoSpinner); - } else { + } else { // bug? branch content is equal to previous branch Scene_Loop_Set_Default(kAR01LoopMainLoopNoSpinner); } } diff --git a/engines/bladerunner/script/scene/nr07.cpp b/engines/bladerunner/script/scene/nr07.cpp index 6fbebd22ff..02224d0b09 100644 --- a/engines/bladerunner/script/scene/nr07.cpp +++ b/engines/bladerunner/script/scene/nr07.cpp @@ -241,7 +241,7 @@ void SceneScriptNR07::clickedOnVase() { int friendliness = Actor_Query_Friendliness_To_Other(kActorDektora, kActorMcCoy); if (friendliness > 50) { Actor_Modify_Friendliness_To_Other(kActorDektora, kActorMcCoy, 2); - } else if (friendliness <= 50) { + } else { Actor_Modify_Friendliness_To_Other(kActorDektora, kActorMcCoy, -2); } Actor_Says(kActorMcCoy, 3600, 19); diff --git a/engines/bladerunner/script/script.cpp b/engines/bladerunner/script/script.cpp index 9e2097b2d9..e38477d03f 100644 --- a/engines/bladerunner/script/script.cpp +++ b/engines/bladerunner/script/script.cpp @@ -96,8 +96,6 @@ bool ScriptBase::Region_Check(int left, int top, int right, int down) { && _vm->_sceneScript->_mouseY >= top && _vm->_sceneScript->_mouseX <= right && _vm->_sceneScript->_mouseY <= down; - - return false; } bool ScriptBase::Object_Query_Click(const char *objectName1, const char *objectName2) { diff --git a/engines/bladerunner/set.cpp b/engines/bladerunner/set.cpp index 227dd81adb..f53a635057 100644 --- a/engines/bladerunner/set.cpp +++ b/engines/bladerunner/set.cpp @@ -94,8 +94,6 @@ bool Set::open(const Common::String &name) { assert(_walkboxCount <= 95); for (int i = 0; i < _walkboxCount; ++i) { - float x, z; - s->read(buf, sizeof(buf)); _walkboxes[i].name = buf; @@ -105,8 +103,8 @@ bool Set::open(const Common::String &name) { assert(_walkboxes[i].vertexCount <= 8); for (int j = 0; j < _walkboxes[i].vertexCount; ++j) { - x = s->readFloatLE(); - z = s->readFloatLE(); + float x = s->readFloatLE(); + float z = s->readFloatLE(); _walkboxes[i].vertices[j] = Vector3(x, _walkboxes[i].altitude, z); } diff --git a/engines/bladerunner/slice_renderer.cpp b/engines/bladerunner/slice_renderer.cpp index 1fd0030857..73d0cef929 100644 --- a/engines/bladerunner/slice_renderer.cpp +++ b/engines/bladerunner/slice_renderer.cpp @@ -298,7 +298,7 @@ struct SliceLineIterator { float startScreenX, float startScreenY, float startScreenZ, float endSlice, float startSlice, Matrix3x2 m); - float line(); + float line() const; void advance(); }; @@ -340,7 +340,7 @@ void SliceLineIterator::setup( _sliceMatrix = mScale * (mTranslate * m); } -float SliceLineIterator::line() { +float SliceLineIterator::line() const { float var_0 = 0.0f; if (_currentZ != 0.0f) diff --git a/engines/bladerunner/ui/kia.cpp b/engines/bladerunner/ui/kia.cpp index c889890276..2cc978f0cc 100644 --- a/engines/bladerunner/ui/kia.cpp +++ b/engines/bladerunner/ui/kia.cpp @@ -524,13 +524,12 @@ void KIA::handleKeyDown(const Common::KeyState &kbd) { void KIA::playerReset() { if (_playerActorDialogueQueueSize != _playerActorDialogueQueuePosition) { - if (_playerActorDialogueQueueSize != _playerActorDialogueQueuePosition) { - int actorId = _playerActorDialogueQueue[_playerActorDialogueQueuePosition].actorId; - if (_vm->_actors[actorId]->isSpeeching()) { - _vm->_actors[actorId]->speechStop(); - } + int actorId = _playerActorDialogueQueue[_playerActorDialogueQueuePosition].actorId; + if (_vm->_actors[actorId]->isSpeeching()) { + _vm->_actors[actorId]->speechStop(); } } + _playerActorDialogueQueueSize = _playerActorDialogueQueuePosition; _playerSliceModelId = -1; if (_playerPhotographId != -1) { diff --git a/engines/bladerunner/ui/kia_section_save.cpp b/engines/bladerunner/ui/kia_section_save.cpp index 46ee0384d2..0dbd6033c1 100644 --- a/engines/bladerunner/ui/kia_section_save.cpp +++ b/engines/bladerunner/ui/kia_section_save.cpp @@ -389,7 +389,7 @@ void KIASectionSave::save() { Common::OutSaveFile *saveFile = BladeRunner::SaveFileManager::openForSaving(_vm->getTargetName(), slot); if (saveFile == nullptr || saveFile->err()) { delete saveFile; - error("Can not open savegame file for writing"); + warning("KIASectionSave::save(): Can not open savegame file for writing"); return; } diff --git a/engines/bladerunner/ui/ui_check_box.cpp b/engines/bladerunner/ui/ui_check_box.cpp index 510d6e6dbd..0e572c287e 100644 --- a/engines/bladerunner/ui/ui_check_box.cpp +++ b/engines/bladerunner/ui/ui_check_box.cpp @@ -55,8 +55,9 @@ UICheckBox::UICheckBox(BladeRunnerEngine *vm, UIComponentCallback *valueChangedC void UICheckBox::draw(Graphics::Surface &surface) { - int shapeId; if (_rect.right > _rect.left && _rect.bottom > _rect.top) { + int shapeId; + uint timeNow = _vm->_time->currentSystem(); if (timeNow - _timeLast > 67) { int frameDelta = (timeNow - _timeLast) / 67u; diff --git a/engines/bladerunner/ui/ui_container.cpp b/engines/bladerunner/ui/ui_container.cpp index 34a8cecfb1..eed1bcd9a2 100644 --- a/engines/bladerunner/ui/ui_container.cpp +++ b/engines/bladerunner/ui/ui_container.cpp @@ -27,37 +27,37 @@ namespace BladeRunner { void UIContainer::draw(Graphics::Surface &surface) { - for (Common::Array<UIComponent*>::iterator component = _components.begin(); component != _components.end(); component++) { + for (Common::Array<UIComponent*>::iterator component = _components.begin(); component != _components.end(); ++component) { (*component)->draw(surface); } } void UIContainer::handleMouseMove(int mouseX, int mouseY) { - for (Common::Array<UIComponent*>::iterator component = _components.begin(); component != _components.end(); component++) { + for (Common::Array<UIComponent*>::iterator component = _components.begin(); component != _components.end(); ++component) { (*component)->handleMouseMove(mouseX, mouseY); } } void UIContainer::handleMouseDown(bool alternateButton) { - for (Common::Array<UIComponent*>::iterator component = _components.begin(); component != _components.end(); component++) { + for (Common::Array<UIComponent*>::iterator component = _components.begin(); component != _components.end(); ++component) { (*component)->handleMouseDown(alternateButton); } } void UIContainer::handleMouseUp(bool alternateButton) { - for (Common::Array<UIComponent*>::iterator component = _components.begin(); component != _components.end(); component++) { + for (Common::Array<UIComponent*>::iterator component = _components.begin(); component != _components.end(); ++component) { (*component)->handleMouseUp(alternateButton); } } void UIContainer::handleKeyUp(const Common::KeyState &kbd) { - for (Common::Array<UIComponent*>::iterator component = _components.begin(); component != _components.end(); component++) { + for (Common::Array<UIComponent*>::iterator component = _components.begin(); component != _components.end(); ++component) { (*component)->handleKeyUp(kbd); } } void UIContainer::handleKeyDown(const Common::KeyState &kbd) { - for (Common::Array<UIComponent*>::iterator component = _components.begin(); component != _components.end(); component++) { + for (Common::Array<UIComponent*>::iterator component = _components.begin(); component != _components.end(); ++component) { (*component)->handleKeyDown(kbd); } } diff --git a/engines/bladerunner/vqa_decoder.cpp b/engines/bladerunner/vqa_decoder.cpp index 05cabfcb9b..96746b65f3 100644 --- a/engines/bladerunner/vqa_decoder.cpp +++ b/engines/bladerunner/vqa_decoder.cpp @@ -166,7 +166,6 @@ bool VQADecoder::loadStream(Common::SeekableReadStream *s) { IFFChunkHeader chd; uint32 type; - bool rc; readIFFChunkHeader(s, &chd); if (chd.id != kFORM || !chd.size) @@ -181,7 +180,7 @@ bool VQADecoder::loadStream(Common::SeekableReadStream *s) { if (!readIFFChunkHeader(_s, &chd)) return false; - rc = false; + bool rc = false; switch (chd.id) { case kCINF: rc = readCINF(s, chd.size); break; case kCLIP: rc = readCLIP(s, chd.size); break; @@ -238,14 +237,13 @@ void VQADecoder::readPacket(uint readFlags) { IFFChunkHeader chd; if (remain(_s) < 8) { - warning("VQADecoder::readPacket: remain: %d", remain(_s)); + warning("VQADecoder::readPacket(): remain: %d", remain(_s)); assert(remain(_s) < 8); } do { if (!readIFFChunkHeader(_s, &chd)) { - error("VQADecoder::readPacket: Error reading chunk header"); - return; + error("VQADecoder::readPacket(): Error reading chunk header"); } bool rc = false; @@ -266,7 +264,7 @@ void VQADecoder::readPacket(uint readFlags) { } if (!rc) { - warning("VQADecoder::readPacket: Error handling chunk %s", strTag(chd.id)); + warning("VQADecoder::readPacket(): Error handling chunk %s", strTag(chd.id)); return; } } while (chd.id != kVQFR); @@ -274,7 +272,7 @@ void VQADecoder::readPacket(uint readFlags) { void VQADecoder::readFrame(int frame, uint readFlags) { if (frame < 0 || frame >= numFrames()) { - error("VQADecoder::readFrame: frame %d out of bounds, frame count is %d", frame, numFrames()); + error("VQADecoder::readFrame(): frame %d out of bounds, frame count is %d", frame, numFrames()); } uint32 frameOffset = 2 * (_frameInfo[frame] & 0x0FFFFFFF); @@ -364,7 +362,7 @@ bool VQADecoder::VQAVideoTrack::readVQFR(Common::SeekableReadStream *s, uint32 s } if (!rc) { - warning("VQFR: error handling chunk %s", strTag(chd.id)); + error("VQADecoder::VQAVideoTrack::readVQFR(): error handling chunk %s", strTag(chd.id)); return false; } } diff --git a/engines/bladerunner/vqa_player.cpp b/engines/bladerunner/vqa_player.cpp index f073895ae5..9a1c89a5bc 100644 --- a/engines/bladerunner/vqa_player.cpp +++ b/engines/bladerunner/vqa_player.cpp @@ -114,9 +114,8 @@ int VQAPlayer::update(bool forceDraw, bool advanceFrame, bool useTime, Graphics: _decoder.readFrame(_frameNext, kVQAReadVideo); _decoder.decodeVideoFrame(customSurface != nullptr ? customSurface : _surface, _frameNext); - int audioPreloadFrames = 14; - if (_hasAudio) { + int audioPreloadFrames = 14; if (!_audioStarted) { for (int i = 0; i < audioPreloadFrames; i++) { if (_frameNext + i < _frameEnd) { |