ScenarioObject* Condition::CreatCondition() { Condition *pCondition = new Condition; pCondition->Init(); ms_Gravity.SetValue(_T("1")); ms_ReTransLam.SetValue(_T("2300")); ms_ReTransTurb.SetValue(_T("4000")); ms_AtmosphericPress.SetValue(1); ms_AtmosphericPress.SetUnit("atm"); ms_AtmosphericTemp.SetValue(_T("293.15")); pCondition->SetValue(ms_Gravity,1); pCondition->SetValue(ms_ReTransLam,2); pCondition->SetValue(ms_ReTransTurb,3); pCondition->SetValue(ms_AtmosphericPress,4); pCondition->SetValue(ms_AtmosphericTemp,5); return pCondition; }
bool Trigger::LoadCondition(IniReader *pini, FindProp *pfind) { char sz[128]; sz[0] = 0; int nCondition; int cArgs = pini->GetPropertyValue(pfind, "%d,%s", &nCondition, sz); if (cArgs == 0) return false; Condition *pcdn = NULL; switch (nCondition) { case knMissionLoadedCondition: pcdn = new MissionLoadedCondition(); break; case knCreditsCondition: pcdn = new CreditsCondition(); break; case knOwnsUnitsCondition: pcdn = new OwnsUnitsCondition(); break; case knAreaContainsUnitsCondition: pcdn = new AreaContainsUnitsCondition(); break; case knPlaceStructureModeCondition: pcdn = new PlaceStructureModeCondition(); break; case knMinerCantFindGalaxiteCondition: pcdn = new MinerCantFindGalaxiteCondition(); break; case knGalaxiteCapacityReachedCondition: pcdn = new GalaxiteCapacityReachedCondition(); break; case knElapsedTimeCondition: pcdn = new ElapsedTimeCondition(); break; case knSwitchCondition: pcdn = new SwitchCondition(); break; case knPeriodicTimerCondition: pcdn = new PeriodicTimerCondition(); break; case knDiscoversSideCondition: pcdn = new DiscoversSideCondition(); break; case knCountdownTimerCondition: pcdn = new CountdownTimerCondition(); break; case knTestPvarCondition: pcdn = new TestPvarCondition(); break; case knHasUpgradesCondition: pcdn = new HasUpgradesCondition(); break; #ifdef UNDONE case knUnitDestroyedCondition: pcdn = new UnitDestroyedCondition(); break; case knDeathsCondition: pcdn = new DeathsCondition(); break; case knMobileHQDeployableCondition: pcdn = new MobileHQDeployableCondition(); break; case knMobileHQDeployedCondition: pcdn = new MobileHQDeployedCondition(); break; case knUnitSeesUnitCondition: pcdn = new UnitSeesUnitCondition(); break; case knUnitDestroyedCondition: pcdn = new UnitDestroyedCondition(); break; #endif default: Assert(false); break; } // Init it, error if that failed Assert(pcdn != NULL, "out of memory!"); if (!pcdn->Init(sz)) { delete pcdn; return false; } // Link it in last Condition **ppcdn = &m_pcdn; while ((*ppcdn) != NULL) ppcdn = &((*ppcdn)->m_pcdnNext); *ppcdn = pcdn; return true; }