diff --git a/projects/openttd_vs100.vcxproj b/projects/openttd_vs100.vcxproj
index 7584a8c2b4..936689b6c1 100644
--- a/projects/openttd_vs100.vcxproj
+++ b/projects/openttd_vs100.vcxproj
@@ -1079,6 +1079,7 @@
+
diff --git a/projects/openttd_vs100.vcxproj.filters b/projects/openttd_vs100.vcxproj.filters
index 0020eb1892..587e3f6984 100644
--- a/projects/openttd_vs100.vcxproj.filters
+++ b/projects/openttd_vs100.vcxproj.filters
@@ -2457,6 +2457,9 @@
YAPF
+
+ YAPF
+
YAPF
diff --git a/projects/openttd_vs80.vcproj b/projects/openttd_vs80.vcproj
index fb84d3e506..79212eeab1 100644
--- a/projects/openttd_vs80.vcproj
+++ b/projects/openttd_vs80.vcproj
@@ -3682,6 +3682,10 @@
RelativePath=".\..\src\pathfinder\yapf\yapf_node_road.hpp"
>
+
+
diff --git a/projects/openttd_vs90.vcproj b/projects/openttd_vs90.vcproj
index 0ee69329c7..c6487d6cb7 100644
--- a/projects/openttd_vs90.vcproj
+++ b/projects/openttd_vs90.vcproj
@@ -3679,6 +3679,10 @@
RelativePath=".\..\src\pathfinder\yapf\yapf_node_road.hpp"
>
+
+
diff --git a/source.list b/source.list
index 970a53d7dc..cc3562e557 100644
--- a/source.list
+++ b/source.list
@@ -880,6 +880,7 @@ pathfinder/yapf/yapf_destrail.hpp
pathfinder/yapf/yapf_node.hpp
pathfinder/yapf/yapf_node_rail.hpp
pathfinder/yapf/yapf_node_road.hpp
+pathfinder/yapf/yapf_node_ship.hpp
pathfinder/yapf/yapf_rail.cpp
pathfinder/yapf/yapf_road.cpp
pathfinder/yapf/yapf_ship.cpp
diff --git a/src/pathfinder/yapf/yapf_node.hpp b/src/pathfinder/yapf/yapf_node.hpp
index 0ed3748e57..0eb9802deb 100644
--- a/src/pathfinder/yapf/yapf_node.hpp
+++ b/src/pathfinder/yapf/yapf_node.hpp
@@ -81,21 +81,4 @@ struct CYapfNodeT {
}
};
-/** Yapf Node for ships */
-template
-struct CYapfShipNodeT
- : CYapfNodeT >
-{
-
-};
-
-/* now define two major node types (that differ by key type) */
-typedef CYapfShipNodeT CYapfShipNodeExitDir;
-typedef CYapfShipNodeT CYapfShipNodeTrackDir;
-
-/* Default NodeList types */
-typedef CNodeList_HashTableT CShipNodeListExitDir;
-typedef CNodeList_HashTableT CShipNodeListTrackDir;
-
-
#endif /* YAPF_NODE_HPP */
diff --git a/src/pathfinder/yapf/yapf_node_ship.hpp b/src/pathfinder/yapf/yapf_node_ship.hpp
new file mode 100644
index 0000000000..3fbc299f73
--- /dev/null
+++ b/src/pathfinder/yapf/yapf_node_ship.hpp
@@ -0,0 +1,32 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see .
+ */
+
+/** @file yapf_node_ship.hpp Node tailored for ship pathfinding. */
+
+#ifndef YAPF_NODE_SHIP_HPP
+#define YAPF_NODE_SHIP_HPP
+
+/** Yapf Node for ships */
+template
+struct CYapfShipNodeT
+ : CYapfNodeT >
+{
+
+};
+
+/* now define two major node types (that differ by key type) */
+typedef CYapfShipNodeT CYapfShipNodeExitDir;
+typedef CYapfShipNodeT CYapfShipNodeTrackDir;
+
+/* Default NodeList types */
+typedef CNodeList_HashTableT CShipNodeListExitDir;
+typedef CNodeList_HashTableT CShipNodeListTrackDir;
+
+
+#endif /* YAPF_NODE_SHIP_HPP */
diff --git a/src/pathfinder/yapf/yapf_ship.cpp b/src/pathfinder/yapf/yapf_ship.cpp
index 51fc849440..69f1ce2c55 100644
--- a/src/pathfinder/yapf/yapf_ship.cpp
+++ b/src/pathfinder/yapf/yapf_ship.cpp
@@ -13,6 +13,7 @@
#include "../../ship.h"
#include "yapf.hpp"
+#include "yapf_node_ship.hpp"
/** Node Follower module of YAPF for ships */
template