X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_map.pas;h=bf1f9159d096fdfe54d7f42b268b4e07aba425ec;hb=b171ccb122f9084809e739b19baf68bba80a9dab;hp=be752f804f2116d93fb88ea8be5a251586225726;hpb=227dcd4daa2ac6aa576859da6af85370594f9d96;p=d2df-sdl.git diff --git a/src/game/g_map.pas b/src/game/g_map.pas index be752f8..bf1f915 100644 --- a/src/game/g_map.pas +++ b/src/game/g_map.pas @@ -2,8 +2,7 @@ * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * the Free Software Foundation, version 3 of the License ONLY. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -1084,8 +1083,7 @@ begin end; // ýòî ïòèöà? ýòî ñàìîë¸ò? - if (TextureWAD[0] = 'D') and (TextureWAD[1] = 'F') and - (TextureWAD[2] = 'W') and (TextureWAD[3] = 'A') and (TextureWAD[4] = 'D') then + if isWadData(TextureWAD, ResLength) then begin // íåò, ýòî ñóïåðìåí! if not WAD.ReadMemory(TextureWAD, ResLength) then @@ -1450,9 +1448,14 @@ end; procedure addResToExternalResList(res: string); begin - res := extractWadName(res); - if (res <> '') and (gExternalResources.IndexOf(res) = -1) then + //e_LogWritefln('DBG: ***trying external resource %s', [res]); + res := toLowerCase1251(extractWadName(res)); + // ignore "standart.wad" + if (res <> '') and (res <> 'standart.wad') and (gExternalResources.IndexOf(res) = -1) then + begin + //e_LogWritefln('DBG: added external resource %s', [res]); gExternalResources.Add(res); + end; end; procedure generateExternalResourcesList({mapReader: TMapReader_1}map: TDynRecord); @@ -1836,7 +1839,14 @@ begin ntn := CreateTexture(rec.Resource, FileName, True); if (ntn < 0) then g_SimpleError(Format(_lc[I_GAME_ERROR_TEXTURE_SIMPLE], [rec.Resource])); end; - if (ntn < 0) then ntn := CreateNullTexture(rec.Resource); + if (ntn < 0) then + begin + ntn := CreateNullTexture(rec.Resource); + end + else + begin + addResToExternalResList(rec.Resource); + end; rec.tagInt := ntn; // remember texture number end; @@ -2261,7 +2271,7 @@ begin finally sfsGCEnable(); // enable releasing unused volumes //mapReader.Free(); - e_ClearInputBuffer(); // why not? + e_UnpressAllKeys; // why not? if not mapOk then begin gCurrentMap.Free(); @@ -2515,6 +2525,7 @@ var a, d, j: Integer; m: Word; s: String; + b: Byte; procedure UpdatePanelArray(var panels: TPanelArray); var @@ -2565,6 +2576,15 @@ begin s := _lc[I_PLAYER_FLAG_BLUE]; g_Game_Message(Format(_lc[I_MESSAGE_FLAG_RETURN], [AnsiUpperCase(s)]), 144); + if (((gPlayer1 <> nil) and (((gPlayer1.Team = TEAM_RED) and (a = FLAG_RED)) or ((gPlayer1.Team = TEAM_BLUE) and (a = FLAG_BLUE)))) + or ((gPlayer2 <> nil) and (((gPlayer2.Team = TEAM_RED) and (a = FLAG_RED)) or ((gPlayer2.Team = TEAM_BLUE) and (a = FLAG_BLUE))))) then + b := 0 + else + b := 1; + + if not sound_ret_flag[b].IsPlaying() then + sound_ret_flag[b].Play(); + if g_Game_IsNet then MH_SEND_FlagEvent(FLAG_STATE_RETURNED, a, 0); Continue;