aboutsummaryrefslogtreecommitdiff
path: root/engines/zvision
diff options
context:
space:
mode:
Diffstat (limited to 'engines/zvision')
-rw-r--r--engines/zvision/animation/rlf_animation.cpp (renamed from engines/zvision/rlf_animation.cpp)2
-rw-r--r--engines/zvision/animation/rlf_animation.h (renamed from engines/zvision/rlf_animation.h)0
-rw-r--r--engines/zvision/archives/zfs_archive.cpp (renamed from engines/zvision/zfs_archive.cpp)2
-rw-r--r--engines/zvision/archives/zfs_archive.h (renamed from engines/zvision/zfs_archive.h)0
-rw-r--r--engines/zvision/core/console.cpp (renamed from engines/zvision/console.cpp)16
-rw-r--r--engines/zvision/core/console.h (renamed from engines/zvision/console.h)0
-rw-r--r--engines/zvision/core/events.cpp (renamed from engines/zvision/events.cpp)10
-rw-r--r--engines/zvision/core/menu.h (renamed from engines/zvision/menu.h)0
-rw-r--r--engines/zvision/core/save_manager.cpp (renamed from engines/zvision/save_manager.cpp)6
-rw-r--r--engines/zvision/core/save_manager.h (renamed from engines/zvision/save_manager.h)0
-rw-r--r--engines/zvision/cursors/cursor.cpp (renamed from engines/zvision/cursor.cpp)2
-rw-r--r--engines/zvision/cursors/cursor.h (renamed from engines/zvision/cursor.h)0
-rw-r--r--engines/zvision/cursors/cursor_manager.cpp (renamed from engines/zvision/cursor_manager.cpp)3
-rw-r--r--engines/zvision/cursors/cursor_manager.h (renamed from engines/zvision/cursor_manager.h)2
-rw-r--r--engines/zvision/detection.cpp2
-rw-r--r--engines/zvision/fonts/truetype_font.cpp (renamed from engines/zvision/truetype_font.cpp)4
-rw-r--r--engines/zvision/fonts/truetype_font.h (renamed from engines/zvision/truetype_font.h)0
-rw-r--r--engines/zvision/graphics/render_manager.cpp (renamed from engines/zvision/render_manager.cpp)4
-rw-r--r--engines/zvision/graphics/render_manager.h (renamed from engines/zvision/render_manager.h)4
-rw-r--r--engines/zvision/graphics/render_table.cpp (renamed from engines/zvision/render_table.cpp)2
-rw-r--r--engines/zvision/graphics/render_table.h (renamed from engines/zvision/render_table.h)0
-rw-r--r--engines/zvision/inventory/inventory_manager.h (renamed from engines/zvision/inventory_manager.h)0
-rw-r--r--engines/zvision/module.mk58
-rw-r--r--engines/zvision/scripting/actions.cpp (renamed from engines/zvision/actions.cpp)29
-rw-r--r--engines/zvision/scripting/actions.h (renamed from engines/zvision/actions.h)0
-rw-r--r--engines/zvision/scripting/control.cpp (renamed from engines/zvision/control.cpp)6
-rw-r--r--engines/zvision/scripting/control.h (renamed from engines/zvision/control.h)0
-rw-r--r--engines/zvision/scripting/controls/animation_control.cpp (renamed from engines/zvision/animation_control.cpp)10
-rw-r--r--engines/zvision/scripting/controls/animation_control.h (renamed from engines/zvision/animation_control.h)2
-rw-r--r--engines/zvision/scripting/controls/input_control.cpp (renamed from engines/zvision/input_control.cpp)10
-rw-r--r--engines/zvision/scripting/controls/input_control.h (renamed from engines/zvision/input_control.h)4
-rw-r--r--engines/zvision/scripting/controls/lever_control.cpp (renamed from engines/zvision/lever_control.cpp)20
-rw-r--r--engines/zvision/scripting/controls/lever_control.h (renamed from engines/zvision/lever_control.h)2
-rw-r--r--engines/zvision/scripting/controls/push_toggle_control.cpp (renamed from engines/zvision/push_toggle_control.cpp)8
-rw-r--r--engines/zvision/scripting/controls/push_toggle_control.h (renamed from engines/zvision/push_toggle_control.h)2
-rw-r--r--engines/zvision/scripting/controls/timer_node.cpp (renamed from engines/zvision/timer_node.cpp)24
-rw-r--r--engines/zvision/scripting/controls/timer_node.h (renamed from engines/zvision/timer_node.h)3
-rw-r--r--engines/zvision/scripting/puzzle.h (renamed from engines/zvision/puzzle.h)11
-rw-r--r--engines/zvision/scripting/scr_file_handling.cpp (renamed from engines/zvision/scr_file_handling.cpp)20
-rw-r--r--engines/zvision/scripting/script_manager.cpp (renamed from engines/zvision/script_manager.cpp)54
-rw-r--r--engines/zvision/scripting/script_manager.h (renamed from engines/zvision/script_manager.h)23
-rw-r--r--engines/zvision/sound/zork_raw.cpp (renamed from engines/zvision/zork_raw.cpp)22
-rw-r--r--engines/zvision/sound/zork_raw.h (renamed from engines/zvision/zork_raw.h)0
-rw-r--r--engines/zvision/strings/string_manager.cpp (renamed from engines/zvision/string_manager.cpp)4
-rw-r--r--engines/zvision/strings/string_manager.h (renamed from engines/zvision/string_manager.h)2
-rw-r--r--engines/zvision/subtitles/subtitles.h (renamed from engines/zvision/subtitles.h)0
-rw-r--r--engines/zvision/utility/clock.cpp (renamed from engines/zvision/clock.cpp)2
-rw-r--r--engines/zvision/utility/clock.h (renamed from engines/zvision/clock.h)0
-rw-r--r--engines/zvision/utility/lzss_read_stream.cpp (renamed from engines/zvision/lzss_read_stream.cpp)2
-rw-r--r--engines/zvision/utility/lzss_read_stream.h (renamed from engines/zvision/lzss_read_stream.h)0
-rw-r--r--engines/zvision/utility/single_value_container.cpp (renamed from engines/zvision/single_value_container.cpp)2
-rw-r--r--engines/zvision/utility/single_value_container.h (renamed from engines/zvision/single_value_container.h)0
-rw-r--r--engines/zvision/utility/utility.cpp (renamed from engines/zvision/utility.cpp)4
-rw-r--r--engines/zvision/utility/utility.h (renamed from engines/zvision/utility.h)0
-rw-r--r--engines/zvision/video/video.cpp (renamed from engines/zvision/video.cpp)6
-rw-r--r--engines/zvision/video/zork_avi_decoder.cpp (renamed from engines/zvision/zork_avi_decoder.cpp)4
-rw-r--r--engines/zvision/video/zork_avi_decoder.h (renamed from engines/zvision/zork_avi_decoder.h)0
-rw-r--r--engines/zvision/zvision.cpp17
-rw-r--r--engines/zvision/zvision.h12
59 files changed, 232 insertions, 190 deletions
diff --git a/engines/zvision/rlf_animation.cpp b/engines/zvision/animation/rlf_animation.cpp
index 5f1d41daae..c7307265c0 100644
--- a/engines/zvision/rlf_animation.cpp
+++ b/engines/zvision/animation/rlf_animation.cpp
@@ -22,7 +22,7 @@
#include "common/scummsys.h"
-#include "zvision/rlf_animation.h"
+#include "zvision/animation/rlf_animation.h"
#include "common/str.h"
#include "common/file.h"
diff --git a/engines/zvision/rlf_animation.h b/engines/zvision/animation/rlf_animation.h
index fe5b0d68b4..fe5b0d68b4 100644
--- a/engines/zvision/rlf_animation.h
+++ b/engines/zvision/animation/rlf_animation.h
diff --git a/engines/zvision/zfs_archive.cpp b/engines/zvision/archives/zfs_archive.cpp
index 24cff27fc4..b8175b4903 100644
--- a/engines/zvision/zfs_archive.cpp
+++ b/engines/zvision/archives/zfs_archive.cpp
@@ -22,7 +22,7 @@
#include "common/scummsys.h"
-#include "zvision/zfs_archive.h"
+#include "zvision/archives/zfs_archive.h"
#include "common/memstream.h"
#include "common/debug.h"
diff --git a/engines/zvision/zfs_archive.h b/engines/zvision/archives/zfs_archive.h
index d7b45e4b47..d7b45e4b47 100644
--- a/engines/zvision/zfs_archive.h
+++ b/engines/zvision/archives/zfs_archive.h
diff --git a/engines/zvision/console.cpp b/engines/zvision/core/console.cpp
index a095d3fa6a..0d325ef7f7 100644
--- a/engines/zvision/console.cpp
+++ b/engines/zvision/core/console.cpp
@@ -22,16 +22,16 @@
#include "common/scummsys.h"
-#include "zvision/console.h"
+#include "zvision/core/console.h"
#include "zvision/zvision.h"
-#include "zvision/script_manager.h"
-#include "zvision/render_manager.h"
-#include "zvision/string_manager.h"
-#include "zvision/zork_avi_decoder.h"
-#include "zvision/zork_raw.h"
-#include "zvision/utility.h"
-#include "zvision/cursor.h"
+#include "zvision/scripting/script_manager.h"
+#include "zvision/graphics/render_manager.h"
+#include "zvision/strings/string_manager.h"
+#include "zvision/video/zork_avi_decoder.h"
+#include "zvision/sound/zork_raw.h"
+#include "zvision/utility/utility.h"
+#include "zvision/cursors/cursor.h"
#include "common/system.h"
#include "common/file.h"
diff --git a/engines/zvision/console.h b/engines/zvision/core/console.h
index 0ca1b8cc70..0ca1b8cc70 100644
--- a/engines/zvision/console.h
+++ b/engines/zvision/core/console.h
diff --git a/engines/zvision/events.cpp b/engines/zvision/core/events.cpp
index 1103dc3000..40bfb879b1 100644
--- a/engines/zvision/events.cpp
+++ b/engines/zvision/core/events.cpp
@@ -24,11 +24,11 @@
#include "zvision/zvision.h"
-#include "zvision/console.h"
-#include "zvision/cursor_manager.h"
-#include "zvision/render_manager.h"
-#include "zvision/script_manager.h"
-#include "zvision/rlf_animation.h"
+#include "zvision/core/console.h"
+#include "zvision/cursors/cursor_manager.h"
+#include "zvision/graphics/render_manager.h"
+#include "zvision/scripting/script_manager.h"
+#include "zvision/animation/rlf_animation.h"
#include "common/events.h"
#include "common/system.h"
diff --git a/engines/zvision/menu.h b/engines/zvision/core/menu.h
index affc69abd5..affc69abd5 100644
--- a/engines/zvision/menu.h
+++ b/engines/zvision/core/menu.h
diff --git a/engines/zvision/save_manager.cpp b/engines/zvision/core/save_manager.cpp
index c3deadd703..b91f8eacad 100644
--- a/engines/zvision/save_manager.cpp
+++ b/engines/zvision/core/save_manager.cpp
@@ -22,11 +22,11 @@
#include "common/scummsys.h"
-#include "zvision/save_manager.h"
+#include "zvision/core/save_manager.h"
#include "zvision/zvision.h"
-#include "zvision/script_manager.h"
-#include "zvision/render_manager.h"
+#include "zvision/scripting/script_manager.h"
+#include "zvision/graphics/render_manager.h"
#include "common/system.h"
diff --git a/engines/zvision/save_manager.h b/engines/zvision/core/save_manager.h
index b4770e68b2..b4770e68b2 100644
--- a/engines/zvision/save_manager.h
+++ b/engines/zvision/core/save_manager.h
diff --git a/engines/zvision/cursor.cpp b/engines/zvision/cursors/cursor.cpp
index 9023d97e0d..be80f6585b 100644
--- a/engines/zvision/cursor.cpp
+++ b/engines/zvision/cursors/cursor.cpp
@@ -22,7 +22,7 @@
#include "common/scummsys.h"
-#include "zvision/cursor.h"
+#include "zvision/cursors/cursor.h"
#include "common/str.h"
#include "common/file.h"
diff --git a/engines/zvision/cursor.h b/engines/zvision/cursors/cursor.h
index 18ac28ce8b..18ac28ce8b 100644
--- a/engines/zvision/cursor.h
+++ b/engines/zvision/cursors/cursor.h
diff --git a/engines/zvision/cursor_manager.cpp b/engines/zvision/cursors/cursor_manager.cpp
index 595e7946dd..671f26ba2d 100644
--- a/engines/zvision/cursor_manager.cpp
+++ b/engines/zvision/cursors/cursor_manager.cpp
@@ -22,7 +22,7 @@
#include "common/scummsys.h"
-#include "zvision/cursor_manager.h"
+#include "zvision/cursors/cursor_manager.h"
#include "zvision/zvision.h"
@@ -102,6 +102,7 @@ void CursorManager::changeCursor(const Common::String &cursorName, bool pushed)
char buffer[25];
strcpy(buffer, _zgiCursorFileNames[i]);
buffer[3] += 2;
+ changeCursor(ZorkCursor(buffer));
}
return;
}
diff --git a/engines/zvision/cursor_manager.h b/engines/zvision/cursors/cursor_manager.h
index 0a369aaf9e..e982a40188 100644
--- a/engines/zvision/cursor_manager.h
+++ b/engines/zvision/cursors/cursor_manager.h
@@ -23,7 +23,7 @@
#ifndef ZVISION_CURSOR_MANAGER_H
#define ZVISION_CURSOR_MANAGER_H
-#include "zvision/cursor.h"
+#include "zvision/cursors/cursor.h"
#include "common/str.h"
diff --git a/engines/zvision/detection.cpp b/engines/zvision/detection.cpp
index 06e921dfa8..49664935e1 100644
--- a/engines/zvision/detection.cpp
+++ b/engines/zvision/detection.cpp
@@ -80,7 +80,7 @@ static const ZVisionGameDescription gameDescriptions[] = {
0,
AD_ENTRY1s("SCRIPTS.ZFS", "81efd40ecc3d22531e211368b779f17f", 8336944),
Common::EN_ANY,
- Common::kPlatformDOS,
+ Common::kPlatformWindows,
ADGF_NO_FLAGS,
GUIO1(GUIO_NONE)
},
diff --git a/engines/zvision/truetype_font.cpp b/engines/zvision/fonts/truetype_font.cpp
index 289b5fbbaf..f8910bfe06 100644
--- a/engines/zvision/truetype_font.cpp
+++ b/engines/zvision/fonts/truetype_font.cpp
@@ -22,10 +22,10 @@
#include "common/scummsys.h"
-#include "zvision/truetype_font.h"
+#include "zvision/fonts/truetype_font.h"
#include "zvision/zvision.h"
-#include "zvision/render_manager.h"
+#include "zvision/graphics/render_manager.h"
#include "common/debug.h"
#include "common/file.h"
diff --git a/engines/zvision/truetype_font.h b/engines/zvision/fonts/truetype_font.h
index 33f016cffd..33f016cffd 100644
--- a/engines/zvision/truetype_font.h
+++ b/engines/zvision/fonts/truetype_font.h
diff --git a/engines/zvision/render_manager.cpp b/engines/zvision/graphics/render_manager.cpp
index af8ca7fd64..f19df88935 100644
--- a/engines/zvision/render_manager.cpp
+++ b/engines/zvision/graphics/render_manager.cpp
@@ -22,9 +22,9 @@
#include "common/scummsys.h"
-#include "zvision/render_manager.h"
+#include "zvision/graphics/render_manager.h"
-#include "zvision/lzss_read_stream.h"
+#include "zvision/utility/lzss_read_stream.h"
#include "common/file.h"
#include "common/system.h"
diff --git a/engines/zvision/render_manager.h b/engines/zvision/graphics/render_manager.h
index 111bf6276c..cb71308bc3 100644
--- a/engines/zvision/render_manager.h
+++ b/engines/zvision/graphics/render_manager.h
@@ -23,8 +23,8 @@
#ifndef ZVISION_RENDER_MANAGER_H
#define ZVISION_RENDER_MANAGER_H
-#include "zvision/render_table.h"
-#include "zvision/truetype_font.h"
+#include "zvision/graphics/render_table.h"
+#include "zvision/fonts/truetype_font.h"
#include "common/rect.h"
#include "common/hashmap.h"
diff --git a/engines/zvision/render_table.cpp b/engines/zvision/graphics/render_table.cpp
index b6a6a3d2bb..ffd42e6a60 100644
--- a/engines/zvision/render_table.cpp
+++ b/engines/zvision/graphics/render_table.cpp
@@ -22,7 +22,7 @@
#include "common/scummsys.h"
-#include "zvision/render_table.h"
+#include "zvision/graphics/render_table.h"
#include "common/rect.h"
diff --git a/engines/zvision/render_table.h b/engines/zvision/graphics/render_table.h
index 898091193a..898091193a 100644
--- a/engines/zvision/render_table.h
+++ b/engines/zvision/graphics/render_table.h
diff --git a/engines/zvision/inventory_manager.h b/engines/zvision/inventory/inventory_manager.h
index ae6d116b18..ae6d116b18 100644
--- a/engines/zvision/inventory_manager.h
+++ b/engines/zvision/inventory/inventory_manager.h
diff --git a/engines/zvision/module.mk b/engines/zvision/module.mk
index 261168f133..4cf9c989cd 100644
--- a/engines/zvision/module.mk
+++ b/engines/zvision/module.mk
@@ -1,36 +1,36 @@
MODULE := engines/zvision
MODULE_OBJS := \
- actions.o \
- animation_control.o \
- clock.o \
- console.o \
- control.o \
- cursor.o \
- cursor_manager.o \
+ animation/rlf_animation.o \
+ archives/zfs_archive.o \
+ core/console.o \
+ core/events.o \
+ core/save_manager.o \
+ cursors/cursor.o \
+ cursors/cursor_manager.o \
detection.o \
- events.o \
- input_control.o \
- lever_control.o \
- lzss_read_stream.o \
- push_toggle_control.o \
- render_manager.o \
- render_table.o \
- rlf_animation.o \
- save_manager.o \
- scr_file_handling.o \
- script_manager.o \
- single_value_container.o \
- string_manager.o \
- timer_node.o \
- truetype_font.o \
- utility.o \
- video.o \
- zvision.o \
- zfs_archive.o \
- zork_avi_decoder.o \
- zork_raw.o
-
+ fonts/truetype_font.o \
+ graphics/render_manager.o \
+ graphics/render_table.o \
+ scripting/actions.o \
+ scripting/control.o \
+ scripting/controls/animation_control.o \
+ scripting/controls/input_control.o \
+ scripting/controls/lever_control.o \
+ scripting/controls/push_toggle_control.o \
+ scripting/controls/timer_node.o \
+ scripting/scr_file_handling.o \
+ scripting/script_manager.o \
+ sound/zork_raw.o \
+ strings/string_manager.o \
+ utility/clock.o \
+ utility/lzss_read_stream.o \
+ utility/single_value_container.o \
+ utility/utility.o \
+ video/video.o \
+ video/zork_avi_decoder.o \
+ zvision.o
+
MODULE_DIRS += \
engines/zvision
diff --git a/engines/zvision/actions.cpp b/engines/zvision/scripting/actions.cpp
index eae4ec2ed5..878fa752d5 100644
--- a/engines/zvision/actions.cpp
+++ b/engines/zvision/scripting/actions.cpp
@@ -22,15 +22,15 @@
#include "common/scummsys.h"
-#include "zvision/actions.h"
+#include "zvision/scripting/actions.h"
#include "zvision/zvision.h"
-#include "zvision/script_manager.h"
-#include "zvision/render_manager.h"
-#include "zvision/zork_raw.h"
-#include "zvision/zork_avi_decoder.h"
-#include "zvision/timer_node.h"
-#include "zvision/animation_control.h"
+#include "zvision/scripting/script_manager.h"
+#include "zvision/graphics/render_manager.h"
+#include "zvision/sound/zork_raw.h"
+#include "zvision/video/zork_avi_decoder.h"
+#include "zvision/scripting/controls/timer_node.h"
+#include "zvision/scripting/controls/animation_control.h"
#include "common/file.h"
@@ -124,7 +124,8 @@ ActionDisableControl::ActionDisableControl(const Common::String &line) {
bool ActionDisableControl::execute(ZVision *engine) {
debug("Disabling control %u", _key);
- engine->getScriptManager()->disableControl(_key);
+ ScriptManager *scriptManager = engine->getScriptManager();
+ scriptManager->setStateFlags(_key, scriptManager->getStateFlags(_key) | ScriptManager::DISABLED);
return true;
}
@@ -141,7 +142,8 @@ ActionEnableControl::ActionEnableControl(const Common::String &line) {
bool ActionEnableControl::execute(ZVision *engine) {
debug("Enabling control %u", _key);
- engine->getScriptManager()->enableControl(_key);
+ ScriptManager *scriptManager = engine->getScriptManager();
+ scriptManager->setStateFlags(_key, scriptManager->getStateFlags(_key) & ~ScriptManager::DISABLED);
return true;
}
@@ -185,6 +187,9 @@ bool ActionMusic::execute(ZVision *engine) {
Common::File *file = new Common::File();
if (file->open(_fileName)) {
audioStream = Audio::makeWAVStream(file, DisposeAfterUse::YES);
+ } else {
+ warning("Unable to open %s", _fileName.c_str());
+ return false;
}
} else {
audioStream = makeRawZorkStream(_fileName, engine);
@@ -220,8 +225,10 @@ bool ActionPreloadAnimation::execute(ZVision *engine) {
// TODO: Check if the Control already exists
// Create the control, but disable it until PlayPreload is called
- engine->getScriptManager()->addControl(new AnimationControl(engine, _key, _fileName));
- engine->getScriptManager()->disableControl(_key);
+ ScriptManager *scriptManager = engine->getScriptManager();
+ scriptManager->addControl(new AnimationControl(engine, _key, _fileName));
+ scriptManager->setStateFlags(_key, scriptManager->getStateFlags(_key) | ScriptManager::DISABLED);
+
return true;
}
diff --git a/engines/zvision/actions.h b/engines/zvision/scripting/actions.h
index afa3e3a2ac..afa3e3a2ac 100644
--- a/engines/zvision/actions.h
+++ b/engines/zvision/scripting/actions.h
diff --git a/engines/zvision/control.cpp b/engines/zvision/scripting/control.cpp
index bcbdabc143..35c4ea1441 100644
--- a/engines/zvision/control.cpp
+++ b/engines/zvision/scripting/control.cpp
@@ -22,11 +22,11 @@
#include "common/scummsys.h"
-#include "zvision/control.h"
+#include "zvision/scripting/control.h"
#include "zvision/zvision.h"
-#include "zvision/render_manager.h"
-#include "zvision/utility.h"
+#include "zvision/graphics/render_manager.h"
+#include "zvision/utility/utility.h"
#include "common/stream.h"
diff --git a/engines/zvision/control.h b/engines/zvision/scripting/control.h
index 770c540a12..770c540a12 100644
--- a/engines/zvision/control.h
+++ b/engines/zvision/scripting/control.h
diff --git a/engines/zvision/animation_control.cpp b/engines/zvision/scripting/controls/animation_control.cpp
index 1143380501..ec8f7a9647 100644
--- a/engines/zvision/animation_control.cpp
+++ b/engines/zvision/scripting/controls/animation_control.cpp
@@ -22,13 +22,13 @@
#include "common/scummsys.h"
-#include "zvision/animation_control.h"
+#include "zvision/scripting/controls/animation_control.h"
#include "zvision/zvision.h"
-#include "zvision/render_manager.h"
-#include "zvision/script_manager.h"
-#include "zvision/rlf_animation.h"
-#include "zvision/zork_avi_decoder.h"
+#include "zvision/graphics/render_manager.h"
+#include "zvision/scripting/script_manager.h"
+#include "zvision/animation/rlf_animation.h"
+#include "zvision/video/zork_avi_decoder.h"
#include "video/video_decoder.h"
diff --git a/engines/zvision/animation_control.h b/engines/zvision/scripting/controls/animation_control.h
index 2ac3691483..77663aaf1e 100644
--- a/engines/zvision/animation_control.h
+++ b/engines/zvision/scripting/controls/animation_control.h
@@ -23,7 +23,7 @@
#ifndef ZVISION_ANIMATION_CONTROL_H
#define ZVISION_ANIMATION_CONTROL_H
-#include "zvision/control.h"
+#include "zvision/scripting/control.h"
namespace Common {
diff --git a/engines/zvision/input_control.cpp b/engines/zvision/scripting/controls/input_control.cpp
index a445e1aae5..2685b01312 100644
--- a/engines/zvision/input_control.cpp
+++ b/engines/zvision/scripting/controls/input_control.cpp
@@ -22,13 +22,13 @@
#include "common/scummsys.h"
-#include "zvision/input_control.h"
+#include "zvision/scripting/controls/input_control.h"
#include "zvision/zvision.h"
-#include "zvision/script_manager.h"
-#include "zvision/string_manager.h"
-#include "zvision/render_manager.h"
-#include "zvision/utility.h"
+#include "zvision/scripting/script_manager.h"
+#include "zvision/strings/string_manager.h"
+#include "zvision/graphics/render_manager.h"
+#include "zvision/utility/utility.h"
#include "common/str.h"
#include "common/stream.h"
diff --git a/engines/zvision/input_control.h b/engines/zvision/scripting/controls/input_control.h
index aab2c991dc..f0fd8b502d 100644
--- a/engines/zvision/input_control.h
+++ b/engines/zvision/scripting/controls/input_control.h
@@ -23,8 +23,8 @@
#ifndef ZVISION_INPUT_CONTROL_H
#define ZVISION_INPUT_CONTROL_H
-#include "zvision/control.h"
-#include "zvision/string_manager.h"
+#include "zvision/scripting/control.h"
+#include "zvision/strings/string_manager.h"
#include "common/rect.h"
diff --git a/engines/zvision/lever_control.cpp b/engines/zvision/scripting/controls/lever_control.cpp
index 79049b8fcb..e08fdd10f3 100644
--- a/engines/zvision/lever_control.cpp
+++ b/engines/zvision/scripting/controls/lever_control.cpp
@@ -22,15 +22,15 @@
#include "common/scummsys.h"
-#include "zvision/lever_control.h"
+#include "zvision/scripting/controls/lever_control.h"
#include "zvision/zvision.h"
-#include "zvision/script_manager.h"
-#include "zvision/render_manager.h"
-#include "zvision/cursor_manager.h"
-#include "zvision/rlf_animation.h"
-#include "zvision/zork_avi_decoder.h"
-#include "zvision/utility.h"
+#include "zvision/scripting/script_manager.h"
+#include "zvision/graphics/render_manager.h"
+#include "zvision/cursors/cursor_manager.h"
+#include "zvision/animation/rlf_animation.h"
+#include "zvision/video/zork_avi_decoder.h"
+#include "zvision/utility/utility.h"
#include "common/stream.h"
#include "common/file.h"
@@ -377,11 +377,11 @@ void LeverControl::renderFrame(uint frameNumber) {
_lastRenderedFrame = frameNumber;
}
- const uint16 *frameData;
+ const uint16 *frameData = 0;
int x = _animationCoords.left;
int y = _animationCoords.top;
- int width;
- int height;
+ int width = 0;
+ int height = 0;
if (_fileType == RLF) {
// getFrameData() will automatically optimize to getNextFrame() / getPreviousFrame() if it can
diff --git a/engines/zvision/lever_control.h b/engines/zvision/scripting/controls/lever_control.h
index 8ef8f06fec..69473cf119 100644
--- a/engines/zvision/lever_control.h
+++ b/engines/zvision/scripting/controls/lever_control.h
@@ -23,7 +23,7 @@
#ifndef ZVISION_LEVER_CONTROL_H
#define ZVISION_LEVER_CONTROL_H
-#include "zvision/control.h"
+#include "zvision/scripting/control.h"
#include "common/list.h"
#include "common/rect.h"
diff --git a/engines/zvision/push_toggle_control.cpp b/engines/zvision/scripting/controls/push_toggle_control.cpp
index 689311ba5b..11ec4bb73f 100644
--- a/engines/zvision/push_toggle_control.cpp
+++ b/engines/zvision/scripting/controls/push_toggle_control.cpp
@@ -22,12 +22,12 @@
#include "common/scummsys.h"
-#include "zvision/push_toggle_control.h"
+#include "zvision/scripting/controls/push_toggle_control.h"
#include "zvision/zvision.h"
-#include "zvision/script_manager.h"
-#include "zvision/cursor_manager.h"
-#include "zvision/utility.h"
+#include "zvision/scripting/script_manager.h"
+#include "zvision/cursors/cursor_manager.h"
+#include "zvision/utility/utility.h"
#include "common/stream.h"
diff --git a/engines/zvision/push_toggle_control.h b/engines/zvision/scripting/controls/push_toggle_control.h
index 2a407cada9..13dc54a65f 100644
--- a/engines/zvision/push_toggle_control.h
+++ b/engines/zvision/scripting/controls/push_toggle_control.h
@@ -23,7 +23,7 @@
#ifndef ZVISION_PUSH_TOGGLE_CONTROL_H
#define ZVISION_PUSH_TOGGLE_CONTROL_H
-#include "zvision/control.h"
+#include "zvision/scripting/control.h"
#include "common/rect.h"
diff --git a/engines/zvision/timer_node.cpp b/engines/zvision/scripting/controls/timer_node.cpp
index 55dfa51dfe..3b691be275 100644
--- a/engines/zvision/timer_node.cpp
+++ b/engines/zvision/scripting/controls/timer_node.cpp
@@ -22,25 +22,39 @@
#include "common/scummsys.h"
-#include "zvision/timer_node.h"
+#include "zvision/scripting/controls/timer_node.h"
#include "zvision/zvision.h"
-#include "zvision/script_manager.h"
+#include "zvision/scripting/script_manager.h"
#include "common/stream.h"
namespace ZVision {
+
+TimerNode::TimerNode(ZVision *engine, uint32 key, uint timeInSeconds)
+ : Control(engine, key) {
+ if (_engine->getGameId() == GID_NEMESIS) {
+ _timeLeft = timeInSeconds * 1000;
+ } else if (_engine->getGameId() == GID_GRANDINQUISITOR) {
+ _timeLeft = timeInSeconds * 100;
+ }
+
+ _engine->getScriptManager()->setStateValue(_key, 1);
+}
-TimerNode::TimerNode(ZVision *engine, uint32 key, uint timeInSeconds)
- : Control(engine, key), _timeLeft(timeInSeconds * 1000) {
+TimerNode::~TimerNode() {
+ if (_timeLeft <= 0)
+ _engine->getScriptManager()->setStateValue(_key, 2);
+ else
+ _engine->getScriptManager()->setStateValue(_key, _timeLeft); // If timer was stopped by stop or kill
}
bool TimerNode::process(uint32 deltaTimeInMillis) {
_timeLeft -= deltaTimeInMillis;
if (_timeLeft <= 0) {
- _engine->getScriptManager()->setStateValue(_key, 0);
+ // Let the destructor reset the state value
return true;
}
diff --git a/engines/zvision/timer_node.h b/engines/zvision/scripting/controls/timer_node.h
index 32dca71548..a8e579cbe4 100644
--- a/engines/zvision/timer_node.h
+++ b/engines/zvision/scripting/controls/timer_node.h
@@ -23,7 +23,7 @@
#ifndef ZVISION_TIMER_NODE_H
#define ZVISION_TIMER_NODE_H
-#include "zvision/control.h"
+#include "zvision/scripting/control.h"
namespace ZVision {
@@ -32,6 +32,7 @@ class ZVision;
class TimerNode : public Control {
public:
TimerNode(ZVision *engine, uint32 key, uint timeInSeconds);
+ ~TimerNode();
/**
* Decrement the timer by the delta time. If the timer is finished, set the status
diff --git a/engines/zvision/puzzle.h b/engines/zvision/scripting/puzzle.h
index 1e730365dc..0d717f1fa9 100644
--- a/engines/zvision/puzzle.h
+++ b/engines/zvision/scripting/puzzle.h
@@ -23,7 +23,7 @@
#ifndef ZVISION_PUZZLE_H
#define ZVISION_PUZZLE_H
-#include "zvision/actions.h"
+#include "zvision/scripting/actions.h"
#include "common/list.h"
#include "common/ptr.h"
@@ -32,7 +32,7 @@
namespace ZVision {
struct Puzzle {
- Puzzle() : key(0), flags(0) {}
+ Puzzle() : key(0) {}
~Puzzle() {
for (Common::List<ResultAction *>::iterator iter = resultActions.begin(); iter != resultActions.end(); ++iter) {
@@ -63,17 +63,10 @@ struct Puzzle {
bool argumentIsAKey;
};
- enum StateFlags {
- ONCE_PER_INST = 0x01,
- DO_ME_NOW = 0x02, // Somewhat useless flag since anything that needs to be done immediately has no criteria
- DISABLED = 0x04
- };
-
uint32 key;
Common::List<Common::List <CriteriaEntry> > criteriaList;
// This has to be list of pointers because ResultAction is abstract
Common::List<ResultAction *> resultActions;
- uint flags;
};
} // End of namespace ZVision
diff --git a/engines/zvision/scr_file_handling.cpp b/engines/zvision/scripting/scr_file_handling.cpp
index e90408cf0d..d93094a3b2 100644
--- a/engines/zvision/scr_file_handling.cpp
+++ b/engines/zvision/scripting/scr_file_handling.cpp
@@ -22,13 +22,13 @@
#include "common/scummsys.h"
-#include "zvision/script_manager.h"
+#include "zvision/scripting/script_manager.h"
-#include "zvision/utility.h"
-#include "zvision/puzzle.h"
-#include "zvision/actions.h"
-#include "zvision/push_toggle_control.h"
-#include "zvision/lever_control.h"
+#include "zvision/utility/utility.h"
+#include "zvision/scripting/puzzle.h"
+#include "zvision/scripting/actions.h"
+#include "zvision/scripting/controls/push_toggle_control.h"
+#include "zvision/scripting/controls/lever_control.h"
#include "common/textconsole.h"
#include "common/file.h"
@@ -81,7 +81,7 @@ void ScriptManager::parsePuzzle(Puzzle *puzzle, Common::SeekableReadStream &stre
} else if (line.matchString("results {", true)) {
parseResults(stream, puzzle->resultActions);
} else if (line.matchString("flags {", true)) {
- puzzle->flags = parseFlags(stream);
+ setStateFlags(puzzle->key, parseFlags(stream));
}
line = stream.readLine();
@@ -259,11 +259,11 @@ uint ScriptManager::parseFlags(Common::SeekableReadStream &stream) const {
while (!stream.eos() && !line.contains('}')) {
if (line.matchString("ONCE_PER_INST", true)) {
- flags |= Puzzle::ONCE_PER_INST;
+ flags |= ONCE_PER_INST;
} else if (line.matchString("DO_ME_NOW", true)) {
- flags |= Puzzle::DO_ME_NOW;
+ flags |= DO_ME_NOW;
} else if (line.matchString("DISABLED", true)) {
- flags |= Puzzle::DISABLED;
+ flags |= DISABLED;
}
line = stream.readLine();
diff --git a/engines/zvision/script_manager.cpp b/engines/zvision/scripting/script_manager.cpp
index 66a54088fd..adcc5c7545 100644
--- a/engines/zvision/script_manager.cpp
+++ b/engines/zvision/scripting/script_manager.cpp
@@ -22,14 +22,14 @@
#include "common/scummsys.h"
-#include "zvision/script_manager.h"
+#include "zvision/scripting/script_manager.h"
#include "zvision/zvision.h"
-#include "zvision/render_manager.h"
-#include "zvision/cursor_manager.h"
-#include "zvision/save_manager.h"
-#include "zvision/actions.h"
-#include "zvision/utility.h"
+#include "zvision/graphics/render_manager.h"
+#include "zvision/cursors/cursor_manager.h"
+#include "zvision/core/save_manager.h"
+#include "zvision/scripting/actions.h"
+#include "zvision/utility/utility.h"
#include "common/algorithm.h"
#include "common/hashmap.h"
@@ -126,8 +126,7 @@ void ScriptManager::checkPuzzleCriteria() {
// Check if the puzzle is already finished
// Also check that the puzzle isn't disabled
- if (getStateValue(puzzle->key) == 1 &&
- (puzzle->flags & Puzzle::DISABLED) == 0) {
+ if (getStateValue(puzzle->key) == 1 && (getStateFlags(puzzle->key) & DISABLED) == 0) {
continue;
}
@@ -223,6 +222,23 @@ void ScriptManager::setStateValue(uint32 key, uint value) {
}
}
+uint ScriptManager::getStateFlags(uint32 key) {
+ if (_globalStateFlags.contains(key))
+ return _globalStateFlags[key];
+ else
+ return 0;
+}
+
+void ScriptManager::setStateFlags(uint32 key, uint flags) {
+ _globalStateFlags[key] = flags;
+
+ if (_referenceTable.contains(key)) {
+ for (Common::Array<Puzzle *>::iterator iter = _referenceTable[key].begin(); iter != _referenceTable[key].end(); ++iter) {
+ _puzzlesToCheck.push((*iter));
+ }
+ }
+}
+
void ScriptManager::addToStateValue(uint32 key, uint valueToAdd) {
_globalState[key] += valueToAdd;
}
@@ -241,24 +257,6 @@ Control *ScriptManager::getControl(uint32 key) {
return nullptr;
}
-void ScriptManager::enableControl(uint32 key) {
- for (ControlList::iterator iter = _activeControls.begin(); iter != _activeControls.end(); ++iter) {
- if ((*iter)->getKey() == key) {
- (*iter)->enable();
- break;
- }
- }
-}
-
-void ScriptManager::disableControl(uint32 key) {
- for (ControlList::iterator iter = _activeControls.begin(); iter != _activeControls.end(); ++iter) {
- if ((*iter)->getKey() == key) {
- (*iter)->disable();
- break;
- }
- }
-}
-
void ScriptManager::focusControl(uint32 key) {
for (ControlList::iterator iter = _activeControls.begin(); iter != _activeControls.end(); ++iter) {
uint32 controlKey = (*iter)->getKey();
@@ -352,7 +350,7 @@ void ScriptManager::changeLocation(char world, char room, char node, char view,
// Add all the local puzzles to the queue to be checked
for (PuzzleList::iterator iter = _activePuzzles.begin(); iter != _activePuzzles.end(); ++iter) {
// Reset any Puzzles that have the flag ONCE_PER_INST
- if (((*iter)->flags & Puzzle::ONCE_PER_INST) == Puzzle::ONCE_PER_INST) {
+ if ((getStateFlags((*iter)->key) & ONCE_PER_INST) == ONCE_PER_INST) {
setStateValue((*iter)->key, 0);
}
@@ -362,7 +360,7 @@ void ScriptManager::changeLocation(char world, char room, char node, char view,
// Add all the global puzzles to the queue to be checked
for (PuzzleList::iterator iter = _globalPuzzles.begin(); iter != _globalPuzzles.end(); ++iter) {
// Reset any Puzzles that have the flag ONCE_PER_INST
- if (((*iter)->flags & Puzzle::ONCE_PER_INST) == Puzzle::ONCE_PER_INST) {
+ if ((getStateFlags((*iter)->key) & ONCE_PER_INST) == ONCE_PER_INST) {
setStateValue((*iter)->key, 0);
}
diff --git a/engines/zvision/script_manager.h b/engines/zvision/scripting/script_manager.h
index 388d0805e0..ab9b03ed30 100644
--- a/engines/zvision/script_manager.h
+++ b/engines/zvision/scripting/script_manager.h
@@ -23,8 +23,8 @@
#ifndef ZVISION_SCRIPT_MANAGER_H
#define ZVISION_SCRIPT_MANAGER_H
-#include "zvision/puzzle.h"
-#include "zvision/control.h"
+#include "zvision/scripting/puzzle.h"
+#include "zvision/scripting/control.h"
#include "common/hashmap.h"
#include "common/queue.h"
@@ -54,12 +54,20 @@ typedef Common::List<Puzzle *> PuzzleList;
typedef Common::Queue<Puzzle *> PuzzleQueue;
typedef Common::List<Control *> ControlList;
typedef Common::HashMap<uint32, uint32> StateMap;
+typedef Common::HashMap<uint32, uint> StateFlagMap;
class ScriptManager {
public:
ScriptManager(ZVision *engine);
~ScriptManager();
+public:
+ enum StateFlags {
+ ONCE_PER_INST = 0x01,
+ DO_ME_NOW = 0x02, // Somewhat useless flag since anything that needs to be done immediately has no criteria
+ DISABLED = 0x04
+ };
+
private:
ZVision *_engine;
/**
@@ -68,6 +76,11 @@ private:
* particular state key are checked after the key is modified.
*/
StateMap _globalState;
+ /**
+ * Holds the flags for the global states. This is used to enable/disable puzzles and/or
+ * controls as well as which puzzles should are allowed to be re-executed
+ */
+ StateFlagMap _globalStateFlags;
/** References _globalState keys to Puzzles */
PuzzleMap _referenceTable;
/** Holds the Puzzles that should be checked this frame */
@@ -91,12 +104,12 @@ public:
void setStateValue(uint32 key, uint value);
void addToStateValue(uint32 key, uint valueToAdd);
+ uint getStateFlags(uint32 key);
+ void setStateFlags(uint32 key, uint flags);
+
void addControl(Control *control);
Control *getControl(uint32 key);
- void enableControl(uint32 key);
- void disableControl(uint32 key);
-
void focusControl(uint32 key);
/**
diff --git a/engines/zvision/zork_raw.cpp b/engines/zvision/sound/zork_raw.cpp
index 21613d9043..321ac93de2 100644
--- a/engines/zvision/zork_raw.cpp
+++ b/engines/zvision/sound/zork_raw.cpp
@@ -22,11 +22,11 @@
#include "common/scummsys.h"
-#include "zvision/zork_raw.h"
+#include "zvision/sound/zork_raw.h"
#include "zvision/zvision.h"
#include "zvision/detection.h"
-#include "zvision/utility.h"
+#include "zvision/utility/utility.h"
#include "common/file.h"
#include "common/str.h"
@@ -180,21 +180,29 @@ Audio::RewindableAudioStream *makeRawZorkStream(const Common::String &filePath,
Common::String fileName = getFileName(filePath);
fileName.toLowercase();
- SoundParams soundParams;
+ SoundParams soundParams = { ' ', 0, false, false };
+ bool foundParams = false;
+ char fileIdentifier = (engine->getGameId() == GID_NEMESIS) ? fileName[6] : fileName[7];
if (engine->getGameId() == GID_NEMESIS) {
for (int i = 0; i < 6; ++i) {
- if (RawZorkStream::_zNemSoundParamLookupTable[i].identifier == (fileName[6]))
+ if (RawZorkStream::_zNemSoundParamLookupTable[i].identifier == fileIdentifier) {
soundParams = RawZorkStream::_zNemSoundParamLookupTable[i];
+ foundParams = true;
+ }
}
- }
- else if (engine->getGameId() == GID_GRANDINQUISITOR) {
+ } else if (engine->getGameId() == GID_GRANDINQUISITOR) {
for (int i = 0; i < 6; ++i) {
- if (RawZorkStream::_zgiSoundParamLookupTable[i].identifier == (fileName[7]))
+ if (RawZorkStream::_zgiSoundParamLookupTable[i].identifier == fileIdentifier) {
soundParams = RawZorkStream::_zgiSoundParamLookupTable[i];
+ foundParams = true;
+ }
}
}
+ if (!foundParams)
+ error("Unable to find sound params for file '%s'. File identifier is '%c'", filePath.c_str(), fileIdentifier);
+
if (soundParams.packed) {
return makeRawZorkStream(wrapBufferedSeekableReadStream(file, 2048, DisposeAfterUse::YES), soundParams.rate, soundParams.stereo, DisposeAfterUse::YES);
} else {
diff --git a/engines/zvision/zork_raw.h b/engines/zvision/sound/zork_raw.h
index 481ea79f2d..481ea79f2d 100644
--- a/engines/zvision/zork_raw.h
+++ b/engines/zvision/sound/zork_raw.h
diff --git a/engines/zvision/string_manager.cpp b/engines/zvision/strings/string_manager.cpp
index ab42f3d3e0..77ed501672 100644
--- a/engines/zvision/string_manager.cpp
+++ b/engines/zvision/strings/string_manager.cpp
@@ -22,9 +22,9 @@
#include "common/scummsys.h"
-#include "zvision/string_manager.h"
+#include "zvision/strings/string_manager.h"
-#include "zvision/truetype_font.h"
+#include "zvision/fonts/truetype_font.h"
#include "common/file.h"
#include "common/tokenizer.h"
diff --git a/engines/zvision/string_manager.h b/engines/zvision/strings/string_manager.h
index 9cfed5261b..86bb9638d7 100644
--- a/engines/zvision/string_manager.h
+++ b/engines/zvision/strings/string_manager.h
@@ -25,7 +25,7 @@
#define ZVISION_STRING_MANAGER_H
#include "zvision/detection.h"
-#include "zvision/truetype_font.h"
+#include "zvision/fonts/truetype_font.h"
namespace Graphics {
diff --git a/engines/zvision/subtitles.h b/engines/zvision/subtitles/subtitles.h
index 13426e03e4..13426e03e4 100644
--- a/engines/zvision/subtitles.h
+++ b/engines/zvision/subtitles/subtitles.h
diff --git a/engines/zvision/clock.cpp b/engines/zvision/utility/clock.cpp
index c8ee717a33..49e4b32054 100644
--- a/engines/zvision/clock.cpp
+++ b/engines/zvision/utility/clock.cpp
@@ -23,7 +23,7 @@
#include "common/scummsys.h"
-#include "zvision/clock.h"
+#include "zvision/utility/clock.h"
#include "common/system.h"
diff --git a/engines/zvision/clock.h b/engines/zvision/utility/clock.h
index 3939ba1612..3939ba1612 100644
--- a/engines/zvision/clock.h
+++ b/engines/zvision/utility/clock.h
diff --git a/engines/zvision/lzss_read_stream.cpp b/engines/zvision/utility/lzss_read_stream.cpp
index bbbda6f526..dc537cd8ab 100644
--- a/engines/zvision/lzss_read_stream.cpp
+++ b/engines/zvision/utility/lzss_read_stream.cpp
@@ -22,7 +22,7 @@
#include "common/scummsys.h"
-#include "zvision/lzss_read_stream.h"
+#include "zvision/utility/lzss_read_stream.h"
namespace ZVision {
diff --git a/engines/zvision/lzss_read_stream.h b/engines/zvision/utility/lzss_read_stream.h
index f6b1eb1a65..f6b1eb1a65 100644
--- a/engines/zvision/lzss_read_stream.h
+++ b/engines/zvision/utility/lzss_read_stream.h
diff --git a/engines/zvision/single_value_container.cpp b/engines/zvision/utility/single_value_container.cpp
index 837bd8d7fc..2667b27b75 100644
--- a/engines/zvision/single_value_container.cpp
+++ b/engines/zvision/utility/single_value_container.cpp
@@ -22,7 +22,7 @@
#include "common/scummsys.h"
-#include "zvision/single_value_container.h"
+#include "zvision/utility/single_value_container.h"
#include "common/textconsole.h"
#include "common/str.h"
diff --git a/engines/zvision/single_value_container.h b/engines/zvision/utility/single_value_container.h
index 45b5a89e95..45b5a89e95 100644
--- a/engines/zvision/single_value_container.h
+++ b/engines/zvision/utility/single_value_container.h
diff --git a/engines/zvision/utility.cpp b/engines/zvision/utility/utility.cpp
index d973cb2f4c..6471d21e6c 100644
--- a/engines/zvision/utility.cpp
+++ b/engines/zvision/utility/utility.cpp
@@ -22,10 +22,10 @@
#include "common/scummsys.h"
-#include "zvision/utility.h"
+#include "zvision/utility/utility.h"
#include "zvision/zvision.h"
-#include "zvision/zork_raw.h"
+#include "zvision/sound/zork_raw.h"
#include "common/tokenizer.h"
#include "common/file.h"
diff --git a/engines/zvision/utility.h b/engines/zvision/utility/utility.h
index fb571f3fe8..fb571f3fe8 100644
--- a/engines/zvision/utility.h
+++ b/engines/zvision/utility/utility.h
diff --git a/engines/zvision/video.cpp b/engines/zvision/video/video.cpp
index cd11618e67..efaecb5045 100644
--- a/engines/zvision/video.cpp
+++ b/engines/zvision/video/video.cpp
@@ -24,8 +24,8 @@
#include "zvision/zvision.h"
-#include "zvision/clock.h"
-#include "zvision/render_manager.h"
+#include "zvision/utility/clock.h"
+#include "zvision/graphics/render_manager.h"
#include "common/system.h"
@@ -107,7 +107,7 @@ void ZVision::playVideo(Video::VideoDecoder &videoDecoder, const Common::Rect &d
uint16 finalWidth = origWidth * scale;
uint16 finalHeight = origHeight * scale;
- byte *scaledVideoFrameBuffer;
+ byte *scaledVideoFrameBuffer = 0;
if (scale != 1) {
scaledVideoFrameBuffer = new byte[finalWidth * finalHeight * bytesPerPixel];
}
diff --git a/engines/zvision/zork_avi_decoder.cpp b/engines/zvision/video/zork_avi_decoder.cpp
index a614f77bb7..d3db3421af 100644
--- a/engines/zvision/zork_avi_decoder.cpp
+++ b/engines/zvision/video/zork_avi_decoder.cpp
@@ -23,9 +23,9 @@
#include "common/scummsys.h"
-#include "zvision/zork_avi_decoder.h"
+#include "zvision/video/zork_avi_decoder.h"
-#include "zvision/zork_raw.h"
+#include "zvision/sound/zork_raw.h"
#include "common/stream.h"
diff --git a/engines/zvision/zork_avi_decoder.h b/engines/zvision/video/zork_avi_decoder.h
index ec2be1bb13..ec2be1bb13 100644
--- a/engines/zvision/zork_avi_decoder.h
+++ b/engines/zvision/video/zork_avi_decoder.h
diff --git a/engines/zvision/zvision.cpp b/engines/zvision/zvision.cpp
index 6d8ae6d5a7..f57e225ac1 100644
--- a/engines/zvision/zvision.cpp
+++ b/engines/zvision/zvision.cpp
@@ -24,13 +24,13 @@
#include "zvision/zvision.h"
-#include "zvision/console.h"
-#include "zvision/script_manager.h"
-#include "zvision/render_manager.h"
-#include "zvision/cursor_manager.h"
-#include "zvision/save_manager.h"
-#include "zvision/string_manager.h"
-#include "zvision/zfs_archive.h"
+#include "zvision/core/console.h"
+#include "zvision/scripting/script_manager.h"
+#include "zvision/graphics/render_manager.h"
+#include "zvision/cursors/cursor_manager.h"
+#include "zvision/core/save_manager.h"
+#include "zvision/strings/string_manager.h"
+#include "zvision/archives/zfs_archive.h"
#include "zvision/detection.h"
#include "common/config-manager.h"
@@ -51,7 +51,8 @@ namespace ZVision {
ZVision::ZVision(OSystem *syst, const ZVisionGameDescription *gameDesc)
: Engine(syst),
_gameDescription(gameDesc),
- _workingWindow((WINDOW_WIDTH - WORKING_WINDOW_WIDTH) / 2, (WINDOW_HEIGHT - WORKING_WINDOW_HEIGHT) / 2, ((WINDOW_WIDTH - WORKING_WINDOW_WIDTH) / 2) + WORKING_WINDOW_WIDTH, ((WINDOW_HEIGHT - WORKING_WINDOW_HEIGHT) / 2) + WORKING_WINDOW_HEIGHT),
+ _workingWindow(gameDesc->gameId == GID_NEMESIS ? Common::Rect((WINDOW_WIDTH - ZNEM_WORKING_WINDOW_WIDTH) / 2, (WINDOW_HEIGHT - ZNEM_WORKING_WINDOW_HEIGHT) / 2, ((WINDOW_WIDTH - ZNEM_WORKING_WINDOW_WIDTH) / 2) + ZNEM_WORKING_WINDOW_WIDTH, ((WINDOW_HEIGHT - ZNEM_WORKING_WINDOW_HEIGHT) / 2) + ZNEM_WORKING_WINDOW_HEIGHT) :
+ Common::Rect((WINDOW_WIDTH - ZGI_WORKING_WINDOW_WIDTH) / 2, (WINDOW_HEIGHT - ZGI_WORKING_WINDOW_HEIGHT) / 2, ((WINDOW_WIDTH - ZGI_WORKING_WINDOW_WIDTH) / 2) + ZGI_WORKING_WINDOW_WIDTH, ((WINDOW_HEIGHT - ZGI_WORKING_WINDOW_HEIGHT) / 2) + ZGI_WORKING_WINDOW_HEIGHT)),
_pixelFormat(2, 5, 6, 5, 0, 11, 5, 0, 0), /*RGB 565*/
_desiredFrameTime(33), /* ~30 fps */
_clock(_system),
diff --git a/engines/zvision/zvision.h b/engines/zvision/zvision.h
index 84784d9a89..1c525c1fc1 100644
--- a/engines/zvision/zvision.h
+++ b/engines/zvision/zvision.h
@@ -25,7 +25,7 @@
#define ZVISION_ZVISION_H
#include "zvision/detection.h"
-#include "zvision/clock.h"
+#include "zvision/utility/clock.h"
#include "common/random.h"
#include "common/events.h"
@@ -70,8 +70,14 @@ private:
enum {
WINDOW_WIDTH = 640,
WINDOW_HEIGHT = 480,
- WORKING_WINDOW_WIDTH = 512,
- WORKING_WINDOW_HEIGHT = 320,
+
+ //Zork nemesis working window sizes
+ ZNEM_WORKING_WINDOW_WIDTH = 512,
+ ZNEM_WORKING_WINDOW_HEIGHT = 320,
+
+ //ZGI(and default) working window sizes
+ ZGI_WORKING_WINDOW_WIDTH = 640,
+ ZGI_WORKING_WINDOW_HEIGHT = 344,
ROTATION_SCREEN_EDGE_OFFSET = 60,
MAX_ROTATION_SPEED = 400 // Pixels per second