summaryrefslogtreecommitdiffstats
path: root/apps/plugins/sdl/progs/wolf3d/id_ca.h
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/sdl/progs/wolf3d/id_ca.h')
-rw-r--r--apps/plugins/sdl/progs/wolf3d/id_ca.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/apps/plugins/sdl/progs/wolf3d/id_ca.h b/apps/plugins/sdl/progs/wolf3d/id_ca.h
new file mode 100644
index 0000000000..87a8886417
--- /dev/null
+++ b/apps/plugins/sdl/progs/wolf3d/id_ca.h
@@ -0,0 +1,60 @@
+#ifndef __ID_CA__
+#define __ID_CA__
+
+//===========================================================================
+
+#define NUMMAPS 60
+#ifdef USE_FLOORCEILINGTEX
+ #define MAPPLANES 3
+#else
+ #define MAPPLANES 2
+#endif
+
+#define UNCACHEGRCHUNK(chunk) {if(grsegs[chunk]) {free(grsegs[chunk]); grsegs[chunk]=NULL;}}
+#define UNCACHEAUDIOCHUNK(chunk) {if(audiosegs[chunk]) {free(audiosegs[chunk]); audiosegs[chunk]=NULL;}}
+
+//===========================================================================
+
+typedef struct
+{
+ int32_t planestart[3];
+ word planelength[3];
+ word width,height;
+ char name[16];
+} maptype;
+
+//===========================================================================
+
+extern int mapon;
+
+extern word *mapsegs[MAPPLANES];
+extern byte *audiosegs[NUMSNDCHUNKS];
+extern byte *grsegs[NUMCHUNKS];
+
+extern char extension[5];
+extern char graphext[5];
+extern char audioext[5];
+
+//===========================================================================
+
+boolean CA_LoadFile (const char *filename, memptr *ptr);
+boolean CA_WriteFile (const char *filename, void *ptr, int32_t length);
+
+int32_t CA_RLEWCompress (word *source, int32_t length, word *dest, word rlewtag);
+
+void CA_RLEWexpand (word *source, word *dest, int32_t length, word rlewtag);
+
+void CA_Startup (void);
+void CA_Shutdown (void);
+
+int32_t CA_CacheAudioChunk (int chunk);
+void CA_LoadAllSounds (void);
+
+void CA_CacheGrChunk (int chunk);
+void CA_CacheMap (int mapnum);
+
+void CA_CacheScreen (int chunk);
+
+void CA_CannotOpen(const char *name);
+
+#endif