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

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


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

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

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

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

ТЧ 1.0004. SAP и Trans mod

github

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

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

А заодно - #include.

 

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

 

 

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

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

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

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

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

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

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

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

ТЧ 1.0004. SAP и Trans mod

github

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

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

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

 

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

 

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

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

 

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

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

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

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

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

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

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

Не пользовался.

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

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

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

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

Ну и простыни разные урезать. #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
Ссылка на комментарий

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

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

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

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

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

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

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

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

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

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

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

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

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

ТЧ 1.0004. SAP и Trans mod

github

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

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

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

 

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

 

 

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

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

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

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

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

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

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

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

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

svarog2741.gif

 

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

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

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

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

 

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

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

 

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

Изменено пользователем 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
Ссылка на комментарий

 

 

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

Лог движка:

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


 

 

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

svarog2741.gif

 

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

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

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 пользователей

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