-VG_STATIC void world_pct_trigger( world_instance *world, mdl_node *pnode )
-{
- struct trigger_zone *trigger = &world->triggers[ world->trigger_count ];
- struct classtype_trigger *inf = mdl_get_entdata( world->meta, pnode );
-
- if( inf->target )
- {
- mdl_node *target_node = mdl_node_from_id( world->meta, inf->target );
-
- trigger->target.sub_id = target_node->sub_uid;
- trigger->target.classtype = target_node->classtype;
- }
- else
- {
- vg_warn( "Trigger with no target...\n" );
- return;
- }
-
- mdl_node_transform( pnode, trigger->transform );
- m4x3_invert_full( trigger->transform, trigger->inv_transform );
-
- world->trigger_count ++;
-}
-
-
-VG_STATIC void world_pct_relay( world_instance *world, mdl_node *pnode )
-{
- struct logic_relay *relay = &world->logic_relays[ world->relay_count ];
- struct classtype_logic_relay *inf = mdl_get_entdata( world->meta, pnode );
-
- relay->target_count = 0;
-
- for( int i=0; i<vg_list_size(relay->targets); i++ )
- {
- if( inf->targets[i] )
- {
- struct relay_target *target = &relay->targets[relay->target_count ++];
- mdl_node *other = mdl_node_from_id( world->meta, inf->targets[i] );
-
- target->classtype = other->classtype;
- target->sub_id = other->sub_uid;
- }
- }
-
- v3_copy( pnode->co, relay->pos );
- world->relay_count ++;
-}
-
-
-VG_STATIC void world_pct_achievement( world_instance *world, mdl_node *pnode )
-{
- struct logic_achievement *ach =
- &world->logic_achievements[ world->achievement_count ];
- struct classtype_logic_achievement *inf =
- mdl_get_entdata( world->meta, pnode );
-
- v3_copy( pnode->co, ach->pos );
- ach->achievement_id = mdl_pstr( world->meta, inf->pstr_name );
- ach->achieved = 0;
-
- world->achievement_count ++;
-}
-