]> 4ch.mooo.com Git - 16.git/blobdiff - 16/keen456/KEEN4-6/CK_DEF.H
added keen 4-6 rebuild code for reference.... i need to stop doing this... xD
[16.git] / 16 / keen456 / KEEN4-6 / CK_DEF.H
diff --git a/16/keen456/KEEN4-6/CK_DEF.H b/16/keen456/KEEN4-6/CK_DEF.H
deleted file mode 100755 (executable)
index 62e7944..0000000
+++ /dev/null
@@ -1,775 +0,0 @@
-/* Reconstructed Commander Keen 4-6 Source Code\r
- * Copyright (C) 2021 K1n9_Duk3\r
- *\r
- * This file is loosely based on:\r
- * Keen Dreams Source Code\r
- * Copyright (C) 2014 Javier M. Chavez\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
-#ifndef __CK_DEF__\r
-#define __CK_DEF__\r
-\r
-#include <BIOS.H>\r
-#include <CONIO.H>\r
-\r
-#include "ID_HEADS.H"\r
-\r
-/*\r
-=============================================================================\r
-\r
-                                                GLOBAL CONSTANTS & MACROS\r
-\r
-=============================================================================\r
-*/\r
-\r
-#define MAXACTORS 100\r
-\r
-#define GAMELEVELS 25\r
-\r
-#define CONVERT_GLOBAL_TO_TILE(x)  ((x)>>(G_T_SHIFT))\r
-#define CONVERT_TILE_TO_GLOBAL(x)  ((x)<<(G_T_SHIFT))\r
-#define CONVERT_GLOBAL_TO_PIXEL(x) ((x)>>(G_P_SHIFT))\r
-#define CONVERT_PIXEL_TO_GLOBAL(x) ((x)<<(G_P_SHIFT))\r
-#define CONVERT_PIXEL_TO_TILE(x)   ((x)>>(P_T_SHIFT))\r
-#define CONVERT_TILE_TO_PIXEL(x)   ((x)<<(P_T_SHIFT))\r
-\r
-#define SPAWN_ADJUST_Y(y, h) (CONVERT_TILE_TO_GLOBAL(y) + (CONVERT_PIXEL_TO_GLOBAL(16-(h))))\r
-\r
-#define ARRAYLENGTH(x) (sizeof(x)/sizeof(*(x)))\r
-\r
-#define CA_UnmarkGrChunk(num) (grneeded[num] &= ~ca_levelbit)\r
-\r
-#define SetPalette(pal) {_ES=FP_SEG(pal); _DX=FP_OFF(pal); _AX=0x1002; geninterrupt(0x10);}\r
-#define SetPaletteEx(pal) {(pal)[16] = bordercolor; SetPalette(pal);}\r
-\r
-//HACK IMPORTS:\r
-void RFL_InitAnimList(void);\r
-void CA_FreeGraphics(void);\r
-void CA_SetGrPurge(void);\r
-\r
-/*\r
-Note:\r
-\r
-The ID software memory manager doesn't care about the different purge levels.\r
-Using PURGE_FIST is identical to using PURGE_LAST.\r
-*/\r
-#define PURGE_FIRST 3\r
-#define PURGE_LAST 1\r
-\r
-#define PLATFORMBLOCK 31\r
-#define DIRARROWSTART 91\r
-#define DIRARROWEND   (DIRARROWSTART+arrow_None)\r
-\r
-/*\r
-=============================================================================\r
-\r
-                                                  GLOBAL TYPES\r
-\r
-=============================================================================\r
-*/\r
-\r
-//SDL-style integer types - just to make future SDL ports easier\r
-typedef unsigned int Uint16;\r
-typedef signed int Sint16;\r
-typedef unsigned char Uint8;\r
-typedef signed char Sint8;\r
-typedef unsigned long Uint32;\r
-typedef signed long Sint32;\r
-//Note: only the game code (CK_*.C, K?_*.C) uses these!\r
-\r
-//some compile-time checks to make sure the ints have the correct size\r
-#if (sizeof(Uint16) != 2)\r
-#error 'Uint16' has wrong size\r
-#elif (sizeof(Sint16) != 2)\r
-#error 'Sint16' has wrong size\r
-#elif (sizeof(Uint8) != 1)\r
-#error 'Uint8' has wrong size\r
-#elif (sizeof(Sint8) != 1)\r
-#error 'Sint8' has wrong size\r
-#elif (sizeof(Uint32) != 4)\r
-#error 'Uint32' has wrong size\r
-#elif (sizeof(Sint32) != 4)\r
-#error 'Sint32' has wrong size\r
-#endif\r
-\r
-typedef enum {\r
-       arrow_North,     // 0\r
-       arrow_East,      // 1\r
-       arrow_South,     // 2\r
-       arrow_West,      // 3\r
-       arrow_NorthEast, // 4\r
-       arrow_SouthEast, // 5\r
-       arrow_SouthWest, // 6\r
-       arrow_NorthWest, // 7\r
-       arrow_None       // 8\r
-} arrowdirtype;\r
-\r
-typedef enum {\r
-       ex_stillplaying, //  0\r
-       ex_died,         //  1\r
-       ex_completed,    //  2\r
-       ex_rescued,      //  3, only in Keen 4\r
-       ex_warped,       //  4\r
-       ex_resetgame,    //  5\r
-       ex_loadedgame,   //  6\r
-       ex_foot,         //  7, only in Keen 4\r
-       ex_abortgame,    //  8\r
-       ex_sandwich,     //  9, only in Keen 6\r
-       ex_hook,         // 10, only in Keen 6\r
-       ex_card,         // 11, only in Keen 6\r
-       ex_molly,        // 12, only in Keen 6\r
-       ex_portout,      // 13, only in Keen 5\r
-       ex_fusebroke,    // 14, only in Keen 5\r
-       ex_qedbroke,     // 15, only in Keen 5\r
-       NUMEXITTYPES\r
-} exittype;\r
-\r
-typedef enum\r
-{\r
-       INTILE_NOTHING,        //  0\r
-       INTILE_POLE,           //  1\r
-       INTILE_DOOR,           //  2\r
-       INTILE_DEADLY,         //  3\r
-       INTILE_DROP,           //  4\r
-       INTILE_SWITCH0,        //  5\r
-       INTILE_SWITCH1,        //  6\r
-       INTILE_GEMSOCKET0,     //  7\r
-       INTILE_GEMSOCKET1,     //  8\r
-       INTILE_GEMSOCKET2,     //  9\r
-       INTILE_GEMSOCKET3,     // 10\r
-       INTILE_SHORESOUTH,     // 11\r
-       INTILE_SHOREWEST,      // 12\r
-       INTILE_SHORENORTH,     // 13\r
-       INTILE_SHOREEAST,      // 14\r
-       INTILE_BRIDGESWITCH,   // 15\r
-       INTILE_MOON,           // 16\r
-       INTILE_DIRARROW,       // 17 (not used in the code, but assigned to tiles in Keen 5 & 6)\r
-       INTILE_BRIDGE,         // 18\r
-       INTILE_FORCEFIELD,     // 19\r
-       INTILE_TELEPORT,       // 20\r
-       INTILE_BONUS100,       // 21\r
-       INTILE_BONUS200,       // 22\r
-       INTILE_BONUS500,       // 23\r
-       INTILE_BONUS1000,      // 24\r
-       INTILE_BONUS2000,      // 25\r
-       INTILE_BONUS5000,      // 26\r
-       INTILE_EXTRALIFE,      // 27\r
-       INTILE_AMMO,           // 28\r
-       INTILE_29,             // 29 (never used)\r
-       INTILE_FORCEFIELDEND,  // 30\r
-       INTILE_AMPTONCOMPUTER, // 31\r
-       INTILE_KEYCARDDOOR,    // 32\r
-       INTILE_ELEVATORLEFT,   // 33\r
-       INTILE_ELEVATORRIGHT,  // 34\r
-\r
-       INTILE_FOREGROUND = 0x80\r
-} intiletype;\r
-\r
-#define INTILE_TYPEMASK (INTILE_FOREGROUND-1)\r
-\r
-typedef enum\r
-{\r
-       nothing,         //  0\r
-       inertobj,        //  1\r
-       keenobj,         //  2\r
-       stunshotobj,     //  3\r
-#if defined KEEN4\r
-       bonusobj,        //  4\r
-       slugobj,         //  5\r
-       oracleobj,       //  6\r
-       classtype_7,     //  7, never used\r
-       eggobj,          //  8\r
-       madmushroomobj,  //  9\r
-       arachnutobj,     // 10\r
-       skypestobj,      // 11\r
-       wormouthobj,     // 12\r
-       thundercloudobj, // 13\r
-       berkeloidobj,    // 14\r
-       bounderobj,      // 15\r
-       inchwormobj,     // 16\r
-       footobj,         // 17\r
-       lickobj,         // 18\r
-       mimrockobj,      // 19\r
-       platformobj,     // 20\r
-       dopefishobj,     // 21\r
-       schoolfishobj,   // 22\r
-       pixieobj,        // 23\r
-       lindseyobj,      // 24\r
-       lightningobj,    // 25\r
-       treasureeaterobj,// 26\r
-       eggbirdobj,      // 27\r
-       classtype_28,    // 28, never used\r
-       classtype_29,    // 29, never used\r
-       scubaobj,        // 30\r
-       mshotobj,        // 31\r
-       mineobj,         // 32\r
-       stunnedobj,      // 33\r
-       flagobj,         // 34\r
-#elif defined KEEN5\r
-       mshotobj,        //  4\r
-       bonusobj,        //  5\r
-       platformobj,     //  6\r
-       stunnedobj,      //  7\r
-       flagobj,         //  8\r
-       sparkyobj,       //  9\r
-       mineobj,         // 10\r
-       slicestarobj,    // 11\r
-       roboredobj,      // 12\r
-       spirogripobj,    // 13\r
-       amptonobj,       // 14\r
-       cannonobj,       // 15\r
-       volteobj,        // 16\r
-       shelleyobj,      // 17, never used\r
-       spindredobj,     // 18\r
-       shikadimasterobj,// 19\r
-       shikadiobj,      // 20\r
-       petobj,          // 21\r
-       spherefulobj,    // 22\r
-       scottieobj,      // 23\r
-       teleporterobj,   // 24\r
-       qedobj,          // 25\r
-#elif defined KEEN6\r
-       mshotobj,        //  4\r
-       bonusobj,        //  5\r
-       platformobj,     //  6\r
-       bloogobj,        //  7\r
-       bloogletobj,     //  8\r
-       classtype_9,     //  9, never used\r
-       fleexobj,        // 10\r
-       classtype_11,    // 11, never used\r
-       mollyobj,        // 12\r
-       babobbaobj,      // 13\r
-       bobbaobj,        // 14\r
-       classtype_15,    // 15\r
-       nospikeobj,      // 16\r
-       gikobj,          // 17\r
-       cannonobj,       // 18\r
-       orbatrixobj,     // 19\r
-       bipobj,          // 20\r
-       flectobj,        // 21\r
-       blorbobj,        // 22\r
-       ceilickobj,      // 23\r
-       blooguardobj,    // 24\r
-       stunnedobj,      // 25\r
-       bipshipobj,      // 26\r
-       sandwichobj,     // 27\r
-       hookobj,         // 28\r
-       passcardobj,     // 29\r
-       grabbiterobj,    // 30\r
-       rocketobj,       // 31\r
-       grapplespotobj,  // 32\r
-       satelliteobj,    // 33\r
-       satellitestopobj,// 34\r
-       flagobj,         // 35\r
-#endif\r
-       NUMCLASSTYPES\r
-} classtype;\r
-\r
-typedef struct statestruct\r
-{\r
-       Sint16 leftshapenum, rightshapenum;\r
-       enum {step,slide,think,stepthink,slidethink} progress;\r
-       boolean skippable;\r
-       boolean pushtofloor;\r
-       Sint16 tictime;\r
-       Sint16 xmove;\r
-       Sint16 ymove;\r
-       void (*think) (struct objstruct*);\r
-       void (*contact) (struct objstruct*, struct objstruct*);\r
-       void (*react) (struct objstruct*);\r
-       struct statestruct *nextstate;\r
-} statetype;\r
-\r
-typedef struct objstruct\r
-{\r
-       classtype obclass;\r
-       enum {ac_no, ac_yes, ac_allways, ac_removable} active;\r
-       boolean needtoreact;\r
-       enum {cl_noclip, cl_midclip, cl_fullclip} needtoclip;\r
-       Uint16 nothink;\r
-       Uint16 x, y;\r
-       Sint16 xdir, ydir;\r
-       Sint16 xmove, ymove;\r
-       Sint16 xspeed, yspeed;\r
-       Sint16 ticcount;\r
-       statetype *state;\r
-       Uint16 shapenum;\r
-       Uint16 priority;\r
-       Uint16 left, top, right, bottom, midx;\r
-       Uint16 tileleft, tiletop, tileright, tilebottom, tilemidx;\r
-       Sint16 hitnorth, hiteast, hitsouth, hitwest;\r
-       Sint16 temp1, temp2, temp3, temp4;\r
-       void *sprite;\r
-       struct objstruct *next, *prev;\r
-} objtype;\r
-\r
-typedef struct\r
-{\r
-       Uint16 worldx, worldy;\r
-       boolean leveldone[GAMELEVELS];\r
-       Sint32 score, nextextra;\r
-       Sint16 ammo, drops;\r
-#if defined KEEN4\r
-       Sint16 wetsuit;\r
-       Sint16 rescued;\r
-#elif defined KEEN5\r
-       boolean keycard;\r
-       Sint16 destroyed;       // never used\r
-       Sint16 numfuses;\r
-#elif defined KEEN6\r
-       Sint16 sandwichstate, hookstate, passcardstate, rocketstate;\r
-#endif\r
-       Sint16 keys[4];\r
-       Sint16 mapon;\r
-       Sint16 lives;\r
-       Sint16 difficulty;\r
-       objtype *riding;\r
-} gametype;\r
-\r
-/*\r
-=============================================================================\r
-\r
-                                               CK_MAIN DEFINITIONS\r
-\r
-=============================================================================\r
-*/\r
-\r
-extern char str[80], str2[20];\r
-extern boolean storedemo;\r
-\r
-void SizeText(char *text, Uint16 *width, Uint16 *height);\r
-\r
-/*\r
-=============================================================================\r
-\r
-                                               CK_DEMO DEFINITIONS\r
-\r
-=============================================================================\r
-*/\r
-\r
-extern boolean scorescreenkludge;\r
-\r
-void CheckLastScan(void);\r
-#if GRMODE == EGAGR\r
-void Terminator(void);\r
-void StarWars(void);\r
-#endif\r
-void ShowTitle(void);\r
-#if GRMODE == CGAGR\r
-void ShowCredits(void);\r
-#endif\r
-void RunDemo(Sint16 num);\r
-void DrawHighScores(void);\r
-void CheckHighScore(Sint32 score, Sint16 completed);\r
-void ShowHighScores(void);\r
-\r
-/*\r
-=============================================================================\r
-\r
-                                               CK_GAME DEFINITIONS\r
-\r
-=============================================================================\r
-*/\r
-\r
-void FreeGraphics(void);\r
-void NewGame(void);\r
-boolean SaveTheGame(Sint16 handle);\r
-boolean LoadTheGame(Sint16 handle);\r
-void ResetGame(void);\r
-void SetupGameLevel(boolean loadnow);\r
-void DialogDraw(char *title, Uint16 numcache);\r
-void DialogUpdate(void);\r
-void DialogFinish(void);\r
-void StartDemoRecord(void);\r
-void EndDemoRecord(void);\r
-void GameLoop(void);\r
-void HandleDeath(void);\r
-\r
-/*\r
-=============================================================================\r
-\r
-                                               CK_PLAY DEFINITIONS\r
-\r
-=============================================================================\r
-*/\r
-\r
-extern boolean singlestep, jumpcheat, godmode, keenkilled;\r
-extern exittype playstate;\r
-extern gametype gamestate;\r
-extern objtype *new, *check, *player, *scoreobj;\r
-extern Uint16 originxtilemax, originytilemax;\r
-extern ControlInfo c;\r
-extern boolean button2, button3;       // never used\r
-extern objtype dummyobj;\r
-extern Sint16 invincible;\r
-extern boolean oldshooting, showscorebox, joypad;\r
-extern Sint16 groundslam;\r
-extern boolean debugok;\r
-extern boolean jumpbutton, jumpheld, pogobutton, pogoheld, firebutton, fireheld, upheld;\r
-\r
-\r
-void CheckKeys(void);\r
-void StatusWindow(void);\r
-void CenterActor(objtype *ob);\r
-void WorldScrollScreen(objtype *ob);\r
-void ScrollScreen(objtype *ob);\r
-void InitObjArray(void);\r
-Sint16 GetNewObj(boolean usedummy);\r
-void RemoveObj(objtype *ob);\r
-void GivePoints(Uint16 points);\r
-void StopMusic(void);\r
-void StartMusic(Uint16 num);\r
-void PlayLoop(void);\r
-\r
-/*\r
-=============================================================================\r
-\r
-                                               CK_TEXT DEFINITIONS\r
-\r
-=============================================================================\r
-*/\r
-\r
-void HelpScreens(void);\r
-void FinaleLayout(void);\r
-\r
-/*\r
-=============================================================================\r
-\r
-                                               CK_STATE DEFINITIONS\r
-\r
-=============================================================================\r
-*/\r
-\r
-extern Sint16 wallclip[8][16];\r
-\r
-extern Sint16 xtry;\r
-extern Sint16 ytry;\r
-extern boolean playerkludgeclipcancel;\r
-\r
-void MoveObjVert(objtype *ob, Sint16 ymove);\r
-void MoveObjHoriz(objtype *ob, Sint16 xmove);\r
-void PlayerBottomKludge(objtype *ob);\r
-void PlayerTopKludge(objtype *ob);\r
-void ClipToEnds(objtype *ob);\r
-void ClipToSides(objtype *ob);\r
-boolean CheckPosition(objtype *ob);\r
-boolean StatePositionOk(objtype *ob, statetype *state);\r
-\r
-#ifdef KEEN5\r
-void CalcBounds(objtype *ob);\r
-#endif\r
-\r
-void ClipToWalls(objtype *ob);\r
-void FullClipToWalls(objtype *ob);\r
-void PushObj(objtype *ob);\r
-void ClipToSpriteSide(objtype *push, objtype *solid);\r
-void ClipToSpriteTop(objtype *push, objtype *solid);\r
-void ClipToSprite(objtype *push, objtype *solid, boolean squish);\r
-Sint16 DoActor(objtype *ob, Sint16 numtics);\r
-void StateMachine(objtype *ob);\r
-void NewState(objtype *ob, statetype *state);\r
-void ChangeState(objtype *ob, statetype *state);\r
-boolean OnScreen(objtype *ob);\r
-void DoGravity(objtype *ob);\r
-void DoWeakGravity(objtype *ob);\r
-void DoTinyGravity(objtype *ob);\r
-void AccelerateX(objtype *ob, Sint16 dir, Sint16 maxspeed);\r
-void AccelerateXv(objtype *ob, Sint16 dir, Sint16 maxspeed);\r
-void AccelerateY(objtype *ob, Sint16 dir, Sint16 maxspeed);\r
-void FrictionX(objtype *ob);\r
-void FrictionY(objtype *ob);\r
-void StunObj(objtype *ob, objtype *shot, statetype *stunstate);\r
-void T_Projectile(objtype *ob);\r
-void T_WeakProjectile(objtype *ob);\r
-void ProjectileThink1(objtype *ob);\r
-void T_Velocity(objtype *ob);\r
-void SetReactThink(objtype *ob);\r
-void T_Stunned(objtype *ob);\r
-void C_Lethal(objtype *ob, objtype *hit);\r
-void R_Draw(objtype *ob);\r
-void R_Walk(objtype *ob);\r
-void R_WalkNormal(objtype *ob);\r
-void BadState(void);\r
-void R_Stunned(objtype *ob);\r
-\r
-extern statetype sc_deadstate;\r
-extern statetype sc_badstate;\r
-\r
-/*\r
-=============================================================================\r
-\r
-                                               CK_KEEN DEFINITIONS\r
-\r
-=============================================================================\r
-*/\r
-\r
-extern Uint16 bounceangle[8][8];\r
-#ifndef KEEN4\r
-extern arrowdirtype arrowflip[];\r
-#endif\r
-\r
-extern statetype s_keenstand;\r
-extern statetype s_keenpauselook;\r
-extern statetype s_keenwait1;\r
-extern statetype s_keenwait2;\r
-extern statetype s_keenwait3;\r
-extern statetype s_keenwait4;\r
-extern statetype s_keenwait5;\r
-extern statetype s_keenwait6;\r
-extern statetype s_keenmoon1;\r
-extern statetype s_keenmoon2;\r
-extern statetype s_keenmoon3;\r
-extern statetype s_keenread;\r
-extern statetype s_keenread2;\r
-extern statetype s_keenread3;\r
-extern statetype s_keenread4;\r
-extern statetype s_keenread5;\r
-extern statetype s_keenread6;\r
-extern statetype s_keenread7;\r
-extern statetype s_keenstopread;\r
-extern statetype s_keenstopread2;\r
-extern statetype s_keenstopread3;\r
-extern statetype s_keenlookup;\r
-extern statetype s_keenlookup2;\r
-extern statetype s_keenlookdown;\r
-extern statetype s_keenlookdown2;\r
-extern statetype s_keenlookdown3;\r
-extern statetype s_keenlookdown4;\r
-extern statetype s_keendrop;\r
-extern statetype s_keendead;\r
-extern statetype s_keendie1;\r
-extern statetype s_keendie2;\r
-#ifdef KEEN4\r
-extern statetype s_keensuitdie1;\r
-extern statetype s_keensuitdie2;\r
-#endif\r
-extern statetype s_keenshoot1;\r
-extern statetype s_keenshoot2;\r
-extern statetype s_keenshootup1;\r
-extern statetype s_keenshootup2;\r
-extern statetype s_keenswitch;\r
-extern statetype s_keenswitch2;\r
-extern statetype s_keenkey;\r
-extern statetype s_keenlineup;\r
-extern statetype s_keenenter1;\r
-extern statetype s_keenenter2;\r
-extern statetype s_keenenter3;\r
-extern statetype s_keenenter4;\r
-extern statetype s_keenenter5;\r
-extern statetype s_keenpole;\r
-extern statetype s_keenclimb1;\r
-extern statetype s_keenclimb2;\r
-extern statetype s_keenclimb3;\r
-extern statetype s_keenslide1;\r
-extern statetype s_keenslide2;\r
-extern statetype s_keenslide3;\r
-extern statetype s_keenslide4;\r
-extern statetype s_keenpoleshoot1;\r
-extern statetype s_keenpoleshoot2;\r
-extern statetype s_keenpoleshootup1;\r
-extern statetype s_keenpoleshootup2;\r
-extern statetype s_keenpoleshootdown1;\r
-extern statetype s_keenpoleshootdown2;\r
-extern statetype s_keenwalk1;\r
-extern statetype s_keenwalk2;\r
-extern statetype s_keenwalk3;\r
-extern statetype s_keenwalk4;\r
-extern statetype s_keenpogodown;\r
-extern statetype s_keenpogo;\r
-extern statetype s_keenpogo2;\r
-extern statetype s_keenjump1;\r
-extern statetype s_keenjump2;\r
-extern statetype s_keenjump3;\r
-extern statetype s_keenjump4;\r
-extern statetype s_keenairshoot1;\r
-extern statetype s_keenairshoot2;\r
-extern statetype s_keenairshoot3;\r
-extern statetype s_keenairshootup1;\r
-extern statetype s_keenairshootup2;\r
-extern statetype s_keenairshootup3;\r
-extern statetype s_keenairshootdown1;\r
-extern statetype s_keenairshootdown2;\r
-extern statetype s_keenairshootdown3;\r
-extern statetype s_keenholdon;\r
-extern statetype s_keenholdon2;\r
-extern statetype s_keenclimbup;\r
-extern statetype s_keenclimbup2;\r
-extern statetype s_keenclimbup3;\r
-extern statetype s_keenclimbup4;\r
-extern statetype s_keenclimbup5;\r
-\r
-extern Sint16 slopespeed[8];\r
-extern Sint16 polexspeed[3];\r
-\r
-extern Sint16 shotsinclip[4];\r
-extern Sint16 bonussound[];\r
-extern Sint16 bonuspoints[];\r
-extern Sint16 bonussprite[];\r
-\r
-extern Uint16 zeromap;\r
-\r
-extern Sint16 singlegravity;\r
-extern Sint16 jumptime;\r
-extern Sint32 leavepoletime;\r
-extern Sint16 moonok;\r
-\r
-void SpawnKeen(Sint16 x, Sint16 y, Sint16 dir);\r
-boolean CheckGrabPole(objtype *ob);\r
-boolean CheckEnterHouse(objtype *ob);\r
-void WalkSound1(objtype *ob);\r
-void WalkSound2(objtype *ob);\r
-void KeenStandThink(objtype *ob);\r
-void KeenPauseThink(objtype *ob);\r
-void KeenReadThink(objtype *ob);\r
-void KeenLookUpThink(objtype *ob);\r
-void KeenLookDownThink(objtype *ob);\r
-void KeenWalkThink(objtype *ob);\r
-void T_LineUp(objtype *ob);\r
-void KeenEnterThink(objtype *ob);\r
-void KeenSwitchThink(objtype *ob);\r
-void KeenKeyThink(objtype *ob);\r
-void KeenAirThink(objtype *ob);\r
-void KeenBounceThink(objtype *ob);\r
-void KeenPogoThink(objtype *ob);\r
-void PoleActions(objtype *ob);\r
-void KeenPoleThink(objtype *ob);\r
-void KeenClimbThink(objtype *ob);\r
-void KeenDropThink(objtype *ob);\r
-void KeenDropDownThink(objtype *ob);\r
-void KeenHoldThink(objtype *ob);\r
-void KeenShootThink(objtype *ob);\r
-void T_PullUp1(objtype *ob);\r
-void T_PullUp2(objtype *ob);\r
-void T_PullUp3(objtype *ob);\r
-void T_PulledUp(objtype *ob);\r
-void KeenDieThink(objtype *ob);\r
-void KillKeen(void);\r
-void KeenContact(objtype *ob, objtype *hit);\r
-void KeenPosContact(objtype *ob, objtype *hit);\r
-void HandleRiding(objtype *ob);\r
-void TileBonus(Uint16 x, Uint16 y, Uint16 bonus);\r
-void GiveDrop(Uint16 x, Uint16 y);\r
-void CheckInTiles(objtype *ob);\r
-void KeenSimpleReact(objtype *ob);\r
-void KeenStandReact(objtype *ob);\r
-void KeenWalkReact(objtype *ob);\r
-void KeenAirReact(objtype *ob);\r
-void KeenPogoReact(objtype *ob);\r
-void KeenPoleReact(objtype *ob);\r
-\r
-\r
-/*\r
-=============================================================================\r
-\r
-                                               CK_KEEN2 DEFINITIONS\r
-\r
-=============================================================================\r
-*/\r
-\r
-extern statetype s_score;\r
-extern statetype s_demo;\r
-void SpawnScore(void);\r
-void UpdateScore(objtype *ob);\r
-void DrawDemoPlaque(objtype *ob);\r
-\r
-extern statetype s_worldkeen;\r
-extern statetype s_worldkeenwave1;\r
-extern statetype s_worldkeenwave2;\r
-extern statetype s_worldkeenwave3;\r
-extern statetype s_worldkeenwave4;\r
-extern statetype s_worldkeenwave5;\r
-extern statetype s_worldkeenwalk;\r
-void SpawnWorldKeen(Sint16 x, Sint16 y);\r
-#ifdef KEEN5\r
-void SpawnWorldKeenPort(Uint16 tileX, Uint16 tileY);\r
-#endif\r
-void CheckEnterLevel(objtype *ob);\r
-void T_KeenWorld(objtype *ob);\r
-void T_KeenWorldWalk(objtype *ob);\r
-void CheckWorldInTiles(objtype *ob);\r
-\r
-#ifdef KEEN4\r
-extern statetype s_keenonfoot1;\r
-extern statetype s_keenonfoot2;\r
-extern statetype s_worldswim;\r
-void T_FootFly(objtype *ob);\r
-void T_KeenWorldSwim(objtype *ob);\r
-#endif\r
-\r
-#ifdef KEEN5\r
-extern statetype s_worldelevate;\r
-void T_Elevate(objtype *ob);\r
-#endif\r
-\r
-extern statetype s_flagwave1;\r
-extern statetype s_flagwave2;\r
-extern statetype s_flagwave3;\r
-extern statetype s_flagwave4;\r
-void SpawnFlag(Sint16 x, Sint16 y);\r
-\r
-#ifndef KEEN5\r
-extern statetype s_throwflag0;\r
-extern statetype s_throwflag1;\r
-extern statetype s_throwflag2;\r
-extern statetype s_throwflag3;\r
-extern statetype s_throwflag4;\r
-extern statetype s_throwflag5;\r
-extern statetype s_throwflag6;\r
-void SpawnThrowFlag(Sint16 x, Sint16 y);\r
-void TossThink(objtype *ob);\r
-void PathThink(objtype *ob);\r
-void FlagAlign(objtype *ob);\r
-#endif\r
-\r
-extern statetype s_stunray1;\r
-extern statetype s_stunray2;\r
-extern statetype s_stunray3;\r
-extern statetype s_stunray4;\r
-extern statetype s_stunhit;\r
-extern statetype s_stunhit2;\r
-void SpawnShot(Uint16 x, Uint16 y, Direction dir);\r
-void ExplodeShot(objtype *ob);\r
-void T_Shot(objtype *ob);\r
-void R_Shot(objtype *ob);\r
-\r
-extern statetype s_door1;\r
-extern statetype s_door2;\r
-extern statetype s_door3;\r
-void DoorOpen(objtype *ob);\r
-\r
-#ifdef KEEN5\r
-extern statetype s_carddoor;\r
-void CardDoorOpen(objtype *ob);\r
-#endif\r
-\r
-/*\r
-=============================================================================\r
-\r
-                                               OTHER DEFINITIONS\r
-\r
-=============================================================================\r
-*/\r
-\r
-#if defined KEEN4\r
-#include "K4_DEF.H"\r
-#elif defined KEEN5\r
-#include "K5_DEF.H"\r
-#elif defined KEEN6\r
-#include "K6_DEF.H"\r
-#endif\r
-\r
-#endif
\ No newline at end of file