diff --git a/src/game/g_netmsg.pas b/src/game/g_netmsg.pas
index 8b9aa1e05da1bb65c9ac50872d49f3dd4fd944bc..86c76570e35722f43ae564b2cd1958016ea0a326 100644 (file)
--- a/src/game/g_netmsg.pas
+++ b/src/game/g_netmsg.pas
@@ -168,8 +168,8 @@ procedure MH_SEND_PlayerSettings(PID: Word; Mdl: string = ''; ID: Integer = NET_
procedure MH_SEND_ItemSpawn(Quiet: Boolean; IID: Word; ID: Integer = NET_EVERYONE);
procedure MH_SEND_ItemDestroy(Quiet: Boolean; IID: Word; ID: Integer = NET_EVERYONE);
// PANEL
-procedure MH_SEND_PanelTexture(PType: Word; PGUID: Integer; AnimLoop: Byte; ID: Integer = NET_EVERYONE);
-procedure MH_SEND_PanelState(PType: Word; PGUID: Integer; ID: Integer = NET_EVERYONE);
+procedure MH_SEND_PanelTexture(PGUID: Integer; AnimLoop: Byte; 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);
procedure MH_SEND_MonsterPos(UID: Word; ID: Integer = NET_EVERYONE);
g_Console_Add(Format(_lc[I_PLAYER_JOIN], [PName]), True);
e_WriteLog('NET: Client ' + PName + ' [' + IntToStr(C^.ID) +
- '] connected. Assigned player #' + IntToStr(PID) + '.', MSG_NOTIFY);
+ '] connected. Assigned player #' + IntToStr(PID) + '.', TMsgType.Notify);
MH_SEND_Info(C^.ID);
@@ -643,8 +643,8 @@ procedure MH_SEND_Everything(CreatePlayers: Boolean = False; ID: Integer = NET_E
function sendPanelState (pan: TPanel): Boolean;
begin
result := false; // don't stop
- MH_SEND_PanelState(pan.PanelType, pan.guid, ID); // anyway, to sync mplats
- if (pan.GetTextureCount > 1) then MH_SEND_PanelTexture(pan.PanelType, pan.guid, pan.LastAnimLoop, ID);
+ MH_SEND_PanelState(pan.guid, ID); // anyway, to sync mplats
+ if (pan.GetTextureCount > 1) then MH_SEND_PanelTexture(pan.guid, pan.LastAnimLoop, ID);
end;
var
g_Items_ForEachAlive(sendItemRespawn, true); // backwards
g_Mons_ForEach(sendMonSpawn);
-
g_Map_ForEachPanel(sendPanelState);
- (* replaced with the `g_Map_ForEachPanel()` call above
- if gWalls <> nil then
- for I := Low(gWalls) to High(gWalls) do
- if gWalls[I] <> nil then
- with gWalls[I] do
- begin
- {if Door then} // anyway, to sync mplats
- MH_SEND_PanelState(PanelType, I, ID);
-
- if GetTextureCount > 1 then
- MH_SEND_PanelTexture(PanelType, I, LastAnimLoop, ID);
- end;
-
- if gLifts <> nil then
- for I := Low(gLifts) to High(gLifts) do
- if gLifts[I] <> nil then
- with gLifts[I] do
- MH_SEND_PanelState(PanelType, I, ID);
-
- if gRenderForegrounds <> nil then
- for I := Low(gRenderForegrounds) to High(gRenderForegrounds) do
- if gRenderForegrounds[I] <> nil then
- with gRenderForegrounds[I] do
- begin
- if (GetTextureCount > 1) then
- MH_SEND_PanelTexture(PanelType, I, LastAnimLoop, ID);
- {if Moved then} // anyway, to sync mplats
- MH_SEND_PanelState(PanelType, I, ID);
- end;
- if gRenderBackgrounds <> nil then
- for I := Low(gRenderBackgrounds) to High(gRenderBackgrounds) do
- if gRenderBackgrounds[I] <> nil then
- with gRenderBackgrounds[I] do
- begin
- if (GetTextureCount > 1) then
- MH_SEND_PanelTexture(PanelType, I, LastAnimLoop, ID);
- {if Moved then} // anyway, to sync mplats
- MH_SEND_PanelState(PanelType, I, ID);
- end;
- if gWater <> nil then
- for I := Low(gWater) to High(gWater) do
- if gWater[I] <> nil then
- with gWater[I] do
- begin
- if GetTextureCount > 1 then
- MH_SEND_PanelTexture(PanelType, I, LastAnimLoop, ID);
- {if Moved then} // anyway, to sync mplats
- MH_SEND_PanelState(PanelType, I, ID);
- end;
- if gAcid1 <> nil then
- for I := Low(gAcid1) to High(gAcid1) do
- if gAcid1[I] <> nil then
- with gAcid1[I] do
- begin
- if GetTextureCount > 1 then
- MH_SEND_PanelTexture(PanelType, I, LastAnimLoop, ID);
- {if Moved then} // anyway, to sync mplats
- MH_SEND_PanelState(PanelType, I, ID);
- end;
- if gAcid2 <> nil then
- for I := Low(gAcid2) to High(gAcid2) do
- if gAcid2[I] <> nil then
- with gAcid2[I] do
- begin
- if GetTextureCount > 1 then
- MH_SEND_PanelTexture(PanelType, I, LastAnimLoop, ID);
- {if Moved then} // anyway, to sync mplats
- MH_SEND_PanelState(PanelType, I, ID);
- end;
- if gSteps <> nil then
- for I := Low(gSteps) to High(gSteps) do
- if gSteps[I] <> nil then
- with gSteps[I] do
- begin
- if GetTextureCount > 1 then
- MH_SEND_PanelTexture(PanelType, I, LastAnimLoop, ID);
- {if Moved then} // anyway, to sync mplats
- MH_SEND_PanelState(PanelType, I, ID);
- end;
- *)
-
if gTriggers <> nil then
+ begin
for I := Low(gTriggers) to High(gTriggers) do
+ begin
if gTriggers[I].TriggerType = TRIGGER_SOUND then
+ begin
MH_SEND_TriggerSound(gTriggers[I], ID);
+ end;
+ end;
+ end;
if Shots <> nil then
+ begin
for I := Low(Shots) to High(Shots) do
+ begin
if Shots[i].ShotType in [6, 7, 8] then
+ begin
MH_SEND_CreateShot(i, ID);
+ end;
+ end;
+ end;
MH_SEND_TriggerMusic(ID);
if gGameSettings.GameMode = GM_CTF then
begin
- if gFlags[FLAG_RED].State <> FLAG_STATE_CAPTURED then
- MH_SEND_FlagEvent(gFlags[FLAG_RED].State, FLAG_RED, 0, True, ID);
- if gFlags[FLAG_BLUE].State <> FLAG_STATE_CAPTURED then
- MH_SEND_FlagEvent(gFlags[FLAG_BLUE].State, FLAG_BLUE, 0, True, ID);
+ if gFlags[FLAG_RED].State <> FLAG_STATE_CAPTURED then MH_SEND_FlagEvent(gFlags[FLAG_RED].State, FLAG_RED, 0, True, ID);
+ if gFlags[FLAG_BLUE].State <> FLAG_STATE_CAPTURED then MH_SEND_FlagEvent(gFlags[FLAG_BLUE].State, FLAG_BLUE, 0, True, ID);
end;
if CreatePlayers and (ID >= 0) then NetClients[ID].State := NET_STATE_GAME;
if gLMSRespawn > LMS_RESPAWN_NONE then
+ begin
MH_SEND_GameEvent(NET_EV_LMS_WARMUP, (gLMSRespawnTime - gTime) div 1000, 'N', ID);
+ end;
end;
procedure MH_SEND_Info(ID: Byte);
if Mode = NET_CHAT_PLAYER then
begin
g_Console_Add(Txt, True);
- e_WriteLog('[Chat] ' + b_Text_Unformat(Txt), MSG_NOTIFY);
+ e_WriteLog('[Chat] ' + b_Text_Unformat(Txt), TMsgType.Notify);
g_Sound_PlayEx('SOUND_GAME_RADIO');
end
else
if (gPlayer1.Team = TEAM_RED) and (Team = TEAM_RED) then
begin
g_Console_Add(#18'[Team] '#2 + Txt, True);
- e_WriteLog('[Team Chat] ' + b_Text_Unformat(Txt), MSG_NOTIFY);
+ e_WriteLog('[Team Chat] ' + b_Text_Unformat(Txt), TMsgType.Notify);
g_Sound_PlayEx('SOUND_GAME_RADIO');
end
else if (gPlayer1.Team = TEAM_BLUE) and (Team = TEAM_BLUE) then
begin
g_Console_Add(#20'[Team] '#2 + Txt, True);
- e_WriteLog('[Team Chat] ' + b_Text_Unformat(Txt), MSG_NOTIFY);
+ e_WriteLog('[Team Chat] ' + b_Text_Unformat(Txt), TMsgType.Notify);
g_Sound_PlayEx('SOUND_GAME_RADIO');
end;
end;
begin
Name := g_Net_ClientName_ByID(ID);
g_Console_Add('-> ' + Name + ': ' + Txt, True);
- e_WriteLog('[Tell ' + Name + '] ' + b_Text_Unformat(Txt), MSG_NOTIFY);
+ e_WriteLog('[Tell ' + Name + '] ' + b_Text_Unformat(Txt), TMsgType.Notify);
g_Sound_PlayEx('SOUND_GAME_RADIO');
end;
end;
NetOut.Write(EvStr);
NetOut.Write(Byte(gLastMap));
NetOut.Write(gTime);
- if (EvType = NET_EV_MAPSTART) and (Pos(':\', EvStr) > 0) then
+ if (EvType = NET_EV_MAPSTART) and isWadPath(EvStr) then
begin
NetOut.Write(Byte(1));
NetOut.Write(gWADHash);
end;
NetOut.Write(kByte);
- if Direction = D_LEFT then NetOut.Write(Byte(0)) else NetOut.Write(Byte(1));
+ if Direction = TDirection.D_LEFT then NetOut.Write(Byte(0)) else NetOut.Write(Byte(1));
NetOut.Write(GameX);
NetOut.Write(GameY);
NetOut.Write(GameVelX);
procedure MH_SEND_ItemSpawn(Quiet: Boolean; IID: Word; ID: Integer = NET_EVERYONE);
var
it: PItem;
+ tt: Byte;
begin
it := g_Items_ByIdx(IID);
NetOut.Write(Byte(NET_MSG_ISPAWN));
NetOut.Write(IID);
NetOut.Write(Byte(Quiet));
- NetOut.Write(it.ItemType);
+ tt := it.ItemType;
+ if it.dropped then tt := tt or $80;
+ NetOut.Write(tt);
NetOut.Write(Byte(it.Fall));
NetOut.Write(Byte(it.Respawnable));
NetOut.Write(it.Obj.X);
// PANEL
-procedure MH_SEND_PanelTexture(PType: Word; PGUID: Integer; AnimLoop: Byte; ID: Integer = NET_EVERYONE);
+procedure MH_SEND_PanelTexture(PGUID: Integer; AnimLoop: Byte; ID: Integer = NET_EVERYONE);
var
TP: TPanel;
begin
TP := g_Map_PanelByGUID(PGUID);
if (TP = nil) then exit;
- {
- case PType of
- PANEL_WALL, PANEL_OPENDOOR, PANEL_CLOSEDOOR:
- TP := gWalls[PID];
- PANEL_FORE:
- TP := gRenderForegrounds[PID];
- PANEL_BACK:
- TP := gRenderBackgrounds[PID];
- PANEL_WATER:
- TP := gWater[PID];
- PANEL_ACID1:
- TP := gAcid1[PID];
- PANEL_ACID2:
- TP := gAcid2[PID];
- PANEL_STEP:
- TP := gSteps[PID];
- else
- Exit;
- end;
- }
with TP do
begin
NetOut.Write(Byte(NET_MSG_PTEX));
- NetOut.Write(PType);
NetOut.Write(LongWord(PGUID));
NetOut.Write(FCurTexture);
NetOut.Write(FCurFrame);
g_Net_Host_Send(ID, True, NET_CHAN_LARGEDATA);
end;
-procedure MH_SEND_PanelState(PType: Word; PGUID: Integer; ID: Integer = NET_EVERYONE);
+procedure MH_SEND_PanelState(PGUID: Integer; ID: Integer = NET_EVERYONE);
var
TP: TPanel;
mpflags: Byte = 0;
begin
TP := g_Map_PanelByGUID(PGUID);
if (TP = nil) then exit;
- case PType of
- {
- PANEL_WALL, PANEL_OPENDOOR, PANEL_CLOSEDOOR: TP := gWalls[PID];
- PANEL_LIFTUP, PANEL_LIFTDOWN, PANEL_LIFTLEFT, PANEL_LIFTRIGHT: TP := gLifts[PID];
- }
- PANEL_BACK:
- begin
- //TP := gRenderBackgrounds[PID];
- TP.Moved := True;
- end;
- PANEL_FORE:
- begin
- //TP := gRenderForegrounds[PID];
- TP.Moved := True;
- end;
- {
- else
- Exit;
- }
- end;
NetOut.Write(Byte(NET_MSG_PSTATE));
- NetOut.Write(PType);
NetOut.Write(LongWord(PGUID));
NetOut.Write(Byte(TP.Enabled));
NetOut.Write(TP.LiftType);
if Mode = NET_CHAT_PLAYER then
begin
g_Console_Add(Txt, True);
- e_WriteLog('[Chat] ' + b_Text_Unformat(Txt), MSG_NOTIFY);
+ e_WriteLog('[Chat] ' + b_Text_Unformat(Txt), TMsgType.Notify);
g_Sound_PlayEx('SOUND_GAME_RADIO');
end else
if (Mode = NET_CHAT_TEAM) and (gPlayer1 <> nil) then
g_Console_Add(b_Text_Format('\r[Team] ') + Txt, True);
if gPlayer1.Team = TEAM_BLUE then
g_Console_Add(b_Text_Format('\b[Team] ') + Txt, True);
- e_WriteLog('[Team Chat] ' + b_Text_Unformat(Txt), MSG_NOTIFY);
+ e_WriteLog('[Team Chat] ' + b_Text_Unformat(Txt), TMsgType.Notify);
g_Sound_PlayEx('SOUND_GAME_RADIO');
end;
end else
gWADHash := EvHash;
if not g_Game_StartMap(EvStr, True) then
begin
- if Pos(':\', EvStr) = 0 then
+ if not isWadPath(EvStr) then
g_FatalError(Format(_lc[I_GAME_ERROR_MAP_LOAD], [gGameSettings.WAD + ':\' + EvStr]))
else
g_FatalError(Format(_lc[I_GAME_ERROR_MAP_LOAD], [EvStr]));
end;
g_Console_Add(Format(_lc[I_PLAYER_JOIN], [PName]), True);
- e_WriteLog('NET: Player ' + PName + ' [' + IntToStr(PID) + '] added.', MSG_NOTIFY);
+ e_WriteLog('NET: Player ' + PName + ' [' + IntToStr(PID) + '] added.', TMsgType.Notify);
Result := PID;
end;
if Pl = nil then Exit;
g_Console_Add(Format(_lc[I_PLAYER_LEAVE], [Pl.Name]), True);
- e_WriteLog('NET: Player ' + Pl.Name + ' [' + IntToStr(PID) + '] removed.', MSG_NOTIFY);
+ e_WriteLog('NET: Player ' + Pl.Name + ' [' + IntToStr(PID) + '] removed.', TMsgType.Notify);
g_Player_Remove(PID);
VX := M.ReadLongInt();
VY := M.ReadLongInt();
- g_Items_Create(X, Y, T, Fall, False, False, ID);
+ g_Items_Create(X, Y, T and $7F, Fall, False, False, ID);
+ if ((T and $80) <> 0) then g_Items_SetDrop(ID);
it := g_Items_ByIdx(ID);
it.Obj.Vel.X := VX;
procedure MC_RECV_PanelTexture(var M: TMsg);
var
TP: TPanel;
- //PType: Word;
PGUID: Integer;
Tex, Fr: Integer;
Loop, Cnt: Byte;
begin
if not gGameOn then Exit;
- {PType :=} M.ReadWord();
+
PGUID := Integer(M.ReadLongWord());
Tex := M.ReadLongInt();
Fr := M.ReadLongInt();
Loop := M.ReadByte();
TP := g_Map_PanelByGUID(PGUID);
-
- {
- case PType of
- PANEL_WALL, PANEL_OPENDOOR, PANEL_CLOSEDOOR: if gWalls <> nil then TP := gWalls[ID];
- PANEL_FORE: if gRenderForegrounds <> nil then TP := gRenderForegrounds[ID];
- PANEL_BACK: if gRenderBackgrounds <> nil then TP := gRenderBackgrounds[ID];
- PANEL_WATER: if gWater <> nil then TP := gWater[ID];
- PANEL_ACID1: if gAcid1 <> nil then TP := gAcid1[ID];
- PANEL_ACID2: if gAcid2 <> nil then TP := gAcid2[ID];
- PANEL_STEP: if gSteps <> nil then TP := gSteps[ID];
- else Exit;
- end;
- }
-
if (TP <> nil) then
begin
if Loop = 0 then
PGUID: Integer;
E: Boolean;
Lift: Byte;
- PType: Word;
X, Y, W, H: Integer;
TP: TPanel;
speedX, speedY, startX, startY, endX, endY: Integer;
mpflags: Byte;
begin
if not gGameOn then Exit;
- PType := M.ReadWord();
+
PGUID := Integer(M.ReadLongWord());
E := (M.ReadByte() <> 0);
Lift := M.ReadByte();
sizeEY := M.ReadLongInt();
mpflags := M.ReadByte(); // bit0: TP.movingActive; bit1: TP.moveOnce
- case PType of
- {PANEL_WALL, PANEL_OPENDOOR, PANEL_CLOSEDOOR:
- if E then g_Map_EnableWallGUID(PGUID) else g_Map_DisableWallGUID(PGUID);}
-
- PANEL_LIFTUP, PANEL_LIFTDOWN, PANEL_LIFTLEFT, PANEL_LIFTRIGHT:
- g_Map_SetLiftGUID(PGUID, Lift);
-
- {PANEL_BACK,
- PANEL_FORE:}
- {
- else
- begin
- TP := g_Map_PanelByGUID(PGUID);
- if (TP <> nil) then
- begin
- TP.X := X;
- TP.Y := Y;
- TP.positionChanged();
- end;
- //gRenderBackgrounds[ID].X := X;
- //gRenderBackgrounds[ID].Y := Y;
- end;
- }
+ TP := g_Map_PanelByGUID(PGUID);
+ if (TP = nil) then exit;
- {
- PANEL_FORE:
- begin
- gRenderForegrounds[ID].X := X;
- gRenderForegrounds[ID].Y := Y;
- end;
- }
- end;
+ // update lifts state
+ if TP.isGLift then g_Map_SetLiftGUID(PGUID, Lift);
// update enabled/disabled state for all panels
if E then g_Map_EnableWallGUID(PGUID) else g_Map_DisableWallGUID(PGUID);
- // update panel position, as it can be moved
- TP := g_Map_PanelByGUID(PGUID);
- if (TP <> nil) then
- begin
- // mplat
- TP.movingSpeedX := speedX;
- TP.movingSpeedY := speedY;
- TP.movingStartX := startX;
- TP.movingStartY := startY;
- TP.movingEndX := endX;
- TP.movingEndY := endY;
- TP.sizeSpeedX := sizeSpX;
- TP.sizeSpeedY := sizeSpY;
- TP.sizeEndX := sizeEX;
- TP.sizeEndY := sizeEY;
- TP.movingActive := ((mpflags and 1) <> 0);
- TP.moveOnce := ((mpflags and 2) <> 0);
- // position
- TP.X := X;
- TP.Y := Y;
- TP.Width := W;
- TP.Height := H;
- TP.positionChanged();
- end;
+ // update panel position, as it can be moved (mplat)
+ TP.X := X;
+ TP.Y := Y;
+ TP.Width := W;
+ TP.Height := H;
+ // update mplat state
+ TP.movingSpeedX := speedX;
+ TP.movingSpeedY := speedY;
+ TP.movingStartX := startX;
+ TP.movingStartY := startY;
+ TP.movingEndX := endX;
+ TP.movingEndY := endY;
+ TP.sizeSpeedX := sizeSpX;
+ TP.sizeSpeedY := sizeSpY;
+ TP.sizeEndX := sizeEX;
+ TP.sizeEndY := sizeEY;
+ TP.movingActive := ((mpflags and 1) <> 0);
+ TP.moveOnce := ((mpflags and 2) <> 0);
+ // notify panel of it's position/size change, so it can fix other internal structures
+ TP.positionChanged();
end;
// TRIGGERS
begin
if SPlaying then
begin
- if trigData.trigLocal then
- Sound.PlayVolumeAt(X+(Width div 2), Y+(Height div 2), trigData.trigVolume/255.0)
+ if tgcLocal then
+ Sound.PlayVolumeAt(X+(Width div 2), Y+(Height div 2), tgcVolume/255.0)
else
- Sound.PlayPanVolume((trigData.trigPan-127.0)/128.0, trigData.trigVolume/255.0);
+ Sound.PlayPanVolume((tgcPan-127.0)/128.0, tgcVolume/255.0);
Sound.SetPosition(SPos);
end
else
setPosition(X, Y); // this will call positionChanged();
GameVelX := VX;
GameVelY := VY;
- //positionChanged(); // this updates spatial accelerators
end;
end;
GameVelX := M.ReadLongInt();
GameVelY := M.ReadLongInt();
GameDirection := TDirection(M.ReadByte());
- //positionChanged(); // this updates spatial accelerators
end;
end;
if MonsterState <> MState then
begin
- if (MState = MONSTATE_GO) and (MonsterState = MONSTATE_SLEEP) then
- WakeUpSound;
- if (MState = MONSTATE_DIE) then
- DieSound;
- if (MState = MONSTATE_PAIN) then
- MakeBloodSimple(Min(200, MonsterPain));
- if (MState = MONSTATE_ATTACK) then
- kick(nil);
- if (MState = MONSTATE_DEAD) then
- SetDeadAnim;
+ if (MState = MONSTATE_GO) and (MonsterState = MONSTATE_SLEEP) then WakeUpSound();
+ if (MState = MONSTATE_DIE) then DieSound();
+ if (MState = MONSTATE_PAIN) then MakeBloodSimple(Min(200, MonsterPain));
+ if (MState = MONSTATE_ATTACK) then kick(nil);
+ if (MState = MONSTATE_DEAD) then SetDeadAnim();
SetState(MState, MFAnm);
end;
// new strafe mechanics
if (strafeDir = 0) then strafeDir := P1MoveButton; // start strafing
// now set direction according to strafe (reversed)
- if (strafeDir = 2) then gPlayer1.SetDirection(D_LEFT)
- else if (strafeDir = 1) then gPlayer1.SetDirection(D_RIGHT);
+ if (strafeDir = 2) then gPlayer1.SetDirection(TDirection.D_LEFT)
+ else if (strafeDir = 1) then gPlayer1.SetDirection(TDirection.D_RIGHT);
end
else
begin
- if (P1MoveButton = 2) and isKeyPressed(KeyLeft, KeyLeft2) then gPlayer1.SetDirection(D_LEFT)
- else if (P1MoveButton = 1) and isKeyPressed(KeyRight, KeyRight2) then gPlayer1.SetDirection(D_RIGHT)
+ if (P1MoveButton = 2) and isKeyPressed(KeyLeft, KeyLeft2) then gPlayer1.SetDirection(TDirection.D_LEFT)
+ else if (P1MoveButton = 1) and isKeyPressed(KeyRight, KeyRight2) then gPlayer1.SetDirection(TDirection.D_RIGHT)
else if P1MoveButton <> 0 then gPlayer1.SetDirection(TDirection(P1MoveButton-1));
end;
FileStream : TStream;
fname: string;
begin
- e_WriteLog(Format('NETWORK: looking for file "%s"', [FileName]), MSG_NOTIFY);
+ e_WriteLog(Format('NETWORK: looking for file "%s"', [FileName]), TMsgType.Notify);
fname := findDiskWad(FileName);
if length(fname) = 0 then
begin
- e_WriteLog(Format('NETWORK: file "%s" not found!', [FileName]), MSG_FATALERROR);
+ e_WriteLog(Format('NETWORK: file "%s" not found!', [FileName]), TMsgType.Fatal);
SetLength(Result, 0);
exit;
end;
- e_WriteLog(Format('NETWORK: found file "%s"', [fname]), MSG_NOTIFY);
+ e_WriteLog(Format('NETWORK: found file "%s"', [fname]), TMsgType.Notify);
Result := nil;
FileStream := openDiskFileRO(fname);
try
mapDataMsg: TMapDataMsg;
begin
e_WriteLog('NET: Received map request from ' +
- DecodeIPV4(C.Peer.address.host), MSG_NOTIFY);
+ DecodeIPV4(C.Peer.address.host), TMsgType.Notify);
mapDataMsg := CreateMapDataMsg(MapsDir + gGameSettings.WAD, gExternalResources);
peer := NetClients[C.ID].Peer;
begin
FileName := ExtractFileName(M.ReadString());
e_WriteLog('NET: Received res request: ' + FileName +
- ' from ' + DecodeIPV4(C.Peer.address.host), MSG_NOTIFY);
+ ' from ' + DecodeIPV4(C.Peer.address.host), TMsgType.Notify);
if not IsValidFilePath(FileName) then
begin
- e_WriteLog('Invalid filename: ' + FileName, MSG_WARNING);
+ e_WriteLog('Invalid filename: ' + FileName, TMsgType.Warning);
exit;
end;