|
1 | 1 | # SpaceEngine-localization |
2 | 2 | 使SpaceEngine支持更多字符以方便本地化 |
3 | 3 |
|
4 | | -ConsoleApplication:本地化文件生成器项目 |
5 | | - |
6 | | -Win32Project1:本地化补丁项目 |
7 | | - |
8 | | -~~eng-menu.psd:主菜单纹理~~ |
9 | | - |
10 | | -~~win1252-font.psd:字体纹理~~ |
11 | | - |
12 | | -**纹理请使用Release-\*\*.zip内的** |
13 | | - |
14 | | -其他:依赖库 |
15 | 4 |
|
16 | 5 |  |
17 | 6 |
|
18 | | - |
19 | | - |
20 | | -将Win32Project1项目生成的文件替换SpaceEngine 的vorbis.dll文件 |
21 | | - |
22 | | -生成器输入格式详见gui.txt |
23 | | - |
24 | | -<br>添加新版本支持只需在dllmain.cpp内的start函数按照格式添加偏移值,必要时需自行编写钩子函数 |
25 | | - |
26 | | -<br>1.0.1.0 支持980 974RC1 974RC2 974RC3 973 972 971 970 |
27 | | - |
28 | | -<br>980跟974\*,973以下分别共用字体纹理 |
29 | 7 |
|
30 | | -``` |
31 | | -if (Ver.HM == 0 && Ver.LM == 9 && Ver.HL == 8 && Ver.LL == 0) {//版本 |
32 | | -CanRun = true;//可以运行标志 |
33 | | -ReAdd = ReAdd980;//ASM内所需地址偏移 |
34 | | -sTexAdd = TexInitAdd[0];//可以是一个值,切换语言时钩子判定之后继续调用的偏移地址 |
35 | | -sStartAdd = StartAdd[0];//SE内置计时器的偏移值 |
36 | | -localePath = "data/locale";//locale目录相对路径 |
37 | | -//需要写入的资源 (类型PNG:CONFIG,文件名,释放路径,资源ID) |
38 | | -res.push_back(new RES(Type[1], ResName[0],localePath, ResId[0])); |
39 | | -res.push_back(new RES(Type[1], ResName[1], localePath, ResId[1])); |
40 | | -res.push_back(new RES(Type[1], ResName[2], localePath, ResId[2])); |
41 | | -res.push_back(new RES(Type[1], ResName[4], localePath, ResId[4])); |
42 | | -res.push_back(new RES(Type[0], ResName[5], localePath, IDR_GUI980)); |
43 | | -//修改内存所需的参数,(钩子函数,目标地址偏移,调用方式0xE8=CALL:0xE9=JMP,钩子大小), |
44 | | -RwMem.Add(CharAna, FunAdd980[0], 0xE8, 6);CharAna是字串处理钩子 |
45 | | -RwMem.Add(GetWidth980, FunAdd980[3], 0xE8, 6);//设置宽度 |
46 | | -RwMem.Add(GetCharXYOffAndWid, FunAdd980[4], 0xE9, 6);//设定坐标、偏移和宽度 |
47 | | -RwMem.Add(TexInit, FunAdd980[5], 0xE8,5);//判定是否需要初始化的钩子 |
48 | | -RwMem.Add(SetBackWid980, FunAdd980[6], 0xE8, 6);//设置背景黄条宽度 |
49 | | -} |
50 | | -``` |
0 commit comments