ofs | hex dump | ascii |
---|
0000 | 4e 75 6c 6c 73 6f 66 74 20 41 56 53 20 50 72 65 73 65 74 20 30 2e 32 1a 00 15 00 00 00 82 0a 00 | Nullsoft.AVS.Preset.0.2......... |
0020 | 00 7e 0a 00 00 20 20 5f 5f 5f 5f 5f 5f 5f 5f 5f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .~....._________................ |
0040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 28 20 | ..............................(. |
0060 | 20 20 20 20 20 20 20 5f 5f 5f 5f 5f 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......._____)................... |
0080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a | ................................ |
00a0 | 20 20 5c 20 20 20 20 20 28 20 69 6e 61 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..\.....(.inal.................. |
00c0 | 5f 5f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | __.............................. |
00e0 | 20 20 20 20 47 6f 6c 64 69 65 0d 0a 20 20 20 20 5c 20 20 20 20 af af af af 5c 20 20 20 20 20 5f | ....Goldie......\........\....._ |
0100 | 20 20 20 20 20 20 2f 20 20 20 20 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....../....).................... |
0120 | 20 20 20 20 20 0d 0a 20 20 20 20 20 20 5c 20 20 20 7c af 5c 20 20 20 20 5c 5f 2f 20 20 5c 5f 2f | .............\...|.\....\_/..\_/ |
0140 | 20 20 20 20 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..../........................... |
0160 | 0d 0a 20 20 20 20 20 20 20 20 5c 2f 20 20 20 20 5c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........\/....\............... |
0180 | 20 20 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 | ../............................b |
01a0 | 79 20 53 74 65 76 65 6e 20 57 69 74 74 65 6e 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | y.Steven.Wittens................ |
01c0 | 20 20 20 5c 5f 5f 2f 5e 5c 5f 5f 2f 20 68 61 63 6b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...\__/^\__/.hack............... |
01e0 | 20 20 20 20 20 20 20 20 20 61 6b 61 20 55 6e 43 6f 6e 65 44 0d 0a 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f | .........aka.UnConeD..__________ |
0200 | 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f | ________________________________ |
0220 | 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 0d 0a 20 20 af af af af af af af af af af af af af af af af | ____________.................... |
0240 | af af af af af af af af af af af af af af af af af af af af af af af af af af af af af af af af | ................................ |
0260 | af af af af 0d 0a 49 27 6d 20 72 65 61 6c 6c 79 20 73 61 74 69 73 66 69 65 64 20 77 69 74 68 20 | ......I'm.really.satisfied.with. |
0280 | 74 68 65 20 77 61 79 20 74 68 69 73 20 74 75 72 6e 65 64 20 6f 75 74 2e 20 49 20 68 61 64 20 74 | the.way.this.turned.out..I.had.t |
02a0 | 68 65 20 69 64 65 61 20 66 6f 72 20 61 20 73 6f 6c 69 64 20 73 70 65 63 74 72 75 6d 20 6c 69 6b | he.idea.for.a.solid.spectrum.lik |
02c0 | 65 20 74 68 69 73 2c 20 77 69 74 68 20 63 6f 72 72 65 63 74 20 76 69 73 69 62 69 6c 69 74 79 2e | e.this,.with.correct.visibility. |
02e0 | 20 4e 6f 20 6d 61 78 2d 62 6c 65 6e 64 69 6e 67 20 68 65 72 65 20 3b 29 2e 0d 0a 42 61 73 69 63 | .No.max-blending.here.;)...Basic |
0300 | 61 6c 6c 79 20 65 76 65 72 79 20 73 75 70 65 72 73 63 6f 70 65 20 72 65 70 72 65 73 65 6e 74 73 | ally.every.superscope.represents |
0320 | 20 6f 6e 65 20 70 6f 73 69 74 69 6f 6e 20 69 6e 20 74 68 65 20 72 6f 74 61 74 65 64 20 67 72 69 | .one.position.in.the.rotated.gri |
0340 | 64 2e 20 53 6f 20 61 73 20 74 68 65 20 62 61 72 73 20 6d 6f 76 65 20 61 72 6f 75 6e 64 2c 20 74 | d..So.as.the.bars.move.around,.t |
0360 | 68 65 79 20 6a 75 6d 70 20 66 72 6f 6d 20 73 63 6f 70 65 20 74 6f 20 73 63 6f 70 65 20 73 6f 20 | hey.jump.from.scope.to.scope.so. |
0380 | 74 68 65 20 64 72 61 77 69 6e 67 20 6f 72 64 65 72 20 69 73 20 61 6c 77 61 79 73 20 63 6f 72 72 | the.drawing.order.is.always.corr |
03a0 | 65 63 74 2e 20 59 6f 75 20 63 61 6e 20 73 65 65 20 74 68 69 73 20 69 6e 20 61 63 74 69 6f 6e 20 | ect..You.can.see.this.in.action. |
03c0 | 62 79 20 61 64 64 69 6e 67 20 61 20 27 62 6c 75 65 3d 31 27 20 6f 72 20 73 69 6d 69 6c 61 72 20 | by.adding.a.'blue=1'.or.similar. |
03e0 | 74 6f 20 6f 6e 65 20 6f 66 20 74 68 65 20 6c 61 73 74 20 73 63 6f 70 65 73 2e 0d 0a 54 68 69 73 | to.one.of.the.last.scopes...This |
0400 | 20 74 72 69 63 6b 20 77 6f 72 6b 73 20 72 65 61 6c 6c 79 20 77 65 6c 6c 20 6f 6e 20 61 20 68 65 | .trick.works.really.well.on.a.he |
0420 | 78 61 67 6f 6e 61 6c 20 67 72 69 64 2e 0d 0a 0d 0a 54 68 65 20 6e 65 78 74 20 73 70 65 63 69 61 | xagonal.grid.....The.next.specia |
0440 | 6c 20 74 72 69 63 6b 20 69 73 20 74 68 65 20 73 68 69 6e 79 20 67 6f 6c 64 20 6d 61 74 65 72 69 | l.trick.is.the.shiny.gold.materi |
0460 | 61 6c 2e 20 49 74 27 73 20 64 6f 6e 65 20 62 79 20 63 61 6c 63 75 6c 61 74 69 6e 67 20 74 68 65 | al..It's.done.by.calculating.the |
0480 | 20 63 6f 6c 6f 72 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 28 72 6f | .color.based.on.the.position.(ro |
04a0 | 74 61 74 65 64 20 61 6e 64 20 74 72 61 6e 73 6c 61 74 65 64 29 20 6f 6e 20 74 68 65 20 73 63 72 | tated.and.translated).on.the.scr |
04c0 | 65 65 6e 2e 20 53 6f 20 61 20 70 6f 69 6e 74 20 74 68 61 74 20 6d 6f 76 65 73 20 61 72 6f 75 6e | een..So.a.point.that.moves.aroun |
04e0 | 64 20 73 74 61 72 74 73 20 74 6f 20 73 68 69 6d 6d 65 72 20 61 6e 64 20 63 68 61 6e 67 65 2e 20 | d.starts.to.shimmer.and.change.. |
0500 | 42 79 20 73 6c 69 67 68 74 6c 79 20 6f 66 66 73 65 74 74 69 6e 67 20 74 68 65 20 63 6f 64 65 20 | By.slightly.offsetting.the.code. |
0520 | 66 6f 72 20 72 65 64 2c 20 67 72 65 65 6e 20 61 6e 64 20 62 6c 75 65 2c 20 74 68 65 72 65 20 61 | for.red,.green.and.blue,.there.a |
0540 | 72 65 20 73 75 62 74 6c 65 20 63 6f 6c 6f 72 20 76 61 72 69 61 74 69 6f 6e 73 20 66 72 6f 6d 20 | re.subtle.color.variations.from. |
0560 | 6f 72 61 6e 67 65 20 74 6f 20 79 65 6c 6c 6f 77 20 77 68 69 63 68 20 6d 61 6b 65 20 69 74 20 6c | orange.to.yellow.which.make.it.l |
0580 | 6f 6f 6b 20 61 20 6c 6f 74 20 6d 6f 72 65 20 63 6f 6e 76 69 6e 63 69 6e 67 2e 20 53 6f 6d 65 20 | ook.a.lot.more.convincing..Some. |
05a0 | 63 6f 6c 6f 72 6d 61 70 20 61 6e 64 20 63 6f 6e 76 6f 6c 75 74 69 6f 6e 20 74 72 69 63 6b 65 72 | colormap.and.convolution.tricker |
05c0 | 79 20 61 64 64 73 20 74 68 65 20 63 6f 6f 6c 20 67 6c 61 72 65 20 65 66 66 65 63 74 2e 0d 0a 0d | y.adds.the.cool.glare.effect.... |
05e0 | 0a 47 65 74 74 69 6e 67 20 74 68 65 20 73 68 61 64 69 6e 67 20 74 6f 20 70 6c 61 79 20 6e 69 63 | .Getting.the.shading.to.play.nic |
0600 | 65 20 77 61 73 20 61 6e 6f 74 68 65 72 20 70 72 6f 62 6c 65 6d 20 74 68 6f 75 67 68 3a 20 6f 6e | e.was.another.problem.though:.on |
0620 | 6c 79 20 74 68 65 20 76 69 73 69 62 6c 65 20 73 69 64 65 73 20 6f 66 20 74 68 65 20 62 61 72 73 | ly.the.visible.sides.of.the.bars |
0640 | 20 61 72 65 20 64 72 61 77 6e 20 28 72 65 6d 6f 76 65 20 6f 6e 65 20 6f 66 20 74 68 65 20 43 6f | .are.drawn.(remove.one.of.the.Co |
0660 | 6c 75 6d 6e 20 54 6f 70 20 73 63 6f 70 65 73 20 74 6f 20 73 65 65 29 2c 20 61 6e 64 20 74 68 65 | lumn.Top.scopes.to.see),.and.the |
0680 | 20 6c 69 6e 65 73 20 61 72 65 20 64 72 61 77 6e 20 75 70 77 61 72 64 73 20 69 6e 20 61 20 73 6e | .lines.are.drawn.upwards.in.a.sn |
06a0 | 61 6b 65 2d 6c 69 6b 65 20 7a 69 67 7a 61 67 20 70 61 74 74 65 72 6e 2e 20 52 65 6d 65 6d 62 65 | ake-like.zigzag.pattern..Remembe |
06c0 | 72 20 69 6e 20 74 68 65 20 65 6e 64 2c 20 74 68 65 79 27 72 65 20 73 74 69 6c 6c 20 61 6c 6c 20 | r.in.the.end,.they're.still.all. |
06e0 | 6c 69 6e 65 73 2c 20 61 6e 64 20 61 6c 6c 20 74 68 69 73 20 69 73 20 6a 75 73 74 20 73 6f 6d 65 | lines,.and.all.this.is.just.some |
0700 | 20 74 72 69 63 6b 65 72 79 2e 20 41 56 53 20 64 72 61 77 73 20 61 20 6c 69 6e 65 20 69 6e 20 74 | .trickery..AVS.draws.a.line.in.t |
0720 | 68 65 20 63 6f 6c 6f 72 20 6f 66 20 69 74 73 20 74 61 72 67 65 74 20 70 6f 69 6e 74 2c 20 73 6f | he.color.of.its.target.point,.so |
0740 | 20 49 20 68 61 64 20 74 6f 20 74 77 65 61 6b 20 69 74 20 61 6e 64 20 70 6c 61 79 20 61 72 6f 75 | .I.had.to.tweak.it.and.play.arou |
0760 | 6e 64 20 75 6e 74 69 6c 20 61 6c 6c 20 74 68 65 20 73 69 64 65 73 20 61 6e 64 20 62 61 72 73 20 | nd.until.all.the.sides.and.bars. |
0780 | 77 65 72 65 20 73 79 6e 63 68 65 64 20 77 69 74 68 20 65 61 63 68 6f 74 68 65 72 2e 0d 0a 0d 0a | were.synched.with.eachother..... |
07a0 | 46 69 6e 61 6c 6c 79 20 74 68 61 6e 6b 73 20 74 6f 20 73 6f 6d 65 20 62 75 66 66 65 72 20 74 72 | Finally.thanks.to.some.buffer.tr |
07c0 | 69 63 6b 73 2c 20 74 68 65 20 62 61 63 6b 67 72 6f 75 6e 64 20 69 73 20 61 20 63 6f 6f 6c 20 70 | icks,.the.background.is.a.cool.p |
07e0 | 75 72 70 6c 65 2f 62 6c 75 65 69 73 68 20 63 6f 6d 70 6f 73 69 74 65 20 6f 66 20 65 76 65 72 79 | urple/blueish.composite.of.every |
0800 | 20 62 65 61 74 20 66 72 61 6d 65 20 28 77 69 74 68 6f 75 74 20 63 6f 6c 6f 72 6d 61 70 70 69 6e | .beat.frame.(without.colormappin |
0820 | 67 20 6f 72 20 75 6e 69 71 75 65 20 74 6f 6e 69 6e 67 2e 2e 2e 29 2e 0d 0a 0d 0a 41 20 6e 69 63 | g.or.unique.toning...).....A.nic |
0840 | 65 20 27 6f 6c 64 20 73 63 68 6f 6f 6c 27 20 73 70 65 63 74 72 75 6d 20 70 72 65 73 65 74 2c 20 | e.'old.school'.spectrum.preset,. |
0860 | 69 6e 20 61 20 6e 65 77 20 6a 61 63 6b 65 74 2e 2e 2e 0d 0a 20 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f | in.a.new.jacket......___________ |
0880 | 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f | ________________________________ |
08a0 | 5f 5f 5f 5f 5f 5f 5f 5f 5f 0d 0a af af af af af af af af af af af af af af af af af af af af af | _________....................... |
08c0 | af af af af af af af af af af af af af af af af af af af af af af af af af af af af af af af af | ................................ |
08e0 | af 0d 0a 28 63 29 20 53 74 65 76 65 6e 20 57 69 74 74 65 6e 73 20 2f 20 55 6e 43 6f 6e 65 44 0d | ...(c).Steven.Wittens./.UnConeD. |
0900 | 0a 73 74 65 76 65 6e 20 40 20 61 63 6b 6f 20 64 6f 74 20 6e 65 74 20 2d 20 77 77 77 2e 61 63 6b | .steven.@.acko.dot.net.-.www.ack |
0920 | 6f 2e 6e 65 74 0d 0a 0d 0a 49 66 20 79 6f 75 20 77 69 73 68 20 74 6f 20 75 73 65 20 61 6e 79 20 | o.net....If.you.wish.to.use.any. |
0940 | 70 61 72 74 20 28 6f 72 20 74 68 65 20 77 68 6f 6c 65 29 20 6f 66 20 74 68 69 73 20 70 72 65 73 | part.(or.the.whole).of.this.pres |
0960 | 65 74 20 69 6e 20 79 6f 75 72 20 6f 77 6e 20 70 72 65 73 65 74 73 2c 20 70 61 63 6b 73 20 6f 72 | et.in.your.own.presets,.packs.or |
0980 | 20 69 6e 20 61 6e 6f 74 68 65 72 20 6d 65 64 69 75 6d 2c 20 79 6f 75 20 6d 75 73 74 20 69 6e 63 | .in.another.medium,.you.must.inc |
09a0 | 6c 75 64 65 20 6d 79 20 6e 61 6d 65 20 61 73 20 61 20 63 6c 65 61 72 20 63 72 65 64 69 74 20 72 | lude.my.name.as.a.clear.credit.r |
09c0 | 65 66 65 72 65 6e 63 65 2e 20 49 6e 63 6c 75 64 69 6e 67 20 6d 79 20 63 6f 6e 74 61 63 74 20 69 | eference..Including.my.contact.i |
09e0 | 6e 66 6f 72 6d 61 74 69 6f 6e 2f 77 65 62 73 69 74 65 20 61 64 64 72 65 73 73 20 69 73 20 6e 6f | nformation/website.address.is.no |
0a00 | 74 20 72 65 71 75 69 72 65 64 2c 20 62 75 74 20 61 70 70 72 65 63 69 61 74 65 64 2e 0d 0a 45 78 | t.required,.but.appreciated...Ex |
0a20 | 63 65 70 74 69 6f 6e 20 74 6f 20 74 68 65 20 61 62 6f 76 65 3a 20 79 6f 75 20 6d 61 79 20 64 69 | ception.to.the.above:.you.may.di |
0a40 | 73 70 6c 61 79 20 74 68 65 73 65 20 70 72 65 73 65 74 73 20 61 73 20 61 20 70 72 6f 6a 65 63 74 | splay.these.presets.as.a.project |
0a60 | 69 6f 6e 20 61 74 20 70 61 72 74 69 65 73 2c 20 72 61 76 65 73 20 6f 72 20 63 6c 75 62 73 20 77 | ion.at.parties,.raves.or.clubs.w |
0a80 | 69 74 68 6f 75 74 20 63 72 65 64 69 74 20 72 65 66 65 72 65 6e 63 65 20 6f 6e 2d 73 63 72 65 65 | ithout.credit.reference.on-scree |
0aa0 | 6e 2e 00 19 00 00 00 14 00 00 00 01 00 00 00 02 59 14 00 00 00 00 00 00 00 00 00 00 00 00 00 fe | n...............Y............... |
0ac0 | ff ff ff 89 00 00 00 82 02 01 01 24 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...........$.................... |
0ae0 | 00 00 00 00 00 00 00 00 01 00 00 00 00 40 00 00 41 56 53 20 32 2e 38 2b 20 45 66 66 65 63 74 20 | .............@..AVS.2.8+.Effect. |
0b00 | 4c 69 73 74 20 43 6f 6e 66 69 67 00 00 00 00 00 24 00 00 00 01 00 00 00 05 00 00 00 74 3d 30 3b | List.Config.....$...........t=0; |
0b20 | 00 13 00 00 00 65 6e 61 62 6c 65 64 3d 31 2d 74 3b 0d 0a 74 3d 31 3b 00 12 00 00 00 10 00 00 00 | .....enabled=1-t;..t=1;......... |
0b40 | 00 00 00 00 07 00 00 00 00 00 00 00 80 00 00 00 12 00 00 00 10 00 00 00 01 00 00 00 07 00 00 00 | ................................ |
0b60 | 09 00 00 00 80 00 00 00 24 00 00 00 5e 05 00 00 01 00 00 00 00 fc 03 00 00 72 79 3d 72 79 2b 73 | ........$...^............ry=ry+s |
0b80 | 69 6e 28 72 74 2d 72 79 29 2a 2e 31 3b 72 74 3d 72 74 2b 64 72 2a 2e 30 31 3b 0d 0a 7a 64 69 73 | in(rt-ry)*.1;rt=rt+dr*.01;..zdis |
0ba0 | 74 3d 7a 64 69 73 74 2a 2e 39 2b 7a 74 2a 2e 31 3b 6f 79 3d 6f 79 2b 79 6f 66 66 3b 6f 79 3d 6f | t=zdist*.9+zt*.1;oy=oy+yoff;oy=o |
0bc0 | 79 2a 2e 39 2b 79 74 2a 2e 31 3b 0d 0a 72 78 3d 61 74 61 6e 32 28 6f 79 2c 7a 64 69 73 74 29 3b | y*.9+yt*.1;..rx=atan2(oy,zdist); |
0be0 | 6f 79 3d 6f 79 2d 79 6f 66 66 3b 0d 0a 0d 0a 72 65 73 70 6f 6e 73 65 3d 2e 30 33 37 3b 73 74 65 | oy=oy-yoff;....response=.037;ste |
0c00 | 70 73 3d 34 35 3b 0d 0a 66 61 63 74 3d 32 2e 35 2f 7a 64 69 73 74 3b 72 65 67 39 30 3d 66 61 63 | ps=45;..fact=2.5/zdist;reg90=fac |
0c20 | 74 3b 0d 0a 72 65 73 70 6f 6e 73 65 3d 72 65 73 70 6f 6e 73 65 2f 66 61 63 74 3b 73 74 65 70 73 | t;..response=response/fact;steps |
0c40 | 3d 73 74 65 70 73 2a 66 61 63 74 3b 0d 0a 72 65 67 30 30 3d 7a 64 69 73 74 3b 72 65 67 30 31 3d | =steps*fact;..reg00=zdist;reg01= |
0c60 | 72 79 3b 72 65 67 30 32 3d 6f 79 3b 72 65 67 30 33 3d 72 78 3b 72 65 67 30 39 3d 73 74 65 70 73 | ry;reg02=oy;reg03=rx;reg09=steps |
0c80 | 3b 0d 0a 72 65 67 30 37 3d 63 6f 73 28 72 79 29 3b 72 65 67 30 38 3d 73 69 6e 28 72 79 29 3b 0d | ;..reg07=cos(ry);reg08=sin(ry);. |
0ca0 | 0a 0d 0a 72 65 67 31 30 3d 6d 61 78 28 6d 61 78 28 30 2c 72 65 67 31 30 2d 64 65 63 61 79 29 2c | ...reg10=max(max(0,reg10-decay), |
0cc0 | 67 65 74 73 70 65 63 28 2e 30 31 2c 30 2e 30 31 2c 30 29 2a 31 2e 35 29 3b 0d 0a 72 65 67 31 31 | getspec(.01,0.01,0)*1.5);..reg11 |
0ce0 | 3d 6d 61 78 28 6d 61 78 28 30 2c 72 65 67 31 31 2d 64 65 63 61 79 29 2c 67 65 74 73 70 65 63 28 | =max(max(0,reg11-decay),getspec( |
0d00 | 2e 30 32 2c 30 2e 30 32 2c 30 29 2a 31 2e 32 29 3b 0d 0a 72 65 67 31 32 3d 6d 61 78 28 6d 61 78 | .02,0.02,0)*1.2);..reg12=max(max |
0d20 | 28 30 2c 72 65 67 31 32 2d 64 65 63 61 79 29 2c 67 65 74 73 70 65 63 28 2e 30 33 2c 30 2e 30 32 | (0,reg12-decay),getspec(.03,0.02 |
0d40 | 2c 30 29 2a 31 2e 32 29 3b 0d 0a 72 65 67 31 33 3d 6d 61 78 28 6d 61 78 28 30 2c 72 65 67 31 33 | ,0)*1.2);..reg13=max(max(0,reg13 |
0d60 | 2d 64 65 63 61 79 29 2c 67 65 74 73 70 65 63 28 2e 30 34 2c 30 2e 30 32 2c 30 29 2a 31 2e 32 29 | -decay),getspec(.04,0.02,0)*1.2) |
0d80 | 3b 0d 0a 72 65 67 31 34 3d 6d 61 78 28 6d 61 78 28 30 2c 72 65 67 31 34 2d 64 65 63 61 79 29 2c | ;..reg14=max(max(0,reg14-decay), |
0da0 | 67 65 74 73 70 65 63 28 2e 30 35 2c 30 2e 30 32 2c 30 29 2a 31 2e 32 29 3b 0d 0a 72 65 67 31 35 | getspec(.05,0.02,0)*1.2);..reg15 |
0dc0 | 3d 6d 61 78 28 6d 61 78 28 30 2c 72 65 67 31 35 2d 64 65 63 61 79 29 2c 67 65 74 73 70 65 63 28 | =max(max(0,reg15-decay),getspec( |
0de0 | 2e 30 36 2c 30 2e 30 32 2c 30 29 2a 31 2e 32 29 3b 0d 0a 72 65 67 31 36 3d 6d 61 78 28 6d 61 78 | .06,0.02,0)*1.2);..reg16=max(max |
0e00 | 28 30 2c 72 65 67 31 36 2d 64 65 63 61 79 29 2c 67 65 74 73 70 65 63 28 2e 30 37 2c 30 2e 30 32 | (0,reg16-decay),getspec(.07,0.02 |
0e20 | 2c 30 29 2a 31 2e 32 29 3b 0d 0a 72 65 67 31 37 3d 6d 61 78 28 6d 61 78 28 30 2c 72 65 67 31 37 | ,0)*1.2);..reg17=max(max(0,reg17 |
0e40 | 2d 64 65 63 61 79 29 2c 67 65 74 73 70 65 63 28 2e 31 30 2c 30 2e 30 33 2c 30 29 29 3b 0d 0a 72 | -decay),getspec(.10,0.03,0));..r |
0e60 | 65 67 31 39 3d 6d 61 78 28 6d 61 78 28 30 2c 72 65 67 31 39 2d 64 65 63 61 79 29 2c 67 65 74 73 | eg19=max(max(0,reg19-decay),gets |
0e80 | 70 65 63 28 2e 31 32 2c 30 2e 30 33 2c 30 29 29 3b 0d 0a 72 65 67 32 31 3d 6d 61 78 28 6d 61 78 | pec(.12,0.03,0));..reg21=max(max |
0ea0 | 28 30 2c 72 65 67 32 31 2d 64 65 63 61 79 29 2c 67 65 74 73 70 65 63 28 2e 31 34 2c 30 2e 30 33 | (0,reg21-decay),getspec(.14,0.03 |
0ec0 | 2c 30 29 29 3b 0d 0a 72 65 67 32 33 3d 6d 61 78 28 6d 61 78 28 30 2c 72 65 67 32 33 2d 64 65 63 | ,0));..reg23=max(max(0,reg23-dec |
0ee0 | 61 79 29 2c 67 65 74 73 70 65 63 28 2e 31 36 2c 30 2e 30 33 2c 30 29 29 3b 0d 0a 72 65 67 32 35 | ay),getspec(.16,0.03,0));..reg25 |
0f00 | 3d 6d 61 78 28 6d 61 78 28 30 2c 72 65 67 32 35 2d 64 65 63 61 79 29 2c 67 65 74 73 70 65 63 28 | =max(max(0,reg25-decay),getspec( |
0f20 | 2e 31 38 2c 30 2e 30 33 2c 30 29 29 3b 0d 0a 72 65 67 32 37 3d 6d 61 78 28 6d 61 78 28 30 2c 72 | .18,0.03,0));..reg27=max(max(0,r |
0f40 | 65 67 32 37 2d 64 65 63 61 79 29 2c 67 65 74 73 70 65 63 28 2e 32 30 2c 30 2e 30 33 2c 30 29 29 | eg27-decay),getspec(.20,0.03,0)) |
0f60 | 3b 0d 0a 72 65 67 33 30 3d 72 65 73 70 6f 6e 73 65 3b 0d 0a 00 59 00 00 00 72 74 3d 72 74 2b 72 | ;..reg30=response;...Y...rt=rt+r |
0f80 | 61 6e 64 28 36 32 38 29 2a 2e 30 31 2d 33 2e 31 34 3b 0d 0a 7a 74 3d 33 2b 72 61 6e 64 28 31 30 | and(628)*.01-3.14;..zt=3+rand(10 |
0fa0 | 30 29 2a 2e 30 32 3b 79 74 3d 31 2e 38 2b 72 61 6e 64 28 31 30 30 29 2a 2e 30 31 3b 0d 0a 64 72 | 0)*.02;yt=1.8+rand(100)*.01;..dr |
0fc0 | 3d 72 61 6e 64 28 32 30 30 29 2a 2e 30 31 2d 31 3b 00 e8 00 00 00 6e 3d 30 3b 64 65 63 61 79 3d | =rand(200)*.01-1;.....n=0;decay= |
0fe0 | 2e 30 34 3b 0d 0a 78 3d 28 77 2f 33 32 30 29 3b 72 65 73 70 6f 6e 73 65 3d 72 65 73 70 6f 6e 73 | .04;..x=(w/320);response=respons |
1000 | 65 2f 78 3b 73 74 65 70 73 3d 73 74 65 70 73 2a 78 3b 0d 0a 7a 64 69 73 74 3d 34 3b 7a 74 3d 34 | e/x;steps=steps*x;..zdist=4;zt=4 |
1020 | 3b 79 74 3d 32 2e 33 3b 72 74 3d 31 3b 79 6f 66 66 3d 31 2e 33 3b 20 0d 0a 20 20 0d 0a 72 65 67 | ;yt=2.3;rt=1;yoff=1.3;.......reg |
1040 | 31 30 3d 30 3b 0d 0a 72 65 67 31 31 3d 30 3b 0d 0a 72 65 67 31 32 3d 30 3b 0d 0a 72 65 67 31 33 | 10=0;..reg11=0;..reg12=0;..reg13 |
1060 | 3d 30 3b 0d 0a 72 65 67 31 34 3d 30 3b 0d 0a 72 65 67 31 35 3d 30 3b 0d 0a 72 65 67 31 36 3d 30 | =0;..reg14=0;..reg15=0;..reg16=0 |
1080 | 3b 0d 0a 72 65 67 31 37 3d 30 3b 0d 0a 72 65 67 31 39 3d 30 3b 0d 0a 72 65 67 32 31 3d 30 3b 0d | ;..reg17=0;..reg19=0;..reg21=0;. |
10a0 | 0a 72 65 67 32 33 3d 30 3b 0d 0a 72 65 67 32 35 3d 30 3b 0d 0a 72 65 67 32 37 3d 30 3b 00 02 00 | .reg23=0;..reg25=0;..reg27=0;... |
10c0 | 00 00 01 00 00 00 ff ff ff 00 00 00 00 00 19 00 00 00 14 00 00 00 01 00 00 00 00 00 00 00 00 00 | ................................ |
10e0 | 00 00 00 00 00 00 01 00 00 00 28 00 00 00 04 00 00 00 01 00 07 80 24 00 00 00 bc 01 00 00 01 e3 | ..........(...........$......... |
1100 | 00 00 00 61 3d 70 2a 63 73 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 72 64 64 3b 70 7a 3d 73 69 6e | ...a=p*cs;..px=cos(a)*rdd;pz=sin |
1120 | 28 61 29 2a 72 64 64 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f 72 6d 20 61 6e 64 20 70 72 6f | (a)*rdd;....//.Transform.and.pro |
1140 | 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a | ject..x1=px*cy-pz*sy;z1=px*sy+pz |
1160 | 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 | *cy;..y2=py*cx-z1*sx;z2=py*sx+z1 |
1180 | 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b 0d 0a 7a 32 3d 69 66 28 62 65 | *cx+zdist;..z2=z2*.75;..z2=if(be |
11a0 | 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d | low(z2,.02),0,1/z2);..x=x1*z2;y= |
11c0 | 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 70 | y2*z2*af-.1;....//.State.vars..p |
11e0 | 3d 70 2b 31 3b 00 a0 00 00 00 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a 64 69 73 74 3d 72 65 67 30 30 | =p+1;.....//.Camera..zdist=reg00 |
1200 | 3b 72 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d 72 65 67 30 33 3b 73 74 65 70 | ;ry=reg01;oy=reg02;rx=reg03;step |
1220 | 73 3d 72 65 67 30 39 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d 73 69 6e 28 72 78 29 3b | s=reg09;..cx=cos(rx);sx=sin(rx); |
1240 | 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 | ..cy=cos(ry);sy=sin(ry);....//.S |
1260 | 74 61 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d 77 2f 68 3b 70 | tate.vars..cs=$pi*.3333;af=w/h;p |
1280 | 3d 30 3b 70 79 3d 6f 79 3b 00 00 00 00 00 18 00 00 00 2f 2f 20 46 6c 6f 6f 72 0d 0a 6e 3d 37 3b | =0;py=oy;.........//.Floor..n=7; |
12a0 | 72 64 64 3d 31 2e 37 35 3b 00 02 00 00 00 01 00 00 00 32 2d ff 00 01 00 00 00 24 00 00 00 bc 01 | rdd=1.75;.........2-......$..... |
12c0 | 00 00 01 e3 00 00 00 61 3d 70 2a 63 73 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 72 64 64 3b 70 7a | .......a=p*cs;..px=cos(a)*rdd;pz |
12e0 | 3d 73 69 6e 28 61 29 2a 72 64 64 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f 72 6d 20 61 6e 64 | =sin(a)*rdd;....//.Transform.and |
1300 | 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 | .project..x1=px*cy-pz*sy;z1=px*s |
1320 | 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 | y+pz*cy;..y2=py*cx-z1*sx;z2=py*s |
1340 | 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b 0d 0a 7a 32 3d 69 | x+z1*cx+zdist;..z2=z2*.75;..z2=i |
1360 | 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d 78 31 2a 7a | f(below(z2,.02),0,1/z2);..x=x1*z |
1380 | 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 | 2;y=y2*z2*af-.1;....//.State.var |
13a0 | 73 0d 0a 70 3d 70 2b 31 3b 00 a0 00 00 00 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a 64 69 73 74 3d 72 | s..p=p+1;.....//.Camera..zdist=r |
13c0 | 65 67 30 30 3b 72 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d 72 65 67 30 33 3b | eg00;ry=reg01;oy=reg02;rx=reg03; |
13e0 | 73 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d 73 69 6e 28 | steps=reg09;..cx=cos(rx);sx=sin( |
1400 | 72 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a | rx);..cy=cos(ry);sy=sin(ry);.... |
1420 | 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d 77 | //.State.vars..cs=$pi*.3333;af=w |
1440 | 2f 68 3b 70 3d 30 3b 70 79 3d 6f 79 3b 00 00 00 00 00 18 00 00 00 2f 2f 20 46 6c 6f 6f 72 0d 0a | /h;p=0;py=oy;.........//.Floor.. |
1460 | 6e 3d 37 3b 72 64 64 3d 32 2e 31 39 3b 00 02 00 00 00 01 00 00 00 4f 4a ff 00 01 00 00 00 28 00 | n=7;rdd=2.19;.........OJ......(. |
1480 | 00 00 04 00 00 00 00 00 06 80 24 00 00 00 63 05 00 00 01 e3 02 00 00 2f 2f 20 53 65 74 20 75 70 | ..........$...c........//.Set.up |
14a0 | 20 63 6f 6c 75 6d 6e 0d 0a 71 3d 69 66 28 6f 64 64 2c 33 2d 70 2c 70 29 3b 0d 0a 61 3d 63 73 2a | .column..q=if(odd,3-p,p);..a=cs* |
14c0 | 28 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 2e 35 2b 63 70 78 3b 70 | (q+.5+poff);..px=cos(a)*.5+cpx;p |
14e0 | 7a 3d 73 69 6e 28 61 29 2a 2e 35 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f 72 6d | z=sin(a)*.5+cpz;....//.Transform |
1500 | 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d | .and.project..x1=px*cy-pz*sy;z1= |
1520 | 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d | px*sy+pz*cy;..y2=py*cx-z1*sx;z2= |
1540 | 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b 0d 0a | py*sx+z1*cx+zdist;..z2=z2*.75;.. |
1560 | 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d | z2=if(below(z2,.02),0,1/z2);..x= |
1580 | 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 52 65 63 61 6c | x1*z2;y=y2*z2*af-.1;....//.Recal |
15a0 | 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 69 | culate.for.linear.texture.coordi |
15c0 | 6e 61 74 65 73 0d 0a 71 3d 69 66 28 6f 64 64 2c 32 2e 35 2d 65 71 75 61 6c 28 70 2c 32 29 2c 6d | nates..q=if(odd,2.5-equal(p,2),m |
15e0 | 61 78 28 2e 35 2c 70 2d 2e 35 29 29 2d 33 3b 0d 0a 61 3d 63 73 2a 28 71 2b 2e 35 2b 70 6f 66 66 | ax(.5,p-.5))-3;..a=cs*(q+.5+poff |
1600 | 29 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 2e 35 3b 70 7a 3d 73 69 6e 28 61 29 2a 2e 35 3b 0d 0a | );..px=cos(a)*.5;pz=sin(a)*.5;.. |
1620 | 78 31 3d 70 78 2a 63 79 74 2d 70 7a 2a 73 79 74 2d 72 64 64 2a 33 2e 3b 7a 31 3d 70 78 2a 73 79 | x1=px*cyt-pz*syt-rdd*3.;z1=px*sy |
1640 | 74 2b 70 7a 2a 63 79 74 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a | t+pz*cyt;..y2=py*cx-z1*sx;z2=py* |
1660 | 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 6b 65 20 65 6e 76 69 72 6f 6e | sx+z1*cx+zdist;..//.Fake.environ |
1680 | 6d 65 6e 74 20 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 31 2a 32 37 2b 73 69 6e 28 79 32 2d 78 31 2a | ment.mapping..a=x1*27+sin(y2-x1* |
16a0 | 33 29 2a 32 2b 35 3b 62 3d 79 32 2a 2e 38 2d 78 31 2a 32 2e 31 2b 2e 35 3b 63 3d 63 6f 73 28 61 | 3)*2+5;b=y2*.8-x1*2.1+.5;c=cos(a |
16c0 | 29 3b 0d 0a 72 65 64 3d 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 30 2b 2e 37 3b 0d 0a 67 72 65 65 | );..red=(c+sin(b))*.30+.7;..gree |
16e0 | 6e 3d 28 63 6f 73 28 61 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 29 2a 31 2e 32 29 2a 2e 33 30 2b | n=(cos(a+.2)+sin(b-.1)*1.2)*.30+ |
1700 | 2e 35 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 29 2a 31 2e 35 29 2a 2e 33 30 2b | .5;..blue=(c+sin(b+.2)*1.5)*.30+ |
1720 | 2e 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 70 3d 28 70 2b 31 29 25 33 3b | .0;....//.State.vars..p=(p+1)%3; |
1740 | 70 79 3d 70 79 2d 65 71 75 61 6c 28 70 2c 30 29 2a 72 65 73 70 3b 0d 0a 6f 64 64 3d 69 66 28 65 | py=py-equal(p,0)*resp;..odd=if(e |
1760 | 71 75 61 6c 28 70 2c 30 29 2c 62 6e 6f 74 28 6f 64 64 29 2c 6f 64 64 29 3b 00 3d 02 00 00 2f 2f | qual(p,0),bnot(odd),odd);.=...// |
1780 | 20 53 65 74 75 70 20 63 6f 6c 75 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 70 | .Setup.column..x=pos*$pi*.333;cp |
17a0 | 78 3d 72 64 64 2a 63 6f 73 28 78 29 3b 63 70 7a 3d 72 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d 0a | x=rdd*cos(x);cpz=rdd*sin(x);.... |
17c0 | 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a 64 69 73 74 3d 72 65 67 30 30 3b 72 79 3d 72 65 67 30 31 3b | //.Camera..zdist=reg00;ry=reg01; |
17e0 | 6f 79 3d 72 65 67 30 32 3b 72 78 3d 72 65 67 30 33 3b 73 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a | oy=reg02;rx=reg03;steps=reg09;.. |
1800 | 63 79 74 3d 72 65 67 30 37 3b 73 79 74 3d 72 65 67 30 38 3b 0d 0a 72 6f 66 66 3d 28 28 28 28 61 | cyt=reg07;syt=reg08;..roff=((((a |
1820 | 62 73 28 33 2a 72 79 2f 24 70 69 2b 2e 35 29 7c 30 29 25 36 29 2a 73 69 67 6e 28 72 79 29 2b 31 | bs(3*ry/$pi+.5)|0)%6)*sign(ry)+1 |
1840 | 32 29 25 36 29 3b 0d 0a 72 79 3d 72 79 2d 28 72 6f 66 66 2b 31 29 2a 24 70 69 2f 33 3b 0d 0a 63 | 2)%6);..ry=ry-(roff+1)*$pi/3;..c |
1860 | 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d 73 69 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 | x=cos(rx);sx=sin(rx);..cy=cos(ry |
1880 | 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 73 70 6f 6e | );sy=sin(ry);....//.Sound.respon |
18a0 | 73 65 0d 0a 6e 3d 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 30 29 2c 72 65 67 32 31 2c 69 66 28 | se..n=if(equal(roff,0),reg21,if( |
18c0 | 65 71 75 61 6c 28 72 6f 66 66 2c 31 29 2c 72 65 67 32 33 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 | equal(roff,1),reg23,if(equal(rof |
18e0 | 66 2c 32 29 2c 72 65 67 32 35 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c 72 65 67 32 | f,2),reg25,if(equal(roff,3),reg2 |
1900 | 37 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 34 29 2c 72 65 67 31 37 2c 72 65 67 31 39 29 29 | 7,if(equal(roff,4),reg17,reg19)) |
1920 | 29 29 29 3b 0d 0a 6e 3d 28 28 6e 2a 73 74 65 70 73 29 7c 30 29 2a 33 2b 33 3b 72 65 73 70 3d 72 | )));..n=((n*steps)|0)*3+3;resp=r |
1940 | 65 67 33 30 3b 0d 0a 70 79 3d 6f 79 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a | eg30;..py=oy;....//.State.vars.. |
1960 | 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d 77 2f 68 3b 70 3d 30 3b 0d 0a 70 6f 66 66 3d 28 | cs=$pi*.3333;af=w/h;p=0;..poff=( |
1980 | 2d 33 2a 72 79 2f 24 70 69 2b 2e 35 29 3b 0d 0a 70 6f 66 66 3d 28 61 62 73 28 70 6f 66 66 29 25 | -3*ry/$pi+.5);..poff=(abs(poff)% |
19a0 | 36 29 2a 73 69 67 6e 28 70 6f 66 66 29 2b 32 2e 35 3b 0d 0a 6f 64 64 3d 30 3b 00 00 00 00 00 22 | 6)*sign(poff)+2.5;..odd=0;....." |
19c0 | 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 31 35 0d 0a 6e 3d 30 3b 72 64 64 3d 31 2e 37 33 3b 70 6f | ...//.Column.15..n=0;rdd=1.73;po |
19e0 | 73 3d 34 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 9f 04 00 00 01 4b 02 | s=4;.................$........K. |
1a00 | 00 00 2f 2f 20 53 65 74 20 75 70 20 63 6f 6c 75 6d 6e 0d 0a 70 7a 3d 28 69 2d 2e 35 29 2a 2e 38 | ..//.Set.up.column..pz=(i-.5)*.8 |
1a20 | 36 36 3b 70 78 3d 28 70 2d 2e 35 29 2a 28 31 2d 61 62 73 28 69 2d 2e 35 29 29 3b 0d 0a 70 78 3d | 66;px=(p-.5)*(1-abs(i-.5));..px= |
1a40 | 70 78 2b 63 70 78 3b 70 7a 3d 70 7a 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f 72 | px+cpx;pz=pz+cpz;....//.Transfor |
1a60 | 6d 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 | m.and.project..x1=px*cy-pz*sy;z1 |
1a80 | 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 | =px*sy+pz*cy;..y2=py*cx-z1*sx;z2 |
1aa0 | 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b 20 | =py*sx+z1*cx+zdist;..z2=z2*.75;. |
1ac0 | 20 20 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b | ....z2=if(below(z2,.02),0,1/z2); |
1ae0 | 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 52 | ..x=x1*z2;y=y2*z2*af-.1;....//.R |
1b00 | 65 63 61 6c 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 78 74 75 72 65 20 63 6f | ecalculate.for.linear.texture.co |
1b20 | 6f 72 64 69 6e 61 74 65 73 0d 0a 70 78 3d 63 70 78 3b 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a | ordinates..px=cpx;..x1=px*cy-pz* |
1b40 | 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a | sy;z1=px*sy+pz*cy;..y2=py*cx-z1* |
1b60 | 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 6b | sx;z2=py*sx+z1*cx+zdist;..//.Fak |
1b80 | 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 31 2b 73 69 6e 28 | e.environment.mapping..a=x1+sin( |
1ba0 | 79 32 2a 2e 37 2d 78 31 2a 2e 36 29 2a 32 2b 35 3b 62 3d 79 32 2a 2e 35 2d 78 31 2a 31 2e 31 2b | y2*.7-x1*.6)*2+5;b=y2*.5-x1*1.1+ |
1bc0 | 2e 35 3b 63 3d 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 30 | .5;c=cos(a);..red=(c+sin(b))*.30 |
1be0 | 2b 2e 37 3b 0d 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 29 | +.7;..green=(cos(a+.2)+sin(b-.1) |
1c00 | 2a 31 2e 32 29 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 29 | *1.2)*.30+.5;..blue=(c+sin(b+.2) |
1c20 | 2a 31 2e 35 29 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a | *1.5)*.30+.0;....//.State.vars.. |
1c40 | 70 3d 62 6e 6f 74 28 70 29 3b 0d 0a 00 0d 02 00 00 2f 2f 20 53 65 74 75 70 20 63 6f 6c 75 6d 6e | p=bnot(p);.......//.Setup.column |
1c60 | 0d 0a 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 70 78 3d 72 64 64 2a 63 6f 73 28 78 29 3b | ..x=pos*$pi*.333;cpx=rdd*cos(x); |
1c80 | 63 70 7a 3d 72 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a 64 | cpz=rdd*sin(x);....//.Camera..zd |
1ca0 | 69 73 74 3d 72 65 67 30 30 3b 72 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d 72 | ist=reg00;ry=reg01;oy=reg02;rx=r |
1cc0 | 65 67 30 33 3b 73 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a 63 79 74 3d 72 65 67 30 37 3b 73 79 74 | eg03;steps=reg09;..cyt=reg07;syt |
1ce0 | 3d 72 65 67 30 38 3b 0d 0a 72 6f 66 66 3d 28 28 28 28 61 62 73 28 33 2a 72 79 2f 24 70 69 2b 2e | =reg08;..roff=((((abs(3*ry/$pi+. |
1d00 | 35 29 7c 30 29 25 36 29 2a 73 69 67 6e 28 72 79 29 2b 31 32 29 25 36 29 3b 0d 0a 72 79 3d 72 79 | 5)|0)%6)*sign(ry)+12)%6);..ry=ry |
1d20 | 2d 28 72 6f 66 66 2b 31 29 2a 24 70 69 2f 33 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d | -(roff+1)*$pi/3;..cx=cos(rx);sx= |
1d40 | 73 69 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b | sin(rx);..cy=cos(ry);sy=sin(ry); |
1d60 | 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 73 70 6f 6e 73 65 0d 0a 6e 3d 69 66 28 65 71 75 61 | ....//.Sound.response..n=if(equa |
1d80 | 6c 28 72 6f 66 66 2c 30 29 2c 72 65 67 32 31 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 31 29 | l(roff,0),reg21,if(equal(roff,1) |
1da0 | 2c 72 65 67 32 33 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 32 29 2c 72 65 67 32 35 2c 69 66 | ,reg23,if(equal(roff,2),reg25,if |
1dc0 | 28 65 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c 72 65 67 32 37 2c 69 66 28 65 71 75 61 6c 28 72 6f | (equal(roff,3),reg27,if(equal(ro |
1de0 | 66 66 2c 34 29 2c 72 65 67 31 37 2c 72 65 67 31 39 29 29 29 29 29 3b 0d 0a 6e 3d 28 28 6e 2a 73 | ff,4),reg17,reg19)))));..n=((n*s |
1e00 | 74 65 70 73 29 7c 30 29 3b 72 65 73 70 3d 72 65 67 33 30 3b 0d 0a 70 79 3d 6f 79 2d 6e 2a 72 65 | teps)|0);resp=reg30;..py=oy-n*re |
1e20 | 73 70 3b 0d 0a 6e 3d 32 35 2a 77 2f 33 32 30 3b 0d 0a 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 | sp;..n=25*w/320;......//.State.v |
1e40 | 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d 77 2f 68 3b 70 3d 30 3b 00 00 00 | ars..cs=$pi*.3333;af=w/h;p=0;... |
1e60 | 00 00 26 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 31 35 20 54 6f 70 0d 0a 6e 3d 30 3b 72 64 64 3d | ..&...//.Column.15.Top..n=0;rdd= |
1e80 | 31 2e 37 33 3b 70 6f 73 3d 34 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 | 1.73;pos=4;.................$... |
1ea0 | 63 05 00 00 01 e3 02 00 00 2f 2f 20 53 65 74 20 75 70 20 63 6f 6c 75 6d 6e 0d 0a 71 3d 69 66 28 | c........//.Set.up.column..q=if( |
1ec0 | 6f 64 64 2c 33 2d 70 2c 70 29 3b 0d 0a 61 3d 63 73 2a 28 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d 0a | odd,3-p,p);..a=cs*(q+.5+poff);.. |
1ee0 | 70 78 3d 63 6f 73 28 61 29 2a 2e 35 2b 63 70 78 3b 70 7a 3d 73 69 6e 28 61 29 2a 2e 35 2b 63 70 | px=cos(a)*.5+cpx;pz=sin(a)*.5+cp |
1f00 | 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f 72 6d 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a | z;....//.Transform.and.project.. |
1f20 | 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a | x1=px*cy-pz*sy;z1=px*sy+pz*cy;.. |
1f40 | 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 | y2=py*cx-z1*sx;z2=py*sx+z1*cx+zd |
1f60 | 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 | ist;..z2=z2*.75;..z2=if(below(z2 |
1f80 | 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a | ,.02),0,1/z2);..x=x1*z2;y=y2*z2* |
1fa0 | 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 52 65 63 61 6c 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e | af-.1;....//.Recalculate.for.lin |
1fc0 | 65 61 72 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 0d 0a 71 3d 69 66 28 6f 64 | ear.texture.coordinates..q=if(od |
1fe0 | 64 2c 32 2e 35 2d 65 71 75 61 6c 28 70 2c 32 29 2c 6d 61 78 28 2e 35 2c 70 2d 2e 35 29 29 2d 33 | d,2.5-equal(p,2),max(.5,p-.5))-3 |
2000 | 3b 0d 0a 61 3d 63 73 2a 28 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a | ;..a=cs*(q+.5+poff);..px=cos(a)* |
2020 | 2e 35 3b 70 7a 3d 73 69 6e 28 61 29 2a 2e 35 3b 0d 0a 78 31 3d 70 78 2a 63 79 74 2d 70 7a 2a 73 | .5;pz=sin(a)*.5;..x1=px*cyt-pz*s |
2040 | 79 74 2d 72 64 64 2a 33 2e 3b 7a 31 3d 70 78 2a 73 79 74 2b 70 7a 2a 63 79 74 3b 0d 0a 79 32 3d | yt-rdd*3.;z1=px*syt+pz*cyt;..y2= |
2060 | 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 | py*cx-z1*sx;z2=py*sx+z1*cx+zdist |
2080 | 3b 0d 0a 2f 2f 20 46 61 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 69 6e 67 0d 0a | ;..//.Fake.environment.mapping.. |
20a0 | 61 3d 78 31 2a 32 37 2b 73 69 6e 28 79 32 2d 78 31 2a 33 29 2a 32 2b 35 3b 62 3d 79 32 2a 2e 38 | a=x1*27+sin(y2-x1*3)*2+5;b=y2*.8 |
20c0 | 2d 78 31 2a 32 2e 31 2b 2e 35 3b 63 3d 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d 28 63 2b 73 69 6e | -x1*2.1+.5;c=cos(a);..red=(c+sin |
20e0 | 28 62 29 29 2a 2e 33 30 2b 2e 37 3b 0d 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 2b 2e 32 29 2b 73 | (b))*.30+.7;..green=(cos(a+.2)+s |
2100 | 69 6e 28 62 2d 2e 31 29 2a 31 2e 32 29 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 | in(b-.1)*1.2)*.30+.5;..blue=(c+s |
2120 | 69 6e 28 62 2b 2e 32 29 2a 31 2e 35 29 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 | in(b+.2)*1.5)*.30+.0;....//.Stat |
2140 | 65 20 76 61 72 73 0d 0a 70 3d 28 70 2b 31 29 25 33 3b 70 79 3d 70 79 2d 65 71 75 61 6c 28 70 2c | e.vars..p=(p+1)%3;py=py-equal(p, |
2160 | 30 29 2a 72 65 73 70 3b 0d 0a 6f 64 64 3d 69 66 28 65 71 75 61 6c 28 70 2c 30 29 2c 62 6e 6f 74 | 0)*resp;..odd=if(equal(p,0),bnot |
2180 | 28 6f 64 64 29 2c 6f 64 64 29 3b 00 3d 02 00 00 2f 2f 20 53 65 74 75 70 20 63 6f 6c 75 6d 6e 0d | (odd),odd);.=...//.Setup.column. |
21a0 | 0a 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 70 78 3d 72 64 64 2a 63 6f 73 28 78 29 3b 63 | .x=pos*$pi*.333;cpx=rdd*cos(x);c |
21c0 | 70 7a 3d 72 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a 64 69 | pz=rdd*sin(x);....//.Camera..zdi |
21e0 | 73 74 3d 72 65 67 30 30 3b 72 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d 72 65 | st=reg00;ry=reg01;oy=reg02;rx=re |
2200 | 67 30 33 3b 73 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a 63 79 74 3d 72 65 67 30 37 3b 73 79 74 3d | g03;steps=reg09;..cyt=reg07;syt= |
2220 | 72 65 67 30 38 3b 0d 0a 72 6f 66 66 3d 28 28 28 28 61 62 73 28 33 2a 72 79 2f 24 70 69 2b 2e 35 | reg08;..roff=((((abs(3*ry/$pi+.5 |
2240 | 29 7c 30 29 25 36 29 2a 73 69 67 6e 28 72 79 29 2b 31 32 29 25 36 29 3b 0d 0a 72 79 3d 72 79 2d | )|0)%6)*sign(ry)+12)%6);..ry=ry- |
2260 | 28 72 6f 66 66 2b 31 29 2a 24 70 69 2f 33 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d 73 | (roff+1)*$pi/3;..cx=cos(rx);sx=s |
2280 | 69 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b 0d | in(rx);..cy=cos(ry);sy=sin(ry);. |
22a0 | 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 73 70 6f 6e 73 65 0d 0a 6e 3d 69 66 28 65 71 75 61 6c | ...//.Sound.response..n=if(equal |
22c0 | 28 72 6f 66 66 2c 30 29 2c 72 65 67 32 33 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 31 29 2c | (roff,0),reg23,if(equal(roff,1), |
22e0 | 72 65 67 32 35 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 32 29 2c 72 65 67 32 37 2c 69 66 28 | reg25,if(equal(roff,2),reg27,if( |
2300 | 65 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c 72 65 67 31 37 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 | equal(roff,3),reg17,if(equal(rof |
2320 | 66 2c 34 29 2c 72 65 67 31 39 2c 72 65 67 32 31 29 29 29 29 29 3b 0d 0a 6e 3d 28 28 6e 2a 73 74 | f,4),reg19,reg21)))));..n=((n*st |
2340 | 65 70 73 29 7c 30 29 2a 33 2b 33 3b 72 65 73 70 3d 72 65 67 33 30 3b 0d 0a 70 79 3d 6f 79 3b 0d | eps)|0)*3+3;resp=reg30;..py=oy;. |
2360 | 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 | ...//.State.vars..cs=$pi*.3333;a |
2380 | 66 3d 77 2f 68 3b 70 3d 30 3b 0d 0a 70 6f 66 66 3d 28 2d 33 2a 72 79 2f 24 70 69 2b 2e 35 29 3b | f=w/h;p=0;..poff=(-3*ry/$pi+.5); |
23a0 | 0d 0a 70 6f 66 66 3d 28 61 62 73 28 70 6f 66 66 29 25 36 29 2a 73 69 67 6e 28 70 6f 66 66 29 2b | ..poff=(abs(poff)%6)*sign(poff)+ |
23c0 | 32 2e 35 3b 0d 0a 6f 64 64 3d 30 3b 00 00 00 00 00 22 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 31 | 2.5;..odd=0;....."...//.Column.1 |
23e0 | 33 0d 0a 6e 3d 30 3b 72 64 64 3d 31 2e 37 33 3b 70 6f 73 3d 33 3b 00 02 00 00 00 01 00 00 00 ff | 3..n=0;rdd=1.73;pos=3;.......... |
2400 | ff ff 00 01 00 00 00 24 00 00 00 9f 04 00 00 01 4b 02 00 00 2f 2f 20 53 65 74 20 75 70 20 63 6f | .......$........K...//.Set.up.co |
2420 | 6c 75 6d 6e 0d 0a 70 7a 3d 28 69 2d 2e 35 29 2a 2e 38 36 36 3b 70 78 3d 28 70 2d 2e 35 29 2a 28 | lumn..pz=(i-.5)*.866;px=(p-.5)*( |
2440 | 31 2d 61 62 73 28 69 2d 2e 35 29 29 3b 0d 0a 70 78 3d 70 78 2b 63 70 78 3b 70 7a 3d 70 7a 2b 63 | 1-abs(i-.5));..px=px+cpx;pz=pz+c |
2460 | 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f 72 6d 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d | pz;....//.Transform.and.project. |
2480 | 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d | .x1=px*cy-pz*sy;z1=px*sy+pz*cy;. |
24a0 | 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a | .y2=py*cx-z1*sx;z2=py*sx+z1*cx+z |
24c0 | 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b 20 20 20 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f | dist;..z2=z2*.75;.....z2=if(belo |
24e0 | 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 | w(z2,.02),0,1/z2);..x=x1*z2;y=y2 |
2500 | 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 52 65 63 61 6c 63 75 6c 61 74 65 20 66 6f 72 | *z2*af-.1;....//.Recalculate.for |
2520 | 20 6c 69 6e 65 61 72 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 0d 0a 70 78 3d | .linear.texture.coordinates..px= |
2540 | 63 70 78 3b 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a | cpx;..x1=px*cy-pz*sy;z1=px*sy+pz |
2560 | 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 | *cy;..y2=py*cx-z1*sx;z2=py*sx+z1 |
2580 | 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 | *cx+zdist;..//.Fake.environment. |
25a0 | 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 31 2b 73 69 6e 28 79 32 2a 2e 37 2d 78 31 2a 2e 36 29 2a 32 | mapping..a=x1+sin(y2*.7-x1*.6)*2 |
25c0 | 2b 35 3b 62 3d 79 32 2a 2e 35 2d 78 31 2a 31 2e 31 2b 2e 35 3b 63 3d 63 6f 73 28 61 29 3b 0d 0a | +5;b=y2*.5-x1*1.1+.5;c=cos(a);.. |
25e0 | 72 65 64 3d 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 30 2b 2e 37 3b 0d 0a 67 72 65 65 6e 3d 28 63 | red=(c+sin(b))*.30+.7;..green=(c |
2600 | 6f 73 28 61 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 29 2a 31 2e 32 29 2a 2e 33 30 2b 2e 35 3b 0d | os(a+.2)+sin(b-.1)*1.2)*.30+.5;. |
2620 | 0a 62 6c 75 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 29 2a 31 2e 35 29 2a 2e 33 30 2b 2e 30 3b 0d | .blue=(c+sin(b+.2)*1.5)*.30+.0;. |
2640 | 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 70 3d 62 6e 6f 74 28 70 29 3b 0d 0a 00 0d | ...//.State.vars..p=bnot(p);.... |
2660 | 02 00 00 2f 2f 20 53 65 74 75 70 20 63 6f 6c 75 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 | ...//.Setup.column..x=pos*$pi*.3 |
2680 | 33 33 3b 63 70 78 3d 72 64 64 2a 63 6f 73 28 78 29 3b 63 70 7a 3d 72 64 64 2a 73 69 6e 28 78 29 | 33;cpx=rdd*cos(x);cpz=rdd*sin(x) |
26a0 | 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a 64 69 73 74 3d 72 65 67 30 30 3b 72 79 3d 72 | ;....//.Camera..zdist=reg00;ry=r |
26c0 | 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d 72 65 67 30 33 3b 73 74 65 70 73 3d 72 65 67 | eg01;oy=reg02;rx=reg03;steps=reg |
26e0 | 30 39 3b 0d 0a 63 79 74 3d 72 65 67 30 37 3b 73 79 74 3d 72 65 67 30 38 3b 0d 0a 72 6f 66 66 3d | 09;..cyt=reg07;syt=reg08;..roff= |
2700 | 28 28 28 28 61 62 73 28 33 2a 72 79 2f 24 70 69 2b 2e 35 29 7c 30 29 25 36 29 2a 73 69 67 6e 28 | ((((abs(3*ry/$pi+.5)|0)%6)*sign( |
2720 | 72 79 29 2b 31 32 29 25 36 29 3b 0d 0a 72 79 3d 72 79 2d 28 72 6f 66 66 2b 31 29 2a 24 70 69 2f | ry)+12)%6);..ry=ry-(roff+1)*$pi/ |
2740 | 33 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d 73 69 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 | 3;..cx=cos(rx);sx=sin(rx);..cy=c |
2760 | 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 | os(ry);sy=sin(ry);....//.Sound.r |
2780 | 65 73 70 6f 6e 73 65 0d 0a 6e 3d 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 30 29 2c 72 65 67 32 | esponse..n=if(equal(roff,0),reg2 |
27a0 | 33 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 31 29 2c 72 65 67 32 35 2c 69 66 28 65 71 75 61 | 3,if(equal(roff,1),reg25,if(equa |
27c0 | 6c 28 72 6f 66 66 2c 32 29 2c 72 65 67 32 37 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 33 29 | l(roff,2),reg27,if(equal(roff,3) |
27e0 | 2c 72 65 67 31 37 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 34 29 2c 72 65 67 31 39 2c 72 65 | ,reg17,if(equal(roff,4),reg19,re |
2800 | 67 32 31 29 29 29 29 29 3b 0d 0a 6e 3d 28 28 6e 2a 73 74 65 70 73 29 7c 30 29 3b 72 65 73 70 3d | g21)))));..n=((n*steps)|0);resp= |
2820 | 72 65 67 33 30 3b 0d 0a 70 79 3d 6f 79 2d 6e 2a 72 65 73 70 3b 0d 0a 6e 3d 32 35 2a 77 2f 33 32 | reg30;..py=oy-n*resp;..n=25*w/32 |
2840 | 30 3b 0d 0a 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 | 0;......//.State.vars..cs=$pi*.3 |
2860 | 33 33 33 3b 61 66 3d 77 2f 68 3b 70 3d 30 3b 00 00 00 00 00 26 00 00 00 2f 2f 20 43 6f 6c 75 6d | 333;af=w/h;p=0;.....&...//.Colum |
2880 | 6e 20 31 33 20 54 6f 70 0d 0a 6e 3d 30 3b 72 64 64 3d 31 2e 37 33 3b 70 6f 73 3d 33 3b 00 02 00 | n.13.Top..n=0;rdd=1.73;pos=3;... |
28a0 | 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 63 05 00 00 01 e3 02 00 00 2f 2f 20 53 65 | ..............$...c........//.Se |
28c0 | 74 20 75 70 20 63 6f 6c 75 6d 6e 0d 0a 71 3d 69 66 28 6f 64 64 2c 33 2d 70 2c 70 29 3b 0d 0a 61 | t.up.column..q=if(odd,3-p,p);..a |
28e0 | 3d 63 73 2a 28 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 2e 35 2b 63 | =cs*(q+.5+poff);..px=cos(a)*.5+c |
2900 | 70 78 3b 70 7a 3d 73 69 6e 28 61 29 2a 2e 35 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 | px;pz=sin(a)*.5+cpz;....//.Trans |
2920 | 66 6f 72 6d 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 | form.and.project..x1=px*cy-pz*sy |
2940 | 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 | ;z1=px*sy+pz*cy;..y2=py*cx-z1*sx |
2960 | 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 | ;z2=py*sx+z1*cx+zdist;..z2=z2*.7 |
2980 | 35 3b 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b | 5;..z2=if(below(z2,.02),0,1/z2); |
29a0 | 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 52 | ..x=x1*z2;y=y2*z2*af-.1;....//.R |
29c0 | 65 63 61 6c 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 78 74 75 72 65 20 63 6f | ecalculate.for.linear.texture.co |
29e0 | 6f 72 64 69 6e 61 74 65 73 0d 0a 71 3d 69 66 28 6f 64 64 2c 32 2e 35 2d 65 71 75 61 6c 28 70 2c | ordinates..q=if(odd,2.5-equal(p, |
2a00 | 32 29 2c 6d 61 78 28 2e 35 2c 70 2d 2e 35 29 29 2d 32 3b 0d 0a 61 3d 63 73 2a 28 71 2b 2e 35 2b | 2),max(.5,p-.5))-2;..a=cs*(q+.5+ |
2a20 | 70 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 2e 35 3b 70 7a 3d 73 69 6e 28 61 29 2a 2e | poff);..px=cos(a)*.5;pz=sin(a)*. |
2a40 | 35 3b 0d 0a 78 31 3d 70 78 2a 63 79 74 2d 70 7a 2a 73 79 74 2d 72 64 64 2a 33 2e 3b 7a 31 3d 70 | 5;..x1=px*cyt-pz*syt-rdd*3.;z1=p |
2a60 | 78 2a 73 79 74 2b 70 7a 2a 63 79 74 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 | x*syt+pz*cyt;..y2=py*cx-z1*sx;z2 |
2a80 | 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 6b 65 20 65 6e 76 | =py*sx+z1*cx+zdist;..//.Fake.env |
2aa0 | 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 31 2a 32 37 2b 73 69 6e 28 79 32 | ironment.mapping..a=x1*27+sin(y2 |
2ac0 | 2d 78 31 2a 33 29 2a 32 2b 35 3b 62 3d 79 32 2a 2e 38 2d 78 31 2a 32 2e 31 2b 2e 35 3b 63 3d 63 | -x1*3)*2+5;b=y2*.8-x1*2.1+.5;c=c |
2ae0 | 6f 73 28 61 29 3b 0d 0a 72 65 64 3d 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 30 2b 2e 37 3b 0d 0a | os(a);..red=(c+sin(b))*.30+.7;.. |
2b00 | 67 72 65 65 6e 3d 28 63 6f 73 28 61 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 29 2a 31 2e 32 29 2a | green=(cos(a+.2)+sin(b-.1)*1.2)* |
2b20 | 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 29 2a 31 2e 35 29 2a | .30+.5;..blue=(c+sin(b+.2)*1.5)* |
2b40 | 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 70 3d 28 70 2b 31 | .30+.0;....//.State.vars..p=(p+1 |
2b60 | 29 25 33 3b 70 79 3d 70 79 2d 65 71 75 61 6c 28 70 2c 30 29 2a 72 65 73 70 3b 0d 0a 6f 64 64 3d | )%3;py=py-equal(p,0)*resp;..odd= |
2b80 | 69 66 28 65 71 75 61 6c 28 70 2c 30 29 2c 62 6e 6f 74 28 6f 64 64 29 2c 6f 64 64 29 3b 00 3d 02 | if(equal(p,0),bnot(odd),odd);.=. |
2ba0 | 00 00 2f 2f 20 53 65 74 75 70 20 63 6f 6c 75 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 33 | ..//.Setup.column..x=pos*$pi*.33 |
2bc0 | 33 3b 63 70 78 3d 72 64 64 2a 63 6f 73 28 78 29 3b 63 70 7a 3d 72 64 64 2a 73 69 6e 28 78 29 3b | 3;cpx=rdd*cos(x);cpz=rdd*sin(x); |
2be0 | 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a 64 69 73 74 3d 72 65 67 30 30 3b 72 79 3d 72 65 | ....//.Camera..zdist=reg00;ry=re |
2c00 | 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d 72 65 67 30 33 3b 73 74 65 70 73 3d 72 65 67 30 | g01;oy=reg02;rx=reg03;steps=reg0 |
2c20 | 39 3b 0d 0a 63 79 74 3d 72 65 67 30 37 3b 73 79 74 3d 72 65 67 30 38 3b 0d 0a 72 6f 66 66 3d 28 | 9;..cyt=reg07;syt=reg08;..roff=( |
2c40 | 28 28 28 61 62 73 28 33 2a 72 79 2f 24 70 69 2b 2e 35 29 7c 30 29 25 36 29 2a 73 69 67 6e 28 72 | (((abs(3*ry/$pi+.5)|0)%6)*sign(r |
2c60 | 79 29 2b 31 32 29 25 36 29 3b 0d 0a 72 79 3d 72 79 2d 28 72 6f 66 66 2b 31 29 2a 24 70 69 2f 33 | y)+12)%6);..ry=ry-(roff+1)*$pi/3 |
2c80 | 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d 73 69 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f | ;..cx=cos(rx);sx=sin(rx);..cy=co |
2ca0 | 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 | s(ry);sy=sin(ry);....//.Sound.re |
2cc0 | 73 70 6f 6e 73 65 0d 0a 6e 3d 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 30 29 2c 72 65 67 32 35 | sponse..n=if(equal(roff,0),reg25 |
2ce0 | 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 31 29 2c 72 65 67 32 37 2c 69 66 28 65 71 75 61 6c | ,if(equal(roff,1),reg27,if(equal |
2d00 | 28 72 6f 66 66 2c 32 29 2c 72 65 67 31 37 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c | (roff,2),reg17,if(equal(roff,3), |
2d20 | 72 65 67 31 39 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 34 29 2c 72 65 67 32 31 2c 72 65 67 | reg19,if(equal(roff,4),reg21,reg |
2d40 | 32 33 29 29 29 29 29 3b 0d 0a 6e 3d 28 28 6e 2a 73 74 65 70 73 29 7c 30 29 2a 33 2b 33 3b 72 65 | 23)))));..n=((n*steps)|0)*3+3;re |
2d60 | 73 70 3d 72 65 67 33 30 3b 0d 0a 70 79 3d 6f 79 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 | sp=reg30;..py=oy;....//.State.va |
2d80 | 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d 77 2f 68 3b 70 3d 30 3b 0d 0a 70 6f | rs..cs=$pi*.3333;af=w/h;p=0;..po |
2da0 | 66 66 3d 28 2d 33 2a 72 79 2f 24 70 69 2d 2e 35 29 3b 0d 0a 70 6f 66 66 3d 28 61 62 73 28 70 6f | ff=(-3*ry/$pi-.5);..poff=(abs(po |
2dc0 | 66 66 29 25 36 29 2a 73 69 67 6e 28 70 6f 66 66 29 2b 32 2e 35 3b 0d 0a 6f 64 64 3d 30 3b 00 00 | ff)%6)*sign(poff)+2.5;..odd=0;.. |
2de0 | 00 00 00 22 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 31 31 0d 0a 6e 3d 30 3b 72 64 64 3d 31 2e 37 | ..."...//.Column.11..n=0;rdd=1.7 |
2e00 | 33 3b 70 6f 73 3d 32 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 9f 04 00 | 3;pos=2;.................$...... |
2e20 | 00 01 4b 02 00 00 2f 2f 20 53 65 74 20 75 70 20 63 6f 6c 75 6d 6e 0d 0a 70 7a 3d 28 69 2d 2e 35 | ..K...//.Set.up.column..pz=(i-.5 |
2e40 | 29 2a 2e 38 36 36 3b 70 78 3d 28 70 2d 2e 35 29 2a 28 31 2d 61 62 73 28 69 2d 2e 35 29 29 3b 0d | )*.866;px=(p-.5)*(1-abs(i-.5));. |
2e60 | 0a 70 78 3d 70 78 2b 63 70 78 3b 70 7a 3d 70 7a 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e | .px=px+cpx;pz=pz+cpz;....//.Tran |
2e80 | 73 66 6f 72 6d 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 | sform.and.project..x1=px*cy-pz*s |
2ea0 | 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 | y;z1=px*sy+pz*cy;..y2=py*cx-z1*s |
2ec0 | 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e | x;z2=py*sx+z1*cx+zdist;..z2=z2*. |
2ee0 | 37 35 3b 20 20 20 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f | 75;.....z2=if(below(z2,.02),0,1/ |
2f00 | 7a 32 29 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a | z2);..x=x1*z2;y=y2*z2*af-.1;.... |
2f20 | 2f 2f 20 52 65 63 61 6c 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 78 74 75 72 | //.Recalculate.for.linear.textur |
2f40 | 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 0d 0a 70 78 3d 63 70 78 3b 0d 0a 78 31 3d 70 78 2a 63 79 | e.coordinates..px=cpx;..x1=px*cy |
2f60 | 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 | -pz*sy;z1=px*sy+pz*cy;..y2=py*cx |
2f80 | 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f | -z1*sx;z2=py*sx+z1*cx+zdist;..// |
2fa0 | 20 46 61 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 31 2b | .Fake.environment.mapping..a=x1+ |
2fc0 | 73 69 6e 28 79 32 2a 2e 37 2d 78 31 2a 2e 36 29 2a 32 2b 35 3b 62 3d 79 32 2a 2e 35 2d 78 31 2a | sin(y2*.7-x1*.6)*2+5;b=y2*.5-x1* |
2fe0 | 31 2e 31 2b 2e 35 3b 63 3d 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d 28 63 2b 73 69 6e 28 62 29 29 | 1.1+.5;c=cos(a);..red=(c+sin(b)) |
3000 | 2a 2e 33 30 2b 2e 37 3b 0d 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 2b 2e 32 29 2b 73 69 6e 28 62 | *.30+.7;..green=(cos(a+.2)+sin(b |
3020 | 2d 2e 31 29 2a 31 2e 32 29 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 69 6e 28 62 | -.1)*1.2)*.30+.5;..blue=(c+sin(b |
3040 | 2b 2e 32 29 2a 31 2e 35 29 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 | +.2)*1.5)*.30+.0;....//.State.va |
3060 | 72 73 0d 0a 70 3d 62 6e 6f 74 28 70 29 3b 0d 0a 00 0d 02 00 00 2f 2f 20 53 65 74 75 70 20 63 6f | rs..p=bnot(p);.......//.Setup.co |
3080 | 6c 75 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 70 78 3d 72 64 64 2a 63 6f 73 | lumn..x=pos*$pi*.333;cpx=rdd*cos |
30a0 | 28 78 29 3b 63 70 7a 3d 72 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 72 61 | (x);cpz=rdd*sin(x);....//.Camera |
30c0 | 0d 0a 7a 64 69 73 74 3d 72 65 67 30 30 3b 72 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b | ..zdist=reg00;ry=reg01;oy=reg02; |
30e0 | 72 78 3d 72 65 67 30 33 3b 73 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a 63 79 74 3d 72 65 67 30 37 | rx=reg03;steps=reg09;..cyt=reg07 |
3100 | 3b 73 79 74 3d 72 65 67 30 38 3b 0d 0a 72 6f 66 66 3d 28 28 28 28 61 62 73 28 33 2a 72 79 2f 24 | ;syt=reg08;..roff=((((abs(3*ry/$ |
3120 | 70 69 2b 2e 35 29 7c 30 29 25 36 29 2a 73 69 67 6e 28 72 79 29 2b 31 32 29 25 36 29 3b 0d 0a 72 | pi+.5)|0)%6)*sign(ry)+12)%6);..r |
3140 | 79 3d 72 79 2d 28 72 6f 66 66 2b 31 29 2a 24 70 69 2f 33 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 | y=ry-(roff+1)*$pi/3;..cx=cos(rx) |
3160 | 3b 73 78 3d 73 69 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 | ;sx=sin(rx);..cy=cos(ry);sy=sin( |
3180 | 72 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 73 70 6f 6e 73 65 0d 0a 6e 3d 69 66 28 | ry);....//.Sound.response..n=if( |
31a0 | 65 71 75 61 6c 28 72 6f 66 66 2c 30 29 2c 72 65 67 32 35 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 | equal(roff,0),reg25,if(equal(rof |
31c0 | 66 2c 31 29 2c 72 65 67 32 37 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 32 29 2c 72 65 67 31 | f,1),reg27,if(equal(roff,2),reg1 |
31e0 | 37 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c 72 65 67 31 39 2c 69 66 28 65 71 75 61 | 7,if(equal(roff,3),reg19,if(equa |
3200 | 6c 28 72 6f 66 66 2c 34 29 2c 72 65 67 32 31 2c 72 65 67 32 33 29 29 29 29 29 3b 0d 0a 6e 3d 28 | l(roff,4),reg21,reg23)))));..n=( |
3220 | 28 6e 2a 73 74 65 70 73 29 7c 30 29 3b 72 65 73 70 3d 72 65 67 33 30 3b 0d 0a 70 79 3d 6f 79 2d | (n*steps)|0);resp=reg30;..py=oy- |
3240 | 6e 2a 72 65 73 70 3b 0d 0a 6e 3d 32 35 2a 77 2f 33 32 30 3b 0d 0a 0d 0a 0d 0a 2f 2f 20 53 74 61 | n*resp;..n=25*w/320;......//.Sta |
3260 | 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d 77 2f 68 3b 70 3d 30 | te.vars..cs=$pi*.3333;af=w/h;p=0 |
3280 | 3b 00 00 00 00 00 26 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 31 31 20 54 6f 70 0d 0a 6e 3d 30 3b | ;.....&...//.Column.11.Top..n=0; |
32a0 | 72 64 64 3d 31 2e 37 33 3b 70 6f 73 3d 32 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 | rdd=1.73;pos=2;................. |
32c0 | 28 00 00 00 04 00 00 00 00 00 07 80 24 00 00 00 5f 05 00 00 01 e6 02 00 00 2f 2f 20 53 65 74 20 | (...........$..._........//.Set. |
32e0 | 75 70 20 63 6f 6c 75 6d 6e 0d 0a 71 3d 69 66 28 6f 64 64 2c 33 2d 70 2c 70 29 3b 0d 0a 61 3d 63 | up.column..q=if(odd,3-p,p);..a=c |
3300 | 73 2a 28 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 2e 35 2b 63 70 78 | s*(q+.5+poff);..px=cos(a)*.5+cpx |
3320 | 3b 70 7a 3d 73 69 6e 28 61 29 2a 2e 35 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f | ;pz=sin(a)*.5+cpz;....//.Transfo |
3340 | 72 6d 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a | rm.and.project..x1=px*cy-pz*sy;z |
3360 | 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a | 1=px*sy+pz*cy;..y2=py*cx-z1*sx;z |
3380 | 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b | 2=py*sx+z1*cx+zdist;..z2=z2*.75; |
33a0 | 20 20 20 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 | .....z2=if(below(z2,.02),0,1/z2) |
33c0 | 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 | ;..x=x1*z2;y=y2*z2*af-.1;....//. |
33e0 | 52 65 63 61 6c 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 78 74 75 72 65 20 63 | Recalculate.for.linear.texture.c |
3400 | 6f 6f 72 64 69 6e 61 74 65 73 0d 0a 71 3d 69 66 28 6f 64 64 2c 32 2e 35 2d 65 71 75 61 6c 28 70 | oordinates..q=if(odd,2.5-equal(p |
3420 | 2c 32 29 2c 6d 61 78 28 2e 35 2c 70 2d 2e 35 29 29 2b 33 3b 0d 0a 61 3d 63 73 2a 28 71 2b 2e 35 | ,2),max(.5,p-.5))+3;..a=cs*(q+.5 |
3440 | 2b 70 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 2e 35 3b 70 7a 3d 73 69 6e 28 61 29 2a | +poff);..px=cos(a)*.5;pz=sin(a)* |
3460 | 2e 35 3b 0d 0a 78 31 3d 70 78 2a 63 79 74 2d 70 7a 2a 73 79 74 2d 72 64 64 2a 33 2e 3b 7a 31 3d | .5;..x1=px*cyt-pz*syt-rdd*3.;z1= |
3480 | 70 78 2a 73 79 74 2b 70 7a 2a 63 79 74 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a | px*syt+pz*cyt;..y2=py*cx-z1*sx;z |
34a0 | 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 6b 65 20 65 6e | 2=py*sx+z1*cx+zdist;..//.Fake.en |
34c0 | 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 31 2a 32 37 2b 73 69 6e 28 79 | vironment.mapping..a=x1*27+sin(y |
34e0 | 32 2d 78 31 2a 33 29 2a 32 2b 35 3b 62 3d 79 32 2a 2e 38 2d 78 31 2a 32 2e 31 2b 2e 35 3b 63 3d | 2-x1*3)*2+5;b=y2*.8-x1*2.1+.5;c= |
3500 | 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 30 2b 2e 37 3b 0d | cos(a);..red=(c+sin(b))*.30+.7;. |
3520 | 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 29 2a 31 2e 32 29 | .green=(cos(a+.2)+sin(b-.1)*1.2) |
3540 | 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 29 2a 31 2e 35 29 | *.30+.5;..blue=(c+sin(b+.2)*1.5) |
3560 | 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 70 3d 28 70 2b | *.30+.0;....//.State.vars..p=(p+ |
3580 | 31 29 25 33 3b 70 79 3d 70 79 2d 65 71 75 61 6c 28 70 2c 30 29 2a 72 65 73 70 3b 0d 0a 6f 64 64 | 1)%3;py=py-equal(p,0)*resp;..odd |
35a0 | 3d 69 66 28 65 71 75 61 6c 28 70 2c 30 29 2c 62 6e 6f 74 28 6f 64 64 29 2c 6f 64 64 29 3b 00 37 | =if(equal(p,0),bnot(odd),odd);.7 |
35c0 | 02 00 00 2f 2f 20 53 65 74 75 70 20 63 6f 6c 75 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 | ...//.Setup.column..x=pos*$pi*.3 |
35e0 | 33 33 3b 63 70 78 3d 72 64 64 2a 63 6f 73 28 78 29 3b 63 70 7a 3d 72 64 64 2a 73 69 6e 28 78 29 | 33;cpx=rdd*cos(x);cpz=rdd*sin(x) |
3600 | 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a 64 69 73 74 3d 72 65 67 30 30 3b 72 79 3d 72 | ;....//.Camera..zdist=reg00;ry=r |
3620 | 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d 72 65 67 30 33 3b 73 74 65 70 73 3d 72 65 67 | eg01;oy=reg02;rx=reg03;steps=reg |
3640 | 30 39 3b 0d 0a 63 79 74 3d 72 65 67 30 37 3b 73 79 74 3d 72 65 67 30 38 3b 0d 0a 72 6f 66 66 3d | 09;..cyt=reg07;syt=reg08;..roff= |
3660 | 28 28 28 28 61 62 73 28 33 2a 72 79 2f 24 70 69 29 7c 30 29 25 36 29 2a 73 69 67 6e 28 72 79 29 | ((((abs(3*ry/$pi)|0)%6)*sign(ry) |
3680 | 2b 31 32 29 25 36 29 3b 0d 0a 72 79 3d 72 79 2d 28 72 6f 66 66 2b 32 29 2a 24 70 69 2f 33 3b 0d | +12)%6);..ry=ry-(roff+2)*$pi/3;. |
36a0 | 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d 73 69 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 | .cx=cos(rx);sx=sin(rx);..cy=cos( |
36c0 | 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 73 70 | ry);sy=sin(ry);....//.Sound.resp |
36e0 | 6f 6e 73 65 0d 0a 6e 3d 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 30 29 2c 72 65 67 31 34 2c 69 | onse..n=if(equal(roff,0),reg14,i |
3700 | 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 31 29 2c 72 65 67 31 35 2c 69 66 28 65 71 75 61 6c 28 72 | f(equal(roff,1),reg15,if(equal(r |
3720 | 6f 66 66 2c 32 29 2c 72 65 67 31 36 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c 72 65 | off,2),reg16,if(equal(roff,3),re |
3740 | 67 31 31 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 34 29 2c 72 65 67 31 32 2c 72 65 67 31 33 | g11,if(equal(roff,4),reg12,reg13 |
3760 | 29 29 29 29 29 3b 0d 0a 6e 3d 28 28 6e 2a 73 74 65 70 73 29 7c 30 29 2a 33 2b 33 3b 72 65 73 70 | )))));..n=((n*steps)|0)*3+3;resp |
3780 | 3d 72 65 67 33 30 3b 0d 0a 70 79 3d 6f 79 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 | =reg30;..py=oy;....//.State.vars |
37a0 | 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d 77 2f 68 3b 70 3d 30 3b 0d 0a 70 6f 66 66 | ..cs=$pi*.3333;af=w/h;p=0;..poff |
37c0 | 3d 28 2d 33 2a 72 79 2f 24 70 69 29 3b 0d 0a 70 6f 66 66 3d 28 61 62 73 28 70 6f 66 66 29 25 36 | =(-3*ry/$pi);..poff=(abs(poff)%6 |
37e0 | 29 2a 73 69 67 6e 28 70 6f 66 66 29 2b 32 2e 35 3b 0d 0a 6f 64 64 3d 30 3b 00 00 00 00 00 21 00 | )*sign(poff)+2.5;..odd=0;.....!. |
3800 | 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 34 0d 0a 6e 3d 30 3b 72 64 64 3d 31 3b 70 6f 73 3d 2d 32 2e | ..//.Column.4..n=0;rdd=1;pos=-2. |
3820 | 35 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 99 04 00 00 01 4b 02 00 00 | 5;.................$........K... |
3840 | 2f 2f 20 53 65 74 20 75 70 20 63 6f 6c 75 6d 6e 0d 0a 70 7a 3d 28 69 2d 2e 35 29 2a 2e 38 36 36 | //.Set.up.column..pz=(i-.5)*.866 |
3860 | 3b 70 78 3d 28 70 2d 2e 35 29 2a 28 31 2d 61 62 73 28 69 2d 2e 35 29 29 3b 0d 0a 70 78 3d 70 78 | ;px=(p-.5)*(1-abs(i-.5));..px=px |
3880 | 2b 63 70 78 3b 70 7a 3d 70 7a 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f 72 6d 20 | +cpx;pz=pz+cpz;....//.Transform. |
38a0 | 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 | and.project..x1=px*cy-pz*sy;z1=p |
38c0 | 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 | x*sy+pz*cy;..y2=py*cx-z1*sx;z2=p |
38e0 | 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b 20 20 20 | y*sx+z1*cx+zdist;..z2=z2*.75;... |
3900 | 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b 0d 0a | ..z2=if(below(z2,.02),0,1/z2);.. |
3920 | 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 52 65 63 | x=x1*z2;y=y2*z2*af-.1;....//.Rec |
3940 | 61 6c 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 78 74 75 72 65 20 63 6f 6f 72 | alculate.for.linear.texture.coor |
3960 | 64 69 6e 61 74 65 73 0d 0a 70 78 3d 63 70 78 3b 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 | dinates..px=cpx;..x1=px*cy-pz*sy |
3980 | 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 | ;z1=px*sy+pz*cy;..y2=py*cx-z1*sx |
39a0 | 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 6b 65 20 | ;z2=py*sx+z1*cx+zdist;..//.Fake. |
39c0 | 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 31 2b 73 69 6e 28 79 32 | environment.mapping..a=x1+sin(y2 |
39e0 | 2a 2e 37 2d 78 31 2a 2e 36 29 2a 32 2b 35 3b 62 3d 79 32 2a 2e 35 2d 78 31 2a 31 2e 31 2b 2e 35 | *.7-x1*.6)*2+5;b=y2*.5-x1*1.1+.5 |
3a00 | 3b 63 3d 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 30 2b 2e | ;c=cos(a);..red=(c+sin(b))*.30+. |
3a20 | 37 3b 0d 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 29 2a 31 | 7;..green=(cos(a+.2)+sin(b-.1)*1 |
3a40 | 2e 32 29 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 29 2a 31 | .2)*.30+.5;..blue=(c+sin(b+.2)*1 |
3a60 | 2e 35 29 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 70 3d | .5)*.30+.0;....//.State.vars..p= |
3a80 | 62 6e 6f 74 28 70 29 3b 0d 0a 00 08 02 00 00 2f 2f 20 53 65 74 75 70 20 63 6f 6c 75 6d 6e 0d 0a | bnot(p);.......//.Setup.column.. |
3aa0 | 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 70 78 3d 72 64 64 2a 63 6f 73 28 78 29 3b 63 70 | x=pos*$pi*.333;cpx=rdd*cos(x);cp |
3ac0 | 7a 3d 72 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a 64 69 73 | z=rdd*sin(x);....//.Camera..zdis |
3ae0 | 74 3d 72 65 67 30 30 3b 72 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d 72 65 67 | t=reg00;ry=reg01;oy=reg02;rx=reg |
3b00 | 30 33 3b 73 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a 63 79 74 3d 72 65 67 30 37 3b 73 79 74 3d 72 | 03;steps=reg09;..cyt=reg07;syt=r |
3b20 | 65 67 30 38 3b 0d 0a 72 6f 66 66 3d 28 28 28 28 61 62 73 28 33 2a 72 79 2f 24 70 69 29 7c 30 29 | eg08;..roff=((((abs(3*ry/$pi)|0) |
3b40 | 25 36 29 2a 73 69 67 6e 28 72 79 29 2b 31 32 29 25 36 29 3b 0d 0a 72 79 3d 72 79 2d 28 72 6f 66 | %6)*sign(ry)+12)%6);..ry=ry-(rof |
3b60 | 66 2b 32 29 2a 24 70 69 2f 33 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d 73 69 6e 28 72 | f+2)*$pi/3;..cx=cos(rx);sx=sin(r |
3b80 | 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a 2f | x);..cy=cos(ry);sy=sin(ry);..../ |
3ba0 | 2f 20 53 6f 75 6e 64 20 72 65 73 70 6f 6e 73 65 0d 0a 6e 3d 69 66 28 65 71 75 61 6c 28 72 6f 66 | /.Sound.response..n=if(equal(rof |
3bc0 | 66 2c 30 29 2c 72 65 67 31 34 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 31 29 2c 72 65 67 31 | f,0),reg14,if(equal(roff,1),reg1 |
3be0 | 35 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 32 29 2c 72 65 67 31 36 2c 69 66 28 65 71 75 61 | 5,if(equal(roff,2),reg16,if(equa |
3c00 | 6c 28 72 6f 66 66 2c 33 29 2c 72 65 67 31 31 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 34 29 | l(roff,3),reg11,if(equal(roff,4) |
3c20 | 2c 72 65 67 31 32 2c 72 65 67 31 33 29 29 29 29 29 3b 0d 0a 6e 3d 28 28 6e 2a 73 74 65 70 73 29 | ,reg12,reg13)))));..n=((n*steps) |
3c40 | 7c 30 29 3b 72 65 73 70 3d 72 65 67 33 30 3b 0d 0a 70 79 3d 6f 79 2d 6e 2a 72 65 73 70 3b 0d 0a | |0);resp=reg30;..py=oy-n*resp;.. |
3c60 | 6e 3d 33 35 2a 77 2f 33 32 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 63 73 | n=35*w/320;....//.State.vars..cs |
3c80 | 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d 77 2f 68 3b 70 3d 30 3b 00 00 00 00 00 25 00 00 00 2f | =$pi*.3333;af=w/h;p=0;.....%.../ |
3ca0 | 2f 20 43 6f 6c 75 6d 6e 20 34 20 54 6f 70 0d 0a 6e 3d 30 3b 72 64 64 3d 31 3b 70 6f 73 3d 2d 32 | /.Column.4.Top..n=0;rdd=1;pos=-2 |
3cc0 | 2e 35 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 5f 05 00 00 01 e6 02 00 | .5;.................$..._....... |
3ce0 | 00 2f 2f 20 53 65 74 20 75 70 20 63 6f 6c 75 6d 6e 0d 0a 71 3d 69 66 28 6f 64 64 2c 33 2d 70 2c | .//.Set.up.column..q=if(odd,3-p, |
3d00 | 70 29 3b 0d 0a 61 3d 63 73 2a 28 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 28 61 | p);..a=cs*(q+.5+poff);..px=cos(a |
3d20 | 29 2a 2e 35 2b 63 70 78 3b 70 7a 3d 73 69 6e 28 61 29 2a 2e 35 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f | )*.5+cpx;pz=sin(a)*.5+cpz;....// |
3d40 | 20 54 72 61 6e 73 66 6f 72 6d 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 | .Transform.and.project..x1=px*cy |
3d60 | 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 | -pz*sy;z1=px*sy+pz*cy;..y2=py*cx |
3d80 | 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 | -z1*sx;z2=py*sx+z1*cx+zdist;..z2 |
3da0 | 3d 7a 32 2a 2e 37 35 3b 20 20 20 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 | =z2*.75;.....z2=if(below(z2,.02) |
3dc0 | 2c 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 | ,0,1/z2);..x=x1*z2;y=y2*z2*af-.1 |
3de0 | 3b 0d 0a 0d 0a 2f 2f 20 52 65 63 61 6c 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e 65 61 72 20 74 | ;....//.Recalculate.for.linear.t |
3e00 | 65 78 74 75 72 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 0d 0a 71 3d 69 66 28 6f 64 64 2c 32 2e 35 | exture.coordinates..q=if(odd,2.5 |
3e20 | 2d 65 71 75 61 6c 28 70 2c 32 29 2c 6d 61 78 28 2e 35 2c 70 2d 2e 35 29 29 2d 32 3b 0d 0a 61 3d | -equal(p,2),max(.5,p-.5))-2;..a= |
3e40 | 63 73 2a 28 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 2e 35 3b 70 7a | cs*(q+.5+poff);..px=cos(a)*.5;pz |
3e60 | 3d 73 69 6e 28 61 29 2a 2e 35 3b 0d 0a 78 31 3d 70 78 2a 63 79 74 2d 70 7a 2a 73 79 74 2d 72 64 | =sin(a)*.5;..x1=px*cyt-pz*syt-rd |
3e80 | 64 2a 33 2e 3b 7a 31 3d 70 78 2a 73 79 74 2b 70 7a 2a 63 79 74 3b 0d 0a 79 32 3d 70 79 2a 63 78 | d*3.;z1=px*syt+pz*cyt;..y2=py*cx |
3ea0 | 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f | -z1*sx;z2=py*sx+z1*cx+zdist;..// |
3ec0 | 20 46 61 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 31 2a | .Fake.environment.mapping..a=x1* |
3ee0 | 32 37 2b 73 69 6e 28 79 32 2d 78 31 2a 33 29 2a 32 2b 35 3b 62 3d 79 32 2a 2e 38 2d 78 31 2a 32 | 27+sin(y2-x1*3)*2+5;b=y2*.8-x1*2 |
3f00 | 2e 31 2b 2e 35 3b 63 3d 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d 28 63 2b 73 69 6e 28 62 29 29 2a | .1+.5;c=cos(a);..red=(c+sin(b))* |
3f20 | 2e 33 30 2b 2e 37 3b 0d 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 2b 2e 32 29 2b 73 69 6e 28 62 2d | .30+.7;..green=(cos(a+.2)+sin(b- |
3f40 | 2e 31 29 2a 31 2e 32 29 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 69 6e 28 62 2b | .1)*1.2)*.30+.5;..blue=(c+sin(b+ |
3f60 | 2e 32 29 2a 31 2e 35 29 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 | .2)*1.5)*.30+.0;....//.State.var |
3f80 | 73 0d 0a 70 3d 28 70 2b 31 29 25 33 3b 70 79 3d 70 79 2d 65 71 75 61 6c 28 70 2c 30 29 2a 72 65 | s..p=(p+1)%3;py=py-equal(p,0)*re |
3fa0 | 73 70 3b 0d 0a 6f 64 64 3d 69 66 28 65 71 75 61 6c 28 70 2c 30 29 2c 62 6e 6f 74 28 6f 64 64 29 | sp;..odd=if(equal(p,0),bnot(odd) |
3fc0 | 2c 6f 64 64 29 3b 00 37 02 00 00 2f 2f 20 53 65 74 75 70 20 63 6f 6c 75 6d 6e 0d 0a 78 3d 70 6f | ,odd);.7...//.Setup.column..x=po |
3fe0 | 73 2a 24 70 69 2a 2e 33 33 33 3b 63 70 78 3d 72 64 64 2a 63 6f 73 28 78 29 3b 63 70 7a 3d 72 64 | s*$pi*.333;cpx=rdd*cos(x);cpz=rd |
4000 | 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a 64 69 73 74 3d 72 65 | d*sin(x);....//.Camera..zdist=re |
4020 | 67 30 30 3b 72 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d 72 65 67 30 33 3b 73 | g00;ry=reg01;oy=reg02;rx=reg03;s |
4040 | 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a 63 79 74 3d 72 65 67 30 37 3b 73 79 74 3d 72 65 67 30 38 | teps=reg09;..cyt=reg07;syt=reg08 |
4060 | 3b 0d 0a 72 6f 66 66 3d 28 28 28 28 61 62 73 28 33 2a 72 79 2f 24 70 69 29 7c 30 29 25 36 29 2a | ;..roff=((((abs(3*ry/$pi)|0)%6)* |
4080 | 73 69 67 6e 28 72 79 29 2b 31 32 29 25 36 29 3b 0d 0a 72 79 3d 72 79 2d 28 72 6f 66 66 2b 32 29 | sign(ry)+12)%6);..ry=ry-(roff+2) |
40a0 | 2a 24 70 69 2f 33 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d 73 69 6e 28 72 78 29 3b 0d | *$pi/3;..cx=cos(rx);sx=sin(rx);. |
40c0 | 0a 63 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f | .cy=cos(ry);sy=sin(ry);....//.So |
40e0 | 75 6e 64 20 72 65 73 70 6f 6e 73 65 0d 0a 6e 3d 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 30 29 | und.response..n=if(equal(roff,0) |
4100 | 2c 72 65 67 31 35 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 31 29 2c 72 65 67 31 36 2c 69 66 | ,reg15,if(equal(roff,1),reg16,if |
4120 | 28 65 71 75 61 6c 28 72 6f 66 66 2c 32 29 2c 72 65 67 31 31 2c 69 66 28 65 71 75 61 6c 28 72 6f | (equal(roff,2),reg11,if(equal(ro |
4140 | 66 66 2c 33 29 2c 72 65 67 31 32 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 34 29 2c 72 65 67 | ff,3),reg12,if(equal(roff,4),reg |
4160 | 31 33 2c 72 65 67 31 34 29 29 29 29 29 3b 0d 0a 6e 3d 28 28 6e 2a 73 74 65 70 73 29 7c 30 29 2a | 13,reg14)))));..n=((n*steps)|0)* |
4180 | 33 2b 33 3b 72 65 73 70 3d 72 65 67 33 30 3b 0d 0a 70 79 3d 6f 79 3b 0d 0a 0d 0a 2f 2f 20 53 74 | 3+3;resp=reg30;..py=oy;....//.St |
41a0 | 61 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d 77 2f 68 3b 70 3d | ate.vars..cs=$pi*.3333;af=w/h;p= |
41c0 | 30 3b 0d 0a 70 6f 66 66 3d 28 2d 33 2a 72 79 2f 24 70 69 29 3b 0d 0a 70 6f 66 66 3d 28 61 62 73 | 0;..poff=(-3*ry/$pi);..poff=(abs |
41e0 | 28 70 6f 66 66 29 25 36 29 2a 73 69 67 6e 28 70 6f 66 66 29 2b 32 2e 35 3b 0d 0a 6f 64 64 3d 30 | (poff)%6)*sign(poff)+2.5;..odd=0 |
4200 | 3b 00 00 00 00 00 21 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 35 0d 0a 6e 3d 30 3b 72 64 64 3d 31 | ;.....!...//.Column.5..n=0;rdd=1 |
4220 | 3b 70 6f 73 3d 2d 33 2e 35 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 99 | ;pos=-3.5;.................$.... |
4240 | 04 00 00 01 4b 02 00 00 2f 2f 20 53 65 74 20 75 70 20 63 6f 6c 75 6d 6e 0d 0a 70 7a 3d 28 69 2d | ....K...//.Set.up.column..pz=(i- |
4260 | 2e 35 29 2a 2e 38 36 36 3b 70 78 3d 28 70 2d 2e 35 29 2a 28 31 2d 61 62 73 28 69 2d 2e 35 29 29 | .5)*.866;px=(p-.5)*(1-abs(i-.5)) |
4280 | 3b 0d 0a 70 78 3d 70 78 2b 63 70 78 3b 70 7a 3d 70 7a 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 | ;..px=px+cpx;pz=pz+cpz;....//.Tr |
42a0 | 61 6e 73 66 6f 72 6d 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a | ansform.and.project..x1=px*cy-pz |
42c0 | 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 | *sy;z1=px*sy+pz*cy;..y2=py*cx-z1 |
42e0 | 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 | *sx;z2=py*sx+z1*cx+zdist;..z2=z2 |
4300 | 2a 2e 37 35 3b 20 20 20 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c | *.75;.....z2=if(below(z2,.02),0, |
4320 | 31 2f 7a 32 29 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a | 1/z2);..x=x1*z2;y=y2*z2*af-.1;.. |
4340 | 0d 0a 2f 2f 20 52 65 63 61 6c 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 78 74 | ..//.Recalculate.for.linear.text |
4360 | 75 72 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 0d 0a 70 78 3d 63 70 78 3b 0d 0a 78 31 3d 70 78 2a | ure.coordinates..px=cpx;..x1=px* |
4380 | 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a | cy-pz*sy;z1=px*sy+pz*cy;..y2=py* |
43a0 | 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a | cx-z1*sx;z2=py*sx+z1*cx+zdist;.. |
43c0 | 2f 2f 20 46 61 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 | //.Fake.environment.mapping..a=x |
43e0 | 31 2b 73 69 6e 28 79 32 2a 2e 37 2d 78 31 2a 2e 36 29 2a 32 2b 35 3b 62 3d 79 32 2a 2e 35 2d 78 | 1+sin(y2*.7-x1*.6)*2+5;b=y2*.5-x |
4400 | 31 2a 31 2e 31 2b 2e 35 3b 63 3d 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d 28 63 2b 73 69 6e 28 62 | 1*1.1+.5;c=cos(a);..red=(c+sin(b |
4420 | 29 29 2a 2e 33 30 2b 2e 37 3b 0d 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 2b 2e 32 29 2b 73 69 6e | ))*.30+.7;..green=(cos(a+.2)+sin |
4440 | 28 62 2d 2e 31 29 2a 31 2e 32 29 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 69 6e | (b-.1)*1.2)*.30+.5;..blue=(c+sin |
4460 | 28 62 2b 2e 32 29 2a 31 2e 35 29 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 | (b+.2)*1.5)*.30+.0;....//.State. |
4480 | 76 61 72 73 0d 0a 70 3d 62 6e 6f 74 28 70 29 3b 0d 0a 00 08 02 00 00 2f 2f 20 53 65 74 75 70 20 | vars..p=bnot(p);.......//.Setup. |
44a0 | 63 6f 6c 75 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 70 78 3d 72 64 64 2a 63 | column..x=pos*$pi*.333;cpx=rdd*c |
44c0 | 6f 73 28 78 29 3b 63 70 7a 3d 72 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 | os(x);cpz=rdd*sin(x);....//.Came |
44e0 | 72 61 0d 0a 7a 64 69 73 74 3d 72 65 67 30 30 3b 72 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 | ra..zdist=reg00;ry=reg01;oy=reg0 |
4500 | 32 3b 72 78 3d 72 65 67 30 33 3b 73 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a 63 79 74 3d 72 65 67 | 2;rx=reg03;steps=reg09;..cyt=reg |
4520 | 30 37 3b 73 79 74 3d 72 65 67 30 38 3b 0d 0a 72 6f 66 66 3d 28 28 28 28 61 62 73 28 33 2a 72 79 | 07;syt=reg08;..roff=((((abs(3*ry |
4540 | 2f 24 70 69 29 7c 30 29 25 36 29 2a 73 69 67 6e 28 72 79 29 2b 31 32 29 25 36 29 3b 0d 0a 72 79 | /$pi)|0)%6)*sign(ry)+12)%6);..ry |
4560 | 3d 72 79 2d 28 72 6f 66 66 2b 32 29 2a 24 70 69 2f 33 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b | =ry-(roff+2)*$pi/3;..cx=cos(rx); |
4580 | 73 78 3d 73 69 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 | sx=sin(rx);..cy=cos(ry);sy=sin(r |
45a0 | 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 73 70 6f 6e 73 65 0d 0a 6e 3d 69 66 28 65 | y);....//.Sound.response..n=if(e |
45c0 | 71 75 61 6c 28 72 6f 66 66 2c 30 29 2c 72 65 67 31 35 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 | qual(roff,0),reg15,if(equal(roff |
45e0 | 2c 31 29 2c 72 65 67 31 36 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 32 29 2c 72 65 67 31 31 | ,1),reg16,if(equal(roff,2),reg11 |
4600 | 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c 72 65 67 31 32 2c 69 66 28 65 71 75 61 6c | ,if(equal(roff,3),reg12,if(equal |
4620 | 28 72 6f 66 66 2c 34 29 2c 72 65 67 31 33 2c 72 65 67 31 34 29 29 29 29 29 3b 0d 0a 6e 3d 28 28 | (roff,4),reg13,reg14)))));..n=(( |
4640 | 6e 2a 73 74 65 70 73 29 7c 30 29 3b 72 65 73 70 3d 72 65 67 33 30 3b 0d 0a 70 79 3d 6f 79 2d 6e | n*steps)|0);resp=reg30;..py=oy-n |
4660 | 2a 72 65 73 70 3b 0d 0a 6e 3d 33 35 2a 77 2f 33 32 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 | *resp;..n=35*w/320;....//.State. |
4680 | 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d 77 2f 68 3b 70 3d 30 3b 00 00 | vars..cs=$pi*.3333;af=w/h;p=0;.. |
46a0 | 00 00 00 25 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 35 20 54 6f 70 0d 0a 6e 3d 30 3b 72 64 64 3d | ...%...//.Column.5.Top..n=0;rdd= |
46c0 | 31 3b 70 6f 73 3d 2d 33 2e 35 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 | 1;pos=-3.5;.................$... |
46e0 | 5f 05 00 00 01 e6 02 00 00 2f 2f 20 53 65 74 20 75 70 20 63 6f 6c 75 6d 6e 0d 0a 71 3d 69 66 28 | _........//.Set.up.column..q=if( |
4700 | 6f 64 64 2c 33 2d 70 2c 70 29 3b 0d 0a 61 3d 63 73 2a 28 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d 0a | odd,3-p,p);..a=cs*(q+.5+poff);.. |
4720 | 70 78 3d 63 6f 73 28 61 29 2a 2e 35 2b 63 70 78 3b 70 7a 3d 73 69 6e 28 61 29 2a 2e 35 2b 63 70 | px=cos(a)*.5+cpx;pz=sin(a)*.5+cp |
4740 | 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f 72 6d 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a | z;....//.Transform.and.project.. |
4760 | 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a | x1=px*cy-pz*sy;z1=px*sy+pz*cy;.. |
4780 | 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 | y2=py*cx-z1*sx;z2=py*sx+z1*cx+zd |
47a0 | 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b 20 20 20 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f 77 | ist;..z2=z2*.75;.....z2=if(below |
47c0 | 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 2a | (z2,.02),0,1/z2);..x=x1*z2;y=y2* |
47e0 | 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 52 65 63 61 6c 63 75 6c 61 74 65 20 66 6f 72 20 | z2*af-.1;....//.Recalculate.for. |
4800 | 6c 69 6e 65 61 72 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 0d 0a 71 3d 69 66 | linear.texture.coordinates..q=if |
4820 | 28 6f 64 64 2c 32 2e 35 2d 65 71 75 61 6c 28 70 2c 32 29 2c 6d 61 78 28 2e 35 2c 70 2d 2e 35 29 | (odd,2.5-equal(p,2),max(.5,p-.5) |
4840 | 29 2b 32 3b 0d 0a 61 3d 63 73 2a 28 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 28 | )+2;..a=cs*(q+.5+poff);..px=cos( |
4860 | 61 29 2a 2e 35 3b 70 7a 3d 73 69 6e 28 61 29 2a 2e 35 3b 0d 0a 78 31 3d 70 78 2a 63 79 74 2d 70 | a)*.5;pz=sin(a)*.5;..x1=px*cyt-p |
4880 | 7a 2a 73 79 74 2d 72 64 64 2a 33 2e 3b 7a 31 3d 70 78 2a 73 79 74 2b 70 7a 2a 63 79 74 3b 0d 0a | z*syt-rdd*3.;z1=px*syt+pz*cyt;.. |
48a0 | 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 | y2=py*cx-z1*sx;z2=py*sx+z1*cx+zd |
48c0 | 69 73 74 3b 0d 0a 2f 2f 20 46 61 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 69 6e | ist;..//.Fake.environment.mappin |
48e0 | 67 0d 0a 61 3d 78 31 2a 32 37 2b 73 69 6e 28 79 32 2d 78 31 2a 33 29 2a 32 2b 35 3b 62 3d 79 32 | g..a=x1*27+sin(y2-x1*3)*2+5;b=y2 |
4900 | 2a 2e 38 2d 78 31 2a 32 2e 31 2b 2e 35 3b 63 3d 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d 28 63 2b | *.8-x1*2.1+.5;c=cos(a);..red=(c+ |
4920 | 73 69 6e 28 62 29 29 2a 2e 33 30 2b 2e 37 3b 0d 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 2b 2e 32 | sin(b))*.30+.7;..green=(cos(a+.2 |
4940 | 29 2b 73 69 6e 28 62 2d 2e 31 29 2a 31 2e 32 29 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 65 3d 28 | )+sin(b-.1)*1.2)*.30+.5;..blue=( |
4960 | 63 2b 73 69 6e 28 62 2b 2e 32 29 2a 31 2e 35 29 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f 2f 20 53 | c+sin(b+.2)*1.5)*.30+.0;....//.S |
4980 | 74 61 74 65 20 76 61 72 73 0d 0a 70 3d 28 70 2b 31 29 25 33 3b 70 79 3d 70 79 2d 65 71 75 61 6c | tate.vars..p=(p+1)%3;py=py-equal |
49a0 | 28 70 2c 30 29 2a 72 65 73 70 3b 0d 0a 6f 64 64 3d 69 66 28 65 71 75 61 6c 28 70 2c 30 29 2c 62 | (p,0)*resp;..odd=if(equal(p,0),b |
49c0 | 6e 6f 74 28 6f 64 64 29 2c 6f 64 64 29 3b 00 37 02 00 00 2f 2f 20 53 65 74 75 70 20 63 6f 6c 75 | not(odd),odd);.7...//.Setup.colu |
49e0 | 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 70 78 3d 72 64 64 2a 63 6f 73 28 78 | mn..x=pos*$pi*.333;cpx=rdd*cos(x |
4a00 | 29 3b 63 70 7a 3d 72 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 72 61 0d 0a | );cpz=rdd*sin(x);....//.Camera.. |
4a20 | 7a 64 69 73 74 3d 72 65 67 30 30 3b 72 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 78 | zdist=reg00;ry=reg01;oy=reg02;rx |
4a40 | 3d 72 65 67 30 33 3b 73 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a 63 79 74 3d 72 65 67 30 37 3b 73 | =reg03;steps=reg09;..cyt=reg07;s |
4a60 | 79 74 3d 72 65 67 30 38 3b 0d 0a 72 6f 66 66 3d 28 28 28 28 61 62 73 28 33 2a 72 79 2f 24 70 69 | yt=reg08;..roff=((((abs(3*ry/$pi |
4a80 | 29 7c 30 29 25 36 29 2a 73 69 67 6e 28 72 79 29 2b 31 32 29 25 36 29 3b 0d 0a 72 79 3d 72 79 2d | )|0)%6)*sign(ry)+12)%6);..ry=ry- |
4aa0 | 28 72 6f 66 66 2b 32 29 2a 24 70 69 2f 33 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d 73 | (roff+2)*$pi/3;..cx=cos(rx);sx=s |
4ac0 | 69 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b 0d | in(rx);..cy=cos(ry);sy=sin(ry);. |
4ae0 | 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 73 70 6f 6e 73 65 0d 0a 6e 3d 69 66 28 65 71 75 61 6c | ...//.Sound.response..n=if(equal |
4b00 | 28 72 6f 66 66 2c 30 29 2c 72 65 67 31 33 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 31 29 2c | (roff,0),reg13,if(equal(roff,1), |
4b20 | 72 65 67 31 34 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 32 29 2c 72 65 67 31 35 2c 69 66 28 | reg14,if(equal(roff,2),reg15,if( |
4b40 | 65 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c 72 65 67 31 36 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 | equal(roff,3),reg16,if(equal(rof |
4b60 | 66 2c 34 29 2c 72 65 67 31 31 2c 72 65 67 31 32 29 29 29 29 29 3b 0d 0a 6e 3d 28 28 6e 2a 73 74 | f,4),reg11,reg12)))));..n=((n*st |
4b80 | 65 70 73 29 7c 30 29 2a 33 2b 33 3b 72 65 73 70 3d 72 65 67 33 30 3b 0d 0a 70 79 3d 6f 79 3b 0d | eps)|0)*3+3;resp=reg30;..py=oy;. |
4ba0 | 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 | ...//.State.vars..cs=$pi*.3333;a |
4bc0 | 66 3d 77 2f 68 3b 70 3d 30 3b 0d 0a 70 6f 66 66 3d 28 2d 33 2a 72 79 2f 24 70 69 29 3b 0d 0a 70 | f=w/h;p=0;..poff=(-3*ry/$pi);..p |
4be0 | 6f 66 66 3d 28 61 62 73 28 70 6f 66 66 29 25 36 29 2a 73 69 67 6e 28 70 6f 66 66 29 2b 32 2e 35 | off=(abs(poff)%6)*sign(poff)+2.5 |
4c00 | 3b 0d 0a 6f 64 64 3d 30 3b 00 00 00 00 00 21 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 33 0d 0a 6e | ;..odd=0;.....!...//.Column.3..n |
4c20 | 3d 30 3b 72 64 64 3d 31 3b 70 6f 73 3d 2d 31 2e 35 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 | =0;rdd=1;pos=-1.5;.............. |
4c40 | 00 00 00 24 00 00 00 99 04 00 00 01 4b 02 00 00 2f 2f 20 53 65 74 20 75 70 20 63 6f 6c 75 6d 6e | ...$........K...//.Set.up.column |
4c60 | 0d 0a 70 7a 3d 28 69 2d 2e 35 29 2a 2e 38 36 36 3b 70 78 3d 28 70 2d 2e 35 29 2a 28 31 2d 61 62 | ..pz=(i-.5)*.866;px=(p-.5)*(1-ab |
4c80 | 73 28 69 2d 2e 35 29 29 3b 0d 0a 70 78 3d 70 78 2b 63 70 78 3b 70 7a 3d 70 7a 2b 63 70 7a 3b 0d | s(i-.5));..px=px+cpx;pz=pz+cpz;. |
4ca0 | 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f 72 6d 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d | ...//.Transform.and.project..x1= |
4cc0 | 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d | px*cy-pz*sy;z1=px*sy+pz*cy;..y2= |
4ce0 | 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 | py*cx-z1*sx;z2=py*sx+z1*cx+zdist |
4d00 | 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b 20 20 20 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 | ;..z2=z2*.75;.....z2=if(below(z2 |
4d20 | 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a | ,.02),0,1/z2);..x=x1*z2;y=y2*z2* |
4d40 | 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 52 65 63 61 6c 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e | af-.1;....//.Recalculate.for.lin |
4d60 | 65 61 72 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 0d 0a 70 78 3d 63 70 78 3b | ear.texture.coordinates..px=cpx; |
4d80 | 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b | ..x1=px*cy-pz*sy;z1=px*sy+pz*cy; |
4da0 | 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b | ..y2=py*cx-z1*sx;z2=py*sx+z1*cx+ |
4dc0 | 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 | zdist;..//.Fake.environment.mapp |
4de0 | 69 6e 67 0d 0a 61 3d 78 31 2b 73 69 6e 28 79 32 2a 2e 37 2d 78 31 2a 2e 36 29 2a 32 2b 35 3b 62 | ing..a=x1+sin(y2*.7-x1*.6)*2+5;b |
4e00 | 3d 79 32 2a 2e 35 2d 78 31 2a 31 2e 31 2b 2e 35 3b 63 3d 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d | =y2*.5-x1*1.1+.5;c=cos(a);..red= |
4e20 | 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 30 2b 2e 37 3b 0d 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 | (c+sin(b))*.30+.7;..green=(cos(a |
4e40 | 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 29 2a 31 2e 32 29 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 | +.2)+sin(b-.1)*1.2)*.30+.5;..blu |
4e60 | 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 29 2a 31 2e 35 29 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f | e=(c+sin(b+.2)*1.5)*.30+.0;..../ |
4e80 | 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 70 3d 62 6e 6f 74 28 70 29 3b 0d 0a 00 08 02 00 00 2f | /.State.vars..p=bnot(p);......./ |
4ea0 | 2f 20 53 65 74 75 70 20 63 6f 6c 75 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 | /.Setup.column..x=pos*$pi*.333;c |
4ec0 | 70 78 3d 72 64 64 2a 63 6f 73 28 78 29 3b 63 70 7a 3d 72 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d | px=rdd*cos(x);cpz=rdd*sin(x);... |
4ee0 | 0a 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a 64 69 73 74 3d 72 65 67 30 30 3b 72 79 3d 72 65 67 30 31 | .//.Camera..zdist=reg00;ry=reg01 |
4f00 | 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d 72 65 67 30 33 3b 73 74 65 70 73 3d 72 65 67 30 39 3b 0d | ;oy=reg02;rx=reg03;steps=reg09;. |
4f20 | 0a 63 79 74 3d 72 65 67 30 37 3b 73 79 74 3d 72 65 67 30 38 3b 0d 0a 72 6f 66 66 3d 28 28 28 28 | .cyt=reg07;syt=reg08;..roff=(((( |
4f40 | 61 62 73 28 33 2a 72 79 2f 24 70 69 29 7c 30 29 25 36 29 2a 73 69 67 6e 28 72 79 29 2b 31 32 29 | abs(3*ry/$pi)|0)%6)*sign(ry)+12) |
4f60 | 25 36 29 3b 0d 0a 72 79 3d 72 79 2d 28 72 6f 66 66 2b 32 29 2a 24 70 69 2f 33 3b 0d 0a 63 78 3d | %6);..ry=ry-(roff+2)*$pi/3;..cx= |
4f80 | 63 6f 73 28 72 78 29 3b 73 78 3d 73 69 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b | cos(rx);sx=sin(rx);..cy=cos(ry); |
4fa0 | 73 79 3d 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 73 70 6f 6e 73 65 | sy=sin(ry);....//.Sound.response |
4fc0 | 0d 0a 6e 3d 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 30 29 2c 72 65 67 31 33 2c 69 66 28 65 71 | ..n=if(equal(roff,0),reg13,if(eq |
4fe0 | 75 61 6c 28 72 6f 66 66 2c 31 29 2c 72 65 67 31 34 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c | ual(roff,1),reg14,if(equal(roff, |
5000 | 32 29 2c 72 65 67 31 35 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c 72 65 67 31 36 2c | 2),reg15,if(equal(roff,3),reg16, |
5020 | 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 34 29 2c 72 65 67 31 31 2c 72 65 67 31 32 29 29 29 29 | if(equal(roff,4),reg11,reg12)))) |
5040 | 29 3b 0d 0a 6e 3d 28 28 6e 2a 73 74 65 70 73 29 7c 30 29 3b 72 65 73 70 3d 72 65 67 33 30 3b 0d | );..n=((n*steps)|0);resp=reg30;. |
5060 | 0a 70 79 3d 6f 79 2d 6e 2a 72 65 73 70 3b 0d 0a 6e 3d 33 35 2a 77 2f 33 32 30 3b 0d 0a 0d 0a 2f | .py=oy-n*resp;..n=35*w/320;..../ |
5080 | 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d 77 2f | /.State.vars..cs=$pi*.3333;af=w/ |
50a0 | 68 3b 70 3d 30 3b 00 00 00 00 00 25 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 33 20 54 6f 70 0d 0a | h;p=0;.....%...//.Column.3.Top.. |
50c0 | 6e 3d 30 3b 72 64 64 3d 31 3b 70 6f 73 3d 2d 31 2e 35 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 | n=0;rdd=1;pos=-1.5;............. |
50e0 | 01 00 00 00 24 00 00 00 a5 04 00 00 01 e4 02 00 00 2f 2f 20 53 65 74 20 75 70 20 63 6f 6c 75 6d | ....$............//.Set.up.colum |
5100 | 6e 0d 0a 71 3d 69 66 28 6f 64 64 2c 33 2d 70 2c 70 29 3b 0d 0a 61 3d 63 73 2a 28 71 2b 2e 35 2b | n..q=if(odd,3-p,p);..a=cs*(q+.5+ |
5120 | 70 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 2e 35 2b 63 70 78 3b 70 7a 3d 73 69 6e 28 | poff);..px=cos(a)*.5+cpx;pz=sin( |
5140 | 61 29 2a 2e 35 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f 72 6d 20 61 6e 64 20 70 | a)*.5+cpz;....//.Transform.and.p |
5160 | 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b | roject..x1=px*cy-pz*sy;z1=px*sy+ |
5180 | 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b | pz*cy;..y2=py*cx-z1*sx;z2=py*sx+ |
51a0 | 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b 20 20 20 0d 0a 7a 32 3d | z1*cx+zdist;..z2=z2*.75;.....z2= |
51c0 | 69 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d 78 31 2a | if(below(z2,.02),0,1/z2);..x=x1* |
51e0 | 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 52 65 63 61 6c 63 75 6c | z2;y=y2*z2*af-.1;....//.Recalcul |
5200 | 61 74 65 20 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 69 6e 61 74 | ate.for.linear.texture.coordinat |
5220 | 65 73 0d 0a 71 3d 69 66 28 6f 64 64 2c 32 2e 35 2d 65 71 75 61 6c 28 70 2c 32 29 2c 6d 61 78 28 | es..q=if(odd,2.5-equal(p,2),max( |
5240 | 2e 35 2c 70 2d 2e 35 29 29 3b 0d 0a 61 3d 63 73 2a 28 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d 0a 70 | .5,p-.5));..a=cs*(q+.5+poff);..p |
5260 | 78 3d 63 6f 73 28 61 29 2a 2e 35 3b 70 7a 3d 73 69 6e 28 61 29 2a 2e 35 3b 0d 0a 78 31 3d 70 78 | x=cos(a)*.5;pz=sin(a)*.5;..x1=px |
5280 | 2a 63 79 74 2d 70 7a 2a 73 79 74 2d 72 64 64 2a 33 2e 3b 7a 31 3d 70 78 2a 73 79 74 2b 70 7a 2a | *cyt-pz*syt-rdd*3.;z1=px*syt+pz* |
52a0 | 63 79 74 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 | cyt;..y2=py*cx-z1*sx;z2=py*sx+z1 |
52c0 | 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 | *cx+zdist;..//.Fake.environment. |
52e0 | 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 31 2a 32 37 2b 73 69 6e 28 79 32 2d 78 31 2a 33 29 2a 32 2b | mapping..a=x1*27+sin(y2-x1*3)*2+ |
5300 | 35 3b 62 3d 79 32 2a 2e 38 2d 78 31 2a 32 2e 31 2b 2e 35 3b 63 3d 63 6f 73 28 61 29 3b 0d 0a 72 | 5;b=y2*.8-x1*2.1+.5;c=cos(a);..r |
5320 | 65 64 3d 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 30 2b 2e 37 3b 0d 0a 67 72 65 65 6e 3d 28 63 6f | ed=(c+sin(b))*.30+.7;..green=(co |
5340 | 73 28 61 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 29 2a 31 2e 32 29 2a 2e 33 30 2b 2e 35 3b 0d 0a | s(a+.2)+sin(b-.1)*1.2)*.30+.5;.. |
5360 | 62 6c 75 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 29 2a 31 2e 35 29 2a 2e 33 30 2b 2e 30 3b 0d 0a | blue=(c+sin(b+.2)*1.5)*.30+.0;.. |
5380 | 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 70 3d 28 70 2b 31 29 25 33 3b 70 79 3d 70 79 | ..//.State.vars..p=(p+1)%3;py=py |
53a0 | 2d 65 71 75 61 6c 28 70 2c 30 29 2a 72 65 73 70 3b 0d 0a 6f 64 64 3d 69 66 28 65 71 75 61 6c 28 | -equal(p,0)*resp;..odd=if(equal( |
53c0 | 70 2c 30 29 2c 62 6e 6f 74 28 6f 64 64 29 2c 6f 64 64 29 3b 00 82 01 00 00 2f 2f 20 53 65 74 75 | p,0),bnot(odd),odd);.....//.Setu |
53e0 | 70 20 63 6f 6c 75 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 70 78 3d 72 64 64 | p.column..x=pos*$pi*.333;cpx=rdd |
5400 | 2a 63 6f 73 28 78 29 3b 63 70 7a 3d 72 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 | *cos(x);cpz=rdd*sin(x);....//.Ca |
5420 | 6d 65 72 61 0d 0a 7a 64 69 73 74 3d 72 65 67 30 30 3b 72 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 | mera..zdist=reg00;ry=reg01;oy=re |
5440 | 67 30 32 3b 72 78 3d 72 65 67 30 33 3b 73 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a 63 79 74 3d 72 | g02;rx=reg03;steps=reg09;..cyt=r |
5460 | 65 67 30 37 3b 73 79 74 3d 72 65 67 30 38 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d 73 | eg07;syt=reg08;..cx=cos(rx);sx=s |
5480 | 69 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b 0d | in(rx);..cy=cos(ry);sy=sin(ry);. |
54a0 | 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 73 70 6f 6e 73 65 0d 0a 6e 3d 72 65 67 31 30 2a 31 2e | ...//.Sound.response..n=reg10*1. |
54c0 | 34 3b 0d 0a 6e 3d 28 28 6e 2a 73 74 65 70 73 29 7c 30 29 2a 33 2b 33 3b 72 65 73 70 3d 72 65 67 | 4;..n=((n*steps)|0)*3+3;resp=reg |
54e0 | 33 30 2a 2e 37 31 34 3b 0d 0a 70 79 3d 6f 79 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 | 30*.714;..py=oy;....//.State.var |
5500 | 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d 77 2f 68 3b 70 3d 30 3b 0d 0a 70 6f 66 | s..cs=$pi*.3333;af=w/h;p=0;..pof |
5520 | 66 3d 28 2d 33 2a 72 79 2f 24 70 69 29 3b 0d 0a 70 6f 66 66 3d 28 61 62 73 28 70 6f 66 66 29 25 | f=(-3*ry/$pi);..poff=(abs(poff)% |
5540 | 36 29 2a 73 69 67 6e 28 70 6f 66 66 29 2b 32 2e 35 3b 0d 0a 6f 64 64 3d 30 3b 00 00 00 00 00 1e | 6)*sign(poff)+2.5;..odd=0;...... |
5560 | 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 30 0d 0a 6e 3d 30 3b 72 64 64 3d 30 3b 70 6f 73 3d 30 3b | ...//.Column.0..n=0;rdd=0;pos=0; |
5580 | 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 ce 03 00 00 01 4b 02 00 00 2f 2f | .................$........K...// |
55a0 | 20 53 65 74 20 75 70 20 63 6f 6c 75 6d 6e 0d 0a 70 7a 3d 28 69 2d 2e 35 29 2a 2e 38 36 36 3b 70 | .Set.up.column..pz=(i-.5)*.866;p |
55c0 | 78 3d 28 70 2d 2e 35 29 2a 28 31 2d 61 62 73 28 69 2d 2e 35 29 29 3b 0d 0a 70 78 3d 70 78 2b 63 | x=(p-.5)*(1-abs(i-.5));..px=px+c |
55e0 | 70 78 3b 70 7a 3d 70 7a 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f 72 6d 20 61 6e | px;pz=pz+cpz;....//.Transform.an |
5600 | 64 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a | d.project..x1=px*cy-pz*sy;z1=px* |
5620 | 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a | sy+pz*cy;..y2=py*cx-z1*sx;z2=py* |
5640 | 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b 20 20 20 0d 0a | sx+z1*cx+zdist;..z2=z2*.75;..... |
5660 | 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d | z2=if(below(z2,.02),0,1/z2);..x= |
5680 | 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 52 65 63 61 6c | x1*z2;y=y2*z2*af-.1;....//.Recal |
56a0 | 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 69 | culate.for.linear.texture.coordi |
56c0 | 6e 61 74 65 73 0d 0a 70 78 3d 63 70 78 3b 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a | nates..px=cpx;..x1=px*cy-pz*sy;z |
56e0 | 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a | 1=px*sy+pz*cy;..y2=py*cx-z1*sx;z |
5700 | 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 6b 65 20 65 6e | 2=py*sx+z1*cx+zdist;..//.Fake.en |
5720 | 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 31 2b 73 69 6e 28 79 32 2a 2e | vironment.mapping..a=x1+sin(y2*. |
5740 | 37 2d 78 31 2a 2e 36 29 2a 32 2b 35 3b 62 3d 79 32 2a 2e 35 2d 78 31 2a 31 2e 31 2b 2e 35 3b 63 | 7-x1*.6)*2+5;b=y2*.5-x1*1.1+.5;c |
5760 | 3d 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 30 2b 2e 37 3b | =cos(a);..red=(c+sin(b))*.30+.7; |
5780 | 0d 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 29 2a 31 2e 32 | ..green=(cos(a+.2)+sin(b-.1)*1.2 |
57a0 | 29 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 29 2a 31 2e 35 | )*.30+.5;..blue=(c+sin(b+.2)*1.5 |
57c0 | 29 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 70 3d 62 6e | )*.30+.0;....//.State.vars..p=bn |
57e0 | 6f 74 28 70 29 3b 0d 0a 00 40 01 00 00 2f 2f 20 53 65 74 75 70 20 63 6f 6c 75 6d 6e 0d 0a 78 3d | ot(p);...@...//.Setup.column..x= |
5800 | 70 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 70 78 3d 72 64 64 2a 63 6f 73 28 78 29 3b 63 70 7a 3d | pos*$pi*.333;cpx=rdd*cos(x);cpz= |
5820 | 72 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a 64 69 73 74 3d | rdd*sin(x);....//.Camera..zdist= |
5840 | 72 65 67 30 30 3b 72 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d 72 65 67 30 33 | reg00;ry=reg01;oy=reg02;rx=reg03 |
5860 | 3b 73 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a 63 79 74 3d 72 65 67 30 37 3b 73 79 74 3d 72 65 67 | ;steps=reg09;..cyt=reg07;syt=reg |
5880 | 30 38 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d 73 69 6e 28 72 78 29 3b 0d 0a 63 79 3d | 08;..cx=cos(rx);sx=sin(rx);..cy= |
58a0 | 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 | cos(ry);sy=sin(ry);....//.Sound. |
58c0 | 72 65 73 70 6f 6e 73 65 0d 0a 72 65 73 70 3d 72 65 67 33 30 3b 6e 3d 28 72 65 67 31 30 2a 73 74 | response..resp=reg30;n=(reg10*st |
58e0 | 65 70 73 29 7c 30 3b 70 79 3d 6f 79 2d 6e 2a 72 65 73 70 3b 0d 0a 6e 3d 35 35 2a 77 2f 33 32 30 | eps)|0;py=oy-n*resp;..n=55*w/320 |
5900 | 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 | ;....//.State.vars..cs=$pi*.3333 |
5920 | 3b 61 66 3d 77 2f 68 3b 70 3d 30 3b 00 00 00 00 00 22 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 30 | ;af=w/h;p=0;....."...//.Column.0 |
5940 | 20 54 6f 70 0d 0a 6e 3d 30 3b 72 64 64 3d 30 3b 70 6f 73 3d 30 3b 00 02 00 00 00 01 00 00 00 ff | .Top..n=0;rdd=0;pos=0;.......... |
5960 | ff ff 00 01 00 00 00 24 00 00 00 81 05 00 00 01 e3 02 00 00 2f 2f 20 53 65 74 20 75 70 20 63 6f | .......$............//.Set.up.co |
5980 | 6c 75 6d 6e 0d 0a 71 3d 69 66 28 6f 64 64 2c 33 2d 70 2c 70 29 3b 0d 0a 61 3d 63 73 2a 28 71 2b | lumn..q=if(odd,3-p,p);..a=cs*(q+ |
59a0 | 2e 35 2b 70 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 2e 35 2b 63 70 78 3b 70 7a 3d 73 | .5+poff);..px=cos(a)*.5+cpx;pz=s |
59c0 | 69 6e 28 61 29 2a 2e 35 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f 72 6d 20 61 6e | in(a)*.5+cpz;....//.Transform.an |
59e0 | 64 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a | d.project..x1=px*cy-pz*sy;z1=px* |
5a00 | 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a | sy+pz*cy;..y2=py*cx-z1*sx;z2=py* |
5a20 | 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b 0d 0a 7a 32 3d | sx+z1*cx+zdist;..z2=z2*.75;..z2= |
5a40 | 69 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d 78 31 2a | if(below(z2,.02),0,1/z2);..x=x1* |
5a60 | 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 52 65 63 61 6c 63 75 6c | z2;y=y2*z2*af-.1;....//.Recalcul |
5a80 | 61 74 65 20 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 69 6e 61 74 | ate.for.linear.texture.coordinat |
5aa0 | 65 73 0d 0a 71 3d 69 66 28 6f 64 64 2c 32 2e 35 2d 65 71 75 61 6c 28 70 2c 32 29 2c 6d 61 78 28 | es..q=if(odd,2.5-equal(p,2),max( |
5ac0 | 2e 35 2c 70 2d 2e 35 29 29 2b 31 3b 0d 0a 61 3d 63 73 2a 28 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d | .5,p-.5))+1;..a=cs*(q+.5+poff);. |
5ae0 | 0a 70 78 3d 63 6f 73 28 61 29 2a 2e 35 3b 70 7a 3d 73 69 6e 28 61 29 2a 2e 35 3b 0d 0a 78 31 3d | .px=cos(a)*.5;pz=sin(a)*.5;..x1= |
5b00 | 70 78 2a 63 79 74 2d 70 7a 2a 73 79 74 2d 72 64 64 2a 33 2e 3b 7a 31 3d 70 78 2a 73 79 74 2b 70 | px*cyt-pz*syt-rdd*3.;z1=px*syt+p |
5b20 | 7a 2a 63 79 74 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b | z*cyt;..y2=py*cx-z1*sx;z2=py*sx+ |
5b40 | 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 6e | z1*cx+zdist;..//.Fake.environmen |
5b60 | 74 20 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 31 2a 32 37 2b 73 69 6e 28 79 32 2d 78 31 2a 33 29 2a | t.mapping..a=x1*27+sin(y2-x1*3)* |
5b80 | 32 2b 35 3b 62 3d 79 32 2a 2e 38 2d 78 31 2a 32 2e 31 2b 2e 35 3b 63 3d 63 6f 73 28 61 29 3b 0d | 2+5;b=y2*.8-x1*2.1+.5;c=cos(a);. |
5ba0 | 0a 72 65 64 3d 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 30 2b 2e 37 3b 0d 0a 67 72 65 65 6e 3d 28 | .red=(c+sin(b))*.30+.7;..green=( |
5bc0 | 63 6f 73 28 61 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 29 2a 31 2e 32 29 2a 2e 33 30 2b 2e 35 3b | cos(a+.2)+sin(b-.1)*1.2)*.30+.5; |
5be0 | 0d 0a 62 6c 75 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 29 2a 31 2e 35 29 2a 2e 33 30 2b 2e 30 3b | ..blue=(c+sin(b+.2)*1.5)*.30+.0; |
5c00 | 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 70 3d 28 70 2b 31 29 25 33 3b 70 79 3d | ....//.State.vars..p=(p+1)%3;py= |
5c20 | 70 79 2d 65 71 75 61 6c 28 70 2c 30 29 2a 72 65 73 70 3b 0d 0a 6f 64 64 3d 69 66 28 65 71 75 61 | py-equal(p,0)*resp;..odd=if(equa |
5c40 | 6c 28 70 2c 30 29 2c 62 6e 6f 74 28 6f 64 64 29 2c 6f 64 64 29 3b 00 5a 02 00 00 2f 2f 20 53 65 | l(p,0),bnot(odd),odd);.Z...//.Se |
5c60 | 74 75 70 20 63 6f 6c 75 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 70 78 3d 72 | tup.column..x=pos*$pi*.333;cpx=r |
5c80 | 64 64 2a 63 6f 73 28 78 29 3b 63 70 7a 3d 72 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 | dd*cos(x);cpz=rdd*sin(x);....//. |
5ca0 | 43 61 6d 65 72 61 0d 0a 7a 64 69 73 74 3d 72 65 67 30 30 3b 72 79 3d 72 65 67 30 31 3b 6f 79 3d | Camera..zdist=reg00;ry=reg01;oy= |
5cc0 | 72 65 67 30 32 3b 72 78 3d 72 65 67 30 33 3b 73 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a 63 79 74 | reg02;rx=reg03;steps=reg09;..cyt |
5ce0 | 3d 72 65 67 30 37 3b 73 79 74 3d 72 65 67 30 38 3b 0d 0a 72 6f 66 66 3d 28 28 28 28 61 62 73 28 | =reg07;syt=reg08;..roff=((((abs( |
5d00 | 33 2a 72 79 2f 24 70 69 2b 2e 35 29 7c 30 29 25 36 29 2a 73 69 67 6e 28 72 79 29 2b 31 32 29 25 | 3*ry/$pi+.5)|0)%6)*sign(ry)+12)% |
5d20 | 36 29 3b 0d 0a 72 79 3d 72 79 2d 28 72 6f 66 66 2b 31 29 2a 24 70 69 2f 33 3b 0d 0a 63 78 3d 63 | 6);..ry=ry-(roff+1)*$pi/3;..cx=c |
5d40 | 6f 73 28 72 78 29 3b 73 78 3d 73 69 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b 73 | os(rx);sx=sin(rx);..cy=cos(ry);s |
5d60 | 79 3d 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 73 70 6f 6e 73 65 0d | y=sin(ry);....//.Sound.response. |
5d80 | 0a 6e 3d 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 30 29 2c 72 65 67 31 39 2c 69 66 28 65 71 75 | .n=if(equal(roff,0),reg19,if(equ |
5da0 | 61 6c 28 72 6f 66 66 2c 31 29 2c 72 65 67 32 31 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 32 | al(roff,1),reg21,if(equal(roff,2 |
5dc0 | 29 2c 72 65 67 32 33 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c 72 65 67 32 35 2c 69 | ),reg23,if(equal(roff,3),reg25,i |
5de0 | 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 34 29 2c 72 65 67 32 37 2c 72 65 67 31 37 29 29 29 29 29 | f(equal(roff,4),reg27,reg17))))) |
5e00 | 3b 0d 0a 6e 3d 28 28 6e 2a 73 74 65 70 73 29 7c 30 29 2a 33 2b 33 3b 72 65 73 70 3d 72 65 67 33 | ;..n=((n*steps)|0)*3+3;resp=reg3 |
5e20 | 30 3b 0d 0a 6e 3d 6e 2a 28 28 61 62 6f 76 65 28 73 69 6e 28 72 79 2a 36 29 2c 30 29 29 29 3b 0d | 0;..n=n*((above(sin(ry*6),0)));. |
5e40 | 0a 70 79 3d 6f 79 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 | .py=oy;....//.State.vars..cs=$pi |
5e60 | 2a 2e 33 33 33 33 3b 61 66 3d 77 2f 68 3b 70 3d 30 3b 0d 0a 70 6f 66 66 3d 28 2d 33 2a 72 79 2f | *.3333;af=w/h;p=0;..poff=(-3*ry/ |
5e80 | 24 70 69 2d 2e 35 29 3b 0d 0a 70 6f 66 66 3d 28 61 62 73 28 70 6f 66 66 29 25 36 29 2a 73 69 67 | $pi-.5);..poff=(abs(poff)%6)*sig |
5ea0 | 6e 28 70 6f 66 66 29 2b 33 2e 35 3b 0d 0a 6f 64 64 3d 30 3b 00 00 00 00 00 23 00 00 00 2f 2f 20 | n(poff)+3.5;..odd=0;.....#...//. |
5ec0 | 43 6f 6c 75 6d 6e 20 37 62 0d 0a 6e 3d 30 3b 72 64 64 3d 31 2e 37 33 3b 70 6f 73 3d 2d 31 3b 00 | Column.7b..n=0;rdd=1.73;pos=-1;. |
5ee0 | 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 b9 04 00 00 01 4b 02 00 00 2f 2f 20 | ................$........K...//. |
5f00 | 53 65 74 20 75 70 20 63 6f 6c 75 6d 6e 0d 0a 70 7a 3d 28 69 2d 2e 35 29 2a 2e 38 36 36 3b 70 78 | Set.up.column..pz=(i-.5)*.866;px |
5f20 | 3d 28 70 2d 2e 35 29 2a 28 31 2d 61 62 73 28 69 2d 2e 35 29 29 3b 0d 0a 70 78 3d 70 78 2b 63 70 | =(p-.5)*(1-abs(i-.5));..px=px+cp |
5f40 | 78 3b 70 7a 3d 70 7a 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f 72 6d 20 61 6e 64 | x;pz=pz+cpz;....//.Transform.and |
5f60 | 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 | .project..x1=px*cy-pz*sy;z1=px*s |
5f80 | 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 | y+pz*cy;..y2=py*cx-z1*sx;z2=py*s |
5fa0 | 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b 20 20 20 0d 0a 7a | x+z1*cx+zdist;..z2=z2*.75;.....z |
5fc0 | 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d 78 | 2=if(below(z2,.02),0,1/z2);..x=x |
5fe0 | 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 52 65 63 61 6c 63 | 1*z2;y=y2*z2*af-.1;....//.Recalc |
6000 | 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 69 6e | ulate.for.linear.texture.coordin |
6020 | 61 74 65 73 0d 0a 70 78 3d 63 70 78 3b 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 | ates..px=cpx;..x1=px*cy-pz*sy;z1 |
6040 | 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 | =px*sy+pz*cy;..y2=py*cx-z1*sx;z2 |
6060 | 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 6b 65 20 65 6e 76 | =py*sx+z1*cx+zdist;..//.Fake.env |
6080 | 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 31 2b 73 69 6e 28 79 32 2a 2e 37 | ironment.mapping..a=x1+sin(y2*.7 |
60a0 | 2d 78 31 2a 2e 36 29 2a 32 2b 35 3b 62 3d 79 32 2a 2e 35 2d 78 31 2a 31 2e 31 2b 2e 35 3b 63 3d | -x1*.6)*2+5;b=y2*.5-x1*1.1+.5;c= |
60c0 | 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 30 2b 2e 37 3b 0d | cos(a);..red=(c+sin(b))*.30+.7;. |
60e0 | 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 29 2a 31 2e 32 29 | .green=(cos(a+.2)+sin(b-.1)*1.2) |
6100 | 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 29 2a 31 2e 35 29 | *.30+.5;..blue=(c+sin(b+.2)*1.5) |
6120 | 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 70 3d 62 6e 6f | *.30+.0;....//.State.vars..p=bno |
6140 | 74 28 70 29 3b 0d 0a 00 26 02 00 00 2f 2f 20 53 65 74 75 70 20 63 6f 6c 75 6d 6e 0d 0a 78 3d 70 | t(p);...&...//.Setup.column..x=p |
6160 | 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 70 78 3d 72 64 64 2a 63 6f 73 28 78 29 3b 63 70 7a 3d 72 | os*$pi*.333;cpx=rdd*cos(x);cpz=r |
6180 | 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a 64 69 73 74 3d 72 | dd*sin(x);....//.Camera..zdist=r |
61a0 | 65 67 30 30 3b 72 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d 72 65 67 30 33 3b | eg00;ry=reg01;oy=reg02;rx=reg03; |
61c0 | 73 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a 63 79 74 3d 72 65 67 30 37 3b 73 79 74 3d 72 65 67 30 | steps=reg09;..cyt=reg07;syt=reg0 |
61e0 | 38 3b 0d 0a 72 6f 66 66 3d 28 28 28 28 61 62 73 28 33 2a 72 79 2f 24 70 69 2b 2e 35 29 7c 30 29 | 8;..roff=((((abs(3*ry/$pi+.5)|0) |
6200 | 25 36 29 2a 73 69 67 6e 28 72 79 29 2b 31 32 29 25 36 29 3b 0d 0a 72 79 3d 72 79 2d 28 72 6f 66 | %6)*sign(ry)+12)%6);..ry=ry-(rof |
6220 | 66 2b 31 29 2a 24 70 69 2f 33 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d 73 69 6e 28 72 | f+1)*$pi/3;..cx=cos(rx);sx=sin(r |
6240 | 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a 2f | x);..cy=cos(ry);sy=sin(ry);..../ |
6260 | 2f 20 53 6f 75 6e 64 20 72 65 73 70 6f 6e 73 65 0d 0a 6e 3d 69 66 28 65 71 75 61 6c 28 72 6f 66 | /.Sound.response..n=if(equal(rof |
6280 | 66 2c 30 29 2c 72 65 67 31 39 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 31 29 2c 72 65 67 32 | f,0),reg19,if(equal(roff,1),reg2 |
62a0 | 31 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 32 29 2c 72 65 67 32 33 2c 69 66 28 65 71 75 61 | 1,if(equal(roff,2),reg23,if(equa |
62c0 | 6c 28 72 6f 66 66 2c 33 29 2c 72 65 67 32 35 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 34 29 | l(roff,3),reg25,if(equal(roff,4) |
62e0 | 2c 72 65 67 32 37 2c 72 65 67 31 37 29 29 29 29 29 3b 0d 0a 6e 3d 28 28 6e 2a 73 74 65 70 73 29 | ,reg27,reg17)))));..n=((n*steps) |
6300 | 7c 30 29 3b 72 65 73 70 3d 72 65 67 33 30 3b 0d 0a 70 79 3d 6f 79 2d 6e 2a 72 65 73 70 3b 0d 0a | |0);resp=reg30;..py=oy-n*resp;.. |
6320 | 6e 3d 35 35 2a 77 2f 33 32 30 3b 6e 3d 6e 2a 28 61 62 6f 76 65 28 73 69 6e 28 72 79 2a 36 29 2c | n=55*w/320;n=n*(above(sin(ry*6), |
6340 | 30 29 29 3b 0d 0a 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a | 0));......//.State.vars..cs=$pi* |
6360 | 2e 33 33 33 33 3b 61 66 3d 77 2f 68 3b 70 3d 30 3b 00 00 00 00 00 27 00 00 00 2f 2f 20 43 6f 6c | .3333;af=w/h;p=0;.....'...//.Col |
6380 | 75 6d 6e 20 37 62 20 54 6f 70 0d 0a 6e 3d 30 3b 72 64 64 3d 31 2e 37 33 3b 70 6f 73 3d 2d 31 3b | umn.7b.Top..n=0;rdd=1.73;pos=-1; |
63a0 | 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 6a 05 00 00 01 e6 02 00 00 2f 2f | .................$...j........// |
63c0 | 20 53 65 74 20 75 70 20 63 6f 6c 75 6d 6e 0d 0a 71 3d 69 66 28 6f 64 64 2c 33 2d 70 2c 70 29 3b | .Set.up.column..q=if(odd,3-p,p); |
63e0 | 0d 0a 61 3d 63 73 2a 28 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 2e | ..a=cs*(q+.5+poff);..px=cos(a)*. |
6400 | 35 2b 63 70 78 3b 70 7a 3d 73 69 6e 28 61 29 2a 2e 35 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 | 5+cpx;pz=sin(a)*.5+cpz;....//.Tr |
6420 | 61 6e 73 66 6f 72 6d 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a | ansform.and.project..x1=px*cy-pz |
6440 | 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 | *sy;z1=px*sy+pz*cy;..y2=py*cx-z1 |
6460 | 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 | *sx;z2=py*sx+z1*cx+zdist;..z2=z2 |
6480 | 2a 2e 37 35 3b 20 20 20 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c | *.75;.....z2=if(below(z2,.02),0, |
64a0 | 31 2f 7a 32 29 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a | 1/z2);..x=x1*z2;y=y2*z2*af-.1;.. |
64c0 | 0d 0a 2f 2f 20 52 65 63 61 6c 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 78 74 | ..//.Recalculate.for.linear.text |
64e0 | 75 72 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 0d 0a 71 3d 69 66 28 6f 64 64 2c 32 2e 35 2d 65 71 | ure.coordinates..q=if(odd,2.5-eq |
6500 | 75 61 6c 28 70 2c 32 29 2c 6d 61 78 28 2e 35 2c 70 2d 2e 35 29 29 2b 31 3b 0d 0a 61 3d 63 73 2a | ual(p,2),max(.5,p-.5))+1;..a=cs* |
6520 | 28 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 2e 35 3b 70 7a 3d 73 69 | (q+.5+poff);..px=cos(a)*.5;pz=si |
6540 | 6e 28 61 29 2a 2e 35 3b 0d 0a 78 31 3d 70 78 2a 63 79 74 2d 70 7a 2a 73 79 74 2d 72 64 64 2a 33 | n(a)*.5;..x1=px*cyt-pz*syt-rdd*3 |
6560 | 2e 3b 7a 31 3d 70 78 2a 73 79 74 2b 70 7a 2a 63 79 74 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 | .;z1=px*syt+pz*cyt;..y2=py*cx-z1 |
6580 | 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 | *sx;z2=py*sx+z1*cx+zdist;..//.Fa |
65a0 | 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 31 2a 32 37 2b | ke.environment.mapping..a=x1*27+ |
65c0 | 73 69 6e 28 79 32 2d 78 31 2a 33 29 2a 32 2b 35 3b 62 3d 79 32 2a 2e 38 2d 78 31 2a 32 2e 31 2b | sin(y2-x1*3)*2+5;b=y2*.8-x1*2.1+ |
65e0 | 2e 35 3b 63 3d 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 30 | .5;c=cos(a);..red=(c+sin(b))*.30 |
6600 | 2b 2e 37 3b 0d 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 29 | +.7;..green=(cos(a+.2)+sin(b-.1) |
6620 | 2a 31 2e 32 29 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 29 | *1.2)*.30+.5;..blue=(c+sin(b+.2) |
6640 | 2a 31 2e 35 29 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a | *1.5)*.30+.0;....//.State.vars.. |
6660 | 70 3d 28 70 2b 31 29 25 33 3b 70 79 3d 70 79 2d 65 71 75 61 6c 28 70 2c 30 29 2a 72 65 73 70 3b | p=(p+1)%3;py=py-equal(p,0)*resp; |
6680 | 0d 0a 6f 64 64 3d 69 66 28 65 71 75 61 6c 28 70 2c 30 29 2c 62 6e 6f 74 28 6f 64 64 29 2c 6f 64 | ..odd=if(equal(p,0),bnot(odd),od |
66a0 | 64 29 3b 00 43 02 00 00 2f 2f 20 53 65 74 75 70 20 63 6f 6c 75 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 | d);.C...//.Setup.column..x=pos*$ |
66c0 | 70 69 2a 2e 33 33 33 3b 63 70 78 3d 72 64 64 2a 63 6f 73 28 78 29 3b 63 70 7a 3d 72 64 64 2a 73 | pi*.333;cpx=rdd*cos(x);cpz=rdd*s |
66e0 | 69 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a 64 69 73 74 3d 72 65 67 30 30 | in(x);....//.Camera..zdist=reg00 |
6700 | 3b 72 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d 72 65 67 30 33 3b 73 74 65 70 | ;ry=reg01;oy=reg02;rx=reg03;step |
6720 | 73 3d 72 65 67 30 39 3b 0d 0a 63 79 74 3d 72 65 67 30 37 3b 73 79 74 3d 72 65 67 30 38 3b 0d 0a | s=reg09;..cyt=reg07;syt=reg08;.. |
6740 | 72 6f 66 66 3d 28 28 28 28 61 62 73 28 33 2a 72 79 2f 24 70 69 29 7c 30 29 25 36 29 2a 73 69 67 | roff=((((abs(3*ry/$pi)|0)%6)*sig |
6760 | 6e 28 72 79 29 2b 31 32 29 25 36 29 3b 0d 0a 72 79 3d 72 79 2d 28 72 6f 66 66 2b 32 29 2a 24 70 | n(ry)+12)%6);..ry=ry-(roff+2)*$p |
6780 | 69 2f 33 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d 73 69 6e 28 72 78 29 3b 0d 0a 63 79 | i/3;..cx=cos(rx);sx=sin(rx);..cy |
67a0 | 3d 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 | =cos(ry);sy=sin(ry);....//.Sound |
67c0 | 20 72 65 73 70 6f 6e 73 65 0d 0a 6e 3d 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 30 29 2c 72 65 | .response..n=if(equal(roff,0),re |
67e0 | 67 31 32 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 31 29 2c 72 65 67 31 33 2c 69 66 28 65 71 | g12,if(equal(roff,1),reg13,if(eq |
6800 | 75 61 6c 28 72 6f 66 66 2c 32 29 2c 72 65 67 31 34 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c | ual(roff,2),reg14,if(equal(roff, |
6820 | 33 29 2c 72 65 67 31 35 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 34 29 2c 72 65 67 31 36 2c | 3),reg15,if(equal(roff,4),reg16, |
6840 | 72 65 67 31 31 29 29 29 29 29 3b 0d 0a 6e 3d 6e 2a 31 2e 32 35 3b 6e 3d 28 28 6e 2a 73 74 65 70 | reg11)))));..n=n*1.25;n=((n*step |
6860 | 73 29 7c 30 29 2a 33 2b 33 3b 72 65 73 70 3d 72 65 67 33 30 2a 2e 38 3b 0d 0a 70 79 3d 6f 79 3b | s)|0)*3+3;resp=reg30*.8;..py=oy; |
6880 | 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b | ....//.State.vars..cs=$pi*.3333; |
68a0 | 61 66 3d 77 2f 68 3b 70 3d 30 3b 0d 0a 70 6f 66 66 3d 28 2d 33 2a 72 79 2f 24 70 69 29 3b 0d 0a | af=w/h;p=0;..poff=(-3*ry/$pi);.. |
68c0 | 70 6f 66 66 3d 28 61 62 73 28 70 6f 66 66 29 25 36 29 2a 73 69 67 6e 28 70 6f 66 66 29 2b 32 2e | poff=(abs(poff)%6)*sign(poff)+2. |
68e0 | 35 3b 0d 0a 6f 64 64 3d 30 3b 00 00 00 00 00 20 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 32 0d 0a | 5;..odd=0;.........//.Column.2.. |
6900 | 6e 3d 30 3b 72 64 64 3d 31 3b 70 6f 73 3d 2d 2e 35 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 | n=0;rdd=1;pos=-.5;.............. |
6920 | 00 00 00 24 00 00 00 98 04 00 00 01 4b 02 00 00 2f 2f 20 53 65 74 20 75 70 20 63 6f 6c 75 6d 6e | ...$........K...//.Set.up.column |
6940 | 0d 0a 70 7a 3d 28 69 2d 2e 35 29 2a 2e 38 36 36 3b 70 78 3d 28 70 2d 2e 35 29 2a 28 31 2d 61 62 | ..pz=(i-.5)*.866;px=(p-.5)*(1-ab |
6960 | 73 28 69 2d 2e 35 29 29 3b 0d 0a 70 78 3d 70 78 2b 63 70 78 3b 70 7a 3d 70 7a 2b 63 70 7a 3b 0d | s(i-.5));..px=px+cpx;pz=pz+cpz;. |
6980 | 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f 72 6d 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d | ...//.Transform.and.project..x1= |
69a0 | 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d | px*cy-pz*sy;z1=px*sy+pz*cy;..y2= |
69c0 | 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 | py*cx-z1*sx;z2=py*sx+z1*cx+zdist |
69e0 | 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b 20 20 20 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 | ;..z2=z2*.75;.....z2=if(below(z2 |
6a00 | 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a | ,.02),0,1/z2);..x=x1*z2;y=y2*z2* |
6a20 | 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 52 65 63 61 6c 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e | af-.1;....//.Recalculate.for.lin |
6a40 | 65 61 72 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 0d 0a 70 78 3d 63 70 78 3b | ear.texture.coordinates..px=cpx; |
6a60 | 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b | ..x1=px*cy-pz*sy;z1=px*sy+pz*cy; |
6a80 | 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b | ..y2=py*cx-z1*sx;z2=py*sx+z1*cx+ |
6aa0 | 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 | zdist;..//.Fake.environment.mapp |
6ac0 | 69 6e 67 0d 0a 61 3d 78 31 2b 73 69 6e 28 79 32 2a 2e 37 2d 78 31 2a 2e 36 29 2a 32 2b 35 3b 62 | ing..a=x1+sin(y2*.7-x1*.6)*2+5;b |
6ae0 | 3d 79 32 2a 2e 35 2d 78 31 2a 31 2e 31 2b 2e 35 3b 63 3d 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d | =y2*.5-x1*1.1+.5;c=cos(a);..red= |
6b00 | 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 30 2b 2e 37 3b 0d 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 | (c+sin(b))*.30+.7;..green=(cos(a |
6b20 | 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 29 2a 31 2e 32 29 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 | +.2)+sin(b-.1)*1.2)*.30+.5;..blu |
6b40 | 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 29 2a 31 2e 35 29 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f | e=(c+sin(b+.2)*1.5)*.30+.0;..../ |
6b60 | 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 70 3d 62 6e 6f 74 28 70 29 3b 0d 0a 00 08 02 00 00 2f | /.State.vars..p=bnot(p);......./ |
6b80 | 2f 20 53 65 74 75 70 20 63 6f 6c 75 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 | /.Setup.column..x=pos*$pi*.333;c |
6ba0 | 70 78 3d 72 64 64 2a 63 6f 73 28 78 29 3b 63 70 7a 3d 72 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d | px=rdd*cos(x);cpz=rdd*sin(x);... |
6bc0 | 0a 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a 64 69 73 74 3d 72 65 67 30 30 3b 72 79 3d 72 65 67 30 31 | .//.Camera..zdist=reg00;ry=reg01 |
6be0 | 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d 72 65 67 30 33 3b 73 74 65 70 73 3d 72 65 67 30 39 3b 0d | ;oy=reg02;rx=reg03;steps=reg09;. |
6c00 | 0a 63 79 74 3d 72 65 67 30 37 3b 73 79 74 3d 72 65 67 30 38 3b 0d 0a 72 6f 66 66 3d 28 28 28 28 | .cyt=reg07;syt=reg08;..roff=(((( |
6c20 | 61 62 73 28 33 2a 72 79 2f 24 70 69 29 7c 30 29 25 36 29 2a 73 69 67 6e 28 72 79 29 2b 31 32 29 | abs(3*ry/$pi)|0)%6)*sign(ry)+12) |
6c40 | 25 36 29 3b 0d 0a 72 79 3d 72 79 2d 28 72 6f 66 66 2b 32 29 2a 24 70 69 2f 33 3b 0d 0a 63 78 3d | %6);..ry=ry-(roff+2)*$pi/3;..cx= |
6c60 | 63 6f 73 28 72 78 29 3b 73 78 3d 73 69 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b | cos(rx);sx=sin(rx);..cy=cos(ry); |
6c80 | 73 79 3d 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 73 70 6f 6e 73 65 | sy=sin(ry);....//.Sound.response |
6ca0 | 0d 0a 6e 3d 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 30 29 2c 72 65 67 31 32 2c 69 66 28 65 71 | ..n=if(equal(roff,0),reg12,if(eq |
6cc0 | 75 61 6c 28 72 6f 66 66 2c 31 29 2c 72 65 67 31 33 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c | ual(roff,1),reg13,if(equal(roff, |
6ce0 | 32 29 2c 72 65 67 31 34 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c 72 65 67 31 35 2c | 2),reg14,if(equal(roff,3),reg15, |
6d00 | 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 34 29 2c 72 65 67 31 36 2c 72 65 67 31 31 29 29 29 29 | if(equal(roff,4),reg16,reg11)))) |
6d20 | 29 3b 0d 0a 6e 3d 28 28 6e 2a 73 74 65 70 73 29 7c 30 29 3b 72 65 73 70 3d 72 65 67 33 30 3b 0d | );..n=((n*steps)|0);resp=reg30;. |
6d40 | 0a 70 79 3d 6f 79 2d 6e 2a 72 65 73 70 3b 0d 0a 6e 3d 35 30 2a 77 2f 33 32 30 3b 0d 0a 0d 0a 2f | .py=oy-n*resp;..n=50*w/320;..../ |
6d60 | 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d 77 2f | /.State.vars..cs=$pi*.3333;af=w/ |
6d80 | 68 3b 70 3d 30 3b 00 00 00 00 00 24 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 32 20 54 6f 70 0d 0a | h;p=0;.....$...//.Column.2.Top.. |
6da0 | 6e 3d 30 3b 72 64 64 3d 31 3b 70 6f 73 3d 2d 2e 35 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 | n=0;rdd=1;pos=-.5;.............. |
6dc0 | 00 00 00 24 00 00 00 7f 05 00 00 01 e3 02 00 00 2f 2f 20 53 65 74 20 75 70 20 63 6f 6c 75 6d 6e | ...$............//.Set.up.column |
6de0 | 0d 0a 71 3d 69 66 28 6f 64 64 2c 33 2d 70 2c 70 29 3b 0d 0a 61 3d 63 73 2a 28 71 2b 2e 35 2b 70 | ..q=if(odd,3-p,p);..a=cs*(q+.5+p |
6e00 | 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 2e 35 2b 63 70 78 3b 70 7a 3d 73 69 6e 28 61 | off);..px=cos(a)*.5+cpx;pz=sin(a |
6e20 | 29 2a 2e 35 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f 72 6d 20 61 6e 64 20 70 72 | )*.5+cpz;....//.Transform.and.pr |
6e40 | 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 | oject..x1=px*cy-pz*sy;z1=px*sy+p |
6e60 | 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a | z*cy;..y2=py*cx-z1*sx;z2=py*sx+z |
6e80 | 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b 0d 0a 7a 32 3d 69 66 28 62 | 1*cx+zdist;..z2=z2*.75;..z2=if(b |
6ea0 | 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 | elow(z2,.02),0,1/z2);..x=x1*z2;y |
6ec0 | 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 52 65 63 61 6c 63 75 6c 61 74 65 20 | =y2*z2*af-.1;....//.Recalculate. |
6ee0 | 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 0d 0a | for.linear.texture.coordinates.. |
6f00 | 71 3d 69 66 28 6f 64 64 2c 32 2e 35 2d 65 71 75 61 6c 28 70 2c 32 29 2c 6d 61 78 28 2e 35 2c 70 | q=if(odd,2.5-equal(p,2),max(.5,p |
6f20 | 2d 2e 35 29 29 2d 31 3b 0d 0a 61 3d 63 73 2a 28 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d 0a 70 78 3d | -.5))-1;..a=cs*(q+.5+poff);..px= |
6f40 | 63 6f 73 28 61 29 2a 2e 35 3b 70 7a 3d 73 69 6e 28 61 29 2a 2e 35 3b 0d 0a 78 31 3d 70 78 2a 63 | cos(a)*.5;pz=sin(a)*.5;..x1=px*c |
6f60 | 79 74 2d 70 7a 2a 73 79 74 2d 72 64 64 2a 33 2e 3b 7a 31 3d 70 78 2a 73 79 74 2b 70 7a 2a 63 79 | yt-pz*syt-rdd*3.;z1=px*syt+pz*cy |
6f80 | 74 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 | t;..y2=py*cx-z1*sx;z2=py*sx+z1*c |
6fa0 | 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 | x+zdist;..//.Fake.environment.ma |
6fc0 | 70 70 69 6e 67 0d 0a 61 3d 78 31 2a 32 37 2b 73 69 6e 28 79 32 2d 78 31 2a 33 29 2a 32 2b 35 3b | pping..a=x1*27+sin(y2-x1*3)*2+5; |
6fe0 | 62 3d 79 32 2a 2e 38 2d 78 31 2a 32 2e 31 2b 2e 35 3b 63 3d 63 6f 73 28 61 29 3b 0d 0a 72 65 64 | b=y2*.8-x1*2.1+.5;c=cos(a);..red |
7000 | 3d 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 30 2b 2e 37 3b 0d 0a 67 72 65 65 6e 3d 28 63 6f 73 28 | =(c+sin(b))*.30+.7;..green=(cos( |
7020 | 61 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 29 2a 31 2e 32 29 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c | a+.2)+sin(b-.1)*1.2)*.30+.5;..bl |
7040 | 75 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 29 2a 31 2e 35 29 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a | ue=(c+sin(b+.2)*1.5)*.30+.0;.... |
7060 | 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 70 3d 28 70 2b 31 29 25 33 3b 70 79 3d 70 79 2d 65 | //.State.vars..p=(p+1)%3;py=py-e |
7080 | 71 75 61 6c 28 70 2c 30 29 2a 72 65 73 70 3b 0d 0a 6f 64 64 3d 69 66 28 65 71 75 61 6c 28 70 2c | qual(p,0)*resp;..odd=if(equal(p, |
70a0 | 30 29 2c 62 6e 6f 74 28 6f 64 64 29 2c 6f 64 64 29 3b 00 59 02 00 00 2f 2f 20 53 65 74 75 70 20 | 0),bnot(odd),odd);.Y...//.Setup. |
70c0 | 63 6f 6c 75 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 70 78 3d 72 64 64 2a 63 | column..x=pos*$pi*.333;cpx=rdd*c |
70e0 | 6f 73 28 78 29 3b 63 70 7a 3d 72 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 | os(x);cpz=rdd*sin(x);....//.Came |
7100 | 72 61 0d 0a 7a 64 69 73 74 3d 72 65 67 30 30 3b 72 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 | ra..zdist=reg00;ry=reg01;oy=reg0 |
7120 | 32 3b 72 78 3d 72 65 67 30 33 3b 73 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a 63 79 74 3d 72 65 67 | 2;rx=reg03;steps=reg09;..cyt=reg |
7140 | 30 37 3b 73 79 74 3d 72 65 67 30 38 3b 0d 0a 72 6f 66 66 3d 28 28 28 28 61 62 73 28 33 2a 72 79 | 07;syt=reg08;..roff=((((abs(3*ry |
7160 | 2f 24 70 69 2b 2e 35 29 7c 30 29 25 36 29 2a 73 69 67 6e 28 72 79 29 2b 31 32 29 25 36 29 3b 0d | /$pi+.5)|0)%6)*sign(ry)+12)%6);. |
7180 | 0a 72 79 3d 72 79 2d 28 72 6f 66 66 2b 31 29 2a 24 70 69 2f 33 3b 0d 0a 63 78 3d 63 6f 73 28 72 | .ry=ry-(roff+1)*$pi/3;..cx=cos(r |
71a0 | 78 29 3b 73 78 3d 73 69 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 | x);sx=sin(rx);..cy=cos(ry);sy=si |
71c0 | 6e 28 72 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 73 70 6f 6e 73 65 0d 0a 6e 3d 69 | n(ry);....//.Sound.response..n=i |
71e0 | 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 30 29 2c 72 65 67 32 37 2c 69 66 28 65 71 75 61 6c 28 72 | f(equal(roff,0),reg27,if(equal(r |
7200 | 6f 66 66 2c 31 29 2c 72 65 67 31 37 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 32 29 2c 72 65 | off,1),reg17,if(equal(roff,2),re |
7220 | 67 31 39 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c 72 65 67 32 31 2c 69 66 28 65 71 | g19,if(equal(roff,3),reg21,if(eq |
7240 | 75 61 6c 28 72 6f 66 66 2c 34 29 2c 72 65 67 32 33 2c 72 65 67 32 35 29 29 29 29 29 3b 0d 0a 6e | ual(roff,4),reg23,reg25)))));..n |
7260 | 3d 28 28 6e 2a 73 74 65 70 73 29 7c 30 29 2a 33 2b 33 3b 72 65 73 70 3d 72 65 67 33 30 3b 0d 0a | =((n*steps)|0)*3+3;resp=reg30;.. |
7280 | 6e 3d 6e 2a 62 6e 6f 74 28 61 62 6f 76 65 28 73 69 6e 28 72 79 2a 36 29 2c 30 29 29 3b 0d 0a 70 | n=n*bnot(above(sin(ry*6),0));..p |
72a0 | 79 3d 6f 79 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e | y=oy;....//.State.vars..cs=$pi*. |
72c0 | 33 33 33 33 3b 61 66 3d 77 2f 68 3b 70 3d 30 3b 0d 0a 70 6f 66 66 3d 28 2d 33 2a 72 79 2f 24 70 | 3333;af=w/h;p=0;..poff=(-3*ry/$p |
72e0 | 69 29 3b 0d 0a 70 6f 66 66 3d 28 61 62 73 28 70 6f 66 66 29 25 36 29 2a 73 69 67 6e 28 70 6f 66 | i);..poff=(abs(poff)%6)*sign(pof |
7300 | 66 29 2b 32 2e 35 3b 0d 0a 6f 64 64 3d 30 3b 00 00 00 00 00 22 00 00 00 2f 2f 20 43 6f 6c 75 6d | f)+2.5;..odd=0;....."...//.Colum |
7320 | 6e 20 39 62 0d 0a 6e 3d 30 3b 72 64 64 3d 31 2e 37 33 3b 70 6f 73 3d 31 3b 00 02 00 00 00 01 00 | n.9b..n=0;rdd=1.73;pos=1;....... |
7340 | 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 bc 04 00 00 01 4b 02 00 00 2f 2f 20 53 65 74 20 75 70 | ..........$........K...//.Set.up |
7360 | 20 63 6f 6c 75 6d 6e 0d 0a 70 7a 3d 28 69 2d 2e 35 29 2a 2e 38 36 36 3b 70 78 3d 28 70 2d 2e 35 | .column..pz=(i-.5)*.866;px=(p-.5 |
7380 | 29 2a 28 31 2d 61 62 73 28 69 2d 2e 35 29 29 3b 0d 0a 70 78 3d 70 78 2b 63 70 78 3b 70 7a 3d 70 | )*(1-abs(i-.5));..px=px+cpx;pz=p |
73a0 | 7a 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f 72 6d 20 61 6e 64 20 70 72 6f 6a 65 | z+cpz;....//.Transform.and.proje |
73c0 | 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 | ct..x1=px*cy-pz*sy;z1=px*sy+pz*c |
73e0 | 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 | y;..y2=py*cx-z1*sx;z2=py*sx+z1*c |
7400 | 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b 20 20 20 0d 0a 7a 32 3d 69 66 28 62 | x+zdist;..z2=z2*.75;.....z2=if(b |
7420 | 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 | elow(z2,.02),0,1/z2);..x=x1*z2;y |
7440 | 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 52 65 63 61 6c 63 75 6c 61 74 65 20 | =y2*z2*af-.1;....//.Recalculate. |
7460 | 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 0d 0a | for.linear.texture.coordinates.. |
7480 | 70 78 3d 63 70 78 3b 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 | px=cpx;..x1=px*cy-pz*sy;z1=px*sy |
74a0 | 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 | +pz*cy;..y2=py*cx-z1*sx;z2=py*sx |
74c0 | 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 | +z1*cx+zdist;..//.Fake.environme |
74e0 | 6e 74 20 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 31 2b 73 69 6e 28 79 32 2a 2e 37 2d 78 31 2a 2e 36 | nt.mapping..a=x1+sin(y2*.7-x1*.6 |
7500 | 29 2a 32 2b 35 3b 62 3d 79 32 2a 2e 35 2d 78 31 2a 31 2e 31 2b 2e 35 3b 63 3d 63 6f 73 28 61 29 | )*2+5;b=y2*.5-x1*1.1+.5;c=cos(a) |
7520 | 3b 0d 0a 72 65 64 3d 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 30 2b 2e 37 3b 0d 0a 67 72 65 65 6e | ;..red=(c+sin(b))*.30+.7;..green |
7540 | 3d 28 63 6f 73 28 61 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 29 2a 31 2e 32 29 2a 2e 33 30 2b 2e | =(cos(a+.2)+sin(b-.1)*1.2)*.30+. |
7560 | 35 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 29 2a 31 2e 35 29 2a 2e 33 30 2b 2e | 5;..blue=(c+sin(b+.2)*1.5)*.30+. |
7580 | 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 70 3d 62 6e 6f 74 28 70 29 3b 0d | 0;....//.State.vars..p=bnot(p);. |
75a0 | 0a 00 2a 02 00 00 2f 2f 20 53 65 74 75 70 20 63 6f 6c 75 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 | ..*...//.Setup.column..x=pos*$pi |
75c0 | 2a 2e 33 33 33 3b 63 70 78 3d 72 64 64 2a 63 6f 73 28 78 29 3b 63 70 7a 3d 72 64 64 2a 73 69 6e | *.333;cpx=rdd*cos(x);cpz=rdd*sin |
75e0 | 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a 64 69 73 74 3d 72 65 67 30 30 3b 72 | (x);....//.Camera..zdist=reg00;r |
7600 | 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d 72 65 67 30 33 3b 73 74 65 70 73 3d | y=reg01;oy=reg02;rx=reg03;steps= |
7620 | 72 65 67 30 39 3b 0d 0a 63 79 74 3d 72 65 67 30 37 3b 73 79 74 3d 72 65 67 30 38 3b 0d 0a 72 6f | reg09;..cyt=reg07;syt=reg08;..ro |
7640 | 66 66 3d 28 28 28 28 61 62 73 28 33 2a 72 79 2f 24 70 69 2b 2e 35 29 7c 30 29 25 36 29 2a 73 69 | ff=((((abs(3*ry/$pi+.5)|0)%6)*si |
7660 | 67 6e 28 72 79 29 2b 31 32 29 25 36 29 3b 0d 0a 72 79 3d 72 79 2d 28 72 6f 66 66 2b 31 29 2a 24 | gn(ry)+12)%6);..ry=ry-(roff+1)*$ |
7680 | 70 69 2f 33 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d 73 69 6e 28 72 78 29 3b 0d 0a 63 | pi/3;..cx=cos(rx);sx=sin(rx);..c |
76a0 | 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e | y=cos(ry);sy=sin(ry);....//.Soun |
76c0 | 64 20 72 65 73 70 6f 6e 73 65 0d 0a 6e 3d 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 30 29 2c 72 | d.response..n=if(equal(roff,0),r |
76e0 | 65 67 32 37 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 31 29 2c 72 65 67 31 37 2c 69 66 28 65 | eg27,if(equal(roff,1),reg17,if(e |
7700 | 71 75 61 6c 28 72 6f 66 66 2c 32 29 2c 72 65 67 31 39 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 | qual(roff,2),reg19,if(equal(roff |
7720 | 2c 33 29 2c 72 65 67 32 31 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 34 29 2c 72 65 67 32 33 | ,3),reg21,if(equal(roff,4),reg23 |
7740 | 2c 72 65 67 32 35 29 29 29 29 29 3b 0d 0a 6e 3d 28 28 6e 2a 73 74 65 70 73 29 7c 30 29 3b 72 65 | ,reg25)))));..n=((n*steps)|0);re |
7760 | 73 70 3d 72 65 67 33 30 3b 0d 0a 70 79 3d 6f 79 2d 6e 2a 72 65 73 70 3b 0d 0a 6e 3d 35 30 2a 77 | sp=reg30;..py=oy-n*resp;..n=50*w |
7780 | 2f 33 32 30 3b 6e 3d 6e 2a 62 6e 6f 74 28 61 62 6f 76 65 28 73 69 6e 28 72 79 2a 36 29 2c 30 29 | /320;n=n*bnot(above(sin(ry*6),0) |
77a0 | 29 3b 0d 0a 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 | );......//.State.vars..cs=$pi*.3 |
77c0 | 33 33 33 3b 61 66 3d 77 2f 68 3b 70 3d 30 3b 00 00 00 00 00 26 00 00 00 2f 2f 20 43 6f 6c 75 6d | 333;af=w/h;p=0;.....&...//.Colum |
77e0 | 6e 20 39 62 20 54 6f 70 0d 0a 6e 3d 30 3b 72 64 64 3d 31 2e 37 33 3b 70 6f 73 3d 31 3b 00 02 00 | n.9b.Top..n=0;rdd=1.73;pos=1;... |
7800 | 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 6a 05 00 00 01 e6 02 00 00 2f 2f 20 53 65 | ..............$...j........//.Se |
7820 | 74 20 75 70 20 63 6f 6c 75 6d 6e 0d 0a 71 3d 69 66 28 6f 64 64 2c 33 2d 70 2c 70 29 3b 0d 0a 61 | t.up.column..q=if(odd,3-p,p);..a |
7840 | 3d 63 73 2a 28 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 2e 35 2b 63 | =cs*(q+.5+poff);..px=cos(a)*.5+c |
7860 | 70 78 3b 70 7a 3d 73 69 6e 28 61 29 2a 2e 35 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 | px;pz=sin(a)*.5+cpz;....//.Trans |
7880 | 66 6f 72 6d 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 | form.and.project..x1=px*cy-pz*sy |
78a0 | 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 | ;z1=px*sy+pz*cy;..y2=py*cx-z1*sx |
78c0 | 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 | ;z2=py*sx+z1*cx+zdist;..z2=z2*.7 |
78e0 | 35 3b 20 20 20 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a | 5;.....z2=if(below(z2,.02),0,1/z |
7900 | 32 29 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f | 2);..x=x1*z2;y=y2*z2*af-.1;..../ |
7920 | 2f 20 52 65 63 61 6c 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 78 74 75 72 65 | /.Recalculate.for.linear.texture |
7940 | 20 63 6f 6f 72 64 69 6e 61 74 65 73 0d 0a 71 3d 69 66 28 6f 64 64 2c 32 2e 35 2d 65 71 75 61 6c | .coordinates..q=if(odd,2.5-equal |
7960 | 28 70 2c 32 29 2c 6d 61 78 28 2e 35 2c 70 2d 2e 35 29 29 2d 31 3b 0d 0a 61 3d 63 73 2a 28 71 2b | (p,2),max(.5,p-.5))-1;..a=cs*(q+ |
7980 | 2e 35 2b 70 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 2e 35 3b 70 7a 3d 73 69 6e 28 61 | .5+poff);..px=cos(a)*.5;pz=sin(a |
79a0 | 29 2a 2e 35 3b 0d 0a 78 31 3d 70 78 2a 63 79 74 2d 70 7a 2a 73 79 74 2d 72 64 64 2a 33 2e 3b 7a | )*.5;..x1=px*cyt-pz*syt-rdd*3.;z |
79c0 | 31 3d 70 78 2a 73 79 74 2b 70 7a 2a 63 79 74 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 | 1=px*syt+pz*cyt;..y2=py*cx-z1*sx |
79e0 | 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 6b 65 20 | ;z2=py*sx+z1*cx+zdist;..//.Fake. |
7a00 | 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 31 2a 32 37 2b 73 69 6e | environment.mapping..a=x1*27+sin |
7a20 | 28 79 32 2d 78 31 2a 33 29 2a 32 2b 35 3b 62 3d 79 32 2a 2e 38 2d 78 31 2a 32 2e 31 2b 2e 35 3b | (y2-x1*3)*2+5;b=y2*.8-x1*2.1+.5; |
7a40 | 63 3d 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 30 2b 2e 37 | c=cos(a);..red=(c+sin(b))*.30+.7 |
7a60 | 3b 0d 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 29 2a 31 2e | ;..green=(cos(a+.2)+sin(b-.1)*1. |
7a80 | 32 29 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 29 2a 31 2e | 2)*.30+.5;..blue=(c+sin(b+.2)*1. |
7aa0 | 35 29 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 70 3d 28 | 5)*.30+.0;....//.State.vars..p=( |
7ac0 | 70 2b 31 29 25 33 3b 70 79 3d 70 79 2d 65 71 75 61 6c 28 70 2c 30 29 2a 72 65 73 70 3b 0d 0a 6f | p+1)%3;py=py-equal(p,0)*resp;..o |
7ae0 | 64 64 3d 69 66 28 65 71 75 61 6c 28 70 2c 30 29 2c 62 6e 6f 74 28 6f 64 64 29 2c 6f 64 64 29 3b | dd=if(equal(p,0),bnot(odd),odd); |
7b00 | 00 43 02 00 00 2f 2f 20 53 65 74 75 70 20 63 6f 6c 75 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 2a | .C...//.Setup.column..x=pos*$pi* |
7b20 | 2e 33 33 33 3b 63 70 78 3d 72 64 64 2a 63 6f 73 28 78 29 3b 63 70 7a 3d 72 64 64 2a 73 69 6e 28 | .333;cpx=rdd*cos(x);cpz=rdd*sin( |
7b40 | 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a 64 69 73 74 3d 72 65 67 30 30 3b 72 79 | x);....//.Camera..zdist=reg00;ry |
7b60 | 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d 72 65 67 30 33 3b 73 74 65 70 73 3d 72 | =reg01;oy=reg02;rx=reg03;steps=r |
7b80 | 65 67 30 39 3b 0d 0a 63 79 74 3d 72 65 67 30 37 3b 73 79 74 3d 72 65 67 30 38 3b 0d 0a 72 6f 66 | eg09;..cyt=reg07;syt=reg08;..rof |
7ba0 | 66 3d 28 28 28 28 61 62 73 28 33 2a 72 79 2f 24 70 69 29 7c 30 29 25 36 29 2a 73 69 67 6e 28 72 | f=((((abs(3*ry/$pi)|0)%6)*sign(r |
7bc0 | 79 29 2b 31 32 29 25 36 29 3b 0d 0a 72 79 3d 72 79 2d 28 72 6f 66 66 2b 32 29 2a 24 70 69 2f 33 | y)+12)%6);..ry=ry-(roff+2)*$pi/3 |
7be0 | 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d 73 69 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f | ;..cx=cos(rx);sx=sin(rx);..cy=co |
7c00 | 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 | s(ry);sy=sin(ry);....//.Sound.re |
7c20 | 73 70 6f 6e 73 65 0d 0a 6e 3d 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 30 29 2c 72 65 67 31 36 | sponse..n=if(equal(roff,0),reg16 |
7c40 | 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 31 29 2c 72 65 67 31 31 2c 69 66 28 65 71 75 61 6c | ,if(equal(roff,1),reg11,if(equal |
7c60 | 28 72 6f 66 66 2c 32 29 2c 72 65 67 31 32 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c | (roff,2),reg12,if(equal(roff,3), |
7c80 | 72 65 67 31 33 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 34 29 2c 72 65 67 31 34 2c 72 65 67 | reg13,if(equal(roff,4),reg14,reg |
7ca0 | 31 35 29 29 29 29 29 3b 0d 0a 6e 3d 6e 2a 31 2e 32 35 3b 6e 3d 28 28 6e 2a 73 74 65 70 73 29 7c | 15)))));..n=n*1.25;n=((n*steps)| |
7cc0 | 30 29 2a 33 2b 33 3b 72 65 73 70 3d 72 65 67 33 30 2a 2e 38 3b 0d 0a 70 79 3d 6f 79 3b 0d 0a 0d | 0)*3+3;resp=reg30*.8;..py=oy;... |
7ce0 | 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d | .//.State.vars..cs=$pi*.3333;af= |
7d00 | 77 2f 68 3b 70 3d 30 3b 0d 0a 70 6f 66 66 3d 28 2d 33 2a 72 79 2f 24 70 69 29 3b 0d 0a 70 6f 66 | w/h;p=0;..poff=(-3*ry/$pi);..pof |
7d20 | 66 3d 28 61 62 73 28 70 6f 66 66 29 25 36 29 2a 73 69 67 6e 28 70 6f 66 66 29 2b 32 2e 35 3b 0d | f=(abs(poff)%6)*sign(poff)+2.5;. |
7d40 | 0a 6f 64 64 3d 30 3b 00 00 00 00 00 20 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 36 0d 0a 6e 3d 30 | .odd=0;.........//.Column.6..n=0 |
7d60 | 3b 72 64 64 3d 31 3b 70 6f 73 3d 31 2e 35 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 | ;rdd=1;pos=1.5;................. |
7d80 | 24 00 00 00 98 04 00 00 01 4b 02 00 00 2f 2f 20 53 65 74 20 75 70 20 63 6f 6c 75 6d 6e 0d 0a 70 | $........K...//.Set.up.column..p |
7da0 | 7a 3d 28 69 2d 2e 35 29 2a 2e 38 36 36 3b 70 78 3d 28 70 2d 2e 35 29 2a 28 31 2d 61 62 73 28 69 | z=(i-.5)*.866;px=(p-.5)*(1-abs(i |
7dc0 | 2d 2e 35 29 29 3b 0d 0a 70 78 3d 70 78 2b 63 70 78 3b 70 7a 3d 70 7a 2b 63 70 7a 3b 0d 0a 0d 0a | -.5));..px=px+cpx;pz=pz+cpz;.... |
7de0 | 2f 2f 20 54 72 61 6e 73 66 6f 72 6d 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a | //.Transform.and.project..x1=px* |
7e00 | 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a | cy-pz*sy;z1=px*sy+pz*cy;..y2=py* |
7e20 | 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a | cx-z1*sx;z2=py*sx+z1*cx+zdist;.. |
7e40 | 7a 32 3d 7a 32 2a 2e 37 35 3b 20 20 20 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 | z2=z2*.75;.....z2=if(below(z2,.0 |
7e60 | 32 29 2c 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d | 2),0,1/z2);..x=x1*z2;y=y2*z2*af- |
7e80 | 2e 31 3b 0d 0a 0d 0a 2f 2f 20 52 65 63 61 6c 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e 65 61 72 | .1;....//.Recalculate.for.linear |
7ea0 | 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 0d 0a 70 78 3d 63 70 78 3b 0d 0a 78 | .texture.coordinates..px=cpx;..x |
7ec0 | 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 | 1=px*cy-pz*sy;z1=px*sy+pz*cy;..y |
7ee0 | 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 | 2=py*cx-z1*sx;z2=py*sx+z1*cx+zdi |
7f00 | 73 74 3b 0d 0a 2f 2f 20 46 61 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 69 6e 67 | st;..//.Fake.environment.mapping |
7f20 | 0d 0a 61 3d 78 31 2b 73 69 6e 28 79 32 2a 2e 37 2d 78 31 2a 2e 36 29 2a 32 2b 35 3b 62 3d 79 32 | ..a=x1+sin(y2*.7-x1*.6)*2+5;b=y2 |
7f40 | 2a 2e 35 2d 78 31 2a 31 2e 31 2b 2e 35 3b 63 3d 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d 28 63 2b | *.5-x1*1.1+.5;c=cos(a);..red=(c+ |
7f60 | 73 69 6e 28 62 29 29 2a 2e 33 30 2b 2e 37 3b 0d 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 2b 2e 32 | sin(b))*.30+.7;..green=(cos(a+.2 |
7f80 | 29 2b 73 69 6e 28 62 2d 2e 31 29 2a 31 2e 32 29 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 65 3d 28 | )+sin(b-.1)*1.2)*.30+.5;..blue=( |
7fa0 | 63 2b 73 69 6e 28 62 2b 2e 32 29 2a 31 2e 35 29 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f 2f 20 53 | c+sin(b+.2)*1.5)*.30+.0;....//.S |
7fc0 | 74 61 74 65 20 76 61 72 73 0d 0a 70 3d 62 6e 6f 74 28 70 29 3b 0d 0a 00 08 02 00 00 2f 2f 20 53 | tate.vars..p=bnot(p);.......//.S |
7fe0 | 65 74 75 70 20 63 6f 6c 75 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 70 78 3d | etup.column..x=pos*$pi*.333;cpx= |
8000 | 72 64 64 2a 63 6f 73 28 78 29 3b 63 70 7a 3d 72 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f | rdd*cos(x);cpz=rdd*sin(x);....// |
8020 | 20 43 61 6d 65 72 61 0d 0a 7a 64 69 73 74 3d 72 65 67 30 30 3b 72 79 3d 72 65 67 30 31 3b 6f 79 | .Camera..zdist=reg00;ry=reg01;oy |
8040 | 3d 72 65 67 30 32 3b 72 78 3d 72 65 67 30 33 3b 73 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a 63 79 | =reg02;rx=reg03;steps=reg09;..cy |
8060 | 74 3d 72 65 67 30 37 3b 73 79 74 3d 72 65 67 30 38 3b 0d 0a 72 6f 66 66 3d 28 28 28 28 61 62 73 | t=reg07;syt=reg08;..roff=((((abs |
8080 | 28 33 2a 72 79 2f 24 70 69 29 7c 30 29 25 36 29 2a 73 69 67 6e 28 72 79 29 2b 31 32 29 25 36 29 | (3*ry/$pi)|0)%6)*sign(ry)+12)%6) |
80a0 | 3b 0d 0a 72 79 3d 72 79 2d 28 72 6f 66 66 2b 32 29 2a 24 70 69 2f 33 3b 0d 0a 63 78 3d 63 6f 73 | ;..ry=ry-(roff+2)*$pi/3;..cx=cos |
80c0 | 28 72 78 29 3b 73 78 3d 73 69 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d | (rx);sx=sin(rx);..cy=cos(ry);sy= |
80e0 | 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 73 70 6f 6e 73 65 0d 0a 6e | sin(ry);....//.Sound.response..n |
8100 | 3d 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 30 29 2c 72 65 67 31 36 2c 69 66 28 65 71 75 61 6c | =if(equal(roff,0),reg16,if(equal |
8120 | 28 72 6f 66 66 2c 31 29 2c 72 65 67 31 31 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 32 29 2c | (roff,1),reg11,if(equal(roff,2), |
8140 | 72 65 67 31 32 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c 72 65 67 31 33 2c 69 66 28 | reg12,if(equal(roff,3),reg13,if( |
8160 | 65 71 75 61 6c 28 72 6f 66 66 2c 34 29 2c 72 65 67 31 34 2c 72 65 67 31 35 29 29 29 29 29 3b 0d | equal(roff,4),reg14,reg15)))));. |
8180 | 0a 6e 3d 28 28 6e 2a 73 74 65 70 73 29 7c 30 29 3b 72 65 73 70 3d 72 65 67 33 30 3b 0d 0a 70 79 | .n=((n*steps)|0);resp=reg30;..py |
81a0 | 3d 6f 79 2d 6e 2a 72 65 73 70 3b 0d 0a 6e 3d 35 30 2a 77 2f 33 32 30 3b 0d 0a 0d 0a 2f 2f 20 53 | =oy-n*resp;..n=50*w/320;....//.S |
81c0 | 74 61 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d 77 2f 68 3b 70 | tate.vars..cs=$pi*.3333;af=w/h;p |
81e0 | 3d 30 3b 00 00 00 00 00 24 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 36 20 54 6f 70 0d 0a 6e 3d 30 | =0;.....$...//.Column.6.Top..n=0 |
8200 | 3b 72 64 64 3d 31 3b 70 6f 73 3d 31 2e 35 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 | ;rdd=1;pos=1.5;................. |
8220 | 24 00 00 00 8e 05 00 00 01 e3 02 00 00 2f 2f 20 53 65 74 20 75 70 20 63 6f 6c 75 6d 6e 0d 0a 71 | $............//.Set.up.column..q |
8240 | 3d 69 66 28 6f 64 64 2c 33 2d 70 2c 70 29 3b 0d 0a 61 3d 63 73 2a 28 71 2b 2e 35 2b 70 6f 66 66 | =if(odd,3-p,p);..a=cs*(q+.5+poff |
8260 | 29 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 2e 35 2b 63 70 78 3b 70 7a 3d 73 69 6e 28 61 29 2a 2e | );..px=cos(a)*.5+cpx;pz=sin(a)*. |
8280 | 35 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f 72 6d 20 61 6e 64 20 70 72 6f 6a 65 | 5+cpz;....//.Transform.and.proje |
82a0 | 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 | ct..x1=px*cy-pz*sy;z1=px*sy+pz*c |
82c0 | 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 | y;..y2=py*cx-z1*sx;z2=py*sx+z1*c |
82e0 | 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f | x+zdist;..z2=z2*.75;..z2=if(belo |
8300 | 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 | w(z2,.02),0,1/z2);..x=x1*z2;y=y2 |
8320 | 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 52 65 63 61 6c 63 75 6c 61 74 65 20 66 6f 72 | *z2*af-.1;....//.Recalculate.for |
8340 | 20 6c 69 6e 65 61 72 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 0d 0a 71 3d 69 | .linear.texture.coordinates..q=i |
8360 | 66 28 6f 64 64 2c 32 2e 35 2d 65 71 75 61 6c 28 70 2c 32 29 2c 6d 61 78 28 2e 35 2c 70 2d 2e 35 | f(odd,2.5-equal(p,2),max(.5,p-.5 |
8380 | 29 29 2b 31 3b 0d 0a 61 3d 63 73 2a 28 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 | ))+1;..a=cs*(q+.5+poff);..px=cos |
83a0 | 28 61 29 2a 2e 35 3b 70 7a 3d 73 69 6e 28 61 29 2a 2e 35 3b 0d 0a 78 31 3d 70 78 2a 63 79 74 2d | (a)*.5;pz=sin(a)*.5;..x1=px*cyt- |
83c0 | 70 7a 2a 73 79 74 2d 72 64 64 2a 33 2e 3b 7a 31 3d 70 78 2a 73 79 74 2b 70 7a 2a 63 79 74 3b 0d | pz*syt-rdd*3.;z1=px*syt+pz*cyt;. |
83e0 | 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a | .y2=py*cx-z1*sx;z2=py*sx+z1*cx+z |
8400 | 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 69 | dist;..//.Fake.environment.mappi |
8420 | 6e 67 0d 0a 61 3d 78 31 2a 32 37 2b 73 69 6e 28 79 32 2d 78 31 2a 33 29 2a 32 2b 35 3b 62 3d 79 | ng..a=x1*27+sin(y2-x1*3)*2+5;b=y |
8440 | 32 2a 2e 38 2d 78 31 2a 32 2e 31 2b 2e 35 3b 63 3d 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d 28 63 | 2*.8-x1*2.1+.5;c=cos(a);..red=(c |
8460 | 2b 73 69 6e 28 62 29 29 2a 2e 33 30 2b 2e 37 3b 0d 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 2b 2e | +sin(b))*.30+.7;..green=(cos(a+. |
8480 | 32 29 2b 73 69 6e 28 62 2d 2e 31 29 2a 31 2e 32 29 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 65 3d | 2)+sin(b-.1)*1.2)*.30+.5;..blue= |
84a0 | 28 63 2b 73 69 6e 28 62 2b 2e 32 29 2a 31 2e 35 29 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f 2f 20 | (c+sin(b+.2)*1.5)*.30+.0;....//. |
84c0 | 53 74 61 74 65 20 76 61 72 73 0d 0a 70 3d 28 70 2b 31 29 25 33 3b 70 79 3d 70 79 2d 65 71 75 61 | State.vars..p=(p+1)%3;py=py-equa |
84e0 | 6c 28 70 2c 30 29 2a 72 65 73 70 3b 0d 0a 6f 64 64 3d 69 66 28 65 71 75 61 6c 28 70 2c 30 29 2c | l(p,0)*resp;..odd=if(equal(p,0), |
8500 | 62 6e 6f 74 28 6f 64 64 29 2c 6f 64 64 29 3b 00 67 02 00 00 2f 2f 20 53 65 74 75 70 20 63 6f 6c | bnot(odd),odd);.g...//.Setup.col |
8520 | 75 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 70 78 3d 72 64 64 2a 63 6f 73 28 | umn..x=pos*$pi*.333;cpx=rdd*cos( |
8540 | 78 29 3b 63 70 7a 3d 72 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 72 61 0d | x);cpz=rdd*sin(x);....//.Camera. |
8560 | 0a 7a 64 69 73 74 3d 72 65 67 30 30 3b 72 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 | .zdist=reg00;ry=reg01;oy=reg02;r |
8580 | 78 3d 72 65 67 30 33 3b 73 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a 63 79 74 3d 72 65 67 30 37 3b | x=reg03;steps=reg09;..cyt=reg07; |
85a0 | 73 79 74 3d 72 65 67 30 38 3b 0d 0a 72 6f 66 66 3d 28 28 28 28 61 62 73 28 33 2a 72 79 2f 24 70 | syt=reg08;..roff=((((abs(3*ry/$p |
85c0 | 69 2b 2e 35 29 7c 30 29 25 36 29 2a 73 69 67 6e 28 72 79 29 2b 31 32 29 25 36 29 3b 0d 0a 72 79 | i+.5)|0)%6)*sign(ry)+12)%6);..ry |
85e0 | 3d 72 79 2d 28 72 6f 66 66 2b 31 29 2a 24 70 69 2f 33 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b | =ry-(roff+1)*$pi/3;..cx=cos(rx); |
8600 | 73 78 3d 73 69 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 | sx=sin(rx);..cy=cos(ry);sy=sin(r |
8620 | 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 73 70 6f 6e 73 65 0d 0a 6e 3d 69 66 28 65 | y);....//.Sound.response..n=if(e |
8640 | 71 75 61 6c 28 72 6f 66 66 2c 30 29 2c 72 65 67 31 39 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 | qual(roff,0),reg19,if(equal(roff |
8660 | 2c 31 29 2c 72 65 67 32 31 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 32 29 2c 72 65 67 32 33 | ,1),reg21,if(equal(roff,2),reg23 |
8680 | 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c 72 65 67 32 35 2c 69 66 28 65 71 75 61 6c | ,if(equal(roff,3),reg25,if(equal |
86a0 | 28 72 6f 66 66 2c 34 29 2c 72 65 67 32 37 2c 72 65 67 31 37 29 29 29 29 29 3b 0d 0a 6e 3d 6e 2a | (roff,4),reg27,reg17)))));..n=n* |
86c0 | 31 2e 32 35 3b 6e 3d 28 28 6e 2a 73 74 65 70 73 29 7c 30 29 2a 33 2b 33 3b 72 65 73 70 3d 72 65 | 1.25;n=((n*steps)|0)*3+3;resp=re |
86e0 | 67 33 30 2a 2e 38 3b 0d 0a 6e 3d 6e 2a 28 62 6e 6f 74 28 61 62 6f 76 65 28 73 69 6e 28 72 79 2a | g30*.8;..n=n*(bnot(above(sin(ry* |
8700 | 36 29 2c 30 29 29 29 3b 0d 0a 70 79 3d 6f 79 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 | 6),0)));..py=oy;....//.State.var |
8720 | 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d 77 2f 68 3b 70 3d 30 3b 0d 0a 70 6f 66 | s..cs=$pi*.3333;af=w/h;p=0;..pof |
8740 | 66 3d 28 2d 33 2a 72 79 2f 24 70 69 29 3b 0d 0a 70 6f 66 66 3d 28 61 62 73 28 70 6f 66 66 29 25 | f=(-3*ry/$pi);..poff=(abs(poff)% |
8760 | 36 29 2a 73 69 67 6e 28 70 6f 66 66 29 2b 33 2e 35 3b 0d 0a 6f 64 64 3d 30 3b 00 00 00 00 00 23 | 6)*sign(poff)+3.5;..odd=0;.....# |
8780 | 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 37 61 0d 0a 6e 3d 30 3b 72 64 64 3d 31 2e 37 33 3b 70 6f | ...//.Column.7a..n=0;rdd=1.73;po |
87a0 | 73 3d 2d 31 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 bd 04 00 00 01 4b | s=-1;.................$........K |
87c0 | 02 00 00 2f 2f 20 53 65 74 20 75 70 20 63 6f 6c 75 6d 6e 0d 0a 70 7a 3d 28 69 2d 2e 35 29 2a 2e | ...//.Set.up.column..pz=(i-.5)*. |
87e0 | 38 36 36 3b 70 78 3d 28 70 2d 2e 35 29 2a 28 31 2d 61 62 73 28 69 2d 2e 35 29 29 3b 0d 0a 70 78 | 866;px=(p-.5)*(1-abs(i-.5));..px |
8800 | 3d 70 78 2b 63 70 78 3b 70 7a 3d 70 7a 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f | =px+cpx;pz=pz+cpz;....//.Transfo |
8820 | 72 6d 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a | rm.and.project..x1=px*cy-pz*sy;z |
8840 | 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a | 1=px*sy+pz*cy;..y2=py*cx-z1*sx;z |
8860 | 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b | 2=py*sx+z1*cx+zdist;..z2=z2*.75; |
8880 | 20 20 20 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 | .....z2=if(below(z2,.02),0,1/z2) |
88a0 | 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 | ;..x=x1*z2;y=y2*z2*af-.1;....//. |
88c0 | 52 65 63 61 6c 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 78 74 75 72 65 20 63 | Recalculate.for.linear.texture.c |
88e0 | 6f 6f 72 64 69 6e 61 74 65 73 0d 0a 70 78 3d 63 70 78 3b 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a | oordinates..px=cpx;..x1=px*cy-pz |
8900 | 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 | *sy;z1=px*sy+pz*cy;..y2=py*cx-z1 |
8920 | 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 | *sx;z2=py*sx+z1*cx+zdist;..//.Fa |
8940 | 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 31 2b 73 69 6e | ke.environment.mapping..a=x1+sin |
8960 | 28 79 32 2a 2e 37 2d 78 31 2a 2e 36 29 2a 32 2b 35 3b 62 3d 79 32 2a 2e 35 2d 78 31 2a 31 2e 31 | (y2*.7-x1*.6)*2+5;b=y2*.5-x1*1.1 |
8980 | 2b 2e 35 3b 63 3d 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 | +.5;c=cos(a);..red=(c+sin(b))*.3 |
89a0 | 30 2b 2e 37 3b 0d 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 | 0+.7;..green=(cos(a+.2)+sin(b-.1 |
89c0 | 29 2a 31 2e 32 29 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 | )*1.2)*.30+.5;..blue=(c+sin(b+.2 |
89e0 | 29 2a 31 2e 35 29 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d | )*1.5)*.30+.0;....//.State.vars. |
8a00 | 0a 70 3d 62 6e 6f 74 28 70 29 3b 0d 0a 00 2a 02 00 00 2f 2f 20 53 65 74 75 70 20 63 6f 6c 75 6d | .p=bnot(p);...*...//.Setup.colum |
8a20 | 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 70 78 3d 72 64 64 2a 63 6f 73 28 78 29 | n..x=pos*$pi*.333;cpx=rdd*cos(x) |
8a40 | 3b 63 70 7a 3d 72 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a | ;cpz=rdd*sin(x);....//.Camera..z |
8a60 | 64 69 73 74 3d 72 65 67 30 30 3b 72 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d | dist=reg00;ry=reg01;oy=reg02;rx= |
8a80 | 72 65 67 30 33 3b 73 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a 63 79 74 3d 72 65 67 30 37 3b 73 79 | reg03;steps=reg09;..cyt=reg07;sy |
8aa0 | 74 3d 72 65 67 30 38 3b 0d 0a 72 6f 66 66 3d 28 28 28 28 61 62 73 28 33 2a 72 79 2f 24 70 69 2b | t=reg08;..roff=((((abs(3*ry/$pi+ |
8ac0 | 2e 35 29 7c 30 29 25 36 29 2a 73 69 67 6e 28 72 79 29 2b 31 32 29 25 36 29 3b 0d 0a 72 79 3d 72 | .5)|0)%6)*sign(ry)+12)%6);..ry=r |
8ae0 | 79 2d 28 72 6f 66 66 2b 31 29 2a 24 70 69 2f 33 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 | y-(roff+1)*$pi/3;..cx=cos(rx);sx |
8b00 | 3d 73 69 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 | =sin(rx);..cy=cos(ry);sy=sin(ry) |
8b20 | 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 73 70 6f 6e 73 65 0d 0a 6e 3d 69 66 28 65 71 75 | ;....//.Sound.response..n=if(equ |
8b40 | 61 6c 28 72 6f 66 66 2c 30 29 2c 72 65 67 31 39 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 31 | al(roff,0),reg19,if(equal(roff,1 |
8b60 | 29 2c 72 65 67 32 31 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 32 29 2c 72 65 67 32 33 2c 69 | ),reg21,if(equal(roff,2),reg23,i |
8b80 | 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c 72 65 67 32 35 2c 69 66 28 65 71 75 61 6c 28 72 | f(equal(roff,3),reg25,if(equal(r |
8ba0 | 6f 66 66 2c 34 29 2c 72 65 67 32 37 2c 72 65 67 31 37 29 29 29 29 29 3b 0d 0a 6e 3d 28 28 6e 2a | off,4),reg27,reg17)))));..n=((n* |
8bc0 | 73 74 65 70 73 29 7c 30 29 3b 72 65 73 70 3d 72 65 67 33 30 3b 0d 0a 70 79 3d 6f 79 2d 6e 2a 72 | steps)|0);resp=reg30;..py=oy-n*r |
8be0 | 65 73 70 3b 0d 0a 6e 3d 35 30 2a 77 2f 33 32 30 3b 6e 3d 6e 2a 62 6e 6f 74 28 61 62 6f 76 65 28 | esp;..n=50*w/320;n=n*bnot(above( |
8c00 | 73 69 6e 28 72 79 2a 36 29 2c 30 29 29 3b 0d 0a 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 | sin(ry*6),0));......//.State.var |
8c20 | 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d 77 2f 68 3b 70 3d 30 3b 00 00 00 00 00 | s..cs=$pi*.3333;af=w/h;p=0;..... |
8c40 | 27 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 37 61 20 54 6f 70 0d 0a 6e 3d 30 3b 72 64 64 3d 31 2e | '...//.Column.7a.Top..n=0;rdd=1. |
8c60 | 37 33 3b 70 6f 73 3d 2d 31 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 87 | 73;pos=-1;.................$.... |
8c80 | 05 00 00 01 e3 02 00 00 2f 2f 20 53 65 74 20 75 70 20 63 6f 6c 75 6d 6e 0d 0a 71 3d 69 66 28 6f | ........//.Set.up.column..q=if(o |
8ca0 | 64 64 2c 33 2d 70 2c 70 29 3b 0d 0a 61 3d 63 73 2a 28 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d 0a 70 | dd,3-p,p);..a=cs*(q+.5+poff);..p |
8cc0 | 78 3d 63 6f 73 28 61 29 2a 2e 35 2b 63 70 78 3b 70 7a 3d 73 69 6e 28 61 29 2a 2e 35 2b 63 70 7a | x=cos(a)*.5+cpx;pz=sin(a)*.5+cpz |
8ce0 | 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f 72 6d 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a 78 | ;....//.Transform.and.project..x |
8d00 | 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 | 1=px*cy-pz*sy;z1=px*sy+pz*cy;..y |
8d20 | 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 | 2=py*cx-z1*sx;z2=py*sx+z1*cx+zdi |
8d40 | 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 2c | st;..z2=z2*.75;..z2=if(below(z2, |
8d60 | 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 | .02),0,1/z2);..x=x1*z2;y=y2*z2*a |
8d80 | 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 52 65 63 61 6c 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e 65 | f-.1;....//.Recalculate.for.line |
8da0 | 61 72 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 0d 0a 71 3d 69 66 28 6f 64 64 | ar.texture.coordinates..q=if(odd |
8dc0 | 2c 32 2e 35 2d 65 71 75 61 6c 28 70 2c 32 29 2c 6d 61 78 28 2e 35 2c 70 2d 2e 35 29 29 2d 31 3b | ,2.5-equal(p,2),max(.5,p-.5))-1; |
8de0 | 0d 0a 61 3d 63 73 2a 28 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 2e | ..a=cs*(q+.5+poff);..px=cos(a)*. |
8e00 | 35 3b 70 7a 3d 73 69 6e 28 61 29 2a 2e 35 3b 0d 0a 78 31 3d 70 78 2a 63 79 74 2d 70 7a 2a 73 79 | 5;pz=sin(a)*.5;..x1=px*cyt-pz*sy |
8e20 | 74 2d 72 64 64 2a 33 2e 3b 7a 31 3d 70 78 2a 73 79 74 2b 70 7a 2a 63 79 74 3b 0d 0a 79 32 3d 70 | t-rdd*3.;z1=px*syt+pz*cyt;..y2=p |
8e40 | 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b | y*cx-z1*sx;z2=py*sx+z1*cx+zdist; |
8e60 | 0d 0a 2f 2f 20 46 61 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 69 6e 67 0d 0a 61 | ..//.Fake.environment.mapping..a |
8e80 | 3d 78 31 2a 32 37 2b 73 69 6e 28 79 32 2d 78 31 2a 33 29 2a 32 2b 35 3b 62 3d 79 32 2a 2e 38 2d | =x1*27+sin(y2-x1*3)*2+5;b=y2*.8- |
8ea0 | 78 31 2a 32 2e 31 2b 2e 35 3b 63 3d 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d 28 63 2b 73 69 6e 28 | x1*2.1+.5;c=cos(a);..red=(c+sin( |
8ec0 | 62 29 29 2a 2e 33 30 2b 2e 37 3b 0d 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 2b 2e 32 29 2b 73 69 | b))*.30+.7;..green=(cos(a+.2)+si |
8ee0 | 6e 28 62 2d 2e 31 29 2a 31 2e 32 29 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 69 | n(b-.1)*1.2)*.30+.5;..blue=(c+si |
8f00 | 6e 28 62 2b 2e 32 29 2a 31 2e 35 29 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 | n(b+.2)*1.5)*.30+.0;....//.State |
8f20 | 20 76 61 72 73 0d 0a 70 3d 28 70 2b 31 29 25 33 3b 70 79 3d 70 79 2d 65 71 75 61 6c 28 70 2c 30 | .vars..p=(p+1)%3;py=py-equal(p,0 |
8f40 | 29 2a 72 65 73 70 3b 0d 0a 6f 64 64 3d 69 66 28 65 71 75 61 6c 28 70 2c 30 29 2c 62 6e 6f 74 28 | )*resp;..odd=if(equal(p,0),bnot( |
8f60 | 6f 64 64 29 2c 6f 64 64 29 3b 00 61 02 00 00 2f 2f 20 53 65 74 75 70 20 63 6f 6c 75 6d 6e 0d 0a | odd),odd);.a...//.Setup.column.. |
8f80 | 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 70 78 3d 72 64 64 2a 63 6f 73 28 78 29 3b 63 70 | x=pos*$pi*.333;cpx=rdd*cos(x);cp |
8fa0 | 7a 3d 72 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a 64 69 73 | z=rdd*sin(x);....//.Camera..zdis |
8fc0 | 74 3d 72 65 67 30 30 3b 72 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d 72 65 67 | t=reg00;ry=reg01;oy=reg02;rx=reg |
8fe0 | 30 33 3b 73 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a 63 79 74 3d 72 65 67 30 37 3b 73 79 74 3d 72 | 03;steps=reg09;..cyt=reg07;syt=r |
9000 | 65 67 30 38 3b 0d 0a 72 6f 66 66 3d 28 28 28 28 61 62 73 28 33 2a 72 79 2f 24 70 69 2b 2e 35 29 | eg08;..roff=((((abs(3*ry/$pi+.5) |
9020 | 7c 30 29 25 36 29 2a 73 69 67 6e 28 72 79 29 2b 31 32 29 25 36 29 3b 0d 0a 72 79 3d 72 79 2d 28 | |0)%6)*sign(ry)+12)%6);..ry=ry-( |
9040 | 72 6f 66 66 2b 31 29 2a 24 70 69 2f 33 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d 73 69 | roff+1)*$pi/3;..cx=cos(rx);sx=si |
9060 | 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b 0d 0a | n(rx);..cy=cos(ry);sy=sin(ry);.. |
9080 | 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 73 70 6f 6e 73 65 0d 0a 6e 3d 69 66 28 65 71 75 61 6c 28 | ..//.Sound.response..n=if(equal( |
90a0 | 72 6f 66 66 2c 30 29 2c 72 65 67 32 37 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 31 29 2c 72 | roff,0),reg27,if(equal(roff,1),r |
90c0 | 65 67 31 37 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 32 29 2c 72 65 67 31 39 2c 69 66 28 65 | eg17,if(equal(roff,2),reg19,if(e |
90e0 | 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c 72 65 67 32 31 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 | qual(roff,3),reg21,if(equal(roff |
9100 | 2c 34 29 2c 72 65 67 32 33 2c 72 65 67 32 35 29 29 29 29 29 3b 0d 0a 6e 3d 6e 2a 31 2e 32 35 3b | ,4),reg23,reg25)))));..n=n*1.25; |
9120 | 6e 3d 28 28 6e 2a 73 74 65 70 73 29 7c 30 29 2a 33 2b 33 3b 72 65 73 70 3d 72 65 67 33 30 2a 2e | n=((n*steps)|0)*3+3;resp=reg30*. |
9140 | 38 3b 0d 0a 6e 3d 6e 2a 28 61 62 6f 76 65 28 73 69 6e 28 72 79 2a 36 29 2c 30 29 29 3b 0d 0a 70 | 8;..n=n*(above(sin(ry*6),0));..p |
9160 | 79 3d 6f 79 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e | y=oy;....//.State.vars..cs=$pi*. |
9180 | 33 33 33 33 3b 61 66 3d 77 2f 68 3b 70 3d 30 3b 0d 0a 70 6f 66 66 3d 28 2d 33 2a 72 79 2f 24 70 | 3333;af=w/h;p=0;..poff=(-3*ry/$p |
91a0 | 69 29 3b 0d 0a 70 6f 66 66 3d 28 61 62 73 28 70 6f 66 66 29 25 36 29 2a 73 69 67 6e 28 70 6f 66 | i);..poff=(abs(poff)%6)*sign(pof |
91c0 | 66 29 2b 31 2e 35 3b 0d 0a 6f 64 64 3d 30 3b 00 00 00 00 00 22 00 00 00 2f 2f 20 43 6f 6c 75 6d | f)+1.5;..odd=0;....."...//.Colum |
91e0 | 6e 20 39 61 0d 0a 6e 3d 30 3b 72 64 64 3d 31 2e 37 33 3b 70 6f 73 3d 31 3b 00 02 00 00 00 01 00 | n.9a..n=0;rdd=1.73;pos=1;....... |
9200 | 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 b8 04 00 00 01 4b 02 00 00 2f 2f 20 53 65 74 20 75 70 | ..........$........K...//.Set.up |
9220 | 20 63 6f 6c 75 6d 6e 0d 0a 70 7a 3d 28 69 2d 2e 35 29 2a 2e 38 36 36 3b 70 78 3d 28 70 2d 2e 35 | .column..pz=(i-.5)*.866;px=(p-.5 |
9240 | 29 2a 28 31 2d 61 62 73 28 69 2d 2e 35 29 29 3b 0d 0a 70 78 3d 70 78 2b 63 70 78 3b 70 7a 3d 70 | )*(1-abs(i-.5));..px=px+cpx;pz=p |
9260 | 7a 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f 72 6d 20 61 6e 64 20 70 72 6f 6a 65 | z+cpz;....//.Transform.and.proje |
9280 | 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 | ct..x1=px*cy-pz*sy;z1=px*sy+pz*c |
92a0 | 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 | y;..y2=py*cx-z1*sx;z2=py*sx+z1*c |
92c0 | 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b 20 20 20 0d 0a 7a 32 3d 69 66 28 62 | x+zdist;..z2=z2*.75;.....z2=if(b |
92e0 | 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 | elow(z2,.02),0,1/z2);..x=x1*z2;y |
9300 | 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 52 65 63 61 6c 63 75 6c 61 74 65 20 | =y2*z2*af-.1;....//.Recalculate. |
9320 | 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 0d 0a | for.linear.texture.coordinates.. |
9340 | 70 78 3d 63 70 78 3b 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 | px=cpx;..x1=px*cy-pz*sy;z1=px*sy |
9360 | 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 | +pz*cy;..y2=py*cx-z1*sx;z2=py*sx |
9380 | 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 | +z1*cx+zdist;..//.Fake.environme |
93a0 | 6e 74 20 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 31 2b 73 69 6e 28 79 32 2a 2e 37 2d 78 31 2a 2e 36 | nt.mapping..a=x1+sin(y2*.7-x1*.6 |
93c0 | 29 2a 32 2b 35 3b 62 3d 79 32 2a 2e 35 2d 78 31 2a 31 2e 31 2b 2e 35 3b 63 3d 63 6f 73 28 61 29 | )*2+5;b=y2*.5-x1*1.1+.5;c=cos(a) |
93e0 | 3b 0d 0a 72 65 64 3d 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 30 2b 2e 37 3b 0d 0a 67 72 65 65 6e | ;..red=(c+sin(b))*.30+.7;..green |
9400 | 3d 28 63 6f 73 28 61 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 29 2a 31 2e 32 29 2a 2e 33 30 2b 2e | =(cos(a+.2)+sin(b-.1)*1.2)*.30+. |
9420 | 35 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 29 2a 31 2e 35 29 2a 2e 33 30 2b 2e | 5;..blue=(c+sin(b+.2)*1.5)*.30+. |
9440 | 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 70 3d 62 6e 6f 74 28 70 29 3b 0d | 0;....//.State.vars..p=bnot(p);. |
9460 | 0a 00 26 02 00 00 2f 2f 20 53 65 74 75 70 20 63 6f 6c 75 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 | ..&...//.Setup.column..x=pos*$pi |
9480 | 2a 2e 33 33 33 3b 63 70 78 3d 72 64 64 2a 63 6f 73 28 78 29 3b 63 70 7a 3d 72 64 64 2a 73 69 6e | *.333;cpx=rdd*cos(x);cpz=rdd*sin |
94a0 | 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a 64 69 73 74 3d 72 65 67 30 30 3b 72 | (x);....//.Camera..zdist=reg00;r |
94c0 | 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d 72 65 67 30 33 3b 73 74 65 70 73 3d | y=reg01;oy=reg02;rx=reg03;steps= |
94e0 | 72 65 67 30 39 3b 0d 0a 63 79 74 3d 72 65 67 30 37 3b 73 79 74 3d 72 65 67 30 38 3b 0d 0a 72 6f | reg09;..cyt=reg07;syt=reg08;..ro |
9500 | 66 66 3d 28 28 28 28 61 62 73 28 33 2a 72 79 2f 24 70 69 2b 2e 35 29 7c 30 29 25 36 29 2a 73 69 | ff=((((abs(3*ry/$pi+.5)|0)%6)*si |
9520 | 67 6e 28 72 79 29 2b 31 32 29 25 36 29 3b 0d 0a 72 79 3d 72 79 2d 28 72 6f 66 66 2b 31 29 2a 24 | gn(ry)+12)%6);..ry=ry-(roff+1)*$ |
9540 | 70 69 2f 33 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d 73 69 6e 28 72 78 29 3b 0d 0a 63 | pi/3;..cx=cos(rx);sx=sin(rx);..c |
9560 | 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e | y=cos(ry);sy=sin(ry);....//.Soun |
9580 | 64 20 72 65 73 70 6f 6e 73 65 0d 0a 6e 3d 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 30 29 2c 72 | d.response..n=if(equal(roff,0),r |
95a0 | 65 67 32 37 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 31 29 2c 72 65 67 31 37 2c 69 66 28 65 | eg27,if(equal(roff,1),reg17,if(e |
95c0 | 71 75 61 6c 28 72 6f 66 66 2c 32 29 2c 72 65 67 31 39 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 | qual(roff,2),reg19,if(equal(roff |
95e0 | 2c 33 29 2c 72 65 67 32 31 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 34 29 2c 72 65 67 32 33 | ,3),reg21,if(equal(roff,4),reg23 |
9600 | 2c 72 65 67 32 35 29 29 29 29 29 3b 0d 0a 6e 3d 28 28 6e 2a 73 74 65 70 73 29 7c 30 29 3b 72 65 | ,reg25)))));..n=((n*steps)|0);re |
9620 | 73 70 3d 72 65 67 33 30 3b 0d 0a 70 79 3d 6f 79 2d 6e 2a 72 65 73 70 3b 0d 0a 6e 3d 35 30 2a 77 | sp=reg30;..py=oy-n*resp;..n=50*w |
9640 | 2f 33 32 30 3b 6e 3d 6e 2a 28 61 62 6f 76 65 28 73 69 6e 28 72 79 2a 36 29 2c 30 29 29 3b 0d 0a | /320;n=n*(above(sin(ry*6),0));.. |
9660 | 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b | ....//.State.vars..cs=$pi*.3333; |
9680 | 61 66 3d 77 2f 68 3b 70 3d 30 3b 00 00 00 00 00 26 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 39 61 | af=w/h;p=0;.....&...//.Column.9a |
96a0 | 20 54 6f 70 0d 0a 6e 3d 30 3b 72 64 64 3d 31 2e 37 33 3b 70 6f 73 3d 31 3b 00 02 00 00 00 01 00 | .Top..n=0;rdd=1.73;pos=1;....... |
96c0 | 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 64 05 00 00 01 e1 02 00 00 2f 2f 20 53 65 74 20 75 70 | ..........$...d........//.Set.up |
96e0 | 20 63 6f 6c 75 6d 6e 0d 0a 71 3d 69 66 28 6f 64 64 2c 33 2d 70 2c 70 29 3b 0d 0a 61 3d 63 73 2a | .column..q=if(odd,3-p,p);..a=cs* |
9700 | 28 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 2e 35 2b 63 70 78 3b 70 | (q+.5+poff);..px=cos(a)*.5+cpx;p |
9720 | 7a 3d 73 69 6e 28 61 29 2a 2e 35 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f 72 6d | z=sin(a)*.5+cpz;....//.Transform |
9740 | 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d | .and.project..x1=px*cy-pz*sy;z1= |
9760 | 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d | px*sy+pz*cy;..y2=py*cx-z1*sx;z2= |
9780 | 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b 0d 0a | py*sx+z1*cx+zdist;..z2=z2*.75;.. |
97a0 | 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d | z2=if(below(z2,.02),0,1/z2);..x= |
97c0 | 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 52 65 63 61 6c | x1*z2;y=y2*z2*af-.1;....//.Recal |
97e0 | 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 69 | culate.for.linear.texture.coordi |
9800 | 6e 61 74 65 73 0d 0a 71 3d 69 66 28 6f 64 64 2c 32 2e 35 2d 65 71 75 61 6c 28 70 2c 32 29 2c 6d | nates..q=if(odd,2.5-equal(p,2),m |
9820 | 61 78 28 2e 35 2c 70 2d 2e 35 29 29 3b 0d 0a 61 3d 63 73 2a 28 71 2b 2e 35 2b 70 6f 66 66 29 3b | ax(.5,p-.5));..a=cs*(q+.5+poff); |
9840 | 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 2e 35 3b 70 7a 3d 73 69 6e 28 61 29 2a 2e 35 3b 0d 0a 78 31 | ..px=cos(a)*.5;pz=sin(a)*.5;..x1 |
9860 | 3d 70 78 2a 63 79 74 2d 70 7a 2a 73 79 74 2d 72 64 64 2a 33 2e 3b 7a 31 3d 70 78 2a 73 79 74 2b | =px*cyt-pz*syt-rdd*3.;z1=px*syt+ |
9880 | 70 7a 2a 63 79 74 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 | pz*cyt;..y2=py*cx-z1*sx;z2=py*sx |
98a0 | 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 | +z1*cx+zdist;..//.Fake.environme |
98c0 | 6e 74 20 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 31 2a 32 37 2b 73 69 6e 28 79 32 2d 78 31 2a 33 29 | nt.mapping..a=x1*27+sin(y2-x1*3) |
98e0 | 2a 32 2b 35 3b 62 3d 79 32 2a 2e 38 2d 78 31 2a 32 2e 31 2b 2e 35 3b 63 3d 63 6f 73 28 61 29 3b | *2+5;b=y2*.8-x1*2.1+.5;c=cos(a); |
9900 | 0d 0a 72 65 64 3d 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 30 2b 2e 37 3b 0d 0a 67 72 65 65 6e 3d | ..red=(c+sin(b))*.30+.7;..green= |
9920 | 28 63 6f 73 28 61 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 29 2a 31 2e 32 29 2a 2e 33 30 2b 2e 35 | (cos(a+.2)+sin(b-.1)*1.2)*.30+.5 |
9940 | 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 29 2a 31 2e 35 29 2a 2e 33 30 2b 2e 30 | ;..blue=(c+sin(b+.2)*1.5)*.30+.0 |
9960 | 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 70 3d 28 70 2b 31 29 25 33 3b 70 79 | ;....//.State.vars..p=(p+1)%3;py |
9980 | 3d 70 79 2d 65 71 75 61 6c 28 70 2c 30 29 2a 72 65 73 70 3b 0d 0a 6f 64 64 3d 69 66 28 65 71 75 | =py-equal(p,0)*resp;..odd=if(equ |
99a0 | 61 6c 28 70 2c 30 29 2c 62 6e 6f 74 28 6f 64 64 29 2c 6f 64 64 29 3b 00 43 02 00 00 2f 2f 20 53 | al(p,0),bnot(odd),odd);.C...//.S |
99c0 | 65 74 75 70 20 63 6f 6c 75 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 70 78 3d | etup.column..x=pos*$pi*.333;cpx= |
99e0 | 72 64 64 2a 63 6f 73 28 78 29 3b 63 70 7a 3d 72 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f | rdd*cos(x);cpz=rdd*sin(x);....// |
9a00 | 20 43 61 6d 65 72 61 0d 0a 7a 64 69 73 74 3d 72 65 67 30 30 3b 72 79 3d 72 65 67 30 31 3b 6f 79 | .Camera..zdist=reg00;ry=reg01;oy |
9a20 | 3d 72 65 67 30 32 3b 72 78 3d 72 65 67 30 33 3b 73 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a 63 79 | =reg02;rx=reg03;steps=reg09;..cy |
9a40 | 74 3d 72 65 67 30 37 3b 73 79 74 3d 72 65 67 30 38 3b 0d 0a 72 6f 66 66 3d 28 28 28 28 61 62 73 | t=reg07;syt=reg08;..roff=((((abs |
9a60 | 28 33 2a 72 79 2f 24 70 69 29 7c 30 29 25 36 29 2a 73 69 67 6e 28 72 79 29 2b 31 32 29 25 36 29 | (3*ry/$pi)|0)%6)*sign(ry)+12)%6) |
9a80 | 3b 0d 0a 72 79 3d 72 79 2d 28 72 6f 66 66 2b 32 29 2a 24 70 69 2f 33 3b 0d 0a 63 78 3d 63 6f 73 | ;..ry=ry-(roff+2)*$pi/3;..cx=cos |
9aa0 | 28 72 78 29 3b 73 78 3d 73 69 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d | (rx);sx=sin(rx);..cy=cos(ry);sy= |
9ac0 | 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 73 70 6f 6e 73 65 0d 0a 6e | sin(ry);....//.Sound.response..n |
9ae0 | 3d 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 30 29 2c 72 65 67 31 31 2c 69 66 28 65 71 75 61 6c | =if(equal(roff,0),reg11,if(equal |
9b00 | 28 72 6f 66 66 2c 31 29 2c 72 65 67 31 32 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 32 29 2c | (roff,1),reg12,if(equal(roff,2), |
9b20 | 72 65 67 31 33 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c 72 65 67 31 34 2c 69 66 28 | reg13,if(equal(roff,3),reg14,if( |
9b40 | 65 71 75 61 6c 28 72 6f 66 66 2c 34 29 2c 72 65 67 31 35 2c 72 65 67 31 36 29 29 29 29 29 3b 0d | equal(roff,4),reg15,reg16)))));. |
9b60 | 0a 6e 3d 6e 2a 31 2e 32 35 3b 6e 3d 28 28 6e 2a 73 74 65 70 73 29 7c 30 29 2a 33 2b 33 3b 72 65 | .n=n*1.25;n=((n*steps)|0)*3+3;re |
9b80 | 73 70 3d 72 65 67 33 30 2a 2e 38 3b 0d 0a 70 79 3d 6f 79 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 | sp=reg30*.8;..py=oy;....//.State |
9ba0 | 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d 77 2f 68 3b 70 3d 30 3b 0d | .vars..cs=$pi*.3333;af=w/h;p=0;. |
9bc0 | 0a 70 6f 66 66 3d 28 2d 33 2a 72 79 2f 24 70 69 29 3b 0d 0a 70 6f 66 66 3d 28 61 62 73 28 70 6f | .poff=(-3*ry/$pi);..poff=(abs(po |
9be0 | 66 66 29 25 36 29 2a 73 69 67 6e 28 70 6f 66 66 29 2b 32 2e 35 3b 0d 0a 6f 64 64 3d 30 3b 00 00 | ff)%6)*sign(poff)+2.5;..odd=0;.. |
9c00 | 00 00 00 1f 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 31 0d 0a 6e 3d 30 3b 72 64 64 3d 31 3b 70 6f | .......//.Column.1..n=0;rdd=1;po |
9c20 | 73 3d 2e 35 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 97 04 00 00 01 4b | s=.5;.................$........K |
9c40 | 02 00 00 2f 2f 20 53 65 74 20 75 70 20 63 6f 6c 75 6d 6e 0d 0a 70 7a 3d 28 69 2d 2e 35 29 2a 2e | ...//.Set.up.column..pz=(i-.5)*. |
9c60 | 38 36 36 3b 70 78 3d 28 70 2d 2e 35 29 2a 28 31 2d 61 62 73 28 69 2d 2e 35 29 29 3b 0d 0a 70 78 | 866;px=(p-.5)*(1-abs(i-.5));..px |
9c80 | 3d 70 78 2b 63 70 78 3b 70 7a 3d 70 7a 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e 73 66 6f | =px+cpx;pz=pz+cpz;....//.Transfo |
9ca0 | 72 6d 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a | rm.and.project..x1=px*cy-pz*sy;z |
9cc0 | 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a | 1=px*sy+pz*cy;..y2=py*cx-z1*sx;z |
9ce0 | 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d 7a 32 2a 2e 37 35 3b | 2=py*sx+z1*cx+zdist;..z2=z2*.75; |
9d00 | 20 20 20 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 2c 31 2f 7a 32 29 | .....z2=if(below(z2,.02),0,1/z2) |
9d20 | 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d 0a 0d 0a 2f 2f 20 | ;..x=x1*z2;y=y2*z2*af-.1;....//. |
9d40 | 52 65 63 61 6c 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 78 74 75 72 65 20 63 | Recalculate.for.linear.texture.c |
9d60 | 6f 6f 72 64 69 6e 61 74 65 73 0d 0a 70 78 3d 63 70 78 3b 0d 0a 78 31 3d 70 78 2a 63 79 2d 70 7a | oordinates..px=cpx;..x1=px*cy-pz |
9d80 | 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 | *sy;z1=px*sy+pz*cy;..y2=py*cx-z1 |
9da0 | 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 | *sx;z2=py*sx+z1*cx+zdist;..//.Fa |
9dc0 | 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 31 2b 73 69 6e | ke.environment.mapping..a=x1+sin |
9de0 | 28 79 32 2a 2e 37 2d 78 31 2a 2e 36 29 2a 32 2b 35 3b 62 3d 79 32 2a 2e 35 2d 78 31 2a 31 2e 31 | (y2*.7-x1*.6)*2+5;b=y2*.5-x1*1.1 |
9e00 | 2b 2e 35 3b 63 3d 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 | +.5;c=cos(a);..red=(c+sin(b))*.3 |
9e20 | 30 2b 2e 37 3b 0d 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 | 0+.7;..green=(cos(a+.2)+sin(b-.1 |
9e40 | 29 2a 31 2e 32 29 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 | )*1.2)*.30+.5;..blue=(c+sin(b+.2 |
9e60 | 29 2a 31 2e 35 29 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d | )*1.5)*.30+.0;....//.State.vars. |
9e80 | 0a 70 3d 62 6e 6f 74 28 70 29 3b 0d 0a 00 08 02 00 00 2f 2f 20 53 65 74 75 70 20 63 6f 6c 75 6d | .p=bnot(p);.......//.Setup.colum |
9ea0 | 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 70 78 3d 72 64 64 2a 63 6f 73 28 78 29 | n..x=pos*$pi*.333;cpx=rdd*cos(x) |
9ec0 | 3b 63 70 7a 3d 72 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a | ;cpz=rdd*sin(x);....//.Camera..z |
9ee0 | 64 69 73 74 3d 72 65 67 30 30 3b 72 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d | dist=reg00;ry=reg01;oy=reg02;rx= |
9f00 | 72 65 67 30 33 3b 73 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a 63 79 74 3d 72 65 67 30 37 3b 73 79 | reg03;steps=reg09;..cyt=reg07;sy |
9f20 | 74 3d 72 65 67 30 38 3b 0d 0a 72 6f 66 66 3d 28 28 28 28 61 62 73 28 33 2a 72 79 2f 24 70 69 29 | t=reg08;..roff=((((abs(3*ry/$pi) |
9f40 | 7c 30 29 25 36 29 2a 73 69 67 6e 28 72 79 29 2b 31 32 29 25 36 29 3b 0d 0a 72 79 3d 72 79 2d 28 | |0)%6)*sign(ry)+12)%6);..ry=ry-( |
9f60 | 72 6f 66 66 2b 32 29 2a 24 70 69 2f 33 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d 73 69 | roff+2)*$pi/3;..cx=cos(rx);sx=si |
9f80 | 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b 0d 0a | n(rx);..cy=cos(ry);sy=sin(ry);.. |
9fa0 | 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 73 70 6f 6e 73 65 0d 0a 6e 3d 69 66 28 65 71 75 61 6c 28 | ..//.Sound.response..n=if(equal( |
9fc0 | 72 6f 66 66 2c 30 29 2c 72 65 67 31 31 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 31 29 2c 72 | roff,0),reg11,if(equal(roff,1),r |
9fe0 | 65 67 31 32 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 32 29 2c 72 65 67 31 33 2c 69 66 28 65 | eg12,if(equal(roff,2),reg13,if(e |
a000 | 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c 72 65 67 31 34 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 | qual(roff,3),reg14,if(equal(roff |
a020 | 2c 34 29 2c 72 65 67 31 35 2c 72 65 67 31 36 29 29 29 29 29 3b 0d 0a 6e 3d 28 28 6e 2a 73 74 65 | ,4),reg15,reg16)))));..n=((n*ste |
a040 | 70 73 29 7c 30 29 3b 72 65 73 70 3d 72 65 67 33 30 3b 0d 0a 70 79 3d 6f 79 2d 6e 2a 72 65 73 70 | ps)|0);resp=reg30;..py=oy-n*resp |
a060 | 3b 0d 0a 6e 3d 35 30 2a 77 2f 33 32 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d | ;..n=50*w/320;....//.State.vars. |
a080 | 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d 77 2f 68 3b 70 3d 30 3b 00 00 00 00 00 23 00 | .cs=$pi*.3333;af=w/h;p=0;.....#. |
a0a0 | 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 31 20 54 6f 70 0d 0a 6e 3d 30 3b 72 64 64 3d 31 3b 70 6f 73 | ..//.Column.1.Top..n=0;rdd=1;pos |
a0c0 | 3d 2e 35 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 80 05 00 00 01 e1 02 | =.5;.................$.......... |
a0e0 | 00 00 2f 2f 20 53 65 74 20 75 70 20 63 6f 6c 75 6d 6e 0d 0a 71 3d 69 66 28 6f 64 64 2c 33 2d 70 | ..//.Set.up.column..q=if(odd,3-p |
a100 | 2c 70 29 3b 0d 0a 61 3d 63 73 2a 28 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 28 | ,p);..a=cs*(q+.5+poff);..px=cos( |
a120 | 61 29 2a 2e 35 2b 63 70 78 3b 70 7a 3d 73 69 6e 28 61 29 2a 2e 35 2b 63 70 7a 3b 0d 0a 0d 0a 2f | a)*.5+cpx;pz=sin(a)*.5+cpz;..../ |
a140 | 2f 20 54 72 61 6e 73 66 6f 72 6d 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 | /.Transform.and.project..x1=px*c |
a160 | 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 | y-pz*sy;z1=px*sy+pz*cy;..y2=py*c |
a180 | 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a | x-z1*sx;z2=py*sx+z1*cx+zdist;..z |
a1a0 | 32 3d 7a 32 2a 2e 37 35 3b 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c 30 | 2=z2*.75;..z2=if(below(z2,.02),0 |
a1c0 | 2c 31 2f 7a 32 29 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b 0d | ,1/z2);..x=x1*z2;y=y2*z2*af-.1;. |
a1e0 | 0a 0d 0a 2f 2f 20 52 65 63 61 6c 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 78 | ...//.Recalculate.for.linear.tex |
a200 | 74 75 72 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 0d 0a 71 3d 69 66 28 6f 64 64 2c 32 2e 35 2d 65 | ture.coordinates..q=if(odd,2.5-e |
a220 | 71 75 61 6c 28 70 2c 32 29 2c 6d 61 78 28 2e 35 2c 70 2d 2e 35 29 29 3b 0d 0a 61 3d 63 73 2a 28 | qual(p,2),max(.5,p-.5));..a=cs*( |
a240 | 71 2b 2e 35 2b 70 6f 66 66 29 3b 0d 0a 70 78 3d 63 6f 73 28 61 29 2a 2e 35 3b 70 7a 3d 73 69 6e | q+.5+poff);..px=cos(a)*.5;pz=sin |
a260 | 28 61 29 2a 2e 35 3b 0d 0a 78 31 3d 70 78 2a 63 79 74 2d 70 7a 2a 73 79 74 2d 72 64 64 2a 33 2e | (a)*.5;..x1=px*cyt-pz*syt-rdd*3. |
a280 | 3b 7a 31 3d 70 78 2a 73 79 74 2b 70 7a 2a 63 79 74 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d 7a 31 2a | ;z1=px*syt+pz*cyt;..y2=py*cx-z1* |
a2a0 | 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 2f 2f 20 46 61 6b | sx;z2=py*sx+z1*cx+zdist;..//.Fak |
a2c0 | 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 69 6e 67 0d 0a 61 3d 78 31 2a 32 37 2b 73 | e.environment.mapping..a=x1*27+s |
a2e0 | 69 6e 28 79 32 2d 78 31 2a 33 29 2a 32 2b 35 3b 62 3d 79 32 2a 2e 38 2d 78 31 2a 32 2e 31 2b 2e | in(y2-x1*3)*2+5;b=y2*.8-x1*2.1+. |
a300 | 35 3b 63 3d 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d 28 63 2b 73 69 6e 28 62 29 29 2a 2e 33 30 2b | 5;c=cos(a);..red=(c+sin(b))*.30+ |
a320 | 2e 37 3b 0d 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 2b 2e 32 29 2b 73 69 6e 28 62 2d 2e 31 29 2a | .7;..green=(cos(a+.2)+sin(b-.1)* |
a340 | 31 2e 32 29 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 69 6e 28 62 2b 2e 32 29 2a | 1.2)*.30+.5;..blue=(c+sin(b+.2)* |
a360 | 31 2e 35 29 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 65 20 76 61 72 73 0d 0a 70 | 1.5)*.30+.0;....//.State.vars..p |
a380 | 3d 28 70 2b 31 29 25 33 3b 70 79 3d 70 79 2d 65 71 75 61 6c 28 70 2c 30 29 2a 72 65 73 70 3b 0d | =(p+1)%3;py=py-equal(p,0)*resp;. |
a3a0 | 0a 6f 64 64 3d 69 66 28 65 71 75 61 6c 28 70 2c 30 29 2c 62 6e 6f 74 28 6f 64 64 29 2c 6f 64 64 | .odd=if(equal(p,0),bnot(odd),odd |
a3c0 | 29 3b 00 5d 02 00 00 2f 2f 20 53 65 74 75 70 20 63 6f 6c 75 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 70 | );.]...//.Setup.column..x=pos*$p |
a3e0 | 69 2a 2e 33 33 33 3b 63 70 78 3d 72 64 64 2a 63 6f 73 28 78 29 3b 63 70 7a 3d 72 64 64 2a 73 69 | i*.333;cpx=rdd*cos(x);cpz=rdd*si |
a400 | 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 6d 65 72 61 0d 0a 7a 64 69 73 74 3d 72 65 67 30 30 3b | n(x);....//.Camera..zdist=reg00; |
a420 | 72 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 67 30 32 3b 72 78 3d 72 65 67 30 33 3b 73 74 65 70 73 | ry=reg01;oy=reg02;rx=reg03;steps |
a440 | 3d 72 65 67 30 39 3b 0d 0a 63 79 74 3d 72 65 67 30 37 3b 73 79 74 3d 72 65 67 30 38 3b 0d 0a 72 | =reg09;..cyt=reg07;syt=reg08;..r |
a460 | 6f 66 66 3d 28 28 28 28 61 62 73 28 33 2a 72 79 2f 24 70 69 2b 2e 35 29 7c 30 29 25 36 29 2a 73 | off=((((abs(3*ry/$pi+.5)|0)%6)*s |
a480 | 69 67 6e 28 72 79 29 2b 31 32 29 25 36 29 3b 0d 0a 72 79 3d 72 79 2d 28 72 6f 66 66 2b 31 29 2a | ign(ry)+12)%6);..ry=ry-(roff+1)* |
a4a0 | 24 70 69 2f 33 3b 0d 0a 63 78 3d 63 6f 73 28 72 78 29 3b 73 78 3d 73 69 6e 28 72 78 29 3b 0d 0a | $pi/3;..cx=cos(rx);sx=sin(rx);.. |
a4c0 | 63 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 | cy=cos(ry);sy=sin(ry);....//.Sou |
a4e0 | 6e 64 20 72 65 73 70 6f 6e 73 65 0d 0a 73 74 65 70 73 3d 73 74 65 70 73 2a 31 2e 33 33 3b 0d 0a | nd.response..steps=steps*1.33;.. |
a500 | 6e 3d 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 30 29 2c 72 65 67 31 37 2c 69 66 28 65 71 75 61 | n=if(equal(roff,0),reg17,if(equa |
a520 | 6c 28 72 6f 66 66 2c 31 29 2c 72 65 67 31 39 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 32 29 | l(roff,1),reg19,if(equal(roff,2) |
a540 | 2c 72 65 67 32 31 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c 72 65 67 32 33 2c 69 66 | ,reg21,if(equal(roff,3),reg23,if |
a560 | 28 65 71 75 61 6c 28 72 6f 66 66 2c 34 29 2c 72 65 67 32 35 2c 72 65 67 32 37 29 29 29 29 29 3b | (equal(roff,4),reg25,reg27))))); |
a580 | 0d 0a 6e 3d 28 28 6e 2a 73 74 65 70 73 29 7c 30 29 2a 33 2b 33 3b 72 65 73 70 3d 72 65 67 33 30 | ..n=((n*steps)|0)*3+3;resp=reg30 |
a5a0 | 3b 0d 0a 72 65 73 70 3d 72 65 73 70 2a 2e 37 35 3b 0d 0a 70 79 3d 6f 79 3b 0d 0a 0d 0a 2f 2f 20 | ;..resp=resp*.75;..py=oy;....//. |
a5c0 | 53 74 61 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d 77 2f 68 3b | State.vars..cs=$pi*.3333;af=w/h; |
a5e0 | 70 3d 30 3b 0d 0a 70 6f 66 66 3d 28 2d 33 2a 72 79 2f 24 70 69 29 3b 0d 0a 70 6f 66 66 3d 28 61 | p=0;..poff=(-3*ry/$pi);..poff=(a |
a600 | 62 73 28 70 6f 66 66 29 25 36 29 2a 73 69 67 6e 28 70 6f 66 66 29 2b 32 2e 35 3b 0d 0a 6f 64 64 | bs(poff)%6)*sign(poff)+2.5;..odd |
a620 | 3d 30 3b 00 00 00 00 00 21 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 38 0d 0a 6e 3d 30 3b 72 64 64 | =0;.....!...//.Column.8..n=0;rdd |
a640 | 3d 31 2e 37 33 3b 70 6f 73 3d 30 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 | =1.73;pos=0;.................$.. |
a660 | 00 9c 04 00 00 01 4b 02 00 00 2f 2f 20 53 65 74 20 75 70 20 63 6f 6c 75 6d 6e 0d 0a 70 7a 3d 28 | ......K...//.Set.up.column..pz=( |
a680 | 69 2d 2e 35 29 2a 2e 38 36 36 3b 70 78 3d 28 70 2d 2e 35 29 2a 28 31 2d 61 62 73 28 69 2d 2e 35 | i-.5)*.866;px=(p-.5)*(1-abs(i-.5 |
a6a0 | 29 29 3b 0d 0a 70 78 3d 70 78 2b 63 70 78 3b 70 7a 3d 70 7a 2b 63 70 7a 3b 0d 0a 0d 0a 2f 2f 20 | ));..px=px+cpx;pz=pz+cpz;....//. |
a6c0 | 54 72 61 6e 73 66 6f 72 6d 20 61 6e 64 20 70 72 6f 6a 65 63 74 0d 0a 78 31 3d 70 78 2a 63 79 2d | Transform.and.project..x1=px*cy- |
a6e0 | 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 79 2a 63 78 2d | pz*sy;z1=px*sy+pz*cy;..y2=py*cx- |
a700 | 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b 0d 0a 7a 32 3d | z1*sx;z2=py*sx+z1*cx+zdist;..z2= |
a720 | 7a 32 2a 2e 37 35 3b 20 20 20 0d 0a 7a 32 3d 69 66 28 62 65 6c 6f 77 28 7a 32 2c 2e 30 32 29 2c | z2*.75;.....z2=if(below(z2,.02), |
a740 | 30 2c 31 2f 7a 32 29 3b 0d 0a 78 3d 78 31 2a 7a 32 3b 79 3d 79 32 2a 7a 32 2a 61 66 2d 2e 31 3b | 0,1/z2);..x=x1*z2;y=y2*z2*af-.1; |
a760 | 0d 0a 0d 0a 2f 2f 20 52 65 63 61 6c 63 75 6c 61 74 65 20 66 6f 72 20 6c 69 6e 65 61 72 20 74 65 | ....//.Recalculate.for.linear.te |
a780 | 78 74 75 72 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 0d 0a 70 78 3d 63 70 78 3b 0d 0a 78 31 3d 70 | xture.coordinates..px=cpx;..x1=p |
a7a0 | 78 2a 63 79 2d 70 7a 2a 73 79 3b 7a 31 3d 70 78 2a 73 79 2b 70 7a 2a 63 79 3b 0d 0a 79 32 3d 70 | x*cy-pz*sy;z1=px*sy+pz*cy;..y2=p |
a7c0 | 79 2a 63 78 2d 7a 31 2a 73 78 3b 7a 32 3d 70 79 2a 73 78 2b 7a 31 2a 63 78 2b 7a 64 69 73 74 3b | y*cx-z1*sx;z2=py*sx+z1*cx+zdist; |
a7e0 | 0d 0a 2f 2f 20 46 61 6b 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 6d 61 70 70 69 6e 67 0d 0a 61 | ..//.Fake.environment.mapping..a |
a800 | 3d 78 31 2b 73 69 6e 28 79 32 2a 2e 37 2d 78 31 2a 2e 36 29 2a 32 2b 35 3b 62 3d 79 32 2a 2e 35 | =x1+sin(y2*.7-x1*.6)*2+5;b=y2*.5 |
a820 | 2d 78 31 2a 31 2e 31 2b 2e 35 3b 63 3d 63 6f 73 28 61 29 3b 0d 0a 72 65 64 3d 28 63 2b 73 69 6e | -x1*1.1+.5;c=cos(a);..red=(c+sin |
a840 | 28 62 29 29 2a 2e 33 30 2b 2e 37 3b 0d 0a 67 72 65 65 6e 3d 28 63 6f 73 28 61 2b 2e 32 29 2b 73 | (b))*.30+.7;..green=(cos(a+.2)+s |
a860 | 69 6e 28 62 2d 2e 31 29 2a 31 2e 32 29 2a 2e 33 30 2b 2e 35 3b 0d 0a 62 6c 75 65 3d 28 63 2b 73 | in(b-.1)*1.2)*.30+.5;..blue=(c+s |
a880 | 69 6e 28 62 2b 2e 32 29 2a 31 2e 35 29 2a 2e 33 30 2b 2e 30 3b 0d 0a 0d 0a 2f 2f 20 53 74 61 74 | in(b+.2)*1.5)*.30+.0;....//.Stat |
a8a0 | 65 20 76 61 72 73 0d 0a 70 3d 62 6e 6f 74 28 70 29 3b 0d 0a 00 0b 02 00 00 2f 2f 20 53 65 74 75 | e.vars..p=bnot(p);.......//.Setu |
a8c0 | 70 20 63 6f 6c 75 6d 6e 0d 0a 78 3d 70 6f 73 2a 24 70 69 2a 2e 33 33 33 3b 63 70 78 3d 72 64 64 | p.column..x=pos*$pi*.333;cpx=rdd |
a8e0 | 2a 63 6f 73 28 78 29 3b 63 70 7a 3d 72 64 64 2a 73 69 6e 28 78 29 3b 0d 0a 0d 0a 2f 2f 20 43 61 | *cos(x);cpz=rdd*sin(x);....//.Ca |
a900 | 6d 65 72 61 0d 0a 7a 64 69 73 74 3d 72 65 67 30 30 3b 72 79 3d 72 65 67 30 31 3b 6f 79 3d 72 65 | mera..zdist=reg00;ry=reg01;oy=re |
a920 | 67 30 32 3b 72 78 3d 72 65 67 30 33 3b 73 74 65 70 73 3d 72 65 67 30 39 3b 0d 0a 63 79 74 3d 72 | g02;rx=reg03;steps=reg09;..cyt=r |
a940 | 65 67 30 37 3b 73 79 74 3d 72 65 67 30 38 3b 0d 0a 72 6f 66 66 3d 28 28 28 28 61 62 73 28 33 2a | eg07;syt=reg08;..roff=((((abs(3* |
a960 | 72 79 2f 24 70 69 2b 2e 35 29 7c 30 29 25 36 29 2a 73 69 67 6e 28 72 79 29 2b 31 32 29 25 36 29 | ry/$pi+.5)|0)%6)*sign(ry)+12)%6) |
a980 | 3b 0d 0a 72 79 3d 72 79 2d 28 72 6f 66 66 2b 31 29 2a 24 70 69 2f 33 3b 0d 0a 63 78 3d 63 6f 73 | ;..ry=ry-(roff+1)*$pi/3;..cx=cos |
a9a0 | 28 72 78 29 3b 73 78 3d 73 69 6e 28 72 78 29 3b 0d 0a 63 79 3d 63 6f 73 28 72 79 29 3b 73 79 3d | (rx);sx=sin(rx);..cy=cos(ry);sy= |
a9c0 | 73 69 6e 28 72 79 29 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 6e 64 20 72 65 73 70 6f 6e 73 65 0d 0a 6e | sin(ry);....//.Sound.response..n |
a9e0 | 3d 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 30 29 2c 72 65 67 31 37 2c 69 66 28 65 71 75 61 6c | =if(equal(roff,0),reg17,if(equal |
aa00 | 28 72 6f 66 66 2c 31 29 2c 72 65 67 31 39 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 32 29 2c | (roff,1),reg19,if(equal(roff,2), |
aa20 | 72 65 67 32 31 2c 69 66 28 65 71 75 61 6c 28 72 6f 66 66 2c 33 29 2c 72 65 67 32 33 2c 69 66 28 | reg21,if(equal(roff,3),reg23,if( |
aa40 | 65 71 75 61 6c 28 72 6f 66 66 2c 34 29 2c 72 65 67 32 35 2c 72 65 67 32 37 29 29 29 29 29 3b 0d | equal(roff,4),reg25,reg27)))));. |
aa60 | 0a 6e 3d 28 28 6e 2a 73 74 65 70 73 29 7c 30 29 3b 72 65 73 70 3d 72 65 67 33 30 3b 0d 0a 70 79 | .n=((n*steps)|0);resp=reg30;..py |
aa80 | 3d 6f 79 2d 6e 2a 72 65 73 70 3b 0d 0a 6e 3d 35 30 2a 77 2f 33 32 30 3b 0d 0a 0d 0a 2f 2f 20 53 | =oy-n*resp;..n=50*w/320;....//.S |
aaa0 | 74 61 74 65 20 76 61 72 73 0d 0a 63 73 3d 24 70 69 2a 2e 33 33 33 33 3b 61 66 3d 77 2f 68 3b 70 | tate.vars..cs=$pi*.3333;af=w/h;p |
aac0 | 3d 30 3b 00 00 00 00 00 25 00 00 00 2f 2f 20 43 6f 6c 75 6d 6e 20 38 20 54 6f 70 0d 0a 6e 3d 30 | =0;.....%...//.Column.8.Top..n=0 |
aae0 | 3b 72 64 64 3d 31 2e 37 33 3b 70 6f 73 3d 30 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 | ;rdd=1.73;pos=0;................ |
ab00 | 00 fe ff ff ff c0 00 00 00 82 02 01 01 24 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 | .............$.................. |
ab20 | 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00 40 00 00 41 56 53 20 32 2e 38 2b 20 45 66 66 65 63 | ...............@..AVS.2.8+.Effec |
ab40 | 74 20 4c 69 73 74 20 43 6f 6e 66 69 67 00 00 00 00 00 3f 00 00 00 01 00 00 00 05 00 00 00 74 3d | t.List.Config.....?...........t= |
ab60 | 30 3b 00 2e 00 00 00 74 3d 69 66 28 62 2c 30 2c 28 74 2b 31 29 25 32 30 29 3b 0d 0a 65 6e 61 62 | 0;.....t=if(b,0,(t+1)%20);..enab |
ab80 | 6c 65 64 3d 62 2b 65 71 75 61 6c 28 74 2c 31 39 29 3b 0d 0a 00 19 00 00 00 14 00 00 00 01 00 00 | led=b+equal(t,19);.............. |
aba0 | 00 02 59 14 00 00 00 00 00 00 00 00 00 01 00 00 00 12 00 00 00 10 00 00 00 00 00 00 00 07 00 00 | ..Y............................. |
abc0 | 00 01 00 00 00 80 00 00 00 fe ff ff ff 3d 06 00 00 80 00 01 05 24 80 00 00 00 80 00 00 00 00 00 | .............=.......$.......... |
abe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 40 00 00 41 56 53 20 32 2e | .......................@..AVS.2. |
ac00 | 38 2b 20 45 66 66 65 63 74 20 4c 69 73 74 20 43 6f 6e 66 69 67 00 00 00 00 00 0c 00 00 00 00 00 | 8+.Effect.List.Config........... |
ac20 | 00 00 00 00 00 00 00 00 00 00 88 71 15 08 43 6f 6c 6f 72 20 4d 61 70 00 00 00 00 00 00 00 00 00 | ...........q..Color.Map......... |
ac40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0 02 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
ac60 | 00 08 01 00 00 00 02 00 00 00 a0 5f 07 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ..........._.................... |
ac80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
aca0 | 00 00 02 00 00 00 78 5f 07 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ......x_........................ |
acc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 | ................................ |
ace0 | 00 00 50 5f 07 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ..P_............................ |
ad00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 40 ea | ..............................@. |
ad20 | 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
ad40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 18 ea 04 01 00 00 | ................................ |
ad60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
ad80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 90 fc 03 01 00 00 00 00 00 00 | ................................ |
ada0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
adc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 30 38 07 01 00 00 00 00 00 00 00 00 00 00 | ..................08............ |
ade0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
ae00 | 00 00 00 00 00 00 00 00 00 00 02 00 00 00 b8 ea 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
ae20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
ae40 | 00 00 4f 00 00 00 00 00 00 00 00 00 00 00 f4 00 00 00 ff ff ff 00 01 00 00 00 00 00 00 00 00 00 | ..O............................. |
ae60 | 00 00 00 00 00 00 ff 00 00 00 ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 | ................................ |
ae80 | 00 00 ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 ff ff ff 00 01 00 | ................................ |
aea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 ff ff ff 00 01 00 00 00 00 00 00 00 00 00 | ................................ |
aec0 | 00 00 00 00 00 00 ff 00 00 00 ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 | ................................ |
aee0 | 00 00 ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 ff ff ff 00 01 00 | ................................ |
af00 | 00 00 6c bb bd 07 48 6f 6c 64 65 6e 30 33 3a 20 43 6f 6e 76 6f 6c 75 74 69 6f 6e 20 46 69 6c 74 | ..l...Holden03:.Convolution.Filt |
af20 | 65 72 00 00 00 00 dc 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 | er.............................. |
af40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
af60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
af80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
afa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
afc0 | 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
afe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 | ................................ |
b000 | 00 00 04 00 00 00 6c bb bd 07 48 6f 6c 64 65 6e 30 33 3a 20 43 6f 6e 76 6f 6c 75 74 69 6f 6e 20 | ......l...Holden03:.Convolution. |
b020 | 46 69 6c 74 65 72 00 00 00 00 dc 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 | Filter.......................... |
b040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 | ................................ |
b060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b0a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b0c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b0e0 | 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 | ................................ |
b100 | 00 00 00 00 00 00 04 00 00 00 6c bb bd 07 48 6f 6c 64 65 6e 30 33 3a 20 43 6f 6e 76 6f 6c 75 74 | ..........l...Holden03:.Convolut |
b120 | 69 6f 6e 20 46 69 6c 74 65 72 00 00 00 00 dc 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 | ion.Filter...................... |
b140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b160 | 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 | ................................ |
b1a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b1c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b1e0 | 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 | ................................ |
b200 | 00 00 00 00 00 00 00 00 00 00 10 00 00 00 | .............. |