{"action":"created","issue":{"url":"https://api.github.com/repos/CleverRaven/Cataclysm-DDA/issues/18286","repository_url":"https://api.github.com/repos/CleverRaven/Cataclysm-DDA","labels_url":"https://api.github.com/repos/CleverRaven/Cataclysm-DDA/issues/18286/labels{/name}","comments_url":"https://api.github.com/repos/CleverRaven/Cataclysm-DDA/issues/18286/comments","events_url":"https://api.github.com/repos/CleverRaven/Cataclysm-DDA/issues/18286/events","html_url":"https://github.com/CleverRaven/Cataclysm-DDA/pull/18286","id":176381735,"number":18286,"title":"Crafting refactor","user":{"login":"mugling","id":12238606,"avatar_url":"https://avatars.githubusercontent.com/u/12238606?v=3","gravatar_id":"","url":"https://api.github.com/users/mugling","html_url":"https://github.com/mugling","followers_url":"https://api.github.com/users/mugling/followers","following_url":"https://api.github.com/users/mugling/following{/other_user}","gists_url":"https://api.github.com/users/mugling/gists{/gist_id}","starred_url":"https://api.github.com/users/mugling/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mugling/subscriptions","organizations_url":"https://api.github.com/users/mugling/orgs","repos_url":"https://api.github.com/users/mugling/repos","events_url":"https://api.github.com/users/mugling/events{/privacy}","received_events_url":"https://api.github.com/users/mugling/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/CleverRaven/Cataclysm-DDA/labels/Priority","name":"Priority","color":"ededed"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":40,"created_at":"2016-09-12T13:56:21Z","updated_at":"2016-09-22T23:51:28Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/CleverRaven/Cataclysm-DDA/pulls/18286","html_url":"https://github.com/CleverRaven/Cataclysm-DDA/pull/18286","diff_url":"https://github.com/CleverRaven/Cataclysm-DDA/pull/18286.diff","patch_url":"https://github.com/CleverRaven/Cataclysm-DDA/pull/18286.patch"},"body":"The crafting and recipe code is horrible:\r\n* Load order is byzantine and validation occurs at multiple sites in the code\r\n* When profiled `recipe_dictionary` is inefficient due to usage of `std::list` and pointer indirection\r\n* JSON recipes involve excessive and error-prone duplication\r\n* Extensive use of pointers and negligible use of `const`\r\n\r\nRefactoring:\r\n\r\n- [x] Split `recipe` from `uncraft`\r\n- [X] Support `strict` mode parsing (needs JSON cleanup in part 2)\r\n- [x] Support `copy-from` syntax for `recipe`\r\n- [X] Move all checks for `recipe` validity to `recipe_dictionary::finalize`\r\n- [X] Refactor `recipe_dictionary` to `std::map`\r\n- [X] Refactor `recipe *` to `recipe &` (mostly)"},"comment":{"url":"https://api.github.com/repos/CleverRaven/Cataclysm-DDA/issues/comments/249060970","html_url":"https://github.com/CleverRaven/Cataclysm-DDA/pull/18286#issuecomment-249060970","issue_url":"https://api.github.com/repos/CleverRaven/Cataclysm-DDA/issues/18286","id":249060970,"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},"created_at":"2016-09-22T23:51:28Z","updated_at":"2016-09-22T23:51:28Z","body":"Didn't manage to get a non-segfaulting build yet. I'll probably need to review the code manually rather than relying on debugger."}}
{"actor":{"display_login":"Coolthulhu"}}