diff --git a/scumm/gfx.cpp b/scumm/gfx.cpp index 7f2f1fc3a1f..cae41f997d7 100644 --- a/scumm/gfx.cpp +++ b/scumm/gfx.cpp @@ -2581,7 +2581,7 @@ void Scumm::setupV1ManiacPalette() { setPalColor(12, 168, 168, 168); setPalColor(13, 84, 252, 84); setPalColor(14, 84, 84, 252); - setPalColor(15, 84, 84, 84); + setPalColor(15, 252, 84, 252); } void Scumm::setupV1ZakPalette() { diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp index 917753cca56..fd2128b3b80 100644 --- a/scumm/script_v2.cpp +++ b/scumm/script_v2.cpp @@ -840,10 +840,11 @@ void Scumm_v2::o2_verbOps() { vs = &_verbs[slot]; vs->verbid = verb; if (_version == 1) { - if (_demo_mode) - vs->color = 4; - else - vs->color = 5; + if (_gameId == GID_MANIAC && _demo_mode) + vs->color = 15; + else + vs->color = 5; + vs->hicolor = 7; vs->dimcolor = 11; } else { @@ -1004,10 +1005,14 @@ void Scumm_v2::o2_drawSentence() { _string[2].charset = 1; _string[2].ypos = virtscr[2].topline; _string[2].xpos = 0; - if(_version == 1) - _string[2].color = 4; - else + if(_version == 1) { + if (_gameId == GID_MANIAC) + _string[2].color = 15; + else + _string[2].color = 4; + } else { _string[2].color = 13; + } char *ptr = sentence; int n = 0; @@ -1327,6 +1332,7 @@ void Scumm_v2::o2_roomOps() { VAR(VAR_CAMERA_MAX_X) = b; break; case 2: /* room color */ + warning("Remapping color %d to color %d", b, a); _shadowPalette[b] = a; _fullRedraw = true; break; diff --git a/scumm/scumm.h b/scumm/scumm.h index 5787cc450a5..4f81d779f0c 100644 --- a/scumm/scumm.h +++ b/scumm/scumm.h @@ -764,7 +764,6 @@ 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 7e432b3c97d..2b43cf0ed01 100644 --- a/scumm/scummvm.cpp +++ b/scumm/scummvm.cpp @@ -895,10 +895,7 @@ void Scumm::scummInit() { } if (_version <= 2) { - if (_version == 1) - initV1MouseOver(); - else - initV2MouseOver(); + initV2MouseOver(); // Seems in V2 there was only a single room effect (iris), // so we set that here. diff --git a/scumm/verbs.cpp b/scumm/verbs.cpp index 7331358b0c7..92d00bf4cc4 100644 --- a/scumm/verbs.cpp +++ b/scumm/verbs.cpp @@ -33,63 +33,23 @@ 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 = 32 + 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 = 32; - v2_mouseover_boxes[kInventoryUpArrow].rect.bottom = 40; - - 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 = 40; - v2_mouseover_boxes[kInventoryDownArrow].rect.bottom = 48; - - 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 = 8; - - v2_mouseover_boxes[kSentenceLine].color = 4; - v2_mouseover_boxes[kSentenceLine].hicolor = 7; -} - void Scumm::initV2MouseOver() { int i; + int arrow_color, color, hi_color; + + if (_version == 1) { + if (_gameId == GID_MANIAC) + color = 15; + else + color = 4; + + hi_color = 7; + arrow_color = 6; + } else { + color = 13; + hi_color = 14; + arrow_color = 1; + } v2_mouseover_box = -1; @@ -101,8 +61,8 @@ void Scumm::initV2MouseOver() { v2_mouseover_boxes[2 * i].rect.top = 32 + 8 * i; v2_mouseover_boxes[2 * i].rect.bottom = v2_mouseover_boxes[2 * i].rect.top + 8; - v2_mouseover_boxes[2 * i].color = 13; - v2_mouseover_boxes[2 * i].hicolor = 14; + v2_mouseover_boxes[2 * i].color = color; + v2_mouseover_boxes[2 * i].hicolor = hi_color; v2_mouseover_boxes[2 * i + 1].rect.left = 176; @@ -110,8 +70,8 @@ void Scumm::initV2MouseOver() { 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 = 13; - v2_mouseover_boxes[2 * i + 1].hicolor = 14; + v2_mouseover_boxes[2 * i + 1].color = color; + v2_mouseover_boxes[2 * i + 1].hicolor = hi_color; } // Inventory arrows @@ -121,16 +81,16 @@ void Scumm::initV2MouseOver() { v2_mouseover_boxes[kInventoryUpArrow].rect.top = 32; v2_mouseover_boxes[kInventoryUpArrow].rect.bottom = 40; - v2_mouseover_boxes[kInventoryUpArrow].color = 1; - v2_mouseover_boxes[kInventoryUpArrow].hicolor = 14; + v2_mouseover_boxes[kInventoryUpArrow].color = arrow_color; + v2_mouseover_boxes[kInventoryUpArrow].hicolor = hi_color; v2_mouseover_boxes[kInventoryDownArrow].rect.left = 144; v2_mouseover_boxes[kInventoryDownArrow].rect.right = 176; v2_mouseover_boxes[kInventoryDownArrow].rect.top = 40; v2_mouseover_boxes[kInventoryDownArrow].rect.bottom = 48; - v2_mouseover_boxes[kInventoryDownArrow].color = 1; - v2_mouseover_boxes[kInventoryDownArrow].hicolor = 14; + v2_mouseover_boxes[kInventoryDownArrow].color = arrow_color; + v2_mouseover_boxes[kInventoryDownArrow].hicolor = hi_color; // Sentence line @@ -139,8 +99,8 @@ void Scumm::initV2MouseOver() { v2_mouseover_boxes[kSentenceLine].rect.top = 0; v2_mouseover_boxes[kSentenceLine].rect.bottom = 8; - v2_mouseover_boxes[kSentenceLine].color = 13; - v2_mouseover_boxes[kSentenceLine].hicolor = 14; + v2_mouseover_boxes[kSentenceLine].color = color; + v2_mouseover_boxes[kSentenceLine].hicolor = hi_color; } void Scumm::checkV2MouseOver(ScummVM::Point pos) {