It calls this function:
void ss_variables_init(scene_state_t *ss) {
const scene_variables_t default_variables = {
// variables that haven't been explicitly initialised, will be set to 0
// TODO: verify no missing
.a = 1,
.b = 2,
.c = 3,
.cv_slew = { 1, 1, 1, 1 },
.d = 4,
.drunk_min = 0,
.drunk_max = 255,
.m = 1000,
.m_act = 1,
.o_inc = 1,
.o_min = 0,
.o_max = 63,
.o_wrap = 1,
.q_n = 1,
.r_min = 0,
.r_max = 16383,
.time_act = 1,
.tr_pol = { 1, 1, 1, 1 },
.tr_time = { 100, 100, 100, 100 },
.in_range = { 0, 16383 },
.param_range = { 0, 16383 },
};
memcpy(&ss->variables, &default_variables, sizeof(default_variables));
ss_update_param_scale(ss);
ss_update_in_scale(ss);
}
It basically sets all the variables to start-up state.
There are other variables in scene_variables_t and they are zeroed by this function. You can see all the variables affected by looking at the definition of this type in src/state.h