aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/gfx.cpp22
-rw-r--r--scumm/script_v2.cpp12
-rw-r--r--scumm/scumm.h1
-rw-r--r--scumm/scummvm.cpp6
-rw-r--r--scumm/verbs.cpp55
5 files changed, 92 insertions, 4 deletions
diff --git a/scumm/gfx.cpp b/scumm/gfx.cpp
index 396df69906..f9bf6d5836 100644
--- a/scumm/gfx.cpp
+++ b/scumm/gfx.cpp
@@ -2574,6 +2574,27 @@ void Scumm::setupEGAPalette() {
}
void Scumm::setupC64Palette() {
+ setPalColor( 0, 0, 0, 0);
+ setPalColor( 1, 252, 252, 252);
+ setPalColor( 2, 168, 0, 0);
+ setPalColor( 3, 0, 168, 168);
+ setPalColor( 4, 168, 0, 168);
+ setPalColor( 5, 0, 168, 0);
+ setPalColor( 6, 0, 0, 168);
+ setPalColor( 7, 252, 252, 84);
+ setPalColor( 8, 252, 84, 84);
+ setPalColor( 9, 168, 84, 0);
+ setPalColor(10, 252, 84, 84);
+ setPalColor(11, 84, 84, 84);
+ setPalColor(12, 168, 168, 168);
+ setPalColor(13, 84, 252, 84);
+ setPalColor(14, 84, 84, 252);
+ setPalColor(15, 168, 168, 168);
+}
+
+/* Old palette used in Commodre 64 versions
+
+void Scumm::setupC64Palette() {
setPalColor( 0, 0, 0, 0);
setPalColor( 1, 252, 252, 252);
setPalColor( 2, 204, 0, 0);
@@ -2591,6 +2612,7 @@ void Scumm::setupC64Palette() {
setPalColor(14, 136, 136, 252);
setPalColor(15, 204, 204, 204);
}
+*/
void Scumm::setPaletteFromPtr(const byte *ptr) {
int i;
diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp
index 9ff0224b36..821c5a7f3d 100644
--- a/scumm/script_v2.cpp
+++ b/scumm/script_v2.cpp
@@ -827,9 +827,15 @@ void Scumm_v2::o2_verbOps() {
vs = &_verbs[slot];
vs->verbid = verb;
- vs->color = 2;
- vs->hicolor = 14;
- vs->dimcolor = 8;
+ if (_version == 1) {
+ vs->color = 5;
+ vs->hicolor = 7;
+ vs->dimcolor = 11;
+ } else {
+ vs->color = 2;
+ vs->hicolor = 14;
+ vs->dimcolor = 8;
+ }
vs->type = kTextVerbType;
vs->charset_nr = _string[0].t_charset;
vs->curmode = 1;
diff --git a/scumm/scumm.h b/scumm/scumm.h
index f7140b26f7..81beb1a0b2 100644
--- a/scumm/scumm.h
+++ b/scumm/scumm.h
@@ -757,6 +757,7 @@ protected:
V2MouseoverBox v2_mouseover_boxes[7];
int8 v2_mouseover_box;
+ void initV1MouseOver();
void initV2MouseOver();
void checkV2MouseOver(ScummVM::Point pos);
void checkV2Inventory(int x, int y);
diff --git a/scumm/scummvm.cpp b/scumm/scummvm.cpp
index 03f59eabd5..58721e2a19 100644
--- a/scumm/scummvm.cpp
+++ b/scumm/scummvm.cpp
@@ -802,7 +802,11 @@ void Scumm::scummInit() {
}
if (_version <= 2) {
- initV2MouseOver();
+ if (_version == 1)
+ initV1MouseOver();
+ else
+ initV2MouseOver();
+
// Seems in V2 there was only a single room effect (iris),
// so we set that here.
_switchRoomEffect2 = 1;
diff --git a/scumm/verbs.cpp b/scumm/verbs.cpp
index 62a0b5a5c0..0004786e19 100644
--- a/scumm/verbs.cpp
+++ b/scumm/verbs.cpp
@@ -33,6 +33,61 @@ enum {
kSentenceLine = 6
};
+void Scumm::initV1MouseOver() {
+ int i;
+
+ v2_mouseover_box = -1;
+
+ // Inventory items
+
+ for (i = 0; i < 2; i++) {
+ v2_mouseover_boxes[2 * i].rect.left = 0;
+ v2_mouseover_boxes[2 * i].rect.right = 144;
+ v2_mouseover_boxes[2 * i].rect.top = 34 + 8 * i;
+ v2_mouseover_boxes[2 * i].rect.bottom = v2_mouseover_boxes[2 * i].rect.top + 8;
+
+ v2_mouseover_boxes[2 * i].color = 4;
+ v2_mouseover_boxes[2 * i].hicolor = 7;
+
+
+ v2_mouseover_boxes[2 * i + 1].rect.left = 176;
+ v2_mouseover_boxes[2 * i + 1].rect.right = 320;
+ v2_mouseover_boxes[2 * i + 1].rect.top = v2_mouseover_boxes[2 * i].rect.top;
+ v2_mouseover_boxes[2 * i + 1].rect.bottom = v2_mouseover_boxes[2 * i].rect.bottom;
+
+ v2_mouseover_boxes[2 * i + 1].color = 4;
+ v2_mouseover_boxes[2 * i + 1].hicolor = 7;
+ }
+
+ // Inventory arrows
+
+ v2_mouseover_boxes[kInventoryUpArrow].rect.left = 144;
+ v2_mouseover_boxes[kInventoryUpArrow].rect.right = 176;
+ v2_mouseover_boxes[kInventoryUpArrow].rect.top = 34;
+ v2_mouseover_boxes[kInventoryUpArrow].rect.bottom = 42;
+
+ v2_mouseover_boxes[kInventoryUpArrow].color = 6;
+ v2_mouseover_boxes[kInventoryUpArrow].hicolor = 7;
+
+ v2_mouseover_boxes[kInventoryDownArrow].rect.left = 144;
+ v2_mouseover_boxes[kInventoryDownArrow].rect.right = 176;
+ v2_mouseover_boxes[kInventoryDownArrow].rect.top = 42;
+ v2_mouseover_boxes[kInventoryDownArrow].rect.bottom = 50;
+
+ v2_mouseover_boxes[kInventoryDownArrow].color = 6;
+ v2_mouseover_boxes[kInventoryDownArrow].hicolor = 7;
+
+ // Sentence line
+
+ v2_mouseover_boxes[kSentenceLine].rect.left = 0;
+ v2_mouseover_boxes[kSentenceLine].rect.right = 320;
+ v2_mouseover_boxes[kSentenceLine].rect.top = 0;
+ v2_mouseover_boxes[kSentenceLine].rect.bottom = 6;
+
+ v2_mouseover_boxes[kSentenceLine].color = 4;
+ v2_mouseover_boxes[kSentenceLine].hicolor = 7;
+}
+
void Scumm::initV2MouseOver() {
int i;