X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_game.pas;h=302b952af4b10f88b81c89e2537faf706921b2b9;hb=923fa980434e55419f35422119af2faae2bf68d7;hp=93368940da0d943a1223f77191f923c7432b5bfd;hpb=b7ff38d281991866c467f65974df53b305711281;p=d2df-sdl.git diff --git a/src/game/g_game.pas b/src/game/g_game.pas index 9336894..302b952 100644 --- a/src/game/g_game.pas +++ b/src/game/g_game.pas @@ -20,7 +20,7 @@ interface 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 @@ -63,7 +63,7 @@ type THearPoint = record Active: Boolean; - Coords: TPoint; + Coords: TDFPoint; end; function g_Game_IsNet(): Boolean; @@ -209,9 +209,9 @@ var 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; @@ -324,6 +324,8 @@ var 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); @@ -338,7 +340,7 @@ uses 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; @@ -2009,12 +2011,12 @@ begin 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); @@ -2794,7 +2796,14 @@ 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(); @@ -2802,7 +2811,18 @@ begin 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); @@ -2857,7 +2877,6 @@ procedure DrawPlayer(p: TPlayer); var px, py, a, b, c, d: Integer; //R: TRect; - begin if (p = nil) or (p.FDummy) then begin @@ -2875,7 +2894,7 @@ begin 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; @@ -5017,7 +5036,7 @@ procedure DebugCommands(P: SArray); var a, b: Integer; cmd: string; - //pt: TPoint; + //pt: TDFPoint; mon: TMonster; begin // Êîìàíäû îòëàäî÷íîãî ðåæèìà: @@ -5179,7 +5198,8 @@ begin 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; @@ -6048,7 +6068,8 @@ begin 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 ôàéëå @@ -6439,17 +6460,17 @@ begin 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.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 - 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; @@ -7011,4 +7032,6 @@ begin 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.