strings.c
changeset 1318 0cfb27523b44
parent 1317 f382f1b439c7
child 1319 cd302ee91e27
equal deleted inserted replaced
1317:f382f1b439c7 1318:0cfb27523b44
   125 {
   125 {
   126 	while ((*dst++ = *src++) != '\0') {}
   126 	while ((*dst++ = *src++) != '\0') {}
   127 	return dst - 1;
   127 	return dst - 1;
   128 }
   128 }
   129 
   129 
   130 static char *GetStringPtr(uint16 string)
   130 static const char *GetStringPtr(uint16 string)
   131 {
   131 {
   132 	return _langpack_offs[_langtab_start[string >> 11] + (string & 0x7FF)];
   132 	return _langpack_offs[_langtab_start[string >> 11] + (string & 0x7FF)];
   133 }
   133 }
   134 
   134 
   135 char *GetString(char *buffr, uint16 string)
   135 char *GetString(char *buffr, uint16 string)
   450 				break;
   450 				break;
   451 			case 3: { /* {SHORTCARGO} */
   451 			case 3: { /* {SHORTCARGO} */
   452 				// Short description of cargotypes. Layout:
   452 				// Short description of cargotypes. Layout:
   453 				// 8-bit = cargo type
   453 				// 8-bit = cargo type
   454 				// 16-bit = cargo count
   454 				// 16-bit = cargo count
   455 				char *s;
   455 				const char *s;
   456 				uint16 cargo_str = _cargo_string_list[_opt.landscape][(byte)GetParamInt8()];
   456 				uint16 cargo_str = _cargo_string_list[_opt.landscape][(byte)GetParamInt8()];
   457 				uint16 multiplier = (cargo_str == STR_LITERS) ? 1000 : 1;
   457 				uint16 multiplier = (cargo_str == STR_LITERS) ? 1000 : 1;
   458 				// liquid type of cargo is multiplied by 100 to get correct amount
   458 				// liquid type of cargo is multiplied by 100 to get correct amount
   459 				buff = FormatCommaNumber(buff, GetParamInt16() * multiplier);
   459 				buff = FormatCommaNumber(buff, GetParamInt16() * multiplier);
   460 				s = GetStringPtr(cargo_str);
   460 				s = GetStringPtr(cargo_str);
   475 		case 0x86: // {SKIP}
   475 		case 0x86: // {SKIP}
   476 			GetParamInt16();
   476 			GetParamInt16();
   477 			//assert(0);
   477 			//assert(0);
   478 			break;
   478 			break;
   479 		case 0x87: { // {VOLUME}
   479 		case 0x87: { // {VOLUME}
   480 			char *s;
   480 			const char *s;
   481 			buff = FormatCommaNumber(buff, GetParamInt16() * 1000);
   481 			buff = FormatCommaNumber(buff, GetParamInt16() * 1000);
   482 			memcpy(buff++, " ", 1);
   482 			memcpy(buff++, " ", 1);
   483 			s = GetStringPtr(STR_LITERS);
   483 			s = GetStringPtr(STR_LITERS);
   484 			while (*s) *buff++ = *s++;
   484 			while (*s) *buff++ = *s++;
   485 			break;
   485 			break;