register_equipment.cpp 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. #include "armor/arm_guards_renderer.h"
  2. #include "armor/armor_heavy_carthage.h"
  3. #include "armor/armor_light_carthage.h"
  4. #include "armor/carthage_shoulder_cover.h"
  5. #include "armor/chainmail_armor.h"
  6. #include "armor/cloak_renderer.h"
  7. #include "armor/roman_armor.h"
  8. #include "armor/roman_greaves.h"
  9. #include "armor/roman_shoulder_cover.h"
  10. #include "armor/tool_belt_renderer.h"
  11. #include "armor/work_apron_renderer.h"
  12. #include "equipment_registry.h"
  13. #include "helmets/carthage_heavy_helmet.h"
  14. #include "helmets/carthage_light_helmet.h"
  15. #include "helmets/headwrap.h"
  16. #include "helmets/roman_heavy_helmet.h"
  17. #include "helmets/roman_light_helmet.h"
  18. #include "weapons/bow_renderer.h"
  19. #include "weapons/quiver_renderer.h"
  20. #include "weapons/roman_scutum.h"
  21. #include "weapons/shield_carthage.h"
  22. #include "weapons/shield_renderer.h"
  23. #include "weapons/shield_roman.h"
  24. #include "weapons/spear_renderer.h"
  25. #include "weapons/sword_carthage.h"
  26. #include "weapons/sword_renderer.h"
  27. #include "weapons/sword_roman.h"
  28. #include <memory>
  29. namespace Render::GL {
  30. void register_built_in_equipment() {
  31. auto &registry = EquipmentRegistry::instance();
  32. BowRenderConfig carthage_config;
  33. carthage_config.bow_depth = 0.28F;
  34. carthage_config.bow_curve_factor = 1.2F;
  35. carthage_config.bow_height_scale = 0.95F;
  36. auto carthage_bow = std::make_shared<BowRenderer>(carthage_config);
  37. registry.register_equipment(EquipmentCategory::Weapon, "bow_carthage",
  38. carthage_bow);
  39. BowRenderConfig roman_config;
  40. roman_config.bow_depth = 0.22F;
  41. roman_config.bow_curve_factor = 1.0F;
  42. roman_config.bow_height_scale = 1.0F;
  43. auto roman_bow = std::make_shared<BowRenderer>(roman_config);
  44. registry.register_equipment(EquipmentCategory::Weapon, "bow_roman",
  45. roman_bow);
  46. auto bow = std::make_shared<BowRenderer>();
  47. registry.register_equipment(EquipmentCategory::Weapon, "bow", bow);
  48. auto quiver = std::make_shared<QuiverRenderer>();
  49. registry.register_equipment(EquipmentCategory::Weapon, "quiver", quiver);
  50. auto roman_scutum = std::make_shared<RomanScutumRenderer>();
  51. registry.register_equipment(EquipmentCategory::Weapon, "roman_scutum",
  52. roman_scutum);
  53. auto carthage_heavy_helmet = std::make_shared<CarthageHeavyHelmetRenderer>();
  54. registry.register_equipment(EquipmentCategory::Helmet, "carthage_heavy",
  55. carthage_heavy_helmet);
  56. auto carthage_light_helmet = std::make_shared<CarthageLightHelmetRenderer>();
  57. registry.register_equipment(EquipmentCategory::Helmet, "carthage_light",
  58. carthage_light_helmet);
  59. auto headwrap = std::make_shared<HeadwrapRenderer>();
  60. registry.register_equipment(EquipmentCategory::Helmet, "headwrap", headwrap);
  61. auto roman_heavy = std::make_shared<RomanHeavyHelmetRenderer>();
  62. registry.register_equipment(EquipmentCategory::Helmet, "roman_heavy",
  63. roman_heavy);
  64. auto roman_light = std::make_shared<RomanLightHelmetRenderer>();
  65. registry.register_equipment(EquipmentCategory::Helmet, "roman_light",
  66. roman_light);
  67. auto roman_heavy_armor = std::make_shared<RomanHeavyArmorRenderer>();
  68. registry.register_equipment(EquipmentCategory::Armor, "roman_heavy_armor",
  69. roman_heavy_armor);
  70. auto roman_light_armor = std::make_shared<RomanLightArmorRenderer>();
  71. registry.register_equipment(EquipmentCategory::Armor, "roman_light_armor",
  72. roman_light_armor);
  73. auto armor_light_carthage = std::make_shared<ArmorLightCarthageRenderer>();
  74. registry.register_equipment(EquipmentCategory::Armor, "armor_light_carthage",
  75. armor_light_carthage);
  76. auto armor_heavy_carthage = std::make_shared<ArmorHeavyCarthageRenderer>();
  77. registry.register_equipment(EquipmentCategory::Armor, "armor_heavy_carthage",
  78. armor_heavy_carthage);
  79. auto roman_shoulder_cover = std::make_shared<RomanShoulderCoverRenderer>();
  80. registry.register_equipment(EquipmentCategory::Armor, "roman_shoulder_cover",
  81. roman_shoulder_cover);
  82. auto roman_shoulder_cover_cavalry =
  83. std::make_shared<RomanShoulderCoverRenderer>(1.8F);
  84. registry.register_equipment(EquipmentCategory::Armor,
  85. "roman_shoulder_cover_cavalry",
  86. roman_shoulder_cover_cavalry);
  87. auto roman_greaves = std::make_shared<RomanGreavesRenderer>();
  88. registry.register_equipment(EquipmentCategory::Armor, "roman_greaves",
  89. roman_greaves);
  90. auto carthage_shoulder_cover =
  91. std::make_shared<CarthageShoulderCoverRenderer>();
  92. registry.register_equipment(EquipmentCategory::Armor,
  93. "carthage_shoulder_cover",
  94. carthage_shoulder_cover);
  95. auto carthage_shoulder_cover_cavalry =
  96. std::make_shared<CarthageShoulderCoverRenderer>(1.8F);
  97. registry.register_equipment(EquipmentCategory::Armor,
  98. "carthage_shoulder_cover_cavalry",
  99. carthage_shoulder_cover_cavalry);
  100. CloakConfig carthage_cloak_config;
  101. carthage_cloak_config.primary_color = QVector3D(0.14F, 0.38F, 0.54F);
  102. carthage_cloak_config.trim_color = QVector3D(0.75F, 0.66F, 0.42F);
  103. auto cloak_carthage = std::make_shared<CloakRenderer>(carthage_cloak_config);
  104. registry.register_equipment(EquipmentCategory::Armor, "cloak_carthage",
  105. cloak_carthage);
  106. auto sword = std::make_shared<SwordRenderer>();
  107. registry.register_equipment(EquipmentCategory::Weapon, "sword", sword);
  108. auto sword_carthage = std::make_shared<CarthageSwordRenderer>();
  109. registry.register_equipment(EquipmentCategory::Weapon, "sword_carthage",
  110. sword_carthage);
  111. auto sword_roman = std::make_shared<RomanSwordRenderer>();
  112. registry.register_equipment(EquipmentCategory::Weapon, "sword_roman",
  113. sword_roman);
  114. auto spear = std::make_shared<SpearRenderer>();
  115. registry.register_equipment(EquipmentCategory::Weapon, "spear", spear);
  116. auto shield = std::make_shared<ShieldRenderer>();
  117. registry.register_equipment(EquipmentCategory::Weapon, "shield", shield);
  118. auto shield_carthage = std::make_shared<CarthageShieldRenderer>();
  119. registry.register_equipment(EquipmentCategory::Weapon, "shield_carthage",
  120. shield_carthage);
  121. auto shield_carthage_cavalry =
  122. std::make_shared<CarthageShieldRenderer>(0.84F);
  123. registry.register_equipment(EquipmentCategory::Weapon,
  124. "shield_carthage_cavalry",
  125. shield_carthage_cavalry);
  126. auto shield_roman = std::make_shared<RomanShieldRenderer>();
  127. registry.register_equipment(EquipmentCategory::Weapon, "shield_roman",
  128. shield_roman);
  129. WorkApronConfig roman_apron_config;
  130. roman_apron_config.leather_color = QVector3D(0.48F, 0.35F, 0.22F);
  131. auto work_apron_roman =
  132. std::make_shared<WorkApronRenderer>(roman_apron_config);
  133. registry.register_equipment(EquipmentCategory::Armor, "work_apron_roman",
  134. work_apron_roman);
  135. WorkApronConfig carthage_apron_config;
  136. carthage_apron_config.leather_color = QVector3D(0.44F, 0.30F, 0.18F);
  137. auto work_apron_carthage =
  138. std::make_shared<WorkApronRenderer>(carthage_apron_config);
  139. registry.register_equipment(EquipmentCategory::Armor, "work_apron_carthage",
  140. work_apron_carthage);
  141. ToolBeltConfig roman_tool_belt_config;
  142. roman_tool_belt_config.leather_color = QVector3D(0.52F, 0.40F, 0.28F);
  143. auto tool_belt_roman =
  144. std::make_shared<ToolBeltRenderer>(roman_tool_belt_config);
  145. registry.register_equipment(EquipmentCategory::Armor, "tool_belt_roman",
  146. tool_belt_roman);
  147. ToolBeltConfig carthage_tool_belt_config;
  148. carthage_tool_belt_config.leather_color = QVector3D(0.46F, 0.34F, 0.22F);
  149. auto tool_belt_carthage =
  150. std::make_shared<ToolBeltRenderer>(carthage_tool_belt_config);
  151. registry.register_equipment(EquipmentCategory::Armor, "tool_belt_carthage",
  152. tool_belt_carthage);
  153. ArmGuardsConfig arm_guards_config;
  154. arm_guards_config.leather_color = QVector3D(0.50F, 0.38F, 0.26F);
  155. auto arm_guards = std::make_shared<ArmGuardsRenderer>(arm_guards_config);
  156. registry.register_equipment(EquipmentCategory::Armor, "arm_guards",
  157. arm_guards);
  158. }
  159. } // namespace Render::GL