forked from KolibriOS/kolibrios
- Update language codes and add comments. - Correct `en_US` translations. - Some whitespace clean-up (mainly EOL sanitation). Reviewed-on: KolibriOS/kolibrios#76 Co-authored-by: Andrew <dent.ace@gmail.com> Co-committed-by: Andrew <dent.ace@gmail.com>
108 lines
2.2 KiB
FASM
108 lines
2.2 KiB
FASM
; Language support for locales: ru_RU (CP866), en_US.
|
|
|
|
; level format
|
|
; [fx|fy][blue xy][red xy][blue point xy][red point xy]..[maze walls]
|
|
|
|
; internal format
|
|
; points db=[stepptr]
|
|
; [player]= blue
|
|
; [finish]= red
|
|
; area: ..[1-red,0-black xy].. ( -1 if empty)
|
|
|
|
TILT2_levelp:
|
|
call get_xy_sf
|
|
mov [stepptr],esi
|
|
add esi,2
|
|
call unpack_level
|
|
mov [pause_time],10
|
|
ret
|
|
|
|
TILT2_key:
|
|
cmp eax,176
|
|
jb .ex
|
|
cmp eax,179
|
|
ja .ex
|
|
mov esi,area
|
|
inc esi
|
|
lea ebx,[eax-176]
|
|
.lp:
|
|
xor edx,edx
|
|
mov eax,[player]
|
|
call check_move
|
|
jc .nom1
|
|
inc edx
|
|
add eax,[dirs+ebx*4]
|
|
mov [player],eax
|
|
.nom1:
|
|
mov eax,[finish]
|
|
call check_move
|
|
jc .nom2
|
|
inc edx
|
|
add eax,[dirs+ebx*4]
|
|
mov [finish],eax
|
|
.nom2:
|
|
test edx,edx
|
|
jz .ex1
|
|
call delay
|
|
call drwfld
|
|
jmp .lp
|
|
.ex1:
|
|
mov eax,[finish]
|
|
cmp eax,[player]
|
|
jnz .ex2
|
|
mov [win_flag],2
|
|
jmp TILT2_drawm.skip
|
|
.ex2:
|
|
mov esi,[stepptr]
|
|
cmp al,[esi+1]
|
|
jne .ex
|
|
mov eax,[player]
|
|
cmp al,[esi]
|
|
jne .ex
|
|
mov [win_flag],1
|
|
.ex:
|
|
ret
|
|
|
|
TILT2_drawm:
|
|
cmp [win_flag],2
|
|
je .skip
|
|
; mov [sq_size],3
|
|
mov eax,[player]
|
|
call get_xy
|
|
mcall 13,[lx],[ly],0xff
|
|
mov eax,[finish]
|
|
call get_xy
|
|
mcall 13,[lx],[ly],0xff0000
|
|
.skip:
|
|
shl [sq_size],1
|
|
mov esi,[stepptr]
|
|
lodsb
|
|
call get_xy
|
|
mcall 13,[lx],[ly],0xff
|
|
lodsb
|
|
call get_xy
|
|
shr [sq_size],1
|
|
mcall 13,[lx],[ly],0xff0000
|
|
ret
|
|
|
|
TILT2_level:
|
|
file 'tilt2.bin'
|
|
|
|
if lang eq ru_RU
|
|
TILT2_help mstr \
|
|
'Красный и синий блоки должны достичь клеток',\
|
|
'соответствующего цвета. Внимание! Блоки сделаны',\
|
|
'из агрессивного материала, и при столкновении',\
|
|
'мгновенно испаряются. В этом случае Вам придется',\
|
|
'начать уровень сначала.','',\
|
|
'http://www.clickmazes.com'
|
|
else ; Default to en_US
|
|
TILT2_help mstr \
|
|
'The red block must reach the red target and the',\
|
|
'blue block the blue target. Beware! The two',\
|
|
'blocks are made of highly reactive material and,',\
|
|
'if they collide, will instantly evaporate. At',\
|
|
'this point you must start all over again.','',\
|
|
'http://www.clickmazes.com'
|
|
end if
|