summaryrefslogtreecommitdiff
path: root/src/client/config.c
diff options
context:
space:
mode:
authorConnor Thomson <blumatrikz@gmail.com>2026-09-08 18:27:39 -0700
committerConnor Thomson <blumatrikz@gmail.com>2026-09-08 18:27:39 -0700
commitf1ddc12b68b4e4c8087962de25260470e6df2bea (patch)
tree7d0440a6402a9b0ef75ded23fa64b68534255bba /src/client/config.c
parent6025860a61386bf767b29c3ec5fd0d31285f1056 (diff)
Add tuxanci2 files
Diffstat (limited to 'src/client/config.c')
-rw-r--r--src/client/config.c227
1 files changed, 0 insertions, 227 deletions
diff --git a/src/client/config.c b/src/client/config.c
deleted file mode 100644
index 130fcdf..0000000
--- a/src/client/config.c
+++ /dev/null
@@ -1,227 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-#include "main.h"
-#include "list.h"
-#include "homeDirector.h"
-#include "textFile.h"
-#include "configFile.h"
-#include "config.h"
-
-typedef struct setting_int_struct {
- int key; /* identification key */
- char *param; /* parameter of the program */
- char *var; /* variable in the config file */
- int type; /* type of the data - string/number */
- int value_int; /* numeric data */
- char *value_str; /* textual data */
-} config_t;
-
-#define CONFIG_TYPE_INT 1
-#define CONFIG_TYPE_STR 2
-
-static config_t config_list[] =
-{
- { .key=CFG_NAME_RIGHT, .var="NAME_PLAYER_RIGHT", .param="--name-right", .type=CONFIG_TYPE_STR, .value_str="name1" },
- { .key=CFG_NAME_LEFT, .var="NAME_PLAYER_LEFT", .param="--name-left", .type=CONFIG_TYPE_STR, .value_str="name2" },
- { .key=CFG_COUNT_ROUND, .var="COUNT_ROUND", .param="--count", .type=CONFIG_TYPE_INT, .value_int=15 },
- { .key=CFG_AI, .var="AI", .param="--ai", .type=CONFIG_TYPE_INT, .value_int=0 },
- { .key=CFG_MUSIC, .var="MUSIC", .param="--music", .type=CONFIG_TYPE_INT, .value_int=1 },
- { .key=CFG_SOUND, .var="SOUND", .param="--sound", .type=CONFIG_TYPE_INT, .value_int=1 },
- { .key=CFG_ARENA, .var="ARENA", .param="--arena", .type=CONFIG_TYPE_STR, .value_str="FAGN" },
-
- { .key=CFG_GUN_DUAL_SIMPLE, .var="GUN_DUAL_SIMPLE", .param="--gun-dual-simple", .type=CONFIG_TYPE_INT, .value_int=1 },
- { .key=CFG_GUN_SCATTER, .var="GUN_SCATTER", .param="--gun-scatter", .type=CONFIG_TYPE_INT, .value_int=1 },
- { .key=CFG_GUN_TOMMY, .var="GUN_TOMMY", .param="--gun-tommy", .type=CONFIG_TYPE_INT, .value_int=1 },
- { .key=CFG_GUN_LASSER, .var="GUN_LASSER", .param="--gun-lasser", .type=CONFIG_TYPE_INT, .value_int=1 },
- { .key=CFG_GUN_MINE, .var="GUN_MINE", .param="--gun-mine", .type=CONFIG_TYPE_INT, .value_int=1 },
- { .key=CFG_GUN_BOMBBALL, .var="GUN_BOMBBALL", .param="--gun-bombball", .type=CONFIG_TYPE_INT, .value_int=1 },
-
- { .key=CFG_BONUS_SPEED, .var="BONUS_SPEED", .param="--bonus-speed", .type=CONFIG_TYPE_INT, .value_int=1 },
- { .key=CFG_BONUS_SHOT, .var="BONUS_SHOT", .param="--bonus-shot", .type=CONFIG_TYPE_INT, .value_int=1 },
- { .key=CFG_BONUS_TELEPORT, .var="BONUS_TELEPORT", .param="--bonus-teleport", .type=CONFIG_TYPE_INT, .value_int=1 },
- { .key=CFG_BONUS_GHOST, .var="BONUS_GHOST", .param="--bonus-ghost", .type=CONFIG_TYPE_INT, .value_int=1 },
- { .key=CFG_BONUS_4X, .var="BONUS_4X", .param="--bonus-4x", .type=CONFIG_TYPE_INT, .value_int=1 },
- { .key=CFG_BONUS_HIDDEN, .var="BONUS_HIDDEN", .param="--bonus-hidden", .type=CONFIG_TYPE_INT, .value_int=1 },
-
- { .key=CFG_GAME_TYPE, .var="GAME_TYPE", .param="--game-type", .type=CONFIG_TYPE_STR, .value_str="none" },
- { .key=CFG_NET_IP, .var="NET_IP", .param="--ip", .type=CONFIG_TYPE_STR, .value_str="127.0.0.1" },
- { .key=CFG_NET_PORT, .var="NET_PORT", .param="--port", .type=CONFIG_TYPE_STR, .value_str="6800" }
-};
-
-static textFile_t *config_file;
-
-static config_t *find_config(int key)
-{
- int i;
-
- for (i = 0; i < CONFIG_LIST_COUNT; i++) {
- if (config_list[i].key == key) {
- return &config_list[i];
- }
- }
-
- return NULL;
-}
-
-static void check_param()
-{
- int i;
-
- for (i = 0; i < CONFIG_LIST_COUNT; i++) {
- char *str;
-
- str = getParam(config_list[i].param);
-
- if (str != NULL) {
- if (config_list[i].type == CONFIG_TYPE_INT) {
- config_list[i].value_int = atoi(str);
- } else {
- if (config_list[i].value_str != NULL) {
- free(config_list[i].value_str);
- }
-
- config_list[i].value_str = strdup(str);
- }
- }
- }
-}
-
-int config_init()
-{
- config_load();
- check_param();
-
- return 0;
-}
-
-void config_load()
-{
- char path[STR_PATH_SIZE];
- char val[STR_SIZE];
- int i;
-
- sprintf(path, "%s%stuxanci.conf", home_director_get(), PATH_SEPARATOR);
-
- config_file = text_file_load(path);
-
- if (config_file == NULL) {
- error("Unable to load config file [%s]", path);
- debug("Creating config file [%s]", path);
-
- config_file = text_file_new(path);
- }
-
- if (config_file == NULL) {
- error("Unable to create config file [%s]", path);
- return;
- }
-
- for (i = 0; i < CONFIG_LIST_COUNT; i++) {
- if (config_list[i].type == CONFIG_TYPE_INT) {
- char str[STR_SIZE];
-
- sprintf(str, "%d", config_list[i].value_int);
- loadValueFromConfigFile(config_file, config_list[i].var, val, STR_SIZE, str);
- config_list[i].value_int = atoi(val);
- } else {
- loadValueFromConfigFile(config_file, config_list[i].var, val, STR_SIZE, config_list[i].value_str);
- config_list[i].value_str = strdup(val);
- }
- }
-}
-
-void config_save()
-{
- int i;
-
- if (config_file == NULL) {
- return;
- }
-
- for (i = 0; i < CONFIG_LIST_COUNT; i++) {
- if (config_list[i].type == CONFIG_TYPE_INT) {
- char str[STR_SIZE];
-
- sprintf(str, "%d", config_list[i].value_int);
- setValueInConfigFile(config_file, config_list[i].var, str);
- } else {
- setValueInConfigFile(config_file, config_list[i].var, config_list[i].value_str);
- }
- }
-
- text_file_save(config_file);
-}
-
-int config_get_int_value(int key)
-{
- config_t *tmp;
-
- tmp = find_config(key);
-
- assert(tmp != NULL);
- assert(tmp->type == CONFIG_TYPE_INT);
-
- return tmp->value_int;
-}
-
-char *config_get_str_value(int key)
-{
- config_t *tmp;
-
- tmp = find_config(key);
-
- assert(tmp != NULL);
- assert(tmp->type == CONFIG_TYPE_STR);
-
- return tmp->value_str;
-}
-
-void config_set_int_value(int key, int n)
-{
- config_t *tmp;
-
- tmp = find_config(key);
-
- assert(tmp != NULL);
- assert(tmp->type == CONFIG_TYPE_INT);
-
- tmp->value_int = n;
-}
-
-void config_set_str_value(int key, char *str)
-{
- config_t *tmp;
-
- tmp = find_config(key);
-
- assert(tmp != NULL);
- assert(tmp->type == CONFIG_TYPE_STR);
-
- if (tmp->value_str != NULL) {
- free(tmp->value_str); /* has to be allocated */
- }
-
- tmp->value_str = strdup(str);
-}
-
-int config_quit()
-{
- int i;
-
- config_save();
-
- if (config_file != NULL) {
- text_file_destroy(config_file);
- }
-
- for (i = 0; i < CONFIG_LIST_COUNT; i++) {
- if (config_list[i].type == CONFIG_TYPE_STR && config_list[i].value_str != NULL) {
- free(config_list[i].value_str);
- }
- }
-
- return 0;
-}