Move */main/gamecntl.c -> similar/main/gamecntl.c

This commit is contained in:
Kp 2013-03-03 01:03:33 +00:00
parent c49fb2a68d
commit e18fc92b68
5 changed files with 175 additions and 1423 deletions

View file

@ -454,6 +454,7 @@ class DXXProgram(DXXCommon):
'main/digiobj.c',
'main/effects.c',
'main/game.c',
'main/gamecntl.c',
'main/gamefont.c',
'main/gamerend.c',
'main/gameseg.c',
@ -717,7 +718,6 @@ class D1XProgram(DXXProgram):
'main/fireball.c',
'main/fuelcen.c',
'main/fvi.c',
'main/gamecntl.c',
'main/gamemine.c',
'main/gamesave.c',
'main/gameseq.c',
@ -813,7 +813,6 @@ class D2XProgram(DXXProgram):
'main/fireball.c',
'main/fuelcen.c',
'main/fvi.c',
'main/gamecntl.c',
'main/gamemine.c',
'main/gamepal.c',
'main/gamesave.c',

File diff suppressed because it is too large Load diff

View file

@ -95,5 +95,10 @@ extern void trigger_read_n_swap(trigger *t, int n, int swap, PHYSFS_file *fp);
extern void trigger_write(trigger *t, short version, PHYSFS_file *fp);
static inline int trigger_is_exit(const trigger *t)
{
return t->flags == TRIGGER_EXIT;
}
#endif

View file

@ -113,6 +113,11 @@ extern void check_trigger(segment *seg, short side, short objnum,int shot);
extern int check_trigger_sub(int trigger_num, int player_num,int shot);
extern void triggers_frame_process();
static inline int trigger_is_exit(const trigger *t)
{
return t->type == TT_EXIT;
}
/*
* reads a v29_trigger structure from a PHYSFS_file
*/

View file

