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