ent_challenge extra features
[carveJwlIkooP6JGAAIwe30JlM.git] / blender_export.py
index 349dbe038b00040efc87d5eb9b71d576358d0671..8d202983d765851a3f14164de6ddefe3bd6656ab 100644 (file)
@@ -462,14 +462,17 @@ class ent_ccmd(Structure):
 class ent_challenge(Structure):#{
    _fields_ = [("transform",mdl_transform),
                ("submesh_start",c_uint32), ("submesh_count",c_uint32),
+               ("flags",c_uint32),
                ("id_next",c_uint32),
-               ("filter",c_uint32),
+               ("filter",c_uint32),("filter2",c_uint32),
                ("id_win",c_uint32),
                ("win_event",c_uint32),
                ("time_limit",c_float)]
 
    sr_functions = { 0: 'trigger',
-                    1: 'start_challenge' }
+                    1: 'start_challenge',
+                    2: 'show',
+                    3: 'hide' }
 #}
 
 class ent_unlock(Structure):#{
@@ -1853,7 +1856,8 @@ def sr_compile( collection ):
             challenge.id_next = sr_entity_id( obj_data.proxima )
             challenge.id_win = sr_entity_id( obj_data.target )
             challenge.win_event = obj_data.target_event
-            challenge.filter = 0
+            challenge.filter = int(obj_data.filtrar)
+            challenge.filter2 = 0
             challenge.time_limit = obj_data.time_limit
 
             compile_obj_transform( obj, challenge.transform )
@@ -2869,9 +2873,7 @@ class SR_OBJECT_ENT_VOLUME(bpy.types.PropertyGroup):#{
 
    target: bpy.props.PointerProperty( \
            type=bpy.types.Object, name="Target", \
-           poll=lambda self,obj: sr_filter_ent_type(obj,\
-                                    ['ent_audio','ent_skateshop','ent_ccmd',\
-                                     'ent_challenge']))
+           poll=lambda self,obj: sr_filter_ent_type(obj,SR_TRIGGERABLE))
    target_event: bpy.props.IntProperty( name="Event/Method" )
 
    @staticmethod
@@ -3196,11 +3198,26 @@ class SR_OBJECT_ENT_CHALLENGE(bpy.types.PropertyGroup):#{
            poll=lambda self,obj: sr_filter_ent_type(obj,SR_TRIGGERABLE))
    target_event: bpy.props.IntProperty( name="Event/Method" )
    time_limit: bpy.props.FloatProperty( name="Time Limit", default=1.0 )
+   filtrar: bpy.props.EnumProperty( name='Filter',\
+      items=[('0','none',''),
+             (str(0x1),'trick_shuvit',''),
+             (str(0x2),'trick_kickflip',''),
+             (str(0x4),'trick_treflip',''),
+             (str(0x1|0x2|0x4),'trick_any',''),
+             (str(0x8),'flip_back',''),
+             (str(0x10),'flip_front',''),
+             (str(0x8|0x10),'flip_any',''),
+             (str(0x20),'grind_truck_any',''),
+             (str(0x40),'grind_board_any',''),
+             (str(0x20|0x40),'grind_any',''),
+             (str(0x80),'footplant','')
+             ])
 
    @staticmethod
    def sr_inspector( layout, data ):#{
       layout.prop( data[0], 'proxima' )
       layout.prop( data[0], 'time_limit' )
+      layout.prop( data[0], 'filtrar' )
       SR_OBJECT_ENT_VOLUME.inspect_target( layout, data, 'target' )
    #}
 #}