[Scummvm-git-logs] scummvm master -> e6d8edadd1500b39268e7cd2e8ca68ef956c3e26
mgerhardy
martin.gerhardy at gmail.com
Tue Mar 23 21:23:35 UTC 2021
This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
0195b1c127 TWINE: fixed header guard names
5b7fa92807 TWINE: extracted holomap trajectory parsing into own class
6d9363d70f TWINE: fixed fla frame number parsing
e8aa1b31fd TWINE: use unsigned in computeHolomapPolygon
e6d8edadd1 TWINE: unified with disassembly
Commit: 0195b1c12719a40da771af0e6b2b36d0b37b1461
https://github.com/scummvm/scummvm/commit/0195b1c12719a40da771af0e6b2b36d0b37b1461
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-03-23T22:22:46+01:00
Commit Message:
TWINE: fixed header guard names
Changed paths:
engines/twine/parser/anim.h
engines/twine/parser/body.h
engines/twine/parser/brick.h
engines/twine/parser/entity.h
engines/twine/parser/parser.h
engines/twine/parser/sprite.h
engines/twine/renderer/redraw.cpp
diff --git a/engines/twine/parser/anim.h b/engines/twine/parser/anim.h
index 1c859fbf7a..c73f48ad83 100644
--- a/engines/twine/parser/anim.h
+++ b/engines/twine/parser/anim.h
@@ -20,8 +20,8 @@
*
*/
-#ifndef TWINE_ANIM_H
-#define TWINE_ANIM_H
+#ifndef TWINE_PARSER_ANIM_H
+#define TWINE_PARSER_ANIM_H
#include "common/array.h"
#include "common/stream.h"
diff --git a/engines/twine/parser/body.h b/engines/twine/parser/body.h
index 87234bfded..76abcada26 100644
--- a/engines/twine/parser/body.h
+++ b/engines/twine/parser/body.h
@@ -20,8 +20,8 @@
*
*/
-#ifndef TWINE_BODY_H
-#define TWINE_BODY_H
+#ifndef TWINE_PARSER_BODY_H
+#define TWINE_PARSER_BODY_H
#include "common/array.h"
#include "common/memstream.h"
diff --git a/engines/twine/parser/brick.h b/engines/twine/parser/brick.h
index 1c3160b5a8..44608edcb3 100644
--- a/engines/twine/parser/brick.h
+++ b/engines/twine/parser/brick.h
@@ -20,8 +20,8 @@
*
*/
-#ifndef TWINE_BRICK_H
-#define TWINE_BRICK_H
+#ifndef TWINE_PARSER_BRICK_H
+#define TWINE_PARSER_BRICK_H
#include "common/memstream.h"
#include "common/stream.h"
diff --git a/engines/twine/parser/entity.h b/engines/twine/parser/entity.h
index 14a6ad05d8..5cef8863e4 100644
--- a/engines/twine/parser/entity.h
+++ b/engines/twine/parser/entity.h
@@ -20,8 +20,8 @@
*
*/
-#ifndef TWINE_ENTITY_H
-#define TWINE_ENTITY_H
+#ifndef TWINE_PARSER_ENTITY_H
+#define TWINE_PARSER_ENTITY_H
#include "common/array.h"
#include "common/memstream.h"
diff --git a/engines/twine/parser/parser.h b/engines/twine/parser/parser.h
index 6b09b029d3..d8d6b5343f 100644
--- a/engines/twine/parser/parser.h
+++ b/engines/twine/parser/parser.h
@@ -20,8 +20,8 @@
*
*/
-#ifndef TWINE_PARSER_H
-#define TWINE_PARSER_H
+#ifndef TWINE_PARSER_PARSER_H
+#define TWINE_PARSER_PARSER_H
#include "common/array.h"
#include "common/memstream.h"
diff --git a/engines/twine/parser/sprite.h b/engines/twine/parser/sprite.h
index fd6f0f6d87..f8c61cde2d 100644
--- a/engines/twine/parser/sprite.h
+++ b/engines/twine/parser/sprite.h
@@ -20,8 +20,8 @@
*
*/
-#ifndef TWINE_SPRITE_H
-#define TWINE_SPRITE_H
+#ifndef TWINE_PARSER_SPRITE_H
+#define TWINE_PARSER_SPRITE_H
#include "common/array.h"
#include "common/memstream.h"
diff --git a/engines/twine/renderer/redraw.cpp b/engines/twine/renderer/redraw.cpp
index 6a10ca0100..1856bdd342 100644
--- a/engines/twine/renderer/redraw.cpp
+++ b/engines/twine/renderer/redraw.cpp
@@ -457,13 +457,13 @@ void Redraw::processDrawListActorSprites(const DrawListStruct &drawCmd, bool bgR
}
void Redraw::processDrawListExtras(const DrawListStruct &drawCmd) {
- int32 actorIdx = drawCmd.actorIdx;
- ExtraListStruct *extra = &_engine->_extra->extraList[actorIdx];
+ int32 extraIdx = drawCmd.actorIdx;
+ ExtraListStruct *extra = &_engine->_extra->extraList[extraIdx];
_engine->_renderer->projectPositionOnScreen(extra->pos - _engine->_grid->camera);
if (extra->info0 & EXTRA_SPECIAL_MASK) {
- _engine->_extra->drawExtraSpecial(actorIdx, _engine->_renderer->projPos.x, _engine->_renderer->projPos.y);
+ _engine->_extra->drawExtraSpecial(extraIdx, _engine->_renderer->projPos.x, _engine->_renderer->projPos.y);
} else {
const SpriteData &spritePtr = _engine->_resources->spriteData[extra->info0];
const int32 spriteWidth = spritePtr.surface().w;
Commit: 5b7fa92807c57f53b6d835a8001f64dd11717003
https://github.com/scummvm/scummvm/commit/5b7fa92807c57f53b6d835a8001f64dd11717003
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-03-23T22:22:46+01:00
Commit Message:
TWINE: extracted holomap trajectory parsing into own class
Changed paths:
engines/twine/holomap.cpp
engines/twine/holomap.h
engines/twine/module.mk
engines/twine/resources/resources.cpp
engines/twine/resources/resources.h
diff --git a/engines/twine/holomap.cpp b/engines/twine/holomap.cpp
index a6790a5ccc..741652cebe 100644
--- a/engines/twine/holomap.cpp
+++ b/engines/twine/holomap.cpp
@@ -28,6 +28,7 @@
#include "twine/audio/sound.h"
#include "twine/menu/interface.h"
#include "twine/parser/anim.h"
+#include "twine/parser/holomap.h"
#include "twine/renderer/redraw.h"
#include "twine/renderer/renderer.h"
#include "twine/renderer/screens.h"
@@ -267,37 +268,11 @@ void Holomap::renderHolomapModel(const uint8 *bodyPtr, int32 x, int32 y, int32 z
_engine->_renderer->renderIsoModel(_engine->_renderer->destPos.x, _engine->_renderer->destPos.y, _engine->_renderer->destPos.z, x, y, 0, bodyPtr);
}
-Holomap::TrajectoryData Holomap::loadTrajectoryData(int32 trajectoryIdx) {
- Common::MemoryReadStream stream(_engine->_resources->holomapPointAnimPtr, _engine->_resources->holomapPointAnimSize);
- for (int32 trajIdx = 0; trajIdx < trajectoryIdx; ++trajIdx) {
- if (stream.eos() || stream.err()) {
- return TrajectoryData();
- }
- stream.skip(12);
- const int16 animVal = stream.readSint16LE();
- stream.skip(4 * animVal);
- }
- TrajectoryData data;
- data.locationIdx = stream.readSint16LE();
- data.trajLocationIdx = stream.readSint16LE();
- data.vehicleIdx = stream.readSint16LE();
- data.pos.x = stream.readSint16LE();
- data.pos.y = stream.readSint16LE();
- data.pos.z = stream.readSint16LE();
- data.numAnimFrames = stream.readSint16LE();
- assert(data.numAnimFrames < ARRAYSIZE(data.positions));
- for (int32 i = 0; i < data.numAnimFrames; ++i) {
- data.positions[i].x = stream.readSint16LE();
- data.positions[i].y = stream.readSint16LE();
- }
- return data;
-}
-
void Holomap::drawHolomapTrajectory(int32 trajectoryIndex) {
debug("Draw trajectory index %i", trajectoryIndex);
- const Holomap::TrajectoryData &data = loadTrajectoryData(trajectoryIndex);
- if (!data.isValid()) {
+ const Trajectory *data = _engine->_resources->getTrajectory(trajectoryIndex);
+ if (data == nullptr) {
warning("Failed to load trajectory data for index %i", trajectoryIndex);
return;
}
@@ -310,20 +285,20 @@ void Holomap::drawHolomapTrajectory(int32 trajectoryIndex) {
loadHolomapGFX();
ScopedEngineFreeze timeFreeze(_engine);
_engine->_renderer->setCameraPosition(400, 240, 128, 1024, 1024);
- _engine->_renderer->setCameraAngle(0, 0, 0, data.pos.x, data.pos.y, data.pos.z, 5300);
+ _engine->_renderer->setCameraAngle(0, 0, 0, data->pos.x, data->pos.y, data->pos.z, 5300);
renderHolomapSurfacePolygons();
- const Location &loc = _locations[data.locationIdx];
+ const Location &loc = _locations[data->locationIdx];
renderHolomapModel(_engine->_resources->holomapPointModelPtr, loc.angle.x, loc.angle.y, 0);
_engine->flip();
ActorMoveStruct move;
AnimTimerDataStruct animTimerData;
AnimData animData;
- animData.loadFromHQR(Resources::HQR_RESS_FILE, data.getAnimation());
+ animData.loadFromHQR(Resources::HQR_RESS_FILE, data->getAnimation());
uint8 *modelPtr = nullptr;
- HQR::getAllocEntry(&modelPtr, Resources::HQR_RESS_FILE, data.getModel());
+ HQR::getAllocEntry(&modelPtr, Resources::HQR_RESS_FILE, data->getModel());
uint frameNumber = 0;
int32 frameTime = _engine->lbaTime;
int16 trajAnimFrameIdx = 0;
@@ -369,21 +344,21 @@ void Holomap::drawHolomapTrajectory(int32 trajectoryIndex) {
_engine->_renderer->renderIsoModel(0, 0, 0, 0, newAngle, 0, modelPtr);
_engine->copyBlockPhys(rect);
_engine->_renderer->setCameraPosition(400, 240, 128, 1024, 1024);
- _engine->_renderer->setCameraAngle(0, 0, 0, data.pos.x, data.pos.y, data.pos.z, 5300);
- _engine->_renderer->setLightVector(data.pos.x, data.pos.y, 0);
+ _engine->_renderer->setCameraAngle(0, 0, 0, data->pos.x, data->pos.y, data->pos.z, 5300);
+ _engine->_renderer->setLightVector(data->pos.x, data->pos.y, 0);
if (frameTime + 40 <= _engine->lbaTime) {
frameTime = _engine->lbaTime;
int32 modelX;
int32 modelY;
- if (trajAnimFrameIdx < data.numAnimFrames) {
- modelX = data.positions[trajAnimFrameIdx].x;
- modelY = data.positions[trajAnimFrameIdx].y;
+ if (trajAnimFrameIdx < data->numAnimFrames) {
+ modelX = data->positions[trajAnimFrameIdx].x;
+ modelY = data->positions[trajAnimFrameIdx].y;
} else {
- if (data.numAnimFrames < trajAnimFrameIdx) {
+ if (data->numAnimFrames < trajAnimFrameIdx) {
break;
}
- modelX = _locations[data.trajLocationIdx].angle.x;
- modelY = _locations[data.trajLocationIdx].angle.y;
+ modelX = _locations[data->trajLocationIdx].angle.x;
+ modelY = _locations[data->trajLocationIdx].angle.y;
}
renderHolomapModel(_engine->_resources->holomapPointModelPtr, modelX, modelY, 0);
++trajAnimFrameIdx;
diff --git a/engines/twine/holomap.h b/engines/twine/holomap.h
index dae01cf949..369204440c 100644
--- a/engines/twine/holomap.h
+++ b/engines/twine/holomap.h
@@ -50,18 +50,6 @@ private:
char name[30] = "";
};
- enum HolomapVehicle {
- FerryBoat = 31,
- Motorbike = 33,
- Car = 35,
- FishingBoat = 37,
- Catamaran = 39,
- Hovercraft = 41,
- Dino = 43,
- ArmyBoat = 45,
- HamalayiTransporter = 47
- };
-
IVec3 _holomapSurface[561];
// original game size: 2244 (lba1)
@@ -80,35 +68,6 @@ private:
HolomapProjectedPos _projectedSurfacePositions[561];
int _projectedSurfaceIndex = 0;
- struct TrajectoryData {
- int16 locationIdx = -1;
- int16 trajLocationIdx = -1;
- int16 vehicleIdx = -1;
- IVec3 pos;
- int16 numAnimFrames = 0;
- struct TrajectoryPos {
- int16 x = 0;
- int16 y = 0;
- };
- TrajectoryPos positions[512];
-
- bool isValid() const {
- return locationIdx != -1;
- }
-
- /**
- * The HQR index of the vehicle model for the holomap
- * @note Multiplied by 2 because the model index is always followed by the corresponding animation index for that model
- */
- int32 getModel() const {
- return 2 * vehicleIdx + HolomapVehicle::FerryBoat;
- }
-
- int32 getAnimation() const {
- return getModel() + 1;
- }
- };
-
int32 _numLocations = 0;
Location _locations[NUM_LOCATIONS];
@@ -119,7 +78,6 @@ private:
int32 getNextHolomapLocation(int32 currentLocation, int32 dir) const;
void renderLocations(int xRot, int yRot, int zRot, bool lower);
- TrajectoryData loadTrajectoryData(int32 trajectoryIdx);
void renderHolomapModel(const uint8 *bodyPtr, int32 x, int32 y, int32 zPos);
diff --git a/engines/twine/module.mk b/engines/twine/module.mk
index 6ca7858dff..7719c0595e 100644
--- a/engines/twine/module.mk
+++ b/engines/twine/module.mk
@@ -15,8 +15,9 @@ MODULE_OBJS := \
\
parser/anim.o \
parser/body.o \
- parser/entity.o \
parser/brick.o \
+ parser/entity.o \
+ parser/holomap.o \
parser/parser.o \
parser/sprite.o \
\
diff --git a/engines/twine/resources/resources.cpp b/engines/twine/resources/resources.cpp
index 1931c0397b..2ff14cd1a4 100644
--- a/engines/twine/resources/resources.cpp
+++ b/engines/twine/resources/resources.cpp
@@ -51,6 +51,7 @@ Resources::~Resources() {
free(holomapSurfacePtr);
free(holomapImagePtr);
free(holomapTwinsenModelPtr);
+ free(holomapPointModelPtr);
free(holomapTwinsenArrowPtr);
free(holomapArrowPtr);
free(_engine->_screens->mainPalette);
@@ -198,10 +199,10 @@ void Resources::initResources() {
error("Failed to load holomap twinsen arrow model");
}
- holomapPointAnimSize = HQR::getAllocEntry(&holomapPointAnimPtr, Resources::HQR_RESS_FILE, RESSHQR_HOLOPOINTANIM);
- if (holomapPointAnimSize == 0) {
- error("Failed to load holomap point anim data");
+ if (!_trajectories.loadFromHQR(Resources::HQR_RESS_FILE, RESSHQR_HOLOPOINTANIM)) {
+ error("Failed to parse trajectory data");
}
+ debug("preload %i trajectories", (int)_trajectories.getTrajectories().size());
preloadSprites();
preloadAnimations();
@@ -211,6 +212,10 @@ void Resources::initResources() {
loadFlaInfo();
}
+const Trajectory *Resources::getTrajectory(int index) const {
+ return _trajectories.getTrajectory(index);
+}
+
void Resources::loadFlaInfo() {
uint8 *content = nullptr;
const int32 size = HQR::getAllocEntry(&content, Resources::HQR_RESS_FILE, RESSHQR_FLAINFO);
diff --git a/engines/twine/resources/resources.h b/engines/twine/resources/resources.h
index bad5cfa3ff..7e88964e44 100644
--- a/engines/twine/resources/resources.h
+++ b/engines/twine/resources/resources.h
@@ -26,6 +26,7 @@
#include "common/hashmap.h"
#include "common/scummsys.h"
#include "twine/parser/sprite.h"
+#include "twine/parser/holomap.h"
#include "twine/scene/gamestate.h"
#include "twine/resources/hqr.h"
#include "twine/scene/scene.h"
@@ -150,6 +151,8 @@ private:
using MovieInfoMap = Common::HashMap<Common::String, Common::Array<int32>>;
MovieInfoMap _flaMovieFrames;
+ TrajectoryData _trajectories;
+
public:
Resources(TwinEEngine *engine) : _engine(engine) {}
~Resources();
@@ -199,12 +202,12 @@ public:
uint8 *holomapTwinsenArrowPtr = nullptr;
uint32 holomapArrowSize = 0;
uint8 *holomapArrowPtr = nullptr;
- uint32 holomapPointAnimSize = 0;
- uint8 *holomapPointAnimPtr = nullptr;
/** Initialize resource pointers */
void initResources();
+ const Trajectory* getTrajectory(int index) const;
+
// main palette
static constexpr const char *HQR_RESS_FILE = "ress.hqr";
// dialoges
Commit: 6d9363d70ffc222011bb43009de4ea1807253ec3
https://github.com/scummvm/scummvm/commit/6d9363d70ffc222011bb43009de4ea1807253ec3
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-03-23T22:22:46+01:00
Commit Message:
TWINE: fixed fla frame number parsing
Changed paths:
engines/twine/flamovies.cpp
engines/twine/flamovies.h
diff --git a/engines/twine/flamovies.cpp b/engines/twine/flamovies.cpp
index a1a867c305..cfd0772c8f 100644
--- a/engines/twine/flamovies.cpp
+++ b/engines/twine/flamovies.cpp
@@ -159,8 +159,7 @@ void FlaMovies::scaleFla2x() {
void FlaMovies::processFrame() {
FLASampleStruct sample;
- _file.read(&_frameData.videoSize, 1);
- _file.read(&_frameData.dummy, 1);
+ _file.read(&_frameData.videoSize, 2);
_file.read(&_frameData.frameVar0, 4);
if (_frameData.frameVar0 > _engine->imageBuffer.w * _engine->imageBuffer.h) {
warning("Skipping video frame - it would exceed the screen buffer: %i", _frameData.frameVar0);
diff --git a/engines/twine/flamovies.h b/engines/twine/flamovies.h
index f45dd7b29b..a761076c49 100644
--- a/engines/twine/flamovies.h
+++ b/engines/twine/flamovies.h
@@ -53,9 +53,7 @@ struct FLAHeaderStruct {
/** FLA movie frame structure */
struct FLAFrameDataStruct {
/** Current frame size */
- int8 videoSize = 0;
- /** Dummy variable */
- int8 dummy = 0;
+ int16 videoSize = 0;
/** Unknown frameVar0 */
int32 frameVar0 = 0;
};
Commit: e8aa1b31fdecd0af8f215769557ef287733ff23b
https://github.com/scummvm/scummvm/commit/e8aa1b31fdecd0af8f215769557ef287733ff23b
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-03-23T22:22:46+01:00
Commit Message:
TWINE: use unsigned in computeHolomapPolygon
Changed paths:
engines/twine/renderer/renderer.cpp
diff --git a/engines/twine/renderer/renderer.cpp b/engines/twine/renderer/renderer.cpp
index 0eea9135d5..873c106156 100644
--- a/engines/twine/renderer/renderer.cpp
+++ b/engines/twine/renderer/renderer.cpp
@@ -213,23 +213,24 @@ void Renderer::setCameraAngle(int32 transPosX, int32 transPosY, int32 transPosZ,
}
IVec3 Renderer::getHolomapRotation(const int32 angleX, const int32 angleY, const int32 angleZ) const {
- int32 rotX;
- int32 rotY;
- int32 rotZ;
+ int32 rotX = angleX * 2 + 1000;
- rotX = angleX * 2 + 1000;
+ int32 rotY;
if (angleY == ANGLE_0) {
rotY = ANGLE_0;
} else {
rotY = -shadeAngleTable[ClampAngle(angleY)] * rotX / SCENE_SIZE_HALF;
rotX = shadeAngleTable[ClampAngle(angleY + ANGLE_90)] * rotX / SCENE_SIZE_HALF;
}
+
+ int32 rotZ;
if (angleZ == ANGLE_0) {
rotZ = ANGLE_0;
} else {
rotZ = -shadeAngleTable[ClampAngle(angleZ)] * rotX / SCENE_SIZE_HALF;
rotX = shadeAngleTable[ClampAngle(angleZ + ANGLE_90)] * rotX / SCENE_SIZE_HALF;
}
+
const int32 row1X = _baseMatrix.row1[0] * rotX;
const int32 row1Y = _baseMatrix.row1[1] * rotY;
const int32 row1Z = _baseMatrix.row1[2] * rotZ;
@@ -1559,7 +1560,7 @@ void Renderer::computeHolomapPolygon(int32 top, int32 x1, int32 bottom, int32 x2
if (minX < x2) {
const uint32 deltaX = (x2 - minX) * 0x10000;
const uint32 deltaRatio = deltaX / deltaY;
- int32 iVar01 = (deltaRatio % deltaY >> 1) + 0x7fff;
+ uint32 iVar01 = (deltaRatio % deltaY >> 1) + 0x7fff;
for (uint32 y = 0; y <= deltaY; ++y) {
if (currentPolygonTabEntry < _polyTab || currentPolygonTabEntry >= _polyTab + _polyTabSize) {
currentPolygonTabEntry++;
@@ -1576,7 +1577,7 @@ void Renderer::computeHolomapPolygon(int32 top, int32 x1, int32 bottom, int32 x2
} else {
const uint32 deltaX = (minX - x2) * 0x10000;
const uint32 deltaRatio = deltaX / deltaY;
- int32 iVar01 = (deltaX % deltaY >> 1) + 0x7fff;
+ uint32 iVar01 = (deltaX % deltaY >> 1) + 0x7fff;
for (uint32 y = 0; y <= deltaY; ++y) {
if (currentPolygonTabEntry < _polyTab || currentPolygonTabEntry >= _polyTab + _polyTabSize) {
currentPolygonTabEntry++;
Commit: e6d8edadd1500b39268e7cd2e8ca68ef956c3e26
https://github.com/scummvm/scummvm/commit/e6d8edadd1500b39268e7cd2e8ca68ef956c3e26
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-03-23T22:22:46+01:00
Commit Message:
TWINE: unified with disassembly
Changed paths:
engines/twine/renderer/renderer.cpp
diff --git a/engines/twine/renderer/renderer.cpp b/engines/twine/renderer/renderer.cpp
index 873c106156..2ffde2e119 100644
--- a/engines/twine/renderer/renderer.cpp
+++ b/engines/twine/renderer/renderer.cpp
@@ -1597,6 +1597,10 @@ void Renderer::computeHolomapPolygon(int32 top, int32 x1, int32 bottom, int32 x2
void Renderer::fillHolomapPolygons(const Vertex &vertex1, const Vertex &vertex2, const Vertex &angles1, const Vertex &angles2, int32 &top, int32 &bottom) {
const int32 yBottom = vertex1.y;
const int32 yTop = vertex2.y;
+ if (yBottom == yTop) {
+ return;
+ }
+
if (yBottom < yTop) {
if (yBottom < top) {
top = yBottom;
@@ -1604,20 +1608,19 @@ void Renderer::fillHolomapPolygons(const Vertex &vertex1, const Vertex &vertex2,
if (bottom < yTop) {
bottom = yTop;
}
- computeHolomapPolygon(yTop, (uint16)vertex2.x, yBottom, (uint16)vertex1.x, _holomap_polytab_1_1);
- computeHolomapPolygon(yTop, (uint16)angles2.x, yBottom, (uint16)angles1.x, _holomap_polytab_1_2);
- computeHolomapPolygon(yTop, (uint16)angles2.y, yBottom, (uint16)angles1.y, _holomap_polytab_1_3);
- } else if (yBottom > yTop) {
+ computeHolomapPolygon(yTop, vertex2.x, yBottom, vertex1.x, _holomap_polytab_1_1);
+ computeHolomapPolygon(yTop, (uint32)(uint16)angles2.x, yBottom, (uint32)(uint16)angles1.x, _holomap_polytab_1_2);
+ } else {
if (bottom < yBottom) {
bottom = yBottom;
}
if (yTop < top) {
top = yTop;
}
- computeHolomapPolygon(yTop, (uint16)vertex2.x, yBottom, (uint16)vertex1.x, _holomap_polytab_2_1);
- computeHolomapPolygon(yTop, (uint16)angles2.x, yBottom, (uint16)angles1.x, _holomap_polytab_2_2);
- computeHolomapPolygon(yTop, (uint16)angles2.y, yBottom, (uint16)angles1.y, _holomap_polytab_2_3);
+ computeHolomapPolygon(yTop, vertex2.x, yBottom, vertex1.x, _holomap_polytab_2_1);
+ computeHolomapPolygon(yTop, (uint32)(uint16)angles2.x, yBottom, (uint32)(uint16)angles1.x, _holomap_polytab_2_2);
}
+ computeHolomapPolygon(yTop, (uint32)(uint16)angles2.y, yBottom, (uint32)(uint16)angles1.y, _holomap_polytab_2_3);
}
void Renderer::renderHolomapVertices(const Vertex vertexCoordinates[3], const Vertex vertexAngles[3]) {
More information about the Scummvm-git-logs
mailing list