[Scummvm-cvs-logs] SF.net SVN: scummvm:[50153] scummvm/trunk/engines/sci
m_kiewitz at users.sourceforge.net
m_kiewitz at users.sourceforge.net
Tue Jun 22 19:05:01 CEST 2010
Revision: 50153
http://scummvm.svn.sourceforge.net/scummvm/?rev=50153&view=rev
Author: m_kiewitz
Date: 2010-06-22 17:05:00 +0000 (Tue, 22 Jun 2010)
Log Message:
-----------
SCI: kPalVary(SetTarget) implemented
Modified Paths:
--------------
scummvm/trunk/engines/sci/engine/kgraphics.cpp
scummvm/trunk/engines/sci/graphics/palette.cpp
scummvm/trunk/engines/sci/graphics/palette.h
Modified: scummvm/trunk/engines/sci/engine/kgraphics.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kgraphics.cpp 2010-06-22 16:42:49 UTC (rev 50152)
+++ scummvm/trunk/engines/sci/engine/kgraphics.cpp 2010-06-22 17:05:00 UTC (rev 50153)
@@ -673,7 +673,7 @@
warning("kPalVary(reverse) called with ticks = %d, stop = %d, direction = %d", ticks, stepStop, direction);
return make_reg(0, result);
} else {
- warning("kPalVary(reverse) called with parameter %d (argc %d)", argv[1].toUint16(), argc);
+ warning("kPalVary(reverse) called with unsupported argc %d", argc);
}
}
case 2: { // Get Current Step
@@ -681,7 +681,7 @@
int16 currentStep = g_sci->_gfxPalette->kernelPalVaryGetCurrentStep();
return make_reg(0, currentStep);
} else {
- warning("kPalVary(GetCurrentStep) called with unsupported argc %d", argc);
+ warning("kPalVary(getCurrentStep) called with unsupported argc %d", argc);
}
break;
}
@@ -695,8 +695,13 @@
break;
}
case 4: { // Change Target
- // seems to be 1 parameter, we should find a game that is using this feature before implementing it
- error("kPalVary(changeTarget) called with parameter %d (argc %d)", argv[1].toUint16(), argc);
+ if (argc == 2) {
+ GuiResourceId paletteId = argv[1].toUint16();
+ int16 currentStep = g_sci->_gfxPalette->kernelPalVaryChangeTarget(paletteId);
+ return make_reg(0, currentStep);
+ } else {
+ warning("kPalVary(changeTarget) called with unsupported argc %d", argc);
+ }
break;
}
case 5: { // Change ticks
@@ -704,7 +709,7 @@
uint16 ticks = argv[1].toUint16();
g_sci->_gfxPalette->kernelPalVaryChangeTicks(ticks);
} else {
- warning("kPalVary(changeTicks) called with parameter %d (argc %d)", argv[1].toUint16(), argc);
+ warning("kPalVary(changeTicks) called with unsupported argc %d", argc);
}
break;
}
Modified: scummvm/trunk/engines/sci/graphics/palette.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/palette.cpp 2010-06-22 16:42:49 UTC (rev 50152)
+++ scummvm/trunk/engines/sci/graphics/palette.cpp 2010-06-22 17:05:00 UTC (rev 50153)
@@ -572,6 +572,21 @@
return -_palVaryStep;
}
+int16 GfxPalette::kernelPalVaryChangeTarget(GuiResourceId resourceId) {
+ if (_palVaryResourceId != -1) {
+ Resource *palResource = _resMan->findResource(ResourceId(kResourceTypePalette, resourceId), false);
+ if (palResource) {
+ Palette insertPalette;
+ createFromData(palResource->data, &insertPalette);
+ // insert new palette into target
+ insert(&insertPalette, &_palVaryTargetPalette);
+ // update palette and set on screen
+ palVaryProcess(0, true);
+ }
+ }
+ return kernelPalVaryGetCurrentStep();
+}
+
void GfxPalette::kernelPalVaryChangeTicks(uint16 ticks) {
_palVaryTicks = ticks;
if (_palVaryStep - _palVaryStepStop) {
Modified: scummvm/trunk/engines/sci/graphics/palette.h
===================================================================
--- scummvm/trunk/engines/sci/graphics/palette.h 2010-06-22 16:42:49 UTC (rev 50152)
+++ scummvm/trunk/engines/sci/graphics/palette.h 2010-06-22 17:05:00 UTC (rev 50153)
@@ -66,6 +66,7 @@
bool kernelPalVaryInit(GuiResourceId resourceId, uint16 ticks, uint16 stepStop, uint16 direction);
int16 kernelPalVaryReverse(int16 ticks, uint16 stepStop, int16 direction);
int16 kernelPalVaryGetCurrentStep();
+ int16 kernelPalVaryChangeTarget(GuiResourceId resourceId);
void kernelPalVaryChangeTicks(uint16 ticks);
void kernelPalVaryPause(bool pause);
void kernelPalVaryDeinit();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list