SAGA2: Move pointer to Saga2Engine

This commit is contained in:
a/ 2021-07-17 05:19:47 +09:00
parent 34fa087b3f
commit 7888757dad
20 changed files with 70 additions and 94 deletions

View File

@ -388,7 +388,7 @@ void CAutoMap::drawClipped(
WindowDecoration *dec;
int16 i;
pointer.hide();
g_vm->_pointer->hide();
// For each "decorative panel" within the frame of the window
@ -418,7 +418,7 @@ void CAutoMap::drawClipped(
sumMapArea.width, sumMapArea.height);
// show the cursor again
pointer.show();
g_vm->_pointer->show();
}
// ------------------------------------------------------------------------

View File

@ -208,11 +208,11 @@ void gCompImage::draw(void) {
Rect16 rect = window.getExtent();
SAVE_GPORT_STATE(port); // save pen color, etc.
pointer.hide(port, extent); // hide mouse pointer
g_vm->_pointer->hide(port, extent); // hide mouse pointer
drawClipped(port,
Point16(0, 0),
Rect16(0, 0, rect.width, rect.height));
pointer.show(port, extent); // show mouse pointer
g_vm->_pointer->show(port, extent); // show mouse pointer
}
void *gCompImage::getCurrentCompImage(void) {
@ -575,9 +575,9 @@ void gCompButton::draw(void) {
Rect16 rect = window.getExtent();
SAVE_GPORT_STATE(port); // save pen color, etc.
pointer.hide(port, extent); // hide mouse pointer
g_vm->_pointer->hide(port, extent); // hide mouse pointer
drawClipped(port, Point16(0, 0), Rect16(0, 0, rect.width, rect.height));
pointer.show(port, extent); // show mouse pointer
g_vm->_pointer->show(port, extent); // show mouse pointer
}
void *gCompButton::getCurrentCompImage(void) {
@ -849,9 +849,9 @@ void gSlider::draw(void) {
Point16 offset = Point16(0, 0);
SAVE_GPORT_STATE(port); // save pen color, etc.
pointer.hide(port, extent); // hide mouse pointer
g_vm->_pointer->hide(port, extent); // hide mouse pointer
drawClipped(port, offset, Rect16(0, 0, imageRect.width, imageRect.height));
pointer.show(port, extent); // show mouse pointer
g_vm->_pointer->show(port, extent); // show mouse pointer
}

View File

@ -91,15 +91,15 @@ void niceScreenStartup(void) {
disablePaletteChanges();
mainEnable();
closeLoadMode();
pointer.move(Point16(320, 240));
//pointer.hide();
g_vm->_pointer->move(Point16(320, 240));
//g_vm->_pointer->hide();
enablePaletteChanges();
displayUpdate();
dayNightUpdate();
fadeUp();
pointer.manditoryShow(); // hide mouse pointer
g_vm->_pointer->manditoryShow(); // hide mouse pointer
reDrawScreen();
//pointer.show();
//g_vm->_pointer->show();
updateAllUserControls();
reDrawScreen();
g_vm->_mouseInfo->replaceObject();

View File

@ -629,13 +629,13 @@ void CDocument::renderText(void) {
port.setMode(drawModeMatte);
pointer.hide();
g_vm->_pointer->hide();
port.bltPixels(*tPort.map, 0, 0,
bltRect.x, bltRect.y,
bltRect.width, bltRect.height);
pointer.show();
g_vm->_pointer->show();
DisposeTempPort(tPort); // dispose of temporary pixelmap
}
@ -645,9 +645,9 @@ void CDocument::drawClipped(
gPort &port,
const Point16 &offset,
const Rect16 &clipRect) {
pointer.hide();
g_vm->_pointer->hide();
ModalWindow::drawClipped(port, offset, clipRect);
pointer.show();
g_vm->_pointer->show();
}
void CDocument::draw(void) { // redraw the window

View File

@ -249,10 +249,10 @@ void DecoratedWindow::removeDecorations(void) {
// Redraw all of the decorations, on the main port only...
void DecoratedWindow::draw(void) { // redraw the window
pointer.hide();
g_vm->_pointer->hide();
if (displayEnabled())
drawClipped(g_vm->_mainPort, Point16(0, 0), extent);
pointer.show();
g_vm->_pointer->show();
}
// Return true if window floats above animated are
@ -416,10 +416,10 @@ void gButton::draw(void) {
gPort &port = window.windowPort;
Rect16 rect = window.getExtent();
pointer.hide(port, extent); // hide mouse pointer
g_vm->_pointer->hide(port, extent); // hide mouse pointer
if (displayEnabled())
drawClipped(port, Point16(0, 0), Rect16(0, 0, rect.width, rect.height));
pointer.show(port, extent); // show mouse pointer
g_vm->_pointer->show(port, extent); // show mouse pointer
}
@ -686,11 +686,11 @@ void updateWindowSection(const Rect16 &r) {
// Now, blit the temporary bitmap to the main screen.
g_vm->_mainPort.setMode(drawModeReplace);
pointer.hide(g_vm->_mainPort, clip);
g_vm->_pointer->hide(g_vm->_mainPort, clip);
g_vm->_mainPort.bltPixels(tempMap,
0, 0,
clip.x, clip.y, clip.width, clip.height);
pointer.show(g_vm->_mainPort, clip);
g_vm->_pointer->show(g_vm->_mainPort, clip);
g_vm->_mainPort.setMode(drawModeMatte);
delete[] tempMap.data;
}

View File

@ -226,8 +226,6 @@ extern int16 extendedThreadLevel;
extern bool gameRunning; // true while game running
extern gMousePointer pointer; // the mouse pointer
extern volatile int32 gameTime; // current timer
// Resource files

View File

@ -158,9 +158,9 @@ uint8 GrabInfo::setIntent(uint8 in) {
// If intention isn't being changed, return immediately
if (intention != (Intent)in) {
// Intention has changed to None
if (in == (uint8)None && intention != None) pointer.hide();
if (in == (uint8)None && intention != None) g_vm->_pointer->hide();
// Intention has changed from None
else if (in != (uint8)None && intention == None) pointer.show();
else if (in != (uint8)None && intention == None) g_vm->_pointer->show();
intention = (Intent)in;
// Set new cursor

View File

@ -34,7 +34,6 @@ namespace Saga2 {
extern gFont *mainFont;
extern vDisplayPage *drawPage;
extern gToolBase G_BASE;
extern gMousePointer pointer; // the actual pointer
const int maxLines = 16,
maxButtons = 16,

View File

@ -42,7 +42,6 @@ StaticRect editBaseRect = {7, 45, 314, 111};
// These are all things that need to be moved to their proper places.
extern gFont *mainFont;
extern gMousePointer pointer; // the actual pointer
//-----------------------------------------------------------------------
// init
@ -809,11 +808,11 @@ bool gTextBox::keyStroke(gPanelMessage &msg) {
// Now, redraw the contents.
SAVE_GPORT_STATE(port); // save pen color, etc.
pointer.hide(port, extent); // hide mouse pointer
g_vm->_pointer->hide(port, extent); // hide mouse pointer
drawContents(); // draw the string
pointer.show(port, extent); // show mouse pointer
g_vm->_pointer->show(port, extent); // show mouse pointer
return true;
}
@ -863,14 +862,14 @@ void gTextBox::handleTimerTick(int32 tick) {
if (tick - blinkStart > blinkTime) {
gPort &port = window.windowPort;
SAVE_GPORT_STATE(port); // save pen color, etc.
pointer.hide(port, extent); // hide mouse pointer
g_vm->_pointer->hide(port, extent); // hide mouse pointer
port.setPenMap(port.penMap);
port.setStyle(0);
port.setColor(blinkState ? blinkColor0 : blinkColor1);
port.fillRect(editRect.x + blinkX - ((blinkWide + 1) / 2), editRect.y + 1, blinkWide, editRect.height - 1);
pointer.show(port, extent); // show mouse pointer
g_vm->_pointer->show(port, extent); // show mouse pointer
blinkState = !blinkState;
blinkStart = tick;
@ -1011,7 +1010,7 @@ void gTextBox::drawClipped(void) {
WriteStatusF(11, "Entry %d[%d] (%d:%d)", index, currentLen[index], cursorPos, anchorPos);
SAVE_GPORT_STATE(port); // save pen color, etc.
pointer.hide(port, extent); // hide mouse pointer
g_vm->_pointer->hide(port, extent); // hide mouse pointer
if (fullRedraw) {
drawAll(port, Point16(0, 0), Rect16(0, 0, rect.width, rect.height));
@ -1027,7 +1026,7 @@ void gTextBox::drawClipped(void) {
drawAll(port, Point16(0, 0), Rect16(0, 0, rect.width, rect.height));
}
pointer.show(port, extent); // show mouse pointer
g_vm->_pointer->show(port, extent); // show mouse pointer
}

View File

@ -469,9 +469,9 @@ void CPlaqText::draw(void) {
port.setMode(drawModeMatte);
port.setFont(buttonFont);
pointer.hide(port, extent); // hide mouse pointer
g_vm->_pointer->hide(port, extent); // hide mouse pointer
drawClipped(port, Point16(0, 0), Rect16(0, 0, rect.width, rect.height));
pointer.show(port, extent); // show mouse pointer
g_vm->_pointer->show(port, extent); // show mouse pointer
// reset the old font
port.setFont(oldFont);
@ -969,9 +969,9 @@ void CManaIndicator::draw(void) {
// setup the port
port.setMode(drawModeMatte);
pointer.hide(port, extent); // hide mouse pointer
g_vm->_pointer->hide(port, extent); // hide mouse pointer
drawClipped(port, Point16(0, 0), Rect16(0, 0, xSize, ySize));
pointer.show(port, extent); // show mouse pointer
g_vm->_pointer->show(port, extent); // show mouse pointer
}
@ -1003,7 +1003,7 @@ void CManaIndicator::drawClipped(gPort &port,
}
// otherwise continue with the update
pointer.hide();
g_vm->_pointer->hide();
// create a temporary gPort to blit stuff to
gPort tempPort;
@ -1123,7 +1123,7 @@ void CManaIndicator::drawClipped(gPort &port,
if (tempMap.data)
delete[] tempMap.data;
pointer.show();
g_vm->_pointer->show();
}
bool CManaIndicator::needUpdate(PlayerActor *player) {

View File

@ -73,11 +73,7 @@ bool cliSpeechText = false;
bool cliDrawInv = false;
uint32 cliMemory = 0;
// User-interface variables
gMouseState mouseState;
// Display variables
gMousePointer pointer(g_vm->_mainPort); // the actual pointer
BackWindow *mainWindow; // main window...
// Memory allocation heap
@ -419,19 +415,6 @@ bool readCommandLine(int argc, char *argv[]) {
/* */
/********************************************************************/
// ------------------------------------------------------------------------
// Mouse handling
gMouseState prevState;
MouseExtState mouseQueue[64];
int16 queueIn = 0,
queueOut = 0;
inline int BUMP(int x) {
return (x + 1) & 63;
}
// ------------------------------------------------------------------------
// clears any queued input (mouse AND keyboard)
void resetInputDevices(void) {

View File

@ -228,9 +228,9 @@ void setupMousePointer(void) {
imageOffset.y = 0;
// Set the combined image as the new mouse cursor
pointer.hide();
pointer.setImage(combinedImage, mouseImageOffset.x - imageOffset.x, mouseImageOffset.y - imageOffset.y);
pointer.show();
g_vm->_pointer->hide();
g_vm->_pointer->setImage(combinedImage, mouseImageOffset.x - imageOffset.x, mouseImageOffset.y - imageOffset.y);
g_vm->_pointer->show();
}
//-----------------------------------------------------------------------
@ -302,7 +302,7 @@ void setNewText(char *text) {
// Compute relative position of text
Point16 mousePos;
pointer.getImageCurPos(mousePos);
g_vm->_pointer->getImageCurPos(mousePos);
int mouseImageCenter = mousePos.x + mouseImageOffset.x + mouseImage->size.x / 2;
textImageCenteredCol = textImage.size.x / 2;

View File

@ -236,9 +236,9 @@ void SimpleWindow::update(const Rect16 &) {
}
void SimpleWindow::draw(void) {
pointer.hide(g_vm->_mainPort, extent); // hide mouse pointer
g_vm->_pointer->hide(g_vm->_mainPort, extent); // hide mouse pointer
drawClipped(g_vm->_mainPort, Point16(0, 0), extent);
pointer.show(g_vm->_mainPort, extent); // show mouse pointer
g_vm->_pointer->show(g_vm->_mainPort, extent); // show mouse pointer
}
void SimpleWindow::drawClipped(
@ -257,14 +257,14 @@ void SimpleWindow::drawClipped(
box.height -= 100;
SAVE_GPORT_STATE(port); // save pen color, etc.
pointer.hide(port, extent); // hide mouse pointer
g_vm->_pointer->hide(port, extent); // hide mouse pointer
DrawOutlineFrame(port, extent, windowColor);
writeWrappedPlaqText(port, box, mbButtonFont, textPos, pal, false, title);
gWindow::drawClipped(port, p, r);
pointer.show(port, extent); // show mouse pointer
g_vm->_pointer->show(port, extent); // show mouse pointer
}
/* ===================================================================== *
@ -398,11 +398,11 @@ void SimpleButton::draw(void) {
Rect16 rect = window->getExtent();
SAVE_GPORT_STATE(port); // save pen color, etc.
pointer.hide(port, extent); // hide mouse pointer
g_vm->_pointer->hide(port, extent); // hide mouse pointer
drawClipped(port,
Point16(0, 0),
Rect16(0, 0, rect.width, rect.height));
pointer.show(port, extent); // show mouse pointer
g_vm->_pointer->show(port, extent); // show mouse pointer
}
void SimpleButton::drawClipped(
@ -419,14 +419,14 @@ void SimpleButton::drawClipped(
box.y += base.y;
SAVE_GPORT_STATE(port); // save pen color, etc.
pointer.hide(port, extent); // hide mouse pointer
g_vm->_pointer->hide(port, extent); // hide mouse pointer
SimpleWindow::DrawOutlineFrame(port, // draw outer frame
box,
buttonColor);
drawTitle((enum text_positions)0);
pointer.show(port, extent); // show mouse pointer
g_vm->_pointer->show(port, extent); // show mouse pointer
}
} // end of namespace Saga2

View File

@ -36,7 +36,6 @@
namespace Saga2 {
//extern vDisplayPage *drawPage;
extern gMousePointer pointer; // the actual pointer
extern char iniFile[];
extern vDisplayPage protoPage;
@ -244,9 +243,9 @@ void gPanel::drawTitle(enum text_positions placement) {
port.setStyle(textStyleUnderBar); // set style to do underbars
port.moveTo(r.x, r.y); // move to new text pos
pointer.hide(*globalPort, r); // hide the pointer
g_vm->_pointer->hide(*globalPort, r); // hide the pointer
port.drawText(title, -1); // draw the text
pointer.show(*globalPort, r); // hide the pointer
g_vm->_pointer->show(*globalPort, r); // hide the pointer
}
}
@ -441,10 +440,10 @@ bool gWindow::open(void) {
G_BASE.activeWindow = this;
G_BASE.setActive(NULL);
// pointer.hide();
// g_vm->_pointer->hide();
// if (backSave) backSave->save( *globalPort );
// pointer.setImage( *pointerImage, pointerOffset.x, pointerOffset.y );
// pointer.show();
// g_vm->_pointer->setImage( *pointerImage, pointerOffset.x, pointerOffset.y );
// g_vm->_pointer->show();
openFlag = true;
@ -600,9 +599,9 @@ void gWindow::setPointer( gPixelMap &map, int x, int y )
if (this == G_BASE.activeWindow)
{
pointer.hide();
pointer.setImage( *pointerImage, pointerOffset.x, pointerOffset.y );
pointer.show();
g_vm->_pointer->hide();
g_vm->_pointer->setImage( *pointerImage, pointerOffset.x, pointerOffset.y );
g_vm->_pointer->show();
}
}
*/
@ -675,12 +674,12 @@ gPanel *gControl::keyTest(int16 key) {
// drawClipped with the main port.
void gControl::draw(void) {
pointer.hide(window.windowPort, extent);
g_vm->_pointer->hide(window.windowPort, extent);
if (displayEnabled())
drawClipped(*globalPort,
Point16(-window.extent.x, -window.extent.y),
window.extent);
pointer.show(window.windowPort, extent);
g_vm->_pointer->show(window.windowPort, extent);
}
/* ===================================================================== *
@ -1120,7 +1119,7 @@ int16 rightButtonState(void) {
void LockUI(bool state) {
if (state == true) {
if (lockUINest <= 0) {
pointer.hide();
g_vm->_pointer->hide();
enableUIKeys(false);
G_BASE.setActive(NULL);
}
@ -1130,7 +1129,7 @@ void LockUI(bool state) {
assert(lockUINest >= 0);
if (lockUINest <= 0) {
enableUIKeys(true);
pointer.show();
g_vm->_pointer->show();
}
}
}

View File

@ -81,6 +81,7 @@ Saga2Engine::Saga2Engine(OSystem *syst)
_bandList = new BandList();
_mainDisplayList = new DisplayNodeList;
_activeSpells = new SpellDisplayList(kMaxActiveSpells);
_pointer = new gMousePointer(_mainPort);
_edpList = nullptr;
_sdpList = nullptr;
@ -99,6 +100,7 @@ Saga2Engine::~Saga2Engine() {
delete _bandList;
delete _mainDisplayList;
delete _activeSpells;
delete _pointer;
}
Common::Error Saga2Engine::run() {

View File

@ -61,6 +61,7 @@ class EffectDisplayPrototypeList;
class SpellDisplayPrototypeList;
class DisplayNodeList;
class SpellDisplayList;
class gMousePointer;
enum {
kDebugResources = 1 << 0,
@ -136,6 +137,7 @@ public:
ContainerList *_containerList;
DisplayNodeList *_mainDisplayList;
SpellDisplayList *_activeSpells;
gMousePointer *_pointer;
gDisplayPort _mainPort;

View File

@ -157,7 +157,6 @@ void drawFloatingWindows(gPort &, const Point16 &, const Rect16 &clip);
Imports
* ===================================================================== */
extern gMousePointer pointer; // the actual pointer
extern gPort backPort;
extern int16 worldCount; // Used as map count as well

View File

@ -313,7 +313,7 @@ TERMINATOR(termGUIMessagers) {
INITIALIZER(initMousePointer) {
//pointer.hide();
setMouseImage(kMouseArrowImage, 0, 0);
return pointer.init(640, 480);
return g_vm->_pointer->init(640, 480);
}
TERMINATOR(termMousePointer) {

View File

@ -52,13 +52,8 @@ namespace Saga2 {
#define VIDEO_Y 0
extern bool gameRunning;
extern gMousePointer pointer;
extern MouseExtState mouseQueue[];
extern bool allPlayerActorsDead;
extern int16 queueIn,
queueOut;
int16 OptionsDialog(bool disableSaveResume = false);
void SystemEventLoop(void);
void freeAllTileBanks(void);
@ -163,7 +158,7 @@ void TroModeExternEvent(void) {
static void TroModeSetup(void) {
suspendAudio();
pointer.hide();
g_vm->_pointer->hide();
quickSavePalette();
blackOut();
displayDisable(PlayingVideo);
@ -182,8 +177,8 @@ static void TroModeCleanup(void) {
blackOut();
quickRestorePalette();
resumeAudio();
pointer.show();
// pointer.manditoryShow(); // hide mouse pointer
g_vm->_pointer->show();
// g_vm->_pointer->manditoryShow(); // hide mouse pointer
resetInputDevices();
}

View File

@ -115,9 +115,9 @@ void CVideoBox::drawClipped(
gPort &port,
const Point16 &offset,
const Rect16 &clipRect) {
pointer.hide();
g_vm->_pointer->hide();
ModalWindow::drawClipped(port, offset, clipRect);
pointer.show();
g_vm->_pointer->show();
}
void CVideoBox::draw(void) { // redraw the window