Kay, well.
Now, imagine we have a 2d destructable array, GridDestructables.
GridDestructables[0][0] would be the top left, and GridDestructables[49][49] would be the bottom right, on an example of a 50x50 grid.
Now, since we can generally say that with a 2-d array of size [x][y], the 1-d array is [(maxX+1)*y+x], maxX+1 being the max X array slot, or you could just say it's simply maxX if maxX is the total x array
size.
Eg:
[0][0] = [50*0+0] = [0]
[0][1] = [50*1+0] = [50]
[1][0] = [50*0+1] = [1]
And so on
Now, let's say your Region is only of size 20x20.
Now, we have two new variables, xOffset and yOffset, which are changed depending on what 20x20 slot in the 50x50 array we wish to represent.
Basically, we just replace y with (y+yOffset) and x with (x+xOffset), leaving us with
[(y+yOffset)*maxX+x+xOffset]
Considering the top left corner (0,0 in the array) of the region is at (a,b), the position of any point should be;
a+x*128
b+y*128
Basically, if you shift the terrain 1 right (moving right in the 2d array), xOffset = xOffset + 1, if you go down yOffset = yOffset + 1, if you go left xOffset = xOffset - 1, and so on, and so forth.
Note that 2d arrays in warcraft do not go beyond 90x90 (or is it 89x89? I can never remember...)
I hope that made sense