[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