Daniele Bartolini 3 лет назад
Родитель
Сommit
d72bfd92de
2 измененных файлов с 22 добавлено и 11 удалено
  1. 20 10
      src/resource/physics_resource.cpp
  2. 2 1
      src/world/physics_world_bullet.cpp

+ 20 - 10
src/resource/physics_resource.cpp

@@ -356,12 +356,18 @@ namespace physics_resource_internal
 		sjson::parse(obj, json);
 
 		u32 flags = 0;
-		flags |= (json_object::has(obj, "lock_translation_x") && sjson::parse_bool(obj["lock_translation_x"])) ? ActorFlags::LOCK_TRANSLATION_X : 0;
-		flags |= (json_object::has(obj, "lock_translation_y") && sjson::parse_bool(obj["lock_translation_y"])) ? ActorFlags::LOCK_TRANSLATION_Y : 0;
-		flags |= (json_object::has(obj, "lock_translation_z") && sjson::parse_bool(obj["lock_translation_z"])) ? ActorFlags::LOCK_TRANSLATION_Z : 0;
-		flags |= (json_object::has(obj, "lock_rotation_x") && sjson::parse_bool(obj["lock_rotation_x"])) ? ActorFlags::LOCK_ROTATION_X : 0;
-		flags |= (json_object::has(obj, "lock_rotation_y") && sjson::parse_bool(obj["lock_rotation_y"])) ? ActorFlags::LOCK_ROTATION_Y : 0;
-		flags |= (json_object::has(obj, "lock_rotation_z") && sjson::parse_bool(obj["lock_rotation_z"])) ? ActorFlags::LOCK_ROTATION_Z : 0;
+		if (json_object::has(obj, "lock_translation_x") && sjson::parse_bool(obj["lock_translation_x"]))
+			flags |= ActorFlags::LOCK_TRANSLATION_X;
+		if (json_object::has(obj, "lock_translation_y") && sjson::parse_bool(obj["lock_translation_y"]))
+			flags |= ActorFlags::LOCK_TRANSLATION_Y;
+		if (json_object::has(obj, "lock_translation_z") && sjson::parse_bool(obj["lock_translation_z"]))
+			flags |= ActorFlags::LOCK_TRANSLATION_Z;
+		if (json_object::has(obj, "lock_rotation_x") && sjson::parse_bool(obj["lock_rotation_x"]))
+			flags |= ActorFlags::LOCK_ROTATION_X;
+		if (json_object::has(obj, "lock_rotation_y") && sjson::parse_bool(obj["lock_rotation_y"]))
+			flags |= ActorFlags::LOCK_ROTATION_Y;
+		if (json_object::has(obj, "lock_rotation_z") && sjson::parse_bool(obj["lock_rotation_z"]))
+			flags |= ActorFlags::LOCK_ROTATION_Z;
 
 		ActorResource ar;
 		ar.actor_class      = sjson::parse_string_id(obj["class"]);
@@ -496,10 +502,14 @@ namespace physics_config_resource_internal
 				pa.angular_damping = sjson::parse_float(actor["angular_damping"]);
 
 			pa.flags = 0;
-			pa.flags |= (json_object::has(actor, "dynamic")         && sjson::parse_bool(actor["dynamic"])        ) ? PhysicsActor::DYNAMIC         : 0;
-			pa.flags |= (json_object::has(actor, "kinematic")       && sjson::parse_bool(actor["kinematic"])      ) ? PhysicsActor::KINEMATIC       : 0;
-			pa.flags |= (json_object::has(actor, "disable_gravity") && sjson::parse_bool(actor["disable_gravity"])) ? PhysicsActor::DISABLE_GRAVITY : 0;
-			pa.flags |= (json_object::has(actor, "trigger")         && sjson::parse_bool(actor["trigger"])        ) ? PhysicsActor::TRIGGER         : 0;
+			if (json_object::has(actor, "dynamic") && sjson::parse_bool(actor["dynamic"]))
+				pa.flags |= PhysicsActor::DYNAMIC;
+			if (json_object::has(actor, "kinematic") && sjson::parse_bool(actor["kinematic"]))
+				pa.flags |= PhysicsActor::KINEMATIC;
+			if (json_object::has(actor, "disable_gravity") && sjson::parse_bool(actor["disable_gravity"]))
+				pa.flags |= PhysicsActor::DISABLE_GRAVITY;
+			if (json_object::has(actor, "trigger") && sjson::parse_bool(actor["trigger"]))
+				pa.flags |= PhysicsActor::TRIGGER;
 
 			array::push_back(objects, pa);
 		}

+ 2 - 1
src/world/physics_world_bullet.cpp

@@ -473,7 +473,8 @@ struct PhysicsWorldImpl
 		const bool is_dynamic   = (actor_class->flags & PhysicsActor::DYNAMIC) != 0;
 		const bool is_static    = !is_kinematic && !is_dynamic;
 		const bool is_trigger   = (actor_class->flags & PhysicsActor::TRIGGER) != 0;
-		const f32  mass         = is_dynamic ? ar->mass : 0.0f;
+
+		const f32 mass = is_dynamic ? ar->mass : 0.0f;
 
 		// Create compound shape
 		btCompoundShape* shape = CE_NEW(*_allocator, btCompoundShape)(true);