Commit Graph

16 Commits

Author SHA1 Message Date
Matthew Duggan
f185e41956 ULTIMA8: Item sorter improvements for large flat objects
Large flat squares should get sorted below other flat things.  In U8, the
definition of large is 128x128, but in Crusader they can also be larger than
that.

This fixes the paint order of hazard tape stripes in Crusader. It may also
improve paint order for Ultima 8 which has some big flat squares larger than
128x128 too (eg, shape 165 or 318 which are 256x256).

Also added tests for flat object sorting.
2021-07-24 13:48:09 +09:00
Matthew Duggan
191e7c8180 ULTIMA8: Add simple unit tests for item sorting 2021-07-07 19:34:05 +09:00
Matthew Jimenez
c1b91890e5 ULTIMA8: Replace IDataSource and ODataSource with utility functions for common streams 2021-02-23 19:22:02 -06:00
Matthew Jimenez
7e8c5d46c0 ULTIMA8: Remove U8ODataSourceTestSuite 2021-02-21 16:11:23 -06:00
Matthew Duggan
c308fdcb59 TEST: Touch test file to force rebuild 2021-01-04 10:45:36 +09:00
Matthew Duggan
28bb304812 ULTIMA8: Graphics refactor, use more common code
Try to use more of the built-in ScummVM rendering pipeline and remove redundant
types where possible.  Unfortunately this is a bit of a mega-commit because all
the pieces were tied together, but the main changes are:

* Remove the Texture types, as they add little over ManagedSurface
* Remove the ScalerGump as we no longer use it - we should be using the
  built-in ScummVM scalers
* Remove the Scaler types - the only remaining user after removing ScalerGump
  was in hte AVI player.  There we manually add the Crusader style interlaced
  scaling, which was an outstanding TODO anyway.
* Remove now-unused functions from the RenderSurface family
* Remove the "default" mouse cursor as we never use it in ScummVM
* Remove the memset_n header which duplicates Common::Fill functions (fixes
  #11969)
* Remove the fixed-width bitmap fonts which were used for the Pentagram
  console.

I've tested the following things that this had the potential to break:

* U8 game, credits, movies, minimap, and ttf rendering
* Crusader game and movies
* Debug tools (shape viewer, touch-highlight)
2021-01-04 09:08:20 +09:00
Matthew Duggan
a70153fdd0 ULTIMA8: Add smooth Crusader turning. 2021-01-01 15:07:37 +09:00
Matthew Duggan
4f7881fe8a TEST: Add direction util tests for U8 2020-12-27 16:44:44 +09:00
Matthew Duggan
eeb2d2cf1f ULTIMA8: Fix unit tests 2020-06-17 18:29:47 +09:00
Matthew Duggan
cecedb4f37 ULTIMA8: Refactor DataSources to inherit from Common::Streams 2020-04-11 17:05:40 +09:00
Matthew Duggan
4161cab9ba ULTIMA8: Update unit tests for function renames 2020-04-04 17:45:36 +09:00
Matthew Duggan
8c3ebe9af4 ULTIMA8: Correct Box.InBox boundary conditions
The boundary conditions were reversed in Box.Inbox when compared with
Box.Overlaps.  Since InBox is not being used and Overlaps is, I went with the
definitions from Overlaps. Also configured unit tests to exercise this
behavior.
2020-03-25 22:38:26 +09:00
Paul Gilbert
b5af8110ba ULTIMA8: Disable unit test for CRLF file handling 2020-03-08 10:35:57 -07:00
Matthew Duggan
c99de06915 ULTIMA8: Add unit tests for IBufferDataSource 2020-03-04 19:03:25 -08:00
Matthew Duggan
896d281ddc ULTIMA8: Free the correct pointer in ~OAutoBufferDataSource
Also add a unit test for the class to make sure the problem
is fixed.
2020-03-02 11:12:22 +02:00
Matthew Duggan
d058083888 ULTIMA8: Add some unit tests for base U8 classes 2020-02-29 16:29:33 -08:00