{"action":"created","comment":{"url":"https://api.github.com/repos/scummvm/scummvm/pulls/comments/52207037","id":52207037,"diff_hunk":"@@ -0,0 +1,534 @@\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+ * MIT License:\n+ *\n+ * Copyright (c) 2009 Alexei Svitkine, Eugene Sandulenko\n+ *\n+ * Permission is hereby granted, free of charge, to any person\n+ * obtaining a copy of this software and associated documentation\n+ * files (the \"Software\"), to deal in the Software without\n+ * restriction, including without limitation the rights to use,\n+ * copy, modify, merge, publish, distribute, sublicense, and/or sell\n+ * copies of the Software, and to permit persons to whom the\n+ * Software is furnished to do so, subject to the following\n+ * conditions:\n+ *\n+ * The above copyright notice and this permission notice shall be\n+ * included in all copies or substantial portions of the Software.\n+ *\n+ * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n+ * OTHER DEALINGS IN THE SOFTWARE.\n+ *\n+ */\n+\n+#include \"graphics/primitives.h\"\n+#include \"wage/wage.h\"\n+#include \"wage/design.h\"\n+\n+namespace Wage {\n+\n+struct plotData {\n+\tGraphics::Surface *surface;\n+\tPatterns *patterns;\n+\tuint fillType;\n+\tint thickness;\n+\n+\tplotData(Graphics::Surface *s, Patterns *p, int f, int t) :\n+\t\tsurface(s), patterns(p), fillType(f), thickness(t) {}\n+};\n+\n+void drawPixel(int x, int y, int color, void *data);\n+void drawPixelPlain(int x, int y, int color, void *data);\n+\n+Design::Design(Common::SeekableReadStream *data) {\n+\t_len = data->readUint16BE() - 2;\n+\t_data = (byte *)malloc(_len);\n+\tdata->read(_data, _len);\n+\n+\t_surface = NULL;\n+}\n+\n+Design::~Design() {\n+\tfree(_data);\n+\tif (_surface && _surface->getPixels())\n+\t\t_surface->free();\n+\tdelete _surface;\n+}\n+\n+void Design::paint(Graphics::Surface *surface, Patterns &patterns, int x, int y) {\n+\tCommon::MemoryReadStream in(_data, _len);\n+\tCommon::Rect r(0, 0, _bounds->width(), _bounds->height());\n+\tbool needRender = false;\n+\n+\tif (_surface == NULL) {\n+\t\t_surface = new Graphics::Surface;\n+\t\t_surface->create(_bounds->width(), _bounds->height(), Graphics::PixelFormat::createFormatCLUT8());\n+\t\t_surface->fillRect(r, kColorGreen);\n+\n+\t\tneedRender = true;\n+\t}\n+\n+#if 0\n+\tplotData pd(_surface, &patterns, 8, 1);\n+\tint x1 = 50, y1 = 50, x2 = 200, y2 = 200, borderThickness = 30;\n+\tCommon::Rect inn(x1-5, y1-5, x2+5, y2+5);\n+\tdrawRoundRect(inn, 6, kColorGray, false, drawPixelPlain, &pd);\n+\n+\tdrawThickLine(x1, y1, x2-borderThickness, y1, borderThickness, kColorBlack, drawPixel, &pd);\n+\tdrawThickLine(x2-borderThickness, y1, x2-borderThickness, y2, borderThickness, kColorBlack, drawPixel, &pd);\n+\tdrawThickLine(x2-borderThickness, y2-borderThickness, x1, y2-borderThickness, borderThickness, kColorBlack, drawPixel, &pd);\n+\tdrawThickLine(x1, y2-borderThickness, x1, y1, borderThickness, kColorBlack, drawPixel, &pd);\n+\tdrawThickLine(x2+10, y2+10, x2+100, y2+100, borderThickness, kColorBlack, drawPixel, &pd);\n+\n+\tg_system->copyRectToScreen(_surface->getPixels(), _surface->pitch, 0, 0, _surface->w, _surface->h);\n+\n+\twhile (true) {\n+\t\t((WageEngine *)g_engine)->processEvents();\n+\t\tg_system->updateScreen();\n+\t\tg_system->delayMillis(50);\n+\t}\n+\treturn;\n+#endif\n+\n+\twhile (needRender) {\n+\t\tbyte fillType = in.readByte();\n+\t\tbyte borderThickness = in.readByte();\n+\t\tbyte borderFillType = in.readByte();\n+\t\tint type = in.readByte();\n+\n+\t\tif (in.eos())\n+\t\t\tbreak;\n+\n+\t\tdebug(8, \"fill: %d borderFill: %d border: %d type: %d\", fillType, borderFillType, borderThickness, type);\n+\t\tswitch (type) {\n+\t\tcase 4:\n+\t\t\tdrawRect(_surface, in, patterns, fillType, borderThickness, borderFillType);\n+\t\t\tbreak;\n+\t\tcase 8:\n+\t\t\tdrawRoundRect(_surface, in, patterns, fillType, borderThickness, borderFillType);\n+\t\t\tbreak;\n+\t\tcase 12:\n+\t\t\tdrawOval(_surface, in, patterns, fillType, borderThickness, borderFillType);\n+\t\t\tbreak;\n+\t\tcase 16:\n+\t\tcase 20:\n+\t\t\tdrawPolygon(_surface, in, patterns, fillType, borderThickness, borderFillType);\n+\t\t\tbreak;\n+\t\tcase 24:\n+\t\t\tdrawBitmap(_surface, in);\n+\t\t\tbreak;\n+\t\tdefault:\n+\t\t\twarning(\"Unknown type => %d\", type);\n+\t\t\tbreak;\n+\t\t}\n+\n+\t\t//g_system->copyRectToScreen(_surface->getPixels(), _surface->pitch, 0, 0, _surface->w, _surface->h);\n+\t\t//((WageEngine *)g_engine)->processEvents();\n+\t\t//g_system->updateScreen();\n+\t\t//g_system->delayMillis(500);\n+\t}\n+\n+\tconst int padding = 3;\n+\tfor (int i = padding; i < _bounds->height() - 2 * padding; i++) {\n+\t\tconst byte *src = (const byte *)_surface->getBasePtr(padding, i);\n+\t\tbyte *dst = (byte *)surface->getBasePtr(x + padding, y+i);\n+\t\tfor (int j = padding; j < _bounds->width() - 2 * padding; j++) {\n+\t\t\tif (*src != kColorGreen)\n+\t\t\t\t*dst = *src;\n+\t\t\tsrc++;\n+\t\t\tdst++;\n+\t\t}\n+\t}\n+}\n+\n+bool Design::isPointOpaque(int x, int y) {\n+\tif (_surface == NULL)\n+\t\terror(\"Surface is null\");\n+\n+\tbyte pixel = ((byte *)_surface->getBasePtr(x, y))[0];\n+\n+\treturn pixel != kColorGreen;\n+}\n+\n+void drawPixel(int x, int y, int color, void *data) {\n+\tplotData *p = (plotData *)data;\n+\n+\tif (p->fillType > p->patterns->size())\n+\t\treturn;\n+\n+\tbyte *pat = p->patterns->operator[](p->fillType - 1);\n+\n+\tif (p->thickness == 1) {\n+\t\tif (x >= 0 && x < p->surface->w && y >= 0 && y < p->surface->h) {\n+\t\t\t*((byte *)p->surface->getBasePtr(x, y)) =\n+\t\t\t\t(pat[y % 8] & (1 << (7 - x % 8))) ?","path":"engines/wage/design.cpp","position":188,"original_position":188,"commit_id":"10266fea44733cf562ce33a01145cd4b76ea28c9","original_commit_id":"10266fea44733cf562ce33a01145cd4b76ea28c9","user":{"login":"wjp","id":327756,"avatar_url":"https://avatars.githubusercontent.com/u/327756?v=3","gravatar_id":"","url":"https://api.github.com/users/wjp","html_url":"https://github.com/wjp","followers_url":"https://api.github.com/users/wjp/followers","following_url":"https://api.github.com/users/wjp/following{/other_user}","gists_url":"https://api.github.com/users/wjp/gists{/gist_id}","starred_url":"https://api.github.com/users/wjp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wjp/subscriptions","organizations_url":"https://api.github.com/users/wjp/orgs","repos_url":"https://api.github.com/users/wjp/repos","events_url":"https://api.github.com/users/wjp/events{/privacy}","received_events_url":"https://api.github.com/users/wjp/received_events","type":"User","site_admin":false},"body":"These %8's will produce suboptimal code if optimizations are disabled since x and y are signed.","created_at":"2016-02-08T18:42:51Z","updated_at":"2016-02-08T18:42:51Z","html_url":"https://github.com/scummvm/scummvm/pull/658#discussion_r52207037","pull_request_url":"https://api.github.com/repos/scummvm/scummvm/pulls/658","_links":{"self":{"href":"https://api.github.com/repos/scummvm/scummvm/pulls/comments/52207037"},"html":{"href":"https://github.com/scummvm/scummvm/pull/658#discussion_r52207037"},"pull_request":{"href":"https://api.github.com/repos/scummvm/scummvm/pulls/658"}}},"pull_request":{"url":"https://api.github.com/repos/scummvm/scummvm/pulls/658","id":57823094,"html_url":"https://github.com/scummvm/scummvm/pull/658","diff_url":"https://github.com/scummvm/scummvm/pull/658.diff","patch_url":"https://github.com/scummvm/scummvm/pull/658.patch","issue_url":"https://api.github.com/repos/scummvm/scummvm/issues/658","number":658,"state":"open","locked":false,"title":"WAGE: New Engine","user":{"login":"sev-","id":365188,"avatar_url":"https://avatars.githubusercontent.com/u/365188?v=3","gravatar_id":"","url":"https://api.github.com/users/sev-","html_url":"https://github.com/sev-","followers_url":"https://api.github.com/users/sev-/followers","following_url":"https://api.github.com/users/sev-/following{/other_user}","gists_url":"https://api.github.com/users/sev-/gists{/gist_id}","starred_url":"https://api.github.com/users/sev-/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sev-/subscriptions","organizations_url":"https://api.github.com/users/sev-/orgs","repos_url":"https://api.github.com/users/sev-/repos","events_url":"https://api.github.com/users/sev-/events{/privacy}","received_events_url":"https://api.github.com/users/sev-/received_events","type":"User","site_admin":false},"body":"Here is my PR for the WAGE engine, a WorldBuider (https://en.wikipedia.org/wiki/World_Builder) games. It was a nice and fun side project of me. There are over 100 games built on this engine.\r\n\r\nI've tested few smaller games and they're completable, although a more thorough testing is required.\r\n\r\nTODO:\r\n- Sound (very simple SFX, sometimes looped, no music)\r\n- About dialog\r\n- Shortcuts from Actions menu\r\n- Save/load\r\n- Improvements in the input. It still doesn't match the original\r\n- Copy/paste in the text console window\r\n- Add more games to detection\r\n- Window closing (I do not plan to implement window resizing like in original)\r\n- General bugfixing\r\n\r\nAlso, there are some uncertainties and open questions in the game logic, primarily because there are not many games using those features. The whole engine is based on WAGE engine written in Java by Alex Svitkine (https://github.com/asvitkine/wage-engine) which in turn is mainly a guesswork. I plan to try to chase the original WorldBuilder author in a hope that he shares the sources with us.\r\n\r\nIn comparison to the Alex's engine, I strive to be pixel perfect and implement many features by referring to the original games running in the vMac emulator.\r\n\r\nThe engine optionally uses the original Mac fonts, there is a Mac-only script to downloads System 7.0.1 image from Apple (the OS has been put as freeware), extracts it and puts into wage.dat file. It is not clear to me whether we're allowed to redistribute the fonts. As a fallback, the engine uses built-in ScummVM fonts, and that is naturally not pixel-perfect.\r\n\r\nThe majority of these games were either freeware or shareware, so I plan to prepare 2 archives: originals and extracted games in the MacBinary format ready for ScummVM consumption.","created_at":"2016-02-01T10:49:25Z","updated_at":"2016-02-08T18:42:51Z","closed_at":null,"merged_at":null,"merge_commit_sha":"07058161cbc184124b89f84d30784439a3b41909","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/scummvm/scummvm/pulls/658/commits","review_comments_url":"https://api.github.com/repos/scummvm/scummvm/pulls/658/comments","review_comment_url":"https://api.github.com/repos/scummvm/scummvm/pulls/comments{/number}","comments_url":"https://api.github.com/repos/scummvm/scummvm/issues/658/comments","statuses_url":"https://api.github.com/repos/scummvm/scummvm/statuses/10266fea44733cf562ce33a01145cd4b76ea28c9","head":{"label":"sev-:wage","ref":"wage","sha":"10266fea44733cf562ce33a01145cd4b76ea28c9","user":{"login":"sev-","id":365188,"avatar_url":"https://avatars.githubusercontent.com/u/365188?v=3","gravatar_id":"","url":"https://api.github.com/users/sev-","html_url":"https://github.com/sev-","followers_url":"https://api.github.com/users/sev-/followers","following_url":"https://api.github.com/users/sev-/following{/other_user}","gists_url":"https://api.github.com/users/sev-/gists{/gist_id}","starred_url":"https://api.github.com/users/sev-/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sev-/subscriptions","organizations_url":"https://api.github.com/users/sev-/orgs","repos_url":"https://api.github.com/users/sev-/repos","events_url":"https://api.github.com/users/sev-/events{/privacy}","received_events_url":"https://api.github.com/users/sev-/received_events","type":"User","site_admin":false},"repo":{"id":6312553,"name":"scummvm","full_name":"sev-/scummvm","owner":{"login":"sev-","id":365188,"avatar_url":"https://avatars.githubusercontent.com/u/365188?v=3","gravatar_id":"","url":"https://api.github.com/users/sev-","html_url":"https://github.com/sev-","followers_url":"https://api.github.com/users/sev-/followers","following_url":"https://api.github.com/users/sev-/following{/other_user}","gists_url":"https://api.github.com/users/sev-/gists{/gist_id}","starred_url":"https://api.github.com/users/sev-/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sev-/subscriptions","organizations_url":"https://api.github.com/users/sev-/orgs","repos_url":"https://api.github.com/users/sev-/repos","events_url":"https://api.github.com/users/sev-/events{/privacy}","received_events_url":"https://api.github.com/users/sev-/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/sev-/scummvm","description":"ScummVM main repository","fork":true,"url":"https://api.github.com/repos/sev-/scummvm","forks_url":"https://api.github.com/repos/sev-/scummvm/forks","keys_url":"https://api.github.com/repos/sev-/scummvm/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sev-/scummvm/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sev-/scummvm/teams","hooks_url":"https://api.github.com/repos/sev-/scummvm/hooks","issue_events_url":"https://api.github.com/repos/sev-/scummvm/issues/events{/number}","events_url":"https://api.github.com/repos/sev-/scummvm/events","assignees_url":"https://api.github.com/repos/sev-/scummvm/assignees{/user}","branches_url":"https://api.github.com/repos/sev-/scummvm/branches{/branch}","tags_url":"https://api.github.com/repos/sev-/scummvm/tags","blobs_url":"https://api.github.com/repos/sev-/scummvm/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sev-/scummvm/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sev-/scummvm/git/refs{/sha}","trees_url":"https://api.github.com/repos/sev-/scummvm/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sev-/scummvm/statuses/{sha}","languages_url":"https://api.github.com/repos/sev-/scummvm/languages","stargazers_url":"https://api.github.com/repos/sev-/scummvm/stargazers","contributors_url":"https://api.github.com/repos/sev-/scummvm/contributors","subscribers_url":"https://api.github.com/repos/sev-/scummvm/subscribers","subscription_url":"https://api.github.com/repos/sev-/scummvm/subscription","commits_url":"https://api.github.com/repos/sev-/scummvm/commits{/sha}","git_commits_url":"https://api.github.com/repos/sev-/scummvm/git/commits{/sha}","comments_url":"https://api.github.com/repos/sev-/scummvm/comments{/number}","issue_comment_url":"https://api.github.com/repos/sev-/scummvm/issues/comments{/number}","contents_url":"https://api.github.com/repos/sev-/scummvm/contents/{+path}","compare_url":"https://api.github.com/repos/sev-/scummvm/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sev-/scummvm/merges","archive_url":"https://api.github.com/repos/sev-/scummvm/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sev-/scummvm/downloads","issues_url":"https://api.github.com/repos/sev-/scummvm/issues{/number}","pulls_url":"https://api.github.com/repos/sev-/scummvm/pulls{/number}","milestones_url":"https://api.github.com/repos/sev-/scummvm/milestones{/number}","notifications_url":"https://api.github.com/repos/sev-/scummvm/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sev-/scummvm/labels{/name}","releases_url":"https://api.github.com/repos/sev-/scummvm/releases{/id}","deployments_url":"https://api.github.com/repos/sev-/scummvm/deployments","created_at":"2012-10-20T18:59:43Z","updated_at":"2015-11-07T12:35:56Z","pushed_at":"2016-02-08T17:40:01Z","git_url":"git://github.com/sev-/scummvm.git","ssh_url":"git@github.com:sev-/scummvm.git","clone_url":"https://github.com/sev-/scummvm.git","svn_url":"https://github.com/sev-/scummvm","homepage":"http://www.scummvm.org/","size":206678,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"scummvm:master","ref":"master","sha":"68ff933206e091f0cd9712a903228cb9d0801db6","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-02-06T16:37:33Z","pushed_at":"2016-02-08T17:42:16Z","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":216999,"stargazers_count":569,"watchers_count":569,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":282,"mirror_url":null,"open_issues_count":21,"forks":282,"open_issues":21,"watchers":569,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/scummvm/scummvm/pulls/658"},"html":{"href":"https://github.com/scummvm/scummvm/pull/658"},"issue":{"href":"https://api.github.com/repos/scummvm/scummvm/issues/658"},"comments":{"href":"https://api.github.com/repos/scummvm/scummvm/issues/658/comments"},"review_comments":{"href":"https://api.github.com/repos/scummvm/scummvm/pulls/658/comments"},"review_comment":{"href":"https://api.github.com/repos/scummvm/scummvm/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/scummvm/scummvm/pulls/658/commits"},"statuses":{"href":"https://api.github.com/repos/scummvm/scummvm/statuses/10266fea44733cf562ce33a01145cd4b76ea28c9"}}}}