forked from github/server
cfdbc32470
GIB xyz EINHEIT GIB 0 ALLES SILBER --> ALLE Befehle der übergebenen Einheit werden gelöscht. * neue Funktion (convenience): ucansee(f, u1, u2) liefert u1, wenn cansee(f,u1), sonst u2 * neue mistakes eingefügt uns übersetzt * message bugfix: u->htisorder kann gelöscht werden (z.b. NACH). Daher muss ein pointer auf einen befehl in einer message immer auf den u->order Eintrag zeigen, damit er zeit der auswertung noch existiert. findorder(u, u->thisorder) tut das. Ist an mehreren Stellen nicht benutzt worden. assert eingebaut, das das prüft. * RESERVE_DONATIONS Gegenstände, die von einer anderen Partei übergeben wurden, werden nicht reserviert. * TWOPASS_GIVE: GIB Befehle werden zuerst an fremde Einheiten, danach in einem zweiten Durchlauf an eigene Einheiten, ausgeführt. * msg_message An einigen messages ausprobiert, ob man die gleiche Message mehreren Parteien einhängen kann - klappt, spart Speicher. Allerdings fehlt dazu ein ordentliches memory-management (refcounter)
67 lines
1.9 KiB
C
67 lines
1.9 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)
|
|
*
|
|
* This program may not be used, modified or distributed without
|
|
* prior permission by the authors of Eressea.
|
|
*/
|
|
|
|
#ifndef MESSAGE_H
|
|
#define MESSAGE_H
|
|
|
|
struct faction;
|
|
struct warning;
|
|
|
|
struct message;
|
|
struct messageclass;
|
|
struct warning;
|
|
struct msglevel;
|
|
|
|
struct message_type;
|
|
|
|
typedef struct message_list {
|
|
struct mlist {
|
|
struct mlist * next;
|
|
struct message *msg;
|
|
} * begin, **end;
|
|
} message_list;
|
|
|
|
typedef struct messageclass
|
|
{
|
|
struct messageclass * next;
|
|
const char * name;
|
|
} messageclass;
|
|
|
|
typedef struct msglevel {
|
|
/* used to set specialized msg-levels */
|
|
struct msglevel *next;
|
|
const struct message_type *type;
|
|
int level;
|
|
} msglevel;
|
|
|
|
void write_msglevels(struct warning * warnings, FILE * F);
|
|
void read_msglevels(struct warning ** w, FILE * F);
|
|
void set_msglevel(struct warning ** warnings, const char * type, int level);
|
|
|
|
extern struct message * msg_message(const char * name, const char* sig, ...);
|
|
extern struct message * msg_error(const struct unit *, const char *cmd,
|
|
const char * name, const char* sig, ...);
|
|
extern struct message * add_message(struct message_list** pm, struct message * m);
|
|
extern void free_messages(struct message_list * m);
|
|
extern void read_messages(FILE * F, const struct locale * lang);
|
|
|
|
/* message sections */
|
|
extern struct messageclass * msgclasses;
|
|
extern const struct messageclass * mc_add(const char * name);
|
|
extern const struct messageclass * mc_find(const char * name);
|
|
|
|
/* convenience, deprecated */
|
|
extern struct message * new_message(struct faction * receiver, const char * signature, ...);
|
|
|
|
#endif
|