Mikko Rasa [Fri, 14 Jan 2011 13:12:58 +0000 (13:12 +0000)]
Enable Renderer for Endpoint3D and Path3D
Add signal_link_changed to Track
Only create one Endpoint3D per connected endpoint pair
Remove the old rendering code from Vehicle3D
Use WindingTest to manage face culling
Mikko Rasa [Thu, 18 Nov 2010 18:52:38 +0000 (18:52 +0000)]
More toolbar buttons
Add shortcut keys to tooltips
Don't start extend if no suitable tracks are selected
Check that we are in select mode before doing stuff
Mikko Rasa [Thu, 18 Nov 2010 18:20:07 +0000 (18:20 +0000)]
Split the single large toolbar into a few smaller collapsible ones
Replace turnout and sensor ID setting with a track properties dialog
Add left and right arrow button styles
Mikko Rasa [Fri, 12 Nov 2010 21:03:19 +0000 (21:03 +0000)]
Change the input filtering for better suitability for unreliable track circuits
Reduce the amount of spam sent by s88w-t
Optimize the LCD output code in s88w-r
Mikko Rasa [Sun, 7 Nov 2010 21:37:31 +0000 (21:37 +0000)]
Change article numbers for locos that are from starter packs
Correct article number for tank wagons
Adjust some wagon names
Add some new wagons with generated objects (will be properly modeled later)
Mikko Rasa [Tue, 2 Nov 2010 21:35:26 +0000 (21:35 +0000)]
Clear end_of_route if we have to free blocks from the end
Drop the return value of reserve_more as it's not useful anymore
simplify the logic of keeping good blocks
Don't keep any turnouts at the end of reservation
Fix a bug where a blocks could be current but not clear
Always set turnouts according to reserved blocks
Handle instant turnout switches correctly
Mikko Rasa [Mon, 1 Nov 2010 14:40:38 +0000 (14:40 +0000)]
Move the fitting part of Manipulator::connect to a separate function
Add a manipulator mode to extend tracks out of an endpoint
Add a method to replace the entire selection at once
Mikko Rasa [Wed, 27 Oct 2010 18:49:03 +0000 (18:49 +0000)]
Return null from Route::find if a route can't be found
Avoid setting a route that can't be reached
Stop timetable if route can't be set
Put diversion route in RefPtr so it gets cleaned if we bail out
Mikko Rasa [Wed, 27 Oct 2010 16:14:17 +0000 (16:14 +0000)]
Support multiple timers (currently 0 and 1)
Provide functions for setting timers in µs as well as Hz
Rewrite interrupt callbacks as macros that directly create the ISR
Add an async mode for LCD
Fix DDRB in s88w-t
Mikko Rasa [Tue, 26 Oct 2010 08:39:37 +0000 (08:39 +0000)]
Do not show path on new tracks
Display errors from add_tracks_to_route in status bar
Adjust rendering pipeline to better support semi-transparent base objects
Mikko Rasa [Fri, 22 Oct 2010 21:08:17 +0000 (21:08 +0000)]
Make Route hold non-const Tracks to match Block
Make several functions take non-const parameters to avoid escaping constness:
- Track::get_endpoint_by_link
- Block::get_endpoint_by_link
- Layout3D::get_track
Mikko Rasa [Tue, 19 Oct 2010 16:32:20 +0000 (16:32 +0000)]
Add a variant of Route::find that takes a set of tracks
Allow setting turnouts in a Route manually
Move Route::update_turnouts to its proper place
Add full route chaining to Train
Better logic for where to start pathfinding
Divert trains to an alternate route if possible when blocked
Mikko Rasa [Fri, 15 Oct 2010 19:15:10 +0000 (19:15 +0000)]
Reserve two ids for double-address turnouts
Report track z coordinate correctly for turnouts
Don't reserve more blocks when arriving at end of route
Add a small offset when placing a train after loading
Mikko Rasa [Thu, 14 Oct 2010 19:25:50 +0000 (19:25 +0000)]
Generate IDs for new turnouts
Update routes when a turnout ID is changed
Properly support non-loop routes
Link tracks as they are loaded
Don't move tracks when linking if one of them is flexible
Move route rebuilding to the Route class
Mikko Rasa [Sun, 10 Oct 2010 09:21:07 +0000 (09:21 +0000)]
Support taking trains off the tracks
Don't give up a block that still has vehicles on it
Fix get_reserved_distance after placing a long train
Don't use speed steps more than 3 above the last known one
Mikko Rasa [Mon, 4 Oct 2010 19:59:30 +0000 (19:59 +0000)]
Create a more generic version of Train::get_reserved_distance
Use it to determine if a trailing non-sensor block can be freed
Don't release blocks if there's not enough distance for stopping
Reserve enough blocks to maintain speed
Mikko Rasa [Sun, 3 Oct 2010 18:56:38 +0000 (18:56 +0000)]
Add an overload of Block::traverse that takes a Route
Improved handling of taking blocks from another train
Add yield system for trains of equal priority