Introduced INITIAL_ENERGY and INITIAL_SHIELDS defines from d2x and on that way added handicap feature for multiplayer as well; incremented multi proto version
This commit is contained in:
parent
effc8c3fc4
commit
63fe8ddc37
|
@ -3,6 +3,7 @@ D1X-Rebirth Changelog
|
|||
20120618
|
||||
--------
|
||||
main/gamerend.c, main/multi.c: removed temp_string buffer for ingame message inputs preventing the string from being messed up if containing special characters
|
||||
main/game.c, main/gameseq.c, main/multi.c, main/multi.h, main/player.h, main/powerup.c: Introduced INITIAL_ENERGY and INITIAL_SHIELDS defines from d2x and on that way added handicap feature for multiplayer as well; incremented multi proto version
|
||||
|
||||
20120610
|
||||
--------
|
||||
|
|
|
@ -724,7 +724,7 @@ void show_netgame_help()
|
|||
int nitems = 0;
|
||||
newmenu_item *m;
|
||||
|
||||
MALLOC(m, newmenu_item, 15);
|
||||
MALLOC(m, newmenu_item, 16);
|
||||
if (!m)
|
||||
return;
|
||||
|
||||
|
@ -748,6 +748,7 @@ void show_netgame_help()
|
|||
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "";
|
||||
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "MULTIPLAYER MESSAGE COMMANDS:";
|
||||
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "(*): TEXT\t SEND TEXT TO PLAYER/TEAM (*)";
|
||||
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "/Handicap: (*)\t SET YOUR STARTING SHIELDS TO (*) [10-100]";
|
||||
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "/move: (*)\t MOVE PLAYER (*) TO OTHER TEAM (Host-only)";
|
||||
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "/kick: (*)\t KICK PLAYER (*) FROM GAME (Host-only)";
|
||||
m[nitems].type = NM_TYPE_TEXT; m[nitems++].text = "/KillReactor\t BLOW UP THE MINE (Host-only)";
|
||||
|
|
|
@ -240,6 +240,8 @@ void gameseq_remove_unused_players()
|
|||
}
|
||||
}
|
||||
|
||||
fix StartingShields=INITIAL_SHIELDS;
|
||||
|
||||
// Setup player for new game
|
||||
void init_player_stats_game(ubyte pnum)
|
||||
{
|
||||
|
@ -271,10 +273,10 @@ void init_player_stats_game(ubyte pnum)
|
|||
|
||||
void init_ammo_and_energy(void)
|
||||
{
|
||||
if (Players[Player_num].energy < MAX_ENERGY)
|
||||
Players[Player_num].energy = MAX_ENERGY;
|
||||
if (Players[Player_num].shields < MAX_SHIELDS)
|
||||
Players[Player_num].shields = MAX_SHIELDS;
|
||||
if (Players[Player_num].energy < INITIAL_ENERGY)
|
||||
Players[Player_num].energy = INITIAL_ENERGY;
|
||||
if (Players[Player_num].shields < StartingShields)
|
||||
Players[Player_num].shields = StartingShields;
|
||||
|
||||
// for (i=0; i<MAX_PRIMARY_WEAPONS; i++)
|
||||
// if (Players[Player_num].primary_ammo[i] < Default_primary_ammo_level[i])
|
||||
|
@ -359,8 +361,8 @@ void init_player_stats_new_ship(ubyte pnum)
|
|||
Dead_player_camera = 0;
|
||||
}
|
||||
|
||||
Players[pnum].energy = MAX_ENERGY;
|
||||
Players[pnum].shields = MAX_SHIELDS;
|
||||
Players[pnum].energy = INITIAL_ENERGY;
|
||||
Players[pnum].shields = StartingShields;
|
||||
Players[pnum].laser_level = 0;
|
||||
Players[pnum].killer_objnum = -1;
|
||||
Players[pnum].hostages_on_board = 0;
|
||||
|
@ -436,37 +438,17 @@ void DoGameOver()
|
|||
//update various information about the player
|
||||
void update_player_stats()
|
||||
{
|
||||
// I took out this 'if' because it was causing the reactor invul time to be
|
||||
// off for players that sit in the death screen. -JS jul 6,95
|
||||
// if (!Player_exploded) {
|
||||
Players[Player_num].time_level += FrameTime; //the never-ending march of time...
|
||||
if ( Players[Player_num].time_level > i2f(3600) ) {
|
||||
Players[Player_num].time_level -= i2f(3600);
|
||||
Players[Player_num].hours_level++;
|
||||
}
|
||||
Players[Player_num].time_level += FrameTime; //the never-ending march of time...
|
||||
if ( Players[Player_num].time_level > i2f(3600) ) {
|
||||
Players[Player_num].time_level -= i2f(3600);
|
||||
Players[Player_num].hours_level++;
|
||||
}
|
||||
|
||||
Players[Player_num].time_total += FrameTime; //the never-ending march of time...
|
||||
if ( Players[Player_num].time_total > i2f(3600) ) {
|
||||
Players[Player_num].time_total -= i2f(3600);
|
||||
Players[Player_num].hours_total++;
|
||||
}
|
||||
// }
|
||||
|
||||
// Players[Player_num].energy += FrameTime*Energy_regen_ratio; //slowly regenerate energy
|
||||
|
||||
//MK1015: //slowly reduces player's energy & shields if over max
|
||||
//MK1015:
|
||||
//MK1015: if (Players[Player_num].energy > MAX_ENERGY) {
|
||||
//MK1015: Players[Player_num].energy -= FrameTime/8;
|
||||
//MK1015: if (Players[Player_num].energy < MAX_ENERGY)
|
||||
//MK1015: Players[Player_num].energy = MAX_ENERGY;
|
||||
//MK1015: }
|
||||
//MK1015:
|
||||
//MK1015: if (Players[Player_num].shields > MAX_SHIELDS) {
|
||||
//MK1015: Players[Player_num].shields -= FrameTime/8;
|
||||
//MK1015: if (Players[Player_num].shields < MAX_SHIELDS)
|
||||
//MK1015: Players[Player_num].shields = MAX_SHIELDS;
|
||||
//MK1015: }
|
||||
Players[Player_num].time_total += FrameTime; //the never-ending march of time...
|
||||
if ( Players[Player_num].time_total > i2f(3600) ) {
|
||||
Players[Player_num].time_total -= i2f(3600);
|
||||
Players[Player_num].hours_total++;
|
||||
}
|
||||
}
|
||||
|
||||
//go through this level and start any eclip sounds
|
||||
|
|
22
main/multi.c
22
main/multi.c
|
@ -1128,8 +1128,11 @@ multi_send_message_start()
|
|||
}
|
||||
}
|
||||
|
||||
extern fix StartingShields;
|
||||
|
||||
void multi_send_message_end()
|
||||
{
|
||||
char *mytempbuf;
|
||||
int i, t;
|
||||
|
||||
multi_message_index = 0;
|
||||
|
@ -1137,7 +1140,24 @@ void multi_send_message_end()
|
|||
multi_send_msgsend_state(0);
|
||||
key_toggle_repeat(0);
|
||||
|
||||
if (!d_strnicmp (Network_message,"/move: ",7))
|
||||
if (!d_strnicmp (Network_message,"/Handicap: ",11))
|
||||
{
|
||||
mytempbuf=&Network_message[11];
|
||||
StartingShields=atol (mytempbuf);
|
||||
if (StartingShields<10)
|
||||
StartingShields=10;
|
||||
if (StartingShields>100)
|
||||
{
|
||||
sprintf (Network_message,"%s has tried to cheat!",Players[Player_num].callsign);
|
||||
StartingShields=100;
|
||||
}
|
||||
else
|
||||
sprintf (Network_message,"%s handicap is now %d",Players[Player_num].callsign,StartingShields);
|
||||
|
||||
HUD_init_message(HM_MULTI, "Telling others of your handicap of %d!",StartingShields);
|
||||
StartingShields=i2f(StartingShields);
|
||||
}
|
||||
else if (!d_strnicmp (Network_message,"/move: ",7))
|
||||
{
|
||||
if ((Game_mode & GM_NETWORK) && (Game_mode & GM_TEAM))
|
||||
{
|
||||
|
|
|
@ -65,7 +65,7 @@ extern int multi_protocol; // set and determinate used protocol
|
|||
#define MULTI_PROTO_UDP 1 // UDP protocol
|
||||
|
||||
// What version of the multiplayer protocol is this? Increment each time something drastic changes in Multiplayer without the version number changes. Can be reset to 0 each time the version of the game changes
|
||||
#define MULTI_PROTO_VERSION 2
|
||||
#define MULTI_PROTO_VERSION 3
|
||||
// PROTOCOL VARIABLES AND DEFINES - END
|
||||
|
||||
|
||||
|
|
|
@ -31,9 +31,13 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#define MAX_MULTI_PLAYERS MAX_PLAYERS+3
|
||||
|
||||
// Initial player stat values
|
||||
#define MAX_ENERGY i2f(100) //100% energy to start
|
||||
#define MAX_SHIELDS i2f(100) //100% shields to start
|
||||
#define INITIAL_LIVES 3 //start off with 3 lives
|
||||
#define INITIAL_ENERGY i2f(100) // 100% energy to start
|
||||
#define INITIAL_SHIELDS i2f(100) // 100% shields to start
|
||||
|
||||
#define MAX_ENERGY i2f(200) // go up to 200
|
||||
#define MAX_SHIELDS i2f(200)
|
||||
|
||||
#define INITIAL_LIVES 3 // start off with 3 lives
|
||||
|
||||
// Values for special flags
|
||||
#define PLAYER_FLAGS_INVULNERABLE 1 // Player is invincible
|
||||
|
|
|
@ -44,9 +44,6 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#include "editor/editor.h"
|
||||
#endif
|
||||
|
||||
#define ENERGY_MAX i2f(200)
|
||||
#define SHIELD_MAX i2f(200)
|
||||
|
||||
int N_powerup_types = 0;
|
||||
powerup_type_info Powerup_info[MAX_POWERUP_TYPES];
|
||||
|
||||
|
@ -175,10 +172,10 @@ int pick_up_energy(void)
|
|||
{
|
||||
int used=0;
|
||||
|
||||
if (Players[Player_num].energy < ENERGY_MAX) {
|
||||
if (Players[Player_num].energy < MAX_ENERGY) {
|
||||
Players[Player_num].energy += 3*F1_0 + 3*F1_0*(NDL - Difficulty_level);
|
||||
if (Players[Player_num].energy > ENERGY_MAX)
|
||||
Players[Player_num].energy = ENERGY_MAX;
|
||||
if (Players[Player_num].energy > MAX_ENERGY)
|
||||
Players[Player_num].energy = MAX_ENERGY;
|
||||
powerup_basic(15,15,7, ENERGY_SCORE, "%s %s %d",TXT_ENERGY,TXT_BOOSTED_TO,f2ir(Players[Player_num].energy));
|
||||
used=1;
|
||||
} else
|
||||
|
@ -247,10 +244,10 @@ int do_powerup(object *obj)
|
|||
used = pick_up_energy();
|
||||
break;
|
||||
case POW_SHIELD_BOOST:
|
||||
if (Players[Player_num].shields < SHIELD_MAX) {
|
||||
if (Players[Player_num].shields < MAX_SHIELDS) {
|
||||
Players[Player_num].shields += 3*F1_0 + 3*F1_0*(NDL - Difficulty_level);
|
||||
if (Players[Player_num].shields > SHIELD_MAX)
|
||||
Players[Player_num].shields = SHIELD_MAX;
|
||||
if (Players[Player_num].shields > MAX_SHIELDS)
|
||||
Players[Player_num].shields = MAX_SHIELDS;
|
||||
powerup_basic(0, 0, 15, SHIELD_SCORE, "%s %s %d",TXT_SHIELD,TXT_BOOSTED_TO,f2ir(Players[Player_num].shields));
|
||||
used=1;
|
||||
} else
|
||||
|
|
Loading…
Reference in a new issue