diff --git a/src/game/g_game.pas b/src/game/g_game.pas
index 653ba539cf7f1fd4138d26dec714ef679f6ecf38..f85024b31b0c05a68e9947476e3180b36d12469f 100644 (file)
--- a/src/game/g_game.pas
+++ b/src/game/g_game.pas
Model: String;
Color: TRGB;
Team: Byte;
+ // ones below are sent only to the server
+ WeaponSwitch: Byte;
+ WeaponPreferences: Array[WP_FIRST..WP_LAST+1] of Byte;
+ SwitchToEmpty: Byte;
+ SwitchToFist: Byte;
end;
TMegaWADInfo = record
else
begin
gPlayer1.Name := gPlayer1Settings.Name;
+ gPlayer1.WeapSwitchMode := gPlayer1Settings.WeaponSwitch;
+ gPlayer1.setWeaponPrefs(gPlayer1Settings.WeaponPreferences);
+ gPlayer1.SwitchToEmpty := gPlayer1Settings.SwitchToEmpty;
g_Console_Add(Format(_lc[I_PLAYER_JOIN], [gPlayer1.Name]), True);
if g_Game_IsServer and g_Game_IsNet then
MH_SEND_PlayerCreate(gPlayer1.UID);
else
begin
gPlayer2.Name := gPlayer2Settings.Name;
+ gPlayer2.WeapSwitchMode := gPlayer2Settings.WeaponSwitch;
+ gPlayer2.setWeaponPrefs(gPlayer2Settings.WeaponPreferences);
+ gPlayer2.SwitchToEmpty := gPlayer2Settings.SwitchToEmpty;
g_Console_Add(Format(_lc[I_PLAYER_JOIN], [gPlayer2.Name]), True);
if g_Game_IsServer and g_Game_IsNet then
MH_SEND_PlayerCreate(gPlayer2.UID);
end;
gPlayer1.Name := gPlayer1Settings.Name;
+ gPlayer1.WeapSwitchMode := gPlayer1Settings.WeaponSwitch;
+ gPlayer1.setWeaponPrefs(gPlayer1Settings.WeaponPreferences);
+ gPlayer1.SwitchToEmpty := gPlayer1Settings.SwitchToEmpty;
nPl := 1;
// Ñîçäàíèå âòîðîãî èãðîêà, åñëè åñòü:
end;
gPlayer2.Name := gPlayer2Settings.Name;
+ gPlayer2.WeapSwitchMode := gPlayer2Settings.WeaponSwitch;
+ gPlayer2.setWeaponPrefs(gPlayer2Settings.WeaponPreferences);
+ gPlayer2.SwitchToEmpty := gPlayer2Settings.SwitchToEmpty;
Inc(nPl);
end;
end;
gPlayer1.Name := gPlayer1Settings.Name;
+ gPlayer1.WeapSwitchMode := gPlayer1Settings.WeaponSwitch;
+ gPlayer1.setWeaponPrefs(gPlayer1Settings.WeaponPreferences);
+ gPlayer1.SwitchToEmpty := gPlayer1Settings.SwitchToEmpty;
Inc(nPl);
end;
end;
gPlayer2.Name := gPlayer2Settings.Name;
+ gPlayer2.WeapSwitchMode := gPlayer2Settings.WeaponSwitch;
+ gPlayer2.setWeaponPrefs(gPlayer2Settings.WeaponPreferences);
+ gPlayer2.SwitchToEmpty := gPlayer2Settings.SwitchToEmpty;
Inc(nPl);
end;
end;
gPlayer1.Name := gPlayer1Settings.Name;
+ gPlayer1.WeapSwitchMode := gPlayer1Settings.WeaponSwitch;
+ gPlayer1.setWeaponPrefs(gPlayer1Settings.WeaponPreferences);
+ gPlayer1.SwitchToEmpty := gPlayer1Settings.SwitchToEmpty;
end;
if nPlayers >= 2 then
end;
gPlayer2.Name := gPlayer2Settings.Name;
+ gPlayer2.WeapSwitchMode := gPlayer2Settings.WeaponSwitch;
+ gPlayer2.setWeaponPrefs(gPlayer2Settings.WeaponPreferences);
+ gPlayer2.SwitchToEmpty := gPlayer2Settings.SwitchToEmpty;
end;
g_Game_SetLoadingText(_lc[I_LOAD_HOST], 0, False);
end;
gPlayer1.Name := gPlayer1Settings.Name;
+ gPlayer1.WeapSwitchMode := gPlayer1Settings.WeaponSwitch;
+ gPlayer1.setWeaponPrefs(gPlayer1Settings.WeaponPreferences);
+ gPlayer1.SwitchToEmpty := gPlayer1Settings.SwitchToEmpty;
gPlayer1.UID := NetPlrUID1;
gPlayer1.Reset(True);
g_Console_Add(_lc[I_MSG_ONMAPCHANGE]);
end;
end;
+ 'p1_autoswitch':
+ begin
+ if (Length(P) = 2) then
+ gPlayer1Settings.WeaponSwitch := EnsureRange(StrTointDef(P[1], 0), 0, 2);
+ end;
+ 'p2_autoswitch':
+ begin
+ if (Length(P) = 2) then
+ gPlayer2Settings.WeaponSwitch := EnsureRange(StrTointDef(P[1], 0), 0, 2);
+ end;
+ 'p1_switch_empty':
+ begin
+ if (Length(P) = 2) then
+ gPlayer1Settings.SwitchToEmpty := EnsureRange(StrTointDef(P[1], 0), 0, 1);
+ end;
+ 'p2_switch_empty':
+ begin
+ if (Length(P) = 2) then
+ gPlayer2Settings.SwitchToEmpty := EnsureRange(StrTointDef(P[1], 0), 0, 1);
+ end;
+ 'p1_priority_kastet':
+ begin
+ if (Length(P) = 2) then
+ gPlayer1Settings.WeaponPreferences[WEAPON_KASTET] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p2_priority_kastet':
+ begin
+ if (Length(P) = 2) then
+ gPlayer2Settings.WeaponPreferences[WEAPON_KASTET] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p1_priority_saw':
+ begin
+ if (Length(P) = 2) then
+ gPlayer1Settings.WeaponPreferences[WEAPON_SAW] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p2_priority_saw':
+ begin
+ if (Length(P) = 2) then
+ gPlayer2Settings.WeaponPreferences[WEAPON_SAW] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p1_priority_pistol':
+ begin
+ if (Length(P) = 2) then
+ gPlayer1Settings.WeaponPreferences[WEAPON_KASTET] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p2_priority_pistol':
+ begin
+ if (Length(P) = 2) then
+ gPlayer2Settings.WeaponPreferences[WEAPON_KASTET] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p1_priority_shotgun1':
+ begin
+ if (Length(P) = 2) then
+ gPlayer1Settings.WeaponPreferences[WEAPON_SHOTGUN1] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p2_priority_shotgun1':
+ begin
+ if (Length(P) = 2) then
+ gPlayer2Settings.WeaponPreferences[WEAPON_SHOTGUN1] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p1_priority_shotgun2':
+ begin
+ if (Length(P) = 2) then
+ gPlayer1Settings.WeaponPreferences[WEAPON_SHOTGUN2] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p2_priority_shotgun2':
+ begin
+ if (Length(P) = 2) then
+ gPlayer2Settings.WeaponPreferences[WEAPON_SHOTGUN2] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p1_priority_chaingun':
+ begin
+ if (Length(P) = 2) then
+ gPlayer1Settings.WeaponPreferences[WEAPON_CHAINGUN] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p2_priority_chaingun':
+ begin
+ if (Length(P) = 2) then
+ gPlayer2Settings.WeaponPreferences[WEAPON_CHAINGUN] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p1_priority_rocketlauncher':
+ begin
+ if (Length(P) = 2) then
+ gPlayer1Settings.WeaponPreferences[WEAPON_ROCKETLAUNCHER] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p2_priority_rocketlauncher':
+ begin
+ if (Length(P) = 2) then
+ gPlayer2Settings.WeaponPreferences[WEAPON_ROCKETLAUNCHER] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p1_priority_plasma':
+ begin
+ if (Length(P) = 2) then
+ gPlayer1Settings.WeaponPreferences[WEAPON_PLASMA] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p2_priority_plasma':
+ begin
+ if (Length(P) = 2) then
+ gPlayer2Settings.WeaponPreferences[WEAPON_PLASMA] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p1_priority_bfg':
+ begin
+ if (Length(P) = 2) then
+ gPlayer1Settings.WeaponPreferences[WEAPON_BFG] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p2_priority_bfg':
+ begin
+ if (Length(P) = 2) then
+ gPlayer2Settings.WeaponPreferences[WEAPON_BFG] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p1_priority_super':
+ begin
+ if (Length(P) = 2) then
+ gPlayer1Settings.WeaponPreferences[WEAPON_SUPERPULEMET] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p2_priority_super':
+ begin
+ if (Length(P) = 2) then
+ gPlayer2Settings.WeaponPreferences[WEAPON_SUPERPULEMET] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p1_priority_flamethrower':
+ begin
+ if (Length(P) = 2) then
+ gPlayer1Settings.WeaponPreferences[WEAPON_FLAMETHROWER] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p2_priority_flamethrower':
+ begin
+ if (Length(P) = 2) then
+ gPlayer2Settings.WeaponPreferences[WEAPON_FLAMETHROWER] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p1_priority_berserk':
+ begin
+ if (Length(P) = 2) then
+ gPlayer1Settings.WeaponPreferences[WP_LAST+1] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
+ 'p2_priority_berserk':
+ begin
+ if (Length(P) = 2) then
+ gPlayer2Settings.WeaponPreferences[WP_LAST+1] := EnsureRange(StrToIntDef(P[1], WP_FIRST), WP_FIRST, WP_LAST+1);
+ end;
end;
end;