ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/living.h
Revision: 1.8
Committed: Fri Dec 22 16:34:00 2006 UTC (17 years, 5 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.7: +19 -14 lines
Log Message:
- preliminary check in, stuff is rudimentarily working
- moved most of the player creation process into a perl coroutine
- changed internal design of player management to not reuse
  and morph the object in funny ways. should be safer and much
  nicer to handle.
- got rid of some annoying hacks, such as clear()
  (TODO: get rid of player_pod and other stuff now unnecessary?)

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.8 enum {
28     STR,
29     DEX,
30     CON,
31     INT,
32     WIS,
33     POW,
34     CHA,
35     NUM_STATS
36     };
37 root 1.1
38     #define MAXLEVEL 110
39    
40     /* Changed from NO_STAT to NO_STAT_VAL to fix conlfict on
41     * AIX systems
42     */
43     #define NO_STAT_VAL 99 /* needed by skills code -b.t. */
44    
45     extern const char *const attacks[NROFATTACKS];
46    
47     extern const float cha_bonus[MAX_STAT + 1];
48     extern const int dex_bonus[MAX_STAT + 1];
49     extern const int thaco_bonus[MAX_STAT + 1];
50     extern const int turn_bonus[MAX_STAT + 1];
51     extern const int max_carry[MAX_STAT + 1];
52     extern const int dam_bonus[MAX_STAT + 1];
53     extern const int learn_spell[];
54     extern const char *const restore_msg[NUM_STATS];
55     extern const char *const statname[NUM_STATS];
56     extern const char *const short_stat_name[NUM_STATS];
57     extern const char *const lose_msg[NUM_STATS];
58     extern const float speed_bonus[MAX_STAT + 1];
59     extern const uint32 weight_limit[MAX_STAT + 1];
60     extern const int cleric_chance[MAX_STAT + 1];
61     extern const int fear_bonus[MAX_STAT + 1];
62    
63 root 1.4 /* Mostly used by "alive" objects */
64 root 1.2 ACC_CLASS (living)
65     struct living
66 root 1.4 {
67     sint64 ACC (RW, exp); /* Experience. */
68 root 1.8 sint32 ACC (RW, food); /* How much food in stomach. 0 = starved. */
69    
70     sint8 ACC (RW, Str), ACC (RW, Dex), ACC (RW, Con), ACC (RW, Int), ACC (RW, Wis), ACC (RW, Pow), ACC (RW, Cha);
71     sint8 ACC (RW, wc), ACC (RW, ac); /* Weapon Class and Armour Class */
72     sint8 ACC (RW, luck); /* Affects thaco and ac from time to time */
73     sint16 ACC (RW, dam); /* How much damage this object does when hitting */
74    
75 root 1.2 sint16 ACC (RW, hp); /* Hit Points. */
76     sint16 ACC (RW, maxhp);
77 root 1.8
78 root 1.2 sint16 ACC (RW, sp); /* Spell points. Used to cast mage spells. */
79     sint16 ACC (RW, maxsp); /* Max spell points. */
80 root 1.8
81 root 1.2 sint16 ACC (RW, grace); /* Grace. Used to invoke clerical prayers. */
82     sint16 ACC (RW, maxgrace); /* Grace. Used to invoke clerical prayers. */
83     };
84 root 1.1
85 root 1.2 #endif
86 root 1.1