Mercurial > ~darius > hgwebdir.cgi > paradise_server
diff src/shmem.h @ 6:8c6d5731234d
First entry of Paradise Server 2.9 patch 10 Beta
author | darius |
---|---|
date | Sat, 06 Dec 1997 04:37:04 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/shmem.h Sat Dec 06 04:37:04 1997 +0000 @@ -0,0 +1,244 @@ +/*-------------------------------------------------------------------------- +NETREK II -- Paradise + +Permission to use, copy, modify, and distribute this software and its +documentation, or any derivative works thereof, for any NON-COMMERCIAL +purpose and without fee is hereby granted, provided that this copyright +notice appear in all copies. No representations are made about the +suitability of this software for any purpose. This software is provided +"as is" without express or implied warranty. + + Xtrek Copyright 1986 Chris Guthrie + Netrek (Xtrek II) Copyright 1989 Kevin P. Smith + Scott Silvey + Paradise II (Netrek II) Copyright 1993 Larry Denys + Kurt Olsen + Brandon Gillespie +--------------------------------------------------------------------------*/ + +#ifndef shmem_h_ +#define shmem_h_ + +#include "struct.h" + +enum spec_weapons_e +{ + WP_PLASMA, + WP_TRACTOR, + WP_MISSILE, + WP_FIGHTER, + WP_MAX +}; + +enum ships_systems +{ + /* Terrain could, I suppose, affect any of these */ + /* I may have forgotten a couple, feel free to add.. */ + SS_PLASMA, + SS_TRACTOR, + SS_MISSILE, + SS_FIGHTER, + SS_PHOTON, + SS_PHASER, + SS_SHIELD, + SS_REPAIR, + SS_CLOAK, + SS_SCANNER, + SS_SENSOR, + SS_WARP, + SS_IMPULSE, + SS_DOCK, + SS_NAVIGATION, + SS_COMMUNICATION, + SHIPS_SYSTEMS +}; + +struct configuration +{ + int tournplayers; /* how many players necessary for T-mode */ + int ntesters; /* number of slots reserved for robots */ + + char binconfirm; /* binary confirmation */ + float maxload; /* maximum load */ + char udpAllowed; /* is UDP allowed */ + int min_upd_delay; /* minimum update delay */ + int min_observer_upd_delay; /* minimum observer update delay */ + + /* planet things */ + int galaxygenerator; /* which method to generate the galaxy with */ + int numplanets; /* number of planets */ + float planupdspd; /* planet movement speed */ + char resource_bombing; /* have growable and bombable resources? */ + char revolts; /* are revolts allowed? */ + unsigned char popscheme; /* individual planet popping scheme */ + unsigned char popchoice; /* how to choose a planet for popping */ + int popspeed; /* 100 is normal speed */ + char evacuation; /* allow beaming up below 5 armies? */ + char new_army_growth; /* base army growth on current pop? */ + int planetsinplay; /* Max # of planets in play */ + int planetlimittype; /* how planet taking is limited */ + char beamlastarmies; /* if you can, or cannot beam up the last + * armies. */ + char justify_galaxy; /* Do we want to ensure that the galaxy is + * "fair"? */ + int num_wormpairs; /* The number of wormhole pairs -- DON'T SET + * ABOVE (NUMPLANETS/2) */ + int num_nebula; /* the number of nebulas in the galaxy. */ + int nebula_density; /* not yet used. Will be used for + * funky-shaped nebs */ + int nebula_subclouds; /* the number of nebulous subclouds */ + int num_asteroid; /* number of asteroid belts in the galaxy */ + float asteroid_thickness; /* the thickness of an asteroid belt. */ + int asteroid_density; /* the density (% chance) of an asteroid + * field */ + int asteroid_radius; /* distance of a belt from its star */ + float asteroid_thick_variance;/* float value -- useful range 0.0 - 10.0 or + * so */ + int asteroid_dens_variance; /* int value -- useful range 0 - 200 */ + int asteroid_rad_variance; /* int value -- useful range 0 - 255 */ + + float plkills; /* how many kills to allow plasmas */ + float mskills; /* how many kills to allow missiles */ + float erosion; /* hull erosion factor */ + float penetration; /* shield penetration factor */ + int newturn; /* TC's new style turns */ + int hiddenenemy; /* enemies hidden in T-mode */ + int gwidth; /* galactic width */ + char bronco_shipvals; /* use bronco ship values? */ + char afterburners; /* can people use afterburners? */ + char warpdrive; /* is warping allowed? */ + char fuel_explosions; /* are explosions based on gas? */ + char newcloak; /* use new cloaking? */ + char bronco_ranks; /* use bronco ranking? NYI, kinda */ + + char warpdecel; /* non-instant deceleration from warp */ + char affect_shiptimers_outside_T; /* should ship destruction outside of + * T-mode affect the team ship + * timers? */ + /* NYTested */ + char durablescouting; /* if 0, then you have to keep scouting + * planets to get up-to-date info. If 1, + * then you only need to scout it once. */ + + /* NYI */ + char facilitygrowth; /* if 0, then you can't bomb or grow + * facilities. if 1, then you can. */ + char fireduringwarpprep; /* can you fire during warp prep? */ + char fireduringwarp; /* can you fire while warping? */ + char firewhiledocked; /* can you fire while docked? */ + +#define WPS_NOTRACT 0 /* tractors do not affect warp prep */ +#define WPS_TABORT 1 /* tractors cause an abort at the end */ +#define WPS_TPREVENT 2 /* tractors prevent entering warp */ +#define WPS_TABORTNOW 3 /* tractors immediately abort warp prep */ +#define WPS_TSUSPEND 4 /* tractors suspend countdown */ + char warpprepstyle; + + char baserankstyle; /* if nobody on the team has enough rank */ + /* to get a special ship; and this is set */ + /* to 1, then the player with the highest */ + /* rank on the team may get the spec. ship */ + + char cloakduringwarpprep; + char cloakwhilewarping; + char tractabortwarp; /* this many tractors will abort warp */ + + float orbitdirprob; /* probability that the player will orbit + * clockwise */ + char neworbits; /* New, incremental planet distances from the + * parent star -- important for games with + * terrain. */ + + int sun_effect[SHIPS_SYSTEMS];/* suns affect these systems */ + int ast_effect[SHIPS_SYSTEMS];/* asteroids affect these systems */ + int neb_effect[SHIPS_SYSTEMS];/* a nebula affects these */ + int wh_effect[SHIPS_SYSTEMS]; /* wormhole effects */ + int improved_tracking[SHIPS_SYSTEMS]; /* which weapons use IT */ + int shipsallowed[NUM_TYPES]; /* which ships are allowed */ + int weaponsallowed[WP_MAX]; /* which special weapons are allowed */ +#ifdef LEAGUE_SUPPORT + /* league configuration stuff */ + int timeouts; /* timeouts per team in league play */ + int regulation_minutes; /* minutes in regulation play */ + int overtime_minutes; /* minutes in overtime play */ + int playersperteam; /* maximum number of players per team */ +#endif + /* ping stuff */ + int ping_period; /* ping period in seconds */ + int ping_iloss_interval; /* in terms of ping_period */ + int ping_allow_ghostbust; /* allow ghostbust detection from + * ping_ghostbust (cheating possible) */ + int ping_ghostbust_interval; /* in terms of ping_period, when to ghostbust + * (if allowed) */ + + char cluecheck; /* should we check clue? */ + int cluedelay; /* maximum time between clue checks */ + int cluetime; /* time player has to respond to a clue check */ + int cluesource; /* source of clue phrase */ +#define CC_COMPILED_IN_PHRASE_LIST 0 +#define CC_MOTD 1 +#define CC_PHRASE_LIST_FILE 2 + + int variable_warp; /* allow variable warp or not [BDyess] */ + int warpprep_suspendable; /* allow warp prep to be suspended [BDyess] */ + int warpzone; /* radius of warp zone [BDyess] */ + + /* tmode stuff */ + int nopregamebeamup; /* whether to disallow beamup before a game */ + int gamestartnuke; /* whether everyone is nuked at game start */ + int nottimeout; /* # minutes after loss of tmode before */ + /* galaxy resets (0 disables) */ + + /* put planet growth timer constants here */ + struct plgrow_ + { + int fuel, agri, repair, shipyard; + } plgrow; + int helpfulplanets; /* planets help fuel/etmep */ +}; + +extern struct player *players; +extern struct torp *torps; +extern struct missile *missiles; +extern struct thingy *thingies; +extern struct plasmatorp *plasmatorps; +extern struct status *status; +extern struct status2 *status2; +extern struct planet *planets; +extern struct t_unit *terrain_grid; +extern struct phaser *phasers; +extern int *stars; +extern struct mctl *mctl; +extern struct message *messages; +extern struct team *teams; + +#define NUMPLANETS configvals->numplanets +#define GWIDTH configvals->gwidth +#define WORMPAIRS configvals->num_wormpairs + +extern struct ship *shipvals; +extern struct configuration *configvals; +extern int *shipsallowed; /* points inside configvals */ +extern int *weaponsallowed; /* ditto */ +extern int *sun_effect; /* how do suns affect ship systems? */ +extern int *ast_effect; /* asteroids */ +extern int *neb_effect; /* nebulae */ +extern int *wh_effect; /* wormholes */ +extern int *num_nebula; /* number of nebulae */ +extern int *nebula_density; /* funkyness of nebulae -- NYI */ +extern int *nebula_subclouds; /* number of subclouds per nebula */ +extern int *num_asteroid; /* number of asteroid fields */ +extern float *asteroid_thickness; /* thickness of an asteroid belt */ +extern int *asteroid_density; /* density of asteroid belts */ +extern int *asteroid_radius; /* distance from owning star */ +extern float *asteroid_thick_variance; +extern int *asteroid_dens_variance; +extern int *asteroid_rad_variance; +extern int *improved_tracking; /* smarter tracking algorithm */ +extern char *galaxyValid; /* does galaxy go invalid? 0 if so */ +#define CLUEPHRASE_SIZE 1024 +extern char *cluephrase_storage; +void openmem( /* 0=or die, 1=fork daemon, 2=are daemon */ ); +void blast_shmem(); + +#endif