author | rubidium |
Thu, 03 Apr 2008 13:28:46 +0000 | |
branch | noai |
changeset 9861 | 53fc03195e31 |
parent 9849 | edf90dda4ec4 |
child 9863 | 73647fe2e301 |
permissions | -rw-r--r-- |
9844
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
1 |
/* $Id$ */ |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
2 |
|
9849
edf90dda4ec4
(svn r12517) [NoAI] -Fix: type in @file of ai_error.cpp
truebrain
parents:
9844
diff
changeset
|
3 |
/** @file ai_error.cpp Implementation of AIError. */ |
9844
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
4 |
|
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
5 |
#include "ai_error.hpp" |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
6 |
#include "table/strings.h" |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
7 |
|
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
8 |
AIError::AIErrorMap AIError::error_map = AIError::AIErrorMap(); |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
9 |
AIError::AIErrorMapString AIError::error_map_string = AIError::AIErrorMapString(); |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
10 |
|
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
11 |
/* static */ uint AIError::GetLastError() |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
12 |
{ |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
13 |
if (AIObject::GetLastError() == STR_NULL) return ERR_NONE; |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
14 |
|
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
15 |
AIErrorMap::iterator it = error_map.find(AIObject::GetLastError()); |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
16 |
if (it == error_map.end()) return ERR_UNKNOWN; |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
17 |
return (*it).second; |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
18 |
} |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
19 |
|
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
20 |
/* static */ const char *AIError::GetLastErrorString() |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
21 |
{ |
9861
53fc03195e31
(svn r12544) [NoAI] -Codechange: do not force dependency on OTTD internal strings when defining errors.
rubidium
parents:
9849
diff
changeset
|
22 |
return (*error_map_string.find(AIError::GetLastError())).second; |
9844
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
23 |
} |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
24 |
|
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
25 |
/* static */ void AIError::RegisterErrorMap(uint internal_string_id, uint ai_error_msg) |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
26 |
{ |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
27 |
error_map[internal_string_id] = ai_error_msg; |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
28 |
} |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
29 |
|
9861
53fc03195e31
(svn r12544) [NoAI] -Codechange: do not force dependency on OTTD internal strings when defining errors.
rubidium
parents:
9849
diff
changeset
|
30 |
/* static */ void AIError::RegisterErrorMapString(uint ai_error_msg, const char *message) |
9844
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
31 |
{ |
9861
53fc03195e31
(svn r12544) [NoAI] -Codechange: do not force dependency on OTTD internal strings when defining errors.
rubidium
parents:
9849
diff
changeset
|
32 |
error_map_string[ai_error_msg] = message; |
9844
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
33 |
} |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
34 |
|
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
35 |
/* static */ AIError::ErrorCategories AIError::GetErrorCategory() { |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
36 |
return (AIError::ErrorCategories)(GetLastError() >> (uint)ERR_CAT_BIT_SIZE); |
738b8f69675f
(svn r12510) [NoAI] -Add: added AIError, which allows you to catch errors triggered by commands (Morloth)
truebrain
parents:
diff
changeset
|
37 |
} |