Refactor ride painting

Updated Jan 11, 2017

Refactor the ride painting to C++ and use interface for all the drawing so that its more easily testable. This will also help towards making drawing thread safe.

It might be good for ride paint functions to have the parameters (IPaintContext pc, const RidePaintContext rc) Where IPaintContext is an interface containing the methods for adding the draw instructions and RidePaintContext is a simple structure containing fields for ride index, ride, track type, map element, direction, rotation etc. The reason for splitting this is so that the ride paint context fields do not have the virtual call overhead. It also allows you to make those const, while the paint context isn't. The same paint context definition can also be used for other things like footpaths.

Central Identity Server

Updated Dec 2, 2016

Implementation of authentication with to provide identities to players in multiplayer using existing public / private key system.

New Game Action Framework

Updated Oct 20, 2016

Create a class for each game action which implements a common interface for performing the game action, serialising and deserialising it for multiplayer.

Class prototyping:

New Window Framework

Updated Oct 20, 2016

Create a new window framework to easy creating new windows by making much more code reusable and object oriented.

The new window system should:

  • Have a base class for Window and Widget which other windows and widgets derive from
  • Widgets should have keyboard / mouse events
  • Decouple tab pages from windows, allow them to be shared across two windows
  • Automatically handle tab controls for window, perhaps as a tab control widget
  • Re-use animations which are shown in tabs
  • Automatically layout the widgets, using grids or stack panels (this will solve different font sizes)
  • Use label widgets more rather than drawing strings at x, y
  • Data grids should be their own widget with an adapter to populate it, common code for handling sorting and headers

Example class prototyping:

No results.