3 - Submit bugs about coding standards.
4 - Make sure all the STL stuff is forward declared.
5 - Check all UNREFs, possibly remove them or the function argument if you will never use the variable
6 - Change asserts to FATAL_DEBUG (Lint catches and bitch at asserts())
7 - Check all copy constructors and assignment operators.
8 - Check explicit constructors, which only make sense on single parameter constructors (Lint catches this)
9 - Change all (foo == false && foo == true) to (!foo && foo) (Lint catches this)
10 - Learn to type faster!!!
12 - o2c = transform.multiply(w2c, o2w);
13 - Replace OutputDebugString() with proper REPORT calls.
14 - Verify all load routines for proper handling of errors. Make sure and handle bad data without stopping the game.
17 * List from TestTrack 3.14.2003 *
19 - No way to rotate meshes or shader sprites, flip/mirror/etc
20 - No way to turn off emitters for debugging
21 - Add degrees of rotation as well as the current number of rotations
22 - Save out emitter as an emitter file
23 - Ctrl-right mouse button copy and paste emitters into the emitter group
24 - Assign texture to predefined shaders
25 - Attach multiple particles to one emitter
26 - Once an emitter is imported, it should cease to reference a particle file from disk nd become an editable instance.
27 - Middle mouse button should scroll instead of the right mouse button. Should be consistent with the viewer.
28 - Move emitter or emitter groups with the mouse in the viewport.
35 - Compile out std::string names in release build from waveform and all descriptions.
36 - Allow more than one attachment per particle
37 - Remind artists to pack textures
38 - Particle system fields.
43 - Put ParticleEmitter::remove_if() in a namespace.
45 - XYZ translation to particle systems.
46 - Save a particle system location file so each time a particle system is loaded it places it in the same place. The camera should also snap to that new location in the world.
47 - Ability to attach multiple particles to a single emitter.
48 - Add DOT3 lighting support for particles.
49 - Add texture rotation, flip, and mirror.
50 - Grab and drag line connecting 2 control points.
51 - Ability to toggle visibility of emitters in the editor only.
52 - Allow degree rotation of emitters.
53 - Export/Import emitter files.
54 - Allow copy/paste emitters into emitter groups.
55 - Predefined texture shaders.
56 - Movement of particle effects with the mouse in the editor.
57 - Particle system timeline.
58 - Allow more than one emitter groups per particle system.
60 -------- High Priority --------
62 - Allow functionality to hook into the camera distance of a particle
63 - Allow mutliple particle textures to be drawn on the same particle.
65 - Add session management for save on exit (http://doc.trolltech.com/3.0/session.html).
66 - Add QSplitter to the particle editor (override it?).
67 - Check out QWidgetStack (override it?) for displaying in the PEAttributeViewer.
68 - Allow pre-simulation of particle effects before they are rendered.
69 - Rename all Particle Editor files with PEWaveFormEdit.cpp for example.
70 - Cleanup all load functions like ParticleDescription. Data should not crash the game.
71 - Make sure there is adequate documentation.
73 - When a loop occurs, make sure and handle the overage by incrementing the next loop, or skip whole loops if a large
74 enough delta time has occured.
75 - Add more DataLint code in load functions to check for bad data.
77 - Track down these memory leaks. See if they happen on the client or is it just in the particle editor?
78 D:\_code\swg\current\src\engine\client\library\clientParticle\src\shared\ParticleDescription.cpp(57) : 093903E0 memory leak, 236 bytes
79 D:\_code\swg\current\src\engine\client\library\clientParticle\src\shared\ParticleEmitterShape.cpp(29) : 093904F0 memory leak, 4 bytes
80 - Allow multiple emitter groups in the same particle effect.
81 - Again, why is maxParticles a float? rethink it, change it to an int.
82 - Add save confimation when overwrite and program exit.
83 - Allow min and max emitter lifetime specification.
84 - Rename this file to ParticleEditorToDo.txt
85 - Show the full path to the particle effect. Requires adding a ParticleEffectAttribute.ui and have Filename path displays similar to the ones for the shader.
86 - Fix the crash when too many vertices are submitted inside the ParticleEmitter::draw(). Allow max particles to be increased.
87 - Add a timer to MainWindow to check the positions of the child windows for bogus values, like if you resize the editor to make a window not visible, slam the window to (0, 0), add this to the sound editor.
88 - Allow particles to be a cross mesh of polygons, user-definable number of intersecting polygons.
89 - Generation Rate should not be allowed to go negative.
90 - Allow toggling of individual emitters/emitter groups, reference PhotoShop layer widget.
92 -------- Medium Priority --------
94 - Check detection of one shot/loop immediately.
95 - Don't draw alpha zero particles if possible. Need to move test outside of draw loop.
96 - Allow particles to die when below the terrain.
97 - Save out colorramps and waveforms. Have a viewer in the particle editor to select them from.
99 - Allow you to move the edges between the control points to move both attached control points
100 - Prefix Particle on all the Particle related class names for easier searching.
101 - Handle large deltas. Make sure the particles do not appear at far distances due to large deltas.
102 - Allow emitter group naming.
103 - Get ideas about adding rules from that new book you bought. Take some notes.
104 - Fix the problem that when a new waveform is loaded, the clamp min/max values get whacked. The partiche alpha waveform shows this problem.
105 - Allow movement of the emission normal from the surface of the shape.
106 - Reverse Min and Max.
107 - In BoxExtent change calculateCenterAndRadius() to calculateSphere()
108 - Add default static member variables for all descriptions.
109 - Make sure emitter rotations are emitters space relative, not world space relative.
110 - Make sure you are killing particles that go over their lifetime.
111 - Maybe make an optimization of checking for rotation by checking all the rotation control points ahead of time.
112 - Add emitter lifetime meter somewhere???
113 - Fix the color ramp getValue(), current method is slow. Add version that takes an iter as a hint of where to start.
114 - Allow selection and movement of multiple control points.
115 - Make sure you are not calculating emitter values inside inner loops processing particles.
116 - Move some of the things like parent transform from ParticleEmitter to ParticleAppearance, and just get it through parent->getTransform() or something
117 - Allow WaveForms to be mirred and flipped.
119 -------- Low Priority --------
121 - Add a bias to the random timing (Ask Jake for specification)
122 - Draw the letters x, y, and z on the axis.
123 - Maybe have a particle description base class with write(Iff &iff);
124 - Allow the specification of XYZ dimensions on the 3D shapes.
128 - Change the camera enum in scene->getView(int view) to the proper enum in groundScene.h
129 - Why is the enums in GroundScene private when they are needed to pass into getView()?
133 - Why is Alt-O not an accelerator to the OK button in text edit and check box naming, but it is in text label naming?
134 - Why does escape not back out of the Text Label "Edit Text" option?
135 - Why can't I set the default selected item in a combo-box using the designer?
136 - Why do getOpenFileName() and getOpenFileNames() have their initial two parameters switched?
137 - Why are spaces allowed in front and behind any numbers in QLineEdit when a QIntValidator is assigned, spaces should not be allowed?
138 - Why are spaces allowed in ONLY front of any numbers in QLineEdit when a QDoubleValidator is assigned, spaces should not be allowed?
139 - I would like to connect a signal of when a widget has a focus change. When it loses, gains, whatever. Currently all I can do to get focus changes is wrap the widget I care about and override the virtual protected member function. In other words, provide more signals instead of the protected virtual functions in the QWidget class.
140 - Why can't I multi-open .ui files.
141 - Allow the specification of validators on text edits in Qt Designer.
142 - When using Qt Designeer, it is not obvious how to rename a MenuItem on a toolbar. Not renaming the displayed text, but renaming the name in the property window that is your object name in code. BTW, I think the problem is there is no property window for MenuItems, it always pulls up properties for the MenuBar.
144 * Possible changes to the programming standard *
146 - Just Copyright with no year. You can get the year in Perforce.