Здравствуйте. Недавно, при прочтении одной темы от Daniel_Cortez, я наткнулся на очень интересный участок кода. К сожалению, толковой информации я не нашёл, поэтому я прошу вас, пожалуйста, объяснить в чём смысл упакованных строк.
Код:
new const vehicle_models_names[611 - 399 + 1][] =
{
/* 0 */ {!"No vehicle"}, // Для случаев, когда (model == 0), т.е. когда игрок не в машине.
/* 400 */ {!"Landstalker"}, // Также обратите внимание, что строки с названиями упакованные.
/* 401 */ {!"Bravura"},
/* ... */
/* 611 */ {!"Utility Trailer"}
}
stock GetVehicleModelName(model, name, size = sizeof(name))
{
// Если номер модели неизвестен (в т.ч. нулевой)...
if (model < 400 || 611 < model)
return strunpack(name, vehicle_models_names[0], size);
// Модели #400 соответствует название в vehicle_models_names[1], а не [0],
// поэтому следует прибавить 1 к индексу.
return strunpack(name, vehicle_models_names[model - 400 + 1], size);
}
За ранее благодарю за ответ.