Merge branch 'custom-swallow-glyphs' of https://github.com/ars3niy/NetHack into NetHack-3.7
This commit is contained in:
@@ -725,33 +725,12 @@ enum glyph_offsets {
|
|||||||
&& (glyph) < (GLYPH_CMAP_C_OFF + ((S_goodpos - S_digbeam) + 1)))
|
&& (glyph) < (GLYPH_CMAP_C_OFF + ((S_goodpos - S_digbeam) + 1)))
|
||||||
|
|
||||||
/* final MAXPCHARS is legal array index because of trailing fencepost entry */
|
/* final MAXPCHARS is legal array index because of trailing fencepost entry */
|
||||||
#define glyph_to_cmap(glyph) \
|
int glyph_to_cmap(int glpyh);
|
||||||
(((glyph) == GLYPH_CMAP_STONE_OFF) \
|
|
||||||
? S_stone \
|
|
||||||
: glyph_is_cmap_main(glyph) \
|
|
||||||
? (((glyph) - GLYPH_CMAP_MAIN_OFF) + S_vwall) \
|
|
||||||
: glyph_is_cmap_mines(glyph) \
|
|
||||||
? (((glyph) - GLYPH_CMAP_MINES_OFF) + S_vwall) \
|
|
||||||
: glyph_is_cmap_gehennom(glyph) \
|
|
||||||
? (((glyph) - GLYPH_CMAP_GEH_OFF) + S_vwall) \
|
|
||||||
: glyph_is_cmap_knox(glyph) \
|
|
||||||
? (((glyph) - GLYPH_CMAP_KNOX_OFF) + S_vwall) \
|
|
||||||
: glyph_is_cmap_sokoban(glyph) \
|
|
||||||
? (((glyph) - GLYPH_CMAP_SOKO_OFF) + S_vwall) \
|
|
||||||
: glyph_is_cmap_a(glyph) \
|
|
||||||
? (((glyph) - GLYPH_CMAP_A_OFF) + S_ndoor) \
|
|
||||||
: glyph_is_cmap_altar(glyph) \
|
|
||||||
? (S_altar) \
|
|
||||||
: glyph_is_cmap_b(glyph) \
|
|
||||||
? (((glyph) - GLYPH_CMAP_B_OFF) + S_grave) \
|
|
||||||
: glyph_is_cmap_c(glyph) \
|
|
||||||
? (((glyph) - GLYPH_CMAP_C_OFF) + S_digbeam) \
|
|
||||||
: glyph_is_cmap_zap(glyph) \
|
|
||||||
? ((((glyph) - GLYPH_ZAP_OFF) % 4) + S_vbeam) \
|
|
||||||
: MAXPCHARS)
|
|
||||||
|
|
||||||
#define glyph_to_swallow(glyph) \
|
#define glyph_to_swallow(glyph) \
|
||||||
(glyph_is_swallow(glyph) ? (((glyph) - GLYPH_SWALLOW_OFF) & 0x7) : 0)
|
(glyph_is_swallow(glyph) ? (((glyph) - GLYPH_SWALLOW_OFF) & 0x7) : 0)
|
||||||
|
#define glyph_to_explosion(glyph) \
|
||||||
|
(glyph_is_explosion(glyph) ? (((glyph) - GLYPH_EXPLODE_OFF) % (S_expl_br - S_expl_tl + 1)) : 0)
|
||||||
#define glyph_to_warning(glyph) \
|
#define glyph_to_warning(glyph) \
|
||||||
(glyph_is_warning(glyph) ? ((glyph) - GLYPH_WARNING_OFF) : NO_GLYPH)
|
(glyph_is_warning(glyph) ? ((glyph) - GLYPH_WARNING_OFF) : NO_GLYPH)
|
||||||
|
|
||||||
|
|||||||
36
src/glyphs.c
36
src/glyphs.c
@@ -191,6 +191,39 @@ fix_glyphname(char *str)
|
|||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
glyph_to_cmap(int glyph)
|
||||||
|
{
|
||||||
|
if (glyph == GLYPH_CMAP_STONE_OFF)
|
||||||
|
return S_stone;
|
||||||
|
else if (glyph_is_cmap_main(glyph))
|
||||||
|
return (glyph - GLYPH_CMAP_MAIN_OFF) + S_vwall;
|
||||||
|
else if (glyph_is_cmap_mines(glyph))
|
||||||
|
return (glyph - GLYPH_CMAP_MINES_OFF) + S_vwall;
|
||||||
|
else if (glyph_is_cmap_gehennom(glyph))
|
||||||
|
return (glyph - GLYPH_CMAP_GEH_OFF) + S_vwall;
|
||||||
|
else if (glyph_is_cmap_knox(glyph))
|
||||||
|
return (glyph - GLYPH_CMAP_KNOX_OFF) + S_vwall;
|
||||||
|
else if (glyph_is_cmap_sokoban(glyph))
|
||||||
|
return (glyph - GLYPH_CMAP_SOKO_OFF) + S_vwall;
|
||||||
|
else if (glyph_is_cmap_a(glyph))
|
||||||
|
return (glyph - GLYPH_CMAP_A_OFF) + S_ndoor;
|
||||||
|
else if (glyph_is_cmap_altar(glyph))
|
||||||
|
return S_altar;
|
||||||
|
else if (glyph_is_cmap_b(glyph))
|
||||||
|
return (glyph - GLYPH_CMAP_B_OFF) + S_grave;
|
||||||
|
else if (glyph_is_cmap_c(glyph))
|
||||||
|
return (glyph - GLYPH_CMAP_C_OFF) + S_digbeam;
|
||||||
|
else if (glyph_is_cmap_zap(glyph))
|
||||||
|
return ((glyph - GLYPH_ZAP_OFF) % 4) + S_vbeam;
|
||||||
|
else if (glyph_is_swallow(glyph))
|
||||||
|
return glyph_to_swallow(glyph) + S_sw_tl;
|
||||||
|
else if (glyph_is_explosion(glyph))
|
||||||
|
return glyph_to_explosion(glyph) + S_expl_tl;
|
||||||
|
else
|
||||||
|
return MAXPCHARS;
|
||||||
|
}
|
||||||
|
|
||||||
staticfn int
|
staticfn int
|
||||||
glyph_find_core(const char *id, struct find_struct *findwhat)
|
glyph_find_core(const char *id, struct find_struct *findwhat)
|
||||||
{
|
{
|
||||||
@@ -1026,8 +1059,7 @@ parse_id(const char *id, struct find_struct *findwhat)
|
|||||||
|
|
||||||
j = glyph - GLYPH_EXPLODE_OFF;
|
j = glyph - GLYPH_EXPLODE_OFF;
|
||||||
expl = j / ((S_expl_br - S_expl_tl) + 1);
|
expl = j / ((S_expl_br - S_expl_tl) + 1);
|
||||||
cmap = (j % ((S_expl_br - S_expl_tl) + 1))
|
cmap = glyph_to_explosion(glyph) + S_expl_tl;
|
||||||
+ S_expl_tl;
|
|
||||||
i = cmap - S_expl_tl;
|
i = cmap - S_expl_tl;
|
||||||
Snprintf(buf[2], sizeof buf[2], "%s ",
|
Snprintf(buf[2], sizeof buf[2], "%s ",
|
||||||
expl_type_texts[expl]);
|
expl_type_texts[expl]);
|
||||||
|
|||||||
Reference in New Issue
Block a user