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

Method Squad_Walk_Target_Set

Source/Fodder.cpp:8205–8299  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8203}
8204
8205void 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;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected