num = NUM_FOR_EDICT(e) - 1;
if (num >= 0 && num < svs.maxclients)
{
+ eval_t *val;
+ // set colormap and team on newly created player entity
e->v->colormap = num + 1;
e->v->team = (svs.clients[num].colors & 15) + 1;
+ // set netname/clientcolors back to client values so that
+ // DP_SV_CLIENTNAME and DPV_SV_CLIENTCOLORS will not immediately
+ // reset them
e->v->netname = PR_SetString(svs.clients[num].name);
+ if ((val = GETEDICTFIELDVALUE(e, eval_clientcolors)))
+ val->_float = svs.clients[num].colors;
}
}
Con_DPrintf("ED_ParseEpair: Can't find field %s\n", s);
return false;
}
- val->_int = G_INT(def->ofs);
+ //val->_int = G_INT(def->ofs); AK Please check this - seems to be an org. quake bug
+ val->_int = def->ofs;
break;
case ev_function:
}
pr_global_struct->self = EDICT_TO_PROG(ent);
- PR_ExecuteProgram (func - pr_functions, "");
+ PR_ExecuteProgram (func - pr_functions, "QC function spawn is missing");
spawned++;
if (ent->e->free)
died++;
{ev_entity, "tag_entity"},
{ev_float, "tag_index"},
{ev_float, "light_lev"},
- {ev_float, "color"},
+ {ev_vector, "color"},
{ev_float, "style"},
{ev_float, "pflags"}
};
Cvar_RegisterVariable (&pr_boundscheck);
Cvar_RegisterVariable (&pr_traceqc);
- progs_mempool = Mem_AllocPool("progs.dat");
- edictstring_mempool = Mem_AllocPool("edict strings");
+ progs_mempool = Mem_AllocPool("progs.dat", 0, NULL);
+ edictstring_mempool = Mem_AllocPool("edict strings", 0, NULL);
PR_Cmd_Init();
}