Commit graph

2762 commits

Author SHA1 Message Date
Cameron Cawley
38cffeef2c ULTIMA: Make more static data read only 2024-11-27 12:57:09 +02:00
Matthew Duggan
4817e0e99a ULTIMA: NUVIE: Use correct path for corpse gump buttons
This seems to have been missed when migrating the engine to use
Common::Path, it should follow the same pattern as other containers.

fixes #15522.
2024-11-24 13:43:19 +11:00
Matthew Duggan
9f88076d6c ULTIMA: NUVIE: Enable key repeat on walk ops
This fixes #15397.
2024-11-20 21:16:36 +11:00
Filippos Karapetis
133e93aad5 ULTIMA8: Update POTFILES 2024-11-08 18:44:44 +02:00
Matthew Duggan
843f49446c ULTIMA8: Report mising U8SAVE.000 file on startup
The game can't really start without this data, no need to continue.

This fixes #12790.
2024-11-08 18:44:44 +02:00
Filippos Karapetis
d0195f4760 ULTIMA8: Error out if required game resources aren't found on startup
This stops the game from running if a required game data file is
missing, such as U8SAVE.000. Fixes bug 12790
2024-11-07 03:24:02 +02:00
Matthew Duggan
adadaf1eca ULTIMA: Add detection entry for Crusader: No Remorse v1.10
This fixes #15065.
2024-11-05 20:55:44 +11:00
Eugene Sandulenko
11ae6a973c
ULTIMA: Fixed usage of obsolete ManagedSurface methods 2024-10-24 15:07:03 +02:00
D G Turner
2a7c29dfa0 ULTIMA: NUVIE: Fix Unmatched Apostrophe GCC Compiler Warning 2024-09-22 03:02:55 +01:00
Hubert Maier
92c3ec0156 JANITORIAL: ULTIMA: Fix typos 2024-09-16 01:57:23 +03:00
Eric Fry
5157368a9e NUVIE: Allow custom_tiles.bmp to load from game dir mods/custom_tiles.bmp 2024-09-03 18:57:54 -07:00
yudhiwidyatama
6a4b08ef6f
ULTIMA6: inject iOS gamepad d-pad key bindings 2024-08-28 00:45:08 +03:00
Matthew Jimenez
0380bf3d44 ULTIMA8: Handle movement actions without debugger console
Previously all keybind actions were handled with debugger console commands. This required the existence console commands that are unlikely to have use outside the keybinding action. Additionally, every input iterates over a lookup table and parses command strings.
2024-08-12 10:21:30 +03:00
Matthew Jimenez
e2bbef55b3 ULTIMA8 Move keybinding action handers to engine.
The engine still uses the debugger commands, but they can be transitioned in sections if desired.
2024-08-07 22:38:44 -05:00
PushmePullyu
09e8ef68d9 ULTIMA: NUVIE: Fix pathfinding not detecting some doors
U6 NPCs following their schedule can open doors in the way.
However, E/W facing doors would not be detected if an object was
directly S of them, causing pathing to fail in some cases.

Fix and simplify door detection.

Closes #15308
2024-08-05 09:07:13 +10:00
PushmePullyu
6a24076501 ULTIMA: NUVIE: Fix copy-paste error in AStarPath
Fix regression introduced in
4493bdcf5c
"ULTIMA: NUVIE: Use foreach style loops for cleaner code"
2024-08-05 09:07:13 +10:00
Matthew Jimenez
bc0bf79745 ULTIMA8: Fix last save load failure.
Setting to empty string acts as 0 and then breaks when no saves are present.
2024-08-03 15:25:07 -05:00
antoniou79
7e462a24fb ULTIMA: NUVIE: Fix loading lua scripts on Windows
LUA seems to expect a "/" (POSIX) path separator, so using Common::Path::kNativeSeparator made engine unable to find the lua scripts on Windows
2024-08-03 08:17:16 -05:00
Matthew Jimenez
9587d5c0dd ULTIMA: Improve detection for Ultima 8 and Crusader games 2024-07-30 13:29:46 +03:00
Cameron Cawley
08010fa185 COMMON: Return an iterator for List::insert 2024-07-30 13:29:18 +03:00
Cameron Cawley
89c57d29ef COMMON: Move more maths functions into the Math namespace 2024-07-27 14:00:48 +03:00
Cameron Cawley
7e0dfe0081 GRAPHICS: Use custom stream callbacks for loading TTF fonts 2024-07-23 15:33:43 +01:00
Matthew Jimenez
ddaf389f8a ULTIMA8: Adjust camera box to fix cutscene.
Waking Mordea while sleeping put the camera below the floor. Increasing the box to 2x2x2 footpad fixes the cutscene and eliminates the need to increase based on main actor size.
2024-07-18 21:28:13 -05:00
Cameron Cawley
ff530edcb1 GRAPHICS: Deprecate ManagedSurface methods that implicitly copy pixel data 2024-07-02 13:31:18 +01:00
Le Philousophe
7e0048b4a3 ENGINES: Add ADDynamicGameDescription class
This class manages a buffer where all data usually stored in detection
plugin will get copied before unloading the plugin and starting the
game.

