Commit graph

62 commits

Author SHA1 Message Date
Max Horn
26ee630756 Moved engines to the new engines/ directory
svn-id: r20582
2006-02-11 22:45:04 +00:00
Torbjörn Andersson
87047c85cd Fix $Header$ and some minor file header inconsistencies.
svn-id: r20444
2006-02-09 15:12:44 +00:00
Eugene Sandulenko
ea42bad781 Update copyright notice
svn-id: r20088
2006-01-18 17:39:49 +00:00
Torbjörn Andersson
8f4e03935e Changed debug level to be slightly more consistent with Broken Sword 1.
svn-id: r19589
2005-11-13 19:42:54 +00:00
Torbjörn Andersson
7f4cda6622 Applied my own patch #1341495, in an attempt to fix alignment issues
reported by Crilith.

To elaborate a bit, the engine no longer accesses resource data through
packed structs. Instead it uses memory streams and the READ/WRITE
functions.

If data is mainly read, not written, I have replaced the old struct with a
new one with a read() function to read the whole thing from memory into the
struct's variables, and a write() function to dump the struct's variables
to memory. In fact, most of these write() functions remain unused.

If data is both read and written, I have replaced the struct with a class
with individual get/set functions to replace the old variables. This
manipulates memory directly.

Since I'm fairly sure that these structs are frequently stored as local
variables for a script, all script variables (both local and global) are
stored as little-endian and accessed through the READ/WRITE functions,
rather than being treated as arrays of 32-bit integers.

On a positive note, the functions for doing endian conversion of resources
and save games have been removed, and some general cleanups have been made
to assist in the rewrite.

Initial reports indicate that this patch indeed fixes alignment issues, and
that I have not - surprisingly - broken the game on big-endian platforms.
At least not in any immediately obvious way. And there's still plenty of
time to fix regressions before 0.9.0, too.

svn-id: r19366
2005-10-29 21:24:54 +00:00
Eugene Sandulenko
b36677af71 Update FSF address. Eek. Actually that took place on May 1, 2005
svn-id: r19142
2005-10-18 01:30:26 +00:00
Torbjörn Andersson
f7a6729a01 This should really be two or three different commits, but I'm too lazy for
that:

* Re-worked the elevator script bug workaround so that it's more consistent
  with the other two script bug workarounds.

* Some renamings to make it more clear that game events and input events
  are two completely different things.

* Added function for clearing pending input events, and used that to fix an
  annoying keyboard repeat bug when closing the debug console. (The console
  would keep re-opening because the key press to open it kept repeating
  even though the key had been released.)

svn-id: r18522
2005-07-09 13:21:21 +00:00
Torbjörn Andersson
ac071d6470 Worked around script bug which could cause Nico to be in the wrong state at
the Docks scene in London. See bug #1214168 for details. (The bug was not
serious, but could cause some very obvious glitches.)

svn-id: r18475
2005-06-28 10:25:25 +00:00
Torbjörn Andersson
d34e5fc605 Whitespace: "(type *)something" instead of "(type *) something", because
that's how we write it in most other places.

svn-id: r18069
2005-05-12 13:12:15 +00:00
Torbjörn Andersson
0b461c8506 Updated copyright header, as discussed on the mailing list.
svn-id: r16580
2005-01-17 10:57:15 +00:00
Torbjörn Andersson
5178822833 Updated copyright year.
svn-id: r16397
2005-01-01 15:10:22 +00:00
Torbjörn Andersson
29e367a063 Don't use pointers to int. We don't know what size an "int" is.
Also, failing the script checksum test is no longer a fatal error. There
has been a report that could mean there is a German version with incorrect
checksums. Whether or not this change will make it playable is an entirely
different matter, of course.

svn-id: r16341
2004-12-27 17:29:07 +00:00
Torbjörn Andersson
0cfd573951 Cleanup
svn-id: r15810
2004-11-14 15:00:01 +00:00
Torbjörn Andersson
37833f9832 Fixed comment typo. It's the pyramid bug that's dreaded, not the pyramid
itself. :-)

