From: hgn Date: Sun, 2 Mar 2025 20:59:24 +0000 (+0000) Subject: fcked it X-Git-Url: https://harrygodden.com/git/?a=commitdiff_plain;h=1c51cbe899d9d5317c2042aa3f754858701c153b;p=carveJwlIkooP6JGAAIwe30JlM.git fcked it --- diff --git a/build.c b/build.c index a99b68b..20d180d 100644 --- a/build.c +++ b/build.c @@ -377,6 +377,8 @@ void s_testing_server(void) int main( int argc, char *argv[] ) { + vg_log_init(); + char *arg; while( vg_argp( argc, argv ) ){ if( vg_long_opt( "release-all", NULL ) ) diff --git a/content_skaterift/maps/dev_heaven/main.mdl b/content_skaterift/maps/dev_heaven/main.mdl index b35053a..182ccd9 100644 Binary files a/content_skaterift/maps/dev_heaven/main.mdl and b/content_skaterift/maps/dev_heaven/main.mdl differ diff --git a/skaterift_blender/sr_main.py b/skaterift_blender/sr_main.py index b4662bc..d03246c 100644 --- a/skaterift_blender/sr_main.py +++ b/skaterift_blender/sr_main.py @@ -496,7 +496,8 @@ class ent_challenge(Structure):#{ ("reset_event",c_int32), ("first",c_uint32), ("camera",c_uint32), - ("status",c_uint32)] #runtime + ("status",c_uint32), + ("visible_when_unlocked_id",c_uint32)] #runtime sr_functions = { 0: 'unlock', 1: 'view', -1: 'unview' } @@ -1960,18 +1961,23 @@ class SR_OBJECT_ENT_CHALLENGE(bpy.types.PropertyGroup):#{ first: bpy.props.PointerProperty( \ type=bpy.types.Object, name="First Objective", \ - poll=lambda self,obj: sr_filter_ent_type(obj,['ent_objective','ent_prop'])) + poll=lambda self,obj: sr_filter_ent_type(obj,['ent_objective'])) camera: bpy.props.PointerProperty( \ type=bpy.types.Object, name="Camera", \ poll=lambda self,obj: sr_filter_ent_type(obj,['ent_camera','ent_objective'])) + visible_when_unlocked: bpy.props.PointerProperty( \ + type=bpy.types.Object, name="Visibile when unlocked", \ + poll=lambda self,obj: sr_filter_ent_type(obj,['ent_objective','ent_prop','ent_list'])) @staticmethod - def sr_inspector( layout, data ):#{ + def sr_inspector( layout, data ): + #{ layout.prop( data[0], 'alias' ) layout.prop( data[0], 'camera', text=("Camera" if not data[0].is_story else "Related Objective") ) - layout.prop( data[0], 'first', text=("First Objective" if not data[0].is_story else "Indicator Prop") ) + layout.prop( data[0], 'first', text=("First Objective") ) + layout.prop( data[0], 'visible_when_unlocked' ) layout.prop( data[0], 'time_limit' ) layout.prop( data[0], 'is_story' ) SR_OBJECT_ENT_VOLUME.inspect_target( layout, data, 'target', text=("On Activate" if data[0].is_story else "On Complete") ) @@ -2890,6 +2896,14 @@ def cv_draw():#{ if data.target3: cv_draw_arrow( obj.location, data.target3.location, (1,1,1) ) #} + elif ent_type == 'ent_list':#{ + data = obj.SR_data.ent_list[0] + for subj in data.entities: + #{ + if subj: + cv_draw_arrow( obj.location, subj.target.location, (0.5,0.8,0.2) ) + #} + #} elif ent_type == 'ent_challenge':#{ data = obj.SR_data.ent_challenge[0] if data.target: diff --git a/skaterift_blender/sr_mdl.py b/skaterift_blender/sr_mdl.py index 850a066..217f236 100644 --- a/skaterift_blender/sr_mdl.py +++ b/skaterift_blender/sr_mdl.py @@ -854,6 +854,7 @@ def _mdl_compiler_compile_entities(): challenge.reset = sr_entity_id( obj_data.reset ) challenge.reset_event = obj_data.reset_event challenge.first = sr_entity_id( obj_data.first ) + challenge.visible_when_unlocked_id = sr_entity_id( obj_data.visible_when_unlocked ) challenge.flags = 0x00 challenge.camera = sr_entity_id( obj_data.camera ) if obj_data.time_limit: challenge.flags |= 0x01 @@ -861,6 +862,24 @@ def _mdl_compiler_compile_entities(): challenge.status = 0 sr_ent_push( challenge ) #} + elif ent_type == 'ent_list': + #{ + obj_data = obj.SR_data.ent_list[0] + list = ent_list() + list.entity_ref_start = _mdl_compiler_ent_count( 'file_entity_ref' ) + list.entity_ref_count = 0 + for k in range(len(obj_data.entities)): + #{ + if obj_data.entities[k]: + #{ + list_entry = file_entity_ref() + list_entry.index = sr_entity_id( obj_data.entities[k].target ) + sr_ent_push( list_entry ) + list.entity_ref_count += 1 + #} + #} + sr_ent_push( list ) + #} elif ent_type == 'ent_region':#{ region = ent_region() obj_data = obj.SR_data.ent_region[0] @@ -975,8 +994,7 @@ def _mdl_compiler_compile_entities(): checkpoint = ent_checkpoint() checkpoint.gate_index = _mdl_compiler.entity_ids[gate.name] - checkpoint.path_start = \ - _mdl_compiler_ent_count( 'ent_path_index' ) + checkpoint.path_start = _mdl_compiler_ent_count( 'ent_path_index' ) checkpoint.path_count = 0 path = solve_graph( dij, gi.name, gj.name ) diff --git a/src/audio.c b/src/audio.c index dda8a2d..736b213 100644 --- a/src/audio.c +++ b/src/audio.c @@ -174,8 +174,8 @@ static void audio_air_synth_get_samples( void *_data, f32 *buf, u32 count ){ static audio_clip air_synth = { .flags = k_audio_format_gen, .size = 0, - .func = audio_air_synth_get_samples, - .data = &air_audio_data + .generative_function = audio_air_synth_get_samples, + .any_data = &air_audio_data }; void audio_init(void) diff --git a/src/client.c b/src/client.c index 60b09fe..ae1cbc1 100644 --- a/src/client.c +++ b/src/client.c @@ -30,7 +30,7 @@ static void async_client_ready( void *payload, u32 size ) void vg_load(void) { - vg_audio.always_keep_compressed = 1; + //vg_audio.always_keep_compressed = 1; vg_loader_step( render_init, NULL ); game_load(); @@ -86,6 +86,7 @@ void vg_launch_opt(void) int main( int argc, char *argv[] ) { + vg_log_init(); network_set_host( "skaterift.com", NULL ); vg_mem.use_libc_malloc = 0; vg_set_mem_quota( 200*1024*1024 ); diff --git a/src/entity.h b/src/entity.h index c48db6b..8c71974 100644 --- a/src/entity.h +++ b/src/entity.h @@ -35,6 +35,7 @@ typedef struct ent_miniworld ent_miniworld; typedef struct ent_prop ent_prop; typedef struct ent_region ent_region; typedef struct ent_list ent_list; +typedef struct file_entity_ref file_entity_ref; typedef struct ent_glider ent_glider; typedef struct ent_npc ent_npc; @@ -167,6 +168,16 @@ enum gate_type{ }; #endif +struct ent_list +{ + u32 entity_ref_start, entity_ref_count; +}; + +struct file_entity_ref +{ + u32 index; +}; + /* v102+ */ enum ent_gate_flag { @@ -642,7 +653,8 @@ struct ent_miniworld { enum prop_flag { - k_prop_flag_hidden = 0x1 + k_prop_flag_hidden = 0x1, + k_prop_flag_spinning = 0x2 }; struct ent_prop { diff --git a/src/skaterift.c b/src/skaterift.c index a13ec26..20f69ee 100644 --- a/src/skaterift.c +++ b/src/skaterift.c @@ -233,16 +233,13 @@ void vg_post_update(void) v3f ears = { 1.0f,0.0f,0.0f }; m3x3_mulv( g_render.cam.transform, ears, ears ); - v3_copy( ears, vg_audio.external_listener_ears ); - v3_copy( g_render.cam.transform[3], vg_audio.external_listener_pos ); + v3_copy( ears, _vg_audio.listener_right_ear_direction ); + v3_copy( g_render.cam.transform[3], _vg_audio.listener_position ); - if( localplayer.gate_waiting ){ - m4x3_mulv( localplayer.gate_waiting->transport, - vg_audio.external_listener_pos, - vg_audio.external_listener_pos ); - } + if( localplayer.gate_waiting ) + m4x3_mulv( localplayer.gate_waiting->transport, _vg_audio.listener_position, _vg_audio.listener_position ); - v3_copy( localplayer.rb.v, vg_audio.external_lister_velocity ); + v3_copy( localplayer.rb.v, _vg_audio.listener_velocity ); audio_unlock(); vehicle_update_post(); diff --git a/src/skaterift_script.c b/src/skaterift_script.c index 682e423..c18fa9e 100644 --- a/src/skaterift_script.c +++ b/src/skaterift_script.c @@ -139,8 +139,7 @@ static bool _skaterift_script_intro( enum escript_event ev, const char *inf ) { NULL, NULL }, }; - return _skaterift_generic_script_template( ev, inf, - "metascenes/intro.ms", EN, 1 ); + return _skaterift_generic_script_template( ev, inf, "metascenes/intro.ms", EN, 1 ); } diff --git a/src/world.h b/src/world.h index 67a29ef..7443e5e 100644 --- a/src/world.h +++ b/src/world.h @@ -175,7 +175,9 @@ struct world_instance ent_miniworld, ent_prop, ent_region, - ent_glider; + ent_glider, + ent_list, + file_entity_ref; /* These share the indexes of ent_challenge. * So ent_challenge[x] is related to events[x] */ diff --git a/src/world_load.c b/src/world_load.c index 8b537ce..b68ed81 100644 --- a/src/world_load.c +++ b/src/world_load.c @@ -112,6 +112,8 @@ static void world_instance_load_mdl( world_instance *world, const char *path, vo AF_LOAD_ARRAY_STRUCT( af, &world->ent_miniworld, ent_miniworld, heap ); AF_LOAD_ARRAY_STRUCT( af, &world->ent_prop, ent_prop, heap ); AF_LOAD_ARRAY_STRUCT( af, &world->ent_glider, ent_glider, heap ); + AF_LOAD_ARRAY_STRUCT( af, &world->ent_list, ent_list, heap ); + AF_LOAD_ARRAY_STRUCT( af, &world->file_entity_ref, file_entity_ref, heap ); } array_file_ptr infos;