[Scummvm-git-logs] scummvm master -> 119e1bd30d7c5f95fa5113c4700384bc5c217882

sev- sev at scummvm.org
Mon Jan 30 22:58:52 CET 2017


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
119e1bd30d GRAPHICS: More work on rich text formatting


Commit: 119e1bd30d7c5f95fa5113c4700384bc5c217882
    https://github.com/scummvm/scummvm/commit/119e1bd30d7c5f95fa5113c4700384bc5c217882
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2017-01-30T22:58:32+01:00

Commit Message:
GRAPHICS: More work on rich text formatting

Changed paths:
    graphics/macgui/mactext.cpp
    graphics/macgui/mactext.h


diff --git a/graphics/macgui/mactext.cpp b/graphics/macgui/mactext.cpp
index 8d83c19..4e86fcf 100644
--- a/graphics/macgui/mactext.cpp
+++ b/graphics/macgui/mactext.cpp
@@ -56,6 +56,8 @@ MacText::MacText(Common::String s, MacWindowManager *wm, const Font *font, int f
 
 	_defaultFormatting.font = font;
 	_defaultFormatting.wm = wm;
+
+	_currentFormatting = _defaultFormatting;
 }
 
 void MacText::splitString(Common::String &str) {
@@ -64,6 +66,8 @@ void MacText::splitString(Common::String &str) {
 	Common::String tmp;
 	bool prevCR = false;
 
+	int curLine = _text.empty() ? 0 : _text.size() - 1;
+
 	while (*s) {
 		if (*s == '\001') {
 			s++;
@@ -84,6 +88,13 @@ void MacText::splitString(Common::String &str) {
 				debug(8, "******** splitString: fontId: %d, textSlant: %d, unk3: %d, fontSize: %d, p0: %x p1: %x p2: %x",
 						fontId, textSlant, unk3f, fontSize, palinfo1, palinfo2, palinfo3);
 
+				_currentFormatting.setValues(_wm, fontId, textSlant, unk3f, fontSize, palinfo1, palinfo2, palinfo3);
+
+				if (_formatting.empty())
+					_formatting.resize(1);
+
+				_formatting[curLine].push_back(_currentFormatting);
+
 				continue;
 			}
 		}
diff --git a/graphics/macgui/mactext.h b/graphics/macgui/mactext.h
index 241ad65..17c3b39 100644
--- a/graphics/macgui/mactext.h
+++ b/graphics/macgui/mactext.h
@@ -45,26 +45,18 @@ struct MacFontRun {
 
 	MacFontRun() {
 		wm = nullptr;
-		fontId = textSlant = unk3f = fontSize;
-		palinfo1 = palinfo2  = palinfo3;
+		fontId = textSlant = unk3f = fontSize = 0;
+		palinfo1 = palinfo2  = palinfo3 = 0;
 		font = nullptr;
 	}
 
 	MacFontRun(MacWindowManager *wm_, uint16 fontId_, byte textSlant_, byte unk3f_, uint16 fontSize_,
 			uint16 palinfo1_, uint16 palinfo2_, uint16 palinfo3_) {
-		wm        = wm_;
-		fontId    = fontId_;
-		textSlant = textSlant_;
-		unk3f     = unk3f_;
-		fontSize  = fontSize_;
-		palinfo1  = palinfo1_;
-		palinfo2  = palinfo2_;
-		palinfo3  = palinfo3_;
-		font      = nullptr;
+		setValues(wm_, fontId_, textSlant_, unk3f_, fontSize_, palinfo1_, palinfo2_, palinfo3_);
 	}
 
 	void setValues(MacWindowManager *wm_, uint16 fontId_, byte textSlant_, byte unk3f_, uint16 fontSize_,
-			uint16 palinfo1_, uint16 palinfo2_, uint16 palinfo3_, const Font *font_) {
+			uint16 palinfo1_, uint16 palinfo2_, uint16 palinfo3_) {
 		wm        = wm_;
 		fontId    = fontId_;
 		textSlant = textSlant_;
@@ -73,7 +65,7 @@ struct MacFontRun {
 		palinfo1  = palinfo1_;
 		palinfo2  = palinfo2_;
 		palinfo3  = palinfo3_;
-		font      = font_;
+		font      = nullptr;
 	}
 
 	const Font *getFont();
@@ -120,6 +112,7 @@ private:
 
 	Common::Array< Common::Array<MacFontRun> > _formatting;
 	MacFontRun _defaultFormatting;
+	MacFontRun _currentFormatting;
 };
 
 } // End of namespace Graphics





More information about the Scummvm-git-logs mailing list