mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-25 01:20:37 +00:00
pass lambdas to functions by reference, not by value zenorogue/hyperrogue#25
This commit is contained in:
parent
c23d893df2
commit
520e5e5dbb
2
game.cpp
2
game.cpp
@ -3892,7 +3892,7 @@ int pickDownDirection(cell *c, flagtype mf) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
cell *determinePush(cellwalker who, cell *c2, int subdir, T valid) {
|
cell *determinePush(cellwalker who, cell *c2, int subdir, const T& valid) {
|
||||||
if(subdir != 1 && subdir != -1) {
|
if(subdir != 1 && subdir != -1) {
|
||||||
subdir = 1;
|
subdir = 1;
|
||||||
static bool first = true;
|
static bool first = true;
|
||||||
|
@ -48,7 +48,7 @@ bool test_uniq(cellwalker cw, int z, int lev, cell *par) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class T> void recursively(cell *c, cell *c1, T t) {
|
template<class T> void recursively(cell *c, cell *c1, const T& t) {
|
||||||
t(c);
|
t(c);
|
||||||
for(int i=0; i<c->type; i++)
|
for(int i=0; i<c->type; i++)
|
||||||
if(c->mov[i] && c->spin(i) == 0 && c->mov[i] != c1)
|
if(c->mov[i] && c->spin(i) == 0 && c->mov[i] != c1)
|
||||||
|
@ -1619,7 +1619,7 @@ string cname() {
|
|||||||
return "coord-67.txt";
|
return "coord-67.txt";
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class T> function<void(presmode)> roguevizslide(char c, T t) {
|
template<class T> function<void(presmode)> roguevizslide(char c, const T& t) {
|
||||||
return [c,t] (presmode mode) {
|
return [c,t] (presmode mode) {
|
||||||
patterns::canvasback = 0x101010;
|
patterns::canvasback = 0x101010;
|
||||||
setCanvas(mode, c);
|
setCanvas(mode, c);
|
||||||
@ -1638,7 +1638,8 @@ template<class T> function<void(presmode)> roguevizslide(char c, T t) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class T, class T1> function<void(presmode)> roguevizslide_action(char c, T t, T1 act) {
|
template<class T, class U>
|
||||||
|
function<void(presmode)> roguevizslide_action(char c, const T& t, const U& act) {
|
||||||
return [c,t,act] (presmode mode) {
|
return [c,t,act] (presmode mode) {
|
||||||
patterns::canvasback = 0x101010;
|
patterns::canvasback = 0x101010;
|
||||||
setCanvas(mode, c);
|
setCanvas(mode, c);
|
||||||
|
Loading…
Reference in New Issue
Block a user