glPopAttrib();
}
-static void game_draw_items(const struct s_vary *vary, float t)
+static void game_draw_items(const struct s_vary *vary,
+ const float *bill_M, float t)
{
- float r = 360.f * t;
int hi;
glPushAttrib(GL_LIGHTING_BIT);
glTranslatef(vary->hv[hi].p[0],
vary->hv[hi].p[1],
vary->hv[hi].p[2]);
- glRotatef(r, 0.0f, 1.0f, 0.0f);
- item_draw(&vary->hv[hi], r);
+ item_draw(&vary->hv[hi], bill_M, t);
}
glPopMatrix();
}
glTranslatef(vary->hv[hi].p[0],
vary->hv[hi].p[1],
vary->hv[hi].p[2]);
- glRotatef(r, 0.0f, 1.0f, 0.0f);
- item_draw(&vary->hv[hi], r);
+ item_draw(&vary->hv[hi], bill_M, t);
}
glPopMatrix();
}
glTranslatef(vary->hv[hi].p[0],
vary->hv[hi].p[1],
vary->hv[hi].p[2]);
- glRotatef(r, 0.0f, 1.0f, 0.0f);
- item_draw(&vary->hv[hi], r);
+ item_draw(&vary->hv[hi], bill_M, t);
}
glPopMatrix();
}
break;
case POSE_NONE:
- /* Draw the coins. */
-
- game_draw_items(draw->vary, t);
-
/* Draw the floor. */
sol_draw(draw, 0, 1);
+ /* Draw the coins. */
+
+ game_draw_items(draw->vary, M, t);
+
/* Fall through. */
case POSE_BALL:
glEnable(GL_COLOR_MATERIAL);
}
-void item_draw(const struct v_item *hp, float r)
+void item_draw(const struct v_item *hp, const GLfloat *M, float t)
{
struct s_draw *draw = NULL;
float c[3];
item_color(hp, c);
glColor3fv(c);
- sol_draw(draw, 0, 1);
+
+ glDepthMask(GL_FALSE);
+ {
+ sol_bill(draw, M, t);
+ }
+ glDepthMask(GL_TRUE);
+
+ glPushMatrix();
+ {
+ glRotatef(360.0f * t, 0.0f, 1.0f, 0.0f);
+ sol_draw(draw, 0, 1);
+ }
+ glPopMatrix();
}
void item_pull(void)