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

Курилка программистов


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

  abramcumner писал(а):

экспортрованные вещи написаны и так и так

  Desertir писал(а):

уже есть нормально экспортированные функции

Да, это так. Т.е. вопрос только в том, кто это будет делать? :)

ТЧ 1.0004. SAP и Trans mod

github

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

Добавить в LUA #define.

А заодно - #include.

 

Да, и научить его инлайну. А вот строки копировать - наоборот, отучить.

 

 

P.S. И что-то сделать с векторами: либо изменяется то, что на входе, либо результат возвращается, не затрагивая аргумент. А не где попало как попало.

Ссылка на комментарий
  Dennis_Chikin писал(а):

Добавить в LUA #define. А заодно - #include.

#define зло в динамическом языке, и так мегапрогеры называют переменные, что с бутылкой не поймешь, для чего они, так еще всякие хитрозадые замены препроцессингом разбирать? А #include зачем? Есть require на худой конец. Модули и так спокойно подгружаются при первом обращении, или как там.

  Dennis_Chikin писал(а):

Да, и научить его инлайну. А вот строки копировать - наоборот, отучить.

Это ты про передачу строк в функции как значения, а не как ссылку?

  Dennis_Chikin писал(а):

И что-то сделать с векторами

Что ты имеешь ввиду?

ТЧ 1.0004. SAP и Trans mod

github

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

А вот как раз переименовать что нам надо так, как хотим.

Ну и простыни разные урезать. #include - в общем, для того же.

 

Зло, на самом деле, от make, когда начинают писать на нем, вместо того, чтобы писать на вменяемом языке. ;)

 

Инлайн - это когда функция разворачивается в код.

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

 

Про вектора - это вот, например про когда надо писать вот такого монстра:

c = vector():set( v_lin ):normalize():dotproduct( vector():set( lv_lin ):normalize() )

Ссылка на комментарий
  Dennis_Chikin писал(а):

переименовать что нам надо так, как хотим

Вот именно поэтому и зло, ты даже здесь костыль хочешь запихать. Тот же N++ имеет замену по файлам, в чем проблема использовать правильно? Но сложные конструкции надо постараться заменить, например можно придумать вот такого вида коммент

--BEGIN_DEBUG
    --а тут пишем код, который будет только в версии для дебага
    --всякие принты логи и т.п.
--END_DEBUG
Даже это не составит труда заменить плюсплюс блокнотом на пустоту. Можно даже небольшой скриптик написать для PowerShell, тогда процесс релиза будет еще проще.
  Dennis_Chikin писал(а):

от make, когда начинают писать на нем

Не пользовался.
  Dennis_Chikin писал(а):

Инлайн - это когда функция разворачивается в код.

Я просто всю строчку скопировал :)
  Dennis_Chikin писал(а):

c = vector():set( v_lin ):normalize():dotproduct( vector():set( lv_lin ):normalize() )

И как ты предлагаешь сделать? По мне так ничего криминального, сразу видно, что происходит.
  Dennis_Chikin писал(а):

Ну и простыни разные урезать. #include - в общем, для того же.

Примеры в студию, пожалуйста, что это за такие копипасты у тебя есть? Хоть убей не понимаю, зачем тебе include. Изменено пользователем Desertir

ТЧ 1.0004. SAP и Trans mod

github

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

local ct_npc = 0

local ct_item = 1

local ct_corpse = 2

local ct_out = 4

local ct_med = 5

 

Ну и зачем, когда во всех вменяемых языках это делается как раз через переопределение ?

Во-вторых, таки да, если кто-то где-то зачем-то определил it_is_my_kee\/\/11_Name0ff\/aЯ1b1ee_BecauseIAmKee\/\/1XackeP, и прибил это гвоздями, то написать один дефайн, и все...

 

 

Если я хочу сделать v_lin = v_lin:normalize() - я хочу, чтобы это именно так и выглядело.

Изменено пользователем Dennis_Chikin
Ссылка на комментарий
  01.06.2015 в 08:32, Desertir сказал:

