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

Method Squad_Member_Click_Check

Source/Fodder.cpp:19277–19334  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19275}
19276
19277void cFodder::Squad_Member_Click_Check() {
19278 word_3A3BF = -1;
19279
19280 if (mSquad_Selected < 0)
19281 return;
19282
19283 int16 ClickedX = mMouseX;
19284 int16 ClickedY = mMouseY;
19285
19286 ClickedX += mCameraX >> 16;
19287 ClickedY += mCameraY >> 16;
19288 ClickedX -= 0x0F;
19289 ClickedY -= 3;
19290
19291 for (auto& SquadMember : mGame_Data.mSoldiers_Allocated) {
19292
19293 if (SquadMember.mSprite == INVALID_SPRITE_PTR || SquadMember.mSprite == 0)
19294 continue;
19295
19296 sSprite* SquadMemberSprite = SquadMember.mSprite;
19297
19298 if (SquadMemberSprite->field_32 == mSquad_Selected)
19299 ++word_3A3BF;
19300
19301 int16 SquadMemberX = SquadMemberSprite->field_0 + 4;
19302 int16 SquadMemberY = SquadMemberSprite->field_4 - SquadMemberSprite->field_20;
19303
19304 // Clicked before/after troop?
19305 if (ClickedX < SquadMemberX)
19306 continue;
19307 if (ClickedX > SquadMemberX + 6)
19308 continue;
19309
19310 // Clicked above/below troop?
19311 if (ClickedY < SquadMemberY - 13)
19312 continue;
19313 if (ClickedY > SquadMemberY)
19314 continue;
19315
19316 //
19317 if (mSquad_Selected == SquadMemberSprite->field_32) {
19318 mSquad_Member_Clicked_TroopInSameSquad = -1;
19319 mSquad_Member_Clicked_TroopPtr = SquadMemberSprite->field_46_mission_troop;
19320 return;
19321 }
19322
19323 // Two squads joined will have more than 8 members?
19324 if (mSquads_TroopCount[SquadMemberSprite->field_32] + mSquads_TroopCount[mSquad_Selected] > 8)
19325 return;
19326
19327 mSquad_Join_TargetSprite[mSquad_Selected] = SquadMemberSprite;
19328 mSquad_Join_TargetSquad[mSquad_Selected] = (int8)SquadMemberSprite->field_32;
19329
19330 Squad_Walk_Target_Update(SquadMemberSprite->field_32);
19331
19332 break;
19333 }
19334}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected