diff --git a/src/demo/lizard/levels.hpp b/src/demo/lizard/levels.hpp index 587eec0..a2fdb0b 100644 --- a/src/demo/lizard/levels.hpp +++ b/src/demo/lizard/levels.hpp @@ -2,127 +2,1527 @@ namespace demo { - world::platform level1_platforms[] = { + world::platform igh25_map1_platforms[] = { { - .position = vec3( 23.500, -28.000, 7.500), - .scale = vec3( 5.000, 1.000, 5.000), - }, - { - .position = vec3( 30.500, -35.000, 7.500), - .scale = vec3( 5.000, 1.000, 5.000), - }, - { - .position = vec3( 37.500, -42.000, 7.500), - .scale = vec3( 5.000, 1.000, 5.000), - }, - { - .position = vec3( 44.500, -51.000, 7.500), - .scale = vec3( 5.000, 1.000, 5.000), - }, - { - .position = vec3( 51.500, -58.000, 7.500), - .scale = vec3( 5.000, 1.000, 5.000), - }, - { - .position = vec3( 59.500, -66.000, 7.500), - .scale = vec3( 5.000, 1.000, 5.000), - }, - { - .position = vec3( 68.500, -77.000, 7.500), - .scale = vec3( 5.000, 1.000, 5.000), - }, - { - .position = vec3( 7.500, 0.000, 7.500), + .position = vec3( 2.500, 0.000, 2.500), .scale = vec3( 3.000, 1.000, 3.000), }, { - .position = vec3( 12.500, 0.000, 7.500), + .position = vec3( 6.500, 0.000, 2.500), .scale = vec3( 3.000, 1.000, 3.000), }, { - .position = vec3( 17.500, 0.000, 7.500), + .position = vec3( 161.500, 23.000, 23.000), + .scale = vec3( 1.000, 1.000, 44.000), + }, + { + .position = vec3( 158.500, 22.000, 23.000), + .scale = vec3( 1.000, 1.000, 42.000), + }, + { + .position = vec3( 165.500, 24.000, 23.000), + .scale = vec3( 1.000, 1.000, 42.000), + }, + { + .position = vec3( 155.500, 21.000, 23.000), + .scale = vec3( 1.000, 1.000, 40.000), + }, + { + .position = vec3( 168.500, 25.000, 23.000), + .scale = vec3( 1.000, 1.000, 40.000), + }, + { + .position = vec3( 152.500, 20.000, 23.000), + .scale = vec3( 1.000, 1.000, 38.000), + }, + { + .position = vec3( 170.500, 26.000, 23.000), + .scale = vec3( 1.000, 1.000, 38.000), + }, + { + .position = vec3( 2.500, 0.000, 6.500), .scale = vec3( 3.000, 1.000, 3.000), }, { - .position = vec3( 77.500, -91.000, 9.500), - .scale = vec3( 5.000, 1.000, 5.000), - }, - { - .position = vec3( 12.500, 0.000, 12.500), + .position = vec3( 10.500, 0.000, 6.500), .scale = vec3( 3.000, 1.000, 3.000), }, { - .position = vec3( 39.500, 3.000, 18.500), - .scale = vec3( 37.000, 1.000, 13.000), + .position = vec3( 149.500, 19.000, 23.000), + .scale = vec3( 1.000, 1.000, 36.000), }, { - .position = vec3( 84.500, -101.000, 15.500), + .position = vec3( 172.500, 27.000, 23.000), + .scale = vec3( 1.000, 1.000, 36.000), + }, + { + .position = vec3( 146.500, 18.000, 23.000), + .scale = vec3( 1.000, 1.000, 34.000), + }, + { + .position = vec3( 175.500, 28.000, 23.000), + .scale = vec3( 1.000, 1.000, 34.000), + }, + { + .position = vec3( 143.500, 17.000, 23.000), + .scale = vec3( 1.000, 1.000, 32.000), + }, + { + .position = vec3( 179.500, 29.000, 23.000), + .scale = vec3( 1.000, 1.000, 32.000), + }, + { + .position = vec3( 140.500, 16.000, 23.000), + .scale = vec3( 1.000, 1.000, 30.000), + }, + { + .position = vec3( 182.500, 30.000, 23.000), + .scale = vec3( 1.000, 1.000, 30.000), + }, + { + .position = vec3( 240.000, 127.000, 9.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 243.000, 127.000, 8.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 6.500, 0.000, 10.500), + .scale = vec3( 3.000, 1.000, 3.000), + }, + { + .position = vec3( 10.500, 0.000, 10.500), + .scale = vec3( 3.000, 1.000, 3.000), + }, + { + .position = vec3( 137.500, 15.000, 23.000), + .scale = vec3( 1.000, 1.000, 28.000), + }, + { + .position = vec3( 184.500, 30.000, 23.000), + .scale = vec3( 1.000, 1.000, 28.000), + }, + { + .position = vec3( 248.000, 127.000, 12.500), + .scale = vec3( 2.000, 1.000, 7.000), + }, + { + .position = vec3( 134.500, 14.000, 23.000), + .scale = vec3( 1.000, 1.000, 26.000), + }, + { + .position = vec3( 186.500, 31.000, 23.000), + .scale = vec3( 1.000, 1.000, 26.000), + }, + { + .position = vec3( 131.500, 13.000, 23.000), + .scale = vec3( 1.000, 1.000, 24.000), + }, + { + .position = vec3( 189.500, 32.000, 23.000), + .scale = vec3( 1.000, 1.000, 24.000), + }, + { + .position = vec3( 128.500, 12.000, 23.000), + .scale = vec3( 1.000, 1.000, 22.000), + }, + { + .position = vec3( 193.500, 33.000, 23.000), + .scale = vec3( 1.000, 1.000, 22.000), + }, + { + .position = vec3( 243.500, 127.000, 12.500), + .scale = vec3( 5.000, 1.000, 1.000), + }, + { + .position = vec3( 14.500, 0.000, 14.500), + .scale = vec3( 3.000, 1.000, 3.000), + }, + { + .position = vec3( 22.500, 0.000, 16.500), + .scale = vec3( 3.000, 1.000, 7.000), + }, + { + .position = vec3( 125.500, 11.000, 23.000), + .scale = vec3( 1.000, 1.000, 20.000), + }, + { + .position = vec3( 196.500, 34.000, 23.000), + .scale = vec3( 1.000, 1.000, 20.000), + }, + { + .position = vec3( 78.500, -8.000, 29.500), + .scale = vec3( 1.000, 1.000, 31.000), + }, + { + .position = vec3( 122.500, 10.000, 23.000), + .scale = vec3( 1.000, 1.000, 18.000), + }, + { + .position = vec3( 198.500, 35.000, 23.000), + .scale = vec3( 1.000, 1.000, 18.000), + }, + { + .position = vec3( 225.500, 127.000, 24.500), + .scale = vec3( 1.000, 1.000, 21.000), + }, + { + .position = vec3( 80.500, -7.000, 23.000), + .scale = vec3( 1.000, 1.000, 16.000), + }, + { + .position = vec3( 119.500, 9.000, 23.000), + .scale = vec3( 1.000, 1.000, 16.000), + }, + { + .position = vec3( 200.500, 36.000, 23.000), + .scale = vec3( 1.000, 1.000, 16.000), + }, + { + .position = vec3( 82.500, -6.000, 23.000), + .scale = vec3( 1.000, 1.000, 14.000), + }, + { + .position = vec3( 116.500, 8.000, 23.000), + .scale = vec3( 1.000, 1.000, 14.000), + }, + { + .position = vec3( 203.500, 37.000, 23.000), + .scale = vec3( 1.000, 1.000, 14.000), + }, + { + .position = vec3( 18.500, 0.000, 18.500), + .scale = vec3( 3.000, 1.000, 3.000), + }, + { + .position = vec3( 84.500, -5.000, 23.000), + .scale = vec3( 1.000, 1.000, 12.000), + }, + { + .position = vec3( 113.500, 7.000, 23.000), + .scale = vec3( 1.000, 1.000, 12.000), + }, + { + .position = vec3( 207.500, 38.000, 23.000), + .scale = vec3( 1.000, 1.000, 12.000), + }, + { + .position = vec3( 86.500, -4.000, 23.000), + .scale = vec3( 1.000, 1.000, 10.000), + }, + { + .position = vec3( 110.500, 6.000, 23.000), + .scale = vec3( 1.000, 1.000, 10.000), + }, + { + .position = vec3( 210.500, 39.000, 23.000), + .scale = vec3( 1.000, 1.000, 10.000), + }, + { + .position = vec3( 244.000, 127.000, 19.000), + .scale = vec3( 6.000, 1.000, 2.000), + }, + { + .position = vec3( 88.500, -3.000, 23.000), + .scale = vec3( 1.000, 1.000, 8.000), + }, + { + .position = vec3( 107.500, 5.000, 23.000), + .scale = vec3( 1.000, 1.000, 8.000), + }, + { + .position = vec3( 212.500, 40.000, 23.000), + .scale = vec3( 1.000, 1.000, 8.000), + }, + { + .position = vec3( 26.500, -8.000, 20.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 90.500, -2.000, 23.000), + .scale = vec3( 1.000, 1.000, 6.000), + }, + { + .position = vec3( 104.500, 4.000, 23.000), + .scale = vec3( 1.000, 1.000, 6.000), + }, + { + .position = vec3( 214.500, 41.000, 23.000), + .scale = vec3( 1.000, 1.000, 6.000), + }, + { + .position = vec3( 219.000, 41.000, 23.000), + .scale = vec3( 6.000, 1.000, 6.000), + }, + { + .position = vec3( 16.500, 0.000, 22.500), + .scale = vec3( 7.000, 1.000, 3.000), + }, + { + .position = vec3( 92.500, -1.000, 23.000), + .scale = vec3( 1.000, 1.000, 4.000), + }, + { + .position = vec3( 101.500, 3.000, 23.000), + .scale = vec3( 1.000, 1.000, 4.000), + }, + { + .position = vec3( 240.000, 127.000, 22.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 23.000, -1.000, 23.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 28.500, -8.000, 22.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 94.500, 0.000, 23.000), + .scale = vec3( 1.000, 1.000, 2.000), + }, + { + .position = vec3( 96.500, 1.000, 23.000), + .scale = vec3( 1.000, 1.000, 2.000), + }, + { + .position = vec3( 98.500, 2.000, 23.000), + .scale = vec3( 1.000, 1.000, 2.000), + }, + { + .position = vec3( 244.500, 127.000, 24.000), + .scale = vec3( 5.000, 1.000, 2.000), + }, + { + .position = vec3( 30.500, -8.000, 24.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 26.000, -2.000, 26.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 20.500, -8.000, 26.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 32.500, -8.000, 26.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 22.500, -8.000, 28.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 29.000, -3.000, 29.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 34.500, -8.000, 28.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 243.000, 127.000, 29.000), + .scale = vec3( 8.000, 1.000, 2.000), + }, + { + .position = vec3( 24.500, -8.000, 30.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 36.500, -8.000, 30.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 32.000, -4.000, 32.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 231.500, 127.000, 33.000), + .scale = vec3( 1.000, 1.000, 4.000), + }, + { + .position = vec3( 246.000, 127.000, 32.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 26.500, -8.000, 32.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 38.500, -8.000, 32.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 48.500, 10.000, 33.500), + .scale = vec3( 1.000, 1.000, 3.000), + }, + { + .position = vec3( 58.500, 10.000, 32.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 219.000, 32.000, 33.500), + .scale = vec3( 6.000, 1.000, 3.000), + }, + { + .position = vec3( 28.500, -8.000, 34.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 35.000, -5.000, 35.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 40.500, -8.000, 34.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 56.500, 10.000, 34.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 229.500, 127.000, 35.500), + .scale = vec3( 1.000, 1.000, 3.000), + }, + { + .position = vec3( 243.000, 127.000, 35.000), + .scale = vec3( 8.000, 1.000, 2.000), + }, + { + .position = vec3( 52.500, 10.000, 35.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 223.500, 127.000, 36.500), + .scale = vec3( 1.000, 1.000, 3.000), + }, + { + .position = vec3( 227.500, 127.000, 36.500), + .scale = vec3( 1.000, 1.000, 3.000), + }, + { + .position = vec3( 30.500, -8.000, 36.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 42.500, -8.000, 36.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 38.000, -6.000, 38.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 50.500, 10.000, 37.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 54.000, 10.000, 38.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 225.500, 127.000, 38.000), + .scale = vec3( 1.000, 1.000, 2.000), + }, + { + .position = vec3( 246.000, 127.000, 38.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 32.500, -8.000, 38.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 44.500, -8.000, 39.500), + .scale = vec3( 1.000, 1.000, 3.000), + }, + { + .position = vec3( 50.000, 10.000, 40.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 34.500, -8.000, 40.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 41.000, -7.000, 41.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 58.000, 10.000, 40.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 243.000, 127.000, 41.000), + .scale = vec3( 8.000, 1.000, 2.000), + }, + { + .position = vec3( 47.500, 10.000, 41.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 52.500, 10.000, 41.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 219.000, 22.000, 42.500), + .scale = vec3( 6.000, 1.000, 3.000), + }, + { + .position = vec3( 36.500, -8.000, 42.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 44.000, -8.000, 44.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 55.000, -8.000, 44.000), + .scale = vec3( 16.000, 1.000, 2.000), + }, + { + .position = vec3( 66.000, -8.000, 44.000), + .scale = vec3( 4.000, 1.000, 2.000), + }, + { + .position = vec3( 70.000, -8.000, 44.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 72.500, -8.000, 44.000), + .scale = vec3( 1.000, 1.000, 2.000), + }, + { + .position = vec3( 75.500, -8.000, 44.000), + .scale = vec3( 1.000, 1.000, 2.000), + }, + { + .position = vec3( 39.500, -8.000, 44.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 244.000, 127.000, 46.000), + .scale = vec3( 10.000, 1.000, 2.000), + }, + { + .position = vec3( 246.500, 127.000, 50.500), .scale = vec3( 5.000, 1.000, 5.000), }, { - .position = vec3( 8.500, 1.000, 18.500), - .scale = vec3( 5.000, 1.000, 5.000), + .position = vec3( 219.000, 12.000, 53.500), + .scale = vec3( 6.000, 1.000, 3.000), }, { - .position = vec3( 91.500, -109.000, 22.500), - .scale = vec3( 5.000, 1.000, 5.000), + .position = vec3( 197.000, -18.000, 62.000), + .scale = vec3( 6.000, 1.000, 2.000), }, { - .position = vec3( 14.500, 2.000, 24.500), - .scale = vec3( 5.000, 1.000, 5.000), + .position = vec3( 202.000, -18.000, 62.000), + .scale = vec3( 2.000, 1.000, 2.000), }, { - .position = vec3( 28.500, 4.000, 45.500), - .scale = vec3( 7.000, 1.000, 37.000), + .position = vec3( 197.000, -18.000, 65.000), + .scale = vec3( 6.000, 1.000, 2.000), }, { - .position = vec3( 41.500, 2.000, 45.500), - .scale = vec3( 7.000, 1.000, 37.000), + .position = vec3( 202.000, -18.000, 65.000), + .scale = vec3( 2.000, 1.000, 2.000), }, { - .position = vec3( 53.500, 0.000, 45.500), - .scale = vec3( 7.000, 1.000, 37.000), + .position = vec3( 219.000, -28.000, 66.500), + .scale = vec3( 6.000, 1.000, 3.000), }, { - .position = vec3( 20.500, 3.000, 30.500), - .scale = vec3( 5.000, 1.000, 5.000), + .position = vec3( 194.500, -18.000, 70.500), + .scale = vec3( 1.000, 1.000, 5.000), }, { - .position = vec3( 98.500, -117.000, 31.500), - .scale = vec3( 5.000, 1.000, 5.000), + .position = vec3( 202.500, -18.000, 70.500), + .scale = vec3( 1.000, 1.000, 5.000), }, { - .position = vec3( 106.500, -117.000, 52.500), - .scale = vec3( 29.000, 1.000, 29.000), + .position = vec3( 198.500, -18.000, 72.500), + .scale = vec3( 5.000, 1.000, 1.000), }, { - .position = vec3( 14.500, -2.000, 73.500), + .position = vec3( 242.000, -18.000, 73.500), + .scale = vec3( 8.000, 1.000, 1.000), + }, + { + .position = vec3( 194.500, -18.000, 77.500), + .scale = vec3( 1.000, 1.000, 5.000), + }, + { + .position = vec3( 202.500, -18.000, 77.500), + .scale = vec3( 1.000, 1.000, 5.000), + }, + { + .position = vec3( 243.500, -18.000, 75.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 241.500, -18.000, 76.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 198.500, -18.000, 77.500), + .scale = vec3( 5.000, 1.000, 1.000), + }, + { + .position = vec3( 242.000, -18.000, 78.500), + .scale = vec3( 8.000, 1.000, 1.000), + }, + { + .position = vec3( 211.500, -18.000, 80.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 227.500, -18.000, 80.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 219.000, -59.000, 84.000), + .scale = vec3( 6.000, 1.000, 6.000), + }, + { + .position = vec3( 195.500, -18.000, 83.500), + .scale = vec3( 3.000, 1.000, 3.000), + }, + { + .position = vec3( 213.500, -18.000, 82.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 225.500, -18.000, 82.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 239.500, -18.000, 82.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 245.500, -18.000, 82.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 209.500, -18.000, 84.500), + .scale = vec3( 9.000, 1.000, 1.000), + }, + { + .position = vec3( 231.000, -18.000, 84.500), + .scale = vec3( 12.000, 1.000, 1.000), + }, + { + .position = vec3( 242.500, -18.000, 84.500), + .scale = vec3( 7.000, 1.000, 1.000), + }, + { + .position = vec3( 198.500, -18.000, 86.500), + .scale = vec3( 9.000, 1.000, 1.000), + }, + { + .position = vec3( 213.500, -18.000, 86.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 225.500, -18.000, 86.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 239.500, -18.000, 86.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 245.500, -18.000, 86.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 211.500, -18.000, 88.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 227.500, -18.000, 88.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 194.500, -18.000, 90.500), + .scale = vec3( 1.000, 1.000, 3.000), + }, + { + .position = vec3( 202.500, -18.000, 90.500), + .scale = vec3( 1.000, 1.000, 3.000), + }, + { + .position = vec3( 219.000, -58.000, 90.500), + .scale = vec3( 4.000, 1.000, 3.000), + }, + { + .position = vec3( 198.500, -18.000, 91.000), + .scale = vec3( 1.000, 1.000, 2.000), + }, + { + .position = vec3( 242.000, -18.000, 90.500), + .scale = vec3( 8.000, 1.000, 1.000), + }, + { + .position = vec3( 238.500, -18.000, 93.500), + .scale = vec3( 1.000, 1.000, 3.000), + }, + { + .position = vec3( 245.500, -18.000, 93.500), + .scale = vec3( 1.000, 1.000, 3.000), + }, + { + .position = vec3( 198.500, -18.000, 93.500), + .scale = vec3( 9.000, 1.000, 1.000), + }, + { + .position = vec3( 219.000, -57.000, 95.500), + .scale = vec3( 4.000, 1.000, 3.000), + }, + { + .position = vec3( 242.000, -18.000, 97.500), + .scale = vec3( 8.000, 1.000, 1.000), + }, + { + .position = vec3( 219.000, -56.000, 100.500), + .scale = vec3( 4.000, 1.000, 3.000), + }, + { + .position = vec3( 238.500, -18.000, 100.500), + .scale = vec3( 1.000, 1.000, 3.000), + }, + { + .position = vec3( 242.500, -18.000, 100.000), + .scale = vec3( 1.000, 1.000, 2.000), + }, + { + .position = vec3( 245.500, -18.000, 100.500), + .scale = vec3( 1.000, 1.000, 3.000), + }, + { + .position = vec3( 219.000, -55.000, 105.500), + .scale = vec3( 4.000, 1.000, 3.000), + }, + { + .position = vec3( 219.000, -54.000, 110.500), + .scale = vec3( 4.000, 1.000, 3.000), + }, + { + .position = vec3( 219.000, -53.000, 115.500), + .scale = vec3( 4.000, 1.000, 3.000), + }, + { + .position = vec3( 219.000, -52.000, 119.500), + .scale = vec3( 6.000, 1.000, 3.000), + }, + { + .position = vec3( 219.000, -50.000, 123.500), + .scale = vec3( 6.000, 1.000, 3.000), + }, + { + .position = vec3( 219.000, -48.000, 127.500), + .scale = vec3( 6.000, 1.000, 3.000), + }, + { + .position = vec3( 219.000, -46.000, 131.500), + .scale = vec3( 6.000, 1.000, 3.000), + }, + { + .position = vec3( 219.000, -44.000, 135.500), + .scale = vec3( 6.000, 1.000, 3.000), + }, + { + .position = vec3( 219.000, -42.000, 139.500), + .scale = vec3( 6.000, 1.000, 3.000), + }, + { + .position = vec3( 219.000, -40.000, 143.500), + .scale = vec3( 6.000, 1.000, 3.000), + }, + { + .position = vec3( 217.000, -38.000, 147.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 221.000, -38.000, 147.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 219.000, -36.000, 151.500), + .scale = vec3( 6.000, 1.000, 3.000), + }, + { + .position = vec3( 219.000, -34.000, 155.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 219.000, -32.000, 159.500), + .scale = vec3( 6.000, 1.000, 3.000), + }, + { + .position = vec3( 217.000, -30.000, 163.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 221.000, -30.000, 163.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 219.000, -28.000, 167.500), + .scale = vec3( 6.000, 1.000, 3.000), + }, + { + .position = vec3( 219.000, -26.000, 171.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 37.000, -18.000, 172.500), + .scale = vec3( 6.000, 1.000, 1.000), + }, + { + .position = vec3( 70.000, -18.000, 175.000), + .scale = vec3( 2.000, 1.000, 4.000), + }, + { + .position = vec3( 81.500, -18.000, 175.000), + .scale = vec3( 3.000, 1.000, 4.000), + }, + { + .position = vec3( 96.500, -18.000, 175.000), + .scale = vec3( 19.000, 1.000, 4.000), + }, + { + .position = vec3( 121.000, -18.000, 175.000), + .scale = vec3( 18.000, 1.000, 4.000), + }, + { + .position = vec3( 33.500, -18.000, 174.500), + .scale = vec3( 5.000, 1.000, 1.000), + }, + { + .position = vec3( 40.500, -18.000, 174.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 55.500, -18.000, 175.000), + .scale = vec3( 15.000, 1.000, 2.000), + }, + { + .position = vec3( 217.000, -24.000, 175.000), + .scale = vec3( 6.000, 1.000, 2.000), + }, + { + .position = vec3( 31.000, -18.000, 176.500), + .scale = vec3( 4.000, 1.000, 1.000), + }, + { + .position = vec3( 42.000, -18.000, 176.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 213.000, -22.000, 178.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 217.000, -22.000, 178.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 29.000, -18.000, 179.500), + .scale = vec3( 4.000, 1.000, 1.000), + }, + { + .position = vec3( 42.000, -18.000, 179.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 58.500, -18.000, 179.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 70.000, -18.000, 179.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 81.500, -18.000, 179.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 88.500, -18.000, 179.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 104.500, -18.000, 179.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 120.500, -18.000, 179.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 28.500, -18.000, 181.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 57.000, -18.000, 181.500), + .scale = vec3( 4.000, 1.000, 1.000), + }, + { + .position = vec3( 70.000, -18.000, 181.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 81.500, -18.000, 181.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 88.500, -18.000, 181.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 104.500, -18.000, 181.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 120.500, -18.000, 181.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 213.000, -20.000, 182.500), + .scale = vec3( 6.000, 1.000, 3.000), + }, + { + .position = vec3( 28.000, -18.000, 183.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 55.500, -18.000, 183.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 70.000, -18.000, 184.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 81.500, -18.000, 184.500), + .scale = vec3( 3.000, 1.000, 3.000), + }, + { + .position = vec3( 92.500, -18.000, 184.500), .scale = vec3( 11.000, 1.000, 3.000), }, { - .position = vec3( 27.500, -2.000, 73.500), - .scale = vec3( 11.000, 1.000, 3.000), + .position = vec3( 104.500, -18.000, 184.500), + .scale = vec3( 3.000, 1.000, 3.000), }, { - .position = vec3( 40.500, -2.000, 73.500), - .scale = vec3( 11.000, 1.000, 3.000), + .position = vec3( 120.500, -18.000, 184.500), + .scale = vec3( 3.000, 1.000, 3.000), }, { - .position = vec3( 53.500, -2.000, 73.500), - .scale = vec3( 11.000, 1.000, 3.000), + .position = vec3( 29.000, -18.000, 185.500), + .scale = vec3( 2.000, 1.000, 1.000), }, { - .position = vec3( 66.500, -2.000, 73.500), - .scale = vec3( 11.000, 1.000, 3.000), + .position = vec3( 54.000, -18.000, 185.500), + .scale = vec3( 4.000, 1.000, 1.000), }, { - .position = vec3( 27.500, -5.000, 91.500), - .scale = vec3( 41.000, 1.000, 21.000), + .position = vec3( 75.500, -18.000, 185.500), + .scale = vec3( 7.000, 1.000, 1.000), + }, + { + .position = vec3( 211.000, -18.000, 186.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 30.000, -18.000, 187.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 52.500, -18.000, 187.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 70.000, -18.000, 187.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 75.500, -18.000, 187.500), + .scale = vec3( 7.000, 1.000, 1.000), + }, + { + .position = vec3( 81.500, -18.000, 187.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 104.500, -18.000, 187.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 120.500, -18.000, 187.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 31.500, -18.000, 189.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 50.500, -18.000, 189.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 70.000, -18.000, 189.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 81.500, -18.000, 189.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 104.500, -18.000, 189.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 120.500, -18.000, 189.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 209.000, -16.000, 190.500), + .scale = vec3( 6.000, 1.000, 3.000), + }, + { + .position = vec3( 36.500, -18.000, 191.500), + .scale = vec3( 7.000, 1.000, 1.000), + }, + { + .position = vec3( 50.000, -18.000, 191.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 70.000, -18.000, 191.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 81.500, -18.000, 191.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 104.500, -18.000, 191.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 120.500, -18.000, 191.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 38.500, -18.000, 193.500), + .scale = vec3( 5.000, 1.000, 1.000), + }, + { + .position = vec3( 49.500, -18.000, 193.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 62.000, -18.000, 193.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 70.000, -18.000, 193.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 81.500, -18.000, 193.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 104.500, -18.000, 193.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 120.500, -18.000, 193.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 205.000, -14.000, 194.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 209.000, -14.000, 194.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 40.000, -18.000, 195.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 49.500, -18.000, 195.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 61.500, -18.000, 195.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 70.000, -18.000, 195.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 81.500, -18.000, 195.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 91.000, -18.000, 195.500), + .scale = vec3( 4.000, 1.000, 1.000), + }, + { + .position = vec3( 104.500, -18.000, 195.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 120.500, -18.000, 195.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 40.000, -18.000, 198.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 49.500, -18.000, 198.000), + .scale = vec3( 3.000, 1.000, 2.000), + }, + { + .position = vec3( 70.000, -18.000, 199.000), + .scale = vec3( 2.000, 1.000, 4.000), + }, + { + .position = vec3( 81.500, -18.000, 198.500), + .scale = vec3( 3.000, 1.000, 3.000), + }, + { + .position = vec3( 97.500, -18.000, 198.500), + .scale = vec3( 17.000, 1.000, 3.000), + }, + { + .position = vec3( 120.000, -18.000, 198.500), + .scale = vec3( 20.000, 1.000, 3.000), + }, + { + .position = vec3( 204.500, -12.000, 198.500), + .scale = vec3( 7.000, 1.000, 3.000), + }, + { + .position = vec3( 25.500, -18.000, 198.500), + .scale = vec3( 3.000, 1.000, 1.000), + }, + { + .position = vec3( 58.500, -18.000, 198.500), + .scale = vec3( 5.000, 1.000, 1.000), + }, + { + .position = vec3( 32.500, -18.000, 201.000), + .scale = vec3( 17.000, 1.000, 2.000), + }, + { + .position = vec3( 54.000, -18.000, 200.500), + .scale = vec3( 8.000, 1.000, 1.000), + }, + { + .position = vec3( 202.000, -10.000, 202.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 120.000, 62.000, 206.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 129.000, 54.000, 212.000), + .scale = vec3( 2.000, 1.000, 14.000), + }, + { + .position = vec3( 199.500, -8.000, 206.500), + .scale = vec3( 7.000, 1.000, 3.000), + }, + { + .position = vec3( 123.000, 62.000, 208.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 120.000, 64.000, 213.500), + .scale = vec3( 2.000, 1.000, 11.000), + }, + { + .position = vec3( 195.000, -6.000, 210.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 199.000, -6.000, 210.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 95.000, 76.000, 211.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 102.000, 72.000, 211.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 124.000, 60.000, 211.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 81.000, 78.000, 212.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 84.000, 80.000, 212.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 87.000, 82.000, 212.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 110.000, 68.000, 213.500), + .scale = vec3( 2.000, 1.000, 5.000), + }, + { + .position = vec3( 114.000, 66.000, 212.000), + .scale = vec3( 4.000, 1.000, 2.000), + }, + { + .position = vec3( 98.000, 74.000, 215.500), + .scale = vec3( 2.000, 1.000, 7.000), + }, + { + .position = vec3( 105.000, 70.000, 215.500), + .scale = vec3( 2.000, 1.000, 7.000), + }, + { + .position = vec3( 92.000, 76.000, 216.000), + .scale = vec3( 2.000, 1.000, 6.000), + }, + { + .position = vec3( 125.000, 58.000, 214.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 194.500, -4.000, 214.500), + .scale = vec3( 7.000, 1.000, 3.000), + }, + { + .position = vec3( 81.000, 78.000, 219.000), + .scale = vec3( 2.000, 1.000, 10.000), + }, + { + .position = vec3( 84.000, 80.000, 219.000), + .scale = vec3( 2.000, 1.000, 10.000), + }, + { + .position = vec3( 87.000, 84.000, 219.000), + .scale = vec3( 2.000, 1.000, 10.000), + }, + { + .position = vec3( 112.500, -18.000, 215.000), + .scale = vec3( 1.000, 1.000, 2.000), + }, + { + .position = vec3( 115.000, 64.000, 216.500), + .scale = vec3( 2.000, 1.000, 5.000), + }, + { + .position = vec3( 126.000, 56.000, 217.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 111.000, 68.000, 218.000), + .scale = vec3( 4.000, 1.000, 2.000), + }, + { + .position = vec3( 191.500, -2.000, 218.500), + .scale = vec3( 3.000, 1.000, 3.000), + }, + { + .position = vec3( 195.000, -2.000, 218.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 185.500, 2.000, 222.500), + .scale = vec3( 3.000, 1.000, 3.000), + }, + { + .position = vec3( 191.000, 0.000, 222.500), + .scale = vec3( 6.000, 1.000, 3.000), + }, + { + .position = vec3( 183.500, 4.000, 226.500), + .scale = vec3( 3.000, 1.000, 3.000), + }, + { + .position = vec3( 189.500, 2.000, 226.500), + .scale = vec3( 5.000, 1.000, 3.000), + }, + { + .position = vec3( 87.000, 84.000, 227.000), + .scale = vec3( 6.000, 1.000, 2.000), + }, + { + .position = vec3( 102.500, 66.000, 227.000), + .scale = vec3( 11.000, 1.000, 2.000), + }, + { + .position = vec3( 111.000, 64.000, 228.000), + .scale = vec3( 2.000, 1.000, 4.000), + }, + { + .position = vec3( 122.000, 46.000, 236.500), + .scale = vec3( 2.000, 1.000, 21.000), + }, + { + .position = vec3( 125.000, 46.000, 226.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 129.000, 44.000, 229.000), + .scale = vec3( 2.000, 1.000, 6.000), + }, + { + .position = vec3( 138.000, 30.000, 229.000), + .scale = vec3( 2.000, 1.000, 6.000), + }, + { + .position = vec3( 147.500, 30.000, 227.000), + .scale = vec3( 13.000, 1.000, 2.000), + }, + { + .position = vec3( 158.000, 17.000, 230.500), + .scale = vec3( 2.000, 1.000, 9.000), + }, + { + .position = vec3( 165.000, 16.000, 227.000), + .scale = vec3( 6.000, 1.000, 2.000), + }, + { + .position = vec3( 170.000, 14.000, 235.000), + .scale = vec3( 2.000, 1.000, 18.000), + }, + { + .position = vec3( 82.000, 82.000, 228.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 95.000, 68.000, 229.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 79.000, 82.000, 230.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 86.500, 84.000, 229.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 89.000, 84.000, 230.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 105.000, 68.000, 236.500), + .scale = vec3( 2.000, 1.000, 15.000), + }, + { + .position = vec3( 153.000, 30.000, 229.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 163.000, 16.000, 229.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 182.500, 6.000, 230.500), + .scale = vec3( 3.000, 1.000, 3.000), + }, + { + .position = vec3( 143.000, 28.000, 231.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 93.000, 70.000, 232.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 113.000, 62.000, 232.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 79.000, 80.000, 233.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 128.500, 44.000, 233.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 130.500, 32.000, 233.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 132.500, 32.000, 233.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 134.500, 32.000, 233.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 136.500, 32.000, 233.500), + .scale = vec3( 1.000, 1.000, 1.000), + }, + { + .position = vec3( 145.000, 28.000, 234.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 180.500, 8.000, 234.500), + .scale = vec3( 3.000, 1.000, 3.000), + }, + { + .position = vec3( 116.000, 60.000, 235.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 129.000, 42.000, 237.500), + .scale = vec3( 2.000, 1.000, 5.000), + }, + { + .position = vec3( 137.000, 34.000, 237.500), + .scale = vec3( 2.000, 1.000, 5.000), + }, + { + .position = vec3( 83.000, 78.000, 237.000), + .scale = vec3( 8.000, 1.000, 2.000), + }, + { + .position = vec3( 93.000, 72.000, 237.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 148.000, 26.000, 237.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 158.000, 19.000, 239.000), + .scale = vec3( 2.000, 1.000, 6.000), + }, + { + .position = vec3( 115.000, 56.000, 238.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 118.000, 58.000, 238.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 178.500, 10.000, 238.500), + .scale = vec3( 3.000, 1.000, 3.000), + }, + { + .position = vec3( 89.000, 76.000, 239.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 112.000, 54.000, 239.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 151.000, 24.000, 240.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 93.000, 74.000, 241.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 89.000, 76.000, 242.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 112.000, 52.000, 242.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 131.000, 40.000, 242.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 135.000, 36.000, 242.500), + .scale = vec3( 2.000, 1.000, 3.000), + }, + { + .position = vec3( 154.000, 22.000, 242.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 174.500, 12.000, 242.500), + .scale = vec3( 3.000, 1.000, 3.000), + }, + { + .position = vec3( 142.000, 22.000, 242.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 158.500, 20.000, 245.000), + .scale = vec3( 5.000, 1.000, 4.000), + }, + { + .position = vec3( 79.000, 76.000, 245.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 88.000, 76.000, 245.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 113.000, 50.000, 245.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 148.000, 22.000, 245.000), + .scale = vec3( 14.000, 1.000, 2.000), + }, + { + .position = vec3( 102.000, 70.000, 246.000), + .scale = vec3( 12.000, 1.000, 2.000), + }, + { + .position = vec3( 117.500, 48.000, 246.000), + .scale = vec3( 5.000, 1.000, 2.000), + }, + { + .position = vec3( 133.000, 38.000, 246.000), + .scale = vec3( 2.000, 1.000, 2.000), + }, + { + .position = vec3( 171.000, 14.000, 245.500), + .scale = vec3( 4.000, 1.000, 1.000), + }, + { + .position = vec3( 125.000, 46.000, 246.500), + .scale = vec3( 2.000, 1.000, 1.000), + }, + { + .position = vec3( 83.500, 76.000, 248.000), + .scale = vec3( 7.000, 1.000, 2.000), }, }; - world::level level1_level = { - .platforms = level1_platforms, - .platforms_length = (sizeof (level1_platforms)) / (sizeof (world::platform)), + world::level igh25_map1_level = { + .platforms = igh25_map1_platforms, + .platforms_length = (sizeof (igh25_map1_platforms)) / (sizeof (world::platform)), }; } diff --git a/src/demo/lizard/main.cpp b/src/demo/lizard/main.cpp index 6eae0ed..3fd2a5f 100644 --- a/src/demo/lizard/main.cpp +++ b/src/demo/lizard/main.cpp @@ -47,14 +47,15 @@ namespace demo { mat4x4 lizard::init() { - vx = 0; - vy = 0; + vx = -pi / 4; + vy = -pi / 4; - current_level = &demo::level1_level; + current_level = &demo::igh25_map1_level; world::table_build(*current_level); - lizard_position = {7.5, 1, 7.5}; + lizard_position = {2.5, 1, 2.5}; + //lizard_position = {218.5, 0, 65.5}; lizard_velocity = {0, 0, 0}; return view_trans; @@ -70,40 +71,41 @@ namespace demo { void lizard::update() { - /* - if (!collided) - lizard_velocity.y -= 0.01; - */ lizard_rotation *= 0.8; lizard_turning_frame += lizard_rotation * 10; lizard_heading += lizard_rotation; - if (abs(lizard_velocity.x) > 0.05) - lizard_velocity.x = 0.05 * sign(lizard_velocity.x); - if (abs(lizard_velocity.y) > 0.05) - lizard_velocity.y = 0.05 * sign(lizard_velocity.y); - if (abs(lizard_velocity.z) > 0.05) - lizard_velocity.z = 0.05 * sign(lizard_velocity.z); + if (abs(lizard_velocity.x) > 0.10) + lizard_velocity.x = 0.10 * sign(lizard_velocity.x); + if (abs(lizard_velocity.y) > 0.20) + lizard_velocity.y = 0.20 * sign(lizard_velocity.y); + if (abs(lizard_velocity.z) > 0.10) + lizard_velocity.z = 0.10 * sign(lizard_velocity.z); lizard_velocity.x *= 0.8; - lizard_velocity.y *= 0.8; + lizard_velocity.y *= 0.99; lizard_velocity.z *= 0.8; lizard_walking_frame += magnitude(lizard_velocity) * 15; + world::platform * p = lizard_collide(); + collided = (p != nullptr); + if (!collided) { + lizard_velocity.y -= 0.01; + } else { + last_platform = p; + //lizard_position.y -= -lizard_velocity.y; + float pp = p->position.y + p->scale.y * 0.5; + //lizard_velocity.y *= 0.1; + lizard_position.y = pp + 0.5; + } + lizard_position.x += lizard_velocity.x; lizard_position.y += lizard_velocity.y; lizard_position.z += lizard_velocity.z; - world::platform * p = lizard_collide(); - collided = p != nullptr; - - if (collided) { - lizard_position.y -= -lizard_velocity.y; - } - view_trans = translate(vec3(0, 0, 3)) * rotate_x(vy) @@ -113,35 +115,72 @@ namespace demo { void lizard::y() { - lizard_velocity.y += 0.01; + //lizard_velocity.y += 0.01; } void lizard::a() { - lizard_velocity.y -= 0.01; + //lizard_velocity.y -= 0.01; + if (collided) { + lizard_velocity.y = 30; + } + } + + void lizard::start() + { + if (last_platform == nullptr) + init(); + else { + lizard_velocity = {0, 0, 0}; + lizard_position = last_platform->position; + lizard_position.y += 0.5; + } + } + + void lizard::ra() + { + vx += 0.01f; + } + + void lizard::la() + { + vx -= 0.01f; + } + + void lizard::ua() + { + vy += 0.01f; + } + + void lizard::da() + { + vy -= 0.01f; } void lizard::x() { - lizard_rotation += pi * (1.0f / 160); + //lizard_rotation += pi * (1.0f / 160); } void lizard::b() { - lizard_rotation -= pi * (1.0f / 160); + //lizard_rotation -= pi * (1.0f / 160); } void lizard::analog(float dl, float dr, float dx, float dy) { //float forward = (dr - dl) * -0.001f; //alpha_mul += forward; - float forward = (dr - dl) * -0.04f; + float forward = (dr - dl) * -0.1f; + //vx += forward * 0.5f; lizard_velocity.x += -cos(lizard_heading) * forward; lizard_velocity.z += sin(lizard_heading) * forward; - vy += dy * 0.03f; - vx += dx * 0.03f; + lizard_rotation += -dx * 0.03f; + + //vy += dy * 0.03f; + //vx += dx * 0.03f; } world::platform * lizard::lizard_collide() @@ -181,7 +220,12 @@ namespace demo { font::ter_u12n.draw_string(writer, status_p, "air", 0xffffffff); */ - font::ter_u12n.draw_float(writer, status_p, (float)last_drawn_frame, 0xffffffff, 10); + font::ter_u12n.draw_float(writer, status_p, (float)lizard_position.x, 0xffffffff, 10); + status_p.y += 12; + font::ter_u12n.draw_float(writer, status_p, (float)lizard_position.y, 0xffffffff, 10); + status_p.y += 12; + font::ter_u12n.draw_float(writer, status_p, (float)lizard_position.z, 0xffffffff, 10); + //font::ter_u12n.draw_float(writer, status_p, (float)last_drawn_frame, 0xffffffff, 10); } void lizard::draw_platform(ta_parameter_writer& writer, const mat4x4& trans, const world::platform& p) @@ -209,7 +253,7 @@ namespace demo { t, vec3(1, 0.5, 0)); */ - if (abs(lizard_rotation) > 0) { + if (abs(lizard_rotation) > 0.1) { int frame = ((int)lizard_turning_frame) % lizard_turning_frames_count; if (frame < 0) frame = lizard_turning_frames_count + frame; @@ -236,7 +280,6 @@ namespace demo { const mat4x4& trans = view_trans; draw_hud(writer); - draw_lizard(writer, trans); writer.append() = diff --git a/src/demo/lizard/main.hpp b/src/demo/lizard/main.hpp index 41e2595..7f4332f 100644 --- a/src/demo/lizard/main.hpp +++ b/src/demo/lizard/main.hpp @@ -7,6 +7,7 @@ namespace demo { struct lizard : scene { world::level * current_level; + world::platform * last_platform; vec3 lizard_position; vec3 lizard_velocity; float lizard_heading; @@ -30,6 +31,13 @@ namespace demo { void b() override; void a() override; + void ra() override; + void la() override; + void ua() override; + void da() override; + + void start() override; + void analog(float dl, float dr, float dx, float dy) override; world::platform * lizard_collide(); diff --git a/src/demo/lizard/maps/igh25_map1.png b/src/demo/lizard/maps/igh25_map1.png new file mode 100644 index 0000000..bc55a8f Binary files /dev/null and b/src/demo/lizard/maps/igh25_map1.png differ diff --git a/src/demo/lizard/world.hpp b/src/demo/lizard/world.hpp index c661e7a..dd91ca6 100644 --- a/src/demo/lizard/world.hpp +++ b/src/demo/lizard/world.hpp @@ -16,7 +16,7 @@ namespace demo::world { int platforms_length; }; - constexpr int lookup_table_dim = 128; + constexpr int lookup_table_dim = 256; struct platform_lookup { vec2i xz_offset; diff --git a/src/demo/scene.hpp b/src/demo/scene.hpp index 1e1c53d..a199d2d 100644 --- a/src/demo/scene.hpp +++ b/src/demo/scene.hpp @@ -16,6 +16,7 @@ namespace demo { virtual void la() {} virtual void da() {} virtual void ua() {} + virtual void start() {} virtual void update() = 0; virtual void draw(ta_parameter_writer& writer, const mat4x4& trans) = 0; }; diff --git a/src/platform/graphics.cpp b/src/platform/graphics.cpp index 92dd19e..01320e4 100644 --- a/src/platform/graphics.cpp +++ b/src/platform/graphics.cpp @@ -193,7 +193,9 @@ namespace graphics { bool da = ft0::data_transfer::digital_button::da(data.digital_button) == 0; bool ua = ft0::data_transfer::digital_button::ua(data.digital_button) == 0; - if (a) current_scene->a(); + bool start = ft0::data_transfer::digital_button::start(data.digital_button) == 0; + + if (last[port_ix].a != a && a) current_scene->a(); if (b) current_scene->b(); if (x) current_scene->x(); if (y) current_scene->y(); @@ -203,6 +205,8 @@ namespace graphics { if (da) current_scene->da(); if (ua) current_scene->ua(); + if (start) current_scene->start(); + last[port_ix].a = a; last[port_ix].b = b; last[port_ix].x = x; diff --git a/src/platform/main.cpp b/src/platform/main.cpp index f574384..1c5ab79 100644 --- a/src/platform/main.cpp +++ b/src/platform/main.cpp @@ -9,6 +9,10 @@ void vbr100() { + if (sh7091.CCN.EXPEVT == 0xe0) { + serial::string("vbr100 expevt == 0xe0\n"); + return; + } serial::string("vbr100\n"); interrupt_exception(); } diff --git a/tools/parse_map.py b/tools/parse_map.py index 2408791..e2d8ff6 100644 --- a/tools/parse_map.py +++ b/tools/parse_map.py @@ -51,6 +51,8 @@ def visit_pixels(x, y, width, height): xx = x + xi yy = y + yi location = (xx, yy) + if location in visited: + print(location) assert location not in visited visited.add(location)