diff options
Diffstat (limited to 'engines/scumm/costume.cpp')
-rw-r--r-- | engines/scumm/costume.cpp | 33 |
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; |