X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_netmsg.pas;h=4ada39477e8bf9ee37c7a738029786fce98211a4;hb=49ab56efcf5089400dcdc480b7c4216286fb3d78;hp=02b6286b21cf406dab858542c3d73a6e13d0d3f3;hpb=6cdd36d2fb73f13be7b6ea1870a8b3b0817b37f1;p=d2df-sdl.git diff --git a/src/game/g_netmsg.pas b/src/game/g_netmsg.pas index 02b6286..4ada394 100644 --- 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); @@ -290,8 +290,17 @@ implementation {$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_textures, g_sound, g_console, g_options, + g_sound, g_console, g_options, g_game, g_player, g_map, g_panel, g_items, g_weapons, g_phys, g_language, g_monsters, g_netmaster, utils, wadreader, MAPDEF ; @@ -907,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 @@ -1476,22 +1485,18 @@ end; // 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; @@ -1792,16 +1797,22 @@ begin end; NET_GFX_SHELL1: begin - g_Player_CreateShell(X, Y, 0, -2, SHELL_BULLET); + {$IFDEF ENABLE_SHELLS} + g_Shells_Create(X, Y, 0, -2, SHELL_BULLET); + {$ENDIF} end; NET_GFX_SHELL2: begin - g_Player_CreateShell(X, Y, 0, -2, SHELL_SHELL); + {$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; @@ -2127,7 +2138,15 @@ begin NET_EV_LMS_START: begin - g_Player_RemoveAllCorpses; + {$IFDEF ENABLE_GIBS} + g_Gibs_RemoveAll; + {$ENDIF} + {$IFDEF ENALBE_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; @@ -2800,18 +2819,13 @@ 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); @@ -2819,7 +2833,7 @@ begin begin // switch texture TP.SetTexture(Tex, Loop); - TP.SetFrame(Fr, Cnt); + TP.SetFrame(AnimTime); end; end;