Bitmap: Draw line feed and carriage return as whitespace
This commit is contained in:
		
							parent
							
								
									858c40591b
								
							
						
					
					
						commit
						9311aff017
					
				
					 1 changed files with 21 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -798,10 +798,28 @@ void Bitmap::drawText(int x, int y,
 | 
			
		|||
	drawText(IntRect(x, y, width, height), str, align);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static std::string fixupString(const char *str)
 | 
			
		||||
{
 | 
			
		||||
	std::string s(str);
 | 
			
		||||
 | 
			
		||||
	/* RMXP actually draws LF as a "missing gylph" box,
 | 
			
		||||
	 * but since we might have accidentally converted CRs
 | 
			
		||||
	 * to LFs when editing scripts on a Unix OS, treat them
 | 
			
		||||
	 * as white space too */
 | 
			
		||||
	for (size_t i = 0; i < s.size(); ++i)
 | 
			
		||||
		if (s[i] == '\r' || s[i] == '\n')
 | 
			
		||||
			s[i] = ' ';
 | 
			
		||||
 | 
			
		||||
	return s;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Bitmap::drawText(const IntRect &rect, const char *str, int align)
 | 
			
		||||
{
 | 
			
		||||
	GUARD_MEGA;
 | 
			
		||||
 | 
			
		||||
	std::string fixed = fixupString(str);
 | 
			
		||||
	str = fixed.c_str();
 | 
			
		||||
 | 
			
		||||
	if (*str == '\0')
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1029,6 +1047,9 @@ IntRect Bitmap::textSize(const char *str)
 | 
			
		|||
 | 
			
		||||
	TTF_Font *font = p->font->getSdlFont();
 | 
			
		||||
 | 
			
		||||
	std::string fixed = fixupString(str);
 | 
			
		||||
	str = fixed.c_str();
 | 
			
		||||
 | 
			
		||||
	int w, h;
 | 
			
		||||
	TTF_SizeUTF8(font, str, &w, &h);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue