static void grow_set(const struct s_file *fp, int size)
{
static int got_orig = 0;
- if (!got_orig)
+ if (!got_orig)
{
grow_orig = fp->uv->r;
grow_goal = grow_orig;
{
grow_goal = grow_orig * grow_small;
grow = 1;
- }
+ }
}/* done with 50% size coin */
if (size == 150)
{
{
grow_t = 0.0;
grow_strt = fp->uv->r;
- }
+ }
}
static void grow_ball(const struct s_file *fp, float dt)
-{
+{
float dr;
-
+
/*calculate new size based on how long since you touched the coin...*/
grow_t += dt;
if (grow_t >= grow_time)
{
grow = 0;
grow_t = grow_time;
- }
+ }
- dr = grow_strt + ((grow_goal-grow_strt) * (1.0f / (grow_time / grow_t)));
+ dr = grow_strt + ((grow_goal-grow_strt) * (1.0f / (grow_time / grow_t)));
fp->uv->p[1] += (dr - fp->uv->r); /*No sinking through the floor! keeps ball's bottom constant.*/
fp->uv->r = dr;
static void game_draw_coins(const struct s_file *fp)
{
float r = 360.f * SDL_GetTicks() / 1000.f;
- int ci;
+ int ci;
coin_push();
coin_push_text(0); /*regular coins*/
{
for (ci = 0; ci < fp->cc; ci++)
-
+
if (fp->cv[ci].n > 0 && fp->cv[ci].n < 50)
{
glPushMatrix();
coin_push_text(50); /*any shrink coins?*/
{
for (ci = 0; ci < fp->cc; ci++)
-
+
if (fp->cv[ci].n == 50)
{
glPushMatrix();
coin_push_text(150); /*any grow coins?*/
{
for (ci = 0; ci < fp->cc; ci++)
-
+
if (fp->cv[ci].n == 150)
{
glPushMatrix();
part_burst(p, c);
/*add coins if regular, change radius if not.*/
- if (n <= 10)
+ if (n <= 10)
coins += n;
else
- {
+ {
grow_set(fp, n); /*only 50 and 150 will produce results.*/
n = 0;
- }
+ }
/* Check for goal open. */
if (goal_c > 0)
part_burst(p, c+1);
part_burst(p, c+2);
drawball = 0;
+ grow_goal = grow_orig;
audio_play(AUD_TIME, 1.0f);
return GAME_TIME;
}
if (bt && fp->uv[0].p[1] < fp->vv[0].p[1])
{
audio_play(AUD_FALL, 1.0f);
+ grow_goal = grow_orig;
return GAME_FALL;
}