static void Add_WallScroller(int64_t dx, int64_t dy, const line_t *l, int control, int accel) { fixed_t x = D_abs(l->dx), y = D_abs(l->dy), d; if(y > x) d = x, x = y, y = d; d = FixedDiv(x, finesine[(tantoangle[FixedDiv(y,x)>>DBITS]+ANG90) >> ANGLETOFINESHIFT]); x = (int)((dy * -l->dy - dx * l->dx) / d); // killough 10/98: y = (int)((dy * l->dx - dx * l->dy) / d); // Use 64-bit arithmetic Add_Scroller(ScrollThinker::sc_side, x, y, control, *l->sidenum, accel); }
// // EV_SectorHticScrollEastLavaDamage // // Augments DOOM's "strobe hurt/death slime" // * Heretic: 4 // static void EV_SectorHticScrollEastLavaDamage(sector_t *sector) { P_SpawnStrobeFlash(sector, FASTDARK, STROBEBRIGHT, 0); // custom damage parameters: sector->damage = 5; sector->damagemask = 16; sector->damagemod = MOD_LAVA; sector->damageflags |= SDMG_TERRAINHIT; // heretic current pusher type: sector->hticPushType = SECTOR_HTIC_CURRENT; sector->hticPushAngle = 0; sector->hticPushForce = 2048*28; // scrolls to the east: Add_Scroller(ScrollThinker::sc_floor, (-FRACUNIT/2) * 8, 0, -1, eindex(sector - sectors), 0); }
// // EV_setupHereticScroller // // Setup a Heretic scrolling effect. // static void EV_setupHereticScroller(sector_t *sector, int force) { Add_Scroller(ScrollThinker::sc_floor, (-FRACUNIT/2) << force, 0, -1, eindex(sector-sectors), 0); }