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

Method Phase_Soldiers_Prepare

Source/Fodder.cpp:1427–1473  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1425}
1426
1427void cFodder::Phase_Soldiers_Prepare(const bool pPrebriefing) {
1428 Mission_Troops_Clear_Selected();
1429
1430 if (!pPrebriefing) {
1431
1432 // Set the sMission_Troop Sprites from mMission_Troops_SpritePtrs
1433 if (mGame_Data.mGamePhase_Data.mSoldiers_Prepare_SetFromSpritePtrs) {
1434 sSprite** Data24 = mMission_Troops_SpritePtrs;
1435
1436 for (auto& Troop : mGame_Data.mSoldiers_Allocated) {
1437 Troop.mSprite = *Data24++;
1438 }
1439 }
1440
1441 mGame_Data.mGamePhase_Data.mSoldiers_Prepare_SetFromSpritePtrs = true;
1442
1443 sSprite** Data24 = mMission_Troops_SpritePtrs;
1444 for (auto& Troop : mGame_Data.mSoldiers_Allocated) {
1445 *Data24++ = Troop.mSprite;
1446 }
1447
1448 }
1449
1450 // Join recruits into the squad
1451 int16 Data1C = mGame_Data.mGamePhase_Data.mSoldiers_Required - 1;
1452 while (Data1C >= 0) {
1453 Mission_Troop_Prepare_Next_Recruits();
1454 --Data1C;
1455 }
1456
1457 if (pPrebriefing)
1458 return;
1459
1460 // Remove recruits which arn't needed for the map
1461 Data1C = mGame_Data.mGamePhase_Data.mSoldiers_Available;
1462 for (auto& Troop : mGame_Data.mSoldiers_Allocated) {
1463
1464 if (Troop.mSprite == INVALID_SPRITE_PTR)
1465 continue;
1466
1467 if (Data1C)
1468 --Data1C;
1469 else
1470 Troop.mSprite = INVALID_SPRITE_PTR;
1471 }
1472
1473}
1474
1475void cFodder::Mission_Troop_Prepare_Next_Recruits() {
1476

Callers 1

quickServiceScreenFunction · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected