DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T v

⟦043d882ce⟧ TextFile

    Length: 4651 (0x122b)
    Types: TextFile
    Names: »vars.h«

Derivation

└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
    └─⟦this⟧ »EUUGD18/General/Gb/vars.h« 

TextFile

/*
 * Galactic Bloodshed (Robert Chansky, smq@b)
 *  main bunch of variables 
 */

/* bit routines stolen from UNIX <sys/param.h> */
#define	setbit(a,i)	((a)[(i)/8] |= 1<<((i)%8))
#define	clrbit(a,i)	((a)[(i)/8] &= ~(1<<((i)%8)))
#define	xbit(a,i)	((a)[(i)/8] ^= (1<<((i)%8)))
#define	isset(a,i)	((a)[(i)/8] & (1<<((i)%8)))
#define	isclr(a,i)	(((a)[(i)/8] & (1<<((i)%8))) == 0)
#define	howmanybytes(x)	(((x)+7)/8)

#define Bzero(x)  bzero( (char *)&(x), sizeof(x) )
#define Malloc(x) (x *)malloc( sizeof(x) )

#include "files.h"
#include "tweakables.h"
#include <sys/types.h>
#include <sys/file.h>
#include <stdio.h>


#define LEVEL_UNIV 0
#define LEVEL_STAR 1
#define LEVEL_PLAN 2
/*#define LEVEL_MOON 3*/
#define LEVEL_SHIP 3

#define MAXPLAYERS 30
#define BITS_MAXPLAYERS 5	/* # bits req'd to represent */

typedef char bool;	/* 1 or 0 */
typedef unsigned char percent;	/* 0-100 */
typedef unsigned long ul;
typedef unsigned short us;
typedef struct sector sectortype;
typedef struct planet planettype;
typedef struct star startype;


struct plinfo {				/* planetary stockpiles */
      unsigned fuel : 17;		/* fuel for powering things */
      unsigned destruct : 17;   	/* destructive potential */
      unsigned resource : 17;		/* resources in storage */
      unsigned numsectsowned : 10;
      unsigned comread : 7;		/* combat readiness */
      unsigned mob_set : 7;		/* mobilization target */
      /*unsigned quota_resource : 7;
      unsigned quota_destruct : 7;
      unsigned quota_fuel : 7;*/
      unsigned explored : 1;		/* 1 bit: explored by each player */
      unsigned autorep : 3;		/* player wants autoreport */
      unsigned spied_on : 1;		/* spied on */
};

struct sector {
    unsigned eff : 7;		/* efficiency (0-100) */
    unsigned resource : 8;
    unsigned fert : 7;		/* max popn is proportional to this */
    unsigned popn : 10;
    unsigned mobilization : 7;	/* percent popn is mobilized for war */
    unsigned owner : BITS_MAXPLAYERS;	/* owner of place */
    unsigned is_wasted : 1;	/* 1 bit: is a wasted sector */
    /*unsigned is_cloaked : 1;	/* 1 bit: is cloaked sector */
    unsigned des : 3;		/* kind of land the place is */
    unsigned VN : 1;		/* has a VN machine on it */
};


struct planet {
    float xpos,ypos;		/* x,y relative to orbit */
    char conditions[TOXIC+1]; /* atmospheric conditions for terraforming */
    /*int nummoons;*/
    /*int moonpos[MAXMOONS];	/* filepos moons or ast around it */
    short shipnums[MAXPSHIPS];	/* ship #'s that orbit it */
    percent numships;		/* # of ships there are */
    percent Maxx,Maxy;		/* size of map */
    int sectormappos;		/* file posn for sector map */
    struct plinfo info[MAXPLAYERS-1]; 	/* planetary stockpiles */
    unsigned popn : 20;
    unsigned maxpopn : 20;			/* maximum population */
    unsigned slaved_to : BITS_MAXPLAYERS;	/* owner of place */
    /*unsigned is_sheep : 1;	/* 1 bit: is emotion suppressed */
    unsigned type : 2;		/* what type planet is */
    unsigned expltimer : 3;	/* timer for explorations */
    unsigned is_explored : 1;	/* is explored by owner */
};

struct star {
    float xpos,ypos;
    char stability;		/* how close to nova it is */
    char name[NAMESIZE];
    char numplanets;		/* # of same */
    char pnames[MAXPLANETS][NAMESIZE]; /* names of planets */
    int planetpos[MAXPLANETS]; 		/* file posns of planets */
    char numships;		/* get rid of this */
    short shipnums[MAXSSHIPS];	/* what ships are orbiting */
    float gravity;		/* attraction of star in "Standards". */
    char explored[howmanybytes(MAXPLAYERS)];	/* who's been here */
    char inhabited[howmanybytes(MAXPLAYERS)];	/* who lives here now */
    char AP[MAXPLAYERS];	/* action pts alotted */
    unsigned nova_stage : 4;		/* stage of nova */
    /*unsigned is_cloaked : 1;	/* pl is cloaked */
};



	/* this data will all be read at once */
struct data {
    int numstars;		/* # of stars */
    int numships;		/* # of ships floating around */
    short shipnums[MAXUSHIPS];
    char AP[MAXPLAYERS];	/* Action pts for each player */
} Sdata;

struct directory {
    unsigned level : 2;		/* what directory level */
    int snum;		/* what star system obj # (level=0) */
    int pnum;		/* number of planet */
    int shipno;		/* # of ship */
    /*int moon;		/* ptr to moon of planet obj # (lev=2)*/
    char prompt[NAMESIZE+NAMESIZE+NAMESIZE+5];	/* just to be safe */
    float lastx, lasty, zoom;	/* last coords for zoom */
} Dir;


sectortype Smap[(MAX_X+1)*(MAX_Y+1) + 1];

startype *Stars[NUMSTARS];

int Playernum;		/* what player you are */

extern float powscale(),logscale(),float_rand(),gravity();
char *malloc();