Commit Graph

38 Commits

Author SHA1 Message Date
Matthew Jimenez
1c159c0c59 ULTIMA8: Change sort item constructor to not include next pointer 2023-02-14 18:25:45 -06:00
Matthew Jimenez
5ce54293a8 ULTIMA8: Add test case for rendering issue where transparent rule should not apply 2023-02-07 18:11:38 -06:00
Matthew Jimenez
4ff10c5256 ULTIMA8: Add test case for inventory item sort rule 2023-01-28 18:06:07 -06:00
Matthew Jimenez
65b725c12a ULTIMA8: Add sprite rule to sort item listLessThan to fix rendering bug 2023-01-28 08:08:13 -06:00
Matthew Jimenez
3cafae9398 ULTIMA8: Fix sort item hidden easter egg item and test 2023-01-27 17:55:23 -06:00
Matthew Jimenez
f1d6ad795a ULTIMA8: Use shape frame screen rect in sort item occludes and overlaps checks in addition to world box. Fixes #14039 2023-01-26 18:53:01 -06:00
Matthew Jimenez
5935499ff1 ULTIMA8: update all sort item tests to set box bounds 2023-01-26 18:53:01 -06:00
Matthew Jimenez
62b4aec959 ULTIMA8: Use box struct to set bounds of sort items 2023-01-26 18:53:01 -06:00
Matthew Jimenez
71bf75783d ULTIMA8: Replace sort item screenspace coords with rect 2023-01-26 18:53:01 -06:00
Matthew Jimenez
6e3a288d93 ULTIMA8: Add contains point method for sort items 2023-01-26 18:53:01 -06:00
Matthew Jimenez
eb5a079fd3 ULTIMA8: Fix item sorter dependency graph cycle and add test 2023-01-24 22:59:25 -06:00
Matthew Jimenez
e813af901f ULTIMA8: Remove x & y flat checks that introduced bugs 2023-01-24 21:18:23 -06:00
Matthew Jimenez
edd82bb8e8 ULTIMA8: Additional item sort rules and test.
This also fixes #14035
2023-01-22 11:42:04 -06:00
Matthew Jimenez
2e11704ed9 ULTIMA8: Update box struct better match rect methods 2023-01-18 21:54:41 -06:00
Matthew Jimenez
00583aa7f5 ULTIMA8: Add basic test for sort item occludes 2023-01-17 23:19:09 -06:00
Matthew Jimenez
5d13b0831b ULTIMA8: Add item sort rules for land and roof.
This fixes Pentagram bug #276.
2023-01-13 18:57:58 -06:00
Matthew Duggan
2345a0d3a6 ULTIMA8: Add error checking for treasure loader
This might help with bug #12182 where the comment suggests there is a problem
with loading the treasure data.  To make sure it loads properly, added a lot
more error checking and error messages, and created unit tests for the same.
2022-03-25 16:44:59 +09:00
Matthew Duggan
b01f927bc3 ULTIMA8: Remove unused ArgvToString function. 2021-11-22 22:29:52 +09:00
Matthew Duggan
372e08635f TESTS: Fix build after type change in ULTIMA engine 2021-11-22 21:45:05 +09:00
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
Tobia Tesan
72376681af WINTERMUTE: Try to "correctly" handle dir paths
I put scare quotes around "correctly" because I can't swear this is the
intended behaviour of the original interpreter.

I don't think accessing filenames that end with / in the .DCPs is even
defined behaviour, so this is a best guess.
2016-12-26 12:05:41 +01:00
Tobia Tesan
9339490236 WINTERMUTE: only access -1th char of string if length > 0 in getFileName
Fixes #6594
2016-12-26 12:02:56 +01:00
Tobia Tesan
e3fdd8d5fe WINTERMUTE: Add tests for engines/wintermute/path_utils.h 2016-12-26 10:41:48 +01:00