Squeetz

Untitled

Jul 11th, 2025 (edited)
409
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.27 KB | None | 0 0
  1. struct AnimBgInfo
  2. {
  3.     u8 count;                        // amount of battlers on bg
  4.     u8 battlers[MAX_BATTLERS_COUNT]; // array of battlers on bg
  5. };
  6.  
  7. static void TryPutBattlerOnBg(u32 battler)
  8. {
  9.     u32 i;
  10.     u32 x, x2;
  11.     struct AnimBgInfo *bgInfo;
  12.    
  13.     x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2);
  14.    
  15.     // try put battler on bg1
  16.     bgInfo = &sAnimBg1Info;
  17.     for (i = 0; i < bgInfo->count; i++)
  18.     {
  19.         x2 = GetBattlerSpriteCoord(bgInfo->battlers[i], BATTLER_COORD_X_2);
  20.         // do these sprites intersect?
  21.         if ((x < x2 && x + 64 >= x2) || (x > x2 && x <= x2 + 64))
  22.             break;
  23.     }
  24.     if (i == bgInfo->count)
  25.     {
  26.         bgInfo->battlers[bgInfo->count++] = battler;
  27.         MoveBattlerSpriteToBG(battler, FALSE);
  28.     }
  29.     else
  30.     {
  31.         // try put battler on bg2
  32.         bgInfo = &sAnimBg2Info;
  33.         for (i = 0; i < bgInfo->count; i++)
  34.         {
  35.             x2 = GetBattlerSpriteCoord(bgInfo->battlers[i], BATTLER_COORD_X_2);
  36.             if ((x < x2 && x + 64 >= x2) || (x > x2 && x <= x2 + 64))
  37.                 break;
  38.         }
  39.         if (i == bgInfo->count)
  40.         {
  41.             bgInfo->battlers[bgInfo->count+] = battler;
  42.             MoveBattlerSpriteToBG(battler, TRUE);
  43.         }
  44.     }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment