[Scummvm-git-logs] scummvm master -> 086fbdffe40224a05cacba30ab44cc0bacbd9d53
neuromancer
noreply at scummvm.org
Fri Jan 20 08:15:10 UTC 2023
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:
45480659b1 FREESCAPE: do not deallocate textures in TinyGL directly
086fbdffe4 FREESCAPE: properly reset inputs when changing areas
Commit: 45480659b1253ce9bf0ba494c039cf8e885c6a94
https://github.com/scummvm/scummvm/commit/45480659b1253ce9bf0ba494c039cf8e885c6a94
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2023-01-20T09:15:55+01:00
Commit Message:
FREESCAPE: do not deallocate textures in TinyGL directly
Changed paths:
engines/freescape/freescape.cpp
diff --git a/engines/freescape/freescape.cpp b/engines/freescape/freescape.cpp
index f9f95523c2d..da1e74e580e 100644
--- a/engines/freescape/freescape.cpp
+++ b/engines/freescape/freescape.cpp
@@ -160,9 +160,12 @@ FreescapeEngine::~FreescapeEngine() {
delete _border;
}
- delete _borderTexture;
- delete _uiTexture;
- delete _titleTexture;
+
+ if (_gfx->_isAccelerated) {
+ delete _borderTexture;
+ delete _uiTexture;
+ delete _titleTexture;
+ }
for (auto &it : _areaMap) {
delete it._value;
Commit: 086fbdffe40224a05cacba30ab44cc0bacbd9d53
https://github.com/scummvm/scummvm/commit/086fbdffe40224a05cacba30ab44cc0bacbd9d53
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2023-01-20T09:15:55+01:00
Commit Message:
FREESCAPE: properly reset inputs when changing areas
Changed paths:
engines/freescape/freescape.cpp
engines/freescape/freescape.h
engines/freescape/games/driller.cpp
diff --git a/engines/freescape/freescape.cpp b/engines/freescape/freescape.cpp
index da1e74e580e..192b67d4c38 100644
--- a/engines/freescape/freescape.cpp
+++ b/engines/freescape/freescape.cpp
@@ -336,6 +336,16 @@ void FreescapeEngine::drawFrame() {
void FreescapeEngine::pressedKey(const int keycode) {}
+void FreescapeEngine::resetInput() {
+ _shootMode = false;
+ centerCrossair();
+ g_system->warpMouse(_crossairPosition.x, _crossairPosition.y);
+ g_system->getEventManager()->purgeMouseEvents();
+ g_system->getEventManager()->purgeKeyboardEvents();
+ rotate(0, 0);
+}
+
+
void FreescapeEngine::processInput() {
float currentFrame = g_system->getMillis();
float deltaTime = 20.0;
@@ -512,7 +522,6 @@ Common::Error FreescapeEngine::run() {
// Simple main event loop
int saveSlot = ConfMan.getInt("save_slot");
- centerCrossair();
if (saveSlot == -1)
titleScreen();
loadBorder(); // Border is load unmodified
@@ -529,7 +538,7 @@ Common::Error FreescapeEngine::run() {
bool endGame = false;
// Draw first frame
- rotate(0, 0);
+ resetInput();
drawFrame();
_gfx->flipBuffer();
g_system->updateScreen();
diff --git a/engines/freescape/freescape.h b/engines/freescape/freescape.h
index 522e7d205da..43752be62cd 100644
--- a/engines/freescape/freescape.h
+++ b/engines/freescape/freescape.h
@@ -178,6 +178,7 @@ public:
bool _shootMode;
bool _noClipMode;
void processInput();
+ void resetInput();
void generateDemoInput();
virtual void pressedKey(const int keycode);
void move(CameraMovement direction, uint8 scale, float deltaTime);
diff --git a/engines/freescape/games/driller.cpp b/engines/freescape/games/driller.cpp
index f35a7fa9378..9a71d97e432 100644
--- a/engines/freescape/games/driller.cpp
+++ b/engines/freescape/games/driller.cpp
@@ -222,6 +222,7 @@ void DrillerEngine::gotoArea(uint16 areaID, int entranceID) {
if (areaID == _startArea && entranceID == _startEntrance) {
_yaw = 280;
+ _pitch = 0;
} else if (areaID == 127) {
assert(entranceID == 0);
_yaw = 90;
@@ -242,10 +243,7 @@ void DrillerEngine::gotoArea(uint16 areaID, int entranceID) {
_currentArea->_skyColor = 0;
_currentArea->_usualBackgroundColor = 0;
- if (areaID != _startArea || entranceID != _startEntrance) {
- g_system->warpMouse(_crossairPosition.x, _crossairPosition.y);
- rotate(0, 0);
- }
+ resetInput();
}
void DrillerEngine::loadGlobalObjects(Common::SeekableReadStream *file, int offset) {
@@ -719,10 +717,10 @@ void DrillerEngine::processBorder() {
while (entry->areaId) {
if (entry->palette == kDrillerCGAPaletteRedGreen) {
- _borderCGAByArea[entry->areaId] = borderTextureRedGreen;
+ _borderCGAByArea[entry->areaId] = borderTextureRedGreen;
_paletteCGAByArea[entry->areaId] = (byte *)kDrillerCGAPaletteRedGreenData;
} else if (entry->palette == kDrillerCGAPalettePinkBlue) {
- _borderCGAByArea[entry->areaId] = _borderTexture;
+ _borderCGAByArea[entry->areaId] = _borderTexture;
_paletteCGAByArea[entry->areaId] = (byte *)kDrillerCGAPalettePinkBlueData;
} else
error("Invalid CGA palette to use");
More information about the Scummvm-git-logs
mailing list