svn-id: r15789
2004-11-11 15:30:02 +00:00
Torbjörn Andersson
e31cd239bd Use the same REDUCE_MEMORY_USAGE trick here as in scumm/intern.h
svn-id: r15612
2004-10-19 14:19:52 +00:00
Jamieson Christian
4ee0365a23 Tweaked a few things to accommodate
MSVC6's idiosyncracies.

svn-id: r13644
2004-04-26 20:28:34 +00:00
Torbjörn Andersson
8f8185f035 Major revamping of the BS2 memory manager and, some small changes to the
resource manager. All new code! All new bugs!

svn-id: r13603
2004-04-23 07:02:11 +00:00
Torbjörn Andersson
c2870adf60 Added notice about how I think CP_PUSH_LOCAL_ADDR is used.
svn-id: r13493
2004-04-07 08:53:24 +00:00
Torbjörn Andersson
a1ac764575 Cleanup. (Mostly to change the wording and priority of the debugging
messages to be more like in BS1.)

svn-id: r13491
2004-04-07 06:57:37 +00:00
Torbjörn Andersson
bf10f5a616 Cleanup.
This removes a bunch of debugging code/commands that either didn't do
anything useful under ScummVM (e.g. "soft" and "hard"), or which did things
that was already easily avaiable elsewhere (e.g. "save" and "restore").

I didn't have the heart to remove the "tony" command, though. :-)

svn-id: r13422
2004-03-29 06:37:46 +00:00
Torbjörn Andersson
00243652e0 Fixed paramters to match format string.
svn-id: r13406
2004-03-28 14:53:09 +00:00
Torbjörn Andersson
4c3a68027f Use the same syntax for accessing script variables as BS1 does, i.e. now
it's Logic::_scriptVars[ID] instead of just ID. Apart from looking cool, it
makes it much easier to tell the difference between variables and constants
when looking at the code.

Of course, this sort of sweeping changes is jolly good for introducing
truly weird regressions, which is why I waited until after 0.6.0.

svn-id: r13331
2004-03-17 09:03:15 +00:00
Torbjörn Andersson
802a301a16 Removed some of the #includes from sword2.h
svn-id: r12739
2004-02-05 14:19:07 +00:00
Torbjörn Andersson
a7fe335c82 I forgot this in the previous cleanup.
svn-id: r12311
2004-01-10 21:56:59 +00:00
Torbjörn Andersson
1db3b65825 cleanup
svn-id: r12309
2004-01-10 21:21:20 +00:00
Torbjörn Andersson
065f2bb9eb It's a new year in BS2 land, too!
svn-id: r12181
2004-01-06 13:44:17 +00:00
Torbjörn Andersson
40419b1aee tiny cleanup
svn-id: r12017
2003-12-29 17:26:56 +00:00
Torbjörn Andersson
6ae8218d53 Hopefully the last big renaming. Now the datatypes have names like
"StandardHeader" instead of "_standardHeader".

svn-id: r11997
2003-12-28 15:08:12 +00:00
Nicolas Bacca
9e1dda1f68 Make VC6/EVC happier
svn-id: r11764
2003-12-20 01:17:02 +00:00
Torbjörn Andersson
8b12be81e5 cleanup
svn-id: r11704
2003-12-17 08:01:59 +00:00
Torbjörn Andersson
4420b15d9f Mostly cleanups, but I believe this also fixes an endian problem in the
"restart script" opcode. To actually verify this, though, I'd need to find
a case where any other script than script 0 at offset 0 is restarted...

svn-id: r11638
2003-12-14 16:33:27 +00:00
Torbjörn Andersson
67c75a35c6 Clarified comment about the elevator script bug and added a workaround for
the dreaded Pyramid Bug.

svn-id: r11427
2003-11-29 17:05:30 +00:00
Torbjörn Andersson
9fdaf04a21 Some formatting changes, and a few debug message corrections.
svn-id: r11384
2003-11-28 07:55:25 +00:00
Torbjörn Andersson
6f23e2c211 Mostly whitespace changes, but also a few modifications to the still
experimental resource dumping code.

