- else
- {
- DataMember member = (DataMember)prop;
- DataValue value { };
- Class type = eSystem_FindClass(__thisModule, member.dataTypeString);
- if(!type)
- type = eSystem_FindClass(__thisModule.application, member.dataTypeString);
-
- if(type)
- {
- if(type.type == normalClass || type.type == noHeadClass || type.type == structClass || !strcmp(type.name, "String"))
- {
- if(type.type == structClass)
- value.p = (void *)((byte *)object + member._class.offset + member.offset);
- else
- value.p = *(void **)((byte *)object + member._class.offset + member.offset);
- if(!value.p)
- continue;
- }
- else if(type == class(double) || !strcmp(type.dataTypeString, "double"))
- {
- value.d = *(double *)((byte *)object + member._class.offset + member.offset);
- }
- else if(type == class(float) || !strcmp(type.dataTypeString, "float"))
- {
- value.f = *(float *)((byte *)object + member._class.offset + member.offset);
- }
- else if(type.typeSize == sizeof(int64) || !strcmp(type.dataTypeString, "int64") ||
- !strcmp(type.dataTypeString, "unsigned int64") || !strcmp(type.dataTypeString, "uint64"))
- {
- value.ui64 = *(uint64 *)((byte *)object + member._class.offset + member.offset);
- }
- else if(type.typeSize == sizeof(int) || !strcmp(type.dataTypeString, "int") ||
- !strcmp(type.dataTypeString, "unsigned int") || !strcmp(type.dataTypeString, "uint"))
- {
- value.i = *(int *)((byte *)object + member._class.offset + member.offset);
- if(!strcmp(type.name, "bool") || type.type == enumClass)
- if(!value.i)
- continue;
- }
- else if(type.typeSize == sizeof(short int) || !strcmp(type.dataTypeString, "short") ||
- !strcmp(type.dataTypeString, "unsigned short") || !strcmp(type.dataTypeString, "uint16") ||
- !strcmp(type.dataTypeString, "int16"))
- {
- value.s = *(short *)((byte *)object + member._class.offset + member.offset);
- }
- else if(type.typeSize == sizeof(byte) || !strcmp(type.dataTypeString, "char") ||
- !strcmp(type.dataTypeString, "unsigned char") || !strcmp(type.dataTypeString, "byte"))
- {
- value.c = *(char *)((byte *)object + member._class.offset + member.offset);
- }
- else
- {
- value.i = *(int *)((byte *)object + member._class.offset + member.offset);
- }
-
- if(!isFirst) f.Puts(",\n");
- for(c = 0; c<indent; c++) f.Puts(" ");
-
- f.Puts("\"");
- f.Putc((char)toupper(member.name[0]));
- f.Puts(member.name+1);
- f.Puts("\" : ");
- WriteValue(f, type, value, indent);
- isFirst = false;
- }
- }