On Fri, 27 Apr 2001, Patrick Dughi wrote:
> However, if we go and look at other patches, like dig or the
>sort, we quickly see that all zones are expected to be always and ONLY
>100 units large.
Ok, I'm sick of that limit. Especially since we do stupid things like:
zone_table[i - 1].top + 1 ... zone_table[i].top
Unless Alex has issues with the format, here's a tentative cut & pasted
patch (not including castle.c bits):
Index: db.h
===================================================================
RCS file: /home/circledb/.cvs/circle/src/db.h,v
retrieving revision 1.13
diff -u -p -r1.13 db.h
--- db.h 2001/03/05 02:47:08 1.13
+++ db.h 2001/04/27 17:04:12
@@ -156,6 +157,7 @@ struct zone_data {
char *name; /* name of this zone */
int lifespan; /* how long between resets (minutes) */
int age; /* current age of this zone (minutes) */
+ room_vnum bot; /* starting room number for this zone */
room_vnum top; /* upper limit for rooms in this zone */
int reset_mode; /* conditions for reset (see below) */
diff -u -p -r1.58 db.c
--- db.c 2001/03/05 13:04:51 1.58
+++ db.c 2001/04/27 17:21:30
@@ -352,7 +352,7 @@ void boot_db(void)
for (i = 0; i <= top_of_zone_table; i++) {
log("Resetting %s (rooms %d-%d).", zone_table[i].name,
- (i ? (zone_table[i - 1].top + 1) : 0), zone_table[i].top);
+ zone_table[i].bot, zone_table[i].top);
reset_zone(i);
}
@@ -1408,10 +1417,18 @@ void load_zones(FILE * fl, char *zonenam
Z.name = str_dup(buf);
line_num += get_line(fl, buf);
- if (sscanf(buf, " %hd %d %d ", &Z.top, &Z.lifespan, &Z.reset_mode) != 3) {
- log("SYSERR: Format error in 3-constant line of %s", zname);
+ error = sscanf(buf, " %hd %d %d %hd ", &Z.top, &Z.lifespan, &Z.reset_mode, &Z.bot);
+ if (error == 3)
+ Z.bot = Z.number * 100;
+ else if (error != 4) {
+ log("SYSERR: Format error in numeric constant line of %s", zname);
exit(1);
}
+ if (Z.bot > Z.top) {
+ log("SYSERR: Zone %d bottom (%d) > top (%d).", Z.number, Z.bot, Z.top);
+ exit(1);
+ }
+
cmd_no = 0;
for (;;) {
--
George Greer
greerga@circlemud.org
--
+---------------------------------------------------------------+
| FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
| Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
+---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/05/01 PST