Пример #1
0
bool MainMenu::check_menu(int key)
{
    bool result = false;

    int input = get_input_keydown(key);
    if (input & PRESS_ESC) {
        result = true;
    }

    return result;
}
Пример #2
0
Файл: battle.c Проект: phoboz/yz
void move_battle_keydown(
    BATTLE *battle,
    int key
)
{
    switch(battle->currActor->state) {

    case BATTLE_STATE_WAIT:
        move_menu_keydown(key);
        break;

    case BATTLE_STATE_MOVE:
        select_battle_steps(battle, get_input_keydown(key));
        break;

    case BATTLE_STATE_ATTACK:
        select_battle_destination(battle,
                                  get_input_keydown(key),
                                  &battle->currActor->attackList,
                                  battle->currActor->player->h->status.reach,
                                  attack_cb);
        break;

    case BATTLE_STATE_SELECT_MAGIC:
        move_menu_keydown(key);
        break;

    case BATTLE_STATE_TARGET:
        select_battle_destination(battle,
                                  get_input_keydown(key),
                                  &battle->currActor->targetList,
                                  ((SPELL *) battle->currActor->arg)->status.reach,
                                  target_cb);
        break;

    default:
        break;

    }

}
Пример #3
0
Файл: game.c Проект: phoboz/edom
static void game_keydown(int key)
{
  int input = get_input_keydown(key);

  if (input & PRESS_ENTER)
    open_door();

  if (input & PRESS_FIRE)
    attack();

  if (input & PRESS_ADVANCE)
    descend_level();

  if (input & PRESS_REVERT)
    ascend_level();
}
Пример #4
0
Файл: game.c Проект: phoboz/yz
static void check_esc(int key)
{
  int input = get_input_keydown(key);

  if (input & PRESS_ESC) {

    switch(state) {

      case GAME_STATE_WORLD  : set_game_state(GAME_STATE_MENU);
			       break;
      case GAME_STATE_MAP    : set_game_state(GAME_STATE_WORLD);
			       break;
      case GAME_STATE_STATUS : set_game_state(GAME_STATE_WORLD);
			       break;
      case GAME_STATE_BATTLE : deinit_battle(game_battle);
			       set_game_state(GAME_STATE_WORLD);
			       break;
      default                : break;

    }

  }
}
Пример #5
0
MainMenu::Option MainMenu::move(int key)
{
    Option option = OptionNone;

    int input = get_input_keydown(key);
    if (input & PRESS_DOWN) {
        m_menu->advance_pointer(Menu::DirectionDown);
        m_media->play_sound("advance.wav");
    }
    else if (input & PRESS_UP) {
        m_menu->advance_pointer(Menu::DirectionUp);
        m_media->play_sound("advance.wav");
    }
    else if (input & PRESS_ENTER) {
        m_media->play_sound("select.wav");
        option = (Option) m_menu->get_option();
    }
    else if (input & PRESS_ESC) {
        option = OptionContinue;
    }

    return option;
}
Пример #6
0
Area* Shop::move(int key)
{
    Area *area = 0;
    void *data = 0;
    bool rejected = false;

    int input = get_input_keydown(key);
    if (input & PRESS_DOWN) {
        data = m_menu->advance_pointer(Menu::DirectionDown);
        m_media->play_sound("advance.wav");
    }
    else if (input & PRESS_UP) {
        data = m_menu->advance_pointer(Menu::DirectionUp);
        m_media->play_sound("advance.wav");
    }
    else if (input & PRESS_ENTER) {
        if (m_menu->get_option() == 4) {
            m_media->play_sound("select.wav");
            area = new Area(m_src.c_str(), m_sx, m_sy);
        }
        else {
            Item *item = (Item *) m_menu->get_data();
            if (item) {
                Status *status = m_db->get_status();
                if (status->pay_gold(item->get_attribute("price"))) {
                    m_menu->replace_option("Sold out!");
                    item->aquire(m_db);
                    status->aquire_item(item);
                    m_media->play_sound("select.wav");
                }
                else {
                    m_media->play_sound("reject.wav");
                    rejected = true;
                }
            }
            else {
                m_media->play_sound("reject.wav");
                rejected = true;
            }
        }
    }

    if (data) {
        Item *item = (Item *) data;
        static char str[12];
        Color color;
        sprintf(str, "%06d Gold", item->get_attribute("price"));
        Status *status = m_db->get_status();
        if (status->get_gold() < item->get_attribute("price")) {
            color.set_named(Color::Red);
        }
        else {
            color.set_named(Color::White);
        }
        m_price_text->replace_line(str, color);
    }
    else if (!rejected) {
        static char str[12];
        Color color(Color::White);
        sprintf(str, "000000 Gold");
        m_price_text->replace_line(str, color);
    }

    return area;
}