diff options
author | Travis Howell | 2006-09-29 05:33:22 +0000 |
---|---|---|
committer | Travis Howell | 2006-09-29 05:33:22 +0000 |
commit | 8d0d856bd85b11998655608a3ca4d1e52e129c96 (patch) | |
tree | c1f11afc810763a5929cb23566264f8bbeefbebf | |
parent | 5a8f3df4e8b131c3d393ebd0bea1b4ed08bd815e (diff) | |
download | scummvm-rg350-8d0d856bd85b11998655608a3ca4d1e52e129c96.tar.gz scummvm-rg350-8d0d856bd85b11998655608a3ca4d1e52e129c96.tar.bz2 scummvm-rg350-8d0d856bd85b11998655608a3ca4d1e52e129c96.zip |
Add last game (dimp) of PP
svn-id: r24002
-rw-r--r-- | engines/simon/game.cpp | 24 | ||||
-rw-r--r-- | engines/simon/intern.h | 1 | ||||
-rw-r--r-- | engines/simon/res.cpp | 54 | ||||
-rw-r--r-- | engines/simon/simon.cpp | 5 |
4 files changed, 79 insertions, 5 deletions
diff --git a/engines/simon/game.cpp b/engines/simon/game.cpp index d574a7a16b..65754e104d 100644 --- a/engines/simon/game.cpp +++ b/engines/simon/game.cpp @@ -73,6 +73,7 @@ static const PlainGameDescriptor simonGames[] = { {"simon1", "Simon the Sorcerer 1"}, {"simon2", "Simon the Sorcerer 2"}, {"feeble", "The Feeble Files"}, + {"dimp", "Demon in my Pocket"}, {"jumble", "Jumble"}, {"puzzle", "NoPatience"}, {"swampy", "Swampy Adventures"}, @@ -614,6 +615,10 @@ static GameFileDescription ELVIRA_GameFiles[] = { { "tbllist", GAME_TBLFILE, "319f6b227c7822a551f57d24e70f8149"}, }; +static GameFileDescription DIMP_GameFiles[] = { + { "Gdimp", GAME_BASEFILE, "0b1e89ae1dc2e012b7fa7a987b4ac42a"}, +}; + static GameFileDescription JUMBLE_GameFiles[] = { { "Gjumble", GAME_BASEFILE, "d54cce46d339038d1a6b74ea213655bc"}, }; @@ -1436,7 +1441,20 @@ static GameDescription gameDescriptions[] = { Common::kPlatformWindows, }, - // Jumble + // Simon the Sorcerer's Puzzle Pack - Demon in my Pocket + { + "dimp", + GType_PP, + GID_DIMP, + "CD", + ARRAYSIZE(DIMP_GameFiles), + DIMP_GameFiles, + GF_OLD_BUNDLE | GF_TALKIE, + Common::EN_ANY, + Common::kPlatformWindows, + }, + + // Simon the Sorcerer's Puzzle Pack - Jumble { "jumble", GType_PP, @@ -1449,7 +1467,7 @@ static GameDescription gameDescriptions[] = { Common::kPlatformWindows, }, - // Puzzle + // Simon the Sorcerer's Puzzle Pack - NoPatience { "puzzle", GType_PP, @@ -1462,7 +1480,7 @@ static GameDescription gameDescriptions[] = { Common::kPlatformWindows, }, - // Swampy Adventures + // Simon the Sorcerer's Puzzle Pack - Swampy Adventures { "swampy", GType_PP, diff --git a/engines/simon/intern.h b/engines/simon/intern.h index 8bdcef29a2..7dca106266 100644 --- a/engines/simon/intern.h +++ b/engines/simon/intern.h @@ -251,6 +251,7 @@ enum GameIds { GID_FEEBLEFILES_IT, GID_FEEBLEFILES_ES, + GID_DIMP, GID_JUMBLE, GID_PUZZLE, GID_SWAMPY diff --git a/engines/simon/res.cpp b/engines/simon/res.cpp index b8fe09120f..4724353ce1 100644 --- a/engines/simon/res.cpp +++ b/engines/simon/res.cpp @@ -932,10 +932,62 @@ byte *SimonEngine::loadVGAFile(uint id, uint type, uint32 &dstSize) { return dst; } +static const char *dimpSoundList[32] = { + "Beep", + "Birth", + "Boiling", + "Burp", + "Cough", + "Die1", + "Die2", + "Fart", + "Inject", + "Killchik", + "Puke", + "Lights", + "Shock", + "Snore", + "Snotty", + "Whip", + "Whistle", + "Work1", + "Work2", + "Yawn", + "And0w", + "And0x", + "And0y", + "And0z", + "And10", + "And11", + "And12", + "And13", + "And14", + "And15", + "And16", + "And17", +}; + + void SimonEngine::loadSound(uint sound, int pan, int vol, uint type) { byte *dst; - if (getFeatures() & GF_ZLIBCOMP) { + if (getGameId() == GID_DIMP) { + File in; + char filename[15]; + + assert(sound >= 1 && sound <= 32); + sprintf(filename, "%s.wav", dimpSoundList[sound - 1]); + + in.open(filename); + if (in.isOpen() == false) + error("loadSound: Can't load %s", filename); + + uint32 dstSize = in.size(); + dst = (byte *)malloc(dstSize); + if (in.read(dst, dstSize) != dstSize) + error("loadSound: Read failed"); + in.close(); + } else if (getFeatures() & GF_ZLIBCOMP) { char filename[15]; uint32 file, offset, srcSize, dstSize; diff --git a/engines/simon/simon.cpp b/engines/simon/simon.cpp index 74cc08ee8c..d238b7e269 100644 --- a/engines/simon/simon.cpp +++ b/engines/simon/simon.cpp @@ -422,7 +422,10 @@ int SimonEngine::init() { return -1; } - if (getGameType() == GType_FF || getGameType() == GType_PP) { + if (getGameId() == GID_DIMP) { + _screenWidth = 496; + _screenHeight = 400; + } else if (getGameType() == GType_FF || getGameType() == GType_PP) { _screenWidth = 640; _screenHeight = 480; } else { |