Commit Graph

1080 Commits

Author SHA1 Message Date
Filippos Karapetis
4ffaf4df37 ZVISION: Add stubs for the hires VOB MPEG2 videos of ZGI DVD
VOB file handling is based on clone2727's work. The lowres videos are
played for now, until AC3 sound handling is implemented
2015-01-07 11:42:27 +02:00
Filippos Karapetis
e4969a98f8 ZVISION: Fix typo in include 2015-01-07 11:42:27 +02:00
Filippos Karapetis
cdbc06d0f7 ZVISION: Use a common function for loading game animations 2015-01-07 11:42:26 +02:00
Filippos Karapetis
2d0e9fc74a ZVISION: Move the screen initialization code into a separate function 2015-01-07 11:42:26 +02:00
Filippos Karapetis
fb135b38ed ZVISION: Cleanup 2015-01-07 11:42:26 +02:00
Filippos Karapetis
d70503cc98 ZVISION: Cleanup the ZIX file code
Also, add handling for 3 CDs, for Zork: Nemesis
2015-01-07 11:42:25 +02:00
Filippos Karapetis
364b72c29b ZVISION: Fix incorrect reference to cursor file 2015-01-07 11:42:25 +02:00
Filippos Karapetis
5949ab5aa6 ZVISION: Error out when a cursor file can't be found 2015-01-07 11:42:24 +02:00
Filippos Karapetis
9f642074ba ZVISION: Remove ActionRestoreGame and loading of r.svr (restart slot)
This is handled internally now, so r.svr isn't needed anymore
2015-01-07 11:42:24 +02:00
Filippos Karapetis
9420cc2faa ZVISION: Also handle paths in INQUIS.ZIX for the DVD version of ZGI 2015-01-07 11:42:24 +02:00
Filippos Karapetis
535249389a ZVISION: Add a new command, "dumpimage", to dump any game image to BMP 2015-01-07 11:42:23 +02:00
Matthew Hoops
34ec4ed6b5 ZVISION: Really fix truetype_font.cpp newlines
They are now all LF.
2015-01-01 17:36:12 -05:00
Filippos Karapetis
976b4adb4e ZVISION: Add support for unmodified INQUIS.ZIX files
This will greatly help users copy the unmodified file from the game
CDs of ZGI and get the game working straight away
2015-01-02 00:31:19 +02:00
Filippos Karapetis
0c54278f6c ZVISION: Fix newline in truetype_font.cpp 2015-01-02 00:28:20 +02:00
Filippos Karapetis
64979d5e45 ZVISION: Fix regression in the handling of multiple animations
A regression from 0c4e0673c3. Thanks to Marisa-Chan for noticing
2014-12-30 15:38:03 +02:00
Filippos Karapetis
88ba96aa3c ZVISION: Fix an off-by-one error in the RLF decoder
A regression from 7f61a09478. The current frame is the currently
displayed frame, not the frame that should be displayed next. Thanks to
clone2727 and Marisa-Chan for the explanation and fixes
2014-12-30 12:55:52 +02:00
RichieSams
df60506955 ZVISION: Restore LF line ending that was accidentally changed in 1f5736a902 2014-12-30 01:51:22 -06:00
RichieSams
1f5736a902 ZVISION: Update function documentation to represent the changes to the internal pixel format
Aka: We keep everything as 555, and only convert to 565 before we send everything to the backend
2014-12-30 01:19:54 -06:00
RichieSams
68d3ebd57b ZVISION: Rename some scripting classes to better represent what the classes are
Also, rename the graphics 'Effect' class in order to avoid naming clashes (and/or coder
confusion) with the newly named ScriptingEffect class.
Lastly, add some documentation for the classes for further clarity.
2014-12-30 01:10:36 -06:00
Filippos Karapetis
6c3af3c2e7 ZVISION: White space 2014-12-30 03:51:31 +02:00
Filippos Karapetis
7182b4f704 ZVISION: Initialize the starting frame to -1 in RLF animations 2014-12-30 03:51:15 +02:00
Filippos Karapetis
0c4e0673c3 ZVISION: Further cleanup to the AnimationNode class 2014-12-30 03:08:39 +02:00
Marisa-Chan
47b90ef3cd ZVISION: Search fonts in game directory (e.g. in game/FONTS/) 2014-12-30 01:33:47 +02:00
Marisa-Chan
45280d035a ZVISION: Fix font error message condition 2014-12-30 01:32:43 +02:00
Filippos Karapetis
f4d5b150f1 ZVISION: Show system messages when subtitles are disabled
Thanks to Marisa-Chan for spotting this
2014-12-29 12:34:55 +02:00
Matthew Hoops
6d55998b40 ZVISION: Make the rest of the controls properly use VideoDecoder timing
The hacky use of getDuration() to retrieve the framerate() is gone

