Commit Graph
119 Commits
Author SHA1 Message Date
Eugene Sandulenko 389c6725ea DIRECTOR: Do not crash when script dumping is requested 2022-12-02 10:56:43 +01:00
Eugene Sandulenko af94562bbe DIRECTOR: Fix dumped movies from .exe files. Patch courtesy of eientei 2022-12-02 10:39:59 +01:00
Roland van Laar 9a6dea9466 DIRECTOR: Fix memory leaks in archive.cpp
The newly used Common::SeekableReadStreamEndianWrapper was leaking.
Setting the DisposeAfterUse to YES resolved the leaks.
2022-11-30 10:51:41 +01:00
Roland van Laar 78bd7e7fd5 DIRECTOR: Fix compilation deprecation warning
Remove uses of deprected `SeekableSubReadStreamEndian` in archive.cpp

The deprationwarning was:

    Use SeekableReadStreamEndianWrapper with SeekableSubReadStream instead
2022-11-29 22:11:02 +01:00
Cameron Cawley bca9a3e5b3 DIRECTOR: Use SeekableReadStreamEndianWrapper 2022-11-29 00:06:49 +01:00
Le Philousophe 29dea747a8 DIRECTOR: Don't use unsafe sprintf and vsprintf 2022-10-23 22:46:19 +02:00
Roland van Laar 2e39acf84c DIRECTOR: Improve RIFF loading
Two improvements for RIFF loading: size and alignment
A RIFF elements header: FourCC and size (4 bytes each) are not included
in the size. Offset + 12 then size - 4.

