forked from github/server
Merge branch 'master' of github.com:eressea/server
This commit is contained in:
commit
515b582144
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/sh
|
||||||
|
GAME=$1
|
||||||
|
BIN=$HOME/bin
|
||||||
|
export ERESSEA=$HOME/eressea
|
||||||
|
export PATH
|
||||||
|
TURN=$(cat $ERESSEA/game-$GAME)
|
||||||
|
if [ ! -e $ERESSEA/game-$GAME/data/$TURN.dat ]; then
|
||||||
|
echo "data file $TURN is missing, cannot run turn for game $GAME"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
$REPORTS=$ERESSEA/game-$GAME/reports
|
||||||
|
if [ -d $REPORTS ]; then
|
||||||
|
rm -rf $REPORTS
|
||||||
|
fi
|
||||||
|
mkdir $REPORTS
|
||||||
|
$BIN/run-turn.sh $GAME
|
||||||
|
if [ ! -s $ERESSEA/game-$GAME/orders.$TURN ]; then
|
||||||
|
echo "server did not create orders for turn $TURN in game $GAME"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
LET TURN=$TURN+1
|
||||||
|
if [ ! -s $ERESSEA/game-$GAME/data/$TURN.dat ]; then
|
||||||
|
echo "server did not create data for turn $TURN in game $GAME"
|
||||||
|
exit 3
|
||||||
|
fi
|
||||||
|
if [ ! -s $REPORTS/reports.txt ]; then
|
||||||
|
echo "server did not create reports.txt for turn $TURN in game $GAME"
|
||||||
|
exit 4
|
||||||
|
fi
|
||||||
|
$BIN/compress.sh $GAME $TURN
|
||||||
|
$BIN/sendreports.sh $GAME
|
|
@ -0,0 +1,3 @@
|
||||||
|
read_xml()
|
||||||
|
eressea.read_game(get_turn() .. ".dat")
|
||||||
|
gmtool.editor()
|
|
@ -46,7 +46,7 @@ extern "C" {
|
||||||
struct alliance *next;
|
struct alliance *next;
|
||||||
struct faction *_leader;
|
struct faction *_leader;
|
||||||
struct quicklist *members;
|
struct quicklist *members;
|
||||||
unsigned int flags;
|
int flags;
|
||||||
int id;
|
int id;
|
||||||
char *name;
|
char *name;
|
||||||
struct ally *allies;
|
struct ally *allies;
|
||||||
|
|
|
@ -34,7 +34,7 @@ extern "C" {
|
||||||
typedef struct maintenance {
|
typedef struct maintenance {
|
||||||
const struct resource_type *rtype; /* type of resource required */
|
const struct resource_type *rtype; /* type of resource required */
|
||||||
int number; /* amount of resources */
|
int number; /* amount of resources */
|
||||||
unsigned int flags; /* misc. flags */
|
int flags; /* misc. flags */
|
||||||
} maintenance;
|
} maintenance;
|
||||||
|
|
||||||
/* building_type::flags */
|
/* building_type::flags */
|
||||||
|
@ -112,7 +112,7 @@ extern "C" {
|
||||||
int size;
|
int size;
|
||||||
int sizeleft; /* is only used during battle. should be a temporary attribute */
|
int sizeleft; /* is only used during battle. should be a temporary attribute */
|
||||||
int besieged; /* should be an attribute */
|
int besieged; /* should be an attribute */
|
||||||
unsigned int flags;
|
int flags;
|
||||||
} building;
|
} building;
|
||||||
|
|
||||||
extern struct attrib_type at_building_generic_type;
|
extern struct attrib_type at_building_generic_type;
|
||||||
|
|
|
@ -41,7 +41,7 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
unsigned int nextborder = 0;
|
int nextborder = 0;
|
||||||
|
|
||||||
#define BORDER_MAXHASH 8191
|
#define BORDER_MAXHASH 8191
|
||||||
connection *borders[BORDER_MAXHASH];
|
connection *borders[BORDER_MAXHASH];
|
||||||
|
|
|
@ -25,7 +25,7 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern unsigned int nextborder;
|
extern int nextborder;
|
||||||
|
|
||||||
typedef struct connection {
|
typedef struct connection {
|
||||||
struct border_type *type; /* the type of this connection */
|
struct border_type *type; /* the type of this connection */
|
||||||
|
@ -33,7 +33,7 @@ extern "C" {
|
||||||
struct connection *nexthash; /* next connection between these regions */
|
struct connection *nexthash; /* next connection between these regions */
|
||||||
struct region *from, *to; /* borders can be directed edges */
|
struct region *from, *to; /* borders can be directed edges */
|
||||||
variant data;
|
variant data;
|
||||||
unsigned int id; /* unique id */
|
int id; /* unique id */
|
||||||
} connection;
|
} connection;
|
||||||
|
|
||||||
typedef struct border_type {
|
typedef struct border_type {
|
||||||
|
|
|
@ -192,7 +192,7 @@ extern "C" {
|
||||||
struct curse *nexthash;
|
struct curse *nexthash;
|
||||||
int no; /* 'Einheitennummer' dieses Curse */
|
int no; /* 'Einheitennummer' dieses Curse */
|
||||||
const struct curse_type *type; /* Zeiger auf ein curse_type-struct */
|
const struct curse_type *type; /* Zeiger auf ein curse_type-struct */
|
||||||
unsigned int flags; /* WARNING: these are XORed with type->flags! */
|
int flags; /* WARNING: these are XORed with type->flags! */
|
||||||
int duration; /* Dauer der Verzauberung. Wird jede Runde vermindert */
|
int duration; /* Dauer der Verzauberung. Wird jede Runde vermindert */
|
||||||
float vigour; /* Stärke der Verzauberung, Widerstand gegen Antimagie */
|
float vigour; /* Stärke der Verzauberung, Widerstand gegen Antimagie */
|
||||||
struct unit *magician; /* Pointer auf den Magier, der den Spruch gewirkt hat */
|
struct unit *magician; /* Pointer auf den Magier, der den Spruch gewirkt hat */
|
||||||
|
@ -207,8 +207,8 @@ extern "C" {
|
||||||
typedef struct curse_type {
|
typedef struct curse_type {
|
||||||
const char *cname; /* Name der Zauberwirkung, Identifizierung des curse */
|
const char *cname; /* Name der Zauberwirkung, Identifizierung des curse */
|
||||||
int typ;
|
int typ;
|
||||||
unsigned int flags;
|
int flags;
|
||||||
unsigned int mergeflags;
|
int mergeflags;
|
||||||
struct message *(*curseinfo) (const void *, objtype_t, const struct curse *,
|
struct message *(*curseinfo) (const void *, objtype_t, const struct curse *,
|
||||||
int);
|
int);
|
||||||
void(*change_vigour) (curse *, float);
|
void(*change_vigour) (curse *, float);
|
||||||
|
|
|
@ -51,7 +51,7 @@ extern "C" {
|
||||||
int id;
|
int id;
|
||||||
char *name;
|
char *name;
|
||||||
int minx, maxx, miny, maxy;
|
int minx, maxx, miny, maxy;
|
||||||
unsigned int flags;
|
int flags;
|
||||||
struct attrib *attribs;
|
struct attrib *attribs;
|
||||||
} plane;
|
} plane;
|
||||||
|
|
||||||
|
|
|
@ -81,7 +81,7 @@ extern "C" {
|
||||||
struct alliance *alliance;
|
struct alliance *alliance;
|
||||||
int since_turn; /* turn the region changed owners */
|
int since_turn; /* turn the region changed owners */
|
||||||
int morale_turn; /* turn when morale has changed most recently */
|
int morale_turn; /* turn when morale has changed most recently */
|
||||||
unsigned int flags;
|
int flags;
|
||||||
} region_owner;
|
} region_owner;
|
||||||
|
|
||||||
typedef struct demand {
|
typedef struct demand {
|
||||||
|
@ -126,7 +126,7 @@ extern "C" {
|
||||||
int x, y;
|
int x, y;
|
||||||
struct plane *_plane; /* to access, use rplane(r) */
|
struct plane *_plane; /* to access, use rplane(r) */
|
||||||
char *display;
|
char *display;
|
||||||
unsigned int flags;
|
int flags;
|
||||||
unsigned short age;
|
unsigned short age;
|
||||||
struct message_list *msgs;
|
struct message_list *msgs;
|
||||||
struct individual_message {
|
struct individual_message {
|
||||||
|
|
|
@ -441,7 +441,7 @@ static void read_alliances(struct storage *store)
|
||||||
READ_STR(store, aname, sizeof(aname));
|
READ_STR(store, aname, sizeof(aname));
|
||||||
al = makealliance(id, aname);
|
al = makealliance(id, aname);
|
||||||
if (global.data_version >= OWNER_2_VERSION) {
|
if (global.data_version >= OWNER_2_VERSION) {
|
||||||
READ_UINT(store, &al->flags);
|
READ_INT(store, &al->flags);
|
||||||
}
|
}
|
||||||
if (global.data_version >= ALLIANCELEADER_VERSION) {
|
if (global.data_version >= ALLIANCELEADER_VERSION) {
|
||||||
read_reference(&al->_leader, store, read_faction_reference,
|
read_reference(&al->_leader, store, read_faction_reference,
|
||||||
|
@ -513,7 +513,7 @@ static void read_owner(struct gamedata *data, region_owner ** powner)
|
||||||
owner->since_turn = since_turn;
|
owner->since_turn = since_turn;
|
||||||
READ_INT(data->store, &owner->morale_turn);
|
READ_INT(data->store, &owner->morale_turn);
|
||||||
if (data->version >= MOURNING_VERSION) {
|
if (data->version >= MOURNING_VERSION) {
|
||||||
READ_UINT(data->store, &owner->flags);
|
READ_INT(data->store, &owner->flags);
|
||||||
} else {
|
} else {
|
||||||
owner->flags = 0;
|
owner->flags = 0;
|
||||||
}
|
}
|
||||||
|
@ -699,7 +699,7 @@ unit *read_unit(struct gamedata *data)
|
||||||
|
|
||||||
READ_INT(data->store, &n);
|
READ_INT(data->store, &n);
|
||||||
setstatus(u, n);
|
setstatus(u, n);
|
||||||
READ_UINT(data->store, &u->flags);
|
READ_INT(data->store, &u->flags);
|
||||||
u->flags &= UFL_SAVEMASK;
|
u->flags &= UFL_SAVEMASK;
|
||||||
if ((u->flags & UFL_ANON_FACTION) && !rule_stealth_faction()) {
|
if ((u->flags & UFL_ANON_FACTION) && !rule_stealth_faction()) {
|
||||||
/* if this rule is broken, then fix broken units */
|
/* if this rule is broken, then fix broken units */
|
||||||
|
@ -844,11 +844,11 @@ static region *readregion(struct gamedata *data, int x, int y)
|
||||||
region *r = findregion(x, y);
|
region *r = findregion(x, y);
|
||||||
const terrain_type *terrain;
|
const terrain_type *terrain;
|
||||||
char token[32];
|
char token[32];
|
||||||
unsigned int uid = 0;
|
int uid = 0;
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
if (data->version >= UID_VERSION) {
|
if (data->version >= UID_VERSION) {
|
||||||
READ_UINT(data->store, &uid);
|
READ_INT(data->store, &uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (r == NULL) {
|
if (r == NULL) {
|
||||||
|
@ -896,7 +896,7 @@ static region *readregion(struct gamedata *data, int x, int y)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
r->terrain = terrain;
|
r->terrain = terrain;
|
||||||
READ_UINT(data->store, &r->flags);
|
READ_INT(data->store, &r->flags);
|
||||||
READ_INT(data->store, &n);
|
READ_INT(data->store, &n);
|
||||||
r->age = (unsigned short)n;
|
r->age = (unsigned short)n;
|
||||||
|
|
||||||
|
@ -1267,10 +1267,12 @@ faction *readfaction(struct gamedata * data)
|
||||||
}
|
}
|
||||||
|
|
||||||
READ_INT(data->store, &f->flags);
|
READ_INT(data->store, &f->flags);
|
||||||
assert((f->flags&FFL_SAVEMASK) == f->flags);
|
if (data->version < INTFLAGS_VERSION) {
|
||||||
if (f->no==0 || f->no==666) {
|
if (f->no==0 || f->no==666) {
|
||||||
f->flags |= FFL_NPC;
|
f->flags = FFL_NPC|FFL_NOTIMEOUT|FFL_NOIDLEOUT;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
assert((f->flags&FFL_SAVEMASK) == f->flags);
|
||||||
|
|
||||||
a_read(data->store, &f->attribs, f);
|
a_read(data->store, &f->attribs, f);
|
||||||
if (data->version >= CLAIM_VERSION) {
|
if (data->version >= CLAIM_VERSION) {
|
||||||
|
@ -1462,7 +1464,7 @@ int readgame(const char *filename, int backup)
|
||||||
rng_init(turn);
|
rng_init(turn);
|
||||||
++global.cookie;
|
++global.cookie;
|
||||||
READ_INT(&store, &nread); /* max_unique_id = ignore */
|
READ_INT(&store, &nread); /* max_unique_id = ignore */
|
||||||
READ_UINT(&store, &nextborder);
|
READ_INT(&store, &nextborder);
|
||||||
|
|
||||||
/* Planes */
|
/* Planes */
|
||||||
planes = NULL;
|
planes = NULL;
|
||||||
|
@ -1487,7 +1489,7 @@ int readgame(const char *filename, int backup)
|
||||||
READ_INT(&store, &pl->maxx);
|
READ_INT(&store, &pl->maxx);
|
||||||
READ_INT(&store, &pl->miny);
|
READ_INT(&store, &pl->miny);
|
||||||
READ_INT(&store, &pl->maxy);
|
READ_INT(&store, &pl->maxy);
|
||||||
READ_UINT(&store, &pl->flags);
|
READ_INT(&store, &pl->flags);
|
||||||
|
|
||||||
/* read watchers */
|
/* read watchers */
|
||||||
if (gdata.version < FIX_WATCHERS_VERSION) {
|
if (gdata.version < FIX_WATCHERS_VERSION) {
|
||||||
|
@ -1625,7 +1627,7 @@ int readgame(const char *filename, int backup)
|
||||||
READ_INT(&store, &sh->size);
|
READ_INT(&store, &sh->size);
|
||||||
READ_INT(&store, &sh->damage);
|
READ_INT(&store, &sh->damage);
|
||||||
if (gdata.version >= FOSS_VERSION) {
|
if (gdata.version >= FOSS_VERSION) {
|
||||||
READ_UINT(&store, &sh->flags);
|
READ_INT(&store, &sh->flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Attribute rekursiv einlesen */
|
/* Attribute rekursiv einlesen */
|
||||||
|
|
|
@ -89,7 +89,7 @@ extern "C" {
|
||||||
struct attrib *attribs;
|
struct attrib *attribs;
|
||||||
int size;
|
int size;
|
||||||
int damage; /* damage in 100th of a point of size */
|
int damage; /* damage in 100th of a point of size */
|
||||||
unsigned int flags;
|
int flags;
|
||||||
const struct ship_type *type;
|
const struct ship_type *type;
|
||||||
direction_t coast;
|
direction_t coast;
|
||||||
} ship;
|
} ship;
|
||||||
|
|
|
@ -61,7 +61,7 @@ extern "C" {
|
||||||
typedef struct terrain_type {
|
typedef struct terrain_type {
|
||||||
char *_name;
|
char *_name;
|
||||||
int size; /* how many peasants can work? */
|
int size; /* how many peasants can work? */
|
||||||
unsigned int flags;
|
int flags;
|
||||||
short max_road; /* this many stones make a full road */
|
short max_road; /* this many stones make a full road */
|
||||||
short distribution; /* multiplier used for seeding */
|
short distribution; /* multiplier used for seeding */
|
||||||
struct terrain_production *production;
|
struct terrain_production *production;
|
||||||
|
|
|
@ -107,7 +107,7 @@ extern "C" {
|
||||||
const struct race *race_;
|
const struct race *race_;
|
||||||
const struct race *irace;
|
const struct race *irace;
|
||||||
|
|
||||||
unsigned int flags;
|
int flags;
|
||||||
struct attrib *attribs;
|
struct attrib *attribs;
|
||||||
status_t status;
|
status_t status;
|
||||||
int n; /* enno: attribut? */
|
int n; /* enno: attribut? */
|
||||||
|
|
|
@ -70,8 +70,9 @@
|
||||||
#define UNIQUE_SPELLS_VERSION 339 /* turn 775, spell names are now unique globally, not just per school */
|
#define UNIQUE_SPELLS_VERSION 339 /* turn 775, spell names are now unique globally, not just per school */
|
||||||
#define SPELLBOOK_VERSION 340 /* turn 775, full spellbooks are stored for factions */
|
#define SPELLBOOK_VERSION 340 /* turn 775, full spellbooks are stored for factions */
|
||||||
#define NOOVERRIDE_VERSION 341 /* turn 775, full spellbooks are stored for factions */
|
#define NOOVERRIDE_VERSION 341 /* turn 775, full spellbooks are stored for factions */
|
||||||
|
#define INTFLAGS_VERSION 342 /* turn 876, FFL_NPC is now bit 25, flags is an int */
|
||||||
|
|
||||||
#define MIN_VERSION CURSETYPE_VERSION /* minimal datafile we support */
|
#define MIN_VERSION CURSETYPE_VERSION /* minimal datafile we support */
|
||||||
#define RELEASE_VERSION NOOVERRIDE_VERSION /* current datafile */
|
#define RELEASE_VERSION INTFLAGS_VERSION /* current datafile */
|
||||||
|
|
||||||
#define STREAM_VERSION 2 /* internal encoding of binary files */
|
#define STREAM_VERSION 2 /* internal encoding of binary files */
|
||||||
|
|
Loading…
Reference in New Issue