И сразу все становится понятно, если до сих пор вы ничего не понимали, если же вы не понимаете и после этого, тот тут написано что этот класс предназначен для чтения PAK файлов. А чуть ниже, ещё подробней сказано, что этот класс может быть использован для чтения PAK файлов, что PAK файлы это архивные файлы используемые в Dune2 и что файлы внутри PAK файла могут быть прочитаны через SDL_RWops. Из всего этого становится понятно, что реализация использует библиотеку SDL для своих утилитарных нужд. Давайте глянем что из себя представляет SDL_RWops. Если обратить внимание на ссылку SDL_RWops в ней есть некий намек на то, что SDL_RWops является потоковым типом. Если же почитать саму документацию, то мы узнаем что SDL_RWops представляет из себя структуру, которая предоставляет абстрактный интерфейс на потоковый ввод-вывод. Так же нам говорят, что приложения могут в общем-то игнорировать внутренности этой структуры и могут рассматривать их как непрозрачные указатели, но в то же время нас предупреждают о том, что детали важны для низкоуровневого кода если потребуется реализовать что-то из этих внутренностей. Вы наверное уже чувствуете, как боль и сомнение подбираются к вашему островку спокойствия и безмятежности, это нормально. Если пояснить проще, по сути, это просто структура в которую "напихали" полей, некоторые из которых являются указателями (в данном случае указателями на функции). Так же на этой странице документации есть табличка с названием полей структуры, их описанием и размерностью типа в котором будет сохранен указатель, и ссылочками на ремарки ко всему этому добру, ремарки достаточно полезны, потому что они дают еще немного информации о том, что из себя представляет SDL_RWops, a именно то, что SDL_RWops предоставляет интерфейс для чтения, записи и поиска данных в потоке, без необходимости вызывающему обладать знаниями откуда вообще приходят данные, т.е. для примера это может быть буфер памяти, файл на диске, или сетевое соединение с сервером, без необходимости вызывающей стороной изменять интерфейс для потребления данных. Пожалуй на этом можно остановиться, в попытках пояснить что из себя представляет SDL_RWops, но мы еще будем периодически обращаться к этой странице документации. Вновь взглянем на код из Pakfile.h :
Ну главное что интересно, значит есть смысл это продолжать периодически )
Блэт, это дфт, а не хабр.
Да, мы пришли деградировать, а тут это.