int find_rand_room(int vnum) { OBJ_DATA *obj; ROOM_INDEX_DATA *room = NULL; int count = 0; int i; for (i = 300; i <= sysdata.maxvnum; i++) { if (get_room_index(i) != NULL) count++; } for (i = 300; i <= sysdata.maxvnum; i++) { if ((room = get_room_index(i)) != NULL && number_range(1, count * 2) == 1) break; room = NULL; } if (room) { obj = create_object(get_obj_index(vnum),0); if (!obj) return 0; obj_to_room(obj, room, supermob); } else find_rand_room(vnum); return room->vnum; } void do_roload(CHAR_DATA *ch, char *argument) { char buf[MSL]; int i, wh; char arg1[MAX_STRING_LENGTH]; argument = one_argument( argument, arg1 ); if ( arg1[0] == '\0' ) { send_to_char( "Syntax: roload <vnum>.\r\n", ch ); return; } i = atoi(arg1); if (!get_obj_index(i)) { send_to_char("That object doesn't exist!\r\n", ch); return; } wh = find_rand_room(i); sprintf( buf, "%s was loaded into the mud at vnum %d\r\n",get_obj_index(i)->short_descr, wh); send_to_char(buf, ch); return; }