Hi all !
I ran into a bug where EXIT(ch, dir)->to_room was -1.
Of course in a self made spell.
To avoid such, give the database better consistency
as well as creators better feedback I suggest this modification:=20=
[This is no memory leak since done only once per reboot -
but feel free to free the exit structs if you want]
Greetings, Kilian at MultiMUD (telnet 132.230.36.55 4242).
/* resolve all vnums into rnums in the world */
void=20
renum_world(void)
{
register int room, door, rnum;
for (room =3D 0; room <=3D top_of_world; room++)
for (door =3D 0; door < NUM_OF_DIRS; door++)
if (world[room].dir_option[door])
if (world[room].dir_option[door]->to_room !=3D =
NOWHERE)
{ rnum =3D =
real_room(world[room].dir_option[door]->to_room);
world[room].dir_option[door]->to_room =3D =
rnum;
if(rnum<0)
{ sprintf(buf,"EXIT in room #%d dir %d does =
not exist (removed)",
world[room].number,door);
errlog(buf);
world[room].dir_option[door] =3D 0;
}
}
}
This archive was generated by hypermail 2b30 : 12/18/00 PST