2024-06-14 10:35:46 +02:00
|
|
|
|
; Language support for locales: ru_RU (CP866), en_US.
|
|
|
|
|
|
|
|
|
|
NLT_levelp:
|
|
|
|
|
mov eax,OR_strip
|
|
|
|
|
call need_image
|
|
|
|
|
xor eax,eax
|
|
|
|
|
lodsb
|
|
|
|
|
lodsb
|
|
|
|
|
mov [fx],eax
|
|
|
|
|
lodsb
|
|
|
|
|
mov [fy],eax
|
|
|
|
|
lodsw
|
|
|
|
|
mov [player],eax
|
|
|
|
|
mov dword[area],5
|
|
|
|
|
lodsw
|
|
|
|
|
mov [finish],eax
|
|
|
|
|
call get_xy_sf.count
|
|
|
|
|
mov [levptr],esi
|
|
|
|
|
call unpack_level
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
NLT_key:
|
|
|
|
|
mov [jump],still
|
|
|
|
|
cmp eax,176
|
|
|
|
|
jb .ex
|
|
|
|
|
cmp eax,179
|
|
|
|
|
ja .ex
|
|
|
|
|
lea ebx,[eax-176]
|
|
|
|
|
mov eax,[player]
|
|
|
|
|
call check_move
|
|
|
|
|
jc .ex
|
|
|
|
|
mov ecx,ebx
|
|
|
|
|
mov edx,ebx
|
|
|
|
|
movzx ecx,byte[dir_rotate+ecx]
|
|
|
|
|
cmp ecx,dword[area]
|
|
|
|
|
je .ex
|
|
|
|
|
xor edx,11b
|
|
|
|
|
cmp edx,dword[area]
|
|
|
|
|
je .ex
|
|
|
|
|
add eax,[dirs+ebx*4]
|
|
|
|
|
mov dword[area],ebx
|
|
|
|
|
mov [player],eax
|
|
|
|
|
cmp eax,[finish]
|
|
|
|
|
jne .nowin
|
|
|
|
|
mov [win_flag],1
|
|
|
|
|
.nowin:
|
|
|
|
|
mov [jump],drw
|
|
|
|
|
.ex:
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
NLT_drawm:
|
|
|
|
|
push [sq_size]
|
|
|
|
|
mov [sq_size],0
|
|
|
|
|
mov eax,[finish]
|
|
|
|
|
mov ebx,6
|
|
|
|
|
call out_image
|
|
|
|
|
; mcall 13,[lx],[ly],0xff0000
|
|
|
|
|
mov ebx,dword[area]
|
|
|
|
|
cmp ebx,5
|
|
|
|
|
jne .skip
|
|
|
|
|
mov eax,[player]
|
|
|
|
|
mov edi,eax
|
|
|
|
|
pop [sq_size]
|
|
|
|
|
call get_xy
|
|
|
|
|
mcall 13,[lx],[ly],0x8000
|
|
|
|
|
jmp .ex
|
|
|
|
|
.skip:
|
|
|
|
|
add ebx,8
|
|
|
|
|
mov eax,[player]
|
|
|
|
|
call out_image
|
|
|
|
|
pop [sq_size]
|
|
|
|
|
.ex:
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
NLT_level:
|
|
|
|
|
file 'nolt.bin'
|
|
|
|
|
|
|
|
|
|
if lang eq ru_RU
|
|
|
|
|
NLT_help mstr \
|
|
|
|
|
'<27><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>᭮<EFBFBD><E1ADAE>',\
|
|
|
|
|
'<27><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD> <20><>㤭<EFBFBD><E3A4AD>',\
|
|
|
|
|
'祬 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20> <20><> <20>ਬ<EFBFBD><E0A8AC><EFBFBD> <20><><EFBFBD>宥',\
|
|
|
|
|
'<27><>襭<EFBFBD><E8A5AD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>㯨<EFBFBD> <20> <20>㤥<EFBFBD><E3A4A5>',\
|
|
|
|
|
'<27><><EFBFBD>㦤<EFBFBD><E3A6A4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᭠砫<E1ADA0>.','',\
|
|
|
|
|
'http://puzzleprograms.narod.ru' ; FIXME: Check link works
|
|
|
|
|
else ; Default to en_US
|
|
|
|
|
NLT_help mstr \
|
|
|
|
|
'Your challenge is to manouvre the green dot to',\
|
|
|
|
|
'the red square without ever turning left, or',\
|
|
|
|
|
'making a U-turn. Harder than it looks. Beware, if',\
|
|
|
|
|
'you make a bad decision in this maze you may get',\
|
|
|
|
|
'completely stuck and have to restart.','',\
|
|
|
|
|
'http://www.clickmazes.com' ; FIXME: Why are links different?
|
|
|
|
|
end if
|