forked from ReScrap/ScrapHacks
		
	remove hook wrappers and directly call Hook::addr() at the start of MainLoop(), add console redirection
This commit is contained in:
		
							parent
							
								
									20a4d53b22
								
							
						
					
					
						commit
						e2464653c7
					
				
					 1 changed files with 16 additions and 20 deletions
				
			
		|  | @ -1,5 +1,4 @@ | ||||||
| #include <string> | #include <string> | ||||||
| #include <sstream> |  | ||||||
| #include <vector> | #include <vector> | ||||||
| #include <map> | #include <map> | ||||||
| #include <iomanip> | #include <iomanip> | ||||||
|  | @ -18,15 +17,18 @@ using namespace std; | ||||||
| #include "Hook.h" | #include "Hook.h" | ||||||
| #include "VMT_Hook.h" | #include "VMT_Hook.h" | ||||||
| #include "D3D8_Hook.h" | #include "D3D8_Hook.h" | ||||||
| 
 | #include "REPL.h" | ||||||
|  | bool do_sleep=true; | ||||||
| HMODULE hD3D8Dll = 0; | HMODULE hD3D8Dll = 0; | ||||||
| 
 | 
 | ||||||
| bool initialized = false; | bool initialized = false; | ||||||
| bool running = true; | bool running = true; | ||||||
|  | bool redirect_console = false; | ||||||
| HMODULE mod = 0; | HMODULE mod = 0; | ||||||
| 
 | 
 | ||||||
| void DllUnload(HMODULE); | void DllUnload(HMODULE); | ||||||
| void hook_exit(); | int hooked_console(const char *); | ||||||
|  | void H_Exit(); | ||||||
| 
 | 
 | ||||||
| size_t size_ht(HashTable<EntityList> *ht) | size_t size_ht(HashTable<EntityList> *ht) | ||||||
| { | { | ||||||
|  | @ -119,9 +121,13 @@ size_t dump_ht(HashTable<Entity> *ht) | ||||||
| void MainLoop(HMODULE mod) | void MainLoop(HMODULE mod) | ||||||
| { | { | ||||||
|     Sleep(100); |     Sleep(100); | ||||||
|     hook_exit(); |     Hook::addr(reinterpret_cast<void *>(P_SCRAP_EXIT), H_Exit); | ||||||
|  |     Hook::addr(reinterpret_cast<void *>(P_D3DCHECK),hook_d3d8); | ||||||
|  |     Hook::addr(reinterpret_cast<void *>(P_CON_HANDLER), hooked_console); | ||||||
|  |     overlay=true; | ||||||
|     cout << "[*] Starting main Loop" << endl; |     cout << "[*] Starting main Loop" << endl; | ||||||
|     cout << endl; |     cout << endl; | ||||||
|  |     cout << "[F2 ] Redirect game console to ScapHacks console" << endl; | ||||||
|     cout << "[F3 ] Unload ScrapHacks" << endl; |     cout << "[F3 ] Unload ScrapHacks" << endl; | ||||||
|     cout << "[F5 ] Show Overlay" << endl; |     cout << "[F5 ] Show Overlay" << endl; | ||||||
|     cout << "[F6 ] Show Alarm status" << endl; |     cout << "[F6 ] Show Alarm status" << endl; | ||||||
|  | @ -134,11 +140,14 @@ void MainLoop(HMODULE mod) | ||||||
|     while (running) |     while (running) | ||||||
|     { |     { | ||||||
|         Sleep(100); |         Sleep(100); | ||||||
| 
 |  | ||||||
|         while (key_down('F')) |         while (key_down('F')) | ||||||
|         { |         { | ||||||
|             scrap_exec("dbg.brake()"); |             scrap_exec("dbg.brake()"); | ||||||
|         } |         } | ||||||
|  |         if (key_down_norepeat(VK_F2)) | ||||||
|  |         { | ||||||
|  |             redirect_console = !redirect_console; | ||||||
|  |         } | ||||||
|         if (key_down_norepeat(VK_F3)) |         if (key_down_norepeat(VK_F3)) | ||||||
|         { |         { | ||||||
|             break; |             break; | ||||||
|  | @ -148,6 +157,7 @@ void MainLoop(HMODULE mod) | ||||||
|         { |         { | ||||||
|             overlay = !overlay; |             overlay = !overlay; | ||||||
|         } |         } | ||||||
|  |          | ||||||
|         if (key_down_norepeat(VK_F6)) |         if (key_down_norepeat(VK_F6)) | ||||||
|         { |         { | ||||||
| 
 | 
 | ||||||
|  | @ -193,33 +203,19 @@ void InitConsole() | ||||||
|     SetupConsole(me); |     SetupConsole(me); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void handle_command(const char *cmd) |  | ||||||
| { |  | ||||||
|     cout << "CMD: " << cmd << endl; |  | ||||||
|     scrap_log(0x00ff00, "HAXX: "); |  | ||||||
|     scrap_log(0x00ff00, cmd); |  | ||||||
|     scrap_log(0x00ff00, "\n"); |  | ||||||
|     return; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| int hooked_console(const char *cmd) | int hooked_console(const char *cmd) | ||||||
| { | { | ||||||
|     typedef int(_cdecl * t_func)(const char *); |     typedef int(_cdecl * t_func)(const char *); | ||||||
|     shared_ptr<Hook> hook = Hook::get(hooked_console); |  | ||||||
|     if (cmd[0] == '$') |     if (cmd[0] == '$') | ||||||
|     { |     { | ||||||
|         handle_command(++cmd); |         handle_command(++cmd); | ||||||
|         return 0; |         return 0; | ||||||
|     } |     } | ||||||
|  |     shared_ptr<Hook> hook = Hook::get(hooked_console); | ||||||
|     int ret = hook->func<t_func>(cmd); |     int ret = hook->func<t_func>(cmd); | ||||||
|     return ret; |     return ret; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void hook_console() |  | ||||||
| { |  | ||||||
|     Hook::addr(reinterpret_cast<void *>(P_CON_HANDLER), hooked_console); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void H_Exit() | void H_Exit() | ||||||
| { | { | ||||||
|     typedef void(_cdecl * t_func)(void); |     typedef void(_cdecl * t_func)(void); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue