aboutsummaryrefslogtreecommitdiff
path: root/engines/saga/interface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/saga/interface.cpp')
-rw-r--r--engines/saga/interface.cpp196
1 files changed, 100 insertions, 96 deletions
diff --git a/engines/saga/interface.cpp b/engines/saga/interface.cpp
index ffa2be758d..d336cb3135 100644
--- a/engines/saga/interface.cpp
+++ b/engines/saga/interface.cpp
@@ -755,7 +755,7 @@ void Interface::loadScenePortraits(int resourceId) {
_vm->_sprite->loadList(resourceId, _scenePortraits);
}
-void Interface::drawVerbPanel(Surface *backBuffer, PanelButton* panelButton) {
+void Interface::drawVerbPanel(PanelButton* panelButton) {
PanelButton * rightButtonVerbPanelButton;
PanelButton * currentVerbPanelButton;
KnownColor textColor;
@@ -781,13 +781,12 @@ void Interface::drawVerbPanel(Surface *backBuffer, PanelButton* panelButton) {
point.x = _mainPanel.x + panelButton->xOffset;
point.y = _mainPanel.y + panelButton->yOffset;
- _vm->_sprite->draw(backBuffer, _vm->getDisplayClip(), _mainPanel.sprites, spriteNumber, point, 256);
+ _vm->_sprite->draw(_vm->getDisplayClip(), _mainPanel.sprites, spriteNumber, point, 256);
- drawVerbPanelText(backBuffer, panelButton, textColor, kKnownColorVerbTextShadow);
+ drawVerbPanelText(panelButton, textColor, kKnownColorVerbTextShadow);
}
void Interface::draw() {
- Surface *backBuffer = _vm->_gfx->getBackBuffer();
Point leftPortraitPoint;
Point rightPortraitPoint;
Rect rect;
@@ -800,17 +799,17 @@ void Interface::draw() {
if (_panelMode == kPanelMain || _panelMode == kPanelMap ||
(_panelMode == kPanelNull && _vm->getGameId() == GID_IHNM_DEMO)) {
_mainPanel.getRect(rect);
- backBuffer->blit(rect, _mainPanel.image);
+ _vm->_gfx->getBackBuffer()->blit(rect, _mainPanel.image);
for (int i = 0; i < kVerbTypeIdsMax; i++) {
if (_verbTypeToPanelButton[i] != NULL) {
- drawVerbPanel(backBuffer, _verbTypeToPanelButton[i]);
+ drawVerbPanel(_verbTypeToPanelButton[i]);
}
}
} else if (_panelMode == kPanelConverse) {
_conversePanel.getRect(rect);
- backBuffer->blit(rect, _conversePanel.image);
- converseDisplayTextLines(backBuffer);
+ _vm->_gfx->getBackBuffer()->blit(rect, _conversePanel.image);
+ converseDisplayTextLines();
}
if (_panelMode == kPanelMain || _panelMode == kPanelConverse ||
@@ -818,7 +817,7 @@ void Interface::draw() {
(_panelMode == kPanelNull && _vm->getGameId() == GID_IHNM_DEMO)) {
leftPortraitPoint.x = _mainPanel.x + _vm->getDisplayInfo().leftPortraitXOffset;
leftPortraitPoint.y = _mainPanel.y + _vm->getDisplayInfo().leftPortraitYOffset;
- _vm->_sprite->draw(backBuffer, _vm->getDisplayClip(), _defPortraits, _leftPortrait, leftPortraitPoint, 256);
+ _vm->_sprite->draw(_vm->getDisplayClip(), _defPortraits, _leftPortrait, leftPortraitPoint, 256);
}
if (!_inMainMode && _vm->getDisplayInfo().rightPortraitXOffset >= 0) { //FIXME: should we change !_inMainMode to _panelMode == kPanelConverse ?
@@ -833,10 +832,10 @@ void Interface::draw() {
if (_rightPortrait >= _scenePortraits.spriteCount)
_rightPortrait = 0;
- _vm->_sprite->draw(backBuffer, _vm->getDisplayClip(), _scenePortraits, _rightPortrait, rightPortraitPoint, 256);
+ _vm->_sprite->draw(_vm->getDisplayClip(), _scenePortraits, _rightPortrait, rightPortraitPoint, 256);
}
- drawInventory(backBuffer);
+ drawInventory();
}
void Interface::calcOptionSaveSlider() {
@@ -879,7 +878,7 @@ void Interface::calcOptionSaveSlider() {
_optionSaveRectBottom.right--;
}
-void Interface::drawPanelText(Surface *ds, InterfacePanel *panel, PanelButton *panelButton) {
+void Interface::drawPanelText(InterfacePanel *panel, PanelButton *panelButton) {
const char *text;
int textWidth;
Rect rect;
@@ -925,7 +924,8 @@ void Interface::drawPanelText(Surface *ds, InterfacePanel *panel, PanelButton *p
textPoint.x = rect.left;
textPoint.y = rect.top + 1;
- _vm->_font->textDraw(textFont, ds, text, textPoint, _vm->KnownColor2ColorId(kKnownColorVerbText), _vm->KnownColor2ColorId(textShadowKnownColor), kFontShadow);
+ _vm->_font->textDraw(textFont, text, textPoint,
+ _vm->KnownColor2ColorId(kKnownColorVerbText), _vm->KnownColor2ColorId(textShadowKnownColor), kFontShadow);
}
void Interface::drawOption() {
@@ -951,14 +951,14 @@ void Interface::drawOption() {
if (panelButton->type == kPanelButtonOption) {
if (_vm->getGameType() == GType_ITE) {
- drawPanelButtonText(backBuffer, &_optionPanel, panelButton);
+ drawPanelButtonText(&_optionPanel, panelButton);
} else {
- drawPanelButtonText(backBuffer, &_optionPanel, panelButton, spritenum);
+ drawPanelButtonText(&_optionPanel, panelButton, spritenum);
spritenum += 2; // 2 sprites per button (lit and unlit)
}
}
if (panelButton->type == kPanelButtonOptionText) {
- drawPanelText(backBuffer, &_optionPanel, panelButton);
+ drawPanelText(&_optionPanel, panelButton);
}
}
@@ -968,12 +968,12 @@ void Interface::drawOption() {
}
if (_vm->getGameType() == GType_ITE) {
- drawButtonBox(backBuffer, _optionSaveRectSlider, kSlider, _optionSaveFileSlider->state > 0);
+ drawButtonBox(_optionSaveRectSlider, kSlider, _optionSaveFileSlider->state > 0);
} else {
panelButton = &_optionPanel.buttons[0];
sliderPoint.x = _optionPanel.x + panelButton->xOffset;
sliderPoint.y = _optionSaveRectSlider.top;
- _vm->_sprite->draw(backBuffer, _vm->getDisplayClip(), _optionPanel.sprites, 0 + _optionSaveFileSlider->state, sliderPoint, 256);
+ _vm->_sprite->draw(_vm->getDisplayClip(), _optionPanel.sprites, 0 + _optionSaveFileSlider->state, sliderPoint, 256);
}
@@ -1004,9 +1004,9 @@ void Interface::drawOption() {
textPoint.x = rect.left + 1;
textPoint.y = rect2.top;
if (_vm->getGameType() == GType_ITE)
- _vm->_font->textDraw(kKnownFontSmall, backBuffer, text, textPoint, fgColor, 0, kFontNormal);
+ _vm->_font->textDraw(kKnownFontSmall, text, textPoint, fgColor, 0, kFontNormal);
else
- _vm->_font->textDraw(kKnownFontVerb, backBuffer, text, textPoint, fgColor, 0, kFontNormal);
+ _vm->_font->textDraw(kKnownFontVerb, text, textPoint, fgColor, 0, kFontNormal);
}
}
@@ -1020,17 +1020,17 @@ void Interface::drawQuit() {
_quitPanel.getRect(rect);
if (_vm->getGameType() == GType_ITE)
- drawButtonBox(backBuffer, rect, kButton, false);
+ drawButtonBox(rect, kButton, false);
else
backBuffer->blit(rect, _quitPanel.image);
for (i = 0; i < _quitPanel.buttonsCount; i++) {
panelButton = &_quitPanel.buttons[i];
if (panelButton->type == kPanelButtonQuit) {
- drawPanelButtonText(backBuffer, &_quitPanel, panelButton);
+ drawPanelButtonText(&_quitPanel, panelButton);
}
if (panelButton->type == kPanelButtonQuitText) {
- drawPanelText(backBuffer, &_quitPanel, panelButton);
+ drawPanelText(&_quitPanel, panelButton);
}
}
}
@@ -1085,17 +1085,17 @@ void Interface::drawLoad() {
_loadPanel.getRect(rect);
if (_vm->getGameType() == GType_ITE)
- drawButtonBox(backBuffer, rect, kButton, false);
+ drawButtonBox(rect, kButton, false);
else
backBuffer->blit(rect, _loadPanel.image);
for (i = 0; i < _loadPanel.buttonsCount; i++) {
panelButton = &_loadPanel.buttons[i];
if (panelButton->type == kPanelButtonLoad) {
- drawPanelButtonText(backBuffer, &_loadPanel, panelButton);
+ drawPanelButtonText(&_loadPanel, panelButton);
}
if (panelButton->type == kPanelButtonLoadText) {
- drawPanelText(backBuffer, &_loadPanel, panelButton);
+ drawPanelText(&_loadPanel, panelButton);
}
}
}
@@ -1262,16 +1262,17 @@ bool Interface::processTextInput(Common::KeyState keystate) {
return true;
}
-void Interface::drawTextInput(Surface *ds, InterfacePanel *panel, PanelButton *panelButton) {
+void Interface::drawTextInput(InterfacePanel *panel, PanelButton *panelButton) {
Point textPoint;
Rect rect;
char ch[2];
int fgColor;
uint i;
+ Surface *backBuffer = _vm->_gfx->getBackBuffer();
ch[1] = 0;
panel->calcPanelButtonRect(panelButton, rect);
- drawButtonBox(ds, rect, kEdit, _textInput);
+ drawButtonBox(rect, kEdit, _textInput);
rect.left += 4;
rect.top += 4;
rect.setHeight(_vm->_font->getHeight(kKnownFontSmall));
@@ -1281,20 +1282,20 @@ void Interface::drawTextInput(Surface *ds, InterfacePanel *panel, PanelButton *p
rect.setWidth(_vm->_font->getStringWidth(kKnownFontSmall, ch, 0, kFontNormal));
if ((i == _textInputPos) && _textInput) {
fgColor = _vm->KnownColor2ColorId(kKnownColorBlack);
- ds->fillRect(rect, _vm->KnownColor2ColorId(kKnownColorWhite));
+ backBuffer->fillRect(rect, _vm->KnownColor2ColorId(kKnownColorWhite));
} else {
fgColor = _vm->KnownColor2ColorId(kKnownColorWhite);
}
textPoint.x = rect.left;
textPoint.y = rect.top + 1;
- _vm->_font->textDraw(kKnownFontSmall, ds, ch, textPoint, fgColor, 0, kFontNormal);
+ _vm->_font->textDraw(kKnownFontSmall, ch, textPoint, fgColor, 0, kFontNormal);
rect.left += rect.width();
}
if (_textInput && (_textInputPos >= i)) {
ch[0] = ' ';
rect.setWidth(_vm->_font->getStringWidth(kKnownFontSmall, ch, 0, kFontNormal));
- ds->fillRect(rect, _vm->KnownColor2ColorId(kKnownColorWhite));
+ backBuffer->fillRect(rect, _vm->KnownColor2ColorId(kKnownColorWhite));
}
}
@@ -1306,21 +1307,21 @@ void Interface::drawSave() {
_savePanel.getRect(rect);
if (_vm->getGameType() == GType_ITE)
- drawButtonBox(backBuffer, rect, kButton, false);
+ drawButtonBox(rect, kButton, false);
else
backBuffer->blit(rect, _savePanel.image);
for (i = 0; i < _savePanel.buttonsCount; i++) {
panelButton = &_savePanel.buttons[i];
if (panelButton->type == kPanelButtonSave) {
- drawPanelButtonText(backBuffer, &_savePanel, panelButton);
+ drawPanelButtonText(&_savePanel, panelButton);
}
if (panelButton->type == kPanelButtonSaveText) {
- drawPanelText(backBuffer, &_savePanel, panelButton);
+ drawPanelText(&_savePanel, panelButton);
}
}
- drawTextInput(backBuffer, &_savePanel, _saveEdit);
+ drawTextInput(&_savePanel, _saveEdit);
}
void Interface::drawProtect() {
@@ -1330,15 +1331,15 @@ void Interface::drawProtect() {
PanelButton *panelButton;
_protectPanel.getRect(rect);
- drawButtonBox(backBuffer, rect, kButton, false);
+ drawButtonBox(rect, kButton, false);
for (i = 0; i < _protectPanel.buttonsCount; i++) {
panelButton = &_protectPanel.buttons[i];
if (panelButton->type == kPanelButtonProtectText) {
- drawPanelText(backBuffer, &_protectPanel, panelButton);
+ drawPanelText(&_protectPanel, panelButton);
}
}
- drawTextInput(backBuffer, &_protectPanel, _protectEdit);
+ drawTextInput(&_protectPanel, _protectEdit);
}
void Interface::handleSaveUpdate(const Point& mousePoint) {
@@ -1863,7 +1864,6 @@ void Interface::update(const Point& mousePoint, int updateFlag) {
}
void Interface::drawStatusBar() {
- Surface *backBuffer = _vm->_gfx->getBackBuffer();
Rect rect;
Point textPoint;
int stringWidth;
@@ -1886,7 +1886,7 @@ void Interface::drawStatusBar() {
rect.right = rect.left + _vm->getDisplayWidth();
rect.bottom = rect.top + _vm->getDisplayInfo().statusHeight;
- backBuffer->drawRect(rect, _vm->getDisplayInfo().statusBGColor - offset);
+ _vm->_gfx->getBackBuffer()->drawRect(rect, _vm->getDisplayInfo().statusBGColor - offset);
stringWidth = _vm->_font->getStringWidth(kKnownFontSmall, _statusText, 0, kFontNormal);
@@ -1898,9 +1898,9 @@ void Interface::drawStatusBar() {
textPoint.x = _vm->getDisplayInfo().statusXOffset + (_vm->getDisplayInfo().statusWidth - stringWidth) / 2;
textPoint.y = _vm->getDisplayInfo().statusYOffset + _vm->getDisplayInfo().statusTextY;
if (_vm->getGameType() == GType_ITE)
- _vm->_font->textDraw(kKnownFontSmall, backBuffer, _statusText, textPoint, color, 0, kFontNormal);
+ _vm->_font->textDraw(kKnownFontSmall, _statusText, textPoint, color, 0, kFontNormal);
else
- _vm->_font->textDraw(kKnownFontVerb, backBuffer, _statusText, textPoint, color, 0, kFontNormal);
+ _vm->_font->textDraw(kKnownFontVerb, _statusText, textPoint, color, 0, kFontNormal);
if (_saveReminderState > 0) {
rect.left = _vm->getDisplayInfo().saveReminderXOffset;
@@ -1908,7 +1908,7 @@ void Interface::drawStatusBar() {
rect.right = rect.left + _vm->getDisplayInfo().saveReminderWidth;
rect.bottom = rect.top + _vm->getDisplayInfo().saveReminderHeight;
- _vm->_sprite->draw(backBuffer, _vm->getDisplayClip(), _vm->_sprite->_saveReminderSprites,
+ _vm->_sprite->draw(_vm->getDisplayClip(), _vm->_sprite->_saveReminderSprites,
_vm->getDisplayInfo().saveReminderFirstSpriteNumber + _saveReminderState - 1,
rect, 256);
@@ -2094,23 +2094,23 @@ int Interface::inventoryItemPosition(int objectId) {
return -1;
}
-void Interface::drawInventory(Surface *backBuffer) {
+void Interface::drawInventory() {
if (!isInMainMode())
return;
- int i;
Rect rect;
- int ci;
+ int ci = _inventoryStart;
ObjectData *obj;
- ci = _inventoryStart;
+ Surface *backBuffer = _vm->_gfx->getBackBuffer();
+
if (_inventoryStart != 0) {
- drawPanelButtonArrow(backBuffer, &_mainPanel, _inventoryUpButton);
+ drawPanelButtonArrow(&_mainPanel, _inventoryUpButton);
}
if (_inventoryStart != _inventoryEnd) {
- drawPanelButtonArrow(backBuffer, &_mainPanel, _inventoryDownButton);
+ drawPanelButtonArrow(&_mainPanel, _inventoryDownButton);
}
- for (i = 0; i < _mainPanel.buttonsCount; i++) {
+ for (int i = 0; i < _mainPanel.buttonsCount; i++) {
if (_mainPanel.buttons[i].type != kPanelButtonInventory) {
continue;
}
@@ -2123,7 +2123,7 @@ void Interface::drawInventory(Surface *backBuffer) {
if (ci < _inventoryCount) {
obj = _vm->_actor->getObj(_inventory[ci]);
- _vm->_sprite->draw(backBuffer, _vm->getDisplayClip(), _vm->_sprite->_inventorySprites, obj->_spriteListResourceId, rect, 256);
+ _vm->_sprite->draw(_vm->getDisplayClip(), _vm->_sprite->_inventorySprites, obj->_spriteListResourceId, rect, 256);
}
ci++;
@@ -2140,12 +2140,13 @@ void Interface::setVerbState(int verb, int state) {
draw();
}
-void Interface::drawButtonBox(Surface *ds, const Rect& rect, ButtonKind kind, bool down) {
+void Interface::drawButtonBox(const Rect& rect, ButtonKind kind, bool down) {
byte cornerColor;
byte frameColor;
byte fillColor;
byte solidColor;
byte odl, our, idl, iur;
+ Surface *backBuffer = _vm->_gfx->getBackBuffer();
switch (kind ) {
case kSlider:
@@ -2193,14 +2194,14 @@ void Interface::drawButtonBox(Surface *ds, const Rect& rect, ButtonKind kind, bo
int xe = rect.right - 1;
int ye = rect.bottom - 1;
- ((byte *)ds->getBasePtr(x, y))[0] = cornerColor;
- ((byte *)ds->getBasePtr(x, ye))[0] = cornerColor;
- ((byte *)ds->getBasePtr(xe, y))[0] = cornerColor;
- ((byte *)ds->getBasePtr(xe, ye))[0] = cornerColor;
- ds->hLine(x + 1, y, x + w - 2, frameColor);
- ds->hLine(x + 1, ye, x + w - 2, frameColor);
- ds->vLine(x, y + 1, y + h - 2, frameColor);
- ds->vLine(xe, y + 1, y + h - 2, frameColor);
+ ((byte *)backBuffer->getBasePtr(x, y))[0] = cornerColor;
+ ((byte *)backBuffer->getBasePtr(x, ye))[0] = cornerColor;
+ ((byte *)backBuffer->getBasePtr(xe, y))[0] = cornerColor;
+ ((byte *)backBuffer->getBasePtr(xe, ye))[0] = cornerColor;
+ backBuffer->hLine(x + 1, y, x + w - 2, frameColor);
+ backBuffer->hLine(x + 1, ye, x + w - 2, frameColor);
+ backBuffer->vLine(x, y + 1, y + h - 2, frameColor);
+ backBuffer->vLine(xe, y + 1, y + h - 2, frameColor);
x++;
y++;
@@ -2208,10 +2209,10 @@ void Interface::drawButtonBox(Surface *ds, const Rect& rect, ButtonKind kind, bo
ye--;
w -= 2;
h -= 2;
- ds->vLine(x, y, y + h - 1, odl);
- ds->hLine(x, ye, x + w - 1, odl);
- ds->vLine(xe, y, y + h - 2, our);
- ds->hLine(x + 1, y, x + 1 + w - 2, our);
+ backBuffer->vLine(x, y, y + h - 1, odl);
+ backBuffer->hLine(x, ye, x + w - 1, odl);
+ backBuffer->vLine(xe, y, y + h - 2, our);
+ backBuffer->hLine(x + 1, y, x + 1 + w - 2, our);
x++;
y++;
@@ -2219,23 +2220,23 @@ void Interface::drawButtonBox(Surface *ds, const Rect& rect, ButtonKind kind, bo
ye--;
w -= 2;
h -= 2;
- ((byte *)ds->getBasePtr(x, y))[0] = fillColor;
- ((byte *)ds->getBasePtr(xe, ye))[0] = fillColor;
- ds->vLine(x, y + 1, y + 1 + h - 2, idl);
- ds->hLine(x + 1, ye, x + 1 + w - 2, idl);
- ds->vLine(xe, y, y + h - 2, iur);
- ds->hLine(x + 1, y, x + 1 + w - 2, iur);
+ ((byte *)backBuffer->getBasePtr(x, y))[0] = fillColor;
+ ((byte *)backBuffer->getBasePtr(xe, ye))[0] = fillColor;
+ backBuffer->vLine(x, y + 1, y + 1 + h - 2, idl);
+ backBuffer->hLine(x + 1, ye, x + 1 + w - 2, idl);
+ backBuffer->vLine(xe, y, y + h - 2, iur);
+ backBuffer->hLine(x + 1, y, x + 1 + w - 2, iur);
x++; y++;
w -= 2; h -= 2;
Common::Rect fill(x, y, x + w, y + h);
- ds->fillRect(fill, solidColor);
+ backBuffer->fillRect(fill, solidColor);
}
static const int readingSpeeds[] = { kTextClick, kTextSlow, kTextMid, kTextFast };
-void Interface::drawPanelButtonText(Surface *ds, InterfacePanel *panel, PanelButton *panelButton, int spritenum) {
+void Interface::drawPanelButtonText(InterfacePanel *panel, PanelButton *panelButton, int spritenum) {
const char *text;
int textId;
int textWidth;
@@ -2314,41 +2315,41 @@ void Interface::drawPanelButtonText(Surface *ds, InterfacePanel *panel, PanelBut
panel->calcPanelButtonRect(panelButton, rect);
if (_vm->getGameType() == GType_ITE) {
- drawButtonBox(ds, rect, kButton, panelButton->state > 0);
+ drawButtonBox(rect, kButton, panelButton->state > 0);
} else {
litButton = panelButton->state > 0;
if (panel == &_optionPanel) {
texturePoint.x = _optionPanel.x + panelButton->xOffset - 1;
texturePoint.y = _optionPanel.y + panelButton->yOffset - 1;
- _vm->_sprite->draw(ds, _vm->getDisplayClip(), _optionPanel.sprites, spritenum + 2 + litButton, texturePoint, 256);
+ _vm->_sprite->draw(_vm->getDisplayClip(), _optionPanel.sprites, spritenum + 2 + litButton, texturePoint, 256);
} else if (panel == &_quitPanel) {
texturePoint.x = _quitPanel.x + panelButton->xOffset - 3;
texturePoint.y = _quitPanel.y + panelButton->yOffset - 3;
- _vm->_sprite->draw(ds, _vm->getDisplayClip(), _quitPanel.sprites, litButton, texturePoint, 256);
+ _vm->_sprite->draw(_vm->getDisplayClip(), _quitPanel.sprites, litButton, texturePoint, 256);
} else if (panel == &_savePanel) {
texturePoint.x = _savePanel.x + panelButton->xOffset - 3;
texturePoint.y = _savePanel.y + panelButton->yOffset - 3;
- _vm->_sprite->draw(ds, _vm->getDisplayClip(), _savePanel.sprites, litButton, texturePoint, 256);
+ _vm->_sprite->draw(_vm->getDisplayClip(), _savePanel.sprites, litButton, texturePoint, 256);
// Input text box sprite
texturePoint.x = _savePanel.x + _saveEdit->xOffset - 2;
texturePoint.y = _savePanel.y + _saveEdit->yOffset - 2;
- _vm->_sprite->draw(ds, _vm->getDisplayClip(), _savePanel.sprites, 2, texturePoint, 256);
+ _vm->_sprite->draw(_vm->getDisplayClip(), _savePanel.sprites, 2, texturePoint, 256);
} else if (panel == &_loadPanel) {
texturePoint.x = _loadPanel.x + panelButton->xOffset - 3;
texturePoint.y = _loadPanel.y + panelButton->yOffset - 3;
- _vm->_sprite->draw(ds, _vm->getDisplayClip(), _loadPanel.sprites, litButton, texturePoint, 256);
+ _vm->_sprite->draw(_vm->getDisplayClip(), _loadPanel.sprites, litButton, texturePoint, 256);
} else {
// revert to default behavior
- drawButtonBox(ds, rect, kButton, panelButton->state > 0);
+ drawButtonBox(rect, kButton, panelButton->state > 0);
}
}
- _vm->_font->textDraw(textFont, ds, text, point,
+ _vm->_font->textDraw(textFont, text, point,
_vm->KnownColor2ColorId(textColor), _vm->KnownColor2ColorId(textShadowKnownColor), kFontShadow);
}
-void Interface::drawPanelButtonArrow(Surface *ds, InterfacePanel *panel, PanelButton *panelButton) {
+void Interface::drawPanelButtonArrow(InterfacePanel *panel, PanelButton *panelButton) {
Point point;
int spriteNumber;
@@ -2366,12 +2367,12 @@ void Interface::drawPanelButtonArrow(Surface *ds, InterfacePanel *panel, PanelBu
point.y = panel->y + panelButton->yOffset;
if (_vm->getGameType() == GType_ITE)
- _vm->_sprite->draw(ds, _vm->getDisplayClip(), _vm->_sprite->_mainSprites, spriteNumber, point, 256);
+ _vm->_sprite->draw(_vm->getDisplayClip(), _vm->_sprite->_mainSprites, spriteNumber, point, 256);
else
- _vm->_sprite->draw(ds, _vm->getDisplayClip(), _vm->_sprite->_arrowSprites, spriteNumber, point, 256);
+ _vm->_sprite->draw(_vm->getDisplayClip(), _vm->_sprite->_arrowSprites, spriteNumber, point, 256);
}
-void Interface::drawVerbPanelText(Surface *ds, PanelButton *panelButton, KnownColor textKnownColor, KnownColor textShadowKnownColor) {
+void Interface::drawVerbPanelText(PanelButton *panelButton, KnownColor textKnownColor, KnownColor textShadowKnownColor) {
const char *text;
int textWidth;
Point point;
@@ -2396,7 +2397,9 @@ void Interface::drawVerbPanelText(Surface *ds, PanelButton *panelButton, KnownCo
point.y = _mainPanel.y + panelButton->yOffset + 12;
}
- _vm->_font->textDraw(kKnownFontVerb, ds, text, point, _vm->KnownColor2ColorId(textKnownColor),_vm->KnownColor2ColorId(textShadowKnownColor), (textShadowKnownColor != kKnownColorTransparent) ? kFontShadow : kFontNormal);
+ _vm->_font->textDraw(kKnownFontVerb, text, point,
+ _vm->KnownColor2ColorId(textKnownColor), _vm->KnownColor2ColorId(textShadowKnownColor),
+ (textShadowKnownColor != kKnownColorTransparent) ? kFontShadow : kFontNormal);
}
@@ -2508,7 +2511,7 @@ void Interface::converseSetTextLines(int row) {
}
}
-void Interface::converseDisplayTextLines(Surface *ds) {
+void Interface::converseDisplayTextLines() {
int relPos;
byte foregnd;
byte backgnd;
@@ -2520,6 +2523,7 @@ void Interface::converseDisplayTextLines(Surface *ds) {
};
Rect rect(8, _vm->getDisplayInfo().converseTextLines * _vm->getDisplayInfo().converseTextHeight);
Point textPoint;
+ Surface *backBuffer = _vm->_gfx->getBackBuffer();
assert(_conversePanel.buttonsCount >= 6);
@@ -2536,9 +2540,9 @@ void Interface::converseDisplayTextLines(Surface *ds) {
_conversePanel.y + _conversePanel.buttons[0].yOffset);
if (_vm->getGameType() == GType_ITE)
- ds->drawRect(rect, kITEColorDarkGrey); //fill bullet place
+ backBuffer->drawRect(rect, kITEColorDarkGrey); //fill bullet place
else
- ds->drawRect(rect, _vm->KnownColor2ColorId(kKnownColorBlack)); //fill bullet place
+ backBuffer->drawRect(rect, _vm->KnownColor2ColorId(kKnownColorBlack)); //fill bullet place
for (int i = 0; i < _vm->getDisplayInfo().converseTextLines; i++) {
relPos = _converseStartPos + i;
@@ -2567,7 +2571,7 @@ void Interface::converseDisplayTextLines(Surface *ds) {
_conversePanel.calcPanelButtonRect(&_conversePanel.buttons[i], rect);
rect.left += 8;
- ds->drawRect(rect, backgnd);
+ backBuffer->drawRect(rect, backgnd);
str = _converseText[relPos].text;
@@ -2576,24 +2580,24 @@ void Interface::converseDisplayTextLines(Surface *ds) {
textPoint.y = rect.top;
if (_vm->getGameType() == GType_ITE)
- _vm->_font->textDraw(kKnownFontSmall, ds, bullet, textPoint, bulletForegnd, bulletBackgnd, (FontEffectFlags)(kFontShadow | kFontDontmap));
+ _vm->_font->textDraw(kKnownFontSmall, bullet, textPoint, bulletForegnd, bulletBackgnd, (FontEffectFlags)(kFontShadow | kFontDontmap));
else
- _vm->_font->textDraw(kKnownFontVerb, ds, bullet, textPoint, bulletForegnd, bulletBackgnd, (FontEffectFlags)(kFontShadow | kFontDontmap));
+ _vm->_font->textDraw(kKnownFontVerb, bullet, textPoint, bulletForegnd, bulletBackgnd, (FontEffectFlags)(kFontShadow | kFontDontmap));
}
textPoint.x = rect.left + 1;
textPoint.y = rect.top;
if (_vm->getGameType() == GType_ITE)
- _vm->_font->textDraw(kKnownFontSmall, ds, str, textPoint, foregnd, kITEColorBlack, kFontShadow);
+ _vm->_font->textDraw(kKnownFontSmall, str, textPoint, foregnd, kITEColorBlack, kFontShadow);
else
- _vm->_font->textDraw(kKnownFontVerb, ds, str, textPoint, foregnd, _vm->KnownColor2ColorId(kKnownColorBlack), kFontShadow);
+ _vm->_font->textDraw(kKnownFontVerb, str, textPoint, foregnd, _vm->KnownColor2ColorId(kKnownColorBlack), kFontShadow);
}
if (_converseStartPos != 0) {
- drawPanelButtonArrow(ds, &_conversePanel, _converseUpButton);
+ drawPanelButtonArrow(&_conversePanel, _converseUpButton);
}
if (_converseStartPos != _converseEndPos) {
- drawPanelButtonArrow(ds, &_conversePanel, _converseDownButton);
+ drawPanelButtonArrow(&_conversePanel, _converseDownButton);
}
}
@@ -2792,7 +2796,7 @@ void Interface::mapPanelDrawCrossHair() {
Rect screen(_vm->getDisplayWidth(), _vm->_scene->getHeight());
if (screen.contains(mapPosition)) {
- _vm->_sprite->draw(_vm->_gfx->getBackBuffer(), _vm->getDisplayClip(), _vm->_sprite->_mainSprites,
+ _vm->_sprite->draw(_vm->getDisplayClip(), _vm->_sprite->_mainSprites,
_mapPanelCrossHairState? RID_ITE_SPR_CROSSHAIR : RID_ITE_SPR_CROSSHAIR + 1,
mapPosition, 256);
}