--- deliantra/server/random_maps/standalone.C 2007/01/06 14:42:30 1.13 +++ deliantra/server/random_maps/standalone.C 2009/10/11 18:18:03 1.20 @@ -1,27 +1,25 @@ - /* - CrossFire, A Multiplayer game for X-windows - - Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team - Copyright (C) 2002 Mark Wedel & Crossfire Development Team - Copyright (C) 1992 Frank Tore Johansen - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - The authors can be reached via e-mail at -*/ + * This file is part of Deliantra, the Roguelike Realtime MMORPG. + * + * Copyright (©) 2005,2006,2007,2008 Marc Alexander Lehmann / Robin Redeker / the Deliantra team + * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team + * Copyright (©) 1992,2007 Frank Tore Johansen + * + * Deliantra is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * The authors can be reached via e-mail to + */ #define LO_NEWFILE 2 @@ -48,6 +46,7 @@ printf ("\nUsage: %s inputfile outputfile\n", argv[0]); exit (0); } + strcpy (InFileName, argv[1]); strcpy (OutFileName, argv[2]); @@ -81,7 +80,6 @@ #include - /* some plagarized code from apply.c--I needed just these two functions without all the rest of the junk, so.... */ int @@ -98,9 +96,14 @@ do { i = 10; /* let's give it 10 tries */ - while ((tmp = generate_treasure (op->randomitems, op->stats.exp ? op->stats.exp : 5)) == NULL && --i); + + while (!(tmp = generate_treasure (op->randomitems, op->stats.exp ? op->stats.exp : 5)) + && --i) + ; + if (tmp == NULL) return 0; + if (QUERY_FLAG (tmp, FLAG_CURSED) || QUERY_FLAG (tmp, FLAG_DAMNED)) { tmp->destroy (); @@ -121,7 +124,7 @@ while ((op->stats.hp--) > 0) create_treasure (op->randomitems, op, GT_ENVIRONMENT, op->stats.exp ? op->stats.exp : op->map == NULL ? 14 : op->map->difficulty, 0); - op->remove (); + op->destroy (); break; } @@ -134,7 +137,6 @@ * certain objects (most initialization of chests and creation of * treasures and stuff). Calls auto_apply if appropriate. */ - void fix_auto_apply (maptile *m) { @@ -171,7 +173,7 @@ for (y = 0; y < m->height; y++) for (tmp = GET_MAP_OB (m, x, y); tmp != NULL; tmp = tmp->above) if (tmp->above && (tmp->type == TRIGGER_BUTTON || tmp->type == TRIGGER_PEDESTAL)) - check_trigger (tmp, tmp->above); + check_trigger (tmp, tmp->above, tmp->above); } /** @@ -277,3 +279,4 @@ trap_adjust (object *ob, int x) { } +