def setQuestStep(self, questStepArgs): originDoId, stepDoId, typeData = questStepArgs if typeData[0] == 10: typeDict = dict( zip(('stepType', 'posH', 'islandUid', 'targetAreaUid', 'nodeSizes', 'nearOffset', 'nearVis'), typeData)) questStep = QuestStep(*(originDoId, stepDoId), **typeDict) else: questStep = QuestStep(*((originDoId, stepDoId) + typeData)) self.l_setQuestStep(questStep) if questStep == QuestStep.getNullStep(): localAvatar.guiMgr.mapPage.worldMap.mapBall.removeDart() return mapPage = localAvatar.guiMgr.mapPage doId = base.cr.uidMgr.uid2doId.get(questStep.getIsland()) island = base.cr.doId2do.get(doId) if island: pos = island.getPos() if mapPage.worldMap.mapBall.questDartPlaced: localAvatar.guiMgr.mapPage.worldMap.mapBall.updateDart( 'questStep', pos) else: localAvatar.guiMgr.mapPage.addQuestDart('questStep', pos) else: localAvatar.guiMgr.mapPage.removeQuestDart('questStep')