(svn r3251) -Fix: report errors from GPMI in a more detailed way (Igor2Code)
authortruelight
Thu, 01 Dec 2005 09:34:40 +0000
changeset 2707 4f3a8819eb6e
parent 2706 d31bd0aa0096
child 2708 9d1a8d5dc3ea
(svn r3251) -Fix: report errors from GPMI in a more detailed way (Igor2Code)
ai/ai.c
--- a/ai/ai.c	Wed Nov 30 16:10:19 2005 +0000
+++ b/ai/ai.c	Thu Dec 01 09:34:40 2005 +0000
@@ -243,6 +243,15 @@
 
 	ottd_SetAIParam(_ai.gpmi_param);
 }
+
+/**
+ * Dump an entry of the GPMI error stack (callback routine). This helps the user to trace errors back to their roots.
+ */
+void AI_PrintErrorStack(gpmi_err_stack_t *entry, char *string)
+{
+	DEBUG(ai, 0)(string);
+}
+
 #endif /* GPMI */
 
 /**
@@ -262,6 +271,7 @@
 		char *params = NULL;
 
 		ottd_GetNextAIData(&library, &params);
+		gpmi_error_stack_enable = 1;
 
 		if (library != NULL) {
 			_ai_player[player].module = gpmi_mod_load(library, params);
@@ -271,9 +281,12 @@
 			free(params);
 
 		if (_ai_player[player].module == NULL) {
-			DEBUG(ai, 0)("[AI] Failed to load AI, aborting..");
+			DEBUG(ai, 0)("[AI] Failed to load AI, aborting. GPMI error stack:");
+			gpmi_err_stack_process_str(AI_PrintErrorStack);
 			return;
 		}
+		gpmi_error_stack_enable = 0;
+
 	}
 #endif /* GPMI */