Move */main/gamecntl.c -> similar/main/gamecntl.c
This commit is contained in:
parent
c49fb2a68d
commit
e18fc92b68
|
@ -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
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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) )
|
||||
{
|
Loading…
Reference in a new issue