[Scummvm-git-logs] scummvm master -> 688730bf13b7c7668a3fb52469204f9471c06fd2
mgerhardy
martin.gerhardy at gmail.com
Fri Dec 11 16:14:27 UTC 2020
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
c5a7f0e663 TWINE: replaced magic numbers
688730bf13 TWINE: moved members to better place
Commit: c5a7f0e6637ec8de7981b1219608969399377b73
https://github.com/scummvm/scummvm/commit/c5a7f0e6637ec8de7981b1219608969399377b73
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2020-12-11T17:13:37+01:00
Commit Message:
TWINE: replaced magic numbers
Changed paths:
engines/twine/collision.cpp
engines/twine/collision.h
engines/twine/shared.h
diff --git a/engines/twine/collision.cpp b/engines/twine/collision.cpp
index 08de2c3a86..c98de651bf 100644
--- a/engines/twine/collision.cpp
+++ b/engines/twine/collision.cpp
@@ -32,6 +32,7 @@
#include "twine/renderer.h"
#include "twine/resources.h"
#include "twine/scene.h"
+#include "twine/shared.h"
#include "twine/twine.h"
namespace TwinE {
@@ -248,16 +249,16 @@ int32 Collision::checkCollisionWithActors(int32 actorIdx) {
actorTest->lastY = 0;
if (actorTest->staticFlags.bUseMiniZv) {
- if (newAngle >= 0x80 && newAngle < 0x180 && actor->angle > 0x80 && actor->angle < 0x180) {
+ if (newAngle >= ANGLE_45 && newAngle < ANGLE_135 && actor->angle > ANGLE_45 && actor->angle < ANGLE_135) {
actorTest->lastX = 192;
}
- if (newAngle >= 0x180 && newAngle < 0x280 && actor->angle > 0x180 && actor->angle < 0x280) {
+ if (newAngle >= ANGLE_135 && newAngle < ANGLE_225 && actor->angle > ANGLE_135 && actor->angle < ANGLE_225) {
actorTest->lastZ = -64;
}
- if (newAngle >= 0x280 && newAngle < 0x380 && actor->angle > 0x280 && actor->angle < 0x380) {
+ if (newAngle >= ANGLE_225 && newAngle < ANGLE_315 && actor->angle > ANGLE_225 && actor->angle < ANGLE_315) {
actorTest->lastX = -64;
}
- if ((newAngle >= 0x380 || newAngle < 0x80) && (actor->angle > 0x380 || actor->angle < 0x80)) {
+ if ((newAngle >= ANGLE_315 || newAngle < ANGLE_45) && (actor->angle > ANGLE_315 || actor->angle < ANGLE_45)) {
actorTest->lastX = 192;
}
} else {
@@ -268,16 +269,16 @@ int32 Collision::checkCollisionWithActors(int32 actorIdx) {
if ((actorTest->boudingBox.x.topRight - actorTest->boudingBox.x.bottomLeft == actorTest->boudingBox.z.topRight - actorTest->boudingBox.z.bottomLeft) &&
(actor->boudingBox.x.topRight - actor->boudingBox.x.bottomLeft == actor->boudingBox.z.topRight - actor->boudingBox.z.bottomLeft)) {
- if (newAngle < 0x180) {
+ if (newAngle < ANGLE_135) {
_engine->_movements->processActorX = xLeftTest - actor->boudingBox.x.topRight;
}
- if (newAngle >= 0x180 && newAngle < 0x280) {
+ if (newAngle >= ANGLE_135 && newAngle < ANGLE_225) {
_engine->_movements->processActorZ = zRightTest - actor->boudingBox.z.bottomLeft;
}
- if (newAngle >= 0x280 && newAngle < 0x380) {
+ if (newAngle >= ANGLE_225 && newAngle < ANGLE_315) {
_engine->_movements->processActorX = xRightTest - actor->boudingBox.x.bottomLeft;
}
- if (newAngle >= 0x380 || (newAngle < 0x380 && newAngle < 0x80)) {
+ if (newAngle >= ANGLE_315 || (newAngle < ANGLE_315 && newAngle < ANGLE_45)) {
_engine->_movements->processActorZ = zLeftTest - actor->boudingBox.z.topRight;
}
} else {
@@ -300,16 +301,16 @@ int32 Collision::checkCollisionWithActors(int32 actorIdx) {
actorTest->lastY = 0;
if (actorTest->staticFlags.bUseMiniZv) {
- if (newAngle >= 0x80 && newAngle < 0x180 && actor->angle > 0x80 && actor->angle < 0x180) {
+ if (newAngle >= ANGLE_45 && newAngle < ANGLE_135 && actor->angle > ANGLE_45 && actor->angle < ANGLE_135) {
actorTest->lastX = 192;
}
- if (newAngle >= 0x180 && newAngle < 0x280 && actor->angle > 0x180 && actor->angle < 0x280) {
+ if (newAngle >= ANGLE_135 && newAngle < ANGLE_225 && actor->angle > ANGLE_135 && actor->angle < ANGLE_225) {
actorTest->lastZ = -64;
}
- if (newAngle >= 0x280 && newAngle < 0x380 && actor->angle > 0x280 && actor->angle < 0x380) {
+ if (newAngle >= ANGLE_225 && newAngle < ANGLE_315 && actor->angle > ANGLE_225 && actor->angle < ANGLE_315) {
actorTest->lastX = -64;
}
- if ((newAngle >= 0x380 || newAngle < 0x80) && (actor->angle > 0x380 || actor->angle < 0x80)) {
+ if ((newAngle >= ANGLE_315 || newAngle < ANGLE_45) && (actor->angle > ANGLE_315 || actor->angle < ANGLE_45)) {
actorTest->lastX = 192;
}
} else {
@@ -320,16 +321,16 @@ int32 Collision::checkCollisionWithActors(int32 actorIdx) {
if ((actorTest->boudingBox.x.topRight - actorTest->boudingBox.x.bottomLeft == actorTest->boudingBox.z.topRight - actorTest->boudingBox.z.bottomLeft) &&
(actor->boudingBox.x.topRight - actor->boudingBox.x.bottomLeft == actor->boudingBox.z.topRight - actor->boudingBox.z.bottomLeft)) {
- if (newAngle < 0x180) {
+ if (newAngle < ANGLE_135) {
_engine->_movements->processActorX = xLeftTest - actor->boudingBox.x.topRight;
}
- if (newAngle >= 0x180 && newAngle < 0x280) {
+ if (newAngle >= ANGLE_135 && newAngle < ANGLE_225) {
_engine->_movements->processActorZ = zRightTest - actor->boudingBox.z.bottomLeft;
}
- if (newAngle >= 0x280 && newAngle < 0x380) {
+ if (newAngle >= ANGLE_225 && newAngle < ANGLE_315) {
_engine->_movements->processActorX = xRightTest - actor->boudingBox.x.bottomLeft;
}
- if (newAngle >= 0x380 || (newAngle < 0x380 && newAngle < 0x80)) {
+ if (newAngle >= ANGLE_315 || (newAngle < ANGLE_315 && newAngle < ANGLE_45)) {
_engine->_movements->processActorZ = zLeftTest - actor->boudingBox.z.topRight;
}
} else {
@@ -527,7 +528,7 @@ bool Collision::checkExtraCollisionWithBricks(int32 x, int32 y, int32 z, int32 o
return false;
}
-int32 Collision::checkExtraCollisionWithExtra(ExtraListStruct *extra, int32 extraIdx) {
+int32 Collision::checkExtraCollisionWithExtra(ExtraListStruct *extra, int32 extraIdx) const {
Common::MemoryReadStream stream(_engine->_resources->spriteBoundingBoxPtr, _engine->_resources->spriteBoundingBoxSize);
stream.seek(extra->info0 * 16);
stream.skip(4);
diff --git a/engines/twine/collision.h b/engines/twine/collision.h
index f6031d23ae..2b0687737d 100644
--- a/engines/twine/collision.h
+++ b/engines/twine/collision.h
@@ -109,7 +109,7 @@ public:
* @param extra to process
* @param extraIdx extra index to check collision
*/
- int32 checkExtraCollisionWithExtra(ExtraListStruct *extra, int32 extraIdx);
+ int32 checkExtraCollisionWithExtra(ExtraListStruct *extra, int32 extraIdx) const;
};
} // namespace TwinE
diff --git a/engines/twine/shared.h b/engines/twine/shared.h
index 64769a7168..c9e0530fb7 100644
--- a/engines/twine/shared.h
+++ b/engines/twine/shared.h
@@ -160,7 +160,9 @@ enum class ExtraSpecialType {
};
#define ANGLE_360 1024
+#define ANGLE_315 896
#define ANGLE_270 768
+#define ANGLE_225 640
#define ANGLE_180 512
#define ANGLE_135 384
#define ANGLE_90 256
Commit: 688730bf13b7c7668a3fb52469204f9471c06fd2
https://github.com/scummvm/scummvm/commit/688730bf13b7c7668a3fb52469204f9471c06fd2
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2020-12-11T17:13:37+01:00
Commit Message:
TWINE: moved members to better place
Changed paths:
engines/twine/debug_scene.h
engines/twine/gamestate.h
engines/twine/menu.cpp
engines/twine/menu.h
engines/twine/text.cpp
engines/twine/text.h
diff --git a/engines/twine/debug_scene.h b/engines/twine/debug_scene.h
index 2c1ea8fb94..effcbf7b80 100644
--- a/engines/twine/debug_scene.h
+++ b/engines/twine/debug_scene.h
@@ -34,7 +34,7 @@ class DebugScene {
private:
TwinEEngine *_engine;
- void drawBoundingBoxProjectPoints(ScenePoint *pPoint3d, ScenePoint *pPoint3dProjected);
+ void drawBoundingBoxProjectPoints(ScenePoint *point3d, ScenePoint *point3dProjected);
int32 checkZoneType(int32 type);
public:
DebugScene(TwinEEngine *engine);
diff --git a/engines/twine/gamestate.h b/engines/twine/gamestate.h
index dd4d22cbf3..a04827ecc4 100644
--- a/engines/twine/gamestate.h
+++ b/engines/twine/gamestate.h
@@ -89,6 +89,8 @@ private:
void initGameStateVars();
void initHeroVars();
+ MenuSettings gameChoicesSettings;
+
public:
GameState(TwinEEngine *engine);
@@ -195,7 +197,6 @@ public:
int32 gameChoices[10]; // inGameMenuData
int32 numChoices = 0; // numOfOptionsInChoice
- MenuSettings gameChoicesSettings; // choiceTab - same structure as menu settings
int32 choiceAnswer = 0; // inGameMenuAnswer
/** Initialize all engine variables */
diff --git a/engines/twine/menu.cpp b/engines/twine/menu.cpp
index f37707855e..cd5ce0d4a1 100644
--- a/engines/twine/menu.cpp
+++ b/engines/twine/menu.cpp
@@ -166,7 +166,6 @@ Menu::Menu(TwinEEngine *engine) {
Common::fill(&behaviourAnimState[0], &behaviourAnimState[4], 0);
Common::fill(&itemAngle[0], &itemAngle[255], 0);
- Common::fill(&currMenuTextBuffer[0], &currMenuTextBuffer[256], 0);
}
Menu::~Menu() {
diff --git a/engines/twine/menu.h b/engines/twine/menu.h
index 3f113482c0..d42afb8890 100644
--- a/engines/twine/menu.h
+++ b/engines/twine/menu.h
@@ -193,10 +193,6 @@ public:
Menu(TwinEEngine *engine);
~Menu();
- int32 currMenuTextIndex = -1;
- int32 currMenuTextBank = TextBankId::None;
- char currMenuTextBuffer[256];
-
int16 itemAngle[255]; // objectRotation
/** Behaviour menu move pointer */
diff --git a/engines/twine/text.cpp b/engines/twine/text.cpp
index ad131bce48..86247f159e 100644
--- a/engines/twine/text.cpp
+++ b/engines/twine/text.cpp
@@ -46,6 +46,10 @@ namespace TwinE {
#define INDEXOFFSET 0
#define DIALOGSOFFSET 1
+Text::Text(TwinEEngine *engine) : _engine(engine) {
+ Common::fill(&currMenuTextBuffer[0], &currMenuTextBuffer[256], 0);
+}
+
Text::~Text() {
free(dialTextPtr);
free(dialOrderPtr);
@@ -715,9 +719,9 @@ void Text::copyText(const char *src, char *dst, int32 size) {
}
bool Text::getMenuText(int32 index, char *text, uint32 textSize) {
- if (index == _engine->_menu->currMenuTextIndex) {
- if (_engine->_menu->currMenuTextBank == _engine->_scene->sceneTextBank) {
- Common::strlcpy(text, _engine->_menu->currMenuTextBuffer, textSize);
+ if (index == currMenuTextIndex) {
+ if (currMenuTextBank == _engine->_scene->sceneTextBank) {
+ Common::strlcpy(text, currMenuTextBuffer, textSize);
return true;
}
}
@@ -733,10 +737,10 @@ bool Text::getMenuText(int32 index, char *text, uint32 textSize) {
copyText(_currDialTextPtr, text, _currDialTextSize);
_currDialTextSize++;
- copyText(text, _engine->_menu->currMenuTextBuffer, _currDialTextSize);
+ copyText(text, currMenuTextBuffer, _currDialTextSize);
- _engine->_menu->currMenuTextIndex = index;
- _engine->_menu->currMenuTextBank = _engine->_scene->sceneTextBank;
+ currMenuTextIndex = index;
+ currMenuTextBank = _engine->_scene->sceneTextBank;
return true;
}
diff --git a/engines/twine/text.h b/engines/twine/text.h
index e810fa2f8c..90d3258f13 100644
--- a/engines/twine/text.h
+++ b/engines/twine/text.h
@@ -184,6 +184,10 @@ private:
/** Current dialogue text size */
int32 _currDialTextSize = 0;
+ char currMenuTextBuffer[256];
+ int32 currMenuTextBank = TextBankId::None;
+ int32 currMenuTextIndex = -1;
+
/** Pixel size between dialogue text */
int32 _dialSpaceBetween = 0;
/** Pixel size of the space character */
@@ -209,7 +213,7 @@ private:
int32 _dialTextBoxLines = 0; // dialogueBoxParam1
int32 _dialTextBoxParam2 = 0; // dialogueBoxParam2
public:
- Text(TwinEEngine *engine) : _engine(engine) {}
+ Text(TwinEEngine *engine);
~Text();
// TODO: refactor all this variables and related functions
More information about the Scummvm-git-logs
mailing list