mirror of
https://github.com/DarkFlippers/unleashed-firmware
synced 2024-11-27 15:00:46 +00:00
76 lines
1.9 KiB
C
76 lines
1.9 KiB
C
|
#include "name_generator.h"
|
||
|
|
||
|
#include <stdio.h>
|
||
|
#include <stdint.h>
|
||
|
#include <furi_hal_rtc.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <stdbool.h>
|
||
|
#include <furi.h>
|
||
|
|
||
|
const char* const name_generator_left[] = {
|
||
|
"ancient", "hollow", "strange", "disappeared", "unknown", "unthinkable", "unnameable",
|
||
|
"nameless", "my", "concealed", "forgotten", "hidden", "mysterious", "obscure",
|
||
|
"random", "remote", "uncharted", "undefined", "untraveled", "untold",
|
||
|
};
|
||
|
|
||
|
const char* const name_generator_right[] = {
|
||
|
"door",
|
||
|
"entrance",
|
||
|
"doorway",
|
||
|
"entry",
|
||
|
"portal",
|
||
|
"entree",
|
||
|
"opening",
|
||
|
"crack",
|
||
|
"access",
|
||
|
"corridor",
|
||
|
"passage",
|
||
|
"port",
|
||
|
};
|
||
|
|
||
|
void name_generator_make_auto(char* name, size_t max_name_size, const char* prefix) {
|
||
|
if(furi_hal_rtc_is_flag_set(FuriHalRtcFlagDetailedFilename)) {
|
||
|
name_generator_make_detailed(name, max_name_size, prefix);
|
||
|
} else {
|
||
|
name_generator_make_random(name, max_name_size);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void name_generator_make_random(char* name, size_t max_name_size) {
|
||
|
furi_assert(name);
|
||
|
furi_assert(max_name_size);
|
||
|
|
||
|
uint8_t name_generator_left_i = rand() % COUNT_OF(name_generator_left);
|
||
|
uint8_t name_generator_right_i = rand() % COUNT_OF(name_generator_right);
|
||
|
|
||
|
snprintf(
|
||
|
name,
|
||
|
max_name_size,
|
||
|
"%s_%s",
|
||
|
name_generator_left[name_generator_left_i],
|
||
|
name_generator_right[name_generator_right_i]);
|
||
|
|
||
|
// Set first symbol to upper case
|
||
|
name[0] = name[0] - 0x20;
|
||
|
}
|
||
|
|
||
|
void name_generator_make_detailed(char* name, size_t max_name_size, const char* prefix) {
|
||
|
furi_assert(name);
|
||
|
furi_assert(max_name_size);
|
||
|
furi_assert(prefix);
|
||
|
|
||
|
FuriHalRtcDateTime dateTime;
|
||
|
furi_hal_rtc_get_datetime(&dateTime);
|
||
|
|
||
|
snprintf(
|
||
|
name,
|
||
|
max_name_size,
|
||
|
"%s-%.4d_%.2d_%.2d-%.2d_%.2d",
|
||
|
prefix,
|
||
|
dateTime.year,
|
||
|
dateTime.month,
|
||
|
dateTime.day,
|
||
|
dateTime.hour,
|
||
|
dateTime.minute);
|
||
|
}
|