Andrew Fenn avatar Andrew Fenn committed 83b75db Draft

Added support for painting the base layer over the top of the other layers

Comments (0)

Files changed (1)

Ogitor/src/TerrainGroupEditorUpdate.cpp

     }
     else if(mLayer == 0)
     {
-        Ogre::String msg = "You cannot use that texture pn " + handle->getName() + " since that is already the texture of the base layer.";
-        mSystem->DisplayMessageDialog(OTR(msg), DLGTYPE_OK);
-        return;
+        Ogre::TerrainLayerBlendMap *mBlendMaps[128];
+        float *mBlendDatas[128];
+        int mLayerMax = terrain->getLayerCount();
+
+        for(int l = 1;l < mLayerMax;l++)
+        {
+            mBlendMaps[l] = terrain->getLayerBlendMap(l);
+            mBlendDatas[l] = mBlendMaps[l]->getBlendPointer();
+        }
+
+        float maxVal;
+        int u;
+        int num;
+
+        for(u = mLayerMax-1;u > 0;u--)
+        {
+            mLayer = u;
+            maxVal = 0.0f;
+
+            for(int j = maprect.top;j < maprect.bottom;j++)
+            {
+                int mapPos = (j * mBlendMapSize) + maprect.left;
+
+                for(int i = maprect.left;i < maprect.right;i++)
+                {
+                    maxVal += mBlendDatas[u][mapPos];
+                }
+            }
+
+            num = (maprect.top*mBlendMapSize);
+            num = (num+maprect.right)-(num+maprect.left);
+            if (maxVal > num)
+                break;
+        }
+
+        if (mLayer == 0)
+            return;
+
+        mEditDirection = true;
     }
 
     handle->_notifyModification(mLayer, maprect);
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.