X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=fishladder.c;h=bcbc37428b6335433bd2ff7306feb337aeab982d;hb=f98aae8c634505a899a2feaec34af873d90227cc;hp=bcb554774c96c1a1b6797eb2a0c83f205fa26c16;hpb=f41ad9a5cd33c68bab59f2818416b8b6e8b632ae;p=fishladder.git diff --git a/fishladder.c b/fishladder.c index bcb5547..bcbc374 100644 --- a/fishladder.c +++ b/fishladder.c @@ -197,14 +197,14 @@ struct world *data; #pragma pack(pop) - u32 frame; + int frame; int initialzed; - u32 sim_frame; + int sim_frame; float sim_start; int simulating; - u32 sim_run, max_runs; + int sim_run, max_runs; float frame_lerp; @@ -1775,12 +1775,35 @@ void vg_render(void) int x2 = cell->links[trigger_id] % world.w; int y2 = (cell->links[trigger_id] - x2) / world.w; - v2f drag_to_co; + v2f startpoint; + v2f midpoint; + v2f endpoint; - drag_to_co[0] = (float)x2 + (trigger_id? 0.75f: 0.25f); - drag_to_co[1] = (float)y2 + 0.25f; + startpoint[0] = (float)x2 + (trigger_id? 0.75f: 0.25f); + startpoint[1] = (float)y2 + 0.25f; - vg_line2( (v2f){x+0.5f,y+0.5f}, drag_to_co, 0xff0000ff, 0xff00ffff ); + endpoint[0] = x+0.5f; + endpoint[1] = y+0.5f; + v2_add( startpoint, endpoint, midpoint ); + v2_muls( midpoint, 0.5f, midpoint ); + midpoint[1] += -0.8f; + + float t, ta; + v2f lastpoint; v2f curpoint; + v2_copy( startpoint, lastpoint ); + + for( int i = 0; i < 10; i ++ ) + { + t = ((float)i+1.f)/10.0f; + ta = 1.0f-t; + + v2_muls( startpoint, ta*ta, curpoint ); + v2_muladds( curpoint, midpoint, 2.0f*ta*t, curpoint ); + v2_muladds( curpoint, endpoint, t*t, curpoint ); + + vg_line2( lastpoint, curpoint, 0xff444444, 0xff444444 ); + v2_copy( curpoint, lastpoint ); + } } if( cell->config == k_cell_type_split )