+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
isEndOfDay?
isMouseConsumedThisFrame?
...
|| isItJustMeSlowlyGoingInsane?
{
return rand() % (rand() + 42) == rand() * rand() ? boost::none : true;
}
А за этот срок можно было бы, как минимум, поднять нормальную архитектуру на готовых наработках. Проверенных двумя более сложными проектами, не имевшими ни одной серьёзной проблемы со вводом (как и с многим другим) за весь срок разработки...
в итоге, когда говнокодеры уже не в силах раскопаться, на проект сажается один из немногих толковых программеров, у которого и без этого два проекта. В результате, он, не жалея жопы, ковыряет проект, постепенно рефакторя, меняет архитектуру на более грамотную.
Но когда его достают, он не желает больше рвать жопу и поддерживает, минимально расходуясь, уже не делая из бревна конфетку.
А я верил в лучшее. Но он сам признался. Я разочарован...