X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=ent_objective.c;h=68a3dd015f69882562201beadc2111940adeb19d;hb=99376ce8eaf30125fb08dd5dc8b534800580fe47;hp=330e60fcb97524075020360909c37be6a1dcf848;hpb=6190deb68aa1c9e92ede62ea05c2a755bf5516de;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/ent_objective.c b/ent_objective.c index 330e60f..68a3dd0 100644 --- a/ent_objective.c +++ b/ent_objective.c @@ -8,11 +8,12 @@ VG_STATIC void ent_objective_pass( world_instance *world, ent_objective *objective ){ if( objective->id_next ){ - world->challenge_timer += objective->filter; + world_static.challenge_timer += objective->filter; u32 index = mdl_entity_id_id( objective->id_next ); ent_objective *next = mdl_arritm( &world->ent_objective, index ); - world->challenge_target = next; + world_static.challenge_target = next; + objective->flags |= k_ent_objective_passed; if( next->filter & k_ent_objective_filter_passthrough ) ent_objective_pass( world, next ); @@ -21,8 +22,8 @@ VG_STATIC void ent_objective_pass( world_instance *world, } else { vg_success( "NYU Film school graduate SUCKAH\n" ); - world->challenge_target = NULL; - world->challenge_timer = 0.0f; + world_static.challenge_target = NULL; + world_static.challenge_timer = 0.0f; if( objective->id_win ){ ent_call call; @@ -72,29 +73,21 @@ VG_STATIC void ent_objective_call( world_instance *world, ent_call *call ){ ent_objective *objective = mdl_arritm( &world->ent_objective, index ); if( call->function == 0 ){ - if( objective->flags & k_ent_objective_hidden ) return; + if( objective->flags & (k_ent_objective_hidden| + k_ent_objective_passed)) return; - if( world->challenge_target ){ - if( (world->challenge_target == objective) && + if( world_static.challenge_target ){ + if( (world_static.challenge_target == objective) && ent_objective_check_filter( objective )){ ent_objective_pass( world, objective ); } else { vg_error( "womp womp\n" ); - world->challenge_target = NULL; - world->challenge_timer = 0.0f; + world_static.challenge_target = NULL; + world_static.challenge_timer = 0.0f; } } } -#if 0 - else if( call->function == 1 ){ - if( objective->flags & k_ent_objective_hidden ) return; - - vg_info( "begin the challenge\n" ); - world->challenge_timer = 0.0f; - ent_objective_pass( world, objective ); - } -#endif else if( call->function == 2 ){ objective->flags &= ~k_ent_objective_hidden;