[Scummvm-cvs-logs] scummvm master -> d9564d4cb2a0275698119b22e6ef3df32472d1da

bluegr bluegr at gmail.com
Wed Mar 4 11:46:11 CET 2015


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

Summary:
8778603d34 DRASCULA: fix crash/graphic glitch at castle towers
43a0992538 DRASCULA: comment "actors.cpp"
0abf6d72b0 DRASCULA: comment "talk.cpp"
bcf2e8204c DRASCULA: comment "talk.cpp"
d9564d4cb2 Merge pull request #589 from norbertbajko/drascula_crash


Commit: 8778603d342da33957cf995dd3547231795b14ba
    https://github.com/scummvm/scummvm/commit/8778603d342da33957cf995dd3547231795b14ba
Author: Norbert Bajkó (norbert.bajko94 at gmail.com)
Date: 2015-03-01T14:48:34+01:00

Commit Message:
DRASCULA: fix crash/graphic glitch at castle towers

Fix bug #5903 DRASCULA-IT: Crash/graphic glitch at castle towers

Changed paths:
    engines/drascula/actors.cpp
    engines/drascula/talk.cpp



diff --git a/engines/drascula/actors.cpp b/engines/drascula/actors.cpp
index 51148bb..0c18f51 100644
--- a/engines/drascula/actors.cpp
+++ b/engines/drascula/actors.cpp
@@ -396,6 +396,13 @@ void DrasculaEngine::increaseFrameNum() {
 		curHeight = (int)newHeight;
 		curWidth = (int)newWidth;
 	}
+
+	if ((currentChapter == 5) && (_roomNumber == 45)) {
+		curY = 0;
+		curX = 0;
+		curHeight = 0;
+		curWidth = 0;
+	}
 }
 
 void DrasculaEngine::walkDown() {
diff --git a/engines/drascula/talk.cpp b/engines/drascula/talk.cpp
index ed29dc5..9773cec 100644
--- a/engines/drascula/talk.cpp
+++ b/engines/drascula/talk.cpp
@@ -379,6 +379,7 @@ void DrasculaEngine::talk(const char *said, const char *filename) {
 
 	int y_mask_talk = 170;
 	int face;
+	bool notTowers = !((currentChapter == 5) && (_roomNumber == 45));
 
 	if (currentChapter == 6) {
 		if (flags[0] == 0 && _roomNumber == 102) {
@@ -434,44 +435,54 @@ void DrasculaEngine::talk(const char *said, const char *filename) {
 			if (currentChapter == 2)
 				copyRect(x_talk_izq[face], y_mask_talk, curX + 8, curY - 1, TALK_WIDTH, TALK_HEIGHT,
 						extraSurface, screenSurface);
-			else
+			else if (notTowers) {
 				reduce_hare_chico(x_talk_izq[face], y_mask_talk, curX + (int)((8.0f / 100) * factor_red[MIN(201, curY + curHeight)]),
-						curY, TALK_WIDTH, TALK_HEIGHT, factor_red[MIN(201, curY + curHeight)],
-						extraSurface, screenSurface);
-
+					curY, TALK_WIDTH, TALK_HEIGHT, factor_red[MIN(201, curY + curHeight)],
+					extraSurface, screenSurface);
+			}
 			updateRefresh();
 		} else if (trackProtagonist == 1) {
 			if (currentChapter == 2)
 				copyRect(x_talk_dch[face], y_mask_talk, curX + 12, curY, TALK_WIDTH, TALK_HEIGHT,
 					extraSurface, screenSurface);
-			else
+			else if (notTowers) {
 				reduce_hare_chico(x_talk_dch[face], y_mask_talk, curX + (int)((12.0f / 100) * factor_red[MIN(201, curY + curHeight)]),
 					curY, TALK_WIDTH, TALK_HEIGHT, factor_red[MIN(201, curY + curHeight)], extraSurface, screenSurface);
+			}
 			updateRefresh();
 		} else if (trackProtagonist == 2) {
 			if (currentChapter == 2)
 				copyRect(x_talk_izq[face], y_mask_talk, curX + 12, curY, TALK_WIDTH, TALK_HEIGHT,
 					frontSurface, screenSurface);
-			else
+			else if (notTowers) {
 				reduce_hare_chico(x_talk_izq[face], y_mask_talk,
-						talkOffset + curX + (int)((12.0f / 100) * factor_red[MIN(201, curY + curHeight)]),
-						curY, TALK_WIDTH, TALK_HEIGHT, factor_red[MIN(201, curY + curHeight)],
-						frontSurface, screenSurface);
+					talkOffset + curX + (int)((12.0f / 100) * factor_red[MIN(201, curY + curHeight)]),
+					curY, TALK_WIDTH, TALK_HEIGHT, factor_red[MIN(201, curY + curHeight)],
+					frontSurface, screenSurface);
+			}
 			updateRefresh();
 		} else if (trackProtagonist == 3) {
 			if (currentChapter == 2)
 				copyRect(x_talk_dch[face], y_mask_talk, curX + 8, curY, TALK_WIDTH, TALK_HEIGHT,
 					frontSurface, screenSurface);
-			else
+			else if (notTowers) {
 				reduce_hare_chico(x_talk_dch[face], y_mask_talk,
-						talkOffset + curX + (int)((8.0f / 100) * factor_red[MIN(201, curY + curHeight)]),
-						curY, TALK_WIDTH,TALK_HEIGHT, factor_red[MIN(201, curY + curHeight)],
-						frontSurface, screenSurface);
+					talkOffset + curX + (int)((8.0f / 100) * factor_red[MIN(201, curY + curHeight)]),
+					curY, TALK_WIDTH, TALK_HEIGHT, factor_red[MIN(201, curY + curHeight)],
+					frontSurface, screenSurface);
+			}
 			updateRefresh();
 		}
 
-		if (!_subtitlesDisabled)
-			centerText(said, curX, curY);
+		if (!_subtitlesDisabled) {
+			if (notTowers) {
+				centerText(said, curX, curY);
+			}
+			else {
+				centerText(said, 160, 25);
+			}
+		}
+	
 
 		updateScreen();
 		updateEvents();


Commit: 43a09925381838efbcd36dadba465cb5cae3eb11
    https://github.com/scummvm/scummvm/commit/43a09925381838efbcd36dadba465cb5cae3eb11
Author: norbertbajko (norbert.bajko94 at gmail.com)
Date: 2015-03-01T17:06:20+01:00

Commit Message:
DRASCULA: comment "actors.cpp"

Explain #5903 DRASCULA-IT bug fix

Changed paths:
    engines/drascula/actors.cpp



diff --git a/engines/drascula/actors.cpp b/engines/drascula/actors.cpp
index 0c18f51..849e2cc 100644
--- a/engines/drascula/actors.cpp
+++ b/engines/drascula/actors.cpp
@@ -396,7 +396,10 @@ void DrasculaEngine::increaseFrameNum() {
 		curHeight = (int)newHeight;
 		curWidth = (int)newWidth;
 	}
-
+	
+	// Fix bug #5903 DRASCULA-IT: Crash/graphic glitch at castle towers
+	// Chapter 5 Room 45 is the castle tower part
+	// Fixing the character's coordinate(0,0) in the tower section to prevent out of window coordinates and crash
 	if ((currentChapter == 5) && (_roomNumber == 45)) {
 		curY = 0;
 		curX = 0;


Commit: 0abf6d72b0ca15a81518190cb2040eb798754ebd
    https://github.com/scummvm/scummvm/commit/0abf6d72b0ca15a81518190cb2040eb798754ebd
Author: norbertbajko (norbert.bajko94 at gmail.com)
Date: 2015-03-01T17:16:54+01:00

Commit Message:
DRASCULA: comment "talk.cpp"

Explain #5903 DRASCULA-IT bug fix

Changed paths:
    engines/drascula/talk.cpp



diff --git a/engines/drascula/talk.cpp b/engines/drascula/talk.cpp
index 9773cec..6e0dd2a 100644
--- a/engines/drascula/talk.cpp
+++ b/engines/drascula/talk.cpp
@@ -379,6 +379,10 @@ void DrasculaEngine::talk(const char *said, const char *filename) {
 
 	int y_mask_talk = 170;
 	int face;
+	
+	// Fix bug #5903 DRASCULA-IT: Crash/graphic glitch at castle towers
+	// Chapter 5 Room 45 is the castle tower part
+	// We use this variable as a condition below because at the castle towers we don't want to draw out the head 
 	bool notTowers = !((currentChapter == 5) && (_roomNumber == 45));
 
 	if (currentChapter == 6) {


Commit: bcf2e8204c481d9c4df17786e16591c100eb6c82
    https://github.com/scummvm/scummvm/commit/bcf2e8204c481d9c4df17786e16591c100eb6c82
Author: norbertbajko (norbert.bajko94 at gmail.com)
Date: 2015-03-01T17:23:28+01:00

Commit Message:
DRASCULA: comment "talk.cpp"

Explain #5903 DRASCULA-IT bug fix

Changed paths:
    engines/drascula/talk.cpp



diff --git a/engines/drascula/talk.cpp b/engines/drascula/talk.cpp
index 6e0dd2a..e9fec86 100644
--- a/engines/drascula/talk.cpp
+++ b/engines/drascula/talk.cpp
@@ -478,6 +478,8 @@ void DrasculaEngine::talk(const char *said, const char *filename) {
 			updateRefresh();
 		}
 
+		// Fix bug #5903 DRASCULA-IT: Crash/graphic glitch at castle towers
+		// Without the head we have to fix the subtitle's coordinates(upper-center) at the tower section
 		if (!_subtitlesDisabled) {
 			if (notTowers) {
 				centerText(said, curX, curY);


Commit: d9564d4cb2a0275698119b22e6ef3df32472d1da
    https://github.com/scummvm/scummvm/commit/d9564d4cb2a0275698119b22e6ef3df32472d1da
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2015-03-04T12:45:07+02:00

Commit Message:
Merge pull request #589 from norbertbajko/drascula_crash

DRASCULA: fix crash/graphic glitch at castle towers

Changed paths:
    engines/drascula/actors.cpp
    engines/drascula/talk.cpp









More information about the Scummvm-git-logs mailing list