コード例 #1
0
ファイル: UIActorMenuTrade.cpp プロジェクト: 2asoft/xray
void CUIActorMenu::UpdatePrices()
{
	LPCSTR kg_str = CStringTable().translate( "st_kg" ).c_str();

	UpdateActor();
	UpdatePartnerBag();
	u32 actor_price   = CalcItemsPrice( m_pTradeActorList,   m_partner_trade, true  );
	u32 partner_price = CalcItemsPrice( m_pTradePartnerList, m_partner_trade, false );

	string64 buf;
	sprintf_s( buf, "%d RU", actor_price );		m_ActorTradePrice->SetText( buf );		m_ActorTradePrice->AdjustWidthToText();
	sprintf_s( buf, "%d RU", partner_price );	m_PartnerTradePrice->SetText( buf );	m_PartnerTradePrice->AdjustWidthToText();

	float actor_weight   = CalcItemsWeight( m_pTradeActorList );
	float partner_weight = CalcItemsWeight( m_pTradePartnerList );

	sprintf_s( buf, "(%.1f %s)", actor_weight, kg_str );		m_ActorTradeWeightMax->SetText( buf );
	sprintf_s( buf, "(%.1f %s)", partner_weight, kg_str );	m_PartnerTradeWeightMax->SetText( buf );

	Fvector2 pos = m_ActorTradePrice->GetWndPos();
	pos.x = m_ActorTradeWeightMax->GetWndPos().x - m_ActorTradePrice->GetWndSize().x - 5.0f;
	m_ActorTradePrice->SetWndPos( pos );
	pos.x = pos.x - m_ActorTradeCaption->GetWndSize().x - 5.0f;
	m_ActorTradeCaption->SetWndPos( pos );

	pos = m_PartnerTradePrice->GetWndPos();
	pos.x = m_PartnerTradeWeightMax->GetWndPos().x - m_PartnerTradePrice->GetWndSize().x - 5.0f;
	m_PartnerTradePrice->SetWndPos( pos );
	pos.x = pos.x - m_PartnerTradeCaption->GetWndSize().x - 5.0f;
	m_PartnerTradeCaption->SetWndPos( pos );
}
コード例 #2
0
ファイル: UIActorMenu.cpp プロジェクト: AntonioModer/xray-16
void CUIActorMenu::UpdateItemsPlace()
{
	switch ( m_currMenuMode )
	{
	case mmUndefined:
		break;
	case mmInventory:
		
		break;
	case mmTrade:
		UpdatePrices();
		break;
	case mmUpgrade:
		SetupUpgradeItem();
		break;
	case mmDeadBodySearch:
		UpdateDeadBodyBag();
		break;
	default:
		R_ASSERT(0);
		break;
	}

	if ( m_pActorInvOwner )
	{
		UpdateOutfit();
		UpdateActor();
	}
}
コード例 #3
0
/***********************************************************
animate actors
***********************************************************/
int ExternalPlayersHandler::Process(double tnow, float tdiff)
{
	// update from external info
	ThreadSafeWorkpile * wp = ThreadSafeWorkpile::getInstance();
	std::vector<LbaNet::ActorInfo> vecai;
	std::vector<long> vecq;
	std::vector<LbaNet::ActorLifeInfo> veclai;
	std::vector<std::pair<long, LbaNet::LaunchInfo> > mb_vec;
	std::vector<long> mb_cb_vec;
	std::vector<LbaNet::GhostActorInfo> veclghost;

	wp->GetExtActorUpdate(vecai);
	wp->GetQuittedActors(vecq);
	wp->GetExtActorLifeUpdate(veclai);
	wp->GetMagicBallPlayed(mb_vec);
	wp->GetMagicBallComeback(mb_cb_vec);
	wp->GetExtGhostUpdate(veclghost);

	for(size_t i=0; i<vecai.size(); ++i)
		UpdateActor(vecai[i]);
	for(size_t i=0; i<veclai.size(); ++i)
		UpdateLifeActor(veclai[i]);
	for(size_t i=0; i<vecq.size(); ++i)
		RemoveActor(vecq[i]);

	for(size_t i=0; i<mb_cb_vec.size(); ++i)
		MagicBallComeback(mb_cb_vec[i]);
	for(size_t i=0; i<mb_vec.size(); ++i)
		MagicBallPlayed(mb_vec[i].first, mb_vec[i].second);

	for(size_t i=0; i<veclghost.size(); ++i)
		UpdateGhost(veclghost[i]);


	// update actors spped and animation
	std::map<long, ExternalPlayer *>::iterator it = _actors.begin();
	std::map<long, ExternalPlayer *>::iterator end = _actors.end();

	for(;it!=end; ++it)
		it->second->Process(tnow, tdiff);

	return 0;
}
コード例 #4
0
ファイル: UIActorMenu.cpp プロジェクト: AntonioModer/xray-16
void CUIActorMenu::SetMenuMode(EMenuMode mode)
{
	SetCurrentItem( NULL );
	m_hint_wnd->set_text( NULL );
	
	if ( mode != m_currMenuMode )
	{
		switch(m_currMenuMode)
		{
		case mmUndefined:
			break;
		case mmInventory:
			DeInitInventoryMode();
			break;
		case mmTrade:
			DeInitTradeMode();
			break;
		case mmUpgrade:
			DeInitUpgradeMode();
			break;
		case mmDeadBodySearch:
			DeInitDeadBodySearchMode();
			break;
		default:
			R_ASSERT(0);
			break;
		}

		CurrentGameUI()->UIMainIngameWnd->ShowZoneMap(false);

		m_currMenuMode = mode;
		switch(mode)
		{
		case mmUndefined:
#ifdef DEBUG
			Msg("* now is Undefined mode");
#endif // #ifdef DEBUG
			ResetMode();
			break;
		case mmInventory:
			InitInventoryMode();
#ifdef DEBUG
			Msg("* now is Inventory mode");
#endif // #ifdef DEBUG
			break;
		case mmTrade:
			InitTradeMode();
#ifdef DEBUG
			Msg("* now is Trade mode");
#endif // #ifdef DEBUG
			break;
		case mmUpgrade:
			InitUpgradeMode();
#ifdef DEBUG
			Msg("* now is Upgrade mode");
#endif // #ifdef DEBUG
			break;
		case mmDeadBodySearch:
			InitDeadBodySearchMode();
#ifdef DEBUG
			Msg("* now is DeadBodySearch mode");
#endif // #ifdef DEBUG
			break;
		default:
			R_ASSERT(0);
			break;
		}
		UpdateConditionProgressBars();
		CurModeToScript();
	}//if

	if ( m_pActorInvOwner )
	{
		UpdateOutfit();
		UpdateActor();
	}
	UpdateButtonsLayout();
}