[Scummvm-git-logs] scummvm master -> 3d4e5988c42d791287227f24fd52decf931759a3

neuromancer noreply at scummvm.org
Fri Dec 31 16:27:40 UTC 2021


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
3d4e5988c4 HYPNO: added a few ending and missing scenes in spider


Commit: 3d4e5988c42d791287227f24fd52decf931759a3
    https://github.com/scummvm/scummvm/commit/3d4e5988c42d791287227f24fd52decf931759a3
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2021-12-31T17:27:27+01:00

Commit Message:
HYPNO: added a few ending and missing scenes in spider

Changed paths:
    engines/hypno/spider/spider.cpp


diff --git a/engines/hypno/spider/spider.cpp b/engines/hypno/spider/spider.cpp
index ce3f2ab673c..50c2161222c 100644
--- a/engines/hypno/spider/spider.cpp
+++ b/engines/hypno/spider/spider.cpp
@@ -212,7 +212,7 @@ void SpiderEngine::loadAssetsFullGame() {
 	sc = (Scene *) _levels["decide1.mi_"];
 	cl = new ChangeLevel("bank.mi_");
 	sc->hots[2].actions.push_back(cl);
-	cl = new ChangeLevel("c1"); // depens on the difficulty
+	cl = new ChangeLevel("c1");
 	sc->hots[4].actions.push_back(cl);
 
 	loadSceneLevel("bank.mi_", "", prefix);
@@ -438,16 +438,17 @@ void SpiderEngine::loadAssetsFullGame() {
 	_levels["<trans_apt_6>"] = trans_apt_6;
 
 	loadSceneLevel("ball1.mi_", "<note>", prefix);
-	loadSceneLevel("ball2.mi_", "balcony.mi_", prefix);
-	loadSceneLevel("balcony.mi_", "factory1.mi_", prefix);
-	// This scene seems to correspond with the dance ones, but I don't know how to trigger them
-	loadSceneLevel("coat.mi_", "???", prefix);
+	loadSceneLevel("coat.mi_", "ball2.mi_", prefix);
 
 	Code *note = new Code();
 	note->name = "<note>";
-	note->levelIfWin = "ball2.mi_";
+	note->levelIfWin = "coat.mi_";
 	_levels["<note>"] = note;
 
+	loadSceneLevel("ball2.mi_", "balcony.mi_", prefix);
+	_levels["ball2.mi_"]->intros.push_back("cine/register.smk");
+	loadSceneLevel("balcony.mi_", "factory1.mi_", prefix);
+
 	loadSceneLevel("factory1.mi_", "intercom.mi_", prefix);
 	_levels["factory1.mi_"]->intros.push_back("cine/swc003s.smk");
 	loadSceneLevel("intercom.mi_", "c3", prefix);
@@ -461,9 +462,11 @@ void SpiderEngine::loadAssetsFullGame() {
 	loadArcadeLevel("c6.mi_", "<lock>", "spider");
 	_levels["c6.mi_"]->intros.push_back("cine/vrfs002s.smk");
 	_levels["c6.mi_"]->intros.push_back("cine/dia007s.smk");
+	_levels["c6.mi_"]->intros.push_back("cine/rdss001s.smk");
 
 	Code *lock = new Code();
 	lock->name = "<lock>";
+	lock->intros.push_back("cine/rdss003s.smk");
 	lock->levelIfWin = "movie2.mi_";
 	_levels["<lock>"] = lock;
 
@@ -516,17 +519,28 @@ void SpiderEngine::loadAssetsFullGame() {
 	loadArcadeLevel("c13h.mi_", "<after_c13>", prefix);
 	_levels["c13h.mi_"]->intros.push_back("cine/spf007bs.smk");
 
-	Transition *after_c13 = new Transition("c12");
+	Transition *after_c13 = new Transition("docoffi2.mi_");
 	after_c13->intros.push_back("spider/cine/vrfs06bs.smk");
+	//after_c13->intros.push_back("spider/cine/spv064s.smk"); low-quality version?
 	_levels["<after_c13>"] = after_c13;
 
+	loadSceneLevel("docoffi2.mi_", "c12a", prefix);
+
+	loadArcadeLevel("c12.mi_", "<chip_lives_with_spiderman>", prefix);
+	_levels["c12.mi_"]->levelIfLose = "<vr_death>";
+	_levels["c12a.mi_"] = _levels["c12.mi_"];
+
+	loadArcadeLevel("c12h.mi_", "<chip_lives_with_spiderman>", prefix);
+	_levels["c12.mi_"]->levelIfLose = "<vr_death>";
+	_levels["c12ah.mi_"] = _levels["c12h.mi_"];
+
 	loadSceneLevel("decide8.mi_", "", prefix);
 	sc = (Scene *) _levels["decide8.mi_"];
 
 	cl = new ChangeLevel("c8");
 	sc->hots[2].actions.push_back(cl);
 
-	cl = new ChangeLevel("c9"); // TODO
+	cl = new ChangeLevel("c9");
 	sc->hots[4].actions.push_back(cl);
 
 	loadArcadeLevel("c8.mi_", "<after_c8>", prefix);
@@ -544,7 +558,7 @@ void SpiderEngine::loadAssetsFullGame() {
 	_levels["c9h.mi_"]->intros.push_back("cine/vrfs005s.smk");
 
 	Transition *after_c9 = new Transition("c10");
-	after_c9->intros.push_back("spider/cine/utns006s.smk");
+	after_c9->intros.push_back("spider/cine/vrfs006s.smk");
 	_levels["<after_c9>"] = after_c9;
 
 	loadArcadeLevel("c10.mi_", "<after_c10>", prefix);
@@ -556,32 +570,83 @@ void SpiderEngine::loadAssetsFullGame() {
 	after_c10->intros.push_back("spider/cine/utns004s.smk");
 	_levels["<after_c10>"] = after_c10;
 
-	loadSceneLevel("docoffic.mi_", "decide9.mi_", prefix);
-	//_levels["docoffic.mi_"]->intros.push_back("cine/????.smk");
-	_levels["decide9_0.mi_"] = _levels["decide9"];
+	loadSceneLevel("docoffic.mi_", "decide9_shocker.mi_", prefix);
+	_levels["docoffic_shocker.mi_"] = _levels["docoffic.mi_"];
 
 	loadSceneLevel("decide9.mi_", "", prefix);
+	sc = (Scene *) _levels["decide9.mi_"];
+	sc->intros.push_back("cine/doocin1.smk");
+
+	cl = new ChangeLevel("c11s");
+	sc->hots[2].actions.push_back(cl);
+
+	cl = new ChangeLevel("c12s");
+	sc->hots[4].actions.push_back(cl);
+
+	_levels["decide9_shocker.mi_"] = _levels["decide9.mi_"];
+
+	// Octopus fight without Mason
+	loadArcadeLevel("c11.mi_", "<chip_dies_with_shocker>", prefix);
+	_levels["c11.mi_"]->levelIfLose = "????";
+	_levels["c11s.mi_"] = _levels["c11.mi_"];
+	loadArcadeLevel("c11h.mi_", "<chip_dies_with_shocker>", prefix);
+	_levels["c11h.mi_"]->levelIfLose = "????";
+	_levels["c11sh.mi_"] = _levels["c11h.mi_"];
+
+	loadArcadeLevel("c12.mi_", "<chip_lives_with_shocker>", prefix);
+	_levels["c12.mi_"]->levelIfLose = "<vr_death>";
+	_levels["c12s.mi_"] = _levels["c12.mi_"];
+
+	loadArcadeLevel("c12h.mi_", "<chip_lives_with_shocker>", prefix);
+	_levels["c12.mi_"]->levelIfLose = "<vr_death>";
+	_levels["c12sh.mi_"] = _levels["c12h.mi_"];
+
+	//_levels["docoffic.mi_"]->intros.push_back("cine/????.smk");
+	//_levels["decide9_0.mi_"] = _levels["decide9"];
 
 	loadSceneLevel("decide10.mi_", "", prefix);
 	sc = (Scene *) _levels["decide10.mi_"];
 	sc->intros.push_back("cine/dia012s.smk");
 
-	cl = new ChangeLevel("docoffi1.mi_");
+	cl = new ChangeLevel("docoffi1_alone.mi_");
 	sc->hots[2].actions.push_back(cl);
 
 	cl = new ChangeLevel("<dont_believe_mason>");
 	sc->hots[4].actions.push_back(cl);
 
-	loadSceneLevel("docoffi1.mi_", "decide9.mi_", prefix);
+	loadSceneLevel("docoffi1.mi_", "decide9_mason.mi_", prefix);
+	_levels["docoffi1.mi_"]->intros.push_back("cine/doos002s.smk");
 	_levels["docoffi1.mi_"]->intros.push_back("cine/doocin2s.smk");
-	_levels["decide9_1.mi_"] = _levels["decide9"];
+	_levels["docoffi1_mason.mi_"] = _levels["docoffi1.mi_"];
+	
+	loadSceneLevel("decide9.mi_", "", prefix);
+	sc = (Scene *) _levels["decide9.mi_"];
+	//sc->intros.push_back("cine/dia012s.smk");
 
-	loadArcadeLevel("c12.mi_", "", prefix);
-	loadArcadeLevel("c12h.mi_", "", prefix);
+	cl = new ChangeLevel("c11m");
+	sc->hots[2].actions.push_back(cl);
+
+	cl = new ChangeLevel("c12m");
+	sc->hots[4].actions.push_back(cl);
+
+	_levels["decide9_mason.mi_"] = _levels["decide9.mi_"];
 
 	// No c7/c7h level?
-	loadArcadeLevel("c11.mi_", "", prefix);
+	// Octopus fight with Mason
+	loadArcadeLevel("c11.mi_", "<chip_dies_with_mason>", prefix);
+	_levels["c11.mi_"]->levelIfLose = "????";
+	_levels["c11m.mi_"] = _levels["c11.mi_"];
 	loadArcadeLevel("c11h.mi_", "", prefix);
+	_levels["c11h.mi_"]->levelIfLose = "????";
+	_levels["c11mh.mi_"] = _levels["c11h.mi_"];
+
+	loadArcadeLevel("c12.mi_", "<chip_lives_with_mason>", prefix);
+	_levels["c12.mi_"]->levelIfLose = "<vr_death>";
+	_levels["c12m.mi_"] = _levels["c12.mi_"];
+
+	loadArcadeLevel("c12h.mi_", "<chip_lives_with_mason>", prefix);
+	_levels["c12.mi_"]->levelIfLose = "<vr_death>";
+	_levels["c12mh.mi_"] = _levels["c12h.mi_"];
 
 	loadArcadeLevel("c6h.mi_", "<lock>", prefix);
 	_levels["c6h.mi_"]->intros.push_back("cine/vrfs002s.smk");
@@ -603,13 +668,47 @@ void SpiderEngine::loadAssetsFullGame() {
 	over_bus->intros.push_back("spider/cine/apt04as.smk");
 	_levels["<over_bus>"] = over_bus;
 
+	Transition *over_vr = new Transition("tryagain.mi_");
+	over_vr->intros.push_back("spider/cine/TODO.smk");
+	_levels["<over_vr>"] = over_vr;
+
+	// Endings
+
+	// Worst ending
 	Transition *dont_believe_mason = new Transition("<credits>");
 	dont_believe_mason->intros.push_back("spider/cine/doos004s.smk");
+	dont_believe_mason->intros.push_back("spider/cine/apts008s.smk");
 	_levels["<dont_believe_mason>"] = dont_believe_mason;
 
-	Transition *over_apt_7 = new Transition("<credits>");
-	over_apt_7->intros.push_back("spider/cine/apts007s.smk");
-	_levels["<over_apt_7>"] = over_apt_7;
+	Transition *chip_dies_with_mason = new Transition("<credits>");
+	chip_dies_with_mason->intros.push_back("spider/cine/doos003s.smk");
+	chip_dies_with_mason->intros.push_back("spider/cine/vrws002s.smk");
+	_levels["<chip_dies_with_mason>"] = chip_dies_with_mason;
+
+	Transition *chip_dies_with_shocker = new Transition("<credits>");
+	chip_dies_with_shocker->intros.push_back("spider/cine/doos001s.smk");
+	chip_dies_with_shocker->intros.push_back("spider/cine/vrws001s.smk");
+	_levels["<chip_dies_with_shocker>"] = chip_dies_with_shocker;
+
+	// Unreachable?
+	Transition *chip_dies_with_spiderman = new Transition("<credits>");
+	chip_dies_with_spiderman->intros.push_back("spider/cine/vrws010s.smk");
+	_levels["<chip_dies_with_spiderman>"] = chip_dies_with_spiderman;
+
+	Transition *chip_lives_with_mason = new Transition("<credits>");
+	chip_lives_with_mason->intros.push_back("spider/cine/vrja001s.smk");
+	_levels["<chip_lives_with_mason>"] = chip_lives_with_mason;
+
+	Transition *chip_lives_with_shocker = new Transition("<credits>");
+	chip_lives_with_shocker->intros.push_back("spider/cine/vrja002s.smk");
+	chip_lives_with_shocker->intros.push_back("spider/cine/apts06cs.smk");
+	_levels["<chip_lives_with_shocker>"] = chip_lives_with_shocker;
+
+	// Best ending
+	Transition *chip_lives_with_spiderman = new Transition("<credits>");
+	chip_lives_with_spiderman->intros.push_back("spider/cine/vrja003s.smk");
+	chip_lives_with_spiderman->intros.push_back("spider/cine/wins001s.smk");
+	_levels["<chip_lives_with_spiderman>"] = chip_lives_with_spiderman;
 
 	_nextLevel = "<start>";
 }
@@ -691,7 +790,7 @@ Common::String SpiderEngine::findNextLevel(const Transition *trans) {
 }
 
 Common::String SpiderEngine::findNextLevel(const Common::String &level) {
-	if (Common::matchString(level.c_str(), "c#") || Common::matchString(level.c_str(), "c##"))
+	if (Common::matchString(level.c_str(), "c#") || Common::matchString(level.c_str(), "c##") || Common::matchString(level.c_str(), "c##?"))
 		return level + (_sceneState["GS_COMBATLEVEL"] == 0 ? "" : "h") + ".mi_";
 	else {
 		return level;




More information about the Scummvm-git-logs mailing list