Browse Source

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.

pull/553/head
Jared Ballou 10 years ago
parent
commit
2cb800046d
  1. 4
      gamedata/__game_list
  2. 3
      gamedata/_default
  3. 5
      gamedata/_functions
  4. 6
      gamedata/_goldsource
  5. 42
      gamedata/_idtech3
  6. 19
      gamedata/_parms
  7. 17
      gamedata/_parms_plusminus
  8. 0
      gamedata/ccserver
  9. 7
      gamedata/qlserver
  10. 10
      gamedata/svencoopserver

4
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"

3
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"

5
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)"
}

6
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}"
}

42
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}\"")"
}

19
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')
}

17
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)"

0
gamedata/cureserver → gamedata/ccserver

7
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"

10
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"
Loading…
Cancel
Save