1 | /* |
1 | /* |
2 | * This file is part of Deliantra, the Roguelike Realtime MMORPG. |
2 | * This file is part of Deliantra, the Roguelike Realtime MMORPG. |
3 | * |
3 | * |
4 | * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Deliantra team |
4 | * Copyright (©) 2005,2006,2007,2008 Marc Alexander Lehmann / Robin Redeker / the Deliantra team |
5 | * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team |
5 | * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team |
6 | * Copyright (©) 1992,2007 Frank Tore Johansen |
6 | * Copyright (©) 1992,2007 Frank Tore Johansen |
7 | * |
7 | * |
8 | * Deliantra is free software: you can redistribute it and/or modify |
8 | * Deliantra is free software: you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License as published by |
9 | * it under the terms of the GNU General Public License as published by |
… | |
… | |
68 | // (possibly) max. number of objects "per page" in the ground container |
68 | // (possibly) max. number of objects "per page" in the ground container |
69 | #define FLOORBOX_PAGESIZE 50 |
69 | #define FLOORBOX_PAGESIZE 50 |
70 | |
70 | |
71 | struct MapCell |
71 | struct MapCell |
72 | { |
72 | { |
73 | tag_t player; // this is, unfortunately, very wasteful of memory space, but pretty bandwidth-efficient |
73 | tag_t player; // this is, unfortunately, very wasteful of memory space, but pretty bandwidth-efficient |
74 | int count; /* This is really darkness in the map1 command */ |
74 | int count; /* This is really darkness in the map1 command */ |
75 | faceidx faces[MAP_LAYERS]; |
75 | faceidx faces[MAP_LAYERS]; |
76 | unsigned char stat_hp; // health of something in this space, or 0 |
76 | unsigned char stat_hp; // health of something in this space, or 0 |
77 | unsigned char flags; |
77 | unsigned char flags; |
78 | uint8_t smooth[MAP_LAYERS]; |
78 | uint8_t smooth[MAP_LAYERS]; |
… | |
… | |
174 | uint8 ACC (RW, state); /* Input state of the player (name, password, etc */ |
174 | uint8 ACC (RW, state); /* Input state of the player (name, password, etc */ |
175 | |
175 | |
176 | sint8 ACC (RW, last_level); /* Last level we sent to client */ |
176 | sint8 ACC (RW, last_level); /* Last level we sent to client */ |
177 | uint16 ACC (RW, last_flags); /* fire/run on flags for last tick */ |
177 | uint16 ACC (RW, last_flags); /* fire/run on flags for last tick */ |
178 | float ACC (RW, last_weapon_sp); /* if diff than weapon_sp, update client */ |
178 | float ACC (RW, last_weapon_sp); /* if diff than weapon_sp, update client */ |
179 | //sint32 ACC (RW, last_weight); /* Last weight as sent to client; -1 means do not send weight */ |
179 | sint32 ACC (RW, last_weight); /* Last weight as sent to client; -1 means do not send weight */ |
180 | sint32 ACC (RW, last_weight_limit); /* Last weight limit transmitted to client */ |
180 | sint32 ACC (RW, last_weight_limit); /* Last weight limit transmitted to client */ |
181 | uint32 ACC (RW, last_path_attuned); /* Last spell attunment sent to client */ |
181 | uint32 ACC (RW, last_path_attuned); /* Last spell attunment sent to client */ |
182 | uint32 ACC (RW, last_path_repelled); /* Last spell repelled sent to client */ |
182 | uint32 ACC (RW, last_path_repelled); /* Last spell repelled sent to client */ |
183 | uint32 ACC (RW, last_path_denied); /* Last spell denied sent to client */ |
183 | uint32 ACC (RW, last_path_denied); /* Last spell denied sent to client */ |
184 | living ACC (RO, last_stats); /* Last stats as sent to client */ |
184 | living ACC (RO, last_stats); /* Last stats as sent to client */ |
… | |
… | |
409 | |
409 | |
410 | #define for_all_clients(var) \ |
410 | #define for_all_clients(var) \ |
411 | for (int _i = 0; _i < clients.size (); ++_i) \ |
411 | for (int _i = 0; _i < clients.size (); ++_i) \ |
412 | statementvar (client *, var, clients [_i]) |
412 | statementvar (client *, var, clients [_i]) |
413 | |
413 | |
|
|
414 | // returns true when the message needs special (read: perl) treatment |
|
|
415 | static inline bool |
|
|
416 | msg_is_special (const char *msg, bool nl_special = true) |
|
|
417 | { |
|
|
418 | return msg [strcspn (msg, nl_special ? "<[&\n" : "<[&")]; |
|
|
419 | } |
|
|
420 | |
414 | #endif |
421 | #endif |
415 | |
422 | |