[Scummvm-git-logs] scummvm master -> 98d58de4a41ca18c8229c535c46ef03e4e84c6bc
mgerhardy
noreply at scummvm.org
Fri Jan 20 17:43:52 UTC 2023
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:
98d58de4a4 TWINE: renamed methods and members to be closer to the original source release
Commit: 98d58de4a41ca18c8229c535c46ef03e4e84c6bc
https://github.com/scummvm/scummvm/commit/98d58de4a41ca18c8229c535c46ef03e4e84c6bc
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2023-01-20T18:43:47+01:00
Commit Message:
TWINE: renamed methods and members to be closer to the original source release
Changed paths:
engines/twine/debugger/debug.cpp
engines/twine/debugger/debug_scene.cpp
engines/twine/renderer/redraw.cpp
engines/twine/renderer/redraw.h
engines/twine/scene/extra.cpp
engines/twine/scene/gamestate.cpp
engines/twine/scene/grid.cpp
engines/twine/scene/grid.h
engines/twine/scene/movements.cpp
engines/twine/scene/movements.h
engines/twine/twine.cpp
diff --git a/engines/twine/debugger/debug.cpp b/engines/twine/debugger/debug.cpp
index bd402c01e2b..6e10f91320b 100644
--- a/engines/twine/debugger/debug.cpp
+++ b/engines/twine/debugger/debug.cpp
@@ -462,7 +462,7 @@ void Debug::processDebug() {
Input *input = _engine->_input;
if (input->isActionActive(TwinEActionType::DebugPlaceActorAtCenterOfScreen)) {
ActorStruct *actor = _engine->_scene->getActor(OWN_ACTOR_SCENE_INDEX);
- actor->_pos = _engine->_grid->_camera;
+ actor->_pos = _engine->_grid->_worldCube;
actor->_pos.y += 1000;
}
diff --git a/engines/twine/debugger/debug_scene.cpp b/engines/twine/debugger/debug_scene.cpp
index c3aa2be0a00..2967e65b144 100644
--- a/engines/twine/debugger/debug_scene.cpp
+++ b/engines/twine/debugger/debug_scene.cpp
@@ -70,32 +70,32 @@ bool DebugScene::checkZoneType(ZoneType type) const {
DebugScene::ScenePositionsProjected DebugScene::calculateBoxPositions(const IVec3 &mins, const IVec3 &maxs) {
ScenePositionsProjected positions;
// compute the points in 3D
- positions.frontBottomLeftPoint.x = mins.x - _engine->_grid->_camera.x;
- positions.frontBottomLeftPoint.y = mins.y - _engine->_grid->_camera.y;
- positions.frontBottomLeftPoint.z = maxs.z - _engine->_grid->_camera.z;
+ positions.frontBottomLeftPoint.x = mins.x - _engine->_grid->_worldCube.x;
+ positions.frontBottomLeftPoint.y = mins.y - _engine->_grid->_worldCube.y;
+ positions.frontBottomLeftPoint.z = maxs.z - _engine->_grid->_worldCube.z;
- positions.frontBottomRightPoint.x = maxs.x - _engine->_grid->_camera.x;
- positions.frontBottomRightPoint.y = mins.y - _engine->_grid->_camera.y;
- positions.frontBottomRightPoint.z = maxs.z - _engine->_grid->_camera.z;
+ positions.frontBottomRightPoint.x = maxs.x - _engine->_grid->_worldCube.x;
+ positions.frontBottomRightPoint.y = mins.y - _engine->_grid->_worldCube.y;
+ positions.frontBottomRightPoint.z = maxs.z - _engine->_grid->_worldCube.z;
- positions.frontTopLeftPoint.x = mins.x - _engine->_grid->_camera.x;
- positions.frontTopLeftPoint.y = maxs.y - _engine->_grid->_camera.y;
- positions.frontTopLeftPoint.z = maxs.z - _engine->_grid->_camera.z;
+ positions.frontTopLeftPoint.x = mins.x - _engine->_grid->_worldCube.x;
+ positions.frontTopLeftPoint.y = maxs.y - _engine->_grid->_worldCube.y;
+ positions.frontTopLeftPoint.z = maxs.z - _engine->_grid->_worldCube.z;
- positions.frontTopRightPoint = maxs - _engine->_grid->_camera;
- positions.backBottomLeftPoint = mins - _engine->_grid->_camera;
+ positions.frontTopRightPoint = maxs - _engine->_grid->_worldCube;
+ positions.backBottomLeftPoint = mins - _engine->_grid->_worldCube;
- positions.backBottomRightPoint.x = maxs.x - _engine->_grid->_camera.x;
- positions.backBottomRightPoint.y = mins.y - _engine->_grid->_camera.y;
- positions.backBottomRightPoint.z = mins.z - _engine->_grid->_camera.z;
+ positions.backBottomRightPoint.x = maxs.x - _engine->_grid->_worldCube.x;
+ positions.backBottomRightPoint.y = mins.y - _engine->_grid->_worldCube.y;
+ positions.backBottomRightPoint.z = mins.z - _engine->_grid->_worldCube.z;
- positions.backTopLeftPoint.x = mins.x - _engine->_grid->_camera.x;
- positions.backTopLeftPoint.y = maxs.y - _engine->_grid->_camera.y;
- positions.backTopLeftPoint.z = mins.z - _engine->_grid->_camera.z;
+ positions.backTopLeftPoint.x = mins.x - _engine->_grid->_worldCube.x;
+ positions.backTopLeftPoint.y = maxs.y - _engine->_grid->_worldCube.y;
+ positions.backTopLeftPoint.z = mins.z - _engine->_grid->_worldCube.z;
- positions.backTopRightPoint.x = maxs.x - _engine->_grid->_camera.x;
- positions.backTopRightPoint.y = maxs.y - _engine->_grid->_camera.y;
- positions.backTopRightPoint.z = mins.z - _engine->_grid->_camera.z;
+ positions.backTopRightPoint.x = maxs.x - _engine->_grid->_worldCube.x;
+ positions.backTopRightPoint.y = maxs.y - _engine->_grid->_worldCube.y;
+ positions.backTopRightPoint.z = mins.z - _engine->_grid->_worldCube.z;
// project all points
diff --git a/engines/twine/renderer/redraw.cpp b/engines/twine/renderer/redraw.cpp
index eed4e630703..24989f52932 100644
--- a/engines/twine/renderer/redraw.cpp
+++ b/engines/twine/renderer/redraw.cpp
@@ -144,15 +144,28 @@ void Redraw::blitBackgroundAreas() {
}
void Redraw::sortDrawingList(DrawListStruct *list, int32 listSize) const {
- if (listSize == 1) {
- return;
- }
- for (int32 i = 0; i < listSize - 1; i++) {
- for (int32 j = 0; j < listSize - 1 - i; j++) {
- if (list[j + 1].posValue < list[j].posValue) {
- SWAP(list[j + 1], list[j]);
+ DrawListStruct* pNext;
+ DrawListStruct* pSmallest;
+ int32 n;
+
+ for (listSize--; listSize > 0; listSize--) {
+ pSmallest = list;
+ pNext = list + 1;
+
+ for (n = listSize; n > 0; n--) {
+ if (pNext->posValue < pSmallest->posValue) {
+ pSmallest = pNext;
}
+ pNext++;
}
+
+ if (pSmallest != list) {
+ DrawListStruct tmp = *pSmallest;
+ *pSmallest = *list;
+ *list = tmp;
+ }
+
+ list++;
}
}
@@ -185,7 +198,7 @@ void Redraw::updateOverlayTypePosition(int16 x1, int16 y1, int16 x2, int16 y2) {
}
}
-int32 Redraw::fillActorDrawingList(DrawListStruct *drawList, bool bgRedraw) {
+int32 Redraw::fillActorDrawingList(DrawListStruct *drawList, bool flagflip) {
int32 drawListPos = 0;
for (int32 a = 0; a < _engine->_scene->_sceneNumActors; a++) {
ActorStruct *actor = _engine->_scene->getActor(a);
@@ -195,9 +208,9 @@ int32 Redraw::fillActorDrawingList(DrawListStruct *drawList, bool bgRedraw) {
continue;
}
// no redraw required
- if (actor->_staticFlags.bIsBackgrounded && !bgRedraw) {
+ if (actor->_staticFlags.bIsBackgrounded && !flagflip) {
// get actor position on screen
- const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(actor->posObj() - _engine->_grid->_camera);
+ const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(actor->posObj() - _engine->_grid->_worldCube);
// check if actor is visible on screen, otherwise don't display it
if (projPos.x > VIEW_X0 && projPos.x < VIEW_X1(_engine) && projPos.y > VIEW_Y0 && projPos.y < VIEW_Y1(_engine)) {
actor->_dynamicFlags.bIsDrawn = 1;
@@ -209,24 +222,24 @@ int32 Redraw::fillActorDrawingList(DrawListStruct *drawList, bool bgRedraw) {
continue;
}
// get actor position on screen
- const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(actor->posObj() - _engine->_grid->_camera);
+ const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(actor->posObj() - _engine->_grid->_worldCube);
if ((actor->_staticFlags.bUsesClipping && projPos.x > -112 && projPos.x < _engine->width() + 112 && projPos.y > -50 && projPos.y < _engine->height() + 171) ||
((!actor->_staticFlags.bUsesClipping) && projPos.x > VIEW_X0 && projPos.x < VIEW_X1(_engine) && projPos.y > VIEW_Y0 && projPos.y < VIEW_Y1(_engine))) {
- int32 ztri = actor->_pos.x - _engine->_grid->_camera.x + actor->_pos.z - _engine->_grid->_camera.z;
+ int32 ztri = actor->_pos.x - _engine->_grid->_worldCube.x + actor->_pos.z - _engine->_grid->_worldCube.z;
// if actor is above another actor
if (actor->_carryBy != -1) {
const ActorStruct *standOnActor = _engine->_scene->getActor(actor->_carryBy);
- ztri = standOnActor->_pos.x - _engine->_grid->_camera.x + standOnActor->_pos.z - _engine->_grid->_camera.z + 2;
+ ztri = standOnActor->_pos.x - _engine->_grid->_worldCube.x + standOnActor->_pos.z - _engine->_grid->_worldCube.z + 2;
}
if (actor->_staticFlags.bIsSpriteActor) {
drawList[drawListPos].type = DrawListType::DrawActorSprites;
drawList[drawListPos].actorIdx = a;
if (actor->_staticFlags.bUsesClipping) {
- ztri = actor->_animStep.x - _engine->_grid->_camera.x + actor->_animStep.z - _engine->_grid->_camera.z;
+ ztri = actor->_animStep.x - _engine->_grid->_worldCube.x + actor->_animStep.z - _engine->_grid->_worldCube.z;
}
} else {
drawList[drawListPos].type = DrawListType::DrawObject3D;
@@ -244,7 +257,7 @@ int32 Redraw::fillActorDrawingList(DrawListStruct *drawList, bool bgRedraw) {
drawList[drawListPos].y = actor->_pos.y - 1;
drawList[drawListPos].z = actor->_pos.z;
} else {
- const IVec3 shadowCoord = _engine->_movements->getShadowPosition(actor->posObj());
+ const IVec3 shadowCoord = _engine->_movements->getShadow(actor->posObj());
drawList[drawListPos].x = shadowCoord.x;
drawList[drawListPos].y = shadowCoord.y;
drawList[drawListPos].z = shadowCoord.z;
@@ -286,17 +299,17 @@ int32 Redraw::fillExtraDrawingList(DrawListStruct *drawList, int32 drawListPos)
}
}
}
- const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(extra->pos - _engine->_grid->_camera);
+ const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(extra->pos - _engine->_grid->_worldCube);
if (projPos.x > VIEW_X0 && projPos.x < VIEW_X1(_engine) && projPos.y > VIEW_Y0 && projPos.y < VIEW_Y1(_engine)) {
- const int16 tmpVal = extra->pos.x - _engine->_grid->_camera.x + extra->pos.z - _engine->_grid->_camera.z;
+ const int16 tmpVal = extra->pos.x - _engine->_grid->_worldCube.x + extra->pos.z - _engine->_grid->_worldCube.z;
drawList[drawListPos].posValue = tmpVal;
drawList[drawListPos].actorIdx = i;
drawList[drawListPos].type = DrawListType::DrawExtras;
drawListPos++;
if (_engine->_cfgfile.ShadowMode == 2 && !(extra->sprite & EXTRA_SPECIAL_MASK)) {
- const IVec3 &shadowCoord = _engine->_movements->getShadowPosition(extra->pos);
+ const IVec3 &shadowCoord = _engine->_movements->getShadow(extra->pos);
drawList[drawListPos].posValue = tmpVal - 1;
drawList[drawListPos].actorIdx = 0;
@@ -314,7 +327,7 @@ int32 Redraw::fillExtraDrawingList(DrawListStruct *drawList, int32 drawListPos)
void Redraw::processDrawListShadows(const DrawListStruct &drawCmd) {
// get actor position on screen
- const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(drawCmd.x - _engine->_grid->_camera.x, drawCmd.y - _engine->_grid->_camera.y, drawCmd.z - _engine->_grid->_camera.z);
+ const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(drawCmd.x - _engine->_grid->_worldCube.x, drawCmd.y - _engine->_grid->_worldCube.y, drawCmd.z - _engine->_grid->_worldCube.z);
int32 spriteWidth = _engine->_resources->_spriteShadowPtr.surface(drawCmd.offset).w;
int32 spriteHeight = _engine->_resources->_spriteShadowPtr.surface(drawCmd.offset).h;
@@ -334,7 +347,7 @@ void Redraw::processDrawListShadows(const DrawListStruct &drawCmd) {
const int32 tmpY = drawCmd.y / SIZE_BRICK_Y;
const int32 tmpZ = (drawCmd.z + SIZE_BRICK_Y) / SIZE_BRICK_XZ;
- _engine->_grid->drawOverModelActor(tmpX, tmpY, tmpZ);
+ _engine->_grid->drawOverBrick(tmpX, tmpY, tmpZ);
addRedrawArea(_engine->_interface->_clip);
@@ -350,7 +363,7 @@ void Redraw::processDrawListActors(const DrawListStruct &drawCmd, bool bgRedraw)
_engine->_animations->setModelAnimation(actor->_frame, animData, _engine->_resources->_bodyData[actor->_body], &actor->_animTimerData);
}
- const IVec3 &delta = actor->posObj() - _engine->_grid->_camera;
+ const IVec3 &delta = actor->posObj() - _engine->_grid->_worldCube;
Common::Rect renderRect;
if (actorIdx == OWN_ACTOR_SCENE_INDEX) {
@@ -374,7 +387,7 @@ void Redraw::processDrawListActors(const DrawListStruct &drawCmd, bool bgRedraw)
tempY++;
}
- _engine->_grid->drawOverModelActor(tempX, tempY, tempZ);
+ _engine->_grid->drawOverBrick(tempX, tempY, tempZ);
addRedrawArea(_engine->_interface->_clip);
@@ -395,7 +408,7 @@ void Redraw::processDrawListActorSprites(const DrawListStruct &drawCmd, bool bgR
const uint8 *spritePtr = _engine->_resources->_spriteTable[actor->_body];
// get actor position on screen
- const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(actor->posObj() - _engine->_grid->_camera);
+ const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(actor->posObj() - _engine->_grid->_worldCube);
const int32 spriteWidth = spriteData.surface().w;
const int32 spriteHeight = spriteData.surface().h;
@@ -425,7 +438,7 @@ void Redraw::processDrawListActorSprites(const DrawListStruct &drawCmd, bool bgR
const int32 tmpX = (actor->_animStep.x + DEMI_BRICK_XZ) / SIZE_BRICK_XZ;
const int32 tmpY = actor->_animStep.y / SIZE_BRICK_Y;
const int32 tmpZ = (actor->_animStep.z + DEMI_BRICK_XZ) / SIZE_BRICK_XZ;
- _engine->_grid->drawOverSpriteActor(tmpX, tmpY, tmpZ);
+ _engine->_grid->drawOverBrick3(tmpX, tmpY, tmpZ);
} else {
const int32 tmpX = (actor->_pos.x + actor->_boundingBox.maxs.x + DEMI_BRICK_XZ) / SIZE_BRICK_XZ;
int32 tmpY = actor->_pos.y / SIZE_BRICK_Y;
@@ -434,7 +447,7 @@ void Redraw::processDrawListActorSprites(const DrawListStruct &drawCmd, bool bgR
tmpY++;
}
- _engine->_grid->drawOverSpriteActor(tmpX, tmpY, tmpZ);
+ _engine->_grid->drawOverBrick3(tmpX, tmpY, tmpZ);
}
addRedrawArea(_engine->_interface->_clip);
@@ -452,7 +465,7 @@ void Redraw::processDrawListExtras(const DrawListStruct &drawCmd) {
int32 extraIdx = drawCmd.actorIdx;
ExtraListStruct *extra = &_engine->_extra->_extraList[extraIdx];
- const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(extra->pos - _engine->_grid->_camera);
+ const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(extra->pos - _engine->_grid->_worldCube);
Common::Rect renderRect;
if (extra->sprite & EXTRA_SPECIAL_MASK) {
@@ -477,7 +490,7 @@ void Redraw::processDrawListExtras(const DrawListStruct &drawCmd) {
const int32 tmpY = extra->pos.y / SIZE_BRICK_Y;
const int32 tmpZ = (extra->pos.z + DEMI_BRICK_XZ) / SIZE_BRICK_XZ;
- _engine->_grid->drawOverModelActor(tmpX, tmpY, tmpZ);
+ _engine->_grid->drawOverBrick(tmpX, tmpY, tmpZ);
addRedrawArea(_engine->_interface->_clip);
// show clipping area
@@ -636,7 +649,7 @@ void Redraw::renderOverlays() {
case OverlayPosType::koFollowActor: {
ActorStruct *actor2 = _engine->_scene->getActor(overlay->info1);
- const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(actor2->_pos.x - _engine->_grid->_camera.x, actor2->_pos.y + actor2->_boundingBox.maxs.y - _engine->_grid->_camera.y, actor2->_pos.z - _engine->_grid->_camera.z);
+ const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(actor2->_pos.x - _engine->_grid->_worldCube.x, actor2->_pos.y + actor2->_boundingBox.maxs.y - _engine->_grid->_worldCube.y, actor2->_pos.z - _engine->_grid->_worldCube.z);
overlay->x = projPos.x;
overlay->y = projPos.y;
@@ -806,7 +819,7 @@ void Redraw::redrawEngineActions(bool bgRedraw) { // AffScene
_engine->_screens->clearScreen();
_engine->_grid->redrawGrid();
- const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(-_engine->_grid->_camera);
+ const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(-_engine->_grid->_worldCube);
_projPosScreen.x = projPos.x;
_projPosScreen.y = projPos.y;
@@ -868,7 +881,7 @@ void Redraw::drawBubble(int32 actorIdx) {
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
// get actor position on screen
- const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(actor->_pos.x - _engine->_grid->_camera.x, actor->_pos.y + actor->_boundingBox.maxs.y - _engine->_grid->_camera.y, actor->_pos.z - _engine->_grid->_camera.z);
+ const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(actor->_pos.x - _engine->_grid->_worldCube.x, actor->_pos.y + actor->_boundingBox.maxs.y - _engine->_grid->_worldCube.y, actor->_pos.z - _engine->_grid->_worldCube.z);
if (actorIdx != _bubbleActor) {
_bubbleSpriteIndex = _bubbleSpriteIndex ^ 1;
diff --git a/engines/twine/renderer/redraw.h b/engines/twine/renderer/redraw.h
index d20b0fb5e78..e9726ae0eb7 100644
--- a/engines/twine/renderer/redraw.h
+++ b/engines/twine/renderer/redraw.h
@@ -146,8 +146,8 @@ public:
/** Number of redraw regions in the screen */
int32 _numOfRedrawBox = 0;
- int _sceneryViewX = 0;
- int _sceneryViewY = 0;
+ int _sceneryViewX = 0; // xmin
+ int _sceneryViewY = 0; // ymin
OverlayListStruct overlayList[OVERLAY_MAX_ENTRIES];
diff --git a/engines/twine/scene/extra.cpp b/engines/twine/scene/extra.cpp
index 0a90e966d9b..d6a840ef0d3 100644
--- a/engines/twine/scene/extra.cpp
+++ b/engines/twine/scene/extra.cpp
@@ -656,7 +656,7 @@ void Extra::gereExtras() {
_engine->_sound->playSample(Samples::ItemFound, 1, _engine->_scene->_sceneHero->posObj(), OWN_ACTOR_SCENE_INDEX);
if (extraKey->info1 > 1) {
- const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(extraKey->pos - _engine->_grid->_camera);
+ const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(extraKey->pos - _engine->_grid->_worldCube);
_engine->_redraw->addOverlay(OverlayType::koNumber, extraKey->info1, projPos.x, projPos.y, COLOR_BLACK, OverlayPosType::koNormal, 2);
}
@@ -689,7 +689,7 @@ void Extra::gereExtras() {
_engine->_sound->playSample(Samples::ItemFound, 1, _engine->_scene->_sceneHero->posObj(), OWN_ACTOR_SCENE_INDEX);
if (extraKey->info1 > 1) {
- const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(extraKey->pos - _engine->_grid->_camera);
+ const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(extraKey->pos - _engine->_grid->_worldCube);
_engine->_redraw->addOverlay(OverlayType::koNumber, extraKey->info1, projPos.x, projPos.y, COLOR_BLACK, OverlayPosType::koNormal, 2);
}
@@ -837,7 +837,7 @@ void Extra::gereExtras() {
_engine->_sound->playSample(Samples::ItemFound, 1, extra->pos);
if (extra->info1 > 1) {
- const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(extra->pos - _engine->_grid->_camera);
+ const IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(extra->pos - _engine->_grid->_worldCube);
const int16 fontColor = COLOR_158;
_engine->_redraw->addOverlay(OverlayType::koNumber, extra->info1, projPos.x, projPos.y, fontColor, OverlayPosType::koNormal, 2);
}
diff --git a/engines/twine/scene/gamestate.cpp b/engines/twine/scene/gamestate.cpp
index 90c9ba56fd8..4fed1e787c3 100644
--- a/engines/twine/scene/gamestate.cpp
+++ b/engines/twine/scene/gamestate.cpp
@@ -333,7 +333,7 @@ void GameState::doFoundObj(InventoryItems item) {
}
const int32 itemZ = (_engine->_scene->_sceneHero->_pos.z + SIZE_BRICK_Y) / SIZE_BRICK_XZ;
- _engine->_grid->drawOverModelActor(itemX, itemY, itemZ);
+ _engine->_grid->drawOverBrick(itemX, itemY, itemZ);
IVec3 &projPos = _engine->_renderer->projectPositionOnScreen(bodyPos);
projPos.y -= 150;
@@ -397,7 +397,7 @@ void GameState::doFoundObj(InventoryItems item) {
_engine->_renderer->renderIsoModel(bodyPos, LBAAngles::ANGLE_0, LBAAngles::ANGLE_45, LBAAngles::ANGLE_0, bodyData, modelRect);
_engine->_interface->setClip(modelRect);
- _engine->_grid->drawOverModelActor(itemX, itemY, itemZ);
+ _engine->_grid->drawOverBrick(itemX, itemY, itemZ);
_engine->_redraw->addRedrawArea(modelRect);
if (textState == ProgressiveTextState::ContinueRunning) {
diff --git a/engines/twine/scene/grid.cpp b/engines/twine/scene/grid.cpp
index 0b233a680e4..73e62f604d6 100644
--- a/engines/twine/scene/grid.cpp
+++ b/engines/twine/scene/grid.cpp
@@ -66,7 +66,7 @@ void Grid::init(int32 w, int32 h) {
_brickInfoBuffer = (int16 *)malloc(_brickInfoBufferSize);
}
-void Grid::copyGridMask(int32 index, int32 x, int32 y, const Graphics::ManagedSurface &buffer) { // CopyMask
+void Grid::copyMask(int32 index, int32 x, int32 y, const Graphics::ManagedSurface &buffer) {
if (_engine->_debugGrid->_disableGridRendering) {
return;
}
@@ -166,38 +166,38 @@ const BrickEntry* Grid::getBrickEntry(int32 j, int32 i) const {
return &_bricksDataBuffer[j * MAXBRICKS + i];
}
-void Grid::drawOverModelActor(int32 x, int32 y, int32 z) {
- const int32 copyBlockPhysLeft = ((_engine->_interface->_clip.left + 24) / 24) - 1;
- const int32 copyBlockPhysRight = ((_engine->_interface->_clip.right + 24) / 24);
+void Grid::drawOverBrick(int32 x, int32 y, int32 z) {
+ const int32 startCol = ((_engine->_interface->_clip.left + 24) / 24) - 1;
+ const int32 endCol = ((_engine->_interface->_clip.right + 24) / 24);
- for (int32 j = copyBlockPhysLeft; j <= copyBlockPhysRight; j++) {
- for (int32 i = 0; i < _brickInfoBuffer[j]; i++) {
- const BrickEntry *currBrickEntry = getBrickEntry(j, i);
+ for (int32 col = startCol; col <= endCol; col++) {
+ for (int32 i = 0; i < _brickInfoBuffer[col]; i++) {
+ const BrickEntry *currBrickEntry = getBrickEntry(col, i);
if (currBrickEntry->posY + 38 > _engine->_interface->_clip.top && currBrickEntry->posY <= _engine->_interface->_clip.bottom && currBrickEntry->y >= y) {
if (currBrickEntry->x + currBrickEntry->z > z + x) {
- copyGridMask(currBrickEntry->index, (j * 24) - 24, currBrickEntry->posY, _engine->_workVideoBuffer);
+ copyMask(currBrickEntry->index, (col * 24) - 24, currBrickEntry->posY, _engine->_workVideoBuffer);
}
}
}
}
}
-void Grid::drawOverSpriteActor(int32 x, int32 y, int32 z) { // DrawOverBrick3
- const int32 copyBlockPhysLeft = ((_engine->_interface->_clip.left + 24) / 24) - 1;
- const int32 copyBlockPhysRight = (_engine->_interface->_clip.right + 24) / 24;
+void Grid::drawOverBrick3(int32 x, int32 y, int32 z) {
+ const int32 startCol = ((_engine->_interface->_clip.left + 24) / 24) - 1;
+ const int32 endCol = (_engine->_interface->_clip.right + 24) / 24;
- for (int32 j = copyBlockPhysLeft; j <= copyBlockPhysRight; j++) {
- for (int32 i = 0; i < _brickInfoBuffer[j]; i++) {
- const BrickEntry *currBrickEntry = getBrickEntry(j, i);
+ for (int32 col = startCol; col <= endCol; col++) {
+ for (int32 i = 0; i < _brickInfoBuffer[col]; i++) {
+ const BrickEntry *currBrickEntry = getBrickEntry(col, i);
if (currBrickEntry->posY + 38 > _engine->_interface->_clip.top && currBrickEntry->posY <= _engine->_interface->_clip.bottom && currBrickEntry->y >= y) {
if (currBrickEntry->x == x && currBrickEntry->z == z) {
- copyGridMask(currBrickEntry->index, (j * 24) - 24, currBrickEntry->posY, _engine->_workVideoBuffer);
+ copyMask(currBrickEntry->index, (col * 24) - 24, currBrickEntry->posY, _engine->_workVideoBuffer);
}
if (currBrickEntry->x > x || currBrickEntry->z > z) {
- copyGridMask(currBrickEntry->index, (j * 24) - 24, currBrickEntry->posY, _engine->_workVideoBuffer);
+ copyMask(currBrickEntry->index, (col * 24) - 24, currBrickEntry->posY, _engine->_workVideoBuffer);
}
}
}
@@ -468,7 +468,7 @@ bool Grid::drawBrick(int32 index, int32 posX, int32 posY) {
return drawBrickSprite(index, posX, posY, _brickTable[index], false);
}
-bool Grid::drawSprite(int32 index, int32 posX, int32 posY, const uint8 *ptr) {
+bool Grid::drawSprite(int32 index, int32 posX, int32 posY, const uint8 *ptr) { // AffGraph
ptr = ptr + READ_LE_INT32(ptr + index * 4);
return drawBrickSprite(index, posX, posY, ptr, true);
}
@@ -670,9 +670,9 @@ void Grid::drawColumnGrid(int32 blockIdx, int32 brickBlockIdx, int32 x, int32 y,
}
void Grid::redrawGrid() { // AffGrille
- _camera.x = _newCamera.x * SIZE_BRICK_XZ;
- _camera.y = _newCamera.y * SIZE_BRICK_Y;
- _camera.z = _newCamera.z * SIZE_BRICK_XZ;
+ _worldCube.x = _newCamera.x * SIZE_BRICK_XZ;
+ _worldCube.y = _newCamera.y * SIZE_BRICK_Y;
+ _worldCube.z = _newCamera.z * SIZE_BRICK_XZ;
memset(_brickInfoBuffer, 0, _brickInfoBufferSize);
diff --git a/engines/twine/scene/grid.h b/engines/twine/scene/grid.h
index 7b6b4900330..6600528fad4 100644
--- a/engines/twine/scene/grid.h
+++ b/engines/twine/scene/grid.h
@@ -148,7 +148,7 @@ private:
* @param y grid Y coordinate
* @param buffer work video buffer
*/
- void copyGridMask(int32 index, int32 x, int32 y, const Graphics::ManagedSurface &buffer);
+ void copyMask(int32 index, int32 x, int32 y, const Graphics::ManagedSurface &buffer);
/** Table with all loaded bricks */
uint8 *_brickTable[NUM_BRICKS]{nullptr};
@@ -197,7 +197,7 @@ public:
IVec3 _newCamera;
/** Current grid camera x, y and z coordinates */
- IVec3 _camera; // WorldXCube WorldYCube
+ IVec3 _worldCube; // WorldXCube WorldYCube
/** Flag to know if the engine is using celling grids */
int16 _useCellingGrid = 0;
@@ -210,7 +210,7 @@ public:
* @param y actor.y coordinate
* @param z actor.z coordinate
*/
- void drawOverModelActor(int32 x, int32 y, int32 z);
+ void drawOverBrick(int32 x, int32 y, int32 z);
/**
* Draw sprite actor over bricks
@@ -218,7 +218,7 @@ public:
* @param y actor.y coordinate
* @param z actor.z coordinate
*/
- void drawOverSpriteActor(int32 x, int32 y, int32 z);
+ void drawOverBrick3(int32 x, int32 y, int32 z);
/**
* Get sprite width and height sizes
diff --git a/engines/twine/scene/movements.cpp b/engines/twine/scene/movements.cpp
index 59be044f04e..908ed116ba8 100644
--- a/engines/twine/scene/movements.cpp
+++ b/engines/twine/scene/movements.cpp
@@ -37,7 +37,7 @@ namespace TwinE {
Movements::Movements(TwinEEngine *engine) : _engine(engine) {}
-IVec3 Movements::getShadowPosition(const IVec3 &pos) { // GetShadow
+IVec3 Movements::getShadow(const IVec3 &pos) { // GetShadow
IVec3 shadowCoord;
const uint8 *ptr = _engine->_grid->getBlockBufferGround(pos, shadowCoord.y);
shadowCoord.x = pos.x;
diff --git a/engines/twine/scene/movements.h b/engines/twine/scene/movements.h
index eab4d894268..84e2454c576 100644
--- a/engines/twine/scene/movements.h
+++ b/engines/twine/scene/movements.h
@@ -136,7 +136,7 @@ public:
* Get shadow position
* @param pos Shadow coordinates
*/
- IVec3 getShadowPosition(const IVec3 &pos);
+ IVec3 getShadow(const IVec3 &pos);
/**
* Set actor safe angle
diff --git a/engines/twine/twine.cpp b/engines/twine/twine.cpp
index 9d3372d84b2..af0ca46aaa3 100644
--- a/engines/twine/twine.cpp
+++ b/engines/twine/twine.cpp
@@ -1004,7 +1004,7 @@ bool TwinEEngine::runGameEngine() { // mainLoopInteration
if (!_actor->_cropBottomScreen) {
_animations->initAnim(AnimationTypes::kDrawn, AnimType::kAnimationSet, AnimationTypes::kStanding, OWN_ACTOR_SCENE_INDEX);
}
- const IVec3 &projPos = _renderer->projectPositionOnScreen(actor->posObj() - _grid->_camera);
+ const IVec3 &projPos = _renderer->projectPositionOnScreen(actor->posObj() - _grid->_worldCube);
actor->_controlMode = ControlMode::kNoMove;
actor->setLife(-1);
_actor->_cropBottomScreen = projPos.y;
More information about the Scummvm-git-logs
mailing list