some symbol tweaks
A few symbol-related modifications: - fulfill a request from a blind player to allow them to specify a unique/recognizable character for all pets and/or the player in the config file for use when using a screen reader (S_player_override, S_pet_override). Requires sysconf setting ACCESSIBILITY to be set to have an effect, although they can still be specified in the config file. - Config file SYMBOLS entries were not working properly on the rogue level. Allow ROGUESYMBOLS as well as SYMBOLS to be specified in the config file independently. - When values are moved into showsyms[], the overriding SYMBOLS or ROGUESYMBOLS entry from the config file is used if there is one; if there is no overriding value for a particular symbol, the loaded symset value is used; if there is no symset entry loaded for the symbol then a default symbol is used.
This commit is contained in:
@@ -584,15 +584,19 @@ E int FDECL(def_char_to_monclass, (CHAR_P));
|
||||
#if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C)
|
||||
E void FDECL(switch_symbols, (int));
|
||||
E void FDECL(assign_graphics, (int));
|
||||
E void NDECL(init_r_symbols);
|
||||
E void NDECL(init_symbols);
|
||||
E void NDECL(update_bouldersym);
|
||||
E void NDECL(init_showsyms);
|
||||
E void NDECL(init_l_symbols);
|
||||
E void NDECL(init_primary_symbols);
|
||||
E void NDECL(init_rogue_symbols);
|
||||
E void NDECL(init_ov_primary_symbols);
|
||||
E void NDECL(init_ov_rogue_symbols);
|
||||
E void FDECL(clear_symsetentry, (int, BOOLEAN_P));
|
||||
E void FDECL(update_l_symset, (struct symparse *, int));
|
||||
E void FDECL(update_r_symset, (struct symparse *, int));
|
||||
E void FDECL(update_primary_symset, (struct symparse *, int));
|
||||
E void FDECL(update_rogue_symset, (struct symparse *, int));
|
||||
E void FDECL(update_ov_primary_symset, (struct symparse *, int));
|
||||
E void FDECL(update_ov_rogue_symset, (struct symparse *, int));
|
||||
E boolean FDECL(cursed_object_at, (int, int));
|
||||
E nhsym FDECL(get_othersym, (int, int));
|
||||
|
||||
/* ### dungeon.c ### */
|
||||
|
||||
@@ -1781,7 +1785,7 @@ E int FDECL(add_autopickup_exception, (const char *));
|
||||
E void NDECL(free_autopickup_exceptions);
|
||||
E int FDECL(load_symset, (const char *, int));
|
||||
E void NDECL(free_symsets);
|
||||
E boolean FDECL(parsesymbols, (char *));
|
||||
E boolean FDECL(parsesymbols, (char *, int));
|
||||
E struct symparse *FDECL(match_sym, (char *));
|
||||
E void NDECL(set_playmode);
|
||||
E int FDECL(sym_val, (const char *));
|
||||
|
||||
10
include/rm.h
10
include/rm.h
@@ -266,7 +266,9 @@ struct symparse {
|
||||
/* misc symbol definitions */
|
||||
#define SYM_BOULDER 0
|
||||
#define SYM_INVISIBLE 1
|
||||
#define MAXOTHER 2
|
||||
#define SYM_PET_OVERRIDE 2
|
||||
#define SYM_PLAYER_OVERRIDE 3
|
||||
#define MAXOTHER 4
|
||||
|
||||
/* linked list of symsets and their characteristics */
|
||||
struct symsetentry {
|
||||
@@ -306,8 +308,10 @@ extern const struct symdef defsyms[MAXPCHARS]; /* defaults */
|
||||
extern const struct symdef def_warnsyms[WARNCOUNT];
|
||||
extern int currentgraphics; /* from drawing.c */
|
||||
extern nhsym showsyms[];
|
||||
extern nhsym l_syms[];
|
||||
extern nhsym r_syms[];
|
||||
extern nhsym primary_syms[];
|
||||
extern nhsym rogue_syms[];
|
||||
extern nhsym ov_primary_syms[];
|
||||
extern nhsym ov_rogue_syms[];
|
||||
|
||||
extern struct symsetentry symset[NUM_GRAPHICS]; /* from drawing.c */
|
||||
#define SYMHANDLING(ht) (symset[currentgraphics].handling == (ht))
|
||||
|
||||
@@ -41,6 +41,9 @@ struct sysopt {
|
||||
char *greppath;
|
||||
int panictrace_gdb;
|
||||
int panictrace_libc;
|
||||
|
||||
/* enable accessibility options */
|
||||
int accessibility;
|
||||
};
|
||||
|
||||
extern struct sysopt sysopt;
|
||||
|
||||
Reference in New Issue
Block a user