diff --git a/assets/files-2019.2/SGCaret000000_0_Sprite.dat b/assets/files-2019.2/SGCaret000000_0_Sprite.dat new file mode 100644 index 0000000..fdc9533 Binary files /dev/null and b/assets/files-2019.2/SGCaret000000_0_Sprite.dat differ diff --git a/assets/files-2019.2/SGCaret000000_1_Sprite.dat b/assets/files-2019.2/SGCaret000000_1_Sprite.dat new file mode 100644 index 0000000..d54ecd2 Binary files /dev/null and b/assets/files-2019.2/SGCaret000000_1_Sprite.dat differ diff --git a/assets/files-2019.2/SGCaret000000_2_Sprite.dat b/assets/files-2019.2/SGCaret000000_2_Sprite.dat new file mode 100644 index 0000000..f33cbcb Binary files /dev/null and b/assets/files-2019.2/SGCaret000000_2_Sprite.dat differ diff --git a/assets/files-2019.2/SGCaret000100_0_Sprite.dat b/assets/files-2019.2/SGCaret000100_0_Sprite.dat new file mode 100644 index 0000000..0a34121 Binary files /dev/null and b/assets/files-2019.2/SGCaret000100_0_Sprite.dat differ diff --git a/assets/files-2019.2/SGCaret000100_1_Sprite.dat b/assets/files-2019.2/SGCaret000100_1_Sprite.dat new file mode 100644 index 0000000..dceb617 Binary files /dev/null and b/assets/files-2019.2/SGCaret000100_1_Sprite.dat differ diff --git a/assets/files-2019.2/SGCaret000100_2_Sprite.dat b/assets/files-2019.2/SGCaret000100_2_Sprite.dat new file mode 100644 index 0000000..5e79954 Binary files /dev/null and b/assets/files-2019.2/SGCaret000100_2_Sprite.dat differ diff --git a/scripts/BinaryTemplates/Unity2019.2Sprite.tcl b/scripts/BinaryTemplates/Unity2019.2Sprite.tcl new file mode 100644 index 0000000..d8aec62 --- /dev/null +++ b/scripts/BinaryTemplates/Unity2019.2Sprite.tcl @@ -0,0 +1,147 @@ +little_endian +proc align {size alignment} { + set extra [expr $size % $alignment] + set newExtra [expr $extra > 0 ? $alignment : 0] + return [expr $size - $extra + $newExtra] +} + +proc alignPos {alignment} { + goto [align [pos] $alignment] +} + +proc pptr {name} { + section $name { + int32 "m_FileID" + int64 "m_PathID" + } +} + +proc rectf {name} { + section $name { + float "x" + float "y" + float "width" + float "height" + } +} + +proc vector2f {name} { + section $name { + float "x" + float "y" + } +} + +proc vector3f {name} { + section $name { + float "x" + float "y" + float "z" + } +} + +proc vector4f {name} { + section $name { + float "x" + float "y" + float "z" + float "w" + } +} + +set nameLen [uint32 "Name Length"] +str [align $nameLen 4] "utf8" "Name" +rectf "m_Rect" +vector2f "m_Offset" +vector4f "m_Border" +float "m_PixelsToUnits" +vector2f "m_Pivot" +uint32 "m_Extrude" +uint8 "m_IsPolygon" +alignPos 4 +section "m_RenderDataKey" { + uuid "first" + int64 "second" +} +uint32 "m_AtlasTags.size" +pptr "m_SpriteAtlas" +section "m_RD" { + pptr "texture" + pptr "alphaTexture" + section "secondaryTextures" { + set alen [int32 "size"] + for {set i 0} {$i < $alen} {incr i} { + # TODO: What are these? + } + } + section "m_SubMeshes" { + set alen [int32 "size"] + for {set i 0} {$i < $alen} {incr i} { + section "Submesh" { + uint32 "firstByte" + uint32 "indexCount" + int32 "topology" + uint32 "baseVertex" + uint32 "firstVertex" + uint32 "vertexCount" + section "localAABB" { + vector3f "m_Center" + vector3f "m_Extent" + } + } + } + } + section "m_IndexBuffer" { + set alen [int32 "size"] + for {set i 0} {$i < $alen} {incr i} { + uint8 "data" + } + } + section "m_VertexData" { + uint32 "m_VertexCount" + section "m_Channels" { + set alen [int32 "size"] + for {set i 0} {$i < $alen} {incr i} { + section "ChannelInfo" { + uint8 "stream" + uint8 "offset" + uint8 "format" + uint8 "dimension" + } + } + } + set dlen [uint32 "dataSize"] + bytes $dlen "data" + } + section "m_Bindpose" { + set alen [int32 "size"] + for {set i 0} {$i < $alen} {incr i} { + # TODO: What are these + } + } + rectf "textureRect" + vector2f "textureRectOffset" + vector2f "atlasRectOffset" + uint32 "settingsRaw" + vector4f "uvTransform" + float "downscaleMultiplier" +} + +section "m_PhysicsShape" { + set alen [int32 "size"] + for {set i 0} {$i < $alen} {incr i} { + section "Entry" { + set blen [int32 "size"] + for {set j 0} {$j < $blen} {incr j} { + vector2f "data" + } + } + } +} + +section "m_Bones" { + set alen [int32 "size"] + for {set i 0} {$i < $alen} {incr i} { + # TODO: What are these + } +} \ No newline at end of file