[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