Ver código fonte

send models and textures to clients when they join for the first time or the files wer changed

Kolja Strohm 1 mês atrás
pai
commit
abcad7e553

+ 3 - 0
.gitignore

@@ -368,3 +368,6 @@ FodyWeavers.xsd
 /enc_temp_folder
 /Windows Version/data/syntax/
 /Windows Version/fcInit.ini
+/Windows Version/data/models/
+/Windows Version/data/textures/
+/Windows Version/data/images/

+ 2 - 20
FactoryCraft.sln

@@ -1,7 +1,7 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.3.32804.467
+# Visual Studio Version 18
+VisualStudioVersion = 18.1.11312.151 d18.0
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FactoryCraft", "FactoryCraft\FactoryCraft.vcxproj", "{A1B59831-7E37-4F83-A545-0E27609E8295}"
 EndProject
@@ -9,8 +9,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Windows Version", "Windows
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NoiseTest", "NoiseTest\NoiseTest.vcxproj", "{096A454C-3835-4A4E-89FE-34EDCCD80467}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "assembly", "assembly\assembly.vcxproj", "{1C0B0808-0D8E-49A6-87C2-1D03CA6B937D}"
-EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|ARM = Debug|ARM
@@ -77,22 +75,6 @@ Global
 		{096A454C-3835-4A4E-89FE-34EDCCD80467}.Release|x64.Build.0 = Release|x64
 		{096A454C-3835-4A4E-89FE-34EDCCD80467}.Release|x86.ActiveCfg = Release|Win32
 		{096A454C-3835-4A4E-89FE-34EDCCD80467}.Release|x86.Build.0 = Release|Win32
-		{1C0B0808-0D8E-49A6-87C2-1D03CA6B937D}.Debug|ARM.ActiveCfg = Debug|x64
-		{1C0B0808-0D8E-49A6-87C2-1D03CA6B937D}.Debug|ARM.Build.0 = Debug|x64
-		{1C0B0808-0D8E-49A6-87C2-1D03CA6B937D}.Debug|ARM64.ActiveCfg = Debug|x64
-		{1C0B0808-0D8E-49A6-87C2-1D03CA6B937D}.Debug|ARM64.Build.0 = Debug|x64
-		{1C0B0808-0D8E-49A6-87C2-1D03CA6B937D}.Debug|x64.ActiveCfg = Debug|x64
-		{1C0B0808-0D8E-49A6-87C2-1D03CA6B937D}.Debug|x64.Build.0 = Debug|x64
-		{1C0B0808-0D8E-49A6-87C2-1D03CA6B937D}.Debug|x86.ActiveCfg = Debug|Win32
-		{1C0B0808-0D8E-49A6-87C2-1D03CA6B937D}.Debug|x86.Build.0 = Debug|Win32
-		{1C0B0808-0D8E-49A6-87C2-1D03CA6B937D}.Release|ARM.ActiveCfg = Release|x64
-		{1C0B0808-0D8E-49A6-87C2-1D03CA6B937D}.Release|ARM.Build.0 = Release|x64
-		{1C0B0808-0D8E-49A6-87C2-1D03CA6B937D}.Release|ARM64.ActiveCfg = Release|x64
-		{1C0B0808-0D8E-49A6-87C2-1D03CA6B937D}.Release|ARM64.Build.0 = Release|x64
-		{1C0B0808-0D8E-49A6-87C2-1D03CA6B937D}.Release|x64.ActiveCfg = Release|x64
-		{1C0B0808-0D8E-49A6-87C2-1D03CA6B937D}.Release|x64.Build.0 = Release|x64
-		{1C0B0808-0D8E-49A6-87C2-1D03CA6B937D}.Release|x86.ActiveCfg = Release|Win32
-		{1C0B0808-0D8E-49A6-87C2-1D03CA6B937D}.Release|x86.Build.0 = Release|Win32
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 1 - 1
FactoryCraft/Player.cpp

@@ -380,7 +380,7 @@ PlayerEntityType::PlayerEntityType()
 {
     setName("Player");
     setModel(new ModelInfo(
-        "entities.m3/player", toArray("entities.ltdb/player.png", 6), 0, 1.f));
+        "data/models/entities.m3/player", toArray("data/textures/entities.ltdb/player.png", 6), 0, 1.f));
 }
 
 void PlayerEntityType::loadSuperEntity(

+ 81 - 4
FactoryCraft/Server.cpp

@@ -1,9 +1,11 @@
 #include "Server.h"
 
 #include <AsynchronCall.h>
+#include <Datei.h>
 #include <Globals.h>
 #include <iostream>
 #include <Logging.h>
+#include <Zeit.h>
 
 #include "Game.h"
 #include "PlayerRegister.h"
@@ -203,6 +205,79 @@ FCKlient::~FCKlient()
     ls->release();
 }
 
