misc.c
changeset 5385 3868f2e6db9b
parent 5108 aeaef6fe53b7
child 5469 7edfc643abbc
equal deleted inserted replaced
5384:10b6d955e1ac 5385:3868f2e6db9b
   549 static void Load_MAPE(void)
   549 static void Load_MAPE(void)
   550 {
   550 {
   551 	uint size = MapSize();
   551 	uint size = MapSize();
   552 	uint i;
   552 	uint i;
   553 
   553 
   554 	for (i = 0; i != size;) {
   554 	if (CheckSavegameVersion(42)) {
   555 		uint8 buf[1024];
   555 		for (i = 0; i != size;) {
   556 		uint j;
   556 			uint8 buf[1024];
   557 
   557 			uint j;
   558 		SlArray(buf, lengthof(buf), SLE_UINT8);
   558 
   559 		for (j = 0; j != lengthof(buf); j++) {
   559 			SlArray(buf, lengthof(buf), SLE_UINT8);
   560 			_m[i++].extra = GB(buf[j], 0, 2);
   560 			for (j = 0; j != lengthof(buf); j++) {
   561 			_m[i++].extra = GB(buf[j], 2, 2);
   561 				_m[i++].extra = GB(buf[j], 0, 2);
   562 			_m[i++].extra = GB(buf[j], 4, 2);
   562 				_m[i++].extra = GB(buf[j], 2, 2);
   563 			_m[i++].extra = GB(buf[j], 6, 2);
   563 				_m[i++].extra = GB(buf[j], 4, 2);
       
   564 				_m[i++].extra = GB(buf[j], 6, 2);
       
   565 			}
   564 		}
   566 		}
       
   567 	} else {
       
   568 		for (i = 0; i != size;) {
       
   569 			byte buf[4096];
       
   570 			uint j;
       
   571 
       
   572 			SlArray(buf, lengthof(buf), SLE_UINT8);
       
   573 			for (j = 0; j != lengthof(buf); j++) _m[i++].extra = buf[j];
       
   574 		}
   565 	}
   575 	}
   566 }
   576 }
   567 
   577 
   568 static void Save_MAPE(void)
   578 static void Save_MAPE(void)
   569 {
   579 {
   570 	uint size = MapSize();
   580 	uint size = MapSize();
   571 	uint i;
   581 	uint i;
   572 
   582 
   573 	SlSetLength(size / 4);
   583 	SlSetLength(size);
   574 	for (i = 0; i != size;) {
   584 	for (i = 0; i != size;) {
   575 		uint8 buf[1024];
   585 		uint8 buf[4096];
   576 		uint j;
   586 		uint j;
   577 
   587 
   578 		for (j = 0; j != lengthof(buf); j++) {
   588 		for (j = 0; j != lengthof(buf); j++) buf[j] = _m[i++].extra;
   579 			buf[j]  = _m[i++].extra << 0;
       
   580 			buf[j] |= _m[i++].extra << 2;
       
   581 			buf[j] |= _m[i++].extra << 4;
       
   582 			buf[j] |= _m[i++].extra << 6;
       
   583 		}
       
   584 		SlArray(buf, lengthof(buf), SLE_UINT8);
   589 		SlArray(buf, lengthof(buf), SLE_UINT8);
   585 	}
   590 	}
   586 }
   591 }
   587 
   592 
   588 
   593