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(); }
//====================================================================== //====================================================================== void NvUIValueBar::SetMinValue(float value) { if (value == m_minValue) return; m_minValue = value; SetValue(m_value); UpdateBar(); }
void TfraLeftBar::MaximizeAllFrames() { for (int j=0; j<paLeftBar->ControlCount; j++){ TPanel* pa = dynamic_cast<TPanel*>(paLeftBar->Controls[j]); if (pa) PanelMaximize(pa); } UpdateBar(); }
// ----------------------------------------------------------------------- // // 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(); } }
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 (); }
//====================================================================== //====================================================================== 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(); }
// ----------------------------------------------------------------------- // // 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(); }
//====================================================================== //====================================================================== 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(); }
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(); }
//====================================================================== //====================================================================== 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(); }
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(); }
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(); }
void CHUDArmor::ScaleChanged() { CHUDItem::ScaleChanged(); UpdateBar(); }
void TfraLeftBar::OnTimer() { UpdateBar(); }
void __fastcall TfraLeftBar::PanelMaximizeClick(TObject *Sender) { ::PanelMaximizeClick(Sender); UpdateBar(); }
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; }
void CHUDWeapon::ScaleChanged() { //position handled by CHUDWeaponList UpdateBar(); }
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; }