From 81d5f8aac5c7efb6449a7a40beb8c8969fd29021 Mon Sep 17 00:00:00 2001 From: chacha <15073640+cclecle@users.noreply.github.com> Date: Sun, 25 Jan 2026 22:00:00 +0000 Subject: [PATCH] Prepare 1st release --- Run.sh | 128 ++++++++++++++++++++++++++++++++++++ System/IChaChaMutEngineV1.u | Bin 0 -> 50740 bytes make.bat | 7 +- 3 files changed, 133 insertions(+), 2 deletions(-) create mode 100644 Run.sh create mode 100644 System/IChaChaMutEngineV1.u diff --git a/Run.sh b/Run.sh new file mode 100644 index 0000000..459ae50 --- /dev/null +++ b/Run.sh @@ -0,0 +1,128 @@ +#!/bin/bash + +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +OUTPUT_DIR="$2" +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 -name "IChaChaMutEngine*.u" -exec basename {} \;) + BaseName="${UFile%.*}" + echo "$BaseName" +} + +function install() { + rsync -a $SCRIPT_DIR/System/ $OUTPUT_DIR/System --exclude '.git' + + echo install ok +} + +function enable() { + BaseName="$(getmodprefix)" + + add_ServerPackage $BaseName + + echo enable ok +} + +function disable() { + BaseName="$(getmodprefix)" + + del_ServerPackage $BaseName + + echo disable ok +} + +function show_help() { + echo + echo "Usage: $0 { getmodprefix |install | enable | disable } []" + echo +} + +function check_cfg_file() { + if [ -z ${CFG_FILE} ] + then + echo "CFG_FILE is unset, setting it to $DEFAULT_CFG_FILE" + CFG_FILE=$DEFAULT_CFG_FILE + else + echo "CFG_FILE is set to '$CFG_FILE'" + fi + + if [ ! -f $OUTPUT_DIR/System/$CFG_FILE ] + then + echo "$OUTPUT_DIR/System/$CFG_FILE does not exist" + show_help + exit 9999 # die with error code 9999 + fi +} + +function check_game_dir() { + ### Check if a directory does not exist ### + if [ -z $OUTPUT_DIR ] + then + echo "incorrect " + show_help + exit 9999 # die with error code 9999 + fi +} + +case "$1" in + 'getmodprefix') + check_game_dir + getmodprefix + ;; + 'install') + check_game_dir + install + ;; + 'enable') + check_game_dir + check_cfg_file + disable + enable + ;; + 'disable') + check_game_dir + check_cfg_file + disable + ;; + *) + show_help + exit 1 + ;; +esac + +exit 0 \ No newline at end of file diff --git a/System/IChaChaMutEngineV1.u b/System/IChaChaMutEngineV1.u new file mode 100644 index 0000000000000000000000000000000000000000..cb5cdb16ecefb841f40a805de181ef5408cc96a5 GIT binary patch literal 50740 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 BRI~s9 literal 0 HcmV?d00001 diff --git a/make.bat b/make.bat index 133a8e0..b4eaf1a 100644 --- a/make.bat +++ b/make.bat @@ -1,2 +1,5 @@ -del %~dp0\..\System\IChaChaMutEngineV1.u -%~dp0\..\System\ucc.exe make IChaChaMutEngineV1 +set UArtifactName=IChaChaMutEngineV1 +del %~dp0\..\System\%UArtifactName%.u +del %~dp0\System\%UArtifactName%.u +%~dp0\..\System\ucc.exe make %UArtifactName% +xcopy %~dp0\..\System\%UArtifactName%.u %~dp0\System\ \ No newline at end of file