From 2091aa4944c6235e3cc2ae8802ae3b9795a6ada8 Mon Sep 17 00:00:00 2001 From: Nick Hastings Date: Fri, 29 Sep 2023 11:44:44 -0400 Subject: [PATCH 1/2] Fix load on Linux when -game launch arg is not present --- loader/loader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loader/loader.cpp b/loader/loader.cpp index c5eacb7..b96ba65 100644 --- a/loader/loader.cpp +++ b/loader/loader.cpp @@ -292,7 +292,7 @@ mm_GetGameName(char *buffer, size_t size) #ifdef _WIN32 GetGameInfoStringFn func = (GetGameInfoStringFn)mm_GetLibAddress(pTier0, "?GetGameInfoString@@YAPEBDPEBD0PEAD_K@Z"); #else - GetGameInfoStringFn func = (GetGameInfoStringFn)mm_GetLibAddress(pTier0, "__Z17GetGameInfoStringPKcS0_Pcm"); + GetGameInfoStringFn func = (GetGameInfoStringFn)mm_GetLibAddress(pTier0, "_Z17GetGameInfoStringPKcS0_Pcm"); #endif if (func != nullptr) { From 0cfae595441f09c46691e08fe8bb65ee9c829060 Mon Sep 17 00:00:00 2001 From: Nick Hastings Date: Fri, 29 Sep 2023 11:45:17 -0400 Subject: [PATCH 2/2] Echo fatal MM:S errors to console (in addition to existing metamod-fatal.log) --- loader/loader.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/loader/loader.cpp b/loader/loader.cpp index b96ba65..d39c627 100644 --- a/loader/loader.cpp +++ b/loader/loader.cpp @@ -50,6 +50,12 @@ mm_LogFatal(const char *message, ...) va_list ap; char header[256]; + printf("MMS: Fatal error: "); + va_start(ap, message); + vprintf(message, ap); + va_end(ap); + printf("\n"); + fp = fopen(mm_fatal_logfile, "at"); if (!fp && (fp = fopen("metamod-fatal.log", "at")) == NULL) return; @@ -299,9 +305,21 @@ mm_GetGameName(char *buffer, size_t size) static char szTmp[260]; strncpy(buffer, func("FileSystem/SearchPaths/Mod", "", szTmp, sizeof(szTmp)), size); } + else + { + mm_LogFatal("Failed to resolve GetGameInfoString in fallback gamedir lookup."); + } mm_UnloadLibrary(pTier0); } + else + { + mm_LogFatal("Failed to load tier0 from \"%s\" in fallback gamedir lookup: %s", tier0_path, err); + } + } + else + { + mm_LogFatal("Failed to resolve tier0 path in fallback gamedir lookup."); } }