I was looking at the type IDs for the SHN editors and they appear to repeat after 15(0xF), that is excluding some types that i have not seen. That said, i have little experience with them.
This is the structure i assumed:
Example, Mod the following values by 0xF returns the same values
Code:
uint typeid = dwTypeID % 0xF;
This is the structure i assumed:
Code:
public const uint SHN_BYTE = 1;
public const uint SHN_USHORT = 2;
public const uint SHN_UINT = 3;
public const uint SHN_UINT_UKN = 4;// I dont want to assume UInt64
public const uint SHN_UTF8 = 5;
public const uint SHN_UTF16 = 6;
public const uint SHN_UTF32 = 7;
public const uint SHN_UTF_UKN = 8;
public const uint SHN_STRING_LEN = 9;
public const uint SHN_STRING_GUESS = 10; // Assumption
public const uint SHN_STRING = 11;
public const uint SHN_SBYTE = 12;
public const uint SHN_SHORT = 13;
public const uint SHN_INT = 14;
public const uint SHN_INT_UKN = 0; // 15 % 15 = 0
Example, Mod the following values by 0xF returns the same values
Code:
case 0x18:
this.WriteString(w, (string)obj2, col.Lenght);
break;
case 0x1a:
this.WriteString(w, (string)obj2, -1);
break;