[Scummvm-git-logs] scummvm master -> 9dc83487187f18acfc30df21d671b1dc3b09e39e

mduggan mgithub at guarana.org
Mon May 4 01:47:35 UTC 2020


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

Summary:
6309b27802 ULTIMA8: Add some unknown shape families from crusader maps
d93efb3b9a ULTIMA8: Don't break to debugger on 'e' command
e2cdf92435 ULTIMA8: Fix debug message
eededcfb4f ULTIMA8: Better defaults for crusader startup
9dc8348718 ULTIMA8: JANITORIAL: Clean up variable names


Commit: 6309b2780227970276fd11f4fe9343827e346a38
    https://github.com/scummvm/scummvm/commit/6309b2780227970276fd11f4fe9343827e346a38
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2020-05-04T10:04:55+09:00

Commit Message:
ULTIMA8: Add some unknown shape families from crusader maps

Changed paths:
    engines/ultima/ultima8/graphics/shape_info.h
    engines/ultima/ultima8/world/item_factory.cpp
    engines/ultima/ultima8/world/map.cpp


diff --git a/engines/ultima/ultima8/graphics/shape_info.h b/engines/ultima/ultima8/graphics/shape_info.h
index 702e435ddc..bca7eac9be 100644
--- a/engines/ultima/ultima8/graphics/shape_info.h
+++ b/engines/ultima/ultima8/graphics/shape_info.h
@@ -69,6 +69,10 @@ public:
 		SF_MONSTEREGG  = 7,
 		SF_TELEPORTEGG = 8,
 		SF_REAGENT     = 9,
+		SF_10		   = 10, // ?? Used in Crusader
+		SF_11		   = 11, // ?? Used in Crusader
+		SF_12		   = 12, // ?? Used in Crusader
+		SF_13		   = 13, // ?? Used in Crusader
 		SF_15          = 15
 	};
 
