Import of Empire 4.2.12
This commit is contained in:
commit
d8b7fdfae1
817 changed files with 126589 additions and 0 deletions
167
include/nsc.h
Normal file
167
include/nsc.h
Normal file
|
@ -0,0 +1,167 @@
|
|||
/*
|
||||
* Empire - A multi-player, client/server Internet based war game.
|
||||
* Copyright (C) 1986-2000, Dave Pare, Jeff Bailey, Thomas Ruschak,
|
||||
* Ken Stevens, Steve McClure
|
||||
*
|
||||
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* See the "LEGAL", "LICENSE", "CREDITS" and "README" files for all the
|
||||
* related information and legal notices. It is expected that any future
|
||||
* projects/authors will amend these files as needed.
|
||||
*
|
||||
* ---
|
||||
*
|
||||
* nsc.h: Definitions for Empire conditionals
|
||||
*
|
||||
* Known contributors to this file:
|
||||
* Dave Pare, 1989
|
||||
*/
|
||||
|
||||
#ifndef _NSC_H_
|
||||
#define _NSC_H_
|
||||
|
||||
#include "prototype.h"
|
||||
#include "xy.h"
|
||||
|
||||
#define NS_LSIZE 128
|
||||
#define NS_NCOND 16
|
||||
|
||||
struct nscstr {
|
||||
long fld1; /* first commodity or number */
|
||||
long fld2; /* second commodity or number */
|
||||
int oper; /* required relationship operator */
|
||||
};
|
||||
|
||||
struct nstr_sect {
|
||||
coord x, y; /* current x-y */
|
||||
coord dx, dy; /* accumlated x,y travel */
|
||||
int id; /* return value of sctoff */
|
||||
int type; /* type of query */
|
||||
int curdist; /* dist query: current range */
|
||||
struct range range; /* area of coverage */
|
||||
int dist; /* dist query: range */
|
||||
coord cx, cy; /* dist query: center x-y */
|
||||
int (*read)(); /* read function */
|
||||
int ncond; /* # of selection conditions */
|
||||
struct nscstr cond[NS_NCOND]; /* selection conditions */
|
||||
};
|
||||
|
||||
struct nstr_item {
|
||||
int cur; /* current item */
|
||||
int sel; /* selection type */
|
||||
int type; /* item type being selected */
|
||||
int curdist; /* if NS_DIST, current item's dist */
|
||||
struct range range; /* NS_AREA/NS_DIST: range selector */
|
||||
int dist; /* NS_DIST: distance selector */
|
||||
coord cx, cy; /* NS_DIST: center x-y, NS_XY: xy */
|
||||
int group; /* NS_GROUP: fleet/wing match */
|
||||
int size; /* NS_LIST: size of list */
|
||||
int index; /* NS_LIST: index */
|
||||
int list[NS_LSIZE]; /* NS_LIST: item list */
|
||||
int (*read)(); /* read function */
|
||||
int flags; /* EFF_ flags */
|
||||
int ncond; /* # of selection conditions */
|
||||
struct nscstr cond[NS_NCOND]; /* selection conditions */
|
||||
};
|
||||
|
||||
#define NS_UNDEF 0
|
||||
#define NS_LIST 1
|
||||
#define NS_DIST 2
|
||||
#define NS_AREA 3
|
||||
#define NS_ALL 4
|
||||
#define NS_XY 5
|
||||
#define NS_GROUP 6
|
||||
|
||||
/*
|
||||
* looks something like this:
|
||||
* D: only deity can query on this field
|
||||
* R: round this value to the nearest 10 if not owner
|
||||
* T: type of pointer.
|
||||
* C: catagory of value.
|
||||
* V: value.
|
||||
*
|
||||
* 22 2 1 1 1
|
||||
* 32 0 8 6 2 8 4 0
|
||||
* xxxx xxxx xxxx xxxx xxxx xxxx
|
||||
* DRTT TTCC VVVV VVVV VVVV VVVV
|
||||
*/
|
||||
|
||||
/*
|
||||
* catagories
|
||||
*/
|
||||
#define NSC_VAL (0) /* normal number */
|
||||
#define NSC_VAR (1<<16) /* is a vtype */
|
||||
#define NSC_OFF (2<<16) /* is an offset */
|
||||
#define NSC_CMASK (3<<16)
|
||||
|
||||
/*
|
||||
* how to interpret "offset" fields
|
||||
*/
|
||||
#define NSC_CHAR (1<<18) /* pointer to s_char */
|
||||
#define NSC_UCHAR (2<<18) /* pointer to uchar */
|
||||
#define NSC_SHORT (3<<18) /* pointer to short */
|
||||
#define NSC_USHORT (4<<18) /* pointer to unsigned short */
|
||||
#define NSC_INT (5<<18) /* pointer to int */
|
||||
#define NSC_LONG (6<<18) /* pointer to long */
|
||||
#define NSC_XCOORD (7<<18) /* pointer to short that needs x conversion */
|
||||
#define NSC_YCOORD (8<<18) /* pointer to short that needs y conversion */
|
||||
#define NSC_FLOAT (9<<18) /* pointer to float */
|
||||
#define NSC_CHARP (10<<18) /* pointer to string pointer */
|
||||
#define NSC_TIME (11<<18) /* pointer to time_t */
|
||||
#define NSC_TMASK (15<<18)
|
||||
|
||||
#define NSC_NATID NSC_UCHAR /* change if natid typedef changes */
|
||||
|
||||
#define NSC_MASK (0xffff0000)
|
||||
|
||||
#define NSC_ROUND (1<<22)
|
||||
#define NSC_DEITY (1<<23)
|
||||
|
||||
struct castr {
|
||||
long ca_code; /* encoded form */
|
||||
s_char *ca_name; /* name used for matches */
|
||||
u_short ca_len; /* Used for arrays */
|
||||
long ca_edv; /* which commands is this field visible to? */
|
||||
};
|
||||
|
||||
/* variables using the above */
|
||||
|
||||
extern struct castr var_ca[];
|
||||
extern struct castr sect_ca[];
|
||||
extern struct castr ship_ca[];
|
||||
extern struct castr plane_ca[];
|
||||
extern struct castr land_ca[];
|
||||
extern struct castr nuke_ca[];
|
||||
extern struct castr news_ca[];
|
||||
extern struct castr nat_ca[];
|
||||
extern struct castr treaty_ca[];
|
||||
extern struct castr trade_ca[];
|
||||
extern struct castr loan_ca[];
|
||||
extern struct castr genitem_ca[];
|
||||
extern struct castr map_ca[];
|
||||
extern struct castr bmp_ca[];
|
||||
extern struct castr ca[];
|
||||
extern struct castr commodity_ca[];
|
||||
|
||||
/* src/lib/subs/nstr.c */
|
||||
extern s_char * nstr_comp(struct nscstr * , int * , int , s_char * );
|
||||
extern int encode(register s_char * , long * , int );
|
||||
|
||||
|
||||
extern s_char *decodep _PROTO((register long code, register void *addr));
|
||||
|
||||
#endif /* _NSC_H_ */
|
Loading…
Add table
Add a link
Reference in a new issue