Thanks to md5 for testing (and for filling in a few gaps since I was coding in the blind ;))
2014-12-28 21:27:56 -05:00
Filippos Karapetis
587b1ad69c ZVISION: The fist control is only used in one location 2014-12-28 18:42:18 +02:00
Filippos Karapetis
78b2c87d51 ZVISION: Document some more controls 2014-12-28 15:27:55 +02:00
Matthew Hoops
d0ac190625 ZVISION: Use VideoDecoder facilities better in AnimationNode
setEndFrame() will ensure the audio stops when it is supposed to. Also removes the hack of retrieving the frame rate through the getDuration()'s timestamp return value.

Thanks to md5 for testing
2014-12-28 04:43:22 -05:00
Willem Jan Palenstijn
c823a6e825 ZVISION: Fix cmdRawToWav on BE systems 2014-12-27 23:52:18 +01:00
Willem Jan Palenstijn
4931aee954 ZVISION: Fix typo 2014-12-27 23:51:59 +01:00
Willem Jan Palenstijn
cd595cb0ea ZVISION: Fix cursors on BE systems 2014-12-27 23:35:47 +01:00
Willem Jan Palenstijn
5791f600e9 ZVISION: Fix TGZ images on BE systems 2014-12-27 23:35:35 +01:00
Willem Jan Palenstijn
02eada1d0d ZVISION: Fix Zork AVI audio on BE systems 2014-12-27 23:13:08 +01:00
Willem Jan Palenstijn
58f328b9af ZVISION: Slightly clarify font error message 2014-12-27 22:23:05 +01:00
Filippos Karapetis
99fabffde0 ZVISION: Clean up settings and initialize the ones used by game scripts 2014-12-27 20:52:06 +02:00
Ori Avtalion
b3712cc877 ZVISION: Remove dead code (uint is always > 0) 2014-12-27 16:37:20 +02:00
Filippos Karapetis
1016838bd5 ZVISION: Add support for disabling animations while turning
Also, clean up and document game configuration options, and add a TODO
for QSound support
2014-12-27 16:34:27 +02:00
Filippos Karapetis
e862172460 ZVISION: Add some advanced engine features, and document the engine 2014-12-27 14:29:57 +02:00
Filippos Karapetis
ba40b3ea49 ZVISION: Clean up the game settings 2014-12-27 14:29:56 +02:00
Filippos Karapetis
fd34456bb8 ZVISION: Delete the render manager after the script manager on quit
This is necessary, as the script manager may include references to the
render manager, such as side effects in Zork: Nemesis. Fixes a crash on
engine exit when the current scene contains such effects
2014-12-27 01:02:51 +02:00
Filippos Karapetis
eb46e83796 ZVISION: Quit with an error message dialog if no font files are found 2014-12-27 00:00:07 +02:00
Filippos Karapetis
f9595b11fc ZVISION: Add an FPS timer (accessible with F10, or the "FRAME" cheat) 2014-12-26 23:18:54 +02:00
Filippos Karapetis
19ce38d40e ZVISION: Turn off subtitles, if requested 2014-12-26 22:51:33 +02:00
Filippos Karapetis
85142cd0d7 ZVISION: Remove duplicate subtitle code 2014-12-26 22:48:58 +02:00
Filippos Karapetis
a9701d04c1 ZVISION: Remove duplicate image loading code 2014-12-26 22:35:02 +02:00
Filippos Karapetis
db37cfb1b0 ZVISION: Remove duplicate blitting code for images and animations 2014-12-26 22:30:32 +02:00
Filippos Karapetis
2becc76d5c ZVISION: Correct the script names of the location-specific cheats 2014-12-26 19:56:37 +02:00
Filippos Karapetis
e5f0ee2271 ZVISION: Implement auto-saving 2014-12-26 18:22:18 +02:00
Filippos Karapetis
eea1ee445f ZVISION: Move more graphics code out of the main engine code 2014-12-26 13:14:24 +02:00
Filippos Karapetis
e8820d26e7 ZVISION: Fix a warning 2014-12-26 12:42:01 +02:00
Filippos Karapetis
5a72eea2bb ZVISION: Move some event/rendering code out of the main engine code 2014-12-26 12:41:36 +02:00
Filippos Karapetis
4258750f50 ZVISION: Rename _halveDelay to _doubleFPS, to match its config setting 2014-12-26 12:07:21 +02:00
Filippos Karapetis
2350eca546 ZVISION: Remove some unused actions. Cleanup 2014-12-26 12:04:21 +02:00
Filippos Karapetis
e4b2913e4a ZVISION: Reorder the detection entries 2014-12-26 04:05:48 +02:00
Filippos Karapetis
4d0ebfaa22 ZVISION: Move the save manager together with the other file classes 2014-12-26 04:03:20 +02:00
Filippos Karapetis
00a252fdc5 ZVISION: Slight cleanup 2014-12-26 03:58:37 +02:00
Filippos Karapetis
3661bc4cf1 ZVISION: Normalize and cleanup all the menu-related enums 2014-12-25 22:11:29 +02:00
Filippos Karapetis
6368a6ea91 ZVISION: Move the menu code together with the other scripting code 2014-12-25 22:00:55 +02:00
Filippos Karapetis
6c451c9cf4 ZVISION: Document where MIDI commands are used 2014-12-25 21:48:59 +02:00
Filippos Karapetis
11cf9b53ba ZVISION: Remove dead code, and fix bad usage of assert()
Since some compilers, like MSVC, strip out asserts in non-debug builds,
it's a bad idea to perform active commands within assert() statements.
In this particular case, the engine would attempt to open a file in an
assert statement
2014-12-25 21:19:19 +02:00
Filippos Karapetis
dbbcf64187 ZVISION: Use the search manager to open files in console commands 2014-12-25 21:17:47 +02:00
Filippos Karapetis
06fbca1e81 ZVISION: Remove dead code 2014-12-25 20:10:24 +02:00
Filippos Karapetis
36c851d0e4 ZVISION: Fix frame rate for RLF videos and remove hack in AnimationNode
_frameTime refers to msec, not ticks
2014-12-25 16:22:36 +02:00
Filippos Karapetis
5535cb02fc ZVISION: Resolve some TODOs 2014-12-25 15:14:59 +02:00
Filippos Karapetis
319323c668 ZVISION: Document some of the ActionRegion effects 2014-12-25 15:09:46 +02:00
Filippos Karapetis
fa2d8d927b ZVISION: Plug more memory leaks 2014-12-24 23:27:03 +02:00
Filippos Karapetis
75d78c71cc ZVISION: Plug another memory leak. Some cleanup 2014-12-24 23:18:01 +02:00
Filippos Karapetis
5f8418394b ZVISION: Set all the internal graphics operations to use RGB555 (2/2)
This is the second part of the changes to make the engine use RGB555
internally again. This is done to simplify the rendering pipeline -
the engine will use RGB555 internally, but will output to RGB565.
The overall changes have been broken into two commits, with this
commit finishing all the changes.

