diff --git a/src/game/g_game.pas b/src/game/g_game.pas
index 66a589b316a7f447f4eda273418a3a4c08b1cdec..3f56489a15cc2caecb77bd8a3a0441fbb103a93a 100644 (file)
--- a/src/game/g_game.pas
+++ b/src/game/g_game.pas
function g_Game_IsServer(): Boolean;
function g_Game_IsClient(): Boolean;
procedure g_Game_Init();
function g_Game_IsServer(): Boolean;
function g_Game_IsClient(): Boolean;
procedure g_Game_Init();
-procedure g_Game_Free();
+procedure g_Game_Free (freeTextures: Boolean=true);
procedure g_Game_LoadData();
procedure g_Game_FreeData();
procedure g_Game_Update();
procedure g_Game_LoadData();
procedure g_Game_FreeData();
procedure g_Game_Update();
procedure g_Game_RestartRound(NoMapRestart: Boolean = False);
procedure g_Game_ClientWAD(NewWAD: String; WHash: TMD5Digest);
procedure g_Game_SaveOptions();
procedure g_Game_RestartRound(NoMapRestart: Boolean = False);
procedure g_Game_ClientWAD(NewWAD: String; WHash: TMD5Digest);
procedure g_Game_SaveOptions();
-function g_Game_StartMap(Map: String; Force: Boolean = False): Boolean;
+function g_Game_StartMap(Map: String; Force: Boolean = False; const oldMapPath: AnsiString=''): Boolean;
procedure g_Game_ChangeMap(MapPath: String);
procedure g_Game_ExitLevel(Map: Char16);
function g_Game_GetFirstMap(WAD: String): String;
procedure g_Game_ChangeMap(MapPath: String);
procedure g_Game_ExitLevel(Map: Char16);
function g_Game_GetFirstMap(WAD: String): String;
g_rlayer_water: Boolean = true;
g_rlayer_fore: Boolean = true;
g_rlayer_water: Boolean = true;
g_rlayer_fore: Boolean = true;
+ g_dbg_scale: Single = 1.0;
+
procedure g_ResetDynlights ();
procedure g_AddDynLight (x, y, radius: Integer; r, g, b, a: Single);
procedure g_ResetDynlights ();
procedure g_AddDynLight (x, y, radius: Integer; r, g, b, a: Single);
end;
end;
end;
end;
-procedure g_Game_Free();
+procedure g_Game_Free(freeTextures: Boolean=true);
begin
if NetMode = NET_CLIENT then g_Net_Disconnect();
if NetMode = NET_SERVER then g_Net_Host_Die();
begin
if NetMode = NET_CLIENT then g_Net_Disconnect();
if NetMode = NET_SERVER then g_Net_Host_Die();
- g_Map_Free();
+ g_Map_Free(freeTextures);
g_Player_Free();
g_Player_RemoveAllCorpses();
g_Player_Free();
g_Player_RemoveAllCorpses();
g_Texture_CreateWADEx('TEXTURE_PLAYER_HUDJET', GameWAD+':TEXTURES\JETBAR');
g_Texture_CreateWADEx('TEXTURE_PLAYER_HUDBG', GameWAD+':TEXTURES\HUDBG');
g_Texture_CreateWADEx('TEXTURE_PLAYER_ARMORHUD', GameWAD+':TEXTURES\ARMORHUD');
g_Texture_CreateWADEx('TEXTURE_PLAYER_HUDJET', GameWAD+':TEXTURES\JETBAR');
g_Texture_CreateWADEx('TEXTURE_PLAYER_HUDBG', GameWAD+':TEXTURES\HUDBG');
g_Texture_CreateWADEx('TEXTURE_PLAYER_ARMORHUD', GameWAD+':TEXTURES\ARMORHUD');
- g_Texture_CreateWADEx('TEXTURE_PLAYER_REDFLAG', GameWAD+':TEXTURES\FLAGHUD_RB');
- g_Texture_CreateWADEx('TEXTURE_PLAYER_REDFLAG_S', GameWAD+':TEXTURES\FLAGHUD_RS');
- g_Texture_CreateWADEx('TEXTURE_PLAYER_REDFLAG_D', GameWAD+':TEXTURES\FLAGHUD_RD');
- g_Texture_CreateWADEx('TEXTURE_PLAYER_BLUEFLAG', GameWAD+':TEXTURES\FLAGHUD_BB');
- g_Texture_CreateWADEx('TEXTURE_PLAYER_BLUEFLAG_S', GameWAD+':TEXTURES\FLAGHUD_BS');
- g_Texture_CreateWADEx('TEXTURE_PLAYER_BLUEFLAG_D', GameWAD+':TEXTURES\FLAGHUD_BD');
+ g_Texture_CreateWADEx('TEXTURE_PLAYER_REDFLAG', GameWAD+':TEXTURES\FLAGHUD_RB', GameWAD+':TEXTURES\FLAGHUD_R_BASE');
+ g_Texture_CreateWADEx('TEXTURE_PLAYER_REDFLAG_S', GameWAD+':TEXTURES\FLAGHUD_RS', GameWAD+':TEXTURES\FLAGHUD_R_STOLEN');
+ g_Texture_CreateWADEx('TEXTURE_PLAYER_REDFLAG_D', GameWAD+':TEXTURES\FLAGHUD_RD', GameWAD+':TEXTURES\FLAGHUD_R_DROP');
+ g_Texture_CreateWADEx('TEXTURE_PLAYER_BLUEFLAG', GameWAD+':TEXTURES\FLAGHUD_BB', GameWAD+':TEXTURES\FLAGHUD_B_BASE');
+ g_Texture_CreateWADEx('TEXTURE_PLAYER_BLUEFLAG_S', GameWAD+':TEXTURES\FLAGHUD_BS', GameWAD+':TEXTURES\FLAGHUD_B_STOLEN');
+ g_Texture_CreateWADEx('TEXTURE_PLAYER_BLUEFLAG_D', GameWAD+':TEXTURES\FLAGHUD_BD', GameWAD+':TEXTURES\FLAGHUD_B_DROP');
g_Texture_CreateWADEx('TEXTURE_PLAYER_TALKBUBBLE', GameWAD+':TEXTURES\TALKBUBBLE');
g_Texture_CreateWADEx('TEXTURE_PLAYER_INVULPENTA', GameWAD+':TEXTURES\PENTA');
g_Frames_CreateWAD(nil, 'FRAMES_TELEPORT', GameWAD+':TEXTURES\TELEPORT', 64, 64, 10, False);
g_Texture_CreateWADEx('TEXTURE_PLAYER_TALKBUBBLE', GameWAD+':TEXTURES\TALKBUBBLE');
g_Texture_CreateWADEx('TEXTURE_PLAYER_INVULPENTA', GameWAD+':TEXTURES\PENTA');
g_Frames_CreateWAD(nil, 'FRAMES_TELEPORT', GameWAD+':TEXTURES\TELEPORT', 64, 64, 10, False);
profileFrameDraw.sectionBegin('collect');
if gdbg_map_use_accel_render then
begin
profileFrameDraw.sectionBegin('collect');
if gdbg_map_use_accel_render then
begin
- g_Map_CollectDrawPanels(sX, sY, sWidth, sHeight);
+ if (g_dbg_scale <> 1.0) then
+ begin
+ g_Map_CollectDrawPanels(sX, sY, round(sWidth/g_dbg_scale)+1, round(sHeight/g_dbg_scale)+1);
+ end
+ else
+ begin
+ g_Map_CollectDrawPanels(sX, sY, sWidth, sHeight);
+ end;
end;
profileFrameDraw.sectionEnd();
end;
profileFrameDraw.sectionEnd();
g_Map_DrawBack(backXOfs, backYOfs);
profileFrameDraw.sectionEnd();
g_Map_DrawBack(backXOfs, backYOfs);
profileFrameDraw.sectionEnd();
- if (setTransMatrix) then glTranslatef(transX, transY, 0);
+ if setTransMatrix then
+ begin
+ glScalef(g_dbg_scale, g_dbg_scale, 1.0);
+ glTranslatef(transX, transY, 0);
+ end;
drawPanelType('*back', PANEL_BACK, g_rlayer_back);
drawPanelType('*step', PANEL_STEP, g_rlayer_step);
drawPanelType('*back', PANEL_BACK, g_rlayer_back);
drawPanelType('*step', PANEL_STEP, g_rlayer_step);
end;
end;
end;
end;
- ProcessLoading();
+ ProcessLoading(true);
e_PollInput();
e_PollInput();
MessageTime := 0;
gGameOn := False;
g_Game_ClearLoading();
MessageTime := 0;
gGameOn := False;
g_Game_ClearLoading();
- g_Game_StartMap(Map, True);
+ g_Game_StartMap(Map, True, gCurrentMapFileName);
end;
end;
-function g_Game_StartMap(Map: String; Force: Boolean = False): Boolean;
+function g_Game_StartMap(Map: String; Force: Boolean = False; const oldMapPath: AnsiString=''): Boolean;
var
NewWAD, ResName: String;
I: Integer;
begin
var
NewWAD, ResName: String;
I: Integer;
begin
- g_Map_Free();
+ g_Map_Free((Map <> gCurrentMapFileName) and (oldMapPath <> gCurrentMapFileName));
g_Player_RemoveAllCorpses();
if (not g_Game_IsClient) and
g_Player_RemoveAllCorpses();
if (not g_Game_IsClient) and
begin
g_Console_Add('player left the map');
gExitByTrigger := True;
begin
g_Console_Add('player left the map');
gExitByTrigger := True;
- g_Game_ExitLevel(gTriggers[a].Data.MapName);
+ //g_Game_ExitLevel(gTriggers[a].Data.MapName);
+ g_Game_ExitLevel(gTriggers[a].trigData.trigMapName);
break;
end;
end;
break;
end;
end;
if gTriggers[a].TriggerType = TRIGGER_EXIT then
begin
gExitByTrigger := True;
if gTriggers[a].TriggerType = TRIGGER_EXIT then
begin
gExitByTrigger := True;
- gNextMap := gTriggers[a].Data.MapName;
+ //gNextMap := gTriggers[a].Data.MapName;
+ gNextMap := gTriggers[a].trigData.trigMapName;
Break;
end;
// Èùåì ñëåäóþùóþ êàðòó â WAD ôàéëå
Break;
end;
// Èùåì ñëåäóþùóþ êàðòó â WAD ôàéëå
with gTriggers[i] do
if (TriggerType = TRIGGER_SOUND) and
(Sound <> nil) and
with gTriggers[i] do
if (TriggerType = TRIGGER_SOUND) and
(Sound <> nil) and
- (Data.Local) and
+ (trigData.trigLocal) and
Sound.IsPlaying() then
begin
if ((gPlayer1 <> nil) and g_CollidePoint(gPlayer1.GameX, gPlayer1.GameY, X, Y, Width, Height)) or
((gPlayer2 <> nil) and g_CollidePoint(gPlayer2.GameX, gPlayer2.GameY, X, Y, Width, Height)) then
begin
Sound.IsPlaying() then
begin
if ((gPlayer1 <> nil) and g_CollidePoint(gPlayer1.GameX, gPlayer1.GameY, X, Y, Width, Height)) or
((gPlayer2 <> nil) and g_CollidePoint(gPlayer2.GameX, gPlayer2.GameY, X, Y, Width, Height)) then
begin
- Sound.SetPan(0.5 - Data.Pan/255.0);
- Sound.SetVolume(Data.Volume/255.0);
+ Sound.SetPan(0.5 - trigData.trigPan/255.0);
+ Sound.SetVolume(trigData.trigVolume/255.0);
end
else
end
else
- Sound.SetCoords(X+(Width div 2), Y+(Height div 2), Data.Volume/255.0);
+ Sound.SetCoords(X+(Width div 2), Y+(Height div 2), trigData.trigVolume/255.0);
end;
end;
end;
end;
g_ActiveWindow := nil;
g_ActiveWindow := nil;
- ProcessLoading;
+ ProcessLoading(true);
end;
procedure g_Game_StepLoading();
end;
procedure g_Game_StepLoading();
if (ShowCount > LOADING_SHOW_STEP) then
begin
ShowCount := 0;
if (ShowCount > LOADING_SHOW_STEP) then
begin
ShowCount := 0;
- ProcessLoading;
+ ProcessLoading();
end;
end;
end;
end;
end;
end;
conRegVar('mon_think', @gmon_debug_think, 'enable/disable monster thinking', 'monster thinking', true);
conRegVar('dbg_holmes', @g_holmes_enabled, 'enable/disable Holmes', 'Holmes', true);
conRegVar('mon_think', @gmon_debug_think, 'enable/disable monster thinking', 'monster thinking', true);
conRegVar('dbg_holmes', @g_holmes_enabled, 'enable/disable Holmes', 'Holmes', true);
+
+ conRegVar('dbg_scale', @g_dbg_scale, 0.01, 5.0, 'experimental deBUG scale mode', '', true);
end.
end.