コード例 #1
0
ファイル: HUDWeapon.cpp プロジェクト: Arc0re/lithtech
void CHUDWeapon::Select(bool bSelected)
{
	if (bSelected)
	{
		m_vIconSize = m_vLargeSize;
		m_vTextOffset = m_vLargeOffset;
	}
	else
	{
		m_vIconSize = m_vSmallSize;
		m_vTextOffset = m_vSmallOffset;
	}
	m_bSelected = bSelected;

	float x = (float)(m_vBasePos.x + m_vIconOffset.x);
	float y = (float)(m_vBasePos.y + m_vIconOffset.y);
	DrawPrimSetXYWH(m_IconPoly,x,y,float(m_vIconSize.x),float(m_vIconSize.y));

	LTVector2 vPos;
	vPos.x = float( m_vBasePos.x + m_vTextOffset.x);
	vPos.y = float( m_vBasePos.y + m_vTextOffset.y);
	m_Text.SetPos(vPos);


	UpdateBar();
	ResetFade();
}
コード例 #2
0
//======================================================================
//======================================================================
void NvUIValueBar::SetMinValue(float value)
{
    if (value == m_minValue) return;

    m_minValue = value;
    SetValue(m_value);
    UpdateBar();
}
コード例 #3
0
ファイル: leftbar.cpp プロジェクト: 2asoft/xray
void TfraLeftBar::MaximizeAllFrames()
{
    for (int j=0; j<paLeftBar->ControlCount; j++){
        TPanel* pa = dynamic_cast<TPanel*>(paLeftBar->Controls[j]);
	    if (pa)	PanelMaximize(pa);
    }
	UpdateBar();
}
コード例 #4
0
ファイル: HUDWeapon.cpp プロジェクト: Arc0re/lithtech
// ----------------------------------------------------------------------- //
// Update values
// ----------------------------------------------------------------------- //
void CHUDWeapon::Update()
{
	if (!m_hWeapon)
	{
		m_Text.SetText(L"");
		m_cIconColor = m_cDisabledColor;
		UpdateBar();

		return;
	}
	HWEAPONDATA hWpnData = g_pWeaponDB->GetWeaponData(m_hWeapon, !USE_AI_DATA);
	HAMMO hDefaultAmmo = g_pWeaponDB->GetRecordLink( hWpnData, WDB_WEAPON_rAmmoName );

	uint32 nCount = g_pPlayerStats->GetAmmoCount(hDefaultAmmo);
	

	//if the number of items has changed
	if (nCount != m_nCount)
	{
		if (nCount > m_nCount)
		{
			ResetFade();
		}			

		m_nCount = nCount;

		//update our text
		wchar_t wstr[32];
		swprintf(wstr,L"%d", m_nCount );
		m_Text.SetText(wstr);

		if (nCount > 0)
		{
			m_cIconColor = m_cNormalColor;
		}
		else
		{
			m_cIconColor = m_cDisabledColor;
		}

		UpdateBar();

	}

}
コード例 #5
0
ファイル: LeftBar.cpp プロジェクト: OLR-xray/OLR-3.0
void TfraLeftBar::ChangeTarget(ObjClassID tgt)
{
    for (int i=0; i<paTarget->ControlCount; i++){
    	TExtBtn* B = dynamic_cast<TExtBtn *>(paTarget->Controls[i]);
        if (B&&ObjClassID(B->Tag)==tgt)	B->Down = true;
    }
    UI->RedrawScene	();
    UpdateBar		();
}
コード例 #6
0
//======================================================================
//======================================================================
void NvUIValueBar::SetOrigin(float x, float y)
{
    NvUIElement::SetOrigin(x, y);
    if (m_emptyFrame)
        m_emptyFrame->SetOrigin(x, y);
    if (m_fullFrame)
        m_fullFrame->SetOrigin(x, y);
        
    UpdateBar();
}
コード例 #7
0
ファイル: HUDWeapon.cpp プロジェクト: Arc0re/lithtech
// ----------------------------------------------------------------------- //
// Position the item on screen
// ----------------------------------------------------------------------- //
void CHUDWeapon::SetBasePos(const LTVector2n& pos)
{
	CHUDInventory::SetBasePos(pos);

	LTVector2 vPos;
	vPos.x = (float)(m_vBasePos.x + m_vHotkeyOffset.x);
	vPos.y = (float)(m_vBasePos.y + m_vHotkeyOffset.y);
	m_Hotkey.SetPos(vPos);

	UpdateBar();

}
コード例 #8
0
//======================================================================
//======================================================================
void NvUIValueBar::SetValue(float value)
{
    if (value < m_minValue) value = m_minValue;
    else if (value > m_maxValue) value = m_maxValue;
    if (m_integral)
    {
        if (value < 0)
            value =  (float) ((int32_t) (value-0.5f));
        else
            value =  (float) ((int32_t) (value+0.5f));
    }
    if (m_value == value) return;

    m_value = value;
    UpdateBar();
}
コード例 #9
0
ファイル: LeftBar.cpp プロジェクト: OLR-xray/OLR-3.0
void TfraLeftBar::MinimizeAllFrames()
{
    for (int i=0; i<paFrames->ControlCount; i++){
		TForm* f = dynamic_cast<TForm*>(paFrames->Controls[i]);
        if (f){
	        for (int j=0; j<f->ControlCount; j++){
                TPanel* pa = dynamic_cast<TPanel*>(f->Controls[j]);
                if (pa) PanelMinimize(pa);
            }
        }
    }
    for (int j=0; j<paLeftBar->ControlCount; j++){
        TPanel* pa = dynamic_cast<TPanel*>(paLeftBar->Controls[j]);
	    if (pa) PanelMinimize(pa);
    }
	UpdateBar();
}
コード例 #10
0
//======================================================================
//======================================================================
void NvUIValueBar::SetDimensions(float w, float h)
{
    NvUIElement::SetDimensions(w, h);
    if (m_emptyFrame) {
        m_emptyFrame->SetDimensions(w, h);

        if (!m_useRawBorders)
        {
            float thick;
            if (w>=h) // horizontal, use half height
                thick = h/2;
            else // vertical, use half width
                thick = w/2;
            m_emptyFrame->SetBorderThickness(thick);
        }
    }

    UpdateBar();
}
コード例 #11
0
ファイル: LeftBar.cpp プロジェクト: OLR-xray/OLR-3.0
void TfraLeftBar::MaximizeAllFrames()
{
    for (int j=0; j<paLeftBar->ControlCount; j++){
        TPanel* pa = dynamic_cast<TPanel*>(paLeftBar->Controls[j]);
	    if (pa)	PanelMaximize(pa);
    }
    for (int i=0; i<paFrames->ControlCount; i++){
		TForm* f = dynamic_cast<TForm*>(paFrames->Controls[i]);
        if (f){
	        for (int j=0; j<f->ControlCount; j++){
                TPanel* pa = dynamic_cast<TPanel*>(f->Controls[j]);
                if (pa){
                	if (pa->Align==alClient){
                        paFrames->Height-=(pa->Height-pa->Constraints->MinHeight);
                    }else
	                 	PanelMaximize(pa);
                }
            }
        }
    }
	UpdateBar();
}
コード例 #12
0
ファイル: HUDArmor.cpp プロジェクト: Arc0re/lithtech
void CHUDArmor::Update()
{
	uint8 nValue = g_pPlayerStats->GetArmor();
	if (nValue > m_nLastValue)
	{
		Flash("Pickup");
	}
	m_nLastValue = nValue;

	wchar_t szTmp[16] = L"";
	swprintf(szTmp,L"%d",nValue);
	m_Text.SetText(szTmp);

	ResetFade();
	EnableFade( (m_nFadeThreshold == 0) || g_pPlayerStats->GetArmor() > m_nFadeThreshold );

	if (!m_bFadeEnabled)
	{
		m_Text.SetColor(m_cTextColor);
		DrawPrimSetRGBA(m_IconPoly,m_cIconColor);
	}
	UpdateBar();
}
コード例 #13
0
ファイル: HUDArmor.cpp プロジェクト: Arc0re/lithtech
void CHUDArmor::ScaleChanged()
{
	CHUDItem::ScaleChanged();
	UpdateBar();
}
コード例 #14
0
ファイル: leftbar.cpp プロジェクト: 2asoft/xray
void TfraLeftBar::OnTimer()
{
	UpdateBar();
}
コード例 #15
0
ファイル: leftbar.cpp プロジェクト: 2asoft/xray
void __fastcall TfraLeftBar::PanelMaximizeClick(TObject *Sender)
{
    ::PanelMaximizeClick(Sender);
    UpdateBar();
}
コード例 #16
0
ファイル: DCCConnect.cpp プロジェクト: carriercomm/Vision
int32 DCCReceive::Transfer(void* arg)
{
	BMessenger msgr(reinterpret_cast<DCCReceive*>(arg));
	struct sockaddr_in address;
	BLooper* looper(NULL);

	int32 dccSock(-1);

	if ((dccSock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
		UpdateStatus(msgr, S_DCC_ESTABLISH_ERROR);
		return B_ERROR;
	}

	BMessage reply;

	if (msgr.SendMessage(M_DCC_GET_CONNECT_DATA, &reply) == B_ERROR) return B_ERROR;

	memset(&address, 0, sizeof(sockaddr_in));
	address.sin_family = AF_INET;
	address.sin_port = htons(atoi(reply.FindString("port")));
	address.sin_addr.s_addr = htonl(strtoul(reply.FindString("ip"), 0, 10));

	UpdateStatus(msgr, S_DCC_CONNECT_TO_SENDER);
	if (connect(dccSock, (sockaddr*)&address, sizeof(address)) < 0) {
		UpdateStatus(msgr, S_DCC_ESTABLISH_ERROR);
		close(dccSock);
		return B_ERROR;
	}

	BPath path(reply.FindString("name"));
	BString buffer;
	off_t file_size(0);

	buffer << S_DCC_RECV1 << path.Leaf() << S_DCC_RECV2 << reply.FindString("nick") << ".";

	UpdateStatus(msgr, buffer.String());

	BFile file;

	if (msgr.IsValid()) {
		if (reply.FindBool("resume")) {
			if (file.SetTo(reply.FindString("name"), B_WRITE_ONLY | B_OPEN_AT_END) == B_NO_ERROR &&
				file.GetSize(&file_size) == B_NO_ERROR && file_size > 0LL)
				UpdateBar(msgr, file_size, 0, 0, true);
			else
				file_size = 0LL;
		} else {
			file.SetTo(reply.FindString("name"), B_WRITE_ONLY | B_CREATE_FILE | B_ERASE_FILE);
		}
	}

	uint32 bytes_received(file_size);
	uint32 size(atol(reply.FindString("size")));
	uint32 cps(0);

	if (file.InitCheck() == B_NO_ERROR) {
		bigtime_t last(system_time()), now;
		char inBuffer[8196];
		bigtime_t start = system_time();

		while ((msgr.Target(&looper) != NULL) && bytes_received < size) {
			int readSize;
			if ((readSize = recv(dccSock, inBuffer, 8196, 0)) < 0) break;

			file.Write(inBuffer, readSize);
			bytes_received += readSize;
			BMessage msg(M_DCC_UPDATE_TRANSFERRED);
			msg.AddInt32("transferred", bytes_received);
			msgr.SendMessage(&msg);

			uint32 feed_back(htonl(bytes_received));
			send(dccSock, &feed_back, sizeof(uint32), 0);

			now = system_time();
			bool hit(false);

			if (now - last > 500000) {
				cps = (int)ceil((bytes_received - file_size) / ((now - start) / 1000000.0));
				BMessage updmsg(M_DCC_UPDATE_AVERAGE);
				updmsg.AddInt32("average", cps);
				msgr.SendMessage(&updmsg);
				last = now;
				hit = true;
			}

			DCCConnect::UpdateBar(msgr, readSize, cps, bytes_received, hit);
		}
	}

	if (msgr.IsValid()) {
		BMessage msg(M_DCC_STOP_BUTTON);
		msgr.SendMessage(&msg);
	}

	if (dccSock > 0) {
		close(dccSock);
	}

	if (file.InitCheck() == B_OK) {
		file.Unset();
		update_mime_info(reply.FindString("name"), 0, 0, 1);
	}
	return 0;
}
コード例 #17
0
ファイル: HUDWeapon.cpp プロジェクト: Arc0re/lithtech
void CHUDWeapon::ScaleChanged()
{
	//position handled by CHUDWeaponList
	UpdateBar();
}
コード例 #18
0
ファイル: DCCConnect.cpp プロジェクト: carriercomm/Vision
int32 DCCSend::Transfer(void* arg)
{
	BMessenger msgr(reinterpret_cast<DCCSend*>(arg));
	BMessage reply, ipdata;
	BLooper* looper(NULL);

	if (msgr.IsValid()) msgr.SendMessage(M_DCC_GET_CONNECT_DATA, &reply);

	BMessenger callmsgr;
	reply.FindMessenger("caller", &callmsgr);

	callmsgr.SendMessage(M_GET_IP, &ipdata);

	BPath path(reply.FindString("name"));
	BString fileName, status;
	struct sockaddr_in address;
	struct in_addr sendaddr;
	memset(&sendaddr, 0, sizeof(struct in_addr));
	int sd, dccSock(-1);

	fileName.Append(path.Leaf());
	fileName.ReplaceAll(" ", "_");

	if ((sd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
		UpdateStatus(msgr, S_DCC_ESTABLISH_ERROR);
		return 0;
	}

	memset(&address, 0, sizeof(struct sockaddr_in));
	address.sin_family = AF_INET;
	address.sin_addr.s_addr = INADDR_ANY;
	address.sin_port = htons(atoi(reply.FindString("port")));

	int sin_size;
	sin_size = (sizeof(struct sockaddr_in));

	UpdateStatus(msgr, S_DCC_LOCK_ACQUIRE B_UTF8_ELLIPSIS);

	vision_app->AcquireDCCLock();

	if (!msgr.IsValid() || bind(sd, (sockaddr*)&address, sin_size) < 0) {
		UpdateStatus(msgr, S_DCC_ESTABLISH_ERROR);
		vision_app->ReleaseDCCLock();

		close(sd);
		return 0;
	}

	UpdateStatus(msgr, S_DCC_ACK_WAIT);

	sendaddr.s_addr = inet_addr(ipdata.FindString("ip"));

	if (msgr.IsValid()) {
		status = "PRIVMSG ";
		status << reply.FindString("nick") << " :\1DCC SEND " << fileName << " "
			   << htonl(sendaddr.s_addr) << " " << reply.FindString("port") << " "
			   << reply.FindString("size") << "\1";

		BMessage msg(M_SERVER_SEND);
		msg.AddString("data", status.String());
		if (callmsgr.IsValid()) callmsgr.SendMessage(&msg);

		UpdateStatus(msgr, S_DCC_LISTEN_CALL);
		if (listen(sd, 1) < 0) {
			UpdateStatus(msgr, S_DCC_ESTABLISH_ERROR);
			vision_app->ReleaseDCCLock();
			close(sd);
			return 0;
		}
	}

	struct timeval t;
	t.tv_sec = 2;
	t.tv_usec = 0;

	uint32 try_count(0);

	while (msgr.Target(&looper) != NULL) {
		fd_set rset;

		FD_ZERO(&rset);
		FD_SET(sd, &rset);

		if (select(sd + 1, &rset, 0, 0, &t) < 0) {
			UpdateStatus(msgr, S_DCC_ESTABLISH_ERROR);
			vision_app->ReleaseDCCLock();
			close(sd);
			return 0;
		}

		if (FD_ISSET(sd, &rset)) {
			dccSock = accept(sd, (sockaddr*)&address, (socklen_t*)&sin_size);
			UpdateStatus(msgr, S_DCC_ESTABLISH_SUCCEEDED);
			break;
		}

		++try_count;
		status = S_DCC_WAIT_FOR_CONNECTION;
		status << try_count << ".";
		UpdateStatus(msgr, status.String());
	}

	vision_app->ReleaseDCCLock();

	char set[4];
	memset(set, 1, sizeof(set));
	close(sd);
	BFile file;

	file.SetTo(reply.FindString("name"), B_READ_ONLY);
	int32 bytes_sent(0L), seekpos(0L);

	BMessage resumeData;
	msgr.SendMessage(M_DCC_GET_RESUME_POS, &resumeData);

	if (resumeData.HasInt32("pos")) {
		resumeData.FindInt32("pos", &seekpos);
		file.Seek(seekpos, SEEK_SET);
		UpdateBar(msgr, seekpos, 0, 0, true);
		bytes_sent = seekpos;
	}

	status = S_DCC_SEND1;
	status << path.Leaf() << S_DCC_SEND2 << reply.FindString("nick") << ".";
	UpdateStatus(msgr, status.String());

	int cps(0);

	if (file.InitCheck() == B_NO_ERROR) {
		bigtime_t last(system_time()), now;
		const uint32 DCC_BLOCK_SIZE(atoi(vision_app->GetString("dccBlockSize")));
#ifdef __INTEL__
		char buffer[DCC_BLOCK_SIZE];
#else
		char* buffer = new char[DCC_BLOCK_SIZE];
#endif
		int period(0);
		ssize_t count(0);
		bigtime_t start = system_time();

		while ((msgr.Target(&looper) != NULL) &&
			   (count = file.Read(buffer, DCC_BLOCK_SIZE - 1)) > 0) {
			int sent;

			if ((sent = send(dccSock, buffer, count, 0)) < count) {
				UpdateStatus(msgr, S_DCC_WRITE_ERROR);
				break;
			}

			uint32 confirm(0), newSize(bytes_sent + count);
			fd_set rset, eset;
			FD_ZERO(&rset);
			FD_ZERO(&eset);
			FD_SET(dccSock, &rset);
			t.tv_sec = 0;
			t.tv_usec = 10;

			while ((confirm < newSize) && (recv(dccSock, &confirm, sizeof(confirm), 0) > 0)) {
				confirm = ntohl(confirm);
				bytes_sent = confirm;
			}

			BMessage msg(M_DCC_UPDATE_TRANSFERRED);
			msg.AddInt32("transferred", bytes_sent);
			msgr.SendMessage(&msg);

			now = system_time();
			period += sent;

			bool hit(false);

			if (now - last > 500000) {
				cps = (int)ceil((bytes_sent - seekpos) / ((now - start) / 1000000.0));
				BMessage updmsg(M_DCC_UPDATE_AVERAGE);
				updmsg.AddInt32("average", cps);
				msgr.SendMessage(&updmsg);
				last = now;
				period = 0;
				hit = true;
			}
			UpdateBar(msgr, sent, cps, bytes_sent, hit);
		}
#ifndef __INTEL__
		delete[] buffer;
#endif
	}
	if (msgr.IsValid()) {
		BMessage msg(M_DCC_STOP_BUTTON);
		msgr.SendMessage(&msg);
	}

	if (dccSock > 0) {
		close(dccSock);
	}

	if (file.InitCheck() == B_OK) file.Unset();

	return 0;
}