Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct AnimBgInfo
- {
- u8 count; // amount of battlers on bg
- u8 battlers[MAX_BATTLERS_COUNT]; // array of battlers on bg
- };
- static void TryPutBattlerOnBg(u32 battler)
- {
- u32 i;
- u32 x, x2;
- struct AnimBgInfo *bgInfo;
- x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2);
- // try put battler on bg1
- bgInfo = &sAnimBg1Info;
- for (i = 0; i < bgInfo->count; i++)
- {
- x2 = GetBattlerSpriteCoord(bgInfo->battlers[i], BATTLER_COORD_X_2);
- // do these sprites intersect?
- if ((x < x2 && x + 64 >= x2) || (x > x2 && x <= x2 + 64))
- break;
- }
- if (i == bgInfo->count)
- {
- bgInfo->battlers[bgInfo->count++] = battler;
- MoveBattlerSpriteToBG(battler, FALSE);
- }
- else
- {
- // try put battler on bg2
- bgInfo = &sAnimBg2Info;
- for (i = 0; i < bgInfo->count; i++)
- {
- x2 = GetBattlerSpriteCoord(bgInfo->battlers[i], BATTLER_COORD_X_2);
- if ((x < x2 && x + 64 >= x2) || (x > x2 && x <= x2 + 64))
- break;
- }
- if (i == bgInfo->count)
- {
- bgInfo->battlers[bgInfo->count+] = battler;
- MoveBattlerSpriteToBG(battler, TRUE);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment