X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=fishladder_resources.h;h=f0371c1eb78dd368d7e77e9fb2f10804f5144892;hb=3833577f79ac1e3851423208c404288b33530f0b;hp=ef9dcd1fe89f8179bad737a9aa08c70ca6009dd5;hpb=c09e6742a336ca5a64e5ef0ab564370d1040547b;p=fishladder.git diff --git a/fishladder_resources.h b/fishladder_resources.h index ef9dcd1..f0371c1 100644 --- a/fishladder_resources.h +++ b/fishladder_resources.h @@ -361,7 +361,7 @@ SHADER_DEFINE( shader_tile_main, "uniform vec4 uOffset;" // Tile x/y, uv x/y "uniform mat3 uPv;" "uniform mat2 uSubTransform;" - //"uniform float uVisibility;" + "uniform float uVisibility;" "" "out vec4 aTexCoords;" "out vec2 aWorldCoords;" @@ -376,10 +376,10 @@ SHADER_DEFINE( shader_tile_main, "void main()" "{" "vec2 hash_val = hash22(uOffset.xy);" - //"float scaling_factor = smoothstep( hash_val.x, hash_val.x+1.0, uVisibility );" + "float scaling_factor = smoothstep( hash_val.x, hash_val.x+1.0, uVisibility );" // Vertex transform - "vec2 subtransform = uSubTransform * (a_co-0.5) + 0.5;" + "vec2 subtransform = uSubTransform * (a_co-0.5) * scaling_factor + 0.5;" "vec3 worldpos = vec3( subtransform + uOffset.xy, 1.0 );" "gl_Position = vec4( uPv * worldpos, 1.0 );" @@ -445,6 +445,7 @@ SHADER_DEFINE( shader_background, "uniform sampler2D uTexMain;" "uniform sampler2D uSamplerNoise;" "uniform float uVariance;" + "uniform float uVisibility;" "" "in vec2 aTexCoords;" "" @@ -463,7 +464,7 @@ SHADER_DEFINE( shader_background, "ao_accum -= data_this_tile.r;" - "vec3 colour_main = mix( vec3( 0.369768, 0.3654, 0.42 ),vec3( 0.275, 0.388, 0.553 ), data_this_tile.g );" + "vec3 colour_main = mix( vec3( 0.369768, 0.3654, 0.42 ), vec3( 0.275, 0.388, 0.553 ), data_this_tile.g * uVisibility );" "vec2 square_coords = fract( aTexCoords * 64.0 );" "vec2 grid_coords = abs( square_coords - 0.5 );" @@ -475,7 +476,7 @@ SHADER_DEFINE( shader_background, "FragColor = vec4( colour_main * edge_contrast + gridline * 0.02 * gridline_fadeout, 1.0 );" "}" , - UNIFORMS({ "uPv", "uOffset", "uTexMain", "uVariance", "uSamplerNoise" }) + UNIFORMS({ "uPv", "uOffset", "uTexMain", "uVariance", "uSamplerNoise", "uVisibility" }) ) SHADER_DEFINE( shader_wire, @@ -656,6 +657,8 @@ struct cmp_level int serial_id; int is_tutorial; + struct world_button btn; + #ifdef VG_STEAM SteamLeaderboard_t steam_leaderboard; #endif @@ -896,37 +899,78 @@ static struct cmp_level cmp_levels_grad[] = .map_name = "cmp_grad", .description = "", - ._linked = 22 + ._linked = 22, + ._unlock = 23 }, // r2 GM { .serial_id = 22, .title = "SECRET CODE", .map_name = "cmp_secret", + .description = "", + + ._unlock = 23 + } +}; + +static struct cmp_level cmp_levels_computer[] = +{ + { + .serial_id = 23, + .title = "3 BIT BINARY", + .map_name = "cmp_binary", + .description = "", + + ._unlock = 24 + }, + { + .serial_id = 24, + .title = "3 BIT ADDITION", + .map_name = "cmp_add3b", .description = "" } }; -#define NUM_CAMPAIGN_LEVELS (vg_list_size( cmp_levels_tutorials ) + vg_list_size( cmp_levels_basic ) + vg_list_size( cmp_levels_grad )) +#define NUM_CAMPAIGN_LEVELS (vg_list_size( cmp_levels_tutorials ) + vg_list_size( cmp_levels_basic ) + vg_list_size( cmp_levels_grad ) + vg_list_size( cmp_levels_computer ) ) -static struct serializable_set +static struct career_level_pack { struct cmp_level *pack; int count; + + v3f primary_colour; + v2i origin; + v2i dims; } -career_serializable[] = +career_packs[] = { { .pack = cmp_levels_tutorials, - .count = vg_list_size( cmp_levels_tutorials ) + .count = vg_list_size( cmp_levels_tutorials ), + .primary_colour = { 0.204f, 0.345f, 0.553f }, + .origin = { -5, 0 }, + .dims = { 1, 4 } }, { .pack = cmp_levels_basic, - .count = vg_list_size( cmp_levels_basic ) + .count = vg_list_size( cmp_levels_basic ), + .primary_colour = { 0.304f, 0.245f, 0.553f }, + .origin = { -3, 0 }, + .dims = { 3, 5 } }, { .pack = cmp_levels_grad, - .count = vg_list_size( cmp_levels_grad ) + .count = vg_list_size( cmp_levels_grad ), + .primary_colour = { 0.553f, 0.345f, 0.204f }, + .origin = { -5, 6 }, + .dims = { 4, 1 } + }, + { + .pack = cmp_levels_computer, + .count = vg_list_size( cmp_levels_computer ), + .primary_colour = { 0.75f, 0.23f, 0.39f }, + .origin = { -5, 8 }, + .dims = { 5, 1 } } }; @@ -936,18 +980,18 @@ static void career_local_data_init(void) struct cmp_level *level_ptrs[ NUM_CAMPAIGN_LEVELS ]; // COllect pointers - for( int i = 0; i < vg_list_size( career_serializable ); i ++ ) + for( int i = 0; i < vg_list_size( career_packs ); i ++ ) { - struct serializable_set *set = &career_serializable[i]; + struct career_level_pack *set = &career_packs[i]; for( int j = 0; j < set->count; j ++ ) level_ptrs[ set->pack[j].serial_id ] = &set->pack[j]; } // Apply - for( int i = 0; i < vg_list_size( career_serializable ); i ++ ) + for( int i = 0; i < vg_list_size( career_packs ); i ++ ) { - struct serializable_set *set = &career_serializable[i]; + struct career_level_pack *set = &career_packs[i]; for( int j = 0; j < set->count; j ++ ) { @@ -957,36 +1001,3 @@ static void career_local_data_init(void) } } } - -static struct button_grid -{ - v3f primary_colour; - v2i origin; - v2i dims; - struct cmp_level *levels; - int count; -} -button_grids[] = -{ - { - .primary_colour = { 0.204f, 0.345f, 0.553f }, - .origin = { -5, 0 }, - .dims = { 1, 4 }, - .levels = cmp_levels_tutorials, - .count = vg_list_size( cmp_levels_tutorials ) - }, - { - .primary_colour = { 0.304f, 0.245f, 0.553f }, - .origin = { -3, 0 }, - .dims = { 3, 6 }, - .levels = cmp_levels_basic, - .count = vg_list_size( cmp_levels_basic ) - }, - { - .primary_colour = { 0.553f, 0.345f, 0.204f }, - .origin = { -5, 7 }, - .dims = { 4, 1 }, - .levels = cmp_levels_grad, - .count = vg_list_size( cmp_levels_grad ) - } -};