all campaign levels are done
authorhgn <hgodden00@gmail.com>
Mon, 13 Dec 2021 05:31:09 +0000 (05:31 +0000)
committerhgn <hgodden00@gmail.com>
Mon, 13 Dec 2021 05:31:09 +0000 (05:31 +0000)
fishladder.c
fishladder_resources.h
maps/cmp_grad.map [new file with mode: 0644]
maps/cmp_i01.map [new file with mode: 0644]
maps/cmp_i02.map [new file with mode: 0644]
maps/cmp_secret.map [new file with mode: 0644]
maps/sort.map [deleted file]
maps/thirds.map [deleted file]

index 412182cd21619e4821865ac1733290d1b3f5be71..d4640be4b2f08e27c15113af77bd07bfe819f5e8 100644 (file)
@@ -564,7 +564,7 @@ static int map_load( const char *str, const char *name )
                                                struct cell_terminal *terminal = &world.io[ reg_start ];
                                                struct terminal_run *run = &terminal->runs[ terminal->run_count-1 ];
 
-                                               if( *c >= 'a' && *c <= 'z' )
+                                               if( (*c >= 'a' && *c <= 'z') || *c == ' ' )
                                                {                                                       
                                                        run->conditions[ run->condition_count ++ ] = *c;
                                                }
@@ -1611,11 +1611,15 @@ void vg_update(void)
                                {
                                        if( world.sim_frame < term->runs[ world.sim_run ].condition_count )
                                        {
+                                               char emit = term->runs[ world.sim_run ].conditions[ world.sim_frame ];
+                                               if( emit == ' ' )
+                                                       continue;
+                                       
                                                struct fish *fish = &world.fishes[ world.num_fishes ];
                                                v2i_copy( term->pos, fish->pos );
                                                
                                                fish->state = k_fish_state_alive;
-                                               fish->payload = term->runs[ world.sim_run ].conditions[ world.sim_frame ];
+                                               fish->payload = emit;
                                                
                                                struct cell *cell_ptr = pcell( fish->pos );
                                                
@@ -2340,14 +2344,18 @@ void vg_render(void)
                        
                                if( is_input )
                                {
-                                       colour_code_v3( term->runs[k].conditions[j], dot_colour );
-                                       glUniform4fv( SHADER_UNIFORM( shader_tile_colour, "uColour" ), 1, dot_colour );
-                               
-                                       // Draw filled if tick not passed, draw empty if empty
-                                       if( (world.sim_frame > j && world.sim_run >= k) || world.sim_run > k )
-                                               draw_mesh( empty_start, empty_count );
-                                       else
-                                               draw_mesh( filled_start, filled_count );
+                                       char cc = term->runs[k].conditions[j];
+                                       if( cc != ' ' )
+                                       {                                       
+                                               colour_code_v3( cc, dot_colour );
+                                               glUniform4fv( SHADER_UNIFORM( shader_tile_colour, "uColour" ), 1, dot_colour );
+                                       
+                                               // Draw filled if tick not passed, draw empty if empty
+                                               if( (world.sim_frame > j && world.sim_run >= k) || world.sim_run > k )
+                                                       draw_mesh( empty_start, empty_count );
+                                               else
+                                                       draw_mesh( filled_start, filled_count );
+                                       }
                                }
                                else
                                {
@@ -2509,7 +2517,7 @@ void vg_ui(void)
                                        pack_selection = i;
                                
                                ui_global_ctx.cursor[1] += 2;
-                               gui_text( pack_is_unlocked? pack_infos[i].name: "", 4, 0 );
+                               gui_text( pack_is_unlocked? pack_infos[i].name: "???", 4, 0 );
                                gui_end_right();
                                
                                gui_reset_colours();
index 77601be0ac5678e2e3d47df489ce350a786f257a..7e78aa48ccad779c292d38dba09202f53d8f33dc 100644 (file)
@@ -640,7 +640,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 +651,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 +663,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 +674,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 +690,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 +703,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 +715,8 @@ static struct cmp_level cmp_levels_basic[] =
                .serial_id = 4,
                .title = "SUBDIVISION 2",
                .map_name = "cmp_b02",
-               .description = "",
+               .description = 
+                       "",
                
                ._unlock = 7
        },
@@ -719,8 +725,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 +736,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 +746,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 +783,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 +793,8 @@ static struct cmp_level cmp_levels_basic[] =
                .serial_id = 10,
                .title = "SHIFT",
                .map_name = "cmp_b08",
-               .description = "",
+               .description = 
+                       "",
 
                ._unlock = 17
        },
@@ -792,7 +803,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 +849,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 +876,7 @@ static struct cmp_level cmp_levels_grad[] =
                ._linked = 14
                
        },
+       // r2
        {
                .serial_id = 14,
                .title = "THIRDS",
@@ -872,36 +888,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;
diff --git a/maps/cmp_grad.map b/maps/cmp_grad.map
new file mode 100644 (file)
index 0000000..dbd51c0
--- /dev/null
@@ -0,0 +1,18 @@
+#####################;
+##########-##########;cccc:cccc:ccc:cc
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+####+##+########+####;a:aa:aa:a,aaa:aa:a:a,cccc:cccc:cccc:cccc
+#####################;
diff --git a/maps/cmp_i01.map b/maps/cmp_i01.map
new file mode 100644 (file)
index 0000000..07ab324
--- /dev/null
@@ -0,0 +1,16 @@
+################;
+####-######-####;aa:a:a:aa,bbb:bbb:bb:bbbb
+##            ##;
+##            ##;
+##            ##;
+##            ##;
+##            ##;
+##            ##;
+##            ##;
+##            ##;
+##            ##;
+##            ##;
+##            ##;
+##            ##;
+###+#######+####;aa:bbb:bb:aa,bbb:a:a:bbbb
+################;
diff --git a/maps/cmp_i02.map b/maps/cmp_i02.map
new file mode 100644 (file)
index 0000000..9794f43
--- /dev/null
@@ -0,0 +1,19 @@
+#####################;
+#######-##-##-#######;a:aa:aaa,a:aa:aaa,a:aa:aaa
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##########+##########;aaa:aaaaaa:aaaaaaaaa
+#####################;
diff --git a/maps/cmp_secret.map b/maps/cmp_secret.map
new file mode 100644 (file)
index 0000000..c2801e0
--- /dev/null
@@ -0,0 +1,18 @@
+#####################;
+##########-##########;:c::
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+##                 ##;
+####+###########+####;aa a:a aa:a a :aaaa,c:c:c:c
+#####################;
diff --git a/maps/sort.map b/maps/sort.map
deleted file mode 100644 (file)
index 07ab324..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-################;
-####-######-####;aa:a:a:aa,bbb:bbb:bb:bbbb
-##            ##;
-##            ##;
-##            ##;
-##            ##;
-##            ##;
-##            ##;
-##            ##;
-##            ##;
-##            ##;
-##            ##;
-##            ##;
-##            ##;
-###+#######+####;aa:bbb:bb:aa,bbb:a:a:bbbb
-################;
diff --git a/maps/thirds.map b/maps/thirds.map
deleted file mode 100644 (file)
index 4111bef..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#####################;
-#######-##-##-#######;a:aa:aaa,a:aa:aaa,a:aa:aaa
-##                 ##;
-##                 ##;
-##                 ##;
-##                 ##;
-##                 ##;
-##                 ##;
-##                 ##;
-##                 ##;
-##                 ##;
-##                 ##;
-##                 ##;
-##                 ##;
-##                 ##;
-##                 ##;
-##                 ##;
-##                 ##;
-##                 ##;
-##########+##########;aaa:aaaaaa:aaaaaaaaa
-#####################;