implemented tilemap rendering
This commit is contained in:
parent
124d379a3a
commit
4ebe759030
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
1270
assets/levels/level_1.ldtkl
Normal file
1270
assets/levels/level_1.ldtkl
Normal file
File diff suppressed because it is too large
Load diff
|
@ -8,7 +8,7 @@
|
||||||
"appVersion": "1.4.1",
|
"appVersion": "1.4.1",
|
||||||
"url": "https://ldtk.io"
|
"url": "https://ldtk.io"
|
||||||
},
|
},
|
||||||
"identifier": "Level_2",
|
"identifier": "level_2",
|
||||||
"iid": "7d714960-3b70-11ee-9613-91c75b274d8d",
|
"iid": "7d714960-3b70-11ee-9613-91c75b274d8d",
|
||||||
"uid": 312,
|
"uid": 312,
|
||||||
"worldX": 2560,
|
"worldX": 2560,
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
"fieldInstances": [],
|
"fieldInstances": [],
|
||||||
"layerInstances": [
|
"layerInstances": [
|
||||||
{
|
{
|
||||||
"__identifier": "Foliage",
|
"__identifier": "foliage",
|
||||||
"__type": "AutoLayer",
|
"__type": "AutoLayer",
|
||||||
"__cWid": 48,
|
"__cWid": 48,
|
||||||
"__cHei": 24,
|
"__cHei": 24,
|
||||||
|
@ -98,7 +98,7 @@
|
||||||
"entityInstances": []
|
"entityInstances": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__identifier": "Entities",
|
"__identifier": "entities",
|
||||||
"__type": "Entities",
|
"__type": "Entities",
|
||||||
"__cWid": 96,
|
"__cWid": 96,
|
||||||
"__cHei": 48,
|
"__cHei": 48,
|
||||||
|
@ -122,7 +122,7 @@
|
||||||
"gridTiles": [],
|
"gridTiles": [],
|
||||||
"entityInstances": [
|
"entityInstances": [
|
||||||
{
|
{
|
||||||
"__identifier": "Player",
|
"__identifier": "player",
|
||||||
"__grid": [1,39],
|
"__grid": [1,39],
|
||||||
"__pivot": [0.25,1],
|
"__pivot": [0.25,1],
|
||||||
"__tags": [],
|
"__tags": [],
|
||||||
|
@ -138,7 +138,7 @@
|
||||||
"fieldInstances": []
|
"fieldInstances": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__identifier": "LevelTransition",
|
"__identifier": "leveltransition",
|
||||||
"__grid": [95,9],
|
"__grid": [95,9],
|
||||||
"__pivot": [0,0],
|
"__pivot": [0,0],
|
||||||
"__tags": [],
|
"__tags": [],
|
||||||
|
@ -159,7 +159,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__identifier": "Ground",
|
"__identifier": "ground",
|
||||||
"__type": "AutoLayer",
|
"__type": "AutoLayer",
|
||||||
"__cWid": 48,
|
"__cWid": 48,
|
||||||
"__cHei": 24,
|
"__cHei": 24,
|
||||||
|
@ -887,7 +887,7 @@
|
||||||
"entityInstances": []
|
"entityInstances": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__identifier": "Level",
|
"__identifier": "level",
|
||||||
"__type": "IntGrid",
|
"__type": "IntGrid",
|
||||||
"__cWid": 48,
|
"__cWid": 48,
|
||||||
"__cHei": 24,
|
"__cHei": 24,
|
||||||
|
@ -939,581 +939,7 @@
|
||||||
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
|
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
|
||||||
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
],
|
],
|
||||||
"autoLayerTiles": [
|
"autoLayerTiles": [],
|
||||||
{ "px": [0,0], "src": [32,32], "f": 0, "t": 11, "d": [278,0], "a": 1 },
|
|
||||||
{ "px": [32,0], "src": [32,32], "f": 0, "t": 11, "d": [278,1], "a": 1 },
|
|
||||||
{ "px": [64,0], "src": [32,32], "f": 0, "t": 11, "d": [278,2], "a": 1 },
|
|
||||||
{ "px": [96,0], "src": [32,32], "f": 0, "t": 11, "d": [278,3], "a": 1 },
|
|
||||||
{ "px": [128,0], "src": [32,32], "f": 0, "t": 11, "d": [278,4], "a": 1 },
|
|
||||||
{ "px": [160,0], "src": [32,32], "f": 0, "t": 11, "d": [278,5], "a": 1 },
|
|
||||||
{ "px": [192,0], "src": [32,32], "f": 0, "t": 11, "d": [278,6], "a": 1 },
|
|
||||||
{ "px": [224,0], "src": [32,32], "f": 0, "t": 11, "d": [278,7], "a": 1 },
|
|
||||||
{ "px": [256,0], "src": [32,32], "f": 0, "t": 11, "d": [278,8], "a": 1 },
|
|
||||||
{ "px": [288,0], "src": [32,32], "f": 0, "t": 11, "d": [278,9], "a": 1 },
|
|
||||||
{ "px": [320,0], "src": [32,32], "f": 0, "t": 11, "d": [278,10], "a": 1 },
|
|
||||||
{ "px": [352,0], "src": [32,32], "f": 0, "t": 11, "d": [278,11], "a": 1 },
|
|
||||||
{ "px": [384,0], "src": [32,32], "f": 0, "t": 11, "d": [278,12], "a": 1 },
|
|
||||||
{ "px": [416,0], "src": [32,32], "f": 0, "t": 11, "d": [278,13], "a": 1 },
|
|
||||||
{ "px": [448,0], "src": [32,32], "f": 0, "t": 11, "d": [278,14], "a": 1 },
|
|
||||||
{ "px": [1056,0], "src": [32,32], "f": 0, "t": 11, "d": [278,33], "a": 1 },
|
|
||||||
{ "px": [1088,0], "src": [32,32], "f": 0, "t": 11, "d": [278,34], "a": 1 },
|
|
||||||
{ "px": [1120,0], "src": [32,32], "f": 0, "t": 11, "d": [278,35], "a": 1 },
|
|
||||||
{ "px": [1152,0], "src": [32,32], "f": 0, "t": 11, "d": [278,36], "a": 1 },
|
|
||||||
{ "px": [1184,0], "src": [32,32], "f": 0, "t": 11, "d": [278,37], "a": 1 },
|
|
||||||
{ "px": [1216,0], "src": [32,32], "f": 0, "t": 11, "d": [278,38], "a": 1 },
|
|
||||||
{ "px": [1248,0], "src": [32,32], "f": 0, "t": 11, "d": [278,39], "a": 1 },
|
|
||||||
{ "px": [1280,0], "src": [32,32], "f": 0, "t": 11, "d": [278,40], "a": 1 },
|
|
||||||
{ "px": [1312,0], "src": [32,32], "f": 0, "t": 11, "d": [278,41], "a": 1 },
|
|
||||||
{ "px": [1344,0], "src": [32,32], "f": 0, "t": 11, "d": [278,42], "a": 1 },
|
|
||||||
{ "px": [1376,0], "src": [32,32], "f": 0, "t": 11, "d": [278,43], "a": 1 },
|
|
||||||
{ "px": [1408,0], "src": [32,32], "f": 0, "t": 11, "d": [278,44], "a": 1 },
|
|
||||||
{ "px": [1440,0], "src": [32,32], "f": 0, "t": 11, "d": [278,45], "a": 1 },
|
|
||||||
{ "px": [1472,0], "src": [32,32], "f": 0, "t": 11, "d": [278,46], "a": 1 },
|
|
||||||
{ "px": [1504,0], "src": [32,32], "f": 0, "t": 11, "d": [278,47], "a": 1 },
|
|
||||||
{ "px": [0,32], "src": [32,32], "f": 0, "t": 11, "d": [278,48], "a": 1 },
|
|
||||||
{ "px": [32,32], "src": [32,32], "f": 0, "t": 11, "d": [278,49], "a": 1 },
|
|
||||||
{ "px": [64,32], "src": [32,32], "f": 0, "t": 11, "d": [278,50], "a": 1 },
|
|
||||||
{ "px": [96,32], "src": [32,32], "f": 0, "t": 11, "d": [278,51], "a": 1 },
|
|
||||||
{ "px": [128,32], "src": [32,32], "f": 0, "t": 11, "d": [278,52], "a": 1 },
|
|
||||||
{ "px": [160,32], "src": [32,32], "f": 0, "t": 11, "d": [278,53], "a": 1 },
|
|
||||||
{ "px": [192,32], "src": [32,32], "f": 0, "t": 11, "d": [278,54], "a": 1 },
|
|
||||||
{ "px": [224,32], "src": [32,32], "f": 0, "t": 11, "d": [278,55], "a": 1 },
|
|
||||||
{ "px": [256,32], "src": [32,32], "f": 0, "t": 11, "d": [278,56], "a": 1 },
|
|
||||||
{ "px": [288,32], "src": [32,32], "f": 0, "t": 11, "d": [278,57], "a": 1 },
|
|
||||||
{ "px": [320,32], "src": [32,32], "f": 0, "t": 11, "d": [278,58], "a": 1 },
|
|
||||||
{ "px": [352,32], "src": [32,32], "f": 0, "t": 11, "d": [278,59], "a": 1 },
|
|
||||||
{ "px": [384,32], "src": [32,32], "f": 0, "t": 11, "d": [278,60], "a": 1 },
|
|
||||||
{ "px": [416,32], "src": [32,32], "f": 0, "t": 11, "d": [278,61], "a": 1 },
|
|
||||||
{ "px": [448,32], "src": [32,32], "f": 0, "t": 11, "d": [278,62], "a": 1 },
|
|
||||||
{ "px": [1056,32], "src": [32,32], "f": 0, "t": 11, "d": [278,81], "a": 1 },
|
|
||||||
{ "px": [1088,32], "src": [32,32], "f": 0, "t": 11, "d": [278,82], "a": 1 },
|
|
||||||
{ "px": [1120,32], "src": [32,32], "f": 0, "t": 11, "d": [278,83], "a": 1 },
|
|
||||||
{ "px": [1152,32], "src": [32,32], "f": 0, "t": 11, "d": [278,84], "a": 1 },
|
|
||||||
{ "px": [1184,32], "src": [32,32], "f": 0, "t": 11, "d": [278,85], "a": 1 },
|
|
||||||
{ "px": [1216,32], "src": [32,32], "f": 0, "t": 11, "d": [278,86], "a": 1 },
|
|
||||||
{ "px": [1248,32], "src": [32,32], "f": 0, "t": 11, "d": [278,87], "a": 1 },
|
|
||||||
{ "px": [1280,32], "src": [32,32], "f": 0, "t": 11, "d": [278,88], "a": 1 },
|
|
||||||
{ "px": [1312,32], "src": [32,32], "f": 0, "t": 11, "d": [278,89], "a": 1 },
|
|
||||||
{ "px": [1344,32], "src": [32,32], "f": 0, "t": 11, "d": [278,90], "a": 1 },
|
|
||||||
{ "px": [1376,32], "src": [32,32], "f": 0, "t": 11, "d": [278,91], "a": 1 },
|
|
||||||
{ "px": [1408,32], "src": [32,32], "f": 0, "t": 11, "d": [278,92], "a": 1 },
|
|
||||||
{ "px": [1440,32], "src": [32,32], "f": 0, "t": 11, "d": [278,93], "a": 1 },
|
|
||||||
{ "px": [1472,32], "src": [32,32], "f": 0, "t": 11, "d": [278,94], "a": 1 },
|
|
||||||
{ "px": [1504,32], "src": [32,32], "f": 0, "t": 11, "d": [278,95], "a": 1 },
|
|
||||||
{ "px": [0,64], "src": [32,32], "f": 0, "t": 11, "d": [278,96], "a": 1 },
|
|
||||||
{ "px": [32,64], "src": [32,32], "f": 0, "t": 11, "d": [278,97], "a": 1 },
|
|
||||||
{ "px": [64,64], "src": [32,32], "f": 0, "t": 11, "d": [278,98], "a": 1 },
|
|
||||||
{ "px": [96,64], "src": [32,32], "f": 0, "t": 11, "d": [278,99], "a": 1 },
|
|
||||||
{ "px": [128,64], "src": [32,32], "f": 0, "t": 11, "d": [278,100], "a": 1 },
|
|
||||||
{ "px": [160,64], "src": [32,32], "f": 0, "t": 11, "d": [278,101], "a": 1 },
|
|
||||||
{ "px": [192,64], "src": [32,32], "f": 0, "t": 11, "d": [278,102], "a": 1 },
|
|
||||||
{ "px": [224,64], "src": [32,32], "f": 0, "t": 11, "d": [278,103], "a": 1 },
|
|
||||||
{ "px": [256,64], "src": [32,32], "f": 0, "t": 11, "d": [278,104], "a": 1 },
|
|
||||||
{ "px": [288,64], "src": [32,32], "f": 0, "t": 11, "d": [278,105], "a": 1 },
|
|
||||||
{ "px": [320,64], "src": [32,32], "f": 0, "t": 11, "d": [278,106], "a": 1 },
|
|
||||||
{ "px": [352,64], "src": [32,32], "f": 0, "t": 11, "d": [278,107], "a": 1 },
|
|
||||||
{ "px": [384,64], "src": [32,32], "f": 0, "t": 11, "d": [278,108], "a": 1 },
|
|
||||||
{ "px": [416,64], "src": [32,32], "f": 0, "t": 11, "d": [278,109], "a": 1 },
|
|
||||||
{ "px": [448,64], "src": [32,32], "f": 0, "t": 11, "d": [278,110], "a": 1 },
|
|
||||||
{ "px": [1056,64], "src": [32,32], "f": 0, "t": 11, "d": [278,129], "a": 1 },
|
|
||||||
{ "px": [1088,64], "src": [32,32], "f": 0, "t": 11, "d": [278,130], "a": 1 },
|
|
||||||
{ "px": [1120,64], "src": [32,32], "f": 0, "t": 11, "d": [278,131], "a": 1 },
|
|
||||||
{ "px": [1152,64], "src": [32,32], "f": 0, "t": 11, "d": [278,132], "a": 1 },
|
|
||||||
{ "px": [1184,64], "src": [32,32], "f": 0, "t": 11, "d": [278,133], "a": 1 },
|
|
||||||
{ "px": [1216,64], "src": [32,32], "f": 0, "t": 11, "d": [278,134], "a": 1 },
|
|
||||||
{ "px": [1248,64], "src": [32,32], "f": 0, "t": 11, "d": [278,135], "a": 1 },
|
|
||||||
{ "px": [1280,64], "src": [32,32], "f": 0, "t": 11, "d": [278,136], "a": 1 },
|
|
||||||
{ "px": [1312,64], "src": [32,32], "f": 0, "t": 11, "d": [278,137], "a": 1 },
|
|
||||||
{ "px": [1344,64], "src": [32,32], "f": 0, "t": 11, "d": [278,138], "a": 1 },
|
|
||||||
{ "px": [1376,64], "src": [32,32], "f": 0, "t": 11, "d": [278,139], "a": 1 },
|
|
||||||
{ "px": [1408,64], "src": [32,32], "f": 0, "t": 11, "d": [278,140], "a": 1 },
|
|
||||||
{ "px": [1440,64], "src": [32,32], "f": 0, "t": 11, "d": [278,141], "a": 1 },
|
|
||||||
{ "px": [1472,64], "src": [32,32], "f": 0, "t": 11, "d": [278,142], "a": 1 },
|
|
||||||
{ "px": [1504,64], "src": [32,32], "f": 0, "t": 11, "d": [278,143], "a": 1 },
|
|
||||||
{ "px": [0,96], "src": [32,32], "f": 0, "t": 11, "d": [278,144], "a": 1 },
|
|
||||||
{ "px": [32,96], "src": [32,32], "f": 0, "t": 11, "d": [278,145], "a": 1 },
|
|
||||||
{ "px": [64,96], "src": [32,32], "f": 0, "t": 11, "d": [278,146], "a": 1 },
|
|
||||||
{ "px": [96,96], "src": [32,32], "f": 0, "t": 11, "d": [278,147], "a": 1 },
|
|
||||||
{ "px": [128,96], "src": [32,32], "f": 0, "t": 11, "d": [278,148], "a": 1 },
|
|
||||||
{ "px": [160,96], "src": [32,32], "f": 0, "t": 11, "d": [278,149], "a": 1 },
|
|
||||||
{ "px": [192,96], "src": [32,32], "f": 0, "t": 11, "d": [278,150], "a": 1 },
|
|
||||||
{ "px": [224,96], "src": [32,32], "f": 0, "t": 11, "d": [278,151], "a": 1 },
|
|
||||||
{ "px": [256,96], "src": [32,32], "f": 0, "t": 11, "d": [278,152], "a": 1 },
|
|
||||||
{ "px": [288,96], "src": [32,32], "f": 0, "t": 11, "d": [278,153], "a": 1 },
|
|
||||||
{ "px": [320,96], "src": [32,32], "f": 0, "t": 11, "d": [278,154], "a": 1 },
|
|
||||||
{ "px": [352,96], "src": [32,32], "f": 0, "t": 11, "d": [278,155], "a": 1 },
|
|
||||||
{ "px": [384,96], "src": [32,32], "f": 0, "t": 11, "d": [278,156], "a": 1 },
|
|
||||||
{ "px": [416,96], "src": [32,32], "f": 0, "t": 11, "d": [278,157], "a": 1 },
|
|
||||||
{ "px": [448,96], "src": [32,32], "f": 0, "t": 11, "d": [278,158], "a": 1 },
|
|
||||||
{ "px": [480,96], "src": [32,32], "f": 0, "t": 11, "d": [278,159], "a": 1 },
|
|
||||||
{ "px": [1088,96], "src": [32,32], "f": 0, "t": 11, "d": [278,178], "a": 1 },
|
|
||||||
{ "px": [1120,96], "src": [32,32], "f": 0, "t": 11, "d": [278,179], "a": 1 },
|
|
||||||
{ "px": [1152,96], "src": [32,32], "f": 0, "t": 11, "d": [278,180], "a": 1 },
|
|
||||||
{ "px": [1184,96], "src": [32,32], "f": 0, "t": 11, "d": [278,181], "a": 1 },
|
|
||||||
{ "px": [1216,96], "src": [32,32], "f": 0, "t": 11, "d": [278,182], "a": 1 },
|
|
||||||
{ "px": [1248,96], "src": [32,32], "f": 0, "t": 11, "d": [278,183], "a": 1 },
|
|
||||||
{ "px": [1280,96], "src": [32,32], "f": 0, "t": 11, "d": [278,184], "a": 1 },
|
|
||||||
{ "px": [1312,96], "src": [32,32], "f": 0, "t": 11, "d": [278,185], "a": 1 },
|
|
||||||
{ "px": [1344,96], "src": [32,32], "f": 0, "t": 11, "d": [278,186], "a": 1 },
|
|
||||||
{ "px": [1376,96], "src": [32,32], "f": 0, "t": 11, "d": [278,187], "a": 1 },
|
|
||||||
{ "px": [1408,96], "src": [32,32], "f": 0, "t": 11, "d": [278,188], "a": 1 },
|
|
||||||
{ "px": [1440,96], "src": [32,32], "f": 0, "t": 11, "d": [278,189], "a": 1 },
|
|
||||||
{ "px": [1472,96], "src": [32,32], "f": 0, "t": 11, "d": [278,190], "a": 1 },
|
|
||||||
{ "px": [1504,96], "src": [32,32], "f": 0, "t": 11, "d": [278,191], "a": 1 },
|
|
||||||
{ "px": [0,128], "src": [32,32], "f": 0, "t": 11, "d": [278,192], "a": 1 },
|
|
||||||
{ "px": [32,128], "src": [32,32], "f": 0, "t": 11, "d": [278,193], "a": 1 },
|
|
||||||
{ "px": [64,128], "src": [32,32], "f": 0, "t": 11, "d": [278,194], "a": 1 },
|
|
||||||
{ "px": [96,128], "src": [32,32], "f": 0, "t": 11, "d": [278,195], "a": 1 },
|
|
||||||
{ "px": [128,128], "src": [32,32], "f": 0, "t": 11, "d": [278,196], "a": 1 },
|
|
||||||
{ "px": [160,128], "src": [32,32], "f": 0, "t": 11, "d": [278,197], "a": 1 },
|
|
||||||
{ "px": [192,128], "src": [32,32], "f": 0, "t": 11, "d": [278,198], "a": 1 },
|
|
||||||
{ "px": [224,128], "src": [32,32], "f": 0, "t": 11, "d": [278,199], "a": 1 },
|
|
||||||
{ "px": [256,128], "src": [32,32], "f": 0, "t": 11, "d": [278,200], "a": 1 },
|
|
||||||
{ "px": [288,128], "src": [32,32], "f": 0, "t": 11, "d": [278,201], "a": 1 },
|
|
||||||
{ "px": [320,128], "src": [32,32], "f": 0, "t": 11, "d": [278,202], "a": 1 },
|
|
||||||
{ "px": [352,128], "src": [32,32], "f": 0, "t": 11, "d": [278,203], "a": 1 },
|
|
||||||
{ "px": [384,128], "src": [32,32], "f": 0, "t": 11, "d": [278,204], "a": 1 },
|
|
||||||
{ "px": [416,128], "src": [32,32], "f": 0, "t": 11, "d": [278,205], "a": 1 },
|
|
||||||
{ "px": [448,128], "src": [32,32], "f": 0, "t": 11, "d": [278,206], "a": 1 },
|
|
||||||
{ "px": [480,128], "src": [32,32], "f": 0, "t": 11, "d": [278,207], "a": 1 },
|
|
||||||
{ "px": [1120,128], "src": [32,32], "f": 0, "t": 11, "d": [278,227], "a": 1 },
|
|
||||||
{ "px": [1152,128], "src": [32,32], "f": 0, "t": 11, "d": [278,228], "a": 1 },
|
|
||||||
{ "px": [1184,128], "src": [32,32], "f": 0, "t": 11, "d": [278,229], "a": 1 },
|
|
||||||
{ "px": [1216,128], "src": [32,32], "f": 0, "t": 11, "d": [278,230], "a": 1 },
|
|
||||||
{ "px": [1248,128], "src": [32,32], "f": 0, "t": 11, "d": [278,231], "a": 1 },
|
|
||||||
{ "px": [1280,128], "src": [32,32], "f": 0, "t": 11, "d": [278,232], "a": 1 },
|
|
||||||
{ "px": [1312,128], "src": [32,32], "f": 0, "t": 11, "d": [278,233], "a": 1 },
|
|
||||||
{ "px": [1344,128], "src": [32,32], "f": 0, "t": 11, "d": [278,234], "a": 1 },
|
|
||||||
{ "px": [1376,128], "src": [32,32], "f": 0, "t": 11, "d": [278,235], "a": 1 },
|
|
||||||
{ "px": [1408,128], "src": [32,32], "f": 0, "t": 11, "d": [278,236], "a": 1 },
|
|
||||||
{ "px": [1440,128], "src": [32,32], "f": 0, "t": 11, "d": [278,237], "a": 1 },
|
|
||||||
{ "px": [1472,128], "src": [32,32], "f": 0, "t": 11, "d": [278,238], "a": 1 },
|
|
||||||
{ "px": [1504,128], "src": [32,32], "f": 0, "t": 11, "d": [278,239], "a": 1 },
|
|
||||||
{ "px": [0,160], "src": [32,32], "f": 0, "t": 11, "d": [278,240], "a": 1 },
|
|
||||||
{ "px": [32,160], "src": [32,32], "f": 0, "t": 11, "d": [278,241], "a": 1 },
|
|
||||||
{ "px": [64,160], "src": [32,32], "f": 0, "t": 11, "d": [278,242], "a": 1 },
|
|
||||||
{ "px": [96,160], "src": [32,32], "f": 0, "t": 11, "d": [278,243], "a": 1 },
|
|
||||||
{ "px": [128,160], "src": [32,32], "f": 0, "t": 11, "d": [278,244], "a": 1 },
|
|
||||||
{ "px": [160,160], "src": [32,32], "f": 0, "t": 11, "d": [278,245], "a": 1 },
|
|
||||||
{ "px": [192,160], "src": [32,32], "f": 0, "t": 11, "d": [278,246], "a": 1 },
|
|
||||||
{ "px": [224,160], "src": [32,32], "f": 0, "t": 11, "d": [278,247], "a": 1 },
|
|
||||||
{ "px": [256,160], "src": [32,32], "f": 0, "t": 11, "d": [278,248], "a": 1 },
|
|
||||||
{ "px": [288,160], "src": [32,32], "f": 0, "t": 11, "d": [278,249], "a": 1 },
|
|
||||||
{ "px": [320,160], "src": [32,32], "f": 0, "t": 11, "d": [278,250], "a": 1 },
|
|
||||||
{ "px": [352,160], "src": [32,32], "f": 0, "t": 11, "d": [278,251], "a": 1 },
|
|
||||||
{ "px": [384,160], "src": [32,32], "f": 0, "t": 11, "d": [278,252], "a": 1 },
|
|
||||||
{ "px": [416,160], "src": [32,32], "f": 0, "t": 11, "d": [278,253], "a": 1 },
|
|
||||||
{ "px": [448,160], "src": [32,32], "f": 0, "t": 11, "d": [278,254], "a": 1 },
|
|
||||||
{ "px": [1120,160], "src": [32,32], "f": 0, "t": 11, "d": [278,275], "a": 1 },
|
|
||||||
{ "px": [1152,160], "src": [32,32], "f": 0, "t": 11, "d": [278,276], "a": 1 },
|
|
||||||
{ "px": [1184,160], "src": [32,32], "f": 0, "t": 11, "d": [278,277], "a": 1 },
|
|
||||||
{ "px": [1216,160], "src": [32,32], "f": 0, "t": 11, "d": [278,278], "a": 1 },
|
|
||||||
{ "px": [1248,160], "src": [32,32], "f": 0, "t": 11, "d": [278,279], "a": 1 },
|
|
||||||
{ "px": [1280,160], "src": [32,32], "f": 0, "t": 11, "d": [278,280], "a": 1 },
|
|
||||||
{ "px": [1312,160], "src": [32,32], "f": 0, "t": 11, "d": [278,281], "a": 1 },
|
|
||||||
{ "px": [1344,160], "src": [32,32], "f": 0, "t": 11, "d": [278,282], "a": 1 },
|
|
||||||
{ "px": [1376,160], "src": [32,32], "f": 0, "t": 11, "d": [278,283], "a": 1 },
|
|
||||||
{ "px": [1408,160], "src": [32,32], "f": 0, "t": 11, "d": [278,284], "a": 1 },
|
|
||||||
{ "px": [1440,160], "src": [32,32], "f": 0, "t": 11, "d": [278,285], "a": 1 },
|
|
||||||
{ "px": [1472,160], "src": [32,32], "f": 0, "t": 11, "d": [278,286], "a": 1 },
|
|
||||||
{ "px": [1504,160], "src": [32,32], "f": 0, "t": 11, "d": [278,287], "a": 1 },
|
|
||||||
{ "px": [0,192], "src": [32,32], "f": 0, "t": 11, "d": [278,288], "a": 1 },
|
|
||||||
{ "px": [32,192], "src": [32,32], "f": 0, "t": 11, "d": [278,289], "a": 1 },
|
|
||||||
{ "px": [64,192], "src": [32,32], "f": 0, "t": 11, "d": [278,290], "a": 1 },
|
|
||||||
{ "px": [96,192], "src": [32,32], "f": 0, "t": 11, "d": [278,291], "a": 1 },
|
|
||||||
{ "px": [128,192], "src": [32,32], "f": 0, "t": 11, "d": [278,292], "a": 1 },
|
|
||||||
{ "px": [160,192], "src": [32,32], "f": 0, "t": 11, "d": [278,293], "a": 1 },
|
|
||||||
{ "px": [192,192], "src": [32,32], "f": 0, "t": 11, "d": [278,294], "a": 1 },
|
|
||||||
{ "px": [224,192], "src": [32,32], "f": 0, "t": 11, "d": [278,295], "a": 1 },
|
|
||||||
{ "px": [256,192], "src": [32,32], "f": 0, "t": 11, "d": [278,296], "a": 1 },
|
|
||||||
{ "px": [288,192], "src": [32,32], "f": 0, "t": 11, "d": [278,297], "a": 1 },
|
|
||||||
{ "px": [320,192], "src": [32,32], "f": 0, "t": 11, "d": [278,298], "a": 1 },
|
|
||||||
{ "px": [352,192], "src": [32,32], "f": 0, "t": 11, "d": [278,299], "a": 1 },
|
|
||||||
{ "px": [384,192], "src": [32,32], "f": 0, "t": 11, "d": [278,300], "a": 1 },
|
|
||||||
{ "px": [416,192], "src": [32,32], "f": 0, "t": 11, "d": [278,301], "a": 1 },
|
|
||||||
{ "px": [448,192], "src": [32,32], "f": 0, "t": 11, "d": [278,302], "a": 1 },
|
|
||||||
{ "px": [1120,192], "src": [32,32], "f": 0, "t": 11, "d": [278,323], "a": 1 },
|
|
||||||
{ "px": [1152,192], "src": [32,32], "f": 0, "t": 11, "d": [278,324], "a": 1 },
|
|
||||||
{ "px": [1184,192], "src": [32,32], "f": 0, "t": 11, "d": [278,325], "a": 1 },
|
|
||||||
{ "px": [1216,192], "src": [32,32], "f": 0, "t": 11, "d": [278,326], "a": 1 },
|
|
||||||
{ "px": [1248,192], "src": [32,32], "f": 0, "t": 11, "d": [278,327], "a": 1 },
|
|
||||||
{ "px": [1280,192], "src": [32,32], "f": 0, "t": 11, "d": [278,328], "a": 1 },
|
|
||||||
{ "px": [1312,192], "src": [32,32], "f": 0, "t": 11, "d": [278,329], "a": 1 },
|
|
||||||
{ "px": [1344,192], "src": [32,32], "f": 0, "t": 11, "d": [278,330], "a": 1 },
|
|
||||||
{ "px": [1376,192], "src": [32,32], "f": 0, "t": 11, "d": [278,331], "a": 1 },
|
|
||||||
{ "px": [1408,192], "src": [32,32], "f": 0, "t": 11, "d": [278,332], "a": 1 },
|
|
||||||
{ "px": [1440,192], "src": [32,32], "f": 0, "t": 11, "d": [278,333], "a": 1 },
|
|
||||||
{ "px": [1472,192], "src": [32,32], "f": 0, "t": 11, "d": [278,334], "a": 1 },
|
|
||||||
{ "px": [1504,192], "src": [32,32], "f": 0, "t": 11, "d": [278,335], "a": 1 },
|
|
||||||
{ "px": [0,224], "src": [32,32], "f": 0, "t": 11, "d": [278,336], "a": 1 },
|
|
||||||
{ "px": [32,224], "src": [32,32], "f": 0, "t": 11, "d": [278,337], "a": 1 },
|
|
||||||
{ "px": [64,224], "src": [32,32], "f": 0, "t": 11, "d": [278,338], "a": 1 },
|
|
||||||
{ "px": [96,224], "src": [32,32], "f": 0, "t": 11, "d": [278,339], "a": 1 },
|
|
||||||
{ "px": [128,224], "src": [32,32], "f": 0, "t": 11, "d": [278,340], "a": 1 },
|
|
||||||
{ "px": [160,224], "src": [32,32], "f": 0, "t": 11, "d": [278,341], "a": 1 },
|
|
||||||
{ "px": [192,224], "src": [32,32], "f": 0, "t": 11, "d": [278,342], "a": 1 },
|
|
||||||
{ "px": [224,224], "src": [32,32], "f": 0, "t": 11, "d": [278,343], "a": 1 },
|
|
||||||
{ "px": [256,224], "src": [32,32], "f": 0, "t": 11, "d": [278,344], "a": 1 },
|
|
||||||
{ "px": [288,224], "src": [32,32], "f": 0, "t": 11, "d": [278,345], "a": 1 },
|
|
||||||
{ "px": [320,224], "src": [32,32], "f": 0, "t": 11, "d": [278,346], "a": 1 },
|
|
||||||
{ "px": [352,224], "src": [32,32], "f": 0, "t": 11, "d": [278,347], "a": 1 },
|
|
||||||
{ "px": [384,224], "src": [32,32], "f": 0, "t": 11, "d": [278,348], "a": 1 },
|
|
||||||
{ "px": [416,224], "src": [32,32], "f": 0, "t": 11, "d": [278,349], "a": 1 },
|
|
||||||
{ "px": [1152,224], "src": [32,32], "f": 0, "t": 11, "d": [278,372], "a": 1 },
|
|
||||||
{ "px": [1184,224], "src": [32,32], "f": 0, "t": 11, "d": [278,373], "a": 1 },
|
|
||||||
{ "px": [1216,224], "src": [32,32], "f": 0, "t": 11, "d": [278,374], "a": 1 },
|
|
||||||
{ "px": [1248,224], "src": [32,32], "f": 0, "t": 11, "d": [278,375], "a": 1 },
|
|
||||||
{ "px": [1280,224], "src": [32,32], "f": 0, "t": 11, "d": [278,376], "a": 1 },
|
|
||||||
{ "px": [1312,224], "src": [32,32], "f": 0, "t": 11, "d": [278,377], "a": 1 },
|
|
||||||
{ "px": [1344,224], "src": [32,32], "f": 0, "t": 11, "d": [278,378], "a": 1 },
|
|
||||||
{ "px": [1376,224], "src": [32,32], "f": 0, "t": 11, "d": [278,379], "a": 1 },
|
|
||||||
{ "px": [1408,224], "src": [32,32], "f": 0, "t": 11, "d": [278,380], "a": 1 },
|
|
||||||
{ "px": [1440,224], "src": [32,32], "f": 0, "t": 11, "d": [278,381], "a": 1 },
|
|
||||||
{ "px": [1472,224], "src": [32,32], "f": 0, "t": 11, "d": [278,382], "a": 1 },
|
|
||||||
{ "px": [1504,224], "src": [32,32], "f": 0, "t": 11, "d": [278,383], "a": 1 },
|
|
||||||
{ "px": [0,256], "src": [32,32], "f": 0, "t": 11, "d": [278,384], "a": 1 },
|
|
||||||
{ "px": [32,256], "src": [32,32], "f": 0, "t": 11, "d": [278,385], "a": 1 },
|
|
||||||
{ "px": [64,256], "src": [32,32], "f": 0, "t": 11, "d": [278,386], "a": 1 },
|
|
||||||
{ "px": [96,256], "src": [32,32], "f": 0, "t": 11, "d": [278,387], "a": 1 },
|
|
||||||
{ "px": [224,256], "src": [32,32], "f": 0, "t": 11, "d": [278,391], "a": 1 },
|
|
||||||
{ "px": [256,256], "src": [32,32], "f": 0, "t": 11, "d": [278,392], "a": 1 },
|
|
||||||
{ "px": [288,256], "src": [32,32], "f": 0, "t": 11, "d": [278,393], "a": 1 },
|
|
||||||
{ "px": [320,256], "src": [32,32], "f": 0, "t": 11, "d": [278,394], "a": 1 },
|
|
||||||
{ "px": [1216,256], "src": [32,32], "f": 0, "t": 11, "d": [278,422], "a": 1 },
|
|
||||||
{ "px": [1248,256], "src": [32,32], "f": 0, "t": 11, "d": [278,423], "a": 1 },
|
|
||||||
{ "px": [1280,256], "src": [32,32], "f": 0, "t": 11, "d": [278,424], "a": 1 },
|
|
||||||
{ "px": [1312,256], "src": [32,32], "f": 0, "t": 11, "d": [278,425], "a": 1 },
|
|
||||||
{ "px": [1344,256], "src": [32,32], "f": 0, "t": 11, "d": [278,426], "a": 1 },
|
|
||||||
{ "px": [1376,256], "src": [32,32], "f": 0, "t": 11, "d": [278,427], "a": 1 },
|
|
||||||
{ "px": [1408,256], "src": [32,32], "f": 0, "t": 11, "d": [278,428], "a": 1 },
|
|
||||||
{ "px": [1440,256], "src": [32,32], "f": 0, "t": 11, "d": [278,429], "a": 1 },
|
|
||||||
{ "px": [1472,256], "src": [32,32], "f": 0, "t": 11, "d": [278,430], "a": 1 },
|
|
||||||
{ "px": [1504,256], "src": [32,32], "f": 0, "t": 11, "d": [278,431], "a": 1 },
|
|
||||||
{ "px": [0,288], "src": [32,32], "f": 0, "t": 11, "d": [278,432], "a": 1 },
|
|
||||||
{ "px": [32,288], "src": [32,32], "f": 0, "t": 11, "d": [278,433], "a": 1 },
|
|
||||||
{ "px": [64,288], "src": [32,32], "f": 0, "t": 11, "d": [278,434], "a": 1 },
|
|
||||||
{ "px": [224,288], "src": [32,32], "f": 0, "t": 11, "d": [278,439], "a": 1 },
|
|
||||||
{ "px": [256,288], "src": [32,32], "f": 0, "t": 11, "d": [278,440], "a": 1 },
|
|
||||||
{ "px": [1280,288], "src": [32,32], "f": 0, "t": 11, "d": [278,472], "a": 1 },
|
|
||||||
{ "px": [1312,288], "src": [32,32], "f": 0, "t": 11, "d": [278,473], "a": 1 },
|
|
||||||
{ "px": [1344,288], "src": [32,32], "f": 0, "t": 11, "d": [278,474], "a": 1 },
|
|
||||||
{ "px": [1376,288], "src": [32,32], "f": 0, "t": 11, "d": [278,475], "a": 1 },
|
|
||||||
{ "px": [1408,288], "src": [32,32], "f": 0, "t": 11, "d": [278,476], "a": 1 },
|
|
||||||
{ "px": [1440,288], "src": [32,32], "f": 0, "t": 11, "d": [278,477], "a": 1 },
|
|
||||||
{ "px": [1472,288], "src": [32,32], "f": 0, "t": 11, "d": [278,478], "a": 1 },
|
|
||||||
{ "px": [1504,288], "src": [32,32], "f": 0, "t": 11, "d": [278,479], "a": 1 },
|
|
||||||
{ "px": [0,320], "src": [32,32], "f": 0, "t": 11, "d": [278,480], "a": 1 },
|
|
||||||
{ "px": [32,320], "src": [32,32], "f": 0, "t": 11, "d": [278,481], "a": 1 },
|
|
||||||
{ "px": [64,320], "src": [32,32], "f": 0, "t": 11, "d": [278,482], "a": 1 },
|
|
||||||
{ "px": [1344,320], "src": [32,32], "f": 0, "t": 11, "d": [278,522], "a": 1 },
|
|
||||||
{ "px": [1376,320], "src": [32,32], "f": 0, "t": 11, "d": [278,523], "a": 1 },
|
|
||||||
{ "px": [1408,320], "src": [32,32], "f": 0, "t": 11, "d": [278,524], "a": 1 },
|
|
||||||
{ "px": [1440,320], "src": [32,32], "f": 0, "t": 11, "d": [278,525], "a": 1 },
|
|
||||||
{ "px": [1472,320], "src": [32,32], "f": 0, "t": 11, "d": [278,526], "a": 1 },
|
|
||||||
{ "px": [1504,320], "src": [32,32], "f": 0, "t": 11, "d": [278,527], "a": 1 },
|
|
||||||
{ "px": [832,640], "src": [32,32], "f": 0, "t": 11, "d": [278,986], "a": 1 },
|
|
||||||
{ "px": [864,640], "src": [32,32], "f": 0, "t": 11, "d": [278,987], "a": 1 },
|
|
||||||
{ "px": [896,640], "src": [32,32], "f": 0, "t": 11, "d": [278,988], "a": 1 },
|
|
||||||
{ "px": [928,640], "src": [32,32], "f": 0, "t": 11, "d": [278,989], "a": 1 },
|
|
||||||
{ "px": [960,640], "src": [32,32], "f": 0, "t": 11, "d": [278,990], "a": 1 },
|
|
||||||
{ "px": [992,640], "src": [32,32], "f": 0, "t": 11, "d": [278,991], "a": 1 },
|
|
||||||
{ "px": [1024,640], "src": [32,32], "f": 0, "t": 11, "d": [278,992], "a": 1 },
|
|
||||||
{ "px": [1056,640], "src": [32,32], "f": 0, "t": 11, "d": [278,993], "a": 1 },
|
|
||||||
{ "px": [1088,640], "src": [32,32], "f": 0, "t": 11, "d": [278,994], "a": 1 },
|
|
||||||
{ "px": [1120,640], "src": [32,32], "f": 0, "t": 11, "d": [278,995], "a": 1 },
|
|
||||||
{ "px": [1152,640], "src": [32,32], "f": 0, "t": 11, "d": [278,996], "a": 1 },
|
|
||||||
{ "px": [1184,640], "src": [32,32], "f": 0, "t": 11, "d": [278,997], "a": 1 },
|
|
||||||
{ "px": [1216,640], "src": [32,32], "f": 0, "t": 11, "d": [278,998], "a": 1 },
|
|
||||||
{ "px": [0,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1008], "a": 1 },
|
|
||||||
{ "px": [32,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1009], "a": 1 },
|
|
||||||
{ "px": [64,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1010], "a": 1 },
|
|
||||||
{ "px": [96,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1011], "a": 1 },
|
|
||||||
{ "px": [128,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1012], "a": 1 },
|
|
||||||
{ "px": [160,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1013], "a": 1 },
|
|
||||||
{ "px": [192,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1014], "a": 1 },
|
|
||||||
{ "px": [224,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1015], "a": 1 },
|
|
||||||
{ "px": [256,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1016], "a": 1 },
|
|
||||||
{ "px": [288,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1017], "a": 1 },
|
|
||||||
{ "px": [320,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1018], "a": 1 },
|
|
||||||
{ "px": [352,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1019], "a": 1 },
|
|
||||||
{ "px": [384,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1020], "a": 1 },
|
|
||||||
{ "px": [416,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1021], "a": 1 },
|
|
||||||
{ "px": [736,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1031], "a": 1 },
|
|
||||||
{ "px": [768,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1032], "a": 1 },
|
|
||||||
{ "px": [800,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1033], "a": 1 },
|
|
||||||
{ "px": [832,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1034], "a": 1 },
|
|
||||||
{ "px": [864,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1035], "a": 1 },
|
|
||||||
{ "px": [896,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1036], "a": 1 },
|
|
||||||
{ "px": [928,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1037], "a": 1 },
|
|
||||||
{ "px": [960,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1038], "a": 1 },
|
|
||||||
{ "px": [992,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1039], "a": 1 },
|
|
||||||
{ "px": [1024,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1040], "a": 1 },
|
|
||||||
{ "px": [1056,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1041], "a": 1 },
|
|
||||||
{ "px": [1088,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1042], "a": 1 },
|
|
||||||
{ "px": [1120,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1043], "a": 1 },
|
|
||||||
{ "px": [1152,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1044], "a": 1 },
|
|
||||||
{ "px": [1184,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1045], "a": 1 },
|
|
||||||
{ "px": [1216,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1046], "a": 1 },
|
|
||||||
{ "px": [1248,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1047], "a": 1 },
|
|
||||||
{ "px": [1280,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1048], "a": 1 },
|
|
||||||
{ "px": [1312,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1049], "a": 1 },
|
|
||||||
{ "px": [1344,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1050], "a": 1 },
|
|
||||||
{ "px": [1376,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1051], "a": 1 },
|
|
||||||
{ "px": [1408,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1052], "a": 1 },
|
|
||||||
{ "px": [1440,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1053], "a": 1 },
|
|
||||||
{ "px": [1472,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1054], "a": 1 },
|
|
||||||
{ "px": [1504,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1055], "a": 1 },
|
|
||||||
{ "px": [0,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1056], "a": 1 },
|
|
||||||
{ "px": [32,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1057], "a": 1 },
|
|
||||||
{ "px": [64,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1058], "a": 1 },
|
|
||||||
{ "px": [96,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1059], "a": 1 },
|
|
||||||
{ "px": [128,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1060], "a": 1 },
|
|
||||||
{ "px": [160,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1061], "a": 1 },
|
|
||||||
{ "px": [192,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1062], "a": 1 },
|
|
||||||
{ "px": [224,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1063], "a": 1 },
|
|
||||||
{ "px": [256,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1064], "a": 1 },
|
|
||||||
{ "px": [288,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1065], "a": 1 },
|
|
||||||
{ "px": [320,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1066], "a": 1 },
|
|
||||||
{ "px": [352,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1067], "a": 1 },
|
|
||||||
{ "px": [384,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1068], "a": 1 },
|
|
||||||
{ "px": [416,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1069], "a": 1 },
|
|
||||||
{ "px": [576,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1074], "a": 1 },
|
|
||||||
{ "px": [608,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1075], "a": 1 },
|
|
||||||
{ "px": [640,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1076], "a": 1 },
|
|
||||||
{ "px": [672,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1077], "a": 1 },
|
|
||||||
{ "px": [704,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1078], "a": 1 },
|
|
||||||
{ "px": [736,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1079], "a": 1 },
|
|
||||||
{ "px": [768,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1080], "a": 1 },
|
|
||||||
{ "px": [800,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1081], "a": 1 },
|
|
||||||
{ "px": [832,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1082], "a": 1 },
|
|
||||||
{ "px": [864,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1083], "a": 1 },
|
|
||||||
{ "px": [896,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1084], "a": 1 },
|
|
||||||
{ "px": [928,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1085], "a": 1 },
|
|
||||||
{ "px": [960,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1086], "a": 1 },
|
|
||||||
{ "px": [992,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1087], "a": 1 },
|
|
||||||
{ "px": [1024,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1088], "a": 1 },
|
|
||||||
{ "px": [1056,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1089], "a": 1 },
|
|
||||||
{ "px": [1088,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1090], "a": 1 },
|
|
||||||
{ "px": [1120,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1091], "a": 1 },
|
|
||||||
{ "px": [1152,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1092], "a": 1 },
|
|
||||||
{ "px": [1184,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1093], "a": 1 },
|
|
||||||
{ "px": [1216,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1094], "a": 1 },
|
|
||||||
{ "px": [1248,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1095], "a": 1 },
|
|
||||||
{ "px": [1280,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1096], "a": 1 },
|
|
||||||
{ "px": [1312,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1097], "a": 1 },
|
|
||||||
{ "px": [1344,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1098], "a": 1 },
|
|
||||||
{ "px": [1376,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1099], "a": 1 },
|
|
||||||
{ "px": [1408,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1100], "a": 1 },
|
|
||||||
{ "px": [1440,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1101], "a": 1 },
|
|
||||||
{ "px": [1472,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1102], "a": 1 },
|
|
||||||
{ "px": [1504,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1103], "a": 1 },
|
|
||||||
{ "px": [0,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1104], "a": 1 },
|
|
||||||
{ "px": [32,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1105], "a": 1 },
|
|
||||||
{ "px": [64,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1106], "a": 1 },
|
|
||||||
{ "px": [96,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1107], "a": 1 },
|
|
||||||
{ "px": [128,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1108], "a": 1 },
|
|
||||||
{ "px": [160,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1109], "a": 1 },
|
|
||||||
{ "px": [192,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1110], "a": 1 },
|
|
||||||
{ "px": [224,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1111], "a": 1 },
|
|
||||||
{ "px": [256,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1112], "a": 1 },
|
|
||||||
{ "px": [288,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1113], "a": 1 },
|
|
||||||
{ "px": [320,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1114], "a": 1 },
|
|
||||||
{ "px": [352,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1115], "a": 1 },
|
|
||||||
{ "px": [384,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1116], "a": 1 },
|
|
||||||
{ "px": [416,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1117], "a": 1 },
|
|
||||||
{ "px": [448,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1118], "a": 1 },
|
|
||||||
{ "px": [480,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1119], "a": 1 },
|
|
||||||
{ "px": [512,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1120], "a": 1 },
|
|
||||||
{ "px": [544,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1121], "a": 1 },
|
|
||||||
{ "px": [576,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1122], "a": 1 },
|
|
||||||
{ "px": [608,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1123], "a": 1 },
|
|
||||||
{ "px": [640,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1124], "a": 1 },
|
|
||||||
{ "px": [672,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1125], "a": 1 },
|
|
||||||
{ "px": [704,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1126], "a": 1 },
|
|
||||||
{ "px": [736,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1127], "a": 1 },
|
|
||||||
{ "px": [768,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1128], "a": 1 },
|
|
||||||
{ "px": [800,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1129], "a": 1 },
|
|
||||||
{ "px": [832,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1130], "a": 1 },
|
|
||||||
{ "px": [864,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1131], "a": 1 },
|
|
||||||
{ "px": [896,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1132], "a": 1 },
|
|
||||||
{ "px": [928,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1133], "a": 1 },
|
|
||||||
{ "px": [960,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1134], "a": 1 },
|
|
||||||
{ "px": [992,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1135], "a": 1 },
|
|
||||||
{ "px": [1024,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1136], "a": 1 },
|
|
||||||
{ "px": [1056,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1137], "a": 1 },
|
|
||||||
{ "px": [1088,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1138], "a": 1 },
|
|
||||||
{ "px": [1120,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1139], "a": 1 },
|
|
||||||
{ "px": [1152,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1140], "a": 1 },
|
|
||||||
{ "px": [1184,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1141], "a": 1 },
|
|
||||||
{ "px": [1216,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1142], "a": 1 },
|
|
||||||
{ "px": [1248,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1143], "a": 1 },
|
|
||||||
{ "px": [1280,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1144], "a": 1 },
|
|
||||||
{ "px": [1312,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1145], "a": 1 },
|
|
||||||
{ "px": [1344,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1146], "a": 1 },
|
|
||||||
{ "px": [1376,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1147], "a": 1 },
|
|
||||||
{ "px": [1408,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1148], "a": 1 },
|
|
||||||
{ "px": [1440,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1149], "a": 1 },
|
|
||||||
{ "px": [1472,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1150], "a": 1 },
|
|
||||||
{ "px": [1504,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1151], "a": 1 },
|
|
||||||
{ "px": [1056,96], "src": [160,32], "f": 0, "t": 15, "d": [277,177], "a": 1 },
|
|
||||||
{ "px": [1088,128], "src": [160,32], "f": 0, "t": 15, "d": [277,226], "a": 1 },
|
|
||||||
{ "px": [1120,224], "src": [160,32], "f": 0, "t": 15, "d": [277,371], "a": 1 },
|
|
||||||
{ "px": [192,256], "src": [160,32], "f": 0, "t": 15, "d": [277,390], "a": 1 },
|
|
||||||
{ "px": [1184,256], "src": [160,32], "f": 0, "t": 15, "d": [277,421], "a": 1 },
|
|
||||||
{ "px": [1248,288], "src": [160,32], "f": 0, "t": 15, "d": [277,471], "a": 1 },
|
|
||||||
{ "px": [1312,320], "src": [160,32], "f": 0, "t": 15, "d": [277,521], "a": 1 },
|
|
||||||
{ "px": [32,352], "src": [160,32], "f": 0, "t": 15, "d": [277,529], "a": 1 },
|
|
||||||
{ "px": [480,160], "src": [128,32], "f": 0, "t": 14, "d": [276,255], "a": 1 },
|
|
||||||
{ "px": [448,224], "src": [128,32], "f": 0, "t": 14, "d": [276,350], "a": 1 },
|
|
||||||
{ "px": [128,256], "src": [128,32], "f": 0, "t": 14, "d": [276,388], "a": 1 },
|
|
||||||
{ "px": [352,256], "src": [128,32], "f": 0, "t": 14, "d": [276,395], "a": 1 },
|
|
||||||
{ "px": [96,288], "src": [128,32], "f": 0, "t": 14, "d": [276,435], "a": 1 },
|
|
||||||
{ "px": [288,288], "src": [128,32], "f": 0, "t": 14, "d": [276,441], "a": 1 },
|
|
||||||
{ "px": [64,352], "src": [128,32], "f": 0, "t": 14, "d": [276,530], "a": 1 },
|
|
||||||
{ "px": [480,64], "src": [128,64], "f": 0, "t": 24, "d": [275,111], "a": 1 },
|
|
||||||
{ "px": [1248,640], "src": [128,64], "f": 0, "t": 24, "d": [275,999], "a": 1 },
|
|
||||||
{ "px": [448,704], "src": [128,64], "f": 0, "t": 24, "d": [275,1070], "a": 1 },
|
|
||||||
{ "px": [800,640], "src": [160,64], "f": 0, "t": 25, "d": [274,985], "a": 1 },
|
|
||||||
{ "px": [704,672], "src": [160,64], "f": 0, "t": 25, "d": [274,1030], "a": 1 },
|
|
||||||
{ "px": [544,704], "src": [160,64], "f": 0, "t": 25, "d": [274,1073], "a": 1 },
|
|
||||||
{ "px": [1024,0], "src": [0,32], "f": 0, "t": 10, "d": [273,32], "a": 1 },
|
|
||||||
{ "px": [1024,32], "src": [0,32], "f": 0, "t": 10, "d": [273,80], "a": 1 },
|
|
||||||
{ "px": [1024,64], "src": [0,32], "f": 0, "t": 10, "d": [273,128], "a": 1 },
|
|
||||||
{ "px": [1088,160], "src": [0,32], "f": 0, "t": 10, "d": [273,274], "a": 1 },
|
|
||||||
{ "px": [1088,192], "src": [0,32], "f": 0, "t": 10, "d": [273,322], "a": 1 },
|
|
||||||
{ "px": [192,288], "src": [0,32], "f": 0, "t": 10, "d": [273,438], "a": 1 },
|
|
||||||
{ "px": [160,256], "src": [32,64], "f": 0, "t": 21, "d": [272,389], "a": 1 },
|
|
||||||
{ "px": [384,256], "src": [32,64], "f": 0, "t": 21, "d": [272,396], "a": 1 },
|
|
||||||
{ "px": [416,256], "src": [32,64], "f": 0, "t": 21, "d": [272,397], "a": 1 },
|
|
||||||
{ "px": [1152,256], "src": [32,64], "f": 0, "t": 21, "d": [272,420], "a": 1 },
|
|
||||||
{ "px": [320,288], "src": [32,64], "f": 0, "t": 21, "d": [272,442], "a": 1 },
|
|
||||||
{ "px": [1216,288], "src": [32,64], "f": 0, "t": 21, "d": [272,470], "a": 1 },
|
|
||||||
{ "px": [224,320], "src": [32,64], "f": 0, "t": 21, "d": [272,487], "a": 1 },
|
|
||||||
{ "px": [256,320], "src": [32,64], "f": 0, "t": 21, "d": [272,488], "a": 1 },
|
|
||||||
{ "px": [1280,320], "src": [32,64], "f": 0, "t": 21, "d": [272,520], "a": 1 },
|
|
||||||
{ "px": [0,352], "src": [32,64], "f": 0, "t": 21, "d": [272,528], "a": 1 },
|
|
||||||
{ "px": [1344,352], "src": [32,64], "f": 0, "t": 21, "d": [272,570], "a": 1 },
|
|
||||||
{ "px": [1376,352], "src": [32,64], "f": 0, "t": 21, "d": [272,571], "a": 1 },
|
|
||||||
{ "px": [1408,352], "src": [32,64], "f": 0, "t": 21, "d": [272,572], "a": 1 },
|
|
||||||
{ "px": [1440,352], "src": [32,64], "f": 0, "t": 21, "d": [272,573], "a": 1 },
|
|
||||||
{ "px": [1472,352], "src": [32,64], "f": 0, "t": 21, "d": [272,574], "a": 1 },
|
|
||||||
{ "px": [1504,352], "src": [32,64], "f": 0, "t": 21, "d": [272,575], "a": 1 },
|
|
||||||
{ "px": [480,0], "src": [64,32], "f": 0, "t": 12, "d": [271,15], "a": 1 },
|
|
||||||
{ "px": [480,32], "src": [64,32], "f": 0, "t": 12, "d": [271,63], "a": 1 },
|
|
||||||
{ "px": [512,96], "src": [64,32], "f": 0, "t": 12, "d": [271,160], "a": 1 },
|
|
||||||
{ "px": [512,128], "src": [64,32], "f": 0, "t": 12, "d": [271,208], "a": 1 },
|
|
||||||
{ "px": [480,192], "src": [64,32], "f": 0, "t": 12, "d": [271,303], "a": 1 },
|
|
||||||
{ "px": [96,320], "src": [64,32], "f": 0, "t": 12, "d": [271,483], "a": 1 },
|
|
||||||
{ "px": [64,384], "src": [64,32], "f": 0, "t": 12, "d": [271,578], "a": 1 },
|
|
||||||
{ "px": [448,672], "src": [64,32], "f": 0, "t": 12, "d": [271,1022], "a": 1 },
|
|
||||||
{ "px": [832,608], "src": [32,0], "f": 0, "t": 1, "d": [270,938], "a": 1 },
|
|
||||||
{ "px": [864,608], "src": [32,0], "f": 0, "t": 1, "d": [270,939], "a": 1 },
|
|
||||||
{ "px": [896,608], "src": [32,0], "f": 0, "t": 1, "d": [270,940], "a": 1 },
|
|
||||||
{ "px": [928,608], "src": [32,0], "f": 0, "t": 1, "d": [270,941], "a": 1 },
|
|
||||||
{ "px": [960,608], "src": [32,0], "f": 0, "t": 1, "d": [270,942], "a": 1 },
|
|
||||||
{ "px": [992,608], "src": [32,0], "f": 0, "t": 1, "d": [270,943], "a": 1 },
|
|
||||||
{ "px": [1024,608], "src": [32,0], "f": 0, "t": 1, "d": [270,944], "a": 1 },
|
|
||||||
{ "px": [1056,608], "src": [32,0], "f": 0, "t": 1, "d": [270,945], "a": 1 },
|
|
||||||
{ "px": [1088,608], "src": [32,0], "f": 0, "t": 1, "d": [270,946], "a": 1 },
|
|
||||||
{ "px": [1120,608], "src": [32,0], "f": 0, "t": 1, "d": [270,947], "a": 1 },
|
|
||||||
{ "px": [1152,608], "src": [32,0], "f": 0, "t": 1, "d": [270,948], "a": 1 },
|
|
||||||
{ "px": [1184,608], "src": [32,0], "f": 0, "t": 1, "d": [270,949], "a": 1 },
|
|
||||||
{ "px": [1216,608], "src": [32,0], "f": 0, "t": 1, "d": [270,950], "a": 1 },
|
|
||||||
{ "px": [0,640], "src": [32,0], "f": 0, "t": 1, "d": [270,960], "a": 1 },
|
|
||||||
{ "px": [32,640], "src": [32,0], "f": 0, "t": 1, "d": [270,961], "a": 1 },
|
|
||||||
{ "px": [64,640], "src": [32,0], "f": 0, "t": 1, "d": [270,962], "a": 1 },
|
|
||||||
{ "px": [96,640], "src": [32,0], "f": 0, "t": 1, "d": [270,963], "a": 1 },
|
|
||||||
{ "px": [128,640], "src": [32,0], "f": 0, "t": 1, "d": [270,964], "a": 1 },
|
|
||||||
{ "px": [160,640], "src": [32,0], "f": 0, "t": 1, "d": [270,965], "a": 1 },
|
|
||||||
{ "px": [192,640], "src": [32,0], "f": 0, "t": 1, "d": [270,966], "a": 1 },
|
|
||||||
{ "px": [224,640], "src": [32,0], "f": 0, "t": 1, "d": [270,967], "a": 1 },
|
|
||||||
{ "px": [256,640], "src": [32,0], "f": 0, "t": 1, "d": [270,968], "a": 1 },
|
|
||||||
{ "px": [288,640], "src": [32,0], "f": 0, "t": 1, "d": [270,969], "a": 1 },
|
|
||||||
{ "px": [320,640], "src": [32,0], "f": 0, "t": 1, "d": [270,970], "a": 1 },
|
|
||||||
{ "px": [352,640], "src": [32,0], "f": 0, "t": 1, "d": [270,971], "a": 1 },
|
|
||||||
{ "px": [384,640], "src": [32,0], "f": 0, "t": 1, "d": [270,972], "a": 1 },
|
|
||||||
{ "px": [416,640], "src": [32,0], "f": 0, "t": 1, "d": [270,973], "a": 1 },
|
|
||||||
{ "px": [736,640], "src": [32,0], "f": 0, "t": 1, "d": [270,983], "a": 1 },
|
|
||||||
{ "px": [768,640], "src": [32,0], "f": 0, "t": 1, "d": [270,984], "a": 1 },
|
|
||||||
{ "px": [1280,640], "src": [32,0], "f": 0, "t": 1, "d": [270,1000], "a": 1 },
|
|
||||||
{ "px": [1312,640], "src": [32,0], "f": 0, "t": 1, "d": [270,1001], "a": 1 },
|
|
||||||
{ "px": [1344,640], "src": [32,0], "f": 0, "t": 1, "d": [270,1002], "a": 1 },
|
|
||||||
{ "px": [1376,640], "src": [32,0], "f": 0, "t": 1, "d": [270,1003], "a": 1 },
|
|
||||||
{ "px": [1408,640], "src": [32,0], "f": 0, "t": 1, "d": [270,1004], "a": 1 },
|
|
||||||
{ "px": [1440,640], "src": [32,0], "f": 0, "t": 1, "d": [270,1005], "a": 1 },
|
|
||||||
{ "px": [1472,640], "src": [32,0], "f": 0, "t": 1, "d": [270,1006], "a": 1 },
|
|
||||||
{ "px": [1504,640], "src": [32,0], "f": 0, "t": 1, "d": [270,1007], "a": 1 },
|
|
||||||
{ "px": [576,672], "src": [32,0], "f": 0, "t": 1, "d": [270,1026], "a": 1 },
|
|
||||||
{ "px": [608,672], "src": [32,0], "f": 0, "t": 1, "d": [270,1027], "a": 1 },
|
|
||||||
{ "px": [640,672], "src": [32,0], "f": 0, "t": 1, "d": [270,1028], "a": 1 },
|
|
||||||
{ "px": [672,672], "src": [32,0], "f": 0, "t": 1, "d": [270,1029], "a": 1 },
|
|
||||||
{ "px": [480,704], "src": [32,0], "f": 0, "t": 1, "d": [270,1071], "a": 1 },
|
|
||||||
{ "px": [512,704], "src": [32,0], "f": 0, "t": 1, "d": [270,1072], "a": 1 },
|
|
||||||
{ "px": [1024,96], "src": [0,64], "f": 0, "t": 20, "d": [269,176], "a": 1 },
|
|
||||||
{ "px": [1056,128], "src": [0,64], "f": 0, "t": 20, "d": [269,225], "a": 1 },
|
|
||||||
{ "px": [1088,224], "src": [0,64], "f": 0, "t": 20, "d": [269,370], "a": 1 },
|
|
||||||
{ "px": [1120,256], "src": [0,64], "f": 0, "t": 20, "d": [269,419], "a": 1 },
|
|
||||||
{ "px": [1184,288], "src": [0,64], "f": 0, "t": 20, "d": [269,469], "a": 1 },
|
|
||||||
{ "px": [192,320], "src": [0,64], "f": 0, "t": 20, "d": [269,486], "a": 1 },
|
|
||||||
{ "px": [1248,320], "src": [0,64], "f": 0, "t": 20, "d": [269,519], "a": 1 },
|
|
||||||
{ "px": [1312,352], "src": [0,64], "f": 0, "t": 20, "d": [269,569], "a": 1 },
|
|
||||||
{ "px": [32,384], "src": [0,64], "f": 0, "t": 20, "d": [269,577], "a": 1 },
|
|
||||||
{ "px": [512,160], "src": [64,64], "f": 0, "t": 22, "d": [268,256], "a": 1 },
|
|
||||||
{ "px": [480,224], "src": [64,64], "f": 0, "t": 22, "d": [268,351], "a": 1 },
|
|
||||||
{ "px": [448,256], "src": [64,64], "f": 0, "t": 22, "d": [268,398], "a": 1 },
|
|
||||||
{ "px": [128,288], "src": [64,64], "f": 0, "t": 22, "d": [268,436], "a": 1 },
|
|
||||||
{ "px": [352,288], "src": [64,64], "f": 0, "t": 22, "d": [268,443], "a": 1 },
|
|
||||||
{ "px": [288,320], "src": [64,64], "f": 0, "t": 22, "d": [268,489], "a": 1 },
|
|
||||||
{ "px": [96,352], "src": [64,64], "f": 0, "t": 22, "d": [268,531], "a": 1 },
|
|
||||||
{ "px": [512,64], "src": [64,0], "f": 0, "t": 2, "d": [267,112], "a": 1 },
|
|
||||||
{ "px": [1248,608], "src": [64,0], "f": 0, "t": 2, "d": [267,951], "a": 1 },
|
|
||||||
{ "px": [448,640], "src": [64,0], "f": 0, "t": 2, "d": [267,974], "a": 1 },
|
|
||||||
{ "px": [800,608], "src": [0,0], "f": 0, "t": 0, "d": [266,937], "a": 1 },
|
|
||||||
{ "px": [704,640], "src": [0,0], "f": 0, "t": 0, "d": [266,982], "a": 1 },
|
|
||||||
{ "px": [544,672], "src": [0,0], "f": 0, "t": 0, "d": [266,1025], "a": 1 },
|
|
||||||
{ "px": [64,416], "src": [96,64], "f": 0, "t": 23, "d": [264,626], "a": 1 },
|
|
||||||
{ "px": [832,576], "src": [32,128], "f": 0, "t": 41, "d": [280,890], "a": 1 },
|
|
||||||
{ "px": [864,576], "src": [32,128], "f": 0, "t": 41, "d": [280,891], "a": 1 },
|
|
||||||
{ "px": [896,576], "src": [64,160], "f": 0, "t": 52, "d": [280,892], "a": 1 },
|
|
||||||
{ "px": [928,576], "src": [96,160], "f": 0, "t": 53, "d": [280,893], "a": 1 },
|
|
||||||
{ "px": [960,576], "src": [0,160], "f": 0, "t": 50, "d": [280,894], "a": 1 },
|
|
||||||
{ "px": [992,576], "src": [0,160], "f": 0, "t": 50, "d": [280,895], "a": 1 },
|
|
||||||
{ "px": [1024,576], "src": [32,160], "f": 0, "t": 51, "d": [280,896], "a": 1 },
|
|
||||||
{ "px": [1056,576], "src": [64,128], "f": 0, "t": 42, "d": [280,897], "a": 1 },
|
|
||||||
{ "px": [1088,576], "src": [32,128], "f": 0, "t": 41, "d": [280,898], "a": 1 },
|
|
||||||
{ "px": [1120,576], "src": [64,128], "f": 0, "t": 42, "d": [280,899], "a": 1 },
|
|
||||||
{ "px": [1152,576], "src": [32,160], "f": 0, "t": 51, "d": [280,900], "a": 1 },
|
|
||||||
{ "px": [1184,576], "src": [0,160], "f": 0, "t": 50, "d": [280,901], "a": 1 },
|
|
||||||
{ "px": [1216,576], "src": [64,128], "f": 0, "t": 42, "d": [280,902], "a": 1 },
|
|
||||||
{ "px": [32,608], "src": [96,128], "f": 0, "t": 43, "d": [280,913], "a": 1 },
|
|
||||||
{ "px": [64,608], "src": [32,160], "f": 0, "t": 51, "d": [280,914], "a": 1 },
|
|
||||||
{ "px": [96,608], "src": [64,128], "f": 0, "t": 42, "d": [280,915], "a": 1 },
|
|
||||||
{ "px": [128,608], "src": [0,160], "f": 0, "t": 50, "d": [280,916], "a": 1 },
|
|
||||||
{ "px": [160,608], "src": [0,128], "f": 0, "t": 40, "d": [280,917], "a": 1 },
|
|
||||||
{ "px": [192,608], "src": [64,160], "f": 0, "t": 52, "d": [280,918], "a": 1 },
|
|
||||||
{ "px": [224,608], "src": [0,128], "f": 0, "t": 40, "d": [280,919], "a": 1 },
|
|
||||||
{ "px": [256,608], "src": [32,128], "f": 0, "t": 41, "d": [280,920], "a": 1 },
|
|
||||||
{ "px": [288,608], "src": [0,128], "f": 0, "t": 40, "d": [280,921], "a": 1 },
|
|
||||||
{ "px": [320,608], "src": [96,160], "f": 0, "t": 53, "d": [280,922], "a": 1 },
|
|
||||||
{ "px": [352,608], "src": [96,128], "f": 0, "t": 43, "d": [280,923], "a": 1 },
|
|
||||||
{ "px": [384,608], "src": [96,128], "f": 0, "t": 43, "d": [280,924], "a": 1 },
|
|
||||||
{ "px": [416,608], "src": [64,160], "f": 0, "t": 52, "d": [280,925], "a": 1 },
|
|
||||||
{ "px": [736,608], "src": [96,160], "f": 0, "t": 53, "d": [280,935], "a": 1 },
|
|
||||||
{ "px": [768,608], "src": [32,160], "f": 0, "t": 51, "d": [280,936], "a": 1 },
|
|
||||||
{ "px": [1280,608], "src": [64,160], "f": 0, "t": 52, "d": [280,952], "a": 1 },
|
|
||||||
{ "px": [1312,608], "src": [96,128], "f": 0, "t": 43, "d": [280,953], "a": 1 },
|
|
||||||
{ "px": [1344,608], "src": [64,128], "f": 0, "t": 42, "d": [280,954], "a": 1 },
|
|
||||||
{ "px": [1376,608], "src": [96,128], "f": 0, "t": 43, "d": [280,955], "a": 1 },
|
|
||||||
{ "px": [1408,608], "src": [0,128], "f": 0, "t": 40, "d": [280,956], "a": 1 },
|
|
||||||
{ "px": [1440,608], "src": [96,128], "f": 0, "t": 43, "d": [280,957], "a": 1 },
|
|
||||||
{ "px": [1472,608], "src": [64,128], "f": 0, "t": 42, "d": [280,958], "a": 1 },
|
|
||||||
{ "px": [576,640], "src": [0,160], "f": 0, "t": 50, "d": [280,978], "a": 1 },
|
|
||||||
{ "px": [608,640], "src": [32,160], "f": 0, "t": 51, "d": [280,979], "a": 1 },
|
|
||||||
{ "px": [640,640], "src": [96,128], "f": 0, "t": 43, "d": [280,980], "a": 1 },
|
|
||||||
{ "px": [672,640], "src": [32,128], "f": 0, "t": 41, "d": [280,981], "a": 1 },
|
|
||||||
{ "px": [480,672], "src": [96,160], "f": 0, "t": 53, "d": [280,1023], "a": 1 },
|
|
||||||
{ "px": [512,672], "src": [32,128], "f": 0, "t": 41, "d": [280,1024], "a": 1 }
|
|
||||||
],
|
|
||||||
"seed": 8337045,
|
"seed": 8337045,
|
||||||
"overrideTilesetUid": null,
|
"overrideTilesetUid": null,
|
||||||
"gridTiles": [],
|
"gridTiles": [],
|
|
@ -8,7 +8,7 @@
|
||||||
"appVersion": "1.4.1",
|
"appVersion": "1.4.1",
|
||||||
"url": "https://ldtk.io"
|
"url": "https://ldtk.io"
|
||||||
},
|
},
|
||||||
"identifier": "Level_3",
|
"identifier": "level_3",
|
||||||
"iid": "9a7c1c80-3b70-11ee-9613-c599f6a78847",
|
"iid": "9a7c1c80-3b70-11ee-9613-c599f6a78847",
|
||||||
"uid": 422,
|
"uid": 422,
|
||||||
"worldX": 4096,
|
"worldX": 4096,
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
"fieldInstances": [],
|
"fieldInstances": [],
|
||||||
"layerInstances": [
|
"layerInstances": [
|
||||||
{
|
{
|
||||||
"__identifier": "Foliage",
|
"__identifier": "foliage",
|
||||||
"__type": "AutoLayer",
|
"__type": "AutoLayer",
|
||||||
"__cWid": 56,
|
"__cWid": 56,
|
||||||
"__cHei": 32,
|
"__cHei": 32,
|
||||||
|
@ -94,7 +94,7 @@
|
||||||
"entityInstances": []
|
"entityInstances": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__identifier": "Entities",
|
"__identifier": "entities",
|
||||||
"__type": "Entities",
|
"__type": "Entities",
|
||||||
"__cWid": 112,
|
"__cWid": 112,
|
||||||
"__cHei": 64,
|
"__cHei": 64,
|
||||||
|
@ -118,7 +118,7 @@
|
||||||
"gridTiles": [],
|
"gridTiles": [],
|
||||||
"entityInstances": [
|
"entityInstances": [
|
||||||
{
|
{
|
||||||
"__identifier": "Player",
|
"__identifier": "player",
|
||||||
"__grid": [1,49],
|
"__grid": [1,49],
|
||||||
"__pivot": [0.25,1],
|
"__pivot": [0.25,1],
|
||||||
"__tags": [],
|
"__tags": [],
|
||||||
|
@ -136,7 +136,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__identifier": "Ground",
|
"__identifier": "ground",
|
||||||
"__type": "AutoLayer",
|
"__type": "AutoLayer",
|
||||||
"__cWid": 56,
|
"__cWid": 56,
|
||||||
"__cHei": 32,
|
"__cHei": 32,
|
||||||
|
@ -788,7 +788,7 @@
|
||||||
"entityInstances": []
|
"entityInstances": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__identifier": "Level",
|
"__identifier": "level",
|
||||||
"__type": "IntGrid",
|
"__type": "IntGrid",
|
||||||
"__cWid": 56,
|
"__cWid": 56,
|
||||||
"__cHei": 32,
|
"__cHei": 32,
|
|
@ -12,9 +12,9 @@
|
||||||
"jsonVersion": "1.4.1",
|
"jsonVersion": "1.4.1",
|
||||||
"appBuildId": 471031,
|
"appBuildId": 471031,
|
||||||
"nextUid": 478,
|
"nextUid": 478,
|
||||||
"identifierStyle": "Capitalize",
|
"identifierStyle": "Lowercase",
|
||||||
"toc": [{
|
"toc": [{
|
||||||
"identifier": "Player",
|
"identifier": "player",
|
||||||
"instances": [
|
"instances": [
|
||||||
{
|
{
|
||||||
"worldIid": "67ad3480-3b70-11ee-be4f-b1653d535c51",
|
"worldIid": "67ad3480-3b70-11ee-be4f-b1653d535c51",
|
||||||
|
@ -71,7 +71,7 @@
|
||||||
"defs": { "layers": [
|
"defs": { "layers": [
|
||||||
{
|
{
|
||||||
"__type": "AutoLayer",
|
"__type": "AutoLayer",
|
||||||
"identifier": "Foliage",
|
"identifier": "foliage",
|
||||||
"type": "AutoLayer",
|
"type": "AutoLayer",
|
||||||
"uid": 393,
|
"uid": 393,
|
||||||
"doc": null,
|
"doc": null,
|
||||||
|
@ -134,7 +134,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type": "Entities",
|
"__type": "Entities",
|
||||||
"identifier": "Entities",
|
"identifier": "entities",
|
||||||
"type": "Entities",
|
"type": "Entities",
|
||||||
"uid": 56,
|
"uid": 56,
|
||||||
"doc": null,
|
"doc": null,
|
||||||
|
@ -165,7 +165,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type": "AutoLayer",
|
"__type": "AutoLayer",
|
||||||
"identifier": "Ground",
|
"identifier": "ground",
|
||||||
"type": "AutoLayer",
|
"type": "AutoLayer",
|
||||||
"uid": 343,
|
"uid": 343,
|
||||||
"doc": null,
|
"doc": null,
|
||||||
|
@ -1003,7 +1003,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type": "IntGrid",
|
"__type": "IntGrid",
|
||||||
"identifier": "Level",
|
"identifier": "level",
|
||||||
"type": "IntGrid",
|
"type": "IntGrid",
|
||||||
"uid": 4,
|
"uid": 4,
|
||||||
"doc": null,
|
"doc": null,
|
||||||
|
@ -1034,7 +1034,7 @@
|
||||||
}
|
}
|
||||||
], "entities": [
|
], "entities": [
|
||||||
{
|
{
|
||||||
"identifier": "LevelTransition",
|
"identifier": "leveltransition",
|
||||||
"uid": 53,
|
"uid": 53,
|
||||||
"tags": [],
|
"tags": [],
|
||||||
"exportToToc": false,
|
"exportToToc": false,
|
||||||
|
@ -1139,7 +1139,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"identifier": "Player",
|
"identifier": "player",
|
||||||
"uid": 177,
|
"uid": 177,
|
||||||
"tags": [],
|
"tags": [],
|
||||||
"exportToToc": true,
|
"exportToToc": true,
|
||||||
|
@ -1176,7 +1176,7 @@
|
||||||
{
|
{
|
||||||
"__cWid": 10,
|
"__cWid": 10,
|
||||||
"__cHei": 10,
|
"__cHei": 10,
|
||||||
"identifier": "Cave",
|
"identifier": "cave",
|
||||||
"uid": 1,
|
"uid": 1,
|
||||||
"relPath": "assets/sprites/cave.png",
|
"relPath": "assets/sprites/cave.png",
|
||||||
"embedAtlas": null,
|
"embedAtlas": null,
|
||||||
|
@ -1187,7 +1187,7 @@
|
||||||
"padding": 0,
|
"padding": 0,
|
||||||
"tags": ["World"],
|
"tags": ["World"],
|
||||||
"tagsSourceEnumUid": 477,
|
"tagsSourceEnumUid": 477,
|
||||||
"enumTags": [ { "enumValueId": "None", "tileIds": [] }, { "enumValueId": "FullRect", "tileIds": [4,6,7,10,11,12,13,14,15,16,17,21,24,25,26,27,31,34,35,36,37,44,45] }, { "enumValueId": "PointShape", "tileIds": [0,2,3,20,22,23,30,32] } ],
|
"enumTags": [ { "enumValueId": "none", "tileIds": [] }, { "enumValueId": "fullrect", "tileIds": [4,6,7,10,11,12,13,14,15,16,17,21,24,25,26,27,31,34,35,36,37,44,45] }, { "enumValueId": "pointshape", "tileIds": [0,2,3,20,22,23,30,32] } ],
|
||||||
"customData": [],
|
"customData": [],
|
||||||
"savedSelections": [],
|
"savedSelections": [],
|
||||||
"cachedPixelData": {
|
"cachedPixelData": {
|
||||||
|
@ -1198,7 +1198,7 @@
|
||||||
{
|
{
|
||||||
"__cWid": 32,
|
"__cWid": 32,
|
||||||
"__cHei": 64,
|
"__cHei": 64,
|
||||||
"identifier": "Internal_Icons",
|
"identifier": "internal_icons",
|
||||||
"uid": 3,
|
"uid": 3,
|
||||||
"relPath": null,
|
"relPath": null,
|
||||||
"embedAtlas": "LdtkIcons",
|
"embedAtlas": "LdtkIcons",
|
||||||
|
@ -1220,7 +1220,7 @@
|
||||||
{
|
{
|
||||||
"__cWid": 3,
|
"__cWid": 3,
|
||||||
"__cHei": 1,
|
"__cHei": 1,
|
||||||
"identifier": "Player",
|
"identifier": "player",
|
||||||
"uid": 178,
|
"uid": 178,
|
||||||
"relPath": "assets/sprites/player.png",
|
"relPath": "assets/sprites/player.png",
|
||||||
"embedAtlas": null,
|
"embedAtlas": null,
|
||||||
|
@ -1236,14 +1236,14 @@
|
||||||
"savedSelections": [],
|
"savedSelections": [],
|
||||||
"cachedPixelData": { "opaqueTiles": "000", "averageColors": "187928790bbd" }
|
"cachedPixelData": { "opaqueTiles": "000", "averageColors": "187928790bbd" }
|
||||||
}
|
}
|
||||||
], "enums": [{ "identifier": "TileCollisionType", "uid": 477, "values": [
|
], "enums": [{ "identifier": "tilecollisiontype", "uid": 477, "values": [
|
||||||
{ "id": "None", "tileRect": { "tilesetUid": 3, "x": 384, "y": 64, "w": 16, "h": 16 }, "color": 16777215 },
|
{ "id": "none", "tileRect": { "tilesetUid": 3, "x": 384, "y": 64, "w": 16, "h": 16 }, "color": 16777215 },
|
||||||
{ "id": "FullRect", "tileRect": { "tilesetUid": 3, "x": 272, "y": 272, "w": 16, "h": 16 }, "color": 16723968 },
|
{ "id": "fullrect", "tileRect": { "tilesetUid": 3, "x": 272, "y": 272, "w": 16, "h": 16 }, "color": 16723968 },
|
||||||
{ "id": "PointShape", "tileRect": { "tilesetUid": 3, "x": 288, "y": 48, "w": 16, "h": 16 }, "color": 8698879 }
|
{ "id": "pointshape", "tileRect": { "tilesetUid": 3, "x": 288, "y": 48, "w": 16, "h": 16 }, "color": 8698879 }
|
||||||
], "iconTilesetUid": 3, "externalRelPath": null, "externalFileChecksum": null, "tags": ["Tiles"] }], "externalEnums": [], "levelFields": [] },
|
], "iconTilesetUid": 3, "externalRelPath": null, "externalFileChecksum": null, "tags": ["Tiles"] }], "externalEnums": [], "levelFields": [] },
|
||||||
"levels": [
|
"levels": [
|
||||||
{
|
{
|
||||||
"identifier": "Level_0",
|
"identifier": "level_0",
|
||||||
"iid": "67ada9b0-3b70-11ee-be4f-4d7a6de46d81",
|
"iid": "67ada9b0-3b70-11ee-be4f-4d7a6de46d81",
|
||||||
"uid": 0,
|
"uid": 0,
|
||||||
"worldX": 0,
|
"worldX": 0,
|
||||||
|
@ -1260,13 +1260,13 @@
|
||||||
"bgPivotY": 0.5,
|
"bgPivotY": 0.5,
|
||||||
"__smartColor": "#ADADB5",
|
"__smartColor": "#ADADB5",
|
||||||
"__bgPos": null,
|
"__bgPos": null,
|
||||||
"externalRelPath": "levels/Level_0.ldtkl",
|
"externalRelPath": "levels/level_0.ldtkl",
|
||||||
"fieldInstances": [],
|
"fieldInstances": [],
|
||||||
"layerInstances": null,
|
"layerInstances": null,
|
||||||
"__neighbours": [{ "levelIid": "5f342c40-3b70-11ee-9613-c12b94e9924d", "dir": "e" }]
|
"__neighbours": [{ "levelIid": "5f342c40-3b70-11ee-9613-c12b94e9924d", "dir": "e" }]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"identifier": "Level_1",
|
"identifier": "level_1",
|
||||||
"iid": "5f342c40-3b70-11ee-9613-c12b94e9924d",
|
"iid": "5f342c40-3b70-11ee-9613-c12b94e9924d",
|
||||||
"uid": 252,
|
"uid": 252,
|
||||||
"worldX": 1536,
|
"worldX": 1536,
|
||||||
|
@ -1283,13 +1283,13 @@
|
||||||
"bgPivotY": 0.5,
|
"bgPivotY": 0.5,
|
||||||
"__smartColor": "#ADADB5",
|
"__smartColor": "#ADADB5",
|
||||||
"__bgPos": null,
|
"__bgPos": null,
|
||||||
"externalRelPath": "levels/Level_1.ldtkl",
|
"externalRelPath": "levels/level_1.ldtkl",
|
||||||
"fieldInstances": [],
|
"fieldInstances": [],
|
||||||
"layerInstances": null,
|
"layerInstances": null,
|
||||||
"__neighbours": [ { "levelIid": "67ada9b0-3b70-11ee-be4f-4d7a6de46d81", "dir": "w" }, { "levelIid": "7d714960-3b70-11ee-9613-91c75b274d8d", "dir": "e" } ]
|
"__neighbours": [ { "levelIid": "67ada9b0-3b70-11ee-be4f-4d7a6de46d81", "dir": "w" }, { "levelIid": "7d714960-3b70-11ee-9613-91c75b274d8d", "dir": "e" } ]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"identifier": "Level_2",
|
"identifier": "level_2",
|
||||||
"iid": "7d714960-3b70-11ee-9613-91c75b274d8d",
|
"iid": "7d714960-3b70-11ee-9613-91c75b274d8d",
|
||||||
"uid": 312,
|
"uid": 312,
|
||||||
"worldX": 2560,
|
"worldX": 2560,
|
||||||
|
@ -1306,13 +1306,13 @@
|
||||||
"bgPivotY": 0.5,
|
"bgPivotY": 0.5,
|
||||||
"__smartColor": "#ADADB5",
|
"__smartColor": "#ADADB5",
|
||||||
"__bgPos": null,
|
"__bgPos": null,
|
||||||
"externalRelPath": "levels/Level_2.ldtkl",
|
"externalRelPath": "levels/level_2.ldtkl",
|
||||||
"fieldInstances": [],
|
"fieldInstances": [],
|
||||||
"layerInstances": null,
|
"layerInstances": null,
|
||||||
"__neighbours": [ { "levelIid": "5f342c40-3b70-11ee-9613-c12b94e9924d", "dir": "w" }, { "levelIid": "9a7c1c80-3b70-11ee-9613-c599f6a78847", "dir": "e" } ]
|
"__neighbours": [ { "levelIid": "5f342c40-3b70-11ee-9613-c12b94e9924d", "dir": "w" }, { "levelIid": "9a7c1c80-3b70-11ee-9613-c599f6a78847", "dir": "e" } ]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"identifier": "Level_3",
|
"identifier": "level_3",
|
||||||
"iid": "9a7c1c80-3b70-11ee-9613-c599f6a78847",
|
"iid": "9a7c1c80-3b70-11ee-9613-c599f6a78847",
|
||||||
"uid": 422,
|
"uid": 422,
|
||||||
"worldX": 4096,
|
"worldX": 4096,
|
||||||
|
@ -1329,7 +1329,7 @@
|
||||||
"bgPivotY": 0.5,
|
"bgPivotY": 0.5,
|
||||||
"__smartColor": "#ADADB5",
|
"__smartColor": "#ADADB5",
|
||||||
"__bgPos": null,
|
"__bgPos": null,
|
||||||
"externalRelPath": "levels/Level_3.ldtkl",
|
"externalRelPath": "levels/level_3.ldtkl",
|
||||||
"fieldInstances": [],
|
"fieldInstances": [],
|
||||||
"layerInstances": null,
|
"layerInstances": null,
|
||||||
"__neighbours": [{ "levelIid": "7d714960-3b70-11ee-9613-91c75b274d8d", "dir": "w" }]
|
"__neighbours": [{ "levelIid": "7d714960-3b70-11ee-9613-91c75b274d8d", "dir": "w" }]
|
||||||
|
|
2444
levels/Level_1.ldtkl
2444
levels/Level_1.ldtkl
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
1270
levels/level_1.ldtkl
Normal file
1270
levels/level_1.ldtkl
Normal file
File diff suppressed because it is too large
Load diff
|
@ -8,7 +8,7 @@
|
||||||
"appVersion": "1.4.1",
|
"appVersion": "1.4.1",
|
||||||
"url": "https://ldtk.io"
|
"url": "https://ldtk.io"
|
||||||
},
|
},
|
||||||
"identifier": "Level_2",
|
"identifier": "level_2",
|
||||||
"iid": "7d714960-3b70-11ee-9613-91c75b274d8d",
|
"iid": "7d714960-3b70-11ee-9613-91c75b274d8d",
|
||||||
"uid": 312,
|
"uid": 312,
|
||||||
"worldX": 2560,
|
"worldX": 2560,
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
"fieldInstances": [],
|
"fieldInstances": [],
|
||||||
"layerInstances": [
|
"layerInstances": [
|
||||||
{
|
{
|
||||||
"__identifier": "Foliage",
|
"__identifier": "foliage",
|
||||||
"__type": "AutoLayer",
|
"__type": "AutoLayer",
|
||||||
"__cWid": 48,
|
"__cWid": 48,
|
||||||
"__cHei": 24,
|
"__cHei": 24,
|
||||||
|
@ -98,7 +98,7 @@
|
||||||
"entityInstances": []
|
"entityInstances": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__identifier": "Entities",
|
"__identifier": "entities",
|
||||||
"__type": "Entities",
|
"__type": "Entities",
|
||||||
"__cWid": 96,
|
"__cWid": 96,
|
||||||
"__cHei": 48,
|
"__cHei": 48,
|
||||||
|
@ -122,7 +122,7 @@
|
||||||
"gridTiles": [],
|
"gridTiles": [],
|
||||||
"entityInstances": [
|
"entityInstances": [
|
||||||
{
|
{
|
||||||
"__identifier": "Player",
|
"__identifier": "player",
|
||||||
"__grid": [1,39],
|
"__grid": [1,39],
|
||||||
"__pivot": [0.25,1],
|
"__pivot": [0.25,1],
|
||||||
"__tags": [],
|
"__tags": [],
|
||||||
|
@ -138,7 +138,7 @@
|
||||||
"fieldInstances": []
|
"fieldInstances": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__identifier": "LevelTransition",
|
"__identifier": "leveltransition",
|
||||||
"__grid": [95,9],
|
"__grid": [95,9],
|
||||||
"__pivot": [0,0],
|
"__pivot": [0,0],
|
||||||
"__tags": [],
|
"__tags": [],
|
||||||
|
@ -159,7 +159,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__identifier": "Ground",
|
"__identifier": "ground",
|
||||||
"__type": "AutoLayer",
|
"__type": "AutoLayer",
|
||||||
"__cWid": 48,
|
"__cWid": 48,
|
||||||
"__cHei": 24,
|
"__cHei": 24,
|
||||||
|
@ -887,7 +887,7 @@
|
||||||
"entityInstances": []
|
"entityInstances": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__identifier": "Level",
|
"__identifier": "level",
|
||||||
"__type": "IntGrid",
|
"__type": "IntGrid",
|
||||||
"__cWid": 48,
|
"__cWid": 48,
|
||||||
"__cHei": 24,
|
"__cHei": 24,
|
||||||
|
@ -939,581 +939,7 @@
|
||||||
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
|
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
|
||||||
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
],
|
],
|
||||||
"autoLayerTiles": [
|
"autoLayerTiles": [],
|
||||||
{ "px": [0,0], "src": [32,32], "f": 0, "t": 11, "d": [278,0], "a": 1 },
|
|
||||||
{ "px": [32,0], "src": [32,32], "f": 0, "t": 11, "d": [278,1], "a": 1 },
|
|
||||||
{ "px": [64,0], "src": [32,32], "f": 0, "t": 11, "d": [278,2], "a": 1 },
|
|
||||||
{ "px": [96,0], "src": [32,32], "f": 0, "t": 11, "d": [278,3], "a": 1 },
|
|
||||||
{ "px": [128,0], "src": [32,32], "f": 0, "t": 11, "d": [278,4], "a": 1 },
|
|
||||||
{ "px": [160,0], "src": [32,32], "f": 0, "t": 11, "d": [278,5], "a": 1 },
|
|
||||||
{ "px": [192,0], "src": [32,32], "f": 0, "t": 11, "d": [278,6], "a": 1 },
|
|
||||||
{ "px": [224,0], "src": [32,32], "f": 0, "t": 11, "d": [278,7], "a": 1 },
|
|
||||||
{ "px": [256,0], "src": [32,32], "f": 0, "t": 11, "d": [278,8], "a": 1 },
|
|
||||||
{ "px": [288,0], "src": [32,32], "f": 0, "t": 11, "d": [278,9], "a": 1 },
|
|
||||||
{ "px": [320,0], "src": [32,32], "f": 0, "t": 11, "d": [278,10], "a": 1 },
|
|
||||||
{ "px": [352,0], "src": [32,32], "f": 0, "t": 11, "d": [278,11], "a": 1 },
|
|
||||||
{ "px": [384,0], "src": [32,32], "f": 0, "t": 11, "d": [278,12], "a": 1 },
|
|
||||||
{ "px": [416,0], "src": [32,32], "f": 0, "t": 11, "d": [278,13], "a": 1 },
|
|
||||||
{ "px": [448,0], "src": [32,32], "f": 0, "t": 11, "d": [278,14], "a": 1 },
|
|
||||||
{ "px": [1056,0], "src": [32,32], "f": 0, "t": 11, "d": [278,33], "a": 1 },
|
|
||||||
{ "px": [1088,0], "src": [32,32], "f": 0, "t": 11, "d": [278,34], "a": 1 },
|
|
||||||
{ "px": [1120,0], "src": [32,32], "f": 0, "t": 11, "d": [278,35], "a": 1 },
|
|
||||||
{ "px": [1152,0], "src": [32,32], "f": 0, "t": 11, "d": [278,36], "a": 1 },
|
|
||||||
{ "px": [1184,0], "src": [32,32], "f": 0, "t": 11, "d": [278,37], "a": 1 },
|
|
||||||
{ "px": [1216,0], "src": [32,32], "f": 0, "t": 11, "d": [278,38], "a": 1 },
|
|
||||||
{ "px": [1248,0], "src": [32,32], "f": 0, "t": 11, "d": [278,39], "a": 1 },
|
|
||||||
{ "px": [1280,0], "src": [32,32], "f": 0, "t": 11, "d": [278,40], "a": 1 },
|
|
||||||
{ "px": [1312,0], "src": [32,32], "f": 0, "t": 11, "d": [278,41], "a": 1 },
|
|
||||||
{ "px": [1344,0], "src": [32,32], "f": 0, "t": 11, "d": [278,42], "a": 1 },
|
|
||||||
{ "px": [1376,0], "src": [32,32], "f": 0, "t": 11, "d": [278,43], "a": 1 },
|
|
||||||
{ "px": [1408,0], "src": [32,32], "f": 0, "t": 11, "d": [278,44], "a": 1 },
|
|
||||||
{ "px": [1440,0], "src": [32,32], "f": 0, "t": 11, "d": [278,45], "a": 1 },
|
|
||||||
{ "px": [1472,0], "src": [32,32], "f": 0, "t": 11, "d": [278,46], "a": 1 },
|
|
||||||
{ "px": [1504,0], "src": [32,32], "f": 0, "t": 11, "d": [278,47], "a": 1 },
|
|
||||||
{ "px": [0,32], "src": [32,32], "f": 0, "t": 11, "d": [278,48], "a": 1 },
|
|
||||||
{ "px": [32,32], "src": [32,32], "f": 0, "t": 11, "d": [278,49], "a": 1 },
|
|
||||||
{ "px": [64,32], "src": [32,32], "f": 0, "t": 11, "d": [278,50], "a": 1 },
|
|
||||||
{ "px": [96,32], "src": [32,32], "f": 0, "t": 11, "d": [278,51], "a": 1 },
|
|
||||||
{ "px": [128,32], "src": [32,32], "f": 0, "t": 11, "d": [278,52], "a": 1 },
|
|
||||||
{ "px": [160,32], "src": [32,32], "f": 0, "t": 11, "d": [278,53], "a": 1 },
|
|
||||||
{ "px": [192,32], "src": [32,32], "f": 0, "t": 11, "d": [278,54], "a": 1 },
|
|
||||||
{ "px": [224,32], "src": [32,32], "f": 0, "t": 11, "d": [278,55], "a": 1 },
|
|
||||||
{ "px": [256,32], "src": [32,32], "f": 0, "t": 11, "d": [278,56], "a": 1 },
|
|
||||||
{ "px": [288,32], "src": [32,32], "f": 0, "t": 11, "d": [278,57], "a": 1 },
|
|
||||||
{ "px": [320,32], "src": [32,32], "f": 0, "t": 11, "d": [278,58], "a": 1 },
|
|
||||||
{ "px": [352,32], "src": [32,32], "f": 0, "t": 11, "d": [278,59], "a": 1 },
|
|
||||||
{ "px": [384,32], "src": [32,32], "f": 0, "t": 11, "d": [278,60], "a": 1 },
|
|
||||||
{ "px": [416,32], "src": [32,32], "f": 0, "t": 11, "d": [278,61], "a": 1 },
|
|
||||||
{ "px": [448,32], "src": [32,32], "f": 0, "t": 11, "d": [278,62], "a": 1 },
|
|
||||||
{ "px": [1056,32], "src": [32,32], "f": 0, "t": 11, "d": [278,81], "a": 1 },
|
|
||||||
{ "px": [1088,32], "src": [32,32], "f": 0, "t": 11, "d": [278,82], "a": 1 },
|
|
||||||
{ "px": [1120,32], "src": [32,32], "f": 0, "t": 11, "d": [278,83], "a": 1 },
|
|
||||||
{ "px": [1152,32], "src": [32,32], "f": 0, "t": 11, "d": [278,84], "a": 1 },
|
|
||||||
{ "px": [1184,32], "src": [32,32], "f": 0, "t": 11, "d": [278,85], "a": 1 },
|
|
||||||
{ "px": [1216,32], "src": [32,32], "f": 0, "t": 11, "d": [278,86], "a": 1 },
|
|
||||||
{ "px": [1248,32], "src": [32,32], "f": 0, "t": 11, "d": [278,87], "a": 1 },
|
|
||||||
{ "px": [1280,32], "src": [32,32], "f": 0, "t": 11, "d": [278,88], "a": 1 },
|
|
||||||
{ "px": [1312,32], "src": [32,32], "f": 0, "t": 11, "d": [278,89], "a": 1 },
|
|
||||||
{ "px": [1344,32], "src": [32,32], "f": 0, "t": 11, "d": [278,90], "a": 1 },
|
|
||||||
{ "px": [1376,32], "src": [32,32], "f": 0, "t": 11, "d": [278,91], "a": 1 },
|
|
||||||
{ "px": [1408,32], "src": [32,32], "f": 0, "t": 11, "d": [278,92], "a": 1 },
|
|
||||||
{ "px": [1440,32], "src": [32,32], "f": 0, "t": 11, "d": [278,93], "a": 1 },
|
|
||||||
{ "px": [1472,32], "src": [32,32], "f": 0, "t": 11, "d": [278,94], "a": 1 },
|
|
||||||
{ "px": [1504,32], "src": [32,32], "f": 0, "t": 11, "d": [278,95], "a": 1 },
|
|
||||||
{ "px": [0,64], "src": [32,32], "f": 0, "t": 11, "d": [278,96], "a": 1 },
|
|
||||||
{ "px": [32,64], "src": [32,32], "f": 0, "t": 11, "d": [278,97], "a": 1 },
|
|
||||||
{ "px": [64,64], "src": [32,32], "f": 0, "t": 11, "d": [278,98], "a": 1 },
|
|
||||||
{ "px": [96,64], "src": [32,32], "f": 0, "t": 11, "d": [278,99], "a": 1 },
|
|
||||||
{ "px": [128,64], "src": [32,32], "f": 0, "t": 11, "d": [278,100], "a": 1 },
|
|
||||||
{ "px": [160,64], "src": [32,32], "f": 0, "t": 11, "d": [278,101], "a": 1 },
|
|
||||||
{ "px": [192,64], "src": [32,32], "f": 0, "t": 11, "d": [278,102], "a": 1 },
|
|
||||||
{ "px": [224,64], "src": [32,32], "f": 0, "t": 11, "d": [278,103], "a": 1 },
|
|
||||||
{ "px": [256,64], "src": [32,32], "f": 0, "t": 11, "d": [278,104], "a": 1 },
|
|
||||||
{ "px": [288,64], "src": [32,32], "f": 0, "t": 11, "d": [278,105], "a": 1 },
|
|
||||||
{ "px": [320,64], "src": [32,32], "f": 0, "t": 11, "d": [278,106], "a": 1 },
|
|
||||||
{ "px": [352,64], "src": [32,32], "f": 0, "t": 11, "d": [278,107], "a": 1 },
|
|
||||||
{ "px": [384,64], "src": [32,32], "f": 0, "t": 11, "d": [278,108], "a": 1 },
|
|
||||||
{ "px": [416,64], "src": [32,32], "f": 0, "t": 11, "d": [278,109], "a": 1 },
|
|
||||||
{ "px": [448,64], "src": [32,32], "f": 0, "t": 11, "d": [278,110], "a": 1 },
|
|
||||||
{ "px": [1056,64], "src": [32,32], "f": 0, "t": 11, "d": [278,129], "a": 1 },
|
|
||||||
{ "px": [1088,64], "src": [32,32], "f": 0, "t": 11, "d": [278,130], "a": 1 },
|
|
||||||
{ "px": [1120,64], "src": [32,32], "f": 0, "t": 11, "d": [278,131], "a": 1 },
|
|
||||||
{ "px": [1152,64], "src": [32,32], "f": 0, "t": 11, "d": [278,132], "a": 1 },
|
|
||||||
{ "px": [1184,64], "src": [32,32], "f": 0, "t": 11, "d": [278,133], "a": 1 },
|
|
||||||
{ "px": [1216,64], "src": [32,32], "f": 0, "t": 11, "d": [278,134], "a": 1 },
|
|
||||||
{ "px": [1248,64], "src": [32,32], "f": 0, "t": 11, "d": [278,135], "a": 1 },
|
|
||||||
{ "px": [1280,64], "src": [32,32], "f": 0, "t": 11, "d": [278,136], "a": 1 },
|
|
||||||
{ "px": [1312,64], "src": [32,32], "f": 0, "t": 11, "d": [278,137], "a": 1 },
|
|
||||||
{ "px": [1344,64], "src": [32,32], "f": 0, "t": 11, "d": [278,138], "a": 1 },
|
|
||||||
{ "px": [1376,64], "src": [32,32], "f": 0, "t": 11, "d": [278,139], "a": 1 },
|
|
||||||
{ "px": [1408,64], "src": [32,32], "f": 0, "t": 11, "d": [278,140], "a": 1 },
|
|
||||||
{ "px": [1440,64], "src": [32,32], "f": 0, "t": 11, "d": [278,141], "a": 1 },
|
|
||||||
{ "px": [1472,64], "src": [32,32], "f": 0, "t": 11, "d": [278,142], "a": 1 },
|
|
||||||
{ "px": [1504,64], "src": [32,32], "f": 0, "t": 11, "d": [278,143], "a": 1 },
|
|
||||||
{ "px": [0,96], "src": [32,32], "f": 0, "t": 11, "d": [278,144], "a": 1 },
|
|
||||||
{ "px": [32,96], "src": [32,32], "f": 0, "t": 11, "d": [278,145], "a": 1 },
|
|
||||||
{ "px": [64,96], "src": [32,32], "f": 0, "t": 11, "d": [278,146], "a": 1 },
|
|
||||||
{ "px": [96,96], "src": [32,32], "f": 0, "t": 11, "d": [278,147], "a": 1 },
|
|
||||||
{ "px": [128,96], "src": [32,32], "f": 0, "t": 11, "d": [278,148], "a": 1 },
|
|
||||||
{ "px": [160,96], "src": [32,32], "f": 0, "t": 11, "d": [278,149], "a": 1 },
|
|
||||||
{ "px": [192,96], "src": [32,32], "f": 0, "t": 11, "d": [278,150], "a": 1 },
|
|
||||||
{ "px": [224,96], "src": [32,32], "f": 0, "t": 11, "d": [278,151], "a": 1 },
|
|
||||||
{ "px": [256,96], "src": [32,32], "f": 0, "t": 11, "d": [278,152], "a": 1 },
|
|
||||||
{ "px": [288,96], "src": [32,32], "f": 0, "t": 11, "d": [278,153], "a": 1 },
|
|
||||||
{ "px": [320,96], "src": [32,32], "f": 0, "t": 11, "d": [278,154], "a": 1 },
|
|
||||||
{ "px": [352,96], "src": [32,32], "f": 0, "t": 11, "d": [278,155], "a": 1 },
|
|
||||||
{ "px": [384,96], "src": [32,32], "f": 0, "t": 11, "d": [278,156], "a": 1 },
|
|
||||||
{ "px": [416,96], "src": [32,32], "f": 0, "t": 11, "d": [278,157], "a": 1 },
|
|
||||||
{ "px": [448,96], "src": [32,32], "f": 0, "t": 11, "d": [278,158], "a": 1 },
|
|
||||||
{ "px": [480,96], "src": [32,32], "f": 0, "t": 11, "d": [278,159], "a": 1 },
|
|
||||||
{ "px": [1088,96], "src": [32,32], "f": 0, "t": 11, "d": [278,178], "a": 1 },
|
|
||||||
{ "px": [1120,96], "src": [32,32], "f": 0, "t": 11, "d": [278,179], "a": 1 },
|
|
||||||
{ "px": [1152,96], "src": [32,32], "f": 0, "t": 11, "d": [278,180], "a": 1 },
|
|
||||||
{ "px": [1184,96], "src": [32,32], "f": 0, "t": 11, "d": [278,181], "a": 1 },
|
|
||||||
{ "px": [1216,96], "src": [32,32], "f": 0, "t": 11, "d": [278,182], "a": 1 },
|
|
||||||
{ "px": [1248,96], "src": [32,32], "f": 0, "t": 11, "d": [278,183], "a": 1 },
|
|
||||||
{ "px": [1280,96], "src": [32,32], "f": 0, "t": 11, "d": [278,184], "a": 1 },
|
|
||||||
{ "px": [1312,96], "src": [32,32], "f": 0, "t": 11, "d": [278,185], "a": 1 },
|
|
||||||
{ "px": [1344,96], "src": [32,32], "f": 0, "t": 11, "d": [278,186], "a": 1 },
|
|
||||||
{ "px": [1376,96], "src": [32,32], "f": 0, "t": 11, "d": [278,187], "a": 1 },
|
|
||||||
{ "px": [1408,96], "src": [32,32], "f": 0, "t": 11, "d": [278,188], "a": 1 },
|
|
||||||
{ "px": [1440,96], "src": [32,32], "f": 0, "t": 11, "d": [278,189], "a": 1 },
|
|
||||||
{ "px": [1472,96], "src": [32,32], "f": 0, "t": 11, "d": [278,190], "a": 1 },
|
|
||||||
{ "px": [1504,96], "src": [32,32], "f": 0, "t": 11, "d": [278,191], "a": 1 },
|
|
||||||
{ "px": [0,128], "src": [32,32], "f": 0, "t": 11, "d": [278,192], "a": 1 },
|
|
||||||
{ "px": [32,128], "src": [32,32], "f": 0, "t": 11, "d": [278,193], "a": 1 },
|
|
||||||
{ "px": [64,128], "src": [32,32], "f": 0, "t": 11, "d": [278,194], "a": 1 },
|
|
||||||
{ "px": [96,128], "src": [32,32], "f": 0, "t": 11, "d": [278,195], "a": 1 },
|
|
||||||
{ "px": [128,128], "src": [32,32], "f": 0, "t": 11, "d": [278,196], "a": 1 },
|
|
||||||
{ "px": [160,128], "src": [32,32], "f": 0, "t": 11, "d": [278,197], "a": 1 },
|
|
||||||
{ "px": [192,128], "src": [32,32], "f": 0, "t": 11, "d": [278,198], "a": 1 },
|
|
||||||
{ "px": [224,128], "src": [32,32], "f": 0, "t": 11, "d": [278,199], "a": 1 },
|
|
||||||
{ "px": [256,128], "src": [32,32], "f": 0, "t": 11, "d": [278,200], "a": 1 },
|
|
||||||
{ "px": [288,128], "src": [32,32], "f": 0, "t": 11, "d": [278,201], "a": 1 },
|
|
||||||
{ "px": [320,128], "src": [32,32], "f": 0, "t": 11, "d": [278,202], "a": 1 },
|
|
||||||
{ "px": [352,128], "src": [32,32], "f": 0, "t": 11, "d": [278,203], "a": 1 },
|
|
||||||
{ "px": [384,128], "src": [32,32], "f": 0, "t": 11, "d": [278,204], "a": 1 },
|
|
||||||
{ "px": [416,128], "src": [32,32], "f": 0, "t": 11, "d": [278,205], "a": 1 },
|
|
||||||
{ "px": [448,128], "src": [32,32], "f": 0, "t": 11, "d": [278,206], "a": 1 },
|
|
||||||
{ "px": [480,128], "src": [32,32], "f": 0, "t": 11, "d": [278,207], "a": 1 },
|
|
||||||
{ "px": [1120,128], "src": [32,32], "f": 0, "t": 11, "d": [278,227], "a": 1 },
|
|
||||||
{ "px": [1152,128], "src": [32,32], "f": 0, "t": 11, "d": [278,228], "a": 1 },
|
|
||||||
{ "px": [1184,128], "src": [32,32], "f": 0, "t": 11, "d": [278,229], "a": 1 },
|
|
||||||
{ "px": [1216,128], "src": [32,32], "f": 0, "t": 11, "d": [278,230], "a": 1 },
|
|
||||||
{ "px": [1248,128], "src": [32,32], "f": 0, "t": 11, "d": [278,231], "a": 1 },
|
|
||||||
{ "px": [1280,128], "src": [32,32], "f": 0, "t": 11, "d": [278,232], "a": 1 },
|
|
||||||
{ "px": [1312,128], "src": [32,32], "f": 0, "t": 11, "d": [278,233], "a": 1 },
|
|
||||||
{ "px": [1344,128], "src": [32,32], "f": 0, "t": 11, "d": [278,234], "a": 1 },
|
|
||||||
{ "px": [1376,128], "src": [32,32], "f": 0, "t": 11, "d": [278,235], "a": 1 },
|
|
||||||
{ "px": [1408,128], "src": [32,32], "f": 0, "t": 11, "d": [278,236], "a": 1 },
|
|
||||||
{ "px": [1440,128], "src": [32,32], "f": 0, "t": 11, "d": [278,237], "a": 1 },
|
|
||||||
{ "px": [1472,128], "src": [32,32], "f": 0, "t": 11, "d": [278,238], "a": 1 },
|
|
||||||
{ "px": [1504,128], "src": [32,32], "f": 0, "t": 11, "d": [278,239], "a": 1 },
|
|
||||||
{ "px": [0,160], "src": [32,32], "f": 0, "t": 11, "d": [278,240], "a": 1 },
|
|
||||||
{ "px": [32,160], "src": [32,32], "f": 0, "t": 11, "d": [278,241], "a": 1 },
|
|
||||||
{ "px": [64,160], "src": [32,32], "f": 0, "t": 11, "d": [278,242], "a": 1 },
|
|
||||||
{ "px": [96,160], "src": [32,32], "f": 0, "t": 11, "d": [278,243], "a": 1 },
|
|
||||||
{ "px": [128,160], "src": [32,32], "f": 0, "t": 11, "d": [278,244], "a": 1 },
|
|
||||||
{ "px": [160,160], "src": [32,32], "f": 0, "t": 11, "d": [278,245], "a": 1 },
|
|
||||||
{ "px": [192,160], "src": [32,32], "f": 0, "t": 11, "d": [278,246], "a": 1 },
|
|
||||||
{ "px": [224,160], "src": [32,32], "f": 0, "t": 11, "d": [278,247], "a": 1 },
|
|
||||||
{ "px": [256,160], "src": [32,32], "f": 0, "t": 11, "d": [278,248], "a": 1 },
|
|
||||||
{ "px": [288,160], "src": [32,32], "f": 0, "t": 11, "d": [278,249], "a": 1 },
|
|
||||||
{ "px": [320,160], "src": [32,32], "f": 0, "t": 11, "d": [278,250], "a": 1 },
|
|
||||||
{ "px": [352,160], "src": [32,32], "f": 0, "t": 11, "d": [278,251], "a": 1 },
|
|
||||||
{ "px": [384,160], "src": [32,32], "f": 0, "t": 11, "d": [278,252], "a": 1 },
|
|
||||||
{ "px": [416,160], "src": [32,32], "f": 0, "t": 11, "d": [278,253], "a": 1 },
|
|
||||||
{ "px": [448,160], "src": [32,32], "f": 0, "t": 11, "d": [278,254], "a": 1 },
|
|
||||||
{ "px": [1120,160], "src": [32,32], "f": 0, "t": 11, "d": [278,275], "a": 1 },
|
|
||||||
{ "px": [1152,160], "src": [32,32], "f": 0, "t": 11, "d": [278,276], "a": 1 },
|
|
||||||
{ "px": [1184,160], "src": [32,32], "f": 0, "t": 11, "d": [278,277], "a": 1 },
|
|
||||||
{ "px": [1216,160], "src": [32,32], "f": 0, "t": 11, "d": [278,278], "a": 1 },
|
|
||||||
{ "px": [1248,160], "src": [32,32], "f": 0, "t": 11, "d": [278,279], "a": 1 },
|
|
||||||
{ "px": [1280,160], "src": [32,32], "f": 0, "t": 11, "d": [278,280], "a": 1 },
|
|
||||||
{ "px": [1312,160], "src": [32,32], "f": 0, "t": 11, "d": [278,281], "a": 1 },
|
|
||||||
{ "px": [1344,160], "src": [32,32], "f": 0, "t": 11, "d": [278,282], "a": 1 },
|
|
||||||
{ "px": [1376,160], "src": [32,32], "f": 0, "t": 11, "d": [278,283], "a": 1 },
|
|
||||||
{ "px": [1408,160], "src": [32,32], "f": 0, "t": 11, "d": [278,284], "a": 1 },
|
|
||||||
{ "px": [1440,160], "src": [32,32], "f": 0, "t": 11, "d": [278,285], "a": 1 },
|
|
||||||
{ "px": [1472,160], "src": [32,32], "f": 0, "t": 11, "d": [278,286], "a": 1 },
|
|
||||||
{ "px": [1504,160], "src": [32,32], "f": 0, "t": 11, "d": [278,287], "a": 1 },
|
|
||||||
{ "px": [0,192], "src": [32,32], "f": 0, "t": 11, "d": [278,288], "a": 1 },
|
|
||||||
{ "px": [32,192], "src": [32,32], "f": 0, "t": 11, "d": [278,289], "a": 1 },
|
|
||||||
{ "px": [64,192], "src": [32,32], "f": 0, "t": 11, "d": [278,290], "a": 1 },
|
|
||||||
{ "px": [96,192], "src": [32,32], "f": 0, "t": 11, "d": [278,291], "a": 1 },
|
|
||||||
{ "px": [128,192], "src": [32,32], "f": 0, "t": 11, "d": [278,292], "a": 1 },
|
|
||||||
{ "px": [160,192], "src": [32,32], "f": 0, "t": 11, "d": [278,293], "a": 1 },
|
|
||||||
{ "px": [192,192], "src": [32,32], "f": 0, "t": 11, "d": [278,294], "a": 1 },
|
|
||||||
{ "px": [224,192], "src": [32,32], "f": 0, "t": 11, "d": [278,295], "a": 1 },
|
|
||||||
{ "px": [256,192], "src": [32,32], "f": 0, "t": 11, "d": [278,296], "a": 1 },
|
|
||||||
{ "px": [288,192], "src": [32,32], "f": 0, "t": 11, "d": [278,297], "a": 1 },
|
|
||||||
{ "px": [320,192], "src": [32,32], "f": 0, "t": 11, "d": [278,298], "a": 1 },
|
|
||||||
{ "px": [352,192], "src": [32,32], "f": 0, "t": 11, "d": [278,299], "a": 1 },
|
|
||||||
{ "px": [384,192], "src": [32,32], "f": 0, "t": 11, "d": [278,300], "a": 1 },
|
|
||||||
{ "px": [416,192], "src": [32,32], "f": 0, "t": 11, "d": [278,301], "a": 1 },
|
|
||||||
{ "px": [448,192], "src": [32,32], "f": 0, "t": 11, "d": [278,302], "a": 1 },
|
|
||||||
{ "px": [1120,192], "src": [32,32], "f": 0, "t": 11, "d": [278,323], "a": 1 },
|
|
||||||
{ "px": [1152,192], "src": [32,32], "f": 0, "t": 11, "d": [278,324], "a": 1 },
|
|
||||||
{ "px": [1184,192], "src": [32,32], "f": 0, "t": 11, "d": [278,325], "a": 1 },
|
|
||||||
{ "px": [1216,192], "src": [32,32], "f": 0, "t": 11, "d": [278,326], "a": 1 },
|
|
||||||
{ "px": [1248,192], "src": [32,32], "f": 0, "t": 11, "d": [278,327], "a": 1 },
|
|
||||||
{ "px": [1280,192], "src": [32,32], "f": 0, "t": 11, "d": [278,328], "a": 1 },
|
|
||||||
{ "px": [1312,192], "src": [32,32], "f": 0, "t": 11, "d": [278,329], "a": 1 },
|
|
||||||
{ "px": [1344,192], "src": [32,32], "f": 0, "t": 11, "d": [278,330], "a": 1 },
|
|
||||||
{ "px": [1376,192], "src": [32,32], "f": 0, "t": 11, "d": [278,331], "a": 1 },
|
|
||||||
{ "px": [1408,192], "src": [32,32], "f": 0, "t": 11, "d": [278,332], "a": 1 },
|
|
||||||
{ "px": [1440,192], "src": [32,32], "f": 0, "t": 11, "d": [278,333], "a": 1 },
|
|
||||||
{ "px": [1472,192], "src": [32,32], "f": 0, "t": 11, "d": [278,334], "a": 1 },
|
|
||||||
{ "px": [1504,192], "src": [32,32], "f": 0, "t": 11, "d": [278,335], "a": 1 },
|
|
||||||
{ "px": [0,224], "src": [32,32], "f": 0, "t": 11, "d": [278,336], "a": 1 },
|
|
||||||
{ "px": [32,224], "src": [32,32], "f": 0, "t": 11, "d": [278,337], "a": 1 },
|
|
||||||
{ "px": [64,224], "src": [32,32], "f": 0, "t": 11, "d": [278,338], "a": 1 },
|
|
||||||
{ "px": [96,224], "src": [32,32], "f": 0, "t": 11, "d": [278,339], "a": 1 },
|
|
||||||
{ "px": [128,224], "src": [32,32], "f": 0, "t": 11, "d": [278,340], "a": 1 },
|
|
||||||
{ "px": [160,224], "src": [32,32], "f": 0, "t": 11, "d": [278,341], "a": 1 },
|
|
||||||
{ "px": [192,224], "src": [32,32], "f": 0, "t": 11, "d": [278,342], "a": 1 },
|
|
||||||
{ "px": [224,224], "src": [32,32], "f": 0, "t": 11, "d": [278,343], "a": 1 },
|
|
||||||
{ "px": [256,224], "src": [32,32], "f": 0, "t": 11, "d": [278,344], "a": 1 },
|
|
||||||
{ "px": [288,224], "src": [32,32], "f": 0, "t": 11, "d": [278,345], "a": 1 },
|
|
||||||
{ "px": [320,224], "src": [32,32], "f": 0, "t": 11, "d": [278,346], "a": 1 },
|
|
||||||
{ "px": [352,224], "src": [32,32], "f": 0, "t": 11, "d": [278,347], "a": 1 },
|
|
||||||
{ "px": [384,224], "src": [32,32], "f": 0, "t": 11, "d": [278,348], "a": 1 },
|
|
||||||
{ "px": [416,224], "src": [32,32], "f": 0, "t": 11, "d": [278,349], "a": 1 },
|
|
||||||
{ "px": [1152,224], "src": [32,32], "f": 0, "t": 11, "d": [278,372], "a": 1 },
|
|
||||||
{ "px": [1184,224], "src": [32,32], "f": 0, "t": 11, "d": [278,373], "a": 1 },
|
|
||||||
{ "px": [1216,224], "src": [32,32], "f": 0, "t": 11, "d": [278,374], "a": 1 },
|
|
||||||
{ "px": [1248,224], "src": [32,32], "f": 0, "t": 11, "d": [278,375], "a": 1 },
|
|
||||||
{ "px": [1280,224], "src": [32,32], "f": 0, "t": 11, "d": [278,376], "a": 1 },
|
|
||||||
{ "px": [1312,224], "src": [32,32], "f": 0, "t": 11, "d": [278,377], "a": 1 },
|
|
||||||
{ "px": [1344,224], "src": [32,32], "f": 0, "t": 11, "d": [278,378], "a": 1 },
|
|
||||||
{ "px": [1376,224], "src": [32,32], "f": 0, "t": 11, "d": [278,379], "a": 1 },
|
|
||||||
{ "px": [1408,224], "src": [32,32], "f": 0, "t": 11, "d": [278,380], "a": 1 },
|
|
||||||
{ "px": [1440,224], "src": [32,32], "f": 0, "t": 11, "d": [278,381], "a": 1 },
|
|
||||||
{ "px": [1472,224], "src": [32,32], "f": 0, "t": 11, "d": [278,382], "a": 1 },
|
|
||||||
{ "px": [1504,224], "src": [32,32], "f": 0, "t": 11, "d": [278,383], "a": 1 },
|
|
||||||
{ "px": [0,256], "src": [32,32], "f": 0, "t": 11, "d": [278,384], "a": 1 },
|
|
||||||
{ "px": [32,256], "src": [32,32], "f": 0, "t": 11, "d": [278,385], "a": 1 },
|
|
||||||
{ "px": [64,256], "src": [32,32], "f": 0, "t": 11, "d": [278,386], "a": 1 },
|
|
||||||
{ "px": [96,256], "src": [32,32], "f": 0, "t": 11, "d": [278,387], "a": 1 },
|
|
||||||
{ "px": [224,256], "src": [32,32], "f": 0, "t": 11, "d": [278,391], "a": 1 },
|
|
||||||
{ "px": [256,256], "src": [32,32], "f": 0, "t": 11, "d": [278,392], "a": 1 },
|
|
||||||
{ "px": [288,256], "src": [32,32], "f": 0, "t": 11, "d": [278,393], "a": 1 },
|
|
||||||
{ "px": [320,256], "src": [32,32], "f": 0, "t": 11, "d": [278,394], "a": 1 },
|
|
||||||
{ "px": [1216,256], "src": [32,32], "f": 0, "t": 11, "d": [278,422], "a": 1 },
|
|
||||||
{ "px": [1248,256], "src": [32,32], "f": 0, "t": 11, "d": [278,423], "a": 1 },
|
|
||||||
{ "px": [1280,256], "src": [32,32], "f": 0, "t": 11, "d": [278,424], "a": 1 },
|
|
||||||
{ "px": [1312,256], "src": [32,32], "f": 0, "t": 11, "d": [278,425], "a": 1 },
|
|
||||||
{ "px": [1344,256], "src": [32,32], "f": 0, "t": 11, "d": [278,426], "a": 1 },
|
|
||||||
{ "px": [1376,256], "src": [32,32], "f": 0, "t": 11, "d": [278,427], "a": 1 },
|
|
||||||
{ "px": [1408,256], "src": [32,32], "f": 0, "t": 11, "d": [278,428], "a": 1 },
|
|
||||||
{ "px": [1440,256], "src": [32,32], "f": 0, "t": 11, "d": [278,429], "a": 1 },
|
|
||||||
{ "px": [1472,256], "src": [32,32], "f": 0, "t": 11, "d": [278,430], "a": 1 },
|
|
||||||
{ "px": [1504,256], "src": [32,32], "f": 0, "t": 11, "d": [278,431], "a": 1 },
|
|
||||||
{ "px": [0,288], "src": [32,32], "f": 0, "t": 11, "d": [278,432], "a": 1 },
|
|
||||||
{ "px": [32,288], "src": [32,32], "f": 0, "t": 11, "d": [278,433], "a": 1 },
|
|
||||||
{ "px": [64,288], "src": [32,32], "f": 0, "t": 11, "d": [278,434], "a": 1 },
|
|
||||||
{ "px": [224,288], "src": [32,32], "f": 0, "t": 11, "d": [278,439], "a": 1 },
|
|
||||||
{ "px": [256,288], "src": [32,32], "f": 0, "t": 11, "d": [278,440], "a": 1 },
|
|
||||||
{ "px": [1280,288], "src": [32,32], "f": 0, "t": 11, "d": [278,472], "a": 1 },
|
|
||||||
{ "px": [1312,288], "src": [32,32], "f": 0, "t": 11, "d": [278,473], "a": 1 },
|
|
||||||
{ "px": [1344,288], "src": [32,32], "f": 0, "t": 11, "d": [278,474], "a": 1 },
|
|
||||||
{ "px": [1376,288], "src": [32,32], "f": 0, "t": 11, "d": [278,475], "a": 1 },
|
|
||||||
{ "px": [1408,288], "src": [32,32], "f": 0, "t": 11, "d": [278,476], "a": 1 },
|
|
||||||
{ "px": [1440,288], "src": [32,32], "f": 0, "t": 11, "d": [278,477], "a": 1 },
|
|
||||||
{ "px": [1472,288], "src": [32,32], "f": 0, "t": 11, "d": [278,478], "a": 1 },
|
|
||||||
{ "px": [1504,288], "src": [32,32], "f": 0, "t": 11, "d": [278,479], "a": 1 },
|
|
||||||
{ "px": [0,320], "src": [32,32], "f": 0, "t": 11, "d": [278,480], "a": 1 },
|
|
||||||
{ "px": [32,320], "src": [32,32], "f": 0, "t": 11, "d": [278,481], "a": 1 },
|
|
||||||
{ "px": [64,320], "src": [32,32], "f": 0, "t": 11, "d": [278,482], "a": 1 },
|
|
||||||
{ "px": [1344,320], "src": [32,32], "f": 0, "t": 11, "d": [278,522], "a": 1 },
|
|
||||||
{ "px": [1376,320], "src": [32,32], "f": 0, "t": 11, "d": [278,523], "a": 1 },
|
|
||||||
{ "px": [1408,320], "src": [32,32], "f": 0, "t": 11, "d": [278,524], "a": 1 },
|
|
||||||
{ "px": [1440,320], "src": [32,32], "f": 0, "t": 11, "d": [278,525], "a": 1 },
|
|
||||||
{ "px": [1472,320], "src": [32,32], "f": 0, "t": 11, "d": [278,526], "a": 1 },
|
|
||||||
{ "px": [1504,320], "src": [32,32], "f": 0, "t": 11, "d": [278,527], "a": 1 },
|
|
||||||
{ "px": [832,640], "src": [32,32], "f": 0, "t": 11, "d": [278,986], "a": 1 },
|
|
||||||
{ "px": [864,640], "src": [32,32], "f": 0, "t": 11, "d": [278,987], "a": 1 },
|
|
||||||
{ "px": [896,640], "src": [32,32], "f": 0, "t": 11, "d": [278,988], "a": 1 },
|
|
||||||
{ "px": [928,640], "src": [32,32], "f": 0, "t": 11, "d": [278,989], "a": 1 },
|
|
||||||
{ "px": [960,640], "src": [32,32], "f": 0, "t": 11, "d": [278,990], "a": 1 },
|
|
||||||
{ "px": [992,640], "src": [32,32], "f": 0, "t": 11, "d": [278,991], "a": 1 },
|
|
||||||
{ "px": [1024,640], "src": [32,32], "f": 0, "t": 11, "d": [278,992], "a": 1 },
|
|
||||||
{ "px": [1056,640], "src": [32,32], "f": 0, "t": 11, "d": [278,993], "a": 1 },
|
|
||||||
{ "px": [1088,640], "src": [32,32], "f": 0, "t": 11, "d": [278,994], "a": 1 },
|
|
||||||
{ "px": [1120,640], "src": [32,32], "f": 0, "t": 11, "d": [278,995], "a": 1 },
|
|
||||||
{ "px": [1152,640], "src": [32,32], "f": 0, "t": 11, "d": [278,996], "a": 1 },
|
|
||||||
{ "px": [1184,640], "src": [32,32], "f": 0, "t": 11, "d": [278,997], "a": 1 },
|
|
||||||
{ "px": [1216,640], "src": [32,32], "f": 0, "t": 11, "d": [278,998], "a": 1 },
|
|
||||||
{ "px": [0,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1008], "a": 1 },
|
|
||||||
{ "px": [32,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1009], "a": 1 },
|
|
||||||
{ "px": [64,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1010], "a": 1 },
|
|
||||||
{ "px": [96,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1011], "a": 1 },
|
|
||||||
{ "px": [128,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1012], "a": 1 },
|
|
||||||
{ "px": [160,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1013], "a": 1 },
|
|
||||||
{ "px": [192,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1014], "a": 1 },
|
|
||||||
{ "px": [224,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1015], "a": 1 },
|
|
||||||
{ "px": [256,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1016], "a": 1 },
|
|
||||||
{ "px": [288,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1017], "a": 1 },
|
|
||||||
{ "px": [320,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1018], "a": 1 },
|
|
||||||
{ "px": [352,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1019], "a": 1 },
|
|
||||||
{ "px": [384,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1020], "a": 1 },
|
|
||||||
{ "px": [416,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1021], "a": 1 },
|
|
||||||
{ "px": [736,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1031], "a": 1 },
|
|
||||||
{ "px": [768,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1032], "a": 1 },
|
|
||||||
{ "px": [800,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1033], "a": 1 },
|
|
||||||
{ "px": [832,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1034], "a": 1 },
|
|
||||||
{ "px": [864,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1035], "a": 1 },
|
|
||||||
{ "px": [896,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1036], "a": 1 },
|
|
||||||
{ "px": [928,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1037], "a": 1 },
|
|
||||||
{ "px": [960,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1038], "a": 1 },
|
|
||||||
{ "px": [992,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1039], "a": 1 },
|
|
||||||
{ "px": [1024,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1040], "a": 1 },
|
|
||||||
{ "px": [1056,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1041], "a": 1 },
|
|
||||||
{ "px": [1088,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1042], "a": 1 },
|
|
||||||
{ "px": [1120,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1043], "a": 1 },
|
|
||||||
{ "px": [1152,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1044], "a": 1 },
|
|
||||||
{ "px": [1184,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1045], "a": 1 },
|
|
||||||
{ "px": [1216,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1046], "a": 1 },
|
|
||||||
{ "px": [1248,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1047], "a": 1 },
|
|
||||||
{ "px": [1280,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1048], "a": 1 },
|
|
||||||
{ "px": [1312,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1049], "a": 1 },
|
|
||||||
{ "px": [1344,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1050], "a": 1 },
|
|
||||||
{ "px": [1376,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1051], "a": 1 },
|
|
||||||
{ "px": [1408,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1052], "a": 1 },
|
|
||||||
{ "px": [1440,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1053], "a": 1 },
|
|
||||||
{ "px": [1472,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1054], "a": 1 },
|
|
||||||
{ "px": [1504,672], "src": [32,32], "f": 0, "t": 11, "d": [278,1055], "a": 1 },
|
|
||||||
{ "px": [0,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1056], "a": 1 },
|
|
||||||
{ "px": [32,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1057], "a": 1 },
|
|
||||||
{ "px": [64,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1058], "a": 1 },
|
|
||||||
{ "px": [96,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1059], "a": 1 },
|
|
||||||
{ "px": [128,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1060], "a": 1 },
|
|
||||||
{ "px": [160,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1061], "a": 1 },
|
|
||||||
{ "px": [192,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1062], "a": 1 },
|
|
||||||
{ "px": [224,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1063], "a": 1 },
|
|
||||||
{ "px": [256,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1064], "a": 1 },
|
|
||||||
{ "px": [288,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1065], "a": 1 },
|
|
||||||
{ "px": [320,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1066], "a": 1 },
|
|
||||||
{ "px": [352,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1067], "a": 1 },
|
|
||||||
{ "px": [384,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1068], "a": 1 },
|
|
||||||
{ "px": [416,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1069], "a": 1 },
|
|
||||||
{ "px": [576,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1074], "a": 1 },
|
|
||||||
{ "px": [608,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1075], "a": 1 },
|
|
||||||
{ "px": [640,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1076], "a": 1 },
|
|
||||||
{ "px": [672,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1077], "a": 1 },
|
|
||||||
{ "px": [704,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1078], "a": 1 },
|
|
||||||
{ "px": [736,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1079], "a": 1 },
|
|
||||||
{ "px": [768,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1080], "a": 1 },
|
|
||||||
{ "px": [800,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1081], "a": 1 },
|
|
||||||
{ "px": [832,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1082], "a": 1 },
|
|
||||||
{ "px": [864,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1083], "a": 1 },
|
|
||||||
{ "px": [896,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1084], "a": 1 },
|
|
||||||
{ "px": [928,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1085], "a": 1 },
|
|
||||||
{ "px": [960,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1086], "a": 1 },
|
|
||||||
{ "px": [992,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1087], "a": 1 },
|
|
||||||
{ "px": [1024,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1088], "a": 1 },
|
|
||||||
{ "px": [1056,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1089], "a": 1 },
|
|
||||||
{ "px": [1088,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1090], "a": 1 },
|
|
||||||
{ "px": [1120,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1091], "a": 1 },
|
|
||||||
{ "px": [1152,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1092], "a": 1 },
|
|
||||||
{ "px": [1184,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1093], "a": 1 },
|
|
||||||
{ "px": [1216,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1094], "a": 1 },
|
|
||||||
{ "px": [1248,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1095], "a": 1 },
|
|
||||||
{ "px": [1280,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1096], "a": 1 },
|
|
||||||
{ "px": [1312,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1097], "a": 1 },
|
|
||||||
{ "px": [1344,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1098], "a": 1 },
|
|
||||||
{ "px": [1376,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1099], "a": 1 },
|
|
||||||
{ "px": [1408,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1100], "a": 1 },
|
|
||||||
{ "px": [1440,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1101], "a": 1 },
|
|
||||||
{ "px": [1472,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1102], "a": 1 },
|
|
||||||
{ "px": [1504,704], "src": [32,32], "f": 0, "t": 11, "d": [278,1103], "a": 1 },
|
|
||||||
{ "px": [0,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1104], "a": 1 },
|
|
||||||
{ "px": [32,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1105], "a": 1 },
|
|
||||||
{ "px": [64,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1106], "a": 1 },
|
|
||||||
{ "px": [96,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1107], "a": 1 },
|
|
||||||
{ "px": [128,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1108], "a": 1 },
|
|
||||||
{ "px": [160,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1109], "a": 1 },
|
|
||||||
{ "px": [192,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1110], "a": 1 },
|
|
||||||
{ "px": [224,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1111], "a": 1 },
|
|
||||||
{ "px": [256,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1112], "a": 1 },
|
|
||||||
{ "px": [288,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1113], "a": 1 },
|
|
||||||
{ "px": [320,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1114], "a": 1 },
|
|
||||||
{ "px": [352,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1115], "a": 1 },
|
|
||||||
{ "px": [384,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1116], "a": 1 },
|
|
||||||
{ "px": [416,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1117], "a": 1 },
|
|
||||||
{ "px": [448,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1118], "a": 1 },
|
|
||||||
{ "px": [480,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1119], "a": 1 },
|
|
||||||
{ "px": [512,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1120], "a": 1 },
|
|
||||||
{ "px": [544,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1121], "a": 1 },
|
|
||||||
{ "px": [576,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1122], "a": 1 },
|
|
||||||
{ "px": [608,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1123], "a": 1 },
|
|
||||||
{ "px": [640,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1124], "a": 1 },
|
|
||||||
{ "px": [672,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1125], "a": 1 },
|
|
||||||
{ "px": [704,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1126], "a": 1 },
|
|
||||||
{ "px": [736,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1127], "a": 1 },
|
|
||||||
{ "px": [768,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1128], "a": 1 },
|
|
||||||
{ "px": [800,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1129], "a": 1 },
|
|
||||||
{ "px": [832,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1130], "a": 1 },
|
|
||||||
{ "px": [864,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1131], "a": 1 },
|
|
||||||
{ "px": [896,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1132], "a": 1 },
|
|
||||||
{ "px": [928,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1133], "a": 1 },
|
|
||||||
{ "px": [960,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1134], "a": 1 },
|
|
||||||
{ "px": [992,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1135], "a": 1 },
|
|
||||||
{ "px": [1024,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1136], "a": 1 },
|
|
||||||
{ "px": [1056,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1137], "a": 1 },
|
|
||||||
{ "px": [1088,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1138], "a": 1 },
|
|
||||||
{ "px": [1120,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1139], "a": 1 },
|
|
||||||
{ "px": [1152,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1140], "a": 1 },
|
|
||||||
{ "px": [1184,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1141], "a": 1 },
|
|
||||||
{ "px": [1216,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1142], "a": 1 },
|
|
||||||
{ "px": [1248,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1143], "a": 1 },
|
|
||||||
{ "px": [1280,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1144], "a": 1 },
|
|
||||||
{ "px": [1312,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1145], "a": 1 },
|
|
||||||
{ "px": [1344,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1146], "a": 1 },
|
|
||||||
{ "px": [1376,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1147], "a": 1 },
|
|
||||||
{ "px": [1408,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1148], "a": 1 },
|
|
||||||
{ "px": [1440,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1149], "a": 1 },
|
|
||||||
{ "px": [1472,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1150], "a": 1 },
|
|
||||||
{ "px": [1504,736], "src": [32,32], "f": 0, "t": 11, "d": [278,1151], "a": 1 },
|
|
||||||
{ "px": [1056,96], "src": [160,32], "f": 0, "t": 15, "d": [277,177], "a": 1 },
|
|
||||||
{ "px": [1088,128], "src": [160,32], "f": 0, "t": 15, "d": [277,226], "a": 1 },
|
|
||||||
{ "px": [1120,224], "src": [160,32], "f": 0, "t": 15, "d": [277,371], "a": 1 },
|
|
||||||
{ "px": [192,256], "src": [160,32], "f": 0, "t": 15, "d": [277,390], "a": 1 },
|
|
||||||
{ "px": [1184,256], "src": [160,32], "f": 0, "t": 15, "d": [277,421], "a": 1 },
|
|
||||||
{ "px": [1248,288], "src": [160,32], "f": 0, "t": 15, "d": [277,471], "a": 1 },
|
|
||||||
{ "px": [1312,320], "src": [160,32], "f": 0, "t": 15, "d": [277,521], "a": 1 },
|
|
||||||
{ "px": [32,352], "src": [160,32], "f": 0, "t": 15, "d": [277,529], "a": 1 },
|
|
||||||
{ "px": [480,160], "src": [128,32], "f": 0, "t": 14, "d": [276,255], "a": 1 },
|
|
||||||
{ "px": [448,224], "src": [128,32], "f": 0, "t": 14, "d": [276,350], "a": 1 },
|
|
||||||
{ "px": [128,256], "src": [128,32], "f": 0, "t": 14, "d": [276,388], "a": 1 },
|
|
||||||
{ "px": [352,256], "src": [128,32], "f": 0, "t": 14, "d": [276,395], "a": 1 },
|
|
||||||
{ "px": [96,288], "src": [128,32], "f": 0, "t": 14, "d": [276,435], "a": 1 },
|
|
||||||
{ "px": [288,288], "src": [128,32], "f": 0, "t": 14, "d": [276,441], "a": 1 },
|
|
||||||
{ "px": [64,352], "src": [128,32], "f": 0, "t": 14, "d": [276,530], "a": 1 },
|
|
||||||
{ "px": [480,64], "src": [128,64], "f": 0, "t": 24, "d": [275,111], "a": 1 },
|
|
||||||
{ "px": [1248,640], "src": [128,64], "f": 0, "t": 24, "d": [275,999], "a": 1 },
|
|
||||||
{ "px": [448,704], "src": [128,64], "f": 0, "t": 24, "d": [275,1070], "a": 1 },
|
|
||||||
{ "px": [800,640], "src": [160,64], "f": 0, "t": 25, "d": [274,985], "a": 1 },
|
|
||||||
{ "px": [704,672], "src": [160,64], "f": 0, "t": 25, "d": [274,1030], "a": 1 },
|
|
||||||
{ "px": [544,704], "src": [160,64], "f": 0, "t": 25, "d": [274,1073], "a": 1 },
|
|
||||||
{ "px": [1024,0], "src": [0,32], "f": 0, "t": 10, "d": [273,32], "a": 1 },
|
|
||||||
{ "px": [1024,32], "src": [0,32], "f": 0, "t": 10, "d": [273,80], "a": 1 },
|
|
||||||
{ "px": [1024,64], "src": [0,32], "f": 0, "t": 10, "d": [273,128], "a": 1 },
|
|
||||||
{ "px": [1088,160], "src": [0,32], "f": 0, "t": 10, "d": [273,274], "a": 1 },
|
|
||||||
{ "px": [1088,192], "src": [0,32], "f": 0, "t": 10, "d": [273,322], "a": 1 },
|
|
||||||
{ "px": [192,288], "src": [0,32], "f": 0, "t": 10, "d": [273,438], "a": 1 },
|
|
||||||
{ "px": [160,256], "src": [32,64], "f": 0, "t": 21, "d": [272,389], "a": 1 },
|
|
||||||
{ "px": [384,256], "src": [32,64], "f": 0, "t": 21, "d": [272,396], "a": 1 },
|
|
||||||
{ "px": [416,256], "src": [32,64], "f": 0, "t": 21, "d": [272,397], "a": 1 },
|
|
||||||
{ "px": [1152,256], "src": [32,64], "f": 0, "t": 21, "d": [272,420], "a": 1 },
|
|
||||||
{ "px": [320,288], "src": [32,64], "f": 0, "t": 21, "d": [272,442], "a": 1 },
|
|
||||||
{ "px": [1216,288], "src": [32,64], "f": 0, "t": 21, "d": [272,470], "a": 1 },
|
|
||||||
{ "px": [224,320], "src": [32,64], "f": 0, "t": 21, "d": [272,487], "a": 1 },
|
|
||||||
{ "px": [256,320], "src": [32,64], "f": 0, "t": 21, "d": [272,488], "a": 1 },
|
|
||||||
{ "px": [1280,320], "src": [32,64], "f": 0, "t": 21, "d": [272,520], "a": 1 },
|
|
||||||
{ "px": [0,352], "src": [32,64], "f": 0, "t": 21, "d": [272,528], "a": 1 },
|
|
||||||
{ "px": [1344,352], "src": [32,64], "f": 0, "t": 21, "d": [272,570], "a": 1 },
|
|
||||||
{ "px": [1376,352], "src": [32,64], "f": 0, "t": 21, "d": [272,571], "a": 1 },
|
|
||||||
{ "px": [1408,352], "src": [32,64], "f": 0, "t": 21, "d": [272,572], "a": 1 },
|
|
||||||
{ "px": [1440,352], "src": [32,64], "f": 0, "t": 21, "d": [272,573], "a": 1 },
|
|
||||||
{ "px": [1472,352], "src": [32,64], "f": 0, "t": 21, "d": [272,574], "a": 1 },
|
|
||||||
{ "px": [1504,352], "src": [32,64], "f": 0, "t": 21, "d": [272,575], "a": 1 },
|
|
||||||
{ "px": [480,0], "src": [64,32], "f": 0, "t": 12, "d": [271,15], "a": 1 },
|
|
||||||
{ "px": [480,32], "src": [64,32], "f": 0, "t": 12, "d": [271,63], "a": 1 },
|
|
||||||
{ "px": [512,96], "src": [64,32], "f": 0, "t": 12, "d": [271,160], "a": 1 },
|
|
||||||
{ "px": [512,128], "src": [64,32], "f": 0, "t": 12, "d": [271,208], "a": 1 },
|
|
||||||
{ "px": [480,192], "src": [64,32], "f": 0, "t": 12, "d": [271,303], "a": 1 },
|
|
||||||
{ "px": [96,320], "src": [64,32], "f": 0, "t": 12, "d": [271,483], "a": 1 },
|
|
||||||
{ "px": [64,384], "src": [64,32], "f": 0, "t": 12, "d": [271,578], "a": 1 },
|
|
||||||
{ "px": [448,672], "src": [64,32], "f": 0, "t": 12, "d": [271,1022], "a": 1 },
|
|
||||||
{ "px": [832,608], "src": [32,0], "f": 0, "t": 1, "d": [270,938], "a": 1 },
|
|
||||||
{ "px": [864,608], "src": [32,0], "f": 0, "t": 1, "d": [270,939], "a": 1 },
|
|
||||||
{ "px": [896,608], "src": [32,0], "f": 0, "t": 1, "d": [270,940], "a": 1 },
|
|
||||||
{ "px": [928,608], "src": [32,0], "f": 0, "t": 1, "d": [270,941], "a": 1 },
|
|
||||||
{ "px": [960,608], "src": [32,0], "f": 0, "t": 1, "d": [270,942], "a": 1 },
|
|
||||||
{ "px": [992,608], "src": [32,0], "f": 0, "t": 1, "d": [270,943], "a": 1 },
|
|
||||||
{ "px": [1024,608], "src": [32,0], "f": 0, "t": 1, "d": [270,944], "a": 1 },
|
|
||||||
{ "px": [1056,608], "src": [32,0], "f": 0, "t": 1, "d": [270,945], "a": 1 },
|
|
||||||
{ "px": [1088,608], "src": [32,0], "f": 0, "t": 1, "d": [270,946], "a": 1 },
|
|
||||||
{ "px": [1120,608], "src": [32,0], "f": 0, "t": 1, "d": [270,947], "a": 1 },
|
|
||||||
{ "px": [1152,608], "src": [32,0], "f": 0, "t": 1, "d": [270,948], "a": 1 },
|
|
||||||
{ "px": [1184,608], "src": [32,0], "f": 0, "t": 1, "d": [270,949], "a": 1 },
|
|
||||||
{ "px": [1216,608], "src": [32,0], "f": 0, "t": 1, "d": [270,950], "a": 1 },
|
|
||||||
{ "px": [0,640], "src": [32,0], "f": 0, "t": 1, "d": [270,960], "a": 1 },
|
|
||||||
{ "px": [32,640], "src": [32,0], "f": 0, "t": 1, "d": [270,961], "a": 1 },
|
|
||||||
{ "px": [64,640], "src": [32,0], "f": 0, "t": 1, "d": [270,962], "a": 1 },
|
|
||||||
{ "px": [96,640], "src": [32,0], "f": 0, "t": 1, "d": [270,963], "a": 1 },
|
|
||||||
{ "px": [128,640], "src": [32,0], "f": 0, "t": 1, "d": [270,964], "a": 1 },
|
|
||||||
{ "px": [160,640], "src": [32,0], "f": 0, "t": 1, "d": [270,965], "a": 1 },
|
|
||||||
{ "px": [192,640], "src": [32,0], "f": 0, "t": 1, "d": [270,966], "a": 1 },
|
|
||||||
{ "px": [224,640], "src": [32,0], "f": 0, "t": 1, "d": [270,967], "a": 1 },
|
|
||||||
{ "px": [256,640], "src": [32,0], "f": 0, "t": 1, "d": [270,968], "a": 1 },
|
|
||||||
{ "px": [288,640], "src": [32,0], "f": 0, "t": 1, "d": [270,969], "a": 1 },
|
|
||||||
{ "px": [320,640], "src": [32,0], "f": 0, "t": 1, "d": [270,970], "a": 1 },
|
|
||||||
{ "px": [352,640], "src": [32,0], "f": 0, "t": 1, "d": [270,971], "a": 1 },
|
|
||||||
{ "px": [384,640], "src": [32,0], "f": 0, "t": 1, "d": [270,972], "a": 1 },
|
|
||||||
{ "px": [416,640], "src": [32,0], "f": 0, "t": 1, "d": [270,973], "a": 1 },
|
|
||||||
{ "px": [736,640], "src": [32,0], "f": 0, "t": 1, "d": [270,983], "a": 1 },
|
|
||||||
{ "px": [768,640], "src": [32,0], "f": 0, "t": 1, "d": [270,984], "a": 1 },
|
|
||||||
{ "px": [1280,640], "src": [32,0], "f": 0, "t": 1, "d": [270,1000], "a": 1 },
|
|
||||||
{ "px": [1312,640], "src": [32,0], "f": 0, "t": 1, "d": [270,1001], "a": 1 },
|
|
||||||
{ "px": [1344,640], "src": [32,0], "f": 0, "t": 1, "d": [270,1002], "a": 1 },
|
|
||||||
{ "px": [1376,640], "src": [32,0], "f": 0, "t": 1, "d": [270,1003], "a": 1 },
|
|
||||||
{ "px": [1408,640], "src": [32,0], "f": 0, "t": 1, "d": [270,1004], "a": 1 },
|
|
||||||
{ "px": [1440,640], "src": [32,0], "f": 0, "t": 1, "d": [270,1005], "a": 1 },
|
|
||||||
{ "px": [1472,640], "src": [32,0], "f": 0, "t": 1, "d": [270,1006], "a": 1 },
|
|
||||||
{ "px": [1504,640], "src": [32,0], "f": 0, "t": 1, "d": [270,1007], "a": 1 },
|
|
||||||
{ "px": [576,672], "src": [32,0], "f": 0, "t": 1, "d": [270,1026], "a": 1 },
|
|
||||||
{ "px": [608,672], "src": [32,0], "f": 0, "t": 1, "d": [270,1027], "a": 1 },
|
|
||||||
{ "px": [640,672], "src": [32,0], "f": 0, "t": 1, "d": [270,1028], "a": 1 },
|
|
||||||
{ "px": [672,672], "src": [32,0], "f": 0, "t": 1, "d": [270,1029], "a": 1 },
|
|
||||||
{ "px": [480,704], "src": [32,0], "f": 0, "t": 1, "d": [270,1071], "a": 1 },
|
|
||||||
{ "px": [512,704], "src": [32,0], "f": 0, "t": 1, "d": [270,1072], "a": 1 },
|
|
||||||
{ "px": [1024,96], "src": [0,64], "f": 0, "t": 20, "d": [269,176], "a": 1 },
|
|
||||||
{ "px": [1056,128], "src": [0,64], "f": 0, "t": 20, "d": [269,225], "a": 1 },
|
|
||||||
{ "px": [1088,224], "src": [0,64], "f": 0, "t": 20, "d": [269,370], "a": 1 },
|
|
||||||
{ "px": [1120,256], "src": [0,64], "f": 0, "t": 20, "d": [269,419], "a": 1 },
|
|
||||||
{ "px": [1184,288], "src": [0,64], "f": 0, "t": 20, "d": [269,469], "a": 1 },
|
|
||||||
{ "px": [192,320], "src": [0,64], "f": 0, "t": 20, "d": [269,486], "a": 1 },
|
|
||||||
{ "px": [1248,320], "src": [0,64], "f": 0, "t": 20, "d": [269,519], "a": 1 },
|
|
||||||
{ "px": [1312,352], "src": [0,64], "f": 0, "t": 20, "d": [269,569], "a": 1 },
|
|
||||||
{ "px": [32,384], "src": [0,64], "f": 0, "t": 20, "d": [269,577], "a": 1 },
|
|
||||||
{ "px": [512,160], "src": [64,64], "f": 0, "t": 22, "d": [268,256], "a": 1 },
|
|
||||||
{ "px": [480,224], "src": [64,64], "f": 0, "t": 22, "d": [268,351], "a": 1 },
|
|
||||||
{ "px": [448,256], "src": [64,64], "f": 0, "t": 22, "d": [268,398], "a": 1 },
|
|
||||||
{ "px": [128,288], "src": [64,64], "f": 0, "t": 22, "d": [268,436], "a": 1 },
|
|
||||||
{ "px": [352,288], "src": [64,64], "f": 0, "t": 22, "d": [268,443], "a": 1 },
|
|
||||||
{ "px": [288,320], "src": [64,64], "f": 0, "t": 22, "d": [268,489], "a": 1 },
|
|
||||||
{ "px": [96,352], "src": [64,64], "f": 0, "t": 22, "d": [268,531], "a": 1 },
|
|
||||||
{ "px": [512,64], "src": [64,0], "f": 0, "t": 2, "d": [267,112], "a": 1 },
|
|
||||||
{ "px": [1248,608], "src": [64,0], "f": 0, "t": 2, "d": [267,951], "a": 1 },
|
|
||||||
{ "px": [448,640], "src": [64,0], "f": 0, "t": 2, "d": [267,974], "a": 1 },
|
|
||||||
{ "px": [800,608], "src": [0,0], "f": 0, "t": 0, "d": [266,937], "a": 1 },
|
|
||||||
{ "px": [704,640], "src": [0,0], "f": 0, "t": 0, "d": [266,982], "a": 1 },
|
|
||||||
{ "px": [544,672], "src": [0,0], "f": 0, "t": 0, "d": [266,1025], "a": 1 },
|
|
||||||
{ "px": [64,416], "src": [96,64], "f": 0, "t": 23, "d": [264,626], "a": 1 },
|
|
||||||
{ "px": [832,576], "src": [32,128], "f": 0, "t": 41, "d": [280,890], "a": 1 },
|
|
||||||
{ "px": [864,576], "src": [32,128], "f": 0, "t": 41, "d": [280,891], "a": 1 },
|
|
||||||
{ "px": [896,576], "src": [64,160], "f": 0, "t": 52, "d": [280,892], "a": 1 },
|
|
||||||
{ "px": [928,576], "src": [96,160], "f": 0, "t": 53, "d": [280,893], "a": 1 },
|
|
||||||
{ "px": [960,576], "src": [0,160], "f": 0, "t": 50, "d": [280,894], "a": 1 },
|
|
||||||
{ "px": [992,576], "src": [0,160], "f": 0, "t": 50, "d": [280,895], "a": 1 },
|
|
||||||
{ "px": [1024,576], "src": [32,160], "f": 0, "t": 51, "d": [280,896], "a": 1 },
|
|
||||||
{ "px": [1056,576], "src": [64,128], "f": 0, "t": 42, "d": [280,897], "a": 1 },
|
|
||||||
{ "px": [1088,576], "src": [32,128], "f": 0, "t": 41, "d": [280,898], "a": 1 },
|
|
||||||
{ "px": [1120,576], "src": [64,128], "f": 0, "t": 42, "d": [280,899], "a": 1 },
|
|
||||||
{ "px": [1152,576], "src": [32,160], "f": 0, "t": 51, "d": [280,900], "a": 1 },
|
|
||||||
{ "px": [1184,576], "src": [0,160], "f": 0, "t": 50, "d": [280,901], "a": 1 },
|
|
||||||
{ "px": [1216,576], "src": [64,128], "f": 0, "t": 42, "d": [280,902], "a": 1 },
|
|
||||||
{ "px": [32,608], "src": [96,128], "f": 0, "t": 43, "d": [280,913], "a": 1 },
|
|
||||||
{ "px": [64,608], "src": [32,160], "f": 0, "t": 51, "d": [280,914], "a": 1 },
|
|
||||||
{ "px": [96,608], "src": [64,128], "f": 0, "t": 42, "d": [280,915], "a": 1 },
|
|
||||||
{ "px": [128,608], "src": [0,160], "f": 0, "t": 50, "d": [280,916], "a": 1 },
|
|
||||||
{ "px": [160,608], "src": [0,128], "f": 0, "t": 40, "d": [280,917], "a": 1 },
|
|
||||||
{ "px": [192,608], "src": [64,160], "f": 0, "t": 52, "d": [280,918], "a": 1 },
|
|
||||||
{ "px": [224,608], "src": [0,128], "f": 0, "t": 40, "d": [280,919], "a": 1 },
|
|
||||||
{ "px": [256,608], "src": [32,128], "f": 0, "t": 41, "d": [280,920], "a": 1 },
|
|
||||||
{ "px": [288,608], "src": [0,128], "f": 0, "t": 40, "d": [280,921], "a": 1 },
|
|
||||||
{ "px": [320,608], "src": [96,160], "f": 0, "t": 53, "d": [280,922], "a": 1 },
|
|
||||||
{ "px": [352,608], "src": [96,128], "f": 0, "t": 43, "d": [280,923], "a": 1 },
|
|
||||||
{ "px": [384,608], "src": [96,128], "f": 0, "t": 43, "d": [280,924], "a": 1 },
|
|
||||||
{ "px": [416,608], "src": [64,160], "f": 0, "t": 52, "d": [280,925], "a": 1 },
|
|
||||||
{ "px": [736,608], "src": [96,160], "f": 0, "t": 53, "d": [280,935], "a": 1 },
|
|
||||||
{ "px": [768,608], "src": [32,160], "f": 0, "t": 51, "d": [280,936], "a": 1 },
|
|
||||||
{ "px": [1280,608], "src": [64,160], "f": 0, "t": 52, "d": [280,952], "a": 1 },
|
|
||||||
{ "px": [1312,608], "src": [96,128], "f": 0, "t": 43, "d": [280,953], "a": 1 },
|
|
||||||
{ "px": [1344,608], "src": [64,128], "f": 0, "t": 42, "d": [280,954], "a": 1 },
|
|
||||||
{ "px": [1376,608], "src": [96,128], "f": 0, "t": 43, "d": [280,955], "a": 1 },
|
|
||||||
{ "px": [1408,608], "src": [0,128], "f": 0, "t": 40, "d": [280,956], "a": 1 },
|
|
||||||
{ "px": [1440,608], "src": [96,128], "f": 0, "t": 43, "d": [280,957], "a": 1 },
|
|
||||||
{ "px": [1472,608], "src": [64,128], "f": 0, "t": 42, "d": [280,958], "a": 1 },
|
|
||||||
{ "px": [576,640], "src": [0,160], "f": 0, "t": 50, "d": [280,978], "a": 1 },
|
|
||||||
{ "px": [608,640], "src": [32,160], "f": 0, "t": 51, "d": [280,979], "a": 1 },
|
|
||||||
{ "px": [640,640], "src": [96,128], "f": 0, "t": 43, "d": [280,980], "a": 1 },
|
|
||||||
{ "px": [672,640], "src": [32,128], "f": 0, "t": 41, "d": [280,981], "a": 1 },
|
|
||||||
{ "px": [480,672], "src": [96,160], "f": 0, "t": 53, "d": [280,1023], "a": 1 },
|
|
||||||
{ "px": [512,672], "src": [32,128], "f": 0, "t": 41, "d": [280,1024], "a": 1 }
|
|
||||||
],
|
|
||||||
"seed": 8337045,
|
"seed": 8337045,
|
||||||
"overrideTilesetUid": null,
|
"overrideTilesetUid": null,
|
||||||
"gridTiles": [],
|
"gridTiles": [],
|
|
@ -8,7 +8,7 @@
|
||||||
"appVersion": "1.4.1",
|
"appVersion": "1.4.1",
|
||||||
"url": "https://ldtk.io"
|
"url": "https://ldtk.io"
|
||||||
},
|
},
|
||||||
"identifier": "Level_3",
|
"identifier": "level_3",
|
||||||
"iid": "9a7c1c80-3b70-11ee-9613-c599f6a78847",
|
"iid": "9a7c1c80-3b70-11ee-9613-c599f6a78847",
|
||||||
"uid": 422,
|
"uid": 422,
|
||||||
"worldX": 4096,
|
"worldX": 4096,
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
"fieldInstances": [],
|
"fieldInstances": [],
|
||||||
"layerInstances": [
|
"layerInstances": [
|
||||||
{
|
{
|
||||||
"__identifier": "Foliage",
|
"__identifier": "foliage",
|
||||||
"__type": "AutoLayer",
|
"__type": "AutoLayer",
|
||||||
"__cWid": 56,
|
"__cWid": 56,
|
||||||
"__cHei": 32,
|
"__cHei": 32,
|
||||||
|
@ -94,7 +94,7 @@
|
||||||
"entityInstances": []
|
"entityInstances": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__identifier": "Entities",
|
"__identifier": "entities",
|
||||||
"__type": "Entities",
|
"__type": "Entities",
|
||||||
"__cWid": 112,
|
"__cWid": 112,
|
||||||
"__cHei": 64,
|
"__cHei": 64,
|
||||||
|
@ -118,7 +118,7 @@
|
||||||
"gridTiles": [],
|
"gridTiles": [],
|
||||||
"entityInstances": [
|
"entityInstances": [
|
||||||
{
|
{
|
||||||
"__identifier": "Player",
|
"__identifier": "player",
|
||||||
"__grid": [1,49],
|
"__grid": [1,49],
|
||||||
"__pivot": [0.25,1],
|
"__pivot": [0.25,1],
|
||||||
"__tags": [],
|
"__tags": [],
|
||||||
|
@ -136,7 +136,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__identifier": "Ground",
|
"__identifier": "ground",
|
||||||
"__type": "AutoLayer",
|
"__type": "AutoLayer",
|
||||||
"__cWid": 56,
|
"__cWid": 56,
|
||||||
"__cHei": 32,
|
"__cHei": 32,
|
||||||
|
@ -788,7 +788,7 @@
|
||||||
"entityInstances": []
|
"entityInstances": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__identifier": "Level",
|
"__identifier": "level",
|
||||||
"__type": "IntGrid",
|
"__type": "IntGrid",
|
||||||
"__cWid": 56,
|
"__cWid": 56,
|
||||||
"__cHei": 32,
|
"__cHei": 32,
|
92
src/assets.c
92
src/assets.c
|
@ -1,6 +1,8 @@
|
||||||
#include "assets.h"
|
#include "assets.h"
|
||||||
|
#include "debug.h"
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <memory.h>
|
#include <memory.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
struct AssetData {
|
struct AssetData {
|
||||||
|
@ -9,11 +11,29 @@ struct AssetData {
|
||||||
AssetDestructor destructor;
|
AssetDestructor destructor;
|
||||||
} AssetData;
|
} AssetData;
|
||||||
|
|
||||||
|
cJSON* g_levels_json;
|
||||||
|
|
||||||
static AssetData* _assets = NULL;
|
static AssetData* _assets = NULL;
|
||||||
static size_t _assets_len = 0;
|
static size_t _assets_len = 0;
|
||||||
static size_t _assets_cap = 0;
|
static size_t _assets_cap = 0;
|
||||||
static asset_id _next_id = 0;
|
static asset_id _next_id = 0;
|
||||||
|
|
||||||
|
static
|
||||||
|
size_t file_length(FILE* fp) {
|
||||||
|
size_t start = ftell(fp);
|
||||||
|
fseek(fp, 0, SEEK_END);
|
||||||
|
size_t r = ftell(fp);
|
||||||
|
fseek(fp, start, SEEK_SET);
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
void read_file(FILE* fp, char* out_buffer, size_t out_size) {
|
||||||
|
size_t start = ftell(fp);
|
||||||
|
fread(out_buffer, 1, out_size, fp);
|
||||||
|
fseek(fp, start, SEEK_SET);
|
||||||
|
}
|
||||||
|
|
||||||
static
|
static
|
||||||
void _resize_if_needed(size_t requested_len) {
|
void _resize_if_needed(size_t requested_len) {
|
||||||
if(requested_len < _assets_cap) {
|
if(requested_len < _assets_cap) {
|
||||||
|
@ -32,8 +52,45 @@ void _resize_if_needed(size_t requested_len) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void assets_init() {
|
void assets_init() {
|
||||||
|
LOG_INFO("assets_init");
|
||||||
_assets = malloc(_assets_cap * sizeof(AssetData));
|
_assets = malloc(_assets_cap * sizeof(AssetData));
|
||||||
_next_id = 1;
|
_next_id = 1;
|
||||||
|
|
||||||
|
g_levels_json = load_json_from_file("assets/levels/levels.ldtk");
|
||||||
|
}
|
||||||
|
|
||||||
|
// clear all assets without shrinking the assets array.
|
||||||
|
static
|
||||||
|
void _empty_assets() {
|
||||||
|
AssetData* start = _assets;
|
||||||
|
AssetData* end = _assets + _assets_len;
|
||||||
|
for(AssetData* asset = start; asset < end; ++asset) {
|
||||||
|
asset->destructor(asset->asset);
|
||||||
|
}
|
||||||
|
_assets_len = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void assets_clean() {
|
||||||
|
_empty_assets();
|
||||||
|
|
||||||
|
free(_assets);
|
||||||
|
_assets_len = 0;
|
||||||
|
_assets_cap = 0;
|
||||||
|
_assets = NULL;
|
||||||
|
|
||||||
|
cJSON_Delete(g_levels_json);
|
||||||
|
g_levels_json = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void assets_reset() {
|
||||||
|
_empty_assets();
|
||||||
|
|
||||||
|
size_t desired = 8;
|
||||||
|
AssetData* new = realloc(_assets, desired * sizeof(AssetData));
|
||||||
|
if(new == NULL)
|
||||||
|
return;
|
||||||
|
_assets_cap = desired;
|
||||||
|
_assets = new;
|
||||||
}
|
}
|
||||||
|
|
||||||
asset_id store_asset(void* asset, AssetDestructor destructor) {
|
asset_id store_asset(void* asset, AssetDestructor destructor) {
|
||||||
|
@ -96,5 +153,40 @@ void free_asset(asset_id id) {
|
||||||
AssetData* next = found + 1;
|
AssetData* next = found + 1;
|
||||||
size_t dif = next - (_assets + _assets_len);
|
size_t dif = next - (_assets + _assets_len);
|
||||||
memmove(found, next, dif);
|
memmove(found, next, dif);
|
||||||
|
--_assets_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cJSON* load_json_from_file(const char* filename) {
|
||||||
|
FILE* fp = fopen(filename, "r");
|
||||||
|
if(fp == NULL) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t len = file_length(fp);
|
||||||
|
char* buffer = malloc(len + 1);
|
||||||
|
if(buffer == NULL) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
read_file(fp, buffer, len);
|
||||||
|
cJSON* out = cJSON_Parse(buffer);
|
||||||
|
free(buffer);
|
||||||
|
|
||||||
|
if(out == NULL) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t json_array_len(cJSON* json) {
|
||||||
|
if(!cJSON_IsArray(json)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
size_t len = 0;
|
||||||
|
cJSON* itr;
|
||||||
|
cJSON_ArrayForEach(itr, json) {
|
||||||
|
++len;
|
||||||
|
}
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
|
25
src/assets.h
25
src/assets.h
|
@ -1,18 +1,21 @@
|
||||||
#ifndef _fencer_assets_h
|
#ifndef _fencer_assets_h
|
||||||
#define _fencer_assets_h
|
#define _fencer_assets_h
|
||||||
|
|
||||||
|
#include "vmath.h"
|
||||||
|
#include <cjson/cJSON.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
typedef void(*AssetDestructor)(void*);
|
typedef void(*AssetDestructor)(void*);
|
||||||
|
|
||||||
typedef uintptr_t asset_id;
|
typedef uintptr_t asset_id;
|
||||||
|
|
||||||
|
extern cJSON* g_levels_json;
|
||||||
|
|
||||||
// Prepare asset management.
|
// Prepare asset management.
|
||||||
// Other asset management functions are invalid until assets_init is called.
|
// Other asset management functions are invalid until assets_init is called.
|
||||||
void assets_init();
|
void assets_init();
|
||||||
// Clean up and shut down assets management.
|
// Clean up and shut down assets management.
|
||||||
void assets_clean();
|
void assets_clean();
|
||||||
// Clear all assets and reset to initial state.
|
// Clear all loaded assets
|
||||||
void assets_reset();
|
void assets_reset();
|
||||||
// Submit an object to be managed as an asset. If the destructor is NULL, free will be used.
|
// Submit an object to be managed as an asset. If the destructor is NULL, free will be used.
|
||||||
// Returns zero if asset could not be stored.
|
// Returns zero if asset could not be stored.
|
||||||
|
@ -24,5 +27,23 @@ void* get_asset(asset_id id);
|
||||||
asset_id get_asset_id(void* asset);
|
asset_id get_asset_id(void* asset);
|
||||||
// Free an asset managed by the asset manager using it's destructor, or free(..) if NULL.
|
// Free an asset managed by the asset manager using it's destructor, or free(..) if NULL.
|
||||||
void free_asset(asset_id id);
|
void free_asset(asset_id id);
|
||||||
|
// load a file's contents into json
|
||||||
|
cJSON* load_json_from_file(const char* filepath);
|
||||||
|
// Get the length of a cJSON array
|
||||||
|
size_t json_array_len(cJSON* array);
|
||||||
|
static inline
|
||||||
|
Vector json_array_to_vector(cJSON* array) {
|
||||||
|
return (Vector) {
|
||||||
|
cJSON_GetArrayItem(array, 0)->valuedouble,
|
||||||
|
cJSON_GetArrayItem(array, 1)->valuedouble,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
static inline
|
||||||
|
IVector json_array_to_ivector(cJSON* array) {
|
||||||
|
return (IVector) {
|
||||||
|
cJSON_GetArrayItem(array, 0)->valueint,
|
||||||
|
cJSON_GetArrayItem(array, 1)->valueint
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
#endif // !_fencer_assets_h
|
#endif // !_fencer_assets_h
|
||||||
|
|
22
src/camera.c
22
src/camera.c
|
@ -1,9 +1,11 @@
|
||||||
#include "camera.h"
|
#include "camera.h"
|
||||||
|
#include "debug.h"
|
||||||
#include "render.h"
|
#include "render.h"
|
||||||
|
|
||||||
Camera g_camera;
|
Camera g_camera;
|
||||||
|
|
||||||
void camera_init() {
|
void camera_init() {
|
||||||
|
LOG_INFO("camera_init");
|
||||||
g_camera.centre = ZeroVector;
|
g_camera.centre = ZeroVector;
|
||||||
g_camera.width = 10;
|
g_camera.width = 10;
|
||||||
}
|
}
|
||||||
|
@ -14,28 +16,16 @@ float _camera_height(Camera* self) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
float _one() {
|
float _cam_to_world_conversion() {
|
||||||
return g_render_resolution.x / g_camera.width;
|
return g_render_resolution.x / g_camera.width;
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_FRect camera_world_to_screen_space(Camera* self, SDL_FRect* world_space) {
|
SDL_FRect camera_world_to_screen_space(Camera* self, SDL_FRect* world_space) {
|
||||||
float unit = _one();
|
float unit = _cam_to_world_conversion();
|
||||||
return (SDL_FRect) {
|
return (SDL_FRect) {
|
||||||
.x = (world_space->x - g_camera.centre.x + g_camera.width/2.0) * unit,
|
.x = (g_camera.centre.x - world_space->x + g_camera.width/2.0) * unit,
|
||||||
.y = (world_space->y - g_camera.centre.y + _camera_height(&g_camera)/2.0) * unit,
|
.y = (g_camera.centre.y - world_space->y + _camera_height(&g_camera)/2.0) * unit,
|
||||||
.w = world_space->w * unit,
|
.w = world_space->w * unit,
|
||||||
.h = world_space->h * unit
|
.h = world_space->h * unit
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_FRect camera_calculate_unit_rect() {
|
|
||||||
// If the camera's width is 1, this rectangle should fill the width of the screen.
|
|
||||||
// If the camera's width is 2, this rectangle should fill half the width of the screen.
|
|
||||||
float unit = _one();
|
|
||||||
return (SDL_FRect) {
|
|
||||||
.x = (-g_camera.centre.x + g_camera.width/2) * unit,
|
|
||||||
.y = (-g_camera.centre.y + _camera_height(&g_camera)/2) * unit,
|
|
||||||
.w = unit,
|
|
||||||
.h = unit
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
|
@ -15,9 +15,6 @@ typedef struct Camera Camera;
|
||||||
extern Camera g_camera;
|
extern Camera g_camera;
|
||||||
|
|
||||||
extern void camera_init();
|
extern void camera_init();
|
||||||
// generate a screen-space rectangle that is exactly 1x1 in world units.
|
|
||||||
// With it's centre on the world origin.
|
|
||||||
extern SDL_FRect camera_calculate_world_unit_rect(Camera* self);
|
|
||||||
extern SDL_FRect camera_screen_to_world_space(Camera* self, SDL_FRect* camera_space);
|
extern SDL_FRect camera_screen_to_world_space(Camera* self, SDL_FRect* camera_space);
|
||||||
extern SDL_FRect camera_world_to_screen_space(Camera* self, SDL_FRect* world_space);
|
extern SDL_FRect camera_world_to_screen_space(Camera* self, SDL_FRect* world_space);
|
||||||
|
|
||||||
|
|
7
src/debug.c
Normal file
7
src/debug.c
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
#include "debug.h"
|
||||||
|
|
||||||
|
#if NDEBUG
|
||||||
|
int g_debug_error_abort = 0;
|
||||||
|
#else
|
||||||
|
int g_debug_error_abort = 1;
|
||||||
|
#endif
|
25
src/debug.h
Normal file
25
src/debug.h
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
#ifndef _fencer_debug_h
|
||||||
|
#define _fencer_debug_h
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
extern int g_debug_error_abort;
|
||||||
|
|
||||||
|
#define LOG_INFO(...) do {\
|
||||||
|
printf("[%s:%d] ", __FILE__, __LINE__);\
|
||||||
|
printf("INFO | ");\
|
||||||
|
printf(__VA_ARGS__);\
|
||||||
|
printf("\n");\
|
||||||
|
fflush(stdout);\
|
||||||
|
} while(0)
|
||||||
|
|
||||||
|
#define LOG_ERROR(...) do {\
|
||||||
|
printf("[%s:%d] ", __FILE__, __LINE__);\
|
||||||
|
printf("ERROR | ");\
|
||||||
|
printf(__VA_ARGS__);\
|
||||||
|
printf("\n");\
|
||||||
|
fflush(stdout);\
|
||||||
|
if(g_debug_error_abort != 0) abort();\
|
||||||
|
} while(0)
|
||||||
|
|
||||||
|
#endif // !_fencer_debug_h
|
130
src/level.c
Normal file
130
src/level.c
Normal file
|
@ -0,0 +1,130 @@
|
||||||
|
#include "level.h"
|
||||||
|
#include "assets.h"
|
||||||
|
#include "debug.h"
|
||||||
|
#include "tilemap.h"
|
||||||
|
#include <cjson/cJSON.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#define LEVEL_EXT ".ldtkl"
|
||||||
|
#define WORLD_EXT ".ldtk"
|
||||||
|
#define LEVEL_DIR "assets/levels/"
|
||||||
|
|
||||||
|
struct Level {
|
||||||
|
asset_id asset_id;
|
||||||
|
size_t level_iid;
|
||||||
|
|
||||||
|
Tilemap** tilemaps;
|
||||||
|
|
||||||
|
size_t tilemaps_len;
|
||||||
|
|
||||||
|
Vector player_start;
|
||||||
|
};
|
||||||
|
|
||||||
|
static
|
||||||
|
void _deallocate_level(void* self_void) {
|
||||||
|
Level* self = self_void;
|
||||||
|
|
||||||
|
free(self);
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
size_t _count_layers(cJSON* layers, size_t* entities, size_t* automap) {
|
||||||
|
size_t ent_ = 0, auto_ = 0, tot_ = 0;
|
||||||
|
|
||||||
|
cJSON* layer;
|
||||||
|
cJSON_ArrayForEach(layer, layers) {
|
||||||
|
cJSON* type = cJSON_GetObjectItem(layer, "__type");
|
||||||
|
|
||||||
|
if(type == NULL) {
|
||||||
|
continue;
|
||||||
|
} else if(strcmp(type->valuestring, "AutoLayer") == 0) {
|
||||||
|
auto_++;
|
||||||
|
} else if(strcmp(type->valuestring, "Entities") == 0) {
|
||||||
|
ent_++;
|
||||||
|
}
|
||||||
|
tot_++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(entities != NULL)
|
||||||
|
*entities = ent_;
|
||||||
|
if(automap != NULL)
|
||||||
|
*automap = auto_;
|
||||||
|
return tot_;
|
||||||
|
}
|
||||||
|
|
||||||
|
Level* level_from_json(cJSON* json) {
|
||||||
|
// allocate a new level struct
|
||||||
|
Level* self = malloc(sizeof(Level));
|
||||||
|
|
||||||
|
// ensure allocations succeeded and initialize
|
||||||
|
if(self == NULL) {
|
||||||
|
LOG_ERROR("Failed to allocate level");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
*self = (Level) {
|
||||||
|
.asset_id = store_asset(self, &_deallocate_level)
|
||||||
|
};
|
||||||
|
|
||||||
|
// fetch the instance id
|
||||||
|
cJSON* iid = cJSON_GetObjectItem(json, "iid");
|
||||||
|
if(iid != NULL && cJSON_IsNumber(iid))
|
||||||
|
self->level_iid = iid->valueint;
|
||||||
|
|
||||||
|
// get the level's layers
|
||||||
|
cJSON* layers = cJSON_GetObjectItem(json, "layerInstances");
|
||||||
|
|
||||||
|
// count the different kinds of layers
|
||||||
|
size_t entity_layer_count;
|
||||||
|
_count_layers(layers, &entity_layer_count, &self->tilemaps_len);
|
||||||
|
// allocate tilemap array
|
||||||
|
self->tilemaps = malloc(self->tilemaps_len * sizeof(Tilemap*));
|
||||||
|
|
||||||
|
Tilemap** next_tilemap = self->tilemaps;
|
||||||
|
if(layers != NULL && cJSON_IsArray(layers)) {
|
||||||
|
cJSON* layer;
|
||||||
|
cJSON_ArrayForEach(layer, layers) {
|
||||||
|
cJSON* type = cJSON_GetObjectItem(layer, "__type");
|
||||||
|
|
||||||
|
if(strcmp(type->valuestring, "AutoLayer") == 0) {
|
||||||
|
// load a tilemap as an autolayer
|
||||||
|
LOG_INFO("loading autolayer");
|
||||||
|
*next_tilemap = tilemap_from_autolayer(layer);
|
||||||
|
++next_tilemap;
|
||||||
|
} else if(strcmp(type->valuestring, "Entities")) {
|
||||||
|
// load entities
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
Level* level_load(const char* level_id) {
|
||||||
|
// Convert the level ID to a filepath
|
||||||
|
size_t filename_len = strlen(LEVEL_DIR) + strlen(level_id) + strlen(LEVEL_EXT) + 1;
|
||||||
|
char* filename = malloc(filename_len);
|
||||||
|
sprintf(filename, "%s%s%s", LEVEL_DIR, level_id, LEVEL_EXT);
|
||||||
|
LOG_INFO("loading level %s at %s", level_id, filename);
|
||||||
|
|
||||||
|
cJSON* level = load_json_from_file(filename);
|
||||||
|
|
||||||
|
if(level == NULL) {
|
||||||
|
LOG_ERROR("Failed to load level file %s", filename);
|
||||||
|
free(filename);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
free(filename);
|
||||||
|
|
||||||
|
return level_from_json(level);
|
||||||
|
}
|
||||||
|
|
||||||
|
void level_destroy(Level* self) {
|
||||||
|
free_asset(self->asset_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
void level_draw(Level* self) {
|
||||||
|
Tilemap** end = self->tilemaps + self->tilemaps_len;
|
||||||
|
for(Tilemap** map = self->tilemaps; map != end; ++map) {
|
||||||
|
tilemap_draw(*map);
|
||||||
|
}
|
||||||
|
}
|
19
src/level.h
Normal file
19
src/level.h
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#ifndef _fencer_level_h
|
||||||
|
#define _fencer_level_h
|
||||||
|
|
||||||
|
#include "sprite.h"
|
||||||
|
#include <SDL2/SDL_render.h>
|
||||||
|
#include <cjson/cJSON.h>
|
||||||
|
|
||||||
|
typedef struct Level Level;
|
||||||
|
|
||||||
|
extern void world_init();
|
||||||
|
extern void world_close();
|
||||||
|
|
||||||
|
extern Level* level_from_json(cJSON* json);
|
||||||
|
extern Level* level_load(const char* level_id);
|
||||||
|
extern void level_destroy(Level* self);
|
||||||
|
|
||||||
|
extern void level_draw(Level* self);
|
||||||
|
|
||||||
|
#endif // !_fencer_level_h
|
|
@ -1,5 +1,6 @@
|
||||||
#include "render.h"
|
#include "render.h"
|
||||||
#include "program.h"
|
#include "program.h"
|
||||||
|
#include "debug.h"
|
||||||
#include <SDL2/SDL_pixels.h>
|
#include <SDL2/SDL_pixels.h>
|
||||||
#include <SDL2/SDL_render.h>
|
#include <SDL2/SDL_render.h>
|
||||||
|
|
||||||
|
@ -9,6 +10,7 @@ SDL_Rect g_render_area;
|
||||||
IVector g_render_resolution;
|
IVector g_render_resolution;
|
||||||
|
|
||||||
void render_init(SDL_Window* window, const struct ProgramSettings* settings) {
|
void render_init(SDL_Window* window, const struct ProgramSettings* settings) {
|
||||||
|
LOG_INFO("render_init");
|
||||||
// create renderer, needs to be able to target textures, preferably hardware accelerated
|
// create renderer, needs to be able to target textures, preferably hardware accelerated
|
||||||
g_renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_TARGETTEXTURE);
|
g_renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_TARGETTEXTURE);
|
||||||
// create render target texture
|
// create render target texture
|
||||||
|
|
51
src/sprite.c
51
src/sprite.c
|
@ -1,5 +1,6 @@
|
||||||
#include "sprite.h"
|
#include "sprite.h"
|
||||||
#include "camera.h"
|
#include "camera.h"
|
||||||
|
#include "debug.h"
|
||||||
#include "render.h"
|
#include "render.h"
|
||||||
#include "spritesheet.h"
|
#include "spritesheet.h"
|
||||||
#include <SDL2/SDL_image.h>
|
#include <SDL2/SDL_image.h>
|
||||||
|
@ -7,7 +8,7 @@
|
||||||
|
|
||||||
struct Sprite {
|
struct Sprite {
|
||||||
// The animation sheet to sample sprites from.
|
// The animation sheet to sample sprites from.
|
||||||
Spritesheet* sheet;
|
Spritesheet* spritesheet;
|
||||||
|
|
||||||
// The current frame of animation.
|
// The current frame of animation.
|
||||||
size_t current_frame;
|
size_t current_frame;
|
||||||
|
@ -15,17 +16,20 @@ struct Sprite {
|
||||||
float current_frame_time;
|
float current_frame_time;
|
||||||
|
|
||||||
// The local transformation of this sprite.
|
// The local transformation of this sprite.
|
||||||
Transform transform;
|
|
||||||
Vector origin;
|
Vector origin;
|
||||||
};
|
};
|
||||||
|
|
||||||
Sprite* sprite_from_spritesheet(Spritesheet* sheet) {
|
Sprite* sprite_from_spritesheet(Spritesheet* sheet, size_t initial_frame) {
|
||||||
Sprite* self = malloc(sizeof(Sprite));
|
Sprite* self = malloc(sizeof(Sprite));
|
||||||
|
|
||||||
self->sheet = sheet;
|
if(self == NULL) {
|
||||||
self->transform = IdentityTransform;
|
LOG_ERROR("Failed to allocate memory for new sprite");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
self->spritesheet = sheet;
|
||||||
self->origin = (Vector){0.5f, 1.0f};
|
self->origin = (Vector){0.5f, 1.0f};
|
||||||
self->current_frame = 0;
|
self->current_frame = initial_frame;
|
||||||
// TODO: replace with a getter for the current game time.
|
// TODO: replace with a getter for the current game time.
|
||||||
self->current_frame_time = 0;
|
self->current_frame_time = 0;
|
||||||
|
|
||||||
|
@ -37,12 +41,10 @@ void sprite_destroy(Sprite* self) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void sprite_draw(Sprite* self, Transform transform) {
|
void sprite_draw(Sprite* self, Transform transform) {
|
||||||
SDL_Texture* texture = spritesheet_get_texture(self->sheet);
|
SDL_Texture* texture = spritesheet_get_texture(self->spritesheet);
|
||||||
SDL_Rect source = spritesheet_get_frame_rect(self->sheet, self->current_frame);
|
SDL_Rect source = spritesheet_get_frame_rect(self->spritesheet, self->current_frame);
|
||||||
transform = transform_apply(transform, self->transform);
|
|
||||||
Vector left_top = vinvf(transform_point(&transform, self->origin));
|
Vector left_top = vinvf(transform_point(&transform, self->origin));
|
||||||
printf("lt: %f %f\n", left_top.x, left_top.y);
|
|
||||||
printf("or: %f %f\n", self->origin.x, self->origin.y);
|
|
||||||
|
|
||||||
SDL_FRect destination = (SDL_FRect) {
|
SDL_FRect destination = (SDL_FRect) {
|
||||||
left_top.x, left_top.y,
|
left_top.x, left_top.y,
|
||||||
|
@ -51,9 +53,32 @@ void sprite_draw(Sprite* self, Transform transform) {
|
||||||
|
|
||||||
destination = camera_world_to_screen_space(&g_camera, &destination);
|
destination = camera_world_to_screen_space(&g_camera, &destination);
|
||||||
|
|
||||||
Vector origin = vmulf(self->origin, vmulff(transform.scale, 0.5f));
|
Vector origin = vmulff(vmulf(self->origin, transform.scale), 0.5f);
|
||||||
self->transform.rotation += 0.01f;
|
|
||||||
|
|
||||||
SDL_RenderCopyExF(g_renderer, texture, &source, &destination,
|
SDL_RenderCopyExF(g_renderer, texture, &source, &destination,
|
||||||
transform.rotation * 57.2958, &origin, SDL_FLIP_NONE);
|
transform.rotation * 57.2958, &origin, SDL_FLIP_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Vector sprite_get_origin(Sprite* self) {
|
||||||
|
return self->origin;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sprite_set_origin(Sprite* self, Vector origin) {
|
||||||
|
self->origin = origin;
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t sprite_get_frame(const Sprite* self) {
|
||||||
|
return self->current_frame;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sprite_set_frame(Sprite* self, size_t size) {
|
||||||
|
self->current_frame = size;
|
||||||
|
}
|
||||||
|
|
||||||
|
Spritesheet* sprite_get_spritesheet(const Sprite* self) {
|
||||||
|
return self->spritesheet;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sprite_set_spritesheet(Sprite* self, Spritesheet* spritesheet) {
|
||||||
|
self->spritesheet = spritesheet;
|
||||||
|
}
|
16
src/sprite.h
16
src/sprite.h
|
@ -10,16 +10,18 @@
|
||||||
// Forward declaration of the private sprite struct
|
// Forward declaration of the private sprite struct
|
||||||
typedef struct Sprite Sprite;
|
typedef struct Sprite Sprite;
|
||||||
|
|
||||||
extern Sprite* sprite_from_spritesheet(Spritesheet* sheet);
|
extern Sprite* sprite_from_spritesheet(Spritesheet* sheet, size_t initial_frame);
|
||||||
extern void sprite_destroy(Sprite* sprite);
|
extern void sprite_destroy(Sprite* sprite);
|
||||||
|
|
||||||
extern void sprite_draw(Sprite* self, Transform transform);
|
extern void sprite_draw(Sprite* self, Transform transform);
|
||||||
|
|
||||||
extern void sprite_set_position(Sprite* self, Vector position);
|
extern Vector sprite_get_origin(Sprite* self);
|
||||||
extern void sprite_translate(Sprite* self, Vector delta_position);
|
|
||||||
extern void sprite_set_scale(Sprite* self, Vector scale);
|
|
||||||
extern void sprite_scale(Sprite* self, Vector scale);
|
|
||||||
extern void sprite_set_rotation(Sprite* self, float rotation);
|
|
||||||
extern void sprite_rotate(Sprite* self, float delta_rotation);
|
|
||||||
extern void sprite_set_origin(Sprite* self, Vector origin);
|
extern void sprite_set_origin(Sprite* self, Vector origin);
|
||||||
|
|
||||||
|
extern size_t sprite_get_frame(const Sprite* self);
|
||||||
|
extern void sprite_set_frame(Sprite* self, size_t size);
|
||||||
|
|
||||||
|
extern Spritesheet* sprite_get_spritesheet(const Sprite* self);
|
||||||
|
extern void sprite_set_spritesheet(Sprite* self, Spritesheet* spritesheet);
|
||||||
|
|
||||||
#endif // !_fencer_sprite_h
|
#endif // !_fencer_sprite_h
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
#include <SDL2/SDL_image.h>
|
#include <SDL2/SDL_image.h>
|
||||||
|
|
||||||
struct Spritesheet {
|
struct Spritesheet {
|
||||||
|
asset_id asset_id;
|
||||||
|
|
||||||
// The texture to sample.
|
// The texture to sample.
|
||||||
SDL_Texture* texture;
|
SDL_Texture* texture;
|
||||||
// The resolution of the texture.
|
// The resolution of the texture.
|
||||||
|
@ -28,17 +30,25 @@ void _spritesheet_destroy_asset(void* self_void) {
|
||||||
free(self_void);
|
free(self_void);
|
||||||
}
|
}
|
||||||
|
|
||||||
Spritesheet* spritesheet_from_texture(const char* texture_name, IVector frame_resolution) {
|
Spritesheet* spritesheet_load(const char* texture_name, IVector frame_resolution) {
|
||||||
|
SDL_Texture* texture = IMG_LoadTexture(g_renderer, texture_name);
|
||||||
|
if(texture == NULL)
|
||||||
|
return NULL;
|
||||||
|
else
|
||||||
|
return spritesheet_from_texture(texture, frame_resolution);
|
||||||
|
}
|
||||||
|
|
||||||
|
Spritesheet* spritesheet_from_texture(SDL_Texture* texture, IVector frame_resolution) {
|
||||||
Spritesheet* self = malloc(sizeof(Spritesheet));
|
Spritesheet* self = malloc(sizeof(Spritesheet));
|
||||||
|
|
||||||
if(self == NULL) {
|
if(self == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
store_asset(self, _spritesheet_destroy_asset);
|
self->asset_id = store_asset(self, _spritesheet_destroy_asset);
|
||||||
|
|
||||||
// Load the texture image and query it's size
|
// Load the texture image and query it's size
|
||||||
self->texture = IMG_LoadTexture(g_renderer, texture_name);
|
self->texture = texture;
|
||||||
SDL_QueryTexture(self->texture, NULL, NULL, &self->resolution.x, &self->resolution.y);
|
SDL_QueryTexture(self->texture, NULL, NULL, &self->resolution.x, &self->resolution.y);
|
||||||
|
|
||||||
self->animation_type = ANIMTYPE_ONCE;
|
self->animation_type = ANIMTYPE_ONCE;
|
||||||
|
@ -51,10 +61,7 @@ Spritesheet* spritesheet_from_texture(const char* texture_name, IVector frame_re
|
||||||
}
|
}
|
||||||
|
|
||||||
void spritesheet_destroy(Spritesheet* self) {
|
void spritesheet_destroy(Spritesheet* self) {
|
||||||
asset_id id = get_asset_id(self);
|
free_asset(self->asset_id);
|
||||||
if(id != 0) {
|
|
||||||
free_asset(id);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_Texture* spritesheet_get_texture(const Spritesheet* self) {
|
SDL_Texture* spritesheet_get_texture(const Spritesheet* self) {
|
||||||
|
@ -70,3 +77,7 @@ SDL_Rect spritesheet_get_frame_rect(const Spritesheet* self, size_t index) {
|
||||||
self->frame_size.x, self->frame_size.y
|
self->frame_size.x, self->frame_size.y
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IVector spritesheet_get_resolution(const Spritesheet* self) {
|
||||||
|
return self->resolution;
|
||||||
|
}
|
|
@ -12,10 +12,12 @@ enum AnimationType {
|
||||||
|
|
||||||
typedef struct Spritesheet Spritesheet;
|
typedef struct Spritesheet Spritesheet;
|
||||||
|
|
||||||
extern Spritesheet* spritesheet_from_texture(const char* texture_name, IVector frame_resolution);
|
extern Spritesheet* spritesheet_load(const char* texture_name, IVector frame_resolution);
|
||||||
|
extern Spritesheet* spritesheet_from_texture(SDL_Texture* texture, IVector frame_resolution);
|
||||||
extern void spritesheet_destroy(Spritesheet* self);
|
extern void spritesheet_destroy(Spritesheet* self);
|
||||||
|
|
||||||
extern SDL_Texture* spritesheet_get_texture(const Spritesheet* self);
|
extern SDL_Texture* spritesheet_get_texture(const Spritesheet* self);
|
||||||
extern SDL_Rect spritesheet_get_frame_rect(const Spritesheet* self, size_t index);
|
extern SDL_Rect spritesheet_get_frame_rect(const Spritesheet* self, size_t index);
|
||||||
|
extern IVector spritesheet_get_resolution(const Spritesheet* self);
|
||||||
|
|
||||||
#endif // !_fencer_spritesheet_h
|
#endif // !_fencer_spritesheet_h
|
||||||
|
|
197
src/tilemap.c
197
src/tilemap.c
|
@ -1,109 +1,114 @@
|
||||||
#include "tilemap.h"
|
#include "tilemap.h"
|
||||||
|
#include "debug.h"
|
||||||
|
#include "tileset.h"
|
||||||
|
#include "assets.h"
|
||||||
#include "camera.h"
|
#include "camera.h"
|
||||||
#include "program.h"
|
#include "level.h"
|
||||||
#include <stdio.h>
|
#include "render.h"
|
||||||
|
#include "transform.h"
|
||||||
#include <SDL2/SDL_image.h>
|
#include <SDL2/SDL_image.h>
|
||||||
|
#include <cjson/cJSON.h>
|
||||||
|
|
||||||
#define XML(__str) (const xmlChar*)__str
|
struct TileInstance {
|
||||||
|
Transform transform;
|
||||||
|
TileDef* tiledef;
|
||||||
|
};
|
||||||
|
|
||||||
struct Tilemap tilemap_load(const char* tilemap_file) {
|
struct Tilemap {
|
||||||
struct Tilemap self = {
|
Transform transform;
|
||||||
.dimensions = {0,0},
|
|
||||||
.tiles = NULL
|
Tileset* set;
|
||||||
|
|
||||||
|
TileInstance* map;
|
||||||
|
size_t map_num;
|
||||||
|
IVector map_size;
|
||||||
|
};
|
||||||
|
|
||||||
|
Tilemap* tilemap_from_autolayer(cJSON* json) {
|
||||||
|
cJSON* const tileset = cJSON_GetObjectItem(json, "__tilesetDefUid");
|
||||||
|
if(tileset == NULL || !cJSON_IsNumber(tileset)) {
|
||||||
|
// no tileset means we cannot point at tile definitions later
|
||||||
|
LOG_ERROR("Could not find __tilesetDefUid while loading tilemap");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
cJSON* const tiles = cJSON_GetObjectItem(json, "autoLayerTiles");
|
||||||
|
if(tiles == NULL || !cJSON_IsArray(tiles)) {
|
||||||
|
LOG_ERROR("Could not find autoLayerTiles while loading tilemap");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
cJSON* const wid = cJSON_GetObjectItem(json, "__cWid");
|
||||||
|
cJSON* const hei = cJSON_GetObjectItem(json, "__cHei");
|
||||||
|
if(wid == NULL || hei == NULL || !cJSON_IsNumber(wid) || !cJSON_IsNumber(hei)) {
|
||||||
|
// no width and height mean we cannot allocate the tile map
|
||||||
|
LOG_ERROR("Could not find __cWid or __cHei while loading tilemap");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
cJSON* const grid = cJSON_GetObjectItem(json, "__gridSize");
|
||||||
|
if(grid == NULL || !cJSON_IsNumber(grid)) {
|
||||||
|
// can't know how to scale sprites
|
||||||
|
LOG_ERROR("Could not find __gridSize while loading tilemap");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// the minimum requirements for a valid tilemap are met
|
||||||
|
|
||||||
|
// allocate a tilemap and load the tileset
|
||||||
|
Tilemap* self = malloc(sizeof(Tilemap));
|
||||||
|
self->transform = IdentityTransform;
|
||||||
|
self->set = tileset_load(tileset->valueint);
|
||||||
|
self->map_size = (IVector) {
|
||||||
|
.x = wid->valueint,
|
||||||
|
.y = hei->valueint
|
||||||
};
|
};
|
||||||
|
|
||||||
|
self->map_num = json_array_len(tiles);
|
||||||
|
|
||||||
|
self->map = malloc(self->map_num * sizeof(TileInstance));
|
||||||
|
if(self->map == NULL) {
|
||||||
|
tileset_destroy(self->set);
|
||||||
|
free(self);
|
||||||
|
LOG_ERROR("Failed to allocate map memory");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
const double px_to_ws = 1.0 / grid->valuedouble;
|
||||||
|
|
||||||
|
cJSON* tile; TileInstance* writer = self->map;
|
||||||
|
cJSON_ArrayForEach(tile, tiles) {
|
||||||
|
cJSON* t = cJSON_GetObjectItem(tile, "t");
|
||||||
|
writer->tiledef = tileset_get_tiledef(self->set, t->valueint);
|
||||||
|
writer->transform = IdentityTransform;
|
||||||
|
cJSON* px = cJSON_GetObjectItem(tile, "px");
|
||||||
|
writer->transform.position = vmulff(json_array_to_vector(px), px_to_ws);
|
||||||
|
// sprite_get_spritesheet(tiledef_get_sprite(writer->tiledef));
|
||||||
|
|
||||||
|
// LOG_INFO("Loading tile");
|
||||||
|
// LOG_INFO("tid = %d", t->valueint);
|
||||||
|
// LOG_INFO("transform =");
|
||||||
|
// LOG_INFO(".position = %f %f", writer->transform.position.x, writer->transform.position.y);
|
||||||
|
// LOG_INFO(".scale = %f %f", writer->transform.scale.x, writer->transform.scale.y);
|
||||||
|
++writer;
|
||||||
|
}
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline
|
void tilemap_draw(Tilemap* self) {
|
||||||
int is_path_char(int n) {
|
Transform tiletrans = self->transform;
|
||||||
return isalnum(n) || n == '/';
|
TileInstance* tile;
|
||||||
}
|
|
||||||
|
|
||||||
struct Tileset tileset_load(const char* filename) {
|
for(int i = 0; i < self->map_num; ++i) {
|
||||||
char* texture_path = NULL;
|
tile = self->map + i;
|
||||||
char* writer = NULL;
|
tiletrans = transform_apply(self->transform, tile->transform);
|
||||||
char num_buffer[6];
|
Sprite* sprite = tiledef_get_sprite(tile->tiledef);
|
||||||
num_buffer[5] = '\0';
|
// LOG_INFO("sprite: %p", sprite);
|
||||||
int n = 0;
|
// LOG_INFO("trans: %f %f ; %f %f ; %f",
|
||||||
struct Tileset self = {
|
// tiletrans.position.x, tiletrans.position.y, tiletrans.scale.x, tiletrans.scale.y, tiletrans.rotation);
|
||||||
.texture = NULL,
|
// LOG_INFO("self->transform: %f %f ; %f %f ; %f",
|
||||||
.tile_size = {0,0}
|
// self->transform.position.x, self->transform.position.y, self->transform.scale.x, self->transform.scale.y, self->transform.rotation);
|
||||||
};
|
if(sprite != NULL)
|
||||||
size_t len = 1;
|
sprite_draw(sprite, tiletrans);
|
||||||
|
|
||||||
FILE* fs = fopen(filename, "r");
|
|
||||||
|
|
||||||
do {
|
|
||||||
n = fgetc(fs);
|
|
||||||
if(is_path_char(n)) {
|
|
||||||
++len;
|
|
||||||
}
|
|
||||||
} while(n != ',');
|
|
||||||
|
|
||||||
texture_path = malloc(len * sizeof(char));
|
|
||||||
|
|
||||||
rewind(fs);
|
|
||||||
writer = texture_path;
|
|
||||||
|
|
||||||
do {
|
|
||||||
n = fgetc(fs);
|
|
||||||
if(is_path_char(n)) {
|
|
||||||
*writer = n;
|
|
||||||
++writer;
|
|
||||||
} else if(n == ',') {
|
|
||||||
*writer = '\0';
|
|
||||||
}
|
|
||||||
} while(n != ',');
|
|
||||||
|
|
||||||
self.texture = IMG_LoadTexture(g_renderer, texture_path);
|
|
||||||
SDL_QueryTexture(self.texture, NULL, NULL, &self.texture_resolution.x, &self.texture_resolution.y);
|
|
||||||
self.shear = floor((float)self.texture_resolution.x / self.tile_size.x);
|
|
||||||
|
|
||||||
writer = num_buffer;
|
|
||||||
|
|
||||||
do {
|
|
||||||
n = fgetc(fs);
|
|
||||||
if(isdigit(n) || n == '-') {
|
|
||||||
*writer= n;
|
|
||||||
++writer;
|
|
||||||
} else if(n == ',' || feof(fs) || n == '\n') {
|
|
||||||
*writer = '\0';
|
|
||||||
writer = num_buffer;
|
|
||||||
if(self.tile_size.x == 0) {
|
|
||||||
self.tile_size.x = atoi(num_buffer);
|
|
||||||
} else {
|
|
||||||
self.tile_size.y = atoi(num_buffer);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} while(!feof(fs));
|
|
||||||
|
|
||||||
fclose(fs);
|
|
||||||
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
SDL_Rect tileset_index_to_rect(struct Tileset* self, size_t index) {
|
|
||||||
SDL_Rect rect = {0,0, self->tile_size.x, self->tile_size.y};
|
|
||||||
rect.x = (index % self->shear) * rect.w;
|
|
||||||
rect.y = (index / self->shear) * rect.h;
|
|
||||||
return rect;
|
|
||||||
}
|
|
||||||
|
|
||||||
void tilemap_render(struct Tilemap* self) {
|
|
||||||
size_t num_tiles = self->dimensions.x * self->dimensions.y;
|
|
||||||
|
|
||||||
SDL_Rect source_rect = {0, 0, self->tileset.tile_size.x, self->tileset.tile_size.y};
|
|
||||||
SDL_FRect world_dest_rect = { .w = 1, .h = 1 };
|
|
||||||
|
|
||||||
for(int i = 0; i < num_tiles; ++i) {
|
|
||||||
source_rect = tileset_index_to_rect(&self->tileset, self->tiles[i]);
|
|
||||||
|
|
||||||
world_dest_rect.x = (i % self->dimensions.x) * world_dest_rect.w;
|
|
||||||
world_dest_rect.y = (float)floor((float)i / self->dimensions.y) * world_dest_rect.h;
|
|
||||||
|
|
||||||
SDL_FRect camera_dest_rect = camera_world_to_screen_space(&g_camera, &world_dest_rect);
|
|
||||||
|
|
||||||
SDL_RenderCopyF(g_renderer, self->tileset.texture, &source_rect, &camera_dest_rect);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,27 +1,19 @@
|
||||||
#ifndef _fencer_tilemap_h
|
#ifndef _fencer_tilemap_h
|
||||||
#define _fencer_tilemap_h
|
#define _fencer_tilemap_h
|
||||||
|
|
||||||
#include "vmath.h"
|
#include "spritesheet.h"
|
||||||
#include "render.h"
|
#include "tileset.h"
|
||||||
#include <SDL2/SDL.h>
|
#include "level.h"
|
||||||
|
|
||||||
struct Tileset {
|
typedef struct TileInstance TileInstance;
|
||||||
SDL_Texture* texture;
|
typedef struct Tilemap Tilemap;
|
||||||
IVector tile_size;
|
|
||||||
IVector texture_resolution;
|
|
||||||
int shear;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct Tilemap {
|
|
||||||
IVector dimensions;
|
|
||||||
int* tiles;
|
|
||||||
struct Tileset tileset;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern struct Tilemap tilemap_load(const char* tilemap_file);
|
extern Tilemap* tilemap_from_autolayer(cJSON* json);
|
||||||
extern struct Tileset tileset_load(const char* filename);
|
extern void tilemap_destroy(Tilemap* self);
|
||||||
extern SDL_Rect tileset_index_to_rect(struct Tileset* self, size_t index);
|
|
||||||
|
|
||||||
extern void tilemap_render(struct Tilemap* map);
|
extern void tilemap_set_tileset(Tilemap* self, Tileset* set);
|
||||||
|
|
||||||
|
extern void tilemap_draw(Tilemap* tilemap);
|
||||||
|
|
||||||
#endif // !_fencer_tilemap_h
|
#endif // !_fencer_tilemap_h
|
||||||
|
|
184
src/tileset.c
Normal file
184
src/tileset.c
Normal file
|
@ -0,0 +1,184 @@
|
||||||
|
#include "tileset.h"
|
||||||
|
#include "debug.h"
|
||||||
|
#include "spritesheet.h"
|
||||||
|
#include "assets.h"
|
||||||
|
#include "render.h"
|
||||||
|
#include "SDL2/SDL_image.h"
|
||||||
|
|
||||||
|
struct TileDef {
|
||||||
|
size_t tid;
|
||||||
|
Sprite* sprite;
|
||||||
|
// Shape* collision;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Tileset {
|
||||||
|
size_t uid;
|
||||||
|
|
||||||
|
Spritesheet* atlas;
|
||||||
|
|
||||||
|
TileDef* tiledefs;
|
||||||
|
size_t tiledefs_len;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct TilesetStore {
|
||||||
|
Tileset* set;
|
||||||
|
size_t iid;
|
||||||
|
} TilesetStore;
|
||||||
|
|
||||||
|
static TilesetStore* _tilesets = NULL;
|
||||||
|
static size_t _tilesets_len = 0;
|
||||||
|
static size_t _tilesets_cap = 0;
|
||||||
|
|
||||||
|
static
|
||||||
|
int _tilesets_resize_if_needed(size_t required_cap) {
|
||||||
|
if(required_cap < _tilesets_cap) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t needed = _tilesets_cap ? _tilesets_cap : 2;
|
||||||
|
while(needed < required_cap) {
|
||||||
|
needed *= 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
TilesetStore* new = realloc(_tilesets, needed * sizeof(TilesetStore));
|
||||||
|
if(new == NULL) {
|
||||||
|
LOG_ERROR("Failed to resize tileset store array.");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
_tilesets_cap = needed;
|
||||||
|
_tilesets = new;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
void _tileset_deallocate(void* self_void) {
|
||||||
|
Tileset* self = self_void;
|
||||||
|
TilesetStore* store = _tilesets;
|
||||||
|
for(; store < _tilesets + _tilesets_len; ++store) {
|
||||||
|
if(store->set == self) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
size_t diff = _tilesets_len - (size_t)(store - _tilesets);
|
||||||
|
memmove(store, store+1, diff-1);
|
||||||
|
--_tilesets_len;
|
||||||
|
|
||||||
|
spritesheet_destroy(self->atlas);
|
||||||
|
free(self->tiledefs);
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
void _tileset_store(Tileset* self) {
|
||||||
|
_tilesets_resize_if_needed(_tilesets_len + 1);
|
||||||
|
_tilesets[_tilesets_len].set = self;
|
||||||
|
_tilesets[_tilesets_len].iid = self->uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
Tileset* tileset_from_json(cJSON* json) {
|
||||||
|
cJSON* uid = cJSON_GetObjectItem(json, "uid");
|
||||||
|
if(uid == NULL || !cJSON_IsNumber(uid)) {
|
||||||
|
LOG_ERROR("Failed to find uid while loading tileset");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
cJSON* path = cJSON_GetObjectItem(json, "relPath");
|
||||||
|
if(path == NULL || !cJSON_IsString(path)) {
|
||||||
|
LOG_ERROR("Failed to find relPath while loading tileset");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
cJSON* gridsize = cJSON_GetObjectItem(json, "tileGridSize");
|
||||||
|
if(gridsize == NULL || !cJSON_IsNumber(gridsize)) {
|
||||||
|
LOG_ERROR("Failed to find tileGridSize while loading tileset");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
SDL_Surface* atlas_surface = IMG_Load(path->valuestring);
|
||||||
|
if(atlas_surface == NULL) {
|
||||||
|
LOG_ERROR("Failed to load atlas image while loading tileset");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
Tileset* self = malloc(sizeof(Tileset));
|
||||||
|
SDL_Texture* texture = SDL_CreateTextureFromSurface(g_renderer, atlas_surface);
|
||||||
|
IVector grid = {gridsize->valueint, gridsize->valueint};
|
||||||
|
|
||||||
|
if(self == NULL) {
|
||||||
|
LOG_ERROR("Failed to allocate space for Tileset");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
_tileset_store(self);
|
||||||
|
*self = (Tileset) {
|
||||||
|
.uid = uid->valueint,
|
||||||
|
.atlas = spritesheet_from_texture(texture, grid),
|
||||||
|
};
|
||||||
|
|
||||||
|
IVector resolution = spritesheet_get_resolution(self->atlas);
|
||||||
|
self->tiledefs_len = resolution.x / grid.x * resolution.y / grid.y;
|
||||||
|
self->tiledefs = malloc(self->tiledefs_len * sizeof(TileDef));
|
||||||
|
|
||||||
|
LOG_INFO("tiledefs_len: %zu", self->tiledefs_len);
|
||||||
|
LOG_INFO("resolution: %d, %d", resolution.x, resolution.y);
|
||||||
|
LOG_INFO("grid: %d, %d", grid.x, grid.y);
|
||||||
|
|
||||||
|
for(size_t tid = 0; tid < self->tiledefs_len; ++tid) {
|
||||||
|
self->tiledefs[tid] = (TileDef) {
|
||||||
|
.tid = tid,
|
||||||
|
.sprite = sprite_from_spritesheet(self->atlas, tid)
|
||||||
|
};
|
||||||
|
// TODO: generate/read collision information
|
||||||
|
}
|
||||||
|
|
||||||
|
SDL_FreeSurface(atlas_surface);
|
||||||
|
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
Tileset* tileset_load(size_t uid) {
|
||||||
|
for(TilesetStore* store = _tilesets; store < _tilesets + _tilesets_len; ++store) {
|
||||||
|
if(store->iid == uid) {
|
||||||
|
return store->set;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cJSON* defs = cJSON_GetObjectItem(g_levels_json, "defs");
|
||||||
|
if(defs == NULL) {
|
||||||
|
LOG_ERROR("Failed to find defs element in levels json");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
cJSON* tilesets = cJSON_GetObjectItem(defs, "tilesets");
|
||||||
|
if(tilesets == NULL) {
|
||||||
|
LOG_ERROR("Failed to find tilesets def region in levels json");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
cJSON* tileset = NULL;
|
||||||
|
cJSON_ArrayForEach(tileset, tilesets) {
|
||||||
|
cJSON* tileset_uid = cJSON_GetObjectItem(tileset, "uid");
|
||||||
|
if(tileset_uid == NULL) continue;
|
||||||
|
LOG_INFO("finding uid: %d", tileset_uid->valueint);
|
||||||
|
if(uid == tileset_uid->valueint) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(tileset == NULL) {
|
||||||
|
LOG_ERROR("Failed to find a tileset with the uid matching %zu", uid);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return tileset_from_json(tileset);
|
||||||
|
}
|
||||||
|
|
||||||
|
void tileset_destroy(Tileset* self) {
|
||||||
|
_tileset_deallocate(self);
|
||||||
|
}
|
||||||
|
|
||||||
|
TileDef* tileset_get_tiledef(Tileset* self, size_t t) {
|
||||||
|
return &self->tiledefs[t];
|
||||||
|
}
|
||||||
|
|
||||||
|
Sprite* tiledef_get_sprite(const TileDef* self) {
|
||||||
|
return self->sprite;
|
||||||
|
}
|
17
src/tileset.h
Normal file
17
src/tileset.h
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#ifndef _fencer_tileset_h
|
||||||
|
#define _fencer_tileset_h
|
||||||
|
|
||||||
|
#include "cjson/cJSON.h"
|
||||||
|
#include "sprite.h"
|
||||||
|
|
||||||
|
typedef struct TileDef TileDef;
|
||||||
|
typedef struct Tileset Tileset;
|
||||||
|
|
||||||
|
extern Tileset* tileset_from_json(cJSON* json);
|
||||||
|
extern Tileset* tileset_load(size_t uid);
|
||||||
|
extern TileDef* tileset_get_tiledef(Tileset* self, size_t t);
|
||||||
|
extern void tileset_destroy(Tileset* self);
|
||||||
|
|
||||||
|
extern Sprite* tiledef_get_sprite(const TileDef* self);
|
||||||
|
|
||||||
|
#endif // !_fencer_tileset_h
|
|
@ -12,12 +12,17 @@ struct Transform {
|
||||||
|
|
||||||
#define IdentityTransform (Transform){ZeroVector, OneVector, 0.0f}
|
#define IdentityTransform (Transform){ZeroVector, OneVector, 0.0f}
|
||||||
|
|
||||||
|
static inline Transform transform_apply(Transform parent, Transform child);
|
||||||
|
static inline Transform transform_invert(Transform a);
|
||||||
|
static inline Vector transform_direction(Transform* self, Vector direction);
|
||||||
|
static inline Vector transform_point(Transform* self, Vector point);
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
Transform transform_apply(Transform a, Transform b) {
|
Transform transform_apply(Transform parent, Transform child) {
|
||||||
return (Transform) {
|
return (Transform) {
|
||||||
.position = vaddf(a.position, b.position),
|
.position = transform_point(&parent, child.position),
|
||||||
.scale = vmulf(a.scale, b.scale),
|
.scale = vmulf(parent.scale, child.scale),
|
||||||
.rotation = a.rotation + b.rotation
|
.rotation = parent.rotation + child.rotation
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue