blob: b61632cee238cc959b395ac5209a4156becaedcc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#!/bin/bash
set -euo pipefail
Unreal="@EPREFIX@/opt/unreal"
MyUnreal="${HOME}/.Unreal"
MyIni="${MyUnreal}/System/UnrealLinux.ini"
MyUserIni="${MyUnreal}/System/User.ini"
System="${Unreal}/@System@"
mkdir -p "${MyUnreal}"/System
cp --update=none "${System}"/DefaultLinux.ini "${MyIni}"
# XOpenGLDrv.XOpenGLRenderDevice seems broken on arm64.
# https://github.com/OldUnreal/Unreal-testing/issues/442
[[ "@System@" == SystemARM64 ]] &&
sed -i "/^\[Engine\.Engine\]/,/^\[/s:^GameRenderDevice=.*:GameRenderDevice=OpenGLDrv.OpenGLRenderDevice:" "${MyIni}"
lang=${LC_MESSAGES:-${LC_ALL:-${LANG:-in}}}
[[ ${lang} == en* ]] && lang=in
sed -i "/^\[Engine\.Engine\]/,/^\[/s:^Language=.*:Language=${lang:0:2}t:" "${MyIni}"
# Allow the game to be used system-wide from an unwritable location. Note that
# saves do not load unless SavePath is relative for some reason.
# https://github.com/OldUnreal/Unreal-testing/issues/455
sed -i -e "/^;AddedByGentoo=/{N;d}" -e "/^\[Core\.System\]/,/^\[/{
s:^\(Cache\|Save\)Path=.*:\1Path=$(realpath --relative-to="${System}" "${MyUnreal}")/\1:
s:^\(Lang\)\?Paths=\.\./\(.*\):;AddedByGentoo=\n\1Paths=${MyUnreal}/\2\n\0:
}" "${MyIni}"
exe=${0##*/}
exe=${exe#unreal-}
exec "${System}/${exe}-bin" "${@}" -ini="${MyIni}" -userini="${MyUserIni}"
|