]> git.scottworley.com Git - planeteer/blobdiff - planeteer.go
Fix a legal-path-not-checked eden warp bug
[planeteer] / planeteer.go
index 42a7236811bda3d598b9c864b040489f10f06058..1074e92a377c13205e8adb335912ce43523568b3 100644 (file)
@@ -373,14 +373,12 @@ func CellValue(data planet_data, dims LogicalIndex, table []State, addr LogicalI
                other[Traded] = 1 /* Travel from states that have done trading. */
 
                /* Travel here via a 2-fuel unit jump */
-               if addr[Fuel]+2 < dims[Fuel] {
+               if data.Planets[data.i2p[addr[Location]]].BeaconOn && addr[Fuel]+2 < dims[Fuel] {
                        other[Fuel] = addr[Fuel] + 2
                        hole_index := (dims[Fuel] - 1) - (addr[Fuel] + 2)
                        if hole_index >= len(flight_plan()) || addr[Location] != PlanetIndex(data, flight_plan()[hole_index]) {
                                for other[Location] = 0; other[Location] < dims[Location]; other[Location]++ {
-                                       if data.Planets[data.i2p[addr[Location]]].BeaconOn {
-                                               Consider(data, dims, table, other, 0, &best_value, best_source)
-                                       }
+                                       Consider(data, dims, table, other, 0, &best_value, best_source)
                                }
                        }
                        other[Location] = addr[Location]
@@ -401,7 +399,7 @@ func CellValue(data planet_data, dims LogicalIndex, table []State, addr LogicalI
                }
 
                /* Travel here via Eden Warp Unit */
-               if addr[Edens]+1 < dims[Edens] && addr[UnusedCargo] > 0 {
+               if addr[Edens]+1 < dims[Edens] && (addr[Hold] == 0 || addr[UnusedCargo] > 0) {
                        _, available := data.Planets[data.i2p[addr[Location]]].RelativePrices["Eden Warp Units"]
                        if !available {
                                other[Edens] = addr[Edens] + 1