diff --git a/engines/ultima/ultima8/world/item_factory.cpp b/engines/ultima/ultima8/world/item_factory.cpp
index a5d35c2ff9..4cb3d4f574 100644
--- a/engines/ultima/ultima8/world/item_factory.cpp
+++ b/engines/ultima/ultima8/world/item_factory.cpp
@@ -47,6 +47,10 @@ static Item *getItemForFamily(uint32 family) {
 	case ShapeInfo::SF_QUANTITY:
 	case ShapeInfo::SF_BREAKABLE:
 	case ShapeInfo::SF_REAGENT: // reagents need special handling too
+	case ShapeInfo::SF_10: // TODO: What's this? used in crusader levels
+	case ShapeInfo::SF_11: // TODO: What's this? used in crusader levels
+	case ShapeInfo::SF_12: // TODO: What's this? used in crusader levels
+	case ShapeInfo::SF_13: // TODO: What's this? used in crusader levels
 	case ShapeInfo::SF_15: // what's this?
 		// 'simple' item
 		return new Item();
diff --git a/engines/ultima/ultima8/world/map.cpp b/engines/ultima/ultima8/world/map.cpp
index 610a14ab5e..bb779bac32 100644
--- a/engines/ultima/ultima8/world/map.cpp
+++ b/engines/ultima/ultima8/world/map.cpp
@@ -257,6 +257,12 @@ void Map::loadFixedFormatObjects(Std::list<Item *> &itemlist,
 
 			pout << "Couldn't create item" << Std::endl;
 			continue;
+		} else {
+			ShapeInfo *info = item->getShapeInfo();
+			assert(info);
+			if (info->_family > 10) {
+				warning("Created fixed item unknown family %d, shape (%d, %d) at (%d, %d, %d)", info->_family, shape, frame, x, y, z);
+			}
 		}
 		item->setLocation(x, y, z);
 


Commit: d93efb3b9a80518b9e7325c6914e31b6ed628d7f
    https://github.com/scummvm/scummvm/commit/d93efb3b9a80518b9e7325c6914e31b6ed628d7f
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2020-05-04T10:09:44+09:00

Commit Message:
ULTIMA8: Don't break to debugger on 'e' command

Changed paths:
    engines/ultima/ultima8/misc/debugger.cpp


diff --git a/engines/ultima/ultima8/misc/debugger.cpp b/engines/ultima/ultima8/misc/debugger.cpp
index 1f07ed0041..a7faf8a53e 100644
--- a/engines/ultima/ultima8/misc/debugger.cpp
+++ b/engines/ultima/ultima8/misc/debugger.cpp
@@ -301,7 +301,7 @@ bool Debugger::cmdTogglePaintEditorItems(int argc, const char **argv) {
 	Ultima8Engine *g = Ultima8Engine::get_instance();
 	g->togglePaintEditorItems();
 	debugPrintf("paintEditorItems = %s\n", strBool(g->isPaintEditorItems()));
-	return true;
+	return false;
 }
 
 bool Debugger::cmdToggleShowTouchingItems(int argc, const char **argv) {


Commit: e2cdf92435cb948f93ccaf81f650b0f442d57137
    https://github.com/scummvm/scummvm/commit/e2cdf92435cb948f93ccaf81f650b0f442d57137
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2020-05-04T10:09:44+09:00

Commit Message:
ULTIMA8: Fix debug message

Changed paths:
    engines/ultima/ultima8/usecode/uc_machine.cpp


diff --git a/engines/ultima/ultima8/usecode/uc_machine.cpp b/engines/ultima/ultima8/usecode/uc_machine.cpp
index dd4b0c9943..a1bfe613d8 100644
--- a/engines/ultima/ultima8/usecode/uc_machine.cpp
+++ b/engines/ultima/ultima8/usecode/uc_machine.cpp
@@ -348,7 +348,7 @@ void UCMachine::execProcess(UCProcess *p) {
 			//! TODO
 			uint16 arg_bytes = cs.readByte();
 			uint16 func = cs.readUint16LE();
-			debug(MM_INFO, "calli\t\t%04Xh (%02Xh arg bytes) %s \n", func, arg_bytes, _convUse->intrinsics()[func]);
+			debug(MM_INFO, "calli\t\t%04Xh (%02Xh arg bytes) %s ", func, arg_bytes, _convUse->intrinsics()[func]);
 
 			// !constants
 			if (func >= _intrinsicCount || _intrinsics[func] == 0) {


Commit: eededcfb4f27c8d7d20c7e48279897a7c157ab64
    https://github.com/scummvm/scummvm/commit/eededcfb4f27c8d7d20c7e48279897a7c157ab64
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2020-05-04T10:09:44+09:00

Commit Message:
ULTIMA8: Better defaults for crusader startup

Also better default font for shape viewer, fix charset.

Changed paths:
    engines/ultima/ultima8/games/remorse_game.cpp
    engines/ultima/ultima8/graphics/fonts/shape_font.cpp
    engines/ultima/ultima8/gumps/shape_viewer_gump.cpp


diff --git a/engines/ultima/ultima8/games/remorse_game.cpp b/engines/ultima/ultima8/games/remorse_game.cpp
index 40ca8ebbe4..c3b0999c6b 100644
--- a/engines/ultima/ultima8/games/remorse_game.cpp
+++ b/engines/ultima/ultima8/games/remorse_game.cpp
@@ -113,12 +113,16 @@ bool RemorseGame::startGame() {
 
 	ObjectManager::get_instance()->assignActorObjId(actor, 1);
 
-	actor->setLocation(60700, 59420, 16);
-
+	if (GAME_IS_REMORSE) {
+		actor->setLocation(60700, 59420, 16);
+	} else {
+		actor->setLocation(58174, 56606, 16);
+	}
 
 	World::get_instance()->switchMap(1);
 
-	Ultima8Engine::get_instance()->setAvatarInStasis(true);
+	//Ultima8Engine::get_instance()->setAvatarInStasis(true);
+	Ultima8Engine::get_instance()->setCheatMode(true);
 
 	return true;
 }
diff --git a/engines/ultima/ultima8/graphics/fonts/shape_font.cpp b/engines/ultima/ultima8/graphics/fonts/shape_font.cpp
index 66f3392b01..f5cd985a82 100644
--- a/engines/ultima/ultima8/graphics/fonts/shape_font.cpp
+++ b/engines/ultima/ultima8/graphics/fonts/shape_font.cpp
@@ -38,7 +38,7 @@ ShapeFont::ShapeFont(const uint8 *data_, uint32 size_,
                      const uint16 flexId_, const uint32 shapeNum_)
 	: Font(), Shape(data_, size_, format, flexId_, shapeNum_),
 	  _height(0), _baseLine(0), _vLead(-1), _hLead(0) {
-	_crusaderCharMap = GAME_IS_CRUSADER;
+	_crusaderCharMap = GAME_IS_CRUSADER && shapeNum_ == 1;
 }
 
 ShapeFont::~ShapeFont() {
diff --git a/engines/ultima/ultima8/gumps/shape_viewer_gump.cpp b/engines/ultima/ultima8/gumps/shape_viewer_gump.cpp
index 51c1f71e0e..24ca38adde 100644
--- a/engines/ultima/ultima8/gumps/shape_viewer_gump.cpp
+++ b/engines/ultima/ultima8/gumps/shape_viewer_gump.cpp
@@ -67,6 +67,11 @@ ShapeViewerGump::ShapeViewerGump(int x, int y, int width, int height,
 		_flex = _flexes[0].second;
 	else
 		_flex = nullptr;
+
+	if (GAME_IS_CRUSADER) {
+		// Default to a decent font on Crusader
+		_fontNo = 6;
+	}
 }
 
 ShapeViewerGump::~ShapeViewerGump() {
@@ -210,8 +215,8 @@ bool ShapeViewerGump::OnKeyDown(int key, int mod) {
 	break;
 	case Common::KEYCODE_f: {
 		_fontNo++;
-		if (_fontNo >= GameData::get_instance()->getFonts()->getCount())
-		{
+		if (_fontNo >= GameData::get_instance()->getFonts()->getCount() ||
+			_fontNo > 17) {
 			_fontNo = 0;
 		}
 	}


Commit: 9dc83487187f18acfc30df21d671b1dc3b09e39e
    https://github.com/scummvm/scummvm/commit/9dc83487187f18acfc30df21d671b1dc3b09e39e
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2020-05-04T10:46:47+09:00

Commit Message:
ULTIMA8: JANITORIAL: Clean up variable names

Changed paths:
    engines/ultima/ultima8/world/actors/actor_anim_process.cpp
    engines/ultima/ultima8/world/actors/animation_tracker.cpp


diff --git a/engines/ultima/ultima8/world/actors/actor_anim_process.cpp b/engines/ultima/ultima8/world/actors/actor_anim_process.cpp
index 108665d6a6..252ccef3d1 100644
--- a/engines/ultima/ultima8/world/actors/actor_anim_process.cpp
+++ b/engines/ultima/ultima8/world/actors/actor_anim_process.cpp
@@ -65,13 +65,13 @@ ActorAnimProcess::ActorAnimProcess() : Process(), _tracker(nullptr),
 	_attackedSomething(false) {
 }
 
-ActorAnimProcess::ActorAnimProcess(Actor *actor_, Animation::Sequence action_,
-                                   uint32 dir_, uint32 steps_) :
-		_dir(dir_), _action(action_), _steps(steps_), _tracker(nullptr),
+ActorAnimProcess::ActorAnimProcess(Actor *actor, Animation::Sequence action,
+                                   uint32 dir, uint32 steps) :
+		_dir(dir), _action(action), _steps(steps), _tracker(nullptr),
 		_firstFrame(true), _currentStep(0), _repeatCounter(0),
 		_animAborted(false), _attackedSomething(false)  {
-	assert(actor_);
-	_itemNum = actor_->getObjId();
+	assert(actor);
+	_itemNum = actor->getObjId();
 
 	_type = ACTOR_ANIM_PROC_TYPE;
 }
diff --git a/engines/ultima/ultima8/world/actors/animation_tracker.cpp b/engines/ultima/ultima8/world/actors/animation_tracker.cpp
index 2d98de4787..f213a1add2 100644
--- a/engines/ultima/ultima8/world/actors/animation_tracker.cpp
+++ b/engines/ultima/ultima8/world/actors/animation_tracker.cpp
@@ -56,38 +56,38 @@ AnimationTracker::AnimationTracker() : _firstFrame(true), _done(false),
 AnimationTracker::~AnimationTracker() {
 }
 
-bool AnimationTracker::init(const Actor *actor_, Animation::Sequence action_,
-                            uint32 dir_, const PathfindingState *state_) {
-	assert(actor_);
-	_actor = actor_->getObjId();
-	uint32 shape = actor_->getShape();
+bool AnimationTracker::init(const Actor *actor, Animation::Sequence action,
+                            uint32 dir, const PathfindingState *state) {
+	assert(actor);
+	_actor = actor->getObjId();
+	uint32 shape = actor->getShape();
 	_animAction = GameData::get_instance()->getMainShapes()->
-	             getAnim(shape, action_);
+	             getAnim(shape, action);
 	if (!_animAction)
 		return false;
 
-	_dir = dir_;
+	_dir = dir;
 
-	if (state_ == 0) {
-		_animAction->getAnimRange(actor_, _dir, _startFrame, _endFrame);
-		actor_->getLocation(_x, _y, _z);
-		_flipped = actor_->hasFlags(Item::FLG_FLIPPED);
-		_firstStep = actor_->hasActorFlags(Actor::ACT_FIRSTSTEP);
+	if (state == 0) {
+		_animAction->getAnimRange(actor, _dir, _startFrame, _endFrame);
+		actor->getLocation(_x, _y, _z);
+		_flipped = actor->hasFlags(Item::FLG_FLIPPED);
+		_firstStep = actor->hasActorFlags(Actor::ACT_FIRSTSTEP);
 	} else {
-		_animAction->getAnimRange(state_->_lastAnim, state_->_direction,
-		                         state_->_firstStep, _dir, _startFrame, _endFrame);
-		_flipped = state_->_flipped;
-		_firstStep = state_->_firstStep;
-		_x = state_->_x;
-		_y = state_->_y;
-		_z = state_->_z;
+		_animAction->getAnimRange(state->_lastAnim, state->_direction,
+		                         state->_firstStep, _dir, _startFrame, _endFrame);
+		_flipped = state->_flipped;
+		_firstStep = state->_firstStep;
+		_x = state->_x;
+		_y = state->_y;
+		_z = state->_z;
 	}
 	_startX = _x;
 	_startY = _y;
 	_startZ = _z;
 
 #ifdef WATCHACTOR
-	if (actor_ && actor_->getObjId() == watchactor) {
+	if (actor && actor->getObjId() == watchactor) {
 		pout << "AnimationTracker: playing " << _startFrame << "-" << _endFrame
 		     << " (_animAction flags: " << Std::hex << _animAction->flags
 		     << Std::dec << ")" << Std::endl;




More information about the Scummvm-git-logs mailing list