{"action":"created","issue":{"url":"https://api.github.com/repos/CleverRaven/Cataclysm-DDA/issues/12072","labels_url":"https://api.github.com/repos/CleverRaven/Cataclysm-DDA/issues/12072/labels{/name}","comments_url":"https://api.github.com/repos/CleverRaven/Cataclysm-DDA/issues/12072/comments","events_url":"https://api.github.com/repos/CleverRaven/Cataclysm-DDA/issues/12072/events","html_url":"https://github.com/CleverRaven/Cataclysm-DDA/pull/12072","id":69418394,"number":12072,"title":"Allow looking up/down without changing abs_sub.z","user":{"login":"Coolthulhu","id":1878860,"avatar_url":"https://avatars.githubusercontent.com/u/1878860?v=3","gravatar_id":"","url":"https://api.github.com/users/Coolthulhu","html_url":"https://github.com/Coolthulhu","followers_url":"https://api.github.com/users/Coolthulhu/followers","following_url":"https://api.github.com/users/Coolthulhu/following{/other_user}","gists_url":"https://api.github.com/users/Coolthulhu/gists{/gist_id}","starred_url":"https://api.github.com/users/Coolthulhu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Coolthulhu/subscriptions","organizations_url":"https://api.github.com/users/Coolthulhu/orgs","repos_url":"https://api.github.com/users/Coolthulhu/repos","events_url":"https://api.github.com/users/Coolthulhu/events{/privacy}","received_events_url":"https://api.github.com/users/Coolthulhu/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"BevapDin","id":5095435,"avatar_url":"https://avatars.githubusercontent.com/u/5095435?v=3","gravatar_id":"","url":"https://api.github.com/users/BevapDin","html_url":"https://github.com/BevapDin","followers_url":"https://api.github.com/users/BevapDin/followers","following_url":"https://api.github.com/users/BevapDin/following{/other_user}","gists_url":"https://api.github.com/users/BevapDin/gists{/gist_id}","starred_url":"https://api.github.com/users/BevapDin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BevapDin/subscriptions","organizations_url":"https://api.github.com/users/BevapDin/orgs","repos_url":"https://api.github.com/users/BevapDin/repos","events_url":"https://api.github.com/users/BevapDin/events{/privacy}","received_events_url":"https://api.github.com/users/BevapDin/received_events","type":"User","site_admin":false},"milestone":null,"comments":6,"created_at":"2015-04-19T12:12:22Z","updated_at":"2015-04-20T19:10:56Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/CleverRaven/Cataclysm-DDA/pulls/12072","html_url":"https://github.com/CleverRaven/Cataclysm-DDA/pull/12072","diff_url":"https://github.com/CleverRaven/Cataclysm-DDA/pull/12072.diff","patch_url":"https://github.com/CleverRaven/Cataclysm-DDA/pull/12072.patch"},"body":"Allows viewing z-levels other than the current one without even temporarily changing the abs_sub.z (the \"global\" z-level). This is achieved by starting the game in a z-level world, starting debug mode, looking ('x') and using up/down stairs command.\r\n\r\nAlso rewrote the outside cache building function to address submaps rather than invoking `has_flag` on every single point of the map.\r\n\r\nEvery point of #6818 is fulfilled now. The `map` class is now 3D. Not all usages of it are 3D, but issue is about the map. Not all caches are perfect (lightmap isn't recalculated properly), but this is explicitly not a part of the issue.\r\n\r\nUnless there is something I interpreted differently from the intent:\r\nCloses #6818"},"comment":{"url":"https://api.github.com/repos/CleverRaven/Cataclysm-DDA/issues/comments/94544206","html_url":"https://github.com/CleverRaven/Cataclysm-DDA/pull/12072#issuecomment-94544206","issue_url":"https://api.github.com/repos/CleverRaven/Cataclysm-DDA/issues/12072","id":94544206,"user":{"login":"BevapDin","id":5095435,"avatar_url":"https://avatars.githubusercontent.com/u/5095435?v=3","gravatar_id":"","url":"https://api.github.com/users/BevapDin","html_url":"https://github.com/BevapDin","followers_url":"https://api.github.com/users/BevapDin/followers","following_url":"https://api.github.com/users/BevapDin/following{/other_user}","gists_url":"https://api.github.com/users/BevapDin/gists{/gist_id}","starred_url":"https://api.github.com/users/BevapDin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BevapDin/subscriptions","organizations_url":"https://api.github.com/users/BevapDin/orgs","repos_url":"https://api.github.com/users/BevapDin/repos","events_url":"https://api.github.com/users/BevapDin/events{/privacy}","received_events_url":"https://api.github.com/users/BevapDin/received_events","type":"User","site_admin":false},"created_at":"2015-04-20T19:10:56Z","updated_at":"2015-04-20T19:10:56Z","body":"Some minor issues:\r\n\r\n- When choosing the target for short range teleport, one can now choose a different z-level, but the character is only teleported on the current z-level. This is a bit confusing. I expect this to happen with other code that uses the return value of `game::look_around`.\r\n\r\n- When switching viewed z-level while driving, the game shows a debug message that `game::draw_veh_dir_indicator` can't find the vehicle (because it's on a different z-level, probably needs to call the 3D-version of `veh_at`).\r\n\r\n- During creation of the lightmap (`generate_lightmap`), there is one call to `map::get_vehicles` without parameters, it returns all the vehicles (on any z-level) and applies their light. Having a vehicle with active lights illuminates the below ground just fine.\r\n\r\n- When there is a sound marker somewhere, it is not drawn directly after changing the z-levels, but later when moving horizontally (also sound markers are not 3D at all).\r\n\r\n- Minor flickering, probably caused by calling `refresh_all`, which calls `draw`, which calls `draw_ter` (on the players z-level, not the one I view currently), followed by `draw_ter( lp, true );` which draw the terrain at the correct (currently viewed) z-level.\r\n\r\n- cata_tiles does not draw the cursor if the cursor is centered on the player character (ignoring the view offset as well!), this ignores z-levels (does not draw the cursor when it's directly below/above the character).\r\n\r\nOnce the z-level stuff is complete, the cache updates will be gone and I expect the code blocks for vertical movement of the cursor and for horizontal movement of the cursor to be merged into one and that would get rid of the flickering and draw the footsteps and most of the other issues.\r\n\r\nBeside those minor issues (which don't actually matter much because it's a debug feature, requiring debug mode), this looks good, doesn't crash and is quite useful.\r\n"}}