diff --git a/gamedata/__game_list b/gamedata/__game_list index 272938e97..0e22256fb 100644 --- a/gamedata/__game_list +++ b/gamedata/__game_list @@ -3,11 +3,11 @@ arma3server "Arma 3" bb2server "BrainBread 2" bmdmserver "Black Mesa" bsserver "Blade Symphony" +ccserver "Codename CURE" csczserver "Counter Strike Condition Zero" csgoserver "Counter Strike Global Offensive" csserver "Counter Strike" cssserver "Counter Strike Source" -cureserver "Codename CURE" dabserver "Double Action Boogaloo" dmcserver "Deathmatch Classic" dodserver "Day Of Defeat" @@ -32,11 +32,13 @@ ns2server "Natural Selection 2" opforserver "Opposing Force" pvkiiserver "Pirates, Vikings, and Knights II" pzserver "Project Zomboid" +qlserver "Quake Live" ricochetserver "Ricochet" roserver "Red Orchestra" sbserver "StarBound" sdtdserver "7 Days To Die" ss3sserver "Serious Sam 3 BFE" +svencoopserver "Sven Co-Op" terrariaserver "Terraria" tf2server "Team Fortress 2" tfcserver "Team Fortress Classic" diff --git a/gamedata/_default b/gamedata/_default index 7fe5b5ff8..ce229ef73 100644 --- a/gamedata/_default +++ b/gamedata/_default @@ -2,6 +2,9 @@ # _default # Base defaults for all games +# Pull in base functions for gamedata +fn_import_game_settings _functions + # Default settings. This group includes a lot of blanks just so that the comments are set (and the engine/game files will show blank values to remind people to set them). fn_set_game_setting settings "backupdir" "\${lgsmdir}/backups" "Backup Directory" fn_set_game_setting settings "map" "--EMPTY--" "Default map to load" diff --git a/gamedata/_functions b/gamedata/_functions new file mode 100644 index 000000000..bc0620c75 --- /dev/null +++ b/gamedata/_functions @@ -0,0 +1,5 @@ +# Functions for gamedata +fn_random() { + len=${1:-12} + echo "$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w ${len} | head -n 1)" +} diff --git a/gamedata/_goldsource b/gamedata/_goldsource index 48656f53a..63f7e4f2a 100644 --- a/gamedata/_goldsource +++ b/gamedata/_goldsource @@ -15,3 +15,9 @@ fn_set_game_setting settings "executable" "./hlds_run" # Game Parameters fn_set_game_setting parms_plus "ip" "\${ip}" fn_set_game_setting parms_plus "clientport" "\${clientport}" + +# https://developer.valvesoftware.com/wiki/Command_Line_Options#Command-line_parameters_2 +fn_parms(){ +parms="-game ${game} -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${map} -maxplayers ${maxplayers}" +} + diff --git a/gamedata/_idtech3 b/gamedata/_idtech3 new file mode 100644 index 000000000..518513595 --- /dev/null +++ b/gamedata/_idtech3 @@ -0,0 +1,42 @@ +# Game Settings File +# _idtech3 +# id Tech 3 + +# Import default settings +fn_import_game_settings _steam +fn_import_game_settings _parms + +# Dependencies +fn_set_game_setting settings "arch" "x64" "Architecture to use (x86|x64)" + +fn_set_game_setting settings "systemdir" "\${filesdir}" +fn_set_game_setting settings "executabledir" "\${filesdir}" +fn_set_game_setting settings "executable" "./run_server_\${arch}.sh" +fn_set_game_setting settings "servercfg" "\${servicename}.cfg" +fn_set_game_setting settings "servercfgdir" "\${filesdir}/baseq3" +fn_set_game_setting settings "servercfgfullpath" "\${servercfgdir}/\${servercfg}" +fn_set_game_setting settings "servercfgdefault" "\${servercfgdir}/lgsm-default.cfg" + +# Game Parameters +fn_set_game_parm parms_set "net_strict" "1" "Net Strict" +fn_set_game_parm parms_set "net_ip" "\${ip}" "Server IP" +fn_set_game_parm parms_set "net_port" "27960" "Server Port" +fn_set_game_parm parms_set "fs_homepath" "\${filesdir}/\${net_port}" "Filesystem Home Path" +fn_set_game_parm parms_set "zmq_rcon_enable" "1" "RCON Enabled" +fn_set_game_parm parms_set "zmq_rcon_port" "28960" "RCON Port" +fn_set_game_parm parms_set "zmq_rcon_password" "$(fn_random)" "RCON Password" +fn_set_game_parm parms_set "zmq_stats_enable" "1" "Stats Enabled" +fn_set_game_parm parms_set "zmq_stats_password" "$(fn_random)" "Stats Password" +fn_set_game_parm parms_set "zmq_stats_port" "\${net_port}" "Stats Port" +fn_set_game_parm parms_set "sv_mapPoolFile" "mappool.txt" "Map Pool File" + +fn_set_game_parm parms_plus "exec" "\${servercfg}" "Server config file" + +# This is the way we create a script that collates and parses the parameters +fn_parms(){ + parms_set="$(fn_process_parmlist "\+set " ${settingsdir}/parms_set)" + parms_minus="$(fn_process_parmlist "\-" ${settingsdir}/parms_minus)" + parms_plus="$(fn_process_parmlist "\+" ${settingsdir}/parms_plus)" + parms="$(eval "echo \"${parms_minus} ${server_parms} ${parms_set} ${parms_plus}\"")" +} + diff --git a/gamedata/_parms b/gamedata/_parms new file mode 100644 index 000000000..29c5047dc --- /dev/null +++ b/gamedata/_parms @@ -0,0 +1,19 @@ +# Game Settings File +# _parms +# Common parameter functions + +apply_shell_expansion() { + declare file="$1" + declare data=$(< "$file") + declare delimiter="__apply_shell_expansion_delimiter__" + declare command="cat <<$delimiter"$'\n'"$data"$'\n'"$delimiter" + eval "$command" +} + +# Process parameter list +fn_process_parmlist(){ + prefix=$1 + file=$2 + # Expand variables, remove empties, strip = and " and prefix argument + echo $(printf "%s\n" "$(apply_shell_expansion "${file}")" | grep -v '=""' | sed -e "s/^\([^#=]\+\)=\"/${prefix}\1 /g" -e 's/\"$//g') +} diff --git a/gamedata/_parms_plusminus b/gamedata/_parms_plusminus index bde4c8040..f6d0ff180 100644 --- a/gamedata/_parms_plusminus +++ b/gamedata/_parms_plusminus @@ -1,22 +1,7 @@ # Game Settings File # _parms_plusminus # Parameter parsing with "+" and "-" sorting - -apply_shell_expansion() { - declare file="$1" - declare data=$(< "$file") - declare delimiter="__apply_shell_expansion_delimiter__" - declare command="cat <<$delimiter"$'\n'"$data"$'\n'"$delimiter" - eval "$command" -} - -# Process parameter list -fn_process_parmlist(){ - prefix=$1 - file=$2 - # Expand variables, remove empties, strip = and " and prefix argument - echo $(printf "%s\n" "$(apply_shell_expansion "${file}")" | grep -v '=""' | sed -e "s/^\([^#=]\+\)=\"/${prefix}\1 /g" -e 's/\"$//g') -} +fn_import_game_settings _parms # This is the way we create a script that collates and parses the parameters fn_parms(){ parms_minus="$(fn_process_parmlist "\-" ${settingsdir}/parms_minus)" diff --git a/gamedata/cureserver b/gamedata/ccserver similarity index 100% rename from gamedata/cureserver rename to gamedata/ccserver diff --git a/gamedata/qlserver b/gamedata/qlserver new file mode 100644 index 000000000..c8f8c7300 --- /dev/null +++ b/gamedata/qlserver @@ -0,0 +1,7 @@ +# Game Settings File +# qlserver +# Quake Live +fn_import_game_settings _idtech3 + +fn_set_game_setting settings "appid" "349090" +fn_set_game_setting settings "gamename" "Quake Live" diff --git a/gamedata/svencoopserver b/gamedata/svencoopserver new file mode 100644 index 000000000..18ceb48f3 --- /dev/null +++ b/gamedata/svencoopserver @@ -0,0 +1,10 @@ +# Game Settings File +# Import Engine +fn_import_game_settings _goldsource + +fn_set_game_setting settings "appid" "276060" +fn_set_game_setting settings "map" "svencoop1" +fn_set_game_setting settings "game" "svencoop" +fn_set_game_setting settings "gamename" "Sven Co-Op" +fn_set_game_setting settings "maxplayers" "16" +fn_set_game_setting settings "executable" "./svends_run" diff --git a/old-games-no-longer-used/GarrysMod/addons.sh b/tools/addons.sh similarity index 100% rename from old-games-no-longer-used/GarrysMod/addons.sh rename to tools/addons.sh diff --git a/old-games-no-longer-used/Insurgency/manifest.sh b/tools/manifest.sh similarity index 100% rename from old-games-no-longer-used/Insurgency/manifest.sh rename to tools/manifest.sh