DUNGEON: "The Dungeons of Doom" "D" (25, 5)
ALIGNMENT: unaligned
BRANCH: "The Gnomish Mines" @ (2, 3)
-%REINCARNATION LEVEL: "rogue" "R" @ (15, 4)
-%REINCARNATION LEVELDESC: roguelike
+LEVEL: "rogue" "R" @ (15, 4)
+LEVELDESC: roguelike
LEVEL: "oracle" "O" @ (5, 5)
LEVALIGN: neutral
CHAINBRANCH: "Sokoban" "oracle" + (1, 0) up
/* dungeon features */
/* dungeon levels */
#define WALLIFIED_MAZE /* Fancy mazes - Jean-Christophe Collet */
-#define REINCARNATION /* Special Rogue-like levels */
/* monsters & objects */
#define SEDUCE /* Succubi/incubi seduction, by KAA, suggested by IM */
/* I/O */
E struct dgn_topology { /* special dungeon levels for speed */
d_level d_oracle_level;
d_level d_bigroom_level; /* unused */
-#ifdef REINCARNATION
d_level d_rogue_level;
-#endif
d_level d_medusa_level;
d_level d_stronghold_level;
d_level d_valley_level;
/* macros for accesing the dungeon levels by their old names */
#define oracle_level (dungeon_topology.d_oracle_level)
#define bigroom_level (dungeon_topology.d_bigroom_level)
-#ifdef REINCARNATION
#define rogue_level (dungeon_topology.d_rogue_level)
-#endif
#define medusa_level (dungeon_topology.d_medusa_level)
#define stronghold_level (dungeon_topology.d_stronghold_level)
#define valley_level (dungeon_topology.d_valley_level)
Bitfield(valley, 1);
Bitfield(msanctum, 1);
Bitfield(ludios, 1);
-# ifdef REINCARNATION
Bitfield(roguelevel, 1);
-# endif
} flags;
/* custom naming */
char *custom;
E const char *NDECL(rndmonnam);
E const char *FDECL(hcolor, (const char *));
E const char *NDECL(rndcolor);
-#ifdef REINCARNATION
E const char *NDECL(roguename);
-#endif
E struct obj *FDECL(realloc_obj,
(struct obj *, int, genericptr_t, int, const char *));
E char *FDECL(coyotename, (struct monst *,char *));
#if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C)
E void FDECL(switch_symbols, (int));
E void FDECL(assign_graphics, (int));
-#ifdef REINCARNATION
E void NDECL(init_r_symbols);
-#endif
E void NDECL(init_symbols);
E void NDECL(init_showsyms);
E void NDECL(init_l_symbols);
/* ### extralev.c ### */
-#ifdef REINCARNATION
E void NDECL(makeroguerooms);
E void FDECL(corr, (int,int));
E void NDECL(makerogueghost);
-#endif
/* ### files.c ### */
{
int newmask = lev->doormask & ~WM_MASK;
-#ifdef REINCARNATION
if (Is_rogue_level(&u.uz))
/* rogue didn't have doors, only doorways */
newmask = D_NODOOR;
else
-#endif
/* newly exposed door is closed */
if (!(newmask & D_LOCKED)) newmask |= D_CLOSED;
#endif
}
-#ifdef REINCARNATION
if (Is_rogue_level(newlevel) || Is_rogue_level(&u.uz))
assign_graphics(Is_rogue_level(newlevel) ? ROGUESET : PRIMARY);
-#endif
#ifdef USE_TILES
substitute_tiles(newlevel);
#endif
}
}
} else {
-#ifdef REINCARNATION
if (new && Is_rogue_level(&u.uz))
You("enter what seems to be an older, more primitive world.");
-#endif
/* main dungeon message from your quest leader */
if (!In_quest(&u.uz0) && at_dgn_entrance("The Quest") &&
!(u.uevent.qcompleted || u.uevent.qexpelled ||
return FALSE;
}
-#ifdef REINCARNATION
const char *
roguename() /* Name of a Rogue player */
{
return rn2(3) ? (rn2(2) ? "Michael Toy" : "Kenneth Arnold")
: "Glenn Wichman";
}
-#endif /* REINCARNATION */
static NEARDATA const char * const hcolors[] = {
"ultraviolet", "infrared", "bluish-orange",
}
if (is_giant(mtmp->data)) allowflags |= BUSTDOOR;
if (tunnels(mtmp->data)
-#ifdef REINCARNATION
&& !Is_rogue_level(&u.uz) /* same restriction as m_move() */
-#endif
) allowflags |= ALLOW_DIG;
cnt = mfndpos(mtmp, poss, info, allowflags);
nhsym showsyms[SYM_MAX] = DUMMY; /* symbols to be displayed */
nhsym l_syms[SYM_MAX] = DUMMY; /* loaded symbols */
-#ifdef REINCARNATION
nhsym r_syms[SYM_MAX] = DUMMY; /* rogue symbols */
-#endif
nhsym warnsyms[WARNCOUNT] = DUMMY; /* the current warning display symbols */
const char invisexplain[] = "remembered, unseen, creature";
{'/', "", C(CLR_ORANGE)}, /* explosion bottom right */
};
-#ifdef REINCARNATION
/* default rogue level symbols */
static const uchar def_r_oc_syms[MAXOCLASSES] = {
/* 0*/ '\0',
CHAIN_SYM,
VENOM_SYM
};
-#endif
#undef C
* Sets the current display symbols, the
* loadable symbols to the default NetHack
* symbols, including the r_syms rogue level
- * symbols if REINCARNATION is defined.
- * This would typically be done immediately
- * after execution begins. Any previously
- * loaded external symbol sets are discarded.
+ * symbols. This would typically be done
+ * immediately after execution begins. Any
+ * previously loaded external symbol sets are
+ * discarded.
*
* switch_symbols(arg)
* Called to swap in new current display symbols
{
init_l_symbols();
init_showsyms();
-#ifdef REINCARNATION
init_r_symbols();
-#endif
}
void
#endif
}
-#ifdef REINCARNATION
void
init_r_symbols()
{
*/
# endif
}
-#endif /*REINCARNATION*/
void
assign_graphics(whichset)
register int i;
switch(whichset) {
-# ifdef REINCARNATION
case ROGUESET:
/* Adjust graphics display characters on Rogue levels */
# endif
currentgraphics = ROGUESET;
break;
-# endif
case PRIMARY:
default:
l_syms[symp->idx] = val;
}
-# ifdef REINCARNATION
void
update_r_symset(symp, val)
struct symparse *symp;
{
r_syms[symp->idx] = val;
}
-# endif /* REINCARNATION */
void
clear_symsetentry(which_set, name_too)
{ "medusa", &medusa_level },
{ "oracle", &oracle_level },
{ "orcus", &orcus_level },
-#ifdef REINCARNATION
{ "rogue", &rogue_level },
-#endif
{ "sanctum", &sanctum_level },
{ "valley", &valley_level },
{ "water", &water_level },
if (mptr->flags.unreachable || mptr->flags.forgot) return FALSE;
/* level is of interest if it has an auto-generated annotation */
if (mptr->flags.oracle || mptr->flags.bigroom ||
-# ifdef REINCARNATION
mptr->flags.roguelevel ||
-# endif
mptr->flags.castle || mptr->flags.valley ||
mptr->flags.msanctum) return TRUE;
/* when in Sokoban, list all sokoban levels visited; when not in it,
mptr->flags.bigroom = Is_bigroom(&u.uz);
else if (mptr->flags.forgot)
mptr->flags.bigroom = 0;
-# ifdef REINCARNATION
mptr->flags.roguelevel = Is_rogue_level(&u.uz);
-# endif
mptr->flags.oracle = 0; /* recalculated during room traversal below */
mptr->flags.castletune = 0;
/* flags.castle, flags.valley, flags.msanctum retain previous value */
mptr->flags.sokosolved ? "Solved" : "Unsolved");
} else if (mptr->flags.bigroom) {
Sprintf(buf, "%sA very big room.", PREFIX);
-# ifdef REINCARNATION
} else if (mptr->flags.roguelevel) {
Sprintf(buf, "%sA primitive area.", PREFIX);
-# endif
} else if (on_level(&mptr->lev, &qstart_level)) {
Sprintf(buf, "%sHome%s.", PREFIX,
mptr->flags.unreachable ? " (no way back...)" : "");
#include "hack.h"
-#ifdef REINCARNATION
-
struct rogueroom {
xchar rlx, rly;
xchar dx, dy;
ghostobj->known = TRUE;
}
}
-#endif /* REINCARNATION */
/*extralev.c*/
/* matches desired one */
chosen_symset_start = TRUE;
/* these init_*() functions clear symset fields too */
-# ifdef REINCARNATION
if (which_set == ROGUESET) init_r_symbols();
- else
-# endif
- if (which_set == PRIMARY) init_l_symbols();
+ else if (which_set == PRIMARY) init_l_symbols();
}
break;
case 1:
if (chosen_symset_start)
chosen_symset_end = FALSE;
chosen_symset_start = FALSE;
-# ifdef REINCARNATION
if (which_set == ROGUESET) init_r_symbols();
- else
-# endif
- if (which_set == PRIMARY) init_l_symbols();
+ else if (which_set == PRIMARY) init_l_symbols();
}
}
break;
if (chosen_symset_start) {
if (which_set == PRIMARY) {
update_l_symset(symp, val);
- }
-# ifdef REINCARNATION
- else if (which_set == ROGUESET) {
+ } else if (which_set == ROGUESET) {
update_r_symset(symp, val);
}
-# endif
}
}
}
struct rm *lev_p = &levl[x][y];
if (!IS_DOOR(lev_p->typ)) return FALSE;
-#ifdef REINCARNATION
/* all rogue level doors are doorless but disallow diagonal access, so
we treat them as if their non-existant doors were actually present */
if (Is_rogue_level(&u.uz)) return FALSE;
-#endif
return !(lev_p->doormask & ~(D_NODOOR|D_BROKEN));
}
switch(otmp->otyp) {
case WAN_LOCKING:
case SPE_WIZARD_LOCK:
-#ifdef REINCARNATION
if (Is_rogue_level(&u.uz)) {
boolean vis = cansee(x,y);
/* Can't have real locking in Rogue, so just hide doorway */
newsym(x,y);
return TRUE;
}
-#endif
if (obstructed(x,y,mysterywand)) return FALSE;
/* Don't allow doors to close over traps. This is for pits */
/* & trap doors, but is it ever OK for anything else? */
#include "hack.h"
-#ifdef REINCARNATION
#include <ctype.h>
-#endif
STATIC_VAR NEARDATA struct monst zeromonst;
register int mm = monsndx(ptr);
struct obj *otmp;
-#ifdef REINCARNATION
if (Is_rogue_level(&u.uz)) return;
-#endif
/*
* first a few special cases:
*
register int cnt;
register struct obj *otmp;
register struct permonst *ptr = mtmp->data;
-#ifdef REINCARNATION
if (Is_rogue_level(&u.uz)) return;
-#endif
/*
* Soldiers get armour & rations - armour approximates their ac.
* Nymphs may get mirror or potion of object detection.
if (rndmonst_state.choice_count < 0) { /* need to recalculate */
int zlevel, minmlev, maxmlev;
boolean elemlevel;
-#ifdef REINCARNATION
boolean upper;
-#endif
rndmonst_state.choice_count = 0;
/* look for first common monster */
minmlev = zlevel / 6;
/* determine the level of the strongest monster to make. */
maxmlev = (zlevel + u.ulevel) / 2;
-#ifdef REINCARNATION
upper = Is_rogue_level(&u.uz);
-#endif
elemlevel = In_endgame(&u.uz) && !Is_astralevel(&u.uz);
/*
rndmonst_state.mchoices[mndx] = 0;
if (tooweak(mndx, minmlev) || toostrong(mndx, maxmlev))
continue;
-#ifdef REINCARNATION
if (upper && !isupper(def_monsyms[(int)(ptr->mlet)].sym)) continue;
-#endif
if (elemlevel && wrong_elem_type(ptr)) continue;
if (uncommon(mndx)) continue;
if (Inhell && (ptr->geno & G_NOHELL)) continue;
levl[mx-1][my].typ == TDWALL ||
levl[mx-1][my].typ == CROSSWALL||
levl[mx-1][my].typ == TUWALL ))
-#ifdef REINCARNATION
appear = Is_rogue_level(&u.uz) ? S_hwall : S_hcdoor;
else
appear = Is_rogue_level(&u.uz) ? S_vwall : S_vcdoor;
-#else
- appear = S_hcdoor;
- else
- appear = S_vcdoor;
-#endif
if(!mtmp->minvis || See_invisible)
block_point(mx,my); /* vision */
} else if (level.flags.is_maze_lev && !In_sokoban(&u.uz) && rn2(2)) {
#define pet_color(n) color = iflags.use_color ? mons[n].mcolor : NO_COLOR
#define warn_color(n) color = iflags.use_color ? def_warnsyms[n].color : NO_COLOR
#define explode_color(n) color = iflags.use_color ? explcolors[n] : NO_COLOR
-# if defined(REINCARNATION) && defined(LOADSYMSETS)
-# define ROGUE_COLOR
-# endif
+#ifdef LOADSYMSETS
+# define ROGUE_COLOR
+#endif
#else /* no text color */
ch = showsyms[idx];
#ifdef TEXTCOLOR
/* Turn off color if no color defined, or rogue level w/o PC graphics. */
-# ifdef REINCARNATION
-# ifdef ROGUE_COLOR
+# ifdef ROGUE_COLOR
if (!has_color(color) || (Is_rogue_level(&u.uz) && !has_rogue_color))
-# else
- if (!has_color(color) || Is_rogue_level(&u.uz))
-# endif
# else
- if (!has_color(color))
+ if (!has_color(color) || Is_rogue_level(&u.uz))
# endif
color = NO_COLOR;
#endif
break;
case AT_WEAP:
if(range2) {
-#ifdef REINCARNATION
if (!Is_rogue_level(&u.uz))
-#endif
thrwmu(mtmp);
} else {
int hittmp = 0;
levl[x][y].doormask = (shdoor ? D_ISOPEN : D_NODOOR);
#endif
-#ifdef REINCARNATION
/* also done in roguecorr(); doing it here first prevents
making mimics in place of trapped doors on rogue level */
if (Is_rogue_level(&u.uz)) levl[x][y].doormask = D_NODOOR;
-#endif
if(levl[x][y].doormask & D_TRAPPED) {
struct monst *mtmp;
register s_level *slev = Is_special(&u.uz);
/* check for special levels */
-#ifdef REINCARNATION
if (slev && !Is_rogue_level(&u.uz))
-#else
- if (slev)
-#endif
{
makemaz(slev->proto);
return;
/* otherwise, fall through - it's a "regular" level. */
-#ifdef REINCARNATION
if (Is_rogue_level(&u.uz)) {
makeroguerooms();
makerogueghost();
} else
-#endif
makerooms();
sort_rooms();
branchp = Is_branchlev(&u.uz); /* possible dungeon branch */
room_threshold = branchp ? 4 : 3; /* minimum number of rooms needed
to allow a random special room */
-#ifdef REINCARNATION
if (Is_rogue_level(&u.uz)) goto skip0;
-#endif
makecorridors();
make_niches();
!(mvitals[PM_COCKATRICE].mvflags & G_GONE)) mkroom(COCKNEST);
}
-#ifdef REINCARNATION
skip0:
-#endif
/* Place multi-dungeon branch. */
place_branch(branchp, 0, 0);
mktrap(0,0,croom,(coord*)0);
if (!goldseen && !rn2(3))
(void) mkgold(0L, somex(croom), somey(croom));
-#ifdef REINCARNATION
if(Is_rogue_level(&u.uz)) goto skip_nonrogue;
-#endif
if(!rn2(10)) mkfount(0,croom);
if(!rn2(60)) mksink(croom);
if(!rn2(60)) mkaltar(croom);
}
}
-#ifdef REINCARNATION
skip_nonrogue:
-#endif
if(!rn2(3)) {
(void) mkobj_at(0, somex(croom), somey(croom), TRUE);
tryct = 0;
/* determine if it is even allowed;
almost all special levels are excluded */
if (In_hell(&u.uz) || In_V_tower(&u.uz) ||
-#ifdef REINCARNATION
Is_rogue_level(&u.uz) ||
-#endif
level.flags.arboreal ||
((sp = Is_special(&u.uz)) != 0 && !Is_oracle_level(&u.uz)
&& (!In_mines(&u.uz) || sp->flags.town)
if ((int) levl[lowx][lowy].roomno == roomno || croom->irregular)
return;
#ifdef SPECIALIZATION
-# ifdef REINCARNATION
if (Is_rogue_level(&u.uz))
do_ordinary = TRUE; /* vision routine helper */
-# endif
if ((rtype != OROOM) || do_ordinary)
#endif
{
if (num > 0 && num < TRAPNUM) {
kind = num;
-#ifdef REINCARNATION
} else if (Is_rogue_level(&u.uz)) {
switch (rn2(7)) {
default: kind = BEAR_TRAP; break; /* 0 */
case 5: kind = SLP_GAS_TRAP; break;
case 6: kind = RUST_TRAP; break;
}
-#endif
} else if (Inhell && !rn2(5)) {
/* bias the frequency of fire traps in Gehennom */
kind = FIRE_TRAP;
{ 1, AMULET_CLASS}
};
-#ifdef REINCARNATION
const struct icp rogueprobs[] = {
{12, WEAPON_CLASS},
{12, ARMOR_CLASS},
{ 5, WAND_CLASS},
{ 5, RING_CLASS}
};
-#endif
const struct icp hellprobs[] = {
{20, WEAPON_CLASS},
if(oclass == RANDOM_CLASS) {
const struct icp *iprobs =
-#ifdef REINCARNATION
(Is_rogue_level(&u.uz)) ?
(const struct icp *)rogueprobs :
-#endif
Inhell ? (const struct icp *)hellprobs :
(const struct icp *)mkobjprobs;
#endif
STATIC_DCL struct permonst *FDECL(accept_newcham_form, (int));
-#ifdef REINCARNATION
#define LEVEL_SPECIFIC_NOCORPSE(mdat) \
(Is_rogue_level(&u.uz) || \
(level.flags.graveyard && is_undead(mdat) && rn2(3)))
-#else
-#define LEVEL_SPECIFIC_NOCORPSE(mdat) \
- (level.flags.graveyard && is_undead(mdat) && rn2(3))
-#endif
#if 0
/* part of the original warning code which was replaced in 3.3.1 */
if (nx != x && ny != y && (nodiag ||
(IS_DOOR(nowtyp) && (levl[x][y].doormask & ~D_BROKEN)) ||
(IS_DOOR(ntyp) && (levl[nx][ny].doormask & ~D_BROKEN)) ||
-#ifdef REINCARNATION
((IS_DOOR(nowtyp) || IS_DOOR(ntyp)) && Is_rogue_level(&u.uz)) ||
-#endif
/* mustn't pass between adjacent long worm segments,
but can attack that way */
(m_at(x, ny) && m_at(nx, y) && worm_cross(x, y, nx, ny) &&
/* Not necessary if m_move called from this file, but necessary in
* other calls of m_move (ex. leprechauns dodging)
*/
-#ifdef REINCARNATION
if (!Is_rogue_level(&u.uz))
-#endif
can_tunnel = tunnels(ptr);
can_open = !(nohands(ptr) || verysmall(ptr));
can_unlock = ((can_open && monhaskey(mtmp, TRUE)) ||
}
}
- if ((!mtmp->mpeaceful || !rn2(10))
-#ifdef REINCARNATION
- && (!Is_rogue_level(&u.uz))
-#endif
- ) {
+ if ((!mtmp->mpeaceful || !rn2(10)) && (!Is_rogue_level(&u.uz))) {
boolean in_line = lined_up(mtmp) &&
(distmin(mtmp->mx, mtmp->my, mtmp->mux, mtmp->muy) <=
(throws_rocks(youmonst.data) ? 20 : ACURRSTR/2+1)
unsolid(mtmp->data) || !rn2(10))
&& dist2(mtmp->mx,mtmp->my,mtmp->mux,mtmp->muy) <= 2
&& mtmp->mcansee && haseyes(mtmp->data)
-#ifdef REINCARNATION
&& !Is_rogue_level(&u.uz)
-#endif
&& (!In_endgame(&u.uz) || Is_earthlevel(&u.uz))) {
m.offensive = obj;
m.has_offense = MUSE_SCR_EARTH;
DISP_IN_GAME},
#endif
{ "roguesymset", "load a set of rogue display symbols from the symbols file", 70,
-#ifdef REINCARNATION
-# ifdef LOADSYMSETS
+#ifdef LOADSYMSETS
SET_IN_GAME },
-# else
- DISP_IN_GAME},
-# endif
#else
- SET_IN_FILE},
+ DISP_IN_GAME},
#endif
{ "suppress_alert", "suppress alerts about version-specific features",
8, SET_IN_GAME },
fullname = "roguesymset";
if (match_optname(opts, fullname, 7, TRUE)) {
-#if defined(REINCARNATION) && defined(LOADSYMSETS)
if (duplicate) complain_about_duplicate(opts,1);
if (negated) bad_negation(fullname, FALSE);
else if ((op = string_for_opt(opts, FALSE)) != 0) {
need_redraw = TRUE;
}
}
-#endif
return;
}
wait_synch();
} else {
switch_symbols(TRUE);
-# ifdef REINCARNATION
if (!initial && Is_rogue_level(&u.uz))
assign_graphics(ROGUESET);
-# endif
}
}
# endif /*LOADSYMSETS*/
#endif
int chosen = -2, which_set;
-#ifdef REINCARNATION
if (rogueflag) which_set = ROGUESET;
else
-#endif
which_set = PRIMARY;
-#ifndef REINCARNATION
- if (rogueflag) return TRUE;
-#endif
-
#ifdef LOADSYMSETS
/* clear symset[].name as a flag to read_sym_file() to build list */
symset_name = symset[which_set].name;
symset[which_set].name = symset_name;
/* Set default symbols and clear the handling value */
-# ifdef REINCARNATION
if(rogueflag)
init_r_symbols();
else
-# endif
- init_l_symbols();
+ init_l_symbols();
if (symset[which_set].name) {
if (read_sym_file(which_set))
if (ready_to_switch) switch_symbols(TRUE);
-# ifdef REINCARNATION
if (Is_rogue_level(&u.uz)) {
if (rogueflag)
assign_graphics(ROGUESET);
- } else
-# endif
- if (!rogueflag) assign_graphics(PRIMARY);
+ } else if (!rogueflag) assign_graphics(PRIMARY);
need_redraw = TRUE;
#endif /*LOADSYMSETS*/
return TRUE;
}
else if (!strcmp(optname, "race"))
Sprintf(buf, "%s", rolestring(flags.initrace, races, noun));
-#ifdef REINCARNATION
else if (!strcmp(optname, "roguesymset")) {
Sprintf(buf, "%s",
-# ifdef LOADSYMSETS
+#ifdef LOADSYMSETS
symset[ROGUESET].name ?
symset[ROGUESET].name :
-# endif
+#endif
"default");
if (currentgraphics == ROGUESET && symset[ROGUESET].name)
Strcat(buf, ", active");
-#endif
}
else if (!strcmp(optname, "role"))
Sprintf(buf, "%s", rolestring(flags.initrole, roles, name.m));
break;
case SCR_EARTH:
/* TODO: handle steeds */
- if (
-#ifdef REINCARNATION
- !Is_rogue_level(&u.uz) &&
-#endif
- (!In_endgame(&u.uz) || Is_earthlevel(&u.uz))) {
+ if (!Is_rogue_level(&u.uz)
+ && (!In_endgame(&u.uz) || Is_earthlevel(&u.uz))) {
register int x, y;
/* Identify the scroll */
if (Punished && !on && !Blind)
move_bc(1, 0, uball->ox, uball->oy, uchain->ox, uchain->oy);
-#ifdef REINCARNATION
if (Is_rogue_level(&u.uz)) {
/* Can't use do_clear_area because MAX_RADIUS is too small */
/* rogue lighting must light the entire room */
}
/* hallways remain dark on the rogue level */
} else
-#endif
do_clear_area(u.ux,u.uy,
(obj && obj->oclass==SCROLL_CLASS && obj->blessed) ? 9 : 5,
set_lit, (genericptr_t)(on ? &is_lit : (char *)0));
if (!wizard && !discover)
(void) delete_savefile();
-#ifdef REINCARNATION
if (Is_rogue_level(&u.uz)) assign_graphics(ROGUESET);
-#endif
#ifdef USE_TILES
substitute_tiles(&u.uz);
#endif
STATIC_DCL void FDECL(view_from,(int,int,char **,char *,char *,int,
void (*)(int,int,genericptr_t),genericptr_t));
STATIC_DCL void FDECL(get_unused_cs, (char ***,char **,char **));
-#ifdef REINCARNATION
STATIC_DCL void FDECL(rogue_vision, (char **,char *,char *));
-#endif
/* Macro definitions that I can't find anywhere. */
#define sign(z) ((z) < 0 ? -1 : ((z) ? 1 : 0 ))
}
-#ifdef REINCARNATION
/*
* rogue_vision()
*
}
}
}
-#endif /* REINCARNATION */
/*#define EXTEND_SPINE*/ /* possibly better looking wall-angle */
/* skip the normal update loop */
goto skip;
- }
-#ifdef REINCARNATION
- else if (Is_rogue_level(&u.uz)) {
+ } else if (Is_rogue_level(&u.uz)) {
rogue_vision(next_array,next_rmin,next_rmax);
- }
-#endif
- else {
+ } else {
int has_night_vision = 1; /* hero has night vision */
if (Underwater && !Is_waterlevel(&u.uz)) {
if (see_it)
pline("%s %s reveals a secret door.",
yourzap ? "Your" : "The", zapverb);
-#ifdef REINCARNATION
else if (Is_rogue_level(&u.uz))
You_feel("a draft."); /* new open doorway */
-#endif
}
/* regular door absorbs remaining zap range, possibly gets destroyed */
}
}
#endif
- if(
- WINVERS_AMIV
-#ifdef REINCARNATION
- && !Is_rogue_level(&u.uz)
-#endif
- )
+ if(WINVERS_AMIV && !Is_rogue_level(&u.uz))
{
amii_curs(win,x,y);
amiga_print_glyph(win,0,glyph);
{
/* map glyph to character and color */
(void) mapglyph(glyph, &och, &color, &special, x, y);
- /* XXX next if should be ifdef REINCARNATION */
ch = (uchar)och;
if( WINVERS_AMIV ){ /* implies Rogue level here */
amii_curs(win,x,y);
#ifdef TEXTCOLOR
/* Turn off color if rogue level. */
-# ifdef REINCARNATION
if (Is_rogue_level(&u.uz))
color = NO_COLOR;
-# endif
amiga_print_glyph(win,color,ch);
#else
vga_userpan(0);
break;
case 0x3E: /* F4 = toggle overview mode */
- if (iflags.tile_view &&
- !opening_dialog
-#ifdef REINCARNATION
- && !Is_rogue_level(&u.uz)
-#endif
- ) {
+ if (iflags.tile_view && !opening_dialog
+ && !Is_rogue_level(&u.uz)) {
iflags.traditional_view = FALSE;
vga_overview(iflags.over_view ? FALSE : TRUE);
vga_refresh();
}
break;
case 0x3F: /* F5 = toggle traditional mode */
- if (iflags.tile_view &&
- !opening_dialog
-#ifdef REINCARNATION
- && !Is_rogue_level(&u.uz)
-#endif
- ) {
+ if (iflags.tile_view && !opening_dialog
+ && !Is_rogue_level(&u.uz)) {
iflags.over_view = FALSE;
vga_traditional(iflags.traditional_view ? FALSE : TRUE);
vga_refresh();
unsigned char first,second;
/* char on[2] = {0xFF,0xFF}; */
/* char off[2] = {0x00,0x00}; */
-#ifdef REINCARNATION
boolean isrogue = Is_rogue_level(&u.uz);
boolean singlebyte = (isrogue || iflags.over_view
|| iflags.traditional_view || !inmap);
-#else
- boolean singlebyte = (iflags.over_view
- || iflags.traditional_view || !inmap);
-#endif
int curtyp;
if (!cursor_type && inmap) return; /* CURSOR_INVIS - nothing to do */
int i,pixx,pixy,x,y;
char __far *tmp1;
char __far *tmp2;
-#ifdef REINCARNATION
boolean isrogue = Is_rogue_level(&u.uz);
boolean singlebyte = (isrogue || iflags.over_view
|| iflags.traditional_view || !inmap);
-#else
- boolean singlebyte = (iflags.over_view
- || iflags.traditional_view || !inmap);
-#endif
int curtyp;
if (inmap && !cursor_type) return; /* CURSOR_INVIS - nothing to do */
if (!symset[PRIMARY].name) {
load_symset("IBMGraphics_2", PRIMARY);
}
-# ifdef REINCARNATION
if (!symset[ROGUESET].name) {
load_symset("RogueEpyx", ROGUESET);
}
-# endif
# endif
#endif /*LOADSYMSETS*/
#endif
/* override for Rogue level */
-#ifdef REINCARNATION
if( Is_rogue_level(&u.uz) && !IS_MAP_ASCII(mode) ) return;
-#endif
/* set map mode menu mark */
if( IS_MAP_ASCII(mode) ) {
paint_rt.right = min(data->xPos + (ps.rcPaint.right - data->map_orig.x)/data->xScrTile+1, COLNO);
paint_rt.bottom = min(data->yPos + (ps.rcPaint.bottom - data->map_orig.y)/data->yScrTile+1, ROWNO);
- if( data->bAsciiMode
-#ifdef REINCARNATION
- || Is_rogue_level(&u.uz)
+ if(data->bAsciiMode || Is_rogue_level(&u.uz)) {
/* You enter a VERY primitive world! */
-#endif
- ) {
HGDIOBJ oldFont;
oldFont = SelectObject(hDC, data->hMapFont);
(wid < MAXWINDOWS) &&
(GetNHApp()->windowlist[wid].win != NULL))
{
-#ifdef REINCARNATION
if( GetNHApp()->windowlist[wid].type == NHW_MAP ) {
if( Is_rogue_level(&u.uz) )
mswin_map_mode(mswin_hwnd_from_winid(WIN_MAP), ROGUE_LEVEL_MAP_MODE);
else
mswin_map_mode(mswin_hwnd_from_winid(WIN_MAP), iflags.wc_map_mode);
}
-#endif
SendMessage(
GetNHApp()->windowlist[wid].win,
*/
version.feature_set = (unsigned long)(0L
/* levels and/or topology (0..4) */
-#ifdef REINCARNATION
- | (1L << 1)
-#endif
/* monsters (5..9) */
#ifdef MAIL
| (1L << 6)
#ifdef SELECTSAVED
"restore saved games via menu",
#endif
-#ifdef REINCARNATION
- "rogue level",
-#endif
#ifdef SCORE_ON_BOTL
"score on status line",
#endif
const char *defname;
boolean true_or_false;
} deflist[] = {
-#ifdef REINCARNATION
{ "REINCARNATION", TRUE },
-#else
- { "REINCARNATION", FALSE },
-#endif
- { 0, 0 } };
+ { 0, 0 }
+};
static int
check_control(s)
painter.begin(this);
- if (
-#ifdef REINCARNATION
- Is_rogue_level(&u.uz) ||
-#endif
- iflags.wc_ascii_map
- )
+ if (Is_rogue_level(&u.uz) || iflags.wc_ascii_map)
{
// You enter a VERY primitive world!
}
if (garea.contains(cursor)) {
-#ifdef REINCARNATION
if (Is_rogue_level(&u.uz)) {
#ifdef TEXTCOLOR
painter.setPen( white );
painter.setPen( green ); // REALLY primitive
#endif
} else
-#endif
{
int hp100;
if (u.mtimedone) {
register int row;
struct map_info_t *map_info = wp->map_information;
- if ((
-#ifdef REINCARNATION
- Is_rogue_level(&u.uz) ? map_info->is_tile :
-#endif
+ if ((Is_rogue_level(&u.uz) ? map_info->is_tile :
(map_info->is_tile != iflags.wc_tiled_map)) &&
map_info->tile_map.image_width) {
/* changed map display mode, re-display the full map */
sizeof(map_info->t_start));
(void) memset((genericptr_t) map_info->t_stop, (char) COLNO-1,
sizeof(map_info->t_stop));
- map_info->is_tile = iflags.wc_tiled_map
-#ifdef REINCARNATION
- && !Is_rogue_level(&u.uz)
-#endif
- ;
+ map_info->is_tile = iflags.wc_tiled_map && !Is_rogue_level(&u.uz);
XClearWindow(XtDisplay(wp->w), XtWindow(wp->w));
set_map_size(wp, COLNO, ROWNO);
check_cursor_visibility(wp);
void mar_print_gl_char(winid,xchar,xchar,int);
-#ifdef REINCARNATION
extern int mar_set_rogue(int);
-#endif
extern void mar_add_pet_sign(winid,int,int);
/* Move the cursor. */
Gem_curs(window, x,y);
-# ifdef REINCARNATION
- mar_set_rogue(Is_rogue_level(&u.uz) ? TRUE : FALSE);
-# endif
+ mar_set_rogue(Is_rogue_level(&u.uz) ? TRUE : FALSE);
x--; /* MAR -- because x ranges from 1 to COLNO */
if(mar_set_tile_mode(-1)){
#ifdef TEXTCOLOR
/* Turn off color if rogue level. */
-# ifdef REINCARNATION
if (Is_rogue_level(&u.uz)) color = NO_COLOR;
-# endif
#endif /* TEXTCOLOR */
mar_print_char(window,x,y,ch,color);
data = (PNHMainWindow)GetWindowLongPtr(GetNHApp()->hMainWnd, GWLP_USERDATA);
/* override for Rogue level */
-#ifdef REINCARNATION
if( Is_rogue_level(&u.uz) && !IS_MAP_ASCII(mode) ) return;
-#endif
/* set map mode menu mark */
if( IS_MAP_ASCII(mode) ) {
paint_rt.right = min(data->xPos + (ps.rcPaint.right - data->map_orig.x)/data->xScrTile+1, COLNO);
paint_rt.bottom = min(data->yPos + (ps.rcPaint.bottom - data->map_orig.y)/data->yScrTile+1, ROWNO);
- if( data->bAsciiMode
-#ifdef REINCARNATION
- || Is_rogue_level(&u.uz)
+ if( data->bAsciiMode || Is_rogue_level(&u.uz) ) {
/* You enter a VERY primitive world! */
-#endif
- ) {
HGDIOBJ oldFont;
oldFont = SelectObject(hDC, data->hMapFont);
(wid < MAXWINDOWS) &&
(GetNHApp()->windowlist[wid].win != NULL))
{
-#ifdef REINCARNATION
if( GetNHApp()->windowlist[wid].type == NHW_MAP ) {
if( Is_rogue_level(&u.uz) )
mswin_map_mode(mswin_hwnd_from_winid(WIN_MAP), ROGUE_LEVEL_MAP_MODE);
else
mswin_map_mode(mswin_hwnd_from_winid(WIN_MAP), iflags.wc_map_mode);
}
-#endif
SendMessage(
GetNHApp()->windowlist[wid].win,