diff options
-rw-r--r-- | scumm/gfx.cpp | 22 | ||||
-rw-r--r-- | scumm/script_v2.cpp | 12 | ||||
-rw-r--r-- | scumm/scumm.h | 1 | ||||
-rw-r--r-- | scumm/scummvm.cpp | 6 | ||||
-rw-r--r-- | scumm/verbs.cpp | 55 |
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; |