[Scummvm-git-logs] scummvm master -> 378076dedf09d8309a52e56da7bc633594c24c27

mduggan mgithub at guarana.org
Mon Apr 26 02:10:21 UTC 2021


This automated email contains information about 6 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
a67305562d ULTIMA8: Fix movie scale for some Crusader cutscenes
cda8b9ceff ULTIMA8: Correct when to show Crusadeer Weasel intro
ce379123d7 ULTIMA8: Remove some Crusader Weasel test code
b502951278 ULTIMA8: Crusader mover process fixes
221cb0e10e DEVTOOLS: ULTIMA8: Add display data for Regret. Fix keycard display frame.
378076dedf ULTIMA8: Correct count shown in Crusader pickups


Commit: a67305562d2461be230184e6eb83043f9b7c71ec
    https://github.com/scummvm/scummvm/commit/a67305562d2461be230184e6eb83043f9b7c71ec
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-04-26T10:06:09+09:00

Commit Message:
ULTIMA8: Fix movie scale for some Crusader cutscenes

Changed paths:
    engines/ultima/ultima8/gumps/movie_gump.cpp


diff --git a/engines/ultima/ultima8/gumps/movie_gump.cpp b/engines/ultima/ultima8/gumps/movie_gump.cpp
index 4c76525ba5..0b2cd77246 100644
--- a/engines/ultima/ultima8/gumps/movie_gump.cpp
+++ b/engines/ultima/ultima8/gumps/movie_gump.cpp
@@ -304,6 +304,11 @@ uint32 MovieGump::I_playMovieCutsceneAlt(const uint8 *args, unsigned int /*argsi
 	ARG_UINT16(x);
 	ARG_UINT16(y);
 
+	if (!x)
+		x = 640;
+	if (!y)
+		y = 480;
+
 	warning("MovieGump::I_playMovieCutsceneAlt: TODO: This intrinsic should pause and fade the background to grey");
 
 	if (item) {


Commit: cda8b9ceff7bedd7ac9f9cb7807438c6f3dfe83c
    https://github.com/scummvm/scummvm/commit/cda8b9ceff7bedd7ac9f9cb7807438c6f3dfe83c
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-04-26T10:06:09+09:00

Commit Message:
ULTIMA8: Correct when to show Crusadeer Weasel intro

Changed paths:
    engines/ultima/ultima8/gumps/weasel_gump.cpp
    engines/ultima/ultima8/gumps/weasel_gump.h


diff --git a/engines/ultima/ultima8/gumps/weasel_gump.cpp b/engines/ultima/ultima8/gumps/weasel_gump.cpp
index deeec08df3..94eb18dae5 100644
--- a/engines/ultima/ultima8/gumps/weasel_gump.cpp
+++ b/engines/ultima/ultima8/gumps/weasel_gump.cpp
@@ -224,7 +224,7 @@ void WeaselGump::run() {
 			_state = kWeaselShowIntro;
 			break;
 		case kWeaselShowIntro: {
-			if (_level == 1 && !_playedIntroMovie) {
+			if (_level == 2 && !_playedIntroMovie) {
 				_movie = playMovie(FIRST_INTRO_MOVIE);
 				_playedIntroMovie = true;
 			} else {
diff --git a/engines/ultima/ultima8/gumps/weasel_gump.h b/engines/ultima/ultima8/gumps/weasel_gump.h
index d8d99a9fee..959c6879a5 100644
--- a/engines/ultima/ultima8/gumps/weasel_gump.h
+++ b/engines/ultima/ultima8/gumps/weasel_gump.h
@@ -123,6 +123,15 @@ private:
 	/// Shape of current item
 	uint16 _curItemShape;
 
+	/**
+	 * Whether the first intro movie has been played. Remember this between
+	 * displays of the gump, but don't save.
+	 *
+	 * It only ever shows on level 1 so there is only a single way it can be re-shown
+	 * (save during the first time at the base and reload after restarting the game).
+	 *
+	 * TODO: test if original does this to be perfectly faithful
+	 */
 	static bool _playedIntroMovie;
 };
 


Commit: ce379123d75570e0fae1379287a7e11276e6bfe9
    https://github.com/scummvm/scummvm/commit/ce379123d75570e0fae1379287a7e11276e6bfe9
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-04-26T10:06:09+09:00

