mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 13:58:40 +00:00
fix editable expression strings, fix command evaluation, etc.
This commit is contained in:
@@ -3219,15 +3219,15 @@ rd_view_ui(Rng2F32 rect)
|
|||||||
if(cell_info.flags & RD_WatchCellFlag_CanEdit)
|
if(cell_info.flags & RD_WatchCellFlag_CanEdit)
|
||||||
{
|
{
|
||||||
any_edits_started = 1;
|
any_edits_started = 1;
|
||||||
String8 string = cell->edit_string;
|
String8 string = {0};
|
||||||
if(string.size == 0)
|
if(cell_info.flags & RD_WatchCellFlag_NoEval)
|
||||||
|
{
|
||||||
|
string = cell->eval.string;
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
string = dr_string_from_fstrs(scratch.arena, &cell_info.eval_fstrs);
|
string = dr_string_from_fstrs(scratch.arena, &cell_info.eval_fstrs);
|
||||||
}
|
}
|
||||||
if(string.size == 0)
|
|
||||||
{
|
|
||||||
string = dr_string_from_fstrs(scratch.arena, &cell_info.expr_fstrs);
|
|
||||||
}
|
|
||||||
string.size = Min(string.size, sizeof(ewv->dummy_text_edit_state.input_buffer));
|
string.size = Min(string.size, sizeof(ewv->dummy_text_edit_state.input_buffer));
|
||||||
RD_WatchPt pt = {row->block->key, row->key, rd_id_from_watch_cell(cell)};
|
RD_WatchPt pt = {row->block->key, row->key, rd_id_from_watch_cell(cell)};
|
||||||
U64 hash = ev_hash_from_key(pt.key);
|
U64 hash = ev_hash_from_key(pt.key);
|
||||||
|
|||||||
@@ -638,7 +638,6 @@ E_TYPE_IREXT_FUNCTION_DEF(cfgs)
|
|||||||
|
|
||||||
//- rjf: gather commands
|
//- rjf: gather commands
|
||||||
String8List cmds_list = {0};
|
String8List cmds_list = {0};
|
||||||
if(rd_cfg_child_from_string(rd_cfg_from_id(rd_regs()->view), str8_lit("lister")) == &rd_nil_cfg)
|
|
||||||
{
|
{
|
||||||
MD_NodePtrList schemas = rd_schemas_from_name(cfg_name);
|
MD_NodePtrList schemas = rd_schemas_from_name(cfg_name);
|
||||||
for(MD_NodePtrNode *n = schemas.first; n != 0; n = n->next)
|
for(MD_NodePtrNode *n = schemas.first; n != 0; n = n->next)
|
||||||
@@ -738,9 +737,12 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(cfgs)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//- rjf: fill
|
//- rjf: fill
|
||||||
accel->cmds = ext->cmds;
|
if(rd_cfg_child_from_string(rd_cfg_from_id(rd_regs()->view), str8_lit("lister")) == &rd_nil_cfg)
|
||||||
|
{
|
||||||
|
accel->cmds = ext->cmds;
|
||||||
|
accel->cmds_idx_range = r1u64(0, accel->cmds.count);
|
||||||
|
}
|
||||||
accel->cfgs = cfgs__filtered;
|
accel->cfgs = cfgs__filtered;
|
||||||
accel->cmds_idx_range = r1u64(0, accel->cmds.count);
|
|
||||||
accel->cfgs_idx_range = r1u64(accel->cmds_idx_range.max, accel->cmds_idx_range.max + accel->cfgs.count);
|
accel->cfgs_idx_range = r1u64(accel->cmds_idx_range.max, accel->cmds_idx_range.max + accel->cfgs.count);
|
||||||
info.expr_count = (accel->cmds.count + accel->cfgs.count);
|
info.expr_count = (accel->cmds.count + accel->cfgs.count);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1129,7 +1129,7 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
if(type->kind == E_TypeKind_Set)
|
if(type->kind == E_TypeKind_Set)
|
||||||
{
|
{
|
||||||
String8 file_path = e_string_from_id(row->eval.value.u64);
|
String8 file_path = e_string_from_id(row->eval.value.u64);
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval, .edit_string = row->edit_string, .flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented|RD_WatchCellFlag_Button|RD_WatchCellFlag_IsNonCode, .pct = 1.f);
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval, .flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented|RD_WatchCellFlag_Button|RD_WatchCellFlag_IsNonCode, .pct = 1.f);
|
||||||
if(str8_match(type->name, str8_lit("file"), 0))
|
if(str8_match(type->name, str8_lit("file"), 0))
|
||||||
{
|
{
|
||||||
info.can_expand = 0;
|
info.can_expand = 0;
|
||||||
@@ -1143,7 +1143,7 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
RD_Cfg *w_cfg = style->first;
|
RD_Cfg *w_cfg = style->first;
|
||||||
F32 next_pct = 0;
|
F32 next_pct = 0;
|
||||||
#define take_pct() (next_pct = (F32)f64_from_str8(w_cfg->string), w_cfg = w_cfg->next, next_pct)
|
#define take_pct() (next_pct = (F32)f64_from_str8(w_cfg->string), w_cfg = w_cfg->next, next_pct)
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval, .edit_string = row->edit_string, .flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented, .default_pct = 0.35f, .pct = take_pct());
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval, .flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented, .default_pct = 0.35f, .pct = take_pct());
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval, .default_pct = 0.65f, .pct = take_pct());
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval, .default_pct = 0.65f, .pct = take_pct());
|
||||||
#undef take_pct
|
#undef take_pct
|
||||||
}
|
}
|
||||||
@@ -1156,7 +1156,6 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
str8_match(row_type->name, str8_lit("unattached_process"), 0))
|
str8_match(row_type->name, str8_lit("unattached_process"), 0))
|
||||||
{
|
{
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval,
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval,
|
||||||
.edit_string = row->edit_string,
|
|
||||||
.flags = RD_WatchCellFlag_Button|RD_WatchCellFlag_Indented,
|
.flags = RD_WatchCellFlag_Button|RD_WatchCellFlag_Indented,
|
||||||
.pct = 1.f);
|
.pct = 1.f);
|
||||||
}
|
}
|
||||||
@@ -1172,7 +1171,7 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
{
|
{
|
||||||
extra_flags |= RD_WatchCellFlag_NoEval;
|
extra_flags |= RD_WatchCellFlag_NoEval;
|
||||||
}
|
}
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval, .edit_string = row->edit_string, .flags = extra_flags|RD_WatchCellFlag_Expr|RD_WatchCellFlag_Button|RD_WatchCellFlag_Indented, .pct = 1.f);
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval, .flags = extra_flags|RD_WatchCellFlag_Expr|RD_WatchCellFlag_Button|RD_WatchCellFlag_Indented, .pct = 1.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////
|
////////////////////////////
|
||||||
@@ -1181,7 +1180,7 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
else if(is_top_level && evalled_cfg != &rd_nil_cfg)
|
else if(is_top_level && evalled_cfg != &rd_nil_cfg)
|
||||||
{
|
{
|
||||||
RD_Cfg *cfg = evalled_cfg;
|
RD_Cfg *cfg = evalled_cfg;
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval, .edit_string = row->edit_string, .flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Button|RD_WatchCellFlag_Indented, .pct = 1.f);
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval, .flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Button|RD_WatchCellFlag_Indented, .pct = 1.f);
|
||||||
MD_NodePtrList schemas = rd_schemas_from_name(cfg->string);
|
MD_NodePtrList schemas = rd_schemas_from_name(cfg->string);
|
||||||
for(MD_NodePtrNode *n = schemas.first; n != 0; n = n->next)
|
for(MD_NodePtrNode *n = schemas.first; n != 0; n = n->next)
|
||||||
{
|
{
|
||||||
@@ -1252,7 +1251,6 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
{
|
{
|
||||||
CTRL_Entity *entity = evalled_entity;
|
CTRL_Entity *entity = evalled_entity;
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval,
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval,
|
||||||
.edit_string = row->edit_string,
|
|
||||||
.flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented|RD_WatchCellFlag_Button,
|
.flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented|RD_WatchCellFlag_Button,
|
||||||
.pct = 1.f);
|
.pct = 1.f);
|
||||||
if(entity->kind == CTRL_EntityKind_Machine ||
|
if(entity->kind == CTRL_EntityKind_Machine ||
|
||||||
@@ -1260,7 +1258,6 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
entity->kind == CTRL_EntityKind_Thread)
|
entity->kind == CTRL_EntityKind_Thread)
|
||||||
{
|
{
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, e_eval_wrapf(row->eval, "active"),
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, e_eval_wrapf(row->eval, "active"),
|
||||||
.edit_string = row->edit_string,
|
|
||||||
.px = floor_f32(ui_top_font_size()*5.f));
|
.px = floor_f32(ui_top_font_size()*5.f));
|
||||||
}
|
}
|
||||||
if(entity->kind == CTRL_EntityKind_Thread)
|
if(entity->kind == CTRL_EntityKind_Thread)
|
||||||
@@ -1272,7 +1269,6 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
}
|
}
|
||||||
String8 cmd_name = rd_cmd_kind_info_table[cmd_kind].string;
|
String8 cmd_name = rd_cmd_kind_info_table[cmd_kind].string;
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, e_eval_from_stringf("query:commands.%S", cmd_name),
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, e_eval_from_stringf("query:commands.%S", cmd_name),
|
||||||
.edit_string = row->edit_string,
|
|
||||||
.flags = RD_WatchCellFlag_ActivateWithSingleClick|RD_WatchCellFlag_Button,
|
.flags = RD_WatchCellFlag_ActivateWithSingleClick|RD_WatchCellFlag_Button,
|
||||||
.px = floor_f32(ui_top_font_size()*3.f));
|
.px = floor_f32(ui_top_font_size()*3.f));
|
||||||
}
|
}
|
||||||
@@ -1283,7 +1279,7 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
//
|
//
|
||||||
else if(row->eval.space.kind == RD_EvalSpaceKind_MetaQuery)
|
else if(row->eval.space.kind == RD_EvalSpaceKind_MetaQuery)
|
||||||
{
|
{
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval, .edit_string = row->edit_string, .flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented, .pct = 1.f);
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval, .flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented, .pct = 1.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////
|
////////////////////////////
|
||||||
@@ -1295,13 +1291,11 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
if(type->kind == E_TypeKind_Set)
|
if(type->kind == E_TypeKind_Set)
|
||||||
{
|
{
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval,
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval,
|
||||||
.edit_string = row->edit_string,
|
|
||||||
.flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented, .pct = 1.f);
|
.flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented, .pct = 1.f);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval,
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval,
|
||||||
.edit_string = row->edit_string,
|
|
||||||
.flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented|RD_WatchCellFlag_Button|RD_WatchCellFlag_ActivateWithSingleClick,
|
.flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented|RD_WatchCellFlag_Button|RD_WatchCellFlag_ActivateWithSingleClick,
|
||||||
.pct = 1.f);
|
.pct = 1.f);
|
||||||
}
|
}
|
||||||
@@ -1321,7 +1315,6 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
else if(row->eval.expr == &e_expr_nil && info.group_cfg_name.size != 0 && info.group_cfg_child == &rd_nil_cfg)
|
else if(row->eval.expr == &e_expr_nil && info.group_cfg_name.size != 0 && info.group_cfg_child == &rd_nil_cfg)
|
||||||
{
|
{
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval,
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval,
|
||||||
.edit_string = row->edit_string,
|
|
||||||
.flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented, .pct = 1.f);
|
.flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented, .pct = 1.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1335,7 +1328,6 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
row->eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity))
|
row->eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity))
|
||||||
{
|
{
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval,
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval,
|
||||||
.edit_string = row->edit_string,
|
|
||||||
.flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_Indented, .pct = 1.f);
|
.flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_Indented, .pct = 1.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1359,10 +1351,8 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
F32 next_pct = 0;
|
F32 next_pct = 0;
|
||||||
#define take_pct() (next_pct = (F32)f64_from_str8(w_cfg->string), w_cfg = w_cfg->next, next_pct)
|
#define take_pct() (next_pct = (F32)f64_from_str8(w_cfg->string), w_cfg = w_cfg->next, next_pct)
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval,
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval,
|
||||||
.edit_string = row->edit_string,
|
|
||||||
.flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented, .default_pct = 0.35f, .pct = take_pct());
|
.flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented, .default_pct = 0.35f, .pct = take_pct());
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval,
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval,
|
||||||
.edit_string = row->edit_string,
|
|
||||||
.default_pct = 0.65f, .pct = take_pct());
|
.default_pct = 0.65f, .pct = take_pct());
|
||||||
#undef take_pct
|
#undef take_pct
|
||||||
}
|
}
|
||||||
@@ -1379,7 +1369,6 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
F32 next_pct = 0;
|
F32 next_pct = 0;
|
||||||
#define take_pct() (next_pct = (F32)f64_from_str8(w_cfg->string), w_cfg = w_cfg->next, next_pct)
|
#define take_pct() (next_pct = (F32)f64_from_str8(w_cfg->string), w_cfg = w_cfg->next, next_pct)
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval,
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval,
|
||||||
.edit_string = row->edit_string,
|
|
||||||
.flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented,
|
.flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented,
|
||||||
.default_pct = 0.75f,
|
.default_pct = 0.75f,
|
||||||
.pct = take_pct());
|
.pct = take_pct());
|
||||||
@@ -1421,7 +1410,6 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
F32 next_pct = 0;
|
F32 next_pct = 0;
|
||||||
#define take_pct() (next_pct = (F32)f64_from_str8(w_cfg->string), w_cfg = w_cfg->next, next_pct)
|
#define take_pct() (next_pct = (F32)f64_from_str8(w_cfg->string), w_cfg = w_cfg->next, next_pct)
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval,
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval,
|
||||||
.edit_string = row->edit_string,
|
|
||||||
.flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented,
|
.flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented,
|
||||||
.default_pct = 0.35f,
|
.default_pct = 0.35f,
|
||||||
.pct = take_pct());
|
.pct = take_pct());
|
||||||
@@ -1573,9 +1561,8 @@ rd_info_from_watch_row_cell(Arena *arena, EV_Row *row, EV_StringFlags string_fla
|
|||||||
DR_FStrList expr_fstrs = {0};
|
DR_FStrList expr_fstrs = {0};
|
||||||
if(cell->flags & RD_WatchCellFlag_Expr)
|
if(cell->flags & RD_WatchCellFlag_Expr)
|
||||||
{
|
{
|
||||||
// rjf: funnel-through this cell's string, if it has one
|
|
||||||
B32 is_non_code = 0;
|
B32 is_non_code = 0;
|
||||||
String8 expr_string = cell->edit_string;
|
String8 expr_string = {0};
|
||||||
|
|
||||||
// rjf: if this cell has a meta-display-name, then use that
|
// rjf: if this cell has a meta-display-name, then use that
|
||||||
if(expr_string.size == 0)
|
if(expr_string.size == 0)
|
||||||
@@ -1620,10 +1607,10 @@ rd_info_from_watch_row_cell(Arena *arena, EV_Row *row, EV_StringFlags string_fla
|
|||||||
// rjf: generate expression string based on our notable expression
|
// rjf: generate expression string based on our notable expression
|
||||||
switch(notable_expr->kind)
|
switch(notable_expr->kind)
|
||||||
{
|
{
|
||||||
// rjf: default case -> just walk the expression tree & generate a string
|
// rjf: default case -> just take whatever string was directly passed via the evaluation
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
expr_string = e_string_from_expr(arena, notable_expr, str8_zero());
|
expr_string = cell->eval.string;
|
||||||
}break;
|
}break;
|
||||||
|
|
||||||
// rjf: array indices -> fast path to [index]
|
// rjf: array indices -> fast path to [index]
|
||||||
|
|||||||
@@ -70,7 +70,6 @@ struct RD_WatchCell
|
|||||||
RD_WatchCellKind kind;
|
RD_WatchCellKind kind;
|
||||||
RD_WatchCellFlags flags;
|
RD_WatchCellFlags flags;
|
||||||
U64 index;
|
U64 index;
|
||||||
String8 edit_string;
|
|
||||||
E_Eval eval;
|
E_Eval eval;
|
||||||
F32 default_pct;
|
F32 default_pct;
|
||||||
F32 pct;
|
F32 pct;
|
||||||
|
|||||||
Reference in New Issue
Block a user