+void FCKlient::onInitialized()
+{
+    RCArray<Text> filesToTransfer;
+    checkResources("data/images", filesToTransfer);
+    checkResources("data/models", filesToTransfer);
+    checkResources("data/textures", filesToTransfer);
+    short endSignal = 0;
+    foreground->sende((char*)&endSignal, 2);
+    char* buffer = new char[4096];
+    for (Text* path : filesToTransfer)
+    {
+        Datei file(path->getText());
+        __int64 length = file.getSize();
+        file.open(Datei::Style::lesen);
+        int count = 0;
+        while (count < length)
+        {
+            int l = MIN(4096, length - count);
+            file.lese(buffer, l);
+            foreground->sende(buffer, l);
+            count += l;
+        }
+        file.close();
+    }
+    delete[] buffer;
+    zGameClient
+        = Game::INSTANCE->addPlayer(dynamic_cast<FCKlient*>(getThis()), name);
+}
+
+void FCKlient::checkResources(const char* path, RCArray<Text>& filesToTransfer)
+{
+    Datei file(path);
+    if (file.istOrdner())
+    {
+        RCArray<Text>* names = file.getDateiListe();
+        for (Text* name : *names)
+        {
+            Text tmp(path);
+            tmp.append() << "/" << *name;
+            checkResources(tmp, filesToTransfer);
+        }
+        names->release();
+    }
+    else
+    {
+        short len = (short)textLength(path);
+        foreground->sende((char*)&len, 2);
+        foreground->sende(path, len);
+        Datei resFile(path);
+        Zeit* zeit = resFile.getLastChange();
+        int tmp = zeit->zDatum()->getJahr();
+        foreground->sende((char*)&tmp, 4);
+        tmp = zeit->zDatum()->getMonat();
+        foreground->sende((char*)&tmp, 4);
+        tmp = zeit->zDatum()->getTag();
+        foreground->sende((char*)&tmp, 4);
+        tmp = (zeit->zUhrzeit()->getStunde() * 60
+                  + zeit->zUhrzeit()->getMinute())
+                * 60
+            + zeit->zUhrzeit()->getSekunde();
+        foreground->sende((char*)&tmp, 4);
+        bool needed = 0;
+        foreground->getNachricht((char*)&needed, 1);
+        if (needed)
+        {
+            __int64 size = resFile.getSize();
+            foreground->sende((char*)&size, 8);
+            filesToTransfer.add(new Text(path));
+        }
+        zeit->release();
+    }
+}
+
 // nicht constant
 void FCKlient::setForegroundClient(SKlient* foreground)
 {
@@ -211,8 +286,9 @@ void FCKlient::setForegroundClient(SKlient* foreground)
     foregroundReader = new NetworkReader(foreground);
     foregroundWriter = new NetworkWriter(foreground);
     if (foreground && background)
-        zGameClient = Game::INSTANCE->addPlayer(
-            dynamic_cast<FCKlient*>(getThis()), name);
+    {
+        onInitialized();
+    }
     foregroundRunning = 1;
     new AsynchronCall([this]() {
         while (this->foreground->waitForNextMessage())
@@ -246,8 +322,9 @@ void FCKlient::setBackgroundClient(SKlient* background)
     backgroundReader = new NetworkReader(background);
     backgroundWriter = new NetworkWriter(background);
     if (foreground && background)
-        zGameClient = Game::INSTANCE->addPlayer(
-            dynamic_cast<FCKlient*>(getThis()), name);
+    {
+        onInitialized();
+    }
     backgroundRunning = 1;
     new AsynchronCall([this]() {
         while (this->background->waitForNextMessage())

+ 6 - 0
FactoryCraft/Server.h

@@ -63,6 +63,12 @@ public:
     FCKlient(Network::SSLSKlient* klient, FactoryCraftServer* ls);
     // Destruktor
     virtual ~FCKlient();
+
+private:
+    void onInitialized();
+    void checkResources(const char* path, RCArray<Text>& filesToTransfer);
+
+public:
     void setForegroundClient(Network::SKlient* foreground);
     void setBackgroundClient(Network::SKlient* background);
     // nicht constant

+ 14 - 14
NoiseTest/NoiseTest.cpp

@@ -29,31 +29,31 @@ bool showValue = 1;
 
 class A
 {
-    virtual void f(){};
+    virtual void f() {};
 };
 
 class B : public A
 {
-    virtual void f() override{};
+    virtual void f() override {};
 };
 
 class C : public B
 {
-    virtual void f() override{};
+    virtual void f() override {};
 };
 
 void updateView()
 {
-    Vec3<int> minP
-        = position
-        - (Vec3<int>)Vec3<float>(
-              (float)img->getBreite() / 2.f, (float)img->getHeight() / 2.f, 0.f)
-              / zoom;
-    Vec3<int> maxP
-        = position
-        + (Vec3<int>)Vec3<float>(
-              (float)img->getBreite() / 2.f, (float)img->getHeight() / 2.f, 0.f)
-              / zoom;
+    Vec3<int> minP = position
+                   - (Vec3<int>)(Vec3<float>((float)img->getBreite() / 2.f,
+                                     (float)img->getHeight() / 2.f,
+                                     0.f)
+                                 / zoom);
+    Vec3<int> maxP = position
+                   + (Vec3<int>)(Vec3<float>((float)img->getBreite() / 2.f,
+                                     (float)img->getHeight() / 2.f,
+                                     0.f)
+                                 / zoom);
     int counter = 0;
     double min = INFINITY;
     double max = -INFINITY;
@@ -61,7 +61,7 @@ void updateView()
     {
         for (int j = 0; j < img->getHeight(); j++)
         {
-            Vec3<float> pos(i, j, 0);
+            Vec3<float> pos((float)i, (float)j, 0.f);
             pos -= Vec3<int>(img->getBreite() / 2, img->getHeight() / 2, 0);
             pos /= zoom;
             pos += position;

+ 154 - 154
Windows Version/data/blocks/blockTypes.json

@@ -6,12 +6,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/dirt.png",
-        "blocks.ltdb/dirt.png",
-        "blocks.ltdb/dirt.png",
-        "blocks.ltdb/dirt.png",
-        "blocks.ltdb/lawn.png",
-        "blocks.ltdb/dirt.png"
+        "data/textures/blocks.ltdb/dirt.png",
+        "data/textures/blocks.ltdb/dirt.png",
+        "data/textures/blocks.ltdb/dirt.png",
+        "data/textures/blocks.ltdb/dirt.png",
+        "data/textures/blocks.ltdb/lawn.png",
+        "data/textures/blocks.ltdb/dirt.png"
       ]
     },
     "mapColor": "0xFF3C7C29",
@@ -26,12 +26,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/stone.png",
-        "blocks.ltdb/stone.png",
-        "blocks.ltdb/stone.png",
-        "blocks.ltdb/stone.png",
-        "blocks.ltdb/stone.png",
-        "blocks.ltdb/stone.png"
+        "data/textures/blocks.ltdb/stone.png",
+        "data/textures/blocks.ltdb/stone.png",
+        "data/textures/blocks.ltdb/stone.png",
+        "data/textures/blocks.ltdb/stone.png",
+        "data/textures/blocks.ltdb/stone.png",
+        "data/textures/blocks.ltdb/stone.png"
       ]
     },
     "mapColor": "0xFF8E8E8D",
@@ -44,12 +44,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/sand.png",
-        "blocks.ltdb/sand.png",
-        "blocks.ltdb/sand.png",
-        "blocks.ltdb/sand.png",
-        "blocks.ltdb/sand.png",
-        "blocks.ltdb/sand.png"
+        "data/textures/blocks.ltdb/sand.png",
+        "data/textures/blocks.ltdb/sand.png",
+        "data/textures/blocks.ltdb/sand.png",
+        "data/textures/blocks.ltdb/sand.png",
+        "data/textures/blocks.ltdb/sand.png",
+        "data/textures/blocks.ltdb/sand.png"
       ]
     },
     "mapColor": "0xFFAE8558",
@@ -65,12 +65,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/oak.png",
-        "blocks.ltdb/oak.png",
-        "blocks.ltdb/oak.png",
-        "blocks.ltdb/oak.png",
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png"
+        "data/textures/blocks.ltdb/oak.png",
+        "data/textures/blocks.ltdb/oak.png",
+        "data/textures/blocks.ltdb/oak.png",
+        "data/textures/blocks.ltdb/oak.png",
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png"
       ]
     },
     "mapColor": "0xFF7F7A70",
