board maker in t he hub
authorhgn <hgodden00@gmail.com>
Tue, 13 May 2025 19:02:26 +0000 (20:02 +0100)
committerhgn <hgodden00@gmail.com>
Tue, 13 May 2025 19:02:26 +0000 (20:02 +0100)
content_skaterift/maps/dev_hub/main.mdl
src/ent_npc.c
src/player_remote.c
src/scripts/hub.c
src/skaterift_script.c

index 5dc735a54e5ab4126737aabe6542a1f369e3337d..42fbf25f18d44d98acf367f4a55b3266825c722b 100644 (file)
Binary files a/content_skaterift/maps/dev_hub/main.mdl and b/content_skaterift/maps/dev_hub/main.mdl differ
index 6427496b8071ed3bd667d4748bfbf3656cc17a23..311b0fee388664f67aad37d9145da722a3271c47 100644 (file)
@@ -116,6 +116,15 @@ static _gino_contexts[] =
          { NULL, NULL },
       }
    },
+   {
+      "boardmaker", .subtitles = (const cs_subtitle[]) 
+      {
+         { "a1", KCOL_JESUS "Now that you know how to make boards" },
+         { "a2", KCOL_JESUS "We moved a workshop in upstairs.." },
+         { "a3", KCOL_JESUS ":)" },
+         { NULL, NULL },
+      }
+   },
 
    /* VOLCANO world */
    { 
index 08f2df08e82792e5e7b6da024f9973e815157976..618b66368a70b96d5e523d83af66761a1d57f056 100644 (file)
@@ -1120,7 +1120,8 @@ void remote_players_chat_imgui( ui_context *ctx )
       }
       else 
       {
-         if( (skaterift.activity == k_skaterift_default) && button_down( k_srbind_chat ) )
+         if( (skaterift.activity == k_skaterift_default) && button_down( k_srbind_chat ) && 
+             (_world.event != k_world_event_board_maker) )
          {
             netplayers.chatting = 1;
             netplayers.chat_buffer[0] = '\0';
index 9c58b20d835446090b0136267782f2731b100de5..690e76c2dffa395cb189a39d3b9b721d5677d897 100644 (file)
@@ -106,5 +106,36 @@ static bool _skaterift_script_hub( ent_script_event *event )
       return 1;
    }
 
+   u64 status;
+   if( on_nugget_changed( event, "board_maker_unlock", &status ) )
+   {
+      ent_list *list = _ent_list_get_aliased( "gino_board_maker" );
+      bool visible = 0;
+
+      if( status )
+      {
+         u64 view = _skaterift_script_nugget_status( "board_maker_hub_view" );
+         if( view == 0 )
+            visible = 1;
+      }
+
+      _ent_list_set_visible( list, visible );
+   }
+
+   if( on_function_trigger( event, 5 ) )
+   {
+      _skaterift_script_nugget_set( "board_maker_hub_view", 1 );
+
+      // Hide just the notifier
+      struct ent_list_iter iter;
+      _ent_list_iter_start( &iter, _ent_list_get_aliased( "gino_board_maker" ), k_ent_marker );
+      if( _ent_list_iter( &iter ) )
+      {
+         world_instance *world = &_world.main;
+         ent_marker *marker = af_arritm( &world->ent_marker, iter.index );
+         marker->flags |= (u32)k_ent_marker_flag_hidden;
+      }
+   }
+
    return 0;
 }
index 73d49d704b2d9eea282b7be20864cd67580f8ad6..fdc136e5a6077677c386e927b74692dfba2cfb96 100644 (file)
@@ -683,6 +683,7 @@ struct script_save_nugget
 _skaterift_script_savedata[] = 
 {
    { "board_maker_unlock" },
+   { "board_maker_hub_view" },
    { "intro_view" },
    { "hub_info_view" },