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

Method Passable

Source/Map/Random.cpp:335–382  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

333}
334
335int cRandomMap::Passable(int nx, int ny)
336{
337 auto TerrainType = g_Fodder->Map_Terrain_Get(nx, ny);
338 if (TerrainType == -1)
339 return 0;
340
341 // Blocked
342 if (mPathTilesNotTouchable[TerrainType])
343 return 0;
344
345 switch (mPathSearchUnitType) {
346
347 default:
348 break;
349
350 case eSprite_Helicopter_Grenade_Enemy:
351 case eSprite_Helicopter_Unarmed_Enemy:
352 case eSprite_Helicopter_Missile_Enemy:
353 case eSprite_Helicopter_Homing_Enemy:
354 case eSprite_Helicopter_Grenade_Human:
355 case eSprite_Helicopter_Unarmed_Human:
356 case eSprite_Helicopter_Missile_Human:
357 case eSprite_Helicopter_Homing_Human:
358 case eSprite_Helicopter_Grenade_Human_Called:
359 case eSprite_Helicopter_Unarmed_Human_Called:
360 case eSprite_Helicopter_Missile_Human_Called:
361 case eSprite_Helicopter_Homing_Human_Called:
362 case eSprite_Helicopter_Homing_Enemy2:
363 return 1;
364 }
365
366 switch (TerrainType) {
367 default:
368 return 1;
369
370 case eTerrainFeature_Water:
371 case eTerrainFeature_WaterEdge:
372 case eTerrainFeature_QuickSand:
373
374 // Tanks cant drive through water/quicksand
375 if (mPathSearchUnitType == eSprite_Tank_Human || mPathSearchUnitType == eSprite_Tank_Enemy)
376 return 0;
377
378 return 2;
379 }
380
381 return 1;
382}
383
384float cRandomMap::LeastCostEstimate(cPosition* nodeStart, cPosition* nodeEnd) {
385

Callers

nothing calls this directly

Calls 1

Map_Terrain_GetMethod · 0.80

Tested by

no test coverage detected