[Scummvm-git-logs] scummvm master -> a1965c0dc5a8ca932efe0cea713196f0fe34e621

AndywinXp noreply at scummvm.org
Fri May 1 16:32:44 UTC 2026


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

Summary:
9e7d861a8c LASTEXPRESS: Fix inaccuracies in Anna's character logic
af83ebd83e LASTEXPRESS: Fix bugs in Alexei's character logic
70a94f4d1d LASTEXPRESS: Fix bugs in Clerk's character logic
ff60aa8360 LASTEXPRESS: Fix bugs in Francois's character logic
2b083bce26 LASTEXPRESS: Fix bugs in Hadija's character logic
2cad3549a2 LASTEXPRESS: Fix bugs in Master's character logic
7bbdefaa2a LASTEXPRESS: Fix bugs in Max's character logic
0ef33cabb3 LASTEXPRESS: Fix bugs in Monsieur's character logic
a1965c0dc5 LASTEXPRESS: Fix bugs in TrainM's character logic


Commit: 9e7d861a8c628b61e4136b6341d2d842fa45c616
    https://github.com/scummvm/scummvm/commit/9e7d861a8c628b61e4136b6341d2d842fa45c616
Author: AndywinXp (andywinxp at gmail.com)
Date: 2026-05-01T18:32:30+02:00

Commit Message:
LASTEXPRESS: Fix inaccuracies in Anna's character logic

Changed paths:
    engines/lastexpress/characters/anna.cpp
    engines/lastexpress/game/logic.h


diff --git a/engines/lastexpress/characters/anna.cpp b/engines/lastexpress/characters/anna.cpp
index 6ecbfcfbf99..9a05015c9ff 100644
--- a/engines/lastexpress/characters/anna.cpp
+++ b/engines/lastexpress/characters/anna.cpp
@@ -964,6 +964,7 @@ void LogicManager::HAND_Anna_DoWalkP1(HAND_PARAMS) {
 
 			if (getCharacter(kCharacterAnna).direction != 1) {
 				bumpCathRx(getCharacter(kCharacterAnna).characterPosition.car, getCharacter(kCharacterAnna).characterPosition.position + 750);
+				break;
 			}
 		} else {
 			if (getCharacter(kCharacterAnna).callbacks[getCharacter(kCharacterAnna).currentCall + 8] != 2)
@@ -984,6 +985,7 @@ void LogicManager::HAND_Anna_DoWalkP1(HAND_PARAMS) {
 
 			if (getCharacter(kCharacterAnna).direction != 1) {
 				bumpCathRx(getCharacter(kCharacterAnna).characterPosition.car, getCharacter(kCharacterAnna).characterPosition.position + 750);
+				break;
 			}
 		}
 
@@ -3368,11 +3370,11 @@ void LogicManager::HAND_Anna_GiveMaxToCond2(HAND_PARAMS) {
 		case 9:
 			softReleaseAtDoor(kCharacterAnna, 37);
 			endGraphics(kCharacterAnna);
-			getCharacter(kCharacterAnna).characterPosition.location = kCharacterAnna;
+			getCharacter(kCharacterAnna).characterPosition.location = 1;
 			getCharacter(kCharacterAnna).characterPosition.position = 4070;
-			getCharacterCurrentParams(kCharacterAnna)[2] = kCharacterAnna;
+			getCharacterCurrentParams(kCharacterAnna)[2] = 1;
 			setDoor(45, kCharacterCath, 0, 255, 255);
-			setDoor(53, kCharacterAnna, kCharacterAnna, 10, 9);
+			setDoor(53, kCharacterAnna, 1, 10, 9);
 
 			if (checkCathDir(kCarRedSleeping, 78))
 				bumpCath(kCarRedSleeping, 49, 255);
@@ -3457,14 +3459,14 @@ void LogicManager::HAND_Anna_Concert(HAND_PARAMS) {
 		getCharacter(kCharacterAnna).characterPosition.location = 1;
 		break;
 	case 191668032:
-		COND_Anna_LeaveConcert(0, 0, 0, 0);
+		CONS_Anna_LeaveConcert(0, 0, 0, 0);
 		break;
 	default:
 		break;
 	}
 }
 
-void LogicManager::COND_Anna_LeaveConcert(CONS_PARAMS) {
+void LogicManager::CONS_Anna_LeaveConcert(CONS_PARAMS) {
 	CharacterCallParams *params = &getCharacter(kCharacterAnna).callParams[getCharacter(kCharacterAnna).currentCall];
 	_engine->getMessageManager()->setMessageHandle(kCharacterAnna, &LogicManager::HAND_Anna_LeaveConcert);
 	getCharacter(kCharacterAnna).callbacks[getCharacter(kCharacterAnna).currentCall] = 57;
@@ -3491,7 +3493,7 @@ void LogicManager::HAND_Anna_LeaveConcert(HAND_PARAMS) {
 			AnnaCall(&LogicManager::CONS_Anna_DoWalk, 4, 4070, 0, 0);
 			break;
 		case 2:
-			setDoor(37, kCharacterAlexei, 1, 0, 0);
+			setDoor(37, kCharacterCath, 1, 0, 0);
 			send(kCharacterAnna, kCharacterCond2, 205033696, 0);
 			startCycOtis(kCharacterAnna, "625Ef");
 			softBlockAtDoor(kCharacterAnna, 37);
diff --git a/engines/lastexpress/game/logic.h b/engines/lastexpress/game/logic.h
index 91bbab234a8..e7fc0cb91c7 100644
--- a/engines/lastexpress/game/logic.h
+++ b/engines/lastexpress/game/logic.h
@@ -1367,7 +1367,7 @@ private:
 	void CONS_Anna_Concert(CONS_PARAMS);
 	void HAND_Anna_Concert(HAND_PARAMS);
 
-	void COND_Anna_LeaveConcert(CONS_PARAMS);
+	void CONS_Anna_LeaveConcert(CONS_PARAMS);
 	void HAND_Anna_LeaveConcert(HAND_PARAMS);
 
 	void CONS_Anna_LeaveConcertCathInComp(CONS_PARAMS);


Commit: af83ebd83e0595566a608469bb6fcec0002c6bc1
    https://github.com/scummvm/scummvm/commit/af83ebd83e0595566a608469bb6fcec0002c6bc1
Author: AndywinXp (andywinxp at gmail.com)
Date: 2026-05-01T18:32:30+02:00

Commit Message:
LASTEXPRESS: Fix bugs in Alexei's character logic

Changed paths:
    engines/lastexpress/characters/alexei.cpp


diff --git a/engines/lastexpress/characters/alexei.cpp b/engines/lastexpress/characters/alexei.cpp
index 6ae4035d756..4add7fbcbdd 100644
--- a/engines/lastexpress/characters/alexei.cpp
+++ b/engines/lastexpress/characters/alexei.cpp
@@ -367,6 +367,9 @@ void LogicManager::HAND_Alexei_DoWalk(HAND_PARAMS) {
 	switch (msg->action) {
 	case 0:
 	case 12:
+		if (msg->action == 12)
+			getCharacter(kCharacterAlexei).inventoryItem = 0;
+
 		if (walk(kCharacterAlexei, getCharacterCurrentParams(kCharacterAlexei)[0], getCharacterCurrentParams(kCharacterAlexei)[1])) {
 			getCharacter(kCharacterAlexei).currentCall--;
 			_engine->getMessageManager()->setMessageHandle(kCharacterAlexei, _functionsAlexei[getCharacter(kCharacterAlexei).callbacks[getCharacter(kCharacterAlexei).currentCall]]);


Commit: 70a94f4d1d6674c1860c60350e84d59472cd8ce1
    https://github.com/scummvm/scummvm/commit/70a94f4d1d6674c1860c60350e84d59472cd8ce1
Author: AndywinXp (andywinxp at gmail.com)
Date: 2026-05-01T18:32:30+02:00

Commit Message:
LASTEXPRESS: Fix bugs in Clerk's character logic

Changed paths:
    engines/lastexpress/characters/clerk.cpp


diff --git a/engines/lastexpress/characters/clerk.cpp b/engines/lastexpress/characters/clerk.cpp
index 3d622685599..095a9ac4740 100644
--- a/engines/lastexpress/characters/clerk.cpp
+++ b/engines/lastexpress/characters/clerk.cpp
@@ -512,8 +512,8 @@ void LogicManager::HAND_Clerk_Processing(HAND_PARAMS) {
 				endDialog("ZFX1001");
 		}
 
-		if ((getCharacterCurrentParams(kCharacterClerk)[2] && (getCharacter(kCharacterCath).characterPosition.car != getCharacterCurrentParams(kCharacterClerk)[0])) ||
-			 (isNight() != (getCharacterCurrentParams(kCharacterClerk)[1] != 0 ? true : false))) {
+		if (getCharacterCurrentParams(kCharacterClerk)[2] && ((getCharacter(kCharacterCath).characterPosition.car != getCharacterCurrentParams(kCharacterClerk)[0]) ||
+			 (isNight() != (getCharacterCurrentParams(kCharacterClerk)[1] != 0 ? true : false)))) {
 
 			switch (getCharacter(kCharacterCath).characterPosition.car) {
 			case 1:


Commit: ff60aa836024cf17c39c1edb579beb0e6e1a466e
    https://github.com/scummvm/scummvm/commit/ff60aa836024cf17c39c1edb579beb0e6e1a466e
Author: AndywinXp (andywinxp at gmail.com)
Date: 2026-05-01T18:32:30+02:00

Commit Message:
LASTEXPRESS: Fix bugs in Francois's character logic

Changed paths:
    engines/lastexpress/characters/francois.cpp


diff --git a/engines/lastexpress/characters/francois.cpp b/engines/lastexpress/characters/francois.cpp
index df2c5814574..c651c4a1921 100644
--- a/engines/lastexpress/characters/francois.cpp
+++ b/engines/lastexpress/characters/francois.cpp
@@ -349,11 +349,11 @@ void LogicManager::HAND_Francois_DoWalk(HAND_PARAMS) {
 				}
 			} else {
 				if (getCharacter(kCharacterCath).characterPosition.position <= getCharacter(kCharacterFrancois).characterPosition.position) {
-					playNIS(kEventFrancoisShowEggNight);
-				} else {
 					playNIS(kEventFrancoisShowEggNightD);
+				} else {
+					playNIS(kEventFrancoisShowEggNight);
 				}
-				
+
 			}
 			
 			if (getCharacter(kCharacterFrancois).direction == 1) {


Commit: 2b083bce264b0b2bff9e5dcfc2e894972d949158
    https://github.com/scummvm/scummvm/commit/2b083bce264b0b2bff9e5dcfc2e894972d949158
Author: AndywinXp (andywinxp at gmail.com)
Date: 2026-05-01T18:32:30+02:00

Commit Message:
LASTEXPRESS: Fix bugs in Hadija's character logic

Changed paths:
    engines/lastexpress/characters/hadija.cpp


diff --git a/engines/lastexpress/characters/hadija.cpp b/engines/lastexpress/characters/hadija.cpp
index 40118aeeba2..15140834128 100644
--- a/engines/lastexpress/characters/hadija.cpp
+++ b/engines/lastexpress/characters/hadija.cpp
@@ -236,7 +236,7 @@ void LogicManager::CONS_Hadija_PeekF(CONS_PARAMS) {
 void LogicManager::HAND_Hadija_PeekF(HAND_PARAMS) {
 	switch (msg->action) {
 	case 12:
-		getCharacter(kCharacterHadija).characterPosition.position = 2740;
+		getCharacter(kCharacterHadija).characterPosition.position = 4070;
 		getCharacter(kCharacterHadija).callbacks[getCharacter(kCharacterHadija).currentCall + 8] = 1;
 		HadijaCall(&LogicManager::CONS_Hadija_DoCorrOtis, "619Cf", 6, 0, 0);
 		break;


Commit: 2cad3549a2b98dcde44cf579976b145626566c42
    https://github.com/scummvm/scummvm/commit/2cad3549a2b98dcde44cf579976b145626566c42
Author: AndywinXp (andywinxp at gmail.com)
Date: 2026-05-01T18:32:30+02:00

Commit Message:
LASTEXPRESS: Fix bugs in Master's character logic

Changed paths:
    engines/lastexpress/characters/master.cpp


diff --git a/engines/lastexpress/characters/master.cpp b/engines/lastexpress/characters/master.cpp
index b742895db8b..3d2096033f6 100644
--- a/engines/lastexpress/characters/master.cpp
+++ b/engines/lastexpress/characters/master.cpp
@@ -1375,7 +1375,7 @@ void LogicManager::HAND_Master_MovingDay(HAND_PARAMS) {
 				getCharacterCurrentParams(kCharacterMaster)[1] = 0x7FFFFFFF;
 			}
 
-			switch (rnd(15)) {
+			switch (rnd(5)) {
 			case 0:
 				playDialog(kCharacterCath, "ZFX1005", rnd(15) + 2, 0);
 				break;
@@ -1849,7 +1849,7 @@ void LogicManager::HAND_Master_EndVienna(HAND_PARAMS) {
 			} else {
 				if (_globals[kGlobalRegisteredTimeAtWhichCathGaveFirebirdToKronos]) {
 					if (_doneNIS[kEventKronosReturnBriefcase]) {
-						endGame(1, 61, 61, true);
+						endGame(1, _globals[kGlobalRegisteredTimeAtWhichCathGaveFirebirdToKronos], 61, true);
 						return;
 					} else {
 						endGame(1, 2155500, 59, true);


Commit: 7bbdefaa2af1370f2603e6c18c6e44d74f99215b
    https://github.com/scummvm/scummvm/commit/7bbdefaa2af1370f2603e6c18c6e44d74f99215b
Author: AndywinXp (andywinxp at gmail.com)
Date: 2026-05-01T18:32:30+02:00

Commit Message:
LASTEXPRESS: Fix bugs in Max's character logic

Changed paths:
    engines/lastexpress/characters/max.cpp


diff --git a/engines/lastexpress/characters/max.cpp b/engines/lastexpress/characters/max.cpp
index e0fdf3d7dfd..b9da6f85bf7 100644
--- a/engines/lastexpress/characters/max.cpp
+++ b/engines/lastexpress/characters/max.cpp
@@ -132,7 +132,7 @@ void LogicManager::CONS_Max_DoSeqOtis(CONS_PARAMS) {
 
 void LogicManager::HAND_Max_DoSeqOtis(HAND_PARAMS) {
 	switch (msg->action) {
-	case 2:
+	case 3:
 		getCharacter(kCharacterMax).currentCall--;
 		_engine->getMessageManager()->setMessageHandle(kCharacterMax, _functionsMax[getCharacter(kCharacterMax).callbacks[getCharacter(kCharacterMax).currentCall]]);
 		fedEx(kCharacterMax, kCharacterMax, 18, 0);


Commit: 0ef33cabb3686052bbdc5284cb0529c753fe8f20
    https://github.com/scummvm/scummvm/commit/0ef33cabb3686052bbdc5284cb0529c753fe8f20
Author: AndywinXp (andywinxp at gmail.com)
Date: 2026-05-01T18:32:31+02:00

Commit Message:
LASTEXPRESS: Fix bugs in Monsieur's character logic

Changed paths:
    engines/lastexpress/characters/monsieur.cpp


diff --git a/engines/lastexpress/characters/monsieur.cpp b/engines/lastexpress/characters/monsieur.cpp
index c6433431dad..44d1cd57105 100644
--- a/engines/lastexpress/characters/monsieur.cpp
+++ b/engines/lastexpress/characters/monsieur.cpp
@@ -294,7 +294,7 @@ void LogicManager::CONS_Monsieur_FinishSeqOtis(CONS_PARAMS) {
 void LogicManager::HAND_Monsieur_FinishSeqOtis(HAND_PARAMS) {
 	switch (msg->action) {
 	case 0:
-		if (getCharacter(kCharacterMonsieur).direction == 4) {
+		if (getCharacter(kCharacterMonsieur).direction != 4) {
 			getCharacter(kCharacterMonsieur).currentCall--;
 			_engine->getMessageManager()->setMessageHandle(kCharacterMonsieur, _functionsMonsieur[getCharacter(kCharacterMonsieur).callbacks[getCharacter(kCharacterMonsieur).currentCall]]);
 			fedEx(kCharacterMonsieur, kCharacterMonsieur, 18, 0);


Commit: a1965c0dc5a8ca932efe0cea713196f0fe34e621
    https://github.com/scummvm/scummvm/commit/a1965c0dc5a8ca932efe0cea713196f0fe34e621
Author: AndywinXp (andywinxp at gmail.com)
Date: 2026-05-01T18:32:31+02:00

Commit Message:
LASTEXPRESS: Fix bugs in TrainM's character logic

Changed paths:
    engines/lastexpress/characters/trainm.cpp


diff --git a/engines/lastexpress/characters/trainm.cpp b/engines/lastexpress/characters/trainm.cpp
index 9e7ae7b14b6..4e2020d27db 100644
--- a/engines/lastexpress/characters/trainm.cpp
+++ b/engines/lastexpress/characters/trainm.cpp
@@ -2750,11 +2750,9 @@ void LogicManager::HAND_TrainM_InCharge(HAND_PARAMS) {
 	case 18:
 		switch (getCharacter(kCharacterTrainM).callbacks[getCharacter(kCharacterTrainM).currentCall + 8]) {
 		case 1:
+			startCycOtis(kCharacterTrainM, "620E");
+			// fall through
 		case 2:
-			if (msg->action == 1) {
-				startCycOtis(kCharacterTrainM, "620E");
-			}
-
 			if (whoRunningDialog(kCharacterTrainM)) {
 				getCharacter(kCharacterTrainM).callbacks[getCharacter(kCharacterTrainM).currentCall + 8] = 2;
 				TrainMCall(&LogicManager::CONS_TrainM_DoWait, 225, 0, 0, 0);




More information about the Scummvm-git-logs mailing list