| 9247 | } |
| 9248 | |
| 9249 | int16 cFodder::Squad_Join(sSprite* pSprite) { |
| 9250 | int16 Data14 = pSprite->field_32; |
| 9251 | int16 Data0; |
| 9252 | |
| 9253 | int16 Data18 = mSquad_Join_TargetSquad[Data14]; |
| 9254 | if (Data18 < 0) |
| 9255 | return -1; |
| 9256 | |
| 9257 | Data18 &= 0xFF; |
| 9258 | |
| 9259 | if (mSquads_TroopCount[Data14] > 8) |
| 9260 | return -1; |
| 9261 | |
| 9262 | sMission_Troop* Dataa24 = pSprite->field_46_mission_troop; |
| 9263 | Dataa24->mSelected &= 0xFE; |
| 9264 | |
| 9265 | sMapTarget* Data24 = mSquad_WalkTargets[Data18]; |
| 9266 | Data0 = 0; |
| 9267 | |
| 9268 | for (;;) { |
| 9269 | |
| 9270 | sMapTarget eax = *Data24++; |
| 9271 | if (eax.asInt < 0) |
| 9272 | break; |
| 9273 | |
| 9274 | Data0++; |
| 9275 | } |
| 9276 | |
| 9277 | pSprite->field_40 = Data0; |
| 9278 | pSprite->field_32 = Data18; |
| 9279 | Squad_Troops_Count(); |
| 9280 | |
| 9281 | mSquad_Selected = Data18; |
| 9282 | |
| 9283 | mSquad_Grenades[Data18] += mSquad_Grenades[Data14]; |
| 9284 | mSquad_Rockets[Data18] += mSquad_Rockets[Data14]; |
| 9285 | |
| 9286 | //seg010:0232 |
| 9287 | mSquad_Grenades[Data14] = 0; |
| 9288 | mSquad_Rockets[Data14] = 0; |
| 9289 | |
| 9290 | sub_305D5(pSprite); |
| 9291 | mGUI_Sidebar_Setup = 0; |
| 9292 | |
| 9293 | return -1; |
| 9294 | } |
| 9295 | |
| 9296 | int16 cFodder::Squad_Join_Check(sSprite* pSprite) { |
| 9297 |
nothing calls this directly
no outgoing calls
no test coverage detected