| Line 381: |
Line 381: |
| | uint32 version | | uint32 version |
| | if version >= 5: | | if version >= 5: |
| − | uint32 frames // If version < 5 then frames = 1
| + | uint32 frames // If version < 5 then frames = 1 |
| | if version >= 2: | | if version >= 2: |
| − | for each frame:
| + | for each frame: |
| − | uint32 size
| + | uint32 size |
| − | byte image[size] // Image is JPEG/JFIF or WEBP/RIFF file format
| + | byte image[size] // Image is JPEG/JFIF or WEBP/RIFF file format |
| − | if version >= 3:
| + | if version >= 3: |
| − | uint32 size
| + | uint32 size |
| − | byte image[size]
| + | byte image[size] |
| − | if version >= 6:
| + | if version >= 6: |
| − | uint32 size
| + | uint32 size |
| − | byte image[size]
| + | byte image[size] |
| − | if size != 0:
| + | if size != 0: |
| − | uint32 uncompressedSize
| + | uint32 uncompressedSize |
| − | uint32 compressedSize
| + | uint32 compressedSize |
| − | byte compressedData[compressedSize] // ZLIB compressed lightmap cache node
| + | byte compressedData[compressedSize] // ZLIB compressed lightmap cache node |
| | | | |
| | '''03043040''' (skippable) ''"items"'' | | '''03043040''' (skippable) ''"items"'' |
| Line 437: |
Line 437: |
| | uint32 version | | uint32 version |
| | if version >= 2: | | if version >= 2: |
| − | uint32 count (number of metadata records)
| + | uint32 count (number of metadata records) |
| − | for each count:
| + | for each count: |
| − | string varName
| + | string varName |
| − | uint32 varType
| + | uint32 varType |
| − | switch 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: | | case EType_Boolean: |
| − | bool
| + | bool |
| | case EType_Integer: | | case EType_Integer: |
| − | int32
| + | int32 |
| | case EType_Real: | | case EType_Real: |
| − | float
| + | float |
| | case EType_Text: | | case EType_Text: |
| − | string
| + | string |
| − | switch typeValue:
| |
| − | case EType_Boolean:
| |
| − | bool
| |
| − | case EType_Integer:
| |
| − | int32
| |
| − | case EType_Real:
| |
| − | float
| |
| − | case EType_Text:
| |
| − | string
| |
| | case EType_Int2: | | case EType_Int2: |
| − | int32
| + | int32 |
| − | int32
| + | int32 |
| | case EType_Int3: | | case EType_Int3: |
| − | int32
| + | int32 |
| − | int32
| + | int32 |
| − | int32
| + | int32 |
| | case EType_Vec2: | | case EType_Vec2: |
| − | float
| + | float |
| − | float
| + | float |
| | case EType_Vec3: | | case EType_Vec3: |
| − | float
| + | float |
| − | float
| + | float |
| − | float
| + | float |
| | case EType_Array: | | case EType_Array: |
| − | recursively read multidimensional arrays
| + | 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: | | The variable type is to be interpreted as follows: |
| | enum eScriptType | | enum eScriptType |
| | { | | { |
| − | EType_Void = 0,
| + | EType_Void = 0, |
| − | EType_Boolean,
| + | EType_Boolean, |
| − | EType_Integer,
| + | EType_Integer, |
| − | EType_Real,
| + | EType_Real, |
| − | EType_Class,
| + | EType_Class, |
| − | EType_Text,
| + | EType_Text, |
| − | EType_Enum,
| + | EType_Enum, |
| − | EType_Array,
| + | EType_Array, |
| − | EType_ParamArray,
| + | EType_ParamArray, |
| − | EType_Vec2,
| + | EType_Vec2, |
| − | EType_Vec3,
| + | EType_Vec3, |
| − | EType_Int3,
| + | EType_Int3, |
| − | EType_Iso4,
| + | EType_Iso4, |
| − | EType_Ident,
| + | EType_Ident, |
| − | EType_Int2,
| + | EType_Int2, |
| − | EType_Struct
| + | EType_Struct |
| | }; | | }; |
| | Maniaplanet 4.1 has changed the way script types and values are written. The code now does the following: | | Maniaplanet 4.1 has changed the way script types and values are written. The code now does the following: |
| Line 753: |
Line 753: |
| | CGameWaypointSpecialProperty waypointSpecialProperty (-1 if not a waypoint, otherwise direct node) | | CGameWaypointSpecialProperty waypointSpecialProperty (-1 if not a waypoint, otherwise direct node) |
| | if version >= 4: | | if version >= 4: |
| − | uint16 flags
| + | uint16 flags |
| − | if version >= 5:
| + | if version >= 5: |
| − | vec3 pivotPosition
| + | vec3 pivotPosition |
| − | if version >= 6:
| + | if version >= 6: |
| − | float scale
| + | float scale |
| − | if version >= 8: // TM 2020
| + | if version >= 8: // TM 2020 |
| − | vec3
| + | vec3 |
| − | vec3
| + | vec3 |
| | | | |
| | ===CGameCtnReplayRecord (03 093 000)=== | | ===CGameCtnReplayRecord (03 093 000)=== |