22 #ifndef MADS_CORE_PACK_H 23 #define MADS_CORE_PACK_H 25 #include "common/stream.h" 26 #include "mads/core/general.h" 30 #define PACK_ID_STRING "MADSPACK 2.0\032" 31 #define PACK_ID_LENGTH 14 32 #define PACK_ID_CHECK 12 34 #define PACK_IMPLODE 0 35 #define PACK_EXPLODE 1 36 #define PACK_RAW_COPY 2 48 #define PACK_IMPLODE_SIZE 35256 49 #define PACK_EXPLODE_SIZE 12574 51 #define PACK_PFABCOMP_SIZE 0x71be 52 #define PACK_PFABEXP0_SIZE 0x382c 53 #define PACK_PFABEXP1_SIZE 0x0820 54 #define PACK_PFABEXP2_SIZE 0x0004 62 #define PACK_RAW_COPY_SIZE 0x1000 64 #define PACK_WINDOW_SIZE 4096 65 #define PACK_MIN_WINDOW_SIZE 1024 67 #define PACK_MAX_PACKET_SIZE 0xfc00 69 #define PACK_MAX_LIST_LENGTH 16 72 #define PACK_PRIORITY_SPRITE_SERIES 4 73 #define PACK_PRIORITY_ANIMATIONS 5 75 #define PACK_PRIORITY_FONTS 7 76 #define PACK_PRIORITY_ROOM_DATA 8 77 #define PACK_PRIORITY_ROOM_HOTSPOTS 9 78 #define PACK_PRIORITY_INTERFACES 10 79 #define PACK_PRIORITY_ROOM_ART 11 81 #define PACK_OVERHEAD PackList::SIZE 90 static constexpr
size_t SIZE = 1 + 1 + 4 + 4;
95 #define PACK_HEADER (PACK_ID_LENGTH + 2) 98 char id_string[PACK_ID_LENGTH];
103 static constexpr
size_t SIZE = PACK_HEADER + PackStrategy::SIZE * PACK_MAX_LIST_LENGTH;
109 extern byte *pack_read_memory_ptr;
110 extern byte *pack_write_memory_ptr;
115 extern long pack_read_size;
116 extern long pack_read_count;
117 extern long pack_write_size;
118 extern long pack_write_count;
121 extern word(*pack_read_routine)(
char *buffer, word *size);
123 extern word(*pack_write_routine)(
char *buffer, word *size);
125 extern word pack_mode;
126 extern byte *pack_buffer;
127 extern word pack_buffer_size;
129 extern int pack_default;
131 extern byte pack_zip_enabled;
132 extern byte pack_pfab_enabled;
133 extern int pack_strategy;
135 extern int pack_ems_page_handle;
136 extern int pack_ems_page_marker;
137 extern int pack_ems_page_offset;
143 extern word (*pack_implode_routine)(
144 word (*read_buff)(
char *buffer, word *size),
145 word (*write_buff)(
char *buffer, word *size),
150 extern word (*pack_explode_routine)(
151 word (*read_buff)(
char *buffer, word *size),
152 word (*write_buff)(
char *buffer, word *size),
155 extern word (*pack_pFABcomp_routine)(
156 word (*read_buff)(
char *buffer, word *size),
157 word (*write_buff)(
char *buffer, word *size),
162 extern word (*pack_pFABexp0_routine)(
163 word (*read_buff)(
char *buffer, word *size),
164 word (*write_buff)(
char *buffer, word *size),
167 extern word (*pack_pFABexp1_routine)(
168 word (*read_buff)(
char *buffer, word *size),
172 extern word (*pack_pFABexp2_routine)(
178 extern byte *pack_special_buffer;
179 extern void (*pack_special_function)();
182 extern word pack_read_memory(
char *buffer, word *size);
183 extern word pack_write_memory(
char *buffer, word *size);
184 extern word pack_read_file(
char *buffer, word *size);
185 extern word pack_write_file(
char *buffer, word *size);
197 extern word pack_a_packet(
int packing_flag,
int explode_mode);
234 extern long pack_data(
int packing_flag,
long size,
int source_type,
void *source,
235 int dest_type,
void *dest);
236 extern void pack_set_special_buffer(byte *buffer_address,
237 void (*(special_function))());
245 extern int pack_check();
246 extern void pack_enable_zip();
247 extern void pack_enable_pfab();
248 extern void pack_enable_pfab_explode();
249 extern void pack_enable_zip_explode();
250 extern long pack_rle(byte *target, byte *source, word source_size);
251 extern word pack_write_ems(
char *buffer, word *mysize);
Definition: anim_timer.h:27