// This CON module provides 'state thisactor_getzrange', reimplementing // VM_GetZRange() from the C source. This routine obtains actor[].ceilingz and // actor[].floorz for the current actor (THISACTOR), using getzrange() with the // initial z position displaced by -256. // // Original author: Helixhorned. // In gamevar tagz_x 0 0 gamevar tagz_y 0 0 gamevar tagz_z 0 0 gamevar tagz_sectnum 0 0 // Temp gamevar tagz_cstat 0 0 // Out gamevar tagz_ceilz 0 0 gamevar tagz_ceilhit 0 0 gamevar tagz_florz 0 0 gamevar tagz_florhit 0 0 // ZOFFSET in the EDuke32 source. define TAGZ_ZOFFSET 256 // In the EDuke32 source, the passed to VM_GetZRange(). define TAGZ_WALLDIST 127 // Updates the current actor's actor[].floorz and actor[].ceilngz members in // the same way A_GetZRange() does. state thisactor_getzrange setvarvar tagz_x sprite[THISACTOR].x setvarvar tagz_y sprite[THISACTOR].y setvarvar tagz_z sprite[THISACTOR].z, subvar tagz_z TAGZ_ZOFFSET setvarvar tagz_sectnum sprite[THISACTOR].sectnum // Back up and clear cstat. setvarvar tagz_cstat sprite[THISACTOR].cstat setactor[THISACTOR].cstat 0 getzrange tagz_x tagz_y tagz_z tagz_sectnum /*out:*/ tagz_ceilz tagz_ceilhit tagz_florz tagz_florhit /*in:*/ TAGZ_WALLDIST CLIPMASK0 // Restore cstat. setactor[THISACTOR].cstat tagz_cstat // Set actor[] members for the current actor. setactor[THISACTOR].htceilingz tagz_ceilz setactor[THISACTOR].htfloorz tagz_florz ends