MCPcopy Create free account
hub / github.com/OpenFodder/openfodder / Sprite_Sort_DrawList

Method Sprite_Sort_DrawList

Source/Fodder.cpp:2496–2538  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2494}
2495
2496void 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
2540void cFodder::Sprite_Bullet_SetData() {
2541 if (mSprite_TroopsAlive[0] == INVALID_SPRITE_PTR || mSprite_TroopsAlive[0] == 0)

Callers

nothing calls this directly

Calls 4

clearMethod · 0.45
push_backMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected