Commit graph

82 commits

Author SHA1 Message Date
Colin Snover
f99c83c0a0 DREAMWEB: Fix out-of-bounds read of frame animation data
The game reads until it sees 0xFF, which is not until frame 14 for
some animations in the first interactive room of the game. This
happened to work previously because the struct is packed so it
would read into the b31.. members, but this was still technically
an out-of-bounds read.
2017-11-11 16:19:23 -06:00
Johannes Schickel
aaff7b1736 DREAMWEB: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
Alyssa Milburn
6e70f77289 DREAMWEB: Dynamically allocate GraphicsFile::_frames.
This avoids extra memory usage due to the previous commit.
2012-02-23 22:37:21 +01:00
Willem Jan Palenstijn
3fc8b7227b DREAMWEB: Fix missing subtitle lines in speech+subtitle mode
This is done by adding a (very ugly) way to force the previous timed-temp
line off screen, so the next one can be shown.
2012-02-12 23:57:09 +01:00
Willem Jan Palenstijn
ea6546ae25 DREAMWEB: Clean up checkCoords 2011-12-28 19:55:06 +01:00
Max Horn
13e252ebd0 DREAMWEB: Add 'packed' attribute to structs that need it
... and probably also to some that don't need it; since it seems better to
err on the wrong side here for now, I did not check every struct as to whether
it really needs this. On the long run, it would be better if the code did not
rely on any kind of packing anyway.
2011-12-28 16:36:18 +01:00
Max Horn
ca7da4cffc DREAMWEB: Rename a member of SetObject & DynObject to objId
SetObject::name and DynObject::id are stored at the exact same offset,
and have the exact same meaning (see also objectMatches()). Now they
also have the same name, objId.
2011-12-28 16:36:16 +01:00
Willem Jan Palenstijn
77b8491b8b DREAMWEB: Remove unused Sprite fields 2011-12-28 15:19:59 +01:00
Willem Jan Palenstijn
4e207dbc7a DREAMWEB: Clean up Sprite::_updateCallback 2011-12-28 15:19:59 +01:00
Filippos Karapetis
279746fcf0 DREAMWEB: Completely remove all of the runtime, and move everything into DreamWebEngine
Also, remove dead code (allocateMem/deallocateMem)
2011-12-28 15:07:17 +02:00
Willem Jan Palenstijn
57e940f678 DREAMWEB: Move all saved variables to a GameVars struct
The data segment is now completely unused.
2011-12-28 13:12:22 +01:00
Willem Jan Palenstijn
914bf3d519 DREAMWEB: Remove setdat, freedat segments 2011-12-27 23:05:27 +01:00
Willem Jan Palenstijn
f729742f87 DREAMWEB: Convert exText into TextFile 2011-12-27 23:02:33 +01:00
Willem Jan Palenstijn
90cb52b7f6 DREAMWEB: Streamline graphics file access 2011-12-27 23:01:58 +01:00
Willem Jan Palenstijn
08be0411b1 DREAMWEB: Streamline text file handling 2011-12-27 18:40:25 +01:00
Willem Jan Palenstijn
df7bb24184 DREAMWEB: Create MapFlags struct, remove backdrops segment 2011-12-27 18:01:33 +01:00
Filippos Karapetis
4c9a600618 DREAMWEB: Remove dead code 2011-12-27 10:43:44 +02:00
Filippos Karapetis
bda312b61b DREAMWEB: Remove more unused/unnecessary variables 2011-12-27 10:16:06 +02:00
Willem Jan Palenstijn
c86a830c4a DREAMWEB: Move openInvList, ryanInvList out of buffers 2011-12-26 17:42:19 +01:00
Filippos Karapetis
7945a0fbb0 DREAMWEB: Cleaned up findFirstPath(), fixed a regression and moved it to DreamBase 2011-12-26 02:50:02 +02:00
Filippos Karapetis
3802b21183 DREAMWEB: Move some functions to DreamBase 2011-12-25 15:07:56 +02:00
Filippos Karapetis
652403021d DREAMWEB: Convert 'checkobjectsize' to C++
Also, renamed getOpenedSizeCPP() to getSlotCount(). Special thanks to
wjp for his help and for examining the behavior of a fallback case.
2011-12-25 04:53:26 +02:00
Willem Jan Palenstijn
8e79608a1d DREAMWEB: Move sprite table out of buffers 2011-12-23 23:46:38 +01:00
Willem Jan Palenstijn
814793de49 DREAMWEB: Move rainlist out of buffers 2011-12-23 23:46:38 +01:00
Willem Jan Palenstijn
0f36350e03 DREAMWEB: Fix regression from moving ReelRoutines out of data
The struct People still had an old-style pointer to a ReelRoutine.
Fix this by converting People to use a real ReelRoutine * and moving
the PeopleList from the buffers segment to a Common::List.

