On Wed, 6 Jan 1999, Andrew wrote: >>http://www.circlemud.org/~greerga/oasis2.pre.tar.gz >> >> genwld.c: delete_room() >> >>Have to remove the save list line though. > >Thanks all the same, but I'm not going to get anywhere fast just by copying >your code and putting into the source of my mud. I have narrowed down the >problem however. If you delete a room, that room is deleted, but so are all >the ones above it. Eg, if you delete room #5, room 5,6,7,8 etc. are deleted, >whioch is not what I want. So I assume the problem is copying over the world >struct to the temp struct... here's the code: This is one case where there are so many possibilities that could go subtly wrong that you probably want to refer to the code. >num_of_rooms--; > >CREATE(temp, struct room_data, num_of_rooms); > >for(i = 0, y = 0; i < num_of_rooms; ) >{ > if (world[i].number != room) { > temp[y] = world[i]; > i++; > y++; > } > else { > i++; > continue; > } >} > >Does this look to be the source of the problem? Once again, any help would >be appreciated. It'd be '<= top_of_world' really, not '< num_of_rooms', but that's details. You wouldn't want to decrement 'num_of_rooms' first either, since then you'll never copy the top room. >George: I've looked at your delete_room code, and it's very good I'm sure, >but I like to do things my own way. Hope you understand. Thanks for your >help anyhow. Ok, but don't blame me when your world is screwed up because you didn't adjust other dependent variables. ;) -- George Greer greerga@circlemud.org http://www.circlemud.org/~greerga/ +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST