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

dreammaster dreammaster at scummvm.org
Fri Feb 26 03:38:30 UTC 2021


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

Summary:
844a94d72b AGS: Fix plugin methods to ScriptMethodParams array
b7886c4b4a AGS: Allow NumberPtr to handle const pointers


Commit: 844a94d72b683eb72a7fea23b13393dc2f72510f
    https://github.com/scummvm/scummvm/commit/844a94d72b683eb72a7fea23b13393dc2f72510f
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2021-02-25T19:34:10-08:00

Commit Message:
AGS: Fix plugin methods to ScriptMethodParams array

Changed paths:
    engines/ags/plugins/ags_blend/ags_blend.cpp
    engines/ags/plugins/ags_blend/ags_blend.h
    engines/ags/plugins/ags_creditz/ags_creditz1.cpp
    engines/ags/plugins/ags_creditz/ags_creditz1.h
    engines/ags/plugins/ags_creditz/ags_creditz2.cpp
    engines/ags/plugins/ags_creditz/ags_creditz2.h
    engines/ags/plugins/ags_flashlight/ags_flashlight.cpp
    engines/ags/plugins/ags_flashlight/ags_flashlight.h
    engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.cpp
    engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.h
    engines/ags/plugins/ags_parallax/ags_parallax.cpp
    engines/ags/plugins/ags_parallax/ags_parallax.h
    engines/ags/plugins/ags_snow_rain/ags_snow_rain.cpp
    engines/ags/plugins/ags_snow_rain/ags_snow_rain.h
    engines/ags/plugins/ags_sprite_font/ags_sprite_font.cpp
    engines/ags/plugins/ags_sprite_font/ags_sprite_font.h
    engines/ags/plugins/plugin_base.h


diff --git a/engines/ags/plugins/ags_blend/ags_blend.cpp b/engines/ags/plugins/ags_blend/ags_blend.cpp
index de7b91e40d..29b34bdf9b 100644
--- a/engines/ags/plugins/ags_blend/ags_blend.cpp
+++ b/engines/ags/plugins/ags_blend/ags_blend.cpp
@@ -150,7 +150,8 @@ public:
 
 #pragma endregion
 
