Пример #1
0
void MenuProcessChangeKey(menu_t *menu)
{
	int key = GetKey(&gEventHandlers);	// wait until user has pressed a new button

	if (key == SDLK_ESCAPE)
	{
		MenuPlaySound(MENU_SOUND_BACK);
	}
	else if (KeyAvailable(
		key,
		menu->u.normal.changeKeyMenu->u.changeKey.code,
		menu->u.normal.changeKeyMenu->u.changeKey.keys,
		menu->u.normal.changeKeyMenu->u.changeKey.keysOther))
	{
		if (menu->u.normal.changeKeyMenu->u.changeKey.code != KEY_CODE_MAP)
		{
			InputSetKey(
				menu->u.normal.changeKeyMenu->u.changeKey.keys,
				key,
				menu->u.normal.changeKeyMenu->u.changeKey.code);
		}
		else
		{
			gConfig.Input.PlayerKeys[0].Keys.map = key;
		}
		MenuPlaySound(MENU_SOUND_ENTER);
	}
	else
	{
		MenuPlaySound(MENU_SOUND_ERROR);
	}
	menu->u.normal.changeKeyMenu = NULL;
}
Пример #2
0
void MenuProcessChangeKey(menu_t *menu)
{
	int key = GetKey(&gKeyboard);	// wait until user has pressed a new button

	if (key == keyEsc)
	{
		SoundPlay(&gSoundDevice, SND_PICKUP);
	}
	else if (KeyAvailable(
		key,
		menu->u.normal.changeKeyMenu->u.changeKey.code,
		menu->u.normal.changeKeyMenu->u.changeKey.keys,
		menu->u.normal.changeKeyMenu->u.changeKey.keysOther))
	{
		if (menu->u.normal.changeKeyMenu->u.changeKey.code != KEY_CODE_MAP)
		{
			InputSetKey(
				menu->u.normal.changeKeyMenu->u.changeKey.keys,
				key,
				menu->u.normal.changeKeyMenu->u.changeKey.code);
		}
		else
		{
			gConfig.Input.PlayerKeys[0].Keys.map = key;
		}
		SoundPlay(&gSoundDevice, SND_EXPLOSION);
	}
	else
	{
		SoundPlay(&gSoundDevice, SND_KILL4);
	}
	menu->u.normal.changeKeyMenu = NULL;
}
Пример #3
0
void ChangeMapKey(struct PlayerData *d1, struct PlayerData *d2)
{
	int key;

	while (1) {
		key = GetKeyDown();

		if (key == keyEsc)
			return;

		if (key != 0) {
			if (KeyAvailable(key, d1, -1, d2)) {
				gOptions.mapKey = key;
				PlaySound(SND_EXPLOSION, 0, 255);
				return;
			} else
				PlaySound(SND_KILL4, 0, 255);
		}
	}

	return;
}
Пример #4
0
void	Controls::KeyInput(const std::string &index)
{
    sf::Event	event;
    std::string	key;

    while (this->_Window->waitEvent(event))
    {
        if (event.type == sf::Event::KeyPressed)
        {
            key  = this->_Alpha[event.key.code];
            if(KeyAvailable(key, index) && key != "") {
                while (this->ctrlCu.find(index) != this->ctrlCu.end())
                    this->ctrlCu.erase(this->ctrlCu.find(index));
                this->ctrlCu[index] = key;
                if (this->num_play ==  1)
                    this->ctrlK1 = this->ctrlCu;
                else
                    this->ctrlK2 = this->ctrlCu;
                return;
            }
        }
    }
}
Пример #5
0
void ChangeKey(struct PlayerData *data, struct PlayerData *other,
	       int index)
{
	int key = 0;

	while (GetKeyDown());

	while (1) {
		key = GetKeyDown();

		if (key == keyEsc)
			return;

		if (key != 0) {
			if (KeyAvailable(key, data, index, other)) {
				data->keys[index] = key;
				PlaySound(SND_EXPLOSION, 0, 255);
				return;
			} else
				PlaySound(SND_KILL4, 0, 255);
		}
	}
}