summaryrefslogtreecommitdiff
path: root/ai/ai.c
diff options
context:
space:
mode:
authortruelight <truelight@openttd.org>2005-12-14 19:21:56 +0000
committertruelight <truelight@openttd.org>2005-12-14 19:21:56 +0000
commit6884453b66a71c5e1c04b3dcaac757ea60545926 (patch)
tree7e2bbf7218dc723edbdde5147281ee94592c62a2 /ai/ai.c
parent531073bea0becfb8c68b4cb341efc42815f539ed (diff)
downloadopenttd-6884453b66a71c5e1c04b3dcaac757ea60545926.tar.xz
(svn r3306) -Fix: forgot sometimes to switch to the right current_player for AIs
Diffstat (limited to 'ai/ai.c')
-rw-r--r--ai/ai.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/ai/ai.c b/ai/ai.c
index ffb5cccc3..8f77e4822 100644
--- a/ai/ai.c
+++ b/ai/ai.c
@@ -390,10 +390,16 @@ void AI_StartNewAI(PlayerID player)
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 @@ void AI_StartNewAI(PlayerID player)
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 @@ void AI_StartNewAI(PlayerID player)
}
gpmi_error_stack_enable = 0;
+ /* Switch back to last player */
+ _current_player = old_cp;
}
#endif /* GPMI */