fork download
  1. #include "stdafx.h"
  2. #include "TItemUpDlg.h"
  3. #include "Resource.h"
  4. #include "TClientGame.h"
  5. #include "TColorPicker.h"
  6.  
  7. // ====================================================================================================
  8. CTItemUpDlg::CTItemUpDlg(TComponent* pParent, LP_FRAMEDESC pDesc)
  9. : CTItemSlotBaseDlg(pParent, pDesc, SLOT_COUNT)
  10. {
  11. m_pSlotCtrl[TARGET_SLOT] = static_cast<TImageList*>( FindKid(ID_CTRLINST_ITUP_SLOT1) );
  12. m_pSlotCtrl[SCROLL_SLOT] = static_cast<TImageList*>( FindKid(ID_CTRLINST_ITUP_SLOT2) );
  13.  
  14. m_pSlotImage[TARGET_SLOT] = FindKid( ID_CTRLINST_SLOT1_IMAGE );
  15. m_pSlotImage[SCROLL_SLOT] = FindKid( ID_CTRLINST_SLOT2_IMAGE );
  16.  
  17. m_pTitles[TARGET_SLOT] = FindKid( ID_CTRLINST_TEX1 )->m_strText;
  18. m_pTitles[SCROLL_SLOT] = FindKid( ID_CTRLINST_TEX2 )->m_strText;
  19. m_pTitles[SLOT_COUNT] = FindKid( ID_CTRLINST_ITUP_MAINTITLE )->m_strText;
  20.  
  21. m_pToolTips[TARGET_SLOT] = CTChart::LoadString( TSTR_UPGRADE_TARGET_TOOLTIP ); // SLOT1 mouse over
  22. m_pToolTips[SCROLL_SLOT] = CTChart::LoadString( TSTR_UPGRADE_SCROLL_TOOLTIP ); // SLOT2 mouse over
  23. m_pToolTips[SLOT_COUNT] = CTChart::LoadString( TSTR_UPGRADE_FRAME_TOOLTIP ); // FRAME mouse over
  24.  
  25. ClearItem();
  26. m_pOpenByCash = NULL;
  27. }
  28. // ----------------------------------------------------------------------------------------------------
  29. CTItemUpDlg::~CTItemUpDlg()
  30. {
  31. if( m_pOpenByCash )
  32. delete m_pOpenByCash;
  33. }
  34. // ====================================================================================================
  35. void CTItemUpDlg::SetOpenByCash( LPTOPENBYCASH pOpenByCash )
  36. {
  37. m_pOpenByCash = pOpenByCash;
  38. }
  39. // ====================================================================================================
  40. void CTItemUpDlg::ClearOpenByCash()
  41. {
  42. if( m_pOpenByCash )
  43. delete m_pOpenByCash;
  44. m_pOpenByCash = NULL;
  45. }
  46. // ====================================================================================================
  47. BOOL CTItemUpDlg::CheckItem(CTClientItem* pTargetItem, CTClientItem* pScrollItem) const
  48. {
  49. LPTITEM pTargetItemTemp = pTargetItem->GetTITEM();
  50. LPTITEM pScrollItemTemp = pScrollItem->GetTITEM();
  51.  
  52. if( !CanUpgrade(pScrollItemTemp, pTargetItemTemp) )
  53. return FALSE;
  54.  
  55. DWORD dwTargetQt = pTargetItem->GetQuality();
  56. switch( pScrollItemTemp->m_bKind )
  57. {
  58. case IK_UPGRADE:
  59. {
  60. if( (dwTargetQt&TITEM_QUALITY_MAGIC) || (dwTargetQt&TITEM_QUALITY_RARE) )
  61. {
  62. if( pTargetItem->HasMainMagicOption() )
  63. {
  64. m_strLastError = CTChart::LoadString( TSTR_ITEMUP_ERR_GRADEMAGIC);
  65. return FALSE;
  66. }
  67.  
  68. return TRUE;
  69. }
  70.  
  71. if( (dwTargetQt&TITEM_QUALITY_NORMAL) || (dwTargetQt&TITEM_QUALITY_GRADE) )
  72. return TRUE;
  73. else
  74. m_strLastError = CTChart::LoadString( TSTR_ITEMUP_ERR_CANNOTGRADE);
  75. }
  76. break;
  77.  
  78. case IK_DOWNGRADE:
  79. {
  80. if( dwTargetQt&TITEM_QUALITY_GRADE )
  81. {
  82. if( (dwTargetQt&TITEM_QUALITY_MAGIC) || (dwTargetQt&TITEM_QUALITY_RARE) )
  83. {
  84. if( pTargetItem->HasMainMagicOption() )
  85. {
  86. m_strLastError = CTChart::LoadString( TSTR_ITEMUP_ERR_GRADEMAGIC);
  87. return FALSE;
  88. }
  89. }
  90.  
  91. return TRUE;
  92. }
  93. else
  94. m_strLastError = CTChart::LoadString( TSTR_ITEMUP_ERR_DOWNGRADE);
  95. }
  96. break;
  97.  
  98. case IK_MAGICGRADE:
  99. {
  100. if( dwTargetQt&TITEM_QUALITY_NORMAL )
  101. return TRUE;
  102. else if( dwTargetQt&TITEM_QUALITY_GRADE )
  103. m_strLastError = CTChart::LoadString( TSTR_ITEMUP_ERR_MAGICGRADE);
  104. else if( dwTargetQt&TITEM_QUALITY_MAGIC )
  105. m_strLastError = CTChart::LoadString( TSTR_ITEMUP_ERR_MAGICMAGIC);
  106. else if( dwTargetQt&TITEM_QUALITY_RARE )
  107. m_strLastError = CTChart::LoadString( TSTR_ITEMUP_ERR_MAGICRARE);
  108. }
  109. break;
  110.  
  111. case IK_CLEARMAGIC:
  112. {
  113. if( !pTargetItem->GetTITEM()->m_bCanMagic )
  114. {
  115. m_strLastError = CTChart::LoadString( TSTR_ITEMUP_ERR_CANNOTREMOVEMAGIC );
  116. return FALSE;
  117. }
  118.  
  119. if( pTargetItem->GetTMAGIC()->size() > 0 )
  120. {
  121. return TRUE;
  122. }
  123.  
  124. m_strLastError = CTChart::LoadString( TSTR_ITEMUP_ERR_DONT_HAVE_MAGIC );
  125. return FALSE;
  126. }
  127. break;
  128.  
  129. case IK_RAREGRADE:
  130. {
  131. if( dwTargetQt&TITEM_QUALITY_GRADE )
  132. m_strLastError = CTChart::LoadString( TSTR_ITEMUP_ERR_MAGICGRADE);
  133. else if( dwTargetQt&TITEM_QUALITY_RARE )
  134. m_strLastError = CTChart::LoadString( TSTR_ITEMUP_ERR_RARE);
  135. else if( dwTargetQt&TITEM_QUALITY_MAGIC )
  136. return TRUE;
  137. else
  138. m_strLastError = CTChart::LoadString( TSTR_ITEMUP_ERR_MAGICRARE);
  139. }
  140.  
  141. break;
  142.  
  143. case IK_WRAP:
  144. {
  145. if( pTargetItem->GetWrap() )
  146. {
  147. m_strLastError = CTChart::LoadString( TSTR_ALREADY_WRAP );
  148. return FALSE;
  149. }
  150.  
  151. return TRUE;
  152. }
  153. break;
  154.  
  155. case IK_ELD:
  156. {
  157. if( pTargetItem->GetELD() < TMAX_ITEMLEVELDOWN )
  158. {
  159. return TRUE;
  160. }
  161. else
  162. {
  163. m_strLastError = CTChart::LoadString( TSTR_MAXELD );
  164. return FALSE;
  165. }
  166. }
  167. break;
  168.  
  169. case IK_CLEARREFINE: //Á¦·ĂĂʱâČ­
  170. {
  171. if( pTargetItem->GetRefineCurrent() > 0 )
  172. return TRUE;
  173. else
  174. {
  175. m_strLastError = CTChart::LoadString( TSTR_ITEMUP_ERR_NOREFINE );
  176. return FALSE;
  177. }
  178. }
  179. break;
  180.  
  181. case IK_CHGGRADEEFFECT: //°­Č­ŔĚĆĺĆ®şŻ°ć
  182. {
  183. if( 17 <= pTargetItem->GetGrade() && pTargetItem->GetGrade() <= 24 )
  184. return TRUE;
  185. else
  186. {
  187. m_strLastError = CTChart::LoadString( TSTR_ITEMUP_ERR_UNDER17 );
  188. return FALSE;
  189. }
  190. }
  191. break;
  192.  
  193. case IK_COLOR:
  194. {
  195. if( pTargetItemTemp->m_dwSlotID == 16 )
  196. return TRUE;
  197. }
  198. break;
  199.  
  200. default :
  201. {
  202. m_strLastError = CTChart::LoadString( TSTR_ITEMUP_ERR_INVALIDITEM);
  203. }
  204. break;
  205. }
  206.  
  207. return FALSE;
  208. }
  209. // ----------------------------------------------------------------------------------------------------
  210. BOOL CTItemUpDlg::CanUpgrade( LPTITEM pScrollItemTemp, LPTITEM pTargetItemTemp ) const
  211. {
  212. if( !pScrollItemTemp || !pTargetItemTemp )
  213. return FALSE;
  214.  
  215. switch( pScrollItemTemp->m_bKind )
  216. {
  217. case IK_UPGRADE :
  218. case IK_DOWNGRADE :
  219. if( !pTargetItemTemp->m_bCanGrade )
  220. {
  221. m_strLastError = CTChart::LoadString( TSTR_ITEMUP_ERR_CANNOTGRADE);
  222. return FALSE;
  223. }
  224. return TRUE;
  225.  
  226. case IK_MAGICGRADE :
  227. if( !pTargetItemTemp->m_bCanMagic )
  228. {
  229. m_strLastError = CTChart::LoadString( TSTR_ITEMUP_ERR_CANNOTMAGIC);
  230. return FALSE;
  231. }
  232. return TRUE;
  233.  
  234. case IK_RAREGRADE :
  235. if( !pTargetItemTemp->m_bCanRare )
  236. {
  237. m_strLastError = CTChart::LoadString( TSTR_ITEMUP_ERR_CANNOTRARE);
  238. return FALSE;
  239. }
  240. return TRUE;
  241.  
  242. case IK_WRAP:
  243. {
  244. if( !pTargetItemTemp->m_bCanWrap )
  245. {
  246. m_strLastError = CTChart::LoadString( TSTR_CANT_WRAP_ITEM );
  247. return FALSE;
  248. }
  249. }
  250. return TRUE;
  251.  
  252. case IK_CLEARMAGIC:
  253. case IK_ELD:
  254. case IK_CLEARREFINE: //Á¦·ĂĂʱâČ­
  255. case IK_CHGGRADEEFFECT: //°­Č­ŔĚĆĺĆ®şŻ°ć
  256. return TRUE;
  257.  
  258. case IK_COLOR:
  259. {
  260. if( !pTargetItemTemp->m_bCanColor )
  261. return FALSE;
  262. }
  263. return TRUE;
  264.  
  265. default:
  266. return FALSE;
  267. }
  268.  
  269. return TRUE;
  270. }
  271. // ====================================================================================================
  272.  
  273. // ====================================================================================================
  274. BOOL CTItemUpDlg::CheckItem(BYTE bSlotID, CTClientItem* pClientItem) const
  275. {
  276. LPTITEM pItem = pClientItem->GetTITEM();
  277.  
  278. if( pClientItem->CanGamble() )
  279. {
  280. m_strLastError = CTChart::LoadString( TSTR_ITEM_ERR_GAMBLE);
  281. return FALSE;
  282. }
  283.  
  284. switch( bSlotID )
  285. {
  286. case TARGET_SLOT:
  287. {
  288. if( pClientItem->GetWrap() )
  289. return FALSE;
  290.  
  291. if( m_ItemSlot[SCROLL_SLOT].pItem )
  292. return CheckItem(pClientItem, GetLastClientItem(SCROLL_SLOT));
  293. else
  294. return (pItem->m_bCanGrade || pItem->m_bCanMagic || pItem->m_bCanRare || pItem->m_bCanColor );
  295. }
  296. break;
  297.  
  298. case SCROLL_SLOT:
  299. {
  300. if( pClientItem->GetWrap() )
  301. return FALSE;
  302.  
  303. if( pItem->m_bType != IT_GRADE )
  304. return FALSE;
  305. else
  306. {
  307. if( m_ItemSlot[TARGET_SLOT].pItem )
  308. {
  309. CTClientItem* pUpItem = GetLastClientItem(TARGET_SLOT);
  310. if( !pUpItem )
  311. return FALSE;
  312.  
  313. return CheckItem(pUpItem, pClientItem);
  314. }
  315. else
  316. return TRUE;
  317. }
  318. }
  319. break;
  320. }
  321.  
  322. return FALSE;
  323. }
  324. // ====================================================================================================
  325. BOOL CTItemUpDlg::SetItem(BYTE bSlotID, LPTITEM pItem, BYTE bInven, BYTE bInvenSlot)
  326. {
  327. CTClientGame* pTGAME = CTClientGame::GetInstance();
  328.  
  329. BOOL bRet = CTItemSlotBaseDlg::SetItem( bSlotID, pItem, bInven, bInvenSlot );
  330.  
  331. if( bRet )
  332. {
  333. if( bSlotID == SCROLL_SLOT )
  334. {
  335. CTColorPicker* pColorPicker = static_cast<CTColorPicker*>( pTGAME->GetFrame( TFRAME_COLOR_PICKER ) );
  336.  
  337. if( pItem && pItem->m_bKind == IK_COLOR )
  338. {
  339. pColorPicker->ShowComponent( TRUE );
  340. pColorPicker->SetBindTarget( this );
  341. pColorPicker->SetCanSelect(pItem->m_wUseValue);
  342. pColorPicker->SelectColor( 1 );
  343. }
  344. else
  345. {
  346. pColorPicker->ShowComponent( FALSE );
  347. pColorPicker->SetBindTarget( NULL );
  348. }
  349. }
  350. }
  351.  
  352. return bRet;
  353. }
  354.  
  355. void CTItemUpDlg::ShowComponent( BOOL bVisible )
  356. {
  357. if( !bVisible )
  358. {
  359. CTClientGame* pTGAME = CTClientGame::GetInstance();
  360. CTColorPicker* pColorPicker = static_cast<CTColorPicker*>( pTGAME->GetFrame( TFRAME_COLOR_PICKER ) );
  361. pColorPicker->ShowComponent( FALSE );
  362. pColorPicker->SetBindTarget( NULL );
  363. }
  364.  
  365. CTItemSlotBaseDlg::ShowComponent( bVisible );
  366. }
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:1:20: fatal error: stdafx.h: No such file or directory
compilation terminated.
stdout
Standard output is empty