Finished changes on animation system

* Added collision callback
* Set sprite density to 1 by default
* Added default frame value of 0 on frame resize
* Changed defaults for sprite fixture
* Made changes to some of the animation functions parameters
This commit is contained in:
n00b
2024-10-18 00:10:12 -04:00
parent 9b517acae1
commit 8f372bdf19
7 changed files with 142 additions and 26 deletions

View File

@@ -2861,6 +2861,8 @@ double rc_computeActorImpulseDenominator(int actor, double pos_x, double pos_y,
{
return rc_actor[actor].physics.rigid_body->computeImpulseDenominator(irr::core::vector3df(pos_x, pos_y, pos_z), irr::core::vector3df(normal_x, normal_y, normal_z));
}
return 0;
}
double rc_computeActorAngularImpulseDenominator(int actor, double x, double y, double z)
@@ -2872,6 +2874,8 @@ double rc_computeActorAngularImpulseDenominator(int actor, double x, double y, d
{
return rc_actor[actor].physics.rigid_body->computeAngularImpulseDenominator(irr::core::vector3df(x, y, z));
}
return 0;
}
void rc_setActorAngularFactor(int actor, double x, double y, double z)
@@ -3016,6 +3020,8 @@ int rc_createPointConstraintEx(int actorA, int actorB, double pxA, double pyA, d
rc_physics3D.constraints[constraint_id] = p2p;
return constraint_id;
}
return -1;
}
void rc_setPointPivotA(int constraint_id, double x, double y, double z)
@@ -3062,6 +3068,8 @@ int rc_createHingeConstraint(int actorA, int frameInA_matrix, bool useReferenceF
rc_physics3D.constraints[constraint_id] = hinge;
return constraint_id;
}
return -1;
}
@@ -3088,6 +3096,8 @@ int rc_createHingeConstraintEx(int actorA, int actorB, int frameInA_matrix, int
rc_physics3D.constraints[constraint_id] = hinge;
return constraint_id;
}
return -1;
}
int rc_createSlideConstraint(int actorA, int frameInB_matrix, bool useLinearReferenceFrameA)
@@ -3110,6 +3120,8 @@ int rc_createSlideConstraint(int actorA, int frameInB_matrix, bool useLinearRefe
rc_physics3D.constraints[constraint_id] = slide;
return constraint_id;
}
return -1;
}
int rc_createSlideConstraintEx(int actorA, int actorB, int frameInA_matrix, int frameInB_matrix, bool useLinearReferenceFrameA)
@@ -3135,6 +3147,8 @@ int rc_createSlideConstraintEx(int actorA, int actorB, int frameInA_matrix, int
rc_physics3D.constraints[constraint_id] = slide;
return constraint_id;
}
return -1;
}
@@ -3159,6 +3173,8 @@ int rc_createConeConstraint(int actorA, int rbAFrame_matrix)
rc_physics3D.constraints[constraint_id] = cone;
return constraint_id;
}
return -1;
}
int rc_createConeConstraintEx(int actorA, int actorB, int rbAFrame_matrix, int rbBFrame_matrix)
@@ -3184,6 +3200,8 @@ int rc_createConeConstraintEx(int actorA, int actorB, int rbAFrame_matrix, int r
rc_physics3D.constraints[constraint_id] = cone;
return constraint_id;
}
return -1;
}
void rc_deleteConstraint(int constraint_id)
@@ -5069,7 +5087,7 @@ void rc_setActorFrame(int actor, int frame)
void rc_setActorAutoCulling(int actor, int cull_type)
{
if(actor < 0 || actor >= rc_actor.size())
return;
return;
rc_actor[actor].mesh_node->setAutomaticCulling((irr::scene::E_CULLING_TYPE) cull_type);
}
@@ -5089,7 +5107,7 @@ int rc_getActorAutoCulling(int actor)
void rc_addActorShadow(int actor)
{
if(actor < 0 || actor >= rc_actor.size())
return;
return;
if(rc_actor[actor].shadow)
return;