예제 #1
0
void DFsScript::ParseScript(char *position)
{
    if (position == NULL)
    {
        lastiftrue = false;
        position = data;
    }

    // check for valid position
    if(position < data || position > data+len)
    {
        Printf("script %d: trying to continue from point outside script!\n", scriptnum);
        return;
    }

    trigger_obj = trigger;  // set trigger

    try
    {
        FParser parse(this);
        parse.Run(position, data, data + len);
    }
    catch (CFraggleScriptError &err)
    {
        Printf ("%s\n", err.GetMessage());
    }

    // dont clear global vars!
    if(scriptnum != -1) ClearVariables();        // free variables

    // haleyjd
    lastiftrue = false;
}
// -----------------------------------------------------------------------------
// CUpnpModeratedEventQueueManager::StartSendingEventL
// -----------------------------------------------------------------------------
//    
void CUpnpModeratedEventQueueManager::StartSendingEventL()
    {
    if ( !iSubscriberLibrary->SubscriberLibrary().Count() )
        {
        return;
        }
    
    if ( iIsSending ) 
        {
        iNewValuesWaitingToBeSend = ETrue;
        return;
        }
    
    iIsSending = ETrue;
     
    iCurrentSubscriberIndex = 0;
    for ( TInt i = 0; i < iServiceImpl.EventedStateVariables().Count(); i++ )
        {
        if ( iServiceImpl.EventedStateVariables()[i]->MaxEventRate() > 0 )
            {
            iServiceImpl.EventedStateVariables()[i]->EventTick();
            }
        }    

    delete iBody;
    iBody = NULL;
      
    iBody = CreateEventL( iServiceImpl.StateVariableList() );
    ClearVariables();
        
    PrepareTransactionAndStartSendingL( KFirstSubscriberInQueue );
    }
예제 #3
0
void DFsScript::OnDestroy()
{
    ClearVariables(true);
    ClearSections();
    ClearChildren();
    parent = NULL;
    if (data != NULL) delete [] data;
    data = NULL;
    parent = NULL;
    trigger = NULL;
    Super::OnDestroy();
}
예제 #4
0
void Menu::ProcessEvents(sf::Event &Event){
    while (Window->pollEvent(Event))
    {
        switch (Event.type)
        {
        case sf::Event::Closed:
            {
            Window->close();
            break;
            }
        case sf::Event::KeyPressed:
            switch (Event.key.code)
            {
            case sf::Keyboard::Escape:
                {
                    Window->close();
                }
                break;
            case sf::Keyboard::Return:
                {
                Selected=1;
                }
                break;
            case sf::Keyboard::Down:
                {
                if (Selection < Items[Choice].size()-1)
                    {
                        Items[Choice][Selection].Flag=0;
                        ClearVariables();
                        ++Selection;
                        Selected=0;
                    }
                }
                break;
            case sf::Keyboard::Up:
                {
                if (Selection > 0)
                    {
                        Items[Choice][Selection].Flag=0;
                        ClearVariables();
                        --Selection;
                        Selected=0;
                    }
                }
                break;
            case sf::Keyboard::Left:
                {
                Change=-1;
                }
                break;
            case sf::Keyboard::Right:
                {
                Change=1;
                }
                break;
            default:
                break;
            }
            break;
        case sf::Event::JoystickButtonPressed:
        {
            unsigned ActiveJoy=Event.joystickButton.joystickId;
            if (JoyConfig==1)
            {
                for( unsigned index=0; index<Config.JoyId.size();index++)
                {
                    if (Config.JoyId[index]==static_cast<int>(CurrentPlayer-1))
                    {
                        Config.JoyId[index]=-1;
                    }
                }
                Config.JoyId[ActiveJoy]=CurrentPlayer-1;
                JoyConfig=0;
                Items[Choice][Selection].Flag=0;
            }
            if(Config.JoyId[ActiveJoy]==static_cast<int>(CurrentPlayer-1) )
            {
                unsigned CurrentButton=Event.joystickButton.button;
                if (ButtonConfig==1 && CurrentAction==ACCELERATE)
                {
                    for (auto index: Config.ButtonsToActions[CurrentPlayer-1])
                    {
                        if (index.second==ACCELERATE){
                            Config.ButtonsToActions[CurrentPlayer-1].erase(index.first);
                            break;
                        }
                    }
                    Config.ButtonsToActions[CurrentPlayer-1][CurrentButton]=ACCELERATE;
                    ButtonConfig=0;
                    Items[Choice][Selection].Flag=0;
                }
                if (ButtonConfig==1 && CurrentAction==BRAKE)
                {
                    for (auto index: Config.ButtonsToActions[CurrentPlayer-1])
                    {
                        if (index.second==BRAKE){
                            Config.ButtonsToActions[CurrentPlayer-1].erase(index.first);
                            break;
                        }
                    }
                    Config.ButtonsToActions[CurrentPlayer-1][CurrentButton]=BRAKE;
                    ButtonConfig=0;
                    Items[Choice][Selection].Flag=0;
                }
            }
        }
            break;
        default:
            break;
        }
    }
}