Skip to content

Commit 455b8e8

Browse files
Maullerxezon
authored andcommitted
refactor(pathfinder): Simplify and improve readability of Pathfinder::validLocomotorSurfacesForCellType (#1620)
1 parent 172362c commit 455b8e8

File tree

2 files changed

+41
-39
lines changed

2 files changed

+41
-39
lines changed

Generals/Code/GameEngine/Source/GameLogic/AI/AIPathfind.cpp

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4204,25 +4204,27 @@ Locomotor* Pathfinder::chooseBestLocomotorForPosition(PathfindLayerEnum layer, L
42044204

42054205
/*static*/ LocomotorSurfaceTypeMask Pathfinder::validLocomotorSurfacesForCellType(PathfindCell::CellType t)
42064206
{
4207-
if (t == PathfindCell::CELL_OBSTACLE) {
4208-
return LOCOMOTORSURFACE_AIR;
4209-
}
4210-
if (t == PathfindCell::CELL_IMPASSABLE) {
4211-
return LOCOMOTORSURFACE_AIR;
4212-
}
4213-
if (t==PathfindCell::CELL_CLEAR) {
4214-
return LOCOMOTORSURFACE_GROUND | LOCOMOTORSURFACE_AIR;
4215-
}
4216-
if (t == PathfindCell::CELL_WATER) {
4217-
return LOCOMOTORSURFACE_WATER | LOCOMOTORSURFACE_AIR;
4218-
}
4219-
if (t == PathfindCell::CELL_RUBBLE) {
4220-
return LOCOMOTORSURFACE_RUBBLE | LOCOMOTORSURFACE_AIR;
4221-
}
4222-
if ( t == PathfindCell::CELL_CLIFF ) {
4223-
return LOCOMOTORSURFACE_CLIFF | LOCOMOTORSURFACE_AIR;
4207+
switch (t)
4208+
{
4209+
case PathfindCell::CELL_CLEAR:
4210+
return LOCOMOTORSURFACE_GROUND | LOCOMOTORSURFACE_AIR;
4211+
4212+
case PathfindCell::CELL_WATER:
4213+
return LOCOMOTORSURFACE_WATER | LOCOMOTORSURFACE_AIR;
4214+
4215+
case PathfindCell::CELL_CLIFF:
4216+
return LOCOMOTORSURFACE_CLIFF | LOCOMOTORSURFACE_AIR;
4217+
4218+
case PathfindCell::CELL_RUBBLE:
4219+
return LOCOMOTORSURFACE_RUBBLE | LOCOMOTORSURFACE_AIR;
4220+
4221+
case PathfindCell::CELL_OBSTACLE:
4222+
case PathfindCell::CELL_IMPASSABLE:
4223+
return LOCOMOTORSURFACE_AIR;
4224+
4225+
default:
4226+
return NO_SURFACES;
42244227
}
4225-
return NO_SURFACES;
42264228
}
42274229

42284230
//

GeneralsMD/Code/GameEngine/Source/GameLogic/AI/AIPathfind.cpp

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4487,28 +4487,28 @@ Locomotor* Pathfinder::chooseBestLocomotorForPosition(PathfindLayerEnum layer, L
44874487

44884488
/*static*/ LocomotorSurfaceTypeMask Pathfinder::validLocomotorSurfacesForCellType(PathfindCell::CellType t)
44894489
{
4490-
if (t == PathfindCell::CELL_OBSTACLE) {
4491-
return LOCOMOTORSURFACE_AIR;
4492-
}
4493-
if (t == PathfindCell::CELL_IMPASSABLE) {
4494-
return LOCOMOTORSURFACE_AIR;
4495-
}
4496-
if (t == PathfindCell::CELL_BRIDGE_IMPASSABLE) {
4497-
return LOCOMOTORSURFACE_AIR;
4498-
}
4499-
if (t==PathfindCell::CELL_CLEAR) {
4500-
return LOCOMOTORSURFACE_GROUND | LOCOMOTORSURFACE_AIR;
4501-
}
4502-
if (t == PathfindCell::CELL_WATER) {
4503-
return LOCOMOTORSURFACE_WATER | LOCOMOTORSURFACE_AIR;
4504-
}
4505-
if (t == PathfindCell::CELL_RUBBLE) {
4506-
return LOCOMOTORSURFACE_RUBBLE | LOCOMOTORSURFACE_AIR;
4507-
}
4508-
if ( t == PathfindCell::CELL_CLIFF ) {
4509-
return LOCOMOTORSURFACE_CLIFF | LOCOMOTORSURFACE_AIR;
4490+
switch (t)
4491+
{
4492+
case PathfindCell::CELL_CLEAR:
4493+
return LOCOMOTORSURFACE_GROUND | LOCOMOTORSURFACE_AIR;
4494+
4495+
case PathfindCell::CELL_WATER:
4496+
return LOCOMOTORSURFACE_WATER | LOCOMOTORSURFACE_AIR;
4497+
4498+
case PathfindCell::CELL_CLIFF:
4499+
return LOCOMOTORSURFACE_CLIFF | LOCOMOTORSURFACE_AIR;
4500+
4501+
case PathfindCell::CELL_RUBBLE:
4502+
return LOCOMOTORSURFACE_RUBBLE | LOCOMOTORSURFACE_AIR;
4503+
4504+
case PathfindCell::CELL_OBSTACLE:
4505+
case PathfindCell::CELL_BRIDGE_IMPASSABLE:
4506+
case PathfindCell::CELL_IMPASSABLE:
4507+
return LOCOMOTORSURFACE_AIR;
4508+
4509+
default:
4510+
return NO_SURFACES;
45104511
}
4511-
return NO_SURFACES;
45124512
}
45134513

45144514
//

0 commit comments

Comments
 (0)