From 907639ae1a098af9dfa2bd3a55aaf18b821ebf01 Mon Sep 17 00:00:00 2001 From: Slyvtt Date: Sun, 5 Feb 2023 13:53:42 +0100 Subject: [PATCH] basic fixed-point math trigonometric functions --- assets-cg/Levels/Level1.json | 44 +++++++++++++++ assets-cg/Levels/Level2.json | 44 +++++++++++++++ assets-cg/Levels/Tileset_Space.json | 14 +++++ .../__pycache__/converters.cpython-310.pyc | Bin 0 -> 1522 bytes src/fast_trig.cpp | 53 ++++++++++++++---- src/fast_trig.h | 6 +- src/main.cpp | 20 ++++--- src/player.cpp | 4 +- 8 files changed, 162 insertions(+), 23 deletions(-) create mode 100644 assets-cg/Levels/Level1.json create mode 100644 assets-cg/Levels/Level2.json create mode 100644 assets-cg/Levels/Tileset_Space.json create mode 100644 assets-cg/__pycache__/converters.cpython-310.pyc diff --git a/assets-cg/Levels/Level1.json b/assets-cg/Levels/Level1.json new file mode 100644 index 0000000..4465c14 --- /dev/null +++ b/assets-cg/Levels/Level1.json @@ -0,0 +1,44 @@ +{ "compressionlevel":-1, + "height":14, + "infinite":false, + "layers":[ + { + "data":[0, 0, 0, 0, 1310, 0, 1310, 0, 0, 0, 0, 1310, 0, 1310, 0, 0, 0, 0, 1310, 0, 1310, 0, 0, 0, 759, 760, 759, 760, 759, 760, 0, 0, 0, 0, 1310, 0, 1310, 0, 0, 0, 0, 1310, 0, 1310, 0, 0, 0, 0, 1310, 0, 1310, 0, 0, 0, 759, 760, 759, 760, 759, 760, 0, 0, 0, 0, 1310, 0, 1310, 0, 0, 0, 0, 1310, 0, 1310, 0, 0, 0, 0, 1310, 0, 1310, 0, 0, 0, 759, 760, 759, 760, 759, 760, 0, 0, 0, 0, 2003, 2003, 2003, 0, 0, 0, 0, 2003, 2003, 2003, 0, 0, 0, 0, 2003, 2003, 2003, 0, 0, 0, 791, 792, 791, 792, 791, 792, 0, 0, 0, 0, 2003, 2003, 2003, 0, 0, 0, 0, 2003, 2003, 2003, 0, 0, 0, 0, 2003, 2003, 2003, 0, 0, 0, 791, 792, 791, 792, 791, 792, 0, 0, 0, 0, 2003, 2003, 2003, 0, 0, 0, 0, 2003, 2003, 2003, 0, 0, 0, 0, 2003, 2003, 2003, 0, 0, 0, 791, 792, 791, 792, 791, 792, 834, 842, 0, 0, 919, 77, 921, 0, 0, 0, 0, 919, 77, 921, 0, 0, 0, 0, 919, 77, 921, 0, 0, 0, 919, 77, 921, 919, 77, 921, 834, 842, 0, 0, 919, 77, 921, 0, 0, 0, 0, 919, 77, 921, 0, 0, 0, 0, 919, 77, 921, 0, 0, 0, 919, 77, 921, 919, 77, 921, 834, 842, 0, 0, 919, 77, 921, 0, 0, 0, 0, 919, 77, 921, 0, 0, 0, 0, 919, 77, 921, 0, 0, 0, 919, 77, 921, 919, 77, 921, 0, 810, 0, 0, 919, 77, 921, 601, 601, 877, 0, 919, 77, 921, 0, 601, 601, 0, 919, 77, 921, 0, 601, 601, 919, 77, 921, 919, 77, 921, 0, 810, 0, 0, 919, 77, 921, 601, 601, 877, 0, 919, 77, 921, 0, 601, 601, 0, 919, 77, 921, 0, 601, 601, 919, 77, 921, 919, 77, 921, 0, 810, 0, 0, 919, 77, 921, 601, 601, 877, 0, 919, 77, 921, 0, 601, 601, 0, 919, 77, 921, 0, 601, 601, 919, 77, 921, 919, 77, 921, 851, 0, 0, 0, 116, 533, 118, 601, 601, 907, 885, 116, 533, 118, 886, 601, 601, 885, 116, 533, 118, 0, 601, 601, 116, 533, 118, 116, 533, 118, 851, 0, 0, 0, 116, 533, 118, 601, 601, 907, 885, 116, 533, 118, 886, 601, 601, 885, 116, 533, 118, 0, 601, 601, 116, 533, 118, 116, 533, 118, 851, 0, 0, 0, 116, 533, 118, 601, 601, 907, 885, 116, 533, 118, 886, 601, 601, 885, 116, 533, 118, 0, 601, 601, 116, 533, 118, 116, 533, 118, 627, 628, 629, 630, 308, 213, 310, 601, 0, 629, 630, 308, 213, 310, 627, 628, 629, 630, 308, 213, 310, 0, 601, 0, 308, 213, 310, 308, 213, 310, 627, 628, 629, 630, 308, 213, 310, 601, 0, 629, 630, 308, 213, 310, 627, 628, 629, 630, 308, 213, 310, 0, 601, 0, 308, 213, 310, 308, 213, 310, 627, 628, 629, 630, 308, 213, 310, 601, 0, 629, 630, 308, 213, 310, 627, 628, 629, 630, 308, 213, 310, 0, 601, 0, 308, 213, 310, 308, 213, 310, 659, 660, 661, 662, 919, 77, 921, 601, 852, 661, 662, 919, 77, 921, 659, 660, 661, 662, 919, 77, 921, 0, 601, 0, 919, 77, 921, 919, 77, 921, 659, 660, 661, 662, 919, 77, 921, 601, 852, 661, 662, 919, 77, 921, 659, 660, 661, 662, 919, 77, 921, 0, 601, 0, 919, 77, 921, 919, 77, 921, 659, 660, 661, 662, 919, 77, 921, 601, 852, 661, 662, 919, 77, 921, 659, 660, 661, 662, 919, 77, 921, 0, 601, 0, 919, 77, 921, 919, 77, 921, 691, 692, 693, 694, 919, 77, 921, 691, 692, 819, 0, 919, 77, 921, 691, 692, 693, 694, 919, 77, 921, 0, 601, 0, 919, 77, 921, 919, 77, 921, 691, 692, 693, 694, 919, 77, 921, 691, 692, 819, 0, 919, 77, 921, 691, 692, 693, 694, 919, 77, 921, 0, 601, 0, 919, 77, 921, 919, 77, 921, 691, 692, 693, 694, 919, 77, 921, 691, 692, 819, 0, 919, 77, 921, 691, 692, 693, 694, 919, 77, 921, 0, 601, 0, 919, 77, 921, 919, 77, 921, 723, 724, 725, 726, 116, 533, 118, 723, 724, 0, 0, 1371, 0, 1370, 723, 724, 725, 726, 116, 533, 118, 0, 601, 0, 116, 533, 118, 116, 533, 118, 723, 724, 725, 726, 116, 533, 118, 723, 724, 0, 0, 1371, 0, 1370, 723, 724, 725, 726, 116, 533, 118, 0, 601, 0, 116, 533, 118, 116, 533, 118, 723, 724, 725, 726, 116, 533, 118, 723, 724, 0, 0, 1371, 0, 1370, 723, 724, 725, 726, 116, 533, 118, 0, 601, 0, 116, 533, 118, 116, 533, 118, 918, 0, 0, 917, 308, 213, 310, 918, 0, 0, 620, 621, 0, 618, 619, 0, 0, 917, 308, 213, 310, 0, 0, 0, 308, 213, 310, 308, 213, 310, 918, 0, 0, 917, 308, 213, 310, 918, 0, 0, 620, 621, 0, 618, 619, 0, 0, 917, 308, 213, 310, 0, 0, 0, 308, 213, 310, 308, 213, 310, 918, 0, 0, 917, 308, 213, 310, 918, 0, 0, 620, 621, 0, 618, 619, 0, 0, 917, 308, 213, 310, 0, 0, 0, 308, 213, 310, 308, 213, 310, 0, 0, 0, 0, 919, 77, 921, 0, 0, 0, 652, 653, 695, 650, 651, 0, 0, 0, 919, 77, 921, 0, 0, 0, 919, 77, 921, 919, 77, 921, 0, 0, 0, 0, 919, 77, 921, 0, 0, 0, 652, 653, 695, 650, 651, 0, 0, 0, 919, 77, 921, 0, 0, 0, 919, 77, 921, 919, 77, 921, 0, 0, 0, 0, 919, 77, 921, 0, 0, 0, 652, 653, 695, 650, 651, 0, 0, 0, 919, 77, 921, 0, 0, 0, 919, 77, 921, 919, 77, 921, 0, 0, 0, 0, 919, 77, 921, 0, 0, 811, 0, 0, 727, 0, 0, 810, 0, 0, 919, 77, 921, 0, 0, 0, 919, 77, 921, 919, 77, 921, 0, 0, 0, 0, 919, 77, 921, 0, 0, 811, 0, 0, 727, 0, 0, 810, 0, 0, 919, 77, 921, 0, 0, 0, 919, 77, 921, 919, 77, 921, 0, 0, 0, 0, 919, 77, 921, 0, 0, 811, 0, 0, 727, 0, 0, 810, 0, 0, 919, 77, 921, 0, 0, 0, 919, 77, 921, 919, 77, 921, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, 542, 509, 510, 542, 543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, 542, 509, 510, 542, 543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, 542, 509, 510, 542, 543, 0, 0, 0, 0, 524, 756, 525, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524, 756, 525, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524, 756, 525, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524, 756, 525, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524, 756, 525, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524, 756, 525, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":14, + "id":2, + "name":"Background", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":90, + "x":0, + "y":0 + }, + { + "data":[866, 1986, 1991, 1971, 976, 1011, 977, 1971, 741, 742, 1971, 976, 1011, 977, 1971, 741, 742, 1971, 976, 1011, 977, 1971, 1991, 1972, 0, 0, 0, 0, 0, 0, 866, 1986, 1991, 1971, 976, 1011, 977, 1971, 741, 742, 1971, 976, 1011, 977, 1971, 741, 742, 1971, 976, 1011, 977, 1971, 1991, 1972, 0, 0, 0, 0, 0, 0, 866, 1986, 1991, 1971, 976, 1011, 977, 1971, 741, 742, 1971, 976, 1011, 977, 1971, 741, 742, 1971, 976, 1011, 977, 1971, 1991, 1972, 0, 0, 0, 0, 0, 0, 898, 1986, 1991, 1974, 1498, 1497, 1499, 1973, 773, 774, 1974, 1498, 1497, 1499, 1973, 773, 774, 1974, 1498, 1497, 1499, 1973, 1991, 1972, 0, 0, 0, 0, 0, 0, 898, 1986, 1991, 1974, 1498, 1497, 1499, 1973, 773, 774, 1974, 1498, 1497, 1499, 1973, 773, 774, 1974, 1498, 1497, 1499, 1973, 1991, 1972, 0, 0, 0, 0, 0, 0, 898, 1986, 1991, 1974, 1498, 1497, 1499, 1973, 773, 774, 1974, 1498, 1497, 1499, 1973, 773, 774, 1974, 1498, 1497, 1499, 1973, 1991, 1972, 0, 0, 0, 0, 0, 0, 899, 2018, 2023, 2020, 0, 0, 0, 2002, 2003, 2003, 2020, 0, 0, 0, 2002, 2003, 2003, 2020, 0, 0, 0, 2002, 2023, 2004, 0, 0, 0, 0, 0, 0, 899, 2018, 2023, 2020, 0, 0, 0, 2002, 2003, 2003, 2020, 0, 0, 0, 2002, 2003, 2003, 2020, 0, 0, 0, 2002, 2023, 2004, 0, 0, 0, 0, 0, 0, 899, 2018, 2023, 2020, 0, 0, 0, 2002, 2003, 2003, 2020, 0, 0, 0, 2002, 2003, 2003, 2020, 0, 0, 0, 2002, 2023, 2004, 0, 0, 0, 0, 0, 0, 612, 908, 874, 877, 0, 0, 0, 908, 874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 612, 908, 874, 877, 0, 0, 0, 908, 874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 612, 908, 874, 877, 0, 0, 0, 908, 874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 644, 0, 908, 907, 0, 0, 0, 0, 908, 0, 877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 644, 0, 908, 907, 0, 0, 0, 0, 908, 0, 877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 644, 0, 908, 907, 0, 0, 0, 0, 908, 0, 877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1398, 569, 855, 908, 907, 0, 0, 1398, 569, 855, 854, 569, 1398, 0, 265, 569, 569, 855, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1398, 569, 855, 908, 907, 0, 0, 1398, 569, 855, 854, 569, 1398, 0, 265, 569, 569, 855, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1398, 569, 855, 908, 907, 0, 0, 1398, 569, 855, 854, 569, 1398, 0, 265, 569, 569, 855, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1398, 855, 0, 0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1398, 855, 0, 0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1398, 855, 0, 0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 535, 207, 537, 810, 0, 0, 0, 0, 0, 1398, 569, 855, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 535, 207, 537, 810, 0, 0, 0, 0, 0, 1398, 569, 855, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 535, 207, 537, 810, 0, 0, 0, 0, 0, 1398, 569, 855, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 852, 0, 0, 0, 0, 0, 842, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 852, 0, 0, 0, 0, 0, 842, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 852, 0, 0, 0, 0, 0, 842, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 819, 0, 0, 0, 811, 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 819, 0, 0, 0, 811, 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 819, 0, 0, 0, 811, 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 38, 6, 38, 39, 0, 0, 0, 0, 265, 0, 0, 0, 0, 37, 38, 6, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 38, 6, 38, 39, 0, 0, 0, 0, 265, 0, 0, 0, 0, 37, 38, 6, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 38, 6, 38, 39, 0, 0, 0, 0, 265, 0, 0, 0, 0, 37, 38, 6, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 535, 503, 408, 504, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 535, 503, 408, 504, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 535, 503, 408, 504, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 535, 503, 408, 504, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 535, 503, 408, 504, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 535, 503, 408, 504, 537, 0, 0, 0, 0, 0, 0, 0, 0], + "height":14, + "id":1, + "name":"Foreground", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":90, + "x":0, + "y":0 + }], + "nextlayerid":3, + "nextobjectid":1, + "orientation":"orthogonal", + "renderorder":"right-down", + "tiledversion":"1.8.0", + "tileheight":16, + "tilesets":[ + { + "firstgid":1, + "source":"Tileset_Space.tsx" + }], + "tilewidth":16, + "type":"map", + "version":"1.8", + "width":90 +} \ No newline at end of file diff --git a/assets-cg/Levels/Level2.json b/assets-cg/Levels/Level2.json new file mode 100644 index 0000000..97ab2ae --- /dev/null +++ b/assets-cg/Levels/Level2.json @@ -0,0 +1,44 @@ +{ "compressionlevel":-1, + "height":30, + "infinite":false, + "layers":[ + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 884, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 917, 883, 915, 918, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 915, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 885, 884, 883, 886, 0, 0, 0, 0, 915, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 915, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 915, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 915, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 884, 918, 917, 883, 886, 0, 0, 885, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 918, 0, 0, 917, 883, 886, 885, 884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":30, + "id":2, + "name":"Background", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":96, + "x":0, + "y":0 + }, + { + "data":[1954, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1956, 741, 742, 741, 742, 1954, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1956, 741, 742, 741, 742, 1954, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1956, 741, 742, 741, 742, 1954, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1956, 741, 742, 741, 742, 1986, 1987, 1990, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 1989, 1987, 1988, 773, 774, 773, 774, 1986, 1987, 1990, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 1989, 1987, 1988, 773, 774, 773, 774, 1986, 1987, 1990, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 1989, 1987, 1988, 773, 774, 773, 774, 1986, 1987, 1990, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 1989, 1987, 1988, 773, 774, 773, 774, 2018, 2019, 2020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2018, 2019, 2020, 1925, 1926, 1926, 1927, 2018, 2019, 2020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2018, 2019, 2020, 1925, 1926, 1926, 1927, 2018, 2019, 2020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2018, 2019, 2020, 1925, 1926, 1926, 1927, 2018, 2019, 2020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2018, 2019, 2020, 1925, 1926, 1926, 1927, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 627, 628, 629, 630, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 659, 660, 661, 662, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 691, 692, 693, 694, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 723, 724, 725, 726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1954, 1955, 1956, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1954, 1955, 1956, 1925, 1926, 1926, 1927, 1954, 1955, 1956, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1954, 1955, 1956, 1925, 1926, 1926, 1927, 1954, 1955, 1956, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1954, 1955, 1956, 1925, 1926, 1926, 1927, 1954, 1955, 1956, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1954, 1955, 1956, 1925, 1926, 1926, 1927, 1986, 1987, 1958, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1957, 1987, 1988, 741, 742, 741, 742, 1986, 1987, 1958, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1957, 1987, 1988, 741, 742, 741, 742, 1986, 1987, 1958, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1957, 1987, 1988, 741, 742, 741, 742, 1986, 1987, 1958, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1957, 1987, 1988, 741, 742, 741, 742, 2018, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2020, 773, 774, 773, 774, 2018, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2020, 773, 774, 773, 774, 2018, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2020, 773, 774, 773, 774, 2018, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2020, 773, 774, 773, 774], + "height":30, + "id":1, + "name":"Foreground", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":96, + "x":0, + "y":0 + }], + "nextlayerid":4, + "nextobjectid":1, + "orientation":"orthogonal", + "renderorder":"right-down", + "tiledversion":"1.8.0", + "tileheight":16, + "tilesets":[ + { + "firstgid":1, + "source":"Tileset_Space.tsx" + }], + "tilewidth":16, + "type":"map", + "version":"1.8", + "width":96 +} \ No newline at end of file diff --git a/assets-cg/Levels/Tileset_Space.json b/assets-cg/Levels/Tileset_Space.json new file mode 100644 index 0000000..fd37d86 --- /dev/null +++ b/assets-cg/Levels/Tileset_Space.json @@ -0,0 +1,14 @@ +{ "columns":32, + "image":"tileset.png", + "imageheight":1024, + "imagewidth":512, + "margin":0, + "name":"Tileset_Space", + "spacing":0, + "tilecount":2048, + "tiledversion":"1.8.0", + "tileheight":16, + "tilewidth":16, + "type":"tileset", + "version":"1.8" +} \ No newline at end of file diff --git a/assets-cg/__pycache__/converters.cpython-310.pyc b/assets-cg/__pycache__/converters.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c9d95d94cfaf3e7087c71328879d896efff04ff5 GIT binary patch literal 1522 zcmZ8hOK;;g5GE<=;rAoydVOh&04?gn+I;}+B?t=aqPGT%CMN@dp@@vFRI(J3%5Dtm z7l3mg}t;x*;%Bez~Rh@^C0INX028o!T9s$uSj?Z{cVNE zgMjcgOlb*23@0eXQ;aQ75;7&#>P($#rBhn1?$l)tqi@jEV=nVx^%*%sBmW+}pb<8{ z2$w8gs?&&C&3;(kh4~z&JOZK#!$S!4JrNy+G}2fT?W`$;cg_%_;L<%^HKIbQEPbZ# za&DY7%moJ9drKfxBg&SyT&NlR7*XTK%e+v=%L-Mkc__kE8c&5{&eb1C*!y^UJXvHZ zpUAu9HjI~(mm-_Pwv@}s^H9dwL@v@IpM+9!C7(s}$vy@ba-828e=qvrN(MlhxQ!{M zL^MJ8&yf#70r$Q;@(NN`XoD5eaMNqD#U<605x4>eCLN-UWAAfIN>@?suAvUv-MGx( zVipWh>4D_28c6j4Dt+c}e2w=1k@g$t2k-@d{Q=kw5Np7$0HOspT3NHPHCUH*UEc(( z30yUYnd%=&66TsO5?tYnOYcc!Q=Tt zMHYn*!#0z(IfE%}<>!Fu3$MfskbR4OCO5W8u%RpjI9ec%h#})o4UQ{mM;f3v_2VR# zD$3IQ?cx-EE=P$Nx$q?90`LDaSy%_^A`%HffWONuAVj9S68iK}U|rA-o1n z$HPtdy0}Y@oXU0-7|%Y7St@Kb#V3}$55)L6oF|DdjT6b+>J6z39wlJ0A}U}6$7#lj Tgr8X8Nt;g-1rWUYNYnop3@wRu literal 0 HcmV?d00001 diff --git a/src/fast_trig.cpp b/src/fast_trig.cpp index 71379f9..28fd3d7 100644 --- a/src/fast_trig.cpp +++ b/src/fast_trig.cpp @@ -4,7 +4,7 @@ static libnum::num cosTable[360]; static libnum::num sinTable[360]; - +static bool is_fast_trig_initialised = false; void Fast_Trig_Init( void ) { @@ -13,11 +13,14 @@ void Fast_Trig_Init( void ) cosTable[u] = libnum::num( cos( u * PI / 180 ) ); sinTable[u] = libnum::num( sin( u * PI / 180 ) ); } + is_fast_trig_initialised = true; } -libnum::num FastCos( int16_t angle ) +libnum::num FastCosInt( int16_t angle ) { + if (!is_fast_trig_initialised) Fast_Trig_Init(); + if (angle>=0 and angle<360) return cosTable[ angle ]; else { @@ -25,18 +28,20 @@ libnum::num FastCos( int16_t angle ) if (input<0) { while (input<0) input+=360; - return cosTable[ angle ]; + return cosTable[ input ]; } else { while (input>=360) input-=360; - return cosTable[ angle ]; + return cosTable[ input ]; } } } -libnum::num FastSin( int16_t angle ) +libnum::num FastSinInt( int16_t angle ) { + if (!is_fast_trig_initialised) Fast_Trig_Init(); + if (angle>=0 and angle<360) return sinTable[ angle ]; else { @@ -44,18 +49,46 @@ libnum::num FastSin( int16_t angle ) if (input<0) { while (input<0) input+=360; - return sinTable[ angle ]; + return sinTable[ input ]; } else { while (input>=360) input-=360; - return sinTable[ angle ]; + return sinTable[ input ]; } } } -libnum::num FastTan( int16_t angle ) +libnum::num FastTanInt( int16_t angle ) { - //TODO : work on representation of infinite number for angle = 90 degrees or angle = 270 degrees - return libnum::num(0); + if (!is_fast_trig_initialised) Fast_Trig_Init(); + + int16_t input = angle; + + if (input<0) + { + while (input<0) input+=360; + } + else if (input>=360) + { + while (input>=360) input-=360; + } + + libnum::num value; + + if (input==90) + { + value.v = INT32_MAX; + return value; + } + else if (input==270) + { + value.v = INT32_MIN; + return value; + } + else + { + value = FastSinInt(input) / FastCosInt(input); + return value; + } } \ No newline at end of file diff --git a/src/fast_trig.h b/src/fast_trig.h index 9bb2172..7b4b372 100644 --- a/src/fast_trig.h +++ b/src/fast_trig.h @@ -11,9 +11,9 @@ void Fast_Trig_Init( void ); -libnum::num FastCos( int16_t angle ); -libnum::num FastSin( int16_t angle ); -libnum::num FastTan( int16_t angle ); +libnum::num FastCosInt( int16_t angle ); +libnum::num FastSinInt( int16_t angle ); +libnum::num FastTanInt( int16_t angle ); #endif diff --git a/src/main.cpp b/src/main.cpp index f33b343..10a20a0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -280,10 +280,10 @@ static void get_inputs( float dt ) #if(DEBUG_MODE) - if(MyKeyboard.IsKeyPressedEvent(MYKEY_7) && usb_is_open() ) {screenshot = true;}; - if(MyKeyboard.IsKeyPressedEvent(MYKEY_8) && usb_is_open()) {record = true; }; - if(MyKeyboard.IsKeyPressedEvent(MYKEY_9) && usb_is_open()) {record = false; }; - if(MyKeyboard.IsKeyPressedEvent(MYKEY_DEL) && usb_is_open()) {textoutput = true;}; + if(MyKeyboard.IsKeyPressed(MYKEY_SHIFT) && MyKeyboard.IsKeyPressedEvent(MYKEY_7) && usb_is_open() ) {screenshot = true;}; + if(MyKeyboard.IsKeyPressed(MYKEY_SHIFT) && MyKeyboard.IsKeyPressedEvent(MYKEY_8) && usb_is_open()) {record = true; }; + if(MyKeyboard.IsKeyPressed(MYKEY_SHIFT) && MyKeyboard.IsKeyPressedEvent(MYKEY_9) && usb_is_open()) {record = false; }; + if(MyKeyboard.IsKeyPressed(MYKEY_SHIFT) && MyKeyboard.IsKeyPressedEvent(MYKEY_DEL) && usb_is_open()) {textoutput = true;}; #endif if(MyKeyboard.IsKeyPressed(MYKEY_SHIFT) && MyKeyboard.IsKeyPressedEvent(MYKEY_F1)) {texttodraw=0;} @@ -382,10 +382,6 @@ int main(void) { exitToOS = false; - - Fast_Trig_Init(); - - _uram = kmalloc_get_arena("_uram"); bool canWeAllocate3Mb = AddMoreRAM(); @@ -464,6 +460,14 @@ int main(void) // to add here what must be sent to USB for Text mode debugging + char texttosend[1024]; + + for(int i=-720; i<=720; i++) + { + sprintf( texttosend, "i=%d - Sin(i)=%f - Cos(i)=%f - Tan(i)=%f\n", i, (float) FastSinInt(i), (float) FastCosInt(i), (float) FastTanInt(i) ); + usb_fxlink_text(texttosend, 0); + } + textoutput = false; } #endif diff --git a/src/player.cpp b/src/player.cpp index db3eda2..e572e77 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -80,8 +80,8 @@ void Player::Render( void ) { int angle = (int) satAngle + u*incangle; angle = angle % 360; - int xsat = (int) (x + FastCos( angle ) * libnum::num( satRadius) ); - int ysat = (int) (y + FastSin( angle ) * libnum::num( satRadius) ); + int xsat = (int) (x + FastCosInt( angle ) * libnum::num( satRadius) ); + int ysat = (int) (y + FastSinInt( angle ) * libnum::num( satRadius) ); azrp_image_p8_effect(xsat-w, ysat-h, &img_Satellite_Lvl1, DIMAGE_NONE); } }