Anyone else mess around with the new Oasis yet and run across this problem?
I was trying to figure out the sedit.c/shop.c bug (since it crashes my
bundle). I ran across a little incompatibility with the save list.
The new oasis saves the zone numbers to the 'save_list' however
when you go to save them you can't use the zone number.
example: (don't do this in zone 0 to show the true effect)
redit -> b -> 0 -> q -> y (save internal)
type olc to see the zone show up
then type redit save <zone you just edited a room from>
you see:
> Saving all rooms in zone 0.
type olc again, you see your zone listed.
Then type
redit save <zone * 100 (like 1200)>
> Saving all rooms in zone 0.
type olc again and whala
> All world files are up to date.
In oasis.c when you type redit save <zone>, it takes the zone number
and tries to use this
if ((OLC_ZNUM(d) = real_zone_by_thing(number)) == -1) {
which won't work becuase 'number' is the zone number not a vnum!
I fixed it by adding in this, (oasis.c)
/*
* Find the zone.
*/
+ if (save) {
+ if ((OLC_ZNUM(d) = real_zone(number)) < 0) { /* is this a good way to
check? */
+ send_to_char("Sorry, there is no zone for that number!\r\n", ch);
+ free(d->olc);
+ d->olc = NULL;
+ return;
+ }
+ }
- if ((OLC_ZNUM(d) = real_zone_by_thing(number)) == -1) {
+ else if ((OLC_ZNUM(d) = real_zone_by_thing(number)) == -1) {
send_to_char("Sorry, there is no zone for that number!\r\n", ch);
free(d->olc);
d->olc = NULL;
return;
}
Please, let me know if there is a better way to do this! (I was tired and
was getting frustrated at making it work correctly).
--
+---------------------------------------------------------------+
| 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/06/01 PST