--- slige/slige.c.old +++ slige/slige.c @@ -9736,6 +9736,8 @@ int i,count; float hl, am; int thisbit; + int allow_skull = 1; + char *cp; { char s[200]; @@ -9744,6 +9746,24 @@ announce(NONE,s); } +//-------------------------------------------------------------------- + +// The following code makes it possible for wrapper programs to block +// the ID_SKULL character. This feature was added so that the spider +// robots added by "haloween.wad" can be blocked when that WAD is us- +// ed. [The robots in question are "haloween.wad's" version of ID_ +// SKULL. IMHO: They don't seem to fit with the rest of the charac- +// ters.] + + if ((cp = getenv ("PRFREESKULL")) != NULL) + { + int c = *cp; + if ((c >= 'a') && (c <= 'z')) c += 'A'-'a'; + if ((c == 'F') || (c == 'N') || (c == '0')) allow_skull = 0; + } + +//-------------------------------------------------------------------- + require |= MONSTER; /* Duh! */ forbid |= BOSS; /* No wandering bosses */ if (!c->big_monsters) forbid |= BIG; @@ -9758,6 +9778,8 @@ for (m=c->genus_anchor;m;m=m->next) { if ((m->bits & require) != require) continue; if ((m->bits & forbid) != 0) continue; + if ((m->thingid == ID_SKULL) && !allow_skull) continue; + #ifdef IMPOSSIBLE_MONSTERS_IN_CONFIG if ((m->gamemask&c->gamemask)!=c->gamemask) continue; #endif