ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/random_maps/floor.c
Revision: 1.1
Committed: Fri Feb 3 07:14:21 2006 UTC (18 years, 3 months ago) by root
Content type: text/plain
Branch: MAIN
Branch point for: UPSTREAM
Log Message:
Initial revision

File Contents

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