'DIB ' resources were found to always lead with two zero bytes.
Tested with: Fujitsu fmTOWNS SUPER TECHNOLOGY DEMO 1993.
Other resources such as 'SND ' do need alignment.
Tested with: SpaceWarlock Win. Intro movie lacked sound without
alignment. (WARNING: SNDDecoder: Bad format: 17408!)
2022-10-18 22:02:41 +02:00
Scott Percival 095ae06405 COMMON: Refactor MacResManager::load* methods to accept a pointer
Previously the methods would pass by reference, then convert to a
pointer on success and take ownership. This isn't ideal, as a
reference suggests no transferral of ownership, and doesn't suggest
it needs to be a heap resource allocated by new.
2022-09-25 10:35:03 +02:00
Scott Percival 00a7d69fd1 DIRECTOR: Plug stream leak for Mac archives 2022-09-25 10:35:03 +02:00
Roland van Laar eb79194f86 DIRECTOR: Fix memory leak
Free data after allocating it for dumping resource chunks.
2022-09-19 23:08:55 +02:00
Roland van Laar 9ddb71fe6e DIRECTOR: Improve comment ILS
ILS is the initial load segment.
The part of a shockwave file that's needed to get things going and
other media can be loaded later over a slow 90s internet connection
2022-09-17 22:24:56 +02:00
Scott Percival 9e17e5aa85 DIRECTOR: Plug memory leak 2022-09-12 15:52:18 +02:00
Misty De Meo 43d96157e5 DIRECTOR: unify getResource behaviour 2022-08-16 17:43:33 -07:00
Misty De Meo 1ed15b789d DIRECTOR: only record valid MacArchive members 2022-08-09 22:22:11 -07:00
djsrv fac330bec4 DIRECTOR: Don't fall back to getFirstResource if chunk not in KEY*
There doesn't seem to be any case in which we should fall back to
getFirstResource in D4 as found in #4172. So we can remove that fallback
and the associated warning.
2022-08-10 00:18:04 -04:00
djsrv 28b7b0b297 DIRECTOR: Handle collisions between movie and cast member IDs 2022-08-10 00:11:20 -04:00
Pragyansh Chaturvedi dbe1ae48d5 DIRECTOR: Use KEY* mappings instead of taking the first resource to load chunks 2022-08-09 16:18:15 -05:00
Pragyansh Chaturvedi 8f9da662cc DIRECTOR: Implement _movieChunk to store indices of chunks having 1024 as parent 2022-08-09 16:18:15 -05:00
Pragyansh Chaturvedi 766d74f8f6 DIRECTOR: Read KEY* resource before reading CAS* resource 2022-08-09 16:18:15 -05:00
Eugene Sandulenko 2d30fcb84f DIRECTOR: Fix file sizes for dumped Mac resources 2022-07-05 15:22:12 +02:00
Eugene Sandulenko acac0a5f27 DIRECTOR: Fix dumping Mac resources 2022-07-05 14:13:59 +02:00
eientei f9e16e59ed DIRECTOR: +Casino 5 Pack; fix dumpChunk bug where getResource can return nullpointer 2022-06-22 23:38:15 +02:00
Pragyansh Chaturvedi (r41k0u) ecd6f218df DIRECTOR: Refactor dumping of RIFX chunks to dump all archive chunks 2022-06-14 23:11:58 +02:00
Roland van Laar c546990e21 DIRECTOR: Fix use after free
probeMacBinary when macArchive has a rsrc fork, otherwise delete the
archive. The archive is deleted during ~Director cleanup.
2022-03-29 23:21:09 +02:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Orgad Shaneh 02cfffcb67 DIRECTOR: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
djsrv e6c696031f DIRECTOR: Punycode dump file names 2021-08-07 10:44:37 +02:00
djsrv 02aace0598 DIRECTOR: Use ':' as directory separator 2021-08-07 10:44:37 +02:00
djsrv 909595176a COMMON: Use Path type in MacResManager functions 2021-08-07 10:44:37 +02:00
djsrv 1e7e9707a8 DIRECTOR: Load XCOD from non-projector MacBinaries
Meet MediaBand's Main/Shared.dir contains XCOD resources.
2021-08-04 19:30:52 -04:00
Eugene Sandulenko e85288e2b3 DIRECTOR: Better handling of string resources.
In case there is garbage after \0 we will skip it all
2021-07-29 12:23:49 +02:00
Eugene Sandulenko 986c84fb72 DIRECTOR: Avoid adding \0s to strings 2021-07-29 12:02:22 +02:00
djsrv 7e13add452 DIRECTOR: Fix memory leaks 2021-07-27 23:50:44 -04:00
ysj1173886760 f719167515 DIRECTOR: add ignoreCast option for findResourceID 2021-07-12 14:15:25 +08:00
djsrv 9ec8fbb649 DIRECTOR: Fix resource leaks 2021-07-06 23:33:14 -04:00
djsrv 0294513802 DIRECTOR: Fix uninitialized fields 2021-07-06 23:33:09 -04:00
djsrv ba9f696482 DIRECTOR: Fix APPL archives
_rifxType was getting changed before it reached the APPL conditional
before. This fixes that. I also moved APPL handling out of readMemoryMap
since it was sort of out of place there.
2021-06-04 16:47:19 -04:00
djsrv 486513c715 DIRECTOR: Skip normal loading for APPL archives again 2021-06-04 09:50:02 -04:00
djsrv 33060e14d8 DIRECTOR: Fix offsets in dumped movies 2021-06-03 15:54:53 -04:00
djsrv be813e2ccc DIRECTOR: Calculate DCR chunk offsets from start of ILS
Previously chunk offsets were calculated from the end of ABMP instead of
the beginning of the ILS body like they should be. I had to manually
shift the offsets by 5 bytes, which might not always be the right amount
due to the use of varints. This should always be correct.
2021-05-20 18:48:21 -04:00
Eugene Sandulenko e27d5ac7fc DIRECTOR: JANITORIAL: Code formatting and unified the namespace end comments 2020-08-21 00:36:19 +02:00
djsrv af8fa6a82e DIRECTOR: Fix Shockwave chunk dumping 2020-08-12 17:26:55 -04:00
djsrv d846db8da6 DIRECTOR: Fix loading KEY* from Shockwave movies 2020-08-12 17:26:55 -04:00
djsrv 61a02b7606 DIRECTOR: Implement DCR getResource 2020-08-12 17:26:55 -04:00
djsrv baacf3c1ab DIRECTOR: Replace SeekableSubReadStreamEndian
Use the superclass SeekableReadStreamEndian.
2020-08-12 17:26:55 -04:00
djsrv 760e89ae11 DIRECTOR: Load ILS 2020-08-12 12:14:56 -04:00
djsrv 2f367c1911 DIRECTOR: Adjust ABMP offsets 2020-08-12 12:14:00 -04:00
djsrv 045b5e08b2 DIRECTOR: Fix ABMP length 2020-08-12 12:12:57 -04:00
djsrv 28ca9065d4 DIRECTOR: Validate uncompressed chunk length 2020-08-12 10:38:45 -04:00
djsrv f8e8a3ff38 DIRECTOR: Fix CAS*, KEY* error handling
Need to check hasResource
2020-08-12 10:26:54 -04:00