2010-08-08 10:06:34 +02:00
|
|
|
/*
|
2015-01-30 22:10:29 +01:00
|
|
|
Copyright (c) 1998-2015, Enno Rehling <enno@eressea.de>
|
2015-01-30 20:37:14 +01:00
|
|
|
Katja Zedel <katze@felidae.kn-bremen.de
|
|
|
|
Christian Schlittchen <corwin@amber.kn-bremen.de>
|
2010-08-08 10:06:34 +02:00
|
|
|
|
|
|
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
|
|
purpose with or without fee is hereby granted, provided that the above
|
|
|
|
copyright notice and this permission notice appear in all copies.
|
|
|
|
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
|
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
|
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
|
|
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
|
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
|
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
|
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
|
|
**/
|
|
|
|
|
|
|
|
#ifndef H_GC_LAWS
|
|
|
|
#define H_GC_LAWS
|
2014-11-03 08:33:07 +01:00
|
|
|
|
|
|
|
#include <kernel/types.h>
|
|
|
|
|
2010-08-08 10:06:34 +02:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2014-11-01 13:10:22 +01:00
|
|
|
struct unit;
|
|
|
|
struct region;
|
|
|
|
struct building;
|
|
|
|
struct faction;
|
|
|
|
struct order;
|
|
|
|
struct attrib_type;
|
|
|
|
|
2015-08-15 20:25:36 +02:00
|
|
|
extern struct attrib_type at_germs;
|
2015-11-24 19:32:52 +01:00
|
|
|
|
2015-08-15 20:25:36 +02:00
|
|
|
extern int dropouts[2];
|
|
|
|
extern int *age;
|
|
|
|
|
2014-11-01 13:10:22 +01:00
|
|
|
void demographics(void);
|
2014-12-15 09:48:43 +01:00
|
|
|
void immigration(void);
|
2014-11-01 13:10:22 +01:00
|
|
|
void update_guards(void);
|
|
|
|
void update_subscriptions(void);
|
|
|
|
void deliverMail(struct faction *f, struct region *r, struct unit *u,
|
2015-01-30 20:37:14 +01:00
|
|
|
const char *s, struct unit *receiver);
|
2014-11-01 13:10:22 +01:00
|
|
|
|
|
|
|
bool renamed_building(const struct building * b);
|
|
|
|
int rename_building(struct unit * u, struct order * ord, struct building * b, const char *name);
|
|
|
|
void get_food(struct region * r);
|
|
|
|
int can_contact(const struct region *r, const struct unit *u, const struct unit *u2);
|
2011-03-09 06:16:47 +01:00
|
|
|
|
2014-11-21 17:13:45 +01:00
|
|
|
int enter_building(struct unit *u, struct order *ord, int id, bool report);
|
|
|
|
int enter_ship(struct unit *u, struct order *ord, int id, bool report);
|
|
|
|
|
|
|
|
/* eressea-specific. put somewhere else, please. */
|
2015-01-30 20:37:14 +01:00
|
|
|
void processorders(void);
|
|
|
|
|
2015-08-05 14:45:46 +02:00
|
|
|
void new_units(void);
|
|
|
|
void defaultorders(void);
|
|
|
|
void quit(void);
|
|
|
|
void monthly_healing(void);
|
|
|
|
void restack_units(void);
|
|
|
|
void update_long_order(struct unit *u);
|
|
|
|
void sinkships(struct region * r);
|
|
|
|
void do_enter(struct region *r, bool is_final_attempt);
|
2015-01-30 20:37:14 +01:00
|
|
|
|
2015-08-15 20:25:36 +02:00
|
|
|
int password_cmd(struct unit *u, struct order *ord);
|
|
|
|
int banner_cmd(struct unit *u, struct order *ord);
|
|
|
|
int email_cmd(struct unit *u, struct order *ord);
|
|
|
|
int send_cmd(struct unit *u, struct order *ord);
|
|
|
|
int ally_cmd(struct unit* u, struct order *ord);
|
|
|
|
int prefix_cmd(struct unit *u, struct order *ord);
|
|
|
|
int setstealth_cmd(struct unit *u, struct order *ord);
|
|
|
|
int status_cmd(struct unit *u, struct order *ord);
|
|
|
|
int display_cmd(struct unit *u, struct order *ord);
|
|
|
|
int group_cmd(struct unit *u, struct order *ord);
|
|
|
|
int origin_cmd(struct unit *u, struct order *ord);
|
|
|
|
int quit_cmd(struct unit *u, struct order *ord);
|
|
|
|
int name_cmd(struct unit *u, struct order *ord);
|
|
|
|
int use_cmd(struct unit *u, struct order *ord);
|
|
|
|
int siege_cmd(struct unit *u, struct order *ord);
|
|
|
|
int leave_cmd(struct unit *u, struct order *ord);
|
|
|
|
int pay_cmd(struct unit *u, struct order *ord);
|
|
|
|
int promotion_cmd(struct unit *u, struct order *ord);
|
|
|
|
int combatspell_cmd(struct unit *u, struct order *ord);
|
|
|
|
int contact_cmd(struct unit *u, struct order *ord);
|
|
|
|
int guard_on_cmd(struct unit *u, struct order *ord);
|
|
|
|
int guard_off_cmd(struct unit *u, struct order *ord);
|
|
|
|
int reshow_cmd(struct unit *u, struct order *ord);
|
|
|
|
int mail_cmd(struct unit *u, struct order *ord);
|
|
|
|
int reserve_cmd(struct unit *u, struct order *ord);
|
|
|
|
int reserve_self(struct unit *u, struct order *ord);
|
|
|
|
int claim_cmd(struct unit *u, struct order *ord);
|
|
|
|
|
|
|
|
void nmr_warnings(void);
|
2015-01-30 20:37:14 +01:00
|
|
|
|
|
|
|
bool cansee(const struct faction *f, const struct region *r,
|
|
|
|
const struct unit *u, int modifier);
|
|
|
|
bool cansee_durchgezogen(const struct faction *f, const struct region *r,
|
|
|
|
const struct unit *u, int modifier);
|
|
|
|
bool cansee_unit(const struct unit *u, const struct unit *target,
|
|
|
|
int modifier);
|
|
|
|
bool seefaction(const struct faction *f, const struct region *r,
|
|
|
|
const struct unit *u, int modifier);
|
|
|
|
int armedmen(const struct unit *u, bool siege_weapons);
|
2015-02-01 19:14:06 +01:00
|
|
|
int peasant_luck_effect(int peasants, int luck, int maxp, double variance);
|
2014-11-01 12:09:56 +01:00
|
|
|
|
2015-06-19 07:53:11 +02:00
|
|
|
#define FORCE_LEAVE_POSTCOMBAT 1
|
|
|
|
#define FORCE_LEAVE_ALL 2
|
|
|
|
bool rule_force_leave(int flag);
|
2015-09-12 22:49:43 +02:00
|
|
|
bool help_enter(struct unit *uo, struct unit *u);
|
2015-06-19 07:53:11 +02:00
|
|
|
|
2010-08-08 10:06:34 +02:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|