Skip to content
Browse files

Merge pull request #558 from rcythr/about_time

Fixes for several problems
  • Loading branch information...
2 parents 4a34a48 + 8bd3418 commit 5a4d1965b4e1006a51d20ada74290eb089c7bbb0 @apathyboy apathyboy committed Mar 17, 2013
Showing with 534 additions and 540 deletions.
  1. +60 −60 data/scripts/character_create/base_stats.py
  2. +1 −0 data/scripts/character_create/create_starting_character.py
  3. 0 data/scripts/character_create/items.py
  4. +7 −9 data/scripts/character_create/professions.py
  5. +0 −1 data/scripts/character_create/skills_professions.py
  6. +96 −67 data/scripts/character_create/skills_species.py
  7. +219 −153 data/scripts/character_create/starting_items.py
  8. +1 −0 data/scripts/commands/transferItem.py
  9. +1 −0 data/scripts/commands/transferItemArmor.py
  10. +1 −0 data/scripts/commands/transferItemMisc.py
  11. +1 −0 data/scripts/commands/transferItemWeapon.py
  12. +3 −8 src/swganh_core/object/building/building_message_builder.cc
  13. +3 −8 src/swganh_core/object/cell/cell_message_builder.cc
  14. +4 −8 src/swganh_core/object/creature/creature_message_builder.cc
  15. +2 −7 src/swganh_core/object/factory_crate/factory_crate_message_builder.cc
  16. +2 −7 src/swganh_core/object/group/group_message_builder.cc
  17. +2 −2 src/swganh_core/object/guild/guild_message_builder.cc
  18. +3 −8 src/swganh_core/object/harvester_installation/harvester_installation_message_builder.cc
  19. +3 −3 src/swganh_core/object/installation/installation_message_builder.cc
  20. +2 −2 src/swganh_core/object/intangible/intangible_message_builder.cc
  21. +3 −8 src/swganh_core/object/manufacture_schematic/manufacture_schematic_message_builder.cc
  22. +2 −7 src/swganh_core/object/mission/mission_message_builder.cc
  23. +102 −131 src/swganh_core/object/object.cc
  24. +1 −15 src/swganh_core/object/object.h
  25. +4 −10 src/swganh_core/object/player/player_message_builder.cc
  26. +2 −7 src/swganh_core/object/resource_container/resource_container_message_builder.cc
  27. +2 −2 src/swganh_core/object/static/static_message_builder.cc
  28. +3 −8 src/swganh_core/object/tangible/tangible_message_builder.cc
  29. +2 −2 src/swganh_core/object/waypoint/waypoint_message_builder.cc
  30. +2 −7 src/swganh_core/object/weapon/weapon_message_builder.cc