Thanks to digitall for the assistance with tracking this down.
2011-12-23 19:15:25 +01:00
Max Horn
cdc6bc421b DREAMWEB: Turn RectWithCallback into template
Also moves checkCoords to DreamBase, adding a nasty cast to it. This is a
temporary HACK, which allows moving functions that use checkCoords to
DreamBase one at a time, instead of all at once (and at the same time as
checkCoords). This can be undone once everything using checkCoords has been
moved to DreamBase.
2011-12-23 03:39:44 +02:00
Willem Jan Palenstijn
60ece632b8 DREAMWEB: Remove reelRoutines from data blob 2011-12-18 16:54:16 +01:00
Filippos Karapetis
421c8cd262 DREAMWEB: Port 'setpickup' to C++ and added an enum for the object types 2011-12-18 11:26:19 +02:00
Willem Jan Palenstijn
46caa77164 DREAMWEB: Add disabled reelRoutine conversion work 2011-12-17 22:28:54 +01:00
Willem Jan Palenstijn
5958d2d29a DREAMWEB: Name some DynObject/SetObject fields
Also change getAnyAd() behaviour to be consistent between Free/Ex and
Set objects, diverging from the original.
2011-12-17 21:02:31 +01:00
Filippos Karapetis
71362cc35d DREAMWEB: Remove a lot of unused variables 2011-12-12 17:23:32 +02:00
Max Horn
0193ef590d DREAMWEB: Cleanup end of namespace comments 2011-12-06 21:49:41 +01:00
Willem Jan Palenstijn
585bd7b0ef DREAMWEB: Untangle namespaces 2011-12-05 19:26:46 +01:00
Bertrand Augereau
87ac82db27 DREAMWEB: kIcons1 and kIcons2 ownership transferred from the VM to the engine 2011-12-04 18:23:30 +01:00
Willem Jan Palenstijn
69301e4f63 DREAMWEB: Convert 'atmospheres' 2011-12-03 19:54:05 +01:00
Bertrand Augereau
f6f47d13cc DREAMWEB: CR at last line 2011-12-03 18:06:24 +01:00
Willem Jan Palenstijn
a64c89e7dd DREAMWEB: Don't use Madeuproomdat as a global when not necessary 2011-12-03 16:07:48 +01:00
Willem Jan Palenstijn
15856843a4 DREAMWEB: Create and use FileHeader struct 2011-12-03 15:47:33 +01:00
Willem Jan Palenstijn
908ba272f8 DREAMWEB: Move roomData out of opaque data segment 2011-12-03 14:55:54 +01:00
Bertrand Augereau
24c355e04f DREAMWEB: Ported 'sparky' to C++ 2011-12-01 18:33:05 +01:00
Bertrand Augereau
dc38524c91 DREAMWEB: Naming of ReelRoutine members 2011-12-01 12:18:04 +01:00
Willem Jan Palenstijn
3f30105fff DREAMWEB: Add utility function ObjPos::contains 2011-11-27 18:56:37 +01:00
Willem Jan Palenstijn
139a868d37 DREAMWEB: Fix Room struct
Room::name is a zero terminated 8.3 filename, so 13 bytes long.
2011-11-26 20:18:56 +01:00
Bertrand Augereau
21d787d065 DREAMWEB: Ceaning in 'startloading' 2011-11-26 12:29:09 +01:00
Bertrand Augereau
e51bcdbb53 DREAMWEB: Sound structure 2011-11-22 17:00:22 +01:00
Willem Jan Palenstijn
f4be01b1c1 DREAMWEB: Add some sprite-related comments and names 2011-11-18 22:34:46 +01:00
Bertrand Augereau
fc7a36d911 DREAMWEB: Cleaning in room loading 2011-11-17 12:38:17 +01:00
Willem Jan Palenstijn
81c16d12c8 DREAMWEB: Clean up 'dodoor' 2011-11-16 23:29:17 +01:00
Willem Jan Palenstijn
b53a299790 DREAMWEB: Unhardcode checkcoords tables
This patch makes __dispatch_call (even more) superfluous,
but does not yet remove it.
2011-11-14 21:44:10 +01:00
Bertrand Augereau
98a6b339af DREAMWEB: 'checkpathison' ported to C++ 2011-09-02 07:57:18 +02:00