<commit_before>

#include "augs/gui/text/printer.h"
#include "augs/templates/introspect.h"

#include "game/transcendental/entity_handle.h"
#include "game/transcendental/cosmos.h"

#include "view/audiovisual_state/audiovisual_profiler.h"

#include "application/session_profiler.h"
#include "application/main/draw_debug_details.h"

#include "hypersomnia_version.h"

void draw_debug_details(
	const augs::drawer output,
	const augs::baked_font& gui_font,
	const vec2i screen_size,
	const const_entity_handle viewed_character,
	const session_profiler& session_performance,
	const audiovisual_profiler& audiovisual_performance
) {
	using namespace augs::gui::text;

	print(
		output, 
		vec2i(screen_size.x - 300, 0),
		augs::gui::text::format_recent_program_log(gui_font).multiply_alpha(150.f / 255),
		300
	);

	thread_local auto total_details = formatted_string();
	total_details.clear();

	static const auto text_style = style(
		gui_font,
		rgba(255, 255, 255, 150)
	);

	static const auto category_style = style(
		gui_font,
		rgba(yellow.rgb(), 150)
	);

	static const auto version = hypersomnia_version();

	total_details += {
		to_wstring(typesafe_sprintf(
			"Revision no.: %x %x\nDate: %x\nMessage:\n%x\n",
			version.commit_number ? std::to_string(version.commit_number) : "Unknown",
			version.commit_number ? version.working_tree_changes.empty() ? "(clean)" : "(dirty)" : "",
			version.commit_date,
			version.commit_message.size() < 30 ? version.commit_message : version.commit_message.substr(0, 30) + "(...)"
		)),
		
		text_style
	};

	if (viewed_character.alive()) {
		{
			const auto coords = viewed_character.get_logic_transform().pos;
			const auto rot = viewed_character.get_logic_transform().rotation;

			total_details += {
				typesafe_sprintf(
					L"Entities: %x\nX: %f2\nY: %f2\nRot: %f2\n",
					viewed_character.get_cosmos().get_entities_count(),
					coords.x,
					coords.y,
					rot
				),

				text_style
			};
		}<commit_msg>printing some more debug information<commit_after>#include "augs/gui/text/printer.h"
#include "augs/templates/introspect.h"

#include "game/transcendental/entity_handle.h"
#include "game/transcendental/cosmos.h"

#include "view/audiovisual_state/audiovisual_profiler.h"

#include "application/session_profiler.h"
#include "application/main/draw_debug_details.h"

#include "hypersomnia_version.h"

void draw_debug_details(
	const augs::drawer output,
	const augs::baked_font& gui_font,
	const vec2i screen_size,
	const const_entity_handle viewed_character,
	const session_profiler& session_performance,
	const audiovisual_profiler& audiovisual_performance
) {
	using namespace augs::gui::text;

	print(
		output, 
		vec2i(screen_size.x - 300, 0),
		augs::gui::text::format_recent_program_log(gui_font).multiply_alpha(150.f / 255),
		300
	);

	thread_local auto total_details = formatted_string();
	total_details.clear();

	static const auto text_style = style(
		gui_font,
		rgba(255, 255, 255, 150)
	);

	static const auto category_style = style(
		gui_font,
		rgba(yellow.rgb(), 150)
	);

	static const auto version = hypersomnia_version();

	total_details += {
		to_wstring(typesafe_sprintf(
			"Revision no.: %x %x\n"
			"Date: %x\n"
			"Message:\n%x\n",
			version.commit_number ? std::to_string(version.commit_number) : "Unknown",
			version.commit_number ? version.working_tree_changes.empty() ? "(clean)" : "(dirty)" : "",
			version.commit_date,
			version.commit_message.size() < 30 ? version.commit_message : version.commit_message.substr(0, 30) + "(...)"
		)),
		
		text_style
	};

	total_details += {
		to_wstring(typesafe_sprintf(
			"STATICALLY_ALLOCATE_ENTITIES_NUM=%x\n"
			"STATICALLY_ALLOCATE_ASSETS=%x\n"
			"STATICALLY_ALLOCATE_BAKED_FONTS=%x\n",
			STATICALLY_ALLOCATE_ENTITIES_NUM,
			STATICALLY_ALLOCATE_ASSETS,
			STATICALLY_ALLOCATE_BAKED_FONTS
		)),

		text_style
	};

	if (viewed_character.alive()) {
		{
			const auto coords = viewed_character.get_logic_transform().pos;
			const auto rot = viewed_character.get_logic_transform().rotation;

			total_details += {
				typesafe_sprintf(
					L"Entities: %x\nX: %f2\nY: %f2\nRot: %f2\n",
					viewed_character.get_cosmos().get_entities_count(),
					coords.x,
					coords.y,
					rot
				),

				text_style
			};
		}
{'fraction_non_alphanumeric': 0.12950317871438663, 'fraction_numerical': 0.01789498469507888, 'mean_word_length': 4.732793522267206, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1550665', 'n_tokens_mistral': 1806, 'n_tokens_neox': 1553, 'n_words': 252}