[Scummvm-git-logs] scummvm master -> d8552b1c323dd528b3ebffe6469fe59b1e420782
OMGPizzaGuy
48367439+OMGPizzaGuy at users.noreply.github.com
Sat Nov 13 15:46:17 UTC 2021
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
d8552b1c32 ULTIMA8: remove "enterTextMode" as it was only used to track modal gumps outside normal means
Commit: d8552b1c323dd528b3ebffe6469fe59b1e420782
https://github.com/scummvm/scummvm/commit/d8552b1c323dd528b3ebffe6469fe59b1e420782
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2021-11-13T09:45:56-06:00
Commit Message:
ULTIMA8: remove "enterTextMode" as it was only used to track modal gumps outside normal means
Changed paths:
engines/ultima/ultima8/gumps/menu_gump.cpp
engines/ultima/ultima8/gumps/modal_gump.cpp
engines/ultima/ultima8/ultima8.cpp
engines/ultima/ultima8/ultima8.h
engines/ultima/ultima8/world/actors/avatar_mover_process.h
diff --git a/engines/ultima/ultima8/gumps/menu_gump.cpp b/engines/ultima/ultima8/gumps/menu_gump.cpp
index ac29c78c9d..35dc6e4939 100644
--- a/engines/ultima/ultima8/gumps/menu_gump.cpp
+++ b/engines/ultima/ultima8/gumps/menu_gump.cpp
@@ -257,18 +257,13 @@ bool MenuGump::OnTextInput(int unicode) {
//static
void MenuGump::showMenu() {
- Gump *gump = Ultima8Engine::get_instance()->getMenuGump();
-
- if (gump) {
- gump->Close();
- } else {
- if (GAME_IS_U8)
- gump = new MenuGump();
- else
- gump = new CruMenuGump();
- gump->InitGump(0);
- gump->setRelativePosition(CENTER);
- }
+ ModalGump *gump;
+ if (GAME_IS_U8)
+ gump = new MenuGump();
+ else
+ gump = new CruMenuGump();
+ gump->InitGump(0);
+ gump->setRelativePosition(CENTER);
}
//static
diff --git a/engines/ultima/ultima8/gumps/modal_gump.cpp b/engines/ultima/ultima8/gumps/modal_gump.cpp
index 3d4ad8b020..ae7bb5e2bd 100644
--- a/engines/ultima/ultima8/gumps/modal_gump.cpp
+++ b/engines/ultima/ultima8/gumps/modal_gump.cpp
@@ -48,9 +48,6 @@ ModalGump::~ModalGump() {
void ModalGump::InitGump(Gump *newparent, bool take_focus) {
Gump::InitGump(newparent, take_focus);
- // lock keyboard
- Ultima8Engine::get_instance()->enterTextMode(this);
-
Kernel::get_instance()->pause();
AudioProcess *ap = AudioProcess::get_instance();
@@ -76,9 +73,6 @@ uint16 ModalGump::TraceObjId(int32 mx, int32 my) {
}
void ModalGump::Close(bool no_del) {
- // free keyboard
- Ultima8Engine::get_instance()->leaveTextMode(this);
-
Kernel::get_instance()->unpause();
AudioProcess *ap = AudioProcess::get_instance();
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index 1ac5c63490..83b5d136db 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -462,8 +462,6 @@ void Ultima8Engine::shutdownGame(bool reloading) {
// Save config here....
- _textModes.clear();
-
// reset mouse cursor
_mouse->popAllCursors();
_mouse->pushMouseCursor();
@@ -728,30 +726,10 @@ void Ultima8Engine::changeVideoMode(int width, int height) {
GraphicSysInit();
}
-void Ultima8Engine::enterTextMode(Gump *gump) {
- if (!_textModes.empty()) {
- _textModes.remove(gump->getObjId());
- }
- _textModes.push_front(gump->getObjId());
-
- _avatarMoverProcess->clearMovementFlag(AvatarMoverProcess::MOVE_ANY_DIRECTION);
- _avatarMoverProcess->clearMovementFlag(AvatarMoverProcess::MOVE_JUMP);
-}
-
-void Ultima8Engine::leaveTextMode(Gump *gump) {
- if (!_textModes.empty())
- _textModes.remove(gump->getObjId());
-}
-
void Ultima8Engine::handleEvent(const Common::Event &event) {
- // Text mode input. A few hacks here
- Gump *gump = nullptr;
- while (!_textModes.empty()) {
- gump = dynamic_cast<Gump *>(_objectManager->getObject(_textModes.front()));
- if (gump)
- break;
-
- _textModes.pop_front();
+ Gump *gump = _desktopGump->FindGump<ModalGump>();
+ if (gump) {
+ _avatarMoverProcess->resetMovementFlags();
}
Common::Keymapper *const keymapper = _eventMan->getKeymapper();
@@ -1115,8 +1093,6 @@ void Ultima8Engine::resetEngine() {
_gameMapGump = nullptr;
_inverterGump = nullptr;
- _textModes.clear();
-
// reset mouse cursor
_mouse->popAllCursors();
_mouse->pushMouseCursor();
@@ -1698,12 +1674,5 @@ void Ultima8Engine::showSplashScreen() {
_events->pollEvent(event);
}
-Gump *Ultima8Engine::getMenuGump() const {
- if (_textModes.empty())
- return nullptr;
-
- return dynamic_cast<Gump *>(_objectManager->getObject(_textModes.front()));
-}
-
} // End of namespace Ultima8
} // End of namespace Ultima
diff --git a/engines/ultima/ultima8/ultima8.h b/engines/ultima/ultima8/ultima8.h
index bb2b4d1b50..c2c6640206 100644
--- a/engines/ultima/ultima8/ultima8.h
+++ b/engines/ultima/ultima8/ultima8.h
@@ -74,7 +74,6 @@ private:
static Ultima8Engine *_instance;
- Std::list<ObjId> _textModes; //!< Gumps that want text mode
bool _fontOverride;
bool _fontAntialiasing;
// Audio Mixer
@@ -351,12 +350,6 @@ public:
//! \return true if succesful.
bool newGame(int saveSlot = -1);
- //! Enter gump text mode (aka Unicode keyhandling)
- void enterTextMode(Gump *);
-
- //! Leave gump text mode (aka Unicode keyhandling)
- void leaveTextMode(Gump *);
-
//! Display an error message box
//! \param message The message to display on the box
void Error(Std::string message, Std::string title = Std::string());
@@ -383,8 +376,6 @@ public:
void makeCheater() {
_hasCheated = true;
}
- Gump *getMenuGump() const;
-
bool isInterpolationEnabled() const {
return _interpolate;
}
diff --git a/engines/ultima/ultima8/world/actors/avatar_mover_process.h b/engines/ultima/ultima8/world/actors/avatar_mover_process.h
index 995c739332..7f31a88dd3 100644
--- a/engines/ultima/ultima8/world/actors/avatar_mover_process.h
+++ b/engines/ultima/ultima8/world/actors/avatar_mover_process.h
@@ -57,7 +57,9 @@ public:
virtual void clearMovementFlag(uint32 mask) {
_movementFlags &= ~mask;
}
-
+ void resetMovementFlags() {
+ _movementFlags = 0;
+ }
void onMouseDown(int button, int32 mx, int32 my);
void onMouseUp(int button);
More information about the Scummvm-git-logs
mailing list