From 5f2c2aa9c05a50841e3ca02d3901be4f143ad8d8 Mon Sep 17 00:00:00 2001
From: Kontroll <72424960+KontrollFreek@users.noreply.github.com>
Date: Wed, 12 Oct 2022 21:59:32 -0400
Subject: [PATCH 01/25] I'm not a regular nazi, just a grammar nazi

---
 README.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index ee068499..04743fa3 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
 
 # Geode SDK
 
-**Geode** is a [Geometry Dash](https://store.steampowered.com/app/322170/Geometry_Dash/) **mod loader** and **modding SDK** with a modern approach towards mod development. Unlike previous mod loaders, which merely inject the DLLs and let devs handle the rest, Geode aims to be a more comprehensive project, which manages loaded mods & hooks itself. Geode has been built to ensure performance, compatibility, portability and ease of use. For devs, Geode means **easy development and portability**; for end users, Geode means **an uniform and easy experience** using mods.
+**Geode** is a [Geometry Dash](https://store.steampowered.com/app/322170/Geometry_Dash/) **mod loader** and **modding SDK** with a modern approach towards mod development. Unlike previous mod loaders, which merely inject the DLLs and let devs handle the rest, Geode aims to be a more comprehensive project, which manages loaded mods & hooks itself. Geode has been built to ensure performance, compatibility, portability and ease of use. For devs, Geode means **easy development and portability**; for end users, Geode means **a uniform and easy experience** using mods.
 
 ## Why Geode?
 
@@ -28,7 +28,7 @@ This code hooks the "More Games" button in Geometry Dash, and makes it show a di
 
 One of our main design goals with Geode has been to make a framework so good that **after using it once, you never want to go back**.
 
-> :warning: It is important to note that Geode is **not meant to make learning to mod easier**. To make a good GD mod, you will still need to learn the ins  and outs of C++, reverse engineering, byte patching, and everything else. Geode is merely a collection of tools that make modding more enjoyable for people who are already familiar with it; not a magic wand for making mods without the hours of experience and practice required.
+> :warning: It is important to note that Geode is **not meant to make learning to mod easier**. To make a good GD mod, you will still need to learn the ins and outs of C++, reverse engineering, byte patching, and everything else. Geode is merely a collection of tools that make modding more enjoyable for people who are already familiar with it; not a magic wand for making mods without the hours of experience and practice required.
 
 ## Documentation
 

From 3204d39803756d65b8378be4927ad3de90f0ba2c Mon Sep 17 00:00:00 2001
From: Kontroll <72424960+KontrollFreek@users.noreply.github.com>
Date: Wed, 12 Oct 2022 22:06:33 -0400
Subject: [PATCH 02/25] redundancy!!

---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 04743fa3..1faa4d20 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
 
 # Geode SDK
 
-**Geode** is a [Geometry Dash](https://store.steampowered.com/app/322170/Geometry_Dash/) **mod loader** and **modding SDK** with a modern approach towards mod development. Unlike previous mod loaders, which merely inject the DLLs and let devs handle the rest, Geode aims to be a more comprehensive project, which manages loaded mods & hooks itself. Geode has been built to ensure performance, compatibility, portability and ease of use. For devs, Geode means **easy development and portability**; for end users, Geode means **a uniform and easy experience** using mods.
+**Geode** is a [Geometry Dash](https://store.steampowered.com/app/322170/Geometry_Dash/) **mod loader** and **modding SDK** with a modern approach towards mod development. Unlike previous mod loaders, which merely inject the DLLs and let devs handle the rest, Geode aims to be a more comprehensive project, which manages loaded mods & hooks itself. Geode has been built to ensure performance, compatibility, portability and ease of use. For devs, Geode means **easy development and portability**; for end users, **a uniform and easy experience** using mods.
 
 ## Why Geode?
 

From 1df4c898acbdd2cda0bebbadfbf488ed9b222555 Mon Sep 17 00:00:00 2001
From: matcool <26722564+matcool@users.noreply.github.com>
Date: Fri, 14 Oct 2022 19:09:33 -0300
Subject: [PATCH 03/25] neater

---
 loader/hash/hash.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/loader/hash/hash.cpp b/loader/hash/hash.cpp
index d55dbdba..98759a55 100644
--- a/loader/hash/hash.cpp
+++ b/loader/hash/hash.cpp
@@ -1,11 +1,11 @@
 #include <iostream>
 #include "hash.hpp"
 
-int main(int ac, char* av[]) {
-    if (ac < 2) {
+int main(int argc, char** argv) {
+    if (argc < 2 || !ghc::filesystem::exists(argv[1])) {
         std::cout << "Usage: \"checksum <file>\"\n";
         return 1;
     }
-    std::cout << calculateHash(av[1]) << std::hex;
+    std::cout << calculateHash(argv[1]) << std::endl;
     return 0;
 }

From 7c410c46280629a121142dc24de5dcea06ed8b93 Mon Sep 17 00:00:00 2001
From: matcool <26722564+matcool@users.noreply.github.com>
Date: Fri, 14 Oct 2022 19:10:19 -0300
Subject: [PATCH 04/25] hotfix resources repair

---
 VERSION                                | 2 +-
 loader/src/internal/InternalLoader.cpp | 6 ++++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/VERSION b/VERSION
index c0a1ac19..5546bd2c 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.4.6
\ No newline at end of file
+0.4.7
\ No newline at end of file
diff --git a/loader/src/internal/InternalLoader.cpp b/loader/src/internal/InternalLoader.cpp
index fb0b5744..f9547a73 100644
--- a/loader/src/internal/InternalLoader.cpp
+++ b/loader/src/internal/InternalLoader.cpp
@@ -173,6 +173,12 @@ bool InternalLoader::verifyLoaderResources(IndexUpdateCallback callback) {
         return false;
     }
 
+    return true;
+    // FIXME: plist orderings are not consistent
+    // thus every time CLI generates them its a different hash..
+    // making it so geode would always fetch resources
+    // so for now, disable hash checks
+
     // make sure every file was covered
     size_t coverage = 0;
 

From cff1b67fe6ac3c4b6e2bd23a972096990955f672 Mon Sep 17 00:00:00 2001
From: Chloe <25387744+qimiko@users.noreply.github.com>
Date: Fri, 14 Oct 2022 18:01:47 -0700
Subject: [PATCH 05/25] add delegates to EditLevelLayer

---
 bindings/GeometryDash.bro | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bindings/GeometryDash.bro b/bindings/GeometryDash.bro
index 1e4ea2f6..c2b9d2f4 100644
--- a/bindings/GeometryDash.bro
+++ b/bindings/GeometryDash.bro
@@ -1034,7 +1034,7 @@ class EditButtonBar : cocos2d::CCNode {
     cocos2d::CCArray* m_pagesArray;
 }
 
-class EditLevelLayer : cocos2d::CCLayer {
+class EditLevelLayer : cocos2d::CCLayer, FLAlertLayerProtocol, TextInputDelegate, UploadActionDelegate, UploadPopupDelegate, SetIDPopupDelegate {
     static void scene(GJGameLevel* level) {
         auto scene = cocos2d::CCScene::create();
     

From 57b32182c8b843fb23ee1e143aafd1cbc534b519 Mon Sep 17 00:00:00 2001
From: HJfod <60038575+HJfod@users.noreply.github.com>
Date: Sat, 15 Oct 2022 18:22:09 +0300
Subject: [PATCH 06/25] update resources to use hashes again (CLI v1.0.6 should
 fix the issues)

---
 loader/src/internal/InternalLoader.cpp | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/loader/src/internal/InternalLoader.cpp b/loader/src/internal/InternalLoader.cpp
index f9547a73..fb0b5744 100644
--- a/loader/src/internal/InternalLoader.cpp
+++ b/loader/src/internal/InternalLoader.cpp
@@ -173,12 +173,6 @@ bool InternalLoader::verifyLoaderResources(IndexUpdateCallback callback) {
         return false;
     }
 
-    return true;
-    // FIXME: plist orderings are not consistent
-    // thus every time CLI generates them its a different hash..
-    // making it so geode would always fetch resources
-    // so for now, disable hash checks
-
     // make sure every file was covered
     size_t coverage = 0;
 

From bb7bd87dfc4b3936f5657f63a1c8bd10fe76561a Mon Sep 17 00:00:00 2001
From: HJfod <60038575+HJfod@users.noreply.github.com>
Date: Sat, 15 Oct 2022 18:35:13 +0300
Subject: [PATCH 07/25] ready for v0.4.8  - move LoadingLayer resource download
 info to loading text

---
 VERSION                           |  2 +-
 loader/src/hooks/LoadingLayer.cpp | 64 +++++++++++++------------------
 2 files changed, 27 insertions(+), 39 deletions(-)

diff --git a/VERSION b/VERSION
index 5546bd2c..c650d5af 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.4.7
\ No newline at end of file
+0.4.8
\ No newline at end of file
diff --git a/loader/src/hooks/LoadingLayer.cpp b/loader/src/hooks/LoadingLayer.cpp
index acf8488a..4a0cbb6c 100644
--- a/loader/src/hooks/LoadingLayer.cpp
+++ b/loader/src/hooks/LoadingLayer.cpp
@@ -5,10 +5,9 @@
 USE_GEODE_NAMESPACE();
 
 class $modify(CustomLoadingLayer, LoadingLayer) {
-    CCScale9Sprite* m_updatingResourcesBG;
-    CCLabelBMFont* m_updatingResources;
+    bool m_updatingResources;
 
-    CustomLoadingLayer() : m_updatingResources(nullptr) {}
+    CustomLoadingLayer() : m_updatingResources(false) {}
 
     bool init(bool fromReload) {
         if (!LoadingLayer::init(fromReload))
@@ -38,22 +37,22 @@ class $modify(CustomLoadingLayer, LoadingLayer) {
                 std::placeholders::_3
             )
         )) {
-            auto bg = CCScale9Sprite::create(
-                "square02b_001.png", { 0.0f, 0.0f, 80.0f, 80.0f }
-            );
-            bg->setScale(.6f);
-            bg->setColor({ 0, 0, 0 });
-            bg->setOpacity(150);
-            bg->setPosition(winSize / 2);
-            this->addChild(bg);
+            // auto bg = CCScale9Sprite::create(
+            //     "square02b_001.png", { 0.0f, 0.0f, 80.0f, 80.0f }
+            // );
+            // bg->setScale(.6f);
+            // bg->setColor({ 0, 0, 0 });
+            // bg->setOpacity(150);
+            // bg->setPosition(winSize / 2);
+            // this->addChild(bg);
 
-            m_fields->m_updatingResourcesBG = bg;
+            // m_fields->m_updatingResourcesBG = bg;
 
-            auto label = CCLabelBMFont::create("", "goldFont.fnt");
-            label->setScale(1.1f);
-            bg->addChild(label);
+            // auto label = CCLabelBMFont::create("", "goldFont.fnt");
+            // label->setScale(1.1f);
+            // bg->addChild(label);
 
-            m_fields->m_updatingResources = label;
+            m_fields->m_updatingResources = true;
 
             this->setUpdateText("Downloading Resources");
         }
@@ -62,14 +61,15 @@ class $modify(CustomLoadingLayer, LoadingLayer) {
     }
 
     void setUpdateText(std::string const& text) {
-        m_fields->m_updatingResources->setString(text.c_str());
-        m_fields->m_updatingResourcesBG->setContentSize({
-            m_fields->m_updatingResources->getScaledContentSize().width + 30.f,
-            50.f
-        });
-        m_fields->m_updatingResources->setPosition(
-            m_fields->m_updatingResourcesBG->getContentSize() / 2
-        );
+        m_textArea->setString(text.c_str());
+        // m_fields->m_updatingResources->setString(text.c_str());
+        // m_fields->m_updatingResourcesBG->setContentSize({
+        //     m_fields->m_updatingResources->getScaledContentSize().width + 30.f,
+        //     50.f
+        // });
+        // m_fields->m_updatingResources->setPosition(
+        //     m_fields->m_updatingResourcesBG->getContentSize() / 2
+        // );
     }
 
     void updateResourcesProgress(
@@ -87,13 +87,7 @@ class $modify(CustomLoadingLayer, LoadingLayer) {
 
             case UpdateStatus::Finished: {
                 this->setUpdateText("Resources Downloaded");
-                m_fields->m_updatingResourcesBG->runAction(CCSequence::create(
-                    CCDelayTime::create(1.f),
-                    CCRemoveSelf::create(),
-                    nullptr
-                ));
-                m_fields->m_updatingResourcesBG = nullptr;
-                m_fields->m_updatingResources = nullptr;
+                m_fields->m_updatingResources = false;
                 this->loadAssets();
             } break;
 
@@ -105,13 +99,7 @@ class $modify(CustomLoadingLayer, LoadingLayer) {
                     "that it may very likely crash."
                 );
                 this->setUpdateText("Resource Download Failed");
-                m_fields->m_updatingResourcesBG->runAction(CCSequence::create(
-                    CCDelayTime::create(1.f),
-                    CCRemoveSelf::create(),
-                    nullptr
-                ));
-                m_fields->m_updatingResourcesBG = nullptr;
-                m_fields->m_updatingResources = nullptr;
+                m_fields->m_updatingResources = false;
                 this->loadAssets();
             } break;
         }

From 1122cc1a40dd771f4ffa6772b5fa68240d91f59f Mon Sep 17 00:00:00 2001
From: HJfod <60038575+HJfod@users.noreply.github.com>
Date: Sat, 15 Oct 2022 18:41:53 +0300
Subject: [PATCH 08/25] update changelog

---
 CHANGELOG.md | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8a1f6e03..afe0d6fc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,17 @@
 # Geode Changelog
 
+## v0.4.8
+
+ - CLI issues fixed in v1.0.6 so loader again verifies if loader resources are missing / corrupt on startup
+ - Resource download text is no longer a popup on top of the title but instead just replaces the loading text
+ - Add delegates to `EditLevelLayer`
+
+## v0.4.7
+
+ - Loader resources check would always fail due to CLI issues, so for now loader just checks if the resources folder exists
+
 ## v0.4.6
+
  - Automatically checks & downloads loader resources if they are missing / corrupt on startup
  - CMake rework; `GeodeFile.cmake` now checks and verifies CLI version
  - Add optional `DONT_INSTALL` parameter to `create_geode_file`

From fe76cccbee4731efb5ec90e193ca6e9c3eefd612 Mon Sep 17 00:00:00 2001
From: HJfod <60038575+HJfod@users.noreply.github.com>
Date: Sat, 15 Oct 2022 20:06:12 +0300
Subject: [PATCH 09/25] add license

---
 LICENSE | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100644 LICENSE

diff --git a/LICENSE b/LICENSE
new file mode 100644
index 00000000..30aac2cf
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,23 @@
+Boost Software License - Version 1.0 - August 17th, 2003
+
+Permission is hereby granted, free of charge, to any person or organization
+obtaining a copy of the software and accompanying documentation covered by
+this license (the "Software") to use, reproduce, display, distribute,
+execute, and transmit the Software, and to prepare derivative works of the
+Software, and to permit third-parties to whom the Software is furnished to
+do so, all subject to the following:
+
+The copyright notices in the Software and this entire statement, including
+the above license grant, this restriction and the following disclaimer,
+must be included in all copies of the Software, in whole or in part, and
+all derivative works of the Software, unless such copies or derivative
+works are solely in the form of machine-executable object code generated by
+a source language processor.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
\ No newline at end of file

From 4b842e5f2ab0e04cb0df601d83d0fc80311b71f4 Mon Sep 17 00:00:00 2001
From: HJfod <60038575+HJfod@users.noreply.github.com>
Date: Sat, 15 Oct 2022 20:19:20 +0300
Subject: [PATCH 10/25] v0.5.0  - add `CCFileUtils::get`  - turns out i was
 doing semver wrong. i'm deeply sorry. read:
 https://www.twitlonger.com/show/n_1ss44g2  - fix MenuLayer crashes related to
 node IDs  - remove `Loader::updateModResourcePaths` and
 `Loader::updateResourcePaths`. Loader minimum mod version is still v0.4.0
 however, as you should not have used these ever.  - rework how mod resources
 are added

---
 VERSION                                       |   2 +-
 .../cocos/cocos2dx/platform/CCFileUtils.h     |   4 +
 loader/include/Geode/loader/Loader.hpp        |   2 -
 loader/src/cocos2d-ext/Getters.cpp            |   4 +
 loader/src/hooks/MenuLayer.cpp                |  47 ++++----
 loader/src/hooks/updateResources.cpp          |  14 +--
 loader/src/internal/InternalMod.cpp           |   3 +
 loader/src/load/Loader.cpp                    | 100 ++++++++----------
 loader/src/load/load.cpp                      |   1 -
 9 files changed, 88 insertions(+), 89 deletions(-)

diff --git a/VERSION b/VERSION
index c650d5af..79a2734b 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.4.8
\ No newline at end of file
+0.5.0
\ No newline at end of file
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/CCFileUtils.h b/loader/include/Geode/cocos/cocos2dx/platform/CCFileUtils.h
index 07e18e0e..545e0f23 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/CCFileUtils.h
+++ b/loader/include/Geode/cocos/cocos2dx/platform/CCFileUtils.h
@@ -64,6 +64,10 @@ public:
      *  @js getInstance
      */
     static CCFileUtils* sharedFileUtils();
+
+    GEODE_ADD(
+        static CCFileUtils* get();
+    );
     
     /**
      *  Destroys the instance of CCFileUtils.
diff --git a/loader/include/Geode/loader/Loader.hpp b/loader/include/Geode/loader/Loader.hpp
index bc3120af..d94b8509 100644
--- a/loader/include/Geode/loader/Loader.hpp
+++ b/loader/include/Geode/loader/Loader.hpp
@@ -182,8 +182,6 @@ namespace geode {
          * Mod::m_addResourcesToSearchPath to true 
          * first
          */
-        void updateModResourcePaths(Mod*);
-        void updateResourcePaths();
         void updateModResources(Mod* mod);
         void updateResources();
 
diff --git a/loader/src/cocos2d-ext/Getters.cpp b/loader/src/cocos2d-ext/Getters.cpp
index fe5f97d5..588e04d5 100644
--- a/loader/src/cocos2d-ext/Getters.cpp
+++ b/loader/src/cocos2d-ext/Getters.cpp
@@ -25,4 +25,8 @@ CCEGLView* CCEGLView::get() {
     return CCDirector::sharedDirector()->getOpenGLView();
 }
 
+CCFileUtils* CCFileUtils::get() {
+    return CCFileUtils::sharedFileUtils();
+}
+
 #pragma warning(pop)
diff --git a/loader/src/hooks/MenuLayer.cpp b/loader/src/hooks/MenuLayer.cpp
index e72919ba..39f04d90 100644
--- a/loader/src/hooks/MenuLayer.cpp
+++ b/loader/src/hooks/MenuLayer.cpp
@@ -62,6 +62,23 @@ static void updateIndexProgress(
 	}
 }
 
+template<class T = CCNode>
+	requires std::is_base_of_v<CCNode, T>
+T* setIDSafe(CCNode* node, int index, const char* id) {
+	if constexpr (std::is_same_v<CCNode, T>) {
+		if (auto child = getChild(node, index)) {
+			child->setID(id);
+			return child;
+		}
+	} else {
+		if (auto child = getChildOfType<T>(node, index)) {
+			child->setID(id);
+			return child;
+		}
+	}
+	return nullptr;
+}
+
 #include <Geode/modify/MenuLayer.hpp>
 class $modify(CustomMenuLayer, MenuLayer) {
 	void destructor() {
@@ -73,34 +90,26 @@ class $modify(CustomMenuLayer, MenuLayer) {
 		if (!MenuLayer::init())
 			return false;
 		
-		Loader::get()->updateResourcePaths();
-
-		auto setIDSafe = +[](CCNode* node, int index, const char* id) {
-			if (auto child = getChild(node, index)) {
-				child->setID(id);
-			}
-		};
-
 		// set IDs to everything
 		this->setID("main-menu-layer");
 		setIDSafe(this, 0, "main-menu-bg");
-		getChildOfType<CCSprite>(this, 0)->setID("main-title");
+		setIDSafe<CCSprite>(this, 0, "main-title");
 
 		if (PlatformToolbox::isControllerConnected()) {
-			getChildOfType<CCSprite>(this, 1)->setID("play-gamepad-icon");
-			getChildOfType<CCSprite>(this, 2)->setID("editor-gamepad-icon");
-			getChildOfType<CCSprite>(this, 3)->setID("icon-kit-gamepad-icon");
+			setIDSafe<CCSprite>(this, 1, "play-gamepad-icon");
+			setIDSafe<CCSprite>(this, 2, "editor-gamepad-icon");
+			setIDSafe<CCSprite>(this, 3, "icon-kit-gamepad-icon");
 
-			getChildOfType<CCSprite>(this, 4)->setID("settings-gamepad-icon");
-			getChildOfType<CCSprite>(this, 5)->setID("mouse-gamepad-icon");
-			getChildOfType<CCSprite>(this, 6)->setID("click-gamepad-icon");
+			setIDSafe<CCSprite>(this, 4, "settings-gamepad-icon");
+			setIDSafe<CCSprite>(this, 5, "mouse-gamepad-icon");
+			setIDSafe<CCSprite>(this, 6, "click-gamepad-icon");
 
-			getChildOfType<CCLabelBMFont>(this, 0)->setID("mouse-gamepad-label");
-			getChildOfType<CCLabelBMFont>(this, 1)->setID("click-gamepad-label");
+			setIDSafe<CCLabelBMFont>(this, 0, "mouse-gamepad-label");
+			setIDSafe<CCLabelBMFont>(this, 1, "click-gamepad-label");
 
-			getChildOfType<CCLabelBMFont>(this, 2)->setID("player-username");
+			setIDSafe<CCLabelBMFont>(this, 2, "player-username");
 		} else {
-			getChildOfType<CCLabelBMFont>(this, 0)->setID("player-username");
+			setIDSafe<CCLabelBMFont>(this, 0, "player-username");
 		}
 		if (auto menu = getChildOfType<CCMenu>(this, 0)) {
 			menu->setID("main-menu");
diff --git a/loader/src/hooks/updateResources.cpp b/loader/src/hooks/updateResources.cpp
index cb2bae95..8dd014fe 100644
--- a/loader/src/hooks/updateResources.cpp
+++ b/loader/src/hooks/updateResources.cpp
@@ -1,21 +1,13 @@
 #include <Geode/loader/Loader.hpp>
+#include <Geode/modify/LoadingLayer.hpp>
 
 USE_GEODE_NAMESPACE();
 
-#include <Geode/modify/GameManager.hpp>
-class $modify(GameManager) {
-	void reloadAllStep2() {
-		GameManager::reloadAllStep2();
-		Loader::get()->updateResourcePaths();
-	}
-};
-
-#include <Geode/modify/LoadingLayer.hpp>
 class $modify(LoadingLayer) {
 	void loadAssets() {
 		LoadingLayer::loadAssets();
-		if (this->m_loadStep == 5) {
-			Loader::get()->updateResourcePaths();
+		// this is in case the user refreshes texture quality at runtime
+		if (this->m_loadStep == 12) {
 			Loader::get()->updateResources();
 		}
 	}
diff --git a/loader/src/internal/InternalMod.cpp b/loader/src/internal/InternalMod.cpp
index 1028db12..934c4b86 100644
--- a/loader/src/internal/InternalMod.cpp
+++ b/loader/src/internal/InternalMod.cpp
@@ -40,6 +40,9 @@ InternalMod::InternalMod() : Mod(getInternalModInfo()) {
     m_saveDirPath = Loader::get()->getGeodeSaveDirectory() / GEODE_MOD_DIRECTORY / m_info.m_id;
     ghc::filesystem::create_directories(m_saveDirPath);
 
+    // make sure spritesheets get added
+    m_addResourcesToSearchPath = true;
+
     auto sett = this->loadSettings();
     if (!sett) {
         log::log(Severity::Error, this, "{}", sett.error());
diff --git a/loader/src/load/Loader.cpp b/loader/src/load/Loader.cpp
index 48d26034..a87c92af 100644
--- a/loader/src/load/Loader.cpp
+++ b/loader/src/load/Loader.cpp
@@ -49,67 +49,67 @@ void Loader::createDirectories() {
     m_logStream = std::ofstream(logDir / log::generateLogName());
 }
 
-void Loader::updateResourcePaths() {
-    log::debug("Updating resources paths");
-
-    // add own geode/resources directory
-    CCFileUtils::sharedFileUtils()->addSearchPath(
-        (this->getGeodeDirectory() / GEODE_RESOURCE_DIRECTORY).string().c_str()
-    );
-
-    // add geode/temp for accessing root resources in mods
-    auto tempDir = this->getGeodeDirectory() / GEODE_TEMP_DIRECTORY;
-    CCFileUtils::sharedFileUtils()->addSearchPath(tempDir.string().c_str());
-
-    // add geode/temp/mod.id/resources for accessing additional resources in mods
-    for (auto& [_, mod] : m_mods) {
-        this->updateModResourcePaths(mod);
-    }
-}
-
-void Loader::updateModResourcePaths(Mod* mod) {
-    if (mod->m_addResourcesToSearchPath) {
-        CCFileUtils::sharedFileUtils()->addSearchPath(
-            (this->getGeodeDirectory() / 
-                GEODE_TEMP_DIRECTORY / 
-                mod->getID() / 
-                "resources"
-            ).string().c_str()
-        );
-        log::debug("Added resources path for {}", mod->getID());
-    }
-}
-
 void Loader::updateModResources(Mod* mod) {
+    if (!mod->m_addResourcesToSearchPath) {
+        log::debug("Mod {} doesn't have resources, skipping", mod->getID());
+        return;
+    }
+
+    auto searchPath = this->getGeodeDirectory() / 
+        GEODE_TEMP_DIRECTORY / mod->getID() / "resources";
+
+    // if resources already added
+    if (vector::contains(CCFileUtils::get()->getSearchPaths(), searchPath.string())) {
+        return;
+    }
+
+    log::debug("Adding resources for {}", mod->getID());
+
+    // add search path
+    CCFileUtils::get()->addSearchPath(searchPath.string().c_str());
+
+    // add spritesheets
     for (auto const& sheet : mod->m_info.m_spritesheets) {
         auto png = sheet + ".png";
         auto plist = sheet + ".plist";
         auto ccfu = CCFileUtils::sharedFileUtils();
 
         if (
-            png == std::string(
-                ccfu->fullPathForFilename(png.c_str(), false)
-            ) ||
-            plist == std::string(
-                ccfu->fullPathForFilename(plist.c_str(), false)
-            )
+            png == std::string(ccfu->fullPathForFilename(png.c_str(), false)) ||
+            plist == std::string(ccfu->fullPathForFilename(plist.c_str(), false))
         ) {
-            log::warn("The resource dir of \"{}\" is missing \"{}\" png and/or plist files", mod->m_info.m_id, sheet);
+            log::warn(
+                "The resource dir of \"{}\" is missing \"{}\" png and/or plist files",
+                mod->m_info.m_id, sheet
+            );
         } else {
             CCTextureCache::sharedTextureCache()->addImage(png.c_str(), false);
             CCSpriteFrameCache::sharedSpriteFrameCache()
                 ->addSpriteFramesWithFile(plist.c_str());
-
-            log::debug("Added resources for {}", mod->getID());
         }
     }
 }
 
 void Loader::updateResources() {
-    log::debug("Adding mod resources");
+    log::debug("Adding resources");
 
-    // add own spritesheets
-    this->updateModResources(InternalMod::get());
+    // if resources already added
+    if (!vector::contains(
+        CCFileUtils::get()->getSearchPaths(),
+        (this->getGeodeDirectory() / GEODE_RESOURCE_DIRECTORY).string()
+    )) {
+        // add own geode/resources directory
+        CCFileUtils::get()->addSearchPath(
+            (this->getGeodeDirectory() / GEODE_RESOURCE_DIRECTORY).string().c_str()
+        );
+
+        // add geode/temp for accessing root resources in mods
+        auto tempDir = this->getGeodeDirectory() / GEODE_TEMP_DIRECTORY;
+        CCFileUtils::get()->addSearchPath(tempDir.string().c_str());
+
+        // add own spritesheets
+        this->updateModResources(InternalMod::get());
+    }
 
     // add mods' spritesheets
     for (auto const& [_, mod] : m_mods) {
@@ -353,12 +353,6 @@ bool Loader::setup() {
     this->loadSettings();
     this->refreshMods();
 
-    // add resources on startup
-    this->queueInGDThread([]() {
-        Loader::get()->updateResourcePaths();
-        Loader::get()->updateResources();
-    });
-
     m_isSetup = true;
 
     return true;
@@ -454,12 +448,8 @@ size_t Loader::getFieldIndexForClass(size_t hash) {
 }
 
 VersionInfo Loader::minModVersion() {
-    // patches are always backwards-compatible. if not, we have failed
-    return VersionInfo {
-        Loader::getVersion().getMajor(),
-        Loader::getVersion().getMinor(),
-        0,
-    };
+    // Remember to update when deleting features!
+    return VersionInfo { 0, 4, 0 };
 }
 
 VersionInfo Loader::maxModVersion() {
diff --git a/loader/src/load/load.cpp b/loader/src/load/load.cpp
index 8c2587d1..110e8bee 100644
--- a/loader/src/load/load.cpp
+++ b/loader/src/load/load.cpp
@@ -51,7 +51,6 @@ Result<Mod*> Loader::loadModFromFile(std::string const& path) {
 
     // add mod resources
     this->queueInGDThread([this, mod]() {
-        this->updateModResourcePaths(mod);
         this->updateModResources(mod);
     });
 

From 6fe9a5f2ceabb4a714fea7ce0a259b6ef7223627 Mon Sep 17 00:00:00 2001
From: HJfod <60038575+HJfod@users.noreply.github.com>
Date: Sat, 15 Oct 2022 21:44:35 +0300
Subject: [PATCH 11/25] utils rework  - deprecate utils::vector and
 utils::container and replace them with utils::ranges

---
 loader/include/Geode/loader/Setting.hpp      |   3 +-
 loader/include/Geode/utils/container.hpp     |   4 +
 loader/include/Geode/utils/ranges.hpp        | 143 +++++++++++++++++++
 loader/include/Geode/utils/vector.hpp        |  15 ++
 loader/src/index/Index.cpp                   |   5 +-
 loader/src/load/Hook.cpp                     |   3 +-
 loader/src/load/Loader.cpp                   |  15 +-
 loader/src/load/Mod.cpp                      |   5 +-
 loader/src/load/Patch.cpp                    |   3 +-
 loader/src/ui/internal/info/ModInfoLayer.cpp |   3 +-
 loader/src/ui/nodes/MDTextArea.cpp           |   8 +-
 loader/src/ui/nodes/Notification.cpp         |  11 +-
 12 files changed, 192 insertions(+), 26 deletions(-)
 create mode 100644 loader/include/Geode/utils/ranges.hpp

diff --git a/loader/include/Geode/loader/Setting.hpp b/loader/include/Geode/loader/Setting.hpp
index 0d203e03..30efd6e6 100644
--- a/loader/include/Geode/loader/Setting.hpp
+++ b/loader/include/Geode/loader/Setting.hpp
@@ -9,6 +9,7 @@
 #include <Geode/utils/JsonValidation.hpp>
 #include <Geode/utils/convert.hpp>
 #include <Geode/utils/platform.hpp>
+#include <Geode/utils/ranges.hpp>
 #include <regex>
 
 #pragma warning(push)
@@ -266,7 +267,7 @@ namespace geode {
                     value = static_cast<Class*>(this)->getDefault();
                     return Err(
                         "Value must be one of " +
-                        utils::container::join(m_oneOf.value(), ", ")
+                        utils::ranges::join(m_oneOf.value(), ", ")
                     );
                 }
                 return Ok();
diff --git a/loader/include/Geode/utils/container.hpp b/loader/include/Geode/utils/container.hpp
index 411feff6..d2faf9ae 100644
--- a/loader/include/Geode/utils/container.hpp
+++ b/loader/include/Geode/utils/container.hpp
@@ -12,6 +12,7 @@ namespace geode::utils::container {
      * @returns True if element is in `vec`, false if not.
      */
     template<class C, class T>
+    [[deprecated("Use geode::utils::ranges::contains instead")]]
     bool contains(C const& cont, T const& elem) {
         return std::find(cont.begin(), cont.end(), elem) != cont.end();
     }
@@ -25,6 +26,7 @@ namespace geode::utils::container {
      * in `vec`, false if not.
      */
     template<class C, class T>
+    [[deprecated("Use geode::utils::ranges::contains instead")]]
     bool contains(C const& cont, std::function<bool(T)> containFunc) {
         for (auto const& item : cont) {
             if (containFunc(item))
@@ -41,6 +43,7 @@ namespace geode::utils::container {
      * @returns Joined string.
      */
     template<class C>
+    [[deprecated("Use geode::utils::ranges::join instead")]]
     std::string join(C const& cont, std::string const& sep) {
         std::string res = "";
         bool first = true;
@@ -67,6 +70,7 @@ namespace geode::utils::container {
      * @returns Mapped container.
      */
     template<class C, class C2, class T, class T2>
+    [[deprecated("Use geode::utils::ranges::map instead")]]
     C2 map(C const& cont, std::function<T2(T)> mapFunc) {
         C2 res;
         std::transform(cont.begin(), cont.end(), res.end(), mapFunc);
diff --git a/loader/include/Geode/utils/ranges.hpp b/loader/include/Geode/utils/ranges.hpp
new file mode 100644
index 00000000..ed7e0471
--- /dev/null
+++ b/loader/include/Geode/utils/ranges.hpp
@@ -0,0 +1,143 @@
+#pragma once
+
+#include <Geode/DefaultInclude.hpp>
+#include <string>
+#include <algorithm>
+
+namespace geode::utils::ranges {
+    template<class C>
+    concept ValidConstContainer = requires(C const& c) {
+        c.begin();
+        c.end();
+        typename C::value_type;
+    };
+
+    template<class C>
+    concept ValidMutContainer = requires(C& c) {
+        c.begin();
+        c.end();
+        typename C::value_type;
+    };
+
+    template<class C>
+    concept ValidContainer = ValidConstContainer<C> && ValidMutContainer<C>;
+
+    template<class P, class C>
+    concept ValidCUnaryPredicate = requires(P p, typename C::value_type const& t) {
+        { p(t) } -> std::convertible_to<bool>;
+    };
+
+    template<class P, class From, class Into>
+    concept ValidIntoConverter = requires(P p, From const& t) {
+        { p(t) } -> std::convertible_to<Into>;
+    };
+
+    template<ValidConstContainer C>
+    bool contains(C const& cont, typename C::value_type const& elem) {
+        return std::find(cont.begin(), cont.end(), elem) != cont.end();
+    }
+
+    template<ValidConstContainer C, ValidCUnaryPredicate<C> Predicate>
+    bool contains(C const& cont, Predicate fun) {
+        return std::find_if(cont.begin(), cont.end(), fun) != cont.end();
+    }
+
+    template<ValidConstContainer C, class Output>
+        requires
+            std::is_default_constructible_v<Output> &&
+            std::is_convertible_v<Output, typename C::value_type>
+    Output join(C const& cont, Output const& separator) {
+        auto res = Output();
+        bool first = true;
+        for (auto& p : cont) {
+            if (!first) {
+                res += separator;
+            } else {
+                first = false;
+            }
+            res += p;
+        }
+        return res;
+    }
+
+    template<ValidConstContainer C>
+    std::string join(C const& cont, std::string const& separator) {
+        auto res = std::string();
+        bool first = true;
+        for (auto& p : cont) {
+            if (!first) {
+                res += separator;
+            } else {
+                first = false;
+            }
+            res += p;
+        }
+        return res;
+    }
+
+    template<
+        ValidConstContainer C,
+        class Output,
+        ValidIntoConverter<typename C::value_type, Output> Conv
+    >
+        requires
+            std::is_default_constructible_v<Output>
+    Output join(C const& cont, Output const& separator, Conv converter) {
+        auto res = Output();
+        bool first = true;
+        for (auto& p : cont) {
+            if (!first) {
+                res += separator;
+            } else {
+                first = false;
+            }
+            res += Conv(p);
+        }
+        return res;
+    }
+
+    template<ValidContainer C>
+    C& push(C& container, C const& toAdd) {
+        container.insert(container.end(), toAdd.begin(), toAdd.end());
+        return container;
+    }
+
+    template<ValidMutContainer C>
+    C& remove(C& container, typename C::value_type const& value) {
+        container.erase(
+            std::remove(container.begin(), container.end(), value),
+            container.end()
+        );
+        return container;
+    }
+
+    template<ValidContainer C, ValidCUnaryPredicate<C> Predicate>
+    C filter(C const& container, Predicate filterFun) {
+        auto res = C();
+        std::copy_if(container.begin(), container.end(), res.end(), filterFun);
+        return res;
+    }
+
+    template<class R, ValidConstContainer C, class Reducer>
+        requires requires(Reducer r, R& acc, typename C::value_type t) {
+            { r(acc, t) } -> std::same_as<void>;
+        }
+    R reduce(C const& container, Reducer reducer) {
+        auto res = R();
+        for (auto& item : container) {
+            reducer(res, item);
+        }
+        return res;
+    }
+    
+    template<
+        ValidConstContainer From,
+        ValidContainer Into,
+        ValidIntoConverter<typename From::value_type, typename Into::value_type> Mapper
+    >
+    Into map(From const& from, Mapper mapper) {
+        auto res = Into();
+        std::transform(from.begin(), from.end(), res.end(), mapper);
+        return res;
+    }
+}
diff --git a/loader/include/Geode/utils/vector.hpp b/loader/include/Geode/utils/vector.hpp
index 85b153fa..f9919fbf 100644
--- a/loader/include/Geode/utils/vector.hpp
+++ b/loader/include/Geode/utils/vector.hpp
@@ -14,6 +14,7 @@ namespace geode::utils::vector {
      * @returns True if element is in `vec`, false if not.
      */
     template<class T>
+    [[deprecated("Use geode::utils::ranges::contains instead")]]
     bool contains(std::vector<T> const& vec, T const& elem) {
         return std::find(vec.begin(), vec.end(), elem) != vec.end();
     }
@@ -26,6 +27,7 @@ namespace geode::utils::vector {
      * std::vector::end if the item is not in the vector.
      */
     template<class T>
+    [[deprecated("Useless utility, if you want it added to geode::utils::ranges open an Issue on GitHub")]]
     typename std::vector<T>::const_iterator indexOf(std::vector<T> const& vec, T const& elem) {
         return std::find(vec.begin(), vec.end(), elem);
     }
@@ -39,6 +41,7 @@ namespace geode::utils::vector {
      * in `vec`, false if not.
      */
     template<class T>
+    [[deprecated("Use geode::utils::ranges::contains instead")]]
     bool contains(std::vector<T> const& vec, std::function<bool(T)> containFunc) {
         for (auto const& item : vec) {
             if (containFunc(item))
@@ -53,6 +56,7 @@ namespace geode::utils::vector {
      * @param subVec The vector to add.
      */
     template<class T>
+    [[deprecated("Use geode::utils::ranges::push instead")]]
     void push(std::vector<T> & vec, std::vector<T> const& subVec) {
         vec.insert(vec.begin(), subVec.begin(), subVec.end());
     }
@@ -65,6 +69,7 @@ namespace geode::utils::vector {
      * @returns Joined string.
      */
     template<class T>
+    [[deprecated("Use geode::utils::ranges::join instead")]]
     std::string join(std::vector<T> const& vec, std::string const& sep) {
         std::string res = "";
 
@@ -89,6 +94,7 @@ namespace geode::utils::vector {
      * @returns Mapped vector.
      */
     template<class T, class T2>
+    [[deprecated("Use geode::utils::ranges::map instead")]]
     std::vector<T2> map(std::vector<T> const& vec, std::function<T2(T)> mapFunc) {
         std::vector<T2> res;
         std::transform(vec.begin(), vec.end(), res.end(), mapFunc);
@@ -104,6 +110,7 @@ namespace geode::utils::vector {
      * @returns Filtered vector.
      */
     template<class T>
+    [[deprecated("Useless utility, if you want it added to geode::utils::ranges open an Issue on GitHub")]]
     std::vector<T>& filterIP(std::vector<T> & vec, std::function<bool(T)> filterFunc) {
         std::vector<T> res;
         for (auto m : vec) {
@@ -124,6 +131,7 @@ namespace geode::utils::vector {
      * @returns Filtered vector.
      */
     template<class T>
+    [[deprecated("Use geode::utils::ranges::filter instead")]]
     std::vector<T> filter(std::vector<T> const& vec, std::function<bool(T)> filterFunc) {
         std::vector<T> res;
         for (auto m : vec) {
@@ -145,6 +153,7 @@ namespace geode::utils::vector {
      * found, the return type is nullptr.
      */
     template<class T>
+    [[deprecated("Useless utility, if you want it added to geode::utils::ranges open an Issue on GitHub")]]
     T select(std::vector<T> const& vec, std::function<bool(T)> selectFunc) {
         for (auto const& v : vec) {
             if (selectFunc(v)) {
@@ -165,6 +174,7 @@ namespace geode::utils::vector {
      * @returns Filtered vector.
      */
     template<class T>
+    [[deprecated("Useless utility, if you want it added to geode::utils::ranges open an Issue on GitHub")]]
     std::vector<T> selectAll(std::vector<T> const& vec, std::function<bool(T)> selectFunc) {
         return filter<T>(vec, selectFunc);
     }
@@ -176,6 +186,7 @@ namespace geode::utils::vector {
      * @returns Reference to vector.
      */
     template<class T>
+    [[deprecated("Use geode::utils::ranges::remove instead")]]
     std::vector<T>& erase(std::vector<T>& vec, T const& element) {
         vec.erase(std::remove(vec.begin(), vec.end(), element), vec.end());
         return vec;
@@ -189,6 +200,7 @@ namespace geode::utils::vector {
      * @returns Reference to vector.
      */
     template<class T>
+    [[deprecated("Use geode::utils::ranges::remove instead")]]
     std::vector<T>& erase(std::vector<T>& vec, std::function<bool(T)> eraseFunc) {
         vec.erase(std::remove_if(vec.begin(), vec.end(), eraseFunc), vec.end());
         return vec;
@@ -212,6 +224,7 @@ namespace geode::utils::vector {
      * @returns Reduced value.
      */
     template<class R, class T>
+    [[deprecated("Use geode::utils::ranges::reduce instead")]]
     R reduce(std::vector<T> const& vec, std::function<void(R&, T)> reduceFunc) {
         R res = R();
         for (auto const& item : vec) {
@@ -228,6 +241,7 @@ namespace geode::utils::vector {
      * @param after Element to insert before.
      */
     template<class T>
+    [[deprecated("Useless utility, if you want it added to geode::utils::ranges open an Issue on GitHub")]]
     void insertBefore(std::vector<T> & vec, T const& item, T const& before) {
         vec.insert(utils::vector::indexOf(vec, before), item);
     }
@@ -240,6 +254,7 @@ namespace geode::utils::vector {
      * @param after Element to insert after.
      */
     template<class T>
+    [[deprecated("Useless utility, if you want it added to geode::utils::ranges open an Issue on GitHub")]]
     void insertAfter(std::vector<T> & vec, T const& item, T const& after) {
         vec.insert(utils::vector::indexOf(vec, after) + 1, item);
     }
diff --git a/loader/src/index/Index.cpp b/loader/src/index/Index.cpp
index a2b0a018..5b0037b4 100644
--- a/loader/src/index/Index.cpp
+++ b/loader/src/index/Index.cpp
@@ -9,6 +9,7 @@
 #include <Geode/utils/vector.hpp>
 #include <Geode/utils/map.hpp>
 #include <Geode/utils/general.hpp>
+#include <Geode/utils/ranges.hpp>
 #include <Geode/loader/Loader.hpp>
 #include <Geode/loader/Mod.hpp>
 #include <Geode/binding/FLAlertLayer.hpp>
@@ -447,7 +448,7 @@ Result<InstallHandle> Index::installItems(
         if (!list) {
             return Err(list.error());
         }
-        utils::vector::push(ids, list.value());
+        ranges::push(ids, list.value());
     }
     auto ret = std::make_shared<InstallItems>(
         std::unordered_set(ids.begin(), ids.end())
@@ -617,7 +618,7 @@ void InstallItems::finish(bool replaceFiles) {
         FLAlertLayer::create(
             "Mods installed",
             "The following <cy>mods</c> have been installed: " + 
-            container::join(m_toInstall, ",") + "\n"
+            ranges::join(m_toInstall, std::string(",")) + "\n"
             "Please <cr>restart the game</c> to apply",
             "OK"
         )->show();
diff --git a/loader/src/load/Hook.cpp b/loader/src/load/Hook.cpp
index 70b9c248..135bd330 100644
--- a/loader/src/load/Hook.cpp
+++ b/loader/src/load/Hook.cpp
@@ -4,6 +4,7 @@
 #include <Geode/loader/Loader.hpp>
 #include <Geode/utils/casts.hpp>
 #include <Geode/utils/vector.hpp>
+#include <Geode/utils/ranges.hpp>
 // #include <hook/hook.hpp>
 #include <Geode/hook-core/Hook.hpp>
 #include "InternalLoader.hpp"
@@ -60,7 +61,7 @@ Result<> Mod::disableHook(Hook* hook) {
 Result<> Mod::removeHook(Hook* hook) {
     auto res = this->disableHook(hook);
     if (res) {
-        utils::vector::erase<Hook*>(this->m_hooks, hook);
+        ranges::remove(m_hooks, hook);
         delete hook;
     }
     return res;
diff --git a/loader/src/load/Loader.cpp b/loader/src/load/Loader.cpp
index a87c92af..6815285f 100644
--- a/loader/src/load/Loader.cpp
+++ b/loader/src/load/Loader.cpp
@@ -6,7 +6,7 @@
 #include <InternalMod.hpp>
 #include <Geode/utils/file.hpp>
 #include <Geode/utils/conststring.hpp>
-#include <Geode/utils/vector.hpp>
+#include <Geode/utils/ranges.hpp>
 #include <Geode/utils/map.hpp>
 #include <Geode/utils/types.hpp>
 #include <mutex>
@@ -41,7 +41,7 @@ void Loader::createDirectories() {
     ghc::filesystem::create_directory(logDir);
     ghc::filesystem::create_directory(tempDir);
 
-    if (!utils::vector::contains(m_modDirectories, modDir)) {
+    if (!ranges::contains(m_modDirectories, modDir)) {
         m_modDirectories.push_back(modDir);
     }
 
@@ -382,12 +382,7 @@ void Loader::pushLog(log::Log&& log) {
 }
 
 void Loader::popLog(log::Log* log) {
-    /*for (auto i = m_logs.begin(); i < m_logs.end(); ++i) {
-        if (i == log) {
-            m_logs.erase(i);
-        }
-    }*/
-    utils::vector::erase(m_logs, *log);
+    ranges::remove(m_logs, *log);
 }
 
 std::vector<log::Log*> Loader::getLogs(
@@ -396,9 +391,7 @@ std::vector<log::Log*> Loader::getLogs(
     std::vector<log::Log*> logs;
 
     for (auto& log : m_logs) {
-        if (utils::vector::contains<Severity>(
-            severityFilter, log.getSeverity()
-        ) || !severityFilter.size()) {
+        if (ranges::contains(severityFilter, log.getSeverity()) || !severityFilter.size()) {
             logs.push_back(&log);
         }
     }
diff --git a/loader/src/load/Mod.cpp b/loader/src/load/Mod.cpp
index 0d2504c0..e973d005 100644
--- a/loader/src/load/Mod.cpp
+++ b/loader/src/load/Mod.cpp
@@ -10,6 +10,7 @@
 #include <Geode/utils/map.hpp>
 #include <Geode/utils/string.hpp>
 #include <Geode/utils/vector.hpp>
+#include <Geode/utils/ranges.hpp>
 #include <InternalMod.hpp>
 #include <ZipUtils.h>
 
@@ -519,9 +520,9 @@ std::vector<Hook*> Mod::getHooks() const {
 }
 
 bool Mod::depends(std::string const& id) const {
-    return utils::vector::contains<Dependency>(
+    return utils::ranges::contains(
         m_info.m_dependencies,
-        [id](Dependency t) -> bool { return t.m_id == id; }
+        [id](Dependency const& t) { return t.m_id == id; }
     );
 }
 
diff --git a/loader/src/load/Patch.cpp b/loader/src/load/Patch.cpp
index 30b652af..10dabf33 100644
--- a/loader/src/load/Patch.cpp
+++ b/loader/src/load/Patch.cpp
@@ -4,6 +4,7 @@
 #include <Geode/loader/Loader.hpp>
 #include <Geode/utils/casts.hpp>
 #include <Geode/utils/vector.hpp>
+#include <Geode/utils/ranges.hpp>
 #include <InternalLoader.hpp>
 
 #include <lilac/include/geode/core/hook/hook.hpp>
@@ -34,7 +35,7 @@ Result<Patch*> Mod::patch(void* address, byte_array data) {
 
 Result<> Mod::unpatch(Patch* patch) {
     if (patch->restore()) {
-        utils::vector::erase<Patch*>(m_patches, patch);
+        ranges::remove(m_patches, patch);
         delete patch;
         return Ok<>();
     }
diff --git a/loader/src/ui/internal/info/ModInfoLayer.cpp b/loader/src/ui/internal/info/ModInfoLayer.cpp
index 525207bb..2af43fa1 100644
--- a/loader/src/ui/internal/info/ModInfoLayer.cpp
+++ b/loader/src/ui/internal/info/ModInfoLayer.cpp
@@ -4,6 +4,7 @@
 #include "../list/ModListView.hpp"
 #include <Geode/utils/casts.hpp>
 #include <Geode/utils/vector.hpp>
+#include <Geode/utils/ranges.hpp>
 #include <Geode/ui/IconButtonSprite.hpp>
 #include <Geode/ui/MDPopup.hpp>
 #include "../settings/ModSettingsPopup.hpp"
@@ -520,7 +521,7 @@ void ModInfoLayer::onInstallMod(CCObject*) {
     createQuickPopup(
         "Install",
         "The following <cb>mods</c> will be installed: " +
-        utils::container::join(m_installation->toInstall(), ",") + ".",
+        ranges::join(m_installation->toInstall(), ",") + ".",
         "Cancel", "OK",
         [this](FLAlertLayer*, bool btn2) {
             if (btn2) {
diff --git a/loader/src/ui/nodes/MDTextArea.cpp b/loader/src/ui/nodes/MDTextArea.cpp
index 28c99d7b..809178c9 100644
--- a/loader/src/ui/nodes/MDTextArea.cpp
+++ b/loader/src/ui/nodes/MDTextArea.cpp
@@ -2,9 +2,13 @@
 #include <md4c.h>
 #include <Geode/binding/ProfilePage.hpp>
 #include <Geode/utils/cocos.hpp>
+#include <Geode/utils/convert.hpp>
 #include <Geode/utils/string.hpp>
 #include <Geode/utils/casts.hpp>
-#include <Geode/utils/vector.hpp>
+#include <Geode/utils/ranges.hpp>
+#include <Geode/utils/fetch.hpp>
+#include <Geode/utils/platform.hpp>
+#include <Geode/loader/Mod.hpp>
 
 USE_GEODE_NAMESPACE();
 
@@ -227,7 +231,7 @@ struct MDParser {
                     // rendering is done since the position of the 
                     // rendered labels may change after alignments 
                     // are adjusted
-                    utils::vector::push(s_codeSpans, rendered);
+                    ranges::push(s_codeSpans, rendered);
                 }
             } break;
 
diff --git a/loader/src/ui/nodes/Notification.cpp b/loader/src/ui/nodes/Notification.cpp
index a14a75b2..db84fd1b 100644
--- a/loader/src/ui/nodes/Notification.cpp
+++ b/loader/src/ui/nodes/Notification.cpp
@@ -2,7 +2,10 @@
 #include <Geode/ui/TextRenderer.hpp>
 #include <Geode/binding/GameSoundManager.hpp>
 #include <Geode/utils/cocos.hpp>
-#include <Geode/utils/vector.hpp>
+#include <Geode/utils/ranges.hpp>
+#include <Geode/utils/container.hpp>
+#include <Geode/utils/ranges.hpp>
+#include <Geode/loader/Mod.hpp>
 
 USE_GEODE_NAMESPACE();
 
@@ -439,7 +442,7 @@ Notification* NotificationBuilder::show() {
 bool NotificationManager::isInQueue(Notification* notification) {
     auto location = notification->m_location;
     if (m_notifications.count(location)) {
-        return utils::vector::contains(
+        return utils::ranges::contains(
             m_notifications.at(location), Ref(notification)
         );
     }
@@ -460,9 +463,7 @@ void NotificationManager::pop(Notification* notification) {
     auto location = notification->m_location;
     if (m_notifications.count(location)) {
         auto ref = Ref(notification);
-        utils::vector::erase(
-            m_notifications.at(location), ref
-        );
+        ranges::remove(m_notifications.at(location), ref);
         if (!m_notifications.at(location).size()) {
             m_notifications.erase(location);
         } else {

From 49c5bbf2eb4a2838eb34bf72568eef4180325007 Mon Sep 17 00:00:00 2001
From: HJfod <60038575+HJfod@users.noreply.github.com>
Date: Sat, 15 Oct 2022 21:50:03 +0300
Subject: [PATCH 12/25] use ranges instead of vector

---
 loader/src/load/Loader.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/loader/src/load/Loader.cpp b/loader/src/load/Loader.cpp
index 6815285f..d46707db 100644
--- a/loader/src/load/Loader.cpp
+++ b/loader/src/load/Loader.cpp
@@ -59,7 +59,7 @@ void Loader::updateModResources(Mod* mod) {
         GEODE_TEMP_DIRECTORY / mod->getID() / "resources";
 
     // if resources already added
-    if (vector::contains(CCFileUtils::get()->getSearchPaths(), searchPath.string())) {
+    if (ranges::contains(CCFileUtils::get()->getSearchPaths(), searchPath.string())) {
         return;
     }
 
@@ -94,7 +94,7 @@ void Loader::updateResources() {
     log::debug("Adding resources");
 
     // if resources already added
-    if (!vector::contains(
+    if (!ranges::contains(
         CCFileUtils::get()->getSearchPaths(),
         (this->getGeodeDirectory() / GEODE_RESOURCE_DIRECTORY).string()
     )) {

From d2536f95ce08e6338d70053fa2a5b8c8df756d67 Mon Sep 17 00:00:00 2001
From: HJfod <60038575+HJfod@users.noreply.github.com>
Date: Sat, 15 Oct 2022 21:54:28 +0300
Subject: [PATCH 13/25] who cares about the return type anyway then

---
 loader/include/Geode/utils/ranges.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/loader/include/Geode/utils/ranges.hpp b/loader/include/Geode/utils/ranges.hpp
index ed7e0471..cd80f905 100644
--- a/loader/include/Geode/utils/ranges.hpp
+++ b/loader/include/Geode/utils/ranges.hpp
@@ -120,7 +120,7 @@ namespace geode::utils::ranges {
 
     template<class R, ValidConstContainer C, class Reducer>
         requires requires(Reducer r, R& acc, typename C::value_type t) {
-            { r(acc, t) } -> std::same_as<void>;
+            r(acc, t);
         }
     R reduce(C const& container, Reducer reducer) {
         auto res = R();

From 61fd9a50d718fd7e3959e308f29e97676415689f Mon Sep 17 00:00:00 2001
From: HJfod <60038575+HJfod@users.noreply.github.com>
Date: Sat, 15 Oct 2022 21:58:56 +0300
Subject: [PATCH 14/25] make gd::vector satisfy value_type

---
 loader/include/Geode/c++stl/gdstdlib.hpp | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/loader/include/Geode/c++stl/gdstdlib.hpp b/loader/include/Geode/c++stl/gdstdlib.hpp
index a7928f72..e6b7fc0c 100644
--- a/loader/include/Geode/c++stl/gdstdlib.hpp
+++ b/loader/include/Geode/c++stl/gdstdlib.hpp
@@ -283,6 +283,8 @@ namespace gd {
 	template <typename T>
 	class GEODE_DLL vector {
 	 public:
+		using value_type = T;
+
 		operator std::vector<T>() {
 			std::vector<T> out;
 
@@ -459,6 +461,8 @@ namespace gd {
 	template <typename T>
 	class GEODE_DLL vector {
 	 public:
+		using value_type = T;
+
 		operator std::vector<T>() {
 			return m_internal;
 		}

From 342bbb3622ebc0266c96c3938852783ee0dc0960 Mon Sep 17 00:00:00 2001
From: mat <26722564+matcool@users.noreply.github.com>
Date: Sat, 15 Oct 2022 23:36:21 -0300
Subject: [PATCH 15/25] Update CMakeLists.txt

---
 CMakeLists.txt | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7e276fa9..fe4b1bf0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -94,11 +94,11 @@ if (PROJECT_IS_TOP_LEVEL)
 elseif(EXISTS ${GEODE_PLATFORM_BIN_PATH})
 	target_link_libraries(${PROJECT_NAME} INTERFACE "${GEODE_PLATFORM_BIN_PATH}")
 	target_precompile_headers(${PROJECT_NAME} INTERFACE
-		"${CMAKE_CURRENT_SOURCE_DIR}/include/Geode/DefaultInclude.hpp"
-		"${CMAKE_CURRENT_SOURCE_DIR}/include/Geode/Loader.hpp"
-		"${CMAKE_CURRENT_SOURCE_DIR}/include/Geode/UI.hpp"
-		"${CMAKE_CURRENT_SOURCE_DIR}/include/Geode/cocos/cocos2dx/include/cocos2d.h"
-		"${CMAKE_CURRENT_SOURCE_DIR}/include/Geode/cocos/extensions/cocos-ext.h"
+		"${GEODE_LOADER_PATH}/include/Geode/DefaultInclude.hpp"
+		"${GEODE_LOADER_PATH}/include/Geode/Loader.hpp"
+		"${GEODE_LOADER_PATH}/include/Geode/UI.hpp"
+		"${GEODE_LOADER_PATH}/include/Geode/cocos/cocos2dx/include/cocos2d.h"
+		"${GEODE_LOADER_PATH}/include/Geode/cocos/extensions/cocos-ext.h"
 	)
 else()
 	message(FATAL_ERROR "No valid loader binary to link to! Install a pre-built binary for version ${PROJECT_VERSION} with Geode CLI or build it from source.")

From 9e38af507015f59cb7d098692f8f2e3a65cf5c6e Mon Sep 17 00:00:00 2001
From: matcool <26722564+matcool@users.noreply.github.com>
Date: Sat, 15 Oct 2022 23:42:48 -0300
Subject: [PATCH 16/25] add begin and end to gd::vector

---
 loader/include/Geode/c++stl/gdstdlib.hpp | 28 ++++++++++--------------
 loader/src/mac/gdstdlib.cpp              |  5 +++++
 2 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/loader/include/Geode/c++stl/gdstdlib.hpp b/loader/include/Geode/c++stl/gdstdlib.hpp
index e6b7fc0c..714355c2 100644
--- a/loader/include/Geode/c++stl/gdstdlib.hpp
+++ b/loader/include/Geode/c++stl/gdstdlib.hpp
@@ -16,9 +16,9 @@ namespace geode::base {
 #if defined(GEODE_IS_MACOS) || defined(GEODE_IS_ANDROID)
 namespace gd {
 	struct _internal_string {
-		uintptr_t      m_len;
-		uintptr_t      m_capacity;
-		int                m_refcount;
+		size_t m_len;
+		size_t m_capacity;
+		int m_refcount;
 	};
 
 	class GEODE_DLL string {
@@ -26,18 +26,17 @@ namespace gd {
 		string();
 		string(char const* ok);
 		string(std::string ok) : string(ok.c_str()) {}
-		operator std::string() {
-			return std::string((char*)m_data, m_data[-1].m_len);
-		}
 		operator std::string() const {
 			return std::string((char*)m_data, m_data[-1].m_len);
 		}
+		bool operator==(string const& other) const;
 		string(string const& ok);
 		string& operator=(char const* ok);
 		string& operator=(string const& ok);
 		__attribute__((noinline)) ~string();
-		char const* c_str() const {return (char const*)m_data; }
-	 protected: 
+		char const* c_str() const { return (char const*)m_data; }
+		size_t size() const { return m_data[-1].m_len; }
+	protected:
 		_internal_string*       m_data;
 	};
 
@@ -285,14 +284,6 @@ namespace gd {
 	 public:
 		using value_type = T;
 
-		operator std::vector<T>() {
-			std::vector<T> out;
-
-			for (auto i = m_start; i != m_finish; ++i) {
-				out.push_back(*i);
-			}
-			return out; 
-		}
 		operator std::vector<T>() const {
 			std::vector<T> out;
 
@@ -317,6 +308,11 @@ namespace gd {
 		T& front() {
 			return *m_start;
 		}
+
+		auto begin() { return m_start; }
+		auto end() { return m_finish; }
+		auto begin() const { return static_cast<const T*>(m_start); }
+		auto end() const { return static_cast<const T*>(m_finish); }
 		
 		vector(vector const& lol) : vector(std::vector<T>(lol)) {}
 
diff --git a/loader/src/mac/gdstdlib.cpp b/loader/src/mac/gdstdlib.cpp
index cd656d97..9768f580 100644
--- a/loader/src/mac/gdstdlib.cpp
+++ b/loader/src/mac/gdstdlib.cpp
@@ -35,6 +35,11 @@ namespace gd {
 			reinterpret_cast<void(*)(_internal_string*, void*)>(geode::base::get() + 0x489f78)(&m_data[-1], al);
 		}
 	}
+	bool string::operator==(string const& other) const {
+		if (size() != other.size()) return false;
+		return strcmp(c_str(), other.c_str()) == 0;
+	}
+
 
 }
 

From 2f858f5228f6cc29b1a4b7aa7a36e828e6032eb5 Mon Sep 17 00:00:00 2001
From: HJfod <60038575+HJfod@users.noreply.github.com>
Date: Sun, 16 Oct 2022 20:12:05 +0300
Subject: [PATCH 17/25] was that just a fluke???

---
 .github/workflows/build.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 6ac77aa1..3223f3fd 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -56,7 +56,7 @@ jobs:
         fileName: ${{ matrix.config.cli_name }}
         tarBall: false
         zipBall: false
-        out-file-path: "cli"
+        out-file-path: "cli" 
     
     - name: Unzip CLI
       run: |

From a38743d01d405a61907b7a6ea2d05bdd5967f7dd Mon Sep 17 00:00:00 2001
From: HJfod <60038575+HJfod@users.noreply.github.com>
Date: Sun, 16 Oct 2022 21:34:16 +0300
Subject: [PATCH 18/25] textureldr stuff  - reworked mod resource loading again
  - added `Loader::addTexturePath` and `Loader::removeTexturePath` for texture
 pack managers to add search paths  - added `LayerBG.hpp` header with
 `createLayerBG` function for creating the blue background GD layers have

---
 loader/include/Geode/UI.hpp            |  1 +
 loader/include/Geode/loader/Loader.hpp | 16 ++++---
 loader/include/Geode/ui/InputNode.hpp  |  1 +
 loader/src/hooks/updateResources.cpp   |  2 +-
 loader/src/load/Loader.cpp             | 60 +++++++++++++++-----------
 loader/src/load/load.cpp               |  1 +
 6 files changed, 49 insertions(+), 32 deletions(-)

diff --git a/loader/include/Geode/UI.hpp b/loader/include/Geode/UI.hpp
index 8f8bb18d..8081923a 100644
--- a/loader/include/Geode/UI.hpp
+++ b/loader/include/Geode/UI.hpp
@@ -4,6 +4,7 @@
 #include "ui/BasedButton.hpp"
 #include "ui/IconButtonSprite.hpp"
 #include "ui/InputNode.hpp"
+#include "ui/LayerBG.hpp"
 #include "ui/ListView.hpp"
 #include "ui/MDTextArea.hpp"
 #include "ui/Notification.hpp"
diff --git a/loader/include/Geode/loader/Loader.hpp b/loader/include/Geode/loader/Loader.hpp
index d94b8509..73875073 100644
--- a/loader/include/Geode/loader/Loader.hpp
+++ b/loader/include/Geode/loader/Loader.hpp
@@ -63,6 +63,7 @@ namespace geode {
         std::ofstream m_logStream;
         std::vector<ghc::filesystem::path> m_modDirectories;
         std::vector<FailedModInfo> m_erroredMods;
+        std::vector<ghc::filesystem::path> m_texturePaths;
         LoaderSettings m_loadedSettings;
 
         bool m_isSetup = false;
@@ -87,9 +88,12 @@ namespace geode {
 
     	template <class, class, class>
         friend class modifier::FieldIntermediate;
+        
+        void updateResourcePaths();
+        void updateModResources(Mod* mod);
 
         friend bool GEODE_CALL ::geode_implicit_load(Mod*);
-        
+
     public:
         ~Loader();
 
@@ -175,15 +179,13 @@ namespace geode {
         );
 
         void clearLogs();
-        
+
         /**
-         * You shouldn't be calling this manually, 
-         * but if you are, make sure to set 
-         * Mod::m_addResourcesToSearchPath to true 
-         * first
+         * Do not call manually unless you know what you're doing.
          */
-        void updateModResources(Mod* mod);
         void updateResources();
+        void addTexturePath(ghc::filesystem::path const& path);
+        void removeTexturePath(ghc::filesystem::path const& path);
 
         /**
          * Check if a mod with an ID is installed. Any 
diff --git a/loader/include/Geode/ui/InputNode.hpp b/loader/include/Geode/ui/InputNode.hpp
index ebf81827..b89bfad7 100644
--- a/loader/include/Geode/ui/InputNode.hpp
+++ b/loader/include/Geode/ui/InputNode.hpp
@@ -1,5 +1,6 @@
 #pragma once
 
+#include <Geode/DefaultInclude.hpp>
 #include <cocos2d.h>
 
 namespace geode {
diff --git a/loader/src/hooks/updateResources.cpp b/loader/src/hooks/updateResources.cpp
index 8dd014fe..074905aa 100644
--- a/loader/src/hooks/updateResources.cpp
+++ b/loader/src/hooks/updateResources.cpp
@@ -7,7 +7,7 @@ class $modify(LoadingLayer) {
 	void loadAssets() {
 		LoadingLayer::loadAssets();
 		// this is in case the user refreshes texture quality at runtime
-		if (this->m_loadStep == 12) {
+		if (this->m_loadStep == 10) {
 			Loader::get()->updateResources();
 		}
 	}
diff --git a/loader/src/load/Loader.cpp b/loader/src/load/Loader.cpp
index d46707db..7b31ff09 100644
--- a/loader/src/load/Loader.cpp
+++ b/loader/src/load/Loader.cpp
@@ -49,6 +49,31 @@ void Loader::createDirectories() {
     m_logStream = std::ofstream(logDir / log::generateLogName());
 }
 
+void Loader::updateResourcePaths() {
+    log::debug("Setting resource paths");
+
+    // reset search paths
+    CCFileUtils::get()->setSearchPaths({
+        "Resources",
+        (this->getGeodeDirectory() / GEODE_RESOURCE_DIRECTORY).string(),
+        (this->getGeodeDirectory() / GEODE_TEMP_DIRECTORY).string()
+    });
+
+    // add mods' search paths
+    for (auto const& [_, mod] : m_mods) {
+        auto searchPath = this->getGeodeDirectory() / 
+            GEODE_TEMP_DIRECTORY / mod->getID() / "resources";
+        
+        // add search path
+        CCFileUtils::get()->addSearchPath(searchPath.string().c_str());
+    }
+
+    // add custom texture paths
+    for (auto const& path : m_texturePaths) {
+        CCFileUtils::get()->addSearchPath(path.string().c_str());
+    }
+}
+
 void Loader::updateModResources(Mod* mod) {
     if (!mod->m_addResourcesToSearchPath) {
         log::debug("Mod {} doesn't have resources, skipping", mod->getID());
@@ -58,16 +83,8 @@ void Loader::updateModResources(Mod* mod) {
     auto searchPath = this->getGeodeDirectory() / 
         GEODE_TEMP_DIRECTORY / mod->getID() / "resources";
 
-    // if resources already added
-    if (ranges::contains(CCFileUtils::get()->getSearchPaths(), searchPath.string())) {
-        return;
-    }
-
     log::debug("Adding resources for {}", mod->getID());
 
-    // add search path
-    CCFileUtils::get()->addSearchPath(searchPath.string().c_str());
-
     // add spritesheets
     for (auto const& sheet : mod->m_info.m_spritesheets) {
         auto png = sheet + ".png";
@@ -93,23 +110,10 @@ void Loader::updateModResources(Mod* mod) {
 void Loader::updateResources() {
     log::debug("Adding resources");
 
-    // if resources already added
-    if (!ranges::contains(
-        CCFileUtils::get()->getSearchPaths(),
-        (this->getGeodeDirectory() / GEODE_RESOURCE_DIRECTORY).string()
-    )) {
-        // add own geode/resources directory
-        CCFileUtils::get()->addSearchPath(
-            (this->getGeodeDirectory() / GEODE_RESOURCE_DIRECTORY).string().c_str()
-        );
+    this->updateResourcePaths();
 
-        // add geode/temp for accessing root resources in mods
-        auto tempDir = this->getGeodeDirectory() / GEODE_TEMP_DIRECTORY;
-        CCFileUtils::get()->addSearchPath(tempDir.string().c_str());
-
-        // add own spritesheets
-        this->updateModResources(InternalMod::get());
-    }
+    // add own spritesheets
+    this->updateModResources(InternalMod::get());
 
     // add mods' spritesheets
     for (auto const& [_, mod] : m_mods) {
@@ -117,6 +121,14 @@ void Loader::updateResources() {
     }
 }
 
+void Loader::addTexturePath(ghc::filesystem::path const& path) {
+    m_texturePaths.push_back(path);
+}
+
+void Loader::removeTexturePath(ghc::filesystem::path const& path) {
+    ranges::remove(m_texturePaths, path);
+}
+
 size_t Loader::loadModsFromDirectory(
     ghc::filesystem::path const& dir, bool recursive
 ) {
diff --git a/loader/src/load/load.cpp b/loader/src/load/load.cpp
index 110e8bee..7bf03cd7 100644
--- a/loader/src/load/load.cpp
+++ b/loader/src/load/load.cpp
@@ -51,6 +51,7 @@ Result<Mod*> Loader::loadModFromFile(std::string const& path) {
 
     // add mod resources
     this->queueInGDThread([this, mod]() {
+        this->updateResourcePaths();
         this->updateModResources(mod);
     });
 

From 0a1b5c9281e21dc6d3ad4564b7ada0c922356dd0 Mon Sep 17 00:00:00 2001
From: HJfod <60038575+HJfod@users.noreply.github.com>
Date: Sun, 16 Oct 2022 21:37:18 +0300
Subject: [PATCH 19/25] i forgot to add the LayerBG header

---
 loader/include/Geode/ui/LayerBG.hpp | 13 +++++++++++++
 loader/src/ui/nodes/LayerBG.cpp     | 18 ++++++++++++++++++
 2 files changed, 31 insertions(+)
 create mode 100644 loader/include/Geode/ui/LayerBG.hpp
 create mode 100644 loader/src/ui/nodes/LayerBG.cpp

diff --git a/loader/include/Geode/ui/LayerBG.hpp b/loader/include/Geode/ui/LayerBG.hpp
new file mode 100644
index 00000000..f74bbfd7
--- /dev/null
+++ b/loader/include/Geode/ui/LayerBG.hpp
@@ -0,0 +1,13 @@
+#pragma once
+
+#include <Geode/DefaultInclude.hpp>
+#include <cocos2d.h>
+
+namespace geode {
+    /**
+     * Creates the usual blue gradient BG for a layer. You should use this over 
+     * creating the sprite manually, as in the future we may provide texture 
+     * packs the ability to override this function.
+     */
+    GEODE_DLL cocos2d::CCSprite* createLayerBG();
+}
diff --git a/loader/src/ui/nodes/LayerBG.cpp b/loader/src/ui/nodes/LayerBG.cpp
new file mode 100644
index 00000000..8e746d14
--- /dev/null
+++ b/loader/src/ui/nodes/LayerBG.cpp
@@ -0,0 +1,18 @@
+#include <Geode/ui/LayerBG.hpp>
+
+USE_GEODE_NAMESPACE();
+
+CCSprite* geode::createLayerBG() {
+    auto winSize = CCDirector::get()->getWinSize();
+
+	auto bg = CCSprite::create("GJ_gradientBG.png");
+	auto bgSize = bg->getTextureRect().size;
+
+	bg->setAnchorPoint({ 0.0f, 0.0f });
+	bg->setScaleX((winSize.width + 10.0f) / bgSize.width);
+	bg->setScaleY((winSize.height + 10.0f) / bgSize.height);
+	bg->setPosition({ -5.0f, -5.0f });
+	bg->setColor({ 0, 102, 255 }); // todo: let mods customize this
+
+    return bg;
+}

From f68530e943b782981e1ca6d4d279995f0ceaeb8f Mon Sep 17 00:00:00 2001
From: mat <26722564+matcool@users.noreply.github.com>
Date: Sun, 16 Oct 2022 23:28:20 -0300
Subject: [PATCH 20/25] for chloe

---
 loader/include/Geode/loader/Log.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/loader/include/Geode/loader/Log.hpp b/loader/include/Geode/loader/Log.hpp
index 95fbc8e1..f4ca1a56 100644
--- a/loader/include/Geode/loader/Log.hpp
+++ b/loader/include/Geode/loader/Log.hpp
@@ -8,7 +8,7 @@
 #include <fs/filesystem.hpp>
 #include <ccTypes.h>
 
-#ifdef GEODE_IS_MACOS
+#ifndef __cpp_lib_concepts
 namespace std {
     // <concepts> isn't working for me lmao
     template <class From, class To>

From 662a9e99f567589eb1a4b6ad16074b402e09d3c6 Mon Sep 17 00:00:00 2001
From: HJfod <60038575+HJfod@users.noreply.github.com>
Date: Mon, 17 Oct 2022 15:46:36 +0300
Subject: [PATCH 21/25] big cocos reworks  - remove cocos2dx folder  - change
 all include paths in cocos2d to be relative

---
 CMakeLists.txt                                |  13 +-
 loader/CMakeLists.txt                         |   2 +-
 .../Geode/cocos/{cocos2dx => }/CCCamera.h     |   4 +-
 .../cocos/{cocos2dx => }/CCConfiguration.h    |   2 +-
 .../Geode/cocos/{cocos2dx => }/CCDirector.h   |   8 +-
 .../Geode/cocos/{cocos2dx => }/CCScheduler.h  |   0
 loader/include/Geode/cocos/CMakeLists.txt     |   7 +-
 .../cocos/{cocos2dx => }/actions/CCAction.h   |   6 +-
 .../{cocos2dx => }/actions/CCActionCamera.h   |   0
 .../actions/CCActionCatmullRom.h              |   4 +-
 .../{cocos2dx => }/actions/CCActionEase.h     |   0
 .../{cocos2dx => }/actions/CCActionGrid.h     |   0
 .../{cocos2dx => }/actions/CCActionGrid3D.h   |   0
 .../{cocos2dx => }/actions/CCActionInstant.h  |   2 +-
 .../{cocos2dx => }/actions/CCActionInterval.h |   8 +-
 .../{cocos2dx => }/actions/CCActionManager.h  |   4 +-
 .../actions/CCActionPageTurn3D.h              |   0
 .../actions/CCActionProgressTimer.h           |   0
 .../actions/CCActionTiledGrid.h               |   0
 .../{cocos2dx => }/actions/CCActionTween.h    |   0
 .../{cocos2dx => }/base_nodes/CCAtlasNode.h   |   4 +-
 .../base_nodes/CCGLBufferedNode.h             |   2 +-
 .../cocos/{cocos2dx => }/base_nodes/CCNode.h  |  18 +-
 .../Geode/cocos/{cocos2dx => }/ccFPSImages.h  |   0
 .../{cocos2dx => }/cocoa/CCAffineTransform.h  |   2 +-
 .../cocos/{cocos2dx => }/cocoa/CCArray.h      |   2 +-
 .../{cocos2dx => }/cocoa/CCAutoreleasePool.h  |   0
 .../Geode/cocos/{cocos2dx => }/cocoa/CCBool.h |   0
 .../{cocos2dx => }/cocoa/CCDataVisitor.h      |   2 +-
 .../cocos/{cocos2dx => }/cocoa/CCDictionary.h |   2 +-
 .../cocos/{cocos2dx => }/cocoa/CCDouble.h     |   0
 .../cocos/{cocos2dx => }/cocoa/CCFloat.h      |   0
 .../cocos/{cocos2dx => }/cocoa/CCGeometry.h   |   2 +-
 .../cocos/{cocos2dx => }/cocoa/CCInteger.h    |   0
 .../Geode/cocos/{cocos2dx => }/cocoa/CCNS.h   |   0
 .../cocos/{cocos2dx => }/cocoa/CCObject.h     |   4 +-
 .../Geode/cocos/{cocos2dx => }/cocoa/CCSet.h  |   0
 .../cocos/{cocos2dx => }/cocoa/CCString.h     |   0
 .../Geode/cocos/{cocos2dx => }/cocoa/CCZone.h |   2 +-
 .../Geode/cocos/cocos2dx/include/cocos2d.h    | 328 -----------------
 .../cocos2dx/platform/winrt/CCAccelerometer.h |  50 ---
 .../cocos2dx/platform/winrt/CCApplication.h   |  97 -----
 .../cocos/cocos2dx/platform/winrt/CCEGLView.h | 158 --------
 .../platform/winrt/CCFileUtilsWinRT.h         |  65 ----
 .../cocos2dx/platform/winrt/CCFreeTypeFont.h  | 140 --------
 .../cocos/cocos2dx/platform/winrt/CCGL.h      |  31 --
 .../cocos2dx/platform/winrt/CCGL_Angle.h      |  45 ---
 .../cocos2dx/platform/winrt/CCGL_gl2dx.h      |  43 ---
 .../cocos2dx/platform/winrt/CCPThreadWinRT.h  |  57 ---
 .../platform/winrt/CCPlatformDefine.h         |  54 ---
 .../platform/winrt/CCPrecompiledShaders.h     |  98 -----
 .../cocos/cocos2dx/platform/winrt/CCStdC.h    |  89 -----
 .../cocos2dx/platform/winrt/CCWinRTUtils.h    |  55 ---
 .../cocos2dx/platform/winrt/DirectXBase.h     |  78 ----
 .../cocos2dx/platform/winrt/DirectXHelper.h   |  32 --
 .../cocos2dx/platform/winrt/compat/stdint.h   | 247 -------------
 .../cocos/cocos2dx/platform/winrt/sha1.h      |  93 -----
 .../{cocos2dx => }/draw_nodes/CCDrawNode.h    |   4 +-
 .../draw_nodes/CCDrawingPrimitives.h          |   6 +-
 .../cocos/{cocos2dx => }/effects/CCGrabber.h  |   6 +-
 .../cocos/{cocos2dx => }/effects/CCGrid.h     |  16 +-
 .../extensions/AssetsManager/AssetsManager.h  |   8 +-
 .../GUI/CCControlExtension/CCControl.h        |   2 +-
 .../GUI/CCControlExtension/CCControlUtils.h   |   2 +-
 .../GUI/CCControlExtension/CCInvocation.h     |   2 +-
 .../GUI/CCControlExtension/CCScale9Sprite.h   |   2 +-
 .../extensions/GUI/CCEditBox/CCEditBox.h      |   4 +-
 .../extensions/GUI/CCEditBox/CCEditBoxImpl.h  |   4 +-
 .../GUI/CCEditBox/CCEditBoxImplAndroid.h      |   4 +-
 .../GUI/CCEditBox/CCEditBoxImplIOS.h          |   4 +-
 .../GUI/CCEditBox/CCEditBoxImplMac.h          |   4 +-
 .../GUI/CCEditBox/CCEditBoxImplTizen.h        |   4 +-
 .../GUI/CCEditBox/CCEditBoxImplWin.h          |   4 +-
 .../GUI/CCEditBox/CCEditBoxImplWp8.h          |   2 +-
 .../GUI/CCScrollView/CCScrollView.h           |   4 +-
 .../extensions/GUI/CCScrollView/CCSorting.h   |   4 +-
 .../GUI/CCScrollView/CCTableViewCell.h        |   2 +-
 .../Geode/cocos/extensions/cocos-ext.h        |   2 +-
 .../cocos/extensions/network/HttpClient.h     |   4 +-
 .../cocos/extensions/network/HttpRequest.h    |   4 +-
 .../cocos/extensions/network/HttpResponse.h   |   4 +-
 .../cocos/extensions/network/WebSocket.h      |   6 +-
 .../physics_nodes/CCPhysicsDebugNode.h        |   4 +-
 .../physics_nodes/CCPhysicsSprite.h           |   4 +-
 .../cocos/extensions/spine/AnimationState.h   |   2 +-
 .../extensions/spine/AnimationStateData.h     |   4 +-
 .../extensions/spine/AtlasAttachmentLoader.h  |   4 +-
 .../cocos/extensions/spine/AttachmentLoader.h |   4 +-
 .../Geode/cocos/extensions/spine/Bone.h       |   2 +-
 .../Geode/cocos/extensions/spine/CCSkeleton.h |   4 +-
 .../extensions/spine/CCSkeletonAnimation.h    |   6 +-
 .../cocos/extensions/spine/RegionAttachment.h |   6 +-
 .../Geode/cocos/extensions/spine/Skeleton.h   |   6 +-
 .../cocos/extensions/spine/SkeletonData.h     |   8 +-
 .../cocos/extensions/spine/SkeletonJson.h     |  10 +-
 .../Geode/cocos/extensions/spine/Skin.h       |   2 +-
 .../Geode/cocos/extensions/spine/Slot.h       |   6 +-
 .../Geode/cocos/extensions/spine/SlotData.h   |   2 +-
 .../Geode/cocos/extensions/spine/extension.h  |  10 +-
 .../cocos/extensions/spine/spine-cocos2dx.h   |   8 +-
 .../Geode/cocos/extensions/spine/spine.h      |  32 +-
 .../{cocos2dx => }/include/CCEventType.h      |   0
 .../{cocos2dx => }/include/CCProtocols.h      |   4 +-
 .../cocos/{cocos2dx => }/include/ccConfig.h   |   2 +-
 .../cocos/{cocos2dx => }/include/ccMacros.h   |   4 +-
 .../cocos/{cocos2dx => }/include/ccTypeInfo.h |   2 +-
 .../cocos/{cocos2dx => }/include/ccTypes.h    |   4 +-
 loader/include/Geode/cocos/include/cocos2d.h  | 336 ++++++++++++++++++
 .../kazmath/include/kazmath/GL/mat4stack.h    |   0
 .../kazmath/include/kazmath/GL/matrix.h       |   2 +-
 .../kazmath/include/kazmath/aabb.h            |   2 +-
 .../kazmath/include/kazmath/kazmath.h         |   0
 .../kazmath/include/kazmath/mat3.h            |   2 +-
 .../kazmath/include/kazmath/mat4.h            |   2 +-
 .../include/kazmath/neon_matrix_impl.h        |   2 +-
 .../kazmath/include/kazmath/plane.h           |   2 +-
 .../kazmath/include/kazmath/quaternion.h      |   2 +-
 .../kazmath/include/kazmath/ray2.h            |   2 +-
 .../kazmath/include/kazmath/utility.h         |   2 +-
 .../kazmath/include/kazmath/vec2.h            |   2 +-
 .../kazmath/include/kazmath/vec3.h            |   2 +-
 .../kazmath/include/kazmath/vec4.h            |   2 +-
 .../keypad_dispatcher/CCKeypadDelegate.h      |   2 +-
 .../keypad_dispatcher/CCKeypadDispatcher.h    |   2 +-
 .../{cocos2dx => }/label_nodes/CCLabelAtlas.h |   2 +-
 .../label_nodes/CCLabelBMFont.h               |   4 +-
 .../{cocos2dx => }/label_nodes/CCLabelTTF.h   |   4 +-
 .../layers_scenes_transitions_nodes/CCLayer.h |  18 +-
 .../layers_scenes_transitions_nodes/CCScene.h |   2 +-
 .../CCTransition.h                            |   2 +-
 .../CCTransitionPageTurn.h                    |   0
 .../CCTransitionProgress.h                    |   0
 .../Geode/cocos/{cocos2dx => }/libcocos2d.lib | Bin
 .../cocos/{cocos2dx => }/libcocos2dcpp.so     | Bin
 .../cocos/{cocos2dx => }/menu_nodes/CCMenu.h  |   2 +-
 .../{cocos2dx => }/menu_nodes/CCMenuItem.h    |   6 +-
 .../misc_nodes/CCClippingNode.h               |   4 +-
 .../misc_nodes/CCMotionStreak.h               |  10 +-
 .../misc_nodes/CCProgressTimer.h              |   4 +-
 .../misc_nodes/CCRenderTexture.h              |   6 +-
 .../particle_nodes/CCParticleBatchNode.h      |   4 +-
 .../particle_nodes/CCParticleExamples.h       |   0
 .../particle_nodes/CCParticleSystem.h         |   8 +-
 .../particle_nodes/CCParticleSystemQuad.h     |   0
 .../particle_nodes/firePngData.h              |   0
 .../Geode/cocos/platform/CCAccelerometer.h    |  16 +
 .../platform/CCAccelerometerDelegate.h        |   0
 .../platform/CCApplicationProtocol.h          |   0
 .../cocos/{cocos2dx => }/platform/CCCommon.h  |   0
 .../cocos/{cocos2dx => }/platform/CCDevice.h  |   0
 .../platform/CCEGLViewProtocol.h              |   2 +-
 .../{cocos2dx => }/platform/CCFileUtils.h     |   4 +-
 loader/include/Geode/cocos/platform/CCGL.h    |  16 +
 .../cocos/{cocos2dx => }/platform/CCImage.h   |   2 +-
 .../platform/CCImageCommon_cpp.h              |  12 +-
 .../platform/CCPlatformConfig.h               |   0
 .../Geode/cocos/platform/CCPlatformDefine.h   |  16 +
 .../platform/CCPlatformMacros.h               |  12 +-
 .../{cocos2dx => }/platform/CCSAXParser.h     |   0
 loader/include/Geode/cocos/platform/CCStdC.h  |  16 +
 .../cocos/{cocos2dx => }/platform/CCThread.h  |   0
 .../Geode/cocos/platform/IncludeCurl.h        |  15 +
 .../Geode/cocos/platform/IncludeJpegLib.h     |  15 +
 .../Geode/cocos/platform/IncludePThread.h     |  16 +
 .../Geode/cocos/platform/IncludeTiffio.h      |  15 +
 .../Geode/cocos/platform/IncludeZlib.h        |   9 +
 .../platform/android/CCAccelerometer.cpp      |   0
 .../platform/android/CCAccelerometer.h        |   4 +-
 .../platform/android/CCApplication.cpp        |   0
 .../platform/android/CCApplication.h          |   4 +-
 .../platform/android/CCCommon.cpp             |   2 +-
 .../platform/android/CCDevice.cpp             |   2 +-
 .../platform/android/CCEGLView.cpp            |   8 +-
 .../platform/android/CCEGLView.h              |   4 +-
 .../platform/android/CCFileUtilsAndroid.cpp   |   2 +-
 .../platform/android/CCFileUtilsAndroid.h     |   8 +-
 .../{cocos2dx => }/platform/android/CCGL.h    |   0
 .../platform/android/CCImage.cpp              |   6 +-
 .../platform/android/CCPlatformDefine.h       |   2 +-
 .../{cocos2dx => }/platform/android/CCStdC.h  |   2 +-
 .../platform/android/java/.classpath          |   0
 .../platform/android/java/.project            |   0
 .../platform/android/java/AndroidManifest.xml |   0
 .../platform/android/java/ant.properties      |   0
 .../platform/android/java/build.xml           |   0
 .../android/java/proguard-project.txt         |   0
 .../platform/android/java/project.properties  |   0
 .../platform/android/java/res/.gitignore      |   0
 .../cocos2dx/lib/Cocos2dxAccelerometer.java   |   0
 .../org/cocos2dx/lib/Cocos2dxActivity.java    |   0
 .../src/org/cocos2dx/lib/Cocos2dxBitmap.java  |   0
 .../org/cocos2dx/lib/Cocos2dxETCLoader.java   |   0
 .../cocos2dx/lib/Cocos2dxEditBoxDialog.java   |   0
 .../org/cocos2dx/lib/Cocos2dxEditText.java    |   0
 .../cocos2dx/lib/Cocos2dxGLSurfaceView.java   |   0
 .../src/org/cocos2dx/lib/Cocos2dxHandler.java |   0
 .../src/org/cocos2dx/lib/Cocos2dxHelper.java  |   0
 .../cocos2dx/lib/Cocos2dxLocalStorage.java    |   0
 .../src/org/cocos2dx/lib/Cocos2dxMusic.java   |   0
 .../org/cocos2dx/lib/Cocos2dxRenderer.java    |   0
 .../src/org/cocos2dx/lib/Cocos2dxSound.java   |   0
 .../cocos2dx/lib/Cocos2dxTextInputWraper.java |   0
 .../org/cocos2dx/lib/Cocos2dxTypefaces.java   |   0
 .../platform/android/jni/DPIJni.cpp           |   0
 .../platform/android/jni/DPIJni.h             |   0
 .../platform/android/jni/IMEJni.cpp           |   0
 .../platform/android/jni/IMEJni.h             |   0
 ...org_cocos2dx_lib_Cocos2dxAccelerometer.cpp |   2 +-
 .../Java_org_cocos2dx_lib_Cocos2dxBitmap.cpp  |   2 +-
 .../Java_org_cocos2dx_lib_Cocos2dxBitmap.h    |   0
 .../Java_org_cocos2dx_lib_Cocos2dxHelper.cpp  |   2 +-
 .../Java_org_cocos2dx_lib_Cocos2dxHelper.h    |   0
 ...Java_org_cocos2dx_lib_Cocos2dxRenderer.cpp |   2 +-
 .../platform/android/jni/JniHelper.cpp        |   0
 .../platform/android/jni/JniHelper.h          |   2 +-
 .../platform/android/jni/TouchesJni.cpp       |   6 +-
 .../ios/AccelerometerDelegateWrapper.h        |   0
 .../ios/AccelerometerDelegateWrapper.mm       |   0
 .../platform/ios/CCAccelerometer.h            |   2 +-
 .../platform/ios/CCAccelerometer.mm           |   0
 .../platform/ios/CCApplication.h              |   4 +-
 .../platform/ios/CCApplication.mm             |   0
 .../{cocos2dx => }/platform/ios/CCCommon.mm   |   0
 .../{cocos2dx => }/platform/ios/CCDevice.mm   |   0
 .../platform/ios/CCDirectorCaller.h           |   0
 .../platform/ios/CCDirectorCaller.mm          |   0
 .../{cocos2dx => }/platform/ios/CCEGLView.h   |   4 +-
 .../{cocos2dx => }/platform/ios/CCEGLView.mm  |   0
 .../platform/ios/CCES2Renderer.h              |   0
 .../platform/ios/CCES2Renderer.m              |   0
 .../platform/ios/CCESRenderer.h               |   2 +-
 .../platform/ios/CCFileUtilsIOS.h             |   8 +-
 .../platform/ios/CCFileUtilsIOS.mm            |   2 +-
 .../cocos/{cocos2dx => }/platform/ios/CCGL.h  |   0
 .../{cocos2dx => }/platform/ios/CCImage.mm    |   0
 .../{cocos2dx => }/platform/ios/CCLock.h      |   2 +-
 .../platform/ios/CCPlatformDefine.h           |   0
 .../platform/mac => platform/ios}/CCStdC.h    |   2 +-
 .../{cocos2dx => }/platform/ios/CCThread.mm   |   0
 .../{cocos2dx => }/platform/ios/EAGLView.h    |   0
 .../{cocos2dx => }/platform/ios/EAGLView.mm   |   0
 .../platform/ios/OpenGL_Internal.h            |   0
 .../ios/Simulation/AccelerometerSimulation.h  |   0
 .../ios/Simulation/AccelerometerSimulation.m  |   0
 .../platform/mac/CCAccelerometer.h            |   2 +-
 .../platform/mac/CCApplication.h              |   4 +-
 .../platform/mac/CCApplication.mm             |   2 +-
 .../{cocos2dx => }/platform/mac/CCCommon.mm   |   2 +-
 .../{cocos2dx => }/platform/mac/CCDevice.mm   |   2 +-
 .../platform/mac/CCDirectorCaller.h           |   0
 .../platform/mac/CCDirectorCaller.mm          |   0
 .../{cocos2dx => }/platform/mac/CCEGLView.h   |   4 +-
 .../{cocos2dx => }/platform/mac/CCEGLView.mm  |   0
 .../platform/mac/CCEventDispatcher.h          |   0
 .../platform/mac/CCEventDispatcher.mm         |   0
 .../platform/mac/CCFileUtilsMac.h             |   8 +-
 .../platform/mac/CCFileUtilsMac.mm            |   2 +-
 .../cocos/{cocos2dx => }/platform/mac/CCGL.h  |   0
 .../{cocos2dx => }/platform/mac/CCImage.mm    |   2 +-
 .../platform/mac/CCPlatformDefine.h           |   0
 .../platform/ios => platform/mac}/CCStdC.h    |   2 +-
 .../{cocos2dx => }/platform/mac/CCThread.mm   |   0
 .../{cocos2dx => }/platform/mac/CCWindow.h    |   0
 .../{cocos2dx => }/platform/mac/CCWindow.m    |   0
 .../{cocos2dx => }/platform/mac/EAGLView.h    |   0
 .../{cocos2dx => }/platform/mac/EAGLView.mm   |   0
 .../cocos/{cocos2dx => }/platform/platform.h  |   0
 .../prebuilt/libcurl/include/curl/curl.h      |   0
 .../prebuilt/libcurl/include/curl/curlbuild.h |   0
 .../prebuilt/libcurl/include/curl/curlrules.h |   0
 .../prebuilt/libcurl/include/curl/curlver.h   |   0
 .../prebuilt/libcurl/include/curl/easy.h      |   0
 .../prebuilt/libcurl/include/curl/mprintf.h   |   0
 .../prebuilt/libcurl/include/curl/multi.h     |   0
 .../libcurl/include/curl/stdcheaders.h        |   0
 .../libcurl/include/curl/typecheck-gcc.h      |   0
 .../prebuilt/libcurl/include/curl/types.h     |   0
 .../libs/armeabi-v7a/libcurl.a.REMOVED.git-id |   0
 .../libs/armeabi/libcurl.a.REMOVED.git-id     |   0
 .../libcurl/libs/x86/libcurl.a.REMOVED.git-id |   0
 .../prebuilt/libjpeg/include/jconfig.h        |   0
 .../android/prebuilt/libjpeg/include/jerror.h |   0
 .../prebuilt/libjpeg/include/jmorecfg.h       |   0
 .../prebuilt/libjpeg/include/jpeglib.h        |   0
 .../libs/armeabi-v7a/libjpeg.a.REMOVED.git-id |   0
 .../libs/armeabi/libjpeg.a.REMOVED.git-id     |   0
 .../libjpeg/libs/x86/libjpeg.a.REMOVED.git-id |   0
 .../libpng/include/png.h.REMOVED.git-id       |   0
 .../android/prebuilt/libpng/include/pngconf.h |   0
 .../android/prebuilt/libpng/include/pngusr.h  |   0
 .../libs/armeabi-v7a/libpng.a.REMOVED.git-id  |   0
 .../libs/armeabi/libpng.a.REMOVED.git-id      |   0
 .../libpng/libs/x86/libpng.a.REMOVED.git-id   |   0
 .../android/prebuilt/libtiff/include/tiff.h   |   0
 .../prebuilt/libtiff/include/tiffconf.h       |   0
 .../android/prebuilt/libtiff/include/tiffio.h |   0
 .../prebuilt/libtiff/include/tiffvers.h       |   0
 .../libs/armeabi-v7a/libtiff.a.REMOVED.git-id |   0
 .../libs/armeabi/libtiff.a.REMOVED.git-id     |   0
 .../libtiff/libs/x86/libtiff.a.REMOVED.git-id |   0
 .../android/prebuilt/libwebp/include/decode.h |   0
 .../android/prebuilt/libwebp/include/encode.h |   0
 .../android/prebuilt/libwebp/include/types.h  |   0
 .../libs/armeabi-v7a/libwebp.a.REMOVED.git-id |   0
 .../libs/armeabi/libwebp.a.REMOVED.git-id     |   0
 .../libwebp/libs/x86/libwebp.a.REMOVED.git-id |   0
 .../platform/third_party/ios/curl/curl.h      |   0
 .../platform/third_party/ios/curl/curlbuild.h |   0
 .../platform/third_party/ios/curl/curlrules.h |   0
 .../platform/third_party/ios/curl/curlver.h   |   0
 .../platform/third_party/ios/curl/easy.h      |   0
 .../platform/third_party/ios/curl/mprintf.h   |   0
 .../platform/third_party/ios/curl/multi.h     |   0
 .../third_party/ios/curl/stdcheaders.h        |   0
 .../third_party/ios/curl/typecheck-gcc.h      |   0
 .../ios/libraries/libcurl.a.REMOVED.git-id    |   0
 .../ios/libraries/libwebp.a.REMOVED.git-id    |   0
 .../platform/third_party/ios/webp/decode.h    |   0
 .../platform/third_party/ios/webp/encode.h    |   0
 .../platform/third_party/ios/webp/types.h     |   0
 .../mac/libraries/libwebp.a.REMOVED.git-id    |   0
 .../platform/third_party/mac/webp/decode.h    |   0
 .../platform/third_party/mac/webp/encode.h    |   0
 .../platform/third_party/mac/webp/types.h     |   0
 .../third_party/win32/OGLES/GL/glew.h         |   0
 .../third_party/win32/OGLES/GL/glxew.h        |   2 +-
 .../third_party/win32/OGLES/GL/wglew.h        |   0
 .../platform/third_party/win32/curl/curl.h    |   0
 .../third_party/win32/curl/curlbuild.h        |   0
 .../third_party/win32/curl/curlrules.h        |   0
 .../platform/third_party/win32/curl/curlver.h |   0
 .../platform/third_party/win32/curl/easy.h    |   0
 .../platform/third_party/win32/curl/mprintf.h |   0
 .../platform/third_party/win32/curl/multi.h   |   0
 .../third_party/win32/curl/stdcheaders.h      |   0
 .../third_party/win32/curl/typecheck-gcc.h    |   0
 .../platform/third_party/win32/iconv/iconv.h  |   0
 .../third_party/win32/libjpeg/jconfig.h       |   0
 .../third_party/win32/libjpeg/jconfig_linux.h |   0
 .../third_party/win32/libjpeg/jconfig_win.h   |   0
 .../third_party/win32/libjpeg/jerror.h        |   0
 .../third_party/win32/libjpeg/jmorecfg.h      |   0
 .../third_party/win32/libjpeg/jpeglib.h       |   0
 .../win32/libpng/png.h.REMOVED.git-id         |   0
 .../third_party/win32/libpng/pngconf.h        |   0
 .../win32/libraries/glew32.dll.REMOVED.git-id |   0
 .../win32/libraries/glew32.lib.REMOVED.git-id |   0
 .../win32/libraries/iconv.dll.REMOVED.git-id  |   0
 .../libraries/libcurl.dll.REMOVED.git-id      |   0
 .../libraries/libjpeg.lib.REMOVED.git-id      |   0
 .../win32/libraries/libpng.lib.REMOVED.git-id |   0
 .../libraries/libtiff.dll.REMOVED.git-id      |   0
 .../libraries/libwebp.lib.REMOVED.git-id      |   0
 .../platform/third_party/win32/libtiff/tiff.h |   0
 .../third_party/win32/libtiff/tiffconf.h      |   0
 .../third_party/win32/libtiff/tiffio.h        |   0
 .../third_party/win32/libtiff/tiffvers.h      |   0
 .../third_party/win32/libwebp/decode.h        |   0
 .../third_party/win32/libwebp/encode.h        |   0
 .../third_party/win32/libwebp/types.h         |   0
 .../third_party/win32/pthread/pthread.h       |   4 +-
 .../third_party/win32/pthread/sched.h         |   2 +-
 .../third_party/win32/pthread/semaphore.h     |   2 +-
 .../platform/third_party/win32/zlib/zconf.h   |   0
 .../platform/third_party/win32/zlib/zlib.h    |   0
 .../platform/win32/CCAccelerometer.h          |   2 +-
 .../platform/win32/CCApplication.h            |   6 +-
 .../{cocos2dx => }/platform/win32/CCEGLView.h |   8 +-
 .../platform/win32/CCFileUtilsWin32.h         |   8 +-
 .../{cocos2dx => }/platform/win32/CCGL.h      |   2 +-
 .../platform/win32/CCPlatformDefine.h         |   0
 .../{cocos2dx => }/platform/win32/CCStdC.h    |   2 +-
 .../platform/win32/compat/stdint.h            |   0
 .../robtop/content/CCContentManager.h         |   6 +-
 .../cocos/{cocos2dx => }/robtop/glfw/glfw3.h  |   0
 .../{cocos2dx => }/robtop/glfw/glfw3.lib      | Bin
 .../{cocos2dx => }/robtop/glfw/glfw3native.h  |   0
 .../keyboard_dispatcher/CCKeyboardDelegate.h  |   4 +-
 .../CCKeyboardDispatcher.h                    |   2 +-
 .../robtop/mouse_dispatcher/CCMouseDelegate.h |   4 +-
 .../mouse_dispatcher/CCMouseDispatcher.h      |   2 +-
 .../scene_nodes/CCSceneTransitionDelegate.h   |   2 +-
 .../{cocos2dx => }/robtop/xml/DS_Dictionary.h |   2 +-
 .../{cocos2dx => }/robtop/xml/pugiconfig.hpp  |   0
 .../{cocos2dx => }/robtop/xml/pugixml.hpp     |   2 +-
 .../{cocos2dx => }/robtop/xml/readme.txt      |   0
 .../script_support/CCScriptSupport.h          |   9 +-
 .../{cocos2dx => }/shaders/CCGLProgram.h      |   6 +-
 .../{cocos2dx => }/shaders/CCShaderCache.h    |   2 +-
 .../{cocos2dx => }/shaders/ccGLStateCache.h   |   4 +-
 .../shaders/ccShaderEx_SwitchMask_frag.h      |   0
 ...ccShader_PositionColorLengthTexture_frag.h |   0
 ...ccShader_PositionColorLengthTexture_vert.h |   0
 .../shaders/ccShader_PositionColor_frag.h     |   0
 .../shaders/ccShader_PositionColor_vert.h     |   0
 .../ccShader_PositionTextureA8Color_frag.h    |   0
 .../ccShader_PositionTextureA8Color_vert.h    |   0
 ...hader_PositionTextureColorAlphaTest_frag.h |   0
 .../ccShader_PositionTextureColor_frag.h      |   0
 .../ccShader_PositionTextureColor_vert.h      |   0
 .../shaders/ccShader_PositionTexture_frag.h   |   0
 .../ccShader_PositionTexture_uColor_frag.h    |   0
 .../ccShader_PositionTexture_uColor_vert.h    |   0
 .../shaders/ccShader_PositionTexture_vert.h   |   0
 .../shaders/ccShader_Position_uColor_frag.h   |   0
 .../shaders/ccShader_Position_uColor_vert.h   |   0
 .../cocos/{cocos2dx => }/shaders/ccShaders.h  |   4 +-
 .../{cocos2dx => }/sprite_nodes/CCAnimation.h |  10 +-
 .../sprite_nodes/CCAnimationCache.h           |   4 +-
 .../{cocos2dx => }/sprite_nodes/CCSprite.h    |  12 +-
 .../sprite_nodes/CCSpriteBatchNode.h          |  10 +-
 .../sprite_nodes/CCSpriteFrame.h              |   8 +-
 .../sprite_nodes/CCSpriteFrameCache.h         |   6 +-
 .../support/CCNotificationCenter.h            |   4 +-
 .../{cocos2dx => }/support/CCPointExtension.h |   2 +-
 .../{cocos2dx => }/support/CCProfiling.h      |   8 +-
 .../cocos/{cocos2dx => }/support/CCVertex.h   |   2 +-
 .../{cocos2dx => }/support/TransformUtils.h   |   2 +-
 .../cocos/{cocos2dx => }/support/base64.h     |   0
 .../cocos/{cocos2dx => }/support/ccUTF8.h     |   2 +-
 .../cocos/{cocos2dx => }/support/ccUtils.h    |   0
 .../support/component/CCComponent.h           |   2 +-
 .../support/component/CCComponentContainer.h  |   2 +-
 .../support/data_support/ccCArray.h           |   4 +-
 .../support/data_support/uthash.h             |   0
 .../support/data_support/utlist.h             |   0
 .../support/image_support/TGAlib.h            |   0
 .../support/tinyxml2/tinyxml2.h               |   4 +-
 .../support/user_default/CCUserDefault.h      |   2 +-
 .../support/zip_support/ZipUtils.h            |   8 +-
 .../support/zip_support/ioapi.h               |   6 +-
 .../support/zip_support/unzip.h               |   4 +-
 .../support/zip_support/zipMacro.h            |   0
 .../text_input_node/CCIMEDelegate.h           |   2 +-
 .../text_input_node/CCIMEDispatcher.h         |   0
 .../text_input_node/CCTextFieldTTF.h          |   6 +-
 .../{cocos2dx => }/textures/CCTexture2D.h     |   8 +-
 .../{cocos2dx => }/textures/CCTextureAtlas.h  |   6 +-
 .../{cocos2dx => }/textures/CCTextureCache.h  |   8 +-
 .../{cocos2dx => }/textures/CCTextureETC.h    |   6 +-
 .../{cocos2dx => }/textures/CCTexturePVR.h    |   8 +-
 .../tilemap_parallax_nodes/CCParallaxNode.h   |   4 +-
 .../tilemap_parallax_nodes/CCTMXLayer.h       |   4 +-
 .../tilemap_parallax_nodes/CCTMXObjectGroup.h |   8 +-
 .../tilemap_parallax_nodes/CCTMXTiledMap.h    |   2 +-
 .../tilemap_parallax_nodes/CCTMXXMLParser.h   |   8 +-
 .../tilemap_parallax_nodes/CCTileMapAtlas.h   |   2 +-
 .../{cocos2dx => }/touch_dispatcher/CCTouch.h |   4 +-
 .../CCTouchDelegateProtocol.h                 |   4 +-
 .../touch_dispatcher/CCTouchDispatcher.h      |   4 +-
 .../touch_dispatcher/CCTouchHandler.h         |   4 +-
 loader/src/cocos2d-ext/ZipUtils.cpp           |   9 +-
 loader/src/load/Mod.cpp                       |   2 +-
 loader/src/utils/fetch.cpp                    |   2 +-
 loader/src/utils/zip/ioapi.cpp                |   2 +-
 loader/src/utils/zip/unzip.cpp                |   2 +-
 456 files changed, 916 insertions(+), 2208 deletions(-)
 rename loader/include/Geode/cocos/{cocos2dx => }/CCCamera.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/CCConfiguration.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/CCDirector.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/CCScheduler.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/actions/CCAction.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/actions/CCActionCamera.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/actions/CCActionCatmullRom.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/actions/CCActionEase.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/actions/CCActionGrid.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/actions/CCActionGrid3D.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/actions/CCActionInstant.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/actions/CCActionInterval.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/actions/CCActionManager.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/actions/CCActionPageTurn3D.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/actions/CCActionProgressTimer.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/actions/CCActionTiledGrid.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/actions/CCActionTween.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/base_nodes/CCAtlasNode.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/base_nodes/CCGLBufferedNode.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/base_nodes/CCNode.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/ccFPSImages.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/cocoa/CCAffineTransform.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/cocoa/CCArray.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/cocoa/CCAutoreleasePool.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/cocoa/CCBool.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/cocoa/CCDataVisitor.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/cocoa/CCDictionary.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/cocoa/CCDouble.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/cocoa/CCFloat.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/cocoa/CCGeometry.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/cocoa/CCInteger.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/cocoa/CCNS.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/cocoa/CCObject.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/cocoa/CCSet.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/cocoa/CCString.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/cocoa/CCZone.h (97%)
 delete mode 100644 loader/include/Geode/cocos/cocos2dx/include/cocos2d.h
 delete mode 100644 loader/include/Geode/cocos/cocos2dx/platform/winrt/CCAccelerometer.h
 delete mode 100644 loader/include/Geode/cocos/cocos2dx/platform/winrt/CCApplication.h
 delete mode 100644 loader/include/Geode/cocos/cocos2dx/platform/winrt/CCEGLView.h
 delete mode 100644 loader/include/Geode/cocos/cocos2dx/platform/winrt/CCFileUtilsWinRT.h
 delete mode 100644 loader/include/Geode/cocos/cocos2dx/platform/winrt/CCFreeTypeFont.h
 delete mode 100644 loader/include/Geode/cocos/cocos2dx/platform/winrt/CCGL.h
 delete mode 100644 loader/include/Geode/cocos/cocos2dx/platform/winrt/CCGL_Angle.h
 delete mode 100644 loader/include/Geode/cocos/cocos2dx/platform/winrt/CCGL_gl2dx.h
 delete mode 100644 loader/include/Geode/cocos/cocos2dx/platform/winrt/CCPThreadWinRT.h
 delete mode 100644 loader/include/Geode/cocos/cocos2dx/platform/winrt/CCPlatformDefine.h
 delete mode 100644 loader/include/Geode/cocos/cocos2dx/platform/winrt/CCPrecompiledShaders.h
 delete mode 100644 loader/include/Geode/cocos/cocos2dx/platform/winrt/CCStdC.h
 delete mode 100644 loader/include/Geode/cocos/cocos2dx/platform/winrt/CCWinRTUtils.h
 delete mode 100644 loader/include/Geode/cocos/cocos2dx/platform/winrt/DirectXBase.h
 delete mode 100644 loader/include/Geode/cocos/cocos2dx/platform/winrt/DirectXHelper.h
 delete mode 100644 loader/include/Geode/cocos/cocos2dx/platform/winrt/compat/stdint.h
 delete mode 100644 loader/include/Geode/cocos/cocos2dx/platform/winrt/sha1.h
 rename loader/include/Geode/cocos/{cocos2dx => }/draw_nodes/CCDrawNode.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/draw_nodes/CCDrawingPrimitives.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/effects/CCGrabber.h (95%)
 rename loader/include/Geode/cocos/{cocos2dx => }/effects/CCGrid.h (95%)
 rename loader/include/Geode/cocos/{cocos2dx => }/include/CCEventType.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/include/CCProtocols.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/include/ccConfig.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/include/ccMacros.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/include/ccTypeInfo.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/include/ccTypes.h (99%)
 create mode 100644 loader/include/Geode/cocos/include/cocos2d.h
 rename loader/include/Geode/cocos/{cocos2dx => }/kazmath/include/kazmath/GL/mat4stack.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/kazmath/include/kazmath/GL/matrix.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/kazmath/include/kazmath/aabb.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/kazmath/include/kazmath/kazmath.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/kazmath/include/kazmath/mat3.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/kazmath/include/kazmath/mat4.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/kazmath/include/kazmath/neon_matrix_impl.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/kazmath/include/kazmath/plane.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/kazmath/include/kazmath/quaternion.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/kazmath/include/kazmath/ray2.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/kazmath/include/kazmath/utility.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/kazmath/include/kazmath/vec2.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/kazmath/include/kazmath/vec3.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/kazmath/include/kazmath/vec4.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/keypad_dispatcher/CCKeypadDelegate.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/keypad_dispatcher/CCKeypadDispatcher.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/label_nodes/CCLabelAtlas.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/label_nodes/CCLabelBMFont.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/label_nodes/CCLabelTTF.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/layers_scenes_transitions_nodes/CCLayer.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/layers_scenes_transitions_nodes/CCScene.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/layers_scenes_transitions_nodes/CCTransition.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/layers_scenes_transitions_nodes/CCTransitionPageTurn.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/layers_scenes_transitions_nodes/CCTransitionProgress.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/libcocos2d.lib (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/libcocos2dcpp.so (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/menu_nodes/CCMenu.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/menu_nodes/CCMenuItem.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/misc_nodes/CCClippingNode.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/misc_nodes/CCMotionStreak.h (96%)
 rename loader/include/Geode/cocos/{cocos2dx => }/misc_nodes/CCProgressTimer.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/misc_nodes/CCRenderTexture.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/particle_nodes/CCParticleBatchNode.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/particle_nodes/CCParticleExamples.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/particle_nodes/CCParticleSystem.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/particle_nodes/CCParticleSystemQuad.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/particle_nodes/firePngData.h (100%)
 create mode 100644 loader/include/Geode/cocos/platform/CCAccelerometer.h
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/CCAccelerometerDelegate.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/CCApplicationProtocol.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/CCCommon.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/CCDevice.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/CCEGLViewProtocol.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/CCFileUtils.h (99%)
 create mode 100644 loader/include/Geode/cocos/platform/CCGL.h
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/CCImage.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/CCImageCommon_cpp.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/CCPlatformConfig.h (100%)
 create mode 100644 loader/include/Geode/cocos/platform/CCPlatformDefine.h
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/CCPlatformMacros.h (96%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/CCSAXParser.h (100%)
 create mode 100644 loader/include/Geode/cocos/platform/CCStdC.h
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/CCThread.h (100%)
 create mode 100644 loader/include/Geode/cocos/platform/IncludeCurl.h
 create mode 100644 loader/include/Geode/cocos/platform/IncludeJpegLib.h
 create mode 100644 loader/include/Geode/cocos/platform/IncludePThread.h
 create mode 100644 loader/include/Geode/cocos/platform/IncludeTiffio.h
 create mode 100644 loader/include/Geode/cocos/platform/IncludeZlib.h
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/CCAccelerometer.cpp (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/CCAccelerometer.h (95%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/CCApplication.cpp (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/CCApplication.h (93%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/CCCommon.cpp (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/CCDevice.cpp (84%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/CCEGLView.cpp (94%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/CCEGLView.h (96%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/CCFileUtilsAndroid.cpp (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/CCFileUtilsAndroid.h (94%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/CCGL.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/CCImage.cpp (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/CCPlatformDefine.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/CCStdC.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/.classpath (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/.project (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/AndroidManifest.xml (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/ant.properties (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/build.xml (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/proguard-project.txt (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/project.properties (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/res/.gitignore (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/src/org/cocos2dx/lib/Cocos2dxAccelerometer.java (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/src/org/cocos2dx/lib/Cocos2dxActivity.java (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/src/org/cocos2dx/lib/Cocos2dxBitmap.java (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/src/org/cocos2dx/lib/Cocos2dxETCLoader.java (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/src/org/cocos2dx/lib/Cocos2dxEditBoxDialog.java (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/src/org/cocos2dx/lib/Cocos2dxEditText.java (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/src/org/cocos2dx/lib/Cocos2dxGLSurfaceView.java (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/src/org/cocos2dx/lib/Cocos2dxHandler.java (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/src/org/cocos2dx/lib/Cocos2dxHelper.java (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/src/org/cocos2dx/lib/Cocos2dxLocalStorage.java (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/src/org/cocos2dx/lib/Cocos2dxMusic.java (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/src/org/cocos2dx/lib/Cocos2dxRenderer.java (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/src/org/cocos2dx/lib/Cocos2dxSound.java (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/src/org/cocos2dx/lib/Cocos2dxTextInputWraper.java (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/java/src/org/cocos2dx/lib/Cocos2dxTypefaces.java (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/jni/DPIJni.cpp (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/jni/DPIJni.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/jni/IMEJni.cpp (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/jni/IMEJni.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxAccelerometer.cpp (93%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxBitmap.cpp (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxBitmap.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxHelper.cpp (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxHelper.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxRenderer.cpp (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/jni/JniHelper.cpp (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/jni/JniHelper.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/android/jni/TouchesJni.cpp (96%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/AccelerometerDelegateWrapper.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/AccelerometerDelegateWrapper.mm (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/CCAccelerometer.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/CCAccelerometer.mm (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/CCApplication.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/CCApplication.mm (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/CCCommon.mm (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/CCDevice.mm (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/CCDirectorCaller.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/CCDirectorCaller.mm (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/CCEGLView.h (96%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/CCEGLView.mm (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/CCES2Renderer.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/CCES2Renderer.m (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/CCESRenderer.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/CCFileUtilsIOS.h (94%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/CCFileUtilsIOS.mm (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/CCGL.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/CCImage.mm (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/CCLock.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/CCPlatformDefine.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx/platform/mac => platform/ios}/CCStdC.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/CCThread.mm (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/EAGLView.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/EAGLView.mm (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/OpenGL_Internal.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/Simulation/AccelerometerSimulation.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/ios/Simulation/AccelerometerSimulation.m (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/CCAccelerometer.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/CCApplication.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/CCApplication.mm (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/CCCommon.mm (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/CCDevice.mm (69%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/CCDirectorCaller.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/CCDirectorCaller.mm (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/CCEGLView.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/CCEGLView.mm (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/CCEventDispatcher.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/CCEventDispatcher.mm (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/CCFileUtilsMac.h (94%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/CCFileUtilsMac.mm (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/CCGL.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/CCImage.mm (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/CCPlatformDefine.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx/platform/ios => platform/mac}/CCStdC.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/CCThread.mm (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/CCWindow.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/CCWindow.m (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/EAGLView.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/mac/EAGLView.mm (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/platform.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libcurl/include/curl/curl.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libcurl/include/curl/curlbuild.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libcurl/include/curl/curlrules.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libcurl/include/curl/curlver.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libcurl/include/curl/easy.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libcurl/include/curl/mprintf.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libcurl/include/curl/multi.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libcurl/include/curl/stdcheaders.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libcurl/include/curl/typecheck-gcc.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libcurl/include/curl/types.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libcurl/libs/armeabi-v7a/libcurl.a.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libcurl/libs/armeabi/libcurl.a.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libcurl/libs/x86/libcurl.a.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libjpeg/include/jconfig.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libjpeg/include/jerror.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libjpeg/include/jmorecfg.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libjpeg/include/jpeglib.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libjpeg/libs/armeabi-v7a/libjpeg.a.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libjpeg/libs/armeabi/libjpeg.a.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libjpeg/libs/x86/libjpeg.a.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libpng/include/png.h.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libpng/include/pngconf.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libpng/include/pngusr.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libpng/libs/armeabi-v7a/libpng.a.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libpng/libs/armeabi/libpng.a.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libpng/libs/x86/libpng.a.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libtiff/include/tiff.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libtiff/include/tiffconf.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libtiff/include/tiffio.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libtiff/include/tiffvers.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libtiff/libs/armeabi-v7a/libtiff.a.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libtiff/libs/armeabi/libtiff.a.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libtiff/libs/x86/libtiff.a.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libwebp/include/decode.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libwebp/include/encode.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libwebp/include/types.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libwebp/libs/armeabi-v7a/libwebp.a.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libwebp/libs/armeabi/libwebp.a.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/android/prebuilt/libwebp/libs/x86/libwebp.a.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/ios/curl/curl.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/ios/curl/curlbuild.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/ios/curl/curlrules.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/ios/curl/curlver.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/ios/curl/easy.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/ios/curl/mprintf.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/ios/curl/multi.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/ios/curl/stdcheaders.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/ios/curl/typecheck-gcc.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/ios/libraries/libcurl.a.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/ios/libraries/libwebp.a.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/ios/webp/decode.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/ios/webp/encode.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/ios/webp/types.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/mac/libraries/libwebp.a.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/mac/webp/decode.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/mac/webp/encode.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/mac/webp/types.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/OGLES/GL/glew.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/OGLES/GL/glxew.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/OGLES/GL/wglew.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/curl/curl.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/curl/curlbuild.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/curl/curlrules.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/curl/curlver.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/curl/easy.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/curl/mprintf.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/curl/multi.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/curl/stdcheaders.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/curl/typecheck-gcc.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/iconv/iconv.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libjpeg/jconfig.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libjpeg/jconfig_linux.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libjpeg/jconfig_win.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libjpeg/jerror.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libjpeg/jmorecfg.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libjpeg/jpeglib.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libpng/png.h.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libpng/pngconf.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libraries/glew32.dll.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libraries/glew32.lib.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libraries/iconv.dll.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libraries/libcurl.dll.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libraries/libjpeg.lib.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libraries/libpng.lib.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libraries/libtiff.dll.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libraries/libwebp.lib.REMOVED.git-id (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libtiff/tiff.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libtiff/tiffconf.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libtiff/tiffio.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libtiff/tiffvers.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libwebp/decode.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libwebp/encode.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/libwebp/types.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/pthread/pthread.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/pthread/sched.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/pthread/semaphore.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/zlib/zconf.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/third_party/win32/zlib/zlib.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/win32/CCAccelerometer.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/win32/CCApplication.h (95%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/win32/CCEGLView.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/win32/CCFileUtilsWin32.h (95%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/win32/CCGL.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/win32/CCPlatformDefine.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/win32/CCStdC.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/platform/win32/compat/stdint.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/robtop/content/CCContentManager.h (77%)
 rename loader/include/Geode/cocos/{cocos2dx => }/robtop/glfw/glfw3.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/robtop/glfw/glfw3.lib (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/robtop/glfw/glfw3native.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/robtop/keyboard_dispatcher/CCKeyboardDelegate.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/robtop/keyboard_dispatcher/CCKeyboardDispatcher.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/robtop/mouse_dispatcher/CCMouseDelegate.h (92%)
 rename loader/include/Geode/cocos/{cocos2dx => }/robtop/mouse_dispatcher/CCMouseDispatcher.h (95%)
 rename loader/include/Geode/cocos/{cocos2dx => }/robtop/scene_nodes/CCSceneTransitionDelegate.h (92%)
 rename loader/include/Geode/cocos/{cocos2dx => }/robtop/xml/DS_Dictionary.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/robtop/xml/pugiconfig.hpp (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/robtop/xml/pugixml.hpp (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/robtop/xml/readme.txt (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/script_support/CCScriptSupport.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/shaders/CCGLProgram.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/shaders/CCShaderCache.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/shaders/ccGLStateCache.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/shaders/ccShaderEx_SwitchMask_frag.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/shaders/ccShader_PositionColorLengthTexture_frag.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/shaders/ccShader_PositionColorLengthTexture_vert.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/shaders/ccShader_PositionColor_frag.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/shaders/ccShader_PositionColor_vert.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/shaders/ccShader_PositionTextureA8Color_frag.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/shaders/ccShader_PositionTextureA8Color_vert.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/shaders/ccShader_PositionTextureColorAlphaTest_frag.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/shaders/ccShader_PositionTextureColor_frag.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/shaders/ccShader_PositionTextureColor_vert.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/shaders/ccShader_PositionTexture_frag.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/shaders/ccShader_PositionTexture_uColor_frag.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/shaders/ccShader_PositionTexture_uColor_vert.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/shaders/ccShader_PositionTexture_vert.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/shaders/ccShader_Position_uColor_frag.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/shaders/ccShader_Position_uColor_vert.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/shaders/ccShaders.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/sprite_nodes/CCAnimation.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/sprite_nodes/CCAnimationCache.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/sprite_nodes/CCSprite.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/sprite_nodes/CCSpriteBatchNode.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/sprite_nodes/CCSpriteFrame.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/sprite_nodes/CCSpriteFrameCache.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/support/CCNotificationCenter.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/support/CCPointExtension.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/support/CCProfiling.h (96%)
 rename loader/include/Geode/cocos/{cocos2dx => }/support/CCVertex.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/support/TransformUtils.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/support/base64.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/support/ccUTF8.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/support/ccUtils.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/support/component/CCComponent.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/support/component/CCComponentContainer.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/support/data_support/ccCArray.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/support/data_support/uthash.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/support/data_support/utlist.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/support/image_support/TGAlib.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/support/tinyxml2/tinyxml2.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/support/user_default/CCUserDefault.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/support/zip_support/ZipUtils.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/support/zip_support/ioapi.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/support/zip_support/unzip.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/support/zip_support/zipMacro.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/text_input_node/CCIMEDelegate.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/text_input_node/CCIMEDispatcher.h (100%)
 rename loader/include/Geode/cocos/{cocos2dx => }/text_input_node/CCTextFieldTTF.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/textures/CCTexture2D.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/textures/CCTextureAtlas.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/textures/CCTextureCache.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/textures/CCTextureETC.h (94%)
 rename loader/include/Geode/cocos/{cocos2dx => }/textures/CCTexturePVR.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/tilemap_parallax_nodes/CCParallaxNode.h (96%)
 rename loader/include/Geode/cocos/{cocos2dx => }/tilemap_parallax_nodes/CCTMXLayer.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/tilemap_parallax_nodes/CCTMXObjectGroup.h (95%)
 rename loader/include/Geode/cocos/{cocos2dx => }/tilemap_parallax_nodes/CCTMXTiledMap.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/tilemap_parallax_nodes/CCTMXXMLParser.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/tilemap_parallax_nodes/CCTileMapAtlas.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/touch_dispatcher/CCTouch.h (97%)
 rename loader/include/Geode/cocos/{cocos2dx => }/touch_dispatcher/CCTouchDelegateProtocol.h (98%)
 rename loader/include/Geode/cocos/{cocos2dx => }/touch_dispatcher/CCTouchDispatcher.h (99%)
 rename loader/include/Geode/cocos/{cocos2dx => }/touch_dispatcher/CCTouchHandler.h (98%)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index fe4b1bf0..77df85e7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -60,11 +60,7 @@ target_sources(${PROJECT_NAME} INTERFACE ${GEODE_CODEGEN_PATH}/Geode/GeneratedSo
 target_include_directories(${PROJECT_NAME} INTERFACE
 	${GEODE_CODEGEN_PATH}
 	${GEODE_LOADER_PATH}/include
-	${GEODE_LOADER_PATH}/include/Geode/cocos/
-	${GEODE_LOADER_PATH}/include/Geode/cocos/cocos2dx
-	${GEODE_LOADER_PATH}/include/Geode/cocos/cocos2dx/include
-	${GEODE_LOADER_PATH}/include/Geode/cocos/cocos2dx/support/zip_support
-	${GEODE_LOADER_PATH}/include/Geode/cocos/cocos2dx/kazmath/include
+	${GEODE_LOADER_PATH}/include/Geode/cocos/include
 	${GEODE_LOADER_PATH}/include/Geode/cocos/extensions
 	${GEODE_LOADER_PATH}/include/Geode/fmod
 )
@@ -97,9 +93,12 @@ elseif(EXISTS ${GEODE_PLATFORM_BIN_PATH})
 		"${GEODE_LOADER_PATH}/include/Geode/DefaultInclude.hpp"
 		"${GEODE_LOADER_PATH}/include/Geode/Loader.hpp"
 		"${GEODE_LOADER_PATH}/include/Geode/UI.hpp"
-		"${GEODE_LOADER_PATH}/include/Geode/cocos/cocos2dx/include/cocos2d.h"
+		"${GEODE_LOADER_PATH}/include/Geode/cocos/include/cocos2d.h"
 		"${GEODE_LOADER_PATH}/include/Geode/cocos/extensions/cocos-ext.h"
 	)
 else()
-	message(FATAL_ERROR "No valid loader binary to link to! Install a pre-built binary for version ${PROJECT_VERSION} with Geode CLI or build it from source.")
+	message(FATAL_ERROR
+		"No valid loader binary to link to! Install prebuilts with `geode sdk install-prebuilts` "
+		"or build Geode from source."
+	)
 endif()
diff --git a/loader/CMakeLists.txt b/loader/CMakeLists.txt
index 726bb50e..f4fa91cc 100644
--- a/loader/CMakeLists.txt
+++ b/loader/CMakeLists.txt
@@ -121,7 +121,7 @@ target_precompile_headers(${PROJECT_NAME} PRIVATE
 	"${CMAKE_CURRENT_SOURCE_DIR}/include/Geode/UI.hpp"
 	# "${CMAKE_CURRENT_SOURCE_DIR}/include/Geode/Bindings.hpp"
 	# "${CMAKE_CURRENT_SOURCE_DIR}/include/Geode/Modify.hpp"
-	"${CMAKE_CURRENT_SOURCE_DIR}/include/Geode/cocos/cocos2dx/include/cocos2d.h"
+	"${CMAKE_CURRENT_SOURCE_DIR}/include/Geode/cocos/include/cocos2d.h"
 	"${CMAKE_CURRENT_SOURCE_DIR}/include/Geode/cocos/extensions/cocos-ext.h"
 )
 
diff --git a/loader/include/Geode/cocos/cocos2dx/CCCamera.h b/loader/include/Geode/cocos/CCCamera.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/CCCamera.h
rename to loader/include/Geode/cocos/CCCamera.h
index 100d848c..3c1bdbce 100644
--- a/loader/include/Geode/cocos/cocos2dx/CCCamera.h
+++ b/loader/include/Geode/cocos/CCCamera.h
@@ -28,8 +28,8 @@ THE SOFTWARE.
 #define __CCCAMERA_H__
 
 #include "cocoa/CCObject.h"
-#include "ccMacros.h"
-#include "kazmath/mat4.h"
+#include "include/ccMacros.h"
+#include "kazmath/include/kazmath/mat4.h"
 #include <string>
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/CCConfiguration.h b/loader/include/Geode/cocos/CCConfiguration.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/CCConfiguration.h
rename to loader/include/Geode/cocos/CCConfiguration.h
index ffb2206d..9955df43 100644
--- a/loader/include/Geode/cocos/cocos2dx/CCConfiguration.h
+++ b/loader/include/Geode/cocos/CCConfiguration.h
@@ -27,7 +27,7 @@ THE SOFTWARE.
 #define __CCCONFIGURATION_H__
 
 #include "cocoa/CCObject.h"
-#include "CCGL.h"
+#include "platform/CCGL.h"
 #include "cocoa/CCString.h"
 #include <string>
 
diff --git a/loader/include/Geode/cocos/cocos2dx/CCDirector.h b/loader/include/Geode/cocos/CCDirector.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/CCDirector.h
rename to loader/include/Geode/cocos/CCDirector.h
index b7441d26..4c3060b5 100644
--- a/loader/include/Geode/cocos/cocos2dx/CCDirector.h
+++ b/loader/include/Geode/cocos/CCDirector.h
@@ -29,13 +29,13 @@ THE SOFTWARE.
 
 #include "platform/CCPlatformMacros.h"
 #include "cocoa/CCObject.h"
-#include "ccTypes.h"
+#include "include/ccTypes.h"
 #include "cocoa/CCGeometry.h"
 #include "cocoa/CCArray.h"
-#include "CCGL.h"
-#include "kazmath/mat4.h"
+#include "platform/CCGL.h"
+#include "kazmath/include/kazmath/mat4.h"
 #include "label_nodes/CCLabelAtlas.h"
-#include "ccTypeInfo.h"
+#include "include/ccTypeInfo.h"
 
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/CCScheduler.h b/loader/include/Geode/cocos/CCScheduler.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/CCScheduler.h
rename to loader/include/Geode/cocos/CCScheduler.h
diff --git a/loader/include/Geode/cocos/CMakeLists.txt b/loader/include/Geode/cocos/CMakeLists.txt
index 97675f6f..b72f4fcd 100644
--- a/loader/include/Geode/cocos/CMakeLists.txt
+++ b/loader/include/Geode/cocos/CMakeLists.txt
@@ -5,12 +5,7 @@ project(cocos-headers CXX)
 add_library(cocos2d INTERFACE)
 
 target_include_directories(cocos2d INTERFACE 
-  cocos2dx
-  cocos2dx/include
-  cocos2dx/kazmath/include
-  cocos2dx/platform/win32
-  cocos2dx/platform/third_party/win32
-  cocos2dx/platform/third_party/win32/OGLES
+  include
   extensions
 )
 
diff --git a/loader/include/Geode/cocos/cocos2dx/actions/CCAction.h b/loader/include/Geode/cocos/actions/CCAction.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/actions/CCAction.h
rename to loader/include/Geode/cocos/actions/CCAction.h
index b086778c..721e9ddf 100644
--- a/loader/include/Geode/cocos/cocos2dx/actions/CCAction.h
+++ b/loader/include/Geode/cocos/actions/CCAction.h
@@ -27,9 +27,9 @@ THE SOFTWARE.
 #ifndef __ACTIONS_CCACTION_H__
 #define __ACTIONS_CCACTION_H__
 
-#include "cocoa/CCObject.h"
-#include "cocoa/CCGeometry.h"
-#include "platform/CCPlatformMacros.h"
+#include "../cocoa/CCObject.h"
+#include "../cocoa/CCGeometry.h"
+#include "../platform/CCPlatformMacros.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/actions/CCActionCamera.h b/loader/include/Geode/cocos/actions/CCActionCamera.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/actions/CCActionCamera.h
rename to loader/include/Geode/cocos/actions/CCActionCamera.h
diff --git a/loader/include/Geode/cocos/cocos2dx/actions/CCActionCatmullRom.h b/loader/include/Geode/cocos/actions/CCActionCatmullRom.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/actions/CCActionCatmullRom.h
rename to loader/include/Geode/cocos/actions/CCActionCatmullRom.h
index cd118196..83bddc21 100644
--- a/loader/include/Geode/cocos/cocos2dx/actions/CCActionCatmullRom.h
+++ b/loader/include/Geode/cocos/actions/CCActionCatmullRom.h
@@ -40,8 +40,8 @@
 #include <vector>
 
 #include "CCActionInterval.h"
-#include "base_nodes/CCNode.h"
-#include "cocoa/CCGeometry.h"
+#include "../base_nodes/CCNode.h"
+#include "../cocoa/CCGeometry.h"
 
 NS_CC_BEGIN;
 
diff --git a/loader/include/Geode/cocos/cocos2dx/actions/CCActionEase.h b/loader/include/Geode/cocos/actions/CCActionEase.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/actions/CCActionEase.h
rename to loader/include/Geode/cocos/actions/CCActionEase.h
diff --git a/loader/include/Geode/cocos/cocos2dx/actions/CCActionGrid.h b/loader/include/Geode/cocos/actions/CCActionGrid.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/actions/CCActionGrid.h
rename to loader/include/Geode/cocos/actions/CCActionGrid.h
diff --git a/loader/include/Geode/cocos/cocos2dx/actions/CCActionGrid3D.h b/loader/include/Geode/cocos/actions/CCActionGrid3D.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/actions/CCActionGrid3D.h
rename to loader/include/Geode/cocos/actions/CCActionGrid3D.h
diff --git a/loader/include/Geode/cocos/cocos2dx/actions/CCActionInstant.h b/loader/include/Geode/cocos/actions/CCActionInstant.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/actions/CCActionInstant.h
rename to loader/include/Geode/cocos/actions/CCActionInstant.h
index 7bc27957..5cbfd53f 100644
--- a/loader/include/Geode/cocos/cocos2dx/actions/CCActionInstant.h
+++ b/loader/include/Geode/cocos/actions/CCActionInstant.h
@@ -28,7 +28,7 @@ THE SOFTWARE.
 #define __CCINSTANT_ACTION_H__
 
 #include <string>
-#include "ccTypeInfo.h"
+#include "../include/ccTypeInfo.h"
 #include "CCAction.h"
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/actions/CCActionInterval.h b/loader/include/Geode/cocos/actions/CCActionInterval.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/actions/CCActionInterval.h
rename to loader/include/Geode/cocos/actions/CCActionInterval.h
index 429b847a..3a930f33 100644
--- a/loader/include/Geode/cocos/cocos2dx/actions/CCActionInterval.h
+++ b/loader/include/Geode/cocos/actions/CCActionInterval.h
@@ -27,11 +27,11 @@ THE SOFTWARE.
 #ifndef __ACTION_CCINTERVAL_ACTION_H__
 #define __ACTION_CCINTERVAL_ACTION_H__
 
-#include "base_nodes/CCNode.h"
+#include "../base_nodes/CCNode.h"
 #include "CCAction.h"
-#include "CCProtocols.h"
-#include "sprite_nodes/CCSpriteFrame.h"
-#include "sprite_nodes/CCAnimation.h"
+#include "../include/CCProtocols.h"
+#include "../sprite_nodes/CCSpriteFrame.h"
+#include "../sprite_nodes/CCAnimation.h"
 #include <vector>
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/actions/CCActionManager.h b/loader/include/Geode/cocos/actions/CCActionManager.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/actions/CCActionManager.h
rename to loader/include/Geode/cocos/actions/CCActionManager.h
index 87646eb2..a385c1a1 100644
--- a/loader/include/Geode/cocos/cocos2dx/actions/CCActionManager.h
+++ b/loader/include/Geode/cocos/actions/CCActionManager.h
@@ -29,8 +29,8 @@ THE SOFTWARE.
 #define __ACTION_CCACTION_MANAGER_H__
 
 #include "CCAction.h"
-#include "cocoa/CCArray.h"
-#include "cocoa/CCObject.h"
+#include "../cocoa/CCArray.h"
+#include "../cocoa/CCObject.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/actions/CCActionPageTurn3D.h b/loader/include/Geode/cocos/actions/CCActionPageTurn3D.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/actions/CCActionPageTurn3D.h
rename to loader/include/Geode/cocos/actions/CCActionPageTurn3D.h
diff --git a/loader/include/Geode/cocos/cocos2dx/actions/CCActionProgressTimer.h b/loader/include/Geode/cocos/actions/CCActionProgressTimer.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/actions/CCActionProgressTimer.h
rename to loader/include/Geode/cocos/actions/CCActionProgressTimer.h
diff --git a/loader/include/Geode/cocos/cocos2dx/actions/CCActionTiledGrid.h b/loader/include/Geode/cocos/actions/CCActionTiledGrid.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/actions/CCActionTiledGrid.h
rename to loader/include/Geode/cocos/actions/CCActionTiledGrid.h
diff --git a/loader/include/Geode/cocos/cocos2dx/actions/CCActionTween.h b/loader/include/Geode/cocos/actions/CCActionTween.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/actions/CCActionTween.h
rename to loader/include/Geode/cocos/actions/CCActionTween.h
diff --git a/loader/include/Geode/cocos/cocos2dx/base_nodes/CCAtlasNode.h b/loader/include/Geode/cocos/base_nodes/CCAtlasNode.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/base_nodes/CCAtlasNode.h
rename to loader/include/Geode/cocos/base_nodes/CCAtlasNode.h
index 44219038..60155a75 100644
--- a/loader/include/Geode/cocos/cocos2dx/base_nodes/CCAtlasNode.h
+++ b/loader/include/Geode/cocos/base_nodes/CCAtlasNode.h
@@ -28,8 +28,8 @@ THE SOFTWARE.
 #define __CCATLAS_NODE_H__
 
 #include "CCNode.h"
-#include "CCProtocols.h"
-#include "ccTypes.h"
+#include "../include/CCProtocols.h"
+#include "../include/ccTypes.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/base_nodes/CCGLBufferedNode.h b/loader/include/Geode/cocos/base_nodes/CCGLBufferedNode.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/base_nodes/CCGLBufferedNode.h
rename to loader/include/Geode/cocos/base_nodes/CCGLBufferedNode.h
index 08926397..3ed2dbdb 100644
--- a/loader/include/Geode/cocos/cocos2dx/base_nodes/CCGLBufferedNode.h
+++ b/loader/include/Geode/cocos/base_nodes/CCGLBufferedNode.h
@@ -24,7 +24,7 @@ THE SOFTWARE.
 #ifndef __CC_GL_BUFFERED_NODE__
 #define __CC_GL_BUFFERED_NODE__
 
-#include <CCGL.h>
+#include "../platform/CCGL.h"
 
 class CCGLBufferedNode
 {
diff --git a/loader/include/Geode/cocos/cocos2dx/base_nodes/CCNode.h b/loader/include/Geode/cocos/base_nodes/CCNode.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/base_nodes/CCNode.h
rename to loader/include/Geode/cocos/base_nodes/CCNode.h
index 10055ebf..001ef160 100644
--- a/loader/include/Geode/cocos/cocos2dx/base_nodes/CCNode.h
+++ b/loader/include/Geode/cocos/base_nodes/CCNode.h
@@ -28,15 +28,15 @@
 #ifndef __PLATFORM_CCNODE_H__
 #define __PLATFORM_CCNODE_H__
 
-#include "ccMacros.h"
-#include "cocoa/CCAffineTransform.h"
-#include "cocoa/CCArray.h"
-#include "CCGL.h"
-#include "shaders/ccGLStateCache.h"
-#include "shaders/CCGLProgram.h"
-#include "kazmath/kazmath.h"
-#include "script_support/CCScriptSupport.h"
-#include "CCProtocols.h"
+#include "../include/ccMacros.h"
+#include "../cocoa/CCAffineTransform.h"
+#include "../cocoa/CCArray.h"
+#include "../platform/CCGL.h"
+#include "../shaders/ccGLStateCache.h"
+#include "../shaders/CCGLProgram.h"
+#include "../kazmath/include/kazmath/kazmath.h"
+#include "../script_support/CCScriptSupport.h"
+#include "../include/CCProtocols.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/ccFPSImages.h b/loader/include/Geode/cocos/ccFPSImages.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/ccFPSImages.h
rename to loader/include/Geode/cocos/ccFPSImages.h
diff --git a/loader/include/Geode/cocos/cocos2dx/cocoa/CCAffineTransform.h b/loader/include/Geode/cocos/cocoa/CCAffineTransform.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/cocoa/CCAffineTransform.h
rename to loader/include/Geode/cocos/cocoa/CCAffineTransform.h
index 6bc8b352..8f22439e 100644
--- a/loader/include/Geode/cocos/cocos2dx/cocoa/CCAffineTransform.h
+++ b/loader/include/Geode/cocos/cocoa/CCAffineTransform.h
@@ -26,7 +26,7 @@ THE SOFTWARE.
 #define __COCOA_CGAFFINETRANSFORM_H__
 
 #include "CCGeometry.h"
-#include "platform/CCPlatformMacros.h"
+#include "../platform/CCPlatformMacros.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/cocoa/CCArray.h b/loader/include/Geode/cocos/cocoa/CCArray.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/cocoa/CCArray.h
rename to loader/include/Geode/cocos/cocoa/CCArray.h
index 4937ce84..92698b4e 100644
--- a/loader/include/Geode/cocos/cocos2dx/cocoa/CCArray.h
+++ b/loader/include/Geode/cocos/cocoa/CCArray.h
@@ -25,7 +25,7 @@ THE SOFTWARE.
 #ifndef __CCARRAY_H__
 #define __CCARRAY_H__
 
-#include "support/data_support/ccCArray.h"
+#include "../support/data_support/ccCArray.h"
 
 /**
  * @addtogroup data_structures
diff --git a/loader/include/Geode/cocos/cocos2dx/cocoa/CCAutoreleasePool.h b/loader/include/Geode/cocos/cocoa/CCAutoreleasePool.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/cocoa/CCAutoreleasePool.h
rename to loader/include/Geode/cocos/cocoa/CCAutoreleasePool.h
diff --git a/loader/include/Geode/cocos/cocos2dx/cocoa/CCBool.h b/loader/include/Geode/cocos/cocoa/CCBool.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/cocoa/CCBool.h
rename to loader/include/Geode/cocos/cocoa/CCBool.h
diff --git a/loader/include/Geode/cocos/cocos2dx/cocoa/CCDataVisitor.h b/loader/include/Geode/cocos/cocoa/CCDataVisitor.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/cocoa/CCDataVisitor.h
rename to loader/include/Geode/cocos/cocoa/CCDataVisitor.h
index f1f5a477..56a20089 100644
--- a/loader/include/Geode/cocos/cocos2dx/cocoa/CCDataVisitor.h
+++ b/loader/include/Geode/cocos/cocoa/CCDataVisitor.h
@@ -25,7 +25,7 @@
 #ifndef __CCDATAVISITOR_H__
 #define __CCDATAVISITOR_H__
 
-#include "platform/CCPlatformMacros.h"
+#include "../platform/CCPlatformMacros.h"
 #include <string>
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/cocoa/CCDictionary.h b/loader/include/Geode/cocos/cocoa/CCDictionary.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/cocoa/CCDictionary.h
rename to loader/include/Geode/cocos/cocoa/CCDictionary.h
index 728f2dc7..cc158917 100644
--- a/loader/include/Geode/cocos/cocos2dx/cocoa/CCDictionary.h
+++ b/loader/include/Geode/cocos/cocoa/CCDictionary.h
@@ -25,7 +25,7 @@ THE SOFTWARE.
 #ifndef __CCDICTIONARY_H__
 #define __CCDICTIONARY_H__
 
-#include "support/data_support/uthash.h"
+#include "../support/data_support/uthash.h"
 #include "CCObject.h"
 #include "CCArray.h"
 #include "CCString.h"
diff --git a/loader/include/Geode/cocos/cocos2dx/cocoa/CCDouble.h b/loader/include/Geode/cocos/cocoa/CCDouble.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/cocoa/CCDouble.h
rename to loader/include/Geode/cocos/cocoa/CCDouble.h
diff --git a/loader/include/Geode/cocos/cocos2dx/cocoa/CCFloat.h b/loader/include/Geode/cocos/cocoa/CCFloat.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/cocoa/CCFloat.h
rename to loader/include/Geode/cocos/cocoa/CCFloat.h
diff --git a/loader/include/Geode/cocos/cocos2dx/cocoa/CCGeometry.h b/loader/include/Geode/cocos/cocoa/CCGeometry.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/cocoa/CCGeometry.h
rename to loader/include/Geode/cocos/cocoa/CCGeometry.h
index b8cbe97a..2e31ccf3 100644
--- a/loader/include/Geode/cocos/cocos2dx/cocoa/CCGeometry.h
+++ b/loader/include/Geode/cocos/cocoa/CCGeometry.h
@@ -25,7 +25,7 @@ THE SOFTWARE.
 #ifndef __CCGEMETRY_H__
 #define __CCGEMETRY_H__
 
-#include "platform/CCPlatformMacros.h"
+#include "../platform/CCPlatformMacros.h"
 #include "CCObject.h"
 #include <math.h>
 
diff --git a/loader/include/Geode/cocos/cocos2dx/cocoa/CCInteger.h b/loader/include/Geode/cocos/cocoa/CCInteger.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/cocoa/CCInteger.h
rename to loader/include/Geode/cocos/cocoa/CCInteger.h
diff --git a/loader/include/Geode/cocos/cocos2dx/cocoa/CCNS.h b/loader/include/Geode/cocos/cocoa/CCNS.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/cocoa/CCNS.h
rename to loader/include/Geode/cocos/cocoa/CCNS.h
diff --git a/loader/include/Geode/cocos/cocos2dx/cocoa/CCObject.h b/loader/include/Geode/cocos/cocoa/CCObject.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/cocoa/CCObject.h
rename to loader/include/Geode/cocos/cocoa/CCObject.h
index a73dfa2d..6dc4b920 100644
--- a/loader/include/Geode/cocos/cocos2dx/cocoa/CCObject.h
+++ b/loader/include/Geode/cocos/cocoa/CCObject.h
@@ -26,11 +26,11 @@ THE SOFTWARE.
 #define __CCOBJECT_H__
 
 #include "CCDataVisitor.h"
-#include "ccMacros.h"
+#include "../include/ccMacros.h"
 #include <unordered_map>
 
 // Geode macros
-#include <Geode/DefaultInclude.hpp>
+#include "../../DefaultInclude.hpp"
 
 #ifdef EMSCRIPTEN
 #include <GLES2/gl2.h>
diff --git a/loader/include/Geode/cocos/cocos2dx/cocoa/CCSet.h b/loader/include/Geode/cocos/cocoa/CCSet.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/cocoa/CCSet.h
rename to loader/include/Geode/cocos/cocoa/CCSet.h
diff --git a/loader/include/Geode/cocos/cocos2dx/cocoa/CCString.h b/loader/include/Geode/cocos/cocoa/CCString.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/cocoa/CCString.h
rename to loader/include/Geode/cocos/cocoa/CCString.h
diff --git a/loader/include/Geode/cocos/cocos2dx/cocoa/CCZone.h b/loader/include/Geode/cocos/cocoa/CCZone.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/cocoa/CCZone.h
rename to loader/include/Geode/cocos/cocoa/CCZone.h
index d7a5ff23..c8d887c7 100644
--- a/loader/include/Geode/cocos/cocos2dx/cocoa/CCZone.h
+++ b/loader/include/Geode/cocos/cocoa/CCZone.h
@@ -25,7 +25,7 @@ THE SOFTWARE.
 #ifndef __CC_ZONE_H__
 #define __CC_ZONE_H__
 
-#include "platform/CCPlatformMacros.h"
+#include "../platform/CCPlatformMacros.h"
 #include <stdio.h>
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/include/cocos2d.h b/loader/include/Geode/cocos/cocos2dx/include/cocos2d.h
deleted file mode 100644
index 6b43e5b7..00000000
--- a/loader/include/Geode/cocos/cocos2dx/include/cocos2d.h
+++ /dev/null
@@ -1,328 +0,0 @@
-/****************************************************************************
-Copyright (c) 2010-2012 cocos2d-x.org
-Copyright (c) 2008-2010 Ricardo Quesada
-Copyright (c) 2011      Zynga Inc.
-Copyright (c) Microsoft Open Technologies, Inc.
-
-http://www.cocos2d-x.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-****************************************************************************/
-
-#ifndef __COCOS2D_H__
-#define __COCOS2D_H__
-
-// 0x00 HI ME LO
-// 00   02 01 00
-#define COCOS2D_VERSION 0x00020100
-
-
-// Geode macros
-#include <Geode/DefaultInclude.hpp>
-
-//
-// all cocos2d include files
-//
-#include "ccConfig.h"
-
-// actions
-#include "actions/CCAction.h"
-#include "actions/CCActionInterval.h"
-#include "actions/CCActionCamera.h"
-#include "actions/CCActionManager.h"
-#include "actions/CCActionEase.h"
-#include "actions/CCActionPageTurn3D.h"
-#include "actions/CCActionGrid.h"
-#include "actions/CCActionProgressTimer.h"
-#include "actions/CCActionGrid3D.h"
-#include "actions/CCActionTiledGrid.h"
-#include "actions/CCActionInstant.h"
-#include "actions/CCActionTween.h"
-#include "actions/CCActionCatmullRom.h"
-
-// base_nodes
-#include "base_nodes/CCNode.h"
-#include "base_nodes/CCAtlasNode.h"
-
-// cocoa
-#include "cocoa/CCAffineTransform.h"
-#include "cocoa/CCDictionary.h"
-#include "cocoa/CCObject.h"
-#include "cocoa/CCArray.h"
-#include "cocoa/CCGeometry.h"
-#include "cocoa/CCSet.h"
-#include "cocoa/CCAutoreleasePool.h"
-#include "cocoa/CCInteger.h"
-#include "cocoa/CCFloat.h"
-#include "cocoa/CCDouble.h"
-#include "cocoa/CCBool.h"
-#include "cocoa/CCString.h"
-#include "cocoa/CCNS.h"
-#include "cocoa/CCZone.h"
-
-// draw nodes
-#include "draw_nodes/CCDrawingPrimitives.h"
-#include "draw_nodes/CCDrawNode.h"
-
-// effects
-#include "effects/CCGrabber.h"
-#include "effects/CCGrid.h"
-
-// include
-#include "CCEventType.h"
-#include "CCProtocols.h"
-#include "ccConfig.h"
-#include "ccMacros.h"
-#include "ccTypes.h"
-
-// kazmath
-#include "kazmath/include/kazmath/kazmath.h"
-#include "kazmath/include/kazmath/GL/matrix.h"
-
-// keypad_dispatcher
-#include "keypad_dispatcher/CCKeypadDelegate.h"
-#include "keypad_dispatcher/CCKeypadDispatcher.h"
-
-// label_nodes
-#include "label_nodes/CCLabelAtlas.h"
-#include "label_nodes/CCLabelTTF.h"
-#include "label_nodes/CCLabelBMFont.h"
-
-// layers_scenes_transitions_nodes
-#include "layers_scenes_transitions_nodes/CCLayer.h"
-#include "layers_scenes_transitions_nodes/CCScene.h"
-#include "layers_scenes_transitions_nodes/CCTransition.h"
-#include "layers_scenes_transitions_nodes/CCTransitionPageTurn.h"
-#include "layers_scenes_transitions_nodes/CCTransitionProgress.h"
-
-// menu_nodes
-#include "menu_nodes/CCMenu.h"
-#include "menu_nodes/CCMenuItem.h"
-
-// misc_nodes
-#include "misc_nodes/CCClippingNode.h"
-#include "misc_nodes/CCMotionStreak.h"
-#include "misc_nodes/CCProgressTimer.h"
-#include "misc_nodes/CCRenderTexture.h"
-
-// particle_nodes
-#include "particle_nodes/CCParticleBatchNode.h"
-#include "particle_nodes/CCParticleSystem.h"
-#include "particle_nodes/CCParticleExamples.h"
-#include "particle_nodes/CCParticleSystemQuad.h"
-
-// platform
-#include "platform/CCDevice.h"
-#include "platform/CCCommon.h"
-#include "platform/CCFileUtils.h"
-#include "platform/CCImage.h"
-#include "platform/CCSAXParser.h"
-#include "platform/CCThread.h"
-#include "platform/platform.h"
-#include "platform/CCPlatformConfig.h"
-#include "platform/CCPlatformMacros.h"
-
-#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
-    #include "platform/ios/CCAccelerometer.h"
-    #include "platform/ios/CCApplication.h"
-    #include "platform/ios/CCEGLView.h"
-    #include "platform/ios/CCGL.h"
-    #include "platform/ios/CCStdC.h"
-#endif // CC_TARGET_PLATFORM == CC_PLATFORM_IOS
-
-#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
-    #include "platform/android/CCAccelerometer.h"
-    #include "platform/android/CCApplication.h"
-    #include "platform/android/CCEGLView.h"
-    #include "platform/android/CCGL.h"
-    #include "platform/android/CCStdC.h"
-#endif // CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID
-
-#if (CC_TARGET_PLATFORM == CC_PLATFORM_BLACKBERRY)
-    #include "platform/blackberry/CCAccelerometer.h"
-    #include "platform/blackberry/CCApplication.h"
-    #include "platform/blackberry/CCEGLView.h"
-    #include "platform/blackberry/CCGL.h"
-    #include "platform/blackberry/CCStdC.h"
-#endif // CC_TARGET_PLATFORM == CC_PLATFORM_BLACKBERRY
-
-#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
-	#include "platform/win32/CCAccelerometer.h"
-	#include "platform/win32/CCApplication.h"
-	#include "platform/win32/CCEGLView.h"
-	#include "platform/win32/CCGL.h"
-	#include "platform/win32/CCStdC.h"
-#endif // CC_TARGET_PLATFORM == CC_PLATFORM_WIN32
-
-#if (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT)
-	#include "platform/winrt/CCApplication.h"
-	#include "platform/winrt/CCEGLView.h"
-	#include "platform/winrt/CCGL.h"
-	#include "platform/winrt/CCStdC.h"
-	#include "platform/winrt/CCAccelerometer.h"
-	#include "platform/winrt/CCPrecompiledShaders.h"
-#endif // CC_TARGET_PLATFORM == CC_PLATFORM_WINRT
-
-#if (CC_TARGET_PLATFORM == CC_PLATFORM_WP8)
-	#include "platform/winrt/CCApplication.h"
-	#include "platform/wp8/CCEGLView.h"
-	#include "platform/winrt/CCGL.h"
-	#include "platform/winrt/CCStdC.h"
-	#include "platform/winrt/CCAccelerometer.h"
-	#include "platform/winrt/CCPrecompiledShaders.h"
-#endif // CC_TARGET_PLATFORM == CC_PLATFORM_WP8
-
-#if (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
-	#include "platform/mac/CCAccelerometer.h"
-	#include "platform/mac/CCApplication.h"
-	#include "platform/mac/CCEGLView.h"
-	#include "platform/mac/CCGL.h"
-	#include "platform/mac/CCStdC.h"
-#endif // CC_TARGET_PLATFORM == CC_PLATFORM_MAC
-
-
-
-
-
-#if (CC_TARGET_PLATFORM == CC_PLATFORM_LINUX)
-	#include "platform/linux/CCAccelerometer.h"
-	#include "platform/linux/CCApplication.h"
-	#include "platform/linux/CCEGLView.h"
-	#include "platform/linux/CCGL.h"
-	#include "platform/linux/CCStdC.h"
-#endif // CC_TARGET_PLATFORM == CC_PLATFORM_LINUX
-
-// MARMALADE CHANGE
-// Added for Marmalade support
-#if (CC_TARGET_PLATFORM == CC_PLATFORM_MARMALADE)
-	#include "platform/Marmalade/CCAccelerometer.h"
-	#include "platform/Marmalade/CCApplication.h"
-	#include "platform/Marmalade/CCEGLView.h"
-	#include "platform/Marmalade/CCGL.h"
-	#include "platform/Marmalade/CCStdC.h"
-#endif // CC_TARGET_PLATFORM == CC_PLATFORM_LINUX
-
-#if (CC_TARGET_PLATFORM == CC_PLATFORM_NACL)
-    #include "platform/nacl/CCAccelerometer.h"
-    #include "platform/nacl/CCApplication.h"
-    #include "platform/nacl/CCEGLView.h"
-    #include "platform/nacl/CCGL.h"
-    #include "platform/nacl/CCStdC.h"
-#endif // CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID
-
-#if (CC_TARGET_PLATFORM == CC_PLATFORM_EMSCRIPTEN)
-    #include "platform/emscripten/CCAccelerometer.h"
-    #include "platform/emscripten/CCApplication.h"
-    #include "platform/emscripten/CCEGLView.h"
-    #include "platform/emscripten/CCGL.h"
-    #include "platform/emscripten/CCStdC.h"
-#endif // CC_TARGET_PLATFORM == CC_PLATFORM_EMSCRIPTEN
-
-#if (CC_TARGET_PLATFORM == CC_PLATFORM_TIZEN)
-    #include "platform/tizen/CCAccelerometer.h"
-    #include "platform/tizen/CCApplication.h"
-    #include "platform/tizen/CCEGLView.h"
-    #include "platform/tizen/CCGL.h"
-    #include "platform/tizen/CCStdC.h"
-#endif // CC_TARGET_PLATFORM == CC_PLATFORM_TIZEN
-
-// script_support
-#include "script_support/CCScriptSupport.h"
-
-// shaders
-#include "shaders/CCGLProgram.h"
-#include "shaders/ccGLStateCache.h"
-#include "shaders/CCShaderCache.h"
-#include "shaders/ccShaders.h"
-
-// sprite_nodes
-#include "sprite_nodes/CCAnimation.h"
-#include "sprite_nodes/CCAnimationCache.h"
-#include "sprite_nodes/CCSprite.h"
-#include "sprite_nodes/CCSpriteBatchNode.h"
-#include "sprite_nodes/CCSpriteFrame.h"
-#include "sprite_nodes/CCSpriteFrameCache.h"
-
-// support
-#include "support/ccUTF8.h"
-#include "support/CCNotificationCenter.h"
-#include "support/CCPointExtension.h"
-#include "support/CCProfiling.h"
-#include "support/user_default/CCUserDefault.h"
-#include "support/CCVertex.h"
-#include "support/tinyxml2/tinyxml2.h"
-#include "support/zip_support/ZipUtils.h"
-
-// text_input_node
-#include "text_input_node/CCIMEDelegate.h"
-#include "text_input_node/CCIMEDispatcher.h"
-#include "text_input_node/CCTextFieldTTF.h"
-
-// textures
-#include "textures/CCTexture2D.h"
-#include "textures/CCTextureAtlas.h"
-#include "textures/CCTextureCache.h"
-#include "textures/CCTexturePVR.h"
-
-// tilemap_parallax_nodes
-#include "tilemap_parallax_nodes/CCParallaxNode.h"
-#include "tilemap_parallax_nodes/CCTMXLayer.h"
-#include "tilemap_parallax_nodes/CCTMXObjectGroup.h"
-#include "tilemap_parallax_nodes/CCTMXTiledMap.h"
-#include "tilemap_parallax_nodes/CCTMXXMLParser.h"
-#include "tilemap_parallax_nodes/CCTileMapAtlas.h"
-
-// touch_dispatcher
-#include "touch_dispatcher/CCTouch.h"
-#include "touch_dispatcher/CCTouchDelegateProtocol.h"
-#include "touch_dispatcher/CCTouchDispatcher.h"
-#include "touch_dispatcher/CCTouchHandler.h"
-
-// root
-#include "CCCamera.h"
-#include "CCConfiguration.h"
-#include "CCDirector.h"
-#include "CCScheduler.h"
-
-// component
-#include "support/component/CCComponent.h"
-#include "support/component/CCComponentContainer.h"
-
-//robtop
-#include "robtop/keyboard_dispatcher/CCKeyboardDelegate.h"
-#include "robtop/keyboard_dispatcher/CCKeyboardDispatcher.h"
-
-#include "robtop/mouse_dispatcher/CCMouseDelegate.h"
-#include "robtop/mouse_dispatcher/CCMouseDispatcher.h"
-
-#include "robtop/content/CCContentManager.h"
-
-#include "robtop/scene_nodes/CCSceneTransitionDelegate.h"
-
-#include "robtop/xml/DS_Dictionary.h"
-
-// #include "robtop/glfw/glfw3.h"
-
-NS_CC_BEGIN
-
-CC_DLL const char* cocos2dVersion();
-
-NS_CC_END
-
-#endif // __COCOS2D_H__
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCAccelerometer.h b/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCAccelerometer.h
deleted file mode 100644
index ba336140..00000000
--- a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCAccelerometer.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/****************************************************************************
-Copyright (c) 2010 cocos2d-x.org
-Copyright (c) Microsoft Open Technologies, Inc.
-
-http://www.cocos2d-x.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-****************************************************************************/
-
-#ifndef __PLATFORM_WINRT_UIACCELEROMETER_H__
-#define __PLATFORM_WINRT_UIACCELEROMETER_H__
-
-#include "platform/CCAccelerometerDelegate.h"
-
-NS_CC_BEGIN
-
-class CC_DLL CCAccelerometer
-{
-    GEODE_FRIEND_MODIFY
-public:
-    CCAccelerometer();
-    ~CCAccelerometer();
-
-    void setDelegate(CCAccelerometerDelegate* pDelegate);
-    void setAccelerometerInterval(float interval);
-private:
-    CCAcceleration m_obAccelerationValue;
-    CCAccelerometerDelegate* m_pAccelDelegate;
-	Windows::Devices::Sensors::Accelerometer^ m_accelerometer;
-};
-
-NS_CC_END
-
-#endif
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCApplication.h b/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCApplication.h
deleted file mode 100644
index 79b64f9f..00000000
--- a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCApplication.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
-Copyright (c) 2010-2013 cocos2d-x.org
-Copyright (c) Microsoft Open Technologies, Inc.
-
-http://www.cocos2d-x.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-****************************************************************************/
-#ifndef __CC_APPLICATION_WINRT_H__
-#define __CC_APPLICATION_WINRT_H__
-
-#include "CCStdC.h"
-#include "platform/CCCommon.h"
-#include "platform/CCApplicationProtocol.h"
-#include <string>
-
-NS_CC_BEGIN
-
-class CCRect;
-
-class CC_DLL CCApplication : public CCApplicationProtocol
-{
-    GEODE_FRIEND_MODIFY
-public:
-    CCApplication();
-    virtual ~CCApplication();
-
-    /**
-    @brief    Run the message loop.
-    */
-    int run();
-
-    /**
-    @brief    Get current applicaiton instance.
-    @return Current application instance pointer.
-    */
-    static CCApplication* sharedApplication();
-
-    GEODE_ADD(
-        static CCApplication* get();
-    );
-
-    /* override functions */
-    virtual void setAnimationInterval(double interval);
-    virtual ccLanguageType getCurrentLanguage();
-    
-    /**
-     @brief Get target platform
-     */
-    virtual TargetPlatform getTargetPlatform();
-
-    /**
-     *  Sets the Resource root path.
-     *  @deprecated Please use CCFileUtils::sharedFileUtils()->setSearchPaths() instead.
-     */
-    CC_DEPRECATED_ATTRIBUTE void setResourceRootPath(const gd::string& rootResDir);
-
-    /** 
-     *  Gets the Resource root path.
-     *  @deprecated Please use CCFileUtils::sharedFileUtils()->getSearchPaths() instead. 
-     */
-    CC_DEPRECATED_ATTRIBUTE const gd::string& getResourceRootPath(void);
-
-    void setStartupScriptFilename(const gd::string& startupScriptFile);
-
-    const gd::string& getStartupScriptFilename(void)
-    {
-        return m_startupScriptFilename;
-    }
-
-protected:
-    LARGE_INTEGER       m_nAnimationInterval;
-    gd::string         m_resourceRootPath;
-    gd::string         m_startupScriptFilename;
-
-    static CCApplication * sm_pSharedApplication;
-};
-
-NS_CC_END
-
-#endif    // __CC_APPLICATION_WINRT_H__
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCEGLView.h b/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCEGLView.h
deleted file mode 100644
index fa8f38c6..00000000
--- a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCEGLView.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/****************************************************************************
-Copyright (c) 2010 cocos2d-x.org
-Copyright (c) Microsoft Open Technologies, Inc.
-
-http://www.cocos2d-x.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-****************************************************************************/
-
-#ifndef __CC_EGLVIEW_WINRT_H__
-#define __CC_EGLVIEW_WINRT_H__
-
-#include "CCStdC.h"
-#include "platform/CCCommon.h"
-#include "cocoa/CCGeometry.h"
-#include "platform/CCEGLViewProtocol.h"
-#include <agile.h>
-
-#include <wrl/client.h>
-
-#include <agile.h>
-#include <DirectXMath.h>
-
-#include "esUtil.h"
-
-NS_CC_BEGIN
-
-class CCEGL;
-class CCEGLView;
-
-ref class WinRTWindow sealed
-{
-
-public:
-   WinRTWindow(Windows::UI::Core::CoreWindow^ window);
-
-	void Initialize(Windows::UI::Core::CoreWindow^ window, Windows::UI::Xaml::Controls::SwapChainBackgroundPanel^ panel);
-	void setIMEKeyboardState(bool bOpen);
-    void swapBuffers();
-
-
-private:
-	CCPoint GetCCPoint(Windows::UI::Core::PointerEventArgs^ args);
-
-	void OnTextKeyDown(Object^ sender, Windows::UI::Xaml::Input::KeyRoutedEventArgs^ e); 
-	void OnTextKeyUp(Object^ sender, Windows::UI::Xaml::Input::KeyRoutedEventArgs^ e); 
-
-	void OnPointerWheelChanged(Windows::UI::Core::CoreWindow^, Windows::UI::Core::PointerEventArgs^ args);
-	void OnPointerMoved(Windows::UI::Core::CoreWindow^, Windows::UI::Core::PointerEventArgs^ args);
-	void OnPointerPressed(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::PointerEventArgs^ args);
-	void OnPointerReleased(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::PointerEventArgs^ args);
-	void OnWindowSizeChanged(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::WindowSizeChangedEventArgs^ args);
-	void OnLogicalDpiChanged(Platform::Object^ sender);
-	void OnOrientationChanged(Platform::Object^ sender);
-	void OnDisplayContentsInvalidated(Platform::Object^ sender);
-    void OnRendering(Platform::Object^ sender, Platform::Object^ args);
-    void OnSuspending();
-    void ResizeWindow();
-    
-
-	void ShowKeyboard(Windows::UI::ViewManagement::InputPane^ inputPane, Windows::UI::ViewManagement::InputPaneVisibilityEventArgs^ args);
-	void HideKeyboard(Windows::UI::ViewManagement::InputPane^ inputPane, Windows::UI::ViewManagement::InputPaneVisibilityEventArgs^ args);
-
-	Platform::Agile<Windows::UI::Core::CoreWindow> m_window;
-
-	Windows::Foundation::Point m_lastPoint;
-	Windows::Foundation::EventRegistrationToken m_eventToken;
-	bool m_lastPointValid;
-	bool m_textInputEnabled;
-	Microsoft::WRL::ComPtr<IWinrtEglWindow> m_eglWindow;
-	ESContext m_esContext;
-	Windows::UI::Xaml::Controls::TextBox^ m_textBox;
-	Windows::UI::Xaml::Controls::Button^ m_dummy;
-	friend CCEGLView;
-};
-
-class CC_DLL CCEGLView : public CCEGLViewProtocol
-{
-    GEODE_FRIEND_MODIFY
-public:
-    CCEGLView();
-    virtual ~CCEGLView();
-
-    /* override functions */
-    virtual bool isOpenGLReady();
-    virtual void end();
-    virtual void swapBuffers();
-    virtual void setFrameSize(float width, float height);
-    virtual void setIMEKeyboardState(bool bOpen);
-	void ShowKeyboard(Windows::Foundation::Rect r);
-	void HideKeyboard(Windows::Foundation::Rect r);
-    virtual bool Create(Windows::UI::Core::CoreWindow^ window, Windows::UI::Xaml::Controls::SwapChainBackgroundPanel^ panel);
-	void UpdateForWindowSizeChange();
-	void OnRendering();
-    void OnSuspending();
-
-private:
-	Windows::Foundation::EventRegistrationToken m_eventToken;
-	Windows::Foundation::Point m_lastPoint;
-	bool m_lastPointValid;
-
-public:
-
-    // winrt platform functions
-	Windows::UI::Core::CoreWindow^ getWindow() { return m_window.Get(); };
-	
-	int Run();
-
-    void resize(int width, int height);
-    /* 
-     * Set zoom factor for frame. This method is for debugging big resolution (e.g.new ipad) app on desktop.
-     */
-    void setFrameZoomFactor(float fZoomFactor);
-	float getFrameZoomFactor();
-    void centerWindow();
-    void showCursor(bool state);
-    
-    // static function
-    /**
-    @brief    get the shared main open gl window
-    */
-	static CCEGLView* sharedOpenGLView();
-
-    GEODE_ADD(
-        static CCEGLView* get();
-    );
-
-protected:
-
-private:
-    Platform::Agile<Windows::UI::Core::CoreWindow> m_window;
-	bool m_running;
-	bool m_initialized;
-    bool m_bSupportTouch;
-    float m_fFrameZoomFactor;
-	WinRTWindow^ m_winRTWindow;
-	Windows::Foundation::Rect m_keyboardRect;
-};
-
-NS_CC_END
-
-#endif    // end of __CC_EGLVIEW_WINRT_H__
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCFileUtilsWinRT.h b/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCFileUtilsWinRT.h
deleted file mode 100644
index fa0de0a8..00000000
--- a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCFileUtilsWinRT.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
- Copyright (c) 2010 cocos2d-x.org
- Copyright (c) Microsoft Open Technologies, Inc.
-
- http://www.cocos2d-x.org
- 
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
- 
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
- 
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
- ****************************************************************************/
-#ifndef __CC_FILEUTILS_WINRT_H__
-#define __CC_FILEUTILS_WINRT_H__
-
-#include "platform/CCFileUtils.h"
-#include "platform/CCPlatformMacros.h"
-#include "ccTypes.h"
-#include "ccTypeInfo.h"
-#include <string>
-#include <vector>
-
-NS_CC_BEGIN
-
-/**
- * @addtogroup platform
- * @{
- */
-
-//! @brief  Helper class to handle file operations
-class CC_DLL CCFileUtilsWinRT : public CCFileUtils
-{
-    GEODE_FRIEND_MODIFY
-    friend class CCFileUtils;
-    CCFileUtilsWinRT();
-public:
-    /* override funtions */
-    bool init();
-    virtual gd::string getWritablePath();
-    virtual bool isFileExist(const gd::string& strFilePath);
-    virtual bool isAbsolutePath(const gd::string& strPath);
-	
-	static gd::string getAppPath();
-
-};
-
-// end of platform group
-/// @}
-
-NS_CC_END
-
-#endif    // __CC_FILEUTILS_WINRT_H__
-
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCFreeTypeFont.h b/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCFreeTypeFont.h
deleted file mode 100644
index b78cff37..00000000
--- a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCFreeTypeFont.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/****************************************************************************
-Copyright (c) 2010 cocos2d-x.org
-Copyright (c) Microsoft Open Technologies, Inc.
-
-http://www.cocos2d-x.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-****************************************************************************/
-
-#ifndef __PLATFORM_WINRT_FREETYPE_H__
-#define __PLATFORM_WINRT_FREETYPE_H__
-
-#include "platform/CCCommon.h"
-#include "platform/CCImage.h"
-#include <string>
-#include <vector>
-#include <memory>
-
-#define generic GenericFromFreeTypeLibrary
-#define internal InternalFromFreeTypeLibrary
-#include <ft2build.h>
-#include <freetype/freetype.h>
-#include <freetype/ftglyph.h>
-#include <freetype/ftoutln.h>
-#include <freetype/fttrigon.h>
-#undef generic
-#undef internal
-
-NS_CC_BEGIN
-
-typedef struct TGlyph_
-{
-	FT_UInt    index;  // glyph index
-    FT_Vector  pos;    // glyph origin on the baseline
-	FT_Glyph   image;  // glyph image
-} TGlyph, *PGlyph;
-
-typedef struct FontBufferInfo
-{
-	unsigned char*  pBuffer;  
-	unsigned long  size;  
-} FontBufferInfo;
-
-typedef struct FTWordInfo
-{
-	gd::vector<TGlyph> glyphs; // glyphs for the word
-	FT_BBox             bbox;   // bounding box containing all of the glyphs in the word
-} FTWordInfo;
-
-
-typedef struct FTLineInfo
-{
-	gd::vector<TGlyph> glyphs;     // glyphs for the line text
-	FT_BBox             bbox;       // bounding box containing all of the glyphs in the line
-    unsigned int        width;      // width of the line     
-    FT_Vector           pen;        // current pen position
-} FTLineInfo;
-
-
-class CC_DLL CCFreeTypeFont
-{
-    GEODE_FRIEND_MODIFY
-public:
-    CCFreeTypeFont();
-    ~CCFreeTypeFont();
-
-	bool initWithString(
-        const char* pText, 
-        const char* pFontName,
-        int         nSize,
-        int         width,
-        int         height
-    );
-
-    unsigned char* getBitmap(
-        CCImage::ETextAlign eAlignMask,
-        int* outWidth, 
-        int* outHeight
-    );
-
-private:
-	unsigned char* loadFont(const char *pFontName, unsigned long *size);
-
-    unsigned char* CCFreeTypeFont::loadSystemFont(const char *pFontName, unsigned long *size);
-
-    FT_Error CCFreeTypeFont::initGlyphs(const char* text);
-    FT_Error CCFreeTypeFont::initWordGlyphs(gd::vector<TGlyph>& glyphs, const gd::string& text, FT_Vector& pen);
-
-	void compute_bbox(gd::vector<TGlyph>& glyphs, FT_BBox  *abbox);
-
-    void drawText(FTLineInfo* pInfo, unsigned char* pBuffer, FT_Vector *pen);
-
-    void draw_bitmap(unsigned char* pBuffer, FT_Bitmap*  bitmap,FT_Int x,FT_Int y);
-
-    void initWords(const char* text);
-
-    FT_Vector getPenForAlignment(FTLineInfo* pInfo, CCImage::ETextAlign eAlignMask, int lineNumber, int totalLines);
-
-    FT_Error addWord(const gd::string& word);
-    void newLine();
-    void endLine();
-
-    const gd::string m_space;
-
-	gd::string		m_text;
-	gd::string		m_fontName;
-	FT_Face			m_face;
-	gd::vector<FTLineInfo*> m_lines;
-
-    int             m_inWidth;      // requested width of text box
-    int             m_inHeight;     // requested height of text box
-    int             m_width;        // final bitMap width
-    int             m_height;       // final bitMap height
-    int             m_textWidth;    // width of text text after word wrapping and line breaks    
-    int             m_textHeight;   // height of text text after word wrapping and line breaks  
-    int             m_lineHeight;   // height of a line for the font size
-    int             m_windowWidth;  // the width of the window
-
-    FTLineInfo*     m_currentLine;  // the current line object to add words to.
-};
-
-NS_CC_END
-
-#endif
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCGL.h b/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCGL.h
deleted file mode 100644
index 91f91495..00000000
--- a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCGL.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/****************************************************************************
-Copyright (c) 2010 cocos2d-x.org
-Copyright (c) Microsoft Open Technologies, Inc.
-
-http://www.cocos2d-x.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-****************************************************************************/
-
-#ifndef __CCGL_H__
-#define __CCGL_H__
-
-#include "CCGL_Angle.h"
-
-#endif // __CCGL_H__
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCGL_Angle.h b/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCGL_Angle.h
deleted file mode 100644
index 37b5b06f..00000000
--- a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCGL_Angle.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/****************************************************************************
-Copyright (c) 2010 cocos2d-x.org
-Copyright (c) Microsoft Open Technologies, Inc.
-
-http://www.cocos2d-x.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-****************************************************************************/
-
-#ifndef __CCGL_ANGLE_H__
-#define __CCGL_ANGLE_H__
-
-#include "../third_party/winrt/angleproject/include/GLES2/gl2.h"
-#include "../third_party/winrt/angleproject/include/GLES2/gl2ext.h"
-#include "../third_party/winrt/angleproject/src/common/winrtangle.h"
-
-#define GL_BGRA						GL_BGRA_EXT
-
-#define	glClearDepth				glClearDepthf
-#define glDeleteVertexArrays		glDeleteVertexArraysOES
-#define glGenVertexArrays			glGenVertexArraysOES
-#define glBindVertexArray			glBindVertexArrayOES
-#define glMapBuffer					glMapBufferOES
-#define glUnmapBuffer				glUnmapBufferOES
-
-#define GL_DEPTH24_STENCIL8			GL_DEPTH24_STENCIL8_OES
-#define GL_WRITE_ONLY				GL_WRITE_ONLY_OES
-
-#endif // __CCGL_ANGLE_H__
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCGL_gl2dx.h b/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCGL_gl2dx.h
deleted file mode 100644
index 7b5954a6..00000000
--- a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCGL_gl2dx.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-Copyright (c) 2010 cocos2d-x.org
-Copyright (c) Microsoft Open Technologies, Inc.
-
-http://www.cocos2d-x.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-****************************************************************************/
-
-#ifndef __CCGL_GL2DX_H__
-#define __CCGL_GL2DX_H__
-
-#include "gl2dx.h"
-
-#ifndef GLchar
-typedef char GLchar;
-#endif
-
-#define CC_GL_DEPTH24_STENCIL8		GL_DEPTH24_STENCIL8
-
-// These macros are only for making CCTexturePVR.cpp complied without errors since they are not included in GLEW.
-#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG                      0x8C00
-#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG                      0x8C01
-#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG                     0x8C02
-#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG                     0x8C03
-
-#endif // __CCGL_GL2DX_H__
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCPThreadWinRT.h b/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCPThreadWinRT.h
deleted file mode 100644
index 3b9ab1d7..00000000
--- a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCPThreadWinRT.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-Copyright (c) 2010 cocos2d-x.org
-Copyright (c) Microsoft Open Technologies, Inc.
-
-http://www.cocos2d-x.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-****************************************************************************/
-
-#ifndef __CCPTHREADWINRT_H__
-#define __CCPTHREADWINRT_H__
-
-#include "platform/CCPlatformMacros.h"
-
-#include <Windows.h>
-
-NS_CC_BEGIN
-
-typedef HANDLE pthread_t;
-typedef HANDLE pthread_mutex_t;
-typedef int pthread_cond_t;
-#define pthread_cond_wait(x, y)
-
-void pthread_mutex_init(pthread_mutex_t* m, void* attributes);
-
-int pthread_mutex_lock(pthread_mutex_t* m);
-
-int pthread_mutex_unlock(pthread_mutex_t* m);
-
-void pthread_mutex_destroy(pthread_mutex_t* m);
-
-#define pthread_cond_destroy(x)
-#define pthread_cond_signal(x)
-#define pthread_cond_init(x, y)
-
-
-
-
-NS_CC_END
-
-#endif // __CCPTHREADWINRT_H__
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCPlatformDefine.h b/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCPlatformDefine.h
deleted file mode 100644
index c98c1b73..00000000
--- a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCPlatformDefine.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
-Copyright (c) 2010-2013 cocos2d-x.org
-Copyright (c) Microsoft Open Technologies, Inc.
-
-http://www.cocos2d-x.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-****************************************************************************/
-#ifndef __CCPLATFORMDEFINE_H__
-#define __CCPLATFORMDEFINE_H__
-
-#if defined(_USRDLL)
-    #define CC_DLL     __declspec(dllexport)
-#else         /* use a DLL library */
-    #define CC_DLL		__declspec(dllimport)
-#endif
-
-#include <assert.h>
-
-#if CC_DISABLE_ASSERT > 0
-#define CC_ASSERT(cond)
-#else
-#define CC_ASSERT(cond)    assert(cond)
-#endif
-#define CC_UNUSED_PARAM(unusedparam) (void)unusedparam
-
-/* Define NULL pointer value */
-#ifndef NULL
-#ifdef __cplusplus
-#define NULL    0
-#else
-#define NULL    ((void *)0)
-#endif
-#endif
-
-
-
-#endif /* __CCPLATFORMDEFINE_H__*/
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCPrecompiledShaders.h b/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCPrecompiledShaders.h
deleted file mode 100644
index b49ccf3b..00000000
--- a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCPrecompiledShaders.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
-Copyright (c) 2010-2013 cocos2d-x.org
-Copyright (c) Microsoft Open Technologies, Inc.
-
-http://www.cocos2d-x.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-****************************************************************************/
-#ifndef __CC_PRECOMPILED_SHADERS_H__
-#define __CC_PRECOMPILED_SHADERS_H__
-
-#include "platform/CCCommon.h"
-#include "CCGL.h"
-
-#include <string>
-#include <vector>
-#include <map>
-
-NS_CC_BEGIN
-
-typedef struct _PrecompiledProgram
-{
-    const char* key;
-    const unsigned char* program;
-    int    length;
-} PrecompiledProgram;
-
-typedef struct _CompiledProgram
-{
-    gd::string key;
-    gd::vector<unsigned char> program;
-    int    length;
-} CompiledProgram;
-
-#if 0
-
-const unsigned char gKey[] = "hello";
-const unsigned char gProgram[] = "world";
-PrecompiledShader gFoo = {gKey, gProgram, 100};
-
-PrecompiledShader shaders[]  = {gFoo, gFoo};
-#endif
-
-class CC_DLL CCPrecompiledShaders
-{
-    GEODE_FRIEND_MODIFY
-public:
-    CCPrecompiledShaders();
-    virtual ~CCPrecompiledShaders();
-
-
-    /**
-    @brief    Get current precompiled shaders instance.
-    @return Current precompiled shaders instance pointer.
-    */
-    static CCPrecompiledShaders* sharedPrecompiledShaders();
-
-    gd::string addShaders(const GLchar* vShaderByteArray, const GLchar* fShaderByteArray);
-    bool addProgram(GLuint program, const gd::string& id);
-
-    bool loadProgram(GLuint program, const GLchar* vShaderByteArray, const GLchar* fShaderByteArray);
-
-
-#if (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT)
-    void savePrecompiledShaders();
-#endif
-
-protected:
-    void savePrecompiledPrograms(Windows::Storage::StorageFolder^ folder);
-    void loadPrecompiledPrograms();
-
-    void                Init();
-
-    gd::map<gd::string, CompiledProgram*> m_programs;
-    gd::map<gd::string, PrecompiledProgram*> m_precompiledPrograms;
-    
-    bool                m_isDirty;
-};
-
-NS_CC_END
-
-#endif    // __CC_PRECOMPILED_SHADERS_H__
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCStdC.h b/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCStdC.h
deleted file mode 100644
index 3f92ca8c..00000000
--- a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCStdC.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-Copyright (c) 2010 cocos2d-x.org
-Copyright (c) Microsoft Open Technologies, Inc.
-
-http://www.cocos2d-x.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-****************************************************************************/
-
-#ifndef __CC_STD_C_H__
-#define __CC_STD_C_H__
-
-#include "platform/CCPlatformMacros.h"
-#include <float.h>
-
-// for math.h on win32 platform
-
-#if !defined(_USE_MATH_DEFINES)
-    #define _USE_MATH_DEFINES       // make M_PI can be use
-#endif
-
-#if !defined(isnan)
-    #define isnan   _isnan
-#endif
-
-#ifndef snprintf
-#define snprintf _snprintf
-#endif
-
-#include <math.h>
-#include <string.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-
-// for MIN MAX and sys/time.h on win32 platform
-
-#define MIN     min
-#define MAX     max
-
-#if _MSC_VER >= 1600
-    #include <stdint.h>
-#else
-    #include "./compat/stdint.h"
-#endif
-
-#define _WINSOCKAPI_
-// Structure timeval has define in winsock.h, include windows.h for it.
-#if CC_TARGET_PLATFORM == CC_PLATFORM_WP8
-#include <WinSock2.h>
-#elif CC_TARGET_PLATFORM == CC_PLATFORM_WINRT
-#include <Windows.h>
-//#include <WinSock2.h>
-
-#undef timeval
-struct timeval
-{
-	long tv_sec;		// seconds
-	long tv_usec;    // microSeconds
-};
-#endif // CC_TARGET_PLATFORM == CC_PLATFORM_WP8
-
-struct timezone
-{
-    int tz_minuteswest;
-    int tz_dsttime;
-};
-
-int CC_DLL gettimeofday(struct timeval *, struct timezone *);
-
-#endif  // __CC_STD_C_H__
-
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCWinRTUtils.h b/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCWinRTUtils.h
deleted file mode 100644
index 8fa22312..00000000
--- a/loader/include/Geode/cocos/cocos2dx/platform/winrt/CCWinRTUtils.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
-Copyright (c) 2010 cocos2d-x.org
-Copyright (c) Microsoft Open Technologies, Inc.
-
-http://www.cocos2d-x.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-****************************************************************************/
-
-#ifndef __CCWINRT_UTILS_H__
-#define __CCWINRT_UTILS_H__
-
-#include "platform/CCPlatformMacros.h"
-#include "cocoa/CCDictionary.h"
-
-#include <wrl/client.h>
-#include <ppl.h>
-#include <ppltasks.h>
-
-#include <string>
-
-NS_CC_BEGIN
-
-
-
-std::wstring CC_DLL CCUtf8ToUnicode(const char * pszUtf8Str, unsigned len = -1);
-gd::string CC_DLL CCUnicodeToUtf8(const wchar_t* pwszStr);
-gd::string PlatformStringToString(Platform::String^ s);
-
-// Method to convert a length in device-independent pixels (DIPs) to a length in physical pixels.
-float ConvertDipsToPixels(float dips);
-float getScaledDPIValue(float v);
-
-Concurrency::task<Platform::Array<byte>^> ReadDataAsync(Platform::String^ path);
-
-
-NS_CC_END
-
-#endif // __CCWINRT_UTILS_H__
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/winrt/DirectXBase.h b/loader/include/Geode/cocos/cocos2dx/platform/winrt/DirectXBase.h
deleted file mode 100644
index eb37bfb8..00000000
--- a/loader/include/Geode/cocos/cocos2dx/platform/winrt/DirectXBase.h
+++ /dev/null
@@ -1,78 +0,0 @@
-//-----------------------------------------------------------------------------------------------
-// Copyright (c) 2012 Andrew Garrison
-//-----------------------------------------------------------------------------------------------
-// Permission is hereby granted, free of charge, to any person obtaining a copy of this software 
-// and associated documentation files (the "Software"), to deal in the Software without 
-// restriction, including without limitation the rights to use, copy, modify, merge, publish, 
-// distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in all copies or 
-// substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-// BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//-----------------------------------------------------------------------------------------------
-#pragma once
-
-#include <wrl/client.h>
-#include <d3d11_1.h>
-#include <d2d1_1.h>
-#include <d2d1effects.h>
-#include <dwrite_1.h>
-#include <wincodec.h>
-#include <agile.h>
-#include <DirectXMath.h>
-#include "DirectXHelper.h"
-
-#pragma warning (disable: 4449)
-using namespace Windows::UI::ViewManagement;
-
-// Helper class that initializes DirectX APIs
-ref class DirectXBase abstract
-{
-internal:
-   DirectXBase();
-
-public:
-   virtual void Initialize(Windows::UI::Core::CoreWindow^ window, Windows::UI::Xaml::Controls::SwapChainBackgroundPanel^ panel, float dpi);
-   virtual void CreateDeviceIndependentResources();
-   virtual void CreateDeviceResources();
-   virtual void SetDpi(float dpi);
-   virtual void CreateWindowSizeDependentResources();
-   virtual void UpdateForWindowSizeChange();
-   virtual void Present();
-   virtual float ConvertDipsToPixels(float dips);
-
-protected private:
-
-   Platform::Agile<Windows::UI::Core::CoreWindow>         m_window;
-   Windows::UI::Xaml::Controls::SwapChainBackgroundPanel^ m_panel;
-
-   // Direct2D Objects
-   Microsoft::WRL::ComPtr<ID2D1Factory1>                  m_d2dFactory;
-   Microsoft::WRL::ComPtr<ID2D1Device>                    m_d2dDevice;
-   Microsoft::WRL::ComPtr<ID2D1DeviceContext>             m_d2dContext;
-   Microsoft::WRL::ComPtr<ID2D1Bitmap1>                   m_d2dTargetBitmap;
-
-   // DirectWrite & Windows Imaging Component Objects
-   Microsoft::WRL::ComPtr<IDWriteFactory1>                m_dwriteFactory;
-   Microsoft::WRL::ComPtr<IWICImagingFactory2>            m_wicFactory;
-
-   // Direct3D Objects
-   Microsoft::WRL::ComPtr<ID3D11Device1>                  m_d3dDevice;
-   Microsoft::WRL::ComPtr<ID3D11DeviceContext1>           m_d3dContext;
-   Microsoft::WRL::ComPtr<IDXGISwapChain1>                m_swapChain;
-   Microsoft::WRL::ComPtr<ID3D11RenderTargetView>         m_renderTargetView;
-   Microsoft::WRL::ComPtr<ID3D11DepthStencilView>         m_depthStencilView;
-
-   D3D_FEATURE_LEVEL                                      m_featureLevel;
-   Windows::Foundation::Size                              m_renderTargetSize;
-   Windows::Foundation::Rect                              m_windowBounds;
-   float                                                  m_dpi;
-};
-
-#pragma warning (default: 4449)
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/winrt/DirectXHelper.h b/loader/include/Geode/cocos/cocos2dx/platform/winrt/DirectXHelper.h
deleted file mode 100644
index 2166d0c9..00000000
--- a/loader/include/Geode/cocos/cocos2dx/platform/winrt/DirectXHelper.h
+++ /dev/null
@@ -1,32 +0,0 @@
-//-----------------------------------------------------------------------------------------------
-// Copyright (c) 2012 Andrew Garrison
-//-----------------------------------------------------------------------------------------------
-// Permission is hereby granted, free of charge, to any person obtaining a copy of this software 
-// and associated documentation files (the "Software"), to deal in the Software without 
-// restriction, including without limitation the rights to use, copy, modify, merge, publish, 
-// distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in all copies or 
-// substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-// BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//-----------------------------------------------------------------------------------------------
-#pragma once
-
-// Helper utilities to make Win32 APIs work with exceptions.
-namespace DX
-{
-   inline void ThrowIfFailed(HRESULT hr)
-   {
-      if (FAILED(hr))
-      {
-         // Set a breakpoint on this line to catch Win32 API errors.
-         throw Platform::Exception::CreateException(hr);
-      }
-   }
-}
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/winrt/compat/stdint.h b/loader/include/Geode/cocos/cocos2dx/platform/winrt/compat/stdint.h
deleted file mode 100644
index c66fbb81..00000000
--- a/loader/include/Geode/cocos/cocos2dx/platform/winrt/compat/stdint.h
+++ /dev/null
@@ -1,247 +0,0 @@
-// ISO C9x  compliant stdint.h for Microsoft Visual Studio
-// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
-//
-//  Copyright (c) 2006-2008 Alexander Chemeris
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-//   1. Redistributions of source code must retain the above copyright notice,
-//      this list of conditions and the following disclaimer.
-//
-//   2. Redistributions in binary form must reproduce the above copyright
-//      notice, this list of conditions and the following disclaimer in the
-//      documentation and/or other materials provided with the distribution.
-//
-//   3. The name of the author may be used to endorse or promote products
-//      derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
-// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef _MSC_VER // [
-#error "Use this header only with Microsoft Visual C++ compilers!"
-#endif // _MSC_VER ]
-
-#ifndef _MSC_STDINT_H_ // [
-#define _MSC_STDINT_H_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif
-
-#include <limits.h>
-
-// For Visual Studio 6 in C++ mode and for many Visual Studio versions when
-// compiling for ARM we should wrap <wchar.h> include with 'extern "C++" {}'
-// or compiler give many errors like this:
-//   error C2733: second C linkage of overloaded function 'wmemchr' not allowed
-#ifdef __cplusplus
-extern "C" {
-#endif
-#  include <wchar.h>
-#ifdef __cplusplus
-}
-#endif
-
-// Define _W64 macros to mark types changing their size, like intptr_t.
-#ifndef _W64
-#  if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
-#     define _W64 __w64
-#  else
-#     define _W64
-#  endif
-#endif
-
-
-// 7.18.1 Integer types
-
-// 7.18.1.1 Exact-width integer types
-
-// Visual Studio 6 and Embedded Visual C++ 4 doesn't
-// realize that, e.g. char has the same size as __int8
-// so we give up on __intX for them.
-#if (_MSC_VER < 1300)
-   typedef signed char       int8_t;
-   typedef signed short      int16_t;
-   typedef signed int        int32_t;
-   typedef unsigned char     uint8_t;
-   typedef unsigned short    uint16_t;
-   typedef unsigned int      uint32_t;
-#else
-   typedef signed __int8     int8_t;
-   typedef signed __int16    int16_t;
-   typedef signed __int32    int32_t;
-   typedef unsigned __int8   uint8_t;
-   typedef unsigned __int16  uint16_t;
-   typedef unsigned __int32  uint32_t;
-#endif
-typedef signed __int64       int64_t;
-typedef unsigned __int64     uint64_t;
-
-
-// 7.18.1.2 Minimum-width integer types
-typedef int8_t    int_least8_t;
-typedef int16_t   int_least16_t;
-typedef int32_t   int_least32_t;
-typedef int64_t   int_least64_t;
-typedef uint8_t   uint_least8_t;
-typedef uint16_t  uint_least16_t;
-typedef uint32_t  uint_least32_t;
-typedef uint64_t  uint_least64_t;
-
-// 7.18.1.3 Fastest minimum-width integer types
-typedef int8_t    int_fast8_t;
-typedef int16_t   int_fast16_t;
-typedef int32_t   int_fast32_t;
-typedef int64_t   int_fast64_t;
-typedef uint8_t   uint_fast8_t;
-typedef uint16_t  uint_fast16_t;
-typedef uint32_t  uint_fast32_t;
-typedef uint64_t  uint_fast64_t;
-
-// 7.18.1.4 Integer types capable of holding object pointers
-#ifdef _WIN64 // [
-   typedef signed __int64    intptr_t;
-   typedef unsigned __int64  uintptr_t;
-#else // _WIN64 ][
-   typedef _W64 signed int   intptr_t;
-   typedef _W64 unsigned int uintptr_t;
-#endif // _WIN64 ]
-
-// 7.18.1.5 Greatest-width integer types
-typedef int64_t   intmax_t;
-typedef uint64_t  uintmax_t;
-
-
-// 7.18.2 Limits of specified-width integer types
-
-#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [   See footnote 220 at page 257 and footnote 221 at page 259
-
-// 7.18.2.1 Limits of exact-width integer types
-#define INT8_MIN     ((int8_t)_I8_MIN)
-#define INT8_MAX     _I8_MAX
-#define INT16_MIN    ((int16_t)_I16_MIN)
-#define INT16_MAX    _I16_MAX
-#define INT32_MIN    ((int32_t)_I32_MIN)
-#define INT32_MAX    _I32_MAX
-#define INT64_MIN    ((int64_t)_I64_MIN)
-#define INT64_MAX    _I64_MAX
-#define UINT8_MAX    _UI8_MAX
-#define UINT16_MAX   _UI16_MAX
-#define UINT32_MAX   _UI32_MAX
-#define UINT64_MAX   _UI64_MAX
-
-// 7.18.2.2 Limits of minimum-width integer types
-#define INT_LEAST8_MIN    INT8_MIN
-#define INT_LEAST8_MAX    INT8_MAX
-#define INT_LEAST16_MIN   INT16_MIN
-#define INT_LEAST16_MAX   INT16_MAX
-#define INT_LEAST32_MIN   INT32_MIN
-#define INT_LEAST32_MAX   INT32_MAX
-#define INT_LEAST64_MIN   INT64_MIN
-#define INT_LEAST64_MAX   INT64_MAX
-#define UINT_LEAST8_MAX   UINT8_MAX
-#define UINT_LEAST16_MAX  UINT16_MAX
-#define UINT_LEAST32_MAX  UINT32_MAX
-#define UINT_LEAST64_MAX  UINT64_MAX
-
-// 7.18.2.3 Limits of fastest minimum-width integer types
-#define INT_FAST8_MIN    INT8_MIN
-#define INT_FAST8_MAX    INT8_MAX
-#define INT_FAST16_MIN   INT16_MIN
-#define INT_FAST16_MAX   INT16_MAX
-#define INT_FAST32_MIN   INT32_MIN
-#define INT_FAST32_MAX   INT32_MAX
-#define INT_FAST64_MIN   INT64_MIN
-#define INT_FAST64_MAX   INT64_MAX
-#define UINT_FAST8_MAX   UINT8_MAX
-#define UINT_FAST16_MAX  UINT16_MAX
-#define UINT_FAST32_MAX  UINT32_MAX
-#define UINT_FAST64_MAX  UINT64_MAX
-
-// 7.18.2.4 Limits of integer types capable of holding object pointers
-#ifdef _WIN64 // [
-#  define INTPTR_MIN   INT64_MIN
-#  define INTPTR_MAX   INT64_MAX
-#  define UINTPTR_MAX  UINT64_MAX
-#else // _WIN64 ][
-#  define INTPTR_MIN   INT32_MIN
-#  define INTPTR_MAX   INT32_MAX
-#  define UINTPTR_MAX  UINT32_MAX
-#endif // _WIN64 ]
-
-// 7.18.2.5 Limits of greatest-width integer types
-#define INTMAX_MIN   INT64_MIN
-#define INTMAX_MAX   INT64_MAX
-#define UINTMAX_MAX  UINT64_MAX
-
-// 7.18.3 Limits of other integer types
-
-#ifdef _WIN64 // [
-#  define PTRDIFF_MIN  _I64_MIN
-#  define PTRDIFF_MAX  _I64_MAX
-#else  // _WIN64 ][
-#  define PTRDIFF_MIN  _I32_MIN
-#  define PTRDIFF_MAX  _I32_MAX
-#endif  // _WIN64 ]
-
-#define SIG_ATOMIC_MIN  INT_MIN
-#define SIG_ATOMIC_MAX  INT_MAX
-
-#ifndef SIZE_MAX // [
-#  ifdef _WIN64 // [
-#     define SIZE_MAX  _UI64_MAX
-#  else // _WIN64 ][
-#     define SIZE_MAX  _UI32_MAX
-#  endif // _WIN64 ]
-#endif // SIZE_MAX ]
-
-// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h>
-#ifndef WCHAR_MIN // [
-#  define WCHAR_MIN  0
-#endif  // WCHAR_MIN ]
-#ifndef WCHAR_MAX // [
-#  define WCHAR_MAX  _UI16_MAX
-#endif  // WCHAR_MAX ]
-
-#define WINT_MIN  0
-#define WINT_MAX  _UI16_MAX
-
-#endif // __STDC_LIMIT_MACROS ]
-
-
-// 7.18.4 Limits of other integer types
-
-#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [   See footnote 224 at page 260
-
-// 7.18.4.1 Macros for minimum-width integer constants
-
-#define INT8_C(val)  val##i8
-#define INT16_C(val) val##i16
-#define INT32_C(val) val##i32
-#define INT64_C(val) val##i64
-
-#define UINT8_C(val)  val##ui8
-#define UINT16_C(val) val##ui16
-#define UINT32_C(val) val##ui32
-#define UINT64_C(val) val##ui64
-
-// 7.18.4.2 Macros for greatest-width integer constants
-#define INTMAX_C   INT64_C
-#define UINTMAX_C  UINT64_C
-
-#endif // __STDC_CONSTANT_MACROS ]
-
-
-#endif // _MSC_STDINT_H_ ]
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/winrt/sha1.h b/loader/include/Geode/cocos/cocos2dx/platform/winrt/sha1.h
deleted file mode 100644
index 86e5e6f2..00000000
--- a/loader/include/Geode/cocos/cocos2dx/platform/winrt/sha1.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- *  sha1.h
- *  Copyright (C) The Internet Society (2001).  All Rights Reserved. 
- *  This document and translations of it may be copied and furnished to others, 
- *  and derivative works that comment on or otherwise explain it or assist in its 
- *  implementation may be prepared, copied, published and distributed, in whole or in part, 
- *  without restriction of any kind, provided that the above copyright notice and this paragraph 
- *  are included on all such copies and derivative works.  However, this document itself may not 
- *  be modified in any way, such as by removing the copyright notice or references to the Internet Society 
- *  or other Internet organizations, except as needed for the purpose of developing Internet standards in 
- *  which case the procedures for copyrights defined in the Internet Standards process must be followed, 
- *  or as required to translate it into languages other than English.
- *
- * The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.
- *
- * This document and the information contained herein is provided on an "AS IS" basis and 
- * THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, 
- * INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS 
- * OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- * 
- *
- *  Description:
- *      This is the header file for code which implements the Secure
- *      Hashing Algorithm 1 as defined in FIPS PUB 180-1 published
- *      April 17, 1995.
- *
- *      Many of the variable names in this code, especially the
- *      single character names, were used because those were the names
- *      used in the publication.
- *
- *      Please read the file sha1.c for more information.
- *
- */
-
-#ifndef _SHA1_H_
-#define _SHA1_H_
-
-#include <stdint.h>
-/*
- * If you do not have the ISO standard stdint.h header file, then you
- * must typdef the following:
- *    name              meaning
- *  uint32_t         unsigned 32 bit integer
- *  uint8_t          unsigned 8 bit integer (i.e., unsigned char)
- *  int_least16_t    integer of >= 16 bits
- *
- */
-
-#ifndef _SHA_enum_
-#define _SHA_enum_
-enum
-{
-    shaSuccess = 0,
-    shaNull,            /* Null pointer parameter */
-    shaInputTooLong,    /* input data too long */
-    shaStateError       /* called Input after Result */
-};
-#endif
-#define SHA1HashSize 20
-
-/*
- *  This structure will hold context information for the SHA-1
- *  hashing operation
- */
-typedef struct SHA1Context
-{
-    uint32_t Intermediate_Hash[SHA1HashSize/4]; /* Message Digest  */
-
-    uint32_t Length_Low;            /* Message length in bits      */
-    uint32_t Length_High;           /* Message length in bits      */
-
-                               /* Index into message block array   */
-    int_least16_t Message_Block_Index;
-    uint8_t Message_Block[64];      /* 512-bit message blocks      */
-
-    int Computed;               /* Is the digest computed?         */
-    int Corrupted;             /* Is the message digest corrupted? */
-} SHA1Context;
-
-/*
- *  Function Prototypes
- */
-
-int SHA1Reset(  SHA1Context *);
-int SHA1Input(  SHA1Context *,
-                const uint8_t *,
-                unsigned int);
-int SHA1Result( SHA1Context *,
-                uint8_t Message_Digest[SHA1HashSize]);
-void SHA1ConvertMessageToString(uint8_t *hash_binary, char* hash_string);
-
-
-#endif
\ No newline at end of file
diff --git a/loader/include/Geode/cocos/cocos2dx/draw_nodes/CCDrawNode.h b/loader/include/Geode/cocos/draw_nodes/CCDrawNode.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/draw_nodes/CCDrawNode.h
rename to loader/include/Geode/cocos/draw_nodes/CCDrawNode.h
index 8e1ec0ba..e6659267 100644
--- a/loader/include/Geode/cocos/cocos2dx/draw_nodes/CCDrawNode.h
+++ b/loader/include/Geode/cocos/draw_nodes/CCDrawNode.h
@@ -30,8 +30,8 @@
 #ifndef __CCDRAWNODES_CCDRAW_NODE_H__
 #define __CCDRAWNODES_CCDRAW_NODE_H__
 
-#include "base_nodes/CCNode.h"
-#include "ccTypes.h"
+#include "../base_nodes/CCNode.h"
+#include "../include/ccTypes.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/draw_nodes/CCDrawingPrimitives.h b/loader/include/Geode/cocos/draw_nodes/CCDrawingPrimitives.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/draw_nodes/CCDrawingPrimitives.h
rename to loader/include/Geode/cocos/draw_nodes/CCDrawingPrimitives.h
index cb667d35..d957df5e 100644
--- a/loader/include/Geode/cocos/cocos2dx/draw_nodes/CCDrawingPrimitives.h
+++ b/loader/include/Geode/cocos/draw_nodes/CCDrawingPrimitives.h
@@ -40,9 +40,9 @@ THE SOFTWARE.
 #define __CCDRAWING_PRIMITIVES__
     
 
-#include "ccTypes.h"
-#include "ccMacros.h"
-#include "cocoa/CCGeometry.h"    // for CCPoint
+#include "../include/ccTypes.h"
+#include "../include/ccMacros.h"
+#include "../cocoa/CCGeometry.h"    // for CCPoint
 
 /**
  @file
diff --git a/loader/include/Geode/cocos/cocos2dx/effects/CCGrabber.h b/loader/include/Geode/cocos/effects/CCGrabber.h
similarity index 95%
rename from loader/include/Geode/cocos/cocos2dx/effects/CCGrabber.h
rename to loader/include/Geode/cocos/effects/CCGrabber.h
index 9cd11ce5..320f4664 100644
--- a/loader/include/Geode/cocos/cocos2dx/effects/CCGrabber.h
+++ b/loader/include/Geode/cocos/effects/CCGrabber.h
@@ -25,9 +25,9 @@ THE SOFTWARE.
 #ifndef __EFFECTS_CCGRABBER_H__
 #define __EFFECTS_CCGRABBER_H__
 
-#include "CCConfiguration.h"
-#include "cocoa/CCObject.h"
-#include "CCGL.h"
+#include "../CCConfiguration.h"
+#include "../cocoa/CCObject.h"
+#include "../platform/CCGL.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/effects/CCGrid.h b/loader/include/Geode/cocos/effects/CCGrid.h
similarity index 95%
rename from loader/include/Geode/cocos/cocos2dx/effects/CCGrid.h
rename to loader/include/Geode/cocos/effects/CCGrid.h
index 1ac4f0b2..829ed407 100644
--- a/loader/include/Geode/cocos/cocos2dx/effects/CCGrid.h
+++ b/loader/include/Geode/cocos/effects/CCGrid.h
@@ -25,15 +25,15 @@ THE SOFTWARE.
 #ifndef __EFFECTS_CCGRID_H__
 #define __EFFECTS_CCGRID_H__
 
-#include "cocoa/CCObject.h"
-#include "base_nodes/CCNode.h"
-#include "CCCamera.h"
-#include "ccTypes.h"
-#include "textures/CCTexture2D.h"
-#include "CCDirector.h"
-#include "kazmath/mat4.h"
+#include "../cocoa/CCObject.h"
+#include "../base_nodes/CCNode.h"
+#include "../CCCamera.h"
+#include "../include/ccTypes.h"
+#include "../textures/CCTexture2D.h"
+#include "../CCDirector.h"
+#include "../kazmath/include/kazmath/mat4.h"
 #ifdef EMSCRIPTEN
-#include "base_nodes/CCGLBufferedNode.h"
+#include "../base_nodes/CCGLBufferedNode.h"
 #endif // EMSCRIPTEN
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/extensions/AssetsManager/AssetsManager.h b/loader/include/Geode/cocos/extensions/AssetsManager/AssetsManager.h
index c07f7106..6c1c2d13 100644
--- a/loader/include/Geode/cocos/extensions/AssetsManager/AssetsManager.h
+++ b/loader/include/Geode/cocos/extensions/AssetsManager/AssetsManager.h
@@ -26,13 +26,13 @@
 #ifndef __AssetsManager__
 #define __AssetsManager__
 
-#include "cocos2d.h"
-#include "ExtensionMacros.h"
+#include "../../include/cocos2d.h"
+#include "../ExtensionMacros.h"
 
 #if (CC_TARGET_PLATFORM != CC_PLATFORM_WINRT) && (CC_TARGET_PLATFORM != CC_PLATFORM_WP8)
 #include <string>
-#include <curl/curl.h>
-#include <pthread.h>
+#include "../../platform/IncludeCurl.h"
+#include "../../platform/IncludePThread.h"
 
 NS_CC_EXT_BEGIN
 
diff --git a/loader/include/Geode/cocos/extensions/GUI/CCControlExtension/CCControl.h b/loader/include/Geode/cocos/extensions/GUI/CCControlExtension/CCControl.h
index db8ba834..3ad32bc7 100644
--- a/loader/include/Geode/cocos/extensions/GUI/CCControlExtension/CCControl.h
+++ b/loader/include/Geode/cocos/extensions/GUI/CCControlExtension/CCControl.h
@@ -32,7 +32,7 @@
 
 #include "CCInvocation.h"
 #include "CCControlUtils.h"
-#include "cocos2d.h"
+#include "../../../include/cocos2d.h"
 
 NS_CC_EXT_BEGIN
 
diff --git a/loader/include/Geode/cocos/extensions/GUI/CCControlExtension/CCControlUtils.h b/loader/include/Geode/cocos/extensions/GUI/CCControlExtension/CCControlUtils.h
index 6bb2f131..4be5546f 100644
--- a/loader/include/Geode/cocos/extensions/GUI/CCControlExtension/CCControlUtils.h
+++ b/loader/include/Geode/cocos/extensions/GUI/CCControlExtension/CCControlUtils.h
@@ -34,7 +34,7 @@
 #ifndef __CCCONTROL_UTILS_H__
 #define __CCCONTROL_UTILS_H__
 
-#include "sprite_nodes/CCSprite.h"
+#include "../../../sprite_nodes/CCSprite.h"
 #include "../../ExtensionMacros.h"
 
 NS_CC_EXT_BEGIN
diff --git a/loader/include/Geode/cocos/extensions/GUI/CCControlExtension/CCInvocation.h b/loader/include/Geode/cocos/extensions/GUI/CCControlExtension/CCInvocation.h
index ce69f3e6..37e3bbe8 100644
--- a/loader/include/Geode/cocos/extensions/GUI/CCControlExtension/CCInvocation.h
+++ b/loader/include/Geode/cocos/extensions/GUI/CCControlExtension/CCInvocation.h
@@ -30,7 +30,7 @@
 #ifndef __CCINVOCATION_H__
 #define __CCINVOCATION_H__
 
-#include "cocoa/CCObject.h"
+#include "../../../cocoa/CCObject.h"
 #include "../../ExtensionMacros.h"
 
 NS_CC_EXT_BEGIN
diff --git a/loader/include/Geode/cocos/extensions/GUI/CCControlExtension/CCScale9Sprite.h b/loader/include/Geode/cocos/extensions/GUI/CCControlExtension/CCScale9Sprite.h
index 50c49660..d3176597 100644
--- a/loader/include/Geode/cocos/extensions/GUI/CCControlExtension/CCScale9Sprite.h
+++ b/loader/include/Geode/cocos/extensions/GUI/CCControlExtension/CCScale9Sprite.h
@@ -28,7 +28,7 @@ THE SOFTWARE.
 #ifndef __CCScale9Sprite_H__
 #define __CCScale9Sprite_H__
 
-#include "cocos2d.h"
+#include "../../../include/cocos2d.h"
 #include "../../ExtensionMacros.h"
 
 NS_CC_EXT_BEGIN
diff --git a/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBox.h b/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBox.h
index 5a36c272..81e36e9f 100644
--- a/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBox.h
+++ b/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBox.h
@@ -26,8 +26,8 @@
 #ifndef __CCEDITTEXT_H__
 #define __CCEDITTEXT_H__
 
-#include "cocos2d.h"
-#include "ExtensionMacros.h"
+#include "../../../include/cocos2d.h"
+#include "../../ExtensionMacros.h"
 #include "../CCControlExtension/CCControlExtensions.h"
 
 NS_CC_EXT_BEGIN
diff --git a/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImpl.h b/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImpl.h
index 5866077d..f9f692d5 100644
--- a/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImpl.h
+++ b/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImpl.h
@@ -26,8 +26,8 @@
 #ifndef __CCEditBoxIMPL_H__
 #define __CCEditBoxIMPL_H__
 
-#include "cocos2d.h"
-#include "ExtensionMacros.h"
+#include "../../../include/cocos2d.h"
+#include "../../ExtensionMacros.h"
 #include "CCEditBox.h"
 
 NS_CC_EXT_BEGIN
diff --git a/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplAndroid.h b/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplAndroid.h
index d9cfc56f..f42243eb 100644
--- a/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplAndroid.h
+++ b/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplAndroid.h
@@ -26,11 +26,11 @@
 #ifndef __CCEDITBOXIMPLANDROID_H__
 #define __CCEDITBOXIMPLANDROID_H__
 
-#include "cocos2d.h"
+#include "../../../include/cocos2d.h"
 
 #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
 
-#include "ExtensionMacros.h"
+#include "../../ExtensionMacros.h"
 #include "CCEditBoxImpl.h"
 
 NS_CC_EXT_BEGIN
diff --git a/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplIOS.h b/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplIOS.h
index d8ab84cf..01317818 100644
--- a/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplIOS.h
+++ b/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplIOS.h
@@ -26,11 +26,11 @@
 #ifndef __CCEditBoxIMPLIOS_H__
 #define __CCEditBoxIMPLIOS_H__
 
-#include "cocos2d.h"
+#include "../../../include/cocos2d.h"
 
 #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
 
-#include "ExtensionMacros.h"
+#include "../../ExtensionMacros.h"
 #include "CCEditBoxImpl.h"
 
 #import <Foundation/Foundation.h>
diff --git a/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplMac.h b/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplMac.h
index 628252df..1b436991 100644
--- a/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplMac.h
+++ b/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplMac.h
@@ -26,14 +26,14 @@
 #ifndef __CCEditBoxIMPLMAC_H__
 #define __CCEditBoxIMPLMAC_H__
 
-#include "cocos2d.h"
+#include "../../../include/cocos2d.h"
 
 #if (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
 
 #import <Foundation/Foundation.h>
 #import <AppKit/AppKit.h>
 
-#include "ExtensionMacros.h"
+#include "../../ExtensionMacros.h"
 #include "CCEditBoxImpl.h"
 
 @interface CustomNSTextField : NSTextField
diff --git a/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplTizen.h b/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplTizen.h
index ce237a6c..b4ea90b9 100644
--- a/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplTizen.h
+++ b/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplTizen.h
@@ -27,11 +27,11 @@
 #ifndef __CCEDITBOXIMPLTIZEN_H__
 #define __CCEDITBOXIMPLTIZEN_H__
 
-#include "cocos2d.h"
+#include "../../../include/cocos2d.h"
 
 #if (CC_TARGET_PLATFORM == CC_PLATFORM_TIZEN)
 
-#include "ExtensionMacros.h"
+#include "../../ExtensionMacros.h"
 #include "CCEditBoxImpl.h"
 
 NS_CC_EXT_BEGIN
diff --git a/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplWin.h b/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplWin.h
index 50d60474..7eb7ca14 100644
--- a/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplWin.h
+++ b/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplWin.h
@@ -26,11 +26,11 @@
 #ifndef __CCEditBoxIMPLWIN_H__
 #define __CCEditBoxIMPLWIN_H__
 
-#include "cocos2d.h"
+#include "../../../include/cocos2d.h"
 
 #if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
 
-#include "ExtensionMacros.h"
+#include "../../ExtensionMacros.h"
 #include "CCEditBoxImpl.h"
 
 NS_CC_EXT_BEGIN
diff --git a/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplWp8.h b/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplWp8.h
index 1c0a3289..b9bc595c 100644
--- a/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplWp8.h
+++ b/loader/include/Geode/cocos/extensions/GUI/CCEditBox/CCEditBoxImplWp8.h
@@ -24,7 +24,7 @@ THE SOFTWARE.
 #ifndef __CCEditBoxIMPLWP8_H__
 #define __CCEditBoxIMPLWP8_H__
 
-#include "ExtensionMacros.h"
+#include "../../ExtensionMacros.h"
 #include "CCEditBoxImpl.h"
 
 NS_CC_EXT_BEGIN
diff --git a/loader/include/Geode/cocos/extensions/GUI/CCScrollView/CCScrollView.h b/loader/include/Geode/cocos/extensions/GUI/CCScrollView/CCScrollView.h
index 0989a3fa..3e5bfeef 100644
--- a/loader/include/Geode/cocos/extensions/GUI/CCScrollView/CCScrollView.h
+++ b/loader/include/Geode/cocos/extensions/GUI/CCScrollView/CCScrollView.h
@@ -26,8 +26,8 @@
 #ifndef __CCSCROLLVIEW_H__
 #define __CCSCROLLVIEW_H__
 
-#include "cocos2d.h"
-#include "ExtensionMacros.h"
+#include "../../../include/cocos2d.h"
+#include "../../ExtensionMacros.h"
 
 NS_CC_EXT_BEGIN
 
diff --git a/loader/include/Geode/cocos/extensions/GUI/CCScrollView/CCSorting.h b/loader/include/Geode/cocos/extensions/GUI/CCScrollView/CCSorting.h
index f6f29b22..e251f4dc 100644
--- a/loader/include/Geode/cocos/extensions/GUI/CCScrollView/CCSorting.h
+++ b/loader/include/Geode/cocos/extensions/GUI/CCScrollView/CCSorting.h
@@ -26,8 +26,8 @@
 #ifndef __CCSORTING_H__
 #define __CCSORTING_H__
 
-#include "cocoa/CCArray.h"
-#include "ExtensionMacros.h"
+#include "../../../cocoa/CCArray.h"
+#include "../../ExtensionMacros.h"
 
 NS_CC_EXT_BEGIN
 /**
diff --git a/loader/include/Geode/cocos/extensions/GUI/CCScrollView/CCTableViewCell.h b/loader/include/Geode/cocos/extensions/GUI/CCScrollView/CCTableViewCell.h
index f228eea9..2bc307b3 100644
--- a/loader/include/Geode/cocos/extensions/GUI/CCScrollView/CCTableViewCell.h
+++ b/loader/include/Geode/cocos/extensions/GUI/CCScrollView/CCTableViewCell.h
@@ -26,7 +26,7 @@
 #ifndef __CCTABLEVIEWCELL_H__
 #define __CCTABLEVIEWCELL_H__
 
-#include "base_nodes/CCNode.h"
+#include "../../../base_nodes/CCNode.h"
 #include "CCSorting.h"
 
 NS_CC_EXT_BEGIN
diff --git a/loader/include/Geode/cocos/extensions/cocos-ext.h b/loader/include/Geode/cocos/extensions/cocos-ext.h
index 4870d8c7..3a5e3ac9 100644
--- a/loader/include/Geode/cocos/extensions/cocos-ext.h
+++ b/loader/include/Geode/cocos/extensions/cocos-ext.h
@@ -2,7 +2,7 @@
 #define __COCOS2D_EXT_H__
 
 #include "ExtensionMacros.h"
-#include "ccMacros.h"
+#include "../include/ccMacros.h"
 
 #include "GUI/CCControlExtension/CCControlExtensions.h"
 #include "GUI/CCScrollView/CCScrollView.h"
diff --git a/loader/include/Geode/cocos/extensions/network/HttpClient.h b/loader/include/Geode/cocos/extensions/network/HttpClient.h
index d591bf29..e5e3607b 100644
--- a/loader/include/Geode/cocos/extensions/network/HttpClient.h
+++ b/loader/include/Geode/cocos/extensions/network/HttpClient.h
@@ -26,8 +26,8 @@
 #ifndef __CCHTTPREQUEST_H__
 #define __CCHTTPREQUEST_H__
 
-#include "cocos2d.h"
-#include "ExtensionMacros.h"
+#include "../../include/cocos2d.h"
+#include "../ExtensionMacros.h"
 
 #include "HttpRequest.h"
 #include "HttpResponse.h"
diff --git a/loader/include/Geode/cocos/extensions/network/HttpRequest.h b/loader/include/Geode/cocos/extensions/network/HttpRequest.h
index d8b986df..a8cebe53 100644
--- a/loader/include/Geode/cocos/extensions/network/HttpRequest.h
+++ b/loader/include/Geode/cocos/extensions/network/HttpRequest.h
@@ -25,8 +25,8 @@
 #ifndef __HTTP_REQUEST_H__
 #define __HTTP_REQUEST_H__
 
-#include "cocos2d.h"
-#include "ExtensionMacros.h"
+#include "../../include/cocos2d.h"
+#include "../ExtensionMacros.h"
 
 NS_CC_EXT_BEGIN
 
diff --git a/loader/include/Geode/cocos/extensions/network/HttpResponse.h b/loader/include/Geode/cocos/extensions/network/HttpResponse.h
index 7b8a1aff..30e0b5d7 100644
--- a/loader/include/Geode/cocos/extensions/network/HttpResponse.h
+++ b/loader/include/Geode/cocos/extensions/network/HttpResponse.h
@@ -25,8 +25,8 @@
 #ifndef __HTTP_RESPONSE__
 #define __HTTP_RESPONSE__
 
-#include "cocos2d.h"
-#include "ExtensionMacros.h"
+#include "../../include/cocos2d.h"
+#include "../ExtensionMacros.h"
 #include "HttpRequest.h"
 
 NS_CC_EXT_BEGIN
diff --git a/loader/include/Geode/cocos/extensions/network/WebSocket.h b/loader/include/Geode/cocos/extensions/network/WebSocket.h
index 06bdb0dd..7a63306b 100644
--- a/loader/include/Geode/cocos/extensions/network/WebSocket.h
+++ b/loader/include/Geode/cocos/extensions/network/WebSocket.h
@@ -30,9 +30,9 @@
 #ifndef __CC_WEBSOCKET_H__
 #define __CC_WEBSOCKET_H__
 
-#include "ExtensionMacros.h"
-#include "cocos2d.h"
-#include "libwebsockets.h"
+#include "../ExtensionMacros.h"
+#include "../../include/cocos2d.h"
+#include <libwebsockets.h>
 #include <list>
 
 NS_CC_EXT_BEGIN
diff --git a/loader/include/Geode/cocos/extensions/physics_nodes/CCPhysicsDebugNode.h b/loader/include/Geode/cocos/extensions/physics_nodes/CCPhysicsDebugNode.h
index c3c4078d..fb172218 100644
--- a/loader/include/Geode/cocos/extensions/physics_nodes/CCPhysicsDebugNode.h
+++ b/loader/include/Geode/cocos/extensions/physics_nodes/CCPhysicsDebugNode.h
@@ -23,8 +23,8 @@
 #ifndef __PHYSICSNODES_DEBUGNODE_H__
 #define __PHYSICSNODES_DEBUGNODE_H__
 
-#include "cocos2d.h"
-#include "ExtensionMacros.h"
+#include "../../include/cocos2d.h"
+#include "../ExtensionMacros.h"
 
 #if CC_ENABLE_CHIPMUNK_INTEGRATION
 
diff --git a/loader/include/Geode/cocos/extensions/physics_nodes/CCPhysicsSprite.h b/loader/include/Geode/cocos/extensions/physics_nodes/CCPhysicsSprite.h
index 1e57365f..918d59ee 100644
--- a/loader/include/Geode/cocos/extensions/physics_nodes/CCPhysicsSprite.h
+++ b/loader/include/Geode/cocos/extensions/physics_nodes/CCPhysicsSprite.h
@@ -22,8 +22,8 @@
 #ifndef __PHYSICSNODES_CCPHYSICSSPRITE_H__
 #define __PHYSICSNODES_CCPHYSICSSPRITE_H__
 
-#include "cocos2d.h"
-#include "ExtensionMacros.h"
+#include "../../include/cocos2d.h"
+#include "../ExtensionMacros.h"
 
 #if CC_ENABLE_CHIPMUNK_INTEGRATION
 #include "chipmunk.h"
diff --git a/loader/include/Geode/cocos/extensions/spine/AnimationState.h b/loader/include/Geode/cocos/extensions/spine/AnimationState.h
index 53622816..e48a5612 100644
--- a/loader/include/Geode/cocos/extensions/spine/AnimationState.h
+++ b/loader/include/Geode/cocos/extensions/spine/AnimationState.h
@@ -26,7 +26,7 @@
 #ifndef SPINE_ANIMATIONSTATE_H_
 #define SPINE_ANIMATIONSTATE_H_
 
-#include <spine/AnimationStateData.h>
+#include "AnimationStateData.h"
 
 namespace cocos2d { namespace extension {
 
diff --git a/loader/include/Geode/cocos/extensions/spine/AnimationStateData.h b/loader/include/Geode/cocos/extensions/spine/AnimationStateData.h
index ea45653e..23298de6 100644
--- a/loader/include/Geode/cocos/extensions/spine/AnimationStateData.h
+++ b/loader/include/Geode/cocos/extensions/spine/AnimationStateData.h
@@ -26,8 +26,8 @@
 #ifndef SPINE_ANIMATIONSTATEDATA_H_
 #define SPINE_ANIMATIONSTATEDATA_H_
 
-#include <spine/Animation.h>
-#include <spine/SkeletonData.h>
+#include "Animation.h"
+#include "SkeletonData.h"
 
 namespace cocos2d { namespace extension {
 
diff --git a/loader/include/Geode/cocos/extensions/spine/AtlasAttachmentLoader.h b/loader/include/Geode/cocos/extensions/spine/AtlasAttachmentLoader.h
index 20e90464..eac692d5 100644
--- a/loader/include/Geode/cocos/extensions/spine/AtlasAttachmentLoader.h
+++ b/loader/include/Geode/cocos/extensions/spine/AtlasAttachmentLoader.h
@@ -26,8 +26,8 @@
 #ifndef SPINE_ATLASATTACHMENTLOADER_H_
 #define SPINE_ATLASATTACHMENTLOADER_H_
 
-#include <spine/AttachmentLoader.h>
-#include <spine/Atlas.h>
+#include "AttachmentLoader.h"
+#include "Atlas.h"
 
 namespace cocos2d { namespace extension {
 
diff --git a/loader/include/Geode/cocos/extensions/spine/AttachmentLoader.h b/loader/include/Geode/cocos/extensions/spine/AttachmentLoader.h
index 5fd81f5e..6b7548bb 100644
--- a/loader/include/Geode/cocos/extensions/spine/AttachmentLoader.h
+++ b/loader/include/Geode/cocos/extensions/spine/AttachmentLoader.h
@@ -26,8 +26,8 @@
 #ifndef SPINE_ATTACHMENTLOADER_H_
 #define SPINE_ATTACHMENTLOADER_H_
 
-#include <spine/Attachment.h>
-#include <spine/Skin.h>
+#include "Attachment.h"
+#include "Skin.h"
 
 namespace cocos2d { namespace extension {
 
diff --git a/loader/include/Geode/cocos/extensions/spine/Bone.h b/loader/include/Geode/cocos/extensions/spine/Bone.h
index 3f4688a7..8787b05a 100644
--- a/loader/include/Geode/cocos/extensions/spine/Bone.h
+++ b/loader/include/Geode/cocos/extensions/spine/Bone.h
@@ -26,7 +26,7 @@
 #ifndef SPINE_BONE_H_
 #define SPINE_BONE_H_
 
-#include <spine/BoneData.h>
+#include "BoneData.h"
 
 namespace cocos2d { namespace extension {
 
diff --git a/loader/include/Geode/cocos/extensions/spine/CCSkeleton.h b/loader/include/Geode/cocos/extensions/spine/CCSkeleton.h
index 57537cae..8af7d0b8 100644
--- a/loader/include/Geode/cocos/extensions/spine/CCSkeleton.h
+++ b/loader/include/Geode/cocos/extensions/spine/CCSkeleton.h
@@ -26,8 +26,8 @@
 #ifndef SPINE_CCSKELETON_H_
 #define SPINE_CCSKELETON_H_
 
-#include <spine/spine.h>
-#include "cocos2d.h"
+#include "spine.h"
+#include "../../include/cocos2d.h"
 
 namespace cocos2d { namespace extension {
 
diff --git a/loader/include/Geode/cocos/extensions/spine/CCSkeletonAnimation.h b/loader/include/Geode/cocos/extensions/spine/CCSkeletonAnimation.h
index f9197c45..f933b1cb 100644
--- a/loader/include/Geode/cocos/extensions/spine/CCSkeletonAnimation.h
+++ b/loader/include/Geode/cocos/extensions/spine/CCSkeletonAnimation.h
@@ -26,9 +26,9 @@
 #ifndef SPINE_CCSKELETONANIMATION_H_
 #define SPINE_CCSKELETONANIMATION_H_
 
-#include <spine/spine.h>
-#include <spine/CCSkeleton.h>
-#include "cocos2d.h"
+#include "spine.h"
+#include "CCSkeleton.h"
+#include "../../include/cocos2d.h"
 
 namespace cocos2d { namespace extension {
 
diff --git a/loader/include/Geode/cocos/extensions/spine/RegionAttachment.h b/loader/include/Geode/cocos/extensions/spine/RegionAttachment.h
index 8374c812..28fc7d6a 100644
--- a/loader/include/Geode/cocos/extensions/spine/RegionAttachment.h
+++ b/loader/include/Geode/cocos/extensions/spine/RegionAttachment.h
@@ -26,9 +26,9 @@
 #ifndef SPINE_REGIONATTACHMENT_H_
 #define SPINE_REGIONATTACHMENT_H_
 
-#include <spine/Attachment.h>
-#include <spine/Atlas.h>
-#include <spine/Slot.h>
+#include "Attachment.h"
+#include "Atlas.h"
+#include "Slot.h"
 
 namespace cocos2d { namespace extension {
 
diff --git a/loader/include/Geode/cocos/extensions/spine/Skeleton.h b/loader/include/Geode/cocos/extensions/spine/Skeleton.h
index 54fa5aa0..b5c1348a 100644
--- a/loader/include/Geode/cocos/extensions/spine/Skeleton.h
+++ b/loader/include/Geode/cocos/extensions/spine/Skeleton.h
@@ -26,9 +26,9 @@
 #ifndef SPINE_SKELETON_H_
 #define SPINE_SKELETON_H_
 
-#include <spine/SkeletonData.h>
-#include <spine/Slot.h>
-#include <spine/Skin.h>
+#include "SkeletonData.h"
+#include "Slot.h"
+#include "Skin.h"
 
 namespace cocos2d { namespace extension {
 
diff --git a/loader/include/Geode/cocos/extensions/spine/SkeletonData.h b/loader/include/Geode/cocos/extensions/spine/SkeletonData.h
index b05bc457..f4a09d05 100644
--- a/loader/include/Geode/cocos/extensions/spine/SkeletonData.h
+++ b/loader/include/Geode/cocos/extensions/spine/SkeletonData.h
@@ -26,10 +26,10 @@
 #ifndef SPINE_SKELETONDATA_H_
 #define SPINE_SKELETONDATA_H_
 
-#include <spine/BoneData.h>
-#include <spine/SlotData.h>
-#include <spine/Skin.h>
-#include <spine/Animation.h>
+#include "BoneData.h"
+#include "SlotData.h"
+#include "Skin.h"
+#include "Animation.h"
 
 namespace cocos2d { namespace extension {
 
diff --git a/loader/include/Geode/cocos/extensions/spine/SkeletonJson.h b/loader/include/Geode/cocos/extensions/spine/SkeletonJson.h
index 1fd9b287..4586ec27 100644
--- a/loader/include/Geode/cocos/extensions/spine/SkeletonJson.h
+++ b/loader/include/Geode/cocos/extensions/spine/SkeletonJson.h
@@ -26,11 +26,11 @@
 #ifndef SPINE_SKELETONJSON_H_
 #define SPINE_SKELETONJSON_H_
 
-#include <spine/Attachment.h>
-#include <spine/AttachmentLoader.h>
-#include <spine/SkeletonData.h>
-#include <spine/Atlas.h>
-#include <spine/Animation.h>
+#include "Attachment.h"
+#include "AttachmentLoader.h"
+#include "SkeletonData.h"
+#include "Atlas.h"
+#include "Animation.h"
 
 namespace cocos2d { namespace extension {
 
diff --git a/loader/include/Geode/cocos/extensions/spine/Skin.h b/loader/include/Geode/cocos/extensions/spine/Skin.h
index f8d76a56..b4862e5d 100644
--- a/loader/include/Geode/cocos/extensions/spine/Skin.h
+++ b/loader/include/Geode/cocos/extensions/spine/Skin.h
@@ -26,7 +26,7 @@
 #ifndef SPINE_SKIN_H_
 #define SPINE_SKIN_H_
 
-#include <spine/Attachment.h>
+#include "Attachment.h"
 
 namespace cocos2d { namespace extension {
 
diff --git a/loader/include/Geode/cocos/extensions/spine/Slot.h b/loader/include/Geode/cocos/extensions/spine/Slot.h
index 47b2a7f0..4cc61154 100644
--- a/loader/include/Geode/cocos/extensions/spine/Slot.h
+++ b/loader/include/Geode/cocos/extensions/spine/Slot.h
@@ -26,9 +26,9 @@
 #ifndef SPINE_SLOT_H_
 #define SPINE_SLOT_H_
 
-#include <spine/Bone.h>
-#include <spine/Attachment.h>
-#include <spine/SlotData.h>
+#include "Bone.h"
+#include "Attachment.h"
+#include "SlotData.h"
 
 namespace cocos2d { namespace extension {
 
diff --git a/loader/include/Geode/cocos/extensions/spine/SlotData.h b/loader/include/Geode/cocos/extensions/spine/SlotData.h
index 660c3069..0771b746 100644
--- a/loader/include/Geode/cocos/extensions/spine/SlotData.h
+++ b/loader/include/Geode/cocos/extensions/spine/SlotData.h
@@ -26,7 +26,7 @@
 #ifndef SPINE_SLOTDATA_H_
 #define SPINE_SLOTDATA_H_
 
-#include <spine/BoneData.h>
+#include "BoneData.h"
 
 namespace cocos2d { namespace extension {
 
diff --git a/loader/include/Geode/cocos/extensions/spine/extension.h b/loader/include/Geode/cocos/extensions/spine/extension.h
index 37ae496e..491e6c71 100644
--- a/loader/include/Geode/cocos/extensions/spine/extension.h
+++ b/loader/include/Geode/cocos/extensions/spine/extension.h
@@ -82,11 +82,11 @@
 
 #include <stdlib.h>
 #include <string.h>
-#include <spine/Skeleton.h>
-#include <spine/RegionAttachment.h>
-#include <spine/Animation.h>
-#include <spine/Atlas.h>
-#include <spine/AttachmentLoader.h>
+#include "Skeleton.h"
+#include "RegionAttachment.h"
+#include "Animation.h"
+#include "Atlas.h"
+#include "AttachmentLoader.h"
 
 namespace cocos2d { namespace extension {
 
diff --git a/loader/include/Geode/cocos/extensions/spine/spine-cocos2dx.h b/loader/include/Geode/cocos/extensions/spine/spine-cocos2dx.h
index baa42de0..c4cc6221 100644
--- a/loader/include/Geode/cocos/extensions/spine/spine-cocos2dx.h
+++ b/loader/include/Geode/cocos/extensions/spine/spine-cocos2dx.h
@@ -26,10 +26,10 @@
 #ifndef SPINE_COCOS2DX_H_
 #define SPINE_COCOS2DX_H_
 
-#include <spine/spine.h>
-#include "cocos2d.h"
-#include <spine/CCSkeleton.h>
-#include <spine/CCSkeletonAnimation.h>
+#include "spine.h"
+#include "../../include/cocos2d.h"
+#include "CCSkeleton.h"
+#include "CCSkeletonAnimation.h"
 
 namespace cocos2d { namespace extension {
 
diff --git a/loader/include/Geode/cocos/extensions/spine/spine.h b/loader/include/Geode/cocos/extensions/spine/spine.h
index d312d910..d57454df 100644
--- a/loader/include/Geode/cocos/extensions/spine/spine.h
+++ b/loader/include/Geode/cocos/extensions/spine/spine.h
@@ -26,21 +26,21 @@
 #ifndef SPINE_SPINE_H_
 #define SPINE_SPINE_H_
 
-#include <spine/Animation.h>
-#include <spine/AnimationState.h>
-#include <spine/AnimationStateData.h>
-#include <spine/Atlas.h>
-#include <spine/AtlasAttachmentLoader.h>
-#include <spine/Attachment.h>
-#include <spine/AttachmentLoader.h>
-#include <spine/Bone.h>
-#include <spine/BoneData.h>
-#include <spine/RegionAttachment.h>
-#include <spine/Skeleton.h>
-#include <spine/SkeletonData.h>
-#include <spine/SkeletonJson.h>
-#include <spine/Skin.h>
-#include <spine/Slot.h>
-#include <spine/SlotData.h>
+#include "Animation.h"
+#include "AnimationState.h"
+#include "AnimationStateData.h"
+#include "Atlas.h"
+#include "AtlasAttachmentLoader.h"
+#include "Attachment.h"
+#include "AttachmentLoader.h"
+#include "Bone.h"
+#include "BoneData.h"
+#include "RegionAttachment.h"
+#include "Skeleton.h"
+#include "SkeletonData.h"
+#include "SkeletonJson.h"
+#include "Skin.h"
+#include "Slot.h"
+#include "SlotData.h"
 
 #endif /* SPINE_SPINE_H_ */
diff --git a/loader/include/Geode/cocos/cocos2dx/include/CCEventType.h b/loader/include/Geode/cocos/include/CCEventType.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/include/CCEventType.h
rename to loader/include/Geode/cocos/include/CCEventType.h
diff --git a/loader/include/Geode/cocos/cocos2dx/include/CCProtocols.h b/loader/include/Geode/cocos/include/CCProtocols.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/include/CCProtocols.h
rename to loader/include/Geode/cocos/include/CCProtocols.h
index 23c471a6..8c2d0ba6 100644
--- a/loader/include/Geode/cocos/cocos2dx/include/CCProtocols.h
+++ b/loader/include/Geode/cocos/include/CCProtocols.h
@@ -26,8 +26,8 @@ THE SOFTWARE.
 #ifndef __CCPROTOCOLS_H__
 #define __CCPROTOCOLS_H__
 
-#include "ccTypes.h"
-#include "textures/CCTexture2D.h"
+#include "../include/ccTypes.h"
+#include "../textures/CCTexture2D.h"
 #include <string>
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/include/ccConfig.h b/loader/include/Geode/cocos/include/ccConfig.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/include/ccConfig.h
rename to loader/include/Geode/cocos/include/ccConfig.h
index 5fc23653..c025eba3 100644
--- a/loader/include/Geode/cocos/cocos2dx/include/ccConfig.h
+++ b/loader/include/Geode/cocos/include/ccConfig.h
@@ -27,7 +27,7 @@ THE SOFTWARE.
 #ifndef __CCCONFIG_H__
 #define __CCCONFIG_H__
 
-#include "platform/CCPlatformConfig.h"
+#include "../platform/CCPlatformConfig.h"
 
 /**
  @file
diff --git a/loader/include/Geode/cocos/cocos2dx/include/ccMacros.h b/loader/include/Geode/cocos/include/ccMacros.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/include/ccMacros.h
rename to loader/include/Geode/cocos/include/ccMacros.h
index bce97f7e..db902501 100644
--- a/loader/include/Geode/cocos/cocos2dx/include/ccMacros.h
+++ b/loader/include/Geode/cocos/include/ccMacros.h
@@ -31,8 +31,8 @@ THE SOFTWARE.
 #define _USE_MATH_DEFINES
 #endif
 
-#include "platform/CCCommon.h"
-#include "CCStdC.h"
+#include "../platform/CCCommon.h"
+#include "../platform/CCStdC.h"
 
 #ifndef CCAssert
 #if COCOS2D_DEBUG > 0
diff --git a/loader/include/Geode/cocos/cocos2dx/include/ccTypeInfo.h b/loader/include/Geode/cocos/include/ccTypeInfo.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/include/ccTypeInfo.h
rename to loader/include/Geode/cocos/include/ccTypeInfo.h
index c7eeeddf..5231945d 100644
--- a/loader/include/Geode/cocos/cocos2dx/include/ccTypeInfo.h
+++ b/loader/include/Geode/cocos/include/ccTypeInfo.h
@@ -25,7 +25,7 @@ THE SOFTWARE.
 #ifndef cocos2dx_ccTypeInfo_h
 #define cocos2dx_ccTypeInfo_h
 
-#include "platform/CCPlatformMacros.h"
+#include "../platform/CCPlatformMacros.h"
 
 #include <typeinfo>
 #include <ctype.h>
diff --git a/loader/include/Geode/cocos/cocos2dx/include/ccTypes.h b/loader/include/Geode/cocos/include/ccTypes.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/include/ccTypes.h
rename to loader/include/Geode/cocos/include/ccTypes.h
index 1eda0103..4d41ad52 100644
--- a/loader/include/Geode/cocos/cocos2dx/include/ccTypes.h
+++ b/loader/include/Geode/cocos/include/ccTypes.h
@@ -29,8 +29,8 @@ THE SOFTWARE.
 
 #include <string>
 #include <Geode/c++stl/gdstdlib.hpp>
-#include "cocoa/CCGeometry.h"
-#include "CCGL.h"
+#include "../cocoa/CCGeometry.h"
+#include "../platform/CCGL.h"
 
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/include/cocos2d.h b/loader/include/Geode/cocos/include/cocos2d.h
new file mode 100644
index 00000000..b4303995
--- /dev/null
+++ b/loader/include/Geode/cocos/include/cocos2d.h
@@ -0,0 +1,336 @@
+/****************************************************************************
+Copyright (c) 2010-2012 cocos2d-x.org
+Copyright (c) 2008-2010 Ricardo Quesada
+Copyright (c) 2011      Zynga Inc.
+Copyright (c) Microsoft Open Technologies, Inc.
+
+http://www.cocos2d-x.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+****************************************************************************/
+
+#ifndef __COCOS2D_H__
+#define __COCOS2D_H__
+
+// 0x00 HI ME LO
+// 00   02 01 00
+#define COCOS2D_VERSION 0x00020100
+
+
+// Geode macros
+#include "../../DefaultInclude.hpp"
+
+//
+// all cocos2d include files
+//
+#include "ccConfig.h"
+
+// actions
+#include "../actions/CCAction.h"
+#include "../actions/CCActionInterval.h"
+#include "../actions/CCActionCamera.h"
+#include "../actions/CCActionManager.h"
+#include "../actions/CCActionEase.h"
+#include "../actions/CCActionPageTurn3D.h"
+#include "../actions/CCActionGrid.h"
+#include "../actions/CCActionProgressTimer.h"
+#include "../actions/CCActionGrid3D.h"
+#include "../actions/CCActionTiledGrid.h"
+#include "../actions/CCActionInstant.h"
+#include "../actions/CCActionTween.h"
+#include "../actions/CCActionCatmullRom.h"
+
+// base_nodes
+#include "../base_nodes/CCNode.h"
+#include "../base_nodes/CCAtlasNode.h"
+
+// cocoa
+#include "../cocoa/CCAffineTransform.h"
+#include "../cocoa/CCDictionary.h"
+#include "../cocoa/CCObject.h"
+#include "../cocoa/CCArray.h"
+#include "../cocoa/CCGeometry.h"
+#include "../cocoa/CCSet.h"
+#include "../cocoa/CCAutoreleasePool.h"
+#include "../cocoa/CCInteger.h"
+#include "../cocoa/CCFloat.h"
+#include "../cocoa/CCDouble.h"
+#include "../cocoa/CCBool.h"
+#include "../cocoa/CCString.h"
+#include "../cocoa/CCNS.h"
+#include "../cocoa/CCZone.h"
+
+// draw nodes
+#include "../draw_nodes/CCDrawingPrimitives.h"
+#include "../draw_nodes/CCDrawNode.h"
+
+// effects
+#include "../effects/CCGrabber.h"
+#include "../effects/CCGrid.h"
+
+// include
+#include "CCEventType.h"
+#include "../include/CCProtocols.h"
+#include "ccConfig.h"
+#include "../include/ccMacros.h"
+#include "../include/ccTypes.h"
+
+// kazmath
+#include "../kazmath/include/kazmath/kazmath.h"
+#include "../kazmath/include/kazmath/GL/matrix.h"
+
+// keypad_dispatcher
+#include "../keypad_dispatcher/CCKeypadDelegate.h"
+#include "../keypad_dispatcher/CCKeypadDispatcher.h"
+
+// label_nodes
+#include "../label_nodes/CCLabelAtlas.h"
+#include "../label_nodes/CCLabelTTF.h"
+#include "../label_nodes/CCLabelBMFont.h"
+
+// layers_scenes_transitions_nodes
+#include "../layers_scenes_transitions_nodes/CCLayer.h"
+#include "../layers_scenes_transitions_nodes/CCScene.h"
+#include "../layers_scenes_transitions_nodes/CCTransition.h"
+#include "../layers_scenes_transitions_nodes/CCTransitionPageTurn.h"
+#include "../layers_scenes_transitions_nodes/CCTransitionProgress.h"
+
+// menu_nodes
+#include "../menu_nodes/CCMenu.h"
+#include "../menu_nodes/CCMenuItem.h"
+
+// misc_nodes
+#include "../misc_nodes/CCClippingNode.h"
+#include "../misc_nodes/CCMotionStreak.h"
+#include "../misc_nodes/CCProgressTimer.h"
+#include "../misc_nodes/CCRenderTexture.h"
+
+// particle_nodes
+#include "../particle_nodes/CCParticleBatchNode.h"
+#include "../particle_nodes/CCParticleSystem.h"
+#include "../particle_nodes/CCParticleExamples.h"
+#include "../particle_nodes/CCParticleSystemQuad.h"
+
+// platform
+#include "../platform/CCDevice.h"
+#include "../platform/CCCommon.h"
+#include "../platform/CCFileUtils.h"
+#include "../platform/CCImage.h"
+#include "../platform/CCSAXParser.h"
+#include "../platform/CCThread.h"
+#include "../platform/platform.h"
+#include "../platform/CCPlatformConfig.h"
+#include "../platform/CCPlatformMacros.h"
+
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
+    #include "../platform/ios/CCAccelerometer.h"
+    #include "../platform/ios/CCApplication.h"
+    #include "../platform/ios/CCEGLView.h"
+    #include "../platform/ios/CCGL.h"
+    #include "../platform/ios/CCStdC.h"
+#endif // CC_TARGET_PLATFORM == CC_PLATFORM_IOS
+
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
+    #include "../platform/android/CCAccelerometer.h"
+    #include "../platform/android/CCApplication.h"
+    #include "../platform/android/CCEGLView.h"
+    #include "../platform/android/CCGL.h"
+    #include "../platform/android/CCStdC.h"
+#endif // CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID
+
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_BLACKBERRY)
+	#error "Unsupported platform with Geode!"
+    // #include "../platform/blackberry/CCAccelerometer.h"
+    // #include "../platform/blackberry/CCApplication.h"
+    // #include "../platform/blackberry/CCEGLView.h"
+    // #include "../platform/blackberry/CCGL.h"
+    // #include "../platform/blackberry/CCStdC.h"
+#endif // CC_TARGET_PLATFORM == CC_PLATFORM_BLACKBERRY
+
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
+	#include "../platform/win32/CCAccelerometer.h"
+	#include "../platform/win32/CCApplication.h"
+	#include "../platform/win32/CCEGLView.h"
+	#include "../platform/win32/CCGL.h"
+	#include "../platform/win32/CCStdC.h"
+#endif // CC_TARGET_PLATFORM == CC_PLATFORM_WIN32
+
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT)
+	#error "Unsupported platform with Geode!"
+	// #include "../platform/winrt/CCApplication.h"
+	// #include "../platform/winrt/CCEGLView.h"
+	// #include "../platform/winrt/CCGL.h"
+	// #include "../platform/winrt/CCStdC.h"
+	// #include "../platform/winrt/CCAccelerometer.h"
+	// #include "../platform/winrt/CCPrecompiledShaders.h"
+#endif // CC_TARGET_PLATFORM == CC_PLATFORM_WINRT
+
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_WP8)
+	#error "Unsupported platform with Geode!"
+	// #include "../platform/winrt/CCApplication.h"
+	// #include "../platform/wp8/CCEGLView.h"
+	// #include "../platform/winrt/CCGL.h"
+	// #include "../platform/winrt/CCStdC.h"
+	// #include "../platform/winrt/CCAccelerometer.h"
+	// #include "../platform/winrt/CCPrecompiledShaders.h"
+#endif // CC_TARGET_PLATFORM == CC_PLATFORM_WP8
+
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
+	#include "../platform/mac/CCAccelerometer.h"
+	#include "../platform/mac/CCApplication.h"
+	#include "../platform/mac/CCEGLView.h"
+	#include "../platform/mac/CCGL.h"
+	#include "../platform/mac/CCStdC.h"
+#endif // CC_TARGET_PLATFORM == CC_PLATFORM_MAC
+
+
+
+
+
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_LINUX)
+	#error "Unsupported platform with Geode!"
+	// #include "../platform/linux/CCAccelerometer.h"
+	// #include "../platform/linux/CCApplication.h"
+	// #include "../platform/linux/CCEGLView.h"
+	// #include "../platform/linux/CCGL.h"
+	// #include "../platform/linux/CCStdC.h"
+#endif // CC_TARGET_PLATFORM == CC_PLATFORM_LINUX
+
+// MARMALADE CHANGE
+// Added for Marmalade support
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_MARMALADE)
+	#error "Unsupported platform with Geode!"
+	// #include "../platform/Marmalade/CCAccelerometer.h"
+	// #include "../platform/Marmalade/CCApplication.h"
+	// #include "../platform/Marmalade/CCEGLView.h"
+	// #include "../platform/Marmalade/CCGL.h"
+	// #include "../platform/Marmalade/CCStdC.h"
+#endif // CC_TARGET_PLATFORM == CC_PLATFORM_LINUX
+
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_NACL)
+	#error "Unsupported platform with Geode!"
+    // #include "../platform/nacl/CCAccelerometer.h"
+    // #include "../platform/nacl/CCApplication.h"
+    // #include "../platform/nacl/CCEGLView.h"
+    // #include "../platform/nacl/CCGL.h"
+    // #include "../platform/nacl/CCStdC.h"
+#endif // CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID
+
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_EMSCRIPTEN)
+	#error "Unsupported platform with Geode!"
+    // #include "../platform/emscripten/CCAccelerometer.h"
+    // #include "../platform/emscripten/CCApplication.h"
+    // #include "../platform/emscripten/CCEGLView.h"
+    // #include "../platform/emscripten/CCGL.h"
+    // #include "../platform/emscripten/CCStdC.h"
+#endif // CC_TARGET_PLATFORM == CC_PLATFORM_EMSCRIPTEN
+
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_TIZEN)
+	#error "Unsupported platform with Geode!"
+    // #include "../platform/tizen/CCAccelerometer.h"
+    // #include "../platform/tizen/CCApplication.h"
+    // #include "../platform/tizen/CCEGLView.h"
+    // #include "../platform/tizen/CCGL.h"
+    // #include "../platform/tizen/CCStdC.h"
+#endif // CC_TARGET_PLATFORM == CC_PLATFORM_TIZEN
+
+// script_support
+#include "../script_support/CCScriptSupport.h"
+
+// shaders
+#include "../shaders/CCGLProgram.h"
+#include "../shaders/ccGLStateCache.h"
+#include "../shaders/CCShaderCache.h"
+#include "../shaders/ccShaders.h"
+
+// sprite_nodes
+#include "../sprite_nodes/CCAnimation.h"
+#include "../sprite_nodes/CCAnimationCache.h"
+#include "../sprite_nodes/CCSprite.h"
+#include "../sprite_nodes/CCSpriteBatchNode.h"
+#include "../sprite_nodes/CCSpriteFrame.h"
+#include "../sprite_nodes/CCSpriteFrameCache.h"
+
+// support
+#include "../support/ccUTF8.h"
+#include "../support/CCNotificationCenter.h"
+#include "../support/CCPointExtension.h"
+#include "../support/CCProfiling.h"
+#include "../support/user_default/CCUserDefault.h"
+#include "../support/CCVertex.h"
+#include "../support/tinyxml2/tinyxml2.h"
+#include "../support/zip_support/ZipUtils.h"
+
+// text_input_node
+#include "../text_input_node/CCIMEDelegate.h"
+#include "../text_input_node/CCIMEDispatcher.h"
+#include "../text_input_node/CCTextFieldTTF.h"
+
+// textures
+#include "../textures/CCTexture2D.h"
+#include "../textures/CCTextureAtlas.h"
+#include "../textures/CCTextureCache.h"
+#include "../textures/CCTexturePVR.h"
+
+// tilemap_parallax_nodes
+#include "../tilemap_parallax_nodes/CCParallaxNode.h"
+#include "../tilemap_parallax_nodes/CCTMXLayer.h"
+#include "../tilemap_parallax_nodes/CCTMXObjectGroup.h"
+#include "../tilemap_parallax_nodes/CCTMXTiledMap.h"
+#include "../tilemap_parallax_nodes/CCTMXXMLParser.h"
+#include "../tilemap_parallax_nodes/CCTileMapAtlas.h"
+
+// touch_dispatcher
+#include "../touch_dispatcher/CCTouch.h"
+#include "../touch_dispatcher/CCTouchDelegateProtocol.h"
+#include "../touch_dispatcher/CCTouchDispatcher.h"
+#include "../touch_dispatcher/CCTouchHandler.h"
+
+// root
+#include "../CCCamera.h"
+#include "../CCConfiguration.h"
+#include "../CCDirector.h"
+#include "../CCScheduler.h"
+
+// component
+#include "../support/component/CCComponent.h"
+#include "../support/component/CCComponentContainer.h"
+
+//robtop
+#include "../robtop/keyboard_dispatcher/CCKeyboardDelegate.h"
+#include "../robtop/keyboard_dispatcher/CCKeyboardDispatcher.h"
+
+#include "../robtop/mouse_dispatcher/CCMouseDelegate.h"
+#include "../robtop/mouse_dispatcher/CCMouseDispatcher.h"
+
+#include "../robtop/content/CCContentManager.h"
+
+#include "../robtop/scene_nodes/CCSceneTransitionDelegate.h"
+
+#include "../robtop/xml/DS_Dictionary.h"
+
+// #include "../robtop/glfw/glfw3.h"
+
+NS_CC_BEGIN
+
+CC_DLL const char* cocos2dVersion();
+
+NS_CC_END
+
+#endif // __COCOS2D_H__
diff --git a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/GL/mat4stack.h b/loader/include/Geode/cocos/kazmath/include/kazmath/GL/mat4stack.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/GL/mat4stack.h
rename to loader/include/Geode/cocos/kazmath/include/kazmath/GL/mat4stack.h
diff --git a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/GL/matrix.h b/loader/include/Geode/cocos/kazmath/include/kazmath/GL/matrix.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/GL/matrix.h
rename to loader/include/Geode/cocos/kazmath/include/kazmath/GL/matrix.h
index a1c95f8b..7d9b25c1 100644
--- a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/GL/matrix.h
+++ b/loader/include/Geode/cocos/kazmath/include/kazmath/GL/matrix.h
@@ -26,7 +26,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #ifndef KM_GL_MATRIX_H_INCLUDED
 #define KM_GL_MATRIX_H_INCLUDED
 
-#include "platform/CCPlatformMacros.h"
+#include "../../../../platform/CCPlatformMacros.h"
 
 #define KM_GL_MODELVIEW 0x1700
 #define KM_GL_PROJECTION 0x1701
diff --git a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/aabb.h b/loader/include/Geode/cocos/kazmath/include/kazmath/aabb.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/aabb.h
rename to loader/include/Geode/cocos/kazmath/include/kazmath/aabb.h
index 629889ce..89cc02d7 100644
--- a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/aabb.h
+++ b/loader/include/Geode/cocos/kazmath/include/kazmath/aabb.h
@@ -26,7 +26,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #ifndef KAZMATH_AABB_H_INCLUDED
 #define KAZMATH_AABB_H_INCLUDED
 
-#include "platform/CCPlatformMacros.h"
+#include "../../../platform/CCPlatformMacros.h"
 #include "vec3.h"
 #include "utility.h"
 
diff --git a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/kazmath.h b/loader/include/Geode/cocos/kazmath/include/kazmath/kazmath.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/kazmath.h
rename to loader/include/Geode/cocos/kazmath/include/kazmath/kazmath.h
diff --git a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/mat3.h b/loader/include/Geode/cocos/kazmath/include/kazmath/mat3.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/mat3.h
rename to loader/include/Geode/cocos/kazmath/include/kazmath/mat3.h
index 4d22dfb2..e850796b 100644
--- a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/mat3.h
+++ b/loader/include/Geode/cocos/kazmath/include/kazmath/mat3.h
@@ -27,7 +27,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #ifndef MAT3_H_INCLUDED
 #define MAT3_H_INCLUDED
 
-#include "platform/CCPlatformMacros.h"
+#include "../../../platform/CCPlatformMacros.h"
 #include "utility.h"
 
 struct kmVec3;
diff --git a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/mat4.h b/loader/include/Geode/cocos/kazmath/include/kazmath/mat4.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/mat4.h
rename to loader/include/Geode/cocos/kazmath/include/kazmath/mat4.h
index 241a0b9e..4cbf10b2 100644
--- a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/mat4.h
+++ b/loader/include/Geode/cocos/kazmath/include/kazmath/mat4.h
@@ -26,7 +26,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #ifndef MAT4_H_INCLUDED
 #define MAT4_H_INCLUDED
 
-#include "platform/CCPlatformMacros.h"
+#include "../../../platform/CCPlatformMacros.h"
 #include "utility.h"
 
 struct kmVec3;
diff --git a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/neon_matrix_impl.h b/loader/include/Geode/cocos/kazmath/include/kazmath/neon_matrix_impl.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/neon_matrix_impl.h
rename to loader/include/Geode/cocos/kazmath/include/kazmath/neon_matrix_impl.h
index aa85e6d2..0de47f47 100644
--- a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/neon_matrix_impl.h
+++ b/loader/include/Geode/cocos/kazmath/include/kazmath/neon_matrix_impl.h
@@ -28,7 +28,7 @@
 #if defined(__QNX__) || defined(ANDROID) || defined(I3D_ARCH_ARM) || defined(__native_client__) || defined(TIZEN) // MARMALADE CHANGE: Added for Marmalade support
 // blackberry and android don't have arm/arch.h but it defines __arm__
 #else
-#include "arm/arch.h"
+#include <arm/arch.h>
 #endif 
 #endif // __arm__
 
diff --git a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/plane.h b/loader/include/Geode/cocos/kazmath/include/kazmath/plane.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/plane.h
rename to loader/include/Geode/cocos/kazmath/include/kazmath/plane.h
index c4e4fe5b..33bc052d 100644
--- a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/plane.h
+++ b/loader/include/Geode/cocos/kazmath/include/kazmath/plane.h
@@ -33,7 +33,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #define KM_PLANE_NEAR 4
 #define KM_PLANE_FAR 5
 
-#include "platform/CCPlatformMacros.h"
+#include "../../../platform/CCPlatformMacros.h"
 #include "utility.h"
 
 struct kmVec3;
diff --git a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/quaternion.h b/loader/include/Geode/cocos/kazmath/include/kazmath/quaternion.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/quaternion.h
rename to loader/include/Geode/cocos/kazmath/include/kazmath/quaternion.h
index a3632f0f..2c222783 100644
--- a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/quaternion.h
+++ b/loader/include/Geode/cocos/kazmath/include/kazmath/quaternion.h
@@ -30,7 +30,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 extern "C" {
 #endif
 
-#include "platform/CCPlatformMacros.h"
+#include "../../../platform/CCPlatformMacros.h"
 #include "utility.h"
 
 struct kmMat4;
diff --git a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/ray2.h b/loader/include/Geode/cocos/kazmath/include/kazmath/ray2.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/ray2.h
rename to loader/include/Geode/cocos/kazmath/include/kazmath/ray2.h
index 6734a956..f2260be5 100644
--- a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/ray2.h
+++ b/loader/include/Geode/cocos/kazmath/include/kazmath/ray2.h
@@ -26,7 +26,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #ifndef RAY_2_H
 #define RAY_2_H
 
-#include "platform/CCPlatformMacros.h"
+#include "../../../platform/CCPlatformMacros.h"
 #include "utility.h"
 #include "vec2.h"
 
diff --git a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/utility.h b/loader/include/Geode/cocos/kazmath/include/kazmath/utility.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/utility.h
rename to loader/include/Geode/cocos/kazmath/include/kazmath/utility.h
index ed6bff68..0198f22b 100644
--- a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/utility.h
+++ b/loader/include/Geode/cocos/kazmath/include/kazmath/utility.h
@@ -26,7 +26,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #ifndef UTILITY_H_INCLUDED
 #define UTILITY_H_INCLUDED
 
-#include "platform/CCPlatformMacros.h"
+#include "../../../platform/CCPlatformMacros.h"
 #include <math.h>
 
 #ifndef kmScalar
diff --git a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/vec2.h b/loader/include/Geode/cocos/kazmath/include/kazmath/vec2.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/vec2.h
rename to loader/include/Geode/cocos/kazmath/include/kazmath/vec2.h
index 6c29d400..9bde4caa 100644
--- a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/vec2.h
+++ b/loader/include/Geode/cocos/kazmath/include/kazmath/vec2.h
@@ -26,7 +26,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #ifndef VEC2_H_INCLUDED
 #define VEC2_H_INCLUDED
 
-#include "platform/CCPlatformMacros.h"
+#include "../../../platform/CCPlatformMacros.h"
 
 struct kmMat3;
 
diff --git a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/vec3.h b/loader/include/Geode/cocos/kazmath/include/kazmath/vec3.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/vec3.h
rename to loader/include/Geode/cocos/kazmath/include/kazmath/vec3.h
index eb74d41b..905930ba 100644
--- a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/vec3.h
+++ b/loader/include/Geode/cocos/kazmath/include/kazmath/vec3.h
@@ -26,7 +26,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #ifndef VEC3_H_INCLUDED
 #define VEC3_H_INCLUDED
 
-#include "platform/CCPlatformMacros.h"
+#include "../../../platform/CCPlatformMacros.h"
 #include <assert.h>
 
 #ifndef kmScalar
diff --git a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/vec4.h b/loader/include/Geode/cocos/kazmath/include/kazmath/vec4.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/vec4.h
rename to loader/include/Geode/cocos/kazmath/include/kazmath/vec4.h
index 7956d2a7..efed1c18 100644
--- a/loader/include/Geode/cocos/cocos2dx/kazmath/include/kazmath/vec4.h
+++ b/loader/include/Geode/cocos/kazmath/include/kazmath/vec4.h
@@ -26,7 +26,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #ifndef VEC4_H_INCLUDED
 #define VEC4_H_INCLUDED
 
-#include "platform/CCPlatformMacros.h"
+#include "../../../platform/CCPlatformMacros.h"
 #include "utility.h"
 
 struct kmMat4;
diff --git a/loader/include/Geode/cocos/cocos2dx/keypad_dispatcher/CCKeypadDelegate.h b/loader/include/Geode/cocos/keypad_dispatcher/CCKeypadDelegate.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/keypad_dispatcher/CCKeypadDelegate.h
rename to loader/include/Geode/cocos/keypad_dispatcher/CCKeypadDelegate.h
index 9c44fd96..cf588eba 100644
--- a/loader/include/Geode/cocos/cocos2dx/keypad_dispatcher/CCKeypadDelegate.h
+++ b/loader/include/Geode/cocos/keypad_dispatcher/CCKeypadDelegate.h
@@ -26,7 +26,7 @@ THE SOFTWARE.
 #define __CCKEYPAD_DELEGATE_H__
 
 
-#include "cocoa/CCObject.h"
+#include "../cocoa/CCObject.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/keypad_dispatcher/CCKeypadDispatcher.h b/loader/include/Geode/cocos/keypad_dispatcher/CCKeypadDispatcher.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/keypad_dispatcher/CCKeypadDispatcher.h
rename to loader/include/Geode/cocos/keypad_dispatcher/CCKeypadDispatcher.h
index d2fe5706..935a5df0 100644
--- a/loader/include/Geode/cocos/cocos2dx/keypad_dispatcher/CCKeypadDispatcher.h
+++ b/loader/include/Geode/cocos/keypad_dispatcher/CCKeypadDispatcher.h
@@ -26,7 +26,7 @@ THE SOFTWARE.
 #define __CCKEYPAD_DISPATCHER_H__
 
 #include "CCKeypadDelegate.h"
-#include "cocoa/CCArray.h"
+#include "../cocoa/CCArray.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/label_nodes/CCLabelAtlas.h b/loader/include/Geode/cocos/label_nodes/CCLabelAtlas.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/label_nodes/CCLabelAtlas.h
rename to loader/include/Geode/cocos/label_nodes/CCLabelAtlas.h
index 503078bf..3cc36a54 100644
--- a/loader/include/Geode/cocos/cocos2dx/label_nodes/CCLabelAtlas.h
+++ b/loader/include/Geode/cocos/label_nodes/CCLabelAtlas.h
@@ -26,7 +26,7 @@ THE SOFTWARE.
 #ifndef __CCLABEL_ATLAS_H__
 #define __CCLABEL_ATLAS_H__
 
-#include "base_nodes/CCAtlasNode.h"
+#include "../base_nodes/CCAtlasNode.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/label_nodes/CCLabelBMFont.h b/loader/include/Geode/cocos/label_nodes/CCLabelBMFont.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/label_nodes/CCLabelBMFont.h
rename to loader/include/Geode/cocos/label_nodes/CCLabelBMFont.h
index be494e5a..d7a90866 100644
--- a/loader/include/Geode/cocos/cocos2dx/label_nodes/CCLabelBMFont.h
+++ b/loader/include/Geode/cocos/label_nodes/CCLabelBMFont.h
@@ -33,8 +33,8 @@ Use any of these editors to generate BMFonts:
 #ifndef __CCBITMAP_FONT_ATLAS_H__
 #define __CCBITMAP_FONT_ATLAS_H__
 
-#include "sprite_nodes/CCSpriteBatchNode.h"
-#include "support/data_support/uthash.h"
+#include "../sprite_nodes/CCSpriteBatchNode.h"
+#include "../support/data_support/uthash.h"
 #include <map>
 #include <sstream>
 #include <iostream>
diff --git a/loader/include/Geode/cocos/cocos2dx/label_nodes/CCLabelTTF.h b/loader/include/Geode/cocos/label_nodes/CCLabelTTF.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/label_nodes/CCLabelTTF.h
rename to loader/include/Geode/cocos/label_nodes/CCLabelTTF.h
index 7f2089b8..c366924a 100644
--- a/loader/include/Geode/cocos/cocos2dx/label_nodes/CCLabelTTF.h
+++ b/loader/include/Geode/cocos/label_nodes/CCLabelTTF.h
@@ -25,8 +25,8 @@ THE SOFTWARE.
 #ifndef __CCLABELTTF_H__
 #define __CCLABELTTF_H__
 
-#include "sprite_nodes/CCSprite.h"
-#include "textures/CCTexture2D.h"
+#include "../sprite_nodes/CCSprite.h"
+#include "../textures/CCTexture2D.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/layers_scenes_transitions_nodes/CCLayer.h b/loader/include/Geode/cocos/layers_scenes_transitions_nodes/CCLayer.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/layers_scenes_transitions_nodes/CCLayer.h
rename to loader/include/Geode/cocos/layers_scenes_transitions_nodes/CCLayer.h
index f15aa94c..512fdf6a 100644
--- a/loader/include/Geode/cocos/cocos2dx/layers_scenes_transitions_nodes/CCLayer.h
+++ b/loader/include/Geode/cocos/layers_scenes_transitions_nodes/CCLayer.h
@@ -27,20 +27,20 @@ THE SOFTWARE.
 #ifndef __CCLAYER_H__
 #define __CCLAYER_H__
 
-#include "base_nodes/CCNode.h"
-#include "CCProtocols.h"
-#include "touch_dispatcher/CCTouchDelegateProtocol.h"
-#include "platform/CCAccelerometerDelegate.h"
-#include "keypad_dispatcher/CCKeypadDelegate.h"
+#include "../base_nodes/CCNode.h"
+#include "../include/CCProtocols.h"
+#include "../touch_dispatcher/CCTouchDelegateProtocol.h"
+#include "../platform/CCAccelerometerDelegate.h"
+#include "../keypad_dispatcher/CCKeypadDelegate.h"
 
 #ifdef RT_ADD
-    #include "robtop/keyboard_dispatcher/CCKeyboardDelegate.h"
-    #include "robtop/mouse_dispatcher/CCMouseDelegate.h"
+    #include "../robtop/keyboard_dispatcher/CCKeyboardDelegate.h"
+    #include "../robtop/mouse_dispatcher/CCMouseDelegate.h"
 #endif
 
-#include "cocoa/CCArray.h"
+#include "../cocoa/CCArray.h"
 #ifdef EMSCRIPTEN
-#include "base_nodes/CCGLBufferedNode.h"
+#include "../base_nodes/CCGLBufferedNode.h"
 #endif // EMSCRIPTEN
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/layers_scenes_transitions_nodes/CCScene.h b/loader/include/Geode/cocos/layers_scenes_transitions_nodes/CCScene.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/layers_scenes_transitions_nodes/CCScene.h
rename to loader/include/Geode/cocos/layers_scenes_transitions_nodes/CCScene.h
index 35efe92e..3c327718 100644
--- a/loader/include/Geode/cocos/cocos2dx/layers_scenes_transitions_nodes/CCScene.h
+++ b/loader/include/Geode/cocos/layers_scenes_transitions_nodes/CCScene.h
@@ -27,7 +27,7 @@ THE SOFTWARE.
 #ifndef __CCSCENE_H__
 #define __CCSCENE_H__
 
-#include "base_nodes/CCNode.h"
+#include "../base_nodes/CCNode.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/layers_scenes_transitions_nodes/CCTransition.h b/loader/include/Geode/cocos/layers_scenes_transitions_nodes/CCTransition.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/layers_scenes_transitions_nodes/CCTransition.h
rename to loader/include/Geode/cocos/layers_scenes_transitions_nodes/CCTransition.h
index bb4f0c06..8ebcda4e 100644
--- a/loader/include/Geode/cocos/cocos2dx/layers_scenes_transitions_nodes/CCTransition.h
+++ b/loader/include/Geode/cocos/layers_scenes_transitions_nodes/CCTransition.h
@@ -28,7 +28,7 @@ THE SOFTWARE.
 #define __CCTRANSITION_H__
 
 #include "CCScene.h"
-#include "ccTypes.h"
+#include "../include/ccTypes.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/layers_scenes_transitions_nodes/CCTransitionPageTurn.h b/loader/include/Geode/cocos/layers_scenes_transitions_nodes/CCTransitionPageTurn.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/layers_scenes_transitions_nodes/CCTransitionPageTurn.h
rename to loader/include/Geode/cocos/layers_scenes_transitions_nodes/CCTransitionPageTurn.h
diff --git a/loader/include/Geode/cocos/cocos2dx/layers_scenes_transitions_nodes/CCTransitionProgress.h b/loader/include/Geode/cocos/layers_scenes_transitions_nodes/CCTransitionProgress.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/layers_scenes_transitions_nodes/CCTransitionProgress.h
rename to loader/include/Geode/cocos/layers_scenes_transitions_nodes/CCTransitionProgress.h
diff --git a/loader/include/Geode/cocos/cocos2dx/libcocos2d.lib b/loader/include/Geode/cocos/libcocos2d.lib
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/libcocos2d.lib
rename to loader/include/Geode/cocos/libcocos2d.lib
diff --git a/loader/include/Geode/cocos/cocos2dx/libcocos2dcpp.so b/loader/include/Geode/cocos/libcocos2dcpp.so
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/libcocos2dcpp.so
rename to loader/include/Geode/cocos/libcocos2dcpp.so
diff --git a/loader/include/Geode/cocos/cocos2dx/menu_nodes/CCMenu.h b/loader/include/Geode/cocos/menu_nodes/CCMenu.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/menu_nodes/CCMenu.h
rename to loader/include/Geode/cocos/menu_nodes/CCMenu.h
index 99f48ff6..dedd67f0 100644
--- a/loader/include/Geode/cocos/cocos2dx/menu_nodes/CCMenu.h
+++ b/loader/include/Geode/cocos/menu_nodes/CCMenu.h
@@ -26,7 +26,7 @@ THE SOFTWARE.
 #define __CCMENU_H_
 
 #include "CCMenuItem.h"
-#include "layers_scenes_transitions_nodes/CCLayer.h"
+#include "../layers_scenes_transitions_nodes/CCLayer.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/menu_nodes/CCMenuItem.h b/loader/include/Geode/cocos/menu_nodes/CCMenuItem.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/menu_nodes/CCMenuItem.h
rename to loader/include/Geode/cocos/menu_nodes/CCMenuItem.h
index a65f6a47..4a44c453 100644
--- a/loader/include/Geode/cocos/cocos2dx/menu_nodes/CCMenuItem.h
+++ b/loader/include/Geode/cocos/menu_nodes/CCMenuItem.h
@@ -27,9 +27,9 @@ THE SOFTWARE.
 #ifndef __CCMENU_ITEM_H__
 #define __CCMENU_ITEM_H__
 
-#include "base_nodes/CCNode.h"
-#include "CCProtocols.h"
-#include "cocoa/CCArray.h"
+#include "../base_nodes/CCNode.h"
+#include "../include/CCProtocols.h"
+#include "../cocoa/CCArray.h"
 
 NS_CC_BEGIN
     
diff --git a/loader/include/Geode/cocos/cocos2dx/misc_nodes/CCClippingNode.h b/loader/include/Geode/cocos/misc_nodes/CCClippingNode.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/misc_nodes/CCClippingNode.h
rename to loader/include/Geode/cocos/misc_nodes/CCClippingNode.h
index b30c7c63..1e9ca2f6 100644
--- a/loader/include/Geode/cocos/cocos2dx/misc_nodes/CCClippingNode.h
+++ b/loader/include/Geode/cocos/misc_nodes/CCClippingNode.h
@@ -28,8 +28,8 @@
 #ifndef __MISCNODE_CCCLIPPING_NODE_H__
 #define __MISCNODE_CCCLIPPING_NODE_H__
 
-#include "base_nodes/CCNode.h"
-#include "CCGL.h"
+#include "../base_nodes/CCNode.h"
+#include "../platform/CCGL.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/misc_nodes/CCMotionStreak.h b/loader/include/Geode/cocos/misc_nodes/CCMotionStreak.h
similarity index 96%
rename from loader/include/Geode/cocos/cocos2dx/misc_nodes/CCMotionStreak.h
rename to loader/include/Geode/cocos/misc_nodes/CCMotionStreak.h
index ec82e23b..73124444 100644
--- a/loader/include/Geode/cocos/cocos2dx/misc_nodes/CCMotionStreak.h
+++ b/loader/include/Geode/cocos/misc_nodes/CCMotionStreak.h
@@ -25,12 +25,12 @@ THE SOFTWARE.
 #ifndef __CCMOTION_STREAK_H__
 #define __CCMOTION_STREAK_H__
 
-#include "CCProtocols.h"
-#include "textures/CCTexture2D.h"
-#include "ccTypes.h"
-#include "base_nodes/CCNode.h"
+#include "../include/CCProtocols.h"
+#include "../textures/CCTexture2D.h"
+#include "../include/ccTypes.h"
+#include "../base_nodes/CCNode.h"
 #ifdef EMSCRIPTEN
-#include "base_nodes/CCGLBufferedNode.h"
+#include "../base_nodes/CCGLBufferedNode.h"
 #endif // EMSCRIPTEN
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/misc_nodes/CCProgressTimer.h b/loader/include/Geode/cocos/misc_nodes/CCProgressTimer.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/misc_nodes/CCProgressTimer.h
rename to loader/include/Geode/cocos/misc_nodes/CCProgressTimer.h
index 43672aca..d4a694e6 100644
--- a/loader/include/Geode/cocos/cocos2dx/misc_nodes/CCProgressTimer.h
+++ b/loader/include/Geode/cocos/misc_nodes/CCProgressTimer.h
@@ -25,9 +25,9 @@ THE SOFTWARE.
 #ifndef __MISC_NODE_CCPROGRESS_TIMER_H__
 #define __MISC_NODE_CCPROGRESS_TIMER_H__
 
-#include "sprite_nodes/CCSprite.h"
+#include "../sprite_nodes/CCSprite.h"
 #ifdef EMSCRIPTEN
-#include "base_nodes/CCGLBufferedNode.h"
+#include "../base_nodes/CCGLBufferedNode.h"
 #endif // EMSCRIPTEN
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/misc_nodes/CCRenderTexture.h b/loader/include/Geode/cocos/misc_nodes/CCRenderTexture.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/misc_nodes/CCRenderTexture.h
rename to loader/include/Geode/cocos/misc_nodes/CCRenderTexture.h
index d193b5e7..434e03c0 100644
--- a/loader/include/Geode/cocos/cocos2dx/misc_nodes/CCRenderTexture.h
+++ b/loader/include/Geode/cocos/misc_nodes/CCRenderTexture.h
@@ -25,9 +25,9 @@ THE SOFTWARE.
 #ifndef __CCRENDER_TEXTURE_H__
 #define __CCRENDER_TEXTURE_H__
 
-#include "base_nodes/CCNode.h"
-#include "sprite_nodes/CCSprite.h"
-#include "kazmath/mat4.h"
+#include "../base_nodes/CCNode.h"
+#include "../sprite_nodes/CCSprite.h"
+#include "../kazmath/include/kazmath/mat4.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/particle_nodes/CCParticleBatchNode.h b/loader/include/Geode/cocos/particle_nodes/CCParticleBatchNode.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/particle_nodes/CCParticleBatchNode.h
rename to loader/include/Geode/cocos/particle_nodes/CCParticleBatchNode.h
index 5186c0fa..46706b67 100644
--- a/loader/include/Geode/cocos/cocos2dx/particle_nodes/CCParticleBatchNode.h
+++ b/loader/include/Geode/cocos/particle_nodes/CCParticleBatchNode.h
@@ -29,8 +29,8 @@
 #ifndef __CCPARTICLEBATCHNODE_H__
 #define __CCPARTICLEBATCHNODE_H__
 
-#include "base_nodes/CCNode.h"
-#include "CCProtocols.h"
+#include "../base_nodes/CCNode.h"
+#include "../include/CCProtocols.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/particle_nodes/CCParticleExamples.h b/loader/include/Geode/cocos/particle_nodes/CCParticleExamples.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/particle_nodes/CCParticleExamples.h
rename to loader/include/Geode/cocos/particle_nodes/CCParticleExamples.h
diff --git a/loader/include/Geode/cocos/cocos2dx/particle_nodes/CCParticleSystem.h b/loader/include/Geode/cocos/particle_nodes/CCParticleSystem.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/particle_nodes/CCParticleSystem.h
rename to loader/include/Geode/cocos/particle_nodes/CCParticleSystem.h
index 88fb2638..61ba1d79 100644
--- a/loader/include/Geode/cocos/cocos2dx/particle_nodes/CCParticleSystem.h
+++ b/loader/include/Geode/cocos/particle_nodes/CCParticleSystem.h
@@ -26,10 +26,10 @@ THE SOFTWARE.
 #ifndef __CCPARTICLE_SYSTEM_H__
 #define __CCPARTICLE_SYSTEM_H__
 
-#include "CCProtocols.h"
-#include "base_nodes/CCNode.h"
-#include "cocoa/CCDictionary.h"
-#include "cocoa/CCString.h"
+#include "../include/CCProtocols.h"
+#include "../base_nodes/CCNode.h"
+#include "../cocoa/CCDictionary.h"
+#include "../cocoa/CCString.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/particle_nodes/CCParticleSystemQuad.h b/loader/include/Geode/cocos/particle_nodes/CCParticleSystemQuad.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/particle_nodes/CCParticleSystemQuad.h
rename to loader/include/Geode/cocos/particle_nodes/CCParticleSystemQuad.h
diff --git a/loader/include/Geode/cocos/cocos2dx/particle_nodes/firePngData.h b/loader/include/Geode/cocos/particle_nodes/firePngData.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/particle_nodes/firePngData.h
rename to loader/include/Geode/cocos/particle_nodes/firePngData.h
diff --git a/loader/include/Geode/cocos/platform/CCAccelerometer.h b/loader/include/Geode/cocos/platform/CCAccelerometer.h
new file mode 100644
index 00000000..3e9489ab
--- /dev/null
+++ b/loader/include/Geode/cocos/platform/CCAccelerometer.h
@@ -0,0 +1,16 @@
+
+#ifndef __CC_ACCELEROMETER_GENERIC_H__
+#define __CC_ACCELEROMETER_GENERIC_H__
+
+#include "CCPlatformConfig.h"
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
+    #include "win32/CCAccelerometer.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
+    #include "ios/CCAccelerometer.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
+    #include "android/CCAccelerometer.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
+    #include "mac/CCAccelerometer.h"
+#endif
+
+#endif
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/CCAccelerometerDelegate.h b/loader/include/Geode/cocos/platform/CCAccelerometerDelegate.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/CCAccelerometerDelegate.h
rename to loader/include/Geode/cocos/platform/CCAccelerometerDelegate.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/CCApplicationProtocol.h b/loader/include/Geode/cocos/platform/CCApplicationProtocol.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/CCApplicationProtocol.h
rename to loader/include/Geode/cocos/platform/CCApplicationProtocol.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/CCCommon.h b/loader/include/Geode/cocos/platform/CCCommon.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/CCCommon.h
rename to loader/include/Geode/cocos/platform/CCCommon.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/CCDevice.h b/loader/include/Geode/cocos/platform/CCDevice.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/CCDevice.h
rename to loader/include/Geode/cocos/platform/CCDevice.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/CCEGLViewProtocol.h b/loader/include/Geode/cocos/platform/CCEGLViewProtocol.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/platform/CCEGLViewProtocol.h
rename to loader/include/Geode/cocos/platform/CCEGLViewProtocol.h
index 38aff22e..095cb409 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/CCEGLViewProtocol.h
+++ b/loader/include/Geode/cocos/platform/CCEGLViewProtocol.h
@@ -1,7 +1,7 @@
 #ifndef __CCEGLVIEWPROTOCOL_H__
 #define __CCEGLVIEWPROTOCOL_H__
 
-#include "ccTypes.h"
+#include "../include/ccTypes.h"
 
 enum ResolutionPolicy
 {
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/CCFileUtils.h b/loader/include/Geode/cocos/platform/CCFileUtils.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/platform/CCFileUtils.h
rename to loader/include/Geode/cocos/platform/CCFileUtils.h
index 545e0f23..e2684c62 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/CCFileUtils.h
+++ b/loader/include/Geode/cocos/platform/CCFileUtils.h
@@ -28,8 +28,8 @@ THE SOFTWARE.
 #include <vector>
 #include <map>
 #include "CCPlatformMacros.h"
-#include "ccTypes.h"
-#include "ccTypeInfo.h"
+#include "../include/ccTypes.h"
+#include "../include/ccTypeInfo.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/platform/CCGL.h b/loader/include/Geode/cocos/platform/CCGL.h
new file mode 100644
index 00000000..9bb6f25a
--- /dev/null
+++ b/loader/include/Geode/cocos/platform/CCGL.h
@@ -0,0 +1,16 @@
+
+#ifndef __CC_GL_GENERIC_H__
+#define __CC_GL_GENERIC_H__
+
+#include "CCPlatformConfig.h"
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
+    #include "win32/CCGL.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
+    #include "ios/CCGL.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
+    #include "android/CCGL.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
+    #include "mac/CCGL.h"
+#endif
+
+#endif
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/CCImage.h b/loader/include/Geode/cocos/platform/CCImage.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/platform/CCImage.h
rename to loader/include/Geode/cocos/platform/CCImage.h
index d8135a22..131cfe1b 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/CCImage.h
+++ b/loader/include/Geode/cocos/platform/CCImage.h
@@ -25,7 +25,7 @@ THE SOFTWARE.
 #ifndef __CC_IMAGE_H__
 #define __CC_IMAGE_H__
 
-#include "cocoa/CCObject.h"
+#include "../cocoa/CCObject.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/CCImageCommon_cpp.h b/loader/include/Geode/cocos/platform/CCImageCommon_cpp.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/platform/CCImageCommon_cpp.h
rename to loader/include/Geode/cocos/platform/CCImageCommon_cpp.h
index fbe6e24f..a150a6ee 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/CCImageCommon_cpp.h
+++ b/loader/include/Geode/cocos/platform/CCImageCommon_cpp.h
@@ -31,16 +31,12 @@ THE SOFTWARE.
 #include "CCCommon.h"
 #include "CCStdC.h"
 #include "CCFileUtils.h"
-#include "png.h"
-#include "jpeglib.h"
-#include "tiffio.h"
-
-#if (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT) || (CC_TARGET_PLATFORM == CC_PLATFORM_WP8)
-#include "CCFreeTypeFont.h"
-#endif
+#include <png.h>
+#include "IncludeJpegLib.h"
+#include "IncludeTiffio.h"
 
 #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
-#include "platform/android/CCFileUtilsAndroid.h"
+#include "android/CCFileUtilsAndroid.h"
 #endif
 
 #include <string>
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/CCPlatformConfig.h b/loader/include/Geode/cocos/platform/CCPlatformConfig.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/CCPlatformConfig.h
rename to loader/include/Geode/cocos/platform/CCPlatformConfig.h
diff --git a/loader/include/Geode/cocos/platform/CCPlatformDefine.h b/loader/include/Geode/cocos/platform/CCPlatformDefine.h
new file mode 100644
index 00000000..05af5133
--- /dev/null
+++ b/loader/include/Geode/cocos/platform/CCPlatformDefine.h
@@ -0,0 +1,16 @@
+
+#ifndef __CC_PLATFORM_DEFINE_GENERIC_H__
+#define __CC_PLATFORM_DEFINE_GENERIC_H__
+
+#include "CCPlatformConfig.h"
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
+    #include "win32/CCPlatformDefine.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
+    #include "ios/CCPlatformDefine.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
+    #include "android/CCPlatformDefine.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
+    #include "mac/CCPlatformDefine.h"
+#endif
+
+#endif
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/CCPlatformMacros.h b/loader/include/Geode/cocos/platform/CCPlatformMacros.h
similarity index 96%
rename from loader/include/Geode/cocos/cocos2dx/platform/CCPlatformMacros.h
rename to loader/include/Geode/cocos/platform/CCPlatformMacros.h
index b66b4304..3c2cb642 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/CCPlatformMacros.h
+++ b/loader/include/Geode/cocos/platform/CCPlatformMacros.h
@@ -27,9 +27,17 @@
 /**
  * define some platform specific macros
  */
-#include "ccConfig.h"
+#include "../include/ccConfig.h"
 #include "CCPlatformConfig.h"
-#include "CCPlatformDefine.h"
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
+    #include "win32/CCPlatformDefine.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
+    #include "ios/CCPlatformDefine.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
+    #include "android/CCPlatformDefine.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
+    #include "mac/CCPlatformDefine.h"
+#endif
 
 /**
  * define a create function for a specific type, such as CCLayer
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/CCSAXParser.h b/loader/include/Geode/cocos/platform/CCSAXParser.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/CCSAXParser.h
rename to loader/include/Geode/cocos/platform/CCSAXParser.h
diff --git a/loader/include/Geode/cocos/platform/CCStdC.h b/loader/include/Geode/cocos/platform/CCStdC.h
new file mode 100644
index 00000000..e23980e4
--- /dev/null
+++ b/loader/include/Geode/cocos/platform/CCStdC.h
@@ -0,0 +1,16 @@
+
+#ifndef __CC_STD_C_GENERIC_H__
+#define __CC_STD_C_GENERIC_H__
+
+#include "CCPlatformConfig.h"
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
+    #include "win32/CCStdC.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
+    #include "ios/CCStdC.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
+    #include "android/CCStdC.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
+    #include "mac/CCStdC.h"
+#endif
+
+#endif
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/CCThread.h b/loader/include/Geode/cocos/platform/CCThread.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/CCThread.h
rename to loader/include/Geode/cocos/platform/CCThread.h
diff --git a/loader/include/Geode/cocos/platform/IncludeCurl.h b/loader/include/Geode/cocos/platform/IncludeCurl.h
new file mode 100644
index 00000000..5a0bd6fb
--- /dev/null
+++ b/loader/include/Geode/cocos/platform/IncludeCurl.h
@@ -0,0 +1,15 @@
+#pragma once
+
+#include "CCPlatformConfig.h"
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
+    #include "third_party/win32/curl/curl.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
+    // nothing?
+    #include "third_party/ios/curl/curl.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
+    #include "third_party/android/prebuilt/libcurl/include/curl/curl.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
+    // nothing?
+    #include <curl/curl.h>
+#endif
+
diff --git a/loader/include/Geode/cocos/platform/IncludeJpegLib.h b/loader/include/Geode/cocos/platform/IncludeJpegLib.h
new file mode 100644
index 00000000..2dd53996
--- /dev/null
+++ b/loader/include/Geode/cocos/platform/IncludeJpegLib.h
@@ -0,0 +1,15 @@
+#pragma once
+
+#include "CCPlatformConfig.h"
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
+    #include "third_party/win32/libjpeg/jpeglib.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
+    // nothing?
+    #include <jpeglib.h>
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
+    #include "third_party/android/prebuilt/libjpeg/include/jpeglib.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
+    // nothing?
+    #include <jpeglib.h>
+#endif
+
diff --git a/loader/include/Geode/cocos/platform/IncludePThread.h b/loader/include/Geode/cocos/platform/IncludePThread.h
new file mode 100644
index 00000000..b251a22d
--- /dev/null
+++ b/loader/include/Geode/cocos/platform/IncludePThread.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#include "CCPlatformConfig.h"
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
+    #include "third_party/win32/pthread/pthread.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
+    // nothing?
+    #include <pthread.h>
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
+    // nothing?
+    #include <pthread.h>
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
+    // nothing?
+    #include <pthread.h>
+#endif
+
diff --git a/loader/include/Geode/cocos/platform/IncludeTiffio.h b/loader/include/Geode/cocos/platform/IncludeTiffio.h
new file mode 100644
index 00000000..02aee4bf
--- /dev/null
+++ b/loader/include/Geode/cocos/platform/IncludeTiffio.h
@@ -0,0 +1,15 @@
+#pragma once
+
+#include "CCPlatformConfig.h"
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
+    #include "third_party/win32/libtiff/tiffio.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
+    // nothing?
+    #include <tiffio.h>
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
+    #include "third_party/android/prebuilt/libtiff/include/tiffio.h"
+#elif (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
+    // nothing?
+    #include <tiffio.h>
+#endif
+
diff --git a/loader/include/Geode/cocos/platform/IncludeZlib.h b/loader/include/Geode/cocos/platform/IncludeZlib.h
new file mode 100644
index 00000000..649315d5
--- /dev/null
+++ b/loader/include/Geode/cocos/platform/IncludeZlib.h
@@ -0,0 +1,9 @@
+#pragma once
+
+#include "CCPlatformConfig.h"
+#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
+    #include "third_party/win32/zlib/zlib.h"
+#else
+    #include <zlib.h>
+    // i don't know where other platform get zlib
+#endif
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/CCAccelerometer.cpp b/loader/include/Geode/cocos/platform/android/CCAccelerometer.cpp
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/CCAccelerometer.cpp
rename to loader/include/Geode/cocos/platform/android/CCAccelerometer.cpp
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/CCAccelerometer.h b/loader/include/Geode/cocos/platform/android/CCAccelerometer.h
similarity index 95%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/CCAccelerometer.h
rename to loader/include/Geode/cocos/platform/android/CCAccelerometer.h
index b5ceb87e..d3a69e12 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/android/CCAccelerometer.h
+++ b/loader/include/Geode/cocos/platform/android/CCAccelerometer.h
@@ -25,8 +25,8 @@ THE SOFTWARE.
 #ifndef __PLATFORM_ANDROID_CCACCELEROMETER_H__
 #define __PLATFORM_ANDROID_CCACCELEROMETER_H__
 
-#include "platform/CCCommon.h"
-#include "platform/CCAccelerometerDelegate.h"
+#include "../CCCommon.h"
+#include "../CCAccelerometerDelegate.h"
 
 namespace   cocos2d {
 
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/CCApplication.cpp b/loader/include/Geode/cocos/platform/android/CCApplication.cpp
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/CCApplication.cpp
rename to loader/include/Geode/cocos/platform/android/CCApplication.cpp
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/CCApplication.h b/loader/include/Geode/cocos/platform/android/CCApplication.h
similarity index 93%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/CCApplication.h
rename to loader/include/Geode/cocos/platform/android/CCApplication.h
index be51193d..9cd93d0a 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/android/CCApplication.h
+++ b/loader/include/Geode/cocos/platform/android/CCApplication.h
@@ -1,8 +1,8 @@
 #ifndef __CC_APPLICATION_ANDROID_H__
 #define __CC_APPLICATION_ANDROID_H__
 
-#include "platform/CCCommon.h"
-#include "platform/CCApplicationProtocol.h"
+#include "../CCCommon.h"
+#include "../CCApplicationProtocol.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/CCCommon.cpp b/loader/include/Geode/cocos/platform/android/CCCommon.cpp
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/CCCommon.cpp
rename to loader/include/Geode/cocos/platform/android/CCCommon.cpp
index e883b48d..e770d5a8 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/android/CCCommon.cpp
+++ b/loader/include/Geode/cocos/platform/android/CCCommon.cpp
@@ -22,7 +22,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 ****************************************************************************/
 
-#include "platform/CCCommon.h"
+#include "../platform/CCCommon.h"
 #include "jni/Java_org_cocos2dx_lib_Cocos2dxHelper.h"
 #include <android/log.h>
 #include <stdio.h>
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/CCDevice.cpp b/loader/include/Geode/cocos/platform/android/CCDevice.cpp
similarity index 84%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/CCDevice.cpp
rename to loader/include/Geode/cocos/platform/android/CCDevice.cpp
index 103f2cc6..088bd77f 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/android/CCDevice.cpp
+++ b/loader/include/Geode/cocos/platform/android/CCDevice.cpp
@@ -1,4 +1,4 @@
-#include "platform/CCDevice.h"
+#include "../platform/CCDevice.h"
 #include "jni/DPIJni.h"
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/CCEGLView.cpp b/loader/include/Geode/cocos/platform/android/CCEGLView.cpp
similarity index 94%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/CCEGLView.cpp
rename to loader/include/Geode/cocos/platform/android/CCEGLView.cpp
index 49a61a0d..3dfffc72 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/android/CCEGLView.cpp
+++ b/loader/include/Geode/cocos/platform/android/CCEGLView.cpp
@@ -22,13 +22,13 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 ****************************************************************************/
 #include "CCEGLView.h"
-#include "cocoa/CCSet.h"
+#include "../cocoa/CCSet.h"
 #include "CCDirector.h"
-#include "ccMacros.h"
-#include "touch_dispatcher/CCTouchDispatcher.h"
+#include "../include/ccMacros.h"
+#include "../touch_dispatcher/CCTouchDispatcher.h"
 #include "jni/IMEJni.h"
 #include "jni/Java_org_cocos2dx_lib_Cocos2dxHelper.h"
-#include "CCGL.h"
+#include "../platform/CCGL.h"
 
 #include <stdlib.h>
 #include <android/log.h>
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/CCEGLView.h b/loader/include/Geode/cocos/platform/android/CCEGLView.h
similarity index 96%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/CCEGLView.h
rename to loader/include/Geode/cocos/platform/android/CCEGLView.h
index 62be5ad1..54dbb24d 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/android/CCEGLView.h
+++ b/loader/include/Geode/cocos/platform/android/CCEGLView.h
@@ -25,8 +25,8 @@ THE SOFTWARE.
 #ifndef __CC_EGLVIEW_ANDROID_H__
 #define __CC_EGLVIEW_ANDROID_H__
 
-#include "cocoa/CCGeometry.h"
-#include "platform/CCEGLViewProtocol.h"
+#include "../../cocoa/CCGeometry.h"
+#include "../CCEGLViewProtocol.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/CCFileUtilsAndroid.cpp b/loader/include/Geode/cocos/platform/android/CCFileUtilsAndroid.cpp
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/CCFileUtilsAndroid.cpp
rename to loader/include/Geode/cocos/platform/android/CCFileUtilsAndroid.cpp
index 1f348612..8124b87c 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/android/CCFileUtilsAndroid.cpp
+++ b/loader/include/Geode/cocos/platform/android/CCFileUtilsAndroid.cpp
@@ -23,7 +23,7 @@ THE SOFTWARE.
 ****************************************************************************/
 #include "CCFileUtilsAndroid.h"
 #include "support/zip_support/ZipUtils.h"
-#include "platform/CCCommon.h"
+#include "../platform/CCCommon.h"
 #include "jni/Java_org_cocos2dx_lib_Cocos2dxHelper.h"
 
 using namespace std;
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/CCFileUtilsAndroid.h b/loader/include/Geode/cocos/platform/android/CCFileUtilsAndroid.h
similarity index 94%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/CCFileUtilsAndroid.h
rename to loader/include/Geode/cocos/platform/android/CCFileUtilsAndroid.h
index 9299867d..fc0321cc 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/android/CCFileUtilsAndroid.h
+++ b/loader/include/Geode/cocos/platform/android/CCFileUtilsAndroid.h
@@ -24,10 +24,10 @@
 #ifndef __CC_FILEUTILS_ANDROID_H__
 #define __CC_FILEUTILS_ANDROID_H__
 
-#include "platform/CCFileUtils.h"
-#include "platform/CCPlatformMacros.h"
-#include "ccTypes.h"
-#include "ccTypeInfo.h"
+#include "../CCFileUtils.h"
+#include "../CCPlatformMacros.h"
+#include "../../include/ccTypes.h"
+#include "../../include/ccTypeInfo.h"
 #include <string>
 #include <vector>
 
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/CCGL.h b/loader/include/Geode/cocos/platform/android/CCGL.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/CCGL.h
rename to loader/include/Geode/cocos/platform/android/CCGL.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/CCImage.cpp b/loader/include/Geode/cocos/platform/android/CCImage.cpp
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/CCImage.cpp
rename to loader/include/Geode/cocos/platform/android/CCImage.cpp
index 892a0026..8e787cf4 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/android/CCImage.cpp
+++ b/loader/include/Geode/cocos/platform/android/CCImage.cpp
@@ -26,9 +26,9 @@ THE SOFTWARE.
 
 #define __CC_PLATFORM_IMAGE_CPP__
 #include "platform/CCImageCommon_cpp.h"
-#include "platform/CCPlatformMacros.h"
-#include "platform/CCImage.h"
-#include "platform/CCFileUtils.h"
+#include "../platform/CCPlatformMacros.h"
+#include "../platform/CCImage.h"
+#include "../platform/CCFileUtils.h"
 #include "jni/JniHelper.h"
 
 #include <android/log.h>
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/CCPlatformDefine.h b/loader/include/Geode/cocos/platform/android/CCPlatformDefine.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/CCPlatformDefine.h
rename to loader/include/Geode/cocos/platform/android/CCPlatformDefine.h
index 51b86560..b46a03c0 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/android/CCPlatformDefine.h
+++ b/loader/include/Geode/cocos/platform/android/CCPlatformDefine.h
@@ -1,7 +1,7 @@
 #ifndef __CCPLATFORMDEFINE_H__
 #define __CCPLATFORMDEFINE_H__
 
-#include "android/log.h"
+#include <android/log.h>
 
 #ifdef GEODE_EXPORTING
     #define CC_DLL __attribute__((visibility("default")))
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/CCStdC.h b/loader/include/Geode/cocos/platform/android/CCStdC.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/CCStdC.h
rename to loader/include/Geode/cocos/platform/android/CCStdC.h
index 16fb8d76..721036c2 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/android/CCStdC.h
+++ b/loader/include/Geode/cocos/platform/android/CCStdC.h
@@ -25,7 +25,7 @@ THE SOFTWARE.
 #ifndef __CC_STD_C_H__
 #define __CC_STD_C_H__
 
-#include "platform/CCPlatformMacros.h"
+#include "../CCPlatformMacros.h"
 #include <float.h>
 #include <math.h>
 #include <string.h>
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/.classpath b/loader/include/Geode/cocos/platform/android/java/.classpath
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/.classpath
rename to loader/include/Geode/cocos/platform/android/java/.classpath
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/.project b/loader/include/Geode/cocos/platform/android/java/.project
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/.project
rename to loader/include/Geode/cocos/platform/android/java/.project
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/AndroidManifest.xml b/loader/include/Geode/cocos/platform/android/java/AndroidManifest.xml
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/AndroidManifest.xml
rename to loader/include/Geode/cocos/platform/android/java/AndroidManifest.xml
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/ant.properties b/loader/include/Geode/cocos/platform/android/java/ant.properties
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/ant.properties
rename to loader/include/Geode/cocos/platform/android/java/ant.properties
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/build.xml b/loader/include/Geode/cocos/platform/android/java/build.xml
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/build.xml
rename to loader/include/Geode/cocos/platform/android/java/build.xml
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/proguard-project.txt b/loader/include/Geode/cocos/platform/android/java/proguard-project.txt
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/proguard-project.txt
rename to loader/include/Geode/cocos/platform/android/java/proguard-project.txt
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/project.properties b/loader/include/Geode/cocos/platform/android/java/project.properties
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/project.properties
rename to loader/include/Geode/cocos/platform/android/java/project.properties
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/res/.gitignore b/loader/include/Geode/cocos/platform/android/java/res/.gitignore
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/res/.gitignore
rename to loader/include/Geode/cocos/platform/android/java/res/.gitignore
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxAccelerometer.java b/loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxAccelerometer.java
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxAccelerometer.java
rename to loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxAccelerometer.java
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxActivity.java b/loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxActivity.java
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxActivity.java
rename to loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxActivity.java
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxBitmap.java b/loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxBitmap.java
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxBitmap.java
rename to loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxBitmap.java
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxETCLoader.java b/loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxETCLoader.java
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxETCLoader.java
rename to loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxETCLoader.java
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxEditBoxDialog.java b/loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxEditBoxDialog.java
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxEditBoxDialog.java
rename to loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxEditBoxDialog.java
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxEditText.java b/loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxEditText.java
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxEditText.java
rename to loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxEditText.java
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxGLSurfaceView.java b/loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxGLSurfaceView.java
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxGLSurfaceView.java
rename to loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxGLSurfaceView.java
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxHandler.java b/loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxHandler.java
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxHandler.java
rename to loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxHandler.java
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxHelper.java b/loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxHelper.java
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxHelper.java
rename to loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxHelper.java
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxLocalStorage.java b/loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxLocalStorage.java
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxLocalStorage.java
rename to loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxLocalStorage.java
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxMusic.java b/loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxMusic.java
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxMusic.java
rename to loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxMusic.java
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxRenderer.java b/loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxRenderer.java
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxRenderer.java
rename to loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxRenderer.java
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxSound.java b/loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxSound.java
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxSound.java
rename to loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxSound.java
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxTextInputWraper.java b/loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxTextInputWraper.java
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxTextInputWraper.java
rename to loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxTextInputWraper.java
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxTypefaces.java b/loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxTypefaces.java
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxTypefaces.java
rename to loader/include/Geode/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxTypefaces.java
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/jni/DPIJni.cpp b/loader/include/Geode/cocos/platform/android/jni/DPIJni.cpp
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/jni/DPIJni.cpp
rename to loader/include/Geode/cocos/platform/android/jni/DPIJni.cpp
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/jni/DPIJni.h b/loader/include/Geode/cocos/platform/android/jni/DPIJni.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/jni/DPIJni.h
rename to loader/include/Geode/cocos/platform/android/jni/DPIJni.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/jni/IMEJni.cpp b/loader/include/Geode/cocos/platform/android/jni/IMEJni.cpp
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/jni/IMEJni.cpp
rename to loader/include/Geode/cocos/platform/android/jni/IMEJni.cpp
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/jni/IMEJni.h b/loader/include/Geode/cocos/platform/android/jni/IMEJni.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/jni/IMEJni.h
rename to loader/include/Geode/cocos/platform/android/jni/IMEJni.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxAccelerometer.cpp b/loader/include/Geode/cocos/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxAccelerometer.cpp
similarity index 93%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxAccelerometer.cpp
rename to loader/include/Geode/cocos/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxAccelerometer.cpp
index e34fbbfb..5ce60ece 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxAccelerometer.cpp
+++ b/loader/include/Geode/cocos/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxAccelerometer.cpp
@@ -1,4 +1,4 @@
-#include "cocoa/CCGeometry.h"
+#include "../cocoa/CCGeometry.h"
 #include "platform/android/CCAccelerometer.h"
 #include "../CCEGLView.h"
 #include "JniHelper.h"
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxBitmap.cpp b/loader/include/Geode/cocos/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxBitmap.cpp
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxBitmap.cpp
rename to loader/include/Geode/cocos/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxBitmap.cpp
index 794379ca..66fe98b2 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxBitmap.cpp
+++ b/loader/include/Geode/cocos/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxBitmap.cpp
@@ -2,7 +2,7 @@
 #include <string.h>
 #include "CCDirector.h"
 #include "../CCApplication.h"
-#include "platform/CCFileUtils.h"
+#include "../platform/CCFileUtils.h"
 #include "CCEventType.h"
 #include "support/CCNotificationCenter.h"
 #include <jni.h>
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxBitmap.h b/loader/include/Geode/cocos/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxBitmap.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxBitmap.h
rename to loader/include/Geode/cocos/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxBitmap.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxHelper.cpp b/loader/include/Geode/cocos/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxHelper.cpp
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxHelper.cpp
rename to loader/include/Geode/cocos/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxHelper.cpp
index c100095a..216d7153 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxHelper.cpp
+++ b/loader/include/Geode/cocos/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxHelper.cpp
@@ -3,7 +3,7 @@
 #include <android/log.h>
 #include <string>
 #include "JniHelper.h"
-#include "cocoa/CCString.h"
+#include "../cocoa/CCString.h"
 #include "Java_org_cocos2dx_lib_Cocos2dxHelper.h"
 
 
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxHelper.h b/loader/include/Geode/cocos/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxHelper.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxHelper.h
rename to loader/include/Geode/cocos/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxHelper.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxRenderer.cpp b/loader/include/Geode/cocos/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxRenderer.cpp
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxRenderer.cpp
rename to loader/include/Geode/cocos/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxRenderer.cpp
index 93916ad9..e8bdabd9 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxRenderer.cpp
+++ b/loader/include/Geode/cocos/platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxRenderer.cpp
@@ -1,7 +1,7 @@
 #include "text_input_node/CCIMEDispatcher.h"
 #include "CCDirector.h"
 #include "../CCApplication.h"
-#include "platform/CCFileUtils.h"
+#include "../platform/CCFileUtils.h"
 #include "CCEventType.h"
 #include "support/CCNotificationCenter.h"
 #include "JniHelper.h"
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/jni/JniHelper.cpp b/loader/include/Geode/cocos/platform/android/jni/JniHelper.cpp
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/jni/JniHelper.cpp
rename to loader/include/Geode/cocos/platform/android/jni/JniHelper.cpp
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/jni/JniHelper.h b/loader/include/Geode/cocos/platform/android/jni/JniHelper.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/jni/JniHelper.h
rename to loader/include/Geode/cocos/platform/android/jni/JniHelper.h
index 74c47ee7..5d7d71f8 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/android/jni/JniHelper.h
+++ b/loader/include/Geode/cocos/platform/android/jni/JniHelper.h
@@ -26,7 +26,7 @@ THE SOFTWARE.
 
 #include <jni.h>
 #include <string>
-#include "platform/CCPlatformMacros.h"
+#include "../../CCPlatformMacros.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/android/jni/TouchesJni.cpp b/loader/include/Geode/cocos/platform/android/jni/TouchesJni.cpp
similarity index 96%
rename from loader/include/Geode/cocos/cocos2dx/platform/android/jni/TouchesJni.cpp
rename to loader/include/Geode/cocos/platform/android/jni/TouchesJni.cpp
index 357da6f8..4ba422fc 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/android/jni/TouchesJni.cpp
+++ b/loader/include/Geode/cocos/platform/android/jni/TouchesJni.cpp
@@ -21,12 +21,12 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 ****************************************************************************/
-#include "cocoa/CCSet.h"
+#include "../cocoa/CCSet.h"
 #include "CCDirector.h"
 #include "keypad_dispatcher/CCKeypadDispatcher.h"
-#include "touch_dispatcher/CCTouch.h"
+#include "../touch_dispatcher/CCTouch.h"
 #include "../CCEGLView.h"
-#include "touch_dispatcher/CCTouchDispatcher.h"
+#include "../touch_dispatcher/CCTouchDispatcher.h"
 
 #include <android/log.h>
 #include <jni.h>
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/AccelerometerDelegateWrapper.h b/loader/include/Geode/cocos/platform/ios/AccelerometerDelegateWrapper.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/AccelerometerDelegateWrapper.h
rename to loader/include/Geode/cocos/platform/ios/AccelerometerDelegateWrapper.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/AccelerometerDelegateWrapper.mm b/loader/include/Geode/cocos/platform/ios/AccelerometerDelegateWrapper.mm
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/AccelerometerDelegateWrapper.mm
rename to loader/include/Geode/cocos/platform/ios/AccelerometerDelegateWrapper.mm
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCAccelerometer.h b/loader/include/Geode/cocos/platform/ios/CCAccelerometer.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCAccelerometer.h
rename to loader/include/Geode/cocos/platform/ios/CCAccelerometer.h
index e8aea882..0e44f12e 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCAccelerometer.h
+++ b/loader/include/Geode/cocos/platform/ios/CCAccelerometer.h
@@ -25,7 +25,7 @@ THE SOFTWARE.
 #ifndef __PLATFORM_IPHONE_CCACCELEROMETER_H__
 #define __PLATFORM_IPHONE_CCACCELEROMETER_H__
 
-#include "platform/CCAccelerometerDelegate.h"
+#include "../CCAccelerometerDelegate.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCAccelerometer.mm b/loader/include/Geode/cocos/platform/ios/CCAccelerometer.mm
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCAccelerometer.mm
rename to loader/include/Geode/cocos/platform/ios/CCAccelerometer.mm
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCApplication.h b/loader/include/Geode/cocos/platform/ios/CCApplication.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCApplication.h
rename to loader/include/Geode/cocos/platform/ios/CCApplication.h
index fe0a97d0..e6ca22c4 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCApplication.h
+++ b/loader/include/Geode/cocos/platform/ios/CCApplication.h
@@ -25,8 +25,8 @@ THE SOFTWARE.
 #ifndef __CC_APPLICATION_IOS_H__
 #define __CC_APPLICATION_IOS_H__
 
-#include "platform/CCCommon.h"
-#include "platform/CCApplicationProtocol.h"
+#include "../CCCommon.h"
+#include "../CCApplicationProtocol.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCApplication.mm b/loader/include/Geode/cocos/platform/ios/CCApplication.mm
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCApplication.mm
rename to loader/include/Geode/cocos/platform/ios/CCApplication.mm
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCCommon.mm b/loader/include/Geode/cocos/platform/ios/CCCommon.mm
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCCommon.mm
rename to loader/include/Geode/cocos/platform/ios/CCCommon.mm
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCDevice.mm b/loader/include/Geode/cocos/platform/ios/CCDevice.mm
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCDevice.mm
rename to loader/include/Geode/cocos/platform/ios/CCDevice.mm
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCDirectorCaller.h b/loader/include/Geode/cocos/platform/ios/CCDirectorCaller.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCDirectorCaller.h
rename to loader/include/Geode/cocos/platform/ios/CCDirectorCaller.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCDirectorCaller.mm b/loader/include/Geode/cocos/platform/ios/CCDirectorCaller.mm
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCDirectorCaller.mm
rename to loader/include/Geode/cocos/platform/ios/CCDirectorCaller.mm
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCEGLView.h b/loader/include/Geode/cocos/platform/ios/CCEGLView.h
similarity index 96%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCEGLView.h
rename to loader/include/Geode/cocos/platform/ios/CCEGLView.h
index 9e1c66ef..703e6f21 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCEGLView.h
+++ b/loader/include/Geode/cocos/platform/ios/CCEGLView.h
@@ -25,8 +25,8 @@ THE SOFTWARE.
 #ifndef __CC_EGLVIEW_IPHONE_H__
 #define __CC_EGLVIEW_IPHONE_H__
 
-#include "platform/CCCommon.h"
-#include "platform/CCEGLViewProtocol.h"
+#include "../CCCommon.h"
+#include "../CCEGLViewProtocol.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCEGLView.mm b/loader/include/Geode/cocos/platform/ios/CCEGLView.mm
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCEGLView.mm
rename to loader/include/Geode/cocos/platform/ios/CCEGLView.mm
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCES2Renderer.h b/loader/include/Geode/cocos/platform/ios/CCES2Renderer.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCES2Renderer.h
rename to loader/include/Geode/cocos/platform/ios/CCES2Renderer.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCES2Renderer.m b/loader/include/Geode/cocos/platform/ios/CCES2Renderer.m
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCES2Renderer.m
rename to loader/include/Geode/cocos/platform/ios/CCES2Renderer.m
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCESRenderer.h b/loader/include/Geode/cocos/platform/ios/CCESRenderer.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCESRenderer.h
rename to loader/include/Geode/cocos/platform/ios/CCESRenderer.h
index 7dfb474c..a8df9875 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCESRenderer.h
+++ b/loader/include/Geode/cocos/platform/ios/CCESRenderer.h
@@ -28,7 +28,7 @@
 
 // Only compile this code on iOS. These files should NOT be included on your Mac project.
 // But in case they are included, it won't be compiled.
-#import "platform/CCPlatformMacros.h"
+#import "../platform/CCPlatformMacros.h"
 #import <QuartzCore/QuartzCore.h>
 
 #import <OpenGLES/EAGL.h>
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCFileUtilsIOS.h b/loader/include/Geode/cocos/platform/ios/CCFileUtilsIOS.h
similarity index 94%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCFileUtilsIOS.h
rename to loader/include/Geode/cocos/platform/ios/CCFileUtilsIOS.h
index bb82e47e..742eb708 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCFileUtilsIOS.h
+++ b/loader/include/Geode/cocos/platform/ios/CCFileUtilsIOS.h
@@ -24,12 +24,12 @@
 #ifndef __CC_FILEUTILS_IOS_H__
 #define __CC_FILEUTILS_IOS_H__
 
-#include "CCFileUtils.h"
+#include "../CCFileUtils.h"
 #include <string>
 #include <vector>
-#include "CCPlatformMacros.h"
-#include "ccTypes.h"
-#include "ccTypeInfo.h"
+#include "../CCPlatformMacros.h"
+#include "../../include/ccTypes.h"
+#include "../../include/ccTypeInfo.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCFileUtilsIOS.mm b/loader/include/Geode/cocos/platform/ios/CCFileUtilsIOS.mm
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCFileUtilsIOS.mm
rename to loader/include/Geode/cocos/platform/ios/CCFileUtilsIOS.mm
index 7002d81d..a2533cf5 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCFileUtilsIOS.mm
+++ b/loader/include/Geode/cocos/platform/ios/CCFileUtilsIOS.mm
@@ -27,7 +27,7 @@ THE SOFTWARE.
 
 #include <string>
 #include <stack>
-#include "cocoa/CCString.h"
+#include "../cocoa/CCString.h"
 #include "CCFileUtils.h"
 #include "CCDirector.h"
 #include "CCSAXParser.h"
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCGL.h b/loader/include/Geode/cocos/platform/ios/CCGL.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCGL.h
rename to loader/include/Geode/cocos/platform/ios/CCGL.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCImage.mm b/loader/include/Geode/cocos/platform/ios/CCImage.mm
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCImage.mm
rename to loader/include/Geode/cocos/platform/ios/CCImage.mm
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCLock.h b/loader/include/Geode/cocos/platform/ios/CCLock.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCLock.h
rename to loader/include/Geode/cocos/platform/ios/CCLock.h
index b6f77dac..b1aad361 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCLock.h
+++ b/loader/include/Geode/cocos/platform/ios/CCLock.h
@@ -25,7 +25,7 @@ THE SOFTWARE.
 #ifndef __PLATFORM_IPHONE_PLATFORM_CCLOCK_H__
 #define __PLATFORM_IPHONE_PLATFORM_CCLOCK_H__
 
-#include "CCPlatformMacros.h"
+#include "../CCPlatformMacros.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCPlatformDefine.h b/loader/include/Geode/cocos/platform/ios/CCPlatformDefine.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCPlatformDefine.h
rename to loader/include/Geode/cocos/platform/ios/CCPlatformDefine.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCStdC.h b/loader/include/Geode/cocos/platform/ios/CCStdC.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/CCStdC.h
rename to loader/include/Geode/cocos/platform/ios/CCStdC.h
index 16fb8d76..721036c2 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCStdC.h
+++ b/loader/include/Geode/cocos/platform/ios/CCStdC.h
@@ -25,7 +25,7 @@ THE SOFTWARE.
 #ifndef __CC_STD_C_H__
 #define __CC_STD_C_H__
 
-#include "platform/CCPlatformMacros.h"
+#include "../CCPlatformMacros.h"
 #include <float.h>
 #include <math.h>
 #include <string.h>
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCThread.mm b/loader/include/Geode/cocos/platform/ios/CCThread.mm
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCThread.mm
rename to loader/include/Geode/cocos/platform/ios/CCThread.mm
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/EAGLView.h b/loader/include/Geode/cocos/platform/ios/EAGLView.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/EAGLView.h
rename to loader/include/Geode/cocos/platform/ios/EAGLView.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/EAGLView.mm b/loader/include/Geode/cocos/platform/ios/EAGLView.mm
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/EAGLView.mm
rename to loader/include/Geode/cocos/platform/ios/EAGLView.mm
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/OpenGL_Internal.h b/loader/include/Geode/cocos/platform/ios/OpenGL_Internal.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/OpenGL_Internal.h
rename to loader/include/Geode/cocos/platform/ios/OpenGL_Internal.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/Simulation/AccelerometerSimulation.h b/loader/include/Geode/cocos/platform/ios/Simulation/AccelerometerSimulation.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/Simulation/AccelerometerSimulation.h
rename to loader/include/Geode/cocos/platform/ios/Simulation/AccelerometerSimulation.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/Simulation/AccelerometerSimulation.m b/loader/include/Geode/cocos/platform/ios/Simulation/AccelerometerSimulation.m
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/Simulation/AccelerometerSimulation.m
rename to loader/include/Geode/cocos/platform/ios/Simulation/AccelerometerSimulation.m
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCAccelerometer.h b/loader/include/Geode/cocos/platform/mac/CCAccelerometer.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/CCAccelerometer.h
rename to loader/include/Geode/cocos/platform/mac/CCAccelerometer.h
index 88b76d04..dbe4d78a 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCAccelerometer.h
+++ b/loader/include/Geode/cocos/platform/mac/CCAccelerometer.h
@@ -25,7 +25,7 @@ THE SOFTWARE.
 #ifndef __PLATFORM_MAC_CCACCELEROMETER_H__
 #define __PLATFORM_MAC_CCACCELEROMETER_H__
 
-#include "platform/CCAccelerometerDelegate.h"
+#include "../CCAccelerometerDelegate.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCApplication.h b/loader/include/Geode/cocos/platform/mac/CCApplication.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/CCApplication.h
rename to loader/include/Geode/cocos/platform/mac/CCApplication.h
index c67899ac..26121366 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCApplication.h
+++ b/loader/include/Geode/cocos/platform/mac/CCApplication.h
@@ -25,8 +25,8 @@ THE SOFTWARE.
 #ifndef __CC_APPLICATION_MAC_H__
 #define __CC_APPLICATION_MAC_H__
 
-#include "platform/CCCommon.h"
-#include "platform/CCApplicationProtocol.h"
+#include "../CCCommon.h"
+#include "../CCApplicationProtocol.h"
 #include <string>
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCApplication.mm b/loader/include/Geode/cocos/platform/mac/CCApplication.mm
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/CCApplication.mm
rename to loader/include/Geode/cocos/platform/mac/CCApplication.mm
index e7eb307a..c3911957 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCApplication.mm
+++ b/loader/include/Geode/cocos/platform/mac/CCApplication.mm
@@ -25,7 +25,7 @@
 #import "CCApplication.h"
 #import <Cocoa/Cocoa.h>
 #include <algorithm>
-#include "platform/CCFileUtils.h"
+#include "../platform/CCFileUtils.h"
 #include "CCGeometry.h"
 #include "CCDirector.h"
 #import "CCDirectorCaller.h"
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCCommon.mm b/loader/include/Geode/cocos/platform/mac/CCCommon.mm
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/CCCommon.mm
rename to loader/include/Geode/cocos/platform/mac/CCCommon.mm
index 8cfbeeba..4cbf3462 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCCommon.mm
+++ b/loader/include/Geode/cocos/platform/mac/CCCommon.mm
@@ -23,7 +23,7 @@
  ****************************************************************************/
 #include <Cocoa/Cocoa.h>
 
-#include "platform/CCCommon.h"
+#include "../platform/CCCommon.h"
 
 #include <stdarg.h>
 #include <stdio.h>
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCDevice.mm b/loader/include/Geode/cocos/platform/mac/CCDevice.mm
similarity index 69%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/CCDevice.mm
rename to loader/include/Geode/cocos/platform/mac/CCDevice.mm
index 8275971d..b9651642 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCDevice.mm
+++ b/loader/include/Geode/cocos/platform/mac/CCDevice.mm
@@ -1,4 +1,4 @@
-#include "platform/CCDevice.h"
+#include "../platform/CCDevice.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCDirectorCaller.h b/loader/include/Geode/cocos/platform/mac/CCDirectorCaller.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/CCDirectorCaller.h
rename to loader/include/Geode/cocos/platform/mac/CCDirectorCaller.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCDirectorCaller.mm b/loader/include/Geode/cocos/platform/mac/CCDirectorCaller.mm
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/CCDirectorCaller.mm
rename to loader/include/Geode/cocos/platform/mac/CCDirectorCaller.mm
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCEGLView.h b/loader/include/Geode/cocos/platform/mac/CCEGLView.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/CCEGLView.h
rename to loader/include/Geode/cocos/platform/mac/CCEGLView.h
index 7d6b29d3..bca383ab 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCEGLView.h
+++ b/loader/include/Geode/cocos/platform/mac/CCEGLView.h
@@ -25,8 +25,8 @@
 #ifndef __CC_EGLVIEW_MAC_H__
 #define __CC_EGLVIEW_MAC_H__
 
-#include "platform/CCCommon.h"
-#include "platform/CCEGLViewProtocol.h"
+#include "../CCCommon.h"
+#include "../CCEGLViewProtocol.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCEGLView.mm b/loader/include/Geode/cocos/platform/mac/CCEGLView.mm
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/CCEGLView.mm
rename to loader/include/Geode/cocos/platform/mac/CCEGLView.mm
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCEventDispatcher.h b/loader/include/Geode/cocos/platform/mac/CCEventDispatcher.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/CCEventDispatcher.h
rename to loader/include/Geode/cocos/platform/mac/CCEventDispatcher.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCEventDispatcher.mm b/loader/include/Geode/cocos/platform/mac/CCEventDispatcher.mm
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/CCEventDispatcher.mm
rename to loader/include/Geode/cocos/platform/mac/CCEventDispatcher.mm
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCFileUtilsMac.h b/loader/include/Geode/cocos/platform/mac/CCFileUtilsMac.h
similarity index 94%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/CCFileUtilsMac.h
rename to loader/include/Geode/cocos/platform/mac/CCFileUtilsMac.h
index 5121788f..62461814 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCFileUtilsMac.h
+++ b/loader/include/Geode/cocos/platform/mac/CCFileUtilsMac.h
@@ -24,12 +24,12 @@
 #ifndef __CC_FILEUTILSMAC_H__
 #define __CC_FILEUTILSMAC_H__
 
-#include "CCFileUtils.h"
+#include "../CCFileUtils.h"
 #include <string>
 #include <vector>
-#include "CCPlatformMacros.h"
-#include "ccTypes.h"
-#include "ccTypeInfo.h"
+#include "../CCPlatformMacros.h"
+#include "../../include/ccTypes.h"
+#include "../../include/ccTypeInfo.h"
 
 NS_CC_BEGIN
 /**
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCFileUtilsMac.mm b/loader/include/Geode/cocos/platform/mac/CCFileUtilsMac.mm
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/CCFileUtilsMac.mm
rename to loader/include/Geode/cocos/platform/mac/CCFileUtilsMac.mm
index 04773156..6219dda3 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCFileUtilsMac.mm
+++ b/loader/include/Geode/cocos/platform/mac/CCFileUtilsMac.mm
@@ -26,7 +26,7 @@ THE SOFTWARE.
 #import <Foundation/Foundation.h>
 #include <string>
 #include <stack>
-#include "cocoa/CCString.h"
+#include "../cocoa/CCString.h"
 #include "CCFileUtils.h"
 #include "CCDirector.h"
 #include "CCSAXParser.h"
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCGL.h b/loader/include/Geode/cocos/platform/mac/CCGL.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/CCGL.h
rename to loader/include/Geode/cocos/platform/mac/CCGL.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCImage.mm b/loader/include/Geode/cocos/platform/mac/CCImage.mm
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/CCImage.mm
rename to loader/include/Geode/cocos/platform/mac/CCImage.mm
index c9567940..f3a14f6b 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCImage.mm
+++ b/loader/include/Geode/cocos/platform/mac/CCImage.mm
@@ -24,7 +24,7 @@ THE SOFTWARE.
 #include <Foundation/Foundation.h>
 #include <Cocoa/Cocoa.h>
 #include "CCDirector.h"
-#include "ccMacros.h"
+#include "../include/ccMacros.h"
 #include "CCImage.h"
 #include "CCFileUtils.h"
 #include "CCTexture2D.h"
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCPlatformDefine.h b/loader/include/Geode/cocos/platform/mac/CCPlatformDefine.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/CCPlatformDefine.h
rename to loader/include/Geode/cocos/platform/mac/CCPlatformDefine.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCStdC.h b/loader/include/Geode/cocos/platform/mac/CCStdC.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/platform/ios/CCStdC.h
rename to loader/include/Geode/cocos/platform/mac/CCStdC.h
index 16fb8d76..721036c2 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/ios/CCStdC.h
+++ b/loader/include/Geode/cocos/platform/mac/CCStdC.h
@@ -25,7 +25,7 @@ THE SOFTWARE.
 #ifndef __CC_STD_C_H__
 #define __CC_STD_C_H__
 
-#include "platform/CCPlatformMacros.h"
+#include "../CCPlatformMacros.h"
 #include <float.h>
 #include <math.h>
 #include <string.h>
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCThread.mm b/loader/include/Geode/cocos/platform/mac/CCThread.mm
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/CCThread.mm
rename to loader/include/Geode/cocos/platform/mac/CCThread.mm
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCWindow.h b/loader/include/Geode/cocos/platform/mac/CCWindow.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/CCWindow.h
rename to loader/include/Geode/cocos/platform/mac/CCWindow.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/CCWindow.m b/loader/include/Geode/cocos/platform/mac/CCWindow.m
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/CCWindow.m
rename to loader/include/Geode/cocos/platform/mac/CCWindow.m
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/EAGLView.h b/loader/include/Geode/cocos/platform/mac/EAGLView.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/EAGLView.h
rename to loader/include/Geode/cocos/platform/mac/EAGLView.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/mac/EAGLView.mm b/loader/include/Geode/cocos/platform/mac/EAGLView.mm
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/mac/EAGLView.mm
rename to loader/include/Geode/cocos/platform/mac/EAGLView.mm
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/platform.h b/loader/include/Geode/cocos/platform/platform.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/platform.h
rename to loader/include/Geode/cocos/platform/platform.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/include/curl/curl.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/include/curl/curl.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/include/curl/curl.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/include/curl/curl.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/include/curl/curlbuild.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/include/curl/curlbuild.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/include/curl/curlbuild.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/include/curl/curlbuild.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/include/curl/curlrules.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/include/curl/curlrules.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/include/curl/curlrules.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/include/curl/curlrules.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/include/curl/curlver.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/include/curl/curlver.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/include/curl/curlver.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/include/curl/curlver.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/include/curl/easy.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/include/curl/easy.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/include/curl/easy.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/include/curl/easy.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/include/curl/mprintf.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/include/curl/mprintf.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/include/curl/mprintf.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/include/curl/mprintf.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/include/curl/multi.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/include/curl/multi.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/include/curl/multi.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/include/curl/multi.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/include/curl/stdcheaders.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/include/curl/stdcheaders.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/include/curl/stdcheaders.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/include/curl/stdcheaders.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/include/curl/typecheck-gcc.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/include/curl/typecheck-gcc.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/include/curl/typecheck-gcc.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/include/curl/typecheck-gcc.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/include/curl/types.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/include/curl/types.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/include/curl/types.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/include/curl/types.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/libs/armeabi-v7a/libcurl.a.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/libs/armeabi-v7a/libcurl.a.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/libs/armeabi-v7a/libcurl.a.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/libs/armeabi-v7a/libcurl.a.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/libs/armeabi/libcurl.a.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/libs/armeabi/libcurl.a.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/libs/armeabi/libcurl.a.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/libs/armeabi/libcurl.a.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/libs/x86/libcurl.a.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/libs/x86/libcurl.a.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libcurl/libs/x86/libcurl.a.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libcurl/libs/x86/libcurl.a.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libjpeg/include/jconfig.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libjpeg/include/jconfig.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libjpeg/include/jconfig.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libjpeg/include/jconfig.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libjpeg/include/jerror.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libjpeg/include/jerror.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libjpeg/include/jerror.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libjpeg/include/jerror.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libjpeg/include/jmorecfg.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libjpeg/include/jmorecfg.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libjpeg/include/jmorecfg.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libjpeg/include/jmorecfg.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libjpeg/include/jpeglib.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libjpeg/include/jpeglib.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libjpeg/include/jpeglib.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libjpeg/include/jpeglib.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libjpeg/libs/armeabi-v7a/libjpeg.a.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libjpeg/libs/armeabi-v7a/libjpeg.a.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libjpeg/libs/armeabi-v7a/libjpeg.a.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libjpeg/libs/armeabi-v7a/libjpeg.a.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libjpeg/libs/armeabi/libjpeg.a.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libjpeg/libs/armeabi/libjpeg.a.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libjpeg/libs/armeabi/libjpeg.a.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libjpeg/libs/armeabi/libjpeg.a.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libjpeg/libs/x86/libjpeg.a.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libjpeg/libs/x86/libjpeg.a.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libjpeg/libs/x86/libjpeg.a.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libjpeg/libs/x86/libjpeg.a.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libpng/include/png.h.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libpng/include/png.h.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libpng/include/png.h.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libpng/include/png.h.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libpng/include/pngconf.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libpng/include/pngconf.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libpng/include/pngconf.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libpng/include/pngconf.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libpng/include/pngusr.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libpng/include/pngusr.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libpng/include/pngusr.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libpng/include/pngusr.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libpng/libs/armeabi-v7a/libpng.a.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libpng/libs/armeabi-v7a/libpng.a.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libpng/libs/armeabi-v7a/libpng.a.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libpng/libs/armeabi-v7a/libpng.a.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libpng/libs/armeabi/libpng.a.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libpng/libs/armeabi/libpng.a.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libpng/libs/armeabi/libpng.a.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libpng/libs/armeabi/libpng.a.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libpng/libs/x86/libpng.a.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libpng/libs/x86/libpng.a.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libpng/libs/x86/libpng.a.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libpng/libs/x86/libpng.a.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libtiff/include/tiff.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libtiff/include/tiff.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libtiff/include/tiff.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libtiff/include/tiff.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libtiff/include/tiffconf.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libtiff/include/tiffconf.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libtiff/include/tiffconf.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libtiff/include/tiffconf.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libtiff/include/tiffio.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libtiff/include/tiffio.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libtiff/include/tiffio.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libtiff/include/tiffio.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libtiff/include/tiffvers.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libtiff/include/tiffvers.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libtiff/include/tiffvers.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libtiff/include/tiffvers.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libtiff/libs/armeabi-v7a/libtiff.a.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libtiff/libs/armeabi-v7a/libtiff.a.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libtiff/libs/armeabi-v7a/libtiff.a.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libtiff/libs/armeabi-v7a/libtiff.a.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libtiff/libs/armeabi/libtiff.a.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libtiff/libs/armeabi/libtiff.a.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libtiff/libs/armeabi/libtiff.a.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libtiff/libs/armeabi/libtiff.a.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libtiff/libs/x86/libtiff.a.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libtiff/libs/x86/libtiff.a.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libtiff/libs/x86/libtiff.a.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libtiff/libs/x86/libtiff.a.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libwebp/include/decode.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libwebp/include/decode.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libwebp/include/decode.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libwebp/include/decode.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libwebp/include/encode.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libwebp/include/encode.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libwebp/include/encode.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libwebp/include/encode.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libwebp/include/types.h b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libwebp/include/types.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libwebp/include/types.h
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libwebp/include/types.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libwebp/libs/armeabi-v7a/libwebp.a.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libwebp/libs/armeabi-v7a/libwebp.a.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libwebp/libs/armeabi-v7a/libwebp.a.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libwebp/libs/armeabi-v7a/libwebp.a.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libwebp/libs/armeabi/libwebp.a.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libwebp/libs/armeabi/libwebp.a.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libwebp/libs/armeabi/libwebp.a.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libwebp/libs/armeabi/libwebp.a.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libwebp/libs/x86/libwebp.a.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/android/prebuilt/libwebp/libs/x86/libwebp.a.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/android/prebuilt/libwebp/libs/x86/libwebp.a.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/android/prebuilt/libwebp/libs/x86/libwebp.a.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/curl/curl.h b/loader/include/Geode/cocos/platform/third_party/ios/curl/curl.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/curl/curl.h
rename to loader/include/Geode/cocos/platform/third_party/ios/curl/curl.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/curl/curlbuild.h b/loader/include/Geode/cocos/platform/third_party/ios/curl/curlbuild.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/curl/curlbuild.h
rename to loader/include/Geode/cocos/platform/third_party/ios/curl/curlbuild.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/curl/curlrules.h b/loader/include/Geode/cocos/platform/third_party/ios/curl/curlrules.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/curl/curlrules.h
rename to loader/include/Geode/cocos/platform/third_party/ios/curl/curlrules.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/curl/curlver.h b/loader/include/Geode/cocos/platform/third_party/ios/curl/curlver.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/curl/curlver.h
rename to loader/include/Geode/cocos/platform/third_party/ios/curl/curlver.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/curl/easy.h b/loader/include/Geode/cocos/platform/third_party/ios/curl/easy.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/curl/easy.h
rename to loader/include/Geode/cocos/platform/third_party/ios/curl/easy.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/curl/mprintf.h b/loader/include/Geode/cocos/platform/third_party/ios/curl/mprintf.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/curl/mprintf.h
rename to loader/include/Geode/cocos/platform/third_party/ios/curl/mprintf.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/curl/multi.h b/loader/include/Geode/cocos/platform/third_party/ios/curl/multi.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/curl/multi.h
rename to loader/include/Geode/cocos/platform/third_party/ios/curl/multi.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/curl/stdcheaders.h b/loader/include/Geode/cocos/platform/third_party/ios/curl/stdcheaders.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/curl/stdcheaders.h
rename to loader/include/Geode/cocos/platform/third_party/ios/curl/stdcheaders.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/curl/typecheck-gcc.h b/loader/include/Geode/cocos/platform/third_party/ios/curl/typecheck-gcc.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/curl/typecheck-gcc.h
rename to loader/include/Geode/cocos/platform/third_party/ios/curl/typecheck-gcc.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/libraries/libcurl.a.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/ios/libraries/libcurl.a.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/libraries/libcurl.a.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/ios/libraries/libcurl.a.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/libraries/libwebp.a.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/ios/libraries/libwebp.a.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/libraries/libwebp.a.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/ios/libraries/libwebp.a.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/webp/decode.h b/loader/include/Geode/cocos/platform/third_party/ios/webp/decode.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/webp/decode.h
rename to loader/include/Geode/cocos/platform/third_party/ios/webp/decode.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/webp/encode.h b/loader/include/Geode/cocos/platform/third_party/ios/webp/encode.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/webp/encode.h
rename to loader/include/Geode/cocos/platform/third_party/ios/webp/encode.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/webp/types.h b/loader/include/Geode/cocos/platform/third_party/ios/webp/types.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/ios/webp/types.h
rename to loader/include/Geode/cocos/platform/third_party/ios/webp/types.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/mac/libraries/libwebp.a.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/mac/libraries/libwebp.a.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/mac/libraries/libwebp.a.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/mac/libraries/libwebp.a.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/mac/webp/decode.h b/loader/include/Geode/cocos/platform/third_party/mac/webp/decode.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/mac/webp/decode.h
rename to loader/include/Geode/cocos/platform/third_party/mac/webp/decode.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/mac/webp/encode.h b/loader/include/Geode/cocos/platform/third_party/mac/webp/encode.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/mac/webp/encode.h
rename to loader/include/Geode/cocos/platform/third_party/mac/webp/encode.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/mac/webp/types.h b/loader/include/Geode/cocos/platform/third_party/mac/webp/types.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/mac/webp/types.h
rename to loader/include/Geode/cocos/platform/third_party/mac/webp/types.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/OGLES/GL/glew.h b/loader/include/Geode/cocos/platform/third_party/win32/OGLES/GL/glew.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/OGLES/GL/glew.h
rename to loader/include/Geode/cocos/platform/third_party/win32/OGLES/GL/glew.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/OGLES/GL/glxew.h b/loader/include/Geode/cocos/platform/third_party/win32/OGLES/GL/glxew.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/OGLES/GL/glxew.h
rename to loader/include/Geode/cocos/platform/third_party/win32/OGLES/GL/glxew.h
index 6d249f73..c10b440b 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/OGLES/GL/glxew.h
+++ b/loader/include/Geode/cocos/platform/third_party/win32/OGLES/GL/glxew.h
@@ -97,7 +97,7 @@
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
 #include <X11/Xmd.h>
-#include <GL/glew.h>
+#include "glew.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/OGLES/GL/wglew.h b/loader/include/Geode/cocos/platform/third_party/win32/OGLES/GL/wglew.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/OGLES/GL/wglew.h
rename to loader/include/Geode/cocos/platform/third_party/win32/OGLES/GL/wglew.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/curl/curl.h b/loader/include/Geode/cocos/platform/third_party/win32/curl/curl.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/curl/curl.h
rename to loader/include/Geode/cocos/platform/third_party/win32/curl/curl.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/curl/curlbuild.h b/loader/include/Geode/cocos/platform/third_party/win32/curl/curlbuild.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/curl/curlbuild.h
rename to loader/include/Geode/cocos/platform/third_party/win32/curl/curlbuild.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/curl/curlrules.h b/loader/include/Geode/cocos/platform/third_party/win32/curl/curlrules.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/curl/curlrules.h
rename to loader/include/Geode/cocos/platform/third_party/win32/curl/curlrules.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/curl/curlver.h b/loader/include/Geode/cocos/platform/third_party/win32/curl/curlver.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/curl/curlver.h
rename to loader/include/Geode/cocos/platform/third_party/win32/curl/curlver.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/curl/easy.h b/loader/include/Geode/cocos/platform/third_party/win32/curl/easy.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/curl/easy.h
rename to loader/include/Geode/cocos/platform/third_party/win32/curl/easy.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/curl/mprintf.h b/loader/include/Geode/cocos/platform/third_party/win32/curl/mprintf.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/curl/mprintf.h
rename to loader/include/Geode/cocos/platform/third_party/win32/curl/mprintf.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/curl/multi.h b/loader/include/Geode/cocos/platform/third_party/win32/curl/multi.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/curl/multi.h
rename to loader/include/Geode/cocos/platform/third_party/win32/curl/multi.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/curl/stdcheaders.h b/loader/include/Geode/cocos/platform/third_party/win32/curl/stdcheaders.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/curl/stdcheaders.h
rename to loader/include/Geode/cocos/platform/third_party/win32/curl/stdcheaders.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/curl/typecheck-gcc.h b/loader/include/Geode/cocos/platform/third_party/win32/curl/typecheck-gcc.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/curl/typecheck-gcc.h
rename to loader/include/Geode/cocos/platform/third_party/win32/curl/typecheck-gcc.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/iconv/iconv.h b/loader/include/Geode/cocos/platform/third_party/win32/iconv/iconv.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/iconv/iconv.h
rename to loader/include/Geode/cocos/platform/third_party/win32/iconv/iconv.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libjpeg/jconfig.h b/loader/include/Geode/cocos/platform/third_party/win32/libjpeg/jconfig.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libjpeg/jconfig.h
rename to loader/include/Geode/cocos/platform/third_party/win32/libjpeg/jconfig.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libjpeg/jconfig_linux.h b/loader/include/Geode/cocos/platform/third_party/win32/libjpeg/jconfig_linux.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libjpeg/jconfig_linux.h
rename to loader/include/Geode/cocos/platform/third_party/win32/libjpeg/jconfig_linux.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libjpeg/jconfig_win.h b/loader/include/Geode/cocos/platform/third_party/win32/libjpeg/jconfig_win.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libjpeg/jconfig_win.h
rename to loader/include/Geode/cocos/platform/third_party/win32/libjpeg/jconfig_win.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libjpeg/jerror.h b/loader/include/Geode/cocos/platform/third_party/win32/libjpeg/jerror.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libjpeg/jerror.h
rename to loader/include/Geode/cocos/platform/third_party/win32/libjpeg/jerror.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libjpeg/jmorecfg.h b/loader/include/Geode/cocos/platform/third_party/win32/libjpeg/jmorecfg.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libjpeg/jmorecfg.h
rename to loader/include/Geode/cocos/platform/third_party/win32/libjpeg/jmorecfg.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libjpeg/jpeglib.h b/loader/include/Geode/cocos/platform/third_party/win32/libjpeg/jpeglib.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libjpeg/jpeglib.h
rename to loader/include/Geode/cocos/platform/third_party/win32/libjpeg/jpeglib.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libpng/png.h.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/win32/libpng/png.h.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libpng/png.h.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/win32/libpng/png.h.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libpng/pngconf.h b/loader/include/Geode/cocos/platform/third_party/win32/libpng/pngconf.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libpng/pngconf.h
rename to loader/include/Geode/cocos/platform/third_party/win32/libpng/pngconf.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libraries/glew32.dll.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/win32/libraries/glew32.dll.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libraries/glew32.dll.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/win32/libraries/glew32.dll.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libraries/glew32.lib.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/win32/libraries/glew32.lib.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libraries/glew32.lib.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/win32/libraries/glew32.lib.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libraries/iconv.dll.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/win32/libraries/iconv.dll.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libraries/iconv.dll.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/win32/libraries/iconv.dll.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libraries/libcurl.dll.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/win32/libraries/libcurl.dll.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libraries/libcurl.dll.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/win32/libraries/libcurl.dll.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libraries/libjpeg.lib.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/win32/libraries/libjpeg.lib.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libraries/libjpeg.lib.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/win32/libraries/libjpeg.lib.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libraries/libpng.lib.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/win32/libraries/libpng.lib.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libraries/libpng.lib.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/win32/libraries/libpng.lib.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libraries/libtiff.dll.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/win32/libraries/libtiff.dll.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libraries/libtiff.dll.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/win32/libraries/libtiff.dll.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libraries/libwebp.lib.REMOVED.git-id b/loader/include/Geode/cocos/platform/third_party/win32/libraries/libwebp.lib.REMOVED.git-id
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libraries/libwebp.lib.REMOVED.git-id
rename to loader/include/Geode/cocos/platform/third_party/win32/libraries/libwebp.lib.REMOVED.git-id
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libtiff/tiff.h b/loader/include/Geode/cocos/platform/third_party/win32/libtiff/tiff.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libtiff/tiff.h
rename to loader/include/Geode/cocos/platform/third_party/win32/libtiff/tiff.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libtiff/tiffconf.h b/loader/include/Geode/cocos/platform/third_party/win32/libtiff/tiffconf.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libtiff/tiffconf.h
rename to loader/include/Geode/cocos/platform/third_party/win32/libtiff/tiffconf.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libtiff/tiffio.h b/loader/include/Geode/cocos/platform/third_party/win32/libtiff/tiffio.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libtiff/tiffio.h
rename to loader/include/Geode/cocos/platform/third_party/win32/libtiff/tiffio.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libtiff/tiffvers.h b/loader/include/Geode/cocos/platform/third_party/win32/libtiff/tiffvers.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libtiff/tiffvers.h
rename to loader/include/Geode/cocos/platform/third_party/win32/libtiff/tiffvers.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libwebp/decode.h b/loader/include/Geode/cocos/platform/third_party/win32/libwebp/decode.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libwebp/decode.h
rename to loader/include/Geode/cocos/platform/third_party/win32/libwebp/decode.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libwebp/encode.h b/loader/include/Geode/cocos/platform/third_party/win32/libwebp/encode.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libwebp/encode.h
rename to loader/include/Geode/cocos/platform/third_party/win32/libwebp/encode.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libwebp/types.h b/loader/include/Geode/cocos/platform/third_party/win32/libwebp/types.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/libwebp/types.h
rename to loader/include/Geode/cocos/platform/third_party/win32/libwebp/types.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/pthread/pthread.h b/loader/include/Geode/cocos/platform/third_party/win32/pthread/pthread.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/pthread/pthread.h
rename to loader/include/Geode/cocos/platform/third_party/win32/pthread/pthread.h
index 76d91ea2..304bbf42 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/pthread/pthread.h
+++ b/loader/include/Geode/cocos/platform/third_party/win32/pthread/pthread.h
@@ -211,7 +211,7 @@ typedef unsigned long DWORD_PTR;
  */
 
 #if HAVE_CONFIG_H
-#include "config.h"
+#include <config.h>
 #endif /* HAVE_CONFIG_H */
 
 #ifndef NEED_FTIME
@@ -256,7 +256,7 @@ enum {
 
 #if PTW32_LEVEL >= PTW32_LEVEL_MAX
 #ifdef NEED_ERRNO
-#include "need_errno.h"
+#include <need_errno.h>
 #else
 #include <errno.h>
 #endif
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/pthread/sched.h b/loader/include/Geode/cocos/platform/third_party/win32/pthread/sched.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/pthread/sched.h
rename to loader/include/Geode/cocos/platform/third_party/win32/pthread/sched.h
index dfb8e934..5f5add47 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/pthread/sched.h
+++ b/loader/include/Geode/cocos/platform/third_party/win32/pthread/sched.h
@@ -107,7 +107,7 @@
 
 #if PTW32_LEVEL >= PTW32_LEVEL_MAX
 #ifdef NEED_ERRNO
-#include "need_errno.h"
+#include <need_errno.h>
 #else
 #include <errno.h>
 #endif
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/pthread/semaphore.h b/loader/include/Geode/cocos/platform/third_party/win32/pthread/semaphore.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/pthread/semaphore.h
rename to loader/include/Geode/cocos/platform/third_party/win32/pthread/semaphore.h
index bdcc2c7e..92b63e22 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/pthread/semaphore.h
+++ b/loader/include/Geode/cocos/platform/third_party/win32/pthread/semaphore.h
@@ -106,7 +106,7 @@
 
 #if PTW32_LEVEL >= PTW32_LEVEL_MAX
 #ifdef NEED_ERRNO
-#include "need_errno.h"
+#include <need_errno.h>
 #else
 #include <errno.h>
 #endif
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/zlib/zconf.h b/loader/include/Geode/cocos/platform/third_party/win32/zlib/zconf.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/zlib/zconf.h
rename to loader/include/Geode/cocos/platform/third_party/win32/zlib/zconf.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/zlib/zlib.h b/loader/include/Geode/cocos/platform/third_party/win32/zlib/zlib.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/third_party/win32/zlib/zlib.h
rename to loader/include/Geode/cocos/platform/third_party/win32/zlib/zlib.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/win32/CCAccelerometer.h b/loader/include/Geode/cocos/platform/win32/CCAccelerometer.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/platform/win32/CCAccelerometer.h
rename to loader/include/Geode/cocos/platform/win32/CCAccelerometer.h
index fea23d46..76c8e5dc 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/win32/CCAccelerometer.h
+++ b/loader/include/Geode/cocos/platform/win32/CCAccelerometer.h
@@ -25,7 +25,7 @@ THE SOFTWARE.
 #ifndef __PLATFORM_WIN32_UIACCELEROMETER_H__
 #define __PLATFORM_WIN32_UIACCELEROMETER_H__
 
-#include "platform/CCAccelerometerDelegate.h"
+#include "../CCAccelerometerDelegate.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/win32/CCApplication.h b/loader/include/Geode/cocos/platform/win32/CCApplication.h
similarity index 95%
rename from loader/include/Geode/cocos/cocos2dx/platform/win32/CCApplication.h
rename to loader/include/Geode/cocos/platform/win32/CCApplication.h
index a2fd380a..c135ffb0 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/win32/CCApplication.h
+++ b/loader/include/Geode/cocos/platform/win32/CCApplication.h
@@ -1,10 +1,10 @@
 #ifndef __CC_APPLICATION_WIN32_H__
 #define __CC_APPLICATION_WIN32_H__
 
-#include "ccMacros.h"
+#include "../../include/ccMacros.h"
 #include "CCStdC.h"
-#include "platform/CCCommon.h"
-#include "platform/CCApplicationProtocol.h"
+#include "../CCCommon.h"
+#include "../CCApplicationProtocol.h"
 #include <string>
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/win32/CCEGLView.h b/loader/include/Geode/cocos/platform/win32/CCEGLView.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/platform/win32/CCEGLView.h
rename to loader/include/Geode/cocos/platform/win32/CCEGLView.h
index 35f81793..a2306ed6 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/win32/CCEGLView.h
+++ b/loader/include/Geode/cocos/platform/win32/CCEGLView.h
@@ -26,11 +26,11 @@ THE SOFTWARE.
 #define __CC_EGLVIEW_WIN32_H__
 
 #include "CCStdC.h"
-#include "platform/CCCommon.h"
-#include "cocoa/CCGeometry.h"
-#include "platform/CCEGLViewProtocol.h"
+#include "../CCCommon.h"
+#include "../../cocoa/CCGeometry.h"
+#include "../CCEGLViewProtocol.h"
 
-#include "robtop/glfw/glfw3.h"
+#include "../../robtop/glfw/glfw3.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/win32/CCFileUtilsWin32.h b/loader/include/Geode/cocos/platform/win32/CCFileUtilsWin32.h
similarity index 95%
rename from loader/include/Geode/cocos/cocos2dx/platform/win32/CCFileUtilsWin32.h
rename to loader/include/Geode/cocos/platform/win32/CCFileUtilsWin32.h
index b7bc82fe..82990747 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/win32/CCFileUtilsWin32.h
+++ b/loader/include/Geode/cocos/platform/win32/CCFileUtilsWin32.h
@@ -24,10 +24,10 @@
 #ifndef __CC_FILEUTILS_WIN32_H__
 #define __CC_FILEUTILS_WIN32_H__
 
-#include "platform/CCFileUtils.h"
-#include "platform/CCPlatformMacros.h"
-#include "ccTypes.h"
-#include "ccTypeInfo.h"
+#include "../CCFileUtils.h"
+#include "../CCPlatformMacros.h"
+#include "../../include/ccTypes.h"
+#include "../../include/ccTypeInfo.h"
 #include <string>
 #include <vector>
 
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/win32/CCGL.h b/loader/include/Geode/cocos/platform/win32/CCGL.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/platform/win32/CCGL.h
rename to loader/include/Geode/cocos/platform/win32/CCGL.h
index d5b8b143..0ff30ec5 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/win32/CCGL.h
+++ b/loader/include/Geode/cocos/platform/win32/CCGL.h
@@ -25,7 +25,7 @@ THE SOFTWARE.
 #ifndef __CCGL_H__
 #define __CCGL_H__
 
-#include "GL/glew.h"
+#include "../third_party/win32/OGLES/GL/glew.h"
 
 #define CC_GL_DEPTH24_STENCIL8		GL_DEPTH24_STENCIL8
 
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/win32/CCPlatformDefine.h b/loader/include/Geode/cocos/platform/win32/CCPlatformDefine.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/win32/CCPlatformDefine.h
rename to loader/include/Geode/cocos/platform/win32/CCPlatformDefine.h
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/win32/CCStdC.h b/loader/include/Geode/cocos/platform/win32/CCStdC.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/platform/win32/CCStdC.h
rename to loader/include/Geode/cocos/platform/win32/CCStdC.h
index 832c39fe..aab22bce 100644
--- a/loader/include/Geode/cocos/cocos2dx/platform/win32/CCStdC.h
+++ b/loader/include/Geode/cocos/platform/win32/CCStdC.h
@@ -25,7 +25,7 @@ THE SOFTWARE.
 #ifndef __CC_STD_C_H__
 #define __CC_STD_C_H__
 
-#include "platform/CCPlatformMacros.h"
+#include "../CCPlatformMacros.h"
 #include <float.h>
 
 // for math.h on win32 platform
diff --git a/loader/include/Geode/cocos/cocos2dx/platform/win32/compat/stdint.h b/loader/include/Geode/cocos/platform/win32/compat/stdint.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/platform/win32/compat/stdint.h
rename to loader/include/Geode/cocos/platform/win32/compat/stdint.h
diff --git a/loader/include/Geode/cocos/cocos2dx/robtop/content/CCContentManager.h b/loader/include/Geode/cocos/robtop/content/CCContentManager.h
similarity index 77%
rename from loader/include/Geode/cocos/cocos2dx/robtop/content/CCContentManager.h
rename to loader/include/Geode/cocos/robtop/content/CCContentManager.h
index 28775548..2d9ebcd3 100644
--- a/loader/include/Geode/cocos/cocos2dx/robtop/content/CCContentManager.h
+++ b/loader/include/Geode/cocos/robtop/content/CCContentManager.h
@@ -1,9 +1,9 @@
 #ifndef __CCCONTENT_MANAGER_H__
 #define __CCCONTENT_MANAGER_H__
 
-#include "ccMacros.h"
-#include "cocoa/CCObject.h"
-#include "cocoa/CCDictionary.h"
+#include "../../include/ccMacros.h"
+#include "../../cocoa/CCObject.h"
+#include "../../cocoa/CCDictionary.h"
 
 RT_ADD(
     // not in cocos2d namespace
diff --git a/loader/include/Geode/cocos/cocos2dx/robtop/glfw/glfw3.h b/loader/include/Geode/cocos/robtop/glfw/glfw3.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/robtop/glfw/glfw3.h
rename to loader/include/Geode/cocos/robtop/glfw/glfw3.h
diff --git a/loader/include/Geode/cocos/cocos2dx/robtop/glfw/glfw3.lib b/loader/include/Geode/cocos/robtop/glfw/glfw3.lib
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/robtop/glfw/glfw3.lib
rename to loader/include/Geode/cocos/robtop/glfw/glfw3.lib
diff --git a/loader/include/Geode/cocos/cocos2dx/robtop/glfw/glfw3native.h b/loader/include/Geode/cocos/robtop/glfw/glfw3native.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/robtop/glfw/glfw3native.h
rename to loader/include/Geode/cocos/robtop/glfw/glfw3native.h
diff --git a/loader/include/Geode/cocos/cocos2dx/robtop/keyboard_dispatcher/CCKeyboardDelegate.h b/loader/include/Geode/cocos/robtop/keyboard_dispatcher/CCKeyboardDelegate.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/robtop/keyboard_dispatcher/CCKeyboardDelegate.h
rename to loader/include/Geode/cocos/robtop/keyboard_dispatcher/CCKeyboardDelegate.h
index f152ea49..094bf047 100644
--- a/loader/include/Geode/cocos/cocos2dx/robtop/keyboard_dispatcher/CCKeyboardDelegate.h
+++ b/loader/include/Geode/cocos/robtop/keyboard_dispatcher/CCKeyboardDelegate.h
@@ -1,8 +1,8 @@
 #ifndef __CCKEYBOARD_DELEGATE_H__
 #define __CCKEYBOARD_DELEGATE_H__
 
-#include "ccMacros.h"
-#include "cocoa/CCObject.h"
+#include "../../include/ccMacros.h"
+#include "../../cocoa/CCObject.h"
 
 RT_ADD(
 	NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/robtop/keyboard_dispatcher/CCKeyboardDispatcher.h b/loader/include/Geode/cocos/robtop/keyboard_dispatcher/CCKeyboardDispatcher.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/robtop/keyboard_dispatcher/CCKeyboardDispatcher.h
rename to loader/include/Geode/cocos/robtop/keyboard_dispatcher/CCKeyboardDispatcher.h
index f9e9eb1f..cb785230 100644
--- a/loader/include/Geode/cocos/cocos2dx/robtop/keyboard_dispatcher/CCKeyboardDispatcher.h
+++ b/loader/include/Geode/cocos/robtop/keyboard_dispatcher/CCKeyboardDispatcher.h
@@ -2,7 +2,7 @@
 #define __CCKEYBOARD_DISPATCHER_H__
 
 #include "CCKeyboardDelegate.h"
-#include "cocoa/CCArray.h"
+#include "../../cocoa/CCArray.h"
 
 RT_ADD(
 	NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/robtop/mouse_dispatcher/CCMouseDelegate.h b/loader/include/Geode/cocos/robtop/mouse_dispatcher/CCMouseDelegate.h
similarity index 92%
rename from loader/include/Geode/cocos/cocos2dx/robtop/mouse_dispatcher/CCMouseDelegate.h
rename to loader/include/Geode/cocos/robtop/mouse_dispatcher/CCMouseDelegate.h
index db0b3c38..0f98200c 100644
--- a/loader/include/Geode/cocos/cocos2dx/robtop/mouse_dispatcher/CCMouseDelegate.h
+++ b/loader/include/Geode/cocos/robtop/mouse_dispatcher/CCMouseDelegate.h
@@ -1,8 +1,8 @@
 #ifndef __CCMOUSE_DELEGATE_H__
 #define __CCMOUSE_DELEGATE_H__
 
-#include "ccMacros.h"
-#include "cocoa/CCObject.h"
+#include "../../include/ccMacros.h"
+#include "../../cocoa/CCObject.h"
 
 RT_ADD(
 	NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/robtop/mouse_dispatcher/CCMouseDispatcher.h b/loader/include/Geode/cocos/robtop/mouse_dispatcher/CCMouseDispatcher.h
similarity index 95%
rename from loader/include/Geode/cocos/cocos2dx/robtop/mouse_dispatcher/CCMouseDispatcher.h
rename to loader/include/Geode/cocos/robtop/mouse_dispatcher/CCMouseDispatcher.h
index 82b012b4..7f6c53b3 100644
--- a/loader/include/Geode/cocos/cocos2dx/robtop/mouse_dispatcher/CCMouseDispatcher.h
+++ b/loader/include/Geode/cocos/robtop/mouse_dispatcher/CCMouseDispatcher.h
@@ -2,7 +2,7 @@
 #define __CCMOUSE_DISPATCHER_H__
 
 #include "CCMouseDelegate.h"
-#include "cocoa/CCArray.h"
+#include "../../cocoa/CCArray.h"
 
 RT_ADD(
 	NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/robtop/scene_nodes/CCSceneTransitionDelegate.h b/loader/include/Geode/cocos/robtop/scene_nodes/CCSceneTransitionDelegate.h
similarity index 92%
rename from loader/include/Geode/cocos/cocos2dx/robtop/scene_nodes/CCSceneTransitionDelegate.h
rename to loader/include/Geode/cocos/robtop/scene_nodes/CCSceneTransitionDelegate.h
index 2dbab311..ab3f14e3 100644
--- a/loader/include/Geode/cocos/cocos2dx/robtop/scene_nodes/CCSceneTransitionDelegate.h
+++ b/loader/include/Geode/cocos/robtop/scene_nodes/CCSceneTransitionDelegate.h
@@ -1,7 +1,7 @@
 #ifndef __CCSCENE_TRANSITION_DELEGATE_H__
 #define __CCSCENE_TRANSITION_DELEGATE_H__
 
-#include "ccMacros.h"
+#include "../../include/ccMacros.h"
 
 RT_ADD(
 	NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/robtop/xml/DS_Dictionary.h b/loader/include/Geode/cocos/robtop/xml/DS_Dictionary.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/robtop/xml/DS_Dictionary.h
rename to loader/include/Geode/cocos/robtop/xml/DS_Dictionary.h
index a569d88e..c08f1637 100644
--- a/loader/include/Geode/cocos/cocos2dx/robtop/xml/DS_Dictionary.h
+++ b/loader/include/Geode/cocos/robtop/xml/DS_Dictionary.h
@@ -3,7 +3,7 @@
 
 #include "pugixml.hpp"
 #include <vector>
-#include <cocos2d.h>
+#include "../../include/cocos2d.h"
 
 class CC_DLL DS_Dictionary {
 public:
diff --git a/loader/include/Geode/cocos/cocos2dx/robtop/xml/pugiconfig.hpp b/loader/include/Geode/cocos/robtop/xml/pugiconfig.hpp
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/robtop/xml/pugiconfig.hpp
rename to loader/include/Geode/cocos/robtop/xml/pugiconfig.hpp
diff --git a/loader/include/Geode/cocos/cocos2dx/robtop/xml/pugixml.hpp b/loader/include/Geode/cocos/robtop/xml/pugixml.hpp
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/robtop/xml/pugixml.hpp
rename to loader/include/Geode/cocos/robtop/xml/pugixml.hpp
index 5042d664..f574b11d 100644
--- a/loader/include/Geode/cocos/cocos2dx/robtop/xml/pugixml.hpp
+++ b/loader/include/Geode/cocos/robtop/xml/pugixml.hpp
@@ -11,7 +11,7 @@
  * Copyright (C) 2003, by Kristen Wegner (kristen@tima.net)
  */
 
-#include <cocos2d.h>
+#include "../../include/cocos2d.h"
 
 #ifndef PUGIXML_VERSION
 // Define version macro; evaluates to major * 100 + minor so that it's safe to use in less-than comparisons
diff --git a/loader/include/Geode/cocos/cocos2dx/robtop/xml/readme.txt b/loader/include/Geode/cocos/robtop/xml/readme.txt
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/robtop/xml/readme.txt
rename to loader/include/Geode/cocos/robtop/xml/readme.txt
diff --git a/loader/include/Geode/cocos/cocos2dx/script_support/CCScriptSupport.h b/loader/include/Geode/cocos/script_support/CCScriptSupport.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/script_support/CCScriptSupport.h
rename to loader/include/Geode/cocos/script_support/CCScriptSupport.h
index 31852e94..50fbd64b 100644
--- a/loader/include/Geode/cocos/cocos2dx/script_support/CCScriptSupport.h
+++ b/loader/include/Geode/cocos/script_support/CCScriptSupport.h
@@ -25,11 +25,10 @@
 #ifndef __SCRIPT_SUPPORT_H__
 #define __SCRIPT_SUPPORT_H__
 
-#include "platform/CCCommon.h"
-#include "CCAccelerometer.h"
-#include "touch_dispatcher/CCTouch.h"
-#include "cocoa/CCSet.h"
-#include "CCAccelerometer.h"
+#include "../platform/CCCommon.h"
+#include "../platform/CCAccelerometer.h"
+#include "../touch_dispatcher/CCTouch.h"
+#include "../cocoa/CCSet.h"
 #include <map>
 #include <string>
 #include <list>
diff --git a/loader/include/Geode/cocos/cocos2dx/shaders/CCGLProgram.h b/loader/include/Geode/cocos/shaders/CCGLProgram.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/shaders/CCGLProgram.h
rename to loader/include/Geode/cocos/shaders/CCGLProgram.h
index 9fc64757..35412ec0 100644
--- a/loader/include/Geode/cocos/cocos2dx/shaders/CCGLProgram.h
+++ b/loader/include/Geode/cocos/shaders/CCGLProgram.h
@@ -28,10 +28,10 @@ THE SOFTWARE.
 #ifndef __CCGLPROGRAM_H__
 #define __CCGLPROGRAM_H__
 
-#include "ccMacros.h"
-#include "cocoa/CCObject.h"
+#include "../include/ccMacros.h"
+#include "../cocoa/CCObject.h"
 
-#include "CCGL.h"
+#include "../platform/CCGL.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/shaders/CCShaderCache.h b/loader/include/Geode/cocos/shaders/CCShaderCache.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/shaders/CCShaderCache.h
rename to loader/include/Geode/cocos/shaders/CCShaderCache.h
index 7fee76ea..956c870f 100644
--- a/loader/include/Geode/cocos/cocos2dx/shaders/CCShaderCache.h
+++ b/loader/include/Geode/cocos/shaders/CCShaderCache.h
@@ -27,7 +27,7 @@ THE SOFTWARE.
 #ifndef __CCSHADERCACHE_H__
 #define __CCSHADERCACHE_H__
 
-#include "cocoa/CCDictionary.h"
+#include "../cocoa/CCDictionary.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/shaders/ccGLStateCache.h b/loader/include/Geode/cocos/shaders/ccGLStateCache.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/shaders/ccGLStateCache.h
rename to loader/include/Geode/cocos/shaders/ccGLStateCache.h
index 2d3c22a1..e2664e5c 100644
--- a/loader/include/Geode/cocos/cocos2dx/shaders/ccGLStateCache.h
+++ b/loader/include/Geode/cocos/shaders/ccGLStateCache.h
@@ -27,8 +27,8 @@ THE SOFTWARE.
 #ifndef __CCGLSTATE_H__
 #define __CCGLSTATE_H__
 
-#include "CCGL.h"
-#include "platform/CCPlatformMacros.h"
+#include "../platform/CCGL.h"
+#include "../platform/CCPlatformMacros.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/shaders/ccShaderEx_SwitchMask_frag.h b/loader/include/Geode/cocos/shaders/ccShaderEx_SwitchMask_frag.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/shaders/ccShaderEx_SwitchMask_frag.h
rename to loader/include/Geode/cocos/shaders/ccShaderEx_SwitchMask_frag.h
diff --git a/loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionColorLengthTexture_frag.h b/loader/include/Geode/cocos/shaders/ccShader_PositionColorLengthTexture_frag.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionColorLengthTexture_frag.h
rename to loader/include/Geode/cocos/shaders/ccShader_PositionColorLengthTexture_frag.h
diff --git a/loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionColorLengthTexture_vert.h b/loader/include/Geode/cocos/shaders/ccShader_PositionColorLengthTexture_vert.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionColorLengthTexture_vert.h
rename to loader/include/Geode/cocos/shaders/ccShader_PositionColorLengthTexture_vert.h
diff --git a/loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionColor_frag.h b/loader/include/Geode/cocos/shaders/ccShader_PositionColor_frag.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionColor_frag.h
rename to loader/include/Geode/cocos/shaders/ccShader_PositionColor_frag.h
diff --git a/loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionColor_vert.h b/loader/include/Geode/cocos/shaders/ccShader_PositionColor_vert.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionColor_vert.h
rename to loader/include/Geode/cocos/shaders/ccShader_PositionColor_vert.h
diff --git a/loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionTextureA8Color_frag.h b/loader/include/Geode/cocos/shaders/ccShader_PositionTextureA8Color_frag.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionTextureA8Color_frag.h
rename to loader/include/Geode/cocos/shaders/ccShader_PositionTextureA8Color_frag.h
diff --git a/loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionTextureA8Color_vert.h b/loader/include/Geode/cocos/shaders/ccShader_PositionTextureA8Color_vert.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionTextureA8Color_vert.h
rename to loader/include/Geode/cocos/shaders/ccShader_PositionTextureA8Color_vert.h
diff --git a/loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionTextureColorAlphaTest_frag.h b/loader/include/Geode/cocos/shaders/ccShader_PositionTextureColorAlphaTest_frag.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionTextureColorAlphaTest_frag.h
rename to loader/include/Geode/cocos/shaders/ccShader_PositionTextureColorAlphaTest_frag.h
diff --git a/loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionTextureColor_frag.h b/loader/include/Geode/cocos/shaders/ccShader_PositionTextureColor_frag.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionTextureColor_frag.h
rename to loader/include/Geode/cocos/shaders/ccShader_PositionTextureColor_frag.h
diff --git a/loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionTextureColor_vert.h b/loader/include/Geode/cocos/shaders/ccShader_PositionTextureColor_vert.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionTextureColor_vert.h
rename to loader/include/Geode/cocos/shaders/ccShader_PositionTextureColor_vert.h
diff --git a/loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionTexture_frag.h b/loader/include/Geode/cocos/shaders/ccShader_PositionTexture_frag.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionTexture_frag.h
rename to loader/include/Geode/cocos/shaders/ccShader_PositionTexture_frag.h
diff --git a/loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionTexture_uColor_frag.h b/loader/include/Geode/cocos/shaders/ccShader_PositionTexture_uColor_frag.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionTexture_uColor_frag.h
rename to loader/include/Geode/cocos/shaders/ccShader_PositionTexture_uColor_frag.h
diff --git a/loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionTexture_uColor_vert.h b/loader/include/Geode/cocos/shaders/ccShader_PositionTexture_uColor_vert.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionTexture_uColor_vert.h
rename to loader/include/Geode/cocos/shaders/ccShader_PositionTexture_uColor_vert.h
diff --git a/loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionTexture_vert.h b/loader/include/Geode/cocos/shaders/ccShader_PositionTexture_vert.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/shaders/ccShader_PositionTexture_vert.h
rename to loader/include/Geode/cocos/shaders/ccShader_PositionTexture_vert.h
diff --git a/loader/include/Geode/cocos/cocos2dx/shaders/ccShader_Position_uColor_frag.h b/loader/include/Geode/cocos/shaders/ccShader_Position_uColor_frag.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/shaders/ccShader_Position_uColor_frag.h
rename to loader/include/Geode/cocos/shaders/ccShader_Position_uColor_frag.h
diff --git a/loader/include/Geode/cocos/cocos2dx/shaders/ccShader_Position_uColor_vert.h b/loader/include/Geode/cocos/shaders/ccShader_Position_uColor_vert.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/shaders/ccShader_Position_uColor_vert.h
rename to loader/include/Geode/cocos/shaders/ccShader_Position_uColor_vert.h
diff --git a/loader/include/Geode/cocos/cocos2dx/shaders/ccShaders.h b/loader/include/Geode/cocos/shaders/ccShaders.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/shaders/ccShaders.h
rename to loader/include/Geode/cocos/shaders/ccShaders.h
index f0bcfd4b..2c6d39eb 100644
--- a/loader/include/Geode/cocos/cocos2dx/shaders/ccShaders.h
+++ b/loader/include/Geode/cocos/shaders/ccShaders.h
@@ -25,8 +25,8 @@ THE SOFTWARE.
 #ifndef __CCSHADER_H__
 #define __CCSHADER_H__
 
-#include "CCGL.h"
-#include "platform/CCPlatformMacros.h"
+#include "../platform/CCGL.h"
+#include "../platform/CCPlatformMacros.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/sprite_nodes/CCAnimation.h b/loader/include/Geode/cocos/sprite_nodes/CCAnimation.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/sprite_nodes/CCAnimation.h
rename to loader/include/Geode/cocos/sprite_nodes/CCAnimation.h
index 7e6bca84..f8f52e0d 100644
--- a/loader/include/Geode/cocos/cocos2dx/sprite_nodes/CCAnimation.h
+++ b/loader/include/Geode/cocos/sprite_nodes/CCAnimation.h
@@ -26,11 +26,11 @@ THE SOFTWARE.
 #ifndef __CC_ANIMATION_H__
 #define __CC_ANIMATION_H__
 
-#include "platform/CCPlatformConfig.h"
-#include "cocoa/CCObject.h"
-#include "cocoa/CCArray.h"
-#include "cocoa/CCDictionary.h"
-#include "cocoa/CCGeometry.h"
+#include "../platform/CCPlatformConfig.h"
+#include "../cocoa/CCObject.h"
+#include "../cocoa/CCArray.h"
+#include "../cocoa/CCDictionary.h"
+#include "../cocoa/CCGeometry.h"
 #include "CCSpriteFrame.h"
 #include <string>
 
diff --git a/loader/include/Geode/cocos/cocos2dx/sprite_nodes/CCAnimationCache.h b/loader/include/Geode/cocos/sprite_nodes/CCAnimationCache.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/sprite_nodes/CCAnimationCache.h
rename to loader/include/Geode/cocos/sprite_nodes/CCAnimationCache.h
index f9228d03..1333145a 100644
--- a/loader/include/Geode/cocos/cocos2dx/sprite_nodes/CCAnimationCache.h
+++ b/loader/include/Geode/cocos/sprite_nodes/CCAnimationCache.h
@@ -26,8 +26,8 @@ THE SOFTWARE.
 #ifndef __CC_ANIMATION_CACHE_H__
 #define __CC_ANIMATION_CACHE_H__
 
-#include "cocoa/CCObject.h"
-#include "cocoa/CCDictionary.h"
+#include "../cocoa/CCObject.h"
+#include "../cocoa/CCDictionary.h"
 
 #include <string>
 
diff --git a/loader/include/Geode/cocos/cocos2dx/sprite_nodes/CCSprite.h b/loader/include/Geode/cocos/sprite_nodes/CCSprite.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/sprite_nodes/CCSprite.h
rename to loader/include/Geode/cocos/sprite_nodes/CCSprite.h
index f4132277..e633b358 100644
--- a/loader/include/Geode/cocos/cocos2dx/sprite_nodes/CCSprite.h
+++ b/loader/include/Geode/cocos/sprite_nodes/CCSprite.h
@@ -27,14 +27,14 @@ THE SOFTWARE.
 #ifndef __SPITE_NODE_CCSPRITE_H__
 #define __SPITE_NODE_CCSPRITE_H__
 
-#include "base_nodes/CCNode.h"
-#include "CCProtocols.h"
-#include "textures/CCTextureAtlas.h"
-#include "ccTypes.h"
-#include "cocoa/CCDictionary.h"
+#include "../base_nodes/CCNode.h"
+#include "../include/CCProtocols.h"
+#include "../textures/CCTextureAtlas.h"
+#include "../include/ccTypes.h"
+#include "../cocoa/CCDictionary.h"
 #include <string>
 #ifdef EMSCRIPTEN
-#include "base_nodes/CCGLBufferedNode.h"
+#include "../base_nodes/CCGLBufferedNode.h"
 #endif // EMSCRIPTEN
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/sprite_nodes/CCSpriteBatchNode.h b/loader/include/Geode/cocos/sprite_nodes/CCSpriteBatchNode.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/sprite_nodes/CCSpriteBatchNode.h
rename to loader/include/Geode/cocos/sprite_nodes/CCSpriteBatchNode.h
index da208ba7..619eae92 100644
--- a/loader/include/Geode/cocos/cocos2dx/sprite_nodes/CCSpriteBatchNode.h
+++ b/loader/include/Geode/cocos/sprite_nodes/CCSpriteBatchNode.h
@@ -28,11 +28,11 @@ THE SOFTWARE.
 #ifndef __CC_SPRITE_BATCH_NODE_H__
 #define __CC_SPRITE_BATCH_NODE_H__
 
-#include "base_nodes/CCNode.h"
-#include "CCProtocols.h"
-#include "textures/CCTextureAtlas.h"
-#include "ccMacros.h"
-#include "cocoa/CCArray.h"
+#include "../base_nodes/CCNode.h"
+#include "../include/CCProtocols.h"
+#include "../textures/CCTextureAtlas.h"
+#include "../include/ccMacros.h"
+#include "../cocoa/CCArray.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/sprite_nodes/CCSpriteFrame.h b/loader/include/Geode/cocos/sprite_nodes/CCSpriteFrame.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/sprite_nodes/CCSpriteFrame.h
rename to loader/include/Geode/cocos/sprite_nodes/CCSpriteFrame.h
index ce89aa94..7877e6a2 100644
--- a/loader/include/Geode/cocos/cocos2dx/sprite_nodes/CCSpriteFrame.h
+++ b/loader/include/Geode/cocos/sprite_nodes/CCSpriteFrame.h
@@ -27,10 +27,10 @@ THE SOFTWARE.
 #ifndef __SPRITE_CCSPRITE_FRAME_H__
 #define __SPRITE_CCSPRITE_FRAME_H__
 
-#include "base_nodes/CCNode.h"
-#include "CCProtocols.h"
-#include "cocoa/CCObject.h"
-#include "cocoa/CCGeometry.h"
+#include "../base_nodes/CCNode.h"
+#include "../include/CCProtocols.h"
+#include "../cocoa/CCObject.h"
+#include "../cocoa/CCGeometry.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/sprite_nodes/CCSpriteFrameCache.h b/loader/include/Geode/cocos/sprite_nodes/CCSpriteFrameCache.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/sprite_nodes/CCSpriteFrameCache.h
rename to loader/include/Geode/cocos/sprite_nodes/CCSpriteFrameCache.h
index e488898c..7890e0c5 100644
--- a/loader/include/Geode/cocos/cocos2dx/sprite_nodes/CCSpriteFrameCache.h
+++ b/loader/include/Geode/cocos/sprite_nodes/CCSpriteFrameCache.h
@@ -34,9 +34,9 @@ THE SOFTWARE.
  * http://zwoptex.zwopple.com/
  */
 
-#include "sprite_nodes/CCSpriteFrame.h"
-#include "textures/CCTexture2D.h"
-#include "cocoa/CCObject.h"
+#include "../sprite_nodes/CCSpriteFrame.h"
+#include "../textures/CCTexture2D.h"
+#include "../cocoa/CCObject.h"
 #include <set>
 #include <string>
 
diff --git a/loader/include/Geode/cocos/cocos2dx/support/CCNotificationCenter.h b/loader/include/Geode/cocos/support/CCNotificationCenter.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/support/CCNotificationCenter.h
rename to loader/include/Geode/cocos/support/CCNotificationCenter.h
index cef0a846..2d02981a 100644
--- a/loader/include/Geode/cocos/cocos2dx/support/CCNotificationCenter.h
+++ b/loader/include/Geode/cocos/support/CCNotificationCenter.h
@@ -25,8 +25,8 @@ THE SOFTWARE.
 #ifndef __CCNOTIFICATIONCENTER_H__
 #define __CCNOTIFICATIONCENTER_H__
 
-#include "cocoa/CCObject.h"
-#include "cocoa/CCArray.h"
+#include "../cocoa/CCObject.h"
+#include "../cocoa/CCArray.h"
 
 NS_CC_BEGIN
 /**
diff --git a/loader/include/Geode/cocos/cocos2dx/support/CCPointExtension.h b/loader/include/Geode/cocos/support/CCPointExtension.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/support/CCPointExtension.h
rename to loader/include/Geode/cocos/support/CCPointExtension.h
index 5bf0e51c..2718e6d8 100644
--- a/loader/include/Geode/cocos/cocos2dx/support/CCPointExtension.h
+++ b/loader/include/Geode/cocos/support/CCPointExtension.h
@@ -43,7 +43,7 @@ THE SOFTWARE.
   - cpvadd( CCPointMake(1,1), CCPointMake(2,2) ); // mixing chipmunk and CG (avoid)
  */
 
-#include "cocoa/CCGeometry.h"
+#include "../cocoa/CCGeometry.h"
 #include <math.h>
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/support/CCProfiling.h b/loader/include/Geode/cocos/support/CCProfiling.h
similarity index 96%
rename from loader/include/Geode/cocos/cocos2dx/support/CCProfiling.h
rename to loader/include/Geode/cocos/support/CCProfiling.h
index 2c8187cf..6ee7bc6c 100644
--- a/loader/include/Geode/cocos/cocos2dx/support/CCProfiling.h
+++ b/loader/include/Geode/cocos/support/CCProfiling.h
@@ -25,10 +25,10 @@ THE SOFTWARE.
 #ifndef __SUPPORT_CCPROFILING_H__
 #define __SUPPORT_CCPROFILING_H__
 
-#include "ccConfig.h"
-#include "cocoa/CCObject.h"
-#include "platform/platform.h"
-#include "cocoa/CCDictionary.h"
+#include "../include/ccConfig.h"
+#include "../cocoa/CCObject.h"
+#include "../platform/platform.h"
+#include "../cocoa/CCDictionary.h"
 #include <string>
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/support/CCVertex.h b/loader/include/Geode/cocos/support/CCVertex.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/support/CCVertex.h
rename to loader/include/Geode/cocos/support/CCVertex.h
index 2ce4446a..a2c6b7bd 100644
--- a/loader/include/Geode/cocos/cocos2dx/support/CCVertex.h
+++ b/loader/include/Geode/cocos/support/CCVertex.h
@@ -25,7 +25,7 @@
 #ifndef __CCVERTEX_H__
 #define __CCVERTEX_H__
 
-#include "ccTypes.h"
+#include "../include/ccTypes.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/support/TransformUtils.h b/loader/include/Geode/cocos/support/TransformUtils.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/support/TransformUtils.h
rename to loader/include/Geode/cocos/support/TransformUtils.h
index 94b742e5..c535731d 100644
--- a/loader/include/Geode/cocos/cocos2dx/support/TransformUtils.h
+++ b/loader/include/Geode/cocos/support/TransformUtils.h
@@ -28,7 +28,7 @@ THE SOFTWARE.
 
 // todo:
 // when in MAC or windows, it includes <OpenGL/gl.h>
-#include "CCGL.h"
+#include "../platform/CCGL.h"
 
 namespace   cocos2d {
 
diff --git a/loader/include/Geode/cocos/cocos2dx/support/base64.h b/loader/include/Geode/cocos/support/base64.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/support/base64.h
rename to loader/include/Geode/cocos/support/base64.h
diff --git a/loader/include/Geode/cocos/cocos2dx/support/ccUTF8.h b/loader/include/Geode/cocos/support/ccUTF8.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/support/ccUTF8.h
rename to loader/include/Geode/cocos/support/ccUTF8.h
index b7cf0f16..1d964b9c 100644
--- a/loader/include/Geode/cocos/cocos2dx/support/ccUTF8.h
+++ b/loader/include/Geode/cocos/support/ccUTF8.h
@@ -8,7 +8,7 @@
 #ifndef __cocos2dx__ccUTF8__
 #define __cocos2dx__ccUTF8__
 
-#include "platform/CCPlatformMacros.h"
+#include "../platform/CCPlatformMacros.h"
 #include <vector>
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/support/ccUtils.h b/loader/include/Geode/cocos/support/ccUtils.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/support/ccUtils.h
rename to loader/include/Geode/cocos/support/ccUtils.h
diff --git a/loader/include/Geode/cocos/cocos2dx/support/component/CCComponent.h b/loader/include/Geode/cocos/support/component/CCComponent.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/support/component/CCComponent.h
rename to loader/include/Geode/cocos/support/component/CCComponent.h
index 7b5ca794..9d6bd8e0 100644
--- a/loader/include/Geode/cocos/cocos2dx/support/component/CCComponent.h
+++ b/loader/include/Geode/cocos/support/component/CCComponent.h
@@ -25,7 +25,7 @@ THE SOFTWARE.
 #ifndef __CC_FRAMEWORK_COMPONENT_H__
 #define __CC_FRAMEWORK_COMPONENT_H__
 
-#include "cocoa/CCObject.h"
+#include "../../cocoa/CCObject.h"
 #include <string>
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/support/component/CCComponentContainer.h b/loader/include/Geode/cocos/support/component/CCComponentContainer.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/support/component/CCComponentContainer.h
rename to loader/include/Geode/cocos/support/component/CCComponentContainer.h
index a6a07942..48aae02a 100644
--- a/loader/include/Geode/cocos/cocos2dx/support/component/CCComponentContainer.h
+++ b/loader/include/Geode/cocos/support/component/CCComponentContainer.h
@@ -25,7 +25,7 @@ THE SOFTWARE.
 #ifndef __CC_FRAMEWORK_COMCONTAINER_H__
 #define __CC_FRAMEWORK_COMCONTAINER_H__
 
-#include "cocoa/CCDictionary.h"
+#include "../../cocoa/CCDictionary.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/support/data_support/ccCArray.h b/loader/include/Geode/cocos/support/data_support/ccCArray.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/support/data_support/ccCArray.h
rename to loader/include/Geode/cocos/support/data_support/ccCArray.h
index b4623185..e406185e 100644
--- a/loader/include/Geode/cocos/cocos2dx/support/data_support/ccCArray.h
+++ b/loader/include/Geode/cocos/support/data_support/ccCArray.h
@@ -42,8 +42,8 @@ THE SOFTWARE.
 #ifndef CC_ARRAY_H
 #define CC_ARRAY_H
 
-#include "ccMacros.h"
-#include "cocoa/CCObject.h"
+#include "../../include/ccMacros.h"
+#include "../../cocoa/CCObject.h"
 
 #include <stdlib.h>
 #include <string.h>
diff --git a/loader/include/Geode/cocos/cocos2dx/support/data_support/uthash.h b/loader/include/Geode/cocos/support/data_support/uthash.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/support/data_support/uthash.h
rename to loader/include/Geode/cocos/support/data_support/uthash.h
diff --git a/loader/include/Geode/cocos/cocos2dx/support/data_support/utlist.h b/loader/include/Geode/cocos/support/data_support/utlist.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/support/data_support/utlist.h
rename to loader/include/Geode/cocos/support/data_support/utlist.h
diff --git a/loader/include/Geode/cocos/cocos2dx/support/image_support/TGAlib.h b/loader/include/Geode/cocos/support/image_support/TGAlib.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/support/image_support/TGAlib.h
rename to loader/include/Geode/cocos/support/image_support/TGAlib.h
diff --git a/loader/include/Geode/cocos/cocos2dx/support/tinyxml2/tinyxml2.h b/loader/include/Geode/cocos/support/tinyxml2/tinyxml2.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/support/tinyxml2/tinyxml2.h
rename to loader/include/Geode/cocos/support/tinyxml2/tinyxml2.h
index 841c6f47..83429c97 100644
--- a/loader/include/Geode/cocos/cocos2dx/support/tinyxml2/tinyxml2.h
+++ b/loader/include/Geode/cocos/support/tinyxml2/tinyxml2.h
@@ -24,8 +24,8 @@ distribution.
 #ifndef TINYXML2_INCLUDED
 #define TINYXML2_INCLUDED
 
-#include "platform/CCPlatformConfig.h"
-#include "platform/CCPlatformMacros.h"
+#include "../../platform/CCPlatformConfig.h"
+#include "../../platform/CCPlatformMacros.h"
 
 #if defined(ANDROID_NDK) || defined(__BORLANDC__) || (CC_TARGET_PLATFORM == CC_PLATFORM_BLACKBERRY)
 #   include <ctype.h>
diff --git a/loader/include/Geode/cocos/cocos2dx/support/user_default/CCUserDefault.h b/loader/include/Geode/cocos/support/user_default/CCUserDefault.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/support/user_default/CCUserDefault.h
rename to loader/include/Geode/cocos/support/user_default/CCUserDefault.h
index 1ba4bde5..87ef16e5 100644
--- a/loader/include/Geode/cocos/cocos2dx/support/user_default/CCUserDefault.h
+++ b/loader/include/Geode/cocos/support/user_default/CCUserDefault.h
@@ -24,7 +24,7 @@ THE SOFTWARE.
 #ifndef __SUPPORT_CCUSERDEFAULT_H__
 #define __SUPPORT_CCUSERDEFAULT_H__
 
-#include "platform/CCPlatformMacros.h"
+#include "../../platform/CCPlatformMacros.h"
 #include <string>
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/support/zip_support/ZipUtils.h b/loader/include/Geode/cocos/support/zip_support/ZipUtils.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/support/zip_support/ZipUtils.h
rename to loader/include/Geode/cocos/support/zip_support/ZipUtils.h
index bb0b6c28..0a95ae2c 100644
--- a/loader/include/Geode/cocos/cocos2dx/support/zip_support/ZipUtils.h
+++ b/loader/include/Geode/cocos/support/zip_support/ZipUtils.h
@@ -25,13 +25,13 @@ THE SOFTWARE.
 #define __SUPPORT_ZIPUTILS_H__
 
 #include <string>
-#include "CCPlatformDefine.h"
-#include "platform/CCPlatformConfig.h"
-#include "ccMacros.h"
+#include "../../platform/CCPlatformDefine.h"
+#include "../../platform/CCPlatformConfig.h"
+#include "../../include/ccMacros.h"
 #include "zipMacro.h"
 
 #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
-#include "platform/android/CCFileUtilsAndroid.h"
+#include "../../platform/android/CCFileUtilsAndroid.h"
 #endif
 
 namespace cocos2d
diff --git a/loader/include/Geode/cocos/cocos2dx/support/zip_support/ioapi.h b/loader/include/Geode/cocos/support/zip_support/ioapi.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/support/zip_support/ioapi.h
rename to loader/include/Geode/cocos/support/zip_support/ioapi.h
index a201aa21..34dcdf29 100644
--- a/loader/include/Geode/cocos/cocos2dx/support/zip_support/ioapi.h
+++ b/loader/include/Geode/cocos/support/zip_support/ioapi.h
@@ -21,7 +21,7 @@
 #ifndef _ZLIBIOAPI64_H
 #define _ZLIBIOAPI64_H
 
-#include "platform/CCPlatformConfig.h"
+#include "../../platform/CCPlatformConfig.h"
 #include "zipMacro.h"
 
 #if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
@@ -55,7 +55,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include "zlib.h"
+#include "../../platform/IncludeZlib.h"
 
 namespace cocos2d {
 
@@ -96,7 +96,7 @@ namespace cocos2d {
 typedef  64BIT_INT_CUSTOM_TYPE ZPOS64_T;
 #else
 #ifdef HAS_STDINT_H
-#include "stdint.h"
+#include <stdint.h>
 typedef uint64_t ZPOS64_T;
 #else
 
diff --git a/loader/include/Geode/cocos/cocos2dx/support/zip_support/unzip.h b/loader/include/Geode/cocos/support/zip_support/unzip.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/support/zip_support/unzip.h
rename to loader/include/Geode/cocos/support/zip_support/unzip.h
index 2971ef8b..e8a4721f 100644
--- a/loader/include/Geode/cocos/cocos2dx/support/zip_support/unzip.h
+++ b/loader/include/Geode/cocos/support/zip_support/unzip.h
@@ -43,10 +43,10 @@
 #ifndef _unz64_H
 #define _unz64_H
 
-#include "CCPlatformDefine.h"
+#include "../../platform/CCPlatformDefine.h"
 
 #ifndef _ZLIB_H
-#include "zlib.h"
+#include "../../platform/IncludeZlib.h"
 #endif
 
 #ifndef  _ZLIBIOAPI_H
diff --git a/loader/include/Geode/cocos/cocos2dx/support/zip_support/zipMacro.h b/loader/include/Geode/cocos/support/zip_support/zipMacro.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/support/zip_support/zipMacro.h
rename to loader/include/Geode/cocos/support/zip_support/zipMacro.h
diff --git a/loader/include/Geode/cocos/cocos2dx/text_input_node/CCIMEDelegate.h b/loader/include/Geode/cocos/text_input_node/CCIMEDelegate.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/text_input_node/CCIMEDelegate.h
rename to loader/include/Geode/cocos/text_input_node/CCIMEDelegate.h
index 5d3f19b0..adff3b12 100644
--- a/loader/include/Geode/cocos/cocos2dx/text_input_node/CCIMEDelegate.h
+++ b/loader/include/Geode/cocos/text_input_node/CCIMEDelegate.h
@@ -25,7 +25,7 @@ THE SOFTWARE.
 #ifndef __CC_IME_DELEGATE_H__
 #define __CC_IME_DELEGATE_H__
 
-#include "cocoa/CCGeometry.h"
+#include "../cocoa/CCGeometry.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/text_input_node/CCIMEDispatcher.h b/loader/include/Geode/cocos/text_input_node/CCIMEDispatcher.h
similarity index 100%
rename from loader/include/Geode/cocos/cocos2dx/text_input_node/CCIMEDispatcher.h
rename to loader/include/Geode/cocos/text_input_node/CCIMEDispatcher.h
diff --git a/loader/include/Geode/cocos/cocos2dx/text_input_node/CCTextFieldTTF.h b/loader/include/Geode/cocos/text_input_node/CCTextFieldTTF.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/text_input_node/CCTextFieldTTF.h
rename to loader/include/Geode/cocos/text_input_node/CCTextFieldTTF.h
index 0510038c..7b5c926f 100644
--- a/loader/include/Geode/cocos/cocos2dx/text_input_node/CCTextFieldTTF.h
+++ b/loader/include/Geode/cocos/text_input_node/CCTextFieldTTF.h
@@ -25,9 +25,9 @@ THE SOFTWARE.
 #ifndef __CC_TEXT_FIELD_H__
 #define __CC_TEXT_FIELD_H__
 
-#include "label_nodes/CCLabelTTF.h"
-#include "text_input_node/CCIMEDelegate.h"
-#include "touch_dispatcher/CCTouchDelegateProtocol.h"
+#include "../label_nodes/CCLabelTTF.h"
+#include "../text_input_node/CCIMEDelegate.h"
+#include "../touch_dispatcher/CCTouchDelegateProtocol.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/textures/CCTexture2D.h b/loader/include/Geode/cocos/textures/CCTexture2D.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/textures/CCTexture2D.h
rename to loader/include/Geode/cocos/textures/CCTexture2D.h
index 05aa37a8..6a107a48 100644
--- a/loader/include/Geode/cocos/cocos2dx/textures/CCTexture2D.h
+++ b/loader/include/Geode/cocos/textures/CCTexture2D.h
@@ -27,11 +27,11 @@ THE SOFTWARE.
 #define __CCTEXTURE2D_H__
 
 #include <string>
-#include "cocoa/CCObject.h"
-#include "cocoa/CCGeometry.h"
-#include "ccTypes.h"
+#include "../cocoa/CCObject.h"
+#include "../cocoa/CCGeometry.h"
+#include "../include/ccTypes.h"
 #ifdef EMSCRIPTEN
-#include "base_nodes/CCGLBufferedNode.h"
+#include "../base_nodes/CCGLBufferedNode.h"
 #endif // EMSCRIPTEN
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/textures/CCTextureAtlas.h b/loader/include/Geode/cocos/textures/CCTextureAtlas.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/textures/CCTextureAtlas.h
rename to loader/include/Geode/cocos/textures/CCTextureAtlas.h
index fe676e9b..f215b061 100644
--- a/loader/include/Geode/cocos/cocos2dx/textures/CCTextureAtlas.h
+++ b/loader/include/Geode/cocos/textures/CCTextureAtlas.h
@@ -27,9 +27,9 @@ THE SOFTWARE.
 #ifndef __CCTEXTURE_ATLAS_H__
 #define __CCTEXTURE_ATLAS_H__
 
-#include "ccTypes.h"
-#include "cocoa/CCObject.h"
-#include "ccConfig.h"
+#include "../include/ccTypes.h"
+#include "../cocoa/CCObject.h"
+#include "../include/ccConfig.h"
 #include <string>
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/textures/CCTextureCache.h b/loader/include/Geode/cocos/textures/CCTextureCache.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/textures/CCTextureCache.h
rename to loader/include/Geode/cocos/textures/CCTextureCache.h
index 50a49b81..062cea61 100644
--- a/loader/include/Geode/cocos/cocos2dx/textures/CCTextureCache.h
+++ b/loader/include/Geode/cocos/textures/CCTextureCache.h
@@ -28,14 +28,14 @@ THE SOFTWARE.
 #ifndef __CCTEXTURE_CACHE_H__
 #define __CCTEXTURE_CACHE_H__
 
-#include "cocoa/CCObject.h"
-#include "cocoa/CCDictionary.h"
-#include "textures/CCTexture2D.h"
+#include "../cocoa/CCObject.h"
+#include "../cocoa/CCDictionary.h"
+#include "../textures/CCTexture2D.h"
 #include <string>
 
 
 #if CC_ENABLE_CACHE_TEXTURE_DATA
-    #include "platform/CCImage.h"
+    #include "../platform/CCImage.h"
     #include <list>
 #endif
 
diff --git a/loader/include/Geode/cocos/cocos2dx/textures/CCTextureETC.h b/loader/include/Geode/cocos/textures/CCTextureETC.h
similarity index 94%
rename from loader/include/Geode/cocos/cocos2dx/textures/CCTextureETC.h
rename to loader/include/Geode/cocos/textures/CCTextureETC.h
index a4a7bb36..18b6f059 100644
--- a/loader/include/Geode/cocos/cocos2dx/textures/CCTextureETC.h
+++ b/loader/include/Geode/cocos/textures/CCTextureETC.h
@@ -25,9 +25,9 @@
 #ifndef __CCETCTEXTURE_H__
 #define __CCETCTEXTURE_H__
 
-#include "cocoa/CCObject.h"
-#include "platform/CCPlatformMacros.h"
-#include "CCGL.h"
+#include "../cocoa/CCObject.h"
+#include "../platform/CCPlatformMacros.h"
+#include "../platform/CCGL.h"
 
 NS_CC_BEGIN
 /**
diff --git a/loader/include/Geode/cocos/cocos2dx/textures/CCTexturePVR.h b/loader/include/Geode/cocos/textures/CCTexturePVR.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/textures/CCTexturePVR.h
rename to loader/include/Geode/cocos/textures/CCTexturePVR.h
index ce71c255..fb7838a4 100644
--- a/loader/include/Geode/cocos/cocos2dx/textures/CCTexturePVR.h
+++ b/loader/include/Geode/cocos/textures/CCTexturePVR.h
@@ -26,10 +26,10 @@ THE SOFTWARE.
 #ifndef __CCPVRTEXTURE_H__
 #define __CCPVRTEXTURE_H__
 
-#include "CCStdC.h"
-#include "CCGL.h"
-#include "cocoa/CCObject.h"
-#include "cocoa/CCArray.h"
+#include "../platform/CCStdC.h"
+#include "../platform/CCGL.h"
+#include "../cocoa/CCObject.h"
+#include "../cocoa/CCArray.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/tilemap_parallax_nodes/CCParallaxNode.h b/loader/include/Geode/cocos/tilemap_parallax_nodes/CCParallaxNode.h
similarity index 96%
rename from loader/include/Geode/cocos/cocos2dx/tilemap_parallax_nodes/CCParallaxNode.h
rename to loader/include/Geode/cocos/tilemap_parallax_nodes/CCParallaxNode.h
index 455139e9..e83d33ac 100644
--- a/loader/include/Geode/cocos/cocos2dx/tilemap_parallax_nodes/CCParallaxNode.h
+++ b/loader/include/Geode/cocos/tilemap_parallax_nodes/CCParallaxNode.h
@@ -26,8 +26,8 @@ THE SOFTWARE.
 #ifndef __CCPARALLAX_NODE_H__
 #define __CCPARALLAX_NODE_H__
 
-#include "base_nodes/CCNode.h"
-/*#include "support/data_support/ccArray.h"*/
+#include "../base_nodes/CCNode.h"
+/*#include "../support/data_support/ccCArray.h"*/
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/tilemap_parallax_nodes/CCTMXLayer.h b/loader/include/Geode/cocos/tilemap_parallax_nodes/CCTMXLayer.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/tilemap_parallax_nodes/CCTMXLayer.h
rename to loader/include/Geode/cocos/tilemap_parallax_nodes/CCTMXLayer.h
index b895d9e4..2b21e936 100644
--- a/loader/include/Geode/cocos/cocos2dx/tilemap_parallax_nodes/CCTMXLayer.h
+++ b/loader/include/Geode/cocos/tilemap_parallax_nodes/CCTMXLayer.h
@@ -27,8 +27,8 @@ THE SOFTWARE.
 #define __CCTMX_LAYER_H__
 
 #include "CCTMXObjectGroup.h"
-#include "base_nodes/CCAtlasNode.h"
-#include "sprite_nodes/CCSpriteBatchNode.h"
+#include "../base_nodes/CCAtlasNode.h"
+#include "../sprite_nodes/CCSpriteBatchNode.h"
 #include "CCTMXXMLParser.h"
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/tilemap_parallax_nodes/CCTMXObjectGroup.h b/loader/include/Geode/cocos/tilemap_parallax_nodes/CCTMXObjectGroup.h
similarity index 95%
rename from loader/include/Geode/cocos/cocos2dx/tilemap_parallax_nodes/CCTMXObjectGroup.h
rename to loader/include/Geode/cocos/tilemap_parallax_nodes/CCTMXObjectGroup.h
index 937f056e..06f8b5df 100644
--- a/loader/include/Geode/cocos/cocos2dx/tilemap_parallax_nodes/CCTMXObjectGroup.h
+++ b/loader/include/Geode/cocos/tilemap_parallax_nodes/CCTMXObjectGroup.h
@@ -27,10 +27,10 @@ THE SOFTWARE.
 #ifndef __CCTMX_OBJECT_GROUP_H__
 #define __CCTMX_OBJECT_GROUP_H__
 
-#include "cocoa/CCGeometry.h"
-#include "cocoa/CCString.h"
-#include "cocoa/CCArray.h"
-#include "cocoa/CCDictionary.h"
+#include "../cocoa/CCGeometry.h"
+#include "../cocoa/CCString.h"
+#include "../cocoa/CCArray.h"
+#include "../cocoa/CCDictionary.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/tilemap_parallax_nodes/CCTMXTiledMap.h b/loader/include/Geode/cocos/tilemap_parallax_nodes/CCTMXTiledMap.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/tilemap_parallax_nodes/CCTMXTiledMap.h
rename to loader/include/Geode/cocos/tilemap_parallax_nodes/CCTMXTiledMap.h
index d942c328..bd3b7b50 100644
--- a/loader/include/Geode/cocos/cocos2dx/tilemap_parallax_nodes/CCTMXTiledMap.h
+++ b/loader/include/Geode/cocos/tilemap_parallax_nodes/CCTMXTiledMap.h
@@ -26,7 +26,7 @@ THE SOFTWARE.
 #ifndef __CCTMX_TILE_MAP_H__
 #define __CCTMX_TILE_MAP_H__
 
-#include "base_nodes/CCNode.h"
+#include "../base_nodes/CCNode.h"
 #include "CCTMXObjectGroup.h"
 
 NS_CC_BEGIN
diff --git a/loader/include/Geode/cocos/cocos2dx/tilemap_parallax_nodes/CCTMXXMLParser.h b/loader/include/Geode/cocos/tilemap_parallax_nodes/CCTMXXMLParser.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/tilemap_parallax_nodes/CCTMXXMLParser.h
rename to loader/include/Geode/cocos/tilemap_parallax_nodes/CCTMXXMLParser.h
index 2df1a3e9..90601382 100644
--- a/loader/include/Geode/cocos/cocos2dx/tilemap_parallax_nodes/CCTMXXMLParser.h
+++ b/loader/include/Geode/cocos/tilemap_parallax_nodes/CCTMXXMLParser.h
@@ -28,10 +28,10 @@ THE SOFTWARE.
 #ifndef __CC_TM_XML_PARSER__
 #define __CC_TM_XML_PARSER__
 
-#include "cocoa/CCArray.h"
-#include "cocoa/CCDictionary.h"
-#include "cocoa/CCGeometry.h"
-#include "platform/CCSAXParser.h"
+#include "../cocoa/CCArray.h"
+#include "../cocoa/CCDictionary.h"
+#include "../cocoa/CCGeometry.h"
+#include "../platform/CCSAXParser.h"
 
 #include <string>
 
diff --git a/loader/include/Geode/cocos/cocos2dx/tilemap_parallax_nodes/CCTileMapAtlas.h b/loader/include/Geode/cocos/tilemap_parallax_nodes/CCTileMapAtlas.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/tilemap_parallax_nodes/CCTileMapAtlas.h
rename to loader/include/Geode/cocos/tilemap_parallax_nodes/CCTileMapAtlas.h
index e953f33d..bc207be4 100644
--- a/loader/include/Geode/cocos/cocos2dx/tilemap_parallax_nodes/CCTileMapAtlas.h
+++ b/loader/include/Geode/cocos/tilemap_parallax_nodes/CCTileMapAtlas.h
@@ -27,7 +27,7 @@ THE SOFTWARE.
 #define __CCTILE_MAP_ATLAS__
 
 
-#include "base_nodes/CCAtlasNode.h"
+#include "../base_nodes/CCAtlasNode.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/touch_dispatcher/CCTouch.h b/loader/include/Geode/cocos/touch_dispatcher/CCTouch.h
similarity index 97%
rename from loader/include/Geode/cocos/cocos2dx/touch_dispatcher/CCTouch.h
rename to loader/include/Geode/cocos/touch_dispatcher/CCTouch.h
index 496902fb..eadb628c 100644
--- a/loader/include/Geode/cocos/cocos2dx/touch_dispatcher/CCTouch.h
+++ b/loader/include/Geode/cocos/touch_dispatcher/CCTouch.h
@@ -25,8 +25,8 @@ THE SOFTWARE.
 #ifndef __CC_TOUCH_H__
 #define __CC_TOUCH_H__
 
-#include "cocoa/CCObject.h"
-#include "cocoa/CCGeometry.h"
+#include "../cocoa/CCObject.h"
+#include "../cocoa/CCGeometry.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/touch_dispatcher/CCTouchDelegateProtocol.h b/loader/include/Geode/cocos/touch_dispatcher/CCTouchDelegateProtocol.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/touch_dispatcher/CCTouchDelegateProtocol.h
rename to loader/include/Geode/cocos/touch_dispatcher/CCTouchDelegateProtocol.h
index f50e6913..318f684e 100644
--- a/loader/include/Geode/cocos/cocos2dx/touch_dispatcher/CCTouchDelegateProtocol.h
+++ b/loader/include/Geode/cocos/touch_dispatcher/CCTouchDelegateProtocol.h
@@ -26,8 +26,8 @@ THE SOFTWARE.
 #ifndef __TOUCH_DISPATHCHER_CCTOUCH_DELEGATE_PROTOCOL_H__
 #define __TOUCH_DISPATHCHER_CCTOUCH_DELEGATE_PROTOCOL_H__
 
-#include "cocoa/CCObject.h"
-#include "ccConfig.h"
+#include "../cocoa/CCObject.h"
+#include "../include/ccConfig.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/touch_dispatcher/CCTouchDispatcher.h b/loader/include/Geode/cocos/touch_dispatcher/CCTouchDispatcher.h
similarity index 99%
rename from loader/include/Geode/cocos/cocos2dx/touch_dispatcher/CCTouchDispatcher.h
rename to loader/include/Geode/cocos/touch_dispatcher/CCTouchDispatcher.h
index 9574cd48..0ef30f0d 100644
--- a/loader/include/Geode/cocos/cocos2dx/touch_dispatcher/CCTouchDispatcher.h
+++ b/loader/include/Geode/cocos/touch_dispatcher/CCTouchDispatcher.h
@@ -27,8 +27,8 @@ THE SOFTWARE.
 #define __TOUCH_DISPATCHER_CCTOUCH_DISPATCHER_H__
 
 #include "CCTouchDelegateProtocol.h"
-#include "cocoa/CCObject.h"
-#include "cocoa/CCArray.h"
+#include "../cocoa/CCObject.h"
+#include "../cocoa/CCArray.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/include/Geode/cocos/cocos2dx/touch_dispatcher/CCTouchHandler.h b/loader/include/Geode/cocos/touch_dispatcher/CCTouchHandler.h
similarity index 98%
rename from loader/include/Geode/cocos/cocos2dx/touch_dispatcher/CCTouchHandler.h
rename to loader/include/Geode/cocos/touch_dispatcher/CCTouchHandler.h
index 77062e98..fb818ae4 100644
--- a/loader/include/Geode/cocos/cocos2dx/touch_dispatcher/CCTouchHandler.h
+++ b/loader/include/Geode/cocos/touch_dispatcher/CCTouchHandler.h
@@ -28,8 +28,8 @@ THE SOFTWARE.
 
 #include "CCTouchDelegateProtocol.h"
 #include "CCTouchDispatcher.h"
-#include "cocoa/CCObject.h"
-#include "cocoa/CCSet.h"
+#include "../cocoa/CCObject.h"
+#include "../cocoa/CCSet.h"
 
 NS_CC_BEGIN
 
diff --git a/loader/src/cocos2d-ext/ZipUtils.cpp b/loader/src/cocos2d-ext/ZipUtils.cpp
index 4263ca8e..3eedc37e 100644
--- a/loader/src/cocos2d-ext/ZipUtils.cpp
+++ b/loader/src/cocos2d-ext/ZipUtils.cpp
@@ -31,10 +31,11 @@
 #include <stdlib.h>
 #include <Geode/c++stl/gdstdlib.hpp>
 
-#include <ZipUtils.h>
-#include "ccMacros.h"
-#include "platform/CCFileUtils.h"
-#include <unzip.h>
+#include <../support/zip_support/ZipUtils.h>
+#include <ccMacros.h>
+#include <../platform/CCFileUtils.h>
+#include <../support/zip_support/ioapi.h>
+#include <../support/zip_support/unzip.h>
 #include <map>
 
 NS_CC_BEGIN
diff --git a/loader/src/load/Mod.cpp b/loader/src/load/Mod.cpp
index e973d005..ea772ef6 100644
--- a/loader/src/load/Mod.cpp
+++ b/loader/src/load/Mod.cpp
@@ -12,7 +12,7 @@
 #include <Geode/utils/vector.hpp>
 #include <Geode/utils/ranges.hpp>
 #include <InternalMod.hpp>
-#include <ZipUtils.h>
+#include <../support/zip_support/ZipUtils.h>
 
 USE_GEODE_NAMESPACE();
 
diff --git a/loader/src/utils/fetch.cpp b/loader/src/utils/fetch.cpp
index c07675de..b44d94ca 100644
--- a/loader/src/utils/fetch.cpp
+++ b/loader/src/utils/fetch.cpp
@@ -1,5 +1,5 @@
 #include <Geode/utils/fetch.hpp>
-#include <curl/curl.h>
+#include <../platform/IncludeCurl.h>
 #include <Geode/utils/casts.hpp>
 #include <Geode/loader/Loader.hpp>
 #include <Geode/utils/vector.hpp>
diff --git a/loader/src/utils/zip/ioapi.cpp b/loader/src/utils/zip/ioapi.cpp
index c63601b1..db4b075f 100644
--- a/loader/src/utils/zip/ioapi.cpp
+++ b/loader/src/utils/zip/ioapi.cpp
@@ -17,7 +17,7 @@
 #define THE_FOPEN(file, name, mode) file = fopen(name, mode);
 #endif
 
-#include <ioapi.h>
+#include "../../../include/Geode/cocos/support/zip_support/ioapi.h"
 
 namespace cocos2d {
 
diff --git a/loader/src/utils/zip/unzip.cpp b/loader/src/utils/zip/unzip.cpp
index f3cfeffd..4aed97b6 100644
--- a/loader/src/utils/zip/unzip.cpp
+++ b/loader/src/utils/zip/unzip.cpp
@@ -76,7 +76,7 @@
 #endif
 
 #include <zlib.h>
-#include <unzip.h>
+#include "../../../include/Geode/cocos/support/zip_support/unzip.h"
 
 #ifdef STDC
 #  include <stddef.h>

From 38bebd67cdd230a4f66613623f392999500903ee Mon Sep 17 00:00:00 2001
From: HJfod <60038575+HJfod@users.noreply.github.com>
Date: Mon, 17 Oct 2022 15:56:35 +0300
Subject: [PATCH 22/25] fix macos build  - add initializer_list constructor to
 `gd::vector`

---
 loader/include/Geode/c++stl/gdstdlib.hpp | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/loader/include/Geode/c++stl/gdstdlib.hpp b/loader/include/Geode/c++stl/gdstdlib.hpp
index 714355c2..5f1b6e13 100644
--- a/loader/include/Geode/c++stl/gdstdlib.hpp
+++ b/loader/include/Geode/c++stl/gdstdlib.hpp
@@ -5,6 +5,7 @@
 #include <vector>
 #include <iostream>
 #include <variant> // for std::monostate
+#include <algorithm>
 #include <Geode/platform/platform.hpp>
 
 //#include "../utils/platform.hpp"
@@ -305,6 +306,14 @@ namespace gd {
 			}
 		}
 
+		vector(std::initializer_list<T> const& input) {
+			auto tmp = new T[input.size()];
+			m_start = tmp;
+			m_finish = m_start + input.size();
+			m_capacity_end = m_start + input.size();
+			std::copy(input.begin(), input.end(), std::begin(tmp));
+		}
+
 		T& front() {
 			return *m_start;
 		}

From c07efcfe15676ec544ba7f1eb0389911218287dd Mon Sep 17 00:00:00 2001
From: HJfod <60038575+HJfod@users.noreply.github.com>
Date: Mon, 17 Oct 2022 15:57:32 +0300
Subject: [PATCH 23/25] fix windows build  - include IncludeZlib.h instead of
 zlib.h

---
 loader/src/utils/zip/unzip.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/loader/src/utils/zip/unzip.cpp b/loader/src/utils/zip/unzip.cpp
index 4aed97b6..fdcb64df 100644
--- a/loader/src/utils/zip/unzip.cpp
+++ b/loader/src/utils/zip/unzip.cpp
@@ -75,8 +75,8 @@
         #define NOUNCRYPT
 #endif
 
-#include <zlib.h>
-#include "../../../include/Geode/cocos/support/zip_support/unzip.h"
+#include <../platform/IncludeZlib.h>
+#include <../support/zip_support/unzip.h>
 
 #ifdef STDC
 #  include <stddef.h>

From a0e56c044b82a1a840a2b21b61cb9c3e7ca2fa29 Mon Sep 17 00:00:00 2001
From: HJfod <60038575+HJfod@users.noreply.github.com>
Date: Mon, 17 Oct 2022 16:08:12 +0300
Subject: [PATCH 24/25] fix macos build

---
 loader/include/Geode/c++stl/gdstdlib.hpp | 2 +-
 loader/src/hooks/GeodeNodeMetadata.cpp   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/loader/include/Geode/c++stl/gdstdlib.hpp b/loader/include/Geode/c++stl/gdstdlib.hpp
index 5f1b6e13..384ef581 100644
--- a/loader/include/Geode/c++stl/gdstdlib.hpp
+++ b/loader/include/Geode/c++stl/gdstdlib.hpp
@@ -311,7 +311,7 @@ namespace gd {
 			m_start = tmp;
 			m_finish = m_start + input.size();
 			m_capacity_end = m_start + input.size();
-			std::copy(input.begin(), input.end(), std::begin(tmp));
+			std::copy(input.begin(), input.end(), tmp);
 		}
 
 		T& front() {
diff --git a/loader/src/hooks/GeodeNodeMetadata.cpp b/loader/src/hooks/GeodeNodeMetadata.cpp
index 4d74d551..27fef2fa 100644
--- a/loader/src/hooks/GeodeNodeMetadata.cpp
+++ b/loader/src/hooks/GeodeNodeMetadata.cpp
@@ -2,6 +2,7 @@
 #include <Geode/utils/Ref.hpp>
 #include <Geode/utils/cocos.hpp>
 #include <Geode/modify/Field.hpp>
+#include <Geode/modify/CCNode.hpp>
 
 USE_GEODE_NAMESPACE();
 using namespace geode::modifier;
@@ -59,7 +60,6 @@ public:
 };
 
 // proxy forwards
-#include <Geode/modify/CCNode.hpp>
 class $modify(ProxyCCNode, CCNode) {
     virtual CCObject* getUserObject() {
         return GeodeNodeMetadata::set(this)->m_userObject;

From 0b598b3d16184627455a37fdb7fbe22b4dcfbcc4 Mon Sep 17 00:00:00 2001
From: HJfod <60038575+HJfod@users.noreply.github.com>
Date: Mon, 17 Oct 2022 16:14:05 +0300
Subject: [PATCH 25/25] fix windows

---
 loader/src/cocos2d-ext/ZipUtils.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/loader/src/cocos2d-ext/ZipUtils.cpp b/loader/src/cocos2d-ext/ZipUtils.cpp
index 3eedc37e..6e520921 100644
--- a/loader/src/cocos2d-ext/ZipUtils.cpp
+++ b/loader/src/cocos2d-ext/ZipUtils.cpp
@@ -26,7 +26,7 @@
 #pragma warning(disable: 4251)
 #endif
 
-#include <zlib.h>
+#include <../platform/IncludeZlib.h>
 #include <assert.h>
 #include <stdlib.h>
 #include <Geode/c++stl/gdstdlib.hpp>