这篇教程C++ var函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中var函数的典型用法代码示例。如果您正苦于以下问题:C++ var函数的具体用法?C++ var怎么用?C++ var使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了var函数的22个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: falling_factorial inline var falling_factorial(const double& a, const var& b) { return var(new falling_factorial_dv_vari(a, b.vi_)); }
开发者ID:alyst,项目名称:math,代码行数:4,
示例2: CMod } else { NDebugOverlay::Line(begin, end, 0xff, 0x00, 0x00, true, 10.0f); } // ... } return result; } class CMod : public IMod { public: CMod() : IMod("Visualize:Melee_Range") { MOD_ADD_DETOUR_MEMBER(CTFWeaponBaseMelee_DoSwingTraceInternal, "CTFWeaponBaseMelee::DoSwingTraceInternal"); } }; CMod s_Mod; ConVar cvar_enable("sig_visualize_melee_range", "0", FCVAR_NOTIFY, "Visualization: melee range and bounds", [](IConVar *pConVar, const char *pOldValue, float flOldValue) { ConVarRef var(pConVar); s_Mod.Toggle(var.GetBool()); });}
开发者ID:sigsegv-mvm,项目名称:sigsegv-mvm,代码行数:30,
示例3: desugar void desugar(AST *&ast_) { if (auto *ast = dynamic_cast<Apply*>(ast_)) { desugar(ast->target); for (AST *&arg : ast->arguments) desugar(arg); } else if (auto *ast = dynamic_cast<Array*>(ast_)) { for (AST *&el : ast->elements) desugar(el); } else if (auto *ast = dynamic_cast<ArrayComprehension*>(ast_)) { for (ComprehensionSpec &spec : ast->specs) desugar(spec.expr); desugar(ast->body); int n = ast->specs.size(); AST *zero = make<LiteralNumber>(E, 0.0); AST *one = make<LiteralNumber>(E, 1.0); auto *_r = id(U"$r"); auto *_l = id(U"$l"); std::vector<const Identifier*> _i(n); for (int i = 0; i < n ; ++i) { StringStream ss; ss << U"$i_" << i; _i[i] = id(ss.str()); } std::vector<const Identifier*> _aux(n); for (int i = 0; i < n ; ++i) { StringStream ss; ss << U"$aux_" << i; _aux[i] = id(ss.str()); } // Build it from the inside out. We keep wrapping 'in' with more ASTs. assert(ast->specs[0].kind == ComprehensionSpec::FOR); int last_for = n - 1; while (ast->specs[last_for].kind != ComprehensionSpec::FOR) last_for--; // $aux_{last_for}($i_{last_for} + 1, $r + [body]) AST *in = make<Apply>( ast->body->location, var(_aux[last_for]), std::vector<AST*> { make<Binary>(E, var(_i[last_for]), BOP_PLUS, one), make<Binary>(E, var(_r), BOP_PLUS, singleton(ast->body)) }, true // tailstrict ); for (int i = n - 1; i >= 0 ; --i) { const ComprehensionSpec &spec = ast->specs[i]; AST *out; if (i > 0) { int prev_for = i - 1; while (ast->specs[prev_for].kind != ComprehensionSpec::FOR) prev_for--; // aux_{prev_for}($i_{prev_for} + 1, $r) out = make<Apply>( // False branch. E, var(_aux[prev_for]), std::vector<AST*> { make<Binary>(E, var(_i[prev_for]), BOP_PLUS, one), var(_r)}, true // tailstrict ); } else { out = var(_r); } switch (spec.kind) { case ComprehensionSpec::IF: { /* if [[[...cond...]]] then [[[...in...]]] else [[[...out...]]] */ in = make<Conditional>( ast->location, spec.expr, in, // True branch. out); // False branch. } break; case ComprehensionSpec::FOR: { /* local $l = [[[...array...]]]; local aux_{i}(i_{i}, r) = if i_{i} >= std.length(l) then [[[...out...]]] else local [[[...var...]]] = l[i_{i}]; [[[...in...]]] aux_{i}(0, r) tailstrict; */ in = make<Local>( ast->location, Local::Binds { {_l, spec.expr}, {_aux[i], make<Function>(//.........这里部分代码省略.........
开发者ID:johnboiles,项目名称:jsonnet,代码行数:101,
示例4: whilevoid PHPSourceFile::ParseFunctionSignature(int startingDepth){ phpLexerToken token; if(startingDepth == 0) { // loop until we find the open brace while(NextToken(token)) { if(token.type == '(') { ++startingDepth; break; } } if(startingDepth == 0) return; } // at this point the 'depth' is 1, as we already read the open brace int depth = 1; wxString typeHint; wxString defaultValue; PHPEntityVariable* var(NULL); bool collectingDefaultValue = false; while(NextToken(token)) { switch(token.type) { case kPHP_T_VARIABLE: if(!var) { // var can be non null if we are parsing PHP-7 function arguments // with type-hinting var = new PHPEntityVariable(); } var->SetFullName(token.text); var->SetLine(token.lineNumber); var->SetFilename(m_filename); // Mark this variable as function argument var->SetFlag(kVar_FunctionArg); if(typeHint.EndsWith("&")) { var->SetIsReference(true); typeHint.RemoveLast(); } var->SetTypeHint(MakeIdentifierAbsolute(typeHint)); break; case '(': depth++; if(collectingDefaultValue) { defaultValue << "("; } break; case ')': depth--; // if the depth goes under 1 - we are done if(depth < 1) { if(var) { var->SetDefaultValue(defaultValue); CurrentScope()->AddChild(PHPEntityBase::Ptr_t(var)); } return; } else if(depth) { defaultValue << token.text; } break; case '=': // default value collectingDefaultValue = true; break; case ',': if(var) { var->SetDefaultValue(defaultValue); CurrentScope()->AddChild(PHPEntityBase::Ptr_t(var)); } var = NULL; typeHint.Clear(); defaultValue.Clear(); collectingDefaultValue = false; break; case kPHP_T_IDENTIFIER: if(!var) { // PHP-7 type hinting function arguments var = new PHPEntityVariable(); UngetToken(token); typeHint = ReadType(); if(!typeHint.IsEmpty()) { break; } } // all "else" cases simply fall into the default case default: if(collectingDefaultValue) { defaultValue << token.text; } else { typeHint << token.text; } break; } }}
开发者ID:292388900,项目名称:codelite,代码行数:95,
示例5: Q_ASSERTQByteArray GraphExport::generateBin(){ GraphCurve *c = m_curves->at(ui->curveBox->itemData(ui->curveBox->currentIndex()).toInt())->curve; Q_ASSERT(c); QByteArray bin; QBuffer buff(&bin); buff.open(QIODevice::WriteOnly); bool big = !ui->endianBox->currentIndex(); int idxW = (1 << ui->idxWidthBox->currentIndex()); for(quint32 i = 0; i < c->getSize(); ++i) { emit updateProgress(i*100/c->getSize()); if(ui->indexBox->isChecked()) { quint64 idx = i; Utils::swapEndian(idx); if(!big) Utils::swapEndian(((char*)&idx)+(sizeof(idx)-idxW), idxW); buff.write(((char*)&idx)+(sizeof(idx)-idxW), idxW); } qreal s = c->sample(i).y(); switch(c->getDataType()) { case NUM_FLOAT: { float f = s; buff.write((char*)&f, sizeof(f)); break; } case NUM_DOUBLE: buff.write((char*)&s, sizeof(s)); break; default: { QVariant var(s); switch(c->getDataType()) { case NUM_UINT8: case NUM_INT8: { quint8 y = var.toInt(); if(big) Utils::swapEndian((char*)&y, sizeof(y)); buff.write((char*)&y, sizeof(y)); break; } case NUM_UINT16: case NUM_INT16: { quint16 y = var.toInt(); if(big) Utils::swapEndian((char*)&y, sizeof(y)); buff.write((char*)&y, sizeof(y)); break; } case NUM_UINT32: case NUM_INT32: { quint32 y = var.toInt(); if(big) Utils::swapEndian((char*)&y, sizeof(y)); buff.write((char*)&y, sizeof(y)); break; } case NUM_UINT64: case NUM_INT64: { quint64 y = var.toLongLong(); if(big) Utils::swapEndian((char*)&y, sizeof(y)); buff.write((char*)&y, sizeof(y)); break; } } break; } } } buff.close(); return bin;}
开发者ID:dimitarm1,项目名称:Lorris,代码行数:82,
示例6: varvoid Win32MakefileGenerator::writeStandardParts(QTextStream &t){ t << "####### Compiler, tools and options" << endl << endl; t << "CC = " << var("QMAKE_CC") << endl; t << "CXX = " << var("QMAKE_CXX") << endl; t << "DEFINES = " << varGlue("PRL_EXPORT_DEFINES","-D"," -D"," ") << varGlue("DEFINES","-D"," -D","") << endl; t << "CFLAGS = " << var("QMAKE_CFLAGS") << " $(DEFINES)" << endl; t << "CXXFLAGS = " << var("QMAKE_CXXFLAGS") << " $(DEFINES)" << endl; writeIncPart(t); writeLibsPart(t); t << "QMAKE = " << var("QMAKE_QMAKE") << endl; t << "IDC = " << (project->isEmpty("QMAKE_IDC") ? QString("idc") : Option::fixPathToTargetOS(var("QMAKE_IDC"), false)) << endl; t << "IDL = " << (project->isEmpty("QMAKE_IDL") ? QString("midl") : Option::fixPathToTargetOS(var("QMAKE_IDL"), false)) << endl; t << "ZIP = " << var("QMAKE_ZIP") << endl; t << "DEF_FILE = " << varList("DEF_FILE") << endl; t << "RES_FILE = " << varList("RES_FILE") << endl; // Not on mingw, can't see why not though... t << "COPY = " << var("QMAKE_COPY") << endl; t << "COPY_FILE = " << var("QMAKE_COPY_FILE") << endl; t << "COPY_DIR = " << var("QMAKE_COPY_DIR") << endl; t << "DEL_FILE = " << var("QMAKE_DEL_FILE") << endl; t << "DEL_DIR = " << var("QMAKE_DEL_DIR") << endl; t << "MOVE = " << var("QMAKE_MOVE") << endl; t << "CHK_DIR_EXISTS= " << var("QMAKE_CHK_DIR_EXISTS") << endl; t << "MKDIR = " << var("QMAKE_MKDIR") << endl; t << "INSTALL_FILE = " << var("QMAKE_INSTALL_FILE") << endl; t << "INSTALL_PROGRAM = " << var("QMAKE_INSTALL_PROGRAM") << endl; t << "INSTALL_DIR = " << var("QMAKE_INSTALL_DIR") << endl; t << endl; t << "####### Output directory" << endl << endl; if(!project->values("OBJECTS_DIR").isEmpty()) t << "OBJECTS_DIR = " << var("OBJECTS_DIR").replace(QRegExp("////$"),"") << endl; else t << "OBJECTS_DIR = . " << endl; t << endl; t << "####### Files" << endl << endl; t << "SOURCES = " << valList(escapeFilePaths(project->values("SOURCES"))) << " " << valList(escapeFilePaths(project->values("GENERATED_SOURCES"))) << endl; // do this here so we can set DEST_TARGET to be the complete path to the final target if it is needed. QString orgDestDir = var("DESTDIR"); QString destDir = Option::fixPathToTargetOS(orgDestDir, false); if (!destDir.isEmpty() && (orgDestDir.endsWith('/') || orgDestDir.endsWith(Option::dir_sep))) destDir += Option::dir_sep; QString target = QString(project->first("TARGET")+project->first("TARGET_EXT")); target.remove("/""); project->values("DEST_TARGET").prepend(destDir + target); writeObjectsPart(t); writeExtraCompilerVariables(t); writeExtraVariables(t); t << "DIST = " << varList("DISTFILES") << endl; t << "QMAKE_TARGET = " << var("QMAKE_ORIG_TARGET") << endl; // The comment is important to maintain variable compatibility with Unix // Makefiles, while not interpreting a trailing-slash as a linebreak t << "DESTDIR = " << escapeFilePath(destDir) << " #avoid trailing-slash linebreak" << endl; t << "TARGET = " << escapeFilePath(target) << endl; t << "DESTDIR_TARGET = " << escapeFilePath(var("DEST_TARGET")) << endl; t << endl; t << "####### Implicit rules" << endl << endl; writeImplicitRulesPart(t); t << "####### Build rules" << endl << endl; writeBuildRulesPart(t); if(project->isActiveConfig("shared") && !project->values("DLLDESTDIR").isEmpty()) { QStringList dlldirs = project->values("DLLDESTDIR"); for (QStringList::Iterator dlldir = dlldirs.begin(); dlldir != dlldirs.end(); ++dlldir) { t << "/n/t" << "-$(COPY_FILE) /"$(DESTDIR_TARGET)/" " << Option::fixPathToTargetOS(*dlldir, false); } } t << endl << endl; writeRcFilePart(t); writeMakeQmake(t); QStringList dist_files = fileFixify(Option::mkfile::project_files); if(!project->isEmpty("QMAKE_INTERNAL_INCLUDED_FILES")) dist_files += project->values("QMAKE_INTERNAL_INCLUDED_FILES"); if(!project->isEmpty("TRANSLATIONS")) dist_files << var("TRANSLATIONS"); if(!project->isEmpty("FORMS")) { QStringList &forms = project->values("FORMS"); for(QStringList::Iterator formit = forms.begin(); formit != forms.end(); ++formit) { QString ui_h = fileFixify((*formit) + Option::h_ext.first()); if(exists(ui_h)) dist_files << ui_h; } }//.........这里部分代码省略.........
开发者ID:husninazer,项目名称:qt,代码行数:101,
示例7: multiply_log /** * Return the value of a*log(b). * * When both a and b are 0, the value returned is 0. * The partial deriviative with respect to a is log(b). * The partial deriviative with respect to b is a/b. When * a and b are both 0, this is set to Inf. * * @param a First variable. * @param b Second variable. * @return Value of a*log(b) */ inline var multiply_log(const var& a, const var& b) { return var(new multiply_log_vv_vari(a.vi_, b.vi_)); }
开发者ID:alyst,项目名称:math,代码行数:15,
示例8: TESTTEST(Variant, Casts) { // Test Resource cast operations { EXPECT_FALSE(isa<DummyResource>(Variant())); EXPECT_TRUE(isa_or_null<DummyResource>(Variant())); EXPECT_FALSE(isa<DummyResource>(Variant(true))); EXPECT_FALSE(isa_or_null<DummyResource>(Variant(true))); auto dummy = req::make<DummyResource>(); Variant var(dummy); Variant empty; EXPECT_TRUE(isa<DummyResource>(var)); EXPECT_TRUE(isa_or_null<DummyResource>(var)); EXPECT_FALSE(isa<File>(var)); EXPECT_FALSE(isa_or_null<File>(var)); // cast tests // Bad types and null pointers should throw. EXPECT_EQ(cast<DummyResource>(var), dummy); EXPECT_EQ(cast<ResourceData>(var), dummy); try { cast<File>(var); EXPECT_FALSE(true); } catch(...) { EXPECT_TRUE(true); } try { cast<c_Map>(var); EXPECT_FALSE(true); } catch(...) { EXPECT_TRUE(true); } try { cast<DummyResource>(empty); EXPECT_FALSE(true); } catch(...) { EXPECT_TRUE(true); } // cast_or_null tests // Bad types should throw, null pointers are ok. EXPECT_EQ(cast_or_null<ResourceData>(empty), nullptr); EXPECT_EQ(cast_or_null<ResourceData>(var), dummy); try { cast_or_null<File>(var); EXPECT_FALSE(true); } catch(...) { EXPECT_TRUE(true); } try { cast_or_null<c_Map>(var); EXPECT_FALSE(true); } catch(...) { EXPECT_TRUE(true); } // dyn_cast tests // Bad types are ok, null pointers should throw. EXPECT_EQ(dyn_cast<DummyResource>(var), dummy); EXPECT_EQ(dyn_cast<ResourceData>(var), dummy); EXPECT_EQ(dyn_cast<File>(var), nullptr); EXPECT_EQ(dyn_cast<c_Map>(var), nullptr); try { dyn_cast<DummyResource>(Variant()); EXPECT_FALSE(true); } catch(...) { EXPECT_TRUE(true); } // dyn_cast_or_null // Bad types and null pointers are ok. Should never throw. EXPECT_EQ(dyn_cast_or_null<ResourceData>(empty), nullptr); EXPECT_EQ(dyn_cast_or_null<ResourceData>(var), dummy); EXPECT_EQ(dyn_cast_or_null<c_Map>(var), nullptr); } // Test Object cast operations { EXPECT_FALSE(isa<c_Vector>(Variant())); EXPECT_TRUE(isa_or_null<c_Vector>(Variant())); EXPECT_FALSE(isa<c_Vector>(Variant(true))); EXPECT_FALSE(isa_or_null<c_Vector>(Variant(true))); auto dummy = req::make<c_Vector>(); Variant var(dummy); Variant empty; EXPECT_TRUE(isa<c_Vector>(var)); EXPECT_TRUE(isa_or_null<c_Vector>(var)); EXPECT_FALSE(isa<c_Map>(var)); EXPECT_FALSE(isa_or_null<c_Map>(var)); // cast tests // Bad types and null pointers should throw. EXPECT_EQ(cast<c_Vector>(var), dummy); EXPECT_EQ(cast<ObjectData>(var), dummy); try { cast<c_Map>(var);//.........这里部分代码省略.........
开发者ID:BruceZu,项目名称:hhvm,代码行数:101,
示例9: varvoid DynamicObject::setMethod (const Identifier& name, var::MethodFunction methodFunction){ properties.set (name, var (methodFunction));}
开发者ID:Krewn,项目名称:LIOS,代码行数:5,
示例10: owens_t /** * The Owen's T function of h and a. * * Used to compute the cumulative density function for the skew normal * distribution. * * @param h double parameter. * @param a var parameter. * @return The Owen's T function. */ inline var owens_t(double h, const var& a) { return var(new owens_t_dv_vari(h, a.vi_)); }
开发者ID:alyst,项目名称:math,代码行数:13,
示例11: CalcBeliefvoid LC::CalcBelief (size_t i) { _beliefs[i] = _pancakes[i].marginal(var(i));}
开发者ID:afbarnard,项目名称:libdai,代码行数:3,
示例12: CPatch_UncapChargeRate_Common//.........这里部分代码省略......... /* NOP out the MINSS instruction */ buf.SetRange(0x18, 8, 0x90); mask.SetRange(0x18, 8, 0xff); return true; } }; struct CPatch_UncapChargeRate_CTFSniperRifle : public CPatch_UncapChargeRate_Common { virtual const char *GetFuncName() const override { return "CTFSniperRifle::ItemPostFrame"; } virtual uint32_t GetFuncOffMin() const override { return 0x0000; } virtual uint32_t GetFuncOffMax() const override { return 0x0380; } // @ 0x026a }; struct CPatch_UncapChargeRate_CTFSniperRifleClassic : CPatch_UncapChargeRate_Common { virtual const char *GetFuncName() const override { return "CTFSniperRifleClassic::ItemPostFrame"; } virtual uint32_t GetFuncOffMin() const override { return 0x0000; } virtual uint32_t GetFuncOffMax() const override { return 0x0280; } // @ 0x0146 }; #elif defined _WINDOWS constexpr uint8_t s_Buf[] = { 0xa1, 0x00, 0x00, 0x00, 0x00, // +0000 mov eax,DWORD PTR [xxxxxxxx] 0xf3, 0x0f, 0x10, 0x05, 0x00, 0x00, 0x00, 0x00, // +0005 movss xmm0,DWORD PTR [xxxxxxxx] 0xf3, 0x0f, 0x10, 0x50, 0x10, // +000D movss xmm2,DWORD PTR [eax+0x10] 0xd9, 0x5d, 0x00, // +0012 fstp [ebp-0xXX] 0xf3, 0x0f, 0x10, 0x4d, 0x00, // +0015 movss xmm1,[ebp-0xXX] 0xf3, 0x0f, 0x5f, 0xc8, // +001A maxss xmm1,xmm0 0xf3, 0x0f, 0x10, 0x05, 0x00, 0x00, 0x00, 0x00, // +001E movss xmm0,DWORD PTR [xxxxxxxx] 0xf3, 0x0f, 0x5d, 0xc8, // +0026 minss xmm1,xmm0 0xf3, 0x0f, 0x10, 0x05, 0x00, 0x00, 0x00, 0x00, // +002A movss xmm0,DWORD PTR [xxxxxxxx] }; struct CPatch_UncapChargeRate_Common : public CPatch { CPatch_UncapChargeRate_Common() : CPatch(sizeof(s_Buf)) {} virtual bool GetVerifyInfo(ByteBuf& buf, ByteBuf& mask) const override { buf.CopyFrom(s_Buf); mask.SetRange(0x00 + 1, 4, 0x00); mask.SetRange(0x05 + 4, 4, 0x00); mask.SetRange(0x12 + 2, 1, 0x00); mask.SetRange(0x15 + 4, 1, 0x00); mask.SetRange(0x1e + 4, 4, 0x00); mask.SetRange(0x2a + 4, 4, 0x00); return true; } virtual bool GetPatchInfo(ByteBuf& buf, ByteBuf& mask) const override { /* NOP out the MINSS instruction */ buf.SetRange(0x26, 4, 0x90); mask.SetRange(0x26, 4, 0xff); return true; } }; struct CPatch_UncapChargeRate_CTFSniperRifle : public CPatch_UncapChargeRate_Common { virtual const char *GetFuncName() const override { return "CTFSniperRifle::ItemPostFrame"; } virtual uint32_t GetFuncOffMin() const override { return 0x0000; } virtual uint32_t GetFuncOffMax() const override { return 0x0200; } // @ 0x16e }; struct CPatch_UncapChargeRate_CTFSniperRifleClassic : CPatch_UncapChargeRate_Common { virtual const char *GetFuncName() const override { return "CTFSniperRifleClassic::ItemPostFrame"; } virtual uint32_t GetFuncOffMin() const override { return 0x0000; } virtual uint32_t GetFuncOffMax() const override { return 0x0200; } // @ 0x162 }; #endif class CMod : public IMod { public: CMod() : IMod("Sniper:Charge_Uncap") { this->AddPatch(new CPatch_UncapChargeRate_CTFSniperRifle()); this->AddPatch(new CPatch_UncapChargeRate_CTFSniperRifleClassic()); } }; CMod s_Mod; ConVar cvar_enable("sig_sniper_charge_uncap", "0", FCVAR_NOTIFY, "Mod: remove the 200 percent upper limit on sniper rifle charge rate", [](IConVar *pConVar, const char *pOldValue, float flOldValue) { ConVarRef var(pConVar); s_Mod.Toggle(var.GetBool()); });}
开发者ID:sigsegv-mvm,项目名称:sigsegv-mvm,代码行数:101,
示例13: DETOUR_DECL_MEMBERnamespace Mod_Robot_Building_Stomp{ RefCount rc_CTFBotMainAction_OnContact; RefCount rc_CTFBotMainAction_OnStuck; CTFBot *bot_contact = nullptr; CTFBot *bot_stuck = nullptr; DETOUR_DECL_MEMBER(EventDesiredResult<CTFBot>, CTFBotMainAction_OnContact, CTFBot *actor, CBaseEntity *ent, CGameTrace *trace) { SCOPED_INCREMENT(rc_CTFBotMainAction_OnContact); bot_contact = actor; return DETOUR_MEMBER_CALL(CTFBotMainAction_OnContact)(actor, ent, trace); } DETOUR_DECL_MEMBER(EventDesiredResult<CTFBot>, CTFBotMainAction_OnStuck, CTFBot *actor) { SCOPED_INCREMENT(rc_CTFBotMainAction_OnStuck); bot_stuck = actor; return DETOUR_MEMBER_CALL(CTFBotMainAction_OnStuck)(actor); } // CTFBotMainAction::OnContact: giant bots instant stomp // CTFBotMainAction::OnStuck: all bots delayed stomp ConVar cvar_contact_nodamage("sig_robot_building_stomp_contact_nodamage", "1", FCVAR_NOTIFY, "OnContact stomp (instant, giants only): prevent damage from being done"); ConVar cvar_contact_addknown("sig_robot_building_stomp_contact_addknown", "1", FCVAR_NOTIFY, "OnContact stomp (instant, giants only): make robot immediately aware of building"); ConVar cvar_stuck_nodamage("sig_robot_building_stomp_stuck_nodamage", "1", FCVAR_NOTIFY, "OnStuck stomp (delayed, all robots): prevent damage from being done"); ConVar cvar_stuck_addknown("sig_robot_building_stomp_stuck_addknown", "1", FCVAR_NOTIFY, "OnStuck stomp (delayed, all robots): make robot immediately aware of building"); void AddKnownToBot(CTFBot *bot, CBaseEntity *ent) { IVision *vision = bot->GetVisionInterface(); if (vision->GetKnown(ent) == nullptr) { vision->AddKnownEntity(ent); } } DETOUR_DECL_MEMBER(int, CBaseEntity_TakeDamage, const CTakeDamageInfo& info) { auto ent = reinterpret_cast<CBaseEntity *>(this); if (ent->IsBaseObject() && info.GetDamageType() == DMG_BLAST && info.GetDamageCustom() == TF_DMG_CUSTOM_NONE) { if (rc_CTFBotMainAction_OnContact > 0 && bot_contact != nullptr && info.GetInflictor() == bot_contact && info.GetAttacker() == bot_contact) { if (cvar_contact_addknown.GetBool()) { AddKnownToBot(bot_contact, ent); } if (cvar_contact_nodamage.GetBool()) { DevMsg("Preventing damage due to giant-robot-vs-building instant stomp from CTFBotMainAction::OnContact/n"); return 0; } } if (rc_CTFBotMainAction_OnStuck > 0 && bot_stuck != nullptr && info.GetInflictor() == bot_stuck && info.GetAttacker() == bot_stuck) { if (cvar_stuck_addknown.GetBool()) { AddKnownToBot(bot_stuck, ent); } if (cvar_stuck_nodamage.GetBool()) { DevMsg("Preventing damage due to robot-vs-building delayed stomp from CTFBotMainAction::OnStuck/n"); return 0; } } } return DETOUR_MEMBER_CALL(CBaseEntity_TakeDamage)(info); } class CMod : public IMod { public: CMod() : IMod("Robot:Building_Stomp") { MOD_ADD_DETOUR_MEMBER(CTFBotMainAction_OnContact, "CTFBotMainAction::OnContact"); MOD_ADD_DETOUR_MEMBER(CTFBotMainAction_OnStuck, "CTFBotMainAction::OnStuck"); MOD_ADD_DETOUR_MEMBER(CBaseEntity_TakeDamage, "CBaseEntity::TakeDamage"); } }; CMod s_Mod; ConVar cvar_enable("sig_robot_building_stomp", "0", FCVAR_NOTIFY, "Mod: replace robots' stuck-with-building-stomp ability with something less stupid", [](IConVar *pConVar, const char *pOldValue, float flOldValue) { ConVarRef var(pConVar); s_Mod.Toggle(var.GetBool()); });//.........这里部分代码省略.........
开发者ID:sigsegv-mvm,项目名称:sigsegv-mvm,代码行数:101,
示例14: log_determinant_spd inline var log_determinant_spd(const Eigen::Matrix<var,R,C>& m) { stan::math::validate_square(m,"log_determinant_spd"); return var(new log_determinant_spd_vari<R,C>(m)); }
开发者ID:dougalsutherland,项目名称:pystan,代码行数:4,
示例15: ifvoid MingwMakefileGenerator::init(){ if(init_flag) return; init_flag = true; /* this should probably not be here, but I'm using it to wrap the .t files */ if(project->first("TEMPLATE") == "app") project->values("QMAKE_APP_FLAG").append("1"); else if(project->first("TEMPLATE") == "lib") project->values("QMAKE_LIB_FLAG").append("1"); else if(project->first("TEMPLATE") == "subdirs") { MakefileGenerator::init(); if(project->isEmpty("QMAKE_COPY_FILE")) project->values("QMAKE_COPY_FILE").append("$(COPY)"); if(project->isEmpty("QMAKE_COPY_DIR")) project->values("QMAKE_COPY_DIR").append("xcopy /s /q /y /i"); if(project->isEmpty("QMAKE_INSTALL_FILE")) project->values("QMAKE_INSTALL_FILE").append("$(COPY_FILE)"); if(project->isEmpty("QMAKE_INSTALL_PROGRAM")) project->values("QMAKE_INSTALL_PROGRAM").append("$(COPY_FILE)"); if(project->isEmpty("QMAKE_INSTALL_DIR")) project->values("QMAKE_INSTALL_DIR").append("$(COPY_DIR)"); if(project->values("MAKEFILE").isEmpty()) project->values("MAKEFILE").append("Makefile"); return; } project->values("TARGET_PRL").append(project->first("TARGET")); processVars(); if (!project->values("RES_FILE").isEmpty()) { project->values("QMAKE_LIBS") += escapeFilePaths(project->values("RES_FILE")); } // LIBS defined in Profile comes first for gcc project->values("QMAKE_LIBS") += escapeFilePaths(project->values("LIBS")); project->values("QMAKE_LIBS_PRIVATE") += escapeFilePaths(project->values("LIBS_PRIVATE")); QString targetfilename = project->values("TARGET").first(); QStringList &configs = project->values("CONFIG"); if(project->isActiveConfig("qt_dll")) if(configs.indexOf("qt") == -1) configs.append("qt"); if(project->isActiveConfig("dll") && project->values("QMAKE_SYMBIAN_SHLIB").isEmpty()) { QString destDir = ""; if(!project->first("DESTDIR").isEmpty()) destDir = Option::fixPathToTargetOS(project->first("DESTDIR") + Option::dir_sep, false, false); project->values("MINGW_IMPORT_LIB").prepend(destDir + "lib" + project->first("TARGET") + project->first("TARGET_VERSION_EXT") + ".a"); project->values("QMAKE_LFLAGS").append(QString("-Wl,--out-implib,") + project->first("MINGW_IMPORT_LIB")); } if(!project->values("DEF_FILE").isEmpty() && project->values("QMAKE_SYMBIAN_SHLIB").isEmpty()) project->values("QMAKE_LFLAGS").append(QString("-Wl,") + project->first("DEF_FILE")); MakefileGenerator::init(); // precomp if (!project->first("PRECOMPILED_HEADER").isEmpty() && project->isActiveConfig("precompile_header")) { QString preCompHeader = var("PRECOMPILED_DIR") + QFileInfo(project->first("PRECOMPILED_HEADER")).fileName(); preCompHeaderOut = preCompHeader + ".gch"; project->values("QMAKE_CLEAN").append(preCompHeaderOut + Option::dir_sep + "c"); project->values("QMAKE_CLEAN").append(preCompHeaderOut + Option::dir_sep + "c++"); project->values("QMAKE_RUN_CC").clear(); project->values("QMAKE_RUN_CC").append("$(CC) -c -include " + preCompHeader + " $(CFLAGS) $(INCPATH) -o $obj $src"); project->values("QMAKE_RUN_CC_IMP").clear(); project->values("QMAKE_RUN_CC_IMP").append("$(CC) -c -include " + preCompHeader + " $(CFLAGS) $(INCPATH) -o [email C++ var_AddCallback函数代码示例 C++ value_type函数代码示例
|