X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=fishladder_resources.h;h=30b4dc9609e3af70754233636234e8556ee19afa;hb=28aab72fdfe826c78edd61a9956da0190c183c2e;hp=77601be0ac5678e2e3d47df489ce350a786f257a;hpb=951f90aaee84fdbb7b3d42af7164127fca183277;p=fishladder.git diff --git a/fishladder_resources.h b/fishladder_resources.h index 77601be..30b4dc9 100644 --- a/fishladder_resources.h +++ b/fishladder_resources.h @@ -385,15 +385,26 @@ SHADER_DEFINE( shader_wire, "" "uniform sampler2D uTexMain;" "uniform vec4 uColour;" + "uniform float uTime;" + "uniform float uGlow;" "" "in vec2 aTexCoords;" "" "void main()" "{" - "FragColor = uColour;" + // Compute shadowing + "float shadow = 1.0 - abs(aTexCoords.y - 0.5) * 2.0;" + "float masking = smoothstep( 0.5, 0.8, shadow );" + + "vec3 colour_comp = mix( vec3(0.0,0.0,0.0), uColour.rgb, masking );" + + "float flow_thing = fract( aTexCoords.x + uTime );" + "vec3 final_comp = colour_comp + flow_thing * uGlow;" + + "FragColor = vec4( final_comp, max( shadow* 0.2, masking ) * uColour.a );" "}" , - UNIFORMS({ "uPv", "uColour", "uTexMain", "uStart", "uEnd", "uCurve" }) + UNIFORMS({ "uPv", "uColour", "uTexMain", "uStart", "uEnd", "uCurve", "uTime", "uGlow" }) ) SHADER_DEFINE( shader_buttons, @@ -640,7 +651,8 @@ static struct cmp_level cmp_levels_tutorials[] = .serial_id = 0, .title = "PRINCIPLE 1", .map_name = "cmp_t01", - .description = "Utilize basic transport methods", + .description = + "Utilize basic transport methods", ._unlock = 1, .is_tutorial = 1 @@ -650,8 +662,9 @@ static struct cmp_level cmp_levels_tutorials[] = .serial_id = 1, .title = "PRINCIPLE 2", .map_name = "cmp_t02", - .description = "Utilize the twisty turny(TM) piece to split\n" - "the marble stream into two", + .description = + "Utilize the twisty turny(TM) piece to split the marble\n" + "stream into two", ._unlock = 2, .is_tutorial = 1, @@ -661,7 +674,8 @@ static struct cmp_level cmp_levels_tutorials[] = .serial_id = 2, .title = "PRINCIPLE 3", .map_name = "cmp_t03", - .description = "Merge transport into one", + .description = + "Merge transport into one", ._unlock = 12, .is_tutorial = 1 @@ -671,8 +685,9 @@ static struct cmp_level cmp_levels_tutorials[] = .serial_id = 12, .title = "PRINCIPLE 4", .map_name = "cmp_t04", - .description = "Some stages require multiple runs to succeed\n" - "in order to pass", + .description = + "Some stages require multiple runs to succeed in order to\n" + "pass", ._unlock = 3, .is_tutorial = 1 @@ -686,10 +701,10 @@ static struct cmp_level cmp_levels_basic[] = .serial_id = 6, .title = "PATCH", .map_name = "cmp_b04", - .description = "For some reason, the division module our\n" - "intern built for us is sending twice as many\n" - "yellows as needed. We need to send the\n" - "excess to be recycled!", + .description = + "For some reason, the division module our intern built\n" + "for us is sending twice as many yellows as needed. Send\n" + "the excess to be recycled!", ._unlock = 7, ._linked = 3 @@ -699,8 +714,9 @@ static struct cmp_level cmp_levels_basic[] = .serial_id = 3, .title = "SUBDIVISION 1", .map_name = "cmp_b01", - .description = "Sometimes getting the desired amount takes\n" - "dividing up the input and recombining it.", + .description = + "Sometimes getting the desired amount takes dividing up\n" + "the input and recombining it.", ._linked = 4, ._unlock = 5 @@ -710,7 +726,8 @@ static struct cmp_level cmp_levels_basic[] = .serial_id = 4, .title = "SUBDIVISION 2", .map_name = "cmp_b02", - .description = "", + .description = + "", ._unlock = 7 }, @@ -719,8 +736,9 @@ static struct cmp_level cmp_levels_basic[] = .serial_id = 5, .title = "RESTRUCTURE", .map_name = "cmp_b03", - .description = "It is possible to swap these values using\n" - "simple division and addition.", + .description = + "It is possible to swap these values using simple\n" + "division and addition.", ._unlock = 8 }, @@ -729,7 +747,8 @@ static struct cmp_level cmp_levels_basic[] = .serial_id = 7, .title = "PATTERNS 1", .map_name = "cmp_b05", - .description = "Replicate", + .description = + "Replicate", ._linked = 8 }, @@ -738,7 +757,8 @@ static struct cmp_level cmp_levels_basic[] = .serial_id = 8, .title = "PATTERNS 2", .map_name = "cmp_b06", - .description = "Replicate MORE", + .description = + "Replicate MORE", ._unlock = 15 }, @@ -774,7 +794,8 @@ static struct cmp_level cmp_levels_basic[] = .serial_id = 9, .title = "MIGHTY CONSUMER", .map_name = "cmp_b07", - .description = "Build a greedy system", + .description = + "Build a greedy system", ._linked = 10, ._unlock = 11 @@ -783,7 +804,8 @@ static struct cmp_level cmp_levels_basic[] = .serial_id = 10, .title = "SHIFT", .map_name = "cmp_b08", - .description = "", + .description = + "", ._unlock = 17 }, @@ -792,7 +814,8 @@ static struct cmp_level cmp_levels_basic[] = .serial_id = 11, .title = "REVERSE", .map_name = "cmp_b09", - .description = "Reverse the incoming order. Always length 4", + .description = + "Reverse the incoming order. Always length 4", ._unlock = 17 }, @@ -837,19 +860,22 @@ static struct cmp_level cmp_levels_basic[] = ._unlock = 20 }, + // r2 GM { .serial_id = 20, .title = "QUALIFICATION PROJECT", - .map_name = "cmp_grad", - .description = - "There's no instructions here, resolve and complete this\n" - "task to qualify yourself as an official marble engineer", + .map_name = "cmp_xor", + .description = + "Significantly more complicated than an AND or NOT gate,\n" + "but possible.", + ._unlock = 13 } }; static struct cmp_level cmp_levels_grad[] = { + // r2 { .serial_id = 13, .title = "SORT", @@ -861,6 +887,7 @@ static struct cmp_level cmp_levels_grad[] = ._linked = 14 }, + // r2 { .serial_id = 14, .title = "THIRDS", @@ -872,36 +899,29 @@ static struct cmp_level cmp_levels_grad[] = ._linked = 21 }, + // r2 GM { .serial_id = 21, - .title = "XOR CHIP", - .map_name = "cmp_xor", + .title = "SIMPLE ADDITION", + .map_name = "cmp_grad", .description = - "Significantly more complicated than an AND or NOT gate,\n" - "but possible.", + "Take the amount of yellows coming in, and add them\n" + "together. Send your result using the stream of blues.", + ._linked = 22 }, + // r2 GM { .serial_id = 22, .title = "SECRET CODE", .map_name = "cmp_secret", .description = - "Only one input should send an unlock signal marble to\n" - "the output.\n" - "The code: 100110" + "" } }; #define NUM_CAMPAIGN_LEVELS (vg_list_size( cmp_levels_tutorials ) + vg_list_size( cmp_levels_basic ) + vg_list_size( cmp_levels_grad )) -/* -static struct -{ -} -career_local = -{ -};*/ - static struct serializable_set { struct cmp_level *pack;