[Scummvm-git-logs] scummvm master -> 853be98846af65137e8b1f298fea03fd9a8f1965

mgerhardy martin.gerhardy at gmail.com
Tue Nov 17 21:06:55 UTC 2020


This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
c45caf3b08 TWINE: fixed selecting slot for saving
a0f39a8c81 TWINE: load holomap resources
fe21416bd6 TWINE: replaced magic numbers
853be98846 TWINE: fixed saving the hero position


Commit: c45caf3b081a1c85debf29bcc48306bf6142c906
    https://github.com/scummvm/scummvm/commit/c45caf3b081a1c85debf29bcc48306bf6142c906
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2020-11-17T21:09:50+01:00

Commit Message:
TWINE: fixed selecting slot for saving

Changed paths:
    engines/twine/menuoptions.cpp


diff --git a/engines/twine/menuoptions.cpp b/engines/twine/menuoptions.cpp
index 58d8a51835..ae6be2b430 100644
--- a/engines/twine/menuoptions.cpp
+++ b/engines/twine/menuoptions.cpp
@@ -341,7 +341,8 @@ int MenuOptions::chooseSave(int textIdx, bool showEmptySlots) {
 
 	if (showEmptySlots) {
 		while (saveFiles.getButtonCount() < maxButtons) {
-			saveFiles.addButton("EMPTY");
+			// the first button is the back button - to subtract that one again to get the real slot index
+			saveFiles.addButton("EMPTY", saveFiles.getButtonCount() - 1);
 		}
 	}
 
@@ -352,8 +353,9 @@ int MenuOptions::chooseSave(int textIdx, bool showEmptySlots) {
 		case TextId::kReturnMenu:
 			return -1;
 		default:
-			// the first button is the back button - to subtract that one again to get the real slot index
-			return saveFiles.getButtonState(id);
+			const int16 slot = saveFiles.getButtonState(id);
+			debug("Selected slot %d for saving", slot);
+			return slot;
 		}
 	}
 


Commit: a0f39a8c817cc4ea50964cb57140b5ccba6b5587
    https://github.com/scummvm/scummvm/commit/a0f39a8c817cc4ea50964cb57140b5ccba6b5587
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2020-11-17T21:40:23+01:00

Commit Message:
TWINE: load holomap resources

Changed paths:
    engines/twine/holomap.cpp
    engines/twine/resources.cpp
    engines/twine/resources.h


