aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/support/screen_manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic/support/screen_manager.cpp')
-rw-r--r--engines/titanic/support/screen_manager.cpp35
1 files changed, 25 insertions, 10 deletions
diff --git a/engines/titanic/support/screen_manager.cpp b/engines/titanic/support/screen_manager.cpp
index 27c0d9886e..d795f78764 100644
--- a/engines/titanic/support/screen_manager.cpp
+++ b/engines/titanic/support/screen_manager.cpp
@@ -130,8 +130,15 @@ DirectDrawSurface *OSScreenManager::getDDSurface(SurfaceNum surfaceNum) {
return nullptr;
}
-void OSScreenManager::proc6() {}
-void OSScreenManager::proc7() {}
+CVideoSurface *OSScreenManager::lockSurface(SurfaceNum surfaceNum) {
+ CVideoSurface *surface = getSurface(surfaceNum);
+ surface->lock();
+ return surface;
+}
+
+void OSScreenManager::unlockSurface(CVideoSurface *surface) {
+ surface->unlock();
+}
CVideoSurface *OSScreenManager::getSurface(SurfaceNum surfaceNum) const {
if (surfaceNum == SURFACE_PRIMARY)
@@ -233,7 +240,11 @@ int OSScreenManager::writeString(int surfaceNum, const Rect &destRect,
yOffset, str, textCursor);
}
-void OSScreenManager::proc14() {}
+int OSScreenManager::writeString(int surfaceNum, const Rect &srcRect,
+ const Rect &destRect, const CString &str, CTextCursor *textCursor) {
+ // TODO
+ return 0;
+}
void OSScreenManager::setFontColor(byte r, byte g, byte b) {
_fonts[_fontNumber].setColor(r, g, b);
@@ -251,7 +262,15 @@ int OSScreenManager::stringWidth(const CString &str) {
return _fonts[_fontNumber].stringWidth(str);
}
-void OSScreenManager::proc19() {}
+void OSScreenManager::frameRect(SurfaceNum surfaceNum, const Rect &rect, byte r, byte g, byte b) {
+ Rect top(rect.left, rect.top, rect.right, rect.top + 1);
+ fillRect(surfaceNum, &top, r, g, b);
+ Rect bottom(rect.left, rect.bottom - 1, rect.right, rect.bottom);
+ fillRect(surfaceNum, &bottom, r, g, b);
+ Rect left(rect.left, rect.top, rect.left + 1, rect.bottom);
+ fillRect(surfaceNum, &left, r, g, b);
+ Rect right(rect.right - 1, rect.top, rect.right, rect.bottom);
+}
void OSScreenManager::clearSurface(SurfaceNum surfaceNum, Rect *bounds) {
if (surfaceNum == SURFACE_PRIMARY)
@@ -274,16 +293,12 @@ CVideoSurface *OSScreenManager::createSurface(const CResourceKey &key) {
return new OSVideoSurface(this, key);
}
-void OSScreenManager::proc23() {}
-void OSScreenManager::proc24() {}
-void OSScreenManager::proc25() {}
-
void OSScreenManager::showCursor() {
-
+ CScreenManager::_screenManagerPtr->_mouseCursor->show();
}
void OSScreenManager::hideCursor() {
-
+ CScreenManager::_screenManagerPtr->_mouseCursor->hide();
}
void OSScreenManager::destroyFrontAndBackBuffers() {