forked from github/server
1e51d0e9e2
Messages werden jetzt in einem anderen Meta-Format (message* of message_type*) gespeichert, das man in beliebige Formate (CR oder NR) rendern kann. crmessage.c und nrmessage.c sind die render-engines dafür. Die Messagetypen werden in res/{de,en}/messages.xml gesammelt, ultimativ kann das aber durchaus eine einzelne Datei sein. Die ist derzeit nicht wirklich xml (Umlaute drin, keine Definitionsdatei), aber gut lesbar. - make_message Diese Funktion ersetzt new_message, und ist etwas einfacher in der Syntax: make_message("dumb_mistake", "unit region command", u, r, cmd) erzeugt eine neue Nachricht, die dann einfach mit add_message wie bisher an die Nachrichtenliste gehängt werden kann. TODO: Messages könnte man durchaus reference-counten, und in mehrere Listen einfügen, solang sie a) mehrfachverwendet (Kampf!) und b) vom Betrachter unabhängig sind. Das spart einigen Speicher. - CR Version erhöht. Weil die MESSAGETYPES Blocks anders sind als früher - OFFENSIVE_DELAY Verbietet Einheiten, deren Partei eine Reigon niht bewachen, den Angriff in der Region, wenn sie sich in der Runde zuvor bewegt haben. Status der letzten Runde wird in neuem Attribut at_moved gespeichert. - SHORT_ATTACKS ein define, das angibt ob Kämpfen grundsätzlich keine lange Aktion ist. - XML Parser xml.[hc] enthält einen XML-Parser, dem man ein plugin mit callbacks übergibt, die nach dem Parsen eines tokens aufgerufen werden.
72 lines
2.7 KiB
C
72 lines
2.7 KiB
C
/* vi: set ts=2:
|
|
*
|
|
* Eressea PB(E)M host Copyright (C) 1998-2000
|
|
* Christian Schlittchen (corwin@amber.kn-bremen.de)
|
|
* Katja Zedel (katze@felidae.kn-bremen.de)
|
|
* Henning Peters (faroul@beyond.kn-bremen.de)
|
|
* Enno Rehling (enno@eressea-pbem.de)
|
|
* Ingo Wilken (Ingo.Wilken@informatik.uni-oldenburg.de)
|
|
*
|
|
* based on:
|
|
*
|
|
* Atlantis v1.0 13 September 1993 Copyright 1993 by Russell Wallace
|
|
* Atlantis v1.7 Copyright 1996 by Alex Schröder
|
|
*
|
|
* This program may not be used, modified or distributed without
|
|
* prior permission by the authors of Eressea.
|
|
* This program may not be sold or used commercially without prior written
|
|
* permission from the authors.
|
|
*/
|
|
|
|
#ifndef PLANES_H
|
|
#define PLANES_H
|
|
|
|
#define PFL_NOCOORDS 1
|
|
#define PFL_NORECRUITS 2
|
|
#define PFL_NOALLIANCES 4
|
|
#define PFL_LOWSTEALING 8
|
|
#define PFL_NOGIVE 16 /* Übergaben sind unmöglich */
|
|
#define PFL_NOATTACK 32 /* Angriffe und Diebstähle sind unmöglich */
|
|
#define PFL_NOTERRAIN 64 /* Terraintyp wird nicht angezeigt TODO? */
|
|
#define PFL_NOMAGIC 128 /* Zaubern ist unmöglich */
|
|
#define PFL_NOSTEALTH 256 /* Tarnung außer Betrieb */
|
|
#define PFL_NOTEACH 512 /* Lehre außer Betrieb */
|
|
#define PFL_NOBUILD 1024 /* Lehre außer Betrieb */
|
|
#define PFL_NOFEED 2048 /* Kein Unterhalt nötig TODO */
|
|
#define PFL_FRIENDLY 4096 /* everyone is your ally */
|
|
#define PFL_NOORCGROWTH 8192 /* orcs don't grow */
|
|
|
|
#define PFL_MUSEUM PFL_NOCOORDS | PFL_NORECRUITS | PFL_NOGIVE | PFL_NOATTACK | PFL_NOTERRAIN | PFL_NOMAGIC | PFL_NOSTEALTH | PFL_NOTEACH | PFL_NOBUILD | PFL_NOFEED
|
|
|
|
typedef struct plane {
|
|
struct plane *next;
|
|
int id;
|
|
char *name;
|
|
int minx,maxx,miny,maxy;
|
|
unsigned int flags;
|
|
struct attrib *attribs;
|
|
} plane;
|
|
|
|
struct plane *planes;
|
|
|
|
struct plane *getplane(const struct region *r);
|
|
struct plane *findplane(int x, int y);
|
|
void init_planes(void);
|
|
int getplaneid(struct region *r);
|
|
struct plane * getplanebyid(int id);
|
|
int region_x(const struct region *r, const struct faction *f);
|
|
int region_y(const struct region *r, const struct faction *f);
|
|
int plane_center_x(plane *pl);
|
|
int plane_center_y(plane *pl);
|
|
int ursprung_x(const struct faction *f, const plane *pl);
|
|
int ursprung_y(const struct faction *f, const plane *pl);
|
|
void set_ursprung(struct faction *f, int id, int x, int y);
|
|
plane * create_new_plane(int id, const char *name, int minx, int maxx, int miny, int maxy, int flags);
|
|
plane * getplanebyname(const char *);
|
|
extern int rel_to_abs(const struct plane *pl, const struct faction * f, int rel, unsigned char index);
|
|
|
|
extern void * resolve_plane(void * data);
|
|
extern void write_plane_reference(const plane * p, FILE * F);
|
|
extern void read_plane_reference(plane ** pp, FILE * F);
|
|
|
|
#endif
|