💿🐜 Antkeeper source code https://antkeeper.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
2.8 KiB

  1. /*
  2. * Copyright (C) 2023 Christopher J. Howard
  3. *
  4. * This file is part of Antkeeper source code.
  5. *
  6. * Antkeeper source code is free software: you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation, either version 3 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * Antkeeper source code is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with Antkeeper source code. If not, see <http://www.gnu.org/licenses/>.
  18. */
  19. #ifndef ANTKEEPER_GAME_ANT_PHENOME_HPP
  20. #define ANTKEEPER_GAME_ANT_PHENOME_HPP
  21. #include "game/ant/phene/antennae.hpp"
  22. #include "game/ant/phene/body-size.hpp"
  23. #include "game/ant/phene/cocoon.hpp"
  24. #include "game/ant/phene/diet.hpp"
  25. #include "game/ant/phene/egg.hpp"
  26. #include "game/ant/phene/eyes.hpp"
  27. #include "game/ant/phene/foraging-time.hpp"
  28. #include "game/ant/phene/founding-mode.hpp"
  29. #include "game/ant/phene/gaster.hpp"
  30. #include "game/ant/phene/head.hpp"
  31. #include "game/ant/phene/larva.hpp"
  32. #include "game/ant/phene/legs.hpp"
  33. #include "game/ant/phene/mandibles.hpp"
  34. #include "game/ant/phene/mesosoma.hpp"
  35. #include "game/ant/phene/nest-site.hpp"
  36. #include "game/ant/phene/ocelli.hpp"
  37. #include "game/ant/phene/pigmentation.hpp"
  38. #include "game/ant/phene/pilosity.hpp"
  39. #include "game/ant/phene/sculpturing.hpp"
  40. #include "game/ant/phene/sting.hpp"
  41. #include "game/ant/phene/waist.hpp"
  42. #include "game/ant/phene/wings.hpp"
  43. #include "game/ant/genome.hpp"
  44. #include "game/ant/caste.hpp"
  45. namespace game {
  46. namespace ant {
  47. /**
  48. * Complete set of ant phenes.
  49. */
  50. struct phenome
  51. {
  52. /**
  53. * Constructs a phenome for a given caste.
  54. *
  55. * @param genome Ant genome.
  56. * @param caste Ant caste.
  57. */
  58. phenome(const genome& genome, caste caste);
  59. /// Constructs an empty phenome.
  60. phenome();
  61. const phene::antennae* antennae;
  62. const phene::body_size* body_size;
  63. const phene::cocoon* cocoon;
  64. const phene::diet* diet;
  65. const phene::egg* egg;
  66. const phene::eyes* eyes;
  67. const phene::foraging_time* foraging_time;
  68. const phene::founding_mode* founding_mode;
  69. const phene::gaster* gaster;
  70. const phene::head* head;
  71. const phene::larva* larva;
  72. const phene::legs* legs;
  73. const phene::mandibles* mandibles;
  74. const phene::mesosoma* mesosoma;
  75. const phene::nest_site* nest_site;
  76. const phene::ocelli* ocelli;
  77. const phene::pigmentation* pigmentation;
  78. const phene::pilosity* pilosity;
  79. const phene::sculpturing* sculpturing;
  80. const phene::sting* sting;
  81. const phene::waist* waist;
  82. const phene::wings* wings;
  83. };
  84. } // namespace ant
  85. } // namespace game
  86. #endif // ANTKEEPER_GAME_ANT_PHENOME_HPP