Pr0nogo

Untitled

Jun 22nd, 2020
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. // 1
  2. signed int __userpurge AI_EvalHarass@<eax>(int x1@<ecx>, int y1@<eax>, int playerID)
  3. {
  4. WORD v3; // ax
  5. WORD *v4; // ecx
  6. unsigned int totGrndStrength; // edi
  7. unsigned int totAirStrength; // esi
  8. int v7; // ebx
  9. int v8; // edi
  10. CUNIT *v9; // esi
  11. int v10; // ecx
  12. CSPRITE *v11; // ecx
  13. BYTE v12; // al
  14. signed int result; // eax
  15. unsigned int ai_grndStr; // [esp+4h] [ebp-10h]
  16. unsigned int ai_airStr; // [esp+8h] [ebp-Ch]
  17. unsigned int enemy_grndStr; // [esp+Ch] [ebp-8h]
  18. unsigned int enemy_airStr; // [esp+10h] [ebp-4h]
  19.  
  20. if ( AI_AttackManager(playerID, x1, y1, 0, 0) )
  21. goto Return_0;
  22. v3 = AIScript_Controller[playerID].AI_AttackGroups[0];
  23. v4 = AIScript_Controller[playerID].AI_AttackGroups;
  24. totAirStrength = 0;
  25. totGrndStrength = 0;
  26. ai_airStr = 0;
  27. ai_grndStr = 0;
  28. if ( v3 )
  29. {
  30. do
  31. {
  32. totAirStrength += dword_6BB20C[v3];
  33. totGrndStrength += airStrengthSomething[v3 + 227];
  34. ++v4;
  35. v3 = *v4;
  36. }
  37. while ( *v4 );
  38. ai_grndStr = totGrndStrength;
  39. ai_airStr = totAirStrength;
  40. }
  41. v9 = FirstUnitPointer;
  42. v10 = *((unsigned __int16 *)&AI_RegionCaptains[playerID][(unsigned __int16)AIScript_Controller[playerID].AI_AttackGroup]
  43. - 25) << 6;
  44. v8 = *(int *)((char *)&SAI_Paths->regions[0].rgnCenterX + v10) >> 8;
  45. v7 = *(int *)((char *)&SAI_Paths->regions[0].rgnCenterY + v10) >> 8;
  46. enemy_grndStr = 0;
  47. for ( enemy_airStr = 0; v9; v9 = v9->next )
  48. {
  49. v11 = v9->sprite;
  50. if ( v11 )
  51. {
  52. if ( v9->mainOrderType )
  53. {
  54. v12 = v9->owner;
  55. if ( v12 == 11 )
  56. v12 = v11->owner;
  57. if ( !playerAlliance[playerID][v12]
  58. && (signed int)getDistanceFast(v9->sprite->position.x, v8, v9->sprite->position.y, v7) < 1024 )
  59. {
  60. enemy_airStr += (unsigned __int16)v9->airStrength;
  61. enemy_grndStr += (unsigned __int16)v9->groundStrength;
  62. }
  63. }
  64. }
  65. }
  66. if ( ai_airStr <= enemy_airStr && ai_grndStr <= enemy_grndStr )
  67. Return_0:
  68. result = 0;
  69. else
  70. result = 1;
  71. return result;
  72. }
Add Comment
Please, Sign In to add comment