summaryrefslogtreecommitdiff
path: root/src/administration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/administration.cpp')
-rw-r--r--src/administration.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/administration.cpp b/src/administration.cpp
index 182dabd..9b0144e 100644
--- a/src/administration.cpp
+++ b/src/administration.cpp
@@ -135,6 +135,7 @@ void administration_create()
strops::copy(g_administration.path, "", sizeof(g_administration.path));
memops::zero(&g_administration.ai_service, sizeof(ai_service));
+ memops::zero(&g_administration.all_ai_services, sizeof(g_administration.all_ai_services));
// Load all tax rates.
for (s32 i = 0; i < country::get_count(); i++)
@@ -232,11 +233,16 @@ void administration::create_default(char* save_file)
// Other functions.
// =======================
-ai_service administration::get_ai_service()
+ai_service administration::get_active_ai_service()
{
return g_administration.ai_service;
}
+ai_service administration::get_ai_service(ai_provider provider)
+{
+ return g_administration.all_ai_services[(u32)provider];
+}
+
email_service administration::get_email_service()
{
return g_administration.email_service;
@@ -248,9 +254,15 @@ void administration::set_email_service(email_service provider)
if (administration_data_changed_event_callback) administration_data_changed_event_callback();
}
-void administration::set_ai_service(ai_service provider)
+void administration::import_ai_service(ai_service service)
+{
+ g_administration.all_ai_services[(u32)service.provider] = service;
+}
+
+void administration::set_active_ai_service(ai_service service)
{
- g_administration.ai_service = provider;
+ g_administration.all_ai_services[(u32)service.provider] = service;
+ g_administration.ai_service = service;
if (administration_data_changed_event_callback) administration_data_changed_event_callback();
}