HYPNO: fixes in puzzles and menu in spider

This commit is contained in:
neuromancer 2022-01-17 09:58:43 +01:00
parent 23348808e0
commit b7c06ee881
3 changed files with 21 additions and 13 deletions

View File

@ -71,13 +71,12 @@ void HypnoEngine::runMenu(Hotspots hs) {
if (_conversation.empty()) {
if (h.flags[0] == "HINTS" || h.flags[1] == "HINTS" || h.flags[2] == "HINTS")
loadImage("int_main/hint1.smk", 0, 0, true);
else if (h.flags[0] == "AUTO_BUTTONS") {
else if (h.flags[0] == "AUTO_BUTTONS" || h.flags[0] == "SINGLE_RUN") {
if (isDemo())
loadImage("int_main/resume.smk", 0, 0, true, false, 0);
else
loadImage("int_main/menu.smk", 0, 0, true, false, 0);
}
}
}

View File

@ -174,7 +174,7 @@ void SpiderEngine::addIngredient(Code *code) {
void SpiderEngine::checkMixture(Code *code) {
_nextLevel = "bushard2.mi_";
if (ingredients[0]) {
MVideo video("spider/cine/blcs005s.smk", Common::Point(0, 0), false, true, false);
MVideo video("cine/blcs005s.smk", Common::Point(0, 0), false, true, false);
runIntro(video);
memset(ingredients, 0, 7);
return;
@ -191,7 +191,7 @@ void SpiderEngine::checkMixture(Code *code) {
for (int i = 1; i < 7; i++) {
if (!ingredients[i]) {
MVideo video("spider/cine/blcs005s.smk", Common::Point(0, 0), false, true, false);
MVideo video("cine/blcs005s.smk", Common::Point(0, 0), false, true, false);
runIntro(video);
memset(ingredients, 0, 7);
return;
@ -558,20 +558,20 @@ void SpiderEngine::runFileCabinet(Code *code) {
sel[4] = Common::Rect(453, 176, 526, 301);
sel[5] = Common::Rect(545, 176, 618, 301);
Common::String intro = "spider/cine/spv040s.smk";
Common::String intro = "cine/spv040s.smk";
if (!_intros.contains(intro)) {
MVideo v(intro, Common::Point(0, 0), false, false, false);
runIntro(v);
_intros[intro] = true;
}
Frames nums = decodeFrames("spider/int_alof/combo.smk");
Frames nums = decodeFrames("int_alof/combo.smk");
if (nums.size() != 10)
error("Invalid number of digits: %d", nums.size());
defaultCursor();
Common::Rect back(0, 446, 640, 480);
loadImage("spider/int_alof/combobg.smk", 0, 0, false, true);
loadImage("int_alof/combobg.smk", 0, 0, false, true);
for (int i = 0; i < 6; i++) {
drawImage(*nums[comb[i]], sel[i].left, sel[i].top, true);
}
@ -589,8 +589,9 @@ void SpiderEngine::runFileCabinet(Code *code) {
case Common::EVENT_LBUTTONDOWN:
if (back.contains(mousePos)) {
if (comb[0] == 3 && comb[1] == 2 && comb[2] == 5 && comb[3] == 7 && comb[4] == 0 && comb[5] == 1) {
MVideo v("spider/cine/file0000.smk", Common::Point(0, 0), false, false, false);
if ((_sceneState["GS_PUZZLELEVEL"] == 0 && comb[0] == 3 && comb[1] == 2 && comb[2] == 5 && comb[3] == 7 && comb[4] == 0 && comb[5] == 1) \
|| (_sceneState["GS_PUZZLELEVEL"] == 1 && comb[0] == 2 && comb[1] == 2 && comb[2] == 5 && comb[3] == 7 && comb[4] == 1 && comb[5] == 6)) {
MVideo v("cine/file0000.smk", Common::Point(0, 0), false, false, false);
runIntro(v);
_sceneState["GS_SWITCH0"] = 1;
}
@ -604,7 +605,7 @@ void SpiderEngine::runFileCabinet(Code *code) {
comb[i] = (comb[i] + 1) % 10;
}
loadImage("spider/int_alof/combobg.smk", 0, 0, false, true);
loadImage("int_alof/combobg.smk", 0, 0, false, true);
for (int i = 0; i < 6; i++) {
drawImage(*nums[comb[i]], sel[i].left, sel[i].top, true);
}
@ -619,7 +620,7 @@ void SpiderEngine::runFileCabinet(Code *code) {
comb[i] = comb[i] - 1;
}
loadImage("spider/int_alof/combobg.smk", 0, 0, false, true);
loadImage("int_alof/combobg.smk", 0, 0, false, true);
for (int i = 0; i < 6; i++) {
drawImage(*nums[comb[i]], sel[i].left, sel[i].top, true);
}
@ -685,7 +686,7 @@ void SpiderEngine::runLock(Code *code) {
if (act.contains(mousePos)) {
if (_sceneState["GS_PUZZLELEVEL"] == 0 && comb[0] == 4 && comb[1] == 0 && comb[2] == 3 && comb[3] == 1 && comb[4] == 2) {
_nextLevel = code->levelIfWin;
} else if (_sceneState["GS_PUZZLELEVEL"] == 1 && comb[0] == 1 && comb[1] == 1 && comb[2] == 1 && comb[3] == 1 && comb[4] == 1) {
} else if (_sceneState["GS_PUZZLELEVEL"] == 1 && comb[0] == 1 && comb[1] == 3 && comb[2] == 4 && comb[3] == 2 && comb[4] == 0) {
_nextLevel = code->levelIfWin;
}
}

View File

@ -264,7 +264,7 @@ void SpiderEngine::loadAssetsFullGame() {
// Transitions
Transition *after_bank = new Transition("<trans_apt_2>");
after_bank->intros.push_back("spider/cine/blcs003.smk");
after_bank->intros.push_back("spider/cine/bals003s.smk");
_levels["<after_bank>"] = after_bank;
Transition *trans_apt_1 = new Transition("busint.mi_");
@ -482,6 +482,14 @@ void SpiderEngine::loadAssetsFullGame() {
_levels["<file_cabinet>"] = file_cabinet;
loadSceneLevel("alverofh.mi_", "", prefix);
sc = (Scene *) _levels["alverofh.mi_"];
cl = new ChangeLevel("<tape>");
sc->hots[2].actions.push_back(cl);
cl = new ChangeLevel("<file_cabinet>");
sc->hots[3].actions.push_back(cl);
loadSceneLevel("alveroff.mi_", "", prefix);
sc = (Scene *) _levels["alveroff.mi_"];