mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-24 17:10:36 +00:00
line animation:: loops in quotient spaces
This commit is contained in:
parent
44890b4fb2
commit
770fb1f5e1
@ -301,7 +301,7 @@ namespace conformal {
|
|||||||
|
|
||||||
void create(cell *start, cell *target, transmatrix last) {
|
void create(cell *start, cell *target, transmatrix last) {
|
||||||
|
|
||||||
if(target == start) {
|
if(target == start && !(quotient && isize(path_for_lineanimation) > 1)) {
|
||||||
addMessage("Must go a distance from the starting point");
|
addMessage("Must go a distance from the starting point");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -362,9 +362,9 @@ namespace conformal {
|
|||||||
create(currentmap->gamestart(), cwt.at, Id);
|
create(currentmap->gamestart(), cwt.at, Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void create_recenter_to_view() {
|
void create_recenter_to_view(bool precise) {
|
||||||
cell *c = centerover.at ? centerover.at : cwt.at;
|
cell *c = centerover.at ? centerover.at : cwt.at;
|
||||||
create(path_for_lineanimation[0], c, inverse(ggmatrix(c)));
|
create(path_for_lineanimation[0], c, precise ? inverse(ggmatrix(c)) : Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
transmatrix rotmatrix() {
|
transmatrix rotmatrix() {
|
||||||
@ -1066,6 +1066,7 @@ namespace conformal {
|
|||||||
|
|
||||||
dialog::addBoolItem(XLAT("animate from start to current player position"), (on), 'e');
|
dialog::addBoolItem(XLAT("animate from start to current player position"), (on), 'e');
|
||||||
dialog::addBoolItem(XLAT("animate from last recenter to current view"), (on), 'E');
|
dialog::addBoolItem(XLAT("animate from last recenter to current view"), (on), 'E');
|
||||||
|
dialog::addBoolItem(XLAT("animate from last recenter to precise current view"), (on), 'E'-64);
|
||||||
if(on) dialog::addSelItem(XLAT("animation speed"), fts(lvspeed), 'a');
|
if(on) dialog::addSelItem(XLAT("animation speed"), fts(lvspeed), 'a');
|
||||||
else dialog::addBreak(100);
|
else dialog::addBreak(100);
|
||||||
dialog::addSelItem(XLAT("extend the ends"), fts(extra_line_steps), 'p');
|
dialog::addSelItem(XLAT("extend the ends"), fts(extra_line_steps), 'p');
|
||||||
@ -1093,7 +1094,7 @@ namespace conformal {
|
|||||||
void handleKeyC(int sym, int uni) {
|
void handleKeyC(int sym, int uni) {
|
||||||
dialog::handleNavigation(sym, uni);
|
dialog::handleNavigation(sym, uni);
|
||||||
|
|
||||||
if(uni == 'e' || uni == 'E') {
|
if(uni == 'e' || uni == 'E' || uni == 'E'-64) {
|
||||||
if(on) clear();
|
if(on) clear();
|
||||||
else {
|
else {
|
||||||
if(canmove && !cheater) {
|
if(canmove && !cheater) {
|
||||||
@ -1101,7 +1102,8 @@ namespace conformal {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(canmove && cheater) cheater++;
|
if(canmove && cheater) cheater++;
|
||||||
if(uni == 'E') create_recenter_to_view();
|
if(uni == 'E') create_recenter_to_view(false);
|
||||||
|
else if(uni == 'E'-64) create_recenter_to_view(true);
|
||||||
else create_playerpath();
|
else create_playerpath();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
2
hyper.h
2
hyper.h
@ -1497,7 +1497,7 @@ namespace conformal {
|
|||||||
|
|
||||||
void create(cell *start, cell *target);
|
void create(cell *start, cell *target);
|
||||||
void create_playerpath();
|
void create_playerpath();
|
||||||
void create_recenter_to_view();
|
void create_recenter_to_view(bool precise);
|
||||||
void clear();
|
void clear();
|
||||||
void model_menu();
|
void model_menu();
|
||||||
void history_menu();
|
void history_menu();
|
||||||
|
Loading…
Reference in New Issue
Block a user