e_event_addedict.c
Go to the documentation of this file.00001
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "../../../../client.h"
00026 #include "../../../cl_localentity.h"
00027 #include "e_event_addedict.h"
00028
00029
00033 static qboolean CL_AddEdictFunc (le_t *le, entity_t *ent)
00034 {
00035 ent->flags = RF_BOX;
00036 VectorSet(ent->color, 1, 1, 1);
00037 ent->alpha = 1.0;
00038 VectorCopy(le->mins, ent->mins);
00039 VectorCopy(le->maxs, ent->maxs);
00040 R_EntitySetOrigin(ent, le->origin);
00041 return qtrue;
00042 }
00043
00049 void CL_AddEdict (const eventRegister_t *self, struct dbuffer * msg)
00050 {
00051 le_t *le;
00052 int entnum;
00053 entity_type_t type;
00054 vec3_t mins, maxs;
00055
00056 NET_ReadFormat(msg, self->formatString, &type, &entnum, &mins, &maxs);
00057
00058
00059 le = LE_Get(entnum + MAX_EDICTS);
00060 if (!le) {
00061 le = LE_Add(entnum + MAX_EDICTS);
00062 } else {
00063 Com_DPrintf(DEBUG_CLIENT, "CL_AddEdict: Entity appearing already visible... overwriting the old one\n");
00064 le->inuse = qtrue;
00065 }
00066
00067 VectorCopy(mins, le->mins);
00068 VectorCopy(maxs, le->maxs);
00069 le->addFunc = CL_AddEdictFunc;
00070 le->type = type;
00071
00072 Com_DPrintf(DEBUG_CLIENT, "CL_AddEdict: entnum: %i - type: %i\n", entnum, type);
00073 }