1 -------------------------------------------------------------------------------
4 * Added the second Mehdi's level set.
5 * Applied major and minor fixes to the first Mehdi's levels set.
7 * Added dictionary elements to SOL file in order to allow metadata storage.
8 * Reverted short usage in SOL to int. Was bumping up against the limit.
9 * Add internationalisation (I18N).
11 -------------------------------------------------------------------------------
14 * Fixed font renderer to never exceed maximum texture size.
16 -------------------------------------------------------------------------------
19 * Fixed broken Unix build.
20 * Added OSX SDL mouse invert workaround.
21 * A few texture tweaks.
22 * Fixed broken Ball HUD.
24 -------------------------------------------------------------------------------
28 * Added wireframe view to Putt.
29 * Fixed view toward hole when the hole is directly above or below the ball.
31 -------------------------------------------------------------------------------
34 * Made a few minor fixes to paxed's holes.
35 * Added score and par to HUD.
36 * Show score card only after a hole is finished.
37 * Added timeouts to all in-game states except Next Player.
38 * Fixed texture ID leak in conf state.
40 -------------------------------------------------------------------------------
43 * Modified joystick traversal of GUIs to wrap top/bottom and left/right.
44 * Converted Putt to use Ball's GUI API.
45 * Merged Putt's and Ball's audio managers into shared.
46 * Added "Paused" screen to Putt.
47 * Generalized Putt's scoring to allow courses of length other than 18.
48 * Enabled switches in Putt.
49 * Added paxed's Putt courses.
50 * Changed a few textures on paxed's courses.
51 * Capped per-hole scores at 12.
52 * Modified several Putt backgrounds.
53 * Applied a change to Mehdi 25.
54 * Added poser mode to Putt.
55 * "Fixed" mouse jump on pointer grab. SDL is unpredictable here.
56 * By popular demand, set initial ball view toward hole.
58 -------------------------------------------------------------------------------
61 * Fixed mapc normal optimization bug. Resolves the Putt 16 invisible wall.
63 -------------------------------------------------------------------------------
66 * Fixed mapc normal optimization bug. Resolves the "Level 6" crash.
68 -------------------------------------------------------------------------------
71 * Applied fixes to Mehdi's levels
72 * Fixed GUI keyboard caps lock bug.
73 * Fixed no default GUI state on Done screen (joystick didn't work).
74 * Added fast camera rotation bound to Shift keys.
75 * Added camera rotation rate to config file.
76 * Modified perspective matrix to match gluPerspective.
78 -------------------------------------------------------------------------------
81 * Removed unnecessary autopause when pointer is not grabbed.
82 * Fixed GUI not hilighting widget under cursor when mouse isn't moved.
83 * Fixed config file written only when changed.
85 -------------------------------------------------------------------------------
88 * Removed few remaining bits of GLU code.
89 * Whitened glyph textures manually rather than relying upon pixel bias.
90 * Fixed Neverputt shadow
92 -------------------------------------------------------------------------------
95 * Rewrote shadow code to use mulipass rather than multitexture.
96 * Removed all multitexture code.
97 * Added shadow option to config screen.
98 * Fixed music fade-in bug.
99 * Fixed badly named static variable "clock".
100 * Added level number to replay save screen.
102 -------------------------------------------------------------------------------
105 * Fixed Save Replay not allowing score count to complete.
106 * Fixed bad unlock score in Mehdi 25.
108 -------------------------------------------------------------------------------
111 * Fixed replay header nonportable.
113 -------------------------------------------------------------------------------
116 * Rewrote SOL reader/writer to remove byte-order dependance.
117 * Rewrote replay handler to remove byte-order dependance
118 * Modified replay selector to ignore partial replays.
119 * Added camera mode gamepad control.
120 * Applied Mehdi's updates to several levels.
121 * Generalized config string handling. Added coin and ball option strings.
122 * Added two new background music tracks.
123 * Fixed broken set scoring.
124 * Added Set Record screen.
126 -------------------------------------------------------------------------------
129 * Added caps lock key to keyboard.
130 * Worked around Neverputt overwriting Neverball's camera setting.
131 * Added clobber confirmation to replay save.
132 * Fixed an audio bug when fading to the currently playing song.
134 -------------------------------------------------------------------------------
137 * Merged set-complete state into goal state, fixing set-complete crash.
138 * Fixed a few game state init crashes.
139 * Fixed a few pointer grab issues.
140 * Added random replay during attract mode.
141 * Added scene fade in/out.
142 * Fixed a bug causing the texture quality setting to be ignored.
143 * Moved shadow handling in with other geometry, where it belongs.
144 * Moved particle and shadow init/free out of game init/free and into config.
146 -------------------------------------------------------------------------------
149 * Improved directory handling. No longer depends on CWD.
150 * Moved all config files to ~/.neverball/ directory.
151 * Screenshots now go to CWD, which is not changed.
152 * Reorganized replay handling.
153 * Added replay save / play / delete GUIs.
154 * Added auto disabling of stereo and reflection is mode set fails.
155 * Changed default pointer state to ungrabbed.
157 -------------------------------------------------------------------------------
160 * Changed policy: Goal opens after a set number of coins are collected.
161 * Changed policy: Extra balls are awarded only after a goal.
162 * Changed policy: Game is saved after every goal.
163 * Changed hud to reflect new scoring policies.
164 * Fixed volume set bug.
165 * Fixed shadow visible on reflective surfaces in level shots.
166 * Fixed music on config screen.
167 * Increased ball transparancy to accomodate new view.
168 * Added subtle view distance flexibility.
169 * Merged Goal and High Score states.
170 * Tweaked some levels and scores in line with new scoring policies.
171 * Added better fading to make music less repetitious and annoying.
173 -------------------------------------------------------------------------------
176 * Modularized state functions.
177 * Changed view to make horizon visible.
178 * Added view configuration options for people who whine about the new view.
179 * Changed background images to augment horizon.
180 * Fixed Neverputt far clip set closer than background.
181 * Fixed an audio init bug.
182 * Generalized config handling.
183 * Heavily modified GUI handling.
184 * Replaced all 2D menus with new GUI code.
185 * Changed image loading policy to support non-power-of-two images.
186 * Replaced Win32 makefile with VS.Net solution.
187 * Rewrote HUD to use new GUI handler.
188 * Added billboard objects to .SOL file.
189 * Policy change: .SOL files now go in same directory as .MAP files.
190 * Changed mapc to derive .SOL file name from .MAP file name.
191 * Changed pause screen to include the word "Paused".
192 * Changed internal clock to use integer deciseconds instead of float seconds.
193 (HIGH SCORE FILE CHANGED)
194 * Made some fixes to reflection handling.
195 * Added background .SOLs.
196 * Added wireframe mode.
197 * Added look-around mode.
198 * Added keyboard-to-joystick input mapping.
199 * Added mipmap generation.
200 * Added clamped material type.
202 -------------------------------------------------------------------------------
205 * Fixed refrected background rotation.
206 * Added OBJ loading to mapc.
207 * Finally fixed material hack in mapc.
208 * A few graphical optimizations.
209 * Added shadow config option.
210 * Added sphere-map material type.
211 * Modified many levels to use detail OBJs.
212 * Traded doubles/ints for floats/shorts in the .sol file. This cuts .sol
213 file size in half, but puts a limit on level complexity.
215 -------------------------------------------------------------------------------
218 * Added camera control key binding to config file.
219 * Fixed some braindead reflection handling code.
220 * Fixed broken config menu.
221 * Fixed sound volume adjustment crash when sound is disabled.
222 * Fixed very stupid game timing bug that had been around far too long.
224 -------------------------------------------------------------------------------
227 * Added reflection material.
228 * Modified several levels to use reflective material.
229 * Added option to disable reflection materials.
230 * Updated mapping documentation.
231 * Changed shadow CLAMP_TO_EDGE to CLAMP to work around some bad drivers.
232 * Added arrow key bindings for camera rotation.
234 -------------------------------------------------------------------------------
237 * Fixed a sneaky bug in menu memory that allowed unopened levels to be played.
238 * Fixed camera rotation joystick button init bug.
239 * Changed options menu to make unavailable modes unselectable.
240 * Implemented auto-pause when the game loses focus externally.
241 * Simplified ARB extension handling.
242 * Made another tweak to the level set screenshot loader.
243 * Applied Mehdi's tweak to level 5.
245 -------------------------------------------------------------------------------
248 * Fixed the scoring bug for real this time.
249 * Documented global set scoring.
250 * Added a ball "ghost" to ensure the ball remains visible when obscured.
252 -------------------------------------------------------------------------------
255 * Fixed the path timing bug for real this time.
257 -------------------------------------------------------------------------------
260 * Updated Mehdi's set to final.
261 * Fixed a path timing bug to correct a slight path pause discrepancy.
262 * Fixed scoring bug that was adding coins from failed level to global score.
263 * Fixed a bug corrupting level set screenshots.
265 -------------------------------------------------------------------------------
268 * Reorganized code, merged Neverputt code.
269 * Added friction physics.
270 * Fixed goal particle radius.
272 -------------------------------------------------------------------------------
275 * Set all menus to remember their last selection. Now the frustrated player
276 need only pound angrily on the mouse button to get back to his last save.
278 -------------------------------------------------------------------------------
281 * Fixed pipe.sol dependancy missing from Win32 makefile.
284 -------------------------------------------------------------------------------
287 * Mouse invert and joystick select patches.
288 * Minor level tweaks.
289 * Fixed no levels open after reading old high score file.
290 * Fixed activation of all switches at the same location.
291 * Added camera HUD indicator.
293 -------------------------------------------------------------------------------
296 * Added stereo viewing.
297 * Fixed Win32 makefile.
299 -------------------------------------------------------------------------------
302 * Minor tweaks and cleanup for an announced release.
304 -------------------------------------------------------------------------------
307 * Changed default scores file format, removing player names.
308 * Adjusted level order and default scores.
309 * Reimplemented physics lock punt.
311 -------------------------------------------------------------------------------
315 * Fixed texture positioning bug
316 * Darkened screen during pause
317 * Modified high scores to keep global highs. (HIGH SCORE FILE CHANGED)
318 * Added new automatic level shot grabber.
319 * Tweaked BSP optimizer.
321 -------------------------------------------------------------------------------
324 * Modified some textures.
325 * Modified some levels.
326 * Modified switches to switch entire path chains.
327 * Disallowed player from toggling timed switches off manually.
329 -------------------------------------------------------------------------------
332 * Added level set selector. (HIGH SCORE FILE CHANGED)
333 * Modified demo playback to handle level sets.
334 * Added BSP optimization to physics.
337 * Added Mehdi's level set.
338 * Modified switches to act on paths rather than bodies.
339 * Added timer option to switches.
341 -------------------------------------------------------------------------------
344 * Modified physics to better handle vertical movers.
345 * Added mover switch entity.
346 * Replaced level 13 with a level using vertical movers and switches.
348 -------------------------------------------------------------------------------
353 -------------------------------------------------------------------------------
359 -------------------------------------------------------------------------------
362 * Changed platforms to accelerate rather than change velocity instantly.
363 * Changed timer to display minutes. Increased max time from 99s to 9m59s.
364 * Changed teleport exit to be relative to teleport entry.
365 * Fixed time comparison ambiguity.
367 -------------------------------------------------------------------------------
370 * Fix broken load balancer starving the renderer on early level load.
371 * Disabled music playback entirely when music volume is zero.
373 -------------------------------------------------------------------------------
376 * Demo record and replay.
378 -------------------------------------------------------------------------------
381 * Padded .sol files to make them portable between Linux and Windows.
382 * Added pulsing HUD numbers.
383 * Changed Windows config file path.
384 * Changed pause mode to continue rendering.
386 -------------------------------------------------------------------------------
389 * Added background music.
390 * Changed several sounds.
391 * Added sound and music volume control to options screen and config file.
392 * Fixed discrepancy between reported time and recorded time.
393 * Fixed new coin record not triggering name input state.
394 * Fixed ESC during goal state.
396 -------------------------------------------------------------------------------
399 * Level score and high score list added to goal screen.
400 * Level score added to record screen.
401 * Goal screen requires click-through instead of time-out.
402 * Fixed level time bug. Clock was running during goal screen.
404 -------------------------------------------------------------------------------
407 * Player name stored in config.
408 * Keyboard camera selection.
411 -------------------------------------------------------------------------------
414 * Changed save game policy: it must be earned by collecting coins.
415 * Added camera tracking configuration option.
416 * Added coin sub-sort of time records.
417 * Added time sub-sort of coin records.
418 * Fixed exit-during-teleport bug.
419 * Fixed potential infinite loop when ball is crushed.
420 * Warn and continue on audio init failure.
422 -------------------------------------------------------------------------------
425 * Modified camera tracking, disabled direct camera control.
427 -------------------------------------------------------------------------------
430 * Added default records. Something to shoot for.
432 -------------------------------------------------------------------------------
435 * Added record keeping.
436 * Reorganized level selector to include records.
437 * Added record name input state.
438 * Changed shadow clamp back to CLAMP_TO_EDGE. Screw broken drivers.
439 * Changed timer to display hundredths of seconds.
440 * Got rid of clock tick until last 10 seconds (it conflicts with music).
441 * Returned original menu pointer motion. Reorganized point hide.
442 * Globalized pause state to generalize pointer grab handling.
444 -------------------------------------------------------------------------------
447 * Added teleportation.
448 * Changed menus to work with relative pointer motion.
449 * Changed pointer grab policy to lessen grab motion discontinuity impact.
450 * Fixed channel order for TGA textures.
451 * Fixed level selector link topology.
454 -------------------------------------------------------------------------------
457 * Display screen shots in level selector.
458 * Cut level selector to 25 to make room for level shot.
459 * Generalized flyby representation.
460 * Added poser state for capturing level shots.
463 -------------------------------------------------------------------------------
466 * Native Windows support returned.
467 * Fixed HUD not responding to texture quality setting.
468 * Hyper-paranoid ARB_multitexture usage.
470 -------------------------------------------------------------------------------
473 * Fixed input smoothing in game_step causing oscillation at low FPS.
474 * Worked around broken shadow CLAMP_TO_EDGE on i845G.
475 * Added high_level config and modified level select. Documented cheat.
478 -------------------------------------------------------------------------------
481 * New version numbering convention. Minor number is level count.
482 * Broke native Windows support.
483 * Reorganized source and Makefiles.
484 * Modified mapc to take a materials path.
485 * Fixed potential overflow in config_home.
487 -------------------------------------------------------------------------------
490 * Worked around broken color mask attribute pop in ball_draw on ATI.
492 -------------------------------------------------------------------------------
495 * Sent screenshots to $HOME rather than CWD, fixing segfault.
497 -------------------------------------------------------------------------------
500 * Removed some initial state assumptions that were wrong for some users.
501 * Fixed $HOME determination under Windows.
503 -------------------------------------------------------------------------------
506 * First release as "Neverball".
507 * Added joystick control.
508 * Added camera control.
510 * Added level intros.
511 * Added config file stored in $HOME.
512 * Removed text images and added TTF rendering.