@@ -74,11 +74,11 @@ static void print_help(const OptionList &allowed_options);
74
74
static void print_allowed_options (const OptionList &allowed_options);
75
75
static void print_version ();
76
76
static void print_worldspecs (const std::vector<WorldSpec> &worldspecs,
77
- std::ostream &os);
77
+ std::ostream &os, bool print_name = true , bool print_path = true );
78
78
static void print_modified_quicktune_values ();
79
79
80
80
static void list_game_ids ();
81
- static void list_worlds ();
81
+ static void list_worlds (bool print_name, bool print_path );
82
82
static void setup_log_params (const Settings &cmd_args);
83
83
static bool create_userdata_path ();
84
84
static bool init_common (const Settings &cmd_args, int argc, char *argv[]);
@@ -160,9 +160,15 @@ int main(int argc, char *argv[])
160
160
return 0 ;
161
161
}
162
162
163
- // List worlds if requested
164
- if (cmd_args.exists (" world" ) && cmd_args.get (" world" ) == " list" ) {
165
- list_worlds ();
163
+ // List worlds, world names, and world paths if requested
164
+ if (cmd_args.exists (" worldlist" )) {
165
+ if (cmd_args.get (" worldlist" ) == " name" ) {
166
+ list_worlds (true , false );
167
+ } else if (cmd_args.get (" worldlist" ) == " path" ) {
168
+ list_worlds (false , true );
169
+ } else {
170
+ list_worlds (true , true );
171
+ }
166
172
return 0 ;
167
173
}
168
174
@@ -252,9 +258,12 @@ static void set_allowed_options(OptionList *allowed_options)
252
258
allowed_options->insert (std::make_pair (" map-dir" , ValueSpec (VALUETYPE_STRING,
253
259
_ (" Same as --world (deprecated)" ))));
254
260
allowed_options->insert (std::make_pair (" world" , ValueSpec (VALUETYPE_STRING,
255
- _ (" Set world path (implies local game) ('list' lists all) " ))));
261
+ _ (" Set world path (implies local game)" ))));
256
262
allowed_options->insert (std::make_pair (" worldname" , ValueSpec (VALUETYPE_STRING,
257
263
_ (" Set world by name (implies local game)" ))));
264
+ allowed_options->insert (std::make_pair (" worldlist" , ValueSpec (VALUETYPE_STRING,
265
+ _ (" Get list of worlds (implies local game) ('path' lists paths, "
266
+ " 'name' lists names, 'both' lists both)" ))));
258
267
allowed_options->insert (std::make_pair (" quiet" , ValueSpec (VALUETYPE_FLAG,
259
268
_ (" Print to console errors only" ))));
260
269
allowed_options->insert (std::make_pair (" info" , ValueSpec (VALUETYPE_FLAG,
@@ -336,24 +345,26 @@ static void list_game_ids()
336
345
std::cout << gameid <<std::endl;
337
346
}
338
347
339
- static void list_worlds ()
348
+ static void list_worlds (bool print_name, bool print_path )
340
349
{
341
350
std::cout << _ (" Available worlds:" ) << std::endl;
342
351
std::vector<WorldSpec> worldspecs = getAvailableWorlds ();
343
- print_worldspecs (worldspecs, std::cout);
352
+ print_worldspecs (worldspecs, std::cout, print_name, print_path );
344
353
}
345
354
346
355
static void print_worldspecs (const std::vector<WorldSpec> &worldspecs,
347
- std::ostream &os)
356
+ std::ostream &os, bool print_name, bool print_path )
348
357
{
349
358
for (const WorldSpec &worldspec : worldspecs) {
350
359
std::string name = worldspec.name ;
351
360
std::string path = worldspec.path ;
352
- if (name.find (' ' ) != std::string::npos)
353
- name = std::string (" '" ).append (name).append (" '" );
354
- path = std::string (" '" ).append (path).append (" '" );
355
- name = padStringRight (name, 14 );
356
- os << " " << name << " " << path << std::endl;
361
+ if (print_name && print_path) {
362
+ os << " \t " << name << " \t\t " << path << std::endl;
363
+ } else if (print_name) {
364
+ os << " \t " << name << std::endl;
365
+ } else if (print_path) {
366
+ os << " \t " << path << std::endl;
367
+ }
357
368
}
358
369
}
359
370
0 commit comments