ШАБЛОН 2 для старых SDK :
Что-ж подошло время для нового SSDK стать компилируемым под VS 2005
Уже чешутся руки
![](images/smilies/biggrin.gif)
поднялось давление и хочется подпрыгнуть? Неспешите, вам прийдется заурядно попарится
Приступаем :
Этот метод лутше применять на Чистой копии SSDK
Что использовалось для компила :
Цитата:Microsoft Visual Studio 2005, Version 8.0.50727.42 (RTM.050727-4200)
Microsoft .NET Framework, Version 2.0.50727
Microsoft Visual C++ 2005 Express Edition
После извлечения Src файлов проэкта, открываем Game_sdk.sln и конвертим в VS 2005 проэкт.
Сразу там в верху переключаем режим компила с Debug HL2 Build на Release HL2 Build.
Не надо компилить в debug режиме, это вызовет другие проблемы
Значит, лезем в Tools->Options->Projects and Solutions->VC++ Directories->
и смотрим чтобы в Executable Files->
всё было таким образом :
Цитата:C:\Program Files\Microsoft DirectX SDK (February 2006)\Utilities\Bin\x86
->Executable Files->C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Bin\winnt
->Include Files->C:\Program Files\Microsoft DirectX SDK (February 2006)\Include
->Include Files->C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include
->Library Files->C:\Program Files\Microsoft DirectX SDK (February 2006)\Lib\x86
->Library Files->C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib
(если вы ставили в другую папку то укажите свой путь)
Теперь непосредственно к фиксам :
откроем файлец
src\public\compressed_vector.h
Идём на строчку 327
(добовляем не статический булевый тип)
чтобы было вот так :
Цитата:static bool IsInfinity( float16bits in )
Дальше открываем :
Цитата:src\public\tier1\strtools.h
Идем на строчку 98
(добавим (char *) cast)
чтобы было так :
Цитата:inline char* V_strrchr (const char *s, char c) { return strrchr( (char *)s, c ); }
Лезем в строчку 102
Аналогично
Цитата:inline char* V_strstr( const char *s1, const char *search ) { return strstr( (char *)s1, search ); }
Но это мелочи житейские.
Теперь нужно с конфигоми попарится...
Изменения на сервере (Hl прожект)
Заглядываем по такому пути :
Цитата:Properties->Configuration Properties->C/C++->Language->
Находим там такое:
Цитата:Treat wchar_t as Built-in type
И меняем на а вот такую фишку
Потом
->Force Conformance In For Loop Scope->No(\Zc:forScope-)
Затем наш путь немного поменяется и заведёт прямиком в линкер
Цитата:Properties->Configuration Properties->Linker->
Input->
И в поле Additional Dependencies-> впишем :
Цитата:winmm.lib user32.lib msvcrt.lib (should read)
Затем выскочим из Additional Dependencies и залезем в поле Input->Ignore Specific Library->
туда как обычно пишем
Опять выскакиваем, на сей раз из Input и залазим в
Цитата:Command Line->Additional Options->
Туда смело пишем
C путешествиями по меню закончили
Открываем файло вот тут :
Цитата:src\dlls\hl2_dll\info_darknessmode_lightsource.cpp -
Строчка 64 - ( добавил &CInfoDarknessLightSource:: )
чтобы было так :
Цитата:SetThink( &CInfoDarknessLightSource :: DebugThink );
Строчка 367 - (Добавил & )
чтобы было так :
Цитата:pLightSource->SetThink( &CInfoDarknessLightSource :: DebugThink );
Нузно будет еще перекомпилить 'choreoobjects.lib'
инструкции по данному поводу чуть позжей...
Изменение в Client проэкте
лезем в Properties->Configuration Properties->C/C++->Language->
Как и в прошлый раз в
Цитата:Treat wchar_t as Built-in type
Ставим
А в ->Force Conformance In For Loop Scope->
Сеттим в
Дальше Properties->Configuration Properties->Linker->
Input->
Туда в
Цитата:Additional Dependencies->
Вписываем это :
Цитата:winmm.lib user32.lib msvcrt.lib
Теперь на 1 сегмент пути назад и в Input->Ignore Specific Library->
впишем
Цитата:libcd.lib,LIBCD,LIBCMT,libcmtd,LIBC
опять назад и в
Цитата:Command Line->Additional Options->
Пишем:
Открываем файл
src\cl_dll\interpolatedvar.h
На строчках 257, 258, 259 - (добавл 'typename')
чтобы было вот так :
Цитата:typename CInterpolatedVarArrayBase::CVarHistory::IndexType_t oldest; // Only set if using hermite.
typename CInterpolatedVarArrayBase::CVarHistory::IndexType_t older;
typename CInterpolatedVarArrayBase::CVarHistory::IndexType_t newer;
открываем
Цитата:
src\cl_dll\cdll_client_int.cpp
Строчка 737 По идее не так это и важно, просто например если хотите юзать контент от контры и т.д.
Например вы хотите юзать другой APPID и т.д
Цитата:filesystem->AddSearchPath("hl2", "GAME");
filesystem->MountSteamContent(220);