- bugfix (And removal) for stop command and animation stopping when upgrading

This commit is contained in:
Mark Vejvoda 2011-03-28 23:47:22 +00:00
parent 7560970590
commit 1fc330ace3
3 changed files with 5 additions and 43 deletions

View File

@ -36,8 +36,6 @@ using namespace Shared::Util;
namespace Glest{ namespace Game{
const int UnitPathBasic::maxBlockCount= GameConstants::updateFps / 2;
const int updateUnitForStopCommandFrameCount = 40;
const bool updateUnitForStopCommandFrameCountEnabled = false;
UnitPathBasic::UnitPathBasic() {
this->blockCount = 0;
@ -205,7 +203,6 @@ Unit::Unit(int id, UnitPathInterface *unitpath, const Vec2i &pos, const UnitType
throw runtime_error("#2 Invalid path position = " + pos.getString());
}
this->lastStopCommandCheckFrame = 0;
this->unitPath = unitpath;
this->unitPath->setMap(map);
this->pos=pos;
@ -1106,19 +1103,6 @@ bool Unit::needToUpdate() {
if(newProgress >= 1.f) {
return_value = true;
if(updateUnitForStopCommandFrameCountEnabled == true) {
if(currSkill->getClass() != scDie) {
if(currSkill->getClass() == scStop) {
return_value = false;
uint32 framesSinceLastCheck = (game->getWorld()->getFrameCount() - this->getLastStopCommandCheckFrame());
if(this->getLastStopCommandCheckFrame() <= 0 ||
framesSinceLastCheck >= updateUnitForStopCommandFrameCount) {
return_value = true;
}
}
}
}
}
}
return return_value;
@ -1212,17 +1196,6 @@ bool Unit::update() {
if(currSkill->getClass() != scDie) {
progress = 0.f;
return_value = true;
if(updateUnitForStopCommandFrameCountEnabled == true) {
if(currSkill->getClass() == scStop && this->anyCommand() == false) {
return_value = false;
uint32 framesSinceLastCheck = (game->getWorld()->getFrameCount() - this->getLastStopCommandCheckFrame());
if(this->getLastStopCommandCheckFrame() <= 0 ||
framesSinceLastCheck >= updateUnitForStopCommandFrameCount) {
this->setLastStopCommandCheckFrame(game->getWorld()->getFrameCount());
return_value = true;
}
}
}
}
else {
progress= 1.f;

View File

@ -331,7 +331,6 @@ private:
static Game *game;
bool ignoreCheckCommand;
uint32 lastStopCommandCheckFrame;
public:
Unit(int id, UnitPathInterface *path, const Vec2i &pos, const UnitType *type, Faction *faction, Map *map, CardinalDir placeFacing);
@ -497,9 +496,6 @@ public:
std::string toString() const;
bool needToUpdate();
uint32 getLastStopCommandCheckFrame() const {return lastStopCommandCheckFrame; }
void setLastStopCommandCheckFrame(uint32 value) { lastStopCommandCheckFrame = value; }
private:
float computeHeight(const Vec2i &pos) const;
void updateTarget();

View File

@ -269,16 +269,12 @@ void UnitUpdater::updateUnitCommand(Unit *unit, int frameIndex) {
if(unit->anyCommand() == false && unit->isOperative()) {
if(SystemFlags::getSystemSettingType(SystemFlags::debugUnitCommands).enabled) SystemFlags::OutputDebug(SystemFlags::debugUnitCommands,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
if(unit->getType()->hasSkillClass(scAttack) || unit->getType()->hasCommandClass(ccMove)) {
//printf("\n\n\n$$$$$$$$$ Unit [%s - %d] unitFrame [%d] WorldFrame [%d]\n",unit->getFullName().c_str(),unit->getId(),unit->getLastStopCommandCheckFrame(),world->getFrameCount());
if(unit->getType()->hasSkillClass(scStop)) {
unit->setCurrSkill(scStop);
}
if(unit->getType()->hasSkillClass(scStop)) {
unit->setCurrSkill(scStop);
}
if(unit->getType()->hasCommandClass(ccStop)) {
//SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
unit->giveCommand(new Command(unit->getType()->getFirstCtOfClass(ccStop)));
}
if(unit->getType()->hasCommandClass(ccStop)) {
unit->giveCommand(new Command(unit->getType()->getFirstCtOfClass(ccStop)));
}
}
}
@ -346,9 +342,6 @@ void UnitUpdater::updateStop(Unit *unit, int frameIndex) {
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",__FILE__,__FUNCTION__,__LINE__,chrono.getMillis());
}
// else {
// printf("\n\n\n################ Unit [%s - %d] unitFrame [%d] WorldFrame [%d]\n",unit->getFullName().c_str(),unit->getId(),unit->getLastStopCommandCheckFrame(),world->getFrameCount());
// }
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s] Line: %d took msecs: %lld --------------------------- [END OF METHOD] ---------------------------\n",__FILE__,__FUNCTION__,__LINE__,chrono.getMillis());
}