svn-id: r11382
2003-11-27 07:34:19 +00:00
Torbjörn Andersson
3f115ba95d Removed some spurious semi-colons pointed out in patch #847464
svn-id: r11366
2003-11-25 17:08:46 +00:00
Torbjörn Andersson
1fc58a5ca0 Removed redundant information from the opcode list. I thought having the
number of parameters to a function would be useful for debugging, but that
information is already available in the script data itself.

svn-id: r11360
2003-11-24 07:34:07 +00:00
Torbjörn Andersson
509235e176 Added experimental (i.e. not tested) resource dumping code.
Added tentative workaround for the bug (a script bug, I think) that causes
the game to hang when examining the lift at the top of the pyramid.

And, of course, some misc. cleanup.

svn-id: r11359
2003-11-23 13:40:24 +00:00
Torbjörn Andersson
fa2b8ba8de More cleanup. I've eliminated all the temporary global variables I've added
over the past few weeks, except for g_sword2. (Of course, this doesn't
necessarily make the code any prettier, but we can work on that later.)

svn-id: r11309
2003-11-16 14:18:29 +00:00
Torbjörn Andersson
3d012651fd The script engine frequently needs to pass pointers to various structures
etc. to the different opcodes. Until now it has done so by casting the
pointer to an int32 (opcode parameters are represented as arrays of int32)
and then the opcode function casts it back to whatever pointer it needs.

At least in C there is no guarantee that a pointer can be represented as an
integer type (though apparently C99 may define such a type), so this has
struck me as unsafe ever since I first noticed it.

However, since all such pointers appear to point to the memory block owned
by the memory manager, we can easily convert them to integers by treating
them as offsets into the memory block. So that's what I have done. I hope I
caught all the occurences in the opcode functions, or we're going to have
some pretty interesting regressions on our hands...

svn-id: r11241
2003-11-10 07:52:15 +00:00
Max Horn
2fef2dcb84 bs2 -> sword2
svn-id: r10997
2003-10-28 19:51:30 +00:00
Torbjörn Andersson
7c4cc25cec Enable the debug console. Actually, what I've done is to adapt the debug
console from the SCUMM engine. I decided that would be easier than to clean
up the original console code.

Unfortunately there's a bunch of code that I just copied - a pretty lousy
form of code-reusal. It'd be nice if the console could be made part of the
Engine class, or something like that.

Most of the debug commands seem to be working. Some aren't relevant for
ScummVM, and some are a bit obscure so I'm not quite sure what they're
supposed to be doing.

svn-id: r10978
2003-10-26 15:42:49 +00:00
Torbjörn Andersson
320b0a405a Corrected/clarified some debug messages/comments
svn-id: r10945
2003-10-23 07:08:09 +00:00
Torbjörn Andersson
59b72f2b38 Moved a few remaining pieces of the script interpreter into the Logic class
svn-id: r10939
2003-10-22 06:51:57 +00:00
Torbjörn Andersson
3be2f0f1e0 Moved some more stuff into the Logic class.
svn-id: r10923
2003-10-21 08:54:50 +00:00
Torbjörn Andersson
64aaaa0b25 Small cleanup, and added FIXME comment.
svn-id: r10907
2003-10-19 18:01:05 +00:00
Torbjörn Andersson
3a43829b88 Moved the opcode functions into the Logic class.
svn-id: r10885
2003-10-18 08:11:50 +00:00
Torbjörn Andersson
4fad04846a Changed to use #include "bs2/..." and removed the inclusion of standard C
headers. Most (all?) of the ones we need should probably come from stdafx.h
instead.

svn-id: r10588
2003-10-04 08:07:03 +00:00
Max Horn
5a074e6137 added namespace Sword2
svn-id: r10581
2003-10-04 00:52:27 +00:00
Torbjörn Andersson
8ad28e3a7e More cleanup, and I've replaced most - not quite all - of BS2's debug
message functions with our own.

We still need to go through them and assign sensible debug levels to them.

svn-id: r10422
2003-09-27 11:02:58 +00:00
Torbjörn Andersson
09a01e4cbe Replaced abs() with ABS and BOOL with bool, plus some minor cleanups.
svn-id: r10391
2003-09-24 06:40:23 +00:00