Bläddra i källkod

correction to one way collision code

Juan Linietsky 8 år sedan
förälder
incheckning
d22ceeef1b
2 ändrade filer med 4 tillägg och 4 borttagningar
  1. 3 3
      servers/physics_2d/space_2d_sw.cpp
  2. 1 1
      servers/physics_2d/space_2d_sw.h

+ 3 - 3
servers/physics_2d/space_2d_sw.cpp

@@ -580,7 +580,7 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co
 							ExcludedShapeSW esp;
 							esp.local_shape = body_shape;
 							esp.against_object = col_obj;
-							esp.against_shape = against_shape;
+							esp.against_shape_index = shape_idx;
 							excluded_shape_pairs[excluded_shape_pair_count++] = esp;
 						}
 					}
@@ -649,7 +649,7 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co
 
 				for (int k = 0; k < excluded_shape_pair_count; k++) {
 
-					if (excluded_shape_pairs[k].local_shape == body_shape && excluded_shape_pairs[k].against_object == col_obj && excluded_shape_pairs[k].against_shape == against_shape) {
+					if (excluded_shape_pairs[k].local_shape == body_shape && excluded_shape_pairs[k].against_object == col_obj && excluded_shape_pairs[k].against_shape_index == shape_idx) {
 						excluded = true;
 						break;
 					}
@@ -780,7 +780,7 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co
 			bool excluded = false;
 			for (int k = 0; k < excluded_shape_pair_count; k++) {
 
-				if (excluded_shape_pairs[k].local_shape == body_shape && excluded_shape_pairs[k].against_object == col_obj && excluded_shape_pairs[k].against_shape == against_shape) {
+				if (excluded_shape_pairs[k].local_shape == body_shape && excluded_shape_pairs[k].against_object == col_obj && excluded_shape_pairs[k].against_shape_index == shape_idx) {
 					excluded = true;
 					break;
 				}

+ 1 - 1
servers/physics_2d/space_2d_sw.h

@@ -74,7 +74,7 @@ private:
 	struct ExcludedShapeSW {
 		Shape2DSW *local_shape;
 		const CollisionObject2DSW *against_object;
-		Shape2DSW *against_shape;
+		int against_shape_index;
 	};
 
 	uint64_t elapsed_time[ELAPSED_TIME_MAX];