ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/random_maps/floor.C
Revision: 1.6
Committed: Sat Sep 16 22:24:12 2006 UTC (17 years, 8 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.5: +3 -3 lines
Log Message:
mapstruct => maptile
removed many ytypedefs in favor of structure tags

File Contents

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