root/trunk/Loader.cpp

Revision 18, 3.8 kB (checked in by sagrer, 4 months ago)

Заменил [Main]->TileSetDir? на [Main]->TileSetsDir? в конфиге. Ибо у меня будет так - во избежание несовместимости на уровне конфигов со Снайповским вариантом.

Line 
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 #include <vcl.h>
21 #pragma hdrstop
22
23 #include "Loader.h"
24 //---------------------------------------------------------------------------
25 #pragma package(smart_init)
26 #pragma resource "*.dfm"
27 TFormLoader *FormLoader;
28 //---------------------------------------------------------------------------
29 __fastcall TFormLoader::TFormLoader(TComponent* Owner)
30         : TForm(Owner)
31 {
32 }
33 //---------------------------------------------------------------------------
34 void __fastcall TFormLoader::TimerTimer(TObject *Sender)
35 {
36   Timer->Enabled = false;
37   ShowForm(true);
38 }
39 //---------------------------------------------------------------------------
40 void __fastcall TFormLoader::FormCreate(TObject *Sender)
41 {
42   CConfigFile *C = new CConfigFile();
43   ProgDir = ExtractFilePath(Application->ExeName);
44   C->LoadConfig(ProgDir+"TexGen.ini");
45   Configure(C); //Проверить наличие нужных папок, создать, если нужно.
46   if(C->GetComment() == "")C->SetComment("//Вот такой вот идиоцкий файл приходецо генерить каждый раз...");
47
48   if(C->GetValueEx("Main","FirstLoad","1")=="1")
49   {
50     Timer->Enabled = true;
51     C->SetValue("Main","FirstLoad","0");
52     C->SaveConfig(ProgDir+"TexGen.ini");
53   }
54   else
55   {
56     ShowForm();
57   }
58 }
59 //---------------------------------------------------------------------------
60 void TFormLoader::ShowForm(bool B)
61 {
62   Application->CreateForm(__classid(TG), &G);
63   if(B)G->ShowModal();
64   Close();
65 }
66 //---------------------------------------------------------------------------
67 void TFormLoader::Configure(CConfigFile *C)
68 {
69   bool SetsExists, MasksExists, OutputExists;
70   //1. Проверяем наличие папок по умолчанию
71   SetsExists = DirectoryExists(C->GetValueEx("Main","TileSetsDir",ProgDir+"Collections\\"));
72   MasksExists = DirectoryExists(C->GetValueEx("Main","MasksDir",ProgDir+"Masks\\"));
73   OutputExists = DirectoryExists(C->GetValueEx("Main","OutputDir",ProgDir+"Output\\"));
74
75   //2. Если папка не существует - проверяем дефолтную.
76   if(!SetsExists)
77     SetsExists = DirectoryExists(ProgDir+"Collections\\");
78   else
79     C->SetValue("Main","TileSetsDir",ProgDir+"Collections\\");
80
81   if(!MasksExists)
82     MasksExists = DirectoryExists(ProgDir+"Masks\\");
83   else
84     C->SetValue("Main","MasksDir",ProgDir+"Masks\\");
85
86   if(!OutputExists)
87     OutputExists = DirectoryExists(ProgDir+"Output\\");
88   else
89     C->SetValue("Main","OutputDir",ProgDir+"Output\\");
90
91   //3. Если и это не существует - создаём папки.
92   if(!SetsExists)
93   {
94     CreateDir(ProgDir+"Collections\\");
95     C->SetValue("Main","TileSetsDir",ProgDir+"Collections\\");
96   }
97   if(!MasksExists)
98   {
99     CreateDir(ProgDir+"Masks\\");
100     C->SetValue("Main","MasksDir",ProgDir+"Masks\\");
101   }
102   if(!OutputExists)
103   {
104     CreateDir(ProgDir+"Output\\");
105     C->SetValue("Main","OutputDir",ProgDir+"Output\\");
106   }
107 }
108 //---------------------------------------------------------------------------
Note: See TracBrowser for help on using the browser.