mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-25 01:20:37 +00:00
gp:: used 'char' which failed on Android where 'char' is unsigned. Fixed. Also improved Xprintf
This commit is contained in:
parent
b28c82b26b
commit
b294ec288d
@ -116,12 +116,12 @@ int main(int argc, char **argv) {
|
|||||||
int mx = 0; int my = 0; bool _clicked = false;
|
int mx = 0; int my = 0; bool _clicked = false;
|
||||||
|
|
||||||
inv::on = true;
|
inv::on = true;
|
||||||
firstland = laMinefield;
|
// firstland = laMinefield;
|
||||||
activateSafety(laWhirlwind);
|
// activateSafety(laWhirlwind);
|
||||||
|
|
||||||
items[itGreenStone] = 100;
|
items[itGreenStone] = 100;
|
||||||
items[itDiamond] = 50;
|
// items[itDiamond] = 50;
|
||||||
for(int i=1; i<10; i++) kills[i] = 5;
|
// for(int i=1; i<10; i++) kills[i] = 5;
|
||||||
|
|
||||||
while(true) {
|
while(true) {
|
||||||
|
|
||||||
|
48
goldberg.cpp
48
goldberg.cpp
@ -26,8 +26,8 @@ namespace gp {
|
|||||||
|
|
||||||
struct goldberg_mapping_t {
|
struct goldberg_mapping_t {
|
||||||
cellwalker cw;
|
cellwalker cw;
|
||||||
char rdir;
|
signed char rdir;
|
||||||
char mindir;
|
signed char mindir;
|
||||||
};
|
};
|
||||||
|
|
||||||
loc eudir(int d) {
|
loc eudir(int d) {
|
||||||
@ -163,7 +163,7 @@ namespace gp {
|
|||||||
if(peek(wcw)) {
|
if(peek(wcw)) {
|
||||||
auto wcw1 = get_localwalk(wc1, dir1);
|
auto wcw1 = get_localwalk(wc1, dir1);
|
||||||
if(wcw + wstep != wcw1) {
|
if(wcw + wstep != wcw1) {
|
||||||
WHD( printf("%s : %s / %s (pull error from %s :: %s)\n", disp(at1), dcw(wcw+wstep), dcw(wcw1), disp(at), dcw(wcw)); )
|
WHD( Xprintf("%s : %s / %s (pull error from %s :: %s)\n", disp(at1), dcw(wcw+wstep), dcw(wcw1), disp(at), dcw(wcw)); )
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -171,7 +171,7 @@ namespace gp {
|
|||||||
}
|
}
|
||||||
if(peek(wcw)) {
|
if(peek(wcw)) {
|
||||||
set_localwalk(wc1, dir1, wcw + wstep);
|
set_localwalk(wc1, dir1, wcw + wstep);
|
||||||
WHD( printf("%s : %s (pulled from %s :: %s)\n", disp(at1), dcw(wcw + wstep), disp(at), dcw(wcw)); )
|
WHD( Xprintf("%s : %s (pulled from %s :: %s)\n", disp(at1), dcw(wcw + wstep), disp(at), dcw(wcw)); )
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -181,10 +181,11 @@ namespace gp {
|
|||||||
auto& wc = get_mapping(at);
|
auto& wc = get_mapping(at);
|
||||||
auto wcw = get_localwalk(wc, dir);
|
auto wcw = get_localwalk(wc, dir);
|
||||||
auto& wc1 = get_mapping(at + eudir(dir));
|
auto& wc1 = get_mapping(at + eudir(dir));
|
||||||
WHD( printf(" connection %s/%d %s ~ %s/%d ", disp(at), dir, dcw(wc.cw+dir), disp(at+eudir(dir)), dir1); )
|
WHD( Xprintf(" md:%d s:%d", wc.mindir, wc.cw.spin); )
|
||||||
|
WHD( Xprintf(" connection %s/%d %s=%s ~ %s/%d ", disp(at), dir, dcw(wc.cw+dir), dcw(wcw), disp(at+eudir(dir)), dir1); )
|
||||||
if(!wc1.cw.c) {
|
if(!wc1.cw.c) {
|
||||||
if(peek(wcw)) {
|
if(peek(wcw)) {
|
||||||
WHD( printf("(pulled) "); )
|
WHD( Xprintf("(pulled) "); )
|
||||||
set_localwalk(wc1, dir1, wcw + wstep);
|
set_localwalk(wc1, dir1, wcw + wstep);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -192,25 +193,25 @@ namespace gp {
|
|||||||
tsetspin(wcw.c->spintable, wcw.spin, 0);
|
tsetspin(wcw.c->spintable, wcw.spin, 0);
|
||||||
set_localwalk(wc1, dir1, wcw + wstep);
|
set_localwalk(wc1, dir1, wcw + wstep);
|
||||||
spawn++;
|
spawn++;
|
||||||
WHD( printf("(created) "); )
|
WHD( Xprintf("(created) "); )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
WHD( printf("%s ", dcw(wc1.cw+dir1)); )
|
WHD( Xprintf("%s ", dcw(wc1.cw+dir1)); )
|
||||||
auto wcw1 = get_localwalk(wc1, dir1);
|
auto wcw1 = get_localwalk(wc1, dir1);
|
||||||
if(peek(wcw)) {
|
if(peek(wcw)) {
|
||||||
if(wcw+wstep != wcw1) {
|
if(wcw+wstep != wcw1) {
|
||||||
WHD( printf("FAIL: %s / %s\n", dcw(wcw), dcw(wcw1)); exit(1); )
|
WHD( Xprintf("FAIL: %s / %s\n", dcw(wcw), dcw(wcw1)); exit(1); )
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
WHD(printf("(was there)\n");)
|
WHD(Xprintf("(was there)\n");)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
WHD(printf("ok\n"); )
|
WHD(Xprintf("ok\n"); )
|
||||||
peek(wcw) = wcw1.c;
|
peek(wcw) = wcw1.c;
|
||||||
tsetspin(wcw.c->spintable, wcw.spin, wcw1.spin + (wcw.mirrored != wcw1.mirrored ? 8 : 0));
|
tsetspin(wcw.c->spintable, wcw.spin, wcw1.spin + (wcw.mirrored != wcw1.mirrored ? 8 : 0));
|
||||||
if(wcw+wstep != wcw1) {
|
if(wcw+wstep != wcw1) {
|
||||||
printf("assertion failed\n");
|
Xprintf("assertion failed\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -224,15 +225,15 @@ namespace gp {
|
|||||||
goldberg_mapping_t& set_heptspin(loc at, heptspin hs) {
|
goldberg_mapping_t& set_heptspin(loc at, heptspin hs) {
|
||||||
auto& ac0 = get_mapping(at);
|
auto& ac0 = get_mapping(at);
|
||||||
ac0.cw = cellwalker(hs.h->c7, hs.spin, hs.mirrored);
|
ac0.cw = cellwalker(hs.h->c7, hs.spin, hs.mirrored);
|
||||||
WHD( printf("%s : %s\n", disp(at), dcw(ac0.cw)); )
|
WHD( Xprintf("%s : %s\n", disp(at), dcw(ac0.cw)); )
|
||||||
return ac0;
|
return ac0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void extend_map(cell *c, int d) {
|
void extend_map(cell *c, int d) {
|
||||||
WHD( printf("EXTEND %p %d\n", c, d); )
|
WHD( Xprintf("EXTEND %p %d\n", c, d); )
|
||||||
if(c->master->c7 != c) {
|
if(c->master->c7 != c) {
|
||||||
while(c->master->c7 != c) {
|
while(c->master->c7 != c) {
|
||||||
WHD( printf("%p direction 0 corresponds to %p direction %d\n", c, c->mov[0], c->spin(0)); )
|
WHD( Xprintf("%p direction 0 corresponds to %p direction %d\n", c, c->mov[0], c->spin(0)); )
|
||||||
d = c->spin(0);
|
d = c->spin(0);
|
||||||
c = c->mov[0];
|
c = c->mov[0];
|
||||||
}
|
}
|
||||||
@ -260,6 +261,7 @@ namespace gp {
|
|||||||
auto& ac0 = set_heptspin(vc[0], hs);
|
auto& ac0 = set_heptspin(vc[0], hs);
|
||||||
ac0.mindir = -1;
|
ac0.mindir = -1;
|
||||||
auto& ac1 = set_heptspin(vc[1], hs + wstep - 3);
|
auto& ac1 = set_heptspin(vc[1], hs + wstep - 3);
|
||||||
|
ac1.mindir = 0;
|
||||||
auto& ac2 = set_heptspin(vc[2], hs + 1 + wstep - 4);
|
auto& ac2 = set_heptspin(vc[2], hs + 1 + wstep - 4);
|
||||||
ac2.mindir = 1;
|
ac2.mindir = 1;
|
||||||
|
|
||||||
@ -296,11 +298,11 @@ namespace gp {
|
|||||||
for(int i=0; i<3; i++) {
|
for(int i=0; i<3; i++) {
|
||||||
loc start = vc[i];
|
loc start = vc[i];
|
||||||
loc end = vc[(i+1)%3];
|
loc end = vc[(i+1)%3];
|
||||||
WHD( printf("from %s to %s\n", disp(start), disp(end)); )
|
WHD( Xprintf("from %s to %s\n", disp(start), disp(end)); )
|
||||||
loc rel = param;
|
loc rel = param;
|
||||||
auto build = [&] (loc& at, int dx, bool forward) {
|
auto build = [&] (loc& at, int dx, bool forward) {
|
||||||
int dx1 = dx + 2*i;
|
int dx1 = dx + 2*i;
|
||||||
WHD( printf("%s %d .. %s %d\n", disp(at), dx1, disp(at + eudir(dx1)), fix6(dx1+3)); )
|
WHD( Xprintf("%s %d .. %s %d\n", disp(at), dx1, disp(at + eudir(dx1)), fix6(dx1+3)); )
|
||||||
conn(at, dx1);
|
conn(at, dx1);
|
||||||
if(forward) get_mapping(at).rdir = fix6(dx1);
|
if(forward) get_mapping(at).rdir = fix6(dx1);
|
||||||
else get_mapping(at+eudir(dx1)).rdir = fix6(dx1+3);
|
else get_mapping(at+eudir(dx1)).rdir = fix6(dx1+3);
|
||||||
@ -330,7 +332,7 @@ namespace gp {
|
|||||||
for(int k=0; k<6; k++)
|
for(int k=0; k<6; k++)
|
||||||
if(start + eudir(k+2*i) == end)
|
if(start + eudir(k+2*i) == end)
|
||||||
build(start, k, true);
|
build(start, k, true);
|
||||||
if(start != end) { printf("assertion failed: start %s == end %s\n", disp(start), disp(end)); exit(1); }
|
if(start != end) { Xprintf("assertion failed: start %s == end %s\n", disp(start), disp(end)); exit(1); }
|
||||||
}
|
}
|
||||||
|
|
||||||
// now we can fill the interior of our big equilateral triangle
|
// now we can fill the interior of our big equilateral triangle
|
||||||
@ -340,7 +342,7 @@ namespace gp {
|
|||||||
int dx = wc.rdir;
|
int dx = wc.rdir;
|
||||||
auto at1 = at + eudir(dx);
|
auto at1 = at + eudir(dx);
|
||||||
auto& wc1 = get_mapping(at1);
|
auto& wc1 = get_mapping(at1);
|
||||||
WHD( printf("%s (%d) %s (%d)\n", disp(at), dx, disp(at1), wc1.rdir); )
|
WHD( Xprintf("%s (%d) %s (%d)\n", disp(at), dx, disp(at1), wc1.rdir); )
|
||||||
int df = wc1.rdir - dx;
|
int df = wc1.rdir - dx;
|
||||||
if(df < 0) df += 6;
|
if(df < 0) df += 6;
|
||||||
if(df == 3) break;
|
if(df == 3) break;
|
||||||
@ -368,12 +370,12 @@ namespace gp {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
printf("case unhandled %d\n", df);
|
Xprintf("case unhandled %d\n", df);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WHD( printf("DONE\n\n"); )
|
WHD( Xprintf("DONE\n\n"); )
|
||||||
}
|
}
|
||||||
|
|
||||||
hyperpoint loctoh_ort(loc at) {
|
hyperpoint loctoh_ort(loc at) {
|
||||||
@ -481,7 +483,7 @@ namespace gp {
|
|||||||
base_distlimit = 30;
|
base_distlimit = 30;
|
||||||
prepare_matrices();
|
prepare_matrices();
|
||||||
if(debug_geometry)
|
if(debug_geometry)
|
||||||
printf("scale = " LDF "\n", scale);
|
Xprintf("scale = " LDF "\n", scale);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
scale = 1;
|
scale = 1;
|
||||||
@ -683,7 +685,7 @@ namespace gp {
|
|||||||
found = true, centerloc = c;
|
found = true, centerloc = c;
|
||||||
}
|
}
|
||||||
if(!found && !quotient)
|
if(!found && !quotient)
|
||||||
printf("Warning: centerloc not found: %d,%d,%d\n", dmain, d0, d1);
|
Xprintf("Warning: centerloc not found: %d,%d,%d\n", dmain, d0, d1);
|
||||||
center_locs[rel] = centerloc;
|
center_locs[rel] = centerloc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
5
hyper.h
5
hyper.h
@ -3392,6 +3392,11 @@ void set_priority_board(int id);
|
|||||||
int get_sync_status();
|
int get_sync_status();
|
||||||
bool score_loaded(int id);
|
bool score_loaded(int id);
|
||||||
int score_default(int id);
|
int score_default(int id);
|
||||||
|
#if CAP_SDL
|
||||||
union SDL_Event;
|
union SDL_Event;
|
||||||
void handle_event(SDL_Event& ev);
|
void handle_event(SDL_Event& ev);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef XPRINTF
|
||||||
|
template<class...T> void Xprintf(const char *fmt, T... t) { printf(fmt, t...); }
|
||||||
|
#endif
|
||||||
|
6
rug.cpp
6
rug.cpp
@ -9,12 +9,6 @@
|
|||||||
#define TEXTURESIZE (texturesize)
|
#define TEXTURESIZE (texturesize)
|
||||||
#define HTEXTURESIZE (texturesize/2)
|
#define HTEXTURESIZE (texturesize/2)
|
||||||
|
|
||||||
#if ISANDROID
|
|
||||||
template<class...T> void Xprintf(T... t) { __android_log_print(ANDROID_LOG_VERBOSE, "RUG", t...); }
|
|
||||||
#else
|
|
||||||
template<class...T> void Xprintf(T... t) { printf(t...); }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
bool rug_failure = false;
|
bool rug_failure = false;
|
||||||
|
|
||||||
namespace rug {
|
namespace rug {
|
||||||
|
Loading…
Reference in New Issue
Block a user