@@ -139,12 +139,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png"
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png"
       ]
     },
     "mapColor": "0xFF7F7A70",
@@ -169,12 +169,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/leaves.png",
-        "blocks.ltdb/leaves.png",
-        "blocks.ltdb/leaves.png",
-        "blocks.ltdb/leaves.png",
-        "blocks.ltdb/leaves.png",
-        "blocks.ltdb/leaves.png"
+        "data/textures/blocks.ltdb/leaves.png",
+        "data/textures/blocks.ltdb/leaves.png",
+        "data/textures/blocks.ltdb/leaves.png",
+        "data/textures/blocks.ltdb/leaves.png",
+        "data/textures/blocks.ltdb/leaves.png",
+        "data/textures/blocks.ltdb/leaves.png"
       ]
     },
     "mapColor": "0xFF6A7C37",
@@ -211,12 +211,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/gravel.png",
-        "blocks.ltdb/gravel.png",
-        "blocks.ltdb/gravel.png",
-        "blocks.ltdb/gravel.png",
-        "blocks.ltdb/gravel.png",
-        "blocks.ltdb/gravel.png"
+        "data/textures/blocks.ltdb/gravel.png",
+        "data/textures/blocks.ltdb/gravel.png",
+        "data/textures/blocks.ltdb/gravel.png",
+        "data/textures/blocks.ltdb/gravel.png",
+        "data/textures/blocks.ltdb/gravel.png",
+        "data/textures/blocks.ltdb/gravel.png"
       ]
     },
     "mapColor": "0xFF928D8C",
@@ -278,12 +278,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/granite.png",
-        "blocks.ltdb/granite.png",
-        "blocks.ltdb/granite.png",
-        "blocks.ltdb/granite.png",
-        "blocks.ltdb/granite.png",
-        "blocks.ltdb/granite.png"
+        "data/textures/blocks.ltdb/granite.png",
+        "data/textures/blocks.ltdb/granite.png",
+        "data/textures/blocks.ltdb/granite.png",
+        "data/textures/blocks.ltdb/granite.png",
+        "data/textures/blocks.ltdb/granite.png",
+        "data/textures/blocks.ltdb/granite.png"
       ]
     },
     "mapColor": "0xFF3B3A3E",
@@ -296,12 +296,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/cobble.png",
-        "blocks.ltdb/cobble.png",
-        "blocks.ltdb/cobble.png",
-        "blocks.ltdb/cobble.png",
-        "blocks.ltdb/cobble.png",
-        "blocks.ltdb/cobble.png"
+        "data/textures/blocks.ltdb/cobble.png",
+        "data/textures/blocks.ltdb/cobble.png",
+        "data/textures/blocks.ltdb/cobble.png",
+        "data/textures/blocks.ltdb/cobble.png",
+        "data/textures/blocks.ltdb/cobble.png",
+        "data/textures/blocks.ltdb/cobble.png"
       ]
     },
     "mapColor": "0xFF7E7875"
@@ -313,12 +313,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/birch.png",
-        "blocks.ltdb/birch.png",
-        "blocks.ltdb/birch.png",
-        "blocks.ltdb/birch.png",
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png"
+        "data/textures/blocks.ltdb/birch.png",
+        "data/textures/blocks.ltdb/birch.png",
+        "data/textures/blocks.ltdb/birch.png",
+        "data/textures/blocks.ltdb/birch.png",
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png"
       ]
     },
     "mapColor": "0xFF99999D",
@@ -387,12 +387,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png"
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png"
       ]
     },
     "mapColor": "0xFF99999D",
@@ -417,12 +417,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/leaves.png",
-        "blocks.ltdb/leaves.png",
-        "blocks.ltdb/leaves.png",
-        "blocks.ltdb/leaves.png",
-        "blocks.ltdb/leaves.png",
-        "blocks.ltdb/leaves.png"
+        "data/textures/blocks.ltdb/leaves.png",
+        "data/textures/blocks.ltdb/leaves.png",
+        "data/textures/blocks.ltdb/leaves.png",
+        "data/textures/blocks.ltdb/leaves.png",
+        "data/textures/blocks.ltdb/leaves.png",
+        "data/textures/blocks.ltdb/leaves.png"
       ]
     },
     "mapColor": "0xFF6A7C37",
@@ -459,12 +459,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/beech.png",
-        "blocks.ltdb/beech.png",
-        "blocks.ltdb/beech.png",
-        "blocks.ltdb/beech.png",
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png"
+        "data/textures/blocks.ltdb/beech.png",
+        "data/textures/blocks.ltdb/beech.png",
+        "data/textures/blocks.ltdb/beech.png",
+        "data/textures/blocks.ltdb/beech.png",
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png"
       ]
     },
     "mapColor": "0xFF778172",
@@ -533,12 +533,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png"
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png"
       ]
     },
     "mapColor": "0xFF778172",
@@ -563,12 +563,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/leaves.png",
-        "blocks.ltdb/leaves.png",
-        "blocks.ltdb/leaves.png",
-        "blocks.ltdb/leaves.png",
-        "blocks.ltdb/leaves.png",
-        "blocks.ltdb/leaves.png"
+        "data/textures/blocks.ltdb/leaves.png",
+        "data/textures/blocks.ltdb/leaves.png",
+        "data/textures/blocks.ltdb/leaves.png",
+        "data/textures/blocks.ltdb/leaves.png",
+        "data/textures/blocks.ltdb/leaves.png",
+        "data/textures/blocks.ltdb/leaves.png"
       ]
     },
     "mapColor": "0xFF6A7C37",
