All pastes #885769 Raw Edit

Mine

public diff v1 · immutable
#885769 ·published 2008-01-31 02:52 UTC
rendered paste body
--- exult-1.2-orig/exult.cc	2004-05-23 07:14:30.000000000 +0200+++ exult-1.2/exult.cc	2008-01-14 15:28:19.000000000 +0100@@ -89,6 +89,8 @@ #include "exult_si_flx.h" #include "crc.h" +#define FAKE_RMB_KEY SDLK_F7+ #ifndef UNDER_CE using std::atof; using std::cerr;@@ -115,6 +117,8 @@ int usecode_trace = 0;		// Do we trace U 							// 0 = no, 1 = short, 2 = long bool combat_trace = false; // show combat messages? +bool fake_rmb = false; // fake the right mouse button+ // Save game compression level int save_compression = 1; bool ignore_crc = false;@@ -993,7 +997,7 @@ static void Handle_event         	if (dont_move_mode)         		break; 		int x = event.button.x/scale, y = event.button.y/scale;-		if (event.button.button == 1)+		if (event.button.button == 1 && !fake_rmb) 			{ #ifdef USE_EXULTSTUDIO 			if (cheat.in_map_editor())@@ -1028,7 +1032,7 @@ static void Handle_event 				{ 					ActionTarget(0); 				}-		if (event.button.button == 3) {+		if (event.button.button == 1 && fake_rmb) { 			 			// Try removing old queue entry. 			gwin->get_tqueue()->remove(gwin->get_main_actor());@@ -1067,7 +1071,7 @@ static void Handle_event 	        if (dont_move_mode)         	    break; 		int x = event.button.x/scale, y = event.button.y/scale;-		if (event.button.button == 3)+		if (event.button.button == 1 && fake_rmb) 			{ 			uint32 curtime = SDL_GetTicks(); 					// Last click within .5 secs?@@ -1127,7 +1131,7 @@ static void Handle_event 		right_on_gump = false;  					// Dragging with left button?-		if (event.motion.state & SDL_BUTTON(1))+		if (event.motion.state & SDL_BUTTON(1) && !fake_rmb) 			{ #ifdef USE_EXULTSTUDIO			// Painting? 			if (cheat.in_map_editor())@@ -1151,7 +1155,7 @@ static void Handle_event 						event.motion.y / scale); 			} 					// Dragging with right?-		else if ((event.motion.state & SDL_BUTTON(3)))+		else if ((event.motion.state & SDL_BUTTON(1)) && fake_rmb) 			gwin->start_actor(event.motion.x / scale,  			event.motion.y / scale, Mouse::mouse->avatar_speed); #ifdef USE_EXULTSTUDIO			// Painting?@@ -1208,7 +1212,8 @@ static void Handle_event 		break; 	case SDL_KEYDOWN:		// Keystroke. 	case SDL_KEYUP:-		if (!dragging)		// ESC while dragging causes crashes.+		if (event.key.keysym.sym == FAKE_RMB_KEY) { fake_rmb = (event.type==SDL_KEYDOWN); }+		else if (!dragging)		// ESC while dragging causes crashes. 			keybinder->HandleEvent(event); 		break; #ifdef USE_EXULTSTUDIO@@ -1274,7 +1279,7 @@ static int Get_click 			switch (event.type) 				{ 			case SDL_MOUSEBUTTONDOWN:-				if (event.button.button == 3)+				if (event.button.button == 1 && fake_rmb) 					rightclick = true; 				else if (drag_ok && event.button.button == 1) 					{@@ -1285,7 +1290,7 @@ static int Get_click 					} 				break; 			case SDL_MOUSEBUTTONUP:-				if (event.button.button == 1)+				if (event.button.button == 1 && !fake_rmb) 					{ 					x = event.button.x / scale; 					y = event.button.y / scale;@@ -1298,7 +1303,7 @@ static int Get_click 						return (1); 						} 					}-				else if (event.button.button == 3) {+				else if (event.button.button == 1 && fake_rmb) { 					// Just stop.  Don't get followers! 					gwin->get_main_actor()->stop(); 					if (gwin->get_mouse3rd() && rightclick)						{@@ -1318,6 +1323,10 @@ static int Get_click 					dragged = gwin->drag(mx, my); 				break; 				}+			case SDL_KEYUP:+				if (event.key.keysym.sym == FAKE_RMB_KEY)+					fake_rmb = false;+				break; 			case SDL_KEYDOWN: 				{ 				//+++++ convert to unicode first?@@ -1333,6 +1342,9 @@ static int Get_click 				case SDLK_NUMLOCK: case SDLK_CAPSLOCK: 				case SDLK_SCROLLOCK: 					break;+				case FAKE_RMB_KEY:+					fake_rmb = true;+					break; 				default: 					if ((c == 's') &&   					   (event.key.keysym.mod & KMOD_ALT) &&@@ -1553,7 +1565,7 @@ void Wizard_eye 			{		// Right mouse button down? 			int x, y; 			int ms = SDL_GetMouseState(&x, &y);-			if (SDL_BUTTON(3) & ms)+			if (SDL_BUTTON(1) & ms && fake_rmb) 				Shift_wizards_eye(x/scale, y/scale); 			gwin->set_all_dirty(); 			gwin->paint_dirty();