public COrder(CEncodedObjectInputBufferI bin) { bin.nextTag(TAG); Dictionary <string, string> A = bin.getAttributes(); ordType_ = A[ORDTYPE]; value_ = EncodeUtil.parseInt(A[VALUE]); if (A.ContainsKey(UTYPE)) { utype_ = A[UTYPE]; } flag_ = EncodeUtil.fromBoolString(A[FLAG]); ugid_ = EncodeUtil.parseUInt(A[UGID]); useEmbark_ = EncodeUtil.fromBoolString(A[UGID]); bin.firstChild(); bin.nextTag(LOCS); if (bin.hasChildren()) { bin.firstChild(); locs_ = new List <CLoc>(); while (!bin.reachedEndTag(LOCS)) { CLoc l = CLoc.fromKey(bin.getObjectText(LOC)); locs_.Add(l); } } bin.endTag(LOCS); bin.endTag(TAG); }
public CPlayer(CEncodedObjectInputBufferI bin) { bin.nextTag(TAG); Dictionary <string, string> A = bin.getAttributes(); originalPosition_ = EncodeUtil.parseInt(A[ORIGINAL_POSITION]); position_ = EncodeUtil.parseInt(A[POSITION]); buypoints_ = EncodeUtil.parseInt(A[BUYPOINTS]); buypointsSpent_ = EncodeUtil.parseInt(A[BUYPOINTSSPENT]); score_ = EncodeUtil.parseInt(A[SCORE]); pcap_ = EncodeUtil.parseInt(A[PCAP]); ccap_ = EncodeUtil.parseInt(A[CCAP]); ncap_ = EncodeUtil.parseInt(A[NCAP]); living_ = EncodeUtil.fromBoolString(A[LIVING]); type_ = bin.getObjectText(TYPE_TAG); if (bin.thisTag() == PNAME_TAG) { pname_ = bin.getObjectText(PNAME_TAG); } else { pname_ = null; } if (bin.thisTag() == DEAD_REASON_TAG) { deadReason_ = bin.getObjectText(DEAD_REASON_TAG); } else { deadReason_ = null; } bin.endTag(TAG); }
public CGameRules(CEncodedObjectInputBufferI bin) { bin.nextTag(TAG); Dictionary <string, string> A = bin.getAttributes(); stackCount_ = EncodeUtil.parseUInt(A[STACK_COUNT]); useExploration_ = EncodeUtil.fromBoolString(A[EXPLORE]); useCityEff_ = EncodeUtil.fromBoolString(A[CITYEFF]); useContinue_ = EncodeUtil.fromBoolString(A[CONTINUE]); useSpec_ = EncodeUtil.fromBoolString(A[SPEC]); useDrain_ = EncodeUtil.fromBoolString(A[DRAIN]); useRoads_ = EncodeUtil.fromBoolString(A[ROADS]); useSupply_ = EncodeUtil.fromBoolString(A[SUPPLY]); useMines_ = EncodeUtil.fromBoolString(A[MINES]); useResources_ = EncodeUtil.fromBoolString(A[RESOURCES]); useNukes_ = EncodeUtil.fromBoolString(A[NUKES]); useDigin_ = EncodeUtil.fromBoolString(A[DIGIN]); useExperience_ = EncodeUtil.fromBoolString(A[EXPERIENCE]); useUnitNames_ = EncodeUtil.fromBoolString(A[UNITNAMES]); useDefFire_ = EncodeUtil.fromBoolString(A[DEFFIRE]); useRangeFire_ = EncodeUtil.fromBoolString(A[RANGEFIRE]); useCrippled_ = EncodeUtil.fromBoolString(A[CRIPPLED]); useUnitScrap_ = EncodeUtil.fromBoolString(A[SCRAP]); useDefTer_ = EncodeUtil.fromBoolString(A[DEFTER]); useHarshSupply_ = EncodeUtil.fromBoolString(A[HARSHSUPPLY]); useLimitedResources_ = EncodeUtil.fromBoolString(A[LIMITEDREOURCES]); bin.endTag(TAG); }
protected CUnit(Dictionary <string, string> A, CEncodedObjectInputBufferI bin, AIQueryI query) { utype_ = A[UTYPE]; loc_ = CLoc.fromKey(A[LOC]); gid_ = EncodeUtil.parseUInt(A[GID]); owner_ = EncodeUtil.parseInt(A[OWNER]); stackLayer_ = EncodeUtil.parseUInt(A[STACKLAYER]); level_ = A[LEVEL]; landed_ = EncodeUtil.fromBoolString(A[LANDED]); inReentry_ = EncodeUtil.fromBoolString(A[INREENTRY]); host_ = EncodeUtil.parseUInt(A[HOST]); turn_ = EncodeUtil.parseInt(A[TURN]); rmvr_ = EncodeUtil.parseInt(A[RMVR]); rmvs_ = EncodeUtil.parseInt(A[RMVS]); fired_ = EncodeUtil.fromBoolString(A[FIRED]); armed_ = EncodeUtil.fromBoolString(A[ARMED]); dmg_ = EncodeUtil.parseInt(A[DMG]); shortFuel_ = EncodeUtil.fromBoolString(A[SHORTFUEL]); sawEnemy_ = EncodeUtil.fromBoolString(A[SAWENEMY]); dugIn_ = EncodeUtil.fromBoolString(A[DUGIN]); experience_ = EncodeUtil.parseUInt(A[EXPERIENCE]); readiness_ = A[READINESS]; expType_ = A[EXPTYPE]; name_ = bin.getObjectText(NAME); bin.nextTag(CUNITS); if (bin.hasChildren()) { bin.firstChild(); while (!bin.reachedEndTag(CUNITS)) { bin.nextTag(CUNIT); Dictionary <string, string> D = bin.getAttributes(); uint u = EncodeUtil.parseUInt(D[CUNITID]); cunits_.Add(u); bin.endTag(CUNIT); } } bin.endTag(CUNITS); ord_ = new COrder(bin); entry_ = query.unitQuery(utype_); }
public static CProducerUnit decodeCProducerUnit(CEncodedObjectInputBufferI bin, AIQueryI query) { bin.nextTag(TAG); Dictionary <string, string> A = bin.getAttributes(); var ret = new CProducerUnit(A, bin, query); bin.endTag(TAG); return(ret); }
public CDLLInfo(CEncodedObjectInputBufferI bin) { bin.nextTag(TAG); key_ = bin.getObjectText(KTAG); name_ = bin.getObjectText(NTAG); desc_ = bin.getObjectText(DTAG); version_ = bin.getObjectText(VTAG); bin.endTag(TAG); }
public CDLLNameValueHintInfo(Dictionary <string, string> attr, CEncodedObjectInputBufferI bin) : base(NAME_VALUE_SET, attr, bin) { defkey_ = attr[DEF_ATTR]; value_ = attr[VALUE_ATTR]; bin.nextTag(SETS_TAG); if (bin.hasChildren()) { while (!bin.reachedEndTag(SETS_TAG)) { bin.nextTag(SET_TAG); string k = bin.getObjectText(KEY_TAG); string v = bin.getObjectText(VALUE_TAG); set_.Add(k, v); bin.endTag(SET_TAG); } } bin.endTag(SETS_TAG); }
public CDLLHints(CEncodedObjectInputBufferI bin) { bin.nextTag(TAG); dllInfo_ = new CDLLInfo(bin); { bin.nextTag(INFOS); if (bin.hasChildren()) { bin.firstChild(); while (!bin.reachedEndTag(INFOS)) { CDLLHintInfo mhi = CDLLHintInfo.decode(bin); addInfo(mhi); } } bin.endTag(INFOS); } bin.endTag(TAG); }
public CGameMapParameters(CEncodedObjectInputBufferI bin) { bin.nextTag(TAG); Dictionary <string, string> attr = bin.getAttributes(); numPositions_ = EncodeUtil.parseInt(attr[NUM_POSITION_ATTR]); needCapitals_ = EncodeUtil.fromBoolString(attr[NEEDCAP_ATTR]); needImportant_ = EncodeUtil.fromBoolString(attr[NEEDIMPORT_ATTR]); numImportant_ = EncodeUtil.parseInt(attr[NUMIMPORT_ATTR]); numStartingCities_ = null; var plist = new List <KeyValuePair <int, int> >(); bin.nextTag(NUMSTARTCI_TAGS); if (bin.hasChildren()) { bin.firstChild(); while (!bin.reachedEndTag(NUMSTARTCI_TAGS)) { Dictionary <string, string> attrc = bin.getAttributes(); int index = EncodeUtil.parseInt(attrc[POS_ATTR]); int v = EncodeUtil.parseInt(attrc[VALUE_ATTR]); plist.Add(new KeyValuePair <int, int>(index, v)); bin.endTag(NUMSTARTCI_TAG); } } if (plist.Count > 0) { numStartingCities_ = new int[plist.Count]; foreach (KeyValuePair <int, int> kp in plist) { numStartingCities_[kp.Key] = kp.Value; } } bin.endTag(NUMSTARTCI_TAGS); bin.endTag(TAG); }
public CVictoryConditions(CEncodedObjectInputBufferI bin) { bin.nextTag(TAG); Dictionary <string, string> A = bin.getAttributes(); annihilationVictory_ = EncodeUtil.fromBoolString(A[ANNIHILATION]); percentageCitiesV_ = EncodeUtil.parseInt(A[PERCITIESVALUE]); percentageCitiesVDuration_ = EncodeUtil.parseInt(A[PERCITIESDUR]); numImportantV_ = EncodeUtil.parseInt(A[NUMIMPVALUE]); numImportantVDuration_ = EncodeUtil.parseInt(A[NUMIMPDUR]); capitalKill_ = EncodeUtil.fromBoolString(A[CAPKILL]); regicideV_ = EncodeUtil.parseInt(A[REGICIDE]); bin.endTag(TAG); }
public CSupplyRoute(CEncodedObjectInputBufferI bin) { bin.nextTag(TAG); Dictionary <string, string> A = bin.getAttributes(); rid_ = EncodeUtil.parseUInt(A[RID]); source_ = EncodeUtil.parseUInt(A[SOURCE]); sourceLoc_ = CLoc.fromKey(A[SOURCE_LOC]); dest_ = EncodeUtil.parseUInt(A[DEST]); destLoc_ = CLoc.fromKey(A[DEST_LOC]); inTransit_ = EncodeUtil.parseUInt(A[IN_TRANSIT]); nextArrival_ = EncodeUtil.parseUInt(A[NEXT_ARRIVAL]); bin.endTag(TAG); }
public CProposal(CEncodedObjectInputBufferI bin) { bin.nextTag(TAG); Dictionary <string, string> A = bin.getAttributes(); type_ = A[TYPE]; fromP_ = EncodeUtil.parseInt(A[FROM]); toP_ = EncodeUtil.parseInt(A[TO]); gid_ = EncodeUtil.parseUInt(A[GID]); id_ = EncodeUtil.parseUInt(A[ID]); status_ = A[STATUS]; name_ = bin.getObjectText(NAME); bin.endTag(TAG); }
public CMTRandom(string tag, CEncodedObjectInputBufferI bin) { bin.nextTag(tag); Dictionary <string, string> attr = bin.getAttributes(); //with seeded constructor, run use count up to appropriate total int useCount = EncodeUtil.parseInt(attr[USE_COUNT_ATTR]); seedUsed_ = ulong.Parse(bin.getObjectText(SEED_TAG)); twister_ = new CMersenneTwister(seedUsed_); for (int i = 0; i < useCount; i++) { random(2); } bin.endTag(tag); }
public CProductionReportData(CEncodedObjectInputBufferI bin) { bin.nextTag(TAG); Dictionary <string, string> A = bin.getAttributes(); value_ = EncodeUtil.parseInt(A[VALUE]); pkey_ = EncodeUtil.parseUInt(A[PKEY]); ckey_ = EncodeUtil.parseUInt(A[CKEY]); rtype_ = bin.getObjectText(RTYPE); if (bin.thisTag() == REPORT) { report_ = bin.getObjectText(REPORT); } else { report_ = null; } if (bin.thisTag() == PTYPE) { ptype_ = bin.getObjectText(PTYPE); } else { ptype_ = null; } if (bin.thisTag() == CTYPE) { ctype_ = bin.getObjectText(CTYPE); } else { ctype_ = null; } if (bin.thisTag() == LOC) { loc_ = CLoc.fromKey(bin.getObjectText(LOC)); } else { loc_ = null; } bin.endTag(TAG); }
public AIMap(CEncodedObjectInputBufferI bin) { bin.nextTag(TAG); Dictionary <string, string> A = bin.getAttributes(); int width = EncodeUtil.parseInt(A[GAME_MAP_WIDTH_ATTR]); int height = EncodeUtil.parseInt(A[GAME_MAP_HEIGHT_ATTR]); bool vwrap = EncodeUtil.fromBoolString(A[GAME_MAP_VWRAP_ATTR]); bool hwrap = EncodeUtil.fromBoolString(A[GAME_MAP_HWRAP_ATTR]); mapUtil_ = new CMapUtil(width, hwrap, height, vwrap); stackCount_ = EncodeUtil.parseUInt(A[STACKCOUNT]); string mb = bin.getObjectText(TMAP_TAG); mapBytes_ = mb.ToCharArray(); var tmp = new List <string>(); EncodeUtil.decodeStringList(WASTELAND, tmp, bin); foreach (string s in tmp) { wasteland_.Add(s, true); } tmp.Clear(); EncodeUtil.decodeStringList(MINES, tmp, bin); foreach (string s in tmp) { mines_.Add(s, true); } tmp.Clear(); EncodeUtil.decodeStringList(ROAD, tmp, bin); foreach (string s in tmp) { roads_.Add(s, true); } tmp.Clear(); EncodeUtil.decodeDSI(RESOURCES, resources_, bin); bin.endTag(TAG); }
public CDLLContainerHintInfo(Dictionary <string, string> attr, CEncodedObjectInputBufferI bin) : base(CONTAINER_TYPE, attr, bin) { //int nc = EncodeUtil.parseInt(attr[NUM_CHILDREN]); sig_ = EncodeUtil.parseUInt(attr[SIG_ATTR]); goStraightToChildren_ = EncodeUtil.fromBoolString(attr[GO_ATTR]); infos_ = new List <CDLLHintInfo>(); bin.nextTag(CHILDREN_TAGS + Convert.ToString(sig_)); if (bin.hasChildren()) { bin.firstChild(); while (!bin.reachedEndTag(CHILDREN_TAGS + Convert.ToString(sig_))) { CDLLHintInfo hi = decode(bin); infos_.Add(hi); } } bin.endTag(CHILDREN_TAGS + Convert.ToString(sig_)); }
public CDLLLockableHintInfo(Dictionary <string, string> attr, CEncodedObjectInputBufferI bin) : base(LOCKED_CONTAINER_TYPE, attr, bin) { //int nc = EncodeUtil.parseInt(attr[NUM_CHILDREN]); sig_ = EncodeUtil.parseUInt(attr[SIG_ATTR]); locked_ = EncodeUtil.fromBoolString(attr[LOCKED_ATTR]); infos_ = new List <CDLLHintInfo>(); lockname_ = bin.getObjectText(LOCKNAME_TAG); bin.nextTag(CHILDREN_TAGS + Convert.ToString(sig_)); if (bin.hasChildren()) { bin.firstChild(); while (!bin.reachedEndTag(CHILDREN_TAGS + Convert.ToString(sig_))) { CDLLHintInfo hi = decode(bin); infos_.Add(hi); } } bin.endTag(CHILDREN_TAGS + Convert.ToString(sig_)); }
//////////////////////////////////////////////////////////////////// //Reloading protected AIPlayerData( int position, string path, string logname, Dictionary <string, string> caMap, CEncodedObjectInputBufferI bin, AIEventInterfaceI aiEvent, AICommandInterfaceI command, AIQueryI query, AICheatI cheat, int logLevel) : base(position, path, logname, caMap, bin, aiEvent, command, query, cheat, logLevel) { dlogger_ = new CSubLog("PlayerData:" + Convert.ToString(position), realLog_); curturn_ = EncodeUtil.parseInt(caMap[CUR_TURN]); numPlayers_ = EncodeUtil.parseInt(caMap[NUM_PLAYERS]); rdWeight_ = EncodeUtil.parseInt(caMap[RD_WEIGHT]); unitsBeforeDrain_ = EncodeUtil.parseInt(caMap[UNITS_BEFORE_DRAIN]); bin.nextTag(CPlayer.TAGS); if (bin.hasChildren()) { bin.firstChild(); while (!bin.reachedEndTag(CPlayer.TAGS)) { players_.Add(new CPlayer(bin)); } } bin.endTag(CPlayer.TAGS); bin.nextTag(SPOTU); if (bin.hasChildren()) { bin.firstChild(); while (!bin.reachedEndTag(SPOTU)) { CUnit u = CUnit.decodeCUnit(bin, query_); masterObjects_.Add(u.gid_, u); spotMap_.Add(u.gid_, u); spots_.Add(u); } } bin.endTag(SPOTU); bin.nextTag(SPOTC); if (bin.hasChildren()) { bin.firstChild(); while (!bin.reachedEndTag(SPOTC)) { CProducerUnit c = CProducerUnit.decodeCProducerUnit(bin, query_); masterObjects_.Add(c.gid_, c); knownCitiesVec_.Add(c); spotMap_.Add(c.gid_, c); spots_.Add(c); } } bin.endTag(SPOTC); bin.nextTag(SPOTP); if (bin.hasChildren()) { bin.firstChild(); while (!bin.reachedEndTag(SPOTP)) { CProducerUnit p = CProducerUnit.decodeCProducerUnit(bin, query); masterObjects_.Add(p.gid_, p); spotMap_.Add(p.gid_, p); spots_.Add(p); } } bin.endTag(SPOTP); bin.nextTag(CITIES); if (bin.hasChildren()) { bin.firstChild(); while (!bin.reachedEndTag(CITIES)) { CProducerUnit c = CProducerUnit.decodeCProducerUnit(bin, query_); masterObjects_.Add(c.gid_, c); knownCitiesVec_.Add(c); cities_.Add(c); cityMap_.Add(c.gid_, c); } } bin.endTag(CITIES); bin.nextTag(UNITS); if (bin.hasChildren()) { bin.firstChild(); while (!bin.reachedEndTag(UNITS)) { CUnit u = CUnit.decodeCUnit(bin, query_); masterObjects_.Add(u.gid_, u); unitMap_.Add(u.gid_, u); units_.Add(u); } } bin.endTag(UNITS); bin.nextTag(PRODUCERS); if (bin.hasChildren()) { bin.firstChild(); while (!bin.reachedEndTag(PRODUCERS)) { CProducerUnit p = CProducerUnit.decodeCProducerUnit(bin, query_); masterObjects_.Add(p.gid_, p); producers_.Add(p); producerMap_.Add(p.gid_, p); unitMap_.Add(p.gid_, p); units_.Add(p); } } bin.endTag(PRODUCERS); bin.nextTag(CSupplyRoute.TAGS); if (bin.hasChildren()) { bin.firstChild(); while (!bin.reachedEndTag(CSupplyRoute.TAGS)) { var csr = new CSupplyRoute(bin); supplySources_.Add(csr.rid_, csr); } } bin.endTag(CSupplyRoute.TAGS); map_ = new AIMap(bin); mapUtil_ = map_.mapUtil_; gameRules_ = new CGameRules(bin); vc_ = new CVictoryConditions(bin); bin.nextTag(CProposal.TAGS); if (bin.hasChildren()) { bin.firstChild(); while (!bin.reachedEndTag(CProposal.TAGS)) { var p = new CProposal(bin); proposals_.Add(p); } } bin.endTag(CProposal.TAGS); bin.nextTag(CProductionReportData.TAGS); if (bin.hasChildren()) { bin.firstChild(); while (!bin.reachedEndTag(CProductionReportData.TAGS)) { var prd = new CProductionReportData(bin); prodReport_.Add(prd); } } bin.endTag(CProductionReportData.TAGS); random_ = new CMTRandom(AI_RANDOM_TAG, bin); //retrieve flyover foUnit_ = null; if (caMap.ContainsKey(FOUNIT_ID)) { uint fid = EncodeUtil.parseUInt(caMap[FOUNIT_ID]); foUnit_ = masterObjects_[fid]; } }
public CDLLRadioContainerHintInfo(Dictionary <string, string> attr, CEncodedObjectInputBufferI bin) : base(RADIO_CONTAINER_TYPE, attr, bin) { sig_ = EncodeUtil.parseUInt(attr[SIG_ATTR]); currentOption_ = EncodeUtil.parseInt(attr[CURRENT_ATTR]); minfos_ = new List <List <CDLLHintInfo> >(); bin.nextTag(LIST_TAGS + Convert.ToString(sig_)); if (bin.hasChildren()) { bin.firstChild(); while (!bin.reachedEndTag(LIST_TAGS + Convert.ToString(sig_))) { var infos = new List <CDLLHintInfo>(); minfos_.Add(infos); bin.nextTag(LIST_TAG + Convert.ToString(sig_)); if (bin.hasChildren()) { bin.firstChild(); while (!bin.reachedEndTag(LIST_TAG + Convert.ToString(sig_))) { CDLLHintInfo hi = decode(bin); infos.Add(hi); } } bin.endTag(LIST_TAG + Convert.ToString(sig_)); } } bin.endTag(LIST_TAGS + Convert.ToString(sig_)); catkeys_ = new List <string>(); bin.nextTag(KEY_TAGS); if (bin.hasChildren()) { bin.firstChild(); while (!bin.reachedEndTag(KEY_TAGS)) { catkeys_.Add(bin.getObjectText(KEY_TAG)); } } bin.endTag(KEY_TAGS); catnames_ = new List <string>(); bin.nextTag(CATNAME_TAGS); if (bin.hasChildren()) { bin.firstChild(); while (!bin.reachedEndTag(CATNAME_TAGS)) { catnames_.Add(bin.getObjectText(CATNAME_TAG)); } } bin.endTag(CATNAME_TAGS); rbnames_ = new List <string>(); bin.nextTag(RBNAME_TAGS); if (bin.hasChildren()) { bin.firstChild(); while (!bin.reachedEndTag(RBNAME_TAGS)) { rbnames_.Add(bin.getObjectText(RBNAME_TAG)); } } bin.endTag(RBNAME_TAGS); }