ScummVM API documentation
implode.h
1/* ScummVM - Graphic Adventure Engine
2 *
3 * ScummVM is the legal property of its developers, whose names
4 * are too numerous to list here. Please refer to the COPYRIGHT
5 * file distributed with this source distribution.
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 *
20 */
21
22#ifndef MADS_CORE_IMPLODE_H
23#define MADS_CORE_IMPLODE_H
24
25#include "mads/core/general.h"
26
27namespace MADS {
28
29extern word implode(
30 word (*read_buff)(char *buffer, word *size),
31 word (*write_buff)(char *buffer, word *size),
32 char *work_buff,
33 word *type,
34 word *dsize);
35
36extern word explode(
37 word (*read_buff)(char *buffer, word *size),
38 word (*write_buff)(char *buffer, word *size),
39 char *work_buff);
40
41/*
42 * CRC32
43 * Standard CRC-32 (ISO 3309, polynomial 0xEDB88320, reflected).
44 * Not present in the two ASM files but declared in the shared header.
45 *
46 * @param buffer
47 * @param size
48 * @param old_crc
49 * @return
50 */
51extern long crc32(unsigned char *buffer, word *size, long *old_crc);
52
53
54#define CMP_BINARY 0
55#define CMP_ASCII 1
56
57#define CMP_NO_ERROR 0
58#define CMP_INVALID_DICTSIZE 1
59#define CMP_INVALID_MODE 2
60#define CMP_BAD_DATA 3
61#define CMP_ABORT 4
62
63} // namespace MADS
64
65#endif