12 #include "../stdafx.h" 
   13 #include "../map_func.h" 
   14 #include "../core/bitmath_func.hpp" 
   19 #include "../safeguards.h" 
   21 static uint32 _map_dim_x;
 
   22 static uint32 _map_dim_y;
 
   30 static void Save_MAPS()
 
   37 static void Load_MAPS()
 
   43 static void Check_MAPS()
 
   50 static const uint MAP_SL_BUF_SIZE = 4096;
 
   52 static void Load_MAPT()
 
   58     SlArray(buf, MAP_SL_BUF_SIZE, SLE_UINT8);
 
   59     for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) 
_m[i++].type = buf[j];
 
   63 static void Save_MAPT()
 
   70     for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) buf[j] = 
_m[i++].type;
 
   71     SlArray(buf, MAP_SL_BUF_SIZE, SLE_UINT8);
 
   75 static void Load_MAPH()
 
   81     SlArray(buf, MAP_SL_BUF_SIZE, SLE_UINT8);
 
   82     for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) 
_m[i++].height = buf[j];
 
   86 static void Save_MAPH()
 
   93     for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) buf[j] = 
_m[i++].height;
 
   94     SlArray(buf, MAP_SL_BUF_SIZE, SLE_UINT8);
 
   98 static void Load_MAP1()
 
  104     SlArray(buf, MAP_SL_BUF_SIZE, SLE_UINT8);
 
  105     for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) 
_m[i++].m1 = buf[j];
 
  109 static void Save_MAP1()
 
  116     for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) buf[j] = 
_m[i++].m1;
 
  117     SlArray(buf, MAP_SL_BUF_SIZE, SLE_UINT8);
 
  121 static void Load_MAP2()
 
  131     for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) 
_m[i++].m2 = buf[j];
 
  135 static void Save_MAP2()
 
  142     for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) buf[j] = 
_m[i++].m2;
 
  143     SlArray(buf, MAP_SL_BUF_SIZE, SLE_UINT16);
 
  147 static void Load_MAP3()
 
  153     SlArray(buf, MAP_SL_BUF_SIZE, SLE_UINT8);
 
  154     for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) 
_m[i++].m3 = buf[j];
 
  158 static void Save_MAP3()
 
  165     for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) buf[j] = 
_m[i++].m3;
 
  166     SlArray(buf, MAP_SL_BUF_SIZE, SLE_UINT8);
 
  170 static void Load_MAP4()
 
  176     SlArray(buf, MAP_SL_BUF_SIZE, SLE_UINT8);
 
  177     for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) 
_m[i++].m4 = buf[j];
 
  181 static void Save_MAP4()
 
  188     for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) buf[j] = 
_m[i++].m4;
 
  189     SlArray(buf, MAP_SL_BUF_SIZE, SLE_UINT8);
 
  193 static void Load_MAP5()
 
  199     SlArray(buf, MAP_SL_BUF_SIZE, SLE_UINT8);
 
  200     for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) 
_m[i++].m5 = buf[j];
 
  204 static void Save_MAP5()
 
  211     for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) buf[j] = 
_m[i++].m5;
 
  212     SlArray(buf, MAP_SL_BUF_SIZE, SLE_UINT8);
 
  216 static void Load_MAP6()
 
  225       for (uint j = 0; j != 1024; j++) {
 
  226         _me[i++].
m6 = 
GB(buf[j], 0, 2);
 
  227         _me[i++].
m6 = 
GB(buf[j], 2, 2);
 
  228         _me[i++].
m6 = 
GB(buf[j], 4, 2);
 
  229         _me[i++].
m6 = 
GB(buf[j], 6, 2);
 
  234       SlArray(buf, MAP_SL_BUF_SIZE, SLE_UINT8);
 
  235       for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) 
_me[i++].m6 = buf[j];
 
  240 static void Save_MAP6()
 
  247     for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) buf[j] = 
_me[i++].m6;
 
  248     SlArray(buf, MAP_SL_BUF_SIZE, SLE_UINT8);
 
  252 static void Load_MAP7()
 
  258     SlArray(buf, MAP_SL_BUF_SIZE, SLE_UINT8);
 
  259     for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) 
_me[i++].m7 = buf[j];
 
  263 static void Save_MAP7()
 
  270     for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) buf[j] = 
_me[i++].m7;
 
  271     SlArray(buf, MAP_SL_BUF_SIZE, SLE_UINT8);
 
  276   { 
'MAPS', Save_MAPS, Load_MAPS, NULL, Check_MAPS, CH_RIFF },
 
  277   { 
'MAPT', Save_MAPT, Load_MAPT, NULL, NULL,       CH_RIFF },
 
  278   { 
'MAPH', Save_MAPH, Load_MAPH, NULL, NULL,       CH_RIFF },
 
  279   { 
'MAPO', Save_MAP1, Load_MAP1, NULL, NULL,       CH_RIFF },
 
  280   { 
'MAP2', Save_MAP2, Load_MAP2, NULL, NULL,       CH_RIFF },
 
  281   { 
'M3LO', Save_MAP3, Load_MAP3, NULL, NULL,       CH_RIFF },
 
  282   { 
'M3HI', Save_MAP4, Load_MAP4, NULL, NULL,       CH_RIFF },
 
  283   { 
'MAP5', Save_MAP5, Load_MAP5, NULL, NULL,       CH_RIFF },
 
  284   { 
'MAPE', Save_MAP6, Load_MAP6, NULL, NULL,       CH_RIFF },
 
  285   { 
'MAP7', Save_MAP7, Load_MAP7, NULL, NULL,       CH_RIFF | 
CH_LAST },