| 9294 | } |
| 9295 | |
| 9296 | int16 cFodder::Squad_Join_Check(sSprite* pSprite) { |
| 9297 | |
| 9298 | if (mSquad_Join_TargetSquad[pSprite->field_32] < 0) |
| 9299 | return -1; |
| 9300 | |
| 9301 | sSprite* Dataa2C = mSquad_Join_TargetSprite[pSprite->field_32]; |
| 9302 | if (Dataa2C->field_18 != eSprite_Player) |
| 9303 | return -1; |
| 9304 | |
| 9305 | sSprite** Data30 = mSquads[mSquad_Selected]; |
| 9306 | int16 MaxDistance = 0; |
| 9307 | |
| 9308 | for (MaxDistance = 0x0C;;) { |
| 9309 | if (*Data30 == INVALID_SPRITE_PTR) |
| 9310 | break; |
| 9311 | |
| 9312 | sSprite* eax = *Data30++; |
| 9313 | |
| 9314 | if (pSprite == eax) |
| 9315 | break; |
| 9316 | MaxDistance += 8; |
| 9317 | } |
| 9318 | |
| 9319 | int16 Data0 = Dataa2C->field_0; |
| 9320 | int16 Data4 = Dataa2C->field_4; |
| 9321 | int16 Data8 = pSprite->field_0; |
| 9322 | int16 DataC = pSprite->field_4; |
| 9323 | Map_Get_Distance_BetweenPoints_Within_Window(Data0, Data4, Data8, DataC); |
| 9324 | if (Data0 <= MaxDistance) |
| 9325 | return Squad_Join(pSprite); |
| 9326 | |
| 9327 | return 0; |
| 9328 | } |
| 9329 | |
| 9330 | void cFodder::Squad_Walk_Target_Update(int16 pData0) { |
| 9331 | mSquad_WalkTargets[pData0]->asInt = -1; |
nothing calls this directly
no outgoing calls
no test coverage detected