aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorTravis Howell2006-03-27 12:49:17 +0000
committerTravis Howell2006-03-27 12:49:17 +0000
commit3bb25707b23720c23ed5206b9f8023f1381b5dae (patch)
treeb1cc2fd57b63acf3f0814e10c096860c415e37b5 /engines
parent23c692f09f513a6fc2119e3d42f9920e3bc388b0 (diff)
downloadscummvm-rg350-3bb25707b23720c23ed5206b9f8023f1381b5dae.tar.gz
scummvm-rg350-3bb25707b23720c23ed5206b9f8023f1381b5dae.tar.bz2
scummvm-rg350-3bb25707b23720c23ed5206b9f8023f1381b5dae.zip
Add FF support to dump_bitmap()
svn-id: r21464
Diffstat (limited to 'engines')
-rw-r--r--engines/simon/debug.cpp25
-rw-r--r--engines/simon/items.cpp7
-rw-r--r--engines/simon/module.mk1
-rw-r--r--engines/simon/simon.h1
4 files changed, 26 insertions, 8 deletions
diff --git a/engines/simon/debug.cpp b/engines/simon/debug.cpp
index 39e462782f..59e351052e 100644
--- a/engines/simon/debug.cpp
+++ b/engines/simon/debug.cpp
@@ -332,7 +332,7 @@ void dump_bmp(const char *filename, int w, int h, const byte *bytes, const uint3
fclose(out);
}
-static void dump_bitmap(const char *filename, const byte *offs, int w, int h, int flags, const byte *palette,
+void SimonEngine::dump_bitmap(const char *filename, const byte *offs, int w, int h, int flags, const byte *palette,
byte base)
{
/* allocate */
@@ -346,13 +346,22 @@ static void dump_bitmap(const char *filename, const byte *offs, int w, int h, in
state.dh = h;
state.y_skip = 0;
- for (i = 0; i != w; i += 2) {
- byte *c = vc10_depack_column(&state);
- for (j = 0; j != h; j++) {
- byte pix = c[j];
- b[j * w + i] = (pix >> 4) | base;
- b[j * w + i + 1] = (pix & 0xF) | base;
-
+ if (getGameType() == GType_FF) {
+ for (i = 0; i != w; i++) {
+ byte *c = vc10_depack_column(&state);
+ for (j = 0; j != h; j++) {
+ byte pix = c[j];
+ b[j * w + i] = pix;
+ }
+ }
+ } else {
+ for (i = 0; i != w; i += 2) {
+ byte *c = vc10_depack_column(&state);
+ for (j = 0; j != h; j++) {
+ byte pix = c[j];
+ b[j * w + i] = (pix >> 4) | base;
+ b[j * w + i + 1] = (pix & 0xF) | base;
+ }
}
}
diff --git a/engines/simon/items.cpp b/engines/simon/items.cpp
index 0672f6286a..defa75e60a 100644
--- a/engines/simon/items.cpp
+++ b/engines/simon/items.cpp
@@ -23,6 +23,7 @@
// Item script opcodes for Simon1/Simon2
#include "common/stdafx.h"
+#include "simon/dxa_player.h"
#include "simon/simon.h"
#include "simon/intern.h"
@@ -1079,6 +1080,12 @@ int SimonEngine::runScript() {
case 183:{ /* unload beard */
if (getGameType() == GType_FF) {
+ DXA_Player p;
+ if (p.open((const char *)"icetrench.dxa")) {
+ p.play();
+ p.close();
+ }
+
// Play video
debug(1, "Play video");
} else if (getGameType() == GType_SIMON2) {
diff --git a/engines/simon/module.mk b/engines/simon/module.mk
index be8787e70a..6e625ee1fb 100644
--- a/engines/simon/module.mk
+++ b/engines/simon/module.mk
@@ -5,6 +5,7 @@ MODULE_OBJS := \
cursor.o \
debug.o \
debugger.o \
+ dxa_player.o \
game.o \
icons.o \
items.o \
diff --git a/engines/simon/simon.h b/engines/simon/simon.h
index 6a55020659..fed4dc6f44 100644
--- a/engines/simon/simon.h
+++ b/engines/simon/simon.h
@@ -840,6 +840,7 @@ protected:
void dump_vga_script_always(const byte *ptr, uint res, uint sprite_id);
void dump_vga_bitmaps(const byte *vga, byte *vga1, int res);
void dump_single_bitmap(int file, int image, const byte *offs, int w, int h, byte base);
+ void dump_bitmap(const char *filename, const byte *offs, int w, int h, int flags, const byte *palette, byte base);
void dx_clear_attached_from_top(uint lines);
void dx_copy_from_attached_to_2(uint x, uint y, uint w, uint h);