random_name.c 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #include "random_name.h"
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <stdbool.h>
  5. #include <furi.h>
  6. void set_random_name(char* name, uint8_t max_name_size) {
  7. static bool rand_generator_inited = false;
  8. if(!rand_generator_inited) {
  9. srand(DWT->CYCCNT);
  10. rand_generator_inited = true;
  11. }
  12. const char* prefix[] = {
  13. "ancient", "hollow", "strange", "disappeared", "unknown",
  14. "unthinkable", "unnamable", "nameless", "my", "concealed",
  15. "forgotten", "hidden", "mysterious", "obscure", "random",
  16. "remote", "uncharted", "undefined", "untravelled", "untold",
  17. };
  18. const char* suffix[] = {
  19. "door",
  20. "entrance",
  21. "doorway",
  22. "entry",
  23. "portal",
  24. "entree",
  25. "opening",
  26. "crack",
  27. "access",
  28. "corridor",
  29. "passage",
  30. "port",
  31. };
  32. uint8_t prefix_i = rand() % COUNT_OF(prefix);
  33. uint8_t suffix_i = rand() % COUNT_OF(suffix);
  34. snprintf(name, max_name_size, "%s_%s", prefix[prefix_i], suffix[suffix_i]);
  35. // Set first symbol to upper case
  36. name[0] = name[0] - 0x20;
  37. }