diff --git a/celldrawer.cpp b/celldrawer.cpp index e641f038..adb058a4 100644 --- a/celldrawer.cpp +++ b/celldrawer.cpp @@ -1602,6 +1602,7 @@ void celldrawer::draw_features() { poly_outline = OUTLINE_DEFAULT; } + #if CAP_COMPLEX2 else if(isDie(c->wall)) { color_t col = darkena(winf[c->wall].color, 0, 0xFF); @@ -1616,6 +1617,7 @@ void celldrawer::draw_features() { die_target = V; dice::draw_die(c, Vboat, 1, col); } + #endif else if(c->wall == waExplosiveBarrel) { if(GDIM == 3 && qfi.fshape) { diff --git a/game.cpp b/game.cpp index abf94f21..29e9a4d3 100644 --- a/game.cpp +++ b/game.cpp @@ -381,6 +381,7 @@ EX void pushThumper(const movei& mi) { cto->wall = waCrateOnTarget; th->wall = waCrateTarget; } + #if CAP_COMPLEX2 else if(isDie(w)) { th->wall = waNone; cto->wall = w; @@ -405,6 +406,7 @@ EX void pushThumper(const movei& mi) { else animateMovement(mi, LAYER_BOAT); } + #endif else cto->wall = w; if(explode) cto->wall = waFireTrap, cto->wparam = explode; @@ -415,8 +417,10 @@ EX void pushThumper(const movei& mi) { EX bool canPushThumperOn(movei mi, cell *player) { cell *thumper = mi.s; cell *tgt = mi.t; + #if CAP_COMPLEX2 if(dice::on(thumper) && !dice::can_roll(mi)) return false; + #endif if(tgt->wall == waBoat || tgt->wall == waStrandedBoat) return false; if(isReptile(tgt->wall)) return false; if(isWatery(tgt) && !tgt->monst) diff --git a/graph.cpp b/graph.cpp index b719e60c..21128975 100644 --- a/graph.cpp +++ b/graph.cpp @@ -2252,6 +2252,7 @@ EX bool drawMonsterType(eMonster m, cell *where, const shiftmatrix& V1, color_t return true; } + #if CAP_COMPLEX2 case moAnimatedDie: case moAngryDie: { if(where) dice::draw_die(where, V, 1, darkena(col, 0, 0xFF)); @@ -2259,6 +2260,7 @@ EX bool drawMonsterType(eMonster m, cell *where, const shiftmatrix& V1, color_t queuepoly(V, cgi.shDodeca, darkena(col, 0, 0xFF)); return true; } + #endif default: ; } diff --git a/history.cpp b/history.cpp index 294a86d5..51547739 100644 --- a/history.cpp +++ b/history.cpp @@ -527,10 +527,12 @@ EX namespace history { } EX void open_filedialog_to_create_image(bool ds) { + #if CAP_SHOT && CAP_SDL dialog::openFileDialog(band_format_now, XLAT("rendered band ($ID=segment, $DATE=date)"), ".png", [ds] () { createImage(band_format_now, ds); return true; }); + #endif } #endif @@ -691,7 +693,7 @@ EX namespace history { } EX void renderAutoband() { -#if CAP_SDL +#if CAP_SDL && CAP_SHOT if(!cwt.at || celldist(cwt.at) <= 7) return; if(!autoband) return; eModel spm = pmodel; diff --git a/landgen.cpp b/landgen.cpp index 2c5d2146..6a8fb0a5 100644 --- a/landgen.cpp +++ b/landgen.cpp @@ -2586,8 +2586,10 @@ EX void giantLandSwitch(cell *c, int d, cell *from) { } case laDice: { + #if CAP_COMPLEX2 if(fargen) dice::generate_full(c, items[itDice] + yendor::hardness()); + #endif break; } diff --git a/mapeffects.cpp b/mapeffects.cpp index 6f710833..f035e06d 100644 --- a/mapeffects.cpp +++ b/mapeffects.cpp @@ -431,10 +431,12 @@ EX bool makeflame(cell *c, int timeout, bool checkonly) { EX bool makeshallow(cell *c, int timeout, bool checkonly) { changes.ccell(c); if(!checkonly) destroyTrapsOn(c); + #if CAP_COMPLEX2 if(c->land == laBrownian) { if(checkonly) return true; brownian::dissolve(c, 1); } + #endif if(c->wall == waChasm || c->wall == waOpenGate || c->wall == waRed2 || c->wall == waRed3 || c->wall == waTower) return false; diff --git a/monstermove.cpp b/monstermove.cpp index 85dfd5e9..5c59f692 100644 --- a/monstermove.cpp +++ b/monstermove.cpp @@ -103,8 +103,10 @@ EX void moveEffect(const movei& mi, eMonster m) { tortoise::move_baby(cf, ct); } + #if CAP_COMPLEX2 if(isDie(m) && mi.proper()) dice::roll(mi); + #endif } EX void moveMonster(const movei& mi) { diff --git a/orbs.cpp b/orbs.cpp index 1afcb8ec..95556caf 100644 --- a/orbs.cpp +++ b/orbs.cpp @@ -1104,6 +1104,7 @@ void blowoff(const movei& mi) { if(ct->item) ct->item = itNone; moveItem(cf, ct, true); } + #if CAP_COMPLEX2 if(ct->monst == moAnimatedDie && dice::data[ct].happy() > 0) { ct->monst = moNone; ct->wall = waHappyDie; @@ -1123,6 +1124,7 @@ void blowoff(const movei& mi) { ct->stuntime = 5; addMessage(XLAT("You have made a Happy Die angry!")); } + #endif items[itOrbAir]--; createNoise(2); bfs(); @@ -1157,8 +1159,10 @@ EX movei blowoff_destination(cell *c, int& di) { if(dtype) for(int e=d; etype; e++) { int di = e % c->type; cell *c2 = c->move(di); + #if CAP_COMPLEX2 if(dice::on(c) && !dice::can_roll(movei(c, di))) continue; + #endif if(c2 && c2->cpdist > c->cpdist && passable(c2, c, P_BLOW)) return movei(c, c2, di); } return movei(c, c, NO_SPACE); diff --git a/passable.cpp b/passable.cpp index 07c9f5b6..071aa739 100644 --- a/passable.cpp +++ b/passable.cpp @@ -540,6 +540,7 @@ EX bool passable_for(eMonster m, cell *w, cell *from, flagtype extra) { } return !pseudohept(w) && passable(w, from, extra); } + #if CAP_COMPLEX2 if(m == moAnimatedDie) { if(extra & P_ONPLAYER) { if(isPlayerOn(w)) return true; @@ -559,6 +560,7 @@ EX bool passable_for(eMonster m, cell *w, cell *from, flagtype extra) { else return passable(w, from, extra); } + #endif if(m == moFrog) { return isNeighbor1(from, w) ? passable(w, from, extra) : check_jump(from, w, extra, dummy) == 3; } diff --git a/pcmove.cpp b/pcmove.cpp index 7d5bc2e2..9e871d7f 100644 --- a/pcmove.cpp +++ b/pcmove.cpp @@ -629,6 +629,7 @@ bool pcmove::actual_move() { return after_instant(false); } + #if CAP_COMPLEX2 if(c2->monst == moAnimatedDie) { mip = determinePush(cwt, subdir, [] (movei mi) { return canPushThumperOn(mi, cwt.at); }); if(mip.proper()) { @@ -640,6 +641,7 @@ bool pcmove::actual_move() { } } } + #endif if(isPushable(c2->wall) && !c2->monst && !nonAdjacentPlayer(c2, cwt.at) && fmsMove) { mip = determinePush(cwt, subdir, [] (movei mi) { return canPushThumperOn(mi, cwt.at); }); diff --git a/reg3.cpp b/reg3.cpp index cb54373d..8d5c0319 100644 --- a/reg3.cpp +++ b/reg3.cpp @@ -1076,15 +1076,19 @@ EX namespace reg3 { if(geometry == gSpace535) quotient_map = new seifert_weber::hrmap_seifert_cover(); + #if CAP_CRYSTAL else if(geometry == gSpace344) quotient_map = new hrmap_from_crystal; + #endif else quotient_map = new hrmap_field3(&fp); if(geometry == gSpace535) emerald_map = new seifert_weber::hrmap_seifert_cover(); + #if CAP_CRYSTAL else if(geometry == gSpace344) emerald_map = new hrmap_from_crystal; + #endif else emerald_map = new hrmap_field3(&currfp); h.emeraldval = 0;