From 6553507146ea90b7c1a9aadc5c4398e3ba4526f9 Mon Sep 17 00:00:00 2001 From: Soreepeong Date: Fri, 12 Nov 2021 22:31:43 +0900 Subject: [PATCH 1/3] Add DelayInitializeMs to DalamudStartInfo --- Dalamud/DalamudStartInfo.cs | 5 +++++ Dalamud/EntryPoint.cs | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/Dalamud/DalamudStartInfo.cs b/Dalamud/DalamudStartInfo.cs index 5c82cf63c..54778527c 100644 --- a/Dalamud/DalamudStartInfo.cs +++ b/Dalamud/DalamudStartInfo.cs @@ -51,5 +51,10 @@ namespace Dalamud /// Gets a value indicating whether or not market board information should be uploaded by default. /// public bool OptOutMbCollection { get; init; } + + /// + /// Gets a value that specifies how much to wait before a new Dalamud session. + /// + public int DelayInitializeMs { get; init; } } } diff --git a/Dalamud/EntryPoint.cs b/Dalamud/EntryPoint.cs index efba9a7ff..e9df6be92 100644 --- a/Dalamud/EntryPoint.cs +++ b/Dalamud/EntryPoint.cs @@ -79,6 +79,12 @@ namespace Dalamud try { + if (info.DelayInitializeMs > 0) + { + Log.Information(string.Format("Waiting for {0}ms before starting a session.", info.DelayInitializeMs)); + Thread.Sleep(info.DelayInitializeMs); + } + Log.Information(new string('-', 80)); Log.Information("Initializing a session.."); From fee9d274358a45b691092046a072dee21ef7dbf6 Mon Sep 17 00:00:00 2001 From: Soreepeong Date: Fri, 12 Nov 2021 23:11:01 +0900 Subject: [PATCH 2/3] Set default value for DelayInitializeMs --- Dalamud/DalamudStartInfo.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dalamud/DalamudStartInfo.cs b/Dalamud/DalamudStartInfo.cs index 54778527c..891a57dca 100644 --- a/Dalamud/DalamudStartInfo.cs +++ b/Dalamud/DalamudStartInfo.cs @@ -55,6 +55,6 @@ namespace Dalamud /// /// Gets a value that specifies how much to wait before a new Dalamud session. /// - public int DelayInitializeMs { get; init; } + public int DelayInitializeMs { get; init; } = 0; } } From 97475f24b9550fa945daa1a9318a27ebfcf531f3 Mon Sep 17 00:00:00 2001 From: Soreepeong Date: Fri, 12 Nov 2021 23:11:12 +0900 Subject: [PATCH 3/3] Not only wait for game window to be created but also to be shown --- Dalamud.Boot/rewrite_entrypoint.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dalamud.Boot/rewrite_entrypoint.cpp b/Dalamud.Boot/rewrite_entrypoint.cpp index ba7b7ee1a..39863f17f 100644 --- a/Dalamud.Boot/rewrite_entrypoint.cpp +++ b/Dalamud.Boot/rewrite_entrypoint.cpp @@ -198,7 +198,7 @@ HWND try_find_game_window() { DWORD pid; GetWindowThreadProcessId(hwnd, &pid); - if (pid == GetCurrentProcessId()) + if (pid == GetCurrentProcessId() && IsWindowVisible(hwnd)) break; } return hwnd;