Capture current mission, AI, map and administration development

Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
This commit is contained in:
2026-10-13 22:52:53 +02:00
parent a951a96edc
commit 6a667d8deb
8104 changed files with 2124945 additions and 2061 deletions
+31
View File
@@ -11,8 +11,39 @@ rules=(rules.replace('string ', 'std::string ').replace('out int ', 'int& ')
.replace(' < 0) return false;', ' == std::string::npos) return false;').replace('text.ToInt()', 'std::stoi(text)'))
run('#include <cassert>\n#include <string>\n'+rules+r'''
int main(){
assert(CoreSetting("mission","doctrine")=="aiDoctrine");
assert(CoreSetting("mission","aishadow")=="aiShadow");
for(std::string key:{"aiDoctrine","aiShadow"}){ assert(Valid(key,0)&&Valid(key,1)); assert(!Valid(key,-1)&&!Valid(key,2)); }
assert(CoreSetting("mission","motorbikes")=="motorbikeCount");
assert(Valid("motorbikeCount",0)&&Valid("motorbikeCount",2)&&Valid("motorbikeCount",6));
assert(!Valid("motorbikeCount",-1)&&!Valid("motorbikeCount",7));
assert(CoreSetting("mission","planealtitude")=="planeAltitudeMetres");
assert(Valid("planeAltitudeMetres",150)&&Valid("planeAltitudeMetres",250)&&Valid("planeAltitudeMetres",500));
assert(!Valid("planeAltitudeMetres",149)&&!Valid("planeAltitudeMetres",501)&&!Valid("planeAltitudeMetres",-1));
assert(CoreSetting("mission","planereplacement")=="planeReplacementSeconds");
assert(Valid("planeReplacementSeconds",30)&&Valid("planeReplacementSeconds",60)&&Valid("planeReplacementSeconds",1800));
assert(!Valid("planeReplacementSeconds",29)&&!Valid("planeReplacementSeconds",1801)&&!Valid("planeReplacementSeconds",-1));
assert(CoreSetting("mission","planesector")=="planeSectorSeconds");
assert(Valid("planeSectorSeconds",30)&&Valid("planeSectorSeconds",120)&&Valid("planeSectorSeconds",600));
assert(!Valid("planeSectorSeconds",29)&&!Valid("planeSectorSeconds",601)&&!Valid("planeSectorSeconds",-1));
assert(CoreSetting("mission","plane")=="planeReconEnabled");
assert(Valid("planeReconEnabled",0)&&Valid("planeReconEnabled",1));
assert(!Valid("planeReconEnabled",-1)&&!Valid("planeReconEnabled",2));
assert(CoreSetting("mission","camps")=="fieldCampCount");
assert(CoreSetting("mission","hospitals")=="fieldHospitalCount");
assert(Valid("fieldCampCount",1)&&Valid("fieldCampCount",12)&&Valid("fieldCampCount",16));
assert(!Valid("fieldCampCount",0)&&!Valid("fieldCampCount",17));
assert(Valid("fieldHospitalCount",1)&&Valid("fieldHospitalCount",6)&&Valid("fieldHospitalCount",8));
assert(!Valid("fieldHospitalCount",0)&&!Valid("fieldHospitalCount",9));
assert(CoreSetting("intel","reveal")=="intelRevealChancePercent");
assert(CoreSetting("mission","radio")=="radioDefenceSeconds");
assert(CoreSetting("mission","objectguards")=="objectGuardCount");
assert(CoreSetting("mission","objectevery")=="objectGuardEvery");
assert(CoreSetting("mission","objecthq")=="objectGuardHQMode");
assert(CoreSetting("hq","objectguards").empty());
assert(Valid("objectGuardCount",0)&&Valid("objectGuardCount",8)&&Valid("objectGuardCount",16));
assert(!Valid("objectGuardCount",-1)&&!Valid("objectGuardCount",17));
for(std::string section:{"", "hq", "mission", "intel", "unknown"})
for(std::string option:{"", "interval", "carrying", "radio", "reveal", "unknown"}){
bool recognized=(section=="intel"&&option=="reveal")||(section=="mission"&&option=="radio");