@ -75,7 +75,6 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#include "titles.h"
#include "gr.h"
#include "playsave.h"
#include "movie.h"
#include "scores.h"
#include "multi.h"
@ -88,7 +87,10 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#include "ai.h"
#include "rbaudio.h"
#include "switch.h"
#if defined(DXX_BUILD_DESCENT_II)
#include "escort.h"
#include "movie.h"
#endif
#include "window.h"
#ifdef EDITOR
@ -98,8 +100,6 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#include <SDL/SDL.h>
extern void object_goto_prev_viewer(void);
// Global Variables -----------------------------------------------------------
int Debug_spew;
@ -132,11 +132,9 @@ extern int allowed_to_fire_flare(void);
extern void check_rear_view(void);
extern int create_special_path(void);
extern void move_player_2_segment(segment *seg, int side);
extern void kconfig_center_headset(void);
extern void newdemo_strip_frames(char *, int);
extern void toggle_cockpit(void);
extern void dump_used_textures_all();
extern void DropMarker();
extern void DropSecondaryWeapon();
extern void DropCurrentWeapon();
@ -156,6 +154,7 @@ void play_test_sound(void);
// Functions ------------------------------------------------------------------
#if defined(DXX_BUILD_DESCENT_II)
#define CONVERTER_RATE 20 //10 units per second xfer rate
#define CONVERTER_SCALE 2 //2 units energy -> 1 unit shields
@ -191,6 +190,7 @@ void transfer_energy_to_shield()
}
}
#endif
void update_vcr_state();
void do_weapon_n_item_stuff(void);
@ -214,6 +214,7 @@ void update_vcr_state(void)
Newdemo_vcr_state = ND_STATE_PLAYBACK;
}
#if defined(DXX_BUILD_DESCENT_II)
//returns which bomb will be dropped next time the bomb key is pressed
int which_bomb()
{
@ -239,7 +240,7 @@ int which_bomb()
return bomb;
}
#endif
void do_weapon_n_item_stuff()
{
@ -278,12 +279,14 @@ void do_weapon_n_item_stuff()
do_weapon_select(Controls.select_weapon_count>4?Controls.select_weapon_count-5:Controls.select_weapon_count,Controls.select_weapon_count>4?1:0);
Controls.select_weapon_count = 0;
}
#if defined(DXX_BUILD_DESCENT_II)
if (Controls.headlight_count > 0)
{
for (i=0;i<Controls.headlight_count;i++)
toggle_headlight_active ();
Controls.headlight_count = 0;
}
#endif
if (Global_missile_firing_count < 0)
Global_missile_firing_count = 0;
@ -294,7 +297,7 @@ void do_weapon_n_item_stuff()
do_missile_firing(1);
Controls.drop_bomb_count--;
}
#if defined(DXX_BUILD_DESCENT_II)
if (Controls.toggle_bomb_count > 0)
{
int bomb = Secondary_last_was_super[PROXIMITY_INDEX]?PROXIMITY_INDEX:SMART_MINE_INDEX;
@ -322,13 +325,9 @@ void do_weapon_n_item_stuff()
if (Controls.energy_to_shield_state && (Players[Player_num].flags & PLAYER_FLAGS_CONVERTER))
transfer_energy_to_shield();
#endif
}
extern void game_render_frame();
extern void show_extra_views();
extern fix Flash_effect;
void format_time(char *str, int secs_int)
{
int h, m, s;
@ -594,6 +593,7 @@ int HandleDemoKey(int key)
return 1;
}
#if defined(DXX_BUILD_DESCENT_II)
//switch a cockpit window to the next function
int select_next_window_function(int w)
{
@ -654,6 +654,7 @@ int select_next_window_function(int w)
return 1; //screen_changed
}
#endif
#ifdef DOOR_DEBUGGING
dump_door_debugging_info()
@ -762,7 +763,7 @@ int HandleSystemKey(int key)
return 1;
}
#if defined(DXX_BUILD_DESCENT_II)
// fleshed these out because F1 and F2 aren't sequenctial keycodes on mac -- MWA
KEY_MAC(case KEY_COMMAND+KEY_SHIFTED+KEY_1:)
@ -773,6 +774,7 @@ int HandleSystemKey(int key)
case KEY_SHIFTED+KEY_F2:
select_next_window_function(1);
return 1;
#endif
}
switch (key)
@ -916,7 +918,7 @@ int HandleSystemKey(int key)
state_restore_all(1, 0, NULL);
break;
#if defined(DXX_BUILD_DESCENT_II)
KEY_MAC(case KEY_COMMAND+KEY_SHIFTED+KEY_4:)
case KEY_F4 + KEY_SHIFTED:
do_escort_menu();
@ -927,6 +929,7 @@ int HandleSystemKey(int key)
case KEY_F4 + KEY_SHIFTED + KEY_ALTED:
change_guidebot_name();
break;
#endif
/*
* Jukebox hotkeys -- MD2211, 2007
@ -972,7 +975,7 @@ extern void DropFlag();
int HandleGameKey(int key)
{
switch (key) {
#if defined(DXX_BUILD_DESCENT_II)
case KEY_1 + KEY_SHIFTED:
case KEY_2 + KEY_SHIFTED:
case KEY_3 + KEY_SHIFTED:
@ -994,6 +997,7 @@ int HandleGameKey(int key)
}
else
return 0;
#endif
case KEY_ALTED+KEY_F7:
KEY_MAC(case KEY_COMMAND+KEY_ALTED+KEY_7:)
@ -1038,52 +1042,17 @@ int HandleGameKey(int key)
#endif
default:
#if defined(DXX_BUILD_DESCENT_I)
return 0;
#endif
break;
} //switch (key)
#if defined(DXX_BUILD_DESCENT_II)
if (!Player_is_dead)
switch (key)
{
#if 0
// weapon selection handled in kconfig_read_controls, d1x-style
// MWA changed the weapon select cases to have each case call
// do_weapon_select the macintosh keycodes aren't consecutive from 1
// -- 0 on the keyboard -- boy is that STUPID!!!!
// Select primary or secondary weapon.
case KEY_1:
do_weapon_select(0 , 0);
break;
case KEY_2:
do_weapon_select(1 , 0);
break;
case KEY_3:
do_weapon_select(2 , 0);
break;
case KEY_4:
do_weapon_select(3 , 0);
break;
case KEY_5:
do_weapon_select(4 , 0);
break;
case KEY_6:
do_weapon_select(0 , 1);
break;
case KEY_7:
do_weapon_select(1 , 1);
break;
case KEY_8:
do_weapon_select(2 , 1);
break;
case KEY_9:
do_weapon_select(3 , 1);
break;
case KEY_0:
do_weapon_select(4 , 1);
break;
#endif
KEY_MAC(case KEY_COMMAND+KEY_SHIFTED+KEY_5:)
case KEY_F5 + KEY_SHIFTED:
DropCurrentWeapon();
@ -1112,10 +1081,12 @@ int HandleGameKey(int key)
}
else
return 0;
#endif
return 1;
}
#if defined(DXX_BUILD_DESCENT_II)
void kill_all_robots(void)
{
int i, dead_count=0;
@ -1149,6 +1120,7 @@ void kill_all_robots(void)
HUD_init_message(HM_DEFAULT, "%i robots toasted!", dead_count);
}
#endif
// --------------------------------------------------------------------------
// Detonate reactor.
@ -1176,7 +1148,7 @@ void kill_and_so_forth(void)
do_controlcen_destroyed_stuff(NULL);
for (i=0; i<Num_triggers; i++) {
if (Triggers[i].type == TT_EXIT) {
if (trigger_is_exit(&Triggers[i])) {
for (j=0; j<Num_walls; j++) {
if (Walls[j].trigger == i) {
compute_segment_center(&ConsoleObject->pos, &Segments[Walls[j].segnum]);
@ -1192,7 +1164,7 @@ kasf_done: ;
}
#ifndef RELEASE
#if defined(DXX_BUILD_DESCENT_II)
void kill_all_snipers(void)
{
int i, dead_count=0;
@ -1233,6 +1205,7 @@ void kill_buddy(void)
HUD_init_message(HM_DEFAULT, "Buddy toasted!");
}
}
#endif
int HandleTestKey(int key)
{
@ -1247,6 +1220,7 @@ int HandleTestKey(int key)
do_controlcen_destroyed_stuff(NULL);
break;
#if defined(DXX_BUILD_DESCENT_II)
#ifdef NETWORK
case KEY_DEBUGGED+KEY_ALTED+KEY_D:
PlayerCfg.NetlifeKills=4000; PlayerCfg.NetlifeKilled=5;
@ -1254,6 +1228,11 @@ int HandleTestKey(int key)
break;
#endif
case KEY_DEBUGGED+KEY_R+KEY_SHIFTED:
kill_all_robots();
break;
#endif
case KEY_BACKSP:
case KEY_CTRLED+KEY_BACKSP:
case KEY_ALTED+KEY_BACKSP:
@ -1299,10 +1278,6 @@ int HandleTestKey(int key)
cheats.robotfiringsuspended = !cheats.robotfiringsuspended;
break;
case KEY_DEBUGGED+KEY_R+KEY_SHIFTED:
kill_all_robots();
break;
#ifdef EDITOR //editor-specific functions
case KEY_E + KEY_DEBUGGED:
@ -1310,6 +1285,7 @@ int HandleTestKey(int key)
init_editor();
window_close(Game_wind);
break;
#if defined(DXX_BUILD_DESCENT_II)
case KEY_Q + KEY_SHIFTED + KEY_DEBUGGED:
{
char pal_save[768];
@ -1324,6 +1300,7 @@ int HandleTestKey(int key)
gr_palette_load(gr_palette);
break;
}
#endif
case KEY_C + KEY_SHIFTED + KEY_DEBUGGED:
if (!Player_is_dead && !( Game_mode & GM_MULTI ))
move_player_2_segment(Cursegp,Curside);
@ -1339,10 +1316,12 @@ int HandleTestKey(int key)
case KEY_DEBUGGED+KEY_O: toggle_outline_mode(); break;
case KEY_DEBUGGED+KEY_T:
*Toggle_var = !*Toggle_var;
#if defined(DXX_BUILD_DESCENT_II)
if (*Toggle_var)
GameArg.SysMaxFPS = 300;
else
GameArg.SysMaxFPS = 30;
#endif
break;
case KEY_DEBUGGED + KEY_L:
if (++Lighting_on >= 2) Lighting_on = 0; break;
@ -1436,24 +1415,28 @@ int HandleTestKey(int key)
}
#endif //#ifndef RELEASE
// Cheat functions ------------------------------------------------------------
char *AcidCheat ="qPmwxz\"S"; // bit-tersweet
// Main Cheat function
char AcidCheatOn=0;
char old_IntMethod;
#define CHEAT_MAX_LEN 15
#define NUM_CHEATS 28
typedef struct cheat_code
{
char *string;
int *stateptr;
} __pack__ cheat_code;
cheat_code cheat_codes[NUM_CHEATS] = {
static const cheat_code cheat_codes[] = {
#if defined(DXX_BUILD_DESCENT_I)
{ "gabbagabbahey", &cheats.enabled },
{ "scourge", &cheats.wowie },
{ "bigred", &cheats.wowie2 },
{ "mitzi", &cheats.allkeys },
{ "racerx", &cheats.invul },
{ "guile", &cheats.cloak },
{ "twilight", &cheats.shields },
{ "poboys", &cheats.killreactor },
{ "farmerjoe", &cheats.levelwarp },
{ "bruin", &cheats.extralife },
{ "porgys", &cheats.rapidfire },
{ "ahimsa", &cheats.robotfiringsuspended },
#elif defined(DXX_BUILD_DESCENT_II)
{ "gabbagabbahey", &cheats.lamer },
{ "motherlode", &cheats.lamer },
{ "currygoat", &cheats.lamer },
@ -1468,19 +1451,20 @@ cheat_code cheat_codes[NUM_CHEATS] = {
{ "almighty", &cheats.invul },
{ "blueorb", &cheats.shields },
{ "delshiftb", &cheats.killreactor },
{ "flash", &cheats.exitpath },
{ "freespace", &cheats.levelwarp },
{ "rockrgrl", &cheats.fullautomap },
{ "astral", &cheats.ghostphysics },
{ "wildfire", &cheats.rapidfire },
{ "duddaboo", &cheats.bouncyfire },
{ "buggin", &cheats.turbo },
{ "imagespace", &cheats.robotfiringsuspended },
{ "spaniard", &cheats.killallrobots },
{ "silkwing", &cheats.robotskillrobots },
{ "godzilla", &cheats.monsterdamage },
{ "helpvishnu", &cheats.buddyclone },
{ "gowingnut", &cheats.buddyangry },
#endif
{ "flash", &cheats.exitpath },
{ "astral", &cheats.ghostphysics },
{ "buggin", &cheats.turbo },
{ "bittersweet", &cheats.acid },
};
@ -1495,12 +1479,18 @@ int FinalCheats(int key)
for (i = 1; i < CHEAT_MAX_LEN; i++)
cheat_buffer[i-1] = cheat_buffer[i];
cheat_buffer[CHEAT_MAX_LEN-1] = key_ascii();
for (i = 0; i < NUM_CHEATS; i++)
for (i = 0; i < sizeof(cheat_codes) / sizeof(cheat_codes[0]); i++)
{
int cheatlen = strlen(cheat_codes[i].string);
Assert(cheatlen <= CHEAT_MAX_LEN);
if (d_strnicmp(cheat_codes[i].string, cheat_buffer+CHEAT_MAX_LEN-cheatlen, cheatlen)==0)
{
#if defined(DXX_BUILD_DESCENT_I)
if (!cheats.enabled && *cheat_codes[i].stateptr != cheats.enabled)
break;
if (!cheats.enabled)
HUD_init_message(HM_DEFAULT, TXT_CHEATS_ENABLED);
#endif
*cheat_codes[i].stateptr = !*cheat_codes[i].stateptr;
cheats.enabled = 1;
digi_play_sample( SOUND_CHEATER, F1_0);
@ -1513,6 +1503,49 @@ int FinalCheats(int key)
if (!gotcha)
return 0;
#if defined(DXX_BUILD_DESCENT_I)
if (cheat_codes[gotcha].stateptr == &cheats.wowie)
{
HUD_init_message(HM_DEFAULT, "%s", TXT_WOWIE_ZOWIE);
Players[Player_num].primary_weapon_flags |= 0xff ^ (HAS_PLASMA_FLAG | HAS_FUSION_FLAG);
Players[Player_num].secondary_weapon_flags |= 0xff ^ (HAS_SMART_FLAG | HAS_MEGA_FLAG);
for (i=0; i<3; i++)
Players[Player_num].primary_ammo[i] = Primary_ammo_max[i];
for (i=0; i<3; i++)
Players[Player_num].secondary_ammo[i] = Secondary_ammo_max[i];
if (Newdemo_state == ND_STATE_RECORDING)
newdemo_record_laser_level(Players[Player_num].laser_level, MAX_LASER_LEVEL);
Players[Player_num].energy = MAX_ENERGY;
Players[Player_num].laser_level = MAX_LASER_LEVEL;
Players[Player_num].flags |= PLAYER_FLAGS_QUAD_LASERS;
update_laser_weapon_info();
}
if (cheat_codes[gotcha].stateptr == &cheats.wowie2)
{
HUD_init_message(HM_DEFAULT, "SUPER %s",TXT_WOWIE_ZOWIE);
Players[Player_num].primary_weapon_flags = 0xff;
Players[Player_num].secondary_weapon_flags = 0xff;
for (i=0; i<MAX_PRIMARY_WEAPONS; i++)
Players[Player_num].primary_ammo[i] = Primary_ammo_max[i];
for (i=0; i<MAX_SECONDARY_WEAPONS; i++)
Players[Player_num].secondary_ammo[i] = Secondary_ammo_max[i];
if (Newdemo_state == ND_STATE_RECORDING)
newdemo_record_laser_level(Players[Player_num].laser_level, MAX_LASER_LEVEL);
Players[Player_num].energy = MAX_ENERGY;
Players[Player_num].laser_level = MAX_LASER_LEVEL;
Players[Player_num].flags |= PLAYER_FLAGS_QUAD_LASERS;
update_laser_weapon_info();
}
#elif defined(DXX_BUILD_DESCENT_II)
if (cheat_codes[gotcha].stateptr == &cheats.lamer)
{
Players[Player_num].shields=Players[Player_num].energy=i2f(1);
@ -1555,12 +1588,6 @@ int FinalCheats(int key)
update_laser_weapon_info();
}
if (cheat_codes[gotcha].stateptr == &cheats.allkeys)
{
HUD_init_message(HM_DEFAULT, "%s", TXT_ALL_KEYS);
Players[Player_num].flags |= PLAYER_FLAGS_BLUE_KEY | PLAYER_FLAGS_RED_KEY | PLAYER_FLAGS_GOLD_KEY;
}
if (cheat_codes[gotcha].stateptr == &cheats.accessory)
{
Players[Player_num].flags |=PLAYER_FLAGS_HEADLIGHT;
@ -1569,6 +1596,13 @@ int FinalCheats(int key)
Players[Player_num].flags |=PLAYER_FLAGS_CONVERTER;
HUD_init_message(HM_DEFAULT, "Accessories!!");
}
#endif
if (cheat_codes[gotcha].stateptr == &cheats.allkeys)
{
HUD_init_message(HM_DEFAULT, "%s", TXT_ALL_KEYS);
Players[Player_num].flags |= PLAYER_FLAGS_BLUE_KEY | PLAYER_FLAGS_RED_KEY | PLAYER_FLAGS_GOLD_KEY;
}
if (cheat_codes[gotcha].stateptr == &cheats.invul)
{
@ -1583,6 +1617,28 @@ int FinalCheats(int key)
Players[Player_num].shields = MAX_SHIELDS;
}
#if defined(DXX_BUILD_DESCENT_I)
if (cheat_codes[gotcha].stateptr == &cheats.cloak)
{
Players[Player_num].flags ^= PLAYER_FLAGS_CLOAKED;
HUD_init_message(HM_DEFAULT, "%s %s!", TXT_CLOAK, (Players[Player_num].flags&PLAYER_FLAGS_CLOAKED)?TXT_ON:TXT_OFF);
if (Players[Player_num].flags & PLAYER_FLAGS_CLOAKED)
{
ai_do_cloak_stuff();
Players[Player_num].cloak_time = GameTime64;
}
}
if (cheat_codes[gotcha].stateptr == &cheats.extralife)
{
if (Players[Player_num].lives<50)
{
Players[Player_num].lives++;
HUD_init_message(HM_DEFAULT, "Extra life!");
}
}
#endif
if (cheat_codes[gotcha].stateptr == &cheats.killreactor)
{
kill_and_so_forth();
@ -1619,8 +1675,12 @@ int FinalCheats(int key)
}
if (cheat_codes[gotcha].stateptr == &cheats.rapidfire)
#if defined(DXX_BUILD_DESCENT_I)
{
do_megawow_powerup(200);
}
#elif defined(DXX_BUILD_DESCENT_II)
{
HUD_init_message(HM_DEFAULT, "Rapid fire %s!", cheats.rapidfire?TXT_ON:TXT_OFF);
}
@ -1629,10 +1689,10 @@ int FinalCheats(int key)
HUD_init_message(HM_DEFAULT, "Bouncing weapons %s!", cheats.bouncyfire?TXT_ON:TXT_OFF);
}
#endif
if (cheat_codes[gotcha].stateptr == &cheats.turbo)
{
HUD_init_message(HM_DEFAULT, "%s %s!", "Turbo mode", cheats.turbo?TXT_ON:TXT_OFF);
}
@ -1641,6 +1701,7 @@ int FinalCheats(int key)
HUD_init_message(HM_DEFAULT, "Robot firing %s!", cheats.robotfiringsuspended?TXT_OFF:TXT_ON);
}
#if defined(DXX_BUILD_DESCENT_II)
if (cheat_codes[gotcha].stateptr == &cheats.killallrobots)
{
kill_all_robots();
@ -1676,6 +1737,7 @@ int FinalCheats(int key)
HUD_init_message(HM_DEFAULT, "%s calms down",PlayerCfg.GuidebotName);
}
}
#endif
if (cheat_codes[gotcha].stateptr == &cheats.acid)
{
@ -1685,7 +1747,6 @@ int FinalCheats(int key)
return 1;
}
// Internal Cheat Menu
#ifndef RELEASE
void do_cheat_menu()
@ -1703,15 +1764,20 @@ void do_cheat_menu()
mm[4].type=NM_TYPE_NUMBER; mm[4].value=f2i(Players[Player_num].shields); mm[4].text="% Shields"; mm[4].min_value=0; mm[4].max_value=200;
mm[5].type=NM_TYPE_TEXT; mm[5].text = "Score:";
mm[6].type=NM_TYPE_INPUT; mm[6].text_len = 10; mm[6].text = score_text;
//mm[7].type=NM_TYPE_RADIO; mm[7].value=(Players[Player_num].laser_level==0); mm[7].group=0; mm[7].text="Laser level 1";
//mm[8].type=NM_TYPE_RADIO; mm[8].value=(Players[Player_num].laser_level==1); mm[8].group=0; mm[8].text="Laser level 2";
//mm[9].type=NM_TYPE_RADIO; mm[9].value=(Players[Player_num].laser_level==2); mm[9].group=0; mm[9].text="Laser level 3";
//mm[10].type=NM_TYPE_RADIO; mm[10].value=(Players[Player_num].laser_level==3); mm[10].group=0; mm[10].text="Laser level 4";
#if defined(DXX_BUILD_DESCENT_I)
mm[7].type=NM_TYPE_RADIO; mm[7].value=(Players[Player_num].laser_level==0); mm[7].group=0; mm[7].text="Laser level 1";
mm[8].type=NM_TYPE_RADIO; mm[8].value=(Players[Player_num].laser_level==1); mm[8].group=0; mm[8].text="Laser level 2";
mm[9].type=NM_TYPE_RADIO; mm[9].value=(Players[Player_num].laser_level==2); mm[9].group=0; mm[9].text="Laser level 3";
mm[10].type=NM_TYPE_RADIO; mm[10].value=(Players[Player_num].laser_level==3); mm[10].group=0; mm[10].text="Laser level 4";
mm[11].type=NM_TYPE_NUMBER; mm[11].value=Players[Player_num].secondary_ammo[CONCUSSION_INDEX]; mm[11].text="Missiles"; mm[11].min_value=0; mm[11].max_value=200;
mmn = newmenu_do("Wimp Menu",NULL,12, mm, NULL, NULL );
#elif defined(DXX_BUILD_DESCENT_II)
mm[7].type=NM_TYPE_NUMBER; mm[7].value=Players[Player_num].laser_level+1; mm[7].text="Laser Level"; mm[7].min_value=0; mm[7].max_value=MAX_SUPER_LASER_LEVEL+1;
mm[8].type=NM_TYPE_NUMBER; mm[8].value=Players[Player_num].secondary_ammo[CONCUSSION_INDEX]; mm[8].text="Missiles"; mm[8].min_value=0; mm[8].max_value=200;
mmn = newmenu_do("Wimp Menu",NULL,9, mm, NULL, NULL );
#endif
if (mmn > -1 ) {
if ( mm[0].value ) {
@ -1736,12 +1802,16 @@ void do_cheat_menu()
Players[Player_num].energy=i2f(mm[3].value);
Players[Player_num].shields=i2f(mm[4].value);
Players[Player_num].score = atoi(mm[6].text);
//if (mm[7].value) Players[Player_num].laser_level=0;
//if (mm[8].value) Players[Player_num].laser_level=1;
//if (mm[9].value) Players[Player_num].laser_level=2;
//if (mm[10].value) Players[Player_num].laser_level=3;
#if defined(DXX_BUILD_DESCENT_I)
if (mm[7].value) Players[Player_num].laser_level=0;
if (mm[8].value) Players[Player_num].laser_level=1;
if (mm[9].value) Players[Player_num].laser_level=2;
if (mm[10].value) Players[Player_num].laser_level=3;
Players[Player_num].secondary_ammo[CONCUSSION_INDEX] = mm[11].value;
#elif defined(DXX_BUILD_DESCENT_II)
Players[Player_num].laser_level = mm[7].value-1;
Players[Player_num].secondary_ammo[CONCUSSION_INDEX] = mm[8].value;
#endif
init_gauges();
}
}
@ -1804,12 +1874,12 @@ int ReadControls(d_event *event)
if (event->type == EVENT_KEY_COMMAND)
{
key = event_key_get(event);
#if defined(DXX_BUILD_DESCENT_II)
if (DefiningMarkerMessage)
{
return MarkerInputMessage(key);
}
#endif
#ifdef NETWORK
if ( (Game_mode & GM_MULTI) && (multi_sending_message[Player_num] || multi_defining_message) )
{