This is needed, as the game uses RGB555 graphics internally, but
its AVI animations (full screen and in-game) use RGB565
2014-12-24 22:56:56 +02:00
Filippos Karapetis
e8e21fabe4 ZVISION: Set all the internal graphics operations to use RGB555 (1/2)
This is the first part of the changes to make the engine use RGB555
internally again. This is done to simplify the rendering pipeline -
the engine will use RGB555 internally, but will output to RGB565.
The overall changes have been broken into two commits, thus this
first commit will break all the game colors
2014-12-24 22:56:55 +02:00
Filippos Karapetis
84341a889c ZVISION: Let the cursor manager do pixel format conversion for cursors 2014-12-24 22:56:55 +02:00
Filippos Karapetis
1bc9b13357 ZVISION: Introduce pixel formats for resources (555) and screen (565) 2014-12-24 22:56:55 +02:00
Filippos Karapetis
de2c9ed5bf ZVISION: Disable unused code 2014-12-24 22:56:54 +02:00
Filippos Karapetis
16e208318c ZVISION: Plug a memory leak 2014-12-24 22:56:54 +02:00
Filippos Karapetis
702adaf9f8 ZVISION: Remove duplicate code 2014-12-24 14:04:56 +02:00
Filippos Karapetis
c93776e1e0 ZVISION: Remove dead code 2014-12-24 13:55:49 +02:00
Filippos Karapetis
9948d3ca16 ZVISION: Add a hack to set the correct frame delay for RLF videos
Also, use Common::Rational to avoid using floating point math
2014-12-24 06:13:49 +02:00
Filippos Karapetis
6afeec1295 ZVISION: Handle animation rewinding outside the RLF encoder 2014-12-23 21:55:42 +02:00
Filippos Karapetis
6edc16b686 ZVISION: Spacing 2014-12-23 21:54:53 +02:00
Filippos Karapetis
78ba3e3246 ZVISION: Add error checking when loading in-game animations and videos 2014-12-23 21:46:20 +02:00
Filippos Karapetis
e8cc098cd4 ZVISION: Limit the engine delay, even when a custom frame rate is set 2014-12-23 11:54:39 +02:00
Filippos Karapetis
490382098e ZVISION: Disable more unused code 2014-12-23 11:06:39 +02:00
Filippos Karapetis
9f1fd0dbff ZVISION: Disable unused code 2014-12-23 11:03:57 +02:00
Adrian Astley
40bd4c485f ZVISION: Clamp the rotation velocity to never be zero
Before, if we set the in-game preferences to have very low rotation speed,
the velocity ends up always being 0 - 0.99
Hence, when we convert back to an int, everything gets truncated to zero.
Therefore, we clamp, in order to ensure the user can always move, no matter
which setting they use.
2014-12-23 00:39:25 -06:00
Adrian Astley
6548300a41 ZVISION: Use Common::Rational to simplify fixed point math 2014-12-23 00:39:20 -06:00
Adrian Astley
11cb47e897 ZVISION: Remove unnecessary math 2014-12-23 00:39:15 -06:00
Filippos Karapetis
99073f9b57 ZVISION: Fix some buffer overruns with the usage of sscanf() 2014-12-23 02:20:17 +02:00
Filippos Karapetis
7aeeeabba9 ZVISION: Add a comment about the special 0xCCCC character 2014-12-23 01:57:37 +02:00
Filippos Karapetis
15154641ac ZVISION: Move all of the text related code together 2014-12-23 01:53:40 +02:00
Filippos Karapetis
6a53c7cac1 ZVISION: Ignore the special 0xCCCC character in subtitles
This seems to be used as a newline character
2014-12-23 01:45:44 +02:00
Filippos Karapetis
eb4645cda8 ZVISION: Spacing 2014-12-23 00:10:12 +02:00
Filippos Karapetis
9bc0686e60 ZVISION: Remove leftover warning 2014-12-23 00:09:18 +02:00
Filippos Karapetis
fb924089fc ZVISION: Avoid using color masks for in-game animations
This fixes the transparency for some in-game animations. Since colors
can be truncated with color masks, and since accurate colors are
required for transparency, color masks can't be used. This fixes the
transparency of the in-game item examination interface in ZGI
2014-12-23 00:07:45 +02:00
Filippos Karapetis
3f36cc94e4 ZVISION: Limit the default engine delay for all animations
This fixes the lag between frames for all in-game animations
with a default frame delay
2014-12-23 00:07:45 +02:00
Filippos Karapetis
4e60fa705f ZVISION: Fix regression from commit 3806aa4418 2014-12-23 00:07:44 +02:00
Filippos Karapetis
58f7c12fa9 ZVISION: Remove dead code 2014-12-23 00:07:44 +02:00
Filippos Karapetis
b51852c641 ZVISION: Error out when the game string file isn't found 2014-12-22 02:58:18 +02:00
Filippos Karapetis
f364756bcf ZVISION: Add support for GNU Freefont fonts. Also, cleanup font loading
The Freefont fonts can just be dropped into the extras ScummVM folder,
to get the game working under non-Windows systems
2014-12-22 02:52:55 +02:00
Filippos Karapetis
c2d83d287f ZVISION: Allow dumping any file type via the new "dumpfiles" command 2014-12-22 02:50:34 +02:00
Filippos Karapetis
85644b8879 ZVISION: Prefix some class member variables with an underscore 2014-12-22 00:54:08 +02:00
Filippos Karapetis
b0e6c30ee2 ZVISION: Fix Venus key code handling in commit dfae161 2014-12-22 00:45:34 +02:00
Filippos Karapetis
41dbbe346c ZVISION: Also allow the movement when the cursor is within screen edges
This matches the behavior of the original in Zork: Nemesis. ZGI already
fills the screen horizontally
2014-12-22 00:30:26 +02:00
Filippos Karapetis
dfae161386 ZVISION: Implement the Venus hint system in Zork: Nemesis 2014-12-22 00:30:26 +02:00
Filippos Karapetis
e5ecd500cf ZVISION: Document some controls that are only used in Zork: Nemesis 2014-12-21 23:33:48 +02:00
Filippos Karapetis
965dafe31b ZVISION: Implement the "dumpallscripts" console command again 2014-12-21 23:33:01 +02:00
Filippos Karapetis
0f590561bd ZVISION: Simplify check
Thanks to DrMcCoy for spotting this
2014-12-20 18:06:26 +02:00
Filippos Karapetis
b41b3e1a89 ZVISION: Fix code formatting 2014-12-20 18:06:26 +02:00
Adrian Astley
808a2045b4 ZVISION: Fix code mis-alignment created from variable rename 2014-12-19 11:20:01 -06:00
Adrian Astley
acb172251a ZVISION: Large scale variable, function, and class renaming to improve code clarity 2014-12-19 11:14:10 -06:00
Filippos Karapetis
2170c9bc39 ZVISION: the type in ActionInventory is used as a signed byte now 2014-12-19 13:38:22 +02:00
Marisa-Chan
5fb33ee5e7 ZVISION: Fix unchecked return value (CID 1257098) 2014-12-19 17:19:12 +06:00
Marisa-Chan
79f75059de ZVISION: Fix copy into fixed size buffer (CID 1257096) 2014-12-19 17:18:46 +06:00
Marisa-Chan
fafbd425dc ZVISION: Fix copy into fixed size buffer (CID 1257095) 2014-12-19 17:18:11 +06:00
Marisa-Chan
3806aa4418 ZVISION: Fix explicit null dereferenced (CID 1257094) 2014-12-19 17:17:33 +06:00
Marisa-Chan
6d1fcdbdbd ZVISION: Fix copy into fixed size buffer (CID 1257093) 2014-12-19 17:15:48 +06:00
Marisa-Chan
6c5c1828e1 ZVISION: Fix unchecked return value (CID 1257092) 2014-12-19 17:15:21 +06:00
Marisa-Chan
ee7ba1bbaf ZVISION: Fix zork raw soundParams handling 2014-12-19 17:14:13 +06:00
Marisa-Chan
169bed1e5e ZVISION: Fix dereference after null check (CID 1257091) 2014-12-19 17:11:26 +06:00
Marisa-Chan
617623e9bf ZVISION: Fix unchecked return value (CID 1257090) 2014-12-19 17:07:28 +06:00
Marisa-Chan
e934ffdd5e ZVISION: Fix uninitialized scalar field (CID 1257089) 2014-12-19 17:06:47 +06:00
Marisa-Chan
c8f8da0308 ZVISION: Fix uninitialized scalar field (CID 1257088) 2014-12-19 17:05:31 +06:00
Marisa-Chan
2cb541c651 ZVISION: Fix uninitialized scalar field (CID 1257087) 2014-12-19 17:05:03 +06:00
Marisa-Chan
7609b6d866 ZVISION: Fix uninitialized scalar field (CID 1257086) 2014-12-19 17:04:26 +06:00
Marisa-Chan
7a0b5982b1 ZVISION: Fix uninitialized scalar field (CID 1257085) 2014-12-19 17:04:04 +06:00
Marisa-Chan
7e3c270e49 ZVISION: Fix uninitialized scalar field (CID 1257084) 2014-12-19 17:03:39 +06:00
Marisa-Chan
d6e3cea087 ZVISION: Fix uninitialized scalar field (CID 1257083) 2014-12-19 17:03:07 +06:00
Marisa-Chan
5db4e02f9a ZVISION: Fix uninitialized scalar field (CID 1257082) 2014-12-19 17:02:22 +06:00
Marisa-Chan
ed66fbefdf ZVISION: Fix uninitialized scalar field (CID 1257081) 2014-12-19 16:52:26 +06:00
Marisa-Chan
abf37ebbf3 ZVISION: Fix uninitialized scalar field (CID 1257080) 2014-12-19 16:51:43 +06:00
Marisa-Chan
1078d0c193 ZVISION: Fix uninitialized scalar field (CID 1257079) 2014-12-19 16:51:01 +06:00
Marisa-Chan
ea3ddd148f ZVISION: Fix uninitialized scalar field (CID 1257077) 2014-12-19 16:49:36 +06:00
Marisa-Chan
fb0872e40b ZVISION: Fix uninitialized scalar field (CID 1257076) 2014-12-19 16:48:36 +06:00
Marisa-Chan
7055ee7755 ZVISION: Fix uninitialized scalar field (CID 1257075) 2014-12-19 16:44:18 +06:00
Marisa-Chan
897ecc190f ZVISION: Fix uninitialized scalar field (CID 1257074) 2014-12-19 16:41:51 +06:00
Marisa-Chan
edf3528497 ZVISION: Fix uninitialized scalar field (CID 1257073) 2014-12-19 16:41:00 +06:00
Marisa-Chan
704a4b3400 ZVISION: Fix uninitialized scalar field (CID 1257072) 2014-12-19 16:39:21 +06:00
Marisa-Chan
8278ed6022 ZVISION: Fix uninitialized scalar field (CID 1257071) 2014-12-19 16:38:34 +06:00
Marisa-Chan
ea2ad625ff ZVISION: Fix uninitialized scalar field (CID 1257070) 2014-12-19 16:36:54 +06:00
Marisa-Chan
9c2782a680 ZVISION: Fix uninitialized scalar field (CID 1257069) 2014-12-19 16:35:15 +06:00
Marisa-Chan
dae76a76c7 ZVISION: Fix uninitialized scalar field (CID 1257068) 2014-12-19 16:34:11 +06:00
Marisa-Chan
3b83e82e6f ZVISION: Fix uninitialized scalar field (CID 1257067) 2014-12-19 16:33:26 +06:00
Marisa-Chan
b96c581881 ZVISION: Fix uninitialized scalar field (CID 1257066) 2014-12-19 16:32:27 +06:00
Marisa-Chan
efb9355223 ZVISION: Fix uninitialized scalar field (CID 1257065) 2014-12-19 16:31:33 +06:00
Marisa-Chan
044f252154 ZVISION: Fix uninitialized scalar field (CID 1257064) 2014-12-19 16:29:51 +06:00
Marisa-Chan
36af1ff5b1 ZVISION: Fix uninitialized scalar field (CID 1257063) 2014-12-19 16:27:27 +06:00
Marisa-Chan
f8c1b1eb28 ZVISION: Fix uninitialized scalar field (CID 1257062) 2014-12-19 16:22:57 +06:00
Marisa-Chan
56f7be8ab6 ZVISION: Fix uninitialized scalar field (CID 1257054) 2014-12-19 16:01:30 +06:00
Marisa-Chan
fe56e7d02b ZVISION: Fix uninitialized scalar field (CID 1257060) 2014-12-19 16:00:57 +06:00
Marisa-Chan
e28f8a5d8f ZVISION: Fix uninitialized scalar field (CID 1257059) 2014-12-19 16:00:57 +06:00
Marisa-Chan
cd2612a54e ZVISION: Fix uninitialized scalar field (CID 1257058) 2014-12-19 16:00:57 +06:00