[Scummvm-git-logs] scummvm master -> 61304fd896ab9066834dd03a74e7f23ba6eebaea
mgerhardy
martin.gerhardy at gmail.com
Sat Jul 31 14:51:01 UTC 2021
This automated email contains information about 10 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
c1aee76986 TWINE: reduced visibility and renamed members
3f1faa95b7 TWINE: convert member to local var
4861568f6a TWINE: const for Redraw::sortDrawingList
9210708eeb TWINE: renamed members
c6d26dc9d8 TWINE: renamed members
b08bc2ccf6 TWINE: reduced visibility of member
91fe6927c9 TWINE: made _projPosScreen private in Redraw
fc75e5709e TWINE: renamed members
429832986b TWINE: renamed members
61304fd896 TWINE: renamed members
Commit: c1aee769867cb08c01c1c3b4720d8253d95a66d6
https://github.com/scummvm/scummvm/commit/c1aee769867cb08c01c1c3b4720d8253d95a66d6
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-07-31T16:48:23+02:00
Commit Message:
TWINE: reduced visibility and renamed members
Changed paths:
engines/twine/holomap.cpp
engines/twine/renderer/redraw.cpp
engines/twine/renderer/redraw.h
engines/twine/twine.cpp
diff --git a/engines/twine/holomap.cpp b/engines/twine/holomap.cpp
index c611819674..cf530b3bfd 100644
--- a/engines/twine/holomap.cpp
+++ b/engines/twine/holomap.cpp
@@ -409,6 +409,7 @@ int32 Holomap::getNextHolomapLocation(int32 currentLocation, int32 dir) const {
void Holomap::renderLocations(int xRot, int yRot, int zRot, bool lower) {
int n = 0;
+ DrawListStruct drawListArray[NUM_LOCATIONS];
for (int locationIdx = 0; locationIdx < NUM_LOCATIONS; ++locationIdx) {
if ((_engine->_gameState->holomapFlags[locationIdx] & HOLOMAP_CAN_FOCUS) || locationIdx == _engine->_scene->currentSceneIdx) {
const Location &loc = _locations[locationIdx];
@@ -442,7 +443,7 @@ void Holomap::renderLocations(int xRot, int yRot, int zRot, bool lower) {
if (locationIdx == _engine->_scene->currentSceneIdx) {
flags |= 2u; // model type
}
- DrawListStruct &drawList = _engine->_redraw->drawList[n];
+ DrawListStruct &drawList = drawListArray[n];
drawList.posValue = zpos1_copy2;
drawList.actorIdx = locationIdx;
drawList.type = flags;
@@ -452,9 +453,9 @@ void Holomap::renderLocations(int xRot, int yRot, int zRot, bool lower) {
++n;
}
}
- _engine->_redraw->sortDrawingList(_engine->_redraw->drawList, n);
+ _engine->_redraw->sortDrawingList(drawListArray, n);
for (int i = 0; i < n; ++i) {
- const DrawListStruct &drawList = _engine->_redraw->drawList[i];
+ const DrawListStruct &drawList = drawListArray[i];
const uint16 flags = drawList.type;
const BodyData *bodyData = nullptr;
if (flags == 1u) {
diff --git a/engines/twine/renderer/redraw.cpp b/engines/twine/renderer/redraw.cpp
index fed62aae2e..699156154b 100644
--- a/engines/twine/renderer/redraw.cpp
+++ b/engines/twine/renderer/redraw.cpp
@@ -221,17 +221,17 @@ int32 Redraw::fillActorDrawingList(bool bgRedraw) {
}
if (actor->staticFlags.bIsSpriteActor) {
- drawList[drawListPos].type = DrawListType::DrawActorSprites;
- drawList[drawListPos].actorIdx = a;
+ _drawList[drawListPos].type = DrawListType::DrawActorSprites;
+ _drawList[drawListPos].actorIdx = a;
if (actor->staticFlags.bUsesClipping) {
tmpVal = actor->lastPos.x - _engine->_grid->camera.x + actor->lastPos.z - _engine->_grid->camera.z;
}
} else {
- drawList[drawListPos].type = 0;
- drawList[drawListPos].actorIdx = a;
+ _drawList[drawListPos].type = 0;
+ _drawList[drawListPos].actorIdx = a;
}
- drawList[drawListPos].posValue = tmpVal;
+ _drawList[drawListPos].posValue = tmpVal;
drawListPos++;
@@ -245,13 +245,13 @@ int32 Redraw::fillActorDrawingList(bool bgRedraw) {
_engine->_movements->getShadowPosition(actor->pos);
}
- drawList[drawListPos].posValue = tmpVal - 1; // save the shadow entry in the drawList
- drawList[drawListPos].type = DrawListType::DrawShadows;
- drawList[drawListPos].actorIdx = 0;
- drawList[drawListPos].x = _engine->_actor->shadowCoord.x;
- drawList[drawListPos].y = _engine->_actor->shadowCoord.y;
- drawList[drawListPos].z = _engine->_actor->shadowCoord.z;
- drawList[drawListPos].offset = 2;
+ _drawList[drawListPos].posValue = tmpVal - 1; // save the shadow entry in the _drawList
+ _drawList[drawListPos].type = DrawListType::DrawShadows;
+ _drawList[drawListPos].actorIdx = 0;
+ _drawList[drawListPos].x = _engine->_actor->shadowCoord.x;
+ _drawList[drawListPos].y = _engine->_actor->shadowCoord.y;
+ _drawList[drawListPos].z = _engine->_actor->shadowCoord.z;
+ _drawList[drawListPos].offset = 2;
drawListPos++;
}
if (inSceneryView && a == _engine->_scene->currentlyFollowedActor) {
@@ -282,21 +282,21 @@ int32 Redraw::fillExtraDrawingList(int32 drawListPos) {
if (_engine->_renderer->projPos.x > -50 && _engine->_renderer->projPos.x < _engine->width() + 40 && _engine->_renderer->projPos.y > -30 && _engine->_renderer->projPos.y < _engine->height() + 100) {
const int16 tmpVal = extra->pos.x - _engine->_grid->camera.x + extra->pos.z - _engine->_grid->camera.z;
- drawList[drawListPos].posValue = tmpVal;
- drawList[drawListPos].actorIdx = i;
- drawList[drawListPos].type = DrawListType::DrawExtras;
+ _drawList[drawListPos].posValue = tmpVal;
+ _drawList[drawListPos].actorIdx = i;
+ _drawList[drawListPos].type = DrawListType::DrawExtras;
drawListPos++;
if (_engine->cfgfile.ShadowMode == 2 && !(extra->info0 & EXTRA_SPECIAL_MASK)) {
_engine->_movements->getShadowPosition(extra->pos);
- drawList[drawListPos].posValue = tmpVal - 1;
- drawList[drawListPos].actorIdx = 0;
- drawList[drawListPos].type = DrawListType::DrawShadows;
- drawList[drawListPos].x = _engine->_actor->shadowCoord.x;
- drawList[drawListPos].y = _engine->_actor->shadowCoord.y;
- drawList[drawListPos].z = _engine->_actor->shadowCoord.z;
- drawList[drawListPos].offset = 0;
+ _drawList[drawListPos].posValue = tmpVal - 1;
+ _drawList[drawListPos].actorIdx = 0;
+ _drawList[drawListPos].type = DrawListType::DrawShadows;
+ _drawList[drawListPos].x = _engine->_actor->shadowCoord.x;
+ _drawList[drawListPos].y = _engine->_actor->shadowCoord.y;
+ _drawList[drawListPos].z = _engine->_actor->shadowCoord.z;
+ _drawList[drawListPos].offset = 0;
drawListPos++;
}
}
@@ -476,7 +476,7 @@ void Redraw::processDrawListExtras(const DrawListStruct &drawCmd) {
void Redraw::processDrawList(int32 drawListPos, bool bgRedraw) {
for (int32 pos = 0; pos < drawListPos; ++pos) {
- const DrawListStruct &drawCmd = drawList[pos];
+ const DrawListStruct &drawCmd = _drawList[pos];
const uint32 flags = drawCmd.type;
// Drawing actors
if (flags < DrawListType::DrawShadows) {
@@ -668,7 +668,7 @@ void Redraw::redrawEngineActions(bool bgRedraw) {
int32 drawListPos = fillActorDrawingList(bgRedraw);
drawListPos = fillExtraDrawingList(drawListPos);
- sortDrawingList(drawList, drawListPos);
+ sortDrawingList(_drawList, drawListPos);
currNumOfRedrawBox = 0;
processDrawList(drawListPos, bgRedraw);
@@ -715,18 +715,18 @@ void Redraw::drawBubble(int32 actorIdx) {
// get actor position on screen
_engine->_renderer->projectPositionOnScreen(actor->pos.x - _engine->_grid->camera.x, actor->pos.y + actor->boudingBox.maxs.y - _engine->_grid->camera.y, actor->pos.z - _engine->_grid->camera.z);
- if (actorIdx != bubbleActor) {
- bubbleSpriteIndex = bubbleSpriteIndex ^ 1;
- bubbleActor = actorIdx;
+ if (actorIdx != _bubbleActor) {
+ _bubbleSpriteIndex = _bubbleSpriteIndex ^ 1;
+ _bubbleActor = actorIdx;
}
- const SpriteData &spritePtr = _engine->_resources->spriteData[bubbleSpriteIndex];
+ const SpriteData &spritePtr = _engine->_resources->spriteData[_bubbleSpriteIndex];
const int32 spriteWidth = spritePtr.surface().w;
const int32 spriteHeight = spritePtr.surface().h;
// calculate sprite position on screen
Common::Rect renderRect;
- if (bubbleSpriteIndex == SPRITEHQR_DIAG_BUBBLE_RIGHT) {
+ if (_bubbleSpriteIndex == SPRITEHQR_DIAG_BUBBLE_RIGHT) {
renderRect.left = _engine->_renderer->projPos.x + 10;
} else {
renderRect.left = _engine->_renderer->projPos.x - 10 - spriteWidth;
diff --git a/engines/twine/renderer/redraw.h b/engines/twine/renderer/redraw.h
index 34f9ad0922..d78f6b1a8a 100644
--- a/engines/twine/renderer/redraw.h
+++ b/engines/twine/renderer/redraw.h
@@ -25,6 +25,7 @@
#include "common/scummsys.h"
#include "common/rect.h"
+#include "twine/resources/resources.h"
namespace TwinE {
@@ -89,6 +90,14 @@ private:
Common::Rect _nextRedrawList[300];
int16 _overlayRotation = 0;
+
+ /** Save last actor that bubble dialog icon */
+ int32 _bubbleActor = -1;
+ int32 _bubbleSpriteIndex = SPRITEHQR_DIAG_BUBBLE_LEFT;
+
+ /** Draw list array to grab the necessary */
+ DrawListStruct _drawList[150];
+
/**
* Add a certain region to the current redraw list array
* @param redrawArea redraw the region
@@ -124,10 +133,6 @@ public:
/** Number of redraw regions in the screen */
int32 numOfRedrawBox = 0;
- /** Save last actor that bubble dialog icon */
- int32 bubbleActor = -1;
- int32 bubbleSpriteIndex = 0;
-
OverlayListStruct overlayList[OVERLAY_MAX_ENTRIES];
void addOverlay(OverlayType type, int16 info0, int16 x, int16 y, int16 info1, OverlayPosType posType, int16 lifeTime);
@@ -174,9 +179,6 @@ public:
* Zooms the area around the scenery view focus positions
*/
void zoomScreenScale();
-
- /** Draw list array to grab the necessary */
- DrawListStruct drawList[150];
};
} // namespace TwinE
diff --git a/engines/twine/twine.cpp b/engines/twine/twine.cpp
index 8369f2d126..345212dc39 100644
--- a/engines/twine/twine.cpp
+++ b/engines/twine/twine.cpp
@@ -528,8 +528,6 @@ void TwinEEngine::exitSceneryView() {
void TwinEEngine::initAll() {
Common::fill(&_menu->itemAngle[0], &_menu->itemAngle[NUM_INVENTORY_ITEMS], 0);
- _redraw->bubbleSpriteIndex = SPRITEHQR_DIAG_BUBBLE_LEFT;
-
_scene->sceneHero = _scene->getActor(OWN_ACTOR_SCENE_INDEX);
// Set clip to fullscreen by default, allows main menu to render properly after load
Commit: 3f1faa95b7fe02f8b3e515988a4b39e64f72372d
https://github.com/scummvm/scummvm/commit/3f1faa95b7fe02f8b3e515988a4b39e64f72372d
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-07-31T16:48:23+02:00
Commit Message:
TWINE: convert member to local var
Changed paths:
engines/twine/renderer/redraw.cpp
engines/twine/renderer/redraw.h
diff --git a/engines/twine/renderer/redraw.cpp b/engines/twine/renderer/redraw.cpp
index 699156154b..2d10fff059 100644
--- a/engines/twine/renderer/redraw.cpp
+++ b/engines/twine/renderer/redraw.cpp
@@ -182,7 +182,7 @@ void Redraw::updateOverlayTypePosition(int16 x1, int16 y1, int16 x2, int16 y2) {
}
}
-int32 Redraw::fillActorDrawingList(bool bgRedraw) {
+int32 Redraw::fillActorDrawingList(DrawListStruct *drawList, bool bgRedraw) {
int32 drawListPos = 0;
for (int32 a = 0; a < _engine->_scene->sceneNumActors; a++) {
ActorStruct *actor = _engine->_scene->getActor(a);
@@ -221,17 +221,17 @@ int32 Redraw::fillActorDrawingList(bool bgRedraw) {
}
if (actor->staticFlags.bIsSpriteActor) {
- _drawList[drawListPos].type = DrawListType::DrawActorSprites;
- _drawList[drawListPos].actorIdx = a;
+ drawList[drawListPos].type = DrawListType::DrawActorSprites;
+ drawList[drawListPos].actorIdx = a;
if (actor->staticFlags.bUsesClipping) {
tmpVal = actor->lastPos.x - _engine->_grid->camera.x + actor->lastPos.z - _engine->_grid->camera.z;
}
} else {
- _drawList[drawListPos].type = 0;
- _drawList[drawListPos].actorIdx = a;
+ drawList[drawListPos].type = 0;
+ drawList[drawListPos].actorIdx = a;
}
- _drawList[drawListPos].posValue = tmpVal;
+ drawList[drawListPos].posValue = tmpVal;
drawListPos++;
@@ -245,13 +245,13 @@ int32 Redraw::fillActorDrawingList(bool bgRedraw) {
_engine->_movements->getShadowPosition(actor->pos);
}
- _drawList[drawListPos].posValue = tmpVal - 1; // save the shadow entry in the _drawList
- _drawList[drawListPos].type = DrawListType::DrawShadows;
- _drawList[drawListPos].actorIdx = 0;
- _drawList[drawListPos].x = _engine->_actor->shadowCoord.x;
- _drawList[drawListPos].y = _engine->_actor->shadowCoord.y;
- _drawList[drawListPos].z = _engine->_actor->shadowCoord.z;
- _drawList[drawListPos].offset = 2;
+ drawList[drawListPos].posValue = tmpVal - 1; // save the shadow entry in the _drawList
+ drawList[drawListPos].type = DrawListType::DrawShadows;
+ drawList[drawListPos].actorIdx = 0;
+ drawList[drawListPos].x = _engine->_actor->shadowCoord.x;
+ drawList[drawListPos].y = _engine->_actor->shadowCoord.y;
+ drawList[drawListPos].z = _engine->_actor->shadowCoord.z;
+ drawList[drawListPos].offset = 2;
drawListPos++;
}
if (inSceneryView && a == _engine->_scene->currentlyFollowedActor) {
@@ -263,7 +263,7 @@ int32 Redraw::fillActorDrawingList(bool bgRedraw) {
return drawListPos;
}
-int32 Redraw::fillExtraDrawingList(int32 drawListPos) {
+int32 Redraw::fillExtraDrawingList(DrawListStruct *drawList, int32 drawListPos) {
for (int32 i = 0; i < EXTRA_MAX_ENTRIES; i++) {
ExtraListStruct *extra = &_engine->_extra->extraList[i];
if (extra->info0 == -1) {
@@ -282,21 +282,21 @@ int32 Redraw::fillExtraDrawingList(int32 drawListPos) {
if (_engine->_renderer->projPos.x > -50 && _engine->_renderer->projPos.x < _engine->width() + 40 && _engine->_renderer->projPos.y > -30 && _engine->_renderer->projPos.y < _engine->height() + 100) {
const int16 tmpVal = extra->pos.x - _engine->_grid->camera.x + extra->pos.z - _engine->_grid->camera.z;
- _drawList[drawListPos].posValue = tmpVal;
- _drawList[drawListPos].actorIdx = i;
- _drawList[drawListPos].type = DrawListType::DrawExtras;
+ drawList[drawListPos].posValue = tmpVal;
+ drawList[drawListPos].actorIdx = i;
+ drawList[drawListPos].type = DrawListType::DrawExtras;
drawListPos++;
if (_engine->cfgfile.ShadowMode == 2 && !(extra->info0 & EXTRA_SPECIAL_MASK)) {
_engine->_movements->getShadowPosition(extra->pos);
- _drawList[drawListPos].posValue = tmpVal - 1;
- _drawList[drawListPos].actorIdx = 0;
- _drawList[drawListPos].type = DrawListType::DrawShadows;
- _drawList[drawListPos].x = _engine->_actor->shadowCoord.x;
- _drawList[drawListPos].y = _engine->_actor->shadowCoord.y;
- _drawList[drawListPos].z = _engine->_actor->shadowCoord.z;
- _drawList[drawListPos].offset = 0;
+ drawList[drawListPos].posValue = tmpVal - 1;
+ drawList[drawListPos].actorIdx = 0;
+ drawList[drawListPos].type = DrawListType::DrawShadows;
+ drawList[drawListPos].x = _engine->_actor->shadowCoord.x;
+ drawList[drawListPos].y = _engine->_actor->shadowCoord.y;
+ drawList[drawListPos].z = _engine->_actor->shadowCoord.z;
+ drawList[drawListPos].offset = 0;
drawListPos++;
}
}
@@ -474,9 +474,9 @@ void Redraw::processDrawListExtras(const DrawListStruct &drawCmd) {
}
}
-void Redraw::processDrawList(int32 drawListPos, bool bgRedraw) {
+void Redraw::processDrawList(DrawListStruct *drawList, int32 drawListPos, bool bgRedraw) {
for (int32 pos = 0; pos < drawListPos; ++pos) {
- const DrawListStruct &drawCmd = _drawList[pos];
+ const DrawListStruct &drawCmd = drawList[pos];
const uint32 flags = drawCmd.type;
// Drawing actors
if (flags < DrawListType::DrawShadows) {
@@ -666,12 +666,13 @@ void Redraw::redrawEngineActions(bool bgRedraw) {
blitBackgroundAreas();
}
- int32 drawListPos = fillActorDrawingList(bgRedraw);
- drawListPos = fillExtraDrawingList(drawListPos);
- sortDrawingList(_drawList, drawListPos);
+ DrawListStruct drawList[150];
+ int32 drawListPos = fillActorDrawingList(drawList, bgRedraw);
+ drawListPos = fillExtraDrawingList(drawList, drawListPos);
+ sortDrawingList(drawList, drawListPos);
currNumOfRedrawBox = 0;
- processDrawList(drawListPos, bgRedraw);
+ processDrawList(drawList, drawListPos, bgRedraw);
if (_engine->cfgfile.Debug) {
_engine->_debugScene->renderDebugView();
diff --git a/engines/twine/renderer/redraw.h b/engines/twine/renderer/redraw.h
index d78f6b1a8a..0f5055af58 100644
--- a/engines/twine/renderer/redraw.h
+++ b/engines/twine/renderer/redraw.h
@@ -95,9 +95,6 @@ private:
int32 _bubbleActor = -1;
int32 _bubbleSpriteIndex = SPRITEHQR_DIAG_BUBBLE_LEFT;
- /** Draw list array to grab the necessary */
- DrawListStruct _drawList[150];
-
/**
* Add a certain region to the current redraw list array
* @param redrawArea redraw the region
@@ -115,9 +112,9 @@ private:
void processDrawListActorSprites(const DrawListStruct& drawCmd, bool bgRedraw);
void processDrawListExtras(const DrawListStruct& drawCmd);
- int32 fillActorDrawingList(bool bgRedraw);
- int32 fillExtraDrawingList(int32 drawListPos);
- void processDrawList(int32 drawListPos, bool bgRedraw);
+ int32 fillActorDrawingList(DrawListStruct *drawList, bool bgRedraw);
+ int32 fillExtraDrawingList(DrawListStruct *drawList, int32 drawListPos);
+ void processDrawList(DrawListStruct *drawList, int32 drawListPos, bool bgRedraw);
void renderOverlays();
public:
Commit: 4861568f6a1cd4f177c75ad391c4e98252e07c3a
https://github.com/scummvm/scummvm/commit/4861568f6a1cd4f177c75ad391c4e98252e07c3a
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-07-31T16:48:23+02:00
Commit Message:
TWINE: const for Redraw::sortDrawingList
Changed paths:
engines/twine/renderer/redraw.cpp
engines/twine/renderer/redraw.h
diff --git a/engines/twine/renderer/redraw.cpp b/engines/twine/renderer/redraw.cpp
index 2d10fff059..c3be2265b1 100644
--- a/engines/twine/renderer/redraw.cpp
+++ b/engines/twine/renderer/redraw.cpp
@@ -140,7 +140,7 @@ void Redraw::blitBackgroundAreas() {
}
}
-void Redraw::sortDrawingList(DrawListStruct *list, int32 listSize) {
+void Redraw::sortDrawingList(DrawListStruct *list, int32 listSize) const {
if (listSize == 1) {
return;
}
diff --git a/engines/twine/renderer/redraw.h b/engines/twine/renderer/redraw.h
index 0f5055af58..7aedb1aa47 100644
--- a/engines/twine/renderer/redraw.h
+++ b/engines/twine/renderer/redraw.h
@@ -130,6 +130,9 @@ public:
/** Number of redraw regions in the screen */
int32 numOfRedrawBox = 0;
+ int _sceneryViewX = 0;
+ int _sceneryViewY = 0;
+
OverlayListStruct overlayList[OVERLAY_MAX_ENTRIES];
void addOverlay(OverlayType type, int16 info0, int16 x, int16 y, int16 info1, OverlayPosType posType, int16 lifeTime);
@@ -167,10 +170,7 @@ public:
* @param list drawing list variable which contains information of the drawing objects
* @param listSize number of drawing objects in the list
*/
- void sortDrawingList(DrawListStruct *list, int32 listSize);
-
- int _sceneryViewX = 0;
- int _sceneryViewY = 0;
+ void sortDrawingList(DrawListStruct *list, int32 listSize) const;
/**
* Zooms the area around the scenery view focus positions
Commit: 9210708eebf4a43f04a2c1fc17a1375c1e16b7d7
https://github.com/scummvm/scummvm/commit/9210708eebf4a43f04a2c1fc17a1375c1e16b7d7
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-07-31T16:48:23+02:00
Commit Message:
TWINE: renamed members
Changed paths:
engines/twine/debugger/console.cpp
engines/twine/debugger/debug.cpp
engines/twine/debugger/debug_grid.cpp
engines/twine/flamovies.cpp
engines/twine/holomap.cpp
engines/twine/menu/menu.cpp
engines/twine/menu/menu.h
engines/twine/menu/menuoptions.cpp
engines/twine/menu/menuoptions.h
engines/twine/renderer/redraw.cpp
engines/twine/renderer/redraw.h
engines/twine/renderer/renderer.cpp
engines/twine/renderer/screens.cpp
engines/twine/renderer/screens.h
engines/twine/resources/resources.cpp
engines/twine/scene/gamestate.cpp
engines/twine/scene/grid.cpp
engines/twine/scene/scene.cpp
engines/twine/script/script_life_v1.cpp
engines/twine/script/script_move_v1.cpp
engines/twine/twine.cpp
diff --git a/engines/twine/debugger/console.cpp b/engines/twine/debugger/console.cpp
index 3911c794f5..a8fb233291 100644
--- a/engines/twine/debugger/console.cpp
+++ b/engines/twine/debugger/console.cpp
@@ -109,7 +109,7 @@ bool TwinEConsole::doToggleClipRendering(int argc, const char **argv) {
}
bool TwinEConsole::doToggleSceneryView(int argc, const char **argv) {
- TOGGLE_DEBUG(_engine->_redraw->inSceneryView, "scenery view\n")
+ TOGGLE_DEBUG(_engine->_redraw->_inSceneryView, "scenery view\n")
return true;
}
diff --git a/engines/twine/debugger/debug.cpp b/engines/twine/debugger/debug.cpp
index 7f2c36daf8..7c10e82034 100644
--- a/engines/twine/debugger/debug.cpp
+++ b/engines/twine/debugger/debug.cpp
@@ -396,7 +396,7 @@ int32 Debug::debugProcessButton(int32 x, int32 y) {
void Debug::debugPlasmaWindow(const char *text, int32 color) {
_engine->_menu->processPlasmaEffect(Common::Rect(0, 0, PLASMA_WIDTH, PLASMA_HEIGHT), color);
if (!(_engine->getRandomNumber() % 5)) {
- _engine->_menu->plasmaEffectPtr[_engine->getRandomNumber() % PLASMA_WIDTH * 10 + 6400] = 255;
+ _engine->_menu->_plasmaEffectPtr[_engine->getRandomNumber() % PLASMA_WIDTH * 10 + 6400] = 255;
}
const int32 textSize = _engine->_text->getTextSize(text);
_engine->_text->drawText((_engine->width() / 2) - (textSize / 2), 10, text);
@@ -461,7 +461,7 @@ void Debug::debugProcessWindow() {
count++;
}
- _engine->_redraw->reqBgRedraw = true;
+ _engine->_redraw->_reqBgRedraw = true;
}
void Debug::processDebug() {
diff --git a/engines/twine/debugger/debug_grid.cpp b/engines/twine/debugger/debug_grid.cpp
index b8755bad86..c5ea885899 100644
--- a/engines/twine/debugger/debug_grid.cpp
+++ b/engines/twine/debugger/debug_grid.cpp
@@ -44,17 +44,17 @@ void DebugGrid::changeGridCamera() {
Input *input = _engine->_input;
if (input->isActionActive(TwinEActionType::DebugGridCameraPressUp)) {
grid->newCamera.z--;
- redraw->reqBgRedraw = true;
+ redraw->_reqBgRedraw = true;
} else if (input->isActionActive(TwinEActionType::DebugGridCameraPressDown)) {
grid->newCamera.z++;
- redraw->reqBgRedraw = true;
+ redraw->_reqBgRedraw = true;
}
if (input->isActionActive(TwinEActionType::DebugGridCameraPressLeft)) {
grid->newCamera.x--;
- redraw->reqBgRedraw = true;
+ redraw->_reqBgRedraw = true;
} else if (input->isActionActive(TwinEActionType::DebugGridCameraPressRight)) {
grid->newCamera.x++;
- redraw->reqBgRedraw = true;
+ redraw->_reqBgRedraw = true;
}
}
@@ -71,7 +71,7 @@ void DebugGrid::changeGrid() {
scene->currentSceneIdx = LBA1SceneId::Citadel_Island_Prison;
}
scene->needChangeScene = scene->currentSceneIdx;
- redraw->reqBgRedraw = true;
+ redraw->_reqBgRedraw = true;
}
if (input->toggleActionIfActive(TwinEActionType::PreviousRoom)) {
@@ -80,7 +80,7 @@ void DebugGrid::changeGrid() {
scene->currentSceneIdx = LBA1SceneId::SceneIdMax - 1;
}
scene->needChangeScene = scene->currentSceneIdx;
- redraw->reqBgRedraw = true;
+ redraw->_reqBgRedraw = true;
}
}
@@ -112,7 +112,7 @@ void DebugGrid::applyCellingGrid() {
} else if (grid->useCellingGrid == 1) {
grid->useCellingGrid = -1;
grid->createGridMap();
- _engine->_redraw->reqBgRedraw = true;
+ _engine->_redraw->_reqBgRedraw = true;
debug("Disable Celling Grid index: %d", grid->cellingGridIdx);
_engine->_scene->needChangeScene = SCENE_CEILING_GRID_FADE_2; // tricky to make the fade
}
diff --git a/engines/twine/flamovies.cpp b/engines/twine/flamovies.cpp
index ba3d18988c..750bfbb59c 100644
--- a/engines/twine/flamovies.cpp
+++ b/engines/twine/flamovies.cpp
@@ -186,7 +186,7 @@ void FlaMovies::processFrame() {
case kLoadPalette: {
int16 numOfColor = stream.readSint16LE();
int16 startColor = stream.readSint16LE();
- uint8 *dest = _engine->_screens->palette + (startColor * 3);
+ uint8 *dest = _engine->_screens->_palette + (startColor * 3);
stream.read(dest, numOfColor * 3);
break;
}
@@ -200,8 +200,8 @@ void FlaMovies::processFrame() {
// FLA movies don't use cross fade
// fade out tricky
if (_fadeOut != 1) {
- _engine->_screens->convertPalToRGBA(_engine->_screens->palette, _engine->_screens->paletteRGBACustom);
- _engine->_screens->fadeToBlack(_engine->_screens->paletteRGBACustom);
+ _engine->_screens->convertPalToRGBA(_engine->_screens->_palette, _engine->_screens->_paletteRGBACustom);
+ _engine->_screens->fadeToBlack(_engine->_screens->_paletteRGBACustom);
_fadeOut = 1;
}
break;
@@ -289,7 +289,7 @@ void FlaMovies::prepareGIF(int index) {
debug(2, "Show gif with id %i from %s", index, Resources::HQR_FLAGIF_FILE);
delete stream;
_engine->delaySkip(5000);
- _engine->setPalette(_engine->_screens->paletteRGBA);
+ _engine->setPalette(_engine->_screens->_paletteRGBA);
}
void FlaMovies::playGIFMovie(const char *flaName) {
@@ -403,19 +403,19 @@ void FlaMovies::playFlaMovie(const char *flaName) {
// Only blit to screen if isn't a fade
if (_fadeOut == -1) {
- _engine->_screens->convertPalToRGBA(_engine->_screens->palette, _engine->_screens->paletteRGBACustom);
+ _engine->_screens->convertPalToRGBA(_engine->_screens->_palette, _engine->_screens->_paletteRGBACustom);
if (currentFrame == 0) {
// fade in the first frame
- _engine->_screens->fadeIn(_engine->_screens->paletteRGBACustom);
+ _engine->_screens->fadeIn(_engine->_screens->_paletteRGBACustom);
} else {
- _engine->setPalette(_engine->_screens->paletteRGBACustom);
+ _engine->setPalette(_engine->_screens->_paletteRGBACustom);
}
}
// TRICKY: fade in tricky
if (_fadeOutFrames >= 2) {
- _engine->_screens->convertPalToRGBA(_engine->_screens->palette, _engine->_screens->paletteRGBACustom);
- _engine->_screens->fadeToPal(_engine->_screens->paletteRGBACustom);
+ _engine->_screens->convertPalToRGBA(_engine->_screens->_palette, _engine->_screens->_paletteRGBACustom);
+ _engine->_screens->fadeToPal(_engine->_screens->_paletteRGBACustom);
_fadeOut = -1;
_fadeOutFrames = 0;
}
@@ -425,9 +425,9 @@ void FlaMovies::playFlaMovie(const char *flaName) {
}
if (_engine->cfgfile.CrossFade) {
- _engine->crossFade(_engine->_screens->paletteRGBACustom);
+ _engine->crossFade(_engine->_screens->_paletteRGBACustom);
} else {
- _engine->_screens->fadeToBlack(_engine->_screens->paletteRGBACustom);
+ _engine->_screens->fadeToBlack(_engine->_screens->_paletteRGBACustom);
}
_engine->_sound->stopSamples();
diff --git a/engines/twine/holomap.cpp b/engines/twine/holomap.cpp
index cf530b3bfd..cbabb388b7 100644
--- a/engines/twine/holomap.cpp
+++ b/engines/twine/holomap.cpp
@@ -108,16 +108,16 @@ void Holomap::loadHolomapGFX() {
int32 j = 576;
for (int32 i = 0; i < 96; i += 3, j += 3) {
- _paletteHolomap[i + 0] = _engine->_screens->palette[j + 0];
- _paletteHolomap[i + 1] = _engine->_screens->palette[j + 1];
- _paletteHolomap[i + 2] = _engine->_screens->palette[j + 2];
+ _paletteHolomap[i + 0] = _engine->_screens->_palette[j + 0];
+ _paletteHolomap[i + 1] = _engine->_screens->_palette[j + 1];
+ _paletteHolomap[i + 2] = _engine->_screens->_palette[j + 2];
}
j = 576;
for (int32 i = 96; i < 189; i += 3, j += 3) {
- _paletteHolomap[i + 0] = _engine->_screens->palette[j + 0];
- _paletteHolomap[i + 1] = _engine->_screens->palette[j + 1];
- _paletteHolomap[i + 2] = _engine->_screens->palette[j + 2];
+ _paletteHolomap[i + 0] = _engine->_screens->_palette[j + 0];
+ _paletteHolomap[i + 1] = _engine->_screens->_palette[j + 1];
+ _paletteHolomap[i + 2] = _engine->_screens->_palette[j + 2];
}
prepareHolomapProjectedPositions();
@@ -291,7 +291,7 @@ void Holomap::drawHolomapTrajectory(int32 trajectoryIndex) {
_engine->exitSceneryView();
_engine->_interface->resetClip();
_engine->_screens->clearScreen();
- _engine->setPalette(_engine->_screens->paletteRGBA);
+ _engine->setPalette(_engine->_screens->_paletteRGBA);
loadHolomapGFX();
ScopedEngineFreeze timeFreeze(_engine);
@@ -383,7 +383,7 @@ void Holomap::drawHolomapTrajectory(int32 trajectoryIndex) {
}
_engine->_screens->clearScreen();
- _engine->setPalette(_engine->_screens->paletteRGBA);
+ _engine->setPalette(_engine->_screens->_paletteRGBA);
_engine->_gameState->initEngineProjections();
_engine->_interface->loadClip();
@@ -482,12 +482,12 @@ void Holomap::processHolomap() {
_engine->exitSceneryView();
- _engine->_screens->fadeToBlack(_engine->_screens->paletteRGBA);
+ _engine->_screens->fadeToBlack(_engine->_screens->_paletteRGBA);
_engine->_sound->stopSamples();
_engine->_interface->saveClip();
_engine->_interface->resetClip();
_engine->_screens->clearScreen();
- _engine->setPalette(_engine->_screens->paletteRGBA);
+ _engine->setPalette(_engine->_screens->_paletteRGBA);
loadHolomapGFX();
@@ -610,7 +610,7 @@ void Holomap::processHolomap() {
_engine->_screens->clearScreen();
_engine->_text->drawTextBoxBackground = true;
- _engine->setPalette(_engine->_screens->paletteRGBA);
+ _engine->setPalette(_engine->_screens->_paletteRGBA);
_engine->_scene->alphaLight = alphaLightTmp;
_engine->_scene->betaLight = betaLightTmp;
diff --git a/engines/twine/menu/menu.cpp b/engines/twine/menu/menu.cpp
index 791c894781..680e802552 100644
--- a/engines/twine/menu/menu.cpp
+++ b/engines/twine/menu/menu.cpp
@@ -159,20 +159,20 @@ const char *MenuSettings::getButtonText(Text *text, int buttonIndex) {
Menu::Menu(TwinEEngine *engine) {
_engine = engine;
- optionsMenuState = _priv::createOptionsMenu();
- giveUpMenuWithSaveState = _priv::createGiveUpSaveMenu();
- volumeMenuState = _priv::createVolumeMenu();
- saveManageMenuState = _priv::createSaveManageMenu();
- giveUpMenuState = _priv::createGiveUpMenu();
- mainMenuState = _priv::createMainMenu();
- advOptionsMenuState = _priv::createAdvancedOptionsMenu();
-
- Common::fill(&behaviourAnimState[0], &behaviourAnimState[4], 0);
- Common::fill(&itemAngle[0], &itemAngle[NUM_INVENTORY_ITEMS], 0);
+ _optionsMenuState = _priv::createOptionsMenu();
+ _giveUpMenuWithSaveState = _priv::createGiveUpSaveMenu();
+ _volumeMenuState = _priv::createVolumeMenu();
+ _saveManageMenuState = _priv::createSaveManageMenu();
+ _giveUpMenuState = _priv::createGiveUpMenu();
+ _mainMenuState = _priv::createMainMenu();
+ _advOptionsMenuState = _priv::createAdvancedOptionsMenu();
+
+ Common::fill(&_behaviourAnimState[0], &_behaviourAnimState[4], 0);
+ Common::fill(&_itemAngle[0], &_itemAngle[NUM_INVENTORY_ITEMS], 0);
}
Menu::~Menu() {
- free(plasmaEffectPtr);
+ free(_plasmaEffectPtr);
}
void Menu::plasmaEffectRenderFrame() {
@@ -181,16 +181,16 @@ void Menu::plasmaEffectRenderFrame() {
/* Here we calculate the average of all 8 neighbour pixel values */
int16 c;
- c = plasmaEffectPtr[(i - 1) + (j - 1) * PLASMA_WIDTH]; //top-left
- c += plasmaEffectPtr[(i + 0) + (j - 1) * PLASMA_WIDTH]; //top
- c += plasmaEffectPtr[(i + 1) + (j - 1) * PLASMA_WIDTH]; //top-right
+ c = _plasmaEffectPtr[(i - 1) + (j - 1) * PLASMA_WIDTH]; //top-left
+ c += _plasmaEffectPtr[(i + 0) + (j - 1) * PLASMA_WIDTH]; //top
+ c += _plasmaEffectPtr[(i + 1) + (j - 1) * PLASMA_WIDTH]; //top-right
- c += plasmaEffectPtr[(i - 1) + (j + 0) * PLASMA_WIDTH]; //left
- c += plasmaEffectPtr[(i + 1) + (j + 0) * PLASMA_WIDTH]; //right
+ c += _plasmaEffectPtr[(i - 1) + (j + 0) * PLASMA_WIDTH]; //left
+ c += _plasmaEffectPtr[(i + 1) + (j + 0) * PLASMA_WIDTH]; //right
- c += plasmaEffectPtr[(i - 1) + (j + 1) * PLASMA_WIDTH]; // bottom-left
- c += plasmaEffectPtr[(i + 0) + (j + 1) * PLASMA_WIDTH]; // bottom
- c += plasmaEffectPtr[(i + 1) + (j + 1) * PLASMA_WIDTH]; // bottom-right
+ c += _plasmaEffectPtr[(i - 1) + (j + 1) * PLASMA_WIDTH]; // bottom-left
+ c += _plasmaEffectPtr[(i + 0) + (j + 1) * PLASMA_WIDTH]; // bottom
+ c += _plasmaEffectPtr[(i + 1) + (j + 1) * PLASMA_WIDTH]; // bottom-right
/* And the 2 least significant bits are used as a
* randomizing parameter for statistically fading the flames */
@@ -202,13 +202,13 @@ void Menu::plasmaEffectRenderFrame() {
}
/* plot the pixel using the calculated color */
- plasmaEffectPtr[i + (PLASMA_HEIGHT + j) * PLASMA_WIDTH] = (uint8)c;
+ _plasmaEffectPtr[i + (PLASMA_HEIGHT + j) * PLASMA_WIDTH] = (uint8)c;
}
}
// flip the double-buffer while scrolling the effect vertically:
- const uint8 *src = plasmaEffectPtr + (PLASMA_HEIGHT + 1) * PLASMA_WIDTH;
- memcpy(plasmaEffectPtr, src, PLASMA_HEIGHT * PLASMA_WIDTH);
+ const uint8 *src = _plasmaEffectPtr + (PLASMA_HEIGHT + 1) * PLASMA_WIDTH;
+ memcpy(_plasmaEffectPtr, src, PLASMA_HEIGHT * PLASMA_WIDTH);
}
void Menu::processPlasmaEffect(const Common::Rect &rect, int32 color) {
@@ -216,7 +216,7 @@ void Menu::processPlasmaEffect(const Common::Rect &rect, int32 color) {
plasmaEffectRenderFrame();
- const uint8 *in = plasmaEffectPtr + 5 * PLASMA_WIDTH;
+ const uint8 *in = _plasmaEffectPtr + 5 * PLASMA_WIDTH;
uint8 *out = (uint8 *)_engine->imageBuffer.getBasePtr(0, 0);
for (int32 y = 0; y < PLASMA_HEIGHT / 2; y++) {
@@ -251,7 +251,7 @@ void Menu::drawBox(int32 left, int32 top, int32 right, int32 bottom, int32 color
void Menu::drawButtonGfx(const MenuSettings *menuSettings, const Common::Rect &rect, int32 buttonId, const char *dialText, bool hover) {
if (hover) {
- if (menuSettings == &volumeMenuState && buttonId <= MenuButtonTypes::kSpeechVolume && buttonId >= MenuButtonTypes::kMusicVolume) {
+ if (menuSettings == &_volumeMenuState && buttonId <= MenuButtonTypes::kSpeechVolume && buttonId >= MenuButtonTypes::kMusicVolume) {
int32 newWidth = 0;
switch (buttonId) {
case MenuButtonTypes::kMusicVolume: {
@@ -278,13 +278,13 @@ void Menu::drawButtonGfx(const MenuSettings *menuSettings, const Common::Rect &r
processPlasmaEffect(rect, COLOR_80);
if (!(_engine->getRandomNumber() % 5)) {
- plasmaEffectPtr[_engine->getRandomNumber() % 140 * 10 + 1900] = 255;
+ _plasmaEffectPtr[_engine->getRandomNumber() % 140 * 10 + 1900] = 255;
}
_engine->_interface->drawFilledRect(Common::Rect(newWidth, rect.top, rect.right, rect.bottom), COLOR_68);
} else {
processPlasmaEffect(rect, COLOR_64);
if (!(_engine->getRandomNumber() % 5)) {
- plasmaEffectPtr[_engine->getRandomNumber() % PLASMA_WIDTH * 10 + 6400] = 255;
+ _plasmaEffectPtr[_engine->getRandomNumber() % PLASMA_WIDTH * 10 + 6400] = 255;
}
}
} else {
@@ -320,7 +320,7 @@ int16 Menu::drawButtons(MenuSettings *menuSettings, bool hover) {
int16 mouseActiveButton = -1;
for (int16 i = 0; i < maxButton; ++i) {
- if (menuSettings == &advOptionsMenuState) {
+ if (menuSettings == &_advOptionsMenuState) {
int16 id = menuSettings->getButtonState(i);
switch (id) {
case MenuButtonTypes::kAggressiveMode:
@@ -447,7 +447,7 @@ int32 Menu::processMenu(MenuSettings *menuSettings, bool showCredits) {
}
const int16 id = menuSettings->getActiveButtonState();
- if (menuSettings == &advOptionsMenuState) {
+ if (menuSettings == &_advOptionsMenuState) {
switch (id) {
case MenuButtonTypes::kAggressiveMode:
if (_engine->_input->toggleActionIfActive(TwinEActionType::UILeft) || _engine->_input->toggleActionIfActive(TwinEActionType::UIRight) || _engine->_input->toggleActionIfActive(TwinEActionType::UIEnter)) {
@@ -500,7 +500,7 @@ int32 Menu::processMenu(MenuSettings *menuSettings, bool showCredits) {
default:
break;
}
- } else if (menuSettings == &volumeMenuState) {
+ } else if (menuSettings == &_volumeMenuState) {
Audio::Mixer *mixer = _engine->_system->getMixer();
switch (id) {
case MenuButtonTypes::kMusicVolume: {
@@ -615,7 +615,7 @@ int32 Menu::advoptionsMenu() {
ScopedCursor scoped(_engine);
for (;;) {
- switch (processMenu(&advOptionsMenuState)) {
+ switch (processMenu(&_advOptionsMenuState)) {
case (int32)TextId::kReturnMenu: {
return 0;
}
@@ -639,7 +639,7 @@ int32 Menu::savemanageMenu() {
ScopedCursor scoped(_engine);
for (;;) {
- switch (processMenu(&saveManageMenuState)) {
+ switch (processMenu(&_saveManageMenuState)) {
case (int32)TextId::kReturnMenu:
return 0;
case (int32)TextId::kCreateSaveGame:
@@ -664,7 +664,7 @@ int32 Menu::volumeMenu() {
ScopedCursor scoped(_engine);
for (;;) {
- switch (processMenu(&volumeMenuState)) {
+ switch (processMenu(&_volumeMenuState)) {
case (int32)TextId::kReturnMenu:
return 0;
case kQuitEngine:
@@ -684,11 +684,11 @@ int32 Menu::volumeMenu() {
void Menu::inGameOptionsMenu() {
_engine->_text->initTextBank(TextBankId::Options_and_menus);
- optionsMenuState.setButtonTextId(0, TextId::kReturnGame);
+ _optionsMenuState.setButtonTextId(0, TextId::kReturnGame);
_engine->saveFrontBuffer();
optionsMenu();
_engine->_text->initSceneTextBank();
- optionsMenuState.setButtonTextId(0, TextId::kReturnMenu);
+ _optionsMenuState.setButtonTextId(0, TextId::kReturnMenu);
}
int32 Menu::optionsMenu() {
@@ -699,7 +699,7 @@ int32 Menu::optionsMenu() {
ScopedCursor scoped(_engine);
for (;;) {
- switch (processMenu(&optionsMenuState)) {
+ switch (processMenu(&_optionsMenuState)) {
case (int32)TextId::kReturnGame:
case (int32)TextId::kReturnMenu: {
return 0;
@@ -747,12 +747,12 @@ static const byte cursorPalette[] = {
bool Menu::init() {
// load menu effect file only once
- plasmaEffectPtr = (uint8 *)malloc(kPlasmaEffectFilesize);
- memset(plasmaEffectPtr, 0, kPlasmaEffectFilesize);
+ _plasmaEffectPtr = (uint8 *)malloc(kPlasmaEffectFilesize);
+ memset(_plasmaEffectPtr, 0, kPlasmaEffectFilesize);
CursorMan.pushCursor(cursorArrow, 11, 16, 1, 1, 3);
CursorMan.pushCursorPalette(cursorPalette, 0, 2);
- return HQR::getEntry(plasmaEffectPtr, Resources::HQR_RESS_FILE, RESSHQR_PLASMAEFFECT) > 0;
+ return HQR::getEntry(_plasmaEffectPtr, Resources::HQR_RESS_FILE, RESSHQR_PLASMAEFFECT) > 0;
}
EngineState Menu::run() {
@@ -763,7 +763,7 @@ EngineState Menu::run() {
_engine->_sound->stopSamples();
ScopedCursor scoped(_engine);
- switch (processMenu(&mainMenuState)) {
+ switch (processMenu(&_mainMenuState)) {
case (int32)TextId::kNewGame: {
if (_engine->_menuOptions->newGameMenu()) {
return EngineState::GameLoop;
@@ -798,9 +798,9 @@ int32 Menu::giveupMenu() {
MenuSettings *localMenu;
if (_engine->cfgfile.UseAutoSaving) {
- localMenu = &giveUpMenuState;
+ localMenu = &_giveUpMenuState;
} else {
- localMenu = &giveUpMenuWithSaveState;
+ localMenu = &_giveUpMenuWithSaveState;
}
ScopedCursor scoped(_engine);
@@ -938,14 +938,14 @@ void Menu::drawBehaviour(int32 left, int32 top, HeroBehaviourType behaviour, int
const int animIdx = _engine->_actor->heroAnimIdx[(byte)behaviour];
const AnimData ¤tAnimData = _engine->_resources->animData[animIdx];
- uint currentAnimState = behaviourAnimState[(byte)behaviour];
+ uint currentAnimState = _behaviourAnimState[(byte)behaviour];
- if (_engine->_animations->setModelAnimation(currentAnimState, currentAnimData, *behaviourEntity, &behaviourAnimData[(byte)behaviour])) {
+ if (_engine->_animations->setModelAnimation(currentAnimState, currentAnimData, *_behaviourEntity, &_behaviourAnimData[(byte)behaviour])) {
currentAnimState++; // keyframe
if (currentAnimState >= currentAnimData.getNumKeyframes()) {
currentAnimState = currentAnimData.getLoopFrame();
}
- behaviourAnimState[(byte)behaviour] = currentAnimState;
+ _behaviourAnimState[(byte)behaviour] = currentAnimState;
}
if (!cantDrawBox) {
@@ -985,7 +985,7 @@ void Menu::drawBehaviour(int32 left, int32 top, HeroBehaviourType behaviour, int
_engine->_interface->drawFilledRect(boxRect, COLOR_BLACK);
}
- _engine->_renderer->renderBehaviourModel(boxRect, -600, angle, *behaviourEntity);
+ _engine->_renderer->renderBehaviourModel(boxRect, -600, angle, *_behaviourEntity);
if (dirtyRect.isEmpty()) {
dirtyRect = boxRect;
@@ -998,7 +998,7 @@ void Menu::drawBehaviour(int32 left, int32 top, HeroBehaviourType behaviour, int
void Menu::prepareAndDrawBehaviour(int32 left, int32 top, int32 angle, HeroBehaviourType behaviour, Common::Rect &dirtyRect) {
const int animIdx = _engine->_actor->heroAnimIdx[(byte)behaviour];
- _engine->_animations->setAnimAtKeyframe(behaviourAnimState[(byte)behaviour], _engine->_resources->animData[animIdx], *behaviourEntity, &behaviourAnimData[(byte)behaviour]);
+ _engine->_animations->setAnimAtKeyframe(_behaviourAnimState[(byte)behaviour], _engine->_resources->animData[animIdx], *_behaviourEntity, &_behaviourAnimData[(byte)behaviour]);
drawBehaviour(left, top, behaviour, angle, false, dirtyRect);
}
@@ -1033,14 +1033,14 @@ void Menu::processBehaviourMenu() {
_engine->_actor->setBehaviour(HeroBehaviourType::kNormal);
}
- behaviourEntity = &_engine->_resources->bodyData[_engine->_scene->sceneHero->entity];
+ _behaviourEntity = &_engine->_resources->bodyData[_engine->_scene->sceneHero->entity];
_engine->_actor->heroAnimIdx[(byte)HeroBehaviourType::kNormal] = _engine->_actor->heroAnimIdxNORMAL;
_engine->_actor->heroAnimIdx[(byte)HeroBehaviourType::kAthletic] = _engine->_actor->heroAnimIdxATHLETIC;
_engine->_actor->heroAnimIdx[(byte)HeroBehaviourType::kAggressive] = _engine->_actor->heroAnimIdxAGGRESSIVE;
_engine->_actor->heroAnimIdx[(byte)HeroBehaviourType::kDiscrete] = _engine->_actor->heroAnimIdxDISCRETE;
- _engine->_movements->setActorAngleSafe(_engine->_scene->sceneHero->angle, _engine->_scene->sceneHero->angle - ANGLE_90, ANGLE_17, &moveMenu);
+ _engine->_movements->setActorAngleSafe(_engine->_scene->sceneHero->angle, _engine->_scene->sceneHero->angle - ANGLE_90, ANGLE_17, &_moveMenu);
_engine->saveFrontBuffer();
@@ -1056,7 +1056,7 @@ void Menu::processBehaviourMenu() {
HeroBehaviourType tmpHeroBehaviour = _engine->_actor->heroBehaviour;
const int animIdx = _engine->_actor->heroAnimIdx[(byte)_engine->_actor->heroBehaviour];
- _engine->_animations->setAnimAtKeyframe(behaviourAnimState[(byte)_engine->_actor->heroBehaviour], _engine->_resources->animData[animIdx], *behaviourEntity, &behaviourAnimData[(byte)_engine->_actor->heroBehaviour]);
+ _engine->_animations->setAnimAtKeyframe(_behaviourAnimState[(byte)_engine->_actor->heroBehaviour], _engine->_resources->animData[animIdx], *_behaviourEntity, &_behaviourAnimData[(byte)_engine->_actor->heroBehaviour]);
int32 tmpTime = _engine->lbaTime;
@@ -1099,9 +1099,9 @@ void Menu::processBehaviourMenu() {
if (tmpHeroBehaviour != _engine->_actor->heroBehaviour) {
drawBehaviour(left, top, tmpHeroBehaviour, _engine->_scene->sceneHero->angle, true, dirtyRect);
tmpHeroBehaviour = _engine->_actor->heroBehaviour;
- _engine->_movements->setActorAngleSafe(_engine->_scene->sceneHero->angle, _engine->_scene->sceneHero->angle - ANGLE_90, ANGLE_17, &moveMenu);
+ _engine->_movements->setActorAngleSafe(_engine->_scene->sceneHero->angle, _engine->_scene->sceneHero->angle - ANGLE_90, ANGLE_17, &_moveMenu);
const int tmpAnimIdx = _engine->_actor->heroAnimIdx[(byte)_engine->_actor->heroBehaviour];
- _engine->_animations->setAnimAtKeyframe(behaviourAnimState[(byte)_engine->_actor->heroBehaviour], _engine->_resources->animData[tmpAnimIdx], *behaviourEntity, &behaviourAnimData[(byte)_engine->_actor->heroBehaviour]);
+ _engine->_animations->setAnimAtKeyframe(_behaviourAnimState[(byte)_engine->_actor->heroBehaviour], _engine->_resources->animData[tmpAnimIdx], *_behaviourEntity, &_behaviourAnimData[(byte)_engine->_actor->heroBehaviour]);
}
drawBehaviour(left, top, _engine->_actor->heroBehaviour, -1, true, dirtyRect);
@@ -1130,14 +1130,14 @@ void Menu::drawItem(int32 left, int32 top, int32 item, Common::Rect &dirtyRect)
const int32 itemX = (item / 4) * (itemWidth + itemPadding) + left + itemWidthHalf + itemPadding - 1;
const int32 itemY = (item % 4) * (itemHeight + itemPadding) + top + itemHeightHalf + itemPadding - 1;
const Common::Rect rect(itemX - itemWidthHalf, itemY - itemHeightHalf, itemX + itemWidthHalf, itemY + itemHeightHalf);
- const int32 color = inventorySelectedItem == item ? inventorySelectedColor : COLOR_BLACK;
+ const int32 color = _inventorySelectedItem == item ? _inventorySelectedColor : COLOR_BLACK;
_engine->_interface->drawFilledRect(rect, color);
if (item < NUM_INVENTORY_ITEMS && _engine->_gameState->hasItem((InventoryItems)item) && (!_engine->_gameState->inventoryDisabled() || item == InventoryItems::kiCloverLeaf)) {
- itemAngle[item] += ANGLE_2;
+ _itemAngle[item] += ANGLE_2;
_engine->_interface->setClip(rect);
- _engine->_renderer->renderInventoryItem(itemX, itemY, _engine->_resources->inventoryTable[item], itemAngle[item], 15000);
+ _engine->_renderer->renderInventoryItem(itemX, itemY, _engine->_resources->inventoryTable[item], _itemAngle[item], 15000);
_engine->_interface->resetClip();
if (item == InventoryItems::kGasItem) {
_engine->_text->setFontColor(COLOR_WHITE);
@@ -1178,7 +1178,7 @@ void Menu::processInventoryMenu() {
_engine->_renderer->setLightVector(ANGLE_315, ANGLE_334, ANGLE_0);
- inventorySelectedColor = COLOR_68;
+ _inventorySelectedColor = COLOR_68;
if (_engine->_gameState->inventoryNumLeafs > 0) {
_engine->_gameState->giveItem(InventoryItems::kiCloverLeaf);
@@ -1203,7 +1203,7 @@ void Menu::processInventoryMenu() {
for (;;) {
FrameMarker frame(_engine, 66);
_engine->readKeys();
- int32 prevSelectedItem = inventorySelectedItem;
+ int32 prevSelectedItem = _inventorySelectedItem;
if (_engine->_input->toggleAbortAction() || _engine->shouldQuit()) {
break;
@@ -1216,30 +1216,30 @@ void Menu::processInventoryMenu() {
Common::Rect dirtyRect;
if (cursorDown) {
- inventorySelectedItem++;
- if (inventorySelectedItem >= NUM_INVENTORY_ITEMS) {
- inventorySelectedItem = 0;
+ _inventorySelectedItem++;
+ if (_inventorySelectedItem >= NUM_INVENTORY_ITEMS) {
+ _inventorySelectedItem = 0;
}
drawItem(left, top, prevSelectedItem, dirtyRect);
updateItemText = true;
} else if (cursorUp) {
- inventorySelectedItem--;
- if (inventorySelectedItem < 0) {
- inventorySelectedItem = NUM_INVENTORY_ITEMS - 1;
+ _inventorySelectedItem--;
+ if (_inventorySelectedItem < 0) {
+ _inventorySelectedItem = NUM_INVENTORY_ITEMS - 1;
}
drawItem(left, top, prevSelectedItem, dirtyRect);
updateItemText = true;
} else if (cursorLeft) {
- inventorySelectedItem -= 4;
- if (inventorySelectedItem < 0) {
- inventorySelectedItem += NUM_INVENTORY_ITEMS;
+ _inventorySelectedItem -= 4;
+ if (_inventorySelectedItem < 0) {
+ _inventorySelectedItem += NUM_INVENTORY_ITEMS;
}
drawItem(left, top, prevSelectedItem, dirtyRect);
updateItemText = true;
} else if (cursorRight) {
- inventorySelectedItem += 4;
- if (inventorySelectedItem >= NUM_INVENTORY_ITEMS) {
- inventorySelectedItem -= NUM_INVENTORY_ITEMS;
+ _inventorySelectedItem += 4;
+ if (_inventorySelectedItem >= NUM_INVENTORY_ITEMS) {
+ _inventorySelectedItem -= NUM_INVENTORY_ITEMS;
}
drawItem(left, top, prevSelectedItem, dirtyRect);
updateItemText = true;
@@ -1247,8 +1247,8 @@ void Menu::processInventoryMenu() {
if (updateItemText) {
_engine->_text->initInventoryDialogueBox();
- if (inventorySelectedItem < NUM_INVENTORY_ITEMS && _engine->_gameState->hasItem((InventoryItems)inventorySelectedItem) && !_engine->_gameState->inventoryDisabled()) {
- _engine->_text->initInventoryText((InventoryItems)inventorySelectedItem);
+ if (_inventorySelectedItem < NUM_INVENTORY_ITEMS && _engine->_gameState->hasItem((InventoryItems)_inventorySelectedItem) && !_engine->_gameState->inventoryDisabled()) {
+ _engine->_text->initInventoryText((InventoryItems)_inventorySelectedItem);
} else {
_engine->_text->initInventoryText(InventoryItems::MaxInventoryItems);
}
@@ -1273,12 +1273,12 @@ void Menu::processInventoryMenu() {
}
}
- drawItem(left, top, inventorySelectedItem, dirtyRect);
+ drawItem(left, top, _inventorySelectedItem, dirtyRect);
- if (inventorySelectedItem < NUM_INVENTORY_ITEMS && _engine->_input->toggleActionIfActive(TwinEActionType::UIEnter) && _engine->_gameState->hasItem((InventoryItems)inventorySelectedItem) && !_engine->_gameState->inventoryDisabled()) {
- _engine->loopInventoryItem = inventorySelectedItem;
- inventorySelectedColor = COLOR_91;
- drawItem(left, top, inventorySelectedItem, dirtyRect);
+ if (_inventorySelectedItem < NUM_INVENTORY_ITEMS && _engine->_input->toggleActionIfActive(TwinEActionType::UIEnter) && _engine->_gameState->hasItem((InventoryItems)_inventorySelectedItem) && !_engine->_gameState->inventoryDisabled()) {
+ _engine->loopInventoryItem = _inventorySelectedItem;
+ _inventorySelectedColor = COLOR_91;
+ drawItem(left, top, _inventorySelectedItem, dirtyRect);
if (!dirtyRect.isEmpty()) {
_engine->copyBlockPhys(dirtyRect);
}
diff --git a/engines/twine/menu/menu.h b/engines/twine/menu/menu.h
index 81336f92d5..8a6677c943 100644
--- a/engines/twine/menu/menu.h
+++ b/engines/twine/menu/menu.h
@@ -137,14 +137,14 @@ class Menu {
private:
TwinEEngine *_engine;
/** Hero behaviour menu entity */
- BodyData *behaviourEntity = nullptr;
+ BodyData *_behaviourEntity = nullptr;
/** Behaviour menu anim state */
- uint behaviourAnimState[4]; // winTab
+ uint _behaviourAnimState[4]; // winTab
/** Behaviour menu anim data pointer */
- AnimTimerDataStruct behaviourAnimData[4];
+ AnimTimerDataStruct _behaviourAnimData[4];
- int32 inventorySelectedColor = COLOR_BLACK;
- int32 inventorySelectedItem = 0; // currentSelectedObjectInInventory
+ int32 _inventorySelectedColor = COLOR_BLACK;
+ int32 _inventorySelectedItem = 0; // currentSelectedObjectInInventory
/**
* Draws main menu button
@@ -175,13 +175,13 @@ private:
void drawBehaviourMenu(int32 left, int32 top, int32 angle);
void drawItem(int32 left, int32 top, int32 item, Common::Rect &dirtyRect);
- MenuSettings giveUpMenuWithSaveState;
- MenuSettings volumeMenuState;
- MenuSettings saveManageMenuState;
- MenuSettings giveUpMenuState;
- MenuSettings mainMenuState;
- MenuSettings advOptionsMenuState;
- MenuSettings optionsMenuState;
+ MenuSettings _giveUpMenuWithSaveState;
+ MenuSettings _volumeMenuState;
+ MenuSettings _saveManageMenuState;
+ MenuSettings _giveUpMenuState;
+ MenuSettings _mainMenuState;
+ MenuSettings _advOptionsMenuState;
+ MenuSettings _optionsMenuState;
void drawSpriteAndString(int32 left, int32 top, const SpriteData &spriteData, const Common::String &str, int32 color = COLOR_GOLD);
@@ -189,13 +189,13 @@ public:
Menu(TwinEEngine *engine);
~Menu();
- int16 itemAngle[NUM_INVENTORY_ITEMS]; // objectRotation
+ int16 _itemAngle[NUM_INVENTORY_ITEMS]; // objectRotation
/** Behaviour menu move pointer */
- ActorMoveStruct moveMenu;
+ ActorMoveStruct _moveMenu;
/** Plasma Effect pointer to file content: RESS.HQR:51 */
- uint8 *plasmaEffectPtr = nullptr;
+ uint8 *_plasmaEffectPtr = nullptr;
/**
* Process the plasma effect
diff --git a/engines/twine/menu/menuoptions.cpp b/engines/twine/menu/menuoptions.cpp
index 04f2b31978..c2adb2ead2 100644
--- a/engines/twine/menu/menuoptions.cpp
+++ b/engines/twine/menu/menuoptions.cpp
@@ -76,7 +76,7 @@ void MenuOptions::newGame() {
}
_engine->cfgfile.FlagDisplayText = tmpFlagDisplayText;
- _engine->_screens->fadeToBlack(_engine->_screens->paletteRGBACustom);
+ _engine->_screens->fadeToBlack(_engine->_screens->_paletteRGBACustom);
_engine->_screens->clearScreen();
if (!aborted) {
@@ -91,7 +91,7 @@ void MenuOptions::newGame() {
_engine->_text->renderTextTriangle = false;
// set main palette back
- _engine->setPalette(_engine->_screens->paletteRGBA);
+ _engine->setPalette(_engine->_screens->_paletteRGBA);
}
void MenuOptions::showCredits() {
@@ -118,7 +118,7 @@ void MenuOptions::showEndSequence() {
_engine->_flaMovies->playFlaMovie(FLA_THEEND);
_engine->_screens->clearScreen();
- _engine->setPalette(_engine->_screens->paletteRGBA);
+ _engine->setPalette(_engine->_screens->_paletteRGBA);
}
void MenuOptions::drawSelectableCharacter(int32 x, int32 y, Common::Rect &dirtyRect) {
@@ -349,7 +349,7 @@ bool MenuOptions::enterText(TextId textIdx, char *textTargetBuf, size_t bufSize)
bool MenuOptions::newGameMenu() {
_engine->restoreFrontBuffer();
- if (!enterText(TextId::kEnterYourName, saveGameName, sizeof(saveGameName))) {
+ if (!enterText(TextId::kEnterYourName, _saveGameName, sizeof(_saveGameName))) {
return false;
}
_engine->_gameState->initEngineVars();
diff --git a/engines/twine/menu/menuoptions.h b/engines/twine/menu/menuoptions.h
index f62c5b26ce..9effa77279 100644
--- a/engines/twine/menu/menuoptions.h
+++ b/engines/twine/menu/menuoptions.h
@@ -57,7 +57,7 @@ public:
void showCredits();
bool canShowCredits = false;
- char saveGameName[32] {'\0'};
+ char _saveGameName[32] {'\0'};
/** Main menu new game options */
bool newGameMenu();
diff --git a/engines/twine/renderer/redraw.cpp b/engines/twine/renderer/redraw.cpp
index c3be2265b1..f188ac6b21 100644
--- a/engines/twine/renderer/redraw.cpp
+++ b/engines/twine/renderer/redraw.cpp
@@ -49,7 +49,7 @@ namespace TwinE {
void Redraw::addRedrawCurrentArea(const Common::Rect &redrawArea) {
const int32 area = (redrawArea.right - redrawArea.left) * (redrawArea.bottom - redrawArea.top);
- for (int32 i = 0; i < numOfRedrawBox; ++i) {
+ for (int32 i = 0; i < _numOfRedrawBox; ++i) {
Common::Rect &rect = _currentRedrawList[i];
const int32 leftValue = MIN<int32>(redrawArea.left, rect.left);
const int32 rightValue = MAX<int32>(redrawArea.right, rect.right);
@@ -70,7 +70,7 @@ void Redraw::addRedrawCurrentArea(const Common::Rect &redrawArea) {
}
}
- Common::Rect &rect = _currentRedrawList[numOfRedrawBox];
+ Common::Rect &rect = _currentRedrawList[_numOfRedrawBox];
rect.left = redrawArea.left;
rect.top = redrawArea.top;
rect.right = redrawArea.right;
@@ -79,7 +79,7 @@ void Redraw::addRedrawCurrentArea(const Common::Rect &redrawArea) {
assert(rect.left <= rect.right);
assert(rect.top <= rect.bottom);
- numOfRedrawBox++;
+ _numOfRedrawBox++;
}
void Redraw::addRedrawArea(const Common::Rect &rect) {
@@ -107,27 +107,27 @@ void Redraw::addRedrawArea(int32 left, int32 top, int32 right, int32 bottom) {
return;
}
- Common::Rect &rect = _nextRedrawList[currNumOfRedrawBox];
+ Common::Rect &rect = _nextRedrawList[_currNumOfRedrawBox];
rect.left = left;
rect.top = top;
rect.right = right;
rect.bottom = bottom;
- currNumOfRedrawBox++;
+ _currNumOfRedrawBox++;
addRedrawCurrentArea(rect);
}
void Redraw::moveNextAreas() {
- numOfRedrawBox = 0;
+ _numOfRedrawBox = 0;
- for (int32 i = 0; i < currNumOfRedrawBox; i++) {
+ for (int32 i = 0; i < _currNumOfRedrawBox; i++) {
addRedrawCurrentArea(_nextRedrawList[i]);
}
}
void Redraw::flipRedrawAreas() {
- for (int32 i = 0; i < numOfRedrawBox; i++) { // redraw areas on screen
+ for (int32 i = 0; i < _numOfRedrawBox; i++) { // redraw areas on screen
_engine->copyBlockPhys(_currentRedrawList[i]);
}
@@ -135,7 +135,7 @@ void Redraw::flipRedrawAreas() {
}
void Redraw::blitBackgroundAreas() {
- for (int32 i = 0; i < numOfRedrawBox; i++) {
+ for (int32 i = 0; i < _numOfRedrawBox; i++) {
_engine->blitWorkToFront(_currentRedrawList[i]);
}
}
@@ -254,7 +254,7 @@ int32 Redraw::fillActorDrawingList(DrawListStruct *drawList, bool bgRedraw) {
drawList[drawListPos].offset = 2;
drawListPos++;
}
- if (inSceneryView && a == _engine->_scene->currentlyFollowedActor) {
+ if (_inSceneryView && a == _engine->_scene->currentlyFollowedActor) {
_sceneryViewX = _engine->_renderer->projPos.x;
_sceneryViewY = _engine->_renderer->projPos.y;
}
@@ -652,7 +652,7 @@ void Redraw::redrawEngineActions(bool bgRedraw) {
if (bgRedraw) {
_engine->freezeTime();
if (_engine->_scene->needChangeScene != SCENE_CEILING_GRID_FADE_1 && _engine->_scene->needChangeScene != SCENE_CEILING_GRID_FADE_2) {
- _engine->_screens->fadeOut(_engine->_screens->paletteRGBA);
+ _engine->_screens->fadeOut(_engine->_screens->_paletteRGBA);
}
_engine->_screens->clearScreen();
_engine->_grid->redrawGrid();
@@ -660,7 +660,7 @@ void Redraw::redrawEngineActions(bool bgRedraw) {
_engine->saveFrontBuffer();
if (_engine->_scene->needChangeScene != SCENE_CEILING_GRID_FADE_1 && _engine->_scene->needChangeScene != SCENE_CEILING_GRID_FADE_2) {
- _engine->_screens->fadeIn(_engine->_screens->paletteRGBA);
+ _engine->_screens->fadeIn(_engine->_screens->_paletteRGBA);
}
} else {
blitBackgroundAreas();
@@ -671,7 +671,7 @@ void Redraw::redrawEngineActions(bool bgRedraw) {
drawListPos = fillExtraDrawingList(drawList, drawListPos);
sortDrawingList(drawList, drawListPos);
- currNumOfRedrawBox = 0;
+ _currNumOfRedrawBox = 0;
processDrawList(drawList, drawListPos, bgRedraw);
if (_engine->cfgfile.Debug) {
@@ -685,7 +685,7 @@ void Redraw::redrawEngineActions(bool bgRedraw) {
// make ceiling grid fade
// need to be here to fade after drawing all actors in scene
if (_engine->_scene->needChangeScene == SCENE_CEILING_GRID_FADE_2) {
- _engine->crossFade(_engine->_screens->paletteRGBA);
+ _engine->crossFade(_engine->_screens->_paletteRGBA);
_engine->_scene->needChangeScene = SCENE_CEILING_GRID_FADE_1;
}
@@ -696,16 +696,16 @@ void Redraw::redrawEngineActions(bool bgRedraw) {
flipRedrawAreas();
}
- if (_engine->_screens->lockPalette) {
- if (_engine->_screens->useAlternatePalette) {
- _engine->_screens->fadeToPal(_engine->_screens->paletteRGBA);
+ if (_engine->_screens->_lockPalette) {
+ if (_engine->_screens->_useAlternatePalette) {
+ _engine->_screens->fadeToPal(_engine->_screens->_paletteRGBA);
} else {
- _engine->_screens->fadeToPal(_engine->_screens->mainPaletteRGBA);
+ _engine->_screens->fadeToPal(_engine->_screens->_mainPaletteRGBA);
}
- _engine->_screens->lockPalette = false;
+ _engine->_screens->_lockPalette = false;
}
- if (inSceneryView) {
+ if (_inSceneryView) {
zoomScreenScale();
}
}
diff --git a/engines/twine/renderer/redraw.h b/engines/twine/renderer/redraw.h
index 7aedb1aa47..ad5138acb4 100644
--- a/engines/twine/renderer/redraw.h
+++ b/engines/twine/renderer/redraw.h
@@ -120,15 +120,15 @@ private:
public:
Redraw(TwinEEngine *engine) : _engine(engine) {}
- bool inSceneryView = false;
+ bool _inSceneryView = false;
/** Request background redraw */
- bool reqBgRedraw = false;
+ bool _reqBgRedraw = false;
/** Current number of redraw regions in the screen */
- int32 currNumOfRedrawBox = 0; // fullRedrawVar8
+ int32 _currNumOfRedrawBox = 0; // fullRedrawVar8
/** Number of redraw regions in the screen */
- int32 numOfRedrawBox = 0;
+ int32 _numOfRedrawBox = 0;
int _sceneryViewX = 0;
int _sceneryViewY = 0;
diff --git a/engines/twine/renderer/renderer.cpp b/engines/twine/renderer/renderer.cpp
index e9892d62aa..e202166bef 100644
--- a/engines/twine/renderer/renderer.cpp
+++ b/engines/twine/renderer/renderer.cpp
@@ -1475,7 +1475,7 @@ void Renderer::renderBehaviourModel(int32 boxLeft, int32 boxTop, int32 boxRight,
Common::Rect dummy;
if (angle == -1) {
- ActorMoveStruct &move = _engine->_menu->moveMenu;
+ ActorMoveStruct &move = _engine->_menu->_moveMenu;
const int16 newAngle = move.getRealAngle(_engine->lbaTime);
if (move.numOfStep == 0) {
_engine->_movements->setActorAngleSafe(newAngle, newAngle - ANGLE_90, ANGLE_17, &move);
diff --git a/engines/twine/renderer/screens.cpp b/engines/twine/renderer/screens.cpp
index af0f1dfe27..13b3eeb5d8 100644
--- a/engines/twine/renderer/screens.cpp
+++ b/engines/twine/renderer/screens.cpp
@@ -43,11 +43,11 @@ void Screens::loadMenuImage(bool fadeIn) {
}
void Screens::loadCustomPalette(int32 index) {
- if (HQR::getEntry(palette, Resources::HQR_RESS_FILE, index) == 0) {
+ if (HQR::getEntry(_palette, Resources::HQR_RESS_FILE, index) == 0) {
warning("Failed to load custom palette %i", index);
return;
}
- convertPalToRGBA(palette, paletteRGBACustom);
+ convertPalToRGBA(_palette, _paletteRGBACustom);
}
void Screens::convertPalToRGBA(const uint8 *in, uint32 *out) {
@@ -71,10 +71,10 @@ void Screens::loadImage(int32 index, int32 paletteIndex, bool fadeIn) {
debug(0, "Load image: %i", index);
Graphics::ManagedSurface& target = _engine->frontVideoBuffer;
target.transBlitFrom(src, src.getBounds(), target.getBounds(), 0, false, 0, 0xff, nullptr, true);
- const uint32 *pal = paletteRGBA;
+ const uint32 *pal = _paletteRGBA;
if (paletteIndex != -1) {
loadCustomPalette(paletteIndex);
- pal = paletteRGBACustom;
+ pal = _paletteRGBACustom;
}
if (fadeIn) {
fadeToPal(pal);
@@ -86,10 +86,10 @@ void Screens::loadImage(int32 index, int32 paletteIndex, bool fadeIn) {
bool Screens::loadImageDelay(int32 index, int32 paletteIndex, int32 seconds) {
loadImage(index, paletteIndex);
if (_engine->delaySkip(1000 * seconds)) {
- adjustPalette(0, 0, 0, paletteRGBACustom, 100);
+ adjustPalette(0, 0, 0, _paletteRGBACustom, 100);
return true;
}
- fadeOut(paletteRGBACustom);
+ fadeOut(_paletteRGBACustom);
return false;
}
@@ -189,7 +189,7 @@ void Screens::adjustCrossPalette(const uint32 *pal1, const uint32 *pal2) {
}
void Screens::fadeToBlack(const uint32 *pal) {
- if (palResetted) {
+ if (_palResetted) {
return;
}
@@ -198,7 +198,7 @@ void Screens::fadeToBlack(const uint32 *pal) {
adjustPalette(0, 0, 0, pal, i);
}
- palResetted = true;
+ _palResetted = true;
}
void Screens::fadeToPal(const uint32 *pal) {
@@ -209,7 +209,7 @@ void Screens::fadeToPal(const uint32 *pal) {
_engine->setPalette(pal);
- palResetted = false;
+ _palResetted = false;
}
void Screens::blackToWhite() {
@@ -224,12 +224,12 @@ void Screens::blackToWhite() {
}
void Screens::setBackPal() {
- memset(palette, 0, sizeof(palette));
- memset(paletteRGBA, 0, sizeof(paletteRGBA));
+ memset(_palette, 0, sizeof(_palette));
+ memset(_paletteRGBA, 0, sizeof(_paletteRGBA));
- _engine->setPalette(paletteRGBA);
+ _engine->setPalette(_paletteRGBA);
- palResetted = true;
+ _palResetted = true;
}
void Screens::fadePalRed(const uint32 *pal) {
diff --git a/engines/twine/renderer/screens.h b/engines/twine/renderer/screens.h
index a9730b875d..d028f66760 100644
--- a/engines/twine/renderer/screens.h
+++ b/engines/twine/renderer/screens.h
@@ -49,28 +49,28 @@ public:
Screens(TwinEEngine *engine) : _engine(engine) {}
/** In-game palette (should not be used, except in special case. otherwise use other images functions instead) */
- uint8 palette[NUMOFCOLORS * 3]{0};
+ uint8 _palette[NUMOFCOLORS * 3]{0};
/** converted in-game palette */
- uint32 paletteRGBA[NUMOFCOLORS]{0};
+ uint32 _paletteRGBA[NUMOFCOLORS]{0};
/** converted custom palette */
- uint32 paletteRGBACustom[NUMOFCOLORS]{0};
+ uint32 _paletteRGBACustom[NUMOFCOLORS]{0};
/** flag to check in the game palette was changed */
- bool palResetted = false;
+ bool _palResetted = false;
/** flag to check if the main flag is locked */
- bool lockPalette = false;
+ bool _lockPalette = false;
/** flag to check if we are using a different palette than the main one */
- bool useAlternatePalette = false;
+ bool _useAlternatePalette = false;
/** main game palette */
- uint8 *mainPalette = nullptr;
+ uint8 *_mainPalette = nullptr;
/** converted in-game palette */
- uint32 mainPaletteRGBA[NUMOFCOLORS]{0};
+ uint32 _mainPaletteRGBA[NUMOFCOLORS]{0};
/** Load and display Adeline Logo */
bool adelineLogo();
diff --git a/engines/twine/resources/resources.cpp b/engines/twine/resources/resources.cpp
index 9412fbf693..da4a1fe8dd 100644
--- a/engines/twine/resources/resources.cpp
+++ b/engines/twine/resources/resources.cpp
@@ -44,20 +44,20 @@ Resources::~Resources() {
free(spriteShadowPtr);
free(holomapSurfacePtr);
free(holomapImagePtr);
- free(_engine->_screens->mainPalette);
+ free(_engine->_screens->_mainPalette);
}
void Resources::initPalettes() {
- const int32 size = HQR::getAllocEntry(&_engine->_screens->mainPalette, Resources::HQR_RESS_FILE, RESSHQR_MAINPAL);
+ const int32 size = HQR::getAllocEntry(&_engine->_screens->_mainPalette, Resources::HQR_RESS_FILE, RESSHQR_MAINPAL);
if (size == 0) {
error("Failed to load main palette");
}
- _engine->_screens->convertPalToRGBA(_engine->_screens->mainPalette, _engine->_screens->mainPaletteRGBA);
+ _engine->_screens->convertPalToRGBA(_engine->_screens->_mainPalette, _engine->_screens->_mainPaletteRGBA);
- memcpy(_engine->_screens->palette, _engine->_screens->mainPalette, NUMOFCOLORS * 3);
+ memcpy(_engine->_screens->_palette, _engine->_screens->_mainPalette, NUMOFCOLORS * 3);
- _engine->_screens->convertPalToRGBA(_engine->_screens->palette, _engine->_screens->paletteRGBA);
- _engine->setPalette(_engine->_screens->paletteRGBA);
+ _engine->_screens->convertPalToRGBA(_engine->_screens->_palette, _engine->_screens->_paletteRGBA);
+ _engine->setPalette(_engine->_screens->_paletteRGBA);
}
void Resources::preloadSprites() {
diff --git a/engines/twine/scene/gamestate.cpp b/engines/twine/scene/gamestate.cpp
index 89233bb838..5f5d081908 100644
--- a/engines/twine/scene/gamestate.cpp
+++ b/engines/twine/scene/gamestate.cpp
@@ -161,11 +161,11 @@ bool GameState::loadGame(Common::SeekableReadStream *file) {
int playerNameIdx = 0;
do {
const byte c = file->readByte();
- _engine->_menuOptions->saveGameName[playerNameIdx++] = c;
+ _engine->_menuOptions->_saveGameName[playerNameIdx++] = c;
if (c == '\0') {
break;
}
- if (playerNameIdx >= ARRAYSIZE(_engine->_menuOptions->saveGameName)) {
+ if (playerNameIdx >= ARRAYSIZE(_engine->_menuOptions->_saveGameName)) {
warning("Failed to load savegame. Invalid playername.");
return false;
}
@@ -228,8 +228,8 @@ bool GameState::loadGame(Common::SeekableReadStream *file) {
bool GameState::saveGame(Common::WriteStream *file) {
debug(2, "Save game");
- if (_engine->_menuOptions->saveGameName[0] == '\0') {
- Common::strlcpy(_engine->_menuOptions->saveGameName, "TwinEngineSave", sizeof(_engine->_menuOptions->saveGameName));
+ if (_engine->_menuOptions->_saveGameName[0] == '\0') {
+ Common::strlcpy(_engine->_menuOptions->_saveGameName, "TwinEngineSave", sizeof(_engine->_menuOptions->_saveGameName));
}
int32 sceneIdx = _engine->_scene->currentSceneIdx;
@@ -241,7 +241,7 @@ bool GameState::saveGame(Common::WriteStream *file) {
}
file->writeByte(0x03);
- file->writeString(_engine->_menuOptions->saveGameName);
+ file->writeString(_engine->_menuOptions->_saveGameName);
file->writeByte('\0');
file->writeByte(NUM_GAME_FLAGS);
for (uint8 i = 0; i < NUM_GAME_FLAGS; ++i) {
@@ -362,21 +362,21 @@ void GameState::processFoundItem(InventoryItems item) {
uint currentAnimState = 0;
- _engine->_redraw->numOfRedrawBox = 0;
+ _engine->_redraw->_numOfRedrawBox = 0;
ScopedKeyMap uiKeyMap(_engine, uiKeyMapId);
for (;;) {
FrameMarker frame(_engine, 66);
_engine->_interface->resetClip();
- _engine->_redraw->currNumOfRedrawBox = 0;
+ _engine->_redraw->_currNumOfRedrawBox = 0;
_engine->_redraw->blitBackgroundAreas();
_engine->_interface->drawTransparentBox(boxRect, 4);
_engine->_interface->setClip(boxRect);
- _engine->_menu->itemAngle[item] += ANGLE_2;
+ _engine->_menu->_itemAngle[item] += ANGLE_2;
- _engine->_renderer->renderInventoryItem(_engine->_renderer->projPos.x, _engine->_renderer->projPos.y, _engine->_resources->inventoryTable[item], _engine->_menu->itemAngle[item], 10000);
+ _engine->_renderer->renderInventoryItem(_engine->_renderer->projPos.x, _engine->_renderer->projPos.y, _engine->_resources->inventoryTable[item], _engine->_menu->_itemAngle[item], 10000);
_engine->_menu->drawBox(boxRect);
_engine->_redraw->addRedrawArea(boxRect);
@@ -482,7 +482,7 @@ void GameState::processGameoverAnimation() {
_engine->_scene->sceneHero->staticFlags.bIsHidden = 0;
// TODO: inSceneryView
- _engine->setPalette(_engine->_screens->paletteRGBA);
+ _engine->setPalette(_engine->_screens->_paletteRGBA);
_engine->saveFrontBuffer();
BodyData gameOverPtr;
if (!gameOverPtr.loadFromHQR(Resources::HQR_RESS_FILE, RESSHQR_GAMEOVERMDL)) {
diff --git a/engines/twine/scene/grid.cpp b/engines/twine/scene/grid.cpp
index 449e7e8a5c..06405f60f2 100644
--- a/engines/twine/scene/grid.cpp
+++ b/engines/twine/scene/grid.cpp
@@ -473,7 +473,7 @@ bool Grid::initCellingGrid(int32 index) {
createCellingGridMap(gridPtr, gridSize);
free(gridPtr);
- _engine->_redraw->reqBgRedraw = true;
+ _engine->_redraw->_reqBgRedraw = true;
return true;
}
@@ -858,7 +858,7 @@ void Grid::centerOnActor(const ActorStruct* actor) {
newCamera.x = (actor->pos.x + BRICK_HEIGHT) / BRICK_SIZE;
newCamera.y = (actor->pos.y + BRICK_HEIGHT) / BRICK_HEIGHT;
newCamera.z = (actor->pos.z + BRICK_HEIGHT) / BRICK_SIZE;
- _engine->_redraw->reqBgRedraw = true;
+ _engine->_redraw->_reqBgRedraw = true;
}
void Grid::centerScreenOnActor() {
@@ -887,7 +887,7 @@ void Grid::centerScreenOnActor() {
newCamera.z = GRID_SIZE_Z - 1;
}
- _engine->_redraw->reqBgRedraw = true;
+ _engine->_redraw->_reqBgRedraw = true;
}
}
diff --git a/engines/twine/scene/scene.cpp b/engines/twine/scene/scene.cpp
index 22b6927100..e4b77ae849 100644
--- a/engines/twine/scene/scene.cpp
+++ b/engines/twine/scene/scene.cpp
@@ -461,7 +461,7 @@ void Scene::resetScene() {
_engine->_redraw->overlayList[i].info0 = -1;
}
- _engine->_screens->useAlternatePalette = false;
+ _engine->_screens->_useAlternatePalette = false;
}
void Scene::reloadCurrentScene() {
@@ -558,7 +558,7 @@ void Scene::changeScene() {
_engine->_movements->heroMoved = true;
_engine->_grid->useCellingGrid = -1;
_engine->_grid->cellingGridIdx = -1;
- _engine->_screens->lockPalette = false;
+ _engine->_screens->_lockPalette = false;
needChangeScene = SCENE_CEILING_GRID_FADE_1;
enableGridTileRendering = true;
@@ -695,7 +695,7 @@ void Scene::processActorZones(int32 actorIdx) {
_engine->_grid->newCamera.x = zone->infoData.CameraView.x;
_engine->_grid->newCamera.y = zone->infoData.CameraView.y;
_engine->_grid->newCamera.z = zone->infoData.CameraView.z;
- _engine->_redraw->reqBgRedraw = true;
+ _engine->_redraw->_reqBgRedraw = true;
}
}
break;
@@ -760,7 +760,7 @@ void Scene::processActorZones(int32 actorIdx) {
_engine->_grid->useCellingGrid = -1;
_engine->_grid->cellingGridIdx = -1;
_engine->_grid->createGridMap();
- _engine->_redraw->reqBgRedraw = true;
+ _engine->_redraw->_reqBgRedraw = true;
}
}
diff --git a/engines/twine/script/script_life_v1.cpp b/engines/twine/script/script_life_v1.cpp
index 5fbebce835..09905bd096 100644
--- a/engines/twine/script/script_life_v1.cpp
+++ b/engines/twine/script/script_life_v1.cpp
@@ -1093,17 +1093,17 @@ static int32 lINVISIBLE(TwinEEngine *engine, LifeScriptContext &ctx) {
static int32 lZOOM(TwinEEngine *engine, LifeScriptContext &ctx) {
int zoomScreen = ctx.stream.readByte();
- if (zoomScreen && !engine->_redraw->inSceneryView && engine->cfgfile.SceZoom) {
- engine->_screens->fadeToBlack(engine->_screens->mainPaletteRGBA);
+ if (zoomScreen && !engine->_redraw->_inSceneryView && engine->cfgfile.SceZoom) {
+ engine->_screens->fadeToBlack(engine->_screens->_mainPaletteRGBA);
engine->initSceneryView();
engine->_screens->setBackPal();
- engine->_screens->lockPalette = true;
- } else if (!zoomScreen && engine->_redraw->inSceneryView) {
- engine->_screens->fadeToBlack(engine->_screens->mainPaletteRGBA);
+ engine->_screens->_lockPalette = true;
+ } else if (!zoomScreen && engine->_redraw->_inSceneryView) {
+ engine->_screens->fadeToBlack(engine->_screens->_mainPaletteRGBA);
engine->exitSceneryView();
engine->_screens->setBackPal();
- engine->_screens->lockPalette = true;
- engine->_redraw->reqBgRedraw = true;
+ engine->_screens->_lockPalette = true;
+ engine->_redraw->_reqBgRedraw = true;
}
return 0;
@@ -1207,7 +1207,7 @@ static int32 lPLAY_FLA(TwinEEngine *engine, LifeScriptContext &ctx) {
} while (true);
engine->_flaMovies->playFlaMovie(movie);
- engine->setPalette(engine->_screens->paletteRGBA);
+ engine->setPalette(engine->_screens->_paletteRGBA);
engine->_screens->clearScreen();
return 0;
@@ -1431,8 +1431,8 @@ static int32 lGRM_OFF(TwinEEngine *engine, LifeScriptContext &ctx) {
*/
static int32 lFADE_PAL_RED(TwinEEngine *engine, LifeScriptContext &ctx) {
ScopedEngineFreeze scoped(engine);
- engine->_screens->fadePalRed(engine->_screens->mainPaletteRGBA);
- engine->_screens->useAlternatePalette = false;
+ engine->_screens->fadePalRed(engine->_screens->_mainPaletteRGBA);
+ engine->_screens->_useAlternatePalette = false;
return 0;
}
@@ -1442,10 +1442,10 @@ static int32 lFADE_PAL_RED(TwinEEngine *engine, LifeScriptContext &ctx) {
*/
static int32 lFADE_ALARM_RED(TwinEEngine *engine, LifeScriptContext &ctx) {
ScopedEngineFreeze scoped(engine);
- HQR::getEntry(engine->_screens->palette, Resources::HQR_RESS_FILE, RESSHQR_ALARMREDPAL);
- engine->_screens->convertPalToRGBA(engine->_screens->palette, engine->_screens->paletteRGBA);
- engine->_screens->fadePalRed(engine->_screens->paletteRGBA);
- engine->_screens->useAlternatePalette = true;
+ HQR::getEntry(engine->_screens->_palette, Resources::HQR_RESS_FILE, RESSHQR_ALARMREDPAL);
+ engine->_screens->convertPalToRGBA(engine->_screens->_palette, engine->_screens->_paletteRGBA);
+ engine->_screens->fadePalRed(engine->_screens->_paletteRGBA);
+ engine->_screens->_useAlternatePalette = true;
return 0;
}
@@ -1455,10 +1455,10 @@ static int32 lFADE_ALARM_RED(TwinEEngine *engine, LifeScriptContext &ctx) {
*/
static int32 lFADE_ALARM_PAL(TwinEEngine *engine, LifeScriptContext &ctx) {
ScopedEngineFreeze scoped(engine);
- HQR::getEntry(engine->_screens->palette, Resources::HQR_RESS_FILE, RESSHQR_ALARMREDPAL);
- engine->_screens->convertPalToRGBA(engine->_screens->palette, engine->_screens->paletteRGBA);
- engine->_screens->adjustCrossPalette(engine->_screens->paletteRGBA, engine->_screens->mainPaletteRGBA);
- engine->_screens->useAlternatePalette = false;
+ HQR::getEntry(engine->_screens->_palette, Resources::HQR_RESS_FILE, RESSHQR_ALARMREDPAL);
+ engine->_screens->convertPalToRGBA(engine->_screens->_palette, engine->_screens->_paletteRGBA);
+ engine->_screens->adjustCrossPalette(engine->_screens->_paletteRGBA, engine->_screens->_mainPaletteRGBA);
+ engine->_screens->_useAlternatePalette = false;
return 0;
}
@@ -1468,8 +1468,8 @@ static int32 lFADE_ALARM_PAL(TwinEEngine *engine, LifeScriptContext &ctx) {
*/
static int32 lFADE_RED_PAL(TwinEEngine *engine, LifeScriptContext &ctx) {
ScopedEngineFreeze scoped(engine);
- engine->_screens->fadeRedPal(engine->_screens->mainPaletteRGBA);
- engine->_screens->useAlternatePalette = false;
+ engine->_screens->fadeRedPal(engine->_screens->_mainPaletteRGBA);
+ engine->_screens->_useAlternatePalette = false;
return 0;
}
@@ -1479,10 +1479,10 @@ static int32 lFADE_RED_PAL(TwinEEngine *engine, LifeScriptContext &ctx) {
*/
static int32 lFADE_RED_ALARM(TwinEEngine *engine, LifeScriptContext &ctx) {
ScopedEngineFreeze scoped(engine);
- HQR::getEntry(engine->_screens->palette, Resources::HQR_RESS_FILE, RESSHQR_ALARMREDPAL);
- engine->_screens->convertPalToRGBA(engine->_screens->palette, engine->_screens->paletteRGBA);
- engine->_screens->fadeRedPal(engine->_screens->paletteRGBA);
- engine->_screens->useAlternatePalette = true;
+ HQR::getEntry(engine->_screens->_palette, Resources::HQR_RESS_FILE, RESSHQR_ALARMREDPAL);
+ engine->_screens->convertPalToRGBA(engine->_screens->_palette, engine->_screens->_paletteRGBA);
+ engine->_screens->fadeRedPal(engine->_screens->_paletteRGBA);
+ engine->_screens->_useAlternatePalette = true;
return 0;
}
@@ -1492,10 +1492,10 @@ static int32 lFADE_RED_ALARM(TwinEEngine *engine, LifeScriptContext &ctx) {
*/
static int32 lFADE_PAL_ALARM(TwinEEngine *engine, LifeScriptContext &ctx) {
ScopedEngineFreeze scoped(engine);
- HQR::getEntry(engine->_screens->palette, Resources::HQR_RESS_FILE, RESSHQR_ALARMREDPAL);
- engine->_screens->convertPalToRGBA(engine->_screens->palette, engine->_screens->paletteRGBA);
- engine->_screens->adjustCrossPalette(engine->_screens->mainPaletteRGBA, engine->_screens->paletteRGBA);
- engine->_screens->useAlternatePalette = true;
+ HQR::getEntry(engine->_screens->_palette, Resources::HQR_RESS_FILE, RESSHQR_ALARMREDPAL);
+ engine->_screens->convertPalToRGBA(engine->_screens->_palette, engine->_screens->_paletteRGBA);
+ engine->_screens->adjustCrossPalette(engine->_screens->_mainPaletteRGBA, engine->_screens->_paletteRGBA);
+ engine->_screens->_useAlternatePalette = true;
return 0;
}
@@ -1558,12 +1558,12 @@ static int32 lASK_CHOICE_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
static int32 lSET_DARK_PAL(TwinEEngine *engine, LifeScriptContext &ctx) {
ScopedEngineFreeze scoped(engine);
// TODO: allocation in the game frame... cache it in Resource class
- HQR::getEntry(engine->_screens->palette, Resources::HQR_RESS_FILE, RESSHQR_DARKPAL);
- if (!engine->_screens->lockPalette) {
- engine->_screens->convertPalToRGBA(engine->_screens->palette, engine->_screens->paletteRGBA);
- engine->setPalette(engine->_screens->paletteRGBA);
+ HQR::getEntry(engine->_screens->_palette, Resources::HQR_RESS_FILE, RESSHQR_DARKPAL);
+ if (!engine->_screens->_lockPalette) {
+ engine->_screens->convertPalToRGBA(engine->_screens->_palette, engine->_screens->_paletteRGBA);
+ engine->setPalette(engine->_screens->_paletteRGBA);
}
- engine->_screens->useAlternatePalette = true;
+ engine->_screens->_useAlternatePalette = true;
return 0;
}
@@ -1572,9 +1572,9 @@ static int32 lSET_DARK_PAL(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x5D
*/
static int32 lSET_NORMAL_PAL(TwinEEngine *engine, LifeScriptContext &ctx) {
- engine->_screens->useAlternatePalette = false;
- if (!engine->_screens->lockPalette) {
- engine->setPalette(engine->_screens->mainPaletteRGBA);
+ engine->_screens->_useAlternatePalette = false;
+ if (!engine->_screens->_lockPalette) {
+ engine->setPalette(engine->_screens->_mainPaletteRGBA);
}
return 0;
}
@@ -1585,7 +1585,7 @@ static int32 lSET_NORMAL_PAL(TwinEEngine *engine, LifeScriptContext &ctx) {
*/
static int32 lMESSAGE_SENDELL(TwinEEngine *engine, LifeScriptContext &ctx) {
ScopedEngineFreeze scoped(engine);
- engine->_screens->fadeToBlack(engine->_screens->paletteRGBA);
+ engine->_screens->fadeToBlack(engine->_screens->_paletteRGBA);
engine->_screens->loadImage(RESSHQR_TWINSEN_ZOE_SENDELLIMG, RESSHQR_TWINSEN_ZOE_SENDELLPAL);
engine->_text->textClipFull();
engine->_text->setFontCrossColor(COLOR_WHITE);
@@ -1596,9 +1596,9 @@ static int32 lMESSAGE_SENDELL(TwinEEngine *engine, LifeScriptContext &ctx) {
engine->cfgfile.FlagDisplayText = tmpFlagDisplayText;
engine->_text->drawTextBoxBackground = true;
engine->_text->textClipSmall();
- engine->_screens->fadeToBlack(engine->_screens->paletteRGBACustom);
+ engine->_screens->fadeToBlack(engine->_screens->_paletteRGBACustom);
engine->_screens->clearScreen();
- engine->setPalette(engine->_screens->paletteRGBA);
+ engine->setPalette(engine->_screens->_paletteRGBA);
return 0;
}
diff --git a/engines/twine/script/script_move_v1.cpp b/engines/twine/script/script_move_v1.cpp
index 67c4679150..a3f5facbfe 100644
--- a/engines/twine/script/script_move_v1.cpp
+++ b/engines/twine/script/script_move_v1.cpp
@@ -363,14 +363,14 @@ static int32 mBACKGROUND(TwinEEngine *engine, MoveScriptContext &ctx) {
if (!ctx.actor->staticFlags.bIsBackgrounded) {
ctx.actor->staticFlags.bIsBackgrounded = 1;
if (ctx.actor->dynamicFlags.bIsVisible) {
- engine->_redraw->reqBgRedraw = true;
+ engine->_redraw->_reqBgRedraw = true;
}
}
} else {
if (ctx.actor->staticFlags.bIsBackgrounded) {
ctx.actor->staticFlags.bIsBackgrounded = 0;
if (ctx.actor->dynamicFlags.bIsVisible) {
- engine->_redraw->reqBgRedraw = true;
+ engine->_redraw->_reqBgRedraw = true;
}
}
}
@@ -583,7 +583,7 @@ static int32 mPLAY_FLA(TwinEEngine *engine, MoveScriptContext &ctx) {
} while (true);
engine->_flaMovies->playFlaMovie(movie);
- engine->setPalette(engine->_screens->paletteRGBA);
+ engine->setPalette(engine->_screens->_paletteRGBA);
engine->_screens->clearScreen();
return 0;
}
diff --git a/engines/twine/twine.cpp b/engines/twine/twine.cpp
index 345212dc39..2acb9ff8d7 100644
--- a/engines/twine/twine.cpp
+++ b/engines/twine/twine.cpp
@@ -518,15 +518,15 @@ void TwinEEngine::initEngine() {
}
void TwinEEngine::initSceneryView() {
- _redraw->inSceneryView = true;
+ _redraw->_inSceneryView = true;
}
void TwinEEngine::exitSceneryView() {
- _redraw->inSceneryView = false;
+ _redraw->_inSceneryView = false;
}
void TwinEEngine::initAll() {
- Common::fill(&_menu->itemAngle[0], &_menu->itemAngle[NUM_INVENTORY_ITEMS], 0);
+ Common::fill(&_menu->_itemAngle[0], &_menu->_itemAngle[NUM_INVENTORY_ITEMS], 0);
_scene->sceneHero = _scene->getActor(OWN_ACTOR_SCENE_INDEX);
@@ -571,7 +571,7 @@ void TwinEEngine::processActorSamplePosition(int32 actorIdx) {
}
void TwinEEngine::processBookOfBu() {
- _screens->fadeToBlack(_screens->paletteRGBA);
+ _screens->fadeToBlack(_screens->_paletteRGBA);
_screens->loadImage(RESSHQR_INTROSCREEN1IMG, RESSHQR_INTROSCREEN1PAL);
_text->initTextBank(TextBankId::Inventory_Intro_and_Holomap);
_text->drawTextBoxBackground = false;
@@ -584,10 +584,10 @@ void TwinEEngine::processBookOfBu() {
_text->textClipSmall();
_text->drawTextBoxBackground = true;
_text->initSceneTextBank();
- _screens->fadeToBlack(_screens->paletteRGBACustom);
+ _screens->fadeToBlack(_screens->_paletteRGBACustom);
_screens->clearScreen();
- setPalette(_screens->paletteRGBA);
- _screens->lockPalette = true;
+ setPalette(_screens->_paletteRGBA);
+ _screens->_lockPalette = true;
}
void TwinEEngine::processBonusList() {
@@ -610,7 +610,7 @@ void TwinEEngine::processInventoryAction() {
switch (loopInventoryItem) {
case kiHolomap:
_holomap->processHolomap();
- _screens->lockPalette = true;
+ _screens->_lockPalette = true;
break;
case kiMagicBall:
if (_gameState->usingSabre) {
@@ -816,7 +816,7 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
if (_input->toggleActionIfActive(TwinEActionType::OpenHolomap) && _gameState->hasItem(InventoryItems::kiHolomap) && !_gameState->inventoryDisabled()) {
freezeTime();
_holomap->processHolomap();
- _screens->lockPalette = true;
+ _screens->_lockPalette = true;
unfreezeTime();
_redraw->redrawEngineActions(true);
}
@@ -826,7 +826,7 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
freezeTime();
const char *PauseString = "Pause";
_text->setFontColor(COLOR_WHITE);
- if (_redraw->inSceneryView) {
+ if (_redraw->_inSceneryView) {
_text->drawText(_redraw->_sceneryViewX + 5, _redraw->_sceneryViewY, PauseString);
_redraw->zoomScreenScale();
} else {
@@ -958,8 +958,8 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
_scene->heroPositionType = ScenePositionType::kReborn;
_scene->sceneHero->setLife(kActorMaxLife);
- _redraw->reqBgRedraw = true;
- _screens->lockPalette = true;
+ _redraw->_reqBgRedraw = true;
+ _screens->_lockPalette = true;
_gameState->addLeafs(-1);
_actor->cropBottomScreen = 0;
} else { // game over
@@ -999,24 +999,24 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
_grid->centerScreenOnActor();
- _redraw->redrawEngineActions(_redraw->reqBgRedraw);
+ _redraw->redrawEngineActions(_redraw->_reqBgRedraw);
// workaround to fix hero redraw after drowning
- if (_actor->cropBottomScreen && _redraw->reqBgRedraw) {
+ if (_actor->cropBottomScreen && _redraw->_reqBgRedraw) {
_scene->sceneHero->staticFlags.bIsHidden = 1;
_redraw->redrawEngineActions(true);
_scene->sceneHero->staticFlags.bIsHidden = 0;
}
_scene->needChangeScene = SCENE_CEILING_GRID_FADE_1;
- _redraw->reqBgRedraw = false;
+ _redraw->_reqBgRedraw = false;
return 0;
}
bool TwinEEngine::gameEngineLoop() {
- _redraw->reqBgRedraw = true;
- _screens->lockPalette = true;
+ _redraw->_reqBgRedraw = true;
+ _screens->_lockPalette = true;
_movements->setActorAngle(ANGLE_0, -ANGLE_90, ANGLE_1, &_loopMovePtr);
while (quitGame == -1) {
Commit: c6d26dc9d8cec727b9334fe77c182a66fcd23aa8
https://github.com/scummvm/scummvm/commit/c6d26dc9d8cec727b9334fe77c182a66fcd23aa8
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-07-31T16:48:23+02:00
Commit Message:
TWINE: renamed members
Changed paths:
engines/twine/audio/music.cpp
engines/twine/audio/sound.cpp
engines/twine/debugger/console.cpp
engines/twine/debugger/debug.cpp
engines/twine/debugger/debug.h
engines/twine/debugger/debug_grid.cpp
engines/twine/debugger/debug_grid.h
engines/twine/debugger/debug_scene.cpp
engines/twine/debugger/debug_scene.h
engines/twine/flamovies.cpp
engines/twine/holomap.cpp
engines/twine/input.cpp
engines/twine/input.h
engines/twine/menu/interface.cpp
engines/twine/menu/interface.h
engines/twine/menu/menu.cpp
engines/twine/menu/menuoptions.cpp
engines/twine/metaengine.cpp
engines/twine/renderer/redraw.cpp
engines/twine/renderer/renderer.cpp
engines/twine/renderer/renderer.h
engines/twine/renderer/screens.cpp
engines/twine/resources/resources.cpp
engines/twine/resources/resources.h
engines/twine/scene/actor.cpp
engines/twine/scene/animations.cpp
engines/twine/scene/collision.cpp
engines/twine/scene/extra.cpp
engines/twine/scene/gamestate.cpp
engines/twine/scene/grid.cpp
engines/twine/scene/movements.cpp
engines/twine/scene/scene.cpp
engines/twine/script/script_life_v1.cpp
engines/twine/script/script_move_v1.cpp
engines/twine/text.cpp
engines/twine/text.h
engines/twine/twine.cpp
engines/twine/twine.h
diff --git a/engines/twine/audio/music.cpp b/engines/twine/audio/music.cpp
index b48e5f3c35..34a1e811cd 100644
--- a/engines/twine/audio/music.cpp
+++ b/engines/twine/audio/music.cpp
@@ -80,7 +80,7 @@ TwinEMidiPlayer::TwinEMidiPlayer(TwinEEngine* engine) : _engine(engine) {
void TwinEMidiPlayer::play(byte *buf, int size) {
if (_parser == nullptr) {
- if (_engine->cfgfile.MidiType == MIDIFILE_DOS) {
+ if (_engine->_cfgfile.MidiType == MIDIFILE_DOS) {
_parser = MidiParser::createParser_XMIDI();
} else {
_parser = MidiParser::createParser_SMF();
@@ -124,7 +124,7 @@ void Music::musicFadeOut() {
}
bool Music::playTrackMusicCd(int32 track) {
- if (!_engine->cfgfile.UseCD) {
+ if (!_engine->_cfgfile.UseCD) {
return false;
}
AudioCDManager *cdrom = g_system->getAudioCDManager();
@@ -137,7 +137,7 @@ void Music::stopTrackMusicCd() {
}
bool Music::playTrackMusic(int32 track) {
- if (!_engine->cfgfile.Sound) {
+ if (!_engine->_cfgfile.Sound) {
return false;
}
@@ -161,7 +161,7 @@ bool Music::playTrackMusic(int32 track) {
}
void Music::stopTrackMusic() {
- if (!_engine->cfgfile.Sound) {
+ if (!_engine->_cfgfile.Sound) {
return;
}
@@ -170,7 +170,7 @@ void Music::stopTrackMusic() {
}
bool Music::playMidiMusic(int32 midiIdx, int32 loop) {
- if (!_engine->cfgfile.Sound || _engine->cfgfile.MidiType == MIDIFILE_NONE) {
+ if (!_engine->_cfgfile.Sound || _engine->_cfgfile.MidiType == MIDIFILE_NONE) {
return false;
}
@@ -182,7 +182,7 @@ bool Music::playMidiMusic(int32 midiIdx, int32 loop) {
currentMusic = midiIdx;
const char *filename;
- if (_engine->cfgfile.MidiType == MIDIFILE_DOS) {
+ if (_engine->_cfgfile.MidiType == MIDIFILE_DOS) {
filename = Resources::HQR_MIDI_MI_DOS_FILE;
} else {
filename = Resources::HQR_MIDI_MI_WIN_FILE;
@@ -224,8 +224,8 @@ void Music::stopMidiMusic() {
bool Music::initCdrom() {
AudioCDManager* cdrom = g_system->getAudioCDManager();
- _engine->cfgfile.UseCD = cdrom->open();
- return _engine->cfgfile.UseCD;
+ _engine->_cfgfile.UseCD = cdrom->open();
+ return _engine->_cfgfile.UseCD;
}
void Music::stopMusic() {
diff --git a/engines/twine/audio/sound.cpp b/engines/twine/audio/sound.cpp
index a6bf0f1a06..c5266e14ba 100644
--- a/engines/twine/audio/sound.cpp
+++ b/engines/twine/audio/sound.cpp
@@ -61,7 +61,7 @@ void Sound::setSamplePosition(int32 channelIdx, int32 x, int32 y, int32 z) {
}
void Sound::playFlaSample(int32 index, int32 repeat, int32 x, int32 y) {
- if (!_engine->cfgfile.Sound) {
+ if (!_engine->_cfgfile.Sound) {
return;
}
@@ -80,8 +80,8 @@ void Sound::playFlaSample(int32 index, int32 repeat, int32 x, int32 y) {
// Fix incorrect sample files first byte
if (*sampPtr != 'C') {
- _engine->_text->hasHiddenVox = *sampPtr != '\0';
- _engine->_text->voxHiddenIndex++;
+ _engine->_text->_hasHiddenVox = *sampPtr != '\0';
+ _engine->_text->_voxHiddenIndex++;
*sampPtr = 'C';
}
@@ -89,7 +89,7 @@ void Sound::playFlaSample(int32 index, int32 repeat, int32 x, int32 y) {
}
void Sound::playSample(int32 index, int32 repeat, int32 x, int32 y, int32 z, int32 actorIdx) {
- if (!_engine->cfgfile.Sound) {
+ if (!_engine->_cfgfile.Sound) {
return;
}
@@ -105,18 +105,18 @@ void Sound::playSample(int32 index, int32 repeat, int32 x, int32 y, int32 z, int
samplesPlayingActors[channelIdx] = actorIdx;
}
- uint8 *sampPtr = _engine->_resources->samplesTable[index];
- int32 sampSize = _engine->_resources->samplesSizeTable[index];
+ uint8 *sampPtr = _engine->_resources->_samplesTable[index];
+ int32 sampSize = _engine->_resources->_samplesSizeTable[index];
playSample(channelIdx, index, sampPtr, sampSize, repeat, Resources::HQR_SAMPLES_FILE, Audio::Mixer::kSFXSoundType, DisposeAfterUse::NO);
}
bool Sound::playVoxSample(const TextEntry *text) {
- if (!_engine->cfgfile.Sound || text == nullptr) {
+ if (!_engine->_cfgfile.Sound || text == nullptr) {
return false;
}
uint8 *sampPtr = nullptr;
- int32 sampSize = HQR::getAllocVoxEntry(&sampPtr, _engine->_text->currentVoxBankFile.c_str(), text->index, _engine->_text->voxHiddenIndex);
+ int32 sampSize = HQR::getAllocVoxEntry(&sampPtr, _engine->_text->_currentVoxBankFile.c_str(), text->index, _engine->_text->_voxHiddenIndex);
if (sampSize == 0) {
if (ConfMan.hasKey("tts_narrator") && ConfMan.getBool("tts_narrator")) {
Common::TextToSpeechManager *ttsMan = g_system->getTextToSpeechManager();
@@ -139,12 +139,12 @@ bool Sound::playVoxSample(const TextEntry *text) {
// Fix incorrect sample files first byte
if (*sampPtr != 'C') {
- _engine->_text->hasHiddenVox = *sampPtr != '\0';
- _engine->_text->voxHiddenIndex++;
+ _engine->_text->_hasHiddenVox = *sampPtr != '\0';
+ _engine->_text->_voxHiddenIndex++;
*sampPtr = 'C';
}
- return playSample(channelIdx, text->index, sampPtr, sampSize, 1, _engine->_text->currentVoxBankFile.c_str(), Audio::Mixer::kSpeechSoundType);
+ return playSample(channelIdx, text->index, sampPtr, sampSize, 1, _engine->_text->_currentVoxBankFile.c_str(), Audio::Mixer::kSpeechSoundType);
}
bool Sound::playSample(int channelIdx, int index, uint8 *sampPtr, int32 sampSize, int32 loop, const char *name, Audio::Mixer::SoundType soundType, DisposeAfterUse::Flag disposeFlag) {
@@ -163,21 +163,21 @@ bool Sound::playSample(int channelIdx, int index, uint8 *sampPtr, int32 sampSize
}
void Sound::resumeSamples() {
- if (!_engine->cfgfile.Sound) {
+ if (!_engine->_cfgfile.Sound) {
return;
}
_engine->_system->getMixer()->pauseAll(false);
}
void Sound::pauseSamples() {
- if (!_engine->cfgfile.Sound) {
+ if (!_engine->_cfgfile.Sound) {
return;
}
_engine->_system->getMixer()->pauseAll(true);
}
void Sound::stopSamples() {
- if (!_engine->cfgfile.Sound) {
+ if (!_engine->_cfgfile.Sound) {
return;
}
@@ -210,7 +210,7 @@ void Sound::removeSampleChannel(int32 c) {
}
void Sound::stopSample(int32 index) {
- if (!_engine->cfgfile.Sound) {
+ if (!_engine->_cfgfile.Sound) {
return;
}
const int32 stopChannel = getSampleChannel(index);
diff --git a/engines/twine/debugger/console.cpp b/engines/twine/debugger/console.cpp
index a8fb233291..9ef064df70 100644
--- a/engines/twine/debugger/console.cpp
+++ b/engines/twine/debugger/console.cpp
@@ -79,32 +79,32 @@ TwinEConsole::~TwinEConsole() {
debugPrintf("Enabling " description); \
(var) = true; \
} \
- if ((var) && !_engine->cfgfile.Debug) { \
+ if ((var) && !_engine->_cfgfile.Debug) { \
doToggleDebug(0, nullptr); \
}
bool TwinEConsole::doToggleZoneRendering(int argc, const char **argv) {
- TOGGLE_DEBUG(_engine->_debugScene->showingZones, "zone rendering\n")
+ TOGGLE_DEBUG(_engine->_debugScene->_showingZones, "zone rendering\n")
return true;
}
bool TwinEConsole::doToggleActorRendering(int argc, const char **argv) {
- TOGGLE_DEBUG(_engine->_debugScene->showingActors, "actor rendering\n")
+ TOGGLE_DEBUG(_engine->_debugScene->_showingActors, "actor rendering\n")
return true;
}
bool TwinEConsole::doToggleTrackRendering(int argc, const char **argv) {
- TOGGLE_DEBUG(_engine->_debugScene->showingTracks, "tracks rendering\n")
+ TOGGLE_DEBUG(_engine->_debugScene->_showingTracks, "tracks rendering\n")
return true;
}
bool TwinEConsole::doToggleScenePatches(int argc, const char **argv) {
- TOGGLE_DEBUG(_engine->_debugScene->useScenePatches, "use scene patches\n")
+ TOGGLE_DEBUG(_engine->_debugScene->_useScenePatches, "use scene patches\n")
return true;
}
bool TwinEConsole::doToggleClipRendering(int argc, const char **argv) {
- TOGGLE_DEBUG(_engine->_debugScene->showingClips, "clip rendering\n")
+ TOGGLE_DEBUG(_engine->_debugScene->_showingClips, "clip rendering\n")
return true;
}
@@ -136,17 +136,17 @@ bool TwinEConsole::doSkipSceneActorsBut(int argc, const char **argv) {
}
const int16 actorIdx = atoi(argv[1]);
debugPrintf("Only load actor %d in the next scene\n", actorIdx);
- _engine->_debugScene->onlyLoadActor = actorIdx;
+ _engine->_debugScene->_onlyLoadActor = actorIdx;
return true;
}
bool TwinEConsole::doToggleFreeCamera(int argc, const char **argv) {
- TOGGLE_DEBUG(_engine->_debugGrid->useFreeCamera, "free camera movement\n")
+ TOGGLE_DEBUG(_engine->_debugGrid->_useFreeCamera, "free camera movement\n")
return true;
}
bool TwinEConsole::doToggleSceneChanges(int argc, const char **argv) {
- TOGGLE_DEBUG(_engine->_debugGrid->canChangeScenes, "scene switching via keybinding\n")
+ TOGGLE_DEBUG(_engine->_debugGrid->_canChangeScenes, "scene switching via keybinding\n")
return true;
}
@@ -290,12 +290,12 @@ bool TwinEConsole::doGiveKashes(int argc, const char **argv) {
}
bool TwinEConsole::doToggleDebug(int argc, const char **argv) {
- if (_engine->cfgfile.Debug) {
+ if (_engine->_cfgfile.Debug) {
debugPrintf("Disabling debug mode\n");
- _engine->cfgfile.Debug = false;
+ _engine->_cfgfile.Debug = false;
} else {
debugPrintf("Enabling debug mode\n");
- _engine->cfgfile.Debug = true;
+ _engine->_cfgfile.Debug = true;
}
return true;
}
diff --git a/engines/twine/debugger/debug.cpp b/engines/twine/debugger/debug.cpp
index 7c10e82034..d57da80dd7 100644
--- a/engines/twine/debugger/debug.cpp
+++ b/engines/twine/debugger/debug.cpp
@@ -54,7 +54,7 @@ void Debug::debugDrawWindowBox(const Common::Rect &rect, int32 alpha) {
}
void Debug::debugDrawWindowButtons(int32 w) {
- DebugWindowStruct &window = debugWindows[w];
+ DebugWindowStruct &window = _debugWindows[w];
for (int32 b = 0; b < window.numButtons; b++) {
DebugButtonStruct &btn = window.debugButtons[b];
const char *text = btn.text;
@@ -71,7 +71,7 @@ void Debug::debugDrawWindowButtons(int32 w) {
}
void Debug::debugDrawWindow(int32 w) {
- DebugWindowStruct &window = debugWindows[w];
+ DebugWindowStruct &window = _debugWindows[w];
const Common::Rect &rect = window.rect;
const int32 alpha = window.alpha;
@@ -89,8 +89,8 @@ void Debug::debugDrawWindow(int32 w) {
}
int32 Debug::debugTypeUseMenu(int32 type) {
- for (int32 w = 0; w < numDebugWindows; w++) {
- DebugWindowStruct &window = debugWindows[w];
+ for (int32 w = 0; w < _numDebugWindows; w++) {
+ DebugWindowStruct &window = _debugWindows[w];
if (window.isActive <= 0) {
continue;
}
@@ -101,7 +101,7 @@ int32 Debug::debugTypeUseMenu(int32 type) {
}
const int submenu = btn.submenu;
if (submenu > 0) {
- debugWindows[submenu].isActive = !debugWindows[submenu].isActive;
+ _debugWindows[submenu].isActive = !_debugWindows[submenu].isActive;
}
return submenu;
}
@@ -110,8 +110,8 @@ int32 Debug::debugTypeUseMenu(int32 type) {
}
void Debug::debugResetButtonsState() {
- for (int32 w = 0; w < numDebugWindows; w++) {
- DebugWindowStruct &window = debugWindows[w];
+ for (int32 w = 0; w < _numDebugWindows; w++) {
+ DebugWindowStruct &window = _debugWindows[w];
if (window.isActive <= 0) {
continue;
}
@@ -126,8 +126,8 @@ void Debug::debugResetButtonsState() {
}
void Debug::debugRefreshButtons(int32 type) {
- for (int32 w = 0; w < numDebugWindows; w++) {
- DebugWindowStruct &window = debugWindows[w];
+ for (int32 w = 0; w < _numDebugWindows; w++) {
+ DebugWindowStruct &window = _debugWindows[w];
if (window.isActive <= 0) {
continue;
}
@@ -156,8 +156,8 @@ void Debug::debugRefreshButtons(int32 type) {
}
void Debug::debugDrawWindows() {
- for (int32 w = 0; w < numDebugWindows; w++) {
- DebugWindowStruct &window = debugWindows[w];
+ for (int32 w = 0; w < _numDebugWindows; w++) {
+ DebugWindowStruct &window = _debugWindows[w];
if (window.isActive > 0) {
debugDrawWindow(w);
}
@@ -165,8 +165,8 @@ void Debug::debugDrawWindows() {
}
void Debug::debugResetButton(int32 type) {
- for (int32 w = 0; w < numDebugWindows; w++) {
- DebugWindowStruct &window = debugWindows[w];
+ for (int32 w = 0; w < _numDebugWindows; w++) {
+ DebugWindowStruct &window = _debugWindows[w];
if (window.isActive <= 0) {
continue;
}
@@ -178,7 +178,7 @@ void Debug::debugResetButton(int32 type) {
const int submenu = btn.submenu;
btn.isActive = 0;
if (submenu > 0) {
- debugWindows[submenu].debugButtons[b].isActive = !debugWindows[submenu].debugButtons[b].isActive;
+ _debugWindows[submenu].debugButtons[b].isActive = !_debugWindows[submenu].debugButtons[b].isActive;
}
break;
}
@@ -196,13 +196,13 @@ int32 Debug::debugGetActionsState(int32 type) {
switch (type) {
case FREE_CAMERA:
- state = _engine->_debugGrid->useFreeCamera ? 1 : 0;
+ state = _engine->_debugGrid->_useFreeCamera ? 1 : 0;
break;
case CHANGE_SCENE:
- state = _engine->_debugGrid->canChangeScenes ? 1 : 0;
+ state = _engine->_debugGrid->_canChangeScenes ? 1 : 0;
break;
case SHOW_ZONES:
- state = _engine->_debugScene->showingZones ? 1 : 0;
+ state = _engine->_debugScene->_showingZones ? 1 : 0;
break;
case SHOW_ZONE_CUBE:
case SHOW_ZONE_CAMERA:
@@ -211,7 +211,7 @@ int32 Debug::debugGetActionsState(int32 type) {
case SHOW_ZONE_OBJECT:
case SHOW_ZONE_TEXT:
case SHOW_ZONE_LADDER:
- state = _engine->_debugScene->typeZones;
+ state = _engine->_debugScene->_typeZones;
break;
default:
break;
@@ -222,81 +222,81 @@ int32 Debug::debugGetActionsState(int32 type) {
void Debug::debugSetActions(int32 type) {
switch (type) {
case FREE_CAMERA:
- _engine->_debugGrid->useFreeCamera = !_engine->_debugGrid->useFreeCamera;
+ _engine->_debugGrid->_useFreeCamera = !_engine->_debugGrid->_useFreeCamera;
break;
case CHANGE_SCENE:
- _engine->_debugGrid->canChangeScenes = !_engine->_debugGrid->canChangeScenes;
+ _engine->_debugGrid->_canChangeScenes = !_engine->_debugGrid->_canChangeScenes;
break;
case SHOW_ZONES:
- _engine->_debugScene->showingZones = !_engine->_debugScene->showingZones;
+ _engine->_debugScene->_showingZones = !_engine->_debugScene->_showingZones;
debugResetButton(-1);
debugResetButton(-2);
debugRedrawScreen();
break;
case SHOW_ZONE_CUBE:
- if (_engine->_debugScene->showingZones) {
- if (_engine->_debugScene->typeZones & 0x01)
- _engine->_debugScene->typeZones &= ~0x01;
+ if (_engine->_debugScene->_showingZones) {
+ if (_engine->_debugScene->_typeZones & 0x01)
+ _engine->_debugScene->_typeZones &= ~0x01;
else
- _engine->_debugScene->typeZones |= 0x01;
+ _engine->_debugScene->_typeZones |= 0x01;
debugRedrawScreen();
}
break;
case SHOW_ZONE_CAMERA:
- if (_engine->_debugScene->showingZones) {
- if (_engine->_debugScene->typeZones & 0x02)
- _engine->_debugScene->typeZones &= ~0x02;
+ if (_engine->_debugScene->_showingZones) {
+ if (_engine->_debugScene->_typeZones & 0x02)
+ _engine->_debugScene->_typeZones &= ~0x02;
else
- _engine->_debugScene->typeZones |= 0x02;
+ _engine->_debugScene->_typeZones |= 0x02;
debugRedrawScreen();
}
break;
case SHOW_ZONE_SCENARIC:
- if (_engine->_debugScene->showingZones) {
- if (_engine->_debugScene->typeZones & 0x04)
- _engine->_debugScene->typeZones &= ~0x04;
+ if (_engine->_debugScene->_showingZones) {
+ if (_engine->_debugScene->_typeZones & 0x04)
+ _engine->_debugScene->_typeZones &= ~0x04;
else
- _engine->_debugScene->typeZones |= 0x04;
+ _engine->_debugScene->_typeZones |= 0x04;
debugRedrawScreen();
}
break;
case SHOW_ZONE_CELLINGGRID:
- if (_engine->_debugScene->showingZones) {
- if (_engine->_debugScene->typeZones & 0x08)
- _engine->_debugScene->typeZones &= ~0x08;
+ if (_engine->_debugScene->_showingZones) {
+ if (_engine->_debugScene->_typeZones & 0x08)
+ _engine->_debugScene->_typeZones &= ~0x08;
else
- _engine->_debugScene->typeZones |= 0x08;
+ _engine->_debugScene->_typeZones |= 0x08;
debugRedrawScreen();
debugRedrawScreen();
}
break;
case SHOW_ZONE_OBJECT:
- if (_engine->_debugScene->showingZones) {
- if (_engine->_debugScene->typeZones & 0x10)
- _engine->_debugScene->typeZones &= ~0x10;
+ if (_engine->_debugScene->_showingZones) {
+ if (_engine->_debugScene->_typeZones & 0x10)
+ _engine->_debugScene->_typeZones &= ~0x10;
else
- _engine->_debugScene->typeZones |= 0x10;
+ _engine->_debugScene->_typeZones |= 0x10;
debugRedrawScreen();
debugRedrawScreen();
}
break;
case SHOW_ZONE_TEXT:
- if (_engine->_debugScene->showingZones) {
- if (_engine->_debugScene->typeZones & 0x20)
- _engine->_debugScene->typeZones &= ~0x20;
+ if (_engine->_debugScene->_showingZones) {
+ if (_engine->_debugScene->_typeZones & 0x20)
+ _engine->_debugScene->_typeZones &= ~0x20;
else
- _engine->_debugScene->typeZones |= 0x20;
+ _engine->_debugScene->_typeZones |= 0x20;
debugRedrawScreen();
}
break;
case SHOW_ZONE_LADDER:
- if (_engine->_debugScene->showingZones) {
- if (_engine->_debugScene->typeZones & 0x40)
- _engine->_debugScene->typeZones &= ~0x40;
+ if (_engine->_debugScene->_showingZones) {
+ if (_engine->_debugScene->_typeZones & 0x40)
+ _engine->_debugScene->_typeZones &= ~0x40;
else
- _engine->_debugScene->typeZones |= 0x40;
+ _engine->_debugScene->_typeZones |= 0x40;
debugRedrawScreen();
}
break;
@@ -315,8 +315,8 @@ void Debug::debugSetActions(int32 type) {
}
void Debug::debugAddButton(int32 window, const Common::Rect &rect, const char *text, int32 textLeft, int32 textTop, int32 isActive, int32 color, int32 activeColor, int32 submenu, int32 type) {
- const int32 button = debugWindows[window].numButtons;
- DebugButtonStruct &btn = debugWindows[window].debugButtons[button];
+ const int32 button = _debugWindows[window].numButtons;
+ DebugButtonStruct &btn = _debugWindows[window].debugButtons[button];
btn.rect = rect;
btn.text = text;
btn.textLeft = textLeft;
@@ -326,21 +326,21 @@ void Debug::debugAddButton(int32 window, const Common::Rect &rect, const char *t
btn.activeColor = activeColor;
btn.submenu = submenu;
btn.type = type;
- debugWindows[window].numButtons++;
+ _debugWindows[window].numButtons++;
}
void Debug::debugAddWindowText(int32 window, const char *text) {
- int32 line = debugWindows[window].numLines;
- debugWindows[window].text[line] = text;
- debugWindows[window].numLines++;
+ int32 line = _debugWindows[window].numLines;
+ _debugWindows[window].text[line] = text;
+ _debugWindows[window].numLines++;
}
void Debug::debugAddWindow(const Common::Rect &rect, int32 alpha, int32 isActive) {
- debugWindows[numDebugWindows].rect = rect;
- debugWindows[numDebugWindows].alpha = alpha;
- debugWindows[numDebugWindows].numButtons = 0;
- debugWindows[numDebugWindows].isActive = isActive;
- numDebugWindows++;
+ _debugWindows[_numDebugWindows].rect = rect;
+ _debugWindows[_numDebugWindows].alpha = alpha;
+ _debugWindows[_numDebugWindows].numButtons = 0;
+ _debugWindows[_numDebugWindows].isActive = isActive;
+ _numDebugWindows++;
}
void Debug::debugLeftMenu() {
@@ -381,11 +381,11 @@ void Debug::debugLeftMenu() {
}
int32 Debug::debugProcessButton(int32 x, int32 y) {
- for (int32 i = 0; i < numDebugWindows; i++) {
- for (int32 j = 0; j < debugWindows[i].numButtons; j++) {
- const Common::Rect &rect = debugWindows[i].debugButtons[j].rect;
+ for (int32 i = 0; i < _numDebugWindows; i++) {
+ for (int32 j = 0; j < _debugWindows[i].numButtons; j++) {
+ const Common::Rect &rect = _debugWindows[i].debugButtons[j].rect;
if (rect.contains(x, y)) {
- return debugWindows[i].debugButtons[j].type;
+ return _debugWindows[i].debugButtons[j].type;
}
}
}
@@ -417,7 +417,7 @@ void Debug::debugProcessWindow() {
_engine->saveFrontBuffer();
debugResetButtonsState();
- if (numDebugWindows == 0) {
+ if (_numDebugWindows == 0) {
debugLeftMenu();
}
debugDrawWindows();
@@ -465,7 +465,7 @@ void Debug::debugProcessWindow() {
}
void Debug::processDebug() {
- if (!_engine->cfgfile.Debug) {
+ if (!_engine->_cfgfile.Debug) {
return;
}
debugProcessWindow();
diff --git a/engines/twine/debugger/debug.h b/engines/twine/debugger/debug.h
index 1952f36510..f250fb4ffb 100644
--- a/engines/twine/debugger/debug.h
+++ b/engines/twine/debugger/debug.h
@@ -78,8 +78,8 @@ class Debug {
private:
TwinEEngine *_engine;
- DebugWindowStruct debugWindows[10];
- int32 numDebugWindows = 0;
+ DebugWindowStruct _debugWindows[10];
+ int32 _numDebugWindows = 0;
void debugFillButton(int32 x, int32 y, int32 width, int32 height, int8 color);
void debugDrawButton(const Common::Rect &rect, const char *text, int32 textLeft, int32 textTop, int32 isActive, int8 color);
void debugDrawWindowBox(const Common::Rect &rect, int32 alpha);
diff --git a/engines/twine/debugger/debug_grid.cpp b/engines/twine/debugger/debug_grid.cpp
index c5ea885899..8abeb679f4 100644
--- a/engines/twine/debugger/debug_grid.cpp
+++ b/engines/twine/debugger/debug_grid.cpp
@@ -31,11 +31,11 @@
namespace TwinE {
DebugGrid::DebugGrid(TwinEEngine *engine) : _engine(engine) {
- canChangeScenes = _engine->cfgfile.Debug;
+ _canChangeScenes = _engine->_cfgfile.Debug;
}
void DebugGrid::changeGridCamera() {
- if (!useFreeCamera) {
+ if (!_useFreeCamera) {
return;
}
@@ -59,7 +59,7 @@ void DebugGrid::changeGridCamera() {
}
void DebugGrid::changeGrid() {
- if (!canChangeScenes) {
+ if (!_canChangeScenes) {
return;
}
Scene *scene = _engine->_scene;
diff --git a/engines/twine/debugger/debug_grid.h b/engines/twine/debugger/debug_grid.h
index fb9d329735..b530dd269a 100644
--- a/engines/twine/debugger/debug_grid.h
+++ b/engines/twine/debugger/debug_grid.h
@@ -36,8 +36,8 @@ private:
public:
DebugGrid(TwinEEngine *engine);
- bool useFreeCamera = false;
- bool canChangeScenes = false;
+ bool _useFreeCamera = false;
+ bool _canChangeScenes = false;
/** Change scenario camera positions */
void changeGridCamera();
diff --git a/engines/twine/debugger/debug_scene.cpp b/engines/twine/debugger/debug_scene.cpp
index 53cd0a9899..b1ebd1cca8 100644
--- a/engines/twine/debugger/debug_scene.cpp
+++ b/engines/twine/debugger/debug_scene.cpp
@@ -35,7 +35,7 @@ namespace TwinE {
DebugScene::DebugScene(TwinEEngine *engine) : _engine(engine) {}
void DebugScene::drawClip(const Common::Rect &rect) {
- if (!showingClips) {
+ if (!_showingClips) {
return;
}
_engine->_menu->drawBox(rect);
@@ -44,27 +44,27 @@ void DebugScene::drawClip(const Common::Rect &rect) {
void DebugScene::projectBoundingBoxPoints(IVec3 *pPoint3d, IVec3 *pPoint3dProjected) {
_engine->_renderer->projectPositionOnScreen(pPoint3d->x, pPoint3d->y, pPoint3d->z);
- pPoint3dProjected->x = _engine->_renderer->projPos.x;
- pPoint3dProjected->y = _engine->_renderer->projPos.y;
- pPoint3dProjected->z = _engine->_renderer->projPos.z;
+ pPoint3dProjected->x = _engine->_renderer->_projPos.x;
+ pPoint3dProjected->y = _engine->_renderer->_projPos.y;
+ pPoint3dProjected->z = _engine->_renderer->_projPos.z;
}
bool DebugScene::checkZoneType(ZoneType type) const {
switch (type) {
case ZoneType::kCube:
- return (typeZones & 0x01) != 0;
+ return (_typeZones & 0x01) != 0;
case ZoneType::kCamera:
- return (typeZones & 0x02) != 0;
+ return (_typeZones & 0x02) != 0;
case ZoneType::kSceneric:
- return (typeZones & 0x04) != 0;
+ return (_typeZones & 0x04) != 0;
case ZoneType::kGrid:
- return (typeZones & 0x08) != 0;
+ return (_typeZones & 0x08) != 0;
case ZoneType::kObject:
- return (typeZones & 0x10) != 0;
+ return (_typeZones & 0x10) != 0;
case ZoneType::kText:
- return (typeZones & 0x20) != 0;
+ return (_typeZones & 0x20) != 0;
case ZoneType::kLadder:
- return (typeZones & 0x40) != 0;
+ return (_typeZones & 0x40) != 0;
default:
return true;
}
@@ -212,13 +212,13 @@ bool DebugScene::displayZones() {
}
void DebugScene::renderDebugView() {
- if (showingZones) {
+ if (_showingZones) {
displayZones();
}
- if (showingActors) {
+ if (_showingActors) {
displayActors();
}
- if (showingTracks) {
+ if (_showingTracks) {
displayTracks();
}
}
diff --git a/engines/twine/debugger/debug_scene.h b/engines/twine/debugger/debug_scene.h
index 4a78a476b1..7f510c7d65 100644
--- a/engines/twine/debugger/debug_scene.h
+++ b/engines/twine/debugger/debug_scene.h
@@ -71,13 +71,13 @@ private:
bool drawBox(const ScenePositionsProjected &positions, uint8 color);
public:
DebugScene(TwinEEngine *engine);
- bool showingZones = false;
- bool showingActors = false;
- bool showingTracks = false;
- bool showingClips = false;
- bool useScenePatches = false;
- int32 typeZones = 127; // all zones on as default
- int16 onlyLoadActor = -1;
+ bool _showingZones = false;
+ bool _showingActors = false;
+ bool _showingTracks = false;
+ bool _showingClips = false;
+ bool _useScenePatches = false;
+ int32 _typeZones = 127; // all zones on as default
+ int16 _onlyLoadActor = -1;
void renderDebugView();
diff --git a/engines/twine/flamovies.cpp b/engines/twine/flamovies.cpp
index 750bfbb59c..01a666a9f4 100644
--- a/engines/twine/flamovies.cpp
+++ b/engines/twine/flamovies.cpp
@@ -127,11 +127,11 @@ void FlaMovies::drawDeltaFrame(Common::MemoryReadStream &stream, int32 width) {
void FlaMovies::scaleFla2x() {
uint8 *source = (uint8 *)_flaBuffer;
- uint8 *dest = (uint8 *)_engine->imageBuffer.getPixels();
+ uint8 *dest = (uint8 *)_engine->_imageBuffer.getPixels();
- if (_engine->cfgfile.Movie == CONF_MOVIE_FLAWIDE) {
- Common::fill(&dest[0], &dest[_engine->imageBuffer.w * 40], 0x00);
- dest += _engine->imageBuffer.w * 40;
+ if (_engine->_cfgfile.Movie == CONF_MOVIE_FLAWIDE) {
+ Common::fill(&dest[0], &dest[_engine->_imageBuffer.w * 40], 0x00);
+ dest += _engine->_imageBuffer.w * 40;
}
for (int32 i = 0; i < FLASCREEN_HEIGHT; i++) {
@@ -139,23 +139,23 @@ void FlaMovies::scaleFla2x() {
*dest++ = *source;
*dest++ = *source++;
}
- if (_engine->cfgfile.Movie == CONF_MOVIE_FLAWIDE) { // include wide bars
- memcpy(dest, dest - _engine->imageBuffer.w, FLASCREEN_WIDTH * 2);
+ if (_engine->_cfgfile.Movie == CONF_MOVIE_FLAWIDE) { // include wide bars
+ memcpy(dest, dest - _engine->_imageBuffer.w, FLASCREEN_WIDTH * 2);
dest += FLASCREEN_WIDTH * 2;
} else { // stretch the movie like original game.
if (i % 2) {
- memcpy(dest, dest - _engine->imageBuffer.w, FLASCREEN_WIDTH * 2);
+ memcpy(dest, dest - _engine->_imageBuffer.w, FLASCREEN_WIDTH * 2);
dest += FLASCREEN_WIDTH * 2;
}
if (i % 10) {
- memcpy(dest, dest - _engine->imageBuffer.w, FLASCREEN_WIDTH * 2);
+ memcpy(dest, dest - _engine->_imageBuffer.w, FLASCREEN_WIDTH * 2);
dest += FLASCREEN_WIDTH * 2;
}
}
}
- if (_engine->cfgfile.Movie == CONF_MOVIE_FLAWIDE) {
- Common::fill(&dest[0], &dest[_engine->imageBuffer.w * 40], 0x00);
+ if (_engine->_cfgfile.Movie == CONF_MOVIE_FLAWIDE) {
+ Common::fill(&dest[0], &dest[_engine->_imageBuffer.w * 40], 0x00);
}
}
@@ -164,12 +164,12 @@ void FlaMovies::processFrame() {
_file.read(&_frameData.videoSize, 2);
_file.read(&_frameData.frameVar0, 4);
- if (_frameData.frameVar0 > _engine->imageBuffer.w * _engine->imageBuffer.h) {
+ if (_frameData.frameVar0 > _engine->_imageBuffer.w * _engine->_imageBuffer.h) {
warning("Skipping video frame - it would exceed the screen buffer: %i", _frameData.frameVar0);
return;
}
- uint8 *outBuf = (uint8 *)_engine->imageBuffer.getPixels();
+ uint8 *outBuf = (uint8 *)_engine->_imageBuffer.getPixels();
_file.read(outBuf, _frameData.frameVar0);
if ((int32)_frameData.videoSize <= 0) {
@@ -247,14 +247,14 @@ void FlaMovies::processFrame() {
case kFlaUnknown9:
case kFlaUnknown16SameAs9: {
const Common::Rect rect(0, 0, 80, 200);
- byte *ptr = (byte *)_engine->frontVideoBuffer.getPixels();
+ byte *ptr = (byte *)_engine->_frontVideoBuffer.getPixels();
for (int y = rect.top; y < rect.bottom; ++y) {
for (int x = rect.left; x < rect.right; ++x) {
*ptr++ = stream.readByte();
}
ptr = ptr + rect.width();
}
- _engine->frontVideoBuffer.addDirtyRect(rect);
+ _engine->_frontVideoBuffer.addDirtyRect(rect);
break;
}
case kFlaUnknown4:
@@ -283,7 +283,7 @@ void FlaMovies::prepareGIF(int index) {
}
const Graphics::Surface *surface = decoder.getSurface();
_engine->setPalette(0, decoder.getPaletteColorCount(), decoder.getPalette());
- Graphics::ManagedSurface& target = _engine->frontVideoBuffer;
+ Graphics::ManagedSurface& target = _engine->_frontVideoBuffer;
const Common::Rect surfaceBounds(0, 0, surface->w, surface->h);
target.transBlitFrom(surface, surfaceBounds, target.getBounds(), 0, false, 0, 0xff, nullptr, true);
debug(2, "Show gif with id %i from %s", index, Resources::HQR_FLAGIF_FILE);
@@ -349,7 +349,7 @@ void FlaMovies::playFlaMovie(const char *flaName) {
fileNamePath.erase(n);
}
- if (_engine->cfgfile.Movie == CONF_MOVIE_FLAGIF) {
+ if (_engine->_cfgfile.Movie == CONF_MOVIE_FLAGIF) {
playGIFMovie(fileNamePath.c_str());
return;
}
@@ -399,7 +399,7 @@ void FlaMovies::playFlaMovie(const char *flaName) {
}
processFrame();
scaleFla2x();
- _engine->frontVideoBuffer.blitFrom(_engine->imageBuffer, _engine->imageBuffer.getBounds(), _engine->frontVideoBuffer.getBounds());
+ _engine->_frontVideoBuffer.blitFrom(_engine->_imageBuffer, _engine->_imageBuffer.getBounds(), _engine->_frontVideoBuffer.getBounds());
// Only blit to screen if isn't a fade
if (_fadeOut == -1) {
@@ -424,7 +424,7 @@ void FlaMovies::playFlaMovie(const char *flaName) {
} while (!_engine->_input->toggleAbortAction());
}
- if (_engine->cfgfile.CrossFade) {
+ if (_engine->_cfgfile.CrossFade) {
_engine->crossFade(_engine->_screens->_paletteRGBACustom);
} else {
_engine->_screens->fadeToBlack(_engine->_screens->_paletteRGBACustom);
diff --git a/engines/twine/holomap.cpp b/engines/twine/holomap.cpp
index cbabb388b7..0803dc9962 100644
--- a/engines/twine/holomap.cpp
+++ b/engines/twine/holomap.cpp
@@ -131,7 +131,7 @@ static int sortHolomapSurfaceCoordsByDepth(const void *a1, const void *a2) {
// verified with disassembly
void Holomap::prepareHolomapSurface() {
- Common::MemoryReadStream stream(_engine->_resources->holomapSurfacePtr, _engine->_resources->holomapSurfaceSize);
+ Common::MemoryReadStream stream(_engine->_resources->_holomapSurfacePtr, _engine->_resources->_holomapSurfaceSize);
int holomapSurfaceArrayIdx = 0;
_engine->_renderer->setBaseRotation(0, 0, 0);
for (int angle = -ANGLE_90; angle <= ANGLE_90; angle += ANGLE_11_25) {
@@ -184,21 +184,21 @@ void Holomap::prepareHolomapPolygons() {
IVec3* vec = &_holomapSurface[holomapSurfaceArrayIdx++];
_engine->_renderer->getBaseRotationPosition(vec->x, vec->y, vec->z);
if (angle != ANGLE_90) {
- _holomapSort[holomapSortArrayIdx].z = _engine->_renderer->destPos.z;
+ _holomapSort[holomapSortArrayIdx].z = _engine->_renderer->_destPos.z;
_holomapSort[holomapSortArrayIdx].projectedPosIdx = _projectedSurfaceIndex;
++holomapSortArrayIdx;
}
- _engine->_renderer->projectXYPositionOnScreen(_engine->_renderer->destPos);
- _projectedSurfacePositions[_projectedSurfaceIndex].x = _engine->_renderer->projPos.x;
- _projectedSurfacePositions[_projectedSurfaceIndex].y = _engine->_renderer->projPos.y;
+ _engine->_renderer->projectXYPositionOnScreen(_engine->_renderer->_destPos);
+ _projectedSurfacePositions[_projectedSurfaceIndex].x = _engine->_renderer->_projPos.x;
+ _projectedSurfacePositions[_projectedSurfaceIndex].y = _engine->_renderer->_projPos.y;
rotation += ANGLE_11_25;
++_projectedSurfaceIndex;
}
IVec3* vec = &_holomapSurface[holomapSurfaceArrayIdx++];
_engine->_renderer->getBaseRotationPosition(vec->x, vec->y, vec->z);
- _engine->_renderer->projectXYPositionOnScreen(_engine->_renderer->destPos);
- _projectedSurfacePositions[_projectedSurfaceIndex].x = _engine->_renderer->projPos.x;
- _projectedSurfacePositions[_projectedSurfaceIndex].y = _engine->_renderer->projPos.y;
+ _engine->_renderer->projectXYPositionOnScreen(_engine->_renderer->_destPos);
+ _projectedSurfacePositions[_projectedSurfaceIndex].x = _engine->_renderer->_projPos.x;
+ _projectedSurfacePositions[_projectedSurfaceIndex].y = _engine->_renderer->_projPos.y;
rotation += ANGLE_11_25;
++_projectedSurfaceIndex;
}
@@ -273,10 +273,10 @@ void Holomap::drawHolomapText(int32 centerx, int32 top, const char *title) {
void Holomap::renderHolomapModel(const BodyData &bodyData, int32 x, int32 y, int32 zPos) {
_engine->_renderer->setBaseRotation(x, y, 0);
_engine->_renderer->getBaseRotationPosition(0, 0, zPos + 1000);
- _engine->_renderer->getBaseRotationPosition(_engine->_renderer->destPos.x, _engine->_renderer->destPos.y, _engine->_renderer->destPos.z);
+ _engine->_renderer->getBaseRotationPosition(_engine->_renderer->_destPos.x, _engine->_renderer->_destPos.y, _engine->_renderer->_destPos.z);
_engine->_interface->resetClip();
Common::Rect dummy;
- _engine->_renderer->renderIsoModel(_engine->_renderer->destPos.x, _engine->_renderer->destPos.y, _engine->_renderer->destPos.z, x, y, ANGLE_0, bodyData, dummy);
+ _engine->_renderer->renderIsoModel(_engine->_renderer->_destPos.x, _engine->_renderer->_destPos.y, _engine->_renderer->_destPos.z, x, y, ANGLE_0, bodyData, dummy);
}
void Holomap::drawHolomapTrajectory(int32 trajectoryIndex) {
@@ -310,7 +310,7 @@ void Holomap::drawHolomapTrajectory(int32 trajectoryIndex) {
BodyData bodyData;
bodyData.loadFromHQR(Resources::HQR_RESS_FILE, data->getModel());
uint frameNumber = 0;
- int32 frameTime = _engine->lbaTime;
+ int32 frameTime = _engine->_lbaTime;
int16 trajAnimFrameIdx = 0;
int32 local18 = 0;
@@ -323,7 +323,7 @@ void Holomap::drawHolomapTrajectory(int32 trajectoryIndex) {
break;
}
- if (!fadeInPalette && local18 < _engine->lbaTime) {
+ if (!fadeInPalette && local18 < _engine->_lbaTime) {
//const Common::Rect rect(170, 50, 470, 330);
//_engine->_interface->setClip(rect);
_engine->setPalette(192, 32, &_paletteHolomap[3 * _holomapPaletteIndex++]);
@@ -332,10 +332,10 @@ void Holomap::drawHolomapTrajectory(int32 trajectoryIndex) {
if (_holomapPaletteIndex == 32) {
_holomapPaletteIndex = 0;
}
- local18 = _engine->lbaTime + 3;
+ local18 = _engine->_lbaTime + 3;
}
- const int16 newAngle = move.getRealAngle(_engine->lbaTime);
+ const int16 newAngle = move.getRealAngle(_engine->_lbaTime);
if (move.numOfStep == 0) {
_engine->_movements->setActorAngleSafe(ANGLE_0, -ANGLE_90, 500, &move);
}
@@ -357,8 +357,8 @@ void Holomap::drawHolomapTrajectory(int32 trajectoryIndex) {
_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);
- if (frameTime + 40 <= _engine->lbaTime) {
- frameTime = _engine->lbaTime;
+ if (frameTime + 40 <= _engine->_lbaTime) {
+ frameTime = _engine->_lbaTime;
int32 modelX;
int32 modelY;
if (trajAnimFrameIdx < data->numAnimFrames) {
@@ -415,27 +415,27 @@ void Holomap::renderLocations(int xRot, int yRot, int zRot, bool lower) {
const Location &loc = _locations[locationIdx];
_engine->_renderer->setBaseRotation(loc.angle.x, loc.angle.y, 0);
_engine->_renderer->getBaseRotationPosition(0, 0, loc.angle.z + 1000);
- int32 xpos1 = _engine->_renderer->destPos.x;
- int32 ypos1 = _engine->_renderer->destPos.y;
- int32 zpos1 = _engine->_renderer->destPos.z;
+ int32 xpos1 = _engine->_renderer->_destPos.x;
+ int32 ypos1 = _engine->_renderer->_destPos.y;
+ int32 zpos1 = _engine->_renderer->_destPos.z;
_engine->_renderer->getBaseRotationPosition(0, 0, 1500);
- int32 xpos2 = _engine->_renderer->destPos.x;
- int32 ypos2 = _engine->_renderer->destPos.y;
- int32 zpos2 = _engine->_renderer->destPos.z;
+ int32 xpos2 = _engine->_renderer->_destPos.x;
+ int32 ypos2 = _engine->_renderer->_destPos.y;
+ int32 zpos2 = _engine->_renderer->_destPos.z;
_engine->_renderer->setBaseRotation(xRot, yRot, zRot, true);
int32 zpos1_copy = zpos1;
- _engine->_renderer->baseRotPos.x = 0;
- _engine->_renderer->baseRotPos.y = 0;
- _engine->_renderer->baseRotPos.z = 9500;
+ _engine->_renderer->_baseRotPos.x = 0;
+ _engine->_renderer->_baseRotPos.y = 0;
+ _engine->_renderer->_baseRotPos.z = 9500;
_engine->_renderer->getBaseRotationPosition(xpos1, ypos1, zpos1);
- int32 zpos1_copy2 = _engine->_renderer->destPos.z;
+ int32 zpos1_copy2 = _engine->_renderer->_destPos.z;
_engine->_renderer->getBaseRotationPosition(xpos2, ypos2, zpos2);
if (lower) {
- if (zpos1_copy2 > _engine->_renderer->destPos.z) {
+ if (zpos1_copy2 > _engine->_renderer->_destPos.z) {
continue;
}
} else {
- if (_engine->_renderer->destPos.z > zpos1_copy2) {
+ if (_engine->_renderer->_destPos.z > zpos1_copy2) {
continue;
}
}
@@ -498,7 +498,7 @@ void Holomap::processHolomap() {
int32 currentLocation = _engine->_scene->currentSceneIdx;
_engine->_text->drawHolomapLocation(_locations[currentLocation].textIndex);
- int32 time = _engine->lbaTime;
+ int32 time = _engine->_lbaTime;
int32 xRot = ClampAngle(_locations[currentLocation].angle.x);
int32 yRot = ClampAngle(_locations[currentLocation].angle.y);
bool rotate = false;
@@ -518,7 +518,7 @@ void Holomap::processHolomap() {
if (nextLocation != -1) {
currentLocation = nextLocation;
_engine->_text->drawHolomapLocation(_locations[currentLocation].textIndex);
- time = _engine->lbaTime;
+ time = _engine->_lbaTime;
rotate = true;
}
} else if (_engine->_input->toggleActionIfActive(TwinEActionType::HolomapNext)) {
@@ -526,7 +526,7 @@ void Holomap::processHolomap() {
if (nextLocation != -1) {
currentLocation = nextLocation;
_engine->_text->drawHolomapLocation(_locations[currentLocation].textIndex);
- time = _engine->lbaTime;
+ time = _engine->_lbaTime;
rotate = true;
}
}
@@ -534,31 +534,31 @@ void Holomap::processHolomap() {
if (_engine->_input->isActionActive(TwinEActionType::HolomapLeft)) {
xRot += ANGLE_1;
rotate = true;
- time = _engine->lbaTime;
+ time = _engine->_lbaTime;
} else if (_engine->_input->isActionActive(TwinEActionType::HolomapRight)) {
xRot -= 8;
rotate = true;
- time = _engine->lbaTime;
+ time = _engine->_lbaTime;
}
if (_engine->_input->isActionActive(TwinEActionType::HolomapUp)) {
yRot += 8;
rotate = true;
- time = _engine->lbaTime;
+ time = _engine->_lbaTime;
} else if (_engine->_input->isActionActive(TwinEActionType::HolomapDown)) {
yRot -= 8;
rotate = true;
- time = _engine->lbaTime;
+ time = _engine->_lbaTime;
}
if (rotate) {
- const int32 dt = _engine->lbaTime - time;
+ const int32 dt = _engine->_lbaTime - time;
xRot = _engine->_collision->getAverageValue(ClampAngle(xRot), _locations[currentLocation].angle.x, 75, dt);
yRot = _engine->_collision->getAverageValue(ClampAngle(yRot), _locations[currentLocation].angle.y, 75, dt);
redraw = true;
}
- if (!fadeInPalette && local18 < _engine->lbaTime) {
+ if (!fadeInPalette && local18 < _engine->_lbaTime) {
//const Common::Rect rect(170, 50, 470, 330);
//_engine->_interface->setClip(rect);
_engine->setPalette(192, 32, &_paletteHolomap[3 * _holomapPaletteIndex++]);
@@ -567,7 +567,7 @@ void Holomap::processHolomap() {
if (_holomapPaletteIndex == 32) {
_holomapPaletteIndex = 0;
}
- local18 = _engine->lbaTime + 3;
+ local18 = _engine->_lbaTime + 3;
redraw = true;
}
@@ -579,9 +579,9 @@ void Holomap::processHolomap() {
_engine->_renderer->setLightVector(xRot, yRot, 0);
renderLocations(xRot, yRot, 0, false);
_engine->_renderer->setBaseRotation(xRot, yRot, 0, true);
- _engine->_renderer->baseRotPos.x = 0;
- _engine->_renderer->baseRotPos.y = 0;
- _engine->_renderer->baseRotPos.z = 9500;
+ _engine->_renderer->_baseRotPos.x = 0;
+ _engine->_renderer->_baseRotPos.y = 0;
+ _engine->_renderer->_baseRotPos.z = 9500;
renderHolomapSurfacePolygons();
renderLocations(xRot, yRot, 0, true);
drawHolomapText(_engine->width() / 2, 25, "HoloMap");
@@ -595,7 +595,7 @@ void Holomap::processHolomap() {
rotate = false;
}
- ++_engine->lbaTime;
+ ++_engine->_lbaTime;
// TODO: text afterwards on top (not before as it is currently implemented)?
// pos 0x140,0x19?
@@ -609,7 +609,7 @@ void Holomap::processHolomap() {
}
_engine->_screens->clearScreen();
- _engine->_text->drawTextBoxBackground = true;
+ _engine->_text->_drawTextBoxBackground = true;
_engine->setPalette(_engine->_screens->_paletteRGBA);
_engine->_scene->alphaLight = alphaLightTmp;
_engine->_scene->betaLight = betaLightTmp;
diff --git a/engines/twine/input.cpp b/engines/twine/input.cpp
index ce7e09ec4d..86f97000ef 100644
--- a/engines/twine/input.cpp
+++ b/engines/twine/input.cpp
@@ -50,14 +50,14 @@ Input::Input(TwinEEngine *engine) : _engine(engine) {}
bool Input::isActionActive(TwinEActionType actionType, bool onlyFirstTime) const {
if (onlyFirstTime) {
- return actionStates[actionType] == 1;
+ return _actionStates[actionType] == 1;
}
- return actionStates[actionType] > 0;
+ return _actionStates[actionType] > 0;
}
bool Input::toggleActionIfActive(TwinEActionType actionType) {
- if (actionStates[actionType] > 0) {
- actionStates[actionType] = 0;
+ if (_actionStates[actionType] > 0) {
+ _actionStates[actionType] = 0;
return true;
}
return false;
@@ -117,7 +117,7 @@ void Input::enableKeyMap(const char *id) {
}
void Input::processCustomEngineEventStart(const Common::Event &event) {
- if (!_engine->cfgfile.Debug) {
+ if (!_engine->_cfgfile.Debug) {
switch (event.customType) {
case TwinEActionType::DebugGridCameraPressUp:
case TwinEActionType::DebugGridCameraPressDown:
@@ -132,17 +132,17 @@ void Input::processCustomEngineEventStart(const Common::Event &event) {
case TwinEActionType::DecreaseCellingGridIndex:
break;
default:
- actionStates[event.customType] = 1 + event.kbdRepeat;
+ _actionStates[event.customType] = 1 + event.kbdRepeat;
break;
}
} else {
- actionStates[event.customType] = 1 + event.kbdRepeat;
+ _actionStates[event.customType] = 1 + event.kbdRepeat;
}
debug(3, "twine custom event type start: %i", event.customType);
}
void Input::processCustomEngineEventEnd(const Common::Event &event) {
- actionStates[event.customType] = 0;
+ _actionStates[event.customType] = 0;
debug(3, "twine custom event type end: %i", event.customType);
}
@@ -167,7 +167,7 @@ Common::Point Input::getMousePositions() const {
}
bool Input::isMouseHovering(const Common::Rect &rect) const {
- if (!_engine->cfgfile.Mouse) {
+ if (!_engine->_cfgfile.Mouse) {
return false;
}
const Common::Point &point = getMousePositions();
diff --git a/engines/twine/input.h b/engines/twine/input.h
index a748fc6863..da33d606ee 100644
--- a/engines/twine/input.h
+++ b/engines/twine/input.h
@@ -114,8 +114,7 @@ private:
TwinEEngine *_engine;
Common::String _currentKeyMap;
- uint8 actionStates[TwinEActionType::Max]{false};
- //int16 currentKey = 0;
+ uint8 _actionStates[TwinEActionType::Max]{false};
public:
Input(TwinEEngine *engine);
diff --git a/engines/twine/menu/interface.cpp b/engines/twine/menu/interface.cpp
index c365126f3c..2cbdb23c50 100644
--- a/engines/twine/menu/interface.cpp
+++ b/engines/twine/menu/interface.cpp
@@ -37,14 +37,14 @@ const int32 BOTTOM = 8; // 1000
int32 Interface::checkClipping(int32 x, int32 y) const {
int32 code = INSIDE;
- if (x < clip.left) {
+ if (x < _clip.left) {
code |= LEFT;
- } else if (x > clip.right) {
+ } else if (x > _clip.right) {
code |= RIGHT;
}
- if (y < clip.top) {
+ if (y < _clip.top) {
code |= TOP;
- } else if (y > clip.bottom) {
+ } else if (y > _clip.bottom) {
code |= BOTTOM;
}
return code;
@@ -73,17 +73,17 @@ bool Interface::drawLine(int32 startWidth, int32 startHeight, int32 endWidth, in
int32 x = 0;
int32 y = 0;
if (outcodeOut & TOP) { // point is above the clip rectangle
- x = startWidth + (int)((endWidth - startWidth) * (float)(clip.top - startHeight) / (float)(endHeight - startHeight));
- y = clip.top;
+ x = startWidth + (int)((endWidth - startWidth) * (float)(_clip.top - startHeight) / (float)(endHeight - startHeight));
+ y = _clip.top;
} else if (outcodeOut & BOTTOM) { // point is below the clip rectangle
- x = startWidth + (int)((endWidth - startWidth) * (float)(clip.bottom - startHeight) / (float)(endHeight - startHeight));
- y = clip.bottom;
+ x = startWidth + (int)((endWidth - startWidth) * (float)(_clip.bottom - startHeight) / (float)(endHeight - startHeight));
+ y = _clip.bottom;
} else if (outcodeOut & RIGHT) { // point is to the right of clip rectangle
- y = startHeight + (int)((endHeight - startHeight) * (float)(clip.right - startWidth) / (float)(endWidth - startWidth));
- x = clip.right;
+ y = startHeight + (int)((endHeight - startHeight) * (float)(_clip.right - startWidth) / (float)(endWidth - startWidth));
+ x = _clip.right;
} else if (outcodeOut & LEFT) { // point is to the left of clip rectangle
- y = startHeight + (int)((endHeight - startHeight) * (float)(clip.left - startWidth) / (float)(endWidth - startWidth));
- x = clip.left;
+ y = startHeight + (int)((endHeight - startHeight) * (float)(_clip.left - startWidth) / (float)(endWidth - startWidth));
+ x = _clip.left;
}
// Clip the point
@@ -106,8 +106,8 @@ bool Interface::drawLine(int32 startWidth, int32 startHeight, int32 endWidth, in
endHeight = -endHeight;
}
- uint8 *out = (uint8*)_engine->frontVideoBuffer.getBasePtr(startWidth, startHeight);
- _engine->frontVideoBuffer.addDirtyRect(Common::Rect(startWidth, startHeight, startWidth + endWidth, startHeight + endHeight));
+ uint8 *out = (uint8*)_engine->_frontVideoBuffer.getBasePtr(startWidth, startHeight);
+ _engine->_frontVideoBuffer.addDirtyRect(Common::Rect(startWidth, startHeight, startWidth + endWidth, startHeight + endHeight));
if (endWidth < endHeight) { // significant slope
SWAP(endWidth, endHeight);
@@ -156,7 +156,7 @@ void Interface::drawTransparentBox(const Common::Rect &rect, int32 colorAdj) {
return;
}
- uint8 *pos = (uint8*)_engine->frontVideoBuffer.getBasePtr(0, r.top);
+ uint8 *pos = (uint8*)_engine->_frontVideoBuffer.getBasePtr(0, r.top);
for (int32 y = r.top; y <= r.bottom; ++y) {
for (int32 x = r.left; x <= r.right; ++x) {
@@ -168,37 +168,37 @@ void Interface::drawTransparentBox(const Common::Rect &rect, int32 colorAdj) {
pos[x] = color + color2;
}
}
- pos += _engine->frontVideoBuffer.pitch;
+ pos += _engine->_frontVideoBuffer.pitch;
}
- _engine->frontVideoBuffer.addDirtyRect(r);
+ _engine->_frontVideoBuffer.addDirtyRect(r);
}
void Interface::drawFilledRect(const Common::Rect &rect, uint8 colorIndex) {
if (!rect.isValidRect()) {
return;
}
- _engine->frontVideoBuffer.fillRect(Common::Rect(rect.left, rect.top, rect.right + 1, rect.bottom + 1), colorIndex);
+ _engine->_frontVideoBuffer.fillRect(Common::Rect(rect.left, rect.top, rect.right + 1, rect.bottom + 1), colorIndex);
}
bool Interface::setClip(const Common::Rect &rect) {
- if (!clip.isValidRect()) {
+ if (!_clip.isValidRect()) {
return false;
}
- clip = rect;
- clip.clip(_engine->rect());
+ _clip = rect;
+ _clip.clip(_engine->rect());
return true;
}
void Interface::saveClip() {
- savedClip = clip;
+ _savedClip = _clip;
}
void Interface::loadClip() {
- clip = savedClip;
+ _clip = _savedClip;
}
void Interface::resetClip() {
- clip = _engine->rect();
+ _clip = _engine->rect();
}
} // namespace TwinE
diff --git a/engines/twine/menu/interface.h b/engines/twine/menu/interface.h
index cf05f431f5..bfcabe6285 100644
--- a/engines/twine/menu/interface.h
+++ b/engines/twine/menu/interface.h
@@ -38,11 +38,11 @@ class Interface {
private:
TwinEEngine *_engine;
int32 checkClipping(int32 x, int32 y) const;
- Common::Rect savedClip;
+ Common::Rect _savedClip;
public:
Interface(TwinEEngine *engine);
- Common::Rect clip { 0, 0, 0, 0 };
+ Common::Rect _clip { 0, 0, 0, 0 };
/**
* Draw button line
diff --git a/engines/twine/menu/menu.cpp b/engines/twine/menu/menu.cpp
index 680e802552..0fb1744309 100644
--- a/engines/twine/menu/menu.cpp
+++ b/engines/twine/menu/menu.cpp
@@ -217,10 +217,10 @@ void Menu::processPlasmaEffect(const Common::Rect &rect, int32 color) {
plasmaEffectRenderFrame();
const uint8 *in = _plasmaEffectPtr + 5 * PLASMA_WIDTH;
- uint8 *out = (uint8 *)_engine->imageBuffer.getBasePtr(0, 0);
+ uint8 *out = (uint8 *)_engine->_imageBuffer.getBasePtr(0, 0);
for (int32 y = 0; y < PLASMA_HEIGHT / 2; y++) {
- int32 yOffset = y * _engine->imageBuffer.w;
+ int32 yOffset = y * _engine->_imageBuffer.w;
const uint8 *colPtr = &in[y * PLASMA_WIDTH];
for (int32 x = 0; x < PLASMA_WIDTH; x++) {
const uint8 c = MIN(*colPtr / 2 + color, max_value);
@@ -228,14 +228,14 @@ void Menu::processPlasmaEffect(const Common::Rect &rect, int32 color) {
const int32 target = 2 * yOffset;
out[target + 0] = c;
out[target + 1] = c;
- out[target + _engine->imageBuffer.w + 0] = c;
- out[target + _engine->imageBuffer.w + 1] = c;
+ out[target + _engine->_imageBuffer.w + 0] = c;
+ out[target + _engine->_imageBuffer.w + 1] = c;
++colPtr;
++yOffset;
}
}
const Common::Rect prect(0, 0, PLASMA_WIDTH, PLASMA_HEIGHT);
- _engine->frontVideoBuffer.blitFrom(_engine->imageBuffer, prect, rect);
+ _engine->_frontVideoBuffer.blitFrom(_engine->_imageBuffer, prect, rect);
}
void Menu::drawBox(const Common::Rect &rect, int32 colorLeftTop, int32 colorRightBottom) {
@@ -331,25 +331,25 @@ int16 Menu::drawButtons(MenuSettings *menuSettings, bool hover) {
}
break;
case MenuButtonTypes::kPolygonDetails:
- if (_engine->cfgfile.PolygonDetails == 0) {
+ if (_engine->_cfgfile.PolygonDetails == 0) {
menuSettings->setButtonTextId(i, TextId::kDetailsPolygonsLow);
- } else if (_engine->cfgfile.PolygonDetails == 1) {
+ } else if (_engine->_cfgfile.PolygonDetails == 1) {
menuSettings->setButtonTextId(i, TextId::kDetailsPolygonsMiddle);
} else {
menuSettings->setButtonTextId(i, TextId::kDetailsPolygonsHigh);
}
break;
case MenuButtonTypes::kShadowSettings:
- if (_engine->cfgfile.ShadowMode == 0) {
+ if (_engine->_cfgfile.ShadowMode == 0) {
menuSettings->setButtonTextId(i, TextId::kShadowsDisabled);
- } else if (_engine->cfgfile.ShadowMode == 1) {
+ } else if (_engine->_cfgfile.ShadowMode == 1) {
menuSettings->setButtonTextId(i, TextId::kShadowsFigures);
} else {
menuSettings->setButtonTextId(i, TextId::kDetailsShadowHigh);
}
break;
case MenuButtonTypes::kSceneryZoom:
- if (_engine->cfgfile.SceZoom) {
+ if (_engine->_cfgfile.SceZoom) {
menuSettings->setButtonTextId(i, TextId::kSceneryZoomOn);
} else {
menuSettings->setButtonTextId(i, TextId::kNoSceneryZoom);
@@ -457,29 +457,29 @@ int32 Menu::processMenu(MenuSettings *menuSettings, bool showCredits) {
break;
case MenuButtonTypes::kPolygonDetails:
if (_engine->_input->toggleActionIfActive(TwinEActionType::UILeft)) {
- _engine->cfgfile.PolygonDetails--;
- _engine->cfgfile.PolygonDetails %= 3;
+ _engine->_cfgfile.PolygonDetails--;
+ _engine->_cfgfile.PolygonDetails %= 3;
startMillis = loopMillis;
} else if (_engine->_input->toggleActionIfActive(TwinEActionType::UIRight) || _engine->_input->toggleActionIfActive(TwinEActionType::UIEnter)) {
- _engine->cfgfile.PolygonDetails++;
- _engine->cfgfile.PolygonDetails %= 3;
+ _engine->_cfgfile.PolygonDetails++;
+ _engine->_cfgfile.PolygonDetails %= 3;
startMillis = loopMillis;
}
break;
case MenuButtonTypes::kShadowSettings:
if (_engine->_input->toggleActionIfActive(TwinEActionType::UILeft)) {
- _engine->cfgfile.ShadowMode--;
- _engine->cfgfile.ShadowMode %= 3;
+ _engine->_cfgfile.ShadowMode--;
+ _engine->_cfgfile.ShadowMode %= 3;
startMillis = loopMillis;
} else if (_engine->_input->toggleActionIfActive(TwinEActionType::UIRight) || _engine->_input->toggleActionIfActive(TwinEActionType::UIEnter)) {
- _engine->cfgfile.ShadowMode++;
- _engine->cfgfile.ShadowMode %= 3;
+ _engine->_cfgfile.ShadowMode++;
+ _engine->_cfgfile.ShadowMode %= 3;
startMillis = loopMillis;
}
break;
case MenuButtonTypes::kSceneryZoom:
if (_engine->_input->toggleActionIfActive(TwinEActionType::UILeft) || _engine->_input->toggleActionIfActive(TwinEActionType::UIRight) || _engine->_input->toggleActionIfActive(TwinEActionType::UIEnter)) {
- _engine->cfgfile.SceZoom = !_engine->cfgfile.SceZoom;
+ _engine->_cfgfile.SceZoom = !_engine->_cfgfile.SceZoom;
startMillis = loopMillis;
}
break;
@@ -797,7 +797,7 @@ int32 Menu::giveupMenu() {
_engine->_sound->pauseSamples();
MenuSettings *localMenu;
- if (_engine->cfgfile.UseAutoSaving) {
+ if (_engine->_cfgfile.UseAutoSaving) {
localMenu = &_giveUpMenuState;
} else {
localMenu = &_giveUpMenuWithSaveState;
@@ -832,7 +832,7 @@ int32 Menu::giveupMenu() {
}
void Menu::drawHealthBar(int32 left, int32 right, int32 top, int32 barLeftPadding, int32 barHeight) {
- _engine->_grid->drawSprite(left, top + 3, _engine->_resources->spriteData[SPRITEHQR_LIFEPOINTS]);
+ _engine->_grid->drawSprite(left, top + 3, _engine->_resources->_spriteData[SPRITEHQR_LIFEPOINTS]);
const int32 barLeft = left + barLeftPadding;
const int32 healthBarRight = _engine->_screens->crossDot(barLeft, right, 50, _engine->_scene->sceneHero->life);
const int32 barBottom = top + barHeight;
@@ -844,13 +844,13 @@ void Menu::drawCloverLeafs(int32 newBoxLeft, int32 boxRight, int32 top) {
// Clover leaf boxes
for (int32 i = 0; i < _engine->_gameState->inventoryNumLeafsBox; i++) {
const int32 leftSpritePos = _engine->_screens->crossDot(newBoxLeft, boxRight, 10, i);
- _engine->_grid->drawSprite(leftSpritePos, top + 58, _engine->_resources->spriteData[SPRITEHQR_CLOVERLEAFBOX]);
+ _engine->_grid->drawSprite(leftSpritePos, top + 58, _engine->_resources->_spriteData[SPRITEHQR_CLOVERLEAFBOX]);
}
// Clover leafs
for (int32 i = 0; i < _engine->_gameState->inventoryNumLeafs; i++) {
const int32 leftSpritePos = _engine->_screens->crossDot(newBoxLeft, boxRight, 10, i);
- _engine->_grid->drawSprite(leftSpritePos + 2, top + 60, _engine->_resources->spriteData[SPRITEHQR_CLOVERLEAF]);
+ _engine->_grid->drawSprite(leftSpritePos + 2, top + 60, _engine->_resources->_spriteData[SPRITEHQR_CLOVERLEAF]);
}
}
@@ -861,7 +861,7 @@ void Menu::drawMagicPointsBar(int32 left, int32 right, int32 top, int32 barLeftP
if (!_engine->_gameState->hasItem(InventoryItems::kiTunic)) {
return;
}
- _engine->_grid->drawSprite(left, top + 1, _engine->_resources->spriteData[SPRITEHQR_MAGICPOINTS]);
+ _engine->_grid->drawSprite(left, top + 1, _engine->_resources->_spriteData[SPRITEHQR_MAGICPOINTS]);
if (_engine->_gameState->magicLevelIdx <= 0) {
return;
}
@@ -881,12 +881,12 @@ void Menu::drawSpriteAndString(int32 left, int32 top, const SpriteData &spriteDa
void Menu::drawCoins(int32 left, int32 top) {
const Common::String &inventoryNumKashes = Common::String::format("%d", _engine->_gameState->inventoryNumKashes);
- drawSpriteAndString(left, top, _engine->_resources->spriteData[SPRITEHQR_KASHES], inventoryNumKashes);
+ drawSpriteAndString(left, top, _engine->_resources->_spriteData[SPRITEHQR_KASHES], inventoryNumKashes);
}
void Menu::drawKeys(int32 left, int32 top) {
const Common::String &inventoryNumKeys = Common::String::format("%d", _engine->_gameState->inventoryNumKeys);
- drawSpriteAndString(left, top, _engine->_resources->spriteData[SPRITEHQR_KEY], inventoryNumKeys);
+ drawSpriteAndString(left, top, _engine->_resources->_spriteData[SPRITEHQR_KEY], inventoryNumKeys);
}
void Menu::drawInfoMenu(int16 left, int16 top, int16 width) {
@@ -936,7 +936,7 @@ void Menu::drawBehaviour(int32 left, int32 top, HeroBehaviourType behaviour, int
const Common::Rect &boxRect = calcBehaviourRect(left, top, behaviour);
const int animIdx = _engine->_actor->heroAnimIdx[(byte)behaviour];
- const AnimData ¤tAnimData = _engine->_resources->animData[animIdx];
+ const AnimData ¤tAnimData = _engine->_resources->_animData[animIdx];
uint currentAnimState = _behaviourAnimState[(byte)behaviour];
@@ -998,7 +998,7 @@ void Menu::drawBehaviour(int32 left, int32 top, HeroBehaviourType behaviour, int
void Menu::prepareAndDrawBehaviour(int32 left, int32 top, int32 angle, HeroBehaviourType behaviour, Common::Rect &dirtyRect) {
const int animIdx = _engine->_actor->heroAnimIdx[(byte)behaviour];
- _engine->_animations->setAnimAtKeyframe(_behaviourAnimState[(byte)behaviour], _engine->_resources->animData[animIdx], *_behaviourEntity, &_behaviourAnimData[(byte)behaviour]);
+ _engine->_animations->setAnimAtKeyframe(_behaviourAnimState[(byte)behaviour], _engine->_resources->_animData[animIdx], *_behaviourEntity, &_behaviourAnimData[(byte)behaviour]);
drawBehaviour(left, top, behaviour, angle, false, dirtyRect);
}
@@ -1033,7 +1033,7 @@ void Menu::processBehaviourMenu() {
_engine->_actor->setBehaviour(HeroBehaviourType::kNormal);
}
- _behaviourEntity = &_engine->_resources->bodyData[_engine->_scene->sceneHero->entity];
+ _behaviourEntity = &_engine->_resources->_bodyData[_engine->_scene->sceneHero->entity];
_engine->_actor->heroAnimIdx[(byte)HeroBehaviourType::kNormal] = _engine->_actor->heroAnimIdxNORMAL;
_engine->_actor->heroAnimIdx[(byte)HeroBehaviourType::kAthletic] = _engine->_actor->heroAnimIdxATHLETIC;
@@ -1056,9 +1056,9 @@ void Menu::processBehaviourMenu() {
HeroBehaviourType tmpHeroBehaviour = _engine->_actor->heroBehaviour;
const int animIdx = _engine->_actor->heroAnimIdx[(byte)_engine->_actor->heroBehaviour];
- _engine->_animations->setAnimAtKeyframe(_behaviourAnimState[(byte)_engine->_actor->heroBehaviour], _engine->_resources->animData[animIdx], *_behaviourEntity, &_behaviourAnimData[(byte)_engine->_actor->heroBehaviour]);
+ _engine->_animations->setAnimAtKeyframe(_behaviourAnimState[(byte)_engine->_actor->heroBehaviour], _engine->_resources->_animData[animIdx], *_behaviourEntity, &_behaviourAnimData[(byte)_engine->_actor->heroBehaviour]);
- int32 tmpTime = _engine->lbaTime;
+ int32 tmpTime = _engine->_lbaTime;
#if 0
ScopedCursor scopedCursor(_engine);
@@ -1101,7 +1101,7 @@ void Menu::processBehaviourMenu() {
tmpHeroBehaviour = _engine->_actor->heroBehaviour;
_engine->_movements->setActorAngleSafe(_engine->_scene->sceneHero->angle, _engine->_scene->sceneHero->angle - ANGLE_90, ANGLE_17, &_moveMenu);
const int tmpAnimIdx = _engine->_actor->heroAnimIdx[(byte)_engine->_actor->heroBehaviour];
- _engine->_animations->setAnimAtKeyframe(_behaviourAnimState[(byte)_engine->_actor->heroBehaviour], _engine->_resources->animData[tmpAnimIdx], *_behaviourEntity, &_behaviourAnimData[(byte)_engine->_actor->heroBehaviour]);
+ _engine->_animations->setAnimAtKeyframe(_behaviourAnimState[(byte)_engine->_actor->heroBehaviour], _engine->_resources->_animData[tmpAnimIdx], *_behaviourEntity, &_behaviourAnimData[(byte)_engine->_actor->heroBehaviour]);
}
drawBehaviour(left, top, _engine->_actor->heroBehaviour, -1, true, dirtyRect);
@@ -1109,10 +1109,10 @@ void Menu::processBehaviourMenu() {
_engine->copyBlockPhys(dirtyRect);
}
- _engine->lbaTime++;
+ _engine->_lbaTime++;
}
- _engine->lbaTime = tmpTime;
+ _engine->_lbaTime = tmpTime;
_engine->_actor->setBehaviour(_engine->_actor->heroBehaviour);
_engine->_gameState->initEngineProjections();
@@ -1137,7 +1137,7 @@ void Menu::drawItem(int32 left, int32 top, int32 item, Common::Rect &dirtyRect)
if (item < NUM_INVENTORY_ITEMS && _engine->_gameState->hasItem((InventoryItems)item) && (!_engine->_gameState->inventoryDisabled() || item == InventoryItems::kiCloverLeaf)) {
_itemAngle[item] += ANGLE_2;
_engine->_interface->setClip(rect);
- _engine->_renderer->renderInventoryItem(itemX, itemY, _engine->_resources->inventoryTable[item], _itemAngle[item], 15000);
+ _engine->_renderer->renderInventoryItem(itemX, itemY, _engine->_resources->_inventoryTable[item], _itemAngle[item], 15000);
_engine->_interface->resetClip();
if (item == InventoryItems::kGasItem) {
_engine->_text->setFontColor(COLOR_WHITE);
@@ -1276,7 +1276,7 @@ void Menu::processInventoryMenu() {
drawItem(left, top, _inventorySelectedItem, dirtyRect);
if (_inventorySelectedItem < NUM_INVENTORY_ITEMS && _engine->_input->toggleActionIfActive(TwinEActionType::UIEnter) && _engine->_gameState->hasItem((InventoryItems)_inventorySelectedItem) && !_engine->_gameState->inventoryDisabled()) {
- _engine->loopInventoryItem = _inventorySelectedItem;
+ _engine->_loopInventoryItem = _inventorySelectedItem;
_inventorySelectedColor = COLOR_91;
drawItem(left, top, _inventorySelectedItem, dirtyRect);
if (!dirtyRect.isEmpty()) {
diff --git a/engines/twine/menu/menuoptions.cpp b/engines/twine/menu/menuoptions.cpp
index c2adb2ead2..7322b20790 100644
--- a/engines/twine/menu/menuoptions.cpp
+++ b/engines/twine/menu/menuoptions.cpp
@@ -49,14 +49,14 @@ void MenuOptions::newGame() {
_engine->_music->stopMusic();
_engine->_sound->stopSamples();
- int32 tmpFlagDisplayText = _engine->cfgfile.FlagDisplayText;
- _engine->cfgfile.FlagDisplayText = true;
+ int32 tmpFlagDisplayText = _engine->_cfgfile.FlagDisplayText;
+ _engine->_cfgfile.FlagDisplayText = true;
// intro screen 1 - twinsun
_engine->_screens->loadImage(RESSHQR_INTROSCREEN1IMG, RESSHQR_INTROSCREEN1PAL);
- _engine->_text->drawTextBoxBackground = false;
- _engine->_text->renderTextTriangle = true;
+ _engine->_text->_drawTextBoxBackground = false;
+ _engine->_text->_renderTextTriangle = true;
_engine->_text->initTextBank(TextBankId::Inventory_Intro_and_Holomap);
_engine->_text->textClipFull();
@@ -74,7 +74,7 @@ void MenuOptions::newGame() {
aborted |= _engine->_text->drawTextProgressive(TextId::kIntroText3);
}
}
- _engine->cfgfile.FlagDisplayText = tmpFlagDisplayText;
+ _engine->_cfgfile.FlagDisplayText = tmpFlagDisplayText;
_engine->_screens->fadeToBlack(_engine->_screens->_paletteRGBACustom);
_engine->_screens->clearScreen();
@@ -87,8 +87,8 @@ void MenuOptions::newGame() {
_engine->_text->textClipSmall();
_engine->_screens->clearScreen();
- _engine->_text->drawTextBoxBackground = true;
- _engine->_text->renderTextTriangle = false;
+ _engine->_text->_drawTextBoxBackground = true;
+ _engine->_text->_renderTextTriangle = false;
// set main palette back
_engine->setPalette(_engine->_screens->_paletteRGBA);
@@ -96,8 +96,8 @@ void MenuOptions::newGame() {
void MenuOptions::showCredits() {
// TODO: the camera settings are wrong - this results in rendering problems with e.g. circles
- const int32 tmpShadowMode = _engine->cfgfile.ShadowMode;
- _engine->cfgfile.ShadowMode = 0;
+ const int32 tmpShadowMode = _engine->_cfgfile.ShadowMode;
+ _engine->_cfgfile.ShadowMode = 0;
_engine->_gameState->initEngineVars();
_engine->_scene->currentSceneIdx = LBA1SceneId::Credits_List_Sequence;
_engine->_scene->needChangeScene = LBA1SceneId::Credits_List_Sequence;
@@ -107,7 +107,7 @@ void MenuOptions::showCredits() {
_engine->_scene->stopRunningGame();
canShowCredits = false;
- _engine->cfgfile.ShadowMode = tmpShadowMode;
+ _engine->_cfgfile.ShadowMode = tmpShadowMode;
_engine->_screens->clearScreen();
diff --git a/engines/twine/metaengine.cpp b/engines/twine/metaengine.cpp
index a5fd077dcb..8f862b5943 100644
--- a/engines/twine/metaengine.cpp
+++ b/engines/twine/metaengine.cpp
@@ -185,7 +185,7 @@ const ExtraGuiOptions TwinEMetaEngine::getExtraGuiOptions(const Common::String &
}
void TwinEMetaEngine::getSavegameThumbnail(Graphics::Surface &thumb) {
- thumb.copyFrom(((TwinEEngine*)g_engine)->workVideoBuffer);
+ thumb.copyFrom(((TwinEEngine*)g_engine)->_workVideoBuffer);
}
//
diff --git a/engines/twine/renderer/redraw.cpp b/engines/twine/renderer/redraw.cpp
index f188ac6b21..dcef6ba2b7 100644
--- a/engines/twine/renderer/redraw.cpp
+++ b/engines/twine/renderer/redraw.cpp
@@ -163,7 +163,7 @@ void Redraw::addOverlay(OverlayType type, int16 info0, int16 x, int16 y, int16 i
overlay->y = y;
overlay->info1 = info1;
overlay->posType = posType;
- overlay->lifeTime = _engine->lbaTime + lifeTime * 50;
+ overlay->lifeTime = _engine->_lbaTime + lifeTime * 50;
break;
}
}
@@ -197,7 +197,7 @@ int32 Redraw::fillActorDrawingList(DrawListStruct *drawList, bool bgRedraw) {
_engine->_renderer->projectPositionOnScreen(actor->pos - _engine->_grid->camera);
// check if actor is visible on screen, otherwise don't display it
- if (_engine->_renderer->projPos.x > -50 && _engine->_renderer->projPos.x < _engine->width() + 40 && _engine->_renderer->projPos.y > -30 && _engine->_renderer->projPos.y < _engine->height() + 100) {
+ if (_engine->_renderer->_projPos.x > -50 && _engine->_renderer->_projPos.x < _engine->width() + 40 && _engine->_renderer->_projPos.y > -30 && _engine->_renderer->_projPos.y < _engine->height() + 100) {
actor->dynamicFlags.bIsVisible = 1;
}
continue;
@@ -209,8 +209,8 @@ int32 Redraw::fillActorDrawingList(DrawListStruct *drawList, bool bgRedraw) {
// get actor position on screen
_engine->_renderer->projectPositionOnScreen(actor->pos - _engine->_grid->camera);
- if ((actor->staticFlags.bUsesClipping && _engine->_renderer->projPos.x > -112 && _engine->_renderer->projPos.x < _engine->width() + 112 && _engine->_renderer->projPos.y > -50 && _engine->_renderer->projPos.y < _engine->height() + 171) ||
- ((!actor->staticFlags.bUsesClipping) && _engine->_renderer->projPos.x > -50 && _engine->_renderer->projPos.x < _engine->width() + 40 && _engine->_renderer->projPos.y > -30 && _engine->_renderer->projPos.y < _engine->height() + 100)) {
+ if ((actor->staticFlags.bUsesClipping && _engine->_renderer->_projPos.x > -112 && _engine->_renderer->_projPos.x < _engine->width() + 112 && _engine->_renderer->_projPos.y > -50 && _engine->_renderer->_projPos.y < _engine->height() + 171) ||
+ ((!actor->staticFlags.bUsesClipping) && _engine->_renderer->_projPos.x > -50 && _engine->_renderer->_projPos.x < _engine->width() + 40 && _engine->_renderer->_projPos.y > -30 && _engine->_renderer->_projPos.y < _engine->height() + 100)) {
int32 tmpVal = actor->pos.z + actor->pos.x - _engine->_grid->camera.x - _engine->_grid->camera.z;
@@ -236,7 +236,7 @@ int32 Redraw::fillActorDrawingList(DrawListStruct *drawList, bool bgRedraw) {
drawListPos++;
// if use shadows
- if (_engine->cfgfile.ShadowMode != 0 && !(actor->staticFlags.bDoesntCastShadow)) {
+ if (_engine->_cfgfile.ShadowMode != 0 && !(actor->staticFlags.bDoesntCastShadow)) {
if (actor->standOn != -1) {
_engine->_actor->shadowCoord.x = actor->pos.x;
_engine->_actor->shadowCoord.y = actor->pos.y - 1;
@@ -255,8 +255,8 @@ int32 Redraw::fillActorDrawingList(DrawListStruct *drawList, bool bgRedraw) {
drawListPos++;
}
if (_inSceneryView && a == _engine->_scene->currentlyFollowedActor) {
- _sceneryViewX = _engine->_renderer->projPos.x;
- _sceneryViewY = _engine->_renderer->projPos.y;
+ _sceneryViewX = _engine->_renderer->_projPos.x;
+ _sceneryViewY = _engine->_renderer->_projPos.y;
}
}
}
@@ -270,24 +270,24 @@ int32 Redraw::fillExtraDrawingList(DrawListStruct *drawList, int32 drawListPos)
continue;
}
if (extra->type & ExtraType::TIME_IN) {
- if (_engine->lbaTime - extra->spawnTime > 35) {
- extra->spawnTime = _engine->lbaTime;
+ if (_engine->_lbaTime - extra->spawnTime > 35) {
+ extra->spawnTime = _engine->_lbaTime;
extra->type &= ~ExtraType::TIME_IN;
_engine->_sound->playSample(Samples::ItemPopup, 1, extra->pos);
}
continue;
}
- if ((extra->type & ExtraType::TIME_OUT) || (extra->type & ExtraType::FLASH) || (extra->payload.lifeTime + extra->spawnTime - 150 < _engine->lbaTime) || (!((_engine->lbaTime + extra->spawnTime) & 8))) {
+ if ((extra->type & ExtraType::TIME_OUT) || (extra->type & ExtraType::FLASH) || (extra->payload.lifeTime + extra->spawnTime - 150 < _engine->_lbaTime) || (!((_engine->_lbaTime + extra->spawnTime) & 8))) {
_engine->_renderer->projectPositionOnScreen(extra->pos - _engine->_grid->camera);
- if (_engine->_renderer->projPos.x > -50 && _engine->_renderer->projPos.x < _engine->width() + 40 && _engine->_renderer->projPos.y > -30 && _engine->_renderer->projPos.y < _engine->height() + 100) {
+ if (_engine->_renderer->_projPos.x > -50 && _engine->_renderer->_projPos.x < _engine->width() + 40 && _engine->_renderer->_projPos.y > -30 && _engine->_renderer->_projPos.y < _engine->height() + 100) {
const int16 tmpVal = extra->pos.x - _engine->_grid->camera.x + extra->pos.z - _engine->_grid->camera.z;
drawList[drawListPos].posValue = tmpVal;
drawList[drawListPos].actorIdx = i;
drawList[drawListPos].type = DrawListType::DrawExtras;
drawListPos++;
- if (_engine->cfgfile.ShadowMode == 2 && !(extra->info0 & EXTRA_SPECIAL_MASK)) {
+ if (_engine->_cfgfile.ShadowMode == 2 && !(extra->info0 & EXTRA_SPECIAL_MASK)) {
_engine->_movements->getShadowPosition(extra->pos);
drawList[drawListPos].posValue = tmpVal - 1;
@@ -310,18 +310,18 @@ void Redraw::processDrawListShadows(const DrawListStruct &drawCmd) {
_engine->_renderer->projectPositionOnScreen(drawCmd.x - _engine->_grid->camera.x, drawCmd.y - _engine->_grid->camera.y, drawCmd.z - _engine->_grid->camera.z);
int32 spriteWidth, spriteHeight;
- _engine->_grid->getSpriteSize(drawCmd.offset, &spriteWidth, &spriteHeight, _engine->_resources->spriteShadowPtr);
+ _engine->_grid->getSpriteSize(drawCmd.offset, &spriteWidth, &spriteHeight, _engine->_resources->_spriteShadowPtr);
// calculate sprite size and position on screen
Common::Rect renderRect;
- renderRect.left = _engine->_renderer->projPos.x - (spriteWidth / 2);
- renderRect.top = _engine->_renderer->projPos.y - (spriteHeight / 2);
- renderRect.right = _engine->_renderer->projPos.x + (spriteWidth / 2);
- renderRect.bottom = _engine->_renderer->projPos.y + (spriteHeight / 2);
+ renderRect.left = _engine->_renderer->_projPos.x - (spriteWidth / 2);
+ renderRect.top = _engine->_renderer->_projPos.y - (spriteHeight / 2);
+ renderRect.right = _engine->_renderer->_projPos.x + (spriteWidth / 2);
+ renderRect.bottom = _engine->_renderer->_projPos.y + (spriteHeight / 2);
_engine->_interface->setClip(renderRect);
- _engine->_grid->drawSprite(drawCmd.offset, renderRect.left, renderRect.top, _engine->_resources->spriteShadowPtr);
+ _engine->_grid->drawSprite(drawCmd.offset, renderRect.left, renderRect.top, _engine->_resources->_spriteShadowPtr);
const int32 tmpX = (drawCmd.x + BRICK_HEIGHT) / BRICK_SIZE;
const int32 tmpY = drawCmd.y / BRICK_HEIGHT;
@@ -329,7 +329,7 @@ void Redraw::processDrawListShadows(const DrawListStruct &drawCmd) {
_engine->_grid->drawOverModelActor(tmpX, tmpY, tmpZ);
- addRedrawArea(_engine->_interface->clip);
+ addRedrawArea(_engine->_interface->_clip);
_engine->_debugScene->drawClip(renderRect);
}
@@ -338,15 +338,15 @@ void Redraw::processDrawListActors(const DrawListStruct &drawCmd, bool bgRedraw)
const int32 actorIdx = drawCmd.actorIdx;
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
if (actor->previousAnimIdx >= 0) {
- const AnimData &animData = _engine->_resources->animData[actor->previousAnimIdx];
- _engine->_animations->setModelAnimation(actor->animPosition, animData, _engine->_resources->bodyData[actor->entity], &actor->animTimerData);
+ const AnimData &animData = _engine->_resources->_animData[actor->previousAnimIdx];
+ _engine->_animations->setModelAnimation(actor->animPosition, animData, _engine->_resources->_bodyData[actor->entity], &actor->animTimerData);
}
const int32 x = actor->pos.x - _engine->_grid->camera.x;
const int32 y = actor->pos.y - _engine->_grid->camera.y;
const int32 z = actor->pos.z - _engine->_grid->camera.z;
Common::Rect renderRect;
- if (!_engine->_renderer->renderIsoModel(x, y, z, ANGLE_0, actor->angle, ANGLE_0, _engine->_resources->bodyData[actor->entity], renderRect)) {
+ if (!_engine->_renderer->renderIsoModel(x, y, z, ANGLE_0, actor->angle, ANGLE_0, _engine->_resources->_bodyData[actor->entity], renderRect)) {
return;
}
@@ -363,25 +363,25 @@ void Redraw::processDrawListActors(const DrawListStruct &drawCmd, bool bgRedraw)
_engine->_grid->drawOverModelActor(tempX, tempY, tempZ);
if (_engine->_actor->cropBottomScreen) {
- _engine->_interface->clip.bottom = _engine->_actor->cropBottomScreen + 10;
+ _engine->_interface->_clip.bottom = _engine->_actor->cropBottomScreen + 10;
}
- addRedrawArea(_engine->_interface->clip);
+ addRedrawArea(_engine->_interface->_clip);
if (actor->staticFlags.bIsBackgrounded && bgRedraw) {
- _engine->blitFrontToWork(_engine->_interface->clip);
+ _engine->blitFrontToWork(_engine->_interface->_clip);
}
- _engine->_debugScene->drawClip(_engine->_interface->clip);
+ _engine->_debugScene->drawClip(_engine->_interface->_clip);
}
}
void Redraw::processDrawListActorSprites(const DrawListStruct &drawCmd, bool bgRedraw) {
int32 actorIdx = drawCmd.actorIdx;
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- const SpriteData &spriteData = _engine->_resources->spriteData[actor->entity];
+ const SpriteData &spriteData = _engine->_resources->_spriteData[actor->entity];
// TODO: using the raw pointer and not the SpriteData surface here is a workaround for issue https://bugs.scummvm.org/ticket/12024
- const uint8 *spritePtr = _engine->_resources->spriteTable[actor->entity];
+ const uint8 *spritePtr = _engine->_resources->_spriteTable[actor->entity];
// get actor position on screen
_engine->_renderer->projectPositionOnScreen(actor->pos - _engine->_grid->camera);
@@ -390,21 +390,21 @@ void Redraw::processDrawListActorSprites(const DrawListStruct &drawCmd, bool bgR
const int32 spriteHeight = spriteData.surface().h;
// calculate sprite position on screen
- const SpriteDim *dim = _engine->_resources->spriteBoundingBox.dim(actor->entity);
+ const SpriteDim *dim = _engine->_resources->_spriteBoundingBox.dim(actor->entity);
Common::Rect renderRect;
- renderRect.left = _engine->_renderer->projPos.x + dim->x;
- renderRect.top = _engine->_renderer->projPos.y + dim->y;
+ renderRect.left = _engine->_renderer->_projPos.x + dim->x;
+ renderRect.top = _engine->_renderer->_projPos.y + dim->y;
renderRect.right = renderRect.left + spriteWidth;
renderRect.bottom = renderRect.top + spriteHeight;
if (actor->staticFlags.bUsesClipping) {
- const Common::Rect rect(_engine->_renderer->projPosScreen.x + actor->cropLeft, _engine->_renderer->projPosScreen.y + actor->cropTop, _engine->_renderer->projPosScreen.x + actor->cropRight, _engine->_renderer->projPosScreen.y + actor->cropBottom);
+ const Common::Rect rect(_engine->_renderer->_projPosScreen.x + actor->cropLeft, _engine->_renderer->_projPosScreen.y + actor->cropTop, _engine->_renderer->_projPosScreen.x + actor->cropRight, _engine->_renderer->_projPosScreen.y + actor->cropBottom);
_engine->_interface->setClip(rect);
} else {
_engine->_interface->setClip(renderRect);
}
- if (_engine->_interface->clip.isValidRect()) {
+ if (_engine->_interface->_clip.isValidRect()) {
_engine->_grid->drawSprite(0, renderRect.left, renderRect.top, spritePtr);
actor->dynamicFlags.bIsVisible = 1;
@@ -425,10 +425,10 @@ void Redraw::processDrawListActorSprites(const DrawListStruct &drawCmd, bool bgR
_engine->_grid->drawOverSpriteActor(tmpX, tmpY, tmpZ);
}
- addRedrawArea(_engine->_interface->clip);
+ addRedrawArea(_engine->_interface->_clip);
if (actor->staticFlags.bIsBackgrounded && bgRedraw) {
- _engine->blitFrontToWork(_engine->_interface->clip);
+ _engine->blitFrontToWork(_engine->_interface->_clip);
}
_engine->_debugScene->drawClip(renderRect);
@@ -443,16 +443,16 @@ void Redraw::processDrawListExtras(const DrawListStruct &drawCmd) {
Common::Rect renderRect;
if (extra->info0 & EXTRA_SPECIAL_MASK) {
- _engine->_extra->drawExtraSpecial(extraIdx, _engine->_renderer->projPos.x, _engine->_renderer->projPos.y, renderRect);
+ _engine->_extra->drawExtraSpecial(extraIdx, _engine->_renderer->_projPos.x, _engine->_renderer->_projPos.y, renderRect);
} else {
- const SpriteData &spritePtr = _engine->_resources->spriteData[extra->info0];
+ const SpriteData &spritePtr = _engine->_resources->_spriteData[extra->info0];
const int32 spriteWidth = spritePtr.surface().w;
const int32 spriteHeight = spritePtr.surface().h;
// calculate sprite position on screen
- const SpriteDim *dim = _engine->_resources->spriteBoundingBox.dim(extra->info0);
- renderRect.left = _engine->_renderer->projPos.x + dim->x;
- renderRect.top = _engine->_renderer->projPos.y + dim->y;
+ const SpriteDim *dim = _engine->_resources->_spriteBoundingBox.dim(extra->info0);
+ renderRect.left = _engine->_renderer->_projPos.x + dim->x;
+ renderRect.top = _engine->_renderer->_projPos.y + dim->y;
renderRect.right = renderRect.left + spriteWidth;
renderRect.bottom = renderRect.top + spriteHeight;
@@ -461,13 +461,13 @@ void Redraw::processDrawListExtras(const DrawListStruct &drawCmd) {
_engine->_interface->setClip(renderRect);
- if (_engine->_interface->clip.isValidRect()) {
+ if (_engine->_interface->_clip.isValidRect()) {
const int32 tmpX = (drawCmd.x + BRICK_HEIGHT) / BRICK_SIZE;
const int32 tmpY = drawCmd.y / BRICK_HEIGHT;
const int32 tmpZ = (drawCmd.z + BRICK_HEIGHT) / BRICK_SIZE;
_engine->_grid->drawOverModelActor(tmpX, tmpY, tmpZ);
- addRedrawArea(_engine->_interface->clip);
+ addRedrawArea(_engine->_interface->_clip);
// show clipping area
//drawBox(renderRect);
@@ -513,7 +513,7 @@ void Redraw::renderOverlays() {
// process position overlay
switch (overlay->posType) {
case OverlayPosType::koNormal:
- if (_engine->lbaTime >= overlay->lifeTime) {
+ if (_engine->_lbaTime >= overlay->lifeTime) {
overlay->info0 = -1;
continue;
}
@@ -523,10 +523,10 @@ void Redraw::renderOverlays() {
_engine->_renderer->projectPositionOnScreen(actor2->pos.x - _engine->_grid->camera.x, actor2->pos.y + actor2->boudingBox.maxs.y - _engine->_grid->camera.y, actor2->pos.z - _engine->_grid->camera.z);
- overlay->x = _engine->_renderer->projPos.x;
- overlay->y = _engine->_renderer->projPos.y;
+ overlay->x = _engine->_renderer->_projPos.x;
+ overlay->y = _engine->_renderer->_projPos.y;
- if (_engine->lbaTime >= overlay->lifeTime) {
+ if (_engine->_lbaTime >= overlay->lifeTime) {
overlay->info0 = -1;
continue;
}
@@ -537,11 +537,11 @@ void Redraw::renderOverlays() {
// process overlay type
switch (overlay->type) {
case OverlayType::koSprite: {
- const SpriteData &spritePtr = _engine->_resources->spriteData[overlay->info0];
+ const SpriteData &spritePtr = _engine->_resources->_spriteData[overlay->info0];
const int32 spriteWidth = spritePtr.surface().w;
const int32 spriteHeight = spritePtr.surface().h;
- const SpriteDim *dim = _engine->_resources->spriteBoundingBox.dim(overlay->info0);
+ const SpriteDim *dim = _engine->_resources->_spriteBoundingBox.dim(overlay->info0);
Common::Rect renderRect;
renderRect.left = dim->x + overlay->x;
renderRect.top = dim->y + overlay->y;
@@ -550,7 +550,7 @@ void Redraw::renderOverlays() {
_engine->_grid->drawSprite(renderRect.left, renderRect.top, spritePtr);
- addRedrawArea(_engine->_interface->clip);
+ addRedrawArea(_engine->_interface->_clip);
break;
}
case OverlayType::koNumber: {
@@ -572,11 +572,11 @@ void Redraw::renderOverlays() {
_engine->_text->drawText(renderRect.left, renderRect.top, text);
- addRedrawArea(_engine->_interface->clip);
+ addRedrawArea(_engine->_interface->_clip);
break;
}
case OverlayType::koNumberRange: {
- const int32 range = _engine->_collision->getAverageValue(overlay->info1, overlay->info0, 100, overlay->lifeTime - _engine->lbaTime - 50);
+ const int32 range = _engine->_collision->getAverageValue(overlay->info1, overlay->info0, 100, overlay->lifeTime - _engine->_lbaTime - 50);
char text[10];
sprintf(text, "%d", range);
@@ -596,7 +596,7 @@ void Redraw::renderOverlays() {
_engine->_text->drawText(renderRect.left, renderRect.top, text);
- addRedrawArea(_engine->_interface->clip);
+ addRedrawArea(_engine->_interface->_clip);
break;
}
case OverlayType::koInventoryItem: {
@@ -606,7 +606,7 @@ void Redraw::renderOverlays() {
_engine->_interface->drawFilledRect(rect, COLOR_BLACK);
_engine->_interface->setClip(rect);
- const BodyData &bodyPtr = _engine->_resources->inventoryTable[item];
+ const BodyData &bodyPtr = _engine->_resources->_inventoryTable[item];
_overlayRotation += 1; // overlayRotation += 8;
_engine->_renderer->renderInventoryItem(40, 40, bodyPtr, _overlayRotation, 16000);
_engine->_menu->drawBox(rect);
@@ -635,7 +635,7 @@ void Redraw::renderOverlays() {
_engine->_text->drawText(renderRect.left, renderRect.top, text);
- addRedrawArea(_engine->_interface->clip);
+ addRedrawArea(_engine->_interface->_clip);
break;
}
}
@@ -644,8 +644,8 @@ void Redraw::renderOverlays() {
}
void Redraw::redrawEngineActions(bool bgRedraw) {
- int32 tmp_projPosX = _engine->_renderer->projPosScreen.x;
- int32 tmp_projPosY = _engine->_renderer->projPosScreen.y;
+ int32 tmp_projPosX = _engine->_renderer->_projPosScreen.x;
+ int32 tmp_projPosY = _engine->_renderer->_projPosScreen.y;
_engine->_interface->resetClip();
@@ -656,7 +656,7 @@ void Redraw::redrawEngineActions(bool bgRedraw) {
}
_engine->_screens->clearScreen();
_engine->_grid->redrawGrid();
- updateOverlayTypePosition(tmp_projPosX, tmp_projPosY, _engine->_renderer->projPosScreen.x, _engine->_renderer->projPosScreen.y);
+ updateOverlayTypePosition(tmp_projPosX, tmp_projPosY, _engine->_renderer->_projPosScreen.x, _engine->_renderer->_projPosScreen.y);
_engine->saveFrontBuffer();
if (_engine->_scene->needChangeScene != SCENE_CEILING_GRID_FADE_1 && _engine->_scene->needChangeScene != SCENE_CEILING_GRID_FADE_2) {
@@ -674,7 +674,7 @@ void Redraw::redrawEngineActions(bool bgRedraw) {
_currNumOfRedrawBox = 0;
processDrawList(drawList, drawListPos, bgRedraw);
- if (_engine->cfgfile.Debug) {
+ if (_engine->_cfgfile.Debug) {
_engine->_debugScene->renderDebugView();
}
@@ -721,18 +721,18 @@ void Redraw::drawBubble(int32 actorIdx) {
_bubbleActor = actorIdx;
}
- const SpriteData &spritePtr = _engine->_resources->spriteData[_bubbleSpriteIndex];
+ const SpriteData &spritePtr = _engine->_resources->_spriteData[_bubbleSpriteIndex];
const int32 spriteWidth = spritePtr.surface().w;
const int32 spriteHeight = spritePtr.surface().h;
// calculate sprite position on screen
Common::Rect renderRect;
if (_bubbleSpriteIndex == SPRITEHQR_DIAG_BUBBLE_RIGHT) {
- renderRect.left = _engine->_renderer->projPos.x + 10;
+ renderRect.left = _engine->_renderer->_projPos.x + 10;
} else {
- renderRect.left = _engine->_renderer->projPos.x - 10 - spriteWidth;
+ renderRect.left = _engine->_renderer->_projPos.x - 10 - spriteWidth;
}
- renderRect.top = _engine->_renderer->projPos.y - 20;
+ renderRect.top = _engine->_renderer->_projPos.y - 20;
renderRect.right = spriteWidth + renderRect.left - 1;
renderRect.bottom = spriteHeight + renderRect.top - 1;
@@ -742,14 +742,14 @@ void Redraw::drawBubble(int32 actorIdx) {
}
void Redraw::zoomScreenScale() {
- Graphics::ManagedSurface zoomWorkVideoBuffer(_engine->workVideoBuffer);
+ Graphics::ManagedSurface zoomWorkVideoBuffer(_engine->_workVideoBuffer);
const int maxW = zoomWorkVideoBuffer.w;
const int maxH = zoomWorkVideoBuffer.h;
const int left = CLIP<int>(_sceneryViewX - maxW / 4, 0, maxW / 2);
const int top = CLIP<int>(_sceneryViewY - maxH / 4, 0, maxH / 2);
const Common::Rect srcRect(left, top, left + maxW / 2, top + maxH / 2);
const Common::Rect& destRect = zoomWorkVideoBuffer.getBounds();
- zoomWorkVideoBuffer.transBlitFrom(_engine->frontVideoBuffer, srcRect, destRect);
+ zoomWorkVideoBuffer.transBlitFrom(_engine->_frontVideoBuffer, srcRect, destRect);
g_system->copyRectToScreen(zoomWorkVideoBuffer.getPixels(), zoomWorkVideoBuffer.pitch, 0, 0, zoomWorkVideoBuffer.w, zoomWorkVideoBuffer.h);
g_system->updateScreen();
}
diff --git a/engines/twine/renderer/renderer.cpp b/engines/twine/renderer/renderer.cpp
index e202166bef..2c2ba1fae2 100644
--- a/engines/twine/renderer/renderer.cpp
+++ b/engines/twine/renderer/renderer.cpp
@@ -67,41 +67,41 @@ void Renderer::init(int32 w, int32 h) {
void Renderer::projectXYPositionOnScreen(int32 x, int32 y, int32 z) {
if (_isUsingOrthoProjection == 1) {
- projPos.x = ((x - z) * 24) / BRICK_SIZE + _orthoProjPos.x;
- projPos.y = y;
+ _projPos.x = ((x - z) * 24) / BRICK_SIZE + _orthoProjPos.x;
+ _projPos.y = y;
return;
}
- int32 cz = baseRotPos.z - z;
+ int32 cz = _baseRotPos.z - z;
if (-1 < cz) {
- const int32 xdelta = x - baseRotPos.x;
+ const int32 xdelta = x - _baseRotPos.x;
int32 posZ = cz + _cameraDepthOffset;
if (posZ < 0) {
posZ = 0x7FFF;
}
- projPos.x = (xdelta * _cameraScaleY) / posZ + _orthoProjPos.x;
- projPos.y = y - baseRotPos.y;
+ _projPos.x = (xdelta * _cameraScaleY) / posZ + _orthoProjPos.x;
+ _projPos.y = y - _baseRotPos.y;
return;
}
- projPos.x = 0;
- projPos.y = 0;
+ _projPos.x = 0;
+ _projPos.y = 0;
}
int32 Renderer::projectPositionOnScreen(int32 cX, int32 cY, int32 cZ) {
if (_isUsingOrthoProjection) {
- projPos.x = ((cX - cZ) * 24) / BRICK_SIZE + _orthoProjPos.x;
- projPos.y = (((cX + cZ) * 12) - cY * 30) / BRICK_SIZE + _orthoProjPos.y;
- projPos.z = cZ - cY - cX;
+ _projPos.x = ((cX - cZ) * 24) / BRICK_SIZE + _orthoProjPos.x;
+ _projPos.y = (((cX + cZ) * 12) - cY * 30) / BRICK_SIZE + _orthoProjPos.y;
+ _projPos.z = cZ - cY - cX;
return 1;
}
- cX -= baseRotPos.x;
- cY -= baseRotPos.y;
- cZ -= baseRotPos.z;
+ cX -= _baseRotPos.x;
+ cY -= _baseRotPos.y;
+ cZ -= _baseRotPos.z;
if (cZ < 0) {
- projPos.x = 0;
- projPos.y = 0;
- projPos.z = 0;
+ _projPos.x = 0;
+ _projPos.y = 0;
+ _projPos.z = 0;
return 0;
}
@@ -110,9 +110,9 @@ int32 Renderer::projectPositionOnScreen(int32 cX, int32 cY, int32 cZ) {
posZ = 0x7FFF;
}
- projPos.x = (cX * _cameraScaleY) / posZ + _orthoProjPos.x;
- projPos.y = (-cY * _cameraScaleZ) / posZ + _orthoProjPos.y;
- projPos.z = posZ;
+ _projPos.x = (cX * _cameraScaleY) / posZ + _orthoProjPos.x;
+ _projPos.y = (-cY * _cameraScaleZ) / posZ + _orthoProjPos.y;
+ _projPos.z = posZ;
return -1;
}
@@ -175,27 +175,25 @@ void Renderer::setBaseRotation(int32 x, int32 y, int32 z, bool transpose) {
}
getBaseRotationPosition(_baseTransPos.x, _baseTransPos.y, _baseTransPos.z);
- baseRotPos.x = destPos.x;
- baseRotPos.y = destPos.y;
- baseRotPos.z = destPos.z;
+ _baseRotPos = _destPos;
}
void Renderer::getBaseRotationPosition(int32 x, int32 y, int32 z) {
- destPos.x = (_baseMatrix.row1.x * x + _baseMatrix.row1.y * y + _baseMatrix.row1.z * z) / SCENE_SIZE_HALF;
- destPos.y = (_baseMatrix.row2.x * x + _baseMatrix.row2.y * y + _baseMatrix.row2.z * z) / SCENE_SIZE_HALF;
- destPos.z = (_baseMatrix.row3.x * x + _baseMatrix.row3.y * y + _baseMatrix.row3.z * z) / SCENE_SIZE_HALF;
+ _destPos.x = (_baseMatrix.row1.x * x + _baseMatrix.row1.y * y + _baseMatrix.row1.z * z) / SCENE_SIZE_HALF;
+ _destPos.y = (_baseMatrix.row2.x * x + _baseMatrix.row2.y * y + _baseMatrix.row2.z * z) / SCENE_SIZE_HALF;
+ _destPos.z = (_baseMatrix.row3.x * x + _baseMatrix.row3.y * y + _baseMatrix.row3.z * z) / SCENE_SIZE_HALF;
}
void Renderer::getCameraAnglePositions(int32 x, int32 y, int32 z) {
- destPos.x = (_baseMatrix.row1.x * x + _baseMatrix.row2.x * y + _baseMatrix.row3.x * z) / SCENE_SIZE_HALF;
- destPos.y = (_baseMatrix.row1.y * x + _baseMatrix.row2.y * y + _baseMatrix.row3.y * z) / SCENE_SIZE_HALF;
- destPos.z = (_baseMatrix.row1.z * x + _baseMatrix.row2.z * y + _baseMatrix.row3.z * z) / SCENE_SIZE_HALF;
+ _destPos.x = (_baseMatrix.row1.x * x + _baseMatrix.row2.x * y + _baseMatrix.row3.x * z) / SCENE_SIZE_HALF;
+ _destPos.y = (_baseMatrix.row1.y * x + _baseMatrix.row2.y * y + _baseMatrix.row3.y * z) / SCENE_SIZE_HALF;
+ _destPos.z = (_baseMatrix.row1.z * x + _baseMatrix.row2.z * y + _baseMatrix.row3.z * z) / SCENE_SIZE_HALF;
}
void Renderer::translateGroup(int32 x, int32 y, int32 z) {
- destPos.x = (_shadeMatrix.row1.x * x + _shadeMatrix.row1.y * y + _shadeMatrix.row1.z * z) / SCENE_SIZE_HALF;
- destPos.y = (_shadeMatrix.row2.x * x + _shadeMatrix.row2.y * y + _shadeMatrix.row2.z * z) / SCENE_SIZE_HALF;
- destPos.z = destPos.y;
+ _destPos.x = (_shadeMatrix.row1.x * x + _shadeMatrix.row1.y * y + _shadeMatrix.row1.z * z) / SCENE_SIZE_HALF;
+ _destPos.y = (_shadeMatrix.row2.x * x + _shadeMatrix.row2.y * y + _shadeMatrix.row2.z * z) / SCENE_SIZE_HALF;
+ _destPos.z = _destPos.y;
}
void Renderer::setCameraAngle(int32 transPosX, int32 transPosY, int32 transPosZ, int32 rotPosX, int32 rotPosY, int32 rotPosZ, int32 param6) {
@@ -205,11 +203,11 @@ void Renderer::setCameraAngle(int32 transPosX, int32 transPosY, int32 transPosZ,
setBaseRotation(rotPosX, rotPosY, rotPosZ);
- baseRotPos.z += param6;
+ _baseRotPos.z += param6;
- getCameraAnglePositions(baseRotPos.x, baseRotPos.y, baseRotPos.z);
+ getCameraAnglePositions(_baseRotPos.x, _baseRotPos.y, _baseRotPos.z);
- _baseTransPos = destPos;
+ _baseTransPos = _destPos;
}
IVec3 Renderer::getHolomapRotation(const int32 angleX, const int32 angleY, const int32 angleZ) const {
@@ -316,9 +314,9 @@ void Renderer::applyRotation(IMatrix3x3 *targetMatrix, const IMatrix3x3 *current
void Renderer::applyPointsRotation(const Common::Array<BodyVertex> &vertices, int32 firstPoint, int32 numPoints, I16Vec3 *destPoints, const IMatrix3x3 *rotationMatrix) {
for (int32 i = 0; i < numPoints; ++i) {
const BodyVertex &vertex = vertices[i + firstPoint];
- destPoints->x = ((rotationMatrix->row1.x * vertex.x + rotationMatrix->row1.y * vertex.y + rotationMatrix->row1.z * vertex.z) / SCENE_SIZE_HALF) + destPos.x;
- destPoints->y = ((rotationMatrix->row2.x * vertex.x + rotationMatrix->row2.y * vertex.y + rotationMatrix->row2.z * vertex.z) / SCENE_SIZE_HALF) + destPos.y;
- destPoints->z = ((rotationMatrix->row3.x * vertex.x + rotationMatrix->row3.y * vertex.y + rotationMatrix->row3.z * vertex.z) / SCENE_SIZE_HALF) + destPos.z;
+ destPoints->x = ((rotationMatrix->row1.x * vertex.x + rotationMatrix->row1.y * vertex.y + rotationMatrix->row1.z * vertex.z) / SCENE_SIZE_HALF) + _destPos.x;
+ destPoints->y = ((rotationMatrix->row2.x * vertex.x + rotationMatrix->row2.y * vertex.y + rotationMatrix->row2.z * vertex.z) / SCENE_SIZE_HALF) + _destPos.y;
+ destPoints->z = ((rotationMatrix->row3.x * vertex.x + rotationMatrix->row3.y * vertex.y + rotationMatrix->row3.z * vertex.z) / SCENE_SIZE_HALF) + _destPos.z;
destPoints++;
}
@@ -334,16 +332,16 @@ void Renderer::processRotatedElement(IMatrix3x3 *targetMatrix, const Common::Arr
if (bone.isRoot()) {
currentMatrix = &_baseMatrix;
- destPos.x = 0;
- destPos.y = 0;
- destPos.z = 0;
+ _destPos.x = 0;
+ _destPos.y = 0;
+ _destPos.z = 0;
} else {
const int32 pointIdx = bone.vertex;
const int32 matrixIndex = bone.parent;
assert(matrixIndex >= 0 && matrixIndex < ARRAYSIZE(_matricesTable));
currentMatrix = &_matricesTable[matrixIndex];
- destPos = modelData->computedPoints[pointIdx];
+ _destPos = modelData->computedPoints[pointIdx];
}
applyRotation(targetMatrix, currentMatrix, renderAngle);
@@ -362,9 +360,9 @@ void Renderer::applyPointsTranslation(const Common::Array<BodyVertex> &vertices,
const int32 tmpY = vertex.y + angleVec.y;
const int32 tmpZ = vertex.z + angleVec.x;
- destPoints->x = ((translationMatrix->row1.x * tmpX + translationMatrix->row1.y * tmpY + translationMatrix->row1.z * tmpZ) / SCENE_SIZE_HALF) + destPos.x;
- destPoints->y = ((translationMatrix->row2.x * tmpX + translationMatrix->row2.y * tmpY + translationMatrix->row2.z * tmpZ) / SCENE_SIZE_HALF) + destPos.y;
- destPoints->z = ((translationMatrix->row3.x * tmpX + translationMatrix->row3.y * tmpY + translationMatrix->row3.z * tmpZ) / SCENE_SIZE_HALF) + destPos.z;
+ destPoints->x = ((translationMatrix->row1.x * tmpX + translationMatrix->row1.y * tmpY + translationMatrix->row1.z * tmpZ) / SCENE_SIZE_HALF) + _destPos.x;
+ destPoints->y = ((translationMatrix->row2.x * tmpX + translationMatrix->row2.y * tmpY + translationMatrix->row2.z * tmpZ) / SCENE_SIZE_HALF) + _destPos.y;
+ destPoints->z = ((translationMatrix->row3.x * tmpX + translationMatrix->row3.y * tmpY + translationMatrix->row3.z * tmpZ) / SCENE_SIZE_HALF) + _destPos.z;
destPoints++;
}
@@ -377,14 +375,14 @@ void Renderer::processTranslatedElement(IMatrix3x3 *targetMatrix, const Common::
renderAngle.z = rotZ;
if (bone.isRoot()) { // base point
- destPos.x = 0;
- destPos.y = 0;
- destPos.z = 0;
+ _destPos.x = 0;
+ _destPos.y = 0;
+ _destPos.z = 0;
*targetMatrix = _baseMatrix;
} else { // dependent
const int32 pointsIdx = bone.vertex;
- destPos = modelData->computedPoints[pointsIdx];
+ _destPos = modelData->computedPoints[pointsIdx];
const int32 matrixIndex = bone.parent;
assert(matrixIndex >= 0 && matrixIndex < ARRAYSIZE(_matricesTable));
@@ -404,7 +402,7 @@ void Renderer::setLightVector(int32 angleX, int32 angleY, int32 angleZ) {
applyRotation(&_shadeMatrix, &_baseMatrix, renderAngle);
translateGroup(0, 0, 59);
- _lightPos = destPos;
+ _lightPos = _destPos;
}
static FORCEINLINE int16 clamp(int16 x, int16 a, int16 b) {
@@ -488,7 +486,7 @@ void Renderer::computePolygons(int16 polyRenderType, const Vertex *vertices, int
}
void Renderer::renderPolygonsCopper(int vtop, int32 vsize, uint8 color) const {
- uint8 *out = (uint8 *)_engine->frontVideoBuffer.getBasePtr(0, vtop);
+ uint8 *out = (uint8 *)_engine->_frontVideoBuffer.getBasePtr(0, vtop);
const int16 *ptr1 = &_polyTab[vtop];
const int screenWidth = _engine->width();
const int screenHeight = _engine->height();
@@ -530,7 +528,7 @@ void Renderer::renderPolygonsCopper(int vtop, int32 vsize, uint8 color) const {
}
void Renderer::renderPolygonsBopper(int vtop, int32 vsize, uint8 color) const {
- uint8 *out = (uint8 *)_engine->frontVideoBuffer.getBasePtr(0, vtop);
+ uint8 *out = (uint8 *)_engine->_frontVideoBuffer.getBasePtr(0, vtop);
const int16 *ptr1 = &_polyTab[vtop];
const int screenWidth = _engine->width();
const int screenHeight = _engine->height();
@@ -562,7 +560,7 @@ void Renderer::renderPolygonsBopper(int vtop, int32 vsize, uint8 color) const {
}
void Renderer::renderPolygonsFlat(int vtop, int32 vsize, uint8 color) const {
- uint8 *out = (uint8 *)_engine->frontVideoBuffer.getBasePtr(0, vtop);
+ uint8 *out = (uint8 *)_engine->_frontVideoBuffer.getBasePtr(0, vtop);
const int16 *ptr1 = &_polyTab[vtop];
const int screenWidth = _engine->width();
const int screenHeight = _engine->height();
@@ -592,7 +590,7 @@ void Renderer::renderPolygonsFlat(int vtop, int32 vsize, uint8 color) const {
}
void Renderer::renderPolygonsTele(int vtop, int32 vsize, uint8 color) const {
- uint8 *out = (uint8 *)_engine->frontVideoBuffer.getBasePtr(0, vtop);
+ uint8 *out = (uint8 *)_engine->_frontVideoBuffer.getBasePtr(0, vtop);
const int16 *ptr1 = &_polyTab[vtop];
int bx = (uint16)color << 16;
const int screenWidth = _engine->width();
@@ -670,7 +668,7 @@ void Renderer::renderPolygonsTele(int vtop, int32 vsize, uint8 color) const {
// FIXME: buggy
void Renderer::renderPolygonsTras(int vtop, int32 vsize, uint8 color) const {
- uint8 *out = (uint8 *)_engine->frontVideoBuffer.getBasePtr(0, vtop);
+ uint8 *out = (uint8 *)_engine->_frontVideoBuffer.getBasePtr(0, vtop);
const int16 *ptr1 = &_polyTab[vtop];
const int screenWidth = _engine->width();
const int screenHeight = _engine->height();
@@ -707,7 +705,7 @@ void Renderer::renderPolygonsTras(int vtop, int32 vsize, uint8 color) const {
// FIXME: buggy
void Renderer::renderPolygonsTrame(int vtop, int32 vsize, uint8 color) const {
- uint8 *out = (uint8 *)_engine->frontVideoBuffer.getBasePtr(0, vtop);
+ uint8 *out = (uint8 *)_engine->_frontVideoBuffer.getBasePtr(0, vtop);
const int16 *ptr1 = &_polyTab[vtop];
unsigned char bh = 0;
const int screenWidth = _engine->width();
@@ -752,7 +750,7 @@ void Renderer::renderPolygonsTrame(int vtop, int32 vsize, uint8 color) const {
}
void Renderer::renderPolygonsGouraud(int vtop, int32 vsize) const {
- uint8 *out = (uint8 *)_engine->frontVideoBuffer.getBasePtr(0, vtop);
+ uint8 *out = (uint8 *)_engine->_frontVideoBuffer.getBasePtr(0, vtop);
const int16 *ptr1 = &_polyTab[vtop];
const int16 *ptr2 = &_polyTab2[vtop];
const int screenWidth = _engine->width();
@@ -852,7 +850,7 @@ void Renderer::renderPolygonsGouraud(int vtop, int32 vsize) const {
}
void Renderer::renderPolygonsDither(int vtop, int32 vsize) const {
- uint8 *out = (uint8 *)_engine->frontVideoBuffer.getBasePtr(0, vtop);
+ uint8 *out = (uint8 *)_engine->_frontVideoBuffer.getBasePtr(0, vtop);
const int16 *ptr1 = &_polyTab[vtop];
const int16 *ptr2 = &_polyTab2[vtop];
const int screenWidth = _engine->width();
@@ -1445,7 +1443,7 @@ bool Renderer::renderIsoModel(int32 x, int32 y, int32 z, int32 angleX, int32 ang
} else {
getBaseRotationPosition(x, y, z);
- renderPos = destPos - baseRotPos; // RECHECK y
+ renderPos = _destPos - _baseRotPos; // RECHECK y
}
if (!bodyData.isAnimated()) {
@@ -1476,7 +1474,7 @@ void Renderer::renderBehaviourModel(int32 boxLeft, int32 boxTop, int32 boxRight,
Common::Rect dummy;
if (angle == -1) {
ActorMoveStruct &move = _engine->_menu->_moveMenu;
- const int16 newAngle = move.getRealAngle(_engine->lbaTime);
+ const int16 newAngle = move.getRealAngle(_engine->_lbaTime);
if (move.numOfStep == 0) {
_engine->_movements->setActorAngleSafe(newAngle, newAngle - ANGLE_90, ANGLE_17, &move);
}
@@ -1581,12 +1579,12 @@ void Renderer::renderHolomapVertices(const Vertex vertexCoordinates[3], const Ve
}
void Renderer::renderHolomapPolygons(int32 top, int32 bottom) {
- const void *pixelBegin = _engine->frontVideoBuffer.getBasePtr(0, 0);
- const void *pixelEnd = _engine->frontVideoBuffer.getBasePtr(_engine->frontVideoBuffer.w - 1, _engine->frontVideoBuffer.h - 1);
- if (top < 0 || top >= _engine->frontVideoBuffer.h) {
+ const void *pixelBegin = _engine->_frontVideoBuffer.getBasePtr(0, 0);
+ const void *pixelEnd = _engine->_frontVideoBuffer.getBasePtr(_engine->_frontVideoBuffer.w - 1, _engine->_frontVideoBuffer.h - 1);
+ if (top < 0 || top >= _engine->_frontVideoBuffer.h) {
return;
}
- uint8 *screenBufPtr = (uint8 *)_engine->frontVideoBuffer.getBasePtr(0, top);
+ uint8 *screenBufPtr = (uint8 *)_engine->_frontVideoBuffer.getBasePtr(0, top);
const int16 *lholomap_polytab_1_1 = _holomap_polytab_1_1 + top;
const int16 *lholomap_polytab_2_1 = _holomap_polytab_2_1 + top;
@@ -1622,7 +1620,7 @@ void Renderer::renderHolomapPolygons(int32 top, int32 bottom) {
uVar3 += (int32)(((uint32)x_2_2 - (uint32)x_1_2) + 1) / iWidth;
}
}
- screenBufPtr += _engine->frontVideoBuffer.pitch;
+ screenBufPtr += _engine->_frontVideoBuffer.pitch;
--yHeight;
}
}
diff --git a/engines/twine/renderer/renderer.h b/engines/twine/renderer/renderer.h
index b7c4029e4c..e95b3186f0 100644
--- a/engines/twine/renderer/renderer.h
+++ b/engines/twine/renderer/renderer.h
@@ -207,10 +207,10 @@ public:
void init(int32 w, int32 h);
- IVec3 projPosScreen;
- IVec3 projPos;
- IVec3 baseRotPos;
- IVec3 destPos;
+ IVec3 _projPosScreen;
+ IVec3 _projPos;
+ IVec3 _baseRotPos;
+ IVec3 _destPos;
IVec3 getHolomapRotation(const int32 angleX, const int32 angleY, const int32 angleZ) const;
void setLightVector(int32 angleX, int32 angleY, int32 angleZ);
diff --git a/engines/twine/renderer/screens.cpp b/engines/twine/renderer/screens.cpp
index 13b3eeb5d8..46b06b4511 100644
--- a/engines/twine/renderer/screens.cpp
+++ b/engines/twine/renderer/screens.cpp
@@ -39,7 +39,7 @@ bool Screens::adelineLogo() {
void Screens::loadMenuImage(bool fadeIn) {
loadImage(RESSHQR_MENUIMG, -1, fadeIn);
- _engine->workVideoBuffer.blitFrom(_engine->frontVideoBuffer);
+ _engine->_workVideoBuffer.blitFrom(_engine->_frontVideoBuffer);
}
void Screens::loadCustomPalette(int32 index) {
@@ -63,13 +63,13 @@ void Screens::convertPalToRGBA(const uint8 *in, uint32 *out) {
}
void Screens::loadImage(int32 index, int32 paletteIndex, bool fadeIn) {
- Graphics::ManagedSurface& src = _engine->imageBuffer;
+ Graphics::ManagedSurface& src = _engine->_imageBuffer;
if (HQR::getEntry((uint8 *)src.getPixels(), Resources::HQR_RESS_FILE, index) == 0) {
warning("Failed to load image with index %i", index);
return;
}
debug(0, "Load image: %i", index);
- Graphics::ManagedSurface& target = _engine->frontVideoBuffer;
+ Graphics::ManagedSurface& target = _engine->_frontVideoBuffer;
target.transBlitFrom(src, src.getBounds(), target.getBounds(), 0, false, 0, 0xff, nullptr, true);
const uint32 *pal = _paletteRGBA;
if (paletteIndex != -1) {
@@ -94,7 +94,7 @@ bool Screens::loadImageDelay(int32 index, int32 paletteIndex, int32 seconds) {
}
void Screens::fadeIn(const uint32 *pal) {
- if (_engine->cfgfile.CrossFade) {
+ if (_engine->_cfgfile.CrossFade) {
_engine->crossFade(pal);
} else {
fadeToPal(pal);
@@ -108,7 +108,7 @@ void Screens::fadeOut(const uint32 *pal) {
crossFade(frontVideoBuffer, pal);
else
fadeToBlack(pal);*/
- if (!_engine->cfgfile.CrossFade) {
+ if (!_engine->_cfgfile.CrossFade) {
fadeToBlack(pal);
}
}
@@ -147,7 +147,7 @@ void Screens::adjustPalette(uint8 r, uint8 g, uint8 b, const uint32 *rgbaPal, in
}
_engine->setPalette(pal);
- _engine->frontVideoBuffer.update();
+ _engine->_frontVideoBuffer.update();
}
void Screens::adjustCrossPalette(const uint32 *pal1, const uint32 *pal2) {
@@ -184,7 +184,7 @@ void Screens::adjustCrossPalette(const uint32 *pal1, const uint32 *pal2) {
_engine->setPalette(pal);
intensity++;
- _engine->frontVideoBuffer.update();
+ _engine->_frontVideoBuffer.update();
} while (intensity <= 100);
}
@@ -219,7 +219,7 @@ void Screens::blackToWhite() {
memset(pal, i, sizeof(pal));
_engine->setPalette(pal);
- _engine->frontVideoBuffer.update();
+ _engine->_frontVideoBuffer.update();
}
}
@@ -251,7 +251,7 @@ void Screens::copyScreen(const Graphics::ManagedSurface &source, Graphics::Manag
}
void Screens::clearScreen() {
- _engine->frontVideoBuffer.clear(0);
+ _engine->_frontVideoBuffer.clear(0);
}
} // namespace TwinE
diff --git a/engines/twine/resources/resources.cpp b/engines/twine/resources/resources.cpp
index da4a1fe8dd..4a51c38cce 100644
--- a/engines/twine/resources/resources.cpp
+++ b/engines/twine/resources/resources.cpp
@@ -34,15 +34,15 @@
namespace TwinE {
Resources::~Resources() {
- for (size_t i = 0; i < ARRAYSIZE(spriteTable); ++i) {
- free(spriteTable[i]);
+ for (size_t i = 0; i < ARRAYSIZE(_spriteTable); ++i) {
+ free(_spriteTable[i]);
}
- for (size_t i = 0; i < ARRAYSIZE(samplesTable); ++i) {
- free(samplesTable[i]);
+ for (size_t i = 0; i < ARRAYSIZE(_samplesTable); ++i) {
+ free(_samplesTable[i]);
}
- free(fontPtr);
- free(spriteShadowPtr);
- free(holomapSurfacePtr);
+ free(_fontPtr);
+ free(_spriteShadowPtr);
+ free(_holomapSurfacePtr);
free(holomapImagePtr);
free(_engine->_screens->_mainPalette);
}
@@ -68,8 +68,8 @@ void Resources::preloadSprites() {
}
debug("preload %i sprites", numEntries);
for (int32 i = 0; i < numEntries; i++) {
- spriteSizeTable[i] = HQR::getAllocEntry(&spriteTable[i], Resources::HQR_SPRITES_FILE, i);
- if (!spriteData[i].loadFromBuffer(spriteTable[i], spriteSizeTable[i])) {
+ _spriteSizeTable[i] = HQR::getAllocEntry(&_spriteTable[i], Resources::HQR_SPRITES_FILE, i);
+ if (!_spriteData[i].loadFromBuffer(_spriteTable[i], _spriteSizeTable[i])) {
warning("Failed to load sprite %i", i);
}
}
@@ -83,7 +83,7 @@ void Resources::preloadAnimations() {
}
debug("preload %i animations", numEntries);
for (int32 i = 0; i < numEntries; i++) {
- animData[i].loadFromHQR(Resources::HQR_ANIM_FILE, i);
+ _animData[i].loadFromHQR(Resources::HQR_ANIM_FILE, i);
}
}
@@ -107,19 +107,19 @@ void Resources::preloadSamples() {
debug("preload %i samples", numEntries);
for (int32 i = 0; i < numEntries; i++) {
if (_engine->isLBA1() && isLba1BlankSampleEntry(i)) {
- samplesSizeTable[i] = 0;
- samplesTable[i] = nullptr;
+ _samplesSizeTable[i] = 0;
+ _samplesTable[i] = nullptr;
continue;
}
- samplesSizeTable[i] = HQR::getAllocEntry(&samplesTable[i], Resources::HQR_SAMPLES_FILE, i);
- if (samplesSizeTable[i] == 0) {
+ _samplesSizeTable[i] = HQR::getAllocEntry(&_samplesTable[i], Resources::HQR_SAMPLES_FILE, i);
+ if (_samplesSizeTable[i] == 0) {
warning("Failed to load sample %i", i);
continue;
}
// Fix incorrect sample files first byte
- if (*samplesTable[i] != 'C') {
- debug("Sample %i has incorrect magic id (size: %u)", i, samplesSizeTable[i]);
- *samplesTable[i] = 'C';
+ if (*_samplesTable[i] != 'C') {
+ debug("Sample %i has incorrect magic id (size: %u)", i, _samplesSizeTable[i]);
+ *_samplesTable[i] = 'C';
}
}
}
@@ -131,15 +131,15 @@ void Resources::preloadInventoryItems() {
}
debug("preload %i inventory items", numEntries);
for (int32 i = 0; i < numEntries; i++) {
- inventoryTable[i].loadFromHQR(Resources::HQR_INVOBJ_FILE, i);
+ _inventoryTable[i].loadFromHQR(Resources::HQR_INVOBJ_FILE, i);
}
}
void Resources::initResources() {
initPalettes();
- fontBufSize = HQR::getAllocEntry(&fontPtr, Resources::HQR_RESS_FILE, RESSHQR_LBAFONT);
- if (fontBufSize == 0) {
+ _fontBufSize = HQR::getAllocEntry(&_fontPtr, Resources::HQR_RESS_FILE, RESSHQR_LBAFONT);
+ if (_fontBufSize == 0) {
error("Failed to load font");
}
@@ -147,19 +147,19 @@ void Resources::initResources() {
_engine->_text->setFontColor(COLOR_14);
_engine->_text->setTextCrossColor(136, 143, 2);
- spriteShadowSize = HQR::getAllocEntry(&spriteShadowPtr, Resources::HQR_RESS_FILE, RESSHQR_SPRITESHADOW);
- if (spriteShadowSize == 0) {
+ _spriteShadowSize = HQR::getAllocEntry(&_spriteShadowPtr, Resources::HQR_RESS_FILE, RESSHQR_SPRITESHADOW);
+ if (_spriteShadowSize == 0) {
error("Failed to load sprite shadow");
}
if (_engine->isLBA1()) {
- if (!spriteBoundingBox.loadFromHQR(Resources::HQR_RESS_FILE, RESSHQR_SPRITEBOXDATA)) {
+ if (!_spriteBoundingBox.loadFromHQR(Resources::HQR_RESS_FILE, RESSHQR_SPRITEBOXDATA)) {
error("Failed to load sprite bounding box data");
}
}
- holomapSurfaceSize = HQR::getAllocEntry(&holomapSurfacePtr, Resources::HQR_RESS_FILE, RESSHQR_HOLOSURFACE);
- if (holomapSurfaceSize == 0) {
+ _holomapSurfaceSize = HQR::getAllocEntry(&_holomapSurfacePtr, Resources::HQR_RESS_FILE, RESSHQR_HOLOSURFACE);
+ if (_holomapSurfaceSize == 0) {
error("Failed to load holomap surface");
}
@@ -196,7 +196,7 @@ void Resources::initResources() {
const int32 bodyCount = HQR::numEntries(Resources::HQR_BODY_FILE);
for (int32 i = 0; i < bodyCount; ++i) {
- if (!bodyData[i].loadFromHQR(Resources::HQR_BODY_FILE, i)) {
+ if (!_bodyData[i].loadFromHQR(Resources::HQR_BODY_FILE, i)) {
error("HQR ERROR: Parsing body entity for model %i failed", i);
}
}
@@ -205,7 +205,7 @@ void Resources::initResources() {
const int32 textEntryCount = _engine->isLBA1() ? 28 : 30;
for (int32 i = 0; i < textEntryCount / 2; ++i) {
- if (!_textData.loadFromHQR(Resources::HQR_TEXT_FILE, (TextBankId)i, _engine->cfgfile.LanguageId, textEntryCount)) {
+ if (!_textData.loadFromHQR(Resources::HQR_TEXT_FILE, (TextBankId)i, _engine->_cfgfile.LanguageId, textEntryCount)) {
error("HQR ERROR: Parsing textbank %i failed", i);
}
}
diff --git a/engines/twine/resources/resources.h b/engines/twine/resources/resources.h
index e47b5515f6..c3f1e79b10 100644
--- a/engines/twine/resources/resources.h
+++ b/engines/twine/resources/resources.h
@@ -163,34 +163,34 @@ public:
const Common::Array<int32> &getFlaMovieInfo(const Common::String &name) const;
/** Table with all loaded samples */
- BodyData inventoryTable[NUM_INVENTORY_ITEMS];
+ BodyData _inventoryTable[NUM_INVENTORY_ITEMS];
/** Table with all loaded sprites */
- uint8 *spriteTable[NUM_SPRITES]{nullptr};
+ uint8 *_spriteTable[NUM_SPRITES]{nullptr};
/** Table with all loaded sprite sizes */
- uint32 spriteSizeTable[NUM_SPRITES]{0};
- SpriteData spriteData[NUM_SPRITES];
+ uint32 _spriteSizeTable[NUM_SPRITES]{0};
+ SpriteData _spriteData[NUM_SPRITES];
- AnimData animData[NUM_ANIMS];
+ AnimData _animData[NUM_ANIMS];
/** Actors 3D body table - size of NUM_BODIES */
- BodyData bodyData[NUM_BODIES];
+ BodyData _bodyData[NUM_BODIES];
/** Table with all loaded samples */
- uint8 *samplesTable[NUM_SAMPLES]{nullptr};
+ uint8 *_samplesTable[NUM_SAMPLES]{nullptr};
/** Table with all loaded samples sizes */
- uint32 samplesSizeTable[NUM_SAMPLES]{0};
+ uint32 _samplesSizeTable[NUM_SAMPLES]{0};
/** Font buffer pointer */
- int32 fontBufSize = 0;
- uint8 *fontPtr = nullptr;
+ int32 _fontBufSize = 0;
+ uint8 *_fontPtr = nullptr;
- uint32 spriteShadowSize = 0;
- uint8 *spriteShadowPtr = nullptr;
- SpriteBoundingBoxData spriteBoundingBox;
+ uint32 _spriteShadowSize = 0;
+ uint8 *_spriteShadowPtr = nullptr;
+ SpriteBoundingBoxData _spriteBoundingBox;
- uint32 holomapSurfaceSize = 0;
- uint8 *holomapSurfacePtr = nullptr;
+ uint32 _holomapSurfaceSize = 0;
+ uint8 *_holomapSurfacePtr = nullptr;
uint32 holomapImageSize = 0;
uint8 *holomapImagePtr = nullptr;
diff --git a/engines/twine/scene/actor.cpp b/engines/twine/scene/actor.cpp
index 65b6448890..7b0f1ebb88 100644
--- a/engines/twine/scene/actor.cpp
+++ b/engines/twine/scene/actor.cpp
@@ -134,7 +134,7 @@ void Actor::initSpriteActor(int32 actorIdx) {
ActorStruct *localActor = _engine->_scene->getActor(actorIdx);
if (localActor->staticFlags.bIsSpriteActor && localActor->sprite != -1 && localActor->entity != localActor->sprite) {
- const BoundingBox *spritebbox = _engine->_resources->spriteBoundingBox.bbox(localActor->sprite);
+ const BoundingBox *spritebbox = _engine->_resources->_spriteBoundingBox.bbox(localActor->sprite);
localActor->entity = localActor->sprite;
localActor->boudingBox = *spritebbox;
}
@@ -193,7 +193,7 @@ void Actor::initModelActor(BodyType bodyIdx, int16 actorIdx) {
if (actorBoundingBox.hasBoundingBox) {
localActor->boudingBox = actorBoundingBox.bbox;
} else {
- const BodyData &bd = _engine->_resources->bodyData[localActor->entity];
+ const BodyData &bd = _engine->_resources->_bodyData[localActor->entity];
localActor->boudingBox = bd.bbox;
int32 result = 0;
diff --git a/engines/twine/scene/animations.cpp b/engines/twine/scene/animations.cpp
index deb9410101..a9ca212985 100644
--- a/engines/twine/scene/animations.cpp
+++ b/engines/twine/scene/animations.cpp
@@ -125,11 +125,11 @@ bool Animations::setModelAnimation(int32 keyframeIdx, const AnimData &animData,
lastKeyFramePtr = keyFrame;
remainingFrameTime = keyFrameLength;
}
- const int32 deltaTime = _engine->lbaTime - remainingFrameTime;
+ const int32 deltaTime = _engine->_lbaTime - remainingFrameTime;
if (deltaTime >= keyFrameLength) {
copyKeyFrameToState(keyFrame, bodyData, numOfBonesInAnim);
animTimerDataPtr->ptr = keyFrame;
- animTimerDataPtr->time = _engine->lbaTime;
+ animTimerDataPtr->time = _engine->_lbaTime;
return true;
}
@@ -189,7 +189,7 @@ void Animations::setAnimAtKeyframe(int32 keyframeIdx, const AnimData &animData,
processLastRotationAngle = ToAngle(keyFrame->boneframes[0].y);
animTimerDataPtr->ptr = animData.getKeyframe(keyframeIdx);
- animTimerDataPtr->time = _engine->lbaTime;
+ animTimerDataPtr->time = _engine->_lbaTime;
const int16 numBones = bodyData.getNumBones();
@@ -209,7 +209,7 @@ void Animations::stockAnimation(const BodyData &bodyData, AnimTimerDataStruct *a
if (animKeyframeBufIdx >= ARRAYSIZE(animKeyframeBuf)) {
animKeyframeBufIdx = 0;
}
- animTimerDataPtr->time = _engine->lbaTime;
+ animTimerDataPtr->time = _engine->_lbaTime;
KeyFrame *keyframe = &animKeyframeBuf[animKeyframeBufIdx++];
animTimerDataPtr->ptr = keyframe;
copyStateToKeyFrame(keyframe, bodyData);
@@ -241,7 +241,7 @@ bool Animations::verifyAnimAtKeyframe(int32 keyframeIdx, const AnimData &animDat
remainingFrameTime = keyFrameLength;
}
- const int32 deltaTime = _engine->lbaTime - remainingFrameTime;
+ const int32 deltaTime = _engine->_lbaTime - remainingFrameTime;
currentStep.x = keyFrame->x;
currentStep.y = keyFrame->y;
@@ -253,7 +253,7 @@ bool Animations::verifyAnimAtKeyframe(int32 keyframeIdx, const AnimData &animDat
if (deltaTime >= keyFrameLength) {
animTimerDataPtr->ptr = animData.getKeyframe(keyframeIdx);
- animTimerDataPtr->time = _engine->lbaTime;
+ animTimerDataPtr->time = _engine->_lbaTime;
return true;
}
@@ -336,9 +336,9 @@ void Animations::processAnimActions(int32 actorIdx) {
if (action.animFrame == actor->animPosition) {
_engine->_movements->rotateActor(action.distanceX, action.distanceZ, actor->angle);
- const int32 throwX = _engine->_renderer->destPos.x + actor->pos.x;
+ const int32 throwX = _engine->_renderer->_destPos.x + actor->pos.x;
const int32 throwY = action.distanceY + actor->pos.y;
- const int32 throwZ = _engine->_renderer->destPos.z + actor->pos.z;
+ const int32 throwZ = _engine->_renderer->_destPos.z + actor->pos.z;
_engine->_extra->addExtraThrow(actorIdx, throwX, throwY, throwZ, action.spriteIndex,
action.xAngle, action.yAngle + actor->angle, action.xRotPoint, action.extraAngle, action.strength);
@@ -351,9 +351,9 @@ void Animations::processAnimActions(int32 actorIdx) {
_engine->_movements->rotateActor(action.distanceX, action.distanceZ, actor->angle);
- const int32 throwX = _engine->_renderer->destPos.x + actor->pos.x;
+ const int32 throwX = _engine->_renderer->_destPos.x + actor->pos.x;
const int32 throwY = action.distanceY + actor->pos.y;
- const int32 throwZ = _engine->_renderer->destPos.z + actor->pos.z;
+ const int32 throwZ = _engine->_renderer->_destPos.z + actor->pos.z;
_engine->_extra->addExtraThrow(actorIdx, throwX, throwY, throwZ, action.spriteIndex,
action.xAngle + newAngle, action.yAngle + actor->angle, action.xRotPoint, action.extraAngle, action.strength);
@@ -362,9 +362,9 @@ void Animations::processAnimActions(int32 actorIdx) {
case ActionType::ACTION_THROW_3D_SEARCH:
if (action.animFrame == actor->animPosition) {
_engine->_movements->rotateActor(action.distanceX, action.distanceZ, actor->angle);
- const int32 x = actor->pos.x + _engine->_renderer->destPos.x;
+ const int32 x = actor->pos.x + _engine->_renderer->_destPos.x;
const int32 y = actor->pos.y + action.distanceY;
- const int32 z = actor->pos.z + _engine->_renderer->destPos.z;
+ const int32 z = actor->pos.z + _engine->_renderer->_destPos.z;
_engine->_extra->addExtraAiming(actorIdx, x, y, z, action.spriteIndex,
action.targetActor, action.finalAngle, action.strength);
}
@@ -372,9 +372,9 @@ void Animations::processAnimActions(int32 actorIdx) {
case ActionType::ACTION_UNKNOWN_21:
if (_engine->_gameState->magicBallIdx == -1 && action.animFrame == actor->animPosition) {
_engine->_movements->rotateActor(action.distanceX, action.distanceZ, actor->angle);
- const int32 x = actor->pos.x + _engine->_renderer->destPos.x;
+ const int32 x = actor->pos.x + _engine->_renderer->_destPos.x;
const int32 y = actor->pos.y + action.distanceY;
- const int32 z = actor->pos.z + _engine->_renderer->destPos.z;
+ const int32 z = actor->pos.z + _engine->_renderer->_destPos.z;
_engine->_extra->addExtraThrowMagicball(x, y, z, action.xAngle, actor->angle, action.yAngle, action.finalAngle);
}
break;
@@ -430,10 +430,10 @@ bool Animations::initAnim(AnimationTypes newAnim, AnimType animType, AnimationTy
if (actor->previousAnimIdx == -1) {
// if no previous animation
- setAnimAtKeyframe(0, _engine->_resources->animData[animIndex], _engine->_resources->bodyData[actor->entity], &actor->animTimerData);
+ setAnimAtKeyframe(0, _engine->_resources->_animData[animIndex], _engine->_resources->_bodyData[actor->entity], &actor->animTimerData);
} else {
// interpolation between animations
- stockAnimation(_engine->_resources->bodyData[actor->entity], &actor->animTimerData);
+ stockAnimation(_engine->_resources->_bodyData[actor->entity], &actor->animTimerData);
}
actor->previousAnimIdx = animIndex;
@@ -477,7 +477,7 @@ void Animations::processActorAnimations(int32 actorIdx) { // DoAnim
if (!actor->dynamicFlags.bIsFalling) {
if (actor->speed) {
- int32 xAxisRotation = actor->move.getRealValue(_engine->lbaTime);
+ int32 xAxisRotation = actor->move.getRealValue(_engine->_lbaTime);
if (!xAxisRotation) {
if (actor->move.to > 0) {
xAxisRotation = 1;
@@ -488,12 +488,12 @@ void Animations::processActorAnimations(int32 actorIdx) { // DoAnim
_engine->_movements->rotateActor(xAxisRotation, 0, actor->spriteActorRotation);
- processActor.y = actor->pos.y - _engine->_renderer->destPos.z;
+ processActor.y = actor->pos.y - _engine->_renderer->_destPos.z;
- _engine->_movements->rotateActor(0, _engine->_renderer->destPos.x, actor->angle);
+ _engine->_movements->rotateActor(0, _engine->_renderer->_destPos.x, actor->angle);
- processActor.x = actor->pos.x + _engine->_renderer->destPos.x;
- processActor.z = actor->pos.z + _engine->_renderer->destPos.z;
+ processActor.x = actor->pos.x + _engine->_renderer->_destPos.x;
+ processActor.z = actor->pos.z + _engine->_renderer->_destPos.z;
_engine->_movements->setActorAngle(ANGLE_0, actor->speed, ANGLE_17, &actor->move);
@@ -559,10 +559,10 @@ void Animations::processActorAnimations(int32 actorIdx) { // DoAnim
}
} else { // 3D actor
if (actor->previousAnimIdx != -1) {
- const AnimData &animData = _engine->_resources->animData[actor->previousAnimIdx];
+ const AnimData &animData = _engine->_resources->_animData[actor->previousAnimIdx];
bool keyFramePassed = false;
- if (_engine->_resources->bodyData[actor->entity].isAnimated()) {
+ if (_engine->_resources->_bodyData[actor->entity].isAnimated()) {
keyFramePassed = verifyAnimAtKeyframe(actor->animPosition, animData, &actor->animTimerData);
}
@@ -577,8 +577,8 @@ void Animations::processActorAnimations(int32 actorIdx) { // DoAnim
_engine->_movements->rotateActor(currentStep.x, currentStep.z, actor->angle);
- currentStep.x = _engine->_renderer->destPos.x;
- currentStep.z = _engine->_renderer->destPos.z;
+ currentStep.x = _engine->_renderer->_destPos.x;
+ currentStep.z = _engine->_renderer->_destPos.z;
processActor = actor->pos + currentStep - actor->lastPos;
@@ -643,7 +643,7 @@ void Animations::processActorAnimations(int32 actorIdx) { // DoAnim
// actor falling Y speed
if (actor->dynamicFlags.bIsFalling) {
processActor = previousActor;
- processActor.y += _engine->loopActorStep; // add step to fall
+ processActor.y += _engine->_loopActorStep; // add step to fall
}
// actor collisions with bricks
@@ -690,11 +690,11 @@ void Animations::processActorAnimations(int32 actorIdx) { // DoAnim
if (_engine->_collision->causeActorDamage && !actor->dynamicFlags.bIsFalling && !currentlyProcessedActorIdx && _engine->_actor->heroBehaviour == HeroBehaviourType::kAthletic && actor->anim == AnimationTypes::kForward) {
_engine->_movements->rotateActor(actor->boudingBox.mins.x, actor->boudingBox.mins.z, actor->angle + ANGLE_360 + ANGLE_135);
- _engine->_renderer->destPos.x += processActor.x;
- _engine->_renderer->destPos.z += processActor.z;
+ _engine->_renderer->_destPos.x += processActor.x;
+ _engine->_renderer->_destPos.z += processActor.z;
- if (_engine->_renderer->destPos.x >= 0 && _engine->_renderer->destPos.z >= 0 && _engine->_renderer->destPos.x <= 0x7E00 && _engine->_renderer->destPos.z <= 0x7E00) {
- if (_engine->_grid->getBrickShape(_engine->_renderer->destPos.x, processActor.y + BRICK_HEIGHT, _engine->_renderer->destPos.z) != ShapeType::kNone && _engine->cfgfile.WallCollision) { // avoid wall hit damage
+ if (_engine->_renderer->_destPos.x >= 0 && _engine->_renderer->_destPos.z >= 0 && _engine->_renderer->_destPos.x <= 0x7E00 && _engine->_renderer->_destPos.z <= 0x7E00) {
+ if (_engine->_grid->getBrickShape(_engine->_renderer->_destPos.x, processActor.y + BRICK_HEIGHT, _engine->_renderer->_destPos.z) != ShapeType::kNone && _engine->_cfgfile.WallCollision) { // avoid wall hit damage
_engine->_extra->addExtraSpecial(actor->pos.x, actor->pos.y + 1000, actor->pos.z, ExtraSpecialType::kHitStars);
initAnim(AnimationTypes::kBigHit, AnimType::kAnimationType_2, AnimationTypes::kStanding, currentlyProcessedActorIdx);
@@ -716,7 +716,7 @@ void Animations::processActorAnimations(int32 actorIdx) { // DoAnim
_engine->_collision->stopFalling();
processActor.y = (_engine->_collision->collision.y * BRICK_HEIGHT) + BRICK_HEIGHT;
} else {
- if (IS_HERO(actorIdx) && _engine->_actor->heroBehaviour == HeroBehaviourType::kAthletic && actor->anim == AnimationTypes::kForward && _engine->cfgfile.WallCollision) { // avoid wall hit damage
+ if (IS_HERO(actorIdx) && _engine->_actor->heroBehaviour == HeroBehaviourType::kAthletic && actor->anim == AnimationTypes::kForward && _engine->_cfgfile.WallCollision) { // avoid wall hit damage
_engine->_extra->addExtraSpecial(actor->pos.x, actor->pos.y + 1000, actor->pos.z, ExtraSpecialType::kHitStars);
initAnim(AnimationTypes::kBigHit, AnimType::kAnimationType_2, AnimationTypes::kStanding, currentlyProcessedActorIdx);
_engine->_movements->heroMoved = true;
diff --git a/engines/twine/scene/collision.cpp b/engines/twine/scene/collision.cpp
index 996f12c2cc..0cd2d8de51 100644
--- a/engines/twine/scene/collision.cpp
+++ b/engines/twine/scene/collision.cpp
@@ -165,7 +165,7 @@ void Collision::reajustActorPosition(ShapeType brickShape) {
}
break;
default:
- if (_engine->cfgfile.Debug) {
+ if (_engine->_cfgfile.Debug) {
debug("Brick Shape %d unsupported", (int)brickShape);
}
break;
@@ -323,13 +323,13 @@ int32 Collision::checkCollisionWithActors(int32 actorIdx) {
if (actor->dynamicFlags.bIsHitting) {
_engine->_movements->rotateActor(0, 200, actor->angle);
- mins.x = _engine->_renderer->destPos.x + processActor.x + actor->boudingBox.mins.x;
+ mins.x = _engine->_renderer->_destPos.x + processActor.x + actor->boudingBox.mins.x;
mins.y = processActor.y + actor->boudingBox.mins.y;
- mins.z = _engine->_renderer->destPos.z + processActor.z + actor->boudingBox.mins.z;
+ mins.z = _engine->_renderer->_destPos.z + processActor.z + actor->boudingBox.mins.z;
- maxs.x = _engine->_renderer->destPos.x + processActor.x + actor->boudingBox.maxs.x;
+ maxs.x = _engine->_renderer->_destPos.x + processActor.x + actor->boudingBox.maxs.x;
maxs.y = processActor.y + actor->boudingBox.maxs.y;
- maxs.z = _engine->_renderer->destPos.z + processActor.z + actor->boudingBox.maxs.z;
+ maxs.z = _engine->_renderer->_destPos.z + processActor.z + actor->boudingBox.maxs.z;
for (int32 a = 0; a < _engine->_scene->sceneNumActors; a++) {
const ActorStruct *actorTest = _engine->_scene->getActor(a);
@@ -442,7 +442,7 @@ void Collision::stopFalling() { // ReceptionObj()
}
int32 Collision::checkExtraCollisionWithActors(ExtraListStruct *extra, int32 actorIdx) {
- const BoundingBox *bbox = _engine->_resources->spriteBoundingBox.bbox(extra->info0);
+ const BoundingBox *bbox = _engine->_resources->_spriteBoundingBox.bbox(extra->info0);
const IVec3 mins = bbox->mins + extra->pos;
const IVec3 maxs = bbox->maxs + extra->pos;
@@ -492,7 +492,7 @@ bool Collision::checkExtraCollisionWithBricks(int32 x, int32 y, int32 z, int32 o
int32 Collision::checkExtraCollisionWithExtra(ExtraListStruct *extra, int32 extraIdx) const {
int32 index = extra->info0;
- const BoundingBox *bbox = _engine->_resources->spriteBoundingBox.bbox(index);
+ const BoundingBox *bbox = _engine->_resources->_spriteBoundingBox.bbox(index);
const IVec3 mins = bbox->mins + extra->pos;
const IVec3 maxs = bbox->maxs + extra->pos;
@@ -500,7 +500,7 @@ int32 Collision::checkExtraCollisionWithExtra(ExtraListStruct *extra, int32 extr
const ExtraListStruct *extraTest = &_engine->_extra->extraList[i];
if (i != extraIdx && extraTest->info0 != -1) {
// TODO: shouldn't this be extraTest->info0 as index?
- const BoundingBox *testbbox = _engine->_resources->spriteBoundingBox.bbox(++index);
+ const BoundingBox *testbbox = _engine->_resources->_spriteBoundingBox.bbox(++index);
const IVec3 minsTest = testbbox->mins + extraTest->pos;
const IVec3 maxsTest = testbbox->maxs + extraTest->pos;
diff --git a/engines/twine/scene/extra.cpp b/engines/twine/scene/extra.cpp
index 2d2fd6c9d1..0160f837e6 100644
--- a/engines/twine/scene/extra.cpp
+++ b/engines/twine/scene/extra.cpp
@@ -116,7 +116,7 @@ int32 Extra::addExtraExplode(int32 x, int32 y, int32 z) {
extra->pos.y = y;
extra->pos.z = z;
extra->payload.lifeTime = 40;
- extra->spawnTime = _engine->lbaTime;
+ extra->spawnTime = _engine->_lbaTime;
extra->strengthOfHit = 0;
return i;
}
@@ -138,15 +138,15 @@ void Extra::throwExtra(ExtraListStruct *extra, int32 xAngle, int32 yAngle, int32
_engine->_movements->rotateActor(x, 0, xAngle);
- extra->destPos.y = -_engine->_renderer->destPos.z;
+ extra->destPos.y = -_engine->_renderer->_destPos.z;
- _engine->_movements->rotateActor(0, _engine->_renderer->destPos.x, yAngle);
+ _engine->_movements->rotateActor(0, _engine->_renderer->_destPos.x, yAngle);
- extra->destPos.x = _engine->_renderer->destPos.x;
- extra->destPos.z = _engine->_renderer->destPos.z;
+ extra->destPos.x = _engine->_renderer->_destPos.x;
+ extra->destPos.z = _engine->_renderer->_destPos.z;
extra->angle = extraAngle;
- extra->spawnTime = _engine->lbaTime;
+ extra->spawnTime = _engine->_lbaTime;
}
int32 Extra::addExtraSpecial(int32 x, int32 y, int32 z, ExtraSpecialType type) { // InitSpecial
@@ -180,7 +180,7 @@ int32 Extra::addExtraSpecial(int32 x, int32 y, int32 z, ExtraSpecialType type) {
extra->pos.z = z;
extra->strengthOfHit = 0;
- extra->spawnTime = _engine->lbaTime;
+ extra->spawnTime = _engine->_lbaTime;
extra->payload.lifeTime = 5;
}
return i;
@@ -268,7 +268,7 @@ int32 Extra::addExtraThrow(int32 actorIdx, int32 x, int32 y, int32 z, int32 spri
throwExtra(extra, xAngle, yAngle, xRotPoint, extraAngle);
extra->strengthOfHit = strengthOfHit;
- extra->spawnTime = _engine->lbaTime;
+ extra->spawnTime = _engine->_lbaTime;
extra->payload.actorIdx = actorIdx;
extra->info1 = 0;
@@ -414,8 +414,8 @@ void Extra::drawSpecialShape(const ExtraShape &shapeTable, int32 x, int32 y, int
_engine->_movements->rotateActor(shapeX, shapeZ, angle);
- const int32 computedX = _engine->_renderer->destPos.x + x;
- const int32 computedY = _engine->_renderer->destPos.z + y;
+ const int32 computedX = _engine->_renderer->_destPos.x + x;
+ const int32 computedY = _engine->_renderer->_destPos.z + y;
if (computedX < renderRect.left) {
renderRect.left = computedX;
@@ -444,13 +444,13 @@ void Extra::drawSpecialShape(const ExtraShape &shapeTable, int32 x, int32 y, int
const int32 oldComputedX = currentX;
const int32 oldComputedY = currentY;
- _engine->_renderer->projPos.x = currentX;
- _engine->_renderer->projPos.y = currentY;
+ _engine->_renderer->_projPos.x = currentX;
+ _engine->_renderer->_projPos.y = currentY;
_engine->_movements->rotateActor(shapeX, shapeZ, angle);
- currentX = _engine->_renderer->destPos.x + x;
- currentY = _engine->_renderer->destPos.z + y;
+ currentX = _engine->_renderer->_destPos.x + x;
+ currentY = _engine->_renderer->_destPos.z + y;
if (currentX < renderRect.left) {
renderRect.left = currentX;
@@ -468,17 +468,17 @@ void Extra::drawSpecialShape(const ExtraShape &shapeTable, int32 x, int32 y, int
renderRect.bottom = currentY;
}
- _engine->_renderer->projPos.x = currentX;
- _engine->_renderer->projPos.y = currentY;
+ _engine->_renderer->_projPos.x = currentX;
+ _engine->_renderer->_projPos.y = currentY;
_engine->_interface->drawLine(oldComputedX, oldComputedY, currentX, currentY, color);
- currentX = _engine->_renderer->projPos.x;
- currentY = _engine->_renderer->projPos.y;
+ currentX = _engine->_renderer->_projPos.x;
+ currentY = _engine->_renderer->_projPos.y;
}
- _engine->_renderer->projPos.x = currentX;
- _engine->_renderer->projPos.y = currentY;
+ _engine->_renderer->_projPos.x = currentX;
+ _engine->_renderer->_projPos.y = currentY;
_engine->_interface->drawLine(currentX, currentY, computedX, computedY, color);
}
@@ -488,10 +488,10 @@ void Extra::drawExtraSpecial(int32 extraIdx, int32 x, int32 y, Common::Rect &ren
switch (specialType) {
case ExtraSpecialType::kHitStars:
- drawSpecialShape(hitStarsShape, x, y, COLOR_WHITE, (_engine->lbaTime * 32) & ANGLE_270, 4, renderRect);
+ drawSpecialShape(hitStarsShape, x, y, COLOR_WHITE, (_engine->_lbaTime * 32) & ANGLE_270, 4, renderRect);
break;
case ExtraSpecialType::kExplodeCloud: {
- int32 cloudTime = 1 + _engine->lbaTime - extra->spawnTime;
+ int32 cloudTime = 1 + _engine->_lbaTime - extra->spawnTime;
if (cloudTime > 32) {
cloudTime = 32;
@@ -521,7 +521,7 @@ void Extra::processMagicballBounce(ExtraListStruct *extra, int32 x, int32 y, int
extra->pos.z = z;
extra->lastPos.z = z;
- extra->spawnTime = _engine->lbaTime;
+ extra->spawnTime = _engine->_lbaTime;
}
void Extra::processExtras() {
@@ -536,7 +536,7 @@ void Extra::processExtras() {
}
// process extra life time
if (extra->type & ExtraType::TIME_OUT) {
- if (extra->payload.lifeTime + extra->spawnTime <= _engine->lbaTime) {
+ if (extra->payload.lifeTime + extra->spawnTime <= _engine->_lbaTime) {
extra->info0 = -1;
continue;
}
@@ -546,7 +546,7 @@ void Extra::processExtras() {
extra->info0 = -1;
continue;
}
- const int32 deltaT = _engine->lbaTime - extra->spawnTime;
+ const int32 deltaT = _engine->_lbaTime - extra->spawnTime;
if (extra->type & ExtraType::EXPLOSION) {
extra->info0 = _engine->_collision->getAverageValue(SPRITEHQR_EXPLOSION_FIRST_FRAME, 100, 30, deltaT);
@@ -594,7 +594,7 @@ void Extra::processExtras() {
}
if (extra->type & ExtraType::BONUS) {
- if (_engine->lbaTime - extra->spawnTime > 40) {
+ if (_engine->_lbaTime - extra->spawnTime > 40) {
extra->type &= ~ExtraType::BONUS;
}
continue;
@@ -626,17 +626,17 @@ void Extra::processExtras() {
}
const int32 angle2 = _engine->_movements->getAngleAndSetTargetActorDistance(extra->pos.y, 0, currentExtraY, _engine->_movements->targetActorDistance);
- int32 pos = extra->trackActorMove.getRealAngle(_engine->lbaTime);
+ int32 pos = extra->trackActorMove.getRealAngle(_engine->_lbaTime);
if (!pos) {
pos = 1;
}
_engine->_movements->rotateActor(pos, 0, angle2);
- extra->pos.y -= _engine->_renderer->destPos.z;
+ extra->pos.y -= _engine->_renderer->_destPos.z;
- _engine->_movements->rotateActor(0, _engine->_renderer->destPos.x, tmpAngle);
- extra->pos.x += _engine->_renderer->destPos.x;
- extra->pos.z += _engine->_renderer->destPos.z;
+ _engine->_movements->rotateActor(0, _engine->_renderer->_destPos.x, tmpAngle);
+ extra->pos.x += _engine->_renderer->_destPos.x;
+ extra->pos.z += _engine->_renderer->_destPos.z;
_engine->_movements->setActorAngle(ANGLE_0, extra->destPos.z, ANGLE_17, &extra->trackActorMove);
@@ -663,7 +663,7 @@ void Extra::processExtras() {
if (extraKey->info1 > 1) {
_engine->_renderer->projectPositionOnScreen(extraKey->pos - _engine->_grid->camera);
- _engine->_redraw->addOverlay(OverlayType::koNumber, extraKey->info1, _engine->_renderer->projPos.x, _engine->_renderer->projPos.y, COLOR_BLACK, OverlayPosType::koNormal, 2);
+ _engine->_redraw->addOverlay(OverlayType::koNumber, extraKey->info1, _engine->_renderer->_projPos.x, _engine->_renderer->_projPos.y, COLOR_BLACK, OverlayPosType::koNormal, 2);
}
_engine->_redraw->addOverlay(OverlayType::koSprite, SPRITEHQR_KEY, 10, 30, 0, OverlayPosType::koNormal, 2);
@@ -676,18 +676,18 @@ void Extra::processExtras() {
continue;
}
const int32 angle2 = _engine->_movements->getAngleAndSetTargetActorDistance(extra->pos.y, 0, extraKey->pos.y, _engine->_movements->targetActorDistance);
- int32 pos = extra->trackActorMove.getRealAngle(_engine->lbaTime);
+ int32 pos = extra->trackActorMove.getRealAngle(_engine->_lbaTime);
if (!pos) {
pos = 1;
}
_engine->_movements->rotateActor(pos, 0, angle2);
- extra->pos.y -= _engine->_renderer->destPos.z;
+ extra->pos.y -= _engine->_renderer->_destPos.z;
- _engine->_movements->rotateActor(0, _engine->_renderer->destPos.x, tmpAngle);
- extra->pos.x += _engine->_renderer->destPos.x;
- extra->pos.z += _engine->_renderer->destPos.z;
+ _engine->_movements->rotateActor(0, _engine->_renderer->_destPos.x, tmpAngle);
+ extra->pos.x += _engine->_renderer->_destPos.x;
+ extra->pos.z += _engine->_renderer->_destPos.z;
_engine->_movements->setActorAngle(ANGLE_0, extra->destPos.z, ANGLE_17, &extra->trackActorMove);
@@ -696,7 +696,7 @@ void Extra::processExtras() {
if (extraKey->info1 > 1) {
_engine->_renderer->projectPositionOnScreen(extraKey->pos - _engine->_grid->camera);
- _engine->_redraw->addOverlay(OverlayType::koNumber, extraKey->info1, _engine->_renderer->projPos.x, _engine->_renderer->projPos.y, COLOR_BLACK, OverlayPosType::koNormal, 2);
+ _engine->_redraw->addOverlay(OverlayType::koNumber, extraKey->info1, _engine->_renderer->_projPos.x, _engine->_renderer->_projPos.y, COLOR_BLACK, OverlayPosType::koNormal, 2);
}
_engine->_redraw->addOverlay(OverlayType::koSprite, SPRITEHQR_KEY, 10, 30, 0, OverlayPosType::koNormal, 2);
@@ -828,7 +828,7 @@ void Extra::processExtras() {
}
if (process) {
- const BoundingBox *bbox = _engine->_resources->spriteBoundingBox.bbox(extra->info0);
+ const BoundingBox *bbox = _engine->_resources->_spriteBoundingBox.bbox(extra->info0);
extra->pos.y = (_engine->_collision->collision.y * BRICK_HEIGHT) + BRICK_HEIGHT - bbox->mins.y;
extra->type &= ~(ExtraType::STOP_COL | ExtraType::FLY);
continue;
@@ -843,7 +843,7 @@ void Extra::processExtras() {
if (extra->info1 > 1 && !_engine->_input->isActionActive(TwinEActionType::MoveBackward)) {
_engine->_renderer->projectPositionOnScreen(extra->pos - _engine->_grid->camera);
const int16 fontColor = COLOR_158;
- _engine->_redraw->addOverlay(OverlayType::koNumber, extra->info1, _engine->_renderer->projPos.x, _engine->_renderer->projPos.y, fontColor, OverlayPosType::koNormal, 2);
+ _engine->_redraw->addOverlay(OverlayType::koNumber, extra->info1, _engine->_renderer->_projPos.x, _engine->_renderer->_projPos.y, fontColor, OverlayPosType::koNormal, 2);
}
_engine->_redraw->addOverlay(OverlayType::koSprite, extra->info0, 10, 30, 0, OverlayPosType::koNormal, 2);
diff --git a/engines/twine/scene/gamestate.cpp b/engines/twine/scene/gamestate.cpp
index 5f5d081908..669face96b 100644
--- a/engines/twine/scene/gamestate.cpp
+++ b/engines/twine/scene/gamestate.cpp
@@ -117,7 +117,7 @@ void GameState::initEngineVars() {
_engine->_scene->currentSceneIdx = SCENE_CEILING_GRID_FADE_1;
_engine->_scene->needChangeScene = LBA1SceneId::Citadel_Island_Prison;
- _engine->quitGame = -1;
+ _engine->_quitGame = -1;
_engine->_scene->mecaPinguinIdx = -1;
_engine->_menuOptions->canShowCredits = false;
@@ -314,7 +314,7 @@ void GameState::processFoundItem(InventoryItems item) {
const int32 itemCameraY = _engine->_grid->newCamera.y * BRICK_HEIGHT;
const int32 itemCameraZ = _engine->_grid->newCamera.z * BRICK_SIZE;
- BodyData &bodyData = _engine->_resources->bodyData[_engine->_scene->sceneHero->entity];
+ BodyData &bodyData = _engine->_resources->_bodyData[_engine->_scene->sceneHero->entity];
const int32 bodyX = _engine->_scene->sceneHero->pos.x - itemCameraX;
const int32 bodyY = _engine->_scene->sceneHero->pos.y - itemCameraY;
const int32 bodyZ = _engine->_scene->sceneHero->pos.z - itemCameraZ;
@@ -332,12 +332,12 @@ void GameState::processFoundItem(InventoryItems item) {
_engine->_grid->drawOverModelActor(itemX, itemY, itemZ);
_engine->_renderer->projectPositionOnScreen(bodyX, bodyY, bodyZ);
- _engine->_renderer->projPos.y -= 150;
+ _engine->_renderer->_projPos.y -= 150;
- const int32 boxTopLeftX = _engine->_renderer->projPos.x - 65;
- const int32 boxTopLeftY = _engine->_renderer->projPos.y - 65;
- const int32 boxBottomRightX = _engine->_renderer->projPos.x + 65;
- const int32 boxBottomRightY = _engine->_renderer->projPos.y + 65;
+ const int32 boxTopLeftX = _engine->_renderer->_projPos.x - 65;
+ const int32 boxTopLeftY = _engine->_renderer->_projPos.y - 65;
+ const int32 boxBottomRightX = _engine->_renderer->_projPos.x + 65;
+ const int32 boxBottomRightY = _engine->_renderer->_projPos.y + 65;
const Common::Rect boxRect(boxTopLeftX, boxTopLeftY, boxBottomRightX, boxBottomRightY);
_engine->_sound->playSample(Samples::BigItemFound);
@@ -354,7 +354,7 @@ void GameState::processFoundItem(InventoryItems item) {
_engine->_text->initVoxToPlayTextId((TextId)item);
const int32 bodyAnimIdx = _engine->_animations->getBodyAnimIndex(AnimationTypes::kFoundItem);
- const AnimData ¤tAnimData = _engine->_resources->animData[bodyAnimIdx];
+ const AnimData ¤tAnimData = _engine->_resources->_animData[bodyAnimIdx];
AnimTimerDataStruct tmpAnimTimer = _engine->_scene->sceneHero->animTimerData;
@@ -376,7 +376,7 @@ void GameState::processFoundItem(InventoryItems item) {
_engine->_menu->_itemAngle[item] += ANGLE_2;
- _engine->_renderer->renderInventoryItem(_engine->_renderer->projPos.x, _engine->_renderer->projPos.y, _engine->_resources->inventoryTable[item], _engine->_menu->_itemAngle[item], 10000);
+ _engine->_renderer->renderInventoryItem(_engine->_renderer->_projPos.x, _engine->_renderer->_projPos.y, _engine->_resources->_inventoryTable[item], _engine->_menu->_itemAngle[item], 10000);
_engine->_menu->drawBox(boxRect);
_engine->_redraw->addRedrawArea(boxRect);
@@ -406,13 +406,13 @@ void GameState::processFoundItem(InventoryItems item) {
_engine->readKeys();
if (_engine->_input->toggleAbortAction()) {
- _engine->_text->stopVox(_engine->_text->currDialTextEntry);
+ _engine->_text->stopVox(_engine->_text->_currDialTextEntry);
break;
}
if (_engine->_input->toggleActionIfActive(TwinEActionType::UINextPage)) {
if (textState == ProgressiveTextState::End) {
- _engine->_text->stopVox(_engine->_text->currDialTextEntry);
+ _engine->_text->stopVox(_engine->_text->_currDialTextEntry);
break;
}
if (textState == ProgressiveTextState::NextPage) {
@@ -420,12 +420,12 @@ void GameState::processFoundItem(InventoryItems item) {
}
}
- _engine->_text->playVoxSimple(_engine->_text->currDialTextEntry);
+ _engine->_text->playVoxSimple(_engine->_text->_currDialTextEntry);
- _engine->lbaTime++;
+ _engine->_lbaTime++;
}
- while (_engine->_text->playVoxSimple(_engine->_text->currDialTextEntry)) {
+ while (_engine->_text->playVoxSimple(_engine->_text->_currDialTextEntry)) {
FrameMarker frame(_engine);
_engine->readKeys();
if (_engine->shouldQuit() || _engine->_input->toggleAbortAction()) {
@@ -435,7 +435,7 @@ void GameState::processFoundItem(InventoryItems item) {
initEngineProjections();
_engine->_text->initSceneTextBank();
- _engine->_text->stopVox(_engine->_text->currDialTextEntry);
+ _engine->_text->stopVox(_engine->_text->_currDialTextEntry);
_engine->_scene->sceneHero->animTimerData = tmpAnimTimer;
}
@@ -459,21 +459,21 @@ void GameState::processGameChoices(TextId choiceIdx) {
// get right VOX entry index
if (_engine->_text->initVoxToPlayTextId(choiceAnswer)) {
- while (_engine->_text->playVoxSimple(_engine->_text->currDialTextEntry)) {
+ while (_engine->_text->playVoxSimple(_engine->_text->_currDialTextEntry)) {
FrameMarker frame(_engine);
if (_engine->shouldQuit()) {
break;
}
}
- _engine->_text->stopVox(_engine->_text->currDialTextEntry);
+ _engine->_text->stopVox(_engine->_text->_currDialTextEntry);
- _engine->_text->hasHiddenVox = false;
- _engine->_text->voxHiddenIndex = 0;
+ _engine->_text->_hasHiddenVox = false;
+ _engine->_text->_voxHiddenIndex = 0;
}
}
void GameState::processGameoverAnimation() {
- const int32 tmpLbaTime = _engine->lbaTime;
+ const int32 tmpLbaTime = _engine->_lbaTime;
_engine->exitSceneryView();
// workaround to fix hero redraw after drowning
@@ -492,27 +492,27 @@ void GameState::processGameoverAnimation() {
_engine->_sound->stopSamples();
_engine->_music->stopMidiMusic(); // stop fade music
_engine->_renderer->setCameraPosition(_engine->width() / 2, _engine->height() / 2, 128, 200, 200);
- int32 startLbaTime = _engine->lbaTime;
+ int32 startLbaTime = _engine->_lbaTime;
const Common::Rect &rect = _engine->centerOnScreen(_engine->width() / 2, _engine->height() / 2);
_engine->_interface->setClip(rect);
Common::Rect dummy;
- while (!_engine->_input->toggleAbortAction() && (_engine->lbaTime - startLbaTime) <= 500) {
+ while (!_engine->_input->toggleAbortAction() && (_engine->_lbaTime - startLbaTime) <= 500) {
FrameMarker frame(_engine, 66);
_engine->readKeys();
if (_engine->shouldQuit()) {
return;
}
- const int32 avg = _engine->_collision->getAverageValue(40000, 3200, 500, _engine->lbaTime - startLbaTime);
- const int32 cdot = _engine->_screens->crossDot(1, 1024, 100, (_engine->lbaTime - startLbaTime) % 100);
+ const int32 avg = _engine->_collision->getAverageValue(40000, 3200, 500, _engine->_lbaTime - startLbaTime);
+ const int32 cdot = _engine->_screens->crossDot(1, 1024, 100, (_engine->_lbaTime - startLbaTime) % 100);
_engine->blitWorkToFront(rect);
_engine->_renderer->setCameraAngle(0, 0, 0, 0, -cdot, 0, avg);
_engine->_renderer->renderIsoModel(0, 0, 0, ANGLE_0, ANGLE_0, ANGLE_0, gameOverPtr, dummy);
_engine->copyBlockPhys(rect);
- _engine->lbaTime++;
+ _engine->_lbaTime++;
}
_engine->_sound->playSample(Samples::Explode);
@@ -527,7 +527,7 @@ void GameState::processGameoverAnimation() {
_engine->restoreFrontBuffer();
initEngineProjections();
- _engine->lbaTime = tmpLbaTime;
+ _engine->_lbaTime = tmpLbaTime;
}
void GameState::giveUp() {
diff --git a/engines/twine/scene/grid.cpp b/engines/twine/scene/grid.cpp
index 06405f60f2..368a786f86 100644
--- a/engines/twine/scene/grid.cpp
+++ b/engines/twine/scene/grid.cpp
@@ -72,7 +72,7 @@ void Grid::copyGridMask(int32 index, int32 x, int32 y, const Graphics::ManagedSu
int32 right = *ptr + left - 1;
int32 bottom = *(ptr + 1) + top - 1;
- if (left > _engine->_interface->clip.right || right < _engine->_interface->clip.left || bottom < _engine->_interface->clip.top || top > _engine->_interface->clip.bottom) {
+ if (left > _engine->_interface->_clip.right || right < _engine->_interface->_clip.left || bottom < _engine->_interface->_clip.top || top > _engine->_interface->_clip.bottom) {
return;
}
@@ -93,8 +93,8 @@ void Grid::copyGridMask(int32 index, int32 x, int32 y, const Graphics::ManagedSu
bottom++;
// if line on top aren't in the blitting area...
- if (absY < _engine->_interface->clip.top) {
- int numOfLineToRemove = _engine->_interface->clip.top - absY;
+ if (absY < _engine->_interface->_clip.top) {
+ int numOfLineToRemove = _engine->_interface->_clip.top - absY;
vSize -= numOfLineToRemove;
if (vSize <= 0) {
@@ -112,14 +112,14 @@ void Grid::copyGridMask(int32 index, int32 x, int32 y, const Graphics::ManagedSu
}
// reduce the vSize to remove lines on bottom
- if (absY + vSize - 1 > _engine->_interface->clip.bottom) {
- vSize = _engine->_interface->clip.bottom - absY + 1;
+ if (absY + vSize - 1 > _engine->_interface->_clip.bottom) {
+ vSize = _engine->_interface->_clip.bottom - absY + 1;
if (vSize <= 0) {
return;
}
}
- uint8 *outPtr = (uint8 *)_engine->frontVideoBuffer.getBasePtr(left, absY);
+ uint8 *outPtr = (uint8 *)_engine->_frontVideoBuffer.getBasePtr(left, absY);
const uint8 *inPtr = (const uint8 *)buffer.getBasePtr(left, absY);
do {
@@ -140,7 +140,7 @@ void Grid::copyGridMask(int32 index, int32 x, int32 y, const Graphics::ManagedSu
width = *(ptr++); // copy size
for (int32 j = 0; j < width; j++) {
- if (absX >= _engine->_interface->clip.left && absX <= _engine->_interface->clip.right) {
+ if (absX >= _engine->_interface->_clip.left && absX <= _engine->_interface->_clip.right) {
*outPtr = *inPtr;
}
@@ -162,16 +162,16 @@ const BrickEntry* Grid::getBrickEntry(int32 j, int32 i) const {
}
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);
+ const int32 copyBlockPhysLeft = ((_engine->_interface->_clip.left + 24) / 24) - 1;
+ const int32 copyBlockPhysRight = ((_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);
- if (currBrickEntry->posY + 38 > _engine->_interface->clip.top && currBrickEntry->posY <= _engine->_interface->clip.bottom && currBrickEntry->y >= y) {
+ 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);
+ copyGridMask(currBrickEntry->index, (j * 24) - 24, currBrickEntry->posY, _engine->_workVideoBuffer);
}
}
}
@@ -179,20 +179,20 @@ void Grid::drawOverModelActor(int32 x, int32 y, int32 z) {
}
void Grid::drawOverSpriteActor(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;
+ const int32 copyBlockPhysLeft = ((_engine->_interface->_clip.left + 24) / 24) - 1;
+ const int32 copyBlockPhysRight = (_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);
- if (currBrickEntry->posY + 38 > _engine->_interface->clip.top && currBrickEntry->posY <= _engine->_interface->clip.bottom && currBrickEntry->y >= y) {
+ 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);
+ copyGridMask(currBrickEntry->index, (j * 24) - 24, currBrickEntry->posY, _engine->_workVideoBuffer);
}
if (currBrickEntry->x > x || currBrickEntry->z > z) {
- copyGridMask(currBrickEntry->index, (j * 24) - 24, currBrickEntry->posY, _engine->workVideoBuffer);
+ copyGridMask(currBrickEntry->index, (j * 24) - 24, currBrickEntry->posY, _engine->_workVideoBuffer);
}
}
}
@@ -488,50 +488,50 @@ bool Grid::drawSprite(int32 index, int32 posX, int32 posY, const uint8 *ptr) {
bool Grid::drawSprite(int32 posX, int32 posY, const SpriteData &ptr) {
const int32 left = posX + ptr.offsetX();
- if (left > _engine->_interface->clip.right) {
+ if (left > _engine->_interface->_clip.right) {
return false;
}
const int32 right = ptr.surface().w + left;
- if (right < _engine->_interface->clip.left) {
+ if (right < _engine->_interface->_clip.left) {
return false;
}
const int32 top = posY + ptr.offsetY();
- if (top > _engine->_interface->clip.bottom) {
+ if (top > _engine->_interface->_clip.bottom) {
return false;
}
const int32 bottom = ptr.surface().h + top;
- if (bottom < _engine->_interface->clip.top) {
+ if (bottom < _engine->_interface->_clip.top) {
return false;
}
const Common::Point pos(left, top);
- _engine->frontVideoBuffer.transBlitFrom(ptr.surface(), pos);
+ _engine->_frontVideoBuffer.transBlitFrom(ptr.surface(), pos);
return true;
}
// WARNING: Rewrite this function to have better performance
bool Grid::drawBrickSprite(int32 index, int32 posX, int32 posY, const uint8 *ptr, bool isSprite) {
- if (_engine->_interface->clip.left > _engine->_interface->clip.right || _engine->_interface->clip.top > _engine->_interface->clip.bottom) {
+ if (_engine->_interface->_clip.left > _engine->_interface->_clip.right || _engine->_interface->_clip.top > _engine->_interface->_clip.bottom) {
return false;
}
const int32 left = posX + *(ptr + 2);
- if (left > _engine->_interface->clip.right) {
+ if (left > _engine->_interface->_clip.right) {
return false;
}
const int32 right = *ptr + left;
- if (right < _engine->_interface->clip.left) {
+ if (right < _engine->_interface->_clip.left) {
return false;
}
const int32 top = posY + *(ptr + 3);
- if (top > _engine->_interface->clip.bottom) {
+ if (top > _engine->_interface->_clip.bottom) {
return false;
}
const int32 bottom = (int32)*(ptr + 1) + top;
- if (bottom < _engine->_interface->clip.top) {
+ if (bottom < _engine->_interface->_clip.top) {
return false;
}
- const int32 maxY = MIN(bottom, (int32)_engine->_interface->clip.bottom);
+ const int32 maxY = MIN(bottom, (int32)_engine->_interface->_clip.bottom);
ptr += 4;
@@ -549,7 +549,7 @@ bool Grid::drawBrickSprite(int32 index, int32 posX, int32 posY, const uint8 *ptr
x += iterations;
continue;
}
- if (y < _engine->_interface->clip.top || x >= _engine->_interface->clip.right || x + iterations < _engine->_interface->clip.left) {
+ if (y < _engine->_interface->_clip.top || x >= _engine->_interface->_clip.right || x + iterations < _engine->_interface->_clip.left) {
if (type == 1) {
ptr += iterations;
} else {
@@ -559,9 +559,9 @@ bool Grid::drawBrickSprite(int32 index, int32 posX, int32 posY, const uint8 *ptr
continue;
}
if (type == 1) {
- uint8 *out = (uint8 *)_engine->frontVideoBuffer.getBasePtr(x, y);
+ uint8 *out = (uint8 *)_engine->_frontVideoBuffer.getBasePtr(x, y);
for (uint8 i = 0; i < iterations; i++) {
- if (x >= _engine->_interface->clip.left && x < _engine->_interface->clip.right) {
+ if (x >= _engine->_interface->_clip.left && x < _engine->_interface->_clip.right) {
*out = *ptr;
}
@@ -571,9 +571,9 @@ bool Grid::drawBrickSprite(int32 index, int32 posX, int32 posY, const uint8 *ptr
}
} else {
const uint8 pixel = *ptr++;
- uint8 *out = (uint8 *)_engine->frontVideoBuffer.getBasePtr(x, y);
+ uint8 *out = (uint8 *)_engine->_frontVideoBuffer.getBasePtr(x, y);
for (uint8 i = 0; i < iterations; i++) {
- if (x >= _engine->_interface->clip.left && x < _engine->_interface->clip.right) {
+ if (x >= _engine->_interface->_clip.left && x < _engine->_interface->_clip.right) {
*out = pixel;
}
@@ -587,7 +587,7 @@ bool Grid::drawBrickSprite(int32 index, int32 posX, int32 posY, const uint8 *ptr
}
Common::Rect rect(left, top, right, bottom);
- _engine->frontVideoBuffer.addDirtyRect(rect);
+ _engine->_frontVideoBuffer.addDirtyRect(rect);
return true;
}
@@ -681,8 +681,8 @@ void Grid::redrawGrid() {
_engine->_renderer->projectPositionOnScreen(-camera.x, -camera.y, -camera.z);
- _engine->_renderer->projPosScreen.x = _engine->_renderer->projPos.x;
- _engine->_renderer->projPosScreen.y = _engine->_renderer->projPos.y;
+ _engine->_renderer->_projPosScreen.x = _engine->_renderer->_projPos.x;
+ _engine->_renderer->_projPosScreen.y = _engine->_renderer->_projPos.y;
memset(_brickInfoBuffer, 0, _brickInfoBufferSize);
@@ -862,10 +862,10 @@ void Grid::centerOnActor(const ActorStruct* actor) {
}
void Grid::centerScreenOnActor() {
- if (_engine->disableScreenRecenter) {
+ if (_engine->_disableScreenRecenter) {
return;
}
- if (_engine->_debugGrid->useFreeCamera) {
+ if (_engine->_debugGrid->_useFreeCamera) {
return;
}
@@ -874,7 +874,7 @@ void Grid::centerScreenOnActor() {
actor->pos.y - (newCamera.y * BRICK_HEIGHT),
actor->pos.z - (newCamera.z * BRICK_SIZE));
// TODO: these border values should get scaled for hiher resolutions
- if (_engine->_renderer->projPos.x < 80 || _engine->_renderer->projPos.x >= _engine->width() - 60 || _engine->_renderer->projPos.y < 80 || _engine->_renderer->projPos.y >= _engine->height() - 50) {
+ if (_engine->_renderer->_projPos.x < 80 || _engine->_renderer->_projPos.x >= _engine->width() - 60 || _engine->_renderer->_projPos.y < 80 || _engine->_renderer->_projPos.y >= _engine->height() - 50) {
newCamera.x = ((actor->pos.x + BRICK_HEIGHT) / BRICK_SIZE) + (((actor->pos.x + BRICK_HEIGHT) / BRICK_SIZE) - newCamera.x) / 2;
newCamera.y = actor->pos.y / BRICK_HEIGHT;
newCamera.z = ((actor->pos.z + BRICK_HEIGHT) / BRICK_SIZE) + (((actor->pos.z + BRICK_HEIGHT) / BRICK_SIZE) - newCamera.z) / 2;
diff --git a/engines/twine/scene/movements.cpp b/engines/twine/scene/movements.cpp
index 54257c5856..e0138340bd 100644
--- a/engines/twine/scene/movements.cpp
+++ b/engines/twine/scene/movements.cpp
@@ -60,7 +60,7 @@ void Movements::setActorAngleSafe(int16 startAngle, int16 endAngle, int16 stepAn
movePtr->from = ClampAngle(startAngle);
movePtr->to = ClampAngle(endAngle);
movePtr->numOfStep = ClampAngle(stepAngle);
- movePtr->timeOfChange = _engine->lbaTime;
+ movePtr->timeOfChange = _engine->_lbaTime;
}
void Movements::clearRealAngle(ActorStruct *actorPtr) {
@@ -71,7 +71,7 @@ void Movements::setActorAngle(int16 startAngle, int16 endAngle, int16 stepAngle,
movePtr->from = startAngle;
movePtr->to = endAngle;
movePtr->numOfStep = stepAngle;
- movePtr->timeOfChange = _engine->lbaTime;
+ movePtr->timeOfChange = _engine->_lbaTime;
}
int32 Movements::getAngleAndSetTargetActorDistance(int32 x1, int32 z1, int32 x2, int32 z2) {
@@ -142,8 +142,8 @@ int32 Movements::getAngleAndSetTargetActorDistance(int32 x1, int32 z1, int32 x2,
void Movements::rotateActor(int32 x, int32 z, int32 angle) {
const double radians = AngleToRadians(angle);
- _engine->_renderer->destPos.x = (int32)(x * cos(radians) + z * sin(radians));
- _engine->_renderer->destPos.z = (int32)(-x * sin(radians) + z * cos(radians));
+ _engine->_renderer->_destPos.x = (int32)(x * cos(radians) + z * sin(radians));
+ _engine->_renderer->_destPos.z = (int32)(-x * sin(radians) + z * cos(radians));
}
int32 Movements::getDistance2D(int32 x1, int32 z1, int32 x2, int32 z2) const {
@@ -177,7 +177,7 @@ void Movements::moveActor(int32 angleFrom, int32 angleTo, int32 speed, ActorMove
numOfStepInt /= 256;
movePtr->numOfStep = (int16)numOfStepInt;
- movePtr->timeOfChange = _engine->lbaTime;
+ movePtr->timeOfChange = _engine->_lbaTime;
}
void Movements::ChangedCursorKeys::update(TwinEEngine *engine) {
@@ -238,7 +238,7 @@ bool Movements::processBehaviourExecution(int actorIdx) {
if (_engine->_actor->autoAggressive) {
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
heroMoved = true;
- actor->angle = actor->move.getRealAngle(_engine->lbaTime);
+ actor->angle = actor->move.getRealAngle(_engine->_lbaTime);
// TODO: previousLoopActionKey must be handled properly
if (!_previousLoopActionKey || actor->anim == AnimationTypes::kStanding) {
const int32 aggresiveMode = _engine->getRandomNumber(3);
@@ -286,7 +286,7 @@ bool Movements::processAttackExecution(int actorIdx) {
_engine->_animations->initAnim(AnimationTypes::kThrowBall, AnimType::kAnimationType_1, AnimationTypes::kStanding, actorIdx);
}
- actor->angle = actor->move.getRealAngle(_engine->lbaTime);
+ actor->angle = actor->move.getRealAngle(_engine->_lbaTime);
return true;
}
} else if (_engine->_gameState->hasItem(InventoryItems::kiUseSabre)) {
@@ -296,7 +296,7 @@ bool Movements::processAttackExecution(int actorIdx) {
_engine->_animations->initAnim(AnimationTypes::kSabreAttack, AnimType::kAnimationType_1, AnimationTypes::kStanding, actorIdx);
- actor->angle = actor->move.getRealAngle(_engine->lbaTime);
+ actor->angle = actor->move.getRealAngle(_engine->_lbaTime);
return true;
}
return false;
@@ -338,7 +338,7 @@ void Movements::processManualMovementExecution(int actorIdx) {
_engine->_animations->initAnim(AnimationTypes::kTurnLeft, AnimType::kAnimationTypeLoop, AnimationTypes::kAnimInvalid, actorIdx);
} else {
if (!actor->dynamicFlags.bIsRotationByAnim) {
- actor->angle = actor->move.getRealAngle(_engine->lbaTime);
+ actor->angle = actor->move.getRealAngle(_engine->_lbaTime);
}
}
heroMoved = true;
@@ -347,7 +347,7 @@ void Movements::processManualMovementExecution(int actorIdx) {
_engine->_animations->initAnim(AnimationTypes::kTurnRight, AnimType::kAnimationTypeLoop, AnimationTypes::kAnimInvalid, actorIdx);
} else {
if (!actor->dynamicFlags.bIsRotationByAnim) {
- actor->angle = actor->move.getRealAngle(_engine->lbaTime);
+ actor->angle = actor->move.getRealAngle(_engine->_lbaTime);
}
}
heroMoved = true;
@@ -413,15 +413,15 @@ void Movements::processRandomAction(int actorIdx) {
if (actor->brickCausesDamage()) {
moveActor(actor->angle, ClampAngle((_engine->getRandomNumber() & ANGLE_90) + (actor->angle - ANGLE_90)), actor->speed, &actor->move);
- actor->delayInMillis = _engine->getRandomNumber(300) + _engine->lbaTime + 300;
+ actor->delayInMillis = _engine->getRandomNumber(300) + _engine->_lbaTime + 300;
_engine->_animations->initAnim(AnimationTypes::kStanding, AnimType::kAnimationTypeLoop, AnimationTypes::kAnimInvalid, actorIdx);
}
if (!actor->move.numOfStep) {
_engine->_animations->initAnim(AnimationTypes::kForward, AnimType::kAnimationTypeLoop, AnimationTypes::kAnimInvalid, actorIdx);
- if (_engine->lbaTime > actor->delayInMillis) {
+ if (_engine->_lbaTime > actor->delayInMillis) {
moveActor(actor->angle, ClampAngle((_engine->getRandomNumber() & ANGLE_90) + (actor->angle - ANGLE_90)), actor->speed, &actor->move);
- actor->delayInMillis = _engine->getRandomNumber(300) + _engine->lbaTime + 300;
+ actor->delayInMillis = _engine->getRandomNumber(300) + _engine->_lbaTime + 300;
}
}
}
@@ -463,7 +463,7 @@ void Movements::processActorMovements(int32 actorIdx) {
}
if (!actor->staticFlags.bIsSpriteActor) {
if (actor->controlMode != ControlMode::kManual) {
- actor->angle = actor->move.getRealAngle(_engine->lbaTime);
+ actor->angle = actor->move.getRealAngle(_engine->_lbaTime);
}
}
diff --git a/engines/twine/scene/scene.cpp b/engines/twine/scene/scene.cpp
index e4b77ae849..7ffa40a8e1 100644
--- a/engines/twine/scene/scene.cpp
+++ b/engines/twine/scene/scene.cpp
@@ -230,7 +230,7 @@ bool Scene::loadSceneLBA2() {
act->lifeScript = currentScene + stream.pos();
stream.skip(act->lifeScriptSize);
- if (_engine->_debugScene->onlyLoadActor != -1 && _engine->_debugScene->onlyLoadActor != cnt) {
+ if (_engine->_debugScene->_onlyLoadActor != -1 && _engine->_debugScene->_onlyLoadActor != cnt) {
sceneNumActors--;
a--;
}
@@ -358,7 +358,7 @@ bool Scene::loadSceneLBA1() {
act->lifeScript = currentScene + stream.pos();
stream.skip(act->lifeScriptSize);
- if (_engine->_debugScene->onlyLoadActor != -1 && _engine->_debugScene->onlyLoadActor != cnt) {
+ if (_engine->_debugScene->_onlyLoadActor != -1 && _engine->_debugScene->_onlyLoadActor != cnt) {
sceneNumActors--;
a--;
}
@@ -393,7 +393,7 @@ bool Scene::loadSceneLBA1() {
point->z = stream.readUint16LE();
}
- if (_engine->_debugScene->useScenePatches) {
+ if (_engine->_debugScene->_useScenePatches) {
// TODO: these were found in the disassembly and might be some script fixes - check me and activate me
switch (currentSceneIdx) {
case LBA1SceneId::Hamalayi_Mountains_landing_place:
@@ -547,7 +547,7 @@ void Scene::changeScene() {
}
_engine->_gameState->inventoryNumKeys = 0;
- _engine->disableScreenRecenter = false;
+ _engine->_disableScreenRecenter = false;
heroPositionType = ScenePositionType::kNoPosition;
_sampleAmbienceTime = 0;
@@ -607,7 +607,7 @@ void Scene::playSceneMusic() {
}
void Scene::processEnvironmentSound() {
- if (_engine->lbaTime >= _sampleAmbienceTime) {
+ if (_engine->_lbaTime >= _sampleAmbienceTime) {
int16 currentAmb = _engine->getRandomNumber(4); // random ambiance
for (int32 s = 0; s < 4; s++) {
@@ -633,7 +633,7 @@ void Scene::processEnvironmentSound() {
}
// compute next ambiance timer
- _sampleAmbienceTime = _engine->lbaTime + (_engine->getRandomNumber(_sampleMinDelayRnd) + _sampleMinDelay) * 50;
+ _sampleAmbienceTime = _engine->_lbaTime + (_engine->getRandomNumber(_sampleMinDelayRnd) + _sampleMinDelay) * 50;
}
}
@@ -689,8 +689,8 @@ void Scene::processActorZones(int32 actorIdx) {
}
break;
case ZoneType::kCamera:
- if (currentlyFollowedActor == actorIdx && !_engine->_debugGrid->useFreeCamera) {
- _engine->disableScreenRecenter = true;
+ if (currentlyFollowedActor == actorIdx && !_engine->_debugGrid->_useFreeCamera) {
+ _engine->_disableScreenRecenter = true;
if (_engine->_grid->newCamera.x != zone->infoData.CameraView.x || _engine->_grid->newCamera.y != zone->infoData.CameraView.y || _engine->_grid->newCamera.z != zone->infoData.CameraView.z) {
_engine->_grid->newCamera.x = zone->infoData.CameraView.x;
_engine->_grid->newCamera.y = zone->infoData.CameraView.y;
@@ -737,11 +737,11 @@ void Scene::processActorZones(int32 actorIdx) {
case ZoneType::kLadder:
if (IS_HERO(actorIdx) && _engine->_actor->heroBehaviour != HeroBehaviourType::kProtoPack && (actor->anim == AnimationTypes::kForward || actor->anim == AnimationTypes::kTopLadder || actor->anim == AnimationTypes::kClimbLadder)) {
_engine->_movements->rotateActor(actor->boudingBox.mins.x, actor->boudingBox.mins.z, actor->angle + ANGLE_360 + ANGLE_135);
- _engine->_renderer->destPos.x += _engine->_movements->processActor.x;
- _engine->_renderer->destPos.z += _engine->_movements->processActor.z;
+ _engine->_renderer->_destPos.x += _engine->_movements->processActor.x;
+ _engine->_renderer->_destPos.z += _engine->_movements->processActor.z;
- if (_engine->_renderer->destPos.x >= 0 && _engine->_renderer->destPos.z >= 0 && _engine->_renderer->destPos.x <= 0x7E00 && _engine->_renderer->destPos.z <= 0x7E00) {
- if (_engine->_grid->getBrickShape(_engine->_renderer->destPos.x, actor->pos.y + ANGLE_90, _engine->_renderer->destPos.z) != ShapeType::kNone) {
+ if (_engine->_renderer->_destPos.x >= 0 && _engine->_renderer->_destPos.z >= 0 && _engine->_renderer->_destPos.x <= 0x7E00 && _engine->_renderer->_destPos.z <= 0x7E00) {
+ if (_engine->_grid->getBrickShape(_engine->_renderer->_destPos.x, actor->pos.y + ANGLE_90, _engine->_renderer->_destPos.z) != ShapeType::kNone) {
currentActorInZone = true;
if (actor->pos.y >= ABS(zone->mins.y + zone->maxs.y) / 2) {
_engine->_animations->initAnim(AnimationTypes::kTopLadder, AnimType::kAnimationType_2, AnimationTypes::kStanding, actorIdx); // reached end of ladder
diff --git a/engines/twine/script/script_life_v1.cpp b/engines/twine/script/script_life_v1.cpp
index 09905bd096..907e883853 100644
--- a/engines/twine/script/script_life_v1.cpp
+++ b/engines/twine/script/script_life_v1.cpp
@@ -328,7 +328,7 @@ static int32 processLifeConditions(TwinEEngine *engine, LifeScriptContext &ctx)
int32 item = ctx.stream.readByte();
if (!engine->_gameState->inventoryDisabled()) {
- if (item == engine->loopInventoryItem) {
+ if (item == engine->_loopInventoryItem) {
engine->_scene->currentScriptValue = 1;
} else {
if (engine->_gameState->inventoryFlags[item] == 1 && engine->_gameState->hasItem((InventoryItems)item)) {
@@ -650,7 +650,7 @@ static int32 lMESSAGE(TwinEEngine *engine, LifeScriptContext &ctx) {
const TextId textIdx = (TextId)ctx.stream.readSint16LE();
engine->freezeTime();
- if (engine->_text->showDialogueBubble) {
+ if (engine->_text->_showDialogueBubble) {
engine->_redraw->drawBubble(ctx.actorIdx);
}
engine->_text->setFontCrossColor(ctx.actor->talkColor);
@@ -854,9 +854,9 @@ static int32 lGIVE_GOLD_PIECES(TwinEEngine *engine, LifeScriptContext &ctx) {
for (int16 i = 0; i < OVERLAY_MAX_ENTRIES; i++) {
OverlayListStruct *overlay = &engine->_redraw->overlayList[i];
if (overlay->info0 != -1 && overlay->type == OverlayType::koNumberRange) {
- overlay->info0 = engine->_collision->getAverageValue(overlay->info1, overlay->info0, 100, overlay->lifeTime - engine->lbaTime - 50);
+ overlay->info0 = engine->_collision->getAverageValue(overlay->info1, overlay->info0, 100, overlay->lifeTime - engine->_lbaTime - 50);
overlay->info1 = engine->_gameState->inventoryNumKashes;
- overlay->lifeTime = engine->lbaTime + 150;
+ overlay->lifeTime = engine->_lbaTime + 150;
hideRange = true;
break;
}
@@ -906,7 +906,7 @@ static int32 lMESSAGE_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
const TextId textIdx = (TextId)ctx.stream.readSint16LE();
engine->freezeTime();
- if (engine->_text->showDialogueBubble) {
+ if (engine->_text->_showDialogueBubble) {
engine->_redraw->drawBubble(otherActorIdx);
}
engine->_text->setFontCrossColor(engine->_scene->getActor(otherActorIdx)->talkColor);
@@ -1093,7 +1093,7 @@ static int32 lINVISIBLE(TwinEEngine *engine, LifeScriptContext &ctx) {
static int32 lZOOM(TwinEEngine *engine, LifeScriptContext &ctx) {
int zoomScreen = ctx.stream.readByte();
- if (zoomScreen && !engine->_redraw->_inSceneryView && engine->cfgfile.SceZoom) {
+ if (zoomScreen && !engine->_redraw->_inSceneryView && engine->_cfgfile.SceZoom) {
engine->_screens->fadeToBlack(engine->_screens->_mainPaletteRGBA);
engine->initSceneryView();
engine->_screens->setBackPal();
@@ -1117,9 +1117,9 @@ static int32 lPOS_POINT(TwinEEngine *engine, LifeScriptContext &ctx) {
int32 trackIdx = ctx.stream.readByte();
const IVec3 &sp = engine->_scene->sceneTracks[trackIdx];
- engine->_renderer->destPos.x = sp.x;
- engine->_renderer->destPos.y = sp.y;
- engine->_renderer->destPos.z = sp.z;
+ engine->_renderer->_destPos.x = sp.x;
+ engine->_renderer->_destPos.y = sp.y;
+ engine->_renderer->_destPos.z = sp.z;
ctx.actor->pos.x = sp.x;
ctx.actor->pos.y = sp.y;
@@ -1262,7 +1262,7 @@ static int32 lASK_CHOICE(TwinEEngine *engine, LifeScriptContext &ctx) {
TextId choiceIdx = (TextId)ctx.stream.readSint16LE();
engine->freezeTime();
- if (engine->_text->showDialogueBubble) {
+ if (engine->_text->_showDialogueBubble) {
engine->_redraw->drawBubble(ctx.actorIdx);
}
engine->_text->setFontCrossColor(ctx.actor->talkColor);
@@ -1283,7 +1283,7 @@ static int32 lBIG_MESSAGE(TwinEEngine *engine, LifeScriptContext &ctx) {
engine->freezeTime();
engine->_text->textClipFull();
- if (engine->_text->showDialogueBubble) {
+ if (engine->_text->_showDialogueBubble) {
engine->_redraw->drawBubble(ctx.actorIdx);
}
engine->_text->setFontCrossColor(ctx.actor->talkColor);
@@ -1517,7 +1517,7 @@ static int32 lEXPLODE_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x59
*/
static int32 lBUBBLE_ON(TwinEEngine *engine, LifeScriptContext &ctx) {
- engine->_text->showDialogueBubble = true;
+ engine->_text->_showDialogueBubble = true;
return 0;
}
@@ -1526,7 +1526,7 @@ static int32 lBUBBLE_ON(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x5A
*/
static int32 lBUBBLE_OFF(TwinEEngine *engine, LifeScriptContext &ctx) {
- engine->_text->showDialogueBubble = true; // TODO: this looks wrong - why true and not false?
+ engine->_text->_showDialogueBubble = true; // TODO: this looks wrong - why true and not false?
return 0;
}
@@ -1539,7 +1539,7 @@ static int32 lASK_CHOICE_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
const TextId choiceIdx = (TextId)ctx.stream.readSint16LE();
engine->freezeTime();
- if (engine->_text->showDialogueBubble) {
+ if (engine->_text->_showDialogueBubble) {
engine->_redraw->drawBubble(otherActorIdx);
}
engine->_text->setFontCrossColor(engine->_scene->getActor(otherActorIdx)->talkColor);
@@ -1589,12 +1589,12 @@ static int32 lMESSAGE_SENDELL(TwinEEngine *engine, LifeScriptContext &ctx) {
engine->_screens->loadImage(RESSHQR_TWINSEN_ZOE_SENDELLIMG, RESSHQR_TWINSEN_ZOE_SENDELLPAL);
engine->_text->textClipFull();
engine->_text->setFontCrossColor(COLOR_WHITE);
- engine->_text->drawTextBoxBackground = false;
- const bool tmpFlagDisplayText = engine->cfgfile.FlagDisplayText;
- engine->cfgfile.FlagDisplayText = true;
+ engine->_text->_drawTextBoxBackground = false;
+ const bool tmpFlagDisplayText = engine->_cfgfile.FlagDisplayText;
+ engine->_cfgfile.FlagDisplayText = true;
engine->_text->drawTextProgressive(TextId::kSendell);
- engine->cfgfile.FlagDisplayText = tmpFlagDisplayText;
- engine->_text->drawTextBoxBackground = true;
+ engine->_cfgfile.FlagDisplayText = tmpFlagDisplayText;
+ engine->_text->_drawTextBoxBackground = true;
engine->_text->textClipSmall();
engine->_screens->fadeToBlack(engine->_screens->_paletteRGBACustom);
engine->_screens->clearScreen();
@@ -1641,7 +1641,7 @@ static int32 lGAME_OVER(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x62
*/
static int32 lTHE_END(TwinEEngine *engine, LifeScriptContext &ctx) {
- engine->quitGame = 1;
+ engine->_quitGame = 1;
engine->_gameState->setLeafs(0);
engine->_scene->sceneHero->setLife(kActorMaxLife);
engine->_gameState->setMagicPoints(80);
@@ -1687,7 +1687,7 @@ static int32 lPROJ_ISO(TwinEEngine *engine, LifeScriptContext &ctx) {
*/
static int32 lPROJ_3D(TwinEEngine *engine, LifeScriptContext &ctx) {
// TODO: only used for credits scene? If not, then move the credits related code into the menu->showCredits method
- engine->_screens->copyScreen(engine->frontVideoBuffer, engine->workVideoBuffer);
+ engine->_screens->copyScreen(engine->_frontVideoBuffer, engine->_workVideoBuffer);
engine->_scene->enableGridTileRendering = false;
engine->_renderer->setCameraPosition(engine->width() / 2, engine->height() / 2, 128, 1024, 1024);
@@ -1708,7 +1708,7 @@ static int32 lTEXT(TwinEEngine *engine, LifeScriptContext &ctx) {
const int32 textHeight = 40;
if (lTextYPos < engine->height() - textHeight) {
- if (engine->cfgfile.Version == USA_VERSION) {
+ if (engine->_cfgfile.Version == USA_VERSION) {
// TODO: these are most likely not the menu text ids - but from a different text bank
if (textIdx == TextId::kBehaviourNormal) {
textIdx = TextId::kSaveSettings;
@@ -1750,7 +1750,7 @@ static int32 lCLEAR_TEXT(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x69
*/
static int32 lBRUTAL_EXIT(TwinEEngine *engine, LifeScriptContext &ctx) {
- engine->quitGame = 0;
+ engine->_quitGame = 0;
return 1; // break
}
diff --git a/engines/twine/script/script_move_v1.cpp b/engines/twine/script/script_move_v1.cpp
index a3f5facbfe..b482ca1f0f 100644
--- a/engines/twine/script/script_move_v1.cpp
+++ b/engines/twine/script/script_move_v1.cpp
@@ -117,9 +117,9 @@ static int32 mGOTO_POINT(TwinEEngine *engine, MoveScriptContext &ctx) {
engine->_scene->currentScriptValue = ctx.stream.readByte();
const IVec3 &sp = engine->_scene->sceneTracks[engine->_scene->currentScriptValue];
- engine->_renderer->destPos.x = sp.x;
- engine->_renderer->destPos.y = sp.y;
- engine->_renderer->destPos.z = sp.z;
+ engine->_renderer->_destPos.x = sp.x;
+ engine->_renderer->_destPos.y = sp.y;
+ engine->_renderer->_destPos.z = sp.z;
const int32 newAngle = engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->pos.x, ctx.actor->pos.z, sp.x, sp.z);
@@ -189,9 +189,9 @@ static int32 mPOS_POINT(TwinEEngine *engine, MoveScriptContext &ctx) {
engine->_scene->currentScriptValue = ctx.stream.readByte();
const IVec3 &sp = engine->_scene->sceneTracks[engine->_scene->currentScriptValue];
- engine->_renderer->destPos.x = sp.x;
- engine->_renderer->destPos.y = sp.y;
- engine->_renderer->destPos.z = sp.z;
+ engine->_renderer->_destPos.x = sp.x;
+ engine->_renderer->_destPos.y = sp.y;
+ engine->_renderer->_destPos.z = sp.z;
if (ctx.actor->staticFlags.bIsSpriteActor) {
ctx.actor->speed = 0;
@@ -249,9 +249,9 @@ static int32 mGOTO_SYM_POINT(TwinEEngine *engine, MoveScriptContext &ctx) {
engine->_scene->currentScriptValue = ctx.stream.readByte();
const IVec3 &sp = engine->_scene->sceneTracks[engine->_scene->currentScriptValue];
- engine->_renderer->destPos.x = sp.x;
- engine->_renderer->destPos.y = sp.y;
- engine->_renderer->destPos.z = sp.z;
+ engine->_renderer->_destPos.x = sp.x;
+ engine->_renderer->_destPos.y = sp.y;
+ engine->_renderer->_destPos.z = sp.z;
const int32 newAngle = ANGLE_180 + engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->pos.x, ctx.actor->pos.z, sp.x, sp.z);
@@ -322,9 +322,9 @@ static int32 mGOTO_POINT_3D(TwinEEngine *engine, MoveScriptContext &ctx) {
engine->_scene->currentScriptValue = trackId;
const IVec3 &sp = engine->_scene->sceneTracks[engine->_scene->currentScriptValue];
- engine->_renderer->destPos.x = sp.x;
- engine->_renderer->destPos.y = sp.y;
- engine->_renderer->destPos.z = sp.z;
+ engine->_renderer->_destPos.x = sp.x;
+ engine->_renderer->_destPos.y = sp.y;
+ engine->_renderer->_destPos.z = sp.z;
ctx.actor->angle = engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->pos.x, ctx.actor->pos.z, sp.x, sp.z);
ctx.actor->spriteActorRotation = engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->pos.y, 0, sp.y, engine->_movements->targetActorDistance);
@@ -387,12 +387,12 @@ static int32 mWAIT_NUM_SECOND(TwinEEngine *engine, MoveScriptContext &ctx) {
int32 currentTime = ctx.stream.readSint32LE();
if (currentTime == 0) {
- currentTime = engine->lbaTime + numSeconds * 50;
+ currentTime = engine->_lbaTime + numSeconds * 50;
ctx.stream.rewind(4);
ctx.stream.writeSint32LE(currentTime);
}
- if (engine->lbaTime < currentTime) {
+ if (engine->_lbaTime < currentTime) {
ctx.undo(5);
return 1;
}
diff --git a/engines/twine/text.cpp b/engines/twine/text.cpp
index 8b52a986dd..0260b3521c 100644
--- a/engines/twine/text.cpp
+++ b/engines/twine/text.cpp
@@ -78,7 +78,7 @@ void Text::initVoxBank(TextBankId bankIdx) {
error("bankIdx is out of bounds: %i", (int)bankIdx);
}
// get the correct vox hqr file
- currentVoxBankFile = Common::String::format("%s%s" VOX_EXT, LanguageTypes[_engine->cfgfile.LanguageId].id, LanguageSuffixTypes[(int)bankIdx]);
+ _currentVoxBankFile = Common::String::format("%s%s" VOX_EXT, LanguageTypes[_engine->_cfgfile.LanguageId].id, LanguageSuffixTypes[(int)bankIdx]);
// TODO: loop through other languages and take the scummvm settings regarding voices into account...
// TODO check the rest to reverse
@@ -90,30 +90,30 @@ bool Text::initVoxToPlayTextId(TextId textId) {
}
bool Text::initVoxToPlay(const TextEntry *text) {
- currDialTextEntry = text;
- voxHiddenIndex = 0;
- hasHiddenVox = false;
+ _currDialTextEntry = text;
+ _voxHiddenIndex = 0;
+ _hasHiddenVox = false;
if (text == nullptr) {
return false;
}
- if (!_engine->cfgfile.Voice) {
+ if (!_engine->_cfgfile.Voice) {
debug(3, "Voices are disabled");
return false;
}
- return _engine->_sound->playVoxSample(currDialTextEntry);
+ return _engine->_sound->playVoxSample(_currDialTextEntry);
}
bool Text::playVox(const TextEntry *text) {
- if (!_engine->cfgfile.Voice) {
+ if (!_engine->_cfgfile.Voice) {
return false;
}
if (text == nullptr) {
return false;
}
- if (hasHiddenVox && !_engine->_sound->isSamplePlaying(text->index)) {
+ if (_hasHiddenVox && !_engine->_sound->isSamplePlaying(text->index)) {
_engine->_sound->playVoxSample(text);
return true;
}
@@ -142,7 +142,7 @@ bool Text::stopVox(const TextEntry *text) {
if (!_engine->_sound->isSamplePlaying(text->index)) {
return false;
}
- hasHiddenVox = false;
+ _hasHiddenVox = false;
_engine->_sound->stopSample(text->index);
return true;
}
@@ -162,7 +162,7 @@ void Text::initSceneTextBank() {
}
void Text::drawCharacter(int32 x, int32 y, uint8 character) {
- Common::MemoryReadStream stream(_engine->_resources->fontPtr, _engine->_resources->fontBufSize);
+ Common::MemoryReadStream stream(_engine->_resources->_fontPtr, _engine->_resources->_fontBufSize);
stream.seek(character * 4);
stream.seek(stream.readSint16LE());
/*uint8 charWidth =*/ stream.readByte();
@@ -186,7 +186,7 @@ void Text::drawCharacter(int32 x, int32 y, uint8 character) {
}
const uint8 number = stream.readByte();
tempX += jump;
- uint8* basePtr = (uint8 *)_engine->frontVideoBuffer.getBasePtr(tempX, tempY);
+ uint8* basePtr = (uint8 *)_engine->_frontVideoBuffer.getBasePtr(tempX, tempY);
for (uint8 i = 0; i < number; i++) {
if (tempX >= 0 && tempX < (_engine->width() - 1) && tempY >= 0 && tempY < (_engine->height() - 1)) {
*basePtr = usedColor;
@@ -228,7 +228,7 @@ void Text::drawCharacterShadow(int32 x, int32 y, uint8 character, int32 color, C
void Text::drawText(int32 x, int32 y, const char *dialogue) {
// if the font is not defined
- if (_engine->_resources->fontPtr == nullptr) {
+ if (_engine->_resources->_fontPtr == nullptr) {
return;
}
@@ -274,7 +274,7 @@ int32 Text::getTextSize(const char *dialogue) {
void Text::initDialogueBox() {
_engine->blitWorkToFront(_dialTextBox);
- if (drawTextBoxBackground) {
+ if (_drawTextBoxBackground) {
_engine->_menu->drawBox(_dialTextBox);
Common::Rect rect(_dialTextBox);
rect.grow(-1);
@@ -503,14 +503,14 @@ void Text::fadeInCharacters(int32 counter, int32 fontColor) {
}
int32 Text::getCharWidth(uint8 chr) const {
- Common::MemoryReadStream stream(_engine->_resources->fontPtr, _engine->_resources->fontBufSize);
+ Common::MemoryReadStream stream(_engine->_resources->_fontPtr, _engine->_resources->_fontBufSize);
stream.seek(chr * 4);
stream.seek(stream.readSint16LE());
return stream.readByte();
}
int32 Text::getCharHeight(uint8 chr) const {
- Common::MemoryReadStream stream(_engine->_resources->fontPtr, _engine->_resources->fontBufSize);
+ Common::MemoryReadStream stream(_engine->_resources->_fontPtr, _engine->_resources->_fontBufSize);
stream.seek(chr * 4);
stream.seek(stream.readSint16LE() + 1);
return stream.readByte();
@@ -617,7 +617,7 @@ bool Text::displayText(TextId index, bool showText, bool playVox, bool loop) {
if (_engine->_input->toggleActionIfActive(TwinEActionType::UINextPage)) {
if (textState == ProgressiveTextState::End) {
- stopVox(currDialTextEntry);
+ stopVox(_currDialTextEntry);
break;
}
if (textState == ProgressiveTextState::NextPage) {
@@ -625,27 +625,27 @@ bool Text::displayText(TextId index, bool showText, bool playVox, bool loop) {
}
}
if (_engine->_input->toggleAbortAction() || _engine->shouldQuit()) {
- stopVox(currDialTextEntry);
+ stopVox(_currDialTextEntry);
aborted = true;
break;
}
if (playVox) {
- playVoxSimple(currDialTextEntry);
+ playVoxSimple(_currDialTextEntry);
}
}
}
- while (playVox && playVoxSimple(currDialTextEntry)) {
+ while (playVox && playVoxSimple(_currDialTextEntry)) {
FrameMarker frame(_engine);
_engine->readKeys();
if (_engine->shouldQuit() || _engine->_input->toggleAbortAction()) {
- stopVox(currDialTextEntry);
+ stopVox(_currDialTextEntry);
aborted = true;
break;
}
}
- voxHiddenIndex = 0;
- hasHiddenVox = false;
+ _voxHiddenIndex = 0;
+ _hasHiddenVox = false;
_hasValidTextHandle = false;
_engine->_input->resetHeroActions();
@@ -657,7 +657,7 @@ bool Text::drawTextProgressive(TextId index, bool playVox, bool loop) {
_engine->_interface->saveClip();
_engine->_interface->resetClip();
_engine->saveFrontBuffer();
- const bool aborted = displayText(index, _engine->cfgfile.FlagDisplayText, playVox, loop);
+ const bool aborted = displayText(index, _engine->_cfgfile.FlagDisplayText, playVox, loop);
_engine->_interface->loadClip();
return aborted;
}
@@ -694,7 +694,7 @@ bool Text::getText(TextId index) {
_currDialTextSize = textEntry->string.size();
// RECHECK: this was added for vox playback
- currDialTextEntry = textEntry;
+ _currDialTextEntry = textEntry;
debug(3, "text for bank %i with index %i (currIndex: %i): %s", (int)_currentBankIdx, textEntry->index, (int)textEntry->textIndex, _currDialTextPtr);
return true;
@@ -758,10 +758,10 @@ void Text::drawHolomapLocation(TextId index) {
textClipSmall();
setFontCrossColor(COLOR_WHITE);
_engine->_interface->drawFilledRect(_dialTextBox, COLOR_BLACK);
- const bool displayText = _engine->cfgfile.FlagDisplayText;
- _engine->cfgfile.FlagDisplayText = true;
+ const bool displayText = _engine->_cfgfile.FlagDisplayText;
+ _engine->_cfgfile.FlagDisplayText = true;
drawTextProgressive(index, false, false);
- _engine->cfgfile.FlagDisplayText = displayText;
+ _engine->_cfgfile.FlagDisplayText = displayText;
}
} // namespace TwinE
diff --git a/engines/twine/text.h b/engines/twine/text.h
index e5f643ca27..eaa3439960 100644
--- a/engines/twine/text.h
+++ b/engines/twine/text.h
@@ -172,16 +172,16 @@ public:
// TODO: refactor all this variables and related functions
bool _hasValidTextHandle = false;
// renders a triangle if the next side of the text can get activated
- bool renderTextTriangle = false;
- bool drawTextBoxBackground = false;
- bool hasHiddenVox = false; // printTextVar5
- int32 voxHiddenIndex = 0;
+ bool _renderTextTriangle = false;
+ bool _drawTextBoxBackground = false;
+ bool _hasHiddenVox = false; // printTextVar5
+ int32 _voxHiddenIndex = 0;
// ---
- const TextEntry *currDialTextEntry = nullptr; // ordered entry
- Common::String currentVoxBankFile;
+ const TextEntry *_currDialTextEntry = nullptr; // ordered entry
+ Common::String _currentVoxBankFile;
- bool showDialogueBubble = true;
+ bool _showDialogueBubble = true;
/**
* Initialize dialogue
diff --git a/engines/twine/twine.cpp b/engines/twine/twine.cpp
index 2acb9ff8d7..f12e1683eb 100644
--- a/engines/twine/twine.cpp
+++ b/engines/twine/twine.cpp
@@ -95,11 +95,11 @@ ScopedCursor::~ScopedCursor() {
FrameMarker::FrameMarker(TwinEEngine *engine, uint32 fps) : _engine(engine), _fps(fps) {
_start = g_system->getMillis();
- ++_engine->frameCounter;
+ ++_engine->_frameCounter;
}
FrameMarker::~FrameMarker() {
- _engine->frontVideoBuffer.update();
+ _engine->_frontVideoBuffer.update();
if (_fps == 0) {
return;
}
@@ -119,15 +119,15 @@ TwineScreen::TwineScreen(TwinEEngine *engine) : _engine(engine) {
void TwineScreen::update() {
static int lastFrame = 0;
- if (lastFrame == _engine->frameCounter) {
+ if (lastFrame == _engine->_frameCounter) {
return;
}
- lastFrame = _engine->frameCounter;
+ lastFrame = _engine->_frameCounter;
Super::update();
}
TwinEEngine::TwinEEngine(OSystem *system, Common::Language language, uint32 flags, TwineGameType gameType)
- : Engine(system), _gameType(gameType), _gameLang(language), frontVideoBuffer(this), _gameFlags(flags), _rnd("twine") {
+ : Engine(system), _gameType(gameType), _gameLang(language), _frontVideoBuffer(this), _gameFlags(flags), _rnd("twine") {
// Add default file directories
const Common::FSNode gameDataDir(ConfMan.get("path"));
SearchMan.addSubDirectoryMatching(gameDataDir, "fla");
@@ -215,11 +215,11 @@ TwinEEngine::~TwinEEngine() {
void TwinEEngine::pushMouseCursorVisible() {
++_mouseCursorState;
- if (!cfgfile.Mouse) {
+ if (!_cfgfile.Mouse) {
return;
}
if (_mouseCursorState == 1) {
- CursorMan.showMouse(cfgfile.Mouse);
+ CursorMan.showMouse(_cfgfile.Mouse);
}
}
@@ -286,9 +286,9 @@ Common::Error TwinEEngine::run() {
if (_scene->newHeroPos.x == -1) {
_scene->heroPositionType = ScenePositionType::kNoPosition;
}
- _text->renderTextTriangle = false;
+ _text->_renderTextTriangle = false;
_text->textClipSmall();
- _text->drawTextBoxBackground = true;
+ _text->_drawTextBoxBackground = true;
_state = EngineState::GameLoop;
break;
case EngineState::GameLoop:
@@ -317,9 +317,9 @@ Common::Error TwinEEngine::run() {
}
ConfMan.setBool("combatauto", _actor->autoAggressive);
- ConfMan.setInt("shadow", cfgfile.ShadowMode);
- ConfMan.setBool("scezoom", cfgfile.SceZoom);
- ConfMan.setInt("polygondetails", cfgfile.PolygonDetails);
+ ConfMan.setInt("shadow", _cfgfile.ShadowMode);
+ ConfMan.setBool("scezoom", _cfgfile.SceZoom);
+ ConfMan.setInt("polygondetails", _cfgfile.PolygonDetails);
_sound->stopSamples();
_music->stopTrackMusic();
@@ -376,10 +376,10 @@ void TwinEEngine::autoSave() {
void TwinEEngine::allocVideoMemory(int32 w, int32 h) {
const Graphics::PixelFormat format = Graphics::PixelFormat::createFormatCLUT8();
- imageBuffer.create(ORIGINAL_WIDTH, ORIGINAL_HEIGHT, format); // original lba1 resolution for a lot of images.
+ _imageBuffer.create(ORIGINAL_WIDTH, ORIGINAL_HEIGHT, format); // original lba1 resolution for a lot of images.
- workVideoBuffer.create(w, h, format);
- frontVideoBuffer.create(w, h, format);
+ _workVideoBuffer.create(w, h, format);
+ _frontVideoBuffer.create(w, h, format);
_renderer->init(w, h);
_grid->init(w, h);
}
@@ -413,65 +413,65 @@ void TwinEEngine::initConfigurations() {
// TODO: use existing entries for some of the settings - like volume and so on.
const char *lng = Common::getLanguageDescription(_gameLang);
- cfgfile.LanguageId = getLanguageTypeIndex(lng);
- cfgfile.Voice = ConfGetBoolOrDefault("voice", true);
- cfgfile.FlagDisplayText = ConfGetBoolOrDefault("displaytext", true);
+ _cfgfile.LanguageId = getLanguageTypeIndex(lng);
+ _cfgfile.Voice = ConfGetBoolOrDefault("voice", true);
+ _cfgfile.FlagDisplayText = ConfGetBoolOrDefault("displaytext", true);
const Common::String midiType = ConfGetOrDefault("miditype", "auto");
if (midiType == "None") {
- cfgfile.MidiType = MIDIFILE_NONE;
+ _cfgfile.MidiType = MIDIFILE_NONE;
} else {
Common::File midiHqr;
if (midiHqr.exists(Resources::HQR_MIDI_MI_WIN_FILE)) {
- cfgfile.MidiType = MIDIFILE_WIN;
+ _cfgfile.MidiType = MIDIFILE_WIN;
debug("Use %s for midi", Resources::HQR_MIDI_MI_WIN_FILE);
} else if (midiHqr.exists(Resources::HQR_MIDI_MI_DOS_FILE)) {
- cfgfile.MidiType = MIDIFILE_DOS;
+ _cfgfile.MidiType = MIDIFILE_DOS;
debug("Use %s for midi", Resources::HQR_MIDI_MI_DOS_FILE);
} else {
- cfgfile.MidiType = MIDIFILE_NONE;
+ _cfgfile.MidiType = MIDIFILE_NONE;
debug("Could not find midi hqr file");
}
}
if (_gameFlags & TwineFeatureFlags::TF_VERSION_EUROPE) {
- cfgfile.Version = EUROPE_VERSION;
+ _cfgfile.Version = EUROPE_VERSION;
} else if (_gameFlags & TwineFeatureFlags::TF_VERSION_USA) {
- cfgfile.Version = USA_VERSION;
+ _cfgfile.Version = USA_VERSION;
} else if (_gameFlags & TwineFeatureFlags::TF_VERSION_CUSTOM) {
- cfgfile.Version = MODIFICATION_VERSION;
+ _cfgfile.Version = MODIFICATION_VERSION;
}
if (_gameFlags & TwineFeatureFlags::TF_USE_GIF) {
- cfgfile.Movie = CONF_MOVIE_FLAGIF;
+ _cfgfile.Movie = CONF_MOVIE_FLAGIF;
}
- cfgfile.UseCD = ConfGetBoolOrDefault("usecd", false);
- cfgfile.Sound = ConfGetBoolOrDefault("sound", true);
- cfgfile.Fps = ConfGetIntOrDefault("fps", DEFAULT_FRAMES_PER_SECOND);
- cfgfile.Debug = ConfGetBoolOrDefault("debug", false);
- cfgfile.Mouse = ConfGetIntOrDefault("mouse", true);
+ _cfgfile.UseCD = ConfGetBoolOrDefault("usecd", false);
+ _cfgfile.Sound = ConfGetBoolOrDefault("sound", true);
+ _cfgfile.Fps = ConfGetIntOrDefault("fps", DEFAULT_FRAMES_PER_SECOND);
+ _cfgfile.Debug = ConfGetBoolOrDefault("debug", false);
+ _cfgfile.Mouse = ConfGetIntOrDefault("mouse", true);
- cfgfile.UseAutoSaving = ConfGetBoolOrDefault("useautosaving", false);
- cfgfile.CrossFade = ConfGetBoolOrDefault("crossfade", false);
- cfgfile.WallCollision = ConfGetBoolOrDefault("wallcollision", false);
+ _cfgfile.UseAutoSaving = ConfGetBoolOrDefault("useautosaving", false);
+ _cfgfile.CrossFade = ConfGetBoolOrDefault("crossfade", false);
+ _cfgfile.WallCollision = ConfGetBoolOrDefault("wallcollision", false);
_actor->autoAggressive = ConfGetBoolOrDefault("combatauto", true);
- cfgfile.ShadowMode = ConfGetIntOrDefault("shadow", 2);
- cfgfile.SceZoom = ConfGetBoolOrDefault("scezoom", false);
- cfgfile.PolygonDetails = ConfGetIntOrDefault("polygondetails", 2);
-
- debug(1, "UseCD: %s", (cfgfile.UseCD ? "true" : "false"));
- debug(1, "Sound: %s", (cfgfile.Sound ? "true" : "false"));
- debug(1, "Movie: %i", cfgfile.Movie);
- debug(1, "Fps: %i", cfgfile.Fps);
- debug(1, "Debug: %s", (cfgfile.Debug ? "true" : "false"));
- debug(1, "UseAutoSaving: %s", (cfgfile.UseAutoSaving ? "true" : "false"));
- debug(1, "CrossFade: %s", (cfgfile.CrossFade ? "true" : "false"));
- debug(1, "WallCollision: %s", (cfgfile.WallCollision ? "true" : "false"));
+ _cfgfile.ShadowMode = ConfGetIntOrDefault("shadow", 2);
+ _cfgfile.SceZoom = ConfGetBoolOrDefault("scezoom", false);
+ _cfgfile.PolygonDetails = ConfGetIntOrDefault("polygondetails", 2);
+
+ debug(1, "UseCD: %s", (_cfgfile.UseCD ? "true" : "false"));
+ debug(1, "Sound: %s", (_cfgfile.Sound ? "true" : "false"));
+ debug(1, "Movie: %i", _cfgfile.Movie);
+ debug(1, "Fps: %i", _cfgfile.Fps);
+ debug(1, "Debug: %s", (_cfgfile.Debug ? "true" : "false"));
+ debug(1, "UseAutoSaving: %s", (_cfgfile.UseAutoSaving ? "true" : "false"));
+ debug(1, "CrossFade: %s", (_cfgfile.CrossFade ? "true" : "false"));
+ debug(1, "WallCollision: %s", (_cfgfile.WallCollision ? "true" : "false"));
debug(1, "AutoAggressive: %s", (_actor->autoAggressive ? "true" : "false"));
- debug(1, "ShadowMode: %i", cfgfile.ShadowMode);
- debug(1, "PolygonDetails: %i", cfgfile.PolygonDetails);
- debug(1, "SceZoom: %s", (cfgfile.SceZoom ? "true" : "false"));
+ debug(1, "ShadowMode: %i", _cfgfile.ShadowMode);
+ debug(1, "PolygonDetails: %i", _cfgfile.PolygonDetails);
+ debug(1, "SceZoom: %s", (_cfgfile.SceZoom ? "true" : "false"));
}
void TwinEEngine::queueMovie(const char *filename) {
@@ -490,21 +490,21 @@ void TwinEEngine::initEngine() {
abort |= _screens->adelineLogo();
// verify game version screens
- if (!abort && cfgfile.Version == EUROPE_VERSION) {
+ if (!abort && _cfgfile.Version == EUROPE_VERSION) {
// Little Big Adventure screen
abort |= _screens->loadImageDelay(RESSHQR_LBAIMG, RESSHQR_LBAPAL, 3);
if (!abort) {
// Electronic Arts Logo
abort |= _screens->loadImageDelay(RESSHQR_EAIMG, RESSHQR_EAPAL, 2);
}
- } else if (!abort && cfgfile.Version == USA_VERSION) {
+ } else if (!abort && _cfgfile.Version == USA_VERSION) {
// Relentless screen
abort |= _screens->loadImageDelay(RESSHQR_RELLENTIMG, RESSHQR_RELLENTPAL, 3);
if (!abort) {
// Electronic Arts Logo
abort |= _screens->loadImageDelay(RESSHQR_EAIMG, RESSHQR_EAPAL, 2);
}
- } else if (!abort && cfgfile.Version == MODIFICATION_VERSION) {
+ } else if (!abort && _cfgfile.Version == MODIFICATION_VERSION) {
// Modification screen
abort |= _screens->loadImageDelay(RESSHQR_RELLENTIMG, RESSHQR_RELLENTPAL, 2);
}
@@ -550,7 +550,7 @@ int TwinEEngine::getRandomNumber(uint max) {
void TwinEEngine::freezeTime() {
if (!_isTimeFreezed) {
- _saveFreezedTime = lbaTime;
+ _saveFreezedTime = _lbaTime;
_pauseToken = pauseEngine();
}
_isTimeFreezed++;
@@ -559,7 +559,7 @@ void TwinEEngine::freezeTime() {
void TwinEEngine::unfreezeTime() {
--_isTimeFreezed;
if (_isTimeFreezed == 0) {
- lbaTime = _saveFreezedTime;
+ _lbaTime = _saveFreezedTime;
_pauseToken.clear();
}
}
@@ -574,15 +574,15 @@ void TwinEEngine::processBookOfBu() {
_screens->fadeToBlack(_screens->_paletteRGBA);
_screens->loadImage(RESSHQR_INTROSCREEN1IMG, RESSHQR_INTROSCREEN1PAL);
_text->initTextBank(TextBankId::Inventory_Intro_and_Holomap);
- _text->drawTextBoxBackground = false;
+ _text->_drawTextBoxBackground = false;
_text->textClipFull();
_text->setFontCrossColor(COLOR_WHITE);
- const bool tmpFlagDisplayText = cfgfile.FlagDisplayText;
- cfgfile.FlagDisplayText = true;
+ const bool tmpFlagDisplayText = _cfgfile.FlagDisplayText;
+ _cfgfile.FlagDisplayText = true;
_text->drawTextProgressive(TextId::kBookOfBu);
- cfgfile.FlagDisplayText = tmpFlagDisplayText;
+ _cfgfile.FlagDisplayText = tmpFlagDisplayText;
_text->textClipSmall();
- _text->drawTextBoxBackground = true;
+ _text->_drawTextBoxBackground = true;
_text->initSceneTextBank();
_screens->fadeToBlack(_screens->_paletteRGBACustom);
_screens->clearScreen();
@@ -594,10 +594,10 @@ void TwinEEngine::processBonusList() {
_text->initTextBank(TextBankId::Inventory_Intro_and_Holomap);
_text->textClipFull();
_text->setFontCrossColor(COLOR_WHITE);
- const bool tmpFlagDisplayText = cfgfile.FlagDisplayText;
- cfgfile.FlagDisplayText = true;
+ const bool tmpFlagDisplayText = _cfgfile.FlagDisplayText;
+ _cfgfile.FlagDisplayText = true;
_text->drawTextProgressive(TextId::kBonusList);
- cfgfile.FlagDisplayText = tmpFlagDisplayText;
+ _cfgfile.FlagDisplayText = tmpFlagDisplayText;
_text->textClipSmall();
_text->initSceneTextBank();
}
@@ -607,7 +607,7 @@ void TwinEEngine::processInventoryAction() {
exitSceneryView();
_menu->processInventoryMenu();
- switch (loopInventoryItem) {
+ switch (_loopInventoryItem) {
case kiHolomap:
_holomap->processHolomap();
_screens->_lockPalette = true;
@@ -649,9 +649,9 @@ void TwinEEngine::processInventoryAction() {
case kiPinguin: {
ActorStruct *pinguin = _scene->getActor(_scene->mecaPinguinIdx);
- pinguin->pos.x = _renderer->destPos.x + _scene->sceneHero->pos.x;
+ pinguin->pos.x = _renderer->_destPos.x + _scene->sceneHero->pos.x;
pinguin->pos.y = _scene->sceneHero->pos.y;
- pinguin->pos.z = _renderer->destPos.z + _scene->sceneHero->pos.z;
+ pinguin->pos.z = _renderer->_destPos.z + _scene->sceneHero->pos.z;
pinguin->angle = _scene->sceneHero->angle;
_movements->rotateActor(0, 800, pinguin->angle);
@@ -664,7 +664,7 @@ void TwinEEngine::processInventoryAction() {
pinguin->setBrickShape(ShapeType::kNone);
_movements->moveActor(pinguin->angle, pinguin->angle, pinguin->speed, &pinguin->move);
_gameState->removeItem(InventoryItems::kiPinguin); // byte_50D89 = 0;
- pinguin->delayInMillis = lbaTime + 1500;
+ pinguin->delayInMillis = _lbaTime + 1500;
}
break;
}
@@ -742,7 +742,7 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
if (giveUp == 1) {
unfreezeTime();
_redraw->redrawEngineActions(true);
- quitGame = 0;
+ _quitGame = 0;
return 0;
}
unfreezeTime();
@@ -754,7 +754,7 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
}
// inventory menu
- loopInventoryItem = -1;
+ _loopInventoryItem = -1;
if (_input->isActionActive(TwinEActionType::InventoryMenu) && _scene->sceneHero->entity != -1 && _scene->sceneHero->controlMode == ControlMode::kManual) {
processInventoryAction();
}
@@ -807,7 +807,7 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
}
// Recenter Screen
- if (_input->toggleActionIfActive(TwinEActionType::RecenterScreenOnTwinsen) && !disableScreenRecenter) {
+ if (_input->toggleActionIfActive(TwinEActionType::RecenterScreenOnTwinsen) && !_disableScreenRecenter) {
const ActorStruct *currentlyFollowedActor = _scene->getActor(_scene->currentlyFollowedActor);
_grid->centerOnActor(currentlyFollowedActor);
}
@@ -847,13 +847,13 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
}
}
- loopActorStep = _loopMovePtr.getRealValue(lbaTime);
- if (!loopActorStep) {
- loopActorStep = 1;
+ _loopActorStep = _loopMovePtr.getRealValue(_lbaTime);
+ if (!_loopActorStep) {
+ _loopActorStep = 1;
}
_movements->setActorAngle(ANGLE_0, -ANGLE_90, ANGLE_1, &_loopMovePtr);
- disableScreenRecenter = false;
+ _disableScreenRecenter = false;
_scene->processEnvironmentSound();
@@ -908,8 +908,8 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
processActorSamplePosition(a);
- if (quitGame != -1) {
- return quitGame;
+ if (_quitGame != -1) {
+ return _quitGame;
}
if (actor->staticFlags.bCanDrown) {
@@ -923,12 +923,12 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
if (!_actor->cropBottomScreen) {
_animations->initAnim(AnimationTypes::kDrawn, AnimType::kAnimationType_4, AnimationTypes::kStanding, 0);
_renderer->projectPositionOnScreen(actor->pos - _grid->camera);
- _actor->cropBottomScreen = _renderer->projPos.y;
+ _actor->cropBottomScreen = _renderer->_projPos.y;
}
_renderer->projectPositionOnScreen(actor->pos - _grid->camera);
actor->controlMode = ControlMode::kNoMove;
actor->setLife(-1);
- _actor->cropBottomScreen = _renderer->projPos.y;
+ _actor->cropBottomScreen = _renderer->_projPos.y;
actor->staticFlags.bCanDrown |= 0x10; // TODO: doesn't make sense
}
} else {
@@ -980,7 +980,7 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
autoSave();
_gameState->processGameoverAnimation();
- quitGame = 0;
+ _quitGame = 0;
return 0;
}
}
@@ -1019,16 +1019,16 @@ bool TwinEEngine::gameEngineLoop() {
_screens->_lockPalette = true;
_movements->setActorAngle(ANGLE_0, -ANGLE_90, ANGLE_1, &_loopMovePtr);
- while (quitGame == -1) {
+ while (_quitGame == -1) {
uint32 start = g_system->getMillis();
- while (g_system->getMillis() < start + cfgfile.Fps) {
+ while (g_system->getMillis() < start + _cfgfile.Fps) {
if (runGameEngine()) {
return true;
}
g_system->delayMillis(1);
}
- lbaTime++;
+ _lbaTime++;
if (shouldQuit()) {
break;
}
@@ -1055,19 +1055,19 @@ bool TwinEEngine::delaySkip(uint32 time) {
}
void TwinEEngine::saveFrontBuffer() {
- _screens->copyScreen(frontVideoBuffer, workVideoBuffer);
+ _screens->copyScreen(_frontVideoBuffer, _workVideoBuffer);
}
void TwinEEngine::restoreFrontBuffer() {
- _screens->copyScreen(workVideoBuffer, frontVideoBuffer);
+ _screens->copyScreen(_workVideoBuffer, _frontVideoBuffer);
}
void TwinEEngine::blitWorkToFront(const Common::Rect &rect) {
- _interface->blitBox(rect, workVideoBuffer, frontVideoBuffer);
+ _interface->blitBox(rect, _workVideoBuffer, _frontVideoBuffer);
}
void TwinEEngine::blitFrontToWork(const Common::Rect &rect) {
- _interface->blitBox(rect, frontVideoBuffer, workVideoBuffer);
+ _interface->blitBox(rect, _frontVideoBuffer, _workVideoBuffer);
}
void TwinEEngine::setPalette(const uint32 *palette) {
@@ -1085,7 +1085,7 @@ void TwinEEngine::setPalette(const uint32 *palette) {
}
void TwinEEngine::setPalette(uint startColor, uint numColors, const byte *palette) {
- frontVideoBuffer.setPalette(palette, startColor, numColors);
+ _frontVideoBuffer.setPalette(palette, startColor, numColors);
}
void TwinEEngine::copyBlockPhys(const Common::Rect &rect) {
@@ -1106,7 +1106,7 @@ void TwinEEngine::copyBlockPhys(int32 left, int32 top, int32 right, int32 bottom
if (width <= 0 || height <= 0) {
return;
}
- frontVideoBuffer.addDirtyRect(Common::Rect(left, top, right, bottom));
+ _frontVideoBuffer.addDirtyRect(Common::Rect(left, top, right, bottom));
}
void TwinEEngine::crossFade(const uint32 *palette) {
@@ -1116,24 +1116,24 @@ void TwinEEngine::crossFade(const uint32 *palette) {
Graphics::ManagedSurface surfaceTable;
Graphics::PixelFormat fmt(4, 8, 8, 8, 8, 24, 16, 8, 0);
- backupSurface.create(frontVideoBuffer.w, frontVideoBuffer.h, fmt);
- newSurface.create(frontVideoBuffer.w, frontVideoBuffer.h, fmt);
- tempSurface.create(frontVideoBuffer.w, frontVideoBuffer.h, Graphics::PixelFormat::createFormatCLUT8());
+ backupSurface.create(_frontVideoBuffer.w, _frontVideoBuffer.h, fmt);
+ newSurface.create(_frontVideoBuffer.w, _frontVideoBuffer.h, fmt);
+ tempSurface.create(_frontVideoBuffer.w, _frontVideoBuffer.h, Graphics::PixelFormat::createFormatCLUT8());
tempSurface.setPalette(palette, 0, NUMOFCOLORS);
- surfaceTable.create(frontVideoBuffer.w, frontVideoBuffer.h, fmt);
+ surfaceTable.create(_frontVideoBuffer.w, _frontVideoBuffer.h, fmt);
- backupSurface.transBlitFrom(frontVideoBuffer);
+ backupSurface.transBlitFrom(_frontVideoBuffer);
newSurface.transBlitFrom(tempSurface);
for (int32 i = 0; i < 8; i++) {
surfaceTable.blitFrom(backupSurface);
surfaceTable.transBlitFrom(newSurface, 0, false, 0, i * NUMOFCOLORS / 8);
- frontVideoBuffer.blitFrom(surfaceTable);
+ _frontVideoBuffer.blitFrom(surfaceTable);
delaySkip(50);
}
- frontVideoBuffer.blitFrom(newSurface);
+ _frontVideoBuffer.blitFrom(newSurface);
backupSurface.free();
newSurface.free();
@@ -1150,9 +1150,9 @@ void TwinEEngine::drawText(int32 x, int32 y, const Common::String &text, bool ce
if (!font) {
return;
}
- font->drawString(&frontVideoBuffer, text,
+ font->drawString(&_frontVideoBuffer, text,
x, y, width,
- frontVideoBuffer.format.RGBToColor(255, 255, 255),
+ _frontVideoBuffer.format.RGBToColor(255, 255, 255),
center ? Graphics::kTextAlignCenter : Graphics::kTextAlignLeft, 0, true);
}
diff --git a/engines/twine/twine.h b/engines/twine/twine.h
index f763942bf7..713665e054 100644
--- a/engines/twine/twine.h
+++ b/engines/twine/twine.h
@@ -277,9 +277,24 @@ public:
/** Configuration file structure
* Contains all the data used in the engine to configurated the game in particulary ways. */
- ConfigFile cfgfile;
+ ConfigFile _cfgfile;
- int32 frameCounter = 0;
+ int32 _frameCounter = 0;
+ int32 _quitGame = 0;
+ int32 _lbaTime = 0;
+
+ int32 _loopInventoryItem = 0;
+ int32 _loopActorStep = 0;
+ uint32 _gameFlags;
+
+ /** Disable screen recenter */
+ bool _disableScreenRecenter = false;
+
+ Graphics::ManagedSurface _imageBuffer;
+ /** Work video buffer */
+ Graphics::ManagedSurface _workVideoBuffer;
+ /** Main game video buffer */
+ TwineScreen _frontVideoBuffer;
int width() const;
int height() const;
@@ -295,26 +310,12 @@ public:
* @return A random value between [0-max)
*/
int getRandomNumber(uint max = 0x7FFF);
- int32 quitGame = 0;
- int32 lbaTime = 0;
-
- Graphics::ManagedSurface imageBuffer;
- /** Work video buffer */
- Graphics::ManagedSurface workVideoBuffer;
- /** Main game video buffer */
- TwineScreen frontVideoBuffer;
void blitWorkToFront(const Common::Rect &rect);
void blitFrontToWork(const Common::Rect &rect);
void restoreFrontBuffer();
void saveFrontBuffer();
- int32 loopInventoryItem = 0;
- int32 loopActorStep = 0;
-
- /** Disable screen recenter */
- bool disableScreenRecenter = false;
-
void freezeTime();
void unfreezeTime();
@@ -324,8 +325,6 @@ public:
*/
bool gameEngineLoop();
- uint32 _gameFlags;
-
/**
* Deplay certain seconds till proceed - Can also Skip this delay
* @param time time in milliseconds to delay
@@ -375,15 +374,15 @@ public:
};
inline int TwinEEngine::width() const {
- return frontVideoBuffer.w;
+ return _frontVideoBuffer.w;
}
inline int TwinEEngine::height() const {
- return frontVideoBuffer.h;
+ return _frontVideoBuffer.h;
}
inline Common::Rect TwinEEngine::rect() const {
- return Common::Rect(0, 0, frontVideoBuffer.w - 1, frontVideoBuffer.h - 1);
+ return Common::Rect(0, 0, _frontVideoBuffer.w - 1, _frontVideoBuffer.h - 1);
}
} // namespace TwinE
Commit: b08bc2ccf6f471ca1f061ed86d2d8a6fd06c83c4
https://github.com/scummvm/scummvm/commit/b08bc2ccf6f471ca1f061ed86d2d8a6fd06c83c4
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-07-31T16:48:23+02:00
Commit Message:
TWINE: reduced visibility of member
Changed paths:
engines/twine/holomap.cpp
engines/twine/renderer/renderer.h
diff --git a/engines/twine/holomap.cpp b/engines/twine/holomap.cpp
index 0803dc9962..7bb158686a 100644
--- a/engines/twine/holomap.cpp
+++ b/engines/twine/holomap.cpp
@@ -424,9 +424,7 @@ void Holomap::renderLocations(int xRot, int yRot, int zRot, bool lower) {
int32 zpos2 = _engine->_renderer->_destPos.z;
_engine->_renderer->setBaseRotation(xRot, yRot, zRot, true);
int32 zpos1_copy = zpos1;
- _engine->_renderer->_baseRotPos.x = 0;
- _engine->_renderer->_baseRotPos.y = 0;
- _engine->_renderer->_baseRotPos.z = 9500;
+ _engine->_renderer->setBaseRotationPos(0, 0, 9500);
_engine->_renderer->getBaseRotationPosition(xpos1, ypos1, zpos1);
int32 zpos1_copy2 = _engine->_renderer->_destPos.z;
_engine->_renderer->getBaseRotationPosition(xpos2, ypos2, zpos2);
@@ -579,9 +577,7 @@ void Holomap::processHolomap() {
_engine->_renderer->setLightVector(xRot, yRot, 0);
renderLocations(xRot, yRot, 0, false);
_engine->_renderer->setBaseRotation(xRot, yRot, 0, true);
- _engine->_renderer->_baseRotPos.x = 0;
- _engine->_renderer->_baseRotPos.y = 0;
- _engine->_renderer->_baseRotPos.z = 9500;
+ _engine->_renderer->setBaseRotationPos(0, 0, 9500);
renderHolomapSurfacePolygons();
renderLocations(xRot, yRot, 0, true);
drawHolomapText(_engine->width() / 2, 25, "HoloMap");
diff --git a/engines/twine/renderer/renderer.h b/engines/twine/renderer/renderer.h
index e95b3186f0..96c899e6bf 100644
--- a/engines/twine/renderer/renderer.h
+++ b/engines/twine/renderer/renderer.h
@@ -156,6 +156,7 @@ private:
IMatrix3x3 _matricesTable[30 + 1];
IMatrix3x3 _shadeMatrix;
IVec3 _lightPos;
+ IVec3 _baseRotPos;
RenderCommand _renderCmds[1000];
/**
@@ -209,8 +210,8 @@ public:
IVec3 _projPosScreen;
IVec3 _projPos;
- IVec3 _baseRotPos;
IVec3 _destPos;
+ void setBaseRotationPos(int32 x, int32 y, int32 z);
IVec3 getHolomapRotation(const int32 angleX, const int32 angleY, const int32 angleZ) const;
void setLightVector(int32 angleX, int32 angleY, int32 angleZ);
@@ -250,6 +251,12 @@ public:
void renderHolomapVertices(const Vertex vertexCoordinates[3], const Vertex vertexAngles[3]);
};
+inline void Renderer::setBaseRotationPos(int32 x, int32 y, int32 z) {
+ _baseRotPos.x = x;
+ _baseRotPos.y = y;
+ _baseRotPos.z = z;
+}
+
} // namespace TwinE
#endif
Commit: 91fe6927c93713ee7fe82ba0c764d86df8c2eb10
https://github.com/scummvm/scummvm/commit/91fe6927c93713ee7fe82ba0c764d86df8c2eb10
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-07-31T16:48:23+02:00
Commit Message:
TWINE: made _projPosScreen private in Redraw
Changed paths:
engines/twine/renderer/redraw.cpp
engines/twine/renderer/redraw.h
engines/twine/renderer/renderer.h
engines/twine/scene/grid.cpp
engines/twine/scene/scene.cpp
engines/twine/scene/scene.h
engines/twine/script/script_life_v1.cpp
diff --git a/engines/twine/renderer/redraw.cpp b/engines/twine/renderer/redraw.cpp
index dcef6ba2b7..922589a650 100644
--- a/engines/twine/renderer/redraw.cpp
+++ b/engines/twine/renderer/redraw.cpp
@@ -398,7 +398,7 @@ void Redraw::processDrawListActorSprites(const DrawListStruct &drawCmd, bool bgR
renderRect.bottom = renderRect.top + spriteHeight;
if (actor->staticFlags.bUsesClipping) {
- const Common::Rect rect(_engine->_renderer->_projPosScreen.x + actor->cropLeft, _engine->_renderer->_projPosScreen.y + actor->cropTop, _engine->_renderer->_projPosScreen.x + actor->cropRight, _engine->_renderer->_projPosScreen.y + actor->cropBottom);
+ const Common::Rect rect(_projPosScreen.x + actor->cropLeft, _projPosScreen.y + actor->cropTop, _projPosScreen.x + actor->cropRight, _projPosScreen.y + actor->cropBottom);
_engine->_interface->setClip(rect);
} else {
_engine->_interface->setClip(renderRect);
@@ -644,8 +644,8 @@ void Redraw::renderOverlays() {
}
void Redraw::redrawEngineActions(bool bgRedraw) {
- int32 tmp_projPosX = _engine->_renderer->_projPosScreen.x;
- int32 tmp_projPosY = _engine->_renderer->_projPosScreen.y;
+ int32 tmp_projPosX = _projPosScreen.x;
+ int32 tmp_projPosY = _projPosScreen.y;
_engine->_interface->resetClip();
@@ -656,7 +656,10 @@ void Redraw::redrawEngineActions(bool bgRedraw) {
}
_engine->_screens->clearScreen();
_engine->_grid->redrawGrid();
- updateOverlayTypePosition(tmp_projPosX, tmp_projPosY, _engine->_renderer->_projPosScreen.x, _engine->_renderer->_projPosScreen.y);
+ _projPosScreen.x = _engine->_renderer->_projPos.x;
+ _projPosScreen.y = _engine->_renderer->_projPos.y;
+
+ updateOverlayTypePosition(tmp_projPosX, tmp_projPosY, _projPosScreen.x, _projPosScreen.y);
_engine->saveFrontBuffer();
if (_engine->_scene->needChangeScene != SCENE_CEILING_GRID_FADE_1 && _engine->_scene->needChangeScene != SCENE_CEILING_GRID_FADE_2) {
diff --git a/engines/twine/renderer/redraw.h b/engines/twine/renderer/redraw.h
index ad5138acb4..37a0bccfaf 100644
--- a/engines/twine/renderer/redraw.h
+++ b/engines/twine/renderer/redraw.h
@@ -95,6 +95,8 @@ private:
int32 _bubbleActor = -1;
int32 _bubbleSpriteIndex = SPRITEHQR_DIAG_BUBBLE_LEFT;
+ IVec3 _projPosScreen;
+
/**
* Add a certain region to the current redraw list array
* @param redrawArea redraw the region
diff --git a/engines/twine/renderer/renderer.h b/engines/twine/renderer/renderer.h
index 96c899e6bf..c8005a95d6 100644
--- a/engines/twine/renderer/renderer.h
+++ b/engines/twine/renderer/renderer.h
@@ -208,7 +208,6 @@ public:
void init(int32 w, int32 h);
- IVec3 _projPosScreen;
IVec3 _projPos;
IVec3 _destPos;
void setBaseRotationPos(int32 x, int32 y, int32 z);
diff --git a/engines/twine/scene/grid.cpp b/engines/twine/scene/grid.cpp
index 368a786f86..b8655e1d4b 100644
--- a/engines/twine/scene/grid.cpp
+++ b/engines/twine/scene/grid.cpp
@@ -681,12 +681,9 @@ void Grid::redrawGrid() {
_engine->_renderer->projectPositionOnScreen(-camera.x, -camera.y, -camera.z);
- _engine->_renderer->_projPosScreen.x = _engine->_renderer->_projPos.x;
- _engine->_renderer->_projPosScreen.y = _engine->_renderer->_projPos.y;
-
memset(_brickInfoBuffer, 0, _brickInfoBufferSize);
- if (!_engine->_scene->enableGridTileRendering) {
+ if (!_engine->_scene->_enableGridTileRendering) {
return;
}
diff --git a/engines/twine/scene/scene.cpp b/engines/twine/scene/scene.cpp
index 7ffa40a8e1..51ebaac34b 100644
--- a/engines/twine/scene/scene.cpp
+++ b/engines/twine/scene/scene.cpp
@@ -561,7 +561,7 @@ void Scene::changeScene() {
_engine->_screens->_lockPalette = false;
needChangeScene = SCENE_CEILING_GRID_FADE_1;
- enableGridTileRendering = true;
+ _enableGridTileRendering = true;
_engine->_renderer->setLightVector(alphaLight, betaLight, ANGLE_0);
diff --git a/engines/twine/scene/scene.h b/engines/twine/scene/scene.h
index 75cf4b0891..dc555ce02d 100644
--- a/engines/twine/scene/scene.h
+++ b/engines/twine/scene/scene.h
@@ -212,7 +212,7 @@ public:
int32 sceneNumTracks = 0;
IVec3 sceneTracks[NUM_MAX_TRACKS];
- bool enableGridTileRendering = true;
+ bool _enableGridTileRendering = true;
uint8 sceneFlags[NUM_SCENES_FLAGS]{0}; // cubeFlags
diff --git a/engines/twine/script/script_life_v1.cpp b/engines/twine/script/script_life_v1.cpp
index 907e883853..ad0f9ed41f 100644
--- a/engines/twine/script/script_life_v1.cpp
+++ b/engines/twine/script/script_life_v1.cpp
@@ -1688,7 +1688,7 @@ static int32 lPROJ_ISO(TwinEEngine *engine, LifeScriptContext &ctx) {
static int32 lPROJ_3D(TwinEEngine *engine, LifeScriptContext &ctx) {
// TODO: only used for credits scene? If not, then move the credits related code into the menu->showCredits method
engine->_screens->copyScreen(engine->_frontVideoBuffer, engine->_workVideoBuffer);
- engine->_scene->enableGridTileRendering = false;
+ engine->_scene->_enableGridTileRendering = false;
engine->_renderer->setCameraPosition(engine->width() / 2, engine->height() / 2, 128, 1024, 1024);
engine->_renderer->setCameraAngle(0, 1500, 0, 25, -128, 0, 13000);
Commit: fc75e5709ec56c2c9398fbb27070c89f648f8eba
https://github.com/scummvm/scummvm/commit/fc75e5709ec56c2c9398fbb27070c89f648f8eba
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-07-31T16:48:23+02:00
Commit Message:
TWINE: renamed members
Changed paths:
engines/twine/audio/sound.cpp
engines/twine/debugger/console.cpp
engines/twine/debugger/debug_grid.cpp
engines/twine/debugger/debug_scene.cpp
engines/twine/holomap.cpp
engines/twine/menu/menu.cpp
engines/twine/menu/menuoptions.cpp
engines/twine/renderer/redraw.cpp
engines/twine/renderer/renderer.h
engines/twine/scene/actor.cpp
engines/twine/scene/animations.cpp
engines/twine/scene/collision.cpp
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/scene/scene.cpp
engines/twine/scene/scene.h
engines/twine/script/script_life_v1.cpp
engines/twine/script/script_move_v1.cpp
engines/twine/text.cpp
engines/twine/twine.cpp
diff --git a/engines/twine/audio/sound.cpp b/engines/twine/audio/sound.cpp
index c5266e14ba..1cdef5258e 100644
--- a/engines/twine/audio/sound.cpp
+++ b/engines/twine/audio/sound.cpp
@@ -51,9 +51,9 @@ void Sound::setSamplePosition(int32 channelIdx, int32 x, int32 y, int32 z) {
if (channelIdx < 0 || channelIdx >= NUM_CHANNELS) {
return;
}
- const int32 camX = _engine->_grid->newCamera.x * BRICK_SIZE;
- const int32 camY = _engine->_grid->newCamera.y * BRICK_HEIGHT;
- const int32 camZ = _engine->_grid->newCamera.z * BRICK_SIZE;
+ const int32 camX = _engine->_grid->_newCamera.x * BRICK_SIZE;
+ const int32 camY = _engine->_grid->_newCamera.y * BRICK_HEIGHT;
+ const int32 camZ = _engine->_grid->_newCamera.z * BRICK_SIZE;
int32 distance = _engine->_movements->getDistance3D(camX, camY, camZ, x, y, z);
distance = _engine->_collision->getAverageValue(0, distance, 10000, 255);
const byte targetVolume = CLIP<byte>(255 - distance, 0, 255);
diff --git a/engines/twine/debugger/console.cpp b/engines/twine/debugger/console.cpp
index 9ef064df70..ea3d52291f 100644
--- a/engines/twine/debugger/console.cpp
+++ b/engines/twine/debugger/console.cpp
@@ -172,7 +172,7 @@ bool TwinEConsole::doSetHolomapTrajectory(int argc, const char **argv) {
debugPrintf("Expected to get a holomap trajectory index as parameter\n");
return true;
}
- _engine->_scene->holomapTrajectory = atoi(argv[1]);
+ _engine->_scene->_holomapTrajectory = atoi(argv[1]);
_engine->_scene->reloadCurrentScene();
return false;
}
@@ -318,7 +318,7 @@ bool TwinEConsole::doListMenuText(int argc, const char **argv) {
}
bool TwinEConsole::doSetHeroPosition(int argc, const char **argv) {
- IVec3 &pos = _engine->_scene->sceneHero->pos;
+ IVec3 &pos = _engine->_scene->_sceneHero->pos;
if (argc < 4) {
debugPrintf("Current hero position: %i:%i:%i\n", pos.x, pos.y, pos.z);
return true;
@@ -348,7 +348,7 @@ bool TwinEConsole::doChangeScene(int argc, const char **argv) {
debugPrintf("Scene index out of bounds\n");
return true;
}
- _engine->_scene->needChangeScene = atoi(argv[1]);
+ _engine->_scene->_needChangeScene = atoi(argv[1]);
_engine->_scene->changeScene();
return true;
}
@@ -444,7 +444,7 @@ bool TwinEConsole::doSetLife(int argc, const char **argv) {
debugPrintf("Expected to get the life points as parameter\n");
return true;
}
- _engine->_scene->sceneHero->setLife(atoi(argv[1]));
+ _engine->_scene->_sceneHero->setLife(atoi(argv[1]));
return true;
}
diff --git a/engines/twine/debugger/debug_grid.cpp b/engines/twine/debugger/debug_grid.cpp
index 8abeb679f4..3407e1a2d2 100644
--- a/engines/twine/debugger/debug_grid.cpp
+++ b/engines/twine/debugger/debug_grid.cpp
@@ -43,17 +43,17 @@ void DebugGrid::changeGridCamera() {
Redraw *redraw = _engine->_redraw;
Input *input = _engine->_input;
if (input->isActionActive(TwinEActionType::DebugGridCameraPressUp)) {
- grid->newCamera.z--;
+ grid->_newCamera.z--;
redraw->_reqBgRedraw = true;
} else if (input->isActionActive(TwinEActionType::DebugGridCameraPressDown)) {
- grid->newCamera.z++;
+ grid->_newCamera.z++;
redraw->_reqBgRedraw = true;
}
if (input->isActionActive(TwinEActionType::DebugGridCameraPressLeft)) {
- grid->newCamera.x--;
+ grid->_newCamera.x--;
redraw->_reqBgRedraw = true;
} else if (input->isActionActive(TwinEActionType::DebugGridCameraPressRight)) {
- grid->newCamera.x++;
+ grid->_newCamera.x++;
redraw->_reqBgRedraw = true;
}
}
@@ -66,20 +66,20 @@ void DebugGrid::changeGrid() {
Redraw *redraw = _engine->_redraw;
Input *input = _engine->_input;
if (input->toggleActionIfActive(TwinEActionType::NextRoom)) {
- scene->currentSceneIdx++;
- if (scene->currentSceneIdx >= LBA1SceneId::SceneIdMax) {
- scene->currentSceneIdx = LBA1SceneId::Citadel_Island_Prison;
+ scene->_currentSceneIdx++;
+ if (scene->_currentSceneIdx >= LBA1SceneId::SceneIdMax) {
+ scene->_currentSceneIdx = LBA1SceneId::Citadel_Island_Prison;
}
- scene->needChangeScene = scene->currentSceneIdx;
+ scene->_needChangeScene = scene->_currentSceneIdx;
redraw->_reqBgRedraw = true;
}
if (input->toggleActionIfActive(TwinEActionType::PreviousRoom)) {
- scene->currentSceneIdx--;
- if (scene->currentSceneIdx < LBA1SceneId::Citadel_Island_Prison) {
- scene->currentSceneIdx = LBA1SceneId::SceneIdMax - 1;
+ scene->_currentSceneIdx--;
+ if (scene->_currentSceneIdx < LBA1SceneId::Citadel_Island_Prison) {
+ scene->_currentSceneIdx = LBA1SceneId::SceneIdMax - 1;
}
- scene->needChangeScene = scene->currentSceneIdx;
+ scene->_needChangeScene = scene->_currentSceneIdx;
redraw->_reqBgRedraw = true;
}
}
@@ -89,32 +89,32 @@ void DebugGrid::applyCellingGrid() {
Input *input = _engine->_input;
// Increase celling grid index
if (input->toggleActionIfActive(TwinEActionType::IncreaseCellingGridIndex)) {
- grid->cellingGridIdx++;
- if (grid->cellingGridIdx > 133) {
- grid->cellingGridIdx = 133;
+ grid->_cellingGridIdx++;
+ if (grid->_cellingGridIdx > 133) {
+ grid->_cellingGridIdx = 133;
}
}
// Decrease celling grid index
else if (input->toggleActionIfActive(TwinEActionType::DecreaseCellingGridIndex)) {
- grid->cellingGridIdx--;
- if (grid->cellingGridIdx < 0) {
- grid->cellingGridIdx = 0;
+ grid->_cellingGridIdx--;
+ if (grid->_cellingGridIdx < 0) {
+ grid->_cellingGridIdx = 0;
}
}
// Enable/disable celling grid
else if (input->toggleActionIfActive(TwinEActionType::ApplyCellingGrid)) {
- if (grid->useCellingGrid == -1) {
- grid->useCellingGrid = 1;
+ if (grid->_useCellingGrid == -1) {
+ grid->_useCellingGrid = 1;
//grid->createGridMap();
- grid->initCellingGrid(grid->cellingGridIdx);
- debug("Enable Celling Grid index: %d", grid->cellingGridIdx);
- _engine->_scene->needChangeScene = SCENE_CEILING_GRID_FADE_2; // tricky to make the fade
- } else if (grid->useCellingGrid == 1) {
- grid->useCellingGrid = -1;
+ grid->initCellingGrid(grid->_cellingGridIdx);
+ debug("Enable Celling Grid index: %d", grid->_cellingGridIdx);
+ _engine->_scene->_needChangeScene = SCENE_CEILING_GRID_FADE_2; // tricky to make the fade
+ } else if (grid->_useCellingGrid == 1) {
+ grid->_useCellingGrid = -1;
grid->createGridMap();
_engine->_redraw->_reqBgRedraw = true;
- debug("Disable Celling Grid index: %d", grid->cellingGridIdx);
- _engine->_scene->needChangeScene = SCENE_CEILING_GRID_FADE_2; // tricky to make the fade
+ debug("Disable Celling Grid index: %d", grid->_cellingGridIdx);
+ _engine->_scene->_needChangeScene = SCENE_CEILING_GRID_FADE_2; // tricky to make the fade
}
}
}
diff --git a/engines/twine/debugger/debug_scene.cpp b/engines/twine/debugger/debug_scene.cpp
index b1ebd1cca8..f1bb3dbf07 100644
--- a/engines/twine/debugger/debug_scene.cpp
+++ b/engines/twine/debugger/debug_scene.cpp
@@ -75,32 +75,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->_camera.x;
+ positions.frontBottomLeftPoint.y = mins.y - _engine->_grid->_camera.y;
+ positions.frontBottomLeftPoint.z = maxs.z - _engine->_grid->_camera.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->_camera.x;
+ positions.frontBottomRightPoint.y = mins.y - _engine->_grid->_camera.y;
+ positions.frontBottomRightPoint.z = maxs.z - _engine->_grid->_camera.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->_camera.x;
+ positions.frontTopLeftPoint.y = maxs.y - _engine->_grid->_camera.y;
+ positions.frontTopLeftPoint.z = maxs.z - _engine->_grid->_camera.z;
- positions.frontTopRightPoint = maxs - _engine->_grid->camera;
- positions.backBottomLeftPoint = mins - _engine->_grid->camera;
+ positions.frontTopRightPoint = maxs - _engine->_grid->_camera;
+ positions.backBottomLeftPoint = mins - _engine->_grid->_camera;
- 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->_camera.x;
+ positions.backBottomRightPoint.y = mins.y - _engine->_grid->_camera.y;
+ positions.backBottomRightPoint.z = mins.z - _engine->_grid->_camera.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->_camera.x;
+ positions.backTopLeftPoint.y = maxs.y - _engine->_grid->_camera.y;
+ positions.backTopLeftPoint.z = mins.z - _engine->_grid->_camera.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->_camera.x;
+ positions.backTopRightPoint.y = maxs.y - _engine->_grid->_camera.y;
+ positions.backTopRightPoint.z = mins.z - _engine->_grid->_camera.z;
// project all points
@@ -147,7 +147,7 @@ bool DebugScene::drawBox(const ScenePositionsProjected &positions, uint8 color)
bool DebugScene::displayActors() {
bool state = false;
- for (int32 a = 0; a < _engine->_scene->sceneNumActors; a++) {
+ for (int32 a = 0; a < _engine->_scene->_sceneNumActors; a++) {
const ActorStruct *actorPtr = _engine->_scene->getActor(a);
// TODO: redrawing doesn't work properly yet for moving actors
if (!actorPtr->staticFlags.bIsSpriteActor) {
@@ -185,8 +185,8 @@ bool DebugScene::displayTracks() {
bool DebugScene::displayZones() {
bool state = false;
- for (int i = 0; i < _engine->_scene->sceneNumZones; i++) {
- const ZoneStruct *zonePtr = &_engine->_scene->sceneZones[i];
+ for (int i = 0; i < _engine->_scene->_sceneNumZones; i++) {
+ const ZoneStruct *zonePtr = &_engine->_scene->_sceneZones[i];
if (!checkZoneType(zonePtr->type)) {
continue;
diff --git a/engines/twine/holomap.cpp b/engines/twine/holomap.cpp
index 7bb158686a..763da2ede9 100644
--- a/engines/twine/holomap.cpp
+++ b/engines/twine/holomap.cpp
@@ -411,7 +411,7 @@ void Holomap::renderLocations(int xRot, int yRot, int zRot, bool lower) {
int n = 0;
DrawListStruct drawListArray[NUM_LOCATIONS];
for (int locationIdx = 0; locationIdx < NUM_LOCATIONS; ++locationIdx) {
- if ((_engine->_gameState->holomapFlags[locationIdx] & HOLOMAP_CAN_FOCUS) || locationIdx == _engine->_scene->currentSceneIdx) {
+ if ((_engine->_gameState->holomapFlags[locationIdx] & HOLOMAP_CAN_FOCUS) || locationIdx == _engine->_scene->_currentSceneIdx) {
const Location &loc = _locations[locationIdx];
_engine->_renderer->setBaseRotation(loc.angle.x, loc.angle.y, 0);
_engine->_renderer->getBaseRotationPosition(0, 0, loc.angle.z + 1000);
@@ -438,7 +438,7 @@ void Holomap::renderLocations(int xRot, int yRot, int zRot, bool lower) {
}
}
uint8 flags = _engine->_gameState->holomapFlags[locationIdx] & HOLOMAP_ARROW;
- if (locationIdx == _engine->_scene->currentSceneIdx) {
+ if (locationIdx == _engine->_scene->_currentSceneIdx) {
flags |= 2u; // model type
}
DrawListStruct &drawList = drawListArray[n];
@@ -475,8 +475,8 @@ void Holomap::renderLocations(int xRot, int yRot, int zRot, bool lower) {
void Holomap::processHolomap() {
ScopedEngineFreeze freeze(_engine);
- const int32 alphaLightTmp = _engine->_scene->alphaLight;
- const int32 betaLightTmp = _engine->_scene->betaLight;
+ const int32 alphaLightTmp = _engine->_scene->_alphaLight;
+ const int32 betaLightTmp = _engine->_scene->_betaLight;
_engine->exitSceneryView();
@@ -493,7 +493,7 @@ void Holomap::processHolomap() {
_engine->_text->setFontCrossColor(COLOR_9);
_engine->_renderer->setCameraPosition(_engine->width() / 2, 190, 128, 1024, 1024);
- int32 currentLocation = _engine->_scene->currentSceneIdx;
+ int32 currentLocation = _engine->_scene->_currentSceneIdx;
_engine->_text->drawHolomapLocation(_locations[currentLocation].textIndex);
int32 time = _engine->_lbaTime;
@@ -607,8 +607,8 @@ void Holomap::processHolomap() {
_engine->_screens->clearScreen();
_engine->_text->_drawTextBoxBackground = true;
_engine->setPalette(_engine->_screens->_paletteRGBA);
- _engine->_scene->alphaLight = alphaLightTmp;
- _engine->_scene->betaLight = betaLightTmp;
+ _engine->_scene->_alphaLight = alphaLightTmp;
+ _engine->_scene->_betaLight = betaLightTmp;
_engine->_gameState->initEngineProjections();
_engine->_interface->loadClip();
diff --git a/engines/twine/menu/menu.cpp b/engines/twine/menu/menu.cpp
index 0fb1744309..871f870f90 100644
--- a/engines/twine/menu/menu.cpp
+++ b/engines/twine/menu/menu.cpp
@@ -834,7 +834,7 @@ int32 Menu::giveupMenu() {
void Menu::drawHealthBar(int32 left, int32 right, int32 top, int32 barLeftPadding, int32 barHeight) {
_engine->_grid->drawSprite(left, top + 3, _engine->_resources->_spriteData[SPRITEHQR_LIFEPOINTS]);
const int32 barLeft = left + barLeftPadding;
- const int32 healthBarRight = _engine->_screens->crossDot(barLeft, right, 50, _engine->_scene->sceneHero->life);
+ const int32 healthBarRight = _engine->_screens->crossDot(barLeft, right, 50, _engine->_scene->_sceneHero->life);
const int32 barBottom = top + barHeight;
_engine->_interface->drawFilledRect(Common::Rect(barLeft, top, healthBarRight, barBottom), COLOR_91);
drawBox(Common::Rect(barLeft, top, right, barBottom));
@@ -1033,25 +1033,25 @@ void Menu::processBehaviourMenu() {
_engine->_actor->setBehaviour(HeroBehaviourType::kNormal);
}
- _behaviourEntity = &_engine->_resources->_bodyData[_engine->_scene->sceneHero->entity];
+ _behaviourEntity = &_engine->_resources->_bodyData[_engine->_scene->_sceneHero->entity];
_engine->_actor->heroAnimIdx[(byte)HeroBehaviourType::kNormal] = _engine->_actor->heroAnimIdxNORMAL;
_engine->_actor->heroAnimIdx[(byte)HeroBehaviourType::kAthletic] = _engine->_actor->heroAnimIdxATHLETIC;
_engine->_actor->heroAnimIdx[(byte)HeroBehaviourType::kAggressive] = _engine->_actor->heroAnimIdxAGGRESSIVE;
_engine->_actor->heroAnimIdx[(byte)HeroBehaviourType::kDiscrete] = _engine->_actor->heroAnimIdxDISCRETE;
- _engine->_movements->setActorAngleSafe(_engine->_scene->sceneHero->angle, _engine->_scene->sceneHero->angle - ANGLE_90, ANGLE_17, &_moveMenu);
+ _engine->_movements->setActorAngleSafe(_engine->_scene->_sceneHero->angle, _engine->_scene->_sceneHero->angle - ANGLE_90, ANGLE_17, &_moveMenu);
_engine->saveFrontBuffer();
- TextBankId tmpTextBank = _engine->_scene->sceneTextBank;
- _engine->_scene->sceneTextBank = TextBankId::None;
+ TextBankId tmpTextBank = _engine->_scene->_sceneTextBank;
+ _engine->_scene->_sceneTextBank = TextBankId::None;
_engine->_text->initTextBank(TextBankId::Options_and_menus);
const int32 left = _engine->width() / 2 - 220;
const int32 top = _engine->height() / 2 - 140;
- drawBehaviourMenu(left, top, _engine->_scene->sceneHero->angle);
+ drawBehaviourMenu(left, top, _engine->_scene->_sceneHero->angle);
HeroBehaviourType tmpHeroBehaviour = _engine->_actor->heroBehaviour;
@@ -1097,9 +1097,9 @@ void Menu::processBehaviourMenu() {
Common::Rect dirtyRect;
if (tmpHeroBehaviour != _engine->_actor->heroBehaviour) {
- drawBehaviour(left, top, tmpHeroBehaviour, _engine->_scene->sceneHero->angle, true, dirtyRect);
+ drawBehaviour(left, top, tmpHeroBehaviour, _engine->_scene->_sceneHero->angle, true, dirtyRect);
tmpHeroBehaviour = _engine->_actor->heroBehaviour;
- _engine->_movements->setActorAngleSafe(_engine->_scene->sceneHero->angle, _engine->_scene->sceneHero->angle - ANGLE_90, ANGLE_17, &_moveMenu);
+ _engine->_movements->setActorAngleSafe(_engine->_scene->_sceneHero->angle, _engine->_scene->_sceneHero->angle - ANGLE_90, ANGLE_17, &_moveMenu);
const int tmpAnimIdx = _engine->_actor->heroAnimIdx[(byte)_engine->_actor->heroBehaviour];
_engine->_animations->setAnimAtKeyframe(_behaviourAnimState[(byte)_engine->_actor->heroBehaviour], _engine->_resources->_animData[tmpAnimIdx], *_behaviourEntity, &_behaviourAnimData[(byte)_engine->_actor->heroBehaviour]);
}
@@ -1117,7 +1117,7 @@ void Menu::processBehaviourMenu() {
_engine->_actor->setBehaviour(_engine->_actor->heroBehaviour);
_engine->_gameState->initEngineProjections();
- _engine->_scene->sceneTextBank = tmpTextBank;
+ _engine->_scene->_sceneTextBank = tmpTextBank;
_engine->_text->initSceneTextBank();
}
@@ -1171,8 +1171,8 @@ void Menu::drawInventoryItems(int32 left, int32 top) {
}
void Menu::processInventoryMenu() {
- int32 tmpAlphaLight = _engine->_scene->alphaLight;
- int32 tmpBetaLight = _engine->_scene->betaLight;
+ int32 tmpAlphaLight = _engine->_scene->_alphaLight;
+ int32 tmpBetaLight = _engine->_scene->_betaLight;
_engine->saveFrontBuffer();
@@ -1292,8 +1292,8 @@ void Menu::processInventoryMenu() {
_engine->_text->_hasValidTextHandle = false;
- _engine->_scene->alphaLight = tmpAlphaLight;
- _engine->_scene->betaLight = tmpBetaLight;
+ _engine->_scene->_alphaLight = tmpAlphaLight;
+ _engine->_scene->_betaLight = tmpBetaLight;
_engine->_gameState->initEngineProjections();
diff --git a/engines/twine/menu/menuoptions.cpp b/engines/twine/menu/menuoptions.cpp
index 7322b20790..8ffb472ea1 100644
--- a/engines/twine/menu/menuoptions.cpp
+++ b/engines/twine/menu/menuoptions.cpp
@@ -99,8 +99,8 @@ void MenuOptions::showCredits() {
const int32 tmpShadowMode = _engine->_cfgfile.ShadowMode;
_engine->_cfgfile.ShadowMode = 0;
_engine->_gameState->initEngineVars();
- _engine->_scene->currentSceneIdx = LBA1SceneId::Credits_List_Sequence;
- _engine->_scene->needChangeScene = LBA1SceneId::Credits_List_Sequence;
+ _engine->_scene->_currentSceneIdx = LBA1SceneId::Credits_List_Sequence;
+ _engine->_scene->_needChangeScene = LBA1SceneId::Credits_List_Sequence;
canShowCredits = true;
_engine->gameEngineLoop();
diff --git a/engines/twine/renderer/redraw.cpp b/engines/twine/renderer/redraw.cpp
index 922589a650..713ed0a207 100644
--- a/engines/twine/renderer/redraw.cpp
+++ b/engines/twine/renderer/redraw.cpp
@@ -184,17 +184,17 @@ void Redraw::updateOverlayTypePosition(int16 x1, int16 y1, int16 x2, int16 y2) {
int32 Redraw::fillActorDrawingList(DrawListStruct *drawList, bool bgRedraw) {
int32 drawListPos = 0;
- for (int32 a = 0; a < _engine->_scene->sceneNumActors; a++) {
+ for (int32 a = 0; a < _engine->_scene->_sceneNumActors; a++) {
ActorStruct *actor = _engine->_scene->getActor(a);
actor->dynamicFlags.bIsVisible = 0; // reset visible state
- if (_engine->_grid->useCellingGrid != -1 && actor->pos.y > _engine->_scene->sceneZones[_engine->_grid->cellingGridIdx].maxs.y) {
+ if (_engine->_grid->_useCellingGrid != -1 && actor->pos.y > _engine->_scene->_sceneZones[_engine->_grid->_cellingGridIdx].maxs.y) {
continue;
}
// no redraw required
if (actor->staticFlags.bIsBackgrounded && !bgRedraw) {
// get actor position on screen
- _engine->_renderer->projectPositionOnScreen(actor->pos - _engine->_grid->camera);
+ _engine->_renderer->projectPositionOnScreen(actor->pos - _engine->_grid->_camera);
// check if actor is visible on screen, otherwise don't display it
if (_engine->_renderer->_projPos.x > -50 && _engine->_renderer->_projPos.x < _engine->width() + 40 && _engine->_renderer->_projPos.y > -30 && _engine->_renderer->_projPos.y < _engine->height() + 100) {
@@ -207,24 +207,24 @@ int32 Redraw::fillActorDrawingList(DrawListStruct *drawList, bool bgRedraw) {
continue;
}
// get actor position on screen
- _engine->_renderer->projectPositionOnScreen(actor->pos - _engine->_grid->camera);
+ _engine->_renderer->projectPositionOnScreen(actor->pos - _engine->_grid->_camera);
if ((actor->staticFlags.bUsesClipping && _engine->_renderer->_projPos.x > -112 && _engine->_renderer->_projPos.x < _engine->width() + 112 && _engine->_renderer->_projPos.y > -50 && _engine->_renderer->_projPos.y < _engine->height() + 171) ||
((!actor->staticFlags.bUsesClipping) && _engine->_renderer->_projPos.x > -50 && _engine->_renderer->_projPos.x < _engine->width() + 40 && _engine->_renderer->_projPos.y > -30 && _engine->_renderer->_projPos.y < _engine->height() + 100)) {
- int32 tmpVal = actor->pos.z + actor->pos.x - _engine->_grid->camera.x - _engine->_grid->camera.z;
+ int32 tmpVal = actor->pos.z + actor->pos.x - _engine->_grid->_camera.x - _engine->_grid->_camera.z;
// if actor is above another actor
if (actor->standOn != -1) {
const ActorStruct *standOnActor = _engine->_scene->getActor(actor->standOn);
- tmpVal = standOnActor->pos.x - _engine->_grid->camera.x + standOnActor->pos.z - _engine->_grid->camera.z + 2;
+ tmpVal = standOnActor->pos.x - _engine->_grid->_camera.x + standOnActor->pos.z - _engine->_grid->_camera.z + 2;
}
if (actor->staticFlags.bIsSpriteActor) {
drawList[drawListPos].type = DrawListType::DrawActorSprites;
drawList[drawListPos].actorIdx = a;
if (actor->staticFlags.bUsesClipping) {
- tmpVal = actor->lastPos.x - _engine->_grid->camera.x + actor->lastPos.z - _engine->_grid->camera.z;
+ tmpVal = actor->lastPos.x - _engine->_grid->_camera.x + actor->lastPos.z - _engine->_grid->_camera.z;
}
} else {
drawList[drawListPos].type = 0;
@@ -254,7 +254,7 @@ int32 Redraw::fillActorDrawingList(DrawListStruct *drawList, bool bgRedraw) {
drawList[drawListPos].offset = 2;
drawListPos++;
}
- if (_inSceneryView && a == _engine->_scene->currentlyFollowedActor) {
+ if (_inSceneryView && a == _engine->_scene->_currentlyFollowedActor) {
_sceneryViewX = _engine->_renderer->_projPos.x;
_sceneryViewY = _engine->_renderer->_projPos.y;
}
@@ -278,10 +278,10 @@ int32 Redraw::fillExtraDrawingList(DrawListStruct *drawList, int32 drawListPos)
continue;
}
if ((extra->type & ExtraType::TIME_OUT) || (extra->type & ExtraType::FLASH) || (extra->payload.lifeTime + extra->spawnTime - 150 < _engine->_lbaTime) || (!((_engine->_lbaTime + extra->spawnTime) & 8))) {
- _engine->_renderer->projectPositionOnScreen(extra->pos - _engine->_grid->camera);
+ _engine->_renderer->projectPositionOnScreen(extra->pos - _engine->_grid->_camera);
if (_engine->_renderer->_projPos.x > -50 && _engine->_renderer->_projPos.x < _engine->width() + 40 && _engine->_renderer->_projPos.y > -30 && _engine->_renderer->_projPos.y < _engine->height() + 100) {
- 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->_camera.x + extra->pos.z - _engine->_grid->_camera.z;
drawList[drawListPos].posValue = tmpVal;
drawList[drawListPos].actorIdx = i;
drawList[drawListPos].type = DrawListType::DrawExtras;
@@ -307,7 +307,7 @@ int32 Redraw::fillExtraDrawingList(DrawListStruct *drawList, int32 drawListPos)
void Redraw::processDrawListShadows(const DrawListStruct &drawCmd) {
// get actor position on screen
- _engine->_renderer->projectPositionOnScreen(drawCmd.x - _engine->_grid->camera.x, drawCmd.y - _engine->_grid->camera.y, drawCmd.z - _engine->_grid->camera.z);
+ _engine->_renderer->projectPositionOnScreen(drawCmd.x - _engine->_grid->_camera.x, drawCmd.y - _engine->_grid->_camera.y, drawCmd.z - _engine->_grid->_camera.z);
int32 spriteWidth, spriteHeight;
_engine->_grid->getSpriteSize(drawCmd.offset, &spriteWidth, &spriteHeight, _engine->_resources->_spriteShadowPtr);
@@ -342,9 +342,9 @@ void Redraw::processDrawListActors(const DrawListStruct &drawCmd, bool bgRedraw)
_engine->_animations->setModelAnimation(actor->animPosition, animData, _engine->_resources->_bodyData[actor->entity], &actor->animTimerData);
}
- const int32 x = actor->pos.x - _engine->_grid->camera.x;
- const int32 y = actor->pos.y - _engine->_grid->camera.y;
- const int32 z = actor->pos.z - _engine->_grid->camera.z;
+ const int32 x = actor->pos.x - _engine->_grid->_camera.x;
+ const int32 y = actor->pos.y - _engine->_grid->_camera.y;
+ const int32 z = actor->pos.z - _engine->_grid->_camera.z;
Common::Rect renderRect;
if (!_engine->_renderer->renderIsoModel(x, y, z, ANGLE_0, actor->angle, ANGLE_0, _engine->_resources->_bodyData[actor->entity], renderRect)) {
return;
@@ -384,7 +384,7 @@ void Redraw::processDrawListActorSprites(const DrawListStruct &drawCmd, bool bgR
const uint8 *spritePtr = _engine->_resources->_spriteTable[actor->entity];
// get actor position on screen
- _engine->_renderer->projectPositionOnScreen(actor->pos - _engine->_grid->camera);
+ _engine->_renderer->projectPositionOnScreen(actor->pos - _engine->_grid->_camera);
const int32 spriteWidth = spriteData.surface().w;
const int32 spriteHeight = spriteData.surface().h;
@@ -439,7 +439,7 @@ void Redraw::processDrawListExtras(const DrawListStruct &drawCmd) {
int32 extraIdx = drawCmd.actorIdx;
ExtraListStruct *extra = &_engine->_extra->extraList[extraIdx];
- _engine->_renderer->projectPositionOnScreen(extra->pos - _engine->_grid->camera);
+ _engine->_renderer->projectPositionOnScreen(extra->pos - _engine->_grid->_camera);
Common::Rect renderRect;
if (extra->info0 & EXTRA_SPECIAL_MASK) {
@@ -521,7 +521,7 @@ void Redraw::renderOverlays() {
case OverlayPosType::koFollowActor: {
ActorStruct *actor2 = _engine->_scene->getActor(overlay->info1);
- _engine->_renderer->projectPositionOnScreen(actor2->pos.x - _engine->_grid->camera.x, actor2->pos.y + actor2->boudingBox.maxs.y - _engine->_grid->camera.y, actor2->pos.z - _engine->_grid->camera.z);
+ _engine->_renderer->projectPositionOnScreen(actor2->pos.x - _engine->_grid->_camera.x, actor2->pos.y + actor2->boudingBox.maxs.y - _engine->_grid->_camera.y, actor2->pos.z - _engine->_grid->_camera.z);
overlay->x = _engine->_renderer->_projPos.x;
overlay->y = _engine->_renderer->_projPos.y;
@@ -651,7 +651,7 @@ void Redraw::redrawEngineActions(bool bgRedraw) {
if (bgRedraw) {
_engine->freezeTime();
- if (_engine->_scene->needChangeScene != SCENE_CEILING_GRID_FADE_1 && _engine->_scene->needChangeScene != SCENE_CEILING_GRID_FADE_2) {
+ if (_engine->_scene->_needChangeScene != SCENE_CEILING_GRID_FADE_1 && _engine->_scene->_needChangeScene != SCENE_CEILING_GRID_FADE_2) {
_engine->_screens->fadeOut(_engine->_screens->_paletteRGBA);
}
_engine->_screens->clearScreen();
@@ -662,7 +662,7 @@ void Redraw::redrawEngineActions(bool bgRedraw) {
updateOverlayTypePosition(tmp_projPosX, tmp_projPosY, _projPosScreen.x, _projPosScreen.y);
_engine->saveFrontBuffer();
- if (_engine->_scene->needChangeScene != SCENE_CEILING_GRID_FADE_1 && _engine->_scene->needChangeScene != SCENE_CEILING_GRID_FADE_2) {
+ if (_engine->_scene->_needChangeScene != SCENE_CEILING_GRID_FADE_1 && _engine->_scene->_needChangeScene != SCENE_CEILING_GRID_FADE_2) {
_engine->_screens->fadeIn(_engine->_screens->_paletteRGBA);
}
} else {
@@ -687,9 +687,9 @@ void Redraw::redrawEngineActions(bool bgRedraw) {
// make ceiling grid fade
// need to be here to fade after drawing all actors in scene
- if (_engine->_scene->needChangeScene == SCENE_CEILING_GRID_FADE_2) {
+ if (_engine->_scene->_needChangeScene == SCENE_CEILING_GRID_FADE_2) {
_engine->crossFade(_engine->_screens->_paletteRGBA);
- _engine->_scene->needChangeScene = SCENE_CEILING_GRID_FADE_1;
+ _engine->_scene->_needChangeScene = SCENE_CEILING_GRID_FADE_1;
}
if (bgRedraw) {
@@ -717,7 +717,7 @@ void Redraw::drawBubble(int32 actorIdx) {
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
// get actor position on screen
- _engine->_renderer->projectPositionOnScreen(actor->pos.x - _engine->_grid->camera.x, actor->pos.y + actor->boudingBox.maxs.y - _engine->_grid->camera.y, actor->pos.z - _engine->_grid->camera.z);
+ _engine->_renderer->projectPositionOnScreen(actor->pos.x - _engine->_grid->_camera.x, actor->pos.y + actor->boudingBox.maxs.y - _engine->_grid->_camera.y, actor->pos.z - _engine->_grid->_camera.z);
if (actorIdx != _bubbleActor) {
_bubbleSpriteIndex = _bubbleSpriteIndex ^ 1;
diff --git a/engines/twine/renderer/renderer.h b/engines/twine/renderer/renderer.h
index c8005a95d6..4845b68286 100644
--- a/engines/twine/renderer/renderer.h
+++ b/engines/twine/renderer/renderer.h
@@ -210,6 +210,7 @@ public:
IVec3 _projPos;
IVec3 _destPos;
+
void setBaseRotationPos(int32 x, int32 y, int32 z);
IVec3 getHolomapRotation(const int32 angleX, const int32 angleY, const int32 angleZ) const;
diff --git a/engines/twine/scene/actor.cpp b/engines/twine/scene/actor.cpp
index 7b0f1ebb88..137b350768 100644
--- a/engines/twine/scene/actor.cpp
+++ b/engines/twine/scene/actor.cpp
@@ -44,7 +44,7 @@ Actor::Actor(TwinEEngine *engine) : _engine(engine) {
}
void Actor::restartHeroScene() {
- ActorStruct *sceneHero = _engine->_scene->sceneHero;
+ ActorStruct *sceneHero = _engine->_scene->_sceneHero;
sceneHero->controlMode = ControlMode::kManual;
memset(&sceneHero->dynamicFlags, 0, sizeof(sceneHero->dynamicFlags));
memset(&sceneHero->staticFlags, 0, sizeof(sceneHero->staticFlags));
@@ -81,7 +81,7 @@ void Actor::loadBehaviourEntity(ActorStruct *actor, EntityData &entityData, int1
}
void Actor::loadHeroEntities() {
- ActorStruct *sceneHero = _engine->_scene->sceneHero;
+ ActorStruct *sceneHero = _engine->_scene->_sceneHero;
loadBehaviourEntity(sceneHero, _heroEntityATHLETIC, heroAnimIdxATHLETIC, FILE3DHQR_HEROATHLETIC);
loadBehaviourEntity(sceneHero, _heroEntityAGGRESSIVE, heroAnimIdxAGGRESSIVE, FILE3DHQR_HEROAGGRESSIVE);
loadBehaviourEntity(sceneHero, _heroEntityDISCRETE, heroAnimIdxDISCRETE, FILE3DHQR_HERODISCRETE);
@@ -93,7 +93,7 @@ void Actor::loadHeroEntities() {
}
void Actor::setBehaviour(HeroBehaviourType behaviour) {
- ActorStruct *sceneHero = _engine->_scene->sceneHero;
+ ActorStruct *sceneHero = _engine->_scene->_sceneHero;
switch (behaviour) {
case HeroBehaviourType::kNormal:
heroBehaviour = behaviour;
@@ -332,7 +332,7 @@ void Actor::hitActor(int32 actorIdx, int32 actorIdxAttacked, int32 strengthOfHit
_engine->_extra->addExtraSpecial(actor->pos.x, actor->pos.y + 1000, actor->pos.z, ExtraSpecialType::kHitStars);
if (!actorIdxAttacked) {
- _engine->_movements->heroMoved = true;
+ _engine->_movements->_heroMoved = true;
}
actor->life -= strengthOfHit;
@@ -349,7 +349,7 @@ void Actor::processActorCarrier(int32 actorIdx) { // CheckCarrier
if (!actor->staticFlags.bIsCarrierActor) {
return;
}
- for (int32 a = 0; a < _engine->_scene->sceneNumActors; a++) {
+ for (int32 a = 0; a < _engine->_scene->_sceneNumActors; a++) {
if (actor->standOn == actorIdx) {
actor->standOn = -1;
}
@@ -367,7 +367,7 @@ void Actor::processActorExtraBonus(int32 actorIdx) { // GiveExtraBonus
_engine->_extra->addExtraBonus(actor->pos.x, actor->pos.y, actor->pos.z, ANGLE_90, ANGLE_0, bonusSprite, actor->bonusAmount);
_engine->_sound->playSample(Samples::ItemPopup, 1, actor->pos, actorIdx);
} else {
- ActorStruct *sceneHero = _engine->_scene->sceneHero;
+ ActorStruct *sceneHero = _engine->_scene->_sceneHero;
const int32 angle = _engine->_movements->getAngleAndSetTargetActorDistance(actor->pos, sceneHero->pos);
_engine->_extra->addExtraBonus(actor->pos.x, actor->pos.y + actor->boudingBox.maxs.y, actor->pos.z, ANGLE_70, angle, bonusSprite, actor->bonusAmount);
_engine->_sound->playSample(Samples::ItemPopup, 1, actor->pos.x, actor->pos.y + actor->boudingBox.maxs.y, actor->pos.z, actorIdx);
diff --git a/engines/twine/scene/animations.cpp b/engines/twine/scene/animations.cpp
index a9ca212985..a227d83d51 100644
--- a/engines/twine/scene/animations.cpp
+++ b/engines/twine/scene/animations.cpp
@@ -346,8 +346,8 @@ void Animations::processAnimActions(int32 actorIdx) {
break;
case ActionType::ACTION_THROW_3D_ALPHA:
if (action.animFrame == actor->animPosition) {
- const int32 distance = _engine->_movements->getDistance2D(actor->pos, _engine->_scene->sceneHero->pos);
- const int32 newAngle = _engine->_movements->getAngleAndSetTargetActorDistance(actor->pos.y, 0, _engine->_scene->sceneHero->pos.y, distance);
+ const int32 distance = _engine->_movements->getDistance2D(actor->pos, _engine->_scene->_sceneHero->pos);
+ const int32 newAngle = _engine->_movements->getAngleAndSetTargetActorDistance(actor->pos.y, 0, _engine->_scene->_sceneHero->pos.y, distance);
_engine->_movements->rotateActor(action.distanceX, action.distanceZ, actor->angle);
@@ -464,10 +464,10 @@ void Animations::processActorAnimations(int32 actorIdx) { // DoAnim
return;
}
- IVec3 &previousActor = _engine->_movements->previousActor;
+ IVec3 &previousActor = _engine->_movements->_previousActor;
previousActor = actor->collisionPos;
- IVec3 &processActor = _engine->_movements->processActor;
+ IVec3 &processActor = _engine->_movements->_processActor;
if (actor->staticFlags.bIsSpriteActor) {
if (actor->strengthOfHit) {
actor->dynamicFlags.bIsHitting = 1;
@@ -699,7 +699,7 @@ void Animations::processActorAnimations(int32 actorIdx) { // DoAnim
initAnim(AnimationTypes::kBigHit, AnimType::kAnimationType_2, AnimationTypes::kStanding, currentlyProcessedActorIdx);
if (IS_HERO(currentlyProcessedActorIdx)) {
- _engine->_movements->heroMoved = true;
+ _engine->_movements->_heroMoved = true;
}
actor->addLife(-1);
@@ -719,7 +719,7 @@ void Animations::processActorAnimations(int32 actorIdx) { // DoAnim
if (IS_HERO(actorIdx) && _engine->_actor->heroBehaviour == HeroBehaviourType::kAthletic && actor->anim == AnimationTypes::kForward && _engine->_cfgfile.WallCollision) { // avoid wall hit damage
_engine->_extra->addExtraSpecial(actor->pos.x, actor->pos.y + 1000, actor->pos.z, ExtraSpecialType::kHitStars);
initAnim(AnimationTypes::kBigHit, AnimType::kAnimationType_2, AnimationTypes::kStanding, currentlyProcessedActorIdx);
- _engine->_movements->heroMoved = true;
+ _engine->_movements->_heroMoved = true;
actor->addLife(-1);
}
@@ -762,8 +762,8 @@ void Animations::processActorAnimations(int32 actorIdx) { // DoAnim
if (!actor->dynamicFlags.bIsRotationByAnim) {
actor->dynamicFlags.bIsFalling = 1;
- if (IS_HERO(actorIdx) && _engine->_scene->heroYBeforeFall == 0) {
- _engine->_scene->heroYBeforeFall = processActor.y;
+ if (IS_HERO(actorIdx) && _engine->_scene->_heroYBeforeFall == 0) {
+ _engine->_scene->_heroYBeforeFall = processActor.y;
}
initAnim(AnimationTypes::kFall, AnimType::kAnimationTypeLoop, AnimationTypes::kAnimInvalid, actorIdx);
diff --git a/engines/twine/scene/collision.cpp b/engines/twine/scene/collision.cpp
index 0cd2d8de51..27d7fe89cb 100644
--- a/engines/twine/scene/collision.cpp
+++ b/engines/twine/scene/collision.cpp
@@ -44,7 +44,7 @@ bool Collision::standingOnActor(int32 actorIdx1, int32 actorIdx2) const {
const ActorStruct *actor1 = _engine->_scene->getActor(actorIdx1);
const ActorStruct *actor2 = _engine->_scene->getActor(actorIdx2);
- const IVec3 &processActor = _engine->_movements->processActor;
+ const IVec3 &processActor = _engine->_movements->_processActor;
const IVec3 &mins1 = processActor + actor1->boudingBox.mins;
const IVec3 &maxs1 = processActor + actor1->boudingBox.maxs;
@@ -103,7 +103,7 @@ void Collision::reajustActorPosition(ShapeType brickShape) {
const int32 brkY = collision.y * BRICK_HEIGHT;
const int32 brkZ = (collision.z * BRICK_SIZE) - BRICK_HEIGHT;
- IVec3 &processActor = _engine->_movements->processActor;
+ IVec3 &processActor = _engine->_movements->_processActor;
// double-side stairs
if (brickShape >= ShapeType::kDoubleSideStairsTop1 && brickShape <= ShapeType::kDoubleSideStairsRight2) {
@@ -195,14 +195,14 @@ void Collision::reajustActorPosition(ShapeType brickShape) {
int32 Collision::checkCollisionWithActors(int32 actorIdx) {
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- IVec3 &processActor = _engine->_movements->processActor;
- IVec3 &previousActor = _engine->_movements->previousActor;
+ IVec3 &processActor = _engine->_movements->_processActor;
+ IVec3 &previousActor = _engine->_movements->_previousActor;
IVec3 mins = processActor + actor->boudingBox.mins;
IVec3 maxs = processActor + actor->boudingBox.maxs;
actor->collision = -1;
- for (int32 a = 0; a < _engine->_scene->sceneNumActors; a++) {
+ for (int32 a = 0; a < _engine->_scene->_sceneNumActors; a++) {
ActorStruct *actorTest = _engine->_scene->getActor(a);
// aviod current processed actor
@@ -331,7 +331,7 @@ int32 Collision::checkCollisionWithActors(int32 actorIdx) {
maxs.y = processActor.y + actor->boudingBox.maxs.y;
maxs.z = _engine->_renderer->_destPos.z + processActor.z + actor->boudingBox.maxs.z;
- for (int32 a = 0; a < _engine->_scene->sceneNumActors; a++) {
+ for (int32 a = 0; a < _engine->_scene->_sceneNumActors; a++) {
const ActorStruct *actorTest = _engine->_scene->getActor(a);
// aviod current processed actor
@@ -350,8 +350,8 @@ int32 Collision::checkCollisionWithActors(int32 actorIdx) {
}
void Collision::checkHeroCollisionWithBricks(int32 x, int32 y, int32 z, int32 damageMask) {
- IVec3 &processActor = _engine->_movements->processActor;
- IVec3 &previousActor = _engine->_movements->previousActor;
+ IVec3 &processActor = _engine->_movements->_processActor;
+ IVec3 &previousActor = _engine->_movements->_previousActor;
ShapeType brickShape = _engine->_grid->getBrickShape(processActor);
processActor.x += x;
@@ -383,8 +383,8 @@ void Collision::checkHeroCollisionWithBricks(int32 x, int32 y, int32 z, int32 da
}
void Collision::checkActorCollisionWithBricks(int32 x, int32 y, int32 z, int32 damageMask) {
- IVec3 &processActor = _engine->_movements->processActor;
- IVec3 &previousActor = _engine->_movements->previousActor;
+ IVec3 &processActor = _engine->_movements->_processActor;
+ IVec3 &previousActor = _engine->_movements->_previousActor;
ShapeType brickShape = _engine->_grid->getBrickShape(processActor);
processActor.x += x;
@@ -416,8 +416,8 @@ void Collision::checkActorCollisionWithBricks(int32 x, int32 y, int32 z, int32 d
void Collision::stopFalling() { // ReceptionObj()
if (IS_HERO(_engine->_animations->currentlyProcessedActorIdx)) {
- const IVec3 &processActor = _engine->_movements->processActor;
- const int32 fall = _engine->_scene->heroYBeforeFall - processActor.y;
+ const IVec3 &processActor = _engine->_movements->_processActor;
+ const int32 fall = _engine->_scene->_heroYBeforeFall - processActor.y;
if (fall >= BRICK_HEIGHT * 8) {
_engine->_extra->addExtraSpecial(_engine->_actor->processActorPtr->pos.x, _engine->_actor->processActorPtr->pos.y + 1000, _engine->_actor->processActorPtr->pos.z, ExtraSpecialType::kHitStars);
@@ -433,7 +433,7 @@ void Collision::stopFalling() { // ReceptionObj()
_engine->_animations->initAnim(AnimationTypes::kStanding, AnimType::kAnimationTypeLoop, AnimationTypes::kStanding, _engine->_animations->currentlyProcessedActorIdx);
}
- _engine->_scene->heroYBeforeFall = 0;
+ _engine->_scene->_heroYBeforeFall = 0;
} else {
_engine->_animations->initAnim(AnimationTypes::kLanding, AnimType::kAnimationType_2, _engine->_actor->processActorPtr->animExtra, _engine->_animations->currentlyProcessedActorIdx);
}
@@ -446,7 +446,7 @@ int32 Collision::checkExtraCollisionWithActors(ExtraListStruct *extra, int32 act
const IVec3 mins = bbox->mins + extra->pos;
const IVec3 maxs = bbox->maxs + extra->pos;
- for (int32 a = 0; a < _engine->_scene->sceneNumActors; a++) {
+ for (int32 a = 0; a < _engine->_scene->_sceneNumActors; a++) {
const ActorStruct *actorTest = _engine->_scene->getActor(a);
if (a != actorIdx && actorTest->entity != -1) {
diff --git a/engines/twine/scene/extra.cpp b/engines/twine/scene/extra.cpp
index 0160f837e6..abc60e46b1 100644
--- a/engines/twine/scene/extra.cpp
+++ b/engines/twine/scene/extra.cpp
@@ -625,7 +625,7 @@ void Extra::processExtras() {
continue;
}
- const int32 angle2 = _engine->_movements->getAngleAndSetTargetActorDistance(extra->pos.y, 0, currentExtraY, _engine->_movements->targetActorDistance);
+ const int32 angle2 = _engine->_movements->getAngleAndSetTargetActorDistance(extra->pos.y, 0, currentExtraY, _engine->_movements->_targetActorDistance);
int32 pos = extra->trackActorMove.getRealAngle(_engine->_lbaTime);
if (!pos) {
pos = 1;
@@ -659,10 +659,10 @@ void Extra::processExtras() {
const int32 angle = ClampAngle(tmpAngle - extra->angle);
if (angle > ANGLE_140 && angle < ANGLE_210) {
- _engine->_sound->playSample(Samples::ItemFound, 1, _engine->_scene->sceneHero->pos, OWN_ACTOR_SCENE_INDEX);
+ _engine->_sound->playSample(Samples::ItemFound, 1, _engine->_scene->_sceneHero->pos, OWN_ACTOR_SCENE_INDEX);
if (extraKey->info1 > 1) {
- _engine->_renderer->projectPositionOnScreen(extraKey->pos - _engine->_grid->camera);
+ _engine->_renderer->projectPositionOnScreen(extraKey->pos - _engine->_grid->_camera);
_engine->_redraw->addOverlay(OverlayType::koNumber, extraKey->info1, _engine->_renderer->_projPos.x, _engine->_renderer->_projPos.y, COLOR_BLACK, OverlayPosType::koNormal, 2);
}
@@ -675,7 +675,7 @@ void Extra::processExtras() {
_engine->_gameState->magicBallIdx = addExtra(-1, extra->pos.x, extra->pos.y, extra->pos.z, SPRITEHQR_KEY, 0, 8000, 0);
continue;
}
- const int32 angle2 = _engine->_movements->getAngleAndSetTargetActorDistance(extra->pos.y, 0, extraKey->pos.y, _engine->_movements->targetActorDistance);
+ const int32 angle2 = _engine->_movements->getAngleAndSetTargetActorDistance(extra->pos.y, 0, extraKey->pos.y, _engine->_movements->_targetActorDistance);
int32 pos = extra->trackActorMove.getRealAngle(_engine->_lbaTime);
if (!pos) {
@@ -692,10 +692,10 @@ void Extra::processExtras() {
_engine->_movements->setActorAngle(ANGLE_0, extra->destPos.z, ANGLE_17, &extra->trackActorMove);
if (extraIdx == _engine->_collision->checkExtraCollisionWithExtra(extra, _engine->_gameState->magicBallIdx)) {
- _engine->_sound->playSample(Samples::ItemFound, 1, _engine->_scene->sceneHero->pos, OWN_ACTOR_SCENE_INDEX);
+ _engine->_sound->playSample(Samples::ItemFound, 1, _engine->_scene->_sceneHero->pos, OWN_ACTOR_SCENE_INDEX);
if (extraKey->info1 > 1) {
- _engine->_renderer->projectPositionOnScreen(extraKey->pos - _engine->_grid->camera);
+ _engine->_renderer->projectPositionOnScreen(extraKey->pos - _engine->_grid->_camera);
_engine->_redraw->addOverlay(OverlayType::koNumber, extraKey->info1, _engine->_renderer->_projPos.x, _engine->_renderer->_projPos.y, COLOR_BLACK, OverlayPosType::koNormal, 2);
}
@@ -841,7 +841,7 @@ void Extra::processExtras() {
_engine->_sound->playSample(Samples::ItemFound, 1, extra->pos);
if (extra->info1 > 1 && !_engine->_input->isActionActive(TwinEActionType::MoveBackward)) {
- _engine->_renderer->projectPositionOnScreen(extra->pos - _engine->_grid->camera);
+ _engine->_renderer->projectPositionOnScreen(extra->pos - _engine->_grid->_camera);
const int16 fontColor = COLOR_158;
_engine->_redraw->addOverlay(OverlayType::koNumber, extra->info1, _engine->_renderer->_projPos.x, _engine->_renderer->_projPos.y, fontColor, OverlayPosType::koNormal, 2);
}
@@ -851,7 +851,7 @@ void Extra::processExtras() {
if (extra->info0 == SPRITEHQR_KASHES) {
_engine->_gameState->addKashes(extra->info1);
} else if (extra->info0 == SPRITEHQR_LIFEPOINTS) {
- _engine->_scene->sceneHero->addLife(extra->info1);
+ _engine->_scene->_sceneHero->addLife(extra->info1);
} else if (extra->info0 == SPRITEHQR_MAGICPOINTS && _engine->_gameState->magicLevelIdx) {
_engine->_gameState->addMagicPoints(extra->info1 * 2);
} else if (extra->info0 == SPRITEHQR_KEY) {
diff --git a/engines/twine/scene/gamestate.cpp b/engines/twine/scene/gamestate.cpp
index 669face96b..779c3d63eb 100644
--- a/engines/twine/scene/gamestate.cpp
+++ b/engines/twine/scene/gamestate.cpp
@@ -60,7 +60,7 @@ void GameState::initEngineProjections() {
_engine->_renderer->setOrthoProjection(311, 240, 512);
_engine->_renderer->setBaseTranslation(0, 0, 0);
_engine->_renderer->setBaseRotation(ANGLE_0, ANGLE_0, ANGLE_0);
- _engine->_renderer->setLightVector(_engine->_scene->alphaLight, _engine->_scene->betaLight, ANGLE_0);
+ _engine->_renderer->setLightVector(_engine->_scene->_alphaLight, _engine->_scene->_betaLight, ANGLE_0);
}
void GameState::initGameStateVars() {
@@ -71,8 +71,8 @@ void GameState::initGameStateVars() {
_engine->_redraw->overlayList[i].info0 = -1;
}
- for (int32 i = 0; i < ARRAYSIZE(_engine->_scene->sceneFlags); i++) {
- _engine->_scene->sceneFlags[i] = 0;
+ for (int32 i = 0; i < ARRAYSIZE(_engine->_scene->_sceneFlags); i++) {
+ _engine->_scene->_sceneFlags[i] = 0;
}
clearGameFlags();
@@ -96,29 +96,29 @@ void GameState::initHeroVars() {
usingSabre = false;
- _engine->_scene->sceneHero->body = BodyType::btNormal;
- _engine->_scene->sceneHero->setLife(kActorMaxLife);
- _engine->_scene->sceneHero->talkColor = COLOR_BRIGHT_BLUE;
+ _engine->_scene->_sceneHero->body = BodyType::btNormal;
+ _engine->_scene->_sceneHero->setLife(kActorMaxLife);
+ _engine->_scene->_sceneHero->talkColor = COLOR_BRIGHT_BLUE;
}
void GameState::initEngineVars() {
debug(2, "Init engine variables");
_engine->_interface->resetClip();
- _engine->_scene->alphaLight = ANGLE_315;
- _engine->_scene->betaLight = ANGLE_334;
+ _engine->_scene->_alphaLight = ANGLE_315;
+ _engine->_scene->_betaLight = ANGLE_334;
initEngineProjections();
initGameStateVars();
initHeroVars();
- _engine->_scene->newHeroPos.x = 0x2000;
- _engine->_scene->newHeroPos.y = 0x1800;
- _engine->_scene->newHeroPos.z = 0x2000;
+ _engine->_scene->_newHeroPos.x = 0x2000;
+ _engine->_scene->_newHeroPos.y = 0x1800;
+ _engine->_scene->_newHeroPos.z = 0x2000;
- _engine->_scene->currentSceneIdx = SCENE_CEILING_GRID_FADE_1;
- _engine->_scene->needChangeScene = LBA1SceneId::Citadel_Island_Prison;
+ _engine->_scene->_currentSceneIdx = SCENE_CEILING_GRID_FADE_1;
+ _engine->_scene->_needChangeScene = LBA1SceneId::Citadel_Island_Prison;
_engine->_quitGame = -1;
- _engine->_scene->mecaPinguinIdx = -1;
+ _engine->_scene->_mecaPinguinIdx = -1;
_engine->_menuOptions->canShowCredits = false;
inventoryNumLeafs = 0;
@@ -135,8 +135,8 @@ void GameState::initEngineVars() {
gameChapter = 0;
- _engine->_scene->sceneTextBank = TextBankId::Options_and_menus;
- _engine->_scene->currentlyFollowedActor = OWN_ACTOR_SCENE_INDEX;
+ _engine->_scene->_sceneTextBank = TextBankId::Options_and_menus;
+ _engine->_scene->_currentlyFollowedActor = OWN_ACTOR_SCENE_INDEX;
_engine->_actor->heroBehaviour = HeroBehaviourType::kNormal;
_engine->_actor->previousHeroAngle = 0;
_engine->_actor->previousHeroBehaviour = HeroBehaviourType::kNormal;
@@ -179,22 +179,22 @@ bool GameState::loadGame(Common::SeekableReadStream *file) {
for (uint8 i = 0; i < numGameFlags; ++i) {
setGameFlag(i, file->readByte());
}
- _engine->_scene->needChangeScene = file->readByte(); // scene index
+ _engine->_scene->_needChangeScene = file->readByte(); // scene index
gameChapter = file->readByte();
_engine->_actor->heroBehaviour = (HeroBehaviourType)file->readByte();
_engine->_actor->previousHeroBehaviour = _engine->_actor->heroBehaviour;
- _engine->_scene->sceneHero->setLife(file->readByte());
+ _engine->_scene->_sceneHero->setLife(file->readByte());
setKashes(file->readSint16LE());
magicLevelIdx = file->readByte();
setMagicPoints(file->readByte());
setLeafBoxes(file->readByte());
- _engine->_scene->newHeroPos.x = file->readSint16LE();
- _engine->_scene->newHeroPos.y = file->readSint16LE();
- _engine->_scene->newHeroPos.z = file->readSint16LE();
- _engine->_scene->sceneHero->angle = ToAngle(file->readSint16LE());
- _engine->_actor->previousHeroAngle = _engine->_scene->sceneHero->angle;
- _engine->_scene->sceneHero->body = (BodyType)file->readByte();
+ _engine->_scene->_newHeroPos.x = file->readSint16LE();
+ _engine->_scene->_newHeroPos.y = file->readSint16LE();
+ _engine->_scene->_newHeroPos.z = file->readSint16LE();
+ _engine->_scene->_sceneHero->angle = ToAngle(file->readSint16LE());
+ _engine->_actor->previousHeroAngle = _engine->_scene->_sceneHero->angle;
+ _engine->_scene->_sceneHero->body = (BodyType)file->readByte();
const byte numHolomapFlags = file->readByte(); // number of holomap locations
if (numHolomapFlags != NUM_LOCATIONS) {
@@ -221,8 +221,8 @@ bool GameState::loadGame(Common::SeekableReadStream *file) {
file->readUint32LE();
}
- _engine->_scene->currentSceneIdx = SCENE_CEILING_GRID_FADE_1;
- _engine->_scene->heroPositionType = ScenePositionType::kReborn;
+ _engine->_scene->_currentSceneIdx = SCENE_CEILING_GRID_FADE_1;
+ _engine->_scene->_heroPositionType = ScenePositionType::kReborn;
return true;
}
@@ -232,7 +232,7 @@ bool GameState::saveGame(Common::WriteStream *file) {
Common::strlcpy(_engine->_menuOptions->_saveGameName, "TwinEngineSave", sizeof(_engine->_menuOptions->_saveGameName));
}
- int32 sceneIdx = _engine->_scene->currentSceneIdx;
+ int32 sceneIdx = _engine->_scene->_currentSceneIdx;
if (sceneIdx == Polar_Island_end_scene || sceneIdx == Citadel_Island_end_sequence_1 || sceneIdx == Citadel_Island_end_sequence_2 || sceneIdx == Credits_List_Sequence) {
/* inventoryMagicPoints = 0x50 */
/* herobehaviour = 0 */
@@ -250,18 +250,18 @@ bool GameState::saveGame(Common::WriteStream *file) {
file->writeByte(sceneIdx);
file->writeByte(gameChapter);
file->writeByte((byte)_engine->_actor->heroBehaviour);
- file->writeByte(_engine->_scene->sceneHero->life);
+ file->writeByte(_engine->_scene->_sceneHero->life);
file->writeSint16LE(inventoryNumKashes);
file->writeByte(magicLevelIdx);
file->writeByte(inventoryMagicPoints);
file->writeByte(inventoryNumLeafsBox);
// we don't save the whole scene state - so we have to make sure that the hero is
// respawned at the start of the scene - and not at its current position
- file->writeSint16LE(_engine->_scene->newHeroPos.x);
- file->writeSint16LE(_engine->_scene->newHeroPos.y);
- file->writeSint16LE(_engine->_scene->newHeroPos.z);
- file->writeSint16LE(FromAngle(_engine->_scene->sceneHero->angle));
- file->writeByte((uint8)_engine->_scene->sceneHero->body);
+ file->writeSint16LE(_engine->_scene->_newHeroPos.x);
+ file->writeSint16LE(_engine->_scene->_newHeroPos.y);
+ file->writeSint16LE(_engine->_scene->_newHeroPos.z);
+ file->writeSint16LE(FromAngle(_engine->_scene->_sceneHero->angle));
+ file->writeByte((uint8)_engine->_scene->_sceneHero->body);
// number of holomap locations
file->writeByte(NUM_LOCATIONS);
@@ -300,34 +300,34 @@ void GameState::setGameFlag(uint8 index, uint8 value) {
void GameState::processFoundItem(InventoryItems item) {
ScopedEngineFreeze freeze(_engine);
- _engine->_grid->centerOnActor(_engine->_scene->sceneHero);
+ _engine->_grid->centerOnActor(_engine->_scene->_sceneHero);
_engine->exitSceneryView();
// Hide hero in scene
- _engine->_scene->sceneHero->staticFlags.bIsHidden = 1;
+ _engine->_scene->_sceneHero->staticFlags.bIsHidden = 1;
_engine->_redraw->redrawEngineActions(true);
- _engine->_scene->sceneHero->staticFlags.bIsHidden = 0;
+ _engine->_scene->_sceneHero->staticFlags.bIsHidden = 0;
_engine->saveFrontBuffer();
- const int32 itemCameraX = _engine->_grid->newCamera.x * BRICK_SIZE;
- const int32 itemCameraY = _engine->_grid->newCamera.y * BRICK_HEIGHT;
- const int32 itemCameraZ = _engine->_grid->newCamera.z * BRICK_SIZE;
+ const int32 itemCameraX = _engine->_grid->_newCamera.x * BRICK_SIZE;
+ const int32 itemCameraY = _engine->_grid->_newCamera.y * BRICK_HEIGHT;
+ const int32 itemCameraZ = _engine->_grid->_newCamera.z * BRICK_SIZE;
- BodyData &bodyData = _engine->_resources->_bodyData[_engine->_scene->sceneHero->entity];
- const int32 bodyX = _engine->_scene->sceneHero->pos.x - itemCameraX;
- const int32 bodyY = _engine->_scene->sceneHero->pos.y - itemCameraY;
- const int32 bodyZ = _engine->_scene->sceneHero->pos.z - itemCameraZ;
+ BodyData &bodyData = _engine->_resources->_bodyData[_engine->_scene->_sceneHero->entity];
+ const int32 bodyX = _engine->_scene->_sceneHero->pos.x - itemCameraX;
+ const int32 bodyY = _engine->_scene->_sceneHero->pos.y - itemCameraY;
+ const int32 bodyZ = _engine->_scene->_sceneHero->pos.z - itemCameraZ;
Common::Rect modelRect;
_engine->_renderer->renderIsoModel(bodyX, bodyY, bodyZ, ANGLE_0, ANGLE_45, ANGLE_0, bodyData, modelRect);
_engine->_interface->setClip(modelRect);
- const int32 itemX = (_engine->_scene->sceneHero->pos.x + BRICK_HEIGHT) / BRICK_SIZE;
- int32 itemY = _engine->_scene->sceneHero->pos.y / BRICK_HEIGHT;
- if (_engine->_scene->sceneHero->brickShape() != ShapeType::kNone) {
+ const int32 itemX = (_engine->_scene->_sceneHero->pos.x + BRICK_HEIGHT) / BRICK_SIZE;
+ int32 itemY = _engine->_scene->_sceneHero->pos.y / BRICK_HEIGHT;
+ if (_engine->_scene->_sceneHero->brickShape() != ShapeType::kNone) {
itemY++;
}
- const int32 itemZ = (_engine->_scene->sceneHero->pos.z + BRICK_HEIGHT) / BRICK_SIZE;
+ const int32 itemZ = (_engine->_scene->_sceneHero->pos.z + BRICK_HEIGHT) / BRICK_SIZE;
_engine->_grid->drawOverModelActor(itemX, itemY, itemZ);
@@ -356,9 +356,9 @@ void GameState::processFoundItem(InventoryItems item) {
const int32 bodyAnimIdx = _engine->_animations->getBodyAnimIndex(AnimationTypes::kFoundItem);
const AnimData ¤tAnimData = _engine->_resources->_animData[bodyAnimIdx];
- AnimTimerDataStruct tmpAnimTimer = _engine->_scene->sceneHero->animTimerData;
+ AnimTimerDataStruct tmpAnimTimer = _engine->_scene->_sceneHero->animTimerData;
- _engine->_animations->stockAnimation(bodyData, &_engine->_scene->sceneHero->animTimerData);
+ _engine->_animations->stockAnimation(bodyData, &_engine->_scene->_sceneHero->animTimerData);
uint currentAnimState = 0;
@@ -383,7 +383,7 @@ void GameState::processFoundItem(InventoryItems item) {
_engine->_interface->resetClip();
initEngineProjections();
- if (_engine->_animations->setModelAnimation(currentAnimState, currentAnimData, bodyData, &_engine->_scene->sceneHero->animTimerData)) {
+ if (_engine->_animations->setModelAnimation(currentAnimState, currentAnimData, bodyData, &_engine->_scene->_sceneHero->animTimerData)) {
currentAnimState++; // keyframe
if (currentAnimState >= currentAnimData.getNumKeyframes()) {
currentAnimState = currentAnimData.getLoopFrame();
@@ -437,14 +437,14 @@ void GameState::processFoundItem(InventoryItems item) {
_engine->_text->initSceneTextBank();
_engine->_text->stopVox(_engine->_text->_currDialTextEntry);
- _engine->_scene->sceneHero->animTimerData = tmpAnimTimer;
+ _engine->_scene->_sceneHero->animTimerData = tmpAnimTimer;
}
void GameState::processGameChoices(TextId choiceIdx) {
_engine->saveFrontBuffer();
_gameChoicesSettings.reset();
- _gameChoicesSettings.setTextBankId((TextBankId)((int)_engine->_scene->sceneTextBank + (int)TextBankId::Citadel_Island));
+ _gameChoicesSettings.setTextBankId((TextBankId)((int)_engine->_scene->_sceneTextBank + (int)TextBankId::Citadel_Island));
// filled via script
for (int32 i = 0; i < numChoices; i++) {
@@ -477,9 +477,9 @@ void GameState::processGameoverAnimation() {
_engine->exitSceneryView();
// workaround to fix hero redraw after drowning
- _engine->_scene->sceneHero->staticFlags.bIsHidden = 1;
+ _engine->_scene->_sceneHero->staticFlags.bIsHidden = 1;
_engine->_redraw->redrawEngineActions(true);
- _engine->_scene->sceneHero->staticFlags.bIsHidden = 0;
+ _engine->_scene->_sceneHero->staticFlags.bIsHidden = 0;
// TODO: inSceneryView
_engine->setPalette(_engine->_screens->_paletteRGBA);
diff --git a/engines/twine/scene/grid.cpp b/engines/twine/scene/grid.cpp
index b8655e1d4b..4c749aaf7b 100644
--- a/engines/twine/scene/grid.cpp
+++ b/engines/twine/scene/grid.cpp
@@ -633,7 +633,7 @@ void Grid::drawColumnGrid(int32 blockIdx, int32 brickBlockIdx, int32 x, int32 y,
return;
}
- getBrickPos(x - newCamera.x, y - newCamera.y, z - newCamera.z);
+ getBrickPos(x - _newCamera.x, y - _newCamera.y, z - _newCamera.z);
if (_brickPixelPosX < -24) {
return;
@@ -675,11 +675,11 @@ void Grid::drawColumnGrid(int32 blockIdx, int32 brickBlockIdx, int32 x, int32 y,
void Grid::redrawGrid() {
blockMap *map = (blockMap *)_blockBuffer;
- camera.x = newCamera.x * BRICK_SIZE;
- camera.y = newCamera.y * BRICK_HEIGHT;
- camera.z = newCamera.z * BRICK_SIZE;
+ _camera.x = _newCamera.x * BRICK_SIZE;
+ _camera.y = _newCamera.y * BRICK_HEIGHT;
+ _camera.z = _newCamera.z * BRICK_SIZE;
- _engine->_renderer->projectPositionOnScreen(-camera.x, -camera.y, -camera.z);
+ _engine->_renderer->projectPositionOnScreen(-_camera.x, -_camera.y, -_camera.z);
memset(_brickInfoBuffer, 0, _brickInfoBufferSize);
@@ -852,9 +852,9 @@ int32 Grid::getBrickSoundType(int32 x, int32 y, int32 z) {
}
void Grid::centerOnActor(const ActorStruct* actor) {
- newCamera.x = (actor->pos.x + BRICK_HEIGHT) / BRICK_SIZE;
- newCamera.y = (actor->pos.y + BRICK_HEIGHT) / BRICK_HEIGHT;
- newCamera.z = (actor->pos.z + BRICK_HEIGHT) / BRICK_SIZE;
+ _newCamera.x = (actor->pos.x + BRICK_HEIGHT) / BRICK_SIZE;
+ _newCamera.y = (actor->pos.y + BRICK_HEIGHT) / BRICK_HEIGHT;
+ _newCamera.z = (actor->pos.z + BRICK_HEIGHT) / BRICK_SIZE;
_engine->_redraw->_reqBgRedraw = true;
}
@@ -866,22 +866,22 @@ void Grid::centerScreenOnActor() {
return;
}
- ActorStruct *actor = _engine->_scene->getActor(_engine->_scene->currentlyFollowedActor);
- _engine->_renderer->projectPositionOnScreen(actor->pos.x - (newCamera.x * BRICK_SIZE),
- actor->pos.y - (newCamera.y * BRICK_HEIGHT),
- actor->pos.z - (newCamera.z * BRICK_SIZE));
+ ActorStruct *actor = _engine->_scene->getActor(_engine->_scene->_currentlyFollowedActor);
+ _engine->_renderer->projectPositionOnScreen(actor->pos.x - (_newCamera.x * BRICK_SIZE),
+ actor->pos.y - (_newCamera.y * BRICK_HEIGHT),
+ actor->pos.z - (_newCamera.z * BRICK_SIZE));
// TODO: these border values should get scaled for hiher resolutions
if (_engine->_renderer->_projPos.x < 80 || _engine->_renderer->_projPos.x >= _engine->width() - 60 || _engine->_renderer->_projPos.y < 80 || _engine->_renderer->_projPos.y >= _engine->height() - 50) {
- newCamera.x = ((actor->pos.x + BRICK_HEIGHT) / BRICK_SIZE) + (((actor->pos.x + BRICK_HEIGHT) / BRICK_SIZE) - newCamera.x) / 2;
- newCamera.y = actor->pos.y / BRICK_HEIGHT;
- newCamera.z = ((actor->pos.z + BRICK_HEIGHT) / BRICK_SIZE) + (((actor->pos.z + BRICK_HEIGHT) / BRICK_SIZE) - newCamera.z) / 2;
+ _newCamera.x = ((actor->pos.x + BRICK_HEIGHT) / BRICK_SIZE) + (((actor->pos.x + BRICK_HEIGHT) / BRICK_SIZE) - _newCamera.x) / 2;
+ _newCamera.y = actor->pos.y / BRICK_HEIGHT;
+ _newCamera.z = ((actor->pos.z + BRICK_HEIGHT) / BRICK_SIZE) + (((actor->pos.z + BRICK_HEIGHT) / BRICK_SIZE) - _newCamera.z) / 2;
- if (newCamera.x >= GRID_SIZE_X) {
- newCamera.x = GRID_SIZE_X - 1;
+ if (_newCamera.x >= GRID_SIZE_X) {
+ _newCamera.x = GRID_SIZE_X - 1;
}
- if (newCamera.z >= GRID_SIZE_Z) {
- newCamera.z = GRID_SIZE_Z - 1;
+ if (_newCamera.z >= GRID_SIZE_Z) {
+ _newCamera.z = GRID_SIZE_Z - 1;
}
_engine->_redraw->_reqBgRedraw = true;
diff --git a/engines/twine/scene/grid.h b/engines/twine/scene/grid.h
index 8f893e484f..4ad16f643f 100644
--- a/engines/twine/scene/grid.h
+++ b/engines/twine/scene/grid.h
@@ -196,15 +196,15 @@ public:
const uint8 *getBlockBufferGround(const IVec3 &pos, int32 &ground);
/** New grid camera x, y and z coordinates */
- IVec3 newCamera;
+ IVec3 _newCamera;
/** Current grid camera x, y and z coordinates */
- IVec3 camera;
+ IVec3 _camera;
/** Flag to know if the engine is using celling grids */
- int16 useCellingGrid = 0; // useAnotherGrm
+ int16 _useCellingGrid = 0; // useAnotherGrm
/** Current celling grid index */
- int16 cellingGridIdx = 0; // currentGrid2
+ int16 _cellingGridIdx = 0; // currentGrid2
/**
* Draw 3D actor over bricks
diff --git a/engines/twine/scene/movements.cpp b/engines/twine/scene/movements.cpp
index e0138340bd..5720caa580 100644
--- a/engines/twine/scene/movements.cpp
+++ b/engines/twine/scene/movements.cpp
@@ -39,9 +39,9 @@ namespace TwinE {
Movements::Movements(TwinEEngine *engine) : _engine(engine) {}
void Movements::getShadowPosition(const IVec3 &pos) {
- const uint8 *ptr = _engine->_grid->getBlockBufferGround(pos, processActor.y);
- processActor.x = pos.x;
- processActor.z = pos.z;
+ const uint8 *ptr = _engine->_grid->getBlockBufferGround(pos, _processActor.y);
+ _processActor.x = pos.x;
+ _processActor.z = pos.z;
ShapeType shadowCollisionType;
if (*ptr) {
@@ -53,7 +53,7 @@ void Movements::getShadowPosition(const IVec3 &pos) {
}
_engine->_collision->reajustActorPosition(shadowCollisionType);
- _engine->_actor->shadowCoord = processActor;
+ _engine->_actor->shadowCoord = _processActor;
}
void Movements::setActorAngleSafe(int16 startAngle, int16 endAngle, int16 stepAngle, ActorMoveStruct *movePtr) {
@@ -106,13 +106,13 @@ int32 Movements::getAngleAndSetTargetActorDistance(int32 x1, int32 z1, int32 x2,
flag = false;
}
- targetActorDistance = (int32)sqrt((float)(newX + newZ));
+ _targetActorDistance = (int32)sqrt((float)(newX + newZ));
- if (!targetActorDistance) {
+ if (!_targetActorDistance) {
return 0;
}
- const int32 destAngle = (difZ * SCENE_SIZE_HALF) / targetActorDistance;
+ const int32 destAngle = (difZ * SCENE_SIZE_HALF) / _targetActorDistance;
int32 startAngle = ANGLE_0;
// stopAngle = ANGLE_90;
@@ -237,7 +237,7 @@ bool Movements::processBehaviourExecution(int actorIdx) {
case HeroBehaviourType::kAggressive:
if (_engine->_actor->autoAggressive) {
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- heroMoved = true;
+ _heroMoved = true;
actor->angle = actor->move.getRealAngle(_engine->_lbaTime);
// TODO: previousLoopActionKey must be handled properly
if (!_previousLoopActionKey || actor->anim == AnimationTypes::kStanding) {
@@ -258,13 +258,13 @@ bool Movements::processBehaviourExecution(int actorIdx) {
} else {
if (_engine->_input->isActionActive(TwinEActionType::TurnLeft)) {
_engine->_animations->initAnim(AnimationTypes::kLeftPunch, AnimType::kAnimationType_1, AnimationTypes::kStanding, actorIdx);
- heroMoved = true;
+ _heroMoved = true;
} else if (_engine->_input->isActionActive(TwinEActionType::TurnRight)) {
_engine->_animations->initAnim(AnimationTypes::kRightPunch, AnimType::kAnimationType_1, AnimationTypes::kStanding, actorIdx);
- heroMoved = true;
+ _heroMoved = true;
} else if (_engine->_input->isActionActive(TwinEActionType::MoveForward)) {
_engine->_animations->initAnim(AnimationTypes::kKick, AnimType::kAnimationType_1, AnimationTypes::kStanding, actorIdx);
- heroMoved = true;
+ _heroMoved = true;
}
}
break;
@@ -313,24 +313,24 @@ void Movements::processManualMovementExecution(int actorIdx) {
if (actor->isAttackWeaponAnimationActive()) {
return;
}
- if (!_changedCursorKeys || heroAction) {
+ if (!_changedCursorKeys || _heroAction) {
// if walking should get stopped
if (!_engine->_input->isActionActive(TwinEActionType::MoveForward) && !_engine->_input->isActionActive(TwinEActionType::MoveBackward)) {
- if (heroMoved && (_heroActionKey != _previousLoopActionKey || _changedCursorKeys != _previousChangedCursorKeys)) {
+ if (_heroMoved && (_heroActionKey != _previousLoopActionKey || _changedCursorKeys != _previousChangedCursorKeys)) {
_engine->_animations->initAnim(AnimationTypes::kStanding, AnimType::kAnimationTypeLoop, AnimationTypes::kAnimInvalid, actorIdx);
}
}
- heroMoved = false;
+ _heroMoved = false;
if (_engine->_input->isActionActive(TwinEActionType::MoveForward)) {
- if (!_engine->_scene->currentActorInZone) {
+ if (!_engine->_scene->_currentActorInZone) {
_engine->_animations->initAnim(AnimationTypes::kForward, AnimType::kAnimationTypeLoop, AnimationTypes::kAnimInvalid, actorIdx);
}
- heroMoved = true;
+ _heroMoved = true;
} else if (_engine->_input->isActionActive(TwinEActionType::MoveBackward)) {
_engine->_animations->initAnim(AnimationTypes::kBackward, AnimType::kAnimationTypeLoop, AnimationTypes::kAnimInvalid, actorIdx);
- heroMoved = true;
+ _heroMoved = true;
}
if (_engine->_input->isActionActive(TwinEActionType::TurnLeft)) {
@@ -341,7 +341,7 @@ void Movements::processManualMovementExecution(int actorIdx) {
actor->angle = actor->move.getRealAngle(_engine->_lbaTime);
}
}
- heroMoved = true;
+ _heroMoved = true;
} else if (_engine->_input->isActionActive(TwinEActionType::TurnRight)) {
if (actor->anim == AnimationTypes::kStanding) {
_engine->_animations->initAnim(AnimationTypes::kTurnRight, AnimType::kAnimationTypeLoop, AnimationTypes::kAnimInvalid, actorIdx);
@@ -350,7 +350,7 @@ void Movements::processManualMovementExecution(int actorIdx) {
actor->angle = actor->move.getRealAngle(_engine->_lbaTime);
}
}
- heroMoved = true;
+ _heroMoved = true;
}
}
}
@@ -378,15 +378,15 @@ void Movements::processManualRotationExecution(int actorIdx) {
void Movements::processManualAction(int actorIdx) {
if (IS_HERO(actorIdx)) {
- heroAction = false;
+ _heroAction = false;
if (_engine->_input->isHeroActionActive()) {
- heroAction = processBehaviourExecution(actorIdx);
+ _heroAction = processBehaviourExecution(actorIdx);
}
}
if (_engine->_input->isActionActive(TwinEActionType::ThrowMagicBall) && !_engine->_gameState->inventoryDisabled()) {
if (processAttackExecution(actorIdx)) {
- heroMoved = true;
+ _heroMoved = true;
}
}
diff --git a/engines/twine/scene/movements.h b/engines/twine/scene/movements.h
index fd70c0286f..5ba51bfada 100644
--- a/engines/twine/scene/movements.h
+++ b/engines/twine/scene/movements.h
@@ -112,7 +112,7 @@ private:
void processManualMovementExecution(int actorIdx);
void processManualRotationExecution(int actorIdx);
- bool heroAction = false;
+ bool _heroAction = false;
public:
Movements(TwinEEngine *engine);
@@ -124,15 +124,15 @@ public:
*/
bool shouldTriggerZoneAction() const;
- bool heroMoved = false;
+ bool _heroMoved = false;
/** Process actor coordinate */
- IVec3 processActor;
+ IVec3 _processActor;
/** Previous process actor coordinate */
- IVec3 previousActor;
+ IVec3 _previousActor;
- int32 targetActorDistance = 0;
+ int32 _targetActorDistance = 0;
/**
* Get shadow position
@@ -220,7 +220,7 @@ public:
};
inline bool Movements::shouldTriggerZoneAction() const {
- return heroAction;
+ return _heroAction;
}
} // namespace TwinE
diff --git a/engines/twine/scene/scene.cpp b/engines/twine/scene/scene.cpp
index 51ebaac34b..03ba269172 100644
--- a/engines/twine/scene/scene.cpp
+++ b/engines/twine/scene/scene.cpp
@@ -44,7 +44,7 @@
namespace TwinE {
Scene::~Scene() {
- free(currentScene);
+ free(_currentScene);
}
void Scene::setActorStaticFlags(ActorStruct *act, uint32 staticFlags) {
@@ -148,14 +148,14 @@ void Scene::setBonusParameterFlags(ActorStruct *act, uint16 bonusFlags) {
}
bool Scene::loadSceneLBA2() {
- Common::MemoryReadStream stream(currentScene, _currentSceneSize);
- sceneTextBank = (TextBankId)stream.readByte();
+ Common::MemoryReadStream stream(_currentScene, _currentSceneSize);
+ _sceneTextBank = (TextBankId)stream.readByte();
_currentGameOverScene = stream.readByte();
stream.skip(4);
- alphaLight = ClampAngle(stream.readUint16LE());
- betaLight = ClampAngle(stream.readUint16LE());
- debug(2, "Using %i and %i as light vectors", alphaLight, betaLight);
+ _alphaLight = ClampAngle(stream.readUint16LE());
+ _betaLight = ClampAngle(stream.readUint16LE());
+ debug(2, "Using %i and %i as light vectors", _alphaLight, _betaLight);
_isOutsideScene = stream.readByte();
@@ -177,17 +177,17 @@ bool Scene::loadSceneLBA2() {
_sceneHeroPos.y = stream.readSint16LE();
_sceneHeroPos.z = stream.readSint16LE();
- sceneHero->moveScriptSize = stream.readUint16LE();
- sceneHero->moveScript = currentScene + stream.pos();
- stream.skip(sceneHero->moveScriptSize);
+ _sceneHero->moveScriptSize = stream.readUint16LE();
+ _sceneHero->moveScript = _currentScene + stream.pos();
+ stream.skip(_sceneHero->moveScriptSize);
- sceneHero->lifeScriptSize = stream.readUint16LE();
- sceneHero->lifeScript = currentScene + stream.pos();
- stream.skip(sceneHero->lifeScriptSize);
+ _sceneHero->lifeScriptSize = stream.readUint16LE();
+ _sceneHero->lifeScript = _currentScene + stream.pos();
+ stream.skip(_sceneHero->lifeScriptSize);
- sceneNumActors = stream.readUint16LE();
+ _sceneNumActors = stream.readUint16LE();
int cnt = 1;
- for (int32 a = 1; a < sceneNumActors; a++, cnt++) {
+ for (int32 a = 1; a < _sceneNumActors; a++, cnt++) {
_engine->_actor->resetActor(a);
ActorStruct *act = &_sceneActors[a];
setActorStaticFlags(act, stream.readUint32LE());
@@ -223,22 +223,22 @@ bool Scene::loadSceneLBA2() {
act->setLife(stream.readByte());
act->moveScriptSize = stream.readUint16LE();
- act->moveScript = currentScene + stream.pos();
+ act->moveScript = _currentScene + stream.pos();
stream.skip(act->moveScriptSize);
act->lifeScriptSize = stream.readUint16LE();
- act->lifeScript = currentScene + stream.pos();
+ act->lifeScript = _currentScene + stream.pos();
stream.skip(act->lifeScriptSize);
if (_engine->_debugScene->_onlyLoadActor != -1 && _engine->_debugScene->_onlyLoadActor != cnt) {
- sceneNumActors--;
+ _sceneNumActors--;
a--;
}
}
- sceneNumZones = stream.readUint16LE();
- for (int32 i = 0; i < sceneNumZones; i++) {
- ZoneStruct *zone = &sceneZones[i];
+ _sceneNumZones = stream.readUint16LE();
+ for (int32 i = 0; i < _sceneNumZones; i++) {
+ ZoneStruct *zone = &_sceneZones[i];
zone->mins.x = stream.readSint32LE();
zone->mins.y = stream.readSint32LE();
zone->mins.z = stream.readSint32LE();
@@ -260,9 +260,9 @@ bool Scene::loadSceneLBA2() {
zone->snap = stream.readUint16LE();
}
- sceneNumTracks = stream.readUint16LE();
- for (int32 i = 0; i < sceneNumTracks; i++) {
- IVec3 *point = &sceneTracks[i];
+ _sceneNumTracks = stream.readUint16LE();
+ for (int32 i = 0; i < _sceneNumTracks; i++) {
+ IVec3 *point = &_sceneTracks[i];
point->x = stream.readSint32LE();
point->y = stream.readSint32LE();
point->z = stream.readSint32LE();
@@ -278,18 +278,18 @@ bool Scene::loadSceneLBA2() {
}
bool Scene::loadSceneLBA1() {
- Common::MemoryReadStream stream(currentScene, _currentSceneSize);
+ Common::MemoryReadStream stream(_currentScene, _currentSceneSize);
// load scene ambience properties
- sceneTextBank = (TextBankId)stream.readByte();
+ _sceneTextBank = (TextBankId)stream.readByte();
_currentGameOverScene = stream.readByte();
stream.skip(4);
// FIXME: Workaround to fix lighting issue - not using proper dark light
// Using 1215 and 1087 as light vectors - scene 8
- alphaLight = ClampAngle(stream.readUint16LE());
- betaLight = ClampAngle(stream.readUint16LE());
- debug(2, "Using %i and %i as light vectors", alphaLight, betaLight);
+ _alphaLight = ClampAngle(stream.readUint16LE());
+ _betaLight = ClampAngle(stream.readUint16LE());
+ debug(2, "Using %i and %i as light vectors", _alphaLight, _betaLight);
for (int i = 0; i < 4; ++i) {
_sampleAmbiance[i] = stream.readUint16LE();
@@ -307,17 +307,17 @@ bool Scene::loadSceneLBA1() {
_sceneHeroPos.y = stream.readUint16LE();
_sceneHeroPos.z = stream.readUint16LE();
- sceneHero->moveScriptSize = stream.readUint16LE();
- sceneHero->moveScript = currentScene + stream.pos();
- stream.skip(sceneHero->moveScriptSize);
+ _sceneHero->moveScriptSize = stream.readUint16LE();
+ _sceneHero->moveScript = _currentScene + stream.pos();
+ stream.skip(_sceneHero->moveScriptSize);
- sceneHero->lifeScriptSize = stream.readUint16LE();
- sceneHero->lifeScript = currentScene + stream.pos();
- stream.skip(sceneHero->lifeScriptSize);
+ _sceneHero->lifeScriptSize = stream.readUint16LE();
+ _sceneHero->lifeScript = _currentScene + stream.pos();
+ stream.skip(_sceneHero->lifeScriptSize);
- sceneNumActors = stream.readUint16LE();
+ _sceneNumActors = stream.readUint16LE();
int cnt = 1;
- for (int32 a = 1; a < sceneNumActors; a++, cnt++) {
+ for (int32 a = 1; a < _sceneNumActors; a++, cnt++) {
_engine->_actor->resetActor(a);
ActorStruct *act = &_sceneActors[a];
@@ -351,22 +351,22 @@ bool Scene::loadSceneLBA1() {
act->setLife(stream.readByte());
act->moveScriptSize = stream.readUint16LE();
- act->moveScript = currentScene + stream.pos();
+ act->moveScript = _currentScene + stream.pos();
stream.skip(act->moveScriptSize);
act->lifeScriptSize = stream.readUint16LE();
- act->lifeScript = currentScene + stream.pos();
+ act->lifeScript = _currentScene + stream.pos();
stream.skip(act->lifeScriptSize);
if (_engine->_debugScene->_onlyLoadActor != -1 && _engine->_debugScene->_onlyLoadActor != cnt) {
- sceneNumActors--;
+ _sceneNumActors--;
a--;
}
}
- sceneNumZones = stream.readUint16LE();
- for (int32 i = 0; i < sceneNumZones; i++) {
- ZoneStruct *zone = &sceneZones[i];
+ _sceneNumZones = stream.readUint16LE();
+ for (int32 i = 0; i < _sceneNumZones; i++) {
+ ZoneStruct *zone = &_sceneZones[i];
zone->mins.x = stream.readUint16LE();
zone->mins.y = stream.readUint16LE();
zone->mins.z = stream.readUint16LE();
@@ -385,9 +385,9 @@ bool Scene::loadSceneLBA1() {
zone->snap = stream.readUint16LE();
}
- sceneNumTracks = stream.readUint16LE();
- for (int32 i = 0; i < sceneNumTracks; i++) {
- IVec3 *point = &sceneTracks[i];
+ _sceneNumTracks = stream.readUint16LE();
+ for (int32 i = 0; i < _sceneNumTracks; i++) {
+ IVec3 *point = &_sceneTracks[i];
point->x = stream.readUint16LE();
point->y = stream.readUint16LE();
point->z = stream.readUint16LE();
@@ -395,9 +395,9 @@ bool Scene::loadSceneLBA1() {
if (_engine->_debugScene->_useScenePatches) {
// TODO: these were found in the disassembly and might be some script fixes - check me and activate me
- switch (currentSceneIdx) {
+ switch (_currentSceneIdx) {
case LBA1SceneId::Hamalayi_Mountains_landing_place:
- assert(sceneNumActors >= 22);
+ assert(_sceneNumActors >= 22);
_sceneActors[21].pos.x = _sceneActors[21].collisionPos.x = 0x1b00;
_sceneActors[21].pos.z = _sceneActors[21].collisionPos.z = 0x300;
break;
@@ -436,7 +436,7 @@ bool Scene::loadSceneLBA1() {
bool Scene::initScene(int32 index) {
// load scene from file
- _currentSceneSize = HQR::getAllocEntry(¤tScene, Resources::HQR_SCENE_FILE, index);
+ _currentSceneSize = HQR::getAllocEntry(&_currentScene, Resources::HQR_SCENE_FILE, index);
if (_currentSceneSize == 0) {
return false;
}
@@ -453,8 +453,8 @@ bool Scene::initScene(int32 index) {
void Scene::resetScene() {
_engine->_extra->resetExtras();
- for (int32 i = 0; i < ARRAYSIZE(sceneFlags); i++) {
- sceneFlags[i] = 0;
+ for (int32 i = 0; i < ARRAYSIZE(_sceneFlags); i++) {
+ _sceneFlags[i] = 0;
}
for (int32 i = 0; i < OVERLAY_MAX_ENTRIES; i++) {
@@ -465,33 +465,33 @@ void Scene::resetScene() {
}
void Scene::reloadCurrentScene() {
- needChangeScene = currentSceneIdx;
+ _needChangeScene = _currentSceneIdx;
}
void Scene::changeScene() {
// change twinsen house destroyed hard-coded
- if (needChangeScene == LBA1SceneId::Citadel_Island_near_twinsens_house && _engine->_gameState->hasOpenedFunfrocksSafe()) {
- needChangeScene = LBA1SceneId::Citadel_Island_Twinsens_house_destroyed;
+ if (_needChangeScene == LBA1SceneId::Citadel_Island_near_twinsens_house && _engine->_gameState->hasOpenedFunfrocksSafe()) {
+ _needChangeScene = LBA1SceneId::Citadel_Island_Twinsens_house_destroyed;
}
// local backup previous scene
- previousSceneIdx = currentSceneIdx;
- currentSceneIdx = needChangeScene;
+ _previousSceneIdx = _currentSceneIdx;
+ _currentSceneIdx = _needChangeScene;
- if (_engine->isLBA1() && currentSceneIdx >= LBA1SceneId::Citadel_Island_Prison && currentSceneIdx < LBA1SceneId::SceneIdMax) {
- snprintf(_engine->_gameState->sceneName, sizeof(_engine->_gameState->sceneName), "%i %s", currentSceneIdx, _engine->_holomap->getLocationName(currentSceneIdx));
+ if (_engine->isLBA1() && _currentSceneIdx >= LBA1SceneId::Citadel_Island_Prison && _currentSceneIdx < LBA1SceneId::SceneIdMax) {
+ snprintf(_engine->_gameState->sceneName, sizeof(_engine->_gameState->sceneName), "%i %s", _currentSceneIdx, _engine->_holomap->getLocationName(_currentSceneIdx));
} else {
- snprintf(_engine->_gameState->sceneName, sizeof(_engine->_gameState->sceneName), "%i", currentSceneIdx);
+ snprintf(_engine->_gameState->sceneName, sizeof(_engine->_gameState->sceneName), "%i", _currentSceneIdx);
}
- debug(2, "Entering scene %s (came from %i)", _engine->_gameState->sceneName, previousSceneIdx);
+ debug(2, "Entering scene %s (came from %i)", _engine->_gameState->sceneName, _previousSceneIdx);
- if (needChangeScene == LBA1SceneId::Polar_Island_end_scene) {
+ if (_needChangeScene == LBA1SceneId::Polar_Island_end_scene) {
_engine->unlockAchievement("LBA_ACH_001");
// if you finish the game in less than 4 hours
if (_engine->getTotalPlayTime() <= 1000 * 60 * 60 * 4) {
_engine->unlockAchievement("LBA_ACH_005");
}
- } else if (needChangeScene == LBA1SceneId::Brundle_Island_Secret_room) {
+ } else if (_needChangeScene == LBA1SceneId::Brundle_Island_Secret_room) {
_engine->unlockAchievement("LBA_ACH_006");
}
@@ -500,73 +500,73 @@ void Scene::changeScene() {
resetScene();
_engine->_actor->loadHeroEntities();
- sceneHero->controlMode = ControlMode::kManual;
- sceneHero->zone = -1;
- sceneHero->positionInLifeScript = 0;
- sceneHero->positionInMoveScript = -1;
- sceneHero->labelIdx = -1;
+ _sceneHero->controlMode = ControlMode::kManual;
+ _sceneHero->zone = -1;
+ _sceneHero->positionInLifeScript = 0;
+ _sceneHero->positionInMoveScript = -1;
+ _sceneHero->labelIdx = -1;
- initScene(needChangeScene);
+ initScene(_needChangeScene);
- if (holomapTrajectory != -1) {
- _engine->_holomap->drawHolomapTrajectory(holomapTrajectory);
- holomapTrajectory = -1;
+ if (_holomapTrajectory != -1) {
+ _engine->_holomap->drawHolomapTrajectory(_holomapTrajectory);
+ _holomapTrajectory = -1;
}
- if (needChangeScene == LBA1SceneId::Citadel_Island_end_sequence_1 || needChangeScene == LBA1SceneId::Citadel_Island_end_sequence_2) {
- sceneTextBank = TextBankId::Tippet_Island;
+ if (_needChangeScene == LBA1SceneId::Citadel_Island_end_sequence_1 || _needChangeScene == LBA1SceneId::Citadel_Island_end_sequence_2) {
+ _sceneTextBank = TextBankId::Tippet_Island;
}
_engine->_text->initSceneTextBank();
- _engine->_grid->initGrid(needChangeScene);
+ _engine->_grid->initGrid(_needChangeScene);
- if (heroPositionType == ScenePositionType::kZone) {
- newHeroPos = _zoneHeroPos;
+ if (_heroPositionType == ScenePositionType::kZone) {
+ _newHeroPos = _zoneHeroPos;
}
- if (heroPositionType == ScenePositionType::kScene || heroPositionType == ScenePositionType::kNoPosition) {
- newHeroPos = _sceneHeroPos;
+ if (_heroPositionType == ScenePositionType::kScene || _heroPositionType == ScenePositionType::kNoPosition) {
+ _newHeroPos = _sceneHeroPos;
}
- sceneHero->pos.x = newHeroPos.x;
- sceneHero->pos.y = heroYBeforeFall = newHeroPos.y;
- sceneHero->pos.z = newHeroPos.z;
+ _sceneHero->pos.x = _newHeroPos.x;
+ _sceneHero->pos.y = _heroYBeforeFall = _newHeroPos.y;
+ _sceneHero->pos.z = _newHeroPos.z;
- _engine->_renderer->setLightVector(alphaLight, betaLight, ANGLE_0);
+ _engine->_renderer->setLightVector(_alphaLight, _betaLight, ANGLE_0);
- if (previousSceneIdx != SCENE_CEILING_GRID_FADE_1 && previousSceneIdx != needChangeScene) {
+ if (_previousSceneIdx != SCENE_CEILING_GRID_FADE_1 && _previousSceneIdx != _needChangeScene) {
_engine->_actor->previousHeroBehaviour = _engine->_actor->heroBehaviour;
- _engine->_actor->previousHeroAngle = sceneHero->angle;
+ _engine->_actor->previousHeroAngle = _sceneHero->angle;
_engine->autoSave();
}
_engine->_actor->restartHeroScene();
- for (int32 a = 1; a < sceneNumActors; a++) {
+ for (int32 a = 1; a < _sceneNumActors; a++) {
_engine->_actor->initActor(a);
}
_engine->_gameState->inventoryNumKeys = 0;
_engine->_disableScreenRecenter = false;
- heroPositionType = ScenePositionType::kNoPosition;
+ _heroPositionType = ScenePositionType::kNoPosition;
_sampleAmbienceTime = 0;
- ActorStruct *followedActor = getActor(currentlyFollowedActor);
+ ActorStruct *followedActor = getActor(_currentlyFollowedActor);
_engine->_grid->centerOnActor(followedActor);
_engine->_gameState->magicBallIdx = -1;
- _engine->_movements->heroMoved = true;
- _engine->_grid->useCellingGrid = -1;
- _engine->_grid->cellingGridIdx = -1;
+ _engine->_movements->_heroMoved = true;
+ _engine->_grid->_useCellingGrid = -1;
+ _engine->_grid->_cellingGridIdx = -1;
_engine->_screens->_lockPalette = false;
- needChangeScene = SCENE_CEILING_GRID_FADE_1;
+ _needChangeScene = SCENE_CEILING_GRID_FADE_1;
_enableGridTileRendering = true;
- _engine->_renderer->setLightVector(alphaLight, betaLight, ANGLE_0);
+ _engine->_renderer->setLightVector(_alphaLight, _betaLight, ANGLE_0);
if (_sceneMusic != -1) {
- debug(2, "Scene %i music track id: %i", currentSceneIdx, _sceneMusic);
+ debug(2, "Scene %i music track id: %i", _currentSceneIdx, _sceneMusic);
_engine->_music->playTrackMusic(_sceneMusic);
}
}
@@ -593,13 +593,13 @@ void Scene::initSceneVars() {
_sampleRound[2] = 0;
_sampleRound[3] = 0;
- sceneNumActors = 0;
- sceneNumZones = 0;
- sceneNumTracks = 0;
+ _sceneNumActors = 0;
+ _sceneNumZones = 0;
+ _sceneNumTracks = 0;
}
void Scene::playSceneMusic() {
- if (currentSceneIdx == LBA1SceneId::Tippet_Island_Twinsun_Cafe && _engine->_gameState->hasArrivedHamalayi()) {
+ if (_currentSceneIdx == LBA1SceneId::Tippet_Island_Twinsun_Cafe && _engine->_gameState->hasArrivedHamalayi()) {
_engine->_music->playMidiMusic(8);
} else {
_engine->_music->playMidiMusic(_sceneMusic);
@@ -648,7 +648,7 @@ void Scene::processZoneExtraBonus(ZoneStruct *zone) {
}
const int16 amount = zone->infoData.Bonus.amount;
- const int32 angle = _engine->_movements->getAngleAndSetTargetActorDistance(ABS(zone->maxs.x + zone->mins.x) / 2, ABS(zone->maxs.z + zone->mins.z) / 2, sceneHero->pos.x, sceneHero->pos.z);
+ const int32 angle = _engine->_movements->getAngleAndSetTargetActorDistance(ABS(zone->maxs.x + zone->mins.x) / 2, ABS(zone->maxs.z + zone->mins.z) / 2, _sceneHero->pos.x, _sceneHero->pos.z);
const int32 index = _engine->_extra->addExtraBonus(ABS(zone->maxs.x + zone->mins.x) / 2, zone->maxs.y, ABS(zone->maxs.z + zone->mins.z) / 2, ANGLE_63, angle, bonusSprite, amount);
if (index != -1) {
@@ -668,11 +668,11 @@ void Scene::processActorZones(int32 actorIdx) {
bool tmpCellingGrid = false;
if (IS_HERO(actorIdx)) {
- currentActorInZone = false;
+ _currentActorInZone = false;
}
- for (int32 z = 0; z < sceneNumZones; z++) {
- ZoneStruct *zone = &sceneZones[z];
+ for (int32 z = 0; z < _sceneNumZones; z++) {
+ ZoneStruct *zone = &_sceneZones[z];
// check if actor is in zone
if ((currentX >= zone->mins.x && currentX <= zone->maxs.x) &&
@@ -681,20 +681,20 @@ void Scene::processActorZones(int32 actorIdx) {
switch (zone->type) {
case ZoneType::kCube:
if (IS_HERO(actorIdx) && actor->life > 0) {
- needChangeScene = zone->infoData.ChangeScene.newSceneIdx;
+ _needChangeScene = zone->infoData.ChangeScene.newSceneIdx;
_zoneHeroPos.x = actor->pos.x - zone->mins.x + zone->infoData.ChangeScene.x;
_zoneHeroPos.y = actor->pos.y - zone->mins.y + zone->infoData.ChangeScene.y;
_zoneHeroPos.z = actor->pos.z - zone->mins.z + zone->infoData.ChangeScene.z;
- heroPositionType = ScenePositionType::kZone;
+ _heroPositionType = ScenePositionType::kZone;
}
break;
case ZoneType::kCamera:
- if (currentlyFollowedActor == actorIdx && !_engine->_debugGrid->_useFreeCamera) {
+ if (_currentlyFollowedActor == actorIdx && !_engine->_debugGrid->_useFreeCamera) {
_engine->_disableScreenRecenter = true;
- if (_engine->_grid->newCamera.x != zone->infoData.CameraView.x || _engine->_grid->newCamera.y != zone->infoData.CameraView.y || _engine->_grid->newCamera.z != zone->infoData.CameraView.z) {
- _engine->_grid->newCamera.x = zone->infoData.CameraView.x;
- _engine->_grid->newCamera.y = zone->infoData.CameraView.y;
- _engine->_grid->newCamera.z = zone->infoData.CameraView.z;
+ if (_engine->_grid->_newCamera.x != zone->infoData.CameraView.x || _engine->_grid->_newCamera.y != zone->infoData.CameraView.y || _engine->_grid->_newCamera.z != zone->infoData.CameraView.z) {
+ _engine->_grid->_newCamera.x = zone->infoData.CameraView.x;
+ _engine->_grid->_newCamera.y = zone->infoData.CameraView.y;
+ _engine->_grid->_newCamera.z = zone->infoData.CameraView.z;
_engine->_redraw->_reqBgRedraw = true;
}
}
@@ -703,17 +703,17 @@ void Scene::processActorZones(int32 actorIdx) {
actor->zone = zone->infoData.Sceneric.zoneIdx;
break;
case ZoneType::kGrid:
- if (currentlyFollowedActor == actorIdx) {
+ if (_currentlyFollowedActor == actorIdx) {
tmpCellingGrid = true;
- if (_engine->_grid->useCellingGrid != zone->infoData.CeillingGrid.newGrid) {
+ if (_engine->_grid->_useCellingGrid != zone->infoData.CeillingGrid.newGrid) {
if (zone->infoData.CeillingGrid.newGrid != -1) {
_engine->_grid->createGridMap();
}
- _engine->_grid->useCellingGrid = zone->infoData.CeillingGrid.newGrid;
- _engine->_grid->cellingGridIdx = z;
+ _engine->_grid->_useCellingGrid = zone->infoData.CeillingGrid.newGrid;
+ _engine->_grid->_cellingGridIdx = z;
ScopedEngineFreeze freeze(_engine);
- _engine->_grid->initCellingGrid(_engine->_grid->useCellingGrid);
+ _engine->_grid->initCellingGrid(_engine->_grid->_useCellingGrid);
}
}
break;
@@ -728,7 +728,7 @@ void Scene::processActorZones(int32 actorIdx) {
_engine->freezeTime();
_engine->exitSceneryView();
_engine->_text->setFontCrossColor(zone->infoData.DisplayText.textColor);
- talkingActor = actorIdx;
+ _talkingActor = actorIdx;
_engine->_text->drawTextProgressive(zone->infoData.DisplayText.textIdx);
_engine->unfreezeTime();
_engine->_redraw->redrawEngineActions(true);
@@ -737,12 +737,12 @@ void Scene::processActorZones(int32 actorIdx) {
case ZoneType::kLadder:
if (IS_HERO(actorIdx) && _engine->_actor->heroBehaviour != HeroBehaviourType::kProtoPack && (actor->anim == AnimationTypes::kForward || actor->anim == AnimationTypes::kTopLadder || actor->anim == AnimationTypes::kClimbLadder)) {
_engine->_movements->rotateActor(actor->boudingBox.mins.x, actor->boudingBox.mins.z, actor->angle + ANGLE_360 + ANGLE_135);
- _engine->_renderer->_destPos.x += _engine->_movements->processActor.x;
- _engine->_renderer->_destPos.z += _engine->_movements->processActor.z;
+ _engine->_renderer->_destPos.x += _engine->_movements->_processActor.x;
+ _engine->_renderer->_destPos.z += _engine->_movements->_processActor.z;
if (_engine->_renderer->_destPos.x >= 0 && _engine->_renderer->_destPos.z >= 0 && _engine->_renderer->_destPos.x <= 0x7E00 && _engine->_renderer->_destPos.z <= 0x7E00) {
if (_engine->_grid->getBrickShape(_engine->_renderer->_destPos.x, actor->pos.y + ANGLE_90, _engine->_renderer->_destPos.z) != ShapeType::kNone) {
- currentActorInZone = true;
+ _currentActorInZone = true;
if (actor->pos.y >= ABS(zone->mins.y + zone->maxs.y) / 2) {
_engine->_animations->initAnim(AnimationTypes::kTopLadder, AnimType::kAnimationType_2, AnimationTypes::kStanding, actorIdx); // reached end of ladder
} else {
@@ -756,17 +756,17 @@ void Scene::processActorZones(int32 actorIdx) {
}
}
- if (!tmpCellingGrid && actorIdx == currentlyFollowedActor && _engine->_grid->useCellingGrid != -1) {
- _engine->_grid->useCellingGrid = -1;
- _engine->_grid->cellingGridIdx = -1;
+ if (!tmpCellingGrid && actorIdx == _currentlyFollowedActor && _engine->_grid->_useCellingGrid != -1) {
+ _engine->_grid->_useCellingGrid = -1;
+ _engine->_grid->_cellingGridIdx = -1;
_engine->_grid->createGridMap();
_engine->_redraw->_reqBgRedraw = true;
}
}
void Scene::stopRunningGame() {
- free(currentScene);
- currentScene = nullptr;
+ free(_currentScene);
+ _currentScene = nullptr;
}
} // namespace TwinE
diff --git a/engines/twine/scene/scene.h b/engines/twine/scene/scene.h
index dc555ce02d..42c58c6b77 100644
--- a/engines/twine/scene/scene.h
+++ b/engines/twine/scene/scene.h
@@ -163,61 +163,62 @@ private:
int32 _currentGameOverScene = 0;
+ uint8 *_currentScene = nullptr;
+
public:
Scene(TwinEEngine *engine) : _engine(engine) {}
~Scene();
- void playSceneMusic();
-
- void reloadCurrentScene();
- uint8 *currentScene = nullptr;
+ int32 _needChangeScene = LBA1SceneId::Citadel_Island_Prison;
+ int32 _currentSceneIdx = LBA1SceneId::Citadel_Island_Prison;
+ int32 _previousSceneIdx = LBA1SceneId::Citadel_Island_Prison;
- int32 needChangeScene = LBA1SceneId::Citadel_Island_Prison;
- int32 currentSceneIdx = LBA1SceneId::Citadel_Island_Prison;
- int32 previousSceneIdx = LBA1SceneId::Citadel_Island_Prison;
+ int32 _holomapTrajectory = -1;
- int32 holomapTrajectory = -1;
+ TextBankId _sceneTextBank = TextBankId::None;
+ int32 _alphaLight = ANGLE_0;
+ int32 _betaLight = ANGLE_0;
- TextBankId sceneTextBank = TextBankId::None;
- int32 alphaLight = ANGLE_0;
- int32 betaLight = ANGLE_0;
-
- IVec3 newHeroPos;
+ IVec3 _newHeroPos;
/** Hero Y coordinate before fall */
- int16 heroYBeforeFall = 0;
+ int16 _heroYBeforeFall = 0;
/** Hero type of position in scene */
- ScenePositionType heroPositionType = ScenePositionType::kNoPosition; // twinsenPositionModeInNewCube
+ ScenePositionType _heroPositionType = ScenePositionType::kNoPosition; // twinsenPositionModeInNewCube
// ACTORS
- int32 sceneNumActors = 0;
- ActorStruct *sceneHero = nullptr;
- ActorStruct *getActor(int32 actorIdx);
+ int32 _sceneNumActors = 0;
+ ActorStruct *_sceneHero = nullptr;
/** Meca pinguin actor index */
- int16 mecaPinguinIdx = 0; // currentPingouin
+ int16 _mecaPinguinIdx = 0; // currentPingouin
/** Current followed actor in scene */
- int16 currentlyFollowedActor = OWN_ACTOR_SCENE_INDEX;
+ int16 _currentlyFollowedActor = OWN_ACTOR_SCENE_INDEX;
/** Current actor in zone - climbing a ladder */
- bool currentActorInZone = false;
+ bool _currentActorInZone = false;
/** Current actor manipulated in scripts */
- int16 currentScriptValue = 0; // manipActorResult
+ int16 _currentScriptValue = 0; // manipActorResult
- int16 talkingActor = 0;
+ int16 _talkingActor = 0;
// TRACKS Tell the actor where to go
-
- int32 sceneNumTracks = 0;
- IVec3 sceneTracks[NUM_MAX_TRACKS];
+ int32 _sceneNumTracks = 0;
+ IVec3 _sceneTracks[NUM_MAX_TRACKS];
bool _enableGridTileRendering = true;
- uint8 sceneFlags[NUM_SCENES_FLAGS]{0}; // cubeFlags
+ uint8 _sceneFlags[NUM_SCENES_FLAGS]{0}; // cubeFlags
- int32 sceneNumZones = 0;
- ZoneStruct sceneZones[NUM_MAX_ZONES];
+ int32 _sceneNumZones = 0;
+ ZoneStruct _sceneZones[NUM_MAX_ZONES];
+
+ ActorStruct *getActor(int32 actorIdx);
+
+ void playSceneMusic();
+
+ void reloadCurrentScene();
/** Change to another scene */
void changeScene();
@@ -237,7 +238,7 @@ public:
};
inline bool Scene::isGameRunning() const {
- return currentScene != nullptr;
+ return _currentScene != nullptr;
}
} // namespace TwinE
diff --git a/engines/twine/script/script_life_v1.cpp b/engines/twine/script/script_life_v1.cpp
index ad0f9ed41f..af8428d7fa 100644
--- a/engines/twine/script/script_life_v1.cpp
+++ b/engines/twine/script/script_life_v1.cpp
@@ -139,17 +139,17 @@ static int32 processLifeConditions(TwinEEngine *engine, LifeScriptContext &ctx)
switch (conditionOpcode) {
case kcCOL:
if (ctx.actor->life <= 0) {
- engine->_scene->currentScriptValue = -1;
+ engine->_scene->_currentScriptValue = -1;
} else {
- engine->_scene->currentScriptValue = ctx.actor->collision;
+ engine->_scene->_currentScriptValue = ctx.actor->collision;
}
break;
case kcCOL_OBJ: {
int32 actorIdx = ctx.stream.readByte();
if (engine->_scene->getActor(actorIdx)->life <= 0) {
- engine->_scene->currentScriptValue = -1;
+ engine->_scene->_currentScriptValue = -1;
} else {
- engine->_scene->currentScriptValue = engine->_scene->getActor(actorIdx)->collision;
+ engine->_scene->_currentScriptValue = engine->_scene->getActor(actorIdx)->collision;
}
break;
}
@@ -159,56 +159,56 @@ static int32 processLifeConditions(TwinEEngine *engine, LifeScriptContext &ctx)
ActorStruct *otherActor = engine->_scene->getActor(actorIdx);
if (!otherActor->dynamicFlags.bIsDead) {
if (ABS(ctx.actor->pos.y - otherActor->pos.y) >= 1500) {
- engine->_scene->currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
+ engine->_scene->_currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
} else {
// Returns int32, so we check for integer overflow
int32 distance = engine->_movements->getDistance2D(ctx.actor->pos, otherActor->pos);
if (ABS(distance) > MAX_TARGET_ACTOR_DISTANCE) {
- engine->_scene->currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
+ engine->_scene->_currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
} else {
- engine->_scene->currentScriptValue = distance;
+ engine->_scene->_currentScriptValue = distance;
}
}
} else {
- engine->_scene->currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
+ engine->_scene->_currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
}
break;
}
case kcZONE:
- engine->_scene->currentScriptValue = ctx.actor->zone;
+ engine->_scene->_currentScriptValue = ctx.actor->zone;
break;
case kcZONE_OBJ: {
int32 actorIdx = ctx.stream.readByte();
- engine->_scene->currentScriptValue = engine->_scene->getActor(actorIdx)->zone;
+ engine->_scene->_currentScriptValue = engine->_scene->getActor(actorIdx)->zone;
break;
}
case kcBODY:
- engine->_scene->currentScriptValue = (int16)ctx.actor->body;
+ engine->_scene->_currentScriptValue = (int16)ctx.actor->body;
break;
case kcBODY_OBJ: {
int32 actorIdx = ctx.stream.readByte();
- engine->_scene->currentScriptValue = (int16)engine->_scene->getActor(actorIdx)->body;
+ engine->_scene->_currentScriptValue = (int16)engine->_scene->getActor(actorIdx)->body;
break;
}
case kcANIM:
- engine->_scene->currentScriptValue = (int16)ctx.actor->anim;
+ engine->_scene->_currentScriptValue = (int16)ctx.actor->anim;
break;
case kcANIM_OBJ: {
int32 actorIdx = ctx.stream.readByte();
- engine->_scene->currentScriptValue = (int16)engine->_scene->getActor(actorIdx)->anim;
+ engine->_scene->_currentScriptValue = (int16)engine->_scene->getActor(actorIdx)->anim;
break;
}
case kcL_TRACK:
- engine->_scene->currentScriptValue = ctx.actor->labelIdx;
+ engine->_scene->_currentScriptValue = ctx.actor->labelIdx;
break;
case kcL_TRACK_OBJ: {
int32 actorIdx = ctx.stream.readByte();
- engine->_scene->currentScriptValue = engine->_scene->getActor(actorIdx)->labelIdx;
+ engine->_scene->_currentScriptValue = engine->_scene->getActor(actorIdx)->labelIdx;
break;
}
case kcFLAG_CUBE: {
int32 flagIdx = ctx.stream.readByte();
- engine->_scene->currentScriptValue = engine->_scene->sceneFlags[flagIdx];
+ engine->_scene->_currentScriptValue = engine->_scene->_sceneFlags[flagIdx];
break;
}
case kcCONE_VIEW: {
@@ -221,80 +221,80 @@ static int32 processLifeConditions(TwinEEngine *engine, LifeScriptContext &ctx)
if (!targetActor->dynamicFlags.bIsDead) {
if (ABS(targetActor->pos.y - ctx.actor->pos.y) < 1500) {
newAngle = engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->pos, targetActor->pos);
- if (ABS(engine->_movements->targetActorDistance) > MAX_TARGET_ACTOR_DISTANCE) {
- engine->_movements->targetActorDistance = MAX_TARGET_ACTOR_DISTANCE;
+ if (ABS(engine->_movements->_targetActorDistance) > MAX_TARGET_ACTOR_DISTANCE) {
+ engine->_movements->_targetActorDistance = MAX_TARGET_ACTOR_DISTANCE;
}
} else {
- engine->_movements->targetActorDistance = MAX_TARGET_ACTOR_DISTANCE;
+ engine->_movements->_targetActorDistance = MAX_TARGET_ACTOR_DISTANCE;
}
if (IS_HERO(targetActorIdx)) {
int32 heroAngle = ClampAngle(ctx.actor->angle + ANGLE_360 + ANGLE_45 - newAngle + ANGLE_360);
if (ABS(heroAngle) > ANGLE_90) {
- engine->_scene->currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
+ engine->_scene->_currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
} else {
- engine->_scene->currentScriptValue = engine->_movements->targetActorDistance;
+ engine->_scene->_currentScriptValue = engine->_movements->_targetActorDistance;
}
} else {
if (engine->_actor->heroBehaviour == HeroBehaviourType::kDiscrete) {
int32 heroAngle = ClampAngle(ctx.actor->angle + ANGLE_360 + ANGLE_45 - newAngle + ANGLE_360);
if (ABS(heroAngle) > ANGLE_90) {
- engine->_scene->currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
+ engine->_scene->_currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
} else {
- engine->_scene->currentScriptValue = engine->_movements->targetActorDistance;
+ engine->_scene->_currentScriptValue = engine->_movements->_targetActorDistance;
}
} else {
- engine->_scene->currentScriptValue = engine->_movements->targetActorDistance;
+ engine->_scene->_currentScriptValue = engine->_movements->_targetActorDistance;
}
}
} else {
- engine->_scene->currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
+ engine->_scene->_currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
}
break;
}
case kcHIT_BY:
- engine->_scene->currentScriptValue = ctx.actor->hitBy;
+ engine->_scene->_currentScriptValue = ctx.actor->hitBy;
break;
case kcACTION:
- engine->_scene->currentScriptValue = engine->_movements->shouldTriggerZoneAction() ? 1 : 0;
+ engine->_scene->_currentScriptValue = engine->_movements->shouldTriggerZoneAction() ? 1 : 0;
break;
case kcFLAG_GAME: {
int32 flagIdx = ctx.stream.readByte();
if (!engine->_gameState->inventoryDisabled() ||
(engine->_gameState->inventoryDisabled() && flagIdx >= MaxInventoryItems)) {
- engine->_scene->currentScriptValue = engine->_gameState->hasGameFlag(flagIdx);
+ engine->_scene->_currentScriptValue = engine->_gameState->hasGameFlag(flagIdx);
} else {
if (flagIdx == GAMEFLAG_INVENTORY_DISABLED) {
// TODO: this case should already get handled in the above if branch as the flagIdx is bigger than MaxInventoryItems
- engine->_scene->currentScriptValue = engine->_gameState->inventoryDisabled();
+ engine->_scene->_currentScriptValue = engine->_gameState->inventoryDisabled();
} else {
- engine->_scene->currentScriptValue = 0;
+ engine->_scene->_currentScriptValue = 0;
}
}
break;
}
case kcLIFE_POINT:
- engine->_scene->currentScriptValue = ctx.actor->life;
+ engine->_scene->_currentScriptValue = ctx.actor->life;
break;
case kcLIFE_POINT_OBJ: {
int32 actorIdx = ctx.stream.readByte();
- engine->_scene->currentScriptValue = engine->_scene->getActor(actorIdx)->life;
+ engine->_scene->_currentScriptValue = engine->_scene->getActor(actorIdx)->life;
break;
}
case kcNUM_LITTLE_KEYS:
- engine->_scene->currentScriptValue = engine->_gameState->inventoryNumKeys;
+ engine->_scene->_currentScriptValue = engine->_gameState->inventoryNumKeys;
break;
case kcNUM_GOLD_PIECES:
conditionValueSize = 2;
- engine->_scene->currentScriptValue = engine->_gameState->inventoryNumKashes;
+ engine->_scene->_currentScriptValue = engine->_gameState->inventoryNumKashes;
break;
case kcBEHAVIOUR:
- engine->_scene->currentScriptValue = (int16)engine->_actor->heroBehaviour;
+ engine->_scene->_currentScriptValue = (int16)engine->_actor->heroBehaviour;
break;
case kcCHAPTER:
- engine->_scene->currentScriptValue = engine->_gameState->gameChapter;
+ engine->_scene->_currentScriptValue = engine->_gameState->gameChapter;
break;
case kcDISTANCE_3D: {
int32 targetActorIdx;
@@ -309,55 +309,55 @@ static int32 processLifeConditions(TwinEEngine *engine, LifeScriptContext &ctx)
// Returns int32, so we check for integer overflow
int32 distance = engine->_movements->getDistance3D(ctx.actor->pos, targetActor->pos);
if (ABS(distance) > MAX_TARGET_ACTOR_DISTANCE) {
- engine->_scene->currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
+ engine->_scene->_currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
} else {
- engine->_scene->currentScriptValue = distance;
+ engine->_scene->_currentScriptValue = distance;
}
} else {
- engine->_scene->currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
+ engine->_scene->_currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
}
break;
}
case 23:
- engine->_scene->currentScriptValue = engine->_gameState->magicLevelIdx;
+ engine->_scene->_currentScriptValue = engine->_gameState->magicLevelIdx;
break;
case 24:
- engine->_scene->currentScriptValue = engine->_gameState->inventoryMagicPoints;
+ engine->_scene->_currentScriptValue = engine->_gameState->inventoryMagicPoints;
break;
case kcUSE_INVENTORY: {
int32 item = ctx.stream.readByte();
if (!engine->_gameState->inventoryDisabled()) {
if (item == engine->_loopInventoryItem) {
- engine->_scene->currentScriptValue = 1;
+ engine->_scene->_currentScriptValue = 1;
} else {
if (engine->_gameState->inventoryFlags[item] == 1 && engine->_gameState->hasItem((InventoryItems)item)) {
- engine->_scene->currentScriptValue = 1;
+ engine->_scene->_currentScriptValue = 1;
} else {
- engine->_scene->currentScriptValue = 0;
+ engine->_scene->_currentScriptValue = 0;
}
}
- if (engine->_scene->currentScriptValue == 1) {
+ if (engine->_scene->_currentScriptValue == 1) {
engine->_redraw->addOverlay(OverlayType::koInventoryItem, item, 0, 0, 0, OverlayPosType::koNormal, 3);
}
} else {
- engine->_scene->currentScriptValue = 0;
+ engine->_scene->_currentScriptValue = 0;
}
break;
}
case kcCHOICE:
conditionValueSize = 2;
- engine->_scene->currentScriptValue = (int16)engine->_gameState->choiceAnswer;
+ engine->_scene->_currentScriptValue = (int16)engine->_gameState->choiceAnswer;
break;
case kcFUEL:
- engine->_scene->currentScriptValue = engine->_gameState->inventoryNumGas;
+ engine->_scene->_currentScriptValue = engine->_gameState->inventoryNumGas;
break;
case kcCARRIED_BY:
- engine->_scene->currentScriptValue = ctx.actor->standOn;
+ engine->_scene->_currentScriptValue = ctx.actor->standOn;
break;
case kcCDROM:
- engine->_scene->currentScriptValue = 1;
+ engine->_scene->_currentScriptValue = 1;
break;
default:
error("Actor condition opcode %d", conditionOpcode);
@@ -384,32 +384,32 @@ static int32 processLifeOperators(TwinEEngine *engine, LifeScriptContext &ctx, i
switch (operatorCode) {
case kEqualTo:
- if (engine->_scene->currentScriptValue == conditionValue) {
+ if (engine->_scene->_currentScriptValue == conditionValue) {
return 1;
}
break;
case kGreaterThan:
- if (engine->_scene->currentScriptValue > conditionValue) {
+ if (engine->_scene->_currentScriptValue > conditionValue) {
return 1;
}
break;
case kLessThan:
- if (engine->_scene->currentScriptValue < conditionValue) {
+ if (engine->_scene->_currentScriptValue < conditionValue) {
return 1;
}
break;
case kGreaterThanOrEqualTo:
- if (engine->_scene->currentScriptValue >= conditionValue) {
+ if (engine->_scene->_currentScriptValue >= conditionValue) {
return 1;
}
break;
case kLessThanOrEqualTo:
- if (engine->_scene->currentScriptValue <= conditionValue) {
+ if (engine->_scene->_currentScriptValue <= conditionValue) {
return 1;
}
break;
case kNotEqualTo:
- if (engine->_scene->currentScriptValue != conditionValue) {
+ if (engine->_scene->_currentScriptValue != conditionValue) {
return 1;
}
break;
@@ -654,9 +654,9 @@ static int32 lMESSAGE(TwinEEngine *engine, LifeScriptContext &ctx) {
engine->_redraw->drawBubble(ctx.actorIdx);
}
engine->_text->setFontCrossColor(ctx.actor->talkColor);
- engine->_scene->talkingActor = ctx.actorIdx;
+ engine->_scene->_talkingActor = ctx.actorIdx;
engine->_text->drawTextProgressive(textIdx);
- if (engine->_scene->currentSceneIdx == LBA1SceneId::Principal_Island_Library && engine->_scene->talkingActor == 8)/* && (*(short *)lifeScriptPosition == 0xe2 [226])*/ {
+ if (engine->_scene->_currentSceneIdx == LBA1SceneId::Principal_Island_Library && engine->_scene->_talkingActor == 8)/* && (*(short *)lifeScriptPosition == 0xe2 [226])*/ {
engine->unlockAchievement("LBA_ACH_008");
}
engine->unfreezeTime();
@@ -714,10 +714,10 @@ static int32 lSET_DIRMODE_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
static int32 lCAM_FOLLOW(TwinEEngine *engine, LifeScriptContext &ctx) {
const int32 followedActorIdx = ctx.stream.readByte();
- if (engine->_scene->currentlyFollowedActor != followedActorIdx) {
+ if (engine->_scene->_currentlyFollowedActor != followedActorIdx) {
const ActorStruct *followedActor = engine->_scene->getActor(followedActorIdx);
engine->_grid->centerOnActor(followedActor);
- engine->_scene->currentlyFollowedActor = followedActorIdx;
+ engine->_scene->_currentlyFollowedActor = followedActorIdx;
}
return 0;
@@ -744,7 +744,7 @@ static int32 lSET_FLAG_CUBE(TwinEEngine *engine, LifeScriptContext &ctx) {
const int32 flagIdx = ctx.stream.readByte();
const int32 flagValue = ctx.stream.readByte();
- engine->_scene->sceneFlags[flagIdx] = flagValue;
+ engine->_scene->_sceneFlags[flagIdx] = flagValue;
return 0;
}
@@ -910,7 +910,7 @@ static int32 lMESSAGE_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
engine->_redraw->drawBubble(otherActorIdx);
}
engine->_text->setFontCrossColor(engine->_scene->getActor(otherActorIdx)->talkColor);
- engine->_scene->talkingActor = otherActorIdx;
+ engine->_scene->_talkingActor = otherActorIdx;
engine->_text->drawTextProgressive(textIdx);
engine->unfreezeTime();
engine->_redraw->redrawEngineActions(true);
@@ -1024,8 +1024,8 @@ static int32 lGIVE_BONUS(TwinEEngine *engine, LifeScriptContext &ctx) {
*/
static int32 lCHANGE_CUBE(TwinEEngine *engine, LifeScriptContext &ctx) {
int32 sceneIdx = ctx.stream.readByte();
- engine->_scene->needChangeScene = sceneIdx;
- engine->_scene->heroPositionType = ScenePositionType::kScene;
+ engine->_scene->_needChangeScene = sceneIdx;
+ engine->_scene->_heroPositionType = ScenePositionType::kScene;
return 0;
}
@@ -1116,7 +1116,7 @@ static int32 lZOOM(TwinEEngine *engine, LifeScriptContext &ctx) {
static int32 lPOS_POINT(TwinEEngine *engine, LifeScriptContext &ctx) {
int32 trackIdx = ctx.stream.readByte();
- const IVec3 &sp = engine->_scene->sceneTracks[trackIdx];
+ const IVec3 &sp = engine->_scene->_sceneTracks[trackIdx];
engine->_renderer->_destPos.x = sp.x;
engine->_renderer->_destPos.y = sp.y;
engine->_renderer->_destPos.z = sp.z;
@@ -1287,7 +1287,7 @@ static int32 lBIG_MESSAGE(TwinEEngine *engine, LifeScriptContext &ctx) {
engine->_redraw->drawBubble(ctx.actorIdx);
}
engine->_text->setFontCrossColor(ctx.actor->talkColor);
- engine->_scene->talkingActor = ctx.actorIdx;
+ engine->_scene->_talkingActor = ctx.actorIdx;
engine->_text->drawTextProgressive(textIdx);
engine->_text->textClipSmall();
engine->unfreezeTime();
@@ -1302,7 +1302,7 @@ static int32 lBIG_MESSAGE(TwinEEngine *engine, LifeScriptContext &ctx) {
*/
static int32 lINIT_PINGOUIN(TwinEEngine *engine, LifeScriptContext &ctx) {
int32 pingouinActor = ctx.stream.readByte();
- engine->_scene->mecaPinguinIdx = pingouinActor;
+ engine->_scene->_mecaPinguinIdx = pingouinActor;
ActorStruct *mecaPinguin = engine->_scene->getActor(pingouinActor);
mecaPinguin->dynamicFlags.bIsDead = 1;
mecaPinguin->entity = -1;
@@ -1353,8 +1353,8 @@ static int32 lSUB_FUEL(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x4C
*/
static int32 lSET_GRM(TwinEEngine *engine, LifeScriptContext &ctx) {
- engine->_grid->cellingGridIdx = ctx.stream.readByte();
- engine->_grid->initCellingGrid(engine->_grid->cellingGridIdx);
+ engine->_grid->_cellingGridIdx = ctx.stream.readByte();
+ engine->_grid->initCellingGrid(engine->_grid->_cellingGridIdx);
return 0;
}
@@ -1394,7 +1394,7 @@ static int32 lSAY_MESSAGE_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x4F
*/
static int32 lFULL_POINT(TwinEEngine *engine, LifeScriptContext &ctx) {
- engine->_scene->sceneHero->setLife(kActorMaxLife);
+ engine->_scene->_sceneHero->setLife(kActorMaxLife);
engine->_gameState->setMaxMagicPoints();
return 0;
}
@@ -1415,9 +1415,9 @@ static int32 lBETA(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x51
*/
static int32 lGRM_OFF(TwinEEngine *engine, LifeScriptContext &ctx) {
- if (engine->_grid->cellingGridIdx != -1) {
- engine->_grid->useCellingGrid = -1;
- engine->_grid->cellingGridIdx = -1;
+ if (engine->_grid->_cellingGridIdx != -1) {
+ engine->_grid->_useCellingGrid = -1;
+ engine->_grid->_cellingGridIdx = -1;
engine->_grid->createGridMap();
engine->_redraw->redrawEngineActions(true);
}
@@ -1621,7 +1621,7 @@ static int32 lANIM_SET(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x60
*/
static int32 lHOLOMAP_TRAJ(TwinEEngine *engine, LifeScriptContext &ctx) {
- engine->_scene->holomapTrajectory = ctx.stream.readByte();
+ engine->_scene->_holomapTrajectory = ctx.stream.readByte();
return 0;
}
@@ -1630,8 +1630,8 @@ static int32 lHOLOMAP_TRAJ(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x61
*/
static int32 lGAME_OVER(TwinEEngine *engine, LifeScriptContext &ctx) {
- engine->_scene->sceneHero->dynamicFlags.bAnimEnded = 1;
- engine->_scene->sceneHero->setLife(0);
+ engine->_scene->_sceneHero->dynamicFlags.bAnimEnded = 1;
+ engine->_scene->_sceneHero->setLife(0);
engine->_gameState->setLeafs(0);
return 1; // break
}
@@ -1643,12 +1643,12 @@ static int32 lGAME_OVER(TwinEEngine *engine, LifeScriptContext &ctx) {
static int32 lTHE_END(TwinEEngine *engine, LifeScriptContext &ctx) {
engine->_quitGame = 1;
engine->_gameState->setLeafs(0);
- engine->_scene->sceneHero->setLife(kActorMaxLife);
+ engine->_scene->_sceneHero->setLife(kActorMaxLife);
engine->_gameState->setMagicPoints(80);
- engine->_scene->currentSceneIdx = LBA1SceneId::Polar_Island_Final_Battle;
+ engine->_scene->_currentSceneIdx = LBA1SceneId::Polar_Island_Final_Battle;
engine->_actor->heroBehaviour = engine->_actor->previousHeroBehaviour;
- engine->_scene->newHeroPos.x = -1;
- engine->_scene->sceneHero->angle = engine->_actor->previousHeroAngle;
+ engine->_scene->_newHeroPos.x = -1;
+ engine->_scene->_sceneHero->angle = engine->_actor->previousHeroAngle;
engine->autoSave();
return 1; // break;
}
diff --git a/engines/twine/script/script_move_v1.cpp b/engines/twine/script/script_move_v1.cpp
index b482ca1f0f..0433fe9198 100644
--- a/engines/twine/script/script_move_v1.cpp
+++ b/engines/twine/script/script_move_v1.cpp
@@ -114,9 +114,9 @@ static int32 mANIM(TwinEEngine *engine, MoveScriptContext &ctx) {
* @note Opcode @c 0x04
*/
static int32 mGOTO_POINT(TwinEEngine *engine, MoveScriptContext &ctx) {
- engine->_scene->currentScriptValue = ctx.stream.readByte();
+ engine->_scene->_currentScriptValue = ctx.stream.readByte();
- const IVec3 &sp = engine->_scene->sceneTracks[engine->_scene->currentScriptValue];
+ const IVec3 &sp = engine->_scene->_sceneTracks[engine->_scene->_currentScriptValue];
engine->_renderer->_destPos.x = sp.x;
engine->_renderer->_destPos.y = sp.y;
engine->_renderer->_destPos.z = sp.z;
@@ -129,7 +129,7 @@ static int32 mGOTO_POINT(TwinEEngine *engine, MoveScriptContext &ctx) {
engine->_movements->moveActor(ctx.actor->angle, newAngle, ctx.actor->speed, &ctx.actor->move);
}
- if (engine->_movements->targetActorDistance > 500) {
+ if (engine->_movements->_targetActorDistance > 500) {
ctx.undo(1);
return 1;
}
@@ -169,7 +169,7 @@ static int32 mANGLE(TwinEEngine *engine, MoveScriptContext &ctx) {
if (ctx.actor->staticFlags.bIsSpriteActor) {
return 0;
}
- engine->_scene->currentScriptValue = angle;
+ engine->_scene->_currentScriptValue = angle;
if (ctx.actor->move.numOfStep == 0) {
engine->_movements->moveActor(ctx.actor->angle, angle, ctx.actor->speed, &ctx.actor->move);
}
@@ -186,9 +186,9 @@ static int32 mANGLE(TwinEEngine *engine, MoveScriptContext &ctx) {
* @note Opcode @c 0x08
*/
static int32 mPOS_POINT(TwinEEngine *engine, MoveScriptContext &ctx) {
- engine->_scene->currentScriptValue = ctx.stream.readByte();
+ engine->_scene->_currentScriptValue = ctx.stream.readByte();
- const IVec3 &sp = engine->_scene->sceneTracks[engine->_scene->currentScriptValue];
+ const IVec3 &sp = engine->_scene->_sceneTracks[engine->_scene->_currentScriptValue];
engine->_renderer->_destPos.x = sp.x;
engine->_renderer->_destPos.y = sp.y;
engine->_renderer->_destPos.z = sp.z;
@@ -211,7 +211,7 @@ static int32 mPOS_POINT(TwinEEngine *engine, MoveScriptContext &ctx) {
static int32 mLABEL(TwinEEngine *engine, MoveScriptContext &ctx) {
ctx.actor->labelIdx = ctx.stream.readByte();
ctx.actor->currentLabelPtr = ctx.stream.pos() - 2;
- if (engine->_scene->currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->actorIdx == 2 &&
+ if (engine->_scene->_currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->actorIdx == 2 &&
(ctx.actor->labelIdx == 0 || ctx.actor->labelIdx == 1)) {
engine->unlockAchievement("LBA_ACH_004");
}
@@ -246,9 +246,9 @@ static int32 mSTOP(TwinEEngine *engine, MoveScriptContext &ctx) {
* @note Opcode @c 0x0C
*/
static int32 mGOTO_SYM_POINT(TwinEEngine *engine, MoveScriptContext &ctx) {
- engine->_scene->currentScriptValue = ctx.stream.readByte();
+ engine->_scene->_currentScriptValue = ctx.stream.readByte();
- const IVec3 &sp = engine->_scene->sceneTracks[engine->_scene->currentScriptValue];
+ const IVec3 &sp = engine->_scene->_sceneTracks[engine->_scene->_currentScriptValue];
engine->_renderer->_destPos.x = sp.x;
engine->_renderer->_destPos.y = sp.y;
engine->_renderer->_destPos.z = sp.z;
@@ -261,7 +261,7 @@ static int32 mGOTO_SYM_POINT(TwinEEngine *engine, MoveScriptContext &ctx) {
engine->_movements->moveActor(ctx.actor->angle, newAngle, ctx.actor->speed, &ctx.actor->move);
}
- if (engine->_movements->targetActorDistance > 500) {
+ if (engine->_movements->_targetActorDistance > 500) {
ctx.undo(1);
return 1;
}
@@ -319,17 +319,17 @@ static int32 mGOTO_POINT_3D(TwinEEngine *engine, MoveScriptContext &ctx) {
return 0;
}
- engine->_scene->currentScriptValue = trackId;
+ engine->_scene->_currentScriptValue = trackId;
- const IVec3 &sp = engine->_scene->sceneTracks[engine->_scene->currentScriptValue];
+ const IVec3 &sp = engine->_scene->_sceneTracks[engine->_scene->_currentScriptValue];
engine->_renderer->_destPos.x = sp.x;
engine->_renderer->_destPos.y = sp.y;
engine->_renderer->_destPos.z = sp.z;
ctx.actor->angle = engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->pos.x, ctx.actor->pos.z, sp.x, sp.z);
- ctx.actor->spriteActorRotation = engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->pos.y, 0, sp.y, engine->_movements->targetActorDistance);
+ ctx.actor->spriteActorRotation = engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->pos.y, 0, sp.y, engine->_movements->_targetActorDistance);
- if (engine->_movements->targetActorDistance > 100) {
+ if (engine->_movements->_targetActorDistance > 100) {
ctx.undo(1);
return 1;
}
@@ -441,7 +441,7 @@ static int32 mOPEN_LEFT(TwinEEngine *engine, MoveScriptContext &ctx) {
ctx.actor->speed = 1000;
engine->_movements->setActorAngle(ANGLE_0, ANGLE_351, ANGLE_17, &ctx.actor->move);
}
- if (engine->_scene->currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->actorIdx == 16) {
+ if (engine->_scene->_currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->actorIdx == 16) {
engine->unlockAchievement("LBA_ACH_009");
}
return 0;
@@ -460,7 +460,7 @@ static int32 mOPEN_RIGHT(TwinEEngine *engine, MoveScriptContext &ctx) {
ctx.actor->speed = 1000;
engine->_movements->setActorAngle(ANGLE_0, ANGLE_351, ANGLE_17, &ctx.actor->move);
}
- if (engine->_scene->currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->actorIdx == 16) {
+ if (engine->_scene->_currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->actorIdx == 16) {
engine->unlockAchievement("LBA_ACH_009");
}
return 0;
@@ -479,7 +479,7 @@ static int32 mOPEN_UP(TwinEEngine *engine, MoveScriptContext &ctx) {
ctx.actor->speed = 1000;
engine->_movements->setActorAngle(ANGLE_0, ANGLE_351, ANGLE_17, &ctx.actor->move);
}
- if (engine->_scene->currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->actorIdx == 16) {
+ if (engine->_scene->_currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->actorIdx == 16) {
engine->unlockAchievement("LBA_ACH_009");
}
return 0;
@@ -498,7 +498,7 @@ static int32 mOPEN_DOWN(TwinEEngine *engine, MoveScriptContext &ctx) {
ctx.actor->speed = 1000;
engine->_movements->setActorAngle(ANGLE_0, ANGLE_351, ANGLE_17, &ctx.actor->move);
}
- if (engine->_scene->currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->actorIdx == 16) {
+ if (engine->_scene->_currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->actorIdx == 16) {
engine->unlockAchievement("LBA_ACH_009");
}
return 0;
@@ -617,15 +617,15 @@ static int32 mFACE_HERO(TwinEEngine *engine, MoveScriptContext &ctx) {
if (ctx.actor->staticFlags.bIsSpriteActor) {
return 0;
}
- engine->_scene->currentScriptValue = angle;
- if (engine->_scene->currentScriptValue == -1 && ctx.actor->move.numOfStep == 0) {
- engine->_scene->currentScriptValue = engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->pos, engine->_scene->sceneHero->pos);
- engine->_movements->moveActor(ctx.actor->angle, engine->_scene->currentScriptValue, ctx.actor->speed, &ctx.actor->move);
+ engine->_scene->_currentScriptValue = angle;
+ if (engine->_scene->_currentScriptValue == -1 && ctx.actor->move.numOfStep == 0) {
+ engine->_scene->_currentScriptValue = engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->pos, engine->_scene->_sceneHero->pos);
+ engine->_movements->moveActor(ctx.actor->angle, engine->_scene->_currentScriptValue, ctx.actor->speed, &ctx.actor->move);
ctx.stream.rewind(2);
- ctx.stream.writeSint16LE(engine->_scene->currentScriptValue);
+ ctx.stream.writeSint16LE(engine->_scene->_currentScriptValue);
}
- if (ctx.actor->angle != engine->_scene->currentScriptValue) {
+ if (ctx.actor->angle != engine->_scene->_currentScriptValue) {
ctx.undo(2);
return 1;
}
@@ -646,23 +646,23 @@ static int32 mANGLE_RND(TwinEEngine *engine, MoveScriptContext &ctx) {
return 0;
}
- engine->_scene->currentScriptValue = val2;
+ engine->_scene->_currentScriptValue = val2;
- if (engine->_scene->currentScriptValue == -1 && ctx.actor->move.numOfStep == 0) {
+ if (engine->_scene->_currentScriptValue == -1 && ctx.actor->move.numOfStep == 0) {
if (engine->getRandomNumber() & 1) {
const int32 newAngle = ctx.actor->angle + ANGLE_90 + (ABS(val1) >> 1);
- engine->_scene->currentScriptValue = ClampAngle(newAngle - engine->getRandomNumber(val1));
+ engine->_scene->_currentScriptValue = ClampAngle(newAngle - engine->getRandomNumber(val1));
} else {
const int32 newAngle = ctx.actor->angle - ANGLE_90 + (ABS(val1) >> 1);
- engine->_scene->currentScriptValue = ClampAngle(newAngle - engine->getRandomNumber(val1));
+ engine->_scene->_currentScriptValue = ClampAngle(newAngle - engine->getRandomNumber(val1));
}
- engine->_movements->moveActor(ctx.actor->angle, engine->_scene->currentScriptValue, ctx.actor->speed, &ctx.actor->move);
+ engine->_movements->moveActor(ctx.actor->angle, engine->_scene->_currentScriptValue, ctx.actor->speed, &ctx.actor->move);
ctx.stream.rewind(2);
- ctx.stream.writeSint16LE(engine->_scene->currentScriptValue);
+ ctx.stream.writeSint16LE(engine->_scene->_currentScriptValue);
}
- if (ctx.actor->angle != engine->_scene->currentScriptValue) {
+ if (ctx.actor->angle != engine->_scene->_currentScriptValue) {
ctx.undo(4);
return 1;
}
diff --git a/engines/twine/text.cpp b/engines/twine/text.cpp
index 0260b3521c..dded4b5786 100644
--- a/engines/twine/text.cpp
+++ b/engines/twine/text.cpp
@@ -158,7 +158,7 @@ void Text::initTextBank(TextBankId bankIdx) {
}
void Text::initSceneTextBank() {
- initTextBank((TextBankId)((int)_engine->_scene->sceneTextBank + (int)TextBankId::Citadel_Island));
+ initTextBank((TextBankId)((int)_engine->_scene->_sceneTextBank + (int)TextBankId::Citadel_Island));
}
void Text::drawCharacter(int32 x, int32 y, uint8 character) {
@@ -702,7 +702,7 @@ bool Text::getText(TextId index) {
bool Text::getMenuText(TextId index, char *text, uint32 textSize) {
if (index == _currMenuTextIndex) {
- if (_currMenuTextBank == _engine->_scene->sceneTextBank) {
+ if (_currMenuTextBank == _engine->_scene->_sceneTextBank) {
Common::strlcpy(text, _currMenuTextBuffer, textSize);
return true;
}
@@ -722,7 +722,7 @@ bool Text::getMenuText(TextId index, char *text, uint32 textSize) {
Common::strlcpy(_currMenuTextBuffer, text, MIN<int32>(sizeof(_currMenuTextBuffer), _currDialTextSize));
_currMenuTextIndex = index;
- _currMenuTextBank = _engine->_scene->sceneTextBank;
+ _currMenuTextBank = _engine->_scene->_sceneTextBank;
return true;
}
diff --git a/engines/twine/twine.cpp b/engines/twine/twine.cpp
index f12e1683eb..f32878658e 100644
--- a/engines/twine/twine.cpp
+++ b/engines/twine/twine.cpp
@@ -283,8 +283,8 @@ Common::Error TwinEEngine::run() {
}
case EngineState::LoadedGame:
debug("Loaded game");
- if (_scene->newHeroPos.x == -1) {
- _scene->heroPositionType = ScenePositionType::kNoPosition;
+ if (_scene->_newHeroPos.x == -1) {
+ _scene->_heroPositionType = ScenePositionType::kNoPosition;
}
_text->_renderTextTriangle = false;
_text->textClipSmall();
@@ -350,7 +350,7 @@ void TwinEEngine::wipeSaveSlot(int slot) {
saveFileMan->removeSavefile(saveFile);
}
-bool TwinEEngine::canSaveGameStateCurrently() { return _scene->currentScene != nullptr; }
+bool TwinEEngine::canSaveGameStateCurrently() { return _scene->isGameRunning(); }
Common::Error TwinEEngine::loadGameStream(Common::SeekableReadStream *stream) {
debug("load game stream");
@@ -528,7 +528,7 @@ void TwinEEngine::exitSceneryView() {
void TwinEEngine::initAll() {
Common::fill(&_menu->_itemAngle[0], &_menu->_itemAngle[NUM_INVENTORY_ITEMS], 0);
- _scene->sceneHero = _scene->getActor(OWN_ACTOR_SCENE_INDEX);
+ _scene->_sceneHero = _scene->getActor(OWN_ACTOR_SCENE_INDEX);
// Set clip to fullscreen by default, allows main menu to render properly after load
_interface->resetClip();
@@ -619,7 +619,7 @@ void TwinEEngine::processInventoryAction() {
_gameState->usingSabre = false;
break;
case kiUseSabre:
- if (_scene->sceneHero->body != BodyType::btSabre) {
+ if (_scene->_sceneHero->body != BodyType::btSabre) {
if (_actor->heroBehaviour == HeroBehaviourType::kProtoPack) {
_actor->setBehaviour(HeroBehaviourType::kNormal);
}
@@ -635,9 +635,9 @@ void TwinEEngine::processInventoryAction() {
}
case kiProtoPack:
if (_gameState->hasItem(InventoryItems::kiBookOfBu)) {
- _scene->sceneHero->body = BodyType::btNormal;
+ _scene->_sceneHero->body = BodyType::btNormal;
} else {
- _scene->sceneHero->body = BodyType::btTunic;
+ _scene->_sceneHero->body = BodyType::btTunic;
}
if (_actor->heroBehaviour == HeroBehaviourType::kProtoPack) {
@@ -647,19 +647,19 @@ void TwinEEngine::processInventoryAction() {
}
break;
case kiPinguin: {
- ActorStruct *pinguin = _scene->getActor(_scene->mecaPinguinIdx);
+ ActorStruct *pinguin = _scene->getActor(_scene->_mecaPinguinIdx);
- pinguin->pos.x = _renderer->_destPos.x + _scene->sceneHero->pos.x;
- pinguin->pos.y = _scene->sceneHero->pos.y;
- pinguin->pos.z = _renderer->_destPos.z + _scene->sceneHero->pos.z;
- pinguin->angle = _scene->sceneHero->angle;
+ pinguin->pos.x = _renderer->_destPos.x + _scene->_sceneHero->pos.x;
+ pinguin->pos.y = _scene->_sceneHero->pos.y;
+ pinguin->pos.z = _renderer->_destPos.z + _scene->_sceneHero->pos.z;
+ pinguin->angle = _scene->_sceneHero->angle;
_movements->rotateActor(0, 800, pinguin->angle);
- if (!_collision->checkCollisionWithActors(_scene->mecaPinguinIdx)) {
+ if (!_collision->checkCollisionWithActors(_scene->_mecaPinguinIdx)) {
pinguin->setLife(kActorMaxLife);
pinguin->body = BodyType::btNone;
- _actor->initModelActor(BodyType::btNormal, _scene->mecaPinguinIdx);
+ _actor->initModelActor(BodyType::btNormal, _scene->_mecaPinguinIdx);
pinguin->dynamicFlags.bIsDead = 0; // &= 0xDF
pinguin->setBrickShape(ShapeType::kNone);
_movements->moveActor(pinguin->angle, pinguin->angle, pinguin->speed, &pinguin->move);
@@ -676,9 +676,9 @@ void TwinEEngine::processInventoryAction() {
break;
}
case kiCloverLeaf:
- if (_scene->sceneHero->life < kActorMaxLife) {
+ if (_scene->_sceneHero->life < kActorMaxLife) {
if (_gameState->inventoryNumLeafs > 0) {
- _scene->sceneHero->setLife(kActorMaxLife);
+ _scene->_sceneHero->setLife(kActorMaxLife);
_gameState->setMagicPoints(_gameState->magicLevelIdx * 20);
_gameState->addLeafs(-1);
_redraw->addOverlay(OverlayType::koInventoryItem, InventoryItems::kiCloverLeaf, 0, 0, 0, OverlayPosType::koNormal, 3);
@@ -711,10 +711,10 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
_queuedFlaMovie.clear();
}
- if (_scene->needChangeScene > -1) {
+ if (_scene->_needChangeScene > -1) {
if (isDemo() && isLBA1()) {
// the demo only has these two scenes
- if (_scene->needChangeScene != LBA1SceneId::Citadel_Island_Prison && _scene->needChangeScene != LBA1SceneId::Citadel_Island_outside_the_citadel) {
+ if (_scene->_needChangeScene != LBA1SceneId::Citadel_Island_Prison && _scene->_needChangeScene != LBA1SceneId::Citadel_Island_outside_the_citadel) {
return 1;
}
}
@@ -732,7 +732,7 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
}
} else {
// Process give up menu - Press ESC
- if (_input->toggleAbortAction() && _scene->sceneHero->life > 0 && _scene->sceneHero->entity != -1 && !_scene->sceneHero->staticFlags.bIsHidden) {
+ if (_input->toggleAbortAction() && _scene->_sceneHero->life > 0 && _scene->_sceneHero->entity != -1 && !_scene->_sceneHero->staticFlags.bIsHidden) {
freezeTime();
exitSceneryView();
const int giveUp = _menu->giveupMenu();
@@ -755,7 +755,7 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
// inventory menu
_loopInventoryItem = -1;
- if (_input->isActionActive(TwinEActionType::InventoryMenu) && _scene->sceneHero->entity != -1 && _scene->sceneHero->controlMode == ControlMode::kManual) {
+ if (_input->isActionActive(TwinEActionType::InventoryMenu) && _scene->_sceneHero->entity != -1 && _scene->_sceneHero->controlMode == ControlMode::kManual) {
processInventoryAction();
}
@@ -775,7 +775,7 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
_input->isActionActive(TwinEActionType::QuickBehaviourAthletic, false) ||
_input->isActionActive(TwinEActionType::QuickBehaviourAggressive, false) ||
_input->isActionActive(TwinEActionType::QuickBehaviourDiscreet, false)) &&
- _scene->sceneHero->entity != -1 && _scene->sceneHero->controlMode == ControlMode::kManual) {
+ _scene->_sceneHero->entity != -1 && _scene->_sceneHero->controlMode == ControlMode::kManual) {
if (_input->isActionActive(TwinEActionType::QuickBehaviourNormal, false)) {
_actor->heroBehaviour = HeroBehaviourType::kNormal;
} else if (_input->isActionActive(TwinEActionType::QuickBehaviourAthletic, false)) {
@@ -794,9 +794,9 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
// use Proto-Pack
if (_input->toggleActionIfActive(TwinEActionType::UseProtoPack) && _gameState->hasItem(InventoryItems::kiProtoPack)) {
if (_gameState->hasItem(InventoryItems::kiBookOfBu)) {
- _scene->sceneHero->body = BodyType::btNormal;
+ _scene->_sceneHero->body = BodyType::btNormal;
} else {
- _scene->sceneHero->body = BodyType::btTunic;
+ _scene->_sceneHero->body = BodyType::btTunic;
}
if (_actor->heroBehaviour == HeroBehaviourType::kProtoPack) {
@@ -808,7 +808,7 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
// Recenter Screen
if (_input->toggleActionIfActive(TwinEActionType::RecenterScreenOnTwinsen) && !_disableScreenRecenter) {
- const ActorStruct *currentlyFollowedActor = _scene->getActor(_scene->currentlyFollowedActor);
+ const ActorStruct *currentlyFollowedActor = _scene->getActor(_scene->_currentlyFollowedActor);
_grid->centerOnActor(currentlyFollowedActor);
}
@@ -858,13 +858,13 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
_scene->processEnvironmentSound();
// Reset HitBy state
- for (int32 a = 0; a < _scene->sceneNumActors; a++) {
+ for (int32 a = 0; a < _scene->_sceneNumActors; a++) {
_scene->getActor(a)->hitBy = -1;
}
_extra->processExtras();
- for (int32 a = 0; a < _scene->sceneNumActors; a++) {
+ for (int32 a = 0; a < _scene->_sceneNumActors; a++) {
ActorStruct *actor = _scene->getActor(a);
if (actor->dynamicFlags.bIsDead) {
@@ -878,7 +878,7 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
} else {
_sound->playSample(Samples::Explode, 1, actor->pos, a);
- if (a == _scene->mecaPinguinIdx) {
+ if (a == _scene->_mecaPinguinIdx) {
_extra->addExtraExplode(actor->pos.x, actor->pos.y, actor->pos.z);
}
}
@@ -922,10 +922,10 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
if (_actor->heroBehaviour != HeroBehaviourType::kProtoPack || actor->anim != AnimationTypes::kForward) {
if (!_actor->cropBottomScreen) {
_animations->initAnim(AnimationTypes::kDrawn, AnimType::kAnimationType_4, AnimationTypes::kStanding, 0);
- _renderer->projectPositionOnScreen(actor->pos - _grid->camera);
+ _renderer->projectPositionOnScreen(actor->pos - _grid->_camera);
_actor->cropBottomScreen = _renderer->_projPos.y;
}
- _renderer->projectPositionOnScreen(actor->pos - _grid->camera);
+ _renderer->projectPositionOnScreen(actor->pos - _grid->_camera);
actor->controlMode = ControlMode::kNoMove;
actor->setLife(-1);
_actor->cropBottomScreen = _renderer->_projPos.y;
@@ -948,16 +948,16 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
if (IS_HERO(a)) {
if (actor->dynamicFlags.bAnimEnded) {
if (_gameState->inventoryNumLeafs > 0) { // use clover leaf automaticaly
- _scene->sceneHero->pos = _scene->newHeroPos;
+ _scene->_sceneHero->pos = _scene->_newHeroPos;
- _scene->needChangeScene = _scene->currentSceneIdx;
+ _scene->_needChangeScene = _scene->_currentSceneIdx;
_gameState->setMaxMagicPoints();
- _grid->centerOnActor(_scene->sceneHero);
+ _grid->centerOnActor(_scene->_sceneHero);
- _scene->heroPositionType = ScenePositionType::kReborn;
+ _scene->_heroPositionType = ScenePositionType::kReborn;
- _scene->sceneHero->setLife(kActorMaxLife);
+ _scene->_sceneHero->setLife(kActorMaxLife);
_redraw->_reqBgRedraw = true;
_screens->_lockPalette = true;
_gameState->addLeafs(-1);
@@ -970,11 +970,11 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
actor->angle = _actor->previousHeroAngle;
actor->setLife(kActorMaxLife);
- if (_scene->previousSceneIdx != _scene->currentSceneIdx) {
- _scene->newHeroPos.x = -1;
- _scene->newHeroPos.y = -1;
- _scene->newHeroPos.z = -1;
- _scene->currentSceneIdx = _scene->previousSceneIdx;
+ if (_scene->_previousSceneIdx != _scene->_currentSceneIdx) {
+ _scene->_newHeroPos.x = -1;
+ _scene->_newHeroPos.y = -1;
+ _scene->_newHeroPos.z = -1;
+ _scene->_currentSceneIdx = _scene->_previousSceneIdx;
_scene->stopRunningGame();
}
@@ -992,7 +992,7 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
}
}
- if (_scene->needChangeScene != -1) {
+ if (_scene->_needChangeScene != -1) {
return 0;
}
}
@@ -1003,12 +1003,12 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
// workaround to fix hero redraw after drowning
if (_actor->cropBottomScreen && _redraw->_reqBgRedraw) {
- _scene->sceneHero->staticFlags.bIsHidden = 1;
+ _scene->_sceneHero->staticFlags.bIsHidden = 1;
_redraw->redrawEngineActions(true);
- _scene->sceneHero->staticFlags.bIsHidden = 0;
+ _scene->_sceneHero->staticFlags.bIsHidden = 0;
}
- _scene->needChangeScene = SCENE_CEILING_GRID_FADE_1;
+ _scene->_needChangeScene = SCENE_CEILING_GRID_FADE_1;
_redraw->_reqBgRedraw = false;
return 0;
Commit: 429832986b33fd1b30103df4c83e9d70a06eeb40
https://github.com/scummvm/scummvm/commit/429832986b33fd1b30103df4c83e9d70a06eeb40
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-07-31T16:48:23+02:00
Commit Message:
TWINE: renamed members
Changed paths:
engines/twine/audio/sound.h
engines/twine/debugger/console.cpp
engines/twine/debugger/debug_scene.cpp
engines/twine/holomap.cpp
engines/twine/menu/menu.cpp
engines/twine/renderer/redraw.cpp
engines/twine/scene/actor.cpp
engines/twine/scene/actor.h
engines/twine/scene/animations.cpp
engines/twine/scene/animations.h
engines/twine/scene/collision.cpp
engines/twine/scene/collision.h
engines/twine/scene/extra.cpp
engines/twine/scene/extra.h
engines/twine/scene/gamestate.cpp
engines/twine/scene/gamestate.h
engines/twine/scene/grid.cpp
engines/twine/scene/movements.cpp
engines/twine/scene/scene.cpp
engines/twine/script/script_life_v1.cpp
engines/twine/script/script_move_v1.cpp
engines/twine/twine.cpp
diff --git a/engines/twine/audio/sound.h b/engines/twine/audio/sound.h
index e34c7f9f89..a28d13f688 100644
--- a/engines/twine/audio/sound.h
+++ b/engines/twine/audio/sound.h
@@ -88,6 +88,10 @@ public:
/** Update sample position in channel */
void setSamplePosition(int32 channelIdx, int32 x, int32 y, int32 z);
+ inline void setSamplePosition(int32 channelIdx, const IVec3 &pos) {
+ setSamplePosition(channelIdx, pos.x, pos.y, pos.z);
+ }
+
/**
* Play samples
* @param index sample index under flasamp.hqr file
diff --git a/engines/twine/debugger/console.cpp b/engines/twine/debugger/console.cpp
index ea3d52291f..9151b83350 100644
--- a/engines/twine/debugger/console.cpp
+++ b/engines/twine/debugger/console.cpp
@@ -124,7 +124,7 @@ bool TwinEConsole::doAddMagicPoints(int argc, const char **argv) {
return true;
}
const int16 magicPoints = atoi(argv[1]);
- _engine->_gameState->magicLevelIdx = CLIP<int16>(magicPoints, 0, 4);
+ _engine->_gameState->_magicLevelIdx = CLIP<int16>(magicPoints, 0, 4);
_engine->_gameState->setMaxMagicPoints();
return true;
}
@@ -162,7 +162,7 @@ bool TwinEConsole::doSetInventoryFlag(int argc, const char **argv) {
return true;
}
const uint8 val = argc == 3 ? atoi(argv[2]) : 0;
- _engine->_gameState->inventoryFlags[idx] = val;
+ _engine->_gameState->_inventoryFlags[idx] = val;
return true;
}
@@ -185,7 +185,7 @@ bool TwinEConsole::doSetHolomapFlag(int argc, const char **argv) {
GameState* state = _engine->_gameState;
state->setGameFlag(InventoryItems::kiHolomap, 1);
- state->inventoryFlags[InventoryItems::kiHolomap] = 1;
+ state->_inventoryFlags[InventoryItems::kiHolomap] = 1;
state->setGameFlag(GAMEFLAG_INVENTORY_DISABLED, 0);
const int idx = atoi(argv[1]);
@@ -233,14 +233,14 @@ bool TwinEConsole::doPrintGameFlag(int argc, const char **argv) {
bool TwinEConsole::doPrintInventoryFlag(int argc, const char **argv) {
if (argc <= 1) {
for (int i = 0; i < NUM_INVENTORY_ITEMS; ++i) {
- debugPrintf("[%03d] = %d\n", i, _engine->_gameState->inventoryFlags[i]);
+ debugPrintf("[%03d] = %d\n", i, _engine->_gameState->_inventoryFlags[i]);
}
return true;
}
const uint8 idx = atoi(argv[1]);
if (idx < NUM_INVENTORY_ITEMS) {
- debugPrintf("[%03d] = %d\n", idx, _engine->_gameState->inventoryFlags[idx]);
+ debugPrintf("[%03d] = %d\n", idx, _engine->_gameState->_inventoryFlags[idx]);
}
return true;
@@ -249,14 +249,14 @@ bool TwinEConsole::doPrintInventoryFlag(int argc, const char **argv) {
bool TwinEConsole::doPrintHolomapFlag(int argc, const char **argv) {
if (argc <= 1) {
for (int i = 0; i < NUM_LOCATIONS; ++i) {
- debugPrintf("[%03d] = %d\n", i, _engine->_gameState->holomapFlags[i]);
+ debugPrintf("[%03d] = %d\n", i, _engine->_gameState->_holomapFlags[i]);
}
return true;
}
const uint8 idx = atoi(argv[1]);
if (idx < NUM_LOCATIONS) {
- debugPrintf("[%03d] = %d\n", idx, _engine->_gameState->holomapFlags[idx]);
+ debugPrintf("[%03d] = %d\n", idx, _engine->_gameState->_holomapFlags[idx]);
}
return true;
@@ -318,7 +318,7 @@ bool TwinEConsole::doListMenuText(int argc, const char **argv) {
}
bool TwinEConsole::doSetHeroPosition(int argc, const char **argv) {
- IVec3 &pos = _engine->_scene->_sceneHero->pos;
+ IVec3 &pos = _engine->_scene->_sceneHero->_pos;
if (argc < 4) {
debugPrintf("Current hero position: %i:%i:%i\n", pos.x, pos.y, pos.z);
return true;
@@ -412,7 +412,7 @@ bool TwinEConsole::doGiveItem(int argc, const char **argv) {
}
GameState* state = _engine->_gameState;
state->setGameFlag(itemIdx, 1);
- state->inventoryFlags[itemIdx] = 1;
+ state->_inventoryFlags[itemIdx] = 1;
state->setGameFlag(GAMEFLAG_INVENTORY_DISABLED, 0);
return true;
@@ -422,7 +422,7 @@ bool TwinEConsole::doGiveAllItems(int argc, const char **argv) {
GameState* state = _engine->_gameState;
for (int32 i = 0; i < NUM_INVENTORY_ITEMS; ++i) {
state->setGameFlag(i, 1);
- state->inventoryFlags[i] = 1;
+ state->_inventoryFlags[i] = 1;
}
state->setGameFlag(GAMEFLAG_INVENTORY_DISABLED, 0);
int amount = 1;
diff --git a/engines/twine/debugger/debug_scene.cpp b/engines/twine/debugger/debug_scene.cpp
index f1bb3dbf07..8a04484205 100644
--- a/engines/twine/debugger/debug_scene.cpp
+++ b/engines/twine/debugger/debug_scene.cpp
@@ -150,11 +150,11 @@ bool DebugScene::displayActors() {
for (int32 a = 0; a < _engine->_scene->_sceneNumActors; a++) {
const ActorStruct *actorPtr = _engine->_scene->getActor(a);
// TODO: redrawing doesn't work properly yet for moving actors
- if (!actorPtr->staticFlags.bIsSpriteActor) {
+ if (!actorPtr->_staticFlags.bIsSpriteActor) {
continue;
}
- const IVec3 &pos = actorPtr->pos;
- const BoundingBox &bbox = actorPtr->boudingBox;
+ const IVec3 &pos = actorPtr->pos();
+ const BoundingBox &bbox = actorPtr->_boudingBox;
const ScenePositionsProjected &positions = calculateBoxPositions(pos + bbox.mins, pos + bbox.maxs);
if (!drawBox(positions, COLOR_WHITE)) {
continue;
diff --git a/engines/twine/holomap.cpp b/engines/twine/holomap.cpp
index 763da2ede9..db26318701 100644
--- a/engines/twine/holomap.cpp
+++ b/engines/twine/holomap.cpp
@@ -90,17 +90,17 @@ bool Holomap::loadLocations() {
}
void Holomap::setHolomapPosition(int32 locationIdx) {
- assert(locationIdx >= 0 && locationIdx <= ARRAYSIZE(_engine->_gameState->holomapFlags));
- _engine->_gameState->holomapFlags[locationIdx] = HOLOMAP_ACTIVE;
+ assert(locationIdx >= 0 && locationIdx <= ARRAYSIZE(_engine->_gameState->_holomapFlags));
+ _engine->_gameState->_holomapFlags[locationIdx] = HOLOMAP_ACTIVE;
if (_engine->_gameState->hasItem(InventoryItems::kiHolomap)) {
_engine->_redraw->addOverlay(OverlayType::koInventoryItem, InventoryItems::kiHolomap, 0, 0, 0, OverlayPosType::koNormal, 3);
}
}
void Holomap::clearHolomapPosition(int32 locationIdx) {
- assert(locationIdx >= 0 && locationIdx <= ARRAYSIZE(_engine->_gameState->holomapFlags));
- _engine->_gameState->holomapFlags[locationIdx] &= HOLOMAP_RESET;
- _engine->_gameState->holomapFlags[locationIdx] |= HOLOMAP_UNK7;
+ assert(locationIdx >= 0 && locationIdx <= ARRAYSIZE(_engine->_gameState->_holomapFlags));
+ _engine->_gameState->_holomapFlags[locationIdx] &= HOLOMAP_RESET;
+ _engine->_gameState->_holomapFlags[locationIdx] |= HOLOMAP_UNK7;
}
void Holomap::loadHolomapGFX() {
@@ -400,7 +400,7 @@ int32 Holomap::getNextHolomapLocation(int32 currentLocation, int32 dir) const {
i %= NUM_LOCATIONS;
}
for (; i != idx; i = (i + dir) % NUM_LOCATIONS) {
- if (_engine->_gameState->holomapFlags[i] & HOLOMAP_ACTIVE) {
+ if (_engine->_gameState->_holomapFlags[i] & HOLOMAP_ACTIVE) {
return i;
}
}
@@ -411,7 +411,7 @@ void Holomap::renderLocations(int xRot, int yRot, int zRot, bool lower) {
int n = 0;
DrawListStruct drawListArray[NUM_LOCATIONS];
for (int locationIdx = 0; locationIdx < NUM_LOCATIONS; ++locationIdx) {
- if ((_engine->_gameState->holomapFlags[locationIdx] & HOLOMAP_CAN_FOCUS) || locationIdx == _engine->_scene->_currentSceneIdx) {
+ if ((_engine->_gameState->_holomapFlags[locationIdx] & HOLOMAP_CAN_FOCUS) || locationIdx == _engine->_scene->_currentSceneIdx) {
const Location &loc = _locations[locationIdx];
_engine->_renderer->setBaseRotation(loc.angle.x, loc.angle.y, 0);
_engine->_renderer->getBaseRotationPosition(0, 0, loc.angle.z + 1000);
@@ -437,7 +437,7 @@ void Holomap::renderLocations(int xRot, int yRot, int zRot, bool lower) {
continue;
}
}
- uint8 flags = _engine->_gameState->holomapFlags[locationIdx] & HOLOMAP_ARROW;
+ uint8 flags = _engine->_gameState->_holomapFlags[locationIdx] & HOLOMAP_ARROW;
if (locationIdx == _engine->_scene->_currentSceneIdx) {
flags |= 2u; // model type
}
diff --git a/engines/twine/menu/menu.cpp b/engines/twine/menu/menu.cpp
index 871f870f90..ca6550ce4e 100644
--- a/engines/twine/menu/menu.cpp
+++ b/engines/twine/menu/menu.cpp
@@ -834,7 +834,7 @@ int32 Menu::giveupMenu() {
void Menu::drawHealthBar(int32 left, int32 right, int32 top, int32 barLeftPadding, int32 barHeight) {
_engine->_grid->drawSprite(left, top + 3, _engine->_resources->_spriteData[SPRITEHQR_LIFEPOINTS]);
const int32 barLeft = left + barLeftPadding;
- const int32 healthBarRight = _engine->_screens->crossDot(barLeft, right, 50, _engine->_scene->_sceneHero->life);
+ const int32 healthBarRight = _engine->_screens->crossDot(barLeft, right, 50, _engine->_scene->_sceneHero->_life);
const int32 barBottom = top + barHeight;
_engine->_interface->drawFilledRect(Common::Rect(barLeft, top, healthBarRight, barBottom), COLOR_91);
drawBox(Common::Rect(barLeft, top, right, barBottom));
@@ -842,13 +842,13 @@ void Menu::drawHealthBar(int32 left, int32 right, int32 top, int32 barLeftPaddin
void Menu::drawCloverLeafs(int32 newBoxLeft, int32 boxRight, int32 top) {
// Clover leaf boxes
- for (int32 i = 0; i < _engine->_gameState->inventoryNumLeafsBox; i++) {
+ for (int32 i = 0; i < _engine->_gameState->_inventoryNumLeafsBox; i++) {
const int32 leftSpritePos = _engine->_screens->crossDot(newBoxLeft, boxRight, 10, i);
_engine->_grid->drawSprite(leftSpritePos, top + 58, _engine->_resources->_spriteData[SPRITEHQR_CLOVERLEAFBOX]);
}
// Clover leafs
- for (int32 i = 0; i < _engine->_gameState->inventoryNumLeafs; i++) {
+ for (int32 i = 0; i < _engine->_gameState->_inventoryNumLeafs; i++) {
const int32 leftSpritePos = _engine->_screens->crossDot(newBoxLeft, boxRight, 10, i);
_engine->_grid->drawSprite(leftSpritePos + 2, top + 60, _engine->_resources->_spriteData[SPRITEHQR_CLOVERLEAF]);
}
@@ -862,15 +862,15 @@ void Menu::drawMagicPointsBar(int32 left, int32 right, int32 top, int32 barLeftP
return;
}
_engine->_grid->drawSprite(left, top + 1, _engine->_resources->_spriteData[SPRITEHQR_MAGICPOINTS]);
- if (_engine->_gameState->magicLevelIdx <= 0) {
+ if (_engine->_gameState->_magicLevelIdx <= 0) {
return;
}
const int32 barLeft = left + barLeftPadding;
const int32 barBottom = top + barHeight;
- const int32 barRight = _engine->_screens->crossDot(barLeft, right, 80, _engine->_gameState->inventoryMagicPoints);
+ const int32 barRight = _engine->_screens->crossDot(barLeft, right, 80, _engine->_gameState->_inventoryMagicPoints);
const Common::Rect pointsRect(barLeft, top, barRight, barBottom);
_engine->_interface->drawFilledRect(pointsRect, COLOR_75);
- drawBox(barLeft, top, barLeft + _engine->_gameState->magicLevelIdx * 80, barBottom);
+ drawBox(barLeft, top, barLeft + _engine->_gameState->_magicLevelIdx * 80, barBottom);
}
void Menu::drawSpriteAndString(int32 left, int32 top, const SpriteData &spriteData, const Common::String &str, int32 color) {
@@ -880,12 +880,12 @@ void Menu::drawSpriteAndString(int32 left, int32 top, const SpriteData &spriteDa
}
void Menu::drawCoins(int32 left, int32 top) {
- const Common::String &inventoryNumKashes = Common::String::format("%d", _engine->_gameState->inventoryNumKashes);
+ const Common::String &inventoryNumKashes = Common::String::format("%d", _engine->_gameState->_inventoryNumKashes);
drawSpriteAndString(left, top, _engine->_resources->_spriteData[SPRITEHQR_KASHES], inventoryNumKashes);
}
void Menu::drawKeys(int32 left, int32 top) {
- const Common::String &inventoryNumKeys = Common::String::format("%d", _engine->_gameState->inventoryNumKeys);
+ const Common::String &inventoryNumKeys = Common::String::format("%d", _engine->_gameState->_inventoryNumKeys);
drawSpriteAndString(left, top, _engine->_resources->_spriteData[SPRITEHQR_KEY], inventoryNumKeys);
}
@@ -1033,14 +1033,14 @@ void Menu::processBehaviourMenu() {
_engine->_actor->setBehaviour(HeroBehaviourType::kNormal);
}
- _behaviourEntity = &_engine->_resources->_bodyData[_engine->_scene->_sceneHero->entity];
+ _behaviourEntity = &_engine->_resources->_bodyData[_engine->_scene->_sceneHero->_entity];
_engine->_actor->heroAnimIdx[(byte)HeroBehaviourType::kNormal] = _engine->_actor->heroAnimIdxNORMAL;
_engine->_actor->heroAnimIdx[(byte)HeroBehaviourType::kAthletic] = _engine->_actor->heroAnimIdxATHLETIC;
_engine->_actor->heroAnimIdx[(byte)HeroBehaviourType::kAggressive] = _engine->_actor->heroAnimIdxAGGRESSIVE;
_engine->_actor->heroAnimIdx[(byte)HeroBehaviourType::kDiscrete] = _engine->_actor->heroAnimIdxDISCRETE;
- _engine->_movements->setActorAngleSafe(_engine->_scene->_sceneHero->angle, _engine->_scene->_sceneHero->angle - ANGLE_90, ANGLE_17, &_moveMenu);
+ _engine->_movements->setActorAngleSafe(_engine->_scene->_sceneHero->_angle, _engine->_scene->_sceneHero->_angle - ANGLE_90, ANGLE_17, &_moveMenu);
_engine->saveFrontBuffer();
@@ -1051,7 +1051,7 @@ void Menu::processBehaviourMenu() {
const int32 left = _engine->width() / 2 - 220;
const int32 top = _engine->height() / 2 - 140;
- drawBehaviourMenu(left, top, _engine->_scene->_sceneHero->angle);
+ drawBehaviourMenu(left, top, _engine->_scene->_sceneHero->_angle);
HeroBehaviourType tmpHeroBehaviour = _engine->_actor->heroBehaviour;
@@ -1097,9 +1097,9 @@ void Menu::processBehaviourMenu() {
Common::Rect dirtyRect;
if (tmpHeroBehaviour != _engine->_actor->heroBehaviour) {
- drawBehaviour(left, top, tmpHeroBehaviour, _engine->_scene->_sceneHero->angle, true, dirtyRect);
+ drawBehaviour(left, top, tmpHeroBehaviour, _engine->_scene->_sceneHero->_angle, true, dirtyRect);
tmpHeroBehaviour = _engine->_actor->heroBehaviour;
- _engine->_movements->setActorAngleSafe(_engine->_scene->_sceneHero->angle, _engine->_scene->_sceneHero->angle - ANGLE_90, ANGLE_17, &_moveMenu);
+ _engine->_movements->setActorAngleSafe(_engine->_scene->_sceneHero->_angle, _engine->_scene->_sceneHero->_angle - ANGLE_90, ANGLE_17, &_moveMenu);
const int tmpAnimIdx = _engine->_actor->heroAnimIdx[(byte)_engine->_actor->heroBehaviour];
_engine->_animations->setAnimAtKeyframe(_behaviourAnimState[(byte)_engine->_actor->heroBehaviour], _engine->_resources->_animData[tmpAnimIdx], *_behaviourEntity, &_behaviourAnimData[(byte)_engine->_actor->heroBehaviour]);
}
@@ -1141,7 +1141,7 @@ void Menu::drawItem(int32 left, int32 top, int32 item, Common::Rect &dirtyRect)
_engine->_interface->resetClip();
if (item == InventoryItems::kGasItem) {
_engine->_text->setFontColor(COLOR_WHITE);
- const Common::String &inventoryNumGas = Common::String::format("%d", _engine->_gameState->inventoryNumGas);
+ const Common::String &inventoryNumGas = Common::String::format("%d", _engine->_gameState->_inventoryNumGas);
_engine->_text->drawText(rect.left + 3, rect.bottom - 32, inventoryNumGas.c_str());
}
}
@@ -1180,7 +1180,7 @@ void Menu::processInventoryMenu() {
_inventorySelectedColor = COLOR_68;
- if (_engine->_gameState->inventoryNumLeafs > 0) {
+ if (_engine->_gameState->_inventoryNumLeafs > 0) {
_engine->_gameState->giveItem(InventoryItems::kiCloverLeaf);
// TODO: shouldn't this get reset? } else {
// _engine->_gameState->removeItem(InventoryItems::kiCloverLeaf);
diff --git a/engines/twine/renderer/redraw.cpp b/engines/twine/renderer/redraw.cpp
index 713ed0a207..34dce3d825 100644
--- a/engines/twine/renderer/redraw.cpp
+++ b/engines/twine/renderer/redraw.cpp
@@ -186,45 +186,45 @@ int32 Redraw::fillActorDrawingList(DrawListStruct *drawList, bool bgRedraw) {
int32 drawListPos = 0;
for (int32 a = 0; a < _engine->_scene->_sceneNumActors; a++) {
ActorStruct *actor = _engine->_scene->getActor(a);
- actor->dynamicFlags.bIsVisible = 0; // reset visible state
+ actor->_dynamicFlags.bIsVisible = 0; // reset visible state
- if (_engine->_grid->_useCellingGrid != -1 && actor->pos.y > _engine->_scene->_sceneZones[_engine->_grid->_cellingGridIdx].maxs.y) {
+ if (_engine->_grid->_useCellingGrid != -1 && actor->_pos.y > _engine->_scene->_sceneZones[_engine->_grid->_cellingGridIdx].maxs.y) {
continue;
}
// no redraw required
- if (actor->staticFlags.bIsBackgrounded && !bgRedraw) {
+ if (actor->_staticFlags.bIsBackgrounded && !bgRedraw) {
// get actor position on screen
- _engine->_renderer->projectPositionOnScreen(actor->pos - _engine->_grid->_camera);
+ _engine->_renderer->projectPositionOnScreen(actor->pos() - _engine->_grid->_camera);
// check if actor is visible on screen, otherwise don't display it
if (_engine->_renderer->_projPos.x > -50 && _engine->_renderer->_projPos.x < _engine->width() + 40 && _engine->_renderer->_projPos.y > -30 && _engine->_renderer->_projPos.y < _engine->height() + 100) {
- actor->dynamicFlags.bIsVisible = 1;
+ actor->_dynamicFlags.bIsVisible = 1;
}
continue;
}
// if the actor isn't set as hidden
- if (actor->entity == -1 || actor->staticFlags.bIsHidden) {
+ if (actor->_entity == -1 || actor->_staticFlags.bIsHidden) {
continue;
}
// get actor position on screen
- _engine->_renderer->projectPositionOnScreen(actor->pos - _engine->_grid->_camera);
+ _engine->_renderer->projectPositionOnScreen(actor->pos() - _engine->_grid->_camera);
- if ((actor->staticFlags.bUsesClipping && _engine->_renderer->_projPos.x > -112 && _engine->_renderer->_projPos.x < _engine->width() + 112 && _engine->_renderer->_projPos.y > -50 && _engine->_renderer->_projPos.y < _engine->height() + 171) ||
- ((!actor->staticFlags.bUsesClipping) && _engine->_renderer->_projPos.x > -50 && _engine->_renderer->_projPos.x < _engine->width() + 40 && _engine->_renderer->_projPos.y > -30 && _engine->_renderer->_projPos.y < _engine->height() + 100)) {
+ if ((actor->_staticFlags.bUsesClipping && _engine->_renderer->_projPos.x > -112 && _engine->_renderer->_projPos.x < _engine->width() + 112 && _engine->_renderer->_projPos.y > -50 && _engine->_renderer->_projPos.y < _engine->height() + 171) ||
+ ((!actor->_staticFlags.bUsesClipping) && _engine->_renderer->_projPos.x > -50 && _engine->_renderer->_projPos.x < _engine->width() + 40 && _engine->_renderer->_projPos.y > -30 && _engine->_renderer->_projPos.y < _engine->height() + 100)) {
- int32 tmpVal = actor->pos.z + actor->pos.x - _engine->_grid->_camera.x - _engine->_grid->_camera.z;
+ int32 tmpVal = actor->_pos.z + actor->_pos.x - _engine->_grid->_camera.x - _engine->_grid->_camera.z;
// if actor is above another actor
- if (actor->standOn != -1) {
- const ActorStruct *standOnActor = _engine->_scene->getActor(actor->standOn);
- tmpVal = standOnActor->pos.x - _engine->_grid->_camera.x + standOnActor->pos.z - _engine->_grid->_camera.z + 2;
+ if (actor->_standOn != -1) {
+ const ActorStruct *standOnActor = _engine->_scene->getActor(actor->_standOn);
+ tmpVal = standOnActor->_pos.x - _engine->_grid->_camera.x + standOnActor->_pos.z - _engine->_grid->_camera.z + 2;
}
- if (actor->staticFlags.bIsSpriteActor) {
+ if (actor->_staticFlags.bIsSpriteActor) {
drawList[drawListPos].type = DrawListType::DrawActorSprites;
drawList[drawListPos].actorIdx = a;
- if (actor->staticFlags.bUsesClipping) {
- tmpVal = actor->lastPos.x - _engine->_grid->_camera.x + actor->lastPos.z - _engine->_grid->_camera.z;
+ if (actor->_staticFlags.bUsesClipping) {
+ tmpVal = actor->_lastPos.x - _engine->_grid->_camera.x + actor->_lastPos.z - _engine->_grid->_camera.z;
}
} else {
drawList[drawListPos].type = 0;
@@ -236,13 +236,13 @@ int32 Redraw::fillActorDrawingList(DrawListStruct *drawList, bool bgRedraw) {
drawListPos++;
// if use shadows
- if (_engine->_cfgfile.ShadowMode != 0 && !(actor->staticFlags.bDoesntCastShadow)) {
- if (actor->standOn != -1) {
- _engine->_actor->shadowCoord.x = actor->pos.x;
- _engine->_actor->shadowCoord.y = actor->pos.y - 1;
- _engine->_actor->shadowCoord.z = actor->pos.z;
+ if (_engine->_cfgfile.ShadowMode != 0 && !(actor->_staticFlags.bDoesntCastShadow)) {
+ if (actor->_standOn != -1) {
+ _engine->_actor->shadowCoord.x = actor->_pos.x;
+ _engine->_actor->shadowCoord.y = actor->_pos.y - 1;
+ _engine->_actor->shadowCoord.z = actor->_pos.z;
} else {
- _engine->_movements->getShadowPosition(actor->pos);
+ _engine->_movements->getShadowPosition(actor->pos());
}
drawList[drawListPos].posValue = tmpVal - 1; // save the shadow entry in the _drawList
@@ -265,7 +265,7 @@ int32 Redraw::fillActorDrawingList(DrawListStruct *drawList, bool bgRedraw) {
int32 Redraw::fillExtraDrawingList(DrawListStruct *drawList, int32 drawListPos) {
for (int32 i = 0; i < EXTRA_MAX_ENTRIES; i++) {
- ExtraListStruct *extra = &_engine->_extra->extraList[i];
+ ExtraListStruct *extra = &_engine->_extra->_extraList[i];
if (extra->info0 == -1) {
continue;
}
@@ -337,25 +337,23 @@ void Redraw::processDrawListShadows(const DrawListStruct &drawCmd) {
void Redraw::processDrawListActors(const DrawListStruct &drawCmd, bool bgRedraw) {
const int32 actorIdx = drawCmd.actorIdx;
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- if (actor->previousAnimIdx >= 0) {
- const AnimData &animData = _engine->_resources->_animData[actor->previousAnimIdx];
- _engine->_animations->setModelAnimation(actor->animPosition, animData, _engine->_resources->_bodyData[actor->entity], &actor->animTimerData);
+ if (actor->_previousAnimIdx >= 0) {
+ const AnimData &animData = _engine->_resources->_animData[actor->_previousAnimIdx];
+ _engine->_animations->setModelAnimation(actor->_animPosition, animData, _engine->_resources->_bodyData[actor->_entity], &actor->_animTimerData);
}
- const int32 x = actor->pos.x - _engine->_grid->_camera.x;
- const int32 y = actor->pos.y - _engine->_grid->_camera.y;
- const int32 z = actor->pos.z - _engine->_grid->_camera.z;
+ const IVec3 &delta = actor->pos() - _engine->_grid->_camera;
Common::Rect renderRect;
- if (!_engine->_renderer->renderIsoModel(x, y, z, ANGLE_0, actor->angle, ANGLE_0, _engine->_resources->_bodyData[actor->entity], renderRect)) {
+ if (!_engine->_renderer->renderIsoModel(delta.x, delta.y, delta.z, ANGLE_0, actor->_angle, ANGLE_0, _engine->_resources->_bodyData[actor->_entity], renderRect)) {
return;
}
if (_engine->_interface->setClip(renderRect)) {
- actor->dynamicFlags.bIsVisible = 1;
+ actor->_dynamicFlags.bIsVisible = 1;
- const int32 tempX = (actor->pos.x + BRICK_HEIGHT) / BRICK_SIZE;
- int32 tempY = actor->pos.y / BRICK_HEIGHT;
- const int32 tempZ = (actor->pos.z + BRICK_HEIGHT) / BRICK_SIZE;
+ const int32 tempX = (actor->_pos.x + BRICK_HEIGHT) / BRICK_SIZE;
+ int32 tempY = actor->_pos.y / BRICK_HEIGHT;
+ const int32 tempZ = (actor->_pos.z + BRICK_HEIGHT) / BRICK_SIZE;
if (actor->brickShape() != ShapeType::kNone) {
tempY++;
}
@@ -368,7 +366,7 @@ void Redraw::processDrawListActors(const DrawListStruct &drawCmd, bool bgRedraw)
addRedrawArea(_engine->_interface->_clip);
- if (actor->staticFlags.bIsBackgrounded && bgRedraw) {
+ if (actor->_staticFlags.bIsBackgrounded && bgRedraw) {
_engine->blitFrontToWork(_engine->_interface->_clip);
}
@@ -379,26 +377,26 @@ void Redraw::processDrawListActors(const DrawListStruct &drawCmd, bool bgRedraw)
void Redraw::processDrawListActorSprites(const DrawListStruct &drawCmd, bool bgRedraw) {
int32 actorIdx = drawCmd.actorIdx;
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- const SpriteData &spriteData = _engine->_resources->_spriteData[actor->entity];
+ const SpriteData &spriteData = _engine->_resources->_spriteData[actor->_entity];
// TODO: using the raw pointer and not the SpriteData surface here is a workaround for issue https://bugs.scummvm.org/ticket/12024
- const uint8 *spritePtr = _engine->_resources->_spriteTable[actor->entity];
+ const uint8 *spritePtr = _engine->_resources->_spriteTable[actor->_entity];
// get actor position on screen
- _engine->_renderer->projectPositionOnScreen(actor->pos - _engine->_grid->_camera);
+ _engine->_renderer->projectPositionOnScreen(actor->pos() - _engine->_grid->_camera);
const int32 spriteWidth = spriteData.surface().w;
const int32 spriteHeight = spriteData.surface().h;
// calculate sprite position on screen
- const SpriteDim *dim = _engine->_resources->_spriteBoundingBox.dim(actor->entity);
+ const SpriteDim *dim = _engine->_resources->_spriteBoundingBox.dim(actor->_entity);
Common::Rect renderRect;
renderRect.left = _engine->_renderer->_projPos.x + dim->x;
renderRect.top = _engine->_renderer->_projPos.y + dim->y;
renderRect.right = renderRect.left + spriteWidth;
renderRect.bottom = renderRect.top + spriteHeight;
- if (actor->staticFlags.bUsesClipping) {
- const Common::Rect rect(_projPosScreen.x + actor->cropLeft, _projPosScreen.y + actor->cropTop, _projPosScreen.x + actor->cropRight, _projPosScreen.y + actor->cropBottom);
+ if (actor->_staticFlags.bUsesClipping) {
+ const Common::Rect rect(_projPosScreen.x + actor->_cropLeft, _projPosScreen.y + actor->_cropTop, _projPosScreen.x + actor->_cropRight, _projPosScreen.y + actor->_cropBottom);
_engine->_interface->setClip(rect);
} else {
_engine->_interface->setClip(renderRect);
@@ -407,17 +405,17 @@ void Redraw::processDrawListActorSprites(const DrawListStruct &drawCmd, bool bgR
if (_engine->_interface->_clip.isValidRect()) {
_engine->_grid->drawSprite(0, renderRect.left, renderRect.top, spritePtr);
- actor->dynamicFlags.bIsVisible = 1;
+ actor->_dynamicFlags.bIsVisible = 1;
- if (actor->staticFlags.bUsesClipping) {
- const int32 tmpX = (actor->lastPos.x + BRICK_HEIGHT) / BRICK_SIZE;
- const int32 tmpY = actor->lastPos.y / BRICK_HEIGHT;
- const int32 tmpZ = (actor->lastPos.z + BRICK_HEIGHT) / BRICK_SIZE;
+ if (actor->_staticFlags.bUsesClipping) {
+ const int32 tmpX = (actor->_lastPos.x + BRICK_HEIGHT) / BRICK_SIZE;
+ const int32 tmpY = actor->_lastPos.y / BRICK_HEIGHT;
+ const int32 tmpZ = (actor->_lastPos.z + BRICK_HEIGHT) / BRICK_SIZE;
_engine->_grid->drawOverSpriteActor(tmpX, tmpY, tmpZ);
} else {
- const int32 tmpX = (actor->pos.x + actor->boudingBox.maxs.x + BRICK_HEIGHT) / BRICK_SIZE;
- int32 tmpY = actor->pos.y / BRICK_HEIGHT;
- const int32 tmpZ = (actor->pos.z + actor->boudingBox.maxs.z + BRICK_HEIGHT) / BRICK_SIZE;
+ const int32 tmpX = (actor->_pos.x + actor->_boudingBox.maxs.x + BRICK_HEIGHT) / BRICK_SIZE;
+ int32 tmpY = actor->_pos.y / BRICK_HEIGHT;
+ const int32 tmpZ = (actor->_pos.z + actor->_boudingBox.maxs.z + BRICK_HEIGHT) / BRICK_SIZE;
if (actor->brickShape() != ShapeType::kNone) {
tmpY++;
}
@@ -427,7 +425,7 @@ void Redraw::processDrawListActorSprites(const DrawListStruct &drawCmd, bool bgR
addRedrawArea(_engine->_interface->_clip);
- if (actor->staticFlags.bIsBackgrounded && bgRedraw) {
+ if (actor->_staticFlags.bIsBackgrounded && bgRedraw) {
_engine->blitFrontToWork(_engine->_interface->_clip);
}
@@ -437,7 +435,7 @@ void Redraw::processDrawListActorSprites(const DrawListStruct &drawCmd, bool bgR
void Redraw::processDrawListExtras(const DrawListStruct &drawCmd) {
int32 extraIdx = drawCmd.actorIdx;
- ExtraListStruct *extra = &_engine->_extra->extraList[extraIdx];
+ ExtraListStruct *extra = &_engine->_extra->_extraList[extraIdx];
_engine->_renderer->projectPositionOnScreen(extra->pos - _engine->_grid->_camera);
@@ -521,7 +519,7 @@ void Redraw::renderOverlays() {
case OverlayPosType::koFollowActor: {
ActorStruct *actor2 = _engine->_scene->getActor(overlay->info1);
- _engine->_renderer->projectPositionOnScreen(actor2->pos.x - _engine->_grid->_camera.x, actor2->pos.y + actor2->boudingBox.maxs.y - _engine->_grid->_camera.y, actor2->pos.z - _engine->_grid->_camera.z);
+ _engine->_renderer->projectPositionOnScreen(actor2->_pos.x - _engine->_grid->_camera.x, actor2->_pos.y + actor2->_boudingBox.maxs.y - _engine->_grid->_camera.y, actor2->_pos.z - _engine->_grid->_camera.z);
overlay->x = _engine->_renderer->_projPos.x;
overlay->y = _engine->_renderer->_projPos.y;
@@ -631,7 +629,7 @@ void Redraw::renderOverlays() {
_engine->_interface->setClip(renderRect);
- _engine->_text->setFontColor(_engine->_scene->getActor(overlay->info1)->talkColor);
+ _engine->_text->setFontColor(_engine->_scene->getActor(overlay->info1)->_talkColor);
_engine->_text->drawText(renderRect.left, renderRect.top, text);
@@ -717,7 +715,7 @@ void Redraw::drawBubble(int32 actorIdx) {
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
// get actor position on screen
- _engine->_renderer->projectPositionOnScreen(actor->pos.x - _engine->_grid->_camera.x, actor->pos.y + actor->boudingBox.maxs.y - _engine->_grid->_camera.y, actor->pos.z - _engine->_grid->_camera.z);
+ _engine->_renderer->projectPositionOnScreen(actor->_pos.x - _engine->_grid->_camera.x, actor->_pos.y + actor->_boudingBox.maxs.y - _engine->_grid->_camera.y, actor->_pos.z - _engine->_grid->_camera.z);
if (actorIdx != _bubbleActor) {
_bubbleSpriteIndex = _bubbleSpriteIndex ^ 1;
diff --git a/engines/twine/scene/actor.cpp b/engines/twine/scene/actor.cpp
index 137b350768..5858f660f3 100644
--- a/engines/twine/scene/actor.cpp
+++ b/engines/twine/scene/actor.cpp
@@ -45,24 +45,24 @@ Actor::Actor(TwinEEngine *engine) : _engine(engine) {
void Actor::restartHeroScene() {
ActorStruct *sceneHero = _engine->_scene->_sceneHero;
- sceneHero->controlMode = ControlMode::kManual;
- memset(&sceneHero->dynamicFlags, 0, sizeof(sceneHero->dynamicFlags));
- memset(&sceneHero->staticFlags, 0, sizeof(sceneHero->staticFlags));
-
- sceneHero->staticFlags.bComputeCollisionWithObj = 1;
- sceneHero->staticFlags.bComputeCollisionWithBricks = 1;
- sceneHero->staticFlags.bIsZonable = 1;
- sceneHero->staticFlags.bCanDrown = 1;
- sceneHero->staticFlags.bCanFall = 1;
-
- sceneHero->armor = 1;
- sceneHero->positionInMoveScript = -1;
- sceneHero->labelIdx = -1;
- sceneHero->positionInLifeScript = 0;
- sceneHero->zone = -1;
- sceneHero->angle = previousHeroAngle;
-
- _engine->_movements->setActorAngleSafe(sceneHero->angle, sceneHero->angle, ANGLE_0, &sceneHero->move);
+ sceneHero->_controlMode = ControlMode::kManual;
+ memset(&sceneHero->_dynamicFlags, 0, sizeof(sceneHero->_dynamicFlags));
+ memset(&sceneHero->_staticFlags, 0, sizeof(sceneHero->_staticFlags));
+
+ sceneHero->_staticFlags.bComputeCollisionWithObj = 1;
+ sceneHero->_staticFlags.bComputeCollisionWithBricks = 1;
+ sceneHero->_staticFlags.bIsZonable = 1;
+ sceneHero->_staticFlags.bCanDrown = 1;
+ sceneHero->_staticFlags.bCanFall = 1;
+
+ sceneHero->_armor = 1;
+ sceneHero->_positionInMoveScript = -1;
+ sceneHero->_labelIdx = -1;
+ sceneHero->_positionInLifeScript = 0;
+ sceneHero->_zone = -1;
+ sceneHero->_angle = previousHeroAngle;
+
+ _engine->_movements->setActorAngleSafe(sceneHero->_angle, sceneHero->_angle, ANGLE_0, &sceneHero->_move);
setBehaviour(previousHeroBehaviour);
cropBottomScreen = 0;
@@ -73,7 +73,7 @@ void Actor::loadBehaviourEntity(ActorStruct *actor, EntityData &entityData, int1
error("Failed to load actor 3d data for index: %i", index);
}
- actor->entityData = &entityData;
+ actor->_entityDataPtr = &entityData;
bodyAnimIndex = entityData.getAnimIndex(AnimationTypes::kStanding);
if (bodyAnimIndex == -1) {
error("Could not find animation data for 3d data with index %i", index);
@@ -88,8 +88,8 @@ void Actor::loadHeroEntities() {
loadBehaviourEntity(sceneHero, _heroEntityPROTOPACK, heroAnimIdxPROTOPACK, FILE3DHQR_HEROPROTOPACK);
loadBehaviourEntity(sceneHero, _heroEntityNORMAL, heroAnimIdxNORMAL, FILE3DHQR_HERONORMAL);
- _engine->_animations->currentActorAnimExtraPtr = AnimationTypes::kStanding;
- sceneHero->animExtraPtr = _engine->_animations->currentActorAnimExtraPtr;
+ _engine->_animations->_currentActorAnimExtraPtr = AnimationTypes::kStanding;
+ sceneHero->_animExtraPtr = _engine->_animations->_currentActorAnimExtraPtr;
}
void Actor::setBehaviour(HeroBehaviourType behaviour) {
@@ -97,35 +97,35 @@ void Actor::setBehaviour(HeroBehaviourType behaviour) {
switch (behaviour) {
case HeroBehaviourType::kNormal:
heroBehaviour = behaviour;
- sceneHero->entityData = &_heroEntityNORMAL;
+ sceneHero->_entityDataPtr = &_heroEntityNORMAL;
break;
case HeroBehaviourType::kAthletic:
heroBehaviour = behaviour;
- sceneHero->entityData = &_heroEntityATHLETIC;
+ sceneHero->_entityDataPtr = &_heroEntityATHLETIC;
break;
case HeroBehaviourType::kAggressive:
heroBehaviour = behaviour;
- sceneHero->entityData = &_heroEntityAGGRESSIVE;
+ sceneHero->_entityDataPtr = &_heroEntityAGGRESSIVE;
break;
case HeroBehaviourType::kDiscrete:
heroBehaviour = behaviour;
- sceneHero->entityData = &_heroEntityDISCRETE;
+ sceneHero->_entityDataPtr = &_heroEntityDISCRETE;
break;
case HeroBehaviourType::kProtoPack:
heroBehaviour = behaviour;
- sceneHero->entityData = &_heroEntityPROTOPACK;
+ sceneHero->_entityDataPtr = &_heroEntityPROTOPACK;
break;
};
- const BodyType bodyIdx = sceneHero->body;
+ const BodyType bodyIdx = sceneHero->_body;
- sceneHero->entity = -1;
- sceneHero->body = BodyType::btNone;
+ sceneHero->_entity = -1;
+ sceneHero->_body = BodyType::btNone;
initModelActor(bodyIdx, OWN_ACTOR_SCENE_INDEX);
- sceneHero->anim = AnimationTypes::kAnimNone;
- sceneHero->animType = AnimType::kAnimationTypeLoop;
+ sceneHero->_anim = AnimationTypes::kAnimNone;
+ sceneHero->_animType = AnimType::kAnimationTypeLoop;
_engine->_animations->initAnim(AnimationTypes::kStanding, AnimType::kAnimationTypeLoop, AnimationTypes::kAnimInvalid, 0);
}
@@ -133,10 +133,10 @@ void Actor::setBehaviour(HeroBehaviourType behaviour) {
void Actor::initSpriteActor(int32 actorIdx) {
ActorStruct *localActor = _engine->_scene->getActor(actorIdx);
- if (localActor->staticFlags.bIsSpriteActor && localActor->sprite != -1 && localActor->entity != localActor->sprite) {
- const BoundingBox *spritebbox = _engine->_resources->_spriteBoundingBox.bbox(localActor->sprite);
- localActor->entity = localActor->sprite;
- localActor->boudingBox = *spritebbox;
+ if (localActor->_staticFlags.bIsSpriteActor && localActor->_sprite != -1 && localActor->_entity != localActor->_sprite) {
+ const BoundingBox *spritebbox = _engine->_resources->_spriteBoundingBox.bbox(localActor->_sprite);
+ localActor->_entity = localActor->_sprite;
+ localActor->_boudingBox = *spritebbox;
}
}
@@ -153,7 +153,7 @@ int32 Actor::initBody(BodyType bodyIdx, int32 actorIdx, ActorBoundingBox &actorB
return -1;
}
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- const EntityBody* body = actor->entityData->getBody((int)bodyIdx);
+ const EntityBody* body = actor->_entityDataPtr->getBody((int)bodyIdx);
if (body == nullptr) {
return -1;
}
@@ -163,43 +163,43 @@ int32 Actor::initBody(BodyType bodyIdx, int32 actorIdx, ActorBoundingBox &actorB
void Actor::initModelActor(BodyType bodyIdx, int16 actorIdx) {
ActorStruct *localActor = _engine->_scene->getActor(actorIdx);
- if (localActor->staticFlags.bIsSpriteActor) {
+ if (localActor->_staticFlags.bIsSpriteActor) {
return;
}
debug(1, "Load body %i for actor %i", (int)bodyIdx, actorIdx);
- if (IS_HERO(actorIdx) && heroBehaviour == HeroBehaviourType::kProtoPack && localActor->armor != 0 && localActor->armor != 1) {
+ if (IS_HERO(actorIdx) && heroBehaviour == HeroBehaviourType::kProtoPack && localActor->_armor != 0 && localActor->_armor != 1) {
setBehaviour(HeroBehaviourType::kNormal);
}
ActorBoundingBox actorBoundingBox;
const int32 entityIdx = initBody(bodyIdx, actorIdx, actorBoundingBox);
if (entityIdx == -1) {
- localActor->body = BodyType::btNone;
- localActor->entity = -1;
- localActor->boudingBox = BoundingBox();
+ localActor->_body = BodyType::btNone;
+ localActor->_entity = -1;
+ localActor->_boudingBox = BoundingBox();
debug("Failed to initialize body %i for actor %i", (int)bodyIdx, actorIdx);
return;
}
- if (localActor->entity == entityIdx) {
+ if (localActor->_entity == entityIdx) {
return;
}
- localActor->entity = entityIdx;
- localActor->body = bodyIdx;
+ localActor->_entity = entityIdx;
+ localActor->_body = bodyIdx;
if (actorBoundingBox.hasBoundingBox) {
- localActor->boudingBox = actorBoundingBox.bbox;
+ localActor->_boudingBox = actorBoundingBox.bbox;
} else {
- const BodyData &bd = _engine->_resources->_bodyData[localActor->entity];
- localActor->boudingBox = bd.bbox;
+ const BodyData &bd = _engine->_resources->_bodyData[localActor->_entity];
+ localActor->_boudingBox = bd.bbox;
int32 result = 0;
- const int32 distX = localActor->boudingBox.maxs.x - localActor->boudingBox.mins.x;
- const int32 distZ = localActor->boudingBox.maxs.z - localActor->boudingBox.mins.z;
- if (localActor->staticFlags.bUseMiniZv) {
+ const int32 distX = localActor->_boudingBox.maxs.x - localActor->_boudingBox.mins.x;
+ const int32 distZ = localActor->_boudingBox.maxs.z - localActor->_boudingBox.mins.z;
+ if (localActor->_staticFlags.bUseMiniZv) {
// take smaller for bound
result = MIN(distX, distZ);
@@ -212,114 +212,114 @@ void Actor::initModelActor(BodyType bodyIdx, int16 actorIdx) {
result >>= 2;
}
- localActor->boudingBox.mins.x = -result;
- localActor->boudingBox.maxs.x = result;
- localActor->boudingBox.mins.z = -result;
- localActor->boudingBox.maxs.z = result;
+ localActor->_boudingBox.mins.x = -result;
+ localActor->_boudingBox.maxs.x = result;
+ localActor->_boudingBox.mins.z = -result;
+ localActor->_boudingBox.maxs.z = result;
}
}
void Actor::initActor(int16 actorIdx) {
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- if (actor->staticFlags.bIsSpriteActor) {
- if (actor->strengthOfHit != 0) {
- actor->dynamicFlags.bIsHitting = 1;
+ if (actor->_staticFlags.bIsSpriteActor) {
+ if (actor->_strengthOfHit != 0) {
+ actor->_dynamicFlags.bIsHitting = 1;
}
- actor->entity = -1;
+ actor->_entity = -1;
initSpriteActor(actorIdx);
- _engine->_movements->setActorAngleSafe(ANGLE_0, ANGLE_0, ANGLE_0, &actor->move);
+ _engine->_movements->setActorAngleSafe(ANGLE_0, ANGLE_0, ANGLE_0, &actor->_move);
- if (actor->staticFlags.bUsesClipping) {
- actor->lastPos = actor->pos;
+ if (actor->_staticFlags.bUsesClipping) {
+ actor->_lastPos = actor->pos();
}
} else {
- actor->entity = -1;
+ actor->_entity = -1;
- debug(1, "Init actor %i with model %i", actorIdx, (int)actor->body);
- initModelActor(actor->body, actorIdx);
+ debug(1, "Init actor %i with model %i", actorIdx, (int)actor->_body);
+ initModelActor(actor->_body, actorIdx);
- actor->previousAnimIdx = -1;
- actor->animType = AnimType::kAnimationTypeLoop;
+ actor->_previousAnimIdx = -1;
+ actor->_animType = AnimType::kAnimationTypeLoop;
- if (actor->entity != -1) {
- _engine->_animations->initAnim(actor->anim, AnimType::kAnimationTypeLoop, AnimationTypes::kAnimInvalid, actorIdx);
+ if (actor->_entity != -1) {
+ _engine->_animations->initAnim(actor->_anim, AnimType::kAnimationTypeLoop, AnimationTypes::kAnimInvalid, actorIdx);
}
- _engine->_movements->setActorAngleSafe(actor->angle, actor->angle, ANGLE_0, &actor->move);
+ _engine->_movements->setActorAngleSafe(actor->_angle, actor->_angle, ANGLE_0, &actor->_move);
}
- actor->positionInMoveScript = -1;
- actor->labelIdx = -1;
- actor->positionInLifeScript = 0;
+ actor->_positionInMoveScript = -1;
+ actor->_labelIdx = -1;
+ actor->_positionInLifeScript = 0;
}
void Actor::resetActor(int16 actorIdx) {
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- actor->actorIdx = actorIdx;
- actor->body = BodyType::btNormal;
- actor->anim = AnimationTypes::kStanding;
- actor->pos = IVec3(0, -1, 0);
+ actor->_actorIdx = actorIdx;
+ actor->_body = BodyType::btNormal;
+ actor->_anim = AnimationTypes::kStanding;
+ actor->_pos = IVec3(0, -1, 0);
- actor->boudingBox = BoundingBox();
+ actor->_boudingBox = BoundingBox();
- actor->angle = 0;
- actor->speed = 40;
- actor->controlMode = ControlMode::kNoMove;
+ actor->_angle = 0;
+ actor->_speed = 40;
+ actor->_controlMode = ControlMode::kNoMove;
- actor->cropLeft = 0;
- actor->cropTop = 0;
- actor->cropRight = 0;
- actor->cropBottom = 0;
+ actor->_cropLeft = 0;
+ actor->_cropTop = 0;
+ actor->_cropRight = 0;
+ actor->_cropBottom = 0;
actor->setBrickShape(ShapeType::kNone);
- actor->collision = -1;
- actor->standOn = -1;
- actor->zone = -1;
+ actor->_collision = -1;
+ actor->_standOn = -1;
+ actor->_zone = -1;
- memset(&actor->staticFlags, 0, sizeof(StaticFlagsStruct));
- memset(&actor->dynamicFlags, 0, sizeof(DynamicFlagsStruct));
- memset(&actor->bonusParameter, 0, sizeof(BonusParameter));
+ memset(&actor->_staticFlags, 0, sizeof(StaticFlagsStruct));
+ memset(&actor->_dynamicFlags, 0, sizeof(DynamicFlagsStruct));
+ memset(&actor->_bonusParameter, 0, sizeof(BonusParameter));
actor->setLife(kActorMaxLife);
- actor->armor = 1;
- actor->hitBy = -1;
- actor->lastRotationAngle = ANGLE_0;
- actor->lastPos = IVec3();
- actor->entity = -1;
- actor->previousAnimIdx = -1;
- actor->animType = AnimType::kAnimationTypeLoop;
- actor->animPosition = 0;
-
- _engine->_movements->setActorAngleSafe(ANGLE_0, ANGLE_0, ANGLE_0, &actor->move);
-
- actor->positionInMoveScript = -1;
- actor->positionInLifeScript = 0;
+ actor->_armor = 1;
+ actor->_hitBy = -1;
+ actor->_lastRotationAngle = ANGLE_0;
+ actor->_lastPos = IVec3();
+ actor->_entity = -1;
+ actor->_previousAnimIdx = -1;
+ actor->_animType = AnimType::kAnimationTypeLoop;
+ actor->_animPosition = 0;
+
+ _engine->_movements->setActorAngleSafe(ANGLE_0, ANGLE_0, ANGLE_0, &actor->_move);
+
+ actor->_positionInMoveScript = -1;
+ actor->_positionInLifeScript = 0;
}
void Actor::hitActor(int32 actorIdx, int32 actorIdxAttacked, int32 strengthOfHit, int32 angle) {
ActorStruct *actor = _engine->_scene->getActor(actorIdxAttacked);
- if (actor->life <= 0) {
+ if (actor->_life <= 0) {
return;
}
- actor->hitBy = actorIdx;
+ actor->_hitBy = actorIdx;
- if (actor->armor <= strengthOfHit) {
- if (actor->anim == AnimationTypes::kBigHit || actor->anim == AnimationTypes::kHit2) {
- const int32 tmpAnimPos = actor->animPosition;
- if (actor->animExtra != AnimationTypes::kStanding) {
+ if (actor->_armor <= strengthOfHit) {
+ if (actor->_anim == AnimationTypes::kBigHit || actor->_anim == AnimationTypes::kHit2) {
+ const int32 tmpAnimPos = actor->_animPosition;
+ if (actor->_animExtra != AnimationTypes::kStanding) {
_engine->_animations->processAnimActions(actorIdxAttacked);
}
- actor->animPosition = tmpAnimPos;
+ actor->_animPosition = tmpAnimPos;
} else {
if (angle != -1) {
- _engine->_movements->setActorAngleSafe(angle, angle, ANGLE_0, &actor->move);
+ _engine->_movements->setActorAngleSafe(angle, angle, ANGLE_0, &actor->_move);
}
if (_engine->getRandomNumber() & 1) {
@@ -329,15 +329,15 @@ void Actor::hitActor(int32 actorIdx, int32 actorIdxAttacked, int32 strengthOfHit
}
}
- _engine->_extra->addExtraSpecial(actor->pos.x, actor->pos.y + 1000, actor->pos.z, ExtraSpecialType::kHitStars);
+ _engine->_extra->addExtraSpecial(actor->_pos.x, actor->_pos.y + 1000, actor->_pos.z, ExtraSpecialType::kHitStars);
if (!actorIdxAttacked) {
_engine->_movements->_heroMoved = true;
}
- actor->life -= strengthOfHit;
- if (actor->life < 0) {
- actor->life = 0;
+ actor->_life -= strengthOfHit;
+ if (actor->_life < 0) {
+ actor->_life = 0;
}
} else {
_engine->_animations->initAnim(AnimationTypes::kHit, AnimType::kAnimationType_3, AnimationTypes::kAnimInvalid, actorIdxAttacked);
@@ -346,12 +346,12 @@ void Actor::hitActor(int32 actorIdx, int32 actorIdxAttacked, int32 strengthOfHit
void Actor::processActorCarrier(int32 actorIdx) { // CheckCarrier
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- if (!actor->staticFlags.bIsCarrierActor) {
+ if (!actor->_staticFlags.bIsCarrierActor) {
return;
}
for (int32 a = 0; a < _engine->_scene->_sceneNumActors; a++) {
- if (actor->standOn == actorIdx) {
- actor->standOn = -1;
+ if (actor->_standOn == actorIdx) {
+ actor->_standOn = -1;
}
}
}
@@ -359,31 +359,31 @@ void Actor::processActorCarrier(int32 actorIdx) { // CheckCarrier
void Actor::processActorExtraBonus(int32 actorIdx) { // GiveExtraBonus
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- const int bonusSprite = _engine->_extra->getBonusSprite(actor->bonusParameter);
+ const int bonusSprite = _engine->_extra->getBonusSprite(actor->_bonusParameter);
if (bonusSprite == -1) {
return;
}
- if (actor->dynamicFlags.bIsDead) {
- _engine->_extra->addExtraBonus(actor->pos.x, actor->pos.y, actor->pos.z, ANGLE_90, ANGLE_0, bonusSprite, actor->bonusAmount);
- _engine->_sound->playSample(Samples::ItemPopup, 1, actor->pos, actorIdx);
+ if (actor->_dynamicFlags.bIsDead) {
+ _engine->_extra->addExtraBonus(actor->pos(), ANGLE_90, ANGLE_0, bonusSprite, actor->_bonusAmount);
+ _engine->_sound->playSample(Samples::ItemPopup, 1, actor->pos(), actorIdx);
} else {
ActorStruct *sceneHero = _engine->_scene->_sceneHero;
- const int32 angle = _engine->_movements->getAngleAndSetTargetActorDistance(actor->pos, sceneHero->pos);
- _engine->_extra->addExtraBonus(actor->pos.x, actor->pos.y + actor->boudingBox.maxs.y, actor->pos.z, ANGLE_70, angle, bonusSprite, actor->bonusAmount);
- _engine->_sound->playSample(Samples::ItemPopup, 1, actor->pos.x, actor->pos.y + actor->boudingBox.maxs.y, actor->pos.z, actorIdx);
+ const int32 angle = _engine->_movements->getAngleAndSetTargetActorDistance(actor->pos(), sceneHero->pos());
+ _engine->_extra->addExtraBonus(actor->_pos.x, actor->_pos.y + actor->_boudingBox.maxs.y, actor->_pos.z, ANGLE_70, angle, bonusSprite, actor->_bonusAmount);
+ _engine->_sound->playSample(Samples::ItemPopup, 1, actor->_pos.x, actor->_pos.y + actor->_boudingBox.maxs.y, actor->_pos.z, actorIdx);
}
}
void ActorStruct::loadModel(int32 modelIndex) {
- entity = modelIndex;
- if (!staticFlags.bIsSpriteActor) {
+ _entity = modelIndex;
+ if (!_staticFlags.bIsSpriteActor) {
debug(1, "Init actor with model %i", modelIndex);
if (!_entityData.loadFromHQR(Resources::HQR_FILE3D_FILE, modelIndex)) {
error("Failed to load entity data for index %i", modelIndex);
}
- entityData = &_entityData;
+ _entityDataPtr = &_entityData;
} else {
- entityData = nullptr;
+ _entityDataPtr = nullptr;
}
}
@@ -425,15 +425,15 @@ int32 ActorMoveStruct::getRealValue(int32 time) {
}
bool ActorStruct::isAttackAnimationActive() const {
- return anim == AnimationTypes::kRightPunch || anim == AnimationTypes::kLeftPunch || anim == AnimationTypes::kKick;
+ return _anim == AnimationTypes::kRightPunch || _anim == AnimationTypes::kLeftPunch || _anim == AnimationTypes::kKick;
}
bool ActorStruct::isAttackWeaponAnimationActive() const {
- return anim == AnimationTypes::kSabreAttack || anim == AnimationTypes::kThrowBall || anim == AnimationTypes::kSabreUnknown;
+ return _anim == AnimationTypes::kSabreAttack || _anim == AnimationTypes::kThrowBall || _anim == AnimationTypes::kSabreUnknown;
}
bool ActorStruct::isJumpAnimationActive() const {
- return anim == AnimationTypes::kJump;
+ return _anim == AnimationTypes::kJump;
}
} // namespace TwinE
diff --git a/engines/twine/scene/actor.h b/engines/twine/scene/actor.h
index e6a2e80186..3a6843ae4a 100644
--- a/engines/twine/scene/actor.h
+++ b/engines/twine/scene/actor.h
@@ -161,8 +161,8 @@ private:
EntityData _entityData;
public:
- StaticFlagsStruct staticFlags;
- DynamicFlagsStruct dynamicFlags;
+ StaticFlagsStruct _staticFlags;
+ DynamicFlagsStruct _dynamicFlags;
inline ShapeType brickShape() const { return _brickShape; }
inline void setBrickShape(ShapeType shapeType) {
@@ -173,82 +173,87 @@ public:
inline bool brickCausesDamage() { return _brickCausesDamage; }
void loadModel(int32 modelIndex);
- int32 entity = 0; // costumeIndex - index into bodyTable
- BodyType body = BodyType::btNormal;
- AnimationTypes anim = AnimationTypes::kAnimNone;
- AnimationTypes animExtra = AnimationTypes::kStanding; //field_2
- AnimationTypes animExtraPtr = AnimationTypes::kAnimNone;
- int32 sprite = 0; // field_8
- EntityData *entityData = nullptr;
+ void addLife(int32 val);
+
+ void setLife(int32 val);
bool isAttackWeaponAnimationActive() const;
bool isAttackAnimationActive() const;
bool isJumpAnimationActive() const;
- int16 actorIdx = 0; // own actor index
- IVec3 pos;
- int32 strengthOfHit = 0; // field_66
- int32 hitBy = 0;
- BonusParameter bonusParameter; // field_10
- int32 angle = 0; // facing angle of actor. Minumum is 0 (SW). Going counter clock wise
- int32 speed = 0;
- ControlMode controlMode = ControlMode::kNoMove;
- int32 delayInMillis = 0;
- int32 cropLeft = 0;
- int32 cropTop = 0;
- int32 cropRight = 0;
- int32 cropBottom = 0;
- int32 followedActor = 0; // same as info3
- int32 bonusAmount = 0; // field_12
- int32 talkColor = COLOR_BLACK;
- int32 armor = 0; // field_14
- int32 life = 0;
-
- void addLife(int32 val);
-
- void setLife(int32 val);
-
- IVec3 collisionPos;
-
- int32 positionInMoveScript = 0;
- uint8 *moveScript = nullptr;
- int32 moveScriptSize = 0;
-
- int32 positionInLifeScript = 0;
- uint8 *lifeScript = nullptr;
- int32 lifeScriptSize = 0;
-
- int32 labelIdx = 0; // script label index
- int32 currentLabelPtr = 0; // pointer to LABEL offset
- int32 pausedTrackPtr = 0;
-
- //int costumeIndex;
- int32 collision = 0;
- int32 standOn = 0;
- int32 zone = 0;
-
- int32 lastRotationAngle = ANGLE_0;
- IVec3 lastPos;
- int32 previousAnimIdx = 0;
- int32 doorStatus = 0;
- int32 animPosition = 0;
- AnimType animType = AnimType::kAnimationTypeLoop; // field_78
- int32 spriteActorRotation = 0;
- int32 brickSound = 0; // field_7A
-
- BoundingBox boudingBox;
- ActorMoveStruct move;
- AnimTimerDataStruct animTimerData;
+ const IVec3 &pos() const;
+
+ int32 _entity = 0; // costumeIndex - index into bodyTable
+ BodyType _body = BodyType::btNormal;
+ AnimationTypes _anim = AnimationTypes::kAnimNone;
+ AnimationTypes _animExtra = AnimationTypes::kStanding; //field_2
+ AnimationTypes _animExtraPtr = AnimationTypes::kAnimNone;
+ int32 _sprite = 0; // field_8
+ EntityData *_entityDataPtr = nullptr;
+
+ int16 _actorIdx = 0; // own actor index
+ IVec3 _pos;
+ int32 _strengthOfHit = 0; // field_66
+ int32 _hitBy = 0;
+ BonusParameter _bonusParameter; // field_10
+ int32 _angle = 0; // facing angle of actor. Minumum is 0 (SW). Going counter clock wise
+ int32 _speed = 0;
+ ControlMode _controlMode = ControlMode::kNoMove;
+ int32 _delayInMillis = 0;
+ int32 _cropLeft = 0;
+ int32 _cropTop = 0;
+ int32 _cropRight = 0;
+ int32 _cropBottom = 0;
+ int32 _followedActor = 0; // same as info3
+ int32 _bonusAmount = 0; // field_12
+ int32 _talkColor = COLOR_BLACK;
+ int32 _armor = 0; // field_14
+ int32 _life = 0;
+
+ IVec3 _collisionPos;
+
+ int32 _positionInMoveScript = 0;
+ uint8 *_moveScript = nullptr;
+ int32 _moveScriptSize = 0;
+
+ int32 _positionInLifeScript = 0;
+ uint8 *_lifeScript = nullptr;
+ int32 _lifeScriptSize = 0;
+
+ int32 _labelIdx = 0; // script label index
+ int32 _currentLabelPtr = 0; // pointer to LABEL offset
+ int32 _pausedTrackPtr = 0;
+
+ int32 _collision = 0;
+ int32 _standOn = 0;
+ int32 _zone = 0;
+
+ int32 _lastRotationAngle = ANGLE_0;
+ IVec3 _lastPos;
+ int32 _previousAnimIdx = 0;
+ int32 _doorStatus = 0;
+ int32 _animPosition = 0;
+ AnimType _animType = AnimType::kAnimationTypeLoop; // field_78
+ int32 _spriteActorRotation = 0;
+ int32 _brickSound = 0; // field_7A
+
+ BoundingBox _boudingBox;
+ ActorMoveStruct _move;
+ AnimTimerDataStruct _animTimerData;
};
+inline const IVec3 &ActorStruct::pos() const {
+ return _pos;
+}
+
inline void ActorStruct::addLife(int32 val) {
- setLife(life + val);
+ setLife(_life + val);
}
inline void ActorStruct::setLife(int32 val) {
- life = val;
- if (life > kActorMaxLife) {
- life = kActorMaxLife;
+ _life = val;
+ if (_life > kActorMaxLife) {
+ _life = kActorMaxLife;
}
}
diff --git a/engines/twine/scene/animations.cpp b/engines/twine/scene/animations.cpp
index a227d83d51..55b5bca0a1 100644
--- a/engines/twine/scene/animations.cpp
+++ b/engines/twine/scene/animations.cpp
@@ -56,9 +56,9 @@ Animations::Animations(TwinEEngine *engine) : _engine(engine) {
int32 Animations::getBodyAnimIndex(AnimationTypes animIdx, int32 actorIdx) {
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- const int32 bodyAnimIndex = actor->entityData->getAnimIndex(animIdx);
+ const int32 bodyAnimIndex = actor->_entityDataPtr->getAnimIndex(animIdx);
if (bodyAnimIndex != -1) {
- currentActorAnimExtraPtr = animIdx;
+ _currentActorAnimExtraPtr = animIdx;
}
return bodyAnimIndex;
}
@@ -104,12 +104,12 @@ bool Animations::setModelAnimation(int32 keyframeIdx, const AnimData &animData,
}
const KeyFrame *keyFrame = animData.getKeyframe(keyframeIdx);
- currentStep.x = keyFrame->x;
- currentStep.y = keyFrame->y;
- currentStep.z = keyFrame->z;
+ _currentStep.x = keyFrame->x;
+ _currentStep.y = keyFrame->y;
+ _currentStep.z = keyFrame->z;
- processRotationByAnim = keyFrame->boneframes[0].type;
- processLastRotationAngle = ToAngle(keyFrame->boneframes[0].y);
+ _processRotationByAnim = keyFrame->boneframes[0].type;
+ _processLastRotationAngle = ToAngle(keyFrame->boneframes[0].y);
const int16 numBones = bodyData.getNumBones();
@@ -133,7 +133,7 @@ bool Animations::setModelAnimation(int32 keyframeIdx, const AnimData &animData,
return true;
}
- processLastRotationAngle = (processLastRotationAngle * deltaTime) / keyFrameLength;
+ _processLastRotationAngle = (_processLastRotationAngle * deltaTime) / keyFrameLength;
if (numOfBonesInAnim <= 1) {
return false;
@@ -181,12 +181,12 @@ void Animations::setAnimAtKeyframe(int32 keyframeIdx, const AnimData &animData,
const KeyFrame *keyFrame = animData.getKeyframe(keyframeIdx);
- currentStep.x = keyFrame->x;
- currentStep.y = keyFrame->y;
- currentStep.z = keyFrame->z;
+ _currentStep.x = keyFrame->x;
+ _currentStep.y = keyFrame->y;
+ _currentStep.z = keyFrame->z;
- processRotationByAnim = keyFrame->boneframes[0].type;
- processLastRotationAngle = ToAngle(keyFrame->boneframes[0].y);
+ _processRotationByAnim = keyFrame->boneframes[0].type;
+ _processLastRotationAngle = ToAngle(keyFrame->boneframes[0].y);
animTimerDataPtr->ptr = animData.getKeyframe(keyframeIdx);
animTimerDataPtr->time = _engine->_lbaTime;
@@ -206,11 +206,11 @@ void Animations::stockAnimation(const BodyData &bodyData, AnimTimerDataStruct *a
return;
}
- if (animKeyframeBufIdx >= ARRAYSIZE(animKeyframeBuf)) {
- animKeyframeBufIdx = 0;
+ if (_animKeyframeBufIdx >= ARRAYSIZE(_animKeyframeBuf)) {
+ _animKeyframeBufIdx = 0;
}
animTimerDataPtr->time = _engine->_lbaTime;
- KeyFrame *keyframe = &animKeyframeBuf[animKeyframeBufIdx++];
+ KeyFrame *keyframe = &_animKeyframeBuf[_animKeyframeBufIdx++];
animTimerDataPtr->ptr = keyframe;
copyStateToKeyFrame(keyframe, bodyData);
}
@@ -243,13 +243,13 @@ bool Animations::verifyAnimAtKeyframe(int32 keyframeIdx, const AnimData &animDat
const int32 deltaTime = _engine->_lbaTime - remainingFrameTime;
- currentStep.x = keyFrame->x;
- currentStep.y = keyFrame->y;
- currentStep.z = keyFrame->z;
+ _currentStep.x = keyFrame->x;
+ _currentStep.y = keyFrame->y;
+ _currentStep.z = keyFrame->z;
const BoneFrame &boneFrame = keyFrame->boneframes[0];
- processRotationByAnim = boneFrame.type;
- processLastRotationAngle = ToAngle(boneFrame.y);
+ _processRotationByAnim = boneFrame.type;
+ _processLastRotationAngle = ToAngle(boneFrame.y);
if (deltaTime >= keyFrameLength) {
animTimerDataPtr->ptr = animData.getKeyframe(keyframeIdx);
@@ -257,125 +257,125 @@ bool Animations::verifyAnimAtKeyframe(int32 keyframeIdx, const AnimData &animDat
return true;
}
- processLastRotationAngle = (processLastRotationAngle * deltaTime) / keyFrameLength;
- currentStep.x = (currentStep.x * deltaTime) / keyFrameLength;
- currentStep.y = (currentStep.y * deltaTime) / keyFrameLength;
- currentStep.z = (currentStep.z * deltaTime) / keyFrameLength;
+ _processLastRotationAngle = (_processLastRotationAngle * deltaTime) / keyFrameLength;
+ _currentStep.x = (_currentStep.x * deltaTime) / keyFrameLength;
+ _currentStep.y = (_currentStep.y * deltaTime) / keyFrameLength;
+ _currentStep.z = (_currentStep.z * deltaTime) / keyFrameLength;
return false;
}
void Animations::processAnimActions(int32 actorIdx) {
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- if (actor->entityData == nullptr || actor->animExtraPtr == AnimationTypes::kAnimNone) {
+ if (actor->_entityDataPtr == nullptr || actor->_animExtraPtr == AnimationTypes::kAnimNone) {
return;
}
- const Common::Array<EntityAnim::Action> *actions = actor->entityData->getActions(actor->animExtraPtr);
+ const Common::Array<EntityAnim::Action> *actions = actor->_entityDataPtr->getActions(actor->_animExtraPtr);
if (actions == nullptr) {
return;
}
for (const EntityAnim::Action &action : *actions) {
switch (action.type) {
case ActionType::ACTION_HITTING:
- if (action.animFrame - 1 == actor->animPosition) {
- actor->strengthOfHit = action.strength;
- actor->dynamicFlags.bIsHitting = 1;
+ if (action.animFrame - 1 == actor->_animPosition) {
+ actor->_strengthOfHit = action.strength;
+ actor->_dynamicFlags.bIsHitting = 1;
}
break;
case ActionType::ACTION_SAMPLE:
case ActionType::ACTION_SAMPLE_FREQ:
- if (action.animFrame == actor->animPosition) {
- _engine->_sound->playSample(action.sampleIndex, 1, actor->pos, actorIdx);
+ if (action.animFrame == actor->_animPosition) {
+ _engine->_sound->playSample(action.sampleIndex, 1, actor->pos(), actorIdx);
}
break;
case ActionType::ACTION_THROW_EXTRA_BONUS:
- if (action.animFrame == actor->animPosition) {
- _engine->_extra->addExtraThrow(actorIdx, actor->pos.x, actor->pos.y + action.yHeight, actor->pos.z, action.spriteIndex, action.xAngle, action.yAngle, action.xRotPoint, action.extraAngle, action.strength);
+ if (action.animFrame == actor->_animPosition) {
+ _engine->_extra->addExtraThrow(actorIdx, actor->_pos.x, actor->_pos.y + action.yHeight, actor->_pos.z, action.spriteIndex, action.xAngle, action.yAngle, action.xRotPoint, action.extraAngle, action.strength);
}
break;
case ActionType::ACTION_THROW_MAGIC_BALL:
- if (_engine->_gameState->magicBallIdx == -1 && action.animFrame == actor->animPosition) {
- _engine->_extra->addExtraThrowMagicball(actor->pos.x, actor->pos.y + action.yHeight, actor->pos.z, action.xAngle, actor->angle + action.yAngle, action.xRotPoint, action.extraAngle);
+ if (_engine->_gameState->_magicBallIdx == -1 && action.animFrame == actor->_animPosition) {
+ _engine->_extra->addExtraThrowMagicball(actor->_pos.x, actor->_pos.y + action.yHeight, actor->_pos.z, action.xAngle, actor->_angle + action.yAngle, action.xRotPoint, action.extraAngle);
}
break;
case ActionType::ACTION_SAMPLE_REPEAT:
- if (action.animFrame == actor->animPosition) {
- _engine->_sound->playSample(action.sampleIndex, action.repeat, actor->pos, actorIdx);
+ if (action.animFrame == actor->_animPosition) {
+ _engine->_sound->playSample(action.sampleIndex, action.repeat, actor->pos(), actorIdx);
}
break;
case ActionType::ACTION_THROW_SEARCH:
- if (action.animFrame == actor->animPosition) {
- _engine->_extra->addExtraAiming(actorIdx, actor->pos.x, actor->pos.y + action.yHeight, actor->pos.z, action.spriteIndex, action.targetActor, action.finalAngle, action.strength);
+ if (action.animFrame == actor->_animPosition) {
+ _engine->_extra->addExtraAiming(actorIdx, actor->_pos.x, actor->_pos.y + action.yHeight, actor->_pos.z, action.spriteIndex, action.targetActor, action.finalAngle, action.strength);
}
break;
case ActionType::ACTION_THROW_ALPHA:
- if (action.animFrame == actor->animPosition) {
- _engine->_extra->addExtraThrow(actorIdx, actor->pos.x, actor->pos.y + action.yHeight, actor->pos.z, action.spriteIndex, action.xAngle, actor->angle + action.yAngle, action.xRotPoint, action.extraAngle, action.strength);
+ if (action.animFrame == actor->_animPosition) {
+ _engine->_extra->addExtraThrow(actorIdx, actor->_pos.x, actor->_pos.y + action.yHeight, actor->_pos.z, action.spriteIndex, action.xAngle, actor->_angle + action.yAngle, action.xRotPoint, action.extraAngle, action.strength);
}
break;
case ActionType::ACTION_SAMPLE_STOP:
- if (action.animFrame == actor->animPosition) {
+ if (action.animFrame == actor->_animPosition) {
_engine->_sound->stopSample(action.sampleIndex);
}
break;
case ActionType::ACTION_LEFT_STEP:
case ActionType::ACTION_RIGHT_STEP:
- if (action.animFrame == actor->animPosition && (actor->brickSound & 0x0F0) != 0x0F0) {
- const int16 sampleIdx = (actor->brickSound & 0x0F) + Samples::WalkFloorBegin;
- _engine->_sound->playSample(sampleIdx, 1, actor->pos, actorIdx);
+ if (action.animFrame == actor->_animPosition && (actor->_brickSound & 0x0F0) != 0x0F0) {
+ const int16 sampleIdx = (actor->_brickSound & 0x0F) + Samples::WalkFloorBegin;
+ _engine->_sound->playSample(sampleIdx, 1, actor->pos(), actorIdx);
}
break;
case ActionType::ACTION_HERO_HITTING:
- if (action.animFrame - 1 == actor->animPosition) {
- actor->strengthOfHit = magicLevelStrengthOfHit[_engine->_gameState->magicLevelIdx];
- actor->dynamicFlags.bIsHitting = 1;
+ if (action.animFrame - 1 == actor->_animPosition) {
+ actor->_strengthOfHit = magicLevelStrengthOfHit[_engine->_gameState->_magicLevelIdx];
+ actor->_dynamicFlags.bIsHitting = 1;
}
break;
case ActionType::ACTION_THROW_3D:
- if (action.animFrame == actor->animPosition) {
- _engine->_movements->rotateActor(action.distanceX, action.distanceZ, actor->angle);
+ if (action.animFrame == actor->_animPosition) {
+ _engine->_movements->rotateActor(action.distanceX, action.distanceZ, actor->_angle);
- const int32 throwX = _engine->_renderer->_destPos.x + actor->pos.x;
- const int32 throwY = action.distanceY + actor->pos.y;
- const int32 throwZ = _engine->_renderer->_destPos.z + actor->pos.z;
+ const int32 throwX = _engine->_renderer->_destPos.x + actor->_pos.x;
+ const int32 throwY = action.distanceY + actor->_pos.y;
+ const int32 throwZ = _engine->_renderer->_destPos.z + actor->_pos.z;
_engine->_extra->addExtraThrow(actorIdx, throwX, throwY, throwZ, action.spriteIndex,
- action.xAngle, action.yAngle + actor->angle, action.xRotPoint, action.extraAngle, action.strength);
+ action.xAngle, action.yAngle + actor->_angle, action.xRotPoint, action.extraAngle, action.strength);
}
break;
case ActionType::ACTION_THROW_3D_ALPHA:
- if (action.animFrame == actor->animPosition) {
- const int32 distance = _engine->_movements->getDistance2D(actor->pos, _engine->_scene->_sceneHero->pos);
- const int32 newAngle = _engine->_movements->getAngleAndSetTargetActorDistance(actor->pos.y, 0, _engine->_scene->_sceneHero->pos.y, distance);
+ if (action.animFrame == actor->_animPosition) {
+ const int32 distance = _engine->_movements->getDistance2D(actor->pos(), _engine->_scene->_sceneHero->pos());
+ const int32 newAngle = _engine->_movements->getAngleAndSetTargetActorDistance(actor->_pos.y, 0, _engine->_scene->_sceneHero->_pos.y, distance);
- _engine->_movements->rotateActor(action.distanceX, action.distanceZ, actor->angle);
+ _engine->_movements->rotateActor(action.distanceX, action.distanceZ, actor->_angle);
- const int32 throwX = _engine->_renderer->_destPos.x + actor->pos.x;
- const int32 throwY = action.distanceY + actor->pos.y;
- const int32 throwZ = _engine->_renderer->_destPos.z + actor->pos.z;
+ const int32 throwX = _engine->_renderer->_destPos.x + actor->_pos.x;
+ const int32 throwY = action.distanceY + actor->_pos.y;
+ const int32 throwZ = _engine->_renderer->_destPos.z + actor->_pos.z;
_engine->_extra->addExtraThrow(actorIdx, throwX, throwY, throwZ, action.spriteIndex,
- action.xAngle + newAngle, action.yAngle + actor->angle, action.xRotPoint, action.extraAngle, action.strength);
+ action.xAngle + newAngle, action.yAngle + actor->_angle, action.xRotPoint, action.extraAngle, action.strength);
}
break;
case ActionType::ACTION_THROW_3D_SEARCH:
- if (action.animFrame == actor->animPosition) {
- _engine->_movements->rotateActor(action.distanceX, action.distanceZ, actor->angle);
- const int32 x = actor->pos.x + _engine->_renderer->_destPos.x;
- const int32 y = actor->pos.y + action.distanceY;
- const int32 z = actor->pos.z + _engine->_renderer->_destPos.z;
+ if (action.animFrame == actor->_animPosition) {
+ _engine->_movements->rotateActor(action.distanceX, action.distanceZ, actor->_angle);
+ const int32 x = actor->_pos.x + _engine->_renderer->_destPos.x;
+ const int32 y = actor->_pos.y + action.distanceY;
+ const int32 z = actor->_pos.z + _engine->_renderer->_destPos.z;
_engine->_extra->addExtraAiming(actorIdx, x, y, z, action.spriteIndex,
action.targetActor, action.finalAngle, action.strength);
}
break;
case ActionType::ACTION_UNKNOWN_21:
- if (_engine->_gameState->magicBallIdx == -1 && action.animFrame == actor->animPosition) {
- _engine->_movements->rotateActor(action.distanceX, action.distanceZ, actor->angle);
- const int32 x = actor->pos.x + _engine->_renderer->_destPos.x;
- const int32 y = actor->pos.y + action.distanceY;
- const int32 z = actor->pos.z + _engine->_renderer->_destPos.z;
- _engine->_extra->addExtraThrowMagicball(x, y, z, action.xAngle, actor->angle, action.yAngle, action.finalAngle);
+ if (_engine->_gameState->_magicBallIdx == -1 && action.animFrame == actor->_animPosition) {
+ _engine->_movements->rotateActor(action.distanceX, action.distanceZ, actor->_angle);
+ const int32 x = actor->_pos.x + _engine->_renderer->_destPos.x;
+ const int32 y = actor->_pos.y + action.distanceY;
+ const int32 z = actor->_pos.z + _engine->_renderer->_destPos.z;
+ _engine->_extra->addExtraThrowMagicball(x, y, z, action.xAngle, actor->_angle, action.yAngle, action.finalAngle);
}
break;
case ActionType::ACTION_ZV:
@@ -387,20 +387,20 @@ void Animations::processAnimActions(int32 actorIdx) {
bool Animations::initAnim(AnimationTypes newAnim, AnimType animType, AnimationTypes animExtra, int32 actorIdx) {
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- if (actor->entity == -1) {
+ if (actor->_entity == -1) {
return false;
}
- if (actor->staticFlags.bIsSpriteActor) {
+ if (actor->_staticFlags.bIsSpriteActor) {
return false;
}
- if (newAnim == actor->anim && actor->previousAnimIdx != -1) {
+ if (newAnim == actor->_anim && actor->_previousAnimIdx != -1) {
return true;
}
- if (animExtra == AnimationTypes::kAnimInvalid && actor->animType != AnimType::kAnimationType_2) {
- animExtra = actor->anim;
+ if (animExtra == AnimationTypes::kAnimInvalid && actor->_animType != AnimType::kAnimationType_2) {
+ animExtra = actor->_anim;
}
int32 animIndex = getBodyAnimIndex(newAnim, actorIdx);
@@ -409,15 +409,15 @@ bool Animations::initAnim(AnimationTypes newAnim, AnimType animType, AnimationTy
animIndex = getBodyAnimIndex(AnimationTypes::kStanding, actorIdx);
}
- if (animType != AnimType::kAnimationType_4 && actor->animType == AnimType::kAnimationType_2) {
- actor->animExtra = newAnim;
+ if (animType != AnimType::kAnimationType_4 && actor->_animType == AnimType::kAnimationType_2) {
+ actor->_animExtra = newAnim;
return false;
}
if (animType == AnimType::kAnimationType_3) {
animType = AnimType::kAnimationType_2;
- animExtra = actor->anim;
+ animExtra = actor->_anim;
if (animExtra == AnimationTypes::kThrowBall || animExtra == AnimationTypes::kFall || animExtra == AnimationTypes::kLanding || animExtra == AnimationTypes::kLandingHit) {
animExtra = AnimationTypes::kStanding;
@@ -428,28 +428,28 @@ bool Animations::initAnim(AnimationTypes newAnim, AnimType animType, AnimationTy
animType = AnimType::kAnimationType_2;
}
- if (actor->previousAnimIdx == -1) {
+ if (actor->_previousAnimIdx == -1) {
// if no previous animation
- setAnimAtKeyframe(0, _engine->_resources->_animData[animIndex], _engine->_resources->_bodyData[actor->entity], &actor->animTimerData);
+ setAnimAtKeyframe(0, _engine->_resources->_animData[animIndex], _engine->_resources->_bodyData[actor->_entity], &actor->_animTimerData);
} else {
// interpolation between animations
- stockAnimation(_engine->_resources->_bodyData[actor->entity], &actor->animTimerData);
+ stockAnimation(_engine->_resources->_bodyData[actor->_entity], &actor->_animTimerData);
}
- actor->previousAnimIdx = animIndex;
- actor->anim = newAnim;
- actor->animExtra = animExtra;
- actor->animExtraPtr = currentActorAnimExtraPtr;
- actor->animType = animType;
- actor->animPosition = 0;
- actor->dynamicFlags.bIsHitting = 0;
- actor->dynamicFlags.bAnimEnded = 0;
- actor->dynamicFlags.bAnimFrameReached = 1;
+ actor->_previousAnimIdx = animIndex;
+ actor->_anim = newAnim;
+ actor->_animExtra = animExtra;
+ actor->_animExtraPtr = _currentActorAnimExtraPtr;
+ actor->_animType = animType;
+ actor->_animPosition = 0;
+ actor->_dynamicFlags.bIsHitting = 0;
+ actor->_dynamicFlags.bAnimEnded = 0;
+ actor->_dynamicFlags.bAnimFrameReached = 1;
processAnimActions(actorIdx);
- actor->lastRotationAngle = ANGLE_0;
- actor->lastPos = IVec3();
+ actor->_lastRotationAngle = ANGLE_0;
+ actor->_lastPos = IVec3();
return true;
}
@@ -457,198 +457,198 @@ bool Animations::initAnim(AnimationTypes newAnim, AnimType animType, AnimationTy
void Animations::processActorAnimations(int32 actorIdx) { // DoAnim
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- currentlyProcessedActorIdx = actorIdx;
+ _currentlyProcessedActorIdx = actorIdx;
_engine->_actor->processActorPtr = actor;
- if (actor->entity == -1) {
+ if (actor->_entity == -1) {
return;
}
IVec3 &previousActor = _engine->_movements->_previousActor;
- previousActor = actor->collisionPos;
+ previousActor = actor->_collisionPos;
IVec3 &processActor = _engine->_movements->_processActor;
- if (actor->staticFlags.bIsSpriteActor) {
- if (actor->strengthOfHit) {
- actor->dynamicFlags.bIsHitting = 1;
+ if (actor->_staticFlags.bIsSpriteActor) {
+ if (actor->_strengthOfHit) {
+ actor->_dynamicFlags.bIsHitting = 1;
}
- processActor = actor->pos;
+ processActor = actor->pos();
- if (!actor->dynamicFlags.bIsFalling) {
- if (actor->speed) {
- int32 xAxisRotation = actor->move.getRealValue(_engine->_lbaTime);
+ if (!actor->_dynamicFlags.bIsFalling) {
+ if (actor->_speed) {
+ int32 xAxisRotation = actor->_move.getRealValue(_engine->_lbaTime);
if (!xAxisRotation) {
- if (actor->move.to > 0) {
+ if (actor->_move.to > 0) {
xAxisRotation = 1;
} else {
xAxisRotation = -1;
}
}
- _engine->_movements->rotateActor(xAxisRotation, 0, actor->spriteActorRotation);
+ _engine->_movements->rotateActor(xAxisRotation, 0, actor->_spriteActorRotation);
- processActor.y = actor->pos.y - _engine->_renderer->_destPos.z;
+ processActor.y = actor->_pos.y - _engine->_renderer->_destPos.z;
- _engine->_movements->rotateActor(0, _engine->_renderer->_destPos.x, actor->angle);
+ _engine->_movements->rotateActor(0, _engine->_renderer->_destPos.x, actor->_angle);
- processActor.x = actor->pos.x + _engine->_renderer->_destPos.x;
- processActor.z = actor->pos.z + _engine->_renderer->_destPos.z;
+ processActor.x = actor->_pos.x + _engine->_renderer->_destPos.x;
+ processActor.z = actor->_pos.z + _engine->_renderer->_destPos.z;
- _engine->_movements->setActorAngle(ANGLE_0, actor->speed, ANGLE_17, &actor->move);
+ _engine->_movements->setActorAngle(ANGLE_0, actor->_speed, ANGLE_17, &actor->_move);
- if (actor->dynamicFlags.bIsSpriteMoving) {
- if (actor->doorStatus) { // open door
- if (_engine->_movements->getDistance2D(processActor.x, processActor.z, actor->lastPos.x, actor->lastPos.z) >= actor->doorStatus) {
- if (actor->angle == ANGLE_0) {
- processActor.z = actor->lastPos.z + actor->doorStatus;
- } else if (actor->angle == ANGLE_90) {
- processActor.x = actor->lastPos.x + actor->doorStatus;
- } else if (actor->angle == ANGLE_180) {
- processActor.z = actor->lastPos.z - actor->doorStatus;
- } else if (actor->angle == ANGLE_270) {
- processActor.x = actor->lastPos.x - actor->doorStatus;
+ if (actor->_dynamicFlags.bIsSpriteMoving) {
+ if (actor->_doorStatus) { // open door
+ if (_engine->_movements->getDistance2D(processActor.x, processActor.z, actor->_lastPos.x, actor->_lastPos.z) >= actor->_doorStatus) {
+ if (actor->_angle == ANGLE_0) {
+ processActor.z = actor->_lastPos.z + actor->_doorStatus;
+ } else if (actor->_angle == ANGLE_90) {
+ processActor.x = actor->_lastPos.x + actor->_doorStatus;
+ } else if (actor->_angle == ANGLE_180) {
+ processActor.z = actor->_lastPos.z - actor->_doorStatus;
+ } else if (actor->_angle == ANGLE_270) {
+ processActor.x = actor->_lastPos.x - actor->_doorStatus;
}
- actor->dynamicFlags.bIsSpriteMoving = 0;
- actor->speed = 0;
+ actor->_dynamicFlags.bIsSpriteMoving = 0;
+ actor->_speed = 0;
}
} else { // close door
bool updatePos = false;
- if (actor->angle == ANGLE_0) {
- if (processActor.z <= actor->lastPos.z) {
+ if (actor->_angle == ANGLE_0) {
+ if (processActor.z <= actor->_lastPos.z) {
updatePos = true;
}
- } else if (actor->angle == ANGLE_90) {
- if (processActor.x <= actor->lastPos.x) {
+ } else if (actor->_angle == ANGLE_90) {
+ if (processActor.x <= actor->_lastPos.x) {
updatePos = true;
}
- } else if (actor->angle == ANGLE_180) {
- if (processActor.z >= actor->lastPos.z) {
+ } else if (actor->_angle == ANGLE_180) {
+ if (processActor.z >= actor->_lastPos.z) {
updatePos = true;
}
- } else if (actor->angle == ANGLE_270) {
- if (processActor.x >= actor->lastPos.x) {
+ } else if (actor->_angle == ANGLE_270) {
+ if (processActor.x >= actor->_lastPos.x) {
updatePos = true;
}
}
if (updatePos) {
- processActor = actor->lastPos;
+ processActor = actor->_lastPos;
- actor->dynamicFlags.bIsSpriteMoving = 0;
- actor->speed = 0;
+ actor->_dynamicFlags.bIsSpriteMoving = 0;
+ actor->_speed = 0;
}
}
}
}
- if (actor->staticFlags.bCanBePushed) {
- processActor += actor->lastPos;
+ if (actor->_staticFlags.bCanBePushed) {
+ processActor += actor->_lastPos;
- if (actor->staticFlags.bUseMiniZv) {
+ if (actor->_staticFlags.bUseMiniZv) {
processActor.x = ((processActor.x / 128) * 128);
processActor.z = ((processActor.z / 128) * 128);
}
- actor->lastPos.x = 0;
- actor->lastPos.y = 0;
- actor->lastPos.z = 0;
+ actor->_lastPos.x = 0;
+ actor->_lastPos.y = 0;
+ actor->_lastPos.z = 0;
}
}
} else { // 3D actor
- if (actor->previousAnimIdx != -1) {
- const AnimData &animData = _engine->_resources->_animData[actor->previousAnimIdx];
+ if (actor->_previousAnimIdx != -1) {
+ const AnimData &animData = _engine->_resources->_animData[actor->_previousAnimIdx];
bool keyFramePassed = false;
- if (_engine->_resources->_bodyData[actor->entity].isAnimated()) {
- keyFramePassed = verifyAnimAtKeyframe(actor->animPosition, animData, &actor->animTimerData);
+ if (_engine->_resources->_bodyData[actor->_entity].isAnimated()) {
+ keyFramePassed = verifyAnimAtKeyframe(actor->_animPosition, animData, &actor->_animTimerData);
}
- if (processRotationByAnim) {
- actor->dynamicFlags.bIsRotationByAnim = 1;
+ if (_processRotationByAnim) {
+ actor->_dynamicFlags.bIsRotationByAnim = 1;
} else {
- actor->dynamicFlags.bIsRotationByAnim = 0;
+ actor->_dynamicFlags.bIsRotationByAnim = 0;
}
- actor->angle = ClampAngle(actor->angle + processLastRotationAngle - actor->lastRotationAngle);
- actor->lastRotationAngle = processLastRotationAngle;
+ actor->_angle = ClampAngle(actor->_angle + _processLastRotationAngle - actor->_lastRotationAngle);
+ actor->_lastRotationAngle = _processLastRotationAngle;
- _engine->_movements->rotateActor(currentStep.x, currentStep.z, actor->angle);
+ _engine->_movements->rotateActor(_currentStep.x, _currentStep.z, actor->_angle);
- currentStep.x = _engine->_renderer->_destPos.x;
- currentStep.z = _engine->_renderer->_destPos.z;
+ _currentStep.x = _engine->_renderer->_destPos.x;
+ _currentStep.z = _engine->_renderer->_destPos.z;
- processActor = actor->pos + currentStep - actor->lastPos;
+ processActor = actor->pos() + _currentStep - actor->_lastPos;
- actor->lastPos = currentStep;
+ actor->_lastPos = _currentStep;
- actor->dynamicFlags.bAnimEnded = 0;
- actor->dynamicFlags.bAnimFrameReached = 0;
+ actor->_dynamicFlags.bAnimEnded = 0;
+ actor->_dynamicFlags.bAnimFrameReached = 0;
if (keyFramePassed) {
- actor->animPosition++;
+ actor->_animPosition++;
// if actor have animation actions to process
processAnimActions(actorIdx);
- int16 numKeyframe = actor->animPosition;
+ int16 numKeyframe = actor->_animPosition;
if (numKeyframe == (int16)animData.getNumKeyframes()) {
- actor->dynamicFlags.bIsHitting = 0;
+ actor->_dynamicFlags.bIsHitting = 0;
- if (actor->animType == AnimType::kAnimationTypeLoop) {
- actor->animPosition = animData.getLoopFrame();
+ if (actor->_animType == AnimType::kAnimationTypeLoop) {
+ actor->_animPosition = animData.getLoopFrame();
} else {
- actor->anim = actor->animExtra;
- actor->previousAnimIdx = getBodyAnimIndex(actor->anim, actorIdx);
+ actor->_anim = actor->_animExtra;
+ actor->_previousAnimIdx = getBodyAnimIndex(actor->_anim, actorIdx);
- if (actor->previousAnimIdx == -1) {
- actor->previousAnimIdx = getBodyAnimIndex(AnimationTypes::kStanding, actorIdx);
- actor->anim = AnimationTypes::kStanding;
+ if (actor->_previousAnimIdx == -1) {
+ actor->_previousAnimIdx = getBodyAnimIndex(AnimationTypes::kStanding, actorIdx);
+ actor->_anim = AnimationTypes::kStanding;
}
- actor->animExtraPtr = currentActorAnimExtraPtr;
+ actor->_animExtraPtr = _currentActorAnimExtraPtr;
- actor->animType = AnimType::kAnimationTypeLoop;
- actor->animPosition = 0;
- actor->strengthOfHit = 0;
+ actor->_animType = AnimType::kAnimationTypeLoop;
+ actor->_animPosition = 0;
+ actor->_strengthOfHit = 0;
}
processAnimActions(actorIdx);
- actor->dynamicFlags.bAnimEnded = 1;
+ actor->_dynamicFlags.bAnimEnded = 1;
}
- actor->lastRotationAngle = ANGLE_0;
+ actor->_lastRotationAngle = ANGLE_0;
- actor->lastPos.x = 0;
- actor->lastPos.y = 0;
- actor->lastPos.z = 0;
+ actor->_lastPos.x = 0;
+ actor->_lastPos.y = 0;
+ actor->_lastPos.z = 0;
}
}
}
// actor standing on another actor
- if (actor->standOn != -1) {
- const ActorStruct *standOnActor = _engine->_scene->getActor(actor->standOn);
- processActor -= standOnActor->collisionPos;
- processActor += standOnActor->pos;
+ if (actor->_standOn != -1) {
+ const ActorStruct *standOnActor = _engine->_scene->getActor(actor->_standOn);
+ processActor -= standOnActor->_collisionPos;
+ processActor += standOnActor->pos();
- if (!_engine->_collision->standingOnActor(actorIdx, actor->standOn)) {
- actor->standOn = -1; // no longer standing on other actor
+ if (!_engine->_collision->standingOnActor(actorIdx, actor->_standOn)) {
+ actor->_standOn = -1; // no longer standing on other actor
}
}
// actor falling Y speed
- if (actor->dynamicFlags.bIsFalling) {
+ if (actor->_dynamicFlags.bIsFalling) {
processActor = previousActor;
processActor.y += _engine->_loopActorStep; // add step to fall
}
// actor collisions with bricks
- if (actor->staticFlags.bComputeCollisionWithBricks) {
- _engine->_collision->collision.y = 0;
+ if (actor->_staticFlags.bComputeCollisionWithBricks) {
+ _engine->_collision->_collision.y = 0;
ShapeType brickShape = _engine->_grid->getBrickShape(previousActor);
@@ -660,45 +660,45 @@ void Animations::processActorAnimations(int32 actorIdx) { // DoAnim
}*/
}
- if (actor->staticFlags.bComputeCollisionWithObj) {
+ if (actor->_staticFlags.bComputeCollisionWithObj) {
_engine->_collision->checkCollisionWithActors(actorIdx);
}
- if (actor->standOn != -1 && actor->dynamicFlags.bIsFalling) {
+ if (actor->_standOn != -1 && actor->_dynamicFlags.bIsFalling) {
_engine->_collision->stopFalling();
}
- _engine->_collision->causeActorDamage = 0;
+ _engine->_collision->_causeActorDamage = 0;
- _engine->_collision->processCollision = processActor;
+ _engine->_collision->_processCollision = processActor;
- if (IS_HERO(actorIdx) && !actor->staticFlags.bComputeLowCollision) {
+ if (IS_HERO(actorIdx) && !actor->_staticFlags.bComputeLowCollision) {
// check hero collisions with bricks
- _engine->_collision->checkHeroCollisionWithBricks(actor->boudingBox.mins.x, actor->boudingBox.mins.y, actor->boudingBox.mins.z, 1);
- _engine->_collision->checkHeroCollisionWithBricks(actor->boudingBox.maxs.x, actor->boudingBox.mins.y, actor->boudingBox.mins.z, 2);
- _engine->_collision->checkHeroCollisionWithBricks(actor->boudingBox.maxs.x, actor->boudingBox.mins.y, actor->boudingBox.maxs.z, 4);
- _engine->_collision->checkHeroCollisionWithBricks(actor->boudingBox.mins.x, actor->boudingBox.mins.y, actor->boudingBox.maxs.z, 8);
+ _engine->_collision->checkHeroCollisionWithBricks(actor->_boudingBox.mins.x, actor->_boudingBox.mins.y, actor->_boudingBox.mins.z, 1);
+ _engine->_collision->checkHeroCollisionWithBricks(actor->_boudingBox.maxs.x, actor->_boudingBox.mins.y, actor->_boudingBox.mins.z, 2);
+ _engine->_collision->checkHeroCollisionWithBricks(actor->_boudingBox.maxs.x, actor->_boudingBox.mins.y, actor->_boudingBox.maxs.z, 4);
+ _engine->_collision->checkHeroCollisionWithBricks(actor->_boudingBox.mins.x, actor->_boudingBox.mins.y, actor->_boudingBox.maxs.z, 8);
} else {
// check other actors collisions with bricks
- _engine->_collision->checkActorCollisionWithBricks(actor->boudingBox.mins.x, actor->boudingBox.mins.y, actor->boudingBox.mins.z, 1);
- _engine->_collision->checkActorCollisionWithBricks(actor->boudingBox.maxs.x, actor->boudingBox.mins.y, actor->boudingBox.mins.z, 2);
- _engine->_collision->checkActorCollisionWithBricks(actor->boudingBox.maxs.x, actor->boudingBox.mins.y, actor->boudingBox.maxs.z, 4);
- _engine->_collision->checkActorCollisionWithBricks(actor->boudingBox.mins.x, actor->boudingBox.mins.y, actor->boudingBox.maxs.z, 8);
+ _engine->_collision->checkActorCollisionWithBricks(actor->_boudingBox.mins.x, actor->_boudingBox.mins.y, actor->_boudingBox.mins.z, 1);
+ _engine->_collision->checkActorCollisionWithBricks(actor->_boudingBox.maxs.x, actor->_boudingBox.mins.y, actor->_boudingBox.mins.z, 2);
+ _engine->_collision->checkActorCollisionWithBricks(actor->_boudingBox.maxs.x, actor->_boudingBox.mins.y, actor->_boudingBox.maxs.z, 4);
+ _engine->_collision->checkActorCollisionWithBricks(actor->_boudingBox.mins.x, actor->_boudingBox.mins.y, actor->_boudingBox.maxs.z, 8);
}
// process wall hit while running
- if (_engine->_collision->causeActorDamage && !actor->dynamicFlags.bIsFalling && !currentlyProcessedActorIdx && _engine->_actor->heroBehaviour == HeroBehaviourType::kAthletic && actor->anim == AnimationTypes::kForward) {
- _engine->_movements->rotateActor(actor->boudingBox.mins.x, actor->boudingBox.mins.z, actor->angle + ANGLE_360 + ANGLE_135);
+ if (_engine->_collision->_causeActorDamage && !actor->_dynamicFlags.bIsFalling && !_currentlyProcessedActorIdx && _engine->_actor->heroBehaviour == HeroBehaviourType::kAthletic && actor->_anim == AnimationTypes::kForward) {
+ _engine->_movements->rotateActor(actor->_boudingBox.mins.x, actor->_boudingBox.mins.z, actor->_angle + ANGLE_360 + ANGLE_135);
_engine->_renderer->_destPos.x += processActor.x;
_engine->_renderer->_destPos.z += processActor.z;
if (_engine->_renderer->_destPos.x >= 0 && _engine->_renderer->_destPos.z >= 0 && _engine->_renderer->_destPos.x <= 0x7E00 && _engine->_renderer->_destPos.z <= 0x7E00) {
if (_engine->_grid->getBrickShape(_engine->_renderer->_destPos.x, processActor.y + BRICK_HEIGHT, _engine->_renderer->_destPos.z) != ShapeType::kNone && _engine->_cfgfile.WallCollision) { // avoid wall hit damage
- _engine->_extra->addExtraSpecial(actor->pos.x, actor->pos.y + 1000, actor->pos.z, ExtraSpecialType::kHitStars);
- initAnim(AnimationTypes::kBigHit, AnimType::kAnimationType_2, AnimationTypes::kStanding, currentlyProcessedActorIdx);
+ _engine->_extra->addExtraSpecial(actor->_pos.x, actor->_pos.y + 1000, actor->_pos.z, ExtraSpecialType::kHitStars);
+ initAnim(AnimationTypes::kBigHit, AnimType::kAnimationType_2, AnimationTypes::kStanding, _currentlyProcessedActorIdx);
- if (IS_HERO(currentlyProcessedActorIdx)) {
+ if (IS_HERO(_currentlyProcessedActorIdx)) {
_engine->_movements->_heroMoved = true;
}
@@ -712,13 +712,13 @@ void Animations::processActorAnimations(int32 actorIdx) { // DoAnim
if (brickShape != ShapeType::kNone) {
if (brickShape == ShapeType::kSolid) {
- if (actor->dynamicFlags.bIsFalling) {
+ if (actor->_dynamicFlags.bIsFalling) {
_engine->_collision->stopFalling();
- processActor.y = (_engine->_collision->collision.y * BRICK_HEIGHT) + BRICK_HEIGHT;
+ processActor.y = (_engine->_collision->_collision.y * BRICK_HEIGHT) + BRICK_HEIGHT;
} else {
- if (IS_HERO(actorIdx) && _engine->_actor->heroBehaviour == HeroBehaviourType::kAthletic && actor->anim == AnimationTypes::kForward && _engine->_cfgfile.WallCollision) { // avoid wall hit damage
- _engine->_extra->addExtraSpecial(actor->pos.x, actor->pos.y + 1000, actor->pos.z, ExtraSpecialType::kHitStars);
- initAnim(AnimationTypes::kBigHit, AnimType::kAnimationType_2, AnimationTypes::kStanding, currentlyProcessedActorIdx);
+ if (IS_HERO(actorIdx) && _engine->_actor->heroBehaviour == HeroBehaviourType::kAthletic && actor->_anim == AnimationTypes::kForward && _engine->_cfgfile.WallCollision) { // avoid wall hit damage
+ _engine->_extra->addExtraSpecial(actor->_pos.x, actor->_pos.y + 1000, actor->_pos.z, ExtraSpecialType::kHitStars);
+ initAnim(AnimationTypes::kBigHit, AnimType::kAnimationType_2, AnimationTypes::kStanding, _currentlyProcessedActorIdx);
_engine->_movements->_heroMoved = true;
actor->addLife(-1);
}
@@ -740,27 +740,27 @@ void Animations::processActorAnimations(int32 actorIdx) { // DoAnim
}
}
} else {
- if (actor->dynamicFlags.bIsFalling) {
+ if (actor->_dynamicFlags.bIsFalling) {
_engine->_collision->stopFalling();
}
_engine->_collision->reajustActorPosition(brickShape);
}
- actor->dynamicFlags.bIsFalling = 0;
+ actor->_dynamicFlags.bIsFalling = 0;
} else {
- if (actor->staticFlags.bCanFall && actor->standOn == -1) {
+ if (actor->_staticFlags.bCanFall && actor->_standOn == -1) {
brickShape = _engine->_grid->getBrickShape(processActor.x, processActor.y - 1, processActor.z);
if (brickShape != ShapeType::kNone) {
- if (actor->dynamicFlags.bIsFalling) {
+ if (actor->_dynamicFlags.bIsFalling) {
_engine->_collision->stopFalling();
}
_engine->_collision->reajustActorPosition(brickShape);
} else {
- if (!actor->dynamicFlags.bIsRotationByAnim) {
- actor->dynamicFlags.bIsFalling = 1;
+ if (!actor->_dynamicFlags.bIsRotationByAnim) {
+ actor->_dynamicFlags.bIsFalling = 1;
if (IS_HERO(actorIdx) && _engine->_scene->_heroYBeforeFall == 0) {
_engine->_scene->_heroYBeforeFall = processActor.y;
@@ -773,16 +773,16 @@ void Animations::processActorAnimations(int32 actorIdx) { // DoAnim
}
// if under the map, than die
- if (_engine->_collision->collision.y == -1) {
+ if (_engine->_collision->_collision.y == -1) {
actor->setLife(0);
}
} else {
- if (actor->staticFlags.bComputeCollisionWithObj) {
+ if (actor->_staticFlags.bComputeCollisionWithObj) {
_engine->_collision->checkCollisionWithActors(actorIdx);
}
}
- if (_engine->_collision->causeActorDamage) {
+ if (_engine->_collision->_causeActorDamage) {
actor->setBrickCausesDamage();
}
@@ -807,7 +807,7 @@ void Animations::processActorAnimations(int32 actorIdx) { // DoAnim
processActor.z = 0x7E00;
}
- actor->pos = processActor;
+ actor->_pos = processActor;
}
} // namespace TwinE
diff --git a/engines/twine/scene/animations.h b/engines/twine/scene/animations.h
index 4a3373f186..f86846db98 100644
--- a/engines/twine/scene/animations.h
+++ b/engines/twine/scene/animations.h
@@ -48,24 +48,24 @@ private:
void copyKeyFrameToState(const KeyFrame *keyframe, BodyData &bodyData, int32 numBones) const;
void copyStateToKeyFrame(KeyFrame *keyframe, const BodyData &bodyData) const;
- int animKeyframeBufIdx = 0;
- KeyFrame animKeyframeBuf[32];
+ int _animKeyframeBufIdx = 0;
+ KeyFrame _animKeyframeBuf[32];
/** Rotation by anim and not by engine */
- int16 processRotationByAnim = 0; // processActorVar5
+ int16 _processRotationByAnim = 0; // processActorVar5
/** Last rotation angle */
- int16 processLastRotationAngle = ANGLE_0; // processActorVar6
+ int16 _processLastRotationAngle = ANGLE_0; // processActorVar6
/** Current step coordinates */
- IVec3 currentStep;
+ IVec3 _currentStep;
public:
Animations(TwinEEngine *engine);
/** Current process actor index */
- int16 currentlyProcessedActorIdx = 0;
+ int16 _currentlyProcessedActorIdx = 0;
/** Current actor anim extra pointer */
- AnimationTypes currentActorAnimExtraPtr = AnimationTypes::kAnimNone;
+ AnimationTypes _currentActorAnimExtraPtr = AnimationTypes::kAnimNone;
/**
* Set animation keyframe
diff --git a/engines/twine/scene/collision.cpp b/engines/twine/scene/collision.cpp
index 27d7fe89cb..ea161834ea 100644
--- a/engines/twine/scene/collision.cpp
+++ b/engines/twine/scene/collision.cpp
@@ -45,11 +45,11 @@ bool Collision::standingOnActor(int32 actorIdx1, int32 actorIdx2) const {
const ActorStruct *actor2 = _engine->_scene->getActor(actorIdx2);
const IVec3 &processActor = _engine->_movements->_processActor;
- const IVec3 &mins1 = processActor + actor1->boudingBox.mins;
- const IVec3 &maxs1 = processActor + actor1->boudingBox.maxs;
+ const IVec3 &mins1 = processActor + actor1->_boudingBox.mins;
+ const IVec3 &maxs1 = processActor + actor1->_boudingBox.maxs;
- const IVec3 &mins2 = actor2->pos + actor2->boudingBox.mins;
- const IVec3 &maxs2 = actor2->pos + actor2->boudingBox.maxs;
+ const IVec3 &mins2 = actor2->pos() + actor2->_boudingBox.mins;
+ const IVec3 &maxs2 = actor2->pos() + actor2->_boudingBox.maxs;
if (mins1.x >= maxs2.x) {
return false;
@@ -99,9 +99,9 @@ void Collision::reajustActorPosition(ShapeType brickShape) {
return;
}
- const int32 brkX = (collision.x * BRICK_SIZE) - BRICK_HEIGHT;
- const int32 brkY = collision.y * BRICK_HEIGHT;
- const int32 brkZ = (collision.z * BRICK_SIZE) - BRICK_HEIGHT;
+ const int32 brkX = (_collision.x * BRICK_SIZE) - BRICK_HEIGHT;
+ const int32 brkY = _collision.y * BRICK_HEIGHT;
+ const int32 brkZ = (_collision.z * BRICK_SIZE) - BRICK_HEIGHT;
IVec3 &processActor = _engine->_movements->_processActor;
@@ -109,56 +109,56 @@ void Collision::reajustActorPosition(ShapeType brickShape) {
if (brickShape >= ShapeType::kDoubleSideStairsTop1 && brickShape <= ShapeType::kDoubleSideStairsRight2) {
switch (brickShape) {
case ShapeType::kDoubleSideStairsTop1:
- if (processActor.z - collision.z <= processActor.x - collision.x) {
+ if (processActor.z - _collision.z <= processActor.x - _collision.x) {
brickShape = ShapeType::kStairsTopLeft;
} else {
brickShape = ShapeType::kStairsTopRight;
}
break;
case ShapeType::kDoubleSideStairsBottom1:
- if (processActor.z - collision.z <= processActor.x - collision.x) {
+ if (processActor.z - _collision.z <= processActor.x - _collision.x) {
brickShape = ShapeType::kStairsBottomLeft;
} else {
brickShape = ShapeType::kStairsBottomRight;
}
break;
case ShapeType::kDoubleSideStairsLeft1:
- if (512 - processActor.x - collision.x <= processActor.z - collision.z) {
+ if (512 - processActor.x - _collision.x <= processActor.z - _collision.z) {
brickShape = ShapeType::kStairsTopLeft;
} else {
brickShape = ShapeType::kStairsBottomLeft;
}
break;
case ShapeType::kDoubleSideStairsRight1:
- if (512 - processActor.x - collision.x <= processActor.z - collision.z) {
+ if (512 - processActor.x - _collision.x <= processActor.z - _collision.z) {
brickShape = ShapeType::kStairsTopRight;
} else {
brickShape = ShapeType::kStairsBottomRight;
}
break;
case ShapeType::kDoubleSideStairsTop2:
- if (processActor.x - collision.x >= processActor.z - collision.z) {
+ if (processActor.x - _collision.x >= processActor.z - _collision.z) {
brickShape = ShapeType::kStairsTopRight;
} else {
brickShape = ShapeType::kStairsTopLeft;
}
break;
case ShapeType::kDoubleSideStairsBottom2:
- if (processActor.z - collision.z <= processActor.x - collision.x) {
+ if (processActor.z - _collision.z <= processActor.x - _collision.x) {
brickShape = ShapeType::kStairsBottomRight;
} else {
brickShape = ShapeType::kStairsBottomLeft;
}
break;
case ShapeType::kDoubleSideStairsLeft2:
- if (512 - processActor.x - collision.x <= processActor.z - collision.z) {
+ if (512 - processActor.x - _collision.x <= processActor.z - _collision.z) {
brickShape = ShapeType::kStairsBottomLeft;
} else {
brickShape = ShapeType::kStairsTopLeft;
}
break;
case ShapeType::kDoubleSideStairsRight2:
- if (512 - processActor.x - collision.x <= processActor.z - collision.z) {
+ if (512 - processActor.x - _collision.x <= processActor.z - _collision.z) {
brickShape = ShapeType::kStairsBottomRight;
} else {
brickShape = ShapeType::kStairsTopRight;
@@ -197,71 +197,71 @@ int32 Collision::checkCollisionWithActors(int32 actorIdx) {
IVec3 &processActor = _engine->_movements->_processActor;
IVec3 &previousActor = _engine->_movements->_previousActor;
- IVec3 mins = processActor + actor->boudingBox.mins;
- IVec3 maxs = processActor + actor->boudingBox.maxs;
+ IVec3 mins = processActor + actor->_boudingBox.mins;
+ IVec3 maxs = processActor + actor->_boudingBox.maxs;
- actor->collision = -1;
+ actor->_collision = -1;
for (int32 a = 0; a < _engine->_scene->_sceneNumActors; a++) {
ActorStruct *actorTest = _engine->_scene->getActor(a);
// aviod current processed actor
- if (a != actorIdx && actorTest->entity != -1 && !actor->staticFlags.bComputeLowCollision && actorTest->standOn != actorIdx) {
- const IVec3 &minsTest = actorTest->pos + actorTest->boudingBox.mins;
- const IVec3 &maxsTest = actorTest->pos + actorTest->boudingBox.maxs;
+ if (a != actorIdx && actorTest->_entity != -1 && !actor->_staticFlags.bComputeLowCollision && actorTest->_standOn != actorIdx) {
+ const IVec3 &minsTest = actorTest->pos() + actorTest->_boudingBox.mins;
+ const IVec3 &maxsTest = actorTest->pos() + actorTest->_boudingBox.maxs;
if (mins.x < maxsTest.x && maxs.x > minsTest.x && mins.y < maxsTest.y && maxs.y > minsTest.y && mins.z < maxsTest.z && maxs.z > minsTest.z) {
- actor->collision = a; // mark as collision with actor a
+ actor->_collision = a; // mark as collision with actor a
- if (actorTest->staticFlags.bIsCarrierActor) {
- if (actor->dynamicFlags.bIsFalling) {
- processActor.y = maxsTest.y - actor->boudingBox.mins.y + 1;
- actor->standOn = a;
+ if (actorTest->_staticFlags.bIsCarrierActor) {
+ if (actor->_dynamicFlags.bIsFalling) {
+ processActor.y = maxsTest.y - actor->_boudingBox.mins.y + 1;
+ actor->_standOn = a;
} else {
if (standingOnActor(actorIdx, a)) {
- processActor.y = maxsTest.y - actor->boudingBox.mins.y + 1;
- actor->standOn = a;
+ processActor.y = maxsTest.y - actor->_boudingBox.mins.y + 1;
+ actor->_standOn = a;
} else {
- const int32 newAngle = _engine->_movements->getAngleAndSetTargetActorDistance(processActor, actorTest->pos);
+ const int32 newAngle = _engine->_movements->getAngleAndSetTargetActorDistance(processActor, actorTest->pos());
- if (actorTest->staticFlags.bCanBePushed && !actor->staticFlags.bCanBePushed) {
- actorTest->lastPos.y = 0;
+ if (actorTest->_staticFlags.bCanBePushed && !actor->_staticFlags.bCanBePushed) {
+ actorTest->_lastPos.y = 0;
- if (actorTest->staticFlags.bUseMiniZv) {
- if (newAngle >= ANGLE_45 && newAngle < ANGLE_135 && actor->angle > ANGLE_45 && actor->angle < ANGLE_135) {
- actorTest->lastPos.x = 192;
+ if (actorTest->_staticFlags.bUseMiniZv) {
+ if (newAngle >= ANGLE_45 && newAngle < ANGLE_135 && actor->_angle > ANGLE_45 && actor->_angle < ANGLE_135) {
+ actorTest->_lastPos.x = 192;
}
- if (newAngle >= ANGLE_135 && newAngle < ANGLE_225 && actor->angle > ANGLE_135 && actor->angle < ANGLE_225) {
- actorTest->lastPos.z = -64;
+ if (newAngle >= ANGLE_135 && newAngle < ANGLE_225 && actor->_angle > ANGLE_135 && actor->_angle < ANGLE_225) {
+ actorTest->_lastPos.z = -64;
}
- if (newAngle >= ANGLE_225 && newAngle < ANGLE_315 && actor->angle > ANGLE_225 && actor->angle < ANGLE_315) {
- actorTest->lastPos.x = -64;
+ if (newAngle >= ANGLE_225 && newAngle < ANGLE_315 && actor->_angle > ANGLE_225 && actor->_angle < ANGLE_315) {
+ actorTest->_lastPos.x = -64;
}
- if ((newAngle >= ANGLE_315 || newAngle < ANGLE_45) && (actor->angle > ANGLE_315 || actor->angle < ANGLE_45)) {
- actorTest->lastPos.x = 192;
+ if ((newAngle >= ANGLE_315 || newAngle < ANGLE_45) && (actor->_angle > ANGLE_315 || actor->_angle < ANGLE_45)) {
+ actorTest->_lastPos.x = 192;
}
} else {
- actorTest->lastPos.x = processActor.x - actor->collisionPos.x;
- actorTest->lastPos.z = processActor.z - actor->collisionPos.z;
+ actorTest->_lastPos.x = processActor.x - actor->_collisionPos.x;
+ actorTest->_lastPos.z = processActor.z - actor->_collisionPos.z;
}
}
- if ((actorTest->boudingBox.maxs.x - actorTest->boudingBox.mins.x == actorTest->boudingBox.maxs.z - actorTest->boudingBox.mins.z) &&
- (actor->boudingBox.maxs.x - actor->boudingBox.mins.x == actor->boudingBox.maxs.z - actor->boudingBox.mins.z)) {
+ if ((actorTest->_boudingBox.maxs.x - actorTest->_boudingBox.mins.x == actorTest->_boudingBox.maxs.z - actorTest->_boudingBox.mins.z) &&
+ (actor->_boudingBox.maxs.x - actor->_boudingBox.mins.x == actor->_boudingBox.maxs.z - actor->_boudingBox.mins.z)) {
if (newAngle < ANGLE_135) {
- processActor.x = minsTest.x - actor->boudingBox.maxs.x;
+ processActor.x = minsTest.x - actor->_boudingBox.maxs.x;
}
if (newAngle >= ANGLE_135 && newAngle < ANGLE_225) {
- processActor.z = maxsTest.z - actor->boudingBox.mins.z;
+ processActor.z = maxsTest.z - actor->_boudingBox.mins.z;
}
if (newAngle >= ANGLE_225 && newAngle < ANGLE_315) {
- processActor.x = maxsTest.x - actor->boudingBox.mins.x;
+ processActor.x = maxsTest.x - actor->_boudingBox.mins.x;
}
if (newAngle >= ANGLE_315 || (newAngle < ANGLE_315 && newAngle < ANGLE_45)) {
- processActor.z = minsTest.z - actor->boudingBox.maxs.z;
+ processActor.z = minsTest.z - actor->_boudingBox.maxs.z;
}
} else {
- if (!actor->dynamicFlags.bIsFalling) {
+ if (!actor->_dynamicFlags.bIsFalling) {
processActor = previousActor;
}
}
@@ -272,46 +272,46 @@ int32 Collision::checkCollisionWithActors(int32 actorIdx) {
_engine->_actor->hitActor(actorIdx, a, 1, -1);
}
- int32 newAngle = _engine->_movements->getAngleAndSetTargetActorDistance(processActor, actorTest->pos);
+ int32 newAngle = _engine->_movements->getAngleAndSetTargetActorDistance(processActor, actorTest->pos());
- if (actorTest->staticFlags.bCanBePushed && !actor->staticFlags.bCanBePushed) {
- actorTest->lastPos.y = 0;
+ if (actorTest->_staticFlags.bCanBePushed && !actor->_staticFlags.bCanBePushed) {
+ actorTest->_lastPos.y = 0;
- if (actorTest->staticFlags.bUseMiniZv) {
- if (newAngle >= ANGLE_45 && newAngle < ANGLE_135 && actor->angle > ANGLE_45 && actor->angle < ANGLE_135) {
- actorTest->lastPos.x = 192;
+ if (actorTest->_staticFlags.bUseMiniZv) {
+ if (newAngle >= ANGLE_45 && newAngle < ANGLE_135 && actor->_angle > ANGLE_45 && actor->_angle < ANGLE_135) {
+ actorTest->_lastPos.x = 192;
}
- if (newAngle >= ANGLE_135 && newAngle < ANGLE_225 && actor->angle > ANGLE_135 && actor->angle < ANGLE_225) {
- actorTest->lastPos.z = -64;
+ if (newAngle >= ANGLE_135 && newAngle < ANGLE_225 && actor->_angle > ANGLE_135 && actor->_angle < ANGLE_225) {
+ actorTest->_lastPos.z = -64;
}
- if (newAngle >= ANGLE_225 && newAngle < ANGLE_315 && actor->angle > ANGLE_225 && actor->angle < ANGLE_315) {
- actorTest->lastPos.x = -64;
+ if (newAngle >= ANGLE_225 && newAngle < ANGLE_315 && actor->_angle > ANGLE_225 && actor->_angle < ANGLE_315) {
+ actorTest->_lastPos.x = -64;
}
- if ((newAngle >= ANGLE_315 || newAngle < ANGLE_45) && (actor->angle > ANGLE_315 || actor->angle < ANGLE_45)) {
- actorTest->lastPos.x = 192;
+ if ((newAngle >= ANGLE_315 || newAngle < ANGLE_45) && (actor->_angle > ANGLE_315 || actor->_angle < ANGLE_45)) {
+ actorTest->_lastPos.x = 192;
}
} else {
- actorTest->lastPos.x = processActor.x - actor->collisionPos.x;
- actorTest->lastPos.z = processActor.z - actor->collisionPos.z;
+ actorTest->_lastPos.x = processActor.x - actor->_collisionPos.x;
+ actorTest->_lastPos.z = processActor.z - actor->_collisionPos.z;
}
}
- if ((actorTest->boudingBox.maxs.x - actorTest->boudingBox.mins.x == actorTest->boudingBox.maxs.z - actorTest->boudingBox.mins.z) &&
- (actor->boudingBox.maxs.x - actor->boudingBox.mins.x == actor->boudingBox.maxs.z - actor->boudingBox.mins.z)) {
+ if ((actorTest->_boudingBox.maxs.x - actorTest->_boudingBox.mins.x == actorTest->_boudingBox.maxs.z - actorTest->_boudingBox.mins.z) &&
+ (actor->_boudingBox.maxs.x - actor->_boudingBox.mins.x == actor->_boudingBox.maxs.z - actor->_boudingBox.mins.z)) {
if (newAngle < ANGLE_135) {
- processActor.x = minsTest.x - actor->boudingBox.maxs.x;
+ processActor.x = minsTest.x - actor->_boudingBox.maxs.x;
}
if (newAngle >= ANGLE_135 && newAngle < ANGLE_225) {
- processActor.z = maxsTest.z - actor->boudingBox.mins.z;
+ processActor.z = maxsTest.z - actor->_boudingBox.mins.z;
}
if (newAngle >= ANGLE_225 && newAngle < ANGLE_315) {
- processActor.x = maxsTest.x - actor->boudingBox.mins.x;
+ processActor.x = maxsTest.x - actor->_boudingBox.mins.x;
}
if (newAngle >= ANGLE_315 || (newAngle < ANGLE_315 && newAngle < ANGLE_45)) {
- processActor.z = minsTest.z - actor->boudingBox.maxs.z;
+ processActor.z = minsTest.z - actor->_boudingBox.maxs.z;
}
} else {
- if (!actor->dynamicFlags.bIsFalling) {
+ if (!actor->_dynamicFlags.bIsFalling) {
processActor = previousActor;
}
}
@@ -320,33 +320,33 @@ int32 Collision::checkCollisionWithActors(int32 actorIdx) {
}
}
- if (actor->dynamicFlags.bIsHitting) {
- _engine->_movements->rotateActor(0, 200, actor->angle);
+ if (actor->_dynamicFlags.bIsHitting) {
+ _engine->_movements->rotateActor(0, 200, actor->_angle);
- mins.x = _engine->_renderer->_destPos.x + processActor.x + actor->boudingBox.mins.x;
- mins.y = processActor.y + actor->boudingBox.mins.y;
- mins.z = _engine->_renderer->_destPos.z + processActor.z + actor->boudingBox.mins.z;
+ mins.x = _engine->_renderer->_destPos.x + processActor.x + actor->_boudingBox.mins.x;
+ mins.y = processActor.y + actor->_boudingBox.mins.y;
+ mins.z = _engine->_renderer->_destPos.z + processActor.z + actor->_boudingBox.mins.z;
- maxs.x = _engine->_renderer->_destPos.x + processActor.x + actor->boudingBox.maxs.x;
- maxs.y = processActor.y + actor->boudingBox.maxs.y;
- maxs.z = _engine->_renderer->_destPos.z + processActor.z + actor->boudingBox.maxs.z;
+ maxs.x = _engine->_renderer->_destPos.x + processActor.x + actor->_boudingBox.maxs.x;
+ maxs.y = processActor.y + actor->_boudingBox.maxs.y;
+ maxs.z = _engine->_renderer->_destPos.z + processActor.z + actor->_boudingBox.maxs.z;
for (int32 a = 0; a < _engine->_scene->_sceneNumActors; a++) {
const ActorStruct *actorTest = _engine->_scene->getActor(a);
// aviod current processed actor
- if (a != actorIdx && actorTest->entity != -1 && !actorTest->staticFlags.bIsHidden && actorTest->standOn != actorIdx) {
- const IVec3 minsTest = actorTest->pos + actorTest->boudingBox.mins;
- const IVec3 maxsTest = actorTest->pos + actorTest->boudingBox.maxs;
+ if (a != actorIdx && actorTest->_entity != -1 && !actorTest->_staticFlags.bIsHidden && actorTest->_standOn != actorIdx) {
+ const IVec3 minsTest = actorTest->pos() + actorTest->_boudingBox.mins;
+ const IVec3 maxsTest = actorTest->pos() + actorTest->_boudingBox.maxs;
if (mins.x < maxsTest.x && maxs.x > minsTest.x && mins.y < maxsTest.y && maxs.y > minsTest.y && mins.z < maxsTest.z && maxs.z > minsTest.z) {
- _engine->_actor->hitActor(actorIdx, a, actor->strengthOfHit, actor->angle + ANGLE_180);
- actor->dynamicFlags.bIsHitting = 0;
+ _engine->_actor->hitActor(actorIdx, a, actor->_strengthOfHit, actor->_angle + ANGLE_180);
+ actor->_dynamicFlags.bIsHitting = 0;
}
}
}
}
- return actor->collision;
+ return actor->_collision;
}
void Collision::checkHeroCollisionWithBricks(int32 x, int32 y, int32 z, int32 damageMask) {
@@ -359,27 +359,27 @@ void Collision::checkHeroCollisionWithBricks(int32 x, int32 y, int32 z, int32 da
processActor.z += z;
if (processActor.x >= 0 && processActor.z >= 0 && processActor.x <= 0x7E00 && processActor.z <= 0x7E00) {
- const BoundingBox &bbox = _engine->_actor->processActorPtr->boudingBox;
+ const BoundingBox &bbox = _engine->_actor->processActorPtr->_boudingBox;
reajustActorPosition(brickShape);
brickShape = _engine->_grid->getBrickShapeFull(processActor, bbox.maxs.y);
if (brickShape == ShapeType::kSolid) {
- causeActorDamage |= damageMask;
+ _causeActorDamage |= damageMask;
brickShape = _engine->_grid->getBrickShapeFull(processActor.x, processActor.y, previousActor.z + z, bbox.maxs.y);
if (brickShape == ShapeType::kSolid) {
brickShape = _engine->_grid->getBrickShapeFull(x + previousActor.x, processActor.y, processActor.z, bbox.maxs.y);
if (brickShape != ShapeType::kSolid) {
- processCollision.x = previousActor.x;
+ _processCollision.x = previousActor.x;
}
} else {
- processCollision.z = previousActor.z;
+ _processCollision.z = previousActor.z;
}
}
}
- processActor = processCollision;
+ processActor = _processCollision;
}
void Collision::checkActorCollisionWithBricks(int32 x, int32 y, int32 z, int32 damageMask) {
@@ -396,49 +396,50 @@ void Collision::checkActorCollisionWithBricks(int32 x, int32 y, int32 z, int32 d
brickShape = _engine->_grid->getBrickShape(processActor);
if (brickShape == ShapeType::kSolid) {
- causeActorDamage |= damageMask;
+ _causeActorDamage |= damageMask;
brickShape = _engine->_grid->getBrickShape(processActor.x, processActor.y, previousActor.z + z);
if (brickShape == ShapeType::kSolid) {
brickShape = _engine->_grid->getBrickShape(x + previousActor.x, processActor.y, processActor.z);
if (brickShape != ShapeType::kSolid) {
- processCollision.x = previousActor.x;
+ _processCollision.x = previousActor.x;
}
} else {
- processCollision.z = previousActor.z;
+ _processCollision.z = previousActor.z;
}
}
}
- processActor = processCollision;
+ processActor = _processCollision;
}
void Collision::stopFalling() { // ReceptionObj()
- if (IS_HERO(_engine->_animations->currentlyProcessedActorIdx)) {
+ if (IS_HERO(_engine->_animations->_currentlyProcessedActorIdx)) {
const IVec3 &processActor = _engine->_movements->_processActor;
const int32 fall = _engine->_scene->_heroYBeforeFall - processActor.y;
if (fall >= BRICK_HEIGHT * 8) {
- _engine->_extra->addExtraSpecial(_engine->_actor->processActorPtr->pos.x, _engine->_actor->processActorPtr->pos.y + 1000, _engine->_actor->processActorPtr->pos.z, ExtraSpecialType::kHitStars);
+ const IVec3 &actorPos = _engine->_actor->processActorPtr->pos();
+ _engine->_extra->addExtraSpecial(actorPos.x, actorPos.y + 1000, actorPos.z, ExtraSpecialType::kHitStars);
if (fall >= BRICK_HEIGHT * 16) {
_engine->_actor->processActorPtr->setLife(0);
} else {
_engine->_actor->processActorPtr->addLife(-1);
}
- _engine->_animations->initAnim(AnimationTypes::kLandingHit, AnimType::kAnimationType_2, AnimationTypes::kStanding, _engine->_animations->currentlyProcessedActorIdx);
+ _engine->_animations->initAnim(AnimationTypes::kLandingHit, AnimType::kAnimationType_2, AnimationTypes::kStanding, _engine->_animations->_currentlyProcessedActorIdx);
} else if (fall > 10) {
- _engine->_animations->initAnim(AnimationTypes::kLanding, AnimType::kAnimationType_2, AnimationTypes::kStanding, _engine->_animations->currentlyProcessedActorIdx);
+ _engine->_animations->initAnim(AnimationTypes::kLanding, AnimType::kAnimationType_2, AnimationTypes::kStanding, _engine->_animations->_currentlyProcessedActorIdx);
} else {
- _engine->_animations->initAnim(AnimationTypes::kStanding, AnimType::kAnimationTypeLoop, AnimationTypes::kStanding, _engine->_animations->currentlyProcessedActorIdx);
+ _engine->_animations->initAnim(AnimationTypes::kStanding, AnimType::kAnimationTypeLoop, AnimationTypes::kStanding, _engine->_animations->_currentlyProcessedActorIdx);
}
_engine->_scene->_heroYBeforeFall = 0;
} else {
- _engine->_animations->initAnim(AnimationTypes::kLanding, AnimType::kAnimationType_2, _engine->_actor->processActorPtr->animExtra, _engine->_animations->currentlyProcessedActorIdx);
+ _engine->_animations->initAnim(AnimationTypes::kLanding, AnimType::kAnimationType_2, _engine->_actor->processActorPtr->_animExtra, _engine->_animations->_currentlyProcessedActorIdx);
}
- _engine->_actor->processActorPtr->dynamicFlags.bIsFalling = 0;
+ _engine->_actor->processActorPtr->_dynamicFlags.bIsFalling = 0;
}
int32 Collision::checkExtraCollisionWithActors(ExtraListStruct *extra, int32 actorIdx) {
@@ -449,9 +450,9 @@ int32 Collision::checkExtraCollisionWithActors(ExtraListStruct *extra, int32 act
for (int32 a = 0; a < _engine->_scene->_sceneNumActors; a++) {
const ActorStruct *actorTest = _engine->_scene->getActor(a);
- if (a != actorIdx && actorTest->entity != -1) {
- const IVec3 minsTest = actorTest->pos + actorTest->boudingBox.mins;
- const IVec3 maxsTest = actorTest->pos + actorTest->boudingBox.maxs;
+ if (a != actorIdx && actorTest->_entity != -1) {
+ const IVec3 minsTest = actorTest->pos() + actorTest->_boudingBox.mins;
+ const IVec3 maxsTest = actorTest->pos() + actorTest->_boudingBox.maxs;
if (mins.x < maxsTest.x && maxs.x > minsTest.x && mins.y < maxsTest.y && maxs.y > minsTest.y && mins.z < maxsTest.z && maxs.z > minsTest.z) {
if (extra->strengthOfHit != 0) {
@@ -497,7 +498,7 @@ int32 Collision::checkExtraCollisionWithExtra(ExtraListStruct *extra, int32 extr
const IVec3 maxs = bbox->maxs + extra->pos;
for (int32 i = 0; i < EXTRA_MAX_ENTRIES; i++) {
- const ExtraListStruct *extraTest = &_engine->_extra->extraList[i];
+ const ExtraListStruct *extraTest = &_engine->_extra->_extraList[i];
if (i != extraIdx && extraTest->info0 != -1) {
// TODO: shouldn't this be extraTest->info0 as index?
const BoundingBox *testbbox = _engine->_resources->_spriteBoundingBox.bbox(++index);
diff --git a/engines/twine/scene/collision.h b/engines/twine/scene/collision.h
index 280541db17..2c4df037e5 100644
--- a/engines/twine/scene/collision.h
+++ b/engines/twine/scene/collision.h
@@ -37,13 +37,13 @@ private:
public:
Collision(TwinEEngine *engine);
/** Actor collision coordinate */
- IVec3 collision;
+ IVec3 _collision;
/** Actor collision coordinate */
- IVec3 processCollision;
+ IVec3 _processCollision;
/** Cause damage in current processed actor */
- int32 causeActorDamage = 0; //fieldCauseDamage
+ int32 _causeActorDamage = 0; //fieldCauseDamage
/**
* Check if actor 1 is standing in actor 2
diff --git a/engines/twine/scene/extra.cpp b/engines/twine/scene/extra.cpp
index abc60e46b1..9cb04242d9 100644
--- a/engines/twine/scene/extra.cpp
+++ b/engines/twine/scene/extra.cpp
@@ -80,7 +80,7 @@ Extra::Extra(TwinEEngine *engine) : _engine(engine) {}
int32 Extra::addExtra(int32 actorIdx, int32 x, int32 y, int32 z, int32 spriteIdx, int32 targetActor, int32 maxSpeed, int32 strengthOfHit) {
for (int32 i = 0; i < EXTRA_MAX_ENTRIES; i++) {
- ExtraListStruct *extra = &extraList[i];
+ ExtraListStruct *extra = &_extraList[i];
if (extra->info0 != -1) {
continue;
}
@@ -97,7 +97,7 @@ int32 Extra::addExtra(int32 actorIdx, int32 x, int32 y, int32 z, int32 spriteIdx
_engine->_movements->setActorAngle(ANGLE_0, maxSpeed, ANGLE_17, &extra->trackActorMove);
const ActorStruct *actor = _engine->_scene->getActor(targetActor);
- extra->angle = _engine->_movements->getAngleAndSetTargetActorDistance(extra->pos, actor->pos);
+ extra->angle = _engine->_movements->getAngleAndSetTargetActorDistance(extra->pos, actor->pos());
return i;
}
return -1;
@@ -105,7 +105,7 @@ int32 Extra::addExtra(int32 actorIdx, int32 x, int32 y, int32 z, int32 spriteIdx
int32 Extra::addExtraExplode(int32 x, int32 y, int32 z) {
for (int32 i = 0; i < EXTRA_MAX_ENTRIES; i++) {
- ExtraListStruct *extra = &extraList[i];
+ ExtraListStruct *extra = &_extraList[i];
if (extra->info0 != -1) {
continue;
}
@@ -125,7 +125,7 @@ int32 Extra::addExtraExplode(int32 x, int32 y, int32 z) {
void Extra::resetExtras() {
for (int32 i = 0; i < EXTRA_MAX_ENTRIES; i++) {
- ExtraListStruct *extra = &extraList[i];
+ ExtraListStruct *extra = &_extraList[i];
extra->info0 = -1;
extra->info1 = 1;
}
@@ -153,7 +153,7 @@ int32 Extra::addExtraSpecial(int32 x, int32 y, int32 z, ExtraSpecialType type) {
const int16 flag = EXTRA_SPECIAL_MASK + (int16)type;
for (int32 i = 0; i < EXTRA_MAX_ENTRIES; i++) {
- ExtraListStruct *extra = &extraList[i];
+ ExtraListStruct *extra = &_extraList[i];
if (extra->info0 != -1) {
continue;
}
@@ -216,7 +216,7 @@ int Extra::getBonusSprite(BonusParameter bonusParameter) const {
assert(bonusIndex < numBonus);
int8 bonusSprite = bonusSprites[bonusIndex];
// if bonus is magic an no magic level yet, then give life points
- if (!_engine->_gameState->magicLevelIdx && bonusSprite == SPRITEHQR_MAGICPOINTS) {
+ if (!_engine->_gameState->_magicLevelIdx && bonusSprite == SPRITEHQR_MAGICPOINTS) {
bonusSprite = SPRITEHQR_KASHES;
}
@@ -225,7 +225,7 @@ int Extra::getBonusSprite(BonusParameter bonusParameter) const {
int32 Extra::addExtraBonus(int32 x, int32 y, int32 z, int32 xAngle, int32 yAngle, int32 type, int32 bonusAmount) { // ExtraBonus
for (int32 i = 0; i < EXTRA_MAX_ENTRIES; i++) {
- ExtraListStruct *extra = &extraList[i];
+ ExtraListStruct *extra = &_extraList[i];
if (extra->info0 != -1) {
continue;
}
@@ -254,7 +254,7 @@ int32 Extra::addExtraBonus(int32 x, int32 y, int32 z, int32 xAngle, int32 yAngle
int32 Extra::addExtraThrow(int32 actorIdx, int32 x, int32 y, int32 z, int32 spriteIdx, int32 xAngle, int32 yAngle, int32 xRotPoint, int32 extraAngle, int32 strengthOfHit) { // ThrowExtra
for (int32 i = 0; i < EXTRA_MAX_ENTRIES; i++) {
- ExtraListStruct *extra = &extraList[i];
+ ExtraListStruct *extra = &_extraList[i];
if (extra->info0 != -1) {
continue;
}
@@ -280,7 +280,7 @@ int32 Extra::addExtraThrow(int32 actorIdx, int32 x, int32 y, int32 z, int32 spri
int32 Extra::addExtraAiming(int32 actorIdx, int32 x, int32 y, int32 z, int32 spriteIdx, int32 targetActorIdx, int32 finalAngle, int32 strengthOfHit) { // ExtraSearch
for (int32 i = 0; i < EXTRA_MAX_ENTRIES; i++) {
- ExtraListStruct *extra = &extraList[i];
+ ExtraListStruct *extra = &_extraList[i];
if (extra->info0 != -1) {
continue;
}
@@ -296,7 +296,7 @@ int32 Extra::addExtraAiming(int32 actorIdx, int32 x, int32 y, int32 z, int32 spr
extra->strengthOfHit = strengthOfHit;
_engine->_movements->setActorAngle(ANGLE_0, finalAngle, ANGLE_17, &extra->trackActorMove);
const ActorStruct *actor = _engine->_scene->getActor(targetActorIdx);
- extra->angle = _engine->_movements->getAngleAndSetTargetActorDistance(extra->pos, actor->pos);
+ extra->angle = _engine->_movements->getAngleAndSetTargetActorDistance(extra->pos, actor->pos());
return i;
}
@@ -306,7 +306,7 @@ int32 Extra::addExtraAiming(int32 actorIdx, int32 x, int32 y, int32 z, int32 spr
int32 Extra::findExtraKey() const {
for (int32 i = 0; i < EXTRA_MAX_ENTRIES; i++) {
- const ExtraListStruct *extra = &extraList[i];
+ const ExtraListStruct *extra = &_extraList[i];
if (extra->info0 == SPRITEHQR_KEY) {
return i;
}
@@ -317,7 +317,7 @@ int32 Extra::findExtraKey() const {
int32 Extra::addExtraAimingAtKey(int32 actorIdx, int32 x, int32 y, int32 z, int32 spriteIdx, int32 extraIdx) {
for (int32 i = 0; i < EXTRA_MAX_ENTRIES; i++) {
- ExtraListStruct *extra = &extraList[i];
+ ExtraListStruct *extra = &_extraList[i];
if (extra->info0 != -1) {
continue;
}
@@ -331,7 +331,7 @@ int32 Extra::addExtraAimingAtKey(int32 actorIdx, int32 x, int32 y, int32 z, int3
extra->destPos.z = 4000;
extra->strengthOfHit = 0;
_engine->_movements->setActorAngle(ANGLE_0, 4000, ANGLE_17, &extra->trackActorMove);
- extra->angle = _engine->_movements->getAngleAndSetTargetActorDistance(extra->pos, extraList[extraIdx].pos);
+ extra->angle = _engine->_movements->getAngleAndSetTargetActorDistance(extra->pos, _extraList[extraIdx].pos);
return i;
}
@@ -345,7 +345,7 @@ void Extra::addExtraThrowMagicball(int32 x, int32 y, int32 z, int32 xAngle, int3
int32 extraIdx = -1;
// TODO: check against MagicballStrengthType
- switch (_engine->_gameState->magicLevelIdx) {
+ switch (_engine->_gameState->_magicLevelIdx) {
case 0:
case 1:
ballSprite = SPRITEHQR_MAGICBALL_YELLOW;
@@ -365,38 +365,38 @@ void Extra::addExtraThrowMagicball(int32 x, int32 y, int32 z, int32 xAngle, int3
break;
}
- _engine->_gameState->magicBallNumBounce = ((_engine->_gameState->inventoryMagicPoints - 1) / 20) + 1;
- if (_engine->_gameState->inventoryMagicPoints == 0) {
- _engine->_gameState->magicBallNumBounce = 0;
+ _engine->_gameState->_magicBallNumBounce = ((_engine->_gameState->_inventoryMagicPoints - 1) / 20) + 1;
+ if (_engine->_gameState->_inventoryMagicPoints == 0) {
+ _engine->_gameState->_magicBallNumBounce = 0;
}
extraIdx = findExtraKey();
if (extraIdx != -1) { // there is a key to aim
- _engine->_gameState->magicBallNumBounce = 5;
+ _engine->_gameState->_magicBallNumBounce = 5;
}
- switch (_engine->_gameState->magicBallNumBounce) {
+ switch (_engine->_gameState->_magicBallNumBounce) {
case 0:
- _engine->_gameState->magicBallIdx = addExtraThrow(OWN_ACTOR_SCENE_INDEX, x, y, z, ballSprite, xAngle, yAngle, xRotPoint, extraAngle, ballStrength);
+ _engine->_gameState->_magicBallIdx = addExtraThrow(OWN_ACTOR_SCENE_INDEX, x, y, z, ballSprite, xAngle, yAngle, xRotPoint, extraAngle, ballStrength);
break;
case 1:
- _engine->_gameState->magicBallAuxBounce = 4;
- _engine->_gameState->magicBallIdx = addExtraThrow(OWN_ACTOR_SCENE_INDEX, x, y, z, ballSprite, xAngle, yAngle, xRotPoint, extraAngle, ballStrength);
+ _engine->_gameState->_magicBallAuxBounce = 4;
+ _engine->_gameState->_magicBallIdx = addExtraThrow(OWN_ACTOR_SCENE_INDEX, x, y, z, ballSprite, xAngle, yAngle, xRotPoint, extraAngle, ballStrength);
break;
case 2:
case 3:
case 4:
- _engine->_gameState->magicBallNumBounce = 1;
- _engine->_gameState->magicBallAuxBounce = 4;
- _engine->_gameState->magicBallIdx = addExtraThrow(OWN_ACTOR_SCENE_INDEX, x, y, z, ballSprite, xAngle, yAngle, xRotPoint, extraAngle, ballStrength);
+ _engine->_gameState->_magicBallNumBounce = 1;
+ _engine->_gameState->_magicBallAuxBounce = 4;
+ _engine->_gameState->_magicBallIdx = addExtraThrow(OWN_ACTOR_SCENE_INDEX, x, y, z, ballSprite, xAngle, yAngle, xRotPoint, extraAngle, ballStrength);
break;
case 5:
- _engine->_gameState->magicBallIdx = addExtraAimingAtKey(OWN_ACTOR_SCENE_INDEX, x, y, z, ballSprite, extraIdx);
+ _engine->_gameState->_magicBallIdx = addExtraAimingAtKey(OWN_ACTOR_SCENE_INDEX, x, y, z, ballSprite, extraIdx);
break;
}
- if (_engine->_gameState->inventoryMagicPoints > 0) {
- _engine->_gameState->inventoryMagicPoints--;
+ if (_engine->_gameState->_inventoryMagicPoints > 0) {
+ _engine->_gameState->_inventoryMagicPoints--;
}
}
@@ -483,7 +483,7 @@ void Extra::drawSpecialShape(const ExtraShape &shapeTable, int32 x, int32 y, int
}
void Extra::drawExtraSpecial(int32 extraIdx, int32 x, int32 y, Common::Rect &renderRect) {
- ExtraListStruct *extra = &extraList[extraIdx];
+ ExtraListStruct *extra = &_extraList[extraIdx];
ExtraSpecialType specialType = (ExtraSpecialType)(extra->info0 & (EXTRA_SPECIAL_MASK - 1));
switch (specialType) {
@@ -530,7 +530,7 @@ void Extra::processExtras() {
int32 currentExtraZ = 0;
for (int32 i = 0; i < EXTRA_MAX_ENTRIES; i++) {
- ExtraListStruct *extra = &extraList[i];
+ ExtraListStruct *extra = &_extraList[i];
if (extra->info0 == -1) {
continue;
}
@@ -569,7 +569,7 @@ void Extra::processExtras() {
// check if extra is out of scene
if (extra->pos.y < 0 || extra->pos.x < 0 || extra->pos.x > 0x7E00 || extra->pos.z < 0 || extra->pos.z > 0x7E00) { // SCENE_SIZE_MAX
// if extra is Magic Ball
- if (i == _engine->_gameState->magicBallIdx) {
+ if (i == _engine->_gameState->_magicBallIdx) {
int32 spriteIdx = SPRITEHQR_MAGICBALL_YELLOW_TRANS;
if (extra->info0 == SPRITEHQR_MAGICBALL_GREEN) {
@@ -579,7 +579,7 @@ void Extra::processExtras() {
spriteIdx = SPRITEHQR_MAGICBALL_RED_TRANS;
}
- _engine->_gameState->magicBallIdx = addExtra(-1, extra->pos.x, extra->pos.y, extra->pos.z, spriteIdx, 0, 10000, 0);
+ _engine->_gameState->_magicBallIdx = addExtra(-1, extra->pos.x, extra->pos.y, extra->pos.z, spriteIdx, 0, 10000, 0);
}
// if can take extra on ground
@@ -605,11 +605,11 @@ void Extra::processExtras() {
int32 actorIdx = extra->payload.actorIdx;
const ActorStruct *actor = _engine->_scene->getActor(actorIdxAttacked);
- currentExtraX = actor->pos.x;
- currentExtraY = actor->pos.y + 1000;
- currentExtraZ = actor->pos.z;
+ currentExtraX = actor->_pos.x;
+ currentExtraY = actor->_pos.y + 1000;
+ currentExtraZ = actor->_pos.z;
- const int32 tmpAngle = _engine->_movements->getAngleAndSetTargetActorDistance(extra->pos, actor->pos);
+ const int32 tmpAngle = _engine->_movements->getAngleAndSetTargetActorDistance(extra->pos, actor->pos());
const int32 angle = ClampAngle(tmpAngle - extra->angle);
if (angle > ANGLE_140 && angle < ANGLE_210) {
@@ -617,8 +617,8 @@ void Extra::processExtras() {
_engine->_actor->hitActor(actorIdx, actorIdxAttacked, extra->strengthOfHit, -1);
}
- if (i == _engine->_gameState->magicBallIdx) {
- _engine->_gameState->magicBallIdx = -1;
+ if (i == _engine->_gameState->_magicBallIdx) {
+ _engine->_gameState->_magicBallIdx = -1;
}
extra->info0 = -1;
@@ -641,8 +641,8 @@ void Extra::processExtras() {
_engine->_movements->setActorAngle(ANGLE_0, extra->destPos.z, ANGLE_17, &extra->trackActorMove);
if (actorIdxAttacked == _engine->_collision->checkExtraCollisionWithActors(extra, actorIdx)) {
- if (i == _engine->_gameState->magicBallIdx) {
- _engine->_gameState->magicBallIdx = -1;
+ if (i == _engine->_gameState->_magicBallIdx) {
+ _engine->_gameState->_magicBallIdx = -1;
}
extra->info0 = -1;
@@ -652,14 +652,14 @@ void Extra::processExtras() {
// process magic ball extra aiming for key
if (extra->type & ExtraType::MAGIC_BALL_KEY) {
// int32 actorIdxAttacked = extra->lifeTime;
- ExtraListStruct *extraKey = &extraList[extra->payload.extraIdx];
+ ExtraListStruct *extraKey = &_extraList[extra->payload.extraIdx];
const int32 extraIdx = extra->payload.extraIdx;
const int32 tmpAngle = _engine->_movements->getAngleAndSetTargetActorDistance(extra->pos, extraKey->pos);
const int32 angle = ClampAngle(tmpAngle - extra->angle);
if (angle > ANGLE_140 && angle < ANGLE_210) {
- _engine->_sound->playSample(Samples::ItemFound, 1, _engine->_scene->_sceneHero->pos, OWN_ACTOR_SCENE_INDEX);
+ _engine->_sound->playSample(Samples::ItemFound, 1, _engine->_scene->_sceneHero->pos(), OWN_ACTOR_SCENE_INDEX);
if (extraKey->info1 > 1) {
_engine->_renderer->projectPositionOnScreen(extraKey->pos - _engine->_grid->_camera);
@@ -672,7 +672,7 @@ void Extra::processExtras() {
extraKey->info0 = -1;
extra->info0 = -1;
- _engine->_gameState->magicBallIdx = addExtra(-1, extra->pos.x, extra->pos.y, extra->pos.z, SPRITEHQR_KEY, 0, 8000, 0);
+ _engine->_gameState->_magicBallIdx = addExtra(-1, extra->pos.x, extra->pos.y, extra->pos.z, SPRITEHQR_KEY, 0, 8000, 0);
continue;
}
const int32 angle2 = _engine->_movements->getAngleAndSetTargetActorDistance(extra->pos.y, 0, extraKey->pos.y, _engine->_movements->_targetActorDistance);
@@ -691,8 +691,8 @@ void Extra::processExtras() {
_engine->_movements->setActorAngle(ANGLE_0, extra->destPos.z, ANGLE_17, &extra->trackActorMove);
- if (extraIdx == _engine->_collision->checkExtraCollisionWithExtra(extra, _engine->_gameState->magicBallIdx)) {
- _engine->_sound->playSample(Samples::ItemFound, 1, _engine->_scene->_sceneHero->pos, OWN_ACTOR_SCENE_INDEX);
+ if (extraIdx == _engine->_collision->checkExtraCollisionWithExtra(extra, _engine->_gameState->_magicBallIdx)) {
+ _engine->_sound->playSample(Samples::ItemFound, 1, _engine->_scene->_sceneHero->pos(), OWN_ACTOR_SCENE_INDEX);
if (extraKey->info1 > 1) {
_engine->_renderer->projectPositionOnScreen(extraKey->pos - _engine->_grid->_camera);
@@ -705,7 +705,7 @@ void Extra::processExtras() {
extraKey->info0 = -1;
extra->info0 = -1;
- _engine->_gameState->magicBallIdx = addExtra(-1, extra->pos.x, extra->pos.y, extra->pos.z, SPRITEHQR_KEY, 0, 8000, 0);
+ _engine->_gameState->_magicBallIdx = addExtra(-1, extra->pos.x, extra->pos.y, extra->pos.z, SPRITEHQR_KEY, 0, 8000, 0);
continue;
}
if (extraKey->info0 == -1) {
@@ -719,7 +719,7 @@ void Extra::processExtras() {
}
extra->info0 = -1;
- _engine->_gameState->magicBallIdx = addExtra(-1, extra->pos.x, extra->pos.y, extra->pos.z, spriteIdx, 0, 8000, 0);
+ _engine->_gameState->_magicBallIdx = addExtra(-1, extra->pos.x, extra->pos.y, extra->pos.z, spriteIdx, 0, 8000, 0);
continue;
}
}
@@ -727,7 +727,7 @@ void Extra::processExtras() {
if (extra->type & ExtraType::UNK2) {
if (_engine->_collision->checkExtraCollisionWithActors(extra, extra->payload.actorIdx) != -1) {
// if extra is Magic Ball
- if (i == _engine->_gameState->magicBallIdx) {
+ if (i == _engine->_gameState->_magicBallIdx) {
int32 spriteIdx = SPRITEHQR_MAGICBALL_YELLOW_TRANS;
if (extra->info0 == SPRITEHQR_MAGICBALL_GREEN) {
@@ -737,7 +737,7 @@ void Extra::processExtras() {
spriteIdx = SPRITEHQR_MAGICBALL_RED_TRANS;
}
- _engine->_gameState->magicBallIdx = addExtra(-1, extra->pos.x, extra->pos.y, extra->pos.z, spriteIdx, 0, 10000, 0);
+ _engine->_gameState->_magicBallIdx = addExtra(-1, extra->pos.x, extra->pos.y, extra->pos.z, spriteIdx, 0, 10000, 0);
}
extra->info0 = -1;
@@ -766,11 +766,11 @@ void Extra::processExtras() {
addExtraSpecial(currentExtraX, currentExtraY, currentExtraZ, ExtraSpecialType::kExplodeCloud);
}
// if extra is magic ball
- if (i == _engine->_gameState->magicBallIdx) {
+ if (i == _engine->_gameState->_magicBallIdx) {
_engine->_sound->playSample(Samples::Hit, 1, extra->pos);
// cant bounce with not magic points
- if (_engine->_gameState->magicBallNumBounce <= 0) {
+ if (_engine->_gameState->_magicBallNumBounce <= 0) {
int32 spriteIdx = SPRITEHQR_MAGICBALL_YELLOW_TRANS;
if (extra->info0 == SPRITEHQR_MAGICBALL_GREEN) {
@@ -780,15 +780,15 @@ void Extra::processExtras() {
spriteIdx = SPRITEHQR_MAGICBALL_RED_TRANS;
}
- _engine->_gameState->magicBallIdx = addExtra(-1, extra->pos.x, extra->pos.y, extra->pos.z, spriteIdx, 0, 10000, 0);
+ _engine->_gameState->_magicBallIdx = addExtra(-1, extra->pos.x, extra->pos.y, extra->pos.z, spriteIdx, 0, 10000, 0);
extra->info0 = -1;
continue;
}
// if has magic points
- if (_engine->_gameState->magicBallNumBounce == 1) {
- if (!_engine->_gameState->magicBallAuxBounce--) {
+ if (_engine->_gameState->_magicBallNumBounce == 1) {
+ if (!_engine->_gameState->_magicBallAuxBounce--) {
int32 spriteIdx = SPRITEHQR_MAGICBALL_YELLOW_TRANS;
if (extra->info0 == SPRITEHQR_MAGICBALL_GREEN) {
@@ -798,7 +798,7 @@ void Extra::processExtras() {
spriteIdx = SPRITEHQR_MAGICBALL_RED_TRANS;
}
- _engine->_gameState->magicBallIdx = addExtra(-1, extra->pos.x, extra->pos.y, extra->pos.z, spriteIdx, 0, 10000, 0);
+ _engine->_gameState->_magicBallIdx = addExtra(-1, extra->pos.x, extra->pos.y, extra->pos.z, spriteIdx, 0, 10000, 0);
extra->info0 = -1;
continue;
@@ -829,7 +829,7 @@ void Extra::processExtras() {
if (process) {
const BoundingBox *bbox = _engine->_resources->_spriteBoundingBox.bbox(extra->info0);
- extra->pos.y = (_engine->_collision->collision.y * BRICK_HEIGHT) + BRICK_HEIGHT - bbox->mins.y;
+ extra->pos.y = (_engine->_collision->_collision.y * BRICK_HEIGHT) + BRICK_HEIGHT - bbox->mins.y;
extra->type &= ~(ExtraType::STOP_COL | ExtraType::FLY);
continue;
}
@@ -852,7 +852,7 @@ void Extra::processExtras() {
_engine->_gameState->addKashes(extra->info1);
} else if (extra->info0 == SPRITEHQR_LIFEPOINTS) {
_engine->_scene->_sceneHero->addLife(extra->info1);
- } else if (extra->info0 == SPRITEHQR_MAGICPOINTS && _engine->_gameState->magicLevelIdx) {
+ } else if (extra->info0 == SPRITEHQR_MAGICPOINTS && _engine->_gameState->_magicLevelIdx) {
_engine->_gameState->addMagicPoints(extra->info1 * 2);
} else if (extra->info0 == SPRITEHQR_KEY) {
_engine->_gameState->addKeys(extra->info1);
diff --git a/engines/twine/scene/extra.h b/engines/twine/scene/extra.h
index 0eec559778..41aede8e25 100644
--- a/engines/twine/scene/extra.h
+++ b/engines/twine/scene/extra.h
@@ -96,7 +96,7 @@ private:
public:
Extra(TwinEEngine *engine);
- ExtraListStruct extraList[EXTRA_MAX_ENTRIES];
+ ExtraListStruct _extraList[EXTRA_MAX_ENTRIES];
int32 addExtra(int32 actorIdx, int32 x, int32 y, int32 z, int32 spriteIdx, int32 targetActor, int32 maxSpeed, int32 strengthOfHit);
@@ -108,11 +108,20 @@ public:
*/
int32 addExtraExplode(int32 x, int32 y, int32 z);
+ inline int32 addExtraExplode(const IVec3 &pos) {
+ return addExtraExplode(pos.x, pos.y, pos.z);
+ }
+
/** Reset all used extras */
void resetExtras();
int32 addExtraSpecial(int32 x, int32 y, int32 z, ExtraSpecialType type);
int32 addExtraBonus(int32 x, int32 y, int32 z, int32 xAngle, int32 yAngle, int32 type, int32 bonusAmount);
+
+ inline int32 addExtraBonus(const IVec3 &pos, int32 xAngle, int32 yAngle, int32 type, int32 bonusAmount) {
+ return addExtraBonus(pos.x, pos.y, pos.z, xAngle, yAngle, type, bonusAmount);
+ }
+
int32 addExtraThrow(int32 actorIdx, int32 x, int32 y, int32 z, int32 spriteIdx, int32 xAngle, int32 yAngle, int32 xRotPoint, int32 extraAngle, int32 strengthOfHit);
int32 addExtraAiming(int32 actorIdx, int32 x, int32 y, int32 z, int32 spriteIdx, int32 targetActorIdx, int32 finalAngle, int32 strengthOfHit);
void addExtraThrowMagicball(int32 x, int32 y, int32 z, int32 xAngle, int32 yAngle, int32 xRotPoint, int32 extraAngle);
diff --git a/engines/twine/scene/gamestate.cpp b/engines/twine/scene/gamestate.cpp
index 779c3d63eb..4918192946 100644
--- a/engines/twine/scene/gamestate.cpp
+++ b/engines/twine/scene/gamestate.cpp
@@ -51,9 +51,9 @@ namespace TwinE {
GameState::GameState(TwinEEngine *engine) : _engine(engine) {
clearGameFlags();
- Common::fill(&inventoryFlags[0], &inventoryFlags[NUM_INVENTORY_ITEMS], 0);
- Common::fill(&holomapFlags[0], &holomapFlags[NUM_LOCATIONS], 0);
- Common::fill(&gameChoices[0], &gameChoices[10], TextId::kNone);
+ Common::fill(&_inventoryFlags[0], &_inventoryFlags[NUM_INVENTORY_ITEMS], 0);
+ Common::fill(&_holomapFlags[0], &_holomapFlags[NUM_LOCATIONS], 0);
+ Common::fill(&_gameChoices[0], &_gameChoices[10], TextId::kNone);
}
void GameState::initEngineProjections() {
@@ -76,29 +76,29 @@ void GameState::initGameStateVars() {
}
clearGameFlags();
- Common::fill(&inventoryFlags[0], &inventoryFlags[NUM_INVENTORY_ITEMS], 0);
+ Common::fill(&_inventoryFlags[0], &_inventoryFlags[NUM_INVENTORY_ITEMS], 0);
_engine->_scene->initSceneVars();
- Common::fill(&holomapFlags[0], &holomapFlags[NUM_LOCATIONS], 0);
+ Common::fill(&_holomapFlags[0], &_holomapFlags[NUM_LOCATIONS], 0);
}
void GameState::initHeroVars() {
_engine->_actor->resetActor(OWN_ACTOR_SCENE_INDEX); // reset Hero
- magicBallIdx = -1;
+ _magicBallIdx = -1;
- inventoryNumLeafsBox = 2;
- inventoryNumLeafs = 2;
- inventoryNumKashes = 0;
- inventoryNumKeys = 0;
- inventoryMagicPoints = 0;
+ _inventoryNumLeafsBox = 2;
+ _inventoryNumLeafs = 2;
+ _inventoryNumKashes = 0;
+ _inventoryNumKeys = 0;
+ _inventoryMagicPoints = 0;
- usingSabre = false;
+ _usingSabre = false;
- _engine->_scene->_sceneHero->body = BodyType::btNormal;
+ _engine->_scene->_sceneHero->_body = BodyType::btNormal;
_engine->_scene->_sceneHero->setLife(kActorMaxLife);
- _engine->_scene->_sceneHero->talkColor = COLOR_BRIGHT_BLUE;
+ _engine->_scene->_sceneHero->_talkColor = COLOR_BRIGHT_BLUE;
}
void GameState::initEngineVars() {
@@ -121,19 +121,19 @@ void GameState::initEngineVars() {
_engine->_scene->_mecaPinguinIdx = -1;
_engine->_menuOptions->canShowCredits = false;
- inventoryNumLeafs = 0;
- inventoryNumLeafsBox = 2;
- inventoryMagicPoints = 0;
- inventoryNumKashes = 0;
- inventoryNumKeys = 0;
- inventoryNumGas = 0;
+ _inventoryNumLeafs = 0;
+ _inventoryNumLeafsBox = 2;
+ _inventoryMagicPoints = 0;
+ _inventoryNumKashes = 0;
+ _inventoryNumKeys = 0;
+ _inventoryNumGas = 0;
_engine->_actor->cropBottomScreen = 0;
- magicLevelIdx = 0;
- usingSabre = false;
+ _magicLevelIdx = 0;
+ _usingSabre = false;
- gameChapter = 0;
+ _gameChapter = 0;
_engine->_scene->_sceneTextBank = TextBankId::Options_and_menus;
_engine->_scene->_currentlyFollowedActor = OWN_ACTOR_SCENE_INDEX;
@@ -180,28 +180,28 @@ bool GameState::loadGame(Common::SeekableReadStream *file) {
setGameFlag(i, file->readByte());
}
_engine->_scene->_needChangeScene = file->readByte(); // scene index
- gameChapter = file->readByte();
+ _gameChapter = file->readByte();
_engine->_actor->heroBehaviour = (HeroBehaviourType)file->readByte();
_engine->_actor->previousHeroBehaviour = _engine->_actor->heroBehaviour;
_engine->_scene->_sceneHero->setLife(file->readByte());
setKashes(file->readSint16LE());
- magicLevelIdx = file->readByte();
+ _magicLevelIdx = file->readByte();
setMagicPoints(file->readByte());
setLeafBoxes(file->readByte());
_engine->_scene->_newHeroPos.x = file->readSint16LE();
_engine->_scene->_newHeroPos.y = file->readSint16LE();
_engine->_scene->_newHeroPos.z = file->readSint16LE();
- _engine->_scene->_sceneHero->angle = ToAngle(file->readSint16LE());
- _engine->_actor->previousHeroAngle = _engine->_scene->_sceneHero->angle;
- _engine->_scene->_sceneHero->body = (BodyType)file->readByte();
+ _engine->_scene->_sceneHero->_angle = ToAngle(file->readSint16LE());
+ _engine->_actor->previousHeroAngle = _engine->_scene->_sceneHero->_angle;
+ _engine->_scene->_sceneHero->_body = (BodyType)file->readByte();
const byte numHolomapFlags = file->readByte(); // number of holomap locations
if (numHolomapFlags != NUM_LOCATIONS) {
warning("Failed to load holomapflags. Got %u, expected %i", numHolomapFlags, NUM_LOCATIONS);
return false;
}
- file->read(holomapFlags, NUM_LOCATIONS);
+ file->read(_holomapFlags, NUM_LOCATIONS);
setGas(file->readByte());
@@ -210,10 +210,10 @@ bool GameState::loadGame(Common::SeekableReadStream *file) {
warning("Failed to load inventoryFlags. Got %u, expected %i", numInventoryFlags, NUM_INVENTORY_ITEMS);
return false;
}
- file->read(inventoryFlags, NUM_INVENTORY_ITEMS);
+ file->read(_inventoryFlags, NUM_INVENTORY_ITEMS);
setLeafs(file->readByte());
- usingSabre = file->readByte();
+ _usingSabre = file->readByte();
if (saveFileVersion == 4) {
// the time the game was played
@@ -248,33 +248,33 @@ bool GameState::saveGame(Common::WriteStream *file) {
file->writeByte(hasGameFlag(i));
}
file->writeByte(sceneIdx);
- file->writeByte(gameChapter);
+ file->writeByte(_gameChapter);
file->writeByte((byte)_engine->_actor->heroBehaviour);
- file->writeByte(_engine->_scene->_sceneHero->life);
- file->writeSint16LE(inventoryNumKashes);
- file->writeByte(magicLevelIdx);
- file->writeByte(inventoryMagicPoints);
- file->writeByte(inventoryNumLeafsBox);
+ file->writeByte(_engine->_scene->_sceneHero->_life);
+ file->writeSint16LE(_inventoryNumKashes);
+ file->writeByte(_magicLevelIdx);
+ file->writeByte(_inventoryMagicPoints);
+ file->writeByte(_inventoryNumLeafsBox);
// we don't save the whole scene state - so we have to make sure that the hero is
// respawned at the start of the scene - and not at its current position
file->writeSint16LE(_engine->_scene->_newHeroPos.x);
file->writeSint16LE(_engine->_scene->_newHeroPos.y);
file->writeSint16LE(_engine->_scene->_newHeroPos.z);
- file->writeSint16LE(FromAngle(_engine->_scene->_sceneHero->angle));
- file->writeByte((uint8)_engine->_scene->_sceneHero->body);
+ file->writeSint16LE(FromAngle(_engine->_scene->_sceneHero->_angle));
+ file->writeByte((uint8)_engine->_scene->_sceneHero->_body);
// number of holomap locations
file->writeByte(NUM_LOCATIONS);
- file->write(holomapFlags, NUM_LOCATIONS);
+ file->write(_holomapFlags, NUM_LOCATIONS);
- file->writeByte(inventoryNumGas);
+ file->writeByte(_inventoryNumGas);
// number of inventory items
file->writeByte(NUM_INVENTORY_ITEMS);
- file->write(inventoryFlags, NUM_INVENTORY_ITEMS);
+ file->write(_inventoryFlags, NUM_INVENTORY_ITEMS);
- file->writeByte(inventoryNumLeafs);
- file->writeByte(usingSabre ? 1 : 0);
+ file->writeByte(_inventoryNumLeafs);
+ file->writeByte(_usingSabre ? 1 : 0);
file->writeByte(0);
return true;
@@ -304,9 +304,9 @@ void GameState::processFoundItem(InventoryItems item) {
_engine->exitSceneryView();
// Hide hero in scene
- _engine->_scene->_sceneHero->staticFlags.bIsHidden = 1;
+ _engine->_scene->_sceneHero->_staticFlags.bIsHidden = 1;
_engine->_redraw->redrawEngineActions(true);
- _engine->_scene->_sceneHero->staticFlags.bIsHidden = 0;
+ _engine->_scene->_sceneHero->_staticFlags.bIsHidden = 0;
_engine->saveFrontBuffer();
@@ -314,20 +314,20 @@ void GameState::processFoundItem(InventoryItems item) {
const int32 itemCameraY = _engine->_grid->_newCamera.y * BRICK_HEIGHT;
const int32 itemCameraZ = _engine->_grid->_newCamera.z * BRICK_SIZE;
- BodyData &bodyData = _engine->_resources->_bodyData[_engine->_scene->_sceneHero->entity];
- const int32 bodyX = _engine->_scene->_sceneHero->pos.x - itemCameraX;
- const int32 bodyY = _engine->_scene->_sceneHero->pos.y - itemCameraY;
- const int32 bodyZ = _engine->_scene->_sceneHero->pos.z - itemCameraZ;
+ BodyData &bodyData = _engine->_resources->_bodyData[_engine->_scene->_sceneHero->_entity];
+ const int32 bodyX = _engine->_scene->_sceneHero->_pos.x - itemCameraX;
+ const int32 bodyY = _engine->_scene->_sceneHero->_pos.y - itemCameraY;
+ const int32 bodyZ = _engine->_scene->_sceneHero->_pos.z - itemCameraZ;
Common::Rect modelRect;
_engine->_renderer->renderIsoModel(bodyX, bodyY, bodyZ, ANGLE_0, ANGLE_45, ANGLE_0, bodyData, modelRect);
_engine->_interface->setClip(modelRect);
- const int32 itemX = (_engine->_scene->_sceneHero->pos.x + BRICK_HEIGHT) / BRICK_SIZE;
- int32 itemY = _engine->_scene->_sceneHero->pos.y / BRICK_HEIGHT;
+ const int32 itemX = (_engine->_scene->_sceneHero->_pos.x + BRICK_HEIGHT) / BRICK_SIZE;
+ int32 itemY = _engine->_scene->_sceneHero->_pos.y / BRICK_HEIGHT;
if (_engine->_scene->_sceneHero->brickShape() != ShapeType::kNone) {
itemY++;
}
- const int32 itemZ = (_engine->_scene->_sceneHero->pos.z + BRICK_HEIGHT) / BRICK_SIZE;
+ const int32 itemZ = (_engine->_scene->_sceneHero->_pos.z + BRICK_HEIGHT) / BRICK_SIZE;
_engine->_grid->drawOverModelActor(itemX, itemY, itemZ);
@@ -356,9 +356,9 @@ void GameState::processFoundItem(InventoryItems item) {
const int32 bodyAnimIdx = _engine->_animations->getBodyAnimIndex(AnimationTypes::kFoundItem);
const AnimData ¤tAnimData = _engine->_resources->_animData[bodyAnimIdx];
- AnimTimerDataStruct tmpAnimTimer = _engine->_scene->_sceneHero->animTimerData;
+ AnimTimerDataStruct tmpAnimTimer = _engine->_scene->_sceneHero->_animTimerData;
- _engine->_animations->stockAnimation(bodyData, &_engine->_scene->_sceneHero->animTimerData);
+ _engine->_animations->stockAnimation(bodyData, &_engine->_scene->_sceneHero->_animTimerData);
uint currentAnimState = 0;
@@ -383,7 +383,7 @@ void GameState::processFoundItem(InventoryItems item) {
_engine->_interface->resetClip();
initEngineProjections();
- if (_engine->_animations->setModelAnimation(currentAnimState, currentAnimData, bodyData, &_engine->_scene->_sceneHero->animTimerData)) {
+ if (_engine->_animations->setModelAnimation(currentAnimState, currentAnimData, bodyData, &_engine->_scene->_sceneHero->_animTimerData)) {
currentAnimState++; // keyframe
if (currentAnimState >= currentAnimData.getNumKeyframes()) {
currentAnimState = currentAnimData.getLoopFrame();
@@ -437,7 +437,7 @@ void GameState::processFoundItem(InventoryItems item) {
_engine->_text->initSceneTextBank();
_engine->_text->stopVox(_engine->_text->_currDialTextEntry);
- _engine->_scene->_sceneHero->animTimerData = tmpAnimTimer;
+ _engine->_scene->_sceneHero->_animTimerData = tmpAnimTimer;
}
void GameState::processGameChoices(TextId choiceIdx) {
@@ -447,18 +447,18 @@ void GameState::processGameChoices(TextId choiceIdx) {
_gameChoicesSettings.setTextBankId((TextBankId)((int)_engine->_scene->_sceneTextBank + (int)TextBankId::Citadel_Island));
// filled via script
- for (int32 i = 0; i < numChoices; i++) {
- _gameChoicesSettings.addButton(gameChoices[i], 0);
+ for (int32 i = 0; i < _numChoices; i++) {
+ _gameChoicesSettings.addButton(_gameChoices[i], 0);
}
_engine->_text->drawAskQuestion(choiceIdx);
_engine->_menu->processMenu(&_gameChoicesSettings, false);
const int16 activeButton = _gameChoicesSettings.getActiveButton();
- choiceAnswer = gameChoices[activeButton];
+ _choiceAnswer = _gameChoices[activeButton];
// get right VOX entry index
- if (_engine->_text->initVoxToPlayTextId(choiceAnswer)) {
+ if (_engine->_text->initVoxToPlayTextId(_choiceAnswer)) {
while (_engine->_text->playVoxSimple(_engine->_text->_currDialTextEntry)) {
FrameMarker frame(_engine);
if (_engine->shouldQuit()) {
@@ -477,9 +477,9 @@ void GameState::processGameoverAnimation() {
_engine->exitSceneryView();
// workaround to fix hero redraw after drowning
- _engine->_scene->_sceneHero->staticFlags.bIsHidden = 1;
+ _engine->_scene->_sceneHero->_staticFlags.bIsHidden = 1;
_engine->_redraw->redrawEngineActions(true);
- _engine->_scene->_sceneHero->staticFlags.bIsHidden = 0;
+ _engine->_scene->_sceneHero->_staticFlags.bIsHidden = 0;
// TODO: inSceneryView
_engine->setPalette(_engine->_screens->_paletteRGBA);
@@ -539,79 +539,79 @@ void GameState::giveUp() {
}
int16 GameState::setGas(int16 value) {
- inventoryNumGas = CLIP<int16>(value, 0, 100);
- return inventoryNumGas;
+ _inventoryNumGas = CLIP<int16>(value, 0, 100);
+ return _inventoryNumGas;
}
void GameState::addGas(int16 value) {
- setGas(inventoryNumGas + value);
+ setGas(_inventoryNumGas + value);
}
int16 GameState::setKashes(int16 value) {
- inventoryNumKashes = CLIP<int16>(value, 0, 999);
- if (_engine->_gameState->inventoryNumKashes >= 500) {
+ _inventoryNumKashes = CLIP<int16>(value, 0, 999);
+ if (_engine->_gameState->_inventoryNumKashes >= 500) {
_engine->unlockAchievement("LBA_ACH_011");
}
- return inventoryNumKashes;
+ return _inventoryNumKashes;
}
int16 GameState::setKeys(int16 value) {
- inventoryNumKeys = MAX<int16>(0, value);
- return inventoryNumKeys;
+ _inventoryNumKeys = MAX<int16>(0, value);
+ return _inventoryNumKeys;
}
void GameState::addKeys(int16 val) {
- setKeys(inventoryNumKeys + val);
+ setKeys(_inventoryNumKeys + val);
}
void GameState::addKashes(int16 val) {
- setKashes(inventoryNumKashes + val);
+ setKashes(_inventoryNumKashes + val);
}
int16 GameState::setMagicPoints(int16 val) {
- inventoryMagicPoints = val;
- if (inventoryMagicPoints > magicLevelIdx * 20) {
- inventoryMagicPoints = magicLevelIdx * 20;
- } else if (inventoryMagicPoints < 0) {
- inventoryMagicPoints = 0;
+ _inventoryMagicPoints = val;
+ if (_inventoryMagicPoints > _magicLevelIdx * 20) {
+ _inventoryMagicPoints = _magicLevelIdx * 20;
+ } else if (_inventoryMagicPoints < 0) {
+ _inventoryMagicPoints = 0;
}
- return inventoryMagicPoints;
+ return _inventoryMagicPoints;
}
int16 GameState::setMaxMagicPoints() {
- inventoryMagicPoints = magicLevelIdx * 20;
- return inventoryMagicPoints;
+ _inventoryMagicPoints = _magicLevelIdx * 20;
+ return _inventoryMagicPoints;
}
void GameState::addMagicPoints(int16 val) {
- setMagicPoints(inventoryMagicPoints + val);
+ setMagicPoints(_inventoryMagicPoints + val);
}
int16 GameState::setLeafs(int16 val) {
- inventoryNumLeafs = val;
- if (inventoryNumLeafs > inventoryNumLeafsBox) {
- inventoryNumLeafs = inventoryNumLeafsBox;
+ _inventoryNumLeafs = val;
+ if (_inventoryNumLeafs > _inventoryNumLeafsBox) {
+ _inventoryNumLeafs = _inventoryNumLeafsBox;
}
- return inventoryNumLeafs;
+ return _inventoryNumLeafs;
}
void GameState::addLeafs(int16 val) {
- setLeafs(inventoryNumLeafs + val);
+ setLeafs(_inventoryNumLeafs + val);
}
int16 GameState::setLeafBoxes(int16 val) {
- inventoryNumLeafsBox = val;
- if (inventoryNumLeafsBox > 10) {
- inventoryNumLeafsBox = 10;
+ _inventoryNumLeafsBox = val;
+ if (_inventoryNumLeafsBox > 10) {
+ _inventoryNumLeafsBox = 10;
}
- if (inventoryNumLeafsBox == 5) {
+ if (_inventoryNumLeafsBox == 5) {
_engine->unlockAchievement("LBA_ACH_003");
}
- return inventoryNumLeafsBox;
+ return _inventoryNumLeafsBox;
}
void GameState::addLeafBoxes(int16 val) {
- setLeafBoxes(inventoryNumLeafsBox + val);
+ setLeafBoxes(_inventoryNumLeafsBox + val);
}
} // namespace TwinE
diff --git a/engines/twine/scene/gamestate.h b/engines/twine/scene/gamestate.h
index c0bab73614..8bc4fb7d85 100644
--- a/engines/twine/scene/gamestate.h
+++ b/engines/twine/scene/gamestate.h
@@ -78,6 +78,66 @@ private:
public:
GameState(TwinEEngine *engine);
+ /**
+ * LBA engine chapter
+ * 0: Inprisoned
+ * 1: Escape from the citadel
+ * 2: Zoe got captured
+ * 3: - looking for a young girl
+ * 4: - looking for a "friend"
+ * 5: The legend of Sendell
+ * 6: The book of Bu
+ * 7: Pirate LeBorne
+ * 8: - "good day"
+ * 9: - "good day"
+ * 10: - ?? nothing
+ * 11: - ?? nothing
+ * 12: - ?? nothing
+ * 13: - looking for plans
+ * 14: - still looking for plans
+ * 15: The final showdown - "good day"
+ */
+ int16 _gameChapter = 0;
+
+ /** Magic ball type index */
+ int16 _magicBallIdx = 0;
+ /** Magic ball num bounce */
+ int16 _magicBallNumBounce = 0;
+ /** Magic ball auxiliar bounce number */
+ int16 _magicBallAuxBounce = 0; // magicBallParam
+ /** Magic level index */
+ int16 _magicLevelIdx = 0;
+
+ /** Store the number of inventory keys */
+ int16 _inventoryNumKeys = 0;
+ /** Store the number of inventory kashes */
+ int16 _inventoryNumKashes = 0;
+ /** Store the number of inventory clover leafs boxes */
+ int16 _inventoryNumLeafsBox = 0;
+ /** Store the number of inventory clover leafs */
+ int16 _inventoryNumLeafs = 0;
+ /** Store the number of inventory magic points */
+ int16 _inventoryMagicPoints = 0;
+ /** Store the number of gas */
+ int16 _inventoryNumGas = 0;
+
+ /** Its using FunFrock Sabre */
+ bool _usingSabre = false;
+
+ /**
+ * Inventory used flags
+ * 0 means never used, 1 means already used and automatic re-use
+ */
+ uint8 _inventoryFlags[NUM_INVENTORY_ITEMS];
+
+ uint8 _holomapFlags[NUM_LOCATIONS]; // GV14
+
+ char _sceneName[30] {};
+
+ TextId _gameChoices[10]; // inGameMenuData
+ int32 _numChoices = 0; // numOfOptionsInChoice
+ TextId _choiceAnswer = TextId::kNone; // inGameMenuAnswer
+
inline bool inventoryDisabled() const {
return hasGameFlag(GAMEFLAG_INVENTORY_DISABLED) != 0;
}
@@ -115,49 +175,6 @@ public:
void setGameFlag(uint8 index, uint8 value);
- /**
- * LBA engine chapter
- * 0: Inprisoned
- * 1: Escape from the citadel
- * 2: Zoe got captured
- * 3: - looking for a young girl
- * 4: - looking for a "friend"
- * 5: The legend of Sendell
- * 6: The book of Bu
- * 7: Pirate LeBorne
- * 8: - "good day"
- * 9: - "good day"
- * 10: - ?? nothing
- * 11: - ?? nothing
- * 12: - ?? nothing
- * 13: - looking for plans
- * 14: - still looking for plans
- * 15: The final showdown - "good day"
- */
- int16 gameChapter = 0;
-
- /** Magic ball type index */
- int16 magicBallIdx = 0;
- /** Magic ball num bounce */
- int16 magicBallNumBounce = 0;
- /** Magic ball auxiliar bounce number */
- int16 magicBallAuxBounce = 0; // magicBallParam
- /** Magic level index */
- int16 magicLevelIdx = 0;
-
- /** Store the number of inventory keys */
- int16 inventoryNumKeys = 0;
- /** Store the number of inventory kashes */
- int16 inventoryNumKashes = 0;
- /** Store the number of inventory clover leafs boxes */
- int16 inventoryNumLeafsBox = 0;
- /** Store the number of inventory clover leafs */
- int16 inventoryNumLeafs = 0;
- /** Store the number of inventory magic points */
- int16 inventoryMagicPoints = 0;
- /** Store the number of gas */
- int16 inventoryNumGas = 0;
-
int16 setKeys(int16 value);
int16 setGas(int16 value);
int16 setLeafs(int16 value);
@@ -173,23 +190,6 @@ public:
void addLeafs(int16 val);
void addLeafBoxes(int16 val);
- /** Its using FunFrock Sabre */
- bool usingSabre = false;
-
- /**
- * Inventory used flags
- * 0 means never used, 1 means already used and automatic re-use
- */
- uint8 inventoryFlags[NUM_INVENTORY_ITEMS];
-
- uint8 holomapFlags[NUM_LOCATIONS]; // GV14
-
- char sceneName[30] {};
-
- TextId gameChoices[10]; // inGameMenuData
- int32 numChoices = 0; // numOfOptionsInChoice
- TextId choiceAnswer = TextId::kNone; // inGameMenuAnswer
-
/** Initialize all engine variables */
void initEngineVars();
diff --git a/engines/twine/scene/grid.cpp b/engines/twine/scene/grid.cpp
index 4c749aaf7b..d843faa111 100644
--- a/engines/twine/scene/grid.cpp
+++ b/engines/twine/scene/grid.cpp
@@ -594,9 +594,9 @@ bool Grid::drawBrickSprite(int32 index, int32 posX, int32 posY, const uint8 *ptr
const uint8 *Grid::getBlockBufferGround(const IVec3 &pos, int32 &ground) {
updateCollisionCoordinates(pos.x, pos.y, pos.z);
- const int32 tempX = _engine->_collision->collision.x;
- int32 tempY = _engine->_collision->collision.y;
- const int32 tempZ = _engine->_collision->collision.z;
+ const int32 tempX = _engine->_collision->_collision.x;
+ int32 tempY = _engine->_collision->_collision.y;
+ const int32 tempZ = _engine->_collision->_collision.z;
const uint8 *ptr = _blockBuffer + tempY * 2 + tempX * GRID_SIZE_Y * 2 + (tempZ * GRID_SIZE_X) * GRID_SIZE_Y * 2;
while (tempY) {
@@ -607,7 +607,7 @@ const uint8 *Grid::getBlockBufferGround(const IVec3 &pos, int32 &ground) {
ptr -= 2;
}
- _engine->_collision->collision.y = tempY;
+ _engine->_collision->_collision.y = tempY;
ground = (int16)((tempY + 1) * BRICK_HEIGHT);
return ptr;
@@ -702,22 +702,22 @@ void Grid::redrawGrid() {
ShapeType Grid::getBrickShape(int32 x, int32 y, int32 z) {
updateCollisionCoordinates(x, y, z);
- if (_engine->_collision->collision.x < 0 || _engine->_collision->collision.x >= GRID_SIZE_X) {
+ if (_engine->_collision->_collision.x < 0 || _engine->_collision->_collision.x >= GRID_SIZE_X) {
return ShapeType::kNone;
}
- if (_engine->_collision->collision.y <= -1) {
+ if (_engine->_collision->_collision.y <= -1) {
return ShapeType::kSolid;
}
- if (_engine->_collision->collision.y < 0 || _engine->_collision->collision.y >= GRID_SIZE_Y || _engine->_collision->collision.z < 0 || _engine->_collision->collision.z >= GRID_SIZE_Z) {
+ if (_engine->_collision->_collision.y < 0 || _engine->_collision->_collision.y >= GRID_SIZE_Y || _engine->_collision->_collision.z < 0 || _engine->_collision->_collision.z >= GRID_SIZE_Z) {
return ShapeType::kNone;
}
uint8 *blockBufferPtr = _blockBuffer;
- blockBufferPtr += _engine->_collision->collision.x * GRID_SIZE_Y * 2;
- blockBufferPtr += _engine->_collision->collision.y * 2;
- blockBufferPtr += (_engine->_collision->collision.z * GRID_SIZE_X * 2) * GRID_SIZE_Y;
+ blockBufferPtr += _engine->_collision->_collision.x * GRID_SIZE_Y * 2;
+ blockBufferPtr += _engine->_collision->_collision.y * 2;
+ blockBufferPtr += (_engine->_collision->_collision.z * GRID_SIZE_X * 2) * GRID_SIZE_Y;
uint8 blockIdx = *blockBufferPtr;
@@ -736,30 +736,30 @@ ShapeType Grid::getBrickShape(int32 x, int32 y, int32 z) {
}
void Grid::updateCollisionCoordinates(int32 x, int32 y, int32 z) {
- _engine->_collision->collision.x = (x + BRICK_HEIGHT) / BRICK_SIZE;
- _engine->_collision->collision.y = y / BRICK_HEIGHT;
- _engine->_collision->collision.z = (z + BRICK_HEIGHT) / BRICK_SIZE;
+ _engine->_collision->_collision.x = (x + BRICK_HEIGHT) / BRICK_SIZE;
+ _engine->_collision->_collision.y = y / BRICK_HEIGHT;
+ _engine->_collision->_collision.z = (z + BRICK_HEIGHT) / BRICK_SIZE;
}
ShapeType Grid::getBrickShapeFull(int32 x, int32 y, int32 z, int32 y2) {
updateCollisionCoordinates(x, y, z);
- if (_engine->_collision->collision.x < 0 || _engine->_collision->collision.x >= GRID_SIZE_X) {
+ if (_engine->_collision->_collision.x < 0 || _engine->_collision->_collision.x >= GRID_SIZE_X) {
return ShapeType::kNone;
}
- if (_engine->_collision->collision.y <= -1) {
+ if (_engine->_collision->_collision.y <= -1) {
return ShapeType::kSolid;
}
- if (_engine->_collision->collision.y < 0 || _engine->_collision->collision.y >= GRID_SIZE_Y || _engine->_collision->collision.z < 0 || _engine->_collision->collision.z >= GRID_SIZE_Z) {
+ if (_engine->_collision->_collision.y < 0 || _engine->_collision->_collision.y >= GRID_SIZE_Y || _engine->_collision->_collision.z < 0 || _engine->_collision->_collision.z >= GRID_SIZE_Z) {
return ShapeType::kNone;
}
uint8 *blockBufferPtr = _blockBuffer;
- blockBufferPtr += _engine->_collision->collision.x * GRID_SIZE_Y * 2;
- blockBufferPtr += _engine->_collision->collision.y * 2;
- blockBufferPtr += (_engine->_collision->collision.z * GRID_SIZE_X * 2) * GRID_SIZE_Y;
+ blockBufferPtr += _engine->_collision->_collision.x * GRID_SIZE_Y * 2;
+ blockBufferPtr += _engine->_collision->_collision.y * 2;
+ blockBufferPtr += (_engine->_collision->_collision.z * GRID_SIZE_X * 2) * GRID_SIZE_Y;
uint8 blockIdx = *blockBufferPtr;
@@ -775,7 +775,7 @@ ShapeType Grid::getBrickShapeFull(int32 x, int32 y, int32 z, int32 y2) {
const ShapeType brickShape = (ShapeType)*blockPtr;
const int32 newY = (y2 + (BRICK_HEIGHT - 1)) / BRICK_HEIGHT;
- int32 currY = _engine->_collision->collision.y;
+ int32 currY = _engine->_collision->_collision.y;
for (int32 i = 0; i < newY; i++) {
if (currY >= GRID_SIZE_Y) {
@@ -795,7 +795,7 @@ ShapeType Grid::getBrickShapeFull(int32 x, int32 y, int32 z, int32 y2) {
const ShapeType brickShape = (ShapeType) * (blockBufferPtr + 1);
const int32 newY = (y2 + (BRICK_HEIGHT - 1)) / BRICK_HEIGHT;
- int32 currY = _engine->_collision->collision.y;
+ int32 currY = _engine->_collision->_collision.y;
for (int32 i = 0; i < newY; i++) {
if (currY >= GRID_SIZE_Y) {
@@ -816,22 +816,22 @@ ShapeType Grid::getBrickShapeFull(int32 x, int32 y, int32 z, int32 y2) {
int32 Grid::getBrickSoundType(int32 x, int32 y, int32 z) {
updateCollisionCoordinates(x, y, z);
- if (_engine->_collision->collision.x < 0 || _engine->_collision->collision.x >= GRID_SIZE_X) {
+ if (_engine->_collision->_collision.x < 0 || _engine->_collision->_collision.x >= GRID_SIZE_X) {
return 0; // none
}
- if (_engine->_collision->collision.y <= -1) {
+ if (_engine->_collision->_collision.y <= -1) {
return 1; // solid
}
- if (_engine->_collision->collision.y < 0 || _engine->_collision->collision.y >= GRID_SIZE_Y || _engine->_collision->collision.z < 0 || _engine->_collision->collision.z >= GRID_SIZE_Z) {
+ if (_engine->_collision->_collision.y < 0 || _engine->_collision->_collision.y >= GRID_SIZE_Y || _engine->_collision->_collision.z < 0 || _engine->_collision->_collision.z >= GRID_SIZE_Z) {
return 0; // none
}
const uint8 *blockBufferPtr = _blockBuffer;
- blockBufferPtr += _engine->_collision->collision.x * GRID_SIZE_Y * 2;
- blockBufferPtr += _engine->_collision->collision.y * 2;
- blockBufferPtr += (_engine->_collision->collision.z * GRID_SIZE_X * 2) * GRID_SIZE_Y;
+ blockBufferPtr += _engine->_collision->_collision.x * GRID_SIZE_Y * 2;
+ blockBufferPtr += _engine->_collision->_collision.y * 2;
+ blockBufferPtr += (_engine->_collision->_collision.z * GRID_SIZE_X * 2) * GRID_SIZE_Y;
uint8 blockIdx = *blockBufferPtr;
@@ -852,9 +852,9 @@ int32 Grid::getBrickSoundType(int32 x, int32 y, int32 z) {
}
void Grid::centerOnActor(const ActorStruct* actor) {
- _newCamera.x = (actor->pos.x + BRICK_HEIGHT) / BRICK_SIZE;
- _newCamera.y = (actor->pos.y + BRICK_HEIGHT) / BRICK_HEIGHT;
- _newCamera.z = (actor->pos.z + BRICK_HEIGHT) / BRICK_SIZE;
+ _newCamera.x = (actor->_pos.x + BRICK_HEIGHT) / BRICK_SIZE;
+ _newCamera.y = (actor->_pos.y + BRICK_HEIGHT) / BRICK_HEIGHT;
+ _newCamera.z = (actor->_pos.z + BRICK_HEIGHT) / BRICK_SIZE;
_engine->_redraw->_reqBgRedraw = true;
}
@@ -867,14 +867,14 @@ void Grid::centerScreenOnActor() {
}
ActorStruct *actor = _engine->_scene->getActor(_engine->_scene->_currentlyFollowedActor);
- _engine->_renderer->projectPositionOnScreen(actor->pos.x - (_newCamera.x * BRICK_SIZE),
- actor->pos.y - (_newCamera.y * BRICK_HEIGHT),
- actor->pos.z - (_newCamera.z * BRICK_SIZE));
+ _engine->_renderer->projectPositionOnScreen(actor->_pos.x - (_newCamera.x * BRICK_SIZE),
+ actor->_pos.y - (_newCamera.y * BRICK_HEIGHT),
+ actor->_pos.z - (_newCamera.z * BRICK_SIZE));
// TODO: these border values should get scaled for hiher resolutions
if (_engine->_renderer->_projPos.x < 80 || _engine->_renderer->_projPos.x >= _engine->width() - 60 || _engine->_renderer->_projPos.y < 80 || _engine->_renderer->_projPos.y >= _engine->height() - 50) {
- _newCamera.x = ((actor->pos.x + BRICK_HEIGHT) / BRICK_SIZE) + (((actor->pos.x + BRICK_HEIGHT) / BRICK_SIZE) - _newCamera.x) / 2;
- _newCamera.y = actor->pos.y / BRICK_HEIGHT;
- _newCamera.z = ((actor->pos.z + BRICK_HEIGHT) / BRICK_SIZE) + (((actor->pos.z + BRICK_HEIGHT) / BRICK_SIZE) - _newCamera.z) / 2;
+ _newCamera.x = ((actor->_pos.x + BRICK_HEIGHT) / BRICK_SIZE) + (((actor->_pos.x + BRICK_HEIGHT) / BRICK_SIZE) - _newCamera.x) / 2;
+ _newCamera.y = actor->_pos.y / BRICK_HEIGHT;
+ _newCamera.z = ((actor->_pos.z + BRICK_HEIGHT) / BRICK_SIZE) + (((actor->_pos.z + BRICK_HEIGHT) / BRICK_SIZE) - _newCamera.z) / 2;
if (_newCamera.x >= GRID_SIZE_X) {
_newCamera.x = GRID_SIZE_X - 1;
diff --git a/engines/twine/scene/movements.cpp b/engines/twine/scene/movements.cpp
index 5720caa580..28a3389ccf 100644
--- a/engines/twine/scene/movements.cpp
+++ b/engines/twine/scene/movements.cpp
@@ -64,7 +64,7 @@ void Movements::setActorAngleSafe(int16 startAngle, int16 endAngle, int16 stepAn
}
void Movements::clearRealAngle(ActorStruct *actorPtr) {
- setActorAngleSafe(actorPtr->angle, actorPtr->angle, ANGLE_0, &actorPtr->move);
+ setActorAngleSafe(actorPtr->_angle, actorPtr->_angle, ANGLE_0, &actorPtr->_move);
}
void Movements::setActorAngle(int16 startAngle, int16 endAngle, int16 stepAngle, ActorMoveStruct *movePtr) {
@@ -238,9 +238,9 @@ bool Movements::processBehaviourExecution(int actorIdx) {
if (_engine->_actor->autoAggressive) {
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
_heroMoved = true;
- actor->angle = actor->move.getRealAngle(_engine->_lbaTime);
+ actor->_angle = actor->_move.getRealAngle(_engine->_lbaTime);
// TODO: previousLoopActionKey must be handled properly
- if (!_previousLoopActionKey || actor->anim == AnimationTypes::kStanding) {
+ if (!_previousLoopActionKey || actor->_anim == AnimationTypes::kStanding) {
const int32 aggresiveMode = _engine->getRandomNumber(3);
switch (aggresiveMode) {
@@ -279,24 +279,24 @@ bool Movements::processBehaviourExecution(int actorIdx) {
bool Movements::processAttackExecution(int actorIdx) {
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- if (!_engine->_gameState->usingSabre) {
+ if (!_engine->_gameState->_usingSabre) {
// Use Magic Ball
if (_engine->_gameState->hasItem(InventoryItems::kiMagicBall)) {
- if (_engine->_gameState->magicBallIdx == -1) {
+ if (_engine->_gameState->_magicBallIdx == -1) {
_engine->_animations->initAnim(AnimationTypes::kThrowBall, AnimType::kAnimationType_1, AnimationTypes::kStanding, actorIdx);
}
- actor->angle = actor->move.getRealAngle(_engine->_lbaTime);
+ actor->_angle = actor->_move.getRealAngle(_engine->_lbaTime);
return true;
}
} else if (_engine->_gameState->hasItem(InventoryItems::kiUseSabre)) {
- if (actor->body != BodyType::btSabre) {
+ if (actor->_body != BodyType::btSabre) {
_engine->_actor->initModelActor(BodyType::btSabre, actorIdx);
}
_engine->_animations->initAnim(AnimationTypes::kSabreAttack, AnimType::kAnimationType_1, AnimationTypes::kStanding, actorIdx);
- actor->angle = actor->move.getRealAngle(_engine->_lbaTime);
+ actor->_angle = actor->_move.getRealAngle(_engine->_lbaTime);
return true;
}
return false;
@@ -334,20 +334,20 @@ void Movements::processManualMovementExecution(int actorIdx) {
}
if (_engine->_input->isActionActive(TwinEActionType::TurnLeft)) {
- if (actor->anim == AnimationTypes::kStanding) {
+ if (actor->_anim == AnimationTypes::kStanding) {
_engine->_animations->initAnim(AnimationTypes::kTurnLeft, AnimType::kAnimationTypeLoop, AnimationTypes::kAnimInvalid, actorIdx);
} else {
- if (!actor->dynamicFlags.bIsRotationByAnim) {
- actor->angle = actor->move.getRealAngle(_engine->_lbaTime);
+ if (!actor->_dynamicFlags.bIsRotationByAnim) {
+ actor->_angle = actor->_move.getRealAngle(_engine->_lbaTime);
}
}
_heroMoved = true;
} else if (_engine->_input->isActionActive(TwinEActionType::TurnRight)) {
- if (actor->anim == AnimationTypes::kStanding) {
+ if (actor->_anim == AnimationTypes::kStanding) {
_engine->_animations->initAnim(AnimationTypes::kTurnRight, AnimType::kAnimationTypeLoop, AnimationTypes::kAnimInvalid, actorIdx);
} else {
- if (!actor->dynamicFlags.bIsRotationByAnim) {
- actor->angle = actor->move.getRealAngle(_engine->_lbaTime);
+ if (!actor->_dynamicFlags.bIsRotationByAnim) {
+ actor->_angle = actor->_move.getRealAngle(_engine->_lbaTime);
}
}
_heroMoved = true;
@@ -373,7 +373,7 @@ void Movements::processManualRotationExecution(int actorIdx) {
tempAngle = ANGLE_0;
}
- moveActor(actor->angle, actor->angle + tempAngle, actor->speed, &actor->move);
+ moveActor(actor->_angle, actor->_angle + tempAngle, actor->_speed, &actor->_move);
}
void Movements::processManualAction(int actorIdx) {
@@ -396,58 +396,58 @@ void Movements::processManualAction(int actorIdx) {
void Movements::processFollowAction(int actorIdx) {
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- const ActorStruct *followedActor = _engine->_scene->getActor(actor->followedActor);
- int32 newAngle = getAngleAndSetTargetActorDistance(actor->pos, followedActor->pos);
- if (actor->staticFlags.bIsSpriteActor) {
- actor->angle = newAngle;
+ const ActorStruct *followedActor = _engine->_scene->getActor(actor->_followedActor);
+ int32 newAngle = getAngleAndSetTargetActorDistance(actor->pos(), followedActor->pos());
+ if (actor->_staticFlags.bIsSpriteActor) {
+ actor->_angle = newAngle;
} else {
- moveActor(actor->angle, newAngle, actor->speed, &actor->move);
+ moveActor(actor->_angle, newAngle, actor->_speed, &actor->_move);
}
}
void Movements::processRandomAction(int actorIdx) {
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- if (actor->dynamicFlags.bIsRotationByAnim) {
+ if (actor->_dynamicFlags.bIsRotationByAnim) {
return;
}
if (actor->brickCausesDamage()) {
- moveActor(actor->angle, ClampAngle((_engine->getRandomNumber() & ANGLE_90) + (actor->angle - ANGLE_90)), actor->speed, &actor->move);
- actor->delayInMillis = _engine->getRandomNumber(300) + _engine->_lbaTime + 300;
+ moveActor(actor->_angle, ClampAngle((_engine->getRandomNumber() & ANGLE_90) + (actor->_angle - ANGLE_90)), actor->_speed, &actor->_move);
+ actor->_delayInMillis = _engine->getRandomNumber(300) + _engine->_lbaTime + 300;
_engine->_animations->initAnim(AnimationTypes::kStanding, AnimType::kAnimationTypeLoop, AnimationTypes::kAnimInvalid, actorIdx);
}
- if (!actor->move.numOfStep) {
+ if (!actor->_move.numOfStep) {
_engine->_animations->initAnim(AnimationTypes::kForward, AnimType::kAnimationTypeLoop, AnimationTypes::kAnimInvalid, actorIdx);
- if (_engine->_lbaTime > actor->delayInMillis) {
- moveActor(actor->angle, ClampAngle((_engine->getRandomNumber() & ANGLE_90) + (actor->angle - ANGLE_90)), actor->speed, &actor->move);
- actor->delayInMillis = _engine->getRandomNumber(300) + _engine->_lbaTime + 300;
+ if (_engine->_lbaTime > actor->_delayInMillis) {
+ moveActor(actor->_angle, ClampAngle((_engine->getRandomNumber() & ANGLE_90) + (actor->_angle - ANGLE_90)), actor->_speed, &actor->_move);
+ actor->_delayInMillis = _engine->getRandomNumber(300) + _engine->_lbaTime + 300;
}
}
}
void Movements::processTrackAction(int actorIdx) {
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- if (actor->positionInMoveScript == -1) {
- actor->positionInMoveScript = 0;
+ if (actor->_positionInMoveScript == -1) {
+ actor->_positionInMoveScript = 0;
}
}
void Movements::processSameXZAction(int actorIdx) {
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- const ActorStruct *followedActor = _engine->_scene->getActor(actor->followedActor);
- actor->pos.x = followedActor->pos.x;
- actor->pos.z = followedActor->pos.z;
+ const ActorStruct *followedActor = _engine->_scene->getActor(actor->_followedActor);
+ actor->_pos.x = followedActor->_pos.x;
+ actor->_pos.z = followedActor->_pos.z;
}
void Movements::processActorMovements(int32 actorIdx) {
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- if (actor->entity == -1) {
+ if (actor->_entity == -1) {
return;
}
- if (actor->dynamicFlags.bIsFalling) {
- if (actor->controlMode != ControlMode::kManual) {
+ if (actor->_dynamicFlags.bIsFalling) {
+ if (actor->_controlMode != ControlMode::kManual) {
return;
}
@@ -458,16 +458,16 @@ void Movements::processActorMovements(int32 actorIdx) {
tempAngle = -ANGLE_90;
}
- moveActor(actor->angle, actor->angle + tempAngle, actor->speed, &actor->move);
+ moveActor(actor->_angle, actor->_angle + tempAngle, actor->_speed, &actor->_move);
return;
}
- if (!actor->staticFlags.bIsSpriteActor) {
- if (actor->controlMode != ControlMode::kManual) {
- actor->angle = actor->move.getRealAngle(_engine->_lbaTime);
+ if (!actor->_staticFlags.bIsSpriteActor) {
+ if (actor->_controlMode != ControlMode::kManual) {
+ actor->_angle = actor->_move.getRealAngle(_engine->_lbaTime);
}
}
- switch (actor->controlMode) {
+ switch (actor->_controlMode) {
/**
* The Actor's Track Script is stopped. Track Script execution may be started with Life Script of
* the Actor or other Actors (with SET_TRACK(_OBJ) command). This mode does not mean the Actor
@@ -494,7 +494,7 @@ void Movements::processActorMovements(int32 actorIdx) {
processRandomAction(actorIdx);
break;
default:
- warning("Unknown control mode %d", (int)actor->controlMode);
+ warning("Unknown control mode %d", (int)actor->_controlMode);
break;
}
}
diff --git a/engines/twine/scene/scene.cpp b/engines/twine/scene/scene.cpp
index 03ba269172..4c105055ab 100644
--- a/engines/twine/scene/scene.cpp
+++ b/engines/twine/scene/scene.cpp
@@ -49,101 +49,101 @@ Scene::~Scene() {
void Scene::setActorStaticFlags(ActorStruct *act, uint32 staticFlags) {
if (staticFlags & 0x1) {
- act->staticFlags.bComputeCollisionWithObj = 1;
+ act->_staticFlags.bComputeCollisionWithObj = 1;
}
if (staticFlags & 0x2) {
- act->staticFlags.bComputeCollisionWithBricks = 1;
+ act->_staticFlags.bComputeCollisionWithBricks = 1;
}
if (staticFlags & 0x4) {
- act->staticFlags.bIsZonable = 1;
+ act->_staticFlags.bIsZonable = 1;
}
if (staticFlags & 0x8) {
- act->staticFlags.bUsesClipping = 1;
+ act->_staticFlags.bUsesClipping = 1;
}
if (staticFlags & 0x10) {
- act->staticFlags.bCanBePushed = 1;
+ act->_staticFlags.bCanBePushed = 1;
}
if (staticFlags & 0x20) {
- act->staticFlags.bComputeLowCollision = 1;
+ act->_staticFlags.bComputeLowCollision = 1;
}
if (staticFlags & 0x40) {
- act->staticFlags.bCanDrown = 1;
+ act->_staticFlags.bCanDrown = 1;
}
if (staticFlags & 0x80) {
- act->staticFlags.bComputeCollisionWithFloor = 1;
+ act->_staticFlags.bComputeCollisionWithFloor = 1;
}
if (staticFlags & 0x100) {
- act->staticFlags.bUnk0100 = 1;
+ act->_staticFlags.bUnk0100 = 1;
}
if (staticFlags & 0x200) {
- act->staticFlags.bIsHidden = 1;
+ act->_staticFlags.bIsHidden = 1;
}
if (staticFlags & 0x400) {
- act->staticFlags.bIsSpriteActor = 1;
+ act->_staticFlags.bIsSpriteActor = 1;
}
if (staticFlags & 0x800) {
- act->staticFlags.bCanFall = 1;
+ act->_staticFlags.bCanFall = 1;
}
if (staticFlags & 0x1000) {
- act->staticFlags.bDoesntCastShadow = 1;
+ act->_staticFlags.bDoesntCastShadow = 1;
}
if (staticFlags & 0x2000) {
//act->staticFlags.bIsBackgrounded = 1;
}
if (staticFlags & 0x4000) {
- act->staticFlags.bIsCarrierActor = 1;
+ act->_staticFlags.bIsCarrierActor = 1;
}
if (staticFlags & 0x8000) {
- act->staticFlags.bUseMiniZv = 1;
+ act->_staticFlags.bUseMiniZv = 1;
}
if (staticFlags & 0x10000) {
- act->staticFlags.bHasInvalidPosition = 1;
+ act->_staticFlags.bHasInvalidPosition = 1;
}
if (staticFlags & 0x20000) {
- act->staticFlags.bNoElectricShock = 1;
+ act->_staticFlags.bNoElectricShock = 1;
}
if (staticFlags & 0x40000) {
- act->staticFlags.bHasSpriteAnim3D = 1;
+ act->_staticFlags.bHasSpriteAnim3D = 1;
}
if (staticFlags & 0x80000) {
- act->staticFlags.bNoPreClipping = 1;
+ act->_staticFlags.bNoPreClipping = 1;
}
if (staticFlags & 0x100000) {
- act->staticFlags.bHasZBuffer = 1;
+ act->_staticFlags.bHasZBuffer = 1;
}
if (staticFlags & 0x200000) {
- act->staticFlags.bHasZBufferInWater = 1;
+ act->_staticFlags.bHasZBufferInWater = 1;
}
}
void Scene::setBonusParameterFlags(ActorStruct *act, uint16 bonusFlags) {
if (bonusFlags & 0x1) {
- act->bonusParameter.unk1 = 1;
+ act->_bonusParameter.unk1 = 1;
}
if (bonusFlags & 0x2) {
- act->bonusParameter.unk2 = 1;
+ act->_bonusParameter.unk2 = 1;
}
if (bonusFlags & 0x4) {
- act->bonusParameter.unk3 = 1;
+ act->_bonusParameter.unk3 = 1;
}
if (bonusFlags & 0x8) {
- act->bonusParameter.unk4 = 1;
+ act->_bonusParameter.unk4 = 1;
}
if (bonusFlags & 0x10) {
- act->bonusParameter.kashes = 1;
+ act->_bonusParameter.kashes = 1;
}
if (bonusFlags & 0x20) {
- act->bonusParameter.lifepoints = 1;
+ act->_bonusParameter.lifepoints = 1;
}
if (bonusFlags & 0x40) {
- act->bonusParameter.magicpoints = 1;
+ act->_bonusParameter.magicpoints = 1;
}
if (bonusFlags & 0x80) {
- act->bonusParameter.key = 1;
+ act->_bonusParameter.key = 1;
}
if (bonusFlags & 0x100) {
- act->bonusParameter.cloverleaf = 1;
+ act->_bonusParameter.cloverleaf = 1;
}
}
@@ -177,13 +177,13 @@ bool Scene::loadSceneLBA2() {
_sceneHeroPos.y = stream.readSint16LE();
_sceneHeroPos.z = stream.readSint16LE();
- _sceneHero->moveScriptSize = stream.readUint16LE();
- _sceneHero->moveScript = _currentScene + stream.pos();
- stream.skip(_sceneHero->moveScriptSize);
+ _sceneHero->_moveScriptSize = stream.readUint16LE();
+ _sceneHero->_moveScript = _currentScene + stream.pos();
+ stream.skip(_sceneHero->_moveScriptSize);
- _sceneHero->lifeScriptSize = stream.readUint16LE();
- _sceneHero->lifeScript = _currentScene + stream.pos();
- stream.skip(_sceneHero->lifeScriptSize);
+ _sceneHero->_lifeScriptSize = stream.readUint16LE();
+ _sceneHero->_lifeScript = _currentScene + stream.pos();
+ stream.skip(_sceneHero->_lifeScriptSize);
_sceneNumActors = stream.readUint16LE();
int cnt = 1;
@@ -194,41 +194,41 @@ bool Scene::loadSceneLBA2() {
act->loadModel(stream.readUint16LE());
- act->body = (BodyType)stream.readSint16LE();
- act->anim = (AnimationTypes)stream.readByte();
- act->sprite = stream.readUint16LE();
- act->pos.x = stream.readUint16LE();
- act->pos.y = stream.readUint16LE();
- act->pos.z = stream.readUint16LE();
- act->collisionPos = act->pos;
- act->strengthOfHit = stream.readByte();
+ act->_body = (BodyType)stream.readSint16LE();
+ act->_anim = (AnimationTypes)stream.readByte();
+ act->_sprite = stream.readUint16LE();
+ act->_pos.x = stream.readUint16LE();
+ act->_pos.y = stream.readUint16LE();
+ act->_pos.z = stream.readUint16LE();
+ act->_collisionPos = act->pos();
+ act->_strengthOfHit = stream.readByte();
setBonusParameterFlags(act, stream.readUint16LE());
- act->angle = stream.readUint16LE();
- act->speed = stream.readUint16LE();
- act->controlMode = (ControlMode)stream.readByte();
- act->cropLeft = stream.readSint16LE();
- act->delayInMillis = act->cropLeft; // TODO: this might not be needed
- act->cropTop = stream.readSint16LE();
- act->cropRight = stream.readSint16LE();
- act->cropBottom = stream.readSint16LE();
- act->followedActor = act->cropBottom; // TODO: is this needed? and valid?
- act->bonusAmount = stream.readSint16LE();
- act->talkColor = stream.readByte();
- if (act->staticFlags.bHasSpriteAnim3D) {
+ act->_angle = stream.readUint16LE();
+ act->_speed = stream.readUint16LE();
+ act->_controlMode = (ControlMode)stream.readByte();
+ act->_cropLeft = stream.readSint16LE();
+ act->_delayInMillis = act->_cropLeft; // TODO: this might not be needed
+ act->_cropTop = stream.readSint16LE();
+ act->_cropRight = stream.readSint16LE();
+ act->_cropBottom = stream.readSint16LE();
+ act->_followedActor = act->_cropBottom; // TODO: is this needed? and valid?
+ act->_bonusAmount = stream.readSint16LE();
+ act->_talkColor = stream.readByte();
+ if (act->_staticFlags.bHasSpriteAnim3D) {
/*act->spriteAnim3DNumber = */stream.readSint32LE();
/*act->spriteSizeHit = */stream.readSint16LE();
/*act->cropBottom = act->spriteSizeHit;*/
}
- act->armor = stream.readByte();
+ act->_armor = stream.readByte();
act->setLife(stream.readByte());
- act->moveScriptSize = stream.readUint16LE();
- act->moveScript = _currentScene + stream.pos();
- stream.skip(act->moveScriptSize);
+ act->_moveScriptSize = stream.readUint16LE();
+ act->_moveScript = _currentScene + stream.pos();
+ stream.skip(act->_moveScriptSize);
- act->lifeScriptSize = stream.readUint16LE();
- act->lifeScript = _currentScene + stream.pos();
- stream.skip(act->lifeScriptSize);
+ act->_lifeScriptSize = stream.readUint16LE();
+ act->_lifeScript = _currentScene + stream.pos();
+ stream.skip(act->_lifeScriptSize);
if (_engine->_debugScene->_onlyLoadActor != -1 && _engine->_debugScene->_onlyLoadActor != cnt) {
_sceneNumActors--;
@@ -307,13 +307,13 @@ bool Scene::loadSceneLBA1() {
_sceneHeroPos.y = stream.readUint16LE();
_sceneHeroPos.z = stream.readUint16LE();
- _sceneHero->moveScriptSize = stream.readUint16LE();
- _sceneHero->moveScript = _currentScene + stream.pos();
- stream.skip(_sceneHero->moveScriptSize);
+ _sceneHero->_moveScriptSize = stream.readUint16LE();
+ _sceneHero->_moveScript = _currentScene + stream.pos();
+ stream.skip(_sceneHero->_moveScriptSize);
- _sceneHero->lifeScriptSize = stream.readUint16LE();
- _sceneHero->lifeScript = _currentScene + stream.pos();
- stream.skip(_sceneHero->lifeScriptSize);
+ _sceneHero->_lifeScriptSize = stream.readUint16LE();
+ _sceneHero->_lifeScript = _currentScene + stream.pos();
+ stream.skip(_sceneHero->_lifeScriptSize);
_sceneNumActors = stream.readUint16LE();
int cnt = 1;
@@ -325,38 +325,36 @@ bool Scene::loadSceneLBA1() {
act->loadModel(stream.readUint16LE());
- act->body = (BodyType)stream.readByte();
- act->anim = (AnimationTypes)stream.readByte();
- act->sprite = stream.readUint16LE();
- act->pos.x = stream.readUint16LE();
- act->collisionPos.x = act->pos.x;
- act->pos.y = stream.readUint16LE();
- act->collisionPos.y = act->pos.y;
- act->pos.z = stream.readUint16LE();
- act->collisionPos.z = act->pos.z;
- act->strengthOfHit = stream.readByte();
+ act->_body = (BodyType)stream.readByte();
+ act->_anim = (AnimationTypes)stream.readByte();
+ act->_sprite = stream.readUint16LE();
+ act->_pos.x = stream.readUint16LE();
+ act->_pos.y = stream.readUint16LE();
+ act->_pos.z = stream.readUint16LE();
+ act->_collisionPos = act->pos();
+ act->_strengthOfHit = stream.readByte();
setBonusParameterFlags(act, stream.readUint16LE());
- act->angle = stream.readUint16LE();
- act->speed = stream.readUint16LE();
- act->controlMode = (ControlMode)stream.readUint16LE();
- act->cropLeft = stream.readSint16LE();
- act->delayInMillis = act->cropLeft; // TODO: this might not be needed
- act->cropTop = stream.readSint16LE();
- act->cropRight = stream.readSint16LE();
- act->cropBottom = stream.readSint16LE();
- act->followedActor = act->cropBottom; // TODO: is this needed? and valid?
- act->bonusAmount = stream.readByte();
- act->talkColor = stream.readByte();
- act->armor = stream.readByte();
+ act->_angle = stream.readUint16LE();
+ act->_speed = stream.readUint16LE();
+ act->_controlMode = (ControlMode)stream.readUint16LE();
+ act->_cropLeft = stream.readSint16LE();
+ act->_delayInMillis = act->_cropLeft; // TODO: this might not be needed
+ act->_cropTop = stream.readSint16LE();
+ act->_cropRight = stream.readSint16LE();
+ act->_cropBottom = stream.readSint16LE();
+ act->_followedActor = act->_cropBottom; // TODO: is this needed? and valid?
+ act->_bonusAmount = stream.readByte();
+ act->_talkColor = stream.readByte();
+ act->_armor = stream.readByte();
act->setLife(stream.readByte());
- act->moveScriptSize = stream.readUint16LE();
- act->moveScript = _currentScene + stream.pos();
- stream.skip(act->moveScriptSize);
+ act->_moveScriptSize = stream.readUint16LE();
+ act->_moveScript = _currentScene + stream.pos();
+ stream.skip(act->_moveScriptSize);
- act->lifeScriptSize = stream.readUint16LE();
- act->lifeScript = _currentScene + stream.pos();
- stream.skip(act->lifeScriptSize);
+ act->_lifeScriptSize = stream.readUint16LE();
+ act->_lifeScript = _currentScene + stream.pos();
+ stream.skip(act->_lifeScriptSize);
if (_engine->_debugScene->_onlyLoadActor != -1 && _engine->_debugScene->_onlyLoadActor != cnt) {
_sceneNumActors--;
@@ -398,8 +396,8 @@ bool Scene::loadSceneLBA1() {
switch (_currentSceneIdx) {
case LBA1SceneId::Hamalayi_Mountains_landing_place:
assert(_sceneNumActors >= 22);
- _sceneActors[21].pos.x = _sceneActors[21].collisionPos.x = 0x1b00;
- _sceneActors[21].pos.z = _sceneActors[21].collisionPos.z = 0x300;
+ _sceneActors[21]._pos.x = _sceneActors[21]._collisionPos.x = 0x1b00;
+ _sceneActors[21]._pos.z = _sceneActors[21]._collisionPos.z = 0x300;
break;
#if 0
case LBA1SceneId::Principal_Island_outside_the_fortress:
@@ -479,11 +477,11 @@ void Scene::changeScene() {
_currentSceneIdx = _needChangeScene;
if (_engine->isLBA1() && _currentSceneIdx >= LBA1SceneId::Citadel_Island_Prison && _currentSceneIdx < LBA1SceneId::SceneIdMax) {
- snprintf(_engine->_gameState->sceneName, sizeof(_engine->_gameState->sceneName), "%i %s", _currentSceneIdx, _engine->_holomap->getLocationName(_currentSceneIdx));
+ snprintf(_engine->_gameState->_sceneName, sizeof(_engine->_gameState->_sceneName), "%i %s", _currentSceneIdx, _engine->_holomap->getLocationName(_currentSceneIdx));
} else {
- snprintf(_engine->_gameState->sceneName, sizeof(_engine->_gameState->sceneName), "%i", _currentSceneIdx);
+ snprintf(_engine->_gameState->_sceneName, sizeof(_engine->_gameState->_sceneName), "%i", _currentSceneIdx);
}
- debug(2, "Entering scene %s (came from %i)", _engine->_gameState->sceneName, _previousSceneIdx);
+ debug(2, "Entering scene %s (came from %i)", _engine->_gameState->_sceneName, _previousSceneIdx);
if (_needChangeScene == LBA1SceneId::Polar_Island_end_scene) {
_engine->unlockAchievement("LBA_ACH_001");
@@ -500,11 +498,11 @@ void Scene::changeScene() {
resetScene();
_engine->_actor->loadHeroEntities();
- _sceneHero->controlMode = ControlMode::kManual;
- _sceneHero->zone = -1;
- _sceneHero->positionInLifeScript = 0;
- _sceneHero->positionInMoveScript = -1;
- _sceneHero->labelIdx = -1;
+ _sceneHero->_controlMode = ControlMode::kManual;
+ _sceneHero->_zone = -1;
+ _sceneHero->_positionInLifeScript = 0;
+ _sceneHero->_positionInMoveScript = -1;
+ _sceneHero->_labelIdx = -1;
initScene(_needChangeScene);
@@ -528,15 +526,14 @@ void Scene::changeScene() {
_newHeroPos = _sceneHeroPos;
}
- _sceneHero->pos.x = _newHeroPos.x;
- _sceneHero->pos.y = _heroYBeforeFall = _newHeroPos.y;
- _sceneHero->pos.z = _newHeroPos.z;
+ _sceneHero->_pos = _newHeroPos;
+ _heroYBeforeFall = _newHeroPos.y;
_engine->_renderer->setLightVector(_alphaLight, _betaLight, ANGLE_0);
if (_previousSceneIdx != SCENE_CEILING_GRID_FADE_1 && _previousSceneIdx != _needChangeScene) {
_engine->_actor->previousHeroBehaviour = _engine->_actor->heroBehaviour;
- _engine->_actor->previousHeroAngle = _sceneHero->angle;
+ _engine->_actor->previousHeroAngle = _sceneHero->_angle;
_engine->autoSave();
}
@@ -546,7 +543,7 @@ void Scene::changeScene() {
_engine->_actor->initActor(a);
}
- _engine->_gameState->inventoryNumKeys = 0;
+ _engine->_gameState->_inventoryNumKeys = 0;
_engine->_disableScreenRecenter = false;
_heroPositionType = ScenePositionType::kNoPosition;
_sampleAmbienceTime = 0;
@@ -554,7 +551,7 @@ void Scene::changeScene() {
ActorStruct *followedActor = getActor(_currentlyFollowedActor);
_engine->_grid->centerOnActor(followedActor);
- _engine->_gameState->magicBallIdx = -1;
+ _engine->_gameState->_magicBallIdx = -1;
_engine->_movements->_heroMoved = true;
_engine->_grid->_useCellingGrid = -1;
_engine->_grid->_cellingGridIdx = -1;
@@ -648,11 +645,11 @@ void Scene::processZoneExtraBonus(ZoneStruct *zone) {
}
const int16 amount = zone->infoData.Bonus.amount;
- const int32 angle = _engine->_movements->getAngleAndSetTargetActorDistance(ABS(zone->maxs.x + zone->mins.x) / 2, ABS(zone->maxs.z + zone->mins.z) / 2, _sceneHero->pos.x, _sceneHero->pos.z);
+ const int32 angle = _engine->_movements->getAngleAndSetTargetActorDistance(ABS(zone->maxs.x + zone->mins.x) / 2, ABS(zone->maxs.z + zone->mins.z) / 2, _sceneHero->_pos.x, _sceneHero->_pos.z);
const int32 index = _engine->_extra->addExtraBonus(ABS(zone->maxs.x + zone->mins.x) / 2, zone->maxs.y, ABS(zone->maxs.z + zone->mins.z) / 2, ANGLE_63, angle, bonusSprite, amount);
if (index != -1) {
- _engine->_extra->extraList[index].type |= ExtraType::TIME_IN;
+ _engine->_extra->_extraList[index].type |= ExtraType::TIME_IN;
zone->infoData.Bonus.used = 1; // set as used
}
}
@@ -660,11 +657,11 @@ void Scene::processZoneExtraBonus(ZoneStruct *zone) {
void Scene::processActorZones(int32 actorIdx) {
ActorStruct *actor = &_sceneActors[actorIdx];
- int32 currentX = actor->pos.x;
- int32 currentY = actor->pos.y;
- int32 currentZ = actor->pos.z;
+ int32 currentX = actor->_pos.x;
+ int32 currentY = actor->_pos.y;
+ int32 currentZ = actor->_pos.z;
- actor->zone = -1;
+ actor->_zone = -1;
bool tmpCellingGrid = false;
if (IS_HERO(actorIdx)) {
@@ -680,11 +677,11 @@ void Scene::processActorZones(int32 actorIdx) {
(currentZ >= zone->mins.z && currentZ <= zone->maxs.z)) {
switch (zone->type) {
case ZoneType::kCube:
- if (IS_HERO(actorIdx) && actor->life > 0) {
+ if (IS_HERO(actorIdx) && actor->_life > 0) {
_needChangeScene = zone->infoData.ChangeScene.newSceneIdx;
- _zoneHeroPos.x = actor->pos.x - zone->mins.x + zone->infoData.ChangeScene.x;
- _zoneHeroPos.y = actor->pos.y - zone->mins.y + zone->infoData.ChangeScene.y;
- _zoneHeroPos.z = actor->pos.z - zone->mins.z + zone->infoData.ChangeScene.z;
+ _zoneHeroPos.x = actor->_pos.x - zone->mins.x + zone->infoData.ChangeScene.x;
+ _zoneHeroPos.y = actor->_pos.y - zone->mins.y + zone->infoData.ChangeScene.y;
+ _zoneHeroPos.z = actor->_pos.z - zone->mins.z + zone->infoData.ChangeScene.z;
_heroPositionType = ScenePositionType::kZone;
}
break;
@@ -700,7 +697,7 @@ void Scene::processActorZones(int32 actorIdx) {
}
break;
case ZoneType::kSceneric:
- actor->zone = zone->infoData.Sceneric.zoneIdx;
+ actor->_zone = zone->infoData.Sceneric.zoneIdx;
break;
case ZoneType::kGrid:
if (_currentlyFollowedActor == actorIdx) {
@@ -735,15 +732,15 @@ void Scene::processActorZones(int32 actorIdx) {
}
break;
case ZoneType::kLadder:
- if (IS_HERO(actorIdx) && _engine->_actor->heroBehaviour != HeroBehaviourType::kProtoPack && (actor->anim == AnimationTypes::kForward || actor->anim == AnimationTypes::kTopLadder || actor->anim == AnimationTypes::kClimbLadder)) {
- _engine->_movements->rotateActor(actor->boudingBox.mins.x, actor->boudingBox.mins.z, actor->angle + ANGLE_360 + ANGLE_135);
+ if (IS_HERO(actorIdx) && _engine->_actor->heroBehaviour != HeroBehaviourType::kProtoPack && (actor->_anim == AnimationTypes::kForward || actor->_anim == AnimationTypes::kTopLadder || actor->_anim == AnimationTypes::kClimbLadder)) {
+ _engine->_movements->rotateActor(actor->_boudingBox.mins.x, actor->_boudingBox.mins.z, actor->_angle + ANGLE_360 + ANGLE_135);
_engine->_renderer->_destPos.x += _engine->_movements->_processActor.x;
_engine->_renderer->_destPos.z += _engine->_movements->_processActor.z;
if (_engine->_renderer->_destPos.x >= 0 && _engine->_renderer->_destPos.z >= 0 && _engine->_renderer->_destPos.x <= 0x7E00 && _engine->_renderer->_destPos.z <= 0x7E00) {
- if (_engine->_grid->getBrickShape(_engine->_renderer->_destPos.x, actor->pos.y + ANGLE_90, _engine->_renderer->_destPos.z) != ShapeType::kNone) {
+ if (_engine->_grid->getBrickShape(_engine->_renderer->_destPos.x, actor->_pos.y + ANGLE_90, _engine->_renderer->_destPos.z) != ShapeType::kNone) {
_currentActorInZone = true;
- if (actor->pos.y >= ABS(zone->mins.y + zone->maxs.y) / 2) {
+ if (actor->_pos.y >= ABS(zone->mins.y + zone->maxs.y) / 2) {
_engine->_animations->initAnim(AnimationTypes::kTopLadder, AnimType::kAnimationType_2, AnimationTypes::kStanding, actorIdx); // reached end of ladder
} else {
_engine->_animations->initAnim(AnimationTypes::kClimbLadder, AnimType::kAnimationTypeLoop, AnimationTypes::kAnimInvalid, actorIdx); // go up in ladder
diff --git a/engines/twine/script/script_life_v1.cpp b/engines/twine/script/script_life_v1.cpp
index af8428d7fa..5559c88d16 100644
--- a/engines/twine/script/script_life_v1.cpp
+++ b/engines/twine/script/script_life_v1.cpp
@@ -57,9 +57,9 @@ struct LifeScriptContext {
Common::MemorySeekableReadWriteStream stream;
uint8 *opcodePtr; // local opcode script pointer
- LifeScriptContext(int32 _actorIdx, ActorStruct *_actor) : actorIdx(_actorIdx), actor(_actor), stream(_actor->lifeScript, _actor->lifeScriptSize) {
- assert(actor->positionInLifeScript >= 0);
- stream.skip(_actor->positionInLifeScript);
+ LifeScriptContext(int32 _actorIdx, ActorStruct *_actor) : actorIdx(_actorIdx), actor(_actor), stream(_actor->_lifeScript, _actor->_lifeScriptSize) {
+ assert(actor->_positionInLifeScript >= 0);
+ stream.skip(_actor->_positionInLifeScript);
updateOpcodePos();
}
@@ -68,7 +68,7 @@ struct LifeScriptContext {
}
void updateOpcodePos() {
- opcodePtr = actor->lifeScript + stream.pos();
+ opcodePtr = actor->_lifeScript + stream.pos();
}
};
@@ -138,18 +138,18 @@ static int32 processLifeConditions(TwinEEngine *engine, LifeScriptContext &ctx)
switch (conditionOpcode) {
case kcCOL:
- if (ctx.actor->life <= 0) {
+ if (ctx.actor->_life <= 0) {
engine->_scene->_currentScriptValue = -1;
} else {
- engine->_scene->_currentScriptValue = ctx.actor->collision;
+ engine->_scene->_currentScriptValue = ctx.actor->_collision;
}
break;
case kcCOL_OBJ: {
int32 actorIdx = ctx.stream.readByte();
- if (engine->_scene->getActor(actorIdx)->life <= 0) {
+ if (engine->_scene->getActor(actorIdx)->_life <= 0) {
engine->_scene->_currentScriptValue = -1;
} else {
- engine->_scene->_currentScriptValue = engine->_scene->getActor(actorIdx)->collision;
+ engine->_scene->_currentScriptValue = engine->_scene->getActor(actorIdx)->_collision;
}
break;
}
@@ -157,12 +157,12 @@ static int32 processLifeConditions(TwinEEngine *engine, LifeScriptContext &ctx)
int32 actorIdx = ctx.stream.readByte();
conditionValueSize = 2;
ActorStruct *otherActor = engine->_scene->getActor(actorIdx);
- if (!otherActor->dynamicFlags.bIsDead) {
- if (ABS(ctx.actor->pos.y - otherActor->pos.y) >= 1500) {
+ if (!otherActor->_dynamicFlags.bIsDead) {
+ if (ABS(ctx.actor->_pos.y - otherActor->_pos.y) >= 1500) {
engine->_scene->_currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
} else {
// Returns int32, so we check for integer overflow
- int32 distance = engine->_movements->getDistance2D(ctx.actor->pos, otherActor->pos);
+ int32 distance = engine->_movements->getDistance2D(ctx.actor->pos(), otherActor->pos());
if (ABS(distance) > MAX_TARGET_ACTOR_DISTANCE) {
engine->_scene->_currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
} else {
@@ -175,35 +175,35 @@ static int32 processLifeConditions(TwinEEngine *engine, LifeScriptContext &ctx)
break;
}
case kcZONE:
- engine->_scene->_currentScriptValue = ctx.actor->zone;
+ engine->_scene->_currentScriptValue = ctx.actor->_zone;
break;
case kcZONE_OBJ: {
int32 actorIdx = ctx.stream.readByte();
- engine->_scene->_currentScriptValue = engine->_scene->getActor(actorIdx)->zone;
+ engine->_scene->_currentScriptValue = engine->_scene->getActor(actorIdx)->_zone;
break;
}
case kcBODY:
- engine->_scene->_currentScriptValue = (int16)ctx.actor->body;
+ engine->_scene->_currentScriptValue = (int16)ctx.actor->_body;
break;
case kcBODY_OBJ: {
int32 actorIdx = ctx.stream.readByte();
- engine->_scene->_currentScriptValue = (int16)engine->_scene->getActor(actorIdx)->body;
+ engine->_scene->_currentScriptValue = (int16)engine->_scene->getActor(actorIdx)->_body;
break;
}
case kcANIM:
- engine->_scene->_currentScriptValue = (int16)ctx.actor->anim;
+ engine->_scene->_currentScriptValue = (int16)ctx.actor->_anim;
break;
case kcANIM_OBJ: {
int32 actorIdx = ctx.stream.readByte();
- engine->_scene->_currentScriptValue = (int16)engine->_scene->getActor(actorIdx)->anim;
+ engine->_scene->_currentScriptValue = (int16)engine->_scene->getActor(actorIdx)->_anim;
break;
}
case kcL_TRACK:
- engine->_scene->_currentScriptValue = ctx.actor->labelIdx;
+ engine->_scene->_currentScriptValue = ctx.actor->_labelIdx;
break;
case kcL_TRACK_OBJ: {
int32 actorIdx = ctx.stream.readByte();
- engine->_scene->_currentScriptValue = engine->_scene->getActor(actorIdx)->labelIdx;
+ engine->_scene->_currentScriptValue = engine->_scene->getActor(actorIdx)->_labelIdx;
break;
}
case kcFLAG_CUBE: {
@@ -218,9 +218,9 @@ static int32 processLifeConditions(TwinEEngine *engine, LifeScriptContext &ctx)
conditionValueSize = 2;
- if (!targetActor->dynamicFlags.bIsDead) {
- if (ABS(targetActor->pos.y - ctx.actor->pos.y) < 1500) {
- newAngle = engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->pos, targetActor->pos);
+ if (!targetActor->_dynamicFlags.bIsDead) {
+ if (ABS(targetActor->_pos.y - ctx.actor->_pos.y) < 1500) {
+ newAngle = engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->pos(), targetActor->pos());
if (ABS(engine->_movements->_targetActorDistance) > MAX_TARGET_ACTOR_DISTANCE) {
engine->_movements->_targetActorDistance = MAX_TARGET_ACTOR_DISTANCE;
}
@@ -229,7 +229,7 @@ static int32 processLifeConditions(TwinEEngine *engine, LifeScriptContext &ctx)
}
if (IS_HERO(targetActorIdx)) {
- int32 heroAngle = ClampAngle(ctx.actor->angle + ANGLE_360 + ANGLE_45 - newAngle + ANGLE_360);
+ int32 heroAngle = ClampAngle(ctx.actor->_angle + ANGLE_360 + ANGLE_45 - newAngle + ANGLE_360);
if (ABS(heroAngle) > ANGLE_90) {
engine->_scene->_currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
@@ -238,7 +238,7 @@ static int32 processLifeConditions(TwinEEngine *engine, LifeScriptContext &ctx)
}
} else {
if (engine->_actor->heroBehaviour == HeroBehaviourType::kDiscrete) {
- int32 heroAngle = ClampAngle(ctx.actor->angle + ANGLE_360 + ANGLE_45 - newAngle + ANGLE_360);
+ int32 heroAngle = ClampAngle(ctx.actor->_angle + ANGLE_360 + ANGLE_45 - newAngle + ANGLE_360);
if (ABS(heroAngle) > ANGLE_90) {
engine->_scene->_currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
@@ -255,7 +255,7 @@ static int32 processLifeConditions(TwinEEngine *engine, LifeScriptContext &ctx)
break;
}
case kcHIT_BY:
- engine->_scene->_currentScriptValue = ctx.actor->hitBy;
+ engine->_scene->_currentScriptValue = ctx.actor->_hitBy;
break;
case kcACTION:
engine->_scene->_currentScriptValue = engine->_movements->shouldTriggerZoneAction() ? 1 : 0;
@@ -276,25 +276,25 @@ static int32 processLifeConditions(TwinEEngine *engine, LifeScriptContext &ctx)
break;
}
case kcLIFE_POINT:
- engine->_scene->_currentScriptValue = ctx.actor->life;
+ engine->_scene->_currentScriptValue = ctx.actor->_life;
break;
case kcLIFE_POINT_OBJ: {
int32 actorIdx = ctx.stream.readByte();
- engine->_scene->_currentScriptValue = engine->_scene->getActor(actorIdx)->life;
+ engine->_scene->_currentScriptValue = engine->_scene->getActor(actorIdx)->_life;
break;
}
case kcNUM_LITTLE_KEYS:
- engine->_scene->_currentScriptValue = engine->_gameState->inventoryNumKeys;
+ engine->_scene->_currentScriptValue = engine->_gameState->_inventoryNumKeys;
break;
case kcNUM_GOLD_PIECES:
conditionValueSize = 2;
- engine->_scene->_currentScriptValue = engine->_gameState->inventoryNumKashes;
+ engine->_scene->_currentScriptValue = engine->_gameState->_inventoryNumKashes;
break;
case kcBEHAVIOUR:
engine->_scene->_currentScriptValue = (int16)engine->_actor->heroBehaviour;
break;
case kcCHAPTER:
- engine->_scene->_currentScriptValue = engine->_gameState->gameChapter;
+ engine->_scene->_currentScriptValue = engine->_gameState->_gameChapter;
break;
case kcDISTANCE_3D: {
int32 targetActorIdx;
@@ -305,9 +305,9 @@ static int32 processLifeConditions(TwinEEngine *engine, LifeScriptContext &ctx)
conditionValueSize = 2;
- if (!targetActor->dynamicFlags.bIsDead) {
+ if (!targetActor->_dynamicFlags.bIsDead) {
// Returns int32, so we check for integer overflow
- int32 distance = engine->_movements->getDistance3D(ctx.actor->pos, targetActor->pos);
+ int32 distance = engine->_movements->getDistance3D(ctx.actor->pos(), targetActor->pos());
if (ABS(distance) > MAX_TARGET_ACTOR_DISTANCE) {
engine->_scene->_currentScriptValue = MAX_TARGET_ACTOR_DISTANCE;
} else {
@@ -319,10 +319,10 @@ static int32 processLifeConditions(TwinEEngine *engine, LifeScriptContext &ctx)
break;
}
case 23:
- engine->_scene->_currentScriptValue = engine->_gameState->magicLevelIdx;
+ engine->_scene->_currentScriptValue = engine->_gameState->_magicLevelIdx;
break;
case 24:
- engine->_scene->_currentScriptValue = engine->_gameState->inventoryMagicPoints;
+ engine->_scene->_currentScriptValue = engine->_gameState->_inventoryMagicPoints;
break;
case kcUSE_INVENTORY: {
int32 item = ctx.stream.readByte();
@@ -331,7 +331,7 @@ static int32 processLifeConditions(TwinEEngine *engine, LifeScriptContext &ctx)
if (item == engine->_loopInventoryItem) {
engine->_scene->_currentScriptValue = 1;
} else {
- if (engine->_gameState->inventoryFlags[item] == 1 && engine->_gameState->hasItem((InventoryItems)item)) {
+ if (engine->_gameState->_inventoryFlags[item] == 1 && engine->_gameState->hasItem((InventoryItems)item)) {
engine->_scene->_currentScriptValue = 1;
} else {
engine->_scene->_currentScriptValue = 0;
@@ -348,13 +348,13 @@ static int32 processLifeConditions(TwinEEngine *engine, LifeScriptContext &ctx)
}
case kcCHOICE:
conditionValueSize = 2;
- engine->_scene->_currentScriptValue = (int16)engine->_gameState->choiceAnswer;
+ engine->_scene->_currentScriptValue = (int16)engine->_gameState->_choiceAnswer;
break;
case kcFUEL:
- engine->_scene->_currentScriptValue = engine->_gameState->inventoryNumGas;
+ engine->_scene->_currentScriptValue = engine->_gameState->_inventoryNumGas;
break;
case kcCARRIED_BY:
- engine->_scene->_currentScriptValue = ctx.actor->standOn;
+ engine->_scene->_currentScriptValue = ctx.actor->_standOn;
break;
case kcCDROM:
engine->_scene->_currentScriptValue = 1;
@@ -435,7 +435,7 @@ static int32 lEMPTY(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x00
*/
static int32 lEND(TwinEEngine *engine, LifeScriptContext &ctx) {
- ctx.actor->positionInLifeScript = -1;
+ ctx.actor->_positionInLifeScript = -1;
return 1; // break script
}
@@ -609,7 +609,7 @@ static int32 lANIM_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x15
*/
static int32 lSET_LIFE(TwinEEngine *engine, LifeScriptContext &ctx) {
- ctx.actor->positionInLifeScript = ctx.stream.readSint16LE(); // offset
+ ctx.actor->_positionInLifeScript = ctx.stream.readSint16LE(); // offset
return 0;
}
@@ -619,7 +619,7 @@ static int32 lSET_LIFE(TwinEEngine *engine, LifeScriptContext &ctx) {
*/
static int32 lSET_LIFE_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
int32 otherActorIdx = ctx.stream.readByte();
- engine->_scene->getActor(otherActorIdx)->positionInLifeScript = ctx.stream.readSint16LE(); // offset
+ engine->_scene->getActor(otherActorIdx)->_positionInLifeScript = ctx.stream.readSint16LE(); // offset
return 0;
}
@@ -628,7 +628,7 @@ static int32 lSET_LIFE_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x17
*/
static int32 lSET_TRACK(TwinEEngine *engine, LifeScriptContext &ctx) {
- ctx.actor->positionInMoveScript = ctx.stream.readSint16LE(); // offset
+ ctx.actor->_positionInMoveScript = ctx.stream.readSint16LE(); // offset
return 0;
}
@@ -638,7 +638,7 @@ static int32 lSET_TRACK(TwinEEngine *engine, LifeScriptContext &ctx) {
*/
static int32 lSET_TRACK_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
int32 otherActorIdx = ctx.stream.readByte();
- engine->_scene->getActor(otherActorIdx)->positionInMoveScript = ctx.stream.readSint16LE(); // offset
+ engine->_scene->getActor(otherActorIdx)->_positionInMoveScript = ctx.stream.readSint16LE(); // offset
return 0;
}
@@ -653,7 +653,7 @@ static int32 lMESSAGE(TwinEEngine *engine, LifeScriptContext &ctx) {
if (engine->_text->_showDialogueBubble) {
engine->_redraw->drawBubble(ctx.actorIdx);
}
- engine->_text->setFontCrossColor(ctx.actor->talkColor);
+ engine->_text->setFontCrossColor(ctx.actor->_talkColor);
engine->_scene->_talkingActor = ctx.actorIdx;
engine->_text->drawTextProgressive(textIdx);
if (engine->_scene->_currentSceneIdx == LBA1SceneId::Principal_Island_Library && engine->_scene->_talkingActor == 8)/* && (*(short *)lifeScriptPosition == 0xe2 [226])*/ {
@@ -671,7 +671,7 @@ static int32 lMESSAGE(TwinEEngine *engine, LifeScriptContext &ctx) {
*/
static int32 lFALLABLE(TwinEEngine *engine, LifeScriptContext &ctx) {
const int32 flag = ctx.stream.readByte();
- ctx.actor->staticFlags.bCanFall = flag & 1;
+ ctx.actor->_staticFlags.bCanFall = flag & 1;
return 0;
}
@@ -682,9 +682,9 @@ static int32 lFALLABLE(TwinEEngine *engine, LifeScriptContext &ctx) {
static int32 lSET_DIRMODE(TwinEEngine *engine, LifeScriptContext &ctx) {
const int32 controlMode = ctx.stream.readByte();
- ctx.actor->controlMode = (ControlMode)controlMode;
- if (ctx.actor->controlMode == ControlMode::kFollow || ctx.actor->controlMode == ControlMode::kFollow2) {
- ctx.actor->followedActor = ctx.stream.readByte();
+ ctx.actor->_controlMode = (ControlMode)controlMode;
+ if (ctx.actor->_controlMode == ControlMode::kFollow || ctx.actor->_controlMode == ControlMode::kFollow2) {
+ ctx.actor->_followedActor = ctx.stream.readByte();
}
return 0;
@@ -699,9 +699,9 @@ static int32 lSET_DIRMODE_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
const int32 controlMode = ctx.stream.readByte();
ActorStruct *otherActor = engine->_scene->getActor(otherActorIdx);
- otherActor->controlMode = (ControlMode)controlMode;
- if (otherActor->controlMode == ControlMode::kFollow || ctx.actor->controlMode == ControlMode::kFollow2) {
- otherActor->followedActor = ctx.stream.readByte();
+ otherActor->_controlMode = (ControlMode)controlMode;
+ if (otherActor->_controlMode == ControlMode::kFollow || ctx.actor->_controlMode == ControlMode::kFollow2) {
+ otherActor->_followedActor = ctx.stream.readByte();
}
return 0;
@@ -763,7 +763,7 @@ static int32 lCOMPORTEMENT(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x21
*/
static int32 lSET_COMPORTEMENT(TwinEEngine *engine, LifeScriptContext &ctx) {
- ctx.actor->positionInLifeScript = ctx.stream.readSint16LE();
+ ctx.actor->_positionInLifeScript = ctx.stream.readSint16LE();
return 0;
}
@@ -773,7 +773,7 @@ static int32 lSET_COMPORTEMENT(TwinEEngine *engine, LifeScriptContext &ctx) {
*/
static int32 lSET_COMPORTEMENT_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
const int32 otherActorIdx = ctx.stream.readByte();
- engine->_scene->getActor(otherActorIdx)->positionInLifeScript = ctx.stream.readSint16LE();
+ engine->_scene->getActor(otherActorIdx)->_positionInLifeScript = ctx.stream.readSint16LE();
return 0;
}
@@ -805,9 +805,9 @@ static int32 lKILL_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
engine->_actor->processActorCarrier(otherActorIdx);
ActorStruct *otherActor = engine->_scene->getActor(otherActorIdx);
- otherActor->dynamicFlags.bIsDead = 1;
- otherActor->entity = -1;
- otherActor->zone = -1;
+ otherActor->_dynamicFlags.bIsDead = 1;
+ otherActor->_entity = -1;
+ otherActor->_zone = -1;
otherActor->setLife(0);
return 0;
@@ -819,9 +819,9 @@ static int32 lKILL_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
*/
static int32 lSUICIDE(TwinEEngine *engine, LifeScriptContext &ctx) {
engine->_actor->processActorCarrier(ctx.actorIdx);
- ctx.actor->dynamicFlags.bIsDead = 1;
- ctx.actor->entity = -1;
- ctx.actor->zone = -1;
+ ctx.actor->_dynamicFlags.bIsDead = 1;
+ ctx.actor->_entity = -1;
+ ctx.actor->_zone = -1;
ctx.actor->setLife(0);
return 0;
@@ -843,7 +843,7 @@ static int32 lUSE_ONE_LITTLE_KEY(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x28
*/
static int32 lGIVE_GOLD_PIECES(TwinEEngine *engine, LifeScriptContext &ctx) {
- int16 oldNumKashes = engine->_gameState->inventoryNumKashes;
+ int16 oldNumKashes = engine->_gameState->_inventoryNumKashes;
bool hideRange = false;
int16 kashes = ctx.stream.readSint16LE();
@@ -855,7 +855,7 @@ static int32 lGIVE_GOLD_PIECES(TwinEEngine *engine, LifeScriptContext &ctx) {
OverlayListStruct *overlay = &engine->_redraw->overlayList[i];
if (overlay->info0 != -1 && overlay->type == OverlayType::koNumberRange) {
overlay->info0 = engine->_collision->getAverageValue(overlay->info1, overlay->info0, 100, overlay->lifeTime - engine->_lbaTime - 50);
- overlay->info1 = engine->_gameState->inventoryNumKashes;
+ overlay->info1 = engine->_gameState->_inventoryNumKashes;
overlay->lifeTime = engine->_lbaTime + 150;
hideRange = true;
break;
@@ -863,7 +863,7 @@ static int32 lGIVE_GOLD_PIECES(TwinEEngine *engine, LifeScriptContext &ctx) {
}
if (!hideRange) {
- engine->_redraw->addOverlay(OverlayType::koNumberRange, oldNumKashes, 50, 20, engine->_gameState->inventoryNumKashes, OverlayPosType::koNormal, 3);
+ engine->_redraw->addOverlay(OverlayType::koNumberRange, oldNumKashes, 50, 20, engine->_gameState->_inventoryNumKashes, OverlayPosType::koNormal, 3);
}
return 0;
@@ -874,7 +874,7 @@ static int32 lGIVE_GOLD_PIECES(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x29
*/
static int32 lEND_LIFE(TwinEEngine *engine, LifeScriptContext &ctx) {
- ctx.actor->positionInLifeScript = -1;
+ ctx.actor->_positionInLifeScript = -1;
return 1; // break;
}
@@ -883,8 +883,8 @@ static int32 lEND_LIFE(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x2A
*/
static int32 lSTOP_L_TRACK(TwinEEngine *engine, LifeScriptContext &ctx) {
- ctx.actor->pausedTrackPtr = ctx.actor->currentLabelPtr;
- ctx.actor->positionInMoveScript = -1;
+ ctx.actor->_pausedTrackPtr = ctx.actor->_currentLabelPtr;
+ ctx.actor->_positionInMoveScript = -1;
return 0;
}
@@ -893,7 +893,7 @@ static int32 lSTOP_L_TRACK(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x2B
*/
static int32 lRESTORE_L_TRACK(TwinEEngine *engine, LifeScriptContext &ctx) {
- ctx.actor->positionInMoveScript = ctx.actor->pausedTrackPtr;
+ ctx.actor->_positionInMoveScript = ctx.actor->_pausedTrackPtr;
return 0;
}
@@ -909,7 +909,7 @@ static int32 lMESSAGE_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
if (engine->_text->_showDialogueBubble) {
engine->_redraw->drawBubble(otherActorIdx);
}
- engine->_text->setFontCrossColor(engine->_scene->getActor(otherActorIdx)->talkColor);
+ engine->_text->setFontCrossColor(engine->_scene->getActor(otherActorIdx)->_talkColor);
engine->_scene->_talkingActor = otherActorIdx;
engine->_text->drawTextProgressive(textIdx);
engine->unfreezeTime();
@@ -923,7 +923,7 @@ static int32 lMESSAGE_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x2D
*/
static int32 lINC_CHAPTER(TwinEEngine *engine, LifeScriptContext &ctx) {
- engine->_gameState->gameChapter++;
+ engine->_gameState->_gameChapter++;
return 0;
}
@@ -947,10 +947,10 @@ static int32 lFOUND_OBJECT(TwinEEngine *engine, LifeScriptContext &ctx) {
static int32 lSET_DOOR_LEFT(TwinEEngine *engine, LifeScriptContext &ctx) {
int32 distance = ctx.stream.readSint16LE();
- ctx.actor->angle = ANGLE_270;
- ctx.actor->pos.x = ctx.actor->lastPos.x - distance;
- ctx.actor->dynamicFlags.bIsSpriteMoving = 0;
- ctx.actor->speed = 0;
+ ctx.actor->_angle = ANGLE_270;
+ ctx.actor->_pos.x = ctx.actor->_lastPos.x - distance;
+ ctx.actor->_dynamicFlags.bIsSpriteMoving = 0;
+ ctx.actor->_speed = 0;
return 0;
}
@@ -962,10 +962,10 @@ static int32 lSET_DOOR_LEFT(TwinEEngine *engine, LifeScriptContext &ctx) {
static int32 lSET_DOOR_RIGHT(TwinEEngine *engine, LifeScriptContext &ctx) {
int32 distance = ctx.stream.readSint16LE();
- ctx.actor->angle = ANGLE_90;
- ctx.actor->pos.x = ctx.actor->lastPos.x + distance;
- ctx.actor->dynamicFlags.bIsSpriteMoving = 0;
- ctx.actor->speed = 0;
+ ctx.actor->_angle = ANGLE_90;
+ ctx.actor->_pos.x = ctx.actor->_lastPos.x + distance;
+ ctx.actor->_dynamicFlags.bIsSpriteMoving = 0;
+ ctx.actor->_speed = 0;
return 0;
}
@@ -977,10 +977,10 @@ static int32 lSET_DOOR_RIGHT(TwinEEngine *engine, LifeScriptContext &ctx) {
static int32 lSET_DOOR_UP(TwinEEngine *engine, LifeScriptContext &ctx) {
int32 distance = ctx.stream.readSint16LE();
- ctx.actor->angle = ANGLE_180;
- ctx.actor->pos.z = ctx.actor->lastPos.z - distance;
- ctx.actor->dynamicFlags.bIsSpriteMoving = 0;
- ctx.actor->speed = 0;
+ ctx.actor->_angle = ANGLE_180;
+ ctx.actor->_pos.z = ctx.actor->_lastPos.z - distance;
+ ctx.actor->_dynamicFlags.bIsSpriteMoving = 0;
+ ctx.actor->_speed = 0;
return 0;
}
@@ -992,10 +992,10 @@ static int32 lSET_DOOR_UP(TwinEEngine *engine, LifeScriptContext &ctx) {
static int32 lSET_DOOR_DOWN(TwinEEngine *engine, LifeScriptContext &ctx) {
int32 distance = ctx.stream.readSint16LE();
- ctx.actor->angle = ANGLE_0;
- ctx.actor->pos.z = ctx.actor->lastPos.z + distance;
- ctx.actor->dynamicFlags.bIsSpriteMoving = 0;
- ctx.actor->speed = 0;
+ ctx.actor->_angle = ANGLE_0;
+ ctx.actor->_pos.z = ctx.actor->_lastPos.z + distance;
+ ctx.actor->_dynamicFlags.bIsSpriteMoving = 0;
+ ctx.actor->_speed = 0;
return 0;
}
@@ -1007,12 +1007,12 @@ static int32 lSET_DOOR_DOWN(TwinEEngine *engine, LifeScriptContext &ctx) {
static int32 lGIVE_BONUS(TwinEEngine *engine, LifeScriptContext &ctx) {
int32 flag = ctx.stream.readByte();
- if (ctx.actor->bonusParameter.cloverleaf || ctx.actor->bonusParameter.kashes || ctx.actor->bonusParameter.key || ctx.actor->bonusParameter.lifepoints || ctx.actor->bonusParameter.magicpoints) {
+ if (ctx.actor->_bonusParameter.cloverleaf || ctx.actor->_bonusParameter.kashes || ctx.actor->_bonusParameter.key || ctx.actor->_bonusParameter.lifepoints || ctx.actor->_bonusParameter.magicpoints) {
engine->_actor->processActorExtraBonus(ctx.actorIdx);
}
if (flag != 0) {
- ctx.actor->bonusParameter.unk1 = 1;
+ ctx.actor->_bonusParameter.unk1 = 1;
}
return 0;
@@ -1036,9 +1036,9 @@ static int32 lCHANGE_CUBE(TwinEEngine *engine, LifeScriptContext &ctx) {
static int32 lOBJ_COL(TwinEEngine *engine, LifeScriptContext &ctx) {
int32 collision = ctx.stream.readByte();
if (collision != 0) {
- ctx.actor->staticFlags.bComputeCollisionWithObj = 1;
+ ctx.actor->_staticFlags.bComputeCollisionWithObj = 1;
} else {
- ctx.actor->staticFlags.bComputeCollisionWithObj = 0;
+ ctx.actor->_staticFlags.bComputeCollisionWithObj = 0;
}
return 0;
}
@@ -1050,14 +1050,14 @@ static int32 lOBJ_COL(TwinEEngine *engine, LifeScriptContext &ctx) {
static int32 lBRICK_COL(TwinEEngine *engine, LifeScriptContext &ctx) {
int32 collision = ctx.stream.readByte();
- ctx.actor->staticFlags.bComputeCollisionWithBricks = 0;
- ctx.actor->staticFlags.bComputeLowCollision = 0;
+ ctx.actor->_staticFlags.bComputeCollisionWithBricks = 0;
+ ctx.actor->_staticFlags.bComputeLowCollision = 0;
if (collision == 1) {
- ctx.actor->staticFlags.bComputeCollisionWithBricks = 1;
+ ctx.actor->_staticFlags.bComputeCollisionWithBricks = 1;
} else if (collision == 2) {
- ctx.actor->staticFlags.bComputeCollisionWithBricks = 1;
- ctx.actor->staticFlags.bComputeLowCollision = 1;
+ ctx.actor->_staticFlags.bComputeCollisionWithBricks = 1;
+ ctx.actor->_staticFlags.bComputeLowCollision = 1;
}
return 0;
}
@@ -1082,7 +1082,7 @@ static int32 lOR_IF(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x38
*/
static int32 lINVISIBLE(TwinEEngine *engine, LifeScriptContext &ctx) {
- ctx.actor->staticFlags.bIsHidden = ctx.stream.readByte();
+ ctx.actor->_staticFlags.bIsHidden = ctx.stream.readByte();
return 0;
}
@@ -1117,13 +1117,8 @@ static int32 lPOS_POINT(TwinEEngine *engine, LifeScriptContext &ctx) {
int32 trackIdx = ctx.stream.readByte();
const IVec3 &sp = engine->_scene->_sceneTracks[trackIdx];
- engine->_renderer->_destPos.x = sp.x;
- engine->_renderer->_destPos.y = sp.y;
- engine->_renderer->_destPos.z = sp.z;
-
- ctx.actor->pos.x = sp.x;
- ctx.actor->pos.y = sp.y;
- ctx.actor->pos.z = sp.z;
+ engine->_renderer->_destPos = sp;
+ ctx.actor->_pos = sp;
return 0;
}
@@ -1133,7 +1128,7 @@ static int32 lPOS_POINT(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x3B
*/
static int32 lSET_MAGIC_LEVEL(TwinEEngine *engine, LifeScriptContext &ctx) {
- engine->_gameState->magicLevelIdx = ctx.stream.readByte();
+ engine->_gameState->_magicLevelIdx = ctx.stream.readByte();
engine->_gameState->setMaxMagicPoints();
return 0;
}
@@ -1170,7 +1165,7 @@ static int32 lSUB_LIFE_POINT_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
ActorStruct *otherActor = engine->_scene->getActor(otherActorIdx);
otherActor->addLife(-lifeValue);
- if (otherActor->life < 0) {
+ if (otherActor->_life < 0) {
otherActor->setLife(0);
}
@@ -1184,7 +1179,7 @@ static int32 lSUB_LIFE_POINT_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
static int32 lHIT_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
int32 otherActorIdx = ctx.stream.readByte();
int32 strengthOfHit = ctx.stream.readByte();
- engine->_actor->hitActor(ctx.actorIdx, otherActorIdx, strengthOfHit, engine->_scene->getActor(otherActorIdx)->angle);
+ engine->_actor->hitActor(ctx.actorIdx, otherActorIdx, strengthOfHit, engine->_scene->getActor(otherActorIdx)->_angle);
return 0;
}
@@ -1239,7 +1234,7 @@ static int32 lINC_CLOVER_BOX(TwinEEngine *engine, LifeScriptContext &ctx) {
static int32 lSET_USED_INVENTORY(TwinEEngine *engine, LifeScriptContext &ctx) {
int32 item = ctx.stream.readByte();
if (item < InventoryItems::kKeypad) { // TODO: this looks wrong - why only up to keypad?
- engine->_gameState->inventoryFlags[item] = 1;
+ engine->_gameState->_inventoryFlags[item] = 1;
}
return 0;
}
@@ -1250,7 +1245,7 @@ static int32 lSET_USED_INVENTORY(TwinEEngine *engine, LifeScriptContext &ctx) {
*/
static int32 lADD_CHOICE(TwinEEngine *engine, LifeScriptContext &ctx) {
TextId choiceIdx = (TextId)ctx.stream.readSint16LE();
- engine->_gameState->gameChoices[engine->_gameState->numChoices++] = choiceIdx;
+ engine->_gameState->_gameChoices[engine->_gameState->_numChoices++] = choiceIdx;
return 0;
}
@@ -1265,9 +1260,9 @@ static int32 lASK_CHOICE(TwinEEngine *engine, LifeScriptContext &ctx) {
if (engine->_text->_showDialogueBubble) {
engine->_redraw->drawBubble(ctx.actorIdx);
}
- engine->_text->setFontCrossColor(ctx.actor->talkColor);
+ engine->_text->setFontCrossColor(ctx.actor->_talkColor);
engine->_gameState->processGameChoices(choiceIdx);
- engine->_gameState->numChoices = 0;
+ engine->_gameState->_numChoices = 0;
engine->unfreezeTime();
engine->_redraw->redrawEngineActions(true);
@@ -1286,7 +1281,7 @@ static int32 lBIG_MESSAGE(TwinEEngine *engine, LifeScriptContext &ctx) {
if (engine->_text->_showDialogueBubble) {
engine->_redraw->drawBubble(ctx.actorIdx);
}
- engine->_text->setFontCrossColor(ctx.actor->talkColor);
+ engine->_text->setFontCrossColor(ctx.actor->_talkColor);
engine->_scene->_talkingActor = ctx.actorIdx;
engine->_text->drawTextProgressive(textIdx);
engine->_text->textClipSmall();
@@ -1304,9 +1299,9 @@ static int32 lINIT_PINGOUIN(TwinEEngine *engine, LifeScriptContext &ctx) {
int32 pingouinActor = ctx.stream.readByte();
engine->_scene->_mecaPinguinIdx = pingouinActor;
ActorStruct *mecaPinguin = engine->_scene->getActor(pingouinActor);
- mecaPinguin->dynamicFlags.bIsDead = 1;
- mecaPinguin->entity = -1;
- mecaPinguin->zone = -1;
+ mecaPinguin->_dynamicFlags.bIsDead = 1;
+ mecaPinguin->_entity = -1;
+ mecaPinguin->_zone = -1;
return 0;
}
@@ -1405,7 +1400,7 @@ static int32 lFULL_POINT(TwinEEngine *engine, LifeScriptContext &ctx) {
*/
static int32 lBETA(TwinEEngine *engine, LifeScriptContext &ctx) {
int32 newAngle = ctx.stream.readSint16LE();
- ctx.actor->angle = ToAngle(newAngle);
+ ctx.actor->_angle = ToAngle(newAngle);
engine->_movements->clearRealAngle(ctx.actor);
return 0;
}
@@ -1507,7 +1502,7 @@ static int32 lEXPLODE_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
const int32 otherActorIdx = ctx.stream.readByte();
const ActorStruct *otherActor = engine->_scene->getActor(otherActorIdx);
- engine->_extra->addExtraExplode(otherActor->pos.x, otherActor->pos.y, otherActor->pos.z); // RECHECK this
+ engine->_extra->addExtraExplode(otherActor->pos()); // RECHECK this
return 0;
}
@@ -1542,9 +1537,9 @@ static int32 lASK_CHOICE_OBJ(TwinEEngine *engine, LifeScriptContext &ctx) {
if (engine->_text->_showDialogueBubble) {
engine->_redraw->drawBubble(otherActorIdx);
}
- engine->_text->setFontCrossColor(engine->_scene->getActor(otherActorIdx)->talkColor);
+ engine->_text->setFontCrossColor(engine->_scene->getActor(otherActorIdx)->_talkColor);
engine->_gameState->processGameChoices(choiceIdx);
- engine->_gameState->numChoices = 0;
+ engine->_gameState->_numChoices = 0;
engine->unfreezeTime();
engine->_redraw->redrawEngineActions(true);
@@ -1609,8 +1604,8 @@ static int32 lMESSAGE_SENDELL(TwinEEngine *engine, LifeScriptContext &ctx) {
static int32 lANIM_SET(TwinEEngine *engine, LifeScriptContext &ctx) {
const AnimationTypes animIdx = (AnimationTypes)ctx.stream.readByte();
- ctx.actor->anim = AnimationTypes::kAnimNone;
- ctx.actor->previousAnimIdx = -1;
+ ctx.actor->_anim = AnimationTypes::kAnimNone;
+ ctx.actor->_previousAnimIdx = -1;
engine->_animations->initAnim(animIdx, AnimType::kAnimationTypeLoop, AnimationTypes::kStanding, ctx.actorIdx);
return 0;
@@ -1630,7 +1625,7 @@ static int32 lHOLOMAP_TRAJ(TwinEEngine *engine, LifeScriptContext &ctx) {
* @note Opcode @c 0x61
*/
static int32 lGAME_OVER(TwinEEngine *engine, LifeScriptContext &ctx) {
- engine->_scene->_sceneHero->dynamicFlags.bAnimEnded = 1;
+ engine->_scene->_sceneHero->_dynamicFlags.bAnimEnded = 1;
engine->_scene->_sceneHero->setLife(0);
engine->_gameState->setLeafs(0);
return 1; // break
@@ -1648,7 +1643,7 @@ static int32 lTHE_END(TwinEEngine *engine, LifeScriptContext &ctx) {
engine->_scene->_currentSceneIdx = LBA1SceneId::Polar_Island_Final_Battle;
engine->_actor->heroBehaviour = engine->_actor->previousHeroBehaviour;
engine->_scene->_newHeroPos.x = -1;
- engine->_scene->_sceneHero->angle = engine->_actor->previousHeroAngle;
+ engine->_scene->_sceneHero->_angle = engine->_actor->previousHeroAngle;
engine->autoSave();
return 1; // break;
}
diff --git a/engines/twine/script/script_move_v1.cpp b/engines/twine/script/script_move_v1.cpp
index 0433fe9198..197f69b91e 100644
--- a/engines/twine/script/script_move_v1.cpp
+++ b/engines/twine/script/script_move_v1.cpp
@@ -44,9 +44,9 @@ struct MoveScriptContext {
Common::MemorySeekableReadWriteStream stream;
- MoveScriptContext(int32 _actorIdx, ActorStruct *_actor) : actorIdx(_actorIdx), actor(_actor), stream(actor->moveScript, actor->moveScriptSize) {
- assert(actor->positionInMoveScript >= 0);
- stream.skip(actor->positionInMoveScript);
+ MoveScriptContext(int32 _actorIdx, ActorStruct *_actor) : actorIdx(_actorIdx), actor(_actor), stream(actor->_moveScript, actor->_moveScriptSize) {
+ assert(actor->_positionInMoveScript >= 0);
+ stream.skip(actor->_positionInMoveScript);
}
void undo(int32 bytes) {
@@ -74,7 +74,7 @@ struct ScriptMoveFunction {
* @note Opcode @c 0x00
*/
static int32 mEND(TwinEEngine *engine, MoveScriptContext &ctx) {
- ctx.actor->positionInMoveScript = -1;
+ ctx.actor->_positionInMoveScript = -1;
return 1;
}
@@ -121,12 +121,12 @@ static int32 mGOTO_POINT(TwinEEngine *engine, MoveScriptContext &ctx) {
engine->_renderer->_destPos.y = sp.y;
engine->_renderer->_destPos.z = sp.z;
- const int32 newAngle = engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->pos.x, ctx.actor->pos.z, sp.x, sp.z);
+ const int32 newAngle = engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->_pos.x, ctx.actor->_pos.z, sp.x, sp.z);
- if (ctx.actor->staticFlags.bIsSpriteActor) {
- ctx.actor->angle = newAngle;
+ if (ctx.actor->_staticFlags.bIsSpriteActor) {
+ ctx.actor->_angle = newAngle;
} else {
- engine->_movements->moveActor(ctx.actor->angle, newAngle, ctx.actor->speed, &ctx.actor->move);
+ engine->_movements->moveActor(ctx.actor->_angle, newAngle, ctx.actor->_speed, &ctx.actor->_move);
}
if (engine->_movements->_targetActorDistance > 500) {
@@ -142,7 +142,7 @@ static int32 mGOTO_POINT(TwinEEngine *engine, MoveScriptContext &ctx) {
* @note Opcode @c 0x05
*/
static int32 mWAIT_ANIM(TwinEEngine *engine, MoveScriptContext &ctx) {
- if (!ctx.actor->dynamicFlags.bAnimEnded) {
+ if (!ctx.actor->_dynamicFlags.bAnimEnded) {
ctx.undo(0);
} else {
engine->_movements->clearRealAngle(ctx.actor);
@@ -155,7 +155,7 @@ static int32 mWAIT_ANIM(TwinEEngine *engine, MoveScriptContext &ctx) {
* @note Opcode @c 0x06
*/
static int32 mLOOP(TwinEEngine *engine, MoveScriptContext &ctx) {
- ctx.actor->positionInMoveScript = 0;
+ ctx.actor->_positionInMoveScript = 0;
ctx.stream.seek(0);
return 0;
}
@@ -166,14 +166,14 @@ static int32 mLOOP(TwinEEngine *engine, MoveScriptContext &ctx) {
*/
static int32 mANGLE(TwinEEngine *engine, MoveScriptContext &ctx) {
const int16 angle = ToAngle(ctx.stream.readSint16LE());
- if (ctx.actor->staticFlags.bIsSpriteActor) {
+ if (ctx.actor->_staticFlags.bIsSpriteActor) {
return 0;
}
engine->_scene->_currentScriptValue = angle;
- if (ctx.actor->move.numOfStep == 0) {
- engine->_movements->moveActor(ctx.actor->angle, angle, ctx.actor->speed, &ctx.actor->move);
+ if (ctx.actor->_move.numOfStep == 0) {
+ engine->_movements->moveActor(ctx.actor->_angle, angle, ctx.actor->_speed, &ctx.actor->_move);
}
- if (ctx.actor->angle == angle) {
+ if (ctx.actor->_angle == angle) {
engine->_movements->clearRealAngle(ctx.actor);
return 0;
}
@@ -193,13 +193,11 @@ static int32 mPOS_POINT(TwinEEngine *engine, MoveScriptContext &ctx) {
engine->_renderer->_destPos.y = sp.y;
engine->_renderer->_destPos.z = sp.z;
- if (ctx.actor->staticFlags.bIsSpriteActor) {
- ctx.actor->speed = 0;
+ if (ctx.actor->_staticFlags.bIsSpriteActor) {
+ ctx.actor->_speed = 0;
}
- ctx.actor->pos.x = sp.x;
- ctx.actor->pos.y = sp.y;
- ctx.actor->pos.z = sp.z;
+ ctx.actor->_pos = sp;
return 0;
}
@@ -209,10 +207,10 @@ static int32 mPOS_POINT(TwinEEngine *engine, MoveScriptContext &ctx) {
* @note Opcode @c 0x09
*/
static int32 mLABEL(TwinEEngine *engine, MoveScriptContext &ctx) {
- ctx.actor->labelIdx = ctx.stream.readByte();
- ctx.actor->currentLabelPtr = ctx.stream.pos() - 2;
- if (engine->_scene->_currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->actorIdx == 2 &&
- (ctx.actor->labelIdx == 0 || ctx.actor->labelIdx == 1)) {
+ ctx.actor->_labelIdx = ctx.stream.readByte();
+ ctx.actor->_currentLabelPtr = ctx.stream.pos() - 2;
+ if (engine->_scene->_currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->_actorIdx == 2 &&
+ (ctx.actor->_labelIdx == 0 || ctx.actor->_labelIdx == 1)) {
engine->unlockAchievement("LBA_ACH_004");
}
return 0;
@@ -225,7 +223,7 @@ static int32 mLABEL(TwinEEngine *engine, MoveScriptContext &ctx) {
static int32 mGOTO(TwinEEngine *engine, MoveScriptContext &ctx) {
const int16 pos = ctx.stream.readSint16LE();
if (pos == -1) {
- ctx.actor->positionInMoveScript = -1;
+ ctx.actor->_positionInMoveScript = -1;
return 1;
}
ctx.stream.seek(pos);
@@ -237,7 +235,7 @@ static int32 mGOTO(TwinEEngine *engine, MoveScriptContext &ctx) {
* @note Opcode @c 0x0B
*/
static int32 mSTOP(TwinEEngine *engine, MoveScriptContext &ctx) {
- ctx.actor->positionInMoveScript = -1;
+ ctx.actor->_positionInMoveScript = -1;
return 1;
}
@@ -249,16 +247,14 @@ static int32 mGOTO_SYM_POINT(TwinEEngine *engine, MoveScriptContext &ctx) {
engine->_scene->_currentScriptValue = ctx.stream.readByte();
const IVec3 &sp = engine->_scene->_sceneTracks[engine->_scene->_currentScriptValue];
- engine->_renderer->_destPos.x = sp.x;
- engine->_renderer->_destPos.y = sp.y;
- engine->_renderer->_destPos.z = sp.z;
+ engine->_renderer->_destPos = sp;
- const int32 newAngle = ANGLE_180 + engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->pos.x, ctx.actor->pos.z, sp.x, sp.z);
+ const int32 newAngle = ANGLE_180 + engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->_pos.x, ctx.actor->_pos.z, sp.x, sp.z);
- if (ctx.actor->staticFlags.bIsSpriteActor) {
- ctx.actor->angle = newAngle;
+ if (ctx.actor->_staticFlags.bIsSpriteActor) {
+ ctx.actor->_angle = newAngle;
} else {
- engine->_movements->moveActor(ctx.actor->angle, newAngle, ctx.actor->speed, &ctx.actor->move);
+ engine->_movements->moveActor(ctx.actor->_angle, newAngle, ctx.actor->_speed, &ctx.actor->_move);
}
if (engine->_movements->_targetActorDistance > 500) {
@@ -277,7 +273,7 @@ static int32 mWAIT_NUM_ANIM(TwinEEngine *engine, MoveScriptContext &ctx) {
bool abortMove = false;
const int32 animRepeats = ctx.stream.readByte();
int32 animPos = ctx.stream.readByte();
- if (ctx.actor->dynamicFlags.bAnimEnded) {
+ if (ctx.actor->_dynamicFlags.bAnimEnded) {
animPos++;
if (animPos == animRepeats) {
@@ -305,7 +301,7 @@ static int32 mWAIT_NUM_ANIM(TwinEEngine *engine, MoveScriptContext &ctx) {
*/
static int32 mSAMPLE(TwinEEngine *engine, MoveScriptContext &ctx) {
int32 sampleIdx = ctx.stream.readSint16LE();
- engine->_sound->playSample(sampleIdx, 1, ctx.actor->pos, ctx.actorIdx);
+ engine->_sound->playSample(sampleIdx, 1, ctx.actor->pos(), ctx.actorIdx);
return 0;
}
@@ -315,7 +311,7 @@ static int32 mSAMPLE(TwinEEngine *engine, MoveScriptContext &ctx) {
*/
static int32 mGOTO_POINT_3D(TwinEEngine *engine, MoveScriptContext &ctx) {
const int32 trackId = ctx.stream.readByte();
- if (!ctx.actor->staticFlags.bIsSpriteActor) {
+ if (!ctx.actor->_staticFlags.bIsSpriteActor) {
return 0;
}
@@ -326,16 +322,14 @@ static int32 mGOTO_POINT_3D(TwinEEngine *engine, MoveScriptContext &ctx) {
engine->_renderer->_destPos.y = sp.y;
engine->_renderer->_destPos.z = sp.z;
- ctx.actor->angle = engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->pos.x, ctx.actor->pos.z, sp.x, sp.z);
- ctx.actor->spriteActorRotation = engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->pos.y, 0, sp.y, engine->_movements->_targetActorDistance);
+ ctx.actor->_angle = engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->_pos.x, ctx.actor->_pos.z, sp.x, sp.z);
+ ctx.actor->_spriteActorRotation = engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->_pos.y, 0, sp.y, engine->_movements->_targetActorDistance);
if (engine->_movements->_targetActorDistance > 100) {
ctx.undo(1);
return 1;
}
- ctx.actor->pos.x = sp.x;
- ctx.actor->pos.y = sp.y;
- ctx.actor->pos.z = sp.z;
+ ctx.actor->_pos = sp;
return 0;
}
@@ -345,10 +339,10 @@ static int32 mGOTO_POINT_3D(TwinEEngine *engine, MoveScriptContext &ctx) {
* @note Opcode @c 0x10
*/
static int32 mSPEED(TwinEEngine *engine, MoveScriptContext &ctx) {
- ctx.actor->speed = ctx.stream.readSint16LE();
+ ctx.actor->_speed = ctx.stream.readSint16LE();
- if (ctx.actor->staticFlags.bIsSpriteActor) {
- engine->_movements->setActorAngle(ANGLE_0, ctx.actor->speed, ANGLE_17, &ctx.actor->move);
+ if (ctx.actor->_staticFlags.bIsSpriteActor) {
+ engine->_movements->setActorAngle(ANGLE_0, ctx.actor->_speed, ANGLE_17, &ctx.actor->_move);
}
return 0;
@@ -360,16 +354,16 @@ static int32 mSPEED(TwinEEngine *engine, MoveScriptContext &ctx) {
*/
static int32 mBACKGROUND(TwinEEngine *engine, MoveScriptContext &ctx) {
if (ctx.stream.readByte() != 0) {
- if (!ctx.actor->staticFlags.bIsBackgrounded) {
- ctx.actor->staticFlags.bIsBackgrounded = 1;
- if (ctx.actor->dynamicFlags.bIsVisible) {
+ if (!ctx.actor->_staticFlags.bIsBackgrounded) {
+ ctx.actor->_staticFlags.bIsBackgrounded = 1;
+ if (ctx.actor->_dynamicFlags.bIsVisible) {
engine->_redraw->_reqBgRedraw = true;
}
}
} else {
- if (ctx.actor->staticFlags.bIsBackgrounded) {
- ctx.actor->staticFlags.bIsBackgrounded = 0;
- if (ctx.actor->dynamicFlags.bIsVisible) {
+ if (ctx.actor->_staticFlags.bIsBackgrounded) {
+ ctx.actor->_staticFlags.bIsBackgrounded = 0;
+ if (ctx.actor->_dynamicFlags.bIsVisible) {
engine->_redraw->_reqBgRedraw = true;
}
}
@@ -419,9 +413,9 @@ static int32 mNO_BODY(TwinEEngine *engine, MoveScriptContext &ctx) {
static int32 mBETA(TwinEEngine *engine, MoveScriptContext &ctx) {
const int16 beta = ctx.stream.readSint16LE();
- ctx.actor->angle = beta;
+ ctx.actor->_angle = beta;
- if (ctx.actor->staticFlags.bIsSpriteActor) {
+ if (ctx.actor->_staticFlags.bIsSpriteActor) {
engine->_movements->clearRealAngle(ctx.actor);
}
@@ -434,14 +428,14 @@ static int32 mBETA(TwinEEngine *engine, MoveScriptContext &ctx) {
*/
static int32 mOPEN_LEFT(TwinEEngine *engine, MoveScriptContext &ctx) {
const int16 doorStatus = ctx.stream.readSint16LE();
- if (ctx.actor->staticFlags.bIsSpriteActor && ctx.actor->staticFlags.bUsesClipping) {
- ctx.actor->angle = ANGLE_270;
- ctx.actor->doorStatus = doorStatus;
- ctx.actor->dynamicFlags.bIsSpriteMoving = 1;
- ctx.actor->speed = 1000;
- engine->_movements->setActorAngle(ANGLE_0, ANGLE_351, ANGLE_17, &ctx.actor->move);
- }
- if (engine->_scene->_currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->actorIdx == 16) {
+ if (ctx.actor->_staticFlags.bIsSpriteActor && ctx.actor->_staticFlags.bUsesClipping) {
+ ctx.actor->_angle = ANGLE_270;
+ ctx.actor->_doorStatus = doorStatus;
+ ctx.actor->_dynamicFlags.bIsSpriteMoving = 1;
+ ctx.actor->_speed = 1000;
+ engine->_movements->setActorAngle(ANGLE_0, ANGLE_351, ANGLE_17, &ctx.actor->_move);
+ }
+ if (engine->_scene->_currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->_actorIdx == 16) {
engine->unlockAchievement("LBA_ACH_009");
}
return 0;
@@ -453,14 +447,14 @@ static int32 mOPEN_LEFT(TwinEEngine *engine, MoveScriptContext &ctx) {
*/
static int32 mOPEN_RIGHT(TwinEEngine *engine, MoveScriptContext &ctx) {
const int16 doorStatus = ctx.stream.readSint16LE();
- if (ctx.actor->staticFlags.bIsSpriteActor && ctx.actor->staticFlags.bUsesClipping) {
- ctx.actor->angle = ANGLE_90;
- ctx.actor->doorStatus = doorStatus;
- ctx.actor->dynamicFlags.bIsSpriteMoving = 1;
- ctx.actor->speed = 1000;
- engine->_movements->setActorAngle(ANGLE_0, ANGLE_351, ANGLE_17, &ctx.actor->move);
- }
- if (engine->_scene->_currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->actorIdx == 16) {
+ if (ctx.actor->_staticFlags.bIsSpriteActor && ctx.actor->_staticFlags.bUsesClipping) {
+ ctx.actor->_angle = ANGLE_90;
+ ctx.actor->_doorStatus = doorStatus;
+ ctx.actor->_dynamicFlags.bIsSpriteMoving = 1;
+ ctx.actor->_speed = 1000;
+ engine->_movements->setActorAngle(ANGLE_0, ANGLE_351, ANGLE_17, &ctx.actor->_move);
+ }
+ if (engine->_scene->_currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->_actorIdx == 16) {
engine->unlockAchievement("LBA_ACH_009");
}
return 0;
@@ -472,14 +466,14 @@ static int32 mOPEN_RIGHT(TwinEEngine *engine, MoveScriptContext &ctx) {
*/
static int32 mOPEN_UP(TwinEEngine *engine, MoveScriptContext &ctx) {
const int16 doorStatus = ctx.stream.readSint16LE();
- if (ctx.actor->staticFlags.bIsSpriteActor && ctx.actor->staticFlags.bUsesClipping) {
- ctx.actor->angle = ANGLE_180;
- ctx.actor->doorStatus = doorStatus;
- ctx.actor->dynamicFlags.bIsSpriteMoving = 1;
- ctx.actor->speed = 1000;
- engine->_movements->setActorAngle(ANGLE_0, ANGLE_351, ANGLE_17, &ctx.actor->move);
- }
- if (engine->_scene->_currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->actorIdx == 16) {
+ if (ctx.actor->_staticFlags.bIsSpriteActor && ctx.actor->_staticFlags.bUsesClipping) {
+ ctx.actor->_angle = ANGLE_180;
+ ctx.actor->_doorStatus = doorStatus;
+ ctx.actor->_dynamicFlags.bIsSpriteMoving = 1;
+ ctx.actor->_speed = 1000;
+ engine->_movements->setActorAngle(ANGLE_0, ANGLE_351, ANGLE_17, &ctx.actor->_move);
+ }
+ if (engine->_scene->_currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->_actorIdx == 16) {
engine->unlockAchievement("LBA_ACH_009");
}
return 0;
@@ -491,14 +485,14 @@ static int32 mOPEN_UP(TwinEEngine *engine, MoveScriptContext &ctx) {
*/
static int32 mOPEN_DOWN(TwinEEngine *engine, MoveScriptContext &ctx) {
const int16 doorStatus = ctx.stream.readSint16LE();
- if (ctx.actor->staticFlags.bIsSpriteActor && ctx.actor->staticFlags.bUsesClipping) {
- ctx.actor->angle = ANGLE_0;
- ctx.actor->doorStatus = doorStatus;
- ctx.actor->dynamicFlags.bIsSpriteMoving = 1;
- ctx.actor->speed = 1000;
- engine->_movements->setActorAngle(ANGLE_0, ANGLE_351, ANGLE_17, &ctx.actor->move);
- }
- if (engine->_scene->_currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->actorIdx == 16) {
+ if (ctx.actor->_staticFlags.bIsSpriteActor && ctx.actor->_staticFlags.bUsesClipping) {
+ ctx.actor->_angle = ANGLE_0;
+ ctx.actor->_doorStatus = doorStatus;
+ ctx.actor->_dynamicFlags.bIsSpriteMoving = 1;
+ ctx.actor->_speed = 1000;
+ engine->_movements->setActorAngle(ANGLE_0, ANGLE_351, ANGLE_17, &ctx.actor->_move);
+ }
+ if (engine->_scene->_currentSceneIdx == LBA1SceneId::Proxima_Island_Museum && ctx.actor->_actorIdx == 16) {
engine->unlockAchievement("LBA_ACH_009");
}
return 0;
@@ -509,11 +503,11 @@ static int32 mOPEN_DOWN(TwinEEngine *engine, MoveScriptContext &ctx) {
* @note Opcode @c 0x19
*/
static int32 mCLOSE(TwinEEngine *engine, MoveScriptContext &ctx) {
- if (ctx.actor->staticFlags.bIsSpriteActor && ctx.actor->staticFlags.bUsesClipping) {
- ctx.actor->doorStatus = 0;
- ctx.actor->dynamicFlags.bIsSpriteMoving = 1;
- ctx.actor->speed = -1000;
- engine->_movements->setActorAngle(ANGLE_0, -ANGLE_351, ANGLE_17, &ctx.actor->move);
+ if (ctx.actor->_staticFlags.bIsSpriteActor && ctx.actor->_staticFlags.bUsesClipping) {
+ ctx.actor->_doorStatus = 0;
+ ctx.actor->_dynamicFlags.bIsSpriteMoving = 1;
+ ctx.actor->_speed = -1000;
+ engine->_movements->setActorAngle(ANGLE_0, -ANGLE_351, ANGLE_17, &ctx.actor->_move);
}
return 0;
}
@@ -523,8 +517,8 @@ static int32 mCLOSE(TwinEEngine *engine, MoveScriptContext &ctx) {
* @note Opcode @c 0x1A
*/
static int32 mWAIT_DOOR(TwinEEngine *engine, MoveScriptContext &ctx) {
- if (ctx.actor->staticFlags.bIsSpriteActor && ctx.actor->staticFlags.bUsesClipping) {
- if (ctx.actor->speed) {
+ if (ctx.actor->_staticFlags.bIsSpriteActor && ctx.actor->_staticFlags.bUsesClipping) {
+ if (ctx.actor->_speed) {
ctx.undo(0);
return 1;
}
@@ -538,7 +532,7 @@ static int32 mWAIT_DOOR(TwinEEngine *engine, MoveScriptContext &ctx) {
*/
static int32 mSAMPLE_RND(TwinEEngine *engine, MoveScriptContext &ctx) {
int32 sampleIdx = ctx.stream.readSint16LE();
- engine->_sound->playSample(sampleIdx, 1, ctx.actor->pos, ctx.actorIdx);
+ engine->_sound->playSample(sampleIdx, 1, ctx.actor->pos(), ctx.actorIdx);
return 0;
}
@@ -549,7 +543,7 @@ static int32 mSAMPLE_RND(TwinEEngine *engine, MoveScriptContext &ctx) {
static int32 mSAMPLE_ALWAYS(TwinEEngine *engine, MoveScriptContext &ctx) {
int32 sampleIdx = ctx.stream.readSint16LE();
if (!engine->_sound->isSamplePlaying(sampleIdx)) { // if its not playing
- engine->_sound->playSample(sampleIdx, -1, ctx.actor->pos, ctx.actorIdx);
+ engine->_sound->playSample(sampleIdx, -1, ctx.actor->pos(), ctx.actorIdx);
}
return 0;
}
@@ -603,7 +597,7 @@ static int32 mREPEAT_SAMPLE(TwinEEngine *engine, MoveScriptContext &ctx) {
*/
static int32 mSIMPLE_SAMPLE(TwinEEngine *engine, MoveScriptContext &ctx) {
int32 sampleIdx = ctx.stream.readSint16LE();
- engine->_sound->playSample(sampleIdx, ctx.numRepeatSample, ctx.actor->pos, ctx.actorIdx);
+ engine->_sound->playSample(sampleIdx, ctx.numRepeatSample, ctx.actor->pos(), ctx.actorIdx);
ctx.numRepeatSample = 1;
return 0;
}
@@ -614,18 +608,18 @@ static int32 mSIMPLE_SAMPLE(TwinEEngine *engine, MoveScriptContext &ctx) {
*/
static int32 mFACE_HERO(TwinEEngine *engine, MoveScriptContext &ctx) {
const int16 angle = ToAngle(ctx.stream.readSint16LE());
- if (ctx.actor->staticFlags.bIsSpriteActor) {
+ if (ctx.actor->_staticFlags.bIsSpriteActor) {
return 0;
}
engine->_scene->_currentScriptValue = angle;
- if (engine->_scene->_currentScriptValue == -1 && ctx.actor->move.numOfStep == 0) {
- engine->_scene->_currentScriptValue = engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->pos, engine->_scene->_sceneHero->pos);
- engine->_movements->moveActor(ctx.actor->angle, engine->_scene->_currentScriptValue, ctx.actor->speed, &ctx.actor->move);
+ if (engine->_scene->_currentScriptValue == -1 && ctx.actor->_move.numOfStep == 0) {
+ engine->_scene->_currentScriptValue = engine->_movements->getAngleAndSetTargetActorDistance(ctx.actor->pos(), engine->_scene->_sceneHero->pos());
+ engine->_movements->moveActor(ctx.actor->_angle, engine->_scene->_currentScriptValue, ctx.actor->_speed, &ctx.actor->_move);
ctx.stream.rewind(2);
ctx.stream.writeSint16LE(engine->_scene->_currentScriptValue);
}
- if (ctx.actor->angle != engine->_scene->_currentScriptValue) {
+ if (ctx.actor->_angle != engine->_scene->_currentScriptValue) {
ctx.undo(2);
return 1;
}
@@ -642,27 +636,27 @@ static int32 mFACE_HERO(TwinEEngine *engine, MoveScriptContext &ctx) {
static int32 mANGLE_RND(TwinEEngine *engine, MoveScriptContext &ctx) {
const int16 val1 = ctx.stream.readSint16LE();
const int16 val2 = ctx.stream.readSint16LE();
- if (ctx.actor->staticFlags.bIsSpriteActor) {
+ if (ctx.actor->_staticFlags.bIsSpriteActor) {
return 0;
}
engine->_scene->_currentScriptValue = val2;
- if (engine->_scene->_currentScriptValue == -1 && ctx.actor->move.numOfStep == 0) {
+ if (engine->_scene->_currentScriptValue == -1 && ctx.actor->_move.numOfStep == 0) {
if (engine->getRandomNumber() & 1) {
- const int32 newAngle = ctx.actor->angle + ANGLE_90 + (ABS(val1) >> 1);
+ const int32 newAngle = ctx.actor->_angle + ANGLE_90 + (ABS(val1) >> 1);
engine->_scene->_currentScriptValue = ClampAngle(newAngle - engine->getRandomNumber(val1));
} else {
- const int32 newAngle = ctx.actor->angle - ANGLE_90 + (ABS(val1) >> 1);
+ const int32 newAngle = ctx.actor->_angle - ANGLE_90 + (ABS(val1) >> 1);
engine->_scene->_currentScriptValue = ClampAngle(newAngle - engine->getRandomNumber(val1));
}
- engine->_movements->moveActor(ctx.actor->angle, engine->_scene->_currentScriptValue, ctx.actor->speed, &ctx.actor->move);
+ engine->_movements->moveActor(ctx.actor->_angle, engine->_scene->_currentScriptValue, ctx.actor->_speed, &ctx.actor->_move);
ctx.stream.rewind(2);
ctx.stream.writeSint16LE(engine->_scene->_currentScriptValue);
}
- if (ctx.actor->angle != engine->_scene->_currentScriptValue) {
+ if (ctx.actor->_angle != engine->_scene->_currentScriptValue) {
ctx.undo(4);
return 1;
}
@@ -729,8 +723,8 @@ void ScriptMove::processMoveScript(int32 actorIdx) {
if (end < 0) {
warning("Actor %d Life script [%s] not implemented", actorIdx, function_map[scriptOpcode].name);
}
- if (ctx.actor->positionInMoveScript != -1) {
- actor->positionInMoveScript = ctx.stream.pos();
+ if (ctx.actor->_positionInMoveScript != -1) {
+ actor->_positionInMoveScript = ctx.stream.pos();
}
} while (end != 1);
}
diff --git a/engines/twine/twine.cpp b/engines/twine/twine.cpp
index f32878658e..391a9839b3 100644
--- a/engines/twine/twine.cpp
+++ b/engines/twine/twine.cpp
@@ -369,8 +369,8 @@ Common::Error TwinEEngine::saveGameStream(Common::WriteStream *stream, bool isAu
}
void TwinEEngine::autoSave() {
- debug("Autosave %s", _gameState->sceneName);
- saveGameState(getAutosaveSlot(), _gameState->sceneName, true);
+ debug("Autosave %s", _gameState->_sceneName);
+ saveGameState(getAutosaveSlot(), _gameState->_sceneName, true);
}
void TwinEEngine::allocVideoMemory(int32 w, int32 h) {
@@ -567,7 +567,7 @@ void TwinEEngine::unfreezeTime() {
void TwinEEngine::processActorSamplePosition(int32 actorIdx) {
const ActorStruct *actor = _scene->getActor(actorIdx);
const int32 channelIdx = _sound->getActorChannel(actorIdx);
- _sound->setSamplePosition(channelIdx, actor->pos.x, actor->pos.y, actor->pos.z);
+ _sound->setSamplePosition(channelIdx, actor->pos());
}
void TwinEEngine::processBookOfBu() {
@@ -613,20 +613,20 @@ void TwinEEngine::processInventoryAction() {
_screens->_lockPalette = true;
break;
case kiMagicBall:
- if (_gameState->usingSabre) {
+ if (_gameState->_usingSabre) {
_actor->initModelActor(BodyType::btNormal, OWN_ACTOR_SCENE_INDEX);
}
- _gameState->usingSabre = false;
+ _gameState->_usingSabre = false;
break;
case kiUseSabre:
- if (_scene->_sceneHero->body != BodyType::btSabre) {
+ if (_scene->_sceneHero->_body != BodyType::btSabre) {
if (_actor->heroBehaviour == HeroBehaviourType::kProtoPack) {
_actor->setBehaviour(HeroBehaviourType::kNormal);
}
_actor->initModelActor(BodyType::btSabre, OWN_ACTOR_SCENE_INDEX);
_animations->initAnim(AnimationTypes::kSabreUnknown, AnimType::kAnimationType_1, AnimationTypes::kStanding, OWN_ACTOR_SCENE_INDEX);
- _gameState->usingSabre = true;
+ _gameState->_usingSabre = true;
}
break;
case kiBookOfBu: {
@@ -635,9 +635,9 @@ void TwinEEngine::processInventoryAction() {
}
case kiProtoPack:
if (_gameState->hasItem(InventoryItems::kiBookOfBu)) {
- _scene->_sceneHero->body = BodyType::btNormal;
+ _scene->_sceneHero->_body = BodyType::btNormal;
} else {
- _scene->_sceneHero->body = BodyType::btTunic;
+ _scene->_sceneHero->_body = BodyType::btTunic;
}
if (_actor->heroBehaviour == HeroBehaviourType::kProtoPack) {
@@ -649,22 +649,22 @@ void TwinEEngine::processInventoryAction() {
case kiPinguin: {
ActorStruct *pinguin = _scene->getActor(_scene->_mecaPinguinIdx);
- pinguin->pos.x = _renderer->_destPos.x + _scene->_sceneHero->pos.x;
- pinguin->pos.y = _scene->_sceneHero->pos.y;
- pinguin->pos.z = _renderer->_destPos.z + _scene->_sceneHero->pos.z;
- pinguin->angle = _scene->_sceneHero->angle;
+ pinguin->_pos.x = _renderer->_destPos.x + _scene->_sceneHero->_pos.x;
+ pinguin->_pos.y = _scene->_sceneHero->_pos.y;
+ pinguin->_pos.z = _renderer->_destPos.z + _scene->_sceneHero->_pos.z;
+ pinguin->_angle = _scene->_sceneHero->_angle;
- _movements->rotateActor(0, 800, pinguin->angle);
+ _movements->rotateActor(0, 800, pinguin->_angle);
if (!_collision->checkCollisionWithActors(_scene->_mecaPinguinIdx)) {
pinguin->setLife(kActorMaxLife);
- pinguin->body = BodyType::btNone;
+ pinguin->_body = BodyType::btNone;
_actor->initModelActor(BodyType::btNormal, _scene->_mecaPinguinIdx);
- pinguin->dynamicFlags.bIsDead = 0; // &= 0xDF
+ pinguin->_dynamicFlags.bIsDead = 0; // &= 0xDF
pinguin->setBrickShape(ShapeType::kNone);
- _movements->moveActor(pinguin->angle, pinguin->angle, pinguin->speed, &pinguin->move);
+ _movements->moveActor(pinguin->_angle, pinguin->_angle, pinguin->_speed, &pinguin->_move);
_gameState->removeItem(InventoryItems::kiPinguin); // byte_50D89 = 0;
- pinguin->delayInMillis = _lbaTime + 1500;
+ pinguin->_delayInMillis = _lbaTime + 1500;
}
break;
}
@@ -676,10 +676,10 @@ void TwinEEngine::processInventoryAction() {
break;
}
case kiCloverLeaf:
- if (_scene->_sceneHero->life < kActorMaxLife) {
- if (_gameState->inventoryNumLeafs > 0) {
+ if (_scene->_sceneHero->_life < kActorMaxLife) {
+ if (_gameState->_inventoryNumLeafs > 0) {
_scene->_sceneHero->setLife(kActorMaxLife);
- _gameState->setMagicPoints(_gameState->magicLevelIdx * 20);
+ _gameState->setMagicPoints(_gameState->_magicLevelIdx * 20);
_gameState->addLeafs(-1);
_redraw->addOverlay(OverlayType::koInventoryItem, InventoryItems::kiCloverLeaf, 0, 0, 0, OverlayPosType::koNormal, 3);
}
@@ -732,7 +732,7 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
}
} else {
// Process give up menu - Press ESC
- if (_input->toggleAbortAction() && _scene->_sceneHero->life > 0 && _scene->_sceneHero->entity != -1 && !_scene->_sceneHero->staticFlags.bIsHidden) {
+ if (_input->toggleAbortAction() && _scene->_sceneHero->_life > 0 && _scene->_sceneHero->_entity != -1 && !_scene->_sceneHero->_staticFlags.bIsHidden) {
freezeTime();
exitSceneryView();
const int giveUp = _menu->giveupMenu();
@@ -755,7 +755,7 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
// inventory menu
_loopInventoryItem = -1;
- if (_input->isActionActive(TwinEActionType::InventoryMenu) && _scene->_sceneHero->entity != -1 && _scene->_sceneHero->controlMode == ControlMode::kManual) {
+ if (_input->isActionActive(TwinEActionType::InventoryMenu) && _scene->_sceneHero->_entity != -1 && _scene->_sceneHero->_controlMode == ControlMode::kManual) {
processInventoryAction();
}
@@ -775,7 +775,7 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
_input->isActionActive(TwinEActionType::QuickBehaviourAthletic, false) ||
_input->isActionActive(TwinEActionType::QuickBehaviourAggressive, false) ||
_input->isActionActive(TwinEActionType::QuickBehaviourDiscreet, false)) &&
- _scene->_sceneHero->entity != -1 && _scene->_sceneHero->controlMode == ControlMode::kManual) {
+ _scene->_sceneHero->_entity != -1 && _scene->_sceneHero->_controlMode == ControlMode::kManual) {
if (_input->isActionActive(TwinEActionType::QuickBehaviourNormal, false)) {
_actor->heroBehaviour = HeroBehaviourType::kNormal;
} else if (_input->isActionActive(TwinEActionType::QuickBehaviourAthletic, false)) {
@@ -794,9 +794,9 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
// use Proto-Pack
if (_input->toggleActionIfActive(TwinEActionType::UseProtoPack) && _gameState->hasItem(InventoryItems::kiProtoPack)) {
if (_gameState->hasItem(InventoryItems::kiBookOfBu)) {
- _scene->_sceneHero->body = BodyType::btNormal;
+ _scene->_sceneHero->_body = BodyType::btNormal;
} else {
- _scene->_sceneHero->body = BodyType::btTunic;
+ _scene->_sceneHero->_body = BodyType::btTunic;
}
if (_actor->heroBehaviour == HeroBehaviourType::kProtoPack) {
@@ -859,7 +859,7 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
// Reset HitBy state
for (int32 a = 0; a < _scene->_sceneNumActors; a++) {
- _scene->getActor(a)->hitBy = -1;
+ _scene->getActor(a)->_hitBy = -1;
}
_extra->processExtras();
@@ -867,42 +867,42 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
for (int32 a = 0; a < _scene->_sceneNumActors; a++) {
ActorStruct *actor = _scene->getActor(a);
- if (actor->dynamicFlags.bIsDead) {
+ if (actor->_dynamicFlags.bIsDead) {
continue;
}
- if (actor->life == 0) {
+ if (actor->_life == 0) {
if (IS_HERO(a)) {
_animations->initAnim(AnimationTypes::kLandDeath, AnimType::kAnimationType_4, AnimationTypes::kStanding, 0);
- actor->controlMode = ControlMode::kNoMove;
+ actor->_controlMode = ControlMode::kNoMove;
} else {
- _sound->playSample(Samples::Explode, 1, actor->pos, a);
+ _sound->playSample(Samples::Explode, 1, actor->pos(), a);
if (a == _scene->_mecaPinguinIdx) {
- _extra->addExtraExplode(actor->pos.x, actor->pos.y, actor->pos.z);
+ _extra->addExtraExplode(actor->pos());
}
}
- if (!actor->bonusParameter.unk1 && (actor->bonusParameter.cloverleaf || actor->bonusParameter.kashes || actor->bonusParameter.key || actor->bonusParameter.lifepoints || actor->bonusParameter.magicpoints)) {
+ if (!actor->_bonusParameter.unk1 && (actor->_bonusParameter.cloverleaf || actor->_bonusParameter.kashes || actor->_bonusParameter.key || actor->_bonusParameter.lifepoints || actor->_bonusParameter.magicpoints)) {
_actor->processActorExtraBonus(a);
}
}
_movements->processActorMovements(a);
- actor->collisionPos = actor->pos;
+ actor->_collisionPos = actor->pos();
- if (actor->positionInMoveScript != -1) {
+ if (actor->_positionInMoveScript != -1) {
_scriptMove->processMoveScript(a);
}
_animations->processActorAnimations(a);
- if (actor->staticFlags.bIsZonable) {
+ if (actor->_staticFlags.bIsZonable) {
_scene->processActorZones(a);
}
- if (actor->positionInLifeScript != -1) {
+ if (actor->_positionInLifeScript != -1) {
_scriptLife->processLifeScript(a);
}
@@ -912,29 +912,29 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
return _quitGame;
}
- if (actor->staticFlags.bCanDrown) {
- int32 brickSound = _grid->getBrickSoundType(actor->pos.x, actor->pos.y - 1, actor->pos.z);
- actor->brickSound = brickSound;
+ if (actor->_staticFlags.bCanDrown) {
+ int32 brickSound = _grid->getBrickSoundType(actor->_pos.x, actor->_pos.y - 1, actor->_pos.z);
+ actor->_brickSound = brickSound;
if ((brickSound & 0xF0) == 0xF0) {
if ((brickSound & 0x0F) == 1) {
if (IS_HERO(a)) {
- if (_actor->heroBehaviour != HeroBehaviourType::kProtoPack || actor->anim != AnimationTypes::kForward) {
+ if (_actor->heroBehaviour != HeroBehaviourType::kProtoPack || actor->_anim != AnimationTypes::kForward) {
if (!_actor->cropBottomScreen) {
_animations->initAnim(AnimationTypes::kDrawn, AnimType::kAnimationType_4, AnimationTypes::kStanding, 0);
- _renderer->projectPositionOnScreen(actor->pos - _grid->_camera);
+ _renderer->projectPositionOnScreen(actor->pos() - _grid->_camera);
_actor->cropBottomScreen = _renderer->_projPos.y;
}
- _renderer->projectPositionOnScreen(actor->pos - _grid->_camera);
- actor->controlMode = ControlMode::kNoMove;
+ _renderer->projectPositionOnScreen(actor->pos() - _grid->_camera);
+ actor->_controlMode = ControlMode::kNoMove;
actor->setLife(-1);
_actor->cropBottomScreen = _renderer->_projPos.y;
- actor->staticFlags.bCanDrown |= 0x10; // TODO: doesn't make sense
+ actor->_staticFlags.bCanDrown |= 0x10; // TODO: doesn't make sense
}
} else {
- _sound->playSample(Samples::Explode, 1, actor->pos, a);
- if (actor->bonusParameter.cloverleaf || actor->bonusParameter.kashes || actor->bonusParameter.key || actor->bonusParameter.lifepoints || actor->bonusParameter.magicpoints) {
- if (!actor->bonusParameter.unk1) {
+ _sound->playSample(Samples::Explode, 1, actor->pos(), a);
+ if (actor->_bonusParameter.cloverleaf || actor->_bonusParameter.kashes || actor->_bonusParameter.key || actor->_bonusParameter.lifepoints || actor->_bonusParameter.magicpoints) {
+ if (!actor->_bonusParameter.unk1) {
_actor->processActorExtraBonus(a);
}
actor->setLife(0);
@@ -944,11 +944,11 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
}
}
- if (actor->life <= 0) {
+ if (actor->_life <= 0) {
if (IS_HERO(a)) {
- if (actor->dynamicFlags.bAnimEnded) {
- if (_gameState->inventoryNumLeafs > 0) { // use clover leaf automaticaly
- _scene->_sceneHero->pos = _scene->_newHeroPos;
+ if (actor->_dynamicFlags.bAnimEnded) {
+ if (_gameState->_inventoryNumLeafs > 0) { // use clover leaf automaticaly
+ _scene->_sceneHero->_pos = _scene->_newHeroPos;
_scene->_needChangeScene = _scene->_currentSceneIdx;
_gameState->setMaxMagicPoints();
@@ -967,7 +967,7 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
_gameState->setLeafs(1);
_gameState->setMaxMagicPoints();
_actor->heroBehaviour = _actor->previousHeroBehaviour;
- actor->angle = _actor->previousHeroAngle;
+ actor->_angle = _actor->previousHeroAngle;
actor->setLife(kActorMaxLife);
if (_scene->_previousSceneIdx != _scene->_currentSceneIdx) {
@@ -986,9 +986,9 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
}
} else {
_actor->processActorCarrier(a);
- actor->dynamicFlags.bIsDead = 1;
- actor->entity = -1;
- actor->zone = -1;
+ actor->_dynamicFlags.bIsDead = 1;
+ actor->_entity = -1;
+ actor->_zone = -1;
}
}
@@ -1003,9 +1003,9 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
// workaround to fix hero redraw after drowning
if (_actor->cropBottomScreen && _redraw->_reqBgRedraw) {
- _scene->_sceneHero->staticFlags.bIsHidden = 1;
+ _scene->_sceneHero->_staticFlags.bIsHidden = 1;
_redraw->redrawEngineActions(true);
- _scene->_sceneHero->staticFlags.bIsHidden = 0;
+ _scene->_sceneHero->_staticFlags.bIsHidden = 0;
}
_scene->_needChangeScene = SCENE_CEILING_GRID_FADE_1;
Commit: 61304fd896ab9066834dd03a74e7f23ba6eebaea
https://github.com/scummvm/scummvm/commit/61304fd896ab9066834dd03a74e7f23ba6eebaea
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-07-31T16:50:19+02:00
Commit Message:
TWINE: renamed members
Changed paths:
engines/twine/debugger/console.cpp
engines/twine/menu/menu.cpp
engines/twine/renderer/redraw.cpp
engines/twine/scene/actor.cpp
engines/twine/scene/actor.h
engines/twine/scene/animations.cpp
engines/twine/scene/collision.cpp
engines/twine/scene/gamestate.cpp
engines/twine/scene/movements.cpp
engines/twine/scene/scene.cpp
engines/twine/script/script_life_v1.cpp
engines/twine/twine.cpp
diff --git a/engines/twine/debugger/console.cpp b/engines/twine/debugger/console.cpp
index 9151b83350..4713a19f8b 100644
--- a/engines/twine/debugger/console.cpp
+++ b/engines/twine/debugger/console.cpp
@@ -114,7 +114,7 @@ bool TwinEConsole::doToggleSceneryView(int argc, const char **argv) {
}
bool TwinEConsole::doToggleAutoAggressive(int argc, const char **argv) {
- TOGGLE_DEBUG(_engine->_actor->autoAggressive, "auto aggressive\n")
+ TOGGLE_DEBUG(_engine->_actor->_autoAggressive, "auto aggressive\n")
return true;
}
diff --git a/engines/twine/menu/menu.cpp b/engines/twine/menu/menu.cpp
index ca6550ce4e..b899f74068 100644
--- a/engines/twine/menu/menu.cpp
+++ b/engines/twine/menu/menu.cpp
@@ -324,7 +324,7 @@ int16 Menu::drawButtons(MenuSettings *menuSettings, bool hover) {
int16 id = menuSettings->getButtonState(i);
switch (id) {
case MenuButtonTypes::kAggressiveMode:
- if (_engine->_actor->autoAggressive) {
+ if (_engine->_actor->_autoAggressive) {
menuSettings->setButtonTextId(i, TextId::kBehaviourAggressiveAuto);
} else {
menuSettings->setButtonTextId(i, TextId::kBehaviourAggressiveManual);
@@ -451,7 +451,7 @@ int32 Menu::processMenu(MenuSettings *menuSettings, bool showCredits) {
switch (id) {
case MenuButtonTypes::kAggressiveMode:
if (_engine->_input->toggleActionIfActive(TwinEActionType::UILeft) || _engine->_input->toggleActionIfActive(TwinEActionType::UIRight) || _engine->_input->toggleActionIfActive(TwinEActionType::UIEnter)) {
- _engine->_actor->autoAggressive = !_engine->_actor->autoAggressive;
+ _engine->_actor->_autoAggressive = !_engine->_actor->_autoAggressive;
startMillis = loopMillis;
}
break;
@@ -935,7 +935,7 @@ bool Menu::isBehaviourHovered(int32 left, int32 top, HeroBehaviourType behaviour
void Menu::drawBehaviour(int32 left, int32 top, HeroBehaviourType behaviour, int32 angle, bool cantDrawBox, Common::Rect &dirtyRect) {
const Common::Rect &boxRect = calcBehaviourRect(left, top, behaviour);
- const int animIdx = _engine->_actor->heroAnimIdx[(byte)behaviour];
+ const int animIdx = _engine->_actor->_heroAnimIdx[(byte)behaviour];
const AnimData ¤tAnimData = _engine->_resources->_animData[animIdx];
uint currentAnimState = _behaviourAnimState[(byte)behaviour];
@@ -957,7 +957,7 @@ void Menu::drawBehaviour(int32 left, int32 top, HeroBehaviourType behaviour, int
_engine->_interface->saveClip();
_engine->_interface->resetClip();
- if (behaviour == _engine->_actor->heroBehaviour) {
+ if (behaviour == _engine->_actor->_heroBehaviour) {
const int titleOffset = 10;
const int titleHeight = 40;
const int32 titleBoxLeft = left + 10;
@@ -997,7 +997,7 @@ void Menu::drawBehaviour(int32 left, int32 top, HeroBehaviourType behaviour, int
}
void Menu::prepareAndDrawBehaviour(int32 left, int32 top, int32 angle, HeroBehaviourType behaviour, Common::Rect &dirtyRect) {
- const int animIdx = _engine->_actor->heroAnimIdx[(byte)behaviour];
+ const int animIdx = _engine->_actor->_heroAnimIdx[(byte)behaviour];
_engine->_animations->setAnimAtKeyframe(_behaviourAnimState[(byte)behaviour], _engine->_resources->_animData[animIdx], *_behaviourEntity, &_behaviourAnimData[(byte)behaviour]);
drawBehaviour(left, top, behaviour, angle, false, dirtyRect);
}
@@ -1028,17 +1028,17 @@ void Menu::drawBehaviourMenu(int32 left, int32 top, int32 angle) {
void Menu::processBehaviourMenu() {
_engine->exitSceneryView();
- if (_engine->_actor->heroBehaviour == HeroBehaviourType::kProtoPack) {
+ if (_engine->_actor->_heroBehaviour == HeroBehaviourType::kProtoPack) {
_engine->_sound->stopSamples();
_engine->_actor->setBehaviour(HeroBehaviourType::kNormal);
}
_behaviourEntity = &_engine->_resources->_bodyData[_engine->_scene->_sceneHero->_entity];
- _engine->_actor->heroAnimIdx[(byte)HeroBehaviourType::kNormal] = _engine->_actor->heroAnimIdxNORMAL;
- _engine->_actor->heroAnimIdx[(byte)HeroBehaviourType::kAthletic] = _engine->_actor->heroAnimIdxATHLETIC;
- _engine->_actor->heroAnimIdx[(byte)HeroBehaviourType::kAggressive] = _engine->_actor->heroAnimIdxAGGRESSIVE;
- _engine->_actor->heroAnimIdx[(byte)HeroBehaviourType::kDiscrete] = _engine->_actor->heroAnimIdxDISCRETE;
+ _engine->_actor->_heroAnimIdx[(byte)HeroBehaviourType::kNormal] = _engine->_actor->_heroAnimIdxNORMAL;
+ _engine->_actor->_heroAnimIdx[(byte)HeroBehaviourType::kAthletic] = _engine->_actor->_heroAnimIdxATHLETIC;
+ _engine->_actor->_heroAnimIdx[(byte)HeroBehaviourType::kAggressive] = _engine->_actor->_heroAnimIdxAGGRESSIVE;
+ _engine->_actor->_heroAnimIdx[(byte)HeroBehaviourType::kDiscrete] = _engine->_actor->_heroAnimIdxDISCRETE;
_engine->_movements->setActorAngleSafe(_engine->_scene->_sceneHero->_angle, _engine->_scene->_sceneHero->_angle - ANGLE_90, ANGLE_17, &_moveMenu);
@@ -1053,10 +1053,10 @@ void Menu::processBehaviourMenu() {
const int32 top = _engine->height() / 2 - 140;
drawBehaviourMenu(left, top, _engine->_scene->_sceneHero->_angle);
- HeroBehaviourType tmpHeroBehaviour = _engine->_actor->heroBehaviour;
+ HeroBehaviourType tmpHeroBehaviour = _engine->_actor->_heroBehaviour;
- const int animIdx = _engine->_actor->heroAnimIdx[(byte)_engine->_actor->heroBehaviour];
- _engine->_animations->setAnimAtKeyframe(_behaviourAnimState[(byte)_engine->_actor->heroBehaviour], _engine->_resources->_animData[animIdx], *_behaviourEntity, &_behaviourAnimData[(byte)_engine->_actor->heroBehaviour]);
+ const int animIdx = _engine->_actor->_heroAnimIdx[(byte)_engine->_actor->_heroBehaviour];
+ _engine->_animations->setAnimAtKeyframe(_behaviourAnimState[(byte)_engine->_actor->_heroBehaviour], _engine->_resources->_animData[animIdx], *_behaviourEntity, &_behaviourAnimData[(byte)_engine->_actor->_heroBehaviour]);
int32 tmpTime = _engine->_lbaTime;
@@ -1080,7 +1080,7 @@ void Menu::processBehaviourMenu() {
}
#endif
- int heroBehaviour = (int)_engine->_actor->heroBehaviour;
+ int heroBehaviour = (int)_engine->_actor->_heroBehaviour;
if (_engine->_input->toggleActionIfActive(TwinEActionType::UILeft)) {
heroBehaviour--;
} else if (_engine->_input->toggleActionIfActive(TwinEActionType::UIRight)) {
@@ -1093,18 +1093,18 @@ void Menu::processBehaviourMenu() {
heroBehaviour = (int)HeroBehaviourType::kNormal;
}
- _engine->_actor->heroBehaviour = (HeroBehaviourType)heroBehaviour;
+ _engine->_actor->_heroBehaviour = (HeroBehaviourType)heroBehaviour;
Common::Rect dirtyRect;
- if (tmpHeroBehaviour != _engine->_actor->heroBehaviour) {
+ if (tmpHeroBehaviour != _engine->_actor->_heroBehaviour) {
drawBehaviour(left, top, tmpHeroBehaviour, _engine->_scene->_sceneHero->_angle, true, dirtyRect);
- tmpHeroBehaviour = _engine->_actor->heroBehaviour;
+ tmpHeroBehaviour = _engine->_actor->_heroBehaviour;
_engine->_movements->setActorAngleSafe(_engine->_scene->_sceneHero->_angle, _engine->_scene->_sceneHero->_angle - ANGLE_90, ANGLE_17, &_moveMenu);
- const int tmpAnimIdx = _engine->_actor->heroAnimIdx[(byte)_engine->_actor->heroBehaviour];
- _engine->_animations->setAnimAtKeyframe(_behaviourAnimState[(byte)_engine->_actor->heroBehaviour], _engine->_resources->_animData[tmpAnimIdx], *_behaviourEntity, &_behaviourAnimData[(byte)_engine->_actor->heroBehaviour]);
+ const int tmpAnimIdx = _engine->_actor->_heroAnimIdx[(byte)_engine->_actor->_heroBehaviour];
+ _engine->_animations->setAnimAtKeyframe(_behaviourAnimState[(byte)_engine->_actor->_heroBehaviour], _engine->_resources->_animData[tmpAnimIdx], *_behaviourEntity, &_behaviourAnimData[(byte)_engine->_actor->_heroBehaviour]);
}
- drawBehaviour(left, top, _engine->_actor->heroBehaviour, -1, true, dirtyRect);
+ drawBehaviour(left, top, _engine->_actor->_heroBehaviour, -1, true, dirtyRect);
if (!dirtyRect.isEmpty()) {
_engine->copyBlockPhys(dirtyRect);
}
@@ -1114,7 +1114,7 @@ void Menu::processBehaviourMenu() {
_engine->_lbaTime = tmpTime;
- _engine->_actor->setBehaviour(_engine->_actor->heroBehaviour);
+ _engine->_actor->setBehaviour(_engine->_actor->_heroBehaviour);
_engine->_gameState->initEngineProjections();
_engine->_scene->_sceneTextBank = tmpTextBank;
diff --git a/engines/twine/renderer/redraw.cpp b/engines/twine/renderer/redraw.cpp
index 34dce3d825..d754e1b739 100644
--- a/engines/twine/renderer/redraw.cpp
+++ b/engines/twine/renderer/redraw.cpp
@@ -238,9 +238,9 @@ int32 Redraw::fillActorDrawingList(DrawListStruct *drawList, bool bgRedraw) {
// if use shadows
if (_engine->_cfgfile.ShadowMode != 0 && !(actor->_staticFlags.bDoesntCastShadow)) {
if (actor->_standOn != -1) {
- _engine->_actor->shadowCoord.x = actor->_pos.x;
- _engine->_actor->shadowCoord.y = actor->_pos.y - 1;
- _engine->_actor->shadowCoord.z = actor->_pos.z;
+ _engine->_actor->_shadowCoord.x = actor->_pos.x;
+ _engine->_actor->_shadowCoord.y = actor->_pos.y - 1;
+ _engine->_actor->_shadowCoord.z = actor->_pos.z;
} else {
_engine->_movements->getShadowPosition(actor->pos());
}
@@ -248,9 +248,9 @@ int32 Redraw::fillActorDrawingList(DrawListStruct *drawList, bool bgRedraw) {
drawList[drawListPos].posValue = tmpVal - 1; // save the shadow entry in the _drawList
drawList[drawListPos].type = DrawListType::DrawShadows;
drawList[drawListPos].actorIdx = 0;
- drawList[drawListPos].x = _engine->_actor->shadowCoord.x;
- drawList[drawListPos].y = _engine->_actor->shadowCoord.y;
- drawList[drawListPos].z = _engine->_actor->shadowCoord.z;
+ drawList[drawListPos].x = _engine->_actor->_shadowCoord.x;
+ drawList[drawListPos].y = _engine->_actor->_shadowCoord.y;
+ drawList[drawListPos].z = _engine->_actor->_shadowCoord.z;
drawList[drawListPos].offset = 2;
drawListPos++;
}
@@ -293,9 +293,9 @@ int32 Redraw::fillExtraDrawingList(DrawListStruct *drawList, int32 drawListPos)
drawList[drawListPos].posValue = tmpVal - 1;
drawList[drawListPos].actorIdx = 0;
drawList[drawListPos].type = DrawListType::DrawShadows;
- drawList[drawListPos].x = _engine->_actor->shadowCoord.x;
- drawList[drawListPos].y = _engine->_actor->shadowCoord.y;
- drawList[drawListPos].z = _engine->_actor->shadowCoord.z;
+ drawList[drawListPos].x = _engine->_actor->_shadowCoord.x;
+ drawList[drawListPos].y = _engine->_actor->_shadowCoord.y;
+ drawList[drawListPos].z = _engine->_actor->_shadowCoord.z;
drawList[drawListPos].offset = 0;
drawListPos++;
}
@@ -360,8 +360,8 @@ void Redraw::processDrawListActors(const DrawListStruct &drawCmd, bool bgRedraw)
_engine->_grid->drawOverModelActor(tempX, tempY, tempZ);
- if (_engine->_actor->cropBottomScreen) {
- _engine->_interface->_clip.bottom = _engine->_actor->cropBottomScreen + 10;
+ if (_engine->_actor->_cropBottomScreen) {
+ _engine->_interface->_clip.bottom = _engine->_actor->_cropBottomScreen + 10;
}
addRedrawArea(_engine->_interface->_clip);
@@ -483,7 +483,7 @@ void Redraw::processDrawList(DrawListStruct *drawList, int32 drawListPos, bool b
}
}
// Drawing shadows
- else if (flags == DrawListType::DrawShadows && !_engine->_actor->cropBottomScreen) {
+ else if (flags == DrawListType::DrawShadows && !_engine->_actor->_cropBottomScreen) {
processDrawListShadows(drawCmd);
}
// Drawing unknown
diff --git a/engines/twine/scene/actor.cpp b/engines/twine/scene/actor.cpp
index 5858f660f3..2e8b45f63b 100644
--- a/engines/twine/scene/actor.cpp
+++ b/engines/twine/scene/actor.cpp
@@ -60,12 +60,12 @@ void Actor::restartHeroScene() {
sceneHero->_labelIdx = -1;
sceneHero->_positionInLifeScript = 0;
sceneHero->_zone = -1;
- sceneHero->_angle = previousHeroAngle;
+ sceneHero->_angle = _previousHeroAngle;
_engine->_movements->setActorAngleSafe(sceneHero->_angle, sceneHero->_angle, ANGLE_0, &sceneHero->_move);
- setBehaviour(previousHeroBehaviour);
+ setBehaviour(_previousHeroBehaviour);
- cropBottomScreen = 0;
+ _cropBottomScreen = 0;
}
void Actor::loadBehaviourEntity(ActorStruct *actor, EntityData &entityData, int16 &bodyAnimIndex, int32 index) {
@@ -82,11 +82,11 @@ void Actor::loadBehaviourEntity(ActorStruct *actor, EntityData &entityData, int1
void Actor::loadHeroEntities() {
ActorStruct *sceneHero = _engine->_scene->_sceneHero;
- loadBehaviourEntity(sceneHero, _heroEntityATHLETIC, heroAnimIdxATHLETIC, FILE3DHQR_HEROATHLETIC);
- loadBehaviourEntity(sceneHero, _heroEntityAGGRESSIVE, heroAnimIdxAGGRESSIVE, FILE3DHQR_HEROAGGRESSIVE);
- loadBehaviourEntity(sceneHero, _heroEntityDISCRETE, heroAnimIdxDISCRETE, FILE3DHQR_HERODISCRETE);
- loadBehaviourEntity(sceneHero, _heroEntityPROTOPACK, heroAnimIdxPROTOPACK, FILE3DHQR_HEROPROTOPACK);
- loadBehaviourEntity(sceneHero, _heroEntityNORMAL, heroAnimIdxNORMAL, FILE3DHQR_HERONORMAL);
+ loadBehaviourEntity(sceneHero, _heroEntityATHLETIC, _heroAnimIdxATHLETIC, FILE3DHQR_HEROATHLETIC);
+ loadBehaviourEntity(sceneHero, _heroEntityAGGRESSIVE, _heroAnimIdxAGGRESSIVE, FILE3DHQR_HEROAGGRESSIVE);
+ loadBehaviourEntity(sceneHero, _heroEntityDISCRETE, _heroAnimIdxDISCRETE, FILE3DHQR_HERODISCRETE);
+ loadBehaviourEntity(sceneHero, _heroEntityPROTOPACK, _heroAnimIdxPROTOPACK, FILE3DHQR_HEROPROTOPACK);
+ loadBehaviourEntity(sceneHero, _heroEntityNORMAL, _heroAnimIdxNORMAL, FILE3DHQR_HERONORMAL);
_engine->_animations->_currentActorAnimExtraPtr = AnimationTypes::kStanding;
sceneHero->_animExtraPtr = _engine->_animations->_currentActorAnimExtraPtr;
@@ -96,23 +96,23 @@ void Actor::setBehaviour(HeroBehaviourType behaviour) {
ActorStruct *sceneHero = _engine->_scene->_sceneHero;
switch (behaviour) {
case HeroBehaviourType::kNormal:
- heroBehaviour = behaviour;
+ _heroBehaviour = behaviour;
sceneHero->_entityDataPtr = &_heroEntityNORMAL;
break;
case HeroBehaviourType::kAthletic:
- heroBehaviour = behaviour;
+ _heroBehaviour = behaviour;
sceneHero->_entityDataPtr = &_heroEntityATHLETIC;
break;
case HeroBehaviourType::kAggressive:
- heroBehaviour = behaviour;
+ _heroBehaviour = behaviour;
sceneHero->_entityDataPtr = &_heroEntityAGGRESSIVE;
break;
case HeroBehaviourType::kDiscrete:
- heroBehaviour = behaviour;
+ _heroBehaviour = behaviour;
sceneHero->_entityDataPtr = &_heroEntityDISCRETE;
break;
case HeroBehaviourType::kProtoPack:
- heroBehaviour = behaviour;
+ _heroBehaviour = behaviour;
sceneHero->_entityDataPtr = &_heroEntityPROTOPACK;
break;
};
@@ -141,11 +141,11 @@ void Actor::initSpriteActor(int32 actorIdx) {
}
TextId Actor::getTextIdForBehaviour() const {
- if (heroBehaviour == HeroBehaviourType::kAggressive && autoAggressive) {
+ if (_heroBehaviour == HeroBehaviourType::kAggressive && _autoAggressive) {
return TextId::kBehaviourAggressiveAuto;
}
// the other values are matching the text ids
- return (TextId)(int32)heroBehaviour;
+ return (TextId)(int32)_heroBehaviour;
}
int32 Actor::initBody(BodyType bodyIdx, int32 actorIdx, ActorBoundingBox &actorBoundingBox) {
@@ -169,7 +169,7 @@ void Actor::initModelActor(BodyType bodyIdx, int16 actorIdx) {
debug(1, "Load body %i for actor %i", (int)bodyIdx, actorIdx);
- if (IS_HERO(actorIdx) && heroBehaviour == HeroBehaviourType::kProtoPack && localActor->_armor != 0 && localActor->_armor != 1) {
+ if (IS_HERO(actorIdx) && _heroBehaviour == HeroBehaviourType::kProtoPack && localActor->_armor != 0 && localActor->_armor != 1) {
setBehaviour(HeroBehaviourType::kNormal);
}
diff --git a/engines/twine/scene/actor.h b/engines/twine/scene/actor.h
index 3a6843ae4a..9a74419d5c 100644
--- a/engines/twine/scene/actor.h
+++ b/engines/twine/scene/actor.h
@@ -288,34 +288,34 @@ private:
public:
Actor(TwinEEngine *engine);
- ActorStruct *processActorPtr = nullptr;
+ ActorStruct *_processActorPtr = nullptr;
/** Actor shadow coordinate */
- IVec3 shadowCoord;
+ IVec3 _shadowCoord;
- HeroBehaviourType heroBehaviour = HeroBehaviourType::kNormal;
+ HeroBehaviourType _heroBehaviour = HeroBehaviourType::kNormal;
/** Hero auto aggressive mode */
- bool autoAggressive = true;
+ bool _autoAggressive = true;
/** Previous Hero behaviour */
- HeroBehaviourType previousHeroBehaviour = HeroBehaviourType::kNormal;
+ HeroBehaviourType _previousHeroBehaviour = HeroBehaviourType::kNormal;
/** Previous Hero angle */
- int16 previousHeroAngle = 0;
+ int16 _previousHeroAngle = 0;
- int16 cropBottomScreen = 0;
+ int16 _cropBottomScreen = 0;
/** Hero current anim for normal behaviour */
- int16 heroAnimIdxNORMAL = 0;
+ int16 _heroAnimIdxNORMAL = 0;
/** Hero current anim for athletic behaviour */
- int16 heroAnimIdxATHLETIC = 0;
+ int16 _heroAnimIdxATHLETIC = 0;
/** Hero current anim for aggressive behaviour */
- int16 heroAnimIdxAGGRESSIVE = 0;
+ int16 _heroAnimIdxAGGRESSIVE = 0;
/** Hero current anim for discrete behaviour */
- int16 heroAnimIdxDISCRETE = 0;
+ int16 _heroAnimIdxDISCRETE = 0;
/** Hero current anim for protopack behaviour */
- int16 heroAnimIdxPROTOPACK = 0;
+ int16 _heroAnimIdxPROTOPACK = 0;
/** Hero anim for behaviour menu */
- int16 heroAnimIdx[4];
+ int16 _heroAnimIdx[4];
/** Restart hero variables while opening new scenes */
void restartHeroScene();
diff --git a/engines/twine/scene/animations.cpp b/engines/twine/scene/animations.cpp
index 55b5bca0a1..26c230c752 100644
--- a/engines/twine/scene/animations.cpp
+++ b/engines/twine/scene/animations.cpp
@@ -458,7 +458,7 @@ void Animations::processActorAnimations(int32 actorIdx) { // DoAnim
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
_currentlyProcessedActorIdx = actorIdx;
- _engine->_actor->processActorPtr = actor;
+ _engine->_actor->_processActorPtr = actor;
if (actor->_entity == -1) {
return;
@@ -687,7 +687,7 @@ void Animations::processActorAnimations(int32 actorIdx) { // DoAnim
}
// process wall hit while running
- if (_engine->_collision->_causeActorDamage && !actor->_dynamicFlags.bIsFalling && !_currentlyProcessedActorIdx && _engine->_actor->heroBehaviour == HeroBehaviourType::kAthletic && actor->_anim == AnimationTypes::kForward) {
+ if (_engine->_collision->_causeActorDamage && !actor->_dynamicFlags.bIsFalling && !_currentlyProcessedActorIdx && _engine->_actor->_heroBehaviour == HeroBehaviourType::kAthletic && actor->_anim == AnimationTypes::kForward) {
_engine->_movements->rotateActor(actor->_boudingBox.mins.x, actor->_boudingBox.mins.z, actor->_angle + ANGLE_360 + ANGLE_135);
_engine->_renderer->_destPos.x += processActor.x;
@@ -716,7 +716,7 @@ void Animations::processActorAnimations(int32 actorIdx) { // DoAnim
_engine->_collision->stopFalling();
processActor.y = (_engine->_collision->_collision.y * BRICK_HEIGHT) + BRICK_HEIGHT;
} else {
- if (IS_HERO(actorIdx) && _engine->_actor->heroBehaviour == HeroBehaviourType::kAthletic && actor->_anim == AnimationTypes::kForward && _engine->_cfgfile.WallCollision) { // avoid wall hit damage
+ if (IS_HERO(actorIdx) && _engine->_actor->_heroBehaviour == HeroBehaviourType::kAthletic && actor->_anim == AnimationTypes::kForward && _engine->_cfgfile.WallCollision) { // avoid wall hit damage
_engine->_extra->addExtraSpecial(actor->_pos.x, actor->_pos.y + 1000, actor->_pos.z, ExtraSpecialType::kHitStars);
initAnim(AnimationTypes::kBigHit, AnimType::kAnimationType_2, AnimationTypes::kStanding, _currentlyProcessedActorIdx);
_engine->_movements->_heroMoved = true;
diff --git a/engines/twine/scene/collision.cpp b/engines/twine/scene/collision.cpp
index ea161834ea..c9f8166495 100644
--- a/engines/twine/scene/collision.cpp
+++ b/engines/twine/scene/collision.cpp
@@ -359,7 +359,7 @@ void Collision::checkHeroCollisionWithBricks(int32 x, int32 y, int32 z, int32 da
processActor.z += z;
if (processActor.x >= 0 && processActor.z >= 0 && processActor.x <= 0x7E00 && processActor.z <= 0x7E00) {
- const BoundingBox &bbox = _engine->_actor->processActorPtr->_boudingBox;
+ const BoundingBox &bbox = _engine->_actor->_processActorPtr->_boudingBox;
reajustActorPosition(brickShape);
brickShape = _engine->_grid->getBrickShapeFull(processActor, bbox.maxs.y);
@@ -420,12 +420,12 @@ void Collision::stopFalling() { // ReceptionObj()
const int32 fall = _engine->_scene->_heroYBeforeFall - processActor.y;
if (fall >= BRICK_HEIGHT * 8) {
- const IVec3 &actorPos = _engine->_actor->processActorPtr->pos();
+ const IVec3 &actorPos = _engine->_actor->_processActorPtr->pos();
_engine->_extra->addExtraSpecial(actorPos.x, actorPos.y + 1000, actorPos.z, ExtraSpecialType::kHitStars);
if (fall >= BRICK_HEIGHT * 16) {
- _engine->_actor->processActorPtr->setLife(0);
+ _engine->_actor->_processActorPtr->setLife(0);
} else {
- _engine->_actor->processActorPtr->addLife(-1);
+ _engine->_actor->_processActorPtr->addLife(-1);
}
_engine->_animations->initAnim(AnimationTypes::kLandingHit, AnimType::kAnimationType_2, AnimationTypes::kStanding, _engine->_animations->_currentlyProcessedActorIdx);
} else if (fall > 10) {
@@ -436,10 +436,10 @@ void Collision::stopFalling() { // ReceptionObj()
_engine->_scene->_heroYBeforeFall = 0;
} else {
- _engine->_animations->initAnim(AnimationTypes::kLanding, AnimType::kAnimationType_2, _engine->_actor->processActorPtr->_animExtra, _engine->_animations->_currentlyProcessedActorIdx);
+ _engine->_animations->initAnim(AnimationTypes::kLanding, AnimType::kAnimationType_2, _engine->_actor->_processActorPtr->_animExtra, _engine->_animations->_currentlyProcessedActorIdx);
}
- _engine->_actor->processActorPtr->_dynamicFlags.bIsFalling = 0;
+ _engine->_actor->_processActorPtr->_dynamicFlags.bIsFalling = 0;
}
int32 Collision::checkExtraCollisionWithActors(ExtraListStruct *extra, int32 actorIdx) {
diff --git a/engines/twine/scene/gamestate.cpp b/engines/twine/scene/gamestate.cpp
index 4918192946..e191fb2cac 100644
--- a/engines/twine/scene/gamestate.cpp
+++ b/engines/twine/scene/gamestate.cpp
@@ -128,7 +128,7 @@ void GameState::initEngineVars() {
_inventoryNumKeys = 0;
_inventoryNumGas = 0;
- _engine->_actor->cropBottomScreen = 0;
+ _engine->_actor->_cropBottomScreen = 0;
_magicLevelIdx = 0;
_usingSabre = false;
@@ -137,9 +137,9 @@ void GameState::initEngineVars() {
_engine->_scene->_sceneTextBank = TextBankId::Options_and_menus;
_engine->_scene->_currentlyFollowedActor = OWN_ACTOR_SCENE_INDEX;
- _engine->_actor->heroBehaviour = HeroBehaviourType::kNormal;
- _engine->_actor->previousHeroAngle = 0;
- _engine->_actor->previousHeroBehaviour = HeroBehaviourType::kNormal;
+ _engine->_actor->_heroBehaviour = HeroBehaviourType::kNormal;
+ _engine->_actor->_previousHeroAngle = 0;
+ _engine->_actor->_previousHeroBehaviour = HeroBehaviourType::kNormal;
}
// http://lbafileinfo.kazekr.net/index.php?title=LBA1:Savegame
@@ -182,8 +182,8 @@ bool GameState::loadGame(Common::SeekableReadStream *file) {
_engine->_scene->_needChangeScene = file->readByte(); // scene index
_gameChapter = file->readByte();
- _engine->_actor->heroBehaviour = (HeroBehaviourType)file->readByte();
- _engine->_actor->previousHeroBehaviour = _engine->_actor->heroBehaviour;
+ _engine->_actor->_heroBehaviour = (HeroBehaviourType)file->readByte();
+ _engine->_actor->_previousHeroBehaviour = _engine->_actor->_heroBehaviour;
_engine->_scene->_sceneHero->setLife(file->readByte());
setKashes(file->readSint16LE());
_magicLevelIdx = file->readByte();
@@ -193,7 +193,7 @@ bool GameState::loadGame(Common::SeekableReadStream *file) {
_engine->_scene->_newHeroPos.y = file->readSint16LE();
_engine->_scene->_newHeroPos.z = file->readSint16LE();
_engine->_scene->_sceneHero->_angle = ToAngle(file->readSint16LE());
- _engine->_actor->previousHeroAngle = _engine->_scene->_sceneHero->_angle;
+ _engine->_actor->_previousHeroAngle = _engine->_scene->_sceneHero->_angle;
_engine->_scene->_sceneHero->_body = (BodyType)file->readByte();
const byte numHolomapFlags = file->readByte(); // number of holomap locations
@@ -249,7 +249,7 @@ bool GameState::saveGame(Common::WriteStream *file) {
}
file->writeByte(sceneIdx);
file->writeByte(_gameChapter);
- file->writeByte((byte)_engine->_actor->heroBehaviour);
+ file->writeByte((byte)_engine->_actor->_heroBehaviour);
file->writeByte(_engine->_scene->_sceneHero->_life);
file->writeSint16LE(_inventoryNumKashes);
file->writeByte(_magicLevelIdx);
diff --git a/engines/twine/scene/movements.cpp b/engines/twine/scene/movements.cpp
index 28a3389ccf..d4362f19da 100644
--- a/engines/twine/scene/movements.cpp
+++ b/engines/twine/scene/movements.cpp
@@ -53,7 +53,7 @@ void Movements::getShadowPosition(const IVec3 &pos) {
}
_engine->_collision->reajustActorPosition(shadowCollisionType);
- _engine->_actor->shadowCoord = _processActor;
+ _engine->_actor->_shadowCoord = _processActor;
}
void Movements::setActorAngleSafe(int16 startAngle, int16 endAngle, int16 stepAngle, ActorMoveStruct *movePtr) {
@@ -227,7 +227,7 @@ bool Movements::processBehaviourExecution(int actorIdx) {
if (_engine->_input->toggleActionIfActive(TwinEActionType::SpecialAction)) {
executeAction = true;
}
- switch (_engine->_actor->heroBehaviour) {
+ switch (_engine->_actor->_heroBehaviour) {
case HeroBehaviourType::kNormal:
executeAction = true;
break;
@@ -235,7 +235,7 @@ bool Movements::processBehaviourExecution(int actorIdx) {
_engine->_animations->initAnim(AnimationTypes::kJump, AnimType::kAnimationType_1, AnimationTypes::kStanding, actorIdx);
break;
case HeroBehaviourType::kAggressive:
- if (_engine->_actor->autoAggressive) {
+ if (_engine->_actor->_autoAggressive) {
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
_heroMoved = true;
actor->_angle = actor->_move.getRealAngle(_engine->_lbaTime);
@@ -357,7 +357,7 @@ void Movements::processManualMovementExecution(int actorIdx) {
void Movements::processManualRotationExecution(int actorIdx) {
ActorStruct *actor = _engine->_scene->getActor(actorIdx);
- if (!_engine->_actor->autoAggressive && actor->isAttackAnimationActive()) {
+ if (!_engine->_actor->_autoAggressive && actor->isAttackAnimationActive()) {
// it is allowed to rotate in auto aggressive mode - but not in manual mode.
return;
}
diff --git a/engines/twine/scene/scene.cpp b/engines/twine/scene/scene.cpp
index 4c105055ab..002aed1c66 100644
--- a/engines/twine/scene/scene.cpp
+++ b/engines/twine/scene/scene.cpp
@@ -532,8 +532,8 @@ void Scene::changeScene() {
_engine->_renderer->setLightVector(_alphaLight, _betaLight, ANGLE_0);
if (_previousSceneIdx != SCENE_CEILING_GRID_FADE_1 && _previousSceneIdx != _needChangeScene) {
- _engine->_actor->previousHeroBehaviour = _engine->_actor->heroBehaviour;
- _engine->_actor->previousHeroAngle = _sceneHero->_angle;
+ _engine->_actor->_previousHeroBehaviour = _engine->_actor->_heroBehaviour;
+ _engine->_actor->_previousHeroAngle = _sceneHero->_angle;
_engine->autoSave();
}
@@ -732,7 +732,7 @@ void Scene::processActorZones(int32 actorIdx) {
}
break;
case ZoneType::kLadder:
- if (IS_HERO(actorIdx) && _engine->_actor->heroBehaviour != HeroBehaviourType::kProtoPack && (actor->_anim == AnimationTypes::kForward || actor->_anim == AnimationTypes::kTopLadder || actor->_anim == AnimationTypes::kClimbLadder)) {
+ if (IS_HERO(actorIdx) && _engine->_actor->_heroBehaviour != HeroBehaviourType::kProtoPack && (actor->_anim == AnimationTypes::kForward || actor->_anim == AnimationTypes::kTopLadder || actor->_anim == AnimationTypes::kClimbLadder)) {
_engine->_movements->rotateActor(actor->_boudingBox.mins.x, actor->_boudingBox.mins.z, actor->_angle + ANGLE_360 + ANGLE_135);
_engine->_renderer->_destPos.x += _engine->_movements->_processActor.x;
_engine->_renderer->_destPos.z += _engine->_movements->_processActor.z;
diff --git a/engines/twine/script/script_life_v1.cpp b/engines/twine/script/script_life_v1.cpp
index 5559c88d16..fe5e685992 100644
--- a/engines/twine/script/script_life_v1.cpp
+++ b/engines/twine/script/script_life_v1.cpp
@@ -237,7 +237,7 @@ static int32 processLifeConditions(TwinEEngine *engine, LifeScriptContext &ctx)
engine->_scene->_currentScriptValue = engine->_movements->_targetActorDistance;
}
} else {
- if (engine->_actor->heroBehaviour == HeroBehaviourType::kDiscrete) {
+ if (engine->_actor->_heroBehaviour == HeroBehaviourType::kDiscrete) {
int32 heroAngle = ClampAngle(ctx.actor->_angle + ANGLE_360 + ANGLE_45 - newAngle + ANGLE_360);
if (ABS(heroAngle) > ANGLE_90) {
@@ -291,7 +291,7 @@ static int32 processLifeConditions(TwinEEngine *engine, LifeScriptContext &ctx)
engine->_scene->_currentScriptValue = engine->_gameState->_inventoryNumKashes;
break;
case kcBEHAVIOUR:
- engine->_scene->_currentScriptValue = (int16)engine->_actor->heroBehaviour;
+ engine->_scene->_currentScriptValue = (int16)engine->_actor->_heroBehaviour;
break;
case kcCHAPTER:
engine->_scene->_currentScriptValue = engine->_gameState->_gameChapter;
@@ -1641,9 +1641,9 @@ static int32 lTHE_END(TwinEEngine *engine, LifeScriptContext &ctx) {
engine->_scene->_sceneHero->setLife(kActorMaxLife);
engine->_gameState->setMagicPoints(80);
engine->_scene->_currentSceneIdx = LBA1SceneId::Polar_Island_Final_Battle;
- engine->_actor->heroBehaviour = engine->_actor->previousHeroBehaviour;
+ engine->_actor->_heroBehaviour = engine->_actor->_previousHeroBehaviour;
engine->_scene->_newHeroPos.x = -1;
- engine->_scene->_sceneHero->_angle = engine->_actor->previousHeroAngle;
+ engine->_scene->_sceneHero->_angle = engine->_actor->_previousHeroAngle;
engine->autoSave();
return 1; // break;
}
diff --git a/engines/twine/twine.cpp b/engines/twine/twine.cpp
index 391a9839b3..a33148a591 100644
--- a/engines/twine/twine.cpp
+++ b/engines/twine/twine.cpp
@@ -316,7 +316,7 @@ Common::Error TwinEEngine::run() {
}
}
- ConfMan.setBool("combatauto", _actor->autoAggressive);
+ ConfMan.setBool("combatauto", _actor->_autoAggressive);
ConfMan.setInt("shadow", _cfgfile.ShadowMode);
ConfMan.setBool("scezoom", _cfgfile.SceZoom);
ConfMan.setInt("polygondetails", _cfgfile.PolygonDetails);
@@ -455,7 +455,7 @@ void TwinEEngine::initConfigurations() {
_cfgfile.CrossFade = ConfGetBoolOrDefault("crossfade", false);
_cfgfile.WallCollision = ConfGetBoolOrDefault("wallcollision", false);
- _actor->autoAggressive = ConfGetBoolOrDefault("combatauto", true);
+ _actor->_autoAggressive = ConfGetBoolOrDefault("combatauto", true);
_cfgfile.ShadowMode = ConfGetIntOrDefault("shadow", 2);
_cfgfile.SceZoom = ConfGetBoolOrDefault("scezoom", false);
_cfgfile.PolygonDetails = ConfGetIntOrDefault("polygondetails", 2);
@@ -468,7 +468,7 @@ void TwinEEngine::initConfigurations() {
debug(1, "UseAutoSaving: %s", (_cfgfile.UseAutoSaving ? "true" : "false"));
debug(1, "CrossFade: %s", (_cfgfile.CrossFade ? "true" : "false"));
debug(1, "WallCollision: %s", (_cfgfile.WallCollision ? "true" : "false"));
- debug(1, "AutoAggressive: %s", (_actor->autoAggressive ? "true" : "false"));
+ debug(1, "AutoAggressive: %s", (_actor->_autoAggressive ? "true" : "false"));
debug(1, "ShadowMode: %i", _cfgfile.ShadowMode);
debug(1, "PolygonDetails: %i", _cfgfile.PolygonDetails);
debug(1, "SceZoom: %s", (_cfgfile.SceZoom ? "true" : "false"));
@@ -620,7 +620,7 @@ void TwinEEngine::processInventoryAction() {
break;
case kiUseSabre:
if (_scene->_sceneHero->_body != BodyType::btSabre) {
- if (_actor->heroBehaviour == HeroBehaviourType::kProtoPack) {
+ if (_actor->_heroBehaviour == HeroBehaviourType::kProtoPack) {
_actor->setBehaviour(HeroBehaviourType::kNormal);
}
_actor->initModelActor(BodyType::btSabre, OWN_ACTOR_SCENE_INDEX);
@@ -640,7 +640,7 @@ void TwinEEngine::processInventoryAction() {
_scene->_sceneHero->_body = BodyType::btTunic;
}
- if (_actor->heroBehaviour == HeroBehaviourType::kProtoPack) {
+ if (_actor->_heroBehaviour == HeroBehaviourType::kProtoPack) {
_actor->setBehaviour(HeroBehaviourType::kNormal);
} else {
_actor->setBehaviour(HeroBehaviourType::kProtoPack);
@@ -777,13 +777,13 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
_input->isActionActive(TwinEActionType::QuickBehaviourDiscreet, false)) &&
_scene->_sceneHero->_entity != -1 && _scene->_sceneHero->_controlMode == ControlMode::kManual) {
if (_input->isActionActive(TwinEActionType::QuickBehaviourNormal, false)) {
- _actor->heroBehaviour = HeroBehaviourType::kNormal;
+ _actor->_heroBehaviour = HeroBehaviourType::kNormal;
} else if (_input->isActionActive(TwinEActionType::QuickBehaviourAthletic, false)) {
- _actor->heroBehaviour = HeroBehaviourType::kAthletic;
+ _actor->_heroBehaviour = HeroBehaviourType::kAthletic;
} else if (_input->isActionActive(TwinEActionType::QuickBehaviourAggressive, false)) {
- _actor->heroBehaviour = HeroBehaviourType::kAggressive;
+ _actor->_heroBehaviour = HeroBehaviourType::kAggressive;
} else if (_input->isActionActive(TwinEActionType::QuickBehaviourDiscreet, false)) {
- _actor->heroBehaviour = HeroBehaviourType::kDiscrete;
+ _actor->_heroBehaviour = HeroBehaviourType::kDiscrete;
}
freezeTime();
_menu->processBehaviourMenu();
@@ -799,7 +799,7 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
_scene->_sceneHero->_body = BodyType::btTunic;
}
- if (_actor->heroBehaviour == HeroBehaviourType::kProtoPack) {
+ if (_actor->_heroBehaviour == HeroBehaviourType::kProtoPack) {
_actor->setBehaviour(HeroBehaviourType::kNormal);
} else {
_actor->setBehaviour(HeroBehaviourType::kProtoPack);
@@ -919,16 +919,16 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
if ((brickSound & 0xF0) == 0xF0) {
if ((brickSound & 0x0F) == 1) {
if (IS_HERO(a)) {
- if (_actor->heroBehaviour != HeroBehaviourType::kProtoPack || actor->_anim != AnimationTypes::kForward) {
- if (!_actor->cropBottomScreen) {
+ if (_actor->_heroBehaviour != HeroBehaviourType::kProtoPack || actor->_anim != AnimationTypes::kForward) {
+ if (!_actor->_cropBottomScreen) {
_animations->initAnim(AnimationTypes::kDrawn, AnimType::kAnimationType_4, AnimationTypes::kStanding, 0);
_renderer->projectPositionOnScreen(actor->pos() - _grid->_camera);
- _actor->cropBottomScreen = _renderer->_projPos.y;
+ _actor->_cropBottomScreen = _renderer->_projPos.y;
}
_renderer->projectPositionOnScreen(actor->pos() - _grid->_camera);
actor->_controlMode = ControlMode::kNoMove;
actor->setLife(-1);
- _actor->cropBottomScreen = _renderer->_projPos.y;
+ _actor->_cropBottomScreen = _renderer->_projPos.y;
actor->_staticFlags.bCanDrown |= 0x10; // TODO: doesn't make sense
}
} else {
@@ -961,13 +961,13 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
_redraw->_reqBgRedraw = true;
_screens->_lockPalette = true;
_gameState->addLeafs(-1);
- _actor->cropBottomScreen = 0;
+ _actor->_cropBottomScreen = 0;
} else { // game over
_gameState->setLeafBoxes(2);
_gameState->setLeafs(1);
_gameState->setMaxMagicPoints();
- _actor->heroBehaviour = _actor->previousHeroBehaviour;
- actor->_angle = _actor->previousHeroAngle;
+ _actor->_heroBehaviour = _actor->_previousHeroBehaviour;
+ actor->_angle = _actor->_previousHeroAngle;
actor->setLife(kActorMaxLife);
if (_scene->_previousSceneIdx != _scene->_currentSceneIdx) {
@@ -1002,7 +1002,7 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
_redraw->redrawEngineActions(_redraw->_reqBgRedraw);
// workaround to fix hero redraw after drowning
- if (_actor->cropBottomScreen && _redraw->_reqBgRedraw) {
+ if (_actor->_cropBottomScreen && _redraw->_reqBgRedraw) {
_scene->_sceneHero->_staticFlags.bIsHidden = 1;
_redraw->redrawEngineActions(true);
_scene->_sceneHero->_staticFlags.bIsHidden = 0;
More information about the Scummvm-git-logs
mailing list