aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sherlock/map.cpp2
-rw-r--r--engines/sherlock/scalpel/scalpel.cpp43
-rw-r--r--engines/sherlock/scalpel/scalpel.h4
3 files changed, 27 insertions, 22 deletions
diff --git a/engines/sherlock/map.cpp b/engines/sherlock/map.cpp
index 36c932d90d..2102f6ae51 100644
--- a/engines/sherlock/map.cpp
+++ b/engines/sherlock/map.cpp
@@ -63,7 +63,7 @@ Map::Map(SherlockEngine *vm) : _vm(vm), _topLine(SHERLOCK_SCREEN_WIDTH, 12) {
_drawMap = false;
_overPos = Common::Point(13000, 12600);
_charPoint = 0;
- _oldCharPoint = 39;
+ _oldCharPoint = 0;
_frameChangeFlag = false;
for (int idx = 0; idx < MAX_HOLMES_SEQUENCE; ++idx)
diff --git a/engines/sherlock/scalpel/scalpel.cpp b/engines/sherlock/scalpel/scalpel.cpp
index fa55ca6013..e47be791f0 100644
--- a/engines/sherlock/scalpel/scalpel.cpp
+++ b/engines/sherlock/scalpel/scalpel.cpp
@@ -254,6 +254,7 @@ void ScalpelEngine::initialize() {
// Load the map co-ordinates for each scene and sequence data
_map->loadPoints(NUM_PLACES, &MAP_X[0], &MAP_Y[0], &MAP_TRANSLATE[0]);
_map->loadSequences(3, &MAP_SEQUENCES[0][0]);
+ _map->_oldCharPoint = BAKER_ST_EXTERIOR;
}
// Load the inventory
@@ -553,7 +554,7 @@ void ScalpelEngine::showLBV(const Common::String &filename) {
* Starting a scene within the game
*/
void ScalpelEngine::startScene() {
- if (_scene->_goToScene == 100 || _scene->_goToScene == 98) {
+ if (_scene->_goToScene == OVERHEAD_MAP || _scene->_goToScene == OVERHEAD_MAP2) {
// Show the map
if (_sound->_musicOn) {
if (_sound->loadSong(100)) {
@@ -576,17 +577,17 @@ void ScalpelEngine::startScene() {
// 55: Fade out and exit
// 70: Brumwell suicide
switch (_scene->_goToScene) {
- case 2:
- case 52:
- case 53:
- case 70:
+ case BLACKWOOD_CAPTURE:
+ case RESCUE_ANNA:
+ case MOOREHEAD_DEATH:
+ case BRUMWELL_SUICIDE:
if (_sound->_musicOn && _sound->loadSong(_scene->_goToScene)) {
if (_sound->_music)
_sound->startSong();
}
switch (_scene->_goToScene) {
- case 2:
+ case BLACKWOOD_CAPTURE:
// Blackwood's capture
_res->addToCache("final2.vda", "epilogue.lib");
_res->addToCache("final2.vdx", "epilogue.lib");
@@ -594,7 +595,7 @@ void ScalpelEngine::startScene() {
_animation->play("final2", 1, 0, false, 4);
break;
- case 52:
+ case RESCUE_ANNA:
// Rescuing Anna
_res->addToCache("finalr2.vda", "epilogue.lib");
_res->addToCache("finalr2.vdx", "epilogue.lib");
@@ -629,7 +630,7 @@ void ScalpelEngine::startScene() {
_useEpilogue2 = false;
break;
- case 53:
+ case MOOREHEAD_DEATH:
// Moorehead's death / subway train
_res->addToCache("SUBWAY2.vda", "epilogue.lib");
_res->addToCache("SUBWAY2.vdx", "epilogue.lib");
@@ -645,7 +646,7 @@ void ScalpelEngine::startScene() {
_screen->_fadeStyle = false;
break;
- case 70:
+ case BRUMWELL_SUICIDE:
// Brumwell suicide
_animation->play("suicid", 1, 3, true, 4);
break;
@@ -654,31 +655,31 @@ void ScalpelEngine::startScene() {
}
// Except for the Moorehead Murder scene, fade to black first
- if (_scene->_goToScene != 53) {
+ if (_scene->_goToScene != MOOREHEAD_DEATH) {
_events->wait(40);
_screen->fadeToBlack(3);
}
switch (_scene->_goToScene) {
case 52:
- _scene->_goToScene = 27; // Go to the Lawyer's Office
+ _scene->_goToScene = LAWYER_OFFICE; // Go to the Lawyer's Office
_map->_bigPos = Common::Point(0, 0); // Overland scroll position
_map->_overPos = Common::Point(22900 - 600, 9400 + 900); // Overland position
- _map->_oldCharPoint = 27;
+ _map->_oldCharPoint = LAWYER_OFFICE;
break;
case 53:
- _scene->_goToScene = 17; // Go to St. Pancras Station
+ _scene->_goToScene = STATION; // Go to St. Pancras Station
_map->_bigPos = Common::Point(0, 0); // Overland scroll position
_map->_overPos = Common::Point(32500 - 600, 3000 + 900); // Overland position
- _map->_oldCharPoint = 17;
+ _map->_oldCharPoint = STATION;
break;
default:
- _scene->_goToScene = 4; // Back to Baker st.
+ _scene->_goToScene = BAKER_STREET; // Back to Baker st.
_map->_bigPos = Common::Point(0, 0); // Overland scroll position
_map->_overPos = Common::Point(14500 - 600, 8400 + 900); // Overland position
- _map->_oldCharPoint = 4;
+ _map->_oldCharPoint = BAKER_STREET;
break;
}
@@ -686,7 +687,7 @@ void ScalpelEngine::startScene() {
_sound->freeSong();
break;
- case 55:
+ case EXIT_GAME:
// Exit game
_screen->fadeToBlack(3);
quitGame();
@@ -702,14 +703,14 @@ void ScalpelEngine::startScene() {
if (_scene->_goToScene == 99) {
// Darts Board minigame
_darts->playDarts();
- _mapResult = _scene->_goToScene = 19; // Go back to the bar
+ _mapResult = _scene->_goToScene = PUB_INTERIOR;
}
_mapResult = _scene->_goToScene;
}
/**
- * Takes care of clearing the mirror in scene 12, in case anything drew over it
+ * Takes care of clearing the mirror in scene 12 (mansion drawing room), in case anything drew over it
*/
void ScalpelEngine::eraseMirror12() {
Common::Point pt((*_people)[AL]._position.x / 100, (*_people)[AL]._position.y / 100);
@@ -722,7 +723,7 @@ void ScalpelEngine::eraseMirror12() {
}
/**
- * Takes care of drawing Holme's reflection onto the mirror in scene 12
+ * Takes care of drawing Holme's reflection onto the mirror in scene 12 (mansion drawing room)
*/
void ScalpelEngine::doMirror12() {
People &people = *_people;
@@ -798,7 +799,7 @@ void ScalpelEngine::doMirror12() {
}
/**
- * This clears the mirror in scene 12 in case anything messed draw over it
+ * This clears the mirror in scene 12 (mansion drawing room) in case anything messed draw over it
*/
void ScalpelEngine::flushMirror12() {
Common::Point pt((*_people)[AL]._position.x / 100, (*_people)[AL]._position.y / 100);
diff --git a/engines/sherlock/scalpel/scalpel.h b/engines/sherlock/scalpel/scalpel.h
index 40e4937b5d..62875f1e90 100644
--- a/engines/sherlock/scalpel/scalpel.h
+++ b/engines/sherlock/scalpel/scalpel.h
@@ -30,6 +30,10 @@ namespace Sherlock {
namespace Scalpel {
+enum { BLACKWOOD_CAPTURE = 2, BAKER_STREET = 4, DRAWING_ROOM = 12, STATION = 17, PUB_INTERIOR = 19,
+ LAWYER_OFFICE = 27, BAKER_ST_EXTERIOR = 39, RESCUE_ANNA = 52, MOOREHEAD_DEATH = 53, EXIT_GAME = 55,
+ BRUMWELL_SUICIDE = 70, OVERHEAD_MAP2 = 98, DARTS_GAME = 99, OVERHEAD_MAP = 100 };
+
class ScalpelEngine : public SherlockEngine {
private:
Darts *_darts;