diff --git a/src/game/g_map.pas b/src/game/g_map.pas
index d120dfcd6928f48bf7a3749c0cc5d36219bbfd96..5ce07e652b3a3d912d9dc66752e7f62fbd7b7e6b 100644 (file)
--- a/src/game/g_map.pas
+++ b/src/game/g_map.pas
uses
SysUtils, Classes, mempool,
- g_base, r_graphics, g_basic, MAPDEF, g_textures,
+ g_base, g_basic, MAPDEF, g_textures,
g_phys, utils, g_panel, g_grid, md5, binheap, xprofiler, xparser, xdynrec;
type
Author: String;
MusicName: String;
SkyName: String;
+ SkyFullName: String; // used by render
Height: Word;
Width: Word;
end;
State: Byte;
Count: Integer;
CaptureTime: LongWord;
- Animation: TAnimation;
Direction: TDirection;
NeedSend: Boolean;
end;
gFlags: array [FLAG_RED..FLAG_BLUE] of TFlag;
//gDOMFlags: array of TFlag;
gMapInfo: TMapInfo;
- gBackSize: TDFPoint;
gDoorMap: array of array of DWORD;
gLiftMap: array of array of DWORD;
gWADHash: TMD5Digest;
- BackID: DWORD = DWORD(-1);
gExternalResources: array of TDiskFileInfo = nil;
gMovingWallIds: array of Integer = nil;
implementation
-uses
- e_input, e_log, e_res, g_items, g_gfx, g_console,
- g_weapons, g_game, g_sound, e_sound, CONFIG,
- g_options, g_triggers, g_player, r_textures, r_animations,
- Math, g_monsters, g_saveload, g_language, g_netmsg,
- sfs, xstreams, hashtable, wadreader,
- g_res_downloader;
+ uses
+ {$IFDEF ENABLE_GFX}
+ g_gfx,
+ {$ENDIF}
+ e_input, e_log, e_res, g_items, g_console,
+ g_weapons, g_game, g_sound, e_sound, CONFIG,
+ g_options, g_triggers, g_player,
+ Math, g_monsters, g_saveload, g_language, g_netmsg,
+ sfs, xstreams, hashtable, wadreader,
+ g_res_downloader
+ ;
const
FLAGRECT: TRectWH = (X:15; Y:12; Width:33; Height:52);
procedure CreateArea(Area: TDynRecord);
var
a: Integer;
- id: DWORD = 0;
begin
case Area.AreaType of
AREA_DMPOINT, AREA_PLAYERPOINT1, AREA_PLAYERPOINT2,
with gFlags[a] do
begin
- case a of
- FLAG_RED: g_Frames_Get(id, 'FRAMES_FLAG_RED');
- FLAG_BLUE: g_Frames_Get(id, 'FRAMES_FLAG_BLUE');
- end;
-
- Animation := TAnimation.Create(id, True, 8);
Obj.Rect := FLAGRECT;
-
g_Map_ResetFlag(a);
end;
end;
//mapReader := nil;
// Çàãðóçêà íåáà
+ gMapInfo.SkyFullName := '';
if (gMapInfo.SkyName <> '') then
begin
e_WriteLog(' Loading sky: ' + gMapInfo.SkyName, TMsgType.Notify);
g_Game_SetLoadingText(_lc[I_LOAD_SKY], 0, False);
- s := e_GetResourcePath(WadDirs, gMapInfo.SkyName, g_ExtractWadName(Res));
- if g_Texture_CreateWAD(BackID, s, gTextureFilter) then
- g_Game_SetupScreenSize
- else
- g_FatalError(Format(_lc[I_GAME_ERROR_SKY], [s]))
+ gMapInfo.SkyFullName := e_GetResourcePath(WadDirs, gMapInfo.SkyName, g_ExtractWadName(Res));
end;
// Çàãðóçêà ìóçûêè
g_Weapon_Init();
g_Monsters_Init();
- // Åñëè íå LoadState, òî ñîçäàåì êàðòó ñòîëêíîâåíèé:
- if not gLoadGameMode then g_GFX_Init();
+ {$IFDEF ENABLE_GFX}
+ // Åñëè íå LoadState, òî ñîçäàåì êàðòó ñòîëêíîâåíèé:
+ if not gLoadGameMode then g_GFX_Init();
+ {$ENDIF}
// Ñáðîñ ëîêàëüíûõ ìàññèâîâ:
mapTextureList := nil;
end;
begin
- g_GFX_Free();
+ {$IFDEF ENABLE_GFX}
+ g_GFX_Free;
+ {$ENDIF}
g_Weapon_Free();
g_Items_Free();
g_Triggers_Free();
FreePanelArray(gBlockMon);
gMovingWallIds := nil;
- if BackID <> DWORD(-1) then
- begin
- gBackSize.X := 0;
- gBackSize.Y := 0;
- e_DeleteTexture(BackID);
- BackID := DWORD(-1);
- end;
-
g_Game_StopAllSounds(False);
gMusic.FreeSound();
g_Sound_Delete(gMapInfo.MusicName);
begin
with gFlags[a] do
begin
- if gFlags[a].Animation <> nil then gFlags[a].Animation.Update();
-
Obj.oldX := Obj.X;
Obj.oldY := Obj.Y;
if pan.Enabled and mapGrid.proxyEnabled[pan.proxyId] then exit;
pan.Enabled := True;
- g_Mark(pan.X, pan.Y, pan.Width, pan.Height, MARK_DOOR, true);
+
+ {$IFDEF ENABLE_GFX}
+ g_Mark(pan.X, pan.Y, pan.Width, pan.Height, MARK_DOOR, true);
+ {$ENDIF}
mapGrid.proxyEnabled[pan.proxyId] := true;
//if (pan.proxyId >= 0) then mapGrid.proxyEnabled[pan.proxyId] := true
if (not pan.Enabled) and (not mapGrid.proxyEnabled[pan.proxyId]) then exit;
pan.Enabled := False;
- g_Mark(pan.X, pan.Y, pan.Width, pan.Height, MARK_DOOR, false);
+ {$IFDEF ENABLE_GFX}
+ g_Mark(pan.X, pan.Y, pan.Width, pan.Height, MARK_DOOR, false);
+ {$ENDIF}
mapGrid.proxyEnabled[pan.proxyId] := false;
//if (pan.proxyId >= 0) then begin mapGrid.removeBody(pan.proxyId); pan.proxyId := -1; end;
begin
LiftType := t;
- g_Mark(X, Y, Width, Height, MARK_LIFT, false);
- //TODO: make separate lift tags, and change tag here
-
- case LiftType of
- LIFTTYPE_UP: g_Mark(X, Y, Width, Height, MARK_LIFTUP);
- LIFTTYPE_DOWN: g_Mark(X, Y, Width, Height, MARK_LIFTDOWN);
- LIFTTYPE_LEFT: g_Mark(X, Y, Width, Height, MARK_LIFTLEFT);
- LIFTTYPE_RIGHT: g_Mark(X, Y, Width, Height, MARK_LIFTRIGHT);
- end;
+ {$IFDEF ENABLE_GFX}
+ g_Mark(X, Y, Width, Height, MARK_LIFT, false);
+ //TODO: make separate lift tags, and change tag here
+ case LiftType of
+ LIFTTYPE_UP: g_Mark(X, Y, Width, Height, MARK_LIFTUP);
+ LIFTTYPE_DOWN: g_Mark(X, Y, Width, Height, MARK_LIFTDOWN);
+ LIFTTYPE_LEFT: g_Mark(X, Y, Width, Height, MARK_LIFTLEFT);
+ LIFTTYPE_RIGHT: g_Mark(X, Y, Width, Height, MARK_LIFTRIGHT);
+ end;
+ {$ENDIF}
//if g_Game_IsServer and g_Game_IsNet then MH_SEND_PanelState(pguid);
// mark platform as interesting
loadPanels();
///// /////
- // Îáíîâëÿåì êàðòó ñòîëêíîâåíèé è ñåòêó
- g_GFX_Init();
+ {$IFDEF ENABLE_GFX}
+ // Îáíîâëÿåì êàðòó ñòîëêíîâåíèé è ñåòêó
+ g_GFX_Init();
+ {$ENDIF}
+
//mapCreateGrid();
///// Çàãðóæàåì ìóçûêó: /////