1 /*
2  * Portions of this file are copyright Rebirth contributors and licensed as
3  * described in COPYING.txt.
4  * Portions of this file are copyright Parallax Software and licensed
5  * according to the Parallax license below.
6  * See COPYING.txt for license details.
7 
8 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
9 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
10 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
11 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
12 IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
13 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
14 FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
15 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
16 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
17 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
18 */
19 
20 /*
21  *
22  * Header for text.c, including symbolics for text messages
23  *
24  */
25 
26 #pragma once
27 
28 #include "dxxsconf.h"
29 
30 #ifdef __cplusplus
31 #include <array>
32 
33 //Symbolic constants for all the strings
34 
35 #define TXT_NEW_GAME            dxx_gettext(0, "New game")
36 #define TXT_VIEW_SCORES         dxx_gettext(1, "High scores")
37 #define TXT_QUIT                dxx_gettext(2, "Quit")
38 #define TXT_CANNOT_SET_SCREEN   dxx_gettext(3, "Cannot set screen mode for game")
39 #define TXT_NO_JOYSTICK         dxx_gettext(4, "No joystick detected")
40 #define TXT_REQUIRES_VGA        dxx_gettext(5, "This game requires a VGA adapter.")
41 #define TXT_SOUND_DISABLED      dxx_gettext(8, "Sound disabled.")
42 #define TXT_CANT_INIT_GFX       dxx_gettext(9, "Can't initialize graphics, error=%d")
43 #define TXT_EXTRA_LIFE          dxx_gettext(10, "EXTRA LIFE!")
44 #define TXT_BLUE                dxx_gettext(12, "BLUE")
45 #define TXT_RED                 dxx_gettext(13, "RED")
46 #define TXT_YELLOW              dxx_gettext(14, "YELLOW")
47 #define TXT_ACCESS_DENIED       dxx_gettext(15, "Access denied")
48 #define TXT_ACCESS_GRANTED      dxx_gettext(16, "Access granted")
49 #define TXT_BOOSTED_TO          dxx_gettext(17, "boosted to")
50 #define TXT_ENERGY              dxx_gettext(18, "Energy")
51 #define TXT_SHIELD              dxx_gettext(19, "Shield")
52 #define TXT_LASER               dxx_gettext(20, "Laser")
53 #define TXT_MAXED_OUT           dxx_gettext(21, "Your %s is maxed out!")
54 #define TXT_QUAD_LASERS         dxx_gettext(22, "Quad Lasers")
55 #define TXT_ALREADY_HAVE        dxx_gettext(23, "You already have")
56 #define TXT_VULCAN_AMMO         dxx_gettext(24, "Vulcan Ammo")
57 #define TXT_VULCAN_ROUNDS       dxx_gettext(25, "Vulcan Rounds")
58 #define TXT_ALREADY_ARE         dxx_gettext(26, "You already are")
59 #define TXT_CLOAKED             dxx_gettext(27, "Cloaked")
60 #define TXT_CLOAKING_DEVICE     dxx_gettext(28, "Cloaking Device")
61 #define TXT_INVULNERABLE        dxx_gettext(29, "Invulnerable")
62 #define TXT_INVULNERABILITY     dxx_gettext(30, "Invulnerability")
63 #define TXT_CREATE_NEW          dxx_gettext(31, "<Create New>")
64 #define TXT_YES                 dxx_gettext(32, "Yes")
65 #define TXT_NO                  dxx_gettext(33, "No")
66 #define TXT_OK                  dxx_gettext(34, "Ok")
67 #define TXT_NO_DEMO_FILES       dxx_gettext(35, "No Demo Files found.")
68 #define TXT_USE_F5              dxx_gettext(36, "Use F5")
69 #define TXT_TO_CREATE_ONE       dxx_gettext(37, "during game to create one.")
70 #define TXT_NO_FILES_MATCHING   dxx_gettext(38, "No files matching")
71 #define TXT_WERE_FOUND          dxx_gettext(39, "were found!")
72 #define TXT_DELETE_PILOT        dxx_gettext(40, "Delete Pilot:")
73 #define TXT_DELETE_DEMO         dxx_gettext(41, "Delete Demo:")
74 #define TXT_COULDNT             dxx_gettext(42, "Couldn't")
75 #define TXT_EXIT_SEQUENCE       dxx_gettext(43, "Exiting the mine!")
76 #define TXT_WARNING             dxx_gettext(44, "Warning!")
77 #define TXT_UNABLE_TO_OPEN      dxx_gettext(45, "Unable to open")
78 #define TXT_COOL_SAYING         dxx_gettext(46, "Enter your cool saying.\nPress ESC when done.")
79 #define TXT_HIGH_SCORE          dxx_gettext(47, "HIGH SCORE!")
80 #define TXT_YOU_PLACED          dxx_gettext(48, "You placed")
81 #define TXT_YOU_PLACED_1ST      dxx_gettext(49, "You placed 1st!")
82 #define TXT_HIGH_SCORES         dxx_gettext(50, "HIGH SCORES")
83 #define TXT_NAME                dxx_gettext(51, "Name")
84 #define TXT_SCORE               dxx_gettext(52, "Score")
85 #define TXT_SKILL               dxx_gettext(53, "Skill")
86 #define TXT_LEVELS              dxx_gettext(54, "Levels")
87 #define TXT_TIME                dxx_gettext(55, "Time")
88 #define TXT_1ST                 dxx_gettext(57, "1st")
89 #define TXT_2ND                 dxx_gettext(58, "2nd")
90 #define TXT_3RD                 dxx_gettext(59, "3rd")
91 #define TXT_4TH                 dxx_gettext(60, "4th")
92 #define TXT_5TH                 dxx_gettext(61, "5th")
93 #define TXT_6TH                 dxx_gettext(62, "6th")
94 #define TXT_7TH                 dxx_gettext(63, "7th")
95 #define TXT_8TH                 dxx_gettext(64, "8th")
96 #define TXT_9TH                 dxx_gettext(65, "9th")
97 #define TXT_10TH                dxx_gettext(66, "10th")
98 #define TXT_EMPTY               dxx_gettext(67, "-empty-")
99 #define TXT_KILLED              dxx_gettext(68, "killed")
100 #define TXT_SUICIDE             dxx_gettext(69, "committed suicide!")
101 #define TXT_YOU                 dxx_gettext(70, "You")
102 #define TXT_YOURSELF            dxx_gettext(71, "yourself")
103 #define TXT_NO_MACRO            dxx_gettext(72, "That macro is not defined.")
104 #define TXT_SENDING             dxx_gettext(73, "Sending")
105 #define TXT_SEND_MESSAGE        dxx_gettext(74, "Send Message:")
106 #define TXT_SAYS                dxx_gettext(75, "says")
107 #define TXT_TELLS_YOU           dxx_gettext(76, "tells you")
108 #define TXT_HAS_DEST_CONTROL    dxx_gettext(77, "has destroyed the main reactor!")
109 #define TXT_CONTROL_DESTROYED   dxx_gettext(78, "The main reactor has been destroyed!")
110 #define TXT_HAS_ESCAPED         dxx_gettext(79, "has escaped the mine!")
111 #define TXT_HAS_FOUND_SECRET    dxx_gettext(80, "has found the secret level!")
112 #define TXT_HAS_LEFT_THE_GAME   dxx_gettext(81, "has left the game!")
113 #define TXT_YOU_ARE_ONLY        dxx_gettext(82, "You are the only person\nremaining in this netgame.")
114 #define TXT_OPPONENT_LEFT       dxx_gettext(83, "Your opponent has left.\nReturning to menu.")
115 #define TXT_YOU_DEST_CONTROL    dxx_gettext(84, "You destroyed the main reactor!")
116 #define TXT_DEFINE_MACRO        dxx_gettext(85, "Define Macro #")
117 #define TXT_MESSAGE_SENT_TO     dxx_gettext(86, "Message sent to")
118 #define TXT_NOBODY              dxx_gettext(87, "Nobody.")
119 #define TXT_PAUSE               dxx_gettext(88, "Pause")
120 #define TXT_CANT_PAUSE          dxx_gettext(89, "You can't pause in a multiplayer game!")
121 #define TXT_HELP_ESC            dxx_gettext(90, "ESC\t  Abort Game")
122 #define TXT_HELP_F2             dxx_gettext(91, "F2\t  Options menu")
123 #define TXT_HELP_F3             dxx_gettext(92, "F3\t  Toggle cockpit")
124 #define TXT_HELP_F5             dxx_gettext(94, "F5\t  Toggle recording")
125 #define TXT_HELP_PAUSE          dxx_gettext(95, "Pause\t  Pause")
126 #define TXT_HELP_MINUSPLUS      dxx_gettext(96, "-/+\t  Change screen size")
127 #define TXT_HELP_PRTSCN         dxx_gettext(97, "PrintScrn\t  Save screen shot")
128 #define TXT_HELP_1TO5           dxx_gettext(98, "1-5\t  Select primary weapon")
129 #define TXT_HELP_6TO10          dxx_gettext(99, "6-0\t  Select secondary weapon")
130 #define TXT_HELP_TO_VIEW        dxx_gettext(100, " To view control keys, select\nconfiguration in options menu")
131 #define TXT_KEYS                dxx_gettext(101, "KEYS")
132 #define TXT_ABORT_AUTODEMO      dxx_gettext(102, "Abort Autodemo?")
133 #define TXT_ABORT_GAME          dxx_gettext(103, "Abort Game?")
134 #define TXT_W_LASER             dxx_gettext(104, "Laser Cannon")
135 #define TXT_W_VULCAN            dxx_gettext(105, "Vulcan Cannon")
136 #define TXT_W_SPREADFIRE        dxx_gettext(106, "Spreadfire Cannon")
137 #define TXT_W_PLASMA            dxx_gettext(107, "Plasma Cannon")
138 #define TXT_W_FUSION            dxx_gettext(108, "Fusion Cannon")
139 
140 #if defined(DXX_BUILD_DESCENT_I)
141 #define TXT_COPYRIGHT           dxx_gettext(11, "Copyright (C) 1994, 1995 Parallax Software Corporation")
142 #define TXT_REGISTER_DESCENT    dxx_gettext(56, "CD-Enhanced Descent Coming Summer '95!")
143 #define TXT_W_C_MISSILE			dxx_gettext(109, "Concussion Missile")
144 #define TXT_W_H_MISSILE			dxx_gettext(110, "Homing Missile")
145 #define TXT_W_P_BOMB			dxx_gettext(111, "Proximity Bomb")
146 #define TXT_W_S_MISSILE			dxx_gettext(112, "Smart Missile")
147 #define TXT_W_M_MISSILE			dxx_gettext(113, "Mega Missile")
148 #define TXT_W_LASER_S			dxx_gettext(114, "Laser")
149 #define TXT_W_VULCAN_S			dxx_gettext(115, "Vulcan")
150 #define TXT_W_SPREADFIRE_S		dxx_gettext(116, "SPREAD")
151 #define TXT_W_PLASMA_S			dxx_gettext(117, "Plasma")
152 #define TXT_W_FUSION_S			dxx_gettext(118, "Fusion")
153 #define TXT_W_C_MISSILE_S		dxx_gettext(119, "Concsn\nMissile")
154 #define TXT_W_H_MISSILE_S		dxx_gettext(120, "Homing\nMissile")
155 #define TXT_W_P_BOMB_S			dxx_gettext(121, "Proxim.\nBomb")
156 #define TXT_W_S_MISSILE_S		dxx_gettext(122, "Smart\nMissile")
157 #define TXT_W_M_MISSILE_S		dxx_gettext(123, "Mega\nMissile")
158 #define TXT_SELECTED			dxx_gettext(124, "selected!")
159 #define TXT_DONT_HAVE			dxx_gettext(125, "You don't have the")
160 #define TXT_DONT_HAVE_AMMO		dxx_gettext(126, "You don't have ammo for the")
161 #define TXT_HAVE_NO			dxx_gettext(127, "You have no")
162 #define TXT_S				dxx_gettext(128, "s")
163 #define TXT_SX				dxx_gettext(129, "s!")
164 #define TXT_NO_PRIMARY			dxx_gettext(130, "No primary weapons available")
165 #define TXT_ALREADY_HAVE_THE		dxx_gettext(131, "You already have the")
166 #define TXT_CANT_OPEN_DOOR		dxx_gettext(132, "You cannot open this door.")
167 #define TXT_MOVE_JOYSTICK		dxx_gettext(133, "Move joystick")
168 #define TXT_TO_UL			dxx_gettext(134, "to\nthe upper-left corner")
169 #define TXT_ANY_BUTTON			dxx_gettext(135, "and press any button.")
170 #define TXT_JOYSTICK			dxx_gettext(136, "joystick")
171 #define TXT_UPPER_LEFT			dxx_gettext(137, "upper-left")
172 #define TXT_TO_LR			dxx_gettext(138, "to\nthe lower-right corner")
173 #define TXT_LOWER_RIGHT			dxx_gettext(139, "lower-right")
174 #define TXT_TO_C			dxx_gettext(140, "to\nthe center")
175 #define TXT_CENTER			dxx_gettext(141, "center")
176 #define TXT_CONTROL_KEYBOARD		dxx_gettext(142, "Keyboard only")
177 #define TXT_CONTROL_JOYSTICK		dxx_gettext(143, "Joystick")
178 #define TXT_CONTROL_FSTICKPRO		dxx_gettext(144, "CH Flightstick Pro")
179 #define TXT_CONTROL_THRUSTFCS   	dxx_gettext(145, "Thrustmaster FCS &\nWingman Extreme")
180 #define TXT_CONTROL_GGAMEPAD 		dxx_gettext(146, "Gravis Gamepad")
181 #define TXT_CONTROL_MOUSE	 	dxx_gettext(147, "Mouse")
182 #define TXT_CONTROL_CYBERMAN		dxx_gettext(148, "Cyberman")
183 #define TXT_CUST_ABOVE			dxx_gettext(149, "Customize Above")
184 #define TXT_CUST_KEYBOARD		dxx_gettext(150, "Customize Keyboard")
185 #define TXT_CONTROLS			dxx_gettext(151, "Controls")
186 #define TXT_KEYBOARD			dxx_gettext(152, "Keyboard")
187 #define TXT_REGISTRATION		dxx_gettext(172, "This copy of Descent is for use by:")
188 #define TXT_ERROR_SELECTOR		dxx_gettext(173, "Error initializing selector for segment A000.")
189 #define TXT_ERROR_GRAPHICS		dxx_gettext(174, "Error trying to initialize unsupported graphics mode.")
190 #define TXT_CALIBRATE			dxx_gettext(175, "Calibrate")
191 #define TXT_SKIP			dxx_gettext(176, "Skip")
192 #define TXT_JOYSTICK_NOT_CEN		dxx_gettext(177, "It looks like your joystick\nisn't centered.  Do you want\nto calibrate it?")
193 #define TXT_CHOOSE_INPUT		dxx_gettext(178, "Choose input device")
194 #define TXT_ERROR			dxx_gettext(179, "Error")
195 #define TXT_ERROR_PLR_VERSION 		dxx_gettext(180, "Cannot open player file\nVersion mismatch.")
196 #define TXT_DEMO_PLAYBACK		dxx_gettext(181, "Demo Playback")
197 #define TXT_DEMO_RECORDING		dxx_gettext(182, "Demo Recording")
198 #define TXT_CRUISE			dxx_gettext(183, "Cruise:")
199 #define TXT_DUMPING_SCREEN		dxx_gettext(184, "Dumping screen to")
200 #define TXT_CHEATS_ENABLED		dxx_gettext(185, "Cheats Enabled!!")
201 #define TXT_NET_GAME_CLOSED		dxx_gettext(186, "That game is closed to new players.")
202 #define TXT_NET_GAME_FULL		dxx_gettext(187, "The game is already full.")
203 #define TXT_NET_GAME_BETWEEN		dxx_gettext(188, "The game is between levels.\nTry again later.")
204 #define TXT_NET_GAME_NSELECT		dxx_gettext(189, "You were not selected for the game.")
205 #define TXT_NET_GAME_NSTART		dxx_gettext(190, "The netgame was not started.")
206 #define TXT_NET_GAME_CONNECT		dxx_gettext(191, "You are already connected.\nTry again in a minute.")
207 #define TXT_NET_GAME_WRONGLEV 		dxx_gettext(192, "Wrong level selected.\nPlease re-join.")
208 #define TXT_KILLS			dxx_gettext(193, "kills")
209 #define TXT_WAITING			dxx_gettext(194, "Waiting for other players..\n")
210 #define TXT_SURE_LEAVE_GAME		dxx_gettext(195, "Are you sure you want\nto leave the game?")
211 #define TXT_JOINING			dxx_gettext(196, "is joining the game.")
212 #define TXT_REJOIN			dxx_gettext(197, "is rejoining the game")
213 #define TXT_SORRY_ONLY			dxx_gettext(198, "Sorry, but a you can only select\nup to")
214 #define TXT_NETPLAYERS_IN		dxx_gettext(199, "netplayers for this mine.")
215 #define TXT_S_GAME			dxx_gettext(200, "'s game")
216 #define TXT_DESCRIPTION			dxx_gettext(201, "Description:")
217 #define TXT_LEVEL_			dxx_gettext(202, "Level:")
218 #define TXT_MODE			dxx_gettext(203, "Mode:")
219 #define TXT_ANARCHY			dxx_gettext(204, "Anarchy")
220 #define TXT_TEAM_ANARCHY		dxx_gettext(205, "Team Anarchy")
221 #define TXT_ANARCHY_W_ROBOTS		dxx_gettext(206, "Robo-Anarchy")
222 #define TXT_COOPERATIVE			dxx_gettext(207, "Cooperative")
223 #define TXT_OPTIONS			dxx_gettext(208, "Options:")
224 #define TXT_CLOSED_GAME			dxx_gettext(209, "Closed Game")
225 #define TXT_NETGAME_SETUP		dxx_gettext(210, "Game Setup")
226 #define TXT_LEVEL_OUT_RANGE		dxx_gettext(211, "That start level is out of range")
227 #define TXT_SORRY			dxx_gettext(212, "Sorry")
228 #define TXT_REGISTERED_ONLY		dxx_gettext(213, "That game mode is\nonly available in\nthe registered/commercial\nversion")
229 #define TXT_WAIT			dxx_gettext(214, "Wait...")
230 #define TXT_FOUND			dxx_gettext(215, "Found")
231 #define TXT_ACTIVE_GAMES		dxx_gettext(216, "active games.")
232 #define TXT_STARTING_NETGAME		dxx_gettext(217, "Starting netgame on level")
233 #define TXT_NETLEVEL_NMATCH		dxx_gettext(218, "Your level file does not\nmatch the other player's.\nCannot join game.")
234 #define TXT_TEAM			dxx_gettext(219, "Team")
235 #define TXT_TEAM_SELECTION		dxx_gettext(220, "Team selection\nSelect names to switch teams")
236 #define TXT_TEAM_MUST_ONE		dxx_gettext(221, "You must place at least\none player on each team.")
237 #define TXT_TEAM_SELECT			dxx_gettext(222, "Select up to")
238 #define TXT_TEAM_PRESS_ENTER		dxx_gettext(223, "players\nPress ENTER to begin.")
239 #define TXT_TEAM_ATLEAST_TWO		dxx_gettext(224, "You must select at least two\nplayers to start a network game")
240 #define TXT_IPX_NOT_FOUND		dxx_gettext(225, "An active IPX driver was\nnot found.  Check your\nnetwork software")
241 #define TXT_NET_FORMING			dxx_gettext(226, "   FORMING, level:")
242 #define TXT_NET_PLAYERS			dxx_gettext(227, "players:")
243 #define TXT_NET_JOIN			dxx_gettext(228, "   OPEN,    level:")
244 #define TXT_NET_CLOSED			dxx_gettext(229, "   CLOSED")
245 #define TXT_NET_BETWEEN			dxx_gettext(230, "   BETWEEN LEVELS")
246 #define TXT_NET_LEAVE			dxx_gettext(231, "\nESC to leave netgame")
247 #define TXT_NET_WAITING			dxx_gettext(232, "Waiting for signal from")
248 #define TXT_NET_TO_ENTER		dxx_gettext(233, "to enter the mine")
249 #define TXT_NET_SEARCHING		dxx_gettext(234, "Searching for Netgames...")
250 #define TXT_INVALID_CHOICE		dxx_gettext(235, "That choice is invalid.\n")
251 #define TXT_NET_GAME_BETWEEN2		dxx_gettext(236, "That game is between levels.\nWait for status to change\nand try joining again.")
252 #define TXT_VERSION_MISMATCH		dxx_gettext(237, "Your version of Descent\ndoes not match the version\nin use for that game.")
253 #define TXT_GAME_FULL			dxx_gettext(238, "That game is currently full.")
254 #define TXT_IN_PROGRESS			dxx_gettext(239, "You cannot join that\ngame in progress.")
255 #define TXT_DISCONNECTING		dxx_gettext(240, "has disconnected!")
256 #define TXT_SERIAL_OPEN_ERROR 		dxx_gettext(241, "Error opening serial driver.\nCheck your serial parameters\nAnd free conventional memory.")
257 #define TXT_CARRIER_LOST		dxx_gettext(242, "Error!\nCarrier Lost.\n  Leaving Multiplayer game.")
258 #define TXT_ERROR_SERIAL_CFG		dxx_gettext(243, "Error writing to the file\nserial.cfg.  Can't save settings.")
259 #define TXT_ERR_SER_SETTINGS		dxx_gettext(244, "Error reading serial settings.\nUsing defaults.")
260 #define TXT_CONNECT_LOST		dxx_gettext(245, "No message received from\n%s for 10 seconds.\nConnection may be lost.")
261 #define TXT_READY_DESCENT		dxx_gettext(246, "Your opponent has selected\nstart game.  Are you\nready for descent?")
262 #define TXT_CLOSED_LINK			dxx_gettext(247, "Your opponent has disconnected.")
263 #define TXT_DIAL_MODEM			dxx_gettext(248, "Dial modem...")
264 #define TXT_ANSWER_MODEM		dxx_gettext(249, "Answer modem")
265 #define TXT_NULL_MODEM			dxx_gettext(250, "Establish null-modem link")
266 #define TXT_COM_SETTINGS		dxx_gettext(251, "COM settings...")
267 #define TXT_START_GAME			dxx_gettext(252, "Start game...")
268 #define TXT_SEND_MESSAGEP		dxx_gettext(253, "Send message...")
269 #define TXT_HANGUP_MODEM		dxx_gettext(254, "Hang up modem")
270 #define TXT_CLOSE_LINK			dxx_gettext(255, "Close link")
271 #define TXT_SERIAL			dxx_gettext(256, "Serial")
272 #define TXT_LINK_ACTIVE			dxx_gettext(257, "link active to")
273 #define TXT_MODEM			dxx_gettext(258, "Modem")
274 #define TXT_NOT_CONNECTED		dxx_gettext(259, "Not currently connected")
275 #define TXT_SERIAL_GAME			dxx_gettext(260, "Serial Game")
276 #define TXT_EXIT_WILL_CLOSE		dxx_gettext(261, "Exiting this menu\nwill close the link\nContinue?")
277 #define TXT_BAUD_RATE			dxx_gettext(262, "Baud Rate:")
278 #define TXT_MODEM_INIT_STRING		dxx_gettext(263, "Modem Init String:")
279 #define TXT_ACCEPT_SAVE			dxx_gettext(264, "Accept and Save")
280 #define TXT_SERIAL_SETTINGS		dxx_gettext(265, "Serial Settings")
281 #define TXT_WARNING_16550		dxx_gettext(266, "Warning!\nYou must have a\n16550 UART\nto use 38400")
282 #define TXT_DIFFICULTY			dxx_gettext(267, "Difficulty:")
283 #define TXT_SERIAL_GAME_SETUP		dxx_gettext(268, "Serial Game Setup")
284 #define TXT_ONLY_ANARCHY		dxx_gettext(269, "Only Anarchy mode is\navailable in the\nshareware version.")
285 #define TXT_SAVE			dxx_gettext(270, "Save!")
286 #define TXT_ACCEPT			dxx_gettext(271, "Accept")
287 #define TXT_SEL_NUMBER_EDIT		dxx_gettext(272, "Select a number to edit")
288 #define TXT_EDIT_PHONE_ENTRY		dxx_gettext(273, "Edit phonebook entry")
289 #define TXT_MANUAL_ENTRY		dxx_gettext(274, "Manual Entry")
290 #define TXT_EDIT_PHONEBOOK		dxx_gettext(275, "Edit Phonebook")
291 #define TXT_SEL_NUMBER_DIAL		dxx_gettext(276, "Select a number to dial")
292 #define TXT_ENTER_NUMBER_DIAL		dxx_gettext(277, "Enter number to dial")
293 #define TXT_NO_DIAL_TONE		dxx_gettext(278, "NO DIAL TONE")
294 #define TXT_BUSY			dxx_gettext(279, "BUSY")
295 #define TXT_NO_ANSWER			dxx_gettext(280, "NO ANSWER")
296 #define TXT_NO_CARRIER			dxx_gettext(281, "NO CARRIER")
297 #define TXT_VOICE			dxx_gettext(282, "VOICE")
298 #define TXT_ERR_MODEM_RETURN		dxx_gettext(283, "Error!\nModem returned:")
299 #define TXT_CONNECT			dxx_gettext(284, "CONNECT")
300 #define TXT_BAUD_GREATER_9600 		dxx_gettext(285, "Error!\nYou must establish a\n9600 baud connection\nor higher to play.")
301 #define TXT_RING			dxx_gettext(286, "RING")
302 #define TXT_NO_SERIAL_OPT		dxx_gettext(287, "Descent was started with\nthe serial option disabled.")
303 #define TXT_RESET_MODEM			dxx_gettext(288, "Resetting Modem")
304 #define TXT_NO_MODEM			dxx_gettext(289, "No modem detected.\nCheck your com settings.")
305 #define TXT_NO_PHONENUM			dxx_gettext(290, "That phone number\nis not defined.\n")
306 #define TXT_DIALING			dxx_gettext(291, "Dialing:")
307 #define TXT_ESC_ABORT			dxx_gettext(292, "ESC to abort")
308 #define TXT_WAITING_FOR_ANS		dxx_gettext(293, "Waiting for answer...")
309 #define TXT_WAITING_FOR_CALL		dxx_gettext(294, "Waiting for call...")
310 #define TXT_WAITING_FOR_CARR		dxx_gettext(295, "Waiting for carrier...")
311 #define TXT_FAILED_TO_NEGOT		dxx_gettext(296, "Failed to negotiate!")
312 #define TXT_NEGOTIATION_FAIL		dxx_gettext(297, "Negotiation with remote player\nfailed.  Cannot continue.")
313 #define TXT_FATAL_ERROR_LEVEL		dxx_gettext(298, "Fatal error.\nMy level =")
314 #define TXT_OTHER_LEVEL			dxx_gettext(299, "Other level =")
315 #define TXT_YOUR_LEVEL			dxx_gettext(300, "Your level ")
316 #define TXT_LVL_NO_MATCH		dxx_gettext(301, "file does\nnot match")
317 #define TXT_CHECK_VERSION		dxx_gettext(302, "'s.\nCheck your versions.")
318 #define TXT_DESCENT_NO_MATCH		dxx_gettext(303, "Your version of Descent\ndoes not match that of\nyour opponent.")
319 #define TXT_OPPONENT_NO_READY		dxx_gettext(304, "Your opponent is not\nready to start the game.")
320 #define TXT_WAIT_OPPONENT		dxx_gettext(305, "Waiting for remote player...")
321 #define TXT_LOCK			dxx_gettext(306, "LOCK")
322 #define TXT_DEATHS			dxx_gettext(307, "DEATHS")
323 #define TXT_LIVES			dxx_gettext(308, "LIVES")
324 #define TXT_LVL				dxx_gettext(309, "LVL")
325 #define TXT_QUAD 			dxx_gettext(310, "QUAD")
326 #define TXT_REAR_VIEW			dxx_gettext(311, "REAR VIEW")
327 #define TXT_DIFFICULTY_1		dxx_gettext(312, "Trainee")
328 #define TXT_DIFFICULTY_2		dxx_gettext(313, "Rookie")
329 #define TXT_DIFFICULTY_3		dxx_gettext(314, "Hotshot")
330 #define TXT_DIFFICULTY_4		dxx_gettext(315, "Ace")
331 #define TXT_DIFFICULTY_5		dxx_gettext(316, "Insane")
332 #define TXT_DETAIL_1			dxx_gettext(317, "Lowest")
333 #define TXT_DETAIL_2			dxx_gettext(318, "Low")
334 #define TXT_DETAIL_3			dxx_gettext(319, "Medium")
335 #define TXT_DETAIL_4			dxx_gettext(320, "High")
336 #define TXT_DETAIL_5			dxx_gettext(321, "Highest")
337 #define TXT_DETAIL_CUSTOM_		dxx_gettext(322, "Custom...")
338 #define TXT_LOAD_GAME  			dxx_gettext(323, "Load Game...")
339 #define TXT_MULTIPLAYER_		dxx_gettext(324, "Multiplayer...")
340 #define TXT_OPTIONS_			dxx_gettext(325, "Options...")
341 #define TXT_CHANGE_PILOTS		dxx_gettext(326, "Change Pilots...")
342 #define TXT_VIEW_DEMO			dxx_gettext(327, "View Demo...")
343 #define TXT_CREDITS			dxx_gettext(328, "Credits")
344 #define TXT_ORDERING_INFO		dxx_gettext(329, "Ordering Info")
345 #define TXT_SELECT_DEMO			dxx_gettext(330, "Select Demo\n<Ctrl-D> deletes\n<Ctrl-C> converts format\nIntel <-> PowerPC")
346 #define TXT_DIFFICULTY_LEVEL		dxx_gettext(331, "Difficulty Level")
347 #define TXT_SET_TO			dxx_gettext(332, "set to")
348 #define TXT_DETAIL_LEVEL		dxx_gettext(333, "Detail Level")
349 #define TXT_OBJ_COMPLEXITY		dxx_gettext(334, "Object Complexity")
350 #define TXT_OBJ_DETAIL			dxx_gettext(335, "Object Detail")
351 #define TXT_WALL_DETAIL			dxx_gettext(336, "Wall Detail")
352 #define TXT_WALL_RENDER_DEPTH		dxx_gettext(337, "Wall Render Depth")
353 #define TXT_DEBRIS_AMOUNT		dxx_gettext(338, "Amount of Debris")
354 #define TXT_SOUND_CHANNELS		dxx_gettext(339, "Sound Channels")
355 #define TXT_LO_HI			dxx_gettext(340, "                       LO  HI")
356 #define TXT_DETAIL_CUSTOM		dxx_gettext(341, "Detail Level Customization")
357 #define TXT_START_ANY_LEVEL		dxx_gettext(342, "You may start on\nany level up to")
358 #define TXT_SELECT_START_LEV		dxx_gettext(343, "New Game\n\nSelect starting level")
359 #define TXT_ENTER_TO_CONT		dxx_gettext(344, "Press ENTER to Continue")
360 #define TXT_INVALID_LEVEL		dxx_gettext(345, "Invalid level number")
361 #define TXT_ERR_LOADING_GAME		dxx_gettext(346, "Error Loading Game")
362 #define TXT_SAVE_GAME_SLOTS		dxx_gettext(347, "Save Game\n\nSelect slot & enter save name\nPress ESC if you don't want to save")
363 #define TXT_SAVE_ERROR			dxx_gettext(348, "Save Error!")
364 #define TXT_FX_VOLUME			dxx_gettext(349, "FX Volume")
365 #define TXT_MUSIC_VOLUME		dxx_gettext(350, "Music Volume")
366 #define TXT_REVERSE_STEREO		dxx_gettext(351, "Reverse Stereo")
367 #define TXT_BRIGHTNESS			dxx_gettext(352, "Brightness")
368 #define TXT_CONTROLS_			dxx_gettext(353, "Controls...")
369 #define TXT_DETAIL_LEVELS		dxx_gettext(354, "Detail levels...")
370 #define TXT_CAL_JOYSTICK		dxx_gettext(355, "Calibrate Joystick")
371 #define TXT_JOYS_SENSITIVITY		dxx_gettext(356, "Joystick/Mouse\nSensitivity")
372 #define TXT_START_NET_GAME		dxx_gettext(357, "Start a network game...")
373 #define TXT_JOIN_NET_GAME		dxx_gettext(358, "Join a network game...\n")
374 #define TXT_MODEM_GAME			dxx_gettext(359, "Modem/serial game...")
375 #define TXT_MULTIPLAYER			dxx_gettext(360, "Multiplayer")
376 #define TXT_CONTINUE			dxx_gettext(361, "Continue")
377 #define TXT_CANT_PLAYBACK		dxx_gettext(362, "Can't playback demo")
378 #define TXT_DEMO_CORRUPT		dxx_gettext(363, "because\ndemo file contains corrupt\ndata.")
379 #define TXT_DEMO_OLD			dxx_gettext(364, "because\ndemo version is too old.")
380 #define TXT_RECORDED			dxx_gettext(365, "recorded")
381 #define TXT_WITH_REGISTERED		dxx_gettext(366, "with the registered version")
382 #define TXT_WITH_SHAREWARE		dxx_gettext(367, "with the shareware version")
383 #define TXT_OF_DESCENT			dxx_gettext(368, "of Descent.")
384 #define TXT_LEVEL_CANT_LOAD		dxx_gettext(369, "because\nlevel cannot be loaded.")
385 #define TXT_DEMO_OLD_CORRUPT		dxx_gettext(370, "Demo is probably too old\nor contains corrupt data.")
386 #define TXT_DEMO_ERR_READING		dxx_gettext(371, "Error reading demo data.")
387 #define TXT_SAVE_DEMO_AS		dxx_gettext(372, "Save Demo as:")
388 #define TXT_DEMO_USE_LETTERS		dxx_gettext(373, "Please use only letters,\nnumbers and the underscore\ncharacter in filename.")
389 #define TXT_AUTOMAP			dxx_gettext(374, "Automap")
390 #define TXT_TURN_SHIP			dxx_gettext(375, "Flight controls move")
391 #define TXT_SLIDE_UPDOWN 		dxx_gettext(376, "Accelerate/Reverse zooms in/out")
392 #define TXT_LEVEL			dxx_gettext(377, "Level")
393 #define TXT_PITCH_FORWARD		dxx_gettext(378, "Pitch forward")
394 #define TXT_PITCH_BACKWARD		dxx_gettext(379, "Pitch backward")
395 #define TXT_TURN_LEFT			dxx_gettext(380, "Turn left")
396 #define TXT_TURN_RIGHT			dxx_gettext(381, "Turn right")
397 #define TXT_SLIDE_ON			dxx_gettext(382, "Slide on")
398 #define TXT_SLIDE_LEFT			dxx_gettext(383, "Slide left")
399 #define TXT_SLIDE_RIGHT			dxx_gettext(384, "Slide right")
400 #define TXT_SLIDE_UP			dxx_gettext(385, "Slide up")
401 #define TXT_SLIDE_DOWN			dxx_gettext(386, "Slide down")
402 #define TXT_BANK_ON			dxx_gettext(387, "Bank on")
403 #define TXT_BANK_LEFT			dxx_gettext(388, "Bank left")
404 #define TXT_BANK_RIGHT			dxx_gettext(389, "Bank right")
405 #define TXT_FIRE_PRIMARY		dxx_gettext(390, "Fire primary")
406 #define TXT_FIRE_SECONDARY		dxx_gettext(391, "Fire secondary")
407 #define TXT_FIRE_FLARE			dxx_gettext(392, "Fire flare")
408 #define TXT_ACCELERATE			dxx_gettext(393, "Accelerate")
409 #define TXT_REVERSE			dxx_gettext(394, "reverse")
410 #define TXT_DROP_BOMB			dxx_gettext(395, "Drop Bomb")
411 #define TXT_CRUISE_FASTER		dxx_gettext(396, "Cruise Faster")
412 #define TXT_CRUISE_SLOWER		dxx_gettext(397, "Cruise Slower")
413 #define TXT_CRUISE_OFF			dxx_gettext(398, "Cruise Off")
414 #define TXT_PITCH_UD			dxx_gettext(399, "Pitch U/D")
415 #define TXT_TURN_LR			dxx_gettext(400, "Turn L/R")
416 #define TXT_SLIDE_LR			dxx_gettext(401, "Slide L/R")
417 #define TXT_SLIDE_UD			dxx_gettext(402, "Slide U/D")
418 #define TXT_BANK_LR			dxx_gettext(403, "Bank L/R")
419 #define TXT_THROTTLE			dxx_gettext(404, "throttle")
420 #define TXT_TEAM_ATLEAST_THREE          dxx_gettext(405, "You must select at least three\nplayers to start a team game")
421 #define TXT_NET_DISCONNECTED            dxx_gettext(406, "Disconnected")
422 #define TXT_NET_PLAYING                 dxx_gettext(407, "Playing")
423 #define TXT_NET_ESCAPED			dxx_gettext(408, "Escaped")
424 #define TXT_NET_DIED			dxx_gettext(409, "Died in mine")
425 #define TXT_NET_FOUND_SECRET		dxx_gettext(410, "Found secret level")
426 #define TXT_NET_ESCAPE_TUNNEL		dxx_gettext(411, "In Escape tunnel")
427 #define TXT_NET_RESERVED		dxx_gettext(412, "Viewing Level Scores")
428 #define TXT_WOWIE_ZOWIE			dxx_gettext(413, "Wowie Zowie Weapons!!")
429 #define TXT_ALL_KEYS			dxx_gettext(414, "All Keys!")
430 #define TXT_CLOAK			dxx_gettext(415, "Cloak")
431 #define TXT_FULL_SHIELDS		dxx_gettext(416, "Shields Recharged!")
432 #define TXT_ON				dxx_gettext(417, "On")
433 #define TXT_OFF				dxx_gettext(418, "Off")
434 #define TXT_NOT_IN_SHAREWARE		dxx_gettext(419, "Not available in shareware")
435 #define TXT_GAME_OVER			dxx_gettext(420, "Game Over")
436 #define TXT_SELECT_PILOT		dxx_gettext(421, "Select pilot\n<Ctrl-D> deletes")
437 #define TXT_ENTER_PILOT_NAME		dxx_gettext(422, "Enter your pilot name:")
438 #define TXT_PLAYER			dxx_gettext(423, "Player")
439 #define TXT_ALREADY_EXISTS		dxx_gettext(424, "already exists!")
440 #define TXT_LOADING			dxx_gettext(425, "Prepare for Descent...")
441 #define TXT_FULL_RESCUE_BONUS		dxx_gettext(426, "Full Rescue bonus:    \t")
442 #define TXT_SHIELD_BONUS		dxx_gettext(427, "Shield bonus:\t")
443 #define TXT_ENERGY_BONUS		dxx_gettext(428, "Energy bonus:\t")
444 #define TXT_HOSTAGE_BONUS		dxx_gettext(429, "Hostage bonus:    \t")
445 #define TXT_SKILL_BONUS			dxx_gettext(430, "Skill Bonus:\t")
446 #define TXT_TOTAL_BONUS			dxx_gettext(431, "Total Bonus:\t")
447 #define TXT_TOTAL_SCORE			dxx_gettext(432, "Total Score:\t")
448 #define TXT_SECRET_LEVEL		dxx_gettext(433, "Secret Level")
449 #define TXT_COMPLETE			dxx_gettext(434, "Complete")
450 #define TXT_DESTROYED			dxx_gettext(435, "Destroyed!")
451 #define TXT_SAVE_GAME			dxx_gettext(436, "Save Game?")
452 #define TXT_PRESS_CTRL_R		dxx_gettext(437, "Press <Ctrl-R> to reset")
453 #define TXT_RESET_HIGH_SCORES		dxx_gettext(438, "Reset the high scores?")
454 #define TXT_YOU_WERE			dxx_gettext(439, "You were")
455 #define TXT_WAS				dxx_gettext(440, "was")
456 #define TXT_KILLED_BY_NONPLAY		dxx_gettext(441, "killed by the reactor")
457 #define TXT_IMPORTANT_NOTE              dxx_gettext(442, "IMPORTANT NOTE")
458 #define TXT_FCS				dxx_gettext(443, "Use this option for the FCS\nand Wingman Extreme only\nwhen used alone.  If you\nalso use a WCS or FLCS you\nmust configure  for joystick.\nSee manual/readme for details.\n")
459 #define TXT_PRESS_ANY_KEY		dxx_gettext(444, "Press any key or button to continue...")
460 #define TXT_HOSTAGE_RESCUED		dxx_gettext(445, "Hostage rescued!")
461 #define TXT_INIT_VICTOR			dxx_gettext(446, "Initializing VictorMaxx tracking on COM port")
462 #define TXT_N				dxx_gettext(447, "N")
463 #define TXT_Y				dxx_gettext(448, "Y")
464 #define TXT_ANY_LEVEL			dxx_gettext(449, "Start at any level.")
465 #define TXT_SHAREWARE_DONE		dxx_gettext(450, "Shareware Levels Completed")
466 #define TXT_PRESS_NEW_KEY		dxx_gettext(451, "Press new key")
467 #define TXT_PRESS_NEW_JBUTTON		dxx_gettext(452, "Press new joystick button")
468 #define TXT_PRESS_NEW_MBUTTON		dxx_gettext(453, "Press new mouse button")
469 #define TXT_MOVE_NEW_JOY_AXIS		dxx_gettext(454, "Move new joystick axis")
470 #define TXT_MOVE_NEW_MSE_AXIS		dxx_gettext(455, "Move new mouse axis")
471 #define TXT_USING_VFX1			dxx_gettext(456, "Using VFX1 Head Tracking...Press Shift+Z during game to set zero.")
472 #define TXT_VFX1_ERROR1			dxx_gettext(457, "Error: Can't use VFX1 head tracking because no head tracking device\nwas found.")
473 #define TXT_VFX1_ERROR2			dxx_gettext(458, "Error: Can't use VFX1 head tracking because VFX1.COM does not\nappear to be loaded!")
474 #define TXT_KCONFIG_STRING_1		dxx_gettext(459, "Enter changes, ^D deletes, ^R resets defaults, Esc exits")
475 #define TXT_BUTTONS			dxx_gettext(460, " Buttons ")
476 #define TXT_AXES			dxx_gettext(461, " Axes ")
477 #define TXT_AXIS			dxx_gettext(462, "Axis")
478 #define TXT_INVERT			dxx_gettext(463, "Invert?")
479 #define TXT_BTN_1			dxx_gettext(464, "BTN 1")
480 #define TXT_BTN_2			dxx_gettext(465, "BTN 2")
481 #define TXT_BTN_3			dxx_gettext(466, "BTN 3")
482 #define TXT_BTN_4			dxx_gettext(467, "BTN 4")
483 #define TXT_TRIG			dxx_gettext(468, "TRIG")
484 #define TXT_HAT_L			dxx_gettext(469, "HAT \x81")
485 #define TXT_HAT_R			dxx_gettext(470, "HAT \x80")
486 #define TXT_HAT_U			dxx_gettext(471, "HAT \x7f")
487 #define TXT_HAT_D			dxx_gettext(472, "HAT \x82")
488 #define TXT_LEFT			dxx_gettext(473, "LEFT")
489 #define TXT_RIGHT			dxx_gettext(474, "RIGHT")
490 #define TXT_MID				dxx_gettext(475, "MID")
491 #define TXT_UP				dxx_gettext(476, "UP")
492 #define TXT_DOWN			dxx_gettext(477, "DOWN")
493 #define TXT_X1				dxx_gettext(478, "X1")
494 #define TXT_Y1				dxx_gettext(479, "Y1")
495 #define TXT_X2				dxx_gettext(480, "X2")
496 #define TXT_Y2				dxx_gettext(481, "Y2")
497 #define TXT_L_R				dxx_gettext(482, "L/R")
498 #define TXT_F_B				dxx_gettext(483, "F/B")
499 #define TXT_FORWARD			dxx_gettext(484, "forward")
500 #define TXT_MOVE_THROTTLE_F		dxx_gettext(485, "Move throttle all\nthe way forward\nand press any button")
501 #define TXT_MOVE_THROTTLE_R		dxx_gettext(486, "Move throttle all\nthe way back\nand press any button")
502 #define TXT_MOVE_THROTTLE_C		dxx_gettext(487, "Move throttle to\nits center and\npress any button")
503 #define TXT_REACTOR_EXPLODED		dxx_gettext(488, "\nReactor has exploded.")
504 #define TXT_TIME_REMAINING		dxx_gettext(489, "\nTime Remaining")
505 #define TXT_SECONDS			dxx_gettext(490, "seconds.")
506 #define TXT_DEMO_WRITE_ERROR		dxx_gettext(491, "Error writing demo file.  Current")
507 #define TXT_DEMO_SIZE			dxx_gettext(492, "demo size is")
508 #define TXT_DEMO_SAVE_BAD		dxx_gettext(493, "You are nearly out of space on\nthe current device.  Enter demo\nname now or press ESC to delete\ndemo.")
509 #define TXT_BYTE_STR			dxx_gettext(494, "bytes.")
510 #define TXT_DIED_IN_MINE		dxx_gettext(495, "You died in the mine.\n\nYour ship and its contents\nwere incinerated.")
511 #define TXT_SHIP_BONUS			dxx_gettext(496, "Ship bonus:  \t")
512 #define TXT_PHONE_NUM			dxx_gettext(497, "Phone Number")
513 #define TXT_KILL_MATRIX_TITLE		dxx_gettext(498, "ANARCHY SUMMARY")
514 #define TXT_WAIT_FOR_OK			dxx_gettext(499, "Waiting for OK to\nstart game\n")
515 #define TXT_SURE_ABORT_SYNC		dxx_gettext(500, "Aborting will quit the game\nare you sure?")
516 #define TXT_ERROR_WRITING_PLR		dxx_gettext(501, "Error writing player file.\nUnable to save current player.\n")
517 #define TXT_SHIP_DESTROYED_0		dxx_gettext(502, "Ship destroyed!")
518 #define TXT_SHIP_DESTROYED_1		dxx_gettext(503, "Ship destroyed, 1 hostage lost!")
519 #define TXT_SHIP_DESTROYED_2		dxx_gettext(504, "Ship destroyed, %i hostages lost!")
520 #define TXT_NET_FULL			dxx_gettext(505, "This socket is ready full.\nPlease restart Descent\nwith the -socket option.\n\nfor example: Descent -socket 1")
521 #define TXT_DEMO_NO_SPACE		dxx_gettext(506, "Not enough space on current\ndevice to start demo recording.")
522 #define TXT_HAT2_L			dxx_gettext(507, "HAT2\x81")
523 #define TXT_HAT2_R			dxx_gettext(508, "HAT2\x7f")
524 #define TXT_HAT2_U			dxx_gettext(509, "HAT2\x82")
525 #define TXT_HAT2_D			dxx_gettext(510, "HAT2\x80")
526 #define TXT_WARP_TO_LEVEL		dxx_gettext(511, "Warp to which level?")
527 #define TXT_TRADEMARK			dxx_gettext(512, "DESCENT is a trademark of Interplay Productions, Inc.")
528 #define TXT_NET_SYNC_FAILED		dxx_gettext(513, "Failed to join the netgame.\nYou are missing packets.  Check\nyour network card and\ntry again.")
529 
530 #define TXT_DONE			dxx_gettext(514, "done")
531 #define TXT_I_AM_A			dxx_gettext(515, "I am a")
532 #define TXT_CHEATER			dxx_gettext(516, "CHEATER!")
533 #define TXT_LOADING_DATA		dxx_gettext(517, "Loading Data")
534 #define TXT_HELP_ALT_F2			dxx_gettext(518, "ALT-F2\t  Save Game")
535 #define TXT_HELP_ALT_F3			dxx_gettext(519, "ALT-F3\t  Load Game")
536 #define TXT_ONLY_REGISTERED		dxx_gettext(520, "Only in Registered version!")
537 #define TXT_CONCUSSION			dxx_gettext(521, "Concussion")
538 #define TXT_HOMING			dxx_gettext(522, "Homing")
539 #define TXT_PROXBOMB			dxx_gettext(523, "ProxBomb")
540 #define TXT_SMART			dxx_gettext(524, "Smart")
541 #define TXT_MEGA			dxx_gettext(525, "Mega")
542 #define TXT_NOMISSION4DEMO		dxx_gettext(526, "Mission '%s' not found.\nYou must have this mission\nfile in order to playback\nthis demo.")
543 #define TXT_SHOW_IDS			dxx_gettext(527, "All player callsigns on screen")
544 #define TXT_DUPLICATE_NAME		dxx_gettext(528, "There is already a game\nin progress with that name")
545 #define TXT_ANARCHY_ONLY_MISSION	dxx_gettext(529, "This mission is designated\nAnarchy-only")
546 #define TXT_START_NOWAIT		dxx_gettext(530, "Force level start")
547 #define TXT_QUITTING_NOW		dxx_gettext(531, "Quitting now means ending the\nentire netgame\n\nAre you sure?")
548 #define TXT_MISSION_NOT_FOUND		dxx_gettext(532, "The mission for that netgame\nis not installed on your\nsystem.  Cannot join.")
549 #define TXT_MULTI_MISSION		dxx_gettext(533, "Start Multiplayer Game\n\nSelect mission")
550 #define TXT_MISSION_ERROR		dxx_gettext(534, "Error loading mission file")
551 #define TXT_COM_CUSTOM_SETTINGS		dxx_gettext(535, "Custom (return to set)")
552 #define TXT_COM_BASE			dxx_gettext(536, "Base address (in Hex)")
553 #define TXT_COM_IRQ			dxx_gettext(537, "IRQ Number")
554 #define TXT_RESET_DEFAULTS		dxx_gettext(538, "Reset to Default")
555 #define TXT_VALID_IRQS			dxx_gettext(539, "Valid IRQ values are 2-7")
556 #define TXT_NO_UART			dxx_gettext(540, "No UART was detected\nat those settings")
557 #define TXT_DEF_MACRO_1			dxx_gettext(541, "You will pay dearly for that!")
558 #define TXT_DEF_MACRO_2			dxx_gettext(542, "Revenge is mine!!")
559 #define TXT_DEF_MACRO_3			dxx_gettext(543, "Man I'm good!")
560 #define TXT_DEF_MACRO_4			dxx_gettext(544, "Its almost too easy!")
561 #define TXT_MISSION			dxx_gettext(545, "   Mission:")
562 #define TXT_VIEWING_DISTANCE		dxx_gettext(546, "+/- Changes viewing distance")
563 #define TXT_SECRET_EXIT			dxx_gettext(547, "Alternate exit found!\n\nProceeding to Secret Level!")
564 #define TXT_SHOW_ON_MAP			dxx_gettext(548, "Show all players on automap")
565 #define TXT_KILLED_BY_ROBOT		dxx_gettext(549, "Killed by a robot")
566 #define TXT_BAUD			dxx_gettext(550, "Baud")
567 #define TXT_CONSISTENCY_ERROR		dxx_gettext(551, "A consistency error has been\ndetected in your network connection.\nCheck you hardware and re-join")
568 #define TXT_PRESS_ANY_KEY2		dxx_gettext(552, "Press any key to continue (Print Screen to save screenshot)")
569 #define TXT_DEMO_SAVE_NOSPACE		dxx_gettext(553, "An error occured while writing\ndemo.  Demo is likely corrupted.\nEnter demo name now or\npress ESC to delete demo.")
570 #define TXT_CNTRLCEN_INVUL		dxx_gettext(554, "The main reactor is invulnerable for")
571 #define TXT_NO_DESTSAT_LVL		dxx_gettext(555, "The level being loaded is not\navailable in Destination Saturn.\nUnable to continue demo playback.\n\nPress any key to continue.")
572 #define TXT_REACTOR_LIFE		dxx_gettext(556, "Reactor life")
573 #define TXT_MINUTES_ABBREV		dxx_gettext(557, "min")
574 #define TXT_CURRENT_IPX_SOCKET 		dxx_gettext(558, "Current IPX Socket is default")
575 #define TXT_DOS_VERSION_1		dxx_gettext(559, "This program requires MS-DOS 5.0 or higher.\nYou are using MS-DOS")
576 #define TXT_DOS_VERSION_2		dxx_gettext(560, "You can use the -nodoscheck command line\nswitch to override this check, but it\nmay have unpredictable results, namely\nwith DOS file error handling.\n")
577 #define TXT_NOT_ENOUGH_HANDLES 		dxx_gettext(561, "Not enough file handles!")
578 #define TXT_HANDLES_1			dxx_gettext(562, "of the necessary file handles\nthat Descent requires to execute properly.  You will\nneed to increase the FILES=n line in your config.sys.")
579 #define TXT_HANDLES_2			dxx_gettext(563, "If you are running with a clean boot, then you will need\nto create a CONFIG.SYS file in your root directory, with\nthe line FILES=15 in it.  If you need help with this,\ncontact Interplay technical support.")
580 #define TXT_HANDLES_3			dxx_gettext(564, "You may also run with the -nofilecheck command line option\nthat will disable this check, but you might get errors\nwhen loading saved games or playing demos.")
581 #define TXT_AVAILABLE_MEMORY		dxx_gettext(565, "Available memory")
582 #define TXT_MEMORY_CONFIG 		dxx_gettext(566, "more bytes of DOS memory needed!")
583 #define TXT_RECONFIGURE_VMM		dxx_gettext(567, "more bytes of virtual memory needed.  Reconfigure VMM.")
584 #define TXT_MORE_MEMORY			dxx_gettext(568, "more bytes of extended/expanded memory needed!")
585 #define TXT_MORE_MEMORY_2		dxx_gettext(569, "Or else you you need to use virtual memory (See README.TXT)")
586 #define TXT_PHYSICAL_MEMORY		dxx_gettext(570, "more bytes of physical memory needed!")
587 #define TXT_PHYSICAL_MEMORY_2		dxx_gettext(571, "Check to see that your virtual memory settings allow\nyou to use all of your physical memory (See README.TXT)")
588 #define TXT_INITIALIZING_DPMI		dxx_gettext(572, "Initializing DPMI services")
589 #define TXT_INITIALIZING_CRIT		dxx_gettext(573, "Initializing critical error handler")
590 #define TXT_IGLASSES			dxx_gettext(574, "Enables Virtual I/O Iglasses! stereo display")
591 #define TXT_VIOTRACK			dxx_gettext(575, "Enables Iglasses! head tracking via COM port")
592 #define TXT_KASAN			dxx_gettext(576, "Enables Kasan's 3dMax stereo display in low res.")
593 #define TXT_KASAN_2			dxx_gettext(577, "3DBios must be installed for 3dMax operation.")
594 #define TXT_3DMAX			dxx_gettext(578, "Enables Kasan's 3dMax stereo display in high res")
595 #define TXT_PRESS_ANY_KEY3		dxx_gettext(579, "Press any key for more options...")
596 #define TXT_SOCKET			dxx_gettext(580, "Enables dynamic socket changing")
597 #define TXT_NOFILECHECK			dxx_gettext(581, "Disables the file handles check")
598 #define TXT_VERBOSE_1			dxx_gettext(582, "Getting settings from DESCENT.CFG...")
599 #define TXT_VERBOSE_2			dxx_gettext(583, "Initializing timer system...")
600 #define TXT_VERBOSE_3			dxx_gettext(584, "Initializing keyboard handler...")
601 #define TXT_VERBOSE_4			dxx_gettext(585, "Initializing mouse handler...")
602 #define TXT_VERBOSE_5			dxx_gettext(586, "Mouse support disabled...")
603 #define TXT_VERBOSE_6			dxx_gettext(587, "Initializing joystick handler...")
604 #define TXT_VERBOSE_7			dxx_gettext(588, "Slow joystick reading enabled...")
605 #define TXT_VERBOSE_8			dxx_gettext(589, "Polled joystick reading enabled...")
606 #define TXT_VERBOSE_9			dxx_gettext(590, "BIOS joystick reading enabled...")
607 #define TXT_VERBOSE_10			dxx_gettext(591, "Joystick support disabled...")
608 #define TXT_VERBOSE_11			dxx_gettext(592, "Initializing divide by zero handler...")
609 #define TXT_INITIALIZING_NETWORK 	dxx_gettext(593, "Initializing network...")
610 #define TXT_IPX_CHANNEL			dxx_gettext(594, "Using IPX network support on channel")
611 #define TXT_NO_NETWORK			dxx_gettext(595, "No IPX compatible network found.")
612 #define TXT_SOCKET_ERROR		dxx_gettext(596, "Error opening socket")
613 #define TXT_MEMORY_IPX			dxx_gettext(597, "Not enough low memory for IPX buffers.")
614 #define TXT_ERROR_IPX			dxx_gettext(598, "Error initializing IPX.  Error code:")
615 #define TXT_NETWORK_DISABLED		dxx_gettext(599, "Network support disabled...")
616 #define TXT_INITIALIZING_GRAPHICS 	dxx_gettext(600, "Initializing graphics system...")
617 #define TXT_SOUND_ERROR_OPEN		dxx_gettext(601, "SOUND: Error opening")
618 #define TXT_SOUND_ERROR_LOCK		dxx_gettext(602, "SOUND: Error locking down instruments")
619 #define TXT_SOUND_ERROR_HMI		dxx_gettext(603, "SOUND: (HMI)")
620 #define TXT_SOUND_ERROR_LOCK_DRUMS 	dxx_gettext(604, "SOUND: Error locking down drums")
621 #define TXT_SOUND_ERROR_MIDI		dxx_gettext(605, "SOUND: Error locking midi track map!")
622 #define TXT_SOUND_ERROR_MIDI_CALLBACK 	dxx_gettext(606, "SOUND: Error locking midi callback function!")
623 #define TXT_EXTERNAL_CONTROL		dxx_gettext(607, "Using external control:")
624 #define TXT_IGLASSES_ERROR_1		dxx_gettext(608, "Invalid serial port parameter for -itrak!")
625 #define TXT_IGLASSES_INIT		dxx_gettext(609, "Initializing i-glasses! head tracking on serial port %d")
626 #define TXT_IGLASSES_ON			dxx_gettext(610, "Make sure the glasses are turned on!")
627 #define TXT_PRESS_ESC_TO_ABORT 		dxx_gettext(611, "Press ESC to abort")
628 #define TXT_SERIAL_FAILURE		dxx_gettext(612, "Failed to open serial port.  Status =")
629 #define TXT_MESSAGE			dxx_gettext(613, "Message")
630 #define TXT_MACRO			dxx_gettext(614, "Macro")
631 #define TXT_ERROR_SERIAL_LOCK		dxx_gettext(615, "Error locking serial interrupt routine!")
632 #define TXT_ERROR_SERIAL_LOCK_2		dxx_gettext(616, "Error locking serial port data!")
633 #define TXT_NO_LUNACY			dxx_gettext(617, "Robots are normal")
634 #define TXT_LUNACY			dxx_gettext(618, "Robots move fast, fire seldom")
635 #define TXT_ROBOT_PAINTING_OFF 		dxx_gettext(619, "Robot painting OFF")
636 #define TXT_ROBOT_PAINTING_ON 		dxx_gettext(620, "Robot painting with texture %d")
637 
638 #define N_TEXT_STRINGS_MIN				514
639 #define N_TEXT_STRINGS                  621
640 
641 #elif defined(DXX_BUILD_DESCENT_II)
642 #define TXT_COPYRIGHT           dxx_gettext(11, "Copyright (C) 1994-1996 Parallax Software Corporation")
643 #define TXT_REGISTER_DESCENT    dxx_gettext(56, "D2 Strategy Guide available at 1-800-531-2343!")
644 #define TXT_HELP_F4             dxx_gettext(93, "F4\t  Drop marker")
645 #define TXT_W_SLASER            dxx_gettext(109, "Super Laser Cannon")
646 #define TXT_W_SVULCAN           dxx_gettext(110, "Gauss Cannon")
647 #define TXT_W_SSPREADFIRE       dxx_gettext(111, "Helix Cannon")
648 #define TXT_W_SPLASMA           dxx_gettext(112, "Phoenix Cannon")
649 #define TXT_W_SFUSION           dxx_gettext(113, "Omega Cannon")
650 #define TXT_W_C_MISSILE         dxx_gettext(114, "Concussion Missile")
651 #define TXT_W_H_MISSILE         dxx_gettext(115, "Homing Missile")
652 #define TXT_W_P_BOMB            dxx_gettext(116, "Proximity Bomb")
653 #define TXT_W_S_MISSILE         dxx_gettext(117, "Smart Missile")
654 #define TXT_W_M_MISSILE         dxx_gettext(118, "Mega Missile")
655 #define TXT_W_SMISSILE1         dxx_gettext(119, "Flash Missile")
656 #define TXT_W_SMISSILE2         dxx_gettext(120, "Guided Missile")
657 #define TXT_W_SMISSILE3         dxx_gettext(121, "Smart Mine")
658 #define TXT_W_SMISSILE4         dxx_gettext(122, "Mercury Missile")
659 #define TXT_W_SMISSILE5         dxx_gettext(123, "Earthshaker Missile")
660 #define TXT_W_LASER_S           dxx_gettext(124, "Laser")
661 #define TXT_W_VULCAN_S          dxx_gettext(125, "Vulcan")
662 #define TXT_W_SPREADFIRE_S      dxx_gettext(126, "Spread")
663 #define TXT_W_PLASMA_S          dxx_gettext(127, "Plasma")
664 #define TXT_W_FUSION_S          dxx_gettext(128, "Fusion")
665 #define TXT_W_SLASER_S          dxx_gettext(129, "Super\nLaser")
666 #define TXT_W_SVULCAN_S         dxx_gettext(130, "Gauss")
667 #define TXT_W_SSPREADFIRE_S     dxx_gettext(131, "Helix")
668 #define TXT_W_SPLASMA_S         dxx_gettext(132, "Phoenx")
669 #define TXT_W_SFUSION_S         dxx_gettext(133, "Omega")
670 #define TXT_W_C_MISSILE_S       dxx_gettext(134, "Concsn\nMissile")
671 #define TXT_W_H_MISSILE_S       dxx_gettext(135, "Homing\nMissile")
672 #define TXT_W_P_BOMB_S          dxx_gettext(136, "Proxim.\nBomb")
673 #define TXT_W_S_MISSILE_S       dxx_gettext(137, "Smart\nMissile")
674 #define TXT_W_M_MISSILE_S       dxx_gettext(138, "Mega\nMissile")
675 #define TXT_W_SMISSILE1_S       dxx_gettext(139, "Flash\nMissile")
676 #define TXT_W_SMISSILE2_S       dxx_gettext(140, "Guided\nMissile")
677 #define TXT_W_SMISSILE3_S       dxx_gettext(141, "Smart\nMine")
678 #define TXT_W_SMISSILE4_S       dxx_gettext(142, "Merc\nMissile")
679 #define TXT_W_SMISSILE5_S       dxx_gettext(143, "Shaker\nMissile")
680 #define TXT_SELECTED            dxx_gettext(144, "selected!")
681 #define TXT_DONT_HAVE           dxx_gettext(145, "You don't have the")
682 #define TXT_DONT_HAVE_AMMO      dxx_gettext(146, "You don't have ammo for the")
683 #define TXT_HAVE_NO             dxx_gettext(147, "You have no")
684 #define TXT_S                   dxx_gettext(148, "s")
685 #define TXT_SX                  dxx_gettext(149, "s!")
686 #define TXT_NO_PRIMARY          dxx_gettext(150, "No primary weapons available")
687 #define TXT_ALREADY_HAVE_THE    dxx_gettext(151, "You already have the")
688 #define TXT_CANT_OPEN_DOOR      dxx_gettext(152, "You cannot open this door")
689 #define TXT_MOVE_JOYSTICK       dxx_gettext(153, "Move joystick")
690 #define TXT_TO_UL               dxx_gettext(154, "to\nthe upper-left corner")
691 #define TXT_ANY_BUTTON          dxx_gettext(155, "and press any button.")
692 #define TXT_JOYSTICK            dxx_gettext(156, "joystick")
693 #define TXT_UPPER_LEFT          dxx_gettext(157, "upper-left")
694 #define TXT_TO_LR               dxx_gettext(158, "to\nthe lower-right corner")
695 #define TXT_LOWER_RIGHT         dxx_gettext(159, "lower-right")
696 #define TXT_TO_C                dxx_gettext(160, "to\nthe center")
697 #define TXT_CENTER              dxx_gettext(161, "center")
698 #define TXT_CONTROL_KEYBOARD    dxx_gettext(162, "Keyboard only")
699 #define TXT_CONTROL_JOYSTICK    dxx_gettext(163, "Joystick")
700 #define TXT_CONTROL_FSTICKPRO   dxx_gettext(164, "CH Flightstick Pro")
701 #define TXT_CONTROL_THRUSTFCS   dxx_gettext(165, "Thrustmaster FCS &\nWingman Extreme")
702 #define TXT_CONTROL_GGAMEPAD    dxx_gettext(166, "Gravis Gamepad")
703 #define TXT_CONTROL_MOUSE       dxx_gettext(167, "Mouse")
704 #define TXT_CONTROL_CYBERMAN    dxx_gettext(168, "Cyberman")
705 #define TXT_CONTROL_WINJOY      dxx_gettext(169, "Windows 95 Joystick")
706 #define TXT_CUST_ABOVE          dxx_gettext(170, "Customize Above")
707 #define TXT_CUST_KEYBOARD       dxx_gettext(171, "Customize Keyboard")
708 #define TXT_CONTROLS            dxx_gettext(172, "Controls")
709 #define TXT_KEYBOARD            dxx_gettext(173, "Keyboard")
710 
711 //This is where the command-line help text used to be
712 
713 #define TXT_REGISTRATION        dxx_gettext(192, "This copy of Descent 2 is for use by:")
714 #define TXT_ERROR_SELECTOR      dxx_gettext(193, "Error initializing selector for segment A000.")
715 #define TXT_ERROR_GRAPHICS      dxx_gettext(194, "Error trying to initialize unsupported graphics mode.")
716 #define TXT_CALIBRATE           dxx_gettext(195, "Calibrate")
717 #define TXT_SKIP                dxx_gettext(196, "Skip")
718 #define TXT_JOYSTICK_NOT_CEN    dxx_gettext(197, "It looks like your joystick\nisn't centered.  Do you want\nto calibrate it?")
719 #define TXT_CHOOSE_INPUT        dxx_gettext(198, "Choose input device")
720 #define TXT_ERROR               dxx_gettext(199, "Error")
721 #define TXT_ERROR_PLR_VERSION   dxx_gettext(200, "Cannot open player file\nVersion mismatch.")
722 #define TXT_DEMO_PLAYBACK       dxx_gettext(201, "Demo Playback")
723 #define TXT_DEMO_RECORDING      dxx_gettext(202, "Demo Recording")
724 #define TXT_CRUISE              dxx_gettext(203, "Cruise:")
725 #define TXT_DUMPING_SCREEN      dxx_gettext(204, "Dumping screen to")
726 #define TXT_CHEATS_ENABLED      dxx_gettext(205, "Cheats Enabled!!")
727 #define TXT_NET_GAME_CLOSED     dxx_gettext(206, "That game is closed to new players.")
728 #define TXT_NET_GAME_FULL       dxx_gettext(207, "The game is already full.")
729 #define TXT_NET_GAME_BETWEEN    dxx_gettext(208, "The game is between levels.\nTry again later.")
730 #define TXT_NET_GAME_NSELECT    dxx_gettext(209, "You were not selected for the game.")
731 #define TXT_NET_GAME_NSTART     dxx_gettext(210, "The netgame was not started.")
732 #define TXT_NET_GAME_CONNECT    dxx_gettext(211, "You are already connected.\nTry again in a minute.")
733 #define TXT_NET_GAME_WRONGLEV   dxx_gettext(212, "Wrong level selected.\nPlease re-join.")
734 #define TXT_KILLS               dxx_gettext(213, "kills")
735 #define TXT_WAITING             dxx_gettext(214, "Waiting for other players..\n")
736 #define TXT_SURE_LEAVE_GAME     dxx_gettext(215, "Are you sure you want\nto leave the game?")
737 #define TXT_JOINING             dxx_gettext(216, "is joining the game.")
738 #define TXT_REJOIN              dxx_gettext(217, "is rejoining the game")
739 #define TXT_SORRY_ONLY          dxx_gettext(218, "Sorry, but a you can only select\nup to")
740 #define TXT_NETPLAYERS_IN       dxx_gettext(219, "netplayers for this mine.")
741 #define TXT_S_GAME              dxx_gettext(220, "'s game")
742 #define TXT_DESCRIPTION         dxx_gettext(221, "Description:")
743 #define TXT_LEVEL_              dxx_gettext(222, "Level:")
744 #define TXT_MODE                dxx_gettext(223, "Mode:")
745 #define TXT_ANARCHY             dxx_gettext(224, "Anarchy")
746 #define TXT_TEAM_ANARCHY        dxx_gettext(225, "Team Anarchy")
747 #define TXT_ANARCHY_W_ROBOTS    dxx_gettext(226, "Robo-Anarchy")
748 #define TXT_COOPERATIVE         dxx_gettext(227, "Cooperative")
749 #define TXT_OPTIONS             dxx_gettext(228, "Options:")
750 #define TXT_CLOSED_GAME         dxx_gettext(229, "Closed Game")
751 #define TXT_NETGAME_SETUP       dxx_gettext(230, "Game Setup")
752 #define TXT_LEVEL_OUT_RANGE     dxx_gettext(231, "That start level is out of range")
753 #define TXT_SORRY               dxx_gettext(232, "Sorry")
754 #define TXT_REGISTERED_ONLY     dxx_gettext(233, "That game mode is\nonly available in\nthe registered/commercial\nversion")
755 #define TXT_WAIT                dxx_gettext(234, "Wait...")
756 #define TXT_FOUND               dxx_gettext(235, "Found")
757 #define TXT_ACTIVE_GAMES        dxx_gettext(236, "active games.")
758 #define TXT_STARTING_NETGAME    dxx_gettext(237, "Starting netgame on level")
759 #define TXT_NETLEVEL_NMATCH     dxx_gettext(238, "Your level file does not\nmatch the other player's.\nCannot join game.")
760 #define TXT_TEAM                dxx_gettext(239, "Team")
761 #define TXT_TEAM_SELECTION      dxx_gettext(240, "Team selection\nSelect names to switch teams")
762 #define TXT_TEAM_MUST_ONE       dxx_gettext(241, "You must place at least\none player on each team.")
763 #define TXT_TEAM_SELECT         dxx_gettext(242, "Select up to")
764 #define TXT_TEAM_PRESS_ENTER    dxx_gettext(243, "players\nPress ENTER to begin.")
765 #define TXT_TEAM_ATLEAST_TWO    dxx_gettext(244, "You must select at least two\nplayers to start a network game")
766 #define TXT_IPX_NOT_FOUND       dxx_gettext(245, "An active IPX driver was\nnot found.  Check your\nnetwork software")
767 #define TXT_NET_FORMING         dxx_gettext(246, "   FORMING, level:")
768 #define TXT_NET_PLAYERS         dxx_gettext(247, "players:")
769 #define TXT_NET_JOIN            dxx_gettext(248, "   OPEN,    level:")
770 #define TXT_NET_CLOSED          dxx_gettext(249, "   CLOSED")
771 #define TXT_NET_BETWEEN         dxx_gettext(250, "   BETWEEN LEVELS")
772 #define TXT_NET_LEAVE           dxx_gettext(251, "\nESC to leave netgame")
773 #define TXT_NET_WAITING         dxx_gettext(252, "Waiting for signal from")
774 #define TXT_NET_TO_ENTER        dxx_gettext(253, "to enter the mine")
775 #define TXT_NET_SEARCHING       dxx_gettext(254, "Searching for Netgames...")
776 #define TXT_INVALID_CHOICE      dxx_gettext(255, "That choice is invalid.\n")
777 #define TXT_NET_GAME_BETWEEN2   dxx_gettext(256, "That game is between levels.\nWait for status to change\nand try joining again.")
778 #define TXT_VERSION_MISMATCH    dxx_gettext(257, "Your version of Descent 2\ndoes not match the version\nin use for that game.")
779 #define TXT_GAME_FULL           dxx_gettext(258, "That game is currently full.")
780 #define TXT_IN_PROGRESS         dxx_gettext(259, "You cannot join that\ngame in progress.")
781 #define TXT_DISCONNECTING       dxx_gettext(260, "has disconnected!")
782 #define TXT_SERIAL_OPEN_ERROR   dxx_gettext(261, "Error opening serial driver.\nCheck your serial parameters\nAnd free conventional memory.")
783 #define TXT_CARRIER_LOST        dxx_gettext(262, "Error!\nCarrier Lost.\n  Leaving Multiplayer game.")
784 #define TXT_ERROR_SERIAL_CFG    dxx_gettext(263, "Error writing to the file\nserial.cfg.  Can't save settings.")
785 #define TXT_ERR_SER_SETTINGS    dxx_gettext(264, "Error reading serial settings.\nUsing defaults.")
786 #define TXT_CONNECT_LOST        dxx_gettext(265, "No message received from\n%s for 10 seconds.\nConnection may be lost.")
787 #define TXT_READY_DESCENT       dxx_gettext(266, "Your opponent has selected\nstart game.  Are you\nready for descent?")
788 #define TXT_CLOSED_LINK         dxx_gettext(267, "Your opponent has disconnected.")
789 #define TXT_DIAL_MODEM          dxx_gettext(268, "Dial modem...")
790 #define TXT_ANSWER_MODEM        dxx_gettext(269, "Answer modem")
791 #define TXT_NULL_MODEM          dxx_gettext(270, "Establish null-modem link")
792 #define TXT_COM_SETTINGS        dxx_gettext(271, "COM settings...")
793 #define TXT_START_GAME          dxx_gettext(272, "Start game...")
794 #define TXT_SEND_MESSAGEP       dxx_gettext(273, "Send message...")
795 #define TXT_HANGUP_MODEM        dxx_gettext(274, "Hang up modem")
796 #define TXT_CLOSE_LINK          dxx_gettext(275, "Close link")
797 #define TXT_SERIAL              dxx_gettext(276, "Serial")
798 #define TXT_LINK_ACTIVE         dxx_gettext(277, "link active to")
799 #define TXT_MODEM               dxx_gettext(278, "Modem")
800 #define TXT_NOT_CONNECTED       dxx_gettext(279, "Not currently connected")
801 #define TXT_SERIAL_GAME         dxx_gettext(280, "Serial Game")
802 #define TXT_EXIT_WILL_CLOSE     dxx_gettext(281, "Exiting this menu\nwill close the link\nContinue?")
803 #define TXT_BAUD_RATE           dxx_gettext(282, "Baud Rate:")
804 #define TXT_MODEM_INIT_STRING   dxx_gettext(283, "Modem Init String:")
805 #define TXT_ACCEPT_SAVE         dxx_gettext(284, "Accept and Save")
806 #define TXT_SERIAL_SETTINGS     dxx_gettext(285, "Serial Settings")
807 #define TXT_WARNING_16550       dxx_gettext(286, "Warning!\nYou must have a\n16550 UART\nto use 38400")
808 #define TXT_DIFFICULTY          dxx_gettext(287, "Difficulty:")
809 #define TXT_SERIAL_GAME_SETUP   dxx_gettext(288, "Serial Game Setup")
810 #define TXT_ONLY_ANARCHY        dxx_gettext(289, "Only Anarchy mode is\navailable in the\nDemo version.")
811 #define TXT_SAVE                dxx_gettext(290, "Save!")
812 #define TXT_ACCEPT              dxx_gettext(291, "Accept")
813 #define TXT_SEL_NUMBER_EDIT     dxx_gettext(292, "Select a number to edit")
814 #define TXT_EDIT_PHONE_ENTRY    dxx_gettext(293, "Edit phonebook entry")
815 #define TXT_MANUAL_ENTRY        dxx_gettext(294, "Manual Entry")
816 #define TXT_EDIT_PHONEBOOK      dxx_gettext(295, "Edit Phonebook")
817 #define TXT_SEL_NUMBER_DIAL     dxx_gettext(296, "Select a number to dial")
818 #define TXT_ENTER_NUMBER_DIAL   dxx_gettext(297, "Enter number to dial")
819 #define TXT_NO_DIAL_TONE        dxx_gettext(298, "NO DIAL TONE")
820 #define TXT_BUSY                dxx_gettext(299, "BUSY")
821 #define TXT_NO_ANSWER           dxx_gettext(300, "NO ANSWER")
822 #define TXT_NO_CARRIER          dxx_gettext(301, "NO CARRIER")
823 #define TXT_VOICE               dxx_gettext(302, "VOICE")
824 #define TXT_ERR_MODEM_RETURN    dxx_gettext(303, "Error!\nModem returned:")
825 #define TXT_CONNECT             dxx_gettext(304, "CONNECT")
826 #define TXT_BAUD_GREATER_9600   dxx_gettext(305, "Error!\nYou must establish a\n9600 baud connection\nor higher to play.")
827 #define TXT_RING                dxx_gettext(306, "RING")
828 #define TXT_NO_SERIAL_OPT       dxx_gettext(307, "Descent 2 was started with\nthe serial option disabled.")
829 #define TXT_RESET_MODEM         dxx_gettext(308, "Resetting Modem")
830 #define TXT_NO_MODEM            dxx_gettext(309, "No modem detected.\nCheck your com settings.")
831 #define TXT_NO_PHONENUM         dxx_gettext(310, "That phone number\nis not defined.\n")
832 #define TXT_DIALING             dxx_gettext(311, "Dialing:")
833 #define TXT_ESC_ABORT           dxx_gettext(312, "ESC to abort")
834 #define TXT_WAITING_FOR_ANS     dxx_gettext(313, "Waiting for answer...")
835 #define TXT_WAITING_FOR_CALL    dxx_gettext(314, "Waiting for call...")
836 #define TXT_WAITING_FOR_CARR    dxx_gettext(315, "Waiting for carrier...")
837 #define TXT_FAILED_TO_NEGOT     dxx_gettext(316, "Failed to negotiate!")
838 #define TXT_NEGOTIATION_FAIL    dxx_gettext(317, "Negotiation with remote player\nfailed.  Cannot continue.")
839 #define TXT_FATAL_ERROR_LEVEL   dxx_gettext(318, "Fatal error.\nMy level =")
840 #define TXT_OTHER_LEVEL         dxx_gettext(319, "Other level =")
841 #define TXT_YOUR_LEVEL          dxx_gettext(320, "Your level ")
842 #define TXT_LVL_NO_MATCH        dxx_gettext(321, "file does\nnot match")
843 #define TXT_CHECK_VERSION       dxx_gettext(322, "'s.\nCheck your versions.")
844 #define TXT_DESCENT_NO_MATCH    dxx_gettext(323, "Your version of Descent 2\ndoes not match that of\nyour opponent.")
845 #define TXT_OPPONENT_NO_READY   dxx_gettext(324, "Your opponent is not\nready to start the game.")
846 #define TXT_WAIT_OPPONENT       dxx_gettext(325, "Waiting for remote player...")
847 #define TXT_LOCK                dxx_gettext(326, "LOCK")
848 #define TXT_DEATHS              dxx_gettext(327, "DEATHS")
849 #define TXT_LIVES               dxx_gettext(328, "LIVES")
850 #define TXT_LVL                 dxx_gettext(329, "LVL")
851 #define TXT_QUAD                dxx_gettext(330, "QUAD")
852 #define TXT_REAR_VIEW           dxx_gettext(331, "REAR VIEW")
853 #define TXT_DIFFICULTY_1        dxx_gettext(332, "Trainee")
854 #define TXT_DIFFICULTY_2        dxx_gettext(333, "Rookie")
855 #define TXT_DIFFICULTY_3        dxx_gettext(334, "Hotshot")
856 #define TXT_DIFFICULTY_4        dxx_gettext(335, "Ace")
857 #define TXT_DIFFICULTY_5        dxx_gettext(336, "Insane")
858 #define TXT_DETAIL_1            dxx_gettext(337, "Lowest")
859 #define TXT_DETAIL_2            dxx_gettext(338, "Low")
860 #define TXT_DETAIL_3            dxx_gettext(339, "Medium")
861 #define TXT_DETAIL_4            dxx_gettext(340, "High")
862 #define TXT_DETAIL_5            dxx_gettext(341, "Highest")
863 #define TXT_DETAIL_CUSTOM_      dxx_gettext(342, "Custom...")
864 #define TXT_LOAD_GAME           dxx_gettext(343, "Load Game...")
865 #define TXT_MULTIPLAYER_        dxx_gettext(344, "Multiplayer...")
866 #define TXT_OPTIONS_            dxx_gettext(345, "Options...")
867 #define TXT_CHANGE_PILOTS       dxx_gettext(346, "Change Pilots...")
868 #define TXT_VIEW_DEMO           dxx_gettext(347, "View Demo...")
869 #define TXT_CREDITS             dxx_gettext(348, "Credits")
870 #define TXT_ORDERING_INFO       dxx_gettext(349, "Ordering Info")
871 #define TXT_SELECT_DEMO         dxx_gettext(350, "Select Demo\n<Ctrl-D> deletes\n<Ctrl-C> converts format\nIntel <-> PowerPC")
872 #define TXT_DIFFICULTY_LEVEL    dxx_gettext(351, "Difficulty Level")
873 #define TXT_SET_TO              dxx_gettext(352, "set to")
874 #define TXT_DETAIL_LEVEL        dxx_gettext(353, "Detail Level")
875 #define TXT_OBJ_COMPLEXITY      dxx_gettext(354, "Object Complexity")
876 #define TXT_OBJ_DETAIL          dxx_gettext(355, "Object Detail")
877 #define TXT_WALL_DETAIL         dxx_gettext(356, "Wall Detail")
878 #define TXT_WALL_RENDER_DEPTH   dxx_gettext(357, "Wall Render Depth")
879 #define TXT_DEBRIS_AMOUNT       dxx_gettext(358, "Amount of Debris")
880 #define TXT_SOUND_CHANNELS      dxx_gettext(359, "Sound Channels")
881 #define TXT_LO_HI               dxx_gettext(360, "                       LO  HI")
882 #define TXT_DETAIL_CUSTOM       dxx_gettext(361, "Detail Level Customization")
883 #define TXT_START_ANY_LEVEL     dxx_gettext(362, "You may start on\nany level up to")
884 #define TXT_SELECT_START_LEV    dxx_gettext(363, "New Game\n\nSelect starting level")
885 #define TXT_ENTER_TO_CONT       dxx_gettext(364, "Press ENTER to Continue")
886 #define TXT_INVALID_LEVEL       dxx_gettext(365, "Invalid level number")
887 #define TXT_ERR_LOADING_GAME    dxx_gettext(366, "Error Loading Game")
888 #define TXT_SAVE_GAME_SLOTS     dxx_gettext(367, "Save Game\n\nSelect slot & enter save name\nPress ESC if you don't want to save")
889 #define TXT_SAVE_ERROR          dxx_gettext(368, "Save Error!")
890 #define TXT_FX_VOLUME           dxx_gettext(369, "FX Volume")
891 #define TXT_MUSIC_VOLUME        dxx_gettext(370, "Music Volume")
892 #define TXT_REVERSE_STEREO      dxx_gettext(371, "Reverse Stereo")
893 #define TXT_BRIGHTNESS          dxx_gettext(372, "Brightness")
894 #define TXT_CONTROLS_           dxx_gettext(373, "Controls...")
895 #define TXT_DETAIL_LEVELS       dxx_gettext(374, "Detail levels...")
896 #define TXT_CAL_JOYSTICK        dxx_gettext(375, "Calibrate Joystick")
897 #define TXT_JOYS_SENSITIVITY    dxx_gettext(376, "Joystick/Mouse\nSensitivity")
898 #define TXT_START_IPX_NET_GAME  dxx_gettext(377, "Start an IPX network game...")
899 #define TXT_JOIN_IPX_NET_GAME   dxx_gettext(378, "Join an IPX network game...\n")
900 #define TXT_MODEM_GAME          dxx_gettext(379, "Modem/serial game...")
901 #define TXT_MULTIPLAYER         dxx_gettext(380, "Multiplayer")
902 #define TXT_CONTINUE            dxx_gettext(381, "Continue")
903 #define TXT_CANT_PLAYBACK       dxx_gettext(382, "Can't playback demo")
904 #define TXT_DEMO_CORRUPT        dxx_gettext(383, "because\ndemo file contains corrupt\ndata.")
905 #define TXT_DEMO_OLD            dxx_gettext(384, "because\ndemo version is too old.")
906 #define TXT_RECORDED            dxx_gettext(385, "recorded")
907 #define TXT_WITH_REGISTERED     dxx_gettext(386, "with the Commercial version")
908 #define TXT_WITH_SHAREWARE      dxx_gettext(387, "with the Demo version")
909 #define TXT_OF_DESCENT          dxx_gettext(388, "of Descent 2.")
910 #define TXT_LEVEL_CANT_LOAD     dxx_gettext(389, "because\nlevel cannot be loaded.")
911 #define TXT_DEMO_OLD_CORRUPT    dxx_gettext(390, "Demo is probably too old\nor contains corrupt data.")
912 #define TXT_DEMO_ERR_READING    dxx_gettext(391, "Error reading demo data.")
913 #define TXT_SAVE_DEMO_AS        dxx_gettext(392, "Save Demo as:")
914 #define TXT_DEMO_USE_LETTERS    dxx_gettext(393, "Please use only letters,\nnumbers and the underscore\ncharacter in filename.")
915 #define TXT_AUTOMAP             dxx_gettext(394, "Automap")
916 #define TXT_TURN_SHIP           dxx_gettext(395, "Flight controls move - Accel/Reverse zooms in/out")
917 #define TXT_SLIDE_UPDOWN        dxx_gettext(396, "+/- Changes viewing distance")
918 #define TXT_LEVEL               dxx_gettext(397, "Level")
919 #define TXT_PITCH_FORWARD       dxx_gettext(398, "Pitch forward")
920 #define TXT_PITCH_BACKWARD      dxx_gettext(399, "Pitch backward")
921 #define TXT_TURN_LEFT           dxx_gettext(400, "Turn left")
922 #define TXT_TURN_RIGHT          dxx_gettext(401, "Turn right")
923 #define TXT_SLIDE_ON            dxx_gettext(402, "Slide on")
924 #define TXT_SLIDE_LEFT          dxx_gettext(403, "Slide left")
925 #define TXT_SLIDE_RIGHT         dxx_gettext(404, "Slide right")
926 #define TXT_SLIDE_UP            dxx_gettext(405, "Slide up")
927 #define TXT_SLIDE_DOWN          dxx_gettext(406, "Slide down")
928 #define TXT_BANK_ON             dxx_gettext(407, "Bank on")
929 #define TXT_BANK_LEFT           dxx_gettext(408, "Bank left")
930 #define TXT_BANK_RIGHT          dxx_gettext(409, "Bank right")
931 #define TXT_FIRE_PRIMARY        dxx_gettext(410, "Fire primary")
932 #define TXT_FIRE_SECONDARY      dxx_gettext(411, "Fire secondary")
933 #define TXT_FIRE_FLARE          dxx_gettext(412, "Fire flare")
934 #define TXT_ACCELERATE          dxx_gettext(413, "Accelerate")
935 #define TXT_REVERSE             dxx_gettext(414, "reverse")
936 #define TXT_DROP_BOMB           dxx_gettext(415, "Drop Bomb")
937 #define TXT_CRUISE_FASTER       dxx_gettext(416, "Cruise Faster")
938 #define TXT_CRUISE_SLOWER       dxx_gettext(417, "Cruise Slower")
939 #define TXT_CRUISE_OFF          dxx_gettext(418, "Cruise Off")
940 #define TXT_PITCH_UD            dxx_gettext(419, "Pitch U/D")
941 #define TXT_TURN_LR             dxx_gettext(420, "Turn L/R")
942 #define TXT_SLIDE_LR            dxx_gettext(421, "Slide L/R")
943 #define TXT_SLIDE_UD            dxx_gettext(422, "Slide U/D")
944 #define TXT_BANK_LR             dxx_gettext(423, "Bank L/R")
945 #define TXT_THROTTLE            dxx_gettext(424, "throttle")
946 #define TXT_TEAM_ATLEAST_THREE  dxx_gettext(425, "You must select at least three\nplayers to start a team game")
947 #define TXT_NET_DISCONNECTED    dxx_gettext(426, "Disconnected")
948 #define TXT_NET_PLAYING         dxx_gettext(427, "Playing")
949 #define TXT_NET_ESCAPED         dxx_gettext(428, "Escaped")
950 #define TXT_NET_DIED            dxx_gettext(429, "Died in mine")
951 #define TXT_NET_FOUND_SECRET    dxx_gettext(430, "Found secret level")
952 #define TXT_NET_ESCAPE_TUNNEL   dxx_gettext(431, "In Escape tunnel")
953 #define TXT_NET_RESERVED        dxx_gettext(432, "Viewing Level Scores")
954 #define TXT_WOWIE_ZOWIE         dxx_gettext(433, "Wowie Zowie Weapons!!")
955 #define TXT_ALL_KEYS            dxx_gettext(434, "All Keys!")
956 #define TXT_CLOAK               dxx_gettext(435, "Cloak")
957 #define TXT_FULL_SHIELDS        dxx_gettext(436, "Shields Recharged!")
958 #define TXT_ON                  dxx_gettext(437, "On")
959 #define TXT_OFF                 dxx_gettext(438, "Off")
960 #define TXT_NOT_IN_SHAREWARE    dxx_gettext(439, "Not available in Demo version")
961 #define TXT_GAME_OVER           dxx_gettext(440, "Game Over")
962 #define TXT_SELECT_PILOT        dxx_gettext(441, "Select pilot\n<Ctrl-D> deletes")
963 #define TXT_ENTER_PILOT_NAME    dxx_gettext(442, "Enter your pilot name:")
964 #define TXT_PLAYER              dxx_gettext(443, "Player")
965 #define TXT_ALREADY_EXISTS      dxx_gettext(444, "already exists!")
966 #define TXT_LOADING             dxx_gettext(445, "Prepare for Descent...")
967 #define TXT_FULL_RESCUE_BONUS   dxx_gettext(446, "Full Rescue bonus:    \t")
968 #define TXT_SHIELD_BONUS        dxx_gettext(447, "Shield bonus:\t")
969 #define TXT_ENERGY_BONUS        dxx_gettext(448, "Energy bonus:\t")
970 #define TXT_HOSTAGE_BONUS       dxx_gettext(449, "Hostage bonus:    \t")
971 #define TXT_SKILL_BONUS         dxx_gettext(450, "Skill Bonus:\t")
972 #define TXT_TOTAL_BONUS         dxx_gettext(451, "Total Bonus:\t")
973 #define TXT_TOTAL_SCORE         dxx_gettext(452, "Total Score:\t")
974 #define TXT_SECRET_LEVEL        dxx_gettext(453, "Secret Level")
975 #define TXT_COMPLETE            dxx_gettext(454, "Complete")
976 #define TXT_DESTROYED           dxx_gettext(455, "Destroyed!")
977 #define TXT_SAVE_GAME           dxx_gettext(456, "Save Game?")
978 #define TXT_PRESS_CTRL_R        dxx_gettext(457, "Press <Ctrl-R> to reset")
979 #define TXT_RESET_HIGH_SCORES   dxx_gettext(458, "Reset the high scores?")
980 #define TXT_YOU_WERE            dxx_gettext(459, "You were")
981 #define TXT_WAS                 dxx_gettext(460, "was")
982 #define TXT_KILLED_BY_NONPLAY   dxx_gettext(461, "killed by the reactor")
983 #define TXT_IMPORTANT_NOTE      dxx_gettext(462, "IMPORTANT NOTE")
984 #define TXT_FCS                 dxx_gettext(463, "Use this option for the FCS\nor Wingman Extreme when\nused alone.  If you\nalso use a WCS or FLCS, you\nmust select joystick.\nSee manual/readme for details.\n")
985 #define TXT_PRESS_ANY_KEY       dxx_gettext(464, "Press any key or button to continue...")
986 #define TXT_HOSTAGE_RESCUED     dxx_gettext(465, "Hostage rescued!")
987 #define TXT_INIT_VICTOR         dxx_gettext(466, "Initializing VictorMaxx tracking on COM port")
988 #define TXT_N                   dxx_gettext(467, "N")
989 #define TXT_Y                   dxx_gettext(468, "Y")
990 #define TXT_ANY_LEVEL           dxx_gettext(469, "Start at any level.")
991 #define TXT_SHAREWARE_DONE      dxx_gettext(470, "Demo Levels Completed")
992 #define TXT_PRESS_NEW_KEY       dxx_gettext(471, "Press new key")
993 #define TXT_PRESS_NEW_JBUTTON   dxx_gettext(472, "Press new joystick button")
994 #define TXT_PRESS_NEW_MBUTTON   dxx_gettext(473, "Press new mouse button")
995 #define TXT_MOVE_NEW_JOY_AXIS   dxx_gettext(474, "Move new joystick axis")
996 #define TXT_MOVE_NEW_MSE_AXIS   dxx_gettext(475, "Move new mouse axis")
997 #define TXT_USING_VFX1          dxx_gettext(476, "Using VFX1 Head Tracking...Press Shift+Z during game to set zero.")
998 #define TXT_VFX1_ERROR1         dxx_gettext(477, "Error: Can't use VFX1 head tracking because no head tracking device\nwas found.")
999 #define TXT_VFX1_ERROR2         dxx_gettext(478, "Error: Can't use VFX1 head tracking because VFX1.COM does not\nappear to be loaded!")
1000 #define TXT_KCONFIG_STRING_1    dxx_gettext(479, "Enter changes, ^D deletes, ^R resets defaults, Esc exits")
1001 #define TXT_BUTTONS             dxx_gettext(480, " Buttons ")
1002 #define TXT_AXES                dxx_gettext(481, " Axes ")
1003 #define TXT_AXIS                dxx_gettext(482, "Axis")
1004 #define TXT_INVERT              dxx_gettext(483, "Invert?")
1005 #define TXT_BTN_1               dxx_gettext(484, "BTN 1")
1006 #define TXT_BTN_2               dxx_gettext(485, "BTN 2")
1007 #define TXT_BTN_3               dxx_gettext(486, "BTN 3")
1008 #define TXT_BTN_4               dxx_gettext(487, "BTN 4")
1009 #define TXT_TRIG                dxx_gettext(488, "TRIG")
1010 #define TXT_HAT_L               dxx_gettext(489, "HAT \x81")
1011 #define TXT_HAT_D               dxx_gettext(490, "HAT \x80")
1012 #define TXT_HAT_R               dxx_gettext(491, "HAT \x7f")
1013 #define TXT_HAT_U               dxx_gettext(492, "HAT \x82")
1014 #define TXT_LEFT                dxx_gettext(493, "LEFT")
1015 #define TXT_RIGHT               dxx_gettext(494, "RIGHT")
1016 #define TXT_MID                 dxx_gettext(495, "MID")
1017 #define TXT_UP                  dxx_gettext(496, "UP")
1018 #define TXT_DOWN                dxx_gettext(497, "DOWN")
1019 #define TXT_X1                  dxx_gettext(498, "X1")
1020 #define TXT_Y1                  dxx_gettext(499, "Y1")
1021 #define TXT_X2                  dxx_gettext(500, "X2")
1022 #define TXT_Y2                  dxx_gettext(501, "Y2")
1023 #define TXT_L_R                 dxx_gettext(502, "L/R")
1024 #define TXT_F_B                 dxx_gettext(503, "F/B")
1025 #define TXT_FORWARD             dxx_gettext(504, "forward")
1026 #define TXT_MOVE_THROTTLE_F     dxx_gettext(505, "Move throttle all\nthe way forward\nand press any button")
1027 #define TXT_MOVE_THROTTLE_R     dxx_gettext(506, "Move throttle all\nthe way back\nand press any button")
1028 #define TXT_MOVE_THROTTLE_C     dxx_gettext(507, "Move throttle to\nits center and\npress any button")
1029 #define TXT_REACTOR_EXPLODED    dxx_gettext(508, "Reactor has exploded.")
1030 #define TXT_TIME_REMAINING      dxx_gettext(509, "Time Remaining")
1031 #define TXT_SECONDS             dxx_gettext(510, "seconds.")
1032 #define TXT_DEMO_WRITE_ERROR    dxx_gettext(511, "Error writing demo file.  Current")
1033 #define TXT_DEMO_SIZE           dxx_gettext(512, "demo size is")
1034 #define TXT_DEMO_SAVE_BAD       dxx_gettext(513, "You are nearly out of space on\nthe current device.  Enter demo\nname now or press ESC to delete\ndemo.")
1035 #define TXT_BYTE_STR            dxx_gettext(514, "bytes.")
1036 #define TXT_DIED_IN_MINE        dxx_gettext(515, "You died in the mine.\n\nYour ship and its contents\nwere incinerated.")
1037 #define TXT_SHIP_BONUS          dxx_gettext(516, "Ship bonus:  \t")
1038 #define TXT_PHONE_NUM           dxx_gettext(517, "Phone Number")
1039 #define TXT_KILL_MATRIX_TITLE   dxx_gettext(518, "ANARCHY SUMMARY")
1040 #define TXT_WAIT_FOR_OK         dxx_gettext(519, "Waiting for OK to\nstart game\n")
1041 #define TXT_SURE_ABORT_SYNC     dxx_gettext(520, "Aborting will quit the game\nare you sure?")
1042 #define TXT_ERROR_WRITING_PLR   dxx_gettext(521, "Error writing player file.\nUnable to save current player.\n")
1043 #define TXT_SHIP_DESTROYED_0    dxx_gettext(522, "Ship destroyed!")
1044 #define TXT_SHIP_DESTROYED_1    dxx_gettext(523, "Ship destroyed, 1 hostage lost!")
1045 #define TXT_SHIP_DESTROYED_2    dxx_gettext(524, "Ship destroyed, %i hostages lost!")
1046 #define TXT_NET_FULL            dxx_gettext(525, "This socket is already full.\nPlease choose a different\nsocket to start on.\n\n")
1047 #define TXT_DEMO_NO_SPACE       dxx_gettext(526, "Not enough space on current\ndevice to start demo recording.")
1048 #define TXT_HAT2_L              dxx_gettext(527, "HAT2\x81")
1049 #define TXT_HAT2_R              dxx_gettext(528, "HAT2\x7f")
1050 #define TXT_HAT2_U              dxx_gettext(529, "HAT2\x82")
1051 #define TXT_HAT2_D              dxx_gettext(530, "HAT2\x80")
1052 #define TXT_WARP_TO_LEVEL       dxx_gettext(531, "Warp to which level?")
1053 #define TXT_TRADEMARK           dxx_gettext(532, "DESCENT is a trademark of Interplay Productions, Inc.")
1054 #define TXT_NET_SYNC_FAILED     dxx_gettext(533, "Failed to join the netgame.\nYou are missing packets.  Check\nyour network card and\ntry again.")
1055 #define TXT_DONE                dxx_gettext(534, "done")
1056 #define TXT_I_AM_A              dxx_gettext(535, "I am a")
1057 #define TXT_CHEATER             dxx_gettext(536, "CHEATER!")
1058 #define TXT_LOADING_DATA        dxx_gettext(537, "Loading Data")
1059 #define TXT_HELP_ALT_F2         dxx_gettext(538, "ALT-F2\t  Save Game")
1060 #define TXT_HELP_ALT_F3         dxx_gettext(539, "ALT-F3\t  Load Game")
1061 #define TXT_ONLY_REGISTERED     dxx_gettext(540, "Only in Registered version!")
1062 #define TXT_CONCUSSION          dxx_gettext(541, "Concussion")
1063 #define TXT_HOMING              dxx_gettext(542, "Homing")
1064 #define TXT_PROXBOMB            dxx_gettext(543, "ProxBomb")
1065 #define TXT_SMART               dxx_gettext(544, "SmrtMisl")
1066 #define TXT_MEGA                dxx_gettext(545, "Mega")
1067 #define TXT_NOMISSION4DEMO      dxx_gettext(546, "Mission '%s' not found.\nYou must have this mission\nfile in order to playback\nthis demo.")
1068 #define TXT_SHOW_IDS            dxx_gettext(547, "All player callsigns on screen")
1069 #define TXT_DUPLICATE_NAME      dxx_gettext(548, "There is already a game\nin progress with that name")
1070 #define TXT_ANARCHY_ONLY_MISSION dxx_gettext(549, "This mission cannot be played\nin Coop or Robo-anarchy games")
1071 #define TXT_START_NOWAIT        dxx_gettext(550, "Force level start")
1072 #define TXT_QUITTING_NOW        dxx_gettext(551, "Quitting now means ending the\nentire netgame\n\nAre you sure?")
1073 #define TXT_MISSION_NOT_FOUND   dxx_gettext(552, "The mission for that netgame\nis not installed on your\nsystem.  Cannot join.")
1074 #define TXT_MULTI_MISSION       dxx_gettext(553, "Start Multiplayer Game\n\nSelect mission")
1075 #define TXT_MISSION_ERROR       dxx_gettext(554, "Error loading mission file")
1076 #define TXT_COM_CUSTOM_SETTINGS dxx_gettext(555, "Custom (return to set)")
1077 #define TXT_COM_BASE            dxx_gettext(556, "Base address (in Hex)")
1078 #define TXT_COM_IRQ             dxx_gettext(557, "IRQ Number")
1079 #define TXT_RESET_DEFAULTS      dxx_gettext(558, "Reset to Default")
1080 #define TXT_VALID_IRQS          dxx_gettext(559, "Valid IRQ values are 2-7")
1081 #define TXT_NO_UART             dxx_gettext(560, "No UART was detected\nat those settings")
1082 #define TXT_DEF_MACRO_1         dxx_gettext(561, "You will pay dearly for that!")
1083 #define TXT_DEF_MACRO_2         dxx_gettext(562, "Revenge is mine!!")
1084 #define TXT_DEF_MACRO_3         dxx_gettext(563, "Man I'm good!")
1085 #define TXT_DEF_MACRO_4         dxx_gettext(564, "Its almost too easy!")
1086 #define TXT_MISSION             dxx_gettext(565, "   Mission:")
1087 #define TXT_AUTOMAP_MARKER      dxx_gettext(566, "1-9 selects marker to view   Ctrl-D deletes")
1088 #define TXT_SECRET_EXIT         dxx_gettext(567, "Secret Teleporter found!\n\nProceed to Secret Level!")
1089 #define TXT_SHOW_ON_MAP         dxx_gettext(568, "Show all players on automap")
1090 #define TXT_KILLED_BY_ROBOT     dxx_gettext(569, "Killed by a robot")
1091 #define TXT_BAUD                dxx_gettext(570, "Baud")
1092 #define TXT_CONSISTENCY_ERROR   dxx_gettext(571, "A consistency error has been\ndetected in your network connection.\nCheck you hardware and re-join")
1093 #define TXT_PRESS_ANY_KEY2      dxx_gettext(572, "Press any key to continue (Print Screen to save screenshot)")
1094 #define TXT_DEMO_SAVE_NOSPACE   dxx_gettext(573, "An error occured while writing\ndemo.  Demo is likely corrupted.\nEnter demo name now or\npress ESC to delete demo.")
1095 #define TXT_CNTRLCEN_INVUL      dxx_gettext(574, "The main reactor is invulnerable for")
1096 #define TXT_NO_DESTSAT_LVL      dxx_gettext(575, "The level being loaded is not\navailable in Destination Saturn.\nUnable to continue demo playback.\n\nPress any key to continue.")
1097 #define TXT_REACTOR_LIFE        dxx_gettext(576, "Reactor life")
1098 #define TXT_MINUTES_ABBREV      dxx_gettext(577, "min")
1099 #define TXT_CURRENT_IPX_SOCKET  dxx_gettext(578, "Current IPX Socket is default")
1100 #define TXT_DOS_VERSION_1       dxx_gettext(579, "This program requires MS-DOS 5.0 or higher.\nYou are using MS-DOS")
1101 #define TXT_DOS_VERSION_2       dxx_gettext(580, "You can use the -nodoscheck command line\nswitch to override this check, but it\nmay have unpredictable results, namely\nwith DOS file error handling.\n")
1102 #define TXT_NOT_ENOUGH_HANDLES  dxx_gettext(581, "Not enough file handles!")
1103 #define TXT_HANDLES_1           dxx_gettext(582, "of the necessary file handles\nthat Descent 2 requires to execute properly.  You will\nneed to increase the FILES=n line in your config.sys.")
1104 #define TXT_HANDLES_2           dxx_gettext(583, "If you are running with a clean boot, then you will need\nto create a CONFIG.SYS file in your root directory, with\nthe line FILES=15 in it.  If you need help with this,\ncontact Interplay technical support.")
1105 #define TXT_HANDLES_3           dxx_gettext(584, "You may also run with the -nofilecheck command line option\nthat will disable this check, but you might get errors\nwhen loading saved games or playing demos.")
1106 #define TXT_AVAILABLE_MEMORY    dxx_gettext(585, "Available memory")
1107 #define TXT_MEMORY_CONFIG       dxx_gettext(586, "more bytes of DOS memory needed!")
1108 #define TXT_RECONFIGURE_VMM     dxx_gettext(587, "more bytes of virtual memory needed.  Reconfigure VMM.")
1109 #define TXT_MORE_MEMORY         dxx_gettext(588, "more bytes of extended/expanded memory needed!")
1110 #define TXT_MORE_MEMORY_2       dxx_gettext(589, "Or else you you need to use virtual memory (See README.TXT)")
1111 #define TXT_PHYSICAL_MEMORY     dxx_gettext(590, "more bytes of physical memory needed!")
1112 #define TXT_PHYSICAL_MEMORY_2   dxx_gettext(591, "Check to see that your virtual memory settings allow\nyou to use all of your physical memory (See README.TXT)")
1113 #define TXT_INITIALIZING_DPMI   dxx_gettext(592, "Initializing DPMI services")
1114 #define TXT_INITIALIZING_CRIT   dxx_gettext(593, "Initializing critical error handler")
1115 #define TXT_IGLASSES            dxx_gettext(594, "Enables Virtual I/O Iglasses! stereo display")
1116 #define TXT_VIOTRACK            dxx_gettext(595, "Enables Iglasses! head tracking via COM port")
1117 #define TXT_KASAN               dxx_gettext(596, "Enables Kasan's 3dMax stereo display in low res.")
1118 #define TXT_KASAN_2             dxx_gettext(597, "3DBios must be installed for 3dMax operation.")
1119 #define TXT_3DMAX               dxx_gettext(598, "Enables Kasan's 3dMax stereo display in high res")
1120 #define TXT_PRESS_ANY_KEY3      dxx_gettext(599, "Press any key for more options...")
1121 #define TXT_SOCKET              dxx_gettext(600, "Enables dynamic socket changing")
1122 #define TXT_NOFILECHECK         dxx_gettext(601, "Disables the file handles check")
1123 #define TXT_VERBOSE_1           dxx_gettext(602, "Getting settings from DESCENT.CFG...")
1124 #define TXT_VERBOSE_2           dxx_gettext(603, "Initializing timer system...")
1125 #define TXT_VERBOSE_3           dxx_gettext(604, "Initializing keyboard handler...")
1126 #define TXT_VERBOSE_4           dxx_gettext(605, "Initializing mouse handler...")
1127 #define TXT_VERBOSE_5           dxx_gettext(606, "Mouse support disabled...")
1128 #define TXT_VERBOSE_6           dxx_gettext(607, "Initializing joystick handler...")
1129 #define TXT_VERBOSE_7           dxx_gettext(608, "Slow joystick reading enabled...")
1130 #define TXT_VERBOSE_8           dxx_gettext(609, "Polled joystick reading enabled...")
1131 #define TXT_VERBOSE_9           dxx_gettext(610, "BIOS joystick reading enabled...")
1132 #define TXT_VERBOSE_10          dxx_gettext(611, "Joystick support disabled...")
1133 #define TXT_VERBOSE_11          dxx_gettext(612, "Initializing divide by zero handler...")
1134 #define TXT_INITIALIZING_NETWORK dxx_gettext(613, "Initializing network...")
1135 #define TXT_IPX_CHANNEL         dxx_gettext(614, "Using IPX network support on channel")
1136 #define TXT_NO_NETWORK          dxx_gettext(615, "No IPX compatible network found.")
1137 #define TXT_SOCKET_ERROR        dxx_gettext(616, "Error opening socket")
1138 #define TXT_MEMORY_IPX          dxx_gettext(617, "Not enough low memory for IPX buffers.")
1139 #define TXT_ERROR_IPX           dxx_gettext(618, "Error initializing IPX.  Error code:")
1140 #define TXT_NETWORK_DISABLED    dxx_gettext(619, "Network support disabled...")
1141 #define TXT_INITIALIZING_GRAPHICS dxx_gettext(620, "Initializing graphics system...")
1142 #define TXT_SOUND_ERROR_OPEN    dxx_gettext(621, "SOUND: Error opening")
1143 #define TXT_SOUND_ERROR_LOCK    dxx_gettext(622, "SOUND: Error locking down instruments")
1144 #define TXT_SOUND_ERROR_HMI     dxx_gettext(623, "SOUND: (HMI)")
1145 #define TXT_SOUND_ERROR_LOCK_DRUMS dxx_gettext(624, "SOUND: Error locking down drums")
1146 #define TXT_SOUND_ERROR_MIDI    dxx_gettext(625, "SOUND: Error locking midi track map!")
1147 #define TXT_SOUND_ERROR_MIDI_CALLBACK dxx_gettext(626, "SOUND: Error locking midi callback function!")
1148 #define TXT_EXTERNAL_CONTROL    dxx_gettext(627, "Using external control:")
1149 #define TXT_IGLASSES_ERROR_1    dxx_gettext(628, "Invalid serial port parameter for -itrak!")
1150 #define TXT_IGLASSES_INIT       dxx_gettext(629, "Initializing i-glasses! head tracking on serial port %d")
1151 #define TXT_IGLASSES_ON         dxx_gettext(630, "Make sure the glasses are turned on!")
1152 #define TXT_PRESS_ESC_TO_ABORT  dxx_gettext(631, "Press ESC to abort")
1153 #define TXT_SERIAL_FAILURE      dxx_gettext(632, "Failed to open serial port.  Status =")
1154 #define TXT_MESSAGE             dxx_gettext(633, "Message")
1155 #define TXT_MACRO               dxx_gettext(634, "Macro")
1156 #define TXT_ERROR_SERIAL_LOCK   dxx_gettext(635, "Error locking serial interrupt routine!")
1157 #define TXT_ERROR_SERIAL_LOCK_2 dxx_gettext(636, "Error locking serial port data!")
1158 #define TXT_NO_LUNACY           dxx_gettext(637, "Robots are normal")
1159 #define TXT_LUNACY              dxx_gettext(638, "Robots move fast, fire seldom")
1160 #define TXT_ROBOT_PAINTING_OFF  dxx_gettext(639, "Robot painting OFF")
1161 #define TXT_ROBOT_PAINTING_ON   dxx_gettext(640, "Robot painting with texture %d")
1162 #define TXT_START_TCP_NET_GAME  dxx_gettext(641, "Start a TCPIP network game...")
1163 #define TXT_JOIN_TCP_NET_GAME   dxx_gettext(642, "Join a TCPIP network game...\n")
1164 #define TXT_AFTERBURNER         dxx_gettext(643, "Afterburner")
1165 
1166 //hey: there's a lot of empty slots up from 173-192, where
1167 //the commandline help used to be.  Add new things there
1168 
1169 #define N_TEXT_STRINGS          649
1170 #endif
1171 
1172 #define dxx_text_ensure_simple_expr(E,T)	((void)(E), (Int3()), (T))
1173 
1174 #if defined(DXX_BUILD_DESCENT_I)
1175 #define _D2X_PRIMARY_SUPER_WEAPON_NAMES(u)
1176 #define _D2X_SECONDARY_SUPER_WEAPON_NAMES(u)
1177 #define _D2X_PRIMARY_SUPER_WEAPON_NAMES_SHORT(u)
1178 #define _D2X_SECONDARY_SUPER_WEAPON_NAMES_SHORT(u)
1179 #elif defined(DXX_BUILD_DESCENT_II)
1180 #define _D2X_PRIMARY_SUPER_WEAPON_NAMES(u)	\
1181 	((u) == primary_weapon_index_t::SUPER_LASER_INDEX) ? TXT_W_SLASER :	\
1182 	((u) == primary_weapon_index_t::GAUSS_INDEX) ? TXT_W_SVULCAN :	\
1183 	((u) == primary_weapon_index_t::HELIX_INDEX) ? TXT_W_SSPREADFIRE :	\
1184 	((u) == primary_weapon_index_t::PHOENIX_INDEX) ? TXT_W_SPLASMA :	\
1185 	((u) == primary_weapon_index_t::OMEGA_INDEX) ? TXT_W_SFUSION :	\
1186 
1187 #define _D2X_SECONDARY_SUPER_WEAPON_NAMES(u)	\
1188 	((u) == SMISSILE1_INDEX) ? TXT_W_SMISSILE1 :	\
1189 	((u) == GUIDED_INDEX) ? TXT_W_SMISSILE2 :	\
1190 	((u) == SMART_MINE_INDEX) ? TXT_W_SMISSILE3 :	\
1191 	((u) == SMISSILE4_INDEX) ? TXT_W_SMISSILE4 :	\
1192 	((u) == SMISSILE5_INDEX) ? TXT_W_SMISSILE5 :	\
1193 
1194 #define _D2X_PRIMARY_SUPER_WEAPON_NAMES_SHORT(u)	\
1195 	((u) == primary_weapon_index_t::SUPER_LASER_INDEX) ? TXT_W_SLASER_S :	\
1196 	((u) == primary_weapon_index_t::GAUSS_INDEX) ? TXT_W_SVULCAN_S :	\
1197 	((u) == primary_weapon_index_t::HELIX_INDEX) ? TXT_W_SSPREADFIRE_S :	\
1198 	((u) == primary_weapon_index_t::PHOENIX_INDEX) ? TXT_W_SPLASMA_S :	\
1199 	((u) == primary_weapon_index_t::OMEGA_INDEX) ? TXT_W_SFUSION_S :	\
1200 
1201 #define _D2X_SECONDARY_SUPER_WEAPON_NAMES_SHORT(u)	\
1202 	((u) == SMISSILE1_INDEX) ? TXT_W_SMISSILE1_S :	\
1203 	((u) == GUIDED_INDEX) ? TXT_W_SMISSILE2_S :	\
1204 	((u) == SMART_MINE_INDEX) ? TXT_W_SMISSILE3_S :	\
1205 	((u) == SMISSILE4_INDEX) ? TXT_W_SMISSILE4_S :	\
1206 	((u) == SMISSILE5_INDEX) ? TXT_W_SMISSILE5_S :	\
1207 
1208 #endif
1209 
1210 #define PRIMARY_WEAPON_NAMES(u)	(	\
1211 	((u) == primary_weapon_index_t::LASER_INDEX) ? TXT_W_LASER :	\
1212 	((u) == primary_weapon_index_t::VULCAN_INDEX) ? TXT_W_VULCAN :	\
1213 	((u) == primary_weapon_index_t::SPREADFIRE_INDEX) ? TXT_W_SPREADFIRE :	\
1214 	((u) == primary_weapon_index_t::PLASMA_INDEX) ? TXT_W_PLASMA :	\
1215 	((u) == primary_weapon_index_t::FUSION_INDEX) ? TXT_W_FUSION :	\
1216 	_D2X_PRIMARY_SUPER_WEAPON_NAMES((u))	\
1217 	(dxx_text_ensure_simple_expr(&(u), TXT_W_LASER))	\
1218 	)
1219 
1220 #define SECONDARY_WEAPON_NAMES(u)	(	\
1221 	((u) == CONCUSSION_INDEX) ? TXT_W_C_MISSILE :	\
1222 	((u) == HOMING_INDEX) ? TXT_W_H_MISSILE :	\
1223 	((u) == PROXIMITY_INDEX) ? TXT_W_P_BOMB :	\
1224 	((u) == SMART_INDEX) ? TXT_W_S_MISSILE :	\
1225 	((u) == MEGA_INDEX) ? TXT_W_M_MISSILE :	\
1226 	_D2X_SECONDARY_SUPER_WEAPON_NAMES((u))	\
1227 	(dxx_text_ensure_simple_expr(&(u), TXT_W_C_MISSILE))	\
1228 	)
1229 
1230 #define PRIMARY_WEAPON_NAMES_SHORT(u)	(	\
1231 	((u) == primary_weapon_index_t::LASER_INDEX) ? TXT_W_LASER_S :	\
1232 	((u) == primary_weapon_index_t::VULCAN_INDEX) ? TXT_W_VULCAN_S :	\
1233 	((u) == primary_weapon_index_t::SPREADFIRE_INDEX) ? TXT_W_SPREADFIRE_S :	\
1234 	((u) == primary_weapon_index_t::PLASMA_INDEX) ? TXT_W_PLASMA_S :	\
1235 	((u) == primary_weapon_index_t::FUSION_INDEX) ? TXT_W_FUSION_S :	\
1236 	_D2X_PRIMARY_SUPER_WEAPON_NAMES_SHORT((u))	\
1237 	(dxx_text_ensure_simple_expr(&(u), TXT_W_LASER_S))	\
1238 	)
1239 
1240 #define SECONDARY_WEAPON_NAMES_SHORT(u)	(	\
1241 	((u) == CONCUSSION_INDEX) ? TXT_W_C_MISSILE_S :	\
1242 	((u) == HOMING_INDEX) ? TXT_W_H_MISSILE_S :	\
1243 	((u) == PROXIMITY_INDEX) ? TXT_W_P_BOMB_S :	\
1244 	((u) == SMART_INDEX) ? TXT_W_S_MISSILE_S :	\
1245 	((u) == MEGA_INDEX) ? TXT_W_M_MISSILE_S :	\
1246 	_D2X_SECONDARY_SUPER_WEAPON_NAMES_SHORT((u))	\
1247 	(dxx_text_ensure_simple_expr(&(u), TXT_W_C_MISSILE_S))	\
1248 	)
1249 
1250 #define NET_DUMP_STRINGS(u)	(	\
1251 	((u) == DUMP_CLOSED) ? TXT_NET_GAME_CLOSED :	\
1252 	((u) == DUMP_FULL) ? TXT_NET_GAME_FULL	:	\
1253 	((u) == DUMP_ENDLEVEL) ? TXT_NET_GAME_BETWEEN	:	\
1254 	((u) == DUMP_DORK) ? TXT_NET_GAME_NSELECT	:	\
1255 	((u) == DUMP_ABORTED) ? TXT_NET_GAME_NSTART	:	\
1256 	((u) == DUMP_CONNECTED) ? TXT_NET_GAME_CONNECT	:	\
1257 	((u) == DUMP_LEVEL) ? TXT_NET_GAME_WRONGLEV	:	\
1258 	(dxx_text_ensure_simple_expr(&(u), TXT_NET_GAME_CLOSED))	\
1259 	)
1260 #define MENU_DIFFICULTY_TEXT(u)	(	\
1261 	((u) == Difficulty_0) ? TXT_DIFFICULTY_1	:	\
1262 	((u) == Difficulty_1) ? TXT_DIFFICULTY_2	:	\
1263 	((u) == Difficulty_2) ? TXT_DIFFICULTY_3	:	\
1264 	((u) == Difficulty_3) ? TXT_DIFFICULTY_4	:	\
1265 	((u) == Difficulty_4) ? TXT_DIFFICULTY_5	:	\
1266 		 /* &u is ill-formed when u is a literal number */	\
1267 	(dxx_text_ensure_simple_expr(NULL, TXT_DIFFICULTY_1))	\
1268 	)
1269 #define MENU_DETAIL_TEXT(u)	(	\
1270 	((u) == 0) ? TXT_DETAIL_1	:	\
1271 	((u) == 1) ? TXT_DETAIL_2	:	\
1272 	((u) == 2) ? TXT_DETAIL_3	:	\
1273 	((u) == 3) ? TXT_DETAIL_4	:	\
1274 	((u) == 4) ? TXT_DETAIL_5	:	\
1275 	(dxx_text_ensure_simple_expr(&(u), TXT_DETAIL_1))	\
1276 	)
1277 
1278 void decode_text_line(char *text_line); // decryption for bitmaps.tbl
1279 void decode_text(char *text, unsigned len);  // decryption for briefings, etc.
1280 #ifdef dsx
1281 namespace dsx {
1282 void load_text(void);
1283 #ifndef USE_BUILTIN_ENGLISH_TEXT_STRINGS
1284 //Array of pointers to text
1285 extern std::array<const char *, N_TEXT_STRINGS> Text_string;
1286 #endif
1287 
1288 #ifdef USE_BUILTIN_ENGLISH_TEXT_STRINGS
1289 /* Verify that A is convertible to the right type, then discard it.
1290  *
1291  * This path requires compiler support for statement expressions, since
1292  * the expression must evaluate to the target string.  For optimal
1293  * format string checking, the target string must not be behind a
1294  * function call, since that will convert the expression from
1295  * `const char[]` to `const char *` and, for some versions of gcc,
1296  * cause the string to be considered a non-literal, even if the input B
1297  * is a literal.
1298  */
1299 #define dxx_gettext(A,B)	({ unsigned dxx_gettext = A;(void)dxx_gettext; B; })
1300 #else
1301 __attribute_format_arg(2)
dxx_gettext(unsigned expr,const char *)1302 static constexpr const char *dxx_gettext(unsigned expr, const char *)
1303 {
1304 	return Text_string[expr];
1305 }
1306 #endif
1307 
1308 }
1309 #endif
1310 
1311 #endif
1312