Files
2026-11-05 19:45:34 +01:00

85 lines
4.5 KiB
C

// Pointers — Points to other players.
// category: visual descriptor: 0x2f06c0 settings block: 0x2f08b8
// functions: gui pointers_gui, register pointers_register, status pointers_status
// implementation: src/logic/visual/pointers.cpp
#pragma once
#include "slinky/api.h"
S(str_main_in_pointers); // "Main"
S(str_customization_in_pointers); // "Customization"
S(str_range_in_pointers); // "range"
S(str_ignore_fov); // "ignore_fov"
S(str_hide_friendlies_in_pointers); // "hide_friendlies"
S(str_style_in_pointers); // "style"
S(str_color_mode_in_pointers); // "color_mode"
S(str_near_far_range); // "near_far_range"
S(str_color_near); // "color_near"
S(str_color_far); // "color_far"
S(str_color_enemies_in_pointers); // "color_enemies"
S(str_color_friendlies_in_pointers); // "color_friendlies"
S(str_scale_in_pointers); // "scale"
S(str_radius_in_pointers); // "radius"
S(str_scale_radius); // "scale_radius"
S(str_s_in_pointers); // "%s"
D(pointers_near_far_range_setting); // setting rng "near_far_range"
D(pointers_scale_setting); // setting num "scale"
D(pointers_radius_setting); // setting num "radius"
D(pointers_color_near_setting); // setting key "color_near"
D(pointers_color_far_setting); // setting key "color_far"
D(pointers_enum_option_labels_1); // enum option labels (const char *[])
D(pointers_style_setting); // setting enum "style"
extern "C" unsigned pointers_style; // current value of setting "style" (+0x30)
D(pointers_scale_radius_setting); // setting bool "scale_radius"
D(pointers_color_mode_setting); // setting enum "color_mode"
extern "C" unsigned pointers_color_mode; // current value of setting "color_mode" (+0x30)
D(pointers_range_setting); // setting num "range"
D(pointers_ignore_fov_setting); // setting num "ignore_fov"
D(pointers_color_friendlies_setting); // setting key "color_friendlies"
D(pointers_color_enemies_setting); // setting key "color_enemies"
D(pointers_hide_friendlies_setting); // setting bool "hide_friendlies"
extern "C" unsigned char pointers_hide_friendlies; // current value of setting "hide_friendlies" (+0x18)
extern "C" void pointers_gui(void *gui, void *window) {
W_label(gui, window, str_main_in_pointers);
W_slider(window, gui, pointers_range_setting);
W_slider(window, gui, pointers_ignore_fov_setting);
W_bool(window, gui, pointers_hide_friendlies_setting);
W_label(gui, window, str_customization_in_pointers);
W_enumw(window, gui, pointers_style_setting);
W_enumw(window, gui, pointers_color_mode_setting);
W_range(window, gui, pointers_near_far_range_setting);
if (pointers_color_mode == 0) {
W_color(window, gui, pointers_color_near_setting);
W_color(window, gui, pointers_color_far_setting);
} else if (pointers_color_mode == 2) {
W_color(window, gui, pointers_color_enemies_setting);
if (pointers_hide_friendlies == 0)
W_color(window, gui, pointers_color_friendlies_setting);
}
W_slider(window, gui, pointers_scale_setting);
W_slider(window, gui, pointers_radius_setting);
W_bool(window, gui, pointers_scale_radius_setting);
}
extern "C" void pointers_register(void *module) {
R_num(module, str_range_in_pointers, pointers_range_setting);
R_num(module, str_ignore_fov, pointers_ignore_fov_setting);
R_bool(module, str_hide_friendlies_in_pointers, pointers_hide_friendlies_setting);
R_enum(module, str_style_in_pointers, pointers_style_setting);
R_enum(module, str_color_mode_in_pointers, pointers_color_mode_setting);
R_rng(module, str_near_far_range, pointers_near_far_range_setting);
R_key(module, str_color_near, pointers_color_near_setting);
R_key(module, str_color_far, pointers_color_far_setting);
R_key(module, str_color_enemies_in_pointers, pointers_color_enemies_setting);
R_key(module, str_color_friendlies_in_pointers, pointers_color_friendlies_setting);
R_num(module, str_scale_in_pointers, pointers_scale_setting);
R_num(module, str_radius_in_pointers, pointers_radius_setting);
R_bool(module, str_scale_radius, pointers_scale_radius_setting);
}
extern "C" void pointers_status(void *self) {
log_fmt(self, 0x20, str_s_in_pointers, ((const char **)pointers_enum_option_labels_1)[pointers_style]);
}