All pastes #630508 Raw Edit

Untitled

public c v1 · immutable
#630508 ·published 2007-07-23 08:13 UTC
rendered paste body
Index: src/qcommon/cmodel.c===================================================================--- src/qcommon/cmodel.c	(Revision 10007)+++ src/qcommon/cmodel.c	(Arbeitskopie)@@ -207,7 +207,7 @@ static tnode_t *tnode_p; static byte stf; static byte tfList[HEIGHT][WIDTH][WIDTH];-static byte tf;+static byte tf; /**< test flag */ static void CM_MakeTnodes(void); static void CM_InitBoxHull(void);@@ -2500,10 +2500,28 @@ { 	byte **p; 	int i;+	byte size;-	for (i = 0, p = map->fblist; i < map->fblength; i++, p++)-		if (x == (*p)[0] && y == (*p)[1] && z == (*p)[2])-			return qtrue;+	for (i = 0, p = map->fblist; i < map->fblength / 2; i++, p += 2) {+		size = *(p + 1);+		if (x == (*p)[0] && y == (*p)[1] && z == (*p)[2]) {+			switch (size) {+			case 1: /* normal actor */+				return qtrue;+			case 2: /* 2x2 units */+				if (Grid_CheckForbidden(map, x - 1, y, z))+					return qtrue;+				if (Grid_CheckForbidden(map, x - 1, y - 1, z))+					return qtrue;+				if (Grid_CheckForbidden(map, x, y - 1, z))+					return qtrue;+				break;+			default:+				Com_Printf("Grid_CheckForbidden: unknown size: %i\n", size);+				return qfalse;+			}+		}+	} 	return qfalse; }Index: src/game/g_client.c===================================================================--- src/game/g_client.c	(Revision 10006)+++ src/game/g_client.c	(Arbeitskopie)@@ -1174,8 +1174,10 @@ 		if (!ent->inuse) 			continue; 		/* dead ugv will stop walking, too */-		if (((ent->type == ET_ACTOR && !(ent->state & STATE_DEAD)) || ent->type == ET_UGV) && (ent->visflags & vis_mask))+		if (((ent->type == ET_ACTOR && !(ent->state & STATE_DEAD)) || ent->type == ET_UGV) && (ent->visflags & vis_mask)) { 			fb_list[fb_length++] = ent->pos;+			fb_list[fb_length++] = (byte*)&ent->fieldSize;+		} 	} 	if (fb_length > MAX_EDICTS)Index: src/client/cl_actor.c===================================================================--- src/client/cl_actor.c	(Revision 10007)+++ src/client/cl_actor.c	(Arbeitskopie)@@ -1936,12 +1936,14 @@ 		if (!le->inuse || le->invis) 			continue; 		/* dead ugv will stop walking, too */-		if ((!(le->state & STATE_DEAD) && le->type == ET_ACTOR) || le->type == ET_UGV)+		if ((!(le->state & STATE_DEAD) && le->type == ET_ACTOR) || le->type == ET_UGV) { 			fb_list[fb_length++] = le->pos;+			fb_list[fb_length++] = (byte*)&le->fieldSize;+		} 	} #ifdef PARANOID-	if (fb_length > MAX_EDICTS)+	if (fb_length / 2 > MAX_EDICTS) 		Com_Error(ERR_DROP, "CL_BuildForbiddenList: list too long"); #endif }