{"action":"created","comment":{"url":"https://api.github.com/repos/scummvm/scummvm/pulls/comments/74702086","id":74702086,"diff_hunk":"@@ -0,0 +1,394 @@\n+/* ScummVM - Graphic Adventure Engine\n+ *\n+ * ScummVM is the legal property of its developers, whose names\n+ * are too numerous to list here. Please refer to the COPYRIGHT\n+ * file distributed with this source distribution.\n+ *\n+ * This program is free software; you can redistribute it and/or\n+ * modify it under the terms of the GNU General Public License\n+ * as published by the Free Software Foundation; either version 2\n+ * of the License, or (at your option) any later version.\n+ *\n+ * This program is distributed in the hope that it will be useful,\n+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n+ * GNU General Public License for more details.\n+ *\n+ * You should have received a copy of the GNU General Public License\n+ * along with this program; if not, write to the Free Software\n+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n+ *\n+ */\n+\n+#include \"common/rational.h\"        // for Rational, operator*\n+#include \"common/system.h\"          // for OSystem, g_system\n+#include \"graphics/cursorman.h\"     // for CursorMan\n+#include \"sci/graphics/celobj32.h\"  // for CelObjView, CelInfo32, Ratio\n+#include \"sci/graphics/cursor32.h\"\n+#include \"sci/graphics/frameout.h\"  // for GfxFrameout\n+\n+namespace Sci {\n+\n+GfxCursor32::GfxCursor32() :\n+\t_hideCount(0),\n+\t_position(0, 0),\n+\t_writeToVMAP(false) {\n+\tCursorMan.showMouse(false);\n+}\n+\n+void GfxCursor32::init(const Buffer &vmap) {\n+\t_vmap = vmap;\n+\t_vmapRegion.rect = Common::Rect(_vmap.screenWidth, _vmap.screenHeight);\n+\t_vmapRegion.data = (byte *)_vmap.getPixels();\n+\t_restrictedArea = _vmapRegion.rect;\n+}\n+\n+GfxCursor32::~GfxCursor32() {\n+\tCursorMan.showMouse(true);\n+\tfree(_cursor.data);\n+\tfree(_cursorBack.data);\n+\tfree(_drawBuff1.data);\n+\tfree(_drawBuff2.data);\n+\tfree(_savedVmapRegion.data);\n+}\n+\n+void GfxCursor32::hide() {\n+\tif (_hideCount++) {\n+\t\treturn;\n+\t}\n+\n+\tif (!_cursorBack.rect.isEmpty()) {\n+\t\tdrawToHardware(_cursorBack);\n+\t}\n+}\n+\n+void GfxCursor32::revealCursor() {\n+\t_cursorBack.rect = _cursor.rect;\n+\t_cursorBack.rect.clip(_vmapRegion.rect);\n+\tif (_cursorBack.rect.isEmpty()) {\n+\t\treturn;\n+\t}\n+\n+\treadVideo(_cursorBack);\n+\t_drawBuff1.rect = _cursor.rect;\n+\tcopy(_drawBuff1, _cursorBack);\n+\tpaint(_drawBuff1, _cursor);\n+\tdrawToHardware(_drawBuff1);\n+}\n+\n+void GfxCursor32::paint(DrawRegion &target, const DrawRegion &source) {\n+\tif (source.rect.isEmpty()) {\n+\t\treturn;\n+\t}\n+\n+\tCommon::Rect drawRect(source.rect);\n+\tdrawRect.clip(target.rect);\n+\tif (drawRect.isEmpty()) {\n+\t\treturn;\n+\t}\n+\n+\tconst int16 sourceXOffset = drawRect.left - source.rect.left;\n+\tconst int16 sourceYOffset = drawRect.top - source.rect.top;\n+\tconst int16 drawRectWidth = drawRect.width();\n+\tconst int16 drawRectHeight = drawRect.height();\n+\n+\tbyte *targetPixel = target.data + ((drawRect.top - target.rect.top) * target.rect.width()) + (drawRect.left - target.rect.left);\n+\tconst byte *sourcePixel = source.data + (sourceYOffset * source.rect.width()) + sourceXOffset;\n+\tconst uint8 skipColor = source.skipColor;\n+\n+\tconst int16 sourceStride = source.rect.width() - drawRectWidth;\n+\tconst int16 targetStride = target.rect.width() - drawRectWidth;\n+\n+\tfor (int16 y = 0; y < drawRectHeight; ++y) {\n+\t\tfor (int16 x = 0; x < drawRectWidth; ++x) {\n+\t\t\tif (*sourcePixel != skipColor) {\n+\t\t\t\t*targetPixel = *sourcePixel;\n+\t\t\t}\n+\t\t\t++targetPixel;\n+\t\t\t++sourcePixel;\n+\t\t}\n+\t\tsourcePixel += sourceStride;\n+\t\ttargetPixel += targetStride;\n+\t}\n+}\n+\n+void GfxCursor32::drawToHardware(const DrawRegion &source) {\n+\tCommon::Rect drawRect(source.rect);\n+\tdrawRect.clip(_vmapRegion.rect);\n+\tconst int16 sourceXOffset = drawRect.left - source.rect.left;\n+\tconst int16 sourceYOffset = drawRect.top - source.rect.top;\n+\tbyte *sourcePixel = source.data + (sourceYOffset * source.rect.width()) + sourceXOffset;\n+\n+\tg_system->copyRectToScreen(sourcePixel, source.rect.width(), drawRect.left, drawRect.top, drawRect.width(), drawRect.height());\n+}\n+\n+void GfxCursor32::unhide() {\n+\tif (_hideCount == 0 || --_hideCount) {\n+\t\treturn;\n+\t}\n+\n+\t_cursor.rect.moveTo(_position.x - _hotSpot.x, _position.y - _hotSpot.y);\n+\trevealCursor();\n+}\n+\n+void GfxCursor32::show() {\n+\tif (_hideCount) {\n+\t\t_hideCount = 0;\n+\t\t_cursor.rect.moveTo(_position.x - _hotSpot.x, _position.y - _hotSpot.y);\n+\t\trevealCursor();\n+\t}\n+}\n+\n+void GfxCursor32::setRestrictedArea(const Common::Rect &rect) {\n+\t_restrictedArea = rect;\n+\n+\tconst int16 screenWidth = g_sci->_gfxFrameout->getCurrentBuffer().screenWidth;\n+\tconst int16 screenHeight = g_sci->_gfxFrameout->getCurrentBuffer().screenHeight;\n+\tconst int16 scriptWidth = g_sci->_gfxFrameout->getCurrentBuffer().scriptWidth;\n+\tconst int16 scriptHeight = g_sci->_gfxFrameout->getCurrentBuffer().scriptHeight;\n+\n+\tmulru(_restrictedArea, Ratio(screenWidth, scriptWidth), Ratio(screenHeight, scriptHeight), 0);\n+\n+\tif (_position.x < rect.left) {\n+\t\t_position.x = rect.left;\n+\t}\n+\tif (_position.x >= rect.right) {\n+\t\t_position.x = rect.right - 1;\n+\t}\n+\tif (_position.y < rect.top) {\n+\t\t_position.y = rect.top;\n+\t}\n+\tif (_position.y >= rect.bottom) {\n+\t\t_position.y = rect.bottom - 1;\n+\t}\n+\n+\tg_system->warpMouse(_position.x, _position.y);\n+}\n+\n+void GfxCursor32::clearRestrictedArea() {\n+\t_restrictedArea = _vmapRegion.rect;\n+}\n+\n+void GfxCursor32::setView(const GuiResourceId viewId, const int16 loopNo, const int16 celNo) {\n+\thide();\n+\n+\t_cursorInfo.resourceId = viewId;\n+\t_cursorInfo.loopNo = loopNo;\n+\t_cursorInfo.celNo = celNo;\n+\n+\tif (viewId != -1) {\n+\t\tCelObjView view(viewId, loopNo, celNo);\n+","path":"engines/sci/graphics/cursor32.cpp","position":181,"original_position":181,"commit_id":"d282df63d8cc074ca173c1e88e4f22c3c7b046f5","original_commit_id":"40bcff1a3f6242f34fd3549ae3314c7583aca87a","user":{"login":"m-kiewitz","id":5464945,"avatar_url":"https://avatars.githubusercontent.com/u/5464945?v=3","gravatar_id":"","url":"https://api.github.com/users/m-kiewitz","html_url":"https://github.com/m-kiewitz","followers_url":"https://api.github.com/users/m-kiewitz/followers","following_url":"https://api.github.com/users/m-kiewitz/following{/other_user}","gists_url":"https://api.github.com/users/m-kiewitz/gists{/gist_id}","starred_url":"https://api.github.com/users/m-kiewitz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/m-kiewitz/subscriptions","organizations_url":"https://api.github.com/users/m-kiewitz/orgs","repos_url":"https://api.github.com/users/m-kiewitz/repos","events_url":"https://api.github.com/users/m-kiewitz/events{/privacy}","received_events_url":"https://api.github.com/users/m-kiewitz/received_events","type":"User","site_admin":false},"body":"Ehm, SSCI checked basically nothing at all. That's not acceptable and it's very bad.\r\nIs it a problem to error() out in such case? Or at the very least skip over the code?\r\n\r\nSSCI also allowed the scripts to use uninitialized variables. And it didn't check kernel call parameters. SSCI also liked to crash a lot because of all those things. We could have been fine with that, but instead we did it properly and detect such issues. And that's why SCI games, at least the SCI16 ones normally run better in ScummVM than when using the original interpreter. ScummVM crashing is not really acceptable, especially when it's avoidable with a simple error().","created_at":"2016-08-14T13:55:59Z","updated_at":"2016-08-14T13:55:59Z","html_url":"https://github.com/scummvm/scummvm/pull/804#discussion_r74702086","pull_request_url":"https://api.github.com/repos/scummvm/scummvm/pulls/804","_links":{"self":{"href":"https://api.github.com/repos/scummvm/scummvm/pulls/comments/74702086"},"html":{"href":"https://github.com/scummvm/scummvm/pull/804#discussion_r74702086"},"pull_request":{"href":"https://api.github.com/repos/scummvm/scummvm/pulls/804"}}},"pull_request":{"url":"https://api.github.com/repos/scummvm/scummvm/pulls/804","id":81136782,"html_url":"https://github.com/scummvm/scummvm/pull/804","diff_url":"https://github.com/scummvm/scummvm/pull/804.diff","patch_url":"https://github.com/scummvm/scummvm/pull/804.patch","issue_url":"https://api.github.com/repos/scummvm/scummvm/issues/804","number":804,"state":"open","locked":false,"title":"SCI32: Remove GfxScreen from SCI32","user":{"login":"csnover","id":229244,"avatar_url":"https://avatars.githubusercontent.com/u/229244?v=3","gravatar_id":"","url":"https://api.github.com/users/csnover","html_url":"https://github.com/csnover","followers_url":"https://api.github.com/users/csnover/followers","following_url":"https://api.github.com/users/csnover/following{/other_user}","gists_url":"https://api.github.com/users/csnover/gists{/gist_id}","starred_url":"https://api.github.com/users/csnover/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/csnover/subscriptions","organizations_url":"https://api.github.com/users/csnover/orgs","repos_url":"https://api.github.com/users/csnover/repos","events_url":"https://api.github.com/users/csnover/events{/privacy}","received_events_url":"https://api.github.com/users/csnover/received_events","type":"User","site_admin":false},"body":"This PR removes the last remaining bits of GfxScreen from SCI32, so graphics for SCI16 games can be handled exclusively by GfxScreen and graphics for SCI32 games are handled exclusively by GfxFrameout.\r\n\r\nIt also includes updated mouse implementation that fixes a few bugs:\r\n\r\n1. Mouse cursor is now warped to the correct place;\r\n2. Games that mix low-resolution and high-resolution cursor views will now only upscale the low-resolution cursors (based on a heuristic of the size of the view);\r\n3. Mouse cursor is now correctly bound to the restricted rectangle, so views don’t bounce when the edges of the restricted rectangle are reached. This also fixes the binoculars in GK1.","created_at":"2016-08-12T15:21:25Z","updated_at":"2016-08-14T13:55:59Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5ca42679c4860343aa6298cf0940a1e758711250","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/scummvm/scummvm/pulls/804/commits","review_comments_url":"https://api.github.com/repos/scummvm/scummvm/pulls/804/comments","review_comment_url":"https://api.github.com/repos/scummvm/scummvm/pulls/comments{/number}","comments_url":"https://api.github.com/repos/scummvm/scummvm/issues/804/comments","statuses_url":"https://api.github.com/repos/scummvm/scummvm/statuses/d282df63d8cc074ca173c1e88e4f22c3c7b046f5","head":{"label":"csnover:sci32-kSetCursor","ref":"sci32-kSetCursor","sha":"d282df63d8cc074ca173c1e88e4f22c3c7b046f5","user":{"login":"csnover","id":229244,"avatar_url":"https://avatars.githubusercontent.com/u/229244?v=3","gravatar_id":"","url":"https://api.github.com/users/csnover","html_url":"https://github.com/csnover","followers_url":"https://api.github.com/users/csnover/followers","following_url":"https://api.github.com/users/csnover/following{/other_user}","gists_url":"https://api.github.com/users/csnover/gists{/gist_id}","starred_url":"https://api.github.com/users/csnover/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/csnover/subscriptions","organizations_url":"https://api.github.com/users/csnover/orgs","repos_url":"https://api.github.com/users/csnover/repos","events_url":"https://api.github.com/users/csnover/events{/privacy}","received_events_url":"https://api.github.com/users/csnover/received_events","type":"User","site_admin":false},"repo":{"id":40680302,"name":"scummvm","full_name":"csnover/scummvm","owner":{"login":"csnover","id":229244,"avatar_url":"https://avatars.githubusercontent.com/u/229244?v=3","gravatar_id":"","url":"https://api.github.com/users/csnover","html_url":"https://github.com/csnover","followers_url":"https://api.github.com/users/csnover/followers","following_url":"https://api.github.com/users/csnover/following{/other_user}","gists_url":"https://api.github.com/users/csnover/gists{/gist_id}","starred_url":"https://api.github.com/users/csnover/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/csnover/subscriptions","organizations_url":"https://api.github.com/users/csnover/orgs","repos_url":"https://api.github.com/users/csnover/repos","events_url":"https://api.github.com/users/csnover/events{/privacy}","received_events_url":"https://api.github.com/users/csnover/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/csnover/scummvm","description":"ScummVM main repository","fork":true,"url":"https://api.github.com/repos/csnover/scummvm","forks_url":"https://api.github.com/repos/csnover/scummvm/forks","keys_url":"https://api.github.com/repos/csnover/scummvm/keys{/key_id}","collaborators_url":"https://api.github.com/repos/csnover/scummvm/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/csnover/scummvm/teams","hooks_url":"https://api.github.com/repos/csnover/scummvm/hooks","issue_events_url":"https://api.github.com/repos/csnover/scummvm/issues/events{/number}","events_url":"https://api.github.com/repos/csnover/scummvm/events","assignees_url":"https://api.github.com/repos/csnover/scummvm/assignees{/user}","branches_url":"https://api.github.com/repos/csnover/scummvm/branches{/branch}","tags_url":"https://api.github.com/repos/csnover/scummvm/tags","blobs_url":"https://api.github.com/repos/csnover/scummvm/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/csnover/scummvm/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/csnover/scummvm/git/refs{/sha}","trees_url":"https://api.github.com/repos/csnover/scummvm/git/trees{/sha}","statuses_url":"https://api.github.com/repos/csnover/scummvm/statuses/{sha}","languages_url":"https://api.github.com/repos/csnover/scummvm/languages","stargazers_url":"https://api.github.com/repos/csnover/scummvm/stargazers","contributors_url":"https://api.github.com/repos/csnover/scummvm/contributors","subscribers_url":"https://api.github.com/repos/csnover/scummvm/subscribers","subscription_url":"https://api.github.com/repos/csnover/scummvm/subscription","commits_url":"https://api.github.com/repos/csnover/scummvm/commits{/sha}","git_commits_url":"https://api.github.com/repos/csnover/scummvm/git/commits{/sha}","comments_url":"https://api.github.com/repos/csnover/scummvm/comments{/number}","issue_comment_url":"https://api.github.com/repos/csnover/scummvm/issues/comments{/number}","contents_url":"https://api.github.com/repos/csnover/scummvm/contents/{+path}","compare_url":"https://api.github.com/repos/csnover/scummvm/compare/{base}...{head}","merges_url":"https://api.github.com/repos/csnover/scummvm/merges","archive_url":"https://api.github.com/repos/csnover/scummvm/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/csnover/scummvm/downloads","issues_url":"https://api.github.com/repos/csnover/scummvm/issues{/number}","pulls_url":"https://api.github.com/repos/csnover/scummvm/pulls{/number}","milestones_url":"https://api.github.com/repos/csnover/scummvm/milestones{/number}","notifications_url":"https://api.github.com/repos/csnover/scummvm/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/csnover/scummvm/labels{/name}","releases_url":"https://api.github.com/repos/csnover/scummvm/releases{/id}","deployments_url":"https://api.github.com/repos/csnover/scummvm/deployments","created_at":"2015-08-13T20:29:41Z","updated_at":"2016-02-16T22:52:47Z","pushed_at":"2016-08-14T03:09:55Z","git_url":"git://github.com/csnover/scummvm.git","ssh_url":"git@github.com:csnover/scummvm.git","clone_url":"https://github.com/csnover/scummvm.git","svn_url":"https://github.com/csnover/scummvm","homepage":"http://www.scummvm.org/","size":198730,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":1,"forks":1,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"scummvm:master","ref":"master","sha":"14cdfa3f58455c818691eb94d3a3de5b0dda8696","user":{"login":"scummvm","id":365181,"avatar_url":"https://avatars.githubusercontent.com/u/365181?v=3","gravatar_id":"","url":"https://api.github.com/users/scummvm","html_url":"https://github.com/scummvm","followers_url":"https://api.github.com/users/scummvm/followers","following_url":"https://api.github.com/users/scummvm/following{/other_user}","gists_url":"https://api.github.com/users/scummvm/gists{/gist_id}","starred_url":"https://api.github.com/users/scummvm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scummvm/subscriptions","organizations_url":"https://api.github.com/users/scummvm/orgs","repos_url":"https://api.github.com/users/scummvm/repos","events_url":"https://api.github.com/users/scummvm/events{/privacy}","received_events_url":"https://api.github.com/users/scummvm/received_events","type":"Organization","site_admin":false},"repo":{"id":1358940,"name":"scummvm","full_name":"scummvm/scummvm","owner":{"login":"scummvm","id":365181,"avatar_url":"https://avatars.githubusercontent.com/u/365181?v=3","gravatar_id":"","url":"https://api.github.com/users/scummvm","html_url":"https://github.com/scummvm","followers_url":"https://api.github.com/users/scummvm/followers","following_url":"https://api.github.com/users/scummvm/following{/other_user}","gists_url":"https://api.github.com/users/scummvm/gists{/gist_id}","starred_url":"https://api.github.com/users/scummvm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scummvm/subscriptions","organizations_url":"https://api.github.com/users/scummvm/orgs","repos_url":"https://api.github.com/users/scummvm/repos","events_url":"https://api.github.com/users/scummvm/events{/privacy}","received_events_url":"https://api.github.com/users/scummvm/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/scummvm/scummvm","description":"ScummVM main repository","fork":false,"url":"https://api.github.com/repos/scummvm/scummvm","forks_url":"https://api.github.com/repos/scummvm/scummvm/forks","keys_url":"https://api.github.com/repos/scummvm/scummvm/keys{/key_id}","collaborators_url":"https://api.github.com/repos/scummvm/scummvm/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/scummvm/scummvm/teams","hooks_url":"https://api.github.com/repos/scummvm/scummvm/hooks","issue_events_url":"https://api.github.com/repos/scummvm/scummvm/issues/events{/number}","events_url":"https://api.github.com/repos/scummvm/scummvm/events","assignees_url":"https://api.github.com/repos/scummvm/scummvm/assignees{/user}","branches_url":"https://api.github.com/repos/scummvm/scummvm/branches{/branch}","tags_url":"https://api.github.com/repos/scummvm/scummvm/tags","blobs_url":"https://api.github.com/repos/scummvm/scummvm/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/scummvm/scummvm/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/scummvm/scummvm/git/refs{/sha}","trees_url":"https://api.github.com/repos/scummvm/scummvm/git/trees{/sha}","statuses_url":"https://api.github.com/repos/scummvm/scummvm/statuses/{sha}","languages_url":"https://api.github.com/repos/scummvm/scummvm/languages","stargazers_url":"https://api.github.com/repos/scummvm/scummvm/stargazers","contributors_url":"https://api.github.com/repos/scummvm/scummvm/contributors","subscribers_url":"https://api.github.com/repos/scummvm/scummvm/subscribers","subscription_url":"https://api.github.com/repos/scummvm/scummvm/subscription","commits_url":"https://api.github.com/repos/scummvm/scummvm/commits{/sha}","git_commits_url":"https://api.github.com/repos/scummvm/scummvm/git/commits{/sha}","comments_url":"https://api.github.com/repos/scummvm/scummvm/comments{/number}","issue_comment_url":"https://api.github.com/repos/scummvm/scummvm/issues/comments{/number}","contents_url":"https://api.github.com/repos/scummvm/scummvm/contents/{+path}","compare_url":"https://api.github.com/repos/scummvm/scummvm/compare/{base}...{head}","merges_url":"https://api.github.com/repos/scummvm/scummvm/merges","archive_url":"https://api.github.com/repos/scummvm/scummvm/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/scummvm/scummvm/downloads","issues_url":"https://api.github.com/repos/scummvm/scummvm/issues{/number}","pulls_url":"https://api.github.com/repos/scummvm/scummvm/pulls{/number}","milestones_url":"https://api.github.com/repos/scummvm/scummvm/milestones{/number}","notifications_url":"https://api.github.com/repos/scummvm/scummvm/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/scummvm/scummvm/labels{/name}","releases_url":"https://api.github.com/repos/scummvm/scummvm/releases{/id}","deployments_url":"https://api.github.com/repos/scummvm/scummvm/deployments","created_at":"2011-02-12T15:50:57Z","updated_at":"2016-08-10T11:47:24Z","pushed_at":"2016-08-14T12:55:43Z","git_url":"git://github.com/scummvm/scummvm.git","ssh_url":"git@github.com:scummvm/scummvm.git","clone_url":"https://github.com/scummvm/scummvm.git","svn_url":"https://github.com/scummvm/scummvm","homepage":"http://www.scummvm.org/","size":262774,"stargazers_count":637,"watchers_count":637,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":330,"mirror_url":null,"open_issues_count":20,"forks":330,"open_issues":20,"watchers":637,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/scummvm/scummvm/pulls/804"},"html":{"href":"https://github.com/scummvm/scummvm/pull/804"},"issue":{"href":"https://api.github.com/repos/scummvm/scummvm/issues/804"},"comments":{"href":"https://api.github.com/repos/scummvm/scummvm/issues/804/comments"},"review_comments":{"href":"https://api.github.com/repos/scummvm/scummvm/pulls/804/comments"},"review_comment":{"href":"https://api.github.com/repos/scummvm/scummvm/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/scummvm/scummvm/pulls/804/commits"},"statuses":{"href":"https://api.github.com/repos/scummvm/scummvm/statuses/d282df63d8cc074ca173c1e88e4f22c3c7b046f5"}}}}
{"actor":{"display_login":"m-kiewitz"}}