diff options
Diffstat (limited to 'engines/scumm/charset.cpp')
| -rw-r--r-- | engines/scumm/charset.cpp | 19 | 
1 files changed, 18 insertions, 1 deletions
diff --git a/engines/scumm/charset.cpp b/engines/scumm/charset.cpp index a8f780ac49..f4e2f74c43 100644 --- a/engines/scumm/charset.cpp +++ b/engines/scumm/charset.cpp @@ -94,7 +94,8 @@ void ScummEngine::loadCJKFont() {  		_2byteFontPtr = new byte[_2byteWidth * _2byteHeight * numChar / 8];  		// set byte 0 to 0xFF (0x00 when loaded) to indicate that the font was not loaded  		_2byteFontPtr[0] = 0xFF; -	} else if (_game.version >= 7 && (_language == Common::KO_KOR || _language == Common::JA_JPN || _language == Common::ZH_TWN)) { +	} else if ((_game.version >= 7 && (_language == Common::KO_KOR || _language == Common::JA_JPN || _language == Common::ZH_TWN)) || +			   (_game.version >= 3 && _language == Common::ZH_CNA)) {  		int numChar = 0;  		const char *fontFile = NULL; @@ -113,6 +114,14 @@ void ScummEngine::loadCJKFont() {  				numChar = 13630;  			}  			break; +		case Common::ZH_CNA: +			if (_game.id == GID_FT || _game.id == GID_LOOM || _game.id == GID_INDY3 || +				_game.id == GID_INDY4 || _game.id == GID_MONKEY || _game.id == GID_MONKEY2 || +				_game.id == GID_TENTACLE) { +				fontFile = "chinese_gb16x12.fnt"; +				numChar = 8178; +			} +			break;  		default:  			break;  		} @@ -138,6 +147,11 @@ void ScummEngine::loadCJKFont() {  				_2byteHeight = 15;  				_newLineCharacter = 0x21;  				break; +			case Common::ZH_CNA: +				_2byteWidth = 12; +				_2byteHeight = 12; +				_newLineCharacter = 0x21; +				break;  			default:  				break;  			} @@ -356,6 +370,9 @@ byte *ScummEngine::get2byteCharPtr(int idx) {  			return _2byteFontPtr + base;  			break;  		} +	case Common::ZH_CNA: +		idx = ((idx % 256) - 0xa1)* 94  + ((idx / 256) - 0xa1); +		break;  	default:  		idx = 0;  	}  | 
