|
6 | 6 | PREFIX="/usr" |
7 | 7 | PROGNAME="SteamTinkerLaunch" |
8 | 8 | NICEPROGNAME="Steam Tinker Launch" |
9 | | -PROGVERS="v14.0.20240128-1" |
| 9 | +PROGVERS="v14.0.20240128-2" |
10 | 10 | PROGCMD="${0##*/}" |
11 | 11 | PROGINTERNALPROTNAME="Proton-stl" |
12 | 12 | SHOSTL="stl" |
@@ -7896,49 +7896,54 @@ function getGameExe { |
7896 | 7896 | SEARCHSTEAMSHORTCUTS="${2:-0}" # Default to not searching Steam shortcuts |
7897 | 7897 |
|
7898 | 7898 | if [ -z "$1" ]; then |
| 7899 | + writelog "ERROR" "${FUNCNAME[0]} - Called getGameExe without AppID -- Nothing to do!" |
7899 | 7900 | echo "A Game ID is required as argument" |
7900 | | - else |
7901 | | - INAID="$1" |
7902 | | - EXE="" |
7903 | | - NOTFOUNDSTR="No Executable or SteamTinkerLaunch file found for '$1'" |
7904 | 7901 |
|
7905 | | - # Try to get appid from game name -- If nultiple values, just pick first one |
7906 | | - if ! [ "$INAID" -eq "$INAID" ] 2>/dev/null; then |
7907 | | - INAID="$( getIDFromTitle "$INAID" | head -n1 )" |
7908 | | - INAID="$( trimWhitespaces "${INAID%(*}")" |
7909 | | - fi |
| 7902 | + return 1 |
| 7903 | + fi |
7910 | 7904 |
|
7911 | | - EXEGAMNAM="$( getTitleFromID "$INAID" )" |
| 7905 | + INAID="$1" |
| 7906 | + EXE="" |
| 7907 | + NOTFOUNDSTR="No Executable or SteamTinkerLaunch file found for '$1'" |
7912 | 7908 |
|
7913 | | - if [ -n "$INAID" ] && [ -f "$GEMETA/${INAID}.conf" ]; then |
7914 | | - # Some games might only have "EXECUTABLE" in their meta conf file |
7915 | | - EXE="$(grep "^EXECUTABLE" "$GEMETA/${INAID}.conf" | cut -d '"' -f2)" |
7916 | | - if [ -z "${EXE}" ]; then |
7917 | | - EXE="$(grep "^GAMEEXE" "$GEMETA/${INAID}.conf" | cut -d '"' -f2)" |
7918 | | - fi |
| 7909 | + # Try to get appid from game name -- If multiple values, just pick first one |
| 7910 | + if ! [ "$INAID" -eq "$INAID" ] 2>/dev/null; then |
| 7911 | + INAID="$( getIDFromTitle "$INAID" | head -n1 )" |
| 7912 | + INAID="$( trimWhitespaces "${INAID%(*}")" |
| 7913 | + fi |
7919 | 7914 |
|
7920 | | - if [ -n "$EXE" ]; then |
7921 | | - EXE="$EXEGAMNAM ($INAID) -> $( getGameDir "$INAID" "only" )/$EXE" |
7922 | | - fi |
7923 | | - fi |
| 7915 | + EXEGAMNAM="$( getTitleFromID "$INAID" )" |
7924 | 7916 |
|
7925 | | - if [ -z "$EXE" ] && [ "$SEARCHSTEAMSHORTCUTS" -eq 1 ] && haveAnySteamShortcuts ; then |
7926 | | - # Have to search on all shortcuts because we need to check game name as fallback |
7927 | | - while read -r SCVDFE; do |
7928 | | - SCVDFEAID="$( parseSteamShortcutEntryAppID "$SCVDFE" )" |
7929 | | - SCVDFENAME="$( parseSteamShortcutEntryAppName "$SCVDFE" )" |
7930 | | - SCVDFEEXE="$( parseSteamShortcutEntryExe "$SCVDFE" )" |
| 7917 | + # Try to get game EXE from STL meta file |
| 7918 | + if [ -n "$INAID" ] && [ -f "$GEMETA/${INAID}.conf" ]; then |
| 7919 | + # Some games might only have "EXECUTABLE" in their meta conf file |
| 7920 | + EXE="$(grep "^EXECUTABLE" "$GEMETA/${INAID}.conf" | cut -d '"' -f2)" |
| 7921 | + if [ -z "${EXE}" ]; then |
| 7922 | + EXE="$(grep "^GAMEEXE" "$GEMETA/${INAID}.conf" | cut -d '"' -f2)" |
| 7923 | + fi |
7931 | 7924 |
|
7932 | | - if [ "$SCVDFEAID" -eq "$1" ] 2>/dev/null || [[ ${SCVDFENAME,,} == *"${1,,}"* ]]; then |
7933 | | - SCVDFEEXE="${SCVDFEEXE#\"}" |
7934 | | - EXE="$SCVDFENAME ($SCVDFEAID) -> ${SCVDFEEXE%\"}" |
7935 | | - break |
7936 | | - fi |
7937 | | - done <<< "$( getSteamShortcutHex )" |
| 7925 | + if [ -n "$EXE" ]; then |
| 7926 | + EXE="$EXEGAMNAM ($INAID) -> $( getGameDir "$INAID" "only" )/$EXE" |
7938 | 7927 | fi |
| 7928 | + fi |
7939 | 7929 |
|
7940 | | - echo "${EXE:-$NOTFOUNDSTR}" |
| 7930 | + # Search on game shortcuts if EXE still not found |
| 7931 | + if [ -z "$EXE" ] && [ "$SEARCHSTEAMSHORTCUTS" -eq 1 ] && haveAnySteamShortcuts ; then |
| 7932 | + # Have to search on all shortcuts because we need to check game name as fallback |
| 7933 | + while read -r SCVDFE; do |
| 7934 | + SCVDFEAID="$( parseSteamShortcutEntryAppID "$SCVDFE" )" |
| 7935 | + SCVDFENAME="$( parseSteamShortcutEntryAppName "$SCVDFE" )" |
| 7936 | + SCVDFEEXE="$( parseSteamShortcutEntryExe "$SCVDFE" )" |
| 7937 | + |
| 7938 | + if [ "$SCVDFEAID" -eq "$1" ] 2>/dev/null || [[ ${SCVDFENAME,,} == *"${1,,}"* ]]; then |
| 7939 | + SCVDFEEXE="${SCVDFEEXE#\"}" |
| 7940 | + EXE="$SCVDFENAME ($SCVDFEAID) -> ${SCVDFEEXE%\"}" |
| 7941 | + break |
| 7942 | + fi |
| 7943 | + done <<< "$( getSteamShortcutHex )" |
7941 | 7944 | fi |
| 7945 | + |
| 7946 | + echo "${EXE:-$NOTFOUNDSTR}" |
7942 | 7947 | } |
7943 | 7948 |
|
7944 | 7949 | function getCompatData { |
|
0 commit comments