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,2008,2009 Marc Alexander Lehmann / Robin Redeker / the Deliantra team |
4 | * Copyright (©) 2005,2006,2007,2008,2009,2010 Marc Alexander Lehmann / Robin Redeker / the Deliantra team |
5 | * Copyright (©) 2001-2003,2007 Mark Wedel & Crossfire Development Team |
5 | * Copyright (©) 2001-2003,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 it under |
8 | * Deliantra is free software: you can redistribute it and/or modify it under |
9 | * the terms of the Affero GNU General Public License as published by the |
9 | * the terms of the Affero GNU General Public License as published by the |
… | |
… | |
23 | */ |
23 | */ |
24 | |
24 | |
25 | #include <unistd.h> |
25 | #include <unistd.h> |
26 | |
26 | |
27 | #include "global.h" |
27 | #include "global.h" |
28 | #include "loader.h" |
|
|
29 | #include "path.h" |
28 | #include "path.h" |
30 | |
29 | |
31 | //+GPL |
30 | //+GPL |
32 | |
31 | |
33 | sint8 maptile::outdoor_darkness; |
32 | sint8 maptile::outdoor_darkness; |
… | |
… | |
150 | // blocks anything but wizards. |
149 | // blocks anything but wizards. |
151 | |
150 | |
152 | if (tmp->flag [FLAG_ALIVE] |
151 | if (tmp->flag [FLAG_ALIVE] |
153 | && tmp->head_ () != ob |
152 | && tmp->head_ () != ob |
154 | && tmp != ob |
153 | && tmp != ob |
155 | && tmp->type != DOOR |
154 | && tmp->type != DOOR) |
156 | && !tmp->flag [FLAG_WIZPASS]) |
|
|
157 | return 1; |
155 | return 1; |
158 | } |
156 | } |
159 | } |
157 | } |
160 | |
158 | |
161 | return 0; |
159 | return 0; |
… | |
… | |
855 | for (mapspace *ms = spaces + size (); ms-- > spaces; ) |
853 | for (mapspace *ms = spaces + size (); ms-- > spaces; ) |
856 | for (object *above, *op = ms->bot; op; op = above) |
854 | for (object *above, *op = ms->bot; op; op = above) |
857 | { |
855 | { |
858 | above = op->above; |
856 | above = op->above; |
859 | |
857 | |
860 | bool destroy = 0; |
|
|
861 | |
|
|
862 | // do not decay anything above unique floor tiles (yet :) |
858 | // do not decay anything above unique floor tiles (yet :) |
863 | if (QUERY_FLAG (op, FLAG_IS_FLOOR) && QUERY_FLAG (op, FLAG_UNIQUE)) |
859 | if (QUERY_FLAG (op, FLAG_IS_FLOOR) && QUERY_FLAG (op, FLAG_UNIQUE)) |
864 | break; |
860 | break; |
|
|
861 | |
|
|
862 | bool destroy = 0; |
865 | |
863 | |
866 | if (QUERY_FLAG (op, FLAG_IS_FLOOR) |
864 | if (QUERY_FLAG (op, FLAG_IS_FLOOR) |
867 | || QUERY_FLAG (op, FLAG_OBJ_ORIGINAL) |
865 | || QUERY_FLAG (op, FLAG_OBJ_ORIGINAL) |
868 | || QUERY_FLAG (op, FLAG_UNIQUE) |
866 | || QUERY_FLAG (op, FLAG_UNIQUE) |
869 | || QUERY_FLAG (op, FLAG_OVERLAY_FLOOR) |
867 | || QUERY_FLAG (op, FLAG_OVERLAY_FLOOR) |