[Scummvm-git-logs] scummvm master -> e6d5f716d69825d997c009819ebd03d65a0b0d3d

mgerhardy martin.gerhardy at gmail.com
Mon Jan 11 22:08:17 UTC 2021


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

Summary:
6a667efebd TWINE: prepare holomap trajectories
e6d5f716d6 TWINE: added keybindings for rotating the planet


Commit: 6a667efebdebe8bf4090405536c0bfe061736050
    https://github.com/scummvm/scummvm/commit/6a667efebdebe8bf4090405536c0bfe061736050
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-01-11T23:07:57+01:00

Commit Message:
TWINE: prepare holomap trajectories

Changed paths:
    engines/twine/holomap.cpp


diff --git a/engines/twine/holomap.cpp b/engines/twine/holomap.cpp
index 35a3c58f96..91134845de 100644
--- a/engines/twine/holomap.cpp
+++ b/engines/twine/holomap.cpp
@@ -25,13 +25,13 @@
 #include "common/memstream.h"
 #include "common/types.h"
 #include "twine/audio/sound.h"
-#include "twine/scene/gamestate.h"
-#include "twine/resources/hqr.h"
 #include "twine/menu/interface.h"
 #include "twine/renderer/redraw.h"
 #include "twine/renderer/renderer.h"
 #include "twine/renderer/screens.h"
+#include "twine/resources/hqr.h"
 #include "twine/resources/resources.h"
+#include "twine/scene/gamestate.h"
 #include "twine/scene/scene.h"
 #include "twine/text.h"
 #include "twine/twine.h"
@@ -145,7 +145,65 @@ void Holomap::drawHolomapText(int32 centerx, int32 top, const char *title) {
 
 void Holomap::drawHolomapTrajectory(int32 trajectoryIndex) {
 	debug("Draw trajectory index %i", trajectoryIndex);
-	// TODO
+#if 0
+	ScopedEngineFreeze timeFreeze(_engine);
+	_engine->_renderer->setCameraPosition(400, 240, 128, 1024, 1024);
+	ActorMoveStruct move;
+	for (;;) {
+		ScopedFPS scopedFps;
+		_engine->readKeys();
+		if (_engine->shouldQuit() || _engine->_input->toggleAbortAction()) {
+			break;
+		}
+
+		// TODO
+		if (!v28) {
+			setPalette2(192, 32, (int)&palette2[3 * needToLoadHolomapGFX++]);
+			if (needToLoadHolomapGFX == 32) {
+				needToLoadHolomapGFX = 0;
+			}
+		}
+		const int16 newAngle = move.getRealAngle(_engine->lbaTime);
+		if (move.numOfStep == 0) {
+			_engine->_movements->setActorAngleSafe(v18, v18 - ANGLE_90, 500, &move);
+		}
+		if (SetInterAnimObjet(v5)) {
+			++v27;
+			if (v27 == _engine->_animations->getNumKeyframes(v14)) {
+				v27 = _engine->_animations->getStartKeyframe(v14);
+			}
+		}
+		_engine->_renderer->setCameraPosition(100, 400, 128, 900, 900);
+		_engine->_renderer->setCameraAngle(v5);
+		_engine->_renderer->setLightVector(v5);
+		_engine->_interface->blitBox(v5);
+		_engine->_renderer->renderIsoModel(v19, v5);
+		_engine->copyBlockPhys(v5);
+		_engine->_renderer->setCameraPosition(400, 240, 128, 1024, 1024);
+		_engine->_renderer->setCameraAngle(v5);
+		_engine->_renderer->setLightVector(v5);
+		if (v24 + 40 <= _engine->lbaTime) {
+			v24 = _engine->lbaTime;
+			if (v17 >= v29 && v17 > v29) {
+				break;
+			}
+			++v17;
+			_engine->_renderer->setBaseRotation(v0);
+			_engine->_renderer->getBaseRotationPosition(v1, v0);
+			_engine->_renderer->setCameraAngle(v0);
+			_engine->_renderer->getBaseRotationPosition(v2, v0);
+			_engine->_renderer->resetClip();
+			_engine->_renderer->renderIsoModel(v3, v0);
+			_engine->copyBlockPhys(v0);
+		}
+		if (v28) {
+			v28 = 0;
+			_engine->_screens->fadeToPal((int)palette);
+		}
+	}
+	// TODO: fade to black
+	// TODO: flip
+#endif
 }
 
 void Holomap::drawHolomapLocation(int32 location) {


Commit: e6d5f716d69825d997c009819ebd03d65a0b0d3d
    https://github.com/scummvm/scummvm/commit/e6d5f716d69825d997c009819ebd03d65a0b0d3d
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-01-11T23:07:57+01:00

Commit Message:
TWINE: added keybindings for rotating the planet

Changed paths:
    engines/twine/holomap.cpp
    engines/twine/input.h
    engines/twine/metaengine.cpp


diff --git a/engines/twine/holomap.cpp b/engines/twine/holomap.cpp
index 91134845de..b3ba789e08 100644
--- a/engines/twine/holomap.cpp
+++ b/engines/twine/holomap.cpp
@@ -31,6 +31,7 @@
 #include "twine/renderer/screens.h"
 #include "twine/resources/hqr.h"
 #include "twine/resources/resources.h"
+#include "twine/scene/collision.h"
 #include "twine/scene/gamestate.h"
 #include "twine/scene/scene.h"
 #include "twine/text.h"
@@ -139,7 +140,7 @@ void Holomap::drawHolomapText(int32 centerx, int32 top, const char *title) {
 	const int32 y = top;
 	_engine->_text->setFontColor(COLOR_WHITE);
 	// TODO: handle @ newline
-	// TODO: faded in?
+	// TODO: faded in? - looks like it - printText10 was used
 	_engine->_text->drawText(x, y, title);
 }
 
@@ -201,8 +202,8 @@ void Holomap::drawHolomapTrajectory(int32 trajectoryIndex) {
 			_engine->_screens->fadeToPal((int)palette);
 		}
 	}
-	// TODO: fade to black
-	// TODO: flip
+	_engine->_screens->fadeToBlack(_engine->_screens->paletteRGBA);
+	// TODO: flip()?
 #endif
 }
 
