Пример #1
0
void TypewriterText::Draw(CDisplay& DisplayRef)
{
	for(int i = 0, k = 0; k < mFirstLine && i < mStringLength; i++)
	{
		if(mString[i] == '\n')
			k++;
	}
	if(i >= mStringLength){
		return; //UH, WHAT?
	}
	Font* OurFont = GetFontBySizeIndex(mFontNumber);
	if(!OurFont)
		return;
	//WE'RE AT OUR STARTING POINT.
	POINT Origin;
	Origin.x = mXOrigin;
	Origin.y = mYOrigin;
	int DrawnLines = 1;
	for(; i < mCurrentStringPosition && DrawnLines <= mMaxLinesToDraw; i++)
	{
		if(mString[i] == '\n'){
			Origin.y += OurFont->GetCharHeight();
			DrawnLines++;
			Origin.x = mXOrigin;
		}
		else{
			Origin.x += OurFont->DrawLetter(mString[i], Origin);
		}
	}
	//WE'RE AT THE CURSOR POSITION.
	if(mCursorSpriteNumber == -1 || mCursorFlashDelay == -1){
		return;
	}
	if(Origin.x + mCursorSprite.GetWidth() > mWidth + mXOrigin){
		Origin.y += OurFont->GetCharHeight();
	}
	mCursorSprite.SetLoc(Origin);
	if(mCursorOn)
	mCursorSprite.Draw(DisplayRef);

	

}