Develop and Download Open Source Software

Browse Subversion Repository

Contents of /trunk/Language.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (show annotations) (download) (as text)
Sun Aug 15 01:53:13 2010 UTC (13 years, 9 months ago) by okadu
File MIME type: text/x-c++src
File size: 2596 byte(s)


1 #define LANGUAGE_CPP
2
3 #include "stdafx.h"
4 #include "CPlugin.h"
5
6 // 内部定数
7 char *LANG_FILE_NAME = "Language.txt";
8
9 // 外部グローバル
10 extern char *g_DayOfWeek[];
11
12 // 内部グローバル1
13 string g_LanguageName;
14
15 namespace LanguageResource
16 {
17
18 /*
19 * 言語初期化
20 */
21 bool InitLanguage(){
22 chdir(g_BaseDir);
23 char *buf = LoadBinaryText(LANG_FILE_NAME), *str = buf, *eee;
24
25 // 絶対必要なもの
26 SyntaxError = "Syntax error";
27 InvalidVersion = "Invalid version";
28 UnsupportedVersion = "Unsupported version";
29 InvalidDatafileType = "Invalid datafile type";
30
31 try{
32 if(!(str = Space(eee = str))) return false;
33 if(!(str = BeginBlock(eee = str, "DatafileHeader"))) return false;
34 float version;
35 if(!(str = AsgnFloat(eee = str, "RailSimVersion", &version))) throw CSynErr(eee);
36 if(version<2.02f) throw CSynErr(eee, "%s: %.2f", lang(InvalidVersion), version);
37 if(RAILSIM_VERSION<version) throw CSynErr(eee, "%s: %.2f", lang(UnsupportedVersion), version);
38 string datafiletype;
39 if(!(str = AsgnIdentifier(eee = str, "DatafileType", &datafiletype))) throw CSynErr(eee);
40 if(datafiletype!="Language") throw CSynErr(eee, lang(InvalidDatafileType));
41 if(!(str = EndBlock(eee = str))) throw CSynErr(eee, ERR_ENDBLOCK);
42
43 if(!(str = BeginBlock(eee = str, "Language"))) throw CSynErr(eee);
44 if(!(str = AsgnString(eee = str, "Name", &g_LanguageName))) throw CSynErr(eee);
45 if(!(str = EndBlock(eee = str))) throw CSynErr(eee, ERR_ENDBLOCK);
46
47 if(!(str = BeginBlock(eee = str, "Resource"))) throw CSynErr(eee);
48
49 char **lang_id_list = new char *[1024];
50 char **lang_id = lang_id_list;
51 #define PROC_LANG(a) *lang_id++ = #a;
52 #include "LanguageID.h"
53 *lang_id = NULL;
54 string **lang_str_list = new string *[1024];
55 string **lang_str = lang_str_list;
56 #define PROC_LANG(a) *lang_str++ = &a;
57 #include "LanguageID.h"
58 *lang_str = NULL;
59 lang_id = lang_id_list;
60 lang_str = lang_str_list;
61 while(*lang_id){
62 if(!(str = AsgnString(eee = str, *lang_id, *lang_str))) throw CSynErr(eee);
63 lang_id++;
64 lang_str++;
65 }
66 delete [] lang_id_list;
67 delete [] lang_str_list;
68
69 if(!(str = EndBlock(eee = str))) throw CSynErr(eee, ERR_ENDBLOCK);
70 }
71 catch(CSynErr err){
72 err.Handle(FlashIn("%s <%s>", LANG_FILE_NAME, "Layout"), buf);
73 return false;
74 }
75 DELETE_A(buf);
76
77 g_DayOfWeek[0] = lang(Sun);
78 g_DayOfWeek[1] = lang(Mon);
79 g_DayOfWeek[2] = lang(Tue);
80 g_DayOfWeek[3] = lang(Wed);
81 g_DayOfWeek[4] = lang(Thu);
82 g_DayOfWeek[5] = lang(Fri);
83 g_DayOfWeek[6] = lang(Sat);
84
85 return true;
86 }
87
88 } // namespace LanguageResource

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26