Improve small-terrain placement and show startup failure causes; record Workshop 0.0.120
continuous-integration/drone/push Build is passing
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -32,7 +32,7 @@ struct ERR_GameMode {
|
||||
int pickup=0;int PickupStage(){return pickup;}
|
||||
int startMode=0;int StartMode(){return startMode;}
|
||||
int phase=ERR_Phase::RADIO_DEFENCE, feedback=ERR_RadioFeedback::WAITING, remaining=180;
|
||||
bool occupied=false;int Phase(){return phase;}string PreparationError(){return "";}
|
||||
string error;bool occupied=false;int Phase(){return phase;}string PreparationError(){return error;}
|
||||
void Locations(std::vector<ERR_LocationComponent*>& locations){locations.clear();}
|
||||
int RadioFeedback(){return feedback;}int DefenceSecondsRemaining(){return remaining;}
|
||||
bool DefenceOccupied(){return occupied;}float EscapeRadius(){return 9000;}
|
||||
@@ -45,6 +45,12 @@ struct Actual {
|
||||
bool has(string text,string needle){return text.find(needle)!=string::npos;}
|
||||
int main(){
|
||||
ERR_GameMode mode;
|
||||
mode.phase=ERR_Phase::PREPARING;
|
||||
assert(has(Actual::PhaseDescription(&mode,false),"Preparing mission sites"));
|
||||
mode.error="Terrain has no safe navigable placement for Prison. Checks: uneven ground=123; water=45";
|
||||
auto failure=Actual::PhaseDescription(&mode,false);
|
||||
assert(has(failure,mode.error)&&has(failure,"restart the scenario")&&!has(failure,"/esc"));
|
||||
mode.error.clear();mode.phase=ERR_Phase::RADIO_DEFENCE;
|
||||
for(int duration : {30,180,1800}) {
|
||||
mode.remaining=duration;
|
||||
auto task=Actual::PhaseDescription(&mode,true);
|
||||
|
||||
Reference in New Issue
Block a user