forked from github/server
217cc7577a
- 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.
112 lines
3.6 KiB
C
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
|