Skip to content

stationFunctions5

extrazi edited this page Jun 26, 2023 · 1 revision
original    original
EN     PL

rerandom(<label>, <block>)

który musi być umieszczony w łańcuchu graficznym. Poprzez określenie różnych etykiet, różne randomizacje mogą być stosowane równolegle. Patrz przykład.

 Przykład (2 różne re-randomizacje):
 // top platform
 def(6) randomcb(_TOP, ARRIVE, 16, ref(1), ref(2), ref(2), ref(3))
 // bottom platform
 def(7) randomcb(_BOTTOM, {ARRIVE, NOCARGO}, 16, ref(1), ref(2))
 def(8) plt_num(

self( ref(6) if(0) // top platform ref(7) else // bottom )

 )
 [...]
 def(9) rerandom(_TOP,

ref(0) // graphics

 )
 def(10) rerandom(_BOTTOM,

ref(0) // graphics

 )
 def(11) plt_num(

self( ref(9) if(0) // top platform ref(10) else // bottom )

 )
 // check callbacks
 def(12) callback(

ref(8) if(CB_LAYOUT) // callback ref(11) else // graphics/re-randomisation

 )

Auxiliary functions =

Funkcje pomocnicze są używane w kontekście niektórych z powyższych funkcji.Jako takie, nie dostają def() ani nie mają ref() niczego innego. Są one wykorzystywane głównie do oceny specjalnych parametrów dla funkcji wydajności.

addmodulo(<add>,<modulo>)

Funkcja ta dostosowuje wynik funkcji do bardziej użytecznego zakresu.Pierwszy parametr określa wartość dodaną do wyniku, a drugi parametr określa moduł (reszta podziału według) na sumę wyników funkcji i pierwszego parametru.

 Przykład (checking platform number):
 def(10) plt_midnum(addmodulo(1,2),
    self(

ref(5) if(1) ref(6) else

    )
 )

nibble(<Coordinate>)

Ta funkcja służy do sprawdzania zwróconej wartości współrzędnych spakowanych w bajtach w zwykłej formie (<x>, <y>). Zakres parametrów to [-8], zarówno dla przesunięć x, jak i y. Na przykład zobacz tutaj.

pos(<Coordinate>)

Ta funkcja dostarcza podane współrzędne w postaci upakowane bajtami do innej funkcji. Zakres parametrów to [-8], zarówno dla współrzędnych x, jak i y. Prośba odnotowania, że współrzędna (0,0) odnosi się do samego kafa. Przykład patrz poniżej.

self(<Block>)

Funkcja ta definiuje poziom hierarchii.Zamiast całej stacji, tylko część kafli stacji budowana w połączeniu z bieżącym kaflem jest adresowana przez odpowiednią funkcję działania, zob. tutaj przykłady.

shiftmask(<shift>,<mask>)

Funkcja ta dostosowuje wynik funkcji do bardziej użytecznego zakresu.Pierwszy parametr definiuje wartość przesunięcia w prawo wyniku, a drugi parametr podaje wartość, z którą do <spam title="AND">I&lt;/span&gt;</spam> wynik po przesunięciu.

Prośba odnotowania, że w danym kontekście parametr <mask> może mieć rozmiar WORD.

 Przykład (sprawdzanie nachylenia kafla):
 //  (middle)

def(8)

 tinfo_slope(pos(0,0),shiftmask(0,NORTH+SOUTH),

ref(5) if(NORTH) ref(6) if(SOUTH) ref(7) else

 )
Clone this wiki locally