diff --git a/desktop_version/fonts/font.fontmeta b/desktop_version/fonts/font.fontmeta
index 8a5a4366..e4117f33 100644
--- a/desktop_version/fonts/font.fontmeta
+++ b/desktop_version/fonts/font.fontmeta
@@ -56,7 +56,6 @@
-
diff --git a/desktop_version/lang/ca/cutscenes.xml b/desktop_version/lang/ca/cutscenes.xml
index 0d1a9d41..5d3e1406 100644
--- a/desktop_version/lang/ca/cutscenes.xml
+++ b/desktop_version/lang/ca/cutscenes.xml
@@ -365,7 +365,7 @@
-
+
diff --git a/desktop_version/lang/cy/cutscenes.xml b/desktop_version/lang/cy/cutscenes.xml
index 4b6eb708..4363af86 100644
--- a/desktop_version/lang/cy/cutscenes.xml
+++ b/desktop_version/lang/cy/cutscenes.xml
@@ -365,7 +365,7 @@
-
+
diff --git a/desktop_version/lang/de/cutscenes.xml b/desktop_version/lang/de/cutscenes.xml
index 4aef05cb..12fe310f 100644
--- a/desktop_version/lang/de/cutscenes.xml
+++ b/desktop_version/lang/de/cutscenes.xml
@@ -365,7 +365,7 @@
-
+
diff --git a/desktop_version/lang/de/strings.xml b/desktop_version/lang/de/strings.xml
index 7f754558..8441a393 100644
--- a/desktop_version/lang/de/strings.xml
+++ b/desktop_version/lang/de/strings.xml
@@ -69,7 +69,7 @@
-
+
diff --git a/desktop_version/lang/en/cutscenes.xml b/desktop_version/lang/en/cutscenes.xml
index fec382e6..919528ca 100644
--- a/desktop_version/lang/en/cutscenes.xml
+++ b/desktop_version/lang/en/cutscenes.xml
@@ -365,7 +365,7 @@
-
+
diff --git a/desktop_version/lang/eo/cutscenes.xml b/desktop_version/lang/eo/cutscenes.xml
index ec3784a7..b078ec14 100644
--- a/desktop_version/lang/eo/cutscenes.xml
+++ b/desktop_version/lang/eo/cutscenes.xml
@@ -365,7 +365,7 @@
-
+
diff --git a/desktop_version/lang/es/cutscenes.xml b/desktop_version/lang/es/cutscenes.xml
index ef0d015d..e29dd25b 100644
--- a/desktop_version/lang/es/cutscenes.xml
+++ b/desktop_version/lang/es/cutscenes.xml
@@ -365,7 +365,7 @@
-
+
diff --git a/desktop_version/lang/es/meta.xml b/desktop_version/lang/es/meta.xml
index 0d5b33ea..01582715 100644
--- a/desktop_version/lang/es/meta.xml
+++ b/desktop_version/lang/es/meta.xml
@@ -3,7 +3,7 @@
1
- español
+ español (es)
Traducción al español de Felipe Mercader y Sara Marín
diff --git a/desktop_version/lang/es/strings.xml b/desktop_version/lang/es/strings.xml
index 4a80fb06..7254dacf 100644
--- a/desktop_version/lang/es/strings.xml
+++ b/desktop_version/lang/es/strings.xml
@@ -220,7 +220,7 @@
-
+
diff --git a/desktop_version/lang/fr/cutscenes.xml b/desktop_version/lang/fr/cutscenes.xml
index 35685308..f76cbe45 100644
--- a/desktop_version/lang/fr/cutscenes.xml
+++ b/desktop_version/lang/fr/cutscenes.xml
@@ -365,7 +365,7 @@
-
+
diff --git a/desktop_version/lang/ga/cutscenes.xml b/desktop_version/lang/ga/cutscenes.xml
index 0f58c472..2f8c8346 100644
--- a/desktop_version/lang/ga/cutscenes.xml
+++ b/desktop_version/lang/ga/cutscenes.xml
@@ -365,7 +365,7 @@
-
+
diff --git a/desktop_version/lang/it/cutscenes.xml b/desktop_version/lang/it/cutscenes.xml
index 5ca0bbb9..e4e16146 100644
--- a/desktop_version/lang/it/cutscenes.xml
+++ b/desktop_version/lang/it/cutscenes.xml
@@ -365,7 +365,7 @@
-
+
diff --git a/desktop_version/lang/it/strings.xml b/desktop_version/lang/it/strings.xml
index 1e195961..613821a9 100644
--- a/desktop_version/lang/it/strings.xml
+++ b/desktop_version/lang/it/strings.xml
@@ -207,8 +207,8 @@
-
-
+
+
diff --git a/desktop_version/lang/ja/cutscenes.xml b/desktop_version/lang/ja/cutscenes.xml
index 0936258b..c6c15b29 100644
--- a/desktop_version/lang/ja/cutscenes.xml
+++ b/desktop_version/lang/ja/cutscenes.xml
@@ -518,7 +518,7 @@
-
diff --git a/desktop_version/lang/ja/strings.xml b/desktop_version/lang/ja/strings.xml
index 80cba666..97a9d86d 100644
--- a/desktop_version/lang/ja/strings.xml
+++ b/desktop_version/lang/ja/strings.xml
@@ -347,7 +347,7 @@ Sランク以上を獲得" explanation="ranks are B A S V, see below" max="38*3"
-
+
diff --git a/desktop_version/lang/ko/cutscenes.xml b/desktop_version/lang/ko/cutscenes.xml
index 166e44e5..ae190cfa 100755
--- a/desktop_version/lang/ko/cutscenes.xml
+++ b/desktop_version/lang/ko/cutscenes.xml
@@ -365,7 +365,7 @@
-
+
diff --git a/desktop_version/lang/ko/graphics/flipsprites.png b/desktop_version/lang/ko/graphics/flipsprites.png
index 22b2671a..2cb1e46e 100644
Binary files a/desktop_version/lang/ko/graphics/flipsprites.png and b/desktop_version/lang/ko/graphics/flipsprites.png differ
diff --git a/desktop_version/lang/ko/graphics/sprites.png b/desktop_version/lang/ko/graphics/sprites.png
index fe9f735f..6d5cbb20 100644
Binary files a/desktop_version/lang/ko/graphics/sprites.png and b/desktop_version/lang/ko/graphics/sprites.png differ
diff --git a/desktop_version/lang/nl/cutscenes.xml b/desktop_version/lang/nl/cutscenes.xml
index b2a64163..2aac9824 100644
--- a/desktop_version/lang/nl/cutscenes.xml
+++ b/desktop_version/lang/nl/cutscenes.xml
@@ -2,7 +2,7 @@
-
+
@@ -11,7 +11,7 @@
-
+
@@ -26,7 +26,7 @@
-
+
@@ -365,7 +365,7 @@
-
+
@@ -687,7 +687,7 @@ Weet u heel zeker dat u dit wilt doen?"/>
DIMENSIONAL STABILISER OFFLINE" translation="-= WAARSCHUWING =-
DIMENSIONALE STABILISATOR INACTIEF" centertext="1" pad="1"/>
-
+
diff --git a/desktop_version/lang/nl/strings.xml b/desktop_version/lang/nl/strings.xml
index 59b7b94e..8240c199 100644
--- a/desktop_version/lang/nl/strings.xml
+++ b/desktop_version/lang/nl/strings.xml
@@ -494,7 +494,7 @@
-
+
diff --git a/desktop_version/lang/pl/cutscenes.xml b/desktop_version/lang/pl/cutscenes.xml
index 6e2d7866..a5954ff0 100644
--- a/desktop_version/lang/pl/cutscenes.xml
+++ b/desktop_version/lang/pl/cutscenes.xml
@@ -365,7 +365,7 @@
-
+
diff --git a/desktop_version/lang/pl/roomnames.xml b/desktop_version/lang/pl/roomnames.xml
index 746622a5..0ea8a099 100644
--- a/desktop_version/lang/pl/roomnames.xml
+++ b/desktop_version/lang/pl/roomnames.xml
@@ -125,7 +125,7 @@
-
+
diff --git a/desktop_version/lang/pt_BR/cutscenes.xml b/desktop_version/lang/pt_BR/cutscenes.xml
index c1fdb2b5..57e5fe65 100644
--- a/desktop_version/lang/pt_BR/cutscenes.xml
+++ b/desktop_version/lang/pt_BR/cutscenes.xml
@@ -365,7 +365,7 @@
-
+
diff --git a/desktop_version/lang/pt_PT/cutscenes.xml b/desktop_version/lang/pt_PT/cutscenes.xml
index cce8e786..166f5b71 100644
--- a/desktop_version/lang/pt_PT/cutscenes.xml
+++ b/desktop_version/lang/pt_PT/cutscenes.xml
@@ -365,7 +365,7 @@
-
+
diff --git a/desktop_version/lang/ru/cutscenes.xml b/desktop_version/lang/ru/cutscenes.xml
index be21f64b..c8ac5bb8 100644
--- a/desktop_version/lang/ru/cutscenes.xml
+++ b/desktop_version/lang/ru/cutscenes.xml
@@ -365,7 +365,7 @@
-
+
diff --git a/desktop_version/lang/szl/cutscenes.xml b/desktop_version/lang/szl/cutscenes.xml
index 43319438..da49af34 100644
--- a/desktop_version/lang/szl/cutscenes.xml
+++ b/desktop_version/lang/szl/cutscenes.xml
@@ -365,7 +365,7 @@
-
+
diff --git a/desktop_version/lang/tr/cutscenes.xml b/desktop_version/lang/tr/cutscenes.xml
index 99c5cd62..c64fba79 100644
--- a/desktop_version/lang/tr/cutscenes.xml
+++ b/desktop_version/lang/tr/cutscenes.xml
@@ -365,7 +365,7 @@
-
+
diff --git a/desktop_version/lang/tr/graphics/flipsprites.png b/desktop_version/lang/tr/graphics/flipsprites.png
index 9c7ca723..625bca5b 100644
Binary files a/desktop_version/lang/tr/graphics/flipsprites.png and b/desktop_version/lang/tr/graphics/flipsprites.png differ
diff --git a/desktop_version/lang/tr/graphics/sprites.png b/desktop_version/lang/tr/graphics/sprites.png
index 765075c7..593c7a39 100644
Binary files a/desktop_version/lang/tr/graphics/sprites.png and b/desktop_version/lang/tr/graphics/sprites.png differ
diff --git a/desktop_version/lang/uk/cutscenes.xml b/desktop_version/lang/uk/cutscenes.xml
index 6ef13bef..6a1ce392 100644
--- a/desktop_version/lang/uk/cutscenes.xml
+++ b/desktop_version/lang/uk/cutscenes.xml
@@ -365,7 +365,7 @@
-
+
diff --git a/desktop_version/lang/zh/cutscenes.xml b/desktop_version/lang/zh/cutscenes.xml
index dff797c0..d028de2d 100644
--- a/desktop_version/lang/zh/cutscenes.xml
+++ b/desktop_version/lang/zh/cutscenes.xml
@@ -381,7 +381,7 @@
-
+
diff --git a/desktop_version/lang/zh_TW/cutscenes.xml b/desktop_version/lang/zh_TW/cutscenes.xml
index 95332b35..eea819b7 100644
--- a/desktop_version/lang/zh_TW/cutscenes.xml
+++ b/desktop_version/lang/zh_TW/cutscenes.xml
@@ -381,7 +381,7 @@
-
+
diff --git a/desktop_version/src/ButtonGlyphs.cpp b/desktop_version/src/ButtonGlyphs.cpp
index 6a2801f9..b04ecc0e 100644
--- a/desktop_version/src/ButtonGlyphs.cpp
+++ b/desktop_version/src/ButtonGlyphs.cpp
@@ -178,14 +178,31 @@ void BUTTONGLYPHS_keyboard_set_active(bool active)
keyboard_is_active = active;
}
-void BUTTONGLYPHS_update_layout(Uint16 vendor, Uint16 product)
+void BUTTONGLYPHS_update_layout(SDL_GameController *c)
{
+ Uint16 vendor = SDL_GameControllerGetVendor(c);
+ Uint16 product = SDL_GameControllerGetProduct(c);
+
if (vendor == 0x054c)
{
layout = LAYOUT_PLAYSTATION;
}
else if (vendor == 0x28de)
{
+ /* Steam Virtual Gamepads can hypothetically tell us that the physical
+ * device is a PlayStation controller, so try to catch that scenario */
+ const char *mapping = SDL_GameControllerMapping(c);
+ if (SDL_strstr(mapping, "type:") != NULL)
+ {
+ SDL_GameControllerType gct = SDL_GameControllerGetType(c);
+ if ( gct == SDL_CONTROLLER_TYPE_PS3 ||
+ gct == SDL_CONTROLLER_TYPE_PS4 ||
+ gct == SDL_CONTROLLER_TYPE_PS5 )
+ {
+ layout = LAYOUT_PLAYSTATION;
+ return;
+ }
+ }
layout = LAYOUT_DECK;
}
else if (vendor == 0x057e)
diff --git a/desktop_version/src/ButtonGlyphs.h b/desktop_version/src/ButtonGlyphs.h
index 223dd86c..bef8f805 100644
--- a/desktop_version/src/ButtonGlyphs.h
+++ b/desktop_version/src/ButtonGlyphs.h
@@ -17,7 +17,7 @@ bool BUTTONGLYPHS_keyboard_is_available(void);
bool BUTTONGLYPHS_keyboard_is_active(void);
void BUTTONGLYPHS_keyboard_set_active(bool active);
-void BUTTONGLYPHS_update_layout(Uint16 vendor, Uint16 product);
+void BUTTONGLYPHS_update_layout(SDL_GameController *c);
const char* BUTTONGLYPHS_get_wasd_text(void);
const char* BUTTONGLYPHS_get_button(ActionSet actionset, Action action, int binding);
diff --git a/desktop_version/src/Editor.cpp b/desktop_version/src/Editor.cpp
index 125ada23..55c70583 100644
--- a/desktop_version/src/Editor.cpp
+++ b/desktop_version/src/Editor.cpp
@@ -259,13 +259,13 @@ editorclass::editorclass(void)
register_tilecol(EditorTileset_OUTSIDE, 6, "basic", 498, "outside", 698);
register_tilecol(EditorTileset_OUTSIDE, 7, "basic", 501, "outside", 701);
- register_tilecol(EditorTileset_LAB, 0, "lab_cyan", 280, "none", 0);
- register_tilecol(EditorTileset_LAB, 1, "lab_red", 283, "none", 0);
- register_tilecol(EditorTileset_LAB, 2, "lab_pink", 286, "none", 0);
- register_tilecol(EditorTileset_LAB, 3, "basic", 289, "none", 0);
- register_tilecol(EditorTileset_LAB, 4, "lab_yellow", 292, "none", 0);
- register_tilecol(EditorTileset_LAB, 5, "lab_green", 295, "none", 0);
- register_tilecol(EditorTileset_LAB, 6, "none", 0, "none", 0, true);
+ register_tilecol(EditorTileset_LAB, 0, "lab_cyan", 280, "none", 713);
+ register_tilecol(EditorTileset_LAB, 1, "lab_red", 283, "none", 713);
+ register_tilecol(EditorTileset_LAB, 2, "lab_pink", 286, "none", 713);
+ register_tilecol(EditorTileset_LAB, 3, "basic", 289, "none", 713);
+ register_tilecol(EditorTileset_LAB, 4, "lab_yellow", 292, "none", 713);
+ register_tilecol(EditorTileset_LAB, 5, "lab_green", 295, "none", 713);
+ register_tilecol(EditorTileset_LAB, 6, "none", 0, "none", 713, true);
register_tilecol(EditorTileset_WARP_ZONE, 0, "basic", 80, "none", 120);
register_tilecol(EditorTileset_WARP_ZONE, 1, "basic", 83, "none", 123);
@@ -4017,8 +4017,48 @@ bool editorclass::lines_can_pass(int x, int y)
return false;
}
+void editorclass::make_autotiling_base(void)
+{
+ if (cl.getroomprop(levx, levy)->directmode == 1)
+ {
+ return;
+ }
+
+ for (int i = 0; i < SCREEN_WIDTH_TILES * SCREEN_HEIGHT_TILES; i++)
+ {
+ int tile_x = i % SCREEN_WIDTH_TILES;
+ int tile_y = i / SCREEN_WIDTH_TILES;
+ int tile = get_tile(tile_x, tile_y);
+
+ if (tile == 0)
+ {
+ continue;
+ }
+
+ TileTypes type = get_tile_type(tile_x, tile_y, false);
+
+ switch (type)
+ {
+ case TileType_NONSOLID:
+ if (type == TileType_NONSOLID || is_warp_zone_background(tile))
+ {
+ set_tile(tile_x, tile_y, 2);
+ }
+ break;
+ case TileType_SOLID:
+ set_tile(tile_x, tile_y, 1);
+ break;
+ case TileType_SPIKE:
+ set_tile(tile_x, tile_y, 6);
+ break;
+ }
+ }
+}
+
void editorclass::switch_tileset(const bool reversed)
{
+ make_autotiling_base();
+
int tiles = cl.getroomprop(levx, levy)->tileset;
if (reversed)
@@ -4052,6 +4092,8 @@ void editorclass::switch_tileset(const bool reversed)
void editorclass::switch_tilecol(const bool reversed)
{
+ make_autotiling_base();
+
int tilecol = cl.getroomprop(levx, levy)->tilecol;
if (reversed)
diff --git a/desktop_version/src/Editor.h b/desktop_version/src/Editor.h
index 149cb005..f0f879db 100644
--- a/desktop_version/src/Editor.h
+++ b/desktop_version/src/Editor.h
@@ -177,6 +177,8 @@ public:
bool lines_can_pass(int x, int y);
+ void make_autotiling_base(void);
+
int get_enemy_tile(int t);
void switch_tileset(const bool reversed);
diff --git a/desktop_version/src/Game.cpp b/desktop_version/src/Game.cpp
index 8a0e5194..8d5ea50e 100644
--- a/desktop_version/src/Game.cpp
+++ b/desktop_version/src/Game.cpp
@@ -2881,6 +2881,7 @@ void Game::updatestate(void)
graphics.createtextboxflipme(loc::gettext("All Crew Members Rescued!"), -1, 64, TEXT_COLOUR("transparent"));
graphics.textboxprintflags(PR_FONT_INTERFACE);
+ graphics.textboxcenterx();
char buffer[SCREEN_WIDTH_CHARS + 1];
timestringcenti(buffer, sizeof(buffer));
savetime = buffer;
@@ -2956,11 +2957,13 @@ void Game::updatestate(void)
);
graphics.createtextboxflipme(buffer, -1, 158, TEXT_COLOUR("transparent"));
graphics.textboxprintflags(PR_FONT_INTERFACE);
+ graphics.textboxcenterx();
graphics.createtextboxflipme(
loc::gettext_roomname(map.custommode, hardestroom_x, hardestroom_y, hardestroom.c_str(), hardestroom_specialname),
-1, 170, TEXT_COLOUR("transparent")
);
graphics.textboxprintflags(PR_FONT_INTERFACE);
+ graphics.textboxcenterx();
break;
}
case 3508:
diff --git a/desktop_version/src/KeyPoll.cpp b/desktop_version/src/KeyPoll.cpp
index d2224881..ec6bf094 100644
--- a/desktop_version/src/KeyPoll.cpp
+++ b/desktop_version/src/KeyPoll.cpp
@@ -280,10 +280,7 @@ void KeyPoll::Poll(void)
BUTTONGLYPHS_keyboard_set_active(false);
controller = controllers[evt.cbutton.which];
- BUTTONGLYPHS_update_layout(
- SDL_GameControllerGetVendor(controller),
- SDL_GameControllerGetProduct(controller)
- );
+ BUTTONGLYPHS_update_layout(controller);
break;
case SDL_CONTROLLERBUTTONUP:
buttonmap[(SDL_GameControllerButton) evt.cbutton.button] = false;
@@ -319,10 +316,7 @@ void KeyPoll::Poll(void)
BUTTONGLYPHS_keyboard_set_active(false);
controller = controllers[evt.caxis.which];
- BUTTONGLYPHS_update_layout(
- SDL_GameControllerGetVendor(controller),
- SDL_GameControllerGetProduct(controller)
- );
+ BUTTONGLYPHS_update_layout(controller);
break;
}
case SDL_CONTROLLERDEVICEADDED:
@@ -335,10 +329,7 @@ void KeyPoll::Poll(void)
);
controllers[SDL_JoystickInstanceID(SDL_GameControllerGetJoystick(controller))] = controller;
BUTTONGLYPHS_keyboard_set_active(false);
- BUTTONGLYPHS_update_layout(
- SDL_GameControllerGetVendor(controller),
- SDL_GameControllerGetProduct(controller)
- );
+ BUTTONGLYPHS_update_layout(controller);
break;
}
case SDL_CONTROLLERDEVICEREMOVED:
diff --git a/desktop_version/src/Scripts.cpp b/desktop_version/src/Scripts.cpp
index cf82c79c..18f1984c 100644
--- a/desktop_version/src/Scripts.cpp
+++ b/desktop_version/src/Scripts.cpp
@@ -4598,7 +4598,7 @@ bool scriptclass::load(const std::string& name)
"squeak(purple)",
"changemood(purple,0)",
"text(purple,0,0,2)",
- "If you can find him, he'd be a",
+ "If you can find him, he'd be",
"a big help fixing the ship!",
"position(purple,above)",
"speak_active",