Matthew Duggan
21ac02ab46
ULTIMA8: Remove Crusader elevator hack and fix it properly
...
Crusader globs sometimes contain items with an odd z value - eg, stripey floors
or elevators. This is not done in U8 and probably a hack to make the paint
order right in the original, but our scan function was only checking +/-4 and
+/-8 pixels so the avatar would jump 4 pixels up then fall, which was nasty.
Add odd-pixel checks as well when doing a scan in Crusader, and clean up the
old hack. Also tidied up the scan function to make it more understandable.
2021-05-15 17:06:30 +09:00
Matthew Duggan
f70cb80c30
ULTIMA8: Don't 'land' dead actors in Crusader
2021-05-15 17:06:04 +09:00
Matthew Duggan
4c4b8a6cf5
ULTIMA8: Remove a bit of dead code
2021-05-15 17:06:04 +09:00
Matthew Duggan
edf0797728
ULTIMA8: Wire up more intrinsics for No Regret
2021-05-15 17:06:04 +09:00
Paul Gilbert
f13617f3e3
NUVIE: Add back missing check for skip_intro
2021-05-11 21:41:10 -07:00
Matthew Duggan
f7e07c0eb0
ULTIMA8: Fix uninitialized members identified by Coverity
2021-05-10 14:54:16 +09:00
Matthew Duggan
ebbfb88174
ULTIMA8: Fix array size, thanks Coverity.
2021-05-10 14:51:37 +09:00
Matthew Duggan
b73d04844e
ULTIMA8: Avoid small leak on invalid data
2021-05-10 14:51:05 +09:00
Matthew Duggan
f456e268ec
ULTIMA8: Avoid potential null reference
2021-05-10 14:50:36 +09:00
Matthew Duggan
927e7ca3b0
ULTIMA8: Add comments about some Remorse intrinsics
2021-05-10 11:47:51 +09:00
Matthew Duggan
4cb6c0a087
ULTIMA8: Add a TODO for No Regret
2021-05-10 11:47:51 +09:00
Matthew Duggan
3febff9639
ULTIMA8: Fix off-by-one glob egg calculation for Crusader
...
This caused elevator doors to not close properly as the poles either side were
off by 1 pixel and blocked the creation of the door objects.
2021-05-09 17:41:31 +09:00
Matthew Duggan
47d8b281c7
ULTIMA8: Only move Crusader camera if position is valid.
...
This avoids strange results if you try to move the camera while the avatar has
temporarily been moved to 0,0,0.
2021-05-09 17:41:05 +09:00
Matthew Duggan
cf7ae46475
ULTIMA8: Adjust Crusader step tests to match original
2021-05-09 13:09:08 +09:00
Matthew Duggan
6f5538ab4d
ULTIMA8: Fix actor anim speed in Crusader
2021-05-09 12:04:25 +09:00
Matthew Duggan
26f936510f
ULTIMA8: Implement "cruStasis", stops some key events
...
The main bugs that this fixes are when using a remote camera:
* Z should not recenter camera on avatar
* Escape should close remote viewing, not open menu
2021-05-09 09:08:31 +09:00
Matthew Duggan
bda1466e0a
ULTIMA8: Fix Crusader items reappearing after exploding
2021-05-09 08:17:01 +09:00
Matthew Duggan
137fa8ea29
ULTIMA8: Implement 'grab' operation for Crusader games
...
Since it only works on loose items and not for searching boxes etc, it's
actually not so useful, but implemented for completeness.
2021-05-09 07:48:26 +09:00
Matthew Duggan
cf085788c2
ULTIMA8: Add Crusader key for using energy cube
...
Had to reassign the "paint editor items" debug key because it was using 'e',
which we need.
2021-05-09 07:31:43 +09:00
Matthew Duggan
d83ccb7e9b
ULTIMA8: Default to no mouse cursor in Crusader
2021-05-09 07:31:43 +09:00
Matthew Duggan
f5c4374888
ULTIMA8: Refactor so all Crusader movies get subtitles
...
Previously there was a bit of duplication, and Weasel and the intro movies
didn't get subtitles. Cleaned up the code a bit and now all are treated
consistently.
2021-05-09 07:31:43 +09:00
Matthew Duggan
531ed6865b
ULTIMA8: Add comment about iteration order
...
This function looks tempting to "optimize", by changing the order, so add a
warning for new adventurers.
2021-05-09 07:31:43 +09:00
Matthew Duggan
6f483eb53b
ULTIMA8: Don't reset FIRSTSTEP on non-step animations
...
Confirmed in both U8 and Crusader, single steps should alternate left foot /
right foot, even when there is a stand animation in-between.
2021-05-07 18:52:16 +09:00
Matthew Duggan
7338e7ab02
ULTIMA8: Fix animations used for Crusader combat rolls
2021-05-07 18:52:11 +09:00
Matthew Duggan
dc8a9487ec
ULTIMA8: Return area search items in same order as original
...
For most situations this should make no difference, but Crusader: No Remorse
has some behavior where it relies on the items being returned in x/y scan
order, not y/x.
Particularly, in Mission 2 there is a camera which searches for an event
trigger with qlo == 5. There are 2 triggers on the map with that qlo, but the
code previously returned them in the wrong order so the correct event would not
be triggered and the game could not be continued.
This may have previously caused other subtle bugs too.
2021-05-07 12:41:51 +09:00
Matthew Duggan
a00ec35068
ULTIMA8: Fix Crusader detpac usage.
2021-05-07 10:56:37 +09:00
Matthew Duggan
014ad8f23a
ULTIMA8: Avoid possible assertion on avatar death
2021-05-07 10:56:37 +09:00
Matthew Duggan
764f310f8a
ULTIMA8: Crusader camera centre button improvement
...
The "centre on avatar" button should use the centre of the avatar, not his
feet.
2021-05-07 10:56:37 +09:00
Matthew Duggan
a1880b8220
ULTIMA8: Remove text from inventory gump when Crusader dies
2021-05-07 10:56:37 +09:00
Matthew Jimenez
866a010880
UlTIMA8: Rename sort item method for clarity and improve documentation
2021-05-06 17:42:00 -05:00
Matthew Duggan
2b4785f262
ULTIMA8: Fix Crusader animated flames, steam, etc.
2021-05-05 20:57:46 +09:00
Matthew Duggan
12f8e8679e
ULTIMA8: Make loading work with different path configurations
2021-05-05 20:57:46 +09:00
Matthew Duggan
02a5a1e2c6
ULTIMA8: Wire up Crusader: No Remorse isFalling intrinsic
2021-05-05 14:31:58 +09:00
Matthew Duggan
0b9afc4a52
ULTIMA8: Correct parameter mixup writing usecode globals
2021-05-05 14:31:58 +09:00
Matthew Duggan
f30c74ed12
ULTIMA8: More savegame integrity checks
2021-05-05 14:31:58 +09:00
Matthew Duggan
ca2226caa0
ULTIMA8: Fix location of Crusader bullet splash shapes
2021-05-05 14:31:58 +09:00
Matthew Duggan
f3f5aca83d
ULTIMA8: Fix assert in reshowing Crusader status gump
2021-05-05 14:31:58 +09:00
Matthew Duggan
bf9af9abc1
ULTIMA8: Ignore invalid parent objects on destruction
...
This probably shouldn't happen, but if it does then handle it gracefully for
now.
2021-05-04 22:50:59 +09:00
Matthew Duggan
fab43f51a4
ULTIMA8: Destroy contents earlier in Cru death
2021-05-04 22:50:49 +09:00
Matthew Duggan
878331b074
ULTIMA8: Tweak process start order for Crusader
2021-05-04 22:50:09 +09:00
Matthew Duggan
92fe6afa24
ULTIMA8: Check bytes read when loading savegames
2021-05-04 22:42:44 +09:00
Matthew Duggan
8eeb19c53d
ULTIMA8: Small consistency fixes for Crusader gumps
2021-05-04 21:37:50 +09:00
Matthew Duggan
28db99d779
ULTIMA8: Add various checks for expected ranges of save data
2021-05-04 21:37:16 +09:00
Matthew Duggan
ec26584d04
ULTIMA8: Add Vargas shield for Crusader: No Remorse
...
This is handled as a special case in the original game.
Breaks save compatibility one more time..
2021-05-04 21:37:15 +09:00
Matthew Duggan
321222cf6e
ULTIMA8: Save some Crusader fields which were previously missed
...
Breaks save compatibility again but game is still unstable.
2021-05-04 21:37:15 +09:00
Matthew Duggan
8aabf2dce1
ULTIMA8: Fix Crusader deaths getting stuck sometimes
2021-05-04 21:37:15 +09:00
Matthew Duggan
54f67f02cc
ULTIMA8: Add more weapons and ammo to Crusader testing hack
2021-05-04 21:37:15 +09:00
Matthew Duggan
7709c9b94c
ULTIMA8: Add detection entry for fan Spanish translation No Remorse
2021-05-04 21:37:15 +09:00
Matthew Duggan
dc2c801b20
ULTIMA8: Clean up some constants
2021-05-04 21:37:15 +09:00
Matthew Duggan
20bb32503f
ULTIMA8: Don't allow jump on Cru NPCs that can't jump
2021-05-04 21:37:15 +09:00