Да, это так. Т.е. вопрос только в том, кто это будет делать? :)

Тот, кто начинает свой глобальный проект с правками движка и скриптов. В том же xp-dev - править смысла нет, отвалятся у всех скрипты. А переписывать скрипты только потому, что кому-то так кажется красивей... :)
  • Согласен 2
Ссылка на комментарий

#define Отлично? WTF?

#define Супер. Маразм.

--------------------------------------------

  Dennis_Chikin писал(а):

Ну и зачем, когда во всех вменяемых языках это делается как раз через переопределение ?

Через переопределение? Переопределение чего?

  Dennis_Chikin писал(а):

то написать один дефайн, и все

И вся эта муть останется в скрипте. Открываешь этот скрипт для дебага, а там такая переменная, непонятно, что она обозначает, и ты идешь в свои эти дефайны, пытаешься найти ее, и спустя пол часа понимаешь, что эта переменная тут ни при чем. Отлично? Супер. Вместо того, чтобы сразу понять, для чего переменная, надо куда то ходить. А ты их всех хочешь запомнить? Вопросов нет.

  Dennis_Chikin писал(а):

Если я хочу сделать v_lin = v_lin:normalize() - я хочу, чтобы это именно так и выглядело.

Методы действуют на объекты у которых вызываются. Тут все вполне логично. Вот если бы было написано get_normalize или на крайняк tonormalize, тогда этот метод уже что то возвращает.

Тебе дали удочку, а тебе цвет не нравится? Смирись/ищи другую/сделай сам/забей на всё.

@abramcumner, вопрос был по большей части риторический, я уже давно забил на ХРей. Движки то уж давно ушли вперед по развитию. Да еще и стали бесплатными :)

ТЧ 1.0004. SAP и Trans mod

github

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

@svarog2741, ты серьезно? :)

У тебя куда-то потерялось тело функции. Найди его и посмотри: может файл с ним не добавлен в проект или оно под каким-нибудь дефайном или еще что.

 

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

 

 

  01.06.2015 в 10:32, Desertir сказал:

Методы действуют на объекты у которых вызываются. Тут все вполне логично. Вот если бы было написано get_normalize или на крайняк tonormalize, тогда этот метод уже что то возвращает.

Тебе дали удочку, а тебе цвет не нравится? Смирись/ищи другую/сделай сам/забей на всё.

Точно так же, как и ты :) Ты высказал предложения, Денис высказал свои.

У вектора часть методов возвращают новый объект, не меняя исходный, а часть методов меняет исходный. Он всего лишь предложил упорядочить это.

Изменено пользователем abramcumner
Ссылка на комментарий
  abramcumner писал(а):

У тебя куда-то потерялось тело функции

Если бы потерялось, то на DX8 не компилилось.

К сожалению у этой ошибки большой перечень возможностей её возникновения. Возможно, на 8 студии построение прошло бы успешно.

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

svarog2741.gif

 

НС - шлак, солянки - шлак.

Ссылка на комментарий
  01.06.2015 в 14:42, svarog2741 сказал:

Если бы потерялось, то на DX8 не компилилось.

ДХ8 - это отдельный солюшен? Не увидел у тебя в студии на тулбаре панели с конфигурацией.

 

  Цитата

К сожалению у этой ошибки большой перечень возможностей её возникновения. Возможно, на 8 студии построение прошло бы успешно.

Все они сводятся к тому, что тело функции не найдено. Номер студии абсолютно не важен.

 

Итак: ты нашел файл, в котором определена функция UpdatePowerStatus?

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

 

 

  abramcumner писал(а):
UpdatePowerStatus
а тела-то и не было, тупо название функции. Спасибо!

Блин, он теперь компилит, но конченой dll'ки не создаётся. 

svarog2741.gif

 