@@ -263,6 +264,11 @@ void Holomap::processHolomap() {
 	// TODO: load RESSHQR_HOLOSURFACE and project the texture to the surface
 	//_engine->_screens->loadImage(RESSHQR_HOLOIMG, RESSHQR_HOLOPAL);
 
+	const int32 time = _engine->lbaTime;
+	int32 xRot = 0;
+	int32 yRot = 0;
+	bool rotate = false;
+	bool redraw = true;
 	ScopedKeyMap holomapKeymap(_engine, holomapKeyMapId);
 	for (;;) {
 		FrameMarker frame;
@@ -272,13 +278,13 @@ void Holomap::processHolomap() {
 			break;
 		}
 
-		if (_engine->_input->toggleActionIfActive(TwinEActionType::HolomapLeft)) {
+		if (_engine->_input->toggleActionIfActive(TwinEActionType::HolomapPrev)) {
 			const int32 nextLocation = getNextHolomapLocation(currentLocation, -1);
 			if (nextLocation != -1) {
 				currentLocation = nextLocation;
 				drawHolomapLocation(currentLocation);
 			}
-		} else if (_engine->_input->toggleActionIfActive(TwinEActionType::HolomapRight)) {
+		} else if (_engine->_input->toggleActionIfActive(TwinEActionType::HolomapNext)) {
 			const int32 nextLocation = getNextHolomapLocation(currentLocation, 1);
 			if (nextLocation != -1) {
 				currentLocation = nextLocation;
@@ -286,11 +292,35 @@ void Holomap::processHolomap() {
 			}
 		}
 
+		if (_engine->_input->toggleActionIfActive(TwinEActionType::HolomapLeft)) {
+			xRot += 8;
+			rotate = true;
+		} else if (_engine->_input->toggleActionIfActive(TwinEActionType::HolomapRight)) {
+			xRot -= 8;
+			rotate = true;
+		}
+
 		if (_engine->_input->toggleActionIfActive(TwinEActionType::HolomapUp)) {
+			yRot += 8;
+			rotate = true;
 		} else if (_engine->_input->toggleActionIfActive(TwinEActionType::HolomapDown)) {
+			yRot -= 8;
+			rotate = true;
+		}
+		if (rotate) {
+			xRot = _engine->_collision->getAverageValue(xRot, _locations[currentLocation].x, 75, _engine->lbaTime - time);
+			yRot = _engine->_collision->getAverageValue(yRot, _locations[currentLocation].y, 75, _engine->lbaTime - time);
+			redraw = true;
 		}
 
-		// TODO
+		if (rotate && xRot == _locations[currentLocation].x && yRot == _locations[currentLocation].y) {
+			rotate = false;
+		}
+
+		if (redraw) {
+			redraw = false;
+			// TODO
+		}
 
 		//_engine->_screens->copyScreen(_engine->workVideoBuffer, _engine->frontVideoBuffer);
 		//_engine->flip();
diff --git a/engines/twine/input.h b/engines/twine/input.h
index f135e4e512..286d586eae 100644
--- a/engines/twine/input.h
+++ b/engines/twine/input.h
@@ -90,6 +90,8 @@ enum TwinEActionType {
 	HolomapRight,
 	HolomapUp,
 	HolomapDown,
+	HolomapNext,
+	HolomapPrev,
 
 	Max
 };
diff --git a/engines/twine/metaengine.cpp b/engines/twine/metaengine.cpp
index 42d6a4e041..3d56c1449c 100644
--- a/engines/twine/metaengine.cpp
+++ b/engines/twine/metaengine.cpp
@@ -476,7 +476,7 @@ Common::KeymapArray TwinEMetaEngine::initKeymaps(const char *target) const {
 
 		act = new Action("UP", _("Up"));
 		act->setCustomEngineActionEvent(TwinEActionType::HolomapUp);
-		act->addDefaultInputMapping("UP");
+		act->addDefaultInputMapping("CTRL+UP");
 		act->addDefaultInputMapping("KP8");
 		act->addDefaultInputMapping("MOUSE_WHEEL_UP");
 		act->addDefaultInputMapping("JOY_UP");
@@ -484,7 +484,7 @@ Common::KeymapArray TwinEMetaEngine::initKeymaps(const char *target) const {
 
 		act = new Action("DOWN", _("Down"));
 		act->setCustomEngineActionEvent(TwinEActionType::HolomapDown);
-		act->addDefaultInputMapping("DOWN");
+		act->addDefaultInputMapping("CTRL+DOWN");
 		act->addDefaultInputMapping("KP2");
 		act->addDefaultInputMapping("MOUSE_WHEEL_DOWN");
 		act->addDefaultInputMapping("JOY_DOWN");
@@ -492,18 +492,28 @@ Common::KeymapArray TwinEMetaEngine::initKeymaps(const char *target) const {
 
 		act = new Action("RIGHT", _("Right"));
 		act->setCustomEngineActionEvent(TwinEActionType::HolomapRight);
-		act->addDefaultInputMapping("RIGHT");
+		act->addDefaultInputMapping("CTRL+RIGHT");
 		act->addDefaultInputMapping("KP6");
 		act->addDefaultInputMapping("JOY_RIGHT");
 		holomapKeyMap->addAction(act);
 
 		act = new Action("LEFT", _("Left"));
 		act->setCustomEngineActionEvent(TwinEActionType::HolomapLeft);
-		act->addDefaultInputMapping("LEFT");
+		act->addDefaultInputMapping("CTRL+LEFT");
 		act->addDefaultInputMapping("KP4");
 		act->addDefaultInputMapping("JOY_LEFT");
 		holomapKeyMap->addAction(act);
 
+		act = new Action("PREV", _("Previous location"));
+		act->setCustomEngineActionEvent(TwinEActionType::HolomapPrev);
+		act->addDefaultInputMapping("RIGHT");
+		holomapKeyMap->addAction(act);
+
+		act = new Action("NEXT", _("Next location"));
+		act->setCustomEngineActionEvent(TwinEActionType::HolomapNext);
+		act->addDefaultInputMapping("LEFT");
+		holomapKeyMap->addAction(act);
+
 		array[3] = holomapKeyMap;
 	}
 




More information about the Scummvm-git-logs mailing list