Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.41 KB | None | 0 0
  1. //Szukamy:
  2.  
  3. bool bDSInitialized = false;
  4.  
  5. for (i = 0; i < EXCHANGE_ITEM_MAX_NUM; ++i)
  6. {
  7. if (!(item = m_apItems[i]))
  8. continue;
  9.  
  10. if (item->IsDragonSoul())
  11. {
  12. if (!victim->DragonSoul_IsQualified())
  13. {
  14. return false;
  15. }
  16.  
  17. if (!bDSInitialized)
  18. {
  19. bDSInitialized = true;
  20. victim->CopyDragonSoulItemGrid(s_vDSGrid);
  21. }
  22.  
  23. bool bExistEmptySpace = false;
  24. WORD wBasePos = DSManager::instance().GetBasePosition(item);
  25. if (wBasePos >= DRAGON_SOUL_INVENTORY_MAX_NUM)
  26. return false;
  27.  
  28. for (int i = 0; i < DRAGON_SOUL_BOX_SIZE; i++)
  29. {
  30. WORD wPos = wBasePos + i;
  31. if (0 == s_vDSGrid[wBasePos])
  32. {
  33. bool bEmpty = true;
  34. for (int j = 1; j < item->GetSize(); j++)
  35. {
  36. if (s_vDSGrid[wPos + j * DRAGON_SOUL_BOX_COLUMN_NUM])
  37. {
  38. bEmpty = false;
  39. break;
  40. }
  41. }
  42. if (bEmpty)
  43. {
  44. for (int j = 0; j < item->GetSize(); j++)
  45. {
  46. s_vDSGrid[wPos + j * DRAGON_SOUL_BOX_COLUMN_NUM] = wPos + 1;
  47. }
  48. bExistEmptySpace = true;
  49. break;
  50. }
  51. }
  52. if (bExistEmptySpace)
  53. break;
  54. }
  55. if (!bExistEmptySpace)
  56. return false;
  57. }
  58. else
  59. {
  60. int iPos = s_grid1.FindBlank(1, item->GetSize());
  61.  
  62. if (iPos >= 0)
  63. {
  64. s_grid1.Put(iPos, 1, item->GetSize());
  65. }
  66. else
  67. {
  68. iPos = s_grid2.FindBlank(1, item->GetSize());
  69.  
  70. if (iPos >= 0)
  71. {
  72. s_grid2.Put(iPos, 1, item->GetSize());
  73. }
  74. else
  75. {
  76. return false;
  77. }
  78. }
  79. }
  80. }
  81.  
  82. return true;
  83. }
  84.  
  85. //Zamieniamy na:
  86.  
  87. bool bDSInitialized = false;
  88.  
  89. for (i = 0; i < EXCHANGE_ITEM_MAX_NUM; ++i)
  90. {
  91. if (!(item = m_apItems[i]))
  92. continue;
  93.  
  94. if (item->IsDragonSoul())
  95. {
  96. if (!victim->DragonSoul_IsQualified())
  97. {
  98. return false;
  99. }
  100.  
  101. if (!bDSInitialized)
  102. {
  103. bDSInitialized = true;
  104. victim->CopyDragonSoulItemGrid(s_vDSGrid);
  105. }
  106.  
  107. bool bExistEmptySpace = false;
  108. WORD wBasePos = DSManager::instance().GetBasePosition(item);
  109. if (wBasePos >= DRAGON_SOUL_INVENTORY_MAX_NUM)
  110. return false;
  111.  
  112. for (int i = 0; i < DRAGON_SOUL_BOX_SIZE; i++)
  113. {
  114. WORD wPos = wBasePos + i;
  115. if (0 == s_vDSGrid[wBasePos])
  116. {
  117. bool bEmpty = true;
  118. for (int j = 1; j < item->GetSize(); j++)
  119. {
  120. if (s_vDSGrid[wPos + j * DRAGON_SOUL_BOX_COLUMN_NUM])
  121. {
  122. bEmpty = false;
  123. break;
  124. }
  125. }
  126. if (bEmpty)
  127. {
  128. for (int j = 0; j < item->GetSize(); j++)
  129. {
  130. s_vDSGrid[wPos + j * DRAGON_SOUL_BOX_COLUMN_NUM] = wPos + 1;
  131. }
  132. bExistEmptySpace = true;
  133. break;
  134. }
  135. }
  136. if (bExistEmptySpace)
  137. break;
  138. }
  139. if (!bExistEmptySpace)
  140. return false;
  141. }
  142. else
  143. {
  144. int iPos = s_grid1.FindBlank(1, item->GetSize());
  145.  
  146. if (iPos >= 0)
  147. {
  148. s_grid1.Put(iPos, 1, item->GetSize());
  149. }
  150. else
  151. {
  152. iPos = s_grid2.FindBlank(1, item->GetSize());
  153.  
  154. if (iPos >= 0)
  155. {
  156. s_grid2.Put(iPos, 1, item->GetSize());
  157. }
  158. else
  159. {
  160. iPos = s_grid3.FindBlank(1, item->GetSize());
  161.  
  162. if (iPos >= 0)
  163. {
  164. s_grid3.Put(iPos, 1, item->GetSize());
  165. }
  166. else
  167. {
  168. iPos = s_grid4.FindBlank(1, item->GetSize());
  169.  
  170. if (iPos >= 0)
  171. {
  172. s_grid4.Put(iPos, 1, item->GetSize());
  173. }
  174. else
  175. {
  176. return false;
  177. }
  178. }
  179. }
  180. }
  181. }
  182. }
  183.  
  184. return true;
  185. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement