(svn r3306) -Fix: forgot sometimes to switch to the right current_player for AIs
authortruelight
Wed, 14 Dec 2005 19:21:56 +0000
changeset 2761 a94d706a1353
parent 2760 29be62b09f09
child 2762 1582d056d434
(svn r3306) -Fix: forgot sometimes to switch to the right current_player for AIs
ai/ai.c
--- a/ai/ai.c	Wed Dec 14 15:54:23 2005 +0000
+++ b/ai/ai.c	Wed Dec 14 19:21:56 2005 +0000
@@ -390,10 +390,16 @@
 	if (_ai.gpmi) {
 		char *library = NULL;
 		char *params = NULL;
+		int old_cp = _current_player;
 
+		/* Switch to new player, so we can execute stuff */
+		_current_player = player;
+
+		/* Get the library and param to load */
 		ttai_GetNextAIData(&library, &params);
 		gpmi_error_stack_enable = 1;
 
+		/* Load the module */
 		if (library != NULL) {
 			_ai_player[player].module = gpmi_mod_load(library, params);
 			free(library);
@@ -401,6 +407,7 @@
 		if (params != NULL)
 			free(params);
 
+		/* Check for errors */
 		if (_ai_player[player].module == NULL) {
 			DEBUG(ai, 0)("[AI] Failed to load AI, aborting. GPMI error stack:");
 			gpmi_err_stack_process_str(AI_PrintErrorStack);
@@ -408,6 +415,8 @@
 		}
 		gpmi_error_stack_enable = 0;
 
+		/* Switch back to last player */
+		_current_player = old_cp;
 	}
 #endif /* GPMI */