[Scummvm-git-logs] scummvm master -> df0fd1eb4f6d32c237581ef082ebedeace5fc4a3
mduggan
mgithub at guarana.org
Thu Sep 9 14:32:35 UTC 2021
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
9aa5b19675 ULTIMA8: Fix Crusader NPC weapons in No Remorse difficulty
df0fd1eb4f ULTIMA8: Fix Crusader shield hit damage
Commit: 9aa5b196758671f387239d385543609a15a9f282
https://github.com/scummvm/scummvm/commit/9aa5b196758671f387239d385543609a15a9f282
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-09-09T23:27:13+09:00
Commit Message:
ULTIMA8: Fix Crusader NPC weapons in No Remorse difficulty
The NPCs should get randomly harder weapons at No Remorse difficulty level, but
this never happened because I missed a line in the original to reset the "alt"
weapon type in this case.
Changed paths:
engines/ultima/ultima8/world/actors/actor.cpp
diff --git a/engines/ultima/ultima8/world/actors/actor.cpp b/engines/ultima/ultima8/world/actors/actor.cpp
index 41641c276b..e406bc37f6 100644
--- a/engines/ultima/ultima8/world/actors/actor.cpp
+++ b/engines/ultima/ultima8/world/actors/actor.cpp
@@ -2665,7 +2665,8 @@ uint32 Actor::I_createActorCru(const uint8 *args, unsigned int /*argsize*/) {
uint16 wpntype2 = npcData->getWpnType2();
if (World::get_instance()->getGameDifficulty() == 4) {
- wpntype = NPCDat::randomlyGetStrongerWeaponTypes(shape);
+ wpntype = NPCDat::randomlyGetStrongerWeaponTypes(shape);
+ wpntype2 = wpntype;
}
if ((!wpntype || !wpnflag) && wpntype2) {
Commit: df0fd1eb4f6d32c237581ef082ebedeace5fc4a3
https://github.com/scummvm/scummvm/commit/df0fd1eb4f6d32c237581ef082ebedeace5fc4a3
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-09-09T23:31:43+09:00
Commit Message:
ULTIMA8: Fix Crusader shield hit damage
The `shieldCost` field from the firetype table should be used to subtract from
shields, not the weapon damage. Normally shieldCost is a larger value, so it
affects game difficulty a lot.
Changed paths:
engines/ultima/ultima8/world/actors/main_actor.cpp
diff --git a/engines/ultima/ultima8/world/actors/main_actor.cpp b/engines/ultima/ultima8/world/actors/main_actor.cpp
index 7d0827e6c2..575b866779 100644
--- a/engines/ultima/ultima8/world/actors/main_actor.cpp
+++ b/engines/ultima/ultima8/world/actors/main_actor.cpp
@@ -995,8 +995,9 @@ int MainActor::receiveShieldHit(int damage, uint16 damage_type) {
int energy = getMana();
Kernel *kernel = Kernel::get_instance();
- if (shieldtype && firetype && firetype->getShieldCost() && (firetype->getShieldMask() & shieldtype) && damage < energy) {
- setMana(energy - damage);
+ if (shieldtype && firetype && firetype->getShieldCost() && (firetype->getShieldMask() & shieldtype)
+ && firetype->getShieldCost() <= energy) {
+ setMana(energy - firetype->getShieldCost());
damage = 0;
AudioProcess *audio = AudioProcess::get_instance();
audio->playSFX(0x48, 0x10, _objId, 1, true);
More information about the Scummvm-git-logs
mailing list