diff --git a/src/hooking/hooking.cpp b/src/hooking/hooking.cpp index 7d76e65..c4366e1 100644 --- a/src/hooking/hooking.cpp +++ b/src/hooking/hooking.cpp @@ -39,7 +39,7 @@ void OnNewGame(game::ui::CharacterCustomizationSystem* aThis, void* aRdx) if (!state) { - PluginContext::Error("hooking::CharacterCustomizationSystem::OnNewGame, CC state == NULL, WTF?"); + PluginContext::Error("hooking::CharacterCustomizationSystem::OnNewGame, CC state == NULL"); return; } @@ -54,12 +54,27 @@ void OnNewGame(game::ui::CharacterCustomizationSystem* aThis, void* aRdx) shared::raw::CharacterCustomizationState::GetLifePath(state, lifepathId); - if (lifepathId == "LifePaths.NewStart") - { - auto questsSystem = GetGameSystem(); + auto questsSystem = GetGameSystem(); + auto factsDB = shared::raw::QuestsSystem::FactsDB(questsSystem); - shared::raw::QuestsSystem::FactsDB(questsSystem)->SetFact("ngplus_fresh_start_on", 1); + if (lifepathId == "LifePaths.Corporate") + { + factsDB->SetFact("ngplus_is_corpo", 1); } + else if (lifepathId == "LifePaths.StreetKid") + { + factsDB->SetFact("ngplus_is_streetkid", 1); + } + else if (lifepathId == "LifePaths.Nomad") + { + factsDB->SetFact("ngplus_is_nomad", 1); + } + else if (lifepathId == "LifePaths.NewStart") + { + factsDB->SetFact("ngplus_fresh_start_on", 1); + } + + factsDB->SetFact("ngplus_cc_on_new_game_finished", 1); } } diff --git a/wolvenkit/packed/archive/pc/mod/NewGamePlus.archive b/wolvenkit/packed/archive/pc/mod/NewGamePlus.archive index 5c658c6..90e9804 100644 Binary files a/wolvenkit/packed/archive/pc/mod/NewGamePlus.archive and b/wolvenkit/packed/archive/pc/mod/NewGamePlus.archive differ diff --git a/wolvenkit/source/archive/mod/quest/newgameplus/FastTrackToQ001.questphase b/wolvenkit/source/archive/mod/quest/newgameplus/FastTrackToQ001.questphase index 2f14397..683dc00 100644 Binary files a/wolvenkit/source/archive/mod/quest/newgameplus/FastTrackToQ001.questphase and b/wolvenkit/source/archive/mod/quest/newgameplus/FastTrackToQ001.questphase differ