diff options
| -rw-r--r-- | engines/gob/game_v1.cpp | 4 | ||||
| -rw-r--r-- | engines/gob/game_v2.cpp | 4 | ||||
| -rw-r--r-- | engines/gob/game_v6.cpp | 4 | ||||
| -rw-r--r-- | engines/gob/inter.h | 2 | ||||
| -rw-r--r-- | engines/gob/inter_v1.cpp | 6 | ||||
| -rw-r--r-- | engines/gob/util.cpp | 9 | ||||
| -rw-r--r-- | engines/gob/util.h | 2 | 
7 files changed, 17 insertions, 14 deletions
diff --git a/engines/gob/game_v1.cpp b/engines/gob/game_v1.cpp index cf1641928c..7db4f65f2c 100644 --- a/engines/gob/game_v1.cpp +++ b/engines/gob/game_v1.cpp @@ -928,7 +928,7 @@ void Game_v1::collisionsBlock(void) {  				strncpy0(_tempStr, GET_VARO_STR(_collisionAreas[i].key), 255);  				if ((_collisionAreas[i].flags & 0x0F) < 7) -					_vm->_util->prepareStr(_tempStr); +					_vm->_util->cleanupStr(_tempStr);  				int16 pos = 0;  				do { @@ -938,7 +938,7 @@ void Game_v1::collisionsBlock(void) {  					str += strlen(str) + 1;  					if ((_collisionAreas[i].flags & 0x0F) < 7) -						_vm->_util->prepareStr(_collStr); +						_vm->_util->cleanupStr(_collStr);  					if (strcmp(_tempStr, _collStr) == 0) {  						WRITE_VAR(17, VAR(17) + 1); diff --git a/engines/gob/game_v2.cpp b/engines/gob/game_v2.cpp index e910b5278e..9d494ad6fe 100644 --- a/engines/gob/game_v2.cpp +++ b/engines/gob/game_v2.cpp @@ -935,7 +935,7 @@ void Game_v2::collisionsBlock(void) {  				strncpy0(_tempStr, GET_VARO_STR(_collisionAreas[i].key), 255);  				if ((_collisionAreas[i].flags & 0x0F) < 7) -					_vm->_util->prepareStr(_tempStr); +					_vm->_util->cleanupStr(_tempStr);  				int16 pos = 0;  				do { @@ -945,7 +945,7 @@ void Game_v2::collisionsBlock(void) {  					str += strlen(str) + 1;  					if ((_collisionAreas[i].flags & 0x0F) < 7) -						_vm->_util->prepareStr(_collStr); +						_vm->_util->cleanupStr(_collStr);  					if (strcmp(_tempStr, _collStr) == 0) {  						WRITE_VAR(17, VAR(17) + 1); diff --git a/engines/gob/game_v6.cpp b/engines/gob/game_v6.cpp index dade2adddf..e2c0c52919 100644 --- a/engines/gob/game_v6.cpp +++ b/engines/gob/game_v6.cpp @@ -839,7 +839,7 @@ void Game_v6::collisionsBlock(void) {  				strncpy0(_tempStr, GET_VARO_STR(_collisionAreas[i].key), 255);  				if ((_collisionAreas[i].flags & 0x0F) < 7) -					_vm->_util->prepareStr(_tempStr); +					_vm->_util->cleanupStr(_tempStr);  				int16 pos = 0;  				do { @@ -849,7 +849,7 @@ void Game_v6::collisionsBlock(void) {  					str += strlen(str) + 1;  					if ((_collisionAreas[i].flags & 0x0F) < 7) -						_vm->_util->prepareStr(_collStr); +						_vm->_util->cleanupStr(_collStr);  					if (strcmp(_tempStr, _collStr) == 0) {  						WRITE_VAR(17, VAR(17) + 1); diff --git a/engines/gob/inter.h b/engines/gob/inter.h index d4ed2d3240..9d983f4fe7 100644 --- a/engines/gob/inter.h +++ b/engines/gob/inter.h @@ -238,7 +238,7 @@ protected:  	bool o1_playComposition(OpFuncParams ¶ms);  	bool o1_getFreeMem(OpFuncParams ¶ms);  	bool o1_checkData(OpFuncParams ¶ms); -	bool o1_prepareStr(OpFuncParams ¶ms); +	bool o1_cleanupStr(OpFuncParams ¶ms);  	bool o1_insertStr(OpFuncParams ¶ms);  	bool o1_cutStr(OpFuncParams ¶ms);  	bool o1_strstr(OpFuncParams ¶ms); diff --git a/engines/gob/inter_v1.cpp b/engines/gob/inter_v1.cpp index 96ecfc6b25..23c9351dd4 100644 --- a/engines/gob/inter_v1.cpp +++ b/engines/gob/inter_v1.cpp @@ -147,7 +147,7 @@ void Inter_v1::setupOpcodesFunc() {  	OPCODEFUNC(0x3E, o1_getFreeMem);  	OPCODEFUNC(0x3F, o1_checkData); -	OPCODEFUNC(0x41, o1_prepareStr); +	OPCODEFUNC(0x41, o1_cleanupStr);  	OPCODEFUNC(0x42, o1_insertStr);  	OPCODEFUNC(0x43, o1_cutStr); @@ -1601,11 +1601,11 @@ bool Inter_v1::o1_checkData(OpFuncParams ¶ms) {  	return false;  } -bool Inter_v1::o1_prepareStr(OpFuncParams ¶ms) { +bool Inter_v1::o1_cleanupStr(OpFuncParams ¶ms) {  	int16 strVar;  	strVar = _vm->_game->_script->readVarIndex(); -	_vm->_util->prepareStr(GET_VARO_FSTR(strVar)); +	_vm->_util->cleanupStr(GET_VARO_FSTR(strVar));  	return false;  } diff --git a/engines/gob/util.cpp b/engines/gob/util.cpp index 6c38dcb5a9..4830c4be51 100644 --- a/engines/gob/util.cpp +++ b/engines/gob/util.cpp @@ -452,7 +452,7 @@ static const char trStr2[] =  	"                                                           ";  static const char trStr3[] = "                                "; -void Util::prepareStr(char *str) { +void Util::cleanupStr(char *str) {  	char *start, *end;  	char buf[300]; @@ -460,17 +460,20 @@ void Util::prepareStr(char *str) {  	strcat(buf, trStr2);  	strcat(buf, trStr3); +	// Translating "wrong" characters  	for (size_t i = 0; i < strlen(str); i++) -		str[i] = buf[str[i] - 32]; +		str[i] = buf[MIN<int>(str[i] - 32, 32)]; +	// Trim spaces left  	while (str[0] == ' ')  		cutFromStr(str, 0, 1); +	// Trim spaces right  	while ((strlen(str) > 0) && (str[strlen(str) - 1] == ' '))  		cutFromStr(str, strlen(str) - 1, 1); +	// Merge double spaces  	start = strchr(str, ' '); -  	while (start) {  		if (start[1] == ' ') {  			cutFromStr(str, start - str, 1); diff --git a/engines/gob/util.h b/engines/gob/util.h index 2b6ea7fdc3..b0bcf70d0c 100644 --- a/engines/gob/util.h +++ b/engines/gob/util.h @@ -92,7 +92,7 @@ public:  	static void insertStr(const char *str1, char *str2, int16 pos);  	static void cutFromStr(char *str, int16 from, int16 cutlen); -	static void prepareStr(char *str); +	static void cleanupStr(char *str);  	static void replaceChar(char *str, char c1, char c2);  	static void listInsertFront(List *list, void *data);  | 
