# Maintainer: Petr Olsa pkgname=stronghold-ris pkgver=2.0.0.6 pkgrel=1 pkgdesc="Stronghold Crusader HD (GOG) running via Wine with DirectPlay" arch=('x86_64') license=('custom') depends=('wine' 'winetricks' 'xorg-xrandr' 'dex') makedepends=('util-linux' 'xorg-server-xvfb' 'imagemagick') options=('!strip' '!zipman') source=() sha256sums=() _install_path="/home/ris/Games/Stronghold-Crusader" prepare() { ln -sf "${startdir}/assets/setup/setup_stronghold_crusader_extreme_hd_2.0.0.6.exe" "${srcdir}/" ln -sf "${startdir}/assets/directx/directx_feb2010_redist.exe" "${srcdir}/" ln -sf "${startdir}/assets/cz/cr.tex" "${srcdir}/" ln -sf "${startdir}/assets/cz/help/Crusader_help.hlp" "${srcdir}/" cat << 'EOF' > "${srcdir}/run.sh" #!/usr/bin/env bash SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" export WINEPREFIX="${SCRIPT_DIR}" export WINEDEBUG="-all" RES=$(xrandr --current 2>/dev/null | grep '*' | head -n1 | awk '{print $1}') RES=${RES:-"1920x1080"} WINEDLLOVERRIDES="mscoree=d;mshtml=d" exec /usr/bin/wine explorer /desktop=Stronghold,${RES} "C:\\GOG_Games\\Stronghold_Crusader_HD\\Stronghold Crusader.exe" "$@" EOF cat << 'EOF' > "${srcdir}/stronghold-crusader.desktop" [Desktop Entry] Type=Application Name=Stronghold Crusader HD Exec=sh -c 'cd "\$(dirname "%k")" && ./run.sh' Icon=stronghold-crusader Terminal=false Categories=Game;StrategyGame; EOF cat << EOF > "${srcdir}/stronghold-crusader-menu.desktop" [Desktop Entry] Type=Application Name=Stronghold Crusader HD Exec=${_install_path}/run.sh Icon=stronghold-crusader Terminal=false Categories=Game;StrategyGame; EOF } build() { local target_dir="${srcdir}${_install_path}" export WINEPREFIX="${target_dir}" #export WINEDEBUG="fixme+all,err+all" export WINEDEBUG="-all" export WINEARCH="win64" export LIBGL_ALWAYS_SOFTWARE=1 export MESA_LOG_LEVEL=error export EGL_LOG_LEVEL=fatal mkdir -p "$WINEPREFIX" WINEDLLOVERRIDES="mscoree,mshtml=" xvfb-run /usr/bin/wineboot -u 2>/dev/null xvfb-run /usr/bin/wine "${srcdir}/setup_stronghold_crusader_extreme_hd_2.0.0.6.exe" \ /SILENT /VERYSILENT /SUPPRESSMSGBOXES /DIR="C:\\GOG_Games\\Stronghold_Crusader_HD" wineserver -w unshare -m -n -r bash -c " export WINETRICKS_SUPER_QUIET=1 mkdir -p '/home/ris/.cache/winetricks/directx9' mount --bind '${srcdir}/directx_feb2010_redist.exe' '/home/ris/.cache/winetricks/directx9/directx_feb2010_redist.exe' xvfb-run winetricks -q -f -t directplay wineserver -w " >/dev/null 2>&1 || true #mkdir -p "${WINEPREFIX}/drive_c/Program Files/Firefly Studios" #ln -s "C:\GOG_Games\Stronghold_Crusader_HD" "${WINEPREFIX}/drive_c/Program Files/Firefly Studios/Stronghold Crusader" #xvfb-run /usr/bin/wine "${srcdir}/Stronghold Crusader HD - CZ.exe" /S /D="C:\\GOG_Games\\Stronghold_Crusader_HD" #wineserver -w local ico_path="${WINEPREFIX}/drive_c/GOG_Games/Stronghold_Crusader_HD/gfw_high.ico" if [ -f "$ico_path" ]; then magick "${ico_path}[5]" "${srcdir}/stronghold-crusader-256x256.png" magick "${ico_path}[0]" "${srcdir}/stronghold-crusader-32x32.png" magick "${ico_path}[4]" "${srcdir}/stronghold-crusader-16x16.png" magick "$ico_path" \ \( -clone 0 -resize 24x24 +write "${srcdir}/stronghold-crusader-24x24.png" \) \ -exit fi } package() { local install_dir="${_install_path}" local user_home="/home/ris" local icondir="${user_home}/.local/share/icons/hicolor" local appdir="${user_home}/.local/share/applications" mkdir -p "${pkgdir}${install_dir}" mkdir -p "${pkgdir}${appdir}" mkdir -p "${pkgdir}${icondir}/256x256/apps" mkdir -p "${pkgdir}${icondir}/32x32/apps" chmod 755 "$pkgdir/home" chmod 700 "$pkgdir/home/ris" cp -r "${srcdir}${install_dir}/"* "${pkgdir}/${install_dir}/" # cestina mv "${pkgdir}/${install_dir}/drive_c/GOG_Games/Stronghold_Crusader_HD/cr.tex" "${pkgdir}/${install_dir}/drive_c/GOG_Games/Stronghold_Crusader_HD/cr-en.tex" mv "${pkgdir}/${install_dir}/drive_c/GOG_Games/Stronghold_Crusader_HD/help/crusader_help.hlp" "${pkgdir}/${install_dir}/drive_c/GOG_Games/Stronghold_Crusader_HD/help/crusader_help-en.hlp" cp "${srcdir}/cr.tex" "${pkgdir}/${install_dir}/drive_c/GOG_Games/Stronghold_Crusader_HD/" cp "${srcdir}/Crusader_help.hlp" "${pkgdir}/${install_dir}/drive_c/GOG_Games/Stronghold_Crusader_HD/help/" install -Dm755 "${srcdir}/run.sh" "${pkgdir}${install_dir}/run.sh" install -Dm644 "${srcdir}/stronghold-crusader.desktop" "${pkgdir}${install_dir}/stronghold-crusader.desktop" install -Dm644 "${srcdir}/stronghold-crusader-menu.desktop" "${pkgdir}${appdir}/stronghold-crusader.desktop" install -Dm644 "${srcdir}/stronghold-crusader-256x256.png" "${pkgdir}${icondir}/256x256/apps/stronghold-crusader.png" install -Dm644 "${srcdir}/stronghold-crusader-32x32.png" "${pkgdir}${icondir}/32x32/apps/stronghold-crusader.png" install -Dm644 "${srcdir}/stronghold-crusader-24x24.png" "${pkgdir}${icondir}/24x24/apps/stronghold-crusader.png" install -Dm644 "${srcdir}/stronghold-crusader-16x16.png" "${pkgdir}${icondir}/16x16/apps/stronghold-crusader.png" install -Dm644 "$startdir/PKGBUILD" -t "$pkgdir/usr/share/doc/$pkgname/" chown -R ris:ris "${pkgdir}/home/ris" }