/*%FSM*/ /*%FSM*/ /* item0[] = {"",7,210,743.923157,366.553040,751.923157,374.553040,0.000000,""}; item1[] = {"INIT",0,250,499.929565,-106.207787,589.929565,-56.207787,0.000000,"INIT"}; item2[] = {"true",8,218,758.881348,3.975540,858.881348,53.975540,0.000000,"true"}; item3[] = {"Waiting",2,250,758.881226,84.582077,858.881226,134.582092,0.000000,"Waiting"}; item4[] = {"",7,210,518.910339,366.553040,526.910339,374.553040,0.000000,""}; item5[] = {"__5_sec_loop_",4,218,547.923096,174.999939,647.923096,224.999939,1.000000,"15 sec loop" \n ""}; item6[] = {"Check_Mission_Running",2,250,547.923035,248.598328,647.923035,298.598328,0.000000,"Check Mission" \n "Running" \n "Status"}; item7[] = {"",7,210,518.897522,321.700806,526.897522,329.700806,0.000000,""}; item8[] = {"___min_loop_1",4,218,702.828857,170.094177,792.828857,220.094177,2.000000,"5 min loop"}; item9[] = {"",7,210,518.897522,24.975555,526.897522,32.975555,0.000000,""}; item10[] = {"",7,210,593.923096,366.553040,601.923096,374.553040,0.000000,""}; item11[] = {"Mission_Cleanup",2,250,697.923035,248.598328,797.923035,298.598328,0.000000,"Mission Cleanup"}; item12[] = {"INITIALIZE",4,218,638.875183,-106.463760,728.875183,-56.463760,0.000000,"INITIALIZE"}; item13[] = {"PREPARE",2,250,763.528931,-107.864372,853.528931,-57.864372,0.000000,"PREPARE"}; item14[] = {"___min_loop",4,218,838.578918,171.729218,928.578918,221.729218,3.000000,"1 min loop"}; item15[] = {"Select_Mission",2,250,839.279602,248.118042,929.279663,298.118042,0.000000,"Select Mission"}; item16[] = {"",7,210,880.582092,366.639160,888.582092,374.639160,0.000000,""}; item17[] = {"___min_loop__AI",4,218,954.751831,174.416748,1044.750732,224.416748,0.000000,"1 min loop (AI)"}; item18[] = {"Set_AI_Ownership",2,250,953.993164,247.127747,1043.991455,297.127747,0.000000,"Set AI Ownership"}; item19[] = {"",7,210,995.295715,366.725281,1003.295776,374.725281,0.000000,""}; item20[] = {"Freeze_Loop",4,218,1067.345947,174.190506,1157.346191,224.190506,0.000000,"Freeze Loop"}; item21[] = {"Freeze_Manager",2,250,1067.652466,248.645218,1157.652100,298.645233,0.000000,"Freeze Manager"}; item22[] = {"",7,210,1108.954956,366.725311,1116.955078,374.725311,0.000000,""}; link0[] = {0,10}; link1[] = {1,12}; link2[] = {2,3}; link3[] = {3,5}; link4[] = {3,8}; link5[] = {3,14}; link6[] = {3,17}; link7[] = {3,20}; link8[] = {4,7}; link9[] = {5,6}; link10[] = {6,10}; link11[] = {7,9}; link12[] = {8,11}; link13[] = {9,2}; link14[] = {10,4}; link15[] = {11,0}; link16[] = {12,13}; link17[] = {13,2}; link18[] = {14,15}; link19[] = {15,16}; link20[] = {16,0}; link21[] = {17,18}; link22[] = {18,19}; link23[] = {19,16}; link24[] = {20,21}; link25[] = {21,22}; link26[] = {22,19}; globals[] = {0.000000,0,0,0,0,640,480,2,457,6316128,1,382.327179,1353.613037,520.585144,-195.419098,799,589,1}; window[] = {0,-1,-1,-32000,-32030,859,125,1419,125,1,817}; *//*%FSM*/ class FSM { fsmName = "missions"; class States { /*%FSM*/ class INIT { name = "INIT"; init = /*%FSM*/""/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { /*%FSM*/ class INITIALIZE { priority = 0.000000; to="PREPARE"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"!isnil ""bis_fnc_init"""/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ }; }; /*%FSM*/ /*%FSM*/ class Waiting { name = "Waiting"; init = /*%FSM*/"// Waiting for next task to proceed with."/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { /*%FSM*/ class ___min_loop { priority = 3.000000; to="Select_Mission"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"((diag_tickTime - _selectMission) > 60)" \n ""/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ /*%FSM*/ class ___min_loop_1 { priority = 2.000000; to="Mission_Cleanup"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"((diag_tickTime - _cleanupTime) > 300)"/*%FSM*/; action=/*%FSM*/"_missionsMonitor = time;"/*%FSM*/; }; /*%FSM*/ /*%FSM*/ class __5_sec_loop_ { priority = 1.000000; to="Check_Mission_Running"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"((diag_tickTime - _missionsMonitor) > 15)"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ /*%FSM*/ class Freeze_Loop { priority = 0.000000; to="Freeze_Manager"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"((diag_tickTime - _freeze) > DMS_ai_freezeCheckingDelay)"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ /*%FSM*/ class ___min_loop__AI { priority = 0.000000; to="Set_AI_Ownership"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"((diag_tickTime - _aiLocality) > 60)"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ }; }; /*%FSM*/ /*%FSM*/ class Check_Mission_Running { name = "Check_Mission_Running"; init = /*%FSM*/"//(format [""FSM CHECK :: calling DMS_fnc_MissionsMonitor""]) call DMS_fnc_DebugLog;" \n "" \n "_missionsMonitor = diag_tickTime;" \n "call DMS_fnc_MissionsMonitor;"/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { /*%FSM*/ class true { priority = 0.000000; to="Waiting"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"true"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ }; }; /*%FSM*/ /*%FSM*/ class Mission_Cleanup { name = "Mission_Cleanup"; init = /*%FSM*/"//(format [""FSM CHECK :: calling DMS_fnc_CleanUpManager""]) call DMS_fnc_DebugLog;" \n "" \n "_cleanupTime = diag_tickTime;" \n "call DMS_fnc_CleanUpManager;"/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { /*%FSM*/ class true { priority = 0.000000; to="Waiting"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"true"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ }; }; /*%FSM*/ /*%FSM*/ class PREPARE { name = "PREPARE"; init = /*%FSM*/"private [""_missionsMonitor"",""_cleanupTime"",""_selectMission""];" \n "diag_log (""DMS :: Initializing FSM mission script"");" \n "" \n "_missionsMonitor = 0;" \n "_cleanupTime = 0;" \n "_selectMission = 0;" \n "_aiLocality = 0;" \n "_freeze = 0;"/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { /*%FSM*/ class true { priority = 0.000000; to="Waiting"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"true"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ }; }; /*%FSM*/ /*%FSM*/ class Select_Mission { name = "Select_Mission"; init = /*%FSM*/"//(format [""FSM CHECK :: calling DMS_fnc_SelectMission""]) call DMS_fnc_DebugLog;" \n "" \n "_selectMission = diag_tickTime;" \n "if (DMS_SpawnMissions_Scheduled) then" \n "{" \n " [] spawn DMS_fnc_SelectMission;" \n "}" \n "else" \n "{" \n " call DMS_fnc_SelectMission;" \n "};"/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { /*%FSM*/ class true { priority = 0.000000; to="Waiting"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"true"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ }; }; /*%FSM*/ /*%FSM*/ class Set_AI_Ownership { name = "Set_AI_Ownership"; init = /*%FSM*/"//(format [""FSM CHECK :: calling DMS_fnc_AILocalityManager""]) call DMS_fnc_DebugLog;" \n "" \n "_aiLocality = diag_tickTime;" \n "call DMS_fnc_AILocalityManager;"/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { /*%FSM*/ class true { priority = 0.000000; to="Waiting"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"true"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ }; }; /*%FSM*/ /*%FSM*/ class Freeze_Manager { name = "Freeze_Manager"; init = /*%FSM*/"//(format [""FSM CHECK :: calling DMS_fnc_AILocalityManager""]) call DMS_fnc_DebugLog;" \n "" \n "_freeze = diag_tickTime;" \n "call DMS_fnc_FreezeManager;"/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { /*%FSM*/ class true { priority = 0.000000; to="Waiting"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"true"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ }; }; /*%FSM*/ }; initState="INIT"; finalStates[] = { }; }; /*%FSM*/