[Scummvm-git-logs] scummvm master -> 1f6e9eb540d2f09443d4a88a7d1d5de40e77bee8

Strangerke noreply at scummvm.org
Mon Jun 2 21:24:45 UTC 2025


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

Summary:
6fc42f655a M4: More cleanup in krn_pal
1f6e9eb540 M4: RIDDLE: Fix bug #15973


Commit: 6fc42f655a2a9c0b921c3f951055e75714f296a8
    https://github.com/scummvm/scummvm/commit/6fc42f655a2a9c0b921c3f951055e75714f296a8
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2025-06-02T22:24:34+01:00

Commit Message:
M4: More cleanup in krn_pal

Changed paths:
    engines/m4/graphics/krn_pal.cpp


diff --git a/engines/m4/graphics/krn_pal.cpp b/engines/m4/graphics/krn_pal.cpp
index 6ba441526d1..68fe3198895 100644
--- a/engines/m4/graphics/krn_pal.cpp
+++ b/engines/m4/graphics/krn_pal.cpp
@@ -115,7 +115,7 @@ static void create_luminance_map(RGB8 *pal) {
 	}
 }
 
-// finds the best macthes for the in the greys in the grey ramp range using the free range greys
+// finds the best matches for the in the greys in the grey ramp range using the free range greys
 // used to map greys out of the grey ramp area, and then again to map the grey ramp out of the grey ramp area!
 static void make_translation_table(RGB8 *pal) {
 	for (int32 i = 0; i < NUM_GREYS; i++) {
@@ -373,9 +373,6 @@ void kernel_unexamine_inventory_object(RGB8 *pal, int steps, int delay) {
 // This is an inplace remap
 // fadeToMe must already have been set up to correspond to the image on the screen
 void remap_buffer_with_luminance_map(Buffer *src, int32 x1, int32 y1, int32 x2, int32 y2) {
-	uint8 *ptr;
-	int32 x, y;
-
 	if ((!src) || (!src->data)) return;
 
 	// WORKAROUND: Fix original bounding that could result in buffer overruns on final y2 line
@@ -389,9 +386,9 @@ void remap_buffer_with_luminance_map(Buffer *src, int32 x1, int32 y1, int32 x2,
 	x2 -= x1;
 	y2 -= y1;
 
-	for (y = 0; y <= y2; y++) {
-		ptr = &src->data[(y + y1) * src->stride + x1];
-		for (x = 0; x <= x2; x++) {
+	for (int32 y = 0; y <= y2; y++) {
+		uint8 *ptr = &src->data[(y + y1) * src->stride + x1];
+		for (int32 x = 0; x <= x2; x++) {
 			// Remap the greyed out pixel to the closest grey in GREY_START to GREY_END range
 			// shift right 3, takes a 255 value and makes it out of 32 (the number of greys in reduced grey ramp)
 			ptr[x] = (uint8)(GREY_START + (_GP(fadeToMe)[ptr[x]].g >> 3));	 // Use green instead of red cause we're having a green screen 
@@ -437,18 +434,15 @@ bool krn_GetGreyMode() {
 }
 
 void krn_UpdateGreyArea(Buffer *greyOutThisBuffer, int32 scrnX, int32 scrnY, int32 greyX1, int32 greyY1, int32 greyX2, int32 greyY2) {
-	bool        finished;
-	int32       x1, y1, x2, y2;
-
 	if ((!_GP(greyVideoMode)) || (!greyOutThisBuffer) || (!greyOutThisBuffer->data)) {
 		return;
 	}
-	x1 = imath_max(greyX1 + scrnX, _GP(greyAreaX1));
-	y1 = imath_max(greyY1 + scrnY, _GP(greyAreaY1));
-	x2 = imath_min(greyX2 + scrnX, _GP(greyAreaX2));
-	y2 = imath_min(greyY2 + scrnY, _GP(greyAreaY2));
+	int32 x1 = imath_max(greyX1 + scrnX, _GP(greyAreaX1));
+	int32 y1 = imath_max(greyY1 + scrnY, _GP(greyAreaY1));
+	int32 x2 = imath_min(greyX2 + scrnX, _GP(greyAreaX2));
+	int32 y2 = imath_min(greyY2 + scrnY, _GP(greyAreaY2));
 	if ((x1 > x2) || (y1 > y2)) return;
-	finished = false;
+	bool finished = false;
 	if (!finished) {
 		if (y1 < _GP(colorAreaY1)) {
 			remap_buffer_with_luminance_map(greyOutThisBuffer,
@@ -482,13 +476,9 @@ void krn_UpdateGreyArea(Buffer *greyOutThisBuffer, int32 scrnX, int32 scrnY, int
 }
 
 void krn_ChangeBufferLuminance(Buffer *target, int32 percent) {
-	int32 x, y, r, g, b, i;
-	uint8 *inverse_palette, *tempPtr;
-	frac16 fracPercent;
-	RGB8 *pal;
 	uint8 luminancePal[256];
 
-	// Paremeter verification
+	// Parameter verification
 	if ((!target) || (!target->data)) {
 		return;
 	}
@@ -503,28 +493,28 @@ void krn_ChangeBufferLuminance(Buffer *target, int32 percent) {
 	}
 
 	// Calculate the frac16 form of the percent
-	fracPercent = (percent * 255) / 100;
+	frac16 fracPercent = (percent * 255) / 100;
 
 	// Get the palette and the inverse palette
-	pal = &_G(master_palette)[0];
-	inverse_palette = _G(inverse_pal)->get_ptr();
+	RGB8 *pal = &_G(master_palette)[0];
+	uint8 *inverse_palette = _G(inverse_pal)->get_ptr();
 	if ((!pal) || (!inverse_palette)) {
 		return;
 	}
 
 	// Calculate the luminance Pal table
-	for (i = 0; i < 256; i++) {
-		r = ((((pal[i].r * fracPercent) >> 10) >> 1)) & 0x1f;
-		g = ((((pal[i].g * fracPercent) >> 10) >> 1)) & 0x1f;
-		b = ((((pal[i].b * fracPercent) >> 10) >> 1)) & 0x1f;
+	for (int32 i = 0; i < 256; i++) {
+		int32 r = ((((pal[i].r * fracPercent) >> 10) >> 1)) & 0x1f;
+		int32 g = ((((pal[i].g * fracPercent) >> 10) >> 1)) & 0x1f;
+		int32 b = ((((pal[i].b * fracPercent) >> 10) >> 1)) & 0x1f;
 		luminancePal[i] = inverse_palette[(r << 10) + (g << 5) + b];
 	}
 
 	// Note: this loop should be y0 to y1, x0 to x1, not a stride*h loop.
 	// Loop through every pixel replacing it with the index into the luminance table
-	tempPtr = target->data;
-	for (y = 0; y < target->h; y++) {
-		for (x = 0; x < target->stride; x++) {
+	uint8 *tempPtr = target->data;
+	for (int32 y = 0; y < target->h; y++) {
+		for (int32 x = 0; x < target->stride; x++) {
 			*tempPtr = luminancePal[*tempPtr];
 			tempPtr++;
 			//pixel = *tempPtr;
@@ -572,12 +562,10 @@ void disable_player_commands_and_fade_init(int trigger) {
 }
 
 static void pal_fade_update(RGB8 *origPalette) {
-	int32 i, currTime;
-	frac16	tempFrac, tempFrac2;
-
-	currTime = timer_read_60();
+	int32 currTime = timer_read_60();
 
 	if (currTime >= _GP(myFadeEndDelayTime)) {		// If the delay has expired, fade more
+		frac16 tempFrac2;
 		if (currTime >= _GP(myFadeEndTime)) {
 			tempFrac2 = _GP(myFadePercentFrac);
 			_GP(myFadeStartPercentFrac) = _GP(myFadePercentFrac);
@@ -585,13 +573,13 @@ static void pal_fade_update(RGB8 *origPalette) {
 		} else if (currTime <= _GP(myFadeStartTime)) {
 			return;
 		} else {
-			tempFrac = DivSF16((currTime - _GP(myFadeStartTime)) << 16, (_GP(myFadeEndTime) - _GP(myFadeStartTime)) << 16);
+			frac16 tempFrac = DivSF16((currTime - _GP(myFadeStartTime)) << 16, (_GP(myFadeEndTime) - _GP(myFadeStartTime)) << 16);
 			tempFrac2 = MulSF16(tempFrac, _GP(myFadePercentFrac) - _GP(myFadeStartPercentFrac)) + _GP(myFadeStartPercentFrac);
 		}
 
 		_GP(myFadeCurrPercentFrac) = tempFrac2;
 
-		for (i = _GP(myFadeStartIndex); i <= _GP(myFadeEndIndex); i++) {
+		for (int32 i = _GP(myFadeStartIndex); i <= _GP(myFadeEndIndex); i++) {
 			_GP(myFXPalette)[i].r = (Byte)(MulSF16(origPalette[i].r << 16, tempFrac2) >> 16);
 			_GP(myFXPalette)[i].g = (Byte)(MulSF16(origPalette[i].g << 16, tempFrac2) >> 16);
 			_GP(myFXPalette)[i].b = (Byte)(MulSF16(origPalette[i].b << 16, tempFrac2) >> 16);
@@ -600,7 +588,7 @@ static void pal_fade_update(RGB8 *origPalette) {
 		// Recalculate the end delay time again
 		_GP(myFadeEndDelayTime) = currTime + _GP(myFadeDelayTicks);		// Recalculate the end delay time again
 
-		// Must reresh the DAC
+		// Must refresh the DAC
 		_GP(myFadeDACrefresh) = true;
 	}
 }
@@ -670,10 +658,9 @@ void pal_cycle_resume() {
 }
 
 static void pal_cycle_update() {
-	int32 i, currTime;
-	RGB8 firstColour;
+	int32 i;
 
-	currTime = timer_read_60();		// Get current time
+	int32 currTime = timer_read_60();		// Get current time
 
 	if (_GP(myCycleNeverStopCycling) == false) { 			// If there is an end time to get to...  
 
@@ -682,39 +669,40 @@ static void pal_cycle_update() {
 			return;											// Return 
 		}
 	} else {
-		// See if we should colour cycle right now
-		if (currTime >= _GP(myCycleEndDelayTime)) {			// If the delay has expired, colour cycle
+		// See if we should color cycle right now
+		if (currTime >= _GP(myCycleEndDelayTime)) {			// If the delay has expired, color cycle
+			RGB8 firstColor;
 			// Cycle the master palette 
-			firstColour.r = _G(master_palette)[_GP(myCycleStartIndex)].r;		// Remember first colour
-			firstColour.g = _G(master_palette)[_GP(myCycleStartIndex)].g;
-			firstColour.b = _G(master_palette)[_GP(myCycleStartIndex)].b;
-			for (i = _GP(myCycleStartIndex); i < _GP(myCycleEndIndex); ++i) {	// Shift colours down one in palette
+			firstColor.r = _G(master_palette)[_GP(myCycleStartIndex)].r;		// Remember first color
+			firstColor.g = _G(master_palette)[_GP(myCycleStartIndex)].g;
+			firstColor.b = _G(master_palette)[_GP(myCycleStartIndex)].b;
+			for (i = _GP(myCycleStartIndex); i < _GP(myCycleEndIndex); ++i) {	// Shift colors down one in palette
 				_G(master_palette)[i].r = _G(master_palette)[i + 1].r;
 				_G(master_palette)[i].g = _G(master_palette)[i + 1].g;
 				_G(master_palette)[i].b = _G(master_palette)[i + 1].b;
 			}
-			_G(master_palette)[_GP(myCycleEndIndex)].r = firstColour.r; 		// Set last colour to the first colour
-			_G(master_palette)[_GP(myCycleEndIndex)].g = firstColour.g;
-			_G(master_palette)[_GP(myCycleEndIndex)].b = firstColour.b;
+			_G(master_palette)[_GP(myCycleEndIndex)].r = firstColor.r; 		// Set last color to the first color
+			_G(master_palette)[_GP(myCycleEndIndex)].g = firstColor.g;
+			_G(master_palette)[_GP(myCycleEndIndex)].b = firstColor.b;
 
 			// Then cycle the FX palette 
-			firstColour.r = _GP(myFXPalette)[_GP(myCycleStartIndex)].r;			// Remember first colour
-			firstColour.g = _GP(myFXPalette)[_GP(myCycleStartIndex)].g;
-			firstColour.b = _GP(myFXPalette)[_GP(myCycleStartIndex)].b;
-			for (i = _GP(myCycleStartIndex); i < _GP(myCycleEndIndex); ++i) {	// Shift colours down one in palette
+			firstColor.r = _GP(myFXPalette)[_GP(myCycleStartIndex)].r;			// Remember first color
+			firstColor.g = _GP(myFXPalette)[_GP(myCycleStartIndex)].g;
+			firstColor.b = _GP(myFXPalette)[_GP(myCycleStartIndex)].b;
+			for (i = _GP(myCycleStartIndex); i < _GP(myCycleEndIndex); ++i) {	// Shift colors down one in palette
 				_GP(myFXPalette)[i].r = _GP(myFXPalette)[i + 1].r;
 				_GP(myFXPalette)[i].g = _GP(myFXPalette)[i + 1].g;
 				_GP(myFXPalette)[i].b = _GP(myFXPalette)[i + 1].b;
 			}
-			_GP(myFXPalette)[_GP(myCycleEndIndex)].r = firstColour.r; 			// Set last colour to the first colour
-			_GP(myFXPalette)[_GP(myCycleEndIndex)].g = firstColour.g;
-			_GP(myFXPalette)[_GP(myCycleEndIndex)].b = firstColour.b;
+			_GP(myFXPalette)[_GP(myCycleEndIndex)].r = firstColor.r; 			// Set last color to the first color
+			_GP(myFXPalette)[_GP(myCycleEndIndex)].g = firstColor.g;
+			_GP(myFXPalette)[_GP(myCycleEndIndex)].b = firstColor.b;
 
 
 			// Recalculate the end delay time again
 			_GP(myCycleEndDelayTime) = currTime + _GP(myCycleDelayTicks);		// Recalculate the end delay time again
 
-			// must reresh the DAC
+			// must refresh the DAC
 			_GP(myCycleDACrefresh) = true;
 		}
 	}
@@ -812,18 +800,15 @@ void DAC_tint_range(const RGB8 *tintColor, int32 percent, int32 firstPalEntry, i
 			b = _G(master_palette)[i].b + (MulSF16(percent, db) >> 16);
 
 			// Check for under/overflow
-			if (r > 255) r = 255;
-			if (r < 0) r = 0;
-			if (g > 255) g = 255;
-			if (g < 0) g = 0;
-			if (b > 255) b = 255;
-			if (b < 0) b = 0;
+			r = CLIP(r, 0, 255);
+			g = CLIP(g, 0, 255);
+			b = CLIP(b, 0, 255);
 
 			color.r = (byte)r;
 			color.g = (byte)g;
 			color.b = (byte)b;
 
-			gr_pal_set_entry(i, &color);	// Set the new colour to the DAC
+			gr_pal_set_entry(i, &color);	// Set the new color to the DAC
 		}
 
 	} else {
@@ -855,12 +840,9 @@ void DAC_tint_range(const RGB8 *tintColor, int32 percent, int32 firstPalEntry, i
 			b = (_G(master_palette)[i].b - (db >> 16));
 
 			// Check for under/overflow
-			if (r > 255) r = 255;
-			if (r < 0) r = 0;
-			if (g > 255) g = 255;
-			if (g < 0) g = 0;
-			if (b > 255) b = 255;
-			if (b < 0) b = 0;
+			r = CLIP(r, 0, 255);
+			g = CLIP(g, 0, 255);
+			b = CLIP(b, 0, 255);
 
 			color.r = (byte)r;
 			color.g = (byte)g;


Commit: 1f6e9eb540d2f09443d4a88a7d1d5de40e77bee8
    https://github.com/scummvm/scummvm/commit/1f6e9eb540d2f09443d4a88a7d1d5de40e77bee8
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2025-06-02T22:24:34+01:00

Commit Message:
M4: RIDDLE: Fix bug #15973

Changed paths:
    engines/m4/riddle/rooms/section2/room203.cpp


diff --git a/engines/m4/riddle/rooms/section2/room203.cpp b/engines/m4/riddle/rooms/section2/room203.cpp
index faa06f2b7c4..81b5f70b361 100644
--- a/engines/m4/riddle/rooms/section2/room203.cpp
+++ b/engines/m4/riddle/rooms/section2/room203.cpp
@@ -669,7 +669,7 @@ void Room203::daemon() {
 	case 76:
 		digi_preload("203r21");
 		_stream1 = series_stream("old lady gives helmet", 5, 1, 79);
-		series_stream_break_on_frame(_stream1, 77, 62);
+		series_stream_break_on_frame(_stream1, 62, 77);
 		break;
 
 	case 77:




More information about the Scummvm-git-logs mailing list