FiEctro писал: Насчет крекед стима без понятия. У меня есть подозрения что ты скачал тот же старый протокол.
Проверим. У меня пока что CM10.90 устанавливается сейчас для HL2, а этот мод - редкостный монстр по размерам. Как дожуёт его система - попробую xash поставить, там и узнаем, подходят ли DLL-ки. В любом случае ДМ выкладывал в теме про "тест мышки" DLL-ки, с которыми точно должно заработать.
Да бета-тестерах вообщем недостатка нету, ктобы с VGUI помог, да в DSP эффекты подобрал - от це дiло.
ну еще меню переписать на классы, но это так уже - народные пожелания, мне впринципе и так нравится.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Там сильно сложная порнуха с существующей базой кода? Среда разработки/сборки какая, MS Visual Studio какой-нибудь версии? Ибо я мог бы попробовать вспомнить старые-добрые времена кодинга на C++, однако под вынь не писал ничего где-то с 2005 года. Ну, пару раз надо небольшие демки OpenGL набацать по-быстрому под винду, но под такую мелочь удалось обойтись DevC++/MinGW, а gcc - он везде gcc, что в *nix, что в win32. В общем, рекордов по скорости кодинга точно не могу обещать, а так - попробовать что-нибудь сварганить можно :-).
По остальным "страшным словам", вроде VGUI - и рад бы помочь, только вот, увы, даже приблизительно не подозреваю, что это за зверь и что с ним надо сделать :-(.
Качнул, глянул, залип читая код.... :-).
До сегодняшнего дня как-то поводов не возникало посмотреть на вальвовское SDK. После давнего опыта ковыряния с QuakeC забавно обнаружить код ИИ и прочие радости написанные на C++.
Добавлено 20-01-2011 в 00:50:
Эм, по структуре безобразия... я так понимаю, в cl_dll - код клиентской dll, в dlls - серверной, engine и common - наборы общих заголовочных файлов, room - выделенная из cl_dll в отдельную библиотеку DSP. game_launch - судя по всему загрузчик для launch.dll; game_shared, pm_shared - хрен знает, что за звери, за 5 минут беглого осмотра понять назначение не удалось; в utils лежат наборы заголовочных файлов для "страшного слова" vgui, ну и в mainui - те самые исходники менюшек, которые бы надо переписать с обычного C на использование C++ (предварительно разработав подходящую для этого дела иерархию классов). Оно всё так, или напутал где-нибудь чего-нибудь?
P.S. Для сборки этого добра, судя по всему, нужно пользовать MS VC 6.0 + соответствующую версию Studio? Или можно предпринять ряд телодвижений по созданию файла проекта для DevC++ или, там, написанию Makefile для MinGW? В том смысле, будет ли скомпиляченное таким образом совместимо с DLL-ками, скомпиляченными в MSVC60? А то есть у меня некоторые сомнения по совместимости мэнглинга имён C++ методов у MSVC и G++.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
LeXa2 писал: room - выделенная из cl_dll в отдельную библиотеку DSP
да, Кутузов презеты подбирал, я вынес для этого дела.
Цитата:
LeXa2 писал: game_launch - судя по всему загрузчик для launch.dll
просто исполняемый файлик, дабы лепить игры со своим экзешником.
Цитата:
LeXa2 писал: ну и в mainui - те самые исходники менюшек, которые бы надо переписать с обычного C на использование C++ (предварительно разработав подходящую для этого дела иерархию классов)
так точно. Я просто ненавижу менюшки писать, и эту "через нехочу" делал. Конечно его бы на С++, стало бы гораздо удобнее новые плюшки добавлять.
Все остальные сорцы - обычный Valve SDK 2.3 с незначительными исправлениями (явные баги и ляпы Valve).
Про манглинг не вкурсе, это лучше Ксерокса спросить, он собирал проект на GCC, вроде не было проблем.
Дядя Миша писал: Про манглинг не вкурсе, это лучше Ксерокса спросить, он собирал проект на GCC, вроде не было проблем.
Ну это я сам проверю, как завтра отойду. Что-то выходные как-то очень ударно начались в четверг , сейчас вот пивом сижу/лечусь. Помню, были там какие-то проблемы именно с С++ совместимостью, кажется, как минимум не работало RTTI и умолчальный calling convention для методов не совпадал. Но с 2005 воды много утекло, как что может чего и изменилось в лучшую сторону.
В общем, проще найти и собирать микрософтовским компилятором, когда дело доходит до сопряжения скомпиляченного С++ в DLL-ки. При желании, можно некоторого уровня совместимости достичь и играясь с параметрами mingw, плюс прописав на ассемблере (или кому там на чём удобно) вручную менглинг-трансляторы для тех случаев, когда формат менглинга таки оказывается разным. Но количество геморроя ИМХО того не стоит. Проще уж тогда вообще уходить к использованию COM-объектов, там хоть стандарт есть какой-никакой.
Пошел искать шестую версию MSVC на просторах торрентов :-).
XaeroX писал: Вообще-то у всех нормальных компиляторов манглинг задокументирован, и играться ни с чем не надо.
Проблема в том, что он у разных компиляторов - разный. И для некоторых нормальных компиляторов существуют неофицальные патчи, позволяющие менять используемую схему менглинга. Например, чтобы для gcc версий 3.x и 4.x сделать возможным компилячить бинарники со схемой менглинга, использовавшейся в gcc 2.9.
Соответственно, я нарыл патч для mingw, который приводит схему менглинга почти в полное соответствие с той, что использует MSVC++ шестой версии. Но даже с этим патчем, как и следовало ожидать, добиться нормальной совместимости скомпиляченного C++ кода - не получается. RTTI не работает, глючит обработка исключений, происходят выпадения в корку при обращении к некоторым методам и членам класса (надо понимать, VPL не совпадают у mingw и MSVC).
Так что да, играться действительно смысла нет. Надо либо все части проекта собирать одним и тем же компилятором, либо использовать стандартные механизмы интерфейсов, типа микрософтовской COM, либо не использовать cross-dll вызовы объектов C++ и ограничиваться обычными экспортируемыми функциями с заранее известными стандартными calling convention.
XaeroX писал: Ну а смысл использовать под виндой не cl, а что-то иное? icl платный, gcc и mingw ощутимо хуже, насколько я знаю.
Смысл в моём случае - банальное нежелание плодить сущности. Винды, что дома на рабочей станции, что на администрируемых серверах, стоящих у клиентов - не наблюдается. А кросс-компилирующий mingw под линух в репозиториях под мой дистр - есть. Так что, для начала, чтобы не городить огород вроде VitualBOX + WinXP + MSVC и прочее - пробовал обойтись тем минимумом, что уже установлен - Eclipse, CDT, mingw, плюс под Wine - DevCPP.
Фокус не прошел, так что пришлось откатываться на заранее подготовленные позиции - т.е. VirtualBOX и вся прочая компания.
Что до качества компиляторов - мне больше всего нравятся платные интеловские, что под винду, что под линь. gcc - он в принципе не очень крутой компилятор, ибо является мегакомбайном "один компилятор для всех возрастов и платформ". В своё время тестировал в винде, скорость компиляции при нормальных настройках оптимизации у mingw/gcc раза в два-три медленнее (без использования pre-compiled headers), а размер получаемых бинарников - раза в полтора-два больше. Так что смысл пользовать gcc под винду - только за его бесплатность и упрощение процесса портирования кода.