diff --git a/.gitignore b/.gitignore index 8c999f4..92fc152 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,9 @@ .idea/ /__pycache__/ */__pycache__/ + +lochpython/core/__pycache__/ +lochpython/entity/__pycache__/ +lochpython/objects/__pycache__/ +lochpython/world/__pycache__/ +lochpython/files/__pycache__/ \ No newline at end of file diff --git a/README.md b/README.md index d465ad9..12a2c37 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,116 @@ Lets say to be RPG game. Project ispired by [Zelda in Python](https://www.youtube.com/watch?v=QU1pPzEGrqw). -Under development. +## Devlog -## Collison detection +Project in development. Recent state: -1. shrink possible range of obstacles using **squared distance** for efficiency, -2. evaluate collision separately in x and y and merge results, +![Recent state](img/daynight.png) + +## Todo + + - [x] TSX, TMX file support + - [ ] Field of view with clipping + - [ ] TSM extra properties (place ontop, stack shift, can be moved, etc.) + - [x] Better animation signal distribution, TSX interval/duration usage + - [ ] Lighting, light sources + - [ ] TMX groups usege as elevations + - [ ] Staircase implementation + - [ ] Ingame objects placement and interactions + +### Collison detection introduction + +Steps: +1. select nearby objects (thin yellow border in the image), +2. evaluate collision separately in x and y and merge results (thick yellow border in the image), Rectangles drawn using separate debbuging renderer. -![Collision detection example](img/collision_detection.png) \ No newline at end of file +![Collision detection example](img/collision_detection.png) + +### Delegation over inheritance - game objects system + +Huge update and refactoring of entire code. + +Game object is introduced. It stores dictionary of **properties**, and list of 3 types of methods introduced by those properties: + - **input** - feeding data to next stage, + - **update** - evaluating data and interaction with other properties, + - **render** - passing results to separate rendering classes. + +Properties derive from 3 types of Abstract properties which introduce previously mentioned methods: + - **InputProperty** with abstract method _input_, + - **UpdateProperty** with abstract method _update_, + - **RenderProperty** with abstract method _render_. + +Using multiple inheritance of Python each property can have any of above methods. + +Properties can be used to create objects with any mix of functionalities, some of those are: + - **SpriteProperty** - applying texture to object, + - **AnimationProperty** - generic animation driving neighbouring _SpriteProperty_, + - MovingProperty - used to move objects with speed and direction, + - MovementAnimationProperty - specific type of animation used in moving of entities requiring _MovingProperty_. + +### World Loader introduction + +Data exported as **.csv** from **[Tiled](https://www.mapeditor.org/)** can be loaded. It is then split amoung 3 layers: + - floor, + - details, + - entities (or objects). + +This separation helps in sorting. + +Introduced list of obstacles interacting with **CollisionProperty** used to help evaluate collision detection. + +![Invisible borders](img/tibia_2_water_border.png) + +Invisible borders (or limits) are used to prevent player from escaping the world. Those can be removed making e.g. walkable water. + +![Invisible borders](img/tibia_2_bridge.png) + +### Scaling world surface + +Game is meant to be **pixel-art**. 20x40px for character is more than enough. Global **scale** option - world is rendered to scaled down _surface_ and then scaled up to fill entire window. GUI elements are not treated with the scale. Antialiasing if turned off to obtain hard pixeled edge. + +So far graphics were only placeholders. Final tilesize is sublimating, probably it will be 32px so some more concrete graphics are needed. + +![Scaled up world](img/tibia_2_scale.png) + +### New graphics and animation fixes + +Changes: + + - Added new tilesets. + - Reworked animation system, now world has its won list of timers. One timer can sontrol water, plants and other similar animations. + - Added images metadata to make the code more DRY. + - Player (entities) has idle animation state. + +There is need for tiles builder and some reuse of common static properties. + +![Animated nature and entities](img/anims.gif) + +Added another graphics, some of them needs tweaks and changes but it is not important. + +Tiled was used to prepare map. There is need to create height layers and stack floor details. + +![Animated nature and shore](img/beach_grass.gif) + +### TSX, TMX fileformat (28.10.2022) + +Changes: + - Supported TSX, TMS fileformats with additional properties. + - Added multiple hitboxes with spanning hitbox for optimization. + +![Multiple hitboxes](img/multi_hitbox.png) + +Changes: + - Added global timers and global controllers for animations. + +Timers are executing lists of handler functions. Controllers are driven by timers and are used to keep track of frames so that all tiles with the same animation are in sync. + +### Lighting and daynight cycle (28.10.2022) + +Changes: + - Added lightsources with TSX fileformat support. + - Added daynight cycle. + +![Daynight with light sources](img/daynight.png) \ No newline at end of file diff --git a/data/LochPython.tiled-project b/data/LochPython.tiled-project new file mode 100644 index 0000000..d58954a --- /dev/null +++ b/data/LochPython.tiled-project @@ -0,0 +1,11 @@ +{ + "automappingRulesFile": "", + "commands": [ + ], + "extensionsPath": "extensions", + "folders": [ + "." + ], + "propertyTypes": [ + ] +} diff --git a/data/LochPython.tiled-session b/data/LochPython.tiled-session new file mode 100644 index 0000000..4191cb8 --- /dev/null +++ b/data/LochPython.tiled-session @@ -0,0 +1,87 @@ +{ + "Map/SizeTest": { + "height": 4300, + "width": 2 + }, + "activeFile": "maps/testmap.tmx", + "expandedProjectPaths": [ + ".", + "maps", + "entities", + "tilesets" + ], + "fileStates": { + "entities/player.tsx": { + "scaleInDock": 1, + "scaleInEditor": 1 + }, + "maps/testmap.tmx": { + "expandedGroupLayers": [ + 7, + 5, + 3, + 2 + ], + "scale": 1.5, + "selectedLayer": 0, + "viewCenter": { + "x": 312.6666666666667, + "y": 248.33333333333331 + } + }, + "tilesets/details.tsx": { + "scaleInDock": 1, + "scaleInEditor": 2 + }, + "tilesets/floor.tsx": { + "scaleInDock": 1, + "scaleInEditor": 2 + }, + "tilesets/objects.tsx": { + "scaleInDock": 1, + "scaleInEditor": 2 + }, + "tilesets/objects_1x2.tsx": { + "scaleInDock": 1, + "scaleInEditor": 2 + }, + "tilesets/objects_2x2.tsx": { + "scaleInDock": 1, + "scaleInEditor": 1.5 + }, + "tilesets/particles.tsx": { + "scaleInDock": 1, + "scaleInEditor": 32 + } + }, + "frame.defaultDuration": 2000, + "last.imagePath": "C:/Users/Lenovo/Documents/_Moje/Piotr/Pyrograf/LochPythonWS/LochPythonRPG/data/tilesets", + "map.lastUsedFormat": "tmx", + "map.tileHeight": 20, + "map.tileWidth": 20, + "openFiles": [ + "maps/testmap.tmx", + "tilesets/objects.tsx", + "tilesets/details.tsx", + "tilesets/floor.tsx", + "tilesets/objects_1x2.tsx", + "tilesets/objects_2x2.tsx" + ], + "project": "LochPython.tiled-project", + "property.type": "int", + "recentFiles": [ + "tilesets/particles.tsx", + "entities/player.tsx", + "tilesets/objects_2x2.tsx", + "tilesets/objects_1x2.tsx", + "tilesets/floor.tsx", + "tilesets/details.tsx", + "tilesets/objects.tsx", + "maps/testmap.tmx" + ], + "tileset.lastUsedFormat": "tsx", + "tileset.tileSize": { + "height": 2, + "width": 2 + } +} diff --git a/data/audio/Fire.wav b/data/audio/Fire.wav deleted file mode 100644 index 97bb0e4..0000000 Binary files a/data/audio/Fire.wav and /dev/null differ diff --git a/data/audio/attack/claw.wav b/data/audio/attack/claw.wav deleted file mode 100644 index 1a98889..0000000 Binary files a/data/audio/attack/claw.wav and /dev/null differ diff --git a/data/audio/attack/fireball.wav b/data/audio/attack/fireball.wav deleted file mode 100644 index dc2c852..0000000 Binary files a/data/audio/attack/fireball.wav and /dev/null differ diff --git a/data/audio/attack/slash.wav b/data/audio/attack/slash.wav deleted file mode 100644 index 942aeb0..0000000 Binary files a/data/audio/attack/slash.wav and /dev/null differ diff --git a/data/audio/death.wav b/data/audio/death.wav deleted file mode 100644 index ef03ab1..0000000 Binary files a/data/audio/death.wav and /dev/null differ diff --git a/data/audio/heal.wav b/data/audio/heal.wav deleted file mode 100644 index e94bab0..0000000 Binary files a/data/audio/heal.wav and /dev/null differ diff --git a/data/audio/hit.wav b/data/audio/hit.wav deleted file mode 100644 index 435b317..0000000 Binary files a/data/audio/hit.wav and /dev/null differ diff --git a/data/audio/main.ogg b/data/audio/main.ogg deleted file mode 100644 index da5d252..0000000 Binary files a/data/audio/main.ogg and /dev/null differ diff --git a/data/audio/sword.wav b/data/audio/sword.wav deleted file mode 100644 index 2e962d0..0000000 Binary files a/data/audio/sword.wav and /dev/null differ diff --git a/data/graphics/borders.png b/data/graphics/borders.png deleted file mode 100644 index 314be57..0000000 Binary files a/data/graphics/borders.png and /dev/null differ diff --git a/data/graphics/floor.png b/data/graphics/floor.png deleted file mode 100644 index 8322b9a..0000000 Binary files a/data/graphics/floor.png and /dev/null differ diff --git a/data/graphics/font/joystix.ttf b/data/graphics/font/joystix.ttf deleted file mode 100644 index 5fd36a5..0000000 Binary files a/data/graphics/font/joystix.ttf and /dev/null differ diff --git a/data/graphics/grass/grass_1.png b/data/graphics/grass/grass_1.png deleted file mode 100644 index e59c1d4..0000000 Binary files a/data/graphics/grass/grass_1.png and /dev/null differ diff --git a/data/graphics/grass/grass_2.png b/data/graphics/grass/grass_2.png deleted file mode 100644 index 74c656a..0000000 Binary files a/data/graphics/grass/grass_2.png and /dev/null differ diff --git a/data/graphics/grass/grass_3.png b/data/graphics/grass/grass_3.png deleted file mode 100644 index da65a05..0000000 Binary files a/data/graphics/grass/grass_3.png and /dev/null differ diff --git a/data/graphics/monsters/bamboo/attack/0.png b/data/graphics/monsters/bamboo/attack/0.png deleted file mode 100644 index c14d75b..0000000 Binary files a/data/graphics/monsters/bamboo/attack/0.png and /dev/null differ diff --git a/data/graphics/monsters/bamboo/idle/0.png b/data/graphics/monsters/bamboo/idle/0.png deleted file mode 100644 index c14d75b..0000000 Binary files a/data/graphics/monsters/bamboo/idle/0.png and /dev/null differ diff --git a/data/graphics/monsters/bamboo/idle/1.png b/data/graphics/monsters/bamboo/idle/1.png deleted file mode 100644 index 9dd1acc..0000000 Binary files a/data/graphics/monsters/bamboo/idle/1.png and /dev/null differ diff --git a/data/graphics/monsters/bamboo/idle/2.png b/data/graphics/monsters/bamboo/idle/2.png deleted file mode 100644 index c14d75b..0000000 Binary files a/data/graphics/monsters/bamboo/idle/2.png and /dev/null differ diff --git a/data/graphics/monsters/bamboo/idle/3.png b/data/graphics/monsters/bamboo/idle/3.png deleted file mode 100644 index 6411298..0000000 Binary files a/data/graphics/monsters/bamboo/idle/3.png and /dev/null differ diff --git a/data/graphics/monsters/bamboo/move/0.png b/data/graphics/monsters/bamboo/move/0.png deleted file mode 100644 index c14d75b..0000000 Binary files a/data/graphics/monsters/bamboo/move/0.png and /dev/null differ diff --git a/data/graphics/monsters/bamboo/move/1.png b/data/graphics/monsters/bamboo/move/1.png deleted file mode 100644 index 9dd1acc..0000000 Binary files a/data/graphics/monsters/bamboo/move/1.png and /dev/null differ diff --git a/data/graphics/monsters/bamboo/move/2.png b/data/graphics/monsters/bamboo/move/2.png deleted file mode 100644 index c14d75b..0000000 Binary files a/data/graphics/monsters/bamboo/move/2.png and /dev/null differ diff --git a/data/graphics/monsters/bamboo/move/3.png b/data/graphics/monsters/bamboo/move/3.png deleted file mode 100644 index 6411298..0000000 Binary files a/data/graphics/monsters/bamboo/move/3.png and /dev/null differ diff --git a/data/graphics/monsters/raccoon/attack/0.png b/data/graphics/monsters/raccoon/attack/0.png deleted file mode 100644 index 2e53f25..0000000 Binary files a/data/graphics/monsters/raccoon/attack/0.png and /dev/null differ diff --git a/data/graphics/monsters/raccoon/attack/1.png b/data/graphics/monsters/raccoon/attack/1.png deleted file mode 100644 index 21c4d49..0000000 Binary files a/data/graphics/monsters/raccoon/attack/1.png and /dev/null differ diff --git a/data/graphics/monsters/raccoon/attack/2.png b/data/graphics/monsters/raccoon/attack/2.png deleted file mode 100644 index 3319c79..0000000 Binary files a/data/graphics/monsters/raccoon/attack/2.png and /dev/null differ diff --git a/data/graphics/monsters/raccoon/attack/3.png b/data/graphics/monsters/raccoon/attack/3.png deleted file mode 100644 index aa2d58f..0000000 Binary files a/data/graphics/monsters/raccoon/attack/3.png and /dev/null differ diff --git a/data/graphics/monsters/raccoon/idle/0.png b/data/graphics/monsters/raccoon/idle/0.png deleted file mode 100644 index cf0fb7f..0000000 Binary files a/data/graphics/monsters/raccoon/idle/0.png and /dev/null differ diff --git a/data/graphics/monsters/raccoon/idle/1.png b/data/graphics/monsters/raccoon/idle/1.png deleted file mode 100644 index cf0fb7f..0000000 Binary files a/data/graphics/monsters/raccoon/idle/1.png and /dev/null differ diff --git a/data/graphics/monsters/raccoon/idle/2.png b/data/graphics/monsters/raccoon/idle/2.png deleted file mode 100644 index 8d16e08..0000000 Binary files a/data/graphics/monsters/raccoon/idle/2.png and /dev/null differ diff --git a/data/graphics/monsters/raccoon/idle/3.png b/data/graphics/monsters/raccoon/idle/3.png deleted file mode 100644 index dc57a96..0000000 Binary files a/data/graphics/monsters/raccoon/idle/3.png and /dev/null differ diff --git a/data/graphics/monsters/raccoon/idle/4.png b/data/graphics/monsters/raccoon/idle/4.png deleted file mode 100644 index fb12e6c..0000000 Binary files a/data/graphics/monsters/raccoon/idle/4.png and /dev/null differ diff --git a/data/graphics/monsters/raccoon/idle/5.png b/data/graphics/monsters/raccoon/idle/5.png deleted file mode 100644 index c0ede56..0000000 Binary files a/data/graphics/monsters/raccoon/idle/5.png and /dev/null differ diff --git a/data/graphics/monsters/raccoon/move/0.png b/data/graphics/monsters/raccoon/move/0.png deleted file mode 100644 index a60b9d0..0000000 Binary files a/data/graphics/monsters/raccoon/move/0.png and /dev/null differ diff --git a/data/graphics/monsters/raccoon/move/1.png b/data/graphics/monsters/raccoon/move/1.png deleted file mode 100644 index 34410ca..0000000 Binary files a/data/graphics/monsters/raccoon/move/1.png and /dev/null differ diff --git a/data/graphics/monsters/raccoon/move/2.png b/data/graphics/monsters/raccoon/move/2.png deleted file mode 100644 index c299286..0000000 Binary files a/data/graphics/monsters/raccoon/move/2.png and /dev/null differ diff --git a/data/graphics/monsters/raccoon/move/3.png b/data/graphics/monsters/raccoon/move/3.png deleted file mode 100644 index 7d9ee77..0000000 Binary files a/data/graphics/monsters/raccoon/move/3.png and /dev/null differ diff --git a/data/graphics/monsters/raccoon/move/4.png b/data/graphics/monsters/raccoon/move/4.png deleted file mode 100644 index 656981c..0000000 Binary files a/data/graphics/monsters/raccoon/move/4.png and /dev/null differ diff --git a/data/graphics/monsters/spirit/attack/0.png b/data/graphics/monsters/spirit/attack/0.png deleted file mode 100644 index 0afa8f1..0000000 Binary files a/data/graphics/monsters/spirit/attack/0.png and /dev/null differ diff --git a/data/graphics/monsters/spirit/idle/0.png b/data/graphics/monsters/spirit/idle/0.png deleted file mode 100644 index 0aee4b5..0000000 Binary files a/data/graphics/monsters/spirit/idle/0.png and /dev/null differ diff --git a/data/graphics/monsters/spirit/idle/1.png b/data/graphics/monsters/spirit/idle/1.png deleted file mode 100644 index efe735c..0000000 Binary files a/data/graphics/monsters/spirit/idle/1.png and /dev/null differ diff --git a/data/graphics/monsters/spirit/idle/2.png b/data/graphics/monsters/spirit/idle/2.png deleted file mode 100644 index a46d5e2..0000000 Binary files a/data/graphics/monsters/spirit/idle/2.png and /dev/null differ diff --git a/data/graphics/monsters/spirit/idle/3.png b/data/graphics/monsters/spirit/idle/3.png deleted file mode 100644 index 15e5d4c..0000000 Binary files a/data/graphics/monsters/spirit/idle/3.png and /dev/null differ diff --git a/data/graphics/monsters/spirit/move/0.png b/data/graphics/monsters/spirit/move/0.png deleted file mode 100644 index 0afa8f1..0000000 Binary files a/data/graphics/monsters/spirit/move/0.png and /dev/null differ diff --git a/data/graphics/monsters/spirit/move/1.png b/data/graphics/monsters/spirit/move/1.png deleted file mode 100644 index bf8f85b..0000000 Binary files a/data/graphics/monsters/spirit/move/1.png and /dev/null differ diff --git a/data/graphics/monsters/spirit/move/2.png b/data/graphics/monsters/spirit/move/2.png deleted file mode 100644 index 809ebc2..0000000 Binary files a/data/graphics/monsters/spirit/move/2.png and /dev/null differ diff --git a/data/graphics/monsters/spirit/move/3.png b/data/graphics/monsters/spirit/move/3.png deleted file mode 100644 index 463875f..0000000 Binary files a/data/graphics/monsters/spirit/move/3.png and /dev/null differ diff --git a/data/graphics/monsters/squid/attack/0 - Copy (2).png b/data/graphics/monsters/squid/attack/0 - Copy (2).png deleted file mode 100644 index 644197e..0000000 Binary files a/data/graphics/monsters/squid/attack/0 - Copy (2).png and /dev/null differ diff --git a/data/graphics/monsters/squid/attack/0 - Copy (3).png b/data/graphics/monsters/squid/attack/0 - Copy (3).png deleted file mode 100644 index 644197e..0000000 Binary files a/data/graphics/monsters/squid/attack/0 - Copy (3).png and /dev/null differ diff --git a/data/graphics/monsters/squid/attack/0 - Copy.png b/data/graphics/monsters/squid/attack/0 - Copy.png deleted file mode 100644 index 644197e..0000000 Binary files a/data/graphics/monsters/squid/attack/0 - Copy.png and /dev/null differ diff --git a/data/graphics/monsters/squid/attack/0.png b/data/graphics/monsters/squid/attack/0.png deleted file mode 100644 index 644197e..0000000 Binary files a/data/graphics/monsters/squid/attack/0.png and /dev/null differ diff --git a/data/graphics/monsters/squid/idle/0.png b/data/graphics/monsters/squid/idle/0.png deleted file mode 100644 index a9beba8..0000000 Binary files a/data/graphics/monsters/squid/idle/0.png and /dev/null differ diff --git a/data/graphics/monsters/squid/idle/1.png b/data/graphics/monsters/squid/idle/1.png deleted file mode 100644 index f854919..0000000 Binary files a/data/graphics/monsters/squid/idle/1.png and /dev/null differ diff --git a/data/graphics/monsters/squid/idle/2.png b/data/graphics/monsters/squid/idle/2.png deleted file mode 100644 index a9beba8..0000000 Binary files a/data/graphics/monsters/squid/idle/2.png and /dev/null differ diff --git a/data/graphics/monsters/squid/idle/3.png b/data/graphics/monsters/squid/idle/3.png deleted file mode 100644 index 9c588e1..0000000 Binary files a/data/graphics/monsters/squid/idle/3.png and /dev/null differ diff --git a/data/graphics/monsters/squid/idle/4.png b/data/graphics/monsters/squid/idle/4.png deleted file mode 100644 index 9c588e1..0000000 Binary files a/data/graphics/monsters/squid/idle/4.png and /dev/null differ diff --git a/data/graphics/monsters/squid/move/0.png b/data/graphics/monsters/squid/move/0.png deleted file mode 100644 index a9beba8..0000000 Binary files a/data/graphics/monsters/squid/move/0.png and /dev/null differ diff --git a/data/graphics/monsters/squid/move/1.png b/data/graphics/monsters/squid/move/1.png deleted file mode 100644 index f854919..0000000 Binary files a/data/graphics/monsters/squid/move/1.png and /dev/null differ diff --git a/data/graphics/monsters/squid/move/2.png b/data/graphics/monsters/squid/move/2.png deleted file mode 100644 index 9c588e1..0000000 Binary files a/data/graphics/monsters/squid/move/2.png and /dev/null differ diff --git a/data/graphics/monsters/squid/move/3.png b/data/graphics/monsters/squid/move/3.png deleted file mode 100644 index 9c588e1..0000000 Binary files a/data/graphics/monsters/squid/move/3.png and /dev/null differ diff --git a/data/graphics/objects.png b/data/graphics/objects.png deleted file mode 100644 index 488a89f..0000000 Binary files a/data/graphics/objects.png and /dev/null differ diff --git a/data/graphics/objects/0.png b/data/graphics/objects/0.png deleted file mode 100644 index 05fc485..0000000 Binary files a/data/graphics/objects/0.png and /dev/null differ diff --git a/data/graphics/objects/01.png b/data/graphics/objects/01.png deleted file mode 100644 index 3fa3af9..0000000 Binary files a/data/graphics/objects/01.png and /dev/null differ diff --git a/data/graphics/objects/02.png b/data/graphics/objects/02.png deleted file mode 100644 index c91ceec..0000000 Binary files a/data/graphics/objects/02.png and /dev/null differ diff --git a/data/graphics/objects/03.png b/data/graphics/objects/03.png deleted file mode 100644 index 186ff45..0000000 Binary files a/data/graphics/objects/03.png and /dev/null differ diff --git a/data/graphics/objects/04.png b/data/graphics/objects/04.png deleted file mode 100644 index f3a3e7a..0000000 Binary files a/data/graphics/objects/04.png and /dev/null differ diff --git a/data/graphics/objects/05.png b/data/graphics/objects/05.png deleted file mode 100644 index eab8994..0000000 Binary files a/data/graphics/objects/05.png and /dev/null differ diff --git a/data/graphics/objects/06.png b/data/graphics/objects/06.png deleted file mode 100644 index a7859b7..0000000 Binary files a/data/graphics/objects/06.png and /dev/null differ diff --git a/data/graphics/objects/07.png b/data/graphics/objects/07.png deleted file mode 100644 index a436b83..0000000 Binary files a/data/graphics/objects/07.png and /dev/null differ diff --git a/data/graphics/objects/08.png b/data/graphics/objects/08.png deleted file mode 100644 index 7fde04e..0000000 Binary files a/data/graphics/objects/08.png and /dev/null differ diff --git a/data/graphics/objects/09.png b/data/graphics/objects/09.png deleted file mode 100644 index fbd0ebb..0000000 Binary files a/data/graphics/objects/09.png and /dev/null differ diff --git a/data/graphics/objects/10.png b/data/graphics/objects/10.png deleted file mode 100644 index 067a503..0000000 Binary files a/data/graphics/objects/10.png and /dev/null differ diff --git a/data/graphics/objects/11.png b/data/graphics/objects/11.png deleted file mode 100644 index 37edc1e..0000000 Binary files a/data/graphics/objects/11.png and /dev/null differ diff --git a/data/graphics/objects/12.png b/data/graphics/objects/12.png deleted file mode 100644 index d1967c2..0000000 Binary files a/data/graphics/objects/12.png and /dev/null differ diff --git a/data/graphics/objects/13.png b/data/graphics/objects/13.png deleted file mode 100644 index f01d839..0000000 Binary files a/data/graphics/objects/13.png and /dev/null differ diff --git a/data/graphics/objects/14.png b/data/graphics/objects/14.png deleted file mode 100644 index 6a7b4bc..0000000 Binary files a/data/graphics/objects/14.png and /dev/null differ diff --git a/data/graphics/objects/15.png b/data/graphics/objects/15.png deleted file mode 100644 index 783c417..0000000 Binary files a/data/graphics/objects/15.png and /dev/null differ diff --git a/data/graphics/objects/16.png b/data/graphics/objects/16.png deleted file mode 100644 index 69b3119..0000000 Binary files a/data/graphics/objects/16.png and /dev/null differ diff --git a/data/graphics/objects/17.png b/data/graphics/objects/17.png deleted file mode 100644 index 23cfa85..0000000 Binary files a/data/graphics/objects/17.png and /dev/null differ diff --git a/data/graphics/objects/18.png b/data/graphics/objects/18.png deleted file mode 100644 index 8497695..0000000 Binary files a/data/graphics/objects/18.png and /dev/null differ diff --git a/data/graphics/objects/19.png b/data/graphics/objects/19.png deleted file mode 100644 index 425d16f..0000000 Binary files a/data/graphics/objects/19.png and /dev/null differ diff --git a/data/graphics/objects/20.png b/data/graphics/objects/20.png deleted file mode 100644 index 7028a89..0000000 Binary files a/data/graphics/objects/20.png and /dev/null differ diff --git a/data/graphics/particles/aura/0.png b/data/graphics/particles/aura/0.png deleted file mode 100644 index ca3080c..0000000 Binary files a/data/graphics/particles/aura/0.png and /dev/null differ diff --git a/data/graphics/particles/aura/1.png b/data/graphics/particles/aura/1.png deleted file mode 100644 index 587df6e..0000000 Binary files a/data/graphics/particles/aura/1.png and /dev/null differ diff --git a/data/graphics/particles/aura/2.png b/data/graphics/particles/aura/2.png deleted file mode 100644 index 345b25a..0000000 Binary files a/data/graphics/particles/aura/2.png and /dev/null differ diff --git a/data/graphics/particles/aura/3.png b/data/graphics/particles/aura/3.png deleted file mode 100644 index f5aa4c5..0000000 Binary files a/data/graphics/particles/aura/3.png and /dev/null differ diff --git a/data/graphics/particles/bamboo/0.png b/data/graphics/particles/bamboo/0.png deleted file mode 100644 index a28b25a..0000000 Binary files a/data/graphics/particles/bamboo/0.png and /dev/null differ diff --git a/data/graphics/particles/bamboo/1.png b/data/graphics/particles/bamboo/1.png deleted file mode 100644 index 234355a..0000000 Binary files a/data/graphics/particles/bamboo/1.png and /dev/null differ diff --git a/data/graphics/particles/claw/0.png b/data/graphics/particles/claw/0.png deleted file mode 100644 index b9af05a..0000000 Binary files a/data/graphics/particles/claw/0.png and /dev/null differ diff --git a/data/graphics/particles/claw/1.png b/data/graphics/particles/claw/1.png deleted file mode 100644 index 60ab800..0000000 Binary files a/data/graphics/particles/claw/1.png and /dev/null differ diff --git a/data/graphics/particles/claw/2.png b/data/graphics/particles/claw/2.png deleted file mode 100644 index e3c239b..0000000 Binary files a/data/graphics/particles/claw/2.png and /dev/null differ diff --git a/data/graphics/particles/claw/3.png b/data/graphics/particles/claw/3.png deleted file mode 100644 index 2a579b7..0000000 Binary files a/data/graphics/particles/claw/3.png and /dev/null differ diff --git a/data/graphics/particles/flame/fire.png b/data/graphics/particles/flame/fire.png deleted file mode 100644 index 2fb9ffc..0000000 Binary files a/data/graphics/particles/flame/fire.png and /dev/null differ diff --git a/data/graphics/particles/flame/frames/0.png b/data/graphics/particles/flame/frames/0.png deleted file mode 100644 index fe33ae5..0000000 Binary files a/data/graphics/particles/flame/frames/0.png and /dev/null differ diff --git a/data/graphics/particles/flame/frames/01.png b/data/graphics/particles/flame/frames/01.png deleted file mode 100644 index 734a74f..0000000 Binary files a/data/graphics/particles/flame/frames/01.png and /dev/null differ diff --git a/data/graphics/particles/flame/frames/02.png b/data/graphics/particles/flame/frames/02.png deleted file mode 100644 index 63536a7..0000000 Binary files a/data/graphics/particles/flame/frames/02.png and /dev/null differ diff --git a/data/graphics/particles/flame/frames/03.png b/data/graphics/particles/flame/frames/03.png deleted file mode 100644 index 49c4995..0000000 Binary files a/data/graphics/particles/flame/frames/03.png and /dev/null differ diff --git a/data/graphics/particles/flame/frames/04.png b/data/graphics/particles/flame/frames/04.png deleted file mode 100644 index 77e0474..0000000 Binary files a/data/graphics/particles/flame/frames/04.png and /dev/null differ diff --git a/data/graphics/particles/flame/frames/05.png b/data/graphics/particles/flame/frames/05.png deleted file mode 100644 index 04691a5..0000000 Binary files a/data/graphics/particles/flame/frames/05.png and /dev/null differ diff --git a/data/graphics/particles/flame/frames/06.png b/data/graphics/particles/flame/frames/06.png deleted file mode 100644 index 4738aa7..0000000 Binary files a/data/graphics/particles/flame/frames/06.png and /dev/null differ diff --git a/data/graphics/particles/flame/frames/07.png b/data/graphics/particles/flame/frames/07.png deleted file mode 100644 index 1faa1d3..0000000 Binary files a/data/graphics/particles/flame/frames/07.png and /dev/null differ diff --git a/data/graphics/particles/flame/frames/08.png b/data/graphics/particles/flame/frames/08.png deleted file mode 100644 index 44b7e28..0000000 Binary files a/data/graphics/particles/flame/frames/08.png and /dev/null differ diff --git a/data/graphics/particles/flame/frames/09.png b/data/graphics/particles/flame/frames/09.png deleted file mode 100644 index cd35c03..0000000 Binary files a/data/graphics/particles/flame/frames/09.png and /dev/null differ diff --git a/data/graphics/particles/flame/frames/10.png b/data/graphics/particles/flame/frames/10.png deleted file mode 100644 index 7164544..0000000 Binary files a/data/graphics/particles/flame/frames/10.png and /dev/null differ diff --git a/data/graphics/particles/flame/frames/11.png b/data/graphics/particles/flame/frames/11.png deleted file mode 100644 index 5555377..0000000 Binary files a/data/graphics/particles/flame/frames/11.png and /dev/null differ diff --git a/data/graphics/particles/heal/frames/0.png b/data/graphics/particles/heal/frames/0.png deleted file mode 100644 index cd93684..0000000 Binary files a/data/graphics/particles/heal/frames/0.png and /dev/null differ diff --git a/data/graphics/particles/heal/frames/1.png b/data/graphics/particles/heal/frames/1.png deleted file mode 100644 index 83b4cf1..0000000 Binary files a/data/graphics/particles/heal/frames/1.png and /dev/null differ diff --git a/data/graphics/particles/heal/frames/2.png b/data/graphics/particles/heal/frames/2.png deleted file mode 100644 index de0b9bd..0000000 Binary files a/data/graphics/particles/heal/frames/2.png and /dev/null differ diff --git a/data/graphics/particles/heal/frames/3.png b/data/graphics/particles/heal/frames/3.png deleted file mode 100644 index d5ab576..0000000 Binary files a/data/graphics/particles/heal/frames/3.png and /dev/null differ diff --git a/data/graphics/particles/heal/frames/4.png b/data/graphics/particles/heal/frames/4.png deleted file mode 100644 index e26afd3..0000000 Binary files a/data/graphics/particles/heal/frames/4.png and /dev/null differ diff --git a/data/graphics/particles/heal/heal.png b/data/graphics/particles/heal/heal.png deleted file mode 100644 index ad7de97..0000000 Binary files a/data/graphics/particles/heal/heal.png and /dev/null differ diff --git a/data/graphics/particles/leaf1/leaf1_00000.png b/data/graphics/particles/leaf1/leaf1_00000.png deleted file mode 100644 index b3d34ea..0000000 Binary files a/data/graphics/particles/leaf1/leaf1_00000.png and /dev/null differ diff --git a/data/graphics/particles/leaf1/leaf1_00001.png b/data/graphics/particles/leaf1/leaf1_00001.png deleted file mode 100644 index 22fce58..0000000 Binary files a/data/graphics/particles/leaf1/leaf1_00001.png and /dev/null differ diff --git a/data/graphics/particles/leaf1/leaf1_00002.png b/data/graphics/particles/leaf1/leaf1_00002.png deleted file mode 100644 index f8d2b65..0000000 Binary files a/data/graphics/particles/leaf1/leaf1_00002.png and /dev/null differ diff --git a/data/graphics/particles/leaf1/leaf1_00003.png b/data/graphics/particles/leaf1/leaf1_00003.png deleted file mode 100644 index e3e59b6..0000000 Binary files a/data/graphics/particles/leaf1/leaf1_00003.png and /dev/null differ diff --git a/data/graphics/particles/leaf1/leaf1_00004.png b/data/graphics/particles/leaf1/leaf1_00004.png deleted file mode 100644 index a703f36..0000000 Binary files a/data/graphics/particles/leaf1/leaf1_00004.png and /dev/null differ diff --git a/data/graphics/particles/leaf1/leaf1_00005.png b/data/graphics/particles/leaf1/leaf1_00005.png deleted file mode 100644 index 39e159a..0000000 Binary files a/data/graphics/particles/leaf1/leaf1_00005.png and /dev/null differ diff --git a/data/graphics/particles/leaf1/leaf1_00006.png b/data/graphics/particles/leaf1/leaf1_00006.png deleted file mode 100644 index a83b3d0..0000000 Binary files a/data/graphics/particles/leaf1/leaf1_00006.png and /dev/null differ diff --git a/data/graphics/particles/leaf1/leaf1_00007.png b/data/graphics/particles/leaf1/leaf1_00007.png deleted file mode 100644 index ed3fca8..0000000 Binary files a/data/graphics/particles/leaf1/leaf1_00007.png and /dev/null differ diff --git a/data/graphics/particles/leaf1/leaf1_00008.png b/data/graphics/particles/leaf1/leaf1_00008.png deleted file mode 100644 index f6bf4c9..0000000 Binary files a/data/graphics/particles/leaf1/leaf1_00008.png and /dev/null differ diff --git a/data/graphics/particles/leaf1/leaf1_00009.png b/data/graphics/particles/leaf1/leaf1_00009.png deleted file mode 100644 index 1e27176..0000000 Binary files a/data/graphics/particles/leaf1/leaf1_00009.png and /dev/null differ diff --git a/data/graphics/particles/leaf1/leaf1_00010.png b/data/graphics/particles/leaf1/leaf1_00010.png deleted file mode 100644 index 4be9658..0000000 Binary files a/data/graphics/particles/leaf1/leaf1_00010.png and /dev/null differ diff --git a/data/graphics/particles/leaf1/leaf1_00011.png b/data/graphics/particles/leaf1/leaf1_00011.png deleted file mode 100644 index 57f0d06..0000000 Binary files a/data/graphics/particles/leaf1/leaf1_00011.png and /dev/null differ diff --git a/data/graphics/particles/leaf2/leaf1_00000.png b/data/graphics/particles/leaf2/leaf1_00000.png deleted file mode 100644 index bd43308..0000000 Binary files a/data/graphics/particles/leaf2/leaf1_00000.png and /dev/null differ diff --git a/data/graphics/particles/leaf2/leaf1_00001.png b/data/graphics/particles/leaf2/leaf1_00001.png deleted file mode 100644 index 3013b91..0000000 Binary files a/data/graphics/particles/leaf2/leaf1_00001.png and /dev/null differ diff --git a/data/graphics/particles/leaf2/leaf1_00002.png b/data/graphics/particles/leaf2/leaf1_00002.png deleted file mode 100644 index 30300af..0000000 Binary files a/data/graphics/particles/leaf2/leaf1_00002.png and /dev/null differ diff --git a/data/graphics/particles/leaf2/leaf1_00003.png b/data/graphics/particles/leaf2/leaf1_00003.png deleted file mode 100644 index 8f0b661..0000000 Binary files a/data/graphics/particles/leaf2/leaf1_00003.png and /dev/null differ diff --git a/data/graphics/particles/leaf2/leaf1_00004.png b/data/graphics/particles/leaf2/leaf1_00004.png deleted file mode 100644 index 8248fba..0000000 Binary files a/data/graphics/particles/leaf2/leaf1_00004.png and /dev/null differ diff --git a/data/graphics/particles/leaf2/leaf1_00005.png b/data/graphics/particles/leaf2/leaf1_00005.png deleted file mode 100644 index ecf4ffa..0000000 Binary files a/data/graphics/particles/leaf2/leaf1_00005.png and /dev/null differ diff --git a/data/graphics/particles/leaf2/leaf1_00006.png b/data/graphics/particles/leaf2/leaf1_00006.png deleted file mode 100644 index ece22b8..0000000 Binary files a/data/graphics/particles/leaf2/leaf1_00006.png and /dev/null differ diff --git a/data/graphics/particles/leaf2/leaf1_00007.png b/data/graphics/particles/leaf2/leaf1_00007.png deleted file mode 100644 index 1f1f7ee..0000000 Binary files a/data/graphics/particles/leaf2/leaf1_00007.png and /dev/null differ diff --git a/data/graphics/particles/leaf2/leaf1_00008.png b/data/graphics/particles/leaf2/leaf1_00008.png deleted file mode 100644 index 33f28bd..0000000 Binary files a/data/graphics/particles/leaf2/leaf1_00008.png and /dev/null differ diff --git a/data/graphics/particles/leaf2/leaf1_00009.png b/data/graphics/particles/leaf2/leaf1_00009.png deleted file mode 100644 index 6d6ff48..0000000 Binary files a/data/graphics/particles/leaf2/leaf1_00009.png and /dev/null differ diff --git a/data/graphics/particles/leaf2/leaf1_00010.png b/data/graphics/particles/leaf2/leaf1_00010.png deleted file mode 100644 index d1a770e..0000000 Binary files a/data/graphics/particles/leaf2/leaf1_00010.png and /dev/null differ diff --git a/data/graphics/particles/leaf2/leaf1_00011.png b/data/graphics/particles/leaf2/leaf1_00011.png deleted file mode 100644 index 0435cea..0000000 Binary files a/data/graphics/particles/leaf2/leaf1_00011.png and /dev/null differ diff --git a/data/graphics/particles/leaf2/leaf1_00012.png b/data/graphics/particles/leaf2/leaf1_00012.png deleted file mode 100644 index 3848e8d..0000000 Binary files a/data/graphics/particles/leaf2/leaf1_00012.png and /dev/null differ diff --git a/data/graphics/particles/leaf3/leaf1_00000.png b/data/graphics/particles/leaf3/leaf1_00000.png deleted file mode 100644 index c31c69f..0000000 Binary files a/data/graphics/particles/leaf3/leaf1_00000.png and /dev/null differ diff --git a/data/graphics/particles/leaf3/leaf1_00001.png b/data/graphics/particles/leaf3/leaf1_00001.png deleted file mode 100644 index ad36fe5..0000000 Binary files a/data/graphics/particles/leaf3/leaf1_00001.png and /dev/null differ diff --git a/data/graphics/particles/leaf3/leaf1_00002.png b/data/graphics/particles/leaf3/leaf1_00002.png deleted file mode 100644 index 8338ffd..0000000 Binary files a/data/graphics/particles/leaf3/leaf1_00002.png and /dev/null differ diff --git a/data/graphics/particles/leaf3/leaf1_00003.png b/data/graphics/particles/leaf3/leaf1_00003.png deleted file mode 100644 index 444a0e1..0000000 Binary files a/data/graphics/particles/leaf3/leaf1_00003.png and /dev/null differ diff --git a/data/graphics/particles/leaf3/leaf1_00004.png b/data/graphics/particles/leaf3/leaf1_00004.png deleted file mode 100644 index 4f62188..0000000 Binary files a/data/graphics/particles/leaf3/leaf1_00004.png and /dev/null differ diff --git a/data/graphics/particles/leaf3/leaf1_00005.png b/data/graphics/particles/leaf3/leaf1_00005.png deleted file mode 100644 index 99dc366..0000000 Binary files a/data/graphics/particles/leaf3/leaf1_00005.png and /dev/null differ diff --git a/data/graphics/particles/leaf3/leaf1_00006.png b/data/graphics/particles/leaf3/leaf1_00006.png deleted file mode 100644 index 50c0d9a..0000000 Binary files a/data/graphics/particles/leaf3/leaf1_00006.png and /dev/null differ diff --git a/data/graphics/particles/leaf3/leaf1_00007.png b/data/graphics/particles/leaf3/leaf1_00007.png deleted file mode 100644 index d7a7a37..0000000 Binary files a/data/graphics/particles/leaf3/leaf1_00007.png and /dev/null differ diff --git a/data/graphics/particles/leaf3/leaf1_00008.png b/data/graphics/particles/leaf3/leaf1_00008.png deleted file mode 100644 index 8df60d4..0000000 Binary files a/data/graphics/particles/leaf3/leaf1_00008.png and /dev/null differ diff --git a/data/graphics/particles/leaf3/leaf1_00009.png b/data/graphics/particles/leaf3/leaf1_00009.png deleted file mode 100644 index d14ee99..0000000 Binary files a/data/graphics/particles/leaf3/leaf1_00009.png and /dev/null differ diff --git a/data/graphics/particles/leaf4/leaf1_00000.png b/data/graphics/particles/leaf4/leaf1_00000.png deleted file mode 100644 index a6309fe..0000000 Binary files a/data/graphics/particles/leaf4/leaf1_00000.png and /dev/null differ diff --git a/data/graphics/particles/leaf4/leaf1_00001.png b/data/graphics/particles/leaf4/leaf1_00001.png deleted file mode 100644 index 3d31420..0000000 Binary files a/data/graphics/particles/leaf4/leaf1_00001.png and /dev/null differ diff --git a/data/graphics/particles/leaf4/leaf1_00002.png b/data/graphics/particles/leaf4/leaf1_00002.png deleted file mode 100644 index cfcc565..0000000 Binary files a/data/graphics/particles/leaf4/leaf1_00002.png and /dev/null differ diff --git a/data/graphics/particles/leaf4/leaf1_00003.png b/data/graphics/particles/leaf4/leaf1_00003.png deleted file mode 100644 index af077e3..0000000 Binary files a/data/graphics/particles/leaf4/leaf1_00003.png and /dev/null differ diff --git a/data/graphics/particles/leaf4/leaf1_00004.png b/data/graphics/particles/leaf4/leaf1_00004.png deleted file mode 100644 index 7b0be93..0000000 Binary files a/data/graphics/particles/leaf4/leaf1_00004.png and /dev/null differ diff --git a/data/graphics/particles/leaf4/leaf1_00005.png b/data/graphics/particles/leaf4/leaf1_00005.png deleted file mode 100644 index 7b5ac2a..0000000 Binary files a/data/graphics/particles/leaf4/leaf1_00005.png and /dev/null differ diff --git a/data/graphics/particles/leaf4/leaf1_00006.png b/data/graphics/particles/leaf4/leaf1_00006.png deleted file mode 100644 index 8229334..0000000 Binary files a/data/graphics/particles/leaf4/leaf1_00006.png and /dev/null differ diff --git a/data/graphics/particles/leaf4/leaf1_00007.png b/data/graphics/particles/leaf4/leaf1_00007.png deleted file mode 100644 index 1915fab..0000000 Binary files a/data/graphics/particles/leaf4/leaf1_00007.png and /dev/null differ diff --git a/data/graphics/particles/leaf4/leaf1_00008.png b/data/graphics/particles/leaf4/leaf1_00008.png deleted file mode 100644 index 157a04a..0000000 Binary files a/data/graphics/particles/leaf4/leaf1_00008.png and /dev/null differ diff --git a/data/graphics/particles/leaf4/leaf1_00009.png b/data/graphics/particles/leaf4/leaf1_00009.png deleted file mode 100644 index 27fb1fd..0000000 Binary files a/data/graphics/particles/leaf4/leaf1_00009.png and /dev/null differ diff --git a/data/graphics/particles/leaf4/leaf1_00010.png b/data/graphics/particles/leaf4/leaf1_00010.png deleted file mode 100644 index 5030b8c..0000000 Binary files a/data/graphics/particles/leaf4/leaf1_00010.png and /dev/null differ diff --git a/data/graphics/particles/leaf5/leaf1_00000.png b/data/graphics/particles/leaf5/leaf1_00000.png deleted file mode 100644 index b0e81b0..0000000 Binary files a/data/graphics/particles/leaf5/leaf1_00000.png and /dev/null differ diff --git a/data/graphics/particles/leaf5/leaf1_00001.png b/data/graphics/particles/leaf5/leaf1_00001.png deleted file mode 100644 index b7828b6..0000000 Binary files a/data/graphics/particles/leaf5/leaf1_00001.png and /dev/null differ diff --git a/data/graphics/particles/leaf5/leaf1_00002.png b/data/graphics/particles/leaf5/leaf1_00002.png deleted file mode 100644 index ccc2714..0000000 Binary files a/data/graphics/particles/leaf5/leaf1_00002.png and /dev/null differ diff --git a/data/graphics/particles/leaf5/leaf1_00003.png b/data/graphics/particles/leaf5/leaf1_00003.png deleted file mode 100644 index f1fd9b1..0000000 Binary files a/data/graphics/particles/leaf5/leaf1_00003.png and /dev/null differ diff --git a/data/graphics/particles/leaf5/leaf1_00004.png b/data/graphics/particles/leaf5/leaf1_00004.png deleted file mode 100644 index de90457..0000000 Binary files a/data/graphics/particles/leaf5/leaf1_00004.png and /dev/null differ diff --git a/data/graphics/particles/leaf5/leaf1_00005.png b/data/graphics/particles/leaf5/leaf1_00005.png deleted file mode 100644 index 661a16a..0000000 Binary files a/data/graphics/particles/leaf5/leaf1_00005.png and /dev/null differ diff --git a/data/graphics/particles/leaf5/leaf1_00006.png b/data/graphics/particles/leaf5/leaf1_00006.png deleted file mode 100644 index 996ed74..0000000 Binary files a/data/graphics/particles/leaf5/leaf1_00006.png and /dev/null differ diff --git a/data/graphics/particles/leaf5/leaf1_00007.png b/data/graphics/particles/leaf5/leaf1_00007.png deleted file mode 100644 index bc0ab50..0000000 Binary files a/data/graphics/particles/leaf5/leaf1_00007.png and /dev/null differ diff --git a/data/graphics/particles/leaf5/leaf1_00008.png b/data/graphics/particles/leaf5/leaf1_00008.png deleted file mode 100644 index 9de760e..0000000 Binary files a/data/graphics/particles/leaf5/leaf1_00008.png and /dev/null differ diff --git a/data/graphics/particles/leaf5/leaf1_00009.png b/data/graphics/particles/leaf5/leaf1_00009.png deleted file mode 100644 index ec73497..0000000 Binary files a/data/graphics/particles/leaf5/leaf1_00009.png and /dev/null differ diff --git a/data/graphics/particles/leaf6/leaf1_00000.png b/data/graphics/particles/leaf6/leaf1_00000.png deleted file mode 100644 index 4969977..0000000 Binary files a/data/graphics/particles/leaf6/leaf1_00000.png and /dev/null differ diff --git a/data/graphics/particles/leaf6/leaf1_00001.png b/data/graphics/particles/leaf6/leaf1_00001.png deleted file mode 100644 index 4212765..0000000 Binary files a/data/graphics/particles/leaf6/leaf1_00001.png and /dev/null differ diff --git a/data/graphics/particles/leaf6/leaf1_00002.png b/data/graphics/particles/leaf6/leaf1_00002.png deleted file mode 100644 index 7237076..0000000 Binary files a/data/graphics/particles/leaf6/leaf1_00002.png and /dev/null differ diff --git a/data/graphics/particles/leaf6/leaf1_00003.png b/data/graphics/particles/leaf6/leaf1_00003.png deleted file mode 100644 index a03d0fe..0000000 Binary files a/data/graphics/particles/leaf6/leaf1_00003.png and /dev/null differ diff --git a/data/graphics/particles/leaf6/leaf1_00004.png b/data/graphics/particles/leaf6/leaf1_00004.png deleted file mode 100644 index e585fb4..0000000 Binary files a/data/graphics/particles/leaf6/leaf1_00004.png and /dev/null differ diff --git a/data/graphics/particles/leaf6/leaf1_00005.png b/data/graphics/particles/leaf6/leaf1_00005.png deleted file mode 100644 index 13d8d55..0000000 Binary files a/data/graphics/particles/leaf6/leaf1_00005.png and /dev/null differ diff --git a/data/graphics/particles/leaf6/leaf1_00006.png b/data/graphics/particles/leaf6/leaf1_00006.png deleted file mode 100644 index 8b153dc..0000000 Binary files a/data/graphics/particles/leaf6/leaf1_00006.png and /dev/null differ diff --git a/data/graphics/particles/leaf6/leaf1_00007.png b/data/graphics/particles/leaf6/leaf1_00007.png deleted file mode 100644 index aab3b60..0000000 Binary files a/data/graphics/particles/leaf6/leaf1_00007.png and /dev/null differ diff --git a/data/graphics/particles/leaf6/leaf1_00008.png b/data/graphics/particles/leaf6/leaf1_00008.png deleted file mode 100644 index 9d32aa9..0000000 Binary files a/data/graphics/particles/leaf6/leaf1_00008.png and /dev/null differ diff --git a/data/graphics/particles/leaf6/leaf1_00009.png b/data/graphics/particles/leaf6/leaf1_00009.png deleted file mode 100644 index 1f87666..0000000 Binary files a/data/graphics/particles/leaf6/leaf1_00009.png and /dev/null differ diff --git a/data/graphics/particles/leaf6/leaf1_00010.png b/data/graphics/particles/leaf6/leaf1_00010.png deleted file mode 100644 index c54c793..0000000 Binary files a/data/graphics/particles/leaf6/leaf1_00010.png and /dev/null differ diff --git a/data/graphics/particles/leaf6/leaf1_00011.png b/data/graphics/particles/leaf6/leaf1_00011.png deleted file mode 100644 index 3659600..0000000 Binary files a/data/graphics/particles/leaf6/leaf1_00011.png and /dev/null differ diff --git a/data/graphics/particles/leaf_attack/0.png b/data/graphics/particles/leaf_attack/0.png deleted file mode 100644 index a9dc64d..0000000 Binary files a/data/graphics/particles/leaf_attack/0.png and /dev/null differ diff --git a/data/graphics/particles/leaf_attack/1.png b/data/graphics/particles/leaf_attack/1.png deleted file mode 100644 index 2cfe1a5..0000000 Binary files a/data/graphics/particles/leaf_attack/1.png and /dev/null differ diff --git a/data/graphics/particles/leaf_attack/2.png b/data/graphics/particles/leaf_attack/2.png deleted file mode 100644 index 19eabbd..0000000 Binary files a/data/graphics/particles/leaf_attack/2.png and /dev/null differ diff --git a/data/graphics/particles/leaf_attack/3.png b/data/graphics/particles/leaf_attack/3.png deleted file mode 100644 index b7c453f..0000000 Binary files a/data/graphics/particles/leaf_attack/3.png and /dev/null differ diff --git a/data/graphics/particles/leaf_attack/4.png b/data/graphics/particles/leaf_attack/4.png deleted file mode 100644 index d26d38e..0000000 Binary files a/data/graphics/particles/leaf_attack/4.png and /dev/null differ diff --git a/data/graphics/particles/leaf_attack/5.png b/data/graphics/particles/leaf_attack/5.png deleted file mode 100644 index 73c1f4f..0000000 Binary files a/data/graphics/particles/leaf_attack/5.png and /dev/null differ diff --git a/data/graphics/particles/leaf_attack/6.png b/data/graphics/particles/leaf_attack/6.png deleted file mode 100644 index d68a09d..0000000 Binary files a/data/graphics/particles/leaf_attack/6.png and /dev/null differ diff --git a/data/graphics/particles/nova/0.png b/data/graphics/particles/nova/0.png deleted file mode 100644 index fdcc423..0000000 Binary files a/data/graphics/particles/nova/0.png and /dev/null differ diff --git a/data/graphics/particles/nova/1.png b/data/graphics/particles/nova/1.png deleted file mode 100644 index 320b930..0000000 Binary files a/data/graphics/particles/nova/1.png and /dev/null differ diff --git a/data/graphics/particles/nova/2.png b/data/graphics/particles/nova/2.png deleted file mode 100644 index 91766d8..0000000 Binary files a/data/graphics/particles/nova/2.png and /dev/null differ diff --git a/data/graphics/particles/nova/3.png b/data/graphics/particles/nova/3.png deleted file mode 100644 index 98371b1..0000000 Binary files a/data/graphics/particles/nova/3.png and /dev/null differ diff --git a/data/graphics/particles/nova/4.png b/data/graphics/particles/nova/4.png deleted file mode 100644 index 26924ab..0000000 Binary files a/data/graphics/particles/nova/4.png and /dev/null differ diff --git a/data/graphics/particles/nova/5.png b/data/graphics/particles/nova/5.png deleted file mode 100644 index f6aae60..0000000 Binary files a/data/graphics/particles/nova/5.png and /dev/null differ diff --git a/data/graphics/particles/raccoon/0.png b/data/graphics/particles/raccoon/0.png deleted file mode 100644 index cc1a9eb..0000000 Binary files a/data/graphics/particles/raccoon/0.png and /dev/null differ diff --git a/data/graphics/particles/raccoon/1.png b/data/graphics/particles/raccoon/1.png deleted file mode 100644 index 7385737..0000000 Binary files a/data/graphics/particles/raccoon/1.png and /dev/null differ diff --git a/data/graphics/particles/raccoon/2.png b/data/graphics/particles/raccoon/2.png deleted file mode 100644 index 8b384be..0000000 Binary files a/data/graphics/particles/raccoon/2.png and /dev/null differ diff --git a/data/graphics/particles/raccoon/3.png b/data/graphics/particles/raccoon/3.png deleted file mode 100644 index d6feaf3..0000000 Binary files a/data/graphics/particles/raccoon/3.png and /dev/null differ diff --git a/data/graphics/particles/raccoon/4.png b/data/graphics/particles/raccoon/4.png deleted file mode 100644 index e550c15..0000000 Binary files a/data/graphics/particles/raccoon/4.png and /dev/null differ diff --git a/data/graphics/particles/raccoon/5.png b/data/graphics/particles/raccoon/5.png deleted file mode 100644 index 13797ad..0000000 Binary files a/data/graphics/particles/raccoon/5.png and /dev/null differ diff --git a/data/graphics/particles/slash/0.png b/data/graphics/particles/slash/0.png deleted file mode 100644 index 75b73d5..0000000 Binary files a/data/graphics/particles/slash/0.png and /dev/null differ diff --git a/data/graphics/particles/slash/1.png b/data/graphics/particles/slash/1.png deleted file mode 100644 index 011e4a9..0000000 Binary files a/data/graphics/particles/slash/1.png and /dev/null differ diff --git a/data/graphics/particles/slash/2.png b/data/graphics/particles/slash/2.png deleted file mode 100644 index 922e970..0000000 Binary files a/data/graphics/particles/slash/2.png and /dev/null differ diff --git a/data/graphics/particles/slash/3.png b/data/graphics/particles/slash/3.png deleted file mode 100644 index 58821d9..0000000 Binary files a/data/graphics/particles/slash/3.png and /dev/null differ diff --git a/data/graphics/particles/smoke/0.png b/data/graphics/particles/smoke/0.png deleted file mode 100644 index 73e9a59..0000000 Binary files a/data/graphics/particles/smoke/0.png and /dev/null differ diff --git a/data/graphics/particles/smoke/1.png b/data/graphics/particles/smoke/1.png deleted file mode 100644 index f21e130..0000000 Binary files a/data/graphics/particles/smoke/1.png and /dev/null differ diff --git a/data/graphics/particles/smoke/2.png b/data/graphics/particles/smoke/2.png deleted file mode 100644 index 8e2ecb9..0000000 Binary files a/data/graphics/particles/smoke/2.png and /dev/null differ diff --git a/data/graphics/particles/smoke/3.png b/data/graphics/particles/smoke/3.png deleted file mode 100644 index 244b1a1..0000000 Binary files a/data/graphics/particles/smoke/3.png and /dev/null differ diff --git a/data/graphics/particles/smoke/4.png b/data/graphics/particles/smoke/4.png deleted file mode 100644 index e60a29b..0000000 Binary files a/data/graphics/particles/smoke/4.png and /dev/null differ diff --git a/data/graphics/particles/smoke/5.png b/data/graphics/particles/smoke/5.png deleted file mode 100644 index 6475ce3..0000000 Binary files a/data/graphics/particles/smoke/5.png and /dev/null differ diff --git a/data/graphics/particles/smoke2/0.png b/data/graphics/particles/smoke2/0.png deleted file mode 100644 index c3267c0..0000000 Binary files a/data/graphics/particles/smoke2/0.png and /dev/null differ diff --git a/data/graphics/particles/smoke2/1.png b/data/graphics/particles/smoke2/1.png deleted file mode 100644 index f392845..0000000 Binary files a/data/graphics/particles/smoke2/1.png and /dev/null differ diff --git a/data/graphics/particles/smoke2/2.png b/data/graphics/particles/smoke2/2.png deleted file mode 100644 index d611b6f..0000000 Binary files a/data/graphics/particles/smoke2/2.png and /dev/null differ diff --git a/data/graphics/particles/smoke2/3.png b/data/graphics/particles/smoke2/3.png deleted file mode 100644 index c817380..0000000 Binary files a/data/graphics/particles/smoke2/3.png and /dev/null differ diff --git a/data/graphics/particles/smoke2/4.png b/data/graphics/particles/smoke2/4.png deleted file mode 100644 index abd4af8..0000000 Binary files a/data/graphics/particles/smoke2/4.png and /dev/null differ diff --git a/data/graphics/particles/smoke2/5.png b/data/graphics/particles/smoke2/5.png deleted file mode 100644 index c89158a..0000000 Binary files a/data/graphics/particles/smoke2/5.png and /dev/null differ diff --git a/data/graphics/particles/smoke_orange/0.png b/data/graphics/particles/smoke_orange/0.png deleted file mode 100644 index e4baa13..0000000 Binary files a/data/graphics/particles/smoke_orange/0.png and /dev/null differ diff --git a/data/graphics/particles/smoke_orange/1.png b/data/graphics/particles/smoke_orange/1.png deleted file mode 100644 index 7cce227..0000000 Binary files a/data/graphics/particles/smoke_orange/1.png and /dev/null differ diff --git a/data/graphics/particles/smoke_orange/2.png b/data/graphics/particles/smoke_orange/2.png deleted file mode 100644 index 4425e33..0000000 Binary files a/data/graphics/particles/smoke_orange/2.png and /dev/null differ diff --git a/data/graphics/particles/smoke_orange/3.png b/data/graphics/particles/smoke_orange/3.png deleted file mode 100644 index a817e8d..0000000 Binary files a/data/graphics/particles/smoke_orange/3.png and /dev/null differ diff --git a/data/graphics/particles/smoke_orange/4.png b/data/graphics/particles/smoke_orange/4.png deleted file mode 100644 index b6ff7a5..0000000 Binary files a/data/graphics/particles/smoke_orange/4.png and /dev/null differ diff --git a/data/graphics/particles/smoke_orange/5.png b/data/graphics/particles/smoke_orange/5.png deleted file mode 100644 index 3dfab88..0000000 Binary files a/data/graphics/particles/smoke_orange/5.png and /dev/null differ diff --git a/data/graphics/particles/sparkle/0.png b/data/graphics/particles/sparkle/0.png deleted file mode 100644 index 2bc0bf2..0000000 Binary files a/data/graphics/particles/sparkle/0.png and /dev/null differ diff --git a/data/graphics/particles/sparkle/1.png b/data/graphics/particles/sparkle/1.png deleted file mode 100644 index 5b3a810..0000000 Binary files a/data/graphics/particles/sparkle/1.png and /dev/null differ diff --git a/data/graphics/particles/sparkle/2.png b/data/graphics/particles/sparkle/2.png deleted file mode 100644 index d13930a..0000000 Binary files a/data/graphics/particles/sparkle/2.png and /dev/null differ diff --git a/data/graphics/particles/sparkle/3.png b/data/graphics/particles/sparkle/3.png deleted file mode 100644 index 8384774..0000000 Binary files a/data/graphics/particles/sparkle/3.png and /dev/null differ diff --git a/data/graphics/particles/sparkle/4.png b/data/graphics/particles/sparkle/4.png deleted file mode 100644 index b07148f..0000000 Binary files a/data/graphics/particles/sparkle/4.png and /dev/null differ diff --git a/data/graphics/particles/thunder/0.png b/data/graphics/particles/thunder/0.png deleted file mode 100644 index 781f52b..0000000 Binary files a/data/graphics/particles/thunder/0.png and /dev/null differ diff --git a/data/graphics/particles/thunder/1.png b/data/graphics/particles/thunder/1.png deleted file mode 100644 index ac1fa39..0000000 Binary files a/data/graphics/particles/thunder/1.png and /dev/null differ diff --git a/data/graphics/particles/thunder/2.png b/data/graphics/particles/thunder/2.png deleted file mode 100644 index c4bb34b..0000000 Binary files a/data/graphics/particles/thunder/2.png and /dev/null differ diff --git a/data/graphics/particles/thunder/3.png b/data/graphics/particles/thunder/3.png deleted file mode 100644 index 91c92a3..0000000 Binary files a/data/graphics/particles/thunder/3.png and /dev/null differ diff --git a/data/graphics/particles/thunder/4.png b/data/graphics/particles/thunder/4.png deleted file mode 100644 index 0d51893..0000000 Binary files a/data/graphics/particles/thunder/4.png and /dev/null differ diff --git a/data/graphics/particles/thunder/5.png b/data/graphics/particles/thunder/5.png deleted file mode 100644 index 55d2698..0000000 Binary files a/data/graphics/particles/thunder/5.png and /dev/null differ diff --git a/data/graphics/particles/thunder/6.png b/data/graphics/particles/thunder/6.png deleted file mode 100644 index 4d79092..0000000 Binary files a/data/graphics/particles/thunder/6.png and /dev/null differ diff --git a/data/graphics/particles/thunder/7.png b/data/graphics/particles/thunder/7.png deleted file mode 100644 index 0b8b41c..0000000 Binary files a/data/graphics/particles/thunder/7.png and /dev/null differ diff --git a/data/graphics/player.png b/data/graphics/player.png deleted file mode 100644 index 5e5ade7..0000000 Binary files a/data/graphics/player.png and /dev/null differ diff --git a/data/graphics/player/down/down_0.png b/data/graphics/player/down/down_0.png deleted file mode 100644 index dbbe852..0000000 Binary files a/data/graphics/player/down/down_0.png and /dev/null differ diff --git a/data/graphics/player/down/down_1.png b/data/graphics/player/down/down_1.png deleted file mode 100644 index 8545561..0000000 Binary files a/data/graphics/player/down/down_1.png and /dev/null differ diff --git a/data/graphics/player/down/down_2.png b/data/graphics/player/down/down_2.png deleted file mode 100644 index dbbe852..0000000 Binary files a/data/graphics/player/down/down_2.png and /dev/null differ diff --git a/data/graphics/player/down/down_3.png b/data/graphics/player/down/down_3.png deleted file mode 100644 index eb692a2..0000000 Binary files a/data/graphics/player/down/down_3.png and /dev/null differ diff --git a/data/graphics/player/down_attack/attack_down.png b/data/graphics/player/down_attack/attack_down.png deleted file mode 100644 index 0ecc144..0000000 Binary files a/data/graphics/player/down_attack/attack_down.png and /dev/null differ diff --git a/data/graphics/player/down_idle/idle_down.png b/data/graphics/player/down_idle/idle_down.png deleted file mode 100644 index dbbe852..0000000 Binary files a/data/graphics/player/down_idle/idle_down.png and /dev/null differ diff --git a/data/graphics/player/left/left_0.png b/data/graphics/player/left/left_0.png deleted file mode 100644 index dafb10b..0000000 Binary files a/data/graphics/player/left/left_0.png and /dev/null differ diff --git a/data/graphics/player/left/left_1.png b/data/graphics/player/left/left_1.png deleted file mode 100644 index b84ec9c..0000000 Binary files a/data/graphics/player/left/left_1.png and /dev/null differ diff --git a/data/graphics/player/left/left_2.png b/data/graphics/player/left/left_2.png deleted file mode 100644 index 0e22f2e..0000000 Binary files a/data/graphics/player/left/left_2.png and /dev/null differ diff --git a/data/graphics/player/left/left_3.png b/data/graphics/player/left/left_3.png deleted file mode 100644 index b771463..0000000 Binary files a/data/graphics/player/left/left_3.png and /dev/null differ diff --git a/data/graphics/player/left_attack/attack_left.png b/data/graphics/player/left_attack/attack_left.png deleted file mode 100644 index 0b6c05a..0000000 Binary files a/data/graphics/player/left_attack/attack_left.png and /dev/null differ diff --git a/data/graphics/player/left_idle/idle_left.png b/data/graphics/player/left_idle/idle_left.png deleted file mode 100644 index dafb10b..0000000 Binary files a/data/graphics/player/left_idle/idle_left.png and /dev/null differ diff --git a/data/graphics/player/right/right_0.png b/data/graphics/player/right/right_0.png deleted file mode 100644 index fe82409..0000000 Binary files a/data/graphics/player/right/right_0.png and /dev/null differ diff --git a/data/graphics/player/right/right_1.png b/data/graphics/player/right/right_1.png deleted file mode 100644 index 983fbc9..0000000 Binary files a/data/graphics/player/right/right_1.png and /dev/null differ diff --git a/data/graphics/player/right/right_2.png b/data/graphics/player/right/right_2.png deleted file mode 100644 index 8fcb491..0000000 Binary files a/data/graphics/player/right/right_2.png and /dev/null differ diff --git a/data/graphics/player/right/right_3.png b/data/graphics/player/right/right_3.png deleted file mode 100644 index 0a7a454..0000000 Binary files a/data/graphics/player/right/right_3.png and /dev/null differ diff --git a/data/graphics/player/right_attack/attack_right.png b/data/graphics/player/right_attack/attack_right.png deleted file mode 100644 index 9fa1657..0000000 Binary files a/data/graphics/player/right_attack/attack_right.png and /dev/null differ diff --git a/data/graphics/player/right_idle/idle_right.png b/data/graphics/player/right_idle/idle_right.png deleted file mode 100644 index fe82409..0000000 Binary files a/data/graphics/player/right_idle/idle_right.png and /dev/null differ diff --git a/data/graphics/player/up/up_0.png b/data/graphics/player/up/up_0.png deleted file mode 100644 index d0dae1c..0000000 Binary files a/data/graphics/player/up/up_0.png and /dev/null differ diff --git a/data/graphics/player/up/up_1.png b/data/graphics/player/up/up_1.png deleted file mode 100644 index 2b0de88..0000000 Binary files a/data/graphics/player/up/up_1.png and /dev/null differ diff --git a/data/graphics/player/up/up_2.png b/data/graphics/player/up/up_2.png deleted file mode 100644 index d0dae1c..0000000 Binary files a/data/graphics/player/up/up_2.png and /dev/null differ diff --git a/data/graphics/player/up/up_3.png b/data/graphics/player/up/up_3.png deleted file mode 100644 index b6ebf56..0000000 Binary files a/data/graphics/player/up/up_3.png and /dev/null differ diff --git a/data/graphics/player/up_attack/attack_up.png b/data/graphics/player/up_attack/attack_up.png deleted file mode 100644 index d165d7c..0000000 Binary files a/data/graphics/player/up_attack/attack_up.png and /dev/null differ diff --git a/data/graphics/player/up_idle/idle_up.png b/data/graphics/player/up_idle/idle_up.png deleted file mode 100644 index d0dae1c..0000000 Binary files a/data/graphics/player/up_idle/idle_up.png and /dev/null differ diff --git a/data/graphics/rock.png b/data/graphics/rock.png deleted file mode 100644 index 30a74e5..0000000 Binary files a/data/graphics/rock.png and /dev/null differ diff --git a/data/graphics/test/player.png b/data/graphics/test/player.png deleted file mode 100644 index dbbe852..0000000 Binary files a/data/graphics/test/player.png and /dev/null differ diff --git a/data/graphics/test/rock.png b/data/graphics/test/rock.png deleted file mode 100644 index 30a74e5..0000000 Binary files a/data/graphics/test/rock.png and /dev/null differ diff --git a/data/graphics/tilemap/Floor.png b/data/graphics/tilemap/Floor.png deleted file mode 100644 index 2971cdd..0000000 Binary files a/data/graphics/tilemap/Floor.png and /dev/null differ diff --git a/data/graphics/tilemap/details.png b/data/graphics/tilemap/details.png deleted file mode 100644 index 8e43aaa..0000000 Binary files a/data/graphics/tilemap/details.png and /dev/null differ diff --git a/data/graphics/tilemap/ground.png b/data/graphics/tilemap/ground.png deleted file mode 100644 index 8231704..0000000 Binary files a/data/graphics/tilemap/ground.png and /dev/null differ diff --git a/data/graphics/water.png b/data/graphics/water.png deleted file mode 100644 index 182d376..0000000 Binary files a/data/graphics/water.png and /dev/null differ diff --git a/data/graphics/weapons/axe/down.png b/data/graphics/weapons/axe/down.png deleted file mode 100644 index 66761cd..0000000 Binary files a/data/graphics/weapons/axe/down.png and /dev/null differ diff --git a/data/graphics/weapons/axe/full.png b/data/graphics/weapons/axe/full.png deleted file mode 100644 index 99f0318..0000000 Binary files a/data/graphics/weapons/axe/full.png and /dev/null differ diff --git a/data/graphics/weapons/axe/left.png b/data/graphics/weapons/axe/left.png deleted file mode 100644 index fbd9b02..0000000 Binary files a/data/graphics/weapons/axe/left.png and /dev/null differ diff --git a/data/graphics/weapons/axe/right.png b/data/graphics/weapons/axe/right.png deleted file mode 100644 index 72c1d42..0000000 Binary files a/data/graphics/weapons/axe/right.png and /dev/null differ diff --git a/data/graphics/weapons/axe/up.png b/data/graphics/weapons/axe/up.png deleted file mode 100644 index 5f49b89..0000000 Binary files a/data/graphics/weapons/axe/up.png and /dev/null differ diff --git a/data/graphics/weapons/lance/down.png b/data/graphics/weapons/lance/down.png deleted file mode 100644 index f58aeba..0000000 Binary files a/data/graphics/weapons/lance/down.png and /dev/null differ diff --git a/data/graphics/weapons/lance/full.png b/data/graphics/weapons/lance/full.png deleted file mode 100644 index 76ce170..0000000 Binary files a/data/graphics/weapons/lance/full.png and /dev/null differ diff --git a/data/graphics/weapons/lance/left.png b/data/graphics/weapons/lance/left.png deleted file mode 100644 index b961b43..0000000 Binary files a/data/graphics/weapons/lance/left.png and /dev/null differ diff --git a/data/graphics/weapons/lance/right.png b/data/graphics/weapons/lance/right.png deleted file mode 100644 index af7fd12..0000000 Binary files a/data/graphics/weapons/lance/right.png and /dev/null differ diff --git a/data/graphics/weapons/lance/up.png b/data/graphics/weapons/lance/up.png deleted file mode 100644 index 96040e5..0000000 Binary files a/data/graphics/weapons/lance/up.png and /dev/null differ diff --git a/data/graphics/weapons/rapier/down.png b/data/graphics/weapons/rapier/down.png deleted file mode 100644 index dd103a5..0000000 Binary files a/data/graphics/weapons/rapier/down.png and /dev/null differ diff --git a/data/graphics/weapons/rapier/full.png b/data/graphics/weapons/rapier/full.png deleted file mode 100644 index a5f2835..0000000 Binary files a/data/graphics/weapons/rapier/full.png and /dev/null differ diff --git a/data/graphics/weapons/rapier/left.png b/data/graphics/weapons/rapier/left.png deleted file mode 100644 index 31f5b8b..0000000 Binary files a/data/graphics/weapons/rapier/left.png and /dev/null differ diff --git a/data/graphics/weapons/rapier/right.png b/data/graphics/weapons/rapier/right.png deleted file mode 100644 index 30910a2..0000000 Binary files a/data/graphics/weapons/rapier/right.png and /dev/null differ diff --git a/data/graphics/weapons/rapier/up.png b/data/graphics/weapons/rapier/up.png deleted file mode 100644 index 5839792..0000000 Binary files a/data/graphics/weapons/rapier/up.png and /dev/null differ diff --git a/data/graphics/weapons/sai/down.png b/data/graphics/weapons/sai/down.png deleted file mode 100644 index bda7e15..0000000 Binary files a/data/graphics/weapons/sai/down.png and /dev/null differ diff --git a/data/graphics/weapons/sai/full.png b/data/graphics/weapons/sai/full.png deleted file mode 100644 index 6f752d6..0000000 Binary files a/data/graphics/weapons/sai/full.png and /dev/null differ diff --git a/data/graphics/weapons/sai/left.png b/data/graphics/weapons/sai/left.png deleted file mode 100644 index c9847e2..0000000 Binary files a/data/graphics/weapons/sai/left.png and /dev/null differ diff --git a/data/graphics/weapons/sai/right.png b/data/graphics/weapons/sai/right.png deleted file mode 100644 index 0631803..0000000 Binary files a/data/graphics/weapons/sai/right.png and /dev/null differ diff --git a/data/graphics/weapons/sai/up.png b/data/graphics/weapons/sai/up.png deleted file mode 100644 index 366e70b..0000000 Binary files a/data/graphics/weapons/sai/up.png and /dev/null differ diff --git a/data/graphics/weapons/sword/down.png b/data/graphics/weapons/sword/down.png deleted file mode 100644 index ebcfa93..0000000 Binary files a/data/graphics/weapons/sword/down.png and /dev/null differ diff --git a/data/graphics/weapons/sword/full.png b/data/graphics/weapons/sword/full.png deleted file mode 100644 index 3b395d8..0000000 Binary files a/data/graphics/weapons/sword/full.png and /dev/null differ diff --git a/data/graphics/weapons/sword/left.png b/data/graphics/weapons/sword/left.png deleted file mode 100644 index 34abbfa..0000000 Binary files a/data/graphics/weapons/sword/left.png and /dev/null differ diff --git a/data/graphics/weapons/sword/right.png b/data/graphics/weapons/sword/right.png deleted file mode 100644 index fd96c2c..0000000 Binary files a/data/graphics/weapons/sword/right.png and /dev/null differ diff --git a/data/graphics/weapons/sword/up.png b/data/graphics/weapons/sword/up.png deleted file mode 100644 index 5cac8d4..0000000 Binary files a/data/graphics/weapons/sword/up.png and /dev/null differ diff --git a/data/lighting/point_light.png b/data/lighting/point_light.png new file mode 100644 index 0000000..8d36043 Binary files /dev/null and b/data/lighting/point_light.png differ diff --git a/data/map/borders.csv b/data/map/borders.csv deleted file mode 100644 index 32ab4a9..0000000 --- a/data/map/borders.csv +++ /dev/null @@ -1,64 +0,0 @@ --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,1,1,1,1,1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,20,21,-1,-1,-1,-1,-1,-1,19,20,20,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,20,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,20,20,20,20,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,20,20,2,-1,-1,0,1,2,0,1,1,1,1,1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,0,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,19,20,20,21,9,19,21,21,-1,-1,-1,-1,19,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,0,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,19,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,3,4,4,4,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,19,2,-1,16,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,2,-1,16,4,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,16,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,2,-1,-1,16,4,4,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,19,1,2,-1,-1,-1,16,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,16,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,2,-1,-1,-1,16,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,5,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,2,-1,-1,-1,16,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,13,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,2,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,4,4,18,13,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,19,2,-1,-1,16,5,-1,-1,-1,-1,-1,3,4,4,18,-1,-1,-1,13,-1,-1,-1,-1,-1,19,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,13,-1,-1,3,4,4,18,-1,-1,-1,-1,-1,0,21,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,12,16,4,4,18,-1,-1,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,1,1,1,1,21,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,18,-1,-1,-1,-1,0,1,1,1,1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,0,20,21,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,18,-1,0,20,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,0,20,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,16,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,18,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,16,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,16,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,18,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,4,5,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,4,4,5,-1,-1,-1,-1,-1,11,0,2,13,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,17,17,17,17,17,18,16,18,13,-1,-1,-1,3,4,4,-1,16,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,0,-1,-1,-1,-1,-1,3,4,-1,-1,-1,-1,-1,16,4,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,4,4,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,4,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,4,5,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,4,4,5,-1,-1,-1,-1,3,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,4,4,5,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,1,2,-1,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,4,4,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,21,-1,-1,19,1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,21,-1,-1,-1,-1,-1,-1,19,1,2,-1,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,0,1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,1,21,-1,19,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,2,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,0,1,2,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,11,-1,-1,-1,-1,19,1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,18,2,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,8,-1,10,-1,-1,-1,0,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,19,5,-1,-1,-1,-1,-1,19,20,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,16,17,18,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,5,-1,8,-1,-1,-1,-1,-1,-1,-1,19,20,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,18,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,5,-1,-1,9,3,1,1,1,1,21,-1,19,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,17,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,16,17,17,17,17,5,-1,-1,-1,-1,-1,-1,19,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,1,1,1,1,2,5,-1,-1,-1,-1,19,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,17,17,5,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,19,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,0,1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,17,17,17,17,17,17,17,17,17,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,8,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,4,4,5,-1,-1,-1,3,4,4,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,16,17,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,4,4,4,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,10,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,17,18,1,2 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,10 diff --git a/data/map/floor.csv b/data/map/floor.csv deleted file mode 100644 index 6d4db49..0000000 --- a/data/map/floor.csv +++ /dev/null @@ -1,64 +0,0 @@ -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,2,2,2,3,2,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,3,3,3,3,3,2,2,2,1,1,1,1,1,1,3,2,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,3,3,3,3,3,2,2,2,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,3,3,3,3,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,3,3,3,3,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,3,3,3,3,2,3,3,1,1,1,1,1,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,3,3,3,3,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,3,3,3,3,3,2,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,3,3,3,3,3,3,1,1,1,1,1,1,1,1,2,2,4,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,2,4,4,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,3,3,3,3,3,2,1,1,1,1,1,1,1,1,1,2,2,4,4,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,3,3,3,3,3,1,1,1,1,1,1,1,1,1,2,2,2,4,4,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,2,4,4,4,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,2,2,4,4,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,4,4,2,2,1,1,1,1,1,1,1,1,1,2,2,2,4,4,1,1,1,1,1,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,4,4,2,2,1,1,1,1,1,2,2,2,2,4,4,4,2,1,1,1,1,1,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,4,2,2,1,1,2,2,2,2,4,4,4,4,2,2,2,1,1,1,1,1,1,3,3,3,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,3,3,3,3,3,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,4,2,2,2,2,2,2,4,4,4,4,2,2,2,2,1,1,1,1,1,1,1,3,3,3,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,4,4,4,4,4,4,4,4,4,2,2,2,2,2,2,1,1,1,1,1,1,1,3,3,3,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,4,4,4,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,3,3,3,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,4,4,2,2,2,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,3,3,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,4,4,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,4,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,2,4,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,2,4,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,3,3,1,1,1,1,1,1,1,1,1,1,2,2,4,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,3,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,3,3,3,1,1,1,1,1,1,1,1,2,4,4,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,3,3,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,1,1,1,1,1,2,4,4,2,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,2,2,3,2,4,2,2,1,1,1,3,3,3,3,2,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,5,5,5,5,1,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,5,5,5,5,3,3,3,3,0,0,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,3,3,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,1,1,1,1,1,1,1,1,3,3,3,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,1,1,1,1,1,1,1,1,3,3,3,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,2,1,1,1,1,2,3,3,3,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,2,1,1,3,3,3,3,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,2,3,3,3,3,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,1,1,3,3,3,5,5,5,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,1,1,1,1,1,1,3,2,3,2,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0 -0,0,0,3,3,3,0,0,0,0,3,3,3,3,1,1,1,1,1,1,1,1,1,2,2,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0 -0,0,3,0,3,3,0,0,0,0,3,3,3,1,1,1,1,1,1,1,1,1,1,2,2,3,1,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,0,0,0,0,0,0 -0,0,3,2,2,3,0,0,0,3,3,3,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,0,0,0,0,0,0,0,0 -0,0,3,3,3,1,3,0,0,3,3,3,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,0,0,0,0,0,0,0 -0,0,0,0,3,3,3,0,0,3,3,1,1,1,1,1,1,1,1,1,2,2,2,1,2,1,1,1,1,1,1,1,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,3,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,3,0,3,3,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,2,1,1,1,1,1,1,1,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,3,3,3,1,1,2,2,2,2,2,2,2,1,2,2,1,1,1,1,2,1,1,1,1,1,1,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,3,3,3,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,3,3,3,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,2,3,3,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0 -0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,3,1,3,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,1,1,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0 -0,0,0,0,3,3,2,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0 -0,0,0,0,0,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,0 -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1,2,3,3 -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,2,2,3 -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1,2 diff --git a/data/map/limit.csv b/data/map/limit.csv deleted file mode 100644 index 5dcad50..0000000 --- a/data/map/limit.csv +++ /dev/null @@ -1,64 +0,0 @@ --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,3,3,-1,-1,-1,-1,3,3,3,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,3,3,3,3,-1,-1,-1,-1,-1,-1,3,3,3,3,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,3,3,3,3,3,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,3,-1,-1,-1,-1,3,3,3,3,3,3,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,3,3,3,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,3,3,3,3,3,3,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1 --1,-1,3,3,3,3,3,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1 --1,3,3,-1,-1,-1,3,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1 --1,3,-1,3,-1,-1,3,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1 --1,3,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1 --1,3,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1 --1,3,3,3,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,3,-1,3,-1,-1,-1,-1,-1,-1 --1,-1,-1,3,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,3,3,3,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,-1,3,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,3,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,3,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,3,3,3,3,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,3,-1,-1,-1,-1,-1,-1 --1,-1,-1,3,3,-1,-1,3,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,3,3,-1,-1,-1,-1 --1,-1,-1,3,-1,-1,-1,3,3,3,-1,-1,-1,-1,3,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,3,3,3,-1,-1 --1,-1,-1,3,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,3,3,3,3,3,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,-1,3,3,3 --1,-1,-1,3,3,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,3 --1,-1,-1,-1,3,3,3,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,3,3,3,3,3,3,3,3,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,-1,-1,-1,-1 diff --git a/data/map/map_Details.csv b/data/map/map_Details.csv deleted file mode 100644 index cb22f98..0000000 --- a/data/map/map_Details.csv +++ /dev/null @@ -1,50 +0,0 @@ --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,51,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,-1,55,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,-1,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,34,-1,-1,-1,-1,53,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,34,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,54,-1,-1,-1,-1,49,-1,-1,-1,-1,53,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,39,-1,-1,-1,-1,-1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,-1,35,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,38,-1,-1,-1,-1,-1,-1,38,-1,-1,-1,-1,-1,-1,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,37,38,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,-1,-1,-1,-1,-1,-1,34,-1,2,-1,-1,-1,-1,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,-1,-1,-1,-1,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,34,-1,-1,-1,-1,-1,-1,-1,-1,2,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,-1,-1,-1,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,38,-1,-1,-1,-1,-1,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,34,-1,-1,37,-1,-1,37,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,35,-1,-1,33,-1,38,32,-1,-1,-1,-1,-1,35,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36,-1,-1,-1,-1,-1,-1,32,-1,-1,-1,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,-1,-1,-1,35,-1,-1,34,-1,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,34,-1,2,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,-1,-1,2,-1,39,-1,33,-1,-1,-1,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,36,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,38,-1,-1,-1,-1,-1,-1,-1,-1,36,2,-1,34,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,9,-1,-1,-1,9,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,35,-1,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,37,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,33,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 diff --git a/data/map/map_Entities.csv b/data/map/map_Entities.csv deleted file mode 100644 index 4470c42..0000000 --- a/data/map/map_Entities.csv +++ /dev/null @@ -1,50 +0,0 @@ --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,392,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,390,-1,-1,-1,-1,-1,-1,391,-1,-1,-1,391,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,390,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,391,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,393,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,393,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,390,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,390,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,390,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,393,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,390,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,390,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,390,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,394,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,393,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,390,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,390,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,390,-1,-1,-1,-1,-1,390,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,390,-1,393,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,393,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,390,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,390,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,393,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,393,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,390,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,390,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,391,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,393,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,393,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,393,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,392,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,393,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 diff --git a/data/map/map_Floor.csv b/data/map/map_Floor.csv deleted file mode 100644 index 3cdc5b2..0000000 --- a/data/map/map_Floor.csv +++ /dev/null @@ -1,50 +0,0 @@ -274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,273,274,274,274,274,274,274,274,274,274,274,274,274,274,274,273,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274 -274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,410,411,411,411,411,411,412,274,274,273,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274 -274,274,274,274,274,274,274,274,274,274,273,274,170,188,188,171,274,274,166,274,274,274,166,410,475,396,397,397,397,398,476,411,411,412,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274 -274,274,274,274,274,274,274,274,274,274,170,188,189,268,266,187,188,188,171,274,274,274,410,475,396,446,419,419,419,445,397,397,398,476,412,274,274,274,274,274,274,274,274,274,274,274,274,271,274,274,274,274,274,274,274,274,274 -274,274,274,274,274,170,188,188,188,188,189,267,265,264,265,264,264,244,165,166,166,166,432,396,446,419,419,419,419,419,419,419,445,398,476,411,411,412,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274 -274,274,274,274,274,167,266,268,264,266,268,264,264,268,266,264,245,244,187,171,166,166,432,418,419,419,419,419,419,419,419,419,419,445,397,398,510,476,411,412,166,166,166,166,166,166,166,166,274,274,274,274,274,274,274,274,274 -274,274,274,274,274,167,265,266,268,265,267,265,264,266,268,265,264,265,268,165,166,166,432,418,419,419,419,485,419,419,419,419,419,419,419,420,433,433,433,434,166,166,166,166,166,166,166,166,166,274,273,274,274,274,274,274,274 -274,274,274,274,274,192,145,267,268,265,264,268,264,245,265,245,264,266,264,165,166,166,432,440,424,419,419,419,419,419,419,423,441,441,441,442,433,507,433,434,166,166,166,166,166,166,166,166,166,274,274,274,274,274,274,274,274 -274,274,274,274,274,274,192,144,144,145,264,264,264,264,245,264,266,264,266,165,166,166,432,510,440,441,441,441,441,441,441,442,433,433,510,433,433,433,509,434,166,166,166,166,166,166,166,166,166,274,274,274,274,274,271,274,274 -274,274,274,274,274,274,274,274,274,192,145,264,266,268,245,264,264,264,143,193,166,166,432,508,433,433,433,433,433,433,433,509,433,433,433,433,433,433,433,434,166,166,166,166,166,166,166,166,166,274,274,274,274,274,274,274,274 -274,274,274,274,274,274,274,274,274,274,167,268,268,267,267,264,264,143,193,166,166,166,413,414,414,414,414,414,414,415,262,262,413,414,414,414,414,414,414,415,166,166,166,166,166,166,166,166,166,274,274,274,274,274,274,274,274 -274,274,274,274,274,274,274,274,274,274,192,145,268,266,267,264,266,165,166,166,166,166,435,436,436,436,436,436,436,437,284,284,435,436,436,436,436,436,436,437,166,166,166,166,166,166,166,166,274,271,274,274,274,274,273,274,274 -274,274,274,274,274,274,274,274,274,274,271,167,266,266,268,264,267,187,188,188,188,188,457,458,458,458,458,458,458,459,306,306,457,458,458,458,458,458,458,459,188,188,188,188,188,188,171,166,274,274,274,274,274,274,274,274,274 -274,274,274,274,274,274,274,274,274,274,170,189,264,265,245,264,264,264,268,245,264,245,267,268,245,268,267,268,267,266,154,156,265,267,265,264,268,264,245,264,266,245,245,264,264,143,193,274,274,274,274,274,274,274,274,274,274 -274,274,274,274,274,274,274,274,274,274,167,267,265,267,266,245,268,245,266,244,266,264,268,265,264,268,245,245,264,264,176,178,244,245,267,244,264,264,245,265,268,245,264,264,264,165,274,274,274,274,274,274,271,274,274,274,274 -274,274,274,274,274,274,274,274,170,188,189,265,245,266,244,266,244,266,266,264,244,265,264,268,265,245,268,244,267,265,176,178,244,267,268,267,266,264,264,265,266,245,264,264,264,165,274,252,274,274,274,274,274,274,274,274,274 -274,274,274,274,274,274,274,274,167,267,268,244,268,265,244,267,268,267,267,265,266,265,267,245,268,267,267,265,267,244,176,178,267,264,244,264,244,265,245,244,244,244,245,264,264,187,171,166,274,274,274,274,274,274,274,274,274 -274,274,274,274,274,274,274,170,189,267,268,265,268,244,267,268,244,265,266,244,245,244,268,244,267,267,266,267,265,245,176,178,264,266,268,264,245,244,264,267,267,264,245,264,264,264,187,171,274,274,273,274,274,274,274,274,274 -274,274,274,274,274,274,274,167,267,265,268,244,244,265,245,266,244,267,245,245,265,264,265,265,266,266,266,267,264,266,176,178,244,268,265,265,265,244,266,245,267,267,267,268,244,264,264,187,188,171,274,274,274,274,274,274,274 -274,274,274,274,274,274,170,189,265,245,244,245,264,244,264,245,265,268,267,267,244,264,264,267,244,266,265,265,266,268,176,178,266,267,265,244,265,264,245,264,267,265,267,264,266,244,265,264,264,165,274,274,274,274,274,274,274 -274,274,274,274,274,170,189,267,266,267,245,268,264,264,264,265,265,266,266,266,158,221,221,221,221,221,221,221,221,221,248,178,265,268,244,267,266,245,244,245,244,265,265,245,266,264,245,265,264,165,274,274,274,274,274,274,274 -274,274,274,274,274,167,267,265,268,267,267,245,244,264,264,265,266,245,268,266,179,267,265,268,244,245,264,267,268,267,176,178,244,264,245,245,266,244,265,265,265,267,268,244,265,267,264,268,264,165,274,274,274,274,274,274,274 -274,274,274,274,170,189,268,267,245,268,268,245,267,267,268,265,267,245,268,158,227,244,264,267,266,268,267,264,266,266,176,203,155,155,155,155,156,266,267,244,266,267,266,267,266,267,267,244,264,165,274,274,274,274,274,274,274 -274,274,274,274,167,244,244,244,268,244,265,245,266,245,268,265,268,245,265,179,245,264,268,244,245,268,267,264,244,267,198,199,199,199,199,182,178,265,268,266,245,266,264,244,264,245,265,244,264,165,274,274,274,274,274,274,274 -274,274,274,274,167,244,268,244,245,267,245,266,267,266,244,267,267,267,265,179,266,267,266,266,244,265,266,265,245,266,244,267,265,267,244,176,178,244,267,265,245,244,268,265,244,268,264,268,264,165,274,274,274,274,274,274,274 -274,274,274,274,167,267,244,265,265,265,244,245,268,266,267,265,245,245,245,179,264,245,245,266,268,264,266,265,265,267,244,268,267,244,244,176,178,245,266,244,244,268,266,244,267,265,264,244,264,165,274,274,271,274,274,274,274 -274,274,274,274,167,265,245,267,245,265,267,266,265,244,268,267,265,267,265,179,268,266,266,268,244,268,266,267,245,265,268,267,265,267,266,176,178,268,267,245,268,266,265,267,264,266,268,266,143,193,274,274,274,274,274,274,274 -274,274,274,166,167,267,245,265,267,265,265,245,267,245,265,265,266,244,267,179,268,265,266,266,266,266,268,267,266,244,244,244,244,244,268,176,203,155,156,268,265,267,265,245,265,264,267,264,165,274,274,274,274,274,274,274,274 -274,274,274,274,192,145,267,245,266,244,265,245,266,268,245,267,268,266,245,179,244,267,266,245,267,267,245,268,264,265,245,264,266,266,264,198,199,182,178,244,268,265,245,265,245,266,244,264,165,274,274,252,274,274,274,274,274 -274,274,274,274,274,167,265,268,244,268,245,265,244,245,267,267,265,265,264,179,267,267,264,267,267,268,265,264,267,265,265,266,266,265,244,268,244,176,178,265,245,267,268,265,245,268,264,143,193,274,274,274,274,274,274,274,274 -274,274,274,274,274,167,245,266,245,267,245,268,267,265,268,245,268,268,244,179,264,267,265,244,265,266,268,268,267,245,264,244,245,265,266,264,267,176,178,265,266,268,268,268,267,264,143,193,274,274,274,274,274,274,274,274,274 -274,274,274,274,274,167,265,244,268,267,267,265,266,265,264,268,244,268,265,224,222,264,268,245,245,267,264,265,245,244,267,266,267,244,265,244,266,176,178,245,244,266,264,264,143,144,193,274,274,274,274,274,274,274,274,274,274 -274,274,274,274,274,192,144,145,265,244,244,245,265,268,265,268,265,266,268,264,266,245,268,264,244,267,268,268,267,267,244,244,264,267,245,267,266,176,178,268,268,265,264,143,193,274,274,274,274,38,56,39,274,274,274,274,274 -274,274,274,274,274,274,274,192,145,268,265,245,268,267,244,264,244,244,268,264,266,265,264,268,264,264,266,265,266,245,245,268,265,264,264,264,264,198,200,264,264,264,143,193,274,274,271,274,38,57,23,33,274,274,274,274,274 -274,274,274,274,274,274,274,274,192,145,265,267,267,266,245,268,268,267,265,264,268,267,264,267,268,268,244,265,245,244,244,264,264,264,143,144,144,286,288,144,144,144,193,274,274,274,274,38,57,23,23,33,274,274,274,274,274 -274,274,274,274,274,274,274,274,274,192,144,145,267,266,265,264,244,244,266,266,266,244,268,245,265,268,245,264,267,265,264,264,143,144,193,274,274,308,310,274,274,252,274,274,274,274,38,57,23,23,23,33,274,274,274,274,274 -274,274,274,274,274,274,274,274,274,274,274,192,144,145,266,265,245,244,264,267,244,265,264,267,268,244,264,266,267,265,264,143,193,274,274,274,274,308,310,274,274,274,274,274,38,56,57,23,23,23,23,33,274,252,274,274,274 -274,274,274,274,274,274,274,274,274,274,274,274,274,167,266,266,268,264,267,266,265,244,266,266,267,245,244,245,267,265,143,193,274,274,252,274,274,308,310,274,271,274,38,56,57,23,23,23,23,23,23,33,274,274,274,274,274 -274,274,274,274,274,274,274,273,274,274,274,274,274,167,245,245,266,265,268,266,265,268,268,267,244,268,245,244,245,264,165,271,274,274,38,56,56,330,332,56,56,56,57,23,23,23,23,23,23,23,23,33,274,274,274,274,274 -274,274,274,274,274,274,274,274,274,274,274,274,274,167,264,244,268,265,265,245,245,267,267,267,264,267,265,267,264,143,193,274,274,274,35,27,46,112,114,44,28,23,23,23,23,23,23,23,23,23,23,55,39,274,274,274,274 -274,274,274,274,274,274,274,274,274,274,274,274,274,192,145,264,264,244,244,244,245,267,244,245,245,244,264,264,143,193,274,274,274,38,57,24,112,110,113,110,22,23,23,23,23,23,23,23,23,23,23,23,33,274,274,274,274 -274,274,274,274,274,274,274,274,274,274,274,271,274,274,192,145,264,264,265,268,244,265,245,245,264,143,144,144,193,274,274,273,38,57,23,24,110,111,110,0,50,23,23,23,27,45,45,28,23,23,23,23,33,274,274,274,274 -274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,192,145,264,267,245,265,268,268,268,264,165,274,274,271,274,274,38,57,23,23,49,2,114,0,50,23,23,27,45,46,110,114,44,28,23,23,11,61,274,274,274,274 -274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,192,144,144,144,144,144,144,144,144,193,274,274,274,274,38,57,23,23,23,23,49,1,50,23,23,23,24,110,112,114,114,112,22,23,23,33,274,274,274,274,274 -274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,34,38,57,23,23,23,23,23,23,23,23,23,23,23,49,2,110,112,111,0,50,23,23,33,274,274,274,274,274 -274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,271,274,274,274,274,273,274,273,274,274,274,274,273,274,35,23,23,23,23,23,23,23,23,23,23,23,23,23,49,1,1,1,50,23,23,11,61,274,274,274,274,274 -274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,271,274,274,274,274,60,12,12,12,12,13,23,23,11,12,13,23,23,23,23,23,23,23,23,23,23,33,274,252,274,274,274,274 -274,274,274,274,274,274,274,274,274,274,274,274,273,274,274,274,274,274,274,252,274,274,274,274,274,274,274,274,271,274,274,274,274,274,60,12,12,61,34,60,12,12,12,12,12,12,12,13,23,11,61,274,274,274,274,274,274 -274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,252,274,274,274,274,274,274,274,274,274,60,12,61,274,274,274,274,274,274,274 -274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,273,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274 diff --git a/data/map/map_FloorBlocks.csv b/data/map/map_FloorBlocks.csv deleted file mode 100644 index 2727b5a..0000000 --- a/data/map/map_FloorBlocks.csv +++ /dev/null @@ -1,50 +0,0 @@ --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,395,395,395,395,395,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,395,395,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,395,395,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,395,-1,-1,395,395,395,395,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,395,395,395,395,395,395,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,395,395,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,395,395,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,395,395,395,395,395,395,395,395,-1,-1,395,395,395,395,395,395,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,395,-1,-1,395,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,395,395,395,395,395,395,395,395,395,395,395,395,395,-1,-1,395,395,395,395,395,395,395,395,395,395,395,395,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,395,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,395,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,395,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,395,395,395,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,395,395,-1,395,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,395,-1,-1,395,395,395,395,-1,-1,-1,-1,395,395,-1,-1,395,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,395,-1,395,-1,-1,395,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,395,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,395,-1,-1,395,-1,-1,-1,-1,395,395,395,-1,-1,-1,-1,395,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,395,-1,-1,395,-1,-1,395,395,395,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,395,395,395,-1,-1,395,395,395,395,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,395,395,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,395,395,395,395,395,395,395,395,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,395,395,395,395,-1,-1,395,395,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,395,395,-1,395,395,395,395,395,395,395,395,395,-1,395,395,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,395,395,395,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 diff --git a/data/map/map_Grass.csv b/data/map/map_Grass.csv deleted file mode 100644 index 88630fc..0000000 --- a/data/map/map_Grass.csv +++ /dev/null @@ -1,50 +0,0 @@ --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,10,8,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,9,9,8,10,10,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,8,10,9,10,10,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,8,-1,10,8,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,8,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,10,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,8,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,9,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,8,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,10,9,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,10,9,8,-1,9,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,9,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,10,-1,-1,8,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,10,9,9,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,8,10,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,9,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,9,-1,-1,10,9,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,8,-1,9,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,8,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,9,8,10,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,8,8,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,9,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,8,-1,10,9,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,8,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 diff --git a/data/map/map_LargeObjects.csv b/data/map/map_LargeObjects.csv deleted file mode 100644 index c98bb35..0000000 --- a/data/map/map_LargeObjects.csv +++ /dev/null @@ -1,50 +0,0 @@ --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,-1,-1,-1,-1,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,14,5,-1,-1,-1,-1,10,-1,-1,-1,-1,14,-1,2,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,4,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,2,-1,-1,-1,-1,2,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,12,8,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,15,-1,12,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,13,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 diff --git a/data/map/objects.csv b/data/map/objects.csv deleted file mode 100644 index d86de29..0000000 --- a/data/map/objects.csv +++ /dev/null @@ -1,64 +0,0 @@ --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,2,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 --1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 diff --git a/data/maps/testmap.tmx b/data/maps/testmap.tmx new file mode 100644 index 0000000..8290002 --- /dev/null +++ b/data/maps/testmap.tmx @@ -0,0 +1,340 @@ + + + + + + + + + + +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,91,61,121,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,91,61,121,1,1,1,1,1,1,1,1,91,61,196,10,166,61,61,121,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,46,9,166,61,61,61,61,61,121,1,91,196,9,9,10,38,9,9,166,61,121,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,46,9,9,69,54,54,83,9,166,61,196,9,9,9,10,38,9,9,9,9,76,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,46,9,69,55,42,42,42,42,42,42,42,83,9,9,10,38,9,9,106,31,181,91,121,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,151,136,40,5,42,42,42,42,42,42,42,53,83,9,10,9,106,31,181,91,61,196,166,121,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,46,40,6,42,42,42,42,42,42,42,7,53,83,9,9,76,91,61,196,69,54,83,166,121,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,91,196,70,25,42,42,42,42,42,42,42,5,6,38,9,106,181,46,9,69,55,6,53,83,76,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,46,9,69,55,42,42,42,42,42,42,42,7,5,53,83,166,61,196,69,55,6,5,6,9,76,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,46,9,40,6,44,44,30,30,30,44,44,7,6,7,38,9,9,69,55,6,6,5,23,9,76,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,46,9,40,6,7,6,7,6,6,7,6,5,5,6,38,9,9,40,6,5,6,6,38,9,76,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,46,9,40,5,7,13,13,7,7,6,6,7,7,7,38,9,9,40,7,7,7,7,38,9,76,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,46,9,70,25,5,13,13,5,6,5,6,6,5,23,68,9,27,70,25,7,7,7,38,9,76,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,151,136,9,40,5,13,13,6,20,58,58,58,24,12,9,9,9,9,106,242,242,242,346,31,181,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,46,9,40,5,7,5,20,28,58,58,58,12,9,27,9,27,9,76,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,151,136,70,24,24,24,68,27,106,31,31,31,136,9,12,9,9,76,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,151,31,31,31,31,31,31,181,1,1,1,151,31,31,31,136,76,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,46,166,121,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,151,136,76,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,46,166,121,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,91,61,61,61,61,61,61,61,61,61,61,61,121,1,46,9,166,121,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,91,196,9,30,30,30,9,12,9,9,9,9,9,166,61,196,27,9,166,61,61,61,61,61,61,61,61,61,61,61,121,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,91,196,9,9,69,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,83,27,9,30,30,9,76,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,91,196,9,9,69,55,7,5,6,6,6,6,6,7,5,5,7,5,7,7,5,5,5,7,5,7,53,54,83,9,9,9,76,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,46,9,9,69,55,7,5,7,6,5,6,7,7,6,5,5,7,6,5,7,6,5,5,7,7,6,6,6,53,12,9,9,76,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,91,196,12,69,55,7,5,5,5,5,7,7,7,6,6,5,6,7,5,5,7,7,7,7,5,7,7,7,7,7,38,9,27,76,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,46,9,9,40,5,6,6,7,5,6,7,7,5,5,6,5,7,6,7,7,5,6,5,7,6,5,7,7,6,5,53,83,12,76,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,46,9,9,40,7,5,6,6,5,7,5,7,7,6,6,6,6,6,6,5,6,11,11,11,11,11,11,11,11,6,7,38,106,181,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,46,9,9,40,5,6,6,7,6,6,7,6,6,6,6,5,6,5,7,5,7,11,11,11,11,11,11,11,11,5,6,38,76,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,46,12,9,70,25,6,5,5,5,5,6,7,5,6,5,6,5,10,10,10,11,11,11,11,11,11,11,11,11,5,6,38,76,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,151,136,9,12,70,25,7,7,7,6,7,5,5,7,5,6,6,7,7,6,11,11,11,11,11,11,11,11,11,5,7,38,76,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,46,9,9,9,70,25,5,5,6,5,6,5,7,5,5,6,7,5,6,7,11,11,11,11,11,11,11,11,5,241,346,181,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,151,136,9,9,9,70,25,5,5,5,5,7,6,6,5,7,7,5,7,7,687,687,687,5,6,11,11,5,5,256,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,151,136,9,9,9,70,25,7,7,5,5,5,5,23,24,24,24,24,24,24,25,5,5,10,10,10,7,6,256,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,151,136,9,9,9,70,24,25,7,5,23,24,68,9,9,9,106,31,136,70,25,5,10,5,6,5,7,256,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,151,31,136,9,9,12,70,24,24,68,9,27,9,106,31,181,1,151,31,258,241,242,242,242,242,242,331,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,151,31,31,31,31,31,31,31,31,31,31,181,1,1,1,1,1,316,331,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,482,482,482,482,482,482,482,482,478,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,462,0,0,0,0,0,0,0,0,462,0,0,496,496,496,496,496,496,496,496,466,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,460,0,0,0,0,496,496,496,496,496,496,496,496,466,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,474,0,0,0,455,0,0,0,0,0,0,0,0,0,455,0,0,0,452,452,452,452,452,453,496,496,466,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,462,0,0,0,474,0,0,0,474,0,0,0,0,0,0,458,0,460,0,0,0,0,0,0,0,468,496,496,466,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,462,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,458,0,0,0,0,468,496,496,466,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,468,496,496,466,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,468,496,496,466,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,468,496,496,466,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,468,496,496,496,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,468,496,496,466,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,1,1,1,0,0,0,468,496,496,496,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,468,496,496,466,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,468,496,496,496,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,468,496,496,466,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,468,496,496,496,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,468,496,496,466,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,468,496,496,496,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,468,496,496,466,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,468,496,496,466,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,462,0,0,0,0,0,0,0,0,0,462,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,462,474,0,0,0,0,0,0,0,0,474,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,474,0,474,0,0,0,0,0,0,0,0,0,0,0,0,0,0,462,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,474,0,0,474,0,0,0,0,0,0,0,0,462,474,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,474,0,0,0,0,0,462,0,0,455,0,0,0,474,0,0,0,485,486,486,486,486,487,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,474,0,462,0,455,455,455,474,0,0,455,455,0,0,0,0,0,500,501,501,501,501,502,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,455,0,455,0,0,474,0,455,0,0,0,0,0,500,501,501,501,501,502,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,462,455,455,455,462,0,0,0,455,455,455,455,0,0,500,501,501,501,501,502,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,474,0,0,0,0,0,0,0,0,0,0,0,515,516,516,516,516,503,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,474,0,0,0,0,474,0,462,479,482,0,0,0,482,478,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,468,496,496,496,496,496,0,0,0,455,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,468,496,496,496,496,496,0,455,462,474,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,468,496,496,496,496,496,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,477,492,492,492,492,492,476,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,916,0,0,0,916,0,0,0,916,0,0,0,0,0,0,0,0,0,0,0,0,0,0,916,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,916,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,916,916,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,916,0,0,907,0,0,0,0,0,0,0,0,0,0,920,0,0,0,706,0,0,0,0,0,931,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,920,0,0,0,0,0,0,0,0,0,0,0,0,0,0,688,687,687,0,0,0,0,931,931,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,916,931,0,0,0,931,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,931,931,0,0,931,931,931,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,921,0,0,0,0,0,0,0,690,0,0,0,0,0,0,0,0,0,0,0,0,0,931,0,0,0,931,0,0,931,931,931,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,903,0,0,0,0,0,920,0,0,903,0,907,0,0,0,0,0,0,0,0,0,931,931,931,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,931,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,680,678,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,931,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,920,0,0,0,903,0,0,0,0,0,0,0,682,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,931,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,690,0,0,920,0,0,0,0,0,0,0,0,0,0,931,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,695,0,0,0,0,0,0,0,0,686,686,686,0,0,0,0,0,0,0,0,0,0,907,0,0,931,0,931,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,920,0,902,0,0,0,0,905,905,905,0,0,0,0,0,0,0,0,0,0,0,0,0,0,931,0,931,931,0,0,0,0,931,0,0,0,0,0,0,0, +0,0,0,0,0,0,916,0,0,0,695,0,902,902,902,0,0,905,905,905,0,0,0,0,0,0,0,0,916,0,0,0,0,691,0,0,931,0,0,0,0,931,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,907,0,0,0,0,0,0,0,0,0,0,920,0,710,0,0,0,0,691,931,0,691,0,916,0,931,0,0,0,0,0,931,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,916,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,931,0,0,0,916,0,0,931,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,931,0,0,0,0,0,0,931,931,0,0,0,0,0,0,0,0,916,0,916,0,931,0,0,0,931,0,0,0,0,0,0,931,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,916,0,931,0,0,0,0,0,0,931,931,931,931,931,931,0,0,0,0,931,0,0,0,916,0,931,931,931,0,0,0,0,931,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,931,931,0,0,931,0,0,0,0,0,0,931,931,931,931,931,0,931,0,0,0,0,0,0,0,0,931,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,931,0,931,931,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,931,931,0,931,0,0,0,0,0,0,0,0,0,907,0,0,695,0,0,0,0,0,0,0,0,0,0,0,0,0,688,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,931,931,0,0,0,0,695,0,0,0,0,0,0,0,0,0,0,907,0,0,0,0,0,0,0,0,907,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,920,0,0,0,0,903,0,0,690,0,0,0,0,903,0,0,690,0,1007,0,0,0,903,0,0,0,0,907,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,931,0,0,0,0,907,0,0,0,0,0,0,0,0,0,0,0,0,0,0,680,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,678,0,678,0,0,907,921,907,0,0,0,0,903,0,0,0,687,687,687,687,687,687,687,687,687,687,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,907,695,0,0,903,678,0,921,0,0,0,921,0,0,0,0,0,0,0,687,0,0,0,0,0,0,0,0,687,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,931,0,0,0,0,0,0,1007,0,0,907,678,0,0,0,0,907,0,0,0,902,902,902,687,0,0,0,0,0,0,0,688,687,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,931,0,0,0,0,0,0,0,1007,0,921,0,0,706,0,0,921,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,687,0,907,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,931,0,0,0,920,0,0,0,678,907,0,0,0,0,0,907,678,678,0,0,0,0,0,0,0,0,0,0,0,0,0,687,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,931,931,0,0,0,0,0,695,0,0,921,0,0,0,921,0,903,0,0,902,902,902,687,0,0,0,0,0,0,0,0,687,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,931,0,0,0,907,695,0,0,0,678,907,921,907,0,0,680,1007,0,0,0,0,687,0,0,0,687,687,0,0,687,687,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,678,0,0,903,0,0,0,0,0,0,0,0,688,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,920,0,0,0,0,0,0,0,0,0,0,920,0,695,0,0,0,0,0,0,0,0,0,0,903,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,916,0,916,0,1006,0,0,907,0,0,0,0,0,907,0,0,695,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,916,0,916,916,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,916,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,56,56,56,56,56,56,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,56,56,56,56,56,56,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,56,56,56,56,56,56,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,56,56,56,56,56,56,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,56,56,30,30,30,45,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,41,41,11,11,11,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,56,56,56,56,56,56,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,56,56,56,56,56,56,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,56,56,56,56,56,56,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,56,56,30,30,30,56,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,56,56,11,11,11,41,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,41,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,10,10,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + diff --git a/data/tilesets/details.png b/data/tilesets/details.png new file mode 100644 index 0000000..12d4464 Binary files /dev/null and b/data/tilesets/details.png differ diff --git a/data/tilesets/details.tsx b/data/tilesets/details.tsx new file mode 100644 index 0000000..964b56c --- /dev/null +++ b/data/tilesets/details.tsx @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/tilesets/floor.png b/data/tilesets/floor.png new file mode 100644 index 0000000..e2c8096 Binary files /dev/null and b/data/tilesets/floor.png differ diff --git a/data/tilesets/floor.tsx b/data/tilesets/floor.tsx new file mode 100644 index 0000000..d14dad9 --- /dev/null +++ b/data/tilesets/floor.tsx @@ -0,0 +1,427 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/tilesets/objects.png b/data/tilesets/objects.png new file mode 100644 index 0000000..753b104 Binary files /dev/null and b/data/tilesets/objects.png differ diff --git a/data/tilesets/objects.tsx b/data/tilesets/objects.tsx new file mode 100644 index 0000000..f2efa26 --- /dev/null +++ b/data/tilesets/objects.tsx @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/tilesets/objects_1x2.png b/data/tilesets/objects_1x2.png new file mode 100644 index 0000000..2f16b76 Binary files /dev/null and b/data/tilesets/objects_1x2.png differ diff --git a/data/tilesets/objects_1x2.tsx b/data/tilesets/objects_1x2.tsx new file mode 100644 index 0000000..1725a51 --- /dev/null +++ b/data/tilesets/objects_1x2.tsx @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/tilesets/objects_2x2.png b/data/tilesets/objects_2x2.png new file mode 100644 index 0000000..6f9f21d Binary files /dev/null and b/data/tilesets/objects_2x2.png differ diff --git a/data/tilesets/objects_2x2.tsx b/data/tilesets/objects_2x2.tsx new file mode 100644 index 0000000..8eb6c1d --- /dev/null +++ b/data/tilesets/objects_2x2.tsx @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/data/tilesets/particles.png b/data/tilesets/particles.png new file mode 100644 index 0000000..4d607c2 Binary files /dev/null and b/data/tilesets/particles.png differ diff --git a/data/tilesets/particles.tsx b/data/tilesets/particles.tsx new file mode 100644 index 0000000..5d91c2f --- /dev/null +++ b/data/tilesets/particles.tsx @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/tilesets/player.png b/data/tilesets/player.png new file mode 100644 index 0000000..9719b71 Binary files /dev/null and b/data/tilesets/player.png differ diff --git a/data/tilesets/player.tsx b/data/tilesets/player.tsx new file mode 100644 index 0000000..951f7c0 --- /dev/null +++ b/data/tilesets/player.tsx @@ -0,0 +1,356 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/tilesets/workspace/details.cpt b/data/tilesets/workspace/details.cpt new file mode 100644 index 0000000..726d2a2 Binary files /dev/null and b/data/tilesets/workspace/details.cpt differ diff --git a/data/tilesets/workspace/floor.cpt b/data/tilesets/workspace/floor.cpt new file mode 100644 index 0000000..2238bc3 Binary files /dev/null and b/data/tilesets/workspace/floor.cpt differ diff --git a/data/tilesets/workspace/objects.cpt b/data/tilesets/workspace/objects.cpt new file mode 100644 index 0000000..2ac115d Binary files /dev/null and b/data/tilesets/workspace/objects.cpt differ diff --git a/data/tilesets/workspace/objects_1x2.cpt b/data/tilesets/workspace/objects_1x2.cpt new file mode 100644 index 0000000..f9faaf4 Binary files /dev/null and b/data/tilesets/workspace/objects_1x2.cpt differ diff --git a/data/tilesets/workspace/objects_2x2.cpt b/data/tilesets/workspace/objects_2x2.cpt new file mode 100644 index 0000000..5a7a1e6 Binary files /dev/null and b/data/tilesets/workspace/objects_2x2.cpt differ diff --git a/data/tilesets/workspace/particles.cpt b/data/tilesets/workspace/particles.cpt new file mode 100644 index 0000000..6b75905 Binary files /dev/null and b/data/tilesets/workspace/particles.cpt differ diff --git a/data/tilesets/workspace/player.cpt b/data/tilesets/workspace/player.cpt new file mode 100644 index 0000000..f24268c Binary files /dev/null and b/data/tilesets/workspace/player.cpt differ diff --git a/img/anims.gif b/img/anims.gif new file mode 100644 index 0000000..536de44 Binary files /dev/null and b/img/anims.gif differ diff --git a/img/beach_grass.gif b/img/beach_grass.gif new file mode 100644 index 0000000..ef80487 Binary files /dev/null and b/img/beach_grass.gif differ diff --git a/img/collision_detection.png b/img/collision_detection.png index e99a25e..1175c1e 100644 Binary files a/img/collision_detection.png and b/img/collision_detection.png differ diff --git a/img/daynight.png b/img/daynight.png new file mode 100644 index 0000000..db780da Binary files /dev/null and b/img/daynight.png differ diff --git a/img/multi_hitbox.png b/img/multi_hitbox.png new file mode 100644 index 0000000..3bba055 Binary files /dev/null and b/img/multi_hitbox.png differ diff --git a/img/tibia_2_bridge.png b/img/tibia_2_bridge.png new file mode 100644 index 0000000..182aa65 Binary files /dev/null and b/img/tibia_2_bridge.png differ diff --git a/img/tibia_2_bushes.png b/img/tibia_2_bushes.png new file mode 100644 index 0000000..8ab0dc7 Binary files /dev/null and b/img/tibia_2_bushes.png differ diff --git a/img/tibia_2_scale.png b/img/tibia_2_scale.png new file mode 100644 index 0000000..daf8e27 Binary files /dev/null and b/img/tibia_2_scale.png differ diff --git a/img/tibia_2_water_border.png b/img/tibia_2_water_border.png new file mode 100644 index 0000000..30d5bda Binary files /dev/null and b/img/tibia_2_water_border.png differ diff --git a/lochpython/core/__pycache__/__init__.cpython-310.pyc b/lochpython/core/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index 64acde1..0000000 Binary files a/lochpython/core/__pycache__/__init__.cpython-310.pyc and /dev/null differ diff --git a/lochpython/core/__pycache__/debug.cpython-310.pyc b/lochpython/core/__pycache__/debug.cpython-310.pyc deleted file mode 100644 index 80b62a9..0000000 Binary files a/lochpython/core/__pycache__/debug.cpython-310.pyc and /dev/null differ diff --git a/lochpython/core/__pycache__/game.cpython-310.pyc b/lochpython/core/__pycache__/game.cpython-310.pyc deleted file mode 100644 index e43868b..0000000 Binary files a/lochpython/core/__pycache__/game.cpython-310.pyc and /dev/null differ diff --git a/lochpython/core/__pycache__/renderer.cpython-310.pyc b/lochpython/core/__pycache__/renderer.cpython-310.pyc deleted file mode 100644 index ea8a1f5..0000000 Binary files a/lochpython/core/__pycache__/renderer.cpython-310.pyc and /dev/null differ diff --git a/lochpython/core/__pycache__/settings.cpython-310.pyc b/lochpython/core/__pycache__/settings.cpython-310.pyc deleted file mode 100644 index b9825a5..0000000 Binary files a/lochpython/core/__pycache__/settings.cpython-310.pyc and /dev/null differ diff --git a/lochpython/core/__pycache__/utils.cpython-310.pyc b/lochpython/core/__pycache__/utils.cpython-310.pyc deleted file mode 100644 index 9c8b5df..0000000 Binary files a/lochpython/core/__pycache__/utils.cpython-310.pyc and /dev/null differ diff --git a/lochpython/core/debug.py b/lochpython/core/debug.py index 55fb104..529d48f 100644 --- a/lochpython/core/debug.py +++ b/lochpython/core/debug.py @@ -1,4 +1,4 @@ -from core.settings import * +from lochpython.core.settings import * class Debugger: @@ -16,6 +16,9 @@ def rect(cls, rect, color, border=1): cls.rects.append((rect, color, border)) @classmethod - def clear(cls): - cls.debug_lines.clear() + def clear_rects(cls): cls.rects.clear() + + @classmethod + def clear_gui(cls): + cls.debug_lines.clear() diff --git a/lochpython/core/game.py b/lochpython/core/game.py index 1cbf834..fff4606 100644 --- a/lochpython/core/game.py +++ b/lochpython/core/game.py @@ -1,11 +1,13 @@ -from core.settings import * +from lochpython.core.settings import * +from lochpython.core.timers import global_timers import sys -from core.debug import Debugger -from world.world import World -import core.renderer as renderer +from lochpython.core.debug import Debugger +from lochpython.core.timers import AnimationController +from lochpython.world.world import World +import lochpython.core.renderer as renderer -from core.utils import NanoTimer +from lochpython.core.utils import NanoTimer, ValueFilter def check_if_exit(on_exit_function): @@ -22,8 +24,7 @@ def __init__(self): pygame.init() # setup window - pygame.display.set_caption(WINDOW_TITLE) #tod omove to settings - self.screen = screen #todo do better + pygame.display.set_caption(WINDOW_TITLE) # tod omove to settings # setup game update self.clock = pygame.time.Clock() @@ -32,8 +33,11 @@ def __init__(self): self.world = World() # setup renderers + renderer.MainRenderer.init() + renderer.SkyRenderer.init() renderer.WorldRenderer.init() renderer.WorldRenderer.attach(self.world) + renderer.SkyRenderer.attach_camera(self.world.camera) renderer.DebugRenderer.init() renderer.DebugRenderer.attach(Debugger) renderer.DebugRenderer.attach_camera(self.world.camera) @@ -50,38 +54,40 @@ def input(self): self.world.input() def update(self, dt): + global_timers.update(dt=dt) + Debugger.print(f"AnimationTimers: {AnimationController.total_count}") Debugger.print("FPS = ", round(self.clock.get_fps(), 1), " Hz", sep="") Debugger.print("Dt = ", round(1e3 * dt, 3), " ms", sep="") + Debugger.print(f'Visible_objects count: {renderer.WorldRenderer.visible_objects_count}') + Debugger.print(f'Basement count: {self.world.basement_tiles_count}') + Debugger.print(f'Objects count: {self.world.objects_count}') + Debugger.print(f'Light sources: {len(renderer.SkyRenderer.light_sources)}') + Debugger.print(f'Obstacle_objects count: {self.world.limit_blocks_count}') self.world.update(dt) def render(self): - self.screen.fill('black') self.world.render() - - # use all renders - renderer.WorldRenderer.render() - renderer.DebugRenderer.render() - - pygame.display.update() + renderer.MainRenderer.render() def start(self): - update_timer = NanoTimer(init_delta_s=1/FPS) + update_timer = NanoTimer(init_delta_s=1 / FPS) benchmarking_timer = NanoTimer() benchmark_delta_s = { - 'input': 0, - 'update': 0, - 'render': 0, + 'input': ValueFilter(), + 'update': ValueFilter(), + 'render': ValueFilter(), } benchmarking_msg = '' while True: benchmarking_timer.start() self.input() - benchmark_delta_s['input'] = benchmarking_timer.start().delta_time_ns + benchmark_delta_s['input'].push_value(benchmarking_timer.start().last_delta_ns) self.update(update_timer.last_delta_s) - benchmark_delta_s['update'] = benchmarking_timer.start().delta_time_ns + benchmark_delta_s['update'].push_value(benchmarking_timer.start().last_delta_ns) Debugger.print(benchmarking_msg) self.render() - benchmark_delta_s['render'] = benchmarking_timer.start().delta_time_ns - benchmarking_msg = f"Bench: {[(k, str(round(v*1e-6,3)).rjust(6, '0')) for k, v in benchmark_delta_s.items()]}[ms]" + benchmark_delta_s['render'].push_value(benchmarking_timer.start().last_delta_ns) + sum_time = sum([v.median * 1e-6 for v in benchmark_delta_s.values()]) + benchmarking_msg = f"Bench: {[(k, str(round(v.median * 1e-6, 1)).rjust(6, '0')) for k, v in benchmark_delta_s.items()]}, total: {round(sum_time, 1)}[ms]" self.clock.tick(FPS) update_timer.start() diff --git a/lochpython/core/renderer.py b/lochpython/core/renderer.py index 1cc9d63..3e6055b 100644 --- a/lochpython/core/renderer.py +++ b/lochpython/core/renderer.py @@ -1,12 +1,15 @@ -import pygame +import math +import time +from functools import reduce -from core.debug import Debugger -from core.settings import * -from pygame.math import Vector2 +import pygame.color +from pygame.rect import Rect -from core.utils import sub_tuples_2D +from lochpython.core.debug import Debugger +from lochpython.core.settings import * +from pygame.math import Vector2 -pygame.init() # todo meh +from lochpython.core.utils import sub_tuples_2D, add_tuples_2D class RenderingGroup(list): @@ -18,25 +21,58 @@ def attach_camera(self, camera): self.camera = camera def draw(self, surface): - translation = sub_tuples_2D(self.camera, (HALF_WIDTH, HALF_HEIGHT)) + translation = sub_tuples_2D(self.camera, (HALF_RENDERING_WIDTH, HALF_RENDERING_HEIGHT)) for sprite_prop in self: sprite_pos = sub_tuples_2D(sprite_prop.rect.topleft, translation) - sprite_image = sprite_prop.image + image_data = sprite_prop.image_data sprite_clip_rect = sprite_prop.clip_rect - surface.blit(sprite_image, sprite_pos, sprite_clip_rect) + # scaled_image = pygame.transform.scale(sprite_image, (w,h)) + surface.blit(image_data.surface, sprite_pos, sprite_clip_rect) -class WorldRenderer: +class MainRenderer: display_surface = None - world = None - floor_objects = RenderingGroup() - details_objects = RenderingGroup() - entity_objects = RenderingGroup() - stack = [floor_objects, details_objects, entity_objects] + world_surface = None + scale = SCALE + rendering_width = RENDERING_WIDTH + rendering_height = RENDERING_HEIGHT + rendering_rect = pygame.Rect((0, 0), (RENDERING_WIDTH, RENDERING_HEIGHT)) @classmethod def init(cls): cls.display_surface = pygame.display.get_surface() + cls.rendering_width = cls.display_surface.get_width() / cls.scale # todo int? + cls.rendering_height = cls.display_surface.get_height() / cls.scale + cls.world_surface = pygame.Surface((cls.rendering_width, cls.rendering_height), + depth=cls.display_surface.get_bitsize()) + cls.rendering_rect = pygame.Rect((0, 0), (cls.rendering_width, cls.rendering_height)) + + @classmethod + def render(cls): + cls.display_surface.fill('black') + cls.world_surface.fill('black') + WorldRenderer.render() + SkyRenderer.render() + DebugRenderer.render_in_world() + + pygame.transform.scale(surface=cls.world_surface, size=(DISPLAY_WIDTH, DISPLAY_HEIGHT), + dest_surface=cls.display_surface) + cls.display_surface.blit(cls.display_surface, cls.rendering_rect) + + DebugRenderer.render_in_gui() + pygame.display.update() + + +class WorldRenderer: + world = None + basement_sprites = RenderingGroup() + # details_objects = RenderingGroup() + objects_sprites = RenderingGroup() + stack = [basement_sprites, objects_sprites] + + @classmethod + def init(cls): + pass @classmethod def attach(cls, world): @@ -44,32 +80,107 @@ def attach(cls, world): @classmethod def add_visible_object(cls, sprite_prop): - layer_id = sprite_prop.stack_layer - cls.stack[layer_id].append(sprite_prop) + dst_layer = sprite_prop.dst_layer + # z_index = sprite_prop.z_index + cls.stack[dst_layer].append(sprite_prop) @classmethod - def remove_visible_object(cls, sth): - pass + def remove_visible_object(cls, sprite_prop): + dst_layer = sprite_prop.dst_layer + if sprite_prop in cls.stack[dst_layer]: + cls.stack[dst_layer].remove(sprite_prop) + + @classmethod + def sort_order(cls): + Debugger.print('Renderer sorting') + cls.objects_sprites.sort(key=lambda sp_prop: (sp_prop.rect.bottom, sp_prop.z_index)) @classmethod def render(cls): - Debugger.print(f"Cam: {cls.world.camera}") for layer in cls.stack: layer.attach_camera(cls.world.camera) - layer.draw(cls.display_surface) - Debugger.print(f'Visible_objects count: {len(cls.entity_objects)}') - Debugger.print(f'Obstacle_objects count: {len(cls.world.limit_blocks)}') + layer.draw(MainRenderer.world_surface) @classmethod - def sort_order(cls): - Debugger.print('Sorting') - sorted_objects = sorted(cls.entity_objects, key=lambda x: x.rect.centery) # todo - cls.entity_objects.clear() - cls.entity_objects.extend(sorted_objects) + @property + def visible_objects_count(cls): + return reduce(lambda a, b: a + len(b), cls.stack, 0) + + +class SkyRenderer: + POINT_LIGHT_PATH = 'data/lighting/point_light.png' + camera = None + sky_surface = None + point_light_images = dict() + light_sources = [] + darknes = 0 + + @classmethod + def attach_camera(cls, camera): + cls.camera = camera + + @classmethod + def get_point_light_graphic(cls, level=7, color=(255,255,255)): + key = level, color + if key in cls.point_light_images: + return cls.point_light_images[key] + + print('Building light image', level, color) + src_image = pygame.image.load(cls.POINT_LIGHT_PATH) + src_size, src_depth = (src_image.get_width(), src_image.get_height()), src_image.get_bitsize() + inv_surface = pygame.Surface(src_size, depth=src_depth) + inv_surface.fill(color) + # inv_surface.fill(pygame.color.Color('White')) + inv_surface.blit(src_image, (0, 0), special_flags=pygame.BLEND_RGB_SUB) + + min_size = POINT_LIGHT_MIN_IMAGE_SIZE + levels_count = POINT_LIGHT_STRENGTH_LEVELS + + scale_factor = level / levels_count + img_width = int(min_size[0] + scale_factor * (src_size[0] - min_size[0])) + img_height = int(min_size[1] + scale_factor * (src_size[1] - min_size[1])) + result = pygame.transform.scale(inv_surface, (img_width, img_height)) + cls.point_light_images[key] = result + return result + + @classmethod + def init(cls): + width, height = MainRenderer.rendering_width, MainRenderer.rendering_height + cls.sky_surface = pygame.Surface((width, height), depth=MainRenderer.world_surface.get_bitsize()) + # cls.point_light_images = cls._load_point_light_graphics() + # aww + if not cls.light_sources: + cls.light_sources = [] + # cls.light_sources.append() + # print(cls.sky_surface) + + @classmethod + def render(cls): + channel_value = 180 + cls.sky_surface.fill((channel_value, channel_value, channel_value)) + for ls_prop in cls.light_sources: + light_strength = ls_prop.strength + light_color = ls_prop.color + point_light_image = cls.get_point_light_graphic(light_strength, light_color) + point_light_img_size = (point_light_image.get_width() // 2, point_light_image.get_height() // 2) + light_pos = sub_tuples_2D(ls_prop.position, point_light_img_size) + light_pos = sub_tuples_2D(light_pos, cls.camera) + light_pos = add_tuples_2D(light_pos, (HALF_RENDERING_WIDTH, HALF_RENDERING_HEIGHT)) + cls.sky_surface.blit(point_light_image, light_pos, special_flags=pygame.BLEND_RGB_SUB) + MainRenderer.world_surface.blit(cls.sky_surface, (0, 0), special_flags=pygame.BLEND_RGB_SUB) + + @classmethod + def add_point_light(cls, light): + if light not in cls.light_sources: + cls.light_sources.append(light) + + @classmethod + def remove_point_light(cls, light): + if light in cls.light_sources: + cls.light_sources.remove(light) class DebugRenderer: - display_surface = None font_size = 24 numbering = True min_x, min_y = 10, 10 @@ -81,7 +192,7 @@ class DebugRenderer: @classmethod def init(cls): - cls.display_surface = pygame.display.get_surface() + pass @classmethod def attach(cls, debugger): @@ -92,20 +203,26 @@ def attach_camera(cls, camera): cls.camera = camera @classmethod - def render(cls): + def render_in_gui(cls): if DEBUG: - translation = sub_tuples_2D(cls.camera, (HALF_WIDTH, HALF_HEIGHT)) - for rect, color, border in cls._debugger.rects: - translated_rect = rect.move(-translation[0], -translation[1]) - pygame.draw.rect(cls.display_surface, color, translated_rect, border) - for i_y, line in enumerate(cls._debugger.debug_lines): line = f"{i_y}: {line}" if cls.numbering else line text_surface = cls.font.render(line, True, 'White') x, y = cls.min_x, cls.min_y + i_y * cls.step_y text_rect = text_surface.get_rect(topleft=(x, y)) - pygame.draw.rect(cls.display_surface, 'Black', text_rect) - cls.display_surface.blit(text_surface, text_rect) + pygame.draw.rect(MainRenderer.display_surface, 'Black', text_rect) + MainRenderer.display_surface.blit(text_surface, text_rect) + + # consider extracting + cls._debugger.clear_gui() + + @classmethod + def render_in_world(cls): + if DEBUG: + translation = sub_tuples_2D(cls.camera, (HALF_RENDERING_WIDTH, HALF_RENDERING_HEIGHT)) + for rect, color, border in cls._debugger.rects: + translated_rect = rect.move(-translation[0], -translation[1]) + pygame.draw.rect(MainRenderer.world_surface, color, translated_rect, border) # consider extracting - cls._debugger.clear() + cls._debugger.clear_rects() diff --git a/lochpython/core/settings.py b/lochpython/core/settings.py index 3678d00..fbf5622 100644 --- a/lochpython/core/settings.py +++ b/lochpython/core/settings.py @@ -1,27 +1,49 @@ import pygame +import os WINDOW_TITLE = 'Tibia 2 in Python' +DISPLAY_DIVISOR = 1 +DISPLAY_WIDTH, DISPLAY_HEIGHT = 1800 // DISPLAY_DIVISOR, 900 // DISPLAY_DIVISOR -WIDTH, HEIGHT = 1200, 800 -HALF_WIDTH, HALF_HEIGHT = WIDTH // 2, HEIGHT // 2 +SCALE = 4 +RENDERING_WIDTH, RENDERING_HEIGHT = DISPLAY_WIDTH / SCALE, DISPLAY_HEIGHT / SCALE +HALF_RENDERING_WIDTH, HALF_RENDERING_HEIGHT = RENDERING_WIDTH // 2, RENDERING_HEIGHT // 2 FPS = 30 -TILESIZE = 64 +TILESIZE = 20 DEBUG = True +DEBUG_VISIBLE_OBJECTS = False +DEBUG_COLLISION_BLOCKS = False COLLISION_RANGE = TILESIZE -RESOURCES_ROOT = 'data' - GLOBAL_COOLDOWN = 500 +FOV_OFFSET = 4 * TILESIZE + +"""Graphics resources""" +IGNORE_WORKSPACE_DIR = 'workspace' +RESOURCES_ROOT = 'data' # for debugging '../../data' +GRAPHICS_TILESETS_PATHS = os.path.join(RESOURCES_ROOT, 'tilesets') +GRAPHICS_ENTITIES_PATHS = os.path.join(RESOURCES_ROOT, 'entities') +MAPS_PATH = os.path.join(RESOURCES_ROOT, 'maps') + +"""Initial""" + +"""Ligting""" +POINT_LIGHT_MIN_STRENGTH = 0 +POINT_LIGHT_MAX_STRENGTH = 7 +POINT_LIGHT_STRENGTH_LEVELS = POINT_LIGHT_MAX_STRENGTH - POINT_LIGHT_MIN_STRENGTH + 1 +POINT_LIGHT_MIN_IMAGE_SIZE = (16, 16) + class Init: screen = None def __init__(self): - pygame.init() + pass if not Init.screen: - Init.screen = pygame.display.set_mode((WIDTH, HEIGHT)) -screen = Init.screen + pygame.init() + Init.screen = pygame.display.set_mode((DISPLAY_WIDTH, DISPLAY_HEIGHT)) +# screen = Init.screen diff --git a/lochpython/core/timers.py b/lochpython/core/timers.py new file mode 100644 index 0000000..949058b --- /dev/null +++ b/lochpython/core/timers.py @@ -0,0 +1,148 @@ +class Timer: + def __init__(self, interval=1000, active=False, parent=None): + self.interval = interval + self.active = active + self.handlers = [] + self.accumulated_time = 0 + self.parent = parent + + @property + def interval(self): + return self._interval + + @interval.setter + def interval(self, itrval): + self._interval = itrval/1000 + + def triggered_by_parent(self, parent): + self.active = False + self.parent = parent + + def tick(self): + for handler in self.handlers: + handler() + + def attach(self, handler): + if handler not in self.handlers: + self.handlers.append(handler) + + def detach(self, handler): + if handler in self.handlers: + self.handlers.remove(handler) + + def update(self, *args, dt=0, **kwargs): + if self.active: + self.accumulated_time += dt + # print(self.accumulated_time, self.interval) + if self.accumulated_time > self.interval: + self.accumulated_time -= self.interval + # print(f"{self}, tick") + self.tick() + + def __str__(self): + return f"T:{self._interval}" + + +class GlobalTimers: + instance = None + + def __init__(self): + self.timers = {} + self.get_timer(100) + self.get_timer(500) + self.get_timer(1000) + + def update(self, *args, dt=0, **kwargs): + for gt in self.timers.values(): + gt.update(dt=dt) + + def get_timer(self, interval): + if interval in self.timers.keys(): + return self.timers[interval] + new_timer = Timer(interval=interval, active=True) + self.timers[interval] = new_timer + print(f'Timer {new_timer} created') + return new_timer + + +if not GlobalTimers.instance: + GlobalTimers.instance = GlobalTimers() +global_timers = GlobalTimers.instance + + +class AnimationController: + ctrls_register = [] + + def __init__(self, frames_count, active=True, handlers=None): + self.frames_count = frames_count + self.active = active + self.handlers = handlers if handlers else [] + self._current_frame = 0 + AnimationController.ctrls_register.append(self) + self.parent_timer = None + + def __del__(self): + if self in AnimationController.ctrls_register: + AnimationController.ctrls_register.remove(self) + + def attach_to_timer(self, timer=None, interval=None): + if not self.parent_timer: + if not timer: + timer = global_timers.get_timer(interval) + timer.handlers.append(self.next_frame) + self.parent_timer = timer + + def detach_timer(self): + if self.parent_timer: + self.parent_timer.handlers.remove(self.next_frame) + self.parent_timer = None + + @property + def current_frame(self): + return self._current_frame + + @current_frame.setter + def current_frame(self, frame): + self._current_frame = frame + + def next_frame(self): + if self.active: + self.current_frame = (self.current_frame + 1) % self.frames_count + for handler in self.handlers: + handler(self.current_frame) + + @classmethod + @property + def total_count(cls): + return len(cls.ctrls_register) + # refactor to singleton + + def __str__(self): + return f"C:{self.frames_count}/{self.parent_timer}" + + +class GlobalControllers: + instance = None + + def __init__(self): + self.controllers = dict() + self.get_controller(4, 500) + self.get_controller(4, 250) + self.get_controller(4, 100) + self.get_controller(8, 100) + + def get_controller(self, frames, interval): + key = (frames, interval) + if key in self.controllers.keys(): + return self.controllers[key] + timer = global_timers.get_timer(interval) + ctrl = AnimationController(frames_count=frames) + ctrl.attach_to_timer(timer) + self.controllers[key] = ctrl + print(f'Controller {ctrl} created') + return ctrl + + +if not GlobalControllers.instance: + GlobalControllers.instance = GlobalControllers() +global_controllers = GlobalControllers.instance diff --git a/lochpython/core/utils.py b/lochpython/core/utils.py index e12f9c1..6c7c6a0 100644 --- a/lochpython/core/utils.py +++ b/lochpython/core/utils.py @@ -1,17 +1,65 @@ import math -from csv import reader -from os import walk from time import time_ns -import pygame.image +from pygame.rect import Rect NEARLY_ZERO = 1e-6 +class StackXY: + def __init__(self, width, height, initial=None): + self.width, self.height = width, height + + self.items = [] + for index_y in range(height): + row = [] + for index_x in range(width): + row.append([]) + self.items.append(row) + + def get_stack(self, x, y): + return self.items[y][x] + + def get_top_stack(self, x, y): + stack = self.get_stack(x, y) + if stack: + return stack[-1] + return None + + def get_bottom_stack(self, x, y): + stack = self.get_stack(x, y) + if stack: + return stack[0] + return None + + def push_top(self, x, y, value): + self.get_stack(x, y).append(value) + + def pop_top(self, x, y): + stack = self.get_stack(x, y) + if stack: + return stack.pop() + return None + + def __str__(self): + return f"StackXY ({self.width} x {self.height})." + + def print_stack_counts(self, indentation): + lines = '' + for stack_row in self.items: + lines += indentation + ', '.join([str(len(field)) for field in stack_row]) + ',\n' + return lines + def print_stack(self, indentation): + lines = '' + for stack_row in self.items: + lines += indentation + ', '.join([str(field) for field in stack_row]) + ',\n' + return lines + + class NanoTimer: def __init__(self, init_delta_s=None): self.last_time_ns = time_ns() - self.last_delta_ns = init_delta_s*1e9 if init_delta_s else float(NEARLY_ZERO) + self.last_delta_ns = init_delta_s * 1e9 if init_delta_s else float(NEARLY_ZERO) @staticmethod def ns_to_s(ns): @@ -41,6 +89,8 @@ def last_delta_s(self): def sub_tuples_2D(t1, t2): return t1[0] - t2[0], t1[1] - t2[1] +def add_tuples_2D(t1, t2): + return t1[0] + t2[0], t1[1] + t2[1] def distance_squared(p1, p2): @@ -53,3 +103,62 @@ def radius_squared_from_rect(rect): def distance(p1, p2): return math.sqrt(distance_squared(p1, p2)) + + +class ValueFilter: + def __init__(self, size=16): + self.buffer = [0] * size + self.idx = 0 + + def push_value(self, v): + self.buffer[self.idx] = v + self.idx = (self.idx + 1) % len(self.buffer) + + @property + def average(self): + return sum(self.buffer) / len(self.buffer) + + @property + def median(self): + return sorted(self.buffer)[len(self.buffer) // 2] + + def __str__(self): + return str(self.average) + + +def is_container(value): + for options in (list, dict, tuple): + if isinstance(value, options): + return True + return False + + +def nested_print(data, indent=0, tab=' '): + if isinstance(data, dict): + print(tab * indent + '{') + for key, value in data.items(): + print(tab * indent + str(key), end=': ') + nested_print(value, indent + 1) + print(tab * indent + '}') + + elif isinstance(data, list) or isinstance(data, tuple): + print(tab * indent + '[') + for value in data: + nested_print(value, indent + 1) + print(tab * indent + ']') + else: + print(tab * indent + str(data)) + + +def generate_span_rect(rects): + result = Rect(rects[0]) + if len(rects) == 1: + return result + for rect in rects[1:]: + right = max(result.right, rect.right) + bottom = max(result.bottom, rect.bottom) + result.left = min(result.left, rect.left) + result.top = min(result.top, rect.top) + result.w = abs(right - result.left) + result.h = abs(bottom - result.top) + return result \ No newline at end of file diff --git a/lochpython/entity/__pycache__/__init__.cpython-310.pyc b/lochpython/entity/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index 0fc6e6a..0000000 Binary files a/lochpython/entity/__pycache__/__init__.cpython-310.pyc and /dev/null differ diff --git a/lochpython/entity/__pycache__/entity.cpython-310.pyc b/lochpython/entity/__pycache__/entity.cpython-310.pyc deleted file mode 100644 index 9974bc4..0000000 Binary files a/lochpython/entity/__pycache__/entity.cpython-310.pyc and /dev/null differ diff --git a/lochpython/entity/__pycache__/player.cpython-310.pyc b/lochpython/entity/__pycache__/player.cpython-310.pyc deleted file mode 100644 index 129c4dd..0000000 Binary files a/lochpython/entity/__pycache__/player.cpython-310.pyc and /dev/null differ diff --git a/lochpython/entity/__pycache__/tile.cpython-310.pyc b/lochpython/entity/__pycache__/tile.cpython-310.pyc deleted file mode 100644 index b035e03..0000000 Binary files a/lochpython/entity/__pycache__/tile.cpython-310.pyc and /dev/null differ diff --git a/lochpython/entity/entity.py b/lochpython/entity/entity.py deleted file mode 100644 index 21aebc2..0000000 --- a/lochpython/entity/entity.py +++ /dev/null @@ -1,72 +0,0 @@ -# from pygame.sprite import Sprite -# -# from core.debug import Debugger -# from core.renderer import WorldRenderer -# -# -# class Entity(Sprite): -# def __init__(self, world): -# super().__init__() -# self.world = world -# self.hitbox = None # uhh... -# -# def set_visible(self, visible): -# if visible: -# self.add(WorldRenderer.visible_objects) -# else: -# self.remove(WorldRenderer.visible_objects) -# -# def set_collideable(self, collideable): -# if collideable: -# self.add(self.world.obstacle_objects) -# else: -# self.remove(self.world.obstacle_objects) -# -# def eval_collision(self, translation, obstacles): -# o_encountered_x = self.eval_collision_x(translation, obstacles) -# o_encountered_y = self.eval_collision_y(translation, obstacles) -# return list(set(o_encountered_x + o_encountered_y)) -# -# def eval_collision_x(self, translation, obstacles): -# obstacles_encountered = [] -# self.hitbox.x += translation[0] -# for obstacle in obstacles: -# if obstacle.hitbox.colliderect(self.hitbox): -# obstacles_encountered.append(obstacle) -# if translation[0] > 0: -# self.hitbox.right = obstacle.hitbox.left -# if translation[0] < 0: -# self.hitbox.left = obstacle.hitbox.right -# return obstacles_encountered -# -# def eval_collision_y(self, translation, obstacles): -# obstacles_encountered = [] -# self.hitbox.y += translation[1] -# for obstacle in obstacles: -# if obstacle.hitbox.colliderect(self.hitbox): -# obstacles_encountered.append(obstacle) -# if translation[1] > 0: -# self.hitbox.bottom = obstacle.hitbox.top -# if translation[1] < 0: -# self.hitbox.top = obstacle.hitbox.bottom -# return obstacles_encountered -# -# def move(self, speed, dt, direction): -# if direction.magnitude() != 0: -# direction = direction.normalize() -# -# translation = direction * speed * dt -# obstacles = self.world.get_nearby_obstacles(self) -# obstacles_encountered = self.eval_collision(translation, obstacles) -# for obstacle in obstacles_encountered: -# Debugger.rect(obstacle.hitbox, 'Yellow', 5) -# -# self.rect.center = self.hitbox.center -# -# # todo should be done better -# self.world.on_player_move() -# -# def update(self, *args, **kwargs): -# super().update(*args, **kwargs) -# Debugger.rect(self.rect, 'Red') -# Debugger.rect(self.hitbox, 'Blue') diff --git a/lochpython/entity/player.py b/lochpython/entity/player.py deleted file mode 100644 index 3e73dc9..0000000 --- a/lochpython/entity/player.py +++ /dev/null @@ -1,46 +0,0 @@ -# import pygame -# from core.settings import TILESIZE -# -# from core.debug import Debugger -# from entity.entity import Entity -# -# -# class Player(Entity): -# def __init__(self, starting_pos, world, visible=True): -# super().__init__(world=world) -# self.image = pygame.image.load('./data/graphics/player.png').convert_alpha() -# self.rect = pygame.Rect(starting_pos, (TILESIZE, TILESIZE)) -# self.hitbox = self.rect.inflate(0, -26) -# # self.add(self.world.entities) -# world.entities.append(self) -# self.set_visible(visible) -# self.draw_rect = pygame.Rect((0,0), (TILESIZE, TILESIZE)) #todo meh not DRY -# -# self.direction = pygame.math.Vector2() -# self.speed = 300 -# self.cooldown = 0 -# self.cooldown_start_time = 0 -# -# def input(self): -# keys = pygame.key.get_pressed() -# -# # movement -# if keys[pygame.K_w]: -# self.direction.y = -1 -# elif keys[pygame.K_s]: -# self.direction.y = 1 -# else: -# self.direction.y = 0 -# -# if keys[pygame.K_a]: -# self.direction.x = -1 -# elif keys[pygame.K_d]: -# self.direction.x = 1 -# else: -# self.direction.x = 0 -# -# def update(self, dt, *args, **kwargs): -# super().update(*args, **kwargs) -# Debugger.print(f"Player_center: {self.rect.center}") -# self.input() -# self.move(self.speed, dt, self.direction) diff --git a/lochpython/entity/tile.py b/lochpython/entity/tile.py deleted file mode 100644 index 91caab5..0000000 --- a/lochpython/entity/tile.py +++ /dev/null @@ -1,64 +0,0 @@ -import pygame -from pygame.sprite import Sprite -from core.settings import TILESIZE -from core.renderer import WorldRenderer -# from entity.entity import Entity - - -class AnimationController: - def __init__(self, frames_count=4, total_duration_s=1, indices=None, running=True): - self.frames_count = frames_count - self.total_duration_s = total_duration_s - self.interval = self.total_duration_s / self.frames_count - self.current_frame = 0 - self.accumulated_time_s = 0 - - if indices is not None and len(indices) != self.frames_count: - raise IndexError(f"Animation cannot be controller, number of indices in list is not equal frames_count.") - self.indices = indices if indices else list(range(self.frames_count)) - - self.running = running - - def update(self, dt, next_function=None): - if self.running: - self.accumulated_time_s += dt - - if self.accumulated_time_s > self.interval: - self.accumulated_time_s -= self.interval - self.current_frame = (self.current_frame + 1) % self.frames_count - if next_function: - next_function(frame=self.current_frame, frames_count=self.frames_count) - - -#TODO -# - zmieniac draw_rect na bazie wybranego indeksu, -# - kontroler animacji steruje wybranym indeksem -> draw_rect -# - zrobic baze ilustracji w loaderze -# - player, entity, tile musza miec cos wspolnego -# - zrobic klase AnimatedSprite -# - nie wiem czy da sie wybrac czy dziedzicyz po sprite czy animated sprite -# - ale moze Factory zalatwi sprawe tworzenia kafelkow/entity, trzeba tylko miec -# - jakiegos JSONA z opisem - -# class Tile(Sprite): - # def __init__(self, starting_pos, image, indices=[1], visible=True, animated=False, dimensions=(TILESIZE, TILESIZE)): - # super().__init__() - # # TODO IMAGE DO JAKIEJS BAZY I TU W ARGUMENCIE - # self.image = image # pygame.image.load('./data/graphics/rock.png').convert_alpha() # - # self.rect = pygame.Rect(starting_pos, dimensions) - # self.hitbox = self.rect.inflate(0, -26) - # self.set_visible(visible) - # - # self.draw_rect = pygame.Rect((0,0), dimensions) - # self.animation = None if not animated else AnimationController() - # - # def update(self, dt, *args, **kwargs): - # super().update(*args, **kwargs) - # if self.animation: - # pass - # - # def set_visible(self, visible): - # if visible: - # self.add(WorldRenderer.visible_objects) - # else: - # self.remove(WorldRenderer.visible_objects) diff --git a/lochpython/entity/__init__.py b/lochpython/files/__init__.py similarity index 100% rename from lochpython/entity/__init__.py rename to lochpython/files/__init__.py diff --git a/lochpython/files/__pycache__/__init__.cpython-310.pyc b/lochpython/files/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..1df4582 Binary files /dev/null and b/lochpython/files/__pycache__/__init__.cpython-310.pyc differ diff --git a/lochpython/files/__pycache__/path.cpython-310.pyc b/lochpython/files/__pycache__/path.cpython-310.pyc new file mode 100644 index 0000000..ff27ec5 Binary files /dev/null and b/lochpython/files/__pycache__/path.cpython-310.pyc differ diff --git a/lochpython/files/content.py b/lochpython/files/content.py new file mode 100644 index 0000000..696f49a --- /dev/null +++ b/lochpython/files/content.py @@ -0,0 +1,334 @@ +from lochpython.core.settings import TILESIZE +import os +import pygame +from pygame.rect import Rect +import xml.etree.ElementTree as et + +from lochpython.core.utils import StackXY +from lochpython.files.path import ResourceFiles, remove_extension +from lochpython.objects.go import GameObject + + +class TilesetData: + def __init__(self, name, path, grid_size, tile_size, image_size, with_alpha=True): + self.name = name + self.path = path + self.with_alpha = with_alpha + if path: + surface = pygame.image.load(path) + self.surface = surface.convert_alpha() if with_alpha else surface.convert() + else: + self.surface = pygame.Surface(image_size) + self.tile_size = tile_size + self.grid_size = grid_size + self.image_size = image_size + self.tiles_count = self.grid_size[0] * self.grid_size[1] + + def set_color(self, color): + self.surface.fill(color) + + @property + def columns_count(self): + return self.grid_size[0] + + @property + def rows_count(self): + return self.grid_size[1] + + @property + def tile_width(self): + return self.tile_size[0] + + @property + def tile_height(self): + return self.tile_size[1] + + def column_row_from_local_index(self, index): + if index >= self.tiles_count: + raise IndexError(f'Index {index} exceed limit') + return index % self.columns_count, index // self.columns_count + + def local_index_from_column_row(self, column, row): + if row * column >= self.tiles_count: + raise IndexError(f'Index {row * column} exceed limit') + return row * self.columns_count + column + + def __str__(self): + return f"Tileset data of {self.name}, grid_size: {self.grid_size}, tile_size: {self.tile_size} with image: {self.surface}" + + @classmethod + def from_tsx_file(cls, abs_tsx_filepath): + tileset_node = et.parse(abs_tsx_filepath).getroot() + tileset_attribs = tileset_node.attrib + image_attribs = tileset_node.find('image').attrib + columns_count = int(tileset_attribs['columns']) + image_abs_path = os.path.join(os.path.dirname(abs_tsx_filepath), image_attribs['source']) + + name = tileset_attribs['name'] + path = image_abs_path + grid_size = columns_count, int(tileset_attribs['tilecount']) // columns_count + tile_size = int(tileset_attribs['tilewidth']), int(tileset_attribs['tileheight']) + image_size = int(image_attribs['width']), int(image_attribs['height']) + with_alpha = True # todo + + return cls(name, path, grid_size, tile_size, image_size, with_alpha) + + +class TileProperties: + class LightEffect: + def __init__(self, strength=0, relative_position=(0, 0), light_color=(255, 255, 255), active=False): + self.strength = strength + self.relative_position = relative_position + self.color = light_color + self.active = active + + class Emitter: + def __init__(self, particles_type='flame', relative_position=(0, 0), active=False): + self.particles_type = particles_type + self.relative_position = relative_position + self.active = active + + class KeyFrame: + def __init__(self, tile_id, interval): + self.tile_id = tile_id + self.interval = interval # not so much use in practice - [0] is common interval + + def __init__(self): + self.collision_rects = [] # todo replace with dict + self.animation = [] + self.other = dict() + + @property + def light_effect(self): + return self.other.get('light') + + def has_animation(self): + return self.animation + + def has_light_effect(self): + return self.other.get('light') + + def has_collision_rects(self): + return self.collision_rects + + def add_keyframe(self, keyframe): + if isinstance(keyframe, self.KeyFrame): + self.animation.append(keyframe) + else: + raise ValueError(f"Keyframe should be instance of {self.KeyFrame}") + + def add_collision_rect(self, collision_rect): + if isinstance(collision_rect, Rect): + self.collision_rects.append(collision_rect) + else: + raise ValueError(f"Collision_rect should be instance of {Rect}") + + def __str__(self): + return f"Tile properties with collisions: {len(self.collision_rects)}, animations: {len(self.animation)}" + + @classmethod + def dict_from_tsx_file(cls, abs_tsx_filepath): + tileset_node = et.parse(abs_tsx_filepath).getroot() + + tiles_data = dict() + tiles_ids = tileset_node.findall('tile') + for tile_node in tiles_ids: + tile_id = int(tile_node.attrib['id']) + tile_data = TileProperties() + + if collision_groups := tile_node.find('objectgroup'): + for rect_data in collision_groups: + ra = rect_data.attrib + rect_position = int(ra['x']), int(ra['y']) + rect_size = int(ra['width']), int(ra['height']) + tile_data.add_collision_rect(Rect(rect_position, rect_size)) + + if animation_node := tile_node.find('animation'): + for keyframe_data in animation_node: + kf_tile_id = int(keyframe_data.attrib['tileid']) + kf_interval = int(keyframe_data.attrib['duration']) + tile_data.add_keyframe(TileProperties.KeyFrame(kf_tile_id, kf_interval)) + + if other_properties := tile_node.find('properties'): + other_properties = other_properties.findall('property') + + def get_property_by_attr_name(properties, attr_name, default=None): + for a_prop in properties: + if a_prop.attrib.get('name') == attr_name: + return a_prop.attrib.get('value', default) + return default + + # light + if light_strength := get_property_by_attr_name(other_properties, 'light'): + light_strength = int(light_strength) + light_x = int(get_property_by_attr_name(other_properties, 'light_x', 0)) + light_y = int(get_property_by_attr_name(other_properties, 'light_y', 0)) + light_color = get_property_by_attr_name(other_properties, 'light_color', (255,255,255)) + if light_color == '': + light_color = (255,255,255) + active = bool(get_property_by_attr_name(other_properties, 'active', True)) + tile_data.other['light'] = cls.LightEffect(light_strength, (light_x, light_y), light_color, active) + + # particles + if particles_type := get_property_by_attr_name(other_properties, 'particles'): + particles_x = int(get_property_by_attr_name(other_properties, 'particles_x', 0)) + particles_y = int(get_property_by_attr_name(other_properties, 'particles_y', 0)) + active = bool(get_property_by_attr_name(other_properties, 'active', False)) + tile_data.other['emitter'] = cls.Emitter(particles_type, (particles_x, particles_y), active) + tiles_data[tile_id] = tile_data + return tiles_data + + +class Tileset: + def __init__(self, tileset_data, tiles_properties): + self.tileset_data = tileset_data + self.tiles_properties = tiles_properties + + @classmethod + def from_tsx_file(cls, abs_tsx_filepath): + return cls(TilesetData.from_tsx_file(abs_tsx_filepath), TileProperties.dict_from_tsx_file(abs_tsx_filepath)) + + def __str__(self): + return f"{self.tileset_data} with properties: \n - " + "\n - ".join( + f"{key}: {value}" for key, value in self.tiles_properties.items()) + '\n' + + +class RegionMap: + class Elevation: + def __init__(self, name, width, height): + self.name = name + self.stack = StackXY(width, height, initial=0) + + def __str__(self): + return f"Elevation {self.name}: {self.stack}. Stacked counts: \n{self.stack.print_stack(indentation=' ' * 2)}" + + def __init__(self, path, map_size, tile_size): + self.path = path + self.map_size = map_size + self.tile_size = tile_size + self.global_ids = dict() + self.elevations = [] + + def add_global_id(self, tileset_name, ids_range): + self.global_ids[tileset_name] = ids_range + + def setup_elevations(self, count): + self.elevations = [None] * count + + def add_elevation(self, elevation_idx, elevation: Elevation): + self.elevations[elevation_idx] = elevation + + def __str__(self): + lines = f"RegionMap {self.path} with {len(self.elevations)} elevations. Size {self.map_size}, used GIDS: \n - " + lines += '\n - '.join(f"{name}: {gids_range}" for name, gids_range in self.global_ids.items()) + '\n' + lines += f"Elevations {len(self.elevations)}: \n - " + lines += '\n - '.join(f"{idx}: {e}" for idx, e in enumerate(self.elevations)) + return lines + + @classmethod + def from_tmx_file(cls, abs_tmx_filepath, tilesets): + print(abs_tmx_filepath) + map_node = et.parse(abs_tmx_filepath).getroot() + map_attribs = map_node.attrib + path = abs_tmx_filepath + map_size = (int(map_attribs['width']), int(map_attribs['height'])) + tile_size = (int(map_attribs['tilewidth']), int(map_attribs['tileheight'])) + print(path) + + region_map = cls(path, map_size, tile_size) + + for tileset_gid_node in map_node.findall('tileset'): + gid_attribs = tileset_gid_node.attrib + tileset_name = remove_extension(gid_attribs['source'].split('/')[-1]) + gid_start = int(gid_attribs['firstgid']) + gid_range = range(gid_start, tilesets.get(tileset_name).tileset_data.tiles_count + gid_start) + region_map.add_global_id(tileset_name, gid_range) + + # elevation is stack of layers - flatten group + elevations = map_node.findall('group') + + region_map.setup_elevations(len(elevations)) + for elevation_node in elevations: + elevation_name = elevation_node.attrib['name'] + elevation_idx = int(elevation_name.strip().split('_')[0]) + elevation = cls.Elevation(elevation_name, *region_map.map_size) + region_map.add_elevation(elevation_idx, elevation) + + layers_nodes = [(int(layer.attrib['name'].split('_')[0]), layer) for layer in + elevation_node.findall('layer')] + layers_nodes.sort(key=lambda x: x[0]) + for idx, layer in layers_nodes: + layer_csv_rows = layer.find('data').text.strip().split(',\n') + for index_y, csv_row in enumerate(layer_csv_rows): + items = list(int(item) for item in csv_row.strip().split(',')) + for index_x, item in enumerate(items): + if item > 0: + elevation.stack.push_top(index_x, index_y, item) + # print(elevation) + + return region_map + + +class Mock: + index = 0 + + @staticmethod + def tileset_data(color=(255, 0, 255)): + grid_size = (1, 1) + tile_size = (TILESIZE, TILESIZE) + image_size = grid_size[0] * tile_size[0], grid_size[1] * tile_size[1] + tileset_data = TilesetData(f'mock_{Mock.index}', None, grid_size, tile_size, image_size, with_alpha=False) + tileset_data.set_color(color) + Mock.index += 1 + return tileset_data + + +class Loader: + """ + Tileset resources: + loader.tilset.get('floor').tileset_data.tile_size # name, path, with_alpha, surface, tile_size, grid_size, image_size, tiles_count + loader.tilset.get('floor').tileset_properties.get(0).animation # collision_rects + """ + instance = None + + def __init__(self): + tilesets_resource_txs_files = ResourceFiles(ResourceFiles.TILESETS).get_tsx_files() + self.tilesets = dict([(remove_extension(file.name), Tileset.from_tsx_file(file.abs_path)) for file in + tilesets_resource_txs_files]) + + maps_resource_tms_files = ResourceFiles(ResourceFiles.MAPS).get_tmx_files() + print(maps_resource_tms_files[0].abs_path) + self.maps = dict( + [(remove_extension(file.name), RegionMap.from_tmx_file(file.abs_path, self.tilesets)) for file in + maps_resource_tms_files]) + + self.mock = Mock + # for region_map_name, region_map_data in self.maps.items(): + # print(region_map_name, region_map_data) + + # print(self.decode_local_index('testmap', 450)) + + def decode_local_index(self, map_name, map_index): + map_ragion = self.maps.get(map_name) + if not map_ragion: + raise FileNotFoundError(f"Missing map {map_name}") + + for tileset_name, indices_range in map_ragion.global_ids.items(): + if map_index in indices_range: + # be aware - counting from 1, 0 means missing + local_index = map_index - indices_range.start # + 1 + # if local_index < 0: + # + + mock_destination = 0 + # if tileset_name == 'floor' or tileset_name == 'details': + # mock_destination = GameObject.GOType.BASEMENT + if tileset_name.startswith('objects'): + mock_destination = 1 + return local_index, indices_range, tileset_name, mock_destination + return None + + +if not Loader.instance: + Loader.instance = Loader() +loader = Loader.instance diff --git a/lochpython/files/path.py b/lochpython/files/path.py new file mode 100644 index 0000000..ea1e38a --- /dev/null +++ b/lochpython/files/path.py @@ -0,0 +1,34 @@ +import os +from typing import NamedTuple +from lochpython.core import settings + + +def remove_extension(file_name): + return file_name.split('.')[0] + +class ResourceFiles: + TILESETS = settings.GRAPHICS_TILESETS_PATHS + ENTITIES = settings.GRAPHICS_ENTITIES_PATHS + MAPS = settings.MAPS_PATH + File = NamedTuple('File', [('name', str), ('abs_path', str)]) + + def __init__(self, root): + self.root = root + self.ignore_workspace = True + + def get_childs_names(self): + child_dirs = os.listdir(self.root) + child_dirs = list(filter(lambda path: path != settings.IGNORE_WORKSPACE_DIR, child_dirs)) + return child_dirs + + def get_files(self, file_type) -> list[File]: + file_type = file_type.lower() + childs_names = self.get_childs_names() + filered_childs_names = [child_name for child_name in childs_names if child_name.lower().endswith(file_type)] + return [self.File(name=child_name, abs_path=os.path.join(self.root, child_name)) for child_name in + filered_childs_names] + + def get_tsx_files(self): + return self.get_files('tsx') + def get_tmx_files(self): + return self.get_files('tmx') diff --git a/lochpython/objects/__pycache__/__init__.cpython-310.pyc b/lochpython/objects/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index a150898..0000000 Binary files a/lochpython/objects/__pycache__/__init__.cpython-310.pyc and /dev/null differ diff --git a/lochpython/objects/__pycache__/go.cpython-310.pyc b/lochpython/objects/__pycache__/go.cpython-310.pyc deleted file mode 100644 index 91d3209..0000000 Binary files a/lochpython/objects/__pycache__/go.cpython-310.pyc and /dev/null differ diff --git a/lochpython/objects/__pycache__/property.cpython-310.pyc b/lochpython/objects/__pycache__/property.cpython-310.pyc deleted file mode 100644 index 0d9ed22..0000000 Binary files a/lochpython/objects/__pycache__/property.cpython-310.pyc and /dev/null differ diff --git a/lochpython/objects/go.py b/lochpython/objects/go.py index dcd62e9..49a0b89 100644 --- a/lochpython/objects/go.py +++ b/lochpython/objects/go.py @@ -1,9 +1,15 @@ -from objects.property import Props +from enum import Enum + +from lochpython.objects.property import Props class GameObject: # todo remove prop execute after render, need to remove queue + class GOType(Enum): + BASEMENT = 0 + OBJECTS = 1 + def __init__(self): self.properties = {} # consider if properties can be needed multiple times @@ -47,6 +53,18 @@ def with_animation(self, prop): self.add_property(Props.ANIMATION, prop) return self + def with_light_source(self, prop): + self.add_property(Props.LIGHT_SOURCE, prop) + return self + + def with_emitter(self, prop): + self.add_property(Props.EMITTER, prop) + return self + + def with_particle(self, prop): + self.add_property(Props.PARTICLE, prop) + return self + # general loop methods def input(self, *args, **kwargs): diff --git a/lochpython/objects/property.py b/lochpython/objects/property.py index 179a121..7886cd1 100644 --- a/lochpython/objects/property.py +++ b/lochpython/objects/property.py @@ -1,14 +1,23 @@ -from enum import Enum +from random import randint +from enum import Enum, auto import pygame from pygame import Rect from pygame.math import Vector2 from pygame.sprite import Sprite from abc import ABC, abstractmethod -from core.settings import TILESIZE -from core.debug import Debugger -from core.renderer import WorldRenderer +from lochpython.core.timers import global_timers +from lochpython.core.settings import DEBUG_VISIBLE_OBJECTS, DEBUG_COLLISION_BLOCKS, POINT_LIGHT_MIN_STRENGTH, \ + POINT_LIGHT_MAX_STRENGTH + +from lochpython.core.debug import Debugger +from lochpython.core.renderer import WorldRenderer, SkyRenderer +from lochpython.core.utils import generate_span_rect +from lochpython.core.timers import AnimationController, Timer + + +# from objects.go import GameObject class InputProperty(ABC): @@ -29,155 +38,205 @@ def render(self, *args, **kwargs): print('Render should be overwritten', args, kwargs) -class AnimationProperty(UpdateProperty): - def __init__(self, sprite_prop, columns_count=4, tile_size=TILESIZE, looping=True, running=False, starting_frame=0, - current_frame=0): - self.sprite_prop = sprite_prop - self.columns_count = columns_count - self.tile_size = tile_size - self._frames_count = 4 - self.current_frame = current_frame - self._starting_frame = starting_frame - self.looping = looping - self.running = running - self.interval = 1 - self.accumulated_time_s = 0 +class LightSourceProperty(UpdateProperty): + + def __init__(self, parent_rect, relative_position, strength, color, active=True): + self.parent_rect = parent_rect + self.relative_position = relative_position + self.position = parent_rect.x, parent_rect.y + self.strength = strength + self.active = active + self.color = color + self.deviation_timer = global_timers.get_timer(100) + self.deviation_timer.attach(self.rand_deviation) + self.deviation = (0, 0) + - @property - def starting_frame(self): - return self._starting_frame - @starting_frame.setter - def starting_frame(self, frame): - self._starting_frame = frame - self.set_frame(frame) @property - def interval(self): - return self._interval + def strength(self): + return self._strength - @interval.setter - def interval(self, interval_s): - self._interval = interval_s - self._duration = self.interval * self.frames_count + @strength.setter + def strength(self, strngth): + self._strength = min(max(POINT_LIGHT_MIN_STRENGTH, strngth), POINT_LIGHT_MAX_STRENGTH) @property - def duration(self): - return self._duration + def active(self): + return self._active - @duration.setter - def duration(self, duration_s): - self._duration = duration_s - self._interval = self.duration / self.frames_count + @active.setter + def active(self, ac): + self._active = ac + if self._active: + SkyRenderer.add_point_light(self) + else: + SkyRenderer.remove_point_light(self) + + def rand_deviation(self): + self.deviation = randint(-1, 1), randint(-1, 1) + + def update(self, *args, **kwargs): + if self._active: + self.position = self.parent_rect[0] + self.relative_position[0] + self.deviation[0], self.parent_rect[1] + \ + self.relative_position[1] + self.deviation[1] + # print(self.position) + + +class AnimationProperty(UpdateProperty): + + def __init__(self, sprite_prop, looping=True, active=False, keyframes=None): + self.sprite_prop = sprite_prop + self.keyframes = [] if not keyframes else keyframes + self.looping = looping + self.active = active + self.parent_ctrl = None + self._current_frame = 0 + + def attach_to_controller(self, controller): + if self.set_frame not in controller.handlers: + controller.handlers.append(self.set_frame) + self.parent_ctrl = controller + + def detach_from_controller(self): + self.parent_ctrl.handlers.remove(self.set_frame) + self.parent_ctrl = None @property - def frames_count(self): - return self._frames_count + def current_frame(self): + return self._current_frame - @frames_count.setter - def frames_count(self, count): - self._frames_count = count - self._duration = self.interval * self.frames_count + def set_frame(self, frame_index): + self.current_frame = frame_index - def update_clip_rest(self): - i_x = self.current_frame % self.columns_count - i_y = self.current_frame // self.columns_count - self.sprite_prop.clip_rect.x = self.tile_size * i_x - self.sprite_prop.clip_rect.y = self.tile_size * i_y - self.sprite_prop.clip_rect.w = self.tile_size - self.sprite_prop.clip_rect.h = self.tile_size + @current_frame.setter + def current_frame(self, frame_index): + self._current_frame = frame_index + self.sprite_prop.image_index = self.keyframes[frame_index].tile_id - def set_frame(self, index): - self.current_frame = index - self.update_clip_rest() + @property + def frames_count(self): + return len(self.keyframes) def next_frame(self): - self.current_frame += 1 - if self.looping: - if self.current_frame >= self.starting_frame + self.frames_count: - self.current_frame -= self.starting_frame - self.current_frame %= self.frames_count - self.current_frame += self.starting_frame - elif self.current_frame >= self.starting_frame + self.frames_count: - self.current_frame = self.starting_frame + self.frames_count - 1 - self.running = False - self.update_clip_rest() + next_index = self.current_frame + 1 + if next_index >= self.frames_count: + next_index = next_index % self.frames_count if self.looping else self.frames_count - 1 + self.current_frame = next_index def update(self, *args, dt, **kwargs): - if self.running: - self.accumulated_time_s += dt - if self.accumulated_time_s > self.interval: - self.accumulated_time_s -= self.interval - self.next_frame() + pass + # # todo and not... + # if self.active and self.parent_timer: + # self.parent_timer.update(*args, dt=dt, **kwargs) class MovementAnimationProperty(AnimationProperty): - keyframes = { - 'up': 0, - 'right': 4, - 'down': 8, - 'left': 12, - } + class EntityState(Enum): + IDLE = 0 + MOVING = 1 + + @classmethod + def get_state(cls, moving_prop): + return cls.MOVING if moving_prop.direction.magnitude() != 0 else cls.IDLE def __init__(self, sprite_prop, moving_prop): super().__init__(sprite_prop) self.moving_prop = moving_prop - self.duration = 150 / moving_prop.speed - self.running = True + self.active = True self.looping = True - self.last_keyframe = MovementAnimationProperty.keyframes['down'] - - def select_keyframe(self, dir_x, dir_y): - if dir_y < 0: - return self.keyframes['down'] - if dir_y > 0: - return self.keyframes['up'] - if dir_x < 0: - return self.keyframes['left'] - if dir_x > 0: - return self.keyframes['right'] - return None + self.looking_dir = [1, 1] + self.animation_timer = Timer(2000 / self.frames_count, active=True) + self.animation_ctrl = AnimationController(self.frames_count) + self.attach_to_controller(self.animation_ctrl) + self.last_state = self.EntityState.IDLE def update(self, *args, dt, **kwargs): - super(MovementAnimationProperty, self).update(*args, dt=dt, **kwargs) + super().update(*args, dt=dt, **kwargs) direction = self.moving_prop.direction - keyframe = self.select_keyframe(*direction) - Debugger.print('Last, key, start', self.last_keyframe, keyframe, self.starting_frame) - - if keyframe is not None: - if self.last_keyframe != keyframe: - self.looping = True - self.running = True - self.starting_frame = keyframe - self.last_keyframe = keyframe + + entity_state = self.EntityState.get_state(self.moving_prop) + start_idx_x = 0 if entity_state == self.EntityState.IDLE else 4 + self.frames_count = 4 if entity_state == self.EntityState.IDLE else 8 + if self.parent_ctrl: + self.parent_ctrl.duration = 8 if entity_state == self.EntityState.IDLE else 2 * self.moving_prop.speed / 1000 + # todo vary duration + + if direction.x < 0: + self.looking_dir[0] = -1 + if direction.x > 0: + self.looking_dir[0] = 1 + if direction.y < 0: + self.looking_dir[1] = -1 + if direction.y > 0: + self.looking_dir[1] = 1 + + if self.looking_dir == [1, -1]: + start_idx_y = 0 + elif self.looking_dir == [-1, -1]: + start_idx_y = 2 + elif self.looking_dir == [-1, 1]: + start_idx_y = 3 else: - # stop - self.looping = False - self.starting_frame = self.last_keyframe + start_idx_y = 1 + + last_starting_frame = self.starting_frame + self.starting_frame = start_idx_y * self.sprite_prop.image_meta.columns_count + start_idx_x # todo + if last_starting_frame != self.starting_frame: + self.current_frame = self.starting_frame # todo change!!!! -class SpriteProperty(RenderProperty): - def __init__(self, image, world, position, dimensions=None, visible=False, stack_layer=0): + debug_msg = f'MoveAnim: dir: {direction}, state: {entity_state}, looking_dir: {self.looking_dir},' + debug_msg += f'frames: {self.starting_frame}-{self.starting_frame + self.frames_count} [{start_idx_x}, {start_idx_y}], curr: {self.current_frame}' + Debugger.print(debug_msg) + + +class SpriteProperty(RenderProperty, UpdateProperty): + class Layer(Enum): # todo refactor somhere + FLOOR = 0 + DETAILS = 1 + OBJECTS = 2 + + @property + def layer_id(self): + return self.value + + def __init__(self, image_data, world, position, visible=False, z_index=0, dst_layer=None): + """ + Tile size from image_data + """ + self.image_data = image_data self.world = world - self.stack_layer = stack_layer - self.sprite = Sprite() # no graoup at start = visible False - self.sprite.image = image - if not dimensions: - dimensions = image.get_width(), image.get_height() - self.sprite.rect = Rect(position, dimensions) + self.z_index = z_index + if dst_layer is None: + # GameObject.GOType.OBJECTS + # todo + self.dst_layer = 0 + else: + self.dst_layer = dst_layer + self._sprite = Sprite() + self._sprite.image = self.image_data.surface + self._sprite.rect = Rect(position, self.dimensions) self.visible = visible - self.clip_rect = Rect((0, 0), self.rect.size) + self.clip_rect = Rect((0, 0), self.dimensions) + self._image_index = -1 + self.image_index = 0 def __del__(self): self.visible = False @property def rect(self): - return self.sprite.rect + return self._sprite.rect + + @property + def dimensions(self): + return self.image_data.tile_size @property def image(self): - return self.sprite.image + return self._sprite.image @property def visible(self): @@ -191,23 +250,46 @@ def visible(self, vis): else: WorldRenderer.remove_visible_object(self) + @property + def image_index(self): + return self._image_index + + @image_index.setter + def image_index(self, index): + if self._image_index != index: + self._image_index = index + img_col, img_row = self.image_data.column_row_from_local_index(index) + self.clip_rect.x = self.rect.w * img_col + self.clip_rect.y = self.rect.h * img_row + + def update(self, *args, **kwargs): + fov_rect = self.world.camera.fov_rect + should_be_visible = fov_rect.colliderect(self.rect) + if not self.visible and should_be_visible: + self.visible = True + elif self.visible and not should_be_visible: + self.visible = False + def render(self, *args, **kwargs): - if self.visible: - Debugger.rect(self.sprite.rect, 'Red') - self.sprite.update(*args, **kwargs) + if self.visible and DEBUG_VISIBLE_OBJECTS: + Debugger.rect(self._sprite.rect, 'Red') + self._sprite.update(*args, **kwargs) class CollisionProperty(UpdateProperty, RenderProperty): """This property doesn't mean object checks collison with other objects. Can stand still, only moving objects activate collision check""" - INFLATION = -24 + INFLATION = -6 def __init__(self, parent_rect, world, active=True): self.parent_rect = parent_rect - self.hitbox = None + self.hitboxes = None + self.group_hitbox = None + self.fixed_hitboxes = [] + self._hitbox_method = self._use_generic_hitbox self.world = world self.active = active - self.update_hitbox() + self.update_hitboxes() @property def active(self): @@ -221,22 +303,40 @@ def active(self, active_flag): elif self in self.world.colliding_objects: self.world.colliding_objects.remove(self) - def update_hitbox(self): + def _use_generic_hitbox(self): + return [Rect(self.parent_rect).inflate(0, CollisionProperty.INFLATION)] + + def _use_fixed_hitboxes(self): + return [Rect(fixed_hitbox).move(self.parent_rect.x, self.parent_rect.y) for fixed_hitbox in self.fixed_hitboxes] + + def add_hitbox(self, hitbox_rect): + self.fixed_hitboxes.append(Rect(hitbox_rect)) + self._hitbox_method = self._use_fixed_hitboxes + self.update_hitboxes() + + def add_hitboxes(self, hitbox_rects): + for hb in hitbox_rects: + self.add_hitbox(hb) + + def update_hitboxes(self): if self.active: - self.hitbox = Rect(self.parent_rect).inflate(0, CollisionProperty.INFLATION) + self.hitboxes = self._hitbox_method() + self.group_hitbox = generate_span_rect(self.hitboxes) def update(self, *args, **kwargs): if self.active: - self.update_hitbox() + self.update_hitboxes() def render(self, *args, **kwargs): - if self.active: - Debugger.rect(self.hitbox, 'Blue') + if self.active and DEBUG_COLLISION_BLOCKS: + for hitbox in self.hitboxes: + Debugger.rect(hitbox, 'Blue') + # Debugger.rect(self.group_hitbox, 'Green') class MovingProperty(UpdateProperty): def __init__(self, collision_prop, world, ignore_collisions=False): - self.speed = 300 + self.speed = 100 self.world = world self.collision_prop = collision_prop self.direction = Vector2(0, 0) @@ -244,35 +344,39 @@ def __init__(self, collision_prop, world, ignore_collisions=False): self.obstacles_hit = [] def eval_collision(self, translation, obstacles): - from_point = Vector2(self.collision_prop.hitbox.topleft) - # todo capture translation and move source rect of hitbox + # todo oneday if neede - use list of hitboxes + from_point = Vector2(self.collision_prop.group_hitbox.topleft) o_encountered_x = self.eval_collision_x(translation, obstacles) o_encountered_y = self.eval_collision_y(translation, obstacles) - to_point = Vector2(self.collision_prop.hitbox.topleft) + to_point = Vector2(self.collision_prop.group_hitbox.topleft) return list(set(o_encountered_x + o_encountered_y)), to_point - from_point def eval_collision_x(self, translation, obstacles): obstacles_encountered = [] - self.collision_prop.hitbox.x += translation[0] + self.collision_prop.group_hitbox.x += translation[0] for obstacle in obstacles: - if obstacle.hitbox.colliderect(self.collision_prop.hitbox): - obstacles_encountered.append(obstacle) - if translation[0] > 0: - self.collision_prop.hitbox.right = obstacle.hitbox.left - if translation[0] < 0: - self.collision_prop.hitbox.left = obstacle.hitbox.right + for hitbox in obstacle.hitboxes: + if hitbox.colliderect(self.collision_prop.group_hitbox): + if obstacle not in obstacles_encountered: + obstacles_encountered.append(obstacle) + if translation[0] > 0: + self.collision_prop.group_hitbox.right = hitbox.left + if translation[0] < 0: + self.collision_prop.group_hitbox.left = hitbox.right return obstacles_encountered def eval_collision_y(self, translation, obstacles): obstacles_encountered = [] - self.collision_prop.hitbox.y += translation[1] + self.collision_prop.group_hitbox.y += translation[1] for obstacle in obstacles: - if obstacle.hitbox.colliderect(self.collision_prop.hitbox): - obstacles_encountered.append(obstacle) - if translation[1] > 0: - self.collision_prop.hitbox.bottom = obstacle.hitbox.top - if translation[1] < 0: - self.collision_prop.hitbox.top = obstacle.hitbox.bottom + for hitbox in obstacle.hitboxes: + if hitbox.colliderect(self.collision_prop.group_hitbox): + if obstacle not in obstacles_encountered: + obstacles_encountered.append(obstacle) + if translation[1] > 0: + self.collision_prop.group_hitbox.bottom = hitbox.top + if translation[1] < 0: + self.collision_prop.group_hitbox.top = hitbox.bottom return obstacles_encountered def update(self, *args, dt, **kwargs): @@ -282,17 +386,20 @@ def update(self, *args, dt, **kwargs): obstacles = self.world.get_nearby_obstacles(self.collision_prop) Debugger.print('Potential obstacles count', len(obstacles)) - for obstacle in obstacles: - Debugger.rect(obstacle.hitbox, 'Yellow', 3) + if DEBUG_COLLISION_BLOCKS: + for obstacle in obstacles: + Debugger.rect(obstacle.group_hitbox, 'Yellow', 2) translation = direction * self.speed * dt + self.obstacles_hit, translation = self.eval_collision(translation, obstacles) self.collision_prop.parent_rect.x += translation[0] self.collision_prop.parent_rect.y += translation[1] - for obstacle in self.obstacles_hit: - Debugger.rect(obstacle.hitbox, 'Yellow', 5) + if DEBUG_COLLISION_BLOCKS: + for obstacle in self.obstacles_hit: + Debugger.rect(obstacle.group_hitbox, 'Yellow', 3) if translation.magnitude() != 0: self.world.on_player_move() @@ -341,6 +448,42 @@ def update(self, *args, **kwargs): Debugger.print(f"WSAD_driven_rect: {self.moving_prop}") +class EmitterProperty(UpdateProperty): + + # @classmethod + # def fire_particles_emitter(cls): + + + def __init__(self, template_sprite_prop, template_animation_prop=None): + from lochpython.objects.go import GameObject + self.template_sprite_prop = template_sprite_prop + self.template_animation_prop = template_animation_prop + # self.lifetime = range(100,2000) + # self.initial_direction_angle = range(0,math.pi) + self.particles = [] + + def add_template_light_property(self, template_light_prop): + self.template_light_prop = template_light_prop + + def emit(self): + pass + #add particle, as tuple with lifetime + + def update(self, *args, **kwargs): + pass + #remove particles + + +class ParticleProperty(UpdateProperty): + #todo remove + + def __init__(self): + pass + + def update(self, *args, **kwargs): + pass + + class Props(Enum): SPRITE = SpriteProperty COLLISION = CollisionProperty @@ -348,3 +491,6 @@ class Props(Enum): MOVING = MovingProperty ANIMATION = AnimationProperty MOVEMENT_ANIMATION = MovementAnimationProperty + LIGHT_SOURCE = LightSourceProperty + EMITTER = EmitterProperty + PARTICLE = ParticleProperty diff --git a/lochpython/world/__pycache__/__init__.cpython-310.pyc b/lochpython/world/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index 5626e8e..0000000 Binary files a/lochpython/world/__pycache__/__init__.cpython-310.pyc and /dev/null differ diff --git a/lochpython/world/__pycache__/world.cpython-310.pyc b/lochpython/world/__pycache__/world.cpython-310.pyc deleted file mode 100644 index fd0d2c4..0000000 Binary files a/lochpython/world/__pycache__/world.cpython-310.pyc and /dev/null differ diff --git a/lochpython/world/__pycache__/worldloader.cpython-310.pyc b/lochpython/world/__pycache__/worldloader.cpython-310.pyc deleted file mode 100644 index bee8360..0000000 Binary files a/lochpython/world/__pycache__/worldloader.cpython-310.pyc and /dev/null differ diff --git a/lochpython/world/world.py b/lochpython/world/world.py index 60bf4aa..e8611c7 100644 --- a/lochpython/world/world.py +++ b/lochpython/world/world.py @@ -1,11 +1,15 @@ from math import sqrt +from pygame import Rect from pygame.math import Vector2 -from core.utils import distance_squared, radius_squared_from_rect -from objects.property import Props -from world.worldloader import WorldLoader -from core.renderer import WorldRenderer -from core.settings import COLLISION_RANGE + +from lochpython.core.debug import Debugger +from lochpython.core.utils import distance_squared, radius_squared_from_rect +from lochpython.objects.go import GameObject +from lochpython.objects.property import Props +from lochpython.world.worldloader import WorldLoader, PlayerLoader +from lochpython.core.renderer import WorldRenderer +from lochpython.core.settings import COLLISION_RANGE, RENDERING_HEIGHT, RENDERING_WIDTH, FOV_OFFSET class Camera(Vector2): @@ -15,8 +19,9 @@ def __init__(self, focus_point=Vector2(0, 0), inertial=True): self.inertial = inertial self.target_pos = Vector2(self) self.velocity = Vector2(0, 0) - self.focused_rect = None + self.focused_rect = Rect((0,0), (1,1)) self.speed = 4.5 + self.fov_rect = Rect(focus_point, (RENDERING_WIDTH, RENDERING_HEIGHT)) def focus_on_entity(self, rect, refresh=True): self.focused_rect = rect @@ -33,14 +38,15 @@ def update_camera(self, dt): self.xy += dt * self.velocity self.velocity = (self.target_pos - self.xy) * self.speed + self.fov_rect.w, self.fov_rect.h = RENDERING_WIDTH, RENDERING_HEIGHT + self.fov_rect.centerx, self.fov_rect.centery = self.xy + self.fov_rect = self.fov_rect.inflate(FOV_OFFSET, FOV_OFFSET) + def __str__(self): return f"Looking at: {self.focused_rect} {self.target_pos}, has pos: {self.xy}, vel: {self.velocity}" class Layer(list): - # def __init__(self, *args): - # super().__init__() - def update(self, *args, **kwargs): for item in self: item.update(*args, **kwargs) @@ -56,17 +62,16 @@ def render(self, *args, **kwargs): class World: def __init__(self): - self.floor = Layer() - self.floor_details = Layer() - self.entities = Layer() - self.limit_blocks = Layer() - - self.stack = Layer([self.floor, self.floor_details, self.entities, self.limit_blocks]) - self.player = None + self._basement = Layer() + self._objects = Layer() + self.stack = Layer([self._basement, self._objects]) self.colliding_objects = [] WorldLoader.load_test_map(self) + self.player = PlayerLoader(self).load((490, 330)) + self.add_game_object(self.player, GameObject.GOType.OBJECTS) + self.camera = Camera() self.camera.focus_on_entity(self.player.properties[Props.SPRITE].rect) @@ -77,6 +82,10 @@ def update(self, dt): self.stack.update(dt=dt) self.camera.update_camera(dt=dt) + # FOV + # fov_rect = self.camera.get_field_of_view() + # done inside sprite property - toggle visible + def render(self): self.stack.render() @@ -90,10 +99,29 @@ def is_near(self, hitbox_1, hitbox_2): return dist - r1 - r2 < COLLISION_RANGE def get_nearby_obstacles(self, coll_prop): - potentially_colliding_objects = filter(lambda x: self.is_near(x.hitbox, coll_prop.hitbox), - self.colliding_objects) + potentially_colliding_objects = filter(lambda x: self.is_near(x.group_hitbox, coll_prop.group_hitbox), self.colliding_objects) potentially_colliding_objects = filter(lambda x: x is not coll_prop, potentially_colliding_objects) potentially_colliding_objects = set(potentially_colliding_objects) potentially_colliding_objects = list(potentially_colliding_objects) return potentially_colliding_objects + + @property + def limit_blocks_count(self): + return len(self.colliding_objects) + @property + def basement_tiles_count(self): + return len(self._basement) + @property + def objects_count(self): + return len(self._objects) + + def add_game_object(self, go, go_type): + if go_type == 0: + self._basement.append(go) + else: + self._objects.append(go) + + def get_objects(self, go_type, position): + layer = self._basement if go_type == GameObject.GOType.BASEMENT else self._objects + return list(filter(lambda go: go.properties[Props.SPRITE].rect.topleft == position, layer)) diff --git a/lochpython/world/worldloader.py b/lochpython/world/worldloader.py index 7249798..1a83748 100644 --- a/lochpython/world/worldloader.py +++ b/lochpython/world/worldloader.py @@ -1,180 +1,130 @@ import random +from lochpython.files.content import loader +from lochpython.core.settings import * +from lochpython.objects.go import GameObject +from lochpython.objects import property as p +from lochpython.core.timers import global_controllers -import pygame - -from core.settings import * -# from entity.tile import Tile -from objects.go import GameObject -from objects.property import Props, SpriteProperty, CollisionProperty, MovingProperty, WSADDriven, AnimationProperty, \ - MovementAnimationProperty - -TEST_WORLD_MAP = [ - ['x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x'], - ['x', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'x'], - ['x', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'x'], - ['x', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'x'], - ['x', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'x'], - ['x', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'x', ' ', ' ', ' ', ' ', ' ', ' ', 'x'], - ['x', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'x'], - ['x', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'x'], - ['x', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'x'], - ['x', 'x', 'x', 'x', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'x'], - ['x', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'x'], - ['x', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'x'], - ['x', ' ', 'x', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'x'], - ['x', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'x'], - ['x', ' ', 'x', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'x'], - ['x', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'x'], - ['x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x'], -] - - -class ImagesLoader: - instance = None - - def __init__(self): - # todo add meta data like grid size, tile width - self.floor_image = pygame.image.load('./data/graphics/floor.png').convert_alpha() - self.water_image = pygame.image.load('./data/graphics/water.png').convert_alpha() - self.floor_borders = pygame.image.load('./data/graphics/borders.png').convert_alpha() - self.objects = pygame.image.load('./data/graphics/objects.png').convert_alpha() - self.player = pygame.image.load('./data/graphics/player.png').convert_alpha() - self.rock = pygame.image.load('./data/graphics/rock.png').convert_alpha() - - -if not ImagesLoader.instance: - ImagesLoader.instance = ImagesLoader() -loader = ImagesLoader.instance +class PlayerLoader: + def __init__(self, world): + # todo asset + self.world = world + + def load(self, position): + mock_tileset_data = loader.mock.tileset_data() + # mock_tileset_data.surface.set_colorkey((255,0,255)) #todo lol + player_sprite = p.SpriteProperty(mock_tileset_data, self.world, position, visible=True, dst_layer=1) # todo + + player_coll = p.CollisionProperty(player_sprite.rect, self.world) + player_moving = p.MovingProperty(player_coll, self.world) + player_wsad = p.WSADDriven(player_moving) + + prts_tileset = loader.tilesets['particles'] + print(prts_tileset) + prts_tileset_data = loader.tilesets['particles'].tileset_data + print(prts_tileset_data) + prts_tileset_props = loader.tilesets['particles'].tiles_properties + print(*prts_tileset_props.values()) + + + # todo zbuduj zestaw -class WorldLoader: - FLOOR_DATA = { - 'grid': 8, - 'ids': { - 0: 'water', - 1: 'grass', - 2: 'dirt', - 3: 'sand', - 4: 'cobble', - 5: 'planks', - } - } - @staticmethod - def load_csv_map(path): - with open(path, 'r') as file: - return [line.strip().split(',') for line in file.readlines()] - - # def import_folder(path): - # surfaces_list = [] - # for _, __, img_filenames in walk(path): - # for img_filename in img_filenames: - # img_path = path + '/' + img_filename - # img_surf = pygame.image.load(img_path).convert_alpha() - # surfaces_list.append(img_surf) - # return surfaces_list + particle_data = loader.mock.tileset_data() + particle_sprite = p.SpriteProperty(prts_tileset_data, self.world, position, visible=True, dst_layer=1) + + player_as_emiter = p.EmitterProperty(particle_sprite) + # player_anim_prop = p.MovementAnimationProperty(player_sprite, player_moving) + player = GameObject().with_sprite(player_sprite).with_moving(player_moving).with_wsad( + player_wsad).with_collision(player_coll).with_emitter(player_as_emiter) + return player + + +class TileFactory: + def __init__(self, map_name, world): + if map_name not in loader.maps.keys(): + raise ValueError(f"Map {map_name} not in loader {loader.maps.keys()}") + self.map_name = map_name + self.world = world + + def new_tile(self, global_index, position): + if global_index <= 0: + raise ValueError(f'Tiles indices are > 0, not {global_index}') + local_index, _, tileset_name, dst = loader.decode_local_index(self.map_name, global_index) + # if global_index > 1: + # print(global_index, ' -> ', local_index, tileset_name) + tileset_data = loader.tilesets[tileset_name].tileset_data + gameobject = GameObject() + + # shilft large objects + pos_x = position[0] # - (tileset_data.tile_size[0] - TILESIZE) + pos_y = position[1] - (tileset_data.tile_size[1] - TILESIZE) + position = (pos_x, pos_y) + + z_index = len(self.world.get_objects(dst, position)) + # print(f"zindex: {z_index}") + + sprite_property = p.SpriteProperty(tileset_data, self.world, position, visible=True, dst_layer=dst, + z_index=z_index) + sprite_property.image_index = local_index + gameobject.with_sprite(sprite_property) + + # using properties + tileset_properties = loader.tilesets[tileset_name].tiles_properties + if local_index in tileset_properties.keys(): + tile_properties = tileset_properties[local_index] + + # colllision + if tile_properties.has_collision_rects(): + collision_prop = p.CollisionProperty(parent_rect=sprite_property.rect, world=self.world) + collision_prop.add_hitboxes(tile_properties.collision_rects) + gameobject.with_collision(collision_prop) + + # animations + if tile_properties.has_animation(): + anim_prop = p.AnimationProperty(sprite_property) + animation_frames = tile_properties.animation + frames_count = len(animation_frames) + frames_interval = animation_frames[0].interval + for keyframe in animation_frames: + anim_prop.keyframes.append(keyframe) + anim_prop.active = True + anim_prop.attach_to_controller(global_controllers.get_controller(frames_count, frames_interval)) + gameobject.with_animation(anim_prop) # todo + + # light + if tile_properties.has_light_effect(): + le = tile_properties.light_effect + light_prop = p.LightSourceProperty(sprite_property.rect, le.relative_position, le.strength, le.color, le.active) + gameobject.with_light_source(light_prop) + + self.world.add_game_object(gameobject, dst) + return gameobject + + def build_elevation(self, elevation): + map_data = loader.maps[self.map_name] + for idy, stack_row in enumerate(elevation.stack.items): + for idx, stack_items in enumerate(stack_row): + for item in stack_items: + item_x = idx * map_data.tile_size[0] + item_y = idy * map_data.tile_size[1] + go = self.new_tile(item, (item_x, item_y)) # todo + # self.world.floor.append(go) + # print(loader.decode_local_index(self.map_name, item)) + + def build_map(self): + map_data = loader.maps[self.map_name] + # print(map_data) + elevation_0 = map_data.elevations[0] + print(elevation_0) + self.build_elevation(elevation_0) + + +class WorldLoader: @staticmethod def load_test_map(world): # todo better but still bad, move out to database - # image = pygame.image.load('./data/graphics/floor.png').convert_alpha() - - floor_data = WorldLoader.load_csv_map('./data/map/floor.csv') - details_data = WorldLoader.load_csv_map('./data/map/borders.csv') - limit_data = WorldLoader.load_csv_map('./data/map/limit.csv') - objects_data = WorldLoader.load_csv_map('./data/map/limit.csv') - - # floor - for row_idx, row in enumerate(floor_data): - for col_idx, col in enumerate(row): - x = col_idx * TILESIZE - y = row_idx * TILESIZE - dimension = (TILESIZE, TILESIZE) - idx = int(col) - floor_tile = GameObject() - # todo indicate tile is animated, some need for metadata 😒 - if idx == 0: - image = loader.water_image - else: - image = loader.floor_image - sprite_prop = SpriteProperty(image, world, (x, y), dimensions=dimension, visible=True) - floor_tile.with_sprite(sprite_prop) - - if idx == 0: - anim_prop = AnimationProperty(sprite_prop, running=True, looping=True) - anim_prop.columns_count = 2 - floor_tile.with_animation(anim_prop) - else: - # todo add columns cout to sprite - sprite_prop.clip_rect.x = (idx % 8) * TILESIZE - sprite_prop.clip_rect.y = (idx // 8) * TILESIZE - - world.floor.append(floor_tile) - - # trees - if idx == 1: - if random.random() < 0.23: - idx_tree = random.randint(0,2) - object_tile = GameObject() - sprite_prop = SpriteProperty(loader.objects, world, (x, y), dimensions=dimension, visible=True, stack_layer=2) - sprite_prop.clip_rect.x = (idx_tree % 8) * TILESIZE - sprite_prop.clip_rect.y = (idx_tree // 8) * TILESIZE - coll_prop = CollisionProperty(sprite_prop.rect, world) - object_tile.with_sprite(sprite_prop).with_collision(coll_prop) - world.entities.append(object_tile) - - - - # details - for row_idx, row in enumerate(details_data): - for col_idx, col in enumerate(row): - x = col_idx * TILESIZE - y = row_idx * TILESIZE - dimension = (TILESIZE, TILESIZE) - idx = int(col) - if idx == -1: - continue - detail_tile = GameObject() - sprite_prop = SpriteProperty(loader.floor_borders, world, (x, y), dimensions=dimension, visible=True, stack_layer=1) - sprite_prop.clip_rect.x = (idx % 8) * TILESIZE - sprite_prop.clip_rect.y = (idx // 8) * TILESIZE - detail_tile.with_sprite(sprite_prop) - world.floor_details.append(detail_tile) - - #objects - for row_idx, row in enumerate(objects_data): - for col_idx, col in enumerate(row): - x = col_idx * TILESIZE - y = row_idx * TILESIZE - dimension = (TILESIZE, TILESIZE) - idx = int(col) - if idx > -1 and idx != 3: - object_tile = GameObject() - sprite_prop = SpriteProperty(loader.objects, world, (x, y), dimensions=dimension, visible=True, stack_layer=2) - sprite_prop.clip_rect.x = (idx % 8) * TILESIZE - sprite_prop.clip_rect.y = (idx // 8) * TILESIZE - object_tile.with_sprite(sprite_prop) - world.entities.append(object_tile) - - - # limits - for row_idx, row in enumerate(limit_data): - for col_idx, col in enumerate(row): - x = col_idx * TILESIZE - y = row_idx * TILESIZE - if col != '-1': - # floor_tile.properties[Props.SPRITE].rect - limit_rect = pygame.Rect((x, y), (TILESIZE, TILESIZE)) - limit_block = GameObject().with_collision(CollisionProperty(limit_rect, world)) - world.limit_blocks.append(limit_block) - - player_sprite = SpriteProperty(loader.player, world, (590, 440), (TILESIZE, TILESIZE), visible=True, stack_layer=2) - player_coll = CollisionProperty(player_sprite.rect, world) - player_moving = MovingProperty(player_coll, world) - player_wsad = WSADDriven(player_moving) - anim_prop = MovementAnimationProperty(player_sprite, player_moving) - # anim_prop.next_frame() - player = GameObject().with_sprite(player_sprite).with_moving(player_moving).with_wsad( - player_wsad).with_collision(player_coll).with_animation(anim_prop) - world.entities.append(player) - world.player = player + factory = TileFactory('testmap', world) + factory.build_map()