X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Feditor%2Ff_main.pas;h=3f65bba33336ec96c8a80a4f7a8c0f0e268a3efa;hb=7bc7d5022ae82e37fee8b3003432f9294176a470;hp=d217b30d0864c21869dcc3981be725bf741ed740;hpb=323503bc772cd18a15d9e350cc4077675a82cf81;p=d2df-editor.git diff --git a/src/editor/f_main.pas b/src/editor/f_main.pas index d217b30..3f65bba 100644 --- a/src/editor/f_main.pas +++ b/src/editor/f_main.pas @@ -267,6 +267,7 @@ type procedure RefreshRecentMenu(); procedure OpenMapFile(FileName: String); function RenderMousePos(): TPoint; + procedure RecountSelectedObjects(); end; const @@ -338,7 +339,7 @@ uses MAPREADER, f_selectmap, f_savemap, WADEDITOR, WADSTRUCT, MAPDEF, g_map, f_saveminimap, f_addresource, CONFIG, f_packmap, f_addresource_sound, f_maptest, f_choosetype, - g_language, f_selectlang, ClipBrd; + g_language, f_selectlang, ClipBrd, g_resources; const UNDO_DELETE_PANEL = 1; @@ -739,6 +740,7 @@ var str: String; begin MainForm.vleObjectProperty.Strings.Clear(); + MainForm.RecountSelectedObjects(); // Отображаем свойства если выделен только один объект: if SelectedObjectCount() <> 1 then @@ -1480,7 +1482,7 @@ begin 3: str := _lc[I_PROP_TR_SHOT_AIM_3]; else str := _lc[I_PROP_TR_SHOT_AIM_0]; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SHOT_AIM], str, True)-1] do + with ItemProps[InsertRow(_lc[I_PROP_TR_SHOT_AIM], str, True)] do begin EditStyle := esPickList; ReadOnly := True; @@ -1774,6 +1776,7 @@ begin RemoveSelectFromObjects(); MainForm.miUndo.Enabled := UndoBuffer <> nil; + MainForm.RecountSelectedObjects(); end; procedure Undo_Add(ObjectType: Byte; ID: DWORD; Group: Boolean = False); @@ -2616,23 +2619,15 @@ var cwdt, chgt: Byte; spc: ShortInt; ID: DWORD; - wad: TWADEditor_1; cfgdata: Pointer; cfglen: Integer; config: TConfig; begin - cfgdata := nil; - cfglen := 0; ID := 0; - - wad := TWADEditor_1.Create; - if wad.ReadFile(EditorDir+'data/Game.wad') then - wad.GetResource('FONTS', cfgres, cfgdata, cfglen); - wad.Free(); - - if cfglen <> 0 then + g_ReadResource(EditorDir + 'data/Game.wad', 'FONTS', cfgres, cfgdata, cfglen); + if cfgdata <> nil then begin - if not g_CreateTextureWAD('FONT_STD', EditorDir+'data/Game.wad:FONTS\'+texture) then + if not g_CreateTextureWAD('FONT_STD', EditorDir + 'data/Game.wad:FONTS\' + texture) then e_WriteLog('ERROR ERROR ERROR', MSG_WARNING); config := TConfig.CreateMem(cfgdata, cfglen); @@ -2641,14 +2636,15 @@ begin spc := Min(Max(config.ReadInt('FontMap', 'Kerning', 0), -128), 127); if g_GetTexture('FONT_STD', ID) then - e_TextureFontBuild(ID, FontID, cwdt, chgt, spc-2); + e_TextureFontBuild(ID, FontID, cwdt, chgt, spc - 2); config.Free(); + FreeMem(cfgdata) end else - e_WriteLog('Could not load FONT_STD', MSG_WARNING); - - if cfglen <> 0 then FreeMem(cfgdata); + begin + e_WriteLog('Could not load FONT_STD', MSG_WARNING) + end end; procedure TMainForm.FormCreate(Sender: TObject); @@ -4019,6 +4015,14 @@ begin Result := RenderPanel.ScreenToClient(Mouse.CursorPos); end; +procedure TMainForm.RecountSelectedObjects(); +begin + if SelectedObjectCount() = 0 then + StatusBar.Panels[0].Text := '' + else + StatusBar.Panels[0].Text := Format(_lc[I_CAP_STAT_SELECTED], [SelectedObjectCount()]); +end; + procedure TMainForm.RenderPanelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var @@ -6416,6 +6420,8 @@ begin if gTriggers[a].TriggerType <> TRIGGER_NONE then SelectObject(OBJECT_TRIGGER, a, True); end; + + RecountSelectedObjects(); end; procedure TMainForm.tbGridOnClick(Sender: TObject); @@ -6737,6 +6743,8 @@ begin for a := 0 to High(gTriggers) do if gTriggers[a].TriggerType <> TRIGGER_NONE then SelectObject(OBJECT_TRIGGER, a, True); + + RecountSelectedObjects(); end; procedure TMainForm.Splitter1CanResize(Sender: TObject;