bool MyOpenClipboard(LPCWSTR asAction) { _ASSERTE(gnMyClipboardOpened==0 || gnMyClipboardOpened==1); if (gnMyClipboardOpened > 0) { InterlockedIncrement(&gnMyClipboardOpened); return true; } BOOL lbRc; int iMaxTries = 100; // Open Windows' clipboard while (!(lbRc = OpenClipboard((ghWnd && IsWindow(ghWnd)) ? ghWnd : NULL)) && (iMaxTries-- > 0)) { DWORD dwErr = GetLastError(); wchar_t szCode[32]; _wsprintf(szCode, SKIPCOUNT(szCode) L", Code=%u", dwErr); wchar_t* pszMsg = lstrmerge(L"OpenClipboard failed (", asAction, L")", szCode); LogString(pszMsg); int iBtn = DisplayLastError(pszMsg, dwErr, MB_RETRYCANCEL|MB_ICONSTOP); SafeFree(pszMsg); if (iBtn != IDRETRY) return false; } InterlockedIncrement(&gnMyClipboardOpened); _ASSERTE(gnMyClipboardOpened==1); LogString(L"OpenClipboard succeeded"); return true; }
//----------------------------------------------------------------------------- // Name: empty() // Desc: //----------------------------------------------------------------------------- void dreamSock_SendPacket(SOCKET sock, int length, char *data, struct sockaddr addr) { int ret; ret = sendto(sock, data, length, 0, &addr, sizeof(addr)); if(ret == -1) { #ifdef WIN32 errno = WSAGetLastError(); // Silently handle wouldblock if(errno == WSAEWOULDBLOCK) return; LogString("Error code %d: sendto() : %s", errno, strerror(errno)); #else // Silently handle wouldblock if(errno == EWOULDBLOCK) return; LogString("Error code %d: sendto() : %s", errno, strerror(errno)); #endif } }
//----------------------------------------------------------------------------- // Name: empty() // Desc: //----------------------------------------------------------------------------- SOCKET dreamSock_Socket(int protocol) { int type; int proto; SOCKET sock; // Check which protocol to use if(protocol == DREAMSOCK_TCP) { type = SOCK_STREAM; proto = IPPROTO_TCP; } else { type = SOCK_DGRAM; proto = IPPROTO_UDP; } // Create the socket if((sock = socket(AF_INET, type, proto)) == -1) { LogString("dreamSock_Socket - socket() failed"); #ifdef WIN32 errno = WSAGetLastError(); LogString("Error: socket() code %d : %s", errno, strerror(errno)); #else LogString("Error: socket() : %s", strerror(errno)); #endif return DREAMSOCK_INVALID_SOCKET; } return sock; }
int ServerSideNetworkedGame::InitNetwork() { if(dreamSock_Initialize() != 0) { LogString("Error initialising Communication Library!"); return 1; } LogString("Initialising game"); // Create the game servers on new ports, starting from 30004 int ret = networkServer->Initialise("", 30004); if(ret == DREAMSOCK_SERVER_ERROR) { #ifdef WIN32 char text[64]; sprintf(text, "Could not open server on port %d", networkServer->GetPort()); MessageBox(NULL, text, "Error", MB_OK); #else LogString("Could not open server on port %d", networkServer->GetPort()); #endif return 1; } return 0; }
HWND CConEmuInside::CheckInsideFocus() { if (!isInsideWndSet()) { //_ASSERTE(FALSE && "Inside was not initialized"); return NULL; } wchar_t szInfo[512]; GUITHREADINFO tif = { sizeof(tif) }; HWND hParentWnd = GetParentRoot(); DWORD nTID = GetWindowThreadProcessId(hParentWnd, NULL); if (!GetGUIThreadInfo(nTID, &tif)) { _wsprintf(szInfo, SKIPCOUNT(szInfo) L"GetGUIThreadInfo(%u) failed, code=%u", nTID, GetLastError()); LogString(szInfo); return NULL; } static GUITHREADINFO last_tif = {}; if (memcmp(&last_tif, &tif, sizeof(tif)) != 0) { last_tif = tif; _wsprintf(szInfo, SKIPCOUNT(szInfo) L"ParentInputInfo: flags=x%X Active=x%X Focus=x%X Capture=x%X Menu=x%X MoveSize=x%X Caret=x%X (%i,%i)-(%i,%i)", tif.flags, LODWORD(tif.hwndActive), LODWORD(tif.hwndFocus), LODWORD(tif.hwndCapture), LODWORD(tif.hwndMenuOwner), LODWORD(tif.hwndMoveSize), LODWORD(tif.hwndCaret), LOGRECTCOORDS(tif.rcCaret)); LogString(szInfo); } return tif.hwndFocus; }
#include "stdafx.h" #include "dragcommand.h" #include "../it_mgr.h" #include "../dlgs/QuickToolBar.h" #include "../dlgs/CPatDlg.h" #include "../dlgs/CItemDlg.h" #include "../dlgs/CGoodsDlg.h" #include "../dlgs/CPrivateStoreDlg.h" #include "../Icon/CIconItem.h" #include "../Icon/CIconSkill.h" #include "../Icon/CIconQuick.h" #include "../Icon/CIconSkillClan.h" #include "../../network/Cnetwork.h" #include "../../System/CGame.h" #include "../../gamecommon/item.h" #include "uicommand.h" #include "../../GameData/CPrivateStore.h" #include "../../GameData/CSeparate.h" bool CTCmdDragInven2QuickBar::Exec( CTObject* pObj ) { if( pObj == NULL ) { assert( 0 && "Invalid Param @CTCmdDragInven2QuickBar::Exec" ); return true; } CIconItem* pItemIcon = (CIconItem*)pObj; POINT ptMouse; CGame::GetInstance().Get_MousePos( ptMouse ); CTDialog* pDlg = g_itMGR.FindDlg( m_nType ); if( pDlg == NULL ) { assert( 0 && "Not Found QuickBar Dialog @CTCmdDragInven2QuickBar::Exec" ); return true; } CQuickBAR* pQuickBar = (CQuickBAR*)pDlg; short nQuickSlotIdx = pQuickBar->GetMouseClickSlot( ptMouse ); if( nQuickSlotIdx == -1 )///해당 위치에 슬롯이 없다. return true; tagHotICON hotICON; hotICON.m_cType = INV_ICON; hotICON.m_nSlotNo = pItemIcon->GetIndex(); if( hotICON.m_nSlotNo < INVENTORY_ITEM_INDEX_0 || hotICON.m_nSlotNo > INVENTORY_ITEM_INDEX_LAST ) { assert( 0 && "Invalid Inventory Index @CTCmdDragInven2QuickBar::Exec" ); return true; } g_pNet->Send_cli_SET_HOTICON( (BYTE)nQuickSlotIdx, hotICON ); return true; } bool CTCmdDragSkill2QuickBar::Exec( CTObject* pObj ) { if( pObj == NULL ) { assert( pObj && "Invalid Arg @CTCmdDragSkill2QuickBar::Exec" ); return true; } CIconSkill* pSkillIcon = (CIconSkill*)pObj; POINT ptMouse; CGame::GetInstance().Get_MousePos( ptMouse ); CTDialog* pDlg = g_itMGR.FindDlg( m_nType ); if( pDlg == NULL ) { assert( 0 && "Not Found QuickBar Dialog @CTCmdDragInven2QuickBar::Exec" ); return true; } CQuickBAR* pQuickBar = (CQuickBAR*)pDlg; short nQuickSlotIdx = pQuickBar->GetMouseClickSlot( ptMouse ); if( nQuickSlotIdx == -1 )///해당 위치에 슬롯이 없다. return true; tagHotICON hotICON; hotICON.m_cType = SKILL_ICON; hotICON.m_nSlotNo = pSkillIcon->GetSkillSlotFromIcon(); if( hotICON.m_nSlotNo < 0 || hotICON.m_nSlotNo >= MAX_LEARNED_SKILL_CNT ) { assert( 0 && "Invalid Skill Slot Index @CTCmdDragSkill2QuickBar::Exec" ); return true; } g_pNet->Send_cli_SET_HOTICON( (BYTE)nQuickSlotIdx, hotICON ); return true; } bool CTCmdDragClanSkill2QuickBar::Exec( CTObject* pObj ) { if( pObj == NULL ) { assert( pObj && "Invalid Arg @CTCmdDragClanSkill2QuickBar::Exec" ); return true; } CIconSkillClan* pSkillIcon = (CIconSkillClan*)pObj; POINT ptMouse; CGame::GetInstance().Get_MousePos( ptMouse ); CTDialog* pDlg = g_itMGR.FindDlg( DLG_TYPE_QUICKBAR ); if( pDlg == NULL ) { assert( 0 && "Not Found QuickBar Dialog @CTCmdDragInven2QuickBar::Exec" ); return true; } CQuickBAR* pQuickBar = (CQuickBAR*)pDlg; short nQuickSlotIdx = pQuickBar->GetMouseClickSlot( ptMouse ); if( nQuickSlotIdx == -1 )///해당 위치에 슬롯이 없다. return true; tagHotICON hotICON; hotICON.m_cType = CLANSKILL_ICON; hotICON.m_nSlotNo = pSkillIcon->GetSkillSlotFromIcon(); if( hotICON.m_nSlotNo < 0 || hotICON.m_nSlotNo >= MAX_CLAN_SKILL_SLOT ) { assert( 0 && "Invalid Skill Slot Index @CTCmdDragClanSkill2QuickBar::Exec" ); return true; } g_pNet->Send_cli_SET_HOTICON( (BYTE)nQuickSlotIdx, hotICON ); return true; } ///*------------------------------------------------------------------------------------------------------------*/ bool CTCmdDragItemFromQuickBar::Exec( CTObject* pObj ) { if( pObj == NULL ) { assert( pObj && "Invalid Arg @CTCmdItemFromQuickBar::Exec"); return true; } CIconQuick* pIcon = (CIconQuick*)pObj; short nSlotIndex = pIcon->GetQuickBarSlotIndex(); if( nSlotIndex < 0 || nSlotIndex >= MAX_HOT_ICONS ) { LogString( LOG_NORMAL,"Not Found SlotIndex By Icon Pointer @CTCmdDragItemFromQuickBar::Exec"); return true; } tagHotICON hotICON; hotICON.m_cType = 0; hotICON.m_nSlotNo = 0; g_pNet->Send_cli_SET_HOTICON( (BYTE)nSlotIndex, hotICON ); return true; } ///*------------------------------------------------------------------------------------------------------------*/ bool CTCmdMoveIconInQuickBar::Exec( CTObject* pObj ) { if( pObj == NULL ) { assert( pObj && "Invalid Arg @CTCmdItemFromQuickBar::Exec"); return true; } CIconQuick* pIcon = (CIconQuick*)pObj; short nPrevSlotIndex = pIcon->GetQuickBarSlotIndex(); if( nPrevSlotIndex < 0 || nPrevSlotIndex >= MAX_HOT_ICONS ) { LogString( LOG_NORMAL,"Invalid QuickBar SlotIndex @CTCmdDragItemFromQuickBar::Exec"); return true; } CTDialog* pDlg = g_itMGR.FindDlg( m_nType ); if( pDlg == NULL ) { assert( pDlg && "Not Found QuickBar Dialog @CTCmdMoveIconInQuickBar::Exec" ); return true; } CQuickBAR* pQuickBar = ( CQuickBAR*) pDlg; POINT ptMouse; CGame::GetInstance().Get_MousePos( ptMouse ); short nNewSlotIndex = pQuickBar->GetMouseClickSlot( ptMouse ); if( nNewSlotIndex < 0 || nNewSlotIndex >= MAX_HOT_ICONS ) { LogString( LOG_NORMAL,"Invalid QuickBar SlotIndex @CTCmdDragItemFromQuickBar::Exec"); return true; } if( nNewSlotIndex == nPrevSlotIndex ) { LogString( LOG_NORMAL,"SlotIndex Is Same @CTCmdDragItemFromQuickBar::Exec"); return true; } ///이전 슬롯 비우기 tagHotICON hotICON; hotICON.m_cType = 0; hotICON.m_nSlotNo = 0; g_pNet->Send_cli_SET_HOTICON( (BYTE)nPrevSlotIndex, hotICON ); ///새로운 슬롯으로 이동 CHotIconSlot* pHotIconSlot = g_pAVATAR->GetHotIconSlot(); hotICON = pHotIconSlot->GetHotItem( nPrevSlotIndex ); g_pNet->Send_cli_SET_HOTICON( (BYTE)nNewSlotIndex, hotICON ); return true; }
void NetworkedGame::Connect(void) { if(init) { LogString("ArmyWar already initialised"); return; } LogString("PolyNetworkedGame::Connect"); init = true; networkClient->SendConnect("myname"); }
void CObjUSER::Update_SPEED () { //Cal_RunSPEED() Add speed to calculate. //It turns on after the speed gives m_nRunSPEED value in the server. //Another way to compute here. ;;;; m_nRunSPEED = Cal_RunSPEED (); if ( this->GetPetMode() < 0 ) { m_fRunAniSPEED = Cal_RunAniSPEED( m_nRunSPEED ); m_nAtkAniSPEED = Cal_AtkAniSPEED( this->GetPartITEM(BODY_PART_WEAPON_R) ); } else { /// Add Battle Heart attack speed application nAvy - 2005/7/28 #if defined(_GBC) m_fRunAniSPEED = ( m_nRunSPEED + 500 ) / 1000.f; m_nAtkAniSPEED = Cal_AtkAniSPEED( this->GetPartITEM(BODY_PART_WEAPON_R) ); /*for( int i = 0 ; i < MAX_RIDING_PART; ++i ) m_nAtkAniSPEED += PAT_ITEM_ATK_SPD( m_sPetPartItemIDX[ i ].m_nItemNo );*/ #else m_fRunAniSPEED = ( m_nRunSPEED + 500 ) / 1000.f; ///<- 2005/7/25 Add to Cart modifying system parts : nAvy //m_nAtkAniSPEED = ( 1500.f / ( ( PAT_ITEM_ATK_SPD( m_sPetPartItemIDX[ RIDE_PART_ARMS ].m_nItemNo )) + 5 ) ) + this->m_iAddValue[ AT_ATK_SPD ]; m_nAtkAniSPEED = ( 1500.f / ( ( PAT_ITEM_ATK_SPD( m_sPetPartItemIDX[ RIDE_PART_ARMS ].m_nItemNo )) + 5 ) ) + this->m_iAddValue[ AT_ATK_SPD ]; ///-> #endif } LogString (LOG_DEBUG, "CmPerSEC: %f, AniSpeed: %f \n", m_nRunSPEED, m_fRunAniSPEED ); };
#include "stdafx.h" #include "dragcommand.h" #include "../it_mgr.h" #include "../dlgs/QuickToolBar.h" #include "../dlgs/CPatDlg.h" #include "../dlgs/CItemDlg.h" #include "../dlgs/CGoodsDlg.h" #include "../dlgs/CPrivateStoreDlg.h" #include "../Icon/CIconItem.h" #include "../Icon/CIconSkill.h" #include "../Icon/CIconQuick.h" #include "../Icon/CIconSkillClan.h" #include "../../network/Cnetwork.h" #include "../../System/CGame.h" #include "../../gamecommon/item.h" #include "uicommand.h" #include "../../GameData/CPrivateStore.h" #include "../../GameData/CSeparate.h" bool CTCmdDragInven2QuickBar::Exec( CTObject* pObj ) { if( pObj == NULL ) { assert( 0 && "Invalid Param @CTCmdDragInven2QuickBar::Exec" ); return true; } CIconItem* pItemIcon = (CIconItem*)pObj; POINT ptMouse; CGame::GetInstance().Get_MousePos( ptMouse ); CTDialog* pDlg = g_itMGR.FindDlg( m_nType ); if( pDlg == NULL ) { assert( 0 && "Not Found QuickBar Dialog @CTCmdDragInven2QuickBar::Exec" ); return true; } CQuickBAR* pQuickBar = (CQuickBAR*)pDlg; short nQuickSlotIdx = pQuickBar->GetMouseClickSlot( ptMouse ); if( nQuickSlotIdx == -1 )///해당 위치에 슬롯이 없다. return true; tagHotICON hotICON; hotICON.m_cType = INV_ICON; hotICON.m_nSlotNo = pItemIcon->GetIndex(); if( hotICON.m_nSlotNo < INVENTORY_ITEM_INDEX_0 || hotICON.m_nSlotNo > INVENTORY_ITEM_INDEX_LAST ) { assert( 0 && "Invalid Inventory Index @CTCmdDragInven2QuickBar::Exec" ); return true; } g_pNet->Send_cli_SET_HOTICON( (BYTE)nQuickSlotIdx, hotICON ); return true; } bool CTCmdDragSkill2QuickBar::Exec( CTObject* pObj ) { if( pObj == NULL ) { assert( pObj && "Invalid Arg @CTCmdDragSkill2QuickBar::Exec" ); return true; } CIconSkill* pSkillIcon = (CIconSkill*)pObj; POINT ptMouse; CGame::GetInstance().Get_MousePos( ptMouse ); CTDialog* pDlg = g_itMGR.FindDlg( m_nType ); if( pDlg == NULL ) { assert( 0 && "Not Found QuickBar Dialog @CTCmdDragInven2QuickBar::Exec" ); return true; } CQuickBAR* pQuickBar = (CQuickBAR*)pDlg; short nQuickSlotIdx = pQuickBar->GetMouseClickSlot( ptMouse ); if( nQuickSlotIdx == -1 )///해당 위치에 슬롯이 없다. return true; tagHotICON hotICON; hotICON.m_cType = SKILL_ICON; hotICON.m_nSlotNo = pSkillIcon->GetSkillSlotFromIcon(); if( hotICON.m_nSlotNo < 0 || hotICON.m_nSlotNo >= MAX_LEARNED_SKILL_CNT ) { assert( 0 && "Invalid Skill Slot Index @CTCmdDragSkill2QuickBar::Exec" ); return true; } g_pNet->Send_cli_SET_HOTICON( (BYTE)nQuickSlotIdx, hotICON ); return true; } bool CTCmdDragClanSkill2QuickBar::Exec( CTObject* pObj ) { if( pObj == NULL ) { assert( pObj && "Invalid Arg @CTCmdDragClanSkill2QuickBar::Exec" ); return true; } CIconSkillClan* pSkillIcon = (CIconSkillClan*)pObj; POINT ptMouse; CGame::GetInstance().Get_MousePos( ptMouse ); CTDialog* pDlg = g_itMGR.FindDlg( DLG_TYPE_QUICKBAR ); if( pDlg == NULL ) { assert( 0 && "Not Found QuickBar Dialog @CTCmdDragInven2QuickBar::Exec" ); return true; } CQuickBAR* pQuickBar = (CQuickBAR*)pDlg; short nQuickSlotIdx = pQuickBar->GetMouseClickSlot( ptMouse ); if( nQuickSlotIdx == -1 )///해당 위치에 슬롯이 없다. return true; tagHotICON hotICON; hotICON.m_cType = CLANSKILL_ICON; hotICON.m_nSlotNo = pSkillIcon->GetSkillSlotFromIcon(); if( hotICON.m_nSlotNo < 0 || hotICON.m_nSlotNo >= MAX_CLAN_SKILL_SLOT ) { assert( 0 && "Invalid Skill Slot Index @CTCmdDragClanSkill2QuickBar::Exec" ); return true; } g_pNet->Send_cli_SET_HOTICON( (BYTE)nQuickSlotIdx, hotICON ); return true; } ///*------------------------------------------------------------------------------------------------------------*/ bool CTCmdDragItemFromQuickBar::Exec( CTObject* pObj ) { if( pObj == NULL ) { assert( pObj && "Invalid Arg @CTCmdItemFromQuickBar::Exec"); return true; } CIconQuick* pIcon = (CIconQuick*)pObj; short nSlotIndex = pIcon->GetQuickBarSlotIndex(); if( nSlotIndex < 0 || nSlotIndex >= MAX_HOT_ICONS ) { LogString( LOG_NORMAL,"Not Found SlotIndex By Icon Pointer @CTCmdDragItemFromQuickBar::Exec"); return true; } tagHotICON hotICON; hotICON.m_cType = 0; hotICON.m_nSlotNo = 0; g_pNet->Send_cli_SET_HOTICON( (BYTE)nSlotIndex, hotICON ); return true; }
bool CClientDB::InsertInventoryData( const char* pszName, S_InventoryData Data ) { ICommandText* pICommandText = NULL; HRESULT hr; LONG cNumRows = 0; WCHAR wCmdString[1024]; wsprintfW(wCmdString, L"INSERT INTO INVENTORY ( name, realindex, virtualindex ) VALUES ( '%S', %d, %d )", pszName, Data.lRealIndex, Data.lVirtualIndex ); pICommandText = CreateCommand ( m_pIDBInitialize ,wCmdString ); if( pICommandText == NULL ) return false; if(FAILED(hr = pICommandText->Execute( NULL, IID_NULL, NULL, &cNumRows, NULL))) { LogString( LOG_NORMAL,"Fail CreateInventoryTable\n" ); } pICommandText->Release(); return true; }
//------------------------------------------------------------------------------------------------- int QF_appendQuest ( int iQuestID ) { LogString (LOG_DEBUG, "QF_appendQuest( %d ) \n", iQuestID ); //-------------------------------------------------------------------------------- LOGOUT( "QF_appendQuest( %d ) ", iQuestID ); //-------------------------------------------------------------------------------- for (short nI=0; nI<QUEST_PER_PLAYER; nI++) if ( 0 == g_pAVATAR->m_Quests.m_QUEST[ nI ].GetID() ) { g_pAVATAR->m_Quests.m_QUEST[ nI ].Init (); g_pAVATAR->m_Quests.m_QUEST[ nI ].SetID( iQuestID, true ); //-------------------------------------------------------------------------------- LOGOUT( "QF_appendQuest( %d ) [ The request to the server : %d ] ", iQuestID, nI ); //-------------------------------------------------------------------------------- g_pNet->Send_cli_QUEST_REQ(TYPE_QUEST_REQ_ADD, (BYTE)nI, iQuestID ); return nI; } //-------------------------------------------------------------------------------- LOGERR( "QF_appendQuest( %d ) FAILED ", iQuestID ); //-------------------------------------------------------------------------------- return -1; }
//*---------------------------------------------------------------------------- /// 매번 새로 만들려고 시도한다.. 이미 만들어져 있다면 Fail //*---------------------------------------------------------------------------- bool CClientDB::CreateInventoryTable() { ICommandText* pICommandText = NULL; HRESULT hr; LONG cNumRows = 0; WCHAR wCmdString[] = L"CREATE TABLE INVENTORY ( name TEXT(30), realindex long , virtualindex long )"; pICommandText = CreateCommand ( m_pIDBInitialize ,wCmdString ); if( pICommandText == NULL ) return false; if(FAILED(hr = pICommandText->Execute( NULL, IID_NULL, NULL, &cNumRows, NULL))) { LogString( LOG_NORMAL,"Fail CreateInventoryTable\n" ); } pICommandText->Release(); return true; }
bool CClientDB::UpdateInventoryData( const char* pszName, S_InventoryData Data ) { ICommandText* pICommandText = NULL; HRESULT hr; LONG cNumRows = 0; WCHAR wCmdString[1024]; wsprintfW(wCmdString, L"UPDATE INVENTORY SET virtualindex = %d WHERE name = '%S' AND realindex = %d",Data.lVirtualIndex , pszName ,Data.lRealIndex ); pICommandText = CreateCommand ( m_pIDBInitialize ,wCmdString ); if( pICommandText == NULL ) return false; if(FAILED(hr = pICommandText->Execute( NULL, IID_NULL, NULL, &cNumRows, NULL))) { LogString( LOG_NORMAL,"Fail CreateInventoryTable\n" ); pICommandText->Release(); return false; } pICommandText->Release(); if( cNumRows == 0 ) return false; return true; }
void CTabPanelBase::UpdateTabFontInt() { if (!IsTabbarCreated()) return; LOGFONT lf = {}; lf.lfWeight = FW_DONTCARE; lf.lfCharSet = gpSet->nTabFontCharSet; lf.lfPitchAndFamily = DEFAULT_PITCH | FF_SWISS; wcscpy_c(lf.lfFaceName, gpSet->sTabFontFace); gpFontMgr->EvalLogfontSizes(lf, gpSet->nTabFontHeight, 0); wchar_t szInfo[100]; _wsprintf(szInfo, SKIPCOUNT(szInfo) L"Creating tab font name='%s' height=%i", lf.lfFaceName, lf.lfHeight); LogString(szInfo); // CreateFont HFONT hFont = CreateFontIndirect(&lf); // virtual SetTabbarFont(hFont); // Store new Font in member variable if (mh_TabFont) DeleteObject(mh_TabFont); mh_TabFont = hFont; }
bool CSetPgApps::CreateChildDlg() { if (mh_Child && !IsWindow(mh_Child)) { _ASSERTE(FALSE && "Invalid mh_Child"); mh_Child = NULL; } if (!mh_Child) { #if defined(_DEBUG) HWND hChild = GetDlgItem(mh_Dlg, IDD_SPG_APPDISTINCT2); _ASSERTE(hChild == NULL); #endif LogString(L"Creating child dialog IDD_SPG_APPDISTINCT2"); SafeDelete(mp_DlgDistinct2); // JIC mp_DlgDistinct2 = CDynDialog::ShowDialog(IDD_SPG_APPDISTINCT2, mh_Dlg, pageOpProc_AppsChild, 0/*dwInitParam*/); mh_Child = mp_DlgDistinct2 ? mp_DlgDistinct2->mh_Dlg : NULL; if (!mh_Child) { EnableWindow(mh_Dlg, FALSE); MBoxAssert(mh_Child && "CreateDialogParam(IDD_SPG_APPDISTINCT2) failed"); return 0; } SetWindowLongPtr(mh_Child, GWLP_ID, IDD_SPG_APPDISTINCT2); if (!mp_DpiDistinct2 && mp_ParentDpi) { mp_DpiDistinct2 = new CDpiForDialog(); mp_DpiDistinct2->Attach(mh_Child, mh_Dlg, mp_DlgDistinct2); } HWND hHolder = GetDlgItem(mh_Dlg, tAppDistinctHolder); RECT rcPos = {}; GetWindowRect(hHolder, &rcPos); MapWindowPoints(NULL, mh_Dlg, (LPPOINT)&rcPos, 2); POINT ptScroll = {}; HWND hEnd = GetDlgItem(mh_Child,stAppDistinctBottom); MapWindowPoints(hEnd, mh_Child, &ptScroll, 1); ShowWindow(hEnd, SW_HIDE); SCROLLINFO si = {sizeof(si), SIF_ALL}; si.nMax = ptScroll.y - (rcPos.bottom - rcPos.top); RECT rcChild = {}; GetWindowRect(GetDlgItem(mh_Child, DistinctControls[1].nOverrideID), &rcChild); si.nPage = rcChild.bottom - rcChild.top; SetScrollInfo(mh_Child, SB_VERT, &si, FALSE); MoveWindowRect(mh_Child, rcPos); ShowWindow(hHolder, SW_HIDE); ShowWindow(mh_Child, SW_SHOW); //_ASSERTE(mh_Child && IsWindow(mh_Child)); } return (mh_Child != NULL); }
void ServerSideNetworkedGame::ShutdownNetwork(void) { LogString("Shutting down game server..."); RemoveClients(); networkServer->Uninitialise(); }
//----------------------------------------------------------------------------- // Name: empty() // Desc: //----------------------------------------------------------------------------- int dreamSock_GetPacket(SOCKET sock, char *data, struct sockaddr *from) { int ret; struct sockaddr tempFrom; socklen_t fromlen; fromlen = sizeof(tempFrom); ret = recvfrom(sock, data, 1400, 0, (struct sockaddr *) &tempFrom, &fromlen); // Copy the address to the from pointer if(from != NULL) *(struct sockaddr *) from = tempFrom; if(ret == -1) { #ifdef WIN32 errno = WSAGetLastError(); // Silently handle wouldblock if(errno == WSAEWOULDBLOCK) return ret; if(errno == WSAEMSGSIZE) { // ERROR: Oversize packet return ret; } LogString("Error code %d: recvfrom() : %s", errno, strerror(errno)); #else // Silently handle wouldblock if(errno == EWOULDBLOCK || errno == ECONNREFUSED) return ret; LogString("Error code %d: recvfrom() : %s", errno, strerror(errno)); #endif return ret; } return ret; }
//----------------------------------------------------------------------------- // Name: empty() // Desc: //----------------------------------------------------------------------------- void CArmyWar::CheckPredictionError(int a) { if(a < 0 && a > COMMAND_HISTORY_SIZE) return; float errorX = localClient->serverFrame.origin.x - localClient->frame[a].predictedOrigin.x; float errorY = localClient->serverFrame.origin.y - localClient->frame[a].predictedOrigin.y; // Fix the prediction error if( (errorX != 0.0f) || (errorY != 0.0f) ) { localClient->frame[a].predictedOrigin.x = localClient->serverFrame.origin.x; localClient->frame[a].predictedOrigin.y = localClient->serverFrame.origin.y; localClient->frame[a].vel.x = localClient->serverFrame.vel.x; localClient->frame[a].vel.y = localClient->serverFrame.vel.y; LogString("Prediction error for frame %d: %f, %f\n", a, errorX, errorY); } float errorXrot = localClient->serverFrame.rot.w - localClient->frame[a].predictedRot.w; float errorYrot = localClient->serverFrame.rot.y - localClient->frame[a].predictedRot.y; // Fix the prediction error if( (errorXrot != 0.0f) || (errorYrot != 0.0f) ) { localClient->frame[a].predictedRot.w = localClient->serverFrame.rot.w; localClient->frame[a].predictedRot.y = localClient->serverFrame.rot.y; LogString("Prediction rot error for frame %d: %f, %f\n", a, errorXrot, errorYrot); } }
CLogFunction::~CLogFunction() { if (!mb_Logged) return; --m_FnLevel; if (!gpLogSize || !(mc_FnInfo[0])) return; if (mn_FnSuffix) { const int cchSpaceLeft = static_cast<int>(std::size(mc_FnInfo) - mn_FnSuffix); lstrcpyn(mc_FnInfo + mn_FnSuffix, kFnEnd, cchSpaceLeft); LogString(mc_FnInfo); } else { LogString(CEStr(mc_FnInfo, kFnEnd)); } }
void CTaskBar::Taskbar_UpdateOverlay() { if (!this || !mp_TaskBar3) { LogString(L"Taskbar_UpdateOverlay skipped: !mp_TaskBar3"); return; } // TODO: Separate option is required! if (!gpSet->isTaskbarShield) { Taskbar_SetOverlay(NULL); LogString(L"Taskbar_UpdateOverlay skipped: !isTaskbarShield"); return; } bool bAdmin; HICON hIcon; if ((hIcon = gpConEmu->GetCurrentVConIcon()) != NULL) { LogString(L"Taskbar_UpdateOverlay executed with tab icon"); if (!isTaskbarSmallIcons()) { Taskbar_SetOverlay(hIcon); DestroyIcon(hIcon); } else { gpConEmu->SetTaskbarIcon(hIcon); } } else if (!IsWindows7) { LogString(L"Taskbar_UpdateOverlay skipped: !IsWindows7"); } else { LogString(L"Taskbar_UpdateOverlay executed with [non]admin icon"); bAdmin = gpConEmu->IsActiveConAdmin(); Taskbar_SetShield(bAdmin); } }
//----------------------------------------------------------------------------- // Name: empty() // Desc: //----------------------------------------------------------------------------- int dreamSock_SetBroadcasting(SOCKET sock, int mode) { // make it broadcast capable if(setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (char *) &mode, sizeof(int)) == -1) { LogString("DreamSock_SetBroadcasting failed"); #ifdef WIN32 int err = WSAGetLastError(); LogString("Error code %d: setsockopt() : %s", err, strerror(err)); #else LogString("Error code %d: setsockopt() : %s", errno, strerror(errno)); #endif return DREAMSOCK_INVALID_SOCKET; } return 0; }
void CLog::Log(int loglevel, const char *format, ...) { if (IsLogLevelLogged(loglevel)) { va_list va; va_start(va, format); LogString(loglevel, StringUtils::FormatV(format, va)); va_end(va); } }
/////////////////////////////////////////////////////////////// // // CDatabaseJobQueueImpl::LogResult // // Log last job if connection has logging enabled // /////////////////////////////////////////////////////////////// void CDatabaseJobQueueImpl::LogResult ( CDbJobData* pJobData ) { // Early out if logging switched off globally if ( m_LogLevel == EJobLogLevel::NONE ) return; // Check logging status of connection CDatabaseConnection* pConnection = GetConnectionFromHandle ( pJobData->command.connectionHandle ); if ( !pConnection || !pConnection->m_bLoggingEnabled ) return; if ( pJobData->result.status == EJobResult::SUCCESS ) { if ( m_LogLevel >= EJobLogLevel::ALL ) { SString strLine ( "%s: [%s] SUCCESS: Affected rows:%d [Query:%s]\n" , *GetLocalTimeString ( true, true ) , *pConnection->m_strLogTag , pJobData->result.registryResult->uiNumAffectedRows , *pJobData->GetCommandStringForLog() ); LogString ( strLine ); } } else { if ( m_LogLevel >= EJobLogLevel::ERRORS ) { // Suppress requested errors unless logging is set to ALL if ( pJobData->result.bErrorSuppressed && m_LogLevel != EJobLogLevel::ALL ) return; SString strLine ( "%s: [%s] FAIL: (%d) %s [Query:%s]\n" , *GetLocalTimeString ( true, true ) , *pConnection->m_strLogTag , pJobData->result.uiErrorCode , *pJobData->result.strReason , *pJobData->GetCommandStringForLog() ); LogString ( strLine ); } } }
void CTaskBar::Taskbar_SetOverlay(HICON ahIcon) { HRESULT hr = E_FAIL; // WinXP does not have mp_TaskBar3 if (mp_TaskBar3) { hr = mp_TaskBar3 ? mp_TaskBar3->SetOverlayIcon(ghWnd, ahIcon, NULL) : E_FAIL; wchar_t szInfo[100]; _wsprintf(szInfo, SKIPCOUNT(szInfo) L"mp_TaskBar3->SetOverlayIcon(%s) %s code=x%08X", ahIcon?L"ICON":L"NULL", SUCCEEDED(hr)?L"succeeded":L"failed", hr); LogString(szInfo); _ASSERTE(hr==S_OK); } else { LogString(L"Taskbar_SetOverlay skipped: !mp_TaskBar3"); } UNREFERENCED_PARAMETER(hr); }
float get_param_float (lua_State * L, int& index_from_end, const char * where) { int index = lua_gettop(L) - index_from_end; _ASSERT(index >= 1); index_from_end++; if (!lua_isnumber(L, index)) { LogString(LOG_DEBUG, "_script_lua: %s().parameter(float) match failed\n", where); return 0; } return (float)lua_tonumber(L, index); }
const char * get_param_string (lua_State * L, int& index_from_end, const char * where) { int index = lua_gettop(L) - index_from_end; _ASSERT(index >= 1); index_from_end++; if (!lua_isstring(L, index)) { LogString(LOG_DEBUG, "script_lua: %s().parameter(string) match failed\n", where); return NULL; } return lua_tostring(L, index); }
void LogFormat(const char *fmt, ...) { char buf[MAX_PATH]; va_list ap; va_start(ap, fmt); vsprintf(buf, fmt, ap); va_end(ap); LogString(buf); }
void LogFormat(const TCHAR *Str, ...) { TCHAR buf[MAX_PATH]; va_list ap; va_start(ap, Str); _vstprintf(buf, Str, ap); va_end(ap); LogString(buf); }
//----------------------------------------------------------------------------- // Name: empty() // Desc: //----------------------------------------------------------------------------- SOCKET dreamSock_OpenUDPSocket(char *netInterface, int port) { SOCKET sock; struct sockaddr_in address; sock = dreamSock_Socket(DREAMSOCK_UDP); if(sock == DREAMSOCK_INVALID_SOCKET) return sock; dreamSock_SetNonBlocking(sock, 1); dreamSock_SetBroadcasting(sock, 1); // If no address string provided, use any interface available if(!netInterface || !netInterface[0] || !strcmp(netInterface, "localhost")) { LogString("No net interface given, using any interface available"); address.sin_addr.s_addr = htonl(INADDR_ANY); } else { LogString("Using net interface = '%s'", netInterface); dreamSock_StringToSockaddr(netInterface, (struct sockaddr *) &address); } // If no port number provided, use any port number available if(port == 0) { LogString("No port defined, picking one for you"); address.sin_port = 0; } else { address.sin_port = htons((short) port); } address.sin_family = AF_INET; // Bind the address to the socket if(bind(sock, (struct sockaddr *) &address, sizeof(address)) == -1) { #ifdef WIN32 errno = WSAGetLastError(); LogString("Error code %d: bind() : %s", errno, strerror(errno)); #else LogString("Error code %d: bind() : %s", errno, strerror(errno)); #endif return DREAMSOCK_INVALID_SOCKET; } // Get the port number (if we did not define one, we get the assigned port number here) socklen_t len = sizeof(address); getsockname(sock, (struct sockaddr *) &address, &len); LogString("Opening UDP port = %d", ntohs(address.sin_port)); return sock; }
//----------------------------------------------------------------------------- // Name: empty() // Desc: //----------------------------------------------------------------------------- void NetworkedGame::Disconnect(void) { if(!init) return; LogString("PolyNetworkedGame::Disconnect"); init = false; localClient = NULL; memset(&inputClient, 0, sizeof(clientData)); networkClient->SendDisconnect(); }