| 2494 | } |
| 2495 | |
| 2496 | void cFodder::Sprite_Sort_DrawList() { |
| 2497 | |
| 2498 | mSprite_DrawList_First.clear(); |
| 2499 | mSprite_DrawList_Second.clear(); |
| 2500 | mSprite_DrawList_Third.clear(); |
| 2501 | for(sSprite& sprite : mSprites) { |
| 2502 | |
| 2503 | if (sprite.field_0 == -32768) |
| 2504 | continue; |
| 2505 | |
| 2506 | if (sprite.field_2C == eSprite_Draw_First) { |
| 2507 | mSprite_DrawList_First.push_back(&sprite); |
| 2508 | continue; |
| 2509 | } |
| 2510 | |
| 2511 | if (sprite.field_2C == eSprite_Draw_Second) { |
| 2512 | mSprite_DrawList_Second.push_back(&sprite); |
| 2513 | continue; |
| 2514 | } |
| 2515 | |
| 2516 | mSprite_DrawList_Third.push_back(&sprite); |
| 2517 | } |
| 2518 | |
| 2519 | std::sort(mSprite_DrawList_Second.begin(), mSprite_DrawList_Second.end(), [](sSprite*& pLeft, sSprite*& pRight) { |
| 2520 | return pLeft->field_4 < pRight->field_4; |
| 2521 | }); |
| 2522 | |
| 2523 | //loc_124AF |
| 2524 | { |
| 2525 | std::lock_guard<std::mutex> lock(mSpriteMtx); |
| 2526 | |
| 2527 | mSprite_DrawList_Final.clear(); |
| 2528 | for (auto spriteptr : mSprite_DrawList_First) { |
| 2529 | mSprite_DrawList_Final.push_back(spriteptr); |
| 2530 | } |
| 2531 | for (auto spriteptr : mSprite_DrawList_Second) { |
| 2532 | mSprite_DrawList_Final.push_back(spriteptr); |
| 2533 | } |
| 2534 | for (auto spriteptr : mSprite_DrawList_Third) { |
| 2535 | mSprite_DrawList_Final.push_back(spriteptr); |
| 2536 | } |
| 2537 | } |
| 2538 | } |
| 2539 | |
| 2540 | void cFodder::Sprite_Bullet_SetData() { |
| 2541 | if (mSprite_TroopsAlive[0] == INVALID_SPRITE_PTR || mSprite_TroopsAlive[0] == 0) |