aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVicent Marti2008-08-15 19:10:37 +0000
committerVicent Marti2008-08-15 19:10:37 +0000
commit7c213ab11022ffce603099fe409d44d383ce94e7 (patch)
treed10f744f79d0cb0b2b0ef3a7ac986aeed06203c6
parent9ae82653ef7586aa52fae0041b56dfd2415ea399 (diff)
downloadscummvm-rg350-7c213ab11022ffce603099fe409d44d383ce94e7.tar.gz
scummvm-rg350-7c213ab11022ffce603099fe409d44d383ce94e7.tar.bz2
scummvm-rg350-7c213ab11022ffce603099fe409d44d383ce94e7.zip
Tons of misc. GFX fixes.
svn-id: r33911
-rw-r--r--engines/scumm/dialogs.cpp5
-rw-r--r--graphics/VectorRenderer.cpp10
-rw-r--r--graphics/VectorRenderer.h15
-rw-r--r--gui/ThemeParser.cpp1
-rw-r--r--gui/ThemeRenderer.cpp9
-rw-r--r--gui/newgui.cpp1
-rw-r--r--gui/options.cpp8
-rw-r--r--gui/options.h1
-rw-r--r--gui/themes/default.inc5
-rw-r--r--gui/themes/scummclassic.zipbin40072 -> 40158 bytes
-rw-r--r--gui/themes/scummclassic/classic_gfx.stx6
-rw-r--r--gui/themes/scummclassic/classic_layout.stx6
-rw-r--r--gui/themes/scummclassic/classic_layout_320.stx6
-rw-r--r--gui/themes/scummodern.zipbin122565 -> 122840 bytes
-rw-r--r--gui/themes/scummodern/scummodern_gfx.stx43
-rw-r--r--gui/themes/scummodern/scummodern_layout_320.stx6
16 files changed, 91 insertions, 31 deletions
diff --git a/engines/scumm/dialogs.cpp b/engines/scumm/dialogs.cpp
index e1fe3cfeed..8d977719da 100644
--- a/engines/scumm/dialogs.cpp
+++ b/engines/scumm/dialogs.cpp
@@ -951,7 +951,10 @@ void SubtitleSettingsDialog::cycleValue() {
if (_value > 2)
_value = 0;
- setInfoText(subtitleDesc[_value]);
+ if (_value == 1 && g_system->getOverlayWidth() <= 320)
+ setInfoText("Speech & Subs");
+ else
+ setInfoText(subtitleDesc[_value]);
_timer = getMillis() + 1500;
}
diff --git a/graphics/VectorRenderer.cpp b/graphics/VectorRenderer.cpp
index 16797fa930..655602ef20 100644
--- a/graphics/VectorRenderer.cpp
+++ b/graphics/VectorRenderer.cpp
@@ -370,15 +370,21 @@ drawLine(int x1, int y1, int x2, int y2) {
PixelType *ptr = (PixelType *)_activeSurface->getBasePtr(x1, y1);
int pitch = Base::surfacePitch();
+ int st = Base::_strokeWidth >> 1;
if (dy == 0) { // horizontal lines
// these can be filled really fast with a single memset.
colorFill(ptr, ptr + dx + 1, (PixelType)_fgColor);
+
+ for (int i = 0, p = pitch; i < st; ++i, p += pitch) {
+ colorFill(ptr + p, ptr + dx + 1 + p, (PixelType)_fgColor);
+ colorFill(ptr - p, ptr + dx + 1 - p, (PixelType)_fgColor);
+ }
} else if (dx == 0) { // vertical lines
// these ones use a static pitch increase.
while (y1++ <= y2) {
- *ptr = (PixelType)_fgColor;
+ colorFill(ptr - st, ptr + st, (PixelType)_fgColor);
ptr += pitch;
}
@@ -387,7 +393,7 @@ drawLine(int x1, int y1, int x2, int y2) {
pitch += (x2 > x1) ? 1 : -1;
while (dy--) {
- *ptr = (PixelType)_fgColor;
+ colorFill(ptr - st, ptr + st, (PixelType)_fgColor);
ptr += pitch;
}
diff --git a/graphics/VectorRenderer.h b/graphics/VectorRenderer.h
index 0407028556..bd1bd1db42 100644
--- a/graphics/VectorRenderer.h
+++ b/graphics/VectorRenderer.h
@@ -211,6 +211,15 @@ public:
* @param r Radius of the corners of the tab (0 for squared tabs).
*/
virtual void drawTab(int x, int y, int r, int w, int h) = 0;
+
+
+ /**
+ * Simple helper function to draw a cross.
+ */
+ virtual void drawCross(int x, int y, int w, int h) {
+ drawLine(x, y, x + w, y + w);
+ drawLine(x + w, y, x, y + h);
+ }
/**
* Gets the pixel pitch for the current drawing surface.
@@ -419,6 +428,12 @@ public:
stepGetPositions(step, area, x, y, w, h);
blitAlphaBitmap(step.blitSrc, Common::Rect(x, y, x + w, y + h));
}
+
+ void drawCallback_CROSS(const Common::Rect &area, const DrawStep &step) {
+ uint16 x, y, w, h;
+ stepGetPositions(step, area, x, y, w, h);
+ drawCross(x, y, w, h);
+ }
void drawCallback_VOID(const Common::Rect &area, const DrawStep &step) {}
diff --git a/gui/ThemeParser.cpp b/gui/ThemeParser.cpp
index 63fc868ba6..2656f2a898 100644
--- a/gui/ThemeParser.cpp
+++ b/gui/ThemeParser.cpp
@@ -52,6 +52,7 @@ ThemeParser::ThemeParser(ThemeRenderer *parent) : XMLParser() {
_drawFunctions["tab"] = &Graphics::VectorRenderer::drawCallback_TAB;
_drawFunctions["void"] = &Graphics::VectorRenderer::drawCallback_VOID;
_drawFunctions["bitmap"] = &Graphics::VectorRenderer::drawCallback_BITMAP;
+ _drawFunctions["cross"] = &Graphics::VectorRenderer::drawCallback_CROSS;
_defaultStepGlobal = defaultDrawStep();
_defaultStepLocal = 0;
diff --git a/gui/ThemeRenderer.cpp b/gui/ThemeRenderer.cpp
index 27409d8192..c24f8a6d50 100644
--- a/gui/ThemeRenderer.cpp
+++ b/gui/ThemeRenderer.cpp
@@ -29,6 +29,7 @@
#include "common/system.h"
#include "common/events.h"
#include "common/config-manager.h"
+#include "common/fs.h"
#include "graphics/imageman.h"
#include "graphics/cursorman.h"
#include "gui/launcher.h"
@@ -461,7 +462,7 @@ bool ThemeRenderer::loadThemeXML(Common::String themeName) {
if (parser()->loadStream(stream) == false || parser()->parse() == false) {
warning("Failed to load stream for zipped file '%s'", fileNameBuffer);
unzClose(zipFile);
- delete stream;
+// delete stream;
return false;
}
}
@@ -474,6 +475,9 @@ bool ThemeRenderer::loadThemeXML(Common::String themeName) {
}
}
+// FilesystemNode dir(themeName);
+// FSList files = dir.listDir(FilesystemNode::kListFilesOnly);
+
unzClose(zipFile);
return (parseCount > 0 && _themeName.empty() == false);
#else
@@ -705,6 +709,9 @@ void ThemeRenderer::drawScrollbar(const Common::Rect &r, int sliderY, int slider
r2.right -= 1;
r2.top += sliderY;
r2.bottom = r2.top + sliderHeight - 1;
+
+ r2.top += r.width() / 5;
+ r2.bottom -= r.width() / 5;
queueDD(scrollState == kScrollbarStateSlider ? kDDScrollbarHandleHover : kDDScrollbarHandleIdle, r2);
}
diff --git a/gui/newgui.cpp b/gui/newgui.cpp
index 82d6b2db91..fc781f731d 100644
--- a/gui/newgui.cpp
+++ b/gui/newgui.cpp
@@ -423,6 +423,7 @@ void NewGui::screenChange() {
// redrawn before redraw() has been called.
_redrawStatus = kRedrawFull;
redraw();
+ _system->showOverlay();
_system->updateScreen();
}
diff --git a/gui/options.cpp b/gui/options.cpp
index 05b0f790a2..c24b338af6 100644
--- a/gui/options.cpp
+++ b/gui/options.cpp
@@ -88,6 +88,12 @@ const char *OptionsDialog::_subModeDesc[] = {
"Subtitles Only"
};
+const char *OptionsDialog::_lowresSubModeDesc[] = {
+ "Speech Only",
+ "Speech & Subs",
+ "Subtitles Only"
+};
+
void OptionsDialog::init() {
_enableGraphicSettings = false;
_gfxPopUp = 0;
@@ -417,7 +423,7 @@ void OptionsDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data
else
_subMode = 0;
- _subToggleButton->setLabel(_subModeDesc[_subMode]);
+ _subToggleButton->setLabel(g_system->getOverlayWidth() > 320 ? _subModeDesc[_subMode] : _lowresSubModeDesc[_subMode]);
_subToggleButton->draw();
_subSpeedDesc->draw();
_subSpeedSlider->draw();
diff --git a/gui/options.h b/gui/options.h
index 39f2918ce2..187e163b79 100644
--- a/gui/options.h
+++ b/gui/options.h
@@ -122,6 +122,7 @@ private:
ButtonWidget *_subToggleButton;
int _subMode;
static const char *_subModeDesc[];
+ static const char *_lowresSubModeDesc[];
StaticTextWidget *_subSpeedDesc;
SliderWidget *_subSpeedSlider;
StaticTextWidget *_subSpeedLabel;
diff --git a/gui/themes/default.inc b/gui/themes/default.inc
index fd948ab3fa..ce7fc16cfc 100644
--- a/gui/themes/default.inc
+++ b/gui/themes/default.inc
@@ -282,6 +282,11 @@
"bevel = '2' "
"fill = 'none' "
"/> "
+"<drawstep func = 'cross' "
+"fill = 'foreground' "
+"stroke = '2' "
+"fg_color = 'green' "
+"/> "
"</drawdata> "
"<drawdata id = 'checkbox_default' cache = false> "
"<text font = 'text_default' "
diff --git a/gui/themes/scummclassic.zip b/gui/themes/scummclassic.zip
index 91704798b6..3211ca2cd9 100644
--- a/gui/themes/scummclassic.zip
+++ b/gui/themes/scummclassic.zip
Binary files differ
diff --git a/gui/themes/scummclassic/classic_gfx.stx b/gui/themes/scummclassic/classic_gfx.stx
index 66c442066d..6c96dcebdb 100644
--- a/gui/themes/scummclassic/classic_gfx.stx
+++ b/gui/themes/scummclassic/classic_gfx.stx
@@ -338,7 +338,11 @@
bevel = '2'
fill = 'none'
/>
-/* TODO */
+ <drawstep func = 'cross'
+ fill = 'foreground'
+ stroke = '2'
+ fg_color = 'green'
+ />
</drawdata>
<drawdata id = 'checkbox_default' cache = false>
diff --git a/gui/themes/scummclassic/classic_layout.stx b/gui/themes/scummclassic/classic_layout.stx
index 8be91e9de6..005ebb89f3 100644
--- a/gui/themes/scummclassic/classic_layout.stx
+++ b/gui/themes/scummclassic/classic_layout.stx
@@ -250,12 +250,12 @@
<widget name = 'mcFontButton'
type = 'Button'
/>
+ <widget name = 'mcFontPath'
+ height = 'Globals.Line.Height'
+ />
<widget name = 'mcFontClearButton'
height = 'Globals.Line.Height'
width = 'Globals.Line.Height'
- />
- <widget name = 'mcFontPath'
- height = 'Globals.Line.Height'
/>
</layout>
<widget name = 'mcMixedCheckbox'
diff --git a/gui/themes/scummclassic/classic_layout_320.stx b/gui/themes/scummclassic/classic_layout_320.stx
index 0a9c84c71b..1a6f8afa04 100644
--- a/gui/themes/scummclassic/classic_layout_320.stx
+++ b/gui/themes/scummclassic/classic_layout_320.stx
@@ -248,13 +248,13 @@
<widget name = 'mcFontButton'
type = 'Button'
/>
+ <widget name = 'mcFontPath'
+ height = 'Globals.Line.Height'
+ />
<widget name = 'mcFontClearButton'
height = 'Globals.Line.Height'
width = 'Globals.Line.Height'
/>
- <widget name = 'mcFontPath'
- height = 'Globals.Line.Height'
- />
</layout>
<widget name = 'mcMixedCheckbox'
type = 'Checkbox'
diff --git a/gui/themes/scummodern.zip b/gui/themes/scummodern.zip
index 8584433625..ff08f25dd3 100644
--- a/gui/themes/scummodern.zip
+++ b/gui/themes/scummodern.zip
Binary files differ
diff --git a/gui/themes/scummodern/scummodern_gfx.stx b/gui/themes/scummodern/scummodern_gfx.stx
index 672d3915e2..37d6590e3c 100644
--- a/gui/themes/scummodern/scummodern_gfx.stx
+++ b/gui/themes/scummodern/scummodern_gfx.stx
@@ -26,22 +26,19 @@
<render_info>
<palette>
<color name = 'darkred'
- rgb = '168, 42, 12'
+ rgb = '169, 42, 12'
/>
<color name = 'brightred'
- rgb = '200, 124, 104'
+ rgb = '203, 126, 107'
/>
<color name = 'xtrabrightred'
- rgb = '251, 241, 206'
+ rgb = '255, 210, 200'
/>
<color name = 'blandyellow'
rgb = '247, 228, 166'
/>
<color name = 'bgreen'
- rgb = '96, 160, 8'
- />
- <color name = 'blue'
- rgb = '0, 255, 255'
+ rgb = '100, 162, 8'
/>
<color name = 'black'
rgb = '0, 0, 0'
@@ -232,7 +229,7 @@
<drawdata id = 'tab_background' cache = false>
<drawstep func = 'tab'
- radius = '8'
+ radius = '6'
stroke = '0'
fill = 'foreground'
fg_color = '232, 180, 81'
@@ -272,6 +269,17 @@
gradient_end = 'darkred'
/>
</drawdata>
+
+ <drawdata id = 'slider_disabled' cache = false>
+ <drawstep func = 'roundedsq'
+ stroke = 1
+ radius = 4
+ fill = 'gradient'
+ fg_color = '123, 112, 56'
+ gradient_start = 'xtrabrightred'
+ gradient_end = 'darkred'
+ />
+ </drawdata>
<drawdata id = 'popup_idle' cache = false>
<drawstep func = 'roundedsq'
@@ -334,7 +342,7 @@
<drawdata id = 'plain_bg' cache = false>
<drawstep func = 'roundedsq'
- radius = 8
+ radius = 6
stroke = 0
gradient_start = 'blandyellow'
gradient_end = 'xtrabrightred'
@@ -366,7 +374,7 @@
horizontal_align = 'center'
/>
<drawstep func = 'roundedsq'
- radius = '6'
+ radius = '3'
stroke = 1
fill = 'gradient'
shadow = 0
@@ -383,7 +391,7 @@
horizontal_align = 'center'
/>
<drawstep func = 'roundedsq'
- radius = '6'
+ radius = '3'
gradient_factor = 1
stroke = 1
fill = 'gradient'
@@ -402,11 +410,14 @@
horizontal_align = 'center'
/>
<drawstep func = 'roundedsq'
- radius = '8'
- stroke = 0
- fill = 'foreground'
- fg_color = '200, 200, 200'
- shadow = 3
+ radius = '3'
+ stroke = 1
+ fill = 'gradient'
+ shadow = 0
+ fg_color = 'shadowcolor'
+ gradient_start = 'brightred'
+ gradient_end = 'darkred'
+ bevel = 1
/>
</drawdata>
diff --git a/gui/themes/scummodern/scummodern_layout_320.stx b/gui/themes/scummodern/scummodern_layout_320.stx
index e545f5f98d..9d689e5c8d 100644
--- a/gui/themes/scummodern/scummodern_layout_320.stx
+++ b/gui/themes/scummodern/scummodern_layout_320.stx
@@ -245,12 +245,12 @@
<widget name = 'mcFontButton'
type = 'Button'
/>
+ <widget name = 'mcFontPath'
+ height = 'Globals.Line.Height'
+ />
<widget name = 'mcFontClearButton'
height = 'Globals.Line.Height'
width = 'Globals.Line.Height'
- />
- <widget name = 'mcFontPath'
- height = 'Globals.Line.Height'
/>
</layout>
<widget name = 'mcMixedCheckbox'