+static void grow_set(const struct s_file *fp, int type)
+{
+ if (!got_orig)
+ {
+ grow_orig = fp->uv->r;
+ grow_goal = grow_orig;
+ grow_strt = grow_orig;
+ got_orig = 1;
+ }
+
+ if (type == ITEM_SHRINK)
+ {
+ if (grow_goal == grow_orig * GROW_SMALL)
+ return;
+ else if (grow_goal == grow_orig * GROW_BIG)
+ {
+ grow = 1;
+ grow_goal = grow_orig;
+ }
+ else
+ {
+ grow_goal = grow_orig * GROW_SMALL;
+ grow = 1;
+ }
+ }
+ if (type == ITEM_GROW)
+ {
+ if (grow_goal == grow_orig * GROW_BIG)
+ return;
+ else if (grow_goal == grow_orig * GROW_SMALL)
+ {
+ grow = 1;
+ grow_goal = grow_orig;
+ }
+ else
+ {
+ grow_goal = grow_orig * GROW_BIG;
+ grow = 1;
+ }
+ }
+
+ if (grow)
+ {
+ grow_t = 0.0;
+ grow_strt = fp->uv->r;
+ }
+}
+
+static void grow_ball(const struct s_file *fp, float dt)