Changeset 387
- Timestamp:
- 07/27/07 18:26:04 (1 year ago)
- Files:
-
- branches/angband-3.0.8/src/cmd0.c (modified) (1 diff)
- branches/angband-3.0.8/src/cmd2.c (modified) (1 diff)
- branches/angband-3.0.8/src/cmds.h (modified) (1 diff)
- branches/angband-3.0.8/src/defines.h (modified) (1 diff)
- branches/angband-3.0.8/src/externs.h (modified) (1 diff)
- branches/angband-3.0.8/src/object1.c (modified) (1 diff)
- branches/angband-3.0.8/src/squelch.c (modified) (2 diffs)
- branches/angband-3.0.8/src/tables.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/angband-3.0.8/src/cmd0.c
r385 r387 108 108 { "Drop an item", 'd', do_cmd_drop }, 109 109 { "Destroy an item", 'k', do_cmd_destroy }, 110 { "Mark an item as squelch", 'K', do_cmd_mark_squelch }, 110 111 { "Examine an item", 'I', do_cmd_observe }, 111 112 { "Inscribe an object", '{', do_cmd_inscribe }, branches/angband-3.0.8/src/cmd2.c
r385 r387 2979 2979 drop_near(i_ptr, j, y, x); 2980 2980 } 2981 2982 2983 /* 2984 * See if one can squelch a given kind of item. 2985 */ 2986 static bool squelchable_hook(const object_type *o_ptr) 2987 { 2988 object_kind *k_ptr = &k_info[o_ptr->k_idx]; 2989 2990 /* No point in double-squelching things */ 2991 if (k_ptr->squelch) return FALSE; 2992 2993 /* Don't squelch bad tvals */ 2994 if (!squelch_tval(o_ptr->tval)) return FALSE; 2995 2996 /* Only allow if aware */ 2997 return object_aware_p(o_ptr); 2998 } 2999 3000 3001 3002 /* 3003 * Mark item as "squelch". 3004 */ 3005 void do_cmd_mark_squelch() 3006 { 3007 const char *q = "Squelch which item kind? "; 3008 const char *s = "You have nothing you can squelch."; 3009 3010 object_type *o_ptr; 3011 object_kind *k_ptr; 3012 int item; 3013 3014 /* Get an item */ 3015 item_tester_hook = squelchable_hook; 3016 if (!get_item(&item, q, s, (USE_INVEN | USE_FLOOR))) return; 3017 3018 /* Get the object */ 3019 if (item >= 0) 3020 o_ptr = &inventory[item]; 3021 else 3022 o_ptr = &o_list[0 - item]; 3023 3024 /* Get object kind */ 3025 k_ptr = &k_info[o_ptr->k_idx]; 3026 3027 /* Set squelch flag */ 3028 k_ptr->squelch = TRUE; 3029 } branches/angband-3.0.8/src/cmds.h
r293 r387 27 27 extern void do_cmd_fire(void); 28 28 extern void do_cmd_throw(void); 29 extern void do_cmd_mark_squelch(void); 29 30 30 31 /* cmd3.c */ branches/angband-3.0.8/src/defines.h
r354 r387 2422 2422 #define OPT_show_piles 67 2423 2423 #define OPT_center_player 68 2424 2425 #define OPT_auto_more 71 2424 #define OPT_auto_more 71 2426 2425 #define OPT_hp_changes_color 74 2427 2426 #define OPT_hide_squelchable 75 2427 #define OPT_squelch_worthless 76 2428 2428 #define OPT_mouse_movement 77 2429 2429 branches/angband-3.0.8/src/externs.h
r357 r387 600 600 void autoinscribe_pack(void); 601 601 602 bool squelch_tval(int tval); 602 603 bool squelch_item_ok(const object_type *o_ptr); 603 604 bool squelch_hide_item(object_type *o_ptr); branches/angband-3.0.8/src/object1.c
r359 r387 759 759 760 760 /* Hack -- mark-to-squelch worthless items XXX */ 761 if (!k_ptr->everseen && aware )761 if (!k_ptr->everseen && aware && OPTION(squelch_worthless)) 762 762 { 763 763 if (object_value(o_ptr) == 0) branches/angband-3.0.8/src/squelch.c
r357 r387 313 313 314 314 /* 315 * Determines whether a tval is eligable for sval-squelch. 316 */ 317 bool squelch_tval(int tval) 318 { 319 size_t i; 320 321 /* Only squelch if the tval's allowed */ 322 for (i = 0; i < N_ELEMENTS(sval_dependent); i++) 323 { 324 if (tval == sval_dependent[i].tval) 325 return TRUE; 326 } 327 328 return FALSE; 329 } 330 331 332 /* 315 333 * Determines if an object is eligable for squelching. 316 334 */ … … 342 360 if (k_ptr->squelch && (k_ptr->flavor == 0 || k_ptr->aware)) 343 361 { 344 /* Only squelch if the tval's allowed */ 345 for (i = 0; i < N_ELEMENTS(sval_dependent); i++) 346 { 347 if (k_info[o_ptr->k_idx].tval == sval_dependent[i].tval) 348 return TRUE; 349 } 362 if (squelch_tval(k_info[o_ptr->k_idx].tval)) 363 return TRUE; 350 364 } 351 365 branches/angband-3.0.8/src/tables.c
r331 r387 1473 1473 "hp_changes_color", /* OPT_hp_changes_color */ 1474 1474 "hide_squelchable", /* OPT_hide_squelchable */ 1475 NULL, /* xxx*/1475 "squelch_worthless", /* OPT_squelch_worthless */ 1476 1476 "mouse_movement", /* OPT_mouse_movement */ 1477 1477 NULL, /* xxx */ … … 1737 1737 "Player color indicates low hit points", /* OPT_hp_changes_color */ 1738 1738 "Hide items set as squelchable", /* OPT_hide_squelchable */ 1739 NULL, /* xxx*/1739 "Automatically squelch worthless items", /* OPT_squelch_worthless */ 1740 1740 "Allow mouse clicks to move the player", /* OPT_mouse_movement */ 1741 1741 NULL, /* xxx */ … … 2001 2001 FALSE, /* OPT_hp_changes_color */ 2002 2002 FALSE, /* OPT_hide_squelchable */ 2003 FALSE, /* xxx*/2003 FALSE, /* OPT_squelch_worthless */ 2004 2004 FALSE, /* OPT_mouse_movement */ 2005 2005 FALSE, /* xxx */ … … 2198 2198 OPT_pickup_detail, 2199 2199 OPT_hide_squelchable, 2200 OPT_squelch_worthless, 2200 2201 OPT_easy_alter, 2201 2202 OPT_easy_open, 2202 2203 OPT_mouse_movement, 2203 OPT_NONE,2204 2204 OPT_NONE, 2205 2205 OPT_NONE,
