Итак, в этом выражении i = индекс сегмента и c = код символа.
idRangeOffset получает смещение сегмента в массив glyphIdArray внутри cmap. В данном случае вы действительно ищете значение glyphIdArray [что-то]. Поскольку glyphIdArray сразу следует за idRangeOffset в файле шрифта, вы используете idRangeOffset в качестве базового указателя.
Чтобы добраться до начала glyphIdArray, вам нужно добавить idRangeOffset, но так как это значение в байтах и таблица idRangeOffset 16-битная, вам нужно разделить на 2, чтобы получить количество слов. Затем вы получите смещение сегмента i внутри glyphIdArray.
Смещение вашего персонажа, однако внутри этого сегмента, равно c - startCount [i], так что вам также нужно добавить это.
Последнее выражение является указателем, поэтому вам нужно разыменовать его, чтобы получить индекс глифа.
Этот индекс затем используется для таблицы LOCA.