TITANIC: Skeleton screen manager class

This commit is contained in:
Paul Gilbert 2016-02-05 21:48:01 -05:00
parent 93c28c7970
commit 021c47b0c1
6 changed files with 249 additions and 3 deletions

30
engines/titanic/font.cpp Normal file
View file

@ -0,0 +1,30 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#include "titanic/font.h"
namespace Titanic {
STFont::STFont() {
}
} // End of namespace Titanic

38
engines/titanic/font.h Normal file
View file

@ -0,0 +1,38 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#ifndef TITANIC_FONT_H
#define TITANIC_FONT_H
#include "common/scummsys.h"
namespace Titanic {
class STFont {
public:
public:
STFont();
};
} // End of namespace Titanic
#endif /* TITANIC_FONT_H */

View file

@ -2,6 +2,8 @@ MODULE := engines/titanic
MODULE_OBJS := \
detection.o \
font.o \
screen_manager.o \
titanic.o
# This module can be built as a plugin

View file

@ -0,0 +1,74 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#include "titanic/screen_manager.h"
namespace Titanic {
CScreenManagerRec::CScreenManagerRec() {
_field0 = 0;
_field4 = 0;
_field8 = 0;
_fieldC = 0;
}
/*------------------------------------------------------------------------*/
CScreenManager::CScreenManager() {
_screenManagerPtr = nullptr;
_field4 = 0;
_fontRenderSurface = nullptr;
_mouseCursor = nullptr;
_textCursor = nullptr;
_fontNumber = 0;
}
CScreenManager::~CScreenManager() {
_screenManagerPtr = nullptr;
}
void CScreenManager::proc2(int v) {
if (v)
_field4 = v;
}
bool CScreenManager::proc3(int v) {
if (!v || _field4)
return false;
_field4 = 0;
proc27();
return true;
}
/*------------------------------------------------------------------------*/
OSScreenManager::OSScreenManager(): CScreenManager() {
_field48 = 0;
_field4C = 0;
_field50 = 0;
_field54 = 0;
_directDrawManager = nullptr;
}
} // End of namespace Titanic

View file

@ -0,0 +1,105 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#ifndef TITANIC_SCREEN_MANAGER_H
#define TITANIC_SCREEN_MANAGER_H
#include "common/scummsys.h"
#include "common/array.h"
#include "titanic/font.h"
namespace Titanic {
class CSurface {
};
class CScreenManagerRec {
public:
int _field0;
int _field4;
int _field8;
int _fieldC;
public:
CScreenManagerRec();
};
class CScreenManager {
public:
void *_screenManagerPtr;
public:
int _field4;
Common::Array<CSurface> _backSurfaces;
CSurface *_fontRenderSurface;
CScreenManagerRec _entries[2];
void *_mouseCursor;
void *_textCursor;
int _fontNumber;
public:
CScreenManager();
virtual ~CScreenManager();
void fn1() {}
void fn2() {}
virtual void proc2(int v);
virtual bool proc3(int v);
virtual void setMode() = 0;
virtual void proc5() = 0;
virtual void proc6() = 0;
virtual void proc7() = 0;
virtual void proc8() = 0;
virtual void proc9() = 0;
virtual void proc10() = 0;
virtual void proc11() = 0;
virtual void proc12() = 0;
virtual void proc13() = 0;
virtual void proc14() = 0;
virtual void proc15() = 0;
virtual void proc16() = 0;
virtual void getFont() = 0;
virtual void proc18() = 0;
virtual void proc19() = 0;
virtual void proc20() = 0;
virtual void proc21() = 0;
virtual void proc22() = 0;
virtual void proc23() = 0;
virtual void proc24() = 0;
virtual void proc25() = 0;
virtual void showCursor() = 0;
virtual void proc27() = 0;
};
class OSScreenManager: CScreenManager {
public:
int _field48;
int _field4C;
int _field50;
int _field54;
void *_directDrawManager;
STFont _fonts[4];
public:
OSScreenManager();
};
} // End of namespace Titanic
#endif /* TITANIC_SCREEN_MANAGER_H */

View file

@ -44,9 +44,6 @@ void TitanicEngine::initialize() {
DebugMan.addDebugChannel(kDebugScripts, "scripts", "Game scripts");
DebugMan.addDebugChannel(kDebugGraphics, "graphics", "Graphics handling");
DebugMan.addDebugChannel(kDebugSound, "sound", "Sound and Music handling");
initGraphics(320, 200, false);
}
Common::Error TitanicEngine::run() {