src/misc.cpp
changeset 5847 9ce114e1d90d
parent 5838 9c3129cb019b
child 5914 e4ed5c532514
equal deleted inserted replaced
5846:55f4c68b7616 5847:9ce114e1d90d
   544 		for (j = 0; j != lengthof(buf); j++) buf[j] = _m[i++].m5;
   544 		for (j = 0; j != lengthof(buf); j++) buf[j] = _m[i++].m5;
   545 		SlArray(buf, lengthof(buf), SLE_UINT8);
   545 		SlArray(buf, lengthof(buf), SLE_UINT8);
   546 	}
   546 	}
   547 }
   547 }
   548 
   548 
   549 static void Load_MAPE(void)
   549 static void Load_MAP6(void)
   550 {
   550 {
       
   551 	/* Still available for loading old games */
   551 	uint size = MapSize();
   552 	uint size = MapSize();
   552 	uint i;
   553 	uint i;
   553 
   554 
   554 	if (CheckSavegameVersion(42)) {
   555 	if (CheckSavegameVersion(42)) {
   555 		for (i = 0; i != size;) {
   556 		for (i = 0; i != size;) {
   556 			uint8 buf[1024];
   557 			uint8 buf[1024];
   557 			uint j;
   558 			uint j;
   558 
   559 
   559 			SlArray(buf, lengthof(buf), SLE_UINT8);
   560 			SlArray(buf, lengthof(buf), SLE_UINT8);
   560 			for (j = 0; j != lengthof(buf); j++) {
   561 			for (j = 0; j != lengthof(buf); j++) {
   561 				_m[i++].extra = GB(buf[j], 0, 2);
   562 				_m[i++].m6 = GB(buf[j], 0, 2);
   562 				_m[i++].extra = GB(buf[j], 2, 2);
   563 				_m[i++].m6 = GB(buf[j], 2, 2);
   563 				_m[i++].extra = GB(buf[j], 4, 2);
   564 				_m[i++].m6 = GB(buf[j], 4, 2);
   564 				_m[i++].extra = GB(buf[j], 6, 2);
   565 				_m[i++].m6 = GB(buf[j], 6, 2);
   565 			}
   566 			}
   566 		}
   567 		}
   567 	} else {
   568 	} else {
   568 		for (i = 0; i != size;) {
   569 		for (i = 0; i != size;) {
   569 			byte buf[4096];
   570 			byte buf[4096];
   570 			uint j;
   571 			uint j;
   571 
   572 
   572 			SlArray(buf, lengthof(buf), SLE_UINT8);
   573 			SlArray(buf, lengthof(buf), SLE_UINT8);
   573 			for (j = 0; j != lengthof(buf); j++) _m[i++].extra = buf[j];
   574 			for (j = 0; j != lengthof(buf); j++) _m[i++].m6 = buf[j];
   574 		}
   575 		}
   575 	}
   576 	}
   576 }
   577 }
   577 
   578 
   578 static void Save_MAPE(void)
   579 static void Save_MAP6(void)
   579 {
   580 {
   580 	uint size = MapSize();
   581 	uint size = MapSize();
   581 	uint i;
   582 	uint i;
   582 
   583 
   583 	SlSetLength(size);
   584 	SlSetLength(size);
   584 	for (i = 0; i != size;) {
   585 	for (i = 0; i != size;) {
   585 		uint8 buf[4096];
   586 		uint8 buf[4096];
   586 		uint j;
   587 		uint j;
   587 
   588 
   588 		for (j = 0; j != lengthof(buf); j++) buf[j] = _m[i++].extra;
   589 		for (j = 0; j != lengthof(buf); j++) buf[j] = _m[i++].m6;
   589 		SlArray(buf, lengthof(buf), SLE_UINT8);
   590 		SlArray(buf, lengthof(buf), SLE_UINT8);
   590 	}
   591 	}
   591 }
   592 }
   592 
   593 
   593 
   594 
   623 	{ 'MAPO', Save_MAP1,     Load_MAP1,     CH_RIFF },
   624 	{ 'MAPO', Save_MAP1,     Load_MAP1,     CH_RIFF },
   624 	{ 'MAP2', Save_MAP2,     Load_MAP2,     CH_RIFF },
   625 	{ 'MAP2', Save_MAP2,     Load_MAP2,     CH_RIFF },
   625 	{ 'M3LO', Save_MAP3,     Load_MAP3,     CH_RIFF },
   626 	{ 'M3LO', Save_MAP3,     Load_MAP3,     CH_RIFF },
   626 	{ 'M3HI', Save_MAP4,     Load_MAP4,     CH_RIFF },
   627 	{ 'M3HI', Save_MAP4,     Load_MAP4,     CH_RIFF },
   627 	{ 'MAP5', Save_MAP5,     Load_MAP5,     CH_RIFF },
   628 	{ 'MAP5', Save_MAP5,     Load_MAP5,     CH_RIFF },
   628 	{ 'MAPE', Save_MAPE,     Load_MAPE,     CH_RIFF },
   629 	{ 'MAPE', Save_MAP6,     Load_MAP6,     CH_RIFF },
   629 
   630 
   630 	{ 'NAME', Save_NAME,     Load_NAME,     CH_ARRAY},
   631 	{ 'NAME', Save_NAME,     Load_NAME,     CH_ARRAY},
   631 	{ 'DATE', SaveLoad_DATE, SaveLoad_DATE, CH_RIFF},
   632 	{ 'DATE', SaveLoad_DATE, SaveLoad_DATE, CH_RIFF},
   632 	{ 'VIEW', SaveLoad_VIEW, SaveLoad_VIEW, CH_RIFF},
   633 	{ 'VIEW', SaveLoad_VIEW, SaveLoad_VIEW, CH_RIFF},
   633 	{ 'CHTS', Save_CHTS,     Load_CHTS,     CH_RIFF | CH_LAST}
   634 	{ 'CHTS', Save_CHTS,     Load_CHTS,     CH_RIFF | CH_LAST}