/
DSEngineCleanupToDo.txt
78 lines (72 loc) · 3.51 KB
/
DSEngineCleanupToDo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
DS Engine Cleanup To-Do List
Added functionality
[-] Make API more consistent with XNA, maybe add some extra XNA functions
[-] Add support for other engine modes
[-] Add support for direct (non-tiled) background drawing
[-] Add support for 3D on 2 screens
[-] Add support for sprite sizes other than 32x32
[-] Implement unit testing
[-] Deletion of resources
[-] Allow loading of GameObjects from files
[-] Allow loading of Rooms from files
[-] Integrate LUA for game logic
[-] Create nice buttons and stuff for debug UI
GameGen functionality
[-] TimeStep function
[-] KeyHeld function
[-] Load<T> function
[-] Load function (without need for <T>)
[-] Replace function calls with . by ->
[-] Replace . in enum member reference by ::
GameGen functionality (Engine)
[x] Change DrawSprite to use x and y as parameters
[x] SpriteSet as property of GameObject
[x] Give SpriteSet a string indexer for Sprites
[-] Make Background[0-3] properties of Room
[x] Add auto increment functionality for ImageIndex with ImageSpeed in GameObject
Engine cleanup:
[x] Create one template Vector class, instead of 4
[x] Replace Point by Vec2<int>
[x] Create one template Matrix class, instead of 1 for only fx12
[x] Fix the camera controls
[x] Fix sprites
[x] Remove Pair in favor of Tuple
[x] Switch to Git and GitHub
[x] Proper support for calculations among multiple fixed-point formats
[-] Improve Sprite's Convert method and possibly move parameters from DrawSprite over to Convert
[-] Implement or throw away BinaryReader
[-] Replace "super" with "base"
[-] Implement proper loading of Paths
[-] Implement Rooms properly
[-] Replace Ptr's by * when reference counting is not needed
[-] Replace Ptr and * by non-const references when it makes sense
[-] Add versions for matrix calculations (and other things) that take a non-const reference output parameter
[-] Improve loading efficiency
[-] Make handling backgrounds easier, easy assignment of tiled backgrounds
[-] Cleanup sprite system
[-] Simplify tile handling further, it still takes too much unclear steps. Maybe cut down on the automation.
[-] Improve tile handling performance. Maybe add support for caching of tile locations.
[-] Bring comments up to standards (look at FileStream.h for example)
[-] Fix or remove all the tests
[-] Cleanup and optimize ContentManager
[-] Fix console (efficiency (maybe automate less?)
[-] Fix bug where text gets displayed lower when switching log views in DebugUI
[-] Make a good folder structure for the source code
[-] Compile into separate libraries
[/] Bring up to standards with C++11
http://msdn.microsoft.com/en-us/library/hh567368.aspx
[x] Alias templates: Replace some defines / typedefs with "using x = y"
[/] Initializer lists: Replace lame vector / object initialization with { } shorthand
Add support for initializer lists to own classes
[/] Delegating constructors: Where it makes sense
[/] Defaulted functions: Where an empty constructor is added along with a custom constructor
[/] Ranged for loop: Where iterator loops occur that start with "for(auto"
[-] Strongly typed enums: Where it makes sense
[-] Deleted functions: When you want to avoid implicit calling of a function with implicit type conversion, e.g a function only intended for floats is also called for an integer argument.
[-] Override and final: Where it makes sense
Tools cleanup:
[-] Map editor: Export collision map headers
[-] Map editor: Export palette, or at least "p none"
[-] Map editor: Improve map and tileset redrawing, performance and function
Other:
[-] Use an issue tracker