X-Git-Url: http://4ch.mooo.com/gitweb/?p=16.git;a=blobdiff_plain;f=16%2Fkeen456%2FKEEN4-6%2FKEEN5%2FK5_DEF.H;fp=16%2Fkeen456%2FKEEN4-6%2FKEEN5%2FK5_DEF.H;h=b6fc078e855ec5befbbdea8e36051805ca7263f4;hp=0000000000000000000000000000000000000000;hb=7d1948e210bb7b58af0a0412e71f2a0a0a2010af;hpb=ebc247a0a67daa69a027f31d9d7d9572db765e56 diff --git a/16/keen456/KEEN4-6/KEEN5/K5_DEF.H b/16/keen456/KEEN4-6/KEEN5/K5_DEF.H new file mode 100755 index 00000000..b6fc078e --- /dev/null +++ b/16/keen456/KEEN4-6/KEEN5/K5_DEF.H @@ -0,0 +1,485 @@ +/* Reconstructed Commander Keen 4-6 Source Code + * Copyright (C) 2021 K1n9_Duk3 + * + * This file is loosely based on: + * Keen Dreams Source Code + * Copyright (C) 2014 Javier M. Chavez + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef __K5_DEF__ +#define __K5_DEF__ + +/* +============================================================================= + + GLOBAL CONSTANTS + +============================================================================= +*/ + +#if GRMODE == CGAGR +#define MINMEMORY 255000l +#else +#define MINMEMORY 310000l +#endif + +#define STARPALETTE {0, 1, 24, 30, 31, 28, 6, 7, 19, 19, 19, 19, 19, 19, 19, 19, 0} +#define INTROPALETTE {0, 4, 4, 28, 1, 1, 1, 1, 17, 17, 17, 17, 19, 19, 19, 19, 0} +#define SHRINKPALETTE {0, 4, 4, 28, 1, 1, 1, 1, 17, 17, 17, 17, 19, 19, 19, 4, 0} + +#define HIGHSCORE_LEFT 40 +#define HIGHSCORE_TOP 35 +#define HIGHSCORE_RIGHT 280 +#define HIGHSCORE_MAP 15 + +#define STATUS_PRESSKEY_X 120 + +#define WORLDMAPNAME "Armageddon" +#define DROPSNAME "VITALIN" + +#define STARWARSMUSIC 17 +#define ENDINGMUSIC 14 + +// levels in this range can NOT be re-entered (BWB level should be > MAXDONELEVEL) +#define MINDONELEVEL 1 +#define MAXDONELEVEL 17 + +#define INACTIVATEDIST 6 + +// +// tiles for worldmap teleporters +// +#define TELEPORTERTILE1 2687 // tile animation for teleporting out +#define TELEPORTERTILE2 1063 // tile after teleporting out +#define TELEPORTERTILE3 TELEPORTERTILE1 // tile animation for teleporting in +#define TELEPORTERTILE4 0 // tile after teleporting in + +#define TELEPORERTILEMASK 1 // animation has 2 frames + +/* +============================================================================= + + K5_SPEC DEFINITIONS + +============================================================================= +*/ + +extern char far swtext[]; +extern char far *levelnames[GAMELEVELS]; +extern char far *levelenter[GAMELEVELS]; + +void OpenMapDoor(Sint16 tileX, Sint16 tileY); +void CloseMapDoor(Sint16 tileX, Sint16 tileY); +void ScanInfoPlane(void); +void GameOver(void); + +void FinishedFuse(void); + +/* +============================================================================= + + K5_ACT1 DEFINITIONS + +============================================================================= +*/ + +extern Sint16 pdirx[]; +extern Sint16 pdiry[]; + +Sint16 CheckSpawnShot(Uint16 x, Uint16 y, statetype *state); +void C_ClipSide(objtype *ob, objtype *hit); +void C_ClipTop(objtype *ob, objtype *hit); +void R_Land(objtype *ob); +void R_Bounce(objtype *ob); + +extern statetype s_bonus1; +extern statetype s_bonus2; +extern statetype s_bonusfly1; +extern statetype s_bonusfly2; +extern statetype s_bonusrise; +extern statetype s_splash1; +extern statetype s_splash2; +extern statetype s_splash3; +extern statetype s_splash4; + +extern Uint16 bonusshape[]; + +void SpawnBonus(Uint16 tileX, Uint16 tileY, Uint16 type); +void SpawnSplash(Uint16 tileX, Uint16 tileY); +void T_Bonus(objtype *ob); +void T_FlyBonus(objtype *ob); + +extern statetype s_teleport1; +extern statetype s_teleport2; +extern statetype s_teleportzap1; +extern statetype s_teleportzap2; + +void SpawnTeleport(void); + +extern statetype s_fuseflash1; +extern statetype s_fuseflash2; +extern statetype s_fuseflash3; + +void SpawnFuseFlash(Uint16 tileX, Uint16 tileY); + +extern statetype s_deadmachine; + +void SpawnDeadMachine(void); +void T_DeadMachine(objtype *ob); + +extern statetype s_platform; +extern statetype s_slotplat1; +extern statetype s_slotplat2; + +void SpawnPlatform(Uint16 tileX, Uint16 tileY, Sint16 dir, Sint16 type); +void T_Platform(objtype *ob); +void T_Slotplat(objtype *ob); + +extern statetype s_dropplatsit; +extern statetype s_dropplatfall; +extern statetype s_dropplatrise; + +void SpawnDropPlat(Uint16 tileX, Uint16 tileY); +void T_DropPlatSit(objtype *ob); +void T_DropPlatFall(objtype *ob); +void T_DropPlatRise(objtype *ob); + +extern statetype s_statplat; + +void SpawnStaticPlat(Uint16 tileX, Uint16 tileY); + +extern statetype s_goplat; +extern statetype s_slotgoplat1; +extern statetype s_slotgoplat2; + +void SpawnGoPlat(Uint16 tileX, Uint16 tileY, Sint16 dir, Sint16 type); +void T_GoPlat(objtype *ob); +void T_GoSlotPlat(objtype *ob); + +extern statetype s_volte1; +extern statetype s_volte2; +extern statetype s_volte3; +extern statetype s_volte4; +extern statetype s_voltestun; + +void SpawnVolte(Uint16 tileX, Uint16 tileY); +void T_Volte(objtype *ob); +void C_Volte(objtype *ob, objtype *hit); + +extern statetype s_sneakplatsit; +extern statetype s_sneakplatdodge; +extern statetype s_sneakplatreturn; + +void SpawnSneakPlat(Uint16 tileX, Uint16 tileY); +void T_SneakPlat(objtype *ob); + +extern statetype s_cannon; +extern statetype s_cannonfire; +extern statetype s_cshot1; +extern statetype s_cshot2; +extern statetype s_cshot3; +extern statetype s_cshot4; +extern statetype s_cshothit1; +extern statetype s_cshothit2; + +void SpawnCannon(Uint16 tileX, Uint16 tileY, Sint16 dir); +void T_Cannon(objtype *ob); +void C_CShot(objtype *ob, objtype *hit); +void R_CShot(objtype *ob); + +/* +============================================================================= + + K5_ACT2 DEFINITIONS + +============================================================================= +*/ + +extern statetype s_sparkywalk1; +extern statetype s_sparkywalk2; +extern statetype s_sparkywalk3; +extern statetype s_sparkywalk4; +extern statetype s_sparkylook1; +extern statetype s_sparkylook2; +extern statetype s_sparkylook3; +extern statetype s_sparkylook4; +extern statetype s_sparkylook5; +extern statetype s_sparkylook6; +extern statetype s_sparkylook7; +extern statetype s_sparkylook8; +extern statetype s_sparkyspeed1; +extern statetype s_sparkyspeed2; +extern statetype s_sparkyspeed3; +extern statetype s_sparkyspeed4; +extern statetype s_sparkycharge1; +extern statetype s_sparkycharge2; +extern statetype s_sparkycharge3; +extern statetype s_sparkycharge4; +extern statetype s_sparkyturn1; +extern statetype s_sparkyturn2; +extern statetype s_sparkyturn3; +extern statetype s_sparkystun; + +void SpawnSparky(Uint16 tileX, Uint16 tileY); +void T_Sparky(objtype *ob); +void T_ChargeCount(objtype *ob); +void T_SparkyLookL(objtype *ob); +void T_SparkyLookR(objtype *ob); +void T_RunSnd1(objtype *ob); +void T_RunSnd2(objtype *ob); +void C_Sparky(objtype *ob, objtype *hit); +void R_Sparky(objtype *ob); + +extern statetype s_amptonwalk1; +extern statetype s_amptonwalk2; +extern statetype s_amptonwalk3; +extern statetype s_amptonwalk4; +extern statetype s_amptonturn; +extern statetype s_amptongrab1; +extern statetype s_amptongrab2; +extern statetype s_amptonclimb; +extern statetype s_amptonrelease1; +extern statetype s_amptonrelease2; +extern statetype s_amptonfiddle1; +extern statetype s_amptonfiddle2; +extern statetype s_amptonfiddle3; +extern statetype s_amptonfiddle4; +extern statetype s_amptonfiddle5; +extern statetype s_amptonstun; + +void SpawnAmpton(Uint16 tileX, Uint16 tileY); +void T_Ampton(objtype *ob); +void T_AmptonClimb(objtype *ob); +void T_SetNoThink(objtype *ob); +void C_Ampton(objtype *ob, objtype *hit); +void R_Ampton(objtype *ob); + +extern statetype s_slicestarslide; +extern statetype s_slicestarbounce; +extern statetype s_slicestarboom; + +void SpawnSlicestarSlide(Uint16 tileX, Uint16 tileY, Sint16 dir); +void SpawnSlicestarBounce(Uint16 tileX, Uint16 tileY); +void C_Slicestar(objtype *ob, objtype *hit); +void R_Slicestar(objtype *ob); + +extern statetype s_shellywalk1; +extern statetype s_shellywalk2; +extern statetype s_shellywalk3; +extern statetype s_shellywalk4; +extern statetype s_shellylook; +extern statetype s_shellylook2; +extern statetype s_shellyjump1; +extern statetype s_shellyjump2; +extern statetype s_shellydie; +extern statetype s_shellydieup; +extern statetype s_shellyboom1; +extern statetype s_shellyboom2; +extern statetype s_shellyboom3; +extern statetype s_shellyboom4; +extern statetype s_shellypiece1; +extern statetype s_shellypiece2; + +void SpawnShelly(Uint16 tileX, Uint16 tileY); +void T_ShellyLook(objtype *ob); +void T_Turn(objtype *ob); +void T_ShellyFrag(objtype *ob); +void C_Shelly(objtype *ob, objtype *hit); +void R_Shelly(objtype *ob); +void R_Shell(objtype *ob); + +/* +============================================================================= + + K5_ACT3 DEFINITIONS + +============================================================================= +*/ + +extern statetype s_mine; +extern statetype s_minecenter; +extern statetype s_mineshift; +extern statetype s_mineboom1; +extern statetype s_mineboom2; +extern statetype s_mineboom3; +extern statetype s_mineboom4; +extern statetype s_mineboom5; +extern statetype s_mineboom6; +extern statetype s_minepiece; + +void SpawnMine(Uint16 tileX, Uint16 tileY); +boolean MinePosCheck(Uint16 tileX, Uint16 tileY); +boolean Walk(objtype *ob, Sint16 dir); +void ChaseThink(objtype *ob); +void T_Mine(objtype *ob); +void C_Solid(objtype *ob, objtype *hit); +void C_MineFrag(objtype *ob, objtype *hit); +void T_MineCenter(objtype *ob); +void T_MineShift(objtype *ob); +void T_MineFrag(objtype *ob); +void R_Mine(objtype *ob); + +extern statetype s_robored; +extern statetype s_roboredfire0; +extern statetype s_roboredfire1; +extern statetype s_roboredfire2; +extern statetype s_rshot1; +extern statetype s_rshot2; +extern statetype s_rshothit1; +extern statetype s_rshothit2; + +void SpawnRoboRed(Uint16 tileX, Uint16 tileY); +void T_RoboRed(objtype *ob); +void C_RoboRed(objtype *ob, objtype *hit); +void T_RoboShoot(objtype *ob); +void C_RShot(objtype *ob, objtype *hit); +void R_RShot(objtype *ob); + +extern statetype s_gripsitd; +extern statetype s_gripjumpd; +extern statetype s_gripsitl; +extern statetype s_gripjumpl; +extern statetype s_gripsitr; +extern statetype s_gripjumpr; +extern statetype s_gripsitu; +extern statetype s_gripjumpu; +extern statetype s_gripspin1; +extern statetype s_gripspin2; +extern statetype s_gripspin3; +extern statetype s_gripspin4; +extern statetype s_gripspin5; +extern statetype s_gripspin6; +extern statetype s_gripspin7; +extern statetype s_gripspin8; +extern statetype s_gripflyd; +extern statetype s_gripflyl; +extern statetype s_gripflyr; +extern statetype s_gripflyu; + +void SpawnSpirogrip(Uint16 tileX, Uint16 tileY); +void T_SpiroLaunch(objtype *ob); +void R_SpiroFly(objtype *ob); + +extern statetype s_spindred1; +extern statetype s_spindred2; +extern statetype s_spindred3; +extern statetype s_spindred4; + +void SpawnSpindread(Uint16 tileX, Uint16 tileY); +void T_Spindread(objtype *ob); +void C_Spindread(objtype *ob, objtype *hit); +void R_Spindread(objtype *ob); + +extern statetype s_master1; +extern statetype s_master2; +extern statetype s_master3; +extern statetype s_master4; +extern statetype s_mastershoot1; +extern statetype s_mastershoot2; +extern statetype s_mastertport1; +extern statetype s_mastertport2; +extern statetype s_mastertport3; +extern statetype s_mastertport4; +extern statetype s_mshot1; +extern statetype s_mshot2; +extern statetype s_mshot3; +extern statetype s_mshot4; +extern statetype s_mspray1; +extern statetype s_mspray2; +extern statetype s_mspray3; +extern statetype s_mspray4; + +void SpawnMaster(Uint16 tileX, Uint16 tileY); +void T_Master(objtype *ob); +void T_MasterShoot(objtype *ob); +void C_Master(objtype *ob, objtype *hit); +void T_MasterTPort(objtype *ob); +void C_MShot(objtype *ob, objtype *hit); +void R_MShot(objtype *ob); +void R_MSpray(objtype *ob); + +extern statetype s_shikadi1; +extern statetype s_shikadi2; +extern statetype s_shikadi3; +extern statetype s_shikadi4; +extern statetype s_shikadiwalk1; +extern statetype s_shikadiwalk2; +extern statetype s_shikadiwalk3; +extern statetype s_shikadiwalk4; +extern statetype s_shikadigrab; +extern statetype s_shikadigrab2; +extern statetype s_shikadistun; +extern statetype s_polespark1; +extern statetype s_polespark2; + +void SpawnShikadi(Uint16 tileX, Uint16 tileY); +void T_Shikadi(objtype *ob); +void C_Shikadi(objtype *ob, objtype *hit); +void T_PoleShock(objtype *ob); +void T_PoleSpark(objtype *ob); +void R_Shikadi(objtype *ob); + +extern statetype s_petsit1; +extern statetype s_petsit2; +extern statetype s_petbark1; +extern statetype s_petbark2; +extern statetype s_pet1; +extern statetype s_pet2; +extern statetype s_pet3; +extern statetype s_pet4; +extern statetype s_petjump; +extern statetype s_pshot1; +extern statetype s_pshot2; +extern statetype s_pshothot1; +extern statetype s_pshothot2; +extern statetype s_petstun; + +void SpawnPet(Uint16 tileX, Uint16 tileY); +void T_Pet(objtype *ob); +void T_PetSit(objtype *ob); +void T_PetBark(objtype *ob); +void C_Pet(objtype *ob, objtype *hit); +void R_Pet(objtype *ob); +void R_PetJump(objtype *ob); +void C_PShot(objtype *ob, objtype *hit); +void R_PShot(objtype *ob); + +extern statetype s_sphereful1; +extern statetype s_sphereful2; +extern statetype s_sphereful3; +extern statetype s_sphereful4; + +void SpawnSphereful(Uint16 tileX, Uint16 tileY); +void T_Sphereful(objtype *ob); +void R_Sphereful(objtype *ob); + +extern statetype s_scottie1; +extern statetype s_scottie2; +extern statetype s_scottie3; +extern statetype s_scottie4; +extern statetype s_scottieface; +extern statetype s_scottiestun; + +void SpawnScottie(Uint16 tileX, Uint16 tileY); +void T_Scottie(objtype *ob); +void C_Scottie(objtype *ob, objtype *hit); + +extern statetype s_qed; + +void SpawnQed(Uint16 tileX, Uint16 tileY); + +#endif \ No newline at end of file