summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralberth <alberth@openttd.org>2015-11-20 10:04:28 +0000
committeralberth <alberth@openttd.org>2015-11-20 10:04:28 +0000
commite9f12d666d6fe58563167ba8d45bc164c36802ed (patch)
tree77c445121ef2b4f5147096b9b82845984b771166
parent3ccfc954f3ff99af58732b69a185ea77d5c03060 (diff)
downloadopenttd-e9f12d666d6fe58563167ba8d45bc164c36802ed.tar.xz
(svn r27451) -Feature[FS#6241]: Move sprite 8 positions in sprite aligner with ctrl+click. (based on work by juzza1)
-rw-r--r--src/lang/english.txt2
-rw-r--r--src/newgrf_debug_gui.cpp9
2 files changed, 6 insertions, 5 deletions
diff --git a/src/lang/english.txt b/src/lang/english.txt
index ad29b3d59..0bd430bad 100644
--- a/src/lang/english.txt
+++ b/src/lang/english.txt
@@ -2874,7 +2874,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Go to th
STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Previous sprite
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Proceed to the previous normal sprite, skipping any pseudo/recolour/font sprites and wrapping around from the first sprite to the last
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representation of the currently selected sprite. The alignment is ignored when drawing this sprite
-STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move the sprite around, changing the X and Y offsets
+STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move the sprite around, changing the X and Y offsets. Ctrl+Click to move the sprite eight units at a time
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Reset relative
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Reset the current relative offsets
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X offset: {NUM}, Y offset: {NUM} (Absolute)
diff --git a/src/newgrf_debug_gui.cpp b/src/newgrf_debug_gui.cpp
index 0074af218..75b06967f 100644
--- a/src/newgrf_debug_gui.cpp
+++ b/src/newgrf_debug_gui.cpp
@@ -972,10 +972,11 @@ struct SpriteAlignerWindow : Window {
this->offs_start_map.Insert(this->current_sprite, XyOffs(spr->x_offs, spr->y_offs));
}
switch (widget) {
- case WID_SA_UP: spr->y_offs--; break;
- case WID_SA_DOWN: spr->y_offs++; break;
- case WID_SA_LEFT: spr->x_offs--; break;
- case WID_SA_RIGHT: spr->x_offs++; break;
+ /* Move ten units at a time if ctrl is pressed. */
+ case WID_SA_UP: spr->y_offs -= _ctrl_pressed ? 8 : 1; break;
+ case WID_SA_DOWN: spr->y_offs += _ctrl_pressed ? 8 : 1; break;
+ case WID_SA_LEFT: spr->x_offs -= _ctrl_pressed ? 8 : 1; break;
+ case WID_SA_RIGHT: spr->x_offs += _ctrl_pressed ? 8 : 1; break;
}
/* Of course, we need to redraw the sprite, but where is it used?
* Everywhere is a safe bet. */