Bug: Deleting a room with the at command can lead to disaster
Danger: High - Potential crash situation. Corrupted room pointer.
Found by: Remcon
Fixed by: Samson
if( !ch )
bug( "%s: NULL ch!", __FUNCTION__ );
Below that, add:
if( !get_room_index( pRoomIndex->vnum ) )
pRoomIndex = NULL;
This simple, yet hackish solution is probably not necessary in 99% of cases. But it's always that 1% that bites you in the ass every time. Invision this: You're in a room. For whatever reason you get the urge to type "rdelete <remote room#> <room# you're in now>" and voila! The command succeeded.... but... wait. You're back in the room you just told the code to delete. Uh oh. Yeah, I bet you can see that any attempt to remove yourself from this situation isn't going to be good. But with this fix in place, you get a bit of bug spam and a free trip to Limbo instead. Assuming you HAVE a limbo room. But that's a whole other can of worms.