@@ -605,12 +605,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/basalt.png",
-        "blocks.ltdb/basalt.png",
-        "blocks.ltdb/basalt.png",
-        "blocks.ltdb/basalt.png",
-        "blocks.ltdb/basalt.png",
-        "blocks.ltdb/basalt.png"
+        "data/textures/blocks.ltdb/basalt.png",
+        "data/textures/blocks.ltdb/basalt.png",
+        "data/textures/blocks.ltdb/basalt.png",
+        "data/textures/blocks.ltdb/basalt.png",
+        "data/textures/blocks.ltdb/basalt.png",
+        "data/textures/blocks.ltdb/basalt.png"
       ]
     },
     "mapColor": "0xFF595552",
@@ -623,12 +623,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/pine.png",
-        "blocks.ltdb/pine.png",
-        "blocks.ltdb/pine.png",
-        "blocks.ltdb/pine.png",
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png"
+        "data/textures/blocks.ltdb/pine.png",
+        "data/textures/blocks.ltdb/pine.png",
+        "data/textures/blocks.ltdb/pine.png",
+        "data/textures/blocks.ltdb/pine.png",
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png"
       ]
     },
     "mapColor": "0xFF786C72",
@@ -714,12 +714,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png",
-        "blocks.ltdb/wood.png"
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png",
+        "data/textures/blocks.ltdb/wood.png"
       ]
     },
     "mapColor": "0xFF786C72",
@@ -744,12 +744,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/leaves.png",
-        "blocks.ltdb/leaves.png",
-        "blocks.ltdb/leaves.png",
-        "blocks.ltdb/leaves.png",
-        "blocks.ltdb/leaves.png",
-        "blocks.ltdb/leaves.png"
+        "data/textures/blocks.ltdb/leaves.png",
+        "data/textures/blocks.ltdb/leaves.png",
+        "data/textures/blocks.ltdb/leaves.png",
+        "data/textures/blocks.ltdb/leaves.png",
+        "data/textures/blocks.ltdb/leaves.png",
+        "data/textures/blocks.ltdb/leaves.png"
       ]
     },
     "mapColor": "0xFF6A7C37",
@@ -784,14 +784,14 @@
     "name": "Torch",
     "itemType": "Torch",
     "model": {
-      "modelPath": "blocks.m3/torch",
+      "modelPath": "data/models/blocks.m3/torch",
       "texturePaths": [
-        "blocks.ltdb/torch.png",
-        "blocks.ltdb/torch.png",
-        "blocks.ltdb/torch.png",
-        "blocks.ltdb/torch.png",
-        "blocks.ltdb/torch.png",
-        "blocks.ltdb/torch.png"
+        "data/textures/blocks.ltdb/torch.png",
+        "data/textures/blocks.ltdb/torch.png",
+        "data/textures/blocks.ltdb/torch.png",
+        "data/textures/blocks.ltdb/torch.png",
+        "data/textures/blocks.ltdb/torch.png",
+        "data/textures/blocks.ltdb/torch.png"
       ]
     },
     "mapColor": "0x00F69A54",
@@ -806,9 +806,9 @@
     "name": "Oak Wood Sapling",
     "itemType": "Oak Wood Sapling",
     "model": {
-      "modelPath": "blocks.m3/sebling",
+      "modelPath": "data/models/blocks.m3/sebling",
       "texturePaths": [
-        "blocks.ltdb/sebling.png"
+        "data/textures/blocks.ltdb/sebling.png"
       ]
     },
     "mapColor": "0xFD6A7B3A",
@@ -824,9 +824,9 @@
     "name": "Birch Wood Sapling",
     "itemType": "Birch Wood Sapling",
     "model": {
-      "modelPath": "blocks.m3/sebling",
+      "modelPath": "data/models/blocks.m3/sebling",
       "texturePaths": [
-        "blocks.ltdb/sebling.png"
+        "data/textures/blocks.ltdb/sebling.png"
       ]
     },
     "mapColor": "0xFD6A7B3A",
@@ -842,9 +842,9 @@
     "name": "Beech Wood Sapling",
     "itemType": "Beech Wood Sapling",
     "model": {
-      "modelPath": "blocks.m3/sebling",
+      "modelPath": "data/models/blocks.m3/sebling",
       "texturePaths": [
-        "blocks.ltdb/sebling.png"
+        "data/textures/blocks.ltdb/sebling.png"
       ]
     },
     "mapColor": "0xFD6A7B3A",
@@ -860,9 +860,9 @@
     "name": "Pine Wood Sapling",
     "itemType": "Pine Wood Sapling",
     "model": {
-      "modelPath": "blocks.m3/sebling",
+      "modelPath": "data/models/blocks.m3/sebling",
       "texturePaths": [
-        "blocks.ltdb/sebling.png"
+        "data/textures/blocks.ltdb/sebling.png"
       ]
     },
     "mapColor": "0xFD6A7B3A",
@@ -880,12 +880,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/dirt.png",
-        "blocks.ltdb/dirt.png",
-        "blocks.ltdb/dirt.png",
-        "blocks.ltdb/dirt.png",
-        "blocks.ltdb/farmland.png",
-        "blocks.ltdb/dirt.png"
+        "data/textures/blocks.ltdb/dirt.png",
+        "data/textures/blocks.ltdb/dirt.png",
+        "data/textures/blocks.ltdb/dirt.png",
+        "data/textures/blocks.ltdb/dirt.png",
+        "data/textures/blocks.ltdb/farmland.png",
+        "data/textures/blocks.ltdb/dirt.png"
       ]
     },
     "mapColor": "0xFF5E3819",
@@ -900,12 +900,12 @@
     "model": {
       "modelPath": "fluid",
       "texturePaths": [
-        "fluids.ltdb/water.png",
-        "fluids.ltdb/water.png",
-        "fluids.ltdb/water.png",
-        "fluids.ltdb/water.png",
-        "fluids.ltdb/water.png",
-        "fluids.ltdb/water.png"
+        "data/textures/fluids.ltdb/water.png",
+        "data/textures/fluids.ltdb/water.png",
+        "data/textures/fluids.ltdb/water.png",
+        "data/textures/fluids.ltdb/water.png",
+        "data/textures/fluids.ltdb/water.png",
+        "data/textures/fluids.ltdb/water.png"
       ]
     },
     "mapColor": "0xFF2323BF",
