fix legacy behaviour for trigger exits
authorhgn <hgodden00@gmail.com>
Wed, 22 Nov 2023 04:04:12 +0000 (04:04 +0000)
committerhgn <hgodden00@gmail.com>
Wed, 22 Nov 2023 04:04:12 +0000 (04:04 +0000)
blender_export.py
maps_src/dev_hub/main.mdl
shaders/scene_override.h
world_volumes.c

index 4b7cf7f0441809e5bed7a87c52dce3ab4dced40d..5eb5975deefd5ffa90abd7d8ea54d3786604c3f2 100644 (file)
@@ -1851,7 +1851,10 @@ def sr_compile( collection ):
             if obj_data.target:#{
                volume.target = sr_entity_id( obj_data.target )
                volume._anon.trigger.event = obj_data.target_event
-               volume._anon.trigger.event_leave = obj_data.target_event_leave
+
+               ev = 0xffffffff if obj_data.target_event_leave < 0 else \
+                     obj_data.target_event_leave
+               volume._anon.trigger.event_leave = ev
             #}
 
             sr_ent_push(volume)
@@ -2978,7 +2981,7 @@ class SR_OBJECT_ENT_VOLUME(bpy.types.PropertyGroup):#{
            type=bpy.types.Object, name="Target", \
            poll=lambda self,obj: sr_filter_ent_type(obj,SR_TRIGGERABLE))
    target_event: bpy.props.IntProperty( name="Enter Ev" )
-   target_event_leave: bpy.props.IntProperty( name="Leave Ev" )
+   target_event_leave: bpy.props.IntProperty( name="Leave Ev", default=-1 )
 
    @staticmethod
    def inspect_target( layout, data, propname, evs = ['_event'] ):#{
index 43fb44ef1ba799ae38c64cf889b8f4f46a3a032a..e573635ec7e48257a2b24615076d0860a9f4d4db 100644 (file)
Binary files a/maps_src/dev_hub/main.mdl and b/maps_src/dev_hub/main.mdl differ
index 74caeffcdfa1430a73d30f7de8703839d6ad6456..6ef67c9f589686f2e0c878ab987ac4ef9d5aebfe 100644 (file)
@@ -521,10 +521,9 @@ static struct vg_shader _shader_scene_override = {
 "   if( uIsoAmt > 0.0 ){\n"
 "      float height = fract( aCo.y * 0.1 );\n"
 "      float lg = 2.0*length(vec2(dFdx(height), dFdy(height)));\n"
-"      vfrag *= 1.0f+(lg*0.4*uIsoAmt);\n"
+"      vfrag *= 1.0f+(lg*0.2*uIsoAmt);\n"
 "   }\n"
 "\n"
-"\n"
 "   oColour = vec4( vfrag, 1.0 );\n"
 "   //oColour = vec4( vfrag, 1.0 );\n"
 "}\n"
index 23b8299ccdcdfffe21ed3b1f81049212d242b150..7f2b685170e6f1ce784ef60529e4927dd32516a1 100644 (file)
@@ -19,16 +19,19 @@ static void world_volumes_update( world_instance *world, v3f pos ){
          world_static.active_trigger_volumes[ j ++ ] = idx;
          boxf cube = {{-1.0f,-1.0f,-1.0f},{1.0f,1.0f,1.0f}};
          vg_line_boxf_transformed( volume->to_world, cube, 0xff00ccff );
-         /* triggr on stay ..... */
       }
       else{
-         /* trigger on exit...... */
-         ent_call basecall;
-         basecall.function = k_ent_function_trigger_leave;
-         basecall.id = mdl_entity_id( k_ent_volume, idx );
-         basecall.data = NULL;
+         /* 
+          * LEGACY BEHAVIOUR: < v104 does not have leave events
+          */
+         if( world->meta.info.version >= 104 ){
+            ent_call basecall;
+            basecall.function = k_ent_function_trigger_leave;
+            basecall.id = mdl_entity_id( k_ent_volume, idx );
+            basecall.data = NULL;
 
-         entity_call( world, &basecall );
+            entity_call( world, &basecall );
+         }
       }
    }
    world_static.active_trigger_volume_count = j;