public void Read(VoidPtr userDataAddr) { if (userDataAddr == null) { return; } UserData * data = (UserData *)userDataAddr; ResourceGroup *group = data->Group; ResourceEntry *pEntry = &group->_first + 1; int count = group->_numEntries; for (int i = 0; i < count; i++, pEntry++) { UserDataEntry *entry = (UserDataEntry *)((VoidPtr)group + pEntry->_dataOffset); UserDataClass d = new UserDataClass() { _name = new string((sbyte *)group + pEntry->_stringOffset) }; VoidPtr addr = (VoidPtr)entry + entry->_dataOffset; d._type = entry->Type; if (d._type != UserValueType.String) { for (int x = 0; x < entry->_entryCount; x++) { switch (entry->Type) { case UserValueType.Float: d._entries.Add(((float)*(bfloat *)addr).ToString()); addr += 4; break; case UserValueType.Int: d._entries.Add(((int)*(bint *)addr).ToString()); addr += 4; break; } } } else { d._entries.Add(new string((sbyte *)addr)); } Add(d); } }
public void Remove(UserDataClass u) { this.List.Remove(u); }
public void Add(UserDataClass u) { this.List.Add(u); }
public void Read(VoidPtr userDataAddr) { if (userDataAddr == null) return; UserData* data = (UserData*)userDataAddr; ResourceGroup* group = data->Group; ResourceEntry* pEntry = &group->_first + 1; int count = group->_numEntries; for (int i = 0; i < count; i++) { UserDataEntry* entry = (UserDataEntry*)((VoidPtr)group + pEntry->_dataOffset); UserDataClass d = new UserDataClass() { _name = new String((sbyte*)group + pEntry->_stringOffset) }; VoidPtr addr = (VoidPtr)entry + entry->_dataOffset; d._type = entry->Type; if (d._type != UserValueType.String) for (int x = 0; x < entry->_entryCount; x++) switch (entry->Type) { case UserValueType.Float: d._entries.Add(((float)*(bfloat*)addr).ToString()); addr += 4; break; case UserValueType.Int: d._entries.Add(((int)*(bint*)addr).ToString()); addr += 4; break; } else d._entries.Add(new String((sbyte*)addr)); Add(d); } }