diff options
Diffstat (limited to 'engines/sky/text.cpp')
| -rw-r--r-- | engines/sky/text.cpp | 46 | 
1 files changed, 20 insertions, 26 deletions
| diff --git a/engines/sky/text.cpp b/engines/sky/text.cpp index a219eb86cf..12926aebfe 100644 --- a/engines/sky/text.cpp +++ b/engines/sky/text.cpp @@ -87,7 +87,7 @@ Text::~Text(void) {  }  void Text::fnSetFont(uint32 fontNr) { -	struct charSet *newCharSet; +	charSet *newCharSet;  	switch (fontNr) {  	case 0: @@ -112,7 +112,7 @@ void Text::fnSetFont(uint32 fontNr) {  void Text::fnTextModule(uint32 textInfoId, uint32 textNo) {  	fnSetFont(1);  	uint16* msgData = (uint16 *)_skyCompact->fetchCpt(textInfoId); -	lowTextManager_t textId = lowTextManager(textNo, msgData[1], msgData[2], 209, false); +	DisplayedText textId = lowTextManager(textNo, msgData[1], msgData[2], 209, false);  	Logic::_scriptVariables[RESULT] = textId.compactNum;  	Compact *textCompact = _skyCompact->fetchCpt(textId.compactNum);  	textCompact->xcood = msgData[3]; @@ -183,7 +183,7 @@ void Text::getText(uint32 textNr) { //load text #"textNr" into textBuffer  void Text::fnPointerText(uint32 pointedId, uint16 mouseX, uint16 mouseY) {  	Compact *ptrComp = _skyCompact->fetchCpt(pointedId); -	lowTextManager_t text = lowTextManager(ptrComp->cursorText, TEXT_MOUSE_WIDTH, L_CURSOR, 242, false); +	DisplayedText text = lowTextManager(ptrComp->cursorText, TEXT_MOUSE_WIDTH, L_CURSOR, 242, false);  	Logic::_scriptVariables[CURSOR_ID] = text.compactNum;  	if (Logic::_scriptVariables[MENU]) {  		_mouseOfsY = TOP_LEFT_Y - 2; @@ -234,13 +234,13 @@ char Text::getTextChar(uint8 **data, uint32 *bitPos) {  	}  } -displayText_t Text::displayText(uint32 textNum, uint8 *dest, bool centre, uint16 pixelWidth, uint8 color) { +DisplayedText Text::displayText(uint32 textNum, uint8 *dest, bool centre, uint16 pixelWidth, uint8 color) {  	//Render text into buffer *dest  	getText(textNum);  	return displayText(_textBuffer, dest, centre, pixelWidth, color);  } -displayText_t Text::displayText(char *textPtr, uint8 *dest, bool centre, uint16 pixelWidth, uint8 color) { +DisplayedText Text::displayText(char *textPtr, uint8 *dest, bool centre, uint16 pixelWidth, uint8 color) {  	//Render text pointed to by *textPtr in buffer *dest  	uint32 centerTable[10];  	uint16 lineWidth = 0; @@ -278,7 +278,6 @@ displayText_t Text::displayText(char *textPtr, uint8 *dest, bool centre, uint16  		lineWidth += (uint16)_dtCharSpacing;	//include character spacing  		if (pixelWidth <= lineWidth) { -  			if (*(lastSpace-1) == 10)  				error("line width exceeded!"); @@ -300,25 +299,25 @@ displayText_t Text::displayText(char *textPtr, uint8 *dest, bool centre, uint16  		error("Maximum no. of lines exceeded!");  	uint32 dtLineSize = pixelWidth * _charHeight; -	uint32 numBytes = (dtLineSize * numLines) + sizeof(struct dataFileHeader) + 4; +	uint32 numBytes = (dtLineSize * numLines) + sizeof(DataFileHeader) + 4;  	if (!dest)  		dest = (uint8*)malloc(numBytes);  	// clear text sprite buffer -	memset(dest + sizeof(struct dataFileHeader), 0, numBytes - sizeof(struct dataFileHeader)); +	memset(dest + sizeof(DataFileHeader), 0, numBytes - sizeof(DataFileHeader));  	//make the header -	((struct dataFileHeader *)dest)->s_width = pixelWidth; -	((struct dataFileHeader *)dest)->s_height = (uint16)(_charHeight * numLines); -	((struct dataFileHeader *)dest)->s_sp_size = (uint16)(pixelWidth * _charHeight * numLines); -	((struct dataFileHeader *)dest)->s_offset_x = 0; -	((struct dataFileHeader *)dest)->s_offset_y = 0; +	((DataFileHeader *)dest)->s_width = pixelWidth; +	((DataFileHeader *)dest)->s_height = (uint16)(_charHeight * numLines); +	((DataFileHeader *)dest)->s_sp_size = (uint16)(pixelWidth * _charHeight * numLines); +	((DataFileHeader *)dest)->s_offset_x = 0; +	((DataFileHeader *)dest)->s_offset_y = 0;  	//reset position  	curPos = textPtr; -	uint8 *curDest = dest +  sizeof(struct dataFileHeader); //point to where pixels start +	uint8 *curDest = dest +  sizeof(DataFileHeader); //point to where pixels start  	byte *prevDest = curDest;  	uint32 *centerTblPtr = centerTable; @@ -339,7 +338,7 @@ displayText_t Text::displayText(char *textPtr, uint8 *dest, bool centre, uint16  	} while (textChar >= 10); -	struct displayText_t ret; +	DisplayedText ret;  	ret.textData = dest;  	ret.textWidth = dtLastWidth;  	return ret; @@ -354,7 +353,6 @@ void Text::makeGameCharacter(uint8 textChar, uint8 *charSetPtr, uint8 *&dest, ui  	byte *curPos = startPos;  	for (int i = 0; i < _charHeight; i++) { -  		byte *prevPos = curPos;  		data = READ_BE_UINT16(charSpritePtr); @@ -383,9 +381,9 @@ void Text::makeGameCharacter(uint8 textChar, uint8 *charSetPtr, uint8 *&dest, ui  	dest = startPos + charWidth + _dtCharSpacing * 2 - 1;  } -lowTextManager_t Text::lowTextManager(uint32 textNum, uint16 width, uint16 logicNum, uint8 color, bool centre) { +DisplayedText Text::lowTextManager(uint32 textNum, uint16 width, uint16 logicNum, uint8 color, bool centre) {  	getText(textNum); -	struct displayText_t textInfo = displayText(_textBuffer, NULL, centre, width, color); +	DisplayedText textInfo = displayText(_textBuffer, NULL, centre, width, color);  	uint32 compactNum = FIRST_TEXT_COMPACT;  	Compact *cpt = _skyCompact->fetchCpt(compactNum); @@ -405,17 +403,13 @@ lowTextManager_t Text::lowTextManager(uint32 textNum, uint16 width, uint16 logic  	cpt->status = ST_LOGIC | ST_FOREGROUND | ST_RECREATE;  	cpt->screen = (uint16) Logic::_scriptVariables[SCREEN]; -	struct lowTextManager_t ret; -	ret.textData = textInfo.textData; -	ret.textWidth = textInfo.textWidth; -	ret.compactNum = (uint16)compactNum; - -	return ret; +	textInfo.compactNum = (uint16)compactNum; +	return textInfo;  }  void Text::changeTextSpriteColour(uint8 *sprData, uint8 newCol) { -	dataFileHeader *header = (dataFileHeader *)sprData; -	sprData += sizeof(dataFileHeader); +	DataFileHeader *header = (DataFileHeader *)sprData; +	sprData += sizeof(DataFileHeader);  	for (uint16 cnt = 0; cnt < header->s_sp_size; cnt++)  		if (sprData[cnt] >= 241)  			sprData[cnt] = newCol; | 
