Index: src/entities.mm ================================================================== --- src/entities.mm +++ src/entities.mm @@ -34,17 +34,18 @@ triggertime = 0; loopv(ents) { entity &e = ents[i]; if (e.type == MAPMODEL) { - mapmodelinfo &mmi = getmminfo(e.attr2); - if (!&mmi) + mapmodelinfo *mmi = getmminfo(e.attr2); + if (!mmi) continue; - rendermodel(mmi.name, 0, 1, e.attr4, (float)mmi.rad, - e.x, (float)S(e.x, e.y)->floor + mmi.zoff + e.attr3, + rendermodel(mmi->name, 0, 1, e.attr4, (float)mmi->rad, + e.x, + (float)S(e.x, e.y)->floor + mmi->zoff + e.attr3, e.y, (float)((e.attr1 + 7) - (e.attr1 + 7) % 15), 0, - false, 1.0f, 10.0f, mmi.snap); + false, 1.0f, 10.0f, mmi->snap); } else { if (OUTBORD(e.x, e.y)) continue; if (e.type != CARROT) { if (!e.spawned && e.type != TELEPORT) Index: src/physics.mm ================================================================== --- src/physics.mm +++ src/physics.mm @@ -57,22 +57,22 @@ loopv(ents) { entity &e = ents[i]; if (e.type != MAPMODEL) continue; - mapmodelinfo &mmi = getmminfo(e.attr2); - if (!&mmi || !mmi.h) + mapmodelinfo *mmi = getmminfo(e.attr2); + if (!mmi || !mmi->h) continue; - const float r = mmi.rad + d->radius; + const float r = mmi->rad + d->radius; if (fabs(e.x - d->o.x) < r && fabs(e.y - d->o.y) < r) { float mmz = - (float)(S(e.x, e.y)->floor + mmi.zoff + e.attr3); + (float)(S(e.x, e.y)->floor + mmi->zoff + e.attr3); if (d->o.z - d->eyeheight < mmz) { if (mmz < hi) hi = mmz; - } else if (mmz + mmi.h > lo) - lo = mmz + mmi.h; + } else if (mmz + mmi->h > lo) + lo = mmz + mmi->h; }; }; }; // all collision happens here Index: src/protos.h ================================================================== --- src/protos.h +++ src/protos.h @@ -205,11 +205,11 @@ // rendermd2 extern void rendermodel(char *mdl, int frame, int range, int tex, float rad, float x, float y, float z, float yaw, float pitch, bool teammate, float scale, float speed, int snap = 0, int basetime = 0); -extern mapmodelinfo &getmminfo(int i); +extern mapmodelinfo *getmminfo(int i); // server extern void initserver(bool dedicated, int uprate, char *sdesc, char *ip, char *master, char *passwd, int maxcl); extern void cleanupserver(); Index: src/rendermd2.mm ================================================================== --- src/rendermd2.mm +++ src/rendermd2.mm @@ -252,14 +252,14 @@ mapmodelreset() { mapmodels.setsize(0); }; -mapmodelinfo & +mapmodelinfo * getmminfo(int i) { - return i < mapmodels.length() ? mapmodels[i]->mmi : *(mapmodelinfo *)0; + return i < mapmodels.length() ? &mapmodels[i]->mmi : NULL; }; COMMAND(mapmodel, ARG_5STR); COMMAND(mapmodelreset, ARG_NONE);