diff options
-rw-r--r-- | .gitattributes | 2 | ||||
-rw-r--r-- | anim-crop-tool/main.cpp | 2 | ||||
-rw-r--r-- | anim/door_close.json | 1444 | ||||
-rw-r--r-- | anim/door_close.tga | bin | 3152411 -> 1929330 bytes | |||
-rw-r--r-- | draw/wall.cpp | 9 | ||||
-rw-r--r-- | src/anim-atlas.cpp | 10 |
6 files changed, 1149 insertions, 318 deletions
diff --git a/.gitattributes b/.gitattributes index 11d30a3c..dd0bf3eb 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6,7 +6,7 @@ *.rc text eol=lf *.vert text eol=lf *.frag text eol=lf -*.json text eol=lf +*.json -text *.sh text eol=lf *.cmake text eol=lf *.conf text eol=lf diff --git a/anim-crop-tool/main.cpp b/anim-crop-tool/main.cpp index 9e1e971c..ad92780f 100644 --- a/anim-crop-tool/main.cpp +++ b/anim-crop-tool/main.cpp @@ -292,7 +292,7 @@ int main(int argc, char** argv) const std::string base_name = anim_info.object_name + "_" + anim_info.anim_name; - if (auto pathname = opts.output_dir/(base_name + ".tga"); !atlas.dump(pathname)) { + if (auto pathname = opts.output_dir/(base_name + ".png"); !atlas.dump(pathname)) { Error{} << "error: failed writing image to" << pathname << ":" << std::strerror(errno); // NOLINT(concurrency-mt-unsafe) return EX_CANTCREAT; diff --git a/anim/door_close.json b/anim/door_close.json index 23453c8e..0f12f793 100644 --- a/anim/door_close.json +++ b/anim/door_close.json @@ -1,308 +1,1136 @@ -{ - "actionframe": 0, - "anim_name": "close", - "fps": 24, - "groups": [ - { - "frames": [ - { - "ground": "82 x 74", - "offset": "0 x 0", - "size": "55 x 68" - }, - { - "ground": "82 x 74", - "offset": "55 x 0", - "size": "55 x 68" - }, - { - "ground": "82 x 74", - "offset": "110 x 0", - "size": "55 x 68" - }, - { - "ground": "82 x 73", - "offset": "165 x 0", - "size": "55 x 68" - }, - { - "ground": "83 x 73", - "offset": "220 x 0", - "size": "56 x 68" - }, - { - "ground": "83 x 72", - "offset": "276 x 0", - "size": "56 x 67" - }, - { - "ground": "83 x 72", - "offset": "332 x 0", - "size": "56 x 67" - }, - { - "ground": "84 x 71", - "offset": "388 x 0", - "size": "57 x 66" - }, - { - "ground": "84 x 70", - "offset": "445 x 0", - "size": "57 x 65" - }, - { - "ground": "85 x 69", - "offset": "502 x 0", - "size": "58 x 64" - }, - { - "ground": "85 x 68", - "offset": "560 x 0", - "size": "58 x 63" - }, - { - "ground": "86 x 67", - "offset": "618 x 0", - "size": "59 x 62" - }, - { - "ground": "86 x 65", - "offset": "677 x 0", - "size": "59 x 61" - }, - { - "ground": "86 x 64", - "offset": "736 x 0", - "size": "59 x 59" - }, - { - "ground": "86 x 62", - "offset": "795 x 0", - "size": "59 x 58" - }, - { - "ground": "86 x 61", - "offset": "854 x 0", - "size": "59 x 56" - }, - { - "ground": "86 x 59", - "offset": "913 x 0", - "size": "59 x 55" - }, - { - "ground": "85 x 59", - "offset": "972 x 0", - "size": "59 x 57" - }, - { - "ground": "85 x 59", - "offset": "1031 x 0", - "size": "59 x 59" - }, - { - "ground": "84 x 59", - "offset": "1090 x 0", - "size": "59 x 61" - }, - { - "ground": "83 x 59", - "offset": "1149 x 0", - "size": "59 x 62" - }, - { - "ground": "82 x 59", - "offset": "1208 x 0", - "size": "58 x 65" - }, - { - "ground": "80 x 59", - "offset": "1266 x 0", - "size": "56 x 67" - }, - { - "ground": "77 x 59", - "offset": "1322 x 0", - "size": "55 x 69" - }, - { - "ground": "75 x 59", - "offset": "1377 x 0", - "size": "53 x 70" - }, - { - "ground": "72 x 59", - "offset": "1430 x 0", - "size": "50 x 72" - }, - { - "ground": "68 x 59", - "offset": "1480 x 0", - "size": "48 x 74" - }, - { - "ground": "65 x 59", - "offset": "1528 x 0", - "size": "45 x 75" - }, - { - "ground": "61 x 59", - "offset": "1573 x 0", - "size": "41 x 77" - }, - { - "ground": "57 x 59", - "offset": "1614 x 0", - "size": "37 x 78" - }, - { - "ground": "52 x 59", - "offset": "1651 x 0", - "size": "33 x 79" - }, - { - "ground": "48 x 59", - "offset": "1684 x 0", - "size": "29 x 80" - }, - { - "ground": "44 x 59", - "offset": "1713 x 0", - "size": "26 x 80" - }, - { - "ground": "40 x 59", - "offset": "1739 x 0", - "size": "22 x 81" - }, - { - "ground": "35 x 59", - "offset": "1761 x 0", - "size": "18 x 81" - }, - { - "ground": "31 x 59", - "offset": "1779 x 0", - "size": "14 x 81" - }, - { - "ground": "27 x 59", - "offset": "1793 x 0", - "size": "14 x 81" - }, - { - "ground": "24 x 59", - "offset": "1807 x 0", - "size": "14 x 81" - }, - { - "ground": "24 x 59", - "offset": "1821 x 0", - "size": "18 x 81" - }, - { - "ground": "24 x 60", - "offset": "1839 x 0", - "size": "21 x 81" - }, - { - "ground": "24 x 60", - "offset": "1860 x 0", - "size": "24 x 80" - }, - { - "ground": "24 x 60", - "offset": "1884 x 0", - "size": "27 x 80" - }, - { - "ground": "24 x 60", - "offset": "1911 x 0", - "size": "30 x 80" - }, - { - "ground": "24 x 60", - "offset": "1941 x 0", - "size": "32 x 79" - }, - { - "ground": "24 x 61", - "offset": "1973 x 0", - "size": "34 x 78" - }, - { - "ground": "23 x 61", - "offset": "2007 x 0", - "size": "36 x 78" - }, - { - "ground": "23 x 61", - "offset": "2043 x 0", - "size": "38 x 78" - }, - { - "ground": "23 x 61", - "offset": "2081 x 0", - "size": "40 x 77" - }, - { - "ground": "23 x 61", - "offset": "2121 x 0", - "size": "41 x 76" - }, - { - "ground": "23 x 61", - "offset": "2162 x 0", - "size": "43 x 76" - }, - { - "ground": "23 x 61", - "offset": "2205 x 0", - "size": "44 x 76" - }, - { - "ground": "23 x 62", - "offset": "2249 x 0", - "size": "45 x 75" - }, - { - "ground": "23 x 62", - "offset": "2294 x 0", - "size": "45 x 75" - }, - { - "ground": "23 x 62", - "offset": "2339 x 0", - "size": "46 x 75" - }, - { - "ground": "23 x 62", - "offset": "2385 x 0", - "size": "46 x 75" - } - ], - "ground": "960 x 702", - "name": "n" - }, - { - "frames": [], - "ground": "960 x 702", - "name": "e" - }, - { - "frames": [], - "ground": "960 x 702", - "name": "s" - }, - { - "frames": [], - "ground": "960 x 702", - "name": "w" - } - ], - "height": 0, - "nframes": 55, - "object_name": "door", - "pixel_size": "2432 x 324", - "width": 55 -} +{
+ "actionframe": 0,
+ "anim_name": "close",
+ "fps": 24,
+ "groups": [
+ {
+ "frames": [
+ {
+ "ground": "52 x 50",
+ "offset": "0 x 0",
+ "size": "55 x 50"
+ },
+ {
+ "ground": "52 x 50",
+ "offset": "55 x 0",
+ "size": "55 x 49"
+ },
+ {
+ "ground": "52 x 50",
+ "offset": "110 x 0",
+ "size": "55 x 49"
+ },
+ {
+ "ground": "53 x 50",
+ "offset": "165 x 0",
+ "size": "55 x 49"
+ },
+ {
+ "ground": "53 x 50",
+ "offset": "220 x 0",
+ "size": "55 x 49"
+ },
+ {
+ "ground": "53 x 49",
+ "offset": "275 x 0",
+ "size": "56 x 49"
+ },
+ {
+ "ground": "53 x 49",
+ "offset": "331 x 0",
+ "size": "56 x 48"
+ },
+ {
+ "ground": "54 x 49",
+ "offset": "387 x 0",
+ "size": "56 x 48"
+ },
+ {
+ "ground": "54 x 48",
+ "offset": "443 x 0",
+ "size": "57 x 47"
+ },
+ {
+ "ground": "54 x 47",
+ "offset": "500 x 0",
+ "size": "57 x 46"
+ },
+ {
+ "ground": "55 x 47",
+ "offset": "557 x 0",
+ "size": "57 x 46"
+ },
+ {
+ "ground": "55 x 46",
+ "offset": "614 x 0",
+ "size": "58 x 45"
+ },
+ {
+ "ground": "55 x 45",
+ "offset": "672 x 0",
+ "size": "58 x 44"
+ },
+ {
+ "ground": "55 x 44",
+ "offset": "730 x 0",
+ "size": "58 x 43"
+ },
+ {
+ "ground": "55 x 43",
+ "offset": "788 x 0",
+ "size": "58 x 42"
+ },
+ {
+ "ground": "55 x 42",
+ "offset": "846 x 0",
+ "size": "58 x 41"
+ },
+ {
+ "ground": "55 x 41",
+ "offset": "904 x 0",
+ "size": "58 x 40"
+ },
+ {
+ "ground": "55 x 41",
+ "offset": "962 x 0",
+ "size": "57 x 40"
+ },
+ {
+ "ground": "54 x 41",
+ "offset": "1019 x 0",
+ "size": "57 x 40"
+ },
+ {
+ "ground": "54 x 41",
+ "offset": "1076 x 0",
+ "size": "57 x 41"
+ },
+ {
+ "ground": "53 x 40",
+ "offset": "1133 x 0",
+ "size": "56 x 42"
+ },
+ {
+ "ground": "52 x 40",
+ "offset": "1189 x 0",
+ "size": "55 x 43"
+ },
+ {
+ "ground": "51 x 40",
+ "offset": "1244 x 0",
+ "size": "53 x 45"
+ },
+ {
+ "ground": "49 x 40",
+ "offset": "1297 x 0",
+ "size": "52 x 46"
+ },
+ {
+ "ground": "48 x 40",
+ "offset": "1349 x 0",
+ "size": "50 x 47"
+ },
+ {
+ "ground": "46 x 40",
+ "offset": "1399 x 0",
+ "size": "48 x 48"
+ },
+ {
+ "ground": "43 x 40",
+ "offset": "1447 x 0",
+ "size": "46 x 49"
+ },
+ {
+ "ground": "41 x 40",
+ "offset": "1493 x 0",
+ "size": "44 x 50"
+ },
+ {
+ "ground": "38 x 40",
+ "offset": "1537 x 0",
+ "size": "41 x 51"
+ },
+ {
+ "ground": "36 x 40",
+ "offset": "1578 x 0",
+ "size": "38 x 52"
+ },
+ {
+ "ground": "32 x 40",
+ "offset": "1616 x 0",
+ "size": "35 x 53"
+ },
+ {
+ "ground": "30 x 40",
+ "offset": "1651 x 0",
+ "size": "32 x 53"
+ },
+ {
+ "ground": "27 x 40",
+ "offset": "1683 x 0",
+ "size": "29 x 54"
+ },
+ {
+ "ground": "24 x 40",
+ "offset": "1712 x 0",
+ "size": "27 x 54"
+ },
+ {
+ "ground": "21 x 40",
+ "offset": "1739 x 0",
+ "size": "24 x 54"
+ },
+ {
+ "ground": "19 x 40",
+ "offset": "1763 x 0",
+ "size": "21 x 54"
+ },
+ {
+ "ground": "16 x 40",
+ "offset": "1784 x 0",
+ "size": "18 x 54"
+ },
+ {
+ "ground": "14 x 41",
+ "offset": "1802 x 0",
+ "size": "16 x 54"
+ },
+ {
+ "ground": "14 x 41",
+ "offset": "1818 x 0",
+ "size": "16 x 54"
+ },
+ {
+ "ground": "14 x 41",
+ "offset": "1834 x 0",
+ "size": "16 x 54"
+ },
+ {
+ "ground": "14 x 41",
+ "offset": "1850 x 0",
+ "size": "16 x 54"
+ },
+ {
+ "ground": "14 x 41",
+ "offset": "1866 x 0",
+ "size": "18 x 54"
+ },
+ {
+ "ground": "13 x 41",
+ "offset": "1884 x 0",
+ "size": "20 x 53"
+ },
+ {
+ "ground": "13 x 41",
+ "offset": "1904 x 0",
+ "size": "21 x 53"
+ },
+ {
+ "ground": "13 x 42",
+ "offset": "1925 x 0",
+ "size": "23 x 52"
+ },
+ {
+ "ground": "13 x 42",
+ "offset": "1948 x 0",
+ "size": "24 x 52"
+ },
+ {
+ "ground": "13 x 42",
+ "offset": "1972 x 0",
+ "size": "26 x 52"
+ },
+ {
+ "ground": "13 x 42",
+ "offset": "1998 x 0",
+ "size": "27 x 52"
+ },
+ {
+ "ground": "13 x 42",
+ "offset": "2025 x 0",
+ "size": "28 x 51"
+ },
+ {
+ "ground": "13 x 42",
+ "offset": "2053 x 0",
+ "size": "29 x 51"
+ },
+ {
+ "ground": "13 x 42",
+ "offset": "2082 x 0",
+ "size": "29 x 51"
+ },
+ {
+ "ground": "13 x 42",
+ "offset": "2111 x 0",
+ "size": "30 x 50"
+ },
+ {
+ "ground": "13 x 42",
+ "offset": "2141 x 0",
+ "size": "30 x 50"
+ },
+ {
+ "ground": "13 x 42",
+ "offset": "2171 x 0",
+ "size": "31 x 50"
+ },
+ {
+ "ground": "13 x 42",
+ "offset": "2202 x 0",
+ "size": "31 x 50"
+ }
+ ],
+ "ground": "938 x 712",
+ "name": "n"
+ },
+ {
+ "frames": [
+ {
+ "ground": "-11 x 62",
+ "offset": "0 x 54",
+ "size": "23 x 52"
+ },
+ {
+ "ground": "-11 x 62",
+ "offset": "23 x 54",
+ "size": "23 x 52"
+ },
+ {
+ "ground": "-11 x 62",
+ "offset": "46 x 54",
+ "size": "23 x 52"
+ },
+ {
+ "ground": "-11 x 62",
+ "offset": "69 x 54",
+ "size": "23 x 53"
+ },
+ {
+ "ground": "-11 x 62",
+ "offset": "92 x 54",
+ "size": "22 x 53"
+ },
+ {
+ "ground": "-11 x 62",
+ "offset": "114 x 54",
+ "size": "21 x 53"
+ },
+ {
+ "ground": "-11 x 63",
+ "offset": "135 x 54",
+ "size": "21 x 53"
+ },
+ {
+ "ground": "-11 x 63",
+ "offset": "156 x 54",
+ "size": "20 x 53"
+ },
+ {
+ "ground": "-11 x 63",
+ "offset": "176 x 54",
+ "size": "19 x 53"
+ },
+ {
+ "ground": "-10 x 63",
+ "offset": "195 x 54",
+ "size": "18 x 54"
+ },
+ {
+ "ground": "-10 x 63",
+ "offset": "213 x 54",
+ "size": "17 x 54"
+ },
+ {
+ "ground": "-10 x 63",
+ "offset": "230 x 54",
+ "size": "15 x 54"
+ },
+ {
+ "ground": "-10 x 63",
+ "offset": "245 x 54",
+ "size": "14 x 54"
+ },
+ {
+ "ground": "-10 x 63",
+ "offset": "259 x 54",
+ "size": "12 x 54"
+ },
+ {
+ "ground": "-10 x 63",
+ "offset": "271 x 54",
+ "size": "10 x 54"
+ },
+ {
+ "ground": "-9 x 63",
+ "offset": "281 x 54",
+ "size": "9 x 54"
+ },
+ {
+ "ground": "-7 x 63",
+ "offset": "290 x 54",
+ "size": "9 x 54"
+ },
+ {
+ "ground": "-5 x 63",
+ "offset": "299 x 54",
+ "size": "10 x 54"
+ },
+ {
+ "ground": "-2 x 63",
+ "offset": "309 x 54",
+ "size": "12 x 54"
+ },
+ {
+ "ground": "0 x 63",
+ "offset": "321 x 54",
+ "size": "14 x 54"
+ },
+ {
+ "ground": "3 x 62",
+ "offset": "335 x 54",
+ "size": "17 x 54"
+ },
+ {
+ "ground": "5 x 62",
+ "offset": "352 x 54",
+ "size": "19 x 53"
+ },
+ {
+ "ground": "7 x 61",
+ "offset": "371 x 54",
+ "size": "21 x 53"
+ },
+ {
+ "ground": "9 x 60",
+ "offset": "392 x 54",
+ "size": "24 x 52"
+ },
+ {
+ "ground": "12 x 60",
+ "offset": "416 x 54",
+ "size": "26 x 52"
+ },
+ {
+ "ground": "14 x 59",
+ "offset": "442 x 54",
+ "size": "28 x 51"
+ },
+ {
+ "ground": "17 x 57",
+ "offset": "470 x 54",
+ "size": "31 x 50"
+ },
+ {
+ "ground": "19 x 56",
+ "offset": "501 x 54",
+ "size": "33 x 49"
+ },
+ {
+ "ground": "20 x 55",
+ "offset": "534 x 54",
+ "size": "34 x 48"
+ },
+ {
+ "ground": "22 x 53",
+ "offset": "568 x 54",
+ "size": "36 x 47"
+ },
+ {
+ "ground": "23 x 52",
+ "offset": "604 x 54",
+ "size": "37 x 45"
+ },
+ {
+ "ground": "24 x 51",
+ "offset": "641 x 54",
+ "size": "38 x 44"
+ },
+ {
+ "ground": "25 x 49",
+ "offset": "679 x 54",
+ "size": "39 x 42"
+ },
+ {
+ "ground": "26 x 47",
+ "offset": "718 x 54",
+ "size": "40 x 41"
+ },
+ {
+ "ground": "26 x 46",
+ "offset": "758 x 54",
+ "size": "40 x 39"
+ },
+ {
+ "ground": "26 x 44",
+ "offset": "798 x 54",
+ "size": "40 x 38"
+ },
+ {
+ "ground": "25 x 43",
+ "offset": "838 x 54",
+ "size": "40 x 36"
+ },
+ {
+ "ground": "25 x 43",
+ "offset": "878 x 54",
+ "size": "40 x 38"
+ },
+ {
+ "ground": "25 x 43",
+ "offset": "918 x 54",
+ "size": "40 x 39"
+ },
+ {
+ "ground": "25 x 43",
+ "offset": "958 x 54",
+ "size": "40 x 41"
+ },
+ {
+ "ground": "24 x 42",
+ "offset": "998 x 54",
+ "size": "39 x 42"
+ },
+ {
+ "ground": "23 x 42",
+ "offset": "1037 x 54",
+ "size": "39 x 43"
+ },
+ {
+ "ground": "22 x 42",
+ "offset": "1076 x 54",
+ "size": "38 x 44"
+ },
+ {
+ "ground": "21 x 42",
+ "offset": "1114 x 54",
+ "size": "38 x 45"
+ },
+ {
+ "ground": "20 x 42",
+ "offset": "1152 x 54",
+ "size": "37 x 46"
+ },
+ {
+ "ground": "19 x 42",
+ "offset": "1189 x 54",
+ "size": "36 x 46"
+ },
+ {
+ "ground": "19 x 42",
+ "offset": "1225 x 54",
+ "size": "36 x 47"
+ },
+ {
+ "ground": "18 x 42",
+ "offset": "1261 x 54",
+ "size": "35 x 47"
+ },
+ {
+ "ground": "17 x 42",
+ "offset": "1296 x 54",
+ "size": "34 x 48"
+ },
+ {
+ "ground": "16 x 42",
+ "offset": "1330 x 54",
+ "size": "34 x 48"
+ },
+ {
+ "ground": "15 x 42",
+ "offset": "1364 x 54",
+ "size": "33 x 49"
+ },
+ {
+ "ground": "15 x 42",
+ "offset": "1397 x 54",
+ "size": "32 x 49"
+ },
+ {
+ "ground": "14 x 42",
+ "offset": "1429 x 54",
+ "size": "32 x 49"
+ },
+ {
+ "ground": "14 x 42",
+ "offset": "1461 x 54",
+ "size": "32 x 49"
+ },
+ {
+ "ground": "13 x 42",
+ "offset": "1493 x 54",
+ "size": "31 x 50"
+ }
+ ],
+ "ground": "938 x 712",
+ "name": "e"
+ },
+ {
+ "frames": [
+ {
+ "ground": "-20 x 30",
+ "offset": "0 x 108",
+ "size": "37 x 46"
+ },
+ {
+ "ground": "-20 x 30",
+ "offset": "37 x 108",
+ "size": "37 x 46"
+ },
+ {
+ "ground": "-20 x 30",
+ "offset": "74 x 108",
+ "size": "37 x 46"
+ },
+ {
+ "ground": "-20 x 30",
+ "offset": "111 x 108",
+ "size": "37 x 45"
+ },
+ {
+ "ground": "-20 x 30",
+ "offset": "148 x 108",
+ "size": "37 x 45"
+ },
+ {
+ "ground": "-20 x 30",
+ "offset": "185 x 108",
+ "size": "38 x 45"
+ },
+ {
+ "ground": "-20 x 30",
+ "offset": "223 x 108",
+ "size": "38 x 44"
+ },
+ {
+ "ground": "-20 x 30",
+ "offset": "261 x 108",
+ "size": "38 x 44"
+ },
+ {
+ "ground": "-20 x 30",
+ "offset": "299 x 108",
+ "size": "38 x 44"
+ },
+ {
+ "ground": "-20 x 30",
+ "offset": "337 x 108",
+ "size": "39 x 43"
+ },
+ {
+ "ground": "-20 x 31",
+ "offset": "376 x 108",
+ "size": "39 x 42"
+ },
+ {
+ "ground": "-20 x 31",
+ "offset": "415 x 108",
+ "size": "39 x 41"
+ },
+ {
+ "ground": "-20 x 31",
+ "offset": "454 x 108",
+ "size": "40 x 41"
+ },
+ {
+ "ground": "-20 x 31",
+ "offset": "494 x 108",
+ "size": "40 x 40"
+ },
+ {
+ "ground": "-20 x 31",
+ "offset": "534 x 108",
+ "size": "40 x 39"
+ },
+ {
+ "ground": "-20 x 31",
+ "offset": "574 x 108",
+ "size": "40 x 37"
+ },
+ {
+ "ground": "-20 x 31",
+ "offset": "614 x 108",
+ "size": "40 x 37"
+ },
+ {
+ "ground": "-20 x 32",
+ "offset": "654 x 108",
+ "size": "40 x 38"
+ },
+ {
+ "ground": "-19 x 34",
+ "offset": "694 x 108",
+ "size": "40 x 39"
+ },
+ {
+ "ground": "-19 x 35",
+ "offset": "734 x 108",
+ "size": "40 x 41"
+ },
+ {
+ "ground": "-19 x 36",
+ "offset": "774 x 108",
+ "size": "39 x 42"
+ },
+ {
+ "ground": "-18 x 38",
+ "offset": "813 x 108",
+ "size": "39 x 43"
+ },
+ {
+ "ground": "-18 x 39",
+ "offset": "852 x 108",
+ "size": "38 x 45"
+ },
+ {
+ "ground": "-18 x 41",
+ "offset": "890 x 108",
+ "size": "37 x 46"
+ },
+ {
+ "ground": "-17 x 42",
+ "offset": "927 x 108",
+ "size": "35 x 47"
+ },
+ {
+ "ground": "-17 x 43",
+ "offset": "962 x 108",
+ "size": "34 x 48"
+ },
+ {
+ "ground": "-16 x 44",
+ "offset": "996 x 108",
+ "size": "32 x 49"
+ },
+ {
+ "ground": "-16 x 45",
+ "offset": "1028 x 108",
+ "size": "30 x 50"
+ },
+ {
+ "ground": "-16 x 46",
+ "offset": "1058 x 108",
+ "size": "27 x 51"
+ },
+ {
+ "ground": "-15 x 47",
+ "offset": "1085 x 108",
+ "size": "25 x 52"
+ },
+ {
+ "ground": "-15 x 47",
+ "offset": "1110 x 108",
+ "size": "22 x 53"
+ },
+ {
+ "ground": "-15 x 48",
+ "offset": "1132 x 108",
+ "size": "20 x 53"
+ },
+ {
+ "ground": "-14 x 48",
+ "offset": "1152 x 108",
+ "size": "17 x 54"
+ },
+ {
+ "ground": "-14 x 49",
+ "offset": "1169 x 108",
+ "size": "15 x 54"
+ },
+ {
+ "ground": "-14 x 49",
+ "offset": "1184 x 108",
+ "size": "12 x 54"
+ },
+ {
+ "ground": "-14 x 49",
+ "offset": "1196 x 108",
+ "size": "9 x 54"
+ },
+ {
+ "ground": "-11 x 49",
+ "offset": "1205 x 108",
+ "size": "9 x 54"
+ },
+ {
+ "ground": "-9 x 48",
+ "offset": "1214 x 108",
+ "size": "10 x 54"
+ },
+ {
+ "ground": "-6 x 48",
+ "offset": "1224 x 108",
+ "size": "12 x 54"
+ },
+ {
+ "ground": "-4 x 48",
+ "offset": "1236 x 108",
+ "size": "14 x 54"
+ },
+ {
+ "ground": "-2 x 48",
+ "offset": "1250 x 108",
+ "size": "16 x 54"
+ },
+ {
+ "ground": "0 x 47",
+ "offset": "1266 x 108",
+ "size": "18 x 53"
+ },
+ {
+ "ground": "2 x 47",
+ "offset": "1284 x 108",
+ "size": "20 x 53"
+ },
+ {
+ "ground": "3 x 46",
+ "offset": "1304 x 108",
+ "size": "21 x 53"
+ },
+ {
+ "ground": "5 x 46",
+ "offset": "1325 x 108",
+ "size": "23 x 53"
+ },
+ {
+ "ground": "6 x 46",
+ "offset": "1348 x 108",
+ "size": "24 x 52"
+ },
+ {
+ "ground": "8 x 45",
+ "offset": "1372 x 108",
+ "size": "26 x 52"
+ },
+ {
+ "ground": "9 x 45",
+ "offset": "1398 x 108",
+ "size": "27 x 52"
+ },
+ {
+ "ground": "10 x 44",
+ "offset": "1425 x 108",
+ "size": "28 x 51"
+ },
+ {
+ "ground": "11 x 44",
+ "offset": "1453 x 108",
+ "size": "29 x 51"
+ },
+ {
+ "ground": "11 x 43",
+ "offset": "1482 x 108",
+ "size": "29 x 51"
+ },
+ {
+ "ground": "12 x 43",
+ "offset": "1511 x 108",
+ "size": "30 x 50"
+ },
+ {
+ "ground": "12 x 43",
+ "offset": "1541 x 108",
+ "size": "30 x 50"
+ },
+ {
+ "ground": "13 x 43",
+ "offset": "1571 x 108",
+ "size": "31 x 50"
+ },
+ {
+ "ground": "13 x 42",
+ "offset": "1602 x 108",
+ "size": "31 x 50"
+ }
+ ],
+ "ground": "938 x 712",
+ "name": "s"
+ },
+ {
+ "frames": [
+ {
+ "ground": "29 x 26",
+ "offset": "0 x 162",
+ "size": "23 x 53"
+ },
+ {
+ "ground": "29 x 26",
+ "offset": "23 x 162",
+ "size": "23 x 53"
+ },
+ {
+ "ground": "29 x 26",
+ "offset": "46 x 162",
+ "size": "23 x 53"
+ },
+ {
+ "ground": "29 x 26",
+ "offset": "69 x 162",
+ "size": "23 x 53"
+ },
+ {
+ "ground": "28 x 26",
+ "offset": "92 x 162",
+ "size": "22 x 53"
+ },
+ {
+ "ground": "27 x 26",
+ "offset": "114 x 162",
+ "size": "21 x 53"
+ },
+ {
+ "ground": "27 x 26",
+ "offset": "135 x 162",
+ "size": "21 x 53"
+ },
+ {
+ "ground": "26 x 26",
+ "offset": "156 x 162",
+ "size": "20 x 53"
+ },
+ {
+ "ground": "25 x 26",
+ "offset": "176 x 162",
+ "size": "19 x 53"
+ },
+ {
+ "ground": "24 x 26",
+ "offset": "195 x 162",
+ "size": "18 x 54"
+ },
+ {
+ "ground": "22 x 26",
+ "offset": "213 x 162",
+ "size": "17 x 54"
+ },
+ {
+ "ground": "21 x 26",
+ "offset": "230 x 162",
+ "size": "15 x 54"
+ },
+ {
+ "ground": "19 x 26",
+ "offset": "245 x 162",
+ "size": "14 x 54"
+ },
+ {
+ "ground": "17 x 26",
+ "offset": "259 x 162",
+ "size": "12 x 54"
+ },
+ {
+ "ground": "15 x 26",
+ "offset": "271 x 162",
+ "size": "10 x 54"
+ },
+ {
+ "ground": "13 x 26",
+ "offset": "281 x 162",
+ "size": "9 x 54"
+ },
+ {
+ "ground": "11 x 26",
+ "offset": "290 x 162",
+ "size": "9 x 54"
+ },
+ {
+ "ground": "10 x 26",
+ "offset": "299 x 162",
+ "size": "10 x 54"
+ },
+ {
+ "ground": "9 x 26",
+ "offset": "309 x 162",
+ "size": "12 x 54"
+ },
+ {
+ "ground": "9 x 26",
+ "offset": "321 x 162",
+ "size": "14 x 54"
+ },
+ {
+ "ground": "9 x 26",
+ "offset": "335 x 162",
+ "size": "17 x 54"
+ },
+ {
+ "ground": "9 x 27",
+ "offset": "352 x 162",
+ "size": "19 x 53"
+ },
+ {
+ "ground": "9 x 27",
+ "offset": "371 x 162",
+ "size": "21 x 53"
+ },
+ {
+ "ground": "9 x 27",
+ "offset": "392 x 162",
+ "size": "24 x 52"
+ },
+ {
+ "ground": "9 x 27",
+ "offset": "416 x 162",
+ "size": "26 x 52"
+ },
+ {
+ "ground": "9 x 27",
+ "offset": "442 x 162",
+ "size": "28 x 51"
+ },
+ {
+ "ground": "9 x 28",
+ "offset": "470 x 162",
+ "size": "30 x 50"
+ },
+ {
+ "ground": "9 x 28",
+ "offset": "500 x 162",
+ "size": "33 x 49"
+ },
+ {
+ "ground": "9 x 28",
+ "offset": "533 x 162",
+ "size": "34 x 48"
+ },
+ {
+ "ground": "9 x 28",
+ "offset": "567 x 162",
+ "size": "36 x 47"
+ },
+ {
+ "ground": "9 x 28",
+ "offset": "603 x 162",
+ "size": "37 x 45"
+ },
+ {
+ "ground": "9 x 28",
+ "offset": "640 x 162",
+ "size": "38 x 44"
+ },
+ {
+ "ground": "9 x 29",
+ "offset": "678 x 162",
+ "size": "39 x 42"
+ },
+ {
+ "ground": "9 x 29",
+ "offset": "717 x 162",
+ "size": "39 x 41"
+ },
+ {
+ "ground": "9 x 29",
+ "offset": "756 x 162",
+ "size": "40 x 40"
+ },
+ {
+ "ground": "9 x 29",
+ "offset": "796 x 162",
+ "size": "40 x 38"
+ },
+ {
+ "ground": "9 x 29",
+ "offset": "836 x 162",
+ "size": "40 x 37"
+ },
+ {
+ "ground": "10 x 30",
+ "offset": "876 x 162",
+ "size": "40 x 38"
+ },
+ {
+ "ground": "10 x 32",
+ "offset": "916 x 162",
+ "size": "40 x 39"
+ },
+ {
+ "ground": "10 x 33",
+ "offset": "956 x 162",
+ "size": "40 x 40"
+ },
+ {
+ "ground": "11 x 34",
+ "offset": "996 x 162",
+ "size": "39 x 42"
+ },
+ {
+ "ground": "11 x 35",
+ "offset": "1035 x 162",
+ "size": "39 x 43"
+ },
+ {
+ "ground": "11 x 36",
+ "offset": "1074 x 162",
+ "size": "38 x 44"
+ },
+ {
+ "ground": "12 x 37",
+ "offset": "1112 x 162",
+ "size": "38 x 45"
+ },
+ {
+ "ground": "12 x 38",
+ "offset": "1150 x 162",
+ "size": "37 x 46"
+ },
+ {
+ "ground": "12 x 39",
+ "offset": "1187 x 162",
+ "size": "36 x 46"
+ },
+ {
+ "ground": "12 x 40",
+ "offset": "1223 x 162",
+ "size": "36 x 47"
+ },
+ {
+ "ground": "12 x 40",
+ "offset": "1259 x 162",
+ "size": "35 x 47"
+ },
+ {
+ "ground": "13 x 41",
+ "offset": "1294 x 162",
+ "size": "34 x 48"
+ },
+ {
+ "ground": "13 x 41",
+ "offset": "1328 x 162",
+ "size": "34 x 48"
+ },
+ {
+ "ground": "13 x 41",
+ "offset": "1362 x 162",
+ "size": "33 x 49"
+ },
+ {
+ "ground": "13 x 42",
+ "offset": "1395 x 162",
+ "size": "32 x 49"
+ },
+ {
+ "ground": "13 x 42",
+ "offset": "1427 x 162",
+ "size": "32 x 49"
+ },
+ {
+ "ground": "13 x 42",
+ "offset": "1459 x 162",
+ "size": "32 x 50"
+ },
+ {
+ "ground": "13 x 42",
+ "offset": "1491 x 162",
+ "size": "31 x 50"
+ }
+ ],
+ "ground": "938 x 712",
+ "name": "w"
+ }
+ ],
+ "height": 0,
+ "nframes": 55,
+ "object_name": "door",
+ "pixel_size": "2233 x 216",
+ "width": 55
+}
diff --git a/anim/door_close.tga b/anim/door_close.tga Binary files differindex 7ad6afba..cc037b43 100644 --- a/anim/door_close.tga +++ b/anim/door_close.tga diff --git a/draw/wall.cpp b/draw/wall.cpp index 68f78821..353925f6 100644 --- a/draw/wall.cpp +++ b/draw/wall.cpp @@ -72,9 +72,12 @@ void wall_mesh::draw(tile_shader& shader, chunk& c) tex.bind(0); last_texture = &a.atlas->texture(); auto frame = a.frame; -#if 0 - static std::uint8_t f = 0; - frame.frame = f++ % a.atlas->info().nframes; +#if 1 + static std::size_t f = 0; + f++; + if (f > a.atlas->info().nframes * 3) + f = 0; + frame.frame = (scenery::frame_t)std::min(f, a.atlas->info().nframes - 1); #endif _anim_mesh.draw(shader, *a.atlas, a.atlas->frame(a.frame.r, frame.frame), local_coords{idx}); } diff --git a/src/anim-atlas.cpp b/src/anim-atlas.cpp index 093ece73..0bd886bc 100644 --- a/src/anim-atlas.cpp +++ b/src/anim-atlas.cpp @@ -92,12 +92,12 @@ auto anim_atlas::frame_quad(const Vector3& center, rotation r, std::size_t i) co auto anim_atlas::frame_quad(const Vector3& center, const anim_frame& frame) noexcept -> quad { const auto size = Vector2d(frame.size); - const double gx = frame.ground[0], gy = frame.ground[1]; + const double gx = frame.ground[0]*.25, gy = frame.ground[1]*.25; const double sx = size[0]*.25, sy = size[1]*.25; - const auto bottom_right = Vector2(tile_shader::unproject({ -sx - gx, sy - gy })), - top_right = Vector2(tile_shader::unproject({ -sx - gx, -sy - gy })), - bottom_left = Vector2(tile_shader::unproject({ sx - gx, sy - gy })), - top_left = Vector2(tile_shader::unproject({ sx - gx, -sy - gy })); + const auto bottom_right = Vector2(tile_shader::unproject({ sx - gx, sy - gy })), + top_right = Vector2(tile_shader::unproject({ sx - gx, -sy - gy })), + bottom_left = Vector2(tile_shader::unproject({ -sx - gx, sy - gy })), + top_left = Vector2(tile_shader::unproject({ -sx - gx, -sy - gy })); const auto cx = center[0], cy = center[1], cz = center[2]; return {{ { cx + bottom_right[0], cy + bottom_right[1], cz }, |