[ScryMUD] SVN Commit Info r769 - branches/people/eroper/automapper/mud/grrmud/server

scrymud at wanfear.com scrymud at wanfear.com
Fri Dec 17 02:42:14 PST 2004


Author: eroper
Date: 2004-12-17 02:42:14 -0800 (Fri, 17 Dec 2004)
New Revision: 769

Modified:
   branches/people/eroper/automapper/mud/grrmud/server/mapper.h
   branches/people/eroper/automapper/mud/grrmud/server/zone.cc
Log:
Any rooms which caused collisions are now flagged for easy identification.


Modified: branches/people/eroper/automapper/mud/grrmud/server/mapper.h
===================================================================
--- branches/people/eroper/automapper/mud/grrmud/server/mapper.h	2004-12-17 10:26:36 UTC (rev 768)
+++ branches/people/eroper/automapper/mud/grrmud/server/mapper.h	2004-12-17 10:42:14 UTC (rev 769)
@@ -37,6 +37,7 @@
       bool iswater;
       bool isdeepwater;
       bool isplaceholder;
+      bool cause_of_collision;
 
    public:
       maproom() {
@@ -48,6 +49,7 @@
          iswater = false;
          isdeepwater = false;
          isplaceholder = false;
+         cause_of_collision = false;
       }
 
       int num(void) { return room_num; }
@@ -68,6 +70,9 @@
       bool placeholder(void) { return isplaceholder; }
       bool placeholder(bool newval) { isplaceholder = newval; return
          isplaceholder; }
+      bool collided(void) { return cause_of_collision; }
+      bool collided(bool newval) { cause_of_collision = newval; return
+         cause_of_collision; }
 };
 
 class maprooms {
@@ -113,7 +118,7 @@
       int dist;
       bool hidden;
    public:
-      path() { start_room = -1; end_room = -1; hidden = false; }
+      path() { start_room = -1; end_room = -1; dist = 1; hidden = false; }
       int start(void) { return start_room; }
       int end(void) { return end_room; }
       int start(int s) { start_room = s; return start_room; }

Modified: branches/people/eroper/automapper/mud/grrmud/server/zone.cc
===================================================================
--- branches/people/eroper/automapper/mud/grrmud/server/zone.cc	2004-12-17 10:26:36 UTC (rev 768)
+++ branches/people/eroper/automapper/mud/grrmud/server/zone.cc	2004-12-17 10:42:14 UTC (rev 769)
@@ -682,6 +682,7 @@
                            distance, *cur_maproom)) ) {
                   my_rlist.shift_sw(cur_maproom->x(),
                         cur_maproom->y(), shift_by);
+                  new_maproom.collided(true);
                }
                   x = cur_maproom->x()+distance;
                   y = cur_maproom->y()-distance;
@@ -694,6 +695,7 @@
                            distance, *cur_maproom)) ) {
                   my_rlist.shift_nw(cur_maproom->x(), cur_maproom->y(),
                         shift_by);
+                  new_maproom.collided(true);
                }
                   x = cur_maproom->x()+distance;
                   y = cur_maproom->y()+distance;
@@ -706,6 +708,7 @@
                            distance, *cur_maproom)) ) {
                   my_rlist.shift_ne(cur_maproom->x(), cur_maproom->y(),
                         shift_by);
+                  new_maproom.collided(true);
                }
                   x = cur_maproom->x()-distance;
                   y = cur_maproom->y()+distance;
@@ -721,6 +724,7 @@
                            distance, *cur_maproom)) ) {
                   my_rlist.shift_se(cur_maproom->x(), cur_maproom->y(),
                         shift_by);
+                  new_maproom.collided(true);
                }
                   x = cur_maproom->x()-distance;
                   y = cur_maproom->y()-distance;
@@ -732,6 +736,7 @@
                if ( (shift_by = my_rlist.collision(maprooms::NORTH,
                            distance, *cur_maproom)) ) {
                   my_rlist.shift_s(cur_maproom->y(), shift_by);
+                  new_maproom.collided(true);
                }
                   x = cur_maproom->x();
                   y = cur_maproom->y()-distance;
@@ -743,6 +748,7 @@
                if ( (shift_by = my_rlist.collision(maprooms::SOUTH,
                            distance, *cur_maproom)) ) {
                   my_rlist.shift_n(cur_maproom->y(), shift_by);
+                  new_maproom.collided(true);
                }
                   x = cur_maproom->x();
                   y = cur_maproom->y()+distance;
@@ -754,6 +760,7 @@
                if ( (shift_by = my_rlist.collision(maprooms::EAST,
                            distance, *cur_maproom)) ) {
                   my_rlist.shift_w(cur_maproom->x(), shift_by);
+                  new_maproom.collided(true);
                }
                   x = cur_maproom->x()+distance;
                   y = cur_maproom->y();
@@ -765,6 +772,7 @@
                if ( (shift_by = my_rlist.collision(maprooms::WEST,
                            distance, *cur_maproom)) ) {
                   my_rlist.shift_e(cur_maproom->x(), shift_by );
+                  new_maproom.collided(true);
                }
                   x = cur_maproom->x()-distance;
                   y = cur_maproom->y();
@@ -786,6 +794,13 @@
 
             tmp_buf.clear();
 
+            //note any interesting characteristics about this new room.
+            if ( room_list[new_maproom.num()].isSmallWater() ) {
+               new_maproom.water(true);
+            }
+            if ( room_list[new_maproom.num()].isBigWater() ) {
+               new_maproom.deepwater(true);
+            }
 
             if ( 
                   (new_maproom.zone() == zone) || 
@@ -815,13 +830,17 @@
       if ( cur_maproom->placeholder() ) {
          continue;
       }
-      Sprintf(tmp_buf, "room %d %d %d %d\n",
+      Sprintf(tmp_buf, "room %d %d %d %d",
             cur_maproom->num(),
             cur_maproom->x(),
             cur_maproom->y(),
             cur_maproom->z());
       retval.append(tmp_buf);
-   }
+      if ( cur_maproom->collided() ) {
+         retval.append(" collided");
+      }
+      retval.append("\n");
+   }//while
 
    maproom *start_rm;
    maproom *end_rm;




More information about the ScryMUD mailing list