@@ -925,12 +925,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "blocks.ltdb/woodplanks.png",
-        "blocks.ltdb/woodplanks.png",
-        "blocks.ltdb/woodplanks.png",
-        "blocks.ltdb/woodplanks.png",
-        "blocks.ltdb/craftingtable.png",
-        "blocks.ltdb/woodplanks.png"
+        "data/textures/blocks.ltdb/woodplanks.png",
+        "data/textures/blocks.ltdb/woodplanks.png",
+        "data/textures/blocks.ltdb/woodplanks.png",
+        "data/textures/blocks.ltdb/woodplanks.png",
+        "data/textures/blocks.ltdb/craftingtable.png",
+        "data/textures/blocks.ltdb/woodplanks.png"
       ]
     },
     "mapColor": "0xFFC4A783",
@@ -943,10 +943,10 @@
     "name": "Wooden Chest",
     "itemType": "Wooden Chest",
     "model": {
-      "modelPath": "blocks.m3/chest",
+      "modelPath": "data/models/blocks.m3/chest",
       "texturePaths": [
-        "blocks.ltdb/chest.png",
-        "blocks.ltdb/chestcover.png"
+        "data/textures/blocks.ltdb/chest.png",
+        "data/textures/blocks.ltdb/chestcover.png"
       ]
     },
     "mapColor": "0xFFE2C292",
@@ -1153,9 +1153,9 @@
     "name": "Campfire",
     "itemType": "Campfire",
     "model": {
-      "modelPath": "blocks.m3/campfire",
+      "modelPath": "data/models/blocks.m3/campfire",
       "texturePaths": [
-        "blocks.ltdb/campfire.png"
+        "data/textures/blocks.ltdb/campfire.png"
       ]
     },
     "mapColor": "0xFFE25822",
@@ -1397,9 +1397,9 @@
     "name": "Vines",
     "itemType": "Vines",
     "model": {
-      "modelPath": "blocks.m3/vines",
+      "modelPath": "data/models/blocks.m3/vines",
       "texturePaths": [
-        "blocks.ltdb/leaves.png"
+        "data/textures/blocks.ltdb/leaves.png"
       ]
     },
     "mapColor": "0xFF33A033"

+ 14 - 14
Windows Version/data/blocks/plants.json

@@ -6,7 +6,7 @@
         "model": {
             "modelPath": "grass",
             "texturePaths": [
-                "blocks.ltdb/grass.png"
+                "data/textures/blocks.ltdb/grass.png"
             ],
             "transparent": true
         },
@@ -35,7 +35,7 @@
         "model": {
             "modelPath": "grass",
             "texturePaths": [
-                "plants.ltdb/wheatseeds.png"
+                "data/textures/plants.ltdb/wheatseeds.png"
             ],
             "transparent": true
         },
@@ -49,7 +49,7 @@
                 "model": {
                     "modelPath": "grass",
                     "texturePaths": [
-                        "plants.ltdb/wheatseedsa.png"
+                        "data/textures/plants.ltdb/wheatseedsa.png"
                     ],
                     "transparent": true
                 }
@@ -59,7 +59,7 @@
                 "model": {
                     "modelPath": "grass",
                     "texturePaths": [
-                        "plants.ltdb/wheatseedsb.png"
+                        "data/textures/plants.ltdb/wheatseedsb.png"
                     ],
                     "transparent": true
                 }
@@ -69,7 +69,7 @@
                 "model": {
                     "modelPath": "grass",
                     "texturePaths": [
-                        "plants.ltdb/wheatseedsc.png"
+                        "data/textures/plants.ltdb/wheatseedsc.png"
                     ],
                     "transparent": true
                 }
@@ -79,7 +79,7 @@
                 "model": {
                     "modelPath": "grass",
                     "texturePaths": [
-                        "plants.ltdb/wheatseedsd.png"
+                        "data/textures/plants.ltdb/wheatseedsd.png"
                     ],
                     "transparent": true
                 }
@@ -93,7 +93,7 @@
         "model": {
             "modelPath": "grass",
             "texturePaths": [
-                "plants.ltdb/wheat.png"
+                "data/textures/plants.ltdb/wheat.png"
             ],
             "transparent": true
         },
@@ -146,7 +146,7 @@
         "model": {
             "modelPath": "grass",
             "texturePaths": [
-                "plants.ltdb/cottonseeds.png"
+                "data/textures/plants.ltdb/cottonseeds.png"
             ],
             "transparent": true
         },
@@ -158,18 +158,18 @@
             {
                 "percentage": 0,
                 "model": {
-                    "modelPath": "plants.m3/smallPlant",
+                    "modelPath": "data/models/plants.m3/smallPlant",
                     "texturePaths": [
-                        "plants.ltdb/smallplant.png"
+                        "data/textures/plants.ltdb/smallplant.png"
                     ]
                 }
             },
             {
                 "percentage": 0.5,
                 "model": {
-                    "modelPath": "plants.m3/cotton_growing",
+                    "modelPath": "data/models/plants.m3/cotton_growing",
                     "texturePaths": [
-                        "plants.ltdb/cottongrowing."
+                        "data/textures/plants.ltdb/cottongrowing."
                     ]
                 }
             }
@@ -180,9 +180,9 @@
         "name": "Cotton Plant",
         "itemType": null,
         "model": {
-            "modelPath": "plants.m3/cotton",
+            "modelPath": "data/models/plants.m3/cotton",
             "texturePaths": [
-                "plants.ltdb/cotton.png"
+                "data/textures/plants.ltdb/cotton.png"
             ],
             "transparent": true
         },

+ 2 - 2
Windows Version/data/entities/animals.json

@@ -4,9 +4,9 @@
         "typeName": "Kow",
         "drops": [],
         "model": {
-            "modelPath": "entities.m3/kow",
+            "modelPath": "data/models/entities.m3/kow",
             "texturePaths": [
-                "entities.ltdb/kow.png"
+                "data/textures/entities.ltdb/kow.png"
             ]
         }
     }