View
120 data/scripts/character_create/base_stats.py
@@ -6,64 +6,64 @@ def __init__(self, health, action, mind):
self.mind = mind
StartStats = {
-'bothan:combat_brawler' : StartingStats((1000,500,400),(1100,650,450 ),(600 ,400,300 )),
-'bothan:combat_marksman' : StartingStats((1000,450,300),(1100,750,400 ),(700 ,400,400 )),
-'bothan:crafting_artisan' : StartingStats((600 ,300,300),(1100,700,400 ),(1000,500,500 )),
-'bothan:outdoors_scout' : StartingStats((800 ,300,350),(1100,700,500 ),(800 ,450,400 )),
-'bothan:science_medic' : StartingStats((600 ,300,300),(1000,600,400 ),(1100,600,500 )),
-'bothan:social_entertainer' : StartingStats((500 ,300,300),(1300,700,500 ),(900 ,500,400 )),
-'human:combat_brawler' : StartingStats((1100,600,500),(900 ,450,450 ),(600 ,400,400 )),
-'human:combat_marksman' : StartingStats((1100,550,400),(900 ,550,400 ),(700 ,400,400 )),
-'human:crafting_artisan' : StartingStats((700 ,400,400),(900 ,500,400 ),(1000,500,600 )),
-'human:outdoors_scout' : StartingStats((900 ,400,450),(900 ,500,500 ),(800 ,450,500 )),
-'human:science_medic' : StartingStats((700 ,400,400),(800 ,400,400 ),(1100,600,600 )),
-'human:social_entertainer' : StartingStats((600 ,400,400),(1100,500,500 ),(900 ,500,500 )),
-'ithorian:combat_brawler' : StartingStats((1000,500,400),(800 ,350,500 ),(800 ,600,450 )),
-'ithorian:combat_marksman' : StartingStats((1000,450,300),(800 ,450,450 ),(900 ,600,450 )),
-'ithorian:crafting_artisan' : StartingStats((600 ,300,300),(800 ,400,450 ),(1200,700,650 )),
-'ithorian:outdoors_scout' : StartingStats((800 ,300,350),(800 ,400,550 ),(1000,650,550 )),
-'ithorian:science_medic' : StartingStats((600 ,300,300),(700 ,300,450 ),(1300,800,550 )),
-'ithorian:social_entertainer' : StartingStats((500 ,300,300),(1000,400,550 ),(1100,700,550 )),
-'moncal:combat_brawler' : StartingStats((1000,500,400),(800 ,350,500 ),(800 ,600,450 )),
-'moncal:combat_marksman' : StartingStats((1000,450,300),(800 ,450,450 ),(900 ,600,450 )),
-'moncal:crafting_artisan' : StartingStats((600 ,300,300),(800 ,400,450 ),(1200,700,650 )),
-'moncal:outdoors_scout' : StartingStats((800 ,300,350),(800 ,400,550 ),(1000,650,550 )),
-'moncal:science_medic' : StartingStats((600 ,300,300),(700 ,300,450 ),(1300,800,650 )),
-'moncal:social_entertainer' : StartingStats((500 ,300,300),(1000,400,550 ),(1100,700,550 )),
-'rodian:combat_brawler' : StartingStats((1000,500,400),(1000,550,800 ),(500 ,300,350 )),
-'rodian:combat_marksman' : StartingStats((1000,450,300),(1000,650,750 ),(600 ,300,350 )),
-'rodian:crafting_artisan' : StartingStats((600 ,300,300),(1000,600,750 ),(900 ,400,550 )),
-'rodian:outdoors_scout' : StartingStats((800 ,300,350),(1000,600,850 ),(700 ,350,450 )),
-'rodian:science_medic' : StartingStats((600 ,300,300),(900 ,500,750 ),(1000,500,550 )),
-'rodian:social_entertainer' : StartingStats((500 ,300,300),(1200,600,850 ),(800 ,400,450 )),
-'sullustan:combat_brawler' : StartingStats((1200,500,400),(1100,350,350 ),(500 ,300,700 )),
-'sullustan:combat_marksman' : StartingStats((1200,450,300),(1100,450,300 ),(600 ,300,700 )),
-'sullustan:crafting_artisan' : StartingStats((800 ,300,300),(1100,400,300 ),(900 ,400,900 )),
-'sullustan:outdoors_scout' : StartingStats((1000,300,350),(1100,400,400 ),(700 ,350,800 )),
-'sullustan:science_medic' : StartingStats((800 ,300,300),(1000,300,300 ),(1000,500,800 )),
-'sullustan:social_entertainer' : StartingStats((700 ,300,300),(1300,400,400 ),(800 ,400,800 )),
-'trandoshan:combat_brawler' : StartingStats((1250,800,800),(800 ,350,350 ),(500 ,300,400 )),
-'trandoshan:combat_marksman' : StartingStats((1250,750,700),(800 ,450,300 ),(600 ,300,400 )),
-'trandoshan:crafting_artisan' : StartingStats((850 ,600,700),(800 ,400,300 ),(900 ,400,600 )),
-'trandoshan:outdoors_scout' : StartingStats((1050,600,750),(800 ,400,400 ),(700 ,350,500 )),
-'trandoshan:science_medic' : StartingStats((850 ,600,700),(700 ,300,300 ),(1000,500,600 )),
-'trandoshan:social_entertainer': StartingStats((750 ,600,700),(1000,400,400 ),(800 ,400,500 )),
-'twilek:combat_brawler' : StartingStats((1000,500,650),(1050,650,350 ),(600 ,300,300 )),
-'twilek:combat_marksman' : StartingStats((1000,450,550),(1050,750,300 ),(700 ,300,300 )),
-'twilek:crafting_artisan' : StartingStats((600 ,300,550),(1050,700,300 ),(1000,400,500 )),
-'twilek:outdoors_scout' : StartingStats((800 ,300,600),(1050,700,400 ),(800 ,350,400 )),
-'twilek:science_medic' : StartingStats((800 ,300,600),(1050,700,400 ),(800 ,350,400 )),
-'twilek:social_entertainer' : StartingStats((500 ,300,550),(1250,700,400 ),(900 ,400,400 )),
-'wookiee:combat_brawler' : StartingStats((1350,850,550),(1000,450,450 ),(600 ,450,400 )),
-'wookiee:combat_marksman' : StartingStats((1350,800,450),(1000,550,400 ),(700 ,450,400 )),
-'wookiee:crafting_artisan' : StartingStats((950 ,650,450),(1000,500,500 ),(1000,550,600 )),
-'wookiee:outdoors_scout' : StartingStats((1150,650,500),(1000,500,500 ),(800 ,500,500 )),
-'wookiee:science_medic' : StartingStats((950 ,650,450),(900 ,400,400 ),(1100,650,600 )),
-'wookiee:social_entertainer' : StartingStats((850 ,650,450),(1200,500,500 ),(900 ,550,500 )),
-'zabrak:combat_brawler' : StartingStats((1200,500,400),(1100,350,350 ),(500 ,300,700 )),
-'zabrak:combat_marksman' : StartingStats((1200,450,300),(1100,450,300 ),(600 ,300,700 )),
-'zabrak:crafting_artisan' : StartingStats((800 ,300,300),(1100,400,300 ),(900 ,400,900 )),
-'zabrak:outdoors_scout' : StartingStats((1000,300,350),(1100,400,400 ),(700 ,350,800 )),
-'zabrak:science_medic' : StartingStats((800 ,300,300),(1000,300,300 ),(1000,500,900 )),
-'zabrak:social_entertainer' : StartingStats((700 ,300,300),(1300,400,400 ),(800 ,400,800 ))
+ 'bothan:combat_brawler' : StartingStats((1000,500,400),(1100,650,450 ),(600 ,400,300 )),
+ 'bothan:combat_marksman' : StartingStats((1000,450,300),(1100,750,400 ),(700 ,400,400 )),
+ 'bothan:crafting_artisan' : StartingStats((600 ,300,300),(1100,700,400 ),(1000,500,500 )),
+ 'bothan:outdoors_scout' : StartingStats((800 ,300,350),(1100,700,500 ),(800 ,450,400 )),
+ 'bothan:science_medic' : StartingStats((600 ,300,300),(1000,600,400 ),(1100,600,500 )),
+ 'bothan:social_entertainer' : StartingStats((500 ,300,300),(1300,700,500 ),(900 ,500,400 )),
+ 'human:combat_brawler' : StartingStats((1100,600,500),(900 ,450,450 ),(600 ,400,400 )),
+ 'human:combat_marksman' : StartingStats((1100,550,400),(900 ,550,400 ),(700 ,400,400 )),
+ 'human:crafting_artisan' : StartingStats((700 ,400,400),(900 ,500,400 ),(1000,500,600 )),
+ 'human:outdoors_scout' : StartingStats((900 ,400,450),(900 ,500,500 ),(800 ,450,500 )),
+ 'human:science_medic' : StartingStats((700 ,400,400),(800 ,400,400 ),(1100,600,600 )),
+ 'human:social_entertainer' : StartingStats((600 ,400,400),(1100,500,500 ),(900 ,500,500 )),
+ 'ithorian:combat_brawler' : StartingStats((1000,500,400),(800 ,350,500 ),(800 ,600,450 )),
+ 'ithorian:combat_marksman' : StartingStats((1000,450,300),(800 ,450,450 ),(900 ,600,450 )),
+ 'ithorian:crafting_artisan' : StartingStats((600 ,300,300),(800 ,400,450 ),(1200,700,650 )),
+ 'ithorian:outdoors_scout' : StartingStats((800 ,300,350),(800 ,400,550 ),(1000,650,550 )),
+ 'ithorian:science_medic' : StartingStats((600 ,300,300),(700 ,300,450 ),(1300,800,550 )),
+ 'ithorian:social_entertainer' : StartingStats((500 ,300,300),(1000,400,550 ),(1100,700,550 )),
+ 'moncal:combat_brawler' : StartingStats((1000,500,400),(800 ,350,500 ),(800 ,600,450 )),
+ 'moncal:combat_marksman' : StartingStats((1000,450,300),(800 ,450,450 ),(900 ,600,450 )),
+ 'moncal:crafting_artisan' : StartingStats((600 ,300,300),(800 ,400,450 ),(1200,700,650 )),
+ 'moncal:outdoors_scout' : StartingStats((800 ,300,350),(800 ,400,550 ),(1000,650,550 )),
+ 'moncal:science_medic' : StartingStats((600 ,300,300),(700 ,300,450 ),(1300,800,650 )),
+ 'moncal:social_entertainer' : StartingStats((500 ,300,300),(1000,400,550 ),(1100,700,550 )),
+ 'rodian:combat_brawler' : StartingStats((1000,500,400),(1000,550,800 ),(500 ,300,350 )),
+ 'rodian:combat_marksman' : StartingStats((1000,450,300),(1000,650,750 ),(600 ,300,350 )),
+ 'rodian:crafting_artisan' : StartingStats((600 ,300,300),(1000,600,750 ),(900 ,400,550 )),
+ 'rodian:outdoors_scout' : StartingStats((800 ,300,350),(1000,600,850 ),(700 ,350,450 )),
+ 'rodian:science_medic' : StartingStats((600 ,300,300),(900 ,500,750 ),(1000,500,550 )),
+ 'rodian:social_entertainer' : StartingStats((500 ,300,300),(1200,600,850 ),(800 ,400,450 )),
+ 'sullustan:combat_brawler' : StartingStats((1200,500,400),(1100,350,350 ),(500 ,300,700 )),
+ 'sullustan:combat_marksman' : StartingStats((1200,450,300),(1100,450,300 ),(600 ,300,700 )),
+ 'sullustan:crafting_artisan' : StartingStats((800 ,300,300),(1100,400,300 ),(900 ,400,900 )),
+ 'sullustan:outdoors_scout' : StartingStats((1000,300,350),(1100,400,400 ),(700 ,350,800 )),
+ 'sullustan:science_medic' : StartingStats((800 ,300,300),(1000,300,300 ),(1000,500,800 )),
+ 'sullustan:social_entertainer' : StartingStats((700 ,300,300),(1300,400,400 ),(800 ,400,800 )),
+ 'trandoshan:combat_brawler' : StartingStats((1250,800,800),(800 ,350,350 ),(500 ,300,400 )),
+ 'trandoshan:combat_marksman' : StartingStats((1250,750,700),(800 ,450,300 ),(600 ,300,400 )),
+ 'trandoshan:crafting_artisan' : StartingStats((850 ,600,700),(800 ,400,300 ),(900 ,400,600 )),
+ 'trandoshan:outdoors_scout' : StartingStats((1050,600,750),(800 ,400,400 ),(700 ,350,500 )),
+ 'trandoshan:science_medic' : StartingStats((850 ,600,700),(700 ,300,300 ),(1000,500,600 )),
+ 'trandoshan:social_entertainer': StartingStats((750 ,600,700),(1000,400,400 ),(800 ,400,500 )),
+ 'twilek:combat_brawler' : StartingStats((1000,500,650),(1050,650,350 ),(600 ,300,300 )),
+ 'twilek:combat_marksman' : StartingStats((1000,450,550),(1050,750,300 ),(700 ,300,300 )),
+ 'twilek:crafting_artisan' : StartingStats((600 ,300,550),(1050,700,300 ),(1000,400,500 )),
+ 'twilek:outdoors_scout' : StartingStats((800 ,300,600),(1050,700,400 ),(800 ,350,400 )),
+ 'twilek:science_medic' : StartingStats((800 ,300,600),(1050,700,400 ),(800 ,350,400 )),
+ 'twilek:social_entertainer' : StartingStats((500 ,300,550),(1250,700,400 ),(900 ,400,400 )),
+ 'wookiee:combat_brawler' : StartingStats((1350,850,550),(1000,450,450 ),(600 ,450,400 )),
+ 'wookiee:combat_marksman' : StartingStats((1350,800,450),(1000,550,400 ),(700 ,450,400 )),
+ 'wookiee:crafting_artisan' : StartingStats((950 ,650,450),(1000,500,500 ),(1000,550,600 )),
+ 'wookiee:outdoors_scout' : StartingStats((1150,650,500),(1000,500,500 ),(800 ,500,500 )),
+ 'wookiee:science_medic' : StartingStats((950 ,650,450),(900 ,400,400 ),(1100,650,600 )),
+ 'wookiee:social_entertainer' : StartingStats((850 ,650,450),(1200,500,500 ),(900 ,550,500 )),
+ 'zabrak:combat_brawler' : StartingStats((1200,500,400),(1100,350,350 ),(500 ,300,700 )),
+ 'zabrak:combat_marksman' : StartingStats((1200,450,300),(1100,450,300 ),(600 ,300,700 )),
+ 'zabrak:crafting_artisan' : StartingStats((800 ,300,300),(1100,400,300 ),(900 ,400,900 )),
+ 'zabrak:outdoors_scout' : StartingStats((1000,300,350),(1100,400,400 ),(700 ,350,800 )),
+ 'zabrak:science_medic' : StartingStats((800 ,300,300),(1000,300,300 ),(1000,500,900 )),
+ 'zabrak:social_entertainer' : StartingStats((700 ,300,300),(1300,400,400 ),(800 ,400,800 ))
}
View
1 data/scripts/character_create/create_starting_character.py
@@ -67,6 +67,7 @@ def CreateStartingCharacter(kernel, scale, base_model, customization, full_name,
simulation.addObjectToScene(creature, startLoc.name)
return creature
+
def GetSpecies(base_model):
match = re.search('player/(.*)_', base_model)
return match.group(1)
View
0 data/scripts/character_create/items.py
No changes.
View
16 data/scripts/character_create/professions.py
@@ -1,11 +1,9 @@
Profession = {
-
-'crafting_artisan',
-'combat_brawler',
-'social_entertainer',
-'combat_marksman',
-'science_medic',
-'outdoors_scout',
-'jedi'
-
+ 'crafting_artisan',
+ 'combat_brawler',
+ 'social_entertainer',
+ 'combat_marksman',
+ 'science_medic',
+ 'outdoors_scout',
+ 'jedi'
}
View
1 data/scripts/character_create/skills_professions.py
@@ -1 +0,0 @@
-profession += '_novice'
View
163 data/scripts/character_create/skills_species.py
@@ -1,71 +1,100 @@
baseSpeciesSkills = {
-'human' : 'social_language',
-'human' : 'social_language_basic',
-'human' : 'social_language_basic_speak',
-'human' : 'species_human',
-'rodian' : 'social_language',
-'rodian' : 'social_language_basic',
-'rodian' : 'social_language_basic_speak',
-'rodian' : 'social_language_rodian',
-'rodian' : 'social_language_rodian_speak',
-'rodian' : 'social_language_rodian_comprehend',
-'rodian' : 'species_rodian',
-'trandoshan' : 'social_language',
-'trandoshan' : 'social_language_basic',
-'trandoshan' : 'social_language_basic_speak',
-'trandoshan' : 'social_language_trandoshan',
-'trandoshan' : 'social_language_trandoshan_speak',
-'trandoshan' : 'social_language_trandoshan_comprehend',
-'trandoshan' : 'species_trandoshan',
-'moncal' : 'social_language',
-'moncal' : 'social_language_basic',
-'moncal' : 'social_language_basic_speak',
-'moncal' : 'social_language_moncalamari',
-'moncal' : 'social_language_moncalamari_speak',
-'moncal' : 'social_language_moncalamari_comprehend',
-'moncal' : 'species_moncal',
-'wookiee' : 'social_language',
-'wookiee' : 'social_language_basic',
-'wookiee' : 'social_language_basic_speak',
-'wookiee' : 'social_language_wookiee',
-'wookiee' : 'social_language_wookiee_speak',
-'wookiee' : 'social_language_wookiee_comprehend',
-'wookiee' : 'species_wookiee',
-'bothan' : 'social_language',
-'bothan' : 'social_language_basic',
-'bothan' : 'social_language_basic_speak',
-'bothan' : 'social_language_bothan',
-'bothan' : 'social_language_bothan_speak',
-'bothan' : 'social_language_bothan_comprehend',
-'bothan' : 'species_bothan',
-'twilek' : 'social_language',
-'twilek' : 'social_language_basic',
-'twilek' : 'social_language_basic_speak',
-'twilek' : 'social_language_twilek',
-'twilek' : 'social_language_twilek_speak',
-'twilek' : 'social_language_twilek_comprehend',
-'twilek' : 'species_twilek',
-'zabrak' : 'social_language',
-'zabrak' : 'social_language_basic',
-'zabrak' : 'social_language_basic_speak',
-'zabrak' : 'social_language_zabrak',
-'zabrak' : 'social_language_zabrak_speak',
-'zabrak' : 'social_language_zabrak_comprehend',
-'zabrak' : 'species_zabrak',
-'ithorian' : 'social_language',
-'ithorian' : 'social_language_basic',
-'ithorian' : 'social_language_basic_speak',
-'ithorian' : 'social_language_ithorian',
-'ithorian' : 'social_language_ithorian_speak',
-'ithorian' : 'social_language_ithorian_comprehend',
-'ithorian' : 'species_ithorian',
-'sullustan' : 'social_language',
-'sullustan' : 'social_language_basic',
-'sullustan' : 'social_language_basic_speak',
-'sullustan' : 'social_language_sullustan',
-'sullustan' : 'social_language_sullustan_speak',
-'sullustan' : 'social_language_sullustan_comprehend',
-'sullustan' : 'species_sullustan',
+ 'human' : (
+ 'social_language',
+ 'social_language_basic',
+ 'social_language_basic_speak',
+ 'species_human'
+ ),
+
+ 'rodian' : (
+ 'social_language',
+ 'social_language_basic',
+ 'social_language_basic_speak',
+ 'social_language_rodian',
+ 'social_language_rodian_speak',
+ 'social_language_rodian_comprehend',
+ 'species_rodian'
+ ),
+
+ 'trandoshan' : (
+ 'social_language',
+ 'social_language_basic',
+ 'social_language_basic_speak',
+ 'social_language_trandoshan',
+ 'social_language_trandoshan_speak',
+ 'social_language_trandoshan_comprehend',
+ 'species_trandoshan'
+ ),
+
+ 'moncal' : (
+ 'social_language',
+ 'social_language_basic',
+ 'social_language_basic_speak',
+ 'social_language_moncalamari',
+ 'social_language_moncalamari_speak',
+ 'social_language_moncalamari_comprehend',
+ 'species_moncal'
+ ),
+
+ 'wookiee' : (
+ 'social_language',
+ 'social_language_basic',
+ 'social_language_basic_speak',
+ 'social_language_wookiee',
+ 'social_language_wookiee_speak',
+ 'social_language_wookiee_comprehend',
+ 'species_wookiee'
+ ),
+
+ 'bothan' : (
+ 'social_language',
+ 'social_language_basic',
+ 'social_language_basic_speak',
+ 'social_language_bothan',
+ 'social_language_bothan_speak',
+ 'social_language_bothan_comprehend',
+ 'species_bothan'
+ ),
+
+ 'twilek' : (
+ 'social_language',
+ 'social_language_basic',
+ 'social_language_basic_speak',
+ 'social_language_twilek',
+ 'social_language_twilek_speak',
+ 'social_language_twilek_comprehend',
+ 'species_twilek'
+ ),
+
+ 'zabrak' : (
+ 'social_language',
+ 'social_language_basic',
+ 'social_language_basic_speak',
+ 'social_language_zabrak',
+ 'social_language_zabrak_speak',
+ 'social_language_zabrak_comprehend',
+ 'species_zabrak',
+ ),
+
+ 'ithorian' : (
+ 'social_language',
+ 'social_language_basic',
+ 'social_language_basic_speak',
+ 'social_language_ithorian',
+ 'social_language_ithorian_speak',
+ 'social_language_ithorian_comprehend',
+ 'species_ithorian'
+ ),
+
+ 'sullustan' : (
+ 'social_language',
+ 'social_language_basic',
+ 'social_language_basic_speak',
+ 'social_language_sullustan',
+ 'social_language_sullustan_speak',
+ 'social_language_sullustan_comprehend',
+ 'species_sullustan'
+ )
}
View
372 data/scripts/character_create/starting_items.py
@@ -1,168 +1,234 @@
def GetStartingItems(species, profession, gender):
- itemList = CommonItems
- if profession in ProfessionItems:
- itemList += ProfessionItems[profession]
- if species == 'wookiee':
- GetWookieeItems(itemList, profession, gender)
- elif species == 'ithorian':
- GetIthorianItems(itemList, profession, gender)
+ #Grab items common to all
+ itemList = list(CommonItems)
+
+ #Grab items based on species and profession
+ if species == 'wookiee' or species == 'ithorian':
+ itemList.extend(StartingItems[species+":"+gender + ':' + profession])
else:
- if profession == 'social_entertainer':
- GetEntertainerItems(itemList, gender)
- elif profession == 'science_medic':
- GetMedicItems(itemList, gender)
- elif profession == 'outdoors_scout':
- GetScoutItems(itemList, gender)
- elif profession == 'crafting_artisan':
- GetArtisanItems(itemList, gender)
- elif profession == 'combat_brawler':
- GetBrawlerItems(itemList, gender)
- elif profession == 'combat_marksman':
- GetMarksmanItems(itemList, gender)
-
- # hack remove shoes/boots...
+ itemList.extend(StartingItems[gender+":"+profession])
+
+ # hack remove shoes/boots for trandoshans
if species == 'trandoshan':
for i in range(len(itemList)):
if itemList[i].find('shoe') != -1:
itemList.pop(i)
elif itemList[i].find('boot') != -1:
itemList.pop(i)
+
return itemList
-
-
-# trandoshans dont get shoes...
-#Profession Specific Items
-def GetEntertainerItems(itemList, gender):
- if (gender == 'female'):
- #female
- itemList += [
- 'object/tangible/wearables/shirt/shared_shirt_s38.iff',
- 'object/tangible/wearables/pants/shared_pants_s11.iff',
- 'object/tangible/wearables/shoes/shared_shoes_s09.iff'
- ]
- else:
- #male
- itemList += [
- 'object/tangible/wearables/shirt/shared_shirt_s42.iff',
- 'object/tangible/wearables/pants/shared_pants_s08.iff',
- 'object/tangible/wearables/shoes/shared_shoes_s01.iff'
- ]
-def GetMedicItems(itemList, gender):
- #science_medic
- if (gender == 'female'):
- #female
- itemList += [
- 'object/tangible/wearables/bodysuit/shared_bodysuit_s13.iff',
- 'object/tangible/wearables/boots/shared_boots_s04.iff'
- ]
- else:
- #male
- itemList += [
- 'object/tangible/wearables/jacket/shared_jacket_s24.iff',
- 'object/tangible/wearables/shirt/shared_shirt_s10.iff',
- 'object/tangible/wearables/pants/shared_pants_s12.iff',
- 'object/tangible/wearables/shoes/shared_shoes_s02.iff'
- ]
-def GetScoutItems(itemList, gender):
- #scout
- if gender == 'female':
- #female
- itemList += [
- 'object/tangible/wearables/shirt/shared_shirt_s26.iff',
- 'object/tangible/wearables/pants/shared_pants_s21.iff'
- ]
- else:
- #male
- itemList += [
- 'object/tangible/wearables/shirt/shared_shirt_s16.iff',
- 'object/tangible/wearables/pants/shared_pants_s21.iff',
- 'object/tangible/wearables/vest/shared_vest_s09.iff'
- ]
-
-def GetArtisanItems(itemList, gender):
- # artisan
- if gender == 'female':
- #female
- itemList += [
- 'object/tangible/wearables/shirt/shared_shirt_s12.iff',
- 'object/tangible/wearables/skirt/shared_skirt_s10.iff',
- 'object/tangible/wearables/shoes/shared_shoes_s07.iff'
- ]
- else:
- #male
- itemList += [
- 'object/tangible/wearables/shirt/shared_shirt_s34.iff',
- 'object/tangible/wearables/pants/shared_pants_s29.iff',
- 'object/tangible/wearables/shoes/shared_shoes_s01.iff',
- ]
-def GetBrawlerItems(itemList, gender):
- #brawler
- if gender == 'female':
- #female
- itemList = [
- 'object/tangible/wearables/shirt/shared_shirt_s27.iff',
- 'object/tangible/wearables/pants/shared_pants_s07.iff',
- 'object/tangible/wearables/boots/shared_boots_s05.iff',
- 'object/tangible/wearables/gloves/shared_gloves_s03.iff'
- ]
- else:
- #male
- itemList += [
- 'object/tangible/wearables/shirt/shared_shirt_s14.iff',
- 'object/tangible/wearables/jacket/shared_jacket_s16.iff',
- 'object/tangible/wearables/pants/shared_pants_s14.iff',
- 'object/tangible/wearables/boots/shared_boots_s05.iff'
- ]
-def GetMarksmanItems(itemList, gender):
- if gender == 'female':
- #female
- itemList += [
- 'object/tangible/wearables/shirt/shared_shirt_s24.iff',
- 'object/tangible/wearables/pants/shared_pants_s24.iff',
- 'object/tangible/wearables/vest/shared_vest_s10.iff',
- 'object/tangible/wearables/shoes/shared_shoes_s02.iff'
- ]
- else:
- #male
- itemList += [
- 'object/tangible/wearables/jacket/shared_jacket_s05.iff',
- 'object/tangible/wearables/pants/shared_pants_s04.iff',
- 'object/tangible/wearables/boots/shared_boots_s21.iff'
- ]
-
-def GetWookieeItems(itemList, profession, gender):
- if profession == 'science_medic':
- itemList.append('object/tangible/wearables/jacket/shared_jacket_s24.iff')
#Ithorian
-def GetIthorianItems(itemList, profession, gender):
- itemList += IthorianItems[gender + ':' + profession]
-
-ProfessionItems = {
- 'social_entertainer' : ['object/tangible/instrument/shared_slitherhorn.iff'],
- 'science_medic' : ['object/tangible/crafting/station/shared_food_tool.iff'],
- 'outdoors_scout' : ['object/tangible/crafting/station/shared_generic_tool.iff', 'object/tangible/wearables/shoes/shared_shoes_s02.iff'],
- 'crafting_artisan' : ['object/tangible/crafting/station/shared_generic_tool.iff','object/tangible/survey_tool/shared_survey_tool_mineral.iff']
-}
+def GetIthorianItems(profession, gender):
+ return
-IthorianItems = {
- 'female:social_entertainer' : ['object/tangible/wearables/ithorian/shared_ith_pants_s11.iff','object/tangible/wearables/ithorian/shared_ith_shirt_s09.iff'],
- 'male:social_entertainer' : ['object/tangible/wearables/ithorian/shared_ith_pants_s08.iff','object/tangible/wearables/ithorian/shared_ith_shirt_s01.iff'],
- 'female:outdoors_scout' : ['object/tangible/wearables/ithorian/shared_ith_shirt_s04.iff','object/tangible/wearables/ithorian/shared_ith_pants_s21.iff'],
- 'male:outdoors_scout' : ['object/tangible/wearables/ithorian/shared_ith_shirt_s04.iff','object/tangible/wearables/ithorian/shared_ith_pants_s21.iff'],
- 'female:science_medic' : ['object/tangible/wearables/ithorian/shared_ith_shirt_s01.iff','object/tangible/wearables/ithorian/shared_ith_pants_s03.iff'],
- 'male:science_medic' : ['object/tangible/wearables/ithorian/shared_ith_jacket_s02.iff','object/tangible/wearables/ithorian/shared_ith_shirt_s05.iff','object/tangible/wearables/ithorian/shared_ith_pants_s12.iff'],
- 'female:crafting_artisan' : ['object/tangible/wearables/ithorian/shared_ith_shirt_s05.iff','object/tangible/wearables/ithorian/shared_ith_pants_s06.iff', 'object/tangible/wearables/ithorian/shared_ith_vest_s02.iff'],
- 'male:crafting_artisan' : ['object/tangible/wearables/ithorian/shared_ith_vest_s02.iff','object/tangible/wearables/ithorian/shared_ith_shirt_s10.iff','object/tangible/wearables/ithorian/shared_ith_pants_s06.iff'],
- 'female:combat_brawler' : ['object/tangible/wearables/ithorian/shared_ith_shirt_s02.iff','object/tangible/wearables/ithorian/shared_ith_pants_s07.iff', 'object/tangible/wearables/ithorian/shared_ith_gloves_s01.iff'],
- 'male:combat_brawler' : ['object/tangible/wearables/ithorian/shared_ith_shirt_s02.iff','object/tangible/wearables/ithorian/shared_ith_jacket_s16.iff','object/tangible/wearables/ithorian/shared_ith_pants_s04.iff'],
- 'female:combat_marksman' : ['object/tangible/wearables/ithorian/shared_ith_shirt_s05.iff','object/tangible/wearables/ithorian/shared_ith_pants_s06.iff', 'object/tangible/wearables/ithorian/shared_ith_vest_s02.iff'],
- 'male:combat_brawler' : ['object/tangible/wearables/ithorian/shared_ith_jacket_s05.iff','object/tangible/wearables/ithorian/shared_ith_shirt_s05.iff','object/tangible/wearables/ithorian/shared_ith_pants_s04.iff']
+StartingItems = {
+ 'female:social_entertainer' : (
+ 'object/tangible/instrument/shared_slitherhorn.iff',
+ 'object/tangible/wearables/shirt/shared_shirt_s38.iff',
+ 'object/tangible/wearables/pants/shared_pants_s11.iff',
+ 'object/tangible/wearables/shoes/shared_shoes_s09.iff'
+ ),
+
+ 'male:social_entertainer' : (
+ 'object/tangible/instrument/shared_slitherhorn.iff',
+ 'object/tangible/wearables/shirt/shared_shirt_s42.iff',
+ 'object/tangible/wearables/pants/shared_pants_s08.iff',
+ 'object/tangible/wearables/shoes/shared_shoes_s01.iff'
+ ),
+
+ 'female:science_medic' : (
+ 'object/tangible/crafting/station/shared_food_tool.iff',
+ 'object/tangible/wearables/bodysuit/shared_bodysuit_s13.iff',
+ 'object/tangible/wearables/boots/shared_boots_s04.iff'
+ ),
+
+ 'male:science_medic' : (
+ 'object/tangible/crafting/station/shared_food_tool.iff',
+ 'object/tangible/wearables/jacket/shared_jacket_s24.iff',
+ 'object/tangible/wearables/shirt/shared_shirt_s10.iff',
+ 'object/tangible/wearables/pants/shared_pants_s12.iff',
+ 'object/tangible/wearables/shoes/shared_shoes_s02.iff'
+ ),
+
+ 'female:outdoors_scout' : (
+ 'object/tangible/crafting/station/shared_generic_tool.iff',
+ 'object/tangible/wearables/shoes/shared_shoes_s02.iff',
+ 'object/tangible/wearables/shirt/shared_shirt_s26.iff',
+ 'object/tangible/wearables/pants/shared_pants_s21.iff'
+ ),
+
+ 'male:outdoors_scout' : (
+ 'object/tangible/crafting/station/shared_generic_tool.iff',
+ 'object/tangible/wearables/shoes/shared_shoes_s02.iff',
+ 'object/tangible/wearables/shirt/shared_shirt_s16.iff',
+ 'object/tangible/wearables/pants/shared_pants_s21.iff',
+ 'object/tangible/wearables/vest/shared_vest_s09.iff'
+ ),
+
+ 'female:crafting_artisan' : (
+ 'object/tangible/crafting/station/shared_generic_tool.iff',
+ 'object/tangible/survey_tool/shared_survey_tool_mineral.iff',
+ 'object/tangible/wearables/shirt/shared_shirt_s12.iff',
+ 'object/tangible/wearables/skirt/shared_skirt_s10.iff',
+ 'object/tangible/wearables/shoes/shared_shoes_s07.iff'
+ ),
+
+ 'male:crafting_artisan' : (
+ 'object/tangible/crafting/station/shared_generic_tool.iff',
+ 'object/tangible/survey_tool/shared_survey_tool_mineral.iff',
+ 'object/tangible/wearables/shirt/shared_shirt_s34.iff',
+ 'object/tangible/wearables/pants/shared_pants_s29.iff',
+ 'object/tangible/wearables/shoes/shared_shoes_s01.iff'
+ ),
+
+ 'female:combat_brawler' : (
+ 'object/tangible/wearables/shirt/shared_shirt_s27.iff',
+ 'object/tangible/wearables/pants/shared_pants_s07.iff',
+ 'object/tangible/wearables/boots/shared_boots_s05.iff',
+ 'object/tangible/wearables/gloves/shared_gloves_s03.iff'
+ ),
+
+ 'male:combat_brawler' : (
+ 'object/tangible/wearables/shirt/shared_shirt_s14.iff',
+ 'object/tangible/wearables/jacket/shared_jacket_s16.iff',
+ 'object/tangible/wearables/pants/shared_pants_s14.iff',
+ 'object/tangible/wearables/boots/shared_boots_s05.iff'
+ ),
+
+ 'female:combat_marksman' : (
+ 'object/tangible/wearables/shirt/shared_shirt_s24.iff',
+ 'object/tangible/wearables/pants/shared_pants_s24.iff',
+ 'object/tangible/wearables/vest/shared_vest_s10.iff',
+ 'object/tangible/wearables/shoes/shared_shoes_s02.iff'
+ ),
+
+ 'male:combat_marksman' : (
+ 'object/tangible/wearables/jacket/shared_jacket_s05.iff',
+ 'object/tangible/wearables/pants/shared_pants_s04.iff',
+ 'object/tangible/wearables/boots/shared_boots_s21.iff'
+ ),
+
+ 'ithorian:female:social_entertainer' : (
+ 'object/tangible/instrument/shared_slitherhorn.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_pants_s11.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_shirt_s09.iff'
+ ),
+
+ 'ithorian:male:social_entertainer' : (
+ 'object/tangible/instrument/shared_slitherhorn.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_pants_s08.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_shirt_s01.iff'
+ ),
+
+ 'ithorian:female:outdoors_scout' : (
+ 'object/tangible/crafting/station/shared_generic_tool.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_shirt_s04.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_pants_s21.iff'
+ ),
+
+ 'ithorian:male:outdoors_scout' : (
+ 'object/tangible/crafting/station/shared_generic_tool.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_shirt_s04.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_pants_s21.iff'
+ ),
+
+ 'ithorian:female:science_medic' : (
+ 'object/tangible/crafting/station/shared_food_tool.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_shirt_s01.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_pants_s03.iff'
+ ),
+
+ 'ithorian:male:science_medic' : (
+ 'object/tangible/crafting/station/shared_food_tool.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_jacket_s02.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_shirt_s05.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_pants_s12.iff'
+ ),
+
+ 'ithorian:female:crafting_artisan' :(
+ 'object/tangible/crafting/station/shared_generic_tool.iff',
+ 'object/tangible/survey_tool/shared_survey_tool_mineral.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_shirt_s05.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_pants_s06.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_vest_s02.iff'
+ ),
+
+ 'ithorian:male:crafting_artisan' : (
+ 'object/tangible/crafting/station/shared_generic_tool.iff',
+ 'object/tangible/survey_tool/shared_survey_tool_mineral.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_vest_s02.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_shirt_s10.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_pants_s06.iff'
+ ),
+
+ 'ithorian:female:combat_brawler' : (
+ 'object/tangible/wearables/ithorian/shared_ith_shirt_s02.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_pants_s07.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_gloves_s01.iff'
+ ),
+
+ 'ithorian:male:combat_brawler' : (
+ 'object/tangible/wearables/ithorian/shared_ith_shirt_s02.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_jacket_s16.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_pants_s04.iff'
+ ),
+
+ 'ithorian:female:combat_marksman' : (
+ 'object/tangible/wearables/ithorian/shared_ith_shirt_s05.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_pants_s06.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_vest_s02.iff'
+ ),
+
+ 'ithorian:male:combat_marksman' : (
+ 'object/tangible/wearables/ithorian/shared_ith_jacket_s05.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_shirt_s05.iff',
+ 'object/tangible/wearables/ithorian/shared_ith_pants_s04.iff'
+ ),
+
+ 'wookiee:female:crafting_artisan' : (
+ 'object/tangible/crafting/station/shared_generic_tool.iff',
+ 'object/tangible/survey_tool/shared_survey_tool_mineral.iff',
+ ),
+
+ 'wookiee:male:crafting_artisan' : (
+ 'object/tangible/crafting/station/shared_generic_tool.iff',
+ 'object/tangible/survey_tool/shared_survey_tool_mineral.iff',
+ ),
+
+ 'wookiee:female:social_entertainer' : (
+ 'object/tangible/instrument/shared_slitherhorn.iff',
+ ),
+
+ 'wookiee:male:social_entertainer' : (
+ 'object/tangible/instrument/shared_slitherhorn.iff',
+ ),
+
+ 'wookiee:female:science_medic' : (
+ 'object/tangible/crafting/station/shared_food_tool.iff',
+ ),
+
+ 'wookiee:male:science_medic' : (
+ 'object/tangible/crafting/station/shared_food_tool.iff',
+ ),
+
+ 'wookiee:female:outdoors_scout' : (
+ 'object/tangible/crafting/station/shared_generic_tool.iff',
+ ),
+ 'wookiee:male:outdoors_scout' : (
+ 'object/tangible/crafting/station/shared_generic_tool.iff',
+ ),
+
+ 'wookiee:female:combat_brawler' : (),
+ 'wookiee:male:combat_brawler' : (),
+ 'wookiee:female:combat_marksman' : (),
+ 'wookiee:male:combat_marksman' : (),
}
+
#All Get These
-CommonItems = [
- 'object/tangible/food/shared_fruit_melon.iff',
- 'object/weapon/ranged/pistol/shared_pistol_cdef_noob.iff',
- 'object/weapon/melee/knife/shared_knife_survival.iff'
-]
+CommonItems = (
+ 'object/tangible/food/shared_fruit_melon.iff',
+ 'object/weapon/ranged/pistol/shared_pistol_cdef_noob.iff',
+ 'object/weapon/melee/knife/shared_knife_survival.iff'
+ )
View
1 data/scripts/commands/transferItem.py
@@ -1,6 +1,7 @@
import re
import swgpy
from swgpy.command import BaseSwgCommand
+from swgpy.utility import *
class TransferItem(BaseSwgCommand):
def run(self):
View
1 data/scripts/commands/transferItemArmor.py
@@ -1,6 +1,7 @@
import re
import swgpy
from swgpy.command import BaseSwgCommand
+from swgpy.utility import *
class TransferItemArmor(BaseSwgCommand):
def run(self):
View
1 data/scripts/commands/transferItemMisc.py
@@ -1,6 +1,7 @@
import re
import swgpy
from swgpy.command import BaseSwgCommand
+from swgpy.utility import *
class TransferItem(BaseSwgCommand):
def run(self):
View
1 data/scripts/commands/transferItemWeapon.py
@@ -1,6 +1,7 @@
import re
import swgpy
from swgpy.command import BaseSwgCommand
+from swgpy.utility import *
class TransferItemWeapon(BaseSwgCommand):
def run(self):
View
11 src/swganh_core/object/building/building_message_builder.cc
@@ -21,14 +21,9 @@ void BuildingMessageBuilder::RegisterEventHandlers()
void BuildingMessageBuilder::SendBaselines(const shared_ptr<Building>& tangible, const shared_ptr<swganh::observer::ObserverInterface>& observer)
{
- tangible->AddBaselineToCache(&BuildBaseline3(tangible));
- tangible->AddBaselineToCache(&BuildBaseline6(tangible));
-
- for (auto& baseline : tangible->GetBaselines())
- {
- observer->Notify(&baseline);
- }
-
+ observer->Notify(&BuildBaseline3(tangible));
+ observer->Notify(&BuildBaseline6(tangible));
+
SendEndBaselines(tangible, observer);
}
View
11 src/swganh_core/object/cell/cell_message_builder.cc
@@ -22,14 +22,9 @@ void CellMessageBuilder::RegisterEventHandlers()
void CellMessageBuilder::SendBaselines(const std::shared_ptr<Cell>& cell, const std::shared_ptr<swganh::observer::ObserverInterface>& observer)
{
- cell->AddBaselineToCache(&BuildBaseline3(cell));
- cell->AddBaselineToCache(&BuildBaseline6(cell));
-
- for (auto& baseline : cell->GetBaselines())
- {
- observer->Notify(&baseline);
- }
-
+ observer->Notify(&BuildBaseline3(cell));
+ observer->Notify(&BuildBaseline6(cell));
+
SendEndBaselines(cell, observer);
}
View
12 src/swganh_core/object/creature/creature_message_builder.cc
@@ -219,14 +219,10 @@ void CreatureMessageBuilder::RegisterEventHandlers()
}
void CreatureMessageBuilder::SendBaselines(const shared_ptr<Creature>& creature, const shared_ptr<swganh::observer::ObserverInterface>& observer)
{
- creature->AddBaselineToCache(&BuildBaseline1(creature));
- creature->AddBaselineToCache(&BuildBaseline3(creature));
- creature->AddBaselineToCache(&BuildBaseline4(creature));
- creature->AddBaselineToCache(&BuildBaseline6(creature));
- for (auto& baseline : creature->GetBaselines())
- {
- observer->Notify(&baseline);
- }
+ observer->Notify(&BuildBaseline1(creature));
+ observer->Notify(&BuildBaseline3(creature));
+ observer->Notify(&BuildBaseline4(creature));
+ observer->Notify(&BuildBaseline6(creature));
SendEndBaselines(creature, observer);
View
9 src/swganh_core/object/factory_crate/factory_crate_message_builder.cc
@@ -21,13 +21,8 @@ void FactoryCrateMessageBuilder::RegisterEventHandlers()
void FactoryCrateMessageBuilder::SendBaselines(const shared_ptr<FactoryCrate>& factory_crate, const shared_ptr<swganh::observer::ObserverInterface>& observer)
{
- factory_crate->AddBaselineToCache(&BuildBaseline3(factory_crate));
- factory_crate->AddBaselineToCache(&BuildBaseline6(factory_crate));
-
- for (auto& baseline : factory_crate->GetBaselines())
- {
- observer->Notify(&baseline);
- }
+ observer->Notify(&BuildBaseline3(factory_crate));
+ observer->Notify(&BuildBaseline6(factory_crate));
SendEndBaselines(factory_crate, observer);
}
View
9 src/swganh_core/object/group/group_message_builder.cc
@@ -63,13 +63,8 @@ void GroupMessageBuilder::BuildLootMasterDelta(const shared_ptr<Group>& group)
void GroupMessageBuilder::SendBaselines(const std::shared_ptr<Group>& group, const std::shared_ptr<swganh::observer::ObserverInterface>& observer)
{
- group->AddBaselineToCache(&BuildBaseline3(group));
- group->AddBaselineToCache(&BuildBaseline6(group));
-
- for (auto& baseline : group->GetBaselines())
- {
- observer->Notify(&baseline);
- }
+ observer->Notify(&BuildBaseline3(group));
+ observer->Notify(&BuildBaseline6(group));
SendEndBaselines(group, observer);
}
View
4 src/swganh_core/object/guild/guild_message_builder.cc
@@ -30,8 +30,8 @@ void GuildMessageBuilder::BuildGuildTagsDelta(const shared_ptr<Guild>& guild)
void GuildMessageBuilder::SendBaselines(const std::shared_ptr<Guild>& guild, const std::shared_ptr<swganh::observer::ObserverInterface>& observer)
{
- guild->AddBaselineToCache(&BuildBaseline3(guild));
- guild->AddBaselineToCache(&BuildBaseline6(guild));
+ observer->Notify(&BuildBaseline3(guild));
+ observer->Notify(&BuildBaseline6(guild));
for (auto& baseline : guild->GetBaselines())
{
View
11 src/swganh_core/object/harvester_installation/harvester_installation_message_builder.cc
@@ -21,14 +21,9 @@ void HarvesterInstallationMessageBuilder::RegisterEventHandlers()
void HarvesterInstallationMessageBuilder::SendBaselines(const shared_ptr<HarvesterInstallation>& harvester_installation, const shared_ptr<swganh::observer::ObserverInterface>& observer)
{
- harvester_installation->AddBaselineToCache(&BuildBaseline3(harvester_installation));
- harvester_installation->AddBaselineToCache(&BuildBaseline6(harvester_installation));
- harvester_installation->AddBaselineToCache(&BuildBaseline7(harvester_installation));
-
- for (auto& baseline : harvester_installation->GetBaselines())
- {
- observer->Notify(&baseline);
- }
+ observer->Notify(&BuildBaseline3(harvester_installation));
+ observer->Notify(&BuildBaseline6(harvester_installation));
+ observer->Notify(&BuildBaseline7(harvester_installation));
SendEndBaselines(harvester_installation, observer);
}
View
6 src/swganh_core/object/installation/installation_message_builder.cc
@@ -86,9 +86,9 @@ void InstallationMessageBuilder::RegisterEventHandlers()
void InstallationMessageBuilder::SendBaselines(const std::shared_ptr<Installation>& installation, const std::shared_ptr<swganh::observer::ObserverInterface>& observer)
{
- installation->AddBaselineToCache(&BuildBaseline3(installation));
- installation->AddBaselineToCache(&BuildBaseline6(installation));
- installation->AddBaselineToCache(&BuildBaseline7(installation));
+ observer->Notify(&BuildBaseline3(installation));
+ observer->Notify(&BuildBaseline6(installation));
+ observer->Notify(&BuildBaseline7(installation));
for (auto& baseline : installation->GetBaselines())
{
View
4 src/swganh_core/object/intangible/intangible_message_builder.cc
@@ -19,8 +19,8 @@ void IntangibleMessageBuilder::RegisterEventHandlers()
void IntangibleMessageBuilder::SendBaselines(const std::shared_ptr<Intangible>& intangible, const std::shared_ptr<swganh::observer::ObserverInterface>& observer)
{
- intangible->AddBaselineToCache(&BuildBaseline3(intangible));
- intangible->AddBaselineToCache(&BuildBaseline6(intangible));
+ observer->Notify(&BuildBaseline3(intangible));
+ observer->Notify(&BuildBaseline6(intangible));
for (auto& baseline : intangible->GetBaselines())
{
View
11 src/swganh_core/object/manufacture_schematic/manufacture_schematic_message_builder.cc
@@ -95,14 +95,9 @@ void ManufactureSchematicMessageBuilder::SendBaselines(
const std::shared_ptr<ManufactureSchematic>& manufacture_schematic,
const std::shared_ptr<swganh::observer::ObserverInterface>& observer)
{
- manufacture_schematic->AddBaselineToCache(&BuildBaseline3(manufacture_schematic));
- manufacture_schematic->AddBaselineToCache(&BuildBaseline6(manufacture_schematic));
- manufacture_schematic->AddBaselineToCache(&BuildBaseline7(manufacture_schematic));
-
- for (auto& baseline : manufacture_schematic->GetBaselines())
- {
- observer->Notify(&baseline);
- }
+ observer->Notify(&BuildBaseline3(manufacture_schematic));
+ observer->Notify(&BuildBaseline6(manufacture_schematic));
+ observer->Notify(&BuildBaseline7(manufacture_schematic));
SendEndBaselines(manufacture_schematic, observer);
}
View
9 src/swganh_core/object/mission/mission_message_builder.cc
@@ -236,13 +236,8 @@ void MissionMessageBuilder::BuildMissionWaypointDelta(const std::shared_ptr<Miss
void MissionMessageBuilder::SendBaselines(const std::shared_ptr<Mission>& mission, const std::shared_ptr<swganh::observer::ObserverInterface>& observer)
{
- mission->AddBaselineToCache(&BuildBaseline3(mission));
- mission->AddBaselineToCache(&BuildBaseline6(mission));
-
- for (auto& baseline : mission->GetBaselines())
- {
- observer->Notify(&baseline);
- }
+ observer->Notify(&BuildBaseline3(mission));
+ observer->Notify(&BuildBaseline6(mission));
SendEndBaselines(mission, observer);
}
View
233 src/swganh_core/object/object.cc
@@ -91,6 +91,7 @@ void Object::ClearController()
}
void Object::AddObject(std::shared_ptr<Object> requester, std::shared_ptr<Object> obj, int32_t arrangement_id)
{
+ //// CHECK PERMISSIONS ////
if(requester == nullptr || container_permissions_->canInsert(shared_from_this(), requester, obj))
{
boost::upgrade_lock<boost::shared_mutex> lock(global_container_lock_);
@@ -111,6 +112,7 @@ void Object::AddObject(std::shared_ptr<Object> requester, std::shared_ptr<Object
void Object::RemoveObject(std::shared_ptr<Object> requester, std::shared_ptr<Object> oldObject)
{
+ //// CHECK PERMISSIONS ////
if(requester == nullptr || container_permissions_->canRemove(shared_from_this(), requester, oldObject))
{
boost::upgrade_lock<boost::shared_mutex> lock(global_container_lock_);
@@ -123,6 +125,7 @@ void Object::RemoveObject(std::shared_ptr<Object> requester, std::shared_ptr<Obj
{
boost::upgrade_to_unique_lock<boost::shared_mutex> unique_lock(lock);
+
//Remove Object from Datastructure
for(auto& slot : slot_descriptor_)
{
@@ -135,6 +138,7 @@ void Object::RemoveObject(std::shared_ptr<Object> requester, std::shared_ptr<Obj
void Object::TransferObject(std::shared_ptr<Object> requester, std::shared_ptr<Object> object, std::shared_ptr<ContainerInterface> newContainer, glm::vec3 new_position, int32_t arrangement_id)
{
+ //// CHECK PERMISSIONS ////
if( requester == nullptr || (
this->GetPermissions()->canRemove(shared_from_this(), requester, object) &&
newContainer->GetPermissions()->canInsert(newContainer, requester, object)))
@@ -145,10 +149,10 @@ void Object::TransferObject(std::shared_ptr<Object> requester, std::shared_ptr<O
boost::upgrade_to_unique_lock<boost::shared_mutex> unique(uplock);
//Perform the transfer
- //for(auto& slot : slot_descriptor_)
- //{
- // slot.second->remove_object(object);
- //}
+ for(auto& slot : slot_descriptor_)
+ {
+ slot.second->remove_object(object);
+ }
arrangement_id = newContainer->__InternalInsert(object, new_position, arrangement_id);
}
@@ -196,12 +200,14 @@ void Object::TransferObject(std::shared_ptr<Object> requester, std::shared_ptr<O
void Object::__InternalViewObjects(std::shared_ptr<Object> requester, uint32_t max_depth, bool topDown, std::function<void(std::shared_ptr<Object>)> func)
{
+ //// CHECK PERMISSIONS ////
if(requester == nullptr || container_permissions_->canView(shared_from_this(), requester))
{
uint32_t requester_instance = 0;
if(requester)
requester_instance = requester->GetInstanceId();
+ //// ITERATE THROUGH ALL SLOTS ////
for(auto& slot : slot_descriptor_)
{
slot.second->view_objects([&] (const std::shared_ptr<Object>& object) {
@@ -224,12 +230,14 @@ void Object::__InternalViewObjects(std::shared_ptr<Object> requester, uint32_t m
void Object::__InternalGetObjects(std::shared_ptr<Object> requester, uint32_t max_depth, bool topDown, std::list<std::shared_ptr<Object>>& out)
{
+ //// CHECK PERMISSIONS ////
if(requester == nullptr || container_permissions_->canView(shared_from_this(), requester))
{
uint32_t requester_instance = 0;
if(requester)
requester_instance = requester->GetInstanceId();
+ //// ITERATE THROUGH ALL OBJECT SLOTS ////
for(auto& slot : slot_descriptor_)
{
slot.second->view_objects([&] (const std::shared_ptr<Object>& object) {
@@ -315,105 +323,95 @@ void Object::SwapSlots(std::shared_ptr<Object> requester, std::shared_ptr<Object
void Object::__InternalTransfer(std::shared_ptr<Object> requester, std::shared_ptr<Object> object, std::shared_ptr<ContainerInterface> newContainer, int32_t arrangement_id)
{
- try {
- // we are already locked
- if( requester == nullptr || (
- this->GetPermissions()->canRemove(shared_from_this(), requester, object) &&
- newContainer->GetPermissions()->canInsert(newContainer, requester, object)))
- {
- arrangement_id = newContainer->__InternalInsert(object, object->GetPosition(), arrangement_id);
-
- //Split into 3 groups -- only ours, only new, and both ours and new
- std::set<std::shared_ptr<Object>> oldObservers, newObservers, bothObservers;
+ // we are already locked
+ if( requester == nullptr || (
+ this->GetPermissions()->canRemove(shared_from_this(), requester, object) &&
+ newContainer->GetPermissions()->canInsert(newContainer, requester, object)))
+ {
+ arrangement_id = newContainer->__InternalInsert(object, object->GetPosition(), arrangement_id);
- object->__InternalViewAwareObjects([&] (std::shared_ptr<Object> observer) {
- oldObservers.insert(observer);
- });
+ //Split into 3 groups -- only ours, only new, and both ours and new
+ std::set<std::shared_ptr<Object>> oldObservers, newObservers, bothObservers;
- newContainer->__InternalViewAwareObjects([&] (std::shared_ptr<Object> observer)
+ object->__InternalViewAwareObjects([&] (std::shared_ptr<Object> observer) {
+ oldObservers.insert(observer);
+ });
+
+ newContainer->__InternalViewAwareObjects([&] (std::shared_ptr<Object> observer)
+ {
+ if(newContainer->GetPermissions()->canView(newContainer, observer))
{
- if(newContainer->GetPermissions()->canView(newContainer, observer))
+ auto itr = oldObservers.find(observer);
+ if(itr != oldObservers.end())
+ {
+ oldObservers.erase(itr);
+ bothObservers.insert(observer);
+ }
+ else
{
- auto itr = oldObservers.find(observer);
- if(itr != oldObservers.end())
- {
- oldObservers.erase(itr);
- bothObservers.insert(observer);
- }
- else
- {
- newObservers.insert(observer);
- }
+ newObservers.insert(observer);
}
- }, requester);
-
- //Send Creates to only new
- for(auto& observer : newObservers) {
- object->__InternalAddAwareObject(observer, true);
- }
-
- //Send updates to both
- for(auto& observer : bothObservers) {
- object->SendUpdateContainmentMessage(observer->GetController());
- }
-
- //Send destroys to only ours
- for(auto& observer : oldObservers) {
- object->__InternalRemoveAwareObject(observer, true);
}
+ }, requester);
+
+ //Send Creates to only new
+ for(auto& observer : newObservers) {
+ object->__InternalAddAwareObject(observer, true);
+ }
+
+ //Send updates to both
+ for(auto& observer : bothObservers) {
+ object->SendUpdateContainmentMessage(observer->GetController());
+ }
+
+ //Send destroys to only ours
+ for(auto& observer : oldObservers) {
+ object->__InternalRemoveAwareObject(observer, true);
}
- } catch(const std::exception& e){
- LOG(error) << "Could not transfer object " << object->GetObjectId() << " to container :" << GetObjectId() << " with error " << e.what();
}
}
void Object::__InternalAddAwareObject(std::shared_ptr<swganh::object::Object> object, bool reverse_still_valid)
{
- std::shared_ptr<ObserverInterface> observer;
-
+ // If we're not already aware of the given object
auto find_itr = aware_objects_.find(object);
if(find_itr == aware_objects_.end())
{
+ // Make ourselves a aware of the object
aware_objects_.insert(object);
+
+ // If we're an object with an observer, send the packets
if(!IsInSnapshot())
{
- observer = object->GetController();
+ auto observer = object->GetController();
if(observer)
{
Subscribe(observer);
SendCreateByCrc(observer);
CreateBaselines(observer);
}
}
- }
-
- find_itr = object->aware_objects_.find(shared_from_this());
- if(find_itr == object->aware_objects_.end())
- {
- object->aware_objects_.insert(shared_from_this());
- if(!object->IsInSnapshot())
+
+ // Preserve the old reverse value, and generate the one for this level.
+ bool old_reverse = reverse_still_valid;
+ reverse_still_valid = GetPermissions()->canView(shared_from_this(), object);
+
+ // Iterate through the slots, and handle all the sub-objects
+ for(auto& slot : slot_descriptor_)
{
- observer = GetController();
- if(observer)
- {
- object->Subscribe(observer);
- object->SendCreateByCrc(observer);
- object->CreateBaselines(observer);
- }
+ slot.second->view_objects([&] (const std::shared_ptr<Object>& v) {
+
+ //If our parent didn't block view, object can see v as well.
+ if(old_reverse)
+ object->__InternalAddAwareObject(v, false);
+
+ // If we didn't invalidate viewability, keep going.
+ if(reverse_still_valid)
+ v->__InternalAddAwareObject(object, reverse_still_valid);
+ });
}
}
-
- for(auto& slot : slot_descriptor_)
- {
- slot.second->view_objects([&] (const std::shared_ptr<Object>& v) {
- v->__InternalAddAwareObject(object, reverse_still_valid);
- if(reverse_still_valid)
- {
- object->__InternalAddAwareObject(v, reverse_still_valid);
- }
- });
- }
}
void Object::__InternalViewAwareObjects(std::function<void(std::shared_ptr<swganh::object::Object>)> func, std::shared_ptr<swganh::object::Object> hint)
@@ -423,25 +421,28 @@ void Object::__InternalViewAwareObjects(std::function<void(std::shared_ptr<swgan
void Object::__InternalRemoveAwareObject(std::shared_ptr<swganh::object::Object> object, bool reverse_still_valid)
{
- for(auto& slot : slot_descriptor_)
- {
- slot.second->view_objects([&] (const std::shared_ptr<Object>& v) {
- v->__InternalRemoveAwareObject(object, reverse_still_valid);
- if(!reverse_still_valid)
- {
- object->__InternalRemoveAwareObject(v, reverse_still_valid);
- }
- });
- }
-
- std::shared_ptr<ObserverInterface> observer;
auto find_itr = aware_objects_.find(object);
if(find_itr != aware_objects_.end())
{
+ bool old_reverse = reverse_still_valid;
+ reverse_still_valid = GetPermissions()->canView(shared_from_this(), object);
+
+ for(auto& slot : slot_descriptor_)
+ {
+ slot.second->view_objects([&] (const std::shared_ptr<Object>& v) {
+ if(reverse_still_valid)
+ v->__InternalRemoveAwareObject(object, reverse_still_valid);
+
+ if(old_reverse)
+ object->__InternalRemoveAwareObject(v, false);
+ });
+ }
+
aware_objects_.erase(find_itr);
+
if(!IsInSnapshot())
{
- observer = object->GetController();
+ auto observer = object->GetController();
if(observer)
{
//DLOG(info) << "DELETING " << GetObjectId() << " FOR " << observer->GetId();
@@ -450,21 +451,6 @@ void Object::__InternalRemoveAwareObject(std::shared_ptr<swganh::object::Object>
}
}
}
-
- find_itr = object->aware_objects_.find(shared_from_this());
- if(find_itr != object->aware_objects_.end())
- {
- object->aware_objects_.erase(find_itr);
- if(!object->IsInSnapshot())
- {
- observer = GetController();
- if(observer)
- {
- object->SendDestroy(observer);
- object->Unsubscribe(observer);
- }
- }
- }
}
bool Object::__HasAwareObject(std::shared_ptr<Object> object)
@@ -582,40 +568,21 @@ void Object::NotifyObservers(swganh::messages::BaseSwgMessage* message)
});
}
-bool Object::IsDirty()
-{
- boost::lock_guard<boost::mutex> lock(object_mutex_);
- return !deltas_.empty();
-}
void Object::ClearBaselines()
{
boost::lock_guard<boost::mutex> lock(object_mutex_);
baselines_.clear();
}
-void Object::ClearDeltas()
-{
- boost::lock_guard<boost::mutex> lock(object_mutex_);
- deltas_.clear();
-}
BaselinesCacheContainer Object::GetBaselines()
{
boost::lock_guard<boost::mutex> lock(object_mutex_);
return baselines_;
}
-DeltasCacheContainer Object::GetDeltas(uint64_t viewer_id)
-{
- boost::lock_guard<boost::mutex> lock(object_mutex_);
- return deltas_;
-}
-
void Object::AddDeltasUpdate(DeltasMessage* message)
{
NotifyObservers(message);
-
- boost::lock_guard<boost::mutex> lock(object_mutex_);
- deltas_.push_back(*message);
}
void Object::AddBaselineToCache(swganh::messages::BaselinesMessage* baseline)
{
@@ -854,25 +821,29 @@ void Object::SendCreateByCrc(std::shared_ptr<swganh::observer::ObserverInterface
scene_object.byte_flag = 0;
observer->Notify(&scene_object);
- SendUpdateContainmentMessage(observer);
+ SendUpdateContainmentMessage(observer, false);
}
-void Object::SendUpdateContainmentMessage(std::shared_ptr<swganh::observer::ObserverInterface> observer)
+void Object::SendUpdateContainmentMessage(std::shared_ptr<swganh::observer::ObserverInterface> observer, bool send_on_no_parent)
{
if(observer == nullptr)
return;
uint64_t container_id = 0;
if (GetContainer())
+ {
container_id = GetContainer()->GetObjectId();
+ }
- //DLOG(info) << "CONTAINMENT " << GetObjectId() << " INTO " << container_id << " ARRANGEMENT " << arrangement_id_;
-
- UpdateContainmentMessage containment_message;
- containment_message.container_id = container_id;
- containment_message.object_id = GetObjectId();
- containment_message.containment_type = arrangement_id_;
- observer->Notify(&containment_message);
+ if(send_on_no_parent || container_id != 0)
+ {
+ //DLOG(info) << "CONTAINMENT " << GetObjectId() << " INTO " << container_id << " ARRANGEMENT " << arrangement_id_;
+ UpdateContainmentMessage containment_message;
+ containment_message.container_id = container_id;
+ containment_message.object_id = GetObjectId();
+ containment_message.containment_type = arrangement_id_;
+ observer->Notify(&containment_message);
+ }
}
void Object::SendDestroy(std::shared_ptr<swganh::observer::ObserverInterface> observer)
@@ -1214,4 +1185,4 @@ void Object::BuildCollisionBox()
void Object::UpdateAABB()
{
boost::geometry::envelope(world_collision_box_, aabb_);
-}
+}
View
16 src/swganh_core/object/object.h
@@ -48,10 +48,6 @@ typedef std::vector<
swganh::messages::BaselinesMessage
> BaselinesCacheContainer;
-typedef std::vector<
- swganh::messages::DeltasMessage
-> DeltasCacheContainer;
-
typedef std::map<
swganh::HashString,
boost::variant<float, int64_t, std::wstring>
@@ -234,15 +230,6 @@ class Object :
BaselinesCacheContainer GetBaselines() ;
/**
- * Returns the deltas messages generated since the last time the
- * object was made clean.
- *
- * @param viewer_id The id of the object viewing this Object instance.
- * @return The most recently generated deltas.
- */
- DeltasCacheContainer GetDeltas(uint64_t viewer_id) ;
-
- /**
* Return the client iff template file that describes this Object.
*
* @return The object iff template file name.
@@ -482,7 +469,7 @@ class Object :
/**
* @brief sends the update containment message for the given observer of this object
*/
- virtual void SendUpdateContainmentMessage(std::shared_ptr<swganh::observer::ObserverInterface> observer);
+ virtual void SendUpdateContainmentMessage(std::shared_ptr<swganh::observer::ObserverInterface> observer, bool send_on_no_parent=true);
/**
* @brief sends the destroy message for the given observer of this object
*/
@@ -707,7 +694,6 @@ class Object :
AwareObjectContainer aware_objects_;
BaselinesCacheContainer baselines_;
- DeltasCacheContainer deltas_;
std::shared_ptr<ContainerInterface> container_;
View
14 src/swganh_core/object/player/player_message_builder.cc
@@ -175,16 +175,10 @@ void PlayerMessageBuilder::RegisterEventHandlers()
void PlayerMessageBuilder::SendBaselines(const shared_ptr<Player>& player, const shared_ptr<swganh::observer::ObserverInterface>& observer)
{
- player->AddBaselineToCache(&BuildBaseline3(player));
- player->AddBaselineToCache(&BuildBaseline6(player));
- player->AddBaselineToCache(&BuildBaseline8(player));
- player->AddBaselineToCache(&BuildBaseline9(player));
-
-
- for (auto& baseline : player->GetBaselines())
- {
- observer->Notify(&baseline);
- }
+ observer->Notify(&BuildBaseline3(player));
+ observer->Notify(&BuildBaseline6(player));
+ observer->Notify(&BuildBaseline8(player));
+ observer->Notify(&BuildBaseline9(player));
SendEndBaselines(player, observer);
}
View
9 src/swganh_core/object/resource_container/resource_container_message_builder.cc
@@ -103,13 +103,8 @@ void ResourceContainerMessageBuilder::BuildVariationNameDelta(const std::shared_
void ResourceContainerMessageBuilder::SendBaselines(const std::shared_ptr<ResourceContainer>& resource_container, const std::shared_ptr<swganh::observer::ObserverInterface>& observer)
{
- resource_container->AddBaselineToCache(&BuildBaseline3(resource_container));
- resource_container->AddBaselineToCache(&BuildBaseline6(resource_container));
-
- for (auto& baseline : resource_container->GetBaselines())
- {
- observer->Notify(&baseline);
- }
+ observer->Notify(&BuildBaseline3(resource_container));
+ observer->Notify(&BuildBaseline6(resource_container));
SendEndBaselines(resource_container, observer);
}
View
4 src/swganh_core/object/static/static_message_builder.cc
@@ -15,8 +15,8 @@ void StaticMessageBuilder::RegisterEventHandlers()
void StaticMessageBuilder::SendBaselines(const std::shared_ptr<Static>& static_object, const std::shared_ptr<swganh::observer::ObserverInterface>& observer)
{
- static_object->AddBaselineToCache(&BuildBaseline3(static_object));
- static_object->AddBaselineToCache(&BuildBaseline6(static_object));
+ observer->Notify(&BuildBaseline3(static_object));
+ observer->Notify(&BuildBaseline6(static_object));
for (auto& baseline : static_object->GetBaselines())
{
View
11 src/swganh_core/object/tangible/tangible_message_builder.cc
@@ -73,14 +73,9 @@ void TangibleMessageBuilder::RegisterEventHandlers()
}
void TangibleMessageBuilder::SendBaselines(const shared_ptr<Tangible>& tangible, const shared_ptr<swganh::observer::ObserverInterface>& observer)
{
- tangible->AddBaselineToCache(&BuildBaseline3(tangible));
- tangible->AddBaselineToCache(&BuildBaseline6(tangible));
- tangible->AddBaselineToCache(&BuildBaseline7(tangible));
-
- for (auto& baseline : tangible->GetBaselines())
- {
- observer->Notify(&baseline);
- }
+ observer->Notify(&BuildBaseline3(tangible));
+ observer->Notify(&BuildBaseline6(tangible));
+ observer->Notify(&BuildBaseline7(tangible));
SendEndBaselines(tangible, observer);
}
View
4 src/swganh_core/object/waypoint/waypoint_message_builder.cc
@@ -91,8 +91,8 @@ void WaypointMessageBuilder::BuildColorDelta(const shared_ptr<Waypoint>& object)
void WaypointMessageBuilder::SendBaselines(const std::shared_ptr<Waypoint>& waypoint, const std::shared_ptr<swganh::observer::ObserverInterface>& observer)
{
- waypoint->AddBaselineToCache(&BuildBaseline3(waypoint));
- waypoint->AddBaselineToCache(&BuildBaseline6(waypoint));
+ observer->Notify(&BuildBaseline3(waypoint));
+ observer->Notify(&BuildBaseline6(waypoint));
for (auto& baseline : waypoint->GetBaselines())
{
View
9 src/swganh_core/object/weapon/weapon_message_builder.cc
@@ -21,13 +21,8 @@ void WeaponMessageBuilder::RegisterEventHandlers()
void WeaponMessageBuilder::SendBaselines(const shared_ptr<Weapon>& weapon, const shared_ptr<swganh::observer::ObserverInterface>& observer)
{
- weapon->AddBaselineToCache(&BuildBaseline3(weapon));
- weapon->AddBaselineToCache(&BuildBaseline6(weapon));
-
- for (auto& baseline : weapon->GetBaselines())
- {
- observer->Notify(&baseline);
- }
+ observer->Notify(&BuildBaseline3(weapon));
+ observer->Notify(&BuildBaseline6(weapon));
SendEndBaselines(weapon, observer);
}

0 comments on commit 5a4d196

Please sign in to comment.
Something went wrong with that request. Please try again.