aboutsummaryrefslogtreecommitdiff
path: root/saga/interface.cpp
diff options
context:
space:
mode:
authorAndrew Kurushin2004-12-19 13:38:11 +0000
committerAndrew Kurushin2004-12-19 13:38:11 +0000
commit3f55bee1991d1932ab019b972bd2f128d164753a (patch)
treebb36c73275f68e9f2adaf9b719abad52d25ce5c6 /saga/interface.cpp
parent9d6b4c3088025a2b2a4f5635aeb996bbcc586d89 (diff)
downloadscummvm-rg350-3f55bee1991d1932ab019b972bd2f128d164753a.tar.gz
scummvm-rg350-3f55bee1991d1932ab019b972bd2f128d164753a.tar.bz2
scummvm-rg350-3f55bee1991d1932ab019b972bd2f128d164753a.zip
- implemented perspective actors calculation
TODO: decodeRLESprite must do scale svn-id: r16135
Diffstat (limited to 'saga/interface.cpp')
-rw-r--r--saga/interface.cpp51
1 files changed, 25 insertions, 26 deletions
diff --git a/saga/interface.cpp b/saga/interface.cpp
index 8bcede1578..cfb71bc374 100644
--- a/saga/interface.cpp
+++ b/saga/interface.cpp
@@ -318,11 +318,9 @@ int Interface::draw() {
int xbase;
int ybase;
- int lportrait_x;
- int lportrait_y;
- int rportrait_x;
- int rportrait_y;
-
+ Point lportrait;
+ Point rportrait;
+
Point origin;
back_buf = _vm->_gfx->getBackBuffer();
@@ -358,16 +356,16 @@ int Interface::draw() {
}
// Draw character portrait
- lportrait_x = xbase + _iDesc.lportrait_x;
- lportrait_y = ybase + _iDesc.lportrait_y;
+ lportrait.x = xbase + _iDesc.lportrait_x;
+ lportrait.y = ybase + _iDesc.lportrait_y;
- _vm->_sprite->draw(back_buf, _defPortraits, _leftPortrait, lportrait_x, lportrait_y);
+ _vm->_sprite->draw(back_buf, _defPortraits, _leftPortrait, lportrait, 1);
if (_panelMode == kPanelDialogue && _iDesc.rportrait_x >= 0) {
- rportrait_x = xbase + _iDesc.rportrait_x;
- rportrait_y = ybase + _iDesc.rportrait_y;
+ rportrait.x = xbase + _iDesc.rportrait_x;
+ rportrait.y = ybase + _iDesc.rportrait_y;
- _vm->_sprite->draw(back_buf, _scenePortraits, _rightPortrait, rportrait_x, rportrait_y);
+ _vm->_sprite->draw(back_buf, _scenePortraits, _rightPortrait, rportrait, 1);
}
drawInventory();
@@ -457,8 +455,7 @@ int Interface::handleCommandClick(SURFACE *ds, const Point& imousePt) {
int x_base;
int y_base;
- int button_x = 0;
- int button_y = 0;
+ Point button;
int old_set_button;
int set_button;
@@ -482,19 +479,19 @@ int Interface::handleCommandClick(SURFACE *ds, const Point& imousePt) {
}
if (_cPanel.buttons[set_button].flags & BUTTON_BITMAP) {
- button_x = x_base + _cPanel.buttons[set_button].x1;
- button_y = y_base + _cPanel.buttons[set_button].y1;
+ button.x = x_base + _cPanel.buttons[set_button].x1;
+ button.y = y_base + _cPanel.buttons[set_button].y1;
_vm->_sprite->draw(ds, _cPanel.sprites, _cPanel.buttons[set_button].
- active_sprite - 1, button_x, button_y);
+ active_sprite - 1, button, 1);
}
if (_cPanel.buttons[old_set_button].flags & BUTTON_BITMAP) {
- button_x = x_base + _cPanel.buttons[old_set_button].x1;
- button_y = y_base + _cPanel.buttons[old_set_button].y1;
+ button.x = x_base + _cPanel.buttons[old_set_button].x1;
+ button.y = y_base + _cPanel.buttons[old_set_button].y1;
_vm->_sprite->draw(ds, _cPanel.sprites, _cPanel.buttons[old_set_button].
- inactive_sprite - 1, button_x, button_y);
+ inactive_sprite - 1, button, 1);
}
}
@@ -505,8 +502,7 @@ int Interface::handleCommandUpdate(SURFACE *ds, const Point& imousePt) {
int hit_button;
int ibutton_num;
- int button_x = 0;
- int button_y = 0;
+ Point button;
int button_w = 0;
int verb_idx = 0;
@@ -546,16 +542,16 @@ int Interface::handleCommandUpdate(SURFACE *ds, const Point& imousePt) {
color = _iDesc.cmd_txt_col;
}
- button_x = _cPanel.x + _cPanel.buttons[i].x1;
- button_y = _cPanel.y + _cPanel.buttons[i].y1;
+ button.x = _cPanel.x + _cPanel.buttons[i].x1;
+ button.y = _cPanel.y + _cPanel.buttons[i].y1;
_vm->_font->draw(SMALL_FONT_ID, ds, I_VerbData[verb_idx].verb_str, 0,
- button_x + ((button_w / 2) - (string_w / 2)), button_y + 1,
+ button.x + ((button_w / 2) - (string_w / 2)), button.y + 1,
color, _iDesc.cmd_txt_shadowcol, FONT_SHADOW);
if ((i == _cPanel.set_button) && (_cPanel.buttons[i].flags & BUTTON_BITMAP)) {
_vm->_sprite->draw(ds, _cPanel.sprites, _cPanel.buttons[i].active_sprite - 1,
- button_x, button_y);
+ button, 1);
}
}
@@ -704,15 +700,18 @@ void Interface::drawInventory() {
int y = _iDesc.inv_ystart + _iDesc.inv_icon_yoffset;
int width = _iDesc.inv_icon_width + _iDesc.inv_xspacing;
int height = _iDesc.inv_icon_height + _iDesc.inv_yspacing;
+ Point drawPoint;
for (int i = 0; i < _inventoryCount; i++) {
if (_inventory[i] >= ARRAYSIZE(ObjectTable)) {
continue;
}
+ drawPoint.x = x + col * width;
+ drawPoint.y = y + row * height;
_vm->_sprite->draw(back_buf, _vm->_mainSprites,
ObjectTable[_inventory[i]].spritelistRn,
- x + col * width, y + row * height);
+ drawPoint, 1);
if (++col >= _iDesc.inv_columns) {
if (++row >= _iDesc.inv_rows) {