mirror of
https://github.com/archlinux/aur.git
synced 2026-02-09 06:38:44 +01:00
promptless dll plugins
This commit is contained in:
parent
9b1ba39c9b
commit
05bbc6d482
3 changed files with 24 additions and 15 deletions
4
.SRCINFO
4
.SRCINFO
|
|
@ -1,7 +1,7 @@
|
|||
pkgbase = bakkesmod-steam
|
||||
pkgdesc = A mod aimed at making you better at Rocket League!
|
||||
pkgver = 2.43
|
||||
pkgrel = 3
|
||||
pkgrel = 4
|
||||
url = https://bakkesmod.com/
|
||||
arch = x86_64
|
||||
license = GPL
|
||||
|
|
@ -13,7 +13,7 @@ pkgbase = bakkesmod-steam
|
|||
makedepends = python
|
||||
source = dll-2-0-43.zip::https://github.com/bakkesmodorg/BakkesModInjectorCpp/releases/download/2.0.43/bakkesmod.zip
|
||||
source = src-2-0-43.zip::https://github.com/bakkesmodorg/BakkesModInjectorCpp/archive/refs/tags/2.0.43.zip
|
||||
source = loopback-2-43-3.zip::https://github.com/kentslaney/bakkesmod-arch/archive/refs/tags/2.43-3-steam.zip
|
||||
source = loopback-2-43-4.zip::https://github.com/kentslaney/bakkesmod-arch/archive/refs/tags/2.43-4-steam.zip
|
||||
sha256sums = 3d39b07149872d891659330185ef9c4e02c580bfad67ed2df9979dbd72d4ae61
|
||||
sha256sums = 2d9cb1534fbae77ba008b07be3291d30e98a872ebfb0f0b3e6bb0c638d98bef8
|
||||
sha256sums = SKIP
|
||||
|
|
|
|||
16
PKGBUILD
16
PKGBUILD
|
|
@ -1,7 +1,7 @@
|
|||
# Maintainer: Kent Slaney <kent@slaney.org>
|
||||
pkgname=bakkesmod-steam
|
||||
pkgver=2.43
|
||||
pkgrel=3
|
||||
pkgrel=4
|
||||
pkgdesc="A mod aimed at making you better at Rocket League!"
|
||||
arch=('x86_64')
|
||||
url="https://bakkesmod.com/"
|
||||
|
|
@ -61,17 +61,13 @@ build() {
|
|||
|
||||
int wmain(int argc, wchar_t* argv[]) {
|
||||
std::wstring ps = L"RocketLeague.exe";
|
||||
auto official = L"C:\\users\\steamuser\\AppData\\Roaming\\bakkesmod\\bakkesmod\\dll\\bakkesmod.dll";
|
||||
auto promptless = L"C:\\users\\steamuser\\AppData\\Roaming\\bakkesmod\\bakkesmod\\dll\\bakkesmod_promptless.dll";
|
||||
const wchar_t* launcher = official;
|
||||
const wchar_t* launcher = L"C:\\users\\steamuser\\AppData\\Roaming\\bakkesmod\\bakkesmod\\dll\\bakkesmod.dll";
|
||||
DllInjector dllInjector;
|
||||
bool launching = false;
|
||||
for (int i = 1; i < argc; i++) {
|
||||
auto arg = std::wstring(argv[i]);
|
||||
if (arg == L"launching") {
|
||||
launching = true;
|
||||
} else if (arg == L"promptless") {
|
||||
launcher = promptless;
|
||||
}
|
||||
}
|
||||
if (launching) {
|
||||
|
|
@ -144,6 +140,8 @@ package() {
|
|||
echo "$proton_paths" > "$srcdir/runner.sh"
|
||||
# supposedly this might need to be ESYNC in some cases but this works by default
|
||||
cat <<" EOF" >> "$srcdir/runner.sh"
|
||||
dll=`[ "$PROMPTLESS" = 1 ] && echo "bakkesmod_promptless.dll" || echo "bakkesmod_official.dll"`
|
||||
ln -sf "$bm_pfx/bakkesmod/dll/$dll" "$bm_pfx/bakkesmod/dll/bakkesmod.dll"
|
||||
WINEFSYNC=1 WINEPREFIX="$compat/pfx/" "$proton/bin/wine64" "$@"
|
||||
EOF
|
||||
chmod a+x "$srcdir/runner.sh"
|
||||
|
|
@ -152,7 +150,10 @@ package() {
|
|||
unzip -quo "dll-$rlesc.zip" -d "$bm_pfx/bakkesmod"
|
||||
# by default, starts with bakkesmod.dll and outputs bakkesmod_promptless.dll
|
||||
echo -n "shunted winuser calls for DLL patch: "
|
||||
python "$srcdir/dll_patch.py" "$bm_pfx/bakkesmod/dll"
|
||||
dll_path="$bm_pfx/bakkesmod/dll"
|
||||
python "$srcdir/dll_patch.py" "$dll_path"
|
||||
mv "$dll_path/bakkesmod.dll" "$dll_path/bakkesmod_official.dll"
|
||||
ln -sf "$dll_path/bakkesmod_official.dll" "$dll_path/bakkesmod.dll"
|
||||
|
||||
cp -f "$srcdir/inject.exe" "$bm_pfx"
|
||||
cp -f "$srcdir/runner.sh" "$srcdir/dll_patch.py" "$bm_pfx"
|
||||
|
|
@ -217,6 +218,7 @@ pre_remove() {
|
|||
end=`echo "$end" | awk "\$0 > $start" | head -1`
|
||||
remove_between "$start" "$end" "$conf" > "$conf"
|
||||
fi
|
||||
if [[ -z `cat "$conf" | tr -d "\n"` ]]; then rm "$conf"; fi
|
||||
fi
|
||||
rm -fr "$bm_pfx"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,17 @@
|
|||
import os, shlex
|
||||
import os, shlex, pathlib
|
||||
flag = "BAKKES"
|
||||
|
||||
def update(user_settings):
|
||||
dll = ("promptless",) if os.environ.get("PROMPTLESS", "0") == "1" else ()
|
||||
promptless = os.environ.get("PROMPTLESS", "0") == "1"
|
||||
dll = "bakkesmod_promptless.dll" if promptless else "bakkesmod_official.dll"
|
||||
pfx = pathlib.Path(os.environ["STEAM_COMPAT_DATA_PATH"]) / \
|
||||
pathlib.Path("pfx/drive_c/users/steamuser/AppData/Roaming/bakkesmod")
|
||||
print(pfx)
|
||||
return
|
||||
dll_path = pfx / "bakkesmod" / "dll"
|
||||
try:
|
||||
os.remove(dll_path / "bakkesmod.dll")
|
||||
finally:
|
||||
os.symlink(dll_path / dll, dll_path / "bakkesmod.dll")
|
||||
user_settings.update({"PROTON_REMOTE_DEBUG_CMD": shlex.join((
|
||||
os.environ["STEAM_COMPAT_DATA_PATH"] +
|
||||
"/pfx/drive_c/users/steamuser/AppData/Roaming/bakkesmod/inject.exe",
|
||||
"launching") + dll)})
|
||||
|
||||
str(pfx / "inject.exe"), "launching"))})
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue