Clipmask: Difference between revisions

From EDukeWiki
Jump to navigation Jump to search
New page: Clipmask is a mask that tells whether the object should be clipped to or not. The lower 16 bits are anded with cstat of wall and the higher 16 bits are anded with [[cstat|c...
 
No edit summary
Line 15: Line 15:


  Recommend clipmask for hitscan 4294901808) = FFFF 0030h<br>
  Recommend clipmask for hitscan 4294901808) = FFFF 0030h<br>
This clips sprites which have any flags and walls which are one-sided or masking.
This clips walls which have any flags and sprites which are flat(horizontally or vertically).

Revision as of 09:14, 18 May 2008

Clipmask is a mask that tells whether the object should be clipped to or not. The lower 16 bits are anded with cstat of wall and the higher 16 bits are anded with cstat of sprite. Clipmask is used by the getzrange and hitscan commands.


One can calculate a mask using this formula:

clipmask=(wall_cstat*65536)+sprite_cstat

wall_cstat and sprite_cstat should have only set the bits which should be clipped. The most important bits are blockable(flag 1), hitable(flag 64 for walls and 256 for sprites), masking wall(flag 16).

The game has two predefined clipmasks: CLIPMASK0 and CLIPMASK1

CLIPMASK0 = (1*65536)+1 = 1 0001h

This clips to blockable walls(flag 1) and sprites(flag 1).

CLIPMASK1 = (256*65536)+64 = 100 0040h

This clips to hitable walls(flag 256) and sprites(flag 64).

Recommend clipmask for hitscan 4294901808) = FFFF 0030h

This clips walls which have any flags and sprites which are flat(horizontally or vertically).