MAIN.H 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. //
  2. // MAIN.H
  3. //
  4. #include "setup.h"
  5. #include "menu.h"
  6. #include "keys.h"
  7. // In the Project Manager, change the DEFINES for the EXE
  8. // for the different versions of SETUP. Valid #defines are:
  9. // DOOM // define if for DOOM
  10. // DOOM2 // define if for DOOM II
  11. // HERETIC // define if for HERETIC
  12. // FRENCH // define if FRENCH VERSION (any game)
  13. #ifdef DOOM2
  14. #define EXENAME "DOOM2.EXE"
  15. #define DEFAULTNAME "DEFAULT.CFG"
  16. #define DEFAULTPATH "C:\\DOOMDATA"
  17. #define SAVENAME "DOOMSAV%d.DSG"
  18. #endif
  19. #ifdef DOOM
  20. #define EXENAME "DOOM.EXE"
  21. #define DEFAULTNAME "DEFAULT.CFG"
  22. #define DEFAULTPATH "C:\\DOOMDATA"
  23. #define SAVENAME "DOOMSAV%d.DSG"
  24. #endif
  25. #ifdef HERETIC
  26. #define EXENAME "HERETIC.EXE"
  27. #define DEFAULTNAME "HERETIC.CFG"
  28. #define DEFAULTPATH "C:\\HERETIC.CD"
  29. #define SAVENAME "HTICSAV%d.HSG"
  30. #endif
  31. #ifdef STRIFE
  32. #define EXENAME "STRIFE.EXE"
  33. #define DEFAULTNAME "STRIFE.CFG"
  34. #define DEFAULTPATH "C:\\STRIFE.CD"
  35. #define SAVENAME "STRFSAV%d.DSG"
  36. #endif
  37. #ifdef FRENCH
  38. #define S_NONE "AUCUNE"
  39. #define S_PCSP "Haut-parleur PC"
  40. #define S_CON1 "Clavier seul"
  41. #define S_CON2 "Clavier + Souris"
  42. #define S_CON3 "Clavier + Joystick"
  43. #else
  44. #define S_NONE "None"
  45. #define S_PCSP "PC Speaker"
  46. #define S_CON1 "Keyboard only"
  47. #define S_CON2 "Keyboard + Mouse"
  48. #define S_CON3 "Keyboard + Joystick"
  49. #endif
  50. #define MAXARGS 12
  51. typedef enum { FALSE, TRUE } BOOL;
  52. typedef enum
  53. {
  54. M_NONE,
  55. M_PC,
  56. M_ADLIB,
  57. M_SB,
  58. M_PAS,
  59. M_GUS,
  60. M_WAVE,
  61. M_CANVAS,
  62. M_GMIDI,
  63. M_SBAWE32,
  64. M_LAST
  65. }SCARD;
  66. typedef enum
  67. {
  68. C_KEY,
  69. C_MOUSE,
  70. C_JOYSTICK,
  71. C_LAST
  72. }CONTROL;
  73. typedef struct
  74. {
  75. SCARD card;
  76. short port;
  77. short midiport;
  78. short irq;
  79. short dma;
  80. } DMXCARD;
  81. typedef struct
  82. {
  83. CONTROL control;
  84. DMXCARD m;
  85. DMXCARD d;
  86. short numdig;
  87. } DMXINFO;
  88. typedef struct
  89. {
  90. int numberOfPlayers;
  91. int skillLevel;
  92. int deathMatch;
  93. unsigned networkSocket;
  94. int episode;
  95. } net_t;
  96. typedef struct
  97. {
  98. int skillLevel;
  99. int deathMatch;
  100. int episode;
  101. int comport;
  102. int comtype; // 0 = connected,1 = answer,2 = call
  103. char phonenum[16];
  104. } serial_t;
  105. typedef struct
  106. {
  107. int up;
  108. int down;
  109. int left;
  110. int right;
  111. int fire;
  112. int use; // ID = USE CYGNUS = USE SPECIAL WEAPON
  113. int key1; // ID = STRAFE ON CYGNUS = CHANGE SPECIAL WEAPON
  114. int key2; // ID = SPEED ON CYGNUS = MEGA BOMB HOT KEY
  115. int key3; // ID = STRAFE LEFT
  116. int key4; // ID = STRAFE RIGHT
  117. #ifdef HERETIC
  118. int lookdown;
  119. int lookcenter;
  120. int lookup;
  121. int flydown;
  122. int flycenter;
  123. int flyup;
  124. int invleft;
  125. int invright;
  126. #endif
  127. #ifdef STRIFE
  128. int lookdown;
  129. int lookup;
  130. int invleft;
  131. int invright;
  132. int invhome;
  133. int invend;
  134. int invuse;
  135. int invdrop;
  136. int invquery;
  137. int invpop;
  138. int healthuse;
  139. int jump;
  140. #endif
  141. int mouse[3];
  142. int joy[4];
  143. } CONTS;
  144. typedef enum
  145. {
  146. ID_FIRE, // def button 1
  147. ID_STRAFE, // def button 3
  148. ID_FORWARD, // def button 2
  149. ID_USE // def button 4 joystick only
  150. }IDCONTS;
  151. extern int usemouse;
  152. extern int usejoystick;
  153. extern int comport;
  154. typedef struct
  155. {
  156. char name[64];
  157. char init[64];
  158. char hangup[64];
  159. char baud[8];
  160. } modem_t;
  161. #define MAXMODEMS 200
  162. typedef struct
  163. {
  164. char name[32];
  165. char number[16];
  166. } phonelist_t;
  167. #define MAXPHNLIST 40
  168. extern char keydesc[256][10];
  169. extern int cdrom;
  170. extern int respawn;
  171. extern int nomonsters;
  172. extern int mousepresent;
  173. extern DMXINFO lastc;
  174. extern DMXINFO newc;
  175. extern BOOL savemusic;
  176. extern BOOL savefx;
  177. extern CONTS curk;
  178. //
  179. // Network macros
  180. //
  181. extern char chatmacros[10][40];
  182. extern net_t netinfo;
  183. extern net_t info; // in case ESC is pressed
  184. extern serial_t modeminfo;
  185. extern serial_t minfo; // in case ESC is pressed
  186. extern serial_t serialinfo;
  187. extern serial_t sinfo; // in case ESC is pressed
  188. void ErrorWindow(pup_t far *pup);
  189. void StartUp(void);
  190. void MainMenu (void);
  191. void DrawCurrentConfig(void);
  192. int QuitAndSave(void);
  193. //
  194. // Functions in other modules
  195. //
  196. // MUSIC.C
  197. int SetupMusic(void);
  198. int ChooseSbPort (DMXCARD * card);
  199. int ChooseMidiPort (DMXCARD * card);
  200. // WARP.C
  201. extern int respawn;
  202. extern int nomonsters;
  203. extern int deathmatch2;
  204. unsigned WarpTime(void);
  205. // SFX.C
  206. int SetupFX(void);
  207. // CONTROL.C
  208. int ChooseController(void);
  209. // CONFIG.C
  210. void ConfigControl (void);
  211. void Pos(item_t *item);
  212. void Clear(item_t *item);
  213. // NETPLAY.C
  214. void ChooseNetplay(void);
  215. void AttriBar(int x,int y,int length, char attr);
  216. // MACROS.C
  217. void MacroConfig(void);
  218. int EditLine(item_t *item,char *string,int maxlen);
  219. // MODEM.C
  220. int ModemConfig(void);
  221. int ChooseOpponentInList(void);
  222. extern char chosenPhoneNum[16];
  223. // SERIAL.C
  224. int SerialConfig(void);
  225. // NET.C
  226. int NetworkConfig(void);
  227. // NETREST.C
  228. extern char savenames[6][24];
  229. extern int saveslot;
  230. int RestoreNetwork(void);
  231. void ChooseNetrestore(void);
  232. // MODREST.C
  233. int RestoreModem(void);
  234. // SERREST.C
  235. int RestoreSerial(void);