Michael Lutz
c7b9987d08
Codechange: Switch DropDownList to directly use std::vector, thus making AutoDeleteSmallVector obsolete.
...
DropDownListItem are strongly managed using std::unique_ptr to ensure leak-free handling. Appropriate use
of move-semantics make intent a lot clearer than parameter comments and allows the compiler to generate
copy-free code for most situations.
6 years ago
peter1138
317f69c152
Codechange: Use override specifier in Window-derived classes.
6 years ago
Peter Nelson
6dfe36b5cd
Change: Make volume slider widget capture mouse when clicked.
...
This makes the slider continue to respond even when mouse cursor
is no longer over the widget.
6 years ago
Niels Martin Hansen
c618a7c093
Fix 6298b96: Changing music set did not save new setting
6 years ago
Charles Pigott
52ed3bcbaa
Remove: A few bits of dead code
6 years ago
Niels Martin Hansen
336d6cab68
Fix 6298b96: Playlist window not drawing playlist
...
Copy-paste error in change to remove C++11 usage...
6 years ago
Niels Martin Hansen
6298b96571
Change: Modernise music control logic implementation ( #6839 )
...
Rewrite of almost the entire music control logic to a more modern style, hopefully also easier to understand. The old playlist handling made it look like arcane magic, which it doesn't have to be.
- Playlists are now stored in std::vector of objects instead of arrays of bytes with magic sentinel values, that need to be rotated around all the time. Position in playlist is stored as a simple index.
- The theme song is now reserved for the title screen, it doesn't play on any of the standard playlists, but is still available for use on custom playlists.
- When the player enters/leaves the game from the main menu, the music always restarts.
- Playback state (playing or not) is kept even if music becomes unavailable due to an empty playlist (or an empty music set), so it can restart immediately if music becomes available again.
- The shuffle algorithm was changed to a standard Fisher-Yates.
- Possibly better behavior when editing a custom playlist while it's playing.
- Custom playlists should be compatible.
- Framework for supporting custom playlists with songs from multiple music sets.
6 years ago
Niels Martin Hansen
a1b7812c7e
Change: Improved looping of title song
6 years ago
Niels Martin Hansen
f946b3da56
Codechange: Pass a MusicSongInfo struct instead of bare filename to music drivers.
...
Preparation for later extending the info passed to music drivers.
6 years ago
Niels Martin Hansen
19f5a6cbb0
Feature #6090 : Change music set during gameplay
7 years ago
Niels Martin Hansen
430e20f7e4
Fix: Clipping issues with volume sliders in Music GUI
...
Tested with various languages and GUI font sizes, should look good everywhere.
Also clamps near-end values to minimum and maximum so 0 and 127 are possible to achieve even on small GUI sizes (like the default.)
7 years ago
Niels Martin Hansen
bb809e35ce
Change: Less intrusive "no music" message from Music window
7 years ago
Niels Martin Hansen
e172794947
Change: Disable music control buttons when there is no music
7 years ago
Niels Martin Hansen
76cccc64c9
Codechange: Music GUI comments and function naming
7 years ago
rubidium
771dcf3b7b
(svn r27003) -Cleanup: fix the use of spaces and asterices "around" some comments
10 years ago
rubidium
4438821b80
(svn r26809) -Fix: do not dereference the -1 index of the file names array of music files. It definitely breaks on m68k, and might cause failures on other platforms as well
10 years ago
rubidium
b476086c39
(svn r26538) -Codechange: remove double accounting of the drivers
11 years ago
rubidium
21f991e235
(svn r26489) -Codechange: properly account for the end of buffers in the file io code instead of assuming MAX_PATH is okay
11 years ago
rubidium
0463dbdc9e
(svn r26482) -Codechange: add an include that allows us to undefine/redefine "unsafe" functions to prevent them from being used, and thus having to care about certain aspects of their return values
11 years ago
planetmaker
247feca247
(svn r25776) -Add [FS#5743]: Sticky and shade buttons for jukebox window (retro)
11 years ago
frosch
8157a8afd8
(svn r25290) -Add: Assign string names to notable windows.
12 years ago
frosch
56e4a8c4d6
(svn r25287) -Codechange: Keep a reference to the WindowDesc in the Window after construction.
12 years ago
frosch
03736af2ae
(svn r24700) -Cleanup: Remove WDF_UNCLICK_BUTTONS and make it the default.
12 years ago
truebrain
e2d8abeec5
(svn r23544) -Codechange: document and rename widgets to be consistent and understandable
13 years ago
truebrain
2aa774e831
(svn r23528) -Codechange: move widget enums to widgets/NNN_type.h
13 years ago
rubidium
58423b26d1
(svn r23474) -Codechange: move the declaration error related functions to error.h
13 years ago
glx
634796b860
(svn r23430) -Fix (r23219): also consider the old directories when playing a song
13 years ago
rubidium
2b897b4fa0
(svn r23219) -Change: different directories for basesets and newgrfs. So data to baseset or newgrf, and gm to baseset
13 years ago
rubidium
99ed5eb7c5
(svn r23035) -Fix (r23034): compile failure
13 years ago
rubidium
0656660f22
(svn r23034) -Fix: make sure the custom playlists are 0 terminated
13 years ago
rubidium
f04746a9ff
(svn r23033) -Fix [FS#4776]: the last custom playlist items went lost when the files in the .obm are not contiguous
13 years ago
planetmaker
ba7611ed13
(svn r22694) -Cleanup [FS#4579]: Remove unused but confusing widget
13 years ago
frosch
5e449b8fae
(svn r22429) -Add: some constants for specific palette colours used in the GUI.
14 years ago
frosch
22286bd7b6
(svn r22421) -Fix: Replace various references to Windows palette greyscale indices with the DOS palette indices.
14 years ago
frosch
ec9540a12a
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
14 years ago
rubidium
f90044d343
(svn r22202) -Codechange: make MusicFileSettings a proper citizen of the client settings
14 years ago
rubidium
ad15cd37a6
(svn r21698) -Fix: incorrectly named global variable
14 years ago
alberth
f5c6fd1a25
(svn r21331) -Codechange: Make drawing the widgets default behaviour in OnPaint().
14 years ago
rubidium
30637a8340
(svn r21157) -Codechange: remove information about the text direction out of the language "list"
14 years ago
yexo
241d705406
(svn r20474) -Cleanup: remove some unused code
14 years ago
rubidium
e356cb9405
(svn r20281) -Codechange: unify case scope closure + break coding style
14 years ago
alberth
3a1451644a
(svn r20221) -Codechange: Move unscrolled row calculation into a function.
14 years ago
alberth
22b9bc5157
(svn r20043) -Codechange: Introduce vertical alignment for DrawStringMultiLine().
14 years ago
smatz
f051066bc4
(svn r19224) -Codechange: change parameters passed to ShowErrorMessage() a bit
15 years ago
frosch
88019e64e1
(svn r18966) -Codechange: Remove Window::OnDoubleClick() in favour of a parameter for OnClick().
15 years ago
rubidium
82fc28f77f
(svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header
15 years ago
rubidium
a8d6d18b22
(svn r18608) -Change: add the concept of music sets
15 years ago
rubidium
ade9773080
(svn r18603) -Codechange: move getting the song name to music_gui.cpp
15 years ago
rubidium
250c355508
(svn r18369) -Fix [FS#3339] (rbeginning): off-by-one in the preconfigured music lists
15 years ago
rubidium
1f0da3710f
(svn r18324) -Codechange: there's no need for a default size when the window isn't resizable
15 years ago