#ifndef H_KRNL_REPORTS #define H_KRNL_REPORTS #include #include #include #include #ifdef __cplusplus extern "C" { #endif struct battle; struct gamedate; struct sbstring; struct selist; struct stream; struct seen_region; /* Alter, ab dem der Score angezeigt werden soll: */ #define DISPLAYSCORE 12 /* Breite einer Reportzeile: */ #define REPORTWIDTH 78 extern const char *directions[]; extern const char *coasts[]; extern const char *combatstatus[]; extern bool nonr; extern bool nocr; extern bool noreports; extern const char *visibility[]; extern const char *options[MAXOPTIONS]; /* report options */ void reports_done(void); struct unit *can_find(struct faction *, struct faction *); bool omniscient(const struct faction *f); struct selist *get_regions_distance(struct region * root, int radius); int get_regions_distance_arr(struct region *r, int radius, struct region *result[], int size); /* funktionen zum schreiben eines reports */ void sparagraph(struct strlist **SP, const char *s, unsigned int indent, char mark); void lparagraph(struct strlist **SP, char *s, unsigned int indent, char mark); const char *hp_status(const struct unit *u); void spunit(struct strlist **SP, const struct faction *f, const struct unit *u, unsigned int indent, seen_mode mode); int reports(void); int write_reports(struct faction *f, const char *password); int init_reports(void); void reorder_units(struct region * r); int stealth_modifier(const struct region *r, const struct faction *f, seen_mode mode); typedef struct report_context { struct faction *f; struct selist *addresses; struct region *first, *last; void *userdata; time_t report_time; const char *password; } report_context; void prepare_report(report_context *ctx, struct faction *f, const char *password); void finish_reports(report_context *ctx); void get_addresses(report_context * ctx); typedef int(*report_fun) (const char *filename, report_context * ctx, const char *charset); void register_reporttype(const char *extension, report_fun write, int flag); int bufunit_depr(const struct faction *f, const struct unit *u, seen_mode mode, char *buf, size_t size); void bufunit(const struct faction * f, const struct unit * u, const struct faction *fv, seen_mode mode, int getarnt, struct sbstring *sbp); const char *trailinto(const struct region *r, const struct locale *lang); void report_battle_start(struct battle * b); void register_reports(void); struct message *msg_curse(const struct curse *c, const void *obj, objtype_t typ, int slef); typedef struct arg_regions { int nregions; struct region **regions; } arg_regions; typedef struct resource_report { const struct resource_type *rtype; int number; int level; } resource_report; int report_resources(const struct region *r, struct resource_report *res, int size, const struct faction *viewer, bool see_unit); int report_items(const struct unit *u, struct item *result, int size, const struct unit *owner, const struct faction *viewer); void report_warnings(struct faction *f, int now); void report_status(const struct unit * u, const struct locale *lang, struct sbstring *sbp); void report_raceinfo(const struct race *rc, const struct locale *lang, struct sbstring *sbp); void report_race_skills(const struct race *rc, const struct locale *lang, struct sbstring *sbp); void report_item(const struct unit *owner, const struct item *i, const struct faction *viewer, const char **name, const char **basename, int *number, bool singular); void report_building(const struct building *b, const char **btype, const char **billusion); void add_seen_faction(struct faction *self, struct faction *seen); size_t f_regionid(const struct region *r, const struct faction *f, char *buffer, size_t size); void split_paragraph(struct strlist ** SP, const char *s, unsigned int indent, unsigned int width, char mark); int stream_printf(struct stream * out, const char *format, ...); int count_travelthru(struct region *r, const struct faction *f); const char *get_mailcmd(const struct locale *loc); bool visible_unit(const struct unit *u, const struct faction *f, int stealthmod, seen_mode mode); bool see_region_details(const struct region *r); #define GR_PLURAL 0x01 /* grammar: plural */ #define MAX_INVENTORY 128 /* maimum number of different items in an inventory */ #define MAX_RAWMATERIALS 8 /* maximum kinds of raw materials in a regions */ #ifdef __cplusplus } #endif #endif