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",