- 
        Список говнокодов пользователя KirinyaleВсего: 24 
- 
        
        
                +25         
                            - 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
 bool Channel::applyPreprocessorSettings()
{
	if (captureDeviceID_.empty() || !isSafeToChangeSettingsNow())
		CHANNEL_LOG("deferring applyPreprocessorSettings()");
		needApplyPreprocessorSettings_ = true;
		return false;
	// ... (куча кода)
	
	return true;
}
 
 
            Никогда - слышите, НИКОГДА! - не пишите на C++ одновременно с питоном.
         
             Kirinyale,
            09 Апреля 2013 Kirinyale,
            09 Апреля 2013
 
- 
        
        
                −87         
                            - 1
- 2
- 3
- 4
 Splash = playGrayscaleSplashFx
playGrayscaleSplashFx = function()
end
 
 
            Хороший, годный аналог #define true false.
 Обнаружен в Lua-скрипте, автоматически включающемся во все скриптовые контексты (примерный аналог precompiled header).
 
 playGrayscaleSplashFx - функция, экспортируемая в Lua из C++ кода.
 
 Внёс в неё изменения, попытался протестировать результат... долго думал.
 
             Kirinyale,
            07 Марта 2012 Kirinyale,
            07 Марта 2012
 
- 
        
        
                +147         
                            - 1
- 2
- 3
- 4
 class PieceDragging
{
...
};
 
 
            Переделываю всё тот же (недавно упоминавшийся) Jigsaw. Попытался произнести вслух название класса одного из состояний. Коллеги оценили. Придётся рефакторить...
         
             Kirinyale,
            18 Августа 2011 Kirinyale,
            18 Августа 2011
 
- 
        
        
                +163         
                            - 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
 void Model::setPieceRotationAngleDegrees(uint pieceIndex, float angleDegrees)
{
	check(pieceIndex < cfg_.getPiecesQuantity());
	pieces_[pieceIndex].angle_ += angleDegrees;
	if (pieces_[pieceIndex].angle_ == 360.0f)
	{
		pieces_[pieceIndex].angle_ = 0.0f;
	}
}
 
 
            Фееричный сеттер в модели простенького Jigsaw-паззла.
         
             Kirinyale,
            12 Августа 2011 Kirinyale,
            12 Августа 2011
 
- 
        
        
                +152         
                            - 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
 if (getMaterialDom().ztest_)
 {
  device.SetRenderState(D3DRS_ZENABLE, TRUE);
  device.SetRenderState(D3DRS_ZFUNC, D3DCMP_LESSEQUAL);
 }
 else
  device.SetRenderState(D3DRS_ZENABLE, FALSE);
if (getMaterialDom().zwrite_)
	device.SetRenderState(D3DRS_ZWRITEENABLE, TRUE);
else
	device.SetRenderState(D3DRS_ZWRITEENABLE, FALSE);
 
 
            Реализация параметров материала z-test и z-write в 3D-движке.
         
             Kirinyale,
            04 Августа 2011 Kirinyale,
            04 Августа 2011
 
- 
        
        
                −96         
                            - 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
 function onUpdate(this)
			
	local  a;
	a = math.floor( math.random() * 1000);
	if(a==68)then
		playParticleFx(this,"/particles/spider/spider_lift.psysl",10);
		--logWarning("spirder1");
	end
	if(a==35)then
		playParticleFx(this,"/particles/spider/spider_lift_1.psysl",10);
		--logWarning("spirder2");
	end
	if(a==73)then
		playParticleFx(this,"/particles/spider/spider_lift_2.psysl",10);
		--logWarning("spirder3");
	end
end;
 
 
            Выдержка из Lua-скрипта.
 Выпускаем побегать декоративного паучка по случайными интервалам времени.
 
             Kirinyale,
            20 Июля 2011 Kirinyale,
            20 Июля 2011
 
- 
        
        
                +171         
                            - 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
 ...
