more followup (trunk only)
make the handling recognition use an int instead of string.
This commit is contained in:
@@ -17,8 +17,8 @@
|
||||
#define C(n)
|
||||
#endif
|
||||
|
||||
char *symset = 0, *symhandling = 0; /* from drawing.c */
|
||||
char *roguesymset = 0, *roguehandling = 0; /* from drawing.c */
|
||||
char *symset = 0, *roguesymset = 0;
|
||||
int symhandling = 0, roguehandling = 0;
|
||||
|
||||
uchar oc_syms[MAXOCLASSES] = DUMMY; /* the current object display symbols */
|
||||
uchar showsyms[MAXPCHARS] = DUMMY; /* the current feature display symbols */
|
||||
@@ -380,14 +380,14 @@ int nondefault;
|
||||
* the Is_Roguelevel checks in those macros.
|
||||
*/
|
||||
#ifdef PC9800
|
||||
if (symhandling && !strcmpi(symhandling,"IBM")
|
||||
if (symhandling == H_IBM
|
||||
&& ibmgraphics_mode_callback)
|
||||
(*ibmgraphics_mode_callback)();
|
||||
else if (!symset && ascgraphics_mode_callback)
|
||||
(*ascgraphics_mode_callback)();
|
||||
#endif
|
||||
#ifdef TERMLIB
|
||||
if (symhandling && !strcmp(symhandling,"DEC")
|
||||
if (symhandling == H_DEC
|
||||
&& decgraphics_mode_callback)
|
||||
(*decgraphics_mode_callback)();
|
||||
#endif
|
||||
@@ -538,6 +538,20 @@ int val;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* If you are adding code somewhere to be able to recognize
|
||||
* particular types of symset "handling", define a
|
||||
* H_XXX macro in include/rm.h and add the name
|
||||
* to this array at the matching offset.
|
||||
*/
|
||||
const char *known_handling[] = {
|
||||
"UNKNOWN", /* H_UNK */
|
||||
"IBM", /* H_IBM */
|
||||
"DEC", /* H_DEC */
|
||||
(const char *)0,
|
||||
};
|
||||
|
||||
|
||||
struct symparse loadsyms[] = {
|
||||
{SYM_CONTROL, 0, "start"},
|
||||
{SYM_CONTROL, 0, "begin"},
|
||||
|
||||
58
src/files.c
58
src/files.c
@@ -2422,8 +2422,9 @@ read_wizkit()
|
||||
#endif /*WIZARD*/
|
||||
|
||||
#ifdef ASCIIGRAPH
|
||||
extern struct symparse loadsyms[]; /* drawing.c */
|
||||
extern struct textlist *symset_list; /* options.c */
|
||||
extern struct symparse loadsyms[]; /* drawing.c */
|
||||
extern const char *known_handling[]; /* drawing.c */
|
||||
static int symset_count = 0; /* for pick-list building only */
|
||||
static boolean chosen_symset_start = FALSE, chosen_symset_end = FALSE;
|
||||
|
||||
@@ -2560,12 +2561,15 @@ boolean rogueflag;
|
||||
if (!strcmpi(bufp, symsetname)) { /* desired one? */
|
||||
chosen_symset_start = TRUE;
|
||||
#ifdef REINCARNATION
|
||||
if (rogueflag)
|
||||
if (rogueflag) {
|
||||
init_r_symbols();
|
||||
else
|
||||
roguehandling = H_UNK;
|
||||
}
|
||||
#endif
|
||||
if (!rogueflag) {
|
||||
init_l_symbols();
|
||||
free_symhandling(rogueflag);
|
||||
symhandling = H_UNK;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
@@ -2594,42 +2598,32 @@ boolean rogueflag;
|
||||
return 1;
|
||||
}
|
||||
|
||||
STATIC_OVL void
|
||||
free_symhandling(rogueflag)
|
||||
boolean rogueflag;
|
||||
{
|
||||
if (rogueflag) {
|
||||
#ifdef REINCARNATION
|
||||
if (roguehandling) {
|
||||
free((genericptr_t)roguehandling);
|
||||
roguehandling = (char *)0;
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
if (symhandling) {
|
||||
free((genericptr_t)symhandling);
|
||||
symhandling = (char *)0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
STATIC_OVL void
|
||||
set_symhandling(handling, rogueflag)
|
||||
char *handling;
|
||||
boolean rogueflag;
|
||||
{
|
||||
char *new_handling;
|
||||
int i = 0;
|
||||
|
||||
free_symhandling(rogueflag);
|
||||
if (!handling) return;
|
||||
new_handling = (char *)alloc(strlen(handling)+1);
|
||||
Strcpy(new_handling, handling);
|
||||
#ifdef REINCARNATION
|
||||
if (rogueflag)
|
||||
roguehandling = new_handling;
|
||||
if (rogueflag) roguehandling = H_UNK;
|
||||
#endif
|
||||
if (!rogueflag)
|
||||
symhandling = new_handling;
|
||||
if (!rogueflag) symhandling = H_UNK;
|
||||
while (known_handling[i]) {
|
||||
if (!strcmpi(known_handling[i], handling)) {
|
||||
#ifdef REINCARNATION
|
||||
if (rogueflag) {
|
||||
roguehandling = i;
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
if (!rogueflag) {
|
||||
symhandling = i;
|
||||
return;
|
||||
}
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
#endif /*ASCIIGRAPH*/
|
||||
|
||||
|
||||
@@ -50,9 +50,9 @@ int explcolors[] = {
|
||||
|
||||
#ifdef ROGUE_COLOR
|
||||
# if defined(USE_TILES) && defined(MSDOS)
|
||||
#define HAS_ROGUE_IBM_GRAPHICS (ROGUEHANDLING("IBM") && !iflags.grmode)
|
||||
#define HAS_ROGUE_IBM_GRAPHICS (ROGUEHANDLING(H_IBM) && !iflags.grmode)
|
||||
# else
|
||||
#define HAS_ROGUE_IBM_GRAPHICS (ROGUEHANDLING("IBM"))
|
||||
#define HAS_ROGUE_IBM_GRAPHICS (ROGUEHANDLING(H_IBM))
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user