X-Git-Url: http://deadsoftware.ru/gitweb?p=d2df-editor.git;a=blobdiff_plain;f=src%2Feditor%2Ff_main.pas;h=86ec6b4f7681bfe84d94c061e20eaaeeea963337;hp=790a646a334b9ff69700d3237260483e6baf427b;hb=3360cb5c3e96b591451afa67a0f8a281db79e8c5;hpb=6440b720d7e55069ae59d8c4340981b594c4499b diff --git a/src/editor/f_main.pas b/src/editor/f_main.pas index 790a646..86ec6b4 100644 --- a/src/editor/f_main.pas +++ b/src/editor/f_main.pas @@ -358,7 +358,7 @@ uses MAPREADER, f_selectmap, f_savemap, WADEDITOR, MAPDEF, g_map, f_saveminimap, f_addresource, CONFIG, f_packmap, f_addresource_sound, f_choosetype, - g_language, f_selectlang, ClipBrd, g_resources, g_options; + g_language, ClipBrd, g_resources, g_options; const UNDO_DELETE_PANEL = 1; @@ -767,7 +767,7 @@ begin Exit; with MainForm.vleObjectProperty do - with ItemProps[InsertRow(_lc[I_PROP_ID], IntToStr(SelectedObjects[_id].ID), True)] do + with ItemProps[InsertRow(MsgPropId, IntToStr(SelectedObjects[_id].ID), True)] do begin EditStyle := esSimple; ReadOnly := True; @@ -779,31 +779,31 @@ begin with MainForm.vleObjectProperty, gPanels[SelectedObjects[_id].ID] do begin - with ItemProps[InsertRow(_lc[I_PROP_X], IntToStr(X), True)] do + with ItemProps[InsertRow(MsgPropX, IntToStr(X), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_Y], IntToStr(Y), True)] do + with ItemProps[InsertRow(MsgPropY, IntToStr(Y), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_WIDTH], IntToStr(Width), True)] do + with ItemProps[InsertRow(MsgPropWidth, IntToStr(Width), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_HEIGHT], IntToStr(Height), True)] do + with ItemProps[InsertRow(MsgPropHeight, IntToStr(Height), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_PANEL_TYPE], GetPanelName(PanelType), True)] do + with ItemProps[InsertRow(MsgPropPanelType, GetPanelName(PanelType), True)] do begin EditStyle := esEllipsis; ReadOnly := True; @@ -811,7 +811,7 @@ begin if IsTexturedPanel(PanelType) then begin // Может быть текстура - with ItemProps[InsertRow(_lc[I_PROP_PANEL_TEX], TextureName, True)] do + with ItemProps[InsertRow(MsgPropPanelTex, TextureName, True)] do begin EditStyle := esEllipsis; ReadOnly := True; @@ -819,13 +819,13 @@ begin if TextureName <> '' then begin // Есть текстура - with ItemProps[InsertRow(_lc[I_PROP_PANEL_ALPHA], IntToStr(Alpha), True)] do + with ItemProps[InsertRow(MsgPropPanelAlpha, IntToStr(Alpha), True)] do begin EditStyle := esSimple; MaxLength := 3; end; - with ItemProps[InsertRow(_lc[I_PROP_PANEL_BLEND], BoolNames[Blending], True)] do + with ItemProps[InsertRow(MsgPropPanelBlend, BoolNames[Blending], True)] do begin EditStyle := esPickList; ReadOnly := True; @@ -840,25 +840,25 @@ begin with MainForm.vleObjectProperty, gItems[SelectedObjects[_id].ID] do begin - with ItemProps[InsertRow(_lc[I_PROP_X], IntToStr(X), True)] do + with ItemProps[InsertRow(MsgPropX, IntToStr(X), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_Y], IntToStr(Y), True)] do + with ItemProps[InsertRow(MsgPropY, IntToStr(Y), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_DM_ONLY], BoolNames[OnlyDM], True)] do + with ItemProps[InsertRow(MsgPropDmOnly, BoolNames[OnlyDM], True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_ITEM_FALLS], BoolNames[Fall], True)] do + with ItemProps[InsertRow(MsgPropItemFalls, BoolNames[Fall], True)] do begin EditStyle := esPickList; ReadOnly := True; @@ -871,19 +871,19 @@ begin with MainForm.vleObjectProperty, gMonsters[SelectedObjects[_id].ID] do begin - with ItemProps[InsertRow(_lc[I_PROP_X], IntToStr(X), True)] do + with ItemProps[InsertRow(MsgPropX, IntToStr(X), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_Y], IntToStr(Y), True)] do + with ItemProps[InsertRow(MsgPropY, IntToStr(Y), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_DIRECTION], DirNames[Direction], True)] do + with ItemProps[InsertRow(MsgPropDirection, DirNames[Direction], True)] do begin EditStyle := esPickList; ReadOnly := True; @@ -896,19 +896,19 @@ begin with MainForm.vleObjectProperty, gAreas[SelectedObjects[_id].ID] do begin - with ItemProps[InsertRow(_lc[I_PROP_X], IntToStr(X), True)] do + with ItemProps[InsertRow(MsgPropX, IntToStr(X), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_Y], IntToStr(Y), True)] do + with ItemProps[InsertRow(MsgPropY, IntToStr(Y), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_DIRECTION], DirNames[Direction], True)] do + with ItemProps[InsertRow(MsgPropDirection, DirNames[Direction], True)] do begin EditStyle := esPickList; ReadOnly := True; @@ -921,55 +921,55 @@ begin with MainForm.vleObjectProperty, gTriggers[SelectedObjects[_id].ID] do begin - with ItemProps[InsertRow(_lc[I_PROP_TR_TYPE], GetTriggerName(TriggerType), True)] do + with ItemProps[InsertRow(MsgPropTrType, GetTriggerName(TriggerType), True)] do begin EditStyle := esSimple; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_X], IntToStr(X), True)] do + with ItemProps[InsertRow(MsgPropX, IntToStr(X), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_Y], IntToStr(Y), True)] do + with ItemProps[InsertRow(MsgPropY, IntToStr(Y), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_WIDTH], IntToStr(Width), True)] do + with ItemProps[InsertRow(MsgPropWidth, IntToStr(Width), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_HEIGHT], IntToStr(Height), True)] do + with ItemProps[InsertRow(MsgPropHeight, IntToStr(Height), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_ENABLED], BoolNames[Enabled], True)] do + with ItemProps[InsertRow(MsgPropTrEnabled, BoolNames[Enabled], True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_TEXTURE_PANEL], IntToStr(TexturePanel), True)] do + with ItemProps[InsertRow(MsgPropTrTexturePanel, IntToStr(TexturePanel), True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_ACTIVATION], ActivateToStr(ActivateType), True)] do + with ItemProps[InsertRow(MsgPropTrActivation, ActivateToStr(ActivateType), True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_KEYS], KeyToStr(Key), True)] do + with ItemProps[InsertRow(MsgPropTrKeys, KeyToStr(Key), True)] do begin EditStyle := esEllipsis; ReadOnly := True; @@ -979,7 +979,7 @@ begin TRIGGER_EXIT: begin str := win2utf(Data.MapName); - with ItemProps[InsertRow(_lc[I_PROP_TR_NEXT_MAP], str, True)] do + with ItemProps[InsertRow(MsgPropTrNextMap, str, True)] do begin EditStyle := esEllipsis; ReadOnly := True; @@ -988,25 +988,25 @@ begin TRIGGER_TELEPORT: begin - with ItemProps[InsertRow(_lc[I_PROP_TR_TELEPORT_TO], Format('(%d:%d)', [Data.TargetPoint.X, Data.TargetPoint.Y]), True)] do + with ItemProps[InsertRow(MsgPropTrTeleportTo, Format('(%d:%d)', [Data.TargetPoint.X, Data.TargetPoint.Y]), True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_D2D], BoolNames[Data.d2d_teleport], True)] do + with ItemProps[InsertRow(MsgPropTrD2d, BoolNames[Data.d2d_teleport], True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_TELEPORT_SILENT], BoolNames[Data.silent_teleport], True)] do + with ItemProps[InsertRow(MsgPropTrTeleportSilent, BoolNames[Data.silent_teleport], True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_TELEPORT_DIR], DirNamesAdv[Data.TlpDir], True)] do + with ItemProps[InsertRow(MsgPropTrTeleportDir, DirNamesAdv[Data.TlpDir], True)] do begin EditStyle := esPickList; ReadOnly := True; @@ -1016,19 +1016,19 @@ begin TRIGGER_OPENDOOR, TRIGGER_CLOSEDOOR, TRIGGER_DOOR, TRIGGER_DOOR5: begin - with ItemProps[InsertRow(_lc[I_PROP_TR_DOOR_PANEL], IntToStr(Data.PanelID), True)] do + with ItemProps[InsertRow(MsgPropTrDoorPanel, IntToStr(Data.PanelID), True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SILENT], BoolNames[Data.NoSound], True)] do + with ItemProps[InsertRow(MsgPropTrSilent, BoolNames[Data.NoSound], True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_D2D], BoolNames[Data.d2d_doors], True)] do + with ItemProps[InsertRow(MsgPropTrD2d, BoolNames[Data.d2d_doors], True)] do begin EditStyle := esPickList; ReadOnly := True; @@ -1037,19 +1037,19 @@ begin TRIGGER_CLOSETRAP, TRIGGER_TRAP: begin - with ItemProps[InsertRow(_lc[I_PROP_TR_TRAP_PANEL], IntToStr(Data.PanelID), True)] do + with ItemProps[InsertRow(MsgPropTrTrapPanel, IntToStr(Data.PanelID), True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SILENT], BoolNames[Data.NoSound], True)] do + with ItemProps[InsertRow(MsgPropTrSilent, BoolNames[Data.NoSound], True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_D2D], BoolNames[Data.d2d_doors], True)] do + with ItemProps[InsertRow(MsgPropTrD2d, BoolNames[Data.d2d_doors], True)] do begin EditStyle := esPickList; ReadOnly := True; @@ -1059,33 +1059,33 @@ begin TRIGGER_PRESS, TRIGGER_ON, TRIGGER_OFF, TRIGGER_ONOFF: begin - with ItemProps[InsertRow(_lc[I_PROP_TR_EX_AREA], + with ItemProps[InsertRow(MsgPropTrExArea, Format('(%d:%d %d:%d)', [Data.tX, Data.tY, Data.tWidth, Data.tHeight]), True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_EX_DELAY], IntToStr(Data.Wait), True)] do + with ItemProps[InsertRow(MsgPropTrExDelay, IntToStr(Data.Wait), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_EX_COUNT], IntToStr(Data.Count), True)] do + with ItemProps[InsertRow(MsgPropTrExCount, IntToStr(Data.Count), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_EX_MONSTER], IntToStr(Data.MonsterID-1), True)] do + with ItemProps[InsertRow(MsgPropTrExMonster, IntToStr(Data.MonsterID-1), True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; if TriggerType = TRIGGER_PRESS then - with ItemProps[InsertRow(_lc[I_PROP_TR_EX_RANDOM], BoolNames[Data.ExtRandom], True)] do + with ItemProps[InsertRow(MsgPropTrExRandom, BoolNames[Data.ExtRandom], True)] do begin EditStyle := esPickList; ReadOnly := True; @@ -1097,19 +1097,19 @@ begin TRIGGER_LIFTUP, TRIGGER_LIFTDOWN, TRIGGER_LIFT: begin - with ItemProps[InsertRow(_lc[I_PROP_TR_LIFT_PANEL], IntToStr(Data.PanelID), True)] do + with ItemProps[InsertRow(MsgPropTrLiftPanel, IntToStr(Data.PanelID), True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SILENT], BoolNames[Data.NoSound], True)] do + with ItemProps[InsertRow(MsgPropTrSilent, BoolNames[Data.NoSound], True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_D2D], BoolNames[Data.d2d_doors], True)] do + with ItemProps[InsertRow(MsgPropTrD2d, BoolNames[Data.d2d_doors], True)] do begin EditStyle := esPickList; ReadOnly := True; @@ -1118,13 +1118,13 @@ begin TRIGGER_TEXTURE: begin - with ItemProps[InsertRow(_lc[I_PROP_TR_TEXTURE_ONCE], BoolNames[Data.ActivateOnce], True)] do + with ItemProps[InsertRow(MsgPropTrTextureOnce, BoolNames[Data.ActivateOnce], True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_TEXTURE_ANIM_ONCE], BoolNames[Data.AnimOnce], True)] do + with ItemProps[InsertRow(MsgPropTrTextureAnimOnce, BoolNames[Data.AnimOnce], True)] do begin EditStyle := esPickList; ReadOnly := True; @@ -1134,37 +1134,37 @@ begin TRIGGER_SOUND: begin str := win2utf(Data.SoundName); - with ItemProps[InsertRow(_lc[I_PROP_TR_SOUND_NAME], str, True)] do + with ItemProps[InsertRow(MsgPropTrSoundName, str, True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SOUND_VOLUME], IntToStr(Data.Volume), True)] do + with ItemProps[InsertRow(MsgPropTrSoundVolume, IntToStr(Data.Volume), True)] do begin EditStyle := esSimple; MaxLength := 3; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SOUND_PAN], IntToStr(Data.Pan), True)] do + with ItemProps[InsertRow(MsgPropTrSoundPan, IntToStr(Data.Pan), True)] do begin EditStyle := esSimple; MaxLength := 3; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SOUND_COUNT], IntToStr(Data.PlayCount), True)] do + with ItemProps[InsertRow(MsgPropTrSoundCount, IntToStr(Data.PlayCount), True)] do begin EditStyle := esSimple; MaxLength := 3; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SOUND_LOCAL], BoolNames[Data.Local], True)] do + with ItemProps[InsertRow(MsgPropTrSoundLocal, BoolNames[Data.Local], True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SOUND_SWITCH], BoolNames[Data.SoundSwitch], True)] do + with ItemProps[InsertRow(MsgPropTrSoundSwitch, BoolNames[Data.SoundSwitch], True)] do begin EditStyle := esPickList; ReadOnly := True; @@ -1173,70 +1173,70 @@ begin TRIGGER_SPAWNMONSTER: begin - with ItemProps[InsertRow(_lc[I_PROP_TR_MONSTER_TYPE], MonsterToStr(Data.MonType), True)] do + with ItemProps[InsertRow(MsgPropTrMonsterType, MonsterToStr(Data.MonType), True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SPAWN_TO], + with ItemProps[InsertRow(MsgPropTrSpawnTo, Format('(%d:%d)', [Data.MonPos.X, Data.MonPos.Y]), True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_DIRECTION], DirNames[TDirection(Data.MonDir)], True)] do + with ItemProps[InsertRow(MsgPropDirection, DirNames[TDirection(Data.MonDir)], True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_HEALTH], IntToStr(Data.MonHealth), True)] do + with ItemProps[InsertRow(MsgPropTrHealth, IntToStr(Data.MonHealth), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_MONSTER_ACTIVE], BoolNames[Data.MonActive], True)] do + with ItemProps[InsertRow(MsgPropTrMonsterActive, BoolNames[Data.MonActive], True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_COUNT], IntToStr(Data.MonCount), True)] do + with ItemProps[InsertRow(MsgPropTrCount, IntToStr(Data.MonCount), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_FX_TYPE], EffectToStr(Data.MonEffect), True)] do + with ItemProps[InsertRow(MsgPropTrFxType, EffectToStr(Data.MonEffect), True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SPAWN_MAX], IntToStr(Data.MonMax), True)] do + with ItemProps[InsertRow(MsgPropTrSpawnMax, IntToStr(Data.MonMax), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SPAWN_DELAY], IntToStr(Data.MonDelay), True)] do + with ItemProps[InsertRow(MsgPropTrSpawnDelay, IntToStr(Data.MonDelay), True)] do begin EditStyle := esSimple; MaxLength := 5; end; case Data.MonBehav of - 1: str := _lc[I_PROP_TR_MONSTER_BEHAVIOUR_1]; - 2: str := _lc[I_PROP_TR_MONSTER_BEHAVIOUR_2]; - 3: str := _lc[I_PROP_TR_MONSTER_BEHAVIOUR_3]; - 4: str := _lc[I_PROP_TR_MONSTER_BEHAVIOUR_4]; - 5: str := _lc[I_PROP_TR_MONSTER_BEHAVIOUR_5]; - else str := _lc[I_PROP_TR_MONSTER_BEHAVIOUR_0]; + 1: str := MsgPropTrMonsterBehaviour1; + 2: str := MsgPropTrMonsterBehaviour2; + 3: str := MsgPropTrMonsterBehaviour3; + 4: str := MsgPropTrMonsterBehaviour4; + 5: str := MsgPropTrMonsterBehaviour5; + else str := MsgPropTrMonsterBehaviour0; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_MONSTER_BEHAVIOUR], str, True)] do + with ItemProps[InsertRow(MsgPropTrMonsterBehaviour, str, True)] do begin EditStyle := esPickList; ReadOnly := True; @@ -1245,50 +1245,50 @@ begin TRIGGER_SPAWNITEM: begin - with ItemProps[InsertRow(_lc[I_PROP_TR_ITEM_TYPE], ItemToStr(Data.ItemType), True)] do + with ItemProps[InsertRow(MsgPropTrItemType, ItemToStr(Data.ItemType), True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SPAWN_TO], + with ItemProps[InsertRow(MsgPropTrSpawnTo, Format('(%d:%d)', [Data.ItemPos.X, Data.ItemPos.Y]), True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_DM_ONLY], BoolNames[Data.ItemOnlyDM], True)] do + with ItemProps[InsertRow(MsgPropDmOnly, BoolNames[Data.ItemOnlyDM], True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_ITEM_FALLS], BoolNames[Data.ItemFalls], True)] do + with ItemProps[InsertRow(MsgPropItemFalls, BoolNames[Data.ItemFalls], True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_COUNT], IntToStr(Data.ItemCount), True)] do + with ItemProps[InsertRow(MsgPropTrCount, IntToStr(Data.ItemCount), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_FX_TYPE], EffectToStr(Data.ItemEffect), True)] do + with ItemProps[InsertRow(MsgPropTrFxType, EffectToStr(Data.ItemEffect), True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SPAWN_MAX], IntToStr(Data.ItemMax), True)] do + with ItemProps[InsertRow(MsgPropTrSpawnMax, IntToStr(Data.ItemMax), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SPAWN_DELAY], IntToStr(Data.ItemDelay), True)] do + with ItemProps[InsertRow(MsgPropTrSpawnDelay, IntToStr(Data.ItemDelay), True)] do begin EditStyle := esSimple; MaxLength := 5; @@ -1298,18 +1298,18 @@ begin TRIGGER_MUSIC: begin str := win2utf(Data.MusicName); - with ItemProps[InsertRow(_lc[I_PROP_TR_MUSIC_NAME], str, True)] do + with ItemProps[InsertRow(MsgPropTrMusicName, str, True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; if Data.MusicAction = 1 then - str := _lc[I_PROP_TR_MUSIC_ON] + str := MsgPropTrMusicOn else - str := _lc[I_PROP_TR_MUSIC_OFF]; + str := MsgPropTrMusicOff; - with ItemProps[InsertRow(_lc[I_PROP_TR_MUSIC_ACT], str, True)] do + with ItemProps[InsertRow(MsgPropTrMusicAct, str, True)] do begin EditStyle := esPickList; ReadOnly := True; @@ -1318,17 +1318,17 @@ begin TRIGGER_PUSH: begin - with ItemProps[InsertRow(_lc[I_PROP_TR_PUSH_ANGLE], IntToStr(Data.PushAngle), True)] do + with ItemProps[InsertRow(MsgPropTrPushAngle, IntToStr(Data.PushAngle), True)] do begin EditStyle := esSimple; MaxLength := 4; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_PUSH_FORCE], IntToStr(Data.PushForce), True)] do + with ItemProps[InsertRow(MsgPropTrPushForce, IntToStr(Data.PushForce), True)] do begin EditStyle := esSimple; MaxLength := 4; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_PUSH_RESET], BoolNames[Data.ResetVel], True)] do + with ItemProps[InsertRow(MsgPropTrPushReset, BoolNames[Data.ResetVel], True)] do begin EditStyle := esPickList; ReadOnly := True; @@ -1338,38 +1338,38 @@ begin TRIGGER_SCORE: begin case Data.ScoreAction of - 1: str := _lc[I_PROP_TR_SCORE_ACT_1]; - 2: str := _lc[I_PROP_TR_SCORE_ACT_2]; - 3: str := _lc[I_PROP_TR_SCORE_ACT_3]; - else str := _lc[I_PROP_TR_SCORE_ACT_0]; + 1: str := MsgPropTrScoreAct1; + 2: str := MsgPropTrScoreAct2; + 3: str := MsgPropTrScoreAct3; + else str := MsgPropTrScoreAct0; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SCORE_ACT], str, True)] do + with ItemProps[InsertRow(MsgPropTrScoreAct, str, True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_COUNT], IntToStr(Data.ScoreCount), True)] do + with ItemProps[InsertRow(MsgPropTrCount, IntToStr(Data.ScoreCount), True)] do begin EditStyle := esSimple; MaxLength := 3; end; case Data.ScoreTeam of - 1: str := _lc[I_PROP_TR_SCORE_TEAM_1]; - 2: str := _lc[I_PROP_TR_SCORE_TEAM_2]; - 3: str := _lc[I_PROP_TR_SCORE_TEAM_3]; - else str := _lc[I_PROP_TR_SCORE_TEAM_0]; + 1: str := MsgPropTrScoreTeam1; + 2: str := MsgPropTrScoreTeam2; + 3: str := MsgPropTrScoreTeam3; + else str := MsgPropTrScoreTeam0; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SCORE_TEAM], str, True)] do + with ItemProps[InsertRow(MsgPropTrScoreTeam, str, True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SCORE_CON], BoolNames[Data.ScoreCon], True)] do + with ItemProps[InsertRow(MsgPropTrScoreCon, BoolNames[Data.ScoreCon], True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SCORE_MSG], BoolNames[Data.ScoreMsg], True)] do + with ItemProps[InsertRow(MsgPropTrScoreMsg, BoolNames[Data.ScoreMsg], True)] do begin EditStyle := esPickList; ReadOnly := True; @@ -1379,34 +1379,34 @@ begin TRIGGER_MESSAGE: begin case Data.MessageKind of - 1: str := _lc[I_PROP_TR_MESSAGE_KIND_1]; - else str := _lc[I_PROP_TR_MESSAGE_KIND_0]; + 1: str := MsgPropTrMessageKind1; + else str := MsgPropTrMessageKind0; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_MESSAGE_KIND], str, True)] do + with ItemProps[InsertRow(MsgPropTrMessageKind, str, True)] do begin EditStyle := esPickList; ReadOnly := True; end; case Data.MessageSendTo of - 1: str := _lc[I_PROP_TR_MESSAGE_TO_1]; - 2: str := _lc[I_PROP_TR_MESSAGE_TO_2]; - 3: str := _lc[I_PROP_TR_MESSAGE_TO_3]; - 4: str := _lc[I_PROP_TR_MESSAGE_TO_4]; - 5: str := _lc[I_PROP_TR_MESSAGE_TO_5]; - else str := _lc[I_PROP_TR_MESSAGE_TO_0]; + 1: str := MsgPropTrMessageTo1; + 2: str := MsgPropTrMessageTo2; + 3: str := MsgPropTrMessageTo3; + 4: str := MsgPropTrMessageTo4; + 5: str := MsgPropTrMessageTo5; + else str := MsgPropTrMessageTo0; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_MESSAGE_TO], str, True)] do + with ItemProps[InsertRow(MsgPropTrMessageTo, str, True)] do begin EditStyle := esPickList; ReadOnly := True; end; str := win2utf(Data.MessageText); - with ItemProps[InsertRow(_lc[I_PROP_TR_MESSAGE_TEXT], str, True)] do + with ItemProps[InsertRow(MsgPropTrMessageText, str, True)] do begin EditStyle := esSimple; MaxLength := 100; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_MESSAGE_TIME], IntToStr(Data.MessageTime), True)] do + with ItemProps[InsertRow(MsgPropTrMessageTime, IntToStr(Data.MessageTime), True)] do begin EditStyle := esSimple; MaxLength := 5; @@ -1415,26 +1415,26 @@ begin TRIGGER_DAMAGE: begin - with ItemProps[InsertRow(_lc[I_PROP_TR_DAMAGE_VALUE], IntToStr(Data.DamageValue), True)] do + with ItemProps[InsertRow(MsgPropTrDamageValue, IntToStr(Data.DamageValue), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_INTERVAL], IntToStr(Data.DamageInterval), True)] do + with ItemProps[InsertRow(MsgPropTrInterval, IntToStr(Data.DamageInterval), True)] do begin EditStyle := esSimple; MaxLength := 5; end; case Data.DamageKind of - 3: str := _lc[I_PROP_TR_DAMAGE_KIND_3]; - 4: str := _lc[I_PROP_TR_DAMAGE_KIND_4]; - 5: str := _lc[I_PROP_TR_DAMAGE_KIND_5]; - 6: str := _lc[I_PROP_TR_DAMAGE_KIND_6]; - 7: str := _lc[I_PROP_TR_DAMAGE_KIND_7]; - 8: str := _lc[I_PROP_TR_DAMAGE_KIND_8]; - else str := _lc[I_PROP_TR_DAMAGE_KIND_0]; + 3: str := MsgPropTrDamageKind3; + 4: str := MsgPropTrDamageKind4; + 5: str := MsgPropTrDamageKind5; + 6: str := MsgPropTrDamageKind6; + 7: str := MsgPropTrDamageKind7; + 8: str := MsgPropTrDamageKind8; + else str := MsgPropTrDamageKind0; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_DAMAGE_KIND], str, True)] do + with ItemProps[InsertRow(MsgPropTrDamageKind, str, True)] do begin EditStyle := esPickList; ReadOnly := True; @@ -1443,22 +1443,22 @@ begin TRIGGER_HEALTH: begin - with ItemProps[InsertRow(_lc[I_PROP_TR_HEALTH], IntToStr(Data.HealValue), True)] do + with ItemProps[InsertRow(MsgPropTrHealth, IntToStr(Data.HealValue), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_INTERVAL], IntToStr(Data.HealInterval), True)] do + with ItemProps[InsertRow(MsgPropTrInterval, IntToStr(Data.HealInterval), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_HEALTH_MAX], BoolNames[Data.HealMax], True)] do + with ItemProps[InsertRow(MsgPropTrHealthMax, BoolNames[Data.HealMax], True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SILENT], BoolNames[Data.HealSilent], True)] do + with ItemProps[InsertRow(MsgPropTrSilent, BoolNames[Data.HealSilent], True)] do begin EditStyle := esPickList; ReadOnly := True; @@ -1467,89 +1467,89 @@ begin TRIGGER_SHOT: begin - with ItemProps[InsertRow(_lc[I_PROP_TR_SHOT_TYPE], ShotToStr(Data.ShotType), True)] do + with ItemProps[InsertRow(MsgPropTrShotType, ShotToStr(Data.ShotType), True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SHOT_SOUND], BoolNames[Data.ShotSound], True)] do + with ItemProps[InsertRow(MsgPropTrShotSound, BoolNames[Data.ShotSound], True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SHOT_PANEL], IntToStr(Data.ShotPanelID), True)] do + with ItemProps[InsertRow(MsgPropTrShotPanel, IntToStr(Data.ShotPanelID), True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; case Data.ShotTarget of - 1: str := _lc[I_PROP_TR_SHOT_TO_1]; - 2: str := _lc[I_PROP_TR_SHOT_TO_2]; - 3: str := _lc[I_PROP_TR_SHOT_TO_3]; - 4: str := _lc[I_PROP_TR_SHOT_TO_4]; - 5: str := _lc[I_PROP_TR_SHOT_TO_5]; - 6: str := _lc[I_PROP_TR_SHOT_TO_6]; - else str := _lc[I_PROP_TR_SHOT_TO_0]; + 1: str := MsgPropTrShotTo1; + 2: str := MsgPropTrShotTo2; + 3: str := MsgPropTrShotTo3; + 4: str := MsgPropTrShotTo4; + 5: str := MsgPropTrShotTo5; + 6: str := MsgPropTrShotTo6; + else str := MsgPropTrShotTo0; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SHOT_TO], str, True)] do + with ItemProps[InsertRow(MsgPropTrShotTo, str, True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SHOT_SIGHT], IntToStr(Data.ShotIntSight), True)] do + with ItemProps[InsertRow(MsgPropTrShotSight, IntToStr(Data.ShotIntSight), True)] do begin EditStyle := esSimple; MaxLength := 3; end; case Data.ShotAim of - 1: str := _lc[I_PROP_TR_SHOT_AIM_1]; - 2: str := _lc[I_PROP_TR_SHOT_AIM_2]; - 3: str := _lc[I_PROP_TR_SHOT_AIM_3]; - else str := _lc[I_PROP_TR_SHOT_AIM_0]; + 1: str := MsgPropTrShotAim1; + 2: str := MsgPropTrShotAim2; + 3: str := MsgPropTrShotAim3; + else str := MsgPropTrShotAim0; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SHOT_AIM], str, True)] do + with ItemProps[InsertRow(MsgPropTrShotAim, str, True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SPAWN_TO], + with ItemProps[InsertRow(MsgPropTrSpawnTo, Format('(%d:%d)', [Data.ShotPos.X, Data.ShotPos.Y]), True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SHOT_ANGLE], IntToStr(Data.ShotAngle), True)] do + with ItemProps[InsertRow(MsgPropTrShotAngle, IntToStr(Data.ShotAngle), True)] do begin EditStyle := esSimple; MaxLength := 4; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_EX_DELAY], IntToStr(Data.ShotWait), True)] do + with ItemProps[InsertRow(MsgPropTrExDelay, IntToStr(Data.ShotWait), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SHOT_ACC], IntToStr(Data.ShotAccuracy), True)] do + with ItemProps[InsertRow(MsgPropTrShotAcc, IntToStr(Data.ShotAccuracy), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SHOT_AMMO], IntToStr(Data.ShotAmmo), True)] do + with ItemProps[InsertRow(MsgPropTrShotAmmo, IntToStr(Data.ShotAmmo), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_SHOT_RELOAD], IntToStr(Data.ShotIntReload), True)] do + with ItemProps[InsertRow(MsgPropTrShotReload, IntToStr(Data.ShotIntReload), True)] do begin EditStyle := esSimple; MaxLength := 4; @@ -1558,17 +1558,17 @@ begin TRIGGER_EFFECT: begin - with ItemProps[InsertRow(_lc[I_PROP_TR_COUNT], IntToStr(Data.FXCount), True)] do + with ItemProps[InsertRow(MsgPropTrCount, IntToStr(Data.FXCount), True)] do begin EditStyle := esSimple; MaxLength := 3; end; if Data.FXType = 0 then - str := _lc[I_PROP_TR_EFFECT_PARTICLE] + str := MsgPropTrEffectParticle else - str := _lc[I_PROP_TR_EFFECT_ANIMATION]; - with ItemProps[InsertRow(_lc[I_PROP_TR_EFFECT_TYPE], str, True)] do + str := MsgPropTrEffectAnimation; + with ItemProps[InsertRow(MsgPropTrEffectType, str, True)] do begin EditStyle := esEllipsis; ReadOnly := True; @@ -1578,17 +1578,17 @@ begin if Data.FXType = 0 then case Data.FXSubType of TRIGGER_EFFECT_SLIQUID: - str := _lc[I_PROP_TR_EFFECT_SLIQUID]; + str := MsgPropTrEffectSliquid; TRIGGER_EFFECT_LLIQUID: - str := _lc[I_PROP_TR_EFFECT_LLIQUID]; + str := MsgPropTrEffectLliquid; TRIGGER_EFFECT_DLIQUID: - str := _lc[I_PROP_TR_EFFECT_DLIQUID]; + str := MsgPropTrEffectDliquid; TRIGGER_EFFECT_BLOOD: - str := _lc[I_PROP_TR_EFFECT_BLOOD]; + str := MsgPropTrEffectBlood; TRIGGER_EFFECT_SPARK: - str := _lc[I_PROP_TR_EFFECT_SPARK]; + str := MsgPropTrEffectSpark; TRIGGER_EFFECT_BUBBLE: - str := _lc[I_PROP_TR_EFFECT_BUBBLE]; + str := MsgPropTrEffectBubble; end; if Data.FXType = 1 then begin @@ -1596,61 +1596,61 @@ begin Data.FXSubType := EFFECT_TELEPORT; str := EffectToStr(Data.FXSubType); end; - with ItemProps[InsertRow(_lc[I_PROP_TR_EFFECT_SUBTYPE], str, True)] do + with ItemProps[InsertRow(MsgPropTrEffectSubtype, str, True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_EFFECT_COLOR], IntToStr(Data.FXColorR or (Data.FXColorG shl 8) or (Data.FXColorB shl 16)), True)] do + with ItemProps[InsertRow(MsgPropTrEffectColor, IntToStr(Data.FXColorR or (Data.FXColorG shl 8) or (Data.FXColorB shl 16)), True)] do begin EditStyle := esEllipsis; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_EFFECT_CENTER], BoolNames[Data.FXPos = 0], True)] do + with ItemProps[InsertRow(MsgPropTrEffectCenter, BoolNames[Data.FXPos = 0], True)] do begin EditStyle := esPickList; ReadOnly := True; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_EX_DELAY], IntToStr(Data.FXWait), True)] do + with ItemProps[InsertRow(MsgPropTrExDelay, IntToStr(Data.FXWait), True)] do begin EditStyle := esSimple; MaxLength := 5; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_EFFECT_VELX], IntToStr(Data.FXVelX), True)] do + with ItemProps[InsertRow(MsgPropTrEffectVelx, IntToStr(Data.FXVelX), True)] do begin EditStyle := esSimple; MaxLength := 4; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_EFFECT_VELY], IntToStr(Data.FXVelY), True)] do + with ItemProps[InsertRow(MsgPropTrEffectVely, IntToStr(Data.FXVelY), True)] do begin EditStyle := esSimple; MaxLength := 4; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_EFFECT_SPL], IntToStr(Data.FXSpreadL), True)] do + with ItemProps[InsertRow(MsgPropTrEffectSpl, IntToStr(Data.FXSpreadL), True)] do begin EditStyle := esSimple; MaxLength := 3; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_EFFECT_SPR], IntToStr(Data.FXSpreadR), True)] do + with ItemProps[InsertRow(MsgPropTrEffectSpr, IntToStr(Data.FXSpreadR), True)] do begin EditStyle := esSimple; MaxLength := 3; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_EFFECT_SPU], IntToStr(Data.FXSpreadU), True)] do + with ItemProps[InsertRow(MsgPropTrEffectSpu, IntToStr(Data.FXSpreadU), True)] do begin EditStyle := esSimple; MaxLength := 3; end; - with ItemProps[InsertRow(_lc[I_PROP_TR_EFFECT_SPD], IntToStr(Data.FXSpreadD), True)] do + with ItemProps[InsertRow(MsgPropTrEffectSpd, IntToStr(Data.FXSpreadD), True)] do begin EditStyle := esSimple; MaxLength := 3; @@ -1858,7 +1858,7 @@ end; procedure ErrorMessageBox(str: String); begin - Application.MessageBox(PChar(str), PChar(_lc[I_MSG_ERROR]), + Application.MessageBox(PChar(str), PChar(MsgMsgError), MB_ICONINFORMATION or MB_OK or MB_DEFBUTTON1); end; @@ -1874,41 +1874,41 @@ begin with gPanels[SelectedObjects[_id].ID] do begin if TextureWidth <> 0 then - if StrToIntDef(MainForm.vleObjectProperty.Values[_lc[I_PROP_WIDTH]], 1) mod TextureWidth <> 0 then + if StrToIntDef(MainForm.vleObjectProperty.Values[MsgPropWidth], 1) mod TextureWidth <> 0 then begin - ErrorMessageBox(Format(_lc[I_MSG_WRONG_TEXWIDTH], + ErrorMessageBox(Format(MsgMsgWrongTexwidth, [TextureWidth])); Exit; end; if TextureHeight <> 0 then - if StrToIntDef(Trim(MainForm.vleObjectProperty.Values[_lc[I_PROP_HEIGHT]]), 1) mod TextureHeight <> 0 then + if StrToIntDef(Trim(MainForm.vleObjectProperty.Values[MsgPropHeight]), 1) mod TextureHeight <> 0 then begin - ErrorMessageBox(Format(_lc[I_MSG_WRONG_TEXHEIGHT], + ErrorMessageBox(Format(MsgMsgWrongTexheight, [TextureHeight])); Exit; end; if IsTexturedPanel(PanelType) and (TextureName <> '') then - if not (StrToIntDef(MainForm.vleObjectProperty.Values[_lc[I_PROP_PANEL_ALPHA]], -1) in [0..255]) then + if not (StrToIntDef(MainForm.vleObjectProperty.Values[MsgPropPanelAlpha], -1) in [0..255]) then begin - ErrorMessageBox(_lc[I_MSG_WRONG_ALPHA]); + ErrorMessageBox(MsgMsgWrongAlpha); Exit; end; end; if SelectedObjects[_id].ObjectType in [OBJECT_PANEL, OBJECT_TRIGGER] then - if (StrToIntDef(MainForm.vleObjectProperty.Values[_lc[I_PROP_WIDTH]], 0) <= 0) or - (StrToIntDef(MainForm.vleObjectProperty.Values[_lc[I_PROP_HEIGHT]], 0) <= 0) then + if (StrToIntDef(MainForm.vleObjectProperty.Values[MsgPropWidth], 0) <= 0) or + (StrToIntDef(MainForm.vleObjectProperty.Values[MsgPropHeight], 0) <= 0) then begin - ErrorMessageBox(_lc[I_MSG_WRONG_SIZE]); + ErrorMessageBox(MsgMsgWrongSize); Exit; end; - if (Trim(MainForm.vleObjectProperty.Values[_lc[I_PROP_X]]) = '') or - (Trim(MainForm.vleObjectProperty.Values[_lc[I_PROP_Y]]) = '') then + if (Trim(MainForm.vleObjectProperty.Values[MsgPropX]) = '') or + (Trim(MainForm.vleObjectProperty.Values[MsgPropY]) = '') then begin - ErrorMessageBox(_lc[I_MSG_WRONG_XY]); + ErrorMessageBox(MsgMsgWrongXy); Exit; end; @@ -1944,16 +1944,16 @@ begin SectionName := aSection; if aWAD = '' then - aWAD := _lc[I_WAD_SPECIAL_MAP]; + aWAD := MsgWadSpecialMap; - if aWAD = _lc[I_WAD_SPECIAL_MAP] then + if aWAD = MsgWadSpecialMap then begin // Файл карты g_ProcessResourceStr(OpenedMap, @fn, nil, nil); FileName := fn; ResourceName := ':'+SectionName+'\'+aTex; end else - if aWAD = _lc[I_WAD_SPECIAL_TEXS] then + if aWAD = MsgWadSpecialTexs then begin // Спец. текстуры FileName := ''; ResourceName := aTex; @@ -1971,7 +1971,7 @@ begin if ResourceName = MainForm.lbTextureList.Items[a] then begin if not silent then - ErrorMessageBox(Format(_lc[I_MSG_TEXTURE_ALREADY], + ErrorMessageBox(Format(MsgMsgTextureAlready, [ResourceName])); ok := False; end; @@ -1980,7 +1980,7 @@ begin if Length(ResourceName) > 64 then begin if not silent then - ErrorMessageBox(Format(_lc[I_MSG_RES_NAME_64], + ErrorMessageBox(Format(MsgMsgResName64, [ResourceName])); ok := False; end; @@ -1988,7 +1988,7 @@ begin if ok then begin a := -1; - if aWAD = _lc[I_WAD_SPECIAL_TEXS] then + if aWAD = MsgWadSpecialTexs then begin a := MainForm.lbTextureList.Items.Add(ResourceName); if not silent then @@ -2045,7 +2045,7 @@ var MapName: String; idx: Integer; begin - SelectMapForm.Caption := _lc[I_CAP_OPEN]; + SelectMapForm.Caption := MsgCapOpen; SelectMapForm.GetMaps(FileName); if (FileName = OpenedWAD) and @@ -2591,7 +2591,7 @@ begin OpenMap(fn, g_ExtractFilePathName(FPath)) else Application.MessageBox('', 'File not available anymore', MB_OK); -// if Application.MessageBox(PChar(_lc[I_MSG_DEL_RECENT_PROMT]), PChar(_lc[I_MSG_DEL_RECENT]), MB_ICONQUESTION or MB_YESNO) = idYes then +// if Application.MessageBox(PChar(MsgMsgDelRecentPromt), PChar(MsgMsgDelRecent), MB_ICONQUESTION or MB_YESNO) = idYes then // begin // RecentFiles.Delete(n); // RefreshRecentMenu(); @@ -2901,7 +2901,7 @@ begin tbShowMap.Down := ShowMap; tbGridOn.Down := DotEnable; pcObjects.ActivePageIndex := 0; - Application.Title := _lc[I_EDITOR_TITLE]; + Application.Title := MsgEditorTitle; Application.OnIdle := OnIdle; end; @@ -3028,7 +3028,7 @@ begin e_DrawFillQuad(MousePos.X, MousePos.Y, MousePos.X+180, MousePos.Y+18, 192, 192, 192, 127); e_DrawQuad(MousePos.X, MousePos.Y, MousePos.X+180, MousePos.Y+18, 255, 255, 255); - PrintBlack(MousePos.X+2, MousePos.Y+2, _glc[I_HINT_TELEPORT], gEditorFont); + PrintBlack(MousePos.X+2, MousePos.Y+2, utf8to1251(MsgHintTeleport), gEditorFont); end; // Подсказка при выборе точки появления: @@ -3039,7 +3039,7 @@ begin 0, 0, 255); e_DrawFillQuad(MousePos.X, MousePos.Y, MousePos.X+180, MousePos.Y+18, 192, 192, 192, 127); e_DrawQuad(MousePos.X, MousePos.Y, MousePos.X+180, MousePos.Y+18, 255, 255, 255); - PrintBlack(MousePos.X+2, MousePos.Y+2, _glc[I_HINT_SPAWN], gEditorFont); + PrintBlack(MousePos.X+2, MousePos.Y+2, utf8to1251(MsgHintSpawn), gEditorFont); end; // Подсказка при выборе панели двери: @@ -3047,7 +3047,7 @@ begin begin e_DrawFillQuad(MousePos.X, MousePos.Y, MousePos.X+180, MousePos.Y+18, 192, 192, 192, 127); e_DrawQuad(MousePos.X, MousePos.Y, MousePos.X+180, MousePos.Y+18, 255, 255, 255); - PrintBlack(MousePos.X+2, MousePos.Y+2, _glc[I_HINT_PANEL_DOOR], gEditorFont); + PrintBlack(MousePos.X+2, MousePos.Y+2, utf8to1251(MsgHintPanelDoor), gEditorFont); end; // Подсказка при выборе панели с текстурой: @@ -3055,7 +3055,7 @@ begin begin e_DrawFillQuad(MousePos.X, MousePos.Y, MousePos.X+196, MousePos.Y+18, 192, 192, 192, 127); e_DrawQuad(MousePos.X, MousePos.Y, MousePos.X+196, MousePos.Y+18, 255, 255, 255); - PrintBlack(MousePos.X+2, MousePos.Y+2, _glc[I_HINT_PANEL_TEXTURE], gEditorFont); + PrintBlack(MousePos.X+2, MousePos.Y+2, utf8to1251(MsgHintPanelTexture), gEditorFont); end; // Подсказка при выборе панели индикации выстрела: @@ -3063,7 +3063,7 @@ begin begin e_DrawFillQuad(MousePos.X, MousePos.Y, MousePos.X+316, MousePos.Y+18, 192, 192, 192, 127); e_DrawQuad(MousePos.X, MousePos.Y, MousePos.X+316, MousePos.Y+18, 255, 255, 255); - PrintBlack(MousePos.X+2, MousePos.Y+2, _glc[I_HINT_PANEL_SHOT], gEditorFont); + PrintBlack(MousePos.X+2, MousePos.Y+2, utf8to1251(MsgHintPanelShot), gEditorFont); end; // Подсказка при выборе панели лифта: @@ -3071,7 +3071,7 @@ begin begin e_DrawFillQuad(MousePos.X, MousePos.Y, MousePos.X+180, MousePos.Y+18, 192, 192, 192, 127); e_DrawQuad(MousePos.X, MousePos.Y, MousePos.X+180, MousePos.Y+18, 255, 255, 255); - PrintBlack(MousePos.X+2, MousePos.Y+2, _glc[I_HINT_PANEL_LIFT], gEditorFont); + PrintBlack(MousePos.X+2, MousePos.Y+2, utf8to1251(MsgHintPanelLift), gEditorFont); end; // Подсказка при выборе монстра: @@ -3079,7 +3079,7 @@ begin begin e_DrawFillQuad(MousePos.X, MousePos.Y, MousePos.X+120, MousePos.Y+18, 192, 192, 192, 127); e_DrawQuad(MousePos.X, MousePos.Y, MousePos.X+120, MousePos.Y+18, 255, 255, 255); - PrintBlack(MousePos.X+2, MousePos.Y+2, _glc[I_HINT_MONSTER], gEditorFont); + PrintBlack(MousePos.X+2, MousePos.Y+2, utf8to1251(MsgHintMonster), gEditorFont); end; // Подсказка при выборе области воздействия: @@ -3087,7 +3087,7 @@ begin begin e_DrawFillQuad(MousePos.X, MousePos.Y, MousePos.X+204, MousePos.Y+18, 192, 192, 192, 127); e_DrawQuad(MousePos.X, MousePos.Y, MousePos.X+204, MousePos.Y+18, 255, 255, 255); - PrintBlack(MousePos.X+2, MousePos.Y+2, _glc[I_HINT_EXT_AREA], gEditorFont); + PrintBlack(MousePos.X+2, MousePos.Y+2, utf8to1251(MsgHintExtArea), gEditorFont); end; // Рисуем текстуры, если чертим панель: @@ -3119,9 +3119,9 @@ begin if MouseAction in [MOUSEACTION_DRAWPANEL, MOUSEACTION_DRAWTRIGGER] then begin // Чертим новый - PrintBlack(MousePos.X+2, MousePos.Y+2, Format(_glc[I_HINT_WIDTH], + PrintBlack(MousePos.X+2, MousePos.Y+2, Format(utf8to1251(MsgHintWidth), [Abs(MousePos.X-MouseLDownPos.X)]), gEditorFont); - PrintBlack(MousePos.X+2, MousePos.Y+16, Format(_glc[I_HINT_HEIGHT], + PrintBlack(MousePos.X+2, MousePos.Y+16, Format(utf8to1251(MsgHintHeight), [Abs(MousePos.Y-MouseLDownPos.Y)]), gEditorFont); end else // Растягиваем существующий @@ -3138,9 +3138,9 @@ begin Height := gTriggers[SelectedObjects[GetFirstSelected].ID].Height; end; - PrintBlack(MousePos.X+2, MousePos.Y+2, Format(_glc[I_HINT_WIDTH], [Width]), + PrintBlack(MousePos.X+2, MousePos.Y+2, Format(utf8to1251(MsgHintWidth), [Width]), gEditorFont); - PrintBlack(MousePos.X+2, MousePos.Y+16, Format(_glc[I_HINT_HEIGHT], [Height]), + PrintBlack(MousePos.X+2, MousePos.Y+16, Format(utf8to1251(MsgHintHeight), [Height]), gEditorFont); end; end; @@ -3427,7 +3427,7 @@ begin case pcObjects.ActivePageIndex of 1: if lbItemList.ItemIndex = -1 then - ErrorMessageBox(_lc[I_MSG_CHOOSE_ITEM]) + ErrorMessageBox(MsgMsgChooseItem) else begin item.ItemType := lbItemList.ItemIndex + ITEM_MEDKIT_SMALL; @@ -3448,7 +3448,7 @@ begin end; 2: if lbMonsterList.ItemIndex = -1 then - ErrorMessageBox(_lc[I_MSG_CHOOSE_MONSTER]) + ErrorMessageBox(MsgMsgChooseMonster) else begin monster.MonsterType := lbMonsterList.ItemIndex + MONSTER_DEMON; @@ -3469,7 +3469,7 @@ begin end; 3: if lbAreasList.ItemIndex = -1 then - ErrorMessageBox(_lc[I_MSG_CHOOSE_AREA]) + ErrorMessageBox(MsgMsgChooseArea) else if (lbAreasList.ItemIndex + 1) <> AREA_DOMFLAG then begin @@ -3830,7 +3830,7 @@ begin // Фон или передний план без текстуры - ошибка: if (lbPanelType.ItemIndex in [1, 2]) and (lbTextureList.ItemIndex = -1) then - ErrorMessageBox(_lc[I_MSG_CHOOSE_TEXTURE]) + ErrorMessageBox(MsgMsgChooseTexture) else // Назначаем параметры панели: begin case lbPanelType.ItemIndex of @@ -4205,7 +4205,7 @@ begin if SelectedObjectCount() = 0 then StatusBar.Panels[0].Text := '' else - StatusBar.Panels[0].Text := Format(_lc[I_CAP_STAT_SELECTED], [SelectedObjectCount()]); + StatusBar.Panels[0].Text := Format(MsgCapStatSelected, [SelectedObjectCount()]); end; procedure TMainForm.RenderPanelMouseMove(Sender: TObject; @@ -4384,8 +4384,8 @@ end; procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin - CanClose := Application.MessageBox(PChar(_lc[I_MSG_EXIT_PROMT]), - PChar(_lc[I_MSG_EXIT]), + CanClose := Application.MessageBox(PChar(MsgMsgExitPromt), + PChar(MsgMsgExit), MB_ICONQUESTION or MB_YESNO or MB_DEFBUTTON1) = idYes; end; @@ -4425,6 +4425,7 @@ begin config.WriteInt('Editor', 'DotStep', DotStep); config.WriteStr('Editor', 'LastOpenDir', OpenDialog.InitialDir); config.WriteStr('Editor', 'LastSaveDir', SaveDialog.InitialDir); + config.WriteStr('Editor', 'Language', gLanguage); config.WriteBool('Editor', 'EdgeShow', drEdge[3] < 255); config.WriteInt('Editor', 'EdgeColor', gColorEdge); config.WriteInt('Editor', 'EdgeAlpha', gAlphaEdge); @@ -4477,7 +4478,7 @@ begin if MapTestProcess.Running = false then begin if MapTestProcess.ExitCode <> 0 then - Application.MessageBox(PChar(_lc[I_MSG_EXEC_ERROR]), 'FIXME', MB_OK or MB_ICONERROR); + Application.MessageBox(PChar(MsgMsgExecError), 'FIXME', MB_OK or MB_ICONERROR); SysUtils.DeleteFile(MapTestFile); MapTestFile := ''; FreeAndNil(MapTestProcess); @@ -4739,7 +4740,7 @@ begin SelectFlag := SELECTFLAG_NONE; Exit; end; - vleObjectProperty.FindRow(_lc[I_PROP_TR_TEXTURE_PANEL], i); + vleObjectProperty.FindRow(MsgPropTrTexturePanel, i); if i > 0 then SelectFlag := SELECTFLAG_TEXTURE; end; @@ -4755,33 +4756,33 @@ begin i := -1; // Выбор области воздействия, в зависимости от типа триггера - vleObjectProperty.FindRow(_lc[I_PROP_TR_EX_AREA], i); + vleObjectProperty.FindRow(MsgPropTrExArea, i); if i > 0 then begin DrawPressRect := True; Exit; end; - vleObjectProperty.FindRow(_lc[I_PROP_TR_DOOR_PANEL], i); + vleObjectProperty.FindRow(MsgPropTrDoorPanel, i); if i <= 0 then - vleObjectProperty.FindRow(_lc[I_PROP_TR_TRAP_PANEL], i); + vleObjectProperty.FindRow(MsgPropTrTrapPanel, i); if i > 0 then begin SelectFlag := SELECTFLAG_DOOR; Exit; end; - vleObjectProperty.FindRow(_lc[I_PROP_TR_LIFT_PANEL], i); + vleObjectProperty.FindRow(MsgPropTrLiftPanel, i); if i > 0 then begin SelectFlag := SELECTFLAG_LIFT; Exit; end; - vleObjectProperty.FindRow(_lc[I_PROP_TR_TELEPORT_TO], i); + vleObjectProperty.FindRow(MsgPropTrTeleportTo, i); if i > 0 then begin SelectFlag := SELECTFLAG_TELEPORT; Exit; end; - vleObjectProperty.FindRow(_lc[I_PROP_TR_SPAWN_TO], i); + vleObjectProperty.FindRow(MsgPropTrSpawnTo, i); if i > 0 then begin SelectFlag := SELECTFLAG_SPAWNPOINT; @@ -4789,11 +4790,11 @@ begin end; // Выбор основного параметра, в зависимости от типа триггера - vleObjectProperty.FindRow(_lc[I_PROP_TR_NEXT_MAP], i); + vleObjectProperty.FindRow(MsgPropTrNextMap, i); if i > 0 then begin g_ProcessResourceStr(OpenedMap, @FileName, nil, nil); - SelectMapForm.Caption := _lc[I_CAP_SELECT]; + SelectMapForm.Caption := MsgCapSelect; SelectMapForm.GetMaps(FileName); if SelectMapForm.ShowModal() = mrOK then @@ -4803,9 +4804,9 @@ begin end; Exit; end; - vleObjectProperty.FindRow(_lc[I_PROP_TR_SOUND_NAME], i); + vleObjectProperty.FindRow(MsgPropTrSoundName, i); if i <= 0 then - vleObjectProperty.FindRow(_lc[I_PROP_TR_MUSIC_NAME], i); + vleObjectProperty.FindRow(MsgPropTrMusicName, i); if i > 0 then begin AddSoundForm.OKFunction := nil; @@ -4819,9 +4820,9 @@ begin end; Exit; end; - vleObjectProperty.FindRow(_lc[I_PROP_TR_PUSH_ANGLE], i); + vleObjectProperty.FindRow(MsgPropTrPushAngle, i); if i <= 0 then - vleObjectProperty.FindRow(_lc[I_PROP_TR_MESSAGE_TEXT], i); + vleObjectProperty.FindRow(MsgPropTrMessageText, i); if i > 0 then begin vleObjectProperty.Row := i; @@ -4868,8 +4869,8 @@ begin lTextureHeight.Caption := IntToStr(TextureHeight); end else begin - lTextureWidth.Caption := _lc[I_NOT_ACCESSIBLE]; - lTextureHeight.Caption := _lc[I_NOT_ACCESSIBLE]; + lTextureWidth.Caption := MsgNotAccessible; + lTextureHeight.Caption := MsgNotAccessible; end; end else @@ -4922,8 +4923,8 @@ begin if OpenedMap = '' then Exit; - if Application.MessageBox(PChar(_lc[I_MSG_REOPEN_MAP_PROMT]), - PChar(_lc[I_MENU_FILE_REOPEN]), MB_ICONQUESTION or MB_YESNO) <> idYes then + if Application.MessageBox(PChar(MsgMsgReopenMapPromt), + PChar(MsgMenuFileReopen), MB_ICONQUESTION or MB_YESNO) <> idYes then Exit; g_ProcessResourceStr(OpenedMap, @FileName, nil, @Resource); @@ -4935,106 +4936,106 @@ procedure TMainForm.vleObjectPropertyGetPickList(Sender: TObject; begin if vleObjectProperty.ItemProps[KeyName].EditStyle = esPickList then begin - if KeyName = _lc[I_PROP_DIRECTION] then + if KeyName = MsgPropDirection then begin Values.Add(DirNames[D_LEFT]); Values.Add(DirNames[D_RIGHT]); end - else if KeyName = _lc[I_PROP_TR_TELEPORT_DIR] then + else if KeyName = MsgPropTrTeleportDir then begin Values.Add(DirNamesAdv[0]); Values.Add(DirNamesAdv[1]); Values.Add(DirNamesAdv[2]); Values.Add(DirNamesAdv[3]); end - else if KeyName = _lc[I_PROP_TR_MUSIC_ACT] then + else if KeyName = MsgPropTrMusicAct then begin - Values.Add(_lc[I_PROP_TR_MUSIC_ON]); - Values.Add(_lc[I_PROP_TR_MUSIC_OFF]); + Values.Add(MsgPropTrMusicOn); + Values.Add(MsgPropTrMusicOff); end - else if KeyName = _lc[I_PROP_TR_MONSTER_BEHAVIOUR] then + else if KeyName = MsgPropTrMonsterBehaviour then begin - Values.Add(_lc[I_PROP_TR_MONSTER_BEHAVIOUR_0]); - Values.Add(_lc[I_PROP_TR_MONSTER_BEHAVIOUR_1]); - Values.Add(_lc[I_PROP_TR_MONSTER_BEHAVIOUR_2]); - Values.Add(_lc[I_PROP_TR_MONSTER_BEHAVIOUR_3]); - Values.Add(_lc[I_PROP_TR_MONSTER_BEHAVIOUR_4]); - Values.Add(_lc[I_PROP_TR_MONSTER_BEHAVIOUR_5]); + Values.Add(MsgPropTrMonsterBehaviour0); + Values.Add(MsgPropTrMonsterBehaviour1); + Values.Add(MsgPropTrMonsterBehaviour2); + Values.Add(MsgPropTrMonsterBehaviour3); + Values.Add(MsgPropTrMonsterBehaviour4); + Values.Add(MsgPropTrMonsterBehaviour5); end - else if KeyName = _lc[I_PROP_TR_SCORE_ACT] then + else if KeyName = MsgPropTrScoreAct then begin - Values.Add(_lc[I_PROP_TR_SCORE_ACT_0]); - Values.Add(_lc[I_PROP_TR_SCORE_ACT_1]); - Values.Add(_lc[I_PROP_TR_SCORE_ACT_2]); - Values.Add(_lc[I_PROP_TR_SCORE_ACT_3]); + Values.Add(MsgPropTrScoreAct0); + Values.Add(MsgPropTrScoreAct1); + Values.Add(MsgPropTrScoreAct2); + Values.Add(MsgPropTrScoreAct3); end - else if KeyName = _lc[I_PROP_TR_SCORE_TEAM] then + else if KeyName = MsgPropTrScoreTeam then begin - Values.Add(_lc[I_PROP_TR_SCORE_TEAM_0]); - Values.Add(_lc[I_PROP_TR_SCORE_TEAM_1]); - Values.Add(_lc[I_PROP_TR_SCORE_TEAM_2]); - Values.Add(_lc[I_PROP_TR_SCORE_TEAM_3]); + Values.Add(MsgPropTrScoreTeam0); + Values.Add(MsgPropTrScoreTeam1); + Values.Add(MsgPropTrScoreTeam2); + Values.Add(MsgPropTrScoreTeam3); end - else if KeyName = _lc[I_PROP_TR_MESSAGE_KIND] then + else if KeyName = MsgPropTrMessageKind then begin - Values.Add(_lc[I_PROP_TR_MESSAGE_KIND_0]); - Values.Add(_lc[I_PROP_TR_MESSAGE_KIND_1]); + Values.Add(MsgPropTrMessageKind0); + Values.Add(MsgPropTrMessageKind1); end - else if KeyName = _lc[I_PROP_TR_MESSAGE_TO] then + else if KeyName = MsgPropTrMessageTo then begin - Values.Add(_lc[I_PROP_TR_MESSAGE_TO_0]); - Values.Add(_lc[I_PROP_TR_MESSAGE_TO_1]); - Values.Add(_lc[I_PROP_TR_MESSAGE_TO_2]); - Values.Add(_lc[I_PROP_TR_MESSAGE_TO_3]); - Values.Add(_lc[I_PROP_TR_MESSAGE_TO_4]); - Values.Add(_lc[I_PROP_TR_MESSAGE_TO_5]); + Values.Add(MsgPropTrMessageTo0); + Values.Add(MsgPropTrMessageTo1); + Values.Add(MsgPropTrMessageTo2); + Values.Add(MsgPropTrMessageTo3); + Values.Add(MsgPropTrMessageTo4); + Values.Add(MsgPropTrMessageTo5); end - else if KeyName = _lc[I_PROP_TR_SHOT_TO] then + else if KeyName = MsgPropTrShotTo then begin - Values.Add(_lc[I_PROP_TR_SHOT_TO_0]); - Values.Add(_lc[I_PROP_TR_SHOT_TO_1]); - Values.Add(_lc[I_PROP_TR_SHOT_TO_2]); - Values.Add(_lc[I_PROP_TR_SHOT_TO_3]); - Values.Add(_lc[I_PROP_TR_SHOT_TO_4]); - Values.Add(_lc[I_PROP_TR_SHOT_TO_5]); - Values.Add(_lc[I_PROP_TR_SHOT_TO_6]); + Values.Add(MsgPropTrShotTo0); + Values.Add(MsgPropTrShotTo1); + Values.Add(MsgPropTrShotTo2); + Values.Add(MsgPropTrShotTo3); + Values.Add(MsgPropTrShotTo4); + Values.Add(MsgPropTrShotTo5); + Values.Add(MsgPropTrShotTo6); end - else if KeyName = _lc[I_PROP_TR_SHOT_AIM] then + else if KeyName = MsgPropTrShotAim then begin - Values.Add(_lc[I_PROP_TR_SHOT_AIM_0]); - Values.Add(_lc[I_PROP_TR_SHOT_AIM_1]); - Values.Add(_lc[I_PROP_TR_SHOT_AIM_2]); - Values.Add(_lc[I_PROP_TR_SHOT_AIM_3]); + Values.Add(MsgPropTrShotAim0); + Values.Add(MsgPropTrShotAim1); + Values.Add(MsgPropTrShotAim2); + Values.Add(MsgPropTrShotAim3); end - else if KeyName = _lc[I_PROP_TR_DAMAGE_KIND] then + else if KeyName = MsgPropTrDamageKind then begin - Values.Add(_lc[I_PROP_TR_DAMAGE_KIND_0]); - Values.Add(_lc[I_PROP_TR_DAMAGE_KIND_3]); - Values.Add(_lc[I_PROP_TR_DAMAGE_KIND_4]); - Values.Add(_lc[I_PROP_TR_DAMAGE_KIND_5]); - Values.Add(_lc[I_PROP_TR_DAMAGE_KIND_6]); - Values.Add(_lc[I_PROP_TR_DAMAGE_KIND_7]); - Values.Add(_lc[I_PROP_TR_DAMAGE_KIND_8]); + Values.Add(MsgPropTrDamageKind0); + Values.Add(MsgPropTrDamageKind3); + Values.Add(MsgPropTrDamageKind4); + Values.Add(MsgPropTrDamageKind5); + Values.Add(MsgPropTrDamageKind6); + Values.Add(MsgPropTrDamageKind7); + Values.Add(MsgPropTrDamageKind8); end - else if (KeyName = _lc[I_PROP_PANEL_BLEND]) or - (KeyName = _lc[I_PROP_DM_ONLY]) or - (KeyName = _lc[I_PROP_ITEM_FALLS]) or - (KeyName = _lc[I_PROP_TR_ENABLED]) or - (KeyName = _lc[I_PROP_TR_D2D]) or - (KeyName = _lc[I_PROP_TR_SILENT]) or - (KeyName = _lc[I_PROP_TR_TELEPORT_SILENT]) or - (KeyName = _lc[I_PROP_TR_EX_RANDOM]) or - (KeyName = _lc[I_PROP_TR_TEXTURE_ONCE]) or - (KeyName = _lc[I_PROP_TR_TEXTURE_ANIM_ONCE]) or - (KeyName = _lc[I_PROP_TR_SOUND_LOCAL]) or - (KeyName = _lc[I_PROP_TR_SOUND_SWITCH]) or - (KeyName = _lc[I_PROP_TR_MONSTER_ACTIVE]) or - (KeyName = _lc[I_PROP_TR_PUSH_RESET]) or - (KeyName = _lc[I_PROP_TR_SCORE_CON]) or - (KeyName = _lc[I_PROP_TR_SCORE_MSG]) or - (KeyName = _lc[I_PROP_TR_HEALTH_MAX]) or - (KeyName = _lc[I_PROP_TR_SHOT_SOUND]) or - (KeyName = _lc[I_PROP_TR_EFFECT_CENTER]) then + else if (KeyName = MsgPropPanelBlend) or + (KeyName = MsgPropDmOnly) or + (KeyName = MsgPropItemFalls) or + (KeyName = MsgPropTrEnabled) or + (KeyName = MsgPropTrD2d) or + (KeyName = MsgPropTrSilent) or + (KeyName = MsgPropTrTeleportSilent) or + (KeyName = MsgPropTrExRandom) or + (KeyName = MsgPropTrTextureOnce) or + (KeyName = MsgPropTrTextureAnimOnce) or + (KeyName = MsgPropTrSoundLocal) or + (KeyName = MsgPropTrSoundSwitch) or + (KeyName = MsgPropTrMonsterActive) or + (KeyName = MsgPropTrPushReset) or + (KeyName = MsgPropTrScoreCon) or + (KeyName = MsgPropTrScoreMsg) or + (KeyName = MsgPropTrHealthMax) or + (KeyName = MsgPropTrShotSound) or + (KeyName = MsgPropTrEffectCenter) then begin Values.Add(BoolNames[True]); Values.Add(BoolNames[False]); @@ -5076,12 +5077,12 @@ begin begin with gPanels[SelectedObjects[_id].ID] do begin - X := StrToInt(Trim(vleObjectProperty.Values[_lc[I_PROP_X]])); - Y := StrToInt(Trim(vleObjectProperty.Values[_lc[I_PROP_Y]])); - Width := StrToInt(Trim(vleObjectProperty.Values[_lc[I_PROP_WIDTH]])); - Height := StrToInt(Trim(vleObjectProperty.Values[_lc[I_PROP_HEIGHT]])); + X := StrToInt(Trim(vleObjectProperty.Values[MsgPropX])); + Y := StrToInt(Trim(vleObjectProperty.Values[MsgPropY])); + Width := StrToInt(Trim(vleObjectProperty.Values[MsgPropWidth])); + Height := StrToInt(Trim(vleObjectProperty.Values[MsgPropHeight])); - PanelType := GetPanelType(vleObjectProperty.Values[_lc[I_PROP_PANEL_TYPE]]); + PanelType := GetPanelType(vleObjectProperty.Values[MsgPropPanelType]); // Сброс ссылки на триггеры смены текстуры: if not WordBool(PanelType and (PANEL_WALL or PANEL_FORE or PANEL_BACK)) then @@ -5117,8 +5118,8 @@ begin begin // Может быть текстура if TextureName <> '' then begin // Была текстура - Alpha := StrToInt(Trim(vleObjectProperty.Values[_lc[I_PROP_PANEL_ALPHA]])); - Blending := NameToBool(vleObjectProperty.Values[_lc[I_PROP_PANEL_BLEND]]); + Alpha := StrToInt(Trim(vleObjectProperty.Values[MsgPropPanelAlpha])); + Blending := NameToBool(vleObjectProperty.Values[MsgPropPanelBlend]); end else // Не было begin @@ -5127,7 +5128,7 @@ begin end; // Новая текстура: - TextureName := vleObjectProperty.Values[_lc[I_PROP_PANEL_TEX]]; + TextureName := vleObjectProperty.Values[MsgPropPanelTex]; if TextureName <> '' then begin // Есть текстура @@ -5142,14 +5143,14 @@ begin if TextureWidth <> 0 then if gPanels[SelectedObjects[_id].ID].Width mod TextureWidth <> 0 then begin - ErrorMessageBox(Format(_lc[I_MSG_WRONG_TEXWIDTH], + ErrorMessageBox(Format(MsgMsgWrongTexwidth, [TextureWidth])); Res := False; end; if Res and (TextureHeight <> 0) then if gPanels[SelectedObjects[_id].ID].Height mod TextureHeight <> 0 then begin - ErrorMessageBox(Format(_lc[I_MSG_WRONG_TEXHEIGHT], + ErrorMessageBox(Format(MsgMsgWrongTexheight, [TextureHeight])); Res := False; end; @@ -5209,10 +5210,10 @@ begin begin with gItems[SelectedObjects[_id].ID] do begin - X := StrToInt(Trim(vleObjectProperty.Values[_lc[I_PROP_X]])); - Y := StrToInt(Trim(vleObjectProperty.Values[_lc[I_PROP_Y]])); - OnlyDM := NameToBool(vleObjectProperty.Values[_lc[I_PROP_DM_ONLY]]); - Fall := NameToBool(vleObjectProperty.Values[_lc[I_PROP_ITEM_FALLS]]); + X := StrToInt(Trim(vleObjectProperty.Values[MsgPropX])); + Y := StrToInt(Trim(vleObjectProperty.Values[MsgPropY])); + OnlyDM := NameToBool(vleObjectProperty.Values[MsgPropDmOnly]); + Fall := NameToBool(vleObjectProperty.Values[MsgPropItemFalls]); end; end; @@ -5220,9 +5221,9 @@ begin begin with gMonsters[SelectedObjects[_id].ID] do begin - X := StrToInt(Trim(vleObjectProperty.Values[_lc[I_PROP_X]])); - Y := StrToInt(Trim(vleObjectProperty.Values[_lc[I_PROP_Y]])); - Direction := NameToDir(vleObjectProperty.Values[_lc[I_PROP_DIRECTION]]); + X := StrToInt(Trim(vleObjectProperty.Values[MsgPropX])); + Y := StrToInt(Trim(vleObjectProperty.Values[MsgPropY])); + Direction := NameToDir(vleObjectProperty.Values[MsgPropDirection]); end; end; @@ -5230,9 +5231,9 @@ begin begin with gAreas[SelectedObjects[_id].ID] do begin - X := StrToInt(Trim(vleObjectProperty.Values[_lc[I_PROP_X]])); - Y := StrToInt(Trim(vleObjectProperty.Values[_lc[I_PROP_Y]])); - Direction := NameToDir(vleObjectProperty.Values[_lc[I_PROP_DIRECTION]]); + X := StrToInt(Trim(vleObjectProperty.Values[MsgPropX])); + Y := StrToInt(Trim(vleObjectProperty.Values[MsgPropY])); + Direction := NameToDir(vleObjectProperty.Values[MsgPropDirection]); end; end; @@ -5240,18 +5241,18 @@ begin begin with gTriggers[SelectedObjects[_id].ID] do begin - X := StrToInt(Trim(vleObjectProperty.Values[_lc[I_PROP_X]])); - Y := StrToInt(Trim(vleObjectProperty.Values[_lc[I_PROP_Y]])); - Width := StrToInt(Trim(vleObjectProperty.Values[_lc[I_PROP_WIDTH]])); - Height := StrToInt(Trim(vleObjectProperty.Values[_lc[I_PROP_HEIGHT]])); - Enabled := NameToBool(vleObjectProperty.Values[_lc[I_PROP_TR_ENABLED]]); - ActivateType := StrToActivate(vleObjectProperty.Values[_lc[I_PROP_TR_ACTIVATION]]); - Key := StrToKey(vleObjectProperty.Values[_lc[I_PROP_TR_KEYS]]); + X := StrToInt(Trim(vleObjectProperty.Values[MsgPropX])); + Y := StrToInt(Trim(vleObjectProperty.Values[MsgPropY])); + Width := StrToInt(Trim(vleObjectProperty.Values[MsgPropWidth])); + Height := StrToInt(Trim(vleObjectProperty.Values[MsgPropHeight])); + Enabled := NameToBool(vleObjectProperty.Values[MsgPropTrEnabled]); + ActivateType := StrToActivate(vleObjectProperty.Values[MsgPropTrActivation]); + Key := StrToKey(vleObjectProperty.Values[MsgPropTrKeys]); case TriggerType of TRIGGER_EXIT: begin - s := utf2win(vleObjectProperty.Values[_lc[I_PROP_TR_NEXT_MAP]]); + s := utf2win(vleObjectProperty.Values[MsgPropTrNextMap]); FillByte(Data.MapName[0], 16, 0); if s <> '' then Move(s[1], Data.MapName[0], Min(Length(s), 16)); @@ -5259,97 +5260,97 @@ begin TRIGGER_TEXTURE: begin - Data.ActivateOnce := NameToBool(vleObjectProperty.Values[_lc[I_PROP_TR_TEXTURE_ONCE]]); - Data.AnimOnce := NameToBool(vleObjectProperty.Values[_lc[I_PROP_TR_TEXTURE_ANIM_ONCE]]); + Data.ActivateOnce := NameToBool(vleObjectProperty.Values[MsgPropTrTextureOnce]); + Data.AnimOnce := NameToBool(vleObjectProperty.Values[MsgPropTrTextureAnimOnce]); end; TRIGGER_PRESS, TRIGGER_ON, TRIGGER_OFF, TRIGGER_ONOFF: begin - Data.Wait := Min(StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_EX_DELAY]], 0), 65535); - Data.Count := Min(StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_EX_COUNT]], 0), 65535); + Data.Wait := Min(StrToIntDef(vleObjectProperty.Values[MsgPropTrExDelay], 0), 65535); + Data.Count := Min(StrToIntDef(vleObjectProperty.Values[MsgPropTrExCount], 0), 65535); if Data.Count < 1 then Data.Count := 1; if TriggerType = TRIGGER_PRESS then - Data.ExtRandom := NameToBool(vleObjectProperty.Values[_lc[I_PROP_TR_EX_RANDOM]]); + Data.ExtRandom := NameToBool(vleObjectProperty.Values[MsgPropTrExRandom]); end; TRIGGER_OPENDOOR, TRIGGER_CLOSEDOOR, TRIGGER_DOOR, TRIGGER_DOOR5, TRIGGER_CLOSETRAP, TRIGGER_TRAP, TRIGGER_LIFTUP, TRIGGER_LIFTDOWN, TRIGGER_LIFT: begin - Data.NoSound := NameToBool(vleObjectProperty.Values[_lc[I_PROP_TR_SILENT]]); - Data.d2d_doors := NameToBool(vleObjectProperty.Values[_lc[I_PROP_TR_D2D]]); + Data.NoSound := NameToBool(vleObjectProperty.Values[MsgPropTrSilent]); + Data.d2d_doors := NameToBool(vleObjectProperty.Values[MsgPropTrD2d]); end; TRIGGER_TELEPORT: begin - Data.d2d_teleport := NameToBool(vleObjectProperty.Values[_lc[I_PROP_TR_D2D]]); - Data.silent_teleport := NameToBool(vleObjectProperty.Values[_lc[I_PROP_TR_TELEPORT_SILENT]]); - Data.TlpDir := NameToDirAdv(vleObjectProperty.Values[_lc[I_PROP_TR_TELEPORT_DIR]]); + Data.d2d_teleport := NameToBool(vleObjectProperty.Values[MsgPropTrD2d]); + Data.silent_teleport := NameToBool(vleObjectProperty.Values[MsgPropTrTeleportSilent]); + Data.TlpDir := NameToDirAdv(vleObjectProperty.Values[MsgPropTrTeleportDir]); end; TRIGGER_SOUND: begin - s := utf2win(vleObjectProperty.Values[_lc[I_PROP_TR_SOUND_NAME]]); + s := utf2win(vleObjectProperty.Values[MsgPropTrSoundName]); FillByte(Data.SoundName[0], 64, 0); if s <> '' then Move(s[1], Data.SoundName[0], Min(Length(s), 64)); - Data.Volume := Min(StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_SOUND_VOLUME]], 0), 255); - Data.Pan := Min(StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_SOUND_PAN]], 0), 255); - Data.PlayCount := Min(StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_SOUND_COUNT]], 0), 255); - Data.Local := NameToBool(vleObjectProperty.Values[_lc[I_PROP_TR_SOUND_LOCAL]]); - Data.SoundSwitch := NameToBool(vleObjectProperty.Values[_lc[I_PROP_TR_SOUND_SWITCH]]); + Data.Volume := Min(StrToIntDef(vleObjectProperty.Values[MsgPropTrSoundVolume], 0), 255); + Data.Pan := Min(StrToIntDef(vleObjectProperty.Values[MsgPropTrSoundPan], 0), 255); + Data.PlayCount := Min(StrToIntDef(vleObjectProperty.Values[MsgPropTrSoundCount], 0), 255); + Data.Local := NameToBool(vleObjectProperty.Values[MsgPropTrSoundLocal]); + Data.SoundSwitch := NameToBool(vleObjectProperty.Values[MsgPropTrSoundSwitch]); end; TRIGGER_SPAWNMONSTER: begin - Data.MonType := StrToMonster(vleObjectProperty.Values[_lc[I_PROP_TR_MONSTER_TYPE]]); - Data.MonDir := Byte(NameToDir(vleObjectProperty.Values[_lc[I_PROP_DIRECTION]])); - Data.MonHealth := Min(StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_HEALTH]], 0), 1000000); + Data.MonType := StrToMonster(vleObjectProperty.Values[MsgPropTrMonsterType]); + Data.MonDir := Byte(NameToDir(vleObjectProperty.Values[MsgPropDirection])); + Data.MonHealth := Min(StrToIntDef(vleObjectProperty.Values[MsgPropTrHealth], 0), 1000000); if Data.MonHealth < 0 then Data.MonHealth := 0; - Data.MonActive := NameToBool(vleObjectProperty.Values[_lc[I_PROP_TR_MONSTER_ACTIVE]]); - Data.MonCount := Min(StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_COUNT]], 0), 64); + Data.MonActive := NameToBool(vleObjectProperty.Values[MsgPropTrMonsterActive]); + Data.MonCount := Min(StrToIntDef(vleObjectProperty.Values[MsgPropTrCount], 0), 64); if Data.MonCount < 1 then Data.MonCount := 1; - Data.MonEffect := StrToEffect(vleObjectProperty.Values[_lc[I_PROP_TR_FX_TYPE]]); - Data.MonMax := Min(StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_SPAWN_MAX]], 0), 65535); - Data.MonDelay := Min(StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_SPAWN_DELAY]], 0), 65535); + Data.MonEffect := StrToEffect(vleObjectProperty.Values[MsgPropTrFxType]); + Data.MonMax := Min(StrToIntDef(vleObjectProperty.Values[MsgPropTrSpawnMax], 0), 65535); + Data.MonDelay := Min(StrToIntDef(vleObjectProperty.Values[MsgPropTrSpawnDelay], 0), 65535); Data.MonBehav := 0; - if vleObjectProperty.Values[_lc[I_PROP_TR_MONSTER_BEHAVIOUR]] = _lc[I_PROP_TR_MONSTER_BEHAVIOUR_1] then + if vleObjectProperty.Values[MsgPropTrMonsterBehaviour] = MsgPropTrMonsterBehaviour1 then Data.MonBehav := 1; - if vleObjectProperty.Values[_lc[I_PROP_TR_MONSTER_BEHAVIOUR]] = _lc[I_PROP_TR_MONSTER_BEHAVIOUR_2] then + if vleObjectProperty.Values[MsgPropTrMonsterBehaviour] = MsgPropTrMonsterBehaviour2 then Data.MonBehav := 2; - if vleObjectProperty.Values[_lc[I_PROP_TR_MONSTER_BEHAVIOUR]] = _lc[I_PROP_TR_MONSTER_BEHAVIOUR_3] then + if vleObjectProperty.Values[MsgPropTrMonsterBehaviour] = MsgPropTrMonsterBehaviour3 then Data.MonBehav := 3; - if vleObjectProperty.Values[_lc[I_PROP_TR_MONSTER_BEHAVIOUR]] = _lc[I_PROP_TR_MONSTER_BEHAVIOUR_4] then + if vleObjectProperty.Values[MsgPropTrMonsterBehaviour] = MsgPropTrMonsterBehaviour4 then Data.MonBehav := 4; - if vleObjectProperty.Values[_lc[I_PROP_TR_MONSTER_BEHAVIOUR]] = _lc[I_PROP_TR_MONSTER_BEHAVIOUR_5] then + if vleObjectProperty.Values[MsgPropTrMonsterBehaviour] = MsgPropTrMonsterBehaviour5 then Data.MonBehav := 5; end; TRIGGER_SPAWNITEM: begin - Data.ItemType := StrToItem(vleObjectProperty.Values[_lc[I_PROP_TR_ITEM_TYPE]]); - Data.ItemOnlyDM := NameToBool(vleObjectProperty.Values[_lc[I_PROP_DM_ONLY]]); - Data.ItemFalls := NameToBool(vleObjectProperty.Values[_lc[I_PROP_ITEM_FALLS]]); - Data.ItemCount := Min(StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_COUNT]], 0), 64); + Data.ItemType := StrToItem(vleObjectProperty.Values[MsgPropTrItemType]); + Data.ItemOnlyDM := NameToBool(vleObjectProperty.Values[MsgPropDmOnly]); + Data.ItemFalls := NameToBool(vleObjectProperty.Values[MsgPropItemFalls]); + Data.ItemCount := Min(StrToIntDef(vleObjectProperty.Values[MsgPropTrCount], 0), 64); if Data.ItemCount < 1 then Data.ItemCount := 1; - Data.ItemEffect := StrToEffect(vleObjectProperty.Values[_lc[I_PROP_TR_FX_TYPE]]); - Data.ItemMax := Min(StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_SPAWN_MAX]], 0), 65535); - Data.ItemDelay := Min(StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_SPAWN_DELAY]], 0), 65535); + Data.ItemEffect := StrToEffect(vleObjectProperty.Values[MsgPropTrFxType]); + Data.ItemMax := Min(StrToIntDef(vleObjectProperty.Values[MsgPropTrSpawnMax], 0), 65535); + Data.ItemDelay := Min(StrToIntDef(vleObjectProperty.Values[MsgPropTrSpawnDelay], 0), 65535); end; TRIGGER_MUSIC: begin - s := utf2win(vleObjectProperty.Values[_lc[I_PROP_TR_MUSIC_NAME]]); + s := utf2win(vleObjectProperty.Values[MsgPropTrMusicName]); FillByte(Data.MusicName[0], 64, 0); if s <> '' then Move(s[1], Data.MusicName[0], Min(Length(s), 64)); - if vleObjectProperty.Values[_lc[I_PROP_TR_MUSIC_ACT]] = _lc[I_PROP_TR_MUSIC_ON] then + if vleObjectProperty.Values[MsgPropTrMusicAct] = MsgPropTrMusicOn then Data.MusicAction := 1 else Data.MusicAction := 0; @@ -5358,79 +5359,79 @@ begin TRIGGER_PUSH: begin Data.PushAngle := Min( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_PUSH_ANGLE]], 0), 360); + StrToIntDef(vleObjectProperty.Values[MsgPropTrPushAngle], 0), 360); Data.PushForce := Min( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_PUSH_FORCE]], 0), 255); - Data.ResetVel := NameToBool(vleObjectProperty.Values[_lc[I_PROP_TR_PUSH_RESET]]); + StrToIntDef(vleObjectProperty.Values[MsgPropTrPushForce], 0), 255); + Data.ResetVel := NameToBool(vleObjectProperty.Values[MsgPropTrPushReset]); end; TRIGGER_SCORE: begin Data.ScoreAction := 0; - if vleObjectProperty.Values[_lc[I_PROP_TR_SCORE_ACT]] = _lc[I_PROP_TR_SCORE_ACT_1] then + if vleObjectProperty.Values[MsgPropTrScoreAct] = MsgPropTrScoreAct1 then Data.ScoreAction := 1 - else if vleObjectProperty.Values[_lc[I_PROP_TR_SCORE_ACT]] = _lc[I_PROP_TR_SCORE_ACT_2] then + else if vleObjectProperty.Values[MsgPropTrScoreAct] = MsgPropTrScoreAct2 then Data.ScoreAction := 2 - else if vleObjectProperty.Values[_lc[I_PROP_TR_SCORE_ACT]] = _lc[I_PROP_TR_SCORE_ACT_3] then + else if vleObjectProperty.Values[MsgPropTrScoreAct] = MsgPropTrScoreAct3 then Data.ScoreAction := 3; Data.ScoreCount := Min(Max( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_COUNT]], 0), 0), 255); + StrToIntDef(vleObjectProperty.Values[MsgPropTrCount], 0), 0), 255); Data.ScoreTeam := 0; - if vleObjectProperty.Values[_lc[I_PROP_TR_SCORE_TEAM]] = _lc[I_PROP_TR_SCORE_TEAM_1] then + if vleObjectProperty.Values[MsgPropTrScoreTeam] = MsgPropTrScoreTeam1 then Data.ScoreTeam := 1 - else if vleObjectProperty.Values[_lc[I_PROP_TR_SCORE_TEAM]] = _lc[I_PROP_TR_SCORE_TEAM_2] then + else if vleObjectProperty.Values[MsgPropTrScoreTeam] = MsgPropTrScoreTeam2 then Data.ScoreTeam := 2 - else if vleObjectProperty.Values[_lc[I_PROP_TR_SCORE_TEAM]] = _lc[I_PROP_TR_SCORE_TEAM_3] then + else if vleObjectProperty.Values[MsgPropTrScoreTeam] = MsgPropTrScoreTeam3 then Data.ScoreTeam := 3; - Data.ScoreCon := NameToBool(vleObjectProperty.Values[_lc[I_PROP_TR_SCORE_CON]]); - Data.ScoreMsg := NameToBool(vleObjectProperty.Values[_lc[I_PROP_TR_SCORE_MSG]]); + Data.ScoreCon := NameToBool(vleObjectProperty.Values[MsgPropTrScoreCon]); + Data.ScoreMsg := NameToBool(vleObjectProperty.Values[MsgPropTrScoreMsg]); end; TRIGGER_MESSAGE: begin Data.MessageKind := 0; - if vleObjectProperty.Values[_lc[I_PROP_TR_MESSAGE_KIND]] = _lc[I_PROP_TR_MESSAGE_KIND_1] then + if vleObjectProperty.Values[MsgPropTrMessageKind] = MsgPropTrMessageKind1 then Data.MessageKind := 1; Data.MessageSendTo := 0; - if vleObjectProperty.Values[_lc[I_PROP_TR_MESSAGE_TO]] = _lc[I_PROP_TR_MESSAGE_TO_1] then + if vleObjectProperty.Values[MsgPropTrMessageTo] = MsgPropTrMessageTo1 then Data.MessageSendTo := 1 - else if vleObjectProperty.Values[_lc[I_PROP_TR_MESSAGE_TO]] = _lc[I_PROP_TR_MESSAGE_TO_2] then + else if vleObjectProperty.Values[MsgPropTrMessageTo] = MsgPropTrMessageTo2 then Data.MessageSendTo := 2 - else if vleObjectProperty.Values[_lc[I_PROP_TR_MESSAGE_TO]] = _lc[I_PROP_TR_MESSAGE_TO_3] then + else if vleObjectProperty.Values[MsgPropTrMessageTo] = MsgPropTrMessageTo3 then Data.MessageSendTo := 3 - else if vleObjectProperty.Values[_lc[I_PROP_TR_MESSAGE_TO]] = _lc[I_PROP_TR_MESSAGE_TO_4] then + else if vleObjectProperty.Values[MsgPropTrMessageTo] = MsgPropTrMessageTo4 then Data.MessageSendTo := 4 - else if vleObjectProperty.Values[_lc[I_PROP_TR_MESSAGE_TO]] = _lc[I_PROP_TR_MESSAGE_TO_5] then + else if vleObjectProperty.Values[MsgPropTrMessageTo] = MsgPropTrMessageTo5 then Data.MessageSendTo := 5; - s := utf2win(vleObjectProperty.Values[_lc[I_PROP_TR_MESSAGE_TEXT]]); + s := utf2win(vleObjectProperty.Values[MsgPropTrMessageText]); FillByte(Data.MessageText[0], 100, 0); if s <> '' then Move(s[1], Data.MessageText[0], Min(Length(s), 100)); Data.MessageTime := Min(Max( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_MESSAGE_TIME]], 0), 0), 65535); + StrToIntDef(vleObjectProperty.Values[MsgPropTrMessageTime], 0), 0), 65535); end; TRIGGER_DAMAGE: begin Data.DamageValue := Min(Max( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_DAMAGE_VALUE]], 0), 0), 65535); + StrToIntDef(vleObjectProperty.Values[MsgPropTrDamageValue], 0), 0), 65535); Data.DamageInterval := Min(Max( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_INTERVAL]], 0), 0), 65535); - s := vleObjectProperty.Values[_lc[I_PROP_TR_DAMAGE_KIND]]; - if s = _lc[I_PROP_TR_DAMAGE_KIND_3] then + StrToIntDef(vleObjectProperty.Values[MsgPropTrInterval], 0), 0), 65535); + s := vleObjectProperty.Values[MsgPropTrDamageKind]; + if s = MsgPropTrDamageKind3 then Data.DamageKind := 3 - else if s = _lc[I_PROP_TR_DAMAGE_KIND_4] then + else if s = MsgPropTrDamageKind4 then Data.DamageKind := 4 - else if s = _lc[I_PROP_TR_DAMAGE_KIND_5] then + else if s = MsgPropTrDamageKind5 then Data.DamageKind := 5 - else if s = _lc[I_PROP_TR_DAMAGE_KIND_6] then + else if s = MsgPropTrDamageKind6 then Data.DamageKind := 6 - else if s = _lc[I_PROP_TR_DAMAGE_KIND_7] then + else if s = MsgPropTrDamageKind7 then Data.DamageKind := 7 - else if s = _lc[I_PROP_TR_DAMAGE_KIND_8] then + else if s = MsgPropTrDamageKind8 then Data.DamageKind := 8 else Data.DamageKind := 0; @@ -5439,99 +5440,99 @@ begin TRIGGER_HEALTH: begin Data.HealValue := Min(Max( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_HEALTH]], 0), 0), 65535); + StrToIntDef(vleObjectProperty.Values[MsgPropTrHealth], 0), 0), 65535); Data.HealInterval := Min(Max( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_INTERVAL]], 0), 0), 65535); - Data.HealMax := NameToBool(vleObjectProperty.Values[_lc[I_PROP_TR_HEALTH_MAX]]); - Data.HealSilent := NameToBool(vleObjectProperty.Values[_lc[I_PROP_TR_SILENT]]); + StrToIntDef(vleObjectProperty.Values[MsgPropTrInterval], 0), 0), 65535); + Data.HealMax := NameToBool(vleObjectProperty.Values[MsgPropTrHealthMax]); + Data.HealSilent := NameToBool(vleObjectProperty.Values[MsgPropTrSilent]); end; TRIGGER_SHOT: begin - Data.ShotType := StrToShot(vleObjectProperty.Values[_lc[I_PROP_TR_SHOT_TYPE]]); - Data.ShotSound := NameToBool(vleObjectProperty.Values[_lc[I_PROP_TR_SHOT_SOUND]]); + Data.ShotType := StrToShot(vleObjectProperty.Values[MsgPropTrShotType]); + Data.ShotSound := NameToBool(vleObjectProperty.Values[MsgPropTrShotSound]); Data.ShotTarget := 0; - if vleObjectProperty.Values[_lc[I_PROP_TR_SHOT_TO]] = _lc[I_PROP_TR_SHOT_TO_1] then + if vleObjectProperty.Values[MsgPropTrShotTo] = MsgPropTrShotTo1 then Data.ShotTarget := 1 - else if vleObjectProperty.Values[_lc[I_PROP_TR_SHOT_TO]] = _lc[I_PROP_TR_SHOT_TO_2] then + else if vleObjectProperty.Values[MsgPropTrShotTo] = MsgPropTrShotTo2 then Data.ShotTarget := 2 - else if vleObjectProperty.Values[_lc[I_PROP_TR_SHOT_TO]] = _lc[I_PROP_TR_SHOT_TO_3] then + else if vleObjectProperty.Values[MsgPropTrShotTo] = MsgPropTrShotTo3 then Data.ShotTarget := 3 - else if vleObjectProperty.Values[_lc[I_PROP_TR_SHOT_TO]] = _lc[I_PROP_TR_SHOT_TO_4] then + else if vleObjectProperty.Values[MsgPropTrShotTo] = MsgPropTrShotTo4 then Data.ShotTarget := 4 - else if vleObjectProperty.Values[_lc[I_PROP_TR_SHOT_TO]] = _lc[I_PROP_TR_SHOT_TO_5] then + else if vleObjectProperty.Values[MsgPropTrShotTo] = MsgPropTrShotTo5 then Data.ShotTarget := 5 - else if vleObjectProperty.Values[_lc[I_PROP_TR_SHOT_TO]] = _lc[I_PROP_TR_SHOT_TO_6] then + else if vleObjectProperty.Values[MsgPropTrShotTo] = MsgPropTrShotTo6 then Data.ShotTarget := 6; Data.ShotIntSight := Min(Max( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_SHOT_SIGHT]], 0), 0), 65535); + StrToIntDef(vleObjectProperty.Values[MsgPropTrShotSight], 0), 0), 65535); Data.ShotAim := 0; - if vleObjectProperty.Values[_lc[I_PROP_TR_SHOT_AIM]] = _lc[I_PROP_TR_SHOT_AIM_1] then + if vleObjectProperty.Values[MsgPropTrShotAim] = MsgPropTrShotAim1 then Data.ShotAim := 1 - else if vleObjectProperty.Values[_lc[I_PROP_TR_SHOT_AIM]] = _lc[I_PROP_TR_SHOT_AIM_2] then + else if vleObjectProperty.Values[MsgPropTrShotAim] = MsgPropTrShotAim2 then Data.ShotAim := 2 - else if vleObjectProperty.Values[_lc[I_PROP_TR_SHOT_AIM]] = _lc[I_PROP_TR_SHOT_AIM_3] then + else if vleObjectProperty.Values[MsgPropTrShotAim] = MsgPropTrShotAim3 then Data.ShotAim := 3; Data.ShotAngle := Min( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_SHOT_ANGLE]], 0), 360); + StrToIntDef(vleObjectProperty.Values[MsgPropTrShotAngle], 0), 360); Data.ShotWait := Min(Max( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_EX_DELAY]], 0), 0), 65535); + StrToIntDef(vleObjectProperty.Values[MsgPropTrExDelay], 0), 0), 65535); Data.ShotAccuracy := Min(Max( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_SHOT_ACC]], 0), 0), 65535); + StrToIntDef(vleObjectProperty.Values[MsgPropTrShotAcc], 0), 0), 65535); Data.ShotAmmo := Min(Max( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_SHOT_AMMO]], 0), 0), 65535); + StrToIntDef(vleObjectProperty.Values[MsgPropTrShotAmmo], 0), 0), 65535); Data.ShotIntReload := Min(Max( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_SHOT_RELOAD]], 0), 0), 65535); + StrToIntDef(vleObjectProperty.Values[MsgPropTrShotReload], 0), 0), 65535); end; TRIGGER_EFFECT: begin Data.FXCount := Min(Max( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_COUNT]], 0), 0), 255); - if vleObjectProperty.Values[_lc[I_PROP_TR_EFFECT_TYPE]] = _lc[I_PROP_TR_EFFECT_PARTICLE] then + StrToIntDef(vleObjectProperty.Values[MsgPropTrCount], 0), 0), 255); + if vleObjectProperty.Values[MsgPropTrEffectType] = MsgPropTrEffectParticle then begin Data.FXType := TRIGGER_EFFECT_PARTICLE; Data.FXSubType := TRIGGER_EFFECT_SLIQUID; - if vleObjectProperty.Values[_lc[I_PROP_TR_EFFECT_SUBTYPE]] = _lc[I_PROP_TR_EFFECT_SLIQUID] then + if vleObjectProperty.Values[MsgPropTrEffectSubtype] = MsgPropTrEffectSliquid then Data.FXSubType := TRIGGER_EFFECT_SLIQUID - else if vleObjectProperty.Values[_lc[I_PROP_TR_EFFECT_SUBTYPE]] = _lc[I_PROP_TR_EFFECT_LLIQUID] then + else if vleObjectProperty.Values[MsgPropTrEffectSubtype] = MsgPropTrEffectLliquid then Data.FXSubType := TRIGGER_EFFECT_LLIQUID - else if vleObjectProperty.Values[_lc[I_PROP_TR_EFFECT_SUBTYPE]] = _lc[I_PROP_TR_EFFECT_DLIQUID] then + else if vleObjectProperty.Values[MsgPropTrEffectSubtype] = MsgPropTrEffectDliquid then Data.FXSubType := TRIGGER_EFFECT_DLIQUID - else if vleObjectProperty.Values[_lc[I_PROP_TR_EFFECT_SUBTYPE]] = _lc[I_PROP_TR_EFFECT_BLOOD] then + else if vleObjectProperty.Values[MsgPropTrEffectSubtype] = MsgPropTrEffectBlood then Data.FXSubType := TRIGGER_EFFECT_BLOOD - else if vleObjectProperty.Values[_lc[I_PROP_TR_EFFECT_SUBTYPE]] = _lc[I_PROP_TR_EFFECT_SPARK] then + else if vleObjectProperty.Values[MsgPropTrEffectSubtype] = MsgPropTrEffectSpark then Data.FXSubType := TRIGGER_EFFECT_SPARK - else if vleObjectProperty.Values[_lc[I_PROP_TR_EFFECT_SUBTYPE]] = _lc[I_PROP_TR_EFFECT_BUBBLE] then + else if vleObjectProperty.Values[MsgPropTrEffectSubtype] = MsgPropTrEffectBubble then Data.FXSubType := TRIGGER_EFFECT_BUBBLE; end else begin Data.FXType := TRIGGER_EFFECT_ANIMATION; - Data.FXSubType := StrToEffect(vleObjectProperty.Values[_lc[I_PROP_TR_EFFECT_SUBTYPE]]); + Data.FXSubType := StrToEffect(vleObjectProperty.Values[MsgPropTrEffectSubtype]); end; a := Min(Max( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_EFFECT_COLOR]], 0), 0), $FFFFFF); + StrToIntDef(vleObjectProperty.Values[MsgPropTrEffectColor], 0), 0), $FFFFFF); Data.FXColorR := a and $FF; Data.FXColorG := (a shr 8) and $FF; Data.FXColorB := (a shr 16) and $FF; - if NameToBool(vleObjectProperty.Values[_lc[I_PROP_TR_EFFECT_CENTER]]) then + if NameToBool(vleObjectProperty.Values[MsgPropTrEffectCenter]) then Data.FXPos := 0 else Data.FXPos := 1; Data.FXWait := Min(Max( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_EX_DELAY]], 0), 0), 65535); + StrToIntDef(vleObjectProperty.Values[MsgPropTrExDelay], 0), 0), 65535); Data.FXVelX := Min(Max( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_EFFECT_VELX]], 0), -128), 127); + StrToIntDef(vleObjectProperty.Values[MsgPropTrEffectVelx], 0), -128), 127); Data.FXVelY := Min(Max( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_EFFECT_VELY]], 0), -128), 127); + StrToIntDef(vleObjectProperty.Values[MsgPropTrEffectVely], 0), -128), 127); Data.FXSpreadL := Min(Max( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_EFFECT_SPL]], 0), 0), 255); + StrToIntDef(vleObjectProperty.Values[MsgPropTrEffectSpl], 0), 0), 255); Data.FXSpreadR := Min(Max( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_EFFECT_SPR]], 0), 0), 255); + StrToIntDef(vleObjectProperty.Values[MsgPropTrEffectSpr], 0), 0), 255); Data.FXSpreadU := Min(Max( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_EFFECT_SPU]], 0), 0), 255); + StrToIntDef(vleObjectProperty.Values[MsgPropTrEffectSpu], 0), 0), 255); Data.FXSpreadD := Min(Max( - StrToIntDef(vleObjectProperty.Values[_lc[I_PROP_TR_EFFECT_SPD]], 0), 0), 255); + StrToIntDef(vleObjectProperty.Values[MsgPropTrEffectSpd], 0), 0), 255); end; end; end; @@ -5552,9 +5553,9 @@ begin if i = -1 then Exit; - if Application.MessageBox(PChar(Format(_lc[I_MSG_DEL_TEXTURE_PROMT], + if Application.MessageBox(PChar(Format(MsgMsgDelTexturePromt, [SelectedTexture()])), - PChar(_lc[I_MSG_DEL_TEXTURE]), + PChar(MsgMsgDelTexture), MB_ICONQUESTION or MB_YESNO or MB_DEFBUTTON1) <> idYes then Exit; @@ -5564,7 +5565,7 @@ begin if (gPanels[a].PanelType <> 0) and (gPanels[a].TextureName = SelectedTexture()) then begin - ErrorMessageBox(_lc[I_MSG_DEL_TEXTURE_CANT]); + ErrorMessageBox(MsgMsgDelTextureCant); Exit; end; @@ -5578,7 +5579,7 @@ end; procedure TMainForm.aNewMapExecute(Sender: TObject); begin - if Application.MessageBox(PChar(_lc[I_MSG_CLEAR_MAP_PROMT]), PChar(_lc[I_MSG_CLEAR_MAP]), MB_ICONQUESTION or MB_YESNO or MB_DEFBUTTON1) = mrYes then + if Application.MessageBox(PChar(MsgMsgClearMapPromt), PChar(MsgMsgClearMap), MB_ICONQUESTION or MB_YESNO or MB_DEFBUTTON1) = mrYes then FullClear(); end; @@ -6048,11 +6049,11 @@ var begin Key := vleObjectProperty.Keys[vleObjectProperty.Row]; - if Key = _lc[I_PROP_PANEL_TYPE] then + if Key = MsgPropPanelType then begin with ChooseTypeForm, vleObjectProperty do begin // Выбор типа панели: - Caption := _lc[I_PROP_PANEL_TYPE]; + Caption := MsgPropPanelType; lbTypeSelect.Items.Clear(); for b := 0 to High(PANELNAMES) do @@ -6070,33 +6071,33 @@ begin end; end end - else if Key = _lc[I_PROP_TR_TELEPORT_TO] then + else if Key = MsgPropTrTeleportTo then SelectFlag := SELECTFLAG_TELEPORT - else if Key = _lc[I_PROP_TR_SPAWN_TO] then + else if Key = MsgPropTrSpawnTo then SelectFlag := SELECTFLAG_SPAWNPOINT - else if (Key = _lc[I_PROP_TR_DOOR_PANEL]) or - (Key = _lc[I_PROP_TR_TRAP_PANEL]) then + else if (Key = MsgPropTrDoorPanel) or + (Key = MsgPropTrTrapPanel) then SelectFlag := SELECTFLAG_DOOR - else if Key = _lc[I_PROP_TR_TEXTURE_PANEL] then + else if Key = MsgPropTrTexturePanel then begin DrawPressRect := False; SelectFlag := SELECTFLAG_TEXTURE; end - else if Key = _lc[I_PROP_TR_SHOT_PANEL] then + else if Key = MsgPropTrShotPanel then SelectFlag := SELECTFLAG_SHOTPANEL - else if Key = _lc[I_PROP_TR_LIFT_PANEL] then + else if Key = MsgPropTrLiftPanel then SelectFlag := SELECTFLAG_LIFT - else if key = _lc[I_PROP_TR_EX_MONSTER] then + else if key = MsgPropTrExMonster then SelectFlag := SELECTFLAG_MONSTER - else if Key = _lc[I_PROP_TR_EX_AREA] then + else if Key = MsgPropTrExArea then begin SelectFlag := SELECTFLAG_NONE; DrawPressRect := True; end - else if Key = _lc[I_PROP_TR_NEXT_MAP] then + else if Key = MsgPropTrNextMap then begin // Выбор следующей карты: g_ProcessResourceStr(OpenedMap, @FileName, nil, nil); - SelectMapForm.Caption := _lc[I_CAP_SELECT]; + SelectMapForm.Caption := MsgCapSelect; SelectMapForm.GetMaps(FileName); if SelectMapForm.ShowModal() = mrOK then @@ -6105,8 +6106,8 @@ begin vleObjectPropertyApply(Sender); end; end - else if (Key = _lc[I_PROP_TR_SOUND_NAME]) or - (Key = _lc[I_PROP_TR_MUSIC_NAME]) then + else if (Key = MsgPropTrSoundName) or + (Key = MsgPropTrMusicName) then begin // Выбор файла звука/музыки: AddSoundForm.OKFunction := nil; AddSoundForm.lbResourcesList.MultiSelect := False; @@ -6118,7 +6119,7 @@ begin vleObjectPropertyApply(Sender); end; end - else if Key = _lc[I_PROP_TR_ACTIVATION] then + else if Key = MsgPropTrActivation then with ActivationTypeForm, vleObjectProperty do begin // Выбор типов активации: cbPlayerCollide.Checked := Pos('PC', Values[Key]) > 0; @@ -6148,7 +6149,7 @@ begin vleObjectPropertyApply(Sender); end; end - else if Key = _lc[I_PROP_TR_KEYS] then + else if Key = MsgPropTrKeys then with KeysForm, vleObjectProperty do begin // Выбор необходимых ключей: cbRedKey.Checked := Pos('RK', Values[Key]) > 0; @@ -6175,10 +6176,10 @@ begin vleObjectPropertyApply(Sender); end; end - else if Key = _lc[I_PROP_TR_FX_TYPE] then + else if Key = MsgPropTrFxType then with ChooseTypeForm, vleObjectProperty do begin // Выбор типа эффекта: - Caption := _lc[I_CAP_FX_TYPE]; + Caption := MsgCapFxType; lbTypeSelect.Items.Clear(); for b := EFFECT_NONE to EFFECT_FIRE do @@ -6193,10 +6194,10 @@ begin vleObjectPropertyApply(Sender); end; end - else if Key = _lc[I_PROP_TR_MONSTER_TYPE] then + else if Key = MsgPropTrMonsterType then with ChooseTypeForm, vleObjectProperty do begin // Выбор типа монстра: - Caption := _lc[I_CAP_MONSTER_TYPE]; + Caption := MsgCapMonsterType; lbTypeSelect.Items.Clear(); for b := MONSTER_DEMON to MONSTER_MAN do @@ -6211,10 +6212,10 @@ begin vleObjectPropertyApply(Sender); end; end - else if Key = _lc[I_PROP_TR_ITEM_TYPE] then + else if Key = MsgPropTrItemType then with ChooseTypeForm, vleObjectProperty do begin // Выбор типа предмета: - Caption := _lc[I_CAP_ITEM_TYPE]; + Caption := MsgCapItemType; lbTypeSelect.Items.Clear(); for b := ITEM_MEDKIT_SMALL to ITEM_KEY_BLUE do @@ -6240,10 +6241,10 @@ begin vleObjectPropertyApply(Sender); end; end - else if Key = _lc[I_PROP_TR_SHOT_TYPE] then + else if Key = MsgPropTrShotType then with ChooseTypeForm, vleObjectProperty do begin // Выбор типа предмета: - Caption := _lc[I_PROP_TR_SHOT_TYPE]; + Caption := MsgPropTrShotType; lbTypeSelect.Items.Clear(); for b := TRIGGER_SHOT_PISTOL to TRIGGER_SHOT_MAX do @@ -6258,15 +6259,15 @@ begin vleObjectPropertyApply(Sender); end; end - else if Key = _lc[I_PROP_TR_EFFECT_TYPE] then + else if Key = MsgPropTrEffectType then with ChooseTypeForm, vleObjectProperty do begin // Выбор типа эффекта: - Caption := _lc[I_CAP_FX_TYPE]; + Caption := MsgCapFxType; lbTypeSelect.Items.Clear(); - lbTypeSelect.Items.Add(_lc[I_PROP_TR_EFFECT_PARTICLE]); - lbTypeSelect.Items.Add(_lc[I_PROP_TR_EFFECT_ANIMATION]); - if Values[Key] = _lc[I_PROP_TR_EFFECT_ANIMATION] then + lbTypeSelect.Items.Add(MsgPropTrEffectParticle); + lbTypeSelect.Items.Add(MsgPropTrEffectAnimation); + if Values[Key] = MsgPropTrEffectAnimation then lbTypeSelect.ItemIndex := 1 else lbTypeSelect.ItemIndex := 0; @@ -6275,19 +6276,19 @@ begin begin b := lbTypeSelect.ItemIndex; if b = 0 then - Values[Key] := _lc[I_PROP_TR_EFFECT_PARTICLE] + Values[Key] := MsgPropTrEffectParticle else - Values[Key] := _lc[I_PROP_TR_EFFECT_ANIMATION]; + Values[Key] := MsgPropTrEffectAnimation; vleObjectPropertyApply(Sender); end; end - else if Key = _lc[I_PROP_TR_EFFECT_SUBTYPE] then + else if Key = MsgPropTrEffectSubtype then with ChooseTypeForm, vleObjectProperty do begin // Выбор подтипа эффекта: - Caption := _lc[I_CAP_FX_TYPE]; + Caption := MsgCapFxType; lbTypeSelect.Items.Clear(); - if Values[_lc[I_PROP_TR_EFFECT_TYPE]] = _lc[I_PROP_TR_EFFECT_ANIMATION] then + if Values[MsgPropTrEffectType] = MsgPropTrEffectAnimation then begin for b := EFFECT_TELEPORT to EFFECT_FIRE do lbTypeSelect.Items.Add(EffectToStr(b)); @@ -6295,22 +6296,22 @@ begin lbTypeSelect.ItemIndex := StrToEffect(Values[Key]) - 1; end else begin - lbTypeSelect.Items.Add(_lc[I_PROP_TR_EFFECT_SLIQUID]); - lbTypeSelect.Items.Add(_lc[I_PROP_TR_EFFECT_LLIQUID]); - lbTypeSelect.Items.Add(_lc[I_PROP_TR_EFFECT_DLIQUID]); - lbTypeSelect.Items.Add(_lc[I_PROP_TR_EFFECT_BLOOD]); - lbTypeSelect.Items.Add(_lc[I_PROP_TR_EFFECT_SPARK]); - lbTypeSelect.Items.Add(_lc[I_PROP_TR_EFFECT_BUBBLE]); + lbTypeSelect.Items.Add(MsgPropTrEffectSliquid); + lbTypeSelect.Items.Add(MsgPropTrEffectLliquid); + lbTypeSelect.Items.Add(MsgPropTrEffectDliquid); + lbTypeSelect.Items.Add(MsgPropTrEffectBlood); + lbTypeSelect.Items.Add(MsgPropTrEffectSpark); + lbTypeSelect.Items.Add(MsgPropTrEffectBubble); lbTypeSelect.ItemIndex := TRIGGER_EFFECT_SLIQUID; - if Values[Key] = _lc[I_PROP_TR_EFFECT_LLIQUID] then + if Values[Key] = MsgPropTrEffectLliquid then lbTypeSelect.ItemIndex := TRIGGER_EFFECT_LLIQUID; - if Values[Key] = _lc[I_PROP_TR_EFFECT_DLIQUID] then + if Values[Key] = MsgPropTrEffectDliquid then lbTypeSelect.ItemIndex := TRIGGER_EFFECT_DLIQUID; - if Values[Key] = _lc[I_PROP_TR_EFFECT_BLOOD] then + if Values[Key] = MsgPropTrEffectBlood then lbTypeSelect.ItemIndex := TRIGGER_EFFECT_BLOOD; - if Values[Key] = _lc[I_PROP_TR_EFFECT_SPARK] then + if Values[Key] = MsgPropTrEffectSpark then lbTypeSelect.ItemIndex := TRIGGER_EFFECT_SPARK; - if Values[Key] = _lc[I_PROP_TR_EFFECT_BUBBLE] then + if Values[Key] = MsgPropTrEffectBubble then lbTypeSelect.ItemIndex := TRIGGER_EFFECT_BUBBLE; end; @@ -6318,26 +6319,26 @@ begin begin b := lbTypeSelect.ItemIndex; - if Values[_lc[I_PROP_TR_EFFECT_TYPE]] = _lc[I_PROP_TR_EFFECT_ANIMATION] then + if Values[MsgPropTrEffectType] = MsgPropTrEffectAnimation then Values[Key] := EffectToStr(b + 1) else begin - Values[Key] := _lc[I_PROP_TR_EFFECT_SLIQUID]; + Values[Key] := MsgPropTrEffectSliquid; if b = TRIGGER_EFFECT_LLIQUID then - Values[Key] := _lc[I_PROP_TR_EFFECT_LLIQUID]; + Values[Key] := MsgPropTrEffectLliquid; if b = TRIGGER_EFFECT_DLIQUID then - Values[Key] := _lc[I_PROP_TR_EFFECT_DLIQUID]; + Values[Key] := MsgPropTrEffectDliquid; if b = TRIGGER_EFFECT_BLOOD then - Values[Key] := _lc[I_PROP_TR_EFFECT_BLOOD]; + Values[Key] := MsgPropTrEffectBlood; if b = TRIGGER_EFFECT_SPARK then - Values[Key] := _lc[I_PROP_TR_EFFECT_SPARK]; + Values[Key] := MsgPropTrEffectSpark; if b = TRIGGER_EFFECT_BUBBLE then - Values[Key] := _lc[I_PROP_TR_EFFECT_BUBBLE]; + Values[Key] := MsgPropTrEffectBubble; end; vleObjectPropertyApply(Sender); end; end - else if Key = _lc[I_PROP_TR_EFFECT_COLOR] then + else if Key = MsgPropTrEffectColor then with vleObjectProperty do begin // Выбор цвета эффекта: ColorDialog.Color := StrToIntDef(Values[Key], 0); @@ -6347,7 +6348,7 @@ begin vleObjectPropertyApply(Sender); end; end - else if Key = _lc[I_PROP_PANEL_TEX] then + else if Key = MsgPropPanelTex then begin // Смена текстуры: vleObjectProperty.Values[Key] := SelectedTexture(); vleObjectPropertyApply(Sender); @@ -6379,7 +6380,7 @@ end; procedure TMainForm.aOpenMapExecute(Sender: TObject); begin - OpenDialog.Filter := _lc[I_FILE_FILTER_ALL]; + OpenDialog.Filter := MsgFileFilterAll; if OpenDialog.Execute() then begin @@ -6415,31 +6416,8 @@ begin end; procedure TMainForm.FormActivate(Sender: TObject); -var - lang: Integer; - config: TConfig; begin MainForm.ActiveControl := RenderPanel; - -// Язык: - if (gLanguage = '') and not (fsModal in SelectLanguageForm.FormState) then - begin - lang := SelectLanguageForm.ShowModal(); - case lang of - 1: gLanguage := LANGUAGE_ENGLISH; - 2: gLanguage := LANGUAGE_RUSSIAN; - else gLanguage := LANGUAGE_ENGLISH; - end; - - config := TConfig.CreateFile(CfgFileName); - config.WriteStr('Editor', 'Language', gLanguage); - config.SaveFile(CfgFileName); - config.Free(); - end; - - //e_WriteLog('Read language file', MSG_NOTIFY); - //g_Language_Load(EditorDir+'\data\'+gLanguage+LANGUAGE_FILE_NAME); - g_Language_Set(gLanguage); end; procedure TMainForm.aDeleteMap(Sender: TObject); @@ -6448,13 +6426,13 @@ var FileName: String; MapName: String; begin - OpenDialog.Filter := _lc[I_FILE_FILTER_WAD]; + OpenDialog.Filter := MsgFileFilterWad; if not OpenDialog.Execute() then Exit; FileName := OpenDialog.FileName; - SelectMapForm.Caption := _lc[I_CAP_REMOVE]; + SelectMapForm.Caption := MsgCapRemove; SelectMapForm.lbMapList.Items.Clear(); SelectMapForm.GetMaps(FileName); @@ -6462,7 +6440,7 @@ begin Exit; MapName := SelectMapForm.lbMapList.Items[SelectMapForm.lbMapList.ItemIndex]; - if Application.MessageBox(PChar(Format(_lc[I_MSG_DELETE_MAP_PROMT], [MapName, OpenDialog.FileName])), PChar(_lc[I_MSG_DELETE_MAP]), MB_ICONQUESTION or MB_YESNO or MB_DEFBUTTON2) <> mrYes then + if Application.MessageBox(PChar(Format(MsgMsgDeleteMapPromt, [MapName, OpenDialog.FileName])), PChar(MsgMsgDeleteMap), MB_ICONQUESTION or MB_YESNO or MB_DEFBUTTON2) <> mrYes then Exit; g_DeleteResource(FileName, '', MapName, res); @@ -6473,8 +6451,8 @@ begin end; Application.MessageBox( - PChar(Format(_lc[I_MSG_MAP_DELETED_PROMT], [MapName])), - PChar(_lc[I_MSG_MAP_DELETED]), + PChar(Format(MsgMsgMapDeletedPromt, [MapName])), + PChar(MsgMsgMapDeleted), MB_ICONINFORMATION or MB_OK or MB_DEFBUTTON1 ); @@ -6638,7 +6616,7 @@ procedure TMainForm.aSaveMapAsExecute(Sender: TObject); var idx: Integer; begin - SaveDialog.Filter := _lc[I_FILE_FILTER_WAD]; + SaveDialog.Filter := MsgFileFilterWad; if not SaveDialog.Execute() then Exit; @@ -7012,7 +6990,7 @@ begin end else begin - Application.MessageBox(PChar(_lc[I_MSG_EXEC_ERROR]), 'FIXME', MB_OK or MB_ICONERROR); + Application.MessageBox(PChar(MsgMsgExecError), 'FIXME', MB_OK or MB_ICONERROR); SysUtils.DeleteFile(newWAD); proc.Free(); end;