bool GameLocations::checkButtonsEnabled() const
{
	GameClassT& gc = GameClass::instance();
	return
		!gc.getCurrentLocationPopup() &&
		!gc.getHud().getCurrentWindowFore() &&
		!gc.isMenuOpen() &&
		!gc.isEndOfDay() &&
		!GameClass::instance().isMouseConsumedThisFrame();
}
...
void LocationPopupBase::update(float dt)
{
	...
	const bool inputEnabled =
		m_isActive &&
		!m_talentUsedWindowActive &&
		!m_dialogueManager.isVisible() &&
		!GameClass::instance().getHud().getCurrentWindowBack() &&
		!GameClass::instance().getHud().getCurrentWindowFore() &&
		(!m_currentAction ||
		 ((*m_currentActionPhase == AP_Finalize) && !m_currentAction->m_immediateFinalize)) &&
		 m_actionSequenceCallbacks.empty();
	setInputEnabled(inputEnabled);
}
...
 
 
            Вот во что со временем превращаются игровые проекты, в которых нет никакой стейт-машины или хоть какого-нибудь её аналога.
 
 Это - только вершина айсберга. Разнообразные (старые и новые) баги обработки ввода постоянно появляются из ниоткуда, исчезают в никуда, а фиксить их приходится минимум по пять раз в неделю.
 
             Kirinyale,
            06 Апреля 2011 Kirinyale,
            06 Апреля 2011
 
- 
        
        
                +159         
                            - 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
 enum EPlayerStat { ... };
typedef std::pair<EPlayerStat, int> StatDelta;
...
void GameClassT::showTooltipStats(const float2& pos, const std::vector<StatDelta>& statDeltas)
{
	//...
	if (statDeltas.empty())
		return;
	// Выбираем тип баббла в зависимости от количества статов, которые в нём нужно отобразить.
	// Баббл с последним статом "wish chance" выглядит немного не так, как остальные,
	// но возможен (пока что) только для варианта с тремя статами.
	Bubble* const bubblesNormal[] =
	{
		&m_bubbleTooltipStats1SE,
		&m_bubbleTooltipStats2SE,
		&m_bubbleTooltipStats3SE,
		&m_bubbleTooltipStats4SE
	};
	Bubble* const bubblesWish[] =
	{
		nullptr,
		nullptr,
		&m_bubbleTooltipStats3SE_Wish,
		nullptr
	};
	Bubble* const* const bubbles = (statDeltas.end() == std::find_if(statDeltas.begin(), statDeltas.end(),
		[](const StatDelta& delta) -> bool { return delta.first == PS_WishChance; }))
			? bubblesNormal : bubblesWish;
	
	Bubble& bubble = *bubbles[(statDeltas.size() <= ARRAY_SIZE(bubbles)) ? (statDeltas.size() - 1) : (ARRAY_SIZE(bubbles) - 1)];
	if (&bubble == nullptr)
	{
		RZT_LOG_WARNING("Bubble with %d stats with wish chance is not supported!", statDeltas.size());
		return;
	}
	// Настраиваем выбранный баббл.
	//... (здесь вызываются всякие методы через ссылку bubble)
}
 
 
            Внезапные изменения в спецификации такие внезапные.
 Мне всегда становится страшно, когда из-за них я начинаю рожать что-то подобное.
 
             Kirinyale,
            31 Марта 2011 Kirinyale,
            31 Марта 2011
 
- 
        
        
                +167         
                            - 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
 PopupWindow* GameLocations::getCurrentPopup()
{
	if(m_curPopup != nullptr && m_curPopup->needsClose())
	{
		m_curPopup->onClose();
		m_curPopup = nullptr;
		m_walker->BeginWalk(m_graph->getClosestNode(m_currentLocationId));
	}
	return m_curPopup;
}
 
 
            
         
             Kirinyale,
            18 Марта 2011 Kirinyale,
            18 Марта 2011
 
- 
        
        
                +160         
                            - 1
- 2
 float alpha = float(m_startAlpha) + 255.0f * (getElapsed() / (m_duration * (1.0f - float(m_startAlpha) / 255.0f)));
m_target->setAlpha(static_cast<uint8_t>(alpha));
 
 
            Выдержка из обновления объекта-действия, производящего линейный фейд-аут объекта...
 
 Общение с чужим говнокодом не проходит бесследно... что же я курил, перед тем как ЭТО соорудить?
 
             Kirinyale,
            14 Марта 2011 Kirinyale,
            14 Марта 2011