// Render a composite droid given a DROID_TEMPLATE structure. // void displayComponentButtonTemplate(DROID_TEMPLATE *psTemplate, Vector3i *Rotation, Vector3i *Position, BOOL RotXYZ, SDWORD scale) { static DROID Droid; // Made static to reduce stack usage. SDWORD difference; /* init to NULL */ memset( &Droid, 0, sizeof(DROID) ); setMatrix(Position, Rotation, RotXYZ); pie_MatScale(scale / 100.f); // Decide how to sort it. difference = Rotation->y%360; if((difference>0 && difference <180) || difference<-180) { leftFirst = false; } else { leftFirst = true; } droidSetBits(psTemplate,&Droid); Droid.player = (UBYTE)selectedPlayer; Droid.pos.x = Droid.pos.y = Droid.pos.z = 0; //draw multi component object as a button object displayCompObj(&Droid, true); unsetMatrix(); }
// Render a composite droid given a DROID_TEMPLATE structure. // void displayComponentButtonTemplate(DROID_TEMPLATE *psTemplate, const Vector3i *Rotation, const Vector3i *Position, int scale) { const glm::mat4 matrix = setMatrix(Position, Rotation, scale); // Decide how to sort it. leftFirst = angleDelta(DEG(Rotation->y)) < 0; DROID Droid(0, selectedPlayer); memset(Droid.asBits, 0, sizeof(Droid.asBits)); droidSetBits(psTemplate, &Droid); Droid.pos = Vector3i(0, 0, 0); Droid.rot = Vector3i(0, 0, 0); //draw multi component object as a button object displayCompObj(&Droid, true, matrix); }
// Render a composite droid given a DROID_TEMPLATE structure. // void displayComponentButtonTemplate(DROID_TEMPLATE *psTemplate, Vector3i *Rotation, Vector3i *Position, bool RotXYZ, SDWORD scale) { setMatrix(Position, Rotation, RotXYZ); pie_MatScale(scale / 100.f); // Decide how to sort it. leftFirst = angleDelta(DEG(Rotation->y)) < 0; DROID Droid(0, selectedPlayer); memset(Droid.asBits, 0, sizeof(Droid.asBits)); droidSetBits(psTemplate,&Droid); Droid.pos = Vector3i(0, 0, 0); //draw multi component object as a button object displayCompObj(&Droid, true); unsetMatrix(); }