[Scummvm-git-logs] scummvm master -> 5fb618a678baa3c308ba7237128fd00b4bf996ec
dreammaster
dreammaster at scummvm.org
Fri Mar 19 05:25:22 UTC 2021
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
5fb618a678 AGS: Implementing AGSCreditz1 methods
Commit: 5fb618a678baa3c308ba7237128fd00b4bf996ec
https://github.com/scummvm/scummvm/commit/5fb618a678baa3c308ba7237128fd00b4bf996ec
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2021-03-18T22:04:44-07:00
Commit Message:
AGS: Implementing AGSCreditz1 methods
Changed paths:
engines/ags/plugins/ags_creditz/ags_creditz.h
engines/ags/plugins/ags_creditz/ags_creditz1.cpp
diff --git a/engines/ags/plugins/ags_creditz/ags_creditz.h b/engines/ags/plugins/ags_creditz/ags_creditz.h
index c8e51f7cac..c5275a4615 100644
--- a/engines/ags/plugins/ags_creditz/ags_creditz.h
+++ b/engines/ags/plugins/ags_creditz/ags_creditz.h
@@ -60,18 +60,20 @@ struct StCredit {
Common::String title;
int x = 0;
int y = 0;
+ bool centered = false;
int font = 0;
int color = 0;
int title_x = 0;
int title_y = 0;
int title_font = 0;
int title_color = 0;
+ bool title_centered = false;
+ bool title_outline = false;
int pause = 0;
bool image = false;
int image_slot = 0;
int image_time = 0;
bool outline = false;
- bool title_outline = false;
};
struct StSequenceSettings {
@@ -121,6 +123,7 @@ protected:
static Version _version;
static State *_state;
static IAGSEngine *_engine;
+
public:
AGSCreditz();
~AGSCreditz();
diff --git a/engines/ags/plugins/ags_creditz/ags_creditz1.cpp b/engines/ags/plugins/ags_creditz/ags_creditz1.cpp
index 1fdddf2d29..edafa77532 100644
--- a/engines/ags/plugins/ags_creditz/ags_creditz1.cpp
+++ b/engines/ags/plugins/ags_creditz/ags_creditz1.cpp
@@ -21,6 +21,7 @@
*/
#include "ags/plugins/ags_creditz/ags_creditz1.h"
+#include "ags/lib/allegro/surface.h"
namespace AGS3 {
namespace Plugins {
@@ -81,6 +82,26 @@ void AGSCreditz1::SetCredit(ScriptMethodParams ¶ms) {
c._colorHeight = colour;
}
+void AGSCreditz1::SetCreditImage(ScriptMethodParams ¶ms) {
+ PARAMS5(int, ID, int, slot, int, center, int, xpos, int, pixtonext);
+
+ if (ID >= (int)_state->_credits[0].size())
+ _state->_credits[0].resize(ID + 1);
+
+ _state->_credits[0][ID]._image = true;
+ _state->_credits[0][ID]._isSet = true;
+ _state->_credits[0][ID]._x = xpos;
+ _state->_credits[0][ID]._center = center;
+ _state->_credits[0][ID]._fontSlot = slot;
+
+ if (pixtonext != -1) {
+ _state->_credits[0][ID]._colorHeight = pixtonext;
+ } else {
+ BITMAP *gfx = _engine->GetSpriteGraphic(slot);
+ _state->_credits[0][ID]._colorHeight = gfx->h;
+ }
+}
+
void AGSCreditz1::ScrollCredits(ScriptMethodParams ¶ms) {
PARAMS7(int, onoff, int, speed, int, fromY, int, toY, int, isautom, int, wait, int, resolution);
@@ -119,33 +140,45 @@ void AGSCreditz1::IsCreditScrollingFinished(ScriptMethodParams ¶ms) {
params._result = true;
}
-void AGSCreditz1::SetCreditImage(ScriptMethodParams ¶ms) {
- //PARAMS5(int, ID, int, Slot, int, center, int, xpos, int, pixtonext);
-}
-
void AGSCreditz1::PauseScroll(ScriptMethodParams ¶ms) {
- //PARAMS1(int, onoff);
+ PARAMS1(bool, onoff);
+ _state->_paused = onoff;
}
void AGSCreditz1::ScrollReset(ScriptMethodParams ¶ms) {
+ _state->_credits[0].clear();
}
void AGSCreditz1::SetEmptyLineHeight(ScriptMethodParams ¶ms) {
- //PARAMS1(int, Height);
+ PARAMS1(int, emptylineheight);
+ _state->_emptyLineHeight = emptylineheight;
}
void AGSCreditz1::GetEmptyLineHeight(ScriptMethodParams ¶ms) {
- params._result = 0;
+ params._result = _state->_emptyLineHeight;
}
void AGSCreditz1::SetStaticCredit(ScriptMethodParams ¶ms) {
- //PARAMS8(int, ID, int, x, int, y, int, creditfont, int, creditcolour, int, centered, int, generateoutline, string, credit);
+ PARAMS8(int, ID, int, x, int, y, int, creditfont, int, creditcolour, \
+ int, centered, int, generateoutline, string, credit);
+
+ if (ID >= (int)_state->_credits[0].size())
+ _state->_credits[0].resize(ID + 1);
+ StCredit &c = _state->_stCredits[0][ID];
+ c.credit = credit;
+ c.font = creditfont;
+ c.color = creditcolour;
+ c.x = x;
+ c.y = y;
+ c.outline = generateoutline;
+ c.centered = centered;
}
void AGSCreditz1::GetStaticCredit(ScriptMethodParams ¶ms) {
- //PARAMS1(int, ID);
- params._result = NumberPtr();
+ PARAMS1(int, ID);
+ StCredit &c = _state->_stCredits[0][ID];
+ params._result = c.credit.c_str();
}
void AGSCreditz1::StartEndStaticCredits(ScriptMethodParams ¶ms) {
@@ -153,19 +186,31 @@ void AGSCreditz1::StartEndStaticCredits(ScriptMethodParams ¶ms) {
}
void AGSCreditz1::GetCurrentStaticCredit(ScriptMethodParams ¶ms) {
- params._result = 0;
+ params._result = _state->_currentStatic;
}
void AGSCreditz1::SetDefaultStaticDelay(ScriptMethodParams ¶ms) {
- //PARAMS1(int, Cyclesperchar);
+ PARAMS1(int, Cyclesperchar);
+ _state->_stSeqSettings[0].speed = Cyclesperchar;
}
void AGSCreditz1::SetStaticPause(ScriptMethodParams ¶ms) {
- //PARAMS2(int, ID, int, length);
+ PARAMS2(int, ID, int, length);
+ _state->_stCredits[0][ID].pause = length;
}
void AGSCreditz1::SetStaticCreditTitle(ScriptMethodParams ¶ms) {
- //PARAMS8(int, ID, int, x, int, y, int, titlefont, int, titlecolour, int, centered, int, generateoutline, string, title);
+ PARAMS8(int, ID, int, x, int, y, int, titlefont, int, titlecolour, \
+ int, centered, int, generateoutline, string, title);
+
+ StCredit &c = _state->_stCredits[0][ID];
+ c.title_x = x;
+ c.title_y = y;
+ c.title_font = titlefont;
+ c.title_color = titlecolour;
+ c.title_centered = centered;
+ c.title_outline = generateoutline;
+ c.title = title;
}
void AGSCreditz1::ShowStaticCredit(ScriptMethodParams ¶ms) {
@@ -173,19 +218,33 @@ void AGSCreditz1::ShowStaticCredit(ScriptMethodParams ¶ms) {
}
void AGSCreditz1::StaticReset(ScriptMethodParams ¶ms) {
+ _state->_stCredits[0].clear();
}
void AGSCreditz1::GetStaticCreditTitle(ScriptMethodParams ¶ms) {
- //PARAMS1(int, ID);
- params._result = NumberPtr();
+ PARAMS1(int, ID);
+
+ const StCredit &c = _state->_stCredits[0][ID];
+ params._result = c.title.c_str();
}
void AGSCreditz1::SetStaticCreditImage(ScriptMethodParams ¶ms) {
-//int ID, int x, int y, int Slot, int Hcentered, int Vcentered, int time) {
+ PARAMS7(int, ID, int, x, int, y, int, slot, int, Hcentered, \
+ int, Vcentered, int, time);
+
+ StCredit &c = _state->_stCredits[0][ID];
+ c.credit = "I=M=A=G=E";
+ c.x = x;
+ c.y = y;
+ c.font = slot;
+ c.centered = Hcentered;
+ // TODO: Below seems *weird*
+ c.outline = Vcentered;
+ c.color = time;
}
void AGSCreditz1::IsStaticCreditsFinished(ScriptMethodParams ¶ms) {
- params._result = true;
+ params._result = _state->_stSeqSettings[0].finished;
}
} // namespace AGSCreditz
More information about the Scummvm-git-logs
mailing list