From: hellcatv <hel...@us...> - 2005-08-30 08:05:14
|
Update of /cvsroot/vegastrike/vegastrike/src/cmd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3447/cmd Modified Files: basecomputer.cpp unit_generic.cpp unit_util_generic.cpp Log Message: fixed up more server errors Index: basecomputer.cpp =================================================================== RCS file: /cvsroot/vegastrike/vegastrike/src/cmd/basecomputer.cpp,v retrieving revision 1.164 retrieving revision 1.165 diff -C2 -r1.164 -r1.165 *** basecomputer.cpp 29 Aug 2005 18:24:39 -0000 1.164 --- basecomputer.cpp 30 Aug 2005 08:05:05 -0000 1.165 *************** *** 354,398 **** // Takes in a category of an upgrade or cargo and returns true if it is any type of mountable weapon. ! static bool isWeapon (std::string name) { ! if (name.find("Weapon")!=std::string::npos) { ! return true; ! } ! if (name.find("SubUnit")!=std::string::npos) { ! return true; ! } ! if (name.find("Ammunition")!=std::string::npos) { ! return true; ! } ! return false; ! } ! float PercentOperational (Unit * un, std::string name, std::string category="upgrades/") { ! if (category.find(DamagedCategory)==0) { ! return 0.0f; ! }else if (isWeapon(category)) { ! const Unit * upgrade=getUnitFromUpgradeName(name,un->faction); ! if (upgrade->GetNumMounts()) { ! const Mount * mnt = &upgrade->mounts[0]; ! unsigned int nummounts=un->GetNumMounts(); ! for (unsigned int i=0;i<nummounts;++i) { ! if (mnt->type->weapon_name==un->mounts[i].type->weapon_name) { ! if (un->mounts[i].status==Mount::DESTROYED) ! return 0.0; ! if (un->mounts[i].functionality<1.0f){ ! return un->mounts[i].functionality; ! } ! } ! } ! } ! }else if (name.find("add_")!=0&&name.find("mult_")!=0) { ! const Unit * upgrade=getUnitFromUpgradeName(name,un->faction); ! double percent=0; ! if (un->canUpgrade(upgrade,-1,-1,0,true,percent,makeTemplateUpgrade(un->name,un->faction),false)) { ! if (percent) ! return percent; ! else return .5;//FIXME does not interact well with radar type ! }else if (percent>0) return percent; ! } ! return 1.0; ! } // CONSTRUCTOR. --- 354,359 ---- // Takes in a category of an upgrade or cargo and returns true if it is any type of mountable weapon. ! extern bool isWeapon (std::string name); ! extern float PercentOperational(Unit*,string,string category="upgrades/"); // CONSTRUCTOR. Index: unit_generic.cpp =================================================================== RCS file: /cvsroot/vegastrike/vegastrike/src/cmd/unit_generic.cpp,v retrieving revision 1.387 retrieving revision 1.388 diff -C2 -r1.387 -r1.388 *** unit_generic.cpp 29 Aug 2005 18:24:39 -0000 1.387 --- unit_generic.cpp 30 Aug 2005 08:05:05 -0000 1.388 *************** *** 7192,7196 **** const Unit* getUnitFromUpgradeName(const string& upgradeName, int myUnitFaction = 0); extern float rand01(); ! extern float PercentOperational(Unit*,string,string); void Unit::Repair() { //note work slows down under time compression! --- 7192,7237 ---- const Unit* getUnitFromUpgradeName(const string& upgradeName, int myUnitFaction = 0); extern float rand01(); ! bool isWeapon (std::string name) { ! if (name.find("Weapon")!=std::string::npos) { ! return true; ! } ! if (name.find("SubUnit")!=std::string::npos) { ! return true; ! } ! if (name.find("Ammunition")!=std::string::npos) { ! return true; ! } ! return false; ! } ! ! float PercentOperational (Unit * un, std::string name, std::string category="upgrades/") { ! if (category.find(DamagedCategory)==0) { ! return 0.0f; ! }else if (isWeapon(category)) { ! const Unit * upgrade=getUnitFromUpgradeName(name,un->faction); ! if (upgrade->GetNumMounts()) { ! const Mount * mnt = &upgrade->mounts[0]; ! unsigned int nummounts=un->GetNumMounts(); ! for (unsigned int i=0;i<nummounts;++i) { ! if (mnt->type->weapon_name==un->mounts[i].type->weapon_name) { ! if (un->mounts[i].status==Mount::DESTROYED) ! return 0.0; ! if (un->mounts[i].functionality<1.0f){ ! return un->mounts[i].functionality; ! } ! } ! } ! } ! }else if (name.find("add_")!=0&&name.find("mult_")!=0) { ! const Unit * upgrade=getUnitFromUpgradeName(name,un->faction); ! double percent=0; ! if (un->canUpgrade(upgrade,-1,-1,0,true,percent,makeTemplateUpgrade(un->name,un->faction),false)) { ! if (percent) ! return percent; ! else return .5;//FIXME does not interact well with radar type ! }else if (percent>0) return percent; ! } ! return 1.0; ! } void Unit::Repair() { //note work slows down under time compression! Index: unit_util_generic.cpp =================================================================== RCS file: /cvsroot/vegastrike/vegastrike/src/cmd/unit_util_generic.cpp,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -r1.30 -r1.31 *** unit_util_generic.cpp 29 Aug 2005 18:24:39 -0000 1.30 --- unit_util_generic.cpp 30 Aug 2005 08:05:05 -0000 1.31 *************** *** 23,27 **** const int MEDIUM_PRIORITY=3; const int LOW_PRIORITY=4; ! const int LOWEST_PRIORITY=SIM_QUEUE_SIZE; const int NO_ENEMIES=SIM_QUEUE_SIZE; const int NOT_VISIBLE_COMBAT_HIGH=7; --- 23,27 ---- const int MEDIUM_PRIORITY=3; const int LOW_PRIORITY=4; ! const int LOWEST_PRIORITY=SIM_QUEUE_SIZE; const int NO_ENEMIES=SIM_QUEUE_SIZE; const int NOT_VISIBLE_COMBAT_HIGH=7; *************** *** 53,59 **** static int neutral=FactionUtil::GetFaction("neutral"); if (un->owner==getTopLevelOwner()||un->faction==cargofac||un->faction==upfac||un->faction==neutral) { ! if (dist<tooclose) ! return LOW_PRIORITY; else ! return LOWEST_PRIORITY; } Unit * targ = un->Target(); --- 53,59 ---- static int neutral=FactionUtil::GetFaction("neutral"); if (un->owner==getTopLevelOwner()||un->faction==cargofac||un->faction==upfac||un->faction==neutral) { ! if (dist<tooclose) ! return LOW_PRIORITY; else ! return LOWEST_PRIORITY; } Unit * targ = un->Target(); |