ULTIMA8: remove "enterTextMode" as it was only used to track modal gumps outside normal means

This commit is contained in:
Matthew Jimenez 2021-11-13 09:45:31 -06:00
parent ffe0a92ddb
commit d8552b1c32
5 changed files with 13 additions and 62 deletions

View File

@ -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

View File

@ -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();

View File

@ -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

View File

@ -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;
}

View File

@ -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);