From: Gavin H. <gjh...@us...> - 2004-05-23 05:32:33
|
Update of /cvsroot/havok/havokmud In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27851 Modified Files: Tag: rev_1_11 spec_procs4.c Log Message: - fixed an infinite loop in nightwalker Index: spec_procs4.c =================================================================== RCS file: /cvsroot/havok/havokmud/spec_procs4.c,v retrieving revision 1.93.2.9 retrieving revision 1.93.2.10 diff -C2 -d -r1.93.2.9 -r1.93.2.10 *** spec_procs4.c 21 May 2004 13:25:42 -0000 1.93.2.9 --- spec_procs4.c 23 May 2004 05:32:23 -0000 1.93.2.10 *************** *** 2481,2617 **** } - #if 0 - /* - * Proc that makes a door open at nighttime 8pm, and close at dawn 5pm. - */ - int timed_door(struct char_data *ch, struct room_data *rp, int cmd) - { - struct room_direction_data *exitp, - *back; - struct room_data *spawnroom; - struct char_data *nightwalker; - extern int rev_dir[]; - extern struct time_info_data time_info; - char doorname[MAX_STRING_LENGTH + 30], - buf[MAX_STRING_LENGTH + 30]; - char buffer[MAX_STRING_LENGTH + 30]; - int doordir = 0; - char *dir_name[] = { - "to the north", - "to the east", - "to the south", - "to the west", - "above", - "below" - }; - - /* - * initialize exit info - */ - sprintf(doorname, "door"); - doordir = 2; - - rp = real_roomp(WAITROOM); - - if (!rp) { - Log("No room found for timed_door proc"); - return (FALSE); - } - - exitp = rp->dir_option[doordir]; - - if (!exitp) { - Log("No exitp in said dir? Make that exit, Ash!"); - return (FALSE); - } - - if (!exitp->exit_info) { - Log("No exit_info in said dir? Ash must have made a really weird " - "room."); - return (FALSE); - } - - if (IS_SET(exitp->exit_info, EX_CLOSED)) { - /* - * it's closed, should it be open? - */ - if (time_info.hours > 19 || time_info.hours < 5) { - /* - * it should indeed - */ - if (SET_BIT(exitp->exit_info, EX_LOCKED)) { - REMOVE_BIT(exitp->exit_info, EX_LOCKED); - } - REMOVE_BIT(exitp->exit_info, EX_CLOSED); - sprintf(buf, "The %s %s creaks open.\n\r", doorname, - dir_name[doordir]); - send_to_room(buf, WAITROOM); - - /* - * open other side as well - */ - if (exit_ok(exitp, &rp) && - (back = rp->dir_option[rev_dir[doordir]]) && - back->to_room == WAITROOM) { - if (SET_BIT(back->exit_info, EX_CLOSED)) { - if (SET_BIT(exitp->exit_info, EX_LOCKED)) - REMOVE_BIT(exitp->exit_info, EX_LOCKED); - REMOVE_BIT(back->exit_info, EX_CLOSED); - sprintf(buf, "The %s %s creaks open.\n\r", doorname, - dir_name[rev_dir[doordir]]); - send_to_room(buf, exitp->to_room); - } - } - } else if (time_info.hours == 9) { - /* - * they should all be fried by now - */ - spawnroom = real_roomp(SPAWNROOM); - if (!spawnroom) { - Log("No nightwalker spawnroom found, blame Ash."); - return (FALSE); - } - #if 0 - Log("transferring nightwalkers"); - #endif - while (spawnroom->people) { - nightwalker = spawnroom->people; - char_from_room(nightwalker); - char_to_room(nightwalker, WAITROOM); - } - } - } else { - /* - * it's open. should it be closed? - */ - if (4 < time_info.hours && time_info.hours < 20) { - /* yah man, let's close that bugger */ - SET_BIT(exitp->exit_info, EX_CLOSED); - if (!SET_BIT(exitp->exit_info, EX_LOCKED)) - SET_BIT(exitp->exit_info, EX_LOCKED); - sprintf(buf, "The %s %s slams shut.\n\r", doorname, - dir_name[doordir]); - send_to_room(buf, WAITROOM); - - /* - * close other side as well - */ - if (exit_ok(exitp, &rp) && - (back = rp->dir_option[rev_dir[doordir]]) && - back->to_room == WAITROOM) { - if (!SET_BIT(back->exit_info, EX_CLOSED)) { - SET_BIT(back->exit_info, EX_CLOSED); - if (!SET_BIT(exitp->exit_info, EX_LOCKED)) - SET_BIT(exitp->exit_info, EX_LOCKED); - } - sprintf(buf, "The %s %s slams shut.\n\r", doorname, - dir_name[rev_dir[doordir]]); - send_to_room(buf, exitp->to_room); - } - } - } - return (FALSE); - } - #endif #define ING_1 52870 --- 2481,2484 ---- *************** *** 3026,3029 **** --- 2893,2897 ---- struct room_data *rp; struct obj_data *obj; + char buf[MAX_STRING_LENGTH]; if (!ch) { *************** *** 3067,3071 **** for (obj = rp->contents; obj; obj = obj->next_content) { if (obj_index[obj->item_number].virtual == TARANTIS_PORTAL) { ! command_interpreter(ch, "enter portal"); return (FALSE); } --- 2935,2940 ---- for (obj = rp->contents; obj; obj = obj->next_content) { if (obj_index[obj->item_number].virtual == TARANTIS_PORTAL) { ! strcpy(buf, "portal"); ! do_enter(ch, buf, 7); return (FALSE); } |