diff options
| -rw-r--r-- | actor.cpp | 2 | ||||
| -rw-r--r-- | actor.h | 2 | ||||
| -rw-r--r-- | costume.cpp | 10 | ||||
| -rw-r--r-- | gfx.cpp | 10 | ||||
| -rw-r--r-- | script_v1.cpp | 8 | ||||
| -rw-r--r-- | script_v2.cpp | 4 | ||||
| -rw-r--r-- | scumm.h | 7 | ||||
| -rw-r--r-- | scummvm.cpp | 2 | 
8 files changed, 30 insertions, 15 deletions
@@ -1308,7 +1308,7 @@ byte *Actor::getActorName()  	return ptr;  } -void Actor::remapActor(int r_fact, int g_fact, int b_fact, int threshold) +void Actor::remapActorPalette(int r_fact, int g_fact, int b_fact, int threshold)  {  	byte *akos, *rgbs, *akpl;  	int akpl_size, i; @@ -151,7 +151,7 @@ public:  	byte *getActorName();  	void startWalkActor(int x, int y, int dir); -	void remapActor(int b, int c, int d, int e); +	void remapActorPalette(int r_fact, int g_fact, int b_fact, int threshold);  	void walkActorOld();  	void animateActor(int anim); diff --git a/costume.cpp b/costume.cpp index 348556b974..98a8257fb1 100644 --- a/costume.cpp +++ b/costume.cpp @@ -1349,9 +1349,13 @@ void CostumeRenderer::setPalette(byte *palette)  	byte color;  	for (i = 0; i < _loaded._numColors; i++) { -		color = palette[i]; -		if (color == 255) -			color = _loaded._ptr[8 + i]; +		if (_vm->_vars[_vm->VAR_CURRENT_LIGHTS] & LIGHTMODE_actor_color) { +			color = palette[i]; +			if (color == 255) +				color = _loaded._ptr[8 + i]; +		} else { +			color = (i == 12) ? 0 : 8; +		}  		_palette[i] = color;  	}  } @@ -581,6 +581,10 @@ void Scumm::moveMemInPalRes(int start, int end, byte direction)  	}  } +void Scumm::drawFlashlight() +{ +} +  void Scumm::fadeIn(int effect)  {  	switch (effect) { @@ -2602,11 +2606,11 @@ int Scumm::remapPaletteColor(int r, int g, int b, uint threshold)  		if (ar == r && ag == g && ab == b)  			return i; -		j = abs(ar - r); +		j = ar - r;  		sum = j * j * 3; -		j = abs(ag - g); +		j = ag - g;  		sum += j * j * 6; -		j = abs(ab - b); +		j = ab - b;  		sum += j * j * 2;  		if (sum < bestsum) { diff --git a/script_v1.cpp b/script_v1.cpp index 205dabc978..3ad7289798 100644 --- a/script_v1.cpp +++ b/script_v1.cpp @@ -1547,11 +1547,11 @@ void Scumm::o5_lights()  	warning("o5_lights(%d,%d,%d): lights not implemented", a, b, c); -	if (c==0) +	if (c == 0)  		_vars[VAR_CURRENT_LIGHTS] = a; -	else if (c==1) { -		//LightDx = a; -		//LightDy = b; +	else if (c == 1) { +		_lightDx = a; +		_lightDy = b;  	}  	_fullRedraw = 1;  } diff --git a/script_v2.cpp b/script_v2.cpp index 6e6cca5df3..e402495943 100644 --- a/script_v2.cpp +++ b/script_v2.cpp @@ -2726,10 +2726,10 @@ void Scumm::o6_miscOps()  			setCursorImg(args[1], (uint) - 1, args[2]);  			break;  		case 13: -			derefActorSafe(args[1], "o6_miscOps:14")->remapActor(args[2], args[3], args[4], -1); +			derefActorSafe(args[1], "o6_miscOps:14")->remapActorPalette(args[2], args[3], args[4], -1);  			break;  		case 14: -			derefActorSafe(args[1], "o6_miscOps:14")->remapActor(args[2], args[3], args[4], args[5]); +			derefActorSafe(args[1], "o6_miscOps:14")->remapActorPalette(args[2], args[3], args[4], args[5]);  			break;  		case 15:  			_insaneFlag = args[1]; @@ -754,6 +754,8 @@ public:  	byte _newEffect, _switchRoomEffect2, _switchRoomEffect;  	bool _doEffect; +	 +	uint16 _lightDx, _lightDy;  	void getGraphicsPerformance();  	void initScreens(int a, int b, int w, int h); @@ -818,10 +820,13 @@ public:  	void updateDirtyScreen(int slot);  	VirtScreen *findVirtScreen(int y); -	void fadeOut(int a);  	static void setVirtscreenDirty(VirtScreen *vs, int left, int top, int right, int bottom); +	void drawFlashlight(); +	  	void fadeIn(int effect); +	void fadeOut(int effect); +  	void unkScreenEffect1();  	void unkScreenEffect2();  	void unkScreenEffect3(); diff --git a/scummvm.cpp b/scummvm.cpp index 419fc07c8c..d9275900ba 100644 --- a/scummvm.cpp +++ b/scummvm.cpp @@ -442,6 +442,8 @@ int Scumm::scummLoop(int delta)  		if (!(_vars[VAR_CURRENT_LIGHTS] & LIGHTMODE_screen) &&  		      _vars[VAR_CURRENT_LIGHTS] & LIGHTMODE_flashlight) {  			warning("Flashlight not implemented in this version"); +			drawFlashlight(); +			setActorRedrawFlags();  		}  		processActors();  | 
