Index: src/client/cl_le.c =================================================================== --- src/client/cl_le.c (Revision 10097) +++ src/client/cl_le.c (Arbeitskopie) @@ -405,7 +405,14 @@ le->think = NULL; } +/** + * @brief + */ +void CL_PlaySoundFileAndParticleForSurface (const char *textureName) +{ +} + /** * @brief Move the actor along the path to the given location * @note Think function @@ -427,6 +434,9 @@ VectorCopy(le->pos, le->oldPos); if (le->pathPos < le->pathLength) { + trace_t trace; + vec3_t from, to; + /* next part */ dv = le->path[le->pathPos++]; PosAddDV(le->pos, dv); @@ -436,6 +446,17 @@ le->TU -= tuCost; if (le == selActor) actorMoveLength -= tuCost; + + /* prepare trace vectors */ + VectorCopy(le->origin, from); + VectorCopy(le->origin, to); + /* between these two we should really hit the ground */ + from[2] += UNIT_HEIGHT; + to[2] -= UNIT_HEIGHT; + + trace = CL_Trace(from, to, vec3_origin, vec3_origin, NULL, NULL, MASK_SOLID); + if (trace.surface) + CL_PlaySoundFileAndParticleForSurface(trace.surface.rname); le->dir = dv & (DIRECTIONS-1); le->angles[YAW] = dangle[le->dir]; le->startTime = le->endTime;