Пример #1
0
void BaseApp::Update()
{
	m_gameTimer.Update();
	if (GetMessageManager()) GetMessageManager()->Update();
	if (GetAudioManager()) GetAudioManager()->Update();
	m_sig_update(NULL);
}
Пример #2
0
void typewriter::next_char(VariantList *pVList)
{
	if (text_.length() < num_chars_)
		return;
	current_text_ = text_.substr(0,num_chars_++);
	GetMessageManager()->CallEntityFunction(entity_, time_ms_, "next_char", 0);
}
Пример #3
0
void typewriter::type_text(rtRect _type_area, std::string _text, int _time_ms, float _scale, unsigned int _color)
{
	type_area_ = _type_area;
	text_ = _text;
	time_ms_ = _time_ms;
	num_chars_ = 0;
	current_text_ = "";
	GetMessageManager()->CallEntityFunction(entity_, time_ms_, "next_char", 0);
	scale_ = _scale;
	color_ = _color;
}
Пример #4
0
nsISupports*
ChildSHistory::GetParentObject() const
{
  // We want to get the TabChildMessageManager, which is the
  // messageManager on mDocShell.
  RefPtr<ContentFrameMessageManager> mm;
  if (mDocShell) {
    mm = mDocShell->GetMessageManager();
  }
  // else we must be unlinked... can that happen here?
  return ToSupports(mm);
}
Пример #5
0
void OptionsOnSelect( VariantList* pVList )
{
	Entity* pEntClicked = pVList->m_variant[1].GetEntity();

	Config* config = Config::GetInstance();

	if( pEntClicked->GetName() == GUI_IMAGEBUTTON_OPTIONS_BACK_BUTTON )
	{
		GetApp()->buttonClickSound();
		SlideScreen( pEntClicked->GetParent(), false );
		GetMessageManager()->CallEntityFunction( pEntClicked->GetParent(), 500, "OnDelete", NULL );
		MainMenuCreate( pEntClicked->GetParent()->GetParent() );
	}

	if( pEntClicked->GetName() == GUI_IMAGEBUTTON_OPTIONS_LANGUAGE_BUTTON )
	{
		GetApp()->buttonClickSound();
		SlideScreen( pEntClicked->GetParent(), false );
		GetMessageManager()->CallEntityFunction( pEntClicked->GetParent(), 500, "OnDelete", NULL );
		LanguageCreate( pEntClicked->GetParent()->GetParent() );
	}

	if( pEntClicked->GetName() == GUI_IMAGEBUTTON_OPTIONS_SOUND_BUTTON )
	{
		GetApp()->buttonClickSound();
		SlideScreen( pEntClicked->GetParent(), false );
		GetMessageManager()->CallEntityFunction( pEntClicked->GetParent(), 500, "OnDelete", NULL );
		SoundCreate( pEntClicked->GetParent()->GetParent() );
	}

	if( pEntClicked->GetName() == GUI_IMAGEBUTTON_OPTIONS_LEVEL_BUTTON )
	{
		GetApp()->buttonClickSound();
		SlideScreen( pEntClicked->GetParent(), false );
		GetMessageManager()->CallEntityFunction( pEntClicked->GetParent(), 500, "OnDelete", NULL );
		LevelMenuCreate( pEntClicked->GetParent()->GetParent() );
	}

	config->FreeInstance();
}
Пример #6
0
extern "C" void Native_SendGUIEx()
{
	
	#ifndef _CONSOLE
	int msg;
	float xPos,yPos;
	int touchID;

	inline_as3(
		"import com.adobe.flascc.Console;\n"
		"%0 = Console.current.m_parmInt1;"
		"%1 = Console.current.m_parmFloat1;"
		"%2 = Console.current.m_parmFloat2;"
		"%3 = Console.current.m_parmInt2;"
		: "=r"( msg),"=r"( xPos),"=r"( yPos), "=r"( touchID) :
	);
	
	//LogMsg("Native_SendGUIEx got %d, %d, %.2f,  %.2f", msg, touchID, xPos, yPos);
	
	//convert to proton's key layout if needed
	if (msg == MESSAGE_TYPE_GUI_CHAR_RAW)
	{
		switch (int(xPos))
		{
		case 37: xPos = VIRTUAL_KEY_DIR_LEFT; break;
		case 38: xPos = VIRTUAL_KEY_DIR_UP; break;
		case 39: xPos = VIRTUAL_KEY_DIR_RIGHT; break;
		case 40: xPos = VIRTUAL_KEY_DIR_DOWN; break;
		case 16: xPos = VIRTUAL_KEY_SHIFT; break;
		case 17: xPos = VIRTUAL_KEY_CONTROL; break;
		case 112: xPos = VIRTUAL_KEY_F1; break;
		case 113: xPos = VIRTUAL_KEY_F2; break;
		case 114: xPos = VIRTUAL_KEY_F3; break;
		case 115: xPos = VIRTUAL_KEY_F4; break;
		case 116: xPos = VIRTUAL_KEY_F5; break;
		case 117: xPos = VIRTUAL_KEY_F6; break;
		case 118: xPos = VIRTUAL_KEY_F7; break;
		case 119: xPos = VIRTUAL_KEY_F8; break;
		case 120: xPos = VIRTUAL_KEY_F9; break;
		case 121: xPos = VIRTUAL_KEY_F10; break;
		case 27: xPos = VIRTUAL_KEY_BACK; break;


		default:;
		}
	}
	

	GetMessageManager()->SendGUIEx((eMessageType)msg, xPos, yPos, touchID);
	
	#endif
}
Пример #7
0
void BaseApp::ResetTouches()
{
	for (int i=0; i < C_MAX_TOUCHES_AT_ONCE; i++)
	{
		if (m_touchTracker[i].IsDown())
		{
			LogMsg("Finger %d is down, sending fake release", i);
			//release it with a fake message
			GetMessageManager()->SendGUIEx(MESSAGE_TYPE_GUI_CLICK_END, m_touchTracker[i].GetPos().x, m_touchTracker[i].GetPos().y, i);
		}
	}

}
Пример #8
0
void LanguageOnSelect( VariantList *pVList )
{
	Entity *pEntClicked = pVList->m_variant[1].GetEntity();

	Config* config = Config::GetInstance();

	if( pEntClicked->GetName() == GUI_IMAGEBUTTON_LANGUAGE_BACK_BUTTON )
	{
		GetApp()->buttonClickSound();
		SlideScreen( pEntClicked->GetParent(), false );
		GetMessageManager()->CallEntityFunction( pEntClicked->GetParent(), 500, "OnDelete", NULL );
		OptionsCreate( pEntClicked->GetParent()->GetParent() );
	}

	if( pEntClicked->GetName() == GUI_IMAGEBUTTON_FLAG_EN_BUTTON )
	{
		GetApp()->buttonClickSound();
		config->setLang( convertCodeToId( LANG_NAMES[ LANG_EN ] ) );
		config->Save();
		config->ReloadLang( LANG_EN );
		SlideScreen( pEntClicked->GetParent(), false );
		GetMessageManager()->CallEntityFunction( pEntClicked->GetParent(), 500, "OnDelete", NULL );
		OptionsCreate( pEntClicked->GetParent()->GetParent() );
	}

	if( pEntClicked->GetName() == GUI_IMAGEBUTTON_FLAG_RU_BUTTON )
	{
		GetApp()->buttonClickSound();
		config->setLang( convertCodeToId( LANG_NAMES[ LANG_RU ] ) );
		config->Save();
		config->ReloadLang( LANG_RU );
		SlideScreen( pEntClicked->GetParent(), false );
		GetMessageManager()->CallEntityFunction( pEntClicked->GetParent(), 500, "OnDelete", NULL );
		OptionsCreate( pEntClicked->GetParent()->GetParent() );
	}

	config->FreeInstance();
}
Пример #9
0
void SoundOnSelect( VariantList* pVList )
{
	Entity *pEntClicked = pVList->m_variant[1].GetEntity();

	Config* config = Config::GetInstance();

	if( pEntClicked->GetName() == GUI_IMAGEBUTTON_SOUND_BACK_BUTTON )
	{
		GetApp()->buttonClickSound();
		SlideScreen( pEntClicked->GetParent(), false );
		GetMessageManager()->CallEntityFunction( pEntClicked->GetParent(), 500, "OnDelete", NULL );
		OptionsCreate( pEntClicked->GetParent()->GetParent() );
	}

	if( pEntClicked->GetName() == GUI_CHECKBOX_CHECKBOX_EFFECTS )
	{
		GetApp()->buttonClickSound();
		config->setSoundEffects( !config->getSoundEffects() );
		GetApp()->GetVar( "SoundEffects" )->Set( uint32(config->getSoundEffects() ) );
		config->Save();
	}

	if( pEntClicked->GetName() == GUI_CHECKBOX_CHECKBOX_MUSIC )
	{
		GetApp()->buttonClickSound();
		config->setMusic( !config->getMusic() );
		GetApp()->GetVar( "Music" )->Set( uint32( config->getMusic() ) );
		config->Save();
	}

	if( pEntClicked->GetName() == GUI_CHECKBOX_CHECKBOX_VIBRATION )
	{
		GetApp()->buttonClickSound();
		config->setVibration( !config->getVibration() );
		GetApp()->GetVar( "Vibration" )->Set( uint32( config->getVibration() ) );
		config->Save();

		if( config->getVibration() )
		{
			GetAudioManager()->Vibrate();
		}
	}

	config->FreeInstance();
}
Пример #10
0
extern "C" void Native_Update()
{
	GetApp()->Update();

#ifndef _CONSOLE
	while (!GetBaseApp()->GetOSMessages()->empty())
	{
		OSMessage m = GetBaseApp()->GetOSMessages()->front();
		GetBaseApp()->GetOSMessages()->pop_front();
#ifdef _DEBUG
		LogMsg("Got OS message %d, %s", m.m_type, m.m_string.c_str());
#endif
		switch (m.m_type)
		{
		case OSMessage::MESSAGE_CHECK_CONNECTION:
			//pretend we did it
			GetMessageManager()->SendGUI(MESSAGE_TYPE_OS_CONNECTION_CHECKED, (float)RT_kCFStreamEventOpenCompleted, 0.0f);
			break;
		case OSMessage::MESSAGE_OPEN_TEXT_BOX:
			break;

		case OSMessage::MESSAGE_CLOSE_TEXT_BOX:
			
			SetIsUsingNativeUI(false);
			break;

		case OSMessage::MESSAGE_SET_FPS_LIMIT:
			//fpsTimerLoopMS = (int) (1000.0f/m.m_x);
			break;

		case OSMessage::MESSAGE_SET_ACCELEROMETER_UPDATE_HZ:
			{
			}
			break;
		}
	}
	#endif

}
Пример #11
0
void GameOnSelect( VariantList* pVList )
{
	Entity *pEntClicked = pVList->m_variant[1].GetEntity();

	Tetris* tetris = Tetris::GetInstance();
	Config* config = Config::GetInstance();

	if( pEntClicked->GetName() == GUI_IMAGEBUTTON_GAMEPLAY_MENU_BUTTON )
	{
		GetApp()->buttonClickSound();

		if( tetris->isEndGame() )
		{
			SlideScreen( pEntClicked->GetParent(), false );
			GetMessageManager()->CallEntityFunction( pEntClicked->GetParent(), 500, "OnDelete", NULL );
		
			GetApp()->setGame( false );
			GetApp()->setContinueBtn( false );

			if( tetris->getScoreInt() > config->getMinScore() )
			{
				GameState::SetState( new GS_Menu() );
				InputBestScoreCreate( pEntClicked->GetParent()->GetParent() );
			}
			else
			{
				tetris->ResetEndGame();

				GameState::SetState( new GS_Menu() );
				MainMenuCreate( pEntClicked->GetParent()->GetParent() );
			}
		
			tetris->FreeInstance();
			config->FreeInstance();

			return;
		}

		GameState::SetState( new GS_Menu() );

		if( config->getMusic() )
		{
			GetAudioManager()->StopMusic();
		}
		
		GetApp()->setGame( false );
		SlideScreen( pEntClicked->GetParent(), false );
		GetMessageManager()->CallEntityFunction( pEntClicked->GetParent(), 500, "OnDelete", NULL );
		MainMenuCreate( pEntClicked->GetParent()->GetParent() );
	}

	if( pEntClicked->GetName() == GUI_IMAGEBUTTON_GAMEPLAY_DOWN && !tetris->isEndGame() )
	{
		if( config->getSoundEffects() )
		{
			GetAudioManager()->Play( GetApp()->getResourceInstance()->getItem(GetApp()->getResolutionType(), RES_TYPE_AUDIO, RES_ID_AUDIO_FIGURE_DOWN ) );
		}
		tetris->ClickForceDown();
	}

	if( pEntClicked->GetName() == GUI_IMAGEBUTTON_GAMEPLAY_LEFT && !tetris->isEndGame() )
	{
		buttonMoveSound();
		tetris->ClickLeft();
	}

	if( pEntClicked->GetName() == GUI_IMAGEBUTTON_GAMEPLAY_RIGHT && !tetris->isEndGame() )
	{
		buttonMoveSound();
		tetris->ClickRight();
	}

	if( pEntClicked->GetName() == GUI_IMAGEBUTTON_GAMEPLAY_ROTATE && !tetris->isEndGame() )
	{
		buttonMoveSound();
		tetris->ClickRotate();
	}

	tetris->FreeInstance();
	config->FreeInstance();
}
Пример #12
0
void InterpolateComponent::OnUpdate(VariantList *pVList)
{
	if (is_pausable_)
	{
		if (GetMessageManager()->game_paused_)
		{
			//float(GetBaseApp()->GetTickTimingSystem(eTimingSystem(*m_pTimingSystem))
			//LogMsg("%f %d  Duration, %s", float(*m_pDuration), m_startTimeMS , m_pVarName->c_str());
			if (pause_time_ == 0)
			{
				pause_time_ = GetBaseApp()->GetTickTimingSystem(eTimingSystem(*m_pTimingSystem));
			}
			return;
		}

		if (pause_time_ != 0)
		{
			//LogMsg("Timer: %d",GetBaseApp()->GetTickTimingSystem(eTimingSystem(*m_pTimingSystem)) - pause_time_);
			m_startTimeMS += GetBaseApp()->GetTickTimingSystem(eTimingSystem(*m_pTimingSystem)) - pause_time_;
			pause_time_ = 0;
		}
	}
	

	if (m_bActive && m_pVar && m_pVar->GetType() != Variant::TYPE_UNUSED && m_pVarTarget->GetType() != Variant::TYPE_UNUSED)
	{
	
		Variant *pA;
		Variant *pB;

		if (m_bDirForward)
		{
			pA = &m_pVarStartPoint;
			pB = m_pVarTarget;
		} else
		{
			pB = &m_pVarStartPoint;
			pA = m_pVarTarget;
		}

		float fPercentDone = (float(GetBaseApp()->GetTickTimingSystem(eTimingSystem(*m_pTimingSystem))-m_startTimeMS)/ float(*m_pDuration));

#ifdef _DEBUG
		//LogMsg("%.2f percent done changing %s (is now %s)", fPercentDone, m_pVarName->c_str(), m_pVar->Print().c_str());
#endif
			if ( fPercentDone >= 1)
			{
				//we're finished
				m_pVar->Set(*pB);
				bool bReturnAfter = true;

				switch (*m_pOnFinish)
				{
				
				case ON_FINISH_STOP:
					m_bActive = false;
					SetEndValue();
					return;
					break;

				case ON_FINISH_DIE:
					m_bActive = false;
					//we're done, kill ourself
					GetParent()->RemoveComponentByAddress(this);
					return;
					break;

				case ON_FINISH_BOUNCE:
					m_bDirForward = !m_bDirForward;
					m_startTimeMS = GetBaseApp()->GetTickTimingSystem(eTimingSystem(*m_pTimingSystem));
					bReturnAfter = false;
					break;

				case ON_FINISH_REPEAT:
					m_startTimeMS = GetBaseApp()->GetTickTimingSystem(eTimingSystem(*m_pTimingSystem));
					m_pVar->Set(m_pVarStartPoint);
					break;

				default:
					LogError("Unknown OnFinish type");
					assert(0);
				}
				(*m_pPlayCount)++;

				if (bReturnAfter)
				{
					return;
				}
			}
				
			if (*m_pDeleteAfterPlayCount != 0 &&  *m_pPlayCount >= *m_pDeleteAfterPlayCount)
			{
				m_bActive = false;
				//we're done, kill ourself
				GetParent()->RemoveComponentByAddress(this);
				return;
			}
		//set var where it should be on the scale
		m_pVar->Interpolate(pA, pB, fPercentDone, eInterpolateType(*m_pInterpolateType));
	}

}