From ee37b4d210b6c66d3b7484bf1c32c651b3c5e6e9 Mon Sep 17 00:00:00 2001 From: John Zaitseff Date: Tue, 19 Jul 2011 23:24:17 +1000 Subject: [PATCH] Add the --no-encrypt command-line option --- src/fileio.c | 3 ++- src/globals.c | 5 +++-- src/globals.h | 1 + src/trader.c | 19 +++++++++++++------ 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/fileio.c b/src/fileio.c index 92ad89f..55b442e 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -329,7 +329,8 @@ bool save_game (int num) err_exit_nomem(); } - crypt_key = game_file_crypt_key[randi(GAME_FILE_CRYPT_KEY_SIZE)]; + crypt_key = option_no_encrypt ? 0 : + game_file_crypt_key[randi(GAME_FILE_CRYPT_KEY_SIZE)]; // Create the data directory, if needed data_dir = data_directory(); diff --git a/src/globals.c b/src/globals.c index 9a3c6b6..bcf88d9 100644 --- a/src/globals.c +++ b/src/globals.c @@ -85,8 +85,9 @@ int game_num = 0; // Game number (1-9) bool quit_selected = false; // Is a player trying to quit the game? bool abort_game = false; // Abort game without declaring winner? -bool option_no_color = false; // True if --no-color was specified -int option_max_turn = 0; // Max. turns if --max-turn was specified +bool option_no_color = false; // True if --no-color was specified +bool option_no_encrypt = false; // True if --no-encrypt was specified +int option_max_turn = 0; // Max. turns if --max-turn was specified /***********************************************************************/ diff --git a/src/globals.h b/src/globals.h index 3b08b4f..027ae73 100644 --- a/src/globals.h +++ b/src/globals.h @@ -198,6 +198,7 @@ extern bool quit_selected; // Is a player trying to quit the game? extern bool abort_game; // Abort game without declaring winner? extern bool option_no_color; // True if --no-color was specified +extern bool option_no_encrypt; // True if --no-encrypt was specified extern int option_max_turn; // Max. turns if --max-turn was specified diff --git a/src/trader.c b/src/trader.c index a59c197..de7816c 100644 --- a/src/trader.c +++ b/src/trader.c @@ -43,6 +43,7 @@ enum options_char { OPTION_NO_COLOR = 1, + OPTION_NO_ENCRYPT, OPTION_MAX_TURN }; @@ -51,12 +52,13 @@ static const char options_short[] = "hV"; // -V, --version static struct option const options_long[] = { - { "help", no_argument, NULL, 'h' }, - { "version", no_argument, NULL, 'V' }, - { "no-color", no_argument, NULL, OPTION_NO_COLOR }, - { "no-colour", no_argument, NULL, OPTION_NO_COLOR }, - { "max-turn", required_argument, NULL, OPTION_MAX_TURN }, - { NULL, 0, NULL, 0 } + { "help", no_argument, NULL, 'h' }, + { "version", no_argument, NULL, 'V' }, + { "no-color", no_argument, NULL, OPTION_NO_COLOR }, + { "no-colour", no_argument, NULL, OPTION_NO_COLOR }, + { "no-encrypt", no_argument, NULL, OPTION_NO_ENCRYPT }, + { "max-turn", required_argument, NULL, OPTION_MAX_TURN }, + { NULL, 0, NULL, 0 } }; @@ -215,6 +217,11 @@ void process_cmdline (int argc, char *argv[]) option_no_color = true; break; + case OPTION_NO_ENCRYPT: + // --no-encrypt: don't encrypt game files + option_no_encrypt = true; + break; + case OPTION_MAX_TURN: // --max-turn: specify the maximum turn number option_max_turn = strtol(optarg, &p, 10);