From 42676e567796c834f6974bb3c5db535ef86e0be8 Mon Sep 17 00:00:00 2001 From: Jared Ballou Date: Tue, 9 Feb 2016 20:15:11 -0500 Subject: [PATCH 1/2] Moved gmod updater and GitHub manifest POC scripts to tools, from the old-data files --- {old-games-no-longer-used/GarrysMod => tools}/addons.sh | 0 {old-games-no-longer-used/Insurgency => tools}/manifest.sh | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {old-games-no-longer-used/GarrysMod => tools}/addons.sh (100%) rename {old-games-no-longer-used/Insurgency => tools}/manifest.sh (100%) 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 From 2cb800046d3e83b813ae8302ddaca5919aa5bf40 Mon Sep 17 00:00:00 2001 From: Jared Ballou Date: Fri, 12 Feb 2016 14:31:14 -0500 Subject: [PATCH 2/2] Added Quake Live and Sven Coop to the gamedata. Split up some gamedata functions into sub-files. Probably going to move the include files into separate subdirectories of gamedata to separate engines from parms for instance. --- gamedata/__game_list | 4 ++- gamedata/_default | 3 +++ gamedata/_functions | 5 ++++ gamedata/_goldsource | 6 +++++ gamedata/_idtech3 | 42 +++++++++++++++++++++++++++++++ gamedata/_parms | 19 ++++++++++++++ gamedata/_parms_plusminus | 17 +------------ gamedata/{cureserver => ccserver} | 0 gamedata/qlserver | 7 ++++++ gamedata/svencoopserver | 10 ++++++++ 10 files changed, 96 insertions(+), 17 deletions(-) create mode 100644 gamedata/_functions create mode 100644 gamedata/_idtech3 create mode 100644 gamedata/_parms rename gamedata/{cureserver => ccserver} (100%) create mode 100644 gamedata/qlserver create mode 100644 gamedata/svencoopserver 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"