[Scummvm-git-logs] scummvm master -> c9d56e60f504abe660178b96a437ffb8e81e0748
neuromancer
neuromancer at users.noreply.github.com
Mon Nov 8 22:02:58 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:
c9d56e60f5 HYPNO: fixed player position and shots in spider-man game + loading of more levels
Commit: c9d56e60f504abe660178b96a437ffb8e81e0748
https://github.com/scummvm/scummvm/commit/c9d56e60f504abe660178b96a437ffb8e81e0748
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2021-11-08T23:02:46+01:00
Commit Message:
HYPNO: fixed player position and shots in spider-man game + loading of more levels
Changed paths:
engines/hypno/arcade.cpp
engines/hypno/scene.cpp
engines/hypno/spider/arcade.cpp
engines/hypno/spider/spider.cpp
diff --git a/engines/hypno/arcade.cpp b/engines/hypno/arcade.cpp
index 300a1f253d..bcacf44367 100644
--- a/engines/hypno/arcade.cpp
+++ b/engines/hypno/arcade.cpp
@@ -217,6 +217,7 @@ void HypnoEngine::runArcade(ArcadeShooting *arc) {
MVideo video(arc->defeatVideos.front(), Common::Point(0, 0), false, false, false);
runIntro(video);
}
+ assert(!arc->levelIfLose.empty());
_nextLevel = arc->levelIfLose;
debugC(1, kHypnoDebugArcade, "Losing level and jumping to %s", _nextLevel.c_str());
break;
@@ -236,6 +237,7 @@ void HypnoEngine::runArcade(ArcadeShooting *arc) {
MVideo video(arc->winVideos.front(), Common::Point(0, 0), false, false, false);
runIntro(video);
}
+ assert(!arc->levelIfWin.empty());
_nextLevel = arc->levelIfWin;
debugC(1, kHypnoDebugArcade, "Wining level and jumping to %s", _nextLevel.c_str());
break;
diff --git a/engines/hypno/scene.cpp b/engines/hypno/scene.cpp
index 75b6e66c77..afa248e1c6 100644
--- a/engines/hypno/scene.cpp
+++ b/engines/hypno/scene.cpp
@@ -386,7 +386,10 @@ void HypnoEngine::runScene(Scene *scene) {
_nextSequentialVideoToPlay.empty() &&
_nextParallelVideoToPlay.empty()) {
debugC(1, kHypnoDebugScene, "Wining level and jumping to %s", scene->levelIfWin.c_str());
- _nextLevel = scene->levelIfWin;
+ if (_nextLevel.empty()) {
+ assert(!scene->levelIfWin.empty());
+ _nextLevel = scene->levelIfWin;
+ }
continue;
}
}
diff --git a/engines/hypno/spider/arcade.cpp b/engines/hypno/spider/arcade.cpp
index b5d5cf8351..39111c6a22 100644
--- a/engines/hypno/spider/arcade.cpp
+++ b/engines/hypno/spider/arcade.cpp
@@ -28,47 +28,61 @@
namespace Hypno {
-static const int orientationIndex[9] = {0, 1, 2, 7, 8, 3, 6, 5, 4};
+static const int oIndexYB[9] = {0, 1, 2, 7, 8, 3, 6, 5, 4};
+static const int oIndexYE[9] = {4, 3, 2, 1, 0};
static const int shootOriginIndex[9][2] = {
{41, 3}, {51, 3}, {65, 6}, {68, 9}, {71, 22}, {57, 20}, {37, 14}, {37, 11}, {57, 20}};
void SpiderEngine::drawShoot(const Common::Point &target) {
uint32 c = _pixelFormat.RGBToColor(255, 255, 255);
- uint32 idx = MIN(2, target.x / (_screenW / 3)) + 3 * MIN(2, target.y / (_screenH / 3));
- uint32 ox = 60 + shootOriginIndex[idx][0];
- uint32 oy = 129 + shootOriginIndex[idx][1];
+ uint32 ox;
+ uint32 oy;
+
+ if (_arcadeMode == "YC") {
+ return; // Nothing to shoot
+ } else if (_arcadeMode == "YE") {
+ ox = _screenW/2;
+ oy = _screenH - _playerFrames[0]->h/2;
+ } else if (_arcadeMode == "YB") {
+ uint32 idx = MIN(2, target.x / (_screenW / 3)) + 3 * MIN(2, target.y / (_screenH / 3));
+ ox = 60 + shootOriginIndex[idx][0];
+ oy = 129 + shootOriginIndex[idx][1];
+ }
_compositeSurface->drawLine(ox, oy, target.x + 2, target.y, c);
_compositeSurface->drawLine(ox, oy, target.x, target.y, c);
_compositeSurface->drawLine(ox, oy, target.x - 2, target.y, c);
+
playSound(_soundPath + _shootSound, 1);
}
void SpiderEngine::drawPlayer() {
+ uint32 ox;
+ uint32 oy;
if (_arcadeMode == "YC") {
- drawImage(*_playerFrames[_playerPosition], 0, 0, true);
- return;
- }
-
- // if (_playerFrameSep == -1) {
- // Common::Point mousePos = g_system->getEventManager()->getMousePos();
- // drawImage(*_playerFrames[0], MIN(MAX(10, int(mousePos.x)), _screenH-10), 129, true);
- // return;
- // }
-
-
- if (_playerFrameIdx < _playerFrameSep) {
+ ox = 0;
+ oy = 0;
+ _playerFrameIdx = _playerPosition;
+ } else if (_arcadeMode == "YE") {
Common::Point mousePos = g_system->getEventManager()->getMousePos();
- //uint32 idx = MIN(2, mousePos.x / (_screenW / 3)) + 3 * MIN(2, mousePos.y / (_screenH / 3));
- _playerFrameIdx = 4 - mousePos.x / (_screenW / 4);
- //debug("selecting index %d", _playerFrameIdx);
- //_playerFrameIdx = orientationIndex[idx];
- } else {
- _playerFrameIdx++;
- if (_playerFrameIdx >= (int)_playerFrames.size())
- _playerFrameIdx = 0;
+ uint32 idx = mousePos.x / (_screenW / 5);
+ _playerFrameIdx = oIndexYE[idx];
+ ox = _screenW / 2 - _playerFrames[0]->w / 2;
+ oy = _screenH - _playerFrames[0]->h;
+ } else if (_arcadeMode == "YB") {
+ ox = 60;
+ oy = 129;
+ if (_playerFrameIdx < _playerFrameSep) {
+ Common::Point mousePos = g_system->getEventManager()->getMousePos();
+ uint32 idx = MIN(2, mousePos.x / (_screenW / 3)) + 3 * MIN(2, mousePos.y / (_screenH / 3));
+ _playerFrameIdx = oIndexYB[idx];
+ } else {
+ _playerFrameIdx++;
+ if (_playerFrameIdx >= (int)_playerFrames.size())
+ _playerFrameIdx = 0;
+ }
}
- drawImage(*_playerFrames[_playerFrameIdx], _screenW/2 - 15, _screenH-50, true);
+ drawImage(*_playerFrames[_playerFrameIdx], ox, oy, true);
}
void SpiderEngine::drawHealth() {
diff --git a/engines/hypno/spider/spider.cpp b/engines/hypno/spider/spider.cpp
index 1d58d7afe1..2dbdbff5c3 100644
--- a/engines/hypno/spider/spider.cpp
+++ b/engines/hypno/spider/spider.cpp
@@ -54,6 +54,9 @@ void SpiderEngine::loadAssetsFullGame() {
if (missions == nullptr || missions->listMembers(files) == 0)
error("Failed to load any file from missions.lib");
+ Scene *sc;
+ ChangeLevel *cl;
+
loadSceneLevel("mainmenu.mi_", "", prefix);
loadSceneLevel("tryagain.mi_", "", prefix);
loadSceneLevel("options.mi_", "", prefix);
@@ -65,6 +68,14 @@ void SpiderEngine::loadAssetsFullGame() {
loadSceneLevel("roof.mi_", "decide1.mi_", prefix);
loadSceneLevel("decide1.mi_", "", prefix);
+ sc = (Scene *) _levels["decide1.mi_"];
+ cl = new ChangeLevel("bank.mi_");
+ sc->hots[1].actions.push_back(cl);
+ cl = new ChangeLevel("c1.mi_");
+ sc->hots[4].actions.push_back(cl);
+
+ loadSceneLevel("bank.mi_", "", prefix);
+ //loadSceneLevel("busintro.mi_", "", prefix);
loadArcadeLevel("c1", "", "spider");
loadArcadeLevel("c2", "", "spider");
@@ -72,8 +83,13 @@ void SpiderEngine::loadAssetsFullGame() {
loadArcadeLevel("c4", "", "spider");
loadArcadeLevel("c5", "", "spider");
//loadArcadeLevel("c6", "", "spider");
+ // No c7 level?
loadArcadeLevel("c8", "", "spider");
loadArcadeLevel("c9", "", "spider");
+ loadArcadeLevel("c10", "", "spider");
+ loadArcadeLevel("c11", "", "spider");
+ loadArcadeLevel("c12", "", "spider");
+ loadArcadeLevel("c13", "", "spider");
// start level
Transition *start = new Transition();
@@ -82,8 +98,8 @@ void SpiderEngine::loadAssetsFullGame() {
start->intros.push_back("spider/cine/dcine2.smk");
_levels["<start>"] = start;
- Scene *sc = (Scene *) _levels["mainmenu.mi_"];
- ChangeLevel *cl = new ChangeLevel("levels.mi_");
+ sc = (Scene *) _levels["mainmenu.mi_"];
+ cl = new ChangeLevel("levels.mi_");
sc->hots[1].actions.push_back(cl);
cl = new ChangeLevel("options.mi_");
More information about the Scummvm-git-logs
mailing list