diff --git a/src/hooks/others.cpp b/src/hooks/others.cpp index 0cc60648..46816dc7 100644 --- a/src/hooks/others.cpp +++ b/src/hooks/others.cpp @@ -1024,8 +1024,13 @@ void LevelInit_hook(void *_this, const char *newmap) gSignatures.GetEngineSignature("55 89 E5 57 31 FF 56 8D B5 ? ? ? ? 53 " "81 EC ? ? ? ? C7 85 ? ? ? ? ? ? ? ?"); static LoadNamedSkys_Fn LoadNamedSkys = LoadNamedSkys_Fn(addr); - LoadNamedSkys(skynum[(int) skybox_changer]); - logging::Info("Loading Skybox..."); + bool succ; +#ifdef __clang__ + asm ("movl %1, %%edi; push skynum[(int) skybox_changer]; call %%edi; mov %%eax, %0; add %%esp, 4h" :"=r"(succ) :"r"(LoadNamedSkys)); +#else + succ = LoadNamedSkys(skynum[(int) skybox_changer]); +#endif + logging::Info("Loaded Skybox: %s" succ ? "true" : "false"); ConVar *holiday = g_ICvar->FindVar("tf_forced_holiday"); if (halloween_mode) holiday->SetValue(2);