18 |
|
|
19 |
|
static const char* defaultSection = "options"; |
20 |
|
|
21 |
+ |
static char invalidCurParamaters[1000] = ""; |
22 |
+ |
static char invalidTotalParamaters[3000] = ""; |
23 |
+ |
|
24 |
|
void DDrConfig_PrintHelp(); |
25 |
|
|
26 |
|
|
27 |
|
ConfigSection_t config[] = { |
28 |
|
{ "patches", "Patches", { |
29 |
|
{ "alttab", |
30 |
< |
"Allows user to switch applications while in Oni (Alt-Tab) and use Windows key, however it may enable the screensaver as well.", |
30 |
> |
"Allows to Alt-Tab out of Oni and use Windows key. May enable the screensaver as well.", |
31 |
|
C_BOOL, |
32 |
|
{.intBoolVal = true}, |
33 |
|
{.intBoolVal = true} }, |
34 |
|
{ "argb8888", |
35 |
< |
"Textures using ARGB8888 can be used.", |
35 |
> |
"Allows using textures with ARGB8888.", |
36 |
|
C_BOOL, |
37 |
|
{.intBoolVal = true}, |
38 |
|
{.intBoolVal = true} }, |
41 |
|
C_BOOL, |
42 |
|
{.intBoolVal = true}, |
43 |
|
{.intBoolVal = true} }, |
41 |
– |
{ "bsl", |
42 |
– |
"Enables d_regen (unfinished) and prevents fly-in portraits from being stretched when playing in widescreen resolutions.", |
43 |
– |
C_BOOL, |
44 |
– |
{.intBoolVal = true}, |
45 |
– |
{.intBoolVal = true} }, |
46 |
– |
{ "cheater", |
47 |
– |
"Adds new cheat codes (see section below).", |
48 |
– |
C_BOOL, |
49 |
– |
{.intBoolVal = true}, |
50 |
– |
{.intBoolVal = true} }, |
44 |
|
{ "cheatsenabled", |
45 |
|
"Enables cheats without having to beat the game first.", |
46 |
|
C_BOOL, |
47 |
|
{.intBoolVal = true}, |
48 |
|
{.intBoolVal = true} }, |
49 |
|
{ "cheattable", |
50 |
< |
"Replaces Oni's cheat table with table that includes new cheats (see section below).", |
50 |
> |
"Replaces Oni's cheat table with table that includes new cheats including devmode.", |
51 |
|
C_BOOL, |
52 |
|
{.intBoolVal = true}, |
53 |
|
{.intBoolVal = true} }, |
54 |
|
{ "chinese", |
55 |
< |
"Allow for chinese fonts to be shown.", |
55 |
> |
"Allow for chinese fonts to be shown if the required DLL is available.", |
56 |
|
C_BOOL, |
57 |
|
{.intBoolVal = true}, |
58 |
|
{.intBoolVal = true} }, |
66 |
|
C_BOOL, |
67 |
|
{.intBoolVal = true}, |
68 |
|
{.intBoolVal = true} }, |
69 |
+ |
{ "d_regen", |
70 |
+ |
"Enables script command d_regen (query/set regeneration for any character).", |
71 |
+ |
C_BOOL, |
72 |
+ |
{.intBoolVal = true}, |
73 |
+ |
{.intBoolVal = true} }, |
74 |
|
{ "daodandisplayenum", |
75 |
< |
"Offers more display modes in the Options menu.", |
75 |
> |
"Offers a more accurate list of available display modes in the Options menu.", |
76 |
|
C_BOOL, |
77 |
|
{.intBoolVal = true}, |
78 |
|
{.intBoolVal = true} }, |
79 |
|
{ "directinput", |
80 |
< |
"Forces on DirectInput.", |
80 |
> |
"Enforces the usage of DirectInput on every system. Should be off for Linux/Wine.", |
81 |
|
C_BOOL, |
82 |
|
{.intBoolVal = true}, |
83 |
|
{.intBoolVal = true} }, |
84 |
|
{ "disablecmdline", |
85 |
< |
"Replaces existing command line parser with Daodan's in order to add new commands. Meant to be used with getcmdline.", |
85 |
> |
"Disables Oni's existing command line parser as Daodan has its own.", |
86 |
|
C_BOOL, |
87 |
|
{.intBoolVal = true}, |
88 |
|
{.intBoolVal = true} }, |
91 |
|
C_BOOL, |
92 |
|
{.intBoolVal = true}, |
93 |
|
{.intBoolVal = true} }, |
96 |
– |
{ "getcmdline", |
97 |
– |
"Replaces existing command line parser with Daodan's in order to add new commands. Meant to be used with disablecmdline.", |
98 |
– |
C_BOOL, |
99 |
– |
{.intBoolVal = true}, |
100 |
– |
{.intBoolVal = true} }, |
94 |
|
{ "hdscreens_lowres", |
95 |
< |
"Allow HD screens with resolution < 1024*768.", |
95 |
> |
"Allow HD intro/ending screens on game resolutions smaller than 1024x768.", |
96 |
|
C_BOOL, |
97 |
|
{.intBoolVal = true}, |
98 |
|
{.intBoolVal = true} }, |
102 |
|
{.intBoolVal = true}, |
103 |
|
{.intBoolVal = true} }, |
104 |
|
{ "kickguns", |
105 |
< |
"Unfinished, do not use.", |
105 |
> |
"EXPERIMENTAL! Unfinished, do not use.", |
106 |
> |
C_BOOL, |
107 |
> |
{.intBoolVal = false}, |
108 |
> |
{.intBoolVal = false} }, |
109 |
> |
{ "killvtune", |
110 |
> |
"Prevent loading of vtuneapi.dll.", |
111 |
|
C_BOOL, |
112 |
|
{.intBoolVal = false}, |
113 |
|
{.intBoolVal = false} }, |
117 |
|
{.intBoolVal = true}, |
118 |
|
{.intBoolVal = true} }, |
119 |
|
{ "levelplugins", |
120 |
< |
"Allows level files to be loaded from the GDF which do not end in \"_Final\".", |
120 |
> |
"Allows level files to be loaded which do not end in \"_Final\".", |
121 |
|
C_BOOL, |
122 |
|
{.intBoolVal = true}, |
123 |
|
{.intBoolVal = true} }, |
124 |
|
{ "newweap", |
125 |
< |
"Picking up a weapon displays a message containing the weapon name and amount of ammo.", |
125 |
> |
"Standing above a weapon displays a message containing the weapon name and amount of ammo.", |
126 |
|
C_BOOL, |
127 |
|
{.intBoolVal = true}, |
128 |
|
{.intBoolVal = true} }, |
136 |
|
C_BOOL, |
137 |
|
{.intBoolVal = true}, |
138 |
|
{.intBoolVal = true} }, |
141 |
– |
{ "particledisablebit", |
142 |
– |
"Unlocks particle action disabling/enabling bits for all events so that a particle event can occur multiple times.", |
143 |
– |
C_BOOL, |
144 |
– |
{.intBoolVal = false}, |
145 |
– |
{.intBoolVal = false} }, |
139 |
|
{ "pathfinding", |
140 |
< |
"Multiplies size of pathfinding grid cache by eight in order to prevent crashes in large levels.", |
140 |
> |
"Size of pathfinding grid cache increased by eight times in order to prevent crashes in large levels.", |
141 |
|
C_BOOL, |
142 |
|
{.intBoolVal = true}, |
143 |
|
{.intBoolVal = true} }, |
157 |
|
{.intBoolVal = false}, |
158 |
|
{.intBoolVal = false} }, |
159 |
|
{ "showtriggervolumes", |
160 |
< |
"Allows BSL variable \"show_triggervolumes\" to work when set to 1.", |
160 |
> |
"Allows BSL variable \"show_triggervolumes\" and Ctrl+Shift+X (in devmode) to work.", |
161 |
|
C_BOOL, |
162 |
|
{.intBoolVal = true}, |
163 |
|
{.intBoolVal = true} }, |
164 |
|
{ "throwtest", |
165 |
< |
"Not recommended for use; experiment with allowing enemies to be thrown over railings.", |
165 |
> |
"EXPERIMENTAL! Experiment with allowing enemies to be thrown over railings.", |
166 |
|
C_BOOL, |
167 |
|
{.intBoolVal = false}, |
168 |
|
{.intBoolVal = false} }, |
169 |
+ |
{ "usedaodanbsl", |
170 |
+ |
"Adds new BSL commands.", |
171 |
+ |
C_BOOL, |
172 |
+ |
{.intBoolVal = true}, |
173 |
+ |
{.intBoolVal = true} }, |
174 |
|
{ "usedaodangl", |
175 |
< |
"Provides an improved windowed mode (-noswitch); this patch is known to break the hiding of the Windows taskbar in fullscreen mode.", |
175 |
> |
"Provides an improved windowed mode (-noswitch).", |
176 |
|
C_BOOL, |
177 |
|
{.intBoolVal = true}, |
178 |
|
{.intBoolVal = true} }, |
181 |
|
C_BOOL, |
182 |
|
{.intBoolVal = true}, |
183 |
|
{.intBoolVal = true} }, |
184 |
+ |
{ "widescreenportraits", |
185 |
+ |
"Prevents fly-in portraits from being stretched when playing in widescreen resolutions.", |
186 |
+ |
C_BOOL, |
187 |
+ |
{.intBoolVal = true}, |
188 |
+ |
{.intBoolVal = true} }, |
189 |
|
{ "wpfadetime", |
190 |
|
"Adds working function for existing BSL command wp_fadetime, sets fade time to 4800.", |
191 |
|
C_BOOL, |
195 |
|
} }, |
196 |
|
{ "options", "Options", { |
197 |
|
{ "border", |
198 |
< |
"If \"windowhack\" patch is active, make sure game window has border in windowed mode.", |
198 |
> |
"Add a border if in windowed mode and \"usedaodangl\" patch is active.", |
199 |
|
C_BOOL, |
200 |
|
{.intBoolVal = true}, |
201 |
|
{.intBoolVal = true} }, |
202 |
|
{ "debug", |
203 |
< |
"???", |
203 |
> |
"Not useful, probably does nothing.", |
204 |
|
EXT_BOOL, |
205 |
|
{.intBoolVal = false }, |
206 |
|
{.extBoolVal = &AKgDebug_DebugMaps } }, |
207 |
|
{ "debugfiles", |
208 |
< |
"???", |
208 |
> |
"Not useful, probably does nothing.", |
209 |
|
EXT_BOOL, |
210 |
|
{.intBoolVal = false }, |
211 |
|
{.extBoolVal = &BFgDebugFileEnable } }, |
212 |
|
{ "findsounds", |
213 |
< |
"???", |
213 |
> |
"Not useful, extends output of sound_list_broken_links.", |
214 |
|
EXT_BOOL, |
215 |
|
{.intBoolVal = false }, |
216 |
|
{.extBoolVal = &SSgSearchOnDisk } }, |
217 |
|
{ "gamma", |
218 |
< |
"Enable gamma slider in fullscreen.", |
218 |
> |
"Enable gamma slider in fullscreen, disable in windowed mode.", |
219 |
|
C_BOOL, |
220 |
|
{.intBoolVal = true}, |
221 |
|
{.intBoolVal = true} }, |
225 |
|
{.intBoolVal = 0}, |
226 |
|
{.callback = DDrConfig_PrintHelp} }, |
227 |
|
{ "ignore_private_data", |
228 |
< |
"? No effect ?", |
228 |
> |
"Not useful, probably does nothing.", |
229 |
|
EXT_BOOL, |
230 |
|
{.intBoolVal = false }, |
231 |
|
{.extBoolVal = &opt_ignore_private_data } }, |
232 |
|
{ "sound", |
233 |
< |
"???", |
233 |
> |
"Enable sound.", |
234 |
|
EXT_BOOL, |
235 |
|
{.intBoolVal = true }, |
236 |
|
{.extBoolVal = &opt_sound } }, |
237 |
|
{ "switch", |
238 |
< |
"Always switch screen to resolution on Oni's Options screen, making the game fullscreen; opposite of Oni's built-in argument \"noswitch\".", |
238 |
> |
"Switch to fullscreen instead of staying in a window.", |
239 |
|
EXT_BOOL, |
240 |
|
{.intBoolVal = true}, |
241 |
|
{.extBoolVal = &M3gResolutionSwitch} }, |
244 |
|
C_BOOL, |
245 |
|
{.intBoolVal = false}, |
246 |
|
{.intBoolVal = false} }, |
244 |
– |
{ "usedaodanbsl", |
245 |
– |
"Adds new BSL commands (see below).", |
246 |
– |
C_BOOL, |
247 |
– |
{.intBoolVal = true}, |
248 |
– |
{.intBoolVal = true} }, |
247 |
|
{ "language", |
248 |
|
"Localization for hardcoded strings (e.g. \"Savepoints\").", |
249 |
|
C_STRING, |
477 |
|
default: |
478 |
|
STARTUPMESSAGE("Config value type unknown: %d", co->type); |
479 |
|
} |
480 |
+ |
} else { |
481 |
+ |
char buf[50]; |
482 |
+ |
sprintf_s(buf, sizeof(buf), " %s.%s\n", section, name); |
483 |
+ |
if (strlen(buf) + strlen(invalidCurParamaters) < sizeof(invalidCurParamaters) - 1) { |
484 |
+ |
strcpy(invalidCurParamaters + strlen(invalidCurParamaters), buf); |
485 |
+ |
} |
486 |
|
} |
487 |
|
} |
488 |
|
|
552 |
|
STARTUPMESSAGE("Error reading daodan.ini, check your syntax!", 0); |
553 |
|
STARTUPMESSAGE("Finished parsing", 0); |
554 |
|
|
555 |
< |
|
555 |
> |
if (strlen(invalidCurParamaters) > 0) |
556 |
> |
{ |
557 |
> |
sprintf_s(invalidTotalParamaters, sizeof(invalidTotalParamaters), "In %s:\n%s\n", iniName, invalidCurParamaters); |
558 |
> |
invalidCurParamaters[0] = 0; |
559 |
> |
} |
560 |
|
|
561 |
|
STARTUPMESSAGE("Parsing command line...", 0); |
562 |
|
DDrConfig_ParseCommandLine(argc, argv); |
563 |
|
STARTUPMESSAGE("Finished parsing", 0); |
564 |
|
|
565 |
+ |
if (strlen(invalidCurParamaters) > 0) |
566 |
+ |
{ |
567 |
+ |
sprintf_s(invalidTotalParamaters, sizeof(invalidTotalParamaters), "%sOn command line:\n%s\n", invalidTotalParamaters, invalidCurParamaters); |
568 |
+ |
} |
569 |
+ |
|
570 |
+ |
if (strlen(invalidTotalParamaters) > 0) |
571 |
+ |
{ |
572 |
+ |
char msg[3200]; |
573 |
+ |
sprintf_s(msg, sizeof(msg), "Invalid parameters given:\n%sContinue launching Oni?", invalidTotalParamaters); |
574 |
+ |
int res = MessageBox(NULL, msg, "Parameters invalid", MB_ICONWARNING | MB_YESNO | MB_DEFBUTTON1); |
575 |
+ |
if (res == IDNO) { |
576 |
+ |
exit(0); |
577 |
+ |
} |
578 |
+ |
} |
579 |
+ |
|
580 |
|
// DDrConfig_Print(); |
581 |
|
} |
582 |
|
|