small compression
[carveJwlIkooP6JGAAIwe30JlM.git] / blender_export.py
index db6e97c517e6af71cd57ae2354e1c70fd507df13..1646d83a252a3e5f6469ca05a407b080c831e521 100644 (file)
@@ -42,9 +42,9 @@ sr_entity_list = [
    ('ent_relay',        'Relay',          '', 20 )
 ]
 
-MDL_VERSION_NR = 102
+MDL_VERSION_NR = 103
 SR_TRIGGERABLE = [ 'ent_audio', 'ent_ccmd', 'ent_gate', 'ent_challenge', \
-                   'ent_relay', 'ent_skateshop', 'ent_objective' ]
+                   'ent_relay', 'ent_skateshop', 'ent_objective', 'ent_route' ]
 
 def get_entity_enum_id( alias ):
 #{
@@ -263,7 +263,11 @@ class ent_route(Structure):
                ("factive",c_float),
                ("board_transform",(c_float*3)*4),
                ("sm",mdl_submesh),
-               ("latest_pass",c_double)]
+               ("latest_pass",c_double),
+               ("id_camera",c_uint32), # v103+ 
+               ]
+
+   sr_functions = { 0: 'view' }
 #}
 
 class ent_water(Structure):
@@ -1989,6 +1993,7 @@ def sr_compile( collection ):
          route.pstr_name = sr_compile_string( obj_data.alias )
          route.checkpoints_start = checkpoint_count
          route.checkpoints_count = 0
+         route.id_camera = sr_entity_id( obj_data.cam )
 
          for ci in range(3):
             route.colour[ci] = obj_data.colour[ci]
@@ -2889,11 +2894,16 @@ class SR_OBJECT_ENT_ROUTE(bpy.types.PropertyGroup):
           name="Alias",\
           default="Untitled Course")
 
+   cam: bpy.props.PointerProperty( \
+           type=bpy.types.Object, name="Viewpoint", \
+           poll=lambda self,obj: sr_filter_ent_type(obj,['ent_camera']))
+
    @staticmethod
    def sr_inspector( layout, data ):
    #{
       layout.prop( data[0], 'alias' )
       layout.prop( data[0], 'colour' )
+      layout.prop( data[0], 'cam' )
 
       layout.label( text='Checkpoints' )
       layout.template_list('SR_UL_ROUTE_NODE_LIST', 'Checkpoints', \