aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2008-04-24 23:06:21 +0000
committerFilippos Karapetis2008-04-24 23:06:21 +0000
commit8b7486b5ca61653250c7168974233932e8248f87 (patch)
tree7f77124e78bf2ada26c48ba05f9a7b7e0a01bb40
parentc05d16826ddced4a968808ceadedcef2e8f7bd9f (diff)
downloadscummvm-rg350-8b7486b5ca61653250c7168974233932e8248f87.tar.gz
scummvm-rg350-8b7486b5ca61653250c7168974233932e8248f87.tar.bz2
scummvm-rg350-8b7486b5ca61653250c7168974233932e8248f87.zip
Implemented opcodes o1_DROPSHADOW, o1_TEXTCOLOR, o1_OUTLINE. Added some initial code for opcode o1_TEXTRECT
svn-id: r31711
-rw-r--r--engines/made/screen.h14
-rw-r--r--engines/made/scriptfuncs.cpp20
2 files changed, 31 insertions, 3 deletions
diff --git a/engines/made/screen.h b/engines/made/screen.h
index 543af81bf8..55dd92cabd 100644
--- a/engines/made/screen.h
+++ b/engines/made/screen.h
@@ -71,6 +71,17 @@ public:
void setExclude(uint16 exclude) { _exclude = exclude; }
void setGround(uint16 ground) { _ground = ground; }
void setFont(uint16 font) { _currentFont = font; }
+ void setTextColor(int16 color) { _textColor = color; }
+
+ void setOutlineColor(int16 color) {
+ _outlineColor = color;
+ _dropshadowColor = -1;
+ }
+
+ void setDropShadowColor(int16 color) {
+ _outlineColor = -1;
+ _dropshadowColor = color;
+ }
uint16 updateChannel(uint16 channelIndex);
void deleteChannel(uint16 channelIndex);
@@ -117,6 +128,9 @@ protected:
int _paletteColorCount, _oldPaletteColorCount;
bool _paletteInitialized, _needPalette;
uint16 _currentFont;
+ int16 _textColor;
+ int16 _outlineColor;
+ int16 _dropShadowColor;
uint16 _clip, _exclude, _ground;
int _visualEffectNum;
diff --git a/engines/made/scriptfuncs.cpp b/engines/made/scriptfuncs.cpp
index 7a75e4551c..c0f699dee6 100644
--- a/engines/made/scriptfuncs.cpp
+++ b/engines/made/scriptfuncs.cpp
@@ -441,6 +441,16 @@ int16 ScriptFunctionsRtz::o1_HOMETEXT(int16 argc, int16 *argv) {
int16 ScriptFunctionsRtz::o1_TEXTRECT(int16 argc, int16 *argv) {
warning("Unimplemented opcode: o1_TEXTRECT");
+
+ int16 x1 = CLIP<int16>(argv[0], 1, 318);
+ int16 y1 = CLIP<int16>(argv[1], 1, 198);
+ int16 x2 = CLIP<int16>(argv[2], 1, 318);
+ int16 y2 = CLIP<int16>(argv[3], 1, 198);
+ int16 textValue = argv[4];
+
+ printf("Text rect: %i, %i, %i, %i - text value: %i\n", x1, y1, x2, y2, textValue);
+ // TODO: set text rect
+
return 0;
}
@@ -455,17 +465,21 @@ int16 ScriptFunctionsRtz::o1_TEXTXY(int16 argc, int16 *argv) {
}
int16 ScriptFunctionsRtz::o1_DROPSHADOW(int16 argc, int16 *argv) {
- warning("Unimplemented opcode: o1_DROPSHADOW");
+ // if the drop shadow color is -1, then text drop shadow is disabled
+ // when font drop shadow is enabled, outline is disabled
+ _vm->_screen->setDropShadowColor(argv[0]);
return 0;
}
int16 ScriptFunctionsRtz::o1_TEXTCOLOR(int16 argc, int16 *argv) {
- warning("Unimplemented opcode: o1_TEXTCOLOR");
+ _vm->_screen->setTextColor(argv[0]);
return 0;
}
int16 ScriptFunctionsRtz::o1_OUTLINE(int16 argc, int16 *argv) {
- warning("Unimplemented opcode: o1_OUTLINE");
+ // if the outline color is -1, then text outline is disabled
+ // when font outline is enabled, drop shadow is disabled
+ _vm->_screen->setOutlineColor(argv[0]);
return 0;
}