blob: 27a8a2cbb54cf4724ed3026ccf1bc3268fb8f7ad [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001// MorgenGrauen MUDlib
2//
3// unit.h -- Defines fuer Units
4//
5// $Id: unit.h 9017 2015-01-10 19:20:14Z Zesstra $
6
7#ifndef _UNIT_H_
8#define _UNIT_H_
9
10#define P_UNIT_DECAY_INTERVAL "unit_decay_interval"
11#define P_UNIT_DECAY_QUOTA "unit_decay_quota"
12#define P_UNIT_DECAY_FLAGS "unit_decay_flags"
13#define P_UNIT_DECAY_MIN "unit_decay_min"
14
15// Flags fuer P_UNIT_DECAY_FLAGS
16// verhindert das Zerfallen einzelner Unit-Objekte.
17#define NO_DECAY 0x1
18// kein Decay bis zum ersten move() von einem Env in ein Env. (d.h. das erste
19// move() in ein Env (Clonen im create vom NPC) ist unberuecksichtigt.)
20#define NO_DECAY_UNTIL_MOVE 0x2
21// ungenaueren Zerfall benutzt, dabei aber immer min. eine Einheit zerfallen
22// lassen.
23#define INACCURATE_DECAY 0x4
24// kein prozentualer Zerfall, sondern P_UNIT_DECAY_QUOTA gibt eine abs. Menge
25// an Einheiten an.
26#define ABSOLUTE_DECAY 0x8
27
28#define U_GPU "u_gpu"
29#define U_CPU "u_cpu"
30#define U_IDS "u_ids"
31#define U_REQ "u_req"
32
33#define IS_EQUAL(x) (objectp(x) && (IsEqual(x) && x->IsEqual(ME)))
34
35#endif // _UNIT_H_
36
37#ifdef NEED_PROTOTYPES
38#ifndef _UNIT_H_PROTYPES_
39#define _UNIT_H_PROTYPES_
40// public functions
41varargs int id(string str,int lvl);
42 int IsEqual(object ob);
43 int IsUnit();
44varargs int move(object|string dest, int method);
45 int *QueryCoinsPerUnits();
46 int *QueryGramsPerUnits();
47varargs int remove(int silent);
48varargs string long();
49varargs string|<string>* name(int fall, int demo);
50varargs string QueryPronoun(int casus);
51 string short();
52 void AddAmount(int am);
53 void AddPluralId(mixed str);
54 void AddSingularId(mixed str);
55 void RemovePluralId(mixed str);
56 void RemoveSingularId(mixed str);
57 void reset();
58 void SetCoinsPerUnits(int coins,int units);
59 void SetGramsPerUnits(int grams,int units);
60public int DoDecay(int silent);
61
62// internal functions
63static void check_leave();
64protected void DoDecayMessage(int oldamount, int zerfall);
65
66// Query- und Set-Methoden
67static int _query_plural();
68static int _query_total_weight();
69static int _query_u_req();
70static int _query_value();
71static int _query_weight();
72static string|string* _query_name();
73static int _set_amount(int am);
74static string|string* _set_name(mixed names);
75static int _set_weight(int num);
76static int _set_value(int num);
77static int _query_unit_decay_interval();
78static int _set_unit_decay_interval(int zeit);
79static int _query_unit_decay_quota();
80static int _set_unit_decay_quota(int quota);
81static int _query_unit_decay_min();
82static int _query_unit_decay_flags();
83
84#endif // _UNIT_H_PROTYPES_
85#endif // NEED_PROTOTYPES
86