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

Method Squad_Member_Rotate_Can_Fire

Source/Fodder.cpp:8896–8971  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8894}
8895
8896void cFodder::Squad_Member_Rotate_Can_Fire() {
8897 if (mSquad_Member_Fire_CoolDown_Override)
8898 mSquad_Member_Fire_CoolDown_Override = false;
8899 else {
8900 mSquad_Member_Fire_CoolDown -= 1;
8901 if (mSquad_Member_Fire_CoolDown >= 0)
8902 return;
8903 }
8904
8905 //loc_2D2EB
8906 sSprite* Data20 = mSquad_Leader;
8907 if (Data20 == INVALID_SPRITE_PTR || Data20 == 0)
8908 return;
8909
8910 sMission_Troop* Dataa20 = Data20->field_46_mission_troop;
8911 if (Dataa20 == 0)
8912 return;
8913
8914 mSquad_Member_Fire_CoolDown = mSprite_Weapon_Data.mCooldown;
8915 mSprite_Bullet_Time_Modifier = 0;
8916 mSprite_Bullet_Fire_Speed_Modifier = 0;
8917
8918 // TODO: 0x0F is the max rank, so what was this code for?
8919 {
8920 if (Dataa20->mRank > 0x14) {
8921 if (mSquad_Selected >= 0) {
8922 if (mSquads_TroopCount[mSquad_Selected] == 1) {
8923 mSquad_Member_Fire_CoolDown = 1;
8924 mSprite_Bullet_Time_Modifier = -3;
8925 mSprite_Bullet_Fire_Speed_Modifier = 0x0A;
8926 }
8927 }
8928 }
8929 }
8930
8931 //loc_2D381
8932 if (mSquad_Selected < 0)
8933 return;
8934
8935 int16 TroopsInSquad = (mSquads_TroopCount[mSquad_Selected] & 0xFF) - 1;
8936 int16 LastTroopNumber = TroopsInSquad;
8937
8938 if (LastTroopNumber < 0)
8939 return;
8940
8941 // Order based on number of troops in squad
8942 const std::vector<int16>& Rotate_Fire_Order = mSoldier_Squad_Fire_RotationOrder[TroopsInSquad];
8943 if (mTroop_Rotate_Next >= Rotate_Fire_Order.size())
8944 mTroop_Rotate_Next = 0;
8945
8946 size_t Data0 = mTroop_Rotate_Next;
8947
8948 // Squad Member Number
8949 int16 Data4 = Rotate_Fire_Order[Data0];
8950
8951 // Past the last troop in squad?
8952 if (Data4 < 0 || Data4 > LastTroopNumber) {
8953 Data4 = 0;

Callers

nothing calls this directly

Calls 1

sizeMethod · 0.45

Tested by

no test coverage detected