/** * Searches all active entities for the next one that holds the matching string at fieldofs (use * the FOFS() macro) in the structure. * * <p>Searches beginning at the edict after from, or the beginning if null null will be returned * if the end of the list is reached. */ public static EntityIterator G_Find(EntityIterator from, EntityFilter eff, String s) { if (from == null) from = new EntityIterator(0); else from.i++; for (; from.i < num_edicts; from.i++) { from.o = g_edicts[from.i]; if (from.o.classname == null) { Com.Printf("edict with classname = null" + from.o.index); } if (!from.o.inuse) continue; if (eff.matches(from.o, s)) return from; } return null; }
/** Returns entities that have origins within a spherical area. */ public static EntityIterator findradius(EntityIterator from, float[] org, float rad) { float[] eorg = {0, 0, 0}; int j; if (from == null) from = new EntityIterator(0); else from.i++; for (; from.i < num_edicts; from.i++) { from.o = g_edicts[from.i]; if (!from.o.inuse) continue; if (from.o.solid == Constants.SOLID_NOT) continue; for (j = 0; j < 3; j++) eorg[j] = org[j] - (from.o.s.origin[j] + (from.o.mins[j] + from.o.maxs[j]) * 0.5f); if (Math3D.VectorLength(eorg) > rad) continue; return from; } return null; }