| 8203 | } |
| 8204 | |
| 8205 | void cFodder::Squad_Walk_Target_Set(int16 pTargetX, int16 pTargetY, int16 pSquadNumber, int16 pData10) { |
| 8206 | int16 Data1C; |
| 8207 | sSprite** Saved_Data24 = 0; |
| 8208 | |
| 8209 | if (pSquadNumber < 0 || pSquadNumber >= 3) |
| 8210 | return; |
| 8211 | |
| 8212 | pData10 = mSquad_Walk_Target_Indexes[pSquadNumber]; |
| 8213 | |
| 8214 | sSprite** Data24 = mSquads[pSquadNumber]; |
| 8215 | |
| 8216 | // Currently walking to a target? |
| 8217 | if (mSquad_Walk_Target_Steps[pSquadNumber]) { |
| 8218 | |
| 8219 | // Add this target to the queue |
| 8220 | mSquad_WalkTargets[pSquadNumber][pData10].mX = pTargetX; |
| 8221 | mSquad_WalkTargets[pSquadNumber][pData10].mY = pTargetY; |
| 8222 | |
| 8223 | mSquad_WalkTargets[pSquadNumber][pData10 + 1].asInt = -1; |
| 8224 | |
| 8225 | if (pData10 < (sizeof(mSquad_WalkTargets[pSquadNumber]) / sizeof(mSquad_WalkTargets[pSquadNumber][0]))) // 0x74 |
| 8226 | pData10++; |
| 8227 | |
| 8228 | mSquad_Walk_Target_Indexes[pSquadNumber] = pData10; |
| 8229 | goto loc_2ABF8; |
| 8230 | } |
| 8231 | |
| 8232 | //loc_2AA4C |
| 8233 | pData10 = 0; |
| 8234 | Data1C = -1; |
| 8235 | |
| 8236 | Saved_Data24 = Data24; |
| 8237 | |
| 8238 | for (;;) { |
| 8239 | if (*Data24++ == INVALID_SPRITE_PTR) |
| 8240 | break; |
| 8241 | |
| 8242 | ++Data1C; |
| 8243 | pData10 += 1; |
| 8244 | } |
| 8245 | |
| 8246 | if (mSquad_WalkTargetX) { |
| 8247 | mSquad_WalkTargets[pSquadNumber][pData10].mX = mSquad_WalkTargetX; |
| 8248 | mSquad_WalkTargets[pSquadNumber][pData10].mY = mSquad_WalkTargetY; |
| 8249 | pData10 += 1; |
| 8250 | } |
| 8251 | //loc_2AAAE |
| 8252 | mSquad_WalkTargets[pSquadNumber][pData10].mX = pTargetX; |
| 8253 | mSquad_WalkTargets[pSquadNumber][pData10].mY = pTargetY; |
| 8254 | |
| 8255 | mSquad_WalkTargetX = pTargetX; |
| 8256 | mSquad_WalkTargetY = pTargetY; |
| 8257 | |
| 8258 | mSquad_WalkTargets[pSquadNumber][pData10 + 1].asInt = -1; |
| 8259 | |
| 8260 | Data24 = Saved_Data24; |
| 8261 | if (Data1C < 0) |
| 8262 | return; |
nothing calls this directly
no outgoing calls
no test coverage detected