diff options
Diffstat (limited to 'src/administration.cpp')
| -rw-r--r-- | src/administration.cpp | 18 |
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(); } |
