ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/living.h
Revision: 1.10
Committed: Mon Dec 25 11:25:49 2006 UTC (17 years, 5 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.9: +2 -1 lines
Log Message:
- small, but subtle, rewrite of object management
- perl will now keep attachable objects alive
- objects are now refcounted
- refcouts need to be tested explicitly (refcnt_chk)
- explicit destroy is required current
- explicit destroy asks "nicely" for the object to self destruct, if possible
- refcounts will be used during mortal killing
- minor bugfixes, optimisations etc.
- some former hacks removed.

File Contents

# Content
1 /*
2 CrossFire, A Multiplayer game for X-windows
3
4 Copyright (C) 2002 Mark Wedel & Crossfire Development Team
5 Copyright (C) 1992 Frank Tore Johansen
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20
21 The authors can be reached via e-mail at crossfire@schmorp.de
22 */
23
24 #ifndef LIVING_H
25 #define LIVING_H
26
27 // corresponds to some arrays in common/living.C
28 enum {
29 STR,
30 DEX,
31 CON,
32 INT,
33 WIS,
34 POW,
35 CHA,
36 NUM_STATS
37 };
38
39 #define MAXLEVEL 110
40
41 /* Changed from NO_STAT to NO_STAT_VAL to fix conlfict on
42 * AIX systems
43 */
44 #define NO_STAT_VAL 99 /* needed by skills code -b.t. */
45
46 extern const char *const attacks[NROFATTACKS];
47
48 extern const float cha_bonus[MAX_STAT + 1];
49 extern const int dex_bonus[MAX_STAT + 1];
50 extern const int thaco_bonus[MAX_STAT + 1];
51 extern const int turn_bonus[MAX_STAT + 1];
52 extern const int max_carry[MAX_STAT + 1];
53 extern const int dam_bonus[MAX_STAT + 1];
54 extern const int learn_spell[];
55 extern const char *const restore_msg[NUM_STATS];
56 extern const char *const statname[NUM_STATS];
57 extern const char *const short_stat_name[NUM_STATS];
58 extern const char *const lose_msg[NUM_STATS];
59 extern const float speed_bonus[MAX_STAT + 1];
60 extern const uint32 weight_limit[MAX_STAT + 1];
61 extern const int cleric_chance[MAX_STAT + 1];
62 extern const int fear_bonus[MAX_STAT + 1];
63
64 /* Mostly used by "alive" objects */
65 INTERFACE_CLASS (living)
66 struct living
67 {
68 sint64 ACC (RW, exp); /* Experience. */
69 sint32 ACC (RW, food); /* How much food in stomach. 0 = starved. */
70
71 sint8 ACC (RW, Str), ACC (RW, Dex), ACC (RW, Con), ACC (RW, Int), ACC (RW, Wis), ACC (RW, Pow), ACC (RW, Cha);
72 sint8 ACC (RW, wc), ACC (RW, ac); /* Weapon Class and Armour Class */
73 sint8 ACC (RW, luck); /* Affects thaco and ac from time to time */
74 sint16 ACC (RW, dam); /* How much damage this object does when hitting */
75
76 sint16 ACC (RW, hp); /* Hit Points. */
77 sint16 ACC (RW, maxhp);
78
79 sint16 ACC (RW, sp); /* Spell points. Used to cast mage spells. */
80 sint16 ACC (RW, maxsp); /* Max spell points. */
81
82 sint16 ACC (RW, grace); /* Grace. Used to invoke clerical prayers. */
83 sint16 ACC (RW, maxgrace); /* Grace. Used to invoke clerical prayers. */
84 };
85
86 #endif
87