mirror of
https://github.com/id-Software/idsetup.git
synced 2026-03-19 08:29:45 +01:00
282 lines
4.8 KiB
C
282 lines
4.8 KiB
C
//
|
|
// MAIN.H
|
|
//
|
|
#include "setup.h"
|
|
#include "menu.h"
|
|
#include "keys.h"
|
|
|
|
// In the Project Manager, change the DEFINES for the EXE
|
|
// for the different versions of SETUP. Valid #defines are:
|
|
// DOOM // define if for DOOM
|
|
// DOOM2 // define if for DOOM II
|
|
// HERETIC // define if for HERETIC
|
|
// FRENCH // define if FRENCH VERSION (any game)
|
|
|
|
#ifdef DOOM2
|
|
#define EXENAME "DOOM2.EXE"
|
|
#define DEFAULTNAME "DEFAULT.CFG"
|
|
#define DEFAULTPATH "C:\\DOOMDATA"
|
|
#define SAVENAME "DOOMSAV%d.DSG"
|
|
#endif
|
|
|
|
#ifdef DOOM
|
|
#define EXENAME "DOOM.EXE"
|
|
#define DEFAULTNAME "DEFAULT.CFG"
|
|
#define DEFAULTPATH "C:\\DOOMDATA"
|
|
#define SAVENAME "DOOMSAV%d.DSG"
|
|
#endif
|
|
|
|
#ifdef HERETIC
|
|
#define EXENAME "HERETIC.EXE"
|
|
#define DEFAULTNAME "HERETIC.CFG"
|
|
#define DEFAULTPATH "C:\\HERETIC.CD"
|
|
#define SAVENAME "HTICSAV%d.HSG"
|
|
#endif
|
|
|
|
#ifdef STRIFE
|
|
#define EXENAME "STRIFE.EXE"
|
|
#define DEFAULTNAME "STRIFE.CFG"
|
|
#define DEFAULTPATH "C:\\STRIFE.CD"
|
|
#define SAVENAME "STRFSAV%d.DSG"
|
|
#endif
|
|
|
|
#ifdef FRENCH
|
|
|
|
#define S_NONE "AUCUNE"
|
|
#define S_PCSP "Haut-parleur PC"
|
|
#define S_CON1 "Clavier seul"
|
|
#define S_CON2 "Clavier + Souris"
|
|
#define S_CON3 "Clavier + Joystick"
|
|
|
|
#else
|
|
|
|
#define S_NONE "None"
|
|
#define S_PCSP "PC Speaker"
|
|
#define S_CON1 "Keyboard only"
|
|
#define S_CON2 "Keyboard + Mouse"
|
|
#define S_CON3 "Keyboard + Joystick"
|
|
|
|
#endif
|
|
|
|
#define MAXARGS 12
|
|
|
|
typedef enum { FALSE, TRUE } BOOL;
|
|
|
|
typedef enum
|
|
{
|
|
M_NONE,
|
|
M_PC,
|
|
M_ADLIB,
|
|
M_SB,
|
|
M_PAS,
|
|
M_GUS,
|
|
M_WAVE,
|
|
M_CANVAS,
|
|
M_GMIDI,
|
|
M_SBAWE32,
|
|
M_LAST
|
|
}SCARD;
|
|
|
|
typedef enum
|
|
{
|
|
C_KEY,
|
|
C_MOUSE,
|
|
C_JOYSTICK,
|
|
C_LAST
|
|
}CONTROL;
|
|
|
|
typedef struct
|
|
{
|
|
SCARD card;
|
|
short port;
|
|
short midiport;
|
|
short irq;
|
|
short dma;
|
|
} DMXCARD;
|
|
|
|
typedef struct
|
|
{
|
|
CONTROL control;
|
|
DMXCARD m;
|
|
DMXCARD d;
|
|
short numdig;
|
|
} DMXINFO;
|
|
|
|
typedef struct
|
|
{
|
|
int numberOfPlayers;
|
|
int skillLevel;
|
|
int deathMatch;
|
|
unsigned networkSocket;
|
|
int episode;
|
|
} net_t;
|
|
|
|
typedef struct
|
|
{
|
|
int skillLevel;
|
|
int deathMatch;
|
|
int episode;
|
|
int comport;
|
|
int comtype; // 0 = connected,1 = answer,2 = call
|
|
char phonenum[16];
|
|
} serial_t;
|
|
|
|
typedef struct
|
|
{
|
|
int up;
|
|
int down;
|
|
int left;
|
|
int right;
|
|
int fire;
|
|
int use; // ID = USE CYGNUS = USE SPECIAL WEAPON
|
|
int key1; // ID = STRAFE ON CYGNUS = CHANGE SPECIAL WEAPON
|
|
int key2; // ID = SPEED ON CYGNUS = MEGA BOMB HOT KEY
|
|
int key3; // ID = STRAFE LEFT
|
|
int key4; // ID = STRAFE RIGHT
|
|
#ifdef HERETIC
|
|
int lookdown;
|
|
int lookcenter;
|
|
int lookup;
|
|
int flydown;
|
|
int flycenter;
|
|
int flyup;
|
|
int invleft;
|
|
int invright;
|
|
#endif
|
|
#ifdef STRIFE
|
|
int lookdown;
|
|
int lookup;
|
|
int invleft;
|
|
int invright;
|
|
int invhome;
|
|
int invend;
|
|
int invuse;
|
|
int invdrop;
|
|
int invquery;
|
|
int invpop;
|
|
int healthuse;
|
|
int jump;
|
|
#endif
|
|
int mouse[3];
|
|
int joy[4];
|
|
} CONTS;
|
|
|
|
typedef enum
|
|
{
|
|
ID_FIRE, // def button 1
|
|
ID_STRAFE, // def button 3
|
|
ID_FORWARD, // def button 2
|
|
ID_USE // def button 4 joystick only
|
|
}IDCONTS;
|
|
|
|
extern int usemouse;
|
|
extern int usejoystick;
|
|
extern int comport;
|
|
|
|
typedef struct
|
|
{
|
|
char name[64];
|
|
char init[64];
|
|
char hangup[64];
|
|
char baud[8];
|
|
} modem_t;
|
|
|
|
#define MAXMODEMS 200
|
|
|
|
typedef struct
|
|
{
|
|
char name[32];
|
|
char number[16];
|
|
} phonelist_t;
|
|
|
|
#define MAXPHNLIST 40
|
|
|
|
extern char keydesc[256][10];
|
|
extern int cdrom;
|
|
extern int respawn;
|
|
extern int nomonsters;
|
|
extern int mousepresent;
|
|
extern DMXINFO lastc;
|
|
extern DMXINFO newc;
|
|
extern BOOL savemusic;
|
|
extern BOOL savefx;
|
|
extern CONTS curk;
|
|
|
|
//
|
|
// Network macros
|
|
//
|
|
extern char chatmacros[10][40];
|
|
|
|
extern net_t netinfo;
|
|
extern net_t info; // in case ESC is pressed
|
|
|
|
extern serial_t modeminfo;
|
|
extern serial_t minfo; // in case ESC is pressed
|
|
|
|
extern serial_t serialinfo;
|
|
extern serial_t sinfo; // in case ESC is pressed
|
|
|
|
void ErrorWindow(pup_t far *pup);
|
|
void StartUp(void);
|
|
void MainMenu (void);
|
|
void DrawCurrentConfig(void);
|
|
int QuitAndSave(void);
|
|
|
|
//
|
|
// Functions in other modules
|
|
//
|
|
|
|
// MUSIC.C
|
|
int SetupMusic(void);
|
|
int ChooseSbPort (DMXCARD * card);
|
|
int ChooseMidiPort (DMXCARD * card);
|
|
|
|
// WARP.C
|
|
extern int respawn;
|
|
extern int nomonsters;
|
|
extern int deathmatch2;
|
|
unsigned WarpTime(void);
|
|
|
|
// SFX.C
|
|
int SetupFX(void);
|
|
|
|
// CONTROL.C
|
|
int ChooseController(void);
|
|
|
|
// CONFIG.C
|
|
void ConfigControl (void);
|
|
void Pos(item_t *item);
|
|
void Clear(item_t *item);
|
|
|
|
// NETPLAY.C
|
|
void ChooseNetplay(void);
|
|
void AttriBar(int x,int y,int length, char attr);
|
|
|
|
// MACROS.C
|
|
void MacroConfig(void);
|
|
int EditLine(item_t *item,char *string,int maxlen);
|
|
|
|
// MODEM.C
|
|
int ModemConfig(void);
|
|
int ChooseOpponentInList(void);
|
|
extern char chosenPhoneNum[16];
|
|
|
|
// SERIAL.C
|
|
int SerialConfig(void);
|
|
|
|
// NET.C
|
|
int NetworkConfig(void);
|
|
|
|
// NETREST.C
|
|
extern char savenames[6][24];
|
|
extern int saveslot;
|
|
int RestoreNetwork(void);
|
|
void ChooseNetrestore(void);
|
|
|
|
// MODREST.C
|
|
int RestoreModem(void);
|
|
|
|
// SERREST.C
|
|
int RestoreSerial(void);
|
|
|