Adding a server via "Add Server" should handle them
as favorites as otherwise the list is not saved locally and
each server is lost after game restart.
Signed-off-by: Tobias Kohlbau <tobias@kohlbau.de>
Stop previewing sequence now unfollows the current sprite.
Using the arrow keys in-game cancels following.
Resizing the window no longer cancels following.
Added new smart follow variable to window to more intuitively follow
sprites that may not be directly followable at all times.
Follow sprite is now canceled when dragging the screen but not
scrolling. This is only relevant when testing title sequences in game.
Select sprite button is now disabled in the title menu.
Sprites are now identified based on their name. Excess identification
information is not given as it'd clutter up the screen and is not
necissary with the viewbox in the command editor.
New command goes by LOADSC in script files and in the enumeration.
Scenarios are stored using the internal also used for localisation.
Scenarios selected can only be scenarios to originally come with one of
the games or expansions.
Modified Scenario Select window to have a mode just for title editor
scenario selection.
`safe_strcpy` already takes the null terminator into
account, making the check useless. If the string was too
long, `safe_strcpy` already prints a warning anyway.
Two small fixups included:
- Sorting includes
- Comparing char with `\0` instead of 0
The two functions for opening were almost identical. The only
difference was that one was passed a string ID and the other a
raw string. The one taking the string ID now converts it to a
raw string, and then calls the other functions.
This also makes the utf8 string const and replaces some C-string
code with String::Set.
This was one of the few windows that had its widget positions defined in
hexadecimals rather than decimals.
The logic was further obscured by using a macro to offset an experimental
change to accomodate longer dates. This change has been widely embraced,
so this patch applied said macro to improve legibility.
This removes most usages of the separate flag, instead relying on ride groups to do its job.
Research is more complicated and will follow in another commit.
Before adding a name to the clipboard buffer, it checks for spaces at
the end of the name, to prevent copying those.
It also moves some logic from the "mouseup" function, and moved memory
deallocation within the same function where it got allocated.
Simplify UI scaling display quality options.
This removes three options:
* 'Use NN scaling at integer scales', as NN is decidedly preferable at integer scales.
* Anisotropic scaling, as it produces results very similar (if not equal) to linear scaling.
* NN as a selectable option in the dropdown - NN is forced on integer scales and unavailable for non-integer scales.
This adds a vector of indices used for the track designs array, which is
used instead of the window list index.
Some other things I've edited that are not directly related to this
commit:
- Orders widgets in logical order like how they appear on screen
- Adds some comments to existing code
This feature existed in the original RCT1/2 games but was not present in
the latest development commit.
The original shortcut for this key was '7', placing it between the
"Invisible people toggle" (6) shortcut and the "Height marks on land
toggle" (8). This commit preserves as much as possible, using
placeholder comments that signify the relevant values which this
feature actually uses where this is not possible.
The ride window was not invalidated, resulting in old text being still
visible inside the list. This was especially noticable when the game was
paused.
Regression from #6574. Restoring the backup of SPR_TEMP was removed which was necessary as it is the sprite for grass tile zoomed out. Instead make SPR_TEMP a special sprite ID which is not used for anything else apart from temporary sprite drawing.
Remove hard dependency on scenery window by calling a new is scenery set invented function. I don't think this the performance is any worse as it called init_scenery anyway for every call to get_available_entertainers.
The guest tracking icon is hidden on the guest list if it's in
PAGE_SUMMARISED mode. Closing then reopening the window reset it back to
INDIVIDUAL mode but did not restore the icon state.
Title editor sequence selection now defaults to current preset. This is
only after the first time the window is opened. Afterwards it keeps the
last selection.
* Change how current title sequence is handled. It can either be
previewing a title sequence, or playing the preset.
* LoadMM and LoadRCT1 now save when script is saved.
* No more infinite failing to load loops.
* No more crashing when attempting to display "no save selected" in
title editor.
* Title editor now gracefully fails to preview a title sequence and lets
the user know with a context error.
* When preset title sequence fails to load, the preset will forcibly be
changed to the first sequence to successfully load.
Added changelog entries for last two items.
Title sequences can now be played back in-game, allowing for much easier
editing.
Improved title sequence playback in general. Clicking play while on a
different title sequence will play the new one. Clicking stop will make
the title screen go back to the config title sequence. And the closing
the title sequence window will also make the game go back to the config
title sequence, and reload the sequence if it was modified.
Changes made to title sequences in-game are now correctly loaded in the
title screen.
Starting a title sequence within the editor will now always reset it
even if it's the current playing sequence. (Not for playing in the
editor though).
Get Location in title sequence command editor now has 100% accuracy
compared to before
where it would usually get some offset value.
Added `get_map_coordinates_from_pos_window` which will allow getting the
viewport coordinates of a specific window even if the input coordinates
are under another window. This has use with getting 2D positions from
the main window without the other windows getting in the way.
Options window will now always specify the config title sequence in the
dropdown and not the current title sequence.
Made a global variable `gLoadKeepWindowsOpen`, in game.h to keep windows
open when loading a park. When loading a title sequence park in-game.
The sequence player will force-close all park-specific windows ahead of
time.
Skipping while testing title sequences no longer needs to reload the
park if the current playback position is already before the target
position and ahead of the load position.
Added changelog entry.
Change min energy cheat to the correct min value 32. This fixes the issue with the min energy cheat that causes it to reset to 255 a few seconds after applying it.
* Reintroduce error title to game actions. Small refactor.
Removed setting error titles in any calling functions.
Refactored place park entrance result to conform with other game actions.
* Remove unread variable (fixing Travis)
Predefined title sequence filenames are now treated as "reserved".
Custom title sequences cannot use reserved names and an error will
appear if the user tries.
Duplicating predefined title sequence now uses default text of
predefined sequence's proper name instead of filename.
Renamed `WIDX_TITLE_EDITOR_RENAME_SAVE_BUTTON` to
`WIDX_TITLE_EDITOR_RENAME_BUTTON` to follow formatting of other preset
button ids.
Added string id 6154, `STR_ERROR_RESERVED_NAME`, "Name is reserved".
This increases the height for each item in the keyboard shortcuts window from 10px to 12px.
While this may not seem like much, it ensures the text no longer overlaps for Japanese and Korean.
At also has the added benefit of making the window look a bit nicer for Western languages.
Predefined themes *RCT1* and *RCT2* will now be called their respective
game name*RollerCoaster Tycoon 1* or *RollerCoaster Tycoon 2* in the
current language.
Predefined themes in the config file now are prefixed with an asterisk
like they are supposed to be. AKA `*RCT1` instead of `RCT1`.
This will invalidate the user's currently selected theme in the config
file, but only if they were using RCT1's theme.
This uses a previously unused S6 flag to save this option persistently.
This should not make S6 import much harder, but should reduce the amount of questions about S4 import.
Also refactor the checks whether the user can ask money for rides or entry. This should make it a lot easier
when our own save format comes around.