Кэширование файлов

Для обеспечения гладкой загрузки файлов для игровой сессии, важно чтобы движок выполнял как можно больше работы для загрузки этих данных до начала сесии. Игрок не должен замечать задержек для кэширования файлов во время сесии, часто проявляющемся в «залипании» игрока или задержках в рендеринге. Для избежания этих эффектов, энтити должны до начала сесии объявлять и кэшировать файлы используемые ними. Существуют вспомогательные функции выполняющие эту работу.

Precache()

Функция Precache () доступна всем потомкам класса CBaseEntity и должна вызываться в методе Spawn () каждой энтити. Все файлы используемые энтитей (модели, звуки, VCD, декали) должны быть объявлены в этой функции. Файлы не могут подгружаться вне этой функции.

Файлы кэшируются используя такие фунции:

PrecacheModel()

Используется для кэширования моделей.

int CBaseEntity::PrecacheModel (
const char *name
)

Параметры

name
Имя файла модели для загрузки

Возвращаемое значение

Индекс ссылающийся на модель.


PrecacheScriptSound ()

Используется для кэширования звуковых скриптов объявленых в скрипте звуковых файлов.

void CBaseEntity::PrecacheScriptSound (
const char *soundname
)

Параметры

soundname
Имя звукового скрипта для загрузки.

Замечания

Зыуковые скрипты объявляются в файле sound script manifest.

Возвращаемое значение

Нет.



PrecacheInstancedScene()

Используется для кэширования VCD файлов.

void PrecacheInstancedScene (
char const *pszScene
)

Параметры

pszScene
Имя VCD файла для загрузки.

Возвращаемое значение

Нет.



UTIL_PrecacheOther()

Вспомогательная функция вызывающая функцию Precache () для энтити которая создается или ссылается во время существования вызывающей энтити. Эта функция часто используется для оружия которое динамически создает дочернюю энтить (например граната) во время сессии.

void UTIL_PrecacheOther (
const char *szClassname,
const char *modelName
)

Параметры

szClassname
Имя класса энтити для которой кэшируются файлы.

modelName
Имя модели для использования этой ентитью.

Возвращаемое значение
Нет.



UTIL_PrecacheDecal()

Используется для кэширования декалей.

int UTIL_PrecacheDecal (
const char *name,
bool preload
)

Параметры

name
Имя декали для загрузки.

preload
Загружать или нет декаль.

Возвращаемое значение

Индекс ссылающийся на модель декали.

Автор: DarkLight.
26 января 2005, 20:08