Перейти к контенту

Рекомендуемые сообщения

@dimich1984, щелкаешь ПКМ по проекту xrSound, в выпадающем меню выбираешь "Очистить". Ждёшь окончание очистки, затем перестраиваешь проект. Изменено пользователем Tpukcmep
  • Согласен 1
Ссылка на комментарий

Подскажите как такое сделать:

s = 's1$s2'
s1,s2 = s:match('^([^$]+)'), s:match('\$(.*)$')
s - shared_str.

 

А то как-то так повелось, что мои патерны на плюсах работают только на регулярных выражениях поисковика студии, там пишешь - все идеально, пытаешься запнуть тоже самое в игру, получаешь нечто словами неописуемое.

Да, и вторая часть строки опциональна, ее может и не быть.

Ссылка на комментарий

Кто нить пробовал движок собрать в VS2015 Community. Есть статья по сборке движка на Сталкерин, но там для 2010 студии, от 2015 прилично отличается. Когда-то давно чуток кодил в VC++ 6, теперь все по другому. Смысл есть вопросы задавать по 2015 студии ?

Ссылка на комментарий

@User_X.A.R26

Полно:

С этим что делать ?

s:\bugtrap\InPlaceNew.h(26): error C2084: функция "void *operator new(std::size_t,void *) throw()" уже имеет текст реализации
  C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\vcruntime_new.h(86): note: см. предыдущее определение "new"
s:\bugtrap\InPlaceNew.h(37): error C2084: функция "void operator delete(void *,void *) throw()" уже имеет текст реализации
  C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\vcruntime_new.h(92): note: см. предыдущее определение "delete"
 
С этим вроде понятно - судя по всему можно просто удалить из Encoding.h ?
s:\bugtrap\Encoding.h(21): warning C4005: HIGH_SURROGATE_START: изменение макроопределения
  C:\Program Files (x86)\Windows Kits\8.1\Include\um\winnls.h(93): note: см. предыдущее определение "HIGH_SURROGATE_START"
s:\bugtrap\Encoding.h(23): warning C4005: HIGH_SURROGATE_END: изменение макроопределения
  C:\Program Files (x86)\Windows Kits\8.1\Include\um\winnls.h(94): note: см. предыдущее определение "HIGH_SURROGATE_END"
s:\bugtrap\Encoding.h(25): warning C4005: LOW_SURROGATE_START: изменение макроопределения
  C:\Program Files (x86)\Windows Kits\8.1\Include\um\winnls.h(95): note: см. предыдущее определение "LOW_SURROGATE_START"
s:\bugtrap\Encoding.h(27): warning C4005: LOW_SURROGATE_END: изменение макроопределения
  C:\Program Files (x86)\Windows Kits\8.1\Include\um\winnls.h(96): note: см. предыдущее определение "LOW_SURROGATE_END"
Изменено пользователем UnLoaded
Ссылка на комментарий

 

 

error C2084
Тут вроде как перегрузка операторов. Пробуй комментить и/или править. А можешь вообще выпилить BugTrap и не париться

 

warning C4005
Забей, ибо это просто предупреждение. Ну или выруби его отображение если сильно мозолит глаза
Ссылка на комментарий

Плюнул на VS2015 - установил VS2013. Дело пошло лучше, но уткнулся в следующее:

1>3DNow!Lib.cpp(56): error C2365: nan: переопределение; предыдущим определением было "функция"
1>          C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(508): см. объявление "nan"
В файле 3DNow!Lib.cpp объявление выглядит так:
static const __int32 nan        =       0x7fffffff;
а в файле Microsoft Visual Studio 12.0\VC\include\math.h прописано так:
_CRTIMP double __cdecl nan(_In_ const char *);
Если я правильно мыслю - надо переименовать nan в 3DNow!Lib.cpp, и найти все его упоминания в проекте и заменить на новое имя ?
Изменено пользователем UnLoaded
Ссылка на комментарий

Кто нить пробовал движок собрать в VS2015 Community.

 

Professional или Community - разницы нет. Основная проблема - изменения в стандарте языка и в библиотеках. Реально масса геморроя с тем, чтобы это заработало. С другой стороны, можно в студии 2015 использовать тулсет от предыдущих версий (если установлен конечно). В этом варианте вроде и менять ничего не надо, но это наверное не совсем то, что хотелось бы.

 

Я добивался сборки и работы движка ЗП в 2015 студии, но с оговоркой, что это очень сильно изменённый проект, сильно покоцанный и с массой моих изменений. Поэтому даже не могу точно сказать, что именно надо сделать и в каком минимально достаточном объёме, чтобы ванильный вариант заработал на студии 2015.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

 

 

Если я правильно мыслю - надо переименовать nan в 3DNow!Lib.cpp, и найти все его упоминания в проекте и заменить на новое имя ?
или обернуть в namespace
А вообще на какой редакции и какие конкретно сорсы собираешь? Там ведь есть пару уже фикшенных вариантов сорсов ЗП от Лохотрона
Ссылка на комментарий

 

 

А вообще на какой редакции и какие конкретно сорсы собираешь? Там ведь есть пару уже фикшенных вариантов сорсов ЗП от Лохотрона

Я не очень понимаю про какие-то редакции - скачал исходники из этой статьи, установил студию, теперь пытаюсь движок собрать...

Ссылка на комментарий

Тернарный оператор называется, не забываем что этот оператор имеет минимальный приоритет.

Изменено пользователем НаноБот

...в конце концов, важен лишь, машинный код.

СТАЛКЕР только для ПК!

Ссылка на комментарий
Тернарный оператор называется

К чему такой мутняк ? Ведь в этом конкретном случае можно было написать:

if Функция1 then

     Переменная1 =  Переменная2

else

    Переменная1 =   0

end

Он дает какое то преймущество над if\else ?

Изменено пользователем UnLoaded
Ссылка на комментарий

@UnLoaded, запись более короткая получается.

Например так короче.

virtual	int		GetCurrentFireMode	() { return m_bHasDifferentFireModes ? m_aFireModes[m_iCurFireMode] : 1; };

Функция возвращает размер очереди, если оружия имеет чисто одиночный огонь (в конфиге нет fire_modes), то возвращает размер очереди 1.

Изменено пользователем НаноБот

...в конце концов, важен лишь, машинный код.

СТАЛКЕР только для ПК!

Ссылка на комментарий

Нашел такое в исходниках

return !!m_flags.test(FAllowSprint);

Полез в Вики смотреть список операторов C++, нет такого "!!" оператора. Поясните, что это и как понимать ?

Ссылка на комментарий

 

 

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

Это типа так можно представить:  return (bool)m_flags.test(FAllowSprint); ?

 

Еще вопрос: пока читал про операторы, нашел там такую штуку "Синонимы операторов (диграфы)". Т.е. можно использовать синонимы(кстати привычные по Луа): and, or, not ну и еще несколько. Это работает в MS VC++ ?

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...