e_event_actoradd.c

Go to the documentation of this file.
00001 
00005 /*
00006 Copyright (C) 2002-2010 UFO: Alien Invasion.
00007 
00008 This program is free software; you can redistribute it and/or
00009 modify it under the terms of the GNU General Public License
00010 as published by the Free Software Foundation; either version 2
00011 of the License, or (at your option) any later version.
00012 
00013 This program is distributed in the hope that it will be useful,
00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00016 
00017 See the GNU General Public License for more details.
00018 
00019 You should have received a copy of the GNU General Public License
00020 along with this program; if not, write to the Free Software
00021 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00022 
00023 */
00024 
00025 #include "../../../../client.h"
00026 #include "../../../cl_localentity.h"
00027 #include "e_event_actoradd.h"
00028 #include "../../../../../common/grid.h"
00029 
00037 void CL_ActorAdd (const eventRegister_t *self, struct dbuffer *msg)
00038 {
00039     le_t *le;
00040     int entnum;
00041     int teamDefID;
00042 
00043     /* check if the actor is already visible */
00044     entnum = NET_ReadShort(msg);
00045     le = LE_Get(entnum);
00046     if (le) {
00047         Com_Printf("CL_ActorAdd: Actor with number %i already exists\n", entnum);
00048         return;
00049     }
00050     le = LE_Add(entnum);
00051 
00052     /* get the info */
00053     NET_ReadFormat(msg, self->formatString,
00054                 &le->team, &teamDefID,
00055                 &le->gender, &le->pnum, &le->pos,
00056                 &le->state, &le->fieldSize);
00057 
00058     if (teamDefID < 0 || teamDefID > csi.numTeamDefs)
00059         Com_Printf("CL_ActorAdd: Invalid teamDef index\n");
00060     else
00061         le->teamDef = &csi.teamDef[teamDefID];
00062 
00063     /*Com_Printf("CL_ActorAdd: Add number: %i\n", entnum);*/
00064 
00065     le->type = ET_ACTORHIDDEN;
00066 
00067     Grid_PosToVec(cl.mapData->map, le->fieldSize, le->pos, le->origin);
00068     le->invis = qtrue;
00069 }
00070 

Generated by  doxygen 1.6.2