diff options
-rw-r--r-- | engines/scumm/dialogs.cpp | 5 | ||||
-rw-r--r-- | graphics/VectorRenderer.cpp | 10 | ||||
-rw-r--r-- | graphics/VectorRenderer.h | 15 | ||||
-rw-r--r-- | gui/ThemeParser.cpp | 1 | ||||
-rw-r--r-- | gui/ThemeRenderer.cpp | 9 | ||||
-rw-r--r-- | gui/newgui.cpp | 1 | ||||
-rw-r--r-- | gui/options.cpp | 8 | ||||
-rw-r--r-- | gui/options.h | 1 | ||||
-rw-r--r-- | gui/themes/default.inc | 5 | ||||
-rw-r--r-- | gui/themes/scummclassic.zip | bin | 40072 -> 40158 bytes | |||
-rw-r--r-- | gui/themes/scummclassic/classic_gfx.stx | 6 | ||||
-rw-r--r-- | gui/themes/scummclassic/classic_layout.stx | 6 | ||||
-rw-r--r-- | gui/themes/scummclassic/classic_layout_320.stx | 6 | ||||
-rw-r--r-- | gui/themes/scummodern.zip | bin | 122565 -> 122840 bytes | |||
-rw-r--r-- | gui/themes/scummodern/scummodern_gfx.stx | 43 | ||||
-rw-r--r-- | gui/themes/scummodern/scummodern_layout_320.stx | 6 |
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 Binary files differindex 91704798b6..3211ca2cd9 100644 --- a/gui/themes/scummclassic.zip +++ b/gui/themes/scummclassic.zip 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 Binary files differindex 8584433625..ff08f25dd3 100644 --- a/gui/themes/scummodern.zip +++ b/gui/themes/scummodern.zip 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' |