void CritterDialog::onKeyDown(Event::Keyboard* event)
{
    static std::vector<uint32_t> numkeys = {
            SDLK_1, SDLK_2, SDLK_3, SDLK_4, SDLK_5, SDLK_6, SDLK_7, SDLK_8, SDLK_9,
            SDLK_KP_1, SDLK_KP_2, SDLK_KP_3, SDLK_KP_4, SDLK_KP_5, SDLK_KP_6, SDLK_KP_7, SDLK_KP_8, SDLK_KP_9,
    };

    auto key = event->keyCode();

    if (key == SDLK_0 || key == SDLK_KP_0)
    {
        // Todo: end dialog
        return;
    }

    auto keyIt = std::find(numkeys.begin(), numkeys.end(), key);
    // Number key pressed
    if (keyIt != numkeys.end())
    {
        size_t keyOffset = keyIt - numkeys.begin();

        // If numpad key
        if (keyOffset > 8) keyOffset -= 9;

        if (keyOffset < _answers.size()) _selectAnswer(keyOffset);
        return;
    }
}
void CritterDialog::onAnswerClick(Event::Event* event)
{
    auto sender = dynamic_cast<UI::TextArea*>(event->target());

    size_t i = 0;
    for (auto answer : _answers)
    {
        if (answer == sender)
        {
            _selectAnswer(i);
            return;
        }
        ++i;
    }
}