Changes

Jump to navigation Jump to search
2,040 bytes added ,  00:57, 8 June 2017
→‎CGameCtnChallenge (03 043 000): Added metadata chunk and embedded items chunk
Line 362: Line 362:  
         uint32 compressedSize
 
         uint32 compressedSize
 
         byte data[compressedSize]
 
         byte data[compressedSize]
 +
 +
'''03043044''' (skippable)
 +
uint32 unknown (0)
 +
uint32 size
 +
uint32 flags
 +
uint32 unknown (1, 2)
 +
uint32 count (number of metadata records)
 +
for each count:
 +
  string varName
 +
  uint32 varType
 +
  switch varType:
 +
    case EType_Boolean:
 +
      bool
 +
    case EType_Integer:
 +
      int32
 +
    case EType_Real:
 +
      float
 +
    case EType_Text:
 +
      string
 +
    case EType_Int2:
 +
      int32
 +
      int32
 +
    case EType_Int3:
 +
      int32
 +
      int32
 +
      int32
 +
    case EType_Vec2:
 +
      float
 +
      float
 +
    case EType_Vec3:
 +
      float
 +
      float
 +
      float
 +
    case EType_Array:
 +
      uint32 typeKey
 +
      uint32 typeValue
 +
      uint32 arrayElements
 +
      for each arrayElements
 +
        switch typeKey:
 +
          case EType_Boolean:
 +
            bool
 +
          case EType_Integer:
 +
            int32
 +
          case EType_Real:
 +
            float
 +
          case EType_Text:
 +
            string
 +
        switch typeValue:
 +
          case EType_Boolean:
 +
            bool
 +
          case EType_Integer:
 +
            int32
 +
          case EType_Real:
 +
            float
 +
          case EType_Text:
 +
            string
 +
          case EType_Int2:
 +
            int32
 +
            int32
 +
          case EType_Int3:
 +
            int32
 +
            int32
 +
            int32
 +
          case EType_Vec2:
 +
            float
 +
            float
 +
          case EType_Vec3:
 +
            float
 +
            float
 +
            float
 +
          case EType_Array:
 +
            recursively read multidimensional arrays
 +
 +
The variable type is to be interpreted as follows:
 +
 +
enum eScriptType
 +
{
 +
  EType_Void = 0,
 +
  EType_Boolean,
 +
  EType_Integer,
 +
  EType_Real,
 +
  EType_Class,
 +
  EType_Text,
 +
  EType_Enum,
 +
  EType_Array,
 +
  EType_ParamArray,
 +
  EType_Vec2,
 +
  EType_Vec3,
 +
  EType_Int3,
 +
  EType_Iso4,
 +
  EType_Ident,
 +
  EType_Int2
 +
};
 +
 +
'''03043054''' (skippable)
 +
uint32 version (1)
 +
uint32
 +
uint32 chunkSize
 +
uint32 itemsCount (number of embedded items)
 +
uint32 zipSize (embedded items ZIP file size)
 +
byte zipFile[zipSize]
    
===CGameCtnCollectorList (03 01B 000)===
 
===CGameCtnCollectorList (03 01B 000)===

Navigation menu