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

Method Squad_Join_Check

Source/Fodder.cpp:9296–9328  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9294}
9295
9296int16 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
9330void cFodder::Squad_Walk_Target_Update(int16 pData0) {
9331 mSquad_WalkTargets[pData0]->asInt = -1;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected