aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/screen.cpp
diff options
context:
space:
mode:
authorFlorian Kagerer2009-10-10 18:45:33 +0000
committerFlorian Kagerer2009-10-10 18:45:33 +0000
commit7c065c84cb3fce9c86f93956cd0bfdda24bd6388 (patch)
tree822c1ca54f1a59aede193eb5acf4c3ad4f1fbb5b /engines/kyra/screen.cpp
parent7f2259d2801285eac9d56e01231c250d889069f7 (diff)
downloadscummvm-rg350-7c065c84cb3fce9c86f93956cd0bfdda24bd6388.tar.gz
scummvm-rg350-7c065c84cb3fce9c86f93956cd0bfdda24bd6388.tar.bz2
scummvm-rg350-7c065c84cb3fce9c86f93956cd0bfdda24bd6388.zip
LOL/PC-98: implemented drawing code for teleporters
svn-id: r44883
Diffstat (limited to 'engines/kyra/screen.cpp')
-rw-r--r--engines/kyra/screen.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/engines/kyra/screen.cpp b/engines/kyra/screen.cpp
index 69ebcbb649..1e568c2236 100644
--- a/engines/kyra/screen.cpp
+++ b/engines/kyra/screen.cpp
@@ -1395,7 +1395,8 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int
&Screen::drawShapePlotType13, // used by Kyra 1
&Screen::drawShapePlotType14, // used by Kyra 1 (invisibility)
&Screen::drawShapePlotType11_15, // used by Kyra 1 (invisibility)
- 0, 0, 0, 0,
+ &Screen::drawShapePlotType16, // used by LoL PC-98/16 Colors (teleporters),
+ 0, 0, 0,
&Screen::drawShapePlotType20, // used by LoL (heal spell effect)
&Screen::drawShapePlotType21, // used by LoL (white tower spirits)
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1969,6 +1970,13 @@ void Screen::drawShapePlotType14(uint8 *dst, uint8 cmd) {
*dst = cmd;
}
+void Screen::drawShapePlotType16(uint8 *dst, uint8 cmd) {
+ uint8 tOffs = _dsTable3[cmd];
+ if (!(tOffs & 0x80))
+ cmd = _dsTable4[tOffs << 8 | *dst];
+ *dst = cmd;
+}
+
void Screen::drawShapePlotType20(uint8 *dst, uint8 cmd) {
cmd = _dsTable2[cmd];
uint8 tOffs = _dsTable3[cmd];