]> 4ch.mooo.com Git - 16.git/blobdiff - 16/keen456/KEEN4-6/KEEN5/K5_DEF.H
extrcted keen code remake
[16.git] / 16 / keen456 / KEEN4-6 / KEEN5 / K5_DEF.H
diff --git a/16/keen456/KEEN4-6/KEEN5/K5_DEF.H b/16/keen456/KEEN4-6/KEEN5/K5_DEF.H
new file mode 100755 (executable)
index 0000000..b6fc078
--- /dev/null
@@ -0,0 +1,485 @@
+/* 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 __K5_DEF__\r
+#define __K5_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 310000l\r
+#endif\r
+\r
+#define STARPALETTE   {0, 1, 24, 30, 31, 28, 6, 7, 19, 19, 19, 19, 19, 19, 19, 19, 0}\r
+#define INTROPALETTE  {0, 4, 4, 28, 1, 1, 1, 1, 17, 17, 17, 17, 19, 19, 19, 19, 0}\r
+#define SHRINKPALETTE {0, 4, 4, 28, 1, 1, 1, 1, 17, 17, 17, 17, 19, 19, 19,  4, 0}\r
+\r
+#define HIGHSCORE_LEFT 40\r
+#define HIGHSCORE_TOP  35\r
+#define HIGHSCORE_RIGHT        280\r
+#define HIGHSCORE_MAP  15\r
+\r
+#define STATUS_PRESSKEY_X 120\r
+\r
+#define WORLDMAPNAME   "Armageddon"\r
+#define DROPSNAME      "VITALIN"\r
+\r
+#define STARWARSMUSIC  17\r
+#define ENDINGMUSIC    14\r
+\r
+// levels in this range can NOT be re-entered (BWB level should be > MAXDONELEVEL)\r
+#define MINDONELEVEL 1\r
+#define MAXDONELEVEL 17\r
+\r
+#define INACTIVATEDIST 6\r
+\r
+//\r
+// tiles for worldmap teleporters\r
+//\r
+#define TELEPORTERTILE1 2687   // tile animation for teleporting out\r
+#define TELEPORTERTILE2 1063   // tile after teleporting out\r
+#define TELEPORTERTILE3 TELEPORTERTILE1        // tile animation for teleporting in\r
+#define TELEPORTERTILE4 0      // tile after teleporting in\r
+\r
+#define TELEPORERTILEMASK 1    // animation has 2 frames\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                               K5_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 OpenMapDoor(Sint16 tileX, Sint16 tileY);\r
+void CloseMapDoor(Sint16 tileX, Sint16 tileY);\r
+void ScanInfoPlane(void);\r
+void GameOver(void);\r
+\r
+void FinishedFuse(void);\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                               K5_ACT1 DEFINITIONS\r
+\r
+=============================================================================\r
+*/\r
+\r
+extern Sint16 pdirx[];\r
+extern Sint16 pdiry[];\r
+\r
+Sint16 CheckSpawnShot(Uint16 x, Uint16 y, statetype *state);\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
+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_teleport1;\r
+extern statetype s_teleport2;\r
+extern statetype s_teleportzap1;\r
+extern statetype s_teleportzap2;\r
+\r
+void SpawnTeleport(void);\r
+\r
+extern statetype s_fuseflash1;\r
+extern statetype s_fuseflash2;\r
+extern statetype s_fuseflash3;\r
+\r
+void SpawnFuseFlash(Uint16 tileX, Uint16 tileY);\r
+\r
+extern statetype s_deadmachine;\r
+\r
+void SpawnDeadMachine(void);\r
+void T_DeadMachine(objtype *ob);\r
+\r
+extern statetype s_platform;\r
+extern statetype s_slotplat1;\r
+extern statetype s_slotplat2;\r
+\r
+void SpawnPlatform(Uint16 tileX, Uint16 tileY, Sint16 dir, Sint16 type);\r
+void T_Platform(objtype *ob);\r
+void T_Slotplat(objtype *ob);\r
+\r
+extern statetype s_dropplatsit;\r
+extern statetype s_dropplatfall;\r
+extern statetype s_dropplatrise;\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_statplat;\r
+\r
+void SpawnStaticPlat(Uint16 tileX, Uint16 tileY);\r
+\r
+extern statetype s_goplat;\r
+extern statetype s_slotgoplat1;\r
+extern statetype s_slotgoplat2;\r
+\r
+void SpawnGoPlat(Uint16 tileX, Uint16 tileY, Sint16 dir, Sint16 type);\r
+void T_GoPlat(objtype *ob);\r
+void T_GoSlotPlat(objtype *ob);\r
+\r
+extern statetype s_volte1;\r
+extern statetype s_volte2;\r
+extern statetype s_volte3;\r
+extern statetype s_volte4;\r
+extern statetype s_voltestun;\r
+\r
+void SpawnVolte(Uint16 tileX, Uint16 tileY);\r
+void T_Volte(objtype *ob);\r
+void C_Volte(objtype *ob, objtype *hit);\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_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
+/*\r
+=============================================================================\r
+\r
+                                               K5_ACT2 DEFINITIONS\r
+\r
+=============================================================================\r
+*/\r
+\r
+extern statetype s_sparkywalk1;\r
+extern statetype s_sparkywalk2;\r
+extern statetype s_sparkywalk3;\r
+extern statetype s_sparkywalk4;\r
+extern statetype s_sparkylook1;\r
+extern statetype s_sparkylook2;\r
+extern statetype s_sparkylook3;\r
+extern statetype s_sparkylook4;\r
+extern statetype s_sparkylook5;\r
+extern statetype s_sparkylook6;\r
+extern statetype s_sparkylook7;\r
+extern statetype s_sparkylook8;\r
+extern statetype s_sparkyspeed1;\r
+extern statetype s_sparkyspeed2;\r
+extern statetype s_sparkyspeed3;\r
+extern statetype s_sparkyspeed4;\r
+extern statetype s_sparkycharge1;\r
+extern statetype s_sparkycharge2;\r
+extern statetype s_sparkycharge3;\r
+extern statetype s_sparkycharge4;\r
+extern statetype s_sparkyturn1;\r
+extern statetype s_sparkyturn2;\r
+extern statetype s_sparkyturn3;\r
+extern statetype s_sparkystun;\r
+\r
+void SpawnSparky(Uint16 tileX, Uint16 tileY);\r
+void T_Sparky(objtype *ob);\r
+void T_ChargeCount(objtype *ob);\r
+void T_SparkyLookL(objtype *ob);\r
+void T_SparkyLookR(objtype *ob);\r
+void T_RunSnd1(objtype *ob);\r
+void T_RunSnd2(objtype *ob);\r
+void C_Sparky(objtype *ob, objtype *hit);\r
+void R_Sparky(objtype *ob);\r
+\r
+extern statetype s_amptonwalk1;\r
+extern statetype s_amptonwalk2;\r
+extern statetype s_amptonwalk3;\r
+extern statetype s_amptonwalk4;\r
+extern statetype s_amptonturn;\r
+extern statetype s_amptongrab1;\r
+extern statetype s_amptongrab2;\r
+extern statetype s_amptonclimb;\r
+extern statetype s_amptonrelease1;\r
+extern statetype s_amptonrelease2;\r
+extern statetype s_amptonfiddle1;\r
+extern statetype s_amptonfiddle2;\r
+extern statetype s_amptonfiddle3;\r
+extern statetype s_amptonfiddle4;\r
+extern statetype s_amptonfiddle5;\r
+extern statetype s_amptonstun;\r
+\r
+void SpawnAmpton(Uint16 tileX, Uint16 tileY);\r
+void T_Ampton(objtype *ob);\r
+void T_AmptonClimb(objtype *ob);\r
+void T_SetNoThink(objtype *ob);\r
+void C_Ampton(objtype *ob, objtype *hit);\r
+void R_Ampton(objtype *ob);\r
+\r
+extern statetype s_slicestarslide;\r
+extern statetype s_slicestarbounce;\r
+extern statetype s_slicestarboom;\r
+\r
+void SpawnSlicestarSlide(Uint16 tileX, Uint16 tileY, Sint16 dir);\r
+void SpawnSlicestarBounce(Uint16 tileX, Uint16 tileY);\r
+void C_Slicestar(objtype *ob, objtype *hit);\r
+void R_Slicestar(objtype *ob);\r
+\r
+extern statetype s_shellywalk1;\r
+extern statetype s_shellywalk2;\r
+extern statetype s_shellywalk3;\r
+extern statetype s_shellywalk4;\r
+extern statetype s_shellylook;\r
+extern statetype s_shellylook2;\r
+extern statetype s_shellyjump1;\r
+extern statetype s_shellyjump2;\r
+extern statetype s_shellydie;\r
+extern statetype s_shellydieup;\r
+extern statetype s_shellyboom1;\r
+extern statetype s_shellyboom2;\r
+extern statetype s_shellyboom3;\r
+extern statetype s_shellyboom4;\r
+extern statetype s_shellypiece1;\r
+extern statetype s_shellypiece2;\r
+\r
+void SpawnShelly(Uint16 tileX, Uint16 tileY);\r
+void T_ShellyLook(objtype *ob);\r
+void T_Turn(objtype *ob);\r
+void T_ShellyFrag(objtype *ob);\r
+void C_Shelly(objtype *ob, objtype *hit);\r
+void R_Shelly(objtype *ob);\r
+void R_Shell(objtype *ob);\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                               K5_ACT3 DEFINITIONS\r
+\r
+=============================================================================\r
+*/\r
+\r
+extern statetype s_mine;\r
+extern statetype s_minecenter;\r
+extern statetype s_mineshift;\r
+extern statetype s_mineboom1;\r
+extern statetype s_mineboom2;\r
+extern statetype s_mineboom3;\r
+extern statetype s_mineboom4;\r
+extern statetype s_mineboom5;\r
+extern statetype s_mineboom6;\r
+extern statetype s_minepiece;\r
+\r
+void SpawnMine(Uint16 tileX, Uint16 tileY);\r
+boolean MinePosCheck(Uint16 tileX, Uint16 tileY);\r
+boolean Walk(objtype *ob, Sint16 dir);\r
+void ChaseThink(objtype *ob);\r
+void T_Mine(objtype *ob);\r
+void C_Solid(objtype *ob, objtype *hit);\r
+void C_MineFrag(objtype *ob, objtype *hit);\r
+void T_MineCenter(objtype *ob);\r
+void T_MineShift(objtype *ob);\r
+void T_MineFrag(objtype *ob);\r
+void R_Mine(objtype *ob);\r
+\r
+extern statetype s_robored;\r
+extern statetype s_roboredfire0;\r
+extern statetype s_roboredfire1;\r
+extern statetype s_roboredfire2;\r
+extern statetype s_rshot1;\r
+extern statetype s_rshot2;\r
+extern statetype s_rshothit1;\r
+extern statetype s_rshothit2;\r
+\r
+void SpawnRoboRed(Uint16 tileX, Uint16 tileY);\r
+void T_RoboRed(objtype *ob);\r
+void C_RoboRed(objtype *ob, objtype *hit);\r
+void T_RoboShoot(objtype *ob);\r
+void C_RShot(objtype *ob, objtype *hit);\r
+void R_RShot(objtype *ob);\r
+\r
+extern statetype s_gripsitd;\r
+extern statetype s_gripjumpd;\r
+extern statetype s_gripsitl;\r
+extern statetype s_gripjumpl;\r
+extern statetype s_gripsitr;\r
+extern statetype s_gripjumpr;\r
+extern statetype s_gripsitu;\r
+extern statetype s_gripjumpu;\r
+extern statetype s_gripspin1;\r
+extern statetype s_gripspin2;\r
+extern statetype s_gripspin3;\r
+extern statetype s_gripspin4;\r
+extern statetype s_gripspin5;\r
+extern statetype s_gripspin6;\r
+extern statetype s_gripspin7;\r
+extern statetype s_gripspin8;\r
+extern statetype s_gripflyd;\r
+extern statetype s_gripflyl;\r
+extern statetype s_gripflyr;\r
+extern statetype s_gripflyu;\r
+\r
+void SpawnSpirogrip(Uint16 tileX, Uint16 tileY);\r
+void T_SpiroLaunch(objtype *ob);\r
+void R_SpiroFly(objtype *ob);\r
+\r
+extern statetype s_spindred1;\r
+extern statetype s_spindred2;\r
+extern statetype s_spindred3;\r
+extern statetype s_spindred4;\r
+\r
+void SpawnSpindread(Uint16 tileX, Uint16 tileY);\r
+void T_Spindread(objtype *ob);\r
+void C_Spindread(objtype *ob, objtype *hit);\r
+void R_Spindread(objtype *ob);\r
+\r
+extern statetype s_master1;\r
+extern statetype s_master2;\r
+extern statetype s_master3;\r
+extern statetype s_master4;\r
+extern statetype s_mastershoot1;\r
+extern statetype s_mastershoot2;\r
+extern statetype s_mastertport1;\r
+extern statetype s_mastertport2;\r
+extern statetype s_mastertport3;\r
+extern statetype s_mastertport4;\r
+extern statetype s_mshot1;\r
+extern statetype s_mshot2;\r
+extern statetype s_mshot3;\r
+extern statetype s_mshot4;\r
+extern statetype s_mspray1;\r
+extern statetype s_mspray2;\r
+extern statetype s_mspray3;\r
+extern statetype s_mspray4;\r
+\r
+void SpawnMaster(Uint16 tileX, Uint16 tileY);\r
+void T_Master(objtype *ob);\r
+void T_MasterShoot(objtype *ob);\r
+void C_Master(objtype *ob, objtype *hit);\r
+void T_MasterTPort(objtype *ob);\r
+void C_MShot(objtype *ob, objtype *hit);\r
+void R_MShot(objtype *ob);\r
+void R_MSpray(objtype *ob);\r
+\r
+extern statetype s_shikadi1;\r
+extern statetype s_shikadi2;\r
+extern statetype s_shikadi3;\r
+extern statetype s_shikadi4;\r
+extern statetype s_shikadiwalk1;\r
+extern statetype s_shikadiwalk2;\r
+extern statetype s_shikadiwalk3;\r
+extern statetype s_shikadiwalk4;\r
+extern statetype s_shikadigrab;\r
+extern statetype s_shikadigrab2;\r
+extern statetype s_shikadistun;\r
+extern statetype s_polespark1;\r
+extern statetype s_polespark2;\r
+\r
+void SpawnShikadi(Uint16 tileX, Uint16 tileY);\r
+void T_Shikadi(objtype *ob);\r
+void C_Shikadi(objtype *ob, objtype *hit);\r
+void T_PoleShock(objtype *ob);\r
+void T_PoleSpark(objtype *ob);\r
+void R_Shikadi(objtype *ob);\r
+\r
+extern statetype s_petsit1;\r
+extern statetype s_petsit2;\r
+extern statetype s_petbark1;\r
+extern statetype s_petbark2;\r
+extern statetype s_pet1;\r
+extern statetype s_pet2;\r
+extern statetype s_pet3;\r
+extern statetype s_pet4;\r
+extern statetype s_petjump;\r
+extern statetype s_pshot1;\r
+extern statetype s_pshot2;\r
+extern statetype s_pshothot1;\r
+extern statetype s_pshothot2;\r
+extern statetype s_petstun;\r
+\r
+void SpawnPet(Uint16 tileX, Uint16 tileY);\r
+void T_Pet(objtype *ob);\r
+void T_PetSit(objtype *ob);\r
+void T_PetBark(objtype *ob);\r
+void C_Pet(objtype *ob, objtype *hit);\r
+void R_Pet(objtype *ob);\r
+void R_PetJump(objtype *ob);\r
+void C_PShot(objtype *ob, objtype *hit);\r
+void R_PShot(objtype *ob);\r
+\r
+extern statetype s_sphereful1;\r
+extern statetype s_sphereful2;\r
+extern statetype s_sphereful3;\r
+extern statetype s_sphereful4;\r
+\r
+void SpawnSphereful(Uint16 tileX, Uint16 tileY);\r
+void T_Sphereful(objtype *ob);\r
+void R_Sphereful(objtype *ob);\r
+\r
+extern statetype s_scottie1;\r
+extern statetype s_scottie2;\r
+extern statetype s_scottie3;\r
+extern statetype s_scottie4;\r
+extern statetype s_scottieface;\r
+extern statetype s_scottiestun;\r
+\r
+void SpawnScottie(Uint16 tileX, Uint16 tileY);\r
+void T_Scottie(objtype *ob);\r
+void C_Scottie(objtype *ob, objtype *hit);\r
+\r
+extern statetype s_qed;\r
+\r
+void SpawnQed(Uint16 tileX, Uint16 tileY);\r
+\r
+#endif
\ No newline at end of file