+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
pushkoff 06.04.2011 19:49 # +3
absolut 06.04.2011 20:14 # −1
iddqd 06.04.2011 21:25 # +1
isEndOfDay?
isMouseConsumedThisFrame?
...
|| isItJustMeSlowlyGoingInsane?
Kirinyale 07.04.2011 10:37 # +4
{
return rand() % (rand() + 42) == rand() * rand() ? boost::none : true;
}
Vindicar 07.04.2011 11:05 # −1
Lure Of Chaos 06.04.2011 22:08 # +5
Kirinyale 07.04.2011 10:31 # −1
А за этот срок можно было бы, как минимум, поднять нормальную архитектуру на готовых наработках. Проверенных двумя более сложными проектами, не имевшими ни одной серьёзной проблемы со вводом (как и с многим другим) за весь срок разработки...
Lure Of Chaos 07.04.2011 12:24 # +1
в итоге, когда говнокодеры уже не в силах раскопаться, на проект сажается один из немногих толковых программеров, у которого и без этого два проекта. В результате, он, не жалея жопы, ковыряет проект, постепенно рефакторя, меняет архитектуру на более грамотную.
Но когда его достают, он не желает больше рвать жопу и поддерживает, минимально расходуясь, уже не делая из бревна конфетку.
TarasB 07.04.2011 10:20 # −1
pushkoff 07.04.2011 11:05 # +5
TarasB 07.04.2011 11:41 # −3
Lure Of Chaos 07.04.2011 12:25 # −1
А я верил в лучшее. Но он сам признался. Я разочарован...