private byte[] TurnMapUpsideDown(byte[] mapdata, int numcolumns, int numrows, bool issixteenbit)
{
byte[] mapdatanew = new byte[mapdata.Length];
if (issixteenbit) numcolumns *= 2;
int internal_rows = mapdata.Length / numcolumns;
for (int tel = 0; tel < internal_rows; tel++)
{
for (int ctel = 0; ctel < numcolumns; ctel++)
{
int orgoffset = (((internal_rows - 1) - tel) * numcolumns) + ctel;
mapdatanew.SetValue(mapdata.GetValue(orgoffset), (tel * numcolumns) + ctel);
}
}
return mapdatanew;
}