errorproperties.c 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. //! Class which holds the properties and handling of an error
  2. class ErrorProperties
  3. {
  4. const string EP_HEADER_FORMAT_STRING = "%1 (%2)"; //!< Formating for header (%1 = Header; %2 = ErrorCode)
  5. const string EP_MESSAGE_FORMAT_STRING = "%1\n(%2)"; //!< Formating for message (%1 = Message; %2 = AdditionalInfo)
  6. protected string m_Message; //!< Message which will appear on Client
  7. protected string m_ServerMessage; //!< Message which will appear on Server
  8. void ErrorProperties(string message, string serverMessage)
  9. {
  10. m_Message = message;
  11. m_ServerMessage = serverMessage;
  12. }
  13. void HandleError(int errorCode, string additionalInfo = "") {}
  14. string GetClientMessage(string additionalInfo = "")
  15. {
  16. if ( additionalInfo != "" )
  17. return string.Format(EP_MESSAGE_FORMAT_STRING, m_Message, additionalInfo);
  18. else
  19. return m_Message;
  20. }
  21. string GetServerMessage(string additionalInfo = "")
  22. {
  23. if ( additionalInfo != "" )
  24. return string.Format(EP_MESSAGE_FORMAT_STRING, m_ServerMessage, additionalInfo);
  25. else
  26. return m_ServerMessage;
  27. }
  28. }
  29. //! Error which shows a generic Dialogue UI
  30. class DialogueErrorProperties : ErrorProperties
  31. {
  32. protected string m_Header;
  33. protected int m_DialogButtonType;
  34. protected int m_DefaultButton;
  35. protected int m_DialogMeaningType;
  36. protected UIScriptedMenu m_Handler;
  37. protected bool m_DisplayAdditionalInfo;
  38. void DialogueErrorProperties(string message, string serverMessage, string header, UIScriptedMenu handler = null, int dialogButtonType = DBT_OK, int defaultButton = DBB_OK, int dialogMeaningType = DMT_EXCLAMATION, bool displayAdditionalInfo = true)
  39. {
  40. m_Header = header;
  41. m_DialogButtonType = dialogButtonType;
  42. m_DefaultButton = defaultButton;
  43. m_DialogMeaningType = dialogMeaningType;
  44. m_Handler = handler;
  45. m_DisplayAdditionalInfo = displayAdditionalInfo;
  46. }
  47. override void HandleError(int errorCode, string additionalInfo = "")
  48. {
  49. #ifdef NO_GUI
  50. return; //do not display error if GUI is disabled
  51. #endif
  52. #ifdef SERVER
  53. return;
  54. #else
  55. string message;
  56. if (m_DisplayAdditionalInfo && additionalInfo != "")
  57. message = string.Format(EP_MESSAGE_FORMAT_STRING, m_Message, additionalInfo);
  58. else
  59. message = m_Message;
  60. GetGame().GetUIManager().ShowDialog(
  61. string.Format(EP_HEADER_FORMAT_STRING, m_Header, ErrorModuleHandler.GetErrorHex(errorCode)),
  62. message, errorCode, m_DialogButtonType, m_DefaultButton, m_DialogMeaningType, m_Handler);
  63. #endif
  64. }
  65. string GetHeader() { return m_Message; }
  66. int GetDialogButtonType() { return m_DialogButtonType; }
  67. int GetDefaultButton() { return m_DefaultButton; }
  68. int GetDialogMeaningType() { return m_DialogMeaningType; }
  69. UIScriptedMenu GetHandler() { return m_Handler; }
  70. }