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 s

⟦6fbd71f73⟧ TextFile

    Length: 4131 (0x1023)
    Types: TextFile
    Names: »ships.h«

Derivation

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

TextFile

/*
 * Galactic Bloodshed (Robert Chansky, smq@b)
 */

#define NUMSTYPES 	(25+1)

#define STYPE_POD	0
#define STYPE_SHUTTLE 	1
#define STYPE_COMSAT	2
#define STYPE_BATTLE 	3
#define STYPE_DESTROYER 4
#define STYPE_FIGHTER 	5
#define STYPE_CARGO 	6
#define STYPE_EXPLORER 	7
#define STYPE_TANKER 	8
#define STYPE_STATION 	9
#define STYPE_DREADNT	10
#define STYPE_MITHRIL	11
#define STYPE_CRYSTAL	12
#define STYPE_GOD	13
#define STYPE_MINE	14
#define STYPE_MIRROR	15

#define OTYPE_TERRA	16
#define OTYPE_CANIST	17
#define OTYPE_VN	18
#define OTYPE_PLBOMB	19
#define OTYPE_CLOAK	20
#define OTYPE_SUPPRESS	21
#define OTYPE_AMULET	22
#define OTYPE_BIOW	23
#define OTYPE_GR	24
#define OTYPE_TRANSDEV	25

#define NUMABILS 	11	/* 0 - 10 */

#define ABIL_CARGO 	0
/*#define ABIL_STEALTH 	1*/
#define ABIL_DESTCAP 	1
#define ABIL_GUNS 	2
#define ABIL_FUELCAP 	3
#define ABIL_TECH 	4
#define ABIL_MAXCREW 	5
#define ABIL_ARMOR 	6
#define ABIL_COST 	7
#define ABIL_MASS 	8
#define ABIL_CANMOVE	9
#define ABIL_HASSWITCH	10

#define TOWARDS 1	/* 0 is neither */
#define AWAY 2
#define BOTH 3

typedef struct ship shiptype;
typedef struct orders ordertype;
typedef struct place placetype;

struct orders {		/* standing orders for ships, planets */
    /*char moves[howmanybytes(MAXPLAYERS)];	/* whom to move towards/away */
    /*unsigned speed : 4;		/* what speed has been ordered */
    /*unsigned towards : 2;			/* move towards, away */
    /*unsigned biggerthan : 1;	/* move away from ships bigger than you */
    unsigned bombard : 1;	/* bombard planet we're on */
};

struct ship {
    float xpos,ypos;
    float fuel,mass;
    /*char name[NAMESIZE];*/
    /*us abils[NUMABILS-2];	/* only certain abilities are kept track*/
    unsigned short destshipno;		/* destination ship # */
    union {
    	ordertype o;		/* standing orders for ship */
	struct a {		/* if the ship is a Space Mirror */
		short shipno;	/* aimed at what ship */
		char snum;		/* aimed at what star */
		percent intensity;		/* intensity of aiming */
		unsigned pnum : BITS_MAXPLANETS;  /* aimed at what planet */
		unsigned level : 2;	/* aimed at what level */
	} aimed_at;
	struct o2 {
		short number;	/* for misc functions */
		short number2;	/* again */
		unsigned on : 1;	/* on or off */
	} object;
    } orders;
    char storbits;		/* what star # orbits */
    char deststar;		/* destination star */
    unsigned destpnum : BITS_MAXPLANETS;	/* destination planet */
    unsigned pnumorbits : BITS_MAXPLANETS;	/* # of planet if orbiting */
    unsigned damage : 7;		/* amt of damage */
    unsigned rad : 7;			/* irradiated */
    unsigned destruct : 16;	 	/* stuff it's carrying */
    unsigned resource : 16;
    unsigned popn : 16;			/* crew */
    unsigned owner : BITS_MAXPLAYERS;	/* owner of ship */
    unsigned speed : 3;		/* what speed to travel at */
    /*unsigned augmented : 4;	/* # of times augmented (max 10) ? */
    unsigned whatdest : 2;	/* where going (same as Dir) */
    unsigned whatorbits : 2;	/* where orbited (same as Dir) */
    unsigned type : 5;		/* what type ship is */
    unsigned is_cloaked : 1;	/* 1 bit: is cloaked ship */
    unsigned is_sheep : 1;	/* 1 bit: is under influence of mind control */
    unsigned is_docked : 1;	/* 1 bit: is landed on a planet or docked */
    unsigned notified : 1; 	/* 1bit: has been notified of something */
    unsigned is_dead : 1;	/* 1 bit: is destroyed ship */
    unsigned is_examined : 1;	/* 1 bit: has been examined */
};

struct place {		/* used in function return for finding place */
    char snum;
    char pnum;
    short shipno;
    shiptype *shipptr;
    unsigned level : 2;	/* .level: same as Dir */
    unsigned err : 1;		/* if error */
};

 /* whether ship is an object or not */
#define is_object(s) ((s)->type > STYPE_MIRROR)
 /* can takeoff & land, is mobile, etc. */
#define can_move(s) (Shipdata[(s)->type][ABIL_CANMOVE])
 /* has an on/off switch */
#define has_switch(s) (Shipdata[(s)->type][ABIL_HASSWITCH])

extern placetype Getplace();
extern char *Dispplace(),*Dispshiporbits();
extern int Shipdata[NUMSTYPES][NUMABILS];
extern char Shipltrs[];
extern char *Shipnames[];