22 #ifndef MADS_CORE_PACK_H 23 #define MADS_CORE_PACK_H 25 #include "common/stream.h" 26 #include "mads/madsv2/core/general.h" 31 #define PACK_ID_STRING "MADSPACK 2.0\032" 32 #define PACK_ID_LENGTH 14 33 #define PACK_ID_CHECK 12 35 #define PACK_IMPLODE 0 36 #define PACK_EXPLODE 1 37 #define PACK_RAW_COPY 2 49 #define PACK_IMPLODE_SIZE 35256 50 #define PACK_EXPLODE_SIZE 12574 52 #define PACK_PFABCOMP_SIZE 0x71be 53 #define PACK_PFABEXP0_SIZE 0x382c 54 #define PACK_PFABEXP1_SIZE 0x0820 55 #define PACK_PFABEXP2_SIZE 0x0004 63 #define PACK_RAW_COPY_SIZE 0x1000 65 #define PACK_WINDOW_SIZE 4096 66 #define PACK_MIN_WINDOW_SIZE 1024 68 #define PACK_MAX_PACKET_SIZE 0xfc00 70 #define PACK_MAX_LIST_LENGTH 16 73 #define PACK_PRIORITY_SPRITE_SERIES 4 74 #define PACK_PRIORITY_ANIMATIONS 5 76 #define PACK_PRIORITY_FONTS 7 77 #define PACK_PRIORITY_ROOM_DATA 8 78 #define PACK_PRIORITY_ROOM_HOTSPOTS 9 79 #define PACK_PRIORITY_INTERFACES 10 80 #define PACK_PRIORITY_ROOM_ART 11 82 #define PACK_OVERHEAD PackList::SIZE 91 static constexpr
int SIZE = 1 + 1 + 4 + 4;
96 #define PACK_HEADER (PACK_ID_LENGTH + 2) 99 char id_string[PACK_ID_LENGTH];
104 static constexpr
int SIZE = PACK_HEADER + PackStrategy::SIZE * PACK_MAX_LIST_LENGTH;
110 extern byte *pack_read_memory_ptr;
111 extern byte *pack_write_memory_ptr;
116 extern long pack_read_size;
117 extern long pack_read_count;
118 extern long pack_write_size;
119 extern long pack_write_count;
122 extern word(*pack_read_routine)(
char *buffer, word *size);
124 extern word(*pack_write_routine)(
char *buffer, word *size);
126 extern word pack_mode;
127 extern byte *pack_buffer;
128 extern word pack_buffer_size;
130 extern int pack_default;
132 extern byte pack_zip_enabled;
133 extern byte pack_pfab_enabled;
134 extern int pack_strategy;
136 extern int pack_ems_page_handle;
137 extern int pack_ems_page_marker;
138 extern int pack_ems_page_offset;
144 extern word (*pack_implode_routine)(
145 word (*read_buff)(
char *buffer, word *size),
146 word (*write_buff)(
char *buffer, word *size),
151 extern word (*pack_explode_routine)(
152 word (*read_buff)(
char *buffer, word *size),
153 word (*write_buff)(
char *buffer, word *size),
156 extern word (*pack_pFABcomp_routine)(
157 word (*read_buff)(
char *buffer, word *size),
158 word (*write_buff)(
char *buffer, word *size),
163 extern word (*pack_pFABexp0_routine)(
164 word (*read_buff)(
char *buffer, word *size),
165 word (*write_buff)(
char *buffer, word *size),
168 extern word (*pack_pFABexp1_routine)(
169 word (*read_buff)(
char *buffer, word *size),
173 extern word (*pack_pFABexp2_routine)(
179 extern byte *pack_special_buffer;
180 extern void (*pack_special_function)();
183 extern word pack_read_memory(
char *buffer, word *size);
184 extern word pack_write_memory(
char *buffer, word *size);
185 extern word pack_read_file(
char *buffer, word *size);
186 extern word pack_write_file(
char *buffer, word *size);
198 extern word pack_a_packet(
int packing_flag,
int explode_mode);
235 extern long pack_data(
int packing_flag,
long size,
int source_type,
void *source,
236 int dest_type,
void *dest);
237 extern void pack_set_special_buffer(byte *buffer_address,
238 void (*(special_function))());
246 extern int pack_check(
void);
247 extern void pack_enable_zip(
void);
248 extern void pack_enable_pfab(
void);
249 extern void pack_enable_pfab_explode(
void);
250 extern void pack_enable_zip_explode(
void);
251 extern long pack_rle(byte *target, byte *source, word source_size);
252 extern word pack_write_ems(
char *buffer, word *mysize);
Definition: sound_manager.h:38