[Scummvm-git-logs] scummvm master -> 0e6b95ba6da1caf3aec35d73e5a02452407bab97
scemino
noreply at scummvm.org
Fri Apr 26 21:03:41 UTC 2024
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:
10a73fe03e TWP Fix regression in sayLineAt
367263d34d TWP: Remove unused "Select actor 6"
66e2d2a36a TWP: Add verb highlight
b91e0ac5d6 TWP: Add Select Highlighted Verb
0e6b95ba6d TWP: Add user preferences management
Commit: 10a73fe03e865483955f59e361e6a178aa3381f2
https://github.com/scummvm/scummvm/commit/10a73fe03e865483955f59e361e6a178aa3381f2
Author: scemino (scemino74 at gmail.com)
Date: 2024-04-26T23:03:32+02:00
Commit Message:
TWP Fix regression in sayLineAt
Changed paths:
engines/twp/motor.cpp
diff --git a/engines/twp/motor.cpp b/engines/twp/motor.cpp
index 9883cf20508..977d49e5c73 100644
--- a/engines/twp/motor.cpp
+++ b/engines/twp/motor.cpp
@@ -372,7 +372,7 @@ void TalkingBase::setDuration(const Common::String &text) {
}
float TalkingBase::getTalkSpeed() const {
- return _actor->_sound ? 1.f : (ConfMan.getInt("talkspeed") + 1) / 60.f;
+ return (_actor && _actor->_sound) ? 1.f : (ConfMan.getInt("talkspeed") + 1) / 60.f;
}
Talking::Talking(Common::SharedPtr<Object> obj, const Common::StringArray &texts, const Color &color) : TalkingBase(obj, 0.f) {
Commit: 367263d34dcac2e70914ed5fd6d256fa5644b2cd
https://github.com/scummvm/scummvm/commit/367263d34dcac2e70914ed5fd6d256fa5644b2cd
Author: scemino (scemino74 at gmail.com)
Date: 2024-04-26T23:03:32+02:00
Commit Message:
TWP: Remove unused "Select actor 6"
Changed paths:
engines/twp/actions.h
engines/twp/metaengine.cpp
engines/twp/twp.cpp
diff --git a/engines/twp/actions.h b/engines/twp/actions.h
index 199c0f3ea01..409558be4b7 100644
--- a/engines/twp/actions.h
+++ b/engines/twp/actions.h
@@ -36,7 +36,6 @@ enum TwpAction {
kSelectActor3,
kSelectActor4,
kSelectActor5,
- kSelectActor6,
kSelectChoice1,
kSelectChoice2,
kSelectChoice3,
diff --git a/engines/twp/metaengine.cpp b/engines/twp/metaengine.cpp
index d2b233def7f..322b65e11c9 100644
--- a/engines/twp/metaengine.cpp
+++ b/engines/twp/metaengine.cpp
@@ -158,7 +158,6 @@ Common::Array<Common::Keymap *> TwpMetaEngine::initKeymaps(const char *target) c
{"SELECTACTOR3", _s("Select Actor 3"), Twp::kSelectActor3, "3", Common::EVENT_INVALID, Common::KEYCODE_INVALID},
{"SELECTACTOR4", _s("Select Actor 4"), Twp::kSelectActor4, "4", Common::EVENT_INVALID, Common::KEYCODE_INVALID},
{"SELECTACTOR5", _s("Select Actor 5"), Twp::kSelectActor5, "5", Common::EVENT_INVALID, Common::KEYCODE_INVALID},
- {"SELECTACTOR6", _s("Select Actor 6"), Twp::kSelectActor6, "6", Common::EVENT_INVALID, Common::KEYCODE_INVALID},
{"SELECTCHOICE1", _s("Select Choice 1"), Twp::kSelectChoice1, "1", Common::EVENT_INVALID, Common::KEYCODE_INVALID},
{"SELECTCHOICE2", _s("Select Choice 2"), Twp::kSelectChoice2, "2", Common::EVENT_INVALID, Common::KEYCODE_INVALID},
{"SELECTCHOICE3", _s("Select Choice 3"), Twp::kSelectChoice3, "3", Common::EVENT_INVALID, Common::KEYCODE_INVALID},
diff --git a/engines/twp/twp.cpp b/engines/twp/twp.cpp
index 157b202cf89..79f353988d5 100644
--- a/engines/twp/twp.cpp
+++ b/engines/twp/twp.cpp
@@ -902,7 +902,6 @@ Common::Error TwpEngine::run() {
case TwpAction::kSelectActor3:
case TwpAction::kSelectActor4:
case TwpAction::kSelectActor5:
- case TwpAction::kSelectActor6:
if (_actorSwitcher._mode == asOn) {
int index = (TwpAction)e.customType - kSelectActor1;
ActorSlot *slot = &_hud->_actorSlots[index];
Commit: 66e2d2a36a147f390546436b9be6de80005fe4f7
https://github.com/scummvm/scummvm/commit/66e2d2a36a147f390546436b9be6de80005fe4f7
Author: scemino (scemino74 at gmail.com)
Date: 2024-04-26T23:03:32+02:00
Commit Message:
TWP: Add verb highlight
Changed paths:
engines/twp/hud.cpp
engines/twp/hud.h
diff --git a/engines/twp/hud.cpp b/engines/twp/hud.cpp
index 2a8fa8b9ab6..d4057d6c965 100644
--- a/engines/twp/hud.cpp
+++ b/engines/twp/hud.cpp
@@ -199,7 +199,7 @@ void Hud::drawCore(const Math::Matrix4 &trsf) {
const VerbSlot &verbSlot = slot->verbSlots[i];
if (verbSlot._verb.image.size() > 0) {
const SpriteSheetFrame &verbFrame = verbSheet->getFrame(Common::String::format("%s%s_%s", verbSlot._verb.image.c_str(), verbSuffix.c_str(), lang.c_str()));
- Color color = (verbSlot._over || (verbSlot._verb.id.id == _defaultVerbId)) ? verbHighlight : verbColor;
+ Color color = (verbSlot._over || (verbSlot._hightlight)) ? verbHighlight : verbColor;
Math::Matrix4 t(trsf);
t.translate(Math::Vector3d(verbSlot._shakeOffset.getX(), verbSlot._shakeOffset.getY(), 0.f));
drawSprite(verbFrame, verbTexture, Color::withAlpha(color, getAlpha()), t);
@@ -234,12 +234,20 @@ void Hud::update(float elapsed, const Math::Vector2d &pos, Common::SharedPtr<Obj
Common::String lang = ConfMan.get("language");
Common::String verbSuffix = retroVerbs ? "_retro" : "";
SpriteSheet *verbSheet = g_twp->_resManager->spriteSheet("VerbSheet");
+
+ // get the verb to highlight
+ int defaultVerbId = slot->verbSlots[0]._verb.id.id;
+ if (g_twp->_noun1 && (this->_verb.id.id == slot->verbSlots[0]._verb.id.id)) {
+ defaultVerbId = g_twp->_noun1->defaultVerbId();
+ }
+
bool isOver = false;
for (int i = 1; i < MAX_VERBS; i++) {
VerbSlot &verbSlot = slot->verbSlots[i];
if (verbSlot._verb.image.size() > 0) {
const SpriteSheetFrame &verbFrame = verbSheet->getFrame(Common::String::format("%s%s_%s", verbSlot._verb.image.c_str(), verbSuffix.c_str(), lang.c_str()));
bool over = verbFrame.spriteSourceSize.contains(_mousePos.getX(), _mousePos.getY());
+ verbSlot._hightlight = (verbSlot._verb.id.id == defaultVerbId);
// shake choice when cursor is over
if ((verbSlot._shakeTime > 0.0f) && verbSlot._shake) {
verbSlot._shake->update(elapsed);
diff --git a/engines/twp/hud.h b/engines/twp/hud.h
index a8ffaa46675..d7617c44f87 100644
--- a/engines/twp/hud.h
+++ b/engines/twp/hud.h
@@ -66,6 +66,7 @@ struct VerbSlot {
Common::ScopedPtr<Motor> _shake;
Math::Vector2d _shakeOffset;
bool _over = false;
+ bool _hightlight = false;
VerbSlot() {}
VerbSlot(Verb verb) : _verb(verb) {}
Commit: b91e0ac5d672af653794d088d01ab199b880da37
https://github.com/scummvm/scummvm/commit/b91e0ac5d672af653794d088d01ab199b880da37
Author: scemino (scemino74 at gmail.com)
Date: 2024-04-26T23:03:32+02:00
Commit Message:
TWP: Add Select Highlighted Verb
Changed paths:
engines/twp/actions.h
engines/twp/metaengine.cpp
diff --git a/engines/twp/actions.h b/engines/twp/actions.h
index 409558be4b7..472d692f5ff 100644
--- a/engines/twp/actions.h
+++ b/engines/twp/actions.h
@@ -26,6 +26,7 @@ namespace Twp {
enum TwpAction {
kDefaultAction,
+ kSelectHighlightedVerb,
kMoveLeft,
kMoveRight,
kMoveUp,
diff --git a/engines/twp/metaengine.cpp b/engines/twp/metaengine.cpp
index 322b65e11c9..0494eb40c2c 100644
--- a/engines/twp/metaengine.cpp
+++ b/engines/twp/metaengine.cpp
@@ -148,6 +148,7 @@ Common::Array<Common::Keymap *> TwpMetaEngine::initKeymaps(const char *target) c
Common::KeyCode key;
} actions[] = {
{"ACTION", _s("Action"), Twp::kDefaultAction, "MOUSE_LEFT|JOY_A|RETURN", Common::EVENT_LBUTTONDOWN, Common::KEYCODE_INVALID},
+ {"SELECTHIGHLIGHTEDVERB", _s("Select highlighted verb"), Twp::kSelectHighlightedVerb, "MOUSE_RIGHT|JOY_X", Common::EVENT_RBUTTONDOWN, Common::KEYCODE_INVALID},
{Common::kStandardActionMoveLeft, _s("Left"), Twp::kMoveLeft, "LEFT|JOY_LEFT", Common::EVENT_INVALID, Common::KEYCODE_LEFT},
{Common::kStandardActionMoveRight, _s("Right"), Twp::kMoveRight, "RIGHT|JOY_RIGHT", Common::EVENT_INVALID, Common::KEYCODE_RIGHT},
{Common::kStandardActionMoveUp, _s("Up"), Twp::kMoveUp, "UP|JOY_UP", Common::EVENT_INVALID, Common::KEYCODE_UP},
@@ -166,7 +167,7 @@ Common::Array<Common::Keymap *> TwpMetaEngine::initKeymaps(const char *target) c
{"SELECTCHOICE6", _s("Select Choice 6"), Twp::kSelectChoice6, "6", Common::EVENT_INVALID, Common::KEYCODE_INVALID},
{"SELECTNEXTACTOR", _s("Select Next Actor"), Twp::kSelectNextActor, "0", Common::EVENT_INVALID, Common::KEYCODE_INVALID},
{"SELECTPREVACTOR", _s("Select Previous Actor"), Twp::kSelectPreviousActor, "9", Common::EVENT_INVALID, Common::KEYCODE_INVALID},
- {"SKIPTEXT", _s("Skip Text"), Twp::kSkipText, "MOUSE_MIDDLE|PERIOD", Common::EVENT_INVALID, Common::KEYCODE_INVALID},
+ {"SKIPTEXT", _s("Skip Text"), Twp::kSkipText, "MOUSE_MIDDLE|PERIOD|JOY_Y", Common::EVENT_INVALID, Common::KEYCODE_INVALID},
{"SHOWHOTSPOTS", _s("Show hotspots"), Twp::kShowHotspots, "TAB", Common::EVENT_INVALID, Common::KEYCODE_INVALID},
{"OPEN", _s("Open"), Twp::kOpen, "q", Common::EVENT_INVALID, Common::KEYCODE_INVALID},
{"CLOSE", _s("Close"), Twp::kClose, "a", Common::EVENT_INVALID, Common::KEYCODE_INVALID},
Commit: 0e6b95ba6da1caf3aec35d73e5a02452407bab97
https://github.com/scummvm/scummvm/commit/0e6b95ba6da1caf3aec35d73e5a02452407bab97
Author: scemino (scemino74 at gmail.com)
Date: 2024-04-26T23:03:32+02:00
Commit Message:
TWP: Add user preferences management
Changed paths:
engines/twp/genlib.cpp
diff --git a/engines/twp/genlib.cpp b/engines/twp/genlib.cpp
index c554a76b05d..2c7f39eff58 100644
--- a/engines/twp/genlib.cpp
+++ b/engines/twp/genlib.cpp
@@ -346,19 +346,72 @@ static SQInteger frameCounter(HSQUIRRELVM v) {
static SQInteger getUserPref(HSQUIRRELVM v) {
Common::String key;
if (SQ_FAILED(sqget(v, 2, key))) {
- return sq_throwerror(v, "failed to get key");
+ return sq_throwerror(v, _SC("failed to get key"));
}
- // TODO: use ConfMan to search for key
+ SQInteger numArgs = sq_gettop(v) - 1;
+ // is there a fault value as argument ?
+ if (numArgs > 1) {
+ SQObjectType type = sq_gettype(v, 3);
+ if (type == SQObjectType::OT_STRING) {
+ Common::String str;
+ sqget(v, 3, str);
+ sqpush(v, ConfMan.hasKey(key) ? ConfMan.get(key) : str);
+ return 1;
+ }
+ if (type == SQObjectType::OT_INTEGER) {
+ SQInteger integer;
+ sqget(v, 3, integer);
+ if (ConfMan.hasKey(key)) {
+ Common::String value = ConfMan.get(key);
+ bool bValue = false;
+ if (parseBool(value, bValue)) {
+ sqpush(v, bValue);
+ return 1;
+ }
+ sqpush(v, ConfMan.getInt(key));
+ return 1;
+ }
- // if configuration
- int numArgs = sq_gettop(v);
- if (numArgs == 3) {
- HSQOBJECT obj;
- sq_getstackobj(v, 3, &obj);
- sqpush(v, obj);
+ sqpush(v, integer);
+ return 1;
+ }
+ if (type == SQObjectType::OT_FLOAT) {
+ SQFloat fl;
+ sqget(v, 3, fl);
+ sqpush(v, ConfMan.hasKey(key) ? atof(ConfMan.get(key).c_str()) : fl);
+ return 1;
+ }
+ return sq_throwerror(v, _SC("failed to get user preferences"));
+ }
+
+ if (ConfMan.hasKey(key)) {
+ Common::String value = ConfMan.get(key);
+ bool isNumber = !value.empty();
+ bool isFloat = false;
+ for (size_t i = 0; i < value.size(); i++) {
+ if (!isFloat && value[i] == '.') {
+ isFloat = true;
+ continue;
+ }
+ if (!Common::isDigit(value[i])) {
+ isNumber = false;
+ break;
+ }
+ }
+ if (!isNumber) {
+ sqpush(v, value);
+ return 1;
+ }
+ if (isFloat) {
+ sqpush(v, atof(value.c_str()));
+ return 1;
+ }
+ sqpush(v, (SQInteger)atol(value.c_str()));
return 1;
}
- return 0;
+
+ sq_pushnull(v);
+ return 1;
}
static SQInteger getPrivatePref(HSQUIRRELVM v) {
@@ -725,7 +778,30 @@ static SQInteger setPrivatePref(HSQUIRRELVM v) {
}
static SQInteger setUserPref(HSQUIRRELVM v) {
- // TODO: setUserPref
+ Common::String key;
+ if (SQ_FAILED(sqget(v, 2, key))) {
+ return sq_throwerror(v, _SC("failed to get key"));
+ }
+ SQObjectType type = sq_gettype(v, 3);
+ switch (type) {
+ case SQObjectType::OT_STRING: {
+ Common::String str;
+ if (SQ_FAILED(sqget(v, 3, str))) {
+ return sq_throwerror(v, _SC("failed to get str"));
+ }
+ ConfMan.set(key, str);
+ return 0;
+ }
+ case SQObjectType::OT_INTEGER:
+ SQInteger integer;
+ if (SQ_FAILED(sqget(v, 3, integer))) {
+ return sq_throwerror(v, _SC("failed to get integer"));
+ }
+ ConfMan.setInt(key, (int)integer);
+ return 0;
+ default:
+ break;
+ }
warning("setUserPref not implemented");
return 0;
}
More information about the Scummvm-git-logs
mailing list