[Scummvm-cvs-logs] CVS: scummvm/saga game.cpp,1.104,1.105 interface.cpp,1.150,1.151 resnames.h,1.39,1.40 saga.h,1.130,1.131 sprite.cpp,1.69,1.70
Eugene Sandulenko
sev at users.sourceforge.net
Sun Oct 9 19:03:17 CEST 2005
Update of /cvsroot/scummvm/scummvm/saga
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14854
Modified Files:
game.cpp interface.cpp resnames.h saga.h sprite.cpp
Log Message:
Draw main panel. Buttons lack backgorunds and save reminder is buggy atm.
Index: game.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/game.cpp,v
retrieving revision 1.104
retrieving revision 1.105
diff -u -d -r1.104 -r1.105
--- game.cpp 8 Oct 2005 16:25:17 -0000 1.104
+++ game.cpp 10 Oct 2005 02:02:58 -0000 1.105
@@ -571,7 +571,7 @@
0, // status x offset
304, // status y offset
- 640, // status width
+ 616, // status width
24, // status height
8, // status text y offset
186, // status text color
@@ -590,7 +590,7 @@
-1, -1, // inventory Up & Down button indexies
2, 4, // inventory rows, columns
- 0, 149, // main panel offsets
+ 0, 328, // main panel offsets
ARRAYSIZE(IHNM_MainPanelButtons),
IHNM_MainPanelButtons,
@@ -599,7 +599,7 @@
IHNM_CONVERSE_MAX_TEXT_WIDTH,
IHNM_CONVERSE_TEXT_HEIGHT,
IHNM_CONVERSE_TEXT_LINES,
- 0, 0, // converse panel offsets
+ 0, 328, // converse panel offsets
ARRAYSIZE(IHNM_ConversePanelButtons),
IHNM_ConversePanelButtons,
@@ -691,7 +691,7 @@
{3},
{4},
{5},
- {6},
+ {6}, // kIHNMFont8
{7},
{8} // kIHNMMainFont
};
Index: interface.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/interface.cpp,v
retrieving revision 1.150
retrieving revision 1.151
diff -u -d -r1.150 -r1.151
--- interface.cpp 9 Oct 2005 03:45:16 -0000 1.150
+++ interface.cpp 10 Oct 2005 02:02:58 -0000 1.151
@@ -50,8 +50,8 @@
namespace Saga {
-static int verbTypeToTextStringsIdLUT[kVerbTypesMax] = {
- -1,
+static int verbTypeToTextStringsIdLUT[2][kVerbTypesMax] = {
+ {-1,
kTextPickUp,
kTextLookAt,
kTextWalkTo,
@@ -68,7 +68,8 @@
-1,
-1,
-1,
- -1
+ -1},
+ {-1, -1, 2, 1, 5, -1, -1, 7, 4, -1, -1, -1, -1, -1, -1, 3, 6, 8}
};
Interface::Interface(SagaEngine *vm) : _vm(vm) {
@@ -595,13 +596,6 @@
if (_vm->_scene->isInIntro() || _fadeMode == kFadeOut)
return;
- // Disable this for IHNM for now, since that game uses the full screen
- // in some cases.
-
- if (_vm->getGameType() == GType_IHNM) {
- return;
- }
-
drawStatusBar();
if (_panelMode == kPanelMain || _panelMode == kPanelMap) {
@@ -1486,10 +1480,6 @@
// Disable this for IHNM for now, since that game uses the full screen
// in some cases.
- if (_vm->getGameType() == GType_IHNM) {
- return;
- }
-
// Erase background of status bar
rect.left = _vm->getDisplayInfo().statusXOffset;
rect.top = _vm->getDisplayInfo().statusYOffset;
@@ -1917,20 +1907,25 @@
int textWidth;
Point point;
int textId;
+ FontId font;
- textId = verbTypeToTextStringsIdLUT[panelButton->id];
-
- if (textId == -1)
- error("textId == -1");
+ if (_vm->getGameType() == GType_ITE) {
+ textId = verbTypeToTextStringsIdLUT[0][panelButton->id];
+ text = _vm->getTextString(textId);
+ font = kSmallFont;
+ } else {
+ textId = verbTypeToTextStringsIdLUT[1][panelButton->id];
+ text = _vm->_script->_mainStrings.getString(textId + 1);
+ font = kIHNMFont8;
+ }
- text = _vm->getTextString(textId);
- textWidth = _vm->_font->getStringWidth(kSmallFont, text, 0, kFontNormal);
+ textWidth = _vm->_font->getStringWidth(font, text, 0, kFontNormal);
point.x = _mainPanel.x + panelButton->xOffset + 1 + (panelButton->width - 1 - textWidth) / 2;
point.y = _mainPanel.y + panelButton->yOffset + 1;
- _vm->_font->textDraw(kSmallFont, ds, text, point, textColor, textShadowColor, (textShadowColor != 0) ? kFontShadow : kFontNormal);
+ _vm->_font->textDraw(font, ds, text, point, textColor, textShadowColor, (textShadowColor != 0) ? kFontShadow : kFontNormal);
}
@@ -2331,7 +2326,7 @@
backBuffer = _vm->_gfx->getBackBuffer();
- rect.left = rect.top = 0;
+ rect.left = rect.top = 20;
_vm->_resource->loadResource(_interfaceContext, RID_IHNM_BOSS_SCREEN, resource, resourceLength);
if (resourceLength == 0) {
Index: resnames.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/resnames.h,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -d -r1.39 -r1.40
--- resnames.h 9 Oct 2005 19:00:14 -0000 1.39
+++ resnames.h 10 Oct 2005 02:02:58 -0000 1.40
@@ -88,6 +88,7 @@
#define RID_IHNM_MAIN_SPRITES 12 // TODO: verify this
#define RID_IHNM_MAIN_PANEL_SPRITES 13 // TODO: verify this
#define RID_IHNM_MAIN_STRINGS 21
+#define RID_IHNM_PROFILE_BG 20
#define RID_IHNM_BOSS_SCREEN 19
Index: saga.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/saga.h,v
retrieving revision 1.130
retrieving revision 1.131
diff -u -d -r1.130 -r1.131
--- saga.h 9 Oct 2005 01:18:26 -0000 1.130
+++ saga.h 10 Oct 2005 02:02:58 -0000 1.131
@@ -322,6 +322,7 @@
kMediumFont,
kBigFont,
+ kIHNMFont8 = 4,
kIHNMMainFont = 6
};
Index: sprite.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/sprite.cpp,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -d -r1.69 -r1.70
--- sprite.cpp 8 Oct 2005 20:09:00 -0000 1.69
+++ sprite.cpp 10 Oct 2005 02:02:58 -0000 1.70
@@ -198,6 +198,14 @@
bufRowPointer += ds->pitch * io;
srcRowPointer += width * io;
}
+
+ int traverseSign = 1;
+
+ if (_vm->getGameType() == GType_IHNM) {
+ traverseSign = -1;
+ bufRowPointer += clipHeight * ds->pitch;
+ }
+
for (i = io; i < clipHeight; i++) {
for (j = jo; j < clipWidth; j++) {
assert((byte *)ds->pixels <= (byte *)(bufRowPointer + j + spritePointer.x));
@@ -210,7 +218,7 @@
*(bufRowPointer + j + spritePointer.x) = *(srcRowPointer + j);
}
}
- bufRowPointer += ds->pitch;
+ bufRowPointer += ds->pitch * traverseSign;
srcRowPointer += width;
}
}
More information about the Scummvm-git-logs
mailing list