ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/common/map.c
(Generate patch)

Comparing deliantra/server/common/map.c (file contents):
Revision 1.7 by root, Tue Mar 7 13:44:42 2006 UTC vs.
Revision 1.9 by root, Tue Mar 28 06:54:31 2006 UTC

1/* 1/*
2 * static char *rcsid_map_c = 2 * static char *rcsid_map_c =
3 * "$Id: map.c,v 1.7 2006/03/07 13:44:42 root Exp $"; 3 * "$Id: map.c,v 1.9 2006/03/28 06:54:31 root Exp $";
4 */ 4 */
5 5
6/* 6/*
7 CrossFire, A Multiplayer game for X-windows 7 CrossFire, A Multiplayer game for X-windows
8 8
590 * and we only save the head of multi part objects - this is needed 590 * and we only save the head of multi part objects - this is needed
591 * in order to do map tiling properly. 591 * in order to do map tiling properly.
592 */ 592 */
593void save_objects (mapstruct *m, FILE *fp, FILE *fp2, int flag) { 593void save_objects (mapstruct *m, FILE *fp, FILE *fp2, int flag) {
594 int i, j = 0,unique=0; 594 int i, j = 0,unique=0;
595 object *op, *otmp; 595 object *op;
596 /* first pass - save one-part objects */ 596 /* first pass - save one-part objects */
597 for(i = 0; i < MAP_WIDTH(m); i++) 597 for(i = 0; i < MAP_WIDTH(m); i++)
598 for (j = 0; j < MAP_HEIGHT(m); j++) { 598 for (j = 0; j < MAP_HEIGHT(m); j++) {
599 unique=0; 599 unique=0;
600 for(op = get_map_ob (m, i, j); op; op = otmp) { 600 for(op = get_map_ob (m, i, j); op; op = op->above) {
601 otmp = op->above;
602
603 if (QUERY_FLAG(op,FLAG_IS_FLOOR) && QUERY_FLAG(op, FLAG_UNIQUE)) 601 if (QUERY_FLAG(op,FLAG_IS_FLOOR) && QUERY_FLAG(op, FLAG_UNIQUE))
604 unique=1; 602 unique=1;
605 603
606 if(op->type == PLAYER) { 604 if(op->type == PLAYER) {
607 LOG(llevDebug, "Player on map that is being saved\n"); 605 LOG(llevDebug, "Player on map that is being saved\n");
679 677
680 if(m->spaces==NULL) 678 if(m->spaces==NULL)
681 fatal(OUT_OF_MEMORY); 679 fatal(OUT_OF_MEMORY);
682} 680}
683 681
684/* Creatures and returns a map of the specific size. Used 682/* Create and returns a map of the specific size. Used
685 * in random map code and the editor. 683 * in random map code and the editor.
686 */ 684 */
687mapstruct *get_empty_map(int sizex, int sizey) { 685mapstruct *get_empty_map(int sizex, int sizey) {
688 mapstruct *m = get_linked_map(); 686 mapstruct *m = get_linked_map();
689 m->width = sizex; 687 m->width = sizex;
1150 *****************************************************************************/ 1148 *****************************************************************************/
1151 1149
1152/* This goes through map 'm' and removed any unique items on the map. */ 1150/* This goes through map 'm' and removed any unique items on the map. */
1153static void delete_unique_items(mapstruct *m) 1151static void delete_unique_items(mapstruct *m)
1154{ 1152{
1155 int i,j,unique=0; 1153 int i,j,unique;
1156 object *op, *next; 1154 object *op, *next;
1157 1155
1158 for(i=0; i<MAP_WIDTH(m); i++) 1156 for(i=0; i<MAP_WIDTH(m); i++)
1159 for(j=0; j<MAP_HEIGHT(m); j++) { 1157 for(j=0; j<MAP_HEIGHT(m); j++) {
1160 unique=0; 1158 unique=0;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines