- -- Solid rectangle 
- -- Sets an area of the map to a specified block 
-   
- function main () 
-  local w = mappy.getValue(mappy.MAPWIDTH) 
-  local h = mappy.getValue(mappy.MAPHEIGHT) 
-   
-  if (w == 0) then 
-   mappy.msgBox ("Solid rectangle", "You need to load or create a map first", mappy.MMB_OK, mappy.MMB_ICONINFO) 
-  else 
-   
-   local isok,rx,ry,rw,rh = mappy.doDialogue ("Solid rectangle", "Enter x,y,width,height", "0,0,10,10", mappy.MMB_DIALOGUE2) 
-   if isok == mappy.MMB_OK then 
-   
-    rx = tonumber (rx) 
-    ry = tonumber (ry) 
-    rw = tonumber (rw) 
-    rh = tonumber (rh) 
-   
-    if (rx < 0 or (rx+rw) > w or ry < 0 or (ry+rh) > h) then 
-     mappy.msgBox ("Solid rectangle", "A value was out of bounds, rectangle not drawn", mappy.MMB_OK, mappy.MMB_ICONINFO) 
-    else 
-   
-     local blk = mappy.getValue (mappy.CURANIM) 
-     if (blk == -1) then 
-      blk = mappy.getValue (mappy.CURBLOCK) 
-     else 
- -- setBlock need anims in the format below (ie: anim 1 should be a value of -2) 
-      blk = -(blk+1) 
-     end 
-   
-     mappy.copyLayer(mappy.getValue(mappy.CURLAYER),mappy.MPY_UNDO) 
-   
-     local y = ry 
-     while y < (ry+rh) do 
-      local x = rx 
-      while x < (rx+rw) do 
-       mappy.setBlock (x, y, blk) 
-       x = x + 1 
-      end 
-      y = y + 1 
-     end 
-   
-     mappy.updateScreen() 
-   
-    end 
-   end 
-  end 
- end 
-   
- test, errormsg = pcall( main ) 
- if not test then 
-     mappy.msgBox("Error ...", errormsg, mappy.MMB_OK, mappy.MMB_ICONEXCLAMATION) 
- end 
-