diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 0000000..0d79764 --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,29 @@ +История версий: + +20.04.2012: +- Опубликован исходный код под лицензией GNU General Public License v3.0 +01.02.2012 beta: +- Добавлена возможность редактирования монстров +- Бета версия (две неизвестные характеристики монстров в процессе изучения) +24.01.2012: +- Изменён фильтр в диалоге открытия файла +- Улучшен интерфейс (скроллинг заменили на вкладки) +- Добавили кнопку сворачивания +- Изменены некоторые надписи +- Для компактности сгруппировали некоторые элементы окна +upd 25.01.2012 02:25 +- Внесено ещё несколько корректировок в интерфейс +23.01.2012: +- Исправлена одна грамматическая и несколько смысловых ошибок +21.01.2012: +- Программа переименована в Doom2D DeHacker by Stas'M, наподобие похожей по функционалу программы DeHackEd для оригинального Doom-а. +- Благодаря замечаниям и предложениям от Чёрного Думера, был подкорректирован интерфейс программы +- Теперь есть две кнопки: Сохранить и Сохранить как... +- Добавлена возможность изменять звук при использовании чита IDDQD +20.01.2012: +- Стабильная версия +- Реализован желаемый минимальный функционал +- Багов в работе программы обнаружено не было +17.01.2012: +- Первый релиз (нестабильная версия) +- На сайте опубликован не был diff --git a/README.md b/README.md index bea3abf..99393f5 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ -# D2DeHacker -Doom2D DeHacker by Stas'M +# Doom2D DeHacker by Stas'M +Программа предназначена для изменения стандартных значений в игре Doom2D, тем самым позволяя создавать различные модификации игры. Пока что возможность вносить изменения доступна только для версии 1.30, но в ближайшем будущем по мере исследования версии 1.40 будет реализована поддержка и для неё. Создана специально для doom2d.org. Open Source продукт под GPL v3.0 лицензией. + +Обсуждение на форуме: http://doom2d.org/forum/viewtopic.php?f=8&t=882 \ No newline at end of file diff --git a/res/10h.png b/res/10h.png new file mode 100644 index 0000000..493b2aa Binary files /dev/null and b/res/10h.png differ diff --git a/res/20h.png b/res/20h.png new file mode 100644 index 0000000..c875012 Binary files /dev/null and b/res/20h.png differ diff --git a/res/30h.png b/res/30h.png new file mode 100644 index 0000000..ea0700b Binary files /dev/null and b/res/30h.png differ diff --git a/res/40h.png b/res/40h.png new file mode 100644 index 0000000..be0cad8 Binary files /dev/null and b/res/40h.png differ diff --git a/res/50h.png b/res/50h.png new file mode 100644 index 0000000..e8ee485 Binary files /dev/null and b/res/50h.png differ diff --git a/res/60h.png b/res/60h.png new file mode 100644 index 0000000..db39fac Binary files /dev/null and b/res/60h.png differ diff --git a/res/70h.png b/res/70h.png new file mode 100644 index 0000000..30052b7 Binary files /dev/null and b/res/70h.png differ diff --git a/res/80h.png b/res/80h.png new file mode 100644 index 0000000..76a0a49 Binary files /dev/null and b/res/80h.png differ diff --git a/res/B0h.png b/res/B0h.png new file mode 100644 index 0000000..fba7c08 Binary files /dev/null and b/res/B0h.png differ diff --git a/res/C0h.png b/res/C0h.png new file mode 100644 index 0000000..967d7aa Binary files /dev/null and b/res/C0h.png differ diff --git a/res/D0h.png b/res/D0h.png new file mode 100644 index 0000000..14daebd Binary files /dev/null and b/res/D0h.png differ diff --git a/res/doom.ico b/res/doom.ico new file mode 100644 index 0000000..7d24e2b Binary files /dev/null and b/res/doom.ico differ diff --git a/src/D2DeHacker.dpr b/src/D2DeHacker.dpr new file mode 100644 index 0000000..e892b6c --- /dev/null +++ b/src/D2DeHacker.dpr @@ -0,0 +1,33 @@ +program D2DeHacker; +{ + Doom2D DeHacker + Copyright (C) 2012 Stas'M Corp. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see +} +uses + Forms, + Unit1 in 'Unit1.pas' {MainForm}, + Unit2 in 'Unit2.pas' {FAbout}; + +{$R *.res} + +begin + Application.Initialize; + Application.MainFormOnTaskbar := True; + Application.Title := 'Doom2D DeHacker'; + Application.CreateForm(TMainForm, MainForm); + Application.CreateForm(TFAbout, FAbout); + Application.Run; +end. \ No newline at end of file diff --git a/src/D2DeHacker.dproj b/src/D2DeHacker.dproj new file mode 100644 index 0000000..be98f3b --- /dev/null +++ b/src/D2DeHacker.dproj @@ -0,0 +1,117 @@ + + + {7AE7FF8D-E337-4DD9-9970-E4D942AC5651} + 12.0 + D2DeHacker.dpr + Release + DCC32 + + + true + + + true + Base + true + + + true + Base + true + + + ..\bin\ + 00400000 + vclx;vcl;vclimg;dbrtl;Rave77VCL;bdertl;rtl;vclactnband;xmlrtl;vcldb;vcldbx;vcltouch;dsnap;dsnapcon;TeeUI;TeeDB;Tee;vclib;ibxpress;adortl;IndyCore;IndySystem;IndyProtocols;inet;intrawebdb_100_140;Intraweb_100_140;VclSmp;vclie;websnap;webdsnap;inetdb;inetdbbde;inetdbxpress;soaprtl;vclribbon;dbexpress;DbxCommonDriver;DataSnapIndy10ServerTransport;DataSnapProviderClient;DbxClientDriver;DataSnapServer;DBXInterBaseDriver;DBXMySQLDriver;dbxcds;DBXFirebirdDriver;DBXSybaseASEDriver;DBXSybaseASADriver;DBXOracleDriver;DBXMSSQLDriver;DBXInformixDriver;DBXDb2Driver;SWFlash;mstscax;rdpencom + ..\bin\D2DeHacker.exe + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias) + x86 + false + false + false + false + false + + + false + RELEASE;$(DCC_Define) + 0 + false + + + DEBUG;$(DCC_Define) + + + + MainSource + + +
MainForm
+
+ +
FAbout
+
+ + Base + + + Cfg_1 + Base + + + Cfg_2 + Base + +
+ + + Delphi.Personality.12 + + + + + False + True + False + + + True + False + 1 + 0 + 2 + 2012 + False + False + False + False + False + 1049 + 1251 + + + Stas'M Corp. + Doom2D DeHacker + 1.0.2.2012 + D2DeHacker + Copyright © Stas'M Corp. 2012 + Stas'M Corp. + D2DeHacker.exe + Doom2D DeHacker (специально для doom2d.org) + Сборка 01.02.2012 beta + http://stascorp.com + + + D2DeHacker.dpr + + + Embarcadero C++Builder Office 2000 Servers Package + Embarcadero C++Builder Office XP Servers Package + Microsoft Office 2000 Sample Automation Server Wrapper Components + Microsoft Office XP Sample Automation Server Wrapper Components + + + + 12 + +
diff --git a/src/D2DeHacker.res b/src/D2DeHacker.res new file mode 100644 index 0000000..ca61f10 Binary files /dev/null and b/src/D2DeHacker.res differ diff --git a/src/Unit1.dfm b/src/Unit1.dfm new file mode 100644 index 0000000..fa7aa0e --- /dev/null +++ b/src/Unit1.dfm @@ -0,0 +1,1908 @@ +object MainForm: TMainForm + Left = 0 + Top = 0 + ActiveControl = BtOpen + BorderIcons = [biSystemMenu, biMinimize] + BorderStyle = bsSingle + Caption = 'Doom2D DeHacker by Stas'#39'M' + ClientHeight = 55 + ClientWidth = 403 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poDesktopCenter + OnDestroy = FormDestroy + PixelsPerInch = 96 + TextHeight = 13 + object StatusBar: TStatusBar + Left = 0 + Top = 36 + Width = 403 + Height = 19 + Panels = <> + SimplePanel = True + SimpleText = #1042#1099#1073#1077#1088#1080#1090#1077' '#1092#1072#1081#1083' '#1076#1083#1103' '#1088#1077#1076#1072#1082#1090#1080#1088#1086#1074#1072#1085#1080#1103 + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 403 + Height = 38 + Align = alTop + BevelOuter = bvNone + TabOrder = 1 + object BtOpen: TButton + Left = 8 + Top = 8 + Width = 75 + Height = 21 + Caption = #1054#1090#1082#1088#1099#1090#1100 + TabOrder = 0 + OnClick = BtOpenClick + end + object BtAbout: TButton + Left = 319 + Top = 8 + Width = 75 + Height = 21 + Caption = #1054' '#1087#1088#1086#1075#1088#1072#1084#1084#1077 + TabOrder = 2 + OnClick = BtAboutClick + end + object BtClose: TButton + Left = 89 + Top = 8 + Width = 75 + Height = 21 + Caption = #1047#1072#1082#1088#1099#1090#1100 + Enabled = False + TabOrder = 1 + OnClick = BtCloseClick + end + end + object Panel2: TPanel + Left = 0 + Top = 3 + Width = 403 + Height = 33 + Align = alBottom + BevelOuter = bvNone + TabOrder = 2 + Visible = False + object BtSave: TButton + Left = 184 + Top = 6 + Width = 102 + Height = 21 + Caption = #1057#1086#1093#1088#1072#1085#1080#1090#1100 + TabOrder = 0 + OnClick = BtSaveClick + end + object BtSaveAs: TButton + Left = 292 + Top = 6 + Width = 102 + Height = 21 + Caption = #1057#1086#1093#1088#1072#1085#1080#1090#1100' '#1082#1072#1082 + TabOrder = 1 + OnClick = BtSaveAsClick + end + end + object PG: TPageControl + Left = 0 + Top = 38 + Width = 403 + Height = 400 + ActivePage = TabSheet1 + Align = alClient + TabOrder = 3 + Visible = False + object TabSheet1: TTabSheet + Caption = #1048#1085#1074#1077#1085#1090#1072#1088#1100 + object Label10: TLabel + Left = 6 + Top = 42 + Width = 112 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 100)' + end + object Label11: TLabel + Left = 200 + Top = 42 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 0)' + end + object Label12: TLabel + Left = 6 + Top = 69 + Width = 176 + Height = 13 + Caption = #1044#1086#1089#1090#1091#1087#1085#1086#1077' '#1086#1088#1091#1078#1080#1077' '#1074' '#1085#1072#1095#1072#1083#1077' '#1080#1075#1088#1099':' + end + object Label13: TLabel + Left = 200 + Top = 69 + Width = 158 + Height = 13 + Caption = #1054#1088#1091#1078#1080#1077' '#1080#1075#1088#1086#1082#1072' '#1074' '#1085#1072#1095#1072#1083#1077' '#1080#1075#1088#1099':' + end + object Label14: TLabel + Left = 200 + Top = 107 + Width = 141 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = '#1087#1080#1089#1090#1086#1083#1077#1090')' + end + object Label15: TLabel + Left = 6 + Top = 181 + Width = 183 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = '#1082#1091#1083#1072#1082' '#1080' '#1087#1080#1089#1090#1086#1083#1077#1090')' + end + object Label16: TLabel + Left = 200 + Top = 128 + Width = 190 + Height = 13 + Caption = #1055#1072#1090#1088#1086#1085#1099' '#1074' '#1087#1080#1089#1090#1086#1083#1077#1090#1077' '#1074' '#1085#1072#1095#1072#1083#1077' '#1080#1075#1088#1099':' + end + object Label17: TLabel + Left = 200 + Top = 167 + Width = 106 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 50)' + end + object Label18: TLabel + Left = 6 + Top = 208 + Width = 249 + Height = 13 + Caption = #1055#1072#1090#1088#1086#1085#1099' '#1076#1083#1103' '#1086#1089#1090#1072#1083#1100#1085#1086#1075#1086' '#1086#1088#1091#1078#1080#1103' '#1074' '#1085#1072#1095#1072#1083#1077' '#1080#1075#1088#1099':' + end + object Label19: TLabel + Left = 128 + Top = 227 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 0)' + end + object Label69: TLabel + Left = 6 + Top = 249 + Width = 178 + Height = 13 + Caption = #1054#1073#1099#1095#1085#1099#1081' '#1079#1072#1087#1072#1089' '#1082#1080#1089#1083#1086#1088#1086#1076#1072' '#1080#1075#1088#1086#1082#1072':' + end + object Label70: TLabel + Left = 128 + Top = 268 + Width = 112 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 360)' + end + object Label71: TLabel + Left = 6 + Top = 290 + Width = 223 + Height = 13 + Caption = #1054#1073#1098#1105#1084' '#1082#1080#1089#1083#1086#1088#1086#1076#1072', '#1082#1086#1090#1086#1088#1099#1081' '#1076#1072#1105#1090' '#1072#1082#1074#1072#1083#1072#1085#1075':' + end + object Label72: TLabel + Left = 128 + Top = 309 + Width = 118 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 1091)' + end + object Label8: TLabel + Left = 6 + Top = 3 + Width = 167 + Height = 13 + Caption = #1047#1076#1086#1088#1086#1074#1100#1077' '#1080#1075#1088#1086#1082#1072' '#1074' '#1085#1072#1095#1072#1083#1077' '#1080#1075#1088#1099':' + end + object Label9: TLabel + Left = 200 + Top = 3 + Width = 148 + Height = 13 + Caption = #1041#1088#1086#1085#1103' '#1080#1075#1088#1086#1082#1072' '#1074' '#1085#1072#1095#1072#1083#1077' '#1080#1075#1088#1099':' + end + object InvArmor: TSpinEdit + Left = 200 + Top = 19 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 0 + Value = 0 + end + object InvGlobalAmmo: TSpinEdit + Left = 6 + Top = 224 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 1 + Value = 0 + end + object InvHealth: TSpinEdit + Left = 6 + Top = 19 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 2 + Value = 0 + end + object InvOxygen: TSpinEdit + Left = 6 + Top = 265 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 3 + Value = 0 + end + object InvPistolAmmo: TSpinEdit + Left = 200 + Top = 144 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 4 + Value = 0 + end + object InvScubagear: TSpinEdit + Left = 6 + Top = 306 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 5 + Value = 0 + end + object InvWeapList: TCheckListBox + Left = 6 + Top = 85 + Width = 116 + Height = 95 + OnClickCheck = InvWeapListClickCheck + ItemHeight = 13 + Items.Strings = ( + #1050#1091#1083#1072#1082 + #1041#1077#1085#1079#1086#1087#1080#1083#1072 + #1055#1080#1089#1090#1086#1083#1077#1090 + #1056#1091#1078#1100#1105 + #1044#1074#1091#1089#1090#1074#1086#1083#1082#1072 + #1055#1091#1083#1077#1084#1105#1090 + #1056#1072#1082#1077#1090#1085#1080#1094#1072 + #1055#1083#1072#1079#1084#1072#1075#1072#1085 + 'BFG9000' + #1057#1091#1087#1077#1088#1087#1091#1083#1077#1084#1105#1090) + TabOrder = 6 + end + object InvWeapon: TComboBox + Left = 200 + Top = 85 + Width = 116 + Height = 21 + Style = csDropDownList + ItemIndex = 0 + TabOrder = 7 + Text = '00h: '#1050#1091#1083#1072#1082 + Items.Strings = ( + '00h: '#1050#1091#1083#1072#1082 + '01h: '#1041#1077#1085#1079#1086#1087#1080#1083#1072 + '02h: '#1055#1080#1089#1090#1086#1083#1077#1090 + '03h: '#1056#1091#1078#1100#1105 + '04h: '#1044#1074#1091#1089#1090#1074#1086#1083#1082#1072 + '05h: '#1055#1091#1083#1077#1084#1105#1090 + '06h: '#1056#1072#1082#1077#1090#1085#1080#1094#1072 + '07h: '#1055#1083#1072#1079#1084#1072#1075#1072#1085 + '08h: BFG9000' + '09h: '#1057#1091#1087#1077#1088#1087#1091#1083#1077#1084#1105#1090 + 'C0h: '#1050#1091#1083#1072#1082' ('#1073#1099#1089#1090#1088#1077#1077')' + 'FFh: '#1050#1091#1083#1072#1082' ('#1084#1077#1076#1083#1077#1085#1085#1077#1077')') + end + end + object TabSheet2: TTabSheet + Caption = #1048#1075#1088#1086#1082 + ImageIndex = 1 + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + object Label2: TLabel + Left = 6 + Top = 44 + Width = 236 + Height = 13 + Caption = #1060#1080#1079#1080#1095#1077#1089#1082#1080#1081' '#1088#1072#1079#1084#1077#1088' '#1084#1086#1076#1077#1083#1080' '#1080#1075#1088#1086#1082#1072' '#1087#1086' '#1096#1080#1088#1080#1085#1077':' + end + object Label3: TLabel + Left = 6 + Top = 85 + Width = 235 + Height = 13 + Caption = #1060#1080#1079#1080#1095#1077#1089#1082#1080#1081' '#1088#1072#1079#1084#1077#1088' '#1084#1086#1076#1077#1083#1080' '#1080#1075#1088#1086#1082#1072' '#1087#1086' '#1074#1099#1089#1086#1090#1077':' + end + object Label4: TLabel + Left = 128 + Top = 63 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 8)' + end + object Label5: TLabel + Left = 128 + Top = 104 + Width = 106 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 26)' + end + object Label6: TLabel + Left = 6 + Top = 126 + Width = 227 + Height = 13 + Caption = #1057#1090#1072#1090#1080#1095#1085#1086#1077' '#1076#1074#1080#1078#1077#1085#1080#1077' '#1080#1075#1088#1086#1082#1072' '#1074' '#1085#1072#1095#1072#1083#1077' '#1080#1075#1088#1099':' + end + object Label7: TLabel + Left = 128 + Top = 145 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 0)' + end + object Label73: TLabel + Left = 6 + Top = 3 + Width = 78 + Height = 13 + Caption = #1057#1082#1086#1088#1086#1089#1090#1100' '#1073#1077#1075#1072':' + end + object Label74: TLabel + Left = 128 + Top = 22 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 8)' + end + object Label77: TLabel + Left = 6 + Top = 167 + Width = 77 + Height = 13 + Caption = #1062#1074#1077#1090' '#1080#1075#1088#1086#1082#1072' 1:' + end + object Label78: TLabel + Left = 128 + Top = 186 + Width = 162 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 70h: '#1079#1077#1083#1105#1085#1099#1081')' + end + object Label79: TLabel + Left = 6 + Top = 208 + Width = 77 + Height = 13 + Caption = #1062#1074#1077#1090' '#1080#1075#1088#1086#1082#1072' 2:' + end + object Label80: TLabel + Left = 128 + Top = 227 + Width = 184 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 60h: '#1090#1105#1084#1085#1086'-'#1089#1077#1088#1099#1081')' + end + object MClipX: TSpinEdit + Left = 6 + Top = 60 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 0 + Value = 0 + end + object MClipY: TSpinEdit + Left = 6 + Top = 101 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 1 + Value = 0 + end + object MRunSpeed: TSpinEdit + Left = 6 + Top = 19 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 2 + Value = 0 + end + object MSlip: TSpinEdit + Left = 6 + Top = 142 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 3 + Value = 0 + end + object P1Color: TComboBox + Left = 6 + Top = 183 + Width = 116 + Height = 22 + Style = csOwnerDrawFixed + ItemIndex = 0 + TabOrder = 4 + Text = '10h' + OnDrawItem = P1ColorDrawItem + Items.Strings = ( + '10h' + '20h' + '30h' + '40h' + '50h' + '60h' + '70h' + '80h' + 'B0h' + 'C0h' + 'D0h') + end + object P2Color: TComboBox + Left = 6 + Top = 224 + Width = 116 + Height = 22 + Style = csOwnerDrawFixed + ItemIndex = 0 + TabOrder = 5 + Text = '10h' + OnDrawItem = P2ColorDrawItem + Items.Strings = ( + '10h' + '20h' + '30h' + '40h' + '50h' + '60h' + '70h' + '80h' + 'B0h' + 'C0h' + 'D0h') + end + end + object TabSheet3: TTabSheet + Caption = #1055#1077#1088#1077#1079#1072#1088#1103#1076#1082#1072' '#1086#1088#1091#1078#1080#1103 + ImageIndex = 2 + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + object Label1: TLabel + Left = 6 + Top = 86 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 5)' + end + object Label35: TLabel + Left = 147 + Top = 47 + Width = 52 + Height = 13 + Caption = #1055#1080#1089#1090#1086#1083#1077#1090':' + end + object Label37: TLabel + Left = 147 + Top = 86 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 6)' + end + object Label38: TLabel + Left = 6 + Top = 153 + Width = 106 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 18)' + end + object Label39: TLabel + Left = 6 + Top = 114 + Width = 36 + Height = 13 + Caption = #1056#1091#1078#1100#1105':' + end + object Label40: TLabel + Left = 147 + Top = 153 + Width = 106 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 36)' + end + object Label41: TLabel + Left = 147 + Top = 114 + Width = 65 + Height = 13 + Caption = #1044#1074#1091#1089#1090#1074#1086#1083#1082#1072':' + end + object Label42: TLabel + Left = 6 + Top = 219 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 2)' + end + object Label43: TLabel + Left = 6 + Top = 180 + Width = 47 + Height = 13 + Caption = #1055#1091#1083#1077#1084#1105#1090':' + end + object Label44: TLabel + Left = 147 + Top = 180 + Width = 58 + Height = 13 + Caption = #1056#1072#1082#1077#1090#1085#1080#1094#1072':' + end + object Label45: TLabel + Left = 147 + Top = 219 + Width = 106 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 12)' + end + object Label46: TLabel + Left = 6 + Top = 246 + Width = 57 + Height = 13 + Caption = #1055#1083#1072#1079#1084#1072#1075#1072#1085':' + end + object Label47: TLabel + Left = 6 + Top = 285 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 2)' + end + object Label48: TLabel + Left = 147 + Top = 246 + Width = 77 + Height = 13 + Caption = #1057#1091#1087#1077#1088#1087#1091#1083#1077#1084#1105#1090':' + end + object Label49: TLabel + Left = 147 + Top = 285 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 2)' + end + object Label66: TLabel + Left = 6 + Top = 47 + Width = 35 + Height = 13 + Caption = #1050#1091#1083#1072#1082':' + end + object Label67: TLabel + Left = 35 + Top = 352 + Width = 55 + Height = 13 + Caption = #1056#1077#1079#1077#1088#1074' (?):' + Visible = False + end + object Label68: TLabel + Left = 242 + Top = 352 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 2)' + Visible = False + end + object Label75: TLabel + Left = 6 + Top = 3 + Width = 187 + Height = 13 + Caption = #1047#1072#1076#1077#1088#1078#1082#1072' '#1087#1088#1080' '#1089#1084#1077#1085#1077' '#1086#1088#1091#1078#1080#1103' '#1080#1075#1088#1086#1082#1072':' + end + object Label76: TLabel + Left = 128 + Top = 22 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 3)' + end + object ReChain: TSpinEdit + Left = 6 + Top = 196 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 0 + Value = 0 + end + object ReDShot: TSpinEdit + Left = 147 + Top = 130 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 1 + Value = 0 + end + object ReFist: TSpinEdit + Left = 6 + Top = 63 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 2 + Value = 0 + end + object RePistol: TSpinEdit + Left = 147 + Top = 63 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 3 + Value = 0 + end + object RePlasm: TSpinEdit + Left = 6 + Top = 262 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 4 + Value = 0 + end + object ReRocket: TSpinEdit + Left = 147 + Top = 196 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 5 + Value = 0 + end + object ReSChain: TSpinEdit + Left = 147 + Top = 262 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 6 + Value = 0 + end + object ReShotgun: TSpinEdit + Left = 6 + Top = 130 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 7 + Value = 0 + end + object ReSlowFist: TSpinEdit + Left = 120 + Top = 349 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 8 + Value = 0 + Visible = False + end + object WChange: TSpinEdit + Left = 6 + Top = 19 + Width = 116 + Height = 22 + MaxValue = 255 + MinValue = 0 + TabOrder = 9 + Value = 0 + end + end + object TabSheet5: TTabSheet + Caption = #1052#1086#1085#1089#1090#1088#1099 + ImageIndex = 5 + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + object Label86: TLabel + Left = 6 + Top = 3 + Width = 98 + Height = 13 + Caption = #1042#1099#1073#1077#1088#1080#1090#1077' '#1084#1086#1085#1089#1090#1088#1072':' + end + object LMonWidth: TLabel + Left = 142 + Top = 3 + Width = 84 + Height = 13 + Caption = #1064#1080#1088#1080#1085#1072' '#1084#1086#1076#1077#1083#1080':' + end + object DMonWidth: TLabel + Left = 264 + Top = 22 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 0)' + end + object LMonHeight: TLabel + Left = 142 + Top = 43 + Width = 81 + Height = 13 + Caption = #1042#1099#1089#1086#1090#1072' '#1084#1086#1076#1077#1083#1080':' + end + object DMonHeight: TLabel + Left = 264 + Top = 62 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 0)' + end + object LMonHealth: TLabel + Left = 142 + Top = 83 + Width = 53 + Height = 13 + Caption = #1047#1076#1086#1088#1086#1074#1100#1077':' + end + object DMonHealth: TLabel + Left = 264 + Top = 102 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 0)' + end + object LMonUnknown1: TLabel + Left = 142 + Top = 123 + Width = 128 + Height = 13 + Caption = #1053#1077#1080#1079#1074#1077#1089#1090#1085#1086#1077' '#1079#1085#1072#1095#1077#1085#1080#1077' 1:' + end + object DMonUnknown1: TLabel + Left = 264 + Top = 142 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 0)' + end + object LMonSpeed: TLabel + Left = 142 + Top = 163 + Width = 52 + Height = 13 + Caption = #1057#1082#1086#1088#1086#1089#1090#1100':' + end + object DMonSpeed: TLabel + Left = 264 + Top = 182 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 0)' + end + object LMonJump: TLabel + Left = 142 + Top = 203 + Width = 84 + Height = 13 + Caption = #1042#1099#1089#1086#1090#1072' '#1087#1088#1099#1078#1082#1072':' + end + object DMonJump: TLabel + Left = 264 + Top = 222 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 0)' + end + object LMonShit: TLabel + Left = 142 + Top = 243 + Width = 97 + Height = 13 + Caption = #1050#1088#1080#1090#1080#1095#1077#1089#1082#1080#1081' '#1091#1088#1086#1085':' + end + object DMonShit: TLabel + Left = 264 + Top = 264 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 0)' + end + object LMonUnknown2: TLabel + Left = 142 + Top = 283 + Width = 128 + Height = 13 + Caption = #1053#1077#1080#1079#1074#1077#1089#1090#1085#1086#1077' '#1079#1085#1072#1095#1077#1085#1080#1077' 2:' + end + object DMonUnknown2: TLabel + Left = 264 + Top = 302 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 0)' + end + object MonLst: TListBox + Left = 3 + Top = 19 + Width = 110 + Height = 302 + ItemHeight = 13 + Items.Strings = ( + #1044#1077#1084#1086#1085 + #1041#1077#1089 + #1047#1086#1084#1073#1080 + #1057#1077#1088#1078#1072#1085#1090 + #1050#1080#1073#1077#1088#1076#1077#1084#1086#1085 + #1055#1091#1083#1077#1084#1105#1090#1095#1080#1082 + #1041#1072#1088#1086#1085' '#1072#1076#1072 + #1056#1099#1094#1072#1088#1100' '#1072#1076#1072 + #1050#1072#1082#1086#1076#1077#1084#1086#1085 + #1063#1077#1088#1077#1087 + #1040#1074#1080#1072#1073#1072#1079#1072 + #1041#1086#1083#1100#1096#1086#1081' '#1087#1072#1091#1082 + #1040#1088#1072#1093#1085#1086#1090#1088#1086#1085 + #1052#1072#1085#1082#1091#1073#1091#1089 + #1057#1082#1077#1083#1077#1090 + #1050#1086#1083#1076#1091#1085 + #1056#1099#1073#1072 + #1041#1086#1095#1082#1072 + #1056#1086#1073#1086#1090 + #1055#1088#1080#1082#1086#1083#1080#1089#1090) + TabOrder = 0 + OnClick = MonLstClick + end + object MonWidth: TSpinEdit + Left = 142 + Top = 19 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = 0 + TabOrder = 1 + Value = 0 + OnChange = MonWidthChange + end + object MonHeight: TSpinEdit + Left = 142 + Top = 59 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = 0 + TabOrder = 2 + Value = 0 + OnChange = MonHeightChange + end + object MonHealth: TSpinEdit + Left = 142 + Top = 99 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 3 + Value = 0 + OnChange = MonHealthChange + end + object MonUnknown1: TSpinEdit + Left = 142 + Top = 139 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = 0 + TabOrder = 4 + Value = 0 + OnChange = MonUnknown1Change + end + object MonSpeed: TSpinEdit + Left = 142 + Top = 179 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 5 + Value = 0 + OnChange = MonSpeedChange + end + object MonJump: TSpinEdit + Left = 142 + Top = 219 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 6 + Value = 0 + OnChange = MonJumpChange + end + object MonShit: TSpinEdit + Left = 142 + Top = 259 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 7 + Value = 0 + OnChange = MonShitChange + end + object MonUnknown2: TSpinEdit + Left = 142 + Top = 299 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = 0 + TabOrder = 8 + Value = 0 + OnChange = MonUnknown2Change + end + end + object TabSheet4: TTabSheet + Caption = #1063#1080#1090'-'#1082#1086#1076#1099 + ImageIndex = 3 + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + object Label22: TLabel + Left = 6 + Top = 18 + Width = 53 + Height = 13 + Caption = #1047#1076#1086#1088#1086#1074#1100#1077':' + end + object Label23: TLabel + Left = 175 + Top = 18 + Width = 34 + Height = 13 + Caption = #1041#1088#1086#1085#1103':' + end + object Label24: TLabel + Left = 6 + Top = 57 + Width = 112 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 200)' + end + object Label25: TLabel + Left = 175 + Top = 57 + Width = 112 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 200)' + end + object Label33: TLabel + Left = 175 + Top = 192 + Width = 124 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 30000)' + end + object Label32: TLabel + Left = 175 + Top = 154 + Width = 40 + Height = 13 + Caption = #1055#1083#1072#1079#1084#1072':' + end + object Label28: TLabel + Left = 6 + Top = 131 + Width = 124 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 30000)' + end + object Label27: TLabel + Left = 175 + Top = 93 + Width = 41 + Height = 13 + Caption = #1043#1080#1083#1100#1079#1099':' + end + object Label26: TLabel + Left = 6 + Top = 92 + Width = 49 + Height = 13 + Caption = #1055#1072#1090#1088#1086#1085#1099':' + end + object Label31: TLabel + Left = 6 + Top = 192 + Width = 124 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 30000)' + end + object Label30: TLabel + Left = 6 + Top = 153 + Width = 42 + Height = 13 + Caption = #1056#1072#1082#1077#1090#1099':' + end + object Label29: TLabel + Left = 175 + Top = 131 + Width = 124 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 30000)' + end + object Label82: TLabel + Left = 213 + Top = 258 + Width = 128 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = HAHA1)' + end + object Label34: TLabel + Left = 6 + Top = 233 + Width = 29 + Height = 13 + Caption = #1059#1088#1086#1085':' + end + object Label36: TLabel + Left = 213 + Top = 233 + Width = 112 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 400)' + end + object Label81: TLabel + Left = 6 + Top = 258 + Width = 28 + Height = 13 + Caption = #1047#1074#1091#1082':' + end + object Label83: TLabel + Left = 111 + Top = 76 + Width = 81 + Height = 13 + Caption = #1063#1080#1090'-'#1082#1086#1076' RAMBO' + Enabled = False + end + object Label84: TLabel + Left = 116 + Top = 3 + Width = 71 + Height = 13 + Caption = #1063#1080#1090'-'#1082#1086#1076' TANK' + Enabled = False + end + object Label85: TLabel + Left = 112 + Top = 211 + Width = 78 + Height = 13 + Caption = #1063#1080#1090'-'#1082#1086#1076' IDDQD' + Enabled = False + end + object TankArmor: TSpinEdit + Left = 175 + Top = 34 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 0 + Value = 0 + end + object TankHealth: TSpinEdit + Left = 6 + Top = 34 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 1 + Value = 0 + end + object RBullets: TSpinEdit + Left = 6 + Top = 108 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 2 + Value = 0 + end + object RShells: TSpinEdit + Left = 175 + Top = 108 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 3 + Value = 0 + end + object RRockets: TSpinEdit + Left = 6 + Top = 169 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 4 + Value = 0 + end + object RCells: TSpinEdit + Left = 175 + Top = 169 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 5 + Value = 0 + end + object GodDamage: TSpinEdit + Left = 91 + Top = 230 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 6 + Value = 0 + end + object IddqdSnd: TEdit + Left = 91 + Top = 255 + Width = 116 + Height = 21 + MaxLength = 5 + TabOrder = 7 + end + object Panel3: TPanel + Left = 6 + Top = 10 + Width = 106 + Height = 2 + BevelOuter = bvLowered + TabOrder = 8 + end + object Panel4: TPanel + Left = 191 + Top = 10 + Width = 108 + Height = 2 + BevelOuter = bvLowered + TabOrder = 9 + end + object Panel5: TPanel + Left = 6 + Top = 84 + Width = 101 + Height = 2 + BevelOuter = bvLowered + TabOrder = 10 + end + object Panel6: TPanel + Left = 196 + Top = 84 + Width = 103 + Height = 2 + BevelOuter = bvLowered + TabOrder = 11 + end + object Panel7: TPanel + Left = 6 + Top = 217 + Width = 102 + Height = 2 + BevelOuter = bvLowered + TabOrder = 12 + end + object Panel8: TPanel + Left = 194 + Top = 217 + Width = 105 + Height = 2 + BevelOuter = bvLowered + TabOrder = 13 + end + end + object TabSheet7: TTabSheet + Caption = #1056#1072#1079#1085#1086#1077 + ImageIndex = 6 + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 344 + object Label20: TLabel + Left = 128 + Top = 145 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 0)' + end + object Label21: TLabel + Left = 6 + Top = 126 + Width = 234 + Height = 13 + Caption = #1042#1088#1077#1084#1103' '#1076#1077#1081#1089#1090#1074#1080#1103' '#1085#1077#1091#1103#1079#1074#1080#1084#1086#1089#1090#1080' '#1074' '#1085#1072#1095#1072#1083#1077' '#1080#1075#1088#1099':' + end + object Label50: TLabel + Left = 6 + Top = 3 + Width = 288 + Height = 13 + Caption = #1048#1079#1084#1077#1085#1077#1085#1080#1077' '#1079#1076#1086#1088#1086#1074#1100#1103' '#1080#1075#1088#1086#1082#1086#1074' '#1087#1088#1080' '#1087#1086#1087#1072#1076#1072#1085#1080#1080' '#1074' '#1083#1086#1074#1091#1096#1082#1091':' + end + object Label51: TLabel + Left = 128 + Top = 22 + Width = 116 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = -100)' + end + object Label52: TLabel + Left = 128 + Top = 63 + Width = 116 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = -100)' + end + object Label53: TLabel + Left = 6 + Top = 44 + Width = 294 + Height = 13 + Caption = #1048#1079#1084#1077#1085#1077#1085#1080#1077' '#1079#1076#1086#1088#1086#1074#1100#1103' '#1084#1086#1085#1089#1090#1088#1086#1074' '#1087#1088#1080' '#1087#1086#1087#1072#1076#1072#1085#1080#1080' '#1074' '#1083#1086#1074#1091#1096#1082#1091':' + end + object Label54: TLabel + Left = 128 + Top = 104 + Width = 100 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 0)' + end + object Label55: TLabel + Left = 6 + Top = 85 + Width = 274 + Height = 13 + Caption = #1059#1088#1086#1074#1077#1085#1100' '#1073#1086#1083#1080' ('#1082#1088#1072#1089#1085#1099#1081' '#1101#1082#1088#1072#1085') '#1080#1075#1088#1086#1082#1072' '#1074' '#1085#1072#1095#1072#1083#1077' '#1080#1075#1088#1099':' + end + object Label56: TLabel + Left = 6 + Top = 207 + Width = 232 + Height = 13 + Caption = #1057#1084#1077#1097#1077#1085#1080#1077' '#1087#1086' '#1086#1089#1080' Y '#1075#1083#1072#1074#1085#1086#1075#1086' '#1084#1077#1085#1102' '#1085#1072' '#1101#1082#1088#1072#1085#1077':' + end + object Label57: TLabel + Left = 128 + Top = 226 + Width = 112 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 200)' + end + object Label58: TLabel + Left = 6 + Top = 248 + Width = 236 + Height = 13 + Caption = #1057#1084#1077#1097#1077#1085#1080#1077' '#1087#1086' '#1086#1089#1080' Y '#1080#1075#1088#1086#1074#1086#1081' '#1087#1072#1085#1077#1083#1080' '#1085#1072' '#1101#1082#1088#1072#1085#1077':' + end + object Label59: TLabel + Left = 128 + Top = 267 + Width = 112 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 200)' + end + object Label60: TLabel + Left = 6 + Top = 289 + Width = 274 + Height = 13 + Caption = #1057#1084#1077#1097#1077#1085#1080#1077' '#1087#1086' '#1086#1089#1080' X '#1080#1085#1076#1080#1082#1072#1090#1086#1088#1072' '#1082#1080#1089#1083#1086#1088#1086#1076#1072' '#1085#1072' '#1101#1082#1088#1072#1085#1077':' + end + object Label61: TLabel + Left = 128 + Top = 308 + Width = 112 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 200)' + end + object Label62: TLabel + Left = 6 + Top = 167 + Width = 294 + Height = 13 + Caption = #1056#1077#1078#1080#1084' '#1056#1101#1084#1073#1086' ('#1087#1088#1080' '#1074#1082#1083#1102#1095#1077#1085#1080#1080' '#1076#1088#1091#1075#1080#1077' '#1095#1080#1090#1099' '#1085#1077' '#1088#1072#1073#1086#1090#1072#1102#1090'):' + end + object Label63: TLabel + Left = 128 + Top = 186 + Width = 120 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = '#1074#1099#1082#1083')' + end + object Label64: TLabel + Left = 6 + Top = 330 + Width = 151 + Height = 13 + Caption = #1062#1074#1077#1090' '#1080#1085#1076#1080#1082#1072#1090#1086#1088#1072' '#1082#1080#1089#1083#1086#1088#1086#1076#1072':' + end + object Label65: TLabel + Left = 128 + Top = 349 + Width = 112 + Height = 13 + Caption = '('#1087#1086' '#1091#1084#1086#1083#1095#1072#1085#1080#1102' = 200)' + end + object ColorAero: TSpinEdit + Left = 6 + Top = 346 + Width = 116 + Height = 22 + MaxValue = 255 + MinValue = 0 + TabOrder = 0 + Value = 0 + end + object InvInvuln: TSpinEdit + Left = 6 + Top = 142 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 1 + Value = 0 + end + object MDamage: TSpinEdit + Left = 6 + Top = 101 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 2 + Value = 0 + end + object MRambo: TComboBox + Left = 6 + Top = 183 + Width = 116 + Height = 21 + Style = csDropDownList + ItemIndex = 0 + TabOrder = 3 + Text = '90h: NOP ('#1074#1099#1082#1083')' + Items.Strings = ( + '90h: NOP ('#1074#1099#1082#1083')' + '00h: '#1087#1072#1090#1088#1086#1085#1099' '#1085#1077' '#1079#1072#1082#1072#1085#1095#1080#1074#1072#1102#1090#1089#1103) + end + object PAero: TSpinEdit + Left = 6 + Top = 305 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 4 + Value = 0 + end + object PMenu: TSpinEdit + Left = 6 + Top = 223 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 5 + Value = 0 + end + object PStone: TSpinEdit + Left = 6 + Top = 264 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 6 + Value = 0 + end + object TrapMonster: TSpinEdit + Left = 6 + Top = 60 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 7 + Value = 0 + end + object TrapPlayer: TSpinEdit + Left = 6 + Top = 19 + Width = 116 + Height = 22 + MaxValue = 2147483647 + MinValue = -2147483648 + TabOrder = 8 + Value = 0 + end + end + end + object OpenDialog: TOpenDialog + Filter = #1048#1089#1087#1086#1083#1085#1103#1077#1084#1099#1077' '#1092#1072#1081#1083#1099'|*.exe' + Left = 144 + end + object PlayerColors: TImageList + Left = 256 + Bitmap = { + 494C01010B000D00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000400000003000000001002000000000000030 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000550000005500000055000000550000005500000055000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000006500000065000000650000006500000065000000650000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000055BA000055BA000055BA000055BA000055BA000055BA000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 6100000061000000610000006100000061000000610000006100000061000000 + 6100000061000000000000000000000000000000000000000000000000007D00 + 00007D0000007D0000007D0000007D0000007D0000007D0000007D0000007D00 + 00007D0000000000000000000000000000000000000000000000000000000059 + C3000059C3000059C3000059C3000059C3000059C3000059C3000059C3000059 + C3000059C3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000006D000000 + 6D0000006D0000006D0000006D0000006D0000006D0000006D0000006D000000 + 6D0000006D0000006D0000000000000000000000000000000000920000009200 + 0000920000009200000092000000920000009200000092000000920000009200 + 00009200000092000000000000000000000000000000000000000061CB000061 + CB000061CB000061CB000061CB000061CB000061CB000061CB000061CB000061 + CB000061CB000061CB0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000007900000079000000 + 7900000079000000790000007900000079000000790000007900000079000000 + 79000000790000007900000079000000000000000000AA000000AA000000AA00 + 0000AA000000AA000000AA000000AA000000AA000000AA000000AA000000AA00 + 0000AA000000AA000000AA00000000000000000000000869D3000869D3000869 + D3000869D3000869D3000869D3000869D3000869D3000869D3000869D3000869 + D3000869D3000869D3000869D300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000008200000082000000 + 8200000082000000820000008200000082000000820000008200000082000000 + 82000000820000008200000082000000000000000000BE000000BE000000BE00 + 0000BE000000BE000000BE000000BE000000BE000000BE000000BE000000BE00 + 0000BE000000BE000000BE00000000000000000000000C71DB000C71DB000C71 + DB000C71DB000C71DB000C71DB000C71DB000C71DB000C71DB000C71DB000C71 + DB000C71DB000C71DB000C71DB00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000008E0000008E0000008E000000 + 8E0000008E0000008E0000008E0000008E0000008E0000008E0000008E000000 + 8E0000008E0000008E0000008E0000008E00D3000000D3000000D3000000D300 + 0000D3000000D3000000D3000000D3000000D3000000D3000000D3000000D300 + 0000D3000000D3000000D3000000D30000001479E3001479E3001479E3001479 + E3001479E3001479E3001479E3001479E3001479E3001479E3001479E3001479 + E3001479E3001479E3001479E3001479E3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000009A0000009A0000009A000000 + 9A0000009A0000009A0000009A0000009A0000009A0000009A0000009A000000 + 9A0000009A0000009A0000009A0000009A00E7000000E7000000E7000000E700 + 0000E7000000E7000000E7000000E7000000E7000000E7000000E7000000E700 + 0000E7000000E7000000E7000000E7000000147DEB00147DEB00147DEB00147D + EB00147DEB00147DEB00147DEB00147DEB00147DEB00147DEB00147DEB00147D + EB00147DEB00147DEB00147DEB00147DEB000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000AA000000AA000000AA000000 + AA000000AA000000AA000000AA000000AA000000AA000000AA000000AA000000 + AA000000AA000000AA000000AA000000AA00FF000000FF000000FF000000FF00 + 0000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00 + 0000FF000000FF000000FF000000FF0000002082F3002082F3002082F3002082 + F3002082F3002082F3002082F3002082F3002082F3002082F3002082F3002082 + F3002082F3002082F3002082F3002082F3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000B2000000B2000000B2000000 + B2000000B2000000B2000000B2000000B2000000B2000000B2000000B2000000 + B2000000B2000000B2000000B2000000B200FF242400FF242400FF242400FF24 + 2400FF242400FF242400FF242400FF242400FF242400FF242400FF242400FF24 + 2400FF242400FF242400FF242400FF242400248EFF00248EFF00248EFF00248E + FF00248EFF00248EFF00248EFF00248EFF00248EFF00248EFF00248EFF00248E + FF00248EFF00248EFF00248EFF00248EFF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000BE000000BE000000BE000000 + BE000000BE000000BE000000BE000000BE000000BE000000BE000000BE000000 + BE000000BE000000BE000000BE000000BE00FF454500FF454500FF454500FF45 + 4500FF454500FF454500FF454500FF454500FF454500FF454500FF454500FF45 + 4500FF454500FF454500FF454500FF454500499EFF00499EFF00499EFF00499E + FF00499EFF00499EFF00499EFF00499EFF00499EFF00499EFF00499EFF00499E + FF00499EFF00499EFF00499EFF00499EFF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000C7000000C7000000C7000000 + C7000000C7000000C7000000C7000000C7000000C7000000C7000000C7000000 + C7000000C7000000C7000000C7000000C700FF656500FF656500FF656500FF65 + 6500FF656500FF656500FF656500FF656500FF656500FF656500FF656500FF65 + 6500FF656500FF656500FF656500FF6565006DAEFF006DAEFF006DAEFF006DAE + FF006DAEFF006DAEFF006DAEFF006DAEFF006DAEFF006DAEFF006DAEFF006DAE + FF006DAEFF006DAEFF006DAEFF006DAEFF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000D3000000D3000000 + D3000000D3000000D3000000D3000000D3000000D3000000D3000000D3000000 + D3000000D3000000D3000000D3000000000000000000FF828200FF828200FF82 + 8200FF828200FF828200FF828200FF828200FF828200FF828200FF828200FF82 + 8200FF828200FF828200FF82820000000000000000008ABEFF008ABEFF008ABE + FF008ABEFF008ABEFF008ABEFF008ABEFF008ABEFF008ABEFF008ABEFF008ABE + FF008ABEFF008ABEFF008ABEFF00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000DB000000DB000000 + DB000000DB000000DB000000DB000000DB000000DB000000DB000000DB000000 + DB000000DB000000DB000000DB000000000000000000FF9E9E00FF9E9E00FF9E + 9E00FF9E9E00FF9E9E00FF9E9E00FF9E9E00FF9E9E00FF9E9E00FF9E9E00FF9E + 9E00FF9E9E00FF9E9E00FF9E9E000000000000000000AACFFF00AACFFF00AACF + FF00AACFFF00AACFFF00AACFFF00AACFFF00AACFFF00AACFFF00AACFFF00AACF + FF00AACFFF00AACFFF00AACFFF00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000000000E7000000 + E7000000E7000000E7000000E7000000E7000000E7000000E7000000E7000000 + E7000000E7000000E70000000000000000000000000000000000FFB6B600FFB6 + B600FFB6B600FFB6B600FFB6B600FFB6B600FFB6B600FFB6B600FFB6B600FFB6 + B600FFB6B600FFB6B60000000000000000000000000000000000C3DBFF00C3DB + FF00C3DBFF00C3DBFF00C3DBFF00C3DBFF00C3DBFF00C3DBFF00C3DBFF00C3DB + FF00C3DBFF00C3DBFF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + EF000000EF000000EF000000EF000000EF000000EF000000EF000000EF000000 + EF000000EF00000000000000000000000000000000000000000000000000FFCF + CF00FFCFCF00FFCFCF00FFCFCF00FFCFCF00FFCFCF00FFCFCF00FFCFCF00FFCF + CF00FFCFCF00000000000000000000000000000000000000000000000000DFEB + FF00DFEBFF00DFEBFF00DFEBFF00DFEBFF00DFEBFF00DFEBFF00DFEBFF00DFEB + FF00DFEBFF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000FF000000FF000000FF000000FF000000FF000000FF000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFEBEB00FFEBEB00FFEBEB00FFEBEB00FFEBEB00FFEBEB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000009A9A9A009A9A9A009A9A9A009A9A9A009A9A9A009A9A9A000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003030300030303000303030003030300030303000303030000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000008200C0008200C0008200C0008200C0008200C0008200C000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003C4D65003C4D65003C4D65003C4D65003C4D65003C4D65000000 + 000000000000000000000000000000000000000000000000000000000000A2A2 + A200A2A2A200A2A2A200A2A2A200A2A2A200A2A2A200A2A2A200A2A2A200A2A2 + A200A2A2A2000000000000000000000000000000000000000000000000003434 + 3400343434003434340034343400343434003434340034343400343434003434 + 3400343434000000000000000000000000000000000000000000000000000C30 + 18000C3018000C3018000C3018000C3018000C3018000C3018000C3018000C30 + 18000C3018000000000000000000000000000000000000000000000000004155 + 6900415569004155690041556900415569004155690041556900415569004155 + 6900415569000000000000000000000000000000000000000000A6A6A600A6A6 + A600A6A6A600A6A6A600A6A6A600A6A6A600A6A6A600A6A6A600A6A6A600A6A6 + A600A6A6A600A6A6A600000000000000000000000000000000003C3C3C003C3C + 3C003C3C3C003C3C3C003C3C3C003C3C3C003C3C3C003C3C3C003C3C3C003C3C + 3C003C3C3C003C3C3C0000000000000000000000000000000000144120001441 + 2000144120001441200014412000144120001441200014412000144120001441 + 2000144120001441200000000000000000000000000000000000455D7100455D + 7100455D7100455D7100455D7100455D7100455D7100455D7100455D7100455D + 7100455D7100455D7100000000000000000000000000AAAAAA00AAAAAA00AAAA + AA00AAAAAA00AAAAAA00AAAAAA00AAAAAA00AAAAAA00AAAAAA00AAAAAA00AAAA + AA00AAAAAA00AAAAAA00AAAAAA00000000000000000045454500454545004545 + 4500454545004545450045454500454545004545450045454500454545004545 + 4500454545004545450045454500000000000000000020552800205528002055 + 2800205528002055280020552800205528002055280020552800205528002055 + 280020552800205528002055280000000000000000004D6579004D6579004D65 + 79004D6579004D6579004D6579004D6579004D6579004D6579004D6579004D65 + 79004D6579004D6579004D6579000000000000000000B2B2B200B2B2B200B2B2 + B200B2B2B200B2B2B200B2B2B200B2B2B200B2B2B200B2B2B200B2B2B200B2B2 + B200B2B2B200B2B2B200B2B2B200000000000000000049494900494949004949 + 4900494949004949490049494900494949004949490049494900494949004949 + 4900494949004949490049494900000000000000000024653400246534002465 + 3400246534002465340024653400246534002465340024653400246534002465 + 3400246534002465340024653400000000000000000055697D0055697D005569 + 7D0055697D0055697D0055697D0055697D0055697D0055697D0055697D005569 + 7D0055697D0055697D0055697D0000000000B6B6B600B6B6B600B6B6B600B6B6 + B600B6B6B600B6B6B600B6B6B600B6B6B600B6B6B600B6B6B600B6B6B600B6B6 + B600B6B6B600B6B6B600B6B6B600B6B6B6005555550055555500555555005555 + 5500555555005555550055555500555555005555550055555500555555005555 + 55005555550055555500555555005555550030753C0030753C0030753C003075 + 3C0030753C0030753C0030753C0030753C0030753C0030753C0030753C003075 + 3C0030753C0030753C0030753C0030753C005D7186005D7186005D7186005D71 + 86005D7186005D7186005D7186005D7186005D7186005D7186005D7186005D71 + 86005D7186005D7186005D7186005D718600BEBEBE00BEBEBE00BEBEBE00BEBE + BE00BEBEBE00BEBEBE00BEBEBE00BEBEBE00BEBEBE00BEBEBE00BEBEBE00BEBE + BE00BEBEBE00BEBEBE00BEBEBE00BEBEBE005959590059595900595959005959 + 5900595959005959590059595900595959005959590059595900595959005959 + 5900595959005959590059595900595959003882450038824500388245003882 + 4500388245003882450038824500388245003882450038824500388245003882 + 45003882450038824500388245003882450061758A0061758A0061758A006175 + 8A0061758A0061758A0061758A0061758A0061758A0061758A0061758A006175 + 8A0061758A0061758A0061758A0061758A00C3C3C300C3C3C300C3C3C300C3C3 + C300C3C3C300C3C3C300C3C3C300C3C3C300C3C3C300C3C3C300C3C3C300C3C3 + C300C3C3C300C3C3C300C3C3C300C3C3C3006161610061616100616161006161 + 6100616161006161610061616100616161006161610061616100616161006161 + 6100616161006161610061616100616161003C924D003C924D003C924D003C92 + 4D003C924D003C924D003C924D003C924D003C924D003C924D003C924D003C92 + 4D003C924D003C924D003C924D003C924D00697D9200697D9200697D9200697D + 9200697D9200697D9200697D9200697D9200697D9200697D9200697D9200697D + 9200697D9200697D9200697D9200697D9200C7C7C700C7C7C700C7C7C700C7C7 + C700C7C7C700C7C7C700C7C7C700C7C7C700C7C7C700C7C7C700C7C7C700C7C7 + C700C7C7C700C7C7C700C7C7C700C7C7C7006969690069696900696969006969 + 6900696969006969690069696900696969006969690069696900696969006969 + 69006969690069696900696969006969690045A2550045A2550045A2550045A2 + 550045A2550045A2550045A2550045A2550045A2550045A2550045A2550045A2 + 550045A2550045A2550045A2550045A255006D829A006D829A006D829A006D82 + 9A006D829A006D829A006D829A006D829A006D829A006D829A006D829A006D82 + 9A006D829A006D829A006D829A006D829A00CFCFCF00CFCFCF00CFCFCF00CFCF + CF00CFCFCF00CFCFCF00CFCFCF00CFCFCF00CFCFCF00CFCFCF00CFCFCF00CFCF + CF00CFCFCF00CFCFCF00CFCFCF00CFCFCF006D6D6D006D6D6D006D6D6D006D6D + 6D006D6D6D006D6D6D006D6D6D006D6D6D006D6D6D006D6D6D006D6D6D006D6D + 6D006D6D6D006D6D6D006D6D6D006D6D6D004DAA5D004DAA5D004DAA5D004DAA + 5D004DAA5D004DAA5D004DAA5D004DAA5D004DAA5D004DAA5D004DAA5D004DAA + 5D004DAA5D004DAA5D004DAA5D004DAA5D00758AA200758AA200758AA200758A + A200758AA200758AA200758AA200758AA200758AA200758AA200758AA200758A + A200758AA200758AA200758AA200758AA200D3D3D300D3D3D300D3D3D300D3D3 + D300D3D3D300D3D3D300D3D3D300D3D3D300D3D3D300D3D3D300D3D3D300D3D3 + D300D3D3D300D3D3D300D3D3D300D3D3D3007575750075757500757575007575 + 7500757575007575750075757500757575007575750075757500757575007575 + 75007575750075757500757575007575750059BA650059BA650059BA650059BA + 650059BA650059BA650059BA650059BA650059BA650059BA650059BA650059BA + 650059BA650059BA650059BA650059BA65007D8EAA007D8EAA007D8EAA007D8E + AA007D8EAA007D8EAA007D8EAA007D8EAA007D8EAA007D8EAA007D8EAA007D8E + AA007D8EAA007D8EAA007D8EAA007D8EAA0000000000DBDBDB00DBDBDB00DBDB + DB00DBDBDB00DBDBDB00DBDBDB00DBDBDB00DBDBDB00DBDBDB00DBDBDB00DBDB + DB00DBDBDB00DBDBDB00DBDBDB0000000000000000007D7D7D007D7D7D007D7D + 7D007D7D7D007D7D7D007D7D7D007D7D7D007D7D7D007D7D7D007D7D7D007D7D + 7D007D7D7D007D7D7D007D7D7D00000000000000000061C76D0061C76D0061C7 + 6D0061C76D0061C76D0061C76D0061C76D0061C76D0061C76D0061C76D0061C7 + 6D0061C76D0061C76D0061C76D0000000000000000007D96AA007D96AA007D96 + AA007D96AA007D96AA007D96AA007D96AA007D96AA007D96AA007D96AA007D96 + AA007D96AA007D96AA007D96AA000000000000000000DFDFDF00DFDFDF00DFDF + DF00DFDFDF00DFDFDF00DFDFDF00DFDFDF00DFDFDF00DFDFDF00DFDFDF00DFDF + DF00DFDFDF00DFDFDF00DFDFDF0000000000000000007D7D7D007D7D7D007D7D + 7D007D7D7D007D7D7D007D7D7D007D7D7D007D7D7D007D7D7D007D7D7D007D7D + 7D007D7D7D007D7D7D007D7D7D00000000000000000069D7710069D7710069D7 + 710069D7710069D7710069D7710069D7710069D7710069D7710069D7710069D7 + 710069D7710069D7710069D771000000000000000000869EB200869EB200869E + B200869EB200869EB200869EB200869EB200869EB200869EB200869EB200869E + B200869EB200869EB200869EB200000000000000000000000000E3E3E300E3E3 + E300E3E3E300E3E3E300E3E3E300E3E3E300E3E3E300E3E3E300E3E3E300E3E3 + E300E3E3E300E3E3E30000000000000000000000000000000000868686008686 + 8600868686008686860086868600868686008686860086868600868686008686 + 860086868600868686000000000000000000000000000000000071E3790071E3 + 790071E3790071E3790071E3790071E3790071E3790071E3790071E3790071E3 + 790071E3790071E37900000000000000000000000000000000008EA6BA008EA6 + BA008EA6BA008EA6BA008EA6BA008EA6BA008EA6BA008EA6BA008EA6BA008EA6 + BA008EA6BA008EA6BA000000000000000000000000000000000000000000EBEB + EB00EBEBEB00EBEBEB00EBEBEB00EBEBEB00EBEBEB00EBEBEB00EBEBEB00EBEB + EB00EBEBEB000000000000000000000000000000000000000000000000008E8E + 8E008E8E8E008E8E8E008E8E8E008E8E8E008E8E8E008E8E8E008E8E8E008E8E + 8E008E8E8E0000000000000000000000000000000000000000000000000079EF + 7D0079EF7D0079EF7D0079EF7D0079EF7D0079EF7D0079EF7D0079EF7D0079EF + 7D0079EF7D0000000000000000000000000000000000000000000000000096AA + C30096AAC30096AAC30096AAC30096AAC30096AAC30096AAC30096AAC30096AA + C30096AAC3000000000000000000000000000000000000000000000000000000 + 000000000000EFEFEF00EFEFEF00EFEFEF00EFEFEF00EFEFEF00EFEFEF000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000009292920092929200929292009292920092929200929292000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007DFF86007DFF86007DFF86007DFF86007DFF86007DFF86000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000009EB2C7009EB2C7009EB2C7009EB2C7009EB2C7009EB2C7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004949AE004949AE004949AE004949AE004949AE004949AE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000550000005500000055000000550000005500000055000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000618ED300618ED300618ED300618ED300618ED300618ED3000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000001430380014303800143038001430380014303800143038000000 + 0000000000000000000000000000000000000000000000000000000000004D4D + B2004D4DB2004D4DB2004D4DB2004D4DB2004D4DB2004D4DB2004D4DB2004D4D + B2004D4DB2000000000000000000000000000000000000000000000000000000 + 5900000059000000590000005900000059000000590000005900000059000000 + 5900000059000000000000000000000000000000000000000000000000006592 + D7006592D7006592D7006592D7006592D7006592D7006592D7006592D7006592 + D7006592D7000000000000000000000000000000000000000000000000001838 + 4100183841001838410018384100183841001838410018384100183841001838 + 41001838410000000000000000000000000000000000000000005959BA005959 + BA005959BA005959BA005959BA005959BA005959BA005959BA005959BA005959 + BA005959BA005959BA0000000000000000000000000000000000000061000000 + 6100000061000000610000006100000061000000610000006100000061000000 + 61000000610000006100000000000000000000000000000000006D9ADB006D9A + DB006D9ADB006D9ADB006D9ADB006D9ADB006D9ADB006D9ADB006D9ADB006D9A + DB006D9ADB006D9ADB0000000000000000000000000000000000203C4D00203C + 4D00203C4D00203C4D00203C4D00203C4D00203C4D00203C4D00203C4D00203C + 4D00203C4D00203C4D000000000000000000000000006161BE006161BE006161 + BE006161BE006161BE006161BE006161BE006161BE006161BE006161BE006161 + BE006161BE006161BE006161BE00000000000000000008086500080865000808 + 6500080865000808650008086500080865000808650008086500080865000808 + 6500080865000808650008086500000000000000000075A2E30075A2E30075A2 + E30075A2E30075A2E30075A2E30075A2E30075A2E30075A2E30075A2E30075A2 + E30075A2E30075A2E30075A2E300000000000000000024455D0024455D002445 + 5D0024455D0024455D0024455D0024455D0024455D0024455D0024455D002445 + 5D0024455D0024455D0024455D0000000000000000006969C3006969C3006969 + C3006969C3006969C3006969C3006969C3006969C3006969C3006969C3006969 + C3006969C3006969C3006969C300000000000000000008086D0008086D000808 + 6D0008086D0008086D0008086D0008086D0008086D0008086D0008086D000808 + 6D0008086D0008086D0008086D0000000000000000007DAAEB007DAAEB007DAA + EB007DAAEB007DAAEB007DAAEB007DAAEB007DAAEB007DAAEB007DAAEB007DAA + EB007DAAEB007DAAEB007DAAEB000000000000000000284D6500284D6500284D + 6500284D6500284D6500284D6500284D6500284D6500284D6500284D6500284D + 6500284D6500284D6500284D6500000000006D6DC7006D6DC7006D6DC7006D6D + C7006D6DC7006D6DC7006D6DC7006D6DC7006D6DC7006D6DC7006D6DC7006D6D + C7006D6DC7006D6DC7006D6DC7006D6DC7000808710008087100080871000808 + 7100080871000808710008087100080871000808710008087100080871000808 + 71000808710008087100080871000808710082AEEF0082AEEF0082AEEF0082AE + EF0082AEEF0082AEEF0082AEEF0082AEEF0082AEEF0082AEEF0082AEEF0082AE + EF0082AEEF0082AEEF0082AEEF0082AEEF003055710030557100305571003055 + 7100305571003055710030557100305571003055710030557100305571003055 + 7100305571003055710030557100305571007575CF007575CF007575CF007575 + CF007575CF007575CF007575CF007575CF007575CF007575CF007575CF007575 + CF007575CF007575CF007575CF007575CF000C0C79000C0C79000C0C79000C0C + 79000C0C79000C0C79000C0C79000C0C79000C0C79000C0C79000C0C79000C0C + 79000C0C79000C0C79000C0C79000C0C79008AB6F7008AB6F7008AB6F7008AB6 + F7008AB6F7008AB6F7008AB6F7008AB6F7008AB6F7008AB6F7008AB6F7008AB6 + F7008AB6F7008AB6F7008AB6F7008AB6F70034597D0034597D0034597D003459 + 7D0034597D0034597D0034597D0034597D0034597D0034597D0034597D003459 + 7D0034597D0034597D0034597D0034597D007D7DD3007D7DD3007D7DD3007D7D + D3007D7DD3007D7DD3007D7DD3007D7DD3007D7DD3007D7DD3007D7DD3007D7D + D3007D7DD3007D7DD3007D7DD3007D7DD30014147D0014147D0014147D001414 + 7D0014147D0014147D0014147D0014147D0014147D0014147D0014147D001414 + 7D0014147D0014147D0014147D0014147D0092BEFF0092BEFF0092BEFF0092BE + FF0092BEFF0092BEFF0092BEFF0092BEFF0092BEFF0092BEFF0092BEFF0092BE + FF0092BEFF0092BEFF0092BEFF0092BEFF003861860038618600386186003861 + 8600386186003861860038618600386186003861860038618600386186003861 + 8600386186003861860038618600386186008282DB008282DB008282DB008282 + DB008282DB008282DB008282DB008282DB008282DB008282DB008282DB008282 + DB008282DB008282DB008282DB008282DB001818820018188200181882001818 + 8200181882001818820018188200181882001818820018188200181882001818 + 820018188200181882001818820018188200A2C3FF00A2C3FF00A2C3FF00A2C3 + FF00A2C3FF00A2C3FF00A2C3FF00A2C3FF00A2C3FF00A2C3FF00A2C3FF00A2C3 + FF00A2C3FF00A2C3FF00A2C3FF00A2C3FF003C658E003C658E003C658E003C65 + 8E003C658E003C658E003C658E003C658E003C658E003C658E003C658E003C65 + 8E003C658E003C658E003C658E003C658E008A8ADF008A8ADF008A8ADF008A8A + DF008A8ADF008A8ADF008A8ADF008A8ADF008A8ADF008A8ADF008A8ADF008A8A + DF008A8ADF008A8ADF008A8ADF008A8ADF002020860020208600202086002020 + 8600202086002020860020208600202086002020860020208600202086002020 + 860020208600202086002020860020208600AAC7FF00AAC7FF00AAC7FF00AAC7 + FF00AAC7FF00AAC7FF00AAC7FF00AAC7FF00AAC7FF00AAC7FF00AAC7FF00AAC7 + FF00AAC7FF00AAC7FF00AAC7FF00AAC7FF004169960041699600416996004169 + 9600416996004169960041699600416996004169960041699600416996004169 + 9600416996004169960041699600416996009696E3009696E3009696E3009696 + E3009696E3009696E3009696E3009696E3009696E3009696E3009696E3009696 + E3009696E3009696E3009696E3009696E30024248E0024248E0024248E002424 + 8E0024248E0024248E0024248E0024248E0024248E0024248E0024248E002424 + 8E0024248E0024248E0024248E0024248E00B2CFFF00B2CFFF00B2CFFF00B2CF + FF00B2CFFF00B2CFFF00B2CFFF00B2CFFF00B2CFFF00B2CFFF00B2CFFF00B2CF + FF00B2CFFF00B2CFFF00B2CFFF00B2CFFF0045719E0045719E0045719E004571 + 9E0045719E0045719E0045719E0045719E0045719E0045719E0045719E004571 + 9E0045719E0045719E0045719E0045719E00000000009E9EEB009E9EEB009E9E + EB009E9EEB009E9EEB009E9EEB009E9EEB009E9EEB009E9EEB009E9EEB009E9E + EB009E9EEB009E9EEB009E9EEB00000000000000000028289200282892002828 + 9200282892002828920028289200282892002828920028289200282892002828 + 92002828920028289200282892000000000000000000BED7FF00BED7FF00BED7 + FF00BED7FF00BED7FF00BED7FF00BED7FF00BED7FF00BED7FF00BED7FF00BED7 + FF00BED7FF00BED7FF00BED7FF0000000000000000004975AA004975AA004975 + AA004975AA004975AA004975AA004975AA004975AA004975AA004975AA004975 + AA004975AA004975AA004975AA000000000000000000A6A6EB00A6A6EB00A6A6 + EB00A6A6EB00A6A6EB00A6A6EB00A6A6EB00A6A6EB00A6A6EB00A6A6EB00A6A6 + EB00A6A6EB00A6A6EB00A6A6EB00000000000000000030309A0030309A003030 + 9A0030309A0030309A0030309A0030309A0030309A0030309A0030309A003030 + 9A0030309A0030309A0030309A000000000000000000C3DBFF00C3DBFF00C3DB + FF00C3DBFF00C3DBFF00C3DBFF00C3DBFF00C3DBFF00C3DBFF00C3DBFF00C3DB + FF00C3DBFF00C3DBFF00C3DBFF0000000000000000004D7DAE004D7DAE004D7D + AE004D7DAE004D7DAE004D7DAE004D7DAE004D7DAE004D7DAE004D7DAE004D7D + AE004D7DAE004D7DAE004D7DAE00000000000000000000000000AEAEF300AEAE + F300AEAEF300AEAEF300AEAEF300AEAEF300AEAEF300AEAEF300AEAEF300AEAE + F300AEAEF300AEAEF3000000000000000000000000000000000038389E003838 + 9E0038389E0038389E0038389E0038389E0038389E0038389E0038389E003838 + 9E0038389E0038389E0000000000000000000000000000000000CFDFFF00CFDF + FF00CFDFFF00CFDFFF00CFDFFF00CFDFFF00CFDFFF00CFDFFF00CFDFFF00CFDF + FF00CFDFFF00CFDFFF0000000000000000000000000000000000557DB600557D + B600557DB600557DB600557DB600557DB600557DB600557DB600557DB600557D + B600557DB600557DB6000000000000000000000000000000000000000000B6B6 + F700B6B6F700B6B6F700B6B6F700B6B6F700B6B6F700B6B6F700B6B6F700B6B6 + F700B6B6F7000000000000000000000000000000000000000000000000003C3C + A6003C3CA6003C3CA6003C3CA6003C3CA6003C3CA6003C3CA6003C3CA6003C3C + A6003C3CA600000000000000000000000000000000000000000000000000DBE7 + FF00DBE7FF00DBE7FF00DBE7FF00DBE7FF00DBE7FF00DBE7FF00DBE7FF00DBE7 + FF00DBE7FF000000000000000000000000000000000000000000000000005982 + BE005982BE005982BE005982BE005982BE005982BE005982BE005982BE005982 + BE005982BE000000000000000000000000000000000000000000000000000000 + 000000000000C3C3FF00C3C3FF00C3C3FF00C3C3FF00C3C3FF00C3C3FF000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004141AA004141AA004141AA004141AA004141AA004141AA000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000E3EBFF00E3EBFF00E3EBFF00E3EBFF00E3EBFF00E3EBFF000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005D8AC7005D8AC7005D8AC7005D8AC7005D8AC7005D8AC7000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000040000000300000000100010000000000800100000000000000000000 + 000000000000000000000000FFFFFF00F81FF81FF81F0000E007E007E0070000 + C003C003C0030000800180018001000080018001800100000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000080018001800100008001800180010000C003C003C0030000 + E007E007E0070000F81FF81FF81F0000F81FF81FF81FF81FE007E007E007E007 + C003C003C003C003800180018001800180018001800180010000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000080018001800180018001800180018001C003C003C003C003 + E007E007E007E007F81FF81FF81FF81FF81FF81FF81FF81FE007E007E007E007 + C003C003C003C003800180018001800180018001800180010000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000080018001800180018001800180018001C003C003C003C003 + E007E007E007E007F81FF81FF81FF81F00000000000000000000000000000000 + 000000000000} + end + object SaveDialog: TSaveDialog + Filter = #1048#1089#1087#1086#1083#1085#1103#1077#1084#1099#1077' '#1092#1072#1081#1083#1099'|*.exe' + Left = 200 + end +end diff --git a/src/Unit1.pas b/src/Unit1.pas new file mode 100644 index 0000000..5e3e66a --- /dev/null +++ b/src/Unit1.pas @@ -0,0 +1,1261 @@ +unit Unit1; +{ + Doom2D DeHacker / Main Unit + Copyright (C) 2012 Stas'M Corp. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see +} +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, CategoryButtons, StdCtrls, CheckLst, ExtCtrls, ComCtrls, Spin, Unit2, + ImgList; + +type + TMainForm = class(TForm) + BtOpen: TButton; + BtAbout: TButton; + OpenDialog: TOpenDialog; + Label2: TLabel; + MClipX: TSpinEdit; + Label3: TLabel; + MClipY: TSpinEdit; + Label4: TLabel; + Label5: TLabel; + Label6: TLabel; + MSlip: TSpinEdit; + Label7: TLabel; + StatusBar: TStatusBar; + Panel1: TPanel; + Label8: TLabel; + Label9: TLabel; + Label10: TLabel; + Label11: TLabel; + InvHealth: TSpinEdit; + InvArmor: TSpinEdit; + Label12: TLabel; + InvWeapList: TCheckListBox; + InvWeapon: TComboBox; + Label13: TLabel; + Label14: TLabel; + Label15: TLabel; + Label16: TLabel; + InvPistolAmmo: TSpinEdit; + Label17: TLabel; + Label18: TLabel; + InvGlobalAmmo: TSpinEdit; + Label19: TLabel; + InvInvuln: TSpinEdit; + Label20: TLabel; + Label21: TLabel; + Label22: TLabel; + Label23: TLabel; + Label24: TLabel; + Label25: TLabel; + TankHealth: TSpinEdit; + TankArmor: TSpinEdit; + Label26: TLabel; + Label27: TLabel; + Label28: TLabel; + Label29: TLabel; + RBullets: TSpinEdit; + RShells: TSpinEdit; + Label30: TLabel; + RRockets: TSpinEdit; + Label31: TLabel; + Label32: TLabel; + RCells: TSpinEdit; + Label33: TLabel; + Label34: TLabel; + Label36: TLabel; + GodDamage: TSpinEdit; + Label35: TLabel; + Label37: TLabel; + RePistol: TSpinEdit; + Label38: TLabel; + ReShotgun: TSpinEdit; + Label39: TLabel; + Label40: TLabel; + ReDShot: TSpinEdit; + Label41: TLabel; + Label42: TLabel; + ReChain: TSpinEdit; + Label43: TLabel; + Label44: TLabel; + ReRocket: TSpinEdit; + Label45: TLabel; + Label46: TLabel; + RePlasm: TSpinEdit; + Label47: TLabel; + Label48: TLabel; + ReSChain: TSpinEdit; + Label49: TLabel; + Label50: TLabel; + Label51: TLabel; + Label52: TLabel; + Label53: TLabel; + Label54: TLabel; + Label55: TLabel; + TrapPlayer: TSpinEdit; + TrapMonster: TSpinEdit; + MDamage: TSpinEdit; + Label56: TLabel; + PMenu: TSpinEdit; + Label57: TLabel; + Label58: TLabel; + PStone: TSpinEdit; + Label59: TLabel; + Label60: TLabel; + PAero: TSpinEdit; + Label61: TLabel; + MRambo: TComboBox; + Label62: TLabel; + Label63: TLabel; + Label64: TLabel; + ColorAero: TSpinEdit; + Label65: TLabel; + Panel2: TPanel; + BtSave: TButton; + BtClose: TButton; + Label1: TLabel; + Label66: TLabel; + ReFist: TSpinEdit; + Label67: TLabel; + ReSlowFist: TSpinEdit; + Label68: TLabel; + Label69: TLabel; + InvOxygen: TSpinEdit; + Label70: TLabel; + Label71: TLabel; + InvScubagear: TSpinEdit; + Label72: TLabel; + Label73: TLabel; + MRunSpeed: TSpinEdit; + Label74: TLabel; + Label75: TLabel; + WChange: TSpinEdit; + Label76: TLabel; + P1Color: TComboBox; + Label77: TLabel; + Label78: TLabel; + P2Color: TComboBox; + Label79: TLabel; + Label80: TLabel; + PlayerColors: TImageList; + SaveDialog: TSaveDialog; + BtSaveAs: TButton; + IddqdSnd: TEdit; + Label81: TLabel; + Label82: TLabel; + PG: TPageControl; + TabSheet1: TTabSheet; + TabSheet2: TTabSheet; + TabSheet3: TTabSheet; + TabSheet4: TTabSheet; + TabSheet7: TTabSheet; + Panel3: TPanel; + Panel4: TPanel; + Panel5: TPanel; + Label83: TLabel; + Panel6: TPanel; + Label84: TLabel; + Label85: TLabel; + Panel7: TPanel; + Panel8: TPanel; + TabSheet5: TTabSheet; + MonLst: TListBox; + Label86: TLabel; + LMonWidth: TLabel; + MonWidth: TSpinEdit; + DMonWidth: TLabel; + MonHeight: TSpinEdit; + LMonHeight: TLabel; + DMonHeight: TLabel; + MonHealth: TSpinEdit; + LMonHealth: TLabel; + DMonHealth: TLabel; + MonUnknown1: TSpinEdit; + LMonUnknown1: TLabel; + DMonUnknown1: TLabel; + MonSpeed: TSpinEdit; + LMonSpeed: TLabel; + DMonSpeed: TLabel; + MonJump: TSpinEdit; + LMonJump: TLabel; + DMonJump: TLabel; + MonShit: TSpinEdit; + LMonShit: TLabel; + DMonShit: TLabel; + MonUnknown2: TSpinEdit; + LMonUnknown2: TLabel; + DMonUnknown2: TLabel; + procedure BtOpenClick(Sender: TObject); + procedure BtSaveClick(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure BtCloseClick(Sender: TObject); + procedure BtAboutClick(Sender: TObject); + procedure P1ColorDrawItem(Control: TWinControl; Index: Integer; + Rect: TRect; State: TOwnerDrawState); + procedure P2ColorDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; + State: TOwnerDrawState); + procedure InvWeapListClickCheck(Sender: TObject); + procedure BtSaveAsClick(Sender: TObject); + procedure MonLstClick(Sender: TObject); + procedure MonWidthChange(Sender: TObject); + procedure MonHeightChange(Sender: TObject); + procedure MonHealthChange(Sender: TObject); + procedure MonUnknown1Change(Sender: TObject); + procedure MonSpeedChange(Sender: TObject); + procedure MonJumpChange(Sender: TObject); + procedure MonShitChange(Sender: TObject); + procedure MonUnknown2Change(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +type + MonData = record + Width: DWORD; + Height: DWORD; + Health: Integer; + Val1: DWORD; + Speed: Integer; + Jump: Integer; + Shit: Integer; + Val2: DWORD; + end; + +var + MainForm: TMainForm; + FStrm: TFileStream; + MonArray: Array[0..19] of MonData; + +implementation + +{$R *.dfm} + +procedure TMainForm.BtCloseClick(Sender: TObject); +begin + PG.Visible := False; + Panel2.Visible := False; + ClientHeight := 55; + BtClose.Enabled := False; + StatusBar.SimpleText := ': '; + FStrm.Free; +end; + +procedure TMainForm.FormDestroy(Sender: TObject); +begin + if BtClose.Enabled then FStrm.Free; +end; + +procedure TMainForm.InvWeapListClickCheck(Sender: TObject); +var + W: Word; +begin + W := 0; + W := (W shl 1) or Byte(MainForm.InvWeapList.Checked[9]); + W := (W shl 1) or Byte(MainForm.InvWeapList.Checked[8]); + W := (W shl 1) or Byte(MainForm.InvWeapList.Checked[7]); + W := (W shl 1) or Byte(MainForm.InvWeapList.Checked[6]); + W := (W shl 1) or Byte(MainForm.InvWeapList.Checked[5]); + W := (W shl 1) or Byte(MainForm.InvWeapList.Checked[4]); + W := (W shl 1) or Byte(MainForm.InvWeapList.Checked[3]); + W := (W shl 1) or Byte(MainForm.InvWeapList.Checked[2]); + W := (W shl 1) or Byte(MainForm.InvWeapList.Checked[1]); + W := (W shl 1) or Byte(MainForm.InvWeapList.Checked[0]); + if W = 0 then MessageBox(Handle, '! '+ + ' , , .', + '', mb_IconWarning or mb_Ok); +end; + +procedure TMainForm.MonHealthChange(Sender: TObject); +begin + MonArray[MonLst.ItemIndex].Health := MonHealth.Value; +end; + +procedure TMainForm.MonHeightChange(Sender: TObject); +begin + MonArray[MonLst.ItemIndex].Height := MonHeight.Value; +end; + +procedure TMainForm.MonJumpChange(Sender: TObject); +begin + MonArray[MonLst.ItemIndex].Jump := MonJump.Value; +end; + +procedure TMainForm.MonLstClick(Sender: TObject); +begin + case MonLst.ItemIndex of + 0: begin + LMonWidth.Caption := ' '; + LMonHeight.Caption := ' '; + LMonHealth.Caption := ' '; + LMonSpeed.Caption := ' '; + LMonJump.Caption := ' '; + LMonShit.Caption := ' '; + DMonWidth.Caption := '( = 15)'; + DMonHeight.Caption := '( = 28)'; + DMonHealth.Caption := '( = 60)'; + DMonUnknown1.Caption := '( = 20)'; + DMonSpeed.Caption := '( = 7)'; + DMonJump.Caption := '( = 10)'; + DMonShit.Caption := '( = 0)'; + DMonUnknown2.Caption := '( = 10)'; + end; + 1: begin + LMonWidth.Caption := ' '; + LMonHeight.Caption := ' '; + LMonHealth.Caption := ' '; + LMonSpeed.Caption := ' '; + LMonJump.Caption := ' '; + LMonShit.Caption := ' '; + DMonWidth.Caption := '( = 10)'; + DMonHeight.Caption := '( = 28)'; + DMonHealth.Caption := '( = 25)'; + DMonUnknown1.Caption := '( = 15)'; + DMonSpeed.Caption := '( = 3)'; + DMonJump.Caption := '( = 10)'; + DMonShit.Caption := '( = 30)'; + DMonUnknown2.Caption := '( = 0)'; + end; + 2: begin + LMonWidth.Caption := ' '; + LMonHeight.Caption := ' '; + LMonHealth.Caption := ' '; + LMonSpeed.Caption := ' '; + LMonJump.Caption := ' '; + LMonShit.Caption := ' '; + DMonWidth.Caption := '( = 10)'; + DMonHeight.Caption := '( = 28)'; + DMonHealth.Caption := '( = 15)'; + DMonUnknown1.Caption := '( = 10)'; + DMonSpeed.Caption := '( = 3)'; + DMonJump.Caption := '( = 10)'; + DMonShit.Caption := '( = 30)'; + DMonUnknown2.Caption := '( = 0)'; + end; + 3: begin + LMonWidth.Caption := ' '; + LMonHeight.Caption := ' '; + LMonHealth.Caption := ' '; + LMonSpeed.Caption := ' '; + LMonJump.Caption := ' '; + LMonShit.Caption := ' '; + DMonWidth.Caption := '( = 10)'; + DMonHeight.Caption := '( = 28)'; + DMonHealth.Caption := '( = 20)'; + DMonUnknown1.Caption := '( = 10)'; + DMonSpeed.Caption := '( = 3)'; + DMonJump.Caption := '( = 10)'; + DMonShit.Caption := '( = 30)'; + DMonUnknown2.Caption := '( = 0)'; + end; + 4: begin + LMonWidth.Caption := ' '; + LMonHeight.Caption := ' '; + LMonHealth.Caption := ' '; + LMonSpeed.Caption := ' '; + LMonJump.Caption := ' '; + LMonShit.Caption := ' '; + DMonWidth.Caption := '( = 20)'; + DMonHeight.Caption := '( = 55)'; + DMonHealth.Caption := '( = 500)'; + DMonUnknown1.Caption := '( = 70)'; + DMonSpeed.Caption := '( = 5)'; + DMonJump.Caption := '( = 10)'; + DMonShit.Caption := '( = 0)'; + DMonUnknown2.Caption := '( = 50)'; + end; + 5: begin + LMonWidth.Caption := ' '; + LMonHeight.Caption := ' '; + LMonHealth.Caption := ' '; + LMonSpeed.Caption := ' '; + LMonJump.Caption := ' '; + LMonShit.Caption := ' '; + DMonWidth.Caption := '( = 12)'; + DMonHeight.Caption := '( = 28)'; + DMonHealth.Caption := '( = 60)'; + DMonUnknown1.Caption := '( = 20)'; + DMonSpeed.Caption := '( = 3)'; + DMonJump.Caption := '( = 10)'; + DMonShit.Caption := '( = 30)'; + DMonUnknown2.Caption := '( = 10)'; + end; + 6: begin + LMonWidth.Caption := ' '; + LMonHeight.Caption := ' '; + LMonHealth.Caption := ' '; + LMonSpeed.Caption := ' '; + LMonJump.Caption := ' '; + LMonShit.Caption := ' '; + DMonWidth.Caption := '( = 12)'; + DMonHeight.Caption := '( = 32)'; + DMonHealth.Caption := '( = 150)'; + DMonUnknown1.Caption := '( = 40)'; + DMonSpeed.Caption := '( = 3)'; + DMonJump.Caption := '( = 10)'; + DMonShit.Caption := '( = 0)'; + DMonUnknown2.Caption := '( = 30)'; + end; + 7: begin + LMonWidth.Caption := ' '; + LMonHeight.Caption := ' '; + LMonHealth.Caption := ' '; + LMonSpeed.Caption := ' '; + LMonJump.Caption := ' '; + LMonShit.Caption := ' '; + DMonWidth.Caption := '( = 12)'; + DMonHeight.Caption := '( = 32)'; + DMonHealth.Caption := '( = 75)'; + DMonUnknown1.Caption := '( = 40)'; + DMonSpeed.Caption := '( = 3)'; + DMonJump.Caption := '( = 10)'; + DMonShit.Caption := '( = 0)'; + DMonUnknown2.Caption := '( = 30)'; + end; + 8: begin + LMonWidth.Caption := ' '; + LMonHeight.Caption := ' '; + LMonHealth.Caption := ' '; + LMonSpeed.Caption := ' '; + LMonJump.Caption := ' '; + LMonShit.Caption := ' '; + DMonWidth.Caption := '( = 15)'; + DMonHeight.Caption := '( = 28)'; + DMonHealth.Caption := '( = 100)'; + DMonUnknown1.Caption := '( = 10)'; + DMonSpeed.Caption := '( = 4)'; + DMonJump.Caption := '( = 4)'; + DMonShit.Caption := '( = 0)'; + DMonUnknown2.Caption := '( = 0)'; + end; + 9: begin + LMonWidth.Caption := ' '; + LMonHeight.Caption := ' '; + LMonHealth.Caption := ' '; + LMonSpeed.Caption := ' '; + LMonJump.Caption := ' '; + LMonShit.Caption := ' '; + DMonWidth.Caption := '( = 8)'; + DMonHeight.Caption := '( = 18)'; + DMonHealth.Caption := '( = 60)'; + DMonUnknown1.Caption := '( = 10)'; + DMonSpeed.Caption := '( = 4)'; + DMonJump.Caption := '( = 4)'; + DMonShit.Caption := '( = 0)'; + DMonUnknown2.Caption := '( = 0)'; + end; + 10: begin + LMonWidth.Caption := ' '; + LMonHeight.Caption := ' '; + LMonHealth.Caption := ' '; + LMonSpeed.Caption := ' '; + LMonJump.Caption := ' '; + LMonShit.Caption := ' '; + DMonWidth.Caption := '( = 15)'; + DMonHeight.Caption := '( = 28)'; + DMonHealth.Caption := '( = 100)'; + DMonUnknown1.Caption := '( = 10)'; + DMonSpeed.Caption := '( = 4)'; + DMonJump.Caption := '( = 4)'; + DMonShit.Caption := '( = 0)'; + DMonUnknown2.Caption := '( = 0)'; + end; + 11: begin + LMonWidth.Caption := ' '; + LMonHeight.Caption := ' '; + LMonHealth.Caption := ' '; + LMonSpeed.Caption := ' '; + LMonJump.Caption := ' '; + LMonShit.Caption := ' '; + DMonWidth.Caption := '( = 64)'; + DMonHeight.Caption := '( = 50)'; + DMonHealth.Caption := '( = 500)'; + DMonUnknown1.Caption := '( = 70)'; + DMonSpeed.Caption := '( = 4)'; + DMonJump.Caption := '( = 10)'; + DMonShit.Caption := '( = 0)'; + DMonUnknown2.Caption := '( = 50)'; + end; + 12: begin + LMonWidth.Caption := ' '; + LMonHeight.Caption := ' '; + LMonHealth.Caption := ' '; + LMonSpeed.Caption := ' '; + LMonJump.Caption := ' '; + LMonShit.Caption := ' '; + DMonWidth.Caption := '( = 25)'; + DMonHeight.Caption := '( = 27)'; + DMonHealth.Caption := '( = 150)'; + DMonUnknown1.Caption := '( = 20)'; + DMonSpeed.Caption := '( = 4)'; + DMonJump.Caption := '( = 10)'; + DMonShit.Caption := '( = 0)'; + DMonUnknown2.Caption := '( = 0)'; + end; + 13: begin + LMonWidth.Caption := ' '; + LMonHeight.Caption := ' '; + LMonHealth.Caption := ' '; + LMonSpeed.Caption := ' '; + LMonJump.Caption := ' '; + LMonShit.Caption := ' '; + DMonWidth.Caption := '( = 18)'; + DMonHeight.Caption := '( = 30)'; + DMonHealth.Caption := '( = 200)'; + DMonUnknown1.Caption := '( = 40)'; + DMonSpeed.Caption := '( = 3)'; + DMonJump.Caption := '( = 7)'; + DMonShit.Caption := '( = 0)'; + DMonUnknown2.Caption := '( = 20)'; + end; + 14: begin + LMonWidth.Caption := ' '; + LMonHeight.Caption := ' '; + LMonHealth.Caption := ' '; + LMonSpeed.Caption := ' '; + LMonJump.Caption := ' '; + LMonShit.Caption := ' '; + DMonWidth.Caption := '( = 17)'; + DMonHeight.Caption := '( = 36)'; + DMonHealth.Caption := '( = 200)'; + DMonUnknown1.Caption := '( = 40)'; + DMonSpeed.Caption := '( = 6)'; + DMonJump.Caption := '( = 11)'; + DMonShit.Caption := '( = 0)'; + DMonUnknown2.Caption := '( = 20)'; + end; + 15: begin + LMonWidth.Caption := ' '; + LMonHeight.Caption := ' '; + LMonHealth.Caption := ' '; + LMonSpeed.Caption := ' '; + LMonJump.Caption := ' '; + LMonShit.Caption := ' '; + DMonWidth.Caption := '( = 17)'; + DMonHeight.Caption := '( = 36)'; + DMonHealth.Caption := '( = 150)'; + DMonUnknown1.Caption := '( = 30)'; + DMonSpeed.Caption := '( = 7)'; + DMonJump.Caption := '( = 12)'; + DMonShit.Caption := '( = 0)'; + DMonUnknown2.Caption := '( = 10)'; + end; + 16: begin + LMonWidth.Caption := ' '; + LMonHeight.Caption := ' '; + LMonHealth.Caption := ' '; + LMonSpeed.Caption := ' '; + LMonJump.Caption := ' '; + LMonShit.Caption := ' '; + DMonWidth.Caption := '( = 5)'; + DMonHeight.Caption := '( = 5)'; + DMonHealth.Caption := '( = 35)'; + DMonUnknown1.Caption := '( = 20)'; + DMonSpeed.Caption := '( = 14)'; + DMonJump.Caption := '( = 6)'; + DMonShit.Caption := '( = 0)'; + DMonUnknown2.Caption := '( = 10)'; + end; + 17: begin + LMonWidth.Caption := ' '; + LMonHeight.Caption := ' '; + LMonHealth.Caption := ' '; + LMonSpeed.Caption := ' '; + LMonJump.Caption := ' '; + LMonShit.Caption := ' '; + DMonWidth.Caption := '( = 5)'; + DMonHeight.Caption := '( = 17)'; + DMonHealth.Caption := '( = 20)'; + DMonUnknown1.Caption := '( = 0)'; + DMonSpeed.Caption := '( = 7)'; + DMonJump.Caption := '( = 6)'; + DMonShit.Caption := '( = 0)'; + DMonUnknown2.Caption := '( = 0)'; + end; + 18: begin + LMonWidth.Caption := ' '; + LMonHeight.Caption := ' '; + LMonHealth.Caption := ' '; + LMonSpeed.Caption := ' '; + LMonJump.Caption := ' '; + LMonShit.Caption := ' '; + DMonWidth.Caption := '( = 17)'; + DMonHeight.Caption := '( = 38)'; + DMonHealth.Caption := '( = 20)'; + DMonUnknown1.Caption := '( = 40)'; + DMonSpeed.Caption := '( = 3)'; + DMonJump.Caption := '( = 6)'; + DMonShit.Caption := '( = 0)'; + DMonUnknown2.Caption := '( = 20)'; + end; + 19: begin + LMonWidth.Caption := ' '; + LMonHeight.Caption := ' '; + LMonHealth.Caption := ' '; + LMonSpeed.Caption := ' '; + LMonJump.Caption := ' '; + LMonShit.Caption := ' '; + DMonWidth.Caption := '( = 8)'; + DMonHeight.Caption := '( = 26)'; + DMonHealth.Caption := '( = 400)'; + DMonUnknown1.Caption := '( = 70)'; + DMonSpeed.Caption := '( = 8)'; + DMonJump.Caption := '( = 10)'; + DMonShit.Caption := '( = 30)'; + DMonUnknown2.Caption := '( = 50)'; + end; + end; + MonWidth.Value := MonArray[MonLst.ItemIndex].Width; + MonHeight.Value := MonArray[MonLst.ItemIndex].Height; + MonHealth.Value := MonArray[MonLst.ItemIndex].Health; + MonUnknown1.Value := MonArray[MonLst.ItemIndex].Val1; + MonSpeed.Value := MonArray[MonLst.ItemIndex].Speed; + MonJump.Value := MonArray[MonLst.ItemIndex].Jump; + MonShit.Value := MonArray[MonLst.ItemIndex].Shit; + MonUnknown2.Value := MonArray[MonLst.ItemIndex].Val2; +end; + +procedure TMainForm.MonShitChange(Sender: TObject); +begin + MonArray[MonLst.ItemIndex].Shit := MonShit.Value; +end; + +procedure TMainForm.MonSpeedChange(Sender: TObject); +begin + MonArray[MonLst.ItemIndex].Speed := MonSpeed.Value; +end; + +procedure TMainForm.MonUnknown1Change(Sender: TObject); +begin + MonArray[MonLst.ItemIndex].Val1 := MonUnknown1.Value; +end; + +procedure TMainForm.MonUnknown2Change(Sender: TObject); +begin + MonArray[MonLst.ItemIndex].Val2 := MonUnknown2.Value; +end; + +procedure TMainForm.MonWidthChange(Sender: TObject); +begin + MonArray[MonLst.ItemIndex].Width := MonWidth.Value; +end; + +procedure GetValues; +var + I: Integer; + W: Word; + B: Byte; + Buf: Pointer; +begin + // Starting health value + FStrm.Seek(45001, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.InvHealth.Value := I; + // Starting armor value + FStrm.Seek(45008, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.InvArmor.Value := I; + // Starting weapon + FStrm.Seek(45028, soFromBeginning); + FStrm.ReadBuffer(B, 1); + case B of + 0: MainForm.InvWeapon.ItemIndex := 0; + 1: MainForm.InvWeapon.ItemIndex := 1; + 2: MainForm.InvWeapon.ItemIndex := 2; + 3: MainForm.InvWeapon.ItemIndex := 3; + 4: MainForm.InvWeapon.ItemIndex := 4; + 5: MainForm.InvWeapon.ItemIndex := 5; + 6: MainForm.InvWeapon.ItemIndex := 6; + 7: MainForm.InvWeapon.ItemIndex := 7; + 8: MainForm.InvWeapon.ItemIndex := 8; + 9: MainForm.InvWeapon.ItemIndex := 9; + 192: MainForm.InvWeapon.ItemIndex := 10; + 255: MainForm.InvWeapon.ItemIndex := 11; + else MainForm.InvWeapon.Text := IntToHex(B, 1) + 'h: '; + end; + // Starting available weapons + FStrm.Seek(45023, soFromBeginning); + FStrm.ReadBuffer(W, 2); + MainForm.InvWeapList.Checked[0] := Boolean(W and 1); + MainForm.InvWeapList.Checked[1] := Boolean((W shr 1) and 1); + MainForm.InvWeapList.Checked[2] := Boolean((W shr 2) and 1); + MainForm.InvWeapList.Checked[3] := Boolean((W shr 3) and 1); + MainForm.InvWeapList.Checked[4] := Boolean((W shr 4) and 1); + MainForm.InvWeapList.Checked[5] := Boolean((W shr 5) and 1); + MainForm.InvWeapList.Checked[6] := Boolean((W shr 6) and 1); + MainForm.InvWeapList.Checked[7] := Boolean((W shr 7) and 1); + MainForm.InvWeapList.Checked[8] := Boolean((W shr 8) and 1); + MainForm.InvWeapList.Checked[9] := Boolean((W shr 9) and 1); + // Starting bullets value + FStrm.Seek(45032, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.InvPistolAmmo.Value := I; + // Ammo for all starting weapons + FStrm.Seek(45039, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.InvGlobalAmmo.Value := I; + // Starting invulnerability value (time) + FStrm.Seek(44956, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.InvInvuln.Value := I; + // Oxygene value + FStrm.Seek(45015, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.InvOxygen.Value := I; + // Oxygene full + FStrm.Seek(47270, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.InvScubagear.Value := I; + // Player speed + FStrm.Seek(44795, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.MRunSpeed.Value := I; + // Clipping value X + FStrm.Seek(44942, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.MClipX.Value := I; + // Clipping value Y + FStrm.Seek(44949, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.MClipY.Value := I; + // Starting movement (horisontal) static + FStrm.Seek(44935, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.MSlip.Value := I; + // Player 1 color + FStrm.Seek(86738, soFromBeginning); + FStrm.ReadBuffer(B, 1); + case B of + 16: MainForm.P1Color.ItemIndex := 0; + 32: MainForm.P1Color.ItemIndex := 1; + 48: MainForm.P1Color.ItemIndex := 2; + 64: MainForm.P1Color.ItemIndex := 3; + 80: MainForm.P1Color.ItemIndex := 4; + 96: MainForm.P1Color.ItemIndex := 5; + 112: MainForm.P1Color.ItemIndex := 6; + 128: MainForm.P1Color.ItemIndex := 7; + 176: MainForm.P1Color.ItemIndex := 8; + 192: MainForm.P1Color.ItemIndex := 9; + 208: MainForm.P1Color.ItemIndex := 10; + else MainForm.P1Color.Text := IntToHex(B, 1) + 'h ?'; + end; + // Player 2 color + FStrm.Seek(86745, soFromBeginning); + FStrm.ReadBuffer(B, 1); + case B of + 16: MainForm.P2Color.ItemIndex := 0; + 32: MainForm.P2Color.ItemIndex := 1; + 48: MainForm.P2Color.ItemIndex := 2; + 64: MainForm.P2Color.ItemIndex := 3; + 80: MainForm.P2Color.ItemIndex := 4; + 96: MainForm.P2Color.ItemIndex := 5; + 112: MainForm.P2Color.ItemIndex := 6; + 128: MainForm.P2Color.ItemIndex := 7; + 176: MainForm.P2Color.ItemIndex := 8; + 192: MainForm.P2Color.ItemIndex := 9; + 208: MainForm.P2Color.ItemIndex := 10; + else MainForm.P2Color.Text := IntToHex(B, 1) + 'h ?'; + end; + // TANK word, health value + FStrm.Seek(80903, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.TankHealth.Value := I; + // TANK word, armor value + FStrm.Seek(80893, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.TankArmor.Value := I; + // RAMBO word, ammo bullets value + FStrm.Seek(81133, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.RBullets.Value := I; + // RAMBO word, ammo shells value + FStrm.Seek(81123, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.RShells.Value := I; + // RAMBO word, ammo rockets value + FStrm.Seek(81113, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.RRockets.Value := I; + // RAMBO word, ammo cells value + FStrm.Seek(81103, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.RCells.Value := I; + // IDDQD word, damage value + FStrm.Seek(80802, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.GodDamage.Value := I; + // IDDQD word, sound sample + FStrm.Seek(130144, soFromBeginning); + Buf := AllocMem(5); + FStrm.ReadBuffer(Buf^, 5); + MainForm.IddqdSnd.Text := PAnsiChar(Buf); + FreeMem(Buf, 5); + // Weapon change speed + FStrm.Seek(44533, soFromBeginning); + FStrm.ReadBuffer(B, 1); + MainForm.WChange.Value := B; + // fist reload time + FStrm.Seek(133352, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.ReFist.Value := I; + // reserved + FStrm.Seek(133356, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.ReSlowFist.Value := I; + // pistol reload time + FStrm.Seek(133360, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.RePistol.Value := I; + // shotgun reload time + FStrm.Seek(133364, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.ReShotgun.Value := I; + // double shotgun reload time + FStrm.Seek(133368, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.ReDShot.Value := I; + // chaingun reload time + FStrm.Seek(133372, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.ReChain.Value := I; + // rocket launcher reload time + FStrm.Seek(133376, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.ReRocket.Value := I; + // plasma gun reload time + FStrm.Seek(133380, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.RePlasm.Value := I; + // super chaingun reload time + FStrm.Seek(133388, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.ReSChain.Value := I; + // Trap hurts players + FStrm.Seek(45277, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.TrapPlayer.Value := I; + // Trap hurts monsters + FStrm.Seek(70281, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.TrapMonster.Value := I; + // Starting hurt value + FStrm.Seek(44984, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.MDamage.Value := I; + // always unlimited ammo + FStrm.Seek(81093, soFromBeginning); + FStrm.ReadBuffer(I, 4); + case I of + 0: MainForm.MRambo.ItemIndex := 1; + 144: MainForm.MRambo.ItemIndex := 0; + else MainForm.MRambo.Text := IntToHex(I, 4) + 'h: '; + end; + // menu position + FStrm.Seek(84733, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.PMenu.Value := I; + // stone position + FStrm.Seek(99411, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.PStone.Value := I; + // oxygene indicator position + FStrm.Seek(99556, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.PAero.Value := I; + // oxygene indicator color + FStrm.Seek(99619, soFromBeginning); + FStrm.ReadBuffer(I, 4); + MainForm.ColorAero.Value := I; + // monsters + FStrm.Seek(134460, soFromBeginning); + for I := 0 to 19 do begin + FStrm.ReadBuffer(MonArray[I].Width, 4); + FStrm.ReadBuffer(MonArray[I].Height, 4); + FStrm.ReadBuffer(MonArray[I].Health, 4); + FStrm.ReadBuffer(MonArray[I].Val1, 4); + FStrm.ReadBuffer(MonArray[I].Speed, 4); + FStrm.ReadBuffer(MonArray[I].Jump, 4); + FStrm.ReadBuffer(MonArray[I].Shit, 4); + FStrm.ReadBuffer(MonArray[I].Val2, 4); + end; +end; + +procedure StoreValues; +var + I: Integer; + W: Word; + B: Byte; + A: PAnsiChar; +begin + // Starting health value + FStrm.Seek(45001, soFromBeginning); + I := MainForm.InvHealth.Value; + FStrm.WriteBuffer(I, 4); + // Starting armor value + FStrm.Seek(45008, soFromBeginning); + I := MainForm.InvArmor.Value; + FStrm.WriteBuffer(I, 4); + // Starting weapon + FStrm.Seek(45028, soFromBeginning); + case MainForm.InvWeapon.ItemIndex of + 0: B := 0; + 1: B := 1; + 2: B := 2; + 3: B := 3; + 4: B := 4; + 5: B := 5; + 6: B := 6; + 7: B := 7; + 8: B := 8; + 9: B := 9; + 10: B := 192; + 11: B := 255; + else B := 2; + end; + FStrm.WriteBuffer(B, 1); + // Starting available weapons + FStrm.Seek(45023, soFromBeginning); + W := 0; + W := (W shl 1) or Byte(MainForm.InvWeapList.Checked[9]); + W := (W shl 1) or Byte(MainForm.InvWeapList.Checked[8]); + W := (W shl 1) or Byte(MainForm.InvWeapList.Checked[7]); + W := (W shl 1) or Byte(MainForm.InvWeapList.Checked[6]); + W := (W shl 1) or Byte(MainForm.InvWeapList.Checked[5]); + W := (W shl 1) or Byte(MainForm.InvWeapList.Checked[4]); + W := (W shl 1) or Byte(MainForm.InvWeapList.Checked[3]); + W := (W shl 1) or Byte(MainForm.InvWeapList.Checked[2]); + W := (W shl 1) or Byte(MainForm.InvWeapList.Checked[1]); + W := (W shl 1) or Byte(MainForm.InvWeapList.Checked[0]); + FStrm.WriteBuffer(W, 2); + // Starting bullets value + FStrm.Seek(45032, soFromBeginning); + I := MainForm.InvPistolAmmo.Value; + FStrm.WriteBuffer(I, 4); + // Ammo for all starting weapons + FStrm.Seek(45039, soFromBeginning); + I := MainForm.InvGlobalAmmo.Value; + FStrm.WriteBuffer(I, 4); + // Starting invulnerability value (time) + FStrm.Seek(44956, soFromBeginning); + I := MainForm.InvInvuln.Value; + FStrm.WriteBuffer(I, 4); + // Oxygene value + FStrm.Seek(45015, soFromBeginning); + I := MainForm.InvOxygen.Value; + FStrm.WriteBuffer(I, 4); + // Oxygene full + FStrm.Seek(47270, soFromBeginning); + I := MainForm.InvScubagear.Value; + FStrm.WriteBuffer(I, 4); + // Player speed + FStrm.Seek(44795, soFromBeginning); + I := MainForm.MRunSpeed.Value; + FStrm.WriteBuffer(I, 4); + // Clipping value X + FStrm.Seek(44942, soFromBeginning); + I := MainForm.MClipX.Value; + FStrm.WriteBuffer(I, 4); + // Clipping value Y + FStrm.Seek(44949, soFromBeginning); + I := MainForm.MClipY.Value; + FStrm.WriteBuffer(I, 4); + // Starting movement (horisontal) static + FStrm.Seek(44935, soFromBeginning); + I := MainForm.MSlip.Value; + FStrm.WriteBuffer(I, 4); + // Player 1 color + FStrm.Seek(86738, soFromBeginning); + case MainForm.P1Color.ItemIndex of + 0: B := 16; + 1: B := 32; + 2: B := 48; + 3: B := 64; + 4: B := 80; + 5: B := 96; + 6: B := 112; + 7: B := 128; + 8: B := 176; + 9: B := 192; + 10: B := 208; + else B := 112; + end; + FStrm.WriteBuffer(B, 1); + // Player 2 color + FStrm.Seek(86745, soFromBeginning); + case MainForm.P2Color.ItemIndex of + 0: B := 16; + 1: B := 32; + 2: B := 48; + 3: B := 64; + 4: B := 80; + 5: B := 96; + 6: B := 112; + 7: B := 128; + 8: B := 176; + 9: B := 192; + 10: B := 208; + else B := 112; + end; + FStrm.WriteBuffer(B, 1); + // TANK word, health value + FStrm.Seek(80903, soFromBeginning); + I := MainForm.TankHealth.Value; + FStrm.WriteBuffer(I, 4); + // TANK word, armor value + FStrm.Seek(80893, soFromBeginning); + I := MainForm.TankArmor.Value; + FStrm.WriteBuffer(I, 4); + // RAMBO word, ammo bullets value + FStrm.Seek(81133, soFromBeginning); + I := MainForm.RBullets.Value; + FStrm.WriteBuffer(I, 4); + // RAMBO word, ammo shells value + FStrm.Seek(81123, soFromBeginning); + I := MainForm.RShells.Value; + FStrm.WriteBuffer(I, 4); + // RAMBO word, ammo rockets value + FStrm.Seek(81113, soFromBeginning); + I := MainForm.RRockets.Value; + FStrm.WriteBuffer(I, 4); + // RAMBO word, ammo cells value + FStrm.Seek(81103, soFromBeginning); + I := MainForm.RCells.Value; + FStrm.WriteBuffer(I, 4); + // IDDQD word, damage value + FStrm.Seek(80802, soFromBeginning); + I := MainForm.GodDamage.Value; + FStrm.WriteBuffer(I, 4); + // IDDQD word, sound sample + FStrm.Seek(130144, soFromBeginning); + A := PAnsiChar(AnsiString(MainForm.IddqdSnd.Text)); + FStrm.WriteBuffer(A^, 5); + // Weapon change speed + FStrm.Seek(44533, soFromBeginning); + B := MainForm.WChange.Value; + FStrm.WriteBuffer(B, 1); + // fist reload time + FStrm.Seek(133352, soFromBeginning); + I := MainForm.ReFist.Value; + FStrm.WriteBuffer(I, 4); + // reserved + FStrm.Seek(133356, soFromBeginning); + I := MainForm.ReSlowFist.Value; + FStrm.WriteBuffer(I, 4); + // pistol reload time + FStrm.Seek(133360, soFromBeginning); + I := MainForm.RePistol.Value; + FStrm.WriteBuffer(I, 4); + // shotgun reload time + FStrm.Seek(133364, soFromBeginning); + I := MainForm.ReShotgun.Value; + FStrm.WriteBuffer(I, 4); + // double shotgun reload time + FStrm.Seek(133368, soFromBeginning); + I := MainForm.ReDShot.Value; + FStrm.WriteBuffer(I, 4); + // chaingun reload time + FStrm.Seek(133372, soFromBeginning); + I := MainForm.ReChain.Value; + FStrm.WriteBuffer(I, 4); + // rocket launcher reload time + FStrm.Seek(133376, soFromBeginning); + I := MainForm.ReRocket.Value; + FStrm.WriteBuffer(I, 4); + // plasma gun reload time + FStrm.Seek(133380, soFromBeginning); + I := MainForm.RePlasm.Value; + FStrm.WriteBuffer(I, 4); + // super chaingun reload time + FStrm.Seek(133388, soFromBeginning); + I := MainForm.ReSChain.Value; + FStrm.WriteBuffer(I, 4); + // Trap hurts players + FStrm.Seek(45277, soFromBeginning); + I := MainForm.TrapPlayer.Value; + FStrm.WriteBuffer(I, 4); + // Trap hurts monsters + FStrm.Seek(70281, soFromBeginning); + I := MainForm.TrapMonster.Value; + FStrm.WriteBuffer(I, 4); + // Starting hurt value + FStrm.Seek(44984, soFromBeginning); + I := MainForm.MDamage.Value; + FStrm.WriteBuffer(I, 4); + // always unlimited ammo + FStrm.Seek(81093, soFromBeginning); + case MainForm.MRambo.ItemIndex of + 0: I := 144; + 1: I := 0; + else I := 144; + end; + FStrm.WriteBuffer(I, 4); + // menu position + FStrm.Seek(84733, soFromBeginning); + I := MainForm.PMenu.Value; + FStrm.WriteBuffer(I, 4); + // stone position + FStrm.Seek(99411, soFromBeginning); + I := MainForm.PStone.Value; + FStrm.WriteBuffer(I, 4); + // oxygene indicator position + FStrm.Seek(99556, soFromBeginning); + I := MainForm.PAero.Value; + FStrm.WriteBuffer(I, 4); + // oxygene indicator color + FStrm.Seek(99619, soFromBeginning); + I := MainForm.ColorAero.Value; + FStrm.WriteBuffer(I, 4); + // monsters + FStrm.Seek(134460, soFromBeginning); + for I := 0 to 19 do begin + FStrm.WriteBuffer(MonArray[I].Width, 4); + FStrm.WriteBuffer(MonArray[I].Height, 4); + FStrm.WriteBuffer(MonArray[I].Health, 4); + FStrm.WriteBuffer(MonArray[I].Val1, 4); + FStrm.WriteBuffer(MonArray[I].Speed, 4); + FStrm.WriteBuffer(MonArray[I].Jump, 4); + FStrm.WriteBuffer(MonArray[I].Shit, 4); + FStrm.WriteBuffer(MonArray[I].Val2, 4); + end; +end; + +procedure TMainForm.BtOpenClick(Sender: TObject); +var + Buf: Pointer; + Sig1, Sig2, Sig3, Sig4, Sig5: AnsiString; +begin + if OpenDialog.Execute(Handle) then begin + if BtClose.Enabled then FStrm.Free; + FStrm := TFileStream.Create(OpenDialog.FileName, fmOpenReadWrite or fmShareDenyWrite); + if (FStrm.Size < 139800) or (FStrm.Size > 194080) then begin + StatusBar.SimpleText := ': '; + FStrm.Free; + Exit; + end; + FStrm.Seek(9573, soFromBeginning); + Buf := AllocMem(6); + FStrm.ReadBuffer(Buf^, 6); + Sig1 := PAnsiChar(Buf); + FreeMem(Buf, 6); + + FStrm.Seek(128020, soFromBeginning); + Buf := AllocMem(10); + FStrm.ReadBuffer(Buf^, 10); + Sig2 := PAnsiChar(Buf); + FreeMem(Buf, 10); + + FStrm.Seek(137410, soFromBeginning); + Buf := AllocMem(10); + FStrm.ReadBuffer(Buf^, 10); + Sig3 := PAnsiChar(Buf); + FreeMem(Buf, 10); + + if FStrm.Size>140000 then begin + FStrm.Seek(11029, soFromBeginning); + Buf := AllocMem(6); + FStrm.ReadBuffer(Buf^, 6); + Sig4 := PAnsiChar(Buf); + FreeMem(Buf, 6); + + FStrm.Seek(177176, soFromBeginning); + Buf := AllocMem(10); + FStrm.ReadBuffer(Buf^, 10); + Sig5 := PAnsiChar(Buf); + FreeMem(Buf, 10); + end; + + if (Sig1 = 'doom2d') and (Sig2 = 'Doom2D.wad') + and (Sig3 = 'DOOM2D.CFG') then begin + StatusBar.SimpleText := ': 1.30 '; + GetValues; + MonLst.ItemIndex := 0; + MonLstClick(Sender); + ClientHeight := 490; + PG.Visible := True; + Panel2.Visible := True; + BtClose.Enabled := True; + Exit; + end; + if (Sig4='doom2d') and (Sig5='DOOM2D.WAD') then begin + StatusBar.SimpleText := ': 1.40 , '; + FStrm.Free; + Exit; + end; + PG.Visible := False; + Panel2.Visible := False; + ClientHeight := 55; + StatusBar.SimpleText := ': Doom2D'; + FStrm.Free; + end; +end; + +procedure TMainForm.P1ColorDrawItem(Control: TWinControl; Index: Integer; + Rect: TRect; State: TOwnerDrawState); +begin + P1Color.Canvas.FillRect(Rect); + PlayerColors.Draw(P1Color.Canvas, Rect.Left, Rect.Top, Index); + P1Color.Canvas.TextOut(Rect.Left + PlayerColors.Width + 2, Rect.Top, P1Color.Items[Index]); +end; + +procedure TMainForm.P2ColorDrawItem(Control: TWinControl; Index: Integer; + Rect: TRect; State: TOwnerDrawState); +begin + P2Color.Canvas.FillRect(Rect); + PlayerColors.Draw(P2Color.Canvas, Rect.Left, Rect.Top, Index); + P2Color.Canvas.TextOut(Rect.Left + PlayerColors.Width + 2, Rect.Top, P2Color.Items[Index]); +end; + +procedure TMainForm.BtAboutClick(Sender: TObject); +begin + FAbout.ShowModal; +end; + +procedure TMainForm.BtSaveClick(Sender: TObject); +begin + if not BtClose.Enabled then + Exit; + StoreValues; +end; + +procedure TMainForm.BtSaveAsClick(Sender: TObject); +var + err: Boolean; +begin + if SaveDialog.Execute(Handle) then begin + if not BtClose.Enabled then + Exit; + err := False; + try + CopyFile(PWideChar(FStrm.FileName), PWideChar(SaveDialog.FileName), False); + except + err := True; + end; + if err then begin + MessageBox(Handle, ' . , , .', '', mb_IconError or mb_Ok); + Exit; + end; + OpenDialog.FileName := SaveDialog.FileName; + FStrm.Free; + FStrm := TFileStream.Create(SaveDialog.FileName, fmOpenReadWrite or fmShareDenyWrite); + StoreValues; + end; +end; + +end. diff --git a/src/Unit2.dfm b/src/Unit2.dfm new file mode 100644 index 0000000..62372ca --- /dev/null +++ b/src/Unit2.dfm @@ -0,0 +1,235 @@ +object FAbout: TFAbout + Left = 0 + Top = 0 + ActiveControl = Button1 + BorderStyle = bsDialog + Caption = #1054' '#1087#1088#1086#1075#1088#1072#1084#1084#1077 + ClientHeight = 218 + ClientWidth = 236 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + OnCreate = FormCreate + PixelsPerInch = 96 + TextHeight = 13 + object Image1: TImage + Left = 8 + Top = 8 + Width = 32 + Height = 32 + AutoSize = True + Picture.Data = { + 055449636F6E0000010002002020000000000000A80C00002600000010100000 + 0000000068030000CE0C00002800000020000000400000000100180000000000 + 000C000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000027476B375F8F3F6B + A33F6BA33F6BA33F6BA3375F8F27476B00000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000001F3F533357874773B35B8BD76B9B + E79BBFFF9BBFFF6B9BE75B8BD74773B33357871F3F5300000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000027476B436FAB5383CF6393DF4F7FCB4F7F + CB6B9BE76B9BE74F7FCB4F7FCB6393DF5383CF436FAB27476B00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000027476B436FAB5383CF6393DF4F7FCB436FAB375F + 8F2F537F2F537F375F8F436FAB4F7FCB6393DF5383CF436FAB27476B00000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000001F3F53375F8F4773B34F7FCB4F7FCB4F7FCB5B8BD76B9B + E75BA3FF5BA3FF6B9BE75B8BD74F7FCB4F7FCB4F7FCB4773B3375F8F1F3F5300 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000335787436FAB4F7FCB5B8BD7375F8F2B4F77135B9B135B + 9B135B9B135B9B135B9B135B9B2B4F77375F8F5B8BD74F7FCB436FAB33578700 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000001F3F53436FAB3F6BA35B8BD76B9BE75383CF5B8BD77BABF79BBF + FF6393DF6393DF9BBFFF7BABF75B8BD75383CF6B9BE75B8BD73F6BA3436FAB1F + 3F53000000000000000000000000000000000000000000000000000000000000 + 00000000000023435F4F7FCB3B639B6B9BE77BABF75383CF5383CF5B8BD74B7B + BF3F6BA33F6BA34B7BBF5B8BD75383CF5383CF7BABF76B9BE73B639B4F7FCB23 + 435F000000000000000000000000000000000000000000000000000000000000 + 0000000000002B4F774773B33B639B5B8BD793BBFF6B9BE74B7BBF1F3F532B4F + 773357873357872B4F771F3F534B7BBF6B9BE793BBFF5B8BD73B639B4773B32B + 4F77000000000000000000000000000000000000000000000000000000000000 + 00000023435F2B4F773B639B3F6BA34B7BBF73A3EF7BABF75B8BD7436FAB3B63 + 9B63839F63839F3B639B436FAB5B8BD77BABF773A3EF4B7BBF3F6BA33B639B2B + 4F7723435F000000000000000000000000000000000000000000000000000000 + 00000023435F3357873F6BA3436FAB4B7BBF5B8BD75BA3FFA7C7FF6393DF5B8B + D77BB3FFBBD7FF5B8BD76393DFA7C7FF5BA3FF5B8BD74B7BBF436FAB3F6BA333 + 578723435F000000000000000000000000000000000000000000000000000000 + 375F8F23435F375F8F5383CF6393DF73A3EF6393DF4F7FCB5BA3FF93BBFF6B9B + E75BA3FF7BB3FF6B9BE793BBFF5BA3FF4F7FCB6393DF73A3EF6393DF5383CF37 + 5F8F23435F375F8F000000000000000000000000000000000000000000000000 + 33578723435F3357877B7BDB5B8BD74B7BBF436FAB375F8F436FAB4F7FCB5B8B + D75BA3FF7BB3FF5B8BD74F7FCB436FAB375F8F436FAB4B7BBF5B8BD77B7BDB33 + 578723435F335787000000000000000000000000000000000000000000000000 + 27476B23435F3357874773B3375F8F436FAB2F9BC343BBD72F9BC31F7BAF375F + 8F5383CF6B9BE7375F8F1F7BAF2F9BC343BBD72F9BC3436FAB375F8F4773B333 + 578723435F27476B000000000000000000000000000000000000000000000000 + 375F8F27476B3353674773B32B4F772F9BC3D7FFFFFFFFFF43BBD72F9BC3135B + 9B5B8BD75B8BD7135B9B2F9BC343BBD7FFFFFFD7FFFF2F9BC32B4F774773B333 + 536727476B375F8F000000000000000000000000000000000000000000000000 + 4773B327476B233347375F8F436FAB436FAB3B639B3357872B4F7727476B2747 + 6B375F8F375F8F27476B27476B2B4F773357873B639B436FAB436FAB375F8F23 + 334727476B4773B3000000000000000000000000000000000000000000000000 + 4773B327476B1B374B2B4F7727476B27476B1F3F533F6BA36393DF4773B32B4F + 774773B34773B32B4F774773B36393DF3F6BA31F3F5327476B27476B2B4F771B + 374B27476B4773B3000000000000000000000000000000000000000000000000 + 0000000F232B1B374B2B4F774773B36B9BE7C7DBFF83B3FF6B9BE76B9BE75383 + CF5B8BD75B8BD75383CF6B9BE76B9BE783B3FFC7DBFF6B9BE74773B32B4F771B + 374B0F232B000000000000000000000000000000000000000000000000000000 + 0000000F232B1B374B2B4F773B639B5383CF73A3EF6B9BE75383CF4B7BBF3F6B + A3375F8F375F8F3F6BA34B7BBF5383CF6B9BE773A3EF5383CF3B639B2B4F771B + 374B0F232B000000000000000000000000000000000000000000000000000000 + 0000000F232B1B374B2B4F773B639B5383CF4F7FCB4F7FCB4773B33F6BA3436F + AB436FAB436FAB436FAB3F6BA34773B34F7FCB4F7FCB5383CF3B639B23435F1B + 374B0F232B000000000000000000000000000000000000000000000000000000 + 0000000F232B1B374B23435F375F8F436FAB4773B33F6BA33F6BA34773B34773 + B34773B34773B34773B34773B33F6BA33F6BA34773B3436FAB375F8F1F3F531B + 374B0F232B000000000000000000000000000000000000000000000000000000 + 0000000F232B1B374B1F3F532B4F77375F8F2B4F771F3F533F6BA31F3F532B4F + 77375F8F3F6BA34773B33B639B3F6BA3375F8F375F8F375F8F27476B1B374B1B + 374B0F232B000000000000000000000000000000000000000000000000000000 + 0000000F232B1B374B1B374B2B4F772B4F771F3F53375F8F1F3F5327476B2B4F + 7727476B27476B375F8F375F8F375F8F33578733578727476B1B374B172F3F1B + 374B0F232B000000000000000000000000000000000000000000000000000000 + 0000000F232B172F3F1B374B1F3F5323435F375F8F1F3F533B639B27476B2747 + 6B375F8F27476B1B374B27476B1B374B172F3F23435F0F232B132B33132B3317 + 2F3F0F232B000000000000000000000000000000000000000000000000000000 + 0000000F232B172F3F23435F2B4F7723435F375F8F3B639B375F8F375F8F375F + 8F375F8F1B374B375F8F23435F1B374B23435F1B374B132B330F232B0F232B0F + 232B0F232B000000000000000000000000000000000000000000000000000000 + 000000000000132B332B4F773357872B4F77375F8F3B639B4773B3335787436F + AB375F8F3F6BA32B4F772B4F772B4F772B4F7723435F1F3F53132B33132B330F + 232B000000000000000000000000000000000000000000000000000000000000 + 000000000000132B3323435F2B4F77375F8F3B639B4B7BBF4F7FCB5383CF3F6B + A34773B33B639B3B639B3B639B375F8F375F8F2B4F772B4F771F3F531B374B13 + 2B33000000000000000000000000000000000000000000000000000000000000 + 000000000000000000132B3323435F1F3F5323435F27476B375F8F4B7BBF4773 + B35383CF5383CF4773B3436FAB3B639B2B4F7723435F1F3F5323435F132B3300 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000001B374B23435F23435F23435F27476B2B4F + 772B4F772B4F772B4F772B4F7727476B23435F23435F1B374B00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFF00FFF + FFC003FFFF8001FFFF0000FFFE00007FFE00007FFC00003FFC00003FFC00003F + F800001FF800001FF000000FF000000FF000000FF000000FF000000FF000000F + F800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001F + FC00003FFC00003FFE00007FFF8001FFFFFFFFFF280000001000000020000000 + 0100180000000000000300000000000000000000000000000000000000000027 + 476B436FAB5383CF6393DF4F7FCB4F7FCB6B9BE76B9BE74F7FCB4F7FCB6393DF + 5383CF436FAB27476B00000027476B436FAB5383CF6393DF4F7FCB436FAB375F + 8F2F537F2F537F375F8F436FAB4F7FCB6393DF5383CF436FAB27476B375F8F47 + 73B34F7FCB4F7FCB4F7FCB5B8BD76B9BE75BA3FF5BA3FF6B9BE75B8BD74F7FCB + 4F7FCB4F7FCB4773B3375F8F436FAB4F7FCB5B8BD7375F8F2B4F77135B9B135B + 9B135B9B135B9B135B9B135B9B2B4F77375F8F5B8BD74F7FCB436FAB3F6BA35B + 8BD76B9BE75383CF5B8BD77BABF79BBFFF6393DF6393DF9BBFFF7BABF75B8BD7 + 5383CF6B9BE75B8BD73F6BA33B639B6B9BE77BABF75383CF5383CF5B8BD74B7B + BF3F6BA33F6BA34B7BBF5B8BD75383CF5383CF7BABF76B9BE73B639B3B639B5B + 8BD793BBFF6B9BE74B7BBF1F3F532B4F773357873357872B4F771F3F534B7BBF + 6B9BE793BBFF5B8BD73B639B3F6BA34B7BBF73A3EF7BABF75B8BD7436FAB3B63 + 9B63839F63839F3B639B436FAB5B8BD77BABF773A3EF4B7BBF3F6BA3436FAB4B + 7BBF5B8BD75BA3FFA7C7FF6393DF5B8BD77BB3FFBBD7FF5B8BD76393DFA7C7FF + 5BA3FF5B8BD74B7BBF436FAB6393DF73A3EF6393DF4F7FCB5BA3FF93BBFF6B9B + E75BA3FF7BB3FF6B9BE793BBFF5BA3FF4F7FCB6393DF73A3EF6393DF5B8BD74B + 7BBF436FAB375F8F436FAB4F7FCB5B8BD75BA3FF7BB3FF5B8BD74F7FCB436FAB + 375F8F436FAB4B7BBF5B8BD7375F8F436FAB2F9BC343BBD72F9BC31F7BAF375F + 8F5383CF6B9BE7375F8F1F7BAF2F9BC343BBD72F9BC3436FAB375F8F2B4F772F + 9BC3D7FFFFFFFFFF43BBD72F9BC3135B9B5B8BD75B8BD7135B9B2F9BC343BBD7 + FFFFFFD7FFFF2F9BC32B4F77436FAB436FAB3B639B3357872B4F7727476B2747 + 6B375F8F375F8F27476B27476B2B4F773357873B639B436FAB436FAB27476B27 + 476B1F3F533F6BA36393DF4773B32B4F774773B34773B32B4F774773B36393DF + 3F6BA31F3F5327476B27476B4773B36B9BE7C7DBFF83B3FF6B9BE76B9BE75383 + CF5B8BD75B8BD75383CF6B9BE76B9BE783B3FFC7DBFF6B9BE74773B380010000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000000000} + end + object Label1: TLabel + Left = 46 + Top = 8 + Width = 138 + Height = 13 + Caption = 'Doom2D DeHacker by Stas'#39'M' + end + object Label2: TLabel + Left = 46 + Top = 27 + Width = 151 + Height = 13 + Caption = 'Copyright '#169' Stas'#39'M Corp. 2012' + end + object Label3: TLabel + Left = 8 + Top = 178 + Width = 96 + Height = 13 + Cursor = crHandPoint + Caption = 'http://stascorp.com' + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlue + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsUnderline] + ParentFont = False + OnClick = Label3Click + end + object Label4: TLabel + Left = 8 + Top = 197 + Width = 90 + Height = 13 + Cursor = crHandPoint + Caption = 'http://doom2d.org' + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlue + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsUnderline] + ParentFont = False + OnClick = Label4Click + end + object Memo1: TMemo + Left = 4 + Top = 46 + Width = 228 + Height = 126 + BevelKind = bkSoft + BorderStyle = bsNone + Lines.Strings = ( + #1051#1080#1094#1077#1085#1079#1080#1088#1086#1074#1072#1085#1086' '#1087#1086#1076' GNU GPL v3' + 'http://www.gnu.org/licenses/' + '' + '-= '#1057#1086#1079#1076#1072#1085#1086' '#1089#1087#1077#1094#1080#1072#1083#1100#1085#1086' '#1076#1083#1103' doom2d.org =-' + #1053#1072' '#1076#1072#1085#1085#1099#1081' '#1084#1086#1084#1077#1085#1090' '#1087#1086#1076#1076#1077#1088#1078#1080#1074#1072#1077#1090#1089#1103 + #1090#1086#1083#1100#1082#1086' Doom2D '#1074#1077#1088#1089#1080#1103' 1.30' + '' + #1042' '#1073#1083#1080#1078#1072#1081#1096#1077#1084' '#1073#1091#1076#1091#1097#1077#1084' '#1088#1077#1072#1083#1080#1079#1091#1102 + #1087#1086#1076#1076#1077#1088#1078#1082#1091' '#1074#1077#1088#1089#1080#1080' 1.40') + ReadOnly = True + TabOrder = 0 + WordWrap = False + end + object Button1: TButton + Left = 151 + Top = 183 + Width = 75 + Height = 25 + Caption = 'OK' + Default = True + DoubleBuffered = True + ParentDoubleBuffered = False + TabOrder = 1 + OnClick = SpeedButton1Click + end +end diff --git a/src/Unit2.pas b/src/Unit2.pas new file mode 100644 index 0000000..baadd44 --- /dev/null +++ b/src/Unit2.pas @@ -0,0 +1,75 @@ +unit Unit2; +{ + Doom2D DeHacker / About box + Copyright (C) 2012 Stas'M Corp. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see +} +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, Buttons, StdCtrls, ExtCtrls, ShellAPI; + +type + TFAbout = class(TForm) + Image1: TImage; + Label1: TLabel; + Label2: TLabel; + Memo1: TMemo; + Label3: TLabel; + Label4: TLabel; + Button1: TButton; + procedure SpeedButton1Click(Sender: TObject); + procedure Label3Click(Sender: TObject); + procedure Label4Click(Sender: TObject); + procedure FormCreate(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + FAbout: TFAbout; + +implementation + +{$R *.dfm} + +procedure TFAbout.FormCreate(Sender: TObject); +var + S: String; +begin + S := Memo1.Text; + Delete(S, Length(S) - 1, 2); + Memo1.Text := S; +end; + +procedure TFAbout.Label3Click(Sender: TObject); +begin + ShellExecute(Handle, 'open', 'http://stascorp.com', nil, nil, 0); +end; + +procedure TFAbout.Label4Click(Sender: TObject); +begin + ShellExecute(Handle, 'open', 'http://doom2d.org', nil, nil, 0); +end; + +procedure TFAbout.SpeedButton1Click(Sender: TObject); +begin + Close; +end; + +end.