gamevar TEMP 0 0 gamevar TEMP2 0 0 gamevar TEMP3 0 0 gamevar TEMP4 0 0 gamevar TEMP5 0 0 gamevar TEMP6 0 0 gamevar TEMP7 0 0 gamevar TEMP8 0 0 gamevar i 0 0 gamevar j 0 0 define SHADE_TABLES 30 define SHADE_B 0 define SHADE_T 96 define SHADE_N 32 define SHADE_S 32 define SHADE_W 64 define SHADE_E 64 /* gamevar camerax 0 0 gamevar cameray 0 0 gamevar cameraz 0 0 */ defstate autoshade // sectors for i allsectors, ifand sector[i].ceilingstat 1 { // floors ifl sector[i].floorshade SHADE_TABLES { set TEMP sector[i].floorstat ifand TEMP 1 nullop else { shiftl sector[i].floorshade 8 div sector[i].floorshade SHADE_TABLES set TEMP2 sector[i].floorslope ifand TEMP 1 set TEMP2 0 ife TEMP2 0 { set TEMP3 SHADE_B set TEMP4 256 sub TEMP4 sector[i].floorshade mul TEMP3 TEMP4 shiftr TEMP3 8 } else { set TEMP3 sector[i].wallptr set TEMP4 wall[TEMP3].point2 set TEMP5 wall[TEMP4].x set TEMP6 wall[TEMP4].y set TEMP7 wall[TEMP3].x set TEMP8 wall[TEMP3].y sub TEMP5 TEMP7 sub TEMP6 TEMP8 getangle TEMP3 TEMP5 TEMP6 add TEMP3 512 ifl TEMP2 0 add TEMP3 1024 and TEMP3 2047 ifg TEMP3 1535 { set TEMP4 SHADE_S set TEMP5 SHADE_W } else ifg TEMP3 1023 { set TEMP4 SHADE_E set TEMP5 SHADE_S } else ifg TEMP3 511 { set TEMP4 SHADE_N set TEMP5 SHADE_E } else { set TEMP4 SHADE_W set TEMP5 SHADE_N } and TEMP3 511 sub TEMP5 TEMP4 mul TEMP3 TEMP5 shiftl TEMP4 9 add TEMP3 TEMP4 set TEMP4 sector[i].floorslope ifl TEMP4 0 mul TEMP4 -1 getangle TEMP4 4096 TEMP4 set TEMP5 SHADE_B shiftl TEMP5 9 sub TEMP3 TEMP5 mul TEMP3 TEMP4 shiftr TEMP3 9 add TEMP3 TEMP5 set TEMP4 256 sub TEMP4 sector[i].floorshade mul TEMP3 TEMP4 shiftr TEMP3 17 } add sector[i].floorshade TEMP3 mul sector[i].floorshade SHADE_TABLES add sector[i].floorshade 127 shiftr sector[i].floorshade 8 } } // ceilings ifl sector[i].ceilingshade SHADE_TABLES { set TEMP sector[i].ceilingstat ifand TEMP 1 nullop else { shiftl sector[i].ceilingshade 8 div sector[i].ceilingshade SHADE_TABLES set TEMP2 sector[i].ceilingslope ifand TEMP 1 set TEMP2 0 ife TEMP2 0 { set TEMP3 SHADE_T set TEMP4 256 sub TEMP4 sector[i].ceilingshade mul TEMP3 TEMP4 shiftr TEMP3 8 } else { set TEMP3 sector[i].wallptr set TEMP4 wall[TEMP3].point2 set TEMP5 wall[TEMP4].x set TEMP6 wall[TEMP4].y set TEMP7 wall[TEMP3].x set TEMP8 wall[TEMP3].y sub TEMP5 TEMP7 sub TEMP6 TEMP8 getangle TEMP3 TEMP5 TEMP6 add TEMP3 512 ifg TEMP2 0 add TEMP3 1024 and TEMP3 2047 ifg TEMP3 1535 { set TEMP4 SHADE_S set TEMP5 SHADE_W } else ifg TEMP3 1023 { set TEMP4 SHADE_E set TEMP5 SHADE_S } else ifg TEMP3 511 { set TEMP4 SHADE_N set TEMP5 SHADE_E } else { set TEMP4 SHADE_W set TEMP5 SHADE_N } and TEMP3 511 sub TEMP5 TEMP4 mul TEMP3 TEMP5 shiftl TEMP4 9 add TEMP3 TEMP4 set TEMP4 sector[i].ceilingslope ifl TEMP4 0 mul TEMP4 -1 getangle TEMP4 4096 TEMP4 set TEMP5 SHADE_T shiftl TEMP5 9 sub TEMP3 TEMP5 mul TEMP3 TEMP4 shiftr TEMP3 9 add TEMP3 TEMP5 set TEMP4 256 sub TEMP4 sector[i].ceilingshade mul TEMP3 TEMP4 shiftr TEMP3 17 } add sector[i].ceilingshade TEMP3 mul sector[i].ceilingshade SHADE_TABLES add sector[i].ceilingshade 127 shiftr sector[i].ceilingshade 8 } } // walls for j wallsofsector i { ifl wall[j].shade SHADE_TABLES { shiftl wall[j].shade 8 div wall[j].shade SHADE_TABLES set TEMP2 wall[j].point2 set TEMP3 wall[TEMP2].x set TEMP4 wall[TEMP2].y set TEMP5 wall[j].x set TEMP6 wall[j].y sub TEMP3 TEMP5 sub TEMP4 TEMP6 getangle TEMP2 TEMP3 TEMP4 add TEMP2 512 and TEMP2 2047 ifg TEMP2 1535 { set TEMP3 SHADE_S set TEMP4 SHADE_W } else ifg TEMP2 1023 { set TEMP3 SHADE_E set TEMP4 SHADE_S } else ifg TEMP2 511 { set TEMP3 SHADE_N set TEMP4 SHADE_E } else { set TEMP3 SHADE_W set TEMP4 SHADE_N } and TEMP2 511 sub TEMP4 TEMP3 mul TEMP2 TEMP4 shiftl TEMP3 9 add TEMP2 TEMP3 set TEMP3 256 sub TEMP3 wall[j].shade mul TEMP2 TEMP3 shiftr TEMP2 17 add wall[j].shade TEMP2 mul wall[j].shade SHADE_TABLES add wall[j].shade 127 shiftr wall[j].shade 8 } } /* // sprites for j spritesofsector i { ifl sprite[j].shade SHADE_TABLES { ifand sprite[j].cstat 16 { shiftl sprite[j].shade 8 div sprite[j].shade SHADE_TABLES set TEMP sprite[j].ang ifand sprite[j].cstat 64 nullop else { set TEMP2 camerax set TEMP3 cameray set TEMP4 sprite[j].x set TEMP5 sprite[j].y sub TEMP2 TEMP4 sub TEMP3 TEMP5 getangle TEMP2 TEMP2 TEMP3 getincangle TEMP2 TEMP TEMP2 ifg TEMP2 512 add TEMP 1024 and TEMP 2047 } ifg TEMP 1535 { set TEMP2 SHADE_S set TEMP3 SHADE_W } else ifg TEMP 1023 { set TEMP2 SHADE_E set TEMP3 SHADE_S } else ifg TEMP 511 { set TEMP2 SHADE_N set TEMP3 SHADE_E } else { set TEMP2 SHADE_W set TEMP3 SHADE_N } and TEMP 511 sub TEMP3 TEMP2 mul TEMP TEMP3 shiftl TEMP2 9 add TEMP TEMP2 set TEMP2 256 sub TEMP2 sprite[j].shade mul TEMP TEMP2 shiftr TEMP 17 add sprite[j].shade TEMP mul sprite[j].shade SHADE_TABLES add sprite[j].shade 127 shiftr sprite[j].shade 8 } ifand sprite[j].cstat 32 { shiftl sprite[j].shade 8 div sprite[j].shade SHADE_TABLES ifand sprite[j].cstat 64 { ifand sprite[j].cstat 8 set TEMP SHADE_T else set TEMP SHADE_B } else { set TEMP2 sprite[j].z ifl TEMP2 cameraz set TEMP SHADE_T else set TEMP SHADE_B } set TEMP2 256 sub TEMP2 sprite[j].shade mul TEMP TEMP2 shiftr TEMP 8 add sprite[j].shade TEMP mul sprite[j].shade SHADE_TABLES add sprite[j].shade 127 shiftr sprite[j].shade 8 } } } */ } ends