Unified
Split
Showing
with
67 additions
and 810 deletions.
- +52 −27 engines/zvision/core/console.cpp
- +0 −2 engines/zvision/core/console.h
- +2 −2 engines/zvision/core/menu.h
- +0 −1 engines/zvision/module.mk
- +13 −9 engines/zvision/sound/zork_raw.cpp
- +0 −344 engines/zvision/utility/single_value_container.cpp
- +0 −183 engines/zvision/utility/single_value_container.h
- +0 −176 engines/zvision/utility/utility.cpp
- +0 −66 engines/zvision/utility/utility.h
| @@ -44,7 +44,6 @@ | ||
| namespace ZVision { | ||
|
|
||
| Console::Console(ZVision *engine) : GUI::Debugger(), _engine(engine) { | ||
| registerCmd("loadimage", WRAP_METHOD(Console, cmdLoadImage)); | ||
| registerCmd("loadvideo", WRAP_METHOD(Console, cmdLoadVideo)); | ||
| registerCmd("loadsound", WRAP_METHOD(Console, cmdLoadSound)); | ||
| registerCmd("raw2wav", WRAP_METHOD(Console, cmdRawToWav)); | ||
| @@ -55,18 +54,6 @@ Console::Console(ZVision *engine) : GUI::Debugger(), _engine(engine) { | ||
| registerCmd("changelocation", WRAP_METHOD(Console, cmdChangeLocation)); | ||
| registerCmd("dumpfile", WRAP_METHOD(Console, cmdDumpFile)); | ||
| registerCmd("parseallscrfiles", WRAP_METHOD(Console, cmdParseAllScrFiles)); | ||
| registerCmd("rendertext", WRAP_METHOD(Console, cmdRenderText)); | ||
| } | ||
|
|
||
| bool Console::cmdLoadImage(int argc, const char **argv) { | ||
| // if (argc == 4) | ||
| // _engine->getRenderManager()->renderImageToScreen(argv[1], atoi(argv[2]), atoi(argv[3])); | ||
| // else { | ||
| // DebugPrintf("Use loadimage <fileName> <destinationX> <destinationY> to load an image to the screen\n"); | ||
| // return true; | ||
| // } | ||
|
|
||
| return true; | ||
| } | ||
|
|
||
| bool Console::cmdLoadVideo(int argc, const char **argv) { | ||
| @@ -117,7 +104,42 @@ bool Console::cmdRawToWav(int argc, const char **argv) { | ||
| return true; | ||
| } | ||
|
|
||
| convertRawToWav(argv[1], _engine, argv[2]); | ||
| Common::File file; | ||
| if (!file.open(argv[1])) | ||
| return true; | ||
|
|
||
| Audio::AudioStream *audioStream = makeRawZorkStream(argv[1], _engine); | ||
|
|
||
| Common::DumpFile output; | ||
| output.open(argv[2]); | ||
|
|
||
| output.writeUint32BE(MKTAG('R', 'I', 'F', 'F')); | ||
| output.writeUint32LE(file.size() * 2 + 36); | ||
| output.writeUint32BE(MKTAG('W', 'A', 'V', 'E')); | ||
| output.writeUint32BE(MKTAG('f', 'm', 't', ' ')); | ||
| output.writeUint32LE(16); | ||
| output.writeUint16LE(1); | ||
| uint16 numChannels; | ||
| if (audioStream->isStereo()) { | ||
| numChannels = 2; | ||
| output.writeUint16LE(2); | ||
| } else { | ||
| numChannels = 1; | ||
| output.writeUint16LE(1); | ||
| } | ||
| output.writeUint32LE(audioStream->getRate()); | ||
| output.writeUint32LE(audioStream->getRate() * numChannels * 2); | ||
| output.writeUint16LE(numChannels * 2); | ||
| output.writeUint16LE(16); | ||
| output.writeUint32BE(MKTAG('d', 'a', 't', 'a')); | ||
| output.writeUint32LE(file.size() * 2); | ||
| int16 *buffer = new int16[file.size()]; | ||
| audioStream->readBuffer(buffer, file.size()); | ||
| output.write(buffer, file.size() * 2); | ||
|
|
||
| delete[] buffer; | ||
|
|
||
|
|
||
| return true; | ||
| } | ||
|
|
||
| @@ -186,7 +208,22 @@ bool Console::cmdDumpFile(int argc, const char **argv) { | ||
| return true; | ||
| } | ||
|
|
||
| writeFileContentsToFile(argv[1], argv[1]); | ||
| Common::File f; | ||
| if (!f.open(argv[1])) { | ||
| return true; | ||
| } | ||
|
|
||
| byte *buffer = new byte[f.size()]; | ||
| f.read(buffer, f.size()); | ||
|
|
||
| Common::DumpFile dumpFile; | ||
| dumpFile.open(argv[1]); | ||
|
|
||
| dumpFile.write(buffer, f.size()); | ||
| dumpFile.flush(); | ||
| dumpFile.close(); | ||
|
|
||
| delete[] buffer; | ||
|
|
||
| return true; | ||
| } | ||
| @@ -201,16 +238,4 @@ bool Console::cmdParseAllScrFiles(int argc, const char **argv) { | ||
| return true; | ||
| } | ||
|
|
||
| bool Console::cmdRenderText(int argc, const char **argv) { | ||
| if (argc != 7) { | ||
| debugPrintf("Use rendertext <text> <fontNumber> <destX> <destY> <maxWidth> <1 or 0: wrap> to render text\n"); | ||
| return true; | ||
| } | ||
|
|
||
| //StringManager::TextStyle style = _engine->getStringManager()->getTextStyle(atoi(argv[2])); | ||
| //_engine->getRenderManager()->renderTextToWorkingWindow(333, Common::String(argv[1]), style.font, atoi(argv[3]), atoi(argv[4]), style.color, atoi(argv[5]), -1, Graphics::kTextAlignLeft, atoi(argv[6]) == 0 ? false : true); | ||
|
|
||
| return true; | ||
| } | ||
|
|
||
| } // End of namespace ZVision | ||
| @@ -37,7 +37,6 @@ class Console : public GUI::Debugger { | ||
| private: | ||
| ZVision *_engine; | ||
|
|
||
| bool cmdLoadImage(int argc, const char **argv); | ||
| bool cmdLoadVideo(int argc, const char **argv); | ||
| bool cmdLoadSound(int argc, const char **argv); | ||
| bool cmdRawToWav(int argc, const char **argv); | ||
| @@ -48,7 +47,6 @@ class Console : public GUI::Debugger { | ||
| bool cmdChangeLocation(int argc, const char **argv); | ||
| bool cmdDumpFile(int argc, const char **argv); | ||
| bool cmdParseAllScrFiles(int argc, const char **argv); | ||
| bool cmdRenderText(int argc, const char **argv); | ||
| }; | ||
|
|
||
| } // End of namespace ZVision | ||
| @@ -82,7 +82,7 @@ class MenuZGI: public MenuHandler { | ||
| int mouseOnItem; | ||
|
|
||
| bool scrolled[3]; | ||
| float scrollPos[3]; | ||
| int16 scrollPos[3]; | ||
|
|
||
| enum { | ||
| menu_ITEM = 0, | ||
| @@ -111,7 +111,7 @@ class MenuNemesis: public MenuHandler { | ||
| int mouseOnItem; | ||
|
|
||
| bool scrolled; | ||
| float scrollPos; | ||
| int16 scrollPos; | ||
|
|
||
| bool redraw; | ||
|
|
||
| @@ -47,7 +47,6 @@ MODULE_OBJS := \ | ||
| text/text.o \ | ||
| utility/clock.o \ | ||
| utility/lzss_read_stream.o \ | ||
| utility/single_value_container.o \ | ||
| utility/utility.o \ | ||
| utility/win_keys.o \ | ||
| video/video.o \ | ||
| @@ -21,23 +21,21 @@ | ||
| */ | ||
|
|
||
| #include "common/scummsys.h" | ||
|
|
||
| #include "zvision/sound/zork_raw.h" | ||
|
|
||
| #include "zvision/zvision.h" | ||
| #include "zvision/detection.h" | ||
| #include "zvision/utility/utility.h" | ||
|
|
||
| #include "common/file.h" | ||
| #include "common/str.h" | ||
| #include "common/stream.h" | ||
| #include "common/memstream.h" | ||
| #include "common/bufferedstream.h" | ||
| #include "common/util.h" | ||
|
|
||
| #include "common/tokenizer.h" | ||
| #include "audio/audiostream.h" | ||
| #include "audio/decoders/raw.h" | ||
|
|
||
| #include "zvision/sound/zork_raw.h" | ||
| #include "zvision/zvision.h" | ||
| #include "zvision/detection.h" | ||
| #include "zvision/utility/utility.h" | ||
|
|
||
| namespace ZVision { | ||
|
|
||
| const int16 RawChunkStream::_stepAdjustmentTable[8] = { -1, -1, -1, 1, 4, 7, 10, 12}; | ||
| @@ -255,7 +253,13 @@ Audio::RewindableAudioStream *makeRawZorkStream(const Common::String &filePath, | ||
| Common::File *file = new Common::File(); | ||
| assert(engine->getSearchManager()->openFile(*file, filePath)); | ||
|
|
||
| Common::String fileName = getFileName(filePath); | ||
| // Get the file name | ||
| Common::StringTokenizer tokenizer(filePath, "/\\"); | ||
| Common::String fileName; | ||
| while (!tokenizer.empty()) { | ||
| fileName = tokenizer.nextToken(); | ||
| } | ||
|
|
||
| fileName.toLowercase(); | ||
|
|
||
| SoundParams soundParams = {}; | ||
Oops, something went wrong.