CHANGES: sync
[neverball] / CHANGES
1 -------------------------------------------------------------------------------
2 New in 1.5.1
3
4 * Prevent thread race that was occasionally crashing the game
5 * Rename Unlock Goal scores to Fast Unlock
6 * Make mouse buttons configurable (full view control)
7 * Add bindings to toggle between chase and manual views
8 * Actually load/save joystick dpad config added in r1380
9 * Transform default game/locale data paths based on executable name
10 * Treat a single unrecognised argument as a replay name
11 * turn.map: full rebuild to prevent a bothering camera problem (may
12   break replays)
13 * bigcone.map: rebuilt bottom part of the cone
14 * German translation update
15
16 -------------------------------------------------------------------------------
17 New in 1.5.0
18
19 * Added dictionary elements to SOL file in order to allow metadata storage.
20 * Reverted short usage in SOL to int.  Was bumping up against the limit.
21 * Added new textures.
22 * Corrected various mapping problems in existing maps.
23 * Tweaked maps.
24 * Removed 5 set limit.
25 * Added internationalization.
26 * Added Catalan, Finnish, French, German, Latvian, Norwegian Nynorsk,
27   and Spanish translations.
28 * Countless interface tweaks across the board.
29 * Added three new Neverball sets.
30 * Reshuffled levels to smooth the difficulty curve.
31 * Fixed config not being saved sometimes.
32 * Fixed a misplaced Set Complete screen.
33 * Split off limited lives and set high-scores to a separate
34   "Challenge" game mode.
35 * Added bonus levels as a reward in Challenge mode.
36 * Added four new Neverputt courses.
37 * Fixed goal sound not being played in replays.
38 * Removed OSX mouse invert work-around.
39 * Reworked player name management.
40 * Added keyboard support for typing text.
41 * Added an option to launch replays from the command line.
42 * Added a dialog with replay info in replay selection screen.
43 * Added Unlock Goal high-scores.
44 * Made replays use the .nbr filename extension.
45 * Added invisible switches.
46 * Fixed layout falling apart due to long replay names.
47 * Added a new help system.
48 * Added a HUD toggle, bound to F6.
49 * Removed coin texture config option, it's now based on locale instead.
50 * Display current camera type when starting a level.
51 * Save screenshots as PNG instead of BMP.
52 * Implemented collectible grow/shrink items.
53 * Added ability to restart a level mid-game (normal mode only), bound to R.
54 * Added SVG icons.
55 * Fixed replays not being overwritten on Windows.
56 * Increased mapc limits.
57 * Fixed a repeated path inaccuracy.
58 * Fixed mute sounds after toggling the audio setting in config screen.
59 * Added multisample option.
60 * Fixed ball texture seem.
61 * Fixed GUI font texture coordinates sometimes being off by half a pixel.
62 * Made ball bounce more realistically with respect to moving objects.
63 * Replaced all TGA files with PNGs.
64 * Made several key bindings only available in development mode.
65 * Removed MSVC support, only MinGW is supported.
66 * Store user config in %APPDATA%\Neverball on Windows.
67 * Bound camera rotation keys to S and D by default.
68 * Added new pause screen.
69 * Changed lights to evenly illuminate entire maps.
70 * Fixed not being able to deactivate a timed switch on at start of level.
71 * Added platform acceleration toggle.
72 * Added Neverputt keyboard navigation.
73 * Added decal material flag in order to enable decals coincident with
74   base geometry.
75 * Added a tweak to place the GUI into "recently moved" mode upon level
76   end.  This will force the player to recenter the joystick before the
77   GUI with work.  Thus, the default button will not be accidentally
78   deselected if the joystick is not centered when play ends.
79 * Changed mover OBJ mechanism.
80 * Removed ball shadow in poser mode.
81 * Rewrote audio code without SDL_mixer dependency to eliminate
82   annoying crackle on various platforms.
83 * Removed audio_rate config variable.
84 * Rewrote image handling, eliminating SDL_image.
85 * Added mipmap and anisotropic options.
86 * Fixed level data not being freed by conf state.  This allowed OpenGL
87   state to leak when the context is bounced on resolution change.
88 * Fixed image_white not saturating red channel on RGB and RGBA images.
89 * Modified material sorter to draw opaque decals AFTER opaque
90   textures, and transparent decals BEFORE transparent textures.
91 * Removed TGA search from mapc.
92 * Added lump smoothing to mapc.
93 * Added glassy effect to glass materials.
94 * Some OpenGL optimization and state-change reduction.
95 * Added foreground billboards.
96 * Fixed the zero-velocity test in the edge/vert collision detection.
97   Was producing different results with different compilers.
98 * Added constant DT.
99 * Modified FPS calculation to be more correct.
100 * Added stats collection and output.
101 * Added application controlled vblank sync.
102 * Enhanced specular illumination.
103 * Added tilt sensor abstraction.
104 * Added Wiimote tilt sensor mode for Linux.
105 * Fixed empty buttons possibly being layed out so small that the
106   rounding rectangle overlaps itself.
107 * Added joystick digital pad button config symbols.
108 * Fixed failure to load ball texture breaks shadow texture.
109 * Added new ball rendering mechanism.
110 * Added several new balls using the new mechanism.
111 * Ignored mouse motion events generated on mouse grab, sometimes
112   causing sudden tilting to bottom right at level start.
113 * Texture cleanup.
114 * Added uniform sync option.
115 * Fixed Neverputt using hard-coded limits for score counts.
116 * Added curve tool to distribution.
117 * Implemented new shot name generation using a persistent index.
118 * Now saving screenshots in user data directory.
119 * Added support for decimal fractions in mapc.
120 * Rebuilt curves in maps to take advantage of decimal fractions.
121 * Allowed spaces in config values.
122 * Greatly optimized several mapc operations.
123 * Fixed texture rotation in mapc.
124 * Used OpenGL memory layout conventions for storing image data,
125   allowing proper texture coordinates to be used in OBJs and
126   elsewhere.
127 * Moved goal detection factor from code to Neverputt maps.
128 * Set the EWMH _NET_WM_ICON window hint on X11 systems (WM icons with
129   8-bit alpha transparency).
130 * Delayed buffer swap in level_snap until after image_snap, following
131   OpenGL standard and fixing off-by-one type error in set shots on
132   some ATI hardware.
133 * Eliminated performance penalty on mirror-less maps with reflections
134   enabled.
135 * Made default replay name user-configurable.
136 * Fixed mapc to avoid overflows when operating on SSE hardware.
137 * Fixed logic of BSP back/front tests.
138 * Requested SSE floating-point math from GCC for x86 systems
139 * Redesigned teleporter visuals.
140 * Implemented a server/client-like game/replay architecture.
141
142 -------------------------------------------------------------------------------
143 New in 1.4.0
144
145 * Fixed font renderer to never exceed maximum texture size.
146
147 -------------------------------------------------------------------------------
148 New in 1.3.11
149
150 * Fixed broken Unix build.
151 * Added OSX SDL mouse invert workaround.
152 * A few texture tweaks.
153 * Fixed broken Ball HUD.
154
155 -------------------------------------------------------------------------------
156 New in 1.3.10
157
158 * Tweaks to pars.
159 * Added wireframe view to Putt.
160 * Fixed view toward hole when the hole is directly above or below the ball.
161
162 -------------------------------------------------------------------------------
163 New in 1.3.9
164
165 * Made a few minor fixes to paxed's holes.
166 * Added score and par to HUD.
167 * Show score card only after a hole is finished.
168 * Added timeouts to all in-game states except Next Player.
169 * Fixed texture ID leak in conf state.
170
171 -------------------------------------------------------------------------------
172 New in 1.3.8
173
174 * Modified joystick traversal of GUIs to wrap top/bottom and left/right.
175 * Converted Putt to use Ball's GUI API.
176 * Merged Putt's and Ball's audio managers into shared.
177 * Added "Paused" screen to Putt.
178 * Generalized Putt's scoring to allow courses of length other than 18.
179 * Enabled switches in Putt.
180 * Added paxed's Putt courses.
181 * Changed a few textures on paxed's courses.
182 * Capped per-hole scores at 12.
183 * Modified several Putt backgrounds.
184 * Applied a change to Mehdi 25.
185 * Added poser mode to Putt.
186 * "Fixed" mouse jump on pointer grab.  SDL is unpredictable here.
187 * By popular demand, set initial ball view toward hole.
188
189 -------------------------------------------------------------------------------
190 New in 1.3.7
191
192 * Fixed mapc normal optimization bug.  Resolves the Putt 16 invisible wall.
193
194 -------------------------------------------------------------------------------
195 New in 1.3.6
196
197 * Fixed mapc normal optimization bug.  Resolves the "Level 6" crash.
198
199 -------------------------------------------------------------------------------
200 New in 1.3.5
201
202 * Applied fixes to Mehdi's levels
203 * Fixed GUI keyboard caps lock bug.
204 * Fixed no default GUI state on Done screen (joystick didn't work).
205 * Added fast camera rotation bound to Shift keys.
206 * Added camera rotation rate to config file.
207 * Modified perspective matrix to match gluPerspective.
208
209 -------------------------------------------------------------------------------
210 New in 1.3.4
211
212 * Removed unnecessary autopause when pointer is not grabbed.
213 * Fixed GUI not hilighting widget under cursor when mouse isn't moved.
214 * Fixed config file written only when changed.
215
216 -------------------------------------------------------------------------------
217 New in 1.3.3
218
219 * Removed few remaining bits of GLU code.
220 * Whitened glyph textures manually rather than relying upon pixel bias.
221 * Fixed Neverputt shadow
222
223 -------------------------------------------------------------------------------
224 New in 1.3.2
225
226 * Rewrote shadow code to use mulipass rather than multitexture.
227 * Removed all multitexture code.
228 * Added shadow option to config screen.
229 * Fixed music fade-in bug.
230 * Fixed badly named static variable "clock".
231 * Added level number to replay save screen.
232
233 -------------------------------------------------------------------------------
234 New in 1.3.1
235
236 * Fixed Save Replay not allowing score count to complete.
237 * Fixed bad unlock score in Mehdi 25.
238
239 -------------------------------------------------------------------------------
240 New in 1.3.0
241
242 * Fixed replay header nonportable.
243
244 -------------------------------------------------------------------------------
245 New in 1.2.11
246
247 * Rewrote SOL reader/writer to remove byte-order dependance.
248 * Rewrote replay handler to remove byte-order dependance
249 * Modified replay selector to ignore partial replays.
250 * Added camera mode gamepad control.
251 * Applied Mehdi's updates to several levels.
252 * Generalized config string handling.  Added coin and ball option strings.
253 * Added two new background music tracks.
254 * Fixed broken set scoring.
255 * Added Set Record screen.
256
257 -------------------------------------------------------------------------------
258 New in 1.2.10
259
260 * Added caps lock key to keyboard.
261 * Worked around Neverputt overwriting Neverball's camera setting.
262 * Added clobber confirmation to replay save.
263 * Fixed an audio bug when fading to the currently playing song.
264
265 -------------------------------------------------------------------------------
266 New in 1.2.9
267
268 * Merged set-complete state into goal state, fixing set-complete crash.
269 * Fixed a few game state init crashes.
270 * Fixed a few pointer grab issues.
271 * Added random replay during attract mode.
272 * Added scene fade in/out.
273 * Fixed a bug causing the texture quality setting to be ignored.
274 * Moved shadow handling in with other geometry, where it belongs.
275 * Moved particle and shadow init/free out of game init/free and into config.
276
277 -------------------------------------------------------------------------------
278 New in 1.2.8
279
280 * Improved directory handling.  No longer depends on CWD.
281 * Moved all config files to ~/.neverball/ directory.
282 * Screenshots now go to CWD, which is not changed.
283 * Reorganized replay handling.
284 * Added replay save / play / delete GUIs.
285 * Added auto disabling of stereo and reflection is mode set fails.
286 * Changed default pointer state to ungrabbed.
287
288 -------------------------------------------------------------------------------
289 New in 1.2.7
290
291 * Changed policy: Goal opens after a set number of coins are collected.
292 * Changed policy: Extra balls are awarded only after a goal.
293 * Changed policy: Game is saved after every goal.
294 * Changed hud to reflect new scoring policies.
295 * Fixed volume set bug.
296 * Fixed shadow visible on reflective surfaces in level shots.
297 * Fixed music on config screen.
298 * Increased ball transparancy to accomodate new view.
299 * Added subtle view distance flexibility.
300 * Merged Goal and High Score states.
301 * Tweaked some levels and scores in line with new scoring policies.
302 * Added better fading to make music less repetitious and annoying.
303
304 -------------------------------------------------------------------------------
305 New in 1.2.6
306
307 * Modularized state functions.
308 * Changed view to make horizon visible.
309 * Added view configuration options for people who whine about the new view.
310 * Changed background images to augment horizon.
311 * Fixed Neverputt far clip set closer than background.
312 * Fixed an audio init bug.
313 * Generalized config handling.
314 * Heavily modified GUI handling.
315 * Replaced all 2D menus with new GUI code.
316 * Changed image loading policy to support non-power-of-two images.
317 * Replaced Win32 makefile with VS.Net solution.
318 * Rewrote HUD to use new GUI handler.
319 * Added billboard objects to .SOL file.
320 * Policy change: .SOL files now go in same directory as .MAP files.
321 * Changed mapc to derive .SOL file name from .MAP file name.
322 * Changed pause screen to include the word "Paused".
323 * Changed internal clock to use integer deciseconds instead of float seconds.
324   (HIGH SCORE FILE CHANGED)
325 * Made some fixes to reflection handling.
326 * Added background .SOLs.
327 * Added wireframe mode.
328 * Added look-around mode.
329 * Added keyboard-to-joystick input mapping.
330 * Added mipmap generation.
331 * Added clamped material type.
332
333 -------------------------------------------------------------------------------
334 New in 1.2.5
335
336 * Fixed refrected background rotation.
337 * Added OBJ loading to mapc.
338 * Finally fixed material hack in mapc.
339 * A few graphical optimizations.
340 * Added shadow config option.
341 * Added sphere-map material type.
342 * Modified many levels to use detail OBJs.
343 * Traded doubles/ints for floats/shorts in the .sol file.  This cuts .sol
344   file size in half, but puts a limit on level complexity.
345
346 -------------------------------------------------------------------------------
347 New in 1.2.4
348
349 * Added camera control key binding to config file.
350 * Fixed some braindead reflection handling code.
351 * Fixed broken config menu.
352 * Fixed sound volume adjustment crash when sound is disabled.
353 * Fixed very stupid game timing bug that had been around far too long.
354
355 -------------------------------------------------------------------------------
356 New in 1.2.3
357
358 * Added reflection material.
359 * Modified several levels to use reflective material.
360 * Added option to disable reflection materials.
361 * Updated mapping documentation.
362 * Changed shadow CLAMP_TO_EDGE to CLAMP to work around some bad drivers.
363 * Added arrow key bindings for camera rotation.
364
365 -------------------------------------------------------------------------------
366 New in 1.2.2
367
368 * Fixed a sneaky bug in menu memory that allowed unopened levels to be played.
369 * Fixed camera rotation joystick button init bug.
370 * Changed options menu to make unavailable modes unselectable.
371 * Implemented auto-pause when the game loses focus externally.
372 * Simplified ARB extension handling.
373 * Made another tweak to the level set screenshot loader.
374 * Applied Mehdi's tweak to level 5.
375
376 -------------------------------------------------------------------------------
377 New in 1.2.1
378
379 * Fixed the scoring bug for real this time.
380 * Documented global set scoring.
381 * Added a ball "ghost" to ensure the ball remains visible when obscured.
382
383 -------------------------------------------------------------------------------
384 New in 1.2.0
385
386 * Fixed the path timing bug for real this time.
387
388 -------------------------------------------------------------------------------
389 New in 1.1.6
390
391 * Updated Mehdi's set to final.
392 * Fixed a path timing bug to correct a slight path pause discrepancy.
393 * Fixed scoring bug that was adding coins from failed level to global score.
394 * Fixed a bug corrupting level set screenshots.
395
396 -------------------------------------------------------------------------------
397 New in 1.1.5
398
399 * Reorganized code, merged Neverputt code.
400 * Added friction physics.
401 * Fixed goal particle radius.
402
403 -------------------------------------------------------------------------------
404 New in 1.1.4
405
406 * Set all menus to remember their last selection.  Now the frustrated player
407   need only pound angrily on the mouse button to get back to his last save.
408
409 -------------------------------------------------------------------------------
410 New in 1.1.3
411
412 * Fixed pipe.sol dependancy missing from Win32 makefile.
413 * Added help screen.
414
415 -------------------------------------------------------------------------------
416 New in 1.1.2
417
418 * Mouse invert and joystick select patches.
419 * Minor level tweaks.
420 * Fixed no levels open after reading old high score file.
421 * Fixed activation of all switches at the same location.
422 * Added camera HUD indicator.
423
424 -------------------------------------------------------------------------------
425 New in 1.1.1
426
427 * Added stereo viewing.
428 * Fixed Win32 makefile.
429
430 -------------------------------------------------------------------------------
431 New in 1.1.0
432
433 * Minor tweaks and cleanup for an announced release.
434
435 -------------------------------------------------------------------------------
436 New in 1.0.5
437
438 * Changed default scores file format, removing player names.
439 * Adjusted level order and default scores.
440 * Reimplemented physics lock punt.
441
442 -------------------------------------------------------------------------------
443 New in 1.0.4
444
445 * New levels
446 * Fixed texture positioning bug
447 * Darkened screen during pause
448 * Modified high scores to keep global highs.  (HIGH SCORE FILE CHANGED)
449 * Added new automatic level shot grabber.
450 * Tweaked BSP optimizer.
451
452 -------------------------------------------------------------------------------
453 New in 1.0.3
454
455 * Modified some textures.
456 * Modified some levels.
457 * Modified switches to switch entire path chains.
458 * Disallowed player from toggling timed switches off manually.
459
460 -------------------------------------------------------------------------------
461 New in 1.0.2
462
463 * Added level set selector.  (HIGH SCORE FILE CHANGED)
464 * Modified demo playback to handle level sets.
465 * Added BSP optimization to physics.
466 * New textures.
467 * New levels.
468 * Added Mehdi's level set.
469 * Modified switches to act on paths rather than bodies.
470 * Added timer option to switches.
471
472 -------------------------------------------------------------------------------
473 New in 1.0.1
474
475 * Modified physics to better handle vertical movers.
476 * Added mover switch entity.
477 * Replaced level 13 with a level using vertical movers and switches.
478
479 -------------------------------------------------------------------------------
480 New in 1.0.0
481
482 * Absolutely nothing
483
484 -------------------------------------------------------------------------------
485 New in 0.25.12
486
487 * FreeBSD support
488 * OSX support
489
490 -------------------------------------------------------------------------------
491 New in 0.25.11
492
493 * Changed platforms to accelerate rather than change velocity instantly.
494 * Changed timer to display minutes.  Increased max time from 99s to 9m59s.
495 * Changed teleport exit to be relative to teleport entry.
496 * Fixed time comparison ambiguity.
497
498 -------------------------------------------------------------------------------
499 New in 0.25.10
500
501 * Fix broken load balancer starving the renderer on early level load.
502 * Disabled music playback entirely when music volume is zero.
503
504 -------------------------------------------------------------------------------
505 New in 0.25.9
506
507 * Demo record and replay.
508
509 -------------------------------------------------------------------------------
510 New in 0.25.8
511
512 * Padded .sol files to make them portable between Linux and Windows.
513 * Added pulsing HUD numbers.
514 * Changed Windows config file path.
515 * Changed pause mode to continue rendering.
516
517 -------------------------------------------------------------------------------
518 New in 0.25.7
519
520 * Added background music.
521 * Changed several sounds.
522 * Added sound and music volume control to options screen and config file.
523 * Fixed discrepancy between reported time and recorded time.
524 * Fixed new coin record not triggering name input state.
525 * Fixed ESC during goal state.
526
527 -------------------------------------------------------------------------------
528 New in 0.25.6
529
530 * Level score and high score list added to goal screen.
531 * Level score added to record screen.
532 * Goal screen requires click-through instead of time-out.
533 * Fixed level time bug.  Clock was running during goal screen.
534
535 -------------------------------------------------------------------------------
536 New in 0.25.5
537
538 * Player name stored in config.
539 * Keyboard camera selection.
540 * Tweaked cameras.
541
542 -------------------------------------------------------------------------------
543 New in 0.25.4
544
545 * Changed save game policy: it must be earned by collecting coins.
546 * Added camera tracking configuration option.
547 * Added coin sub-sort of time records.
548 * Added time sub-sort of coin records.
549 * Fixed exit-during-teleport bug.
550 * Fixed potential infinite loop when ball is crushed.
551 * Warn and continue on audio init failure.
552
553 -------------------------------------------------------------------------------
554 New in 0.25.3
555
556 * Modified camera tracking, disabled direct camera control.
557
558 -------------------------------------------------------------------------------
559 New in 0.25.2
560
561 * Added default records.  Something to shoot for.
562
563 -------------------------------------------------------------------------------
564 New in 0.25.1
565
566 * Added record keeping.
567 * Reorganized level selector to include records.
568 * Added record name input state.
569 * Changed shadow clamp back to CLAMP_TO_EDGE.  Screw broken drivers.
570 * Changed timer to display hundredths of seconds.
571 * Got rid of clock tick until last 10 seconds (it conflicts with music).
572 * Returned original menu pointer motion.  Reorganized point hide.
573 * Globalized pause state to generalize pointer grab handling.
574
575 -------------------------------------------------------------------------------
576 New in 0.25.0
577
578 * Added teleportation.
579 * Changed menus to work with relative pointer motion.
580 * Changed pointer grab policy to lessen grab motion discontinuity impact.
581 * Fixed channel order for TGA textures.
582 * Fixed level selector link topology.
583 * New levels.
584
585 -------------------------------------------------------------------------------
586 New in 0.21.0
587
588 * Display screen shots in level selector.
589 * Cut level selector to 25 to make room for level shot.
590 * Generalized flyby representation.
591 * Added poser state for capturing level shots.
592 * New Levels.
593
594 -------------------------------------------------------------------------------
595 New in 0.16.2
596
597 * Native Windows support returned.
598 * Fixed HUD not responding to texture quality setting.
599 * Hyper-paranoid ARB_multitexture usage.
600
601 -------------------------------------------------------------------------------
602 New in 0.16.0
603
604 * Fixed input smoothing in game_step causing oscillation at low FPS.
605 * Worked around broken shadow CLAMP_TO_EDGE on i845G.
606 * Added high_level config and modified level select.  Documented cheat.
607 * New levels.
608
609 -------------------------------------------------------------------------------
610 New in 0.14.0
611
612 * New version numbering convention.  Minor number is level count.
613 * Broke native Windows support.
614 * Reorganized source and Makefiles.
615 * Modified mapc to take a materials path.
616 * Fixed potential overflow in config_home.
617
618 -------------------------------------------------------------------------------
619 New in 0805b
620
621 * Worked around broken color mask attribute pop in ball_draw on ATI.
622
623 -------------------------------------------------------------------------------
624 New in 0805a
625
626 * Sent screenshots to $HOME rather than CWD, fixing segfault.
627
628 -------------------------------------------------------------------------------
629 New in 0805
630
631 * Removed some initial state assumptions that were wrong for some users.
632 * Fixed $HOME determination under Windows.
633
634 -------------------------------------------------------------------------------
635 New in 0804
636
637 * First release as "Neverball".
638 * Added joystick control.
639 * Added camera control.
640 * Added ball shadow.
641 * Added level intros.
642 * Added config file stored in $HOME.
643 * Removed text images and added TTF rendering.
644 * New textures.
645 * New levels.