| 1 |
/////////////////////////////////////////////////////////// |
|---|
| 2 |
// TexGen // |
|---|
| 3 |
// утилита для подготовки текстур рельефа // |
|---|
| 4 |
// для игры Проклятые Земли // |
|---|
| 5 |
// Copyright (C) 2007-2008 Gipat Group // |
|---|
| 6 |
// Распространяется на условиях // |
|---|
| 7 |
// Gipat Group's opened EI-editor-utility license // |
|---|
| 8 |
// версии 1.0 // |
|---|
| 9 |
// // |
|---|
| 10 |
// www.gipatgroup.org // |
|---|
| 11 |
/////////////////////////////////////////////////////////// |
|---|
| 12 |
|
|---|
| 13 |
//К работе над данным файлом приложили руки, ноги.... короче аффтары: |
|---|
| 14 |
// 1) Снайпер (sniper-rifle@rambler.ru) |
|---|
| 15 |
|
|---|
| 16 |
//////////////////////////////////////////////////////////////////////// |
|---|
| 17 |
|
|---|
| 18 |
//--------------------------------------------------------------------------- |
|---|
| 19 |
|
|---|
| 20 |
#ifndef MainH |
|---|
| 21 |
#define MainH |
|---|
| 22 |
//--------------------------------------------------------------------------- |
|---|
| 23 |
#include <Classes.hpp> |
|---|
| 24 |
#include <Controls.hpp> |
|---|
| 25 |
#include <StdCtrls.hpp> |
|---|
| 26 |
#include <Forms.hpp> |
|---|
| 27 |
#include <ComCtrls.hpp> |
|---|
| 28 |
#include <Menus.hpp> |
|---|
| 29 |
#include <ExtCtrls.hpp> |
|---|
| 30 |
#include <Graphics.hpp> |
|---|
| 31 |
#include "Permissions.h" |
|---|
| 32 |
#include "CConfigFile.cpp" |
|---|
| 33 |
#include <FileCtrl.hpp> |
|---|
| 34 |
#include <ImgList.hpp> |
|---|
| 35 |
//--------------------------------------------------------------------------- |
|---|
| 36 |
class TG : public TForm |
|---|
| 37 |
{ |
|---|
| 38 |
__published: // IDE-managed Components |
|---|
| 39 |
TPageControl *Pages; |
|---|
| 40 |
TMainMenu *MainMenu; |
|---|
| 41 |
TMenuItem *mnuFile; |
|---|
| 42 |
TMenuItem *mnuTools; |
|---|
| 43 |
TMenuItem *mnuHelp; |
|---|
| 44 |
TMenuItem *mnuOpen; |
|---|
| 45 |
TMenuItem *mnuSave; |
|---|
| 46 |
TMenuItem *mnuNew; |
|---|
| 47 |
TMenuItem *mnuExit; |
|---|
| 48 |
TTabSheet *pgProject; |
|---|
| 49 |
TTabSheet *pgGeneral; |
|---|
| 50 |
TStatusBar *Status; |
|---|
| 51 |
TMenuItem *mnuBreak; |
|---|
| 52 |
TMenuItem *mnuMask; |
|---|
| 53 |
TMenuItem *mnuTexCrop; |
|---|
| 54 |
TMenuItem *mnuTest; |
|---|
| 55 |
TMenuItem *mnuAbout; |
|---|
| 56 |
TTreeView *Tree; |
|---|
| 57 |
TButton *btnDelTerrain; |
|---|
| 58 |
TButton *btnAllowDeny; |
|---|
| 59 |
TImage *PreviewPage; |
|---|
| 60 |
TTrackBar *PageTrack; |
|---|
| 61 |
TButton *btnAddTerrain; |
|---|
| 62 |
TButton *btnGenerate; |
|---|
| 63 |
TButton *btnOptions; |
|---|
| 64 |
TLabel *lblTileSet; |
|---|
| 65 |
TComboBox *TileSets; |
|---|
| 66 |
TListBox *listAllTerrains; |
|---|
| 67 |
TLabel *lblTerrains; |
|---|
| 68 |
TButton *btnCreate; |
|---|
| 69 |
TButton *btnRemove; |
|---|
| 70 |
TLabel *lblLayer; |
|---|
| 71 |
TEdit *Layer; |
|---|
| 72 |
TImage *PreviewTile; |
|---|
| 73 |
TLabel *Label1; |
|---|
| 74 |
TButton *btnSelectTile; |
|---|
| 75 |
TButton *btnBaseMask; |
|---|
| 76 |
TButton *btnBaseTile; |
|---|
| 77 |
TImage *baseTile; |
|---|
| 78 |
TImage *baseMask; |
|---|
| 79 |
TButton *btnExit; |
|---|
| 80 |
TButton *btnCheck; |
|---|
| 81 |
TButton *btnChangeProjectSet; |
|---|
| 82 |
TDirectoryListBox *DList; |
|---|
| 83 |
TFileListBox *FList; |
|---|
| 84 |
TImageList *Images; |
|---|
| 85 |
void __fastcall mnuExitClick(TObject *Sender); |
|---|
| 86 |
void __fastcall mnuAboutClick(TObject *Sender); |
|---|
| 87 |
void __fastcall btnExitClick(TObject *Sender); |
|---|
| 88 |
void __fastcall btnAllowDenyClick(TObject *Sender); |
|---|
| 89 |
void __fastcall FormCreate(TObject *Sender); |
|---|
| 90 |
void __fastcall PagesChange(TObject *Sender); |
|---|
| 91 |
void __fastcall FormDestroy(TObject *Sender); |
|---|
| 92 |
void __fastcall mnuTestClick(TObject *Sender); |
|---|
| 93 |
void __fastcall TileSetsChange(TObject *Sender); |
|---|
| 94 |
void __fastcall LayerKeyPress(TObject *Sender, char &Key); |
|---|
| 95 |
void __fastcall LayerChange(TObject *Sender); |
|---|
| 96 |
void __fastcall listAllTerrainsClick(TObject *Sender); |
|---|
| 97 |
void __fastcall btnBaseMaskClick(TObject *Sender); |
|---|
| 98 |
private: // User declarations |
|---|
| 99 |
public: // User declarations |
|---|
| 100 |
__fastcall TG(TComponent* Owner); |
|---|
| 101 |
//Основные переменные и методы |
|---|
| 102 |
AnsiString ProgDir; |
|---|
| 103 |
//Работа с конфигом |
|---|
| 104 |
void LoadIni(AnsiString Path); |
|---|
| 105 |
void RefreshTileSets(); |
|---|
| 106 |
void SaveIni(AnsiString Path); |
|---|
| 107 |
void UpgradeIni(AnsiString P); |
|---|
| 108 |
void InitDirectories(CConfigFile *C); |
|---|
| 109 |
bool CreateDirChain(AnsiString Path); |
|---|
| 110 |
bool NormalDirName(AnsiString Name); |
|---|
| 111 |
AnsiString EnsureDir(AnsiString Path, AnsiString OtherName); |
|---|
| 112 |
|
|---|
| 113 |
CConfigFile *Config; |
|---|
| 114 |
//Работа с проектом и наборами |
|---|
| 115 |
void LoadProject(AnsiString Path); |
|---|
| 116 |
void SaveProject(AnsiString Path); |
|---|
| 117 |
void BuildTerrains(AnsiString TileSet); |
|---|
| 118 |
bool TileSetExists(AnsiString Terrain); |
|---|
| 119 |
//Переменные для текущего проекта: |
|---|
| 120 |
AnsiString Name, TileSet; |
|---|
| 121 |
int TileSize; |
|---|
| 122 |
AnsiString TerrList,TileList; |
|---|
| 123 |
|
|---|
| 124 |
//Вспомогательные функции |
|---|
| 125 |
AnsiString GetNext(AnsiString *Src, AnsiString Sep="_"); |
|---|
| 126 |
bool IsTile(AnsiString Tile); |
|---|
| 127 |
bool TerrainInCollection(AnsiString Terrain); |
|---|
| 128 |
AnsiString FormatNumber(int N, byte Size); |
|---|
| 129 |
void ApplyTileLayer(AnsiString Terrain, AnsiString Layer); |
|---|
| 130 |
//Вспомогательные функции - 2. |
|---|
| 131 |
bool AskUser(AnsiString Question); |
|---|
| 132 |
|
|---|
| 133 |
AnsiString SDir, MDir, ODir; |
|---|
| 134 |
//Дополнительные окна проекта |
|---|
| 135 |
void WndPermissions(); //Окошко по кнопке "разрешения" |
|---|
| 136 |
void WndGenerateWTF(); //Окно с выбором, чего же мы будем генерировать |
|---|
| 137 |
void WndEditOptions(); //Редактор файла проекта, некоторые переменные |
|---|
| 138 |
void WndAddTerrains(); //Выбираем добавляемые террейны из списка в наборе тайлов |
|---|
| 139 |
|
|---|
| 140 |
int WndSelect(AnsiString Desc, AnsiString Vars);//Выбираем один из предложенных вариантов. |
|---|
| 141 |
//Спецфункции |
|---|
| 142 |
void CutTextures(AnsiString Name); |
|---|
| 143 |
void MaskEditor (); |
|---|
| 144 |
void TestFunction(); |
|---|
| 145 |
//Различные инфошки |
|---|
| 146 |
void WillBe(); |
|---|
| 147 |
void ProgHelp(); |
|---|
| 148 |
|
|---|
| 149 |
|
|---|
| 150 |
//Переменные: |
|---|
| 151 |
}; |
|---|
| 152 |
//--------------------------------------------------------------------------- |
|---|
| 153 |
extern PACKAGE TG *G; |
|---|
| 154 |
//--------------------------------------------------------------------------- |
|---|
| 155 |
#endif |
|---|