This class expects that two functions are present in every
GameDescription: sizeBuffer which calculates how many bytes we will need
to store the entry in RAM and toBuffer which copies the data in the
buffer and fix the pointers in the class.
At the end, it is expected that an ADDynamicGameDescription doesn't
depend anymore on data stored in the detection plugin.

The AD_GAME_DESCRIPTION_HELPERS macro allow to implement these functions
in all GameDescription which don't have any pointer except those in
ADGameDescription.
2024-06-30 18:39:06 +02:00
Le Philousophe
b61bd3ff85 ENGINES: Create a type aware advanced meta engine 2024-06-30 18:39:06 +02:00
Le Philousophe
90b886097f ENGINES: Create a type aware advanced detector 2024-06-30 18:39:06 +02:00
Yudhi Widyatama
2cae1bec12 ULTIMA6: patch nuvie.cfg parsing by extracting text from child
Re-enables nuvie.cfg file parsing that were impacted by XMLNode
enhancement, picking the text value of first child if current
subtree text is empty. Fixes issue #15207.
2024-06-22 09:52:20 -07:00
Cameron Cawley
1357bfe672 COMMON: Avoid including engine headers in common code for DebugChannelDef 2024-06-20 20:15:57 +01:00
Matthew Jimenez
5dbebe38c7 ULTIMA8: Keep sampling for minimap on black color.
This improves minimap generation in narrower sections of caves.
2024-06-14 16:33:51 -05:00
Matthew Jimenez
2c5de6e053 ULTIMA8: Expand fast area during item create from usecode.
The previous attempt to fix would cause NPCs to blink in & out to existence when moving in Central Tenebrae.
Fixes invalid placement of barrel #14839
2024-06-09 21:14:27 -05:00
Matthew Jimenez
be44e64a39 ULTIMA8: Use Point3 for update fast area 2024-06-09 19:20:40 -05:00
Matthew Jimenez
7182be94dc ULTIMA8: Add more functions to Point3 2024-06-09 16:45:26 -05:00
Matthew Jimenez
73659c67c6 ULTIMA8: Use Point3 in path finder 2024-06-09 12:04:28 -05:00
Matthew Jimenez
546cb580c1 ULTIMA8: Use Point3 in animation tracker 2024-06-09 10:00:31 -05:00
Matthew Jimenez
06df655cc7 ULTIMA8: Use Point3 in map sweep test 2024-06-08 13:56:44 -05:00
Matthew Jimenez
9c940c7c6a ULTIMA8: Expand use of Point3, part 2 2024-06-07 23:27:29 -05:00
Matthew Jimenez
93f65daecf ULTIMA8: Expand use of Point3 2024-06-07 20:17:02 -05:00
Matthew Jimenez
72773cf718 Revert "ULTIMA8: Update fast area during item create from usecode."
This reverts commit 548c6e019d.
2024-06-07 07:28:16 -05:00
Matthew Jimenez
928febf876 ULTIMA8: Clean up speech flex parsing.
Previous change could cause issues as only spaces should be trimmed from a phrase at this point.
2024-06-05 18:04:01 -05:00
Matthew Jimenez
9ed19d3c4c ULTIMA8: Remove accidental inclusion of tokenizer 2024-06-04 22:47:36 -05:00
Matthew Jimenez
66d0229272 ULTIMA8: Replace string utility functions 2024-06-04 22:44:09 -05:00
Matthew Jimenez
0512544750 ULTIMA8: Remove DebugLevel enum values.
Only one DebugLevel was used, and it was orginally intended to be used similar to channels (MsgMask)
2024-06-04 22:44:09 -05:00
Le Philousophe
d9eef44b52 ULTIMA8: Fix name clashes with common graphics code
This should solve MSVC build
2024-06-03 19:46:22 +02:00
Matthew Jimenez
532998effb ULTIMA8: Define max item quantity constant 2024-05-30 20:10:13 -05:00
Matthew Jimenez
c8ffaf34d2 ULTIMA8: Define enum for reserved object identifiers 2024-05-30 20:10:13 -05:00
Matthew Jimenez
18c6eb8c31 ULTIMA8: Make middle-click pathfinder kill existing pathfinder process. 2024-05-25 00:07:45 -05:00
Matthew Jimenez
1ae7ff095c ULTIMA8: Fix missing process type on pathfinder 2024-05-25 00:07:45 -05:00
Matthew Jimenez
0f4df1fe55 ULTIMA8: Trace coordinates on middle-click pathfinding.
Previously this used the traced item location, which would not lead to the expected location. Fixes #13851
2024-05-24 17:21:39 -05:00
Matthew Jimenez
1097f4b5e5 ULTIMA8: Fix pathfinder visual debug.
This feature is still behind a define macro.
2024-05-23 22:12:39 -05:00