diff --git a/engines/twine/holomap.cpp b/engines/twine/holomap.cpp
index 6023515992..11e254711e 100644
--- a/engines/twine/holomap.cpp
+++ b/engines/twine/holomap.cpp
@@ -86,11 +86,9 @@ void Holomap::loadGfxSub2() {
 }
 
 void Holomap::loadHolomapGFX() {
-	uint8 *videoPtr1 = (uint8 *)_engine->workVideoBuffer.getPixels();
-	uint8 *videoPtr3 = videoPtr1 + 7854;
-	uint8 *videoPtr4 = videoPtr1 + 8398;
-
-	uint8 *videoPtr5 = videoPtr1 + 73934;
+	uint8 *videoPtr3 = (uint8 *)_engine->workVideoBuffer.getBasePtr(174, 12);
+	uint8 *videoPtr4 = (uint8 *)_engine->workVideoBuffer.getBasePtr(78, 13);
+	uint8 *videoPtr5 = (uint8 *)_engine->workVideoBuffer.getBasePtr(334, 115);
 
 	HQR::getEntry(videoPtr3, Resources::HQR_RESS_FILE, RESSHQR_HOLOSURFACE);
 	HQR::getEntry(videoPtr4, Resources::HQR_RESS_FILE, RESSHQR_HOLOIMG);
@@ -106,6 +104,7 @@ void Holomap::loadHolomapGFX() {
 	loadGfxSub(videoPtr8);
 
 	// TODO:
+	// uint8 *videoPtr1 = (uint8 *)_engine->workVideoBuffer.getPixels();
 	// uint8 *videoPtr2 = videoPtr1 + 4488;
 	// uint8 *videoPtr11 = videoPtr8 + HQR::getEntry(videoPtr8, Resources::HQR_RESS_FILE, RESSHQR_HOLOPOINTMDL);
 	// uint8 *videoPtr10 = videoPtr11 + 4488;
diff --git a/engines/twine/resources.cpp b/engines/twine/resources.cpp
index 3dc7aff741..12ff6143ad 100644
--- a/engines/twine/resources.cpp
+++ b/engines/twine/resources.cpp
@@ -46,6 +46,11 @@ Resources::~Resources() {
 	free(fontPtr);
 	free(spriteShadowPtr);
 	free(spriteBoundingBoxPtr);
+	free(holomapSurfacePtr);
+	free(holomapImagePtr);
+	free(holomapTwinsenModelPtr);
+	free(holomapTwinsenArrowPtr);
+	free(holomapArrowPtr);
 	free(_engine->_screens->mainPalette);
 }
 
@@ -141,6 +146,31 @@ void Resources::initResources() {
 		error("Failed to load actors bounding box data");
 	}
 
+	holomapSurfaceSize = HQR::getAllocEntry(&holomapSurfacePtr, Resources::HQR_RESS_FILE, RESSHQR_HOLOSURFACE);
+	if (holomapSurfaceSize == 0) {
+		error("Failed to load holomap surface");
+	}
+
+	holomapImageSize = HQR::getAllocEntry(&holomapImagePtr, Resources::HQR_RESS_FILE, RESSHQR_HOLOIMG);
+	if (holomapImageSize == 0) {
+		error("Failed to load holomap image");
+	}
+
+	holomapTwinsenModelSize = HQR::getAllocEntry(&holomapTwinsenModelPtr, Resources::HQR_RESS_FILE, RESSHQR_HOLOTWINMDL);
+	if (holomapTwinsenModelSize == 0) {
+		error("Failed to load holomap twinsen model");
+	}
+
+	holomapArrowSize = HQR::getAllocEntry(&holomapArrowPtr, Resources::HQR_RESS_FILE, RESSHQR_HOLOARROWMDL);
+	if (holomapArrowSize == 0) {
+		error("Failed to load holomap arrow model");
+	}
+
+	holomapTwinsenArrowSize = HQR::getAllocEntry(&holomapTwinsenArrowPtr, Resources::HQR_RESS_FILE, RESSHQR_HOLOTWINARROWMDL);
+	if (holomapTwinsenArrowSize == 0) {
+		error("Failed to load holomap twinsen arrow model");
+	}
+
 	preloadSprites();
 	preloadAnimations();
 	preloadSamples();
diff --git a/engines/twine/resources.h b/engines/twine/resources.h
index 97ac8b2baf..15e70b0098 100644
--- a/engines/twine/resources.h
+++ b/engines/twine/resources.h
@@ -173,6 +173,17 @@ public:
 	uint32 spriteBoundingBoxSize = 0;
 	uint8 *spriteBoundingBoxPtr = nullptr;
 
+	uint32 holomapSurfaceSize = 0;
+	uint8 *holomapSurfacePtr = nullptr;
+	uint32 holomapImageSize = 0;
+	uint8 *holomapImagePtr = nullptr;
+	uint32 holomapTwinsenModelSize = 0;
+	uint8 *holomapTwinsenModelPtr = nullptr;
+	uint32 holomapTwinsenArrowSize = 0;
+	uint8 *holomapTwinsenArrowPtr = nullptr;
+	uint32 holomapArrowSize = 0;
+	uint8 *holomapArrowPtr = nullptr;
+
 	/** Initialize resource pointers */
 	void initResources();
 


Commit: fe21416bd6aa577cef4ce825be4052c2049dc92f
    https://github.com/scummvm/scummvm/commit/fe21416bd6aa577cef4ce825be4052c2049dc92f
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2020-11-17T21:44:16+01:00

Commit Message:
TWINE: replaced magic numbers

Changed paths:
    engines/twine/gamestate.cpp
    engines/twine/holomap.cpp
    engines/twine/renderer.h
    engines/twine/script_life_v1.cpp


diff --git a/engines/twine/gamestate.cpp b/engines/twine/gamestate.cpp
index a4ce949f1c..e4222084a8 100644
--- a/engines/twine/gamestate.cpp
+++ b/engines/twine/gamestate.cpp
@@ -446,7 +446,7 @@ void GameState::processGameoverAnimation() {
 	_engine->_renderer->prepareIsoModel(gameOverPtr);
 	_engine->_sound->stopSamples();
 	_engine->_music->stopMidiMusic(); // stop fade music
-	_engine->_renderer->setCameraPosition(320, 240, 128, 200, 200);
+	_engine->_renderer->setCameraPosition(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2, 128, 200, 200);
 	int32 startLbaTime = _engine->lbaTime;
 	_engine->_interface->setClip(left, top, right, bottom);
 
diff --git a/engines/twine/holomap.cpp b/engines/twine/holomap.cpp
index 11e254711e..c7a4c7f39d 100644
--- a/engines/twine/holomap.cpp
+++ b/engines/twine/holomap.cpp
@@ -157,8 +157,8 @@ void Holomap::processHolomap() {
 	_engine->_screens->copyScreen(_engine->frontVideoBuffer, _engine->workVideoBuffer);
 
 	loadHolomapGFX();
-	drawHolomapTitle(320, 25);
-	_engine->_renderer->setCameraPosition(320, 190, 128, 1024, 1024);
+	drawHolomapTitle(SCREEN_WIDTH / 2, 25);
+	_engine->_renderer->setCameraPosition(SCREEN_WIDTH / 2, 190, 128, 1024, 1024);
 
 	_engine->_text->initTextBank(TextBankId::Inventory_Intro_and_Holomap);
 	_engine->_text->setFontCrossColor(9);
diff --git a/engines/twine/renderer.h b/engines/twine/renderer.h
index 896bb5a069..373dba405f 100644
--- a/engines/twine/renderer.h
+++ b/engines/twine/renderer.h
@@ -241,7 +241,7 @@ public:
 
 	void renderBehaviourModel(int32 boxLeft, int32 boxTop, int32 boxRight, int32 boxBottom, int32 Y, int32 angle, uint8 *entityPtr);
 
-	void renderInventoryItem(int32 X, int32 Y, uint8 *itemBodyPtr, int32 angle, int32 param);
+	void renderInventoryItem(int32 x, int32 y, uint8 *itemBodyPtr, int32 angle, int32 param);
 };
 
 } // namespace TwinE
diff --git a/engines/twine/script_life_v1.cpp b/engines/twine/script_life_v1.cpp
index bc8e095734..9ba2b038be 100644
--- a/engines/twine/script_life_v1.cpp
+++ b/engines/twine/script_life_v1.cpp
@@ -1431,7 +1431,7 @@ static int32 lPROJ_3D(TwinEEngine *engine, LifeScriptContext &ctx) {
 	engine->flip();
 	engine->_scene->changeRoomVar10 = 0;
 
-	engine->_renderer->setCameraPosition(320, 240, 128, 1024, 1024);
+	engine->_renderer->setCameraPosition(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2, 128, 1024, 1024);
 	engine->_renderer->setCameraAngle(0, 1500, 0, 25, -128, 0, 13000);
 	engine->_renderer->setLightVector(896, 950, 0);
 


Commit: 853be98846af65137e8b1f298fea03fd9a8f1965
    https://github.com/scummvm/scummvm/commit/853be98846af65137e8b1f298fea03fd9a8f1965
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2020-11-17T21:58:57+01:00

Commit Message:
TWINE: fixed saving the hero position

Changed paths:
    engines/twine/gamestate.cpp


diff --git a/engines/twine/gamestate.cpp b/engines/twine/gamestate.cpp
index e4222084a8..42689889a3 100644
--- a/engines/twine/gamestate.cpp
+++ b/engines/twine/gamestate.cpp
@@ -237,9 +237,9 @@ bool GameState::saveGame(Common::WriteStream *file) {
 	file->writeByte(magicLevelIdx);
 	file->writeByte(inventoryMagicPoints);
 	file->writeByte(inventoryNumLeafsBox);
-	file->writeSint16LE(_engine->_scene->newHeroX);
-	file->writeSint16LE(_engine->_scene->newHeroY);
-	file->writeSint16LE(_engine->_scene->newHeroZ);
+	file->writeSint16LE(_engine->_scene->sceneHero->x);
+	file->writeSint16LE(_engine->_scene->sceneHero->y);
+	file->writeSint16LE(_engine->_scene->sceneHero->z);
 	file->writeSint16LE(_engine->_scene->sceneHero->angle);
 	file->writeByte(_engine->_scene->sceneHero->body);
 




More information about the Scummvm-git-logs mailing list