Commit Graph

351 Commits (35f7f7e8dcaa0edcbe07583c41d801af19249e6a)

Author SHA1 Message Date
Patric Stout e4d216e44b Feature: join servers based on their invite code
This removes the need to know a server IP to join it. Invite codes
are small (~7 characters) indentifiers for servers, which can be
exchanged with other players to join the servers.
3 years ago
Patric Stout b1280fd17e Add: use Game Coordinator to annouce public servers 3 years ago
TELK f9b4a3a5e6
Add: Show the number of clients and companies in the online players window (#9376) 3 years ago
glx22 5799402f7a Codechange: Rename window related DeleteXXX to match new behaviour 3 years ago
glx22 994bf19aef Fix f6d5c01: Delay deletion when closing windows 3 years ago
glx22 e66e25ff71 Fix #9269, f6d5c01: Hide windows without abusing WC_INVALID 3 years ago
frosch f96f113951 Codechange: use IterateFromBack/Front only if the order is important.
Use Iterate if the order does not matter.
3 years ago
Peter Nelson dd41de8931 Codechange: Slider widget used different range for drawing vs setting.
Using the same range for setting means that no workaround for setting the extremes is necessary.
3 years ago
Peter Nelson d8e06e590a Codechange: Make GetCurrentRect() conform to usual Rect bounds, and reuse it.
Similar code is already repeated in other locations.
3 years ago
rubidium42 6bca9e090d Codechange: add SetDParamStr that accepts std::string& 3 years ago
Peter Nelson 4791ff2862 Fix: Recalculate padding and minimum sizes when GUI or Font zoom is changed. 3 years ago
glx22 14e92bd8e2 Codechange: Replace window related FOR_ALL with range-based for loops 3 years ago
PeterN ae7f07de74
Fix: Incorrect vertical alignment of icon and text in DropDownListIconItem. (#9133)
This happens if the bounding dimensions are changed so that each item is the same size, as happens on the railtype/roadtype dropdown lists, as the vertical offset was calculated before this dimension is changed.
3 years ago
Patric Stout ff708c2c65 Add: admin menu for companies in multiplayer games
You can now easily do:
- a password reset (unlock)
- remove an empty company (reset company)
3 years ago
Patric Stout 5266359424 Feature: rework in-game Online Players GUI
The GUI now more clearly shows some basic information about the
server you joined, your client name (and the ability to change it),
and what players are in which company.

It also contains useful buttons to press to join companies, chat
with other people, and for admins to kick/ban people.

Additionally, renamed "advertised" to "visibility"; this has to
do with future additions, but also because it is more clear in
wording.
3 years ago
Patric Stout 05612d60ae Remove: "language" field from server/client
The original idea was that people could find a server they could
talk in their native language on. This isn't really used in that
way. There are several reasons for removing this:

- the client also sends his "language" to the server, but nothing
  is doing anything with this.
- flags are a bad way to represent languages, and over the years
  we had several (rightfully) complaints about this.
- most servers have their language set to "All", and prefix the
  servername with the language it is about. This is a much more
  efficient way to do the same.

All in all, this feature should go back to the drawing board.
Maybe it could work in another form, but this form is not it.
3 years ago
Patric Stout f0f2073006 Feature: allow a toggle to enable/disable vsync
Vsync should be off by default, as for most players it will be
better to play without vsync. Exception exist, mainly people who
play in fullscreen mode.
3 years ago
Niels Martin Hansen 785e42a6f9 Feature: Volume sliders in Game Options window 3 years ago
Niels Martin Hansen 88c92f7b7c Codechange: Move volume control slider logic to separate functions 3 years ago
Didac Perez Parera ca783d447a
Feature: Button to reset game settings to their default values (#8958) 3 years ago
Patric Stout 45c2c29c35 Add: allow setting the highest mountain for heightmaps
It will add some slack to the map height limit if that was set
to auto.
3 years ago
Patric Stout 23f27db8c3 Change: remove "maximum map height" from the New Game GUI
This setting influence the max heightlevel, and not as the name
suggests: the height of the generated map.

How ever you slice it, it is a very weird place to add this
setting, and it is better off being only in the settings menu.

Commits following this commit also make it more useful, so users
no longer have to care about it.
3 years ago
Patric Stout 70bc55cfd6 Feature: setting to indicate desert coverage for tropic climate
This is an indication value; the game tries to get as close as it
can, but due to the complex tropic rules, that is unlikely to be
exact.

In the end, it picks a height-level to base the desert/tropic
line on. This is strictly seen not needed, as we can convert any
tile to either. But it is the simplest way to get started with
this without redoing all related functions.
3 years ago
Patric Stout cafe4eed6e Feature: setting to indicate snow coverage for arctic climate (replaces snow line height)
Setting the snow coverage (in % of the map) makes a lot more sense
to the human, while still allowing the niche player to set (by
finding the correct %) a snow line height they like. This makes for
easier defaults, as it decoupled terrain height from amount of snow.

Maps can never be 100% snow, as we do not have sprites for coastal
tiles.

Internally, this calculates the best snow line height to approach
this coverage as close as possible.
3 years ago
Patric Stout 22a9d921ef Fix: if bootstrap failed, it could end with an empty screen instead of error
There are various of ways bootstrap can fail:
- Failing network connection
- Incomplete download
- No write permissions
- Disk full
- (others I forgot)

They all result in a screen with no windows. To ensure we at least
always show something when anything bad happens, if the bootstrap
is not successful, show a screen what the next step for the human
should be.
3 years ago
Didac Perez Parera e708fb38da
Feature: allow filtering on name in rail station window (#8706) 3 years ago
Patric Stout b21ba566ae
Codechange: remove special strings for language and resolutions (#8824)
As OpenTTD grew, we found other ways to do this, and we are no
longer in need for a hack like this.
3 years ago
sean 0464a50ab8
Add: Display refresh rate game option (#8813) 3 years ago
dP 56911a86ea Add: Buttons to open global goals from company goals and vice versa 3 years ago
Patric Stout b93d7dd3cb
Add: Option to (dis-)allow accelerated video drivers. (#8819)
The video drivers using the OpenGL backend are currently our only
accelerated drivers. The options defaults to off for macOS builds and
to on everywhere else.

Co-authored-by: Michael Lutz <michi@icosahedron.de>
3 years ago
Didac Perez Parera 96990b2ea7
Feature: Object class selection string filtering (#8603) 3 years ago
dP 91cc414588 Feature: [GS] Allow non-question type windows to have no buttons 3 years ago
frosch 5a1fa18509 Change: move the 'road drive side' selection to settings tree, and give it the same 'basic' visibilty as 'signal side'. 3 years ago
frosch c71d0f5e7f Change: move townname generator selection to mapgen GUI. 3 years ago
frosch 81e47277e7 Change: move the 'tree placer algorithm' selection to the settings tree window, and give it the same 'basic' visibility as 'in-game tree placement'. 3 years ago
Kuhnovic 83ddb1501f
Feature: Remove all industries button in scenario editor (#8550) 3 years ago
frosch e339188ded Add: a go-to-location button to the LandInfo window. 4 years ago
frosch 1432dbac53 Add: another go-to-location button to the sign window. 4 years ago
frosch 589feba0eb Change: Relocate vehicle rename and location buttons. 4 years ago
Patric Stout 3dbdb1c7e3
Change: remove warning in cheat window and reduce it to a note (#8538)
Although meant as a funny joke towards the player, our social
standards have changed since 2004, and such "jokes" are no
longer acceptable by the community as a whole.

The only value of the message is that people are informed the
information is stored in the savegame. This is mostly useful for
us, developers, as some of those cheats can have side-effects
which people report.

While at it, styled the GUI a bit better, as the way the text
was presented was odd.
4 years ago
Charles Pigott 9b800a96ed
Codechange: Remove min/max functions in favour of STL variants (#8502) 4 years ago
Patric Stout 62cdadb582 Change: move "give money" from client-list to company window
This is a much better location for this button, as you send
money from one company to another company, not from player
to player.

This is based on work done by JGRPP in:
f820543391
and surrounding commits, which took the work from estys:
https://www.tt-forums.net/viewtopic.php?p=1183311#p1183311

We did modify it to fix several bugs and clean up the code while
here anyway.

The callback was removed, as it meant a modified client could
prevent anyone from seeing money was transfered. The message
is now generated in the command itself, making that impossible.
4 years ago
Niels Martin Hansen 2d9fa81bd0 Feature: Plant clumps of trees in editor by dragging on the landscape 4 years ago
Niels Martin Hansen e0ee2d530a Change: Switch tree GUI to use dynamically generated buttons
This makes it look a bit better in climates with fewer tree types.
4 years ago
frosch 2bb691f50e Change: Remove the LAN/Internet combobox from the server list in favour of adding two separate search buttons. 4 years ago
Bernard Teo 981c540201 Change: Place "Group by" above "Sort by" in station window for consistency 4 years ago
Bernard Teo e59c400ca6 Feature: Option to group vehicle lists by shared orders
This applies to all kinds of vehicle lists, as well as the "vehicle groups" window.
4 years ago
Patric Stout 56d54cf60e Add: introduce CMake for project management
CMake works on all our supported platforms, like MSVC, Mingw, GCC,
Clang, and many more. It allows for a single way of doing things,
so no longer we need shell scripts and vbs scripts to work on all
our supported platforms.

Additionally, CMake allows to generate project files for like MSVC,
KDevelop, etc.

This heavily reduces the lines of code we need to support multiple
platforms from a project perspective.

Addtiionally, this heavily improves our detection of libraries, etc.
4 years ago
Michael Lutz a49fdb7ebb Codechange: Store base set related texts in std::strings. 4 years ago
glx e0d20a44d2 Codechange: Use a dynamic copyright year 4 years ago
stormcone 70f9c3c655 Feature: Industry directory cargo filtering 5 years ago
TELK e04ca904a9 Feature: Minimap screenshot 5 years ago
pnda e558aa8ff4 Feature: Screenshot window 5 years ago
stormcone 798e9ee93e Feature: Add a button to the vehicle advisory news window to open the group window. 5 years ago
S. D. Cloudt 13cc8a0cee Cleanup: Removed SVN headers 5 years ago
Gabda b870596f15 Add #6887: Option to show zone inside local authority boundary of towns
Can be found at town information > local authority window
Layout for button is same as Graph Keys
Turn on/off for every town individually
5 years ago
TELK 196d586849 Feature: Town name filtering (#7621) 5 years ago
Niels Martin Hansen e7f6f07599 Add: Show memory allocations by GS and AI in framerate window 5 years ago
peter1138 c02ef3e456 Feature: Add NotRoadTypes (NRT) 5 years ago
Peter Nelson 21edf67f89 Codechange: Untangle game and scenario toolbars. 5 years ago
peter1138 81d335b081 Feature: Add station coverage area display for towns. 5 years ago
peter1138 b6733edd17 Feature: Add coverage area display for existing stations. 5 years ago
Niels Martin Hansen dd35a43703 Codechange: Revert unnecessary indentation change 5 years ago
Niels Martin Hansen 08284e005d Fix: Automatic line breaking of the warning 5 years ago
Niels Martin Hansen dcb2571888 Add: Warn players that company passwords are not truly secure 5 years ago
Henry Wilson 7c8e7c6b6e Codechange: Use null pointer literal instead of the NULL macro 5 years ago
glx22 3b4f224c0b
Fix #7494: std::sort() and qsort() use different comparators (#7495) 5 years ago
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.
5 years ago
Michael Lutz 9325d63d8e Fix: Forgotten override keywords for DropDownListIconItem. 5 years ago
glx22 66dd7c3879
Fix: MSVC warnings (#7423) 5 years ago
Henry Wilson cc62f4163f Cleanup: Remove unused size template parameters from SmallMap and Auto[Free|Delete]SmallVector 5 years ago
Henry Wilson ab711e6942 Codechange: Replaced SmallVector::[Begin|End]() with std alternatives 5 years ago
Henry Wilson a0f36a50e6 Codechange: Replaced SmallVector::Append() with std::vector::[push|emplace]_back() 5 years ago
Henry Wilson a690936ed7 Codechange: Replace SmallVector::Length() with std::vector::size() 5 years ago
peter1138 aafce47596 Codechange: Use override specifier for DropDownListItem classes. 5 years ago
peter1138 b56ea5ca27 Add: Generic drop down list string item with icon. 5 years ago
peter1138 fb35cb5ed2 Remove: Unnecessary virtual destructors on drop down list items. 5 years ago
peter1138 811bf22620 Codechange: Use Colours type instead of byte. 5 years ago
Niels Martin Hansen 13962a8475 Change: Framerate window can now scroll and resize 5 years ago
Peter Nelson fde5bd0ccf Change: Add scrollbar to cargo legend in cargo payment rates window. 5 years ago
Greg Carlin 00d28a500d Feature: Add option to adjust font size separately from GUI size. (#7003)
Adds an option in the "Game Options" next to "Interface Size" called "Font Size". Available options are normal, double, and quad.
5 years ago
PeterN 23960d0f2c Feature: Group liveries, and livery window usability enhancements. (#7108)
* Change: Replace checkbox in livery selection window with Default option in drop down selection.

This reduces clutter in the UI and allows for primary/secondary colours to independently follow the default scheme if desired.

* Feature: Add vehicle group liveries.
5 years ago
J0an Josep 628af2fabc Fix #6060: When opening a scrollable dropdown above a widget, scroll it to its very bottom.
This "prevents" the fast movement towards the bottom when holding down the mouse button.
6 years ago
Juanjo 226dbcb422 Codechange #6060: Allow drawing dropdown lists with scrollbars above the widgets 6 years ago
PeterN 5ff0c24993 Fix #6780: Some windows didn't get updated from OnTick() (#7048) 6 years ago
damfr 868c6f924a Add: Filter box to the save and load windows (#6974)
Save and heightmap names can be filtered.
6 years ago
Charles Pigott f5b1115039 Doc: Lots and lots of doxymentation fixes 6 years ago
J0an Josep 8975318286 Fix 2a868b9f3b8e3b5f8b9e5f728f628ec88fd5e3ad: Expose widgets and windows to scripts and fix documentation. 6 years ago
Joan Josep 944f785be8 Fix: Spelling errors (#6769) 6 years ago
Niels Martin Hansen 19f5a6cbb0 Feature #6090: Change music set during gameplay 6 years ago
peter1138 19d56a33e8 (svn r27822) -Feature: Vehicle Group Info: Add profits and occupancy display to group vehicle list (mtm, JGR) 7 years ago
peter1138 902663176d (svn r27820) -Fix: Allow dropdown to be drawn above origin widget even with scrollbar (Juanjo) 7 years ago
frosch 7b553d255e (svn r27732) -Change: Turn the message about 'missing baseset sprites' from a popup into a static message that only shows in non-release versions, just like the 'missing translations' message. 8 years ago
frosch ad43465c31 (svn r27683) -Change: Rearrange the autoreplace GUI for trains, and do not filter it by railtype by default. 8 years ago
frosch 30574a7cad (svn r27671) -Codechange: Replace magic numbers in the toolbar with the already existing WID_TN_xxx. (Wolf01) 8 years ago
michi_cc 2b8bb12d62 (svn r27381) -Fix: Warnings due to C++11 requirements for explicit narrowing conversions in initializer lists. 9 years ago
alberth a5843149b5 (svn r27174) -Feature[FS#6236]: Display relative offset changes in the sprite aligner (juzza1). 9 years ago
frosch c9114af706 (svn r27131) -Fix: Dropdown- and tooltip-windows should not steal the focus. 10 years ago
rubidium d534c80e94 (svn r27020) -Cleanup: some coding style consistency improvements (mostly spaces) 10 years ago
peter1138 253c91b17d (svn r26990) -Feature: Add option to choose normal, double or quad-size interface. 10 years ago