+ 41 - 41
Windows Version/data/items/itemTypes.json

@@ -3,9 +3,9 @@
     "type": "basic",
     "name": "Wooden Stick",
     "model": {
-      "modelPath": "items.m3/stick",
+      "modelPath": "data/models/items.m3/stick",
       "texturePaths": [
-        "items.ltdb/stick.png"
+        "data/textures/items.ltdb/stick.png"
       ]
     },
     "itemName": "Wooden Stick",
@@ -18,12 +18,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "items.ltdb/resin.png",
-        "items.ltdb/resin.png",
-        "items.ltdb/resin.png",
-        "items.ltdb/resin.png",
-        "items.ltdb/resin.png",
-        "items.ltdb/resin.png"
+        "data/textures/items.ltdb/resin.png",
+        "data/textures/items.ltdb/resin.png",
+        "data/textures/items.ltdb/resin.png",
+        "data/textures/items.ltdb/resin.png",
+        "data/textures/items.ltdb/resin.png",
+        "data/textures/items.ltdb/resin.png"
       ]
     },
     "itemName": "Resin",
@@ -34,9 +34,9 @@
     "type": "basic",
     "name": "Broken Axe",
     "model": {
-      "modelPath": "tools.m3/axe",
+      "modelPath": "data/models/tools.m3/axe",
       "texturePaths": [
-        "tools.ltdb/stoneaxe.png"
+        "data/textures/tools.ltdb/stoneaxe.png"
       ]
     },
     "itemName": "Broken Axe",
@@ -48,9 +48,9 @@
     "type": "basic",
     "name": "Broken Hoe",
     "model": {
-      "modelPath": "tools.m3/hoe",
+      "modelPath": "data/models/tools.m3/hoe",
       "texturePaths": [
-        "tools.ltdb/stonehoe.png"
+        "data/textures/tools.ltdb/stonehoe.png"
       ]
     },
     "itemName": "Broken Hoe",
@@ -62,9 +62,9 @@
     "type": "basic",
     "name": "Flint",
     "model": {
-      "modelPath": "items.m3/flint",
+      "modelPath": "data/models/items.m3/flint",
       "texturePaths": [
-        "items.ltdb/flint.png"
+        "data/textures/items.ltdb/flint.png"
       ]
     },
     "itemName": "Flint",
@@ -75,9 +75,9 @@
     "type": "basic",
     "name": "Broken Shovel",
     "model": {
-      "modelPath": "tools.m3/shovel",
+      "modelPath": "data/models/tools.m3/shovel",
       "texturePaths": [
-        "tools.ltdb/stonehoe.png"
+        "data/textures/tools.ltdb/stonehoe.png"
       ]
     },
     "itemName": "Broken Shovel",
@@ -91,7 +91,7 @@
     "model": {
       "modelPath": "grass",
       "texturePaths": [
-        "plants.ltdb/wheat.png"
+        "data/textures/plants.ltdb/wheat.png"
       ]
     },
     "itemName": "Wheat",
@@ -104,9 +104,9 @@
     "type": "tool",
     "name": "Hoe",
     "model": {
-      "modelPath": "tools.m3/hoe",
+      "modelPath": "data/models/tools.m3/hoe",
       "texturePaths": [
-        "tools.ltdb/stonehoe.png"
+        "data/textures/tools.ltdb/stonehoe.png"
       ]
     },
     "maxStack": 10,
@@ -133,9 +133,9 @@
     "type": "tool",
     "name": "Shovel",
     "model": {
-      "modelPath": "tools.m3/shovel",
+      "modelPath": "data/models/tools.m3/shovel",
       "texturePaths": [
-        "tools.ltdb/stonehoe.png"
+        "data/textures/tools.ltdb/stonehoe.png"
       ]
     },
     "maxStack": 10,
@@ -161,9 +161,9 @@
     "type": "tool",
     "name": "Axe",
     "model": {
-      "modelPath": "tools.m3/axe",
+      "modelPath": "data/models/tools.m3/axe",
       "texturePaths": [
-        "tools.ltdb/stoneaxe.png"
+        "data/textures/tools.ltdb/stoneaxe.png"
       ]
     },
     "maxStack": 10,
@@ -189,9 +189,9 @@
     "type": "fluidContainer",
     "name": "Wooden Bucket",
     "model": {
-      "modelPath": "items.m3/bucket",
+      "modelPath": "data/models/items.m3/bucket",
       "texturePaths": [
-        "blocks.ltdb/woodplanks.png"
+        "data/textures/blocks.ltdb/woodplanks.png"
       ]
     },
     "maxStack": 10,
@@ -216,7 +216,7 @@
     "model": {
       "modelPath": "grass",
       "texturePaths": [
-        "plants.ltdb/wheatseeds.png"
+        "data/textures/plants.ltdb/wheatseeds.png"
       ],
       "transparent": false
     },
@@ -242,7 +242,7 @@
     "model": {
       "modelPath": "grass",
       "texturePaths": [
-        "plants.ltdb/cottonseeds.png"
+        "data/textures/plants.ltdb/cottonseeds.png"
       ],
       "transparent": true
     },
@@ -266,9 +266,9 @@
     "type": "basic",
     "name": "Tree bark",
     "model": {
-      "modelPath": "items.m3/treebark",
+      "modelPath": "data/models/items.m3/treebark",
       "texturePaths": [
-        "items.ltdb/treebark.png"
+        "data/textures/items.ltdb/treebark.png"
       ]
     },
     "itemName": "Tree bark"
@@ -277,9 +277,9 @@
     "type": "basic",
     "name": "Stone",
     "model": {
-      "modelPath": "items.m3/stone",
+      "modelPath": "data/models/items.m3/stone",
       "texturePaths": [
-        "blocks.ltdb/stone.png"
+        "data/textures/blocks.ltdb/stone.png"
       ]
     },
     "itemName": "Stone"
