diff --git a/src/game/g_map.pas b/src/game/g_map.pas
index f53fd1500ec723ef7bdcfca6c93aa7c37dbfc24b..c5afc785818d45c559299ec19bfcbe6fd0e0d0e0 100644 (file)
--- a/src/game/g_map.pas
+++ b/src/game/g_map.pas
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;
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;
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;
// Çàãðóçêà ìóçûêè
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();
-
m := g_Obj_Move(@Obj, True, True);
if gTime mod (GAME_TICK*2) <> 0 then Continue;