コード例 #1
0
ファイル: menu_controller.c プロジェクト: atroel/open-greedy
static void menu_controller_handle_key_pressed(struct menu *menu,
					       enum controller_key key)
{
	switch (key) {
	case CTRLK_UP:
		previous_menu_entry(menu);
		break;
	case CTRLK_DOWN:
		next_menu_entry(menu);
		break;
	case CTRLK_RETURN:
	case CTRLK_ENTER:
		select_menu_entry(menu);
		break;
	case CTRLK_ESCAPE:
		quit_menu(menu);
		break;
	default:
		break;
	}
}
コード例 #2
0
ファイル: combat.c プロジェクト: jflemer/lotr
void
combat_won(void)
{
    int i;

    combat_mode = 0;
    music_combat_won();
    game_set_party_characters(combat_party, combat_party_size);

    if (!game_in_party(game_get_leader()))
        game_set_leader(combat_party[0]);

    game_get_leader()->x = combat_leader_x;
    game_get_leader()->y = combat_leader_y;
    map_character_update(game_get_leader());

    for (i = 0; i < combat_party_size; ++i)
        if (combat_party[i]->life < 6)
            combat_party[i]->life = 6;

    quit_menu();
}
コード例 #3
0
ファイル: combat.c プロジェクト: jflemer/lotr
void
combat_start(void)
{

    int i, j;
    int leader_x, leader_y;

    combat_mode = 1;
    music_combat_started();
    quit_menu();
    combat_attack_animation = 0;

    map_get_center(&combat_x, &combat_y);

    combat_x /= 8;
    combat_y /= 8;

    combat_x -= COMBAT_C_X;
    combat_y -= COMBAT_C_Y;


    combat_party_size = game_get_party_characters(combat_party);

    combat_leader_x = game_get_leader()->x;
    leader_x = combat_leader_x / 4 - combat_x;
    combat_leader_y = game_get_leader()->y;
    leader_y = combat_leader_y / 4 - combat_y;

    if (leader_x < 0)
        leader_x = 0;
    if (leader_y < 0)
        leader_y = 0;
    if (leader_x >= COMBAT_WIDTH)
        leader_x = COMBAT_WIDTH - 1;
    if (leader_y >= COMBAT_HEIGHT)
        leader_x = COMBAT_HEIGHT - 1;


    combat_area_init();

    combat_area[leader_x][leader_y] = 1;
    combat_stack[0][0] = leader_x;
    combat_stack[0][1] = leader_y;
    combat_stack_size = 1;
    combat_stack_start = 0;
    combat_stack_proceed();


    for (i = 0; i < combat_party_size; ++i)
        combat_move_to_area(combat_party[i]);

    ring_not_working = 0;

    for (i = 0; i < combat_enemies_num; ++i) {
        /* somewhat stupid */
        if (!strcmp(combat_enemies[i]->name, "Nazgul") ||
            !strcmp(combat_enemies[i]->name, "Witch-King") ||
            !strcmp(combat_enemies[i]->name, "Ghostking") ||
            !strcmp(combat_enemies[i]->name, "Ghost") ||
            !strcmp(combat_enemies[i]->name, "Balrog") ||
            !strcmp(combat_enemies[i]->name, "Barrow Wight") ||
            !strcmp(combat_enemies[i]->name, "Werewolf"))
            ring_not_working = 1;

        if (strcmp(combat_enemies[i]->name, "Tentacles"))
            combat_move_to_area(combat_enemies[i]);

        for (j = 0; j < combat_enemies[i]->items_num; ++j)
            combat_enemies[i]->item_used[j] = 0;

        for (j = 0; j < combat_enemies[i]->items_num; ++j)
            if (object_is_weapon(combat_enemies[i]->items[j])) {
                combat_enemies[i]->item_used[j] = 1;
                break;
            }

        for (j = 0; j < combat_enemies[i]->items_num; ++j)
            if (object_is_armour(combat_enemies[i]->items[j])) {
                combat_enemies[i]->item_used[j] = 1;
                break;
            }

        for (j = 0; j < combat_enemies[i]->items_num; ++j)
            if (object_is_shield(combat_enemies[i]->items[j])) {
                combat_enemies[i]->item_used[j] = 1;
                break;
            }

    }

    active_character = NULL;
    combat_next_turn();

}