本文整理汇总了C++中SortedVector::elementAt方法的典型用法代码示例。如果您正苦于以下问题:C++ SortedVector::elementAt方法的具体用法?C++ SortedVector::elementAt怎么用?C++ SortedVector::elementAt使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SortedVector
的用法示例。
在下文中一共展示了SortedVector::elementAt方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: addStaticDots
void LootManagerImplementation::addStaticDots(TangibleObject* object, LootItemTemplate* templateObject, int level) {
if (object == NULL)
return;
if (!object->isWeaponObject())
return;
ManagedReference<WeaponObject*> weapon = cast<WeaponObject*>(object);
bool shouldGenerateDots = false;
float dotChance = templateObject->getStaticDotChance();
if (dotChance < 0)
return;
// Apply the Dot if the chance roll equals the number or is zero.
if (dotChance == 0 || System::random(dotChance) == 0) { // Defined in loot item script.
shouldGenerateDots = true;
}
if (shouldGenerateDots) {
int dotType = templateObject->getStaticDotType();
if (dotType < 1 || dotType > 4)
return;
VectorMap<String, SortedVector<int> >* dotValues = templateObject->getStaticDotValues();
int size = dotValues->size();
// Check if they specified correct vals.
if (size > 0) {
weapon->addDotType(dotType);
for (int i = 0; i < size; i++) {
String property = dotValues->elementAt(i).getKey();
SortedVector<int> theseValues = dotValues->elementAt(i).getValue();
int min = theseValues.elementAt(0);
int max = theseValues.elementAt(1);
float value = 0;
if (max != min) {
value = calculateDotValue(min, max, level);
}
else { value = max; }
if(property == "attribute") {
if (min != max)
value = System::random(max - min) + min;
if (dotType != 2 && (value != 0 && value != 3 && value != 6)) {
int numbers[] = { 0, 3, 6 }; // The main pool attributes.
int choose = System::random(2);
value = numbers[choose];
}
weapon->addDotAttribute(value);
} else if (property == "strength") {
weapon->addDotStrength(value);
} else if (property == "duration") {
weapon->addDotDuration(value);
} else if (property == "potency") {
weapon->addDotPotency(value);
} else if (property == "uses") {
weapon->addDotUses(value);
}
}
}
}
}
示例2: initializeSession
int CreateVendorSessionImplementation::initializeSession() {
ManagedReference<CreatureObject*> player = this->player.get();
if (player == NULL)
return 0;
if (player->containsActiveSession(SessionFacadeType::CREATEVENDOR)) {
player->sendSystemMessage("@player_structure:already_creating"); // You are already creating a vendor.
return 0;
}
ManagedReference<PlayerObject*> ghost = player->getPlayerObject();
if (ghost == NULL) {
cancelSession();
return 0;
}
if (ghost->getVendorCount() >= player->getSkillMod("manage_vendor")) {
player->sendSystemMessage("@player_structure:full_vendors"); // You are already managing your maximum number of vendors. Fire someone or remove a terminal first!
cancelSession();
return 0;
}
SortedVector<unsigned long long>* ownedVendors = ghost->getOwnedVendors();
for (int i = 0; i < ownedVendors->size(); i++) {
ManagedReference<SceneObject*> vendor = player->getZoneServer()->getObject(ownedVendors->elementAt(i));
if (vendor == NULL)
continue;
DataObjectComponentReference* data = vendor->getDataObjectComponent();
if(data == NULL || data->get() == NULL || !data->get()->isVendorData())
continue;
VendorDataComponent* vendorData = cast<VendorDataComponent*>(data->get());
if(vendorData == NULL)
continue;
if (!vendorData->isInitialized()) {
player->sendSystemMessage("@player_structure:already_creating"); // You are already creating a vendor.
cancelSession();
return 0;
}
}
currentNode = VendorManager::instance()->getRootNode();
templatePath = "";
if (!currentNode->hasChildNode()) {
cancelSession();
error("Vendor Root node has no children");
return 0;
}
int hiringMod = player->getSkillMod("hiring");
suiSelectVendor = new SuiListBox(player, SuiWindowType::STRUCTURE_CREATE_VENDOR);
suiSelectVendor->setCallback(new CreateVendorSuiCallback(player->getZoneServer()));
suiSelectVendor->setCancelButton(true, "@cancel");
suiSelectVendor->setPromptTitle(currentNode->getSuiDisplay() + "t");
suiSelectVendor->setPromptText(currentNode->getSuiDisplay() + "d");
currentNode->addChildrenToListBox(suiSelectVendor, hiringMod);
player->getPlayerObject()->addSuiBox(suiSelectVendor);
player->sendMessage(suiSelectVendor->generateMessage());
player->addActiveSession(SessionFacadeType::CREATEVENDOR, _this.getReferenceUnsafeStaticCast());
return 0;
}
示例3: main
int main()
{
Vector<int> v;
v.addElement(4);
v.addElement(5);
v.addElement(6);
assert(v.elementAt(0) == 4);
assert(v.elementAt(2) == 6);
v.removeElement(5);
assert(v.elementAt(1) == 6);
v.insertElementAt(100, 2);
assert(v.elementAt(2) == 100);
printf("passed: Vector\n");
SortedVector<int> sv;
sv.addElement(7);
assert(sv.elementAt(0) == 7);
sv.addElement(6);
assert(sv.elementAt(0) == 6);
assert(sv.elementAt(1) == 7);
sv.addElement(9);
assert(sv.elementAt(2) == 9);
sv.addElement(3);
assert(sv.elementAt(0) == 3);
assert(sv.elementAt(3) == 9);
sv.addElement(1);
sv.removeElement(6);
assert(sv.size() == 4);
assert(sv.elementAt(3) == 9);
assert(sv.indexOf(9) == 3);
assert(sv.indexOf(1) == 0);
int numbers = 100;
while(numbers--){
sv.addElement(numbers%2 ? -numbers : numbers);
}
int maxel = -1000000;
for (int idx = 0; idx < sv.size(); idx++) {
//printf("%d, ", sv.elementAt(idx));
if (sv.elementAt(idx) < maxel) assert(!"sv order failed");
maxel = sv.elementAt(idx);
}
assert(sv.indexOf(10000) == -1);
assert(sv.indexOf(-10000) == -1);
sv.clear();
assert(sv.size() == 0);
sv.addElement(0);
sv.addElement(2);
sv.addElement(2);
sv.addElement(2);
assert(sv.size() == 4);
// undefined assert(sv.indexOf(2) == 1);
assert(sv.elementAt(0) == 0);
assert(sv.elementAt(3) == 2);
printf("passed: SortedVector\n");
}