204 lines
4.8 KiB
C
204 lines
4.8 KiB
C
/* NetHack 3.6 windefs.h $NHDT-Date: 1432512795 2015/05/25 00:13:15 $ $NHDT-Branch: master $:$NHDT-Revision: 1.7 $ */
|
|
/* Copyright (c) Gregg Wonderly, Naperville, Illinois, 1991,1992,1993. */
|
|
/* NetHack may be freely redistributed. See license for details. */
|
|
|
|
#include <exec/types.h>
|
|
#include <exec/memory.h>
|
|
#include <exec/io.h>
|
|
#if !defined(_DCC) && !defined(__GNUC__)
|
|
#include <dos.h>
|
|
#endif
|
|
#include <exec/alerts.h>
|
|
#include <exec/devices.h>
|
|
#include <exec/execbase.h>
|
|
#include <devices/console.h>
|
|
#include <devices/conunit.h>
|
|
#include <graphics/gfxbase.h>
|
|
#include <intuition/intuition.h>
|
|
#include <intuition/intuitionbase.h>
|
|
#include <libraries/gadtools.h>
|
|
#include <libraries/dosextens.h>
|
|
#include <libraries/asl.h>
|
|
/* stddef.h is included in the precompiled version of hack.h . If we include
|
|
* it here normally (through string.h) we'll get an "illegal typedef" later
|
|
* on. This is the easiest way I can think of to fix it without messing
|
|
* around with the rest of the #includes. --AMC
|
|
*/
|
|
#if defined(_DCC) && !defined(HACK_H)
|
|
#define ptrdiff_t ptrdiff_t_
|
|
#define size_t size_t_
|
|
#define wchar_t wchar_t_
|
|
#endif
|
|
#include <ctype.h>
|
|
#undef strcmpi
|
|
#include <string.h>
|
|
#include <errno.h>
|
|
#if defined(_DCC) && !defined(HACK_H)
|
|
#undef ptrdiff_t
|
|
#undef size_t
|
|
#undef wchar_T
|
|
#endif
|
|
|
|
#ifdef IDCMP_CLOSEWINDOW
|
|
#ifndef INTUI_NEW_LOOK
|
|
#define INTUI_NEW_LOOK
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef HACK_H
|
|
#include "hack.h"
|
|
#endif
|
|
#include "wintype.h"
|
|
#include "winami.h"
|
|
#include "func_tab.h"
|
|
|
|
#ifndef CLIPPING
|
|
CLIPPING must be defined for the AMIGA version
|
|
#endif
|
|
|
|
#undef LI
|
|
#undef CO
|
|
|
|
/*#define TOPL_GETLINE /* Don't use a window for getlin() */
|
|
/*#define WINDOW_YN /* Use a window for y/n questions */
|
|
|
|
#ifdef AZTEC_C
|
|
#include <functions.h>
|
|
#else
|
|
#ifdef _DCC
|
|
#include <clib/dos_protos.h>
|
|
#include <clib/exec_protos.h>
|
|
#include <clib/console_protos.h>
|
|
#include <clib/layers_protos.h>
|
|
#include <clib/diskfont_protos.h>
|
|
#include <clib/gadtools_protos.h>
|
|
#else
|
|
#include <proto/dos.h>
|
|
#include <proto/exec.h>
|
|
#include <proto/console.h>
|
|
#include <proto/layers.h>
|
|
#include <proto/diskfont.h>
|
|
#include <proto/gadtools.h>
|
|
#include <proto/asl.h>
|
|
#endif
|
|
|
|
/* kludge - see amirip for why */
|
|
#undef red
|
|
#undef green
|
|
#undef blue
|
|
#ifdef _DCC
|
|
#include <clib/graphics_protos.h>
|
|
#else
|
|
#include <proto/graphics.h>
|
|
#endif
|
|
|
|
#ifdef _DCC
|
|
#define __asm /* DICE doesn't like __asm */
|
|
#endif
|
|
|
|
#ifndef __SASC_60
|
|
#undef index
|
|
#define index strchr
|
|
#endif
|
|
|
|
#ifdef _DCC
|
|
#include <clib/intuition_protos.h>
|
|
#else
|
|
#include <proto/intuition.h>
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef SHAREDLIB
|
|
#include "NH:sys/amiga/lib/libmacs.h"
|
|
#endif
|
|
|
|
#ifdef INTUI_NEW_LOOK
|
|
#include <utility/tagitem.h>
|
|
#endif
|
|
|
|
#define WINVERS_AMII (strcmp("amii", windowprocs.name) == 0)
|
|
#define WINVERS_AMIV (strcmp("amitile", windowprocs.name) == 0)
|
|
#define WINVERS_AMIT (strcmp("amitty", windowprocs.name) == 0)
|
|
|
|
/* cw->data[x] contains 2 characters worth of special information. These
|
|
* characters are stored at the offsets as described here.
|
|
*/
|
|
#define VATTR 0 /* Video attribute is in this slot */
|
|
#define SEL_ITEM 1 /* If this is a select item, slot is 1 else 0 */
|
|
#define SOFF 2 /* The string starts here. */
|
|
|
|
#undef NULL
|
|
#define NULL 0L
|
|
|
|
/*
|
|
* Versions we need of various libraries. We can't use LIBRARY_VERSION
|
|
* as defined in <exec/types.h> because some of the libraries we need
|
|
* don't have that version number in the 1.2 ROM.
|
|
*/
|
|
|
|
#define LIBRARY_FONT_VERSION 34L
|
|
#define LIBRARY_TILE_VERSION 37L
|
|
|
|
/* These values are just sorta suggestions in use, but are minimum
|
|
* requirements
|
|
* in reality...
|
|
*/
|
|
#define WINDOWHEIGHT 192
|
|
#define SCREENHEIGHT 200
|
|
#define WIDTH 640
|
|
|
|
/* This character is a solid block (cursor) in Hack.font */
|
|
#define CURSOR_CHAR 0x90
|
|
|
|
#define FONTHEIGHT 8
|
|
#define FONTWIDTH 8
|
|
#define FONTBASELINE 8
|
|
|
|
#define MAPFTWIDTH 8
|
|
#define MAPFTHEIGHT 8
|
|
#define MAPFTBASELN 6
|
|
|
|
/* If Compiling with the "New Look", redefine these now */
|
|
#ifdef INTUI_NEW_LOOK
|
|
#define NewWindow ExtNewWindow
|
|
#define NewScreen ExtNewScreen
|
|
#endif
|
|
|
|
#define SIZEOF_DISKNAME 8
|
|
|
|
#define CSI '\x9b'
|
|
#define NO_CHAR -1
|
|
#define RAWHELP 0x5F /* Rawkey code of the HELP key */
|
|
|
|
#define C_BLACK 0
|
|
#define C_WHITE 1
|
|
#define C_BROWN (WINVERS_AMIV ? 11 : 2)
|
|
#define C_CYAN (WINVERS_AMIV ? 2 : 3)
|
|
#define C_GREEN (WINVERS_AMIV ? 5 : 4)
|
|
#define C_MAGENTA (WINVERS_AMIV ? 10 : 5)
|
|
#define C_BLUE (WINVERS_AMIV ? 4 : 6)
|
|
#define C_RED 7
|
|
#define C_ORANGE 3
|
|
#define C_GREY 6
|
|
#define C_LTGREEN 8
|
|
#define C_YELLOW 9
|
|
#define C_GREYBLUE 12
|
|
#define C_LTBROWN 13
|
|
#define C_LTGREY 14
|
|
#define C_PEACH 15
|
|
|
|
/* Structure describing tile files */
|
|
struct PDAT
|
|
{
|
|
long nplanes; /* Depth of images */
|
|
long pbytes; /* Bytes in a plane of data */
|
|
long across; /* Number of tiles across */
|
|
long down; /* Number of tiles down */
|
|
long npics; /* Number of pictures in this file */
|
|
long xsize; /* X-size of a tile */
|
|
long ysize; /* Y-size of a-tile */
|
|
};
|
|
|
|
#undef MAXCOLORS
|
|
#define MAXCOLORS 256
|