1 | /* |
1 | /* |
2 | * static char *rcsid_player_h = |
2 | * static char *rcsid_player_h = |
3 | * "$Id: player.h,v 1.2 2006/04/18 16:54:19 root Exp $"; |
3 | * "$Id: player.h,v 1.5 2006/08/25 17:11:53 root Exp $"; |
4 | */ |
4 | */ |
5 | |
5 | |
6 | /* |
6 | /* |
7 | CrossFire, A Multiplayer game for X-windows |
7 | CrossFire, A Multiplayer game for X-windows |
8 | |
8 | |
… | |
… | |
35 | |
35 | |
36 | |
36 | |
37 | /* wand/rod/horn rolled into range_misc. They all use the same body location |
37 | /* wand/rod/horn rolled into range_misc. They all use the same body location |
38 | * anyways. |
38 | * anyways. |
39 | */ |
39 | */ |
40 | typedef enum rangetype { |
40 | enum rangetype { |
41 | range_bottom = -1, |
41 | range_bottom = -1, |
42 | range_none = 0, |
42 | range_none = 0, |
43 | range_bow = 1, |
43 | range_bow = 1, |
44 | range_magic = 2, |
44 | range_magic = 2, |
45 | range_misc = 3, |
45 | range_misc = 3, |
46 | range_golem = 4, |
46 | range_golem = 4, |
47 | range_skill = 5, |
47 | range_skill = 5, |
48 | range_builder = 6, |
48 | range_builder = 6, |
49 | range_size = 7 |
49 | range_size = 7 |
50 | } rangetype; |
50 | }; |
51 | |
51 | |
52 | typedef enum _bowtype { |
52 | enum bowtype_t { |
53 | bow_normal = 0, |
53 | bow_normal = 0, |
54 | bow_threewide = 1, |
54 | bow_threewide = 1, |
55 | bow_spreadshot = 2, |
55 | bow_spreadshot = 2, |
56 | bow_n = 3, /* must stay at 3 */ |
56 | bow_n = 3, /* must stay at 3 */ |
57 | bow_ne = 4, |
57 | bow_ne = 4, |
… | |
… | |
60 | bow_s = 7, |
60 | bow_s = 7, |
61 | bow_sw = 8, |
61 | bow_sw = 8, |
62 | bow_w = 9, |
62 | bow_w = 9, |
63 | bow_nw = 10, /* must stay at 10 */ |
63 | bow_nw = 10, /* must stay at 10 */ |
64 | bow_bestarrow = 11 |
64 | bow_bestarrow = 11 |
65 | } bowtype_t; |
65 | }; |
66 | |
66 | |
67 | typedef enum _petmode { |
67 | typedef enum _petmode { |
68 | pet_normal = 0, |
68 | pet_normal = 0, |
69 | pet_sad = 1, |
69 | pet_sad = 1, |
70 | pet_defend = 2, |
70 | pet_defend = 2, |
… | |
… | |
104 | #endif |
104 | #endif |
105 | sint64 total_exp; |
105 | sint64 total_exp; |
106 | uint32 kills; |
106 | uint32 kills; |
107 | } partylist; |
107 | } partylist; |
108 | |
108 | |
|
|
109 | // the layout of this structure cnanot be changed unless adjusting the inialisation code |
|
|
110 | // in server/player.c:get_player has been verified. |
109 | typedef struct pl { |
111 | typedef struct pl { |
110 | struct pl *next; /* Pointer to next player, NULL if this is last */ |
112 | struct pl *next; /* Pointer to next player, NULL if this is last */ |
|
|
113 | NewSocket socket; /* Socket information for this player */ |
111 | object *ob; /* The object representing the player */ |
114 | object *ob; /* The object representing the player */ |
112 | NewSocket socket; /* Socket information for this player */ |
|
|
113 | struct mapdef *loading; /* When entering a map in progress of loading, not really used */ |
115 | mapstruct *loading; /* When entering a map in progress of loading, not really used */ |
114 | rangetype shoottype; /* Which range-attack is being used by player */ |
116 | rangetype shoottype; /* Which range-attack is being used by player */ |
115 | bowtype_t bowtype; /* which firemode? */ |
117 | bowtype_t bowtype; /* which firemode? */ |
116 | petmode_t petmode; /* which petmode? */ |
118 | petmode_t petmode; /* which petmode? */ |
117 | object *ranges[range_size];/* object for each range. Set up in fix player. Note */ |
119 | object *ranges[range_size];/* object for each range. Set up in fix player. Note */ |
118 | /* That not all are used, it is just nice to map this 1:1 */ |
120 | /* That not all are used, it is just nice to map this 1:1 */ |
… | |
… | |
209 | uint32 mark_count; /* count of mark object */ |
211 | uint32 mark_count; /* count of mark object */ |
210 | object *transport; /* transport the player is in */ |
212 | object *transport; /* transport the player is in */ |
211 | /* Special DM fields */ |
213 | /* Special DM fields */ |
212 | tag_t* stack_items; /* Item stack for patch/dump/... commands */ |
214 | tag_t* stack_items; /* Item stack for patch/dump/... commands */ |
213 | int stack_position; /* Current stack position, 0 for no item */ |
215 | int stack_position; /* Current stack position, 0 for no item */ |
|
|
216 | |
|
|
217 | void *self, *cb; // CF+ perl's self and callback registry |
214 | } player; |
218 | } player; |