Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
26857087f9 | ||
|
|
a43e1cec86 | ||
|
|
d85e5f0d16 | ||
|
|
196b208af2 | ||
|
|
e731098dae | ||
| 81f7c798a9 | |||
|
|
91f9940aad | ||
|
|
6c17bfd942 | ||
| 94627e4c84 | |||
|
|
991885366b | ||
| b982a3b938 | |||
| 7c7c0b3fcb | |||
| 660d953263 | |||
| 29a321f217 | |||
|
|
05457131c1 | ||
| 3e27a1b5cb | |||
|
|
e3e8c9d402 | ||
| ba4be519bd | |||
| 81d416e55f | |||
| df0badafd1 | |||
| 4baa56d466 |
File diff suppressed because it is too large
Load Diff
77
Run.sh
77
Run.sh
@@ -1,50 +1,79 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||
OUTPUT_DIR="$2"
|
||||
CFG_FILE="$3"
|
||||
DEFAULT_CFG_FILE=UnrealTournament.ini
|
||||
CFG_FILE="${3:-$DEFAULT_CFG_FILE}"
|
||||
|
||||
|
||||
function add_iniKeyEx() {
|
||||
crudini --set $OUTPUT_DIR/System/$1 $2 __$3 $4
|
||||
# Warning: ugly hack with sed to allow multiple key instances + to remove space around '='
|
||||
sed -i "s/[[:space:]]*__$(echo $3 | sed -e 's/\([[\/.*]\|\]\)/\\&/g')[[:space:]]*=[[:space:]]*/$(echo $3 | sed -e 's/\([[\/.*]\|\]\)/\\&/g')=/g" $OUTPUT_DIR/System/$1
|
||||
}
|
||||
# !!Warning!! section is not considered
|
||||
function del_iniKeyEx() {
|
||||
sed -i "/[[:space:]]*$(echo $3 | sed -e 's/\([[\/.*]\|\]\)/\\&/g')[[:space:]]*=[[:space:]]*$(echo $4 | sed -e 's/\([[\/.*]\|\]\)/\\&/g')/d" $OUTPUT_DIR/System/$1
|
||||
}
|
||||
function add_iniKey() {
|
||||
add_iniKeyEx $CFG_FILE $1 $2 $3
|
||||
}
|
||||
# !!Warning!! section is not considered
|
||||
function del_iniKey() {
|
||||
del_iniKeyEx $CFG_FILE $1 $2 $3
|
||||
}
|
||||
function add_ServerPackage() {
|
||||
add_iniKey 'Engine.GameEngine' ServerPackages $1
|
||||
add_iniKey 'XC_Engine.XC_GameEngine' ServerPackages $1
|
||||
}
|
||||
function del_ServerPackage() {
|
||||
del_iniKey 'Engine.GameEngine' ServerPackages $1
|
||||
del_iniKey 'XC_Engine.XC_GameEngine' ServerPackages $1
|
||||
}
|
||||
function add_ServerActors() {
|
||||
add_iniKey 'Engine.GameEngine' ServerActors $1
|
||||
add_iniKey 'XC_Engine.XC_GameEngine' ServerActors $1
|
||||
}
|
||||
function del_ServerActors() {
|
||||
del_iniKey 'Engine.GameEngine' ServerActors $1
|
||||
del_iniKey 'XC_Engine.XC_GameEngine' ServerActors $1
|
||||
}
|
||||
function getmodprefix() {
|
||||
UFile=$(find $OUTPUT_DIR/System -type f -iname "SmartSB[[:digit:]]*\.u" -exec basename {} \;)
|
||||
BaseName="${UFile%.*}"
|
||||
echo "$BaseName"
|
||||
}
|
||||
function install() {
|
||||
cp $SCRIPT_DIR/Help $OUTPUT_DIR/Help -R
|
||||
cp $SCRIPT_DIR/System $OUTPUT_DIR/System -R
|
||||
cp $SCRIPT_DIR/Textures $OUTPUT_DIR/Textures -R
|
||||
rsync -a $SCRIPT_DIR/Help/ $OUTPUT_DIR/Help/ --exclude '.git'
|
||||
rsync -a $SCRIPT_DIR/System/ $OUTPUT_DIR/System/ --exclude '.git'
|
||||
rsync -a $SCRIPT_DIR/Textures/ $OUTPUT_DIR/Textures/ --exclude '.git'
|
||||
|
||||
echo install ok
|
||||
}
|
||||
|
||||
function enable() {
|
||||
SSBUFile=$(find $OUTPUT_DIR/System -type f -iname "SmartSB*.u" ! -name "SmartSBStats.u" -exec basename {} \;)
|
||||
SSBBaseName="${SSBUFile%.*}"
|
||||
BaseName="$(getmodprefix)"
|
||||
|
||||
# Warning: ugly hack with sed to allow multiple key instances
|
||||
crudini --set $OUTPUT_DIR/System/$CFG_FILE 'Engine.GameEngine' _ServerPackages $SSBBaseName
|
||||
sed -i 's/_ServerPackages/ServerPackages/g' $OUTPUT_DIR/System/$CFG_FILE
|
||||
add_ServerPackage $BaseName
|
||||
add_ServerPackage SmartSBStats
|
||||
add_ServerActors $BaseName.SmartSBServerActor
|
||||
|
||||
crudini --set $OUTPUT_DIR/System/$CFG_FILE 'Engine.GameEngine' _ServerPackages SmartSBStats
|
||||
sed -i 's/_ServerPackages/ServerPackages/g' $OUTPUT_DIR/System/$CFG_FILE
|
||||
|
||||
crudini --set $OUTPUT_DIR/System/$CFG_FILE 'Engine.GameEngine' _ServerActors $SSBBaseName.SmartSBServerActor
|
||||
sed -i 's/_ServerActors/ServerActors/g' $OUTPUT_DIR/System/$CFG_FILE
|
||||
#todo: config SSB ?
|
||||
|
||||
echo enable ok
|
||||
}
|
||||
|
||||
function disable() {
|
||||
SSBUFile=$(find $OUTPUT_DIR/System -type f -iname "SmartSB*.u" ! -name "SmartSBStats.u" -exec basename {} \;)
|
||||
SSBBaseName="${SSBUFile%.*}"
|
||||
BaseName="$(getmodprefix)"
|
||||
|
||||
sed -i "/ServerPackages[[:space:]]*=[[:space:]]*$SSBBaseName/d" $OUTPUT_DIR/System/$CFG_FILE
|
||||
sed -i "/ServerPackages[[:space:]]*=[[:space:]]*SmartSBStats/d" $OUTPUT_DIR/System/$CFG_FILE
|
||||
sed -i "/ServerActors[[:space:]]*=[[:space:]]*$SSBBaseName.SmartSBServerActor/d" $OUTPUT_DIR/System/$CFG_FILE
|
||||
del_ServerPackage $BaseName
|
||||
del_ServerPackage SmartSBStats
|
||||
del_ServerActors $BaseName.SmartSBServerActor
|
||||
|
||||
echo disable ok
|
||||
}
|
||||
|
||||
function show_help() {
|
||||
echo
|
||||
echo "Usage: $0 { install | enable | disable } <UT99_INSTALL_DIR> [<UT99_CONFIG_FILE>]"
|
||||
echo "Usage: $0 { getmodprefix | install | enable | disable } <UT99_INSTALL_DIR> [<UT99_CONFIG_FILE>]"
|
||||
echo
|
||||
}
|
||||
|
||||
@@ -76,6 +105,10 @@ function check_game_dir() {
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
'getmodprefix')
|
||||
check_game_dir
|
||||
getmodprefix
|
||||
;;
|
||||
'install')
|
||||
check_game_dir
|
||||
install
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
[Public]
|
||||
Object=(Name=SmartSB107.SmartSB,Class=Class,MetaClass=Engine.Mutator,Description="SmartSB v107")
|
||||
Binary file not shown.
3
System/SmartSB122.int
Normal file
3
System/SmartSB122.int
Normal file
@@ -0,0 +1,3 @@
|
||||
[Public]
|
||||
Object=(Name=SmartSB122.SmartSB,Class=Class,MetaClass=Engine.Mutator,Description="SmartSB v122")
|
||||
Object=(Name=SmartSB122.SmartSBServerActor,Class=Class,MetaClass=Engine.Actor,Description="")
|
||||
BIN
System/SmartSB122.u
Normal file
BIN
System/SmartSB122.u
Normal file
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user