Commit | Line | Data |
c3242ac4 |
1 | /* |
2 | Copyright (c) 2002-2013, ShadowFlare <blakflare@hotmail.com> |
3 | All rights reserved. |
4 | |
5 | Redistribution and use in source and binary forms, with or without |
6 | modification, are permitted provided that the following conditions |
7 | are met: |
8 | |
9 | 1. Redistributions of source code must retain the above copyright |
10 | notice, this list of conditions and the following disclaimer. |
11 | 2. Redistributions in binary form must reproduce the above copyright |
12 | notice, this list of conditions and the following disclaimer in the |
13 | documentation and/or other materials provided with the distribution. |
14 | |
15 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND |
16 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
17 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
18 | ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |
19 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
20 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
21 | OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
22 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
23 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
24 | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
25 | SUCH DAMAGE. |
26 | */ |
27 | |
cfca19c6 |
28 | #ifndef CWADLIB_INCLUDED |
29 | #define CWADLIB_INCLUDED |
30 | |
7b6f1c5a |
31 | #ifdef _WIN32 |
cfca19c6 |
32 | #include <tchar.h> |
7b6f1c5a |
33 | #else |
34 | #define TCHAR char |
35 | #endif |
36 | #include <stdio.h> |
cfca19c6 |
37 | |
38 | #define CWAD_INFO_NUM_FILES 0x03 //Number of files in CWAD |
39 | #define CWAD_INFO_SIZE 0x05 //Size of CWAD or uncompressed file |
40 | #define CWAD_INFO_COMPRESSED_SIZE 0x06 //Size of compressed file |
41 | #define CWAD_INFO_FLAGS 0x07 //File flags (compressed, etc.) |
42 | #define CWAD_INFO_PARENT 0x08 //Handle of CWAD that file is in |
43 | #define CWAD_INFO_POSITION 0x09 //Position of file pointer in files |
44 | |
45 | #define CWAD_FILE_BEGIN 0 |
46 | #define CWAD_FILE_CURRENT 1 |
47 | #define CWAD_FILE_END 2 |
48 | |
49 | void * CWadOpenArchive(const TCHAR *pszFileName); |
50 | bool CWadCloseArchive(void *hCWAD); |
51 | unsigned long CWadGetArchiveInfo(void *hCWAD, int nInfoType); |
52 | unsigned long CWadListFiles(void *hCWAD, char *pmszBuffer, unsigned long nBufferLength); // Returns required buffer size. Strings are in multi string form. (null-terminated strings with an extra null after the last string) |
53 | void * CWadOpenFile(void *hCWAD, const char *pszFileName); |
54 | bool CWadCloseFile(void *hFile); |
55 | unsigned long CWadGetFileSize(void *hFile); |
56 | unsigned long CWadGetFileInfo(void *hFile, int nInfoType); |
57 | unsigned long CWadSetFilePointer(void *hFile, long nDistanceToMove, int nMoveMethod); |
58 | unsigned long CWadReadFile(void *hFile, void *pBuffer, unsigned long nNumberOfBytesToRead); |
59 | unsigned long CWadFindHeader(FILE *pFile); |
60 | |
61 | #endif |