X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Feditor%2Fg_map.pas;h=9901af6e635ad3e3419f2ba6fe3009ae6ee0cd02;hb=HEAD;hp=2f1435c51577c7fab7cbaba5f666688b39fa7414;hpb=14ddd9bb218b510cf9095e88cbed3828e0cba753;p=d2df-editor.git diff --git a/src/editor/g_map.pas b/src/editor/g_map.pas index 2f1435c..9901af6 100644 --- a/src/editor/g_map.pas +++ b/src/editor/g_map.pas @@ -113,7 +113,7 @@ const ((62), (16)), // WEAPON_ROCKETLAUNCHER ((54), (16)), // WEAPON_PLASMA ((61), (36)), // WEAPON_BFG - ((54), (16)), // WEAPON_SUPERPULEMET + ((54), (16)), // WEAPON_SUPERCHAINGUN (( 9), (11)), // AMMO_BULLETS ((28), (16)), // AMMO_BULLETS_BOX ((15), ( 7)), // AMMO_SHELLS @@ -126,7 +126,7 @@ const ((16), (16)), // KEY_RED ((16), (16)), // KEY_GREEN ((16), (16)), // KEY_BLUE - (( 1), ( 1)), // WEAPON_KASTET + (( 1), ( 1)), // WEAPON_IRONFIST ((43), (16)), // WEAPON_PISTOL ((14), (18)), // BOTTLE ((16), (15)), // HELMET @@ -233,7 +233,7 @@ function IsSpecialTexture(TextureName: String): Boolean; function SpecialTextureID(TextureName: String): DWORD; procedure ClearMap(); -function SaveMap(Res: String): Pointer; +function SaveMap(Res, ArchiveFormat: String): Pointer; function LoadMap(Res: String): Boolean; function LoadMapOld(_FileName: String): Boolean; procedure DrawMap(); @@ -246,7 +246,7 @@ implementation uses BinEditor, g_textures, Dialogs, SysUtils, CONFIG, f_main, - Forms, Math, f_addresource_texture, WADEDITOR, g_language, g_resources; + Forms, Math, f_addresource_texture, WADEDITOR, g_language, g_options; const OLD_ITEM_MEDKIT_SMALL = 1; @@ -262,7 +262,7 @@ const OLD_ITEM_WEAPON_ROCKETLAUNCHER = 11; OLD_ITEM_WEAPON_PLASMA = 12; OLD_ITEM_WEAPON_BFG = 13; - OLD_ITEM_WEAPON_SUPERPULEMET = 14; + OLD_ITEM_WEAPON_SUPERCHAINGUN = 14; OLD_ITEM_AMMO_BULLETS = 15; OLD_ITEM_AMMO_BULLETS_BOX = 16; OLD_ITEM_AMMO_SHELLS = 17; @@ -294,7 +294,7 @@ const (ITEM_WEAPON_ROCKETLAUNCHER), (ITEM_WEAPON_PLASMA), (ITEM_WEAPON_BFG), - (ITEM_WEAPON_SUPERPULEMET), + (ITEM_WEAPON_SUPERCHAINGUN), (ITEM_AMMO_BULLETS), (ITEM_AMMO_BULLETS_BOX), (ITEM_AMMO_SHELLS), @@ -330,7 +330,7 @@ const ((61), (15)), // WEAPON_ROCKETLAUNCHER ((53), (14)), // WEAPON_PLASMA ((61), (34)), // WEAPON_BFG - ((53), (16)), // WEAPON_SUPERPULEMET + ((53), (16)), // WEAPON_SUPERCHAINGUN (( 9), (10)), // AMMO_BULLETS ((28), (16)), // AMMO_BULLETS_BOX ((15), ( 7)), // AMMO_SHELLS @@ -366,7 +366,7 @@ begin fn := fn + Res; end else - fn := EditorDir + 'wads/' + Res; + fn := WadsDir + DirectorySeparator + Res; g_CreateTextureWAD(SKY_TEXTURE, fn); end; @@ -1051,8 +1051,9 @@ begin Result := TEXTURE_SPECIAL_ACID2; end; -function SaveMap(Res: String): Pointer; +function SaveMap(Res, ArchiveFormat: String): Pointer; var + WAD: TWADEditor; MapWriter: TMapWriter_1; textures: TTexturesRec1Array; panels: TPanelsRec1Array; @@ -1070,6 +1071,7 @@ var Len: LongWord; begin + WAD := nil; textures := nil; panels := nil; items := nil; @@ -1081,6 +1083,28 @@ begin Data := nil; Len := 0; +// Открываем WAD, если надо: + if Res <> '' then + begin + g_ProcessResourceStr(Res, FileName, SectionName, ResName); + + if ArchiveFormat = '' then + begin + // format not specified -> try open automatically and append to it (or create new default) + WAD := gWADEditorFactory.OpenFile(FileName); + if WAD = nil then + WAD := gWADEditorFactory.CreateDefaultEditor(); + end + else + begin + // format specified -> append using exactly this format (overwrite if not compatible) + WAD := gWADEditorFactory.CreateEditor(ArchiveFormat); + if WAD.ReadFile(FileName) = False then + WAD.FreeWAD(); + end; + WAD.CreateImage(); + end; + MapWriter := TMapWriter_1.Create(); // Сохраняем заголовок: @@ -1337,17 +1361,19 @@ begin // Записываем в WAD, если надо: if Res <> '' then - begin - g_ProcessResourceStr(Res, FileName, SectionName, ResName); - g_AddResource(FileName, SectionName, ResName, Data, Len, a); - ASSERT(a = 0); - FreeMem(Data); - Result := nil - end + begin + s := utf2win(ResName); + WAD.RemoveResource('', s); + WAD.AddResource(Data, Len, s, ''); + WAD.SaveTo(FileName); + + FreeMem(Data); + WAD.Free(); + + Result := nil; + end else - begin - Result := Data - end + Result := Data; end; procedure AddTexture(res: String; Error: Boolean); @@ -1366,8 +1392,27 @@ begin end; end; +function map_CreateAnimTexture(TextureName, Resource: String): Boolean; +var + Data: Pointer = nil; + FrameLen: Integer = 0; + Width: Word = 0; + Height: Word = 0; +begin + Result := GetFrame(Resource, Data, FrameLen, Width, Height); + if not Result then // Кадры + e_WriteLog(Format('GetFrame() error, res=%s', [TextureName]), MSG_WARNING) + else + begin + Result := g_CreateTextureMemorySize(Data, FrameLen, TextureName, 0, 0, Width, Height, 1); + if not Result then // Сама текстура + e_WriteLog(Format('g_CreateTextureMemorySize() error, res=%s', [TextureName]), MSG_WARNING); + end; +end; + function LoadMap(Res: String): Boolean; var + WAD: TWADEditor_1; MapReader: TMapReader_1; Header: TMapHeaderRec_1; textures: TTexturesRec1Array; @@ -1382,39 +1427,48 @@ var area: TArea; trigger: TTrigger; a: Integer; - Data: Pointer; - Width, Height, m: Word; + m: Word; FileName, SectionName, ResName, _fn: String; TextureRes, ustr: String; pData: Pointer; - Len, FrameLen: Integer; - Error: Boolean; + Len: Integer; + Success: Boolean; NoTextureID: DWORD; NW, NH: Word; begin Result := False; pData := nil; Len := 0; - Data := nil; - FrameLen := 0; - Width := 0; - Height := 0; NoTextureID := 0; NW := 0; NH := 0; MainForm.pbLoad.Position := 0; - MainForm.lLoad.Caption := _lc[I_LOAD_WAD]; + MainForm.lLoad.Caption := MsgLoadWad; Application.ProcessMessages(); -// Читаем ресурс карты +// Открываем WAD: + WAD := TWADEditor_1.Create(); g_ProcessResourceStr(Res, FileName, SectionName, ResName); - g_ReadResource(FileName, SectionName, ResName, pData, Len); - if pData = nil then Exit; + + if not WAD.ReadFile(FileName) then + begin + WAD.Free(); + Exit; + end; + +// Читаем ресурс карты: + if not WAD.GetResource('', utf2win(ResName), pData, Len) then + begin + WAD.Free(); + Exit; + end; + + WAD.Free(); MapReader := TMapReader_1.Create(); - MainForm.lLoad.Caption := _lc[I_LOAD_MAP]; + MainForm.lLoad.Caption := MsgLoadMap; Application.ProcessMessages(); MapReader.LoadMap(pData); @@ -1426,7 +1480,7 @@ begin begin MainForm.pbLoad.Position := 0; MainForm.pbLoad.Max := Length(textures); - MainForm.lLoad.Caption := _lc[I_LOAD_TEXTURES]; + MainForm.lLoad.Caption := MsgLoadTextures; for a := 0 to High(textures) do begin @@ -1434,50 +1488,43 @@ begin Application.ProcessMessages(); ustr := win2utf(textures[a].Resource); - if IsSpecialTexture(ustr) then + Success := True; + if not IsSpecialTexture(ustr) then begin - AddTexture(ustr, False); - Continue; - end; + g_ProcessResourceStr(ustr, @_fn, nil, nil); - g_ProcessResourceStr(ustr, @_fn, nil, nil); + if _fn = '' + then TextureRes := FileName + ustr + else TextureRes := WadsDir + DirectorySeparator + ustr; - if _fn = '' then - TextureRes := FileName + ustr - else - TextureRes := EditorDir+'wads/'+ustr; - - Error := False; - - if not ByteBool(textures[a].Anim) then + if not Boolean(textures[a].Anim) then begin // Обычная текстура if not g_CreateTextureWAD(ustr, TextureRes) then begin - e_WriteLog(Format('g_CreateTextureWAD() error, res=%s', - [ustr]), MSG_WARNING); - Error := True; + e_WriteLog(Format('g_CreateTextureWAD() error, res=%s', [ustr]), MSG_WARNING); + Success := map_CreateAnimTexture(ustr, TextureRes); + if Success then + begin + textures[a].Anim := Byte(ByteBool(True)); + e_WriteLog(Format(' wrong (outdated?) anim flag hint - texture #%d is actually animated: %s', [a, ustr]), MSG_WARNING); + end; end; - - AddTexture(ustr, Error); end - else // Anim + else begin // Анимированная текстура - if not GetFrame(TextureRes, Data, FrameLen, Width, Height) then - begin // Кадры - e_WriteLog(Format('GetFrame() error, res=%s', - [ustr]), MSG_WARNING); - Error := True; - end; - - if not g_CreateTextureMemorySize(Data, FrameLen, ustr, 0, 0, Width, Height, 1) then - begin // Сама текстура - e_WriteLog(Format('g_CreateTextureMemorySize() error, res=%s', - [ustr]), MSG_WARNING); - Error := True; + if not map_CreateAnimTexture(ustr, TextureRes) then + begin + Success := g_CreateTextureWAD(ustr, TextureRes); + if Success then + begin + textures[a].Anim := Byte(ByteBool(False)); + e_WriteLog(Format(' wrong (outdated?) anim flag hint - texture #%d is actually static: %s', [a, ustr]), MSG_WARNING); + end; end; - - AddTexture(ustr, Error); end; + end; + + AddTexture(ustr, not Success); end; end; @@ -1488,7 +1535,7 @@ begin begin MainForm.pbLoad.Position := 0; MainForm.pbLoad.Max := Length(panels); - MainForm.lLoad.Caption := _lc[I_LOAD_PANELS]; + MainForm.lLoad.Caption := MsgLoadPanels; for a := 0 to High(panels) do begin @@ -1567,7 +1614,7 @@ begin begin MainForm.pbLoad.Position := 0; MainForm.pbLoad.Max := Length(items); - MainForm.lLoad.Caption := _lc[I_LOAD_ITEMS]; + MainForm.lLoad.Caption := MsgLoadItems; for a := 0 to High(items) do begin @@ -1591,7 +1638,7 @@ begin begin MainForm.pbLoad.Position := 0; MainForm.pbLoad.Max := Length(monsters); - MainForm.lLoad.Caption := _lc[I_LOAD_MONSTERS]; + MainForm.lLoad.Caption := MsgLoadMonsters; for a := 0 to High(monsters) do begin @@ -1614,7 +1661,7 @@ begin begin MainForm.pbLoad.Position := 0; MainForm.pbLoad.Max := Length(areas); - MainForm.lLoad.Caption := _lc[I_LOAD_AREAS]; + MainForm.lLoad.Caption := MsgLoadAreas; for a := 0 to High(areas) do begin @@ -1637,7 +1684,7 @@ begin begin MainForm.pbLoad.Position := 0; MainForm.pbLoad.Max := Length(triggers); - MainForm.lLoad.Caption := _lc[I_LOAD_TRIGGERS]; + MainForm.lLoad.Caption := MsgLoadTriggers; for a := 0 to High(triggers) do begin @@ -1713,7 +1760,7 @@ begin // Открытие карты: MainForm.pbLoad.Position := 0; - MainForm.lLoad.Caption := _lc[I_LOAD_MAP];; + MainForm.lLoad.Caption := MsgLoadMap;; Application.ProcessMessages(); map := TConfig.CreateFile(_FileName); @@ -1723,25 +1770,25 @@ begin MainForm.pbLoad.Max := i; MainForm.pbLoad.Position := 0; - MainForm.lLoad.Caption := _lc[I_LOAD_TEXTURES]; + MainForm.lLoad.Caption := MsgLoadTextures; for a := 1 to i do begin MainForm.pbLoad.StepIt(); Application.ProcessMessages(); - s := TexturePrefix + UpperCase(map.ReadStr('Textures', 'TextureName'+IntToStr(a), '')); + s := TexturePrefix + UpperCase(win2utf(map.ReadStr('Textures', 'TextureName'+IntToStr(a), ''))); if s = TexturePrefix then Continue; // Нет такой текстуры - ищем в WAD карты: - if not g_CreateTextureWAD(s, EditorDir+'wads/'+s) then + if not g_CreateTextureWAD(s, WadsDir + DirectorySeparator + s) then begin s := ExtractFileName(_FileName); Delete(s, Length(s)-3, 4); s := UpperCase(s) + '.WAD:TEXTURES\'+ UpperCase(win2utf(map.ReadStr('Textures', 'TextureName'+IntToStr(a), ''))); - if not g_CreateTextureWAD(s, EditorDir+'wads/'+s) then + if not g_CreateTextureWAD(s, WadsDir + DirectorySeparator + s) then Continue; end; @@ -1753,7 +1800,7 @@ begin MainForm.pbLoad.Max := i; MainForm.pbLoad.Position := 0; - MainForm.lLoad.Caption := _lc[I_LOAD_PANELS]; + MainForm.lLoad.Caption := MsgLoadPanels; for a := 1 to i do begin @@ -1764,6 +1811,7 @@ begin if not map.SectionExists(section) then Continue; + panel := Default(TPanel); panel.X := map.ReadInt(section, 'X1', 0); panel.Y := map.ReadInt(section, 'Y1', 0); panel.Height := map.ReadInt(section, 'Height', 16); @@ -1780,11 +1828,12 @@ begin end; panel.Alpha := map.ReadInt(section, 'Alpha', 0); + panel.Blending := false; // Текстура панели: if panel.PanelType in [PANEL_WALL, PANEL_BACK, PANEL_FORE, PANEL_STEP] then begin - s := TexturePrefix + UpperCase(map.ReadStr(section, 'TextureName', '')); + s := TexturePrefix + UpperCase(win2utf(map.ReadStr(section, 'TextureName', ''))); if g_GetTexture(s, panel.TextureID) then begin @@ -1842,7 +1891,7 @@ begin MainForm.pbLoad.Max := i; MainForm.pbLoad.Position := 0; - MainForm.lLoad.Caption := _lc[I_LOAD_ITEMS]; + MainForm.lLoad.Caption := MsgLoadItems; for a := 1 to i do begin @@ -1853,6 +1902,7 @@ begin if not map.SectionExists(section) then Continue; + item := Default(TItem); item.X := map.ReadInt(section, 'X', 0); item.Y := map.ReadInt(section, 'Y', 0); item.ItemType := ITEMSCONVERT[map.ReadInt(section, 'Type', 0)]; @@ -1871,7 +1921,7 @@ begin MainForm.pbLoad.Max := i; MainForm.pbLoad.Position := 0; - MainForm.lLoad.Caption := _lc[I_LOAD_AREAS]; + MainForm.lLoad.Caption := MsgLoadAreas; for a := 1 to i do begin @@ -1882,6 +1932,7 @@ begin if not map.SectionExists(section) then Continue; + area := Default(TArea); area.X := map.ReadInt(section, 'X', 0); area.Y := map.ReadInt(section, 'Y', 0); area.AreaType := map.ReadInt(section, 'Type', 0); @@ -1895,10 +1946,11 @@ begin end; // Чтение параметров карты: + gMapInfo := Default(TMapInfo); with gMapInfo do begin - Name := map.ReadStr('MapOptions', 'MapName', ''); - Description := map.ReadStr('MapOptions', 'MapDescription', ''); + Name := win2utf(map.ReadStr('MapOptions', 'MapName', '')); + Description := win2utf(map.ReadStr('MapOptions', 'MapDescription', '')); Author := ''; MusicName := DefaultMusRes; SkyName := DefaultSkyRes; @@ -1912,6 +1964,8 @@ begin SetLength(Description, 256); end; + LoadSky(gMapInfo.SkyName); + map.Free(); Result := True; @@ -1938,17 +1992,9 @@ begin SetLength(gTriggers, 0); gTriggers := nil; - with gMapInfo do - begin - Name := ''; - Description := ''; - Author := ''; - MusicName := ''; - SkyName := ''; - FileName := ''; - Height := 1600; - Width := 1600; - end; + gMapInfo := Default(TMapInfo); + gMapInfo.Width := 1600; + gMapInfo.Height := 1600; with MainForm.lbTextureList do begin @@ -2175,7 +2221,7 @@ begin ITEM_WEAPON_ROCKETLAUNCHER: g_GetTexture('ITEM_WEAPON_ROCKETLAUNCHER', ID); ITEM_WEAPON_PLASMA: g_GetTexture('ITEM_WEAPON_PLASMA', ID); ITEM_WEAPON_BFG: g_GetTexture('ITEM_WEAPON_BFG', ID); - ITEM_WEAPON_SUPERPULEMET: g_GetTexture('ITEM_WEAPON_SUPERPULEMET', ID); + ITEM_WEAPON_SUPERCHAINGUN: g_GetTexture('ITEM_WEAPON_SUPERCHAINGUN', ID); ITEM_AMMO_BULLETS: g_GetTexture('ITEM_AMMO_BULLETS', ID); ITEM_AMMO_BULLETS_BOX: g_GetTexture('ITEM_AMMO_BULLETS_BOX', ID); ITEM_AMMO_SHELLS: g_GetTexture('ITEM_AMMO_SHELLS', ID); @@ -2569,7 +2615,7 @@ begin ITEM_WEAPON_ROCKETLAUNCHER: g_GetTexture('ITEM_WEAPON_ROCKETLAUNCHER', ID); ITEM_WEAPON_PLASMA: g_GetTexture('ITEM_WEAPON_PLASMA', ID); ITEM_WEAPON_BFG: g_GetTexture('ITEM_WEAPON_BFG', ID); - ITEM_WEAPON_SUPERPULEMET: g_GetTexture('ITEM_WEAPON_SUPERPULEMET', ID); + ITEM_WEAPON_SUPERCHAINGUN: g_GetTexture('ITEM_WEAPON_SUPERCHAINGUN', ID); ITEM_AMMO_BULLETS: g_GetTexture('ITEM_AMMO_BULLETS', ID); ITEM_AMMO_BULLETS_BOX: g_GetTexture('ITEM_AMMO_BULLETS_BOX', ID); ITEM_AMMO_SHELLS: g_GetTexture('ITEM_AMMO_SHELLS', ID); @@ -2720,25 +2766,25 @@ begin // Границы карты: if PreviewMode = 0 then begin - e_DrawFillQuad(-32+MapOffset.X, - -32+MapOffset.Y, - gMapInfo.Width+31+MapOffset.X, - -1+MapOffset.Y, + e_DrawFillQuad(0, + 0, + MainForm.RenderPanel.Width, + -1 + MapOffset.Y, drEdge[0], drEdge[1], drEdge[2], drEdge[3], B_NONE); // Top - e_DrawFillQuad(-32+MapOffset.X, - gMapInfo.Height+MapOffset.Y, - gMapInfo.Width+31+MapOffset.X, - gMapInfo.Height+31+MapOffset.Y, + e_DrawFillQuad(0, + gMapInfo.Height + MapOffset.Y, + MainForm.RenderPanel.Width, + MainForm.RenderPanel.Height, drEdge[0], drEdge[1], drEdge[2], drEdge[3], B_NONE); // Bottom - e_DrawFillQuad(-32+MapOffset.X, + e_DrawFillQuad(0, MapOffset.Y, - -1+MapOffset.X, - gMapInfo.Height+MapOffset.Y-1, + -1 + MapOffset.X, + gMapInfo.Height + MapOffset.Y - 1, drEdge[0], drEdge[1], drEdge[2], drEdge[3], B_NONE); // Left - e_DrawFillQuad(gMapInfo.Width+MapOffset.X, + e_DrawFillQuad(gMapInfo.Width + MapOffset.X, MapOffset.Y, - gMapInfo.Width+31+MapOffset.X, - gMapInfo.Height+MapOffset.Y-1, + MainForm.RenderPanel.Width, + gMapInfo.Height + MapOffset.Y - 1, drEdge[0], drEdge[1], drEdge[2], drEdge[3], B_NONE); // Right end; end; @@ -2823,79 +2869,79 @@ end; procedure LoadData(); begin - g_CreateTextureWAD('PREVIEW', EditorDir+'data/editor.wad:TEXTURES\CHECKERS'); - g_CreateTextureWAD('NOTEXTURE', EditorDir+'data/game.wad:TEXTURES\NOTEXTURE'); - - g_CreateTextureWADSize('AREA_REDFLAG', EditorDir+'data/game.wad:TEXTURES\FLAGRED', 0, 0, 64, 64); - g_CreateTextureWADSize('AREA_BLUEFLAG', EditorDir+'data/game.wad:TEXTURES\FLAGBLUE', 0, 0, 64, 64); - g_CreateTextureWADSize('AREA_DOMFLAG', EditorDir+'data/game.wad:TEXTURES\FLAGDOM', 0, 0, 64, 64); - - g_CreateTextureWADSize('MONSTER_DEMON', EditorDir+'data/game.wad:MTEXTURES\DEMON_SLEEP', 0, 0, 64, 64); - g_CreateTextureWADSize('MONSTER_IMP', EditorDir+'data/game.wad:MTEXTURES\IMP_SLEEP', 0, 0, 64, 64); - g_CreateTextureWADSize('MONSTER_ZOMBY', EditorDir+'data/game.wad:MTEXTURES\ZOMBY_SLEEP', 0, 0, 64, 64); - g_CreateTextureWADSize('MONSTER_SERG', EditorDir+'data/game.wad:MTEXTURES\SERG_SLEEP', 0, 0, 64, 64); - g_CreateTextureWADSize('MONSTER_CYBER', EditorDir+'data/game.wad:MTEXTURES\CYBER_SLEEP', 0, 0, 128, 128); - g_CreateTextureWADSize('MONSTER_CGUN', EditorDir+'data/game.wad:MTEXTURES\CGUN_SLEEP', 0, 0, 64, 64); - g_CreateTextureWADSize('MONSTER_BARON', EditorDir+'data/game.wad:MTEXTURES\BARON_SLEEP', 0, 0, 128, 128); - g_CreateTextureWADSize('MONSTER_KNIGHT', EditorDir+'data/game.wad:MTEXTURES\KNIGHT_SLEEP', 0, 0, 128, 128); - g_CreateTextureWADSize('MONSTER_CACO', EditorDir+'data/game.wad:MTEXTURES\CACO_SLEEP', 0, 0, 128, 128); - g_CreateTextureWADSize('MONSTER_SOUL', EditorDir+'data/game.wad:MTEXTURES\SOUL_SLEEP', 0, 0, 64, 64); - g_CreateTextureWADSize('MONSTER_PAIN', EditorDir+'data/game.wad:MTEXTURES\PAIN_SLEEP', 0, 0, 128, 128); - g_CreateTextureWADSize('MONSTER_SPIDER', EditorDir+'data/game.wad:MTEXTURES\SPIDER_SLEEP', 0, 0, 256, 128); - g_CreateTextureWADSize('MONSTER_BSP', EditorDir+'data/game.wad:MTEXTURES\BSP_SLEEP', 0, 0, 128, 64); - g_CreateTextureWADSize('MONSTER_MANCUB', EditorDir+'data/game.wad:MTEXTURES\MANCUB_SLEEP', 0, 0, 128, 128); - g_CreateTextureWADSize('MONSTER_SKEL', EditorDir+'data/game.wad:MTEXTURES\SKEL_SLEEP', 0, 0, 128, 128); - g_CreateTextureWADSize('MONSTER_VILE', EditorDir+'data/game.wad:MTEXTURES\VILE_SLEEP', 0, 0, 128, 128); - g_CreateTextureWADSize('MONSTER_FISH', EditorDir+'data/game.wad:MTEXTURES\FISH_SLEEP', 0, 0, 32, 32); - g_CreateTextureWADSize('MONSTER_BARREL', EditorDir+'data/game.wad:MTEXTURES\BARREL_SLEEP', 0, 0, 64, 64); - g_CreateTextureWADSize('MONSTER_ROBO', EditorDir+'data/game.wad:MTEXTURES\ROBO_SLEEP', 0, 0, 128, 128); - g_CreateTextureWADSize('MONSTER_MAN', EditorDir+'data/game.wad:MTEXTURES\MAN_SLEEP', 0, 0, 64, 64); - - g_CreateTextureWADSize('ITEM_BLUESPHERE', EditorDir+'data/game.wad:TEXTURES\SBLUE', 0, 0, 32, 32); - g_CreateTextureWADSize('ITEM_WHITESPHERE', EditorDir+'data/game.wad:TEXTURES\SWHITE', 0, 0, 32, 32); - g_CreateTextureWADSize('ITEM_ARMORGREEN', EditorDir+'data/game.wad:TEXTURES\ARMORGREEN', 0, 0, 32, 16); - g_CreateTextureWADSize('ITEM_ARMORBLUE', EditorDir+'data/game.wad:TEXTURES\ARMORBLUE', 0, 0, 32, 16); - g_CreateTextureWADSize('ITEM_INVUL', EditorDir+'data/game.wad:TEXTURES\INVUL', 0, 0, 32, 32); - g_CreateTextureWADSize('ITEM_BOTTLE', EditorDir+'data/game.wad:TEXTURES\BOTTLE', 0, 0, 16, 32); - g_CreateTextureWADSize('ITEM_HELMET', EditorDir+'data/game.wad:TEXTURES\HELMET', 0, 0, 16, 16); - g_CreateTextureWADSize('ITEM_JETPACK', EditorDir+'data/game.wad:TEXTURES\JETPACK', 0, 0, 32, 32); - g_CreateTextureWADSize('ITEM_INVIS', EditorDir+'data/game.wad:TEXTURES\INVIS', 0, 0, 32, 32); - g_CreateTextureWADSize('ITEM_WEAPON_FLAMETHROWER', EditorDir+'data/game.wad:TEXTURES\FLAMETHROWER', 0, 0, 64, 32); - g_CreateTextureWADSize('ITEM_AMMO_FUELCAN', EditorDir+'data/game.wad:TEXTURES\FUELCAN', 0, 0, 16, 32); - - g_CreateTextureWAD('ITEM_MEDKIT_SMALL', EditorDir+'data/game.wad:TEXTURES\MED1'); - g_CreateTextureWAD('ITEM_MEDKIT_LARGE', EditorDir+'data/game.wad:TEXTURES\MED2'); - g_CreateTextureWAD('ITEM_WEAPON_SAW', EditorDir+'data/game.wad:TEXTURES\SAW'); - g_CreateTextureWAD('ITEM_WEAPON_PISTOL', EditorDir+'data/game.wad:TEXTURES\PISTOL'); - g_CreateTextureWAD('ITEM_WEAPON_KASTET', EditorDir+'data/game.wad:TEXTURES\KASTET'); - g_CreateTextureWAD('ITEM_WEAPON_SHOTGUN1', EditorDir+'data/game.wad:TEXTURES\SHOTGUN1'); - g_CreateTextureWAD('ITEM_WEAPON_SHOTGUN2', EditorDir+'data/game.wad:TEXTURES\SHOTGUN2'); - g_CreateTextureWAD('ITEM_WEAPON_CHAINGUN', EditorDir+'data/game.wad:TEXTURES\MGUN'); - g_CreateTextureWAD('ITEM_WEAPON_ROCKETLAUNCHER', EditorDir+'data/game.wad:TEXTURES\RLAUNCHER'); - g_CreateTextureWAD('ITEM_WEAPON_PLASMA', EditorDir+'data/game.wad:TEXTURES\PGUN'); - g_CreateTextureWAD('ITEM_WEAPON_BFG', EditorDir+'data/game.wad:TEXTURES\BFG'); - g_CreateTextureWAD('ITEM_WEAPON_SUPERPULEMET', EditorDir+'data/game.wad:TEXTURES\SPULEMET'); - g_CreateTextureWAD('ITEM_AMMO_BULLETS', EditorDir+'data/game.wad:TEXTURES\CLIP'); - g_CreateTextureWAD('ITEM_AMMO_BULLETS_BOX', EditorDir+'data/game.wad:TEXTURES\AMMO'); - g_CreateTextureWAD('ITEM_AMMO_SHELLS', EditorDir+'data/game.wad:TEXTURES\SHELL1'); - g_CreateTextureWAD('ITEM_AMMO_SHELLS_BOX', EditorDir+'data/game.wad:TEXTURES\SHELL2'); - g_CreateTextureWAD('ITEM_AMMO_ROCKET', EditorDir+'data/game.wad:TEXTURES\ROCKET'); - g_CreateTextureWAD('ITEM_AMMO_ROCKET_BOX', EditorDir+'data/game.wad:TEXTURES\ROCKETS'); - g_CreateTextureWAD('ITEM_AMMO_CELL', EditorDir+'data/game.wad:TEXTURES\CELL'); - g_CreateTextureWAD('ITEM_AMMO_CELL_BIG', EditorDir+'data/game.wad:TEXTURES\CELL2'); - g_CreateTextureWAD('ITEM_AMMO_BACKPACK', EditorDir+'data/game.wad:TEXTURES\BPACK'); - g_CreateTextureWAD('ITEM_KEY_RED', EditorDir+'data/game.wad:TEXTURES\KEYR'); - g_CreateTextureWAD('ITEM_KEY_GREEN', EditorDir+'data/game.wad:TEXTURES\KEYG'); - g_CreateTextureWAD('ITEM_KEY_BLUE', EditorDir+'data/game.wad:TEXTURES\KEYB'); - g_CreateTextureWAD('ITEM_OXYGEN', EditorDir+'data/game.wad:TEXTURES\OXYGEN'); - g_CreateTextureWAD('ITEM_SUIT', EditorDir+'data/game.wad:TEXTURES\SUIT'); - g_CreateTextureWAD('ITEM_MEDKIT_BLACK', EditorDir+'data/game.wad:TEXTURES\BMED'); - - g_CreateTextureWAD('AREA_PLAYERPOINT1', EditorDir+'data/editor.wad:TEXTURES\P1POINT'); - g_CreateTextureWAD('AREA_PLAYERPOINT2', EditorDir+'data/editor.wad:TEXTURES\P2POINT'); - g_CreateTextureWAD('AREA_DMPOINT', EditorDir+'data/editor.wad:TEXTURES\DMPOINT'); - g_CreateTextureWAD('AREA_REDPOINT', EditorDir+'data/editor.wad:TEXTURES\REDPOINT'); - g_CreateTextureWAD('AREA_BLUEPOINT', EditorDir+'data/editor.wad:TEXTURES\BLUEPOINT'); + g_CreateTextureWAD('PREVIEW', EditorWad + ':TEXTURES\CHECKERS'); + g_CreateTextureWAD('NOTEXTURE', GameWad + ':TEXTURES\NOTEXTURE'); + + g_CreateTextureWADSize('AREA_REDFLAG', GameWad + ':TEXTURES\FLAGRED', 0, 0, 64, 64); + g_CreateTextureWADSize('AREA_BLUEFLAG', GameWad + ':TEXTURES\FLAGBLUE', 0, 0, 64, 64); + g_CreateTextureWADSize('AREA_DOMFLAG', GameWad + ':TEXTURES\FLAGDOM', 0, 0, 64, 64); + + g_CreateTextureWADSize('MONSTER_DEMON', GameWad + ':MTEXTURES\DEMON_SLEEP', 0, 0, 64, 64); + g_CreateTextureWADSize('MONSTER_IMP', GameWad + ':MTEXTURES\IMP_SLEEP', 0, 0, 64, 64); + g_CreateTextureWADSize('MONSTER_ZOMBY', GameWad + ':MTEXTURES\ZOMBY_SLEEP', 0, 0, 64, 64); + g_CreateTextureWADSize('MONSTER_SERG', GameWad + ':MTEXTURES\SERG_SLEEP', 0, 0, 64, 64); + g_CreateTextureWADSize('MONSTER_CYBER', GameWad + ':MTEXTURES\CYBER_SLEEP', 0, 0, 128, 128); + g_CreateTextureWADSize('MONSTER_CGUN', GameWad + ':MTEXTURES\CGUN_SLEEP', 0, 0, 64, 64); + g_CreateTextureWADSize('MONSTER_BARON', GameWad + ':MTEXTURES\BARON_SLEEP', 0, 0, 128, 128); + g_CreateTextureWADSize('MONSTER_KNIGHT', GameWad + ':MTEXTURES\KNIGHT_SLEEP', 0, 0, 128, 128); + g_CreateTextureWADSize('MONSTER_CACO', GameWad + ':MTEXTURES\CACO_SLEEP', 0, 0, 128, 128); + g_CreateTextureWADSize('MONSTER_SOUL', GameWad + ':MTEXTURES\SOUL_SLEEP', 0, 0, 64, 64); + g_CreateTextureWADSize('MONSTER_PAIN', GameWad + ':MTEXTURES\PAIN_SLEEP', 0, 0, 128, 128); + g_CreateTextureWADSize('MONSTER_SPIDER', GameWad + ':MTEXTURES\SPIDER_SLEEP', 0, 0, 256, 128); + g_CreateTextureWADSize('MONSTER_BSP', GameWad + ':MTEXTURES\BSP_SLEEP', 0, 0, 128, 64); + g_CreateTextureWADSize('MONSTER_MANCUB', GameWad + ':MTEXTURES\MANCUB_SLEEP', 0, 0, 128, 128); + g_CreateTextureWADSize('MONSTER_SKEL', GameWad + ':MTEXTURES\SKEL_SLEEP', 0, 0, 128, 128); + g_CreateTextureWADSize('MONSTER_VILE', GameWad + ':MTEXTURES\VILE_SLEEP', 0, 0, 128, 128); + g_CreateTextureWADSize('MONSTER_FISH', GameWad + ':MTEXTURES\FISH_SLEEP', 0, 0, 32, 32); + g_CreateTextureWADSize('MONSTER_BARREL', GameWad + ':MTEXTURES\BARREL_SLEEP', 0, 0, 64, 64); + g_CreateTextureWADSize('MONSTER_ROBO', GameWad + ':MTEXTURES\ROBO_SLEEP', 0, 0, 128, 128); + g_CreateTextureWADSize('MONSTER_MAN', GameWad + ':MTEXTURES\MAN_SLEEP', 0, 0, 64, 64); + + g_CreateTextureWADSize('ITEM_BLUESPHERE', GameWad + ':TEXTURES\SBLUE', 0, 0, 32, 32); + g_CreateTextureWADSize('ITEM_WHITESPHERE', GameWad + ':TEXTURES\SWHITE', 0, 0, 32, 32); + g_CreateTextureWADSize('ITEM_ARMORGREEN', GameWad + ':TEXTURES\ARMORGREEN', 0, 0, 32, 16); + g_CreateTextureWADSize('ITEM_ARMORBLUE', GameWad + ':TEXTURES\ARMORBLUE', 0, 0, 32, 16); + g_CreateTextureWADSize('ITEM_INVUL', GameWad + ':TEXTURES\INVUL', 0, 0, 32, 32); + g_CreateTextureWADSize('ITEM_BOTTLE', GameWad + ':TEXTURES\BOTTLE', 0, 0, 16, 32); + g_CreateTextureWADSize('ITEM_HELMET', GameWad + ':TEXTURES\HELMET', 0, 0, 16, 16); + g_CreateTextureWADSize('ITEM_JETPACK', GameWad + ':TEXTURES\JETPACK', 0, 0, 32, 32); + g_CreateTextureWADSize('ITEM_INVIS', GameWad + ':TEXTURES\INVIS', 0, 0, 32, 32); + g_CreateTextureWADSize('ITEM_WEAPON_FLAMETHROWER', GameWad + ':TEXTURES\FLAMETHROWER', 0, 0, 64, 32); + g_CreateTextureWADSize('ITEM_AMMO_FUELCAN', GameWad + ':TEXTURES\FUELCAN', 0, 0, 16, 32); + + g_CreateTextureWAD('ITEM_MEDKIT_SMALL', GameWad + ':TEXTURES\MED1'); + g_CreateTextureWAD('ITEM_MEDKIT_LARGE', GameWad + ':TEXTURES\MED2'); + g_CreateTextureWAD('ITEM_WEAPON_SAW', GameWad + ':TEXTURES\SAW'); + g_CreateTextureWAD('ITEM_WEAPON_PISTOL', GameWad + ':TEXTURES\PISTOL'); + g_CreateTextureWAD('ITEM_WEAPON_IRONFIST', GameWad + ':TEXTURES\IRONFIST'); + g_CreateTextureWAD('ITEM_WEAPON_SHOTGUN1', GameWad + ':TEXTURES\SHOTGUN1'); + g_CreateTextureWAD('ITEM_WEAPON_SHOTGUN2', GameWad + ':TEXTURES\SHOTGUN2'); + g_CreateTextureWAD('ITEM_WEAPON_CHAINGUN', GameWad + ':TEXTURES\MGUN'); + g_CreateTextureWAD('ITEM_WEAPON_ROCKETLAUNCHER', GameWad + ':TEXTURES\RLAUNCHER'); + g_CreateTextureWAD('ITEM_WEAPON_PLASMA', GameWad + ':TEXTURES\PGUN'); + g_CreateTextureWAD('ITEM_WEAPON_BFG', GameWad + ':TEXTURES\BFG'); + g_CreateTextureWAD('ITEM_WEAPON_SUPERCHAINGUN', GameWad + ':TEXTURES\SCHAINGUN'); + g_CreateTextureWAD('ITEM_AMMO_BULLETS', GameWad + ':TEXTURES\CLIP'); + g_CreateTextureWAD('ITEM_AMMO_BULLETS_BOX', GameWad + ':TEXTURES\AMMO'); + g_CreateTextureWAD('ITEM_AMMO_SHELLS', GameWad + ':TEXTURES\SHELL1'); + g_CreateTextureWAD('ITEM_AMMO_SHELLS_BOX', GameWad + ':TEXTURES\SHELL2'); + g_CreateTextureWAD('ITEM_AMMO_ROCKET', GameWad + ':TEXTURES\ROCKET'); + g_CreateTextureWAD('ITEM_AMMO_ROCKET_BOX', GameWad + ':TEXTURES\ROCKETS'); + g_CreateTextureWAD('ITEM_AMMO_CELL', GameWad + ':TEXTURES\CELL'); + g_CreateTextureWAD('ITEM_AMMO_CELL_BIG', GameWad + ':TEXTURES\CELL2'); + g_CreateTextureWAD('ITEM_AMMO_BACKPACK', GameWad + ':TEXTURES\BPACK'); + g_CreateTextureWAD('ITEM_KEY_RED', GameWad + ':TEXTURES\KEYR'); + g_CreateTextureWAD('ITEM_KEY_GREEN', GameWad + ':TEXTURES\KEYG'); + g_CreateTextureWAD('ITEM_KEY_BLUE', GameWad + ':TEXTURES\KEYB'); + g_CreateTextureWAD('ITEM_OXYGEN', GameWad + ':TEXTURES\OXYGEN'); + g_CreateTextureWAD('ITEM_SUIT', GameWad + ':TEXTURES\SUIT'); + g_CreateTextureWAD('ITEM_MEDKIT_BLACK', GameWad + ':TEXTURES\BMED'); + + g_CreateTextureWAD('AREA_PLAYERPOINT1', EditorWad + ':TEXTURES\P1POINT'); + g_CreateTextureWAD('AREA_PLAYERPOINT2', EditorWad + ':TEXTURES\P2POINT'); + g_CreateTextureWAD('AREA_DMPOINT', EditorWad + ':TEXTURES\DMPOINT'); + g_CreateTextureWAD('AREA_REDPOINT', EditorWad + ':TEXTURES\REDPOINT'); + g_CreateTextureWAD('AREA_BLUEPOINT', EditorWad + ':TEXTURES\BLUEPOINT'); end; procedure FreeData(); @@ -2946,14 +2992,14 @@ begin g_DeleteTexture('ITEM_MEDKIT_LARGE'); g_DeleteTexture('ITEM_WEAPON_SAW'); g_DeleteTexture('ITEM_WEAPON_PISTOL'); - g_DeleteTexture('ITEM_WEAPON_KASTET'); + g_DeleteTexture('ITEM_WEAPON_IRONFIST'); g_DeleteTexture('ITEM_WEAPON_SHOTGUN1'); g_DeleteTexture('ITEM_WEAPON_SHOTGUN2'); g_DeleteTexture('ITEM_WEAPON_CHAINGUN'); g_DeleteTexture('ITEM_WEAPON_ROCKETLAUNCHER'); g_DeleteTexture('ITEM_WEAPON_PLASMA'); g_DeleteTexture('ITEM_WEAPON_BFG'); - g_DeleteTexture('ITEM_WEAPON_SUPERPULEMET'); + g_DeleteTexture('ITEM_WEAPON_SUPERCHAINGUN'); g_DeleteTexture('ITEM_AMMO_BULLETS'); g_DeleteTexture('ITEM_AMMO_BULLETS_BOX'); g_DeleteTexture('ITEM_AMMO_SHELLS');