extern bool visibleloading;
-/* convenience functions
- */
-Joint& Skeleton::joint(int bodypart) { return joints[jointlabels[bodypart]]; }
-XYZ& Skeleton::jointPos(int bodypart) { return joint(bodypart).position; }
-XYZ& Skeleton::jointVel(int bodypart) { return joint(bodypart).velocity; }
-
-
/* EFFECT
*/
void dealloc2(void* param)
XYZ bounceness;
const int numrepeats = 3;
float groundlevel = .15;
- int i, j, k, l, m;
+ int i, j, k, m;
XYZ temp;
XYZ terrainnormal;
int whichhit;
joints[i].position = joints[i].position + joints[i].velocity * multiplier;
switch (joints[i].label) {
- case head:
- groundlevel = .8; break;
- case righthand:
- case rightwrist:
- case rightelbow:
- case lefthand:
- case leftwrist:
- case leftelbow:
- groundlevel = .2; break;
- default:
- groundlevel = .15; break;
+ case head:
+ groundlevel = .8;
+ break;
+ case righthand:
+ case rightwrist:
+ case rightelbow:
+ case lefthand:
+ case leftwrist:
+ case leftelbow:
+ groundlevel = .2;
+ break;
+ default:
+ groundlevel = .15;
+ break;
}
joints[i].position.y -= groundlevel;
if (tutoriallevel != 1 || id == 0)
if (findLengthfast(&bounceness) > 8000 && breaking) {
- objects.model[k].MakeDecal(breakdecal, DoRotation(temp - objects.position[k], 0, -objects.yaw[k], 0), .4, .5, Random() % 360);
+ // FIXME: this crashes because k is not initialized!
+ // to reproduce, type 'wolfie' in console and play a while
+ // I'll just comment it out for now
+ //objects.model[k].MakeDecal(breakdecal, DoRotation(temp - objects.position[k], 0, -objects.yaw[k], 0), .4, .5, Random() % 360);
Sprite::MakeSprite(cloudsprite, joints[i].position * (*scale) + *coords, joints[i].velocity * .06, 1, 1, 1, 4, .2);
breaking = false;
camerashake += .6;
for (i = 0; i < num_joints; i++) {
switch (joints[i].label) {
- case head:
- groundlevel = .8; break;
- case righthand:
- case rightwrist:
- case rightelbow:
- case lefthand:
- case leftwrist:
- case leftelbow:
- groundlevel = .2; break;
- default:
- groundlevel = .15; break;
+ case head:
+ groundlevel = .8;
+ break;
+ case righthand:
+ case rightwrist:
+ case rightelbow:
+ case lefthand:
+ case leftwrist:
+ case leftelbow:
+ groundlevel = .2;
+ break;
+ default:
+ groundlevel = .15;
+ break;
}
joints[i].position.y += groundlevel;
joints[i].mass = 1;
const int label1 = muscles[which].parent1->label;
const int label2 = muscles[which].parent2->label;
switch (label1) {
- case head:
- fwd = specialforward[0]; break;
- case rightshoulder:
- case rightelbow:
- case rightwrist:
- case righthand:
- fwd = specialforward[1]; break;
- case leftshoulder:
- case leftelbow:
- case leftwrist:
- case lefthand:
- fwd = specialforward[2]; break;
- case righthip:
- case rightknee:
- case rightankle:
- case rightfoot:
- fwd = specialforward[3]; break;
- case lefthip:
- case leftknee:
- case leftankle:
- case leftfoot:
- fwd = specialforward[4]; break;
- default:
- if (muscles[which].parent1->lower)
- fwd = lowforward;
- else
- fwd = forward;
- break;
+ case head:
+ fwd = specialforward[0];
+ break;
+ case rightshoulder:
+ case rightelbow:
+ case rightwrist:
+ case righthand:
+ fwd = specialforward[1];
+ break;
+ case leftshoulder:
+ case leftelbow:
+ case leftwrist:
+ case lefthand:
+ fwd = specialforward[2];
+ break;
+ case righthip:
+ case rightknee:
+ case rightankle:
+ case rightfoot:
+ fwd = specialforward[3];
+ break;
+ case lefthip:
+ case leftknee:
+ case leftankle:
+ case leftfoot:
+ fwd = specialforward[4];
+ break;
+ default:
+ if (muscles[which].parent1->lower)
+ fwd = lowforward;
+ else
+ fwd = forward;
+ break;
}
if (animation == hanganim) {
int parentID;
FILE *tfile;
float lSize;
- int i, j, tempmuscle;
-
- int newload;
+ int i, j;
int edit;
LOGFUNC;
-
- newload = 0;
-
num_models = 7;
// load various models
}
// read num_muscles
- tempmuscle = num_muscles;
funpackf(tfile, "Bi", &num_muscles);
// allocate memory
delete [] muscles; //dealloc2(muscles);
muscles = (Muscle*)new Muscle[num_muscles]; //malloc(sizeof(Muscle)*num_muscles);
- newload = 1;
-
- // for each muscle...
+ // for each muscle...
for (i = 0; i < num_muscles; i++) {
// read info
- tempmuscle = muscles[i].numvertices;
funpackf(tfile, "Bf Bf Bf Bf Bf Bi Bi", &muscles[i].length, &muscles[i].targetlength, &muscles[i].minlength, &muscles[i].maxlength, &muscles[i].strength, &muscles[i].type, &muscles[i].numvertices);
// allocate memory for vertices
fseek(tfile, lSize, SEEK_CUR);
// read numverticeslow
- tempmuscle = muscles[i].numverticeslow;
funpackf(tfile, "Bi", &muscles[i].numverticeslow);
if (muscles[i].numverticeslow) {
fseek(tfile, lSize, SEEK_CUR);
// read numverticesclothes
- tempmuscle = muscles[i].numverticesclothes;
funpackf(tfile, "Bi", &muscles[i].numverticesclothes);
// read verticesclothes
selected = 0;
memset(forwardjoints, 0, sizeof(forwardjoints));
- // XYZ forward;
+ // XYZ forward;
id = 0;
memset(lowforwardjoints, 0, sizeof(lowforwardjoints));
- // XYZ lowforward;
+ // XYZ lowforward;
- // XYZ specialforward[5];
+ // XYZ specialforward[5];
memset(jointlabels, 0, sizeof(jointlabels));
- // Model model[7];
- // Model modellow;
- // Model modelclothes;
+ // Model model[7];
+ // Model modellow;
+ // Model modelclothes;
num_models = 0;
- // Model drawmodel;
- // Model drawmodellow;
- // Model drawmodelclothes;
+ // Model drawmodel;
+ // Model drawmodellow;
+ // Model drawmodelclothes;
clothes = 0;
spinny = 0;