@@ -290,12 +290,12 @@
     "model": {
       "modelPath": "cube",
       "texturePaths": [
-        "items.ltdb/glue.png",
-        "items.ltdb/glue.png",
-        "items.ltdb/glue.png",
-        "items.ltdb/glue.png",
-        "items.ltdb/glue.png",
-        "items.ltdb/glue.png"
+        "data/textures/items.ltdb/glue.png",
+        "data/textures/items.ltdb/glue.png",
+        "data/textures/items.ltdb/glue.png",
+        "data/textures/items.ltdb/glue.png",
+        "data/textures/items.ltdb/glue.png",
+        "data/textures/items.ltdb/glue.png"
       ]
     },
     "itemName": "Glue",
@@ -306,9 +306,9 @@
     "type": "basic",
     "name": "Wool",
     "model": {
-      "modelPath": "items.m3/cottonpiece",
+      "modelPath": "data/models/items.m3/cottonpiece",
       "texturePaths": [
-        "items.ltdb/cottonpiece.png"
+        "data/textures/items.ltdb/cottonpiece.png"
       ]
     },
     "itemName": "Wool",
@@ -319,9 +319,9 @@
     "type": "basic",
     "name": "Thread",
     "model": {
-      "modelPath": "items.m3/thread",
+      "modelPath": "data/models/items.m3/thread",
       "texturePaths": [
-        "items.ltdb/thread.png"
+        "data/textures/items.ltdb/thread.png"
       ]
     },
     "itemName": "Thread",

+ 0 - 10
assembly/assembly.vcxproj

@@ -148,16 +148,6 @@
       </Outputs>
     </CustomBuildStep>
   </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="start.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <CustomBuild Include="test.asm">
-      <FileType>Document</FileType>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">nasm -f win64 -o test.obj test.asm</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">test.obj</Outputs>
-    </CustomBuild>
-  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
     <Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />

+ 0 - 10
assembly/assembly.vcxproj.filters

@@ -14,14 +14,4 @@
       <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
     </Filter>
   </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="start.cpp">
-      <Filter>Quelldateien</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <CustomBuild Include="test.asm">
-      <Filter>Quelldateien</Filter>
-    </CustomBuild>
-  </ItemGroup>
 </Project>

+ 0 - 307
assembly/start.cpp

