diff --git a/hypgraph.cpp b/hypgraph.cpp index 426d1991..bcb401a4 100644 --- a/hypgraph.cpp +++ b/hypgraph.cpp @@ -1154,6 +1154,7 @@ void centerpc(ld aspd) { DEBBI(DF_GRAPH, ("center pc")); ors::unrotate(cwtV); ors::unrotate(View); + if(invalid_matrix(cwtV)) return; transmatrix T = cwtV; #if MAXMDIM >= 4 diff --git a/shmup.cpp b/shmup.cpp index 552a2f6c..992c43e9 100644 --- a/shmup.cpp +++ b/shmup.cpp @@ -1014,7 +1014,7 @@ void monster::store() { } void monster::findpat() { - isVirtual = !gmatrix.count(base); + isVirtual = !gmatrix.count(base) || invalid_matrix(gmatrix[base]); if(!isVirtual) pat = gmatrix[base] * at; else pat = at; } @@ -3546,6 +3546,7 @@ void init() { pc[i]->at = Id; else pc[i]->at = spin(2*M_PI*i/players) * xpush(firstland == laMotion ? .5 : .3) * Id; + pc[i]->pat = pc[i]->at; pc[i]->base = cwt.at; pc[i]->vel = 0; pc[i]->inBoat = (firstland == laCaribbean || firstland == laOcean || firstland == laLivefjord ||