Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
Memory references and integers in SSCI are both 16-bit numbers,
so game scripts frequently (incorrectly) use an IntArray instead
of an IDArray for holding references. Since references in ScummVM
are 32-bit reg_ts, IntArray entries must be large enough to hold
reg_ts in order to be compatible with game scripts that store
references in integer arrays.
The alternative solution is to find and patch all incorrect use of
IntArray across all games. This is possible, but a bit risky from
a save game stability perspective, since incorrect IntArray usage
is sometimes not apparent until well after the array is
instantiated (like GK1's global interview array).
This change invalidates existing SCI32 save games.
|
|
This change invalidates earlier SCI32 save games, which separated
arrays and strings in an incompatible manner. Old save games
contain invalid references to a string segment which no longer
exists, and contain incompatible array structures that lack
critical type information.
|
|
This line drawing code lives in a remodelled GfxPaint32 class
that is totally separate from GfxPaint16.
|
|
|
|
Graphics palette code was rewritten between SCI1 and SCI2, so
SCI32 palette engine code has been moved to a separate GfxPalette32
class.
|
|
|
|
|
|
|
|
|
|
the forest"
This workaround has been added for now to stop the game from freezing.
A more correct solution would be to match our pathfinding algorithm
to what SSCI is doing, but with this workaround we can stop the more
immediate problem (game freezing) now.
|
|
|
|
Thanks to Walter for creating debugging tools for MergePoly and testing.
|
|
No functionality change has been made with this commit. This avoids
setting and getting the reg_t members directly, and is the basis of any
future work on large SCI3 scripts (larger than 64KB)
|
|
|
|
This tries to make our code a bit more compliant with our code formatting
conventions. For future use, this is the command I used:
git ls-files "*.cpp" "*.h" | xargs sed -i -e 's/[ \t]*$//'
|
|
Fixes bug #3304901: "SCI: Freddy Pharkas - Stuck in the brothel door".
|
|
|
|
|
|
Added wrapper functions to read/write from dynmem segments, as these are
treated as BE in Amiga versions (as we treat them like raw data instead
of reg_t's), whereas the rest are LE. Thanks to waltervn and wjp for their
help on this
|
|
svn-id: r55086
|
|
We now also fixup the start point when it's on the edge of an obstacle. If the
start point is also on the edge of the screen, the actor is now allowed to
walk through that obstacle to find his way to clear territory. This is based
on observation of SSCI behavior.
svn-id: r54230
|
|
Paths along the edge of the screen are now taken as a last resort. Fixes
bugs #3047418 and #3059595.
svn-id: r54199
|
|
svn-id: r53504
|
|
svn-id: r53482
|
|
svn-id: r52413
|
|
svn-id: r52197
|
|
data, thus removing the check for invalid segment types. Also, added a sanity check to verify that the memory reference to polygon data is big enough to hold all the expected polygon vertices (thanks to waltervn)
svn-id: r52176
|
|
(apparently, polygon data may be placed in non-dynmem segments too)
svn-id: r52175
|
|
svn-id: r52174
|
|
svn-id: r51838
|
|
contained in multiple polygons, otherwise we'll end up in an infinite loop
svn-id: r51458
|
|
multiple polygons, while running the avoidpath algorithm (or we'll end up in an infinite loop). Fixes bug #3036299 - "LB2CD: Game Hangs at Speakeasy"
svn-id: r51450
|
|
svn-id: r51445
|
|
svn-id: r51444
|
|
respective files
svn-id: r51108
|
|
svn-id: r50273
|
|
a pointer to an empty (for now) polygon array. This means that you can walk over enemy bodies after killing them in QFG1VGA, but at least it fixes the crashes after killing monsters
svn-id: r50160
|
|
svn-id: r50013
|
|
svn-id: r49968
|
|
were just cloaking functions with a different name
- GET_SEL32 -> readSelector
- GET_SEL32V -> readSelectorValue
- PUT_SEL32 -> writeSelector
- PUT_SEL32V -> writeSelectorValue
Also, changed some selector-related function names and variables to CamelCase
svn-id: r49317
|
|
svn-id: r49289
|
|
monster
svn-id: r49288
|
|
- The game ID is now obtained from ScummVM ID directly, not by converting Sierra's internal ID
- Moved the code which reads the internal Sierra ID inside the resource manager
- Moved the code which converts the internal Sierra ID to ScummVM's IDs together with the rest of the detection code
svn-id: r49152
|
|
svn-id: r48935
|
|
svn-id: r48821
|
|
svn-id: r48084
|