}
-/*
- * Initialize auto-picker preference
- */
#define MAX_AUTOPICK_DEFAULT 200
-void init_autopicker(void)
+/*
+ * Initialize the autopick
+ */
+static void init_autopick(void)
{
static const char easy_autopick_inscription[] = "(:=g";
autopick_type entry;
}
+#define PT_DEFAULT 0
+#define PT_WITH_PNAME 1
+
+/*
+ * Get file name for autopick preference
+ */
+static cptr pickpref_filename(int filename_mode)
+{
+#ifdef JP
+ static const char namebase[] = "picktype";
+#else
+ static const char namebase[] = "pickpref";
+#endif
+
+ switch (filename_mode)
+ {
+ case PT_DEFAULT:
+ return format("%s.prf", namebase);
+
+ case PT_WITH_PNAME:
+ return format("%s-%s.prf", namebase, player_name);
+
+ default:
+ return NULL;
+ }
+}
+
+
+/*
+ * Load an autopick preference file
+ */
+void autopick_load_pref(bool disp_mes)
+{
+ char buf[80];
+ errr err;
+
+ /* Free old entries */
+ init_autopick();
+
+ /* Try a filename with player name */
+ my_strcpy(buf, pickpref_filename(PT_WITH_PNAME), sizeof(buf));
+
+ /* Load the file */
+ err = process_autopick_file(buf);
+
+ if (err == 0 && disp_mes)
+ {
+ /* Success */
+#ifdef JP
+ msg_format("%s¤òÆɤ߹þ¤ß¤Þ¤·¤¿¡£", buf);
+#else
+ msg_format("Loaded '%s'.", buf);
+#endif
+ }
+
+ /* No file found */
+ if (0 > err)
+ {
+ /* Use default name */
+ my_strcpy(buf, pickpref_filename(PT_DEFAULT), sizeof(buf));
+
+ /* Load the file */
+ err = process_autopick_file(buf);
+
+ if (err == 0 && disp_mes)
+ {
+ /* Success */
+#ifdef JP
+ msg_format("%s¤òÆɤ߹þ¤ß¤Þ¤·¤¿¡£", buf);
+#else
+ msg_format("Loaded '%s'.", buf);
+#endif
+ }
+ }
+
+ if (err && disp_mes)
+ {
+ /* Failed */
+#ifdef JP
+ msg_print("¼«Æ°½¦¤¤ÀßÄê¥Õ¥¡¥¤¥ë¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£");
+#else
+ msg_print("Failed to reload autopick preference.");
+#endif
+ }
+}
+
+
/*
* Add one line to autopick_list[]
*/
/*
* Process line for auto picker/destroyer.
*/
-errr process_pickpref_file_line(char *buf)
+errr process_autopick_file_command(char *buf)
{
autopick_type an_entry, *entry = &an_entry;
int i;
/*
* Auto-destroy marked item
*/
-static void delayed_auto_destroy_aux(int item)
+static void autopick_delayed_alter_aux(int item)
{
object_type *o_ptr;
/*
* Auto-destroy marked items in inventry and on floor
*/
-void delayed_auto_destroy(void)
+void autopick_delayed_alter(void)
{
int item;
* skipping after inven_item_optimize()
*/
for (item = INVEN_TOTAL - 1; item >= 0 ; item--)
- delayed_auto_destroy_aux(item);
+ autopick_delayed_alter_aux(item);
/* Scan the pile of objects */
item = cave[py][px].o_idx;
while (item)
{
int next = o_list[item].next_o_idx;
- delayed_auto_destroy_aux(-item);
+ autopick_delayed_alter_aux(-item);
item = next;
}
}
* Auto-destroyer works only on inventory or on floor stack only when
* requested.
*/
-void auto_do_item(int item, bool destroy)
+void autopick_alter_item(int item, bool destroy)
{
object_type *o_ptr;
int idx;
/*
* Automatically pickup/destroy items in this grid.
*/
-void auto_pickup_items(cave_type *c_ptr)
+void autopick_pickup_items(cave_type *c_ptr)
{
s16b this_o_idx, next_o_idx = 0;
}
-#define PT_DEFAULT 0
-#define PT_WITH_PNAME 1
-
-/*
- * Get file name for autopick preference
- */
-static cptr pickpref_filename(int filename_mode)
-{
-#ifdef JP
- static const char namebase[] = "picktype";
-#else
- static const char namebase[] = "pickpref";
-#endif
-
- switch (filename_mode)
- {
- case PT_DEFAULT:
- return format("%s.prf", namebase);
-
- case PT_WITH_PNAME:
- return format("%s-%s.prf", namebase, player_name);
-
- default:
- return NULL;
- }
-}
-
-
static const char autoregister_header[] = "?:$AUTOREGISTER";
/*
/*
* Automatically register an auto-destroy preference line
*/
-bool add_auto_register(object_type *o_ptr)
+bool autopick_autoregister(object_type *o_ptr)
{
char buf[1024];
char pref_file[1024];
update_playtime();
/* Free old entries */
- init_autopicker();
+ init_autopick();
/* Command Description of the 'Last Destroyed Item' */
if (autopick_last_destroyed_object.k_idx)
kill_yank_chain(tb);
/* Reload autopick pref */
- process_pickpref_file(buf);
+ process_autopick_file(buf);
/* HACK -- reset start_time so that playtime is not increase while edit */
start_time = time(NULL);
#endif
/* Auto-inscription */
- auto_do_item(item, FALSE);
+ autopick_alter_item(item, FALSE);
/* Update the gold display */
building_prt_gold();
identify_item(o_ptr);
/* Auto-inscription */
- auto_do_item(i, FALSE);
+ autopick_alter_item(i, FALSE);
}
/* Recharge */
bool old_known = identify_item(o_ptr);
/* Auto-inscription/destroy */
- auto_do_item(slot, (bool)(destroy_identify && !old_known));
+ autopick_alter_item(slot, (bool)(destroy_identify && !old_known));
/* If it is destroyed, don't pick it up */
if (o_ptr->marked & OM_AUTODESTROY) return;
handle_stuff();
/* Automatically pickup/destroy/inscribe items */
- auto_pickup_items(c_ptr);
+ autopick_pickup_items(c_ptr);
#ifdef ALLOW_EASY_FLOOR
/* Pick up objects */
else
{
- /* Hack - some objects were handled in auto_pickup_items(). */
+ /* Hack - some objects were handled in autopick_pickup_items(). */
if (o_ptr->marked & OM_NOMSG)
{
/* Clear the flag. */
identify_item(o_ptr);
/* Auto-inscription */
- auto_do_item(item, FALSE);
+ autopick_alter_item(item, FALSE);
}
/* Take a turn */
if (i == 'a' || i == 'A')
{
/* Add an auto-destroy preference line */
- if (add_auto_register(o_ptr))
+ if (autopick_autoregister(o_ptr))
{
/* Auto-destroy it */
- auto_do_item(item, TRUE);
+ autopick_alter_item(item, TRUE);
}
/* The object is already destroyed. */
(void)process_pref_file_command(buf);
}
-void do_cmd_pickpref(void)
+void do_cmd_reload_autopick(void)
{
char buf[80];
errr err;
#ifdef JP
- if(!get_check("¼«Æ°½¦¤¤ÀßÄê¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤·¤Þ¤¹¤«? ")) return;
+ if (!get_check("¼«Æ°½¦¤¤ÀßÄê¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤·¤Þ¤¹¤«? ")) return;
#else
- if(!get_check("Reload auto-pick preference file? ")) return;
+ if (!get_check("Reload auto-pick preference file? ")) return;
#endif
- /* Free old entries */
- init_autopicker();
-
- /* ¥¥ã¥éËè¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤ÎÆɤ߹þ¤ß */
-#ifdef JP
- sprintf(buf, "picktype-%s.prf", player_name);
-#else
- sprintf(buf, "pickpref-%s.prf", player_name);
-#endif
- err = process_pickpref_file(buf);
-
- if(err == 0)
- {
-#ifdef JP
- msg_format("%s¤òÆɤ߹þ¤ß¤Þ¤·¤¿¡£", buf);
-#else
- msg_format("loaded '%s'.", buf);
-#endif
- }
-
- /* ¶¦Ä̤ÎÀßÄê¥Õ¥¡¥¤¥ëÆɤ߹þ¤ß */
-
- /* Process 'pick????.prf' if 'pick????-<name>.prf' doesn't exist */
- if (0 > err)
- {
-#ifdef JP
- err = process_pickpref_file("picktype.prf");
-#else
- err = process_pickpref_file("pickpref.prf");
-#endif
-
- if(err == 0)
- {
-#ifdef JP
- msg_print("picktype.prf¤òÆɤ߹þ¤ß¤Þ¤·¤¿¡£");
-#else
- msg_print("loaded 'pickpref.prf'.");
-#endif
- }
- }
-
-
-#ifdef JP
- if(err) msg_print("¼«Æ°½¦¤¤ÀßÄê¥Õ¥¡¥¤¥ë¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£");
-#else
- if(err) msg_print("Failed to reload autopick preference.");
-#endif
+ /* Load the file with messages */
+ autopick_load_pref(TRUE);
}
#ifdef ALLOW_MACROS
* How object is marked (flags in object_type.mark)
* OM_FOUND --- original boolean flag
* OM_NOMSG --- temporary flag to suppress messages which were
- * already printed in auto_pickup_items().
+ * already printed in autopick_pickup_items().
*/
#define OM_FOUND 0x01 /* original boolean flag */
#define OM_NOMSG 0x02 /* temporary flag to suppress messages */
o_ptr->feeling = feel;
/* Auto-inscription/destroy */
- auto_do_item(slot, destroy_feeling);
+ autopick_alter_item(slot, destroy_feeling);
/* Combine / Reorder the pack (later) */
p_ptr->notice |= (PN_COMBINE | PN_REORDER);
}
/* Auto-inscription/destroy */
- auto_do_item(item, (bool)(okay && destroy_feeling));
+ autopick_alter_item(item, (bool)(okay && destroy_feeling));
/* Something happened */
return (TRUE);
case '$':
{
- do_cmd_pickpref();
+ do_cmd_reload_autopick();
break;
}
/* Process that file */
process_pref_file(buf);
- /* Free old entries */
- init_autopicker();
-
-#ifdef JP
- sprintf(buf, "picktype-%s.prf", player_base);
-#else
- sprintf(buf, "pickpref-%s.prf", player_base);
-#endif
-
- err = process_pickpref_file(buf);
-
- /* Process 'pick????.prf' if 'pick????-<name>.prf' doesn't exist */
- if (0 > err)
- {
-#ifdef JP
- process_pickpref_file("picktype.prf");
-#else
- process_pickpref_file("pickpref.prf");
-#endif
- }
-
/* Access the "realm 1" pref file */
if (p_ptr->realm1 != REALM_NONE)
{
/* Process that file */
process_pref_file(buf);
}
+
+
+ /* Load an autopick preference file */
+ autopick_load_pref(FALSE);
}
extern bool use_menu;
/* autopick.c */
-extern void init_autopicker(void);
-extern errr process_pickpref_file_line(char *buf);
+extern void autopick_load_pref(bool disp_mes);
+extern errr process_autopick_file_command(char *buf);
extern cptr autopick_line_from_entry(autopick_type *entry);
extern int is_autopick(object_type *o_ptr);
-extern void auto_do_item(int item, bool destroy);
-extern void delayed_auto_destroy(void);
-extern void auto_pickup_items(cave_type *c_ptr);
-extern bool add_auto_register(object_type *o_ptr);
+extern void autopick_alter_item(int item, bool destroy);
+extern void autopick_delayed_alter(void);
+extern void autopick_pickup_items(cave_type *c_ptr);
+extern bool autopick_autoregister(object_type *o_ptr);
extern void do_cmd_edit_autopick(void);
/* birth.c */
extern void do_cmd_options_aux(int page, cptr info);
extern void do_cmd_options(void);
extern void do_cmd_pref(void);
-extern void do_cmd_pickpref(void);
+extern void do_cmd_reload_autopick(void);
extern void do_cmd_macros(void);
extern void do_cmd_visuals(void);
extern void do_cmd_colors(void);
extern errr process_pref_file_command(char *buf);
extern cptr process_pref_file_expr(cptr *sp, char *fp);
extern errr process_pref_file(cptr name);
-extern errr process_pickpref_file(cptr name);
+extern errr process_autopick_file(cptr name);
extern errr process_histpref_file(cptr name);
extern void print_equippy(void);
extern errr check_time_init(void);
#define PREF_TYPE_NORMAL 0
-#define PREF_TYPE_PICKPREF 1
+#define PREF_TYPE_AUTOPICK 1
#define PREF_TYPE_HISTPREF 2
/*
/* Process that file if allowed */
switch (preftype)
{
- case PREF_TYPE_PICKPREF:
- (void)process_pickpref_file(buf + 2);
+ case PREF_TYPE_AUTOPICK:
+ (void)process_autopick_file(buf + 2);
break;
case PREF_TYPE_HISTPREF:
(void)process_histpref_file(buf + 2);
/* This is not original pref line... */
if (err)
{
- if (preftype != PREF_TYPE_PICKPREF)
+ if (preftype != PREF_TYPE_AUTOPICK)
break;
- err = process_pickpref_file_line(buf);
+ err = process_autopick_file_command(buf);
}
}
/*
* Process file for auto picker/destroyer.
*/
-errr process_pickpref_file(cptr name)
+errr process_autopick_file(cptr name)
{
char buf[1024];
/* Build the filename */
path_build(buf, sizeof(buf), ANGBAND_DIR_USER, name);
- err = process_pref_file_aux(buf, PREF_TYPE_PICKPREF);
+ err = process_pref_file_aux(buf, PREF_TYPE_AUTOPICK);
/* Result */
return (err);
identify_item(o_ptr);
/* Auto-inscription */
- auto_do_item((-this_o_idx), FALSE);
+ autopick_alter_item((-this_o_idx), FALSE);
break;
}
identify_item(o_ptr);
/* Auto-inscription */
- auto_do_item(i, FALSE);
+ autopick_alter_item(i, FALSE);
}
}
}
/* Auto-inscription/destroy */
- auto_do_item(item, (bool)(destroy_identify && !old_known));
+ autopick_alter_item(item, (bool)(destroy_identify && !old_known));
/* Something happened */
return (TRUE);
(void)screen_object(o_ptr, TRUE);
/* Auto-inscription/destroy */
- auto_do_item(item, (bool)(destroy_identify && !old_known));
+ autopick_alter_item(item, (bool)(destroy_identify && !old_known));
/* Success */
return (TRUE);
#endif
/* Auto-inscription */
- auto_do_item(item_new, FALSE);
+ autopick_alter_item(item_new, FALSE);
/* Now, reduce the original stack's pval. */
if ((o_ptr->tval == TV_ROD) || (o_ptr->tval == TV_WAND))
/* If items remain, auto-inscribe before optimizing */
if (o_ptr->number > 0)
- auto_do_item(item, FALSE);
+ autopick_alter_item(item, FALSE);
inven_item_optimize(item);
if (p_ptr->notice & (PN_AUTODESTROY))
{
p_ptr->notice &= ~(PN_AUTODESTROY);
- delayed_auto_destroy();
+ autopick_delayed_alter();
}
/* Combine the pack */