{"action":"created","comment":{"url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/pulls/comments/51028738","id":51028738,"diff_hunk":"@@ -4921,15 +4922,445 @@ void game_command_remove_track(int *eax, int *ebx, int *ecx, int *edx, int *esi,\n \treturn;\n }\n \n+money32 loc_6CDDFD() {\n+    // pop     edi\n+    // pop     edx\n+    // pop     ecx\n+    // pop     ebx\n+    // pop     eax\n+    // mov     ebx, dword_F4413E\n+\n+    // test    park_flags, 800h\n+    // jz      short locret_6CDE16\n+    // xor     ebx, ebx\n+    // locret_6CDE16:\n+    // retn\n+    if (RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) & PARK_FLAGS_NO_MONEY) {\n+        return 0;\n+    }\n+\n+    return RCT2_GLOBAL(0xF4413E, money32);\n+}\n+\n+\n+money32 loc_6CDDA2(uint16 x, uint16 y, uint8 rideIndex, rct_map_element *mapElement) {\n+\tmap_invalidate_tile(floor2(x, 32), floor2(y, 32), mapElement->base_height * 8, mapElement->clearance_height * 8);\n+\n+\tif ((mapElement->properties.track.maze_entry & 0x8888) == 0x8888) {\n+\t\tmap_element_remove(mapElement);\n+\t\tsub_6CB945(rideIndex);\n+\t\tget_ride(rideIndex)->maze_tiles--;\n+\t}\n+\n+    return loc_6CDDFD();\n+}\n+\n+\n+uint8 get_edx(uint16 x, uint16 y) {\n+\t// 0x6cdcc9 and 0x6cdbe9\n+\tuint8 minorX = x & 0x1F; // 0 or 16\n+\tuint8 minorY = y & 0x1F; // 0 or 16\n+\n+\tif (minorX == 0 && minorY == 0) {\n+\t\treturn 3;\n+\t}\n+\n+\tif (minorY == 16 && minorX == 16) {\n+\t\treturn 11;\n+\t}\n+\n+\tif (minorY == 0) {\n+\t\treturn 15;\n+\t}\n+\n+\treturn 7;\n+}\n+\n+money32 loc_6CDBE9(uint16 originalX, uint16 originalY, uint16 x, uint16 y, uint16 z, uint8 rideIndex, rct_map_element *mapElement) {\n+\tuint32 edx = get_edx(x, y);\n+\n+\t// loc_6CDC19:\n+\tmapElement->properties.track.maze_entry |= (1 << edx);\n+\tedx--;\n+\tmapElement->properties.track.maze_entry |= (1 << edx);\n+\tedx = (edx - 4) & 0x0F;\n+\tmapElement->properties.track.maze_entry |= (1 << edx);\n+\tedx = (edx + 3) & 0x0F;\n+\n+\tuint32 edx1 = edx;// loc_6CDC37:\n+\twhile (true) {\n+\t\t// 0x6cdc37\n+\t\tmapElement->properties.track.maze_entry |= (1 << edx);\n+\n+\t\tedx1 = edx;\n+\n+\t\tuint32 direction = RCT2_GLOBAL(0x00993D0C + edx1, uint8);\n+\t\tuint16 flooredX = floor2(x, 32);\n+\t\tuint16 flooredY = floor2(y, 32);\n+\n+\t\tflooredX -= TileDirectionDelta[direction].x;\n+\t\tflooredY -= TileDirectionDelta[direction].y;\n+\n+\t\trct_map_element *tmp_mapElement = map_get_first_element_at(flooredX / 32, flooredY / 32);\n+\n+\t\tuint8 bl = (z / 8) & 0xFF;\n+\t\tuint8 bh = rideIndex;\n+\n+\t\tdo {\n+\t\t\t// loc_6CDC7E:\n+\t\t\tif (map_element_get_type(tmp_mapElement) != MAP_ELEMENT_TYPE_TRACK) {\n+\t\t\t\tcontinue;\n+\t\t\t}\n+\n+\t\t\tif (tmp_mapElement->base_height != bl) {\n+\t\t\t\tcontinue;\n+\t\t\t}\n+\n+\t\t\tif (tmp_mapElement->properties.track.ride_index != bh) {\n+\t\t\t\tcontinue;\n+\t\t\t}\n+\n+\t\t\tif (tmp_mapElement->properties.track.type != 0x65) {\n+\t\t\t\tcontinue;\n+\t\t\t}\n+\n+\t\t\t// loc_6CDCA5\n+\t\t\tuint8 edx11 = RCT2_GLOBAL(0x993CFC + edx1, uint8);\n+\t\t\ttmp_mapElement->properties.track.maze_entry |= 1 << (edx11);\n+\n+\t\t\tbreak;\n+\t\t} while (!map_element_is_last_for_tile(tmp_mapElement++));\n+\n+\t\tedx--;\n+\n+\t\tif ((edx & 0x3) == 0x3) {\n+\t\t\tbreak;\n+\t\t}\n+\t}\n+\n+\treturn loc_6CDDA2(originalX, originalY, rideIndex, mapElement);\n+}\n+\n+money32 loc_6CDB35(uint16 x, uint8 flags, uint8 direction, uint16 y, uint8 rideIndex, uint8 mode, uint16 unknown, uint16 z, rct_map_element *mapElement) {\n+\tuint8 bl;\n+\n+\tif ((flags & GAME_COMMAND_FLAG_APPLY) == 0) {\n+\t\treturn loc_6CDDFD();\n+\t}\n+\n+\n+\tif (mode == 1) {\n+\t\treturn loc_6CDDA2(x, y, rideIndex, mapElement);\n+\t}\n+\n+\tif (mode == 0) {\n+\t\tuint8 edx = get_edx(x, y);\n+\n+\t\t// 0x6cdcff\n+\t\tmapElement->properties.track.maze_entry &= ~(1 << edx);\n+\n+\t\tif (direction == 4) {\n+\t\t\treturn loc_6CDDA2(x, y, rideIndex, mapElement);\n+\t\t}\n+\n+\t\t// 0x6cdd12\n+\t\tedx = RCT2_GLOBAL(0x993ce9 + (direction + edx), uint8);\n+\t\t// TODO: wth is edx?\n+\t\tmapElement->properties.track.maze_entry &= ~(1 << edx);\n+\n+\t\t// SAVE edx + esi\n+\n+\t\t// TODO: btr     [esi+5], dx\n+\t\t// (esi+5 = mapElement->properties.track.maze_entry)\n+\n+\t\tuint32 temp_edx = RCT2_GLOBAL(0x993cfc + edx, uint8);\n+\t\tif ((temp_edx & 0xFF) == 0xFF) {\n+\t\t\treturn loc_6CDDA2(x, y, rideIndex, mapElement);\n+\t\t}\n+\n+\t\tuint16 xRounded = floor2(x, 32);\n+\t\tuint16 yRounded = floor2(y, 32);\n+\n+\t\tuint32 ebx = direction;\n+\t\txRounded -= TileDirectionDelta[direction].x;\n+\t\tyRounded -= TileDirectionDelta[direction].y;\n+\n+\t\tuint8 bh = rideIndex;\n+\t\tbl = (uint8) ((z >> 3) & 0xFF);\n+\n+\t\trct_map_element *temp_esi = map_get_first_element_at(xRounded / 32, yRounded / 32);\n+\n+\t\t// 0x6cdd71:\n+\t\tdo {\n+\t\t\tif (map_element_get_type(temp_esi) != MAP_ELEMENT_TYPE_TRACK) {\n+\t\t\t\tcontinue;\n+\t\t\t}\n+\n+\t\t\tif (temp_esi->base_height != bl) {\n+\t\t\t\tcontinue;\n+\t\t\t}\n+\n+\t\t\tif (temp_esi->properties.track.ride_index != rideIndex) {\n+\t\t\t\tcontinue;\n+\t\t\t}\n+\n+\t\t\tif (temp_esi->properties.track.type != 0x65) {\n+\t\t\t\tcontinue;\n+\t\t\t}\n+\n+\t\t\t// loc_6CDD9B;\n+\t\t\ttemp_esi->properties.track.maze_entry &= ~(1 << temp_edx);\n+\n+\t\t\treturn loc_6CDDA2(x, y, rideIndex, mapElement);\n+\t\t} while (!map_element_is_last_for_tile(temp_esi++));\n+\n+\t\t// 6cdd92\n+\t\tmapElement->properties.track.maze_entry |= (1 << edx);\n+\t\treturn loc_6CDDA2(x, y, rideIndex, mapElement);\n+\t}\n+\n+\n+\t// 0x6cdb53\n+\tif (direction == 4) {\n+\t\treturn loc_6CDDA2(x, y, rideIndex, mapElement);\n+\t}\n+\n+\t// 0x6cdb69\n+\n+\tuint16 ax = x - TileDirectionDelta[direction].x / 2;\n+\tuint16 cx = x - TileDirectionDelta[direction].y / 2;\n+\n+\tbl = (z >> 3) & 0xFF;\n+\n+\tmapElement = map_get_first_element_at(ax / 32, cx / 32);\n+\n+\t// eax = incremented X;\n+\tmap_invalidate_tile_full(floor2(ax, 32), floor2(cx, 32));\n+\n+\t// eax = ax;\n+\t// ecx = cx;\n+\t// ebx = [bl: bl, bh: rideIndex];\n+\n+\tdo {\n+\t\tif (map_element_get_type(mapElement) != MAP_ELEMENT_TYPE_TRACK) {\n+\t\t\tcontinue;\n+\t\t}\n+\n+\t\tif (mapElement->base_height != bl) {\n+\t\t\tcontinue;\n+\t\t}\n+\n+\t\tif (mapElement->properties.track.ride_index != rideIndex) {\n+\t\t\tcontinue;\n+\t\t}\n+\n+\t\tif (mapElement->properties.track.type != 0x65) {\n+\t\t\tcontinue;\n+\t\t}\n+\n+\t\treturn loc_6CDBE9(x, y, ax, cx, z, rideIndex, mapElement);\n+\t\t// loc_6CDBDB:\n+\t} while (!map_element_is_last_for_tile(mapElement++));\n+\n+\treturn loc_6CDDA2(x, y, rideIndex, mapElement);\n+}\n+\n+\n+money32 do_game_command_set_maze_track(uint16 x, uint8 flags, uint8 direction, uint16 y, uint8 rideIndex, uint8 mode, uint16 unknown, uint16 z) {\n+\tuint16 temp_dx;\n+\n+\t// 0x006CD8CE: game_command_set_maze_track\n+\tRCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = 0;\n+\tRCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_X, uint16) = x + 8;\n+\tRCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Y, uint16) = y + 8;\n+\tRCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z;\n+\n+\tRCT2_GLOBAL(0xF4413E, money32) = 0;\n+\n+\tif (!sub_68B044()) {\n+\t\t// loc_6CDE51:\n+\t\treturn MONEY32_UNDEFINED;\n+\t}\n+\n+\tif (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0) {\n+\t\t// loc_6CDE2D:\n+\t\tRCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, unsigned short) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;\n+\t\t// loc_6CDE51:\n+\t\treturn MONEY32_UNDEFINED;\n+\t}\n+\n+\t// loc_6CD920:\n+\tif ((z & 0xF) != 0) {\n+\t\t// loc_6CDE38:\n+\t\tRCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, unsigned short) = 954;\n+\t\t// loc_6CDE51:\n+\t\treturn MONEY32_UNDEFINED;\n+\t}\n+\n+\tif ((flags & GAME_COMMAND_FLAG_APPLY) != 0) {\n+\t\tif ((flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED) == 0) {\n+\t\t\tfootpath_remove_litter(x, y, z);\n+\t\t\tmap_remove_walls_at((uint16) floor2(x, 32), (uint32) floor2(y, 32), z, z + 0x20);\n+\t\t}\n+\t}\n+\n+\t// loc_6CD954:\n+\tif (map_is_location_owned(floor2(x, 32), floor2(y, 32), z) == 0) {\n+\t\t// loc_6CDE51\n+\t\treturn MONEY32_UNDEFINED;\n+\t}\n+\n+\trct_map_element *mapElement = map_get_surface_element_at(x / 32, y / 32);\n+\tif (mapElement == NULL) {\n+\t\t// TODO: set error text?\n+\t\treturn MONEY32_UNDEFINED;\n+\t}\n+\n+\t// loc_6CD99A:\n+\ttemp_dx = z;\n+\ttemp_dx += 0x20;\n+\ttemp_dx = temp_dx >> 3;\n+\tsint8 temp_dl = (uint8) (temp_dx & 0xFF);\n+\n+\ttemp_dl -= mapElement->base_height;\n+\tif (temp_dl >= 0) {\n+\t\ttemp_dl = temp_dl >> 1;\n+\n+\t\tif (temp_dl > RCT2_GLOBAL(0x0097D218 + (RIDE_TYPE_MAZE * 8), uint8)) {\n+\t\t\tRCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_TOO_HIGH_FOR_SUPPORTS;\n+\t\t\t// loc_6CDE51\n+\t\t\treturn MONEY32_UNDEFINED;\n+\t\t}\n+\t}\n+\n+\t// loc_6CD9C5\n+\t// push    eax\n+\t// push    ebx\n+\t// push    ecx\n+\t// push    edx\n+\t// push    edi\n+\n+\t// mov     bl, dl\n+\tuint8 bl = rideIndex;\n+\t// mov     dx, di\n+\ttemp_dx = z;\n+\t// shr     dx, 3\n+\ttemp_dx = temp_dx >> 3;\n+\n+\tmapElement = map_get_first_element_at(x / 32, y / 32);\n+\n+\tdo {\n+\t\t// loc_6CD9F0:\n+\t\tif (map_element_get_type(mapElement) != MAP_ELEMENT_TYPE_TRACK) {\n+\t\t\tcontinue;\n+\t\t}\n+\n+\t\tif ((temp_dx & 0xff) != mapElement->base_height) {\n+\t\t\tcontinue;\n+\t\t}\n+\n+\t\tif (rideIndex != mapElement->properties.track.ride_index) {\n+\t\t\tcontinue;\n+\t\t}\n+\t\tif (mapElement->properties.track.type != 0x65) {\n+\t\t\tcontinue;\n+\t\t}\n+\n+\t\treturn loc_6CDB35(x, flags, direction, y, rideIndex, mode, unknown, z, mapElement);\n+\t} while (!map_element_is_last_for_tile(mapElement++));\n+\n+\n+\tif (mode != 0) {\n+\t\t// loc_6CDE43\n+\t\tRCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, unsigned short) = 0;\n+\t\t// loc_6CDE4C\n+\t\t// loc_6CDE51\n+\t\treturn MONEY32_UNDEFINED;\n+\t}\n+\n+\tif (!map_can_construct_at((uint16) floor2(x, 32), (uint16) floor2(y, 32), (z / 8), (z / 8) + 4, 0x0F)) {\n+\t\t// loc_6CDE4C\n+\t\t// loc_6CDE51\n+\t\treturn MONEY32_UNDEFINED;\n+\t}\n+\n+\tif (RCT2_GLOBAL(RCT2_ADDRESS_ELEMENT_LOCATION_COMPARED_TO_GROUND_AND_WATER, uint8) & 0x04) {\n+\t\t// loc_6CDE22\n+\t\tRCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, unsigned short) = STR_RIDE_CANT_BUILD_THIS_UNDERWATER;\n+\t\t// loc_6CDE4C\n+\t\t// loc_6CDE51\n+\t\treturn MONEY32_UNDEFINED;\n+\t}\n+\n+\tif (RCT2_GLOBAL(RCT2_ADDRESS_ELEMENT_LOCATION_COMPARED_TO_GROUND_AND_WATER, uint8) & 0x02) {\n+\t\t// loc_6CDE17\n+\t\tRCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, unsigned short) = STR_CAN_ONLY_BUILD_THIS_ABOVE_GROUND;\n+\t\t// loc_6CDE4C\n+\t\t// loc_6CDE51\n+\t\treturn MONEY32_UNDEFINED;\n+\t}\n+\n+\trct_ride *ride = get_ride(rideIndex);\n+\n+\tmoney32 price = (((RCT2_ADDRESS(0x0097DD78, money16)[ride->type * 2] * RCT2_GLOBAL(0x0099DBC8, money32)) >> 16));\n+\tRCT2_GLOBAL(0x00F4413E, money32) = price / 2 * 10;\n+\n+\n+\tif ((flags & GAME_COMMAND_FLAG_APPLY) == 0) {\n+\t\treturn loc_6CDDFD();\n+\t}\n+\n+\n+\t// TODO: shouldn't these arguments get shifted?\n+\tuint16 flooredX = floor2(x, 32);\n+\tuint16 flooredY = floor2(y, 32);\n+\n+\tmapElement = map_element_insert(flooredX / 32, flooredY / 32, z >> 3, 0xF);\n+\tmapElement->clearance_height = (z >> 3) + 4;\n+\tmapElement->type = 0x8;\n+\tmapElement->properties.track.type = 0x65;\n+\tmapElement->properties.track.ride_index = rideIndex;\n+\tmapElement->properties.track.maze_entry = 0xFFFF;\n+\n+\tif (flags & GAME_COMMAND_FLAG_GHOST) {\n+\t\tmapElement->flags |= MAP_ELEMENT_FLAG_GHOST;\n+\t}\n+\n+\t// loc_6CDAE8:\n+\tmap_invalidate_tile_full(flooredX, flooredY);\n+\n+\tride->maze_tiles += 1;\n+\tride->station_heights[0] = mapElement->base_height;\n+\tride->station_starts[0] = 0;\n+\n+\tif (direction == 4) {\n+\t\tif (flags & GAME_COMMAND_FLAG_GHOST) {","path":"src/ride/track.c","position":424,"original_position":424,"commit_id":"dac3bfd689e131aa6633e05645a7340c8749c07c","original_commit_id":"dac3bfd689e131aa6633e05645a7340c8749c07c","user":{"login":"duncanspumpkin","id":1277401,"avatar_url":"https://avatars.githubusercontent.com/u/1277401?v=3","gravatar_id":"","url":"https://api.github.com/users/duncanspumpkin","html_url":"https://github.com/duncanspumpkin","followers_url":"https://api.github.com/users/duncanspumpkin/followers","following_url":"https://api.github.com/users/duncanspumpkin/following{/other_user}","gists_url":"https://api.github.com/users/duncanspumpkin/gists{/gist_id}","starred_url":"https://api.github.com/users/duncanspumpkin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/duncanspumpkin/subscriptions","organizations_url":"https://api.github.com/users/duncanspumpkin/orgs","repos_url":"https://api.github.com/users/duncanspumpkin/repos","events_url":"https://api.github.com/users/duncanspumpkin/events{/privacy}","received_events_url":"https://api.github.com/users/duncanspumpkin/received_events","type":"User","site_admin":false},"body":"!(flags & GAME_COMMAND_FLAG_GHOST)","created_at":"2016-01-27T18:41:27Z","updated_at":"2016-01-27T18:41:27Z","html_url":"https://github.com/OpenRCT2/OpenRCT2/pull/2784#discussion_r51028738","pull_request_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/pulls/2784","_links":{"self":{"href":"https://api.github.com/repos/OpenRCT2/OpenRCT2/pulls/comments/51028738"},"html":{"href":"https://github.com/OpenRCT2/OpenRCT2/pull/2784#discussion_r51028738"},"pull_request":{"href":"https://api.github.com/repos/OpenRCT2/OpenRCT2/pulls/2784"}}},"pull_request":{"url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/pulls/2784","id":56694680,"html_url":"https://github.com/OpenRCT2/OpenRCT2/pull/2784","diff_url":"https://github.com/OpenRCT2/OpenRCT2/pull/2784.diff","patch_url":"https://github.com/OpenRCT2/OpenRCT2/pull/2784.patch","issue_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/issues/2784","number":2784,"state":"open","locked":false,"title":"[WIP] Attempt at decompiling `game_command_set_maze_track`","user":{"login":"marijnvdwerf","id":737603,"avatar_url":"https://avatars.githubusercontent.com/u/737603?v=3","gravatar_id":"","url":"https://api.github.com/users/marijnvdwerf","html_url":"https://github.com/marijnvdwerf","followers_url":"https://api.github.com/users/marijnvdwerf/followers","following_url":"https://api.github.com/users/marijnvdwerf/following{/other_user}","gists_url":"https://api.github.com/users/marijnvdwerf/gists{/gist_id}","starred_url":"https://api.github.com/users/marijnvdwerf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marijnvdwerf/subscriptions","organizations_url":"https://api.github.com/users/marijnvdwerf/orgs","repos_url":"https://api.github.com/users/marijnvdwerf/repos","events_url":"https://api.github.com/users/marijnvdwerf/events{/privacy}","received_events_url":"https://api.github.com/users/marijnvdwerf/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-01-21T01:44:48Z","updated_at":"2016-01-27T18:41:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c87742d5cb2678e83e08be715c99d51abb77bdf3","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/pulls/2784/commits","review_comments_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/pulls/2784/comments","review_comment_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/pulls/comments{/number}","comments_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/issues/2784/comments","statuses_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/statuses/dac3bfd689e131aa6633e05645a7340c8749c07c","head":{"label":"marijnvdwerf:decompile-attempt","ref":"decompile-attempt","sha":"dac3bfd689e131aa6633e05645a7340c8749c07c","user":{"login":"marijnvdwerf","id":737603,"avatar_url":"https://avatars.githubusercontent.com/u/737603?v=3","gravatar_id":"","url":"https://api.github.com/users/marijnvdwerf","html_url":"https://github.com/marijnvdwerf","followers_url":"https://api.github.com/users/marijnvdwerf/followers","following_url":"https://api.github.com/users/marijnvdwerf/following{/other_user}","gists_url":"https://api.github.com/users/marijnvdwerf/gists{/gist_id}","starred_url":"https://api.github.com/users/marijnvdwerf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marijnvdwerf/subscriptions","organizations_url":"https://api.github.com/users/marijnvdwerf/orgs","repos_url":"https://api.github.com/users/marijnvdwerf/repos","events_url":"https://api.github.com/users/marijnvdwerf/events{/privacy}","received_events_url":"https://api.github.com/users/marijnvdwerf/received_events","type":"User","site_admin":false},"repo":{"id":49390041,"name":"OpenRCT2","full_name":"marijnvdwerf/OpenRCT2","owner":{"login":"marijnvdwerf","id":737603,"avatar_url":"https://avatars.githubusercontent.com/u/737603?v=3","gravatar_id":"","url":"https://api.github.com/users/marijnvdwerf","html_url":"https://github.com/marijnvdwerf","followers_url":"https://api.github.com/users/marijnvdwerf/followers","following_url":"https://api.github.com/users/marijnvdwerf/following{/other_user}","gists_url":"https://api.github.com/users/marijnvdwerf/gists{/gist_id}","starred_url":"https://api.github.com/users/marijnvdwerf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marijnvdwerf/subscriptions","organizations_url":"https://api.github.com/users/marijnvdwerf/orgs","repos_url":"https://api.github.com/users/marijnvdwerf/repos","events_url":"https://api.github.com/users/marijnvdwerf/events{/privacy}","received_events_url":"https://api.github.com/users/marijnvdwerf/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/marijnvdwerf/OpenRCT2","description":"An open source re-implementation of Roller Coaster Tycoon 2.","fork":true,"url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2","forks_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/forks","keys_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/teams","hooks_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/hooks","issue_events_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/issues/events{/number}","events_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/events","assignees_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/assignees{/user}","branches_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/branches{/branch}","tags_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/tags","blobs_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/git/refs{/sha}","trees_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/statuses/{sha}","languages_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/languages","stargazers_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/stargazers","contributors_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/contributors","subscribers_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/subscribers","subscription_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/subscription","commits_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/commits{/sha}","git_commits_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/git/commits{/sha}","comments_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/comments{/number}","issue_comment_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/issues/comments{/number}","contents_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/contents/{+path}","compare_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/merges","archive_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/downloads","issues_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/issues{/number}","pulls_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/pulls{/number}","milestones_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/milestones{/number}","notifications_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/labels{/name}","releases_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/releases{/id}","deployments_url":"https://api.github.com/repos/marijnvdwerf/OpenRCT2/deployments","created_at":"2016-01-10T23:14:37Z","updated_at":"2016-01-10T23:14:39Z","pushed_at":"2016-01-27T18:37:05Z","git_url":"git://github.com/marijnvdwerf/OpenRCT2.git","ssh_url":"git@github.com:marijnvdwerf/OpenRCT2.git","clone_url":"https://github.com/marijnvdwerf/OpenRCT2.git","svn_url":"https://github.com/marijnvdwerf/OpenRCT2","homepage":"http://openrct2.website","size":25053,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"OpenRCT2:develop","ref":"develop","sha":"6a3d199944002666c2ac6df54211021f9ae39a18","user":{"login":"OpenRCT2","id":8473908,"avatar_url":"https://avatars.githubusercontent.com/u/8473908?v=3","gravatar_id":"","url":"https://api.github.com/users/OpenRCT2","html_url":"https://github.com/OpenRCT2","followers_url":"https://api.github.com/users/OpenRCT2/followers","following_url":"https://api.github.com/users/OpenRCT2/following{/other_user}","gists_url":"https://api.github.com/users/OpenRCT2/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenRCT2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenRCT2/subscriptions","organizations_url":"https://api.github.com/users/OpenRCT2/orgs","repos_url":"https://api.github.com/users/OpenRCT2/repos","events_url":"https://api.github.com/users/OpenRCT2/events{/privacy}","received_events_url":"https://api.github.com/users/OpenRCT2/received_events","type":"Organization","site_admin":false},"repo":{"id":18348651,"name":"OpenRCT2","full_name":"OpenRCT2/OpenRCT2","owner":{"login":"OpenRCT2","id":8473908,"avatar_url":"https://avatars.githubusercontent.com/u/8473908?v=3","gravatar_id":"","url":"https://api.github.com/users/OpenRCT2","html_url":"https://github.com/OpenRCT2","followers_url":"https://api.github.com/users/OpenRCT2/followers","following_url":"https://api.github.com/users/OpenRCT2/following{/other_user}","gists_url":"https://api.github.com/users/OpenRCT2/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenRCT2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenRCT2/subscriptions","organizations_url":"https://api.github.com/users/OpenRCT2/orgs","repos_url":"https://api.github.com/users/OpenRCT2/repos","events_url":"https://api.github.com/users/OpenRCT2/events{/privacy}","received_events_url":"https://api.github.com/users/OpenRCT2/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/OpenRCT2/OpenRCT2","description":"An open source re-implementation of Roller Coaster Tycoon 2.","fork":false,"url":"https://api.github.com/repos/OpenRCT2/OpenRCT2","forks_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/forks","keys_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/teams","hooks_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/hooks","issue_events_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/issues/events{/number}","events_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/events","assignees_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/assignees{/user}","branches_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/branches{/branch}","tags_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/tags","blobs_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/git/refs{/sha}","trees_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/statuses/{sha}","languages_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/languages","stargazers_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/stargazers","contributors_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/contributors","subscribers_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/subscribers","subscription_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/subscription","commits_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/commits{/sha}","git_commits_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/git/commits{/sha}","comments_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/comments{/number}","issue_comment_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/issues/comments{/number}","contents_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/contents/{+path}","compare_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/merges","archive_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/downloads","issues_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/issues{/number}","pulls_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/pulls{/number}","milestones_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/milestones{/number}","notifications_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/labels{/name}","releases_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/releases{/id}","deployments_url":"https://api.github.com/repos/OpenRCT2/OpenRCT2/deployments","created_at":"2014-04-01T23:32:25Z","updated_at":"2016-01-27T17:25:53Z","pushed_at":"2016-01-27T18:37:05Z","git_url":"git://github.com/OpenRCT2/OpenRCT2.git","ssh_url":"git@github.com:OpenRCT2/OpenRCT2.git","clone_url":"https://github.com/OpenRCT2/OpenRCT2.git","svn_url":"https://github.com/OpenRCT2/OpenRCT2","homepage":"http://openrct2.website","size":48480,"stargazers_count":1483,"watchers_count":1483,"language":"C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":274,"mirror_url":null,"open_issues_count":372,"forks":274,"open_issues":372,"watchers":1483,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/OpenRCT2/OpenRCT2/pulls/2784"},"html":{"href":"https://github.com/OpenRCT2/OpenRCT2/pull/2784"},"issue":{"href":"https://api.github.com/repos/OpenRCT2/OpenRCT2/issues/2784"},"comments":{"href":"https://api.github.com/repos/OpenRCT2/OpenRCT2/issues/2784/comments"},"review_comments":{"href":"https://api.github.com/repos/OpenRCT2/OpenRCT2/pulls/2784/comments"},"review_comment":{"href":"https://api.github.com/repos/OpenRCT2/OpenRCT2/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/OpenRCT2/OpenRCT2/pulls/2784/commits"},"statuses":{"href":"https://api.github.com/repos/OpenRCT2/OpenRCT2/statuses/dac3bfd689e131aa6633e05645a7340c8749c07c"}}}}