Канал в IRC
RusNet: #cmt
Кэширование файлов

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

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
          
Загружать или нет декаль.

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

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


Источник: Source Inside

CMT (CS Mapping Tutorials) - © 2006-2011. Created by VM
[ Script Execution time: 0.0012 ]