Пример #1
0
void LocalEvent::HandleKeyboardEvent(SDL_KeyboardEvent & event)
{
    if(KEY_NONE != GetKeySym(event.keysym.sym))
    {
	(event.type == SDL_KEYDOWN) ? SetModes(KEY_PRESSED) : ResetModes(KEY_PRESSED);

#ifdef WITHOUT_MOUSE
	if(emulate_mouse && EmulateMouseAction(GetKeySym(event.keysym.sym))) return;
#endif

	key_value = GetKeySym(event.keysym.sym);
    }
}
Пример #2
0
void Game::HotKeysLoad(const std::string & hotkeys)
{
    Tiny::Config config;
    const Tiny::Entry* entry = NULL;

    config.SetSeparator('=');
    config.SetComment('#');

    if(config.Load(hotkeys.c_str()))
    {
	for(events_t evnt = EVENT_NONE; evnt < EVENT_LAST; ++evnt)
	{
	    const char* name = EventsName(evnt);
	    if(name)
	    {
		entry = config.Find(name);
		if(entry)
		{
		    const KeySym sym = GetKeySym(entry->IntParams());
		    key_events[evnt] = sym;
		    DEBUG(DBG_GAME, DBG_INFO, "events: " << EventsName(evnt) << ", key: " << KeySymGetName(sym));
		}
	    }
	}

#ifdef WITHOUT_MOUSE
	LocalEvent & le = LocalEvent::Get();

	entry = config.Find("emulate mouse up");
        if(entry) le.SetEmulateMouseUpKey(GetKeySym(entry->IntParams()));

        entry = config.Find("emulate mouse down");
        if(entry) le.SetEmulateMouseDownKey(GetKeySym(entry->IntParams()));

        entry = config.Find("emulate mouse left");
        if(entry) le.SetEmulateMouseLeftKey(GetKeySym(entry->IntParams()));

        entry = config.Find("emulate mouse right");
        if(entry) le.SetEmulateMouseRightKey(GetKeySym(entry->IntParams()));

        entry = config.Find("emulate press left");
        if(entry) le.SetEmulatePressLeftKey(GetKeySym(entry->IntParams()));

        entry = config.Find("emulate press right");
        if(entry) le.SetEmulatePressRightKey(GetKeySym(entry->IntParams()));
#endif
    }
}