Commit Graph
49 Commits
Author SHA1 Message Date
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Jonathan Phénix 921a318ab7 XEEN: Sprinkle 'static' where appropriate 2020-11-21 20:14:52 -08:00
Paul Gilbert 6a3aac1478 XEEN: Remove autosave code 2020-02-16 15:44:28 -08:00
Paul Gilbert a00e44ba6c ENGINES: Merge saveGameState virtual methods into a single one 2020-02-16 15:44:28 -08:00
Paul Gilbert 73a4f228f6 XEEN: Implement autosave support 2019-08-18 15:18:57 -07:00
Adrian Frühwirth cee4d6b853 JANITORIAL: Fix trailing whitespace 2018-05-24 15:30:55 +02:00
Paul Gilbert b099b5504d XEEN: Support importing Clouds/Darkside savegames to World of Xeen 2018-04-29 21:45:16 -04:00
Paul Gilbert 7b6dd298e4 XEEN: Clear prior pending treasure when loading savegame 2018-04-14 15:03:15 -04:00
Paul Gilbert 569833b4ca XEEN: Reset combat data when loading a new savegame 2018-04-07 15:41:16 -04:00
Adrian Frühwirth 00e59a3122 ALL: Load savegame thumbnail only when necessary
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.
2018-04-07 09:26:20 +02:00
Paul Gilbert 37b9de6d25 XEEN: Cleanup of monster move check method 2018-04-06 19:11:26 -04:00
Paul Gilbert 4fefa88282 XEEN: Don't allow saving in the war zone 2018-04-03 22:00:18 -04:00
Paul Gilbert 5b5abd4743 XEEN: Change Map _loadDarkSide bool to int _loadCcNum 2018-03-27 21:45:17 -04:00
Paul Gilbert 74d0fdfe33 XEEN: Redraw party after loading a savegame 2018-03-23 21:43:16 -04:00
Paul Gilbert 001f2434c6 XEEN: Don't allow GMM load/save on the main menus or intro/end cutscenes 2018-03-21 21:05:33 -04:00
Paul Gilbert 22456b345f XEEN: Change bool _isDarkCc to int _ccNum
Originally the flag was whether the party was on the Dark Side,
but as a bool I was having to cast it to an int side/cc number in
more and more places. So now I've converted it to _ccNum, and it
can be used directly as an int
2018-03-17 20:27:42 -04:00
Paul Gilbert 0ea2321e76 XEEN: Fix saving to slot 0 using in-game Control Panel 2018-03-13 19:04:08 -04:00
Paul Gilbert 724c4e57ad XEEN: Defer creating new game state until needed
This fixes a bug with the startup menu where, after finishing the
game, starting a new one would simply re-show the prior game
2018-02-26 18:24:24 -05:00
Paul Gilbert da65468c47 XEEN: Set correct starting date for each game 2018-02-24 21:18:07 -05:00
Paul Gilbert c577f6dba4 XEEN: Don't save prior map state when loading new saves 2018-02-24 16:14:59 -05:00
Paul Gilbert e0ea40c3e3 XEEN: Added skeleton child engine for Swords of Xeen 2018-02-12 22:10:24 -05:00
Paul Gilbert 565719f3fa XEEN: Fix memory leak loading savegames 2018-02-12 21:24:10 -05:00
Paul Gilbert 6160f3842c XEEN: Implement save manager save/load methods 2018-01-27 21:55:26 -05:00
Paul Gilbert 6080d63339 XEEN: Implementing control panel dialog 2018-01-27 20:00:24 -05:00
Paul Gilbert 1b685a431e XEEN: Fix loading savegames from Dark Side 2018-01-14 21:37:21 -05:00
Paul Gilbert 700bcc73e1 XEEN: Fixes for encryption and resource offsets in save files 2018-01-14 14:16:58 -05:00
Paul Gilbert 5eb0388572 XEEN: Saving fixes for party and roster 2018-01-13 17:29:40 -05:00
Paul Gilbert 531467581f XEEN: Further savegame logic 2018-01-12 21:22:06 -05:00
Paul Gilbert 93935a7798 XEEN: Implementing savegame code 2018-01-11 21:31:48 -05:00
Paul Gilbert 49de1602b0 XEEN: Create a separate current state saver for each side
Previously, I only had a single savefile, which maintains the
state of the party and mazes. But I've realised that I'll need
a separate archive for each side of Xeen. I'm still not entirely
happy with the cleanliness of the new structure, but it at least
is now functionally separating the sides.
2017-12-22 08:52:31 -05:00
Paul Gilbert b032b6ebb6 XEEN: Starting to do archive access more like the original
Previously the game wasn't paying much attention to the access of
dark.cc vs xeen.cc, which was causing problems when trying to
travel to Dark Side. This is the beginnings of a refactoring
to more closely work like the original does
2017-12-20 21:47:16 -05:00
Paul Gilbert a1eed0aa70 XEEN: Added missing initialization for new games 2017-11-14 07:28:40 -05:00
Bastien Bouclet bc531e3ebf XEEN: Change OutFile not to subclass MemoryWriteStreamDynamic
Also fix leaking the MemoryWriteStreamDynamic buffer storage
2017-09-22 07:05:59 +02:00
Bastien Bouclet 48bf24b41e XEEN: Change SavesManager to use a map of pointers to MemoryWriteStreamDynamic
Our implementation of HashMap does not allow value types without a
zero-argument constructor.
2017-09-22 07:05:58 +02:00
Eugene Sandulenko dead4aa014 JANITORIAL: Remove trailing spaces 2016-10-09 14:59:58 +02:00
Paul Gilbert fd2d462296 XEEN: Moved method comments from CPP to header files 2016-08-28 17:52:56 -04:00
Paul Gilbert c798a55510 XEEN: More refactoring needed for party dialog setup 2015-02-09 21:34:03 -05:00
Paul Gilbert c08e54fde1 XEEN: Implement further script opcodes 2015-01-23 21:12:35 -05:00
Paul Gilbert 749372e456 XEEN: More script code and string input dialog 2015-01-23 20:44:02 -05:00
Paul Gilbert 3b1edcdf36 XEEN: Implemented code for 'saving' resources to the loaded savefile 2015-01-11 14:21:57 -05:00
Paul Gilbert 03952cd9d3 XEEN: Fix to load correct default savegame 2015-01-08 20:23:54 -05:00
Paul Gilbert f9414fe525 XEEN: Further fix for savegame initialization 2015-01-07 22:51:03 -05:00
Paul Gilbert 96d086ab9c XEEN: Add prefix support to CC files, initial save state fixes 2015-01-07 22:11:18 -05:00
Paul Gilbert eb0c292aaf XEEN: Start of in-game display implementation 2015-01-05 21:17:44 -05:00
Paul Gilbert ce96094c9b XEEN: In progress implementing map loading 2015-01-05 08:11:16 -05:00
Paul Gilbert 9a8cb48a9e XEEN: Cleanup of party code split, moved roster and party to engine 2015-01-02 12:27:59 -10:00
Paul Gilbert bef5dbdc0a XEEN: Replaced conditions array with named field structure 2015-01-02 11:29:15 -10:00
Paul Gilbert feacce66b9 XEEN: Implemented dynamic data loading for new games 2015-01-02 11:01:41 -10:00
Paul Gilbert 971a70a2b3 XEEN: Implemented party and condition classes 2015-01-01 19:15:08 -10:00