本文整理汇总了C++中SortedVector::put方法的典型用法代码示例。如果您正苦于以下问题:C++ SortedVector::put方法的具体用法?C++ SortedVector::put怎么用?C++ SortedVector::put使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SortedVector
的用法示例。
在下文中一共展示了SortedVector::put方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: destroyObjectFromDatabase
void SceneObjectImplementation::destroyObjectFromDatabase(bool destroyContainedObjects) {
//info("deleting from database", true);
if (isPlayerCreature()) {
assert(0 && "attempting to delete a player creature from database");
}
if(dataObjectComponent != NULL) {
dataObjectComponent->notifyObjectDestroyingFromDatabase();
}
ZoneServer* server = getZoneServer();
server->destroyObjectFromDatabase(getObjectID());
asSceneObject()->setPersistent(0);
if (!destroyContainedObjects)
return;
SortedVector<ManagedReference<SceneObject*> > destroyedObjects;
destroyedObjects.setNoDuplicateInsertPlan();
for (int i = 0; i < getSlottedObjectsSize(); ++i) {
ManagedReference<SceneObject*> object = getSlottedObject(i);
if (destroyedObjects.put(object) != -1) {
Locker locker(object);
object->destroyObjectFromDatabase(true);
}
}
for (int j = 0; j < getContainerObjectsSize(); ++j) {
ManagedReference<SceneObject*> object = getContainerObject(j);
if (destroyedObjects.put(object) != -1) {
Locker locker(object);
object->destroyObjectFromDatabase(true);
}
}
//Remove all child objects from database
for (int i = 0; i < childObjects.size(); ++i) {
ManagedReference<SceneObject*> child = childObjects.get(i);
if (child == NULL)
continue;
Locker locker(child);
child->destroyObjectFromDatabase(true);
}
}
示例2: catch
SortedVector<ManagedReference<SceneObject*> > ZoneImplementation::getPlanetaryObjectList(const String& mapObjectLocationType) {
SortedVector<ManagedReference<SceneObject*> > retVector;
retVector.setNoDuplicateInsertPlan();
#ifndef WITH_STM
mapLocations->rlock();
#endif
try {
SortedVector<MapLocationEntry>& entryVector = mapLocations->getLocation(mapObjectLocationType);
for (int i = 0; i < entryVector.size(); ++i) {
MapLocationEntry entry = entryVector.get(i);
retVector.put(entry.getObject());
}
} catch (...) {
}
#ifndef WITH_STM
mapLocations->runlock();
#endif
return retVector;
}
示例3: getParent
ManagedWeakReference<SceneObject*> SceneObjectImplementation::getRootParent() {
ManagedReference<SceneObject*> grandParent = getParent();
ManagedReference<SceneObject*> tempParent = NULL;
if (grandParent == NULL)
return NULL;
#ifdef DEBUG_GETROOT_PARENT
SortedVector<ManagedReference<SceneObject*> > parents;
parents.setNoDuplicateInsertPlan();
#endif
while ((tempParent = grandParent->getParent()) != NULL && grandParent != asSceneObject()) {
grandParent = tempParent;
#ifdef DEBUG_GETROOT_PARENT
if (parents.contains(grandParent))
return NULL;
else
parents.put(grandParent);
#endif
}
if (grandParent == asSceneObject())
return NULL;
ManagedWeakReference<SceneObject*> weak = grandParent.get();
return weak;
}
示例4: togglePermission
int StructurePermissionList::togglePermission(const String& listName, const String& playerName, bool caseSensitive) {
Locker locker(&lock);
if(playerName == ownerName)
return CANTCHANGEOWNER;
if (!permissionLists.contains(listName))
return LISTNOTFOUND;
SortedVector<String>* list = &permissionLists.get(listName);
String name = "";
if (caseSensitive)
name = playerName;
else
name = playerName.toLowerCase();
//If they exist, remove them.
if (list->contains(name)) {
list->drop(name);
return REVOKED;
}
list->put(name);
return GRANTED;
}
示例5: grantPermission
int StructurePermissionList::grantPermission(const String& listName, const String& playerName, bool caseSensitive) {
Locker locker(&lock);
if(playerName == ownerName)
return CANTCHANGEOWNER;
if (!permissionLists.contains(listName))
return LISTNOTFOUND;
SortedVector<String>* list = &permissionLists.get(listName);
if (caseSensitive)
list->put(playerName);
else
list->put(playerName.toLowerCase());
return GRANTED;
}
示例6: revokeAllPermissions
void StructurePermissionList::revokeAllPermissions() {
Locker locker(&lock);
for (int i = 0; i < idPermissionLists.size(); ++i) {
SortedVector<uint64>* list = &idPermissionLists.get(i);
list->removeAll();
if (idPermissionLists.elementAt(i).getKey() == "ADMIN") {
list->put(ownerID);
}
}
}
示例7: cleanupCitizens
void CityRegionImplementation::cleanupCitizens() {
Locker slocker(&structureListMutex);
SortedVector<uint64> ownerIds;
ownerIds.setNoDuplicateInsertPlan();
for (int i = 0; i < completeStructureList.size(); ++i) {
uint64 oid = completeStructureList.get(i);
ManagedReference<BuildingObject*> building = Core::getObjectBroker()->lookUp(oid).castTo<BuildingObject*>();
if (building != NULL) {
if (building->isResidence()) {
uint64 owner = building->getOwnerObjectID();
ownerIds.put(owner);
}
}
}
SortedVector<uint64> removeIds;
removeIds.setNoDuplicateInsertPlan();
for (int i = 0; i < citizenList.size(); ++i) {
uint64 id = citizenList.get(i);
if (!ownerIds.contains(id))
removeIds.put(id);
else if (isBanned(id))
removeBannedPlayer(id);
}
for (int i = 0; i < removeIds.size(); ++i) {
removeCitizen(removeIds.get(i));
}
if(getMayorID() != 0 && !isCitizen(getMayorID()))
addCitizen(getMayorID());
}
示例8: grantPermission
int StructurePermissionList::grantPermission(const String& listName, const uint64 objectID) {
Locker locker(&lock);
if(objectID == ownerID)
return CANTCHANGEOWNER;
if (!idPermissionLists.contains(listName))
return LISTNOTFOUND;
SortedVector<uint64>* list = &idPermissionLists.get(listName);
list->put(objectID);
return GRANTED;
}
示例9: loadDefaultCharacterItems
void PlayerCreationManager::loadDefaultCharacterItems() {
IffStream* iffStream = TemplateManager::instance()->openIffFile(
"creation/default_pc_equipment.iff");
if (iffStream == NULL) {
error("Couldn't load creation default items.");
return;
}
iffStream->openForm('LOEQ');
uint32 version = iffStream->getNextFormType();
Chunk* versionChunk = iffStream->openForm(version);
for (int i = 0; i < versionChunk->getChunksSize(); ++i) {
Chunk* ptmpChunk = iffStream->openForm('PTMP');
String templateName;
Chunk* nameChunk = iffStream->openChunk('NAME');
nameChunk->readString(templateName);
iffStream->closeChunk('NAME');
SortedVector < String > items;
for (int j = 1; j < ptmpChunk->getChunksSize(); ++j) {
Chunk* itemChunk = iffStream->openChunk('ITEM');
String itemTemplate;
int unk1 = itemChunk->readInt();
itemChunk->readString(itemTemplate);
itemTemplate = itemTemplate.replaceFirst("shared_", "");
items.put(itemTemplate);
iffStream->closeChunk('ITEM');
}
defaultCharacterEquipment.put(templateName, items);
iffStream->closeForm('PTMP');
}
iffStream->closeForm(version);
iffStream->closeForm('LOEQ');
delete iffStream;
}
示例10: togglePermission
int StructurePermissionList::togglePermission(const String& listName, const uint64 objectID) {
Locker locker(&lock);
if(objectID == ownerID)
return CANTCHANGEOWNER;
if (!idPermissionLists.contains(listName))
return LISTNOTFOUND;
SortedVector<uint64>* list = &idPermissionLists.get(listName);
//If they exist, remove them.
if (list->contains(objectID)) {
list->drop(objectID);
return REVOKED;
}
list->put(objectID);
return GRANTED;
}
示例11: surrenderSkill
bool SkillManager::surrenderSkill(const String& skillName, CreatureObject* creature, bool notifyClient) {
Skill* skill = skillMap.get(skillName.hashCode());
if (skill == NULL)
return false;
Locker locker(creature);
SkillList* skillList = creature->getSkillList();
if(skillName == "force_title_jedi_novice" && getForceSensitiveSkillCount(creature, true) > 0) {
return false;
}
if(skillName.beginsWith("force_sensitive_") &&
getForceSensitiveSkillCount(creature, false) <= 24 &&
creature->hasSkill("force_title_jedi_rank_01"))
return false;
for (int i = 0; i < skillList->size(); ++i) {
Skill* checkSkill = skillList->get(i);
if (checkSkill->isRequiredSkillOf(skill))
return false;
}
if(creature->hasSkill("force_title_jedi_rank_03") && skillName.contains("force_discipline_") && !knightPrereqsMet(creature, skillName)) {
return false;
}
//If they have already surrendered the skill, then return true.
if (!creature->hasSkill(skill->getSkillName()))
return true;
creature->removeSkill(skill, notifyClient);
//Remove skill modifiers
VectorMap<String, int>* skillModifiers = skill->getSkillModifiers();
ManagedReference<PlayerObject*> ghost = creature->getPlayerObject();
for (int i = 0; i < skillModifiers->size(); ++i) {
VectorMapEntry<String, int>* entry = &skillModifiers->elementAt(i);
creature->removeSkillMod(SkillModManager::SKILLBOX, entry->getKey(), entry->getValue(), notifyClient);
}
if (ghost != NULL) {
//Give the player the used skill points back.
ghost->addSkillPoints(skill->getSkillPointsRequired());
//Remove abilities but only if the creature doesn't still have a skill that grants the
//ability. Some abilities are granted by multiple skills. For example Dazzle for dancers
//and musicians.
Vector<String>* skillAbilities = skill->getAbilities();
if (skillAbilities->size() > 0) {
SortedVector<String> abilitiesLost;
for (int i = 0; i < skillAbilities->size(); i++) {
abilitiesLost.put(skillAbilities->get(i));
}
for (int i = 0; i < skillList->size(); i++) {
Skill* remainingSkill = skillList->get(i);
Vector<String>* remainingAbilities = remainingSkill->getAbilities();
for(int j = 0; j < remainingAbilities->size(); j++) {
if (abilitiesLost.contains(remainingAbilities->get(j))) {
abilitiesLost.drop(remainingAbilities->get(j));
if (abilitiesLost.size() == 0) {
break;
}
}
}
}
if (abilitiesLost.size() > 0) {
removeAbilities(ghost, abilitiesLost, notifyClient);
}
}
//Remove draft schematic groups
Vector<String>* schematicsGranted = skill->getSchematicsGranted();
SchematicMap::instance()->removeSchematics(ghost, *schematicsGranted, notifyClient);
//Update maximum experience.
updateXpLimits(ghost);
/// Update Force Power Max
ghost->setForcePowerMax(creature->getSkillMod("jedi_force_power_max"), true);
SkillList* list = creature->getSkillList();
int totalSkillPointsWasted = 250;
for (int i = 0; i < list->size(); ++i) {
Skill* skill = list->get(i);
totalSkillPointsWasted -= skill->getSkillPointsRequired();
}
if (ghost->getSkillPoints() != totalSkillPointsWasted) {
creature->error("skill points mismatch calculated: " + String::valueOf(totalSkillPointsWasted) + " found: " + String::valueOf(ghost->getSkillPoints()));
ghost->setSkillPoints(totalSkillPointsWasted);
//.........这里部分代码省略.........