server/src/common/kernel/pool.h
Enno Rehling 217cc7577a - xml reader erweitert, liest jetzt alle wichtigen Waffeneigenschaften ein
- Mallornbogen, Elfenbogen und Hellebarde in externer Datei statt im Code definiert.
- Gute/Böse Träume wieder aktiviert (war aus Versehen abgeschaltet)
- Score von Waffen anders berechnet.
2004-06-11 19:59:02 +00:00

112 lines
3.6 KiB
C

/* vi: set ts=2:
*
*
* Eressea PB(E)M host Copyright (C) 1998-2003
* 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 H_KRNL_POOL_H
#define H_KRNL_POOL_H
#ifdef __cplusplus
extern "C" {
#endif
int get_pooled(const struct unit * u, const struct region * r, resource_t itm);
int use_pooled(struct unit * u, struct region * r, resource_t itm, int count);
int use_pooled_give(struct unit * u, struct region * r, resource_t itm, int count);
/** use_pooled
* verbraucht 'count' Objekte der resource 'itm'
* unter zuhilfenahme des Pools der struct region und Aufbrauch des
* von der Einheit reservierten Resourcen
*
* use_pooled_give
* verbraucht 'count' Objekte der resource 'itm' wie use_pooled, jedoch
* zuerst vom nicht reservierten.
* (wichtig bei gib, da sonst beim zweiten GIB des selben Gegenstandes
* jede Reservierung gelöscht wird)
*/
/* bitfield values for get/use/change operations */
#define GET_SLACK 0x01
#define GET_RESERVE 0x02
#define GET_POOLED_SLACK 0x08
#define GET_POOLED_RESERVE 0x10
#define GET_POOLED_FORCE 0x20 /* ignore f->options pools */
#define GET_ALLIED_SLACK 0x30
#define GET_ALLIED_RESERVE 0x40
/* for convenience: */
#define GET_DEFAULT (GET_RESERVE|GET_SLACK|GET_POOLED_SLACK)
extern int get_all(const struct unit * u, const struct resource_type * rtype);
extern int use_all(struct unit * u, const struct resource_type * rtype, int count);
/** use_all
* verbraucht 'count' Objekte der resource 'itm'
* unter zuhilfenahme aller Einheiten der struct region
*/
int get_allied(const struct unit * u, struct region * r, resource_t itm);
int use_allied(struct unit * u, struct region * r, resource_t itm, int count);
/** use_allied
* verbraucht 'count' Objekte der resource 'itm'
* unter zuhilfenahme des alliierten in der struct region
*/
int get_reserved(const struct unit * u, resource_t itm);
int use_reserved(struct unit * u, resource_t itm, int count);
/** use_reserved
* verbraucht 'count' Objekte der resource 'itm'
* aus den reservierten Objekten der Einheit.
*/
int use_slack(struct unit * u, resource_t itm, int count);
int get_slack(const struct unit * u, resource_t itm);
/** use_slack
* verbraucht 'count' Objekte der resource 'itm'
* aus den nicht-reservierten Objekten der Einheit.
*/
int get_resource(const struct unit * u, resource_t res);
int change_resource(struct unit * u, resource_t res, int change);
int get_resvalue(const struct unit * u, resource_t resource);
int change_resvalue(struct unit * u, resource_t resource, int value);
int new_get_pooled(const struct unit * u, const struct resource_type * res, int mode);
int new_use_pooled(struct unit * u, const struct resource_type * res, int mode, int count);
/** use_pooled
* verbraucht 'count' Objekte der resource 'itm'
* unter zuhilfenahme des Pools der struct region und Aufbrauch des
* von der Einheit reservierten Resourcen
*/
int new_get_resource(const struct unit * u, const struct resource_type * res);
int new_change_resource(struct unit * u, const struct resource_type * res, int change);
int new_get_resvalue(const struct unit * u, const struct resource_type * res);
int new_change_resvalue(struct unit * u, const struct resource_type * res, int value);
void init_pool(void);
/** init_pool
* initialisiert den regionalen Pool.
*/
#ifdef __cplusplus
}
#endif
#endif