本文整理汇总了C++中aithread::saveDebug方法的典型用法代码示例。如果您正苦于以下问题:C++ aithread::saveDebug方法的具体用法?C++ aithread::saveDebug怎么用?C++ aithread::saveDebug使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类aithread
的用法示例。
在下文中一共展示了aithread::saveDebug方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: execute
bool Debug::execute(aithread &thread) const
{
// Perform independant behaviours
if ( this->getOpcode() == AISCRIPT::Enum::FATAL_ERROR )
{
// Message
Broodwar->sendText("Illegal AI script executed.");
// Debug
thread.saveDebug(Text::Green, this->getOpcode());
// Kill the script
thread.killThread();
thread.noretry();
return false;
}
else if ( this->getOpcode() == AISCRIPT::Enum::DEBUG )
{
// Read parameters
WORD wJump;
thread.readTuple( std::tie( wJump) );
// Send the message
Broodwar->sendText("%s", &pbAIScriptBinary[thread.getScriptOffset()] );
// Jump to offset
thread.setScriptOffset(wJump);
thread.saveDebug(Text::Green, this->getOpcode(), "p_%X %s", wJump, &pbAIScriptBinary[thread.getScriptOffset()]);
}
return true;
}
示例2: execute
bool Capt_Expand::execute(aithread &thread) const
{
// Save debug info and return
thread.saveDebug(Text::Red, this->getOpcode());
return true;
}
示例3: execute
bool Enter_Transport::execute(aithread &thread) const
{
if ( this->getOpcode() == AISCRIPT::Enum::ENTER_BUNKER || this->getOpcode() == AISCRIPT::Enum::ENTER_TRANSPORT )
{
Unitset unitsForTrans( Broodwar->getUnitsInRectangle(thread.getLocation().topLeft, thread.getLocation().bottomRight,
this->getOpcode() == AISCRIPT::Enum::ENTER_BUNKER ? bunkerProc : transProc) );
// Iterate the units that are to enter the bunkers
for ( auto u : unitsForTrans )
{
// Find a bunker closest to the current unit that has space available
Unit pClosest = u->getClosestUnit( (this->getOpcode() == AISCRIPT::Enum::ENTER_BUNKER ? GetType == UnitTypes::Terran_Bunker : GetType != UnitTypes::Terran_Bunker) &&
IsTransport &&
GetPlayer == Broodwar->self() &&
SpaceRemaining >= u->getType().spaceRequired() );
if ( pClosest ) // If a bunker was found
u->rightClick(pClosest);
}
}
else if ( this->getOpcode() == AISCRIPT::Enum::EXIT_TRANSPORT )
{
// Normally we are supposed to check the type here, but we don't need to save processing time and can let BWAPI sort it out
Broodwar->getUnitsInRectangle(thread.getLocation().topLeft, thread.getLocation().bottomRight).unloadAll();
}
// Debug and return
thread.saveDebug(Text::Green, this->getOpcode());
return true;
}
示例4: execute
bool Killable::execute(aithread &thread) const
{
thread.setFlags(AI_THREAD_KILLABLE);
// Save debug info and return
thread.saveDebug(Text::Green, this->getOpcode());
return true;
}
示例5: execute
bool Target_Expansion::execute(aithread &thread) const
{
// Set campaign flag
MainController.setFlags(CONTROLLER_TARGET_EXPANSION);
// Save debug info and return
thread.saveDebug(Text::Green, this->getOpcode());
return true;
}
示例6: execute
bool Start_Campaign::execute(aithread &thread) const
{
// Set campaign flag
MainController.setFlags(CONTROLLER_IS_CAMPAIGN);
// Save debug info and return
thread.saveDebug(Text::Green, this->getOpcode());
return true;
}
示例7: execute
bool Check_Transports::execute(aithread &thread) const
{
if ( this->getOpcode() == AISCRIPT::Enum::TRANSPORTS_OFF ) // off
MainController.setFlags(CONTROLLER_TRANSPORTS_OFF);
else // on
MainController.clearFlags(CONTROLLER_TRANSPORTS_OFF);
// Debug and return
thread.saveDebug(Text::Green, this->getOpcode());
return true;
}
示例8: execute
bool Default_Build::execute(aithread &thread) const
{
if ( this->getOpcode() == AISCRIPT::Enum::DEFAULTBUILD_OFF ) // off
MainController.setFlags(CONTROLLER_DEFAULT_BUILD_OFF);
else // on
MainController.clearFlags(CONTROLLER_DEFAULT_BUILD_OFF);
// Debug and return
thread.saveDebug(Text::Green, this->getOpcode());
return true;
}
示例9: execute
bool Farms_Timing::execute(aithread &thread) const
{
if ( this->getOpcode() == AISCRIPT::Enum::FARMS_NOTIMING ) // off
MainController.setFlags(CONTROLLER_FARMS_TIMING_OFF);
else // on
MainController.clearFlags(CONTROLLER_FARMS_TIMING_OFF);
// Debug and return
thread.saveDebug(Text::Green, this->getOpcode());
return true;
}
示例10: execute
bool Harass_Factor::execute(aithread &thread) const
{
// Parameters
WORD wUnknown;
thread.readTuple( std::tie( wUnknown ) );
// HarassFactor(wUnk);
// Save debug info and return
thread.saveDebug(Text::Red, this->getOpcode(), "%u", wUnknown);
return true;
}
示例11: execute
bool Wait_Upgrades::execute(aithread &thread) const
{
// Debug
thread.saveDebug(Text::Green, this->getOpcode());
// If upgrades are finished, then move on to next opcode
if ( MainController.getFlags() & CONTROLLER_UPGRADES_FINISHED )
return thread.noretry();
// Otherwise retry this opcode
return thread.retry();
}
示例12: execute
bool Kill_Thread::execute(aithread &thread) const
{
for ( auto i = aiThreadList.begin(); i != aiThreadList.end(); ++i )
{
if ( i->getFlags() & AI_THREAD_KILLABLE )
i->killThread();
}
// Save debug info and return
thread.saveDebug(Text::Green, this->getOpcode());
return true;
}
示例13: execute
bool Wait_FinishAttack::execute(aithread &thread) const
{
// Debug
thread.saveDebug(Text::Red, this->getOpcode());
// Check if AI is attacking
// if ( AIIsAttacking )
{
return thread.noretry();
}
return thread.retry();
}
示例14: execute
bool Nuke_Rate::execute(aithread &thread) const
{
// Parameters
BYTE bNukeRate;
thread.readTuple( std::tie( bNukeRate ) );
// Assign to controller
MainController.bNukeRate = bNukeRate;
// Save debug info and return
thread.saveDebug(Text::Green, this->getOpcode());
return true;
}
示例15: execute
bool Allies_Watch::execute(aithread &thread) const
{
// Params
BYTE bExpansionId;
WORD wBlock;
thread.readTuple( std::tie(bExpansionId, wBlock) );
// @TODO
// Save debug info and return
thread.saveDebug(Text::Red, this->getOpcode(), "%u %04X", bExpansionId, wBlock);
return true;
}