Files
6218d1bf22 Turns the widescreen toggle into a dropdown featuring 15x15, 19x15, and (the new) 21x15. (#5166)
## About The Pull Request
Makes you able to see one extra tile to the left/right, making it feel
as if you have a wider screen. But you can also keep the original 19x15
if you want.
## Why It's Good For The Game
I feel like it looks better? Less square? Mode modern and widescreen?
idk. I feel like people will generally like this.

If you think it doesn't look better? stick with 19x15, the choice is
yours.

<details>
<summary>Before</summary>
<img width="1258" height="989" alt="afbeelding"
src="https://github.com/user-attachments/assets/3a7b259c-bd22-4fbd-94f5-6257d2c13772"
/>
</details>
<details>
<summary>After</summary>
<img width="1384" height="989" alt="afbeelding"
src="https://github.com/user-attachments/assets/bdebd573-4920-4cc1-b7be-9d99ef961062"
/>
</details>

## Proof Of Testing
With chatbar because someone told me they were worried the chatbox would
be too small with the change
<details>
<summary>After with chatbar</summary>
<img width="1920" height="1080" alt="afbeelding"
src="https://github.com/user-attachments/assets/55ca42ae-391d-4d38-9069-730669f53c9a"
/>
</details>
<details>
<summary>Before with chatbar</summary>
<img width="1919" height="1030" alt="afbeelding"
src="https://github.com/user-attachments/assets/34b443ea-ffaa-49b7-97d4-baef56f67f01"
/>
</details>

## Changelog
🆑
add: There's a new widescreen dropdown within game preferences, letting
you pick between 15x15 (4x3), 19x15 (widescreen), and 21x15 (ultrawide)
/🆑

---------

Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
2026-01-23 18:31:11 -08:00

30 lines
890 B
Plaintext

// Replaces the toggle preference with a dropdown
/datum/preference/choiced/widescreen
category = PREFERENCE_CATEGORY_GAME_PREFERENCES
savefile_key = "viewport_size"
savefile_identifier = PREFERENCE_PLAYER
/datum/preference/choiced/widescreen/init_possible_values()
return list(
SQUARE_VIEWPORT_SIZE,
WIDESCREEN_VIEWPORT_SIZE,
EXTRAWIDESCREEN_VIEWPORT_SIZE,
)
/datum/preference/choiced/widescreen/create_default_value()
return WIDESCREEN_VIEWPORT_SIZE
/datum/preference/choiced/widescreen/compile_constant_data()
var/list/data = ..()
data[CHOICED_PREFERENCE_DISPLAY_NAMES] = list(
SQUARE_VIEWPORT_SIZE = "Square (15x15)",
WIDESCREEN_VIEWPORT_SIZE = "Widescreen (19x15)",
EXTRAWIDESCREEN_VIEWPORT_SIZE = "Ultrawide (21x15)",
)
return data
/datum/preference/choiced/widescreen/apply_to_client(client/client, value)
client.view_size?.setDefault(VIEWPORT_USE_PREF)