27 lines
		
	
	
		
			574 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			574 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| @startuml
 | |
| 
 | |
| start
 | |
| :newTime = 0
 | |
| totalTime = 0
 | |
| isEnd = it == list.end()
 | |
| lastTime = 0;
 | |
| 
 | |
| #tomato:if (!isEnd) then (not end)
 | |
|     #tomato:totalTime += it.getRelTicks();
 | |
| endif
 | |
| 
 | |
|     while ( !isEnd && (totalTime <= newTime) ) is (goForward)
 | |
|     :isEnd = (++it == list.end());
 | |
|         :lastTime = totalTime;
 | |
|         #tomato:if (!isEnd) then (not end)
 | |
|             #tomato:totalTime += it.getRelTicks();
 | |
|         endif
 | |
|     endwhile
 | |
| 
 | |
| #tomato:if (!isEnd) then (not end)
 | |
|     #tomato:subRelTicks(newTime- lastTime);
 | |
| endif
 | |
| :it.setRelTicks(newTime - lastTime);
 | |
| :insert(it, newTimeout);
 | |
| 
 | |
| @enduml |