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 },