ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/map.h
(Generate patch)

Comparing deliantra/server/include/map.h (file contents):
Revision 1.88 by root, Wed Sep 12 11:10:10 2007 UTC vs.
Revision 1.92 by root, Sun May 4 14:12:37 2008 UTC

1/* 1/*
2 * This file is part of Crossfire TRT, the Roguelike Realtime MORPG. 2 * This file is part of Deliantra, the Roguelike Realtime MMORPG.
3 * 3 *
4 * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Crossfire TRT team 4 * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
5 * Copyright (©) 2002-2005,2007 Mark Wedel & Crossfire Development Team 5 * Copyright (©) 2002-2005,2007 Mark Wedel & Crossfire Development Team
6 * Copyright (©) 1992,2007 Frank Tore Johansen 6 * Copyright (©) 1992,2007 Frank Tore Johansen
7 * 7 *
8 * Crossfire TRT 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
10 * the Free Software Foundation, either version 3 of the License, or 10 * the Free Software Foundation, either version 3 of the License, or
11 * (at your option) any later version. 11 * (at your option) any later version.
12 * 12 *
13 * This program is distributed in the hope that it will be useful, 13 * This program is distributed in the hope that it will be useful,
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * You should have received a copy of the GNU General Public License 18 * You should have received a copy of the GNU General Public License
19 * along with this program. If not, see <http://www.gnu.org/licenses/>. 19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 * 20 *
21 * The authors can be reached via e-mail to <crossfire@schmorp.de> 21 * The authors can be reached via e-mail to <support@deliantra.net>
22 */ 22 */
23 23
24/* 24/*
25 * The maptile is allocated each time a new map is opened. 25 * The maptile is allocated each time a new map is opened.
26 * It contains pointers (very indirectly) to all objects on the map. 26 * It contains pointers (very indirectly) to all objects on the map.
47#define MAGIC_MAP_SIZE 50 47#define MAGIC_MAP_SIZE 50
48#define MAGIC_MAP_HALF MAGIC_MAP_SIZE/2 48#define MAGIC_MAP_HALF MAGIC_MAP_SIZE/2
49 49
50#define MAP_LAYERS 3 50#define MAP_LAYERS 3
51 51
52/* Values for in_memory below. Should probably be an enumerations */ 52/* Values for in_memory below */
53enum { 53enum {
54 MAP_IN_MEMORY, 54 MAP_ACTIVE,
55 MAP_INACTIVE, // not used atm.
55 MAP_SWAPPED, 56 MAP_SWAPPED,
56 MAP_LOADING, 57 MAP_LOADING,
57 MAP_SAVING, 58 MAP_SAVING,
58}; 59};
59 60
324 bool generate_random_map (random_map_params *RP); 325 bool generate_random_map (random_map_params *RP);
325 326
326 static maptile *find_async (const char *path, maptile *original = 0, bool load = true);//PERL 327 static maptile *find_async (const char *path, maptile *original = 0, bool load = true);//PERL
327 static maptile *find_sync (const char *path, maptile *original = 0);//PERL 328 static maptile *find_sync (const char *path, maptile *original = 0);//PERL
328 static maptile *find_style_sync (const char *dir, const char *file = 0);//PERL 329 static maptile *find_style_sync (const char *dir, const char *file = 0);//PERL
329 MTH object *pick_random_object () const; 330 object *pick_random_object (rand_gen &gen = rndm) const;
330 331
331 mapspace const &at (uint32 x, uint32 y) const { return spaces [x * height + y]; } 332 mapspace const &at (uint32 x, uint32 y) const { return spaces [x * height + y]; }
332 mapspace &at (uint32 x, uint32 y) { return spaces [x * height + y]; } 333 mapspace &at (uint32 x, uint32 y) { return spaces [x * height + y]; }
333}; 334};
334 335
388 389
389 mapxy (object *op) 390 mapxy (object *op)
390 : m(op->map), x(op->x), y(op->y) 391 : m(op->map), x(op->x), y(op->y)
391 { } 392 { }
392 393
394 mapxy &move (int dx, int dy)
395 {
396 x += dx;
397 y += dy;
398
399 return *this;
400 }
401
393 mapxy &move (int dir) 402 mapxy &move (int dir)
394 { 403 {
395 x += freearr_x [dir]; 404 return move (freearr_x [dir], freearr_y [dir]);
396 y += freearr_y [dir];
397
398 return *this;
399 } 405 }
400 406
401 operator void *() const { return (void *)m; } 407 operator void *() const { return (void *)m; }
402 mapxy &operator =(const object *op) 408 mapxy &operator =(const object *op)
403 { 409 {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines