Added some tests for splitting of roads by placing a flag on one of the points in the road. The tests verify that an idle courier walks to the new road and a new courier gets assigned. The tests do not yet verify that a courier performing a task fulfills its task and then gets assigned to the road
Changed Road::setTargetRoad() to Road::assignToRoad() and changed it to set the assigned road directly, instead of just setting it as a target. Also updated the failing test and fixed the model to handle it
Halved the growing pace of crop to make it behave better in the game
Couriers who have already picked up a cargo will now deliver it before going to a new road if their road is split. Added test for this and updated the model to handle the case
Changed Cargo to use a list of points for its planned route instead of a list of roads
Removed GameMap::findWayInRoads and associated tests as it's no longer used. Cargo was the only user and it now uses a list of points instead
Fixed a minor warning
Added a test to verify that a courier carrying a cargo will deliver the cargo and become idle at the right place if the road it's assigned to is split
Removed the Road::promiseCourier method and changed the courier to directly call Road::setCourier()
Removed the un-used Courier::isOnRoad() method
Minor cleanups, no code changes
Changed to not call Road::setCourier() since the courier will do this itself
Changed Cargo::getNextStep() to return null if there is no defined next step. Added a test for this.
Added a test to make sure a courier delivers correctly to a building after its road is split