[Scummvm-git-logs] scummvm master -> b31d5ac2b9efe04fa717f6c39b4ce1526b55fd19
moralrecordings
code at moral.net.au
Sat Jan 11 03:27:46 UTC 2020
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
c565847240 DIRECTOR: LINGO: Allow b_length to cast from reference
b31d5ac2b9 DIRECTOR: Align fill patterns to global origin
Commit: c56584724049a609a31f49890c5dd9bec2a085b4
https://github.com/scummvm/scummvm/commit/c56584724049a609a31f49890c5dd9bec2a085b4
Author: Scott Percival (code at moral.net.au)
Date: 2020-01-11T11:25:23+08:00
Commit Message:
DIRECTOR: LINGO: Allow b_length to cast from reference
Changed paths:
engines/director/lingo/lingo-builtins.cpp
engines/director/sprite.cpp
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index b7c32dd..e02ac63 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -495,6 +495,8 @@ void LB::b_hilite(int nargs) {
void LB::b_length(int nargs) {
Datum d = g_lingo->pop();
+ if (d.type == REFERENCE)
+ d.toString();
if (d.type != STRING)
error("Incorrect type for 'length' function: %s", d.type2str());
diff --git a/engines/director/sprite.cpp b/engines/director/sprite.cpp
index 4a741c3..d953eba 100644
--- a/engines/director/sprite.cpp
+++ b/engines/director/sprite.cpp
@@ -129,7 +129,7 @@ uint16 Sprite::getPattern() {
warning("Sprite::getPattern(): Unhandled cast type: %d", _cast->_type);
break;
}
-
+ // fallthrough
default:
return 0;
}
Commit: b31d5ac2b9efe04fa717f6c39b4ce1526b55fd19
https://github.com/scummvm/scummvm/commit/b31d5ac2b9efe04fa717f6c39b4ce1526b55fd19
Author: Scott Percival (code at moral.net.au)
Date: 2020-01-11T11:27:21+08:00
Commit Message:
DIRECTOR: Align fill patterns to global origin
Changed paths:
engines/director/frame.cpp
engines/director/score.cpp
graphics/macgui/macwindowmanager.cpp
graphics/macgui/macwindowmanager.h
diff --git a/engines/director/frame.cpp b/engines/director/frame.cpp
index 28be1c5..71bbc34 100644
--- a/engines/director/frame.cpp
+++ b/engines/director/frame.cpp
@@ -727,8 +727,8 @@ void Frame::renderShape(Graphics::ManagedSurface &surface, uint16 spriteId) {
tmpSurface.clear(255);
// No minus one on the pattern here! MacPlotData will do that for us!
- //Graphics::MacPlotData pd(&tmpSurface, &_vm->getPatterns(), 1, 1, sp->_backColor);
- Graphics::MacPlotData pd(&tmpSurface, &_vm->getPatterns(), sp->getPattern(), lineSize, backColor);
+ //Graphics::MacPlotData pd(&tmpSurface, &_vm->getPatterns(), 1, 0, 0, 1, sp->_backColor);
+ Graphics::MacPlotData pd(&tmpSurface, &_vm->getPatterns(), sp->getPattern(), -shapeRect.left, -shapeRect.top, lineSize, backColor);
Common::Rect fillRect(MAX((int)shapeRect.width() - lineSize, 0), MAX((int)shapeRect.height() - lineSize, 0));
switch (spriteType) {
@@ -797,7 +797,7 @@ void Frame::renderButton(Graphics::ManagedSurface &surface, uint16 spriteId) {
break;
case kTypeButton: {
_rect = Common::Rect(x, y, x + width, y + height + 3);
- Graphics::MacPlotData pd(&surface, &_vm->getMacWindowManager()->getPatterns(), Graphics::MacGUIConstants::kPatternSolid, 1, invert ? Graphics::kColorBlack : Graphics::kColorWhite);
+ Graphics::MacPlotData pd(&surface, &_vm->getMacWindowManager()->getPatterns(), Graphics::MacGUIConstants::kPatternSolid, 0, 0, 1, invert ? Graphics::kColorBlack : Graphics::kColorWhite);
Graphics::drawRoundRect(_rect, 4, 0, invert, Graphics::macDrawPixel, &pd);
addDrawRect(spriteId, _rect);
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 9cdc069..8b600e5 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -1518,7 +1518,7 @@ void Score::renderZoomBox(bool redraw) {
end = MIN(start + 3 - box->step % 2, 8);
}
- Graphics::MacPlotData pd(_surface, &_vm->_wm->getPatterns(), Graphics::kPatternCheckers, 1, 0);
+ Graphics::MacPlotData pd(_surface, &_vm->_wm->getPatterns(), Graphics::kPatternCheckers, 0, 0, 1, 0);
for (int i = start; i <= end; i++) {
Common::Rect r(box->start.left + (box->end.left - box->start.left) * i / 8,
diff --git a/graphics/macgui/macwindowmanager.cpp b/graphics/macgui/macwindowmanager.cpp
index 12cd391..1944805 100644
--- a/graphics/macgui/macwindowmanager.cpp
+++ b/graphics/macgui/macwindowmanager.cpp
@@ -295,7 +295,7 @@ void macDrawPixel(int x, int y, int color, void *data) {
uint yu = (uint)y;
*((byte *)p->surface->getBasePtr(xu, yu)) =
- (pat[yu % 8] & (1 << (7 - xu % 8))) ?
+ (pat[(yu - p->fillOriginY) % 8] & (1 << (7 - (xu - p->fillOriginX) % 8))) ?
color : p->bgColor;
}
} else {
@@ -310,7 +310,7 @@ void macDrawPixel(int x, int y, int color, void *data) {
uint xu = (uint)x; // for letting compiler optimize it
uint yu = (uint)y;
*((byte *)p->surface->getBasePtr(xu, yu)) =
- (pat[yu % 8] & (1 << (7 - xu % 8))) ?
+ (pat[(yu - p->fillOriginY) % 8] & (1 << (7 - (xu - p->fillOriginX) % 8))) ?
color : p->bgColor;
}
}
@@ -319,7 +319,7 @@ void macDrawPixel(int x, int y, int color, void *data) {
void MacWindowManager::drawDesktop() {
Common::Rect r(_screen->getBounds());
- MacPlotData pd(_screen, &_patterns, kPatternCheckers, 1, _colorWhite);
+ MacPlotData pd(_screen, &_patterns, kPatternCheckers, 0, 0, 1, _colorWhite);
Graphics::drawRoundRect(r, kDesktopArc, _colorBlack, true, macDrawPixel, &pd);
diff --git a/graphics/macgui/macwindowmanager.h b/graphics/macgui/macwindowmanager.h
index c412e64..5846bcb 100644
--- a/graphics/macgui/macwindowmanager.h
+++ b/graphics/macgui/macwindowmanager.h
@@ -83,11 +83,13 @@ struct MacPlotData {
Graphics::ManagedSurface *surface;
MacPatterns *patterns;
uint fillType;
+ int fillOriginX;
+ int fillOriginY;
int thickness;
uint bgColor;
- MacPlotData(Graphics::ManagedSurface *s, MacPatterns *p, int f, int t, uint bg) :
- surface(s), patterns(p), fillType(f), thickness(t), bgColor(bg) {
+ MacPlotData(Graphics::ManagedSurface *s, MacPatterns *p, uint f, int fx, int fy, int t, uint bg) :
+ surface(s), patterns(p), fillType(f), fillOriginX(fx), fillOriginY(fy), thickness(t), bgColor(bg) {
}
};
More information about the Scummvm-git-logs
mailing list