private static unsafe byte[] GetRecordBytes(LevelMonsterRecord record) { byte[] bytes = new byte[sizeof(LevelMonsterRecord)]; fixed(byte *p = bytes) { LevelMonsterRecord *temp = (LevelMonsterRecord *)p; *temp = record; } return(bytes); }
public bool ReadFromBinary(BinaryTable table, int index) { LevelMonsterRecord record = GetRecord(table, index); group = DataRecordUtility.ExtractInt(table, record.group, 0); scene = DataRecordUtility.ExtractInt(table, record.scene, 0); camp = DataRecordUtility.ExtractInt(table, record.camp, 0); actorID = DataRecordUtility.ExtractInt(table, record.actorID, 0); x = DataRecordUtility.ExtractFloat(table, record.x, 0); y = DataRecordUtility.ExtractFloat(table, record.y, 0); dir = DataRecordUtility.ExtractFloat(table, record.dir, 0); level = DataRecordUtility.ExtractInt(table, record.level, 0); passive = DataRecordUtility.ExtractBool(table, record.passive, false); aiLogic = DataRecordUtility.ExtractString(table, record.aiLogic, ""); aiParams = DataRecordUtility.ExtractStringList(table, record.aiParams, null); return(true); }
public void WriteToBinary(BinaryTable table) { LevelMonsterRecord record = new LevelMonsterRecord(); record.group = DataRecordUtility.SetValue(table, group, 0); record.scene = DataRecordUtility.SetValue(table, scene, 0); record.camp = DataRecordUtility.SetValue(table, camp, 0); record.actorID = DataRecordUtility.SetValue(table, actorID, 0); record.x = DataRecordUtility.SetValue(table, x, 0); record.y = DataRecordUtility.SetValue(table, y, 0); record.dir = DataRecordUtility.SetValue(table, dir, 0); record.level = DataRecordUtility.SetValue(table, level, 0); record.passive = DataRecordUtility.SetValue(table, passive, false); record.aiLogic = DataRecordUtility.SetValue(table, aiLogic, ""); record.aiParams = DataRecordUtility.SetValue(table, aiParams, null); byte[] bytes = GetRecordBytes(record); table.Records.Add(bytes); }