Hitscan - EDukeWiki

# Hitscan

From EDukeWiki

hitscan <x1> <y1> <z1> <sect1> <cos of ang> <sin of ang> <zvel> <hit sector return var> <hit wall return var> <hit sprite return var> <hit x return var> <hit y return var> <hit z return var> <clip mask>

Hitscan returns the values of what would be hit if one travelled in a straight line from a set of coordinates in a specified direction.

All parameters are gamevars. The first three are the coordinates from which the hitscan occurs, followed by the scanning sector. The cos, then the sin of an angle (typically the ang of the actor performing the scan) come next, followed by the z angle, which must be calculated before the hitscan. The six return gamevars hold the values of what the hitscan hits. The value of clipmask tells hitscan which sorts of things it can hit. A clipmask of 4294901808 is useful for most purposes.

Example of hitscan:

    //  This state will return the sector, wall, and sprite(id, x ,y, and z data)currently under the crosshair.

    state checkhitscan
    	getplayer[THISACTOR].posx MY_X
    	getplayer[THISACTOR].posy MY_Y
    	getplayer[THISACTOR].posz MY_Z
    	getplayer[THISACTOR].cursectnum MY_SECTOR
    	getplayer[THISACTOR].ang MY_ANGLE
    	getplayer[THISACTOR].horiz MY_ZDIST
    	subvar MY_ZDIST 100
    	mulvar MY_ZDIST -2048
    	cos MY_COS MY_ANGLE
    	sin MY_SIN MY_ANGLE

    	hitscan MY_X MY_Y MY_Z MY_SECTOR MY_COS MY_SIN MY_ZDIST HITSECTOR HITWALL HITSPRITE HITX HITY HITZ 4294901808
    ends

Retrieved from "http://wiki.eduke32.com/w/index.php?title=Hitscan&oldid=9957"
Categories:

- EDuke32 specific commands
- Gamevar manipulation