HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- Немного о будущем XDM3038 (https://hlfx.ru/forum/showthread.php?threadid=4641)
Отправлено Дядя Миша 27-12-2016 в 16:04:
Цитата:
~ X ~ писал:
LOAD_FILE_FOR_ME
COM_ParseFile
- уберите это
Ну вот почему это надо убрать? Может ты ханжа или сноб или латентный хохол? Почему это надо убрать?
Цитата:
~ X ~ писал:
Кстати, с таким размерам токена халва улетит в дерьмена-дерьменища, ИМХО
куда-куда улетит?
Цитата:
~ X ~ писал:
Тут у нас либлист.гам ещё в почёте.
ну вот меняешь gameinfo.txt на liblist.gam раз в почёте. Остальное так и остается.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено XaeroX 27-12-2016 в 16:36:
Цитата:
Дядя Миша писал:
Ну вот почему это надо убрать?
Потому что Мастер не хочет загружать файлы для себя. Он хочет загружать файлы для всех! 
__________________
Отправлено Дядя Миша 27-12-2016 в 16:53:
Мы для него ф ксашы сделаем специальную функцию:
LOAD_FILE_FOR_ME_AND_THREE_OTHER_MEMBERS_OF_LAN_PARTY

__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено ~ X ~ 27-12-2016 в 16:57:
Цитата:
XaeroX писал:
Потому что Мастер не хочет загружать файлы для себя. Он хочет загружать файлы для всех!
Всё правильно сказал!
Дядя Миша я могу ошибваться, конечно, но ЛФФМ или Ком_Парсе ожидает размер буфера 1024, и если в файле попадётся строка, скажем, больше 255 (в твоём примере), будет медный таз.
Кроме того, если, как кто-то писал в каком-то туторе, этим ЛФФМ чекать файлы на наличие (например, модельки, чтоб не крошилось), халва вылетает с очередными быдлолимитами. На ФРЕЕ_ФИЛЕ() ей глубоко покакать. Я стараюсь его избегать, когда возможно.
Процитирую кодик, чтоб его на той странице не искать:
C++ Source Code:
1 | const char *GetGameDescription() |
6 | char *afile = (char *)LOAD_FILE_FOR_ME( "gameinfo.txt", NULL ); |
12 | pfile = COM_ParseFile(pfile, token); |
13 | if ( !stricmp( token, "game" )) |
15 | pfile = COM_ParseFile(pfile, token); |
16 | sprintf( szbuffer, "%s ", token ); |
17 | strcat( text, szbuffer ); |
19 | else if ( !stricmp( token, "version" )) |
21 | pfile = COM_ParseFile(pfile, token); |
22 | strcat( text, token ); |
Никто ничего странного не заметил? Например, undefined behavior? 
XaeroX, может, выдашь медальку тому, кто заметит?
Я бы ещё полчасика потроллил, но троллейбус уехал. )__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Отправлено Дядя Миша 27-12-2016 в 17:25:
Цитата:
~ X ~ писал:
я могу ошибваться, конечно, но ЛФФМ или Ком_Парсе ожидает размер буфера 1024, и если в файле попадётся строка, скажем, больше 255 (в твоём примере), будет медный таз.
LOAD_FILE_FOR_ME ничего не ожидает. Он возвращает готовый буффер.
А насчёт COM_ParseFile, да - ты отчасти угадал. Я забыл показать одну вещь 
C++ Source Code:
char *COM_ParseFileExt( char *data, char *token, long token_size ); |
#define COM_ParseFile( data, token ) COM_ParseFileExt( data, token, sizeof( token )) |
В принципе ты бы мог это знать, если бы сорцы ксаш-мода изучал. Так что даже размер буффера в 1 символ к переполнению не приведёт.
Цитата:
~ X ~ писал:
Кроме того, если, как кто-то писал в каком-то туторе, этим ЛФФМ чекать файлы на наличие (например, модельки, чтоб не крошилось), халва вылетает с очередными быдлолимитами. На ФРЕЕ_ФИЛЕ() ей глубоко покакать.
Ну чисто теоретически давай предположим, что да, действительно вылетает, кроме того полная загрузка файла в память только ради того, чтобы убедиться в его наличии действительно неполезна. Но ведь я давным давно уже отказался от такого способа проверки. Новый способ выглядит вот так:
C++ Source Code:
1 | unsigned short UTIL_PrecacheMovie( const char *s ) |
6 | Q_snprintf( path, sizeof( path ), "media/%s", s ); |
9 | // g-cont. idea! use COMPARE_FILE_TIME instead of LOAD_FILE_FOR_ME |
10 | if( COMPARE_FILE_TIME( path, path, &iCompare )) |
12 | return g_engfuncs.pfnPrecacheEvent( 1, s ); |
15 | ALERT( at_console, "Warning: video (%s) not found!\n", s ); |
Это и в халфе прекрасно работает, просто в ксаше мне не надо всё подряд чекать, т.к. он и сам на уровне движка нормально к этому относится. Но сам механизм и для халфы актуален, да. И это бы ты тоже мог подсмотреть в ксаш-моде.
Цитата:
~ X ~ писал:
Никто ничего странного не заметил? Например, undefined behavior?
Если рассматривать функцию в сферическом ваккуме, то он там есть.
Если в рабочем окружении - то его там нет. Всё относительно, например.
Ну можешь добавить туда вначале text[0] = '\0'; раз тебя это так расстраивает. А еще поменять все int на uint32_t.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено ~ X ~ 27-12-2016 в 17:38:
Цитата:
Дядя Миша писал:
В принципе ты бы мог это знать, если бы сорцы ксаш-мода изучал. Так что даже размер буффера в 1 символ к переполнению не приведёт.
если ты всегда пользуешься статическими буферами без передачи по указателю. Попался char * - и ты в луже со своим убер-макросом. 
Цитата:
Дядя Миша писал:
В принципе ты бы мог это знать, если бы сорцы ксаш-мода изучал.
Цитата:
Дядя Миша писал:
И это бы ты тоже мог подсмотреть в ксаш-моде.
Зачем мне что-то подсматривать в краш-моде? а) потом читать жалобы что я пырил твои коды? б) тащить к себе чужие баги?
Цитата:
Дядя Миша писал:
text[0] = '\0';
Не угадал. Кроме того, это ты откуда-то с потолка взял. Нет там таких переменных.
Цитата:
Дядя Миша писал:
А еще поменять все int на uint32_t.
почему_t? Это твой личный мем?
Добавлено 27-12-2016 в 20:35:
Дядя Миша
Цитата:
Дядя Миша писал:
// g-cont. idea! use COMPARE_FILE_TIME instead of LOAD_FILE_FOR_ME
if( COMPARE_FILE_TIME( path, path, &iCompare ))
{
К тому же, нехорошо чужими идеями хвастаться! 
Добавлено 27-12-2016 в 20:38:
Хм... кстати, забавно, что ГетГамеДескрипшен() при каждом обращении в файл лезет... Халва параметры из либлиста записывает в строки.__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Отправлено Дядя Миша 27-12-2016 в 17:45:
Цитата:
~ X ~ писал:
Попался char * - и ты в луже со своим убер-макросом.
Ну очевидно же, что у меня char* не попадается. А если у тебя попадается, то это признак неоптимальной архитектуры 
Как вариант - можно передать длину буффера вместе с указателем, следующим аргументом. Можно даже сделать этот аргумент в виде uint32_t.
Так что вы мне вот вот это вот бросьте. Писать в указатель, не зная размера буффера. Этож надо додуматься. Это только ты и вальва таким занимаетесь.
Цитата:
~ X ~ писал:
потом читать жалобы что я пырил твои коды? б) тащить к себе чужие баги?
Тебя насильно заставляют читать? 
Цитата:
~ X ~ писал:
почему_t? Это твой личный мем?
ты не знаешь что такое _t ? Становится всё интереснее.
Цитата:
~ X ~ писал:
К тому же, нехорошо чужими идеями хвастаться!
Если ты сейчас украл у меня эту идею, то это не делает её твоей, понимаешь.
Цитата:
~ X ~ писал:
Нет там таких переменных.
Есть.
Цитата:
~ X ~ писал:
ГетГамеДескрипшен() при каждом обращении в файл лезет...
А сколько их всего, как думаешь?__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено thambs 27-12-2016 в 17:50:
>что я пырил твои коды
Извините, что вклиниваюсь в разговор, но как можно потырить то что и так свободно? На моей памяти такое только Денис Попов умудрился провернуть.
__________________
http://www.moddb.com/mods/monorail-quest
Отправлено ~ X ~ 27-12-2016 в 17:58:
thambs можно. В этом контексте "пырить" == "копировать". А речь идёт о том, что я буду потом получать миллиарды каментов от Ф****** и его клонов, что "половина ыгздыэма списана с ксаша". Вот в качестве превентивных мер.
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Отправлено FiEctro 27-12-2016 в 18:06:
Если бы XDM был бы списан с ксаша, может он бы стабильнее работал (кроме предиктинга).
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено ~ X ~ 27-12-2016 в 18:19:
Цитата:
Дядя Миша писал:
uint32_t.
откуда ты взял уинт32_т, объясни, наконец. Целыми днями про него болтаешь.
Цитата:
Дядя Миша писал:
Если ты сейчас украл у меня эту идею, то это не делает её твоей, понимаешь.
Прикинулся поленом? объясню: идею в коде пишет некий g-cont, а выдаёт за свою некий Дядя Миша.
Троллинг не удался, попкорна не поел. 
FiEctro ты баг-то в коде нашёл, дарагой?
AntiPlayer, а ты?
Может, FreeSlave?__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Отправлено Дядя Миша 27-12-2016 в 19:32:
Цитата:
~ X ~ писал:
откуда ты взял уинт32_т, объясни, наконец. Целыми днями про него болтаешь.
Взял его ты себе в XDM чем долго нам хвастался. А теперь прикинулся поленом.
Цитата:
~ X ~ писал:
Троллинг не удался, попкорна не поел.
Ессно не удался. У тебя вообще ничего и никогда не удаётся, кроме поедания гнилых бананов. Уж в этом ты Мастер 
Цитата:
~ X ~ писал:
AntiPlayer, а ты?
Может, FreeSlave?
Это твои воображаемые друзья, да?__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено ~ X ~ 27-12-2016 в 19:45:
Дядя Миша поищи по тексту, когда сырцы будут - я прикинулся бюрократом 
Ну, если здесь что-то гнилое есть, то это твои попытки зафлудить тему. 
Цитата:
Дядя Миша писал:
Это твои воображаемые друзья, да?
Это всего лишь "Пользователи, просматривающие тему". 
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Отправлено Дядя Миша 27-12-2016 в 20:08:
Цитата:
~ X ~ писал:
поищи по тексту, когда сырцы будут
Чего поискать-то?
Цитата:
~ X ~ писал:
Это всего лишь "Пользователи, просматривающие тему".
А пользователи, просматривающие тему не могут быть твоими воображаемыми друзьями что-ли? Ты давай не взывай к аудитории.
Она же понимает, что твои вопросы риторические, навроде "есть ли жызь на марсе", т.е. ответ не требуется.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено ~ X ~ 27-12-2016 в 20:37:
Дядя Миша ты настолько фанатично уверен в собственной непогрешимости? Я не понимаю. Ну, сказали же, что есть баги. Что ты мечешься так? Сам бы уже 10 раз нашёл, исправил и забыл. В привате эту тему уже обсудили и забыли.
Я-то в курсе, кто что нашёл. Только я постить не буду потому что неспортивно и скажут что я заангажирован. Могу только выдать имена и явки тех, кто знает. )
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]