Subversion Repositories NedoOS

Rev

Rev 1917 | Rev 1965 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download

  1.        if atm
  2.         include "../../_sdk/sys_h.asm"
  3.        endif
  4. ;atm=1
  5. ;doublescr=1
  6. showfps=1-atm
  7.  
  8. crosshair=0
  9.  
  10.         if atm
  11. ID_DOOR=0+(22*2);127
  12.         else
  13. ID_DOOR=0x40+((22-16)*2);127
  14.         endif
  15.  
  16. ;ZX data:
  17. ;music=0;1
  18.  
  19. debug=0
  20. demorec=0
  21. demoplay=0;1
  22.  
  23. ;control:
  24. doublespeed=0;1
  25. doublerotate=1
  26. autostrafe=1
  27. kempston=0;1
  28. mouse=1
  29. mindist=111 ;max=111 ;111 curved walls TODO fix ;118 stuck in door
  30.  
  31. colour=7
  32. ceilingcolour=0
  33. floorcolour=colour*9
  34.  
  35. sprites=1
  36. CURSPRITES_RECSZ=5;4 ;ID, distL, distH, xscr, [monsterindex]
  37.  
  38. scale64=3;1 ;0 не поддерживается
  39.  
  40. ;render:
  41. scrwid=32 ;chr$
  42. scrtopx=(32-scrwid)/2
  43.         if atm
  44. scrhgt=200;128 ;pixels
  45. scrhgtpix=scrhgt
  46. Ycenter=100
  47. Ytop=Ycenter-(scrhgt/2)
  48. Ybottom=Ycenter+(scrhgt/2)
  49. scrbase=0x4000+4
  50. scrtop=Ytop*40+scrbase
  51.         else
  52. scrhgt=16;24 ;chr$ (10,12,...,24) ;TODO fix
  53. scrhgtpix=scrhgt*8
  54. scrtop=(24-scrhgt)*16+#4000+scrtopx
  55. attrtop=((scrtop/8)&0x300)+(0xff&scrtop)+0x5800
  56. lowscrtop=#4800+scrtopx
  57. lowattrtop=((lowscrtop/8)&0x300)+(0xff&lowscrtop)+0x5800
  58. lowscrhgt=8 ;chr$
  59. lowscrhgtpix=lowscrhgt*8
  60.         endif
  61.  
  62.         IF scale64
  63. maxscale=63
  64.  IF scale64 == 3 ;sc=(s+sh)^p/div, Ys=(Y/32-1)*sc, где s=0..63, Y=1..62, p=5, k=16^(-1/p), sh=(63*k)/(1-k), div = (63+sh)^p/1024*8
  65. lowmaxscale=27;28 ;fit in low screen
  66.  ELSE
  67. lowmaxscale=19 ;fit in low screen
  68.  ENDIF
  69.         ELSE
  70. maxscale=127
  71. lowmaxscale=25 ;fit in low screen
  72.         ENDIF
  73. mapdifbit=5;7
  74.         IF atm == 0
  75. lores=0
  76. optres=0;1&(1-lores) ;+22t на мелких, выигрыш на крупных
  77.         ELSE
  78. lores=1
  79. optres=0
  80.         ENDIF
  81. optfast=0
  82. loresspr=0|atm
  83. optresspr=1&(1-loresspr) ;выигрыш на крупных
  84. loresspr_hires=loresspr&(1-lores)
  85. pixperchr=8>>lores
  86. corr_coord=1
  87.  if atm
  88. interpolate=4
  89.  else
  90. interpolate=16
  91.  endif
  92.  
  93.         if lores
  94. SCRWIDPIX=scrwid*4
  95.         else
  96. SCRWIDPIX=scrwid*8
  97.         endif
  98.  
  99.         if atm
  100. scrbuf=#6040
  101.         else
  102. scrbuf=#A040
  103. lowscrbuf=(scrhgtpix-lowscrhgtpix)/2+scrbuf
  104.         endif
  105. scrbufflag=(scrbuf&#FF00)+32
  106. dropline=scrhgt*8+(0xff&scrbuf) ;Y=192
  107. map=scrbuf-#3F;#A001 ;+0 занят dropline, +32 занят флагом высоких
  108. mapend=map+#2000
  109. invmap=1 ;48k карта отличается по формату от ATM карты
  110.  
  111.         if atm == 0
  112. tscale=#C000 ;128x64, множители 0 и 63 выдают константы 0 и 3
  113.              ;64x64 при scale64=1
  114.         endif
  115.