[Scummvm-git-logs] scummvm master -> ef22519f731cdcd97fe9d88ac75bea026b96f38d
aquadran
noreply at scummvm.org
Thu Sep 4 16:19:12 UTC 2025
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
ef22519f73 WINTERMUTE: Restore some accessibility code
Commit: ef22519f731cdcd97fe9d88ac75bea026b96f38d
https://github.com/scummvm/scummvm/commit/ef22519f731cdcd97fe9d88ac75bea026b96f38d
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2025-09-04T18:19:07+02:00
Commit Message:
WINTERMUTE: Restore some accessibility code
Changed paths:
engines/wintermute/base/base_game.cpp
diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp
index 73fee43af34..263a015146e 100644
--- a/engines/wintermute/base/base_game.cpp
+++ b/engines/wintermute/base/base_game.cpp
@@ -429,7 +429,8 @@ bool BaseGame::cleanup() {
SAFE_DELETE(_keyboardState);
- //if(m_AccessMgr) m_AccessMgr->SetActiveObject(NULL);
+ //if (m_AccessMgr)
+ // m_AccessMgr->SetActiveObject(NULL);
return STATUS_OK;
}
@@ -643,6 +644,9 @@ bool BaseGame::initialize3() { // renderer is initialized
if (_indicatorWidth == -1)
_indicatorWidth = _renderer->getWidth();
+ //if (m_AccessMgr)
+ // Game->m_AccessMgr->Initialize();
+
return STATUS_OK;
}
@@ -728,7 +732,8 @@ bool BaseGame::initLoop() {
_surfaceStorage->initLoop();
- //if(m_AccessMgr) m_AccessMgr->InitLoop();
+ //if (m_AccessMgr)
+ // m_AccessMgr->InitLoop();
_fontStorage->initLoop();
@@ -3699,7 +3704,8 @@ bool BaseGame::unregisterObject(BaseObject *object) {
_mainObject = nullptr;
}
// is it active accessibility object?
- //if(m_AccessMgr && m_AccessMgr->GetActiveObject()==Object) m_AccessMgr->SetActiveObject(NULL);
+ //if (m_AccessMgr && m_AccessMgr->GetActiveObject() == Object)
+ // m_AccessMgr->SetActiveObject(NULL);
// destroy object
for (int32 i = 0; i < _regObjects.getSize(); i++) {
@@ -4840,9 +4846,11 @@ bool BaseGame::handleKeypress(Common::Event *event, bool printable) {
return true;
}
+ //if (HandleAccessKey(Printable, CharCode, KeyData))
+ // return true;
+
_keyboardState->handleKeyPress(event);
_keyboardState->readKey(event);
-// TODO
if (_focusedWindow) {
if (!_game->_focusedWindow->handleKeypress(event, _keyboardState->isCurrentPrintable())) {
@@ -4867,6 +4875,74 @@ void BaseGame::handleKeyRelease(Common::Event *event) {
_keyboardState->handleKeyRelease(event);
}
+//////////////////////////////////////////////////////////////////////////
+/*bool CBGame::HandleAccessKey(bool Printable, DWORD CharCode, DWORD KeyData) {
+ if (m_AccessKeyboardEnabled) {
+ if (CharCode == VK_TAB && (CBUtils::IsKeyDown(VK_CONTROL) || CBUtils::IsKeyDown(VK_RCONTROL))) {
+ CBObject *obj = NULL;
+ if (CBUtils::IsKeyDown(VK_SHIFT) || CBUtils::IsKeyDown(VK_RSHIFT)) {
+ obj = m_AccessMgr->GetPrevObject();
+ } else {
+ obj = m_AccessMgr->GetNextObject();
+ }
+ return true;
+ }
+ }
+ if (Printable && m_AccessKeyboardPause) {
+ if (CharCode == VK_SPACE && (CBUtils::IsKeyDown(VK_CONTROL) || CBUtils::IsKeyDown(VK_RCONTROL))) {
+ m_AccessGlobalPaused = !m_AccessGlobalPaused;
+ if (m_AccessGlobalPaused)
+ AccessPause();
+ else
+ AccessUnpause();
+ return true;
+ }
+ }
+
+ return false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+HRESULT CBGame::AccessPause() {
+ m_AccessGlobalPaused = true;
+
+ if (m_AccessShieldWin)
+ UnregisterObject(m_AccessShieldWin);
+
+ m_AccessShieldWin = new CUIWindow(this);
+ m_Windows.Add(m_AccessShieldWin);
+ RegisterObject(m_AccessShieldWin);
+
+ m_AccessShieldWin->m_PosX = m_AccessShieldWin->m_PosY = 0;
+ m_AccessShieldWin->m_Width = m_Renderer->m_Width;
+ m_AccessShieldWin->m_Height = m_Renderer->m_Height;
+
+ CUIText *Sta = new CUIText(Game);
+ Sta->m_Parent = m_AccessShieldWin;
+ m_AccessShieldWin->m_Widgets.Add(Sta);
+ Sta->SetText((char *)m_StringTable->ExpandStatic("/SYSENG0040/Game paused. Press Ctrl+Space to resume."));
+ Sta->m_SharedFonts = true;
+ Sta->m_Font = m_SystemFont;
+ Sta->SizeToFit();
+ Sta->m_PosY = m_AccessShieldWin->m_Height - Sta->m_Height;
+ Sta->m_PosX = (m_AccessShieldWin->m_Width - Sta->m_Width) / 2;
+
+ m_AccessShieldWin->m_Visible = true;
+ m_AccessShieldWin->GoSystemExclusive();
+
+ return S_OK;
+}
+
+//////////////////////////////////////////////////////////////////////////
+HRESULT CBGame::AccessUnpause() {
+ m_AccessGlobalPaused = false;
+ if (m_AccessShieldWin) {
+ m_AccessShieldWin->Close();
+ UnregisterObject(m_AccessShieldWin);
+ m_AccessShieldWin = NULL;
+ }
+ return S_OK;
+}*/
//////////////////////////////////////////////////////////////////////////
bool BaseGame::handleMouseWheel(int32 delta) {
@@ -5019,16 +5095,16 @@ bool BaseGame::setActiveObject(BaseObject *obj) {
if (_activeObject) {
_activeObject->applyEvent("MouseLeave");
}
- //if (ValidObject(_activeObject)) _activeObject->applyEvent("MouseLeave");
+ // if (ValidObject(_activeObject)) _activeObject->applyEvent("MouseLeave");
_activeObject = obj;
if (_activeObject) {
+ //m_AccessMgr->Speak(m_ActiveObject->GetAccessCaption(), TTS_CAPTION);
_activeObject->applyEvent("MouseEntry");
}
return STATUS_OK;
}
-
//////////////////////////////////////////////////////////////////////////
bool BaseGame::pushViewport(BaseViewport *viewport) {
_viewportSP++;
More information about the Scummvm-git-logs
mailing list