Quote:
Ok, how about level vs level collision? Build a simple level consist of a cube, and use that as the entity?

No matter what you do, c_move is based on c_trace with USE_BOX and that uses ellipsoid ("me") vs. polygonal (all other objects+blocks) detection.

@Valdsator: When c_move hits something (HIT_TARGET), check where target is located. If (target.z < ent.z && target.z > ent.z+ent.min_z), then you will need to move your entity in the direction (f.i.) of the vector pointing from target to ent.z, that is

vec_diff(temp,ent.z,target);
temp.z = 0; // disable vertical movement
var ent_size = vec_length(vector(maxv(ent.max_x,-ent.min_x),maxv(ent.max_y,-ent.min_y),0));
vec_normalize(temp,ent_size-vec_length(temp)); // should be correct, give it a try
c_move(ent,nullvector,temp,...);


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends