diff options
Diffstat (limited to 'engines/lab/text.cpp')
| -rw-r--r-- | engines/lab/text.cpp | 156 | 
1 files changed, 0 insertions, 156 deletions
| diff --git a/engines/lab/text.cpp b/engines/lab/text.cpp deleted file mode 100644 index f784c2126d..0000000000 --- a/engines/lab/text.cpp +++ /dev/null @@ -1,156 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - */ - -/* - * This code is based on Labyrinth of Time code with assistance of - * - * Copyright (c) 1993 Terra Nova Development - * Copyright (c) 2004 The Wyrmkeep Entertainment Co. - * - */ - -#include "lab/lab.h" -#include "lab/labfun.h" -#include "lab/text.h" - -namespace Lab { - -/*****************************************************************************/ -/* Closes a font and frees all memory associated with it.                    */ -/*****************************************************************************/ -void closeFont(TextFont *tf) { -	if (tf) { -		if (tf->data && tf->DataLength) -			delete[] tf->data; - -		delete tf; -	} -} - -/*****************************************************************************/ -/* Returns the length of a text in the specified font.                       */ -/*****************************************************************************/ -uint16 textLength(TextFont *tf, const char *text, uint16 numchars) { -	uint16 length = 0; - -	if (tf) { -		for (uint16 i = 0; i < numchars; i++) { -			length += tf->Widths[(uint)*text]; -			text++; -		} -	} - -	return length; -} - -/*****************************************************************************/ -/* Returns the height of a specified font.                                   */ -/*****************************************************************************/ -uint16 textHeight(TextFont *tf) { -	return (tf) ? tf->Height : 0; -} - -/*****************************************************************************/ -/* Draws the text to the screen.                                             */ -/*****************************************************************************/ -void text(TextFont *tf, uint16 x, uint16 y, uint16 color, const char *text, uint16 numchars) { -	byte *VGATop, *VGACur, *VGATemp, *VGATempLine, *cdata; -	uint32 RealOffset, SegmentOffset; -	int32 templeft, LeftInSegment; -	uint16 bwidth, mask, curpage, data; - -	VGATop = g_lab->_graphics->getCurrentDrawingBuffer(); - -	for (uint16 i = 0; i < numchars; i++) { -		RealOffset = (g_lab->_graphics->_screenWidth * y) + x; -		curpage    = RealOffset / g_lab->_graphics->_screenBytesPerPage; -		SegmentOffset = RealOffset - (curpage * g_lab->_graphics->_screenBytesPerPage); -		LeftInSegment = g_lab->_graphics->_screenBytesPerPage - SegmentOffset; -		VGACur = VGATop + SegmentOffset; - -		if (tf->Widths[(uint)*text]) { -			cdata = tf->data + tf->Offsets[(uint)*text]; -			bwidth = *cdata++; -			VGATemp = VGACur; -			VGATempLine = VGACur; - -			for (uint16 rows = 0; rows < tf->Height; rows++) { -				VGATemp = VGATempLine; -				templeft = LeftInSegment; - -				for (uint16 cols = 0; cols < bwidth; cols++) { -					data = *cdata++; - -					if (data && (templeft >= 8)) { -						for (int j = 7; j >= 0; j--) { -							if ((1 << j) & data) -								*VGATemp = color; -							VGATemp++; -						} - -						templeft -= 8; -					} else if (data) { -						mask = 0x80; -						templeft = LeftInSegment; - -						for (uint16 counterb = 0; counterb < 8; counterb++) { -							if (templeft <= 0) { -								curpage++; -								VGATemp = (byte *)(VGATop - templeft); -								/* Set up VGATempLine for next line */ -								VGATempLine -= g_lab->_graphics->_screenBytesPerPage; -								/* Set up LeftInSegment for next line */ -								LeftInSegment += g_lab->_graphics->_screenBytesPerPage + templeft; -								templeft += g_lab->_graphics->_screenBytesPerPage; -							} - -							if (mask & data) -								*VGATemp = color; - -							VGATemp++; - -							mask = mask >> 1; -							templeft--; -						} -					} else { -						templeft -= 8; -						VGATemp += 8; -					} -				} - -				VGATempLine += g_lab->_graphics->_screenWidth; -				LeftInSegment -= g_lab->_graphics->_screenWidth; - -				if (LeftInSegment <= 0) { -					curpage++; -					VGATempLine -= g_lab->_graphics->_screenBytesPerPage; -					LeftInSegment += g_lab->_graphics->_screenBytesPerPage; -				} -			} -		} - -		x += tf->Widths[(int)*text]; -		text++; -	} -} - -} // End of namespace Lab | 
