diff --git a/Phobos.vcxproj b/Phobos.vcxproj
index 362d3109a7..426b358a22 100644
--- a/Phobos.vcxproj
+++ b/Phobos.vcxproj
@@ -63,6 +63,7 @@
+
@@ -127,7 +128,6 @@
-
diff --git a/YRpp b/YRpp
index e821ba32d4..63591f3115 160000
--- a/YRpp
+++ b/YRpp
@@ -1 +1 @@
-Subproject commit e821ba32d4fdbec43b324647cec0db2228c86ace
+Subproject commit 63591f3115a4041bacdafe1e327a7cfed905aa09
diff --git a/src/Ext/Techno/Hooks.Harvester.cpp b/src/Ext/Unit/Hooks.Harvester.cpp
similarity index 97%
rename from src/Ext/Techno/Hooks.Harvester.cpp
rename to src/Ext/Unit/Hooks.Harvester.cpp
index defb9681ea..0802ed7020 100644
--- a/src/Ext/Techno/Hooks.Harvester.cpp
+++ b/src/Ext/Unit/Hooks.Harvester.cpp
@@ -1,14 +1,11 @@
-#include
-#include "Body.h"
-#include
-#include
+#include "Ext/Techno/Body.h"
+
#include
#include
-#include
-#include
-#include
#include
+#pragma region HarvesterQuickUnloader
+
void __fastcall ArrivingRefineryNearBy(UnitClass* pThis, BuildingClass* pDock)
{
pDock->UpdateRefinerySmokeSystems();
@@ -185,6 +182,8 @@ DEFINE_HOOK(0x73EB2C, UnitClass_MissionHarvest_Status2, 0x6)
if (pType->Teleporter && (move == MovementZone::AmphibiousCrusher || move == MovementZone::AmphibiousDestroyer))
move = MovementZone::Amphibious;
+ else if (move == MovementZone::Subterrannean)
+ move = MovementZone::Fly;
const auto destLocation = pThis->GetDestination();
auto destCell = CellStruct { static_cast(destLocation.X >> 8), static_cast(destLocation.Y >> 8) };
@@ -295,3 +294,5 @@ DEFINE_HOOK(0x441226, BuildingClass_Unlimbo_RecheckRefinery, 0x6)
return 0;
}
+
+#pragma endregion