#!/bin/bash set -e ################## # engine build : << 'KOMENTAR' git clone https://github.com/FWGS/xash3d-fwgs.git "$PWD/src-dir/xash3d-fwgs-continuous-4102" -q (cd "$PWD/src-dir/xash3d-fwgs-continuous-4102" && git checkout -q b1d9eef) (cd "$PWD/src-dir/xash3d-fwgs-continuous-4102" && git submodule update --init --recursive -q) KOMENTAR ################## : << 'KOMENTAR' pacman -Q base-devel sdl2 freetype2 fontconfig libglvnd mkdir -p "$PWD/Half-Life-x64" mkdir -p "$PWD/src-dir/" rm -rf "$PWD/src-dir/xash3d-fwgs-continuous-4102" # git clone https://github.com/FWGS/xash3d-fwgs.git "$PWD/src-dir/xash3d-fwgs-continuous-4102" -q git clone https://github.com/FWGS/xash3d-fwgs.git "$PWD/src-dir/xash3d-fwgs-continuous-4102" (cd "$PWD/src-dir/xash3d-fwgs-continuous-4102" && git checkout -q 9f2b895) (cd "$PWD/src-dir/xash3d-fwgs-continuous-4102" && git submodule update --init --recursive) rm -rf "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist64/" (cd "$PWD/src-dir/xash3d-fwgs-continuous-4102" && CFLAGS="-w -Wno-stringop-overflow -Wno-stringop-overread" \ CXXFLAGS="-w -Wno-stringop-overflow -Wno-stringop-overread" \ "./waf" configure --build-type=release \ --64bits \ --enable-packaging \ --enable-all-renderers \ --enable-ffmpeg \ --disable-werror \ --out="build64" \ --prefix="/" # >/dev/null ) (cd "$PWD/src-dir/xash3d-fwgs-continuous-4102" && CFLAGS="-w -Wno-stringop-overflow -Wno-stringop-overread" CXXFLAGS="-w -Wno-stringop-overflow -Wno-stringop-overread" ./waf build --out="build64" ) (cd "$PWD/src-dir/xash3d-fwgs-continuous-4102" && ./waf install --out="build64" --destdir="$PWD/dist64" ) mkdir -p "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist64/Half-Life-x64/valve" cp "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist64/bin/xash3d" "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist64/Half-Life-x64/" cp "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist64/lib/xash3d/"*.so "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist64/Half-Life-x64/" cp "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist64/share/xash3d/valve/extras.pk3" "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist64/Half-Life-x64/valve/" rm -rf "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist64/bin" \ "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist64/lib" \ "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist64/share" echo "--------------------------------------------------------" echo "Čistá hra s enginem čeká v: dist64/Half-Life-x64" echo "--------------------------------------------------------" cp -r "$PWD/valve/" "$PWD/Half-Life-x64/" cp -r "$PWD/cstrike/" "$PWD/Half-Life-x64/" cp -r "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist64/Half-Life-x64" "$PWD/" objdump -p "$PWD/Half-Life-x64/xash3d" | grep -E 'R(UN)?PATH' cp "$PWD/assets/sdl2-2.32.10/libSDL2-2.0.so.0.3200.10" "$PWD/Half-Life-x64" ( cd "$PWD/Half-Life-x64" || exit 1 ln -sf "libSDL2-2.0.so.0.3200.10" "libSDL2-2.0.so.0" if ldd ./libxash.so | grep -q "libSDL2"; then LIB_PATH=$(echo "$line" | awk '{print $3}') [[ "$LIB_PATH" == /usr/* ]] && cp "$LIB_PATH" ./ else echo "[VAROVÁNÍ] libxash.so nevyžaduje SDL2!" fi ldd ./libxash.so | grep "=>" | grep -E "libav|libsw" | while read -r line; do LIB_PATH=$(echo "$line" | awk '{print $3}') [[ "$LIB_PATH" == /usr/* ]] && cp "$LIB_PATH" ./ done ) # hlsdk portable 64bit rm -rf "$PWD/src-dir/hlsdk-8c5b284" git clone --recursive -b master https://github.com/FWGS/hlsdk-portable "$PWD/src-dir/hlsdk-8c5b284" (cd "$PWD/src-dir/hlsdk-8c5b284" && git checkout -q 8c5b284) (cd "$PWD/src-dir/hlsdk-8c5b284" && git submodule update --init --recursive) mkdir -p "$PWD/src-dir/hlsdk-8c5b284/build-64" cmake -S "$PWD/src-dir/hlsdk-8c5b284" -B "$PWD/src-dir/hlsdk-8c5b284/build-64" \ -DCMAKE_BUILD_TYPE=Release \ -D64BIT=ON \ -DGAMEDIR=valve \ --log-level=ERROR \ -Wno-dev (cd "$PWD/src-dir/hlsdk-8c5b284/build-64" && make -j$(nproc) > /dev/null 2>&1) cp "$PWD/src-dir/hlsdk-8c5b284/build-64/dlls/hl_amd64.so" "$PWD/Half-Life-x64/valve/dlls/" cp "$PWD/src-dir/hlsdk-8c5b284/build-64/cl_dll/client_amd64.so" "$PWD/Half-Life-x64/valve/cl_dlls/" # Velaron cs16-client 64 bit rm -rf "$PWD/src-dir/cs16-client-934a366" git clone --recursive https://github.com/Velaron/cs16-client.git "$PWD/src-dir/cs16-client-934a366" (cd "$PWD/src-dir/cs16-client-934a366" && git checkout -q 934a366) (cd "$PWD/src-dir/cs16-client-934a366" && git submodule update --init --recursive -q) sed -i 's/Vector Center(void){ return (GetStartPos() + GetEndPos()) \* 0.5; }/Vector Center(void){ return (pev->origin + pev->angles) \* 0.5; }/g' "$PWD/src-dir/cs16-client-934a366/dlls/effects.h" sed -i 's/return (GetStartPos() + GetEndPos()) \* 0.5f;/return (pev->origin + pev->angles) \* 0.5f;/g' "$PWD/src-dir/cs16-client-934a366/dlls/effects.h" find "$PWD/src-dir/cs16-client-934a366/" -name "CMakeLists.txt" -exec sed -i 's/-Wall//g; s/-Wextra//g; s/-Woverloaded-virtual//g' {} + find "$PWD/src-dir/cs16-client-934a366/" -name "CMakeLists.txt" -exec sed -i '2i add_compile_options("-w")' {} + (cd "$PWD/src-dir/cs16-client-934a366" && CFLAGS="-m64 -w" CXXFLAGS="-m64 -w" cmake -S . -B build-64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-m64" -DCMAKE_CXX_FLAGS="-m64" --log-level=ERROR -Wno-dev) (cd "$PWD/src-dir/cs16-client-934a366/build-64" && make -j$(nproc)) mkdir -p "$PWD/Half-Life-x64/cstrike/addons/yapb/bin/" cp "$PWD/src-dir/cs16-client-934a366/build-64/3rdparty/ReGameDLL_CS/regamedll/cs_amd64.so" "$PWD/Half-Life-x64/cstrike/dlls/cs_amd64.so" cp "$PWD/src-dir/cs16-client-934a366/build-64/3rdparty/yapb/yapb_amd64.so" "$PWD/Half-Life-x64/cstrike/addons/yapb/bin/yapb_amd64.so" cp "$PWD/src-dir/cs16-client-934a366/build-64/cl_dll/client_amd64.so" "$PWD/Half-Life-x64/cstrike/cl_dlls/client_amd64.so" cp "$PWD/src-dir/cs16-client-934a366/build-64/3rdparty/mainui_cpp/menu_amd64.so" "$PWD/Half-Life-x64/cstrike/cl_dlls/menu_amd64.so" cp "$PWD/src-dir/cs16-client-934a366/3rdparty/cs16client-extras/maps/"* "$PWD/Half-Life-x64/cstrike/maps/" # cs boti Yapb 64bit rm -rf "$PWD/src-dir/yapb-4967a22" git clone --recursive https://github.com/yapb/yapb.git "$PWD/src-dir/yapb-4967a22" (cd "$PWD/src-dir/yapb-4967a22" && git checkout -q 4967a22) (cd "$PWD/src-dir/yapb-4967a22" && git submodule update --init --recursive -q) mkdir -p "$PWD/src-dir/yapb-4967a22/build-64" (cd "$PWD/src-dir/yapb-4967a22/build-64" && cmake .. \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF \ -DCMAKE_CXX_FLAGS="-O2 -march=x86-64 -mno-avx -mno-avx2 -mno-fma -ffat-lto-objects -w" \ -Wno-dev ) (cd "$PWD/src-dir/yapb-4967a22/build-64" && cmake --build . --config Release --parallel $(nproc)) (cd "$PWD/src-dir/yapb-4967a22/build-64" && python3 -c ' with open("libyapb.so", "rb") as f: data = f.read() avx_op = b"\xc4\xe3\x61\x0a\xe2\x01" sse_op = b"\x66\x0f\x3a\x0a\xe2\x10" if avx_op in data: pocet = data.count(avx_op) data = data.replace(avx_op, sse_op) with open("libyapb.so", "wb") as f: f.write(data) print(f"ÚSPĚCH: Ručně opraveno a nahrazeno {pocet} AVX instrukcí na SSE4.1!") else: print("AVX instrukce nenalezeny nebo už byly upraveny.") ') mkdir -p "$PWD/Half-Life-x64/cstrike/addons/yapb/bin" mkdir -p "$PWD/Half-Life-x64/cstrike/addons/yapb/conf" mkdir -p "$PWD/Half-Life-x64/cstrike/addons/yapb/data/graph" cp "$PWD/src-dir/yapb-4967a22/build-64/libyapb.so" "$PWD/Half-Life-x64/cstrike/addons/yapb/bin/yapb_amd64.so" cp -r "$PWD/src-dir/yapb-4967a22/cfg/addons/yapb/conf/." "$PWD/Half-Life-x64/cstrike/addons/yapb/conf/" #curl -L -o "$PWD/yapb-graph.zip" https://github.com/yapb/graph/archive/refs/heads/master.zip unzip -jqqo "$PWD/yapb-graph.zip" "graph-master/graph/*.graph" -d "$PWD/Half-Life-x64/cstrike/addons/yapb/data/graph/" # metamod 64bit rm -rf "$PWD/src-dir/metamod-fwgs-c0ad71a" git clone --recursive https://github.com/FWGS/metamod-fwgs.git "$PWD/src-dir/metamod-fwgs-c0ad71a" (cd "$PWD/src-dir/metamod-fwgs-c0ad71a" && git checkout -q c0ad71a) (cd "$PWD/src-dir/metamod-fwgs-c0ad71a" && CFLAGS="-w" CXXFLAGS="-w" cmake -S . -B build-64 -DCMAKE_BUILD_TYPE=Release --log-level=ERROR -Wno-dev) (cd "$PWD/src-dir/metamod-fwgs-c0ad71a/build-64" && make -j$(nproc) )#> /dev/null 2>&1) mkdir -p "$PWD/Half-Life-x64/cstrike/addons/metamod/dlls" cp "$PWD/src-dir/metamod-fwgs-c0ad71a/build-64/metamod/metamod_amd64.so" "$PWD/Half-Life-x64/cstrike/addons/metamod/dlls/" touch "$PWD/Half-Life-x64/cstrike/addons/metamod/plugins.ini" echo "linux addons/yapb/bin/yapb_amd64.so" > "$PWD/Half-Life-x64/cstrike/addons/metamod/plugins.ini" cat << 'EOF' > "$PWD/Half-Life-x64/cstrike/liblist.gam" game "Counter-Strike" url_info "www.counter-strike.net" version "1.6" size "184000000" svonly "0" casediff "1" hlversion "1111" nomodels "1" mpentity "info_player_start" gamedll_linux "addons/metamod/dlls/metamod.so" EOF ## # sed -i 's/^sensitivity.*/sensitivity "14.0"/' "$PWD/Half-Life-x64/cstrike/config.cfg" echo 'mp_freezetime "0"' > "$PWD/Half-Life-x64/cstrike/listenserver.cfg" cat << 'EOF' >> "$PWD/Half-Life-x64/cstrike/listenserver.cfg" // --- NASTAVENÍ VESTAVĚNÝCH BOTŮ (ReGameDLL / ZBot) --- // Zapne inteligenci botů a povolí jejich správu bot_quota_mode "fill" // Nastaví celkový počet slotů, které se mají zaplnit (Ty + Boti = 10) // Pokud se připojíš ty, zaplní se zbylých 9 míst boty. bot_quota "10" // Vynutí, aby týmy měly vždy stejný počet hráčů (vyrovnávání) mp_autoteambalance "1" mp_limitteams "1" // Určuje, za koho boti hrají (any = budou se doplňovat do obou týmů) bot_join_team "any" // Volitelné: Nastavení obtížnosti botů (0 = lehká, 1 = normální, 2 = těžká, 3 = expert) bot_difficulty "2" // Volitelné: Boti nebudou mluvit do chatu a spamovat (0 = vypnuto, 1 = zapnuto) bot_chatter "off" EOF echo 'sensitivity "14.0"' > "$PWD/Half-Life-x64/cstrike/userconfig.cfg" touch "$PWD/Half-Life-x64/cstrike/motd.txt" exit 0 KOMENTAR #: << 'KOMENTAR' ##################################### # Xash3D 32bit verze # potrebne pro spusteni: pacman -Q lib32-sdl2 lib32-opus lib32-libogg lib32-libvorbis lib32-flac lib32-libsndfile lib32-freetype2 lib32-alsa-lib lib32-alsa-plugins pacman -Q lib32-dbus lib32-libxi lib32-libxrandr lib32-libxss mkdir -p "$PWD/Half-Life-x86" rm -rf "$PWD/src-dir/xash3d-fwgs-continuous-4102" git clone https://github.com/FWGS/xash3d-fwgs.git "$PWD/src-dir/xash3d-fwgs-continuous-4102" (cd "$PWD/src-dir/xash3d-fwgs-continuous-4102" && git checkout -q 9f2b895) (cd "$PWD/src-dir/xash3d-fwgs-continuous-4102" && git submodule update --init --recursive) rm -rf "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist32/" rm -rf "$PWD/src-dir/xash3d-fwgs-continuous-4102/build32/" (cd "$PWD/assets/lib32-sdl2-2.30.3/" && ln -sf "libSDL2-2.0.so.0.3000.3" "libSDL2.so") ( export CFLAGS="-w -I/usr/include/SDL2 -Wno-stringop-overflow -Wno-stringop-overread" export CXXFLAGS="-w -I/usr/include/SDL2 -Wno-stringop-overflow -Wno-stringop-overread" export LDFLAGS="-L$PWD/assets/lib32-sdl2-2.30.3 -lSDL2" cd "$PWD/src-dir/xash3d-fwgs-continuous-4102" "./waf" configure --build-type=release \ --32bits \ --enable-packaging \ --enable-all-renderers \ --disable-werror \ --out="build32" \ --prefix="/" >/dev/null ./waf build --out="build32" ) (cd "$PWD/src-dir/xash3d-fwgs-continuous-4102" && ./waf install --out="build32" --destdir="$PWD/dist32" ) mkdir -p "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist32/Half-Life-x86/valve" cp "$PWD/assets/vgui/vgui.so" "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist32/Half-Life-x86/" cp "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist32/bin/xash3d" "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist32/Half-Life-x86/" cp "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist32/lib/xash3d/"*.so "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist32/Half-Life-x86/" cp "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist32/share/xash3d/valve/extras.pk3" "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist32/Half-Life-x86/valve/" rm -rf "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist32/bin" \ "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist32/lib" \ "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist32/share" cp -r "$PWD/assets/valve/" "$PWD/Half-Life-x86/" cp -r "$PWD/assets/cstrike/" "$PWD/Half-Life-x86/" cp -r "$PWD/src-dir/xash3d-fwgs-continuous-4102/dist32/Half-Life-x86" "$PWD/" # https://archive.archlinux.org/packages/l/lib32-sdl2/lib32-sdl2-2.30.3-1-x86_64.pkg.tar.zst # curl -s "https://archive.archlinux.org/packages/l/lib32-sdl2/lib32-sdl2-2.30.3-1-x86_64.pkg.tar.zst" | tar --zstd -xf - usr/lib32/libSDL2-2.0.so.0.3000.3 --strip-components=2 -C "$PWD/Half-Life-x86" cp "$PWD/assets/lib32-sdl2-2.30.3/libSDL2-2.0.so.0.3000.3" "$PWD/Half-Life-x86" ( cd "$PWD/Half-Life-x86" || exit 1 ln -sf "libSDL2-2.0.so.0.3000.3" "libSDL2-2.0.so.0" if ldd ./libxash.so | grep -q "libSDL2"; then ln -sf "libSDL2-2.0.so.0.3000.3" "libSDL2-2.0.so.0" else echo "[VAROVÁNÍ] libxash.so nevyžaduje SDL2!" fi ldd ./libxash.so | grep "=>" | grep -E "libav|libsw" | while read -r line; do LIB_PATH=$(echo "$line" | awk '{print $3}') [[ "$LIB_PATH" == /usr/* ]] && cp "$LIB_PATH" ./ done ) objdump -p "$PWD/Half-Life-x86/xash3d" | grep -E 'R(UN)?PATH' # hl client 32bit rm -rf "$PWD/src-dir/hlsdk-8c5b284" git clone --recursive -b master https://github.com/FWGS/hlsdk-portable "$PWD/src-dir/hlsdk-8c5b284" (cd "$PWD/src-dir/hlsdk-8c5b284" && git checkout -q 8c5b284) (cd "$PWD/src-dir/hlsdk-8c5b284" && git submodule update --init --recursive) rm -rf "$PWD/src-dir/hlsdk-8c5b284/build-32" mkdir -p "$PWD/src-dir/hlsdk-8c5b284/build-32" CFLAGS="-m32 -w" CXXFLAGS="-m32 -w" cmake \ -S "$PWD/src-dir/hlsdk-8c5b284" \ -B "$PWD/src-dir/hlsdk-8c5b284/build-32" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_C_FLAGS="-m32 -w" \ -DCMAKE_CXX_FLAGS="-m32 -w" \ -D64BIT=OFF \ -DGAMEDIR=valve \ -Wno-dev (cd "$PWD/src-dir/hlsdk-8c5b284/build-32" && make -j$(nproc)) cp "$PWD/src-dir/hlsdk-8c5b284/vgui_support/vgui-dev/lib/vgui.so" "$PWD/src-dir/hlsdk-8c5b284/build-32/cl_dll/" # pokud pouziji boty Bot10 tak nekopiruji # cp "$PWD/src-dir/hlsdk-8c5b284/build-32/dlls/hl.so" "$PWD/Half-Life-x86/valve/dlls/" cp "$PWD/src-dir/hlsdk-8c5b284/build-32/cl_dll/client.so" "$PWD/Half-Life-x86/valve/cl_dlls/" cp "$PWD/src-dir/hlsdk-8c5b284/vgui_support/vgui-dev/lib/vgui.so" "$PWD/Half-Life-x86/valve/cl_dlls/" # hl hl.so s boty Bot10 git clone --recursive -b bot10 https://github.com/FWGS/hlsdk-portable "$PWD/src-dir/hlsdk-bot10" (cd "$PWD/src-dir/hlsdk-bot10" && git submodule update --init --recursive) rm -rf "$PWD/src-dir/hlsdk-bot10/build-32" mkdir -p "$PWD/src-dir/hlsdk-bot10/build-32" CFLAGS="-m32 -w" CXXFLAGS="-m32 -w" cmake \ -S "$PWD/src-dir/hlsdk-bot10" \ -B "$PWD/src-dir/hlsdk-bot10/build-32" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_C_FLAGS="-m32 -w" \ -DCMAKE_CXX_FLAGS="-m32 -w" \ -D64BIT=OFF \ -DGAMEDIR=valve \ -Wno-dev (cd "$PWD/src-dir/hlsdk-bot10/build-32" && make -j$(nproc)) cp "$PWD/src-dir/hlsdk-bot10/build-32/dlls/hl.so" "$PWD/Half-Life-x86/valve/dlls/hl.so" grep -q "exec boti.cfg" "$PWD/Half-Life-x86/valve/listenserver.cfg" || echo -e "\n//wait; wait; wait; wait; wait; wait; wait;\n//exec boti.cfg" >> "$PWD/Half-Life-x86/valve/listenserver.cfg" cat << 'EOF' > "$PWD/Half-Life-x86/valve/boti.cfg" addbot addbot addbot addbot addbot addbot EOF # metamod 32bit git clone --recursive https://github.com/FWGS/metamod-fwgs.git "$PWD/src-dir/metamod-fwgs-c0ad71a" (cd "$PWD/src-dir/metamod-fwgs-c0ad71a" && git checkout -q c0ad71a) rm -rf "$PWD/src-dir/metamod-fwgs-c0ad71a/build-32" mkdir "$PWD/src-dir/metamod-fwgs-c0ad71a/build-32" (cd "$PWD/src-dir/metamod-fwgs-c0ad71a" && \ CFLAGS="-w -m32" \ CXXFLAGS="-w -m32" \ LDFLAGS="-m32" \ cmake -S . -B build-32 \ -DCMAKE_BUILD_TYPE=Release \ -DARCH=i386 \ --log-level=ERROR -Wno-dev ) (cd "$PWD/src-dir/metamod-fwgs-c0ad71a/build-32" && make -j$(nproc) )#> /dev/null 2>&1) # hl jk_botti kompilace 32bit pres metamod git clone --recursive -b v1.62 https://github.com/Bots-United/jk_botti.git "$PWD/src-dir/jk_botti" (cd "$PWD/src-dir/jk_botti" && git submodule update --init --recursive) (cd "$PWD/src-dir/jk_botti" && make clean) (cd "$PWD/src-dir/jk_botti" && \ make \ CFLAGS="-m32 -O2 -Wno-write-strings -I./common -I./dlls -I./engine -I./pm_shared -I./metamod -DVER_MAJOR=1 -DVER_MINOR=62 -DVER_NOTE=\\\"release\\\"" \ CXXFLAGS="-m32 -O2 -Wno-write-strings -I./common -I./dlls -I./engine -I./pm_shared -I./metamod -DVER_MAJOR=1 -DVER_MINOR=62 -DVER_NOTE=\\\"release\\\"" \ LDFLAGS="-m32" \ -j$(nproc) ) # hl jk_botti 32bit pres metamod mkdir -p "$PWD/Half-Life-x86/valve/addons/metamod/dlls" cp "$PWD/src-dir/metamod-fwgs-c0ad71a/build-32/metamod/metamod.so" "$PWD/Half-Life-x86/valve/addons/metamod/dlls/" cat << 'EOF' > "$PWD/Half-Life-x86/valve/addons/metamod/plugins.ini" linux addons/jk_botti/dlls/jk_botti_mm_i386.so EOF cp -r "$PWD/src-dir/jk_botti/addons/jk_botti/dlls/"* "$PWD/Half-Life-x86/valve/addons/jk_botti/dlls/" cp -r "$PWD/src-dir/jk_botti/addons/jk_botti/waypoints/"* "$PWD/Half-Life-x86/valve/addons/jk_botti/waypoints/" cp "$PWD/src-dir/jk_botti/addons/jk_botti/"* "$PWD/Half-Life-x86/valve/addons/jk_botti/" 2>/dev/null cp "$PWD/Half-Life-x86/valve/addons/jk_botti/jk_botti.cfg" "$PWD/Half-Life-x86/valve/addons/jk_botti/jk_botti(2).cfg" sed -i '/^\s*#/d; /^\s*$/d' "$PWD/Half-Life-x86/valve/addons/jk_botti/jk_botti.cfg" sed -i 's/^\s*bot_chat_percent\s\s*[0-9]*/bot_chat_percent 0/' "$PWD/Half-Life-x86/valve/addons/jk_botti/jk_botti.cfg" sed -i 's/^\s*bot_taunt_percent\s\s*[0-9]*/bot_taunt_percent 0/' "$PWD/Half-Life-x86/valve/addons/jk_botti/jk_botti.cfg" sed -i 's/^\s*bot_whine_percent\s\s*[0-9]*/bot_whine_percent 0/' "$PWD/Half-Life-x86/valve/addons/jk_botti/jk_botti.cfg" sed -i 's/^\s*bot_endgame_percent\s\s*[0-9]*/bot_endgame_percent 0/' "$PWD/Half-Life-x86/valve/addons/jk_botti/jk_botti.cfg" sed -i 's/^\s*bot_logo_percent\s\s*[0-9]*/bot_logo_percent 0/' "$PWD/Half-Life-x86/valve/addons/jk_botti/jk_botti.cfg" sed -i 's/^\s*autowaypoint\s\s*[0-9]*/autowaypoint 0/' "$PWD/Half-Life-x86/valve/addons/jk_botti/jk_botti.cfg" sed -i 's/^\s*bot_chat_tag_percent\s\s*[0-9]*/bot_chat_tag_percent 0/' "$PWD/Half-Life-x86/valve/addons/jk_botti/jk_botti.cfg" sed -i 's/^\s*bot_chat_drop_percent\s\s*[0-9]*/bot_chat_drop_percent 0/' "$PWD/Half-Life-x86/valve/addons/jk_botti/jk_botti.cfg" sed -i 's/^\s*bot_chat_swap_percent\s\s*[0-9]*/bot_chat_swap_percent 0/' "$PWD/Half-Life-x86/valve/addons/jk_botti/jk_botti.cfg" sed -i 's/^\s*bot_chat_lower_percent\s\s*[0-9]*/bot_chat_lower_percent 0/' "$PWD/Half-Life-x86/valve/addons/jk_botti/jk_botti.cfg" (JKBOTTICFG="$PWD/Half-Life-x86/valve/addons/jk_botti/jk_botti.cfg" grep -q '^\s*mp_friendlyfire' "$JKBOTTICFG" && sed -i 's/^\s*mp_friendlyfire\s\s*[0-9]*/mp_friendlyfire 1/' "$JKBOTTICFG" \ || echo 'mp_friendlyfire 1' >> "$JKBOTTICFG" ) # Velaron cs16-client 32 bit rm -rf "$PWD/src-dir/cs16-client-934a366" git clone --recursive https://github.com/Velaron/cs16-client.git "$PWD/src-dir/cs16-client-934a366" (cd "$PWD/src-dir/cs16-client-934a366" && git checkout -q 934a366) (cd "$PWD/src-dir/cs16-client-934a366" && git submodule update --init --recursive -q) sed -i 's/Vector Center(void){ return (GetStartPos() + GetEndPos()) \* 0.5; }/Vector Center(void){ return (pev->origin + pev->angles) \* 0.5; }/g' "$PWD/src-dir/cs16-client-934a366/dlls/effects.h" sed -i 's/return (GetStartPos() + GetEndPos()) \* 0.5f;/return (pev->origin + pev->angles) \* 0.5f;/g' "$PWD/src-dir/cs16-client-934a366/dlls/effects.h" rm -rf "$PWD/src-dir/cs16-client-934a366/build-32" mkdir -p "$PWD/src-dir/cs16-client-934a366/build-32" # (cd "$PWD/src-dir/cs16-client-934a366" && CFLAGS="-m32 -w" CXXFLAGS="-m32 -w" cmake -S . -B build-32 -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-m32" -DCMAKE_CXX_FLAGS="-m32" --log-level=ERROR -Wno-dev) (cd "$PWD/src-dir/cs16-client-934a366/build-32" && \ cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-m32 -w" -DCMAKE_CXX_FLAGS="-m32 -w" -DCMAKE_SHARED_LINKER_FLAGS="-m32" --log-level=ERROR -Wno-dev ) (cd "$PWD/src-dir/cs16-client-934a366/build-32" && make -j$(nproc)) mkdir -p "$PWD/Half-Life-x86/cstrike/addons/yapb/bin/" cp "$PWD/src-dir/cs16-client-934a366/build-32/3rdparty/ReGameDLL_CS/regamedll/cs.so" "$PWD/Half-Life-x86/cstrike/dlls/cs.so" #cp "$PWD/src-dir/cs16-client-934a366/build-32/3rdparty/yapb/yapb.so" "$PWD/Half-Life-x86/cstrike/addons/yapb/bin/yapb.so" cp "$PWD/src-dir/cs16-client-934a366/build-32/cl_dll/client.so" "$PWD/Half-Life-x86/cstrike/cl_dlls/client.so" cp "$PWD/src-dir/cs16-client-934a366/build-32/3rdparty/mainui_cpp/menu.so" "$PWD/Half-Life-x86/cstrike/cl_dlls/menu.so" cp "$PWD/src-dir/cs16-client-934a366/3rdparty/cs16client-extras/maps/"* "$PWD/Half-Life-x86/cstrike/maps/" # sed -i 's/^sensitivity.*/sensitivity "14.0"/' "$PWD/Half-Life-x86/cstrike/config.cfg" cat << 'EOF' > "$PWD/Half-Life-x86/cstrike/liblist.gam" game "Counter-Strike" url_info "www.counter-strike.net" url_dl "" version "1.6" size "184000000" svonly "0" secure "1" type "multiplayer_only" hlversion "1111" nomodels "1" nohimodel "1" mpentity "info_player_start" gamedll_linux "dlls/cs.so" cldll_linux "cl_dlls/client.so" trainmap "tr_1" EOF cat << 'EOF' > "$PWD/Half-Life-x86/cstrike/valve.rc" console 1 stuffcmds wait; wait; wait; wait; wait; clear exec userconfig.cfg EOF # cs boti YaPB 32bit rm -rf "$PWD/src-dir/yapb-4967a22" git clone --recursive https://github.com/yapb/yapb.git "$PWD/src-dir/yapb-4967a22" (cd "$PWD/src-dir/yapb-4967a22" && git checkout -q 4967a22) (cd "$PWD/src-dir/yapb-4967a22" && git submodule update --init --recursive -q) rm -rf "$PWD/src-dir/yapb-4967a22/build-32" mkdir -p "$PWD/src-dir/yapb-4967a22/build-32" (cd "$PWD/src-dir/yapb-4967a22/build-32" && cmake .. \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF \ -DCMAKE_CXX_FLAGS="-m32 -O2 -march=pentium4 -mno-avx -mno-avx2 -mno-fma -ffat-lto-objects -w" \ -DCMAKE_C_FLAGS="-m32 -O2 -march=pentium4 -mno-avx -mno-avx2 -mno-fma -ffat-lto-objects -w" \ -DCMAKE_SHARED_LINKER_FLAGS="-m32" \ -Wno-dev ) (cd "$PWD/src-dir/yapb-4967a22/build-32" && cmake --build . --config Release --parallel $(nproc)) (cd "$PWD/src-dir/yapb-4967a22/build-32" && python3 -c ' with open("libyapb.so", "rb") as f: data = f.read() # 32-bit AVX opkód: c4 e3 51 0a f4 01 (vroundss xmm6,xmm5,xmm4,0x1) # 32-bit SSE4.1 opkód: 66 0f 3a 0a f4 10 (roundss xmm6,xmm4,0x1) avx_op = b"\xc4\xe3\x51\x0a\xf4\x01" sse_op = b"\x66\x0f\x3a\x0a\xf4\x10" if avx_op in data: pocet = data.count(avx_op) data = data.replace(avx_op, sse_op) with open("libyapb.so", "wb") as f: f.write(data) print(f"ÚSPĚCH: Ručně opraveno a nahrazeno {pocet} 32-bitových AVX instrukcí na SSE4.1!") else: print("AVX instrukce nenalezeny nebo už byly upraveny.") ') mkdir -p "$PWD/Half-Life-x86/cstrike/addons/yapb/bin" mkdir -p "$PWD/Half-Life-x86/cstrike/addons/yapb/conf" mkdir -p "$PWD/Half-Life-x86/cstrike/addons/yapb/data/graph" cp "$PWD/src-dir/yapb-4967a22/build-32/libyapb.so" "$PWD/Half-Life-x86/cstrike/addons/yapb/bin/yapb.so" cp -r "$PWD/src-dir/yapb-4967a22/cfg/addons/yapb/conf/." "$PWD/Half-Life-x86/cstrike/addons/yapb/conf/" #curl -L -o "$PWD/src-dir/yapb-graph.zip" https://github.com/yapb/graph/archive/refs/heads/master.zip unzip -jqqo "$PWD/assets/yapb-graph/yapb-graph.zip" "graph-master/graph/*.graph" -d "$PWD/Half-Life-x86/cstrike/addons/yapb/data/graph/" # YaPB zapis do metamodu 32bit mkdir -p "$PWD/Half-Life-x86/cstrike/addons/metamod/dlls" cp "$PWD/src-dir/metamod-fwgs-c0ad71a/build-32/metamod/metamod.so" "$PWD/Half-Life-x86/cstrike/addons/metamod/dlls/" touch "$PWD/Half-Life-x86/cstrike/addons/metamod/plugins.ini" echo "linux addons/yapb/bin/yapb.so" > "$PWD/Half-Life-x86/cstrike/addons/metamod/plugins.ini" # Echoes 32bit unzip -qo "$PWD/assets/mody/echoes/Echoes_v1.4.zip" "echoes/*" -d "$PWD/Half-Life-x86/" sed -i 's/^gamedll .*/gamedll_linux "dlls\/echoes.so"/' "$PWD/Half-Life-x86/echoes/liblist.gam" git clone --recursive -b echoes --single-branch https://github.com/FWGS/hlsdk-portable "$PWD/src-dir/hlsdk-echoes" (cd "$PWD/src-dir/hlsdk-echoes" && git submodule update --init --recursive) rm -rf "$PWD/src-dir/hlsdk-echoes/build-32" mkdir -p "$PWD/src-dir/hlsdk-echoes/build-32" (cd "$PWD/src-dir/hlsdk-echoes" && CFLAGS="-m32 -w" CXXFLAGS="-m32 -w" cmake \ -S . \ -B "build-32" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_C_FLAGS="-m32 -w" \ -DCMAKE_CXX_FLAGS="-m32 -w" \ -D64BIT=OFF \ -DGAMEDIR=echoes \ -Wno-dev ) (cd "$PWD/src-dir/hlsdk-echoes/build-32" && make -j$(nproc)) cp "$PWD/src-dir/hlsdk-echoes/build-32/cl_dll/client.so" "$PWD/Half-Life-x86/echoes/cl_dlls/client.so" cp "$PWD/src-dir/hlsdk-echoes/build-32/dlls/echoes.so" "$PWD/Half-Life-x86/echoes/dlls/echoes.so" # desktop pro spusteni pres dex (cd "$PWD/Half-Life-x86" && cat < "$PWD/Half-Life-x86.desktop" [Desktop Entry] Name=Half-Life (Xash3D) 32bit Type=Application Categories=Game;Shooter; Exec=$PWD/xash3d Icon=$PWD/valve/game.ico Terminal=false Path=$PWD EOF ) (cd "$PWD/Half-Life-x86" && cat < "$PWD/Half-Life-CS-1.6-x86.desktop" [Desktop Entry] Name=Half-Life CS-1.6 32bit Type=Application Categories=Game;Shooter; Exec=$PWD/xash3d -game cstrike Icon=$PWD/cstrike/game.ico Terminal=false Path=$PWD EOF ) (cd "$PWD/Half-Life-x86" && cat < "$PWD/Half-Life-Echoes-x86.desktop" [Desktop Entry] Name=Half-Life Echoes (Xash3D) 32bit Type=Application Categories=Game;Shooter; Exec=$PWD/xash3d -game echoes Icon=$PWD/echoes/game.ico Terminal=false Path=$PWD EOF ) # konfigurace 32bit valve cat << 'EOF' | tee "$PWD/Half-Life-x86/valve/userconfig.cfg" "$PWD/Half-Life-x86/cstrike/userconfig.cfg" "$PWD/Half-Life-x86/echoes/userconfig.cfg" > /dev/null sensitivity "14.0" _vgui_menus "1" sv_autosave "0" unbindall bind "TAB" "+showscores" bind "w" "+forward" bind "s" "+back" bind "a" "+moveleft" bind "b" "buy" bind "y" "messagemode" bind "u" "messagemode2" bind "d" "+moveright" bind "SPACE" "+jump" bind "CTRL" "+duck" bind "e" "+use" bind "f" "impulse 100" bind "p" "pause" bind "r" "+reload" bind "MOUSE1" "+attack" bind "MOUSE2" "+attack2" bind "1" "slot1" bind "2" "slot2" bind "3" "slot3" bind "4" "slot4" bind "5" "slot5" bind "`" "toggleconsole" bind "~" "toggleconsole" bind "f5" "snapshot" bind "f6" "save quick" bind "f9" "load quick" bind "MWHEELUP" "invprev" bind "MWHEELDOWN" "invnext" hud_fastswitch "1" host_writeconfig EOF # konfigurace 32bit cs16 echo 'mp_freezetime "0"' > "$PWD/Half-Life-x86/cstrike/listenserver.cfg" cat << 'EOF' >> "$PWD/Half-Life-x86/cstrike/listenserver.cfg" // --- NASTAVENÍ VESTAVĚNÝCH BOTŮ (ReGameDLL / ZBot) --- // Zapne inteligenci botů a povolí jejich správu bot_quota_mode "fill" // Nastaví celkový počet slotů, které se mají zaplnit (Ty + Boti = 10) // Pokud se připojíš ty, zaplní se zbylých 9 míst boty. bot_quota "10" // Vynutí, aby týmy měly vždy stejný počet hráčů (vyrovnávání) mp_autoteambalance "1" mp_limitteams "1" // Určuje, za koho boti hrají (any = budou se doplňovat do obou týmů) bot_join_team "any" // Volitelné: Nastavení obtížnosti botů (0 = lehká, 1 = normální, 2 = těžká, 3 = expert) bot_difficulty "2" // Volitelné: Boti nebudou mluvit do chatu a spamovat (0 = vypnuto, 1 = zapnuto) bot_chatter "off" EOF touch "$PWD/Half-Life-x86/cstrike/motd.txt" #KOMENTAR ####################################################### : << 'KOMENTAR' # Xash3D FWGS v0.19.2 32bit mkdir -p "$PWD/Half-Life-x86-0.19.2" pacman -Q git cmake gcc make sdl2 freetype2 fontconfig libxxf86vm lib32-fontconfig rm -rf "$PWD/src-dir/xash3d-0.19.2" git clone --depth 1 --branch v0.19.2 https://github.com/FWGS/xash3d.git "$PWD/src-dir/xash3d-0.19.2" (cd "$PWD/src-dir/xash3d-0.19.2" && git submodule update --init --recursive) find "$PWD/src-dir/xash3d-0.19.2" -name "CMakeLists.txt" -exec sed -i '1i add_compile_options("$<$:-Wno-incompatible-pointer-types;-Wno-implicit-function-declaration;-Wno-int-conversion;-Wno-format-truncation;-Wno-format-overflow;-Wno-stringop-overflow;-Wno-sign-compare>")' {} \; find "$PWD/src-dir/xash3d-0.19.2" -name "CMakeLists.txt" -exec sed -i '1i add_compile_options("$<$:-Wno-format-truncation;-Wno-format-overflow;-Wno-class-memaccess;-Wno-sign-compare;-Wno-stringop-truncation;-Wno-unused-but-set-variable>")' {} \; rm -rf "$PWD/src-dir/xash3d-0.19.2/build32" mkdir -p "$PWD/src-dir/xash3d-0.19.2/build32" (cd "$PWD/src-dir/xash3d-0.19.2" && sed -i 's/\brsqrt\b/xash_rsqrt/g' engine/common/mathlib.c engine/common/mathlib.h) (cd "$PWD/src-dir/xash3d-0.19.2/build32" && cmake .. \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DARCH=i386 \ -DXASH_VGUI=OFF \ -DCMAKE_C_FLAGS="-m32 -Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration -Wno-error=int-conversion -Wno-format-truncation -Wno-format-overflow -Wno-stringop-overflow" \ -DCMAKE_CXX_FLAGS="-m32 -Wno-format-truncation -Wno-format-overflow -Wno-class-memaccess" \ -DCMAKE_C_STANDARD=11 \ -DCMAKE_CXX_STANDARD=11 \ -DCMAKE_INSTALL_RPATH="\$ORIGIN" \ -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \ -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE \ -Wno-dev ) (cd "$PWD/src-dir/xash3d-0.19.2/build32" && cmake --build . --config Release --parallel $(nproc)) (cd "$PWD/src-dir/xash3d-0.19.2/build32" && make install DESTDIR="$PWD/dist32") cp -r "$PWD/src-dir/xash3d-0.19.2/build32/dist32/usr/local/lib/xash3d/"* "$PWD/Half-Life-x86-0.19.2/" cp -r "$PWD/valve/" "$PWD/Half-Life-x86-0.19.2/" cp -r "$PWD/cstrike/" "$PWD/Half-Life-x86-0.19.2/" # filesystem_stdio.so 32bit #git clone https://github.com/FWGS/filesystem_stdio_xash.git "$PWD/src-dir/filesystem_stdio_xash" #rm -rf "$PWD/src-dir/filesystem_stdio_xash/build32" ##mkdir -p "$PWD/src-dir/filesystem_stdio_xash/build32" #(cd "$PWD/src-dir/filesystem_stdio_xash/build32" && cmake .. \ # -DCMAKE_BUILD_TYPE=Release \ # -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ # -DCMAKE_C_FLAGS="-m32 -I$PWD/src-dir/xash3d-0.19.2/engine" \ # -DCMAKE_CXX_FLAGS="-m32 -I$PWD/src-dir/xash3d-0.19.2/engine" \ # -Wno-dev #) #(cd "$PWD/src-dir/filesystem_stdio_xash/build32" && cmake --build . --config Release --parallel $(nproc)) # ReGameDLL 5.30.0.814 32bit git clone --recursive https://github.com/rehlds/ReGameDLL_CS.git "$PWD/src-dir/regamedll-5.30.0.814" (cd "$PWD/src-dir/regamedll-5.30.0.814" && git checkout 5.30.0.814) (cd "$PWD/src-dir/regamedll-5.30.0.814" && git submodule update --init --recursive) #(cd "$PWD/src-dir/regamedll-5.30.0.814" && \ # echo "--- Čistím projekt: ---" && git restore . && \ # git submodule foreach --recursive 'git restore .' \ #) find "$PWD/src-dir/regamedll-5.30.0.814" -name "CMakeLists.txt" -exec sed -i '1i add_compile_options("$<$:-Wno-sign-compare;-Wno-class-memaccess;-Wno-format-truncation;-Wno-format-overflow;-Wno-stringop-truncation;-Wno-unused-but-set-variable;-Wno-overloaded-virtual;-Wno-deprecated-declarations;-Wno-maybe-uninitialized>")' {} \; find "$PWD/src-dir/regamedll-5.30.0.814" -name "CMakeLists.txt" -exec sed -i '1i add_compile_options("$<$:-Wno-sign-compare;-Wno-format-truncation;-Wno-format-overflow>")' {} \; rm -rf "$PWD/src-dir/regamedll-5.30.0.814/build32" mkdir -p "$PWD/src-dir/regamedll-5.30.0.814/build32" (cd "$PWD/src-dir/regamedll-5.30.0.814/build32" && cmake .. \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -Wno-dev ) (cd "$PWD/src-dir/regamedll-5.30.0.814/build32" && cmake --build . --config Release --parallel $(nproc)) cp "$PWD/src-dir/regamedll-5.30.0.814/build32/regamedll/cs.so" "$PWD/Half-Life-x86-0.19.2/cstrike/dlls/cs.so" # thomaseichhorn CS16 client 32bit git clone https://github.com/thomaseichhorn/cs16-client.git "$PWD/src-dir/cs16-client-v19" (cd "$PWD/src-dir/cs16-client-v19" && \ git submodule update --init 3rdparty/extras \ ) find "$PWD/src-dir/cs16-client-v19/cl_dll" -name "CMakeLists.txt" -exec sed -i '1i add_compile_options("$<$:-Wno-sign-compare;-Wno-class-memaccess;-Wno-format-truncation;-Wno-format-overflow;-Wno-stringop-truncation;-Wno-unused-but-set-variable;-Wno-overloaded-virtual;-Wno-deprecated-declarations;-Wno-maybe-uninitialized;-Wno-deprecated-copy;-Wno-strict-aliasing;-Wno-address;-Wno-array-bounds;-Wno-restrict>")' {} \; find "$PWD/src-dir/cs16-client-v19/cl_dll" -name "CMakeLists.txt" -exec sed -i '1i add_compile_options("$<$:-Wno-sign-compare;-Wno-format-truncation;-Wno-format-overflow>")' {} \; #find "$PWD/src-dir/cs16-client-v19/cl_dll" -name "CMakeLists.txt" -exec sed -i '1i add_link_options("-Wl,--unresolved-symbols=ignore-all")' {} \; cat << 'EOF' >> "$PWD/src-dir/cs16-client-v19/cl_dll/util.cpp" // Korektní C++ stuby pro linker (řeší chybějící symboly z effects.h) class CBeam { public: Vector GetStartPos(void); Vector GetEndPos(void); }; Vector CBeam::GetStartPos(void) { return Vector(0.0f, 0.0f, 0.0f); } Vector CBeam::GetEndPos(void) { return Vector(0.0f, 0.0f, 0.0f); } EOF rm -rf "$PWD/src-dir/cs16-client-v19/cl_dll/build32" mkdir -p "$PWD/src-dir/cs16-client-v19/cl_dll/build32" (cd "$PWD/src-dir/cs16-client-v19/cl_dll/build32" && cmake .. \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -Wno-dev \ ) (cd "$PWD/src-dir/cs16-client-v19/cl_dll/build32" && cmake --build . --config Release --parallel $(nproc)) cp "$PWD/src-dir/cs16-client-v19/cl_dll/build32/libclient.so" "$PWD/Half-Life-x86-0.19.2/cstrike/cl_dlls/client.so" #KOMENTAR ###### : << 'KOMENTAR' # Xash3D FWGS v0.19.2 64bit # na 64bit prekladu konci na build serverove dll ktera je zavisla na 32bit libaelf mkdir -p "$PWD/Half-Life-x64-0.19.2" pacman -Q git cmake gcc make sdl2 freetype2 fontconfig libxxf86vm git clone --depth 1 --branch v0.19.2 https://github.com/FWGS/xash3d.git "$PWD/src-dir/xash3d-0.19.2" (cd "$PWD/src-dir/xash3d-0.19.2" && git submodule update --init --recursive) find "$PWD/src-dir/xash3d-0.19.2" -name "CMakeLists.txt" -exec sed -i '1i add_compile_options("$<$:-Wno-incompatible-pointer-types;-Wno-implicit-function-declaration;-Wno-int-conversion;-Wno-format-truncation;-Wno-format-overflow;-Wno-stringop-overflow;-Wno-sign-compare>")' {} \; find "$PWD/src-dir/xash3d-0.19.2" -name "CMakeLists.txt" -exec sed -i '1i add_compile_options("$<$:-Wno-format-truncation;-Wno-format-overflow;-Wno-class-memaccess;-Wno-sign-compare;-Wno-stringop-truncation;-Wno-unused-but-set-variable>")' {} \; rm -rf "$PWD/src-dir/xash3d-0.19.2/build64" mkdir -p "$PWD/src-dir/xash3d-0.19.2/build64" (cd /temp/half-life-cs16-all-ris/src-dir/xash3d-0.19.2 && sed -i 's/\brsqrt\b/xash_rsqrt/g' engine/common/mathlib.c engine/common/mathlib.h) (cd "$PWD/src-dir/xash3d-0.19.2/build64" && cmake .. \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DXASH_64BIT=1 \ -DCMAKE_C_FLAGS="-Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration -Wno-error=int-conversion -Wno-format-truncation -Wno-format-overflow -Wno-stringop-overflow" \ -DCMAKE_CXX_FLAGS="-Wno-format-truncation -Wno-format-overflow -Wno-class-memaccess" \ -DCMAKE_C_STANDARD=11 \ -DCMAKE_CXX_STANDARD=11 \ -DCMAKE_INSTALL_RPATH="\$ORIGIN" \ -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \ -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE \ -Wno-dev ) (cd "$PWD/src-dir/xash3d-0.19.2/build64" && cmake --build . --config Release --parallel $(nproc)) (cd "$PWD/src-dir/xash3d-0.19.2/build64" && make install DESTDIR="$PWD/dist64") cp -r "$PWD/src-dir/xash3d-0.19.2/build64/dist64/usr/local/lib/xash3d/"* "$PWD/Half-Life-x64-0.19.2/" cp -r "$PWD/valve/" "$PWD/Half-Life-x64-0.19.2/" cp -r "$PWD/cstrike/" "$PWD/Half-Life-x64-0.19.2/" # ReGameDLL 5.30.0.814 64bit git clone --recursive https://github.com/rehlds/ReGameDLL_CS.git "$PWD/src-dir/regamedll-5.30.0.814" (cd "$PWD/src-dir/regamedll-5.30.0.814" && git checkout 5.30.0.814) (cd "$PWD/src-dir/regamedll-5.30.0.814" && git submodule update --init --recursive) #(cd "$PWD/src-dir/regamedll-5.30.0.814" && \ # echo "--- Čistím projekt: ---" && git restore . && \ # git submodule foreach --recursive 'git restore .' \ #) find "$PWD/src-dir/regamedll-5.30.0.814" -name "CMakeLists.txt" -exec sed -i '1i add_compile_options("$<$:-Wno-sign-compare;-Wno-class-memaccess;-Wno-format-truncation;-Wno-format-overflow;-Wno-stringop-truncation;-Wno-unused-but-set-variable;-Wno-overloaded-virtual;-Wno-deprecated-declarations;-Wno-maybe-uninitialized>")' {} \; find "$PWD/src-dir/regamedll-5.30.0.814" -name "CMakeLists.txt" -exec sed -i '1i add_compile_options("$<$:-Wno-sign-compare;-Wno-format-truncation;-Wno-format-overflow>")' {} \; find "$PWD/src-dir/regamedll-5.30.0.814" -name "CMakeLists.txt" -exec sed -i 's/-m32/-m64/g' {} \; find "$PWD/src-dir/regamedll-5.30.0.814" -name "CMakeLists.txt" -exec sed -i 's/i686/x86_64/g' {} \; rm -rf "$PWD/src-dir/regamedll-5.30.0.814/build64" mkdir -p "$PWD/src-dir/regamedll-5.30.0.814/build64" (cd "$PWD/src-dir/regamedll-5.30.0.814/build64" && cmake .. \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DARCH=amd64 \ -DCMAKE_C_FLAGS="-m64" \ -DCMAKE_CXX_FLAGS="-m64" \ -Wno-dev ) (cd "$PWD/src-dir/regamedll-5.30.0.814/build64" && cmake --build . --config Release --parallel $(nproc)) cp "$PWD/src-dir/regamedll-5.30.0.814/build64/regamedll/cs.so" "$PWD/Half-Life-x64-0.19.2/cstrike/dlls/cstrike_amd64.so" # thomaseichhorn CS16 client 64bit git clone https://github.com/thomaseichhorn/cs16-client.git "$PWD/src-dir/cs16-client-v19" (cd "$PWD/src-dir/cs16-client-v19" && \ git submodule update --init 3rdparty/extras \ ) find "$PWD/src-dir/cs16-client-v19/cl_dll" -name "CMakeLists.txt" -exec sed -i '1i add_compile_options("$<$:-Wno-sign-compare;-Wno-class-memaccess;-Wno-format-truncation;-Wno-format-overflow;-Wno-stringop-truncation;-Wno-unused-but-set-variable;-Wno-overloaded-virtual;-Wno-deprecated-declarations;-Wno-maybe-uninitialized;-Wno-deprecated-copy;-Wno-strict-aliasing;-Wno-address;-Wno-array-bounds;-Wno-restrict>")' {} \; find "$PWD/src-dir/cs16-client-v19/cl_dll" -name "CMakeLists.txt" -exec sed -i '1i add_compile_options("$<$:-Wno-sign-compare;-Wno-format-truncation;-Wno-format-overflow>")' {} \; #find "$PWD/src-dir/cs16-client-v19/cl_dll" -name "CMakeLists.txt" -exec sed -i '1i add_link_options("-Wl,--unresolved-symbols=ignore-all")' {} \; cat << 'EOF' >> "$PWD/src-dir/cs16-client-v19/cl_dll/util.cpp" // Korektní C++ stuby pro linker (řeší chybějící symboly z effects.h) class CBeam { public: Vector GetStartPos(void); Vector GetEndPos(void); }; Vector CBeam::GetStartPos(void) { return Vector(0.0f, 0.0f, 0.0f); } Vector CBeam::GetEndPos(void) { return Vector(0.0f, 0.0f, 0.0f); } EOF rm -rf "$PWD/src-dir/cs16-client-v19/cl_dll/build64" mkdir -p "$PWD/src-dir/cs16-client-v19/cl_dll/build64" sed -i 's/-m32/-m64/g' "$PWD/src-dir/cs16-client-v19/cl_dll/CMakeLists.txt" sed -i 's/i686/x86_64/g' "$PWD/src-dir/cs16-client-v19/cl_dll/CMakeLists.txt" (cd "$PWD/src-dir/cs16-client-v19/cl_dll/build64" && cmake .. \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DARCH=amd64 \ -DCMAKE_C_FLAGS="-m64" \ -DCMAKE_CXX_FLAGS="-m64" \ -Wno-dev \ ) (cd "$PWD/src-dir/cs16-client-v19/cl_dll/build64" && cmake --build . --config Release --parallel $(nproc)) cp "$PWD/src-dir/cs16-client-v19/cl_dll/build64/libclient.so" "$PWD/Half-Life-x64-0.19.2/cstrike/cl_dlls/client64.so" KOMENTAR ###### : << 'KOMENTAR' cp -r "src-dir/xash3d-fwgs-linux-amd64/." "Half-Life/" rm "Half-Life/xash3d-fwgs.desktop" rm -r "Half-Life/valve" chmod -R u+rw "src-dir/valve/" chmod -R u+rw "src-dir/cstrike/" cp -r "src-dir/valve/" "Half-Life/" cp -r "src-dir/cstrike/" "Half-Life/" (cd src-dir && git clone --recursive https://github.com/FWGS/hlsdk-portable) mkdir -p src-dir/hlsdk-portable/build-64 (cd src-dir/hlsdk-portable/build-64 && cmake -DCMAKE_BUILD_TYPE=Release -D64BIT=ON -DGAMEDIR=valve ..) (cd src-dir/hlsdk-portable/build-64 && make -j$(nproc)) cp src-dir/hlsdk-portable/build-64/dlls/hl_amd64.so Half-Life/valve/dlls/ cp src-dir/hlsdk-portable/build-64/cl_dll/client_amd64.so Half-Life/valve/cl_dlls/ cp -r "src-dir/gfx/." Half-Life/valve/ mkdir -p src-dir/hlsdk-portable/build-32 (cd src-dir/hlsdk-portable/build-32 && cmake -DCMAKE_BUILD_TYPE=Release -D64BIT=OFF -DCMAKE_C_FLAGS="-m32" -DCMAKE_CXX_FLAGS="-m32" -DGAMEDIR=valve ..) (cd src-dir/hlsdk-portable/build-32 && make -j$(nproc)) (cd src-dir && git clone https://github.com/s1lentq/ReGameDLL_CS.git) mkdir -p src-dir/ReGameDLL_CS/build-64 (cd src-dir/ReGameDLL_CS && sed -i '/project(/a add_compile_options(-Wno-overloaded-virtual)' CMakeLists.txt) (cd src-dir/ReGameDLL_CS && sed -i '/add_compile_options(-Wno-overloaded-virtual)/a add_compile_options(-Wno-deprecated-declarations)\nadd_compile_options(-Wno-maybe-uninitialized)' CMakeLists.txt) (cd src-dir/ReGameDLL_CS/build-64 && cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_C_FLAGS="-m64" -DCMAKE_CXX_FLAGS="-m64" -DCMAKE_EXE_LINKER_FLAGS="-m64" -DXASH_COMPAT=ON ..) (cd src-dir/ReGameDLL_CS/build-64 && make -j$(nproc)) cp src-dir/ReGameDLL_CS/build-64/regamedll/cs_amd64.so Half-Life/cstrike/dlls/ sed -i 's|^gamedll_linux .*|gamedll_linux "dlls/cs_amd64.so"|' Half-Life/cstrike/liblist.gam # boti mkdir -p Half-Life/cstrike/addons/yapb/bin/ git clone --recursive https://github.com/yapb/yapb.git mkdir cp src-dir/yapb/build-64/libyapb.so Half-Life/cstrike/addons/yapb/bin/yapb_amd64.so sed -i 's|^gamedll_linux .*|gamedll_linux "addons/yapb/bin/yapb.so"|' Half-Life/cstrike/liblist.gam cp -r xash3d_0.21_32bit/valve/. xash3d-fwgs-linux-amd64/valve/ cp hlsdk/build_valve_64/cl_dll/client_amd64.so xash3d-fwgs-linux-amd64/valve/cl_dlls/ cp hlsdk/build_valve_64/dlls/hl_amd64.so.so xash3d-fwgs-linux-amd64/valve/dlls/ mkdir -p xash3d-fwgs-linux-amd64/cstrike/ cp -r xash3d_0.21_32bit/cstrike/. xash3d-fwgs-linux-amd64/cstrike/ chmod -R u+w xash3d-fwgs-linux-amd64/cstrike/ tar -xf xash3d_0.21_32bit/InstallFiles/CS16Client-Linux-x86_64.tar.gz -C xash3d-fwgs-linux-amd64/ git fetch --all --tags git checkout continuous-master git submodule update --init --recursive git clone --recursive -b continuous-master https://github.com/FWGS/hlsdk-portable /temp/local-repo-pkg/half-life-cs16-all-ris/hlsdk/ cd /temp/local-repo-pkg/half-life-cs16-all-ris/hlsdk/ KOMENTAR ############################################# : << 'KOMENTAR' # overeni podpory ffmpeg v xash3d enginu ldd ./libxash.so | grep -E 'libav|libsw' - dodat SDL2 knihovnu do adresáře s hrou - vehicle_ignition.wav find build -name "*.so" KOMENTAR