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

# User Rev Content
1 root 1.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 root 1.7 The authors can be reached via e-mail at crossfire@schmorp.de
22 root 1.1 */
23    
24     #ifndef LIVING_H
25     #define LIVING_H
26    
27 root 1.10 // corresponds to some arrays in common/living.C
28 root 1.8 enum {
29     STR,
30     DEX,
31     CON,
32     INT,
33     WIS,
34     POW,
35     CHA,
36     NUM_STATS
37     };
38 root 1.1
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 root 1.4 /* Mostly used by "alive" objects */
65 root 1.10 INTERFACE_CLASS (living)
66 root 1.2 struct living
67 root 1.4 {
68 root 1.9 sint64 ACC (RW, exp); /* Experience. */
69     sint32 ACC (RW, food); /* How much food in stomach. 0 = starved. */
70 root 1.8
71 root 1.9 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 root 1.8
76 root 1.9 sint16 ACC (RW, hp); /* Hit Points. */
77     sint16 ACC (RW, maxhp);
78 root 1.8
79 root 1.9 sint16 ACC (RW, sp); /* Spell points. Used to cast mage spells. */
80     sint16 ACC (RW, maxsp); /* Max spell points. */
81 root 1.8
82 root 1.9 sint16 ACC (RW, grace); /* Grace. Used to invoke clerical prayers. */
83     sint16 ACC (RW, maxgrace); /* Grace. Used to invoke clerical prayers. */
84 root 1.2 };
85 root 1.1
86 root 1.2 #endif
87 root 1.1