ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/random_maps/floor.C
Revision: 1.12
Committed: Sat Jan 13 23:06:13 2007 UTC (17 years, 4 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.11: +37 -46 lines
Log Message:
WARNING: this release is BROKEN

- rewrote map handling. map types are now completely pluggable, maybe
  *too* pluggable, as everything is a plug-in now.
- mark mandatory extensions as such.
- handle overloaded attachable objects correctly.
- many minor changes.

File Contents

# User Rev Content
1 elmex 1.1 /*
2 root 1.12 * CrossFire, A Multiplayer game
3     *
4     * Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team
5     * Copyright (C) 2002 Mark Wedel & Crossfire Development Team
6     * Copyright (C) 1992 Frank Tore Johansen
7     *
8     * This program is free software; you can redistribute it and/or modify
9     * it under the terms of the GNU General Public License as published by
10     * the Free Software Foundation; either version 2 of the License, or
11     * (at your option) any later version.
12     *
13     * This program is distributed in the hope that it will be useful,
14     * but WITHOUT ANY WARRANTY; without even the implied warranty of
15     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16     * GNU General Public License for more details.
17     *
18     * You should have received a copy of the GNU General Public License
19     * along with this program; if not, write to the Free Software
20     * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21     *
22     * The authors can be reached via e-mail at <crossfire@schmorp.de>
23     */
24 elmex 1.1
25     #include <global.h>
26     #include <random_map.h>
27     #include <rproto.h>
28    
29     /* make a map and layout the floor. */
30 root 1.12 void
31     maptile::make_map_floor (char **layout, char *floorstyle, random_map_params *RP)
32 root 1.4 {
33 root 1.10 char styledirname[1024];
34     char stylefilepath[1024];
35 root 1.6 maptile *style_map = 0;
36 elmex 1.1 object *the_floor;
37 root 1.4
38 root 1.12 clear ();
39    
40     width = RP->Xsize;
41     height = RP->Ysize;
42    
43     alloc ();
44 elmex 1.1
45     /* get the style map */
46 root 1.4 sprintf (styledirname, "%s", "/styles/floorstyles");
47     sprintf (stylefilepath, "%s/%s", styledirname, floorstyle);
48 root 1.12
49 root 1.4 style_map = find_style (styledirname, floorstyle, -1);
50 root 1.12
51     if (!style_map)
52     return;
53 elmex 1.1
54     /* fill up the map with the given floor style */
55 root 1.4 if ((the_floor = pick_random_object (style_map)) != NULL)
56 root 1.12 for (int x = 0; x < width; x++)
57     for (int y = 0; y < height; y++)
58     insert (arch_to_object (the_floor->arch), x, y, 0, INS_NO_MERGE | INS_NO_WALK_ON);
59 elmex 1.1 }