aboutsummaryrefslogtreecommitdiff
path: root/engines/cine/anim.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/cine/anim.cpp')
-rw-r--r--engines/cine/anim.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/engines/cine/anim.cpp b/engines/cine/anim.cpp
index 1b452eefc8..a30c2bdff3 100644
--- a/engines/cine/anim.cpp
+++ b/engines/cine/anim.cpp
@@ -395,6 +395,18 @@ void loadSpl(const char *resourceName) {
strcpy(animDataTable[entry].name, currentPartName);
}
+void loadSplAbs(const char *resourceName, uint16 idx) {
+ int16 foundFileIdx;
+ byte *dataPtr;
+ int16 entry;
+
+ foundFileIdx = findFileInBundle(resourceName);
+ dataPtr = readBundleFile(foundFileIdx);
+
+ entry = reserveFrame((uint16) partBuffer[foundFileIdx].unpackedSize, 1, 0, idx);
+ memcpy(animDataTable[entry].ptr1, dataPtr, partBuffer[foundFileIdx].unpackedSize);
+}
+
void loadMsk(const char *resourceName) {
int16 foundFileIdx;
byte *dataPtr;
@@ -877,6 +889,7 @@ void loadAbs(const char *resourceName, uint16 idx) {
loadSeqAbs(resourceName, idx);
return;
} else if (strstr(resourceName, ".SPL")) {
+ loadSplAbs(resourceName, idx);
return;
} else if (strstr(resourceName, ".AMI")) {
return;