Commit Message:
ULTIMA8: Remove some Crusader Weasel test code

Changed paths:
    engines/ultima/ultima8/gumps/weasel_gump.cpp


diff --git a/engines/ultima/ultima8/gumps/weasel_gump.cpp b/engines/ultima/ultima8/gumps/weasel_gump.cpp
index 94eb18dae5..30fe67d4db 100644
--- a/engines/ultima/ultima8/gumps/weasel_gump.cpp
+++ b/engines/ultima/ultima8/gumps/weasel_gump.cpp
@@ -190,9 +190,6 @@ void WeaselGump::InitGump(Gump *newparent, bool take_focus) {
 	if (item)
 		_credits = item->getQuality();
 
-	// TODO: remove me (for testing)
-	_credits += 10000;
-
 	_weaselDat = GameData::get_instance()->getWeaselDat(_level);
 	if (!_weaselDat || _weaselDat->getNumItems() == 0)
 		Close();


Commit: b502951278d28586c19fca3517692d468bcc0fcd
    https://github.com/scummvm/scummvm/commit/b502951278d28586c19fca3517692d468bcc0fcd
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-04-26T10:06:09+09:00

Commit Message:
ULTIMA8: Crusader mover process fixes

* Don't allow attack moves at rebel base
* Save avatar angle (break Crusader save compatibility again, U8 saves are
  fine)

Changed paths:
    engines/ultima/ultima8/world/actors/cru_avatar_mover_process.cpp


diff --git a/engines/ultima/ultima8/world/actors/cru_avatar_mover_process.cpp b/engines/ultima/ultima8/world/actors/cru_avatar_mover_process.cpp
index a1ac5b9d3f..6057a30bb5 100644
--- a/engines/ultima/ultima8/world/actors/cru_avatar_mover_process.cpp
+++ b/engines/ultima/ultima8/world/actors/cru_avatar_mover_process.cpp
@@ -34,6 +34,8 @@ namespace Ultima8 {
 
 DEFINE_RUNTIME_CLASSTYPE_CODE(CruAvatarMoverProcess)
 
+static const int REBEL_BASE_MAP = 40;
+
 CruAvatarMoverProcess::CruAvatarMoverProcess() : AvatarMoverProcess(), _avatarAngle(0) {
 }
 
@@ -115,6 +117,11 @@ void CruAvatarMoverProcess::handleCombatMode() {
 	const Direction curdir = avatar->getDir();
 	const bool stasis = Ultima8Engine::get_instance()->isAvatarInStasis();
 
+	if (avatar->getMapNum() == REBEL_BASE_MAP) {
+		avatar->clearInCombat();
+		return;
+	}
+
 	// never idle when in combat
 	_idleTime = 0;
 
@@ -256,8 +263,9 @@ void CruAvatarMoverProcess::handleNormalMode() {
 	const Animation::Sequence lastanim = avatar->getLastAnim();
 	Direction direction = avatar->getDir();
 	const bool stasis = Ultima8Engine::get_instance()->isAvatarInStasis();
+	const bool rebelBase = (avatar->getMapNum() == REBEL_BASE_MAP);
 
-	if (hasMovementFlags(MOVE_STEP | MOVE_JUMP) && hasMovementFlags(MOVE_ANY_DIRECTION | MOVE_TURN_LEFT | MOVE_TURN_RIGHT)) {
+	if (!rebelBase && hasMovementFlags(MOVE_STEP | MOVE_JUMP) && hasMovementFlags(MOVE_ANY_DIRECTION | MOVE_TURN_LEFT | MOVE_TURN_RIGHT)) {
 		// All jump and step movements in crusader are handled identically
 		// whether starting from combat mode or not.
 		avatar->setInCombat(0);
@@ -298,7 +306,7 @@ void CruAvatarMoverProcess::handleNormalMode() {
 
 	Animation::Sequence nextanim = Animation::walk;
 
-	if (hasMovementFlags(MOVE_RUN)) {
+	if (!rebelBase && hasMovementFlags(MOVE_RUN)) {
 		if (lastanim == Animation::run
 			|| lastanim == Animation::startRun
 			|| lastanim == Animation::startRunSmallWeapon
@@ -317,7 +325,7 @@ void CruAvatarMoverProcess::handleNormalMode() {
 		return;
 	}
 
-	if (hasMovementFlags(MOVE_BACK)) {
+	if (!rebelBase && hasMovementFlags(MOVE_BACK)) {
 		if (mainactor)
 			mainactor->toggleInCombat();
 		step(Animation::retreat, direction);
@@ -428,6 +436,9 @@ void CruAvatarMoverProcess::tryAttack() {
 	if (!avatar)
 		return;
 
+	if (avatar->getMapNum() == REBEL_BASE_MAP)
+		return;
+
 	Direction dir = avatar->getDir();
 	if (!avatar->isInCombat()) {
 		avatar->setInCombat(0);
@@ -440,10 +451,12 @@ void CruAvatarMoverProcess::tryAttack() {
 
 void CruAvatarMoverProcess::saveData(Common::WriteStream *ws) {
 	AvatarMoverProcess::saveData(ws);
+	ws->writeSint32LE(_avatarAngle);
 }
 
 bool CruAvatarMoverProcess::loadData(Common::ReadStream *rs, uint32 version) {
 	if (!AvatarMoverProcess::loadData(rs, version)) return false;
+	_avatarAngle = rs->readSint32LE();
 	return true;
 }
 


Commit: 221cb0e10eb0e9faa2be6021ee8477cfa4dbc5f8
    https://github.com/scummvm/scummvm/commit/221cb0e10eb0e9faa2be6021ee8477cfa4dbc5f8
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-04-26T11:09:15+09:00

Commit Message:
DEVTOOLS: ULTIMA8: Add display data for Regret. Fix keycard display frame.

Changed paths:
  A devtools/create_ultima/files/ultima8/regretweapons.ini
    devtools/create_ultima/files/ultima8/remorseweapons.ini


diff --git a/devtools/create_ultima/files/ultima8/regretweapons.ini b/devtools/create_ultima/files/ultima8/regretweapons.ini
new file mode 100644
index 0000000000..334ac5a89b
--- /dev/null
+++ b/devtools/create_ultima/files/ultima8/regretweapons.ini
@@ -0,0 +1,299 @@
+# Actual weapons
+[BA-40]
+shape=0x032E
+sound=0x2C
+ammo_type=0
+damage_type=0x0B
+display_shape=3
+display_frame=2
+overlay_shape=0x01A1
+overlay=4
+small=1
+
+[BA-41]
+shape=0x032F
+sound=0x2C
+ammo_type=1
+damage_type=0x0B
+display_shape=3
+display_frame=1
+overlay_shape=0x01A1
+overlay=0
+small=1
+
+[PA-21]
+shape=0x0330
+sound=0x8
+ammo_type=0
+damage_type=0x05
+display_shape=3
+display_frame=7
+overlay_shape=0x036D
+overlay=0
+small=1
+
+[EM-4]
+shape=0x038C
+sound=0x43
+ammo_type=0
+damage_type=0x0F
+display_shape=3
+display_frame=3
+overlay_shape=0x036F
+overlay=0
+
+[SG-A1]
+shape=0x0332
+sound=0x55
+ammo_type=2
+damage_type=0x02
+display_shape=3
+display_frame=0
+overlay_shape=0x033B
+overlay=4
+
+[RP-22]
+shape=0x0333
+sound=0x2C
+ammo_type=3
+damage_type=0x01
+display_shape=3
+display_frame=6
+overlay_shape=0x036F
+overlay=0
+
+[RP-32]
+shape=0x0334
+sound=0x2C
+ammo_type=3
+damage_type=0x01
+display_shape=3
+display_frame=5
+overlay_shape=0x036F
+overlay=0
+
+[AR-7]
+shape=0x038E
+sound=0x2C
+ammo_type=4
+damage_type=0x0A
+display_shape=3
+display_frame=0xC
+overlay_shape=0x036E
+overlay=0
+
+[GL-303]
+shape=0x0388
+sound=0x64
+ammo_type=5
+damage_type=0x03
+display_shape=3
+display_frame=8
+overlay_shape=0x036E
+overlay=0
+
+[PA-31]
+shape=0x038A
+sound=0x2
+ammo_type=0
+damage_type=0x05
+display_shape=3
+display_frame=9
+overlay_shape=0x036F
+overlay=0
+
+[PL-1]
+shape=0x038D
+sound=0x47
+ammo_type=0
+damage_type=0x06
+display_shape=3
+display_frame=0xA
+overlay_shape=0x036E
+overlay=0
+
+[AC-88]
+shape=0x038B
+sound=0x55
+ammo_type=2
+damage_type=0x0D
+display_shape=3
+display_frame=4
+overlay_shape=0x036E
+overlay=0
+
+[UV-9]
+shape=0x0386
+sound=0x89
+ammo_type=0
+damage_type=0x0E
+display_shape=3
+display_frame=0xB
+overlay_shape=0x036E
+overlay=0
+
+[BK-16]
+shape=0x05F6
+sound=0x89
+ammo_type=0
+damage_type=0x0E
+display_shape=3
+display_frame=0xB
+overlay_shape=0x036E
+overlay=2
+
+[LNR-81]
+shape=0x05F5
+sound=0x165
+ammo_type=0
+damage_type=0x11
+display_shape=3
+display_frame=0xB
+overlay_shape=0x036E
+overlay=0
+
+[XP-5]
+shape=0x0198
+sound=0x167
+damage_type=0x14
+display_shape=3
+display_frame=0x10h
+overlay_shape=0x033B
+# TODO: check this
+overlay=0
+
+# Ammo
+[BA-41 CLIP]
+shape=0x033D
+display_shape=5
+display_frame=0x8
+
+[SG-A1 CLIP]
+shape=0x033E
+display_shape=5
+display_frame=0x9
+
+[RP-22 CLIP]
+shape=0x033F
+display_shape=5
+display_frame=0xA
+
+[AR-7 CLIP]
+shape=0x0340
+display_shape=5
+display_frame=0xB
+
+[GL-303 CLIP]
+shape=0x0341
+display_shape=5
+display_frame=0xC
+
+
+# Bombs, grenades, etc..
+[GRENADE]
+shape=0x0343
+display_shape=4
+display_frame=0
+
+[CONCUSSION GRENADE]
+shape=0x034E
+display_shape=4
+display_frame=1
+
+[NERVE GAS GRENADE]
+shape=0x034F
+display_shape=4
+display_frame=2
+
+[EMP GRENADE]
+shape=0x0350
+display_shape=4
+display_frame=3
+
+[SPIDER BOMB]
+shape=0x0560
+display_shape=4
+display_frame=4
+
+[LAND MINE]
+shape=0x039A
+display_shape=4
+display_frame=5
+
+[BLAST PAC]
+shape=0x039B
+display_shape=4
+display_frame=7
+
+[FUSION PAC]
+shape=0x039C
+display_shape=4
+display_frame=6
+
+
+# Other inventory items
+[MEDICAL KIT]
+shape=0x351
+display_shape=5
+display_frame=0
+
+[DATA LINK]
+shape=0x4D4
+display_shape=5
+display_frame=1
+
+[INHIBITOR]
+shape=0x52D
+display_shape=5
+display_frame=2
+
+[IONIC GENERATOR]
+shape=0x52E
+display_shape=5
+display_frame=3
+
+[ENERGY CUBE]
+shape=0x582
+display_shape=5
+display_frame=0x19
+
+[PLASMA GENERATOR]
+shape=0x52F
+display_shape=5
+display_frame=5
+
+[DET PAC]
+shape=0x55F
+display_shape=5
+display_frame=0x18
+
+[GRAVITON GENERATOR]
+shape=0x530
+display_shape=5
+display_frame=7
+
+[CHEMICAL BATTERY]
+shape=0x3A2
+display_shape=5
+display_frame=0x16
+
+[FUSION BATTERY]
+shape=0x3A3
+display_shape=5
+display_frame=0x15
+
+[FISSION BATTERY]
+shape=0x3A4
+display_shape=5
+display_frame=0x17
+
+# Other special case items
+[CREDITS]
+shape=0x4ED
+display_shape=3
+display_frame=0xD
+
+[KEYCARD]
+shape=0x111
+display_shape=5
+display_frame=0xD
diff --git a/devtools/create_ultima/files/ultima8/remorseweapons.ini b/devtools/create_ultima/files/ultima8/remorseweapons.ini
index 5720e6053f..d5d07174a4 100644
--- a/devtools/create_ultima/files/ultima8/remorseweapons.ini
+++ b/devtools/create_ultima/files/ultima8/remorseweapons.ini
@@ -266,3 +266,4 @@ display_frame=0xD
 [KEYCARD]
 shape=0x111
 display_shape=5
+display_frame=0xD


Commit: 378076dedf09d8309a52e56da7bc633594c24c27
    https://github.com/scummvm/scummvm/commit/378076dedf09d8309a52e56da7bc633594c24c27
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-04-26T11:09:18+09:00

Commit Message:
ULTIMA8: Correct count shown in Crusader pickups

Changed paths:
    engines/ultima/ultima8/gumps/cru_pickup_area_gump.cpp
    engines/ultima/ultima8/gumps/cru_pickup_area_gump.h
    engines/ultima/ultima8/gumps/cru_pickup_gump.cpp
    engines/ultima/ultima8/gumps/cru_pickup_gump.h
    engines/ultima/ultima8/world/actors/main_actor.cpp


diff --git a/engines/ultima/ultima8/gumps/cru_pickup_area_gump.cpp b/engines/ultima/ultima8/gumps/cru_pickup_area_gump.cpp
index 0dfdb337dc..6317f9a9b8 100644
--- a/engines/ultima/ultima8/gumps/cru_pickup_area_gump.cpp
+++ b/engines/ultima/ultima8/gumps/cru_pickup_area_gump.cpp
@@ -50,7 +50,7 @@ void CruPickupAreaGump::InitGump(Gump *newparent, bool take_focus) {
 	_instance = this;
 }
 
-void CruPickupAreaGump::addPickup(const Item *item) {
+void CruPickupAreaGump::addPickup(const Item *item, bool showCount) {
 	if (!item)
 		return;
 
@@ -67,7 +67,7 @@ void CruPickupAreaGump::addPickup(const Item *item) {
 			continue;
 		if (pug->getShapeNo() == shapeno) {
 			// Already a notification for this object, update it
-			pug->updateForNewItem(item);
+			pug->updateForNewItem(item, showCount);
 			return;
 		}
 		int32 x, y;
@@ -76,7 +76,7 @@ void CruPickupAreaGump::addPickup(const Item *item) {
 	}
 
 	// didn't find one, create a new one at the bottom.
-	Gump *newgump = new CruPickupGump(item, maxy);
+	Gump *newgump = new CruPickupGump(item, maxy, showCount);
 	newgump->InitGump(this, false);
 }
 
diff --git a/engines/ultima/ultima8/gumps/cru_pickup_area_gump.h b/engines/ultima/ultima8/gumps/cru_pickup_area_gump.h
index a090e6625b..cb99d5ce12 100644
--- a/engines/ultima/ultima8/gumps/cru_pickup_area_gump.h
+++ b/engines/ultima/ultima8/gumps/cru_pickup_area_gump.h
@@ -51,7 +51,7 @@ public:
 	bool loadData(Common::ReadStream *rs, uint32 version);
 	void saveData(Common::WriteStream *ws) override;
 
-	void addPickup(const Item *item);
+	void addPickup(const Item *item, bool showCount);
 
 	static CruPickupAreaGump *get_instance();
 private:
diff --git a/engines/ultima/ultima8/gumps/cru_pickup_gump.cpp b/engines/ultima/ultima8/gumps/cru_pickup_gump.cpp
index 83c96c9a7b..f368720714 100644
--- a/engines/ultima/ultima8/gumps/cru_pickup_gump.cpp
+++ b/engines/ultima/ultima8/gumps/cru_pickup_gump.cpp
@@ -44,10 +44,11 @@ static const int COUNT_TEXT_INDEX = 0x100;
 
 DEFINE_RUNTIME_CLASSTYPE_CODE(CruPickupGump)
 CruPickupGump::CruPickupGump() : Gump(), _startFrame(0), _itemShapeNo(0), _q(0),
-	_gumpShapeNo(0), _gumpFrameNo(0) {
+	_gumpShapeNo(0), _gumpFrameNo(0), _showCount(false) {
 }
 
-CruPickupGump::CruPickupGump(const Item *item, int y) : Gump(0, y, 5, 5, 0), _startFrame(0) {
+CruPickupGump::CruPickupGump(const Item *item, int y, bool showCount) : Gump(0, y, 5, 5, 0),
+	_startFrame(0), _showCount(showCount) {
 	const WeaponInfo *weaponInfo = item->getShapeInfo()->_weaponInfo;
 	if (weaponInfo) {
 		_itemShapeNo = item->getShape();
@@ -55,6 +56,9 @@ CruPickupGump::CruPickupGump(const Item *item, int y) : Gump(0, y, 5, 5, 0), _st
 		_itemName = weaponInfo->_name;
 		_gumpShapeNo = weaponInfo->_displayGumpShape;
 		_gumpFrameNo = weaponInfo->_displayGumpFrame;
+		// Special case for keycard - display depends on the card type
+		if (_itemShapeNo == 0x111)
+			_gumpFrameNo += item->getFrame();
 	} else {
 		_itemShapeNo = 0;
 		_q = 0;
@@ -119,7 +123,7 @@ void CruPickupGump::InitGump(Gump *newparent, bool take_focus) {
 	itemgump->Move(ITEM_AREA_WIDTH / 2 - itemframe->_width / 2, _dims.height() / 2 - itemframe->_height / 2);
 }
 
-void CruPickupGump::updateForNewItem(const Item *item) {
+void CruPickupGump::updateForNewItem(const Item *item, bool showCount) {
 	assert(item);
 	assert(item->getShape() == _itemShapeNo);
 	TextWidget *oldtext = dynamic_cast<TextWidget *>(FindGump(&FindByIndex<COUNT_TEXT_INDEX>));
@@ -127,16 +131,20 @@ void CruPickupGump::updateForNewItem(const Item *item) {
 		RemoveChild(oldtext);
 		oldtext->Close();
 	}
-	// TODO: should we add current q? + currentq;
-	// It seems like the items are hacked to give the right "q" for
-	// this gump from the last item, which is why the add process
-	// uses q + 1 instead of adding the new q.
-	_q = item->getQuality();
+
+	_showCount = showCount;
+
+	// If we're updating the existing count, add 1 or special-case credits
+	if (_itemShapeNo == 0x4ed)
+		_q += item->getQuality();
+	else
+		_q++;
+
 	addCountText();
 }
 
 void CruPickupGump::addCountText() {
-	if (_q <= 1)
+	if (_q <= 1 || !_showCount)
 		return;
 	Std::string qstr = Std::string::format("%d", _q);
 	TextWidget *count = new TextWidget(ITEM_AREA_WIDTH / 2 + 22, _dims.height() / 2 + 3, qstr, true, COUNT_TEXT_FONT);
diff --git a/engines/ultima/ultima8/gumps/cru_pickup_gump.h b/engines/ultima/ultima8/gumps/cru_pickup_gump.h
index 9f17ff2849..aa18e9a2c2 100644
--- a/engines/ultima/ultima8/gumps/cru_pickup_gump.h
+++ b/engines/ultima/ultima8/gumps/cru_pickup_gump.h
@@ -39,7 +39,7 @@ public:
 	ENABLE_RUNTIME_CLASSTYPE()
 
 	CruPickupGump();
-	CruPickupGump(const Item *item, int y);
+	CruPickupGump(const Item *item, int y, bool showCount);
 
 	~CruPickupGump() override {};
 
@@ -58,7 +58,7 @@ public:
 	}
 
 	//! Update for a second item pickup - generally just replace existing count text.
-	void updateForNewItem(const Item *item);
+	void updateForNewItem(const Item *item, bool showCount);
 	void addCountText();
 
 	bool loadData(Common::ReadStream *rs, uint32 version);
@@ -71,6 +71,7 @@ private:
 	uint16 _gumpFrameNo;
 	Std::string _itemName;
 	uint16 _q;
+	bool _showCount;
 };
 
 } // End of namespace Ultima8
diff --git a/engines/ultima/ultima8/world/actors/main_actor.cpp b/engines/ultima/ultima8/world/actors/main_actor.cpp
index 9e4ef2862d..9a85099941 100644
--- a/engines/ultima/ultima8/world/actors/main_actor.cpp
+++ b/engines/ultima/ultima8/world/actors/main_actor.cpp
@@ -144,7 +144,7 @@ int16 MainActor::addItemCru(Item *item, bool showtoast) {
 			credits->setQuality(newq);
 			credits->callUsecodeEvent_combine();
 			if (showtoast)
-				pickupArea->addPickup(item);
+				pickupArea->addPickup(item, true);
 			item->destroy();
 		} else {
 			item->setFrame(0);
@@ -152,7 +152,7 @@ int16 MainActor::addItemCru(Item *item, bool showtoast) {
 			if (!_activeInvItem)
 				_activeInvItem = item->getObjId();
 			if (showtoast)
-				pickupArea->addPickup(item);
+				pickupArea->addPickup(item, true);
 		}
 		return 1;
 	}
@@ -176,7 +176,7 @@ int16 MainActor::addItemCru(Item *item, bool showtoast) {
 			if (!_activeWeapon)
 				_activeWeapon = item->getObjId();
 			if (showtoast)
-				pickupArea->addPickup(item);
+				pickupArea->addPickup(item, false);
 		}
 		break;
 	}
@@ -188,7 +188,7 @@ int16 MainActor::addItemCru(Item *item, bool showtoast) {
 			item->callUsecodeEvent_combine();
 			item->moveToContainer(this);
 			if (showtoast)
-				pickupArea->addPickup(item);
+				pickupArea->addPickup(item, true);
 			return 1;
 		} else {
 			// already have this, add some ammo.
@@ -197,7 +197,7 @@ int16 MainActor::addItemCru(Item *item, bool showtoast) {
 				ammo->setQuality(q + 1);
 				ammo->callUsecodeEvent_combine();
 				if (showtoast)
-					pickupArea->addPickup(item);
+					pickupArea->addPickup(item, true);
 				item->destroy();
 				return 1;
 			}
@@ -209,14 +209,14 @@ int16 MainActor::addItemCru(Item *item, bool showtoast) {
 		if (shapeno == 0x111) {
 			addKeycard(item->getQuality() & 0xff);
 			if (showtoast) {
-				pickupArea->addPickup(item);
+				pickupArea->addPickup(item, false);
 			}
 			item->destroy();
 			return 1;
 		} else if ((shapeno == 0x3a2) || (shapeno == 0x3a3) || (shapeno == 0x3a4)) {
 			// Batteries
 			if (showtoast)
-				pickupArea->addPickup(item);
+				pickupArea->addPickup(item, false);
 			item->destroy();
 			int plusenergy = 0;
 			CruBatteryType oldbattery = _cruBatteryType;
@@ -268,7 +268,7 @@ int16 MainActor::addItemCru(Item *item, bool showtoast) {
 						_shieldType = shieldtype;
 					}
 					if (showtoast)
-						pickupArea->addPickup(item);
+						pickupArea->addPickup(item, false);
 					item->destroy();
 					return 1;
 				} else {
@@ -277,7 +277,7 @@ int16 MainActor::addItemCru(Item *item, bool showtoast) {
 					item->callUsecodeEvent_combine();
 					item->moveToContainer(this);
 					if (showtoast)
-						pickupArea->addPickup(item);
+						pickupArea->addPickup(item, true);
 					if (!_activeInvItem)
 						_activeInvItem = item->getObjId();
 					return 1;
@@ -294,7 +294,7 @@ int16 MainActor::addItemCru(Item *item, bool showtoast) {
 						existing->setQuality(q + 1);
 						existing->callUsecodeEvent_combine();
 						if (showtoast)
-							pickupArea->addPickup(item);
+							pickupArea->addPickup(item, true);
 						item->destroy();
 						return 1;
 					}
@@ -304,7 +304,7 @@ int16 MainActor::addItemCru(Item *item, bool showtoast) {
 						existing->setQuality(q + 1);
 						existing->callUsecodeEvent_combine();
 						if (showtoast)
-							pickupArea->addPickup(item);
+							pickupArea->addPickup(item, true);
 						item->destroy();
 						return 1;
 					}




More information about the Scummvm-git-logs mailing list