diff -i smaug14/src/act_obj.c smaug18/src/act_obj.c 8c8 < * Tricops and Fireblade | * --- > * Tricops, Fireblade, Edmond, Conran | * 99c99,100 < CLAN_DATA *clan; --- > VAULT_DATA *vault; > char buf[20]; 113c114 < if ( ch->level - obj->value[5] > 5 || obj->value[5] - ch->level > 5 ) --- > if ( !is_name( ch->name, obj->action_desc ) && !IS_IMMORTAL( ch ) ) 121c122,123 < obj->value[5] = 0; --- > STRFREE( obj->action_desc ); > obj->action_desc = STRALLOC( "" ); 139c141 < act( AT_PLAIN, "$d: you can't carry that many items.", ch, NULL, obj->name, TO_CHAR ); --- > act( AT_PLAIN, "$d: you can't carry that many items.", ch, NULL, obj->short_descr, TO_CHAR ); 155a158,173 > > if ( IS_OBJ_STAT( container, ITEM_CLANCORPSE ) ) > { > if ( IS_NPC( ch ) ) > return; > if ( IS_IMMORTAL( ch ) > || is_name( ch->name, container->name ) > || ( container->action_desc && is_name( ch->name, container->action_desc ) && is_lootable( obj ) ) ) > ; > else > { > act( AT_ACTION, "You cannot loot $p.", ch, obj, NULL, TO_CHAR ); > return; > } > } > 178a197,199 > if ( xIS_SET( ch->in_room->room_flags, ROOM_HOUSE ) ) > save_house_by_vnum( ch->in_room->vnum ); /* House Object Saving */ > 182c203 < if ( IS_SET( ch->in_room->room_flags, ROOM_CLANSTOREROOM ) && ( !container || container->carried_by == NULL ) ) --- > if ( xIS_SET( ch->in_room->room_flags, ROOM_CLANSTOREROOM ) && ( !container || container->carried_by == NULL ) ) 184,188c205,214 < /* if (!char_died) save_char_obj(ch); */ < for ( clan = first_clan; clan; clan = clan->next ) < if ( clan->storeroom == ch->in_room->vnum ) < save_clan_storeroom( ch, clan ); < } --- > /* if (!char_died) save_char_obj(ch); > for ( clan = first_clan; clan; clan = clan->next ) > if ( clan->storeroom == ch->in_room->vnum ) > save_clan_storeroom(ch, clan); */ > for ( vault = first_vault; vault; vault = vault->next ) > if ( vault->vnum == ch->in_room->vnum ) > { > sprintf( buf, "%d", vault->vnum ); > save_storeroom( ch, buf ); > } 190,191c216,217 < if ( obj->item_type != ITEM_CONTAINER ) < check_for_trap( ch, obj, TRAP_GET ); --- > } > check_for_trap( ch, obj, TRAP_GET ); 197,198c223,226 < < amt = obj->value[0]; --- > /* > * Handle grouping -- noticed by Guy Petty > */ > amt = obj->value[0] * obj->count; 258a287,380 > void do_connect( CHAR_DATA * ch, char *argument ) > { > OBJ_DATA *first_ob; > OBJ_DATA *second_ob; > OBJ_DATA *new_ob; > > char arg1[MAX_STRING_LENGTH], arg2[MAX_STRING_LENGTH]; > char buf[MAX_STRING_LENGTH]; > > argument = one_argument( argument, arg1 ); > argument = one_argument( argument, arg2 ); > > if ( arg1[0] == '\0' || arg2[0] == '\0' ) > { > send_to_char( "Connect what to what?\n\r", ch ); > return; > } > > if ( ( first_ob = get_obj_carry( ch, arg1 ) ) == NULL ) > { > sprintf( buf, "You aren't holding the necessary objects.\n\r" ); > send_to_char( buf, ch ); > return; > } > > > > if ( ( second_ob = get_obj_carry( ch, arg2 ) ) == NULL ) > { > sprintf( buf, "You aren't holding the necessary objects.\n\r" ); > send_to_char( buf, ch ); > return; > } > > separate_obj( first_ob ); > separate_obj( second_ob ); > > if ( first_ob->item_type != ITEM_PIECE || second_ob->item_type != ITEM_PIECE ) > { > send_to_char( "You stare at them for a moment, but these items clearly don't go together.\n\r", ch ); > return; > } > > /* > * check to see if the pieces connect > */ > > if ( ( first_ob->value[0] == second_ob->pIndexData->vnum ) > || ( first_ob->value[1] == second_ob->pIndexData->vnum ) ) > /* > * good connection > */ > { > new_ob = create_object( get_obj_index( first_ob->value[2] ), ch->level ); > extract_obj( first_ob ); > extract_obj( second_ob ); > obj_to_char( new_ob, ch ); > act( AT_ACTION, "$n cobbles some objects together....\r\nsuddenly they snap together, creating $p!", ch, new_ob, > NULL, TO_ROOM ); > act( AT_ACTION, "You cobble the objects together....\r\nsuddenly they snap together, creating $p!", ch, new_ob, > NULL, TO_CHAR ); > > } > else > { > act( AT_ACTION, "$n jiggles some objects against each other, but can't seem to make them connect.", ch, NULL, > NULL, TO_ROOM ); > act( AT_ACTION, "You try to fit them together every which way, but they just don't want to connect.", ch, NULL, > NULL, TO_CHAR ); > return; > } > > return; > } > > bool is_lootable( OBJ_DATA * obj ) > { > > return TRUE; > /* > sh_int vnum = obj->pIndexData->vnum; > > if ( vnum == 21807 || vnum == 21808 || vnum == 21809 > || vnum == 13410 || vnum == 13411 || vnum == 13419 > || vnum == 14200 || vnum == 14201 || vnum == 14202 > || vnum == 10650 || vnum == 10651 || vnum == 10652 > || vnum == 32177 || vnum == 32178 || vnum == 32179 > || vnum == 32722 || vnum == 32725 || vnum == 32721 > || vnum == 31950 || vnum == 31951 || vnum == 31952 ) > return TRUE; > return FALSE; > */ > } > 262a385 > char buf[MAX_INPUT_LENGTH]; 266c389 < sh_int number; --- > int number; 269a393,401 > > if ( ch->carry_number < 0 || ch->carry_weight < 0 ) > { > send_to_char( "Uh oh ... better contact an immortal about your number or weight of items carried.\n\r", ch ); > sprintf( buf, "%s has negative carry_number or carry_weight!", ch->name ); > log_string( buf ); > return; > } > 332c464 < if ( IS_SET( ch->in_room->room_flags, ROOM_DONATION ) ) --- > if ( xIS_SET( ch->in_room->room_flags, ROOM_DONATION ) ) 462c594,595 < && !IS_NPC( ch ) && str_cmp( name, ch->name ) && container->value[5] >= 3 ) --- > && !IS_NPC( ch ) && !IS_IMMORTAL( ch ) && str_cmp( name, ch->name ) > && container->value[5] >= 3 ) 473c606,608 < if ( str_cmp( name, ch->name ) && !IS_IMMORTAL( ch ) ) --- > /* blodkai arg */ > > if ( !str_cmp( name, ch->name ) && !IS_IMMORTAL( ch ) ) 623c758,759 < CLAN_DATA *clan; --- > VAULT_DATA *vault; > char buf[20]; 733,735c869,886 < if ( ( IS_OBJ_STAT( container, ITEM_COVERING ) < && ( get_obj_weight( obj ) / obj->count ) < > ( ( get_obj_weight( container ) / container->count ) - container->weight ) ) ) --- > /* if ( (IS_OBJ_STAT(container, ITEM_COVERING) > && (get_obj_weight(obj) / obj->count) > > ((get_obj_weight(container) / container->count) > - container->weight)) ) > { > send_to_char( "It won't fit under there.\n\r", ch ); > return; > } > > if ( (get_real_obj_weight(obj) / obj->count) > + (get_real_obj_weight(container) / container->count) > > container->value[0] ) > { > send_to_char( "It won't fit.\n\r", ch ); > return; > } > */ > // Fix by Luc - Sometime in 2000? 737,738c888,904 < send_to_char( "It won't fit under there.\n\r", ch ); < return; --- > int tweight = ( get_real_obj_weight( container ) / container->count ) > + ( get_real_obj_weight( obj ) / obj->count ); > > if ( IS_OBJ_STAT( container, ITEM_COVERING ) ) > { > if ( container->item_type == ITEM_CONTAINER > ? tweight > container->value[0] : tweight - container->weight > container->weight ) > { > send_to_char( "It won't fit under there.\n\r", ch ); > return; > } > } > else if ( tweight - container->weight > container->value[0] ) > { > send_to_char( "It won't fit.\n\r", ch ); > return; > } 739a906 > // Fix end 741,745c908,909 < /* < * note use of get_real_obj_weight < */ < if ( ( get_real_obj_weight( obj ) / obj->count ) < + ( get_real_obj_weight( container ) / container->count ) > container->value[0] ) --- > if ( container->in_room && container->in_room->max_weight > && container->in_room->max_weight < get_real_obj_weight( obj ) / obj->count + container->in_room->weight ) 770a935,938 > if ( container->level > ch->level ) > act( AT_DANGER, > "This container's level is higher than your own and will vanish along with its contents when you log out. You should remove all items from it and find a different container.", > ch, NULL, NULL, TO_CHAR ); 782a951,954 > > if ( xIS_SET( ch->in_room->room_flags, ROOM_HOUSE ) ) > save_house_by_vnum( ch->in_room->vnum ); /* House Object Saving */ > 786c958 < if ( IS_SET( ch->in_room->room_flags, ROOM_CLANSTOREROOM ) && container->carried_by == NULL ) --- > if ( xIS_SET( ch->in_room->room_flags, ROOM_CLANSTOREROOM ) && container->carried_by == NULL ) 788,791c960,970 < /* if (!char_died && !save_char ) save_char_obj(ch); */ < for ( clan = first_clan; clan; clan = clan->next ) < if ( clan->storeroom == ch->in_room->vnum ) < save_clan_storeroom( ch, clan ); --- > /* if (!char_died && !save_char ) save_char_obj(ch); > for ( clan = first_clan; clan; clan = clan->next ) > if ( clan->storeroom == ch->in_room->vnum ) > save_clan_storeroom(ch, clan); */ > for ( vault = first_vault; vault; vault = vault->next ) > if ( vault->vnum == ch->in_room->vnum ) > { > sprintf( buf, "%d", vault->vnum ); > save_storeroom( ch, buf ); > } > 839a1019,1022 > if ( container->level > ch->level ) > act( AT_DANGER, > "This container's level is higher than your own and will vanish along with its contents when you log out. You should remove all items from it and find a different container.", > ch, NULL, NULL, TO_CHAR ); 872a1056,1057 > if ( xIS_SET( ch->in_room->room_flags, ROOM_HOUSE ) ) > save_house_by_vnum( ch->in_room->vnum ); /* House Object Saving */ 876c1061 < if ( IS_SET( ch->in_room->room_flags, ROOM_CLANSTOREROOM ) && container->carried_by == NULL ) --- > if ( xIS_SET( ch->in_room->room_flags, ROOM_CLANSTOREROOM ) && container->carried_by == NULL ) 878,881c1063,1072 < /* if (!char_died && !save_char) save_char_obj(ch); */ < for ( clan = first_clan; clan; clan = clan->next ) < if ( clan->storeroom == ch->in_room->vnum ) < save_clan_storeroom( ch, clan ); --- > /* if (!char_died && !save_char) save_char_obj(ch); > for ( clan = first_clan; clan; clan = clan->next ) > if ( clan->storeroom == ch->in_room->vnum ) > save_clan_storeroom(ch, clan); */ > for ( vault = first_vault; vault; vault = vault->next ) > if ( vault->vnum == ch->in_room->vnum ) > { > sprintf( buf, "%d", vault->vnum ); > save_storeroom( ch, buf ); > } 895c1086,1087 < CLAN_DATA *clan; --- > VAULT_DATA *vault; > char buf[20]; 928c1120 < if ( IS_SET( ch->in_room->room_flags, ROOM_NODROP ) && ch != supermob ) --- > if ( xIS_SET( ch->in_room->room_flags, ROOM_NODROP ) && ch != supermob ) 950a1143,1148 > if ( ch->level < 3 && ch->gold <= 50000 ) > { > send_to_char( "You should gain more experience before throwing away gold.\n\r", ch ); > return; > } > 974,975c1172,1178 < if ( IS_SET( sysdata.save_flags, SV_DROP ) ) < save_char_obj( ch ); --- > /* > * Band-aid alert :) lets save all the time players normally > * don't drop money until I setup a save on dropgold flag > * -Shaddai > * if ( IS_SET( sysdata.save_flags, SV_DROP ) ) > */ > save_char_obj( ch ); 995a1199,1204 > if ( ch->in_room->max_weight > 0 > && ch->in_room->max_weight < get_real_obj_weight( obj ) / obj->count + ch->in_room->weight ) > { > send_to_char( "There is not enough room on the ground for that.\n\r", ch ); > return; > } 1011c1220 < if ( IS_SET( ch->in_room->room_flags, ROOM_CLANSTOREROOM ) ) --- > if ( xIS_SET( ch->in_room->room_flags, ROOM_CLANSTOREROOM ) ) 1013,1016c1222,1232 < /* if (!char_died) save_char_obj(ch); */ < for ( clan = first_clan; clan; clan = clan->next ) < if ( clan->storeroom == ch->in_room->vnum ) < save_clan_storeroom( ch, clan ); --- > /* if (!char_died) save_char_obj(ch); > for ( clan = first_clan; clan; clan = clan->next ) > if ( clan->storeroom == ch->in_room->vnum ) > save_clan_storeroom(ch, clan); */ > for ( vault = first_vault; vault; vault = vault->next ) > if ( vault->vnum == ch->in_room->vnum ) > { > sprintf( buf, "%d", vault->vnum ); > save_storeroom( ch, buf ); > } > 1036,1037c1252,1253 < if ( IS_SET( ch->in_room->room_flags, ROOM_NODROPALL ) < || IS_SET( ch->in_room->room_flags, ROOM_CLANSTOREROOM ) ) --- > if ( xIS_SET( ch->in_room->room_flags, ROOM_NODROPALL ) > || xIS_SET( ch->in_room->room_flags, ROOM_CLANSTOREROOM ) ) 1048c1264,1268 < && can_see_obj( ch, obj ) && obj->wear_loc == WEAR_NONE && can_drop_obj( ch, obj ) ) --- > && can_see_obj( ch, obj ) > && obj->wear_loc == WEAR_NONE > && can_drop_obj( ch, obj ) > && ( !ch->in_room->max_weight > || ch->in_room->max_weight > get_real_obj_weight( obj ) / obj->count + ch->in_room->weight ) ) 1084a1305,1307 > if ( xIS_SET( ch->in_room->room_flags, ROOM_HOUSE ) ) > save_house_by_vnum( ch->in_room->vnum ); /* House Object Saving */ > 1098a1322 > bool immgive; 1113a1338,1339 > immgive = FALSE; > 1148a1375,1380 > if ( victim->level == 50 && ch->level < 3 && ch->gold <= 50000 ) > { > send_to_char( "You should gain experience before giving money to more powerful characters.\n\r", ch ); > return; > } > 1154a1387 > set_char_color( AT_GOLD, victim ); 1157c1390,1394 < act( AT_ACTION, "You give $N some gold.", ch, NULL, victim, TO_CHAR ); --- > strcpy( buf, "You give " ); > strcat( buf, arg1 ); > strcat( buf, ( amount > 1 ) ? " coins" : " coin" ); > strcat( buf, " to $N." ); > act( AT_ACTION, buf, ch, NULL, victim, TO_CHAR ); 1171a1409,1411 > if ( IS_IMMORTAL( ch ) || ( IS_NPC( ch ) && xIS_SET( ch->act, ACT_IMMORTAL ) ) ) > immgive = TRUE; > 1190c1430 < if ( victim->carry_number + ( get_obj_number( obj ) / obj->count ) > can_carry_n( victim ) ) --- > if ( victim->carry_number + ( get_obj_number( obj ) / obj->count ) > can_carry_n( victim ) && !immgive ) 1196c1436 < if ( victim->carry_weight + ( get_obj_weight( obj ) / obj->count ) > can_carry_w( victim ) ) --- > if ( victim->carry_weight + ( get_obj_weight( obj ) / obj->count ) > can_carry_w( victim ) && !immgive ) 1204,1205c1444,1452 < act( AT_PLAIN, "$N can't see it.", ch, NULL, victim, TO_CHAR ); < return; --- > if ( !immgive ) > { > act( AT_PLAIN, "$N can't see it.", ch, NULL, victim, TO_CHAR ); > return; > } > else > { > act( AT_PLAIN, "$N cannot see this item - placed in inventory.", ch, NULL, victim, TO_CHAR ); > } 1236a1484 > char buf[MAX_STRING_LENGTH]; 1238a1487,1489 > if ( IS_OBJ_STAT( obj, ITEM_PERMANENT ) ) > return rNONE; > 1323a1575,1579 > if ( objcode == rOBJ_SCRAPPED && !IS_NPC( ch ) ) > { > sprintf( buf, "%s scrapped %s (vnum: %d)", ch->name, obj->short_descr, obj->pIndexData->vnum ); > log_string( buf ); > } 1340c1596 < act( AT_PLAIN, "$d: you can't carry that many items.", ch, NULL, obj->name, TO_CHAR ); --- > act( AT_PLAIN, "$d: you can't carry that many items.", ch, NULL, obj->short_descr, TO_CHAR ); 1361c1617,1624 < return TRUE; --- > /* > * Added check in case, the trigger forces them to rewear the item > * * --Shaddai > */ > if ( ( obj = get_eq_char( ch, iWear ) ) == NULL ) > return TRUE; > else > return FALSE; 1368a1632,1633 > if ( ch->stance && !stance_index[ch->stance].dual_wield ) > return FALSE; 1413a1679 > { 1418c1684 < --- > } 1465a1732,1733 > || ( IS_OBJ_STAT( obj, ITEM_ANTI_MAGE ) > && ch->class == CLASS_NEPHANDI ) 1472a1741,1759 > if ( obj->owner[0] != '\0' && !IS_NPC( ch ) && str_cmp( obj->owner, ch->name ) ) > { > /* > * Place holder for an echo > */ > act( AT_MAGIC, "You are not the owner of that item.", ch, NULL, NULL, TO_CHAR ); > act( AT_ACTION, "$n tries to use $p, but is not the owner.", ch, obj, NULL, TO_ROOM ); > act( AT_MAGIC, "You feel sick as a wrenching pain overcomes your body.", ch, NULL, NULL, TO_CHAR ); > act( AT_ACTION, "$n doubles over in pain and drops $p.", ch, obj, NULL, TO_ROOM ); > if ( obj->carried_by ) > obj_from_char( obj ); > obj_to_room( obj, ch->in_room ); > oprog_zap_trigger( ch, obj ); > ch->hit = ch->hit * .5; > if ( IS_SET( sysdata.save_flags, SV_ZAPDROP ) && !char_died( ch ) ) > save_char_obj( ch ); > return; > } > 2124a2412 > 2127,2131c2415,2416 < if ( !IS_OBJ_STAT( obj, ITEM_CLANCORPSE ) || IS_NPC( ch ) || !IS_SET( ch->pcdata->flags, PCFLAG_DEADLY ) ) < { < act( AT_PLAIN, "You cannot bury $p.", ch, obj, 0, TO_CHAR ); < return; < } --- > act( AT_PLAIN, "You cannot bury $p.", ch, obj, 0, TO_CHAR ); > return; 2133a2419,2429 > /* > if ( !CAN_WEAR(obj, ITEM_TAKE) ) > { > if ( !IS_OBJ_STAT( obj, ITEM_CLANCORPSE ) > || IS_NPC(ch) || !IS_SET( ch->pcdata->flags, PCFLAG_DEADLY ) ) > { > act( AT_PLAIN, "You cannot bury $p.", ch, obj, 0, TO_CHAR ); > return; > } > } > */ 2206c2502,2507 < if ( IS_SET( obj->magic_flags, ITEM_PKDISARMED ) && !IS_NPC( ch ) ) --- > if ( xIS_SET( ch->in_room->room_flags, ROOM_CLANSTOREROOM ) ) > { > send_to_char( "The gods would not accept such a foolish sacrifice.\n\r", ch ); > return; > } > if ( IS_SET( obj->magic_flags, ITEM_PKDISARMED ) && !IS_NPC( ch ) && !IS_IMMORTAL( ch ) ) 2210c2511 < if ( ch->level - obj->value[5] > 5 || obj->value[5] - ch->level > 5 ) --- > if ( !is_name( ch->name, obj->action_desc ) && !IS_IMMORTAL( ch ) ) 2231c2532,2535 < strcpy( name, "Thoric" ); --- > static char *god_name_table[] = { > "Thoric", "Nivek", "Altrag", "Darrek", "Lascivias", "Moonbeam", "Dria" > }; > strcpy( name, god_name_table[number_range( 0, 6 )] ); 2235a2540 > 2238c2543,2550 < sprintf( buf, "$n sacrifices $p to %s.", name ); --- > if ( obj->item_type == ITEM_PAPER ) > { > sprintf( log_buf, "%s sacrificed note: %s", ch->name, obj->short_descr ); > log_string_plus( log_buf, LOG_ALL, 65 ); > sprintf( buf, "$n sacrifices a note to %s.", name ); > } > else > sprintf( buf, "$n sacrifices $p to %s.", name ); 2240c2552,2554 < oprog_sac_trigger( ch, obj ); --- > > if ( obj->item_type != ITEM_PAPER ) > oprog_sac_trigger( ch, obj ); 2241a2556,2558 > { > if ( xIS_SET( ch->in_room->room_flags, ROOM_HOUSE ) ) > save_house_by_vnum( ch->in_room->vnum ); /* Prevent House Object Duplication */ 2242a2560 > } 2244a2563,2569 > /* > * Separate again. There was a problem here with sac_progs in that if the > * object respawned a copy of itself, it would sometimes link it to the > * one that was being extracted, resulting in them both getting that evil > * extraction :) -- Alty > */ > separate_obj( obj ); 2245a2571,2573 > if ( xIS_SET( ch->in_room->room_flags, ROOM_HOUSE ) ) > save_house_by_vnum( ch->in_room->vnum ); /* Prevent House Object Duplication */ > 2431c2759 < * Save items in a clan storage room -Scryn & Thoric --- > * Save items in a clan storage room -Rewritten by Edmond 2433c2761 < void save_clan_storeroom( CHAR_DATA * ch, CLAN_DATA * clan ) --- > void save_storeroom( CHAR_DATA * ch, char *vnum ) 2440c2768 < if ( !clan ) --- > if ( !vnum ) 2442c2770 < bug( "save_clan_storeroom: Null clan pointer!", 0 ); --- > bug( "save_storeroom: Null vnum pointer!", 0 ); 2448c2776 < bug( "save_clan_storeroom: Null ch pointer!", 0 ); --- > bug( "save_storeroom: Null ch pointer!", 0 ); 2452c2780,2781 < sprintf( filename, "%s%s.vault", CLAN_DIR, clan->filename ); --- > sprintf( filename, "%s%s.vault", VAULT_DIR, vnum ); > 2455c2784 < bug( "save_clan_storeroom: fopen", 0 ); --- > bug( "save_storeroom: fopen", 0 ); 2464c2793 < fwrite_obj( ch, contents, fp, 0, OS_CARRY ); --- > fwrite_obj( ch, contents, fp, 0, OS_VAULT ); 2476a2806 > NOAUCTION_DATA *noauc; 2639a2970 > { 2661c2992 < --- > } 2662a2994 > { 2702c3034 < if ( newbet < ( auction->bet + 10000 ) ) --- > if ( ( newbet < auction->bet ) || ( newbet < ( auction->bet + 10000 ) ) ) 2745,2746c3077 < < sprintf( buf, "A bid of %s gold has been received on %s.\n\r", num_punct( newbet ), --- > sprintf( buf, "A bid of %s gold has been received on %s.", num_punct( newbet ), 2758c3089 < --- > } 2770a3102,3116 > for ( noauc = first_noauc; noauc; noauc = noauc->next ) > { > if ( obj->pIndexData->vnum == noauc->vnum && !IS_IMMORTAL( ch ) ) > { > send_to_char( "That item cannot be auctioned.\n\r", ch ); > return; > } > } > > if ( obj->item_type != obj->pIndexData->item_type ) > { > send_to_char( "This object is too modified to auction. Please contact an immortal.\n\r", ch ); > return; > } > 2776a3123,3134 > if ( xIS_SET( obj->extra_flags, ITEM_CLANOBJECT ) ) > { > send_to_char( "You can't auction clan items.\n\r", ch ); > return; > } > > if ( IS_OBJ_STAT( obj, ITEM_PERMANENT ) ) > { > send_to_char( "This item cannot leave your possession.\n\r", ch ); > return; > } > 2818a3177 > case ITEM_PAPER: 2822d3180 < case ITEM_CONTAINER: 2916c3274 < if ( IS_SET( obj->in_room->room_flags, ROOM_NOFLOOR ) --- > if ( xIS_SET( obj->in_room->room_flags, ROOM_NOFLOOR ) 2952c3310 < if ( !IS_SET( obj->in_room->room_flags, ROOM_NOFLOOR ) && through ) --- > if ( !xIS_SET( obj->in_room->room_flags, ROOM_NOFLOOR ) && through ) 3133,3138d3490 < if ( IS_NPC( ch ) ) < { < send_to_char( "Huh?\n\r", ch ); < return; < } <