diff --git a/src/game/g_netmsg.pas b/src/game/g_netmsg.pas
index 6d4f5c1d3cb188e4a737738e00bfb1bdca804677..bd2bb6ff6eb8b4c8db401598976a942c3300f078 100644 (file)
--- a/src/game/g_netmsg.pas
+++ b/src/game/g_netmsg.pas
@@ -181,7 +181,7 @@ procedure MH_SEND_ItemSpawn(Quiet: Boolean; IID: Word; ID: Integer = NET_EVERYON
procedure MH_SEND_ItemDestroy(Quiet: Boolean; IID: Word; ID: Integer = NET_EVERYONE);
procedure MH_SEND_ItemPos(IID: Word; ID: Integer = NET_EVERYONE);
// PANEL
-procedure MH_SEND_PanelTexture(PGUID: Integer; AnimLoop: Byte; ID: Integer = NET_EVERYONE);
+procedure MH_SEND_PanelTexture(PGUID: Integer; ID: Integer = NET_EVERYONE);
procedure MH_SEND_PanelState(PGUID: Integer; ID: Integer = NET_EVERYONE);
// MONSTER
procedure MH_SEND_MonsterSpawn(UID: Word; ID: Integer = NET_EVERYONE);
implementation
-uses
- Math, ENet, e_input, e_log, g_base, g_basic, r_gfx,
- g_textures, g_gfx, g_sound, g_console, g_options,
- g_game, g_player, g_map, g_panel, g_items, g_weapons, g_phys, g_gui,
- g_language, g_monsters, g_netmaster, utils, wadreader, MAPDEF;
+ uses
+ {$IFDEF ENABLE_MENU}
+ g_gui,
+ {$ENDIF}
+ {$IFDEF ENABLE_GFX}
+ g_gfx,
+ {$ENDIF}
+ {$IFDEF ENABLE_GIBS}
+ g_gibs,
+ {$ENDIF}
+ {$IFDEF ENABLE_SHELLS}
+ g_shells,
+ {$ENDIF}
+ {$IFDEF ENABLE_CORPSES}
+ g_corpses,
+ {$ENDIF}
+ Math, ENet, e_input, e_log, g_base, g_basic,
+ g_sound, g_console, g_options, g_window,
+ g_game, g_player, g_map, g_panel, g_items, g_weapons, g_phys,
+ g_language, g_monsters, g_netmaster, utils, wadreader, MAPDEF
+ ;
const
NET_KEY_LEFT = 1 shl 0;
@@ -900,7 +916,7 @@ procedure MH_SEND_Everything(CreatePlayers: Boolean {= False}; ID: Integer {= NE
begin
result := false; // don't stop
MH_SEND_PanelState(pan.guid, ID); // anyway, to sync mplats
- if (pan.CanChangeTexture) then MH_SEND_PanelTexture(pan.guid, pan.LastAnimLoop, ID);
+ if (pan.CanChangeTexture) then MH_SEND_PanelTexture(pan.guid, ID);
end;
var
// PANEL
-procedure MH_SEND_PanelTexture(PGUID: Integer; AnimLoop: Byte; ID: Integer = NET_EVERYONE);
+procedure MH_SEND_PanelTexture(PGUID: Integer; ID: Integer = NET_EVERYONE);
var
TP: TPanel;
begin
TP := g_Map_PanelByGUID(PGUID);
if (TP = nil) then exit;
- with TP do
- begin
- NetOut.Write(Byte(NET_MSG_PTEX));
- NetOut.Write(LongWord(PGUID));
- NetOut.Write(FCurTexture);
- NetOut.Write(FCurFrame);
- NetOut.Write(FCurFrameCount);
- NetOut.Write(AnimLoop);
- end;
+ NetOut.Write(Byte(NET_MSG_PTEX));
+ NetOut.Write(LongWord(PGUID));
+ NetOut.Write(TP.FCurTexture);
+ NetOut.Write(TP.AnimTime);
+ NetOut.Write(TP.LastAnimLoop);
g_Net_Host_Send(ID, True, NET_CHAN_LARGEDATA);
end;
case Kind of
NET_GFX_SPARK:
- g_GFX_Spark(X, Y, 2 + Random(2), Ang, 0, 0);
-
+ begin
+ {$IFDEF ENABLE_GFX}
+ g_GFX_Spark(X, Y, 2 + Random(2), Ang, 0, 0);
+ {$ENDIF}
+ end;
NET_GFX_TELE:
begin
- r_GFX_OnceAnim(R_GFX_TELEPORT_FAST, X, Y);
+ {$IFDEF ENABLE_GFX}
+ g_GFX_QueueEffect(R_GFX_TELEPORT_FAST, X, Y);
+ {$ENDIF}
if Ang = 1 then
g_Sound_PlayExAt('SOUND_GAME_TELEPORT', X, Y);
end;
-
NET_GFX_EXPLODE:
begin
- r_GFX_OnceAnim(R_GFX_EXPLODE_ROCKET, X - 64, Y - 64);
+ {$IFDEF ENABLE_GFX}
+ g_GFX_QueueEffect(R_GFX_EXPLODE_ROCKET, X - 64, Y - 64);
+ {$ENDIF}
if Ang = 1 then
g_Sound_PlayExAt('SOUND_WEAPON_EXPLODEROCKET', X, Y);
end;
-
NET_GFX_BFGEXPL:
begin
- r_GFX_OnceAnim(R_GFX_EXPLODE_BFG, X - 64, Y - 64);
+ {$IFDEF ENABLE_GFX}
+ g_GFX_QueueEffect(R_GFX_EXPLODE_BFG, X - 64, Y - 64);
+ {$ENDIF}
if Ang = 1 then
g_Sound_PlayExAt('SOUND_WEAPON_EXPLODEBFG', X, Y);
end;
-
NET_GFX_BFGHIT:
begin
- r_GFX_OnceAnim(R_GFX_BFG_HIT, X - 32, Y - 32);
+ {$IFDEF ENABLE_GFX}
+ g_GFX_QueueEffect(R_GFX_BFG_HIT, X - 32, Y - 32);
+ {$ENDIF}
end;
-
NET_GFX_FIRE:
begin
- r_GFX_OnceAnim(R_GFX_FIRE, X, Y);
+ {$IFDEF ENABLE_GFX}
+ g_GFX_QueueEffect(R_GFX_FIRE, X, Y);
+ {$ENDIF}
if Ang = 1 then
g_Sound_PlayExAt('SOUND_FIRE', X, Y);
end;
-
NET_GFX_RESPAWN:
begin
- r_GFX_OnceAnim(R_GFX_ITEM_RESPAWN, X, Y);
+ {$IFDEF ENABLE_GFX}
+ g_GFX_QueueEffect(R_GFX_ITEM_RESPAWN, X, Y);
+ {$ENDIF}
if Ang = 1 then
g_Sound_PlayExAt('SOUND_ITEM_RESPAWNITEM', X, Y);
end;
-
NET_GFX_SHELL1:
- g_Player_CreateShell(X, Y, 0, -2, SHELL_BULLET);
-
+ begin
+ {$IFDEF ENABLE_SHELLS}
+ g_Shells_Create(X, Y, 0, -2, SHELL_BULLET);
+ {$ENDIF}
+ end;
NET_GFX_SHELL2:
- g_Player_CreateShell(X, Y, 0, -2, SHELL_SHELL);
-
+ begin
+ {$IFDEF ENABLE_SHELLS}
+ g_Shells_Create(X, Y, 0, -2, SHELL_SHELL);
+ {$ENDIF}
+ end;
NET_GFX_SHELL3:
begin
- g_Player_CreateShell(X, Y, 0, -2, SHELL_SHELL);
- g_Player_CreateShell(X, Y, 0, -2, SHELL_SHELL);
+ {$IFDEF ENABLE_SHELLS}
+ g_Shells_Create(X, Y, 0, -2, SHELL_SHELL);
+ g_Shells_Create(X, Y, 0, -2, SHELL_SHELL);
+ {$ENDIF}
end;
end;
end;
NET_EV_LMS_START:
begin
- g_Player_RemoveAllCorpses;
+ {$IFDEF ENABLE_GIBS}
+ g_Gibs_RemoveAll;
+ {$ENDIF}
+ {$IFDEF ENABLE_SHELLS}
+ g_Shells_RemoveAll;
+ {$ENDIF}
+ {$IFDEF ENABLE_CORPSES}
+ g_Corpses_RemoveAll;
+ {$ENDIF}
gLMSRespawn := LMS_RESPAWN_NONE;
g_Game_Message(_lc[I_MESSAGE_LMS_START], 144);
end;
if not Quiet then
begin
g_Sound_PlayExAt('SOUND_ITEM_RESPAWNITEM', X, Y);
- r_GFX_OnceAnim(R_GFX_ITEM_RESPAWN, X+(it.Obj.Rect.Width div 2)-16, Y+(it.Obj.Rect.Height div 2)-16);
+ {$IFDEF ENABLE_GFX}
+ g_GFX_QueueEffect(R_GFX_ITEM_RESPAWN, X+(it.Obj.Rect.Width div 2)-16, Y+(it.Obj.Rect.Height div 2)-16);
+ {$ENDIF}
end;
end;
// PANEL
procedure MC_RECV_PanelTexture(var M: TMsg);
-var
- TP: TPanel;
- PGUID: Integer;
- Tex, Fr: Integer;
- Loop, Cnt: Byte;
+ var TP: TPanel; PGUID, Tex: Integer; AnimTime: LongWord; Loop: Byte;
begin
if not gGameOn then Exit;
PGUID := Integer(M.ReadLongWord());
Tex := M.ReadLongInt();
- Fr := M.ReadLongInt();
- Cnt := M.ReadByte();
+ AnimTime := M.ReadLongWord();
Loop := M.ReadByte();
TP := g_Map_PanelByGUID(PGUID);
begin
// switch texture
TP.SetTexture(Tex, Loop);
- TP.SetFrame(Fr, Cnt);
+ TP.SetFrame(AnimTime);
end;
end;
kByte := 0;
Predict := NetPredictSelf; // and (not NetGotKeys);
+{$IFDEF DISABLE_MENU}
+ if (not gConsoleShow) and (not gChatShow) then
+{$ELSE}
if (not gConsoleShow) and (not gChatShow) and (g_ActiveWindow = nil) then
+{$ENDIF}
begin
strafeDir := P1MoveButton shr 4;
P1MoveButton := P1MoveButton and $0F;