Age | Commit message (Collapse) | Author |
|
This should have been part of commit 00e59a3122.
|
|
This was a miss in commit 00e59a3122. The new parameter was supposed
to be called skipThumbnail and default to true instead.
For consistency's sake (the rest of the tree uses skipThumbnail, not
loadThumbnail) I'm reverting this and will separately update the
declaration to how it should have been from the beginning.
Thanks dreammaster!
|
|
|
|
This commit introduces the following changes:
1. Graphics::loadThumbnail()
Now returns a boolean and takes a new argument skipThumbnail which
defaults to false. In case of true, loadThumbnail() reads past the
thumbnail data in the input stream instead of actually loading the
thumbnail. This simplifies savegame handling where, up until now,
many engines always read the whole savegame metadata (including
the thumbnail) and then threw away the thumbnail when not needed
(which is in almost all cases, the most common exception being
MetaEngine::querySaveMetaInfos() which is responsible for loading
savegame metadata for displaying it in the GUI launcher.
2. readSavegameHeader()
Engines which already implement such a method (name varies) now take
a new argument skipThumbnail (default: true) which is passed
through to loadThumbnail(). This means that the default case for
readSavegameHeader() is now _not_ loading the thumbnail from a
savegame and just reading past it. In those cases, e.g.
querySaveMetaInfos(), where we actually are interested in loading
the thumbnail readSavegameHeader() needs to explicitely be called
with skipThumbnail == false.
Engines whose readSavegameHeader() (name varies) already takes an
argument loadThumbnail have been adapted to have a similar
prototype and semantics.
I.e. readSaveHeader(in, loadThumbnail, header) now is
readSaveHeader(in, header, skipThumbnail).
3. Error handling
Engines which previously did not check the return value of
readSavegameHeader() (name varies) now do so ensuring that possibly
broken savegames (be it a broken thumbnail or something else) don't
make it into the GUI launcher list in the first place.
|
|
|
|
|
|
|
|
GUI: Support double quoted debugger parameters
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I reduced the header includes a lot in Titanic.h and forward
declared when I could. Titanic.h was including a lot and
a lot of functions that were including it were not using its
API. This will help make it more clear which implementation
files are using which class since they will just need to include
which ones they need.
I also moved the debug related items in Titanic.h into the debugger
header.
I also reordered several of the the header includes to be local to
global.
|
|
|
|
|
|
|
|
|
|
|
|
The movement code, when deciding on an item or link that matches the
desired direction, will check five points on the object/links area..
center, left edge, right edge, top edge, and bottom edge. For each
of these, it makes sure that at that point, clicking will actually
get passed to it. Otherwise, it moves onto one of the other edges.
This helps avoid issues where links weren't working because standard
scene objects were partially obscuring them.
|
|
You can either use a special Ctrl-C key combination, or use the
'cheat' command in the debugger
|
|
|
|
The scene has an unused right turn link that wasn't used, and is
covered by the starview. Since movement now uses simulated mouse
clicks, the worst result of clicking right arrow is simply that
a star may be accidentally selected. But for cleanliness, it was
best to fix it. It also allowed the creation of code that other
objects in the view can use to override default movement logic,
just in case it's needed.
|
|
|
|
|
|
This also moves logic for detecting which movement is associated
with given keycodes and cursors to CMovementMsg and CLinkItem,
which are better suited to contain the logic
|
|
|
|
|
|
|
|
The fix deals with a bug in the original that if an item was used
that the drop target didn't handle, the item wouldn't be returned
to the player's inventory
|
|
|
|
|
|
This also fixes a bug with Page Up, Down, Home, & End not working for
the Conversation tab. Additionally, code for scrolling individual
lines in the conversation and glyphs via the arrow keys has been
removed in favor of this centrallised movement, since they were
somewhat redundant, and the mouse wheel can be used for scrolling.
|
|
|
|
|
|
Before the const specifying the max number of save/load games was
in titanic.h, core/project_item.cpp, main_game_window, and detection.cpp.
Since they all inherit from titanic.h they should just use the const there.
Also the saved game const in core/project_item.cpp was named differently
so I also changed that.
|
|
|
|
|
|
|
|
This way, GCC 7 does not generate a warning for those cases when
-Wimplicit-fallthrough=3 is enabled, which is now the default.
|
|
|
|
|
|
|
|
|
|
This works around a bug in the original where if you saved immediately
after getting the PET, the savegame would put in in an invalid state
|
|
|
|
|
|
|
|
|