Commit Graph

343 Commits

Author SHA1 Message Date
morkt
b197bb77fd (IBinaryStream.Name): added setter. 2016-10-16 16:15:13 +04:00
morkt
f38f1363a4 (ByteArrayExt): methods made generic. 2016-10-16 16:14:27 +04:00
morkt
762396d045 (LittleEndian): methods made generic. 2016-10-16 16:13:57 +04:00
morkt
bb18303eb4 IBinaryStream migration. 2016-10-16 09:22:53 +04:00
morkt
d0c1d5da01 IBinaryStream migration - continued. 2016-10-15 12:21:12 +04:00
morkt
503b734645 migration to IBinaryStream interface. 2016-10-15 09:34:46 +04:00
morkt
a63e9e4d6b (IBinaryStream): new interface for binary streams. 2016-10-12 04:25:40 +04:00
morkt
a648aff032 (FormatCatalog.LookupGame): look for archive name, too. 2016-10-11 00:06:27 +04:00
morkt
f1d66206bc (IResource.CanWrite): new property.
(ArchiveFormat.CanCreate): renamed to CanWrite.
2016-10-11 00:05:22 +04:00
morkt
6a57bfb43d added game title lookup facility. 2016-10-09 10:10:12 +04:00
morkt
a4311a0f2a (Binary.BigEndian): simplified. 2016-10-03 23:23:43 +04:00
morkt
4533787c57 released v1.2.20 2016-09-28 00:12:59 +04:00
morkt
edc677f273 changed DataDirectory property value to "GameData". 2016-09-28 00:07:27 +04:00
morkt
e703f6f675 serialization tweaks. 2016-09-18 05:27:13 +04:00
morkt
7f74a3cf7d moved serialization code to GameRes. 2016-09-17 17:36:39 +04:00
morkt
98d0c47cfb (Adler32): skip checksum update for zero-length arrays. 2016-09-14 20:08:13 +04:00
morkt
6c7ddb3f2a (Binary.GetCString): added convenient overload. 2016-09-13 03:04:37 +04:00
morkt
546b5f986f use non-threadsafe Lazy constructor where appropriate. 2016-09-08 13:16:43 +04:00
morkt
7c5b26933a (FormatCatalog.DataDirectory): new property. 2016-09-07 20:28:23 +04:00
morkt
7f272a6c16 (IResource.GetDefaultExtension): new method. 2016-09-07 20:26:39 +04:00
morkt
07affe292c (BmpFormat.EnableExtensions): new field. 2016-09-07 20:25:26 +04:00
morkt
8c5164a3a5 (ImageData.Read): abort on OperationCanceledException. 2016-08-19 10:45:02 +04:00
morkt
8808b54c88 (BmpFormat.ReadMetaData): some fault-tolerance. 2016-08-18 14:59:17 +04:00
morkt
bb67e21ef4 (BmpFormat.Read): reset file position after extension failure. 2016-08-17 13:08:47 +04:00
morkt
0a606433f4 (ArcFile.TryOpen): some tweaks. 2016-08-13 23:52:59 +04:00
morkt
b3d74fb17c released v1.2.19 2016-08-12 04:42:45 +04:00
morkt
1cf89e33b6 updated READMEs. 2016-08-06 16:23:50 +04:00
morkt
0732a9cf45 introduced extensions infrastructure. 2016-08-02 16:38:42 +04:00
morkt
2ac291b1d8 (ArchiveFormat.CopyEntry): removed unused method. 2016-08-02 05:17:25 +04:00
morkt
0e8a3ea417 updated prerelease config. 2016-07-28 21:22:41 +04:00
morkt
ef2552deec added 'prerelease' configuration. 2016-07-26 07:08:07 +04:00
morkt
5a858cf42d (BMP): refined detection of bitmaps with alpha channel. 2016-07-26 07:05:02 +04:00
morkt
9133adeab9 released v1.2.18 2016-07-07 17:38:02 +04:00
morkt
02efade7ff (ImageFormat.Write): use overloaded BitmapFrame.Create method.
incorrect metadata sometimes causes ArgumentException.
2016-06-18 11:02:33 +04:00
morkt
394a7949dd (ArcFile.TryOpen): don't try same format twice. 2016-06-18 10:10:19 +04:00
morkt
95e7aa7614 released v1.2.17 2016-06-12 01:38:09 +04:00
mireado
066bf1fa13 update korean translation (#29) 2016-06-11 21:37:15 +04:00
morkt
08cd673408 (ArcFile.OpenView): ensure that length supplied to ArcView is always greater than zero. 2016-06-11 06:38:47 +04:00
morkt
9f004452ba (ViewPointer): unsafe wrapper around memory mapped view pointer. 2016-05-30 15:51:37 +04:00
morkt
ca9126907c don't concatenate strings inside lambda expressions. 2016-05-25 03:07:19 +04:00
morkt
0c426d723f released v1.2.16 2016-05-20 04:33:05 +04:00
morkt
d20fed194c (VFS): added GetDirectoryName methods. 2016-05-20 03:58:22 +04:00
morkt
78d7d693d6 (BmpFormat): recognize non-standard bitmaps with embedded alpha channel. 2016-04-25 18:02:01 +04:00
morkt
3711e28d79 moved checksum classes to separate file. 2016-04-24 22:06:50 +04:00
morkt
dee61a2929 apparently simplified chinese locale is called "zh-Hans" in .Net framework. 2016-04-14 01:06:33 +04:00
morkt
a76b432846 added simplified chinese string resources. 2016-04-13 18:07:06 +04:00
tenyuhuang
4d3f883292 ArcFormats & GameRes: Simplified Chinese Locale (#23) 2016-04-13 18:01:21 +04:00
morkt
1f9a8e5a09 (IFileSystem): added GetFiles(pattern) method. 2016-04-09 00:34:28 +04:00
morkt
e6548dcf5b released v1.2.15 2016-03-28 06:53:38 +04:00
morkt
05aa1568ea added filename glob matching. 2016-03-06 15:17:26 +04:00
morkt
bb55fe7eed released v1.2.14 2016-03-04 07:09:24 +04:00
morkt
b41f93cd0e (RawPcmInput): class representing raw PCM sound input. 2016-03-03 08:51:07 +04:00
morkt
1b5e682fe7 (ArcView.ArcStream): don't limit stream size to uint.MaxValue. 2016-02-08 09:14:43 +04:00
morkt
05837d28ba released v1.2.13 2016-02-07 09:58:51 +04:00
morkt
410d40313e (Binary.Rotate): added ulong methods.
(Crc32.UpdateCrc): method made public.
2016-01-15 11:50:13 +04:00
morkt
f85cf12fcd released v1.2.12 2016-01-07 18:08:46 +04:00
morkt
207cc8e144 (ArchiveFormat.IsSaneCount): method made public. 2015-12-19 06:39:55 +04:00
morkt
e0bbb0e7ac (UnknownFormatException): propagate inner exception. 2015-12-13 17:11:09 +04:00
morkt
63c57cccce released v1.2.11 2015-12-11 16:33:05 +04:00
morkt
1c457e1249 (TgaFormat): read grayscale images. 2015-12-09 17:57:48 +04:00
morkt
b442bd5afb (ArcView.ReadString): added commented out unsafe implementation.
unsafe variant doesn't allocate temporary buffer for name, but requires
.Net framework version 4.6 or later.
2015-12-08 20:56:10 +04:00
morkt
aeea84a693 (CopyOverlapped): slightly optimized BlockCopy loop. 2015-12-05 20:26:36 +04:00
morkt
6d6b81c88f (Binary): added RotByteR and RotByteL methods. 2015-12-03 15:51:06 +04:00
morkt
1ee96fc3e9 (Binary): added RotR and RotL methods. 2015-12-01 11:24:48 +04:00
morkt
95e861c5b1 fixed file system navigation. 2015-12-01 11:23:47 +04:00
morkt
7ca6a5d1a4 released v1.2.10 2015-11-28 01:46:23 +04:00
morkt
b38e3a0601 relaxed entry placement check.
archives with external index and single entry didn't pass check.
2015-11-26 02:23:24 +04:00
morkt
3c22e9c077 (FileSystemStack.Flush): don't dispose of LastVisitedArc if it currently resides on top of the stack. 2015-11-21 10:15:54 +04:00
morkt
b0d06882b2 (ArcFile.Dispose): don't assign null on dispose. 2015-11-21 10:13:42 +04:00
morkt
6c6c6be7a0 (ArcView.ReadBytes): new method. 2015-11-19 11:35:56 +04:00
morkt
bbadd583df (BigEndian): added ToUInt16 and ToInt16 methods. 2015-11-17 21:30:46 +04:00
morkt
1c031ad24b (TgaFormat.ReadMetaData): additional sanity check for color-mapped images. 2015-11-13 11:41:52 +04:00
morkt
58718944ab released v1.2.9 2015-11-11 12:56:31 +04:00
morkt
330d255883 (ImageFormat.Tga): new static property. 2015-11-09 00:09:36 +04:00
morkt
382b257532 (WaveAudio): store ogg/mp3 format tags in a set. 2015-11-04 04:02:42 +04:00
morkt
91110ad1df (TifFormat): enabled in release build. 2015-10-30 08:53:40 +04:00
morkt
d1fa630f3d updated string resources. 2015-10-27 20:27:15 +04:00
mireado
49113e324f garstring korean translation 2015-10-27 22:51:16 +09:00
morkt
97c5849edd released v1.2.8 2015-10-26 03:19:35 +04:00
morkt
86d9121b94 (ImageFormat.FindFormat): ignore streams less than 4 bytes length. 2015-10-24 15:51:28 +04:00
morkt
12d9ea4765 ignore errors in pre-build events. 2015-10-22 21:04:05 +04:00
morkt
f676fd613e (PngFormat): fixed oFFs chunk CRC calculation. 2015-10-19 17:06:49 +04:00
morkt
43b1631e67 (ImageData.CreateFlipped): new static method. 2015-10-12 12:14:57 +04:00
morkt
f9448e4613 fixed filesystem traversal. 2015-09-22 22:39:10 +04:00
morkt
de5bb88256 released v1.2.7 2015-09-21 22:13:34 +04:00
morkt
2f3b80e744 ZLibStream moved to GameRes assembly. 2015-09-19 10:24:14 +04:00
morkt
9a8bff184d implemented external storage of resource schemes. 2015-09-18 01:27:53 +04:00
morkt
ee14a418c0 (FileSystemStack.ChDir): propagate OperationCanceledException. 2015-09-16 23:54:35 +04:00
morkt
f4c1bc2ae4 FormatCatalog definition moved to a separate file. 2015-09-16 23:00:22 +04:00
morkt
8ef162709a (ArcFile.CreateFileSystem): changed return type. 2015-09-06 05:31:06 +04:00
morkt
a06bae057e TreeArchiveFileSystem fixes. 2015-09-05 10:04:38 +04:00
morkt
489a00cf7b (ArchiveFileSystem): check archive directory for duplicates. 2015-09-03 17:15:39 +04:00
morkt
a647b68fed updated assembly versions to reflect VFS implementation. 2015-09-03 07:21:41 +04:00
morkt
81ab95ebf1 (ArchiveFileSystem): base abstract class for flat ant tree archive file systems. 2015-09-02 04:25:35 +04:00
morkt
047d07f376 (FileSystemStack.ChDir): directory traversal fixes. 2015-09-02 04:12:38 +04:00
morkt
5dcbcd76c9 (VFS.FullPath): do not rebuild hierarchy when new path is almost identical. 2015-09-02 02:57:36 +04:00
morkt
a149cab7e6 (IFileSystem.FileExists): new method. 2015-09-01 14:13:11 +04:00
morkt
1db7e865cd (IFileSystem.CombinePath): new method. 2015-09-01 12:15:10 +04:00
morkt
0223fb0625 (ArchiveFileSystem): fixed directory traversal. 2015-09-01 10:30:36 +04:00
morkt
7f44339b30 fixed full path order. 2015-09-01 09:23:29 +04:00
morkt
2ea64e25da virtual file system fixes. 2015-09-01 09:07:34 +04:00
morkt
857069cb33 virtual file system preliminary implementation. 2015-09-01 09:07:33 +04:00
morkt
47b3d6adf0 released v1.1.6 2015-08-31 01:22:50 +04:00
morkt
46dbf2b142 GameRes refactoring.
(FormatCatalog.CreateEntry): method renamed to 'Create' and made generic
towards Entry type.
2015-08-30 22:34:06 +04:00
morkt
f355288e97 (ImageMetaData): added FileName property. 2015-08-14 20:01:45 +04:00
morkt
a9ffd7cccc added shortcuts to standard formats as static properties of ImageFormat and AudioFormat.
namely,
ImageFormat.Jpeg
ImageFormat.Png
ImageFormat.Bmp
AudioFormat.Wav
2015-08-14 06:05:15 +04:00
morkt
5bf2493044 widget/options methods moved from ArchiveFormat to IResource.
any resource could have options and corresponding widget.
2015-08-12 01:31:03 +04:00
morkt
142f7e1cdf (Crc32.Table): public property. 2015-08-12 01:29:00 +04:00
morkt
0db69aea4e released v1.1.5 2015-08-07 14:55:35 +04:00
morkt
af0e936cbe (ArcView.Frame.ReadSByte): additional method. 2015-08-05 11:53:58 +04:00
morkt
036c19fabe (FormatCatalog): images are prioritized over archives in format lookups. 2015-08-05 11:53:05 +04:00
morkt
9a27fe31a1 (TgaFormat.Reader): fixed stride calculation. 2015-08-05 11:52:03 +04:00
morkt
097672845d (Image.Read): sort matched formats according to filename extension. 2015-07-25 10:13:56 +04:00
morkt
60479757ac (ArcFile.OpenSeekableEntry): check for PackedEntry.IsPacked. 2015-07-25 10:12:56 +04:00
morkt
5e5bb6ed3b released v1.1.4 2015-07-20 02:44:21 +04:00
morkt
7853d6a462 (Binary.CopyOverlapped): use Buffer.BlockCopy when destination precedes source. 2015-07-19 15:29:00 +04:00
morkt
7fdaf03521 (ArcFile.TryOpen): compare against all extensions. 2015-07-15 06:42:14 +04:00
morkt
e42d82712c implemented color-mapped images. 2015-07-14 21:22:08 +04:00
morkt
6ba6526536 (ImageData.Create): allow custom stride. 2015-07-11 10:20:50 +04:00
morkt
57b0115d41 (ArchiveFormat.IsSaneCount): new static method. 2015-07-11 10:19:46 +04:00
morkt
9fd2defa07 (ArcFile.TryOpen): check file length. 2015-07-11 10:19:05 +04:00
morkt
dd13ce551b fixed WAV data size writing. 2015-07-02 03:20:17 +04:00
morkt
7704f2b34f (OpenSeekableEntry): added capacity prediction and fixed positioning. 2015-06-27 14:31:41 +04:00
morkt
f47432fc09 (ArcFile.OpenView): dispose of the intermediate stream. 2015-06-19 15:59:06 +04:00
morkt
df66b70a38 released v1.1.3 2015-06-15 09:04:51 +04:00
morkt
ab70e8b9f8 (PngFormat.ReadMetaData): don't check stream against Signature. 2015-06-14 10:17:55 +04:00
morkt
d7899fa852 assembly version update. 2015-06-12 22:50:22 +04:00
morkt
490bf8eaff (PngFormat.FindChunk): method made static and public. 2015-06-12 22:49:21 +04:00
morkt
e20853967f (ArcFile.TryOpen): abort on OperationCanceledException. 2015-06-11 12:31:24 +04:00
morkt
50eb805cd2 added FileSystem infrastructure. 2015-06-08 19:58:51 +04:00
morkt
7f8b091d05 (ArcView): added constructor from IO.Stream. 2015-06-08 19:21:31 +04:00
morkt
86ccf69aef released v1.1.2 2015-06-03 14:05:20 +04:00
morkt
7f4b01b7ca (ArcFile.OpenSeekableEntry): new public method. 2015-06-02 22:53:20 +04:00
morkt
54ae9e191e (IDataUnpacker): new interface. 2015-06-01 00:51:02 +04:00
morkt
03e280c045 added AsciiString class.
wrapper around byte array.
2015-05-29 14:51:28 +04:00
morkt
8cd51ae896 (WaveAudio.TryOpen): reset sound position on embedded stream errors. 2015-05-16 17:11:15 +04:00
morkt
7b131442ad format ids that require conversion are stored in a static HashSet. 2015-05-16 00:35:32 +04:00
morkt
8f77fde7d5 (WaveAudio): recognize mp3-tagged streams. 2015-05-15 17:33:08 +04:00
morkt
08abdbfd92 released v1.1.1 2015-05-14 20:04:35 +04:00
morkt
14ef2f9071 implemented audio formats conversion. 2015-05-14 15:58:16 +04:00
morkt
9a43b6b055 refactored SoundInput interface.
added Source property for access to underlying stream.
2015-05-14 11:26:47 +04:00
morkt
53b7077786 assembly version update. 2015-05-13 23:26:30 +04:00
morkt
c85622f5e4 (WaveAudio.Write): fixed RIFF size calculation. 2015-05-11 20:22:14 +04:00
morkt
6c0f5a0d80 (JpegFormat): added common signature. 2015-05-06 02:49:07 +04:00
morkt
e9f505c73d (ImageData): added default DPI properties. 2015-05-03 22:09:16 +04:00
morkt
0bf0d7b4bf (WaveInput): force ADPCM streams conversion. 2015-05-03 22:08:03 +04:00
morkt
941149fc28 (WaveInput): use NAudio WaveFileReader instead of manual parsing. 2015-05-03 05:40:34 +04:00
morkt
888718e900 (WaveAudio): support Ogg-tagged wave streams. 2015-05-01 23:30:57 +04:00
morkt
0a3fe37bb0 (ImageData.Create): new convenient static method. 2015-04-20 14:04:46 +04:00
morkt
039eff6f32 (TgaFormat): RLE compression implementation. 2015-04-19 15:20:17 +04:00
morkt
f5d2cac377 (Binary.GetCString): new static method. 2015-04-16 22:39:57 +04:00
morkt
9b4aa48e37 utility classes updated.
(BigEndian): read bigendian-packed integer packed into byte array.
(LittleEndian): added Pack methods.
2015-04-14 10:30:23 +04:00
morkt
0936c172cb exception note. 2015-04-14 10:28:38 +04:00
morkt
87ec61587f (IResource): properties no longer backed up by private fields. 2015-04-06 17:08:32 +04:00
morkt
1e70ac5961 implemented WaveAudio.Write method. 2015-03-31 14:38:47 +04:00
morkt
3c6e030b38 (AudioFormat.Write): new virtual method. 2015-03-31 14:35:44 +04:00
morkt
6c3e1ed433 released v1.0.4 2015-03-11 21:27:02 +04:00
morkt
cc44a73bc5 (ArcView): store file name. 2015-02-15 19:50:17 +04:00
morkt
2593f9ffc3 store last thrown exception in FormatCatalog.LastError. 2014-11-07 17:11:51 +04:00
morkt
2a7520939d use Buffer.BlockCopy instead of Array.Copy. 2014-11-07 17:11:11 +04:00
morkt
07ea1b9af7 added audio resource format. 2014-11-07 02:44:22 +04:00
morkt
0164ce838a released v1.0.3 2014-11-01 13:26:08 +04:00
morkt
6aeb3ea27e automatically update assembly build/revision number. 2014-10-31 18:47:02 +04:00
morkt
82b1fc0603 (ArcFile.OverwriteNotify): new event.
preliminary support for extracted file overwrite notification.
2014-09-12 16:04:18 +04:00
morkt
ae559f34a6 (ArchiveFormat.CopyEntry): new virtual method.
the idea is to allow implementations to give extracted file a name
different from the one it stored within archive.
2014-09-12 16:03:30 +04:00
morkt
58018d3c67 (ArcStream): added constructors from ArcView.Frame 2014-09-12 15:58:18 +04:00
morkt
58f8b4845d incremented version number. 2014-09-08 11:54:39 +04:00
morkt
ad1b51b24c use Enumerable.Empty() to return empty list. 2014-08-25 15:05:30 +04:00
morkt
b0f621e8ab CopyOverlapped function defined in GameRes.Utitlity now.
CopyOverlapped copies ranges within array the same way standard C
function memcpy does (that is, ignoring potential region overlapping).
2014-08-25 15:04:26 +04:00
morkt
8a53d74d5e use invariant case conversion methods. 2014-08-22 10:13:37 +04:00
morkt
83e4414ffc (ArcStream): added CreateStream method with single argument. 2014-08-16 10:37:25 +04:00
morkt
26526a97bb added ICheckSum interface and CheckedStream class.
Crc32 and Adler32 classes now implement ICheckSum interface.
2014-08-16 04:23:12 +04:00
morkt
1b46da45a6 refactoring.
(ArchiveFormat): added Query<ResourceOptions> protected method for
convenient invocation of  parameters requests.
(FormatCatalog): changed misguiding method name 'LookupTag' to
'LookupExtension'.
2014-08-02 10:01:06 +04:00
morkt
16efe95597 (FormatCatalog.ReadString): removed misplaced big-endian treatment. 2014-08-02 09:04:31 +04:00
morkt
959dec52f2 changed target framework version to v4.5 2014-08-01 20:14:08 +04:00
morkt
7a6c5d8054 (MappedViewExtension.GetPointer): use supplied offset argument. 2014-08-01 20:11:32 +04:00
morkt
3ba8c6d237 disable PDB generation in release build. 2014-08-01 19:49:00 +04:00
morkt
f15676d0a1 (TryOpen): use lazy evaluation for filename extension check. 2014-07-29 15:30:23 +04:00
morkt
64f38255ee (TryOpen): check formats that match filename extension first. 2014-07-29 14:17:41 +04:00
morkt
6330309552 (Encodings.WithFatalFallback): turned into Encoding extension method. 2014-07-29 11:48:43 +04:00
morkt
8bc92d0dea ArchiveFormat refactored.
(Extract): method is no longer virtual.
(CreateFile): added check for malicious and malformed filenames.
(ParametersRequestEventArgs): removed InputWidget property.
2014-07-29 07:01:36 +04:00
morkt
32f3dd134f (Encodings): added WithFatalFallback static method. 2014-07-29 06:54:46 +04:00
morkt
9922955323 added license clause and third-party copyright notices. 2014-07-28 00:50:18 +04:00
morkt
1c33e4c9d5 refactored ResourceOptions handling. 2014-07-27 07:39:58 +04:00
morkt
08b8e8a46b added callback into archive creation method. 2014-07-27 03:37:51 +04:00
morkt
2446927e83 (Adler32): use "unsafe" implementation. added appropriate methods. 2014-07-26 23:20:08 +04:00
morkt
4cf46ed91c (ArchiveFormat): added CanCreate virtual property. 2014-07-26 23:18:50 +04:00
morkt
c0fa230abb (ArcView): MemoryMappedFile should not dispose underlying file stream itself. 2014-07-26 23:17:55 +04:00
morkt
46c05b25de ImageFormat.Read method made static. 2014-07-25 08:56:32 +04:00
morkt
3a7d2111be implemented archive creation frontend. 2014-07-25 07:05:55 +04:00
morkt
53d0267eca (LittleEndian): added 64-bit integer readers. 2014-07-25 00:52:24 +04:00
morkt
0a1f14e051 added preliminary archive creation support. 2014-07-24 05:43:20 +04:00
Poddav
e208029dd3 Initial commit. 2014-07-21 23:26:28 +04:00