Esempio n. 1
0
void EditorLevelChoice::ProcessEvents(SDL_Event const & event)
{
    if (event.type == SDL_QUIT) {
        SetDone();
    }

    if (event.type == SDL_KEYDOWN) {
        SDLKey key = event.key.keysym.sym;
        if (key == SDLK_ESCAPE) {
            SetNextAppState(AppStatePtr(new MainMenu));
            SetDone();
        } else if (key == SDLK_LEFT) {
        } else if (key == SDLK_RIGHT) {
        } else if (key == SDLK_UP) {
            m_level_list->SelectPrev();
        } else if (key == SDLK_DOWN) {
            m_level_list->SelectNext();
        } else if (key == SDLK_RETURN && m_level_list->HasSelection()) {
            if (m_level_list->SelectedId() == 0) {
                /*
                 * TODO: Before we open the editor, we should ask for level's name.
                 */
                std::string level_name = "new";
                EditLevel(level_name);
            } else {
                EditLevel(m_levels.at(m_level_list->SelectedId()));
            }
        }
    }
}
Esempio n. 2
0
int CMMDesktop::Keyboard(UINT ch, UINT state)
{
	if(MMmode==1){
		if (KRKAL->IsPaused()) {
			SAFE_DELETE(levelIntro);
			KRKAL->ResumeGame();
		} else {		
			switch(ch)
			{
			case VK_ESCAPE:
				SAFE_DELETE(KerMain);
				ShowMainMenu();
				if(KerErrorFiles)
					if(KerErrorFiles->WasError) KerErrorFiles->ShowAllLogs(0,0,640,480);
				break;
			case VK_F4:
				mainGUI->Exit();
				break;
			}
		}
	}else{
		switch(ch)
		{
		case VK_F1:
//			GetSelectedLevel();
			mainGUI->StartScriptEditor();
			break;
		case VK_F2:
			EditLevel();
			break;
		case VK_F4:
			mainGUI->Exit();
			break;
		case 'L':
			if(mainGUI->key_ctrl)
				KerErrorFiles->ShowAllLogs(0,40,640,200); 
			break;
		case 'C':
			if(mainGUI->key_ctrl)
				#ifdef FILE_TO_COMPILE
					compiler->TestComp(FILE_TO_COMPILE);
				#else
					compiler->TestComp("test_0001_FFFF_0001_0001.kc");
				#endif
			break;
		case 'R':
			if(mainGUI->key_ctrl)
			{
				CGUIFileBrowser* fb = new CGUIFileBrowser(0,0,300,400);//,"$KRKAL$","Krkal:");
				fb->AddRootItem("$KRKAL$","Krkal:");
				fb->AddRootItem("$SCRIPTS$","Skriptíky:");
				fb->AddRootItem("$LEVELS$","Levlíky:");
				fb->UpdateTree();
				desktop->AddBackElem(fb);
				fb->FocusMe();
				DefaultHandler->regbrow = fb->GetID();
				fb->AcceptEvent(DefaultHandler->GetID(),ETree);				
			}
			break;
		case 'A':
			if(mainGUI->key_ctrl)
				ShowCredits();		
			break;
		case 'H':
			if(mainGUI->key_ctrl)
				ShowHelp();
			break;
		case VK_RETURN:
/*			if(mainGUI->key_ctrl) //restart
			{
				if(levelsel->GetSelectedItem())
					PlayLevel(levelsel->GetSelectedItem()->GetID(),1);
			}*/
			break;

		}
	}
	return 1;
}