in coinrun/coinrun.cpp [1864:1895]
int vec_create(int game_type, int nenvs, int lump_n, bool want_hires, float default_zoom)
{
std::shared_ptr<VectorOfStates> vstate(new VectorOfStates);
vstate->states.resize(nenvs);
vstate->game_type = game_type;
for (int n = 0; n < nenvs; n++) {
vstate->states[n] = std::shared_ptr<State>(new State(vstate));
vstate->states[n]->state_n = n;
state_reset(vstate->states[n], vstate->game_type);
vstate->states[n]->agent_ready = false;
vstate->states[n]->agent.zoom = default_zoom;
vstate->states[n]->agent.target_zoom = default_zoom;
if (
(monitor_csv_policy == 1 && n == 0) ||
(monitor_csv_policy == 2))
{
vstate->states[n]->agent.monitor_csv_open(n + lump_n * nenvs);
}
if (want_hires)
vstate->states[n]->agent.render_hires_buf = new uint8_t[VIDEORES*VIDEORES*4];
}
vstate->nenvs = nenvs;
int h;
{
QMutexLocker lock(&h2s_mutex);
h = handle_seq++;
h2s[h] = vstate;
vstate->handle = h;
}
return h;
}