aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNipun Garg2019-06-08 23:12:56 +0530
committerEugene Sandulenko2019-09-03 17:16:46 +0200
commit55fd11ff6e900d7c8dd0ec7cac2bb69e0e8c0fca (patch)
tree56a02c4ff5e0033841889b208dd58cf6f65d2547
parent852182be208740fac93bf9a26672368bd6373b73 (diff)
downloadscummvm-rg350-55fd11ff6e900d7c8dd0ec7cac2bb69e0e8c0fca.tar.gz
scummvm-rg350-55fd11ff6e900d7c8dd0ec7cac2bb69e0e8c0fca.tar.bz2
scummvm-rg350-55fd11ff6e900d7c8dd0ec7cac2bb69e0e8c0fca.zip
HDB: Complete setSky() and drawSky()
-rw-r--r--engines/hdb/draw-manager.cpp26
1 files changed, 25 insertions, 1 deletions
diff --git a/engines/hdb/draw-manager.cpp b/engines/hdb/draw-manager.cpp
index 896f9a16f9..4845be664a 100644
--- a/engines/hdb/draw-manager.cpp
+++ b/engines/hdb/draw-manager.cpp
@@ -168,7 +168,7 @@ void DrawMan::setSky(int skyIndex) {
setup3DStarsLeft();
return;
} else if (skyIndex == _tileSkyStars) {
- warning("STUB: DRAWMAN::setSky: getPicture( CLOUDY_SKIES )");
+ _skyClouds = getPicture("cloudy_skies");
return;
}
}
@@ -214,6 +214,30 @@ void DrawMan::draw3DStarsLeft() {
}
}
+void DrawMan::drawSky() {
+ int tile = _skyTiles[_currentSky - 1];
+
+ if (tile == _tileSkyStars) {
+ draw3DStars();
+ }
+ else if (tile == _tileSkyStarsLeft) {
+ draw3DStarsLeft();
+ }
+ else if (tile == _tileSkyClouds) {
+ static int offset = 0, wait = 0;
+ for (int j = -64; j < kScreenHeight; j += 64) {
+ for (int i = -64; i < kScreenWidth; i += 64) {
+ _skyClouds->draw(i + offset, j + offset);
+ }
+ }
+ wait--;
+ if (wait < 1) {
+ offset = (offset + 1) & 63;
+ wait = 5;
+ }
+ }
+}
+
Picture::~Picture() {
_surface.free();
}