- cgm_vlerp(&rope->masses[j].p, ganchor + i, manchor + i, t);
- rope->masses[j].m = 0.1f;
-
- if(j < ROPE_SPRINGS) {
- rope->springs[j].rest_len = ROPE_LEN / ROPE_SPRINGS;
- rope->springs[j].k = ROPE_K;
- rope->springs[j].mass[0] = rope->masses + j;
- rope->springs[j].mass[1] = rope->masses + j + 1;
+ cgm_vlerp(&mass->p, ganchor + i, manchor + i, t);
+ mass->m = ROPE_MASSES_MASS;
+
+ if(j == 0) {
+ rsim_freeze_rope_mass(rope, rope->masses + i * ROPE_MASSES); /* freeze first mass */
+ } else {
+ rsim_set_rope_spring(rope, midx, midx - 1, ROPE_K, RSIM_RLEN_DEFAULT);