mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-31 05:52:59 +00:00 
			
		
		
		
	replaced loop_multiplier and loop_shift with more general -animformula
This commit is contained in:
		| @@ -96,7 +96,7 @@ void nil_screen(presmode mode, int id) { | ||||
|     ld t = 1e-3; | ||||
|      | ||||
|     if(id == 2) { | ||||
|       t = inHighQual ? ticks * anims::loop_multiplier * 4. / anims::period : ticks / 1000.; | ||||
|       t = inHighQual ? ticks * 4. / anims::period : ticks / 1000.; | ||||
|       if(t - floor(t) > .5) t = ceil(t); | ||||
|       else t = floor(t) + 2 * (t - floor(t)); | ||||
|       t -= floor(t/4)*4; | ||||
|   | ||||
| @@ -378,7 +378,7 @@ void enable() { | ||||
|   rogueviz::rv_hook(anims::hooks_anim, 100, [] {  | ||||
|  | ||||
|     if(!animation) return; | ||||
|     ld t = ticks * 1. * anims::loop_multiplier / anims::period; | ||||
|     ld t = ticks * 1. / anims::period; | ||||
|     t *= isize(path); | ||||
|      | ||||
|     hyperpoint at = interp(t); | ||||
|   | ||||
| @@ -1121,8 +1121,8 @@ EX int noframes = 30; | ||||
| EX ld cycle_length = 2 * M_PI; | ||||
| EX ld parabolic_length = 1; | ||||
| EX ld skiprope_rotation; | ||||
| EX ld loop_multiplier = 1; | ||||
| EX ld loop_shift = 0; | ||||
|  | ||||
| EX string time_formula = "-"; | ||||
|  | ||||
| int lastticks, bak_turncount; | ||||
|  | ||||
| @@ -1394,6 +1394,17 @@ EX bool record_animation_of(reaction_t content) { | ||||
|     printf("%d/%d\n", i, noframes); | ||||
|     callhooks(hooks_record_anim, i, noframes); | ||||
|     int newticks = i * period / noframes; | ||||
|     if(time_formula != "-") { | ||||
|       dynamicval<int> t(ticks, newticks); | ||||
|       exp_parser ep; | ||||
|       ep.s = time_formula; | ||||
|       try { | ||||
|         newticks = ep.iparse(); | ||||
|         } | ||||
|       catch(hr_parse_exception&) { | ||||
|         println(hlog, "warning: failed to parse time_formula"); | ||||
|         } | ||||
|       } | ||||
|     cmode = (env_shmup ? sm::NORMAL : 0); | ||||
|     while(ticks < newticks) shmup::turn(1), ticks++; | ||||
|     if(cheater && numturns) { | ||||
| @@ -1736,11 +1747,8 @@ int readArgs() { | ||||
|   else if(argis("-animperiod")) { | ||||
|     PHASEFROM(2); shift_arg_formula(period); | ||||
|     } | ||||
|   else if(argis("-animloop")) { | ||||
|     PHASEFROM(2); shift_arg_formula(loop_multiplier); | ||||
|     } | ||||
|   else if(argis("-animloopshift")) { | ||||
|     PHASEFROM(2); shift_arg_formula(loop_shift); | ||||
|   else if(argis("-animformula")) { | ||||
|     PHASEFROM(2); shift(); time_formula = args(); | ||||
|     } | ||||
| #if CAP_SHOT | ||||
|   else if(argis("-animrecordf")) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Zeno Rogue
					Zeno Rogue