+++ /dev/null
-/* Reconstructed Commander Keen 4-6 Source Code\r
- * Copyright (C) 2021 K1n9_Duk3\r
- *\r
- * This file is primarily based on:\r
- * Catacomb 3-D Source Code\r
- * Copyright (C) 1993-2014 Flat Rock Software\r
- *\r
- * This program is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License along\r
- * with this program; if not, write to the Free Software Foundation, Inc.,\r
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\r
- */\r
-\r
-// ID_CA.H\r
-\r
-#ifndef __TYPES__\r
-#include "ID_TYPES.H"\r
-#endif\r
-\r
-#ifndef __ID_MM__\r
-#include "ID_MM.H"\r
-#endif\r
-\r
-#ifndef __ID_GLOB__\r
-#include "ID_GLOB.H"\r
-#endif\r
-\r
-#define __ID_CA__\r
-\r
-//===========================================================================\r
-\r
-//#define NOMAPS\r
-//#define NOGRAPHICS\r
-//#define NOAUDIO\r
-\r
-#define MAPHEADERLINKED\r
-#define GRHEADERLINKED\r
-#define AUDIOHEADERLINKED\r
-\r
-#define NUMMAPS 30\r
-#define MAPPLANES 3\r
-\r
-#ifndef CAT3D\r
-//\r
-// tile info defines, as bytes after tinf the table starts\r
-//\r
-\r
-\r
-//\r
-// TILEINFO offsets\r
-//\r
-#define SPEED 402\r
-#define ANIM (SPEED+NUMTILE16)\r
-\r
-//\r
-// TILEINFOM offsets\r
-//\r
-#define NORTHWALL (ANIM+NUMTILE16)\r
-#define EASTWALL (NORTHWALL+NUMTILE16M)\r
-#define SOUTHWALL (EASTWALL+NUMTILE16M)\r
-#define WESTWALL (SOUTHWALL+NUMTILE16M)\r
-#define MANIM (WESTWALL+NUMTILE16M)\r
-#define INTILE (MANIM+NUMTILE16M)\r
-#define MSPEED (INTILE+NUMTILE16M)\r
-#endif\r
-\r
-//===========================================================================\r
-\r
-typedef struct\r
-{\r
- long planestart[3];\r
- unsigned planelength[3];\r
- unsigned width,height;\r
- char name[16];\r
-} maptype;\r
-\r
-//===========================================================================\r
-\r
-extern byte _seg *tinf;\r
-extern int mapon;\r
-\r
-extern unsigned _seg *mapsegs[3];\r
-extern maptype _seg *mapheaderseg[NUMMAPS];\r
-extern byte _seg *audiosegs[NUMSNDCHUNKS];\r
-extern void _seg *grsegs[NUMCHUNKS];\r
-\r
-extern byte far grneeded[NUMCHUNKS];\r
-extern byte ca_levelbit,ca_levelnum;\r
-\r
-extern char *titleptr[8];\r
-\r
-extern int profilehandle,debughandle;\r
-\r
-//\r
-// hooks for custom cache dialogs\r
-//\r
-extern void (*drawcachebox) (char *title, unsigned numcache);\r
-extern void (*updatecachebox) (void);\r
-extern void (*finishcachebox) (void);\r
-\r
-//===========================================================================\r
-\r
-// just for the score box reshifting\r
-\r
-void CAL_ShiftSprite (unsigned segment,unsigned source,unsigned dest,\r
- unsigned width, unsigned height, unsigned pixshift);\r
-\r
-//===========================================================================\r
-\r
-void CA_OpenDebug (void);\r
-void CA_CloseDebug (void);\r
-boolean CA_FarRead (int handle, byte far *dest, long length);\r
-boolean CA_FarWrite (int handle, byte far *source, long length);\r
-boolean CA_ReadFile (char *filename, memptr *ptr);\r
-boolean CA_LoadFile (char *filename, memptr *ptr);\r
-\r
-long CA_RLEWCompress (unsigned huge *source, long length, unsigned huge *dest,\r
- unsigned rlewtag);\r
-\r
-void CA_RLEWexpand (unsigned huge *source, unsigned huge *dest,long length,\r
- unsigned rlewtag);\r
-\r
-void CA_Startup (void);\r
-void CA_Shutdown (void);\r
-\r
-void CA_CacheAudioChunk (int chunk);\r
-void CA_LoadAllSounds (void);\r
-\r
-void CA_UpLevel (void);\r
-void CA_DownLevel (void);\r
-\r
-void CA_SetAllPurge (void);\r
-\r
-void CA_ClearMarks (void);\r
-void CA_ClearAllMarks (void);\r
-\r
-#define CA_MarkGrChunk(chunk) grneeded[chunk]|=ca_levelbit\r
-\r
-void CA_CacheGrChunk (int chunk);\r
-void CA_CacheMap (int mapnum);\r
-\r
-void CA_CacheMarks (char *title);\r
-\r