[Scummvm-git-logs] scummvm master -> 5cda13cb40137f04c02c9addd1d27bcaccdc7370
mduggan
mgithub at guarana.org
Thu Sep 9 13:21:47 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:
40baa571e8 ULTIMA8: Constify some variables
5cda13cb40 ULTIMA8: Limit BA-40 ammo in high Crusader difficulties
Commit: 40baa571e8270b2fc274d2652823bb1b18cae91b
https://github.com/scummvm/scummvm/commit/40baa571e8270b2fc274d2652823bb1b18cae91b
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-09-09T22:15:35+09:00
Commit Message:
ULTIMA8: Constify some variables
Changed paths:
engines/ultima/ultima8/gumps/cru_ammo_gump.cpp
engines/ultima/ultima8/gumps/cru_weapon_gump.cpp
engines/ultima/ultima8/world/actors/main_actor.cpp
diff --git a/engines/ultima/ultima8/gumps/cru_ammo_gump.cpp b/engines/ultima/ultima8/gumps/cru_ammo_gump.cpp
index c0e9d27831..2899e329f2 100644
--- a/engines/ultima/ultima8/gumps/cru_ammo_gump.cpp
+++ b/engines/ultima/ultima8/gumps/cru_ammo_gump.cpp
@@ -70,7 +70,7 @@ void CruAmmoGump::PaintThis(RenderSurface *surf, int32 lerp_factor, bool scaled)
if (active) {
Item *item = getItem(active);
if (item) {
- WeaponInfo *weaponinfo = item->getShapeInfo()->_weaponInfo;
+ const WeaponInfo *weaponinfo = item->getShapeInfo()->_weaponInfo;
//uint16 frameno = 0;
if (weaponinfo && weaponinfo->_ammoType) {
//frameno = weaponinfo->_ammoType;
diff --git a/engines/ultima/ultima8/gumps/cru_weapon_gump.cpp b/engines/ultima/ultima8/gumps/cru_weapon_gump.cpp
index 5d60dd8e82..0eb9c9c862 100644
--- a/engines/ultima/ultima8/gumps/cru_weapon_gump.cpp
+++ b/engines/ultima/ultima8/gumps/cru_weapon_gump.cpp
@@ -93,7 +93,7 @@ void CruWeaponGump::PaintThis(RenderSurface *surf, int32 lerp_factor, bool scale
if (!item) {
weaponGump->SetShape(0, 0);
} else {
- WeaponInfo *weaponinfo = item->getShapeInfo()->_weaponInfo;
+ const WeaponInfo *weaponinfo = item->getShapeInfo()->_weaponInfo;
uint16 frameno = 0;
if (weaponinfo) {
// this should be a weapon, otherwise why are we here?
diff --git a/engines/ultima/ultima8/world/actors/main_actor.cpp b/engines/ultima/ultima8/world/actors/main_actor.cpp
index 9709786a71..7d0827e6c2 100644
--- a/engines/ultima/ultima8/world/actors/main_actor.cpp
+++ b/engines/ultima/ultima8/world/actors/main_actor.cpp
@@ -664,7 +664,7 @@ void MainActor::getWeaponOverlay(const WeaponOverlayFrame *&frame, uint32 &shape
const ShapeInfo *shapeinfo = weapon->getShapeInfo();
if (!shapeinfo) return;
- WeaponInfo *weaponinfo = shapeinfo->_weaponInfo;
+ const WeaponInfo *weaponinfo = shapeinfo->_weaponInfo;
if (!weaponinfo) return;
shape = weaponinfo->_overlayShape;
Commit: 5cda13cb40137f04c02c9addd1d27bcaccdc7370
https://github.com/scummvm/scummvm/commit/5cda13cb40137f04c02c9addd1d27bcaccdc7370
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-09-09T22:20:27+09:00
Commit Message:
ULTIMA8: Limit BA-40 ammo in high Crusader difficulties
Bug #12880. The BA-40 should consume ammo in the higher 2 difficulty levels
for Crusader: No Remorse. A similar change is probably needed for No Regret,
but it will be done separately.
Changed paths:
devtools/create_ultima/files/ultima8/remorseweapons.ini
engines/ultima/ultima8/world/world.cpp
engines/ultima/ultima8/world/world.h
diff --git a/devtools/create_ultima/files/ultima8/remorseweapons.ini b/devtools/create_ultima/files/ultima8/remorseweapons.ini
index bca8ff1a9b..5593d96c85 100644
--- a/devtools/create_ultima/files/ultima8/remorseweapons.ini
+++ b/devtools/create_ultima/files/ultima8/remorseweapons.ini
@@ -11,6 +11,7 @@ overlay=0
small=1
reload_sound=0x02B
shot_delay=0x0C
+clip_size=20
[BA-41]
shape=0x032F
diff --git a/engines/ultima/ultima8/world/world.cpp b/engines/ultima/ultima8/world/world.cpp
index 2702aedda4..e4b358d385 100644
--- a/engines/ultima/ultima8/world/world.cpp
+++ b/engines/ultima/ultima8/world/world.cpp
@@ -40,6 +40,7 @@
#include "ultima/ultima8/world/target_reticle_process.h"
#include "ultima/ultima8/audio/audio_process.h"
#include "ultima/ultima8/world/snap_process.h"
+#include "ultima/ultima8/graphics/main_shape_archive.h"
namespace Ultima {
namespace Ultima8 {
@@ -506,6 +507,27 @@ void World::setAlertActiveRegret(bool active)
}
}
+void World::setGameDifficulty(uint8 difficulty) {
+ _difficulty = difficulty;
+ if (GAME_IS_REMORSE) {
+ // HACK: Set ammo data for BA-40 in higher 2 difficulty levels
+ // This would be better handled in the ini file somehow?
+ const ShapeInfo *si = GameData::get_instance()->getMainShapes()->getShapeInfo(0x32E);
+ if (si && si->_weaponInfo) {
+ WeaponInfo *wi = si->_weaponInfo;
+ wi->_clipSize = 20;
+ if (difficulty > 2) {
+ wi->_ammoShape = 0x33D;
+ wi->_ammoType = 1;
+ } else {
+ wi->_ammoShape = 0;
+ wi->_ammoType = 0;
+ }
+ }
+ }
+}
+
+
void World::setControlledNPCNum(uint16 num) {
uint16 oldnpc = _controlledNPCNum;
_controlledNPCNum = num;
diff --git a/engines/ultima/ultima8/world/world.h b/engines/ultima/ultima8/world/world.h
index 3052f113de..848e5dec65 100644
--- a/engines/ultima/ultima8/world/world.h
+++ b/engines/ultima/ultima8/world/world.h
@@ -148,9 +148,8 @@ public:
uint8 getGameDifficulty() const {
return _difficulty;
}
- void setGameDifficulty(uint8 difficulty) {
- _difficulty = difficulty;
- }
+
+ void setGameDifficulty(uint8 difficulty);
uint16 getControlledNPCNum() const {
return _controlledNPCNum;
More information about the Scummvm-git-logs
mailing list