diff --git a/src/game/g_game.pas b/src/game/g_game.pas
index 93368940da0d943a1223f77191f923c7432b5bfd..302b952af4b10f88b81c89e2537faf706921b2b9 100644 (file)
--- a/src/game/g_game.pas
+++ b/src/game/g_game.pas
uses
g_basic, g_player, e_graphics, Classes, g_res_downloader,
uses
g_basic, g_player, e_graphics, Classes, g_res_downloader,
- SysUtils, g_sound, g_gui, MAPSTRUCT, wadreader, md5, xprofiler;
+ SysUtils, g_sound, g_gui, MAPDEF, wadreader, md5, xprofiler;
type
TGameSettings = record
type
TGameSettings = record
THearPoint = record
Active: Boolean;
THearPoint = record
Active: Boolean;
- Coords: TPoint;
+ Coords: TDFPoint;
end;
function g_Game_IsNet(): Boolean;
end;
function g_Game_IsNet(): Boolean;
gPlayer1Settings: TPlayerSettings;
gPlayer2Settings: TPlayerSettings;
gGameOn: Boolean;
gPlayer1Settings: TPlayerSettings;
gPlayer2Settings: TPlayerSettings;
gGameOn: Boolean;
- gPlayerScreenSize: TPoint;
- gPlayer1ScreenCoord: TPoint;
- gPlayer2ScreenCoord: TPoint;
+ gPlayerScreenSize: TDFPoint;
+ gPlayer1ScreenCoord: TDFPoint;
+ gPlayer2ScreenCoord: TDFPoint;
gPlayer1: TPlayer = nil;
gPlayer2: TPlayer = nil;
gPlayerDrawn: TPlayer = nil;
gPlayer1: TPlayer = nil;
gPlayer2: TPlayer = nil;
gPlayerDrawn: TPlayer = nil;
g_rlayer_water: Boolean = true;
g_rlayer_fore: Boolean = true;
g_rlayer_water: Boolean = true;
g_rlayer_fore: Boolean = true;
+ g_dbg_scale_05: Boolean = false;
+
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);
g_textures, g_main, g_window, g_menu,
e_input, e_log, g_console, g_items, g_map, g_panel,
g_playermodel, g_gfx, g_options, g_weapons, Math,
g_textures, g_main, g_window, g_menu,
e_input, e_log, g_console, g_items, g_map, g_panel,
g_playermodel, g_gfx, g_options, g_weapons, Math,
- g_triggers, MAPDEF, g_monsters, e_sound, CONFIG,
+ g_triggers, g_monsters, e_sound, CONFIG,
BinEditor, g_language, g_net, SDL,
ENet, e_msg, g_netmsg, g_netmaster, GL, GLExt,
utils, sfs, g_holmes;
BinEditor, g_language, g_net, SDL,
ENet, e_msg, g_netmsg, g_netmaster, GL, GLExt,
utils, sfs, g_holmes;
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_05 then
+ begin
+ g_Map_CollectDrawPanels(sX, sY, sWidth*2, sHeight*2);
+ 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
+ if g_dbg_scale_05 then
+ begin
+ glScalef(0.5, 0.5, 1.0);
+ glTranslatef(transX, transY, 0);
+ end
+ else
+ begin
+ glTranslatef(transX, transY, 0);
+ end;
+ 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);
var
px, py, a, b, c, d: Integer;
//R: TRect;
var
px, py, a, b, c, d: Integer;
//R: TRect;
-
begin
if (p = nil) or (p.FDummy) then
begin
begin
if (p = nil) or (p.FDummy) then
begin
glPushMatrix();
px := p.GameX + PLAYER_RECT_CX;
glPushMatrix();
px := p.GameX + PLAYER_RECT_CX;
- py := p.GameY + PLAYER_RECT_CY;
+ py := p.GameY + PLAYER_RECT_CY+p.Obj.slopeUpLeft;
if px > (gPlayerScreenSize.X div 2) then a := -px+(gPlayerScreenSize.X div 2) else a := 0;
if py > (gPlayerScreenSize.Y div 2) then b := -py+(gPlayerScreenSize.Y div 2) else b := 0;
if px > (gPlayerScreenSize.X div 2) then a := -px+(gPlayerScreenSize.X div 2) else a := 0;
if py > (gPlayerScreenSize.Y div 2) then b := -py+(gPlayerScreenSize.Y div 2) else b := 0;
var
a, b: Integer;
cmd: string;
var
a, b: Integer;
cmd: string;
- //pt: TPoint;
+ //pt: TDFPoint;
mon: TMonster;
begin
// Êîìàíäû îòëàäî÷íîãî ðåæèìà:
mon: TMonster;
begin
// Êîìàíäû îòëàäî÷íîãî ðåæèìà:
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;
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_half', @g_dbg_scale_05, 'experimental deBUG scale*0.5 mode', 'Scale0.5', true);
end.
end.