![]() |
Страницы (13): « 1 [2] 3 4 5 6 » ... Последняя » Показать все 188 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Флуд (https://hlfx.ru/forum/forumdisplay.php?forumid=11)
-- Заметки на полях (https://hlfx.ru/forum/showthread.php?threadid=5815)
Немного поменял концепцию. Во первых убрал модификатор predictable, поскольку нет нужды это делать выборочно. Всё что попало на клиент нуждается в предиктинге, если включен соответствующий квар.
Т.е. там можно сделать некоторые режимы, типа предиктить всё, предиктить только игроков, а внутри VM это будет только запутывать. Поскольку нам надо предсказывать поведение объектов, а не отдельных переменных.
Вместо этого ввёл модификатор unsigned, который влияет только на сейв-рестор и передачу по сети. Так же важный момент, после объявления переменной через двоеточие объявляется сколько бит использует эта переменная. В VM эта настройка не будет влиять на непосредственно размер переменной (по крайней мере на текущий момент). Вместо этого она будет использоваться как хинт - сколько бит используется в данной переменной для сохранения в сейв и передачи на клиент по сети. Т.е. такой очень удобный и наглядный аналог delta.lst. Безо всяких идиотских таблиц и прочего. Кол-во бит будет работать и на флоатах тоже. Никаких множителей не понадобится, этот способ гораздо точнее и надёжнее. Т.е. по сети можно будет передавать даже восьмибитные флоаты или что-то вроде этого.
Ну а в дальнейшем возможно и реальный размер переменных тоже подгонится под заданный, но я, если честно не вижу в этом особого смысла.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
На мой взгляд, две самые стрёмные операции, которые абсолютно не нужны в скриптовом языке - это взятие адреса и разыменование указателей.
Не берусь предположить, можно ли было без них обойтись в С++, но ведь он вырос из Си, значит следовало обеспечить полную совместимость.
Но поскольку в С++ есть ссылки, потребность во взятии адреса, на мой взгляд отпадает полностью. Обычно адрес берут, чтобы передать в функцию указатель на аргумент, который будет модифицироваться. Ссылка делает тоже самое, только безопасным образом.
Тут идея в чём. Если указатель не был получен легальным образом, значит он использует какие-то объекты, на которые он не нужен. Глобальные или стековые. Здесь ссылка прекрасно годится.
Но конечно я не исключаю, что не учёл чего-то, по мере развития языка будет видно.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
__________________
I tell you to enjoy life
typedef const void foo; |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Делаю свитч-кейсы и встал интересный вопрос. Вот конструкция:
1 | void test( int i ) |
2 | { |
3 | switch( i ) |
4 | { |
5 | case '1': |
6 | break; |
7 | case 2: |
8 | break; |
9 | case "foo": |
10 | break; |
11 | } |
12 | } |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
В делфях оказывается есть указатель на функцию абстрактного класса.
Ну т.е. этот тайпдеф необязательно объявлять внутри класса, можно в глобальном пространстве, а вместо имени класса написать object.
Я ради прикола попробовал объявить нечто подобное в С++
void (class::*foo)( void ); |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Вот такую конструкцию попробуйте
int foo[2][2] = { 1, 2 }; |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Не знаю, что там в шестёрке, но в нормальном компиляторе это инициализирует первый ряд 1 и 2, а второй ряд - нулями.
__________________
Дошло. Тут неинтуитивное поведение на самом деле.
Если мы пишем
int foo[8] = { 0 }; |
int foo[8] = { -1 }; |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
__________________
Временная зона GMT. Текущее время 09:34. | Страницы (13): « 1 [2] 3 4 5 6 » ... Последняя » Показать все 188 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024