{"action":"created","comment":{"url":"https://api.github.com/repos/mumble-voip/mumble/pulls/comments/89632946","pull_request_review_id":10178176,"id":89632946,"diff_hunk":"@@ -3,10 +3,58 @@\n // that can be found in the LICENSE file at the root of the\n // Mumble source tree or at <https://www.mumble.info/LICENSE>.\n \n+#ifdef WIN32\n #include \"../mumble_plugin_win32_32bit.h\" // Include standard plugin header.\n+#else\n+#include \"../mumble_plugin_linux_32bit.h\" // Include standard plugin header.\n+#endif\n+\n #include \"../mumble_plugin_utils.h\" // Include plugin header for special functions, like \"escape\".\n \n-procptr32_t serverid_steamclient, playerid_engine, player_server; // Variables to contain modules addresses\n+// Variables to contain modules addresses\n+procptr32_t steamclient = 0;\n+procptr32_t server = 0;\n+procptr32_t engine = 0;\n+\n+#ifdef WIN32\n+// Memory addresses\n+const procptr32_t state_address        = 0x6ACBD5;\n+const procptr32_t avatar_pos_address   = 0x6B9E1C;\n+const procptr32_t camera_pos_address   = 0x774B98;\n+const procptr32_t avatar_front_address = 0x774BF8;\n+const procptr32_t avatar_top_address   = 0x774C28;\n+const procptr32_t host_address         = 0x772B24;\n+const procptr32_t servername_address   = 0x772D2C;\n+const procptr32_t map_address          = 0x772C28;\n+const procptr32_t serverid_steamclient_offset = 0x95E56D;\n+const procptr32_t player_server_offset        = 0x7F87BC;\n+const procptr32_t playerid_engine_offset      = 0x4EBF88;\n+// Module names\n+const wchar_t * exe_name         = L\"left4dead2.exe\";","path":"plugins/l4d2/l4d2.cpp","position":32,"original_position":32,"commit_id":"cc6ad53510f6af7e03f9361932f11f7d03d1cd0a","original_commit_id":"cc6ad53510f6af7e03f9361932f11f7d03d1cd0a","user":{"login":"davidebeatrici","id":5897523,"avatar_url":"https://avatars.githubusercontent.com/u/5897523?v=3","gravatar_id":"","url":"https://api.github.com/users/davidebeatrici","html_url":"https://github.com/davidebeatrici","followers_url":"https://api.github.com/users/davidebeatrici/followers","following_url":"https://api.github.com/users/davidebeatrici/following{/other_user}","gists_url":"https://api.github.com/users/davidebeatrici/gists{/gist_id}","starred_url":"https://api.github.com/users/davidebeatrici/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidebeatrici/subscriptions","organizations_url":"https://api.github.com/users/davidebeatrici/orgs","repos_url":"https://api.github.com/users/davidebeatrici/repos","events_url":"https://api.github.com/users/davidebeatrici/events{/privacy}","received_events_url":"https://api.github.com/users/davidebeatrici/received_events","type":"User","site_admin":false},"body":"Right.\r\nWhat about the indentation? It seems like there are tabs and spaces mixed.","created_at":"2016-11-25T15:33:24Z","updated_at":"2016-11-25T15:33:24Z","html_url":"https://github.com/mumble-voip/mumble/pull/2650#discussion_r89632946","pull_request_url":"https://api.github.com/repos/mumble-voip/mumble/pulls/2650","_links":{"self":{"href":"https://api.github.com/repos/mumble-voip/mumble/pulls/comments/89632946"},"html":{"href":"https://github.com/mumble-voip/mumble/pull/2650#discussion_r89632946"},"pull_request":{"href":"https://api.github.com/repos/mumble-voip/mumble/pulls/2650"}}},"pull_request":{"url":"https://api.github.com/repos/mumble-voip/mumble/pulls/2650","id":95036520,"html_url":"https://github.com/mumble-voip/mumble/pull/2650","diff_url":"https://github.com/mumble-voip/mumble/pull/2650.diff","patch_url":"https://github.com/mumble-voip/mumble/pull/2650.patch","issue_url":"https://api.github.com/repos/mumble-voip/mumble/issues/2650","number":2650,"state":"open","locked":false,"title":"L4d2  Plugin Simplification","user":{"login":"EmperorArthur","id":1515637,"avatar_url":"https://avatars.githubusercontent.com/u/1515637?v=3","gravatar_id":"","url":"https://api.github.com/users/EmperorArthur","html_url":"https://github.com/EmperorArthur","followers_url":"https://api.github.com/users/EmperorArthur/followers","following_url":"https://api.github.com/users/EmperorArthur/following{/other_user}","gists_url":"https://api.github.com/users/EmperorArthur/gists{/gist_id}","starred_url":"https://api.github.com/users/EmperorArthur/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EmperorArthur/subscriptions","organizations_url":"https://api.github.com/users/EmperorArthur/orgs","repos_url":"https://api.github.com/users/EmperorArthur/repos","events_url":"https://api.github.com/users/EmperorArthur/events{/privacy}","received_events_url":"https://api.github.com/users/EmperorArthur/received_events","type":"User","site_admin":false},"body":"While working on a plugin for a different game I noticed quite a bit of overlap between the Windows and Linux versions of the l4d2 plugin.\r\n\r\nI've separated the constants from the program logic, and have combined the two files.  This should massively ease future maintenance, and allow for easier updating should those constants change.\r\n\r\nNote:  I've compiled this on Linux, but can't test it.  I do not have a Windows build system at this time.","created_at":"2016-11-23T16:28:35Z","updated_at":"2016-11-25T15:33:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c3e9b5670a9d56cc4a87b80bbf1a5afed8268b44","assignee":{"login":"davidebeatrici","id":5897523,"avatar_url":"https://avatars.githubusercontent.com/u/5897523?v=3","gravatar_id":"","url":"https://api.github.com/users/davidebeatrici","html_url":"https://github.com/davidebeatrici","followers_url":"https://api.github.com/users/davidebeatrici/followers","following_url":"https://api.github.com/users/davidebeatrici/following{/other_user}","gists_url":"https://api.github.com/users/davidebeatrici/gists{/gist_id}","starred_url":"https://api.github.com/users/davidebeatrici/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidebeatrici/subscriptions","organizations_url":"https://api.github.com/users/davidebeatrici/orgs","repos_url":"https://api.github.com/users/davidebeatrici/repos","events_url":"https://api.github.com/users/davidebeatrici/events{/privacy}","received_events_url":"https://api.github.com/users/davidebeatrici/received_events","type":"User","site_admin":false},"assignees":[{"login":"davidebeatrici","id":5897523,"avatar_url":"https://avatars.githubusercontent.com/u/5897523?v=3","gravatar_id":"","url":"https://api.github.com/users/davidebeatrici","html_url":"https://github.com/davidebeatrici","followers_url":"https://api.github.com/users/davidebeatrici/followers","following_url":"https://api.github.com/users/davidebeatrici/following{/other_user}","gists_url":"https://api.github.com/users/davidebeatrici/gists{/gist_id}","starred_url":"https://api.github.com/users/davidebeatrici/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidebeatrici/subscriptions","organizations_url":"https://api.github.com/users/davidebeatrici/orgs","repos_url":"https://api.github.com/users/davidebeatrici/repos","events_url":"https://api.github.com/users/davidebeatrici/events{/privacy}","received_events_url":"https://api.github.com/users/davidebeatrici/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/mumble-voip/mumble/pulls/2650/commits","review_comments_url":"https://api.github.com/repos/mumble-voip/mumble/pulls/2650/comments","review_comment_url":"https://api.github.com/repos/mumble-voip/mumble/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mumble-voip/mumble/issues/2650/comments","statuses_url":"https://api.github.com/repos/mumble-voip/mumble/statuses/cc6ad53510f6af7e03f9361932f11f7d03d1cd0a","head":{"label":"EmperorArthur:l4d2_simplification","ref":"l4d2_simplification","sha":"cc6ad53510f6af7e03f9361932f11f7d03d1cd0a","user":{"login":"EmperorArthur","id":1515637,"avatar_url":"https://avatars.githubusercontent.com/u/1515637?v=3","gravatar_id":"","url":"https://api.github.com/users/EmperorArthur","html_url":"https://github.com/EmperorArthur","followers_url":"https://api.github.com/users/EmperorArthur/followers","following_url":"https://api.github.com/users/EmperorArthur/following{/other_user}","gists_url":"https://api.github.com/users/EmperorArthur/gists{/gist_id}","starred_url":"https://api.github.com/users/EmperorArthur/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EmperorArthur/subscriptions","organizations_url":"https://api.github.com/users/EmperorArthur/orgs","repos_url":"https://api.github.com/users/EmperorArthur/repos","events_url":"https://api.github.com/users/EmperorArthur/events{/privacy}","received_events_url":"https://api.github.com/users/EmperorArthur/received_events","type":"User","site_admin":false},"repo":{"id":72699430,"name":"mumble","full_name":"EmperorArthur/mumble","owner":{"login":"EmperorArthur","id":1515637,"avatar_url":"https://avatars.githubusercontent.com/u/1515637?v=3","gravatar_id":"","url":"https://api.github.com/users/EmperorArthur","html_url":"https://github.com/EmperorArthur","followers_url":"https://api.github.com/users/EmperorArthur/followers","following_url":"https://api.github.com/users/EmperorArthur/following{/other_user}","gists_url":"https://api.github.com/users/EmperorArthur/gists{/gist_id}","starred_url":"https://api.github.com/users/EmperorArthur/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EmperorArthur/subscriptions","organizations_url":"https://api.github.com/users/EmperorArthur/orgs","repos_url":"https://api.github.com/users/EmperorArthur/repos","events_url":"https://api.github.com/users/EmperorArthur/events{/privacy}","received_events_url":"https://api.github.com/users/EmperorArthur/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/EmperorArthur/mumble","description":"Mumble VoIP Client/Server","fork":true,"url":"https://api.github.com/repos/EmperorArthur/mumble","forks_url":"https://api.github.com/repos/EmperorArthur/mumble/forks","keys_url":"https://api.github.com/repos/EmperorArthur/mumble/keys{/key_id}","collaborators_url":"https://api.github.com/repos/EmperorArthur/mumble/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/EmperorArthur/mumble/teams","hooks_url":"https://api.github.com/repos/EmperorArthur/mumble/hooks","issue_events_url":"https://api.github.com/repos/EmperorArthur/mumble/issues/events{/number}","events_url":"https://api.github.com/repos/EmperorArthur/mumble/events","assignees_url":"https://api.github.com/repos/EmperorArthur/mumble/assignees{/user}","branches_url":"https://api.github.com/repos/EmperorArthur/mumble/branches{/branch}","tags_url":"https://api.github.com/repos/EmperorArthur/mumble/tags","blobs_url":"https://api.github.com/repos/EmperorArthur/mumble/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/EmperorArthur/mumble/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/EmperorArthur/mumble/git/refs{/sha}","trees_url":"https://api.github.com/repos/EmperorArthur/mumble/git/trees{/sha}","statuses_url":"https://api.github.com/repos/EmperorArthur/mumble/statuses/{sha}","languages_url":"https://api.github.com/repos/EmperorArthur/mumble/languages","stargazers_url":"https://api.github.com/repos/EmperorArthur/mumble/stargazers","contributors_url":"https://api.github.com/repos/EmperorArthur/mumble/contributors","subscribers_url":"https://api.github.com/repos/EmperorArthur/mumble/subscribers","subscription_url":"https://api.github.com/repos/EmperorArthur/mumble/subscription","commits_url":"https://api.github.com/repos/EmperorArthur/mumble/commits{/sha}","git_commits_url":"https://api.github.com/repos/EmperorArthur/mumble/git/commits{/sha}","comments_url":"https://api.github.com/repos/EmperorArthur/mumble/comments{/number}","issue_comment_url":"https://api.github.com/repos/EmperorArthur/mumble/issues/comments{/number}","contents_url":"https://api.github.com/repos/EmperorArthur/mumble/contents/{+path}","compare_url":"https://api.github.com/repos/EmperorArthur/mumble/compare/{base}...{head}","merges_url":"https://api.github.com/repos/EmperorArthur/mumble/merges","archive_url":"https://api.github.com/repos/EmperorArthur/mumble/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/EmperorArthur/mumble/downloads","issues_url":"https://api.github.com/repos/EmperorArthur/mumble/issues{/number}","pulls_url":"https://api.github.com/repos/EmperorArthur/mumble/pulls{/number}","milestones_url":"https://api.github.com/repos/EmperorArthur/mumble/milestones{/number}","notifications_url":"https://api.github.com/repos/EmperorArthur/mumble/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/EmperorArthur/mumble/labels{/name}","releases_url":"https://api.github.com/repos/EmperorArthur/mumble/releases{/id}","deployments_url":"https://api.github.com/repos/EmperorArthur/mumble/deployments","created_at":"2016-11-03T02:07:16Z","updated_at":"2016-11-03T02:07:20Z","pushed_at":"2016-11-25T14:27:19Z","git_url":"git://github.com/EmperorArthur/mumble.git","ssh_url":"git@github.com:EmperorArthur/mumble.git","clone_url":"https://github.com/EmperorArthur/mumble.git","svn_url":"https://github.com/EmperorArthur/mumble","homepage":"https://www.mumble.info","size":36307,"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":"mumble-voip:master","ref":"master","sha":"54eab8d4bc2f5aa7ddd6b599202f9fe017011328","user":{"login":"mumble-voip","id":639008,"avatar_url":"https://avatars.githubusercontent.com/u/639008?v=3","gravatar_id":"","url":"https://api.github.com/users/mumble-voip","html_url":"https://github.com/mumble-voip","followers_url":"https://api.github.com/users/mumble-voip/followers","following_url":"https://api.github.com/users/mumble-voip/following{/other_user}","gists_url":"https://api.github.com/users/mumble-voip/gists{/gist_id}","starred_url":"https://api.github.com/users/mumble-voip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mumble-voip/subscriptions","organizations_url":"https://api.github.com/users/mumble-voip/orgs","repos_url":"https://api.github.com/users/mumble-voip/repos","events_url":"https://api.github.com/users/mumble-voip/events{/privacy}","received_events_url":"https://api.github.com/users/mumble-voip/received_events","type":"Organization","site_admin":false},"repo":{"id":1413319,"name":"mumble","full_name":"mumble-voip/mumble","owner":{"login":"mumble-voip","id":639008,"avatar_url":"https://avatars.githubusercontent.com/u/639008?v=3","gravatar_id":"","url":"https://api.github.com/users/mumble-voip","html_url":"https://github.com/mumble-voip","followers_url":"https://api.github.com/users/mumble-voip/followers","following_url":"https://api.github.com/users/mumble-voip/following{/other_user}","gists_url":"https://api.github.com/users/mumble-voip/gists{/gist_id}","starred_url":"https://api.github.com/users/mumble-voip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mumble-voip/subscriptions","organizations_url":"https://api.github.com/users/mumble-voip/orgs","repos_url":"https://api.github.com/users/mumble-voip/repos","events_url":"https://api.github.com/users/mumble-voip/events{/privacy}","received_events_url":"https://api.github.com/users/mumble-voip/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mumble-voip/mumble","description":"Mumble VoIP Client/Server","fork":false,"url":"https://api.github.com/repos/mumble-voip/mumble","forks_url":"https://api.github.com/repos/mumble-voip/mumble/forks","keys_url":"https://api.github.com/repos/mumble-voip/mumble/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mumble-voip/mumble/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mumble-voip/mumble/teams","hooks_url":"https://api.github.com/repos/mumble-voip/mumble/hooks","issue_events_url":"https://api.github.com/repos/mumble-voip/mumble/issues/events{/number}","events_url":"https://api.github.com/repos/mumble-voip/mumble/events","assignees_url":"https://api.github.com/repos/mumble-voip/mumble/assignees{/user}","branches_url":"https://api.github.com/repos/mumble-voip/mumble/branches{/branch}","tags_url":"https://api.github.com/repos/mumble-voip/mumble/tags","blobs_url":"https://api.github.com/repos/mumble-voip/mumble/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mumble-voip/mumble/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mumble-voip/mumble/git/refs{/sha}","trees_url":"https://api.github.com/repos/mumble-voip/mumble/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mumble-voip/mumble/statuses/{sha}","languages_url":"https://api.github.com/repos/mumble-voip/mumble/languages","stargazers_url":"https://api.github.com/repos/mumble-voip/mumble/stargazers","contributors_url":"https://api.github.com/repos/mumble-voip/mumble/contributors","subscribers_url":"https://api.github.com/repos/mumble-voip/mumble/subscribers","subscription_url":"https://api.github.com/repos/mumble-voip/mumble/subscription","commits_url":"https://api.github.com/repos/mumble-voip/mumble/commits{/sha}","git_commits_url":"https://api.github.com/repos/mumble-voip/mumble/git/commits{/sha}","comments_url":"https://api.github.com/repos/mumble-voip/mumble/comments{/number}","issue_comment_url":"https://api.github.com/repos/mumble-voip/mumble/issues/comments{/number}","contents_url":"https://api.github.com/repos/mumble-voip/mumble/contents/{+path}","compare_url":"https://api.github.com/repos/mumble-voip/mumble/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mumble-voip/mumble/merges","archive_url":"https://api.github.com/repos/mumble-voip/mumble/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mumble-voip/mumble/downloads","issues_url":"https://api.github.com/repos/mumble-voip/mumble/issues{/number}","pulls_url":"https://api.github.com/repos/mumble-voip/mumble/pulls{/number}","milestones_url":"https://api.github.com/repos/mumble-voip/mumble/milestones{/number}","notifications_url":"https://api.github.com/repos/mumble-voip/mumble/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mumble-voip/mumble/labels{/name}","releases_url":"https://api.github.com/repos/mumble-voip/mumble/releases{/id}","deployments_url":"https://api.github.com/repos/mumble-voip/mumble/deployments","created_at":"2011-02-26T01:30:08Z","updated_at":"2016-11-24T22:43:18Z","pushed_at":"2016-11-25T14:27:20Z","git_url":"git://github.com/mumble-voip/mumble.git","ssh_url":"git@github.com:mumble-voip/mumble.git","clone_url":"https://github.com/mumble-voip/mumble.git","svn_url":"https://github.com/mumble-voip/mumble","homepage":"https://www.mumble.info","size":43502,"stargazers_count":1470,"watchers_count":1470,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":439,"mirror_url":null,"open_issues_count":592,"forks":439,"open_issues":592,"watchers":1470,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mumble-voip/mumble/pulls/2650"},"html":{"href":"https://github.com/mumble-voip/mumble/pull/2650"},"issue":{"href":"https://api.github.com/repos/mumble-voip/mumble/issues/2650"},"comments":{"href":"https://api.github.com/repos/mumble-voip/mumble/issues/2650/comments"},"review_comments":{"href":"https://api.github.com/repos/mumble-voip/mumble/pulls/2650/comments"},"review_comment":{"href":"https://api.github.com/repos/mumble-voip/mumble/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mumble-voip/mumble/pulls/2650/commits"},"statuses":{"href":"https://api.github.com/repos/mumble-voip/mumble/statuses/cc6ad53510f6af7e03f9361932f11f7d03d1cd0a"}}}}
{"actor":{"display_login":"davidebeatrici"}}