BOOL CWndGuideTextMgr::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ) { GUIDE_STRUCT guide; switch( nID ) { case WIDC_NEXT: { /* if( m_VecGuideText.size() ) { m_nCurrentVector++; if( m_nCurrentVector > m_VecGuideText.size()-1 ) m_nCurrentVector = m_VecGuideText.size()-1; guide = m_VecGuideText[m_nCurrentVector]; _SetGuideText(guide); CWndWorld* pWndWorld = (CWndWorld*)GetWndBase( APP_WORLD ); }*/ CWndGuideSystem* pWndGuide = (CWndGuideSystem*)GetWndBase( APP_GUIDE ); pWndGuide->PassToNext(); } break; default: { m_bVisible = FALSE; CWndWorld* pWndWorld = (CWndWorld*)GetWndBase( APP_WORLD ); } break; } return CWndNeuz::OnChildNotify( message, nID, pLResult ); }
BOOL CWndGuideTextMgr::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ) { GUIDE_STRUCT guide; switch( nID ) { case WIDC_BACK: { if( m_VecGuideText.size() ) { m_nCurrentVector--; if( m_nCurrentVector < 0 ) m_nCurrentVector = 0; guide = m_VecGuideText[m_nCurrentVector]; _SetGuideText(guide); } } break; case WIDC_NEXT: { if( m_VecGuideText.size() ) { m_nCurrentVector++; if( m_nCurrentVector > m_VecGuideText.size()-1 ) m_nCurrentVector = m_VecGuideText.size()-1; guide = m_VecGuideText[m_nCurrentVector]; _SetGuideText(guide); CWndWorld* pWndWorld = (CWndWorld*)GetWndBase( APP_WORLD ); if( pWndWorld ) { pWndWorld->m_pWndGuideSystem->SendGuideMessage(GUIDE_EVENT_INTRO); pWndWorld->m_pWndGuideSystem->SendGuideMessage(GUIDE_EVENT_END); } } } break; default: { m_bVisible = FALSE; CWndWorld* pWndWorld = (CWndWorld*)GetWndBase( APP_WORLD ); if( pWndWorld ) pWndWorld->m_pWndGuideSystem->SendGuideMessage(GUIDE_EVENT_INTRO); } break; } return CWndNeuz::OnChildNotify( message, nID, pLResult ); }
void CWndGuideTextMgr::OnDraw( C2DRender* p2DRender ) { CWndGuideSystem* pWndGuide = (CWndGuideSystem*)GetWndBase( APP_GUIDE ); if( !pWndGuide ) return; }
//================================================================================ void CWndInfoPang::OnInitialUpdate() { CWndGuideSystem* pWndGuide = (CWndGuideSystem*)GetWndBase( APP_GUIDE ); if(pWndGuide->m_dwGuideLevel == 0) { pWndGuide->m_bVisible = true; pWndGuide->ChangeModel( g_pPlayer->GetJob() ); pWndGuide->SetAni( g_pPlayer->GetJob(), 0 ); } }
BOOL CWndGuideSelection::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ) { switch( nID ) { case WIDC_RADIO1: { *g_Option.m_pGuide = 0; } break; case WIDC_RADIO2: { *g_Option.m_pGuide = 1; } break; case WIDC_RADIO3: { *g_Option.m_pGuide = 2; } break; case WIDC_BUTTON1: { CWndGuideSystem* pWndGuide = (CWndGuideSystem*)GetWndBase( APP_GUIDE ); if( pWndGuide && pWndGuide->m_bAniState == CWndGuideSystem::ANI_IDLE && pWndGuide->m_bIsLoad ) { pWndGuide->m_dwGuideLevel = *g_Option.m_pGuide; #if __VER >= 12 // __MOD_TUTORIAL if( pWndGuide->m_dwGuideLevel == 0 ) pWndGuide->GuideStart(); else { if(g_pPlayer) pWndGuide->SetAni( g_pPlayer->GetJob(), CWndGuideSystem::ANI_BYTE ); } #else if( pWndGuide->m_dwGuideLevel == 0 ) pWndGuide->GuideStart(TRUE); else { pWndGuide->GuideStart(FALSE); if(g_pPlayer) pWndGuide->SetAni( g_pPlayer->GetJob(), CWndGuideSystem::ANI_BYTE ); } #endif Destroy(); } } break; } return CWndNeuz::OnChildNotify( message, nID, pLResult ); }
// 처음 이 함수를 부르면 윈도가 열린다. BOOL CWndBank::Initialize( CWndBase* pWndParent, DWORD /*dwWndId*/ ) { // Daisy에서 설정한 리소스로 윈도를 연다. if( g_pPlayer == NULL ) return FALSE; #if __VER >= 12 // __MOD_TUTORIAL CWndGuideSystem* pWndGuide = (CWndGuideSystem*)GetWndBase( APP_GUIDE ); if(pWndGuide && pWndGuide->IsVisible()) { if(pWndGuide->m_CurrentGuide.m_nVicCondition == OPEN_WINDOW && pWndGuide->m_CurrentGuide.m_nInput == APP_COMMON_BANK) pWndGuide->m_Condition.nOpenedWindowID = 1; } #endif return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), APP_COMMON_BANK, 0, CPoint( 0, 0 ), pWndParent ); }
BOOL CWndGuideTextMgr::OnEraseBkgnd( C2DRender* p2DRender ) { CWndGuideSystem* pWndGuide = (CWndGuideSystem*)GetWndBase( APP_GUIDE ); if( !pWndGuide ) return FALSE; CRect rect = GetLayoutRect(); rect.bottom = rect.bottom+5; p2DRender->m_pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE ); if(m_pTextureBG) m_pTextureBG->Render( p2DRender, CPoint(8,0), CPoint( rect.right, rect.bottom ), 200 ); //p2DRender->RenderFillRect( CRect( 8, -8, rect.right, rect.bottom ), D3DXCOLOR( 1.0f, 1.0f, 1.0f, 0.8f ) ); //p2DRender->RenderFillRect( CRect( rect.right, 8, rect.right+3, rect.bottom+3 ), D3DXCOLOR( 0.0f, 0.0f, 0.0f, 1.0f ) ); //p2DRender->RenderFillRect( CRect( 8+3, rect.bottom, rect.right+3, rect.bottom+3 ), D3DXCOLOR( 0.0f, 0.0f, 0.0f, 1.0f ) ); return TRUE; }
BOOL CWndOption::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ) { CWndButton* pWndAlpha = (CWndButton*)GetDlgItem( WIDC_CHECK1 ); CWndButton* pWndHelp = (CWndButton*)GetDlgItem( WIDC_CHECK2 ); CWndButton* pWndRoll = (CWndButton*)GetDlgItem( WIDC_CHECK3 ); CWndButton* pWndCamearaLock = (CWndButton*)GetDlgItem( WIDC_CHECK4 ); #if __VER >= 11 // __ADD_ZOOMOPT CWndButton* pWndZoomLimit = (CWndButton*)GetDlgItem( WIDC_CHECK5 ); #endif switch( nID ) { case WIDC_CHECK1: // À©µµ ¹ÝÅõ¸í ¿É¼Ç if( pWndAlpha->GetCheck() ) CWndBase::m_nAlpha = g_Option.m_nWindowAlpha = 128; else CWndBase::m_nAlpha = g_Option.m_nWindowAlpha = 255; break; case WIDC_CHECK2: // Ãʺ¸ÀÚ µµ¿ò¸» ¿É¼Ç if( pWndHelp->GetCheck() ) g_Option.m_nInstantHelp = TRUE; else g_Option.m_nInstantHelp = FALSE; break; case WIDC_CHECK3: // ºñÇà½Ã ·Ñ¸µ È¿°ú. if( pWndRoll->GetCheck() ) g_Option.m_bRollEffect = TRUE; else g_Option.m_bRollEffect = FALSE; break; case WIDC_CHECK4: { if( pWndCamearaLock->GetCheck() ) g_Option.m_bCameraLock = TRUE; else g_Option.m_bCameraLock = FALSE; } break; #if __VER >= 11 // __ADD_ZOOMOPT case WIDC_CHECK5: { if( pWndZoomLimit->GetCheck() ) g_Option.m_bZoomLimit = FALSE; else g_Option.m_bZoomLimit = TRUE; } break; #endif case WIDC_RADIO1: g_Option.m_nSlangWord = 0; break; case WIDC_RADIO2: g_Option.m_nSlangWord = 1; break; case WIDC_RADIO3: g_Option.m_nChatCommand = 0; break; case WIDC_RADIO4: g_Option.m_nChatCommand = 1; break; case WIDC_RADIO5: g_Option.m_nChatCommand = 2; break; case WIDC_RADIO6: g_Option.m_nChatCommand = 3; break; case WIDC_RADIO7: // ÈÙ·Î Ä«¸Þ¶ó / ¿ìŬ¸¯ ½ºÅ³ÀÇ °íÀü¹æ½Ä g_Option.m_nInterface = 0; break; case WIDC_RADIO8: // ¿ìŬ¸¯ Ä«¸Þ¶ó / ÁÂŬ¸¯+X ½ºÅ³ÀÇ ½Å¹æ½Ä. g_Option.m_nInterface = 1; break; #ifdef __Y_INTERFACE_VER3 case WIDC_RADIO12: g_Option.m_nInterface = 2; break; #endif //__Y_INTERFACE_VER3 case WIDC_RADIO9: *g_Option.m_pGuide = 0; break; case WIDC_RADIO10: *g_Option.m_pGuide = 1; break; case WIDC_RADIO11: *g_Option.m_pGuide = 2; break; case 10000: { CWndGuideSystem* pWndGuide = (CWndGuideSystem*)GetWndBase( APP_GUIDE ); if( pWndGuide ) { pWndGuide->m_dwGuideLevel = *(g_Option.m_pGuide); if( pWndGuide->m_dwGuideLevel == 0 ) { if( g_pPlayer ) { pWndGuide->m_bVisible = TRUE; pWndGuide->ChangeModel( g_pPlayer->GetJob() ); pWndGuide->SetAni( g_pPlayer->GetJob(), CWndGuideSystem::ANI_IDLE ); } } else { if(g_pPlayer) { pWndGuide->SetAni( g_pPlayer->GetJob(), CWndGuideSystem::ANI_BYTE ); } } } } break; } return CWndNeuz::OnChildNotify( message, nID, pLResult ); }
BOOL CWndTotalOption::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ) { switch( nID ) { #ifdef __OPTION_EX case WIDC_BUT_OK: { /*m_OptTabGame*/ if( m_OptTabGame.pWndButton1[0]->GetCheck()) { g_Option.m_bTrade = 1; }else if( m_OptTabGame.pWndButton1[1]->GetCheck()) { g_Option.m_bTrade = 0; } if( m_OptTabGame.pWndButton2[0]->GetCheck()) { g_Option.m_bSay = 1; }else if( m_OptTabGame.pWndButton2[1]->GetCheck()) { g_Option.m_bSay = 0; } if( m_OptTabGame.pWndButton3[0]->GetCheck()) { g_Option.m_bParty = 1; }else if( m_OptTabGame.pWndButton3[1]->GetCheck()) { g_Option.m_bParty = 0; } if( m_OptTabGame.pWndButton4[0]->GetCheck()) { g_Option.m_bMessengerJoin = 1; }else if( m_OptTabGame.pWndButton4[1]->GetCheck()) { g_Option.m_bMessengerJoin = 0; } if( m_OptTabGame.pWndButton5[0]->GetCheck()) { g_Option.m_bMessenger = 1; }else if( m_OptTabGame.pWndButton5[1]->GetCheck()) { g_Option.m_bMessenger = 0; } if( m_OptTabGame.pWndButton6[0]->GetCheck()) { g_DPlay.SendChangePKPVPMode( FREEPK_MODE, 0 ); }else if( m_OptTabGame.pWndButton6[1]->GetCheck()) { g_DPlay.SendChangePKPVPMode( FREEPK_MODE, 1 ); } if( m_OptTabGame.pWndButton7[0]->GetCheck()) { g_DPlay.SendChangePKPVPMode( PVPCONFIRM_MODE, 3 ); }else if( m_OptTabGame.pWndButton7[1]->GetCheck()) { g_DPlay.SendChangePKPVPMode( PVPCONFIRM_MODE, 2 ); } if( m_OptTabGame.pWndButton8[0]->GetCheck()) { g_DPlay.SendQueryEquipSetting(TRUE); }else if( m_OptTabGame.pWndButton8[1]->IsPush()) { g_DPlay.SendQueryEquipSetting(FALSE); } if( m_OptTabGame.pWndButton9[0]->GetCheck()) { g_Option.m_bAutoAttack = 1; }else if( m_OptTabGame.pWndButton9[1]->GetCheck()) { g_Option.m_bAutoAttack = 0; } if( m_OptTabGame.pWndHelp->GetCheck()) g_Option.m_nInstantHelp = TRUE; else g_Option.m_nInstantHelp = FALSE; if( m_OptTabGame.pWndCheck->GetCheck()) { *g_Option.m_pGuide = 0; } else { CWndGuideSystem* pWndGuide = NULL; pWndGuide = (CWndGuideSystem*)GetWndBase( APP_GUIDE ); pWndGuide->m_wndGuideText->SetVisible(FALSE); *g_Option.m_pGuide = 2; } if( m_OptTabGame.pWndAlpha->GetCheck()) CWndBase::m_nAlpha = g_Option.m_nWindowAlpha = 128; else CWndBase::m_nAlpha = g_Option.m_nWindowAlpha = 255; if( m_OptTabGame.pWndCheckBattleBGM->GetCheck()) { g_Option.m_bBattleBGM = ( m_OptTabGame.pWndCheckBattleBGM->GetCheck() == TRUE ) ? TRUE: FALSE; } #ifdef __GAME_GRADE_SYSTEM if( m_OptTabGame.pWndCheckGameGrade->GetCheck()) { BOOL bGameGradeChecked = m_OptTabGame.pWndCheckGameGrade->GetCheck(); g_Option.m_bGameGradeRendering = ( bGameGradeChecked == TRUE ) ? TRUE: FALSE; if( bGameGradeChecked == TRUE ) { g_Neuz.m_dwTimeGameGradeMarkRendering = g_tmCurrent + SEC( CNeuzApp::GAME_GRADE_MARK_RENDERING_INTERVAL_SECOND ); } } #endif // __GAME_GRADE_SYSTEM Destroy();//Fecha depois de salvar. } break; case WIDC_BUT_CANCEL: { Destroy(); } break; case WIDC_BUT_RESET: { CWndButton *pWndReset = (CWndButton*)GetDlgItem( WIDC_BUT_RESET ); if(pWndReset->IsPush()) { g_Option.Defalt( "neuzDefault.ini" );//carrega o neuzdefault.ini e depois que soutar o botão ele para. m_OptTabGame.pWndButton1[0]->SetCheck(TRUE); m_OptTabGame.pWndButton2[0]->SetCheck(TRUE); m_OptTabGame.pWndButton3[0]->SetCheck(TRUE); m_OptTabGame.pWndButton4[0]->SetCheck(TRUE); m_OptTabGame.pWndButton5[0]->SetCheck(TRUE); m_OptTabGame.pWndButton9[0]->SetCheck(TRUE); // m_OptTabGame.pWndCheckGameGrade->SetCheck(TRUE); m_OptTabGame.pWndCheckBattleBGM->SetCheck(TRUE); m_OptTabGame.pWndHelp->SetCheck(TRUE); m_OptTabGame.pWndButton1[1]->SetCheck(FALSE); m_OptTabGame.pWndButton2[1]->SetCheck(FALSE); m_OptTabGame.pWndButton3[1]->SetCheck(FALSE); m_OptTabGame.pWndButton4[1]->SetCheck(FALSE); m_OptTabGame.pWndButton5[1]->SetCheck(FALSE); m_OptTabGame.pWndButton9[1]->SetCheck(FALSE); m_OptTabGame.pWndCheck->SetCheck(FALSE); m_OptTabGame.pWndAlpha->SetCheck(FALSE); } } break; #endif//__OPTION_EX case 10000: { CWndGuideSystem* pWndGuide = (CWndGuideSystem*)GetWndBase( APP_GUIDE ); if( pWndGuide ) { pWndGuide->m_dwGuideLevel = *(g_Option.m_pGuide); if( pWndGuide->m_dwGuideLevel == 0 ) { if( g_pPlayer ) { if(pWndGuide->m_bVisible != false) { pWndGuide->m_bVisible = true; pWndGuide->ChangeModel( g_pPlayer->GetJob() ); pWndGuide->SetAni( g_pPlayer->GetJob(), CWndGuideSystem::ANI_IDLE ); } } } else { if( g_pPlayer ) { pWndGuide->SetAni( g_pPlayer->GetJob(), CWndGuideSystem::ANI_BYTE ); } } } } break; } return CWndNeuz::OnChildNotify( message, nID, pLResult ); }
void CWndSummonAngel::OnInitialUpdate() { CWndNeuz::OnInitialUpdate(); // 여기에 코딩하세요 //Ctrl Initialize. m_pText = (CWndText *)GetDlgItem( WIDC_TEXT1 ); m_pStatic[0] = (CWndStatic *)GetDlgItem( WIDC_STATIC_RED ); m_pStatic[1] = (CWndStatic *)GetDlgItem( WIDC_STATIC_BLUE ); m_pStatic[2] = (CWndStatic *)GetDlgItem( WIDC_STATIC_GREEN ); SummonRateRefresh(); int StaticID[20] = {WIDC_STATIC11, WIDC_STATIC12, WIDC_STATIC13, WIDC_STATIC14, WIDC_STATIC15, WIDC_STATIC16, WIDC_STATIC17, WIDC_STATIC18, WIDC_STATIC19, WIDC_STATIC20, WIDC_STATIC21, WIDC_STATIC22, WIDC_STATIC23, WIDC_STATIC24, WIDC_STATIC25, WIDC_STATIC26, WIDC_STATIC27, WIDC_STATIC28, WIDC_STATIC29, WIDC_STATIC30}; for(int i=0; i<MAX_MATDIE; i++) { m_MatDie[i].wndCtrl = GetWndCtrl( StaticID[i] ); m_MatDie[i].staticNum = StaticID[i]; m_MatDie[i].isUse = FALSE; m_MatDie[i].pItemElem = NULL; m_ItemInfo[i].extracount = 0; m_ItemInfo[i].itemid = -1; } //Text Setting CWndStatic* pStatic = (CWndStatic *)GetDlgItem( WIDC_STATIC3 ); pStatic->SetTitle(prj.GetText(TID_GAME_REDANGEL_RATE)); pStatic = (CWndStatic *)GetDlgItem( WIDC_STATIC4 ); pStatic->SetTitle(prj.GetText(TID_GAME_BLUEANGEL_RATE)); pStatic = (CWndStatic *)GetDlgItem( WIDC_STATIC5 ); pStatic->SetTitle(prj.GetText(TID_GAME_GREENANGEL_RATE)); pStatic = (CWndStatic *)GetDlgItem( WIDC_STATIC6 ); pStatic->SetTitle(prj.GetText(TID_GAME_WHITEANGEL_INFO1)); pStatic = (CWndStatic *)GetDlgItem( WIDC_STATIC1 ); pStatic->SetTitle(prj.GetText(TID_GAME_WHITEANGEL_INFO2)); pStatic = (CWndStatic *)GetDlgItem( WIDC_STATIC7 ); pStatic->SetTitle(prj.GetText(TID_GAME_WHITEANGEL_INFO3)); //France Button Image CWndButton* pButton = (CWndButton*)GetDlgItem( WIDC_START ); if(::GetLanguage() == LANG_FRE) pButton->SetTexture(g_Neuz.m_pd3dDevice, MakePath( "Theme\\", ::GetLanguage(), _T( "ButtNormal00.tga" ) ), TRUE); //Window Position m_pWndInventory = (CWndInventory*)GetWndBase( APP_INVENTORY ); CRect rectInventory; if(m_pWndInventory != NULL) { m_pWndInventory->m_wndItemCtrl.SetDieFlag(TRUE); rectInventory = m_pWndInventory->GetWindowRect( TRUE ); } CPoint ptInventory = rectInventory.TopLeft(); CPoint ptMove; CRect rect = GetWindowRect( TRUE ); if( ptInventory.x > rect.Width() / 2 ) ptMove = ptInventory - CPoint( rect.Width(), 0 ); else ptMove = ptInventory + CPoint( rectInventory.Width(), 0 ); Move( ptMove ); }
void CWndGuildBank::OnInitialUpdate() { CWndNeuz::OnInitialUpdate(); // 여기에 코딩하세요 #if __VER >= 11 // __SYS_POCKET if(GetWndBase( APP_BAG_EX )) GetWndBase( APP_BAG_EX )->Destroy(); #endif if( g_WndMng.m_pWndTrade || g_WndMng.m_pWndShop || g_WndMng.m_pWndBank || g_WndMng.GetWndVendorBase() ) { Destroy(); return; } CWndStatic* pCost = (CWndStatic*) GetDlgItem( WIDC_GUILDBANK_NUM ); pCost->AddWndStyle(WSS_MONEY); CWndTabCtrl* pTabCtrl = reinterpret_cast<CWndTabCtrl*>(GetDlgItem(WIDC_TABCTRL1)); m_wndItemCtrl.Create( WLVS_ICON, CRect( 0, 0, 250, 250 ), pTabCtrl, 11 ); m_wndItemCtrl.InitItem( &g_pPlayer->GetGuild()->m_GuildBank, APP_GUILD_BANK ); WTCITEM tabTabItem; tabTabItem.mask = WTCIF_TEXT | WTCIF_PARAM; tabTabItem.pszText = prj.GetText(TID_GAME_ITEM);//"아이템"; tabTabItem.pWndBase = &m_wndItemCtrl; pTabCtrl->InsertItem( 0, &tabTabItem ); LPWNDCTRL lpWndCtrl = GetWndCtrl( WIDC_CUSTOM1 ); m_wndGold.Create( "g", WBS_NODRAWFRAME, lpWndCtrl->rect, this, WIDC_CUSTOM1 ); m_wndGold.AddWndStyle( WBS_NODRAWFRAME ); CGuild *pGuild = g_pPlayer->GetGuild(); if( pGuild ) { if( pGuild->IsMaster( g_pPlayer->m_idPlayer ) == FALSE ) // 길마가 아니면 { CWndButton* pWndButt = (CWndButton*)GetDlgItem(WIDC_BUTTON2); // 망토제작 버튼을 disable 시킨다. pWndButt->EnableWindow( FALSE ); } } #ifdef __GLDISABLE CWndButton* pWndButt = (CWndButton*)GetDlgItem(WIDC_BUTTON1); pWndButt->EnableWindow( FALSE ); #endif CWndInventory* pWndInventory = (CWndInventory*)GetWndBase( APP_INVENTORY ); CRect rectInventory = pWndInventory->GetWindowRect( TRUE ); CPoint ptInventory = rectInventory.TopLeft(); CPoint ptMove; CRect rect = GetWindowRect( TRUE ); if( ptInventory.x > rect.Width() / 2 ) ptMove = ptInventory - CPoint( rect.Width(), 0 ); else ptMove = ptInventory + CPoint( rectInventory.Width(), 0 ); Move( ptMove ); if( pGuild ) { CWndButton* pWndButt = (CWndButton*)GetDlgItem(WIDC_BUTTON3); #if __VER >= 8 // __GUILDCOMBAT_85 pWndButt->EnableWindow(FALSE); pWndButt->SetVisible(FALSE); #else // __VER >= 8 if( g_GuildCombatMng.m_uWinGuildId == pGuild->GetGuildId() ) pWndButt->EnableWindow(TRUE); else pWndButt->EnableWindow(FALSE); #endif // __VER >= 8 } #if __VER >= 11 // __GUILD_BANK_LOG CWndButton* pWndButtLog = (CWndButton*)GetDlgItem(WIDC_LOG); pWndButtLog->EnableWindow(TRUE); pWndButtLog->SetVisible(TRUE); #else //__GUILD_BANK_LOG //CWndButton* pWndButtLog = (CWndButton*)GetDlgItem(WIDC_LOG); //pWndButtLog->EnableWindow(FALSE); //pWndButtLog->SetVisible(FALSE); #endif //__GUILD_BANK_LOG }
void CWndGuildBankLog::OnInitialUpdate() { CWndNeuz::OnInitialUpdate(); // 여기에 코딩하세요 CWndTabCtrl* pWndTabCtrl = (CWndTabCtrl*)GetDlgItem( WIDC_TABCTRL1 ); WTCITEM tabTabItem; CRect rect = pWndTabCtrl->GetClientRect(); rect.bottom -= 15; m_wndAddItemLog.Create( rect, pWndTabCtrl, 11 ); m_wndAddItemLog.AddWndStyle( WBS_NODRAWFRAME ); m_wndRemoveItemLog.Create( rect, pWndTabCtrl, 12 ); m_wndRemoveItemLog.AddWndStyle( WBS_NODRAWFRAME ); m_wndReceivePenyaLog.Create( rect, pWndTabCtrl, 13 ); m_wndReceivePenyaLog.AddWndStyle( WBS_NODRAWFRAME ); m_wndInvestPenyaLog.Create( rect, pWndTabCtrl, 14 ); m_wndInvestPenyaLog.AddWndStyle( WBS_NODRAWFRAME ); // Default - AddItemLog UpdateList m_wndAddItemLog.UpdateLogList(); tabTabItem.mask = WTCIF_TEXT | WTCIF_PARAM; tabTabItem.pszText = prj.GetText(TID_GAME_GUILD_BANK_ADDITEMLOG); //"아이템 추가" tabTabItem.pWndBase = &m_wndAddItemLog; pWndTabCtrl->InsertItem( 0, &tabTabItem ); tabTabItem.mask = WTCIF_TEXT | WTCIF_PARAM; tabTabItem.pszText = prj.GetText(TID_GAME_GUILD_BANK_REMOVEITEMLOG); //"아이템 제거" tabTabItem.pWndBase = &m_wndRemoveItemLog; pWndTabCtrl->InsertItem( 1, &tabTabItem ); tabTabItem.mask = WTCIF_TEXT | WTCIF_PARAM; tabTabItem.pszText = prj.GetText(TID_GAME_GUILD_BANK_RECEIVEPENYALOG); //"페냐 입금" tabTabItem.pWndBase = &m_wndReceivePenyaLog; pWndTabCtrl->InsertItem( 2, &tabTabItem ); tabTabItem.mask = WTCIF_TEXT | WTCIF_PARAM; tabTabItem.pszText = prj.GetText(TID_GAME_GUILD_BANK_INVESTPENYALOG); //"페냐 출금" tabTabItem.pWndBase = &m_wndInvestPenyaLog; pWndTabCtrl->InsertItem( 3, &tabTabItem ); CWndGuildBank* pWndGuildBank = (CWndGuildBank*)GetWndBase( APP_GUILD_BANK ); if(pWndGuildBank != NULL) { CRect rectRoot = pWndGuildBank->m_pWndRoot->GetLayoutRect(); CRect rectBank = pWndGuildBank->GetWindowRect( TRUE ); CPoint ptMove; CPoint ptBank; CRect rect = GetWindowRect( TRUE ); int wndWidth = rect.Width(); if(rectRoot.right - rectBank.right < wndWidth) { ptBank = rectBank.TopLeft(); ptMove = ptBank + CPoint(-(10+wndWidth), 0); } else { ptBank = rectBank.BottomRight(); ptMove = ptBank + CPoint(10, -rectBank.Height()); } Move( ptMove ); } else { CRect rectRoot = m_pWndRoot->GetLayoutRect(); CRect rectWindow = GetWindowRect(); CPoint point( rectRoot.right - rectWindow.Width(), rectRoot.bottom - rectWindow.Height() ); Move( point ); } }
BOOL CWndGuildBank::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ) { if( WIN_DBLCLK == message ) return FALSE; LPSHORTCUT lpShortcut = reinterpret_cast<LPSHORTCUT>(pLResult); if( lpShortcut == NULL ) return FALSE; if( lpShortcut->m_pFromWnd == NULL ) return FALSE; CWndBase* pWndFrame = lpShortcut->m_pFromWnd->GetFrameWnd(); if( pWndFrame == NULL ) return FALSE; if( pWndFrame->GetWndId() == APP_INVENTORY ) { switch (message) { case WIN_ITEMDROP: { if( nID == 11 ) // item { BOOL bForbid = TRUE; SAFE_DELETE( g_WndMng.m_pWndTradeGold ); if( lpShortcut->m_dwData != 0 ) { CWndItemCtrl* pWndItemCtrl = (CWndItemCtrl*)lpShortcut->m_pFromWnd; UINT SelectCount = pWndItemCtrl->GetSelectedCount(); if( SelectCount != 1) { //g_WndMng.PutString( "장착 되어 있는것은 넣을수 없습니다", NULL, 0xffffff00 ); g_WndMng.PutString( prj.GetText(TID_GAME_EQUIPPUT), NULL, prj.GetTextColor( TID_GAME_EQUIPPUT ) ); } else { for( int i = 0; i < (int)( SelectCount ); i++ ) { int nItem = pWndItemCtrl->GetSelectedItem( i ); pWndItemCtrl->GetItem( nItem ); } CItemElem* itemElem = (CItemElem*)lpShortcut->m_dwData; if( itemElem->IsCharged() ) { g_WndMng.PutString( prj.GetText( TID_GAME_NOTTRADE ), NULL, prj.GetTextColor( TID_GAME_NOTTRADE ) ); return FALSE; } if( itemElem->m_nItemNum > 1 ) { g_WndMng.m_pWndTradeGold = new CWndTradeGold; memcpy( &g_WndMng.m_pWndTradeGold->m_Shortcut, pLResult, sizeof(SHORTCUT) ); g_WndMng.m_pWndTradeGold->m_dwGold = itemElem->m_nItemNum; g_WndMng.m_pWndTradeGold->m_nIdWndTo = APP_GUILD_BANK; g_WndMng.m_pWndTradeGold->m_pWndBase = this; g_WndMng.m_pWndTradeGold->Initialize( NULL, APP_TRADE_GOLD ); g_WndMng.m_pWndTradeGold->MoveParentCenter(); CWndStatic* pStatic = (CWndStatic *)g_WndMng.m_pWndTradeGold->GetDlgItem( WIDC_STATIC ); CWndStatic* pStaticCount = (CWndStatic *)g_WndMng.m_pWndTradeGold->GetDlgItem( WIDC_CONTROL1 ); CString strMain = prj.GetText(TID_GAME_MOVECOUNT);//"몇개를 이동하시겠습니까?"; CString strCount = prj.GetText(TID_GAME_NUMCOUNT);// " 갯수 : "; pStatic->m_strTitle = strMain; pStaticCount->m_strTitle = strCount; } else { g_DPlay.SendPutItemGuildBank( (BYTE)( lpShortcut->m_dwId ), 1, 1 ); } } } } } break; case WIN_DBLCLK: { } break; case WNM_CLICKED: { switch( nID ) { case WTBID_CLOSE: // 종료 { g_DPlay.SendCloseGuildBankWnd(); } break; } } break; } } else { switch( nID ) { case WTBID_CLOSE: { g_DPlay.SendCloseGuildBankWnd(); } break; case WIDC_BUTTON1: // 길드 지원(공헌) SAFE_DELETE(m_pwndGuildMerit); // TID_GAME_GUILDNOTHINGNAME { CGuild *pGuild = g_pPlayer->GetGuild(); if( pGuild ) { if( pGuild->m_szGuild[0] == '\0' ) { // "길드명칭이 없어 길드에 지원을 할 수 없습니다. 길드마스터는 길드명칭을 정해주세요." g_WndMng.OpenMessageBox( prj.GetText( TID_GAME_GUILDNOTHINGNAME ), MB_OK, this ); } else { m_pwndGuildMerit = new CWndGuildMerit; m_pwndGuildMerit->Initialize( this ); } } } break; case WIDC_BUTTON2: // 망토제작. { CGuild *pGuild = g_pPlayer->GetGuild(); if( pGuild ) { if( pGuild->m_nLevel < 4 ) // 4레벨 이하는 망토못만듬. { g_WndMng.OpenMessageBox( prj.GetText( TID_GAME_GUILDNOTLEVEL ), MB_OK, this ); break; } g_DPlay.SendCreateGuildCloak(); } } break; #if __VER < 8 // #ifndef __GUILDCOMBAT_85 case WIDC_BUTTON3: { CGuild *pGuild = g_pPlayer->GetGuild(); // 길드가 존재하고 우승한 길드이면서...그길드의 맴버이면...망토 생성가능 if( pGuild && g_GuildCombatMng.m_uWinGuildId == pGuild->GetGuildId() && pGuild->IsMember( g_pPlayer->m_idPlayer ) ) { CWndGuildBankMessageBox* pBox = new CWndGuildBankMessageBox; g_WndMng.OpenCustomBox( "", pBox ); CString str; str.Format( prj.GetText( TID_GAME_GUILDCOMBAT_MAKE_CLOAK ) ); //"수정요망!! 용망토를 생성하시겠습니까? 1,000페냐의 제작 수수료가 부과됩니다." ); pBox->SetValue( str ); } } break; #endif // __VER < 8 #if __VER >= 11 // __GUILD_BANK_LOG case WIDC_LOG: { CGuild* pGuild = g_pPlayer->GetGuild(); CGuildMember* pGuildMemberl; pGuildMemberl = pGuild->GetMember( g_pPlayer->m_idPlayer ); if( pGuildMemberl && (pGuildMemberl->m_nMemberLv == GUD_MASTER || pGuildMemberl->m_nMemberLv == GUD_KINGPIN) ) { CWndGuildBankLog* pwndbanklog = (CWndGuildBankLog*)GetWndBase(APP_GUILD_BANK_LOG); if(pwndbanklog == NULL) { g_WndMng.m_pWndGuildBankLog = new CWndGuildBankLog(); g_WndMng.m_pWndGuildBankLog->Initialize(this); } else SAFE_DELETE(g_WndMng.m_pWndGuildBankLog); } else g_WndMng.PutString( prj.GetText( TID_GAME_CANNT_USE_GLOG ), NULL, prj.GetTextColor( TID_GAME_CANNT_USE_GLOG ) ); } break; #endif //__GUILD_BANK_LOG } } return CWndNeuz::OnChildNotify( message, nID, pLResult ); }
void CWndVendor::OnInitialUpdate() { CWndNeuz::OnInitialUpdate(); #if __VER >= 8 // __S8_VENDOR_REVISION SetTitle( prj.GetText( TID_GAME_VENDOR_TITLE ) ); m_wndctrlVendor.Create( WLVS_ICON | WBS_NODRAWFRAME, CRect( 5, 60, 440, 460 ), this, 100 ); #else // __VER >= 8 // __S8_VENDOR_REVISION m_wndctrlVendor.Create( WLVS_ICON | WBS_NODRAWFRAME, CRect( 18, 80, 220, 250 ), this, 100 ); #endif // __VER >= 8 // __S8_VENDOR_REVISION SetVendor( g_pPlayer ); if( g_pPlayer ) { if( g_pPlayer->IsMode( COMMUNITY_MODE ) ) { Destroy(); } } #if __VER >= 11 // __SYS_POCKET if(GetWndBase( APP_BAG_EX )) GetWndBase( APP_BAG_EX )->Destroy(); #endif if( g_WndMng.m_pWndTrade || g_WndMng.m_pWndShop || g_WndMng.m_pWndBank || g_WndMng.m_pWndGuildBank) { Destroy(); return; } #ifdef __S_SERVER_UNIFY if( g_WndMng.m_bAllAction == FALSE ) { Destroy(); return; } #endif // __S_SERVER_UNIFY #if __VER >= 8 // __S8_PK if( g_pPlayer->IsChaotic() ) { CHAO_PROPENSITY Propensity = prj.GetPropensityPenalty( g_pPlayer->GetPKPropensity() ); if( !Propensity.nVendor ) { g_WndMng.PutString( prj.GetText( TID_GAME_CHAOTIC_NOT_VENDOR ) ); Destroy(); return; } } #endif // __VER >= 8 // __S8_PK if( !m_pVendor->IsActiveMover() ) { CWndButton* pButton = (CWndButton*)GetDlgItem( WIDC_OK ); pButton->SetVisible( FALSE ); pButton = (CWndButton*)GetDlgItem( WIDC_CANCEL ); pButton->SetVisible( FALSE ); } ReloadItemList(); CWndInventory* pWndInventory = (CWndInventory*)g_WndMng.CreateApplet( APP_INVENTORY ); CRect rcInventory = pWndInventory->GetWindowRect( TRUE ); CRect rcVendor = GetWindowRect( TRUE ); CPoint ptInventory = rcInventory.TopLeft(); CPoint point; if( ptInventory.x > m_pWndRoot->GetWndRect().Width() / 2 ) point = ptInventory - CPoint( rcVendor.Width(), 0 ); else point = ptInventory + CPoint( rcInventory.Width(), 0 ); Move( point ); }
// // 오브젝트를 움직이는데 필요한 메시지를 발생 // int CWndWorld::ControlGround( DWORD dwMessage, CPoint point ) { bool fCastCancel = false; int nMsg = 0; BOOL bTempKey, bSit; // ,bCombatKey, bFlyKey BOOL bUp, bDown, bLeft, bRight, bSpace, bBoard, bLForward = FALSE, bRForward = FALSE; BOOL bWalk; static BOOL s_bWalk2 = 0; CMover* pMover = CMover::GetActiveMover(); CWndChat* pWndChat = (CWndChat*) g_WndMng.GetApplet( APP_COMMUNICATION_CHAT ); BOOL bWhisper = g_bKeyTable['R']; if( pWndChat && bWhisper ) { if( 0 < strlen( g_Neuz.m_szWhisperName ) ) { CString strWhisper; strWhisper.Format( "/whisper %s ", g_Neuz.m_szWhisperName ); pWndChat->SetFocus(); CWndEditChat* pWndEdit = &pWndChat->m_wndEdit; pWndEdit->SetString( strWhisper ); pWndEdit->SetFocus(); g_bKeyTable['R'] = FALSE; } } // 전진/후진/스톱 CWndBase* pWndBaseFocus = (CWndBase*) g_WndMng.GetFocusWnd(); if( g_Neuz.m_bActiveNeuz == FALSE || ( pWndChat && pWndBaseFocus && pWndBaseFocus == pWndChat ) ) { g_bKeyTable[g_Neuz.Key.chUp] = FALSE;// | m_bRButtonDown; g_bKeyTable[g_Neuz.Key.chLeft] = FALSE; g_bKeyTable['S'] = FALSE; g_bKeyTable['D'] = FALSE; g_bKeyTable['Q'] = FALSE; g_bKeyTable['E'] = FALSE; } bUp = g_bKeyTable[g_Neuz.Key.chUp]; // | m_bRButtonDown; bDown = g_bKeyTable['S']; #ifdef __BS_ADJUST_SYNC //gmpbigsun : 키보드 조작중에는 마우스이동 불가 if( bUp || bDown ) m_bLButtonDown = FALSE; #endif if( bDown ) { g_WndMng.m_bAutoRun = FALSE; } if( bUp ) { m_timerAutoRunPush.Reset(); if( m_nDubleUp == 2 && m_timerAutoRun.TimeOut() == FALSE ) { m_nDubleUp = 3; g_WndMng.m_bAutoRun = TRUE; m_timerAutoRun.Reset(); m_timerAutoRunBlock.Reset(); } else { m_nDubleUp = 1; m_timerAutoRun.Reset(); } if( m_timerAutoRunBlock.TimeOut() ) g_WndMng.m_bAutoRun = FALSE; } else { if( m_timerAutoRunPush.TimeOut() == FALSE ) { if( m_nDubleUp == 1 ) m_nDubleUp = 2; } else { m_nDubleUp = 0; } } if( g_WndMng.m_bAutoRun ) bUp = TRUE; // 좌/우 회전 bLeft = g_bKeyTable[g_Neuz.Key.chLeft]; bRight = g_bKeyTable['D']; bSpace = g_bKeyTable[ VK_SPACE ]; // bCombatKey = g_bKeyTable['C']; // g_bKeyTable['C'] = 0; bBoard = g_bKeyTable['B']; bSit = g_bKeyTable['V']; g_bKeyTable['V'] = 0; /* if( g_Option.m_nInterface == 2 ) { bLForward = g_bKeyTable['Q']; bRForward = g_bKeyTable['E']; if( m_bLButtonDown ) { if( bLeft ) { bLeft = FALSE; bLForward = TRUE; } if( bRight ) { bRight = FALSE; bRForward = TRUE; } } } */ CWorld* pWorld = g_WorldMng.Get(); CRect rect = GetClientRect(); D3DXVECTOR3 vRayEnd; CObj* pFocusObj = pWorld->GetObjFocus(); CActionMover *pAct = pMover->m_pActMover; pAct->m_dwCtrlMsg = 0; if( m_bLButtonDown ) pAct->m_dwCtrlMsg |= CTRLMSG_LDOWN; #if __VER >= 12 // __ITEMCREATEMON_S0602 D3DXVECTOR3 vec3Tri[3]; pWorld->ClientPointToVector( vec3Tri, rect, point, &pWorld->m_matProj, &g_Neuz.m_camera.m_matView, &vRayEnd, TRUE ); g_Neuz.m_vCursorPos = vRayEnd; if( g_Neuz.m_pCreateMonItem ) { if( bUp || bDown || bLeft || bRight || bSpace || m_bLButtonDown ) { BOOL bSendCM = TRUE; if( m_bLButtonDown ) { D3DXVECTOR3 vDist2 = g_pPlayer->GetPos() - g_Neuz.m_vCursorPos; float fDist = D3DXVec3Length( &vDist2 ); // 두좌표간의 거리 if( 15.f < fDist ) { g_WndMng.PutString( prj.GetText( TID_GAME_CREATEMON_F_15 ), NULL, prj.GetTextColor( TID_GAME_CREATEMON_F_15 ) ); bSendCM = FALSE; } if( bSendCM ) { int nAttr = g_pPlayer->GetWorld()->GetHeightAttribute( g_Neuz.m_vCursorPos.x, g_Neuz.m_vCursorPos.z ); // 이동할 위치의 속성 읽음. if( nAttr == HATTR_NOWALK || nAttr == HATTR_NOMOVE || g_pPlayer->IsRegionAttr( RA_SAFETY ) || g_pPlayer->GetWorld()->GetID() == WI_WORLD_GUILDWAR ) // 못 움직이는 곳이거나 안전지역이면 Pass { g_WndMng.PutString( prj.GetText( TID_GAME_CREATEMON_F_AREA ), NULL, prj.GetTextColor( TID_GAME_CREATEMON_F_AREA ) ); bSendCM = FALSE; } else if( g_pPlayer->GetWorld()->GetID() != WI_WORLD_MADRIGAL ) { g_WndMng.PutString( prj.GetText( TID_GAME_CREATEMON_F_AREA ), NULL, prj.GetTextColor( TID_GAME_CREATEMON_F_AREA ) ); bSendCM = FALSE; } if( bSendCM ) { g_DPlay.SendCreateMonster( MAKELONG( ITYPE_ITEM, g_Neuz.m_pCreateMonItem->m_dwObjId ), g_Neuz.m_vCursorPos ); } } m_bLButtonDown = FALSE; } if( bSendCM ) g_Neuz.m_pCreateMonItem = NULL; } } #endif // __ITEMCREATEMON_S0602 //TODO:ata3k님 꼭 고쳐주세요. 왜 그런지 아무도 몰라! // 이동금지 상태가 아닐때만 클릭으로 이동할수 있다. #ifdef __Y_INTERFACE_VER3 bool *bpButton; if( g_Option.m_nInterface == 2 ) bpButton = &m_bLButtonUp; else bpButton = &m_bLButtonDown; if( *bpButton ) #else //__Y_INTERFACE_VER3 if( m_bLButtonDown ) #endif //__Y_INTERFACE_VER3 { #ifdef __Y_INTERFACE_VER3 if( g_Option.m_nInterface == 2 ) { *bpButton = FALSE; if( m_timerLButtonDown.GetLeftTime() > 200 ) return nMsg; } #endif //__Y_INTERFACE_VER3 D3DXVECTOR3 vec3Tri[3]; if( pWorld->ClientPointToVector( vec3Tri, rect, point, &pWorld->m_matProj, &g_Neuz.m_camera.m_matView, &vRayEnd, TRUE ) ) { // 이동 포인트를 얻어 목표 세팅 if( m_bFreeMove ) { // if( m_bLButtonDown ) // 이동금지 상태가 아닐때만 클릭으로 이동할수 있다. { { if( m_pWndGuideSystem && m_pWndGuideSystem->IsVisible()) #if __VER >= 12 // __MOD_TUTORIAL m_pWndGuideSystem->m_Condition.bIsClickOnLand = true; #else m_pWndGuideSystem->SendGuideMessage(GUIDE_EVENT_MOVE); #endif #ifdef __IAOBJ0622 if( GetLastPickObj() && GetLastPickObj()->GetType() == OT_SHIP ) pMover->SetDestPos( (CShip *)GetLastPickObj(), vRayEnd ); else pMover->SetDestPos( vRayEnd ); #else pMover->SetDestPos( vRayEnd ); #endif pMover->m_nCorr = -1; #ifndef __J0823 m_bFreeMove = FALSE; g_DPlay.SendSnapshot( TRUE ); fCastCancel = true; if( g_pMoveMark && g_pMoveMark->m_pSfxObj ) g_pMoveMark->m_pSfxObj->m_nCurFrame = 180; CSfx *pObj = CreateSfx(g_Neuz.m_pd3dDevice,XI_GEN_MOVEMARK01,vRayEnd); D3DXVECTOR3 vVector1 = vec3Tri[2] - vec3Tri[0]; D3DXVECTOR3 vVector2 = vec3Tri[1] - vec3Tri[0]; D3DXVECTOR3 vNormal; D3DXVec3Cross( &vNormal, &vVector1, &vVector2); D3DXVec3Normalize( &vNormal, &vNormal ); D3DXVECTOR3 v3Up = D3DXVECTOR3( 0.0f, -1.0f, 0.0f ); D3DXVECTOR3 v3Cross; FLOAT fDot; FLOAT fTheta; D3DXVec3Cross( &v3Cross, &v3Up, &vNormal ); fDot = D3DXVec3Dot( &v3Up, &vNormal ); fTheta = acos( fDot ); D3DXQUATERNION qDirMap; D3DXQuaternionRotationAxis( &qDirMap, &v3Cross, fTheta ); D3DXVECTOR3 vYPW; QuaternionRotationToYPW( qDirMap, vYPW ); pObj->m_pSfxObj->m_vRotate.x = D3DXToDegree(vYPW.x); pObj->m_pSfxObj->m_vRotate.y = D3DXToDegree(vYPW.y); pObj->m_pSfxObj->m_vRotate.z = D3DXToDegree(vYPW.z); #endif // __J0823 m_objidTracking = NULL_ID; } } } } } //if( !pMover->IsEmptyDestPos() || !pMover->IsEmptyDestObj() ) // return nMsg; #ifdef __Y_INTERFACE_VER3 if( bUp || bDown || bLeft || bRight || bSpace || bLForward || bRForward ) // 이동 키조작이 들어가면 자동공격 멈춤. #else //__Y_INTERFACE_VER3 if( bUp || bDown || bLeft || bRight || bSpace ) // 이동 키조작이 들어가면 자동공격 멈춤. #endif //__Y_INTERFACE_VER3 { if( bUp || bDown ) #if __VER >= 12 // __MOD_TUTORIAL { CWndGuideSystem* pWndGuide = NULL; pWndGuide = (CWndGuideSystem*)GetWndBase( APP_GUIDE ); if(pWndGuide && pWndGuide->IsVisible()) pWndGuide->m_Condition.bIsKeyMove = true; } #else m_pWndGuideSystem->SendGuideMessage(GUIDE_EVENT_KEY_MOVE); #endif m_bAutoAttack = FALSE; g_pPlayer->ClearCmd(); if( !bSpace ) m_objidTracking = NULL_ID; } if( m_objidTracking != NULL_ID ) { CMover* pObjTracking = prj.GetMover( m_objidTracking ); if( pObjTracking ) { D3DXVECTOR3 vDis = pMover->GetPos() - pObjTracking->GetPos(); if( D3DXVec3LengthSq( &vDis ) > 16 ) pMover->SetDestObj( m_objidTracking ); } else m_objidTracking = NULL_ID; } bool fMoved = false; bool fBehavior = false; if( bUp ) { if( pMover->SendActMsg( OBJMSG_FORWARD ) == 1 ) { fMoved = true; fCastCancel = true; } } else if( bDown ) { if( pMover->SendActMsg( OBJMSG_BACKWARD ) == 1 ) { fMoved = true; fCastCancel = true; } } #ifdef __Y_INTERFACE_VER3 else if( bLForward ) { if( pMover->SendActMsg( OBJMSG_LFORWARD ) == 1 ) { fMoved = true; fCastCancel = true; } } else if( bRForward ) { if( pMover->SendActMsg( OBJMSG_RFORWARD ) == 1 ) { fMoved = true; fCastCancel = true; } } #endif //__Y_INTERFACE_VER3 else // if( (bUp == FALSE && s_bUped == TRUE) || (bDown == FALSE && s_bDowned == TRUE) ) // 키를 뗀 순간에만 처리해보자.. if( bUp == FALSE || bDown == FALSE ) { if( pMover->IsEmptyDest() ) { if( pMover->m_pActMover->IsActJump() == FALSE && (pMover->m_pActMover->IsStateFlag( OBJSTAF_SIT ) ) == 0 ) // 앉아있을땐 실행하면 안된다. { if( pMover->SendActMsg( OBJMSG_STAND ) == 1 ) { fMoved = true; // TRACE( "PlayerMoved, " ); } } } } // s_bUped = bUp; // s_bDowned = bDown; if( bLeft ) { if( pMover->SendActMsg( OBJMSG_LTURN ) == 1 ) { fMoved = true; } } else if( bRight ) { if( pMover->SendActMsg( OBJMSG_RTURN ) == 1 ) { fMoved = true; } } else { if( pMover->SendActMsg( OBJMSG_STOP_TURN ) == 1 ) { fMoved = true; // fBehavior = true; } } // jump if( bSpace ) { #if __VER < 12 // __MOD_TUTORIAL if( m_pWndGuideSystem ) m_pWndGuideSystem->SendGuideMessage(GUIDE_EVENT_KEY_JUMP); #endif if( pMover->SendActMsg( OBJMSG_JUMP ) == 1 ) { fBehavior = true; fCastCancel = true; } } if( m_bLButtonDown == TRUE && m_bRButtonDown == TRUE ) { if( m_timerLButtonDown.GetLeftTime() < 500 && m_timerRButtonDown.GetLeftTime() < 500 ) { if( g_pPlayer->SendActMsg( OBJMSG_JUMP ) == 1 ) { fBehavior = true; fCastCancel = true; } } } #ifdef __Y_INTERFACE_VER3 if( g_Option.m_nInterface == 2 ) { if( g_bKeyTable[VK_DIVIDE] || g_bKeyTable[191] ) { bWalk = TRUE; } else { bWalk = FALSE; } } else { bWalk = g_bKeyTable[g_Neuz.Key.chWalk]; } #else //__Y_INTERFACE_VER3 bWalk = g_bKeyTable[g_Neuz.Key.chWalk]; #endif //__Y_INTERFACE_VER3 if( bWalk && !s_bWalk2 ) // 걷기 모드 토글. { if( pMover->m_pActMover->IsStateFlag( OBJSTAF_WALK ) ) { if( pMover->SendActMsg( OBJMSG_MODE_RUN ) == 1 ) { g_WndMng.PutString( prj.GetText( TID_GAME_RUN ), NULL, prj.GetTextColor( TID_GAME_RUN ) , CHATSTY_SYSTEM_CLIENT ); fBehavior = true; } } else { #if __VER < 12 // __MOD_TUTORIAL if(m_pWndGuideSystem) m_pWndGuideSystem->SendGuideMessage(GUIDE_EVENT_KEY_RUN); #endif if( pMover->SendActMsg( OBJMSG_MODE_WALK ) == 1 ) { g_WndMng.PutString( prj.GetText( TID_GAME_WALK ), NULL, prj.GetTextColor( TID_GAME_WALK ) , CHATSTY_SYSTEM_CLIENT ); fBehavior = true; } } } s_bWalk2 = bWalk; if( fMoved || fBehavior ) { g_pPlayer->ClearDest(); #ifdef __J0823 g_DPlay.ClearPlayerDestPos(); #endif // __J0823 } if( fMoved ) g_DPlay.SendPlayerMoved(); if( fBehavior ) g_DPlay.SendPlayerBehavior(); if( g_pPlayer->IsStateMode( STATE_BASEMOTION_MODE ) && fCastCancel ) // 캐스트 취소 { g_DPlay.SendStateModeCancel( STATE_BASEMOTION_MODE, STATEMODE_BASEMOTION_CANCEL ); } // 운영자가 쓰는 키. 서버로부터 좌표받아오기. if( bTempKey = g_bKeyTable[ '8' ] ) { if( !m_bTemp3ed ) { pMover->SendActMsg( OBJMSG_TEMP2 ); // __bTestLOD ^= 1; } } m_bTemp3ed = bTempKey; //----------- 스킬사용. /* static BOOL s_bShift2, s_bKeyC2; BOOL bShift, bKeyC; if( g_Option.m_nInterface == 1 ) // 신버전 인터페이스 방식은 X 가 스킬사용이다. { bShift = g_bKeyTable[ VK_SHIFT ]; bKeyC = g_bKeyTable[ 'C' ]; if( bKeyC ) { int a = 0; } if( (bShift && !s_bShift2) || (bKeyC && !s_bKeyC2) ) { CObj* pTargetObj = CObj::m_pObjHighlight; // 커서를 대고 있던 오브젝트가 하이라이트 오브젝이다. if( pTargetObj ) // 커서를 대고 있던 오브젝트가 있으면 { pWorld->SetObjFocus( pTargetObj ); // 그놈을 셀렉트 하는 동시에. CMover* pMover = (CMover*)pTargetObj; if( pMover->GetType() == OT_MOVER ) m_dwNextSkill = NEXTSKILL_ACTIONSLOT; // 스킬 사용 예약. } else m_dwNextSkill = NEXTSKILL_ACTIONSLOT; // 스킬 사용 예약. } s_bShift2 = bShift; s_bKeyC2 = bKeyC; } */ //------------ 비공정 타기 if( bBoard ) { if( !s_bBoarded ) // 플레이어가 비공정에 올라타있는 상태에서. 탑승키를 누르면. { if( g_pShip == NULL ) { if( g_pPlayer->GetIAObjLink() && g_pPlayer->GetIAObjLink()->GetType() == OT_SHIP && g_pPlayer->GetIAObjLink()->GetIndex() == 3 ) { CShip *pShip = (CShip *)g_pPlayer->GetIAObjLink(); if( pShip->GetMover() == NULL ) // 쥔장이 없는 배일때. { pShip->SetMover( g_pPlayer ); // 쥔장을 g_pPlayer로 설정. g_pShip = pShip; } } } else // 이미 배를 조종하고 있을때 { g_pShip->SetMover( NULL ); g_pShip = NULL; } } } s_bBoarded = bBoard; #ifdef _DEBUG // 디버깅용 키 if( bTempKey = g_bKeyTable[ VK_F2 ] ) { if( !s_bTempKeyed ) { // pMover->SendActMsg( OBJMSG_TEMP ); // g_Option.m_nObjectDetail ++; // if( g_Option.m_nObjectDetail > 2 ) g_Option.m_nObjectDetail = 0; } } s_bTempKeyed = bTempKey; if( bTempKey = g_bKeyTable[ 'F' ] ) { if( !m_bTemp2ed ) { pMover->SendActMsg( OBJMSG_TEMP3 ); } } m_bTemp2ed = bTempKey; #endif return nMsg; }
BOOL CWndOptionGame::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ) { CWndButton* pWndHelp = (CWndButton*)GetDlgItem( WIDC_CHECK1 ); CWndButton* pWndCheck = (CWndButton*)GetDlgItem( WIDC_CHECK2 ); CWndButton* pWndAlpha = (CWndButton*)GetDlgItem( WIDC_CHECK3 ); #if __VER >= 15 // __IMPROVE_SYSTEM_VER15 CWndButton* pWndCheckBattleBGM = (CWndButton*)GetDlgItem( WIDC_CHECK_BATTLE_BGM ); #endif // __IMPROVE_SYSTEM_VER15 #ifdef __GAME_GRADE_SYSTEM CWndButton* pWndCheckGameGrade = (CWndButton*)GetDlgItem( WIDC_CHECK_GAME_GRADE ); #endif // __GAME_GRADE_SYSTEM switch( nID ) { case WIDC_RADIO1: g_Option.m_bTrade = 1; break; case WIDC_RADIO2: g_Option.m_bTrade = 0; break; case WIDC_RADIO3: g_Option.m_bSay = 1; break; case WIDC_RADIO4: g_Option.m_bSay = 0; break; case WIDC_RADIO5: g_Option.m_bParty = 1; break; case WIDC_RADIO6: g_Option.m_bParty = 0; break; #if __VER >= 12 // __UPDATE_OPT case WIDC_CHECK1: // 초보자 도움말 옵션 if( pWndHelp->GetCheck() ) g_Option.m_nInstantHelp = TRUE; else g_Option.m_nInstantHelp = FALSE; break; case WIDC_CHECK2: if(pWndCheck->GetCheck()) *g_Option.m_pGuide = 0; else { CWndGuideSystem* pWndGuide = NULL; pWndGuide = (CWndGuideSystem*)GetWndBase( APP_GUIDE ); //pWndGuide->SetVisible(FALSE); pWndGuide->m_wndGuideText->SetVisible(FALSE); *g_Option.m_pGuide = 2; } break; case WIDC_CHECK3: // 윈도 반투명 옵션 if( pWndAlpha->GetCheck() ) CWndBase::m_nAlpha = g_Option.m_nWindowAlpha = 128; else CWndBase::m_nAlpha = g_Option.m_nWindowAlpha = 255; break; #if __VER >= 15 // __IMPROVE_SYSTEM_VER15 case WIDC_CHECK_BATTLE_BGM: // 전투 음악 { g_Option.m_bBattleBGM = ( pWndCheckBattleBGM->GetCheck() == TRUE ) ? TRUE: FALSE; break; } #endif // __IMPROVE_SYSTEM_VER15 #ifdef __GAME_GRADE_SYSTEM case WIDC_CHECK_GAME_GRADE: // 게임물 등급 표시 { BOOL bGameGradeChecked = pWndCheckGameGrade->GetCheck(); g_Option.m_bGameGradeRendering = ( bGameGradeChecked == TRUE ) ? TRUE: FALSE; if( bGameGradeChecked == TRUE ) { g_Neuz.m_dwTimeGameGradeMarkRendering = g_tmCurrent + SEC( CNeuzApp::GAME_GRADE_MARK_RENDERING_INTERVAL_SECOND ); } break; } #endif // __GAME_GRADE_SYSTEM case WIDC_RADIO7: g_Option.m_bMessengerJoin = 1; break; case WIDC_RADIO8: g_Option.m_bMessengerJoin = 0; #else case WIDC_SHOUT_ON: g_Option.m_bShout = 1; break; case WIDC_SHOUT_OFF: g_Option.m_bShout = 0; break; case WIDC_MESSENGERJOIN_ON: g_Option.m_bMessengerJoin = 1; break; case WIDC_MESSENGERJOIN_OFF: g_Option.m_bMessengerJoin = 0; break; #endif case WIDC_MESSENGER_ON: g_Option.m_bMessenger = 1; break; case WIDC_MESSENGER_OFF: g_Option.m_bMessenger = 0; break; #if __VER < 9 // __CSC_VER9_REMOVE_PKSETTING case WIDC_AUTOPK_ON: g_DPlay.SendChangePKPVPMode( FREEPK_MODE, 0 ); break; case WIDC_AUTOPK_OFF: g_DPlay.SendChangePKPVPMode( FREEPK_MODE, 1 ); break; #endif //__CSC_VER9_REMOVE_PKSETTING case WIDC_ACCEPTPVP_ON: g_DPlay.SendChangePKPVPMode( PVPCONFIRM_MODE, 3 ); break; case WIDC_ACCEPTPVP_OFF: g_DPlay.SendChangePKPVPMode( PVPCONFIRM_MODE, 2 ); break; case WIDC_RADIO12: g_DPlay.SendQueryEquipSetting(TRUE); break; case WIDC_RADIO13: g_DPlay.SendQueryEquipSetting(FALSE); break; case WIDC_RADIO14: g_Option.m_bAutoAttack = 1; break; case WIDC_RADIO15: g_Option.m_bAutoAttack = 0; break; } return CWndNeuz::OnChildNotify( message, nID, pLResult ); }
void CWndBank::OnInitialUpdate() { CWndNeuz::OnInitialUpdate(); #if __VER >= 11 // __SYS_POCKET if(GetWndBase( APP_BAG_EX )) GetWndBase( APP_BAG_EX )->Destroy(); #endif if( g_WndMng.m_pWndTrade || g_WndMng.m_pWndShop || g_WndMng.m_pWndGuildBank || g_WndMng.GetWndVendorBase() ) { Destroy(); return; } CWndTabCtrl* pTabCtrl = (CWndTabCtrl*) GetDlgItem( WIDC_BANK_0 ); m_wndItemCtrl[0].Create( WLVS_ICON, CRect( 0, 0, 250, 250 ), pTabCtrl, 11 ); m_wndItemCtrl[0].InitItem( &g_pPlayer->m_Bank[0], APP_COMMON_BANK ); CWndTabCtrl* pTabCtrl1 = (CWndTabCtrl*) GetDlgItem( WIDC_BANK_1 ); m_wndItemCtrl[1].Create( WLVS_ICON, CRect( 0, 0, 250, 250 ), pTabCtrl1, 11 ); m_wndItemCtrl[1].InitItem( &g_pPlayer->m_Bank[1], APP_COMMON_BANK ); CWndTabCtrl* pTabCtrl2 = (CWndTabCtrl*) GetDlgItem( WIDC_BANK_3 ); m_wndItemCtrl[2].Create( WLVS_ICON, CRect( 0, 0, 250, 250 ), pTabCtrl2, 11 ); m_wndItemCtrl[2].InitItem( &g_pPlayer->m_Bank[2], APP_COMMON_BANK ); WTCITEM tabTabItem; tabTabItem.mask = WTCIF_TEXT | WTCIF_PARAM; tabTabItem.pszText = prj.GetText(TID_GAME_ITEM);//"아이템"; tabTabItem.pWndBase = &m_wndItemCtrl[0]; pTabCtrl->InsertItem( 0, &tabTabItem ); tabTabItem.pWndBase = &m_wndItemCtrl[1]; pTabCtrl1->InsertItem( 0, &tabTabItem ); tabTabItem.pWndBase = &m_wndItemCtrl[2]; pTabCtrl2->InsertItem( 0, &tabTabItem ); LPWNDCTRL lpWndCtrl = GetWndCtrl( WIDC_BANKGO_0 ); m_wndGold[0].Create( "g", WBS_NODRAWFRAME, lpWndCtrl->rect, this, WIDC_BANKGO_0 ); m_wndGold[0].AddWndStyle( WBS_NODRAWFRAME ); lpWndCtrl = GetWndCtrl( WIDC_BANKGO_1 ); m_wndGold[1].Create( "g", WBS_NODRAWFRAME, lpWndCtrl->rect, this, WIDC_BANKGO_1 ); m_wndGold[1].AddWndStyle( WBS_NODRAWFRAME ); lpWndCtrl = GetWndCtrl( WIDC_BANKGO_2 ); m_wndGold[2].Create( "g", WBS_NODRAWFRAME, lpWndCtrl->rect, this, WIDC_BANKGO_2 ); m_wndGold[2].AddWndStyle( WBS_NODRAWFRAME ); pCost[0] = (CWndStatic*) GetDlgItem( WIDC_BANKGOLD_0 ); pCost[1] = (CWndStatic*) GetDlgItem( WIDC_BANKGOLD_1 ); pCost[2] = (CWndStatic*) GetDlgItem( WIDC_BANKGOLD_2 ); ReSetBank(); RectItemCtrl[0] = pTabCtrl->m_rectClient + CRect( -3, 2, -18, -20 ); RectItemCtrl[1] = pTabCtrl1->m_rectClient + CRect( -3, 2, -19, -20 ); RectItemCtrl[2] = pTabCtrl2->m_rectClient + CRect( -3, 2, -20, -20 ); CWndInventory* pWndInventory = (CWndInventory*)GetWndBase( APP_INVENTORY ); CRect rectInventory = pWndInventory->GetWindowRect( TRUE ); CPoint ptInventory = rectInventory.TopLeft(); CPoint ptMove; if( ptInventory.x > m_pWndRoot->GetWndRect().Width() / 2 ) ptMove = ptInventory - CPoint( (int)( rectInventory.Width() * 2.525 ), 0 ); else ptMove = ptInventory + CPoint( rectInventory.Width(), 0 ); Move( ptMove ); m_pTexture = m_textureMng.AddTexture( m_pApp->m_pd3dDevice, MakePath( DIR_THEME, "WndCommonBankNotUse.tga" ), 0xffff00ff ); }
void CWndGuideTextMgr::_SetGuideText(GUIDE_STRUCT guide) #endif { CWndText* pWndText; CWndButton* pWndButton; pWndText = (CWndText*)GetDlgItem( WIDC_TEXT1 ); pWndText->SetWndRect( m_Rect[0] ); pWndButton= (CWndButton*)GetDlgItem( WIDC_BACK ); pWndButton->SetWndRect( m_Rect[1] ); pWndButton= (CWndButton*)GetDlgItem( WIDC_NEXT ); pWndButton->SetWndRect( m_Rect[2] ); SetWndRect( m_Rect[3] ); #if __VER >= 12 // __MOD_TUTORIAL if(bIsNext) pWndButton->SetVisible(TRUE); else pWndButton->SetVisible(FALSE); #endif m_bVisible = TRUE; m_strHelpKey = guide.m_str; pWndText = (CWndText*)GetDlgItem( WIDC_TEXT1 ); #if __VER >= 12 // __MOD_TUTORIAL pWndText->SetString(""); pWndText->m_string.AddParsingString(LPCTSTR(guide.m_str)); pWndText->ResetString(); #else pWndText->SetString( (guide.m_nkey == CWndGuideSystem::KEY) ? prj.GetHelp( m_strHelpKey ) : guide.m_str ); #endif CRect rect = pWndText->GetWndRect(); pWndText->m_string.Align( m_pFont ); int nLine = pWndText->m_string.GetLineCount(); if( nLine < 10 ) { if( nLine < 8 ) nLine = 8; CRect clientrect = GetWndRect(); int ngap = rect.Height() - (nLine * 22); clientrect.top += ngap; SetWndRect(clientrect); rect.bottom -= ngap; pWndText->SetWndRect( rect ); CRect ptRect; #ifndef __MOD_TOTURIAL pWndButton= (CWndButton*)GetDlgItem( WIDC_BACK ); ptRect = pWndButton->GetWndRect(); ptRect.OffsetRect( 0, -ngap ); pWndButton->SetWndRect(ptRect); #endif pWndButton= (CWndButton*)GetDlgItem( WIDC_NEXT ); ptRect = pWndButton->GetWndRect(); ptRect.OffsetRect( 0, -ngap ); pWndButton->SetWndRect(ptRect); pWndText->m_wndScrollBar.m_bVisible = FALSE; } else { /* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT1 ); pWndText->SetWndRect( m_Rect[0] ); pWndButton= (CWndButton*)GetDlgItem( WIDC_BACK ); pWndButton->SetWndRect( m_Rect[1] ); pWndButton= (CWndButton*)GetDlgItem( WIDC_NEXT ); pWndButton->SetWndRect( m_Rect[2] ); SetWndRect( m_Rect[3] ); */ pWndText->m_wndScrollBar.m_bVisible = TRUE; pWndText->SetWndRect( rect ); } CWndGuideSystem* pWndGuide = (CWndGuideSystem*)GetWndBase( APP_GUIDE ); CRect rectGuide = pWndGuide->GetWindowRect( TRUE ); CPoint ptGuide = rectGuide.TopLeft(); CPoint ptMove; pWndGuide->m_bVisible = TRUE; CRect windowrect = GetWindowRect( TRUE ); if( ptGuide.x > windowrect.Width() ) ptMove = ptGuide - CPoint( windowrect.Width(), 0 ); else ptMove = ptGuide + CPoint( rectGuide.Width(), 0 ); ptMove.y = rectGuide.bottom; ptMove.y -= windowrect.Height(); if( ptMove.y < 0 ) ptMove.y = rectGuide.top; Move( ptMove ); }
void CWndPartyCtrl::OnDraw( C2DRender* p2DRender ) { if( NULL == g_pPlayer ) return; CPoint pt( 3, 3 ); // pt.y -= ( m_nFontHeight + 3 ) * m_wndScrollBar.GetScrollPos(); #if __VER < 11 // __CSC_VER11_4 CWndMessenger* pWndMessenger = (CWndMessenger*)GetWndBase( APP_MESSENGER_ ); #endif //__CSC_VER11_4 CWndWorld* pWndWorld = (CWndWorld*)g_WndMng.GetWndBase( APP_WORLD ); int nMax = g_Party.m_nSizeofMember; // 눈에 보이는 갯수가 페이지라인수 보다 크면 보이는 갯수를 페이지라인수로 조정 if( nMax - m_wndScrollBar.GetScrollPos() > m_wndScrollBar.GetScrollPage() ) nMax = m_wndScrollBar.GetScrollPage() + m_wndScrollBar.GetScrollPos(); if( nMax < m_wndScrollBar.GetScrollPos() ) nMax = 0; TEXTUREVERTEX2* pVertex = new TEXTUREVERTEX2[ 6 * 2 * nMax ]; TEXTUREVERTEX2* pVertices = pVertex; for( int i = m_wndScrollBar.GetScrollPos(); i < nMax; i++ ) { CMover* pObjMember = prj.GetUserByID( g_Party.m_aMember[i].m_uPlayerId ); CString strMember; #if __VER >= 11 // __SYS_PLAYER_DATA PlayerData* pPlayerData = CPlayerDataCenter::GetInstance()->GetPlayerData( g_Party.m_aMember[i].m_uPlayerId ); int nJob = pPlayerData->data.nJob; int nSex = pPlayerData->data.nSex; #else // __SYS_PLAYER_DATA int nJob = g_Party.m_aMember[ i ].m_nJob; int nSex = g_Party.m_aMember[ i ].m_nSex; #endif // __SYS_PLAYER_DATA // 상태에 따라 색 변경 DWORD dwColor = 0xff000000; if( IsValidObj(pObjMember) ) { if( pObjMember->GetHitPoint() == 0 ) dwColor = 0xffff0000; // 죽은놈 else if( ((FLOAT)pObjMember->GetHitPoint()) / ((FLOAT)pObjMember->GetMaxHitPoint()) < 0.1f ) dwColor = 0xffffff00; // HP 10% 이하인 놈 strMember.Format( "%d %s", pObjMember->GetLevel(), pObjMember->GetName() ); } else { dwColor = 0xff878787; // 디폴트는 주위에 없는 놈 if( g_Party.m_aMember[ i ].m_bRemove ) dwColor = 0xff000000; // 서버에 없는 놈 #if __VER >= 11 // __SYS_PLAYER_DATA strMember.Format( "?? %s", pPlayerData->szPlayer ); #else // __SYS_PLAYER_DATA strMember.Format( "?? %s", g_Party.m_aMember[ i ].m_szName ); #endif // __SYS_PLAYER_DATA } if( i == m_nCurSelect ) dwColor = 0xff6060ff; int x = 0, nWidth = m_rectClient.Width() - 10;// - 1; CRect rect( x, pt.y, x + nWidth, pt.y + m_nFontHeight ); rect.SetRect( x + 20, pt.y + 18, x + nWidth - 10, pt.y + 30 ); nWidth = pObjMember ? pObjMember->GetHitPointPercent( rect.Width() ) : 0; CRect rectTemp = rect; rectTemp.right = rectTemp.left + nWidth; if( rect.right < rectTemp.right ) rectTemp.right = rect.right; m_pTheme->RenderGauge( p2DRender, &rect, 0xffffffff, m_pVBGauge, &m_texGauEmptyNormal ); m_pTheme->RenderGauge( p2DRender, &rectTemp, 0x64ff0000, m_pVBGauge, &m_texGauFillNormal ); rect.SetRect( x + 3, pt.y, x + 3 + 32, pt.y + 6 + 32 ); p2DRender->TextOut( x + 20, pt.y + 3, strMember, dwColor ); if( MAX_EXPERT <= nJob ) { #if __VER >= 10 // __LEGEND if( MAX_PROFESSIONAL <= nJob && nJob < MAX_MASTER ) pWndWorld->m_texMsgIcon.MakeVertex( p2DRender, CPoint( 2, pt.y ), ( 70 + nJob - 16 ) + ( 8 * nSex ), &pVertices, 0xffffffff ); else if( MAX_MASTER <= nJob ) pWndWorld->m_texMsgIcon.MakeVertex( p2DRender, CPoint( 2, pt.y ), ( 70 + nJob - 24 ) + ( 8 * nSex ), &pVertices, 0xffffffff ); else #endif //__LEGEND pWndWorld->m_texMsgIcon.MakeVertex( p2DRender, CPoint( 2, pt.y ), ( 70 + nJob - 6 ) + ( 8 * nSex ), &pVertices, 0xffffffff ); } else { pWndWorld->m_texMsgIcon.MakeVertex( p2DRender, CPoint( 2, pt.y ), 12 + nJob + ( 6 * nSex ), &pVertices, 0xffffffff ); } pt.y += m_nFontHeight + 3; } pWndWorld->m_texMsgIcon.Render( m_pApp->m_pd3dDevice, pVertex, ( (int) pVertices - (int) pVertex ) / sizeof( TEXTUREVERTEX2 ) ); safe_delete_array( pVertex ); }