]> 4ch.mooo.com Git - 16.git/blobdiff - 16/keen456/KEEN4-6/KEEN6/K6_DEF.H
extrcted keen code remake
[16.git] / 16 / keen456 / KEEN4-6 / KEEN6 / K6_DEF.H
diff --git a/16/keen456/KEEN4-6/KEEN6/K6_DEF.H b/16/keen456/KEEN4-6/KEEN6/K6_DEF.H
new file mode 100755 (executable)
index 0000000..9453b52
--- /dev/null
@@ -0,0 +1,518 @@
+/* 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 __K6_DEF__\r
+#define __K6_DEF__\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                               GLOBAL CONSTANTS\r
+\r
+=============================================================================\r
+*/\r
+\r
+#if GRMODE == CGAGR\r
+#define MINMEMORY 255000l\r
+#else\r
+#define MINMEMORY 300000l\r
+#endif\r
+\r
+#define STARPALETTE   {0, 1, 24, 25, 4, 28, 6, 7, 31, 31, 31, 31, 31, 31, 31, 31, 0}\r
+#define INTROPALETTE  {0, 5, 5, 21, 1, 1, 1, 1, 17, 17, 17, 17, 19, 19, 19, 19, 0}\r
+#define SHRINKPALETTE {0, 5, 5, 21, 1, 1, 1, 1, 17, 17, 17, 17, 19, 19, 19,  5, 0}\r
+\r
+#define HIGHSCORE_LEFT 40\r
+#define HIGHSCORE_TOP  51\r
+#define HIGHSCORE_RIGHT        280\r
+#define HIGHSCORE_MAP  18\r
+\r
+#define STATUS_PRESSKEY_X 120\r
+\r
+#define WORLDMAPNAME   "Fribbulus Xax"\r
+#define DROPSNAME      "VIVAS"\r
+\r
+#define STARWARSMUSIC  13\r
+#define ENDINGMUSIC    1\r
+\r
+// levels in this range can NOT be re-entered (BWB level should be > MAXDONELEVEL)\r
+#define MINDONELEVEL 1\r
+#define MAXDONELEVEL 16\r
+\r
+#define INACTIVATEDIST 4\r
+\r
+//\r
+// tiles for worldmap teleporters\r
+//\r
+#define TELEPORTERTILE1 2613   // tile animation for teleporting out\r
+#define TELEPORTERTILE2 2629   // tile after teleporting out\r
+#define TELEPORTERTILE3 TELEPORTERTILE1        // tile animation for teleporting in\r
+#define TELEPORTERTILE4 TELEPORTERTILE2        // tile after teleporting in\r
+\r
+#define TELEPORERTILEMASK 3    // animation has 4 frames\r
+\r
+extern Sint16 groundslam;\r
+\r
+//HACKs:\r
+//#define US_ManualCheck() true\r
+boolean US_ManualCheck(void);\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                               K6_SPEC DEFINITIONS\r
+\r
+=============================================================================\r
+*/\r
+\r
+extern char far swtext[];\r
+extern char far *levelnames[GAMELEVELS];\r
+extern char far *levelenter[GAMELEVELS];\r
+\r
+void ScanInfoPlane(void);\r
+\r
+extern statetype s_keenstun;\r
+\r
+void FlipBigSwitch(objtype *ob, boolean isup);\r
+void GotSandwich(void);\r
+void GotHook(void);\r
+void GotPasscard(void);\r
+\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                               K6_ACT1 DEFINITIONS\r
+\r
+=============================================================================\r
+*/\r
+\r
+extern Sint16 pdirx[];\r
+extern Sint16 pdiry[];\r
+\r
+void C_ClipSide(objtype *ob, objtype *hit);\r
+void C_ClipTop(objtype *ob, objtype *hit);\r
+void R_Land(objtype *ob);\r
+void R_Bounce(objtype *ob);\r
+\r
+extern statetype s_bonus1;\r
+extern statetype s_bonus2;\r
+extern statetype s_bonusfly1;\r
+extern statetype s_bonusfly2;\r
+extern statetype s_bonusrise;\r
+\r
+extern statetype s_splash1;\r
+extern statetype s_splash2;\r
+extern statetype s_splash3;\r
+extern statetype s_splash4;\r
+\r
+extern Uint16 bonusshape[];\r
+\r
+void SpawnBonus(Uint16 tileX, Uint16 tileY, Uint16 type);\r
+void SpawnSplash(Uint16 tileX, Uint16 tileY);\r
+void T_Bonus(objtype *ob);\r
+void T_FlyBonus(objtype *ob);\r
+\r
+extern statetype s_grabbiter1;\r
+extern statetype s_grabbiter2;\r
+extern statetype s_grabbitersleep1;\r
+extern statetype s_grabbitersleep2;\r
+\r
+void SpawnGrabbiter(Uint16 tileX, Uint16 tileY);\r
+void C_Grabbiter(objtype *ob, objtype *hit);\r
+\r
+extern statetype s_rocket;\r
+extern statetype s_rocketfly1;\r
+extern statetype s_rocketfly2;\r
+extern statetype s_keenrocket;\r
+\r
+void SpawnRocket(Uint16 tileX, Uint16 tileY, Uint16 state);\r
+void T_Rocket(objtype *ob);\r
+void C_Rocket(objtype *ob, objtype *hit);\r
+void C_RocketFly(objtype *ob, objtype *hit);\r
+void T_RocketFly(objtype *ob);\r
+\r
+extern statetype s_grapplespot;\r
+extern statetype s_throwrope1;\r
+extern statetype s_throwrope2;\r
+extern statetype s_climbrope1;\r
+extern statetype s_climbrope2;\r
+extern statetype s_maprope;\r
+extern statetype s_mapropeshort;\r
+\r
+void SpawnGrappleSpot(Uint16 tileX, Uint16 tileY, Uint16 type);\r
+void T_ThrowRope(objtype *ob);\r
+void T_ClimbRope(objtype *ob);\r
+void C_GrappleSpot(objtype *ob, objtype *hit);\r
+\r
+extern statetype s_satellitestopspot;\r
+extern statetype s_worldkeensatellite;\r
+extern statetype s_satellite1;\r
+extern statetype s_satellite2;\r
+extern statetype s_satellite3;\r
+extern statetype s_satellite4;\r
+\r
+void SpawnSatelliteStop(Uint16 tileX, Uint16 tileY, Uint16 type);\r
+void SpawnSatellite(Uint16 tileX, Uint16 tileY);\r
+void T_Satellite(objtype *ob);\r
+void C_Satellite(objtype *ob, objtype *hit);\r
+void R_WorldKeenSatellite(objtype *ob);\r
+\r
+extern statetype s_sandwich;\r
+\r
+void SpawnSandwich(Uint16 tileX, Uint16 tileY);\r
+\r
+extern statetype s_hook;\r
+\r
+void SpawnHook(Uint16 tileX, Uint16 tileY);\r
+\r
+extern statetype s_passcard;\r
+\r
+void SpawnPasscard(Uint16 tileX, Uint16 tileY);\r
+void C_Molly(objtype *ob, objtype *hit);\r
+\r
+extern statetype s_molly1;\r
+extern statetype s_molly2;\r
+extern statetype s_molly3;\r
+extern statetype s_molly4;\r
+\r
+void SpawnMolly(Uint16 tileX, Uint16 tileY);\r
+\r
+extern statetype s_platform;\r
+\r
+void SpawnPlatform(Uint16 tileX, Uint16 tileY, Sint16 dir);\r
+void T_Platform(objtype *ob);\r
+\r
+extern statetype s_dropplatsit;\r
+extern statetype s_fallplatfall;\r
+extern statetype s_fallplatrise;\r
+\r
+void SpawnDropPlat(Uint16 tileX, Uint16 tileY);\r
+void T_DropPlatSit(objtype *ob);\r
+void T_DropPlatFall(objtype *ob);\r
+void T_DropPlatRise(objtype *ob);\r
+\r
+extern statetype s_staticplatform;\r
+\r
+void SpawnStaticPlat(Uint16 tileX, Uint16 tileY);\r
+\r
+extern statetype s_goplat;\r
+\r
+void SpawnGoPlat(Uint16 tileX, Uint16 tileY, Sint16 dir);\r
+void T_GoPlat(objtype *ob);\r
+void R_GoPlat(objtype *ob);\r
+\r
+extern statetype s_sneakplatsit;\r
+extern statetype s_sneakplatdodge;\r
+extern statetype s_sneakplatreturn;\r
+\r
+void SpawnSneakPlat(Uint16 tileX, Uint16 tileY);\r
+void T_SneakPlat(objtype *ob);\r
+\r
+extern statetype s_bloogwalk1;\r
+extern statetype s_bloogwalk2;\r
+extern statetype s_bloogwalk3;\r
+extern statetype s_bloogwalk4;\r
+extern statetype s_bloogstun;\r
+\r
+void SpawnBloog(Uint16 tileX, Uint16 tileY);\r
+void T_BloogWalk(objtype *ob);\r
+void C_Bloog(objtype *ob, objtype *hit);\r
+\r
+extern statetype s_blooguardwalk1;\r
+extern statetype s_blooguardwalk2;\r
+extern statetype s_blooguardwalk3;\r
+extern statetype s_blooguardwalk4;\r
+extern statetype s_blooguardattack1;\r
+extern statetype s_blooguardattack2;\r
+extern statetype s_blooguardattack3;\r
+extern statetype s_blooguardattack4;\r
+extern statetype s_blooguardstun;\r
+\r
+void SpawnBlooguard(Uint16 tileX, Uint16 tileY);\r
+void T_BlooguardWalk(objtype *ob);\r
+void T_BlooguardAttack(objtype *ob);\r
+void C_Blooguard(objtype *ob, objtype *hit);\r
+void R_Blooguard(objtype *ob);\r
+\r
+extern statetype s_rbloogletwalk1;\r
+extern statetype s_rbloogletwalk2;\r
+extern statetype s_rbloogletwalk3;\r
+extern statetype s_rbloogletwalk4;\r
+extern statetype s_rbloogletstun;\r
+extern statetype s_ybloogletwalk1;\r
+extern statetype s_ybloogletwalk2;\r
+extern statetype s_ybloogletwalk3;\r
+extern statetype s_ybloogletwalk4;\r
+extern statetype s_ybloogletstun;\r
+extern statetype s_bbloogletwalk1;\r
+extern statetype s_bbloogletwalk2;\r
+extern statetype s_bbloogletwalk3;\r
+extern statetype s_bbloogletwalk4;\r
+extern statetype s_bbloogletstun;\r
+extern statetype s_gbloogletwalk1;\r
+extern statetype s_gbloogletwalk2;\r
+extern statetype s_gbloogletwalk3;\r
+extern statetype s_gbloogletwalk4;\r
+extern statetype s_gbloogletstun;\r
+\r
+void SpawnBlooglet(Uint16 tileX, Uint16 tileY, Sint16 type);\r
+void C_Blooglet(objtype *ob, objtype *hit);\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                               K6_ACT2 DEFINITIONS\r
+\r
+=============================================================================\r
+*/\r
+\r
+extern statetype s_nospikestand;\r
+extern statetype s_nospikewalk1;\r
+extern statetype s_nospikewalk2;\r
+extern statetype s_nospikewalk3;\r
+extern statetype s_nospikewalk4;\r
+extern statetype s_nospikerun1;\r
+extern statetype s_nospikerun2;\r
+extern statetype s_nospikerun3;\r
+extern statetype s_nospikerun4;\r
+extern statetype s_nospikeconfused1;\r
+extern statetype s_nospikeconfused2;\r
+extern statetype s_nospikeconfused3;\r
+extern statetype s_nospikefall;\r
+extern statetype s_nospikestun;\r
+\r
+void SpawnNospike(Uint16 tileX, Uint16 tileY);\r
+void T_NospikeWalk(objtype *ob);\r
+void T_NospikeRun(objtype *ob);\r
+void C_Nospike(objtype *ob, objtype *hit);\r
+void T_NospikeConfused(objtype* ob);\r
+void R_NospikeConfused(objtype *ob);\r
+void R_NospikeFall(objtype *ob);\r
+void R_NospikeRun(objtype *ob);\r
+\r
+extern statetype s_gikwalk1;\r
+extern statetype s_gikwalk2;\r
+extern statetype s_gikwalk3;\r
+extern statetype s_gikjump;\r
+extern statetype s_gikslide1;\r
+extern statetype s_gikslide2;\r
+extern statetype s_gikstand;\r
+\r
+void SpawnGik(Uint16 tileX, Uint16 tileY);\r
+void T_GikWalk(objtype *ob);\r
+void T_GikSlide(objtype *ob);\r
+void R_GikJump(objtype *ob);\r
+void R_GikSlide(objtype *ob);\r
+\r
+extern statetype s_cannon;\r
+extern statetype s_cannonfire;\r
+extern statetype s_cshot1;\r
+extern statetype s_cshot2;\r
+extern statetype s_cshot3;\r
+extern statetype s_cshot4;\r
+extern statetype s_cshothit1;\r
+extern statetype s_cshothit2;\r
+\r
+void SpawnCannon(Uint16 tileX, Uint16 tileY, Sint16 dir);\r
+void T_Cannon(objtype *ob);\r
+void C_CShot(objtype *ob, objtype *hit);\r
+void R_CShot(objtype *ob);\r
+\r
+extern statetype s_orbatrix1;\r
+extern statetype s_orbatrix2;\r
+extern statetype s_orbatrixcurl1;\r
+extern statetype s_orbatrixcurl2;\r
+extern statetype s_orbatrixcurl3;\r
+extern statetype s_orbatrixuncurl1;\r
+extern statetype s_orbatrixuncurl2;\r
+extern statetype s_orbatrixidle1;\r
+extern statetype s_orbatrixidle2;\r
+extern statetype s_orbatrixidle3;\r
+extern statetype s_orbatrixidle4;\r
+extern statetype s_orbatrixbounce1;\r
+extern statetype s_orbatrixbounce2;\r
+extern statetype s_orbatrixbounce3;\r
+extern statetype s_orbatrixbounce4;\r
+\r
+void SpawnOrbatrix(Uint16 tileX, Uint16 tileY);\r
+void T_OrbatrixFly(objtype *ob);\r
+void C_Orbatrix(objtype *ob, objtype *hit);\r
+void R_Orbatrix(objtype *ob);\r
+void R_OrbatrixBounce(objtype *ob);\r
+void T_OrbatrixCurl(objtype *ob);\r
+void T_OrbatrixUncurl(objtype *ob);\r
+void C_OrbatrixBounce(objtype *ob, objtype *hit);\r
+\r
+extern statetype s_bipstand;\r
+extern statetype s_bipwalk1;\r
+extern statetype s_bipwalk2;\r
+extern statetype s_bipwalk3;\r
+extern statetype s_bipwalk4;\r
+extern statetype s_bipsquished;\r
+\r
+void T_BipWalk(objtype *ob);\r
+void C_Bip(objtype *ob, objtype *hit);\r
+\r
+extern statetype s_bipship;\r
+extern statetype s_bipshipshot;\r
+extern statetype s_bipshipturn1;\r
+extern statetype s_bipshipturn2;\r
+extern statetype s_bipshipturn3;\r
+extern statetype s_bipshipturn4;\r
+extern statetype s_bipshipexplode1;\r
+extern statetype s_bipshipexplode2;\r
+extern statetype s_bipshipexplode3;\r
+extern statetype s_bipshipsmoke1;\r
+extern statetype s_bipshipsmoke2;\r
+\r
+void SpawnBipship(Uint16 tileX, Uint16 tileY);\r
+void R_BipShot(objtype *ob);\r
+void T_BipshipTurn(objtype *ob);\r
+void T_BipshipFly(objtype *ob);\r
+void T_BipshipExplode(objtype *ob);\r
+void C_Bipship(objtype *ob, objtype *hit);\r
+\r
+extern statetype s_flectstand;\r
+extern statetype s_flectturn;\r
+extern statetype s_flectwalk1;\r
+extern statetype s_flectwalk2;\r
+extern statetype s_flectwalk3;\r
+extern statetype s_flectwalk4;\r
+extern statetype s_flectstun;\r
+\r
+void SpawnFlect(Uint16 tileX, Uint16 tileY);\r
+void T_FlectStand(objtype *ob);\r
+void T_FlectWalk(objtype *ob);\r
+void C_Flect(objtype *ob, objtype *hit);\r
+void R_Flect(objtype *ob);\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                               K6_ACT3 DEFINITIONS\r
+\r
+=============================================================================\r
+*/\r
+\r
+extern statetype s_fleexwalk1;\r
+extern statetype s_fleexwalk2;\r
+extern statetype s_fleexrun1;\r
+extern statetype s_fleexrun2;\r
+extern statetype s_fleexrun3;\r
+extern statetype s_fleexrun4;\r
+extern statetype s_fleexlook1;\r
+extern statetype s_fleexlook2;\r
+extern statetype s_fleexstun;\r
+\r
+void SpawnFleex(Uint16 tileX, Uint16 tileY);\r
+void T_FleexWalk(objtype *ob);\r
+void T_FleexLook(objtype *ob);\r
+void C_Fleex(objtype *ob, objtype *hit);\r
+\r
+extern statetype s_bobbajump1;\r
+extern statetype s_bobbajump2;\r
+extern statetype s_bobbastand;\r
+extern statetype s_bobbaattack;\r
+extern statetype s_bobbashot1;\r
+extern statetype s_bobbashot2;\r
+extern statetype s_bobbashot3;\r
+extern statetype s_bobbashot4;\r
+extern statetype s_bobbashot5;\r
+extern statetype s_bobbashot6;\r
+extern statetype s_bobbashot7;\r
+extern statetype s_bobbashot8;\r
+extern statetype s_bobbashotvanish1;\r
+extern statetype s_bobbashotvanish2;\r
+extern statetype s_bobbashotvanish3;\r
+\r
+void SpawnBobba(Uint16 tileX, Uint16 tileY);\r
+void T_BobbaShot(objtype *ob);\r
+void T_BobbaStand(objtype *ob);\r
+void C_Bobba(objtype *ob, objtype *hit);\r
+void R_Bobba(objtype *ob);\r
+void R_BobbaShot(objtype *ob);\r
+\r
+extern statetype s_babobbajump1;\r
+extern statetype s_babobbajump2;\r
+extern statetype s_babobbastand;\r
+extern statetype s_babobbaattack;\r
+extern statetype s_babobbastun1;\r
+extern statetype s_babobbastun2;\r
+extern statetype s_babobbasleep1;\r
+extern statetype s_babobbasleep2;\r
+extern statetype s_babobbasleep3;\r
+extern statetype s_babobbasleep4;\r
+extern statetype s_babobbasleep5;\r
+extern statetype s_babobbasleep6;\r
+extern statetype s_babobbasleep7;\r
+extern statetype s_babobbashot1;\r
+extern statetype s_babobbashot2;\r
+extern statetype s_babobbashot3;\r
+extern statetype s_babobbashotvanish1;\r
+extern statetype s_babobbashotvanish2;\r
+\r
+void SpawnBabobba(Uint16 tileX, Uint16 tileY);\r
+void T_BabobbaStand(objtype *ob);\r
+void C_Babobba(objtype *ob, objtype *hit);\r
+void C_BabobbaSleep(objtype *ob, objtype *hit);\r
+void R_Babobba(objtype *ob);\r
+void T_BabobbaShot(objtype *ob);\r
+void T_BabobbaShotVanish(objtype *ob);\r
+\r
+extern statetype s_blorb1;\r
+extern statetype s_blorb2;\r
+extern statetype s_blorb3;\r
+\r
+void SpawnBlorb(Uint16 tileX, Uint16 tileY);\r
+void R_Blorb(objtype *ob);\r
+\r
+extern statetype s_ceilickhidden;\r
+extern statetype s_ceilickattack1;\r
+extern statetype s_ceilickattack2;\r
+extern statetype s_ceilickattack3;\r
+extern statetype s_ceilickattack4;\r
+extern statetype s_ceilickattack5;\r
+extern statetype s_ceilickattack6;\r
+extern statetype s_ceilickattack7;\r
+extern statetype s_ceilickattack8;\r
+extern statetype s_ceilickattack9;\r
+extern statetype s_ceilickattack10;\r
+extern statetype s_ceilickattack11;\r
+extern statetype s_ceilicklaugh1;\r
+extern statetype s_ceilicklaugh2;\r
+extern statetype s_ceilicklaugh3;\r
+extern statetype s_ceilicklaugh4;\r
+extern statetype s_ceilicklaugh5;\r
+extern statetype s_ceilicklaugh6;\r
+extern statetype s_ceilicklaugh7;\r
+extern statetype s_ceilicklaugh8;\r
+extern statetype s_ceilicklaugh9;\r
+extern statetype s_ceilickstun;\r
+\r
+void SpawnCeilick(Uint16 tileX, Uint16 tileY);\r
+void T_CeilickHidden(objtype *ob);\r
+void T_CeilickLaugh(objtype *ob);\r
+void T_CeilickStunned(objtype *ob);\r
+void C_Ceilick(objtype *ob, objtype *hit);\r
+\r
+#endif
\ No newline at end of file