aboutsummaryrefslogtreecommitdiff
BranchCommit messageAuthorAge
atcjitAdd scheduling commandsywang4 years
docFix signal directionY. Wang3 years
l10nRemove line numbers from translation filesupdate-translations.sh8 months
luaatcdebugAdd commands for dangerous mode.Gabriel Pérez-Cerezo4 years
masterAdd new translation strings for new featuresorwell8 days
profilerMore profiling instructionsorwell966 years
timetablerestore can_start_line. Correct way is to use Terminus(continuing) in TT defi...orwell6 days
tracyMore tracy wrappers for path/LZB-related functionsY. Wang10 months
trainhudoxipngY. Wang9 months
trainhud-unifontAdd workarounds to not break MT 5.3.0 compatY. Wang3 years
 
TagDownloadAuthorAge
release-2.6.0advtrains-release-2.6.0.tar.gz  advtrains-release-2.6.0.tar.bz2  advtrains-release-2.6.0.zip  orwell3 months
release-2.5.0advtrains-release-2.5.0.tar.gz  advtrains-release-2.5.0.tar.bz2  advtrains-release-2.5.0.zip  orwell4 months
release-2.4.7advtrains-release-2.4.7.tar.gz  advtrains-release-2.4.7.tar.bz2  advtrains-release-2.4.7.zip  Maverick27979 months
release-2.4.6advtrains-release-2.4.6.tar.gz  advtrains-release-2.4.6.tar.bz2  advtrains-release-2.4.6.zip  1F616EMO11 months
release-2.4.5advtrains-release-2.4.5.tar.gz  advtrains-release-2.4.5.tar.bz2  advtrains-release-2.4.5.zip  gpcf12 months
release-2.4.4advtrains-release-2.4.4.tar.gz  advtrains-release-2.4.4.tar.bz2  advtrains-release-2.4.4.zip  orwell12 months
release-2.4.3advtrains-release-2.4.3.tar.gz  advtrains-release-2.4.3.tar.bz2  advtrains-release-2.4.3.zip  orwell962 years
release-2.4.2advtrains-release-2.4.2.tar.gz  advtrains-release-2.4.2.tar.bz2  advtrains-release-2.4.2.zip  Maverick27972 years
release-1.xadvtrains-release-1.x.tar.gz  advtrains-release-1.x.tar.bz2  advtrains-release-1.x.zip  orwell963 years
release-2.4.1advtrains-release-2.4.1.tar.gz  advtrains-release-2.4.1.tar.bz2  advtrains-release-2.4.1.zip  ywang4 years
release-2.4.0advtrains-release-2.4.0.tar.gz  advtrains-release-2.4.0.tar.bz2  advtrains-release-2.4.0.zip  orwell964 years
release-2.3.1advtrains-release-2.3.1.tar.gz  advtrains-release-2.3.1.tar.bz2  advtrains-release-2.3.1.zip  orwell964 years
release-2.3.0advtrains-release-2.3.0.tar.gz  advtrains-release-2.3.0.tar.bz2  advtrains-release-2.3.0.zip  orwell964 years
release-2.2.1advtrains-release-2.2.1.tar.gz  advtrains-release-2.2.1.tar.bz2  advtrains-release-2.2.1.zip  ywang5 years
release-2.2.0advtrains-release-2.2.0.tar.gz  advtrains-release-2.2.0.tar.bz2  advtrains-release-2.2.0.zip  orwell965 years
release-2.1.4advtrains-release-2.1.4.tar.gz  advtrains-release-2.1.4.tar.bz2  advtrains-release-2.1.4.zip  Blockhead5 years
release-2.1.3advtrains-release-2.1.3.tar.gz  advtrains-release-2.1.3.tar.bz2  advtrains-release-2.1.3.zip  orwell965 years
h137-rc2advtrains-h137-rc2.tar.gz  advtrains-h137-rc2.tar.bz2  advtrains-h137-rc2.zip  ywang5 years
release-2.1.2advtrains-release-2.1.2.tar.gz  advtrains-release-2.1.2.tar.bz2  advtrains-release-2.1.2.zip  Gabriel Pérez-Cerezo5 years
h137-rc1advtrains-h137-rc1.tar.gz  advtrains-h137-rc1.tar.bz2  advtrains-h137-rc1.zip  ywang6 years
MT0.4advtrains-MT0.4.tar.gz  advtrains-MT0.4.tar.bz2  advtrains-MT0.4.zip  Blockhead6 years
opt">::string name; v3s16 angle{0, 0, 0}; v3s16 rotation{0, 0, 0}; s32 margin = 10; void setStyle(StyleList &style); }; struct Paragraph { std::vector<Element> elements; HalignType halign; s32 margin = 10; void setStyle(StyleList &style); }; std::vector<Paragraph> m_paragraphs; // Element style s32 margin = 3; ValignType valign = VALIGN_TOP; BackgroundType background_type = BACKGROUND_NONE; irr::video::SColor background_color; Tag m_root_tag; protected: typedef enum { ER_NONE, ER_TAG, ER_NEWLINE } EndReason; // Parser functions void enterElement(ElementType type); void endElement(); void enterParagraph(); void endParagraph(EndReason reason); void pushChar(wchar_t c); ParsedText::Tag *newTag(const std::string &name, const AttrsList &attrs); ParsedText::Tag *openTag(const std::string &name, const AttrsList &attrs); bool closeTag(const std::string &name); void parseGenericStyleAttr(const std::string &name, const std::string &value, StyleList &style); void parseStyles(const AttrsList &attrs, StyleList &style); void globalTag(const ParsedText::AttrsList &attrs); u32 parseTag(const wchar_t *text, u32 cursor); void parse(const wchar_t *text); std::unordered_map<std::string, StyleList> m_elementtags; std::unordered_map<std::string, StyleList> m_paragraphtags; std::vector<Tag *> m_not_root_tags; std::list<Tag *> m_active_tags; // Current values StyleList m_style; Element *m_element; Paragraph *m_paragraph; bool m_empty_paragraph; EndReason m_end_paragraph_reason; }; class TextDrawer { public: TextDrawer(const wchar_t *text, Client *client, gui::IGUIEnvironment *environment, ISimpleTextureSource *tsrc); void place(const core::rect<s32> &dest_rect); inline s32 getHeight() { return m_height; }; void draw(const core::rect<s32> &clip_rect, const core::position2d<s32> &dest_offset); ParsedText::Element *getElementAt(core::position2d<s32> pos); ParsedText::Tag *m_hovertag; protected: struct RectWithMargin { core::rect<s32> rect; s32 margin; }; ParsedText m_text; Client *m_client; gui::IGUIEnvironment *m_environment; s32 m_height; s32 m_voffset; std::vector<RectWithMargin> m_floating; }; class GUIHyperText : public gui::IGUIElement { public: //! constructor GUIHyperText(const wchar_t *text, gui::IGUIEnvironment *environment, gui::IGUIElement *parent, s32 id, const core::rect<s32> &rectangle, Client *client, ISimpleTextureSource *tsrc); //! destructor virtual ~GUIHyperText(); //! draws the element and its children virtual void draw(); core::dimension2du getTextDimension(); bool OnEvent(const SEvent &event); protected: // GUI members Client *m_client; GUIScrollBar *m_vscrollbar; TextDrawer m_drawer; // Positioning u32 m_scrollbar_width; core::rect<s32> m_display_text_rect; core::position2d<s32> m_text_scrollpos; ParsedText::Element *getElementAt(s32 X, s32 Y); void checkHover(s32 X, s32 Y); };