НС - шлак, солянки - шлак.

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

	// Set up Full Screen presentation parameters

	nModes = pD3D->GetAdapterModeCount(D3DADAPTER_DEFAULT, D3DFMT_D16);

	for (i = 0; i<nModes; i++)
	{
		pD3D->EnumAdapterModes(D3DADAPTER_DEFAULT, D3DFMT_D16, NULL, 0);
		if (Mode.Width != (UINT)nScreenWidth || Mode.Height != (UINT)nScreenHeight) continue;
		if (nScreenBPP == 16 && (_format_id(Mode.Format) > _format_id(D3DFMT_A1R5G5B5))) continue;
		if (_format_id(Mode.Format) > _format_id(Format)) Format = Mode.Format;
	}

	if (Format == D3DFMT_UNKNOWN)
	{
		_PostError("Can't find appropriate full screen video mode");
		if (!bWindowed) return false;
	}

	D3DPRESENT_PARAMETERS d3dppFS;
	memset(&d3dppFS, 0, sizeof(d3dppFS));

	d3dppFS.BackBufferWidth = 1024;
	d3dppFS.BackBufferHeight = 768;
	//	d3dppFS.BackBufferFormat = Format;
	d3dppFS.BackBufferFormat = D3DFMT_X8R8G8B8;
	d3dppFS.BackBufferCount = 1;
	d3dppFS.MultiSampleType = D3DMULTISAMPLE_NONE;
	d3dppFS.hDeviceWindow = hwnd;
	d3dppFS.Windowed = FALSE;


	d3dppFS.SwapEffect = D3DSWAPEFFECT_FLIP;
	d3dppFS.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;

	if (nHGEFPS == HGEFPS_VSYNC) d3dppFS.PresentationInterval = D3DPRESENT_INTERVAL_ONE;
	else					  d3dppFS.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;

	if (bZBuffer)
	{
		d3dppFS.EnableAutoDepthStencil = TRUE;
		d3dppFS.AutoDepthStencilFormat = D3DFMT_D16;

	}

	d3dpp = bWindowed ? &d3dppW : &d3dppFS;

	if (_format_id(d3dpp->BackBufferFormat) < 4) nScreenBPP = 16;
	else nScreenBPP = 32;

Несколько часов пытаюсь что-то сделать с этим кодом, чтоб работало на DX9. Код основан на DX8.

svarog2741.gif

 

НС - шлак, солянки - шлак.

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

@svarog2741, забей на него. Переходи на хрей - единственный нормальный движок, поддерживающий дх9 и дх8

 

Ну ты хотя бы скажи, что тебе не нравится в приведенном коде :) Или компилятору что не нравится.

Код перебирает режимы моника и заполняет структурку. Что там: режимы не преребираются или структурка плохо заполняется?

  • Нравится 1
Ссылка на комментарий

 

 

  abramcumner писал(а):
Что там: режимы не преребираются или структурка плохо заполняется?

Лог движка:

Can't find appropriate full screen video mode
Mode: 800 x 600 x UNKNOWN

 

 

  abramcumner писал(а):
Переходи на хрей - единственный нормальный движок
я как дня три от него ушёл, пока возвращаться не хочется.

svarog2741.gif

 

НС - шлак, солянки - шлак.

Ссылка на комментарий
  svarog2741 писал(а):

Can't find appropriate full screen video mode Mode: 800 x 600 x UNKNOWN

Выведи в лог все доступные режимы и посмотри почему ни один не подходит.

 

Есть подозрения, что в EnumAdapterModes надо передавать номер режима(типа переменную i).

Ссылка на комментарий
@abramcumner,ох... Как же старые движки апдейтить не легко. Изменено пользователем svarog2741

svarog2741.gif

 

НС - шлак, солянки - шлак.

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

@svarog2741, под иконкой написано: Разрабатываю игровой движок.

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

 

  Мои работы: (Показать)
Ссылка на комментарий

@abramcumner, кстати вопрос: как реализована поддержка HLSL на дх8? Вроде как он появился только в дх9... Читал где-то, что на самом деле там не дх8, а обрезок дх9 (хотя и непонятно, как такое возможно).

Плюс микро-вбросик: CE3

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

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

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

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

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

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

Войти

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

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

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