-
Список говнокодов пользователя 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
-
−87
- 1
- 2
- 3
- 4
Splash = playGrayscaleSplashFx
playGrayscaleSplashFx = function()
end
Хороший, годный аналог #define true false.
Обнаружен в Lua-скрипте, автоматически включающемся во все скриптовые контексты (примерный аналог precompiled header).
playGrayscaleSplashFx - функция, экспортируемая в Lua из C++ кода.
Внёс в неё изменения, попытался протестировать результат... долго думал.
Kirinyale,
07 Марта 2012
-
+147
- 1
- 2
- 3
- 4
class PieceDragging
{
...
};
Переделываю всё тот же (недавно упоминавшийся) Jigsaw. Попытался произнести вслух название класса одного из состояний. Коллеги оценили. Придётся рефакторить...
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
-
+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
-
−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
-
+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
-
+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
-
+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
-
+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