On Tue, 25 Aug 1998, Michael J. Fara wrote: > I just made a 9800 (99x99) room zone, starting from zone 326 (circlemud's > default zone limit).. it spans from vnum 32600 thru 42400. But it seems that > circle crashes telling me theres no startroom (?), although the startroom is > clearly defined as vnum 100. (zone 1). The top zone of 326 is there because you generally have 100 rooms per zone and that tops out your vnums at 32,600 which is under the sh_int limit of 32,767. Every vnum over 32,767 "wraps over" to negatives starting at -32,768 and incrementing up from there. > Is there a problem where you can't go over a certain number of rooms or > something? This is really a killer to me because zone 326 is supposed to > hold a wilderness surface map area, and putting it anywhere else will just > make it difficult for us to build zones easilly. What you need to do is change the room_num typedef in structs.h from sh_int to long. You need to do the same for mob_num, obj_num, etc.. The next step is to go through EVERY BIT of your code. If a variable is defined as sh_int and it holds a vnum temporarily or is used in calculations with vnums, then it needs to be changed to long as well or else you risk corrupting data with the temp variable. I made this change about 3 months ago, and I found two variables that I missed in db.c two weeks ago so it is VERY easy to miss them. Also, don't go change all the sh_int references to long. That would probably be qualified as a Bad Thing(tm). Good luck! [ John Evans <evansj@datawest.net> ] [ http://www.hi-line.net/~evansj/ ] [ telnet://spear.gator.net:1066 ] [ aka: Zeavon MageMaster ] +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST