HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Нубские вопросы от <censored> и других нубов (https://hlfx.ru/forum/showthread.php?threadid=4535)
Отправлено Crystallize 03-11-2024 в 16:10:
Цитата:
Crystallize писал:
В фитцквейке нельзя обновить r_refdef.vieworg через VectorAdd. Вот Мастер бы развонялся...
Цитата:
Дядя Миша писал:
Скорее расскажи ему об этом
Всё оказалось ещё интереснее. Сами VectorAdd и VectorCopy не виноваты. Но, в совершенно другой функции которая указана выше в том же файле, и которая даже не вызывается, есть объявление:
vec_t Length2D (vec3_t v);
Можно оставить в той функции только его, и всё будет работать. Но если ту строчку или ту функцию целиком закомментировать, то в совершенно другом месте ниже по файлу что-то по-тихому сломается и будет неправильно считаться позиция камеры.
Ну да, она юзается у меня там где что-то ломается. Непонятно только почему она берется из совершенно левой функции а не из матчлибы где она тоже есть. Как объявление вообще может браться из чужой функции?
Отправлено Дядя Миша 04-11-2024 в 07:35:
Ничего не понял.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Crystallize 04-11-2024 в 09:47:
Дядя Миша Я говорю, в Си для декларации функции не существует понятия области видимости. Главное чтобы где-то в файле она была. Ее можно объявить в одной функции, а пользоваться ей совсем в другой.
Отправлено Crystallize 04-11-2024 в 15:44:
Это такой у Кармака trigger_auto )))
Олсо это значит что каждые 655 секунд у нас пропадает инпут на долю секунды?
Отправлено Дядя Миша 04-11-2024 в 15:50:
Цитата:
Crystallize писал:
Ее можно объявить в одной функции, а пользоваться ей совсем в другой.
Так это и в С++ точто так же. Если не использован модификатор static.
Цитата:
Crystallize писал:
Олсо это значит что каждые 655 секунд у нас пропадает инпут на долю секунды?
Вообще-то структура cl зануляется при каждом рестарте уровня. С чего бы пропадать? И почему именно 655 секунд? Как ты получил это число?__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Crystallize 04-11-2024 в 16:13:
Цитата:
Дядя Миша писал:
Вообще-то структура cl зануляется при каждом рестарте уровня. С чего бы пропадать? И почему именно 655 секунд? Как ты получил это число?
Перепутал с шортом. Этот счетчик бежит по 100 мессаг в секунду, я поделил 65к на 100.
Отправлено Crystallize 05-11-2024 в 16:08:
Цитата:
Дядя Миша писал:
Так это и в С++ точто так же. Если не использован модификатор static.
Вот как раз такие вещи нужно записывать в категорию преднамеренного вредительства.
Отправлено Дядя Миша 06-11-2024 в 06:04:
Цитата:
Crystallize писал:
Вот как раз такие вещи нужно записывать в категорию преднамеренного вредительства.
в чём вредительство?__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Crystallize 06-11-2024 в 11:58:
Дядя Миша То что внезапно игнорируется концепция области видимости. Нету цельности.
Отправлено Дядя Миша 06-11-2024 в 18:24:
Crystallize я боюсь ты её как-то неправильно понял. Модули - это в Делфи.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Crystallize 07-11-2024 в 13:17:
currentorigin в кваке отстаёт от origin на целый кадр. Снова Мастер moment.
Цитата:
Дядя Миша писал:
Crystallize я боюсь ты её как-то неправильно понял. Модули - это в Делфи.
Я не в курсе про Дельфи и модули.
Я просто жду что правила для переменных будут распространяться также и на остальные части языка. Та самая интуитивная понятность.
Отправлено Дядя Миша 07-11-2024 в 14:41:
Цитата:
Crystallize писал:
Я просто жду что правила для переменных будут распространяться также и на остальные части языка
а кто мешает объявить переменную в одном файле и использовать в другом?
Цитата:
Crystallize писал:
currentorigin в кваке отстаёт от origin на целый кадр
А я ведь писал об этом. Да кто бы читал.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Crystallize 07-11-2024 в 16:44:
Цитата:
Дядя Миша писал:
а кто мешает объявить переменную в одном файле и использовать в другом?
Никто не мешает, но и проблема совершенно обратная.
Если ты шаришь переменную между функциями, ты сам выносишь её в глобалсы. Если ты шаришь её между файлами, ты ещё и пишешь extern в дальнем файле. Ты сознательно выстраиваешь эту цепочку и если что не так то компилятор сразу орёт про unresolved external.
А я столкнулся с тем, что ненайденная декларация не вызывает никаких сообщений даже на Level 4, просто фича не работает. А если она найдена, она без моего ведома растекается на весь файл, опять же мне не сообщая. А прикинь работать над одним проектом командой, кто-то убрал декларацию а у тебя по-тихому что-то сломалось.
Отправлено Дядя Миша 07-11-2024 в 16:57:
extern - это просто подсказка такая. Оно в любом случае "растекается" как ты изящно выразился, потому что объявлено в глобальном скоупе.
Файлы видимость НЕ ОГРАНИЧИВАЮТ и не ограничивали её вообще никогда.
Видимость ограничивают скоупы. Но можно принудительно ограничить видимость текущим файлом через модификатор static.
То есть ты опять сам себе там что-то нафантазировал.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено nemyax 07-11-2024 в 21:56:
Цитата:
Дядя Миша писал:
можно принудительно ограничить видимость текущим файлом через модификатор static
Главное не путать этот static со static-переменными в теле функции. Они ваааще про другое.