TaskViewer.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #include "..\Utils\InterfaceUtils.h"
  2. class TaskViewer : public MissionObject
  3. {
  4. struct TextLine
  5. {
  6. string text;
  7. float width;
  8. float height;
  9. };
  10. ShaderId Interface_TaskviewerPictureMask_id;
  11. ShaderId Interface_TaskviewerPicture_id;
  12. public:
  13. TaskViewer();
  14. virtual ~TaskViewer();
  15. //Инициализировать объект
  16. virtual bool Create(MOPReader & reader);
  17. //Инициализировать объект
  18. virtual bool EditMode_Create(MOPReader & reader);
  19. //Обновить параметры
  20. virtual bool EditMode_Update(MOPReader & reader);
  21. //Обработчик команд для объекта
  22. virtual void Command(const char * id, dword numParams, const char ** params);
  23. //Показать/скрыть объект
  24. virtual void Show(bool isShow);
  25. //Активировать
  26. virtual void Activate(bool isActive);
  27. #ifndef MIS_STOP_EDIT_FUNCS
  28. //Выделить объект
  29. virtual void EditMode_Select(bool isSelect);
  30. #endif
  31. //Нарисовать модельку
  32. virtual void _cdecl Draw(float dltTime, long level);
  33. //Пересоздать объект
  34. virtual void Restart()
  35. {
  36. ReCreate();
  37. };
  38. private:
  39. //Установить текст
  40. void SetText(const char * rawText);
  41. private:
  42. IBaseTexture * back;
  43. IFont * font;
  44. IBaseTexture * mask;
  45. IVariable * texVar;
  46. array<TextLine> lines;
  47. float totalTextHeight;
  48. float showTime;
  49. float currentTime;
  50. float w, h; //Относительные размеры
  51. float showPosition; //Позиция для показа
  52. static Vector4 vertices[4]; //Вершины для рендера картинок
  53. long drawPriority; //порядок отрисовки ML_GUI# + drawPriority
  54. public:
  55. static const char * comment;
  56. };