[comp.sources.games.bugs] Nethack in colour with System V r3.2 curses

pim@cti-software.nl (Pim Zandbergen) (08/04/90)

I have just finished compiling the latest and greatest
release of nethack on ISC UNIX (System V/386 release 3.2).

Everything runs just fine, but it lacks the colours that 
were promised when defining TEXTCOLOR in include/unixconf.h.

This is no curses/terminfo problem, as other applications,
like u386mon, posted recently to comp.sources.misc work
just fine with colour.

Any clue anybody?
-- 
Pim Zandbergen                            domain : pim@cti-software.nl
CTI Software BV                           uucp   : uunet!mcsun!hp4nl!ctisbv!pim
Laan Copes van Cattenburch 70             phone  : +31 70 3542302
2585 GD The Hague, The Netherlands        fax    : +31 70 3512837

cjeffery@cs.arizona.edu (Clinton Jeffery) (08/04/90)

From article <1990Aug3.175507.991@cti-software.nl>, by (Pim Zandbergen):
> I have just finished compiling the latest and greatest
> release of nethack on ISC UNIX (System V/386 release 3.2).
> Everything runs just fine, but it lacks the colours that 
> were promised when defining TEXTCOLOR in include/unixconf.h.
> Any clue anybody?

Not that I ever have time to play games, but I just solved this problem
under ESIX.  I had to do the following:

1) change the ANSI color escape sequences in termcap.c
   to specify the color first, and then the intensity second.
   Note that Nethack is incredibly "poortable" and therefore
   finding the hunk of code which UNIX uses is nontrivial.
   Anyhow, it does them with lines similar to:
        sprintf(hilites[c+BRIGHT],"\033[1;3%dm",c);
   but you need something like
        sprintf(hilites[c+BRIGHT],"\033[3%dm\033[1m",c);

2) Either set the "standout" option, or remove some checks in pri.c
   which specify no colors unless flags.standout is on.  Perhaps this
   doesn't matter.  1) is the main thing.

And gee, the money is really more satisfying in bright yellow than it is
in drab white...

Of course, I don't know if this same trick works under ISC or SCO.
-- 
| Clint Jeffery, U. of Arizona Dept. of Computer Science
| cjeffery@cs.arizona.edu -or- {noao allegra}!arizona!cjeffery
--

jdp@PacBell.COM (Jerry D. Pierce) (08/05/90)

In article <1990Aug3.175507.991@cti-software.nl> pim@cti-software.nl (Pim Zandbergen) writes:
>I have just finished compiling the latest and greatest
>release of nethack on ISC UNIX (System V/386 release 3.2).
>
>Everything runs just fine, but it lacks the colours that 
>were promised when defining TEXTCOLOR in include/unixconf.h.
>
>This is no curses/terminfo problem, as other applications,
>like u386mon, posted recently to comp.sources.misc work
>just fine with colour.

The fix to this is incredibly simple, but doesn't appear to be documented
anywhere in the code or release notes for nethack...

In your .profile, you will need to initialize a variable called 
NETHACKOPTIONS so that it looks similar to:   
     NETHACKHOPTIONS="standout";export NETHACKOPTIONS

If you've actually compiled everything correctly, and your terminfo supports
colour displays, then you will now have a full colour nethack.  (And your
terminfo DOES support colour, because I'm running the same OS with full-colour
nethack running just fine...)

You can set other nifty items using NETHACKOPTIONS as well, but most of 
those are pretty well documented.

   Jerry Pierce