@@ -1,307 +0,0 @@
-#include <Assembly.h>
-#include <functional>
-#include <iostream>
-#include <malloc.h>
-#include <windows.h>
-#include <Zeit.h>
-
-using namespace Framework;
-using namespace Assembly;
-
-typedef int (*valF)(void*);
-typedef int (*compF)();
-
-template<typename T> class Val
-{
-protected:
-    AssemblyBlock block;
-    T* self;
-
-public:
-    Val(T* self)
-        : self(self)
-    {}
-
-    inline int getValueInline()
-    {
-        return self->getValue2();
-    }
-
-    virtual int getValue() = 0;
-    virtual valF compileFP() = 0;
-    virtual std::function<int()> compileStdF() = 0;
-
-    compF compileToAssembly()
-    {
-        internalCompileAssembly();
-        block.optimize();
-        return block.compileToFunction<compF>();
-    }
-
-    virtual AssemblyBlock& internalCompileAssembly() = 0;
-
-    inline AssemblyBlock& getBlock()
-    {
-        return block;
-    }
-};
-
-class RandVal : public Val<RandVal>
-{
-public:
-    RandVal()
-        : Val(this)
-    {}
-
-    int getValue() override
-    {
-        return rand();
-    }
-
-    int getValue2()
-    {
-        return rand();
-    }
-
-    valF compileFP() override
-    {
-        return [](void* v) { return rand(); };
-    }
-
-    std::function<int()> compileStdF() override
-    {
-        return []() { return rand(); };
-    }
-
-    AssemblyBlock& internalCompileAssembly() override
-    {
-        block.addCall(rand);
-        return block;
-    }
-};
-
-class ConstVal : public Val<ConstVal>
-{
-private:
-    int value;
-
-public:
-    ConstVal(int value)
-        : Val(this),
-          value(value)
-    {}
-
-    int getValue() override
-    {
-        return value;
-    }
-
-    inline int getValue2()
-    {
-        return value;
-    }
-
-    valF compileFP() override
-    {
-        return [](void* v) { return ((ConstVal*)v)->value; };
-    }
-
-    std::function<int()> compileStdF() override
-    {
-        const int& value = this->value;
-        return [value]() { return value; };
-    }
-
-    AssemblyBlock& internalCompileAssembly() override
-    {
-        block.addLoadValue(&value, RAX);
-        return block;
-    }
-};
-
-template<typename T1, typename T2> class AdditionVal
-    : public Val<AdditionVal<T1, T2>>
-{
-private:
-    Val<T1>* a;
-    Val<T2>* b;
-    valF af;
-    valF bf;
-    std::function<int()> saf;
-    std::function<int()> sbf;
-
-public:
-    AdditionVal(Val<T1>* a, Val<T2>* b)
-        : Val<AdditionVal<T1, T2>>(this),
-          a(a),
-          b(b),
-          af(a->compileFP()),
-          bf(b->compileFP()),
-          saf(a->compileStdF()),
-          sbf(b->compileStdF())
-    {}
-
-    int getValue() override
-    {
-        return a->getValue() + b->getValue();
-    }
-
-    inline int getValue2()
-    {
-        return a->getValueInline() + b->getValueInline();
-    }
-
-    valF compileFP() override
-    {
-        return [](void* v) {
-            AdditionVal* av = (AdditionVal*)v;
-            return av->af(av->a) + av->bf(av->b);
-        };
-    }
-
-    std::function<int()> compileStdF() override
-    {
-        const std::function<int()>& aFunc = saf;
-        const std::function<int()>& bFunc = sbf;
-        return [aFunc, bFunc]() { return aFunc() + bFunc(); };
-    }
-
-    AssemblyBlock& internalCompileAssembly() override
-    {
-        GPRegister result = RAX;
-        GPRegister result2 = RAX;
-        FPRegister resultFP;
-        this->getBlock().addBlock(
-            &a->internalCompileAssembly(), {}, {}, &result, &resultFP);
-        this->getBlock().addBlock(
-            &b->internalCompileAssembly(), {result}, {}, &result2, &resultFP);
-        this->getBlock().addInstruction(new Instruction(ADD,
-            {new GPRegisterArgument(result, LOWER32),
-                new GPRegisterArgument(result2, LOWER32)}));
-        if (result != RAX)
-        {
-            this->getBlock().addMoveValue(result, RAX, LOWER32);
-        }
-        return this->getBlock();
-    }
-};
-
-extern "C"
-{
-    extern int getVal(void*);
-}
-
-template<typename T> __declspec(noinline) int get(T* t)
-{
-    return t->getValueInline();
-}
-
-int main()
-{
-    RandVal* r = new RandVal();
-    auto test
-        = new AdditionVal<AdditionVal<AdditionVal<RandVal, ConstVal>, ConstVal>,
-            AdditionVal<ConstVal, ConstVal>>(
-            new AdditionVal<AdditionVal<RandVal, ConstVal>, ConstVal>(
-                new AdditionVal<RandVal, ConstVal>(r, new ConstVal(2)),
-                new ConstVal(3)),
-            new AdditionVal<ConstVal, ConstVal>(
-                new ConstVal(4), new ConstVal(5)));
-    ZeitMesser zeitMesser;
-    srand(0);
-    zeitMesser.messungStart();
-    __int64 res = 0;
-    for (int i = 0; i < 100000000; i++)
-    {
-        res += get(test);
-    }
-    zeitMesser.messungEnde();
-    std::cout << "inlined Time: " << zeitMesser.getSekunden() << "s"
-              << " result: " << res << std::endl;
-    srand(0);
-    zeitMesser.messungStart();
-    res = 0;
-    for (int i = 0; i < 100000000; i++)
-    {
-        res += test->getValue();
-    }
-    zeitMesser.messungEnde();
-    std::cout << "getValue() Time: " << zeitMesser.getSekunden() << "s"
-              << " result: " << res << std::endl;
-    res = 0;
-    srand(0);
-    auto val = test->compileFP();
-    zeitMesser.messungStart();
-    for (int i = 0; i < 100000000; i++)
-    {
-        res += val(test);
-    }
-    zeitMesser.messungEnde();
-    std::cout << "compile() Time: " << zeitMesser.getSekunden() << "s"
-              << " result: " << res << std::endl;
-    res = 0;
-    auto stdf = test->compileStdF();
-    srand(0);
-    zeitMesser.messungStart();
-    for (int i = 0; i < 100000000; i++)
-    {
-        res += stdf();
-    }
-    zeitMesser.messungEnde();
-    std::cout << "compileStdF() Time: " << zeitMesser.getSekunden() << "s"
-              << " result: " << res << std::endl;
-    res = 0;
-    auto assembly = test->compileToAssembly();
-    srand(0);
-    zeitMesser.messungStart();
-    for (int i = 0; i < 100000000; i++)
-    {
-        res += assembly();
-    }
-    zeitMesser.messungEnde();
-    std::cout << "compileToAssembly() Time: " << zeitMesser.getSekunden() << "s"
-              << " result: " << res << std::endl;
-    res = 0;
-    int i2 = 2;
-    int i3 = 3;
-    int i4 = 4;
-    int i5 = 5;
-    AssemblyBlock fastest;
-    fastest.addMoveValue(RCX, 2);
-    fastest.addMoveValue(RDX, 3);
-    fastest.addMoveValue(R8, 4);
-    fastest.addMoveValue(R9, 5);
-    fastest.addCall(rand);
-    fastest.addInstruction(new Instruction(ADD,
-        {new GPRegisterArgument(RAX, LOWER32),
-            new GPRegisterArgument(RCX, LOWER32)}));
-    fastest.addInstruction(new Instruction(ADD,
-        {new GPRegisterArgument(RAX, LOWER32),
-            new GPRegisterArgument(RDX, LOWER32)}));
-    fastest.addInstruction(new Instruction(ADD,
-        {new GPRegisterArgument(RAX, LOWER32),
-            new GPRegisterArgument(R8, LOWER32)}));
-    fastest.addInstruction(new Instruction(ADD,
-        {new GPRegisterArgument(RAX, LOWER32),
-            new GPRegisterArgument(R9, LOWER32)}));
-    auto f = fastest.compileToFunction<compF>();
-    zeitMesser.messungStart();
-    srand(0);
-    for (int i = 0; i < 100000000; i++)
-    {
-        res += assembly();
-    }
-    zeitMesser.messungEnde();
-    srand(0);
-    std::cout << "fastest Time: " << zeitMesser.getSekunden() << "s"
-              << " result: " << res << std::endl;
-    res = 0;
-    zeitMesser.messungStart();
-    for (int i = 0; i < 100000000; i++)
-    {
-        res += getVal(rand);
-    }
-    zeitMesser.messungEnde();
-    std::cout << "fastest Time: " << zeitMesser.getSekunden() << "s"
-              << " result: " << res << std::endl;
-}

+ 0 - 18
assembly/test.asm

@@ -1,18 +0,0 @@
-bits 64
-default rel
-
-segment .text
-global getVal
-
-getVal:
-	call        rcx
-	mov         rcx,2h  
-	add         eax,ecx
-	mov         rcx,3h  
-	add         eax,ecx
-	mov         rdx,4h  
-	mov         edx,edx
-	mov         rcx,5h  
-	add         edx,ecx
-	add         eax,edx  
-	ret

+ 1 - 14
build.bat

@@ -1,17 +1,4 @@
 @echo off
-set /a timerstart=((1%time:~0,2%-100)*60*60)+((1%time:~3,2%-100)*60)+(1%time:~6,2%-100)
 
 call init.bat
-
-cd "Allgemein"
-call build.bat
-cd "../Apps"
-call build.bat
-cd "../Spiele Platform"
-call build.bat
-version_update.exe "Spiele Platform\Klient\Fertig\x64\data\version" "Spiele Platform\Klient\Fertig\x32\data\version" "Spiele Platform\Klient\Fertig\Debug\x64\data\version"
-
-set /a timerstop=((1%time:~0,2%-100)*60*60)+((1%time:~3,2%-100)*60)+(1%time:~6,2%-100)
-set /a timeseks=(%timerstop%-%timerstart%)
-set /a timemins=(%timerstop%-%timerstart%)/60
-echo Sekunden: %timeseks% -- Minuten: %timemins%
+"%InstallDir%\%MSBuildExe%" "Windows Version\Windows Version.vcxproj" /t:Rebuild /p:Configuration=Debug /p:PLatform=x64