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)=== |