{"action":"closed","issue":{"url":"https://api.github.com/repos/TES3MP/openmw-tes3mp/issues/88","repository_url":"https://api.github.com/repos/TES3MP/openmw-tes3mp","labels_url":"https://api.github.com/repos/TES3MP/openmw-tes3mp/issues/88/labels{/name}","comments_url":"https://api.github.com/repos/TES3MP/openmw-tes3mp/issues/88/comments","events_url":"https://api.github.com/repos/TES3MP/openmw-tes3mp/issues/88/events","html_url":"https://github.com/TES3MP/openmw-tes3mp/issues/88","id":186135125,"number":88,"title":"Player markers cause framelistener errors","user":{"login":"davidcernat","id":3312352,"avatar_url":"https://avatars.githubusercontent.com/u/3312352?v=3","gravatar_id":"","url":"https://api.github.com/users/davidcernat","html_url":"https://github.com/davidcernat","followers_url":"https://api.github.com/users/davidcernat/followers","following_url":"https://api.github.com/users/davidcernat/following{/other_user}","gists_url":"https://api.github.com/users/davidcernat/gists{/gist_id}","starred_url":"https://api.github.com/users/davidcernat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidcernat/subscriptions","organizations_url":"https://api.github.com/users/davidcernat/orgs","repos_url":"https://api.github.com/users/davidcernat/repos","events_url":"https://api.github.com/users/davidcernat/events{/privacy}","received_events_url":"https://api.github.com/users/davidcernat/received_events","type":"User","site_admin":false},"labels":[{"id":409729542,"url":"https://api.github.com/repos/TES3MP/openmw-tes3mp/labels/Bug","name":"Bug","color":"ee0701","default":false}],"state":"closed","locked":false,"assignee":{"login":"davidcernat","id":3312352,"avatar_url":"https://avatars.githubusercontent.com/u/3312352?v=3","gravatar_id":"","url":"https://api.github.com/users/davidcernat","html_url":"https://github.com/davidcernat","followers_url":"https://api.github.com/users/davidcernat/followers","following_url":"https://api.github.com/users/davidcernat/following{/other_user}","gists_url":"https://api.github.com/users/davidcernat/gists{/gist_id}","starred_url":"https://api.github.com/users/davidcernat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidcernat/subscriptions","organizations_url":"https://api.github.com/users/davidcernat/orgs","repos_url":"https://api.github.com/users/davidcernat/repos","events_url":"https://api.github.com/users/davidcernat/events{/privacy}","received_events_url":"https://api.github.com/users/davidcernat/received_events","type":"User","site_admin":false},"assignees":[{"login":"davidcernat","id":3312352,"avatar_url":"https://avatars.githubusercontent.com/u/3312352?v=3","gravatar_id":"","url":"https://api.github.com/users/davidcernat","html_url":"https://github.com/davidcernat","followers_url":"https://api.github.com/users/davidcernat/followers","following_url":"https://api.github.com/users/davidcernat/following{/other_user}","gists_url":"https://api.github.com/users/davidcernat/gists{/gist_id}","starred_url":"https://api.github.com/users/davidcernat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidcernat/subscriptions","organizations_url":"https://api.github.com/users/davidcernat/orgs","repos_url":"https://api.github.com/users/davidcernat/repos","events_url":"https://api.github.com/users/davidcernat/events{/privacy}","received_events_url":"https://api.github.com/users/davidcernat/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/TES3MP/openmw-tes3mp/milestones/3","html_url":"https://github.com/TES3MP/openmw-tes3mp/milestones/0.3.0","labels_url":"https://api.github.com/repos/TES3MP/openmw-tes3mp/milestones/3/labels","id":1895353,"number":3,"title":"0.3.0","description":"","creator":{"login":"GrimKriegor","id":1028205,"avatar_url":"https://avatars.githubusercontent.com/u/1028205?v=3","gravatar_id":"","url":"https://api.github.com/users/GrimKriegor","html_url":"https://github.com/GrimKriegor","followers_url":"https://api.github.com/users/GrimKriegor/followers","following_url":"https://api.github.com/users/GrimKriegor/following{/other_user}","gists_url":"https://api.github.com/users/GrimKriegor/gists{/gist_id}","starred_url":"https://api.github.com/users/GrimKriegor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GrimKriegor/subscriptions","organizations_url":"https://api.github.com/users/GrimKriegor/orgs","repos_url":"https://api.github.com/users/GrimKriegor/repos","events_url":"https://api.github.com/users/GrimKriegor/events{/privacy}","received_events_url":"https://api.github.com/users/GrimKriegor/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":9,"state":"open","created_at":"2016-07-20T22:37:09Z","updated_at":"2016-10-30T14:46:42Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2016-10-30T13:06:03Z","updated_at":"2016-10-30T14:46:42Z","closed_at":"2016-10-30T14:46:42Z","body":"Whenever a player's marker is updated, the following code is run:\r\n\r\n```\r\n    if (gui->mPlayerMarkers.isExistent(marker))\r\n    {\r\n        gui->mPlayerMarkers.deleteMarker(marker);\r\n        marker = gui->CreateMarker(guid);\r\n        gui->mPlayerMarkers.addMarker(marker);\r\n    }\r\n    else\r\n        gui->mPlayerMarkers.addMarker(marker, true);\r\n```\r\n\r\nHowever, the code for the first condition makes no sense at all:\r\n\r\n```\r\nbool PlayerMarkerCollection::isExistent(const ESM::CustomMarker &marker)\r\n{\r\n    return mMarkers.find(marker.mCell) != mMarkers.end();\r\n}\r\n```\r\n\r\nIt doesn't check if a PlayerMarker exists for a particular player, but just if any PlayerMarker exists for that cell. This leads to obvious problems if you have more than 2 people there, as the condition will sometimes return true even for someone who *doesn't* have a PlayerMarker created yet."}}
{"actor":{"display_login":"davidcernat"}}