diff --git a/desktop_version/lang/ar/strings.xml b/desktop_version/lang/ar/strings.xml
index dc4ab172..3788d484 100644
--- a/desktop_version/lang/ar/strings.xml
+++ b/desktop_version/lang/ar/strings.xml
@@ -630,6 +630,7 @@
+
diff --git a/desktop_version/lang/ca/strings.xml b/desktop_version/lang/ca/strings.xml
index 9067a50d..9e4d58ed 100644
--- a/desktop_version/lang/ca/strings.xml
+++ b/desktop_version/lang/ca/strings.xml
@@ -622,6 +622,7 @@
+
diff --git a/desktop_version/lang/cy/strings.xml b/desktop_version/lang/cy/strings.xml
index 75233e0a..3db5fbab 100644
--- a/desktop_version/lang/cy/strings.xml
+++ b/desktop_version/lang/cy/strings.xml
@@ -622,6 +622,7 @@
+
diff --git a/desktop_version/lang/de/strings.xml b/desktop_version/lang/de/strings.xml
index 8bc440f8..d08033a4 100644
--- a/desktop_version/lang/de/strings.xml
+++ b/desktop_version/lang/de/strings.xml
@@ -622,6 +622,7 @@
+
diff --git a/desktop_version/lang/en/strings.xml b/desktop_version/lang/en/strings.xml
index 86a4217f..5ce4803b 100644
--- a/desktop_version/lang/en/strings.xml
+++ b/desktop_version/lang/en/strings.xml
@@ -622,6 +622,7 @@
+
diff --git a/desktop_version/lang/eo/strings.xml b/desktop_version/lang/eo/strings.xml
index 6c085043..4884154b 100644
--- a/desktop_version/lang/eo/strings.xml
+++ b/desktop_version/lang/eo/strings.xml
@@ -622,6 +622,7 @@
+
diff --git a/desktop_version/lang/es/strings.xml b/desktop_version/lang/es/strings.xml
index 68c8a246..493b2b1e 100644
--- a/desktop_version/lang/es/strings.xml
+++ b/desktop_version/lang/es/strings.xml
@@ -622,6 +622,7 @@
+
diff --git a/desktop_version/lang/es_419/strings.xml b/desktop_version/lang/es_419/strings.xml
index 827a3b97..ea50cfc3 100644
--- a/desktop_version/lang/es_419/strings.xml
+++ b/desktop_version/lang/es_419/strings.xml
@@ -622,6 +622,7 @@
+
diff --git a/desktop_version/lang/es_AR/strings.xml b/desktop_version/lang/es_AR/strings.xml
index e2cdc457..ff360450 100644
--- a/desktop_version/lang/es_AR/strings.xml
+++ b/desktop_version/lang/es_AR/strings.xml
@@ -622,6 +622,7 @@
+
diff --git a/desktop_version/lang/fr/strings.xml b/desktop_version/lang/fr/strings.xml
index 411cc564..f074c748 100644
--- a/desktop_version/lang/fr/strings.xml
+++ b/desktop_version/lang/fr/strings.xml
@@ -622,6 +622,7 @@
+
diff --git a/desktop_version/lang/ga/strings.xml b/desktop_version/lang/ga/strings.xml
index cbdf9987..07168eb3 100644
--- a/desktop_version/lang/ga/strings.xml
+++ b/desktop_version/lang/ga/strings.xml
@@ -624,6 +624,7 @@ Déan cóip chúltaca, ar eagla na heagla." explanation="translation maintenance
+
diff --git a/desktop_version/lang/it/strings.xml b/desktop_version/lang/it/strings.xml
index f4798b2b..ca6cf2b3 100644
--- a/desktop_version/lang/it/strings.xml
+++ b/desktop_version/lang/it/strings.xml
@@ -622,6 +622,7 @@
+
diff --git a/desktop_version/lang/ja/strings.xml b/desktop_version/lang/ja/strings.xml
index f7fe0042..b1cdf6ac 100644
--- a/desktop_version/lang/ja/strings.xml
+++ b/desktop_version/lang/ja/strings.xml
@@ -658,6 +658,7 @@ Steam Deckには対応していません。" explanation="" max="38*5" max_local
+
diff --git a/desktop_version/lang/ko/strings.xml b/desktop_version/lang/ko/strings.xml
index e7b69f1f..443fc638 100755
--- a/desktop_version/lang/ko/strings.xml
+++ b/desktop_version/lang/ko/strings.xml
@@ -622,6 +622,7 @@
+
diff --git a/desktop_version/lang/nl/strings.xml b/desktop_version/lang/nl/strings.xml
index 6d1aeebc..10935c08 100644
--- a/desktop_version/lang/nl/strings.xml
+++ b/desktop_version/lang/nl/strings.xml
@@ -622,6 +622,7 @@
+
diff --git a/desktop_version/lang/pl/strings.xml b/desktop_version/lang/pl/strings.xml
index 059bd1ed..5a41019d 100644
--- a/desktop_version/lang/pl/strings.xml
+++ b/desktop_version/lang/pl/strings.xml
@@ -622,6 +622,7 @@
+
diff --git a/desktop_version/lang/pt_BR/strings.xml b/desktop_version/lang/pt_BR/strings.xml
index 0d084ab8..7d361b27 100644
--- a/desktop_version/lang/pt_BR/strings.xml
+++ b/desktop_version/lang/pt_BR/strings.xml
@@ -622,6 +622,7 @@
+
diff --git a/desktop_version/lang/pt_PT/strings.xml b/desktop_version/lang/pt_PT/strings.xml
index 3d24a84f..76b74963 100644
--- a/desktop_version/lang/pt_PT/strings.xml
+++ b/desktop_version/lang/pt_PT/strings.xml
@@ -622,6 +622,7 @@
+
diff --git a/desktop_version/lang/ru/strings.xml b/desktop_version/lang/ru/strings.xml
index 04c6476b..c09caf4b 100644
--- a/desktop_version/lang/ru/strings.xml
+++ b/desktop_version/lang/ru/strings.xml
@@ -647,6 +647,7 @@
+
diff --git a/desktop_version/lang/szl/strings.xml b/desktop_version/lang/szl/strings.xml
index 3eadda25..688ad9f8 100644
--- a/desktop_version/lang/szl/strings.xml
+++ b/desktop_version/lang/szl/strings.xml
@@ -622,6 +622,7 @@
+
diff --git a/desktop_version/lang/tr/strings.xml b/desktop_version/lang/tr/strings.xml
index c7cfdf82..681feb6d 100644
--- a/desktop_version/lang/tr/strings.xml
+++ b/desktop_version/lang/tr/strings.xml
@@ -622,6 +622,7 @@
+
diff --git a/desktop_version/lang/uk/strings.xml b/desktop_version/lang/uk/strings.xml
index dbfc81a9..fb6ae76d 100644
--- a/desktop_version/lang/uk/strings.xml
+++ b/desktop_version/lang/uk/strings.xml
@@ -622,6 +622,7 @@
+
diff --git a/desktop_version/lang/zh/strings.xml b/desktop_version/lang/zh/strings.xml
index d437c5ba..403405d7 100644
--- a/desktop_version/lang/zh/strings.xml
+++ b/desktop_version/lang/zh/strings.xml
@@ -632,6 +632,7 @@
+
diff --git a/desktop_version/lang/zh_TW/strings.xml b/desktop_version/lang/zh_TW/strings.xml
index 157c0cba..d78acc4b 100644
--- a/desktop_version/lang/zh_TW/strings.xml
+++ b/desktop_version/lang/zh_TW/strings.xml
@@ -632,6 +632,7 @@
+
diff --git a/desktop_version/src/CustomLevels.cpp b/desktop_version/src/CustomLevels.cpp
index 704bed37..347bff9a 100644
--- a/desktop_version/src/CustomLevels.cpp
+++ b/desktop_version/src/CustomLevels.cpp
@@ -57,6 +57,7 @@ RoomProperty::RoomProperty(void)
enemyx2=320;
enemyy2=240;
enemytype=0;
+ enemyv=0;
directmode=0;
}
@@ -389,6 +390,7 @@ void customlevelclass::reset(void)
roomproperties[i+(j*maxwidth)].enemyx2=320;
roomproperties[i+(j*maxwidth)].enemyy2=240;
roomproperties[i+(j*maxwidth)].enemytype=0;
+ roomproperties[i+(j*maxwidth)].enemyv=0;
roomproperties[i+(j*maxwidth)].directmode=0;
}
}
@@ -1264,6 +1266,7 @@ bool customlevelclass::load(std::string _path)
edLevelClassElement->QueryIntAttribute("enemyx2", &roomproperties[i].enemyx2);
edLevelClassElement->QueryIntAttribute("enemyy2", &roomproperties[i].enemyy2);
edLevelClassElement->QueryIntAttribute("enemytype", &roomproperties[i].enemytype);
+ edLevelClassElement->QueryIntAttribute("enemyv", &roomproperties[i].enemyv);
edLevelClassElement->QueryIntAttribute("directmode", &roomproperties[i].directmode);
edLevelClassElement->QueryIntAttribute("warpdir", &roomproperties[i].warpdir);
@@ -1645,6 +1648,7 @@ bool customlevelclass::save(const std::string& _path)
roompropertyElement->SetAttribute( "enemyx2", roomproperties[i].enemyx2);
roompropertyElement->SetAttribute( "enemyy2", roomproperties[i].enemyy2);
roompropertyElement->SetAttribute( "enemytype", roomproperties[i].enemytype);
+ roompropertyElement->SetAttribute( "enemyv", roomproperties[i].enemyv);
roompropertyElement->SetAttribute( "directmode", roomproperties[i].directmode);
roompropertyElement->SetAttribute( "warpdir", roomproperties[i].warpdir);
diff --git a/desktop_version/src/CustomLevels.h b/desktop_version/src/CustomLevels.h
index 97e3448d..b728d412 100644
--- a/desktop_version/src/CustomLevels.h
+++ b/desktop_version/src/CustomLevels.h
@@ -31,6 +31,7 @@ public:
FOREACH_PROP(enemyx2, int) \
FOREACH_PROP(enemyy2, int) \
FOREACH_PROP(enemytype, int) \
+ FOREACH_PROP(enemyv, int) \
FOREACH_PROP(directmode, int)
class RoomProperty
diff --git a/desktop_version/src/Editor.cpp b/desktop_version/src/Editor.cpp
index 322510bf..2a04509e 100644
--- a/desktop_version/src/Editor.cpp
+++ b/desktop_version/src/Editor.cpp
@@ -3096,12 +3096,22 @@ static void handle_draw_input()
const int room = ed.levx + ed.levy * cl.maxwidth;
const int plat_speed = cl.roomproperties[room].platv;
+ const int enemy_speed = cl.roomproperties[room].enemyv;
+ const bool ctrl = key.keymap[SDLK_LCTRL] || key.keymap[SDLK_RCTRL];
+ const bool shift = key.keymap[SDLK_LSHIFT] || key.keymap[SDLK_RSHIFT];
if (key.keymap[SDLK_COMMA])
{
- if (key.keymap[SDLK_LCTRL] || key.keymap[SDLK_RCTRL])
+ if (ctrl)
{
- cl.roomproperties[room].platv = plat_speed - 1;
+ if (shift)
+ {
+ cl.roomproperties[room].enemyv = enemy_speed - 1;
+ }
+ else
+ {
+ cl.roomproperties[room].platv = plat_speed - 1;
+ }
}
else
{
@@ -3111,9 +3121,16 @@ static void handle_draw_input()
}
else if (key.keymap[SDLK_PERIOD])
{
- if (key.keymap[SDLK_LCTRL] || key.keymap[SDLK_RCTRL])
+ if (ctrl)
{
- cl.roomproperties[room].platv = plat_speed + 1;
+ if (shift)
+ {
+ cl.roomproperties[room].enemyv = enemy_speed + 1;
+ }
+ else
+ {
+ cl.roomproperties[room].platv = plat_speed + 1;
+ }
}
else
{
@@ -3134,6 +3151,18 @@ static void handle_draw_input()
ed.show_note(buffer);
}
+ if (enemy_speed != cl.roomproperties[room].enemyv)
+ {
+ char buffer[3 * SCREEN_WIDTH_CHARS + 1];
+ vformat_buf(
+ buffer, sizeof(buffer),
+ loc::gettext("Enemy speed is now {speed}"),
+ "speed:int",
+ cl.roomproperties[room].enemyv + 4
+ );
+ ed.show_note(buffer);
+ }
+
if (key.keymap[SDLK_SPACE])
{
ed.toolbox_open = !ed.toolbox_open;
diff --git a/desktop_version/src/Map.cpp b/desktop_version/src/Map.cpp
index 747ebc38..ee7a904f 100644
--- a/desktop_version/src/Map.cpp
+++ b/desktop_version/src/Map.cpp
@@ -1850,7 +1850,7 @@ void mapclass::loadlevel(int rx, int ry)
{
case 1: // Enemies
obj.customenemy = room->enemytype;
- obj.createentity(ex, ey, 56, ent.p1, 4, bx1, by1, bx2, by2);
+ obj.createentity(ex, ey, 56, ent.p1, 4 + room->enemyv, bx1, by1, bx2, by2);
break;
case 2: // Platforms and conveyors
if (ent.p1 <= 4)