saveload.c
changeset 3073 3b0cbae12231
parent 3048 adf46229d390
child 3108 797699723806
equal deleted inserted replaced
3072:d1e6aa66a450 3073:3b0cbae12231
   578 
   578 
   579 			switch (sld->cmd) {
   579 			switch (sld->cmd) {
   580 			case SL_VAR: return SlCalcConvFileLen(sld->conv);
   580 			case SL_VAR: return SlCalcConvFileLen(sld->conv);
   581 			case SL_REF: return SlCalcRefLen();
   581 			case SL_REF: return SlCalcRefLen();
   582 			case SL_ARR: return SlCalcArrayLen(sld->length, sld->conv);
   582 			case SL_ARR: return SlCalcArrayLen(sld->length, sld->conv);
   583 			case SL_STR: return SlCalcStringLen(sld->s.address, sld->length);
   583 			case SL_STR: return SlCalcStringLen(sld->address, sld->length);
   584 			default: NOT_REACHED();
   584 			default: NOT_REACHED();
   585 			}
   585 			}
   586 			break;
   586 			break;
   587 		case SL_WRITEBYTE: return 1; // a byte is logically of size 1
   587 		case SL_WRITEBYTE: return 1; // a byte is logically of size 1
   588 		case SL_INCLUDE: return SlCalcObjLength(_sl.includes[sld->version_from]);
   588 		case SL_INCLUDE: return SlCalcObjLength(_sl.includes[sld->version_from]);
   653 		SlSetLength(SlCalcObjLength(sld));
   653 		SlSetLength(SlCalcObjLength(sld));
   654 		if (_sl.need_length == NL_CALCLENGTH) return;
   654 		if (_sl.need_length == NL_CALCLENGTH) return;
   655 	}
   655 	}
   656 
   656 
   657 	for (; sld->cmd != SL_END; sld++) {
   657 	for (; sld->cmd != SL_END; sld++) {
   658 		void *ptr = (byte*)object + sld->s.offset;
   658 		void *ptr = (byte*)object + (unsigned long)sld->address;
   659 		SlObjectMember(ptr, sld);
   659 		SlObjectMember(ptr, sld);
   660 	}
   660 	}
   661 }
   661 }
   662 
   662 
   663 /**
   663 /**
   670 		SlSetLength(SlCalcObjLength((const SaveLoad*)sldg));
   670 		SlSetLength(SlCalcObjLength((const SaveLoad*)sldg));
   671 		if (_sl.need_length == NL_CALCLENGTH) return;
   671 		if (_sl.need_length == NL_CALCLENGTH) return;
   672 	}
   672 	}
   673 
   673 
   674 	for (; sldg->cmd != SL_END; sldg++) {
   674 	for (; sldg->cmd != SL_END; sldg++) {
   675 		SlObjectMember(sldg->s.address, (const SaveLoad*)sldg);
   675 		SlObjectMember(sldg->address, (const SaveLoad*)sldg);
   676 	}
   676 	}
   677 }
   677 }
   678 
   678 
   679 /**
   679 /**
   680  * Do something of which I have no idea what it is :P
   680  * Do something of which I have no idea what it is :P