{"action":"created","comment":{"url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/pulls/comments/105081484","pull_request_review_id":25943574,"id":105081484,"diff_hunk":"@@ -10,143 +10,509 @@\n #include \"LTimer.h\"\n #include \"LTexture.h\"\n #include \"Window.h\"\n-\n-GameStateMenu::GameStateMenu(Game& g): GameState(g){\n-\n+#include <unistd.h>\n+\n+\n+/**\n+* Function: GameStateMenu ctor\n+*\n+* Date:\n+* JF: March 8, 2017: added member initilizers\n+*\n+* Designer:\n+* Jacob Frank\n+*\n+* Programmer:\n+* Jacob Frank\n+*\n+* Interface: GameStateMenu(Game& g, int gameWidth, int gameHeight)\n+*                           Game& g: The instance of the game which the display window is tied to\n+*                           int gameWidth: Width of the game window\n+*                           int gameHeight: Height of the game window\n+*\n+* Notes:\n+* GameStateMenu ctor which initializes all member variables for use throughout class\n+*/\n+GameStateMenu::GameStateMenu(Game& g, int gameWidth, int gameHeight):\n+                                GameState(g),\n+                                headingFont(nullptr), textboxFont(nullptr), menuFont(nullptr),\n+                                level(),\n+                                camera(gameWidth,gameHeight),\n+                                menuItems({\"join\", \"options\"}),\n+                                selected{false,false},\n+                                activeTextbox{false,false},\n+                                defaultText({\"IP Address\", \"Username\"}),\n+                                textInput({defaultText[IP], defaultText[USERNAME]}),\n+                                fontColors({SDL_WHITE_RGB, SDL_GREEN_RGB, SDL_BLACK_RGB, SDL_RED_RGB}){\n }\n \n \n+/**\n+* Function: load\n+*\n+* Date:\n+* JF: February 8, 2017: added handler for window resizing event\n+*\n+* Designer:\n+* Jacob Frank\n+*\n+* Programmer:\n+* Jacob Frank\n+*\n+* Interface: load()\n+*\n+* Returns: true if the level, camera, and all font textures were loaded without error\n+*\n+* Notes:\n+* Function loads the initial state of the window\n+* Opens all fonts to be used, the title screen background, and the camera for viewing the window\n+*/\n bool GameStateMenu::load() {\n \n     bool success = true;\n \n-    //Open the font\n-    frameFont = TTF_OpenFont( \"assets/fonts/kenpixelsquare.ttf\", 28 );\n-    if ( frameFont == NULL ) {\n-        printf( \"Failed to load font! SDL_ttf Error: %s\\n\", TTF_GetError() );\n-        success = false;\n+    menuFont = TTF_OpenFont( \"assets/fonts/Overdrive Sunset.otf\", 110);\n+    if ( menuFont == NULL ) {\n+            printf( \"Failed to load font - Overdrive Sunset.otf! SDL_ttf Error: %s\\n\", TTF_GetError() );\n+            success = false;\n     }\n \n-    return success;\n-}\n-\n-void GameStateMenu::loop() {\n-    //The frames per second timer\n-    LTimer fpsTimer;\n-\n-    //The frames per second cap timer\n-    LTimer capTimer;\n-\n-    //Keeps track of time between steps\n-    LTimer stepTimer;\n-\n-    //Start counting frames per second\n-    unsigned long countedFrames = 0;\n-    float avgFPS = 0;\n-    fpsTimer.start();\n+    headingFont = TTF_OpenFont( \"assets/fonts/SEGUISB.ttf\", 30);\n+    if ( headingFont == NULL ) {\n+            printf( \"Failed to load font - SEGUISB.TTF! SDL_ttf Error: %s\\n\", TTF_GetError() );\n+            success = false;\n+    }\n \n-    // State Loop\n-    while (play) {\n-        //Start cap timer\n-        capTimer.start();\n+    textboxFont = TTF_OpenFont( \"assets/fonts/SEGOEUISL.ttf\", 30);\n+    if ( textboxFont == NULL ) {\n+            printf( \"Failed to load font - SEGOEUISL.ttf! SDL_ttf Error: %s\\n\", TTF_GetError() );\n+            success = false;\n+    }\n \n-        //Calculate and correct fps\n-        avgFPS = countedFrames / ( fpsTimer.getTicks() / 1000.f );\n+    if (!level.levelTexture.loadFromFile(\"assets/TitleScreen_Marz.png\", game.renderer)) {\n+            printf(\"Failed to load the level texture!\\n\");\n+            success = false;\n+    } else {\n+            level.levelTexture.setDimensions(game.window.getWidth(), game.window.getHeight());\n+    }\n \n-        //Set FPS text to be rendered\n-        frameTimeText.str( \"\" );\n-        frameTimeText << std::fixed << std::setprecision(0) << \"FPS: \" << avgFPS;\n \n-        // Process frame\n-        handle();    // Handle user input\n-        update(stepTimer.getTicks() / 1000.f); // Update state values\n-        stepTimer.start(); //Restart step timer\n-        sync();    // Sync game to server\n-        render();    // Render game state to window\n+    return success;\n+}\n \n-        ++countedFrames;\n \n-        //If frame finished early\n-        int frameTicks = capTimer.getTicks();\n-        if ( frameTicks < SCREEN_TICK_PER_FRAME ) {\n-            //Wait remaining time\n-            SDL_Delay( SCREEN_TICK_PER_FRAME - frameTicks );\n-        }\n+/**\n+* Function: loop\n+*\n+* Date:\n+* JF: February 8, 2017\n+*\n+* Designer:\n+* Jacob Frank\n+*\n+* Programmer:\n+* Jacob Frank\n+*\n+* Interface: loop()\n+*\n+* Returns: void\n+*\n+* Notes:\n+* Function acts as main loop for the menu game state\n+* Listens for events and renders all assets to the screen\n+*/\n+void GameStateMenu::loop() {\n \n-    }\n+\t// State Loop\n+\twhile (play) {\n+\t\thandle();\t// Handle user input\n+\t\trender();\t// Render game state to window\n+\t}\n }\n \n+/**\n+* Function: sync\n+*\n+* Date:\n+*\n+* Designer:\n+*\n+* Programmer:\n+*\n+* Interface: sync()\n+*\n+* Returns: void\n+*\n+* Notes:\n+* Function currently empty\n+* Designed to be used by Game Logic team for connecting to the server\n+*/\n void GameStateMenu::sync() {\n \n }\n \n+/**\n+* Function: handle\n+*\n+* Date:\n+* JF: February 8, 2017: added handler for window resizing event\n+*\n+* Designer:\n+* Jacob Frank\n+*\n+* Programmer:\n+* Jacob Frank\n+*\n+* Interface: handle()\n+*\n+* Returns: void\n+*\n+* Notes:\n+* Function handles events occuring within the window to control\n+* functionality of the main menu\n+*/\n void GameStateMenu::handle() {\n-    //Handle events on queue\n-    while ( SDL_PollEvent( &event )) {\n-        game.window.handleEvent(event);\n-           switch( event.type ) {\n-          case SDL_KEYDOWN:\n-            switch( event.key.keysym.sym ) {\n-            case SDLK_ESCAPE:\n+\tint x,y;\n+\tSDL_Keycode keyCode;\n+\n+\t//Handle events on queue\n+\tSDL_WaitEvent( &event );\n+\tgame.window.handleEvent(event);\n+\t\tswitch ( event.type ) {\n+      \tcase SDL_KEYDOWN:\n+            keyCode = event.key.keysym.sym;\n+            if (keyCode == SDLK_ESCAPE) {\n                 play = false;\n                 break;\n-            default:\n-                break;\n             }\n-            break;\n-          case SDL_KEYUP:\n-               switch( event.key.keysym.sym ) {\n-            default:\n-                   break;\n+\n+            for (size_t i = 0; i < NUM_TEXT_FIELDS; i++) {\n+                if (activeTextbox[i]) {\n+\n+                    //Handling backspace\n+                    if (keyCode == SDLK_BACKSPACE && textInput[i].length() > 0) {\n+                        textInput[i].pop_back();\n+                    }\n+\n+                    //Handle copy\n+                    else if (keyCode == SDLK_c && SDL_GetModState() & KMOD_CTRL) {\n+                        SDL_SetClipboardText( textInput[i].c_str() );\n+                    }\n+\n+                    //Handle paste\n+                    else if (keyCode == SDLK_v && SDL_GetModState() & KMOD_CTRL) {\n+                        textInput[i] = SDL_GetClipboardText();\n+                    }\n+                }\n+            }\n+        \tbreak;\n+        case SDL_TEXTINPUT:\n+            for (size_t i = 0; i < NUM_TEXT_FIELDS; i++) {\n+                if (activeTextbox[i]) {\n+                    //Ensures that a copy or paste is not occurring\n+                    if (!((event.text.text[ 0 ] == 'c' || event.text.text[ 0 ] == 'C') &&\n+                          (event.text.text[ 0 ] == 'v' || event.text.text[ 0 ] == 'V') &&\n+                           SDL_GetModState() & KMOD_CTRL)) {\n+                        //Update the string int displayed int he textbox\n+                        if (textInput[i].length() < maxLength) {\n+                            textInput[i] += event.text.text;\n+                        }\n+                    }\n+                }\n             }\n             break;\n-        case SDL_QUIT:\n-            play = false;\n-            break;\n-          default:\n-            break;\n-        }\n-    }\n+      \tcase SDL_KEYUP: //Do nothing on key release\n+       \t\tswitch ( event.key.keysym.sym ) {\n+\t\t\t\tdefault:\n+\t               \tbreak;\n+\t\t\t}\n+        \tbreak;\n+        case SDL_MOUSEMOTION:\n+        \tx = event.motion.x;\n+        \ty = event.motion.y;\n+        \tfor (size_t i = 0; i < NUM_MENU_ITEMS; i++) {\n+                //Check if mouse is above one of the menu uptions\n+        \t\tif (x >= menuItemPos[i].x && x <= menuItemPos[i].x + menuTextTextures[i].getWidth() &&\n+        \t\t\ty >= menuItemPos[i].y && y <= menuItemPos[i].y + menuTextTextures[i].getHeight()) {\n+                    selected[i] = true;  //Activate the button\n+        \t\t} else {\n+                    selected[i] = false; //deactivate the button\n+        \t\t}\n+        \t}\n+        \tbreak;\n+        case SDL_MOUSEBUTTONDOWN:\n+        \tx = event.button.x;\n+        \ty = event.button.y;\n+        \tfor (size_t i = 0; i < NUM_MENU_ITEMS; i++) {\n+                if (selected[i]) {\n+                    update(i);\n+        \t\t\tplay = false;\n+                }\n+        \t}\n+        \tfor (size_t i = 0; i < NUM_TEXT_FIELDS; i++) {\n+                //Check if the mouse was clicked inside the textbox area\n+        \t\tif (x >= textboxPos[i].x && x <= textboxPos[i].x + textboxPos[i].w &&\n+        \t\t\ty >= textboxPos[i].y && y <= textboxPos[i].y + textboxPos[i].h) {\n+                    activeTextbox[i] = true; //Activate the textbox to enable typing\n+                    //If default string is detected, delete it\n+                    if (!strcmp(textInput[i].c_str(), defaultText[i].c_str())) {","path":"src/GameStateMenu.cpp","position":318,"original_position":318,"commit_id":"df198e8e496e7362bb6280eb820411503ec8647b","original_commit_id":"df198e8e496e7362bb6280eb820411503ec8647b","user":{"login":"isaacmorneau","id":15988608,"avatar_url":"https://avatars2.githubusercontent.com/u/15988608?v=3","gravatar_id":"","url":"https://api.github.com/users/isaacmorneau","html_url":"https://github.com/isaacmorneau","followers_url":"https://api.github.com/users/isaacmorneau/followers","following_url":"https://api.github.com/users/isaacmorneau/following{/other_user}","gists_url":"https://api.github.com/users/isaacmorneau/gists{/gist_id}","starred_url":"https://api.github.com/users/isaacmorneau/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/isaacmorneau/subscriptions","organizations_url":"https://api.github.com/users/isaacmorneau/orgs","repos_url":"https://api.github.com/users/isaacmorneau/repos","events_url":"https://api.github.com/users/isaacmorneau/events{/privacy}","received_events_url":"https://api.github.com/users/isaacmorneau/received_events","type":"User","site_admin":false},"body":"converting to c style strings then using strcmp works but doesnt utilize what was already made for strings see [string compare](http://www.cplusplus.com/reference/string/string/compare/)","created_at":"2017-03-09T03:45:55Z","updated_at":"2017-03-09T03:45:55Z","html_url":"https://github.com/bcit-datacomm/4981_Linux_Game/pull/11#discussion_r105081484","pull_request_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/pulls/11","_links":{"self":{"href":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/pulls/comments/105081484"},"html":{"href":"https://github.com/bcit-datacomm/4981_Linux_Game/pull/11#discussion_r105081484"},"pull_request":{"href":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/pulls/11"}}},"pull_request":{"url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/pulls/11","id":109833849,"html_url":"https://github.com/bcit-datacomm/4981_Linux_Game/pull/11","diff_url":"https://github.com/bcit-datacomm/4981_Linux_Game/pull/11.diff","patch_url":"https://github.com/bcit-datacomm/4981_Linux_Game/pull/11.patch","issue_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/issues/11","number":11,"state":"open","locked":false,"title":"Updated Main menu and resolving merge conflicts","user":{"login":"jacobfrank4","id":10801365,"avatar_url":"https://avatars2.githubusercontent.com/u/10801365?v=3","gravatar_id":"","url":"https://api.github.com/users/jacobfrank4","html_url":"https://github.com/jacobfrank4","followers_url":"https://api.github.com/users/jacobfrank4/followers","following_url":"https://api.github.com/users/jacobfrank4/following{/other_user}","gists_url":"https://api.github.com/users/jacobfrank4/gists{/gist_id}","starred_url":"https://api.github.com/users/jacobfrank4/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacobfrank4/subscriptions","organizations_url":"https://api.github.com/users/jacobfrank4/orgs","repos_url":"https://api.github.com/users/jacobfrank4/repos","events_url":"https://api.github.com/users/jacobfrank4/events{/privacy}","received_events_url":"https://api.github.com/users/jacobfrank4/received_events","type":"User","site_admin":false},"body":"","created_at":"2017-03-09T03:28:29Z","updated_at":"2017-03-09T03:45:55Z","closed_at":null,"merged_at":null,"merge_commit_sha":"437603f7957c79e42f359d462a927cc46e78e2aa","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/pulls/11/commits","review_comments_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/pulls/11/comments","review_comment_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/issues/11/comments","statuses_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/statuses/df198e8e496e7362bb6280eb820411503ec8647b","head":{"label":"4981Graphics:develop","ref":"develop","sha":"df198e8e496e7362bb6280eb820411503ec8647b","user":{"login":"4981Graphics","id":25625193,"avatar_url":"https://avatars3.githubusercontent.com/u/25625193?v=3","gravatar_id":"","url":"https://api.github.com/users/4981Graphics","html_url":"https://github.com/4981Graphics","followers_url":"https://api.github.com/users/4981Graphics/followers","following_url":"https://api.github.com/users/4981Graphics/following{/other_user}","gists_url":"https://api.github.com/users/4981Graphics/gists{/gist_id}","starred_url":"https://api.github.com/users/4981Graphics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/4981Graphics/subscriptions","organizations_url":"https://api.github.com/users/4981Graphics/orgs","repos_url":"https://api.github.com/users/4981Graphics/repos","events_url":"https://api.github.com/users/4981Graphics/events{/privacy}","received_events_url":"https://api.github.com/users/4981Graphics/received_events","type":"Organization","site_admin":false},"repo":{"id":81270190,"name":"4981_Linux_Game","full_name":"4981Graphics/4981_Linux_Game","owner":{"login":"4981Graphics","id":25625193,"avatar_url":"https://avatars3.githubusercontent.com/u/25625193?v=3","gravatar_id":"","url":"https://api.github.com/users/4981Graphics","html_url":"https://github.com/4981Graphics","followers_url":"https://api.github.com/users/4981Graphics/followers","following_url":"https://api.github.com/users/4981Graphics/following{/other_user}","gists_url":"https://api.github.com/users/4981Graphics/gists{/gist_id}","starred_url":"https://api.github.com/users/4981Graphics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/4981Graphics/subscriptions","organizations_url":"https://api.github.com/users/4981Graphics/orgs","repos_url":"https://api.github.com/users/4981Graphics/repos","events_url":"https://api.github.com/users/4981Graphics/events{/privacy}","received_events_url":"https://api.github.com/users/4981Graphics/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/4981Graphics/4981_Linux_Game","description":null,"fork":true,"url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game","forks_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/forks","keys_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/keys{/key_id}","collaborators_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/teams","hooks_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/hooks","issue_events_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/issues/events{/number}","events_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/events","assignees_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/assignees{/user}","branches_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/branches{/branch}","tags_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/tags","blobs_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/git/refs{/sha}","trees_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/git/trees{/sha}","statuses_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/statuses/{sha}","languages_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/languages","stargazers_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/stargazers","contributors_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/contributors","subscribers_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/subscribers","subscription_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/subscription","commits_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/commits{/sha}","git_commits_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/git/commits{/sha}","comments_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/comments{/number}","issue_comment_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/issues/comments{/number}","contents_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/contents/{+path}","compare_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/compare/{base}...{head}","merges_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/merges","archive_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/downloads","issues_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/issues{/number}","pulls_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/pulls{/number}","milestones_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/milestones{/number}","notifications_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/labels{/name}","releases_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/releases{/id}","deployments_url":"https://api.github.com/repos/4981Graphics/4981_Linux_Game/deployments","created_at":"2017-02-08T00:40:07Z","updated_at":"2017-02-08T00:40:08Z","pushed_at":"2017-03-09T03:24:35Z","git_url":"git://github.com/4981Graphics/4981_Linux_Game.git","ssh_url":"git@github.com:4981Graphics/4981_Linux_Game.git","clone_url":"https://github.com/4981Graphics/4981_Linux_Game.git","svn_url":"https://github.com/4981Graphics/4981_Linux_Game","homepage":null,"size":3003,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":3,"mirror_url":null,"open_issues_count":0,"forks":3,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"bcit-datacomm:develop","ref":"develop","sha":"6ad3220451911c42b263705814964620ec216bf0","user":{"login":"bcit-datacomm","id":25111425,"avatar_url":"https://avatars1.githubusercontent.com/u/25111425?v=3","gravatar_id":"","url":"https://api.github.com/users/bcit-datacomm","html_url":"https://github.com/bcit-datacomm","followers_url":"https://api.github.com/users/bcit-datacomm/followers","following_url":"https://api.github.com/users/bcit-datacomm/following{/other_user}","gists_url":"https://api.github.com/users/bcit-datacomm/gists{/gist_id}","starred_url":"https://api.github.com/users/bcit-datacomm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bcit-datacomm/subscriptions","organizations_url":"https://api.github.com/users/bcit-datacomm/orgs","repos_url":"https://api.github.com/users/bcit-datacomm/repos","events_url":"https://api.github.com/users/bcit-datacomm/events{/privacy}","received_events_url":"https://api.github.com/users/bcit-datacomm/received_events","type":"Organization","site_admin":false},"repo":{"id":79378386,"name":"4981_Linux_Game","full_name":"bcit-datacomm/4981_Linux_Game","owner":{"login":"bcit-datacomm","id":25111425,"avatar_url":"https://avatars1.githubusercontent.com/u/25111425?v=3","gravatar_id":"","url":"https://api.github.com/users/bcit-datacomm","html_url":"https://github.com/bcit-datacomm","followers_url":"https://api.github.com/users/bcit-datacomm/followers","following_url":"https://api.github.com/users/bcit-datacomm/following{/other_user}","gists_url":"https://api.github.com/users/bcit-datacomm/gists{/gist_id}","starred_url":"https://api.github.com/users/bcit-datacomm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bcit-datacomm/subscriptions","organizations_url":"https://api.github.com/users/bcit-datacomm/orgs","repos_url":"https://api.github.com/users/bcit-datacomm/repos","events_url":"https://api.github.com/users/bcit-datacomm/events{/privacy}","received_events_url":"https://api.github.com/users/bcit-datacomm/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/bcit-datacomm/4981_Linux_Game","description":null,"fork":false,"url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game","forks_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/forks","keys_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/teams","hooks_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/hooks","issue_events_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/issues/events{/number}","events_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/events","assignees_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/assignees{/user}","branches_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/branches{/branch}","tags_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/tags","blobs_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/git/refs{/sha}","trees_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/statuses/{sha}","languages_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/languages","stargazers_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/stargazers","contributors_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/contributors","subscribers_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/subscribers","subscription_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/subscription","commits_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/commits{/sha}","git_commits_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/git/commits{/sha}","comments_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/comments{/number}","issue_comment_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/issues/comments{/number}","contents_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/contents/{+path}","compare_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/merges","archive_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/downloads","issues_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/issues{/number}","pulls_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/pulls{/number}","milestones_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/milestones{/number}","notifications_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/labels{/name}","releases_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/releases{/id}","deployments_url":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/deployments","created_at":"2017-01-18T19:57:33Z","updated_at":"2017-03-08T03:55:44Z","pushed_at":"2017-03-09T03:28:32Z","git_url":"git://github.com/bcit-datacomm/4981_Linux_Game.git","ssh_url":"git@github.com:bcit-datacomm/4981_Linux_Game.git","clone_url":"https://github.com/bcit-datacomm/4981_Linux_Game.git","svn_url":"https://github.com/bcit-datacomm/4981_Linux_Game","homepage":null,"size":3002,"stargazers_count":4,"watchers_count":4,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":16,"mirror_url":null,"open_issues_count":1,"forks":16,"open_issues":1,"watchers":4,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/pulls/11"},"html":{"href":"https://github.com/bcit-datacomm/4981_Linux_Game/pull/11"},"issue":{"href":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/issues/11"},"comments":{"href":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/issues/11/comments"},"review_comments":{"href":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/pulls/11/comments"},"review_comment":{"href":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/pulls/11/commits"},"statuses":{"href":"https://api.github.com/repos/bcit-datacomm/4981_Linux_Game/statuses/df198e8e496e7362bb6280eb820411503ec8647b"}}}}
{"actor":{"display_login":"isaacmorneau"}}