aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/costume.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/scumm/costume.cpp')
-rw-r--r--engines/scumm/costume.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/engines/scumm/costume.cpp b/engines/scumm/costume.cpp
index 83fa71e7b6..b0dbec9ff9 100644
--- a/engines/scumm/costume.cpp
+++ b/engines/scumm/costume.cpp
@@ -413,6 +413,20 @@ void ClassicCostumeRenderer::procC64(Codec1 &v1, int actor) {
#undef LINE
#undef MASK_AT
+#ifdef USE_ARM_COSTUME_ASM
+extern "C" int ClassicProc3RendererShadowARM(int _scaleY,
+ ClassicCostumeRenderer::Codec1 *v1,
+ Graphics::Surface *_out,
+ const byte *src,
+ int height,
+ int _scaleX,
+ int _scaleIndexX,
+ byte *_shadow_table,
+ byte _palette[32],
+ int32 _numStrips,
+ int _scaleIndexY);
+#endif
+
void ClassicCostumeRenderer::proc3(Codec1 &v1) {
const byte *mask, *src;
byte *dst;
@@ -422,6 +436,25 @@ void ClassicCostumeRenderer::proc3(Codec1 &v1) {
byte scaleIndexY;
bool masked;
+#ifdef USE_ARM_COSTUME_ASM
+ if ((_shadow_mode & 0x20) == 0) &&
+ (v1.mask_ptr != NULL) &&
+ (_shadow_table != NULL))
+ {
+ _scaleIndexX = ClassicProc3RendererShadowARM(_scaleY,
+ &v1,
+ &_out,
+ src,
+ _height,
+ _scaleX,
+ _scaleIndexX,
+ _shadow_table,
+ _palette,
+ _numStrips,
+ _scaleIndexY);
+ }
+#endif /* USE_ARM_COSTUME_ASM */
+
y = v1.y;
src = _srcptr;
dst = v1.destptr;