Subversion Repositories NedoOS

Rev

Rev 2082 | 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. EDITOR=0
  8.  
  9. crosshair=1;0
  10.  
  11.         if atm
  12. ID_DOOR=0+(22*2);127
  13.         else
  14. ID_DOOR=0x40+((22-16)*2);127
  15.         endif
  16.  
  17. ;ZX data:
  18. music=doublescr
  19.  
  20. debug=0
  21. demorec=0
  22. demoplay=0;1
  23.  
  24. ;control:
  25. doublespeed=1
  26. doublerotate=1
  27. autostrafe=1
  28. kempston=0;1
  29. mouse=1
  30. mindist=64;111 ;max=111 ;118 stuck in door
  31.  
  32. colour=7
  33. ceilingcolour=0
  34. floorcolour=colour*9
  35. ceilingcolourbyte=0b00000000;%11111111 ;atm
  36. floorcolourbyte=0b00010010;%11110110 ;atm
  37.  
  38. sprites=1
  39. CURSPRITES_RECSZ=5;4 ;ID, distL, distH, xscr, [monsterindex]
  40. FATMONSTERS=0
  41. viewrange=6
  42. woundrange=2
  43. MONSTERviewrange=3
  44. MONSTERBACKviewrange=2
  45.  
  46. scale64=3;1 ;0 не поддерживается
  47.  
  48. ;render:
  49.         if atm
  50. scrwid=32 ;chr$
  51. scrtopx=(32-scrwid)/2
  52. scrhgt=200;128 ;pixels
  53. scrhgtpix=scrhgt
  54. Ycenter=100
  55. Ytop=Ycenter-(scrhgt/2)
  56. Ybottom=Ycenter+(scrhgt/2)
  57. scrbase=0x4000+4
  58. scrtop=Ytop*40+scrbase
  59.         else
  60. scrwid=24;32 ;chr$
  61. scrtopx=(32-scrwid)/2
  62. scrhgt=20;24 ;chr$ (10,12,...,24)
  63. scrhgtpix=scrhgt*8
  64. scrtop=(24-scrhgt)*16+#4000+scrtopx
  65. attrtop=((scrtop/8)&0x300)+(0xff&scrtop)+0x5800
  66. ;для ускорения EOR-fill (частично замазывание атрибутами) размеры всегда активной части столбца:
  67. lowscrtop=#4800+scrtopx
  68. lowattrtop=((lowscrtop/8)&0x300)+(0xff&lowscrtop)+0x5800
  69. lowscrhgt=8 ;chr$
  70. lowscrhgtpix=lowscrhgt*8
  71.         endif
  72.  
  73.         IF scale64
  74. maxscale=63
  75.  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
  76. lowmaxscale=27;28 ;fit in low screen
  77.  ELSE
  78. lowmaxscale=19 ;fit in low screen
  79.  ENDIF
  80.         ELSE
  81. maxscale=127
  82. lowmaxscale=25 ;fit in low screen
  83.         ENDIF
  84. mapdifbit=5;7
  85.         IF atm == 0
  86. lores=0
  87. optres=1&(1-lores) ;+22t на мелких, выигрыш на крупных
  88.         ELSE
  89. lores=1
  90. optres=0
  91.         ENDIF
  92. optfast=1;0 ;в движении рисуем грубо
  93. loresspr=0|lores
  94. optresspr=1&(1-loresspr) ;выигрыш на крупных
  95. loresspr_hires=loresspr&(1-lores)
  96. pixperchr=8>>lores
  97. corr_coord=1
  98.  if atm
  99. interpolate=4
  100.  else
  101. interpolate=16
  102.  endif
  103. antizalom=1
  104.  
  105.         if lores
  106. SCRWIDPIX=scrwid*4
  107.         else
  108. SCRWIDPIX=scrwid*8
  109.         endif
  110.  
  111.         if atm
  112. scrbuf=#6040
  113.         else
  114. scrbuf=#A040
  115. lowscrbuf=(scrhgtpix-lowscrhgtpix)/2+scrbuf
  116.         endif
  117. scrbufflag=(scrbuf&#FF00)+32
  118. dropline=scrhgt*8+(0xff&scrbuf) ;Y=192
  119. map=scrbuf-#3F;#A001 ;+0 занят dropline, +32 занят флагом высоких
  120. mapend=map+#2000
  121. invmap=1
  122.  
  123.         if atm == 0
  124. tscale=#C000 ;128x64, множители 0 и 63 выдают константы 0 и 3
  125.              ;64x64 при scale64=1
  126.         endif
  127.  
  128. RENDERSPEEDLIMIT=2 ;1=50 fps, 2=25 fps, 3=17 fps
  129. LOGICSPEED=2       ;1=50 fps, 2=25 fps, 3=17 fps
  130.  
  131. TIME_WOUNDED=30/LOGICSPEED
  132. TIME_WANTATTACK=40/LOGICSPEED
  133. TIME_ATTACK=25/LOGICSPEED
  134. TIME_STEP=10/LOGICSPEED
  135. TIME_SHOT=10/LOGICSPEED
  136. TIME_WOUNDED=10/LOGICSPEED
  137. TIME_EXPLODE=10/LOGICSPEED
  138.