Commit graph

13 commits

Author SHA1 Message Date
Colin Snover
cfda8b9ecd SCI32: Fix broken Remap implementation
Remap would crash SCI2.1early games with 19 remap slots, and
did not actually work in most cases in SCI2.1mid+ games.

The SCI16 implementation was moved to its own separate file but
was otherwise touched as little as possible, so may still have
similar problems to the SCI32 code.

1. Split SCI16 and SCI32 code into separate files
2. Use -32 prefixes for SCI32 code and no prefix for SCI16 code,
   where possible, to match other existing code
3. Avoid accidental corruption of values from the VM that may be
   valid when signed or larger than 8 bits
4. Added documentation
5. Add missing remap CelObj calls
6. Inline where possible in performance-critical code paths
7. Fix bad `matchColor` function, and move it from GfxPalette to
   GfxRemap32 since it is only used by GfxRemap32
8. Fix bad capitalisation in getCycleMap
9. Remove unnecessary initialisation of SingleRemaps
10. Update architecture to more closely mirror how SSCI worked
11. Clarify the purpose of each type of remap type (and
    associated variable names)
12. Split large `apply` function into smaller units
13. Fix buffer overrun when loading a SCI2.1early game with remap
14. Remove use of `#define` constants
15. Warn instead of crashing with an error on invalid input (to
    match SSCI more closely)
16. Change the collision avoidance mechanism between the RemapType
    enum and remap kernel functions
17. Add save/load function
2016-06-26 12:42:58 -05:00
Filippos Karapetis
a4ef3f9d73 SCI32: All versions of KQ7 are using the older remap range semantics 2016-06-13 12:01:28 +03:00
Filippos Karapetis
00761de4a3 SCI32: Remove the unused newColors array 2016-06-13 12:01:28 +03:00
Filippos Karapetis
5be798c92f SCI32: Implement the remapping drawing functions 2016-03-16 01:51:09 +02:00
Filippos Karapetis
55390e77b1 SCI: Remove unused _gfxScreen parameter from GfxRemap 2016-03-15 11:28:13 +02:00
Filippos Karapetis
dd220e7c82 SCI32: Use Common::fill() instead of memset(), where possible
Thanks wjp, LordHoto, waltervn
2016-03-11 14:26:05 +02:00
Filippos Karapetis
7cf8ce33cb SCI32: Assign a define for the non-remapped number of colors 2016-03-11 13:13:51 +02:00
Filippos Karapetis
8f7ab881ee SCI32: Add remap counters and hook them up to frameOut 2016-03-11 07:54:45 +02:00
Filippos Karapetis
ea52dc498c SCI32: More work on remapping
applyRemap() has been implemented now, however the end effect is still
not visible
2016-03-11 07:22:01 +02:00
Filippos Karapetis
6b857299a4 SCI32: Handle the different remap color ranges in SCI2 and SCI21
This fixes an assertion when starting a new game in SQ6
2016-03-11 06:08:27 +02:00
Filippos Karapetis
5ca8b5ff4c SCI32: Fix bug in updateRemap() 2016-03-11 05:21:43 +02:00
Filippos Karapetis
3a770fa0d8 SCI32: Initial implementation of kRemapColors
applyRemap() is still not finished, so nothing is actually visible yet
2016-03-11 05:10:32 +02:00
Filippos Karapetis
f450ca0ebf SCI: Split color remapping functionality into a separate class
Currently, only the SCI16 remapping functionality is implemented
(used in the QFG4 demo)
2016-03-08 20:36:03 +02:00