-int AGSBlend::GetAlpha(int sprite, int x, int y) {
+NumberPtr AGSBlend::GetAlpha(const ScriptMethodParams &params) {
+	PARAMS3(int, sprite, int, x, int, y);
 	BITMAP *engineSprite = _engine->GetSpriteGraphic(sprite);
 
 	unsigned char **charbuffer = _engine->GetRawBitmapSurface(engineSprite);
@@ -163,7 +164,8 @@ int AGSBlend::GetAlpha(int sprite, int x, int y) {
 	return alpha;
 }
 
-int AGSBlend::PutAlpha(int sprite, int x, int y, int alpha) {
+NumberPtr AGSBlend::PutAlpha(const ScriptMethodParams &params) {
+	PARAMS4(int, sprite, int, x, int, y, int, alpha);
 	BITMAP *engineSprite = _engine->GetSpriteGraphic(sprite);
 
 	unsigned char **charbuffer = _engine->GetRawBitmapSurface(engineSprite);
@@ -184,7 +186,8 @@ int AGSBlend::xytolocale(int x, int y, int width) {
 	return (y * width + x);
 }
 
-int AGSBlend::HighPass(int sprite, int threshold) {
+NumberPtr AGSBlend::HighPass(const ScriptMethodParams &params) {
+	PARAMS2(int, sprite, int, threshold);
 	BITMAP *src = _engine->GetSpriteGraphic(sprite);
 	int32 srcWidth, srcHeight;
 
@@ -215,7 +218,8 @@ int AGSBlend::HighPass(int sprite, int threshold) {
 
 }
 
-int AGSBlend::Blur(int sprite, int radius) {
+NumberPtr AGSBlend::Blur(const ScriptMethodParams &params) {
+	PARAMS2(int, sprite, int, radius);
 	BITMAP *src = _engine->GetSpriteGraphic(sprite);
 
 	int32 srcWidth, srcHeight;
@@ -356,7 +360,8 @@ int AGSBlend::Blur(int sprite, int radius) {
 	return 0;
 }
 
-int AGSBlend::DrawSprite(int destination, int sprite, int x, int y, int DrawMode, int trans) {
+NumberPtr AGSBlend::DrawSprite(const ScriptMethodParams &params) {
+	PARAMS6(int, destination, int, sprite, int, x, int, y, int, DrawMode, int, trans);
 	trans = 100 - trans;
 	int32 srcWidth, srcHeight, destWidth, destHeight;
 
@@ -577,7 +582,8 @@ int AGSBlend::DrawSprite(int destination, int sprite, int x, int y, int DrawMode
 
 }
 
-int AGSBlend::DrawAdd(int destination, int sprite, int x, int y, float scale) {
+NumberPtr AGSBlend::DrawAdd(const ScriptMethodParams &params) {
+	PARAMS5(int, destination, int, sprite, int, x, int, y, float, scale);
 	int32 srcWidth, srcHeight, destWidth, destHeight;
 
 	BITMAP *src = _engine->GetSpriteGraphic(sprite);
@@ -650,7 +656,8 @@ int AGSBlend::DrawAdd(int destination, int sprite, int x, int y, float scale) {
 	return 0;
 }
 
-int AGSBlend::DrawAlpha(int destination, int sprite, int x, int y, int trans) {
+NumberPtr AGSBlend::DrawAlpha(const ScriptMethodParams &params) {
+	PARAMS5(int, destination, int, sprite, int, x, int, y, int, trans);
 	trans = 100 - trans;
 
 	int32 srcWidth, srcHeight, destWidth, destHeight;
diff --git a/engines/ags/plugins/ags_blend/ags_blend.h b/engines/ags/plugins/ags_blend/ags_blend.h
index 1afe908fb1..9e114420ec 100644
--- a/engines/ags/plugins/ags_blend/ags_blend.h
+++ b/engines/ags/plugins/ags_blend/ags_blend.h
@@ -44,23 +44,23 @@ private:
 	/**
 	 * Gets the alpha value at coords x,y
 	 */
-	static int GetAlpha(int sprite, int x, int y);
+	static NumberPtr GetAlpha(const ScriptMethodParams &params);
 
 	/**
 	 * Sets the alpha value at coords x,y
 	 */
-	static int PutAlpha(int sprite, int x, int y, int alpha);
+	static NumberPtr PutAlpha(const ScriptMethodParams &params);
 
 	/**
 	 * Translates index from a 2D array to a 1D array
 	 */
 	static int xytolocale(int x, int y, int width);
 
-	static int HighPass(int sprite, int threshold);
-	static int Blur(int sprite, int radius);
-	static int DrawSprite(int destination, int sprite, int x, int y, int DrawMode, int trans);
-	static int DrawAdd(int destination, int sprite, int x, int y, float scale);
-	static int DrawAlpha(int destination, int sprite, int x, int y, int trans);
+	static NumberPtr HighPass(const ScriptMethodParams &params);
+	static NumberPtr Blur(const ScriptMethodParams &params);
+	static NumberPtr DrawSprite(const ScriptMethodParams &params);
+	static NumberPtr DrawAdd(const ScriptMethodParams &params);
+	static NumberPtr DrawAlpha(const ScriptMethodParams &params);
 
 public:
 	AGSBlend();
diff --git a/engines/ags/plugins/ags_creditz/ags_creditz1.cpp b/engines/ags/plugins/ags_creditz/ags_creditz1.cpp
index dc42519eb8..bbb10e7483 100644
--- a/engines/ags/plugins/ags_creditz/ags_creditz1.cpp
+++ b/engines/ags/plugins/ags_creditz/ags_creditz1.cpp
@@ -108,14 +108,15 @@ void AGSCreditz1::ScrollCredits(const ScriptMethodParams &params) {
 	}
 }
 
-string AGSCreditz1::GetCredit(const ScriptMethodParams &params) {
+NumberPtr AGSCreditz1::GetCredit(const ScriptMethodParams &params) {
 	PARAMS1(int, ID);
 
-	return (_state->_credits[0][ID]._text == IMAGE_TEXT) ?
-		"image" : _state->_credits[0][ID]._text.c_str();
+	return const_cast<char *>( (_state->_credits[0][ID]._text == IMAGE_TEXT) ?
+		"image" : _state->_credits[0][ID]._text.c_str()
+	);
 }
 
-int AGSCreditz1::IsCreditScrollingFinished(const ScriptMethodParams &params) {
+NumberPtr AGSCreditz1::IsCreditScrollingFinished(const ScriptMethodParams &params) {
 	return true;
 }
 
@@ -134,7 +135,7 @@ void AGSCreditz1::SetEmptyLineHeight(const ScriptMethodParams &params) {
 	//PARAMS1(int, Height);
 }
 
-int AGSCreditz1::GetEmptyLineHeight(const ScriptMethodParams &params) {
+NumberPtr AGSCreditz1::GetEmptyLineHeight(const ScriptMethodParams &params) {
 	return 0;
 }
 
@@ -143,7 +144,7 @@ void AGSCreditz1::SetStaticCredit(const ScriptMethodParams &params) {
 
 }
 
-string AGSCreditz1::GetStaticCredit(const ScriptMethodParams &params) {
+NumberPtr AGSCreditz1::GetStaticCredit(const ScriptMethodParams &params) {
 	//PARAMS1(int, ID);
 	return nullptr;
 }
@@ -152,7 +153,7 @@ void AGSCreditz1::StartEndStaticCredits(const ScriptMethodParams &params) {
 	//PARAMS2(int, onoff, int, res);
 }
 
-int AGSCreditz1::GetCurrentStaticCredit(const ScriptMethodParams &params) {
+NumberPtr AGSCreditz1::GetCurrentStaticCredit(const ScriptMethodParams &params) {
 	return 0;
 }
 
@@ -175,7 +176,7 @@ void AGSCreditz1::ShowStaticCredit(const ScriptMethodParams &params) {
 void AGSCreditz1::StaticReset(const ScriptMethodParams &params) {
 }
 
-string AGSCreditz1::GetStaticCreditTitle(const ScriptMethodParams &params) {
+NumberPtr AGSCreditz1::GetStaticCreditTitle(const ScriptMethodParams &params) {
 	//PARAMS1(int, ID);
 	return nullptr;
 }
@@ -184,7 +185,7 @@ void AGSCreditz1::SetStaticCreditImage(const ScriptMethodParams &params) {
 //int ID, int x, int y, int Slot, int Hcentered, int Vcentered, int time) {
 }
 
-int AGSCreditz1::IsStaticCreditsFinished(const ScriptMethodParams &params) {
+NumberPtr AGSCreditz1::IsStaticCreditsFinished(const ScriptMethodParams &params) {
 	return true;
 }
 
diff --git a/engines/ags/plugins/ags_creditz/ags_creditz1.h b/engines/ags/plugins/ags_creditz/ags_creditz1.h
index 99632ad4f7..dd64208a59 100644
--- a/engines/ags/plugins/ags_creditz/ags_creditz1.h
+++ b/engines/ags/plugins/ags_creditz/ags_creditz1.h
@@ -36,25 +36,25 @@ private:
 
 	static void SetCredit(const ScriptMethodParams &params);
 	static void ScrollCredits(const ScriptMethodParams &params);
-	static string GetCredit(const ScriptMethodParams &params);
-	static int IsCreditScrollingFinished(const ScriptMethodParams &params);
+	static NumberPtr GetCredit(const ScriptMethodParams &params);
+	static NumberPtr IsCreditScrollingFinished(const ScriptMethodParams &params);
 	static void SetCreditImage(const ScriptMethodParams &params);
 	static void PauseScroll(const ScriptMethodParams &params);
 	static void ScrollReset(const ScriptMethodParams &params);
 	static void SetEmptyLineHeight(const ScriptMethodParams &params);
-	static int GetEmptyLineHeight(const ScriptMethodParams &params);
+	static NumberPtr GetEmptyLineHeight(const ScriptMethodParams &params);
 	static void SetStaticCredit(const ScriptMethodParams &params);
-	static string GetStaticCredit(const ScriptMethodParams &params);
+	static NumberPtr GetStaticCredit(const ScriptMethodParams &params);
 	static void StartEndStaticCredits(const ScriptMethodParams &params);
-	static int GetCurrentStaticCredit(const ScriptMethodParams &params);
+	static NumberPtr GetCurrentStaticCredit(const ScriptMethodParams &params);
 	static void SetDefaultStaticDelay(const ScriptMethodParams &params);
 	static void SetStaticPause(const ScriptMethodParams &params);
 	static void SetStaticCreditTitle(const ScriptMethodParams &params);
 	static void ShowStaticCredit(const ScriptMethodParams &params);
 	static void StaticReset(const ScriptMethodParams &params);
-	static string GetStaticCreditTitle(const ScriptMethodParams &params);
+	static NumberPtr GetStaticCreditTitle(const ScriptMethodParams &params);
 	static void SetStaticCreditImage(const ScriptMethodParams &params);
-	static int IsStaticCreditsFinished(const ScriptMethodParams &params);
+	static NumberPtr IsStaticCreditsFinished(const ScriptMethodParams &params);
 
 public:
 	AGSCreditz1();
diff --git a/engines/ags/plugins/ags_creditz/ags_creditz2.cpp b/engines/ags/plugins/ags_creditz/ags_creditz2.cpp
index 589ca4beeb..65a5a22a30 100644
--- a/engines/ags/plugins/ags_creditz/ags_creditz2.cpp
+++ b/engines/ags/plugins/ags_creditz/ags_creditz2.cpp
@@ -109,10 +109,10 @@ void AGSCreditz2::SetCredit(const ScriptMethodParams &params) {
 		c._outline = true;
 }
 
-string AGSCreditz2::GetCredit(const ScriptMethodParams &params) {
+NumberPtr AGSCreditz2::GetCredit(const ScriptMethodParams &params) {
 	PARAMS2(int, sequence, int, ID);
 
-	return _state->_credits[sequence][ID]._text.c_str();
+	return const_cast<char *>(_state->_credits[sequence][ID]._text.c_str());
 }
 
 void AGSCreditz2::CreditsSettings(const ScriptMethodParams &params) {
@@ -132,7 +132,7 @@ void AGSCreditz2::SequenceSettings(const ScriptMethodParams &params) {
 	_state->_seqSettings[sequence].endwait = endwait;
 }
 
-int AGSCreditz2::IsSequenceFinished(const ScriptMethodParams &params) {
+NumberPtr AGSCreditz2::IsSequenceFinished(const ScriptMethodParams &params) {
 	PARAMS1(int, sequence);
 
 	if (_state->_seqSettings[sequence].finished) {
@@ -245,7 +245,7 @@ void AGSCreditz2::RunStaticCreditSequence(const ScriptMethodParams &params) {
 	}
 }
 
-int AGSCreditz2::IsStaticSequenceFinished(const ScriptMethodParams &params) {
+NumberPtr AGSCreditz2::IsStaticSequenceFinished(const ScriptMethodParams &params) {
 	PARAMS1(int, sequence);
 
 	int result = (_state->_stSeqSettings[sequence].finished) ? 1 : 0;
@@ -288,7 +288,7 @@ void AGSCreditz2::SetStaticImage(const ScriptMethodParams &params) {
 	_state->_stCredits[sequence][id].image_time = length;
 }
 
-int AGSCreditz2::GetCurrentStaticCredit(const ScriptMethodParams &params) {
+NumberPtr AGSCreditz2::GetCurrentStaticCredit(const ScriptMethodParams &params) {
 	int result = -1;
 	if (_state->_creditsRunning && _state->_staticCredits)
 		result = _state->_currentStatic;
diff --git a/engines/ags/plugins/ags_creditz/ags_creditz2.h b/engines/ags/plugins/ags_creditz/ags_creditz2.h
index ad4c7ecd4f..4fcdcb76e4 100644
--- a/engines/ags/plugins/ags_creditz/ags_creditz2.h
+++ b/engines/ags/plugins/ags_creditz/ags_creditz2.h
@@ -41,10 +41,10 @@ private:
 
 	static void RunCreditSequence(const ScriptMethodParams &params);
 	static void SetCredit(const ScriptMethodParams &params);
-	static string GetCredit(const ScriptMethodParams &params);
+	static NumberPtr GetCredit(const ScriptMethodParams &params);
 	static void CreditsSettings(const ScriptMethodParams &params);
 	static void SequenceSettings(const ScriptMethodParams &params);
-	static int IsSequenceFinished(const ScriptMethodParams &params);
+	static NumberPtr IsSequenceFinished(const ScriptMethodParams &params);
 	static void PauseScrolling(const ScriptMethodParams &params);
 	static void SetCreditImage(const ScriptMethodParams &params);
 	static void ResetSequence(const ScriptMethodParams &params);
@@ -53,10 +53,10 @@ private:
 	static void SetStaticCreditTitle(const ScriptMethodParams &params);
 	static void SetStaticPause(const ScriptMethodParams &params);
 	static void RunStaticCreditSequence(const ScriptMethodParams &params);
-	static int IsStaticSequenceFinished(const ScriptMethodParams &params);
+	static NumberPtr IsStaticSequenceFinished(const ScriptMethodParams &params);
 	static void ShowStaticCredit(const ScriptMethodParams &params);
 	static void SetStaticImage(const ScriptMethodParams &params);
-	static int GetCurrentStaticCredit(const ScriptMethodParams &params);
+	static NumberPtr GetCurrentStaticCredit(const ScriptMethodParams &params);
 
 	static void makeMask(int sequence);
 	static void drawMask(int sequence, int getput);
diff --git a/engines/ags/plugins/ags_flashlight/ags_flashlight.cpp b/engines/ags/plugins/ags_flashlight/ags_flashlight.cpp
index 861dc9ebc2..7b2b357b88 100644
--- a/engines/ags/plugins/ags_flashlight/ags_flashlight.cpp
+++ b/engines/ags/plugins/ags_flashlight/ags_flashlight.cpp
@@ -569,7 +569,8 @@ void AGSFlashlight::syncGame(Serializer &s) {
 // ************  AGS Interface  ***************
 // ********************************************
 
-void AGSFlashlight::SetFlashlightTint(int RedTint, int GreenTint, int BlueTint) {
+void AGSFlashlight::SetFlashlightTint(const ScriptMethodParams &params) {
+	PARAMS3(int, RedTint, int, GreenTint, int, BlueTint);
 	ClipToRange(RedTint, -31, 31);
 	ClipToRange(GreenTint, -31, 31);
 	ClipToRange(BlueTint, -31, 31);
@@ -582,27 +583,28 @@ void AGSFlashlight::SetFlashlightTint(int RedTint, int GreenTint, int BlueTint)
 	g_BlueTint = BlueTint;
 }
 
-int AGSFlashlight::GetFlashlightTintRed() {
+NumberPtr AGSFlashlight::GetFlashlightTintRed(const ScriptMethodParams &params) {
 	return g_RedTint;
 }
 
-int AGSFlashlight::GetFlashlightTintGreen() {
+NumberPtr AGSFlashlight::GetFlashlightTintGreen(const ScriptMethodParams &params) {
 	return g_GreenTint;
 }
 
-int AGSFlashlight::GetFlashlightTintBlue() {
+NumberPtr AGSFlashlight::GetFlashlightTintBlue(const ScriptMethodParams &params) {
 	return g_BlueTint;
 }
 
-int AGSFlashlight::GetFlashlightMinLightLevel() {
+NumberPtr AGSFlashlight::GetFlashlightMinLightLevel(const ScriptMethodParams &params) {
 	return 0;
 }
 
-int AGSFlashlight::GetFlashlightMaxLightLevel() {
+NumberPtr AGSFlashlight::GetFlashlightMaxLightLevel(const ScriptMethodParams &params) {
 	return 100;
 }
 
-void AGSFlashlight::SetFlashlightDarkness(int LightLevel) {
+void AGSFlashlight::SetFlashlightDarkness(const ScriptMethodParams &params) {
+	PARAMS1(int, LightLevel);
 	ClipToRange(LightLevel, 0, 100);
 
 	if (LightLevel != g_DarknessLightLevel) {
@@ -614,11 +616,12 @@ void AGSFlashlight::SetFlashlightDarkness(int LightLevel) {
 	}
 }
 
-int AGSFlashlight::GetFlashlightDarkness() {
+NumberPtr AGSFlashlight::GetFlashlightDarkness(const ScriptMethodParams &params) {
 	return g_DarknessLightLevel;
 }
 
-void AGSFlashlight::SetFlashlightDarknessSize(int Size) {
+void AGSFlashlight::SetFlashlightDarknessSize(const ScriptMethodParams &params) {
+	PARAMS1(int, Size);
 	if (Size != g_DarknessSize) {
 		g_BitmapMustBeUpdated = true;
 		g_DarknessSize = Size;
@@ -626,12 +629,13 @@ void AGSFlashlight::SetFlashlightDarknessSize(int Size) {
 	}
 }
 
-int AGSFlashlight::GetFlashlightDarknessSize() {
+NumberPtr AGSFlashlight::GetFlashlightDarknessSize(const ScriptMethodParams &params) {
 	return g_DarknessSize;
 }
 
 
-void AGSFlashlight::SetFlashlightBrightness(int LightLevel) {
+void AGSFlashlight::SetFlashlightBrightness(const ScriptMethodParams &params) {
+	PARAMS1(int, LightLevel);
 	ClipToRange(LightLevel, 0, 100);
 
 	if (LightLevel != g_BrightnessLightLevel) {
@@ -643,43 +647,47 @@ void AGSFlashlight::SetFlashlightBrightness(int LightLevel) {
 	}
 }
 
-int AGSFlashlight::GetFlashlightBrightness() {
+NumberPtr AGSFlashlight::GetFlashlightBrightness(const ScriptMethodParams &params) {
 	return g_BrightnessLightLevel;
 }
 
-void AGSFlashlight::SetFlashlightBrightnessSize(int Size) {
+void AGSFlashlight::SetFlashlightBrightnessSize(const ScriptMethodParams &params) {
+	PARAMS1(int, Size);
 	if (Size != g_BrightnessSize) {
 		g_BitmapMustBeUpdated = true;
 		g_BrightnessSize = Size;
 	}
 }
 
-int AGSFlashlight::GetFlashlightBrightnessSize() {
+NumberPtr AGSFlashlight::GetFlashlightBrightnessSize(const ScriptMethodParams &params) {
 	return g_BrightnessSize;
 }
 
-void AGSFlashlight::SetFlashlightPosition(int X, int Y) {
+void AGSFlashlight::SetFlashlightPosition(const ScriptMethodParams &params) {
+	PARAMS2(int, X, int, Y);
 	g_FlashlightX = X;
 	g_FlashlightY = Y;
 }
 
-int AGSFlashlight::GetFlashlightPositionX() {
+NumberPtr AGSFlashlight::GetFlashlightPositionX(const ScriptMethodParams &params) {
 	return g_FlashlightX;
 }
 
-int AGSFlashlight::GetFlashlightPositionY() {
+NumberPtr AGSFlashlight::GetFlashlightPositionY(const ScriptMethodParams &params) {
 	return g_FlashlightY;
 }
 
-void AGSFlashlight::SetFlashlightFollowMouse(int OnOff) {
+void AGSFlashlight::SetFlashlightFollowMouse(const ScriptMethodParams &params) {
+	PARAMS1(int, OnOff);
 	g_FlashlightFollowMouse = (OnOff != 0);
 }
 
-int AGSFlashlight::GetFlashlightFollowMouse() {
+NumberPtr AGSFlashlight::GetFlashlightFollowMouse(const ScriptMethodParams &params) {
 	return g_FlashlightFollowMouse ? 1 : 0;
 }
 
-void AGSFlashlight::SetFlashlightFollowCharacter(int CharacterId, int dx, int dy, int horz, int vert) {
+void AGSFlashlight::SetFlashlightFollowCharacter(const ScriptMethodParams &params) {
+	PARAMS5(int, CharacterId, int, dx, int, dy, int, horz, int, vert);
 	g_FollowCharacterId = CharacterId;
 	g_FollowCharacterDx = dx;
 	g_FollowCharacterDy = dy;
@@ -689,31 +697,32 @@ void AGSFlashlight::SetFlashlightFollowCharacter(int CharacterId, int dx, int dy
 	g_FollowCharacter = _engine->GetCharacter(CharacterId);
 }
 
-int AGSFlashlight::GetFlashlightFollowCharacter() {
+NumberPtr AGSFlashlight::GetFlashlightFollowCharacter(const ScriptMethodParams &params) {
 	return g_FollowCharacterId;
 }
 
-int AGSFlashlight::GetFlashlightCharacterDX() {
+NumberPtr AGSFlashlight::GetFlashlightCharacterDX(const ScriptMethodParams &params) {
 	return g_FollowCharacterDx;
 }
 
-int AGSFlashlight::GetFlashlightCharacterDY() {
+NumberPtr AGSFlashlight::GetFlashlightCharacterDY(const ScriptMethodParams &params) {
 	return g_FollowCharacterDy;
 }
 
-int AGSFlashlight::GetFlashlightCharacterHorz() {
+NumberPtr AGSFlashlight::GetFlashlightCharacterHorz(const ScriptMethodParams &params) {
 	return g_FollowCharacterHorz;
 }
 
-int AGSFlashlight::GetFlashlightCharacterVert() {
+NumberPtr AGSFlashlight::GetFlashlightCharacterVert(const ScriptMethodParams &params) {
 	return g_FollowCharacterVert;
 }
 
-void AGSFlashlight::SetFlashlightMask(int SpriteSlot) {
+void AGSFlashlight::SetFlashlightMask(const ScriptMethodParams &params) {
+	//PARAMS1(int, SpriteSlot);
 	// Not implemented.
 }
 
-int AGSFlashlight::GetFlashlightMask() {
+NumberPtr AGSFlashlight::GetFlashlightMask(const ScriptMethodParams &params) {
 	return 0;
 }
 
diff --git a/engines/ags/plugins/ags_flashlight/ags_flashlight.h b/engines/ags/plugins/ags_flashlight/ags_flashlight.h
index b47e4fbc7c..b4ba748531 100644
--- a/engines/ags/plugins/ags_flashlight/ags_flashlight.h
+++ b/engines/ags/plugins/ags_flashlight/ags_flashlight.h
@@ -87,33 +87,34 @@ private:
 	static void CreateLightBitmap();
 	static void Update();
 	static void syncGame(Serializer &s);
-	static void SetFlashlightTint(int RedTint, int GreenTint, int BlueTint);
-	static int GetFlashlightTintRed();
-	static int GetFlashlightTintGreen();
-	static int GetFlashlightTintBlue();
-	static int GetFlashlightMinLightLevel();
-	static int GetFlashlightMaxLightLevel();
-	static void SetFlashlightDarkness(int LightLevel);
-	static int GetFlashlightDarkness();
-	static void SetFlashlightDarknessSize(int Size);
-	static int GetFlashlightDarknessSize();
-	static void SetFlashlightBrightness(int LightLevel);
-	static int GetFlashlightBrightness();
-	static void SetFlashlightBrightnessSize(int Size);
-	static int GetFlashlightBrightnessSize();
-	static void SetFlashlightPosition(int X, int Y);
-	static int GetFlashlightPositionX();
-	static int GetFlashlightPositionY();
-	static void SetFlashlightFollowMouse(int OnOff);
-	static int GetFlashlightFollowMouse();
-	static void SetFlashlightFollowCharacter(int CharacterId, int dx, int dy, int horz, int vert);
-	static int GetFlashlightFollowCharacter();
-	static int GetFlashlightCharacterDX();
-	static int GetFlashlightCharacterDY();
-	static int GetFlashlightCharacterHorz();
-	static int GetFlashlightCharacterVert();
-	static void SetFlashlightMask(int SpriteSlot);
-	static int GetFlashlightMask();
+
+	static void SetFlashlightTint(const ScriptMethodParams &params);
+	static NumberPtr GetFlashlightTintRed(const ScriptMethodParams &params);
+	static NumberPtr GetFlashlightTintGreen(const ScriptMethodParams &params);
+	static NumberPtr GetFlashlightTintBlue(const ScriptMethodParams &params);
+	static NumberPtr GetFlashlightMinLightLevel(const ScriptMethodParams &params);
+	static NumberPtr GetFlashlightMaxLightLevel(const ScriptMethodParams &params);
+	static void SetFlashlightDarkness(const ScriptMethodParams &params);
+	static NumberPtr GetFlashlightDarkness(const ScriptMethodParams &params);
+	static void SetFlashlightDarknessSize(const ScriptMethodParams &params);
+	static NumberPtr GetFlashlightDarknessSize(const ScriptMethodParams &params);
+	static void SetFlashlightBrightness(const ScriptMethodParams &params);
+	static NumberPtr GetFlashlightBrightness(const ScriptMethodParams &params);
+	static void SetFlashlightBrightnessSize(const ScriptMethodParams &params);
+	static NumberPtr GetFlashlightBrightnessSize(const ScriptMethodParams &params);
+	static void SetFlashlightPosition(const ScriptMethodParams &params);
+	static NumberPtr GetFlashlightPositionX(const ScriptMethodParams &params);
+	static NumberPtr GetFlashlightPositionY(const ScriptMethodParams &params);
+	static void SetFlashlightFollowMouse(const ScriptMethodParams &params);
+	static NumberPtr GetFlashlightFollowMouse(const ScriptMethodParams &params);
+	static void SetFlashlightFollowCharacter(const ScriptMethodParams &params);
+	static NumberPtr GetFlashlightFollowCharacter(const ScriptMethodParams &params);
+	static NumberPtr GetFlashlightCharacterDX(const ScriptMethodParams &params);
+	static NumberPtr GetFlashlightCharacterDY(const ScriptMethodParams &params);
+	static NumberPtr GetFlashlightCharacterHorz(const ScriptMethodParams &params);
+	static NumberPtr GetFlashlightCharacterVert(const ScriptMethodParams &params);
+	static void SetFlashlightMask(const ScriptMethodParams &params);
+	static NumberPtr GetFlashlightMask(const ScriptMethodParams &params);
 public:
 	AGSFlashlight();
 };
diff --git a/engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.cpp b/engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.cpp
index ee0cc5bc31..c78a40321a 100644
--- a/engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.cpp
+++ b/engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.cpp
@@ -179,12 +179,12 @@ void AGSGalaxy::AGS_EngineStartup(IAGSEngine *engine) {
 	}
 }
 
-bool AGSGalaxy::IsAchievementAchieved(const ScriptMethodParams &params) {
+NumberPtr AGSGalaxy::IsAchievementAchieved(const ScriptMethodParams &params) {
 	PARAMS1(char *, id);
 	return AchMan.isAchieved(id);
 }
 
-bool AGSGalaxy::SetAchievementAchieved(const ScriptMethodParams &params) {
+NumberPtr AGSGalaxy::SetAchievementAchieved(const ScriptMethodParams &params) {
 	PARAMS1(char *, id);
 
 	const MetaEngine &meta = ::AGS::g_vm->getMetaEngine();
@@ -200,32 +200,32 @@ bool AGSGalaxy::SetAchievementAchieved(const ScriptMethodParams &params) {
 	return AchMan.setAchievement(id, msg);
 }
 
-bool AGSGalaxy::ResetAchievement(const ScriptMethodParams &params) {
+NumberPtr AGSGalaxy::ResetAchievement(const ScriptMethodParams &params) {
 	PARAMS1(char *, id);
 	return AchMan.clearAchievement(id);
 }
 
-int AGSGalaxy::GetIntStat(const ScriptMethodParams &params) {
+NumberPtr AGSGalaxy::GetIntStat(const ScriptMethodParams &params) {
 	return 0;
 }
 
-int AGSGalaxy::GetFloatStat(const ScriptMethodParams &params) {
+NumberPtr AGSGalaxy::GetFloatStat(const ScriptMethodParams &params) {
 	return 0;
 }
 
-int AGSGalaxy::GetAverageRateStat(const ScriptMethodParams &params) {
+NumberPtr AGSGalaxy::GetAverageRateStat(const ScriptMethodParams &params) {
 	return 0;
 }
 
-int AGSGalaxy::SetIntStat(const ScriptMethodParams &params) {
+NumberPtr AGSGalaxy::SetIntStat(const ScriptMethodParams &params) {
 	return 0;
 }
 
-int AGSGalaxy::SetFloatStat(const ScriptMethodParams &params) {
+NumberPtr AGSGalaxy::SetFloatStat(const ScriptMethodParams &params) {
 	return 0;
 }
 
-int AGSGalaxy::UpdateAverageRateStat(const ScriptMethodParams &params) {
+NumberPtr AGSGalaxy::UpdateAverageRateStat(const ScriptMethodParams &params) {
 	return 0;
 }
 
@@ -234,7 +234,7 @@ void AGSGalaxy::ResetStatsAndAchievements(const ScriptMethodParams &params) {
 	AchMan.resetAllStats();
 }
 
-int AGSGalaxy::get_Initialized(const ScriptMethodParams &params) {
+NumberPtr AGSGalaxy::get_Initialized(const ScriptMethodParams &params) {
 	return 0;
 }
 
@@ -244,18 +244,18 @@ void AGSGalaxy::get_CurrentLeaderboardName(const ScriptMethodParams &params) {
 void AGSGalaxy::RequestLeaderboard(const ScriptMethodParams &params) {
 }
 
-int AGSGalaxy::UploadScore(const ScriptMethodParams &params) {
+NumberPtr AGSGalaxy::UploadScore(const ScriptMethodParams &params) {
 	return 0;
 }
 
 void AGSGalaxy::geti_LeaderboardNames(const ScriptMethodParams &params) {
 }
 
-int AGSGalaxy::geti_LeaderboardScores(const ScriptMethodParams &params) {
+NumberPtr AGSGalaxy::geti_LeaderboardScores(const ScriptMethodParams &params) {
 	return 0;
 }
 
-int AGSGalaxy::get_LeaderboardCount(const ScriptMethodParams &params) {
+NumberPtr AGSGalaxy::get_LeaderboardCount(const ScriptMethodParams &params) {
 	return 0;
 }
 
@@ -265,7 +265,7 @@ void AGSGalaxy::GetUserName(const ScriptMethodParams &params) {
 void AGSGalaxy::GetCurrentGameLanguage(const ScriptMethodParams &params) {
 }
 
-int AGSGalaxy::Initialize(const ScriptMethodParams &params) {
+NumberPtr AGSGalaxy::Initialize(const ScriptMethodParams &params) {
 	return 0;
 }
 
diff --git a/engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.h b/engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.h
index 0b3685ce48..8dc970e626 100644
--- a/engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.h
+++ b/engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.h
@@ -69,26 +69,26 @@ private:
 	static const char *AGS_GetPluginName();
 	static void AGS_EngineStartup(IAGSEngine *engine);
 
-	static bool IsAchievementAchieved(const ScriptMethodParams &params);
-	static bool SetAchievementAchieved(const ScriptMethodParams &params);
-	static bool ResetAchievement(const ScriptMethodParams &params);
-	static int GetIntStat(const ScriptMethodParams &params);
-	static int GetFloatStat(const ScriptMethodParams &params);
-	static int GetAverageRateStat(const ScriptMethodParams &params);
-	static int SetIntStat(const ScriptMethodParams &params);
-	static int SetFloatStat(const ScriptMethodParams &params);
-	static int UpdateAverageRateStat(const ScriptMethodParams &params);
+	static NumberPtr IsAchievementAchieved(const ScriptMethodParams &params);
+	static NumberPtr SetAchievementAchieved(const ScriptMethodParams &params);
+	static NumberPtr ResetAchievement(const ScriptMethodParams &params);
+	static NumberPtr GetIntStat(const ScriptMethodParams &params);
+	static NumberPtr GetFloatStat(const ScriptMethodParams &params);
+	static NumberPtr GetAverageRateStat(const ScriptMethodParams &params);
+	static NumberPtr SetIntStat(const ScriptMethodParams &params);
+	static NumberPtr SetFloatStat(const ScriptMethodParams &params);
+	static NumberPtr UpdateAverageRateStat(const ScriptMethodParams &params);
 	static void ResetStatsAndAchievements(const ScriptMethodParams &params);
-	static int get_Initialized(const ScriptMethodParams &params);
+	static NumberPtr get_Initialized(const ScriptMethodParams &params);
 	static void get_CurrentLeaderboardName(const ScriptMethodParams &params);
 	static void RequestLeaderboard(const ScriptMethodParams &params);
-	static int UploadScore(const ScriptMethodParams &params);
+	static NumberPtr UploadScore(const ScriptMethodParams &params);
 	static void geti_LeaderboardNames(const ScriptMethodParams &params);
-	static int geti_LeaderboardScores(const ScriptMethodParams &params);
-	static int get_LeaderboardCount(const ScriptMethodParams &params);
+	static NumberPtr geti_LeaderboardScores(const ScriptMethodParams &params);
+	static NumberPtr get_LeaderboardCount(const ScriptMethodParams &params);
 	static void GetUserName(const ScriptMethodParams &params);
 	static void GetCurrentGameLanguage(const ScriptMethodParams &params);
-	static int Initialize(const ScriptMethodParams &params);
+	static NumberPtr Initialize(const ScriptMethodParams &params);
 
 public:
 	AGSGalaxy();
diff --git a/engines/ags/plugins/ags_parallax/ags_parallax.cpp b/engines/ags/plugins/ags_parallax/ags_parallax.cpp
index aa13a1fcd6..7ef7ffc36d 100644
--- a/engines/ags/plugins/ags_parallax/ags_parallax.cpp
+++ b/engines/ags/plugins/ags_parallax/ags_parallax.cpp
@@ -147,7 +147,8 @@ void AGSParallax::Draw(bool foreground) {
 	}
 }
 
-void AGSParallax::pxDrawSprite(int id, int x, int y, int slot, int speed) {
+void AGSParallax::pxDrawSprite(const ScriptMethodParams &params) {
+	PARAMS5(int, id, int, x, int, y, int, slot, int, speed);
 #ifdef DEBUG
 	char buffer[200];
 	sprintf(buffer, "%s %d %d %d %d %d\n", "pxDrawSprite", id, x, y, slot, speed);
@@ -171,7 +172,8 @@ void AGSParallax::pxDrawSprite(int id, int x, int y, int slot, int speed) {
 }
 
 
-void AGSParallax::pxDeleteSprite(int id) {
+void AGSParallax::pxDeleteSprite(const ScriptMethodParams &params) {
+	PARAMS1(int, id);
 #ifdef DEBUG
 	char buffer[200];
 	sprintf(buffer, "%s %d\n", "pxDeleteSprite", id);
diff --git a/engines/ags/plugins/ags_parallax/ags_parallax.h b/engines/ags/plugins/ags_parallax/ags_parallax.h
index 128e740d93..0b85e8346c 100644
--- a/engines/ags/plugins/ags_parallax/ags_parallax.h
+++ b/engines/ags/plugins/ags_parallax/ags_parallax.h
@@ -60,8 +60,8 @@ private:
 	static void AGS_EngineStartup(IAGSEngine *lpEngine);
 	static NumberPtr AGS_EngineOnEvent(int event, NumberPtr data);
 
-	static void pxDrawSprite(int id, int x, int y, int slot, int speed);
-	static void pxDeleteSprite(int id);
+	static void pxDrawSprite(const ScriptMethodParams &params);
+	static void pxDeleteSprite(const ScriptMethodParams &params);
 
 private:
 	static void syncGame(Serializer &s);
diff --git a/engines/ags/plugins/ags_snow_rain/ags_snow_rain.cpp b/engines/ags/plugins/ags_snow_rain/ags_snow_rain.cpp
index df27e3e358..bb9d3f1a38 100644
--- a/engines/ags/plugins/ags_snow_rain/ags_snow_rain.cpp
+++ b/engines/ags/plugins/ags_snow_rain/ags_snow_rain.cpp
@@ -125,93 +125,115 @@ NumberPtr AGSSnowRain::AGS_EngineOnEvent(int event, NumberPtr data) {
 }
 
 
-void AGSSnowRain::srSetWindSpeed(int value) {
+void AGSSnowRain::srSetWindSpeed(const ScriptMethodParams &params) {
+	PARAMS1(int, value);
 	_snow->SetWindSpeed(value);
 	_rain->SetWindSpeed(value);
 }
 
-void AGSSnowRain::srSetBaseline(int top, int bottom) {
+void AGSSnowRain::srSetBaseline(const ScriptMethodParams &params) {
+	PARAMS2(int, top, int, bottom);
 	_snow->SetBaseline(top, bottom);
 	_rain->SetBaseline(top, bottom);
 }
 
-void AGSSnowRain::srSetSnowDriftRange(int min_value, int max_value) {
+void AGSSnowRain::srSetSnowDriftRange(const ScriptMethodParams &params) {
+	PARAMS2(int, min_value, int, max_value);
 	_snow->SetDriftRange(min_value, max_value);
 }
 
-void AGSSnowRain::srSetSnowDriftSpeed(int min_value, int max_value) {
+void AGSSnowRain::srSetSnowDriftSpeed(const ScriptMethodParams &params) {
+	PARAMS2(int, min_value, int, max_value);
 	_snow->SetDriftSpeed(min_value, max_value);
 }
 
-void AGSSnowRain::srChangeSnowAmount(int amount) {
+void AGSSnowRain::srChangeSnowAmount(const ScriptMethodParams &params) {
+	PARAMS1(int, amount);
 	_snow->ChangeAmount(amount);
 }
 
-void AGSSnowRain::srSetSnowView(int kind_id, int event, int view, int loop) {
+void AGSSnowRain::srSetSnowView(const ScriptMethodParams &params) {
+	PARAMS4(int, kind_id, int, event, int, view, int, loop);
 	_snow->SetView(kind_id, event, view, loop);
 }
 
-void AGSSnowRain::srSetSnowDefaultView(int view, int loop) {
+void AGSSnowRain::srSetSnowDefaultView(const ScriptMethodParams &params) {
+	PARAMS2(int, view, int, loop);
 	_snow->SetDefaultView(view, loop);
 }
 
-void AGSSnowRain::srSetSnowTransparency(int min_value, int max_value) {
+void AGSSnowRain::srSetSnowTransparency(const ScriptMethodParams &params) {
+	PARAMS2(int, min_value, int, max_value);
 	_snow->SetTransparency(min_value, max_value);
 }
 
-void AGSSnowRain::srSetSnowWindSpeed(int value) {
+void AGSSnowRain::srSetSnowWindSpeed(const ScriptMethodParams &params) {
+	PARAMS1(int, value);
 	_snow->SetWindSpeed(value);
 }
 
-void AGSSnowRain::srSetSnowBaseline(int top, int bottom) {
+void AGSSnowRain::srSetSnowBaseline(const ScriptMethodParams &params) {
+	PARAMS2(int, top, int, bottom);
 	_snow->SetBaseline(top, bottom);
 }
 
-void AGSSnowRain::srSetSnowAmount(int amount) {
+void AGSSnowRain::srSetSnowAmount(const ScriptMethodParams &params) {
+	PARAMS1(int, amount);
 	_snow->SetAmount(amount);
 }
 
-void AGSSnowRain::srSetSnowFallSpeed(int min_value, int max_value) {
+void AGSSnowRain::srSetSnowFallSpeed(const ScriptMethodParams &params) {
+	PARAMS2(int, min_value, int, max_value);
 	_snow->SetFallSpeed(min_value, max_value);
 }
 
-void AGSSnowRain::srSetRainDriftRange(int min_value, int max_value) {
+void AGSSnowRain::srSetRainDriftRange(const ScriptMethodParams &params) {
+	PARAMS2(int, min_value, int, max_value);
 	_rain->SetDriftRange(min_value, max_value);
 }
 
-void AGSSnowRain::srSetRainDriftSpeed(int min_value, int max_value) {
+void AGSSnowRain::srSetRainDriftSpeed(const ScriptMethodParams &params) {
+	PARAMS2(int, min_value, int, max_value);
 	_rain->SetDriftSpeed(min_value, max_value);
 }
 
-void AGSSnowRain::srChangeRainAmount(int amount) {
+void AGSSnowRain::srChangeRainAmount(const ScriptMethodParams &params) {
+	PARAMS1(int, amount);
 	_rain->ChangeAmount(amount);
 }
 
-void AGSSnowRain::srSetRainView(int kind_id, int event, int view, int loop) {
+void AGSSnowRain::srSetRainView(const ScriptMethodParams &params) {
+	PARAMS4(int, kind_id, int, event, int, view, int, loop);
 	_rain->SetView(kind_id, event, view, loop);
 }
 
-void AGSSnowRain::srSetRainDefaultView(int view, int loop) {
+void AGSSnowRain::srSetRainDefaultView(const ScriptMethodParams &params) {
+	PARAMS2(int, view, int, loop);
 	_rain->SetDefaultView(view, loop);
 }
 
-void AGSSnowRain::srSetRainTransparency(int min_value, int max_value) {
+void AGSSnowRain::srSetRainTransparency(const ScriptMethodParams &params) {
+	PARAMS2(int, min_value, int, max_value);
 	_rain->SetTransparency(min_value, max_value);
 }
 
-void AGSSnowRain::srSetRainWindSpeed(int value) {
+void AGSSnowRain::srSetRainWindSpeed(const ScriptMethodParams &params) {
+	PARAMS1(int, value);
 	_rain->SetWindSpeed(value);
 }
 
-void AGSSnowRain::srSetRainBaseline(int top, int bottom) {
+void AGSSnowRain::srSetRainBaseline(const ScriptMethodParams &params) {
+	PARAMS2(int, top, int, bottom);
 	_rain->SetBaseline(top, bottom);
 }
 
-void AGSSnowRain::srSetRainAmount(int amount) {
+void AGSSnowRain::srSetRainAmount(const ScriptMethodParams &params) {
+	PARAMS1(int, amount);
 	_rain->SetAmount(amount);
 }
 
-void AGSSnowRain::srSetRainFallSpeed(int min_value, int max_value) {
+void AGSSnowRain::srSetRainFallSpeed(const ScriptMethodParams &params) {
+	PARAMS2(int, min_value, int, max_value);
 	_rain->SetFallSpeed(min_value, max_value);
 }
 
diff --git a/engines/ags/plugins/ags_snow_rain/ags_snow_rain.h b/engines/ags/plugins/ags_snow_rain/ags_snow_rain.h
index f0ffb9102d..82a647ffff 100644
--- a/engines/ags/plugins/ags_snow_rain/ags_snow_rain.h
+++ b/engines/ags/plugins/ags_snow_rain/ags_snow_rain.h
@@ -50,28 +50,28 @@ private:
 	static NumberPtr AGS_EngineOnEvent(int event, NumberPtr data);
 
 private:
-	static void srSetWindSpeed(int value);
-	static void srSetBaseline(int top, int bottom);
-	static void srSetSnowDriftRange(int min_value, int max_value);
-	static void srSetSnowDriftSpeed(int min_value, int max_value);
-	static void srChangeSnowAmount(int amount);
-	static void srSetSnowView(int kind_id, int event, int view, int loop);
-	static void srSetSnowDefaultView(int view, int loop);
-	static void srSetSnowTransparency(int min_value, int max_value);
-	static void srSetSnowWindSpeed(int value);
-	static void srSetSnowBaseline(int top, int bottom);
-	static void srSetSnowAmount(int amount);
-	static void srSetSnowFallSpeed(int min_value, int max_value);
-	static void srSetRainDriftRange(int min_value, int max_value);
-	static void srSetRainDriftSpeed(int min_value, int max_value);
-	static void srChangeRainAmount(int amount);
-	static void srSetRainView(int kind_id, int event, int view, int loop);
-	static void srSetRainDefaultView(int view, int loop);
-	static void srSetRainTransparency(int min_value, int max_value);
-	static void srSetRainWindSpeed(int value);
-	static void srSetRainBaseline(int top, int bottom);
-	static void srSetRainAmount(int amount);
-	static void srSetRainFallSpeed(int min_value, int max_value);
+	static void srSetWindSpeed(const ScriptMethodParams &params);
+	static void srSetBaseline(const ScriptMethodParams &params);
+	static void srSetSnowDriftRange(const ScriptMethodParams &params);
+	static void srSetSnowDriftSpeed(const ScriptMethodParams &params);
+	static void srChangeSnowAmount(const ScriptMethodParams &params);
+	static void srSetSnowView(const ScriptMethodParams &params);
+	static void srSetSnowDefaultView(const ScriptMethodParams &params);
+	static void srSetSnowTransparency(const ScriptMethodParams &params);
+	static void srSetSnowWindSpeed(const ScriptMethodParams &params);
+	static void srSetSnowBaseline(const ScriptMethodParams &params);
+	static void srSetSnowAmount(const ScriptMethodParams &params);
+	static void srSetSnowFallSpeed(const ScriptMethodParams &params);
+	static void srSetRainDriftRange(const ScriptMethodParams &params);
+	static void srSetRainDriftSpeed(const ScriptMethodParams &params);
+	static void srChangeRainAmount(const ScriptMethodParams &params);
+	static void srSetRainView(const ScriptMethodParams &params);
+	static void srSetRainDefaultView(const ScriptMethodParams &params);
+	static void srSetRainTransparency(const ScriptMethodParams &params);
+	static void srSetRainWindSpeed(const ScriptMethodParams &params);
+	static void srSetRainBaseline(const ScriptMethodParams &params);
+	static void srSetRainAmount(const ScriptMethodParams &params);
+	static void srSetRainFallSpeed(const ScriptMethodParams &params);
 public:
 	AGSSnowRain();
 };
diff --git a/engines/ags/plugins/ags_sprite_font/ags_sprite_font.cpp b/engines/ags/plugins/ags_sprite_font/ags_sprite_font.cpp
index 30aa9ca9bf..4b3add3251 100644
--- a/engines/ags/plugins/ags_sprite_font/ags_sprite_font.cpp
+++ b/engines/ags/plugins/ags_sprite_font/ags_sprite_font.cpp
@@ -113,29 +113,34 @@ void AGSSpriteFont::AGS_EngineShutdown() {
 	delete _vWidthRenderer;
 }
 
-void AGSSpriteFont::SetSpriteFont(int fontNum, int sprite, int rows, int columns, int charWidth, int charHeight, int charMin, int charMax, bool use32bit) {
+void AGSSpriteFont::SetSpriteFont(const ScriptMethodParams &params) {
+	PARAMS9(int, fontNum, int, sprite, int, rows, int, columns, int, charWidth, int, charHeight, int, charMin, int, charMax, bool, use32bit);
 	_engine->PrintDebugConsole("AGSSpriteFont: SetSpriteFont");
 	_fontRenderer->SetSpriteFont(fontNum, sprite, rows, columns, charWidth, charHeight, charMin, charMax, use32bit);
 	_engine->ReplaceFontRenderer(fontNum, _fontRenderer);
 }
 
-void AGSSpriteFont::SetVariableSpriteFont(int fontNum, int sprite) {
+void AGSSpriteFont::SetVariableSpriteFont(const ScriptMethodParams &params) {
+	PARAMS2(int, fontNum, int, sprite);
 	_engine->PrintDebugConsole("AGSSpriteFont: SetVariableFont");
 	_vWidthRenderer->SetSprite(fontNum, sprite);
 	_engine->ReplaceFontRenderer(fontNum, _vWidthRenderer);
 }
 
-void AGSSpriteFont::SetGlyph(int fontNum, int charNum, int x, int y, int width, int height) {
+void AGSSpriteFont::SetGlyph(const ScriptMethodParams &params) {
+	PARAMS6(int, fontNum, int, charNum, int, x, int, y, int, width, int, height);
 	_engine->PrintDebugConsole("AGSSpriteFont: SetGlyph");
 	_vWidthRenderer->SetGlyph(fontNum, charNum, x, y, width, height);
 }
 
-void AGSSpriteFont::SetSpacing(int fontNum, int spacing) {
+void AGSSpriteFont::SetSpacing(const ScriptMethodParams &params) {
+	PARAMS2(int, fontNum, int, spacing);
 	_engine->PrintDebugConsole("AGSSpriteFont: SetSpacing");
 	_vWidthRenderer->SetSpacing(fontNum, spacing);
 }
 
-void AGSSpriteFont::SetLineHeightAdjust(int v1, int v2, int v3, int v4) {
+void AGSSpriteFont::SetLineHeightAdjust(const ScriptMethodParams &params) {
+	//PARAMS4(int, v1, int, v2, int, v3, int, v4);
 	// TODO
 }
 
diff --git a/engines/ags/plugins/ags_sprite_font/ags_sprite_font.h b/engines/ags/plugins/ags_sprite_font/ags_sprite_font.h
index 1635eaec4c..34388cf00e 100644
--- a/engines/ags/plugins/ags_sprite_font/ags_sprite_font.h
+++ b/engines/ags/plugins/ags_sprite_font/ags_sprite_font.h
@@ -42,11 +42,11 @@ private:
 	static void AGS_EngineShutdown();
 
 private:
-	static void SetSpriteFont(int fontNum, int sprite, int rows, int columns, int charWidth, int charHeight, int charMin, int charMax, bool use32bit);
-	static void SetVariableSpriteFont(int fontNum, int sprite);
-	static void SetGlyph(int fontNum, int charNum, int x, int y, int width, int height);
-	static void SetSpacing(int fontNum, int spacing);
-	static void SetLineHeightAdjust(int v1, int v2, int v3, int v4);
+	static void SetSpriteFont(const ScriptMethodParams &params);
+	static void SetVariableSpriteFont(const ScriptMethodParams &params);
+	static void SetGlyph(const ScriptMethodParams &params);
+	static void SetSpacing(const ScriptMethodParams &params);
+	static void SetLineHeightAdjust(const ScriptMethodParams &params);
 
 public:
 	AGSSpriteFont();
diff --git a/engines/ags/plugins/plugin_base.h b/engines/ags/plugins/plugin_base.h
index 8783dafcd7..5ff72e0090 100644
--- a/engines/ags/plugins/plugin_base.h
+++ b/engines/ags/plugins/plugin_base.h
@@ -79,6 +79,16 @@ namespace Plugins {
 	T6 N6 = (T6)params[5]; \
 	T7 N7 = (T7)params[6]; \
 	T8 N8 = (T8)params[7]
+#define PARAMS9(T1, N1, T2, N2, T3, N3, T4, N4, T5, N5, T6, N6, T7, N7, T8, N8, T9, N9) \
+	T1 N1 = (T1)params[0]; \
+	T2 N2 = (T2)params[1]; \
+	T3 N3 = (T3)params[2]; \
+	T4 N4 = (T4)params[3]; \
+	T5 N5 = (T5)params[4]; \
+	T6 N6 = (T6)params[5]; \
+	T7 N7 = (T7)params[6]; \
+	T8 N8 = (T8)params[7]; \
+	T9 N9 = (T9)params[8]
 
 
 using string = const char *;


Commit: b7886c4b4a24d53b7d5099488faead6982265576
    https://github.com/scummvm/scummvm/commit/b7886c4b4a24d53b7d5099488faead6982265576
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2021-02-25T19:38:19-08:00

Commit Message:
AGS: Allow NumberPtr to handle const pointers

Changed paths:
    engines/ags/plugins/ags_creditz/ags_creditz1.cpp
    engines/ags/plugins/ags_creditz/ags_creditz2.cpp
    engines/ags/shared/core/types.h


diff --git a/engines/ags/plugins/ags_creditz/ags_creditz1.cpp b/engines/ags/plugins/ags_creditz/ags_creditz1.cpp
index bbb10e7483..21b7e5fef3 100644
--- a/engines/ags/plugins/ags_creditz/ags_creditz1.cpp
+++ b/engines/ags/plugins/ags_creditz/ags_creditz1.cpp
@@ -111,9 +111,8 @@ void AGSCreditz1::ScrollCredits(const ScriptMethodParams &params) {
 NumberPtr AGSCreditz1::GetCredit(const ScriptMethodParams &params) {
 	PARAMS1(int, ID);
 
-	return const_cast<char *>( (_state->_credits[0][ID]._text == IMAGE_TEXT) ?
-		"image" : _state->_credits[0][ID]._text.c_str()
-	);
+	return (_state->_credits[0][ID]._text == IMAGE_TEXT) ?
+		"image" : _state->_credits[0][ID]._text.c_str();
 }
 
 NumberPtr AGSCreditz1::IsCreditScrollingFinished(const ScriptMethodParams &params) {
@@ -146,7 +145,7 @@ void AGSCreditz1::SetStaticCredit(const ScriptMethodParams &params) {
 
 NumberPtr AGSCreditz1::GetStaticCredit(const ScriptMethodParams &params) {
 	//PARAMS1(int, ID);
-	return nullptr;
+	return NumberPtr();
 }
 
 void AGSCreditz1::StartEndStaticCredits(const ScriptMethodParams &params) {
@@ -178,7 +177,7 @@ void AGSCreditz1::StaticReset(const ScriptMethodParams &params) {
 
 NumberPtr AGSCreditz1::GetStaticCreditTitle(const ScriptMethodParams &params) {
 	//PARAMS1(int, ID);
-	return nullptr;
+	return NumberPtr();
 }
 
 void AGSCreditz1::SetStaticCreditImage(const ScriptMethodParams &params) {
diff --git a/engines/ags/plugins/ags_creditz/ags_creditz2.cpp b/engines/ags/plugins/ags_creditz/ags_creditz2.cpp
index 65a5a22a30..b0a5f812a5 100644
--- a/engines/ags/plugins/ags_creditz/ags_creditz2.cpp
+++ b/engines/ags/plugins/ags_creditz/ags_creditz2.cpp
@@ -112,7 +112,7 @@ void AGSCreditz2::SetCredit(const ScriptMethodParams &params) {
 NumberPtr AGSCreditz2::GetCredit(const ScriptMethodParams &params) {
 	PARAMS2(int, sequence, int, ID);
 
-	return const_cast<char *>(_state->_credits[sequence][ID]._text.c_str());
+	return _state->_credits[sequence][ID]._text.c_str();
 }
 
 void AGSCreditz2::CreditsSettings(const ScriptMethodParams &params) {
diff --git a/engines/ags/shared/core/types.h b/engines/ags/shared/core/types.h
index 2464ca35d1..e52edbc888 100644
--- a/engines/ags/shared/core/types.h
+++ b/engines/ags/shared/core/types.h
@@ -110,9 +110,12 @@ enum {
 union NumberPtr {
 	int32 _value;
 	void *_ptr;
+	const void *_constPtr;
 
+	NumberPtr() : _ptr(nullptr) {}
 	NumberPtr(int value) { _ptr = nullptr; _value = value; }
 	NumberPtr(void *ptr) : _ptr(ptr) {}
+	NumberPtr(const void *ptr) : _constPtr(ptr) {}
 	operator int() const { return _value; }
 };
 




More information about the Scummvm-git-logs mailing list