From df97534a909d83b3a6004c387e7f673314cdcecc Mon Sep 17 00:00:00 2001 From: Erik Date: Wed, 3 May 2017 13:39:59 +1200 Subject: [PATCH] Initial (and final) check in --- AGZ-1.IFF | Bin 0 -> 5632 bytes AGZ-2.IFF | Bin 0 -> 8064 bytes AGZ-3.IFF | Bin 0 -> 7296 bytes Devpac.prefs | 36 + GLOOM_Man.iff | Bin 0 -> 33596 bytes GenAm.opts | 3 + Gloom-_HD | Bin 0 -> 26200 bytes Gloom-_HD.info | Bin 0 -> 383 bytes Untitled | Bin 0 -> 48 bytes advert | Bin 0 -> 23180 bytes advert.iff | Bin 0 -> 23738 bytes advert.iff.info | Bin 0 -> 460 bytes advert.pal | Bin 0 -> 512 bytes allbulls | Bin 0 -> 8368 bytes allbulls.iff | Bin 0 -> 5510 bytes allbulls.info | Bin 0 -> 460 bytes ap.s | 12621 +++++++++++++++++++++++++++++++++ arc.bin | Bin 0 -> 1024 bytes baldy.anim | Bin 0 -> 49912 bytes baldy.anim.info | Bin 0 -> 438 bytes baldy.chunks | Bin 0 -> 4394 bytes baldy.chunks.info | Bin 0 -> 466 bytes baldy.iff | Bin 0 -> 49912 bytes baldy.iff.info | Bin 0 -> 438 bytes bang.bin | Bin 0 -> 4106 bytes bang.iff | Bin 0 -> 2668 bytes bigfont.iff | Bin 0 -> 5792 bytes bigfont.iff.info | Bin 0 -> 460 bytes bigfont2.iff | Bin 0 -> 2860 bytes bigfont2.iff.info | Bin 0 -> 466 bytes bitmap.iff | Bin 0 -> 20574 bytes blackmagic.bin | Bin 0 -> 14134 bytes blackmagic.iff | Bin 0 -> 15914 bytes blackmagic.iff.info | Bin 0 -> 236 bytes blackmagic.pal | Bin 0 -> 256 bytes blackmagic_ehb.iff | Bin 0 -> 17618 bytes blob.chk | Bin 0 -> 5937 bytes blob.iff | Bin 0 -> 4334 bytes bounce.bb2 | Bin 0 -> 402 bytes bounce.bb2.bak | Bin 0 -> 376 bytes bounce.bb2.info | Bin 0 -> 396 bytes bounce.bb2.xtra | Bin 0 -> 1206 bytes btest.bb2 | Bin 0 -> 1337 bytes btest.bb2.bak | Bin 0 -> 1331 bytes btest.bb2.info | Bin 0 -> 396 bytes btest.bb2.xtra | Bin 0 -> 1206 bytes bullet1.bin | Bin 0 -> 1026 bytes bullet2.bin | Bin 0 -> 1430 bytes bullet3.bin | Bin 0 -> 3442 bytes bullet4.bin | Bin 0 -> 3286 bytes bullet5.bin | Bin 0 -> 5308 bytes bullets.1 | Bin 0 -> 1904 bytes bullets.2 | Bin 0 -> 1830 bytes bullets.3 | Bin 0 -> 4100 bytes bullets.4 | Bin 0 -> 4288 bytes bullets.4.info | Bin 0 -> 432 bytes bullets.5 | Bin 0 -> 5714 bytes bullets.5.info | Bin 0 -> 432 bytes c2p.bb2 | Bin 0 -> 1590 bytes c2p.bb2.bak | Bin 0 -> 1592 bytes c2p.bb2.info | Bin 0 -> 396 bytes c2p.bb2.old | Bin 0 -> 1216 bytes c2p.bb2.xtra | Bin 0 -> 1206 bytes c2p/blackmagic_1 | Bin 0 -> 660 bytes c2p/blackmagic_1.s | 364 + c2p/simons040_1.s | 596 ++ c2p/writepixelarray8 | Bin 0 -> 676 bytes c2ptest.bb2 | Bin 0 -> 796 bytes c2ptest.bb2.bak | Bin 0 -> 796 bytes c2ptest.bb2.info | Bin 0 -> 396 bytes c2ptest.bb2.xtra | Bin 0 -> 1206 bytes camrots.bin | Bin 0 -> 2048 bytes camrots2.bin | Bin 0 -> 8192 bytes castrots128.bin | Bin 0 -> 2560 bytes castrots64.bin | Bin 0 -> 2560 bytes cd32.bb2 | Bin 0 -> 522 bytes cd32.bb2.bak | Bin 0 -> 506 bytes cd32.bb2.info | Bin 0 -> 396 bytes cd32.bb2.xtra | Bin 0 -> 1206 bytes chatfont.bin | Bin 0 -> 200 bytes chatfont.iff | Bin 0 -> 382 bytes chatfont.iff.info | Bin 0 -> 221 bytes chunks.bin | Bin 0 -> 3380 bytes chunks.iff | Bin 0 -> 2926 bytes chunks.iff.info | Bin 0 -> 221 bytes combat | Bin 0 -> 62475 bytes combat.bin | Bin 0 -> 18628 bytes combat.iff | Bin 0 -> 19176 bytes combat.iff.info | Bin 0 -> 236 bytes combat.pal | Bin 0 -> 512 bytes combat_ehb.iff | Bin 0 -> 56218 bytes crunch | Bin 0 -> 4536 bytes crunch.s | 1286 ++++ ctest.bb2 | Bin 0 -> 42 bytes ctest.bb2.bak | Bin 0 -> 58 bytes ctest.bb2.info | Bin 0 -> 396 bytes ctest.bb2.xtra | Bin 0 -> 1206 bytes cunt | Bin 0 -> 3516 bytes cunt.bak | Bin 0 -> 63 bytes cunt.bb2 | Bin 0 -> 77 bytes cunt.bb2.info | Bin 0 -> 396 bytes cunt.bb2.xtra | Bin 0 -> 1206 bytes cunt.info | Bin 0 -> 396 bytes cunt.xtra | Bin 0 -> 1206 bytes data/gloomgame | 1 + data/maps/com1_1 | Bin 0 -> 928 bytes data/maps/com1_2 | Bin 0 -> 1202 bytes data/maps/com1_3 | Bin 0 -> 944 bytes data/maps/com1_4 | Bin 0 -> 858 bytes data/maps/com1_5 | Bin 0 -> 944 bytes data/maps/com1_6 | Bin 0 -> 1292 bytes data/maps/com1_7 | Bin 0 -> 968 bytes data/maps/com2_1 | Bin 0 -> 846 bytes data/maps/com2_2 | Bin 0 -> 1078 bytes data/maps/com2_3 | Bin 0 -> 928 bytes data/maps/com2_4 | Bin 0 -> 906 bytes data/maps/com2_5 | Bin 0 -> 972 bytes data/maps/com2_6 | Bin 0 -> 858 bytes data/maps/com2_7 | Bin 0 -> 886 bytes data/maps/com3_1 | Bin 0 -> 1300 bytes data/maps/com3_2 | Bin 0 -> 1300 bytes data/maps/com3_3 | Bin 0 -> 962 bytes data/maps/com3_4 | Bin 0 -> 1260 bytes data/maps/com3_5 | Bin 0 -> 1566 bytes data/maps/com3_6 | Bin 0 -> 1186 bytes data/maps/com3_7 | Bin 0 -> 1868 bytes data/maps/map1_1 | Bin 0 -> 1434 bytes data/maps/map1_2 | Bin 0 -> 2280 bytes data/maps/map1_3 | Bin 0 -> 3066 bytes data/maps/map1_4 | Bin 0 -> 4482 bytes data/maps/map1_5 | Bin 0 -> 3024 bytes data/maps/map1_6 | Bin 0 -> 4016 bytes data/maps/map1_7 | Bin 0 -> 4728 bytes data/maps/map3_1 | Bin 0 -> 4018 bytes data/maps/map3_2 | Bin 0 -> 3936 bytes data/maps/map3_3 | Bin 0 -> 5568 bytes data/maps/map3_4 | Bin 0 -> 6850 bytes data/maps/map3_5 | Bin 0 -> 4294 bytes data/maps/map3_6 | Bin 0 -> 5650 bytes data/maps/map3_7 | Bin 0 -> 2088 bytes data/maps/map4_1 | Bin 0 -> 4544 bytes data/maps/map4_2 | Bin 0 -> 4344 bytes data/maps/map4_3 | Bin 0 -> 3958 bytes data/maps/map4_4 | Bin 0 -> 4694 bytes data/maps/map4_5 | Bin 0 -> 3808 bytes data/maps/map4_6 | Bin 0 -> 4274 bytes data/maps/map4_7 | Bin 0 -> 990 bytes data/misc/script | Bin 0 -> 632 bytes data/objs/baldy | Bin 0 -> 12500 bytes data/objs/baldy2 | Bin 0 -> 1292 bytes data/objs/deathhead | Bin 0 -> 4802 bytes data/objs/demon | Bin 0 -> 13012 bytes data/objs/demon2 | Bin 0 -> 970 bytes data/objs/dragon | Bin 0 -> 67360 bytes data/objs/dragon2 | Bin 0 -> 3686 bytes data/objs/ghoul | Bin 0 -> 7934 bytes data/objs/lizard | Bin 0 -> 12408 bytes data/objs/lizard2 | Bin 0 -> 1286 bytes data/objs/marine | Bin 0 -> 12240 bytes data/objs/marine2 | Bin 0 -> 1380 bytes data/objs/phantom | Bin 0 -> 11064 bytes data/objs/phantom2 | Bin 0 -> 1206 bytes data/objs/terra | Bin 0 -> 26722 bytes data/objs/terra2 | Bin 0 -> 1836 bytes data/objs/troll | Bin 0 -> 24060 bytes data/objs/troll2 | Bin 0 -> 2234 bytes data/pics/combat | Bin 0 -> 55562 bytes data/pics/combat.pal | Bin 0 -> 512 bytes data/pics/gothic | Bin 0 -> 47714 bytes data/pics/gothic.pal | Bin 0 -> 512 bytes data/pics/hell | Bin 0 -> 50852 bytes data/pics/hell.pal | Bin 0 -> 512 bytes data/pics/spacehulk | Bin 0 -> 56596 bytes data/pics/spacehulk.pal | Bin 0 -> 512 bytes data/pics/theend | Bin 0 -> 45212 bytes data/pics/theend.pal | Bin 0 -> 512 bytes data/txts/floor1 | Bin 0 -> 1330 bytes data/txts/floor2 | Bin 0 -> 1610 bytes data/txts/floor3 | Bin 0 -> 1806 bytes data/txts/roof1 | Bin 0 -> 394 bytes data/txts/roof2 | Bin 0 -> 1674 bytes data/txts/roof3 | Bin 0 -> 1642 bytes data/txts/txt1_0 | Bin 0 -> 2778 bytes data/txts/txt1_1 | Bin 0 -> 15330 bytes data/txts/txt1_2 | Bin 0 -> 9532 bytes data/txts/txt1_3 | Bin 0 -> 10156 bytes data/txts/txt1_4 | Bin 0 -> 11616 bytes data/txts/txt3_1 | Bin 0 -> 16554 bytes data/txts/txt3_2 | Bin 0 -> 14068 bytes data/txts/txt3_3 | Bin 0 -> 17986 bytes data/txts/txt3_4 | Bin 0 -> 2396 bytes data/txts/txt4_1 | Bin 0 -> 16424 bytes data/txts/txt4_2 | Bin 0 -> 12462 bytes data/txts/txt4_3 | Bin 0 -> 16522 bytes deathhead | Bin 0 -> 18926 bytes deathhead2 | Bin 0 -> 28568 bytes deathhead2.info | Bin 0 -> 438 bytes decrm | Bin 0 -> 1996 bytes decrm.s | 399 ++ defender | Bin 0 -> 9118 bytes demon | Bin 0 -> 58052 bytes demon.chunks | Bin 0 -> 2304 bytes demon.chunks.info | Bin 0 -> 221 bytes demon.info | Bin 0 -> 438 bytes demon.pal | Bin 0 -> 512 bytes dhead | Bin 0 -> 36810 bytes dhead.info | Bin 0 -> 466 bytes dhead1 | Bin 0 -> 12142 bytes dhead1.info | Bin 0 -> 221 bytes dhead2 | Bin 0 -> 13360 bytes dhead2.info | Bin 0 -> 221 bytes dhead3 | Bin 0 -> 13492 bytes dhead3.info | Bin 0 -> 221 bytes diskreq.s | 20 + display.s | 179 + doc | 23 + doc.info | Bin 0 -> 396 bytes doit | 13 + doom.bb2 | Bin 0 -> 1781 bytes doom.bb2.bak | Bin 0 -> 1781 bytes doom.bb2.info | Bin 0 -> 396 bytes doom.bb2.xtra | Bin 0 -> 1206 bytes dpal | Bin 0 -> 12346 bytes dragon.abrsh | Bin 0 -> 173882 bytes dragon.chunks | Bin 0 -> 9992 bytes dragon.chunks.info | Bin 0 -> 466 bytes dragon.info | Bin 0 -> 438 bytes dragon1 | Bin 0 -> 40740 bytes dragon1.info | Bin 0 -> 221 bytes dragon2 | Bin 0 -> 42002 bytes dragon2.info | Bin 0 -> 221 bytes dragon3 | Bin 0 -> 40740 bytes dragon3.info | Bin 0 -> 221 bytes dragon4 | Bin 0 -> 41828 bytes dragon4.info | Bin 0 -> 221 bytes ecstest.bb2 | Bin 0 -> 156 bytes ecstest.bb2.bak | Bin 0 -> 99 bytes ecstest.bb2.info | Bin 0 -> 396 bytes ecstest.bb2.xtra | Bin 0 -> 1206 bytes fire.bin | Bin 0 -> 1080 bytes fire.iff | Bin 0 -> 912 bytes fire1.wav | Bin 0 -> 11794 bytes fire2.bin | Bin 0 -> 8364 bytes fire2.sfx | Bin 0 -> 8464 bytes fire2.sfx.info | Bin 0 -> 494 bytes fire3.sfx | Bin 0 -> 4176 bytes fire3.sfx.info | Bin 0 -> 494 bytes flat | Bin 0 -> 1376 bytes flat.bin | 1 + flat.iff | Bin 0 -> 2832 bytes flat.iff.info | Bin 0 -> 221 bytes flat.s | 65 + flat3.bin | 1666 +++++ flat3.iff | Bin 0 -> 13892 bytes flat3.iff.info | Bin 0 -> 466 bytes flat4.iff | Bin 0 -> 3760 bytes flat4.iff.info | Bin 0 -> 221 bytes floor3 | Bin 0 -> 4288 bytes floor3.info | Bin 0 -> 221 bytes flush.s | 8 + font.bin | Bin 0 -> 11568 bytes font.iff | Bin 0 -> 12400 bytes font.iff.info | Bin 0 -> 460 bytes fonts/2001.font | Bin 0 -> 264 bytes fonts/2001/8 | Bin 0 -> 1832 bytes fonts/microscopic.font | Bin 0 -> 264 bytes fonts/microscopic/5 | Bin 0 -> 600 bytes g | Bin 0 -> 27100 bytes g.s.old | 1646 +++++ gb.bb2 | Bin 0 -> 1320 bytes gb.bb2.bak | Bin 0 -> 1320 bytes gb.bb2.info | Bin 0 -> 396 bytes gb.bb2.xtra | Bin 0 -> 1206 bytes ggfx/floor1 | Bin 0 -> 6804 bytes ggfx/floor1.info | Bin 0 -> 221 bytes ggfx/floor2 | Bin 0 -> 5960 bytes ggfx/floor2_2 | Bin 0 -> 9434 bytes ggfx/floor3 | Bin 0 -> 7314 bytes ggfx/floor3.info | Bin 0 -> 221 bytes ggfx/roof1 | Bin 0 -> 6256 bytes ggfx/roof1.iff | Bin 0 -> 3320 bytes ggfx/roof1.iff.info | Bin 0 -> 221 bytes ggfx/roof1.info | Bin 0 -> 221 bytes ggfx/roof2 | Bin 0 -> 7876 bytes ggfx/roof2_2 | Bin 0 -> 10404 bytes ggfx/roof3 | Bin 0 -> 6442 bytes ggfx/roof3.info | Bin 0 -> 221 bytes ggfx/txt1_0 | Bin 0 -> 14972 bytes ggfx/txt1_0.info | Bin 0 -> 466 bytes ggfx/txt1_1 | Bin 0 -> 41786 bytes ggfx/txt1_2 | Bin 0 -> 40794 bytes ggfx/txt1_3 | Bin 0 -> 45402 bytes ggfx/txt1_3.info | Bin 0 -> 460 bytes ggfx/txt1_4 | Bin 0 -> 41108 bytes ggfx/txt1_z | Bin 0 -> 11022 bytes ggfx/txt1_z.info | Bin 0 -> 460 bytes ggfx/txt3_1 | Bin 0 -> 49046 bytes ggfx/txt3_2 | Bin 0 -> 43910 bytes ggfx/txt3_3 | Bin 0 -> 47136 bytes ggfx/txt3_4 | Bin 0 -> 14418 bytes ggfx/txt4_1 | Bin 0 -> 44592 bytes ggfx/txt4_2 | Bin 0 -> 38142 bytes ggfx/txt4_2.info | Bin 0 -> 466 bytes ggfx/txt4_3 | Bin 0 -> 35254 bytes ghoul | Bin 0 -> 36472 bytes ghoul.info | Bin 0 -> 438 bytes ghoul.sfx | Bin 0 -> 30804 bytes ghoul2 | Bin 0 -> 42792 bytes ghoul2.info | Bin 0 -> 438 bytes ghoulpic | Bin 0 -> 37306 bytes ghoulpic.info | Bin 0 -> 466 bytes ghoulpic2 | Bin 0 -> 47578 bytes gloom | Bin 0 -> 179388 bytes gloom.bin | Bin 0 -> 11055 bytes gloom.gs | Bin 0 -> 11580 bytes gloom.iff | Bin 0 -> 9082 bytes gloom.iff.info | Bin 0 -> 236 bytes gloom.pal | Bin 0 -> 512 bytes gloom.s | 13977 +++++++++++++++++++++++++++++++++++++ gloom.s.help | 11792 +++++++++++++++++++++++++++++++ gloom.s.ok | 12657 +++++++++++++++++++++++++++++++++ gloom.s.okay | 10316 +++++++++++++++++++++++++++ gloom.s.old | 12674 +++++++++++++++++++++++++++++++++ gloom.s.squash | 10348 +++++++++++++++++++++++++++ gloom.s.vg | 8959 ++++++++++++++++++++++++ gloom.s.zclip | 3057 ++++++++ gloom2 | Bin 0 -> 106872 bytes gloom2.s | 13628 ++++++++++++++++++++++++++++++++++++ gloombrush | Bin 0 -> 17580 bytes gloombrush.iff | Bin 0 -> 18032 bytes gloombrush.iff.info | Bin 0 -> 236 bytes gloombrush.pal | Bin 0 -> 512 bytes gloomcfg | 1 + gloomcfg.bak | 1 + gloomcfg.info | Bin 0 -> 396 bytes gloomgame | Bin 0 -> 32 bytes gothic | Bin 0 -> 64710 bytes gothic.iff | Bin 0 -> 60464 bytes gothic_ehb.iff | Bin 0 -> 52164 bytes gridoffs.bin | Bin 0 -> 116 bytes gridoffs3.bin | Bin 0 -> 148 bytes gridoffs4.bin | Bin 0 -> 420 bytes ground.bin | Bin 0 -> 4128 bytes ground.iff | Bin 0 -> 2272 bytes ground.iff.info | Bin 0 -> 221 bytes ground.s | 158 + hdinstall.bb2 | Bin 0 -> 1595 bytes hdinstall.bb2.bak | Bin 0 -> 1589 bytes hdinstall.bb2.info | Bin 0 -> 396 bytes hdinstall.bb2.xtra | Bin 0 -> 1206 bytes head.info | Bin 0 -> 438 bytes health.bin | Bin 0 -> 596 bytes health.iff | Bin 0 -> 854 bytes health.iff.info | Bin 0 -> 236 bytes hell | Bin 0 -> 59230 bytes hell.iff | Bin 0 -> 60124 bytes hell_ehb.iff | Bin 0 -> 53172 bytes hellpic | Bin 0 -> 182420 bytes hellpic.info | Bin 0 -> 236 bytes help.bb2 | Bin 0 -> 155 bytes help.bb2.bak | Bin 0 -> 130 bytes help.bb2.info | Bin 0 -> 396 bytes help.bb2.xtra | Bin 0 -> 1206 bytes hulk_ehb.iff | Bin 0 -> 55252 bytes iff.s | 48 + info.bb2 | Bin 0 -> 220 bytes info.bb2.info | Bin 0 -> 396 bytes info.bb2.xtra | Bin 0 -> 1206 bytes insdisk.iff | Bin 0 -> 13202 bytes insdisk.iff.info | Bin 0 -> 236 bytes intui.bb2 | Bin 0 -> 141 bytes intui.bb2.bak | Bin 0 -> 104 bytes intui.bb2.info | Bin 0 -> 396 bytes intui.bb2.xtra | Bin 0 -> 1206 bytes it | Bin 0 -> 2296 bytes it.bb2 | Bin 0 -> 81 bytes it.bb2.bak | Bin 0 -> 80 bytes it.bb2.info | Bin 0 -> 396 bytes it.bb2.xtra | Bin 0 -> 1206 bytes it.info | Bin 0 -> 383 bytes it.s | 26 + joy.s | 30 + key.bb2 | Bin 0 -> 502 bytes key.bb2.bak | Bin 0 -> 437 bytes key.bb2.info | Bin 0 -> 396 bytes key.bb2.xtra | Bin 0 -> 1206 bytes ktest.bb2 | Bin 0 -> 146 bytes ktest.bb2.bak | Bin 0 -> 107 bytes ktest.bb2.info | Bin 0 -> 396 bytes ktest.bb2.xtra | Bin 0 -> 1206 bytes line.bb2 | Bin 0 -> 707 bytes line.bb2.bak | Bin 0 -> 583 bytes line.bb2.info | Bin 0 -> 396 bytes line.bb2.old | Bin 0 -> 893 bytes line.bb2.xtra | Bin 0 -> 1206 bytes littlefont.iff | Bin 0 -> 1584 bytes littlefont.iff.info | Bin 0 -> 466 bytes lives.iff | Bin 0 -> 854 bytes lives.iff.info | Bin 0 -> 236 bytes lizard | Bin 0 -> 55334 bytes lizard.chunks | Bin 0 -> 2712 bytes lizard.chunks.info | Bin 0 -> 221 bytes lizard.info | Bin 0 -> 438 bytes lizard.wav | Bin 0 -> 14244 bytes lizhit.wav | Bin 0 -> 12228 bytes loader | Bin 0 -> 3444 bytes lores.bb2 | Bin 0 -> 426 bytes lores.bb2.bak | Bin 0 -> 384 bytes lores.bb2.info | Bin 0 -> 396 bytes lores.bb2.xtra | Bin 0 -> 1206 bytes ltest.bb2 | Bin 0 -> 576 bytes ltest.bb2.bak | Bin 0 -> 556 bytes ltest.bb2.info | Bin 0 -> 396 bytes ltest.bb2.xtra | Bin 0 -> 1206 bytes makeanim | Bin 0 -> 34960 bytes makeanim.bb2 | Bin 0 -> 2863 bytes makeanim.bb2.bak | Bin 0 -> 2865 bytes makeanim.bb2.info | Bin 0 -> 396 bytes makeanim.bb2.xtra | Bin 0 -> 1206 bytes makeblit | Bin 0 -> 31708 bytes makeblit.bb2 | Bin 0 -> 2132 bytes makeblit.bb2.bak | Bin 0 -> 2108 bytes makeblit.bb2.info | Bin 0 -> 396 bytes makeblit.bb2.xtra | Bin 0 -> 1206 bytes makeblit2 | Bin 0 -> 31740 bytes makeblit2.bb2 | Bin 0 -> 2159 bytes makeblit2.bb2.bak | Bin 0 -> 2159 bytes makeblit2.bb2.info | Bin 0 -> 396 bytes makeblit2.bb2.xtra | Bin 0 -> 1206 bytes makecamrots.bb2 | Bin 0 -> 241 bytes makecamrots.bb2.bak | Bin 0 -> 237 bytes makecamrots.bb2.info | Bin 0 -> 396 bytes makecamrots.bb2.xtra | Bin 0 -> 1206 bytes makecamrots2.bb2 | Bin 0 -> 201 bytes makecamrots2.bb2.bak | Bin 0 -> 201 bytes makecamrots2.bb2.info | Bin 0 -> 396 bytes makecamrots2.bb2.xtra | Bin 0 -> 1206 bytes makechat.bb2 | Bin 0 -> 131 bytes makechat.bb2.bak | Bin 0 -> 131 bytes makechat.bb2.info | Bin 0 -> 396 bytes makechat.bb2.xtra | Bin 0 -> 1206 bytes makechunky | Bin 0 -> 27808 bytes makechunky.bb2 | Bin 0 -> 424 bytes makechunky.bb2.bak | Bin 0 -> 424 bytes makechunky.bb2.info | Bin 0 -> 396 bytes makechunky.bb2.xtra | Bin 0 -> 1206 bytes makeflat | Bin 0 -> 17288 bytes makeflat.bb2 | Bin 0 -> 299 bytes makeflat.bb2.bak | Bin 0 -> 297 bytes makeflat.bb2.info | Bin 0 -> 396 bytes makeflat.bb2.xtra | Bin 0 -> 1206 bytes makefont.bb2 | Bin 0 -> 151 bytes makefont.bb2.bak | Bin 0 -> 151 bytes makefont.bb2.info | Bin 0 -> 396 bytes makefont.bb2.xtra | Bin 0 -> 1206 bytes makegridoffs.bb2 | Bin 0 -> 500 bytes makegridoffs.bb2.bak | Bin 0 -> 500 bytes makegridoffs.bb2.info | Bin 0 -> 396 bytes makegridoffs.bb2.old | Bin 0 -> 642 bytes makegridoffs.bb2.xtra | Bin 0 -> 1206 bytes maker.bb2.bak | Bin 0 -> 606 bytes maker.bb2.info | Bin 0 -> 396 bytes maker.bb2.xtra | Bin 0 -> 1206 bytes maker128.bb2 | Bin 0 -> 608 bytes maker128.bb2.info | Bin 0 -> 396 bytes maker128.bb2.xtra | Bin 0 -> 1206 bytes maker64.bb2 | Bin 0 -> 607 bytes maker64.bb2.info | Bin 0 -> 396 bytes maker64.bb2.xtra | Bin 0 -> 1206 bytes makergb.bb2 | Bin 0 -> 2424 bytes makergb.bb2.bak | Bin 0 -> 2378 bytes makergb.bb2.info | Bin 0 -> 396 bytes makergb.bb2.xtra | Bin 0 -> 1206 bytes makesqr.bb2 | Bin 0 -> 98 bytes makesqr.bb2.bak | Bin 0 -> 98 bytes makesqr.bb2.info | Bin 0 -> 396 bytes makesqr.bb2.xtra | Bin 0 -> 1206 bytes man.anim.info | Bin 0 -> 438 bytes man.bin | Bin 0 -> 73144 bytes man2.anim.info | Bin 0 -> 438 bytes map.bin | Bin 0 -> 4684 bytes map1_1 | Bin 0 -> 10502 bytes map3_6 | Bin 0 -> 19350 bytes map3_7 | Bin 0 -> 12534 bytes maped | Bin 0 -> 114316 bytes maped.bb2 | Bin 0 -> 28790 bytes maped.bb2.bak | Bin 0 -> 28788 bytes maped.bb2.info | Bin 0 -> 396 bytes maped.bb2.old | Bin 0 -> 22113 bytes maped.bb2.xtra | Bin 0 -> 1206 bytes maped.info | Bin 0 -> 383 bytes maped2.bb2 | Bin 0 -> 25558 bytes maped2.bb2.bak | Bin 0 -> 25429 bytes maped2.bb2.info | Bin 0 -> 396 bytes maped2.bb2.xtra | Bin 0 -> 1206 bytes maps/com1_1 | Bin 0 -> 9578 bytes maps/com1_2 | Bin 0 -> 10450 bytes maps/com1_3 | Bin 0 -> 9998 bytes maps/com1_4 | Bin 0 -> 10062 bytes maps/com1_5 | Bin 0 -> 9718 bytes maps/com1_6 | Bin 0 -> 10794 bytes maps/com1_7 | Bin 0 -> 9842 bytes maps/com2_1 | Bin 0 -> 9602 bytes maps/com2_2 | Bin 0 -> 10146 bytes maps/com2_3 | Bin 0 -> 10030 bytes maps/com2_4 | Bin 0 -> 10070 bytes maps/com2_5 | Bin 0 -> 9858 bytes maps/com2_6 | Bin 0 -> 9846 bytes maps/com2_7 | Bin 0 -> 9678 bytes maps/com3_1 | Bin 0 -> 10478 bytes maps/com3_2 | Bin 0 -> 10602 bytes maps/com3_3 | Bin 0 -> 10030 bytes maps/com3_4 | Bin 0 -> 10566 bytes maps/com3_5 | Bin 0 -> 11498 bytes maps/com3_6 | Bin 0 -> 10594 bytes maps/com3_7 | Bin 0 -> 11538 bytes maps/map1_1 | Bin 0 -> 10586 bytes maps/map1_2 | Bin 0 -> 12630 bytes maps/map1_3 | Bin 0 -> 14678 bytes maps/map1_4 | Bin 0 -> 17506 bytes maps/map1_5 | Bin 0 -> 14590 bytes maps/map1_6 | Bin 0 -> 15838 bytes maps/map1_7 | Bin 0 -> 17430 bytes maps/map3_1 | Bin 0 -> 15932 bytes maps/map3_2 | Bin 0 -> 15470 bytes maps/map3_3 | Bin 0 -> 19074 bytes maps/map3_4 | Bin 0 -> 20818 bytes maps/map3_5 | Bin 0 -> 16690 bytes maps/map3_6 | Bin 0 -> 19648 bytes maps/map3_7 | Bin 0 -> 12534 bytes maps/map4_1 | Bin 0 -> 15698 bytes maps/map4_2 | Bin 0 -> 17710 bytes maps/map4_3 | Bin 0 -> 16262 bytes maps/map4_4 | Bin 0 -> 17586 bytes maps/map4_5 | Bin 0 -> 14882 bytes maps/map4_6 | Bin 0 -> 16650 bytes maps/map4_7 | Bin 0 -> 9734 bytes maps2/map0_1 | Bin 0 -> 9814 bytes maps2/map1_1 | Bin 0 -> 10502 bytes maps2/map1_2 | Bin 0 -> 12382 bytes maps2/map1_3 | Bin 0 -> 14694 bytes maps2/map1_4 | Bin 0 -> 15894 bytes maps2/map1_5 | Bin 0 -> 16994 bytes maps2/map1_6 | Bin 0 -> 14278 bytes maps2/map1_7 | Bin 0 -> 15678 bytes maps2/map1_8 | Bin 0 -> 16958 bytes maps2/map3_1 | Bin 0 -> 15268 bytes maps2/map3_2 | Bin 0 -> 14826 bytes maps2/map3_3 | Bin 0 -> 17838 bytes maps2/map3_4 | Bin 0 -> 19328 bytes maps2/map3_5 | Bin 0 -> 15486 bytes maps2/map3_6 | Bin 0 -> 19350 bytes maps2/map3_7 | Bin 0 -> 11478 bytes maps2/map3_8 | Bin 0 -> 12794 bytes maps2/map4_1 | Bin 0 -> 15618 bytes marine.anim | Bin 0 -> 44124 bytes marine.chunks | Bin 0 -> 3770 bytes marine.chunks.info | Bin 0 -> 221 bytes med.s | 48 + medplay | Bin 0 -> 7644 bytes minbull1 | Bin 0 -> 214 bytes minbull2 | Bin 0 -> 214 bytes minbull3 | Bin 0 -> 214 bytes minbull4 | Bin 0 -> 214 bytes minbull5 | Bin 0 -> 214 bytes misc/bigfont.bin | Bin 0 -> 10820 bytes misc/bigfont2.bin | Bin 0 -> 3452 bytes misc/palette_6 | Bin 0 -> 64 bytes misc/palette_8 | Bin 0 -> 1024 bytes misc/remap_6 | Bin 0 -> 4096 bytes misc/remap_8 | Bin 0 -> 4096 bytes misc/script | 176 + misc/script.bak | 176 + misc/script.info | Bin 0 -> 396 bytes misc/smallfont.bin | Bin 0 -> 18264 bytes misc/smallfont2.bin | Bin 0 -> 10028 bytes mock1.iff | Bin 0 -> 35448 bytes mock1.iff.info | Bin 0 -> 466 bytes mock2.iff | Bin 0 -> 13924 bytes mock2.iff.info | Bin 0 -> 221 bytes mr | 9 + mr.bak | 1 + mr.info | Bin 0 -> 396 bytes myfont.iff | Bin 0 -> 7308 bytes myfont.iff.info | Bin 0 -> 460 bytes nonv.s | 73 + objs/baldy | Bin 0 -> 83540 bytes objs/baldy2 | Bin 0 -> 3812 bytes objs/deathhead | Bin 0 -> 58268 bytes objs/demon | Bin 0 -> 91328 bytes objs/demon2 | Bin 0 -> 2614 bytes objs/dragon | Bin 0 -> 340456 bytes objs/dragon2 | Bin 0 -> 14398 bytes objs/ghoul | Bin 0 -> 70666 bytes objs/lizard | Bin 0 -> 92942 bytes objs/lizard2 | Bin 0 -> 3546 bytes objs/marine | Bin 0 -> 72964 bytes objs/marine2 | Bin 0 -> 4048 bytes objs/phantom | Bin 0 -> 100452 bytes objs/phantom2 | Bin 0 -> 3180 bytes objs/player | Bin 0 -> 72118 bytes objs/terra | Bin 0 -> 139278 bytes objs/terra2 | Bin 0 -> 5588 bytes objs/tokens | Bin 0 -> 3370 bytes objs/troll | Bin 0 -> 148320 bytes objs/troll2 | Bin 0 -> 6488 bytes p0.iff | Bin 0 -> 55450 bytes p1.iff | Bin 0 -> 58748 bytes p2.iff | Bin 0 -> 39294 bytes p3.iff | Bin 0 -> 52426 bytes pal.bb2 | Bin 0 -> 1811 bytes pal.bb2.bak | Bin 0 -> 1805 bytes pal.bb2.info | Bin 0 -> 396 bytes pal.bb2.xtra | Bin 0 -> 1206 bytes pal2.bb2 | Bin 0 -> 2890 bytes phantom.chunks | Bin 0 -> 2204 bytes phantom.chunks.info | Bin 0 -> 221 bytes phantom.iff | Bin 0 -> 47562 bytes phantom.iff.info | Bin 0 -> 438 bytes pic1.iff | Bin 0 -> 53740 bytes pic1a.iff.info | Bin 0 -> 236 bytes pic2a.iff.info | Bin 0 -> 236 bytes pic3a.iff.info | Bin 0 -> 236 bytes pics/blackmagic | Bin 0 -> 17390 bytes pics/blackmagic.pal | Bin 0 -> 256 bytes pics/combat | Bin 0 -> 62475 bytes pics/combat.pal | Bin 0 -> 512 bytes pics/gloombrush | Bin 0 -> 17580 bytes pics/gothic | Bin 0 -> 59932 bytes pics/gothic.pal | Bin 0 -> 512 bytes pics/hell | Bin 0 -> 59592 bytes pics/hell.pal | Bin 0 -> 512 bytes pics/spacehulk | Bin 0 -> 62286 bytes pics/spacehulk.pal | Bin 0 -> 512 bytes pics/theend | Bin 0 -> 54621 bytes pics/theend.pal | Bin 0 -> 512 bytes pics/title | Bin 0 -> 47718 bytes pics/title.pal | Bin 0 -> 512 bytes pics2/advert | Bin 0 -> 23011 bytes pics2/advert.pal | Bin 0 -> 512 bytes pics2/blackmagic | Bin 0 -> 15203 bytes pics2/blackmagic.bin | Bin 0 -> 15203 bytes pics2/blackmagic.pal | Bin 0 -> 512 bytes pics2/demon | Bin 0 -> 51317 bytes pics2/demon.iff | Bin 0 -> 51770 bytes pics2/demon.iff.info | Bin 0 -> 236 bytes pics2/demon.pal | Bin 0 -> 512 bytes pics2/endgame | Bin 0 -> 39291 bytes pics2/endgame.pal | Bin 0 -> 512 bytes pics2/hell | Bin 0 -> 13336 bytes pics2/hell.iff | Bin 0 -> 13884 bytes pics2/hell.iff.info | Bin 0 -> 236 bytes pics2/hell.pal | Bin 0 -> 512 bytes pics2/insdisk.bin | Bin 0 -> 12734 bytes pics2/insdisk.iff | Bin 0 -> 13114 bytes pics2/insdisk.iff.info | Bin 0 -> 236 bytes pics2/insdisk.pal | Bin 0 -> 512 bytes pics2/soldier | Bin 0 -> 31220 bytes pics2/soldier.iff | Bin 0 -> 37272 bytes pics2/soldier.iff.info | Bin 0 -> 460 bytes pics2/soldier.pal | Bin 0 -> 512 bytes pics_ehb/blackmagic.pal | Bin 0 -> 128 bytes pics_ehb/title | Bin 0 -> 39694 bytes pics_ehb/title.pal | Bin 0 -> 128 bytes planar | Bin 0 -> 660 bytes planar.s | 364 + player.anim | Bin 0 -> 43400 bytes player.anim.info | Bin 0 -> 438 bytes player.bin | Bin 0 -> 72398 bytes pointer.iff | Bin 0 -> 248 bytes pointer.iff.info | Bin 0 -> 221 bytes prog/Disk.info | Bin 0 -> 388 bytes prog/Gloom | Bin 0 -> 179368 bytes prog/Gloom-_HD | Bin 0 -> 26200 bytes prog/Gloom-_HD.info | Bin 0 -> 383 bytes prog/Gloom.info | Bin 0 -> 418 bytes prog/misc/bigfont.bin | Bin 0 -> 1202 bytes prog/misc/smallfont.bin | Bin 0 -> 3032 bytes prog/objs/player | Bin 0 -> 11704 bytes prog/objs/tokens | Bin 0 -> 928 bytes prog/pics/blackmagic | Bin 0 -> 7276 bytes prog/pics/blackmagic.pal | Bin 0 -> 376 bytes prog/s/startup-sequence | 2 + prog/setpatch | Bin 0 -> 10964 bytes prog/sfxs/die.bin | Bin 0 -> 7908 bytes prog/sfxs/door.bin | Bin 0 -> 14586 bytes prog/sfxs/dragon.bin | Bin 0 -> 14884 bytes prog/sfxs/footstep.bin | Bin 0 -> 1308 bytes prog/sfxs/ghoul.bin | Bin 0 -> 14058 bytes prog/sfxs/grunt.bin | Bin 0 -> 5362 bytes prog/sfxs/grunt2.bin | Bin 0 -> 7086 bytes prog/sfxs/grunt3.bin | Bin 0 -> 4082 bytes prog/sfxs/grunt4.bin | Bin 0 -> 7018 bytes prog/sfxs/lizard.bin | Bin 0 -> 7676 bytes prog/sfxs/lizhit.bin | Bin 0 -> 5070 bytes prog/sfxs/med1 | Bin 0 -> 96420 bytes prog/sfxs/med2 | Bin 0 -> 57270 bytes prog/sfxs/robodie.bin | Bin 0 -> 12626 bytes prog/sfxs/robot.bin | Bin 0 -> 15840 bytes prog/sfxs/shoot.bin | Bin 0 -> 7654 bytes prog/sfxs/shoot2.bin | Bin 0 -> 4898 bytes prog/sfxs/shoot3.bin | Bin 0 -> 6246 bytes prog/sfxs/shoot4.bin | Bin 0 -> 7692 bytes prog/sfxs/shoot5.bin | Bin 0 -> 7554 bytes prog/sfxs/splat.bin | Bin 0 -> 4318 bytes prog/sfxs/teleport.bin | Bin 0 -> 6796 bytes prog/sfxs/token.bin | Bin 0 -> 5836 bytes prog/sfxs/trollhit.bin | Bin 0 -> 7846 bytes prog/sfxs/trollmad.bin | Bin 0 -> 14422 bytes quezzies | 28 + reader.bb2 | Bin 0 -> 91 bytes reader.bb2.info | Bin 0 -> 396 bytes reader.bb2.xtra | Bin 0 -> 1206 bytes readme | 29 + readme.info | Bin 0 -> 396 bytes rgbs.bin | Bin 0 -> 3968 bytes rgbs2.bin | Bin 0 -> 3968 bytes rgbtest.bb2 | Bin 0 -> 185 bytes rgbtest.bb2.bak | Bin 0 -> 185 bytes rgbtest.bb2.info | Bin 0 -> 396 bytes rgbtest.bb2.xtra | Bin 0 -> 1206 bytes robodie.sfx | Bin 0 -> 16426 bytes robodie.sfx.info | Bin 0 -> 494 bytes rot1.chk | Bin 0 -> 4142 bytes rot1.iff | Bin 0 -> 1664 bytes rot1.iff.info | Bin 0 -> 221 bytes rot2.chk | Bin 0 -> 4168 bytes rot2.iff | Bin 0 -> 1548 bytes rot2.iff.info | Bin 0 -> 221 bytes rot3.chk | Bin 0 -> 3308 bytes rot3.iff | Bin 0 -> 1398 bytes rot3.iff.info | Bin 0 -> 221 bytes rot4.chk | Bin 0 -> 4064 bytes rot4.iff | Bin 0 -> 1570 bytes rot4.iff.info | Bin 0 -> 221 bytes rot5.chk | Bin 0 -> 4064 bytes rot5.iff | Bin 0 -> 1500 bytes rot5.iff.info | Bin 0 -> 221 bytes rot6.chk | Bin 0 -> 4064 bytes rot6.iff | Bin 0 -> 1522 bytes rot6.iff.info | Bin 0 -> 221 bytes rot7.chk | Bin 0 -> 3323 bytes rot7.iff | Bin 0 -> 1580 bytes rot7.iff.info | Bin 0 -> 221 bytes rot8.chk | Bin 0 -> 4037 bytes rot8.iff | Bin 0 -> 1580 bytes rot8.iff.info | Bin 0 -> 221 bytes rude | Bin 0 -> 52 bytes rude.bb2 | Bin 0 -> 36 bytes rude.bb2.info | Bin 0 -> 396 bytes rude.bb2.xtra | Bin 0 -> 1206 bytes scans/combatpic.iff | Bin 0 -> 63370 bytes scans/endgame.iff | Bin 0 -> 39008 bytes scans/hulkpic.iff | Bin 0 -> 32162 bytes scans/title.iff | Bin 0 -> 48276 bytes script.bak | 16 + script.info | Bin 0 -> 396 bytes setup | Bin 0 -> 30404 bytes setup.bb2 | Bin 0 -> 1647 bytes setup.bb2.bak | Bin 0 -> 1645 bytes setup.bb2.info | Bin 0 -> 396 bytes setup.bb2.xtra | Bin 0 -> 1206 bytes sfx.s | 80 + sfxs/die.bin | Bin 0 -> 9286 bytes sfxs/door.bin | Bin 0 -> 16388 bytes sfxs/dragon.bin | Bin 0 -> 16388 bytes sfxs/footstep.bin | 1 + sfxs/ghoul.bin | Bin 0 -> 16388 bytes sfxs/grunt.bin | Bin 0 -> 5664 bytes sfxs/grunt2.bin | Bin 0 -> 8196 bytes sfxs/grunt3.bin | Bin 0 -> 4932 bytes sfxs/grunt4.bin | Bin 0 -> 7478 bytes sfxs/lizard.bin | Bin 0 -> 8196 bytes sfxs/lizhit.bin | Bin 0 -> 8196 bytes sfxs/med1 | Bin 0 -> 147392 bytes sfxs/med2 | Bin 0 -> 72974 bytes sfxs/robodie.bin | Bin 0 -> 16326 bytes sfxs/robot.bin | Bin 0 -> 18854 bytes sfxs/shoot.bin | Bin 0 -> 8364 bytes sfxs/shoot2.bin | Bin 0 -> 5988 bytes sfxs/shoot3.bin | Bin 0 -> 8196 bytes sfxs/shoot4.bin | Bin 0 -> 8196 bytes sfxs/shoot5.bin | Bin 0 -> 8196 bytes sfxs/splat.bin | Bin 0 -> 5300 bytes sfxs/teleport.bin | Bin 0 -> 8790 bytes sfxs/token.bin | Bin 0 -> 8012 bytes sfxs/trollhit.bin | Bin 0 -> 8196 bytes sfxs/trollmad.bin | Bin 0 -> 16388 bytes sfxs2/die.bin | Bin 0 -> 9286 bytes sfxs2/door.bin | Bin 0 -> 43020 bytes sfxs2/footstep.bin | 1 + sfxs2/grunt.bin | Bin 0 -> 5664 bytes sfxs2/grunt2.bin | Bin 0 -> 10502 bytes sfxs2/grunt3.bin | Bin 0 -> 4932 bytes sfxs2/grunt4.bin | Bin 0 -> 7478 bytes sfxs2/med1 | Bin 0 -> 147392 bytes sfxs2/med2 | Bin 0 -> 72974 bytes sfxs2/med2.info | Bin 0 -> 512 bytes sfxs2/shoot.bin | Bin 0 -> 8364 bytes sfxs2/shoot2.bin | Bin 0 -> 11752 bytes sfxs2/shoot3.bin | 1 + sfxs2/shoot4.bin | Bin 0 -> 22232 bytes sfxs2/shoot5.bin | Bin 0 -> 17786 bytes sfxs2/splat.bin | Bin 0 -> 5300 bytes sfxs2/teleport.bin | Bin 0 -> 8790 bytes sfxs2/token.bin | Bin 0 -> 8012 bytes sfxs3/die.bin | Bin 0 -> 9286 bytes sfxs3/door.bin | Bin 0 -> 16388 bytes sfxs3/footstep.bin | 1 + sfxs3/ghoul.bin | Bin 0 -> 30704 bytes sfxs3/grunt.bin | Bin 0 -> 5664 bytes sfxs3/grunt2.bin | Bin 0 -> 8196 bytes sfxs3/grunt3.bin | Bin 0 -> 4932 bytes sfxs3/grunt4.bin | Bin 0 -> 7478 bytes sfxs3/lizard.bin | Bin 0 -> 14202 bytes sfxs3/lizhit.bin | 1 + sfxs3/med1 | Bin 0 -> 147392 bytes sfxs3/med2 | Bin 0 -> 72974 bytes sfxs3/shoot.bin | Bin 0 -> 8364 bytes sfxs3/shoot2.bin | Bin 0 -> 8196 bytes sfxs3/shoot3.bin | Bin 0 -> 8196 bytes sfxs3/shoot4.bin | Bin 0 -> 8196 bytes sfxs3/shoot5.bin | Bin 0 -> 8196 bytes sfxs3/splat.bin | Bin 0 -> 5300 bytes sfxs3/teleport.bin | Bin 0 -> 8790 bytes sfxs3/token.bin | Bin 0 -> 8012 bytes shoot.bin | Bin 0 -> 3608 bytes shoot2.sfx | Bin 0 -> 6088 bytes shoot2.sfx.info | Bin 0 -> 494 bytes shoot3.bin | Bin 0 -> 13734 bytes sizeallsfx | 10 + sizeallsfx.info | Bin 0 -> 396 bytes sizesfx | Bin 0 -> 11796 bytes sizesfx.bb2 | Bin 0 -> 567 bytes sizesfx.bb2.bak | Bin 0 -> 567 bytes sizesfx.bb2.info | Bin 0 -> 396 bytes sizesfx.bb2.xtra | Bin 0 -> 1206 bytes sizesfx.info | Bin 0 -> 383 bytes skull | Bin 0 -> 1320 bytes skull.bin | Bin 0 -> 852 bytes skull.iff | Bin 0 -> 4352 bytes skull.pal | Bin 0 -> 512 bytes smallbull1 | Bin 0 -> 360 bytes smallbull1.iff | Bin 0 -> 316 bytes smallbull1.info | Bin 0 -> 221 bytes smallbull2 | Bin 0 -> 528 bytes smallbull2.iff | Bin 0 -> 316 bytes smallbull2.info | Bin 0 -> 221 bytes smallbull3 | Bin 0 -> 992 bytes smallbull3.iff | Bin 0 -> 316 bytes smallbull3.info | Bin 0 -> 221 bytes smallbull4 | Bin 0 -> 1064 bytes smallbull4.iff | Bin 0 -> 316 bytes smallbull4.info | Bin 0 -> 221 bytes smallbull5 | Bin 0 -> 1232 bytes smallbull5.iff | Bin 0 -> 316 bytes smallbull5.info | Bin 0 -> 221 bytes smallbulls.iff | Bin 0 -> 1592 bytes smallbulls.iff.info | Bin 0 -> 221 bytes smallfont.iff | Bin 0 -> 7144 bytes smallfont.iff.info | Bin 0 -> 460 bytes smallfont2.iff | Bin 0 -> 4540 bytes smallfont2.iff.info | Bin 0 -> 466 bytes snapshot.iff | Bin 0 -> 14560 bytes soldier.iff | Bin 0 -> 33886 bytes soldier.iff.info | Bin 0 -> 460 bytes sorter.bb2 | Bin 0 -> 1773 bytes sorter.bb2.bak | Bin 0 -> 1725 bytes sorter.bb2.info | Bin 0 -> 396 bytes sorter.bb2.xtra | Bin 0 -> 1206 bytes spacehulk.iff | Bin 0 -> 62818 bytes sparks1.bin | Bin 0 -> 434 bytes sparks1.iff | Bin 0 -> 1040 bytes sparks2.bin | Bin 0 -> 528 bytes sparks2.iff | Bin 0 -> 864 bytes sparks3.bin | Bin 0 -> 630 bytes sparks3.iff | Bin 0 -> 1100 bytes sparks4.bin | Bin 0 -> 450 bytes sparks4.iff | Bin 0 -> 962 bytes sparks5.bin | Bin 0 -> 708 bytes sparks5.iff | Bin 0 -> 1312 bytes sqr.bin | Bin 0 -> 16384 bytes strip | Bin 0 -> 1724 bytes strip.s | 45 + teleport.sfx | Bin 0 -> 8890 bytes teleport.sfx.info | Bin 0 -> 494 bytes temp_map | Bin 0 -> 16218 bytes tempfont | Bin 0 -> 6396 bytes tempfont.info | Bin 0 -> 460 bytes terra | Bin 0 -> 79094 bytes terra.chunks | Bin 0 -> 3776 bytes terra.chunks.info | Bin 0 -> 221 bytes terra.info | Bin 0 -> 438 bytes test | 1 + test.bb2 | Bin 0 -> 420 bytes test.bb2.bak | Bin 0 -> 416 bytes test.bb2.info | Bin 0 -> 396 bytes test.bb2.xtra | Bin 0 -> 1206 bytes test2.bb2 | Bin 0 -> 1891 bytes test2.bb2.bak | Bin 0 -> 2375 bytes test2.bb2.info | Bin 0 -> 396 bytes test2.bb2.xtra | Bin 0 -> 1206 bytes test2.iff | Bin 0 -> 2832 bytes text.bb2 | Bin 0 -> 1681 bytes text.bb2.bak | Bin 0 -> 1733 bytes text.bb2.info | Bin 0 -> 396 bytes text.bb2.xtra | Bin 0 -> 1206 bytes texture | Bin 0 -> 1736 bytes texture.chk | Bin 0 -> 16392 bytes texture.iff | Bin 0 -> 11932 bytes texture.iff.info | Bin 0 -> 236 bytes texture.pal | Bin 0 -> 512 bytes texture2.chk | Bin 0 -> 16392 bytes texture2.iff | Bin 0 -> 3088 bytes texture2.iff.info | Bin 0 -> 221 bytes texture2.pal | Bin 0 -> 64 bytes texture3.chk | Bin 0 -> 4104 bytes texture3.iff | Bin 0 -> 4944 bytes texture3.iff.info | Bin 0 -> 236 bytes textures.iff | Bin 0 -> 36724 bytes textures.iff.info | Bin 0 -> 466 bytes theend | Bin 0 -> 36200 bytes theend.iff | Bin 0 -> 55180 bytes theend.iff.info | Bin 0 -> 460 bytes theend.info | Bin 0 -> 236 bytes theone | 214 + theone.bak | 163 + theone.info | Bin 0 -> 396 bytes tile.bin | 2425 +++++++ tile.iff | Bin 0 -> 6252 bytes tile.iff.info | Bin 0 -> 221 bytes tile2.bin | 1133 +++ tile2.iff | Bin 0 -> 7324 bytes tile2.iff.info | Bin 0 -> 221 bytes tile3.bin | 386 + tile3.iff | Bin 0 -> 4288 bytes tile3.iff.info | Bin 0 -> 221 bytes tile4.bin | 4674 +++++++++++++ tile4.iff | Bin 0 -> 9870 bytes tile4.iff.info | Bin 0 -> 221 bytes tile5.iff | Bin 0 -> 6436 bytes tile5.iff.info | Bin 0 -> 221 bytes tilet3.bin | 1666 +++++ title | Bin 0 -> 47718 bytes title.iff | Bin 0 -> 48276 bytes title.iff.info | Bin 0 -> 460 bytes title.pal | Bin 0 -> 512 bytes title_ehb.iff | Bin 0 -> 42028 bytes tokens.bin | Bin 0 -> 3616 bytes tokens.iff | Bin 0 -> 5612 bytes tokens.iff.info | Bin 0 -> 466 bytes troll | Bin 0 -> 74390 bytes troll.anim | Bin 0 -> 75072 bytes troll.anim.info | Bin 0 -> 1286 bytes troll.chunks | Bin 0 -> 4092 bytes troll.chunks.info | Bin 0 -> 221 bytes troll.info | Bin 0 -> 438 bytes ttest.bb2 | Bin 0 -> 145 bytes ttest.bb2.bak | Bin 0 -> 145 bytes ttest.bb2.info | Bin 0 -> 396 bytes ttest.bb2.xtra | Bin 0 -> 1206 bytes txt | Bin 0 -> 2272 bytes txt.bin | Bin 0 -> 4496 bytes txt.iff | Bin 0 -> 2832 bytes txt.iff.info | Bin 0 -> 221 bytes txt.info | Bin 0 -> 221 bytes txta_1 | Bin 0 -> 83268 bytes txts/floor1 | 1419 ++++ txts/floor2 | 17 + txts/floor3 | 191 + txts/roof1 | Bin 0 -> 394 bytes txts/roof2 | 97 + txts/roof3 | 302 + txts/txt1_0 | Bin 0 -> 33348 bytes txts/txt1_1 | Bin 0 -> 83716 bytes txts/txt1_2 | Bin 0 -> 83716 bytes txts/txt1_3 | Bin 0 -> 83332 bytes txts/txt1_4 | Bin 0 -> 83268 bytes txts/txt1_z | Bin 0 -> 12996 bytes txts/txt3_1 | Bin 0 -> 83716 bytes txts/txt3_2 | Bin 0 -> 83716 bytes txts/txt3_3 | Bin 0 -> 75396 bytes txts/txt3_4 | Bin 0 -> 17156 bytes txts/txt4_1 | Bin 0 -> 83716 bytes txts/txt4_2 | Bin 0 -> 83268 bytes txts/txt4_3 | Bin 0 -> 83268 bytes wall.iff | Bin 0 -> 1736 bytes window.info | Bin 0 -> 221 bytes 988 files changed, 130349 insertions(+) create mode 100644 AGZ-1.IFF create mode 100644 AGZ-2.IFF create mode 100644 AGZ-3.IFF create mode 100644 Devpac.prefs create mode 100644 GLOOM_Man.iff create mode 100644 GenAm.opts create mode 100644 Gloom-_HD create mode 100644 Gloom-_HD.info create mode 100644 Untitled create mode 100644 advert create mode 100644 advert.iff create mode 100644 advert.iff.info create mode 100644 advert.pal create mode 100644 allbulls create mode 100644 allbulls.iff create mode 100644 allbulls.info create mode 100644 ap.s create mode 100644 arc.bin create mode 100644 baldy.anim create mode 100644 baldy.anim.info create mode 100644 baldy.chunks create mode 100644 baldy.chunks.info create mode 100644 baldy.iff create mode 100644 baldy.iff.info create mode 100644 bang.bin create mode 100644 bang.iff create mode 100644 bigfont.iff create mode 100644 bigfont.iff.info create mode 100644 bigfont2.iff create mode 100644 bigfont2.iff.info create mode 100644 bitmap.iff create mode 100644 blackmagic.bin create mode 100644 blackmagic.iff create mode 100644 blackmagic.iff.info create mode 100644 blackmagic.pal create mode 100644 blackmagic_ehb.iff create mode 100644 blob.chk create mode 100644 blob.iff create mode 100644 bounce.bb2 create mode 100644 bounce.bb2.bak create mode 100644 bounce.bb2.info create mode 100644 bounce.bb2.xtra create mode 100644 btest.bb2 create mode 100644 btest.bb2.bak create mode 100644 btest.bb2.info create mode 100644 btest.bb2.xtra create mode 100644 bullet1.bin create mode 100644 bullet2.bin create mode 100644 bullet3.bin create mode 100644 bullet4.bin create mode 100644 bullet5.bin create mode 100644 bullets.1 create mode 100644 bullets.2 create mode 100644 bullets.3 create mode 100644 bullets.4 create mode 100644 bullets.4.info create mode 100644 bullets.5 create mode 100644 bullets.5.info create mode 100644 c2p.bb2 create mode 100644 c2p.bb2.bak create mode 100644 c2p.bb2.info create mode 100644 c2p.bb2.old create mode 100644 c2p.bb2.xtra create mode 100644 c2p/blackmagic_1 create mode 100644 c2p/blackmagic_1.s create mode 100644 c2p/simons040_1.s create mode 100644 c2p/writepixelarray8 create mode 100644 c2ptest.bb2 create mode 100644 c2ptest.bb2.bak create mode 100644 c2ptest.bb2.info create mode 100644 c2ptest.bb2.xtra create mode 100644 camrots.bin create mode 100644 camrots2.bin create mode 100644 castrots128.bin create mode 100644 castrots64.bin create mode 100644 cd32.bb2 create mode 100644 cd32.bb2.bak create mode 100644 cd32.bb2.info create mode 100644 cd32.bb2.xtra create mode 100644 chatfont.bin create mode 100644 chatfont.iff create mode 100644 chatfont.iff.info create mode 100644 chunks.bin create mode 100644 chunks.iff create mode 100644 chunks.iff.info create mode 100644 combat create mode 100644 combat.bin create mode 100644 combat.iff create mode 100644 combat.iff.info create mode 100644 combat.pal create mode 100644 combat_ehb.iff create mode 100644 crunch create mode 100644 crunch.s create mode 100644 ctest.bb2 create mode 100644 ctest.bb2.bak create mode 100644 ctest.bb2.info create mode 100644 ctest.bb2.xtra create mode 100644 cunt create mode 100644 cunt.bak create mode 100644 cunt.bb2 create mode 100644 cunt.bb2.info create mode 100644 cunt.bb2.xtra create mode 100644 cunt.info create mode 100644 cunt.xtra create mode 100644 data/gloomgame create mode 100644 data/maps/com1_1 create mode 100644 data/maps/com1_2 create mode 100644 data/maps/com1_3 create mode 100644 data/maps/com1_4 create mode 100644 data/maps/com1_5 create mode 100644 data/maps/com1_6 create mode 100644 data/maps/com1_7 create mode 100644 data/maps/com2_1 create mode 100644 data/maps/com2_2 create mode 100644 data/maps/com2_3 create mode 100644 data/maps/com2_4 create mode 100644 data/maps/com2_5 create mode 100644 data/maps/com2_6 create mode 100644 data/maps/com2_7 create mode 100644 data/maps/com3_1 create mode 100644 data/maps/com3_2 create mode 100644 data/maps/com3_3 create mode 100644 data/maps/com3_4 create mode 100644 data/maps/com3_5 create mode 100644 data/maps/com3_6 create mode 100644 data/maps/com3_7 create mode 100644 data/maps/map1_1 create mode 100644 data/maps/map1_2 create mode 100644 data/maps/map1_3 create mode 100644 data/maps/map1_4 create mode 100644 data/maps/map1_5 create mode 100644 data/maps/map1_6 create mode 100644 data/maps/map1_7 create mode 100644 data/maps/map3_1 create mode 100644 data/maps/map3_2 create mode 100644 data/maps/map3_3 create mode 100644 data/maps/map3_4 create mode 100644 data/maps/map3_5 create mode 100644 data/maps/map3_6 create mode 100644 data/maps/map3_7 create mode 100644 data/maps/map4_1 create mode 100644 data/maps/map4_2 create mode 100644 data/maps/map4_3 create mode 100644 data/maps/map4_4 create mode 100644 data/maps/map4_5 create mode 100644 data/maps/map4_6 create mode 100644 data/maps/map4_7 create mode 100644 data/misc/script create mode 100644 data/objs/baldy create mode 100644 data/objs/baldy2 create mode 100644 data/objs/deathhead create mode 100644 data/objs/demon create mode 100644 data/objs/demon2 create mode 100644 data/objs/dragon create mode 100644 data/objs/dragon2 create mode 100644 data/objs/ghoul create mode 100644 data/objs/lizard create mode 100644 data/objs/lizard2 create mode 100644 data/objs/marine create mode 100644 data/objs/marine2 create mode 100644 data/objs/phantom create mode 100644 data/objs/phantom2 create mode 100644 data/objs/terra create mode 100644 data/objs/terra2 create mode 100644 data/objs/troll create mode 100644 data/objs/troll2 create mode 100644 data/pics/combat create mode 100644 data/pics/combat.pal create mode 100644 data/pics/gothic create mode 100644 data/pics/gothic.pal create mode 100644 data/pics/hell create mode 100644 data/pics/hell.pal create mode 100644 data/pics/spacehulk create mode 100644 data/pics/spacehulk.pal create mode 100644 data/pics/theend create mode 100644 data/pics/theend.pal create mode 100644 data/txts/floor1 create mode 100644 data/txts/floor2 create mode 100644 data/txts/floor3 create mode 100644 data/txts/roof1 create mode 100644 data/txts/roof2 create mode 100644 data/txts/roof3 create mode 100644 data/txts/txt1_0 create mode 100644 data/txts/txt1_1 create mode 100644 data/txts/txt1_2 create mode 100644 data/txts/txt1_3 create mode 100644 data/txts/txt1_4 create mode 100644 data/txts/txt3_1 create mode 100644 data/txts/txt3_2 create mode 100644 data/txts/txt3_3 create mode 100644 data/txts/txt3_4 create mode 100644 data/txts/txt4_1 create mode 100644 data/txts/txt4_2 create mode 100644 data/txts/txt4_3 create mode 100644 deathhead create mode 100644 deathhead2 create mode 100644 deathhead2.info create mode 100644 decrm create mode 100644 decrm.s create mode 100644 defender create mode 100644 demon create mode 100644 demon.chunks create mode 100644 demon.chunks.info create mode 100644 demon.info create mode 100644 demon.pal create mode 100644 dhead create mode 100644 dhead.info create mode 100644 dhead1 create mode 100644 dhead1.info create mode 100644 dhead2 create mode 100644 dhead2.info create mode 100644 dhead3 create mode 100644 dhead3.info create mode 100644 diskreq.s create mode 100644 display.s create mode 100644 doc create mode 100644 doc.info create mode 100644 doit create mode 100644 doom.bb2 create mode 100644 doom.bb2.bak create mode 100644 doom.bb2.info create mode 100644 doom.bb2.xtra create mode 100644 dpal create mode 100644 dragon.abrsh create mode 100644 dragon.chunks create mode 100644 dragon.chunks.info create mode 100644 dragon.info create mode 100644 dragon1 create mode 100644 dragon1.info create mode 100644 dragon2 create mode 100644 dragon2.info create mode 100644 dragon3 create mode 100644 dragon3.info create mode 100644 dragon4 create mode 100644 dragon4.info create mode 100644 ecstest.bb2 create mode 100644 ecstest.bb2.bak create mode 100644 ecstest.bb2.info create mode 100644 ecstest.bb2.xtra create mode 100644 fire.bin create mode 100644 fire.iff create mode 100644 fire1.wav create mode 100644 fire2.bin create mode 100644 fire2.sfx create mode 100644 fire2.sfx.info create mode 100644 fire3.sfx create mode 100644 fire3.sfx.info create mode 100644 flat create mode 100644 flat.bin create mode 100644 flat.iff create mode 100644 flat.iff.info create mode 100644 flat.s create mode 100644 flat3.bin create mode 100644 flat3.iff create mode 100644 flat3.iff.info create mode 100644 flat4.iff create mode 100644 flat4.iff.info create mode 100644 floor3 create mode 100644 floor3.info create mode 100644 flush.s create mode 100644 font.bin create mode 100644 font.iff create mode 100644 font.iff.info create mode 100644 fonts/2001.font create mode 100644 fonts/2001/8 create mode 100644 fonts/microscopic.font create mode 100644 fonts/microscopic/5 create mode 100644 g create mode 100644 g.s.old create mode 100644 gb.bb2 create mode 100644 gb.bb2.bak create mode 100644 gb.bb2.info create mode 100644 gb.bb2.xtra create mode 100644 ggfx/floor1 create mode 100644 ggfx/floor1.info create mode 100644 ggfx/floor2 create mode 100644 ggfx/floor2_2 create mode 100644 ggfx/floor3 create mode 100644 ggfx/floor3.info create mode 100644 ggfx/roof1 create mode 100644 ggfx/roof1.iff create mode 100644 ggfx/roof1.iff.info create mode 100644 ggfx/roof1.info create mode 100644 ggfx/roof2 create mode 100644 ggfx/roof2_2 create mode 100644 ggfx/roof3 create mode 100644 ggfx/roof3.info create mode 100644 ggfx/txt1_0 create mode 100644 ggfx/txt1_0.info create mode 100644 ggfx/txt1_1 create mode 100644 ggfx/txt1_2 create mode 100644 ggfx/txt1_3 create mode 100644 ggfx/txt1_3.info create mode 100644 ggfx/txt1_4 create mode 100644 ggfx/txt1_z create mode 100644 ggfx/txt1_z.info create mode 100644 ggfx/txt3_1 create mode 100644 ggfx/txt3_2 create mode 100644 ggfx/txt3_3 create mode 100644 ggfx/txt3_4 create mode 100644 ggfx/txt4_1 create mode 100644 ggfx/txt4_2 create mode 100644 ggfx/txt4_2.info create mode 100644 ggfx/txt4_3 create mode 100644 ghoul create mode 100644 ghoul.info create mode 100644 ghoul.sfx create mode 100644 ghoul2 create mode 100644 ghoul2.info create mode 100644 ghoulpic create mode 100644 ghoulpic.info create mode 100644 ghoulpic2 create mode 100644 gloom create mode 100644 gloom.bin create mode 100644 gloom.gs create mode 100644 gloom.iff create mode 100644 gloom.iff.info create mode 100644 gloom.pal create mode 100644 gloom.s create mode 100644 gloom.s.help create mode 100644 gloom.s.ok create mode 100644 gloom.s.okay create mode 100644 gloom.s.old create mode 100644 gloom.s.squash create mode 100644 gloom.s.vg create mode 100644 gloom.s.zclip create mode 100644 gloom2 create mode 100644 gloom2.s create mode 100644 gloombrush create mode 100644 gloombrush.iff create mode 100644 gloombrush.iff.info create mode 100644 gloombrush.pal create mode 100644 gloomcfg create mode 100644 gloomcfg.bak create mode 100644 gloomcfg.info create mode 100644 gloomgame create mode 100644 gothic create mode 100644 gothic.iff create mode 100644 gothic_ehb.iff create mode 100644 gridoffs.bin create mode 100644 gridoffs3.bin create mode 100644 gridoffs4.bin create mode 100644 ground.bin create mode 100644 ground.iff create mode 100644 ground.iff.info create mode 100644 ground.s create mode 100644 hdinstall.bb2 create mode 100644 hdinstall.bb2.bak create mode 100644 hdinstall.bb2.info create mode 100644 hdinstall.bb2.xtra create mode 100644 head.info create mode 100644 health.bin create mode 100644 health.iff create mode 100644 health.iff.info create mode 100644 hell create mode 100644 hell.iff create mode 100644 hell_ehb.iff create mode 100644 hellpic create mode 100644 hellpic.info create mode 100644 help.bb2 create mode 100644 help.bb2.bak create mode 100644 help.bb2.info create mode 100644 help.bb2.xtra create mode 100644 hulk_ehb.iff create mode 100644 iff.s create mode 100644 info.bb2 create mode 100644 info.bb2.info create mode 100644 info.bb2.xtra create mode 100644 insdisk.iff create mode 100644 insdisk.iff.info create mode 100644 intui.bb2 create mode 100644 intui.bb2.bak create mode 100644 intui.bb2.info create mode 100644 intui.bb2.xtra create mode 100644 it create mode 100644 it.bb2 create mode 100644 it.bb2.bak create mode 100644 it.bb2.info create mode 100644 it.bb2.xtra create mode 100644 it.info create mode 100644 it.s create mode 100644 joy.s create mode 100644 key.bb2 create mode 100644 key.bb2.bak create mode 100644 key.bb2.info create mode 100644 key.bb2.xtra create mode 100644 ktest.bb2 create mode 100644 ktest.bb2.bak create mode 100644 ktest.bb2.info create mode 100644 ktest.bb2.xtra create mode 100644 line.bb2 create mode 100644 line.bb2.bak create mode 100644 line.bb2.info create mode 100644 line.bb2.old create mode 100644 line.bb2.xtra create mode 100644 littlefont.iff create mode 100644 littlefont.iff.info create mode 100644 lives.iff create mode 100644 lives.iff.info create mode 100644 lizard create mode 100644 lizard.chunks create mode 100644 lizard.chunks.info create mode 100644 lizard.info create mode 100644 lizard.wav create mode 100644 lizhit.wav create mode 100644 loader create mode 100644 lores.bb2 create mode 100644 lores.bb2.bak create mode 100644 lores.bb2.info create mode 100644 lores.bb2.xtra create mode 100644 ltest.bb2 create mode 100644 ltest.bb2.bak create mode 100644 ltest.bb2.info create mode 100644 ltest.bb2.xtra create mode 100644 makeanim create mode 100644 makeanim.bb2 create mode 100644 makeanim.bb2.bak create mode 100644 makeanim.bb2.info create mode 100644 makeanim.bb2.xtra create mode 100644 makeblit create mode 100644 makeblit.bb2 create mode 100644 makeblit.bb2.bak create mode 100644 makeblit.bb2.info create mode 100644 makeblit.bb2.xtra create mode 100644 makeblit2 create mode 100644 makeblit2.bb2 create mode 100644 makeblit2.bb2.bak create mode 100644 makeblit2.bb2.info create mode 100644 makeblit2.bb2.xtra create mode 100644 makecamrots.bb2 create mode 100644 makecamrots.bb2.bak create mode 100644 makecamrots.bb2.info create mode 100644 makecamrots.bb2.xtra create mode 100644 makecamrots2.bb2 create mode 100644 makecamrots2.bb2.bak create mode 100644 makecamrots2.bb2.info create mode 100644 makecamrots2.bb2.xtra create mode 100644 makechat.bb2 create mode 100644 makechat.bb2.bak create mode 100644 makechat.bb2.info create mode 100644 makechat.bb2.xtra create mode 100644 makechunky create mode 100644 makechunky.bb2 create mode 100644 makechunky.bb2.bak create mode 100644 makechunky.bb2.info create mode 100644 makechunky.bb2.xtra create mode 100644 makeflat create mode 100644 makeflat.bb2 create mode 100644 makeflat.bb2.bak create mode 100644 makeflat.bb2.info create mode 100644 makeflat.bb2.xtra create mode 100644 makefont.bb2 create mode 100644 makefont.bb2.bak create mode 100644 makefont.bb2.info create mode 100644 makefont.bb2.xtra create mode 100644 makegridoffs.bb2 create mode 100644 makegridoffs.bb2.bak create mode 100644 makegridoffs.bb2.info create mode 100644 makegridoffs.bb2.old create mode 100644 makegridoffs.bb2.xtra create mode 100644 maker.bb2.bak create mode 100644 maker.bb2.info create mode 100644 maker.bb2.xtra create mode 100644 maker128.bb2 create mode 100644 maker128.bb2.info create mode 100644 maker128.bb2.xtra create mode 100644 maker64.bb2 create mode 100644 maker64.bb2.info create mode 100644 maker64.bb2.xtra create mode 100644 makergb.bb2 create mode 100644 makergb.bb2.bak create mode 100644 makergb.bb2.info create mode 100644 makergb.bb2.xtra create mode 100644 makesqr.bb2 create mode 100644 makesqr.bb2.bak create mode 100644 makesqr.bb2.info create mode 100644 makesqr.bb2.xtra create mode 100644 man.anim.info create mode 100644 man.bin create mode 100644 man2.anim.info create mode 100644 map.bin create mode 100644 map1_1 create mode 100644 map3_6 create mode 100644 map3_7 create mode 100644 maped create mode 100644 maped.bb2 create mode 100644 maped.bb2.bak create mode 100644 maped.bb2.info create mode 100644 maped.bb2.old create mode 100644 maped.bb2.xtra create mode 100644 maped.info create mode 100644 maped2.bb2 create mode 100644 maped2.bb2.bak create mode 100644 maped2.bb2.info create mode 100644 maped2.bb2.xtra create mode 100644 maps/com1_1 create mode 100644 maps/com1_2 create mode 100644 maps/com1_3 create mode 100644 maps/com1_4 create mode 100644 maps/com1_5 create mode 100644 maps/com1_6 create mode 100644 maps/com1_7 create mode 100644 maps/com2_1 create mode 100644 maps/com2_2 create mode 100644 maps/com2_3 create mode 100644 maps/com2_4 create mode 100644 maps/com2_5 create mode 100644 maps/com2_6 create mode 100644 maps/com2_7 create mode 100644 maps/com3_1 create mode 100644 maps/com3_2 create mode 100644 maps/com3_3 create mode 100644 maps/com3_4 create mode 100644 maps/com3_5 create mode 100644 maps/com3_6 create mode 100644 maps/com3_7 create mode 100644 maps/map1_1 create mode 100644 maps/map1_2 create mode 100644 maps/map1_3 create mode 100644 maps/map1_4 create mode 100644 maps/map1_5 create mode 100644 maps/map1_6 create mode 100644 maps/map1_7 create mode 100644 maps/map3_1 create mode 100644 maps/map3_2 create mode 100644 maps/map3_3 create mode 100644 maps/map3_4 create mode 100644 maps/map3_5 create mode 100644 maps/map3_6 create mode 100644 maps/map3_7 create mode 100644 maps/map4_1 create mode 100644 maps/map4_2 create mode 100644 maps/map4_3 create mode 100644 maps/map4_4 create mode 100644 maps/map4_5 create mode 100644 maps/map4_6 create mode 100644 maps/map4_7 create mode 100644 maps2/map0_1 create mode 100644 maps2/map1_1 create mode 100644 maps2/map1_2 create mode 100644 maps2/map1_3 create mode 100644 maps2/map1_4 create mode 100644 maps2/map1_5 create mode 100644 maps2/map1_6 create mode 100644 maps2/map1_7 create mode 100644 maps2/map1_8 create mode 100644 maps2/map3_1 create mode 100644 maps2/map3_2 create mode 100644 maps2/map3_3 create mode 100644 maps2/map3_4 create mode 100644 maps2/map3_5 create mode 100644 maps2/map3_6 create mode 100644 maps2/map3_7 create mode 100644 maps2/map3_8 create mode 100644 maps2/map4_1 create mode 100644 marine.anim create mode 100644 marine.chunks create mode 100644 marine.chunks.info create mode 100644 med.s create mode 100644 medplay create mode 100644 minbull1 create mode 100644 minbull2 create mode 100644 minbull3 create mode 100644 minbull4 create mode 100644 minbull5 create mode 100644 misc/bigfont.bin create mode 100644 misc/bigfont2.bin create mode 100644 misc/palette_6 create mode 100644 misc/palette_8 create mode 100644 misc/remap_6 create mode 100644 misc/remap_8 create mode 100644 misc/script create mode 100644 misc/script.bak create mode 100644 misc/script.info create mode 100644 misc/smallfont.bin create mode 100644 misc/smallfont2.bin create mode 100644 mock1.iff create mode 100644 mock1.iff.info create mode 100644 mock2.iff create mode 100644 mock2.iff.info create mode 100644 mr create mode 100644 mr.bak create mode 100644 mr.info create mode 100644 myfont.iff create mode 100644 myfont.iff.info create mode 100644 nonv.s create mode 100644 objs/baldy create mode 100644 objs/baldy2 create mode 100644 objs/deathhead create mode 100644 objs/demon create mode 100644 objs/demon2 create mode 100644 objs/dragon create mode 100644 objs/dragon2 create mode 100644 objs/ghoul create mode 100644 objs/lizard create mode 100644 objs/lizard2 create mode 100644 objs/marine create mode 100644 objs/marine2 create mode 100644 objs/phantom create mode 100644 objs/phantom2 create mode 100644 objs/player create mode 100644 objs/terra create mode 100644 objs/terra2 create mode 100644 objs/tokens create mode 100644 objs/troll create mode 100644 objs/troll2 create mode 100644 p0.iff create mode 100644 p1.iff create mode 100644 p2.iff create mode 100644 p3.iff create mode 100644 pal.bb2 create mode 100644 pal.bb2.bak create mode 100644 pal.bb2.info create mode 100644 pal.bb2.xtra create mode 100644 pal2.bb2 create mode 100644 phantom.chunks create mode 100644 phantom.chunks.info create mode 100644 phantom.iff create mode 100644 phantom.iff.info create mode 100644 pic1.iff create mode 100644 pic1a.iff.info create mode 100644 pic2a.iff.info create mode 100644 pic3a.iff.info create mode 100644 pics/blackmagic create mode 100644 pics/blackmagic.pal create mode 100644 pics/combat create mode 100644 pics/combat.pal create mode 100644 pics/gloombrush create mode 100644 pics/gothic create mode 100644 pics/gothic.pal create mode 100644 pics/hell create mode 100644 pics/hell.pal create mode 100644 pics/spacehulk create mode 100644 pics/spacehulk.pal create mode 100644 pics/theend create mode 100644 pics/theend.pal create mode 100644 pics/title create mode 100644 pics/title.pal create mode 100644 pics2/advert create mode 100644 pics2/advert.pal create mode 100644 pics2/blackmagic create mode 100644 pics2/blackmagic.bin create mode 100644 pics2/blackmagic.pal create mode 100644 pics2/demon create mode 100644 pics2/demon.iff create mode 100644 pics2/demon.iff.info create mode 100644 pics2/demon.pal create mode 100644 pics2/endgame create mode 100644 pics2/endgame.pal create mode 100644 pics2/hell create mode 100644 pics2/hell.iff create mode 100644 pics2/hell.iff.info create mode 100644 pics2/hell.pal create mode 100644 pics2/insdisk.bin create mode 100644 pics2/insdisk.iff create mode 100644 pics2/insdisk.iff.info create mode 100644 pics2/insdisk.pal create mode 100644 pics2/soldier create mode 100644 pics2/soldier.iff create mode 100644 pics2/soldier.iff.info create mode 100644 pics2/soldier.pal create mode 100644 pics_ehb/blackmagic.pal create mode 100644 pics_ehb/title create mode 100644 pics_ehb/title.pal create mode 100644 planar create mode 100644 planar.s create mode 100644 player.anim create mode 100644 player.anim.info create mode 100644 player.bin create mode 100644 pointer.iff create mode 100644 pointer.iff.info create mode 100644 prog/Disk.info create mode 100644 prog/Gloom create mode 100644 prog/Gloom-_HD create mode 100644 prog/Gloom-_HD.info create mode 100644 prog/Gloom.info create mode 100644 prog/misc/bigfont.bin create mode 100644 prog/misc/smallfont.bin create mode 100644 prog/objs/player create mode 100644 prog/objs/tokens create mode 100644 prog/pics/blackmagic create mode 100644 prog/pics/blackmagic.pal create mode 100644 prog/s/startup-sequence create mode 100644 prog/setpatch create mode 100644 prog/sfxs/die.bin create mode 100644 prog/sfxs/door.bin create mode 100644 prog/sfxs/dragon.bin create mode 100644 prog/sfxs/footstep.bin create mode 100644 prog/sfxs/ghoul.bin create mode 100644 prog/sfxs/grunt.bin create mode 100644 prog/sfxs/grunt2.bin create mode 100644 prog/sfxs/grunt3.bin create mode 100644 prog/sfxs/grunt4.bin create mode 100644 prog/sfxs/lizard.bin create mode 100644 prog/sfxs/lizhit.bin create mode 100644 prog/sfxs/med1 create mode 100644 prog/sfxs/med2 create mode 100644 prog/sfxs/robodie.bin create mode 100644 prog/sfxs/robot.bin create mode 100644 prog/sfxs/shoot.bin create mode 100644 prog/sfxs/shoot2.bin create mode 100644 prog/sfxs/shoot3.bin create mode 100644 prog/sfxs/shoot4.bin create mode 100644 prog/sfxs/shoot5.bin create mode 100644 prog/sfxs/splat.bin create mode 100644 prog/sfxs/teleport.bin create mode 100644 prog/sfxs/token.bin create mode 100644 prog/sfxs/trollhit.bin create mode 100644 prog/sfxs/trollmad.bin create mode 100644 quezzies create mode 100644 reader.bb2 create mode 100644 reader.bb2.info create mode 100644 reader.bb2.xtra create mode 100644 readme create mode 100644 readme.info create mode 100644 rgbs.bin create mode 100644 rgbs2.bin create mode 100644 rgbtest.bb2 create mode 100644 rgbtest.bb2.bak create mode 100644 rgbtest.bb2.info create mode 100644 rgbtest.bb2.xtra create mode 100644 robodie.sfx create mode 100644 robodie.sfx.info create mode 100644 rot1.chk create mode 100644 rot1.iff create mode 100644 rot1.iff.info create mode 100644 rot2.chk create mode 100644 rot2.iff create mode 100644 rot2.iff.info create mode 100644 rot3.chk create mode 100644 rot3.iff create mode 100644 rot3.iff.info create mode 100644 rot4.chk create mode 100644 rot4.iff create mode 100644 rot4.iff.info create mode 100644 rot5.chk create mode 100644 rot5.iff create mode 100644 rot5.iff.info create mode 100644 rot6.chk create mode 100644 rot6.iff create mode 100644 rot6.iff.info create mode 100644 rot7.chk create mode 100644 rot7.iff create mode 100644 rot7.iff.info create mode 100644 rot8.chk create mode 100644 rot8.iff create mode 100644 rot8.iff.info create mode 100644 rude create mode 100644 rude.bb2 create mode 100644 rude.bb2.info create mode 100644 rude.bb2.xtra create mode 100644 scans/combatpic.iff create mode 100644 scans/endgame.iff create mode 100644 scans/hulkpic.iff create mode 100644 scans/title.iff create mode 100644 script.bak create mode 100644 script.info create mode 100644 setup create mode 100644 setup.bb2 create mode 100644 setup.bb2.bak create mode 100644 setup.bb2.info create mode 100644 setup.bb2.xtra create mode 100644 sfx.s create mode 100644 sfxs/die.bin create mode 100644 sfxs/door.bin create mode 100644 sfxs/dragon.bin create mode 100644 sfxs/footstep.bin create mode 100644 sfxs/ghoul.bin create mode 100644 sfxs/grunt.bin create mode 100644 sfxs/grunt2.bin create mode 100644 sfxs/grunt3.bin create mode 100644 sfxs/grunt4.bin create mode 100644 sfxs/lizard.bin create mode 100644 sfxs/lizhit.bin create mode 100644 sfxs/med1 create mode 100644 sfxs/med2 create mode 100644 sfxs/robodie.bin create mode 100644 sfxs/robot.bin create mode 100644 sfxs/shoot.bin create mode 100644 sfxs/shoot2.bin create mode 100644 sfxs/shoot3.bin create mode 100644 sfxs/shoot4.bin create mode 100644 sfxs/shoot5.bin create mode 100644 sfxs/splat.bin create mode 100644 sfxs/teleport.bin create mode 100644 sfxs/token.bin create mode 100644 sfxs/trollhit.bin create mode 100644 sfxs/trollmad.bin create mode 100644 sfxs2/die.bin create mode 100644 sfxs2/door.bin create mode 100644 sfxs2/footstep.bin create mode 100644 sfxs2/grunt.bin create mode 100644 sfxs2/grunt2.bin create mode 100644 sfxs2/grunt3.bin create mode 100644 sfxs2/grunt4.bin create mode 100644 sfxs2/med1 create mode 100644 sfxs2/med2 create mode 100644 sfxs2/med2.info create mode 100644 sfxs2/shoot.bin create mode 100644 sfxs2/shoot2.bin create mode 100644 sfxs2/shoot3.bin create mode 100644 sfxs2/shoot4.bin create mode 100644 sfxs2/shoot5.bin create mode 100644 sfxs2/splat.bin create mode 100644 sfxs2/teleport.bin create mode 100644 sfxs2/token.bin create mode 100644 sfxs3/die.bin create mode 100644 sfxs3/door.bin create mode 100644 sfxs3/footstep.bin create mode 100644 sfxs3/ghoul.bin create mode 100644 sfxs3/grunt.bin create mode 100644 sfxs3/grunt2.bin create mode 100644 sfxs3/grunt3.bin create mode 100644 sfxs3/grunt4.bin create mode 100644 sfxs3/lizard.bin create mode 100644 sfxs3/lizhit.bin create mode 100644 sfxs3/med1 create mode 100644 sfxs3/med2 create mode 100644 sfxs3/shoot.bin create mode 100644 sfxs3/shoot2.bin create mode 100644 sfxs3/shoot3.bin create mode 100644 sfxs3/shoot4.bin create mode 100644 sfxs3/shoot5.bin create mode 100644 sfxs3/splat.bin create mode 100644 sfxs3/teleport.bin create mode 100644 sfxs3/token.bin create mode 100644 shoot.bin create mode 100644 shoot2.sfx create mode 100644 shoot2.sfx.info create mode 100644 shoot3.bin create mode 100644 sizeallsfx create mode 100644 sizeallsfx.info create mode 100644 sizesfx create mode 100644 sizesfx.bb2 create mode 100644 sizesfx.bb2.bak create mode 100644 sizesfx.bb2.info create mode 100644 sizesfx.bb2.xtra create mode 100644 sizesfx.info create mode 100644 skull create mode 100644 skull.bin create mode 100644 skull.iff create mode 100644 skull.pal create mode 100644 smallbull1 create mode 100644 smallbull1.iff create mode 100644 smallbull1.info create mode 100644 smallbull2 create mode 100644 smallbull2.iff create mode 100644 smallbull2.info create mode 100644 smallbull3 create mode 100644 smallbull3.iff create mode 100644 smallbull3.info create mode 100644 smallbull4 create mode 100644 smallbull4.iff create mode 100644 smallbull4.info create mode 100644 smallbull5 create mode 100644 smallbull5.iff create mode 100644 smallbull5.info create mode 100644 smallbulls.iff create mode 100644 smallbulls.iff.info create mode 100644 smallfont.iff create mode 100644 smallfont.iff.info create mode 100644 smallfont2.iff create mode 100644 smallfont2.iff.info create mode 100644 snapshot.iff create mode 100644 soldier.iff create mode 100644 soldier.iff.info create mode 100644 sorter.bb2 create mode 100644 sorter.bb2.bak create mode 100644 sorter.bb2.info create mode 100644 sorter.bb2.xtra create mode 100644 spacehulk.iff create mode 100644 sparks1.bin create mode 100644 sparks1.iff create mode 100644 sparks2.bin create mode 100644 sparks2.iff create mode 100644 sparks3.bin create mode 100644 sparks3.iff create mode 100644 sparks4.bin create mode 100644 sparks4.iff create mode 100644 sparks5.bin create mode 100644 sparks5.iff create mode 100644 sqr.bin create mode 100644 strip create mode 100644 strip.s create mode 100644 teleport.sfx create mode 100644 teleport.sfx.info create mode 100644 temp_map create mode 100644 tempfont create mode 100644 tempfont.info create mode 100644 terra create mode 100644 terra.chunks create mode 100644 terra.chunks.info create mode 100644 terra.info create mode 100644 test create mode 100644 test.bb2 create mode 100644 test.bb2.bak create mode 100644 test.bb2.info create mode 100644 test.bb2.xtra create mode 100644 test2.bb2 create mode 100644 test2.bb2.bak create mode 100644 test2.bb2.info create mode 100644 test2.bb2.xtra create mode 100644 test2.iff create mode 100644 text.bb2 create mode 100644 text.bb2.bak create mode 100644 text.bb2.info create mode 100644 text.bb2.xtra create mode 100644 texture create mode 100644 texture.chk create mode 100644 texture.iff create mode 100644 texture.iff.info create mode 100644 texture.pal create mode 100644 texture2.chk create mode 100644 texture2.iff create mode 100644 texture2.iff.info create mode 100644 texture2.pal create mode 100644 texture3.chk create mode 100644 texture3.iff create mode 100644 texture3.iff.info create mode 100644 textures.iff create mode 100644 textures.iff.info create mode 100644 theend create mode 100644 theend.iff create mode 100644 theend.iff.info create mode 100644 theend.info create mode 100644 theone create mode 100644 theone.bak create mode 100644 theone.info create mode 100644 tile.bin create mode 100644 tile.iff create mode 100644 tile.iff.info create mode 100644 tile2.bin create mode 100644 tile2.iff create mode 100644 tile2.iff.info create mode 100644 tile3.bin create mode 100644 tile3.iff create mode 100644 tile3.iff.info create mode 100644 tile4.bin create mode 100644 tile4.iff create mode 100644 tile4.iff.info create mode 100644 tile5.iff create mode 100644 tile5.iff.info create mode 100644 tilet3.bin create mode 100644 title create mode 100644 title.iff create mode 100644 title.iff.info create mode 100644 title.pal create mode 100644 title_ehb.iff create mode 100644 tokens.bin create mode 100644 tokens.iff create mode 100644 tokens.iff.info create mode 100644 troll create mode 100644 troll.anim create mode 100644 troll.anim.info create mode 100644 troll.chunks create mode 100644 troll.chunks.info create mode 100644 troll.info create mode 100644 ttest.bb2 create mode 100644 ttest.bb2.bak create mode 100644 ttest.bb2.info create mode 100644 ttest.bb2.xtra create mode 100644 txt create mode 100644 txt.bin create mode 100644 txt.iff create mode 100644 txt.iff.info create mode 100644 txt.info create mode 100644 txta_1 create mode 100644 txts/floor1 create mode 100644 txts/floor2 create mode 100644 txts/floor3 create mode 100644 txts/roof1 create mode 100644 txts/roof2 create mode 100644 txts/roof3 create mode 100644 txts/txt1_0 create mode 100644 txts/txt1_1 create mode 100644 txts/txt1_2 create mode 100644 txts/txt1_3 create mode 100644 txts/txt1_4 create mode 100644 txts/txt1_z create mode 100644 txts/txt3_1 create mode 100644 txts/txt3_2 create mode 100644 txts/txt3_3 create mode 100644 txts/txt3_4 create mode 100644 txts/txt4_1 create mode 100644 txts/txt4_2 create mode 100644 txts/txt4_3 create mode 100644 wall.iff create mode 100644 window.info diff --git a/AGZ-1.IFF b/AGZ-1.IFF new file mode 100644 index 0000000000000000000000000000000000000000..c834f70f46d8166bd446ebb7f2427b6315274461 GIT binary patch literal 5632 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 anh*WUJ%2UjVsLk6WOV`LUK92sH~$CB(8*!| literal 0 HcmV?d00001 diff --git a/AGZ-2.IFF b/AGZ-2.IFF new file mode 100644 index 0000000000000000000000000000000000000000..e1b140ab817ee8f585d9cb82bab77f91ff6a0035 GIT binary patch literal 8064 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 QJRh{Z{b;`!;L7j+0m4oM>;M1& literal 0 HcmV?d00001 diff --git a/Devpac.prefs b/Devpac.prefs new file mode 100644 index 0000000..2dc8ff5 --- /dev/null +++ b/Devpac.prefs @@ -0,0 +1,36 @@ +TAB=16 +ICONS=NO +INDENT=NO +BACKUPS=NO +SCREEN=NO +KEYPAD=NO +LAYOUT=STACKED +EOL=IGNORE +WORD=ALT +UNIT=0 +FONT=topaz/8 +SCREENFONT=topaz/8 +DEFWIN=0,8,660,248 +PREFREQ=103,57 +FINDREQ=64,11 +FINDCASE=NO +FINDWORD=NO +PRINTREQ=97,51 +PRINT=FILE +COPIES=1 +NUMBERS=NO +DEVICE=PRT: +SIMPLEREQ=118,64 +TODISK=YES +ARGS= +EXECUTE= +EXECREQ=78,69 +RUNREQ=70,69 +TOOLDIR=work: +GENAM=FIRST +MONAM=FIRST +TOOLREQ=148,60 +CONTROLREQ=0,28 +OPTIONSREQ=7,36 +OPTIMISEREQ=28,37 +OUTPUTWIN=0,35,640,150 diff --git a/GLOOM_Man.iff b/GLOOM_Man.iff new file mode 100644 index 0000000000000000000000000000000000000000..5696f6e8fddeb1c0650bc870511c8ba344619ee8 GIT binary patch literal 33596 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 VhPRi9Z0eL{La4K+uKv%w{ud>`>u3M~ literal 0 HcmV?d00001 diff --git a/GenAm.opts b/GenAm.opts new file mode 100644 index 0000000..a39ca88 --- /dev/null +++ b/GenAm.opts @@ -0,0 +1,3 @@ +-vp=68020 +mex +nocase diff --git a/Gloom-_HD b/Gloom-_HD new file mode 100644 index 0000000000000000000000000000000000000000..0f669f8ea97843f3f01697469425074ece6656a7 GIT binary patch literal 26200 zcmeIa4|tT-wdlQPG7Li;!Z5@b5yR`7aR?zM!z4zSlZJODfeb^8A!89Km4JYN2yUq7Ula(H~KkJrzl^>Qht9xjK=2}nI?Ek!<$MGv1KT1BLkQi?Q&y!W^E zOhVB9vFG&O^E}`8O`i4c{q8?&t-bczYp?z1jZ!(kRhge78xq_wMX8*RBy9TcO6Bcs z`VU48$;0K%KfUSq#0?!klFEsHm{z?{Q%bpX&M8who=}beDUST3Yd)K%b{}0MdCF0* z^M(aOHOd*TQ4T3tu!J|oo2RNqH3y}f8b@C6p>(0KQmL=3swk9lHy6cjD!naTIPurY zMV{}M@i#lm9!ifeA4-=98b`?lH(Ur_ z&4p0EQQa-n9kgTpA8E(qe-U+&&mY6|_a40Q_P4YT8K;sR)1^yx?y97~J$k$Pk&_dE_V1X%@OdtM~VzCPGX$r#x-aDt;k#cnd7SRr(BYoQCynNp{D9XNBdnDYMs zrgMKWCasOtFZc0s`7g$hZC@{jneM+BgN%b5T7x`~YVDS`-mp)eHMwJ~bSu(m)g#Z^ zvHG6QcsgM{pzKqUU%NiuNr}0Xn5#=Tua;0ADd9iTm*=>emoq6V#cK1K{;0T4M&C?t zZyV@|3gs&Qp2i)NQ7Aa4t(<;Wh5Czns~;V0X%t*9?u(`RV(lVFc*JFAJ??qegWC0==GHDHFdSu)ucX-&8rl@ z$e7b~9QEnmUURszv>C1DNJA*EgmQ%ZcA-q}ZRz%FxZ0Y^F-g;Nf~#-75dPutt68n? z$6@`yfkQY*q|t&A8D9D%^K74Fro6ATv}v&}?UA`LCoRu` zF&*D3+WN8da${z0k{*gSW_9=rSlXFOdRr=5vRqZDmL0Xer*suM(`;SO!O|{mqtW6RxK~ihiXZ!-@L&wh8J^SOU zJELN+daY5P2KJj7!Ct6G_5VV;|K?tL`l_5h(+|$SxF3vb`yp#}_ggznZ7tEM%dn{EG`#ME$&v7dFs=S_oY?H7bL+iCv9@X(DQ>tlMzxQ^= zoAyn8(}?MjKI{}RZ(yZTU-hzb(YeF4R~=dy_@Un%bSyq~5eDau$%I+dn11YDvdNZ6m!( zN)$a!n#Napp0s*ND_ALMy>c0Mmh|bGi`~RZBsMus?Cz#z;z6;t)6aj;$K0h4moHv8 zr)_rI*Hr9lN)370`;9q`?K7DBmz43YTqR2!`H2_Q3;547D+Wi;s+mpOd(yz8#hsKt zP-@Lq>J9Hh%BhOxvKTFSNCnJ%{K_@0O0CmxW%v=i8;g~64q z`(nsu$bp0px~*QH$|anh$*t?^`4|5&-b3EeD%ZA&1&JB94VKe7)&p;z4i!hC2gv6r5Zx{+?MF6IIX?ZuDns@oX6s# zkE=yZ9VHI9n_GN<(RUEcTZ&JsH1VCctYoBgsI>I+&=*DGL-#_Z!(I;UR%kDi9v!+@ z=ocR%)+sFyMeKOfvfk338`J=#U0S(caF`K03_l}uz15+_Wj|=Xi?YYFWlbaMwUl!XvH`!_=WALP0!SMu?*?%rnzCEc z1)@t`$tk>BhC^gia4fl6(xk*SIM#pz=)*zWj2WiX@x7HyOP!eDMdlfP6W~#9iN`-w zofWK_49ARgo8EoMFEK207OSZJh9|lDLG;h}mh?!>*LWg_8d^6B;vZU_re)kRBQ0Y; zKSrLjX<7AfV|YfFbZW_%bVyBo%|4USvy7sMyoViUWL*#$<-4TMhMjC$Hd{IJGOcUH zNCE4B;Xo*{k(PLjX5m75Z`g6sS!BAS!ZVwl2XF<8Pe{6Gs?OQ0a}JSXUCp7b2bx)% z_Gwf`&yUmI4tuWg9J&!#u3Kg)S99F(G@hu_^0C&K5qlCG6iuCMM5o7pbOhNI8jl&H zS)s!_mVCQi-gqKP`%Rw_r48?dBX%L-*-5%>($4D_Hd*lxI}fBhZJ!-yGwI(wJ@02) z7Tcy=P|lH_={%Le&vDVt2}Sbt^@V-%J>#$`xplG^BJUWjCH^ z0LN_A^Sq`$qsd}`JB3@Una8$u$ZO^|TRHa`C2BahNR<4Tmb&<%r$eJv5S_9$4i~gcquGr4-V!Q|Xrz99 zDznNHt9gB@Y1uHrc^~0^!msGJ8QIjCI_;}X%PPB-gWUGw?u@LipD`?xa$j+GMqbyq z_Qe)Z+C%BNmEA~FT|Zy+`ufFS5lXFMMXsMy+|{#@Z~>!6)||t`k)Cx(wp{e$`uXH` zNZF=kq%R@AK-ZP@8B$AQB)7&{n{&LQrwK^B)6o+L>Srt0rV3ABsu?#Hsqn^*p3tU_ zo^tyCadTEm&)xa4re&*~-Zj#ud5rd|8r$|h()(7;+iax{iR{L%NvW}qr0~~Qx#*+A zDQ7ElOUlhNH${qQ8)cu6vSEeY4EY!tfvI(8R4wUi&BS+JO*xv*^)&aTr6i4%F!^&6 zG1`_(@6vls%jj_(l9TW(=!@41_SgdD0lY@D*egnu^iS0(1(ISkf5t*iHkx-XP(k|t za$mg>Y5sRca-*F2+i18_Thj@t;5+ zxA(jln6;x}Df4cvLMBIzdwSC)Rk>=FF$+uK4Gk2o?9CG##sJe~M7+q`)A3Yy!#f?_Ybo<;c%;}T=QuF!u%84r1u#yvFg;Refy0`4 zVmYL{!s+6bX_=m#+0d;i=l92Xi>3VNg;Vq*bxn?G)%YusU2UmyRwBPJ_N_9iJjIJt z9$KlA(f8s|QBz;BFAuX+UTm})A~th{5tvL5>}ovWDykSHx*PlcrbR0E@kPoz!6AJU z9!U%KWh9=V4PSmFRe(NtNO7pa9@?3G8=!o=iEko#1Jw}TWagGPw|>JS>9+y;&6|C5 z>9;}hHnyYdNmZ()Bek%ueQ}o>+!xR37a!0s?(P?7Ss<-Ub4rpb>n};>kn2p#7>X`; znd`?ghmDOX_t;5LZ&0~#FkE@Z)~lfI!@RL8=QOGkMp|j(38#ZObCAr}!{%40RN-f^ zj--#gKz?Y?@AnPu`29ZRyrtv!FLQFjT$|8#42$M|?2w+ZtW^Bk`qbEz=X3#f0I#9srgWHt;WW8cosm>a!|L;}(~ffkuDnLlOrD?o;$Rlb(S)2YIY zZ$q9Row<*&fN&b2_*ONh6)IJ}PCVCC0lrrbX+?xCnL8^6F~;!f&8Zn2Smi(_hE6)o zM5>J08ky(Epw6s8-9i)TdC+&6O&7QMxN&B*e?F*MK z>03WRP2Kzi@Pf>Fy}$OQso5Rn^Or7ZSBiNtQ(}vby&!Ly8S>_*WIn$6X_?J#enz~J zo3}JATdv0ZZL=!=sl5H{TNR8<6*5Nt>|1xl7_kp3_Z@Z0ZJHvXVe^A&V+u3dsZkcI zt!0@ycn4#Y2RV6TKR_2P@^^lIE#m8CwO?2?H_dU5BoIdEvK10X>P-6jnM0U)C(X8f z>M3MsG)GUXGFiJ+b_>>`O|(z>-%DQr{LCoGRGIy(yL1Q z1nzK+Pl>lsw2Admm%SpsO-*3*&QZ*OP<9*5w2isBFP_^k{*;dA8qFa`*hx7&oJ_e; ziSqZ0gA0#6&B{XWGK`tqc*5btXIh}98&Q#RkX41c<`;69&VboU+e3~v)y^Kh{n ztugyTSRFvO&~jIs=k}<5sj9|dwTWWL2*|Cfai+sHX?1(d?qb*dkoG5kE;fR4Qp!as z&wB|KWoC@omjff0J61R!J2d8RTUGhc_=nN-Y^B=aZw>3zaB+k35tfFZuAIY6Fo#)S zj&cJYW&^L5+al8(R;O}@)vN1@sF%e_NKn_0mDjsL(_&D-tAe_ z3N$4Aqy&D<{9#{$3v849Mqj!&laA%+46bMGSHjMi)f}Jrk?IWSv0nF)DvN%sOn5G# z2cI&gqP@GNCAaQ_r%{WT0V}&LrB0mRYEH$kcB(t!vtNnD%6=X!RakR%{-pNA*JAHR zi!|*EtU$b9O(dU$S-J$y z6Xp?KG_mBvKEl6Jflt{LYb3n%r}o#xat6Bp+%8+7hcOtjSt;|Jj-}CYp3OSmsGkXP z$AgWsL8GR_gapV z^O&1znXz;!Nhy;Q)xccyPxQbs_GEJLomR_!gAQpQt4#4e@(9J__a_N6RN#`mN77}d z*F!qlHay&9eYQVkw`!F3<~*v` zKP~RmIOxHXG1DVAD{_8S)?puI7CNQ#o@zW16TiVNl8k?N{s22`I|32=8M)o&;Uvd? zma=b(hcxO*@ft@x!CshN*L6zSwUk&(iQ~OHWOy_k_I!5R=6jRV42P}hb_E3& z6kPo%OcDw`7omV&ICN`TqB5dJJ@M{_{E*MyC05?&T_ZioZ1OVFJ|-nK-L)CI@hEgx z2;H#EPW|XsC~^Yic#_|x_QmOUiL_ENc8ON8lfPUzp(jh>Aq5ZG3mWwVEiL!`hL%S4 zj_>gdKcp6BVrA?c1w27zMtW*Q%JfBEcC3#2)9Zo$Cn@T$`kOEy;`}JFc48#wqbchq zMqD2?uAdkg$w)XEalR|*&Umb9KqTi~$<2w^RS$@`-jy=0c>TBmfwsl zj*z3p>g-nD<}^MFzPxC+>}4C`NtJTOA*(ePC30FU<1JYcnJw8A>gdujV^&~&c;xMP zrY+zNt!`;P0LJKfpUXI4yks0~JTZ{5!by)ud@k@>cvHsxXf*dZ4A$jFpm{oekvaU` zzx(Lk11pE9!0>ms`kjH{A8kE|Ke#3q-Vfzdc(gCGL&3^h#?ffKHX6N6G=B86!b!$U zo5?PzjD^uJh{f!A6ncKyIUN0Ls3xuL*x0%O&GH zYB(h=AZhGzOPWv=YwIdAYU=Kc>idvlZC!zgivMH-5=&0RW<6?5uJDANM2SRvSZA}vw&lioIG&72J0mZk=wqpf(Yj=fWrDUHQda=ziJkLmQX zcsiW!jqR9<%{*}T$)=JVCI#0XPX0m){l3+()gQH?z>x9>tNCQ zn}*Cz@+uEKaY#$!!m8diG#K!N_nccmEo?jKwE36uP)Ip@)1*eZU*mX9Ki|0pq3(`{3emsq z;lkyrst~<$*T)8sja9~3UC3Q9Z|G& z#Hb&MhsV>WTs-rY$89Mu?LRf@d&&d20FlRrib@}Kebn`Nc3No72p4PPQ9trA1@UzG zd^|lq&TyozkGekU`lN1CqMq?p-KVKOV-dS4Q|Z}nky~UiH-74uG-eEo6mR1R?+Eel z#9s&*8UG+ukqO7n`MjU-Sta{c@mb8G9dPvz1ybk_sj0v0PH{!qf~xfBQ&7b`OWgp0~S$ zR>d%LN=o0%$d4H#!F~?fC)r=4u5z^x(Pc*jE!Mkku{xc5NgslQryIj4eL6FS|7_`& z{-sMhde{kIKIw)(H!vx~={>)P|ISuMxyWLyCHWOEOTM(VqBH)Xae$LXl^W51)->^x zRF2Wnv%5;ky!Fe(kpt#NYc&lQSpCYbOe_%H#V8}@2`13Ovwf5cIfHVCoEgd)E|6o3nFwy`?E%W~ zZ9H+8J7b|k3HU8+Mk=8Me(HsZT~{7wu9{B?PICHsw{U9z5^a=d%ajn^cMSg1{?Y?& zvr`Ke-hcJ_3EkWH9HZG6e@;$NHpVv9#XIBs&8g->6=t-Zvv(WK*qbnWedl`W`^9UU z;Dg-+{gjyU4qT$cf5oG6npBe0%75c8tt`QC6;pAiQkDMV{X7dZyN;&p&xElPU!x!= zw2u5+rm_RYO33Y=t#TKO_EpyEXB)R9@D~Q0W86)b9W+&BTKk^UyE}PuqLmvkX3>iu z7&5P)^nL?`ieB_&aLBvN@7Z^-t^V)eHky`AO7G9cz}y(>4DAmc2tAUS#Vhftm`kVn zO4J>Fv1&OpWRHtoULCS>(_tzbf;-bUDb{4|_&tq}snCb@H8rYp|73YKoxAdMrbNgY z&Z%-$4;W`g%+KaAE6of)&o1U7Mv;@Ji?4||*Q()sfju|Rs)6QD-+Y<9q%Jeg9#g2= zS>@pTDt9wySVFmRlM0n{CV`~9P(2xFfbQB}`bgso{lcT!Tb|muO@&m7bJ6goiANWy z$WpwOZ!eU)A=188d}-9v-l}qfw0vqw-yWK28Lr;_G}&eAIV+M0#H&=bVdp73)htLP%4+YCn-h$=~B6wQrasDFUOxu#`HWp!m#vBfg8WMfV&qZ zs>PF5gVS};ScG5W!(zV8?UNcqt#F_tuVv2$hU;D1gXV+i2B!q1>NR?PjGYJ0S?;!e z86U-*+NO66WUVkNPRT9I=y~K9aOUVtMni9fexrKioH4e=ND40L1F0YOSCy*V>Qb$zYsj(ciltyQ^1{KU$|SxrNGjH$9-@RZQsGEd~TDSwHoJ`&C5&;c&7}uP`}NQw@=^9cyGiG%lK6Ja>7!1U$iS% z-@R^RuScguqFs5~H=J^bdhEU$Q)xvw)!V2+Ie8wy})l6FS$BvZZq<$(r<`Azs8DkG6 zH(A%J)TB%f<9{4nkB_J0tEGhGKW=S~CS%Du>1Xn*$-jdd`L(VcF}y3+{@Bhs316yX zbQ~tfQ|lzQ7aoI6ms-`hoN8yStER?oL>JHQuYYOcPwM|^V((b8-`3U=`y^g?WwqQ< zsN894J83R-Xe~y03YLSjF%G{5sTujIh zEteB8RhiPY+x2rrwCne$LftA2SOzOK+s@*9LFen6u9a)pfyqPDWVCmc&Fb}xsLSq7 z=JsVoc4Y7&64D}V>1M0T7xmq<1w1C^`?N9fve z&x1MV@?Nt;O$YxvdS!E}u&r;0!0fpEzPVoa#tg>z8P2-Ts6t>k@ezOllo`3#U|Rw< zv0m$Br%2?H>7SJHMK1r0^d08a9__e%Oy)k$jb-#tfd1j(L6{F?yv4`Mj!S zI2eq1o->lJsnQ?#t6uCyj#x2Sw^JfgF-G~ZuYSS;!UDqKgu^FL*7I=|YyKVFmKilm z4F?JUzpSRzDPsygP`=zBD(m>1#fZOh+=zTK2?~W3c^T z11I6tE1Zkfy0U}3;rjgT8Ph7qIx&ts$R^-zP!>3RqQfi2RPOFFgDY~} ztjb4niV)ATKd?xRsG$UH-d=GX&(4}L z%J5Fow}#8F)#ghD{j`~}>QJF|+-U5&WEy*Z_i9kz6LuhDZ-e%u#)-!Rb-e>Wxj@go z^;#aa+?)~_P9n@DtVdd$NmN>BU4SeP~;+apm;vn@3~dS zH|r+~t`b zdqD+(($USdG{ZsO=#Gm!RFLO(RXXnJ@tkr4F2L;>k7uYVi{aDl*{=q99Quy1cXWs2 zvNA~-Iy%Z(v}t5dyhmGV_>Fa(1k|fR=G4)XRS`X_&!NX#s@!NSnZ@i_B`1&rd*lQX z+-uY{?h36KyFgW|jy{jV9b2F}7{M;UcLQ-XfaiZw1C7XU)8calXU$fhyonVz19f<) zXE;3#aRM6R^pxFg&WBGR4YR@|Pv%E&iCHQqq~u>cAq||6b*JI%^CRW^{hZHA&ru`N zla+=SRN&1Mz(Y$i{qpX0WIteqG2+D=NYjCNh%6uRe8J&!UTh|6qv zrfe3TZQp$LLp%^hk~{XC+KsO*_a}tTs|LHGoP|vzzPlgRHz^k|M~cm_tgY-i&uFep5Ta$3@#3!YFA|o@EM+j$e9|24 zI=_ed`^*AuP3C8~Wq`86!P8i+TbkiHUskQ3F43#j!+Oe|S8@4gOu?>wYi8?kpK8)^n7C!y-Y%{zTJQljdgA5^ZXhci}; zcNZ{|x$TFUI6b{^N4;{js-7P3Y)D$(+m*qjb;!QlB7VUnJqN8N zEP~q|gmMmCPly+#iU{T0w}9TuCH|j@heMHbn;uX-+bdtD&5PtrxpICgm)0~3U3+We ziP|1K-3H2RfX^7U5@5&-s>yeH~Yx2e+TnHrPU<1JHFR8+a;_q{#Bhx{VEZ zbZCU?Nf|u1;=O^js!SDn%G3aL1N6&xl&M?j+2F=9WuR9@P_f^O^IcR~RfwseOob@r zF`{o^Pq7q9yuL8LGWUrlDDFz;pjS_3xVE=dm*Ig!F+4`OWgYg0^=5Qjdkv7eV7}SDm0Qc-jm3BEzs)a*a9lKgsd!BVScDi8Xad(Yp<}zwD6zmw?Fw<H9hQV*l@r zWF%&nR5{oc&p}#veD))v>prxc_ZECKNiWA&jbdwJgdL2F2;q$TMK>)qoAlDomG%jj zrL0!587y{4D%>&GDUAxd+gQ1|4ZrUi3le_#-{FAxCE2HL***U?jj%5}PhQ z`So&V+ruh5r2Od08@I4SHa&hz-0sfI2bukdhA#E&4f552XOzX4BYI!r25#rvIz{D0 zyRN*(xJa}qbhsWIjdfjDUNyI=d~)7_uex>>a<+*j9PaBR#+b5w{?3+|Hzsqr{l4ta z`XVaXHv{cp2h}aRZGU}D(|4Cj{`z?Tniz`@D>bD+tUz%mvEkyuBwp6fL!=(msYUWW zC09SaSSeYbYzExSpli8JVrA}v*w1sP=ING4sP|?vjVH;S5K7epK}vNF>jaC*-J5j* zti}{`IqP)0P4oxrL)m_q=90tyisT3u?)N}rx!v-J{`#v+pL6DcsfKc)Y&p(<89`gP zT~;9Lwkdg7Q45_o$c-CSoc5{dQCTa?+IdQ@+~JwR9*7fboYZkNd@Hl`oA+9b!3mYZ zYi{v*#cv86fH|LU=Q=fJe-?9)TQqa7#hiFqFeeUO#hf^VZgzut+*Qnpm$R7JxxoAF z=vmOTS@y1UoG*tN5xsATemS+*DL%~I$*5tq+p_E4!MCg4LRBvIq-sDb6S%iT6>DqZB^J`V z9C1C#m%a>Z28Ie9^Z_2TvBDc+MxA_+O zHo@PnTH;A7L$yXFCz)~Y&hZ0?>~+UZ^hsa$;CIq62jXEO~NtRbZKRT_c96nZ-bGY$3zTS=Vqj3 z?;^a7^cVbl)fmwS`>AZoR>E>}Hf6qPr$vV~hP4wSSImq?($d_@6SRgCxA=!4ZY424 z=>ID)<&xZjW8aJK?1b|vmkcNS189`t44dqo$!YLDLYZy15z36YnUIrxhe7D(eIvcO z94G*srp(X%zM;PM3qojlQ+fxiu@mdk5Hd;euv>9iNiP=}EjUyaL_yVC&m0208 zaA9exg&~vEgw8f+EB|7EcxRi7Sdjrn*T!g9cXO-iK4X{xB^q1520H$sH6laVr55|# z{TihbA;DeK**(e^RxvAXd828$;pl2fx8;yu3N{z@%Imtii;!?;Oy+uTk+EZ+j}0}P zQcGy(9575{PH+DkW;pWcxvI#gvj54xWR~Xi_=h#A365x&)1Q$2Ojjy8cIB9Im=iwT zcQYp*b@*!R^bZ~J)u*D%9SvR1Cw3+u!k1Y>p&dU^a=WyACihcmNwDE#yQ`&cXL1R9 z*!27<^xy;bqp=lIN2eXWW#z;%p%7n;!m>ts&eH-evAdX%X_1?L3zo^V(;|*G%HyL zu8F{ygjkPUZb95;+x7S_RXJCf6$sLuc1QZcw#=}d{N2?CoOS#S0jG-3w%f4^t-?sij^pb^pBhuCHES$G!EGp zz>`(h(1^;R^UWO}Iy(J! zc}S;k)9L?@q>po{l3S}(3EOu6R6Ib{ymQ@y5jFmYPw%Zz)!(}5m48&>_hvm8Ruw<~ z!1$didu;88rK;rg8~>M2-MXjl?=5A1$N784*SQB#zMJ;#HJI?WY))epE(V}K^rdE= zc~4k8bGvw`fw&OJ=P7wQ(md=duf6u#&+M-M@{8Or*`GY(U$Vvi?dyMk!@c(T@Bie5 z2K!g*?)V>W`=dAi@$on94}S34fArh$eKR#HYM=O*4|;xXAOCM3+g|&vNB6!q$o}Vd z%jut^y8_2=w|~Cz=9Qn=KmFi4kN=~6X!n17K5YNw+ndh)pZ5Nac&fbzlC^?Em`7=5K7bpMTl!zSaKzlkKnXw*SkOZ~XYT z(XPugw0`^QWo4PQ2bT|K#^z;C7F8j0j@HbCA>+1b8Dk%>KaJkSSx2bQP;Dj9i*tIn z$U*aS0hB!FH227S%CYV#H6&&!L^$Ag@2bDq`YP7;lLMNrhrN{B>eJk62rLin_y?mC zjqq;#2V-|j9U66>QKR)M5rwwf_fnhVUgiM%%|sNfb5l1Y-)p0%-mH&)u4lnRv)dQU zpP%achOjSZj`p!(t+JET+6Yi_&frO(u*%z?-D2QB34`79oAh%eD>SS5~AkG_7e#3|2ljzh6ijbA<( zU%T;Oh38uQB{`=arAA(cPEvN?FB!9BXY5*z4eQi~*AE07r#3uxKxp?oYMRsw1g(I> zdy`(P`n_Y+4BN(5cob(#wyj(6zO?t6va(i{vK^VS&N1pl|FTsMi&?b@aEg+jr%>;g|l%^jFK8R%Y*@m0aB`t;8DXzjn3rX=a{+ zpySOoFK!~{i~hDynNI3+>Q8O|8Mu%lij6_qGB1OZh@Kju9nk(>G zu7pi>Y_*pDMPpWQmg$0{BB{lFW#^aI(i+za8@Zc7vt@0m>+MJOtbzL(=*2-ZS}Gn! zoG<-PF|w+P3cUj}djfhty#M^S-UGFQD`BdLYbBSHZ$fLQb!lBO`f~Ljy)SeyB*_V+* zUa_V3z-H10BQt3Cmw!)Ntl@gxcz-Bgex8>e7tNK^N%@~W_GRf! z{!4|2TCR$Fxa)qGoT8b7zPsO?VtBsWDYwe)-Exwap`ko~`mW-<74z=zGto3h4V>JR zygS<1DDeT&*j+7mUmJ7XH6?m4NjEkuUb^%lBR;!r?%cM8%jX%Bmpt4)d-39VdP^{v zoVR%1{q4rwc@MWQTryieCO76TY$IuD+t-ZwOWO=xU1*d{d>~>7jof>dwmleWn4R%4 z9HS*oehxm;=2>y|SyVTB$*6W?X=>gQ<6%u`-rTF`Z=qnYdGWm256{cy8ndtFmKjTy zwv#Y_;o^BxGC#}r!X*!6crx0T8l>kwAni-FEqy@9XWr({Zl5i01=%{8cHK|0#q-)V zHqWGmOBO!7U>>us8kXf@;gW~vwIPay4?k#-%wF8m)YpU@aaWewfcr_41m!Szkd7$X z{(!%|bk0+N$~jAF?=F~=OT@c@?Z7j@X5dj^4X^^h$P8%(W&m{R zkVybohp-Vb1P5z~2^0c(fQP}*16%;0k#`C>1{?+s0=s~1z|+7Jz$O4%dCfVy62dp85^ zz+zwy&s53B^{1K=M7Pab&jybr*OX9w^+uoZY5SOqKx;LFnl&=wCe_L#s3z|A0ozkwHl zcYvn>XbemPcLTKmbp}$$-3dGi&{jTWQSKrJOgBK?0Xum45CcL$ z0D$HIKPq(@I0@_no&}Zw(*fwXh69wD2Hh{8BMy%_?*My&CjjW@tN_5DLz{ByfodQh zpnr0l=pj5gj{>g(@a;qUt+0DM~TIbkv2g9bd* z)3&})3>u!gNN+8W*fAcOD%0N%pzF!nNV0f2|Gr-65XW57}1Ft8n< zJ!7HCf8kJL;cILQ0AFLF&;Qj?p{IdO0JuZ&RZ3ndavtLX$^iOo%yM8I0KPHsH|78U ztufFX1Md`5Ww`)6m2KgBu_l1>w}H1}53mz>9$3M)%1U53;35A_0J^t<|F#9xh3B$E zz+PYnK%KIupkV@j`04>J0~c5Y!pG=o0Q`=wW-6gh334m(0&eo(2KE8qxV4*U6neoz zAP9^DXnQaYv;fnAxxivz6(IF!&!{E9CSU`w2IwGfBlw_w>!ZLT035ek0D5t28IZ>^ z{~e`9f)6KM8Iyp=mAd6VfVP^1<`&>p{%eDe@EPDq09+<@Oamwc$TLFVx(vJz90QO~ z(LrDjumgA&NCB81?;Z5**4 z*a*AuEV4oyt4jn+$P= z1E?A4SaDEGk;U_QL1`&J%FE=RXJ{mORg7`*T&<-h*G$I+C67yCY)M@GU{jE;Wl4uG z6j~LQdNsW$2)*;L>~^&9Wf~Yz!a+NaxHE&iRdb7p2Mj)0IIUTD#Jq&L@va@%ilf!cX~DSY%whhETk^ F`2+TiVs8Kd literal 0 HcmV?d00001 diff --git a/Untitled b/Untitled new file mode 100644 index 0000000000000000000000000000000000000000..70e1db3d60a660b77dbeb04ca8fecb62397d78b8 GIT binary patch literal 48 jcmZQzVE)Vi0gO-@L@@)=OAu}R2T0!kc*n04Ec^)oa=izA literal 0 HcmV?d00001 diff --git a/advert b/advert new file mode 100644 index 0000000000000000000000000000000000000000..d28705463cce5fe5a823b0d990a421398c62c2c3 GIT binary patch literal 23180 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 bZc3+9L6-P##@YY>U%cPI{)hcXQ-S{jfB{Gi literal 0 HcmV?d00001 diff --git a/advert.iff b/advert.iff new file mode 100644 index 0000000000000000000000000000000000000000..4d0fceae69cb48dffc67a8cac4bbb8dc2da3df52 GIT binary patch literal 23738 zcmeI44SW>U`R||ENp|wG$%Y0bF-s;E6|E?XPyzzkMX9eKY1L}0HA|yFHA0kLjSw<} zSn*$p(27b0Nm^^QzSK}!rGjK2Hn9~+yw$%^PzJ$-Dv*U>c9z|pbARW|<^|=}zxMWX z(H4?rcjn1C-{*Ip^PDs1oN(cc?@TAU?)R5WJAeB5(=VP%M1!TEgnx(>;{T2u$v#Tx7o}4kNKYvPkMzA2~7g)bplH&i(%2oNu2p z_MB;Bzdw4&Rinq8bxG;`oUHFnnXo|3x_Zpz3yOv<7@a+D^ps0)KIhttr&XUjV)6MW zf9K*k(<&}|P)%DrX3B#jPg!)y`N5lRteSH5LnR|uU7B&%+^;YG_SLH=O)kH6_H$x5h z=P&(4Z_}1+`sssPSFL<=`8~Tf>h~##_r2eE`ZPL7EW_!Xic6ngmI`po7TD5e8Bqs?($%9R@Os zM<^AZ$_)2nl*()(ISoFi9pz=IjG3rH)W+=I+8C25lcBaGQy?sjms*~$vgvD+^d&*$ zA^_rb+fY60^pL1?5Zm2GPc+txI=_`5*K!MhshjeFtqTh;vqMxC=GfU9s&Z)zgsJ5R zDcdrHh0K`FTLc!6FhVJ6m?ReCoB_rx3Ev>VTTTFI@v3{7*$3LC(<{<_LpbPYmS(`! z6**Nf(^8%EAtBg3_d&L}RIG3J31w`XDNI z7s7h!AM~+CyQr#>XgvAXtpJV66AfIq=YWQ_0Ju_^lri=)&9mG3)R8sDebPAauephv z3rH$UaId+-$*^Kc;smV09LIHNY%{Nk0fLEOfq8(%dyxy}nL1_AU(e^>v}%d*=sk?J z;zQk7o*9jewT-7|JqQ^h5~IRp#h3K(ySx6!ir!)IFC2nmZO}>^2%6h0WKP z+S-Qt!qO2=#+7!cF*wIbMNFgz%mA-YNIH;ONia8{`8`0#3DztPFhc2mXwP28E~4P6 z@Lax0`}lIAbC+0G7$lcO^pi9JJw$HN;(w;eOJO5*>zMx;%@DH|s>M&a&;75|va+ zKgXvPmy`Q8L0zbPK(vD7(clFCoL1o$BX3-0XI_m5zO_J_kOKDjGT2ammoxNEvz8?uA zwIe+HR7~7HivA^NQ%WgiJJ5>vwb00!G~uXCxvp4c1w^w$78 zBScc|T*{u7Bbqh)_C`BES}klcUz@k_VWLg%dG?~%ua76WQV6XKeWcNzspoTM5jWe4FfLBC(fY}9R_zcaFa0fv5g|yO9 zXUHAK`5d~iJ97JQLw-kmn3+n23b!n8L z{ecrbQeXHNU7G)5#`;pCb5@coje0WP(kq}C;7a%y*gg;gf7EnqW5HLBvHHmZBG2IF*SHW#~iggJ4% zseHp$KFlN9T}FjJuNT$bxtXNr^Z=qdw{T-Hwt@`f za3_1CjU@YCHKsD5i{_)S+n+N6zpZrdjVrT#L_Zxt`7K4Fu=N{=mg?$u4t1_RKu5bv?kzkMxtL z4J1zqkQ6VH1bH%Pf0`UQ&&#aik;`Mz4pFn52TO-n_r6h?^>&r~`};|H_yHR8EESpfQ>lE=yUkcCl_&;m}B14_9HWixa3 zWtaza!EoCK-!YQepn(bMIR!$;6Z)C;Z>qEm)$^gg)wm%sQ%YMN@*<3 zSYA(W9VKb~Qp&uw$Z@aRPc%)R+{4jNqSV>-sfX)n+kRx81vGTI$=xGN;UtB3P}L-t zYRDj$k0DnTCV(`IlU!vuk|gJYyw*F&+oWc5@`?I_(JUoz<74@r7qE4daq|HJwHVA0R4MP3@+a<-IQ!;jNEsGB>8L@SFOutzTj}&0 z^MsMy4WkT7f1k5oNAex@SqBW-kDyxc5~&-}(7ewev{4ct?{j%>_ZnPuK2wd?khcX* z(+gjSu;%cX$}sB~_~iHrL(ebKOA1N-EewA$mr`e4bKbKCRbN1^^(%~9Uc6XT>3%OH zmJ2RNl?R_8`Fs0@zNyom%_MhB*T=oP!hw&#D1)*N!>H^!v`ItOM>@>~e03vvN9^N9 zl7w)PQ}BQbBc9g29N4&%SLyO@52CHJ1$#ZoKiD@6>^Dy)`G=`=VTZ#mMS|QxhrN`uXM%lP4>Dkl z9{84EcVWy&K@R%899=xIa`Zrvy2L?OIeIqI64yPBP=W3OU17{*y$?O0DjaPlD6gOV zy0OpdG!o=j$ISLc4teG-L4F}ueS;u>gXrd$NSbpR&3#IcyHbyEn=C%rD!UlqD>6SM z4(>W~eLwioesCS&rg8{)7QO=L5dz!=aPahV#{*0!jd$5&xYfdS2sVZCdAvNqCGQ1S zu6}jqjzw<>$uoC_0OjVA?{~o865y%(PczQ`=^9~^dW73JiaX$c2l!!fg-i77|LjDI zd=wd`KUPd3I4)UgMnLWrT<{zh{G$PatA(Rs=%s?E0sb3+-+bNJ16*-E<&Jl5ZK?hP zhe`uDpDekjIpoq+`-WkP3(4Kvju^lA&}o)WkZ)X(>5$9e=cwlKW}Du{DPBV^Y#8L0zlgU7kTpVOQ; zPr}0iz<1**zjrWIc^CB_vIP7+6_|4SIJ^(CKcr1O`tCu&l>yo1t-6qX+Xj+;@Fa)N z1pLm@DOWXJ-VZ<7>7&}k7%kd3{D|AJ63|t@`Gx`T*&@F<@K7G`Jl0iXAUwwY#1MdaAvVgKaobgL`LtGfihmprIz92^qghv_)t42+q@&?j+A3Ql>1LeK8 z##p3Zc@BTxjjIIwawy;9OTuR?n-eI1`G5Dp4~m-Zso;8T15uWM&-^2K+wc61d8}!fxn}&c;R8^9 zAiPNvw^-><>zJwEAi~B`enR!6K+9b}>VrS&oFeyh9ySfV$^%}hKl#lYr7?Z*>D}h1 z;m>Lt@?lIyWB0nOv{`$VKf%2o; z#(ebg;(mDfNYU}&r9&2OBs}H@Y-t~S(Xbax@(nTzh9}{Be8m-jFW1j) zAF|^Kd7hr&f@L6XG8;|z%aGoo_c`=4igM5St7`!LO`)uqO@kf!OawjXi^C^>+#|)E zqQt!M$Z-N^h9SkGBz!F5nI7Mt#@8$rtNIK@IbmOv1^(r2o)T z+wPDLIF-7=pW0{?HUsSg-f7Jwe{oLMX{+RhBpUV}7U~F+#&eKoC*G?&}}2ve3R?{5tVN! zobg?`BFX;?!Jp0f_ab_-Odpa?>LwbOQ}E5T^11>12Wc4RF9ZLWhRj#6o^d;=W`69$ zf&7(%KRFpr&M3W@GKP=k=g>~3i_ic>w?0H^GhA%1^-~Ke{sFw?*YGuwUO<# z5`XS+RZ;Ho9MC@D03zlS4ZstUEiqsvJ3#h*aA1s?!yDk$NkkuR7=4FM!$#1{4c=g( zw9`RLy#)@e3Ho>g{5nK*ZK-dK=$rF`9`+l_kMa=2!hunIP2pyg{yngZ~@gKd%pdMBta0sh3|Tt2~2jMW7vdmv1a5^1$5b%yB$zk_yQ4R^q^O(*L| zzo(QPlyQSj(^t@<5S>Z%N~vSD*6ej)+SNNr#=ck#1DQ#ibywlN6sQ+1(C>hsJAhFc zUD|8F0V$9}+AB^`2>X5q40LErh_EN(I6%zmYXNCRfU?m7OLRHqwkw!D#Poj4lJ=EI zH<^-Y(ZfJPY?o}O)LP1_(4|-Ie6%fnvyn9}NUK9qBIG(Hja~^0qfv-5JlP_EHqGuJ z_W~m$rW4ZHW{fF_ZGo@uLX=^?0R1cRg0~zWq2%E6D6`4Kmo71kL4P@}C9so?hexcc z_0pp{-haVm1dL%%o4Glra<}GJ6XmA+QjKlhB##P7TTP1O39j$Xpv+pz!!q`hW1Bi- z;|yiYi&AmB^rw1hcs)JYAdF@-P|9tjM0Bb8taz2%GE(9OwO&KEAx-vEnJJ7K4a^+` zJOWwg@OT_Y*G2FY;tk;WhE%#Crf;Ug*(DRZmgz{ECZfMjc%Zkgnf1PtFlW z53iy02&s`u_mPSA@|_>+soHYdl_zOI>De3{*APbYOdj-JOP4H!Gw-#)0XjqD6eZE) z%xwnnKrXlq&W+`I&W)oSeUh6aSkKM+w}##S!IhKlx=XnTYVKo|mVB9?I!)Pb7qy-J zC$>LJKezLcZ_~-uioJ{6%SNRf@VoYv(vXl;1qy*+-<60VWYy}wz=NmUIWQRyTqX~c7>%lHZY}LZivl0Yae%I0lV#Q zq5pOV9~d0C)!OCNl@+DIePQ=~JLw}+nS6t&?LuGL{lh9pTi)=_VcBWXMv`afY=tLMfvzl~I-!7jqKK0KsIZ~Ua?n#X z_JIvoCc(91z$agqGvh+* zr<>XOY3evL7d^a5Ui_Hpd4C$sGTfv7%1csDHFBsbeCHGlgz2}cuWiQhn7Gy&bWslZ zac(l38x1-w(8bn3(23M4Zk0t4x;n5ciS4s}u9F$_*x07};d(!KjSY51gjbQKofuuo< zy=rjmJAy7=A&k-?@0KE<+IkA?(}?OAkU4gmjt7uF>?p^^*%%jiAoy{()j2utKy+_6 zvZiucViy{1cWFwQ;r;qZ^mH#>D(drIlcTh}?!yq*F70HAIYebeDYJCfseVc`BuaCP zp6IfoZQa=JJ45Ow7mTK|*zfE!%!0ABkA_qO9sGl&R1Q#~lfz={_#JF5k_s8d0kTz;Ij7FBT8z?=+F-qw* z^2Uqmt`$a%8=bm>ZXnq;2_<>Kf*{F49Lq+?UrH-zDjJ#GA$U#+h>b4Eu@TD-Hcyki zG#ndc^kYjBGSc9%b}hOzF%8+D0%%`y$1oLjWwP>Hj3Z!m2SFnOSu5g~If7&aa4OKm z5GoLOZgEiiGM;E9UDYWnsz_ij21PMUM)^z~!#^*|jR}vB2n(RR6_fX)CJ<7R1_-jf zMEe0F>%0Vp5_+9QEF9w3F*kJga4@6;h-{-mh>k7&q&Yvih@-hM=Y0&dq7(!;<_nU1 zH*f9d5ZJw^OA{0&8B7&1A{}KG!4jq8q6b@qxFF+3rE?K`bd`tt3q&)!fzSk$4Ny%(O9N_-{ZonG{=SV#j^A;`)k)Z5ji z#TeQ4poqj0i7wqXZM#eAVwz@hgMYpR_dl+}0cD=Niq-SxQFU|kd(xq3?E_HMHZ17@ zZC=Guj*(rWHKLPNcXl%A5NnO-*qq*DOBnfT{G9WjF5ok2=+m>JV0JmVo13>wi`UgI zN$RI5I%6gCDUJ+h z$C2Y|>}m;LiQ1?hjbZ@%H?h(bpAx|dhlRRr=XPNcsEY+KC%_wfS7J*df%z6beYvg5 z6`y;Yzo~p7+0D7zjAjfJ9>XAiv!uUWi}3^V3M_C2x|zcA_H;9yAqQKX$ii!_Y8u}u zg%`0ct$Z5xrMJp1*OVS=DxZhMX;@Y>Mxs3U2qnU|Mi3!AMwX9v zBF}G%mvAMlXktri0`o^G@#VJimpd^ro6jP6Oe`t)8*V2i7B8-KwhfE4!2QZZYfodh zZeke0q`Ilwwlx~BNr?kn;_O|KC%)`fCFCAsHeqbSFeP$fIdUQSc`jTWkJdUq2I@%8 z56`R{t%op-X*C$g8nqJ2!(iNO*!Vf8cYJxRKJO^k6O~9Zg;$z z(U!VEKtGBnlP~4nPKI+-7%y5`A}+^byU;=O2y1LKghwaj-J$$>f%kP}|7CJP!F$ck zc@$Zz^^~DPM+*=YH_=~ysnEeAH||k`^3CyTeff|aVW7&mJ3dg+j;btb?Y`e zwDF`XQMj_Y?qM6Qd=QPY6Z7ULS_O|Ic}O!(tK@asos1{m)K66;^oMt||9WsI{)n={P6g-7k{zKJU*QrF=Eu zFSal}?~FwJilMIZuA0|nbTav8|4+O&XY~=Hf39J#1z_y$-tNDCewy6?I8KoU7M7!_n@~!!)XC6 z7K?LNPQ06;!Q~Yd5PpZ>?e|o8X3cW@y$cI)PKq~5wT9&upNe1Iw7j;rJJMo#8|&&! zr%_J4n>F+H!;^(3A%whpT3Src>Vg7?R;|%A?n+}=u0*38!hoG!R#z7muAFE$B{^hQ zV4JvLqF*N4lQQ!jx8bp!HVLphYBW>bRkunBXL}Fc+7hYE9)_J!;m8ShvqUSem}jax z3OsXkOy8TURox{&}U5i zhkK{R z+(RBWqUTY*z?4@YqQ{nF*8Er$$5koY`)P5`b!k&vrd$I7ST+*c91R??8u|0g7R7XlnNG`4GU)shun(eR{Wgx z8rp-g16wD|>}1x7bZaJNMCh*z0pA^}E}{2qqdA@=Ot5&h%o+h7>#k9$3-ET_fj=>B z&0JTjd*p(NfG;nfB_n4T&Fx9$-)%LJU+dzuXJcbGGH$1>9Yp-|MmaHV&BQ)5av^?W zt*JotQ0x>nJA{5Xf<@$7i)Pl=jjki?zu`;3p9r_UNKX2^KhsSa@#aKKj(Oy6t?n@W z>py4Ooi%JpVyzr&WO_F${Fhu{&1rdKWNDRL;PDHuSm&gLOH9lV?pOaMpX1H`a@h>a z-5yasoT}nnO)8PK6hEB&QZrOT=PUC3n*h;{GcxWEj=FmQbIw cp^}_avSDe}Ccg2KImKznTjCAKsDUoB#j- literal 0 HcmV?d00001 diff --git a/advert.iff.info b/advert.iff.info new file mode 100644 index 0000000000000000000000000000000000000000..e3fd2db2700fd7d4880962c6c986b3379f02951c GIT binary patch literal 460 zcmaDXz`)1=16B+o3@i-H42+Cy87?qERGI}SSHR84mj9*!C;`G40AvaiBU?HPGm2FG ze=ulB0E;pLX?CDMBan8G|9=3;XLscR&|7=K5)Neiz4y0B8%c~p*($jzCb;tv0xj%2Lqk(kj|6QT;f%JQjy+9gh zI>`Kb5cmK81~3;$K)C-8Km{D;g9ZLM%m6E3L(t%G0`gfJSQr?+doV==XZbXIF|5G)c9s*7O%26_064*-A%&(Hi+>?g zzoICw$SgWJfn!0@r+5Q*Ma4XnllG#TBA3K9+U9e1Uq|APDw4duAYRLgd(30lkX4n@ zlfj8DsV&u@$Erp$x?m217RzAPuj_JnfK%?enjy2gsy||#_3$REsF;2a5^_$@s995% z1H2Wau@)*F`vqKLUrfX8nx>6a!XIFZ_Us(HY+`vwC;T?f%WpOo$Mz9zVj_Q=dGp4$ zf*-C6p?xA=;0n8H+U|x+;Fnpp8+L`>cWrU%w*7n4^LO1_JK;8E=vK+JdFDE9i`U#M eIpz<=!0p(t;egh|eR41SKt6|`aLNBvr~d$^6lhrh literal 0 HcmV?d00001 diff --git a/allbulls b/allbulls new file mode 100644 index 0000000000000000000000000000000000000000..23b09ae317964a93f08cd6a1246a2e53157d83a8 GIT binary patch literal 8368 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 literal 0 HcmV?d00001 diff --git a/allbulls.info b/allbulls.info new file mode 100644 index 0000000000000000000000000000000000000000..f18f11a63db956f09574f8faa98027a2d55e187b GIT binary patch literal 460 zcmaDXz`)1=16B+o3@i-H42+DdGBq$kRGI}Sr{WC6Dh)sh5XJx?Q#Y-~iIxKiC=KfHdPD=7#x=Ky`fVhyFio zNZ?)1`at|=LxQ4y^MP<6t@>YHNe z=GTL`|Nl3Dxj+KK{eJ)|;4mL7@XuieSOFV?28R=n&(grczyPK>7!-iCJP!|J0+6=< zC*KPa|Np=K{tGsT*emvI0w TpPQ$TYe-~(tF5PxlP?1REm@{I literal 0 HcmV?d00001 diff --git a/ap.s b/ap.s new file mode 100644 index 0000000..b7653c6 --- /dev/null +++ b/ap.s @@ -0,0 +1,12621 @@ + + ;OK, add a cheat mode! + ; + ;adding chat-line... + ; + ;OK, modem stuff... + ; + ;Once 2 machines are linked, player 1 gets to choose options! + ;player 2 is ignored... + ; + ;player 1 if linked=1, 2 if linked=-1 + + ;********* + ;* GLOOM * + ;********* + ; + ;error codes + ; + ;red - allocmem failed + ;yel - freemem failed + ;orange - unknown script command + ;purp - unknown event command + ;cyn - can't open file in loadfile + ;blu - ran out of remap colours! + +ok equ 750+125 ;overkill level! + ; +cy equ 166 + +pl_eyey equ 110 +pl_firey equ 60 +pl_gutsy equ 64 + +debugser equ 0 +debugmem equ 0 +onedemo equ 0 + ; +ireload equ 5 ;initial reload val. +maxobjects equ 256 ;max objects in game +maxdoors equ 16 ;max doors opening at once +maxblood equ 128 ;max droplets of bluuurd +maxgore equ 128 ;body parts on ground! +maxrotpolys equ 32 ;max rotating thingys. + ; +focshft equ 6 +grdshft equ 8 +darkshft equ 7 ;smaller=smaller range=faster! +maxz equ 16<>1 + ; +linemod equ 40*7 + + jmp entrypoint + + rsreset + ; + ;rotpoly details... + ; +rp_next rs.l 1 +rp_prev rs.l 1 + ; +rp_speed rs.w 1 +rp_rot rs.w 1 +rp_flags rs.w 1 ;what to do? + ; +rp_cx rs.w 1 ;only for rot +rp_cz rs.w 1 +rp_first rs.l 1 ;pointer to first! +rp_num rs.w 1 + ; +rp_vx rs.w 0 +rp_lx rs.w 1 +rp_vz rs.w 0 +rp_lz rs.w 1 +rp_ox rs.w 0 +rp_na rs.w 1 +rp_oz rs.w 0 +rp_nb rs.w 1 + ; +rp_more rs.b 8*31 ;=32 max verts! + ; +rp_size rs.b 0 + + rsreset + ; + ;sfx channel info + ; +fx_status rs.w 1 +fx_priority rs.w 1 +fx_sfx rs.l 1 +fx_vol rs.w 1 +fx_offset rs.w 1 +fx_dma rs.w 1 +fx_int rs.w 1 + ; +fx_size rs.b 0 + + rsreset + ; + ;blood! + ; +bl_next rs.l 1 +bl_prev rs.l 1 +bl_x rs.l 1 +bl_y rs.l 1 +bl_z rs.l 1 +bl_xvec rs.l 1 +bl_dest rs.l 0 +bl_yvec rs.l 1 +bl_zvec rs.l 1 +bl_color rs.l 1 ;colour and! + ; +bl_size rs.b 0 + + rsreset + ; + ;a texture + ; +te_pal rs.l 1 + ; +te_size rs.b 0 + + rsreset + ; + ;an opening/closing door! + ; +do_next rs.l 1 +do_prev rs.l 1 +do_poly rs.l 1 ;door polygon +do_lx rs.w 1 +do_lz rs.w 1 +do_rx rs.w 1 +do_rz rs.w 1 +do_frac rs.w 1 +do_fracadd rs.w 1 + ; +do_size rs.b 0 + + rsreset + ; + ;wall list... + ; +wl_next rs.l 1 +wl_lsx rs.w 1 ;leftmost screen X +wl_rsx rs.w 1 ;rightmost screen X +wl_nz rs.w 1 ;near Z! +wl_fz rs.w 1 ;far Z! +wl_lx rs.w 1 +wl_lz rs.w 1 +wl_rx rs.w 1 +wl_rz rs.w 1 +wl_a rs.w 1 +wl_b rs.w 1 +wl_c rs.l 1 +wl_sc rs.w 1 +wl_open rs.w 1 ;0=door shut, $4000=open! +wl_t rs.b 8 ;textures + ; +wl_size rs.b 0 + + rsreset + ; + ;a zone... + ; +zo_done rs.w 1 +zo_lx rs.w 1 +zo_lz rs.w 1 +zo_rx rs.w 1 +zo_rz rs.w 1 + ; +zo_a rs.w 1 +zo_b rs.w 1 +zo_na rs.w 1 +zo_nb rs.w 1 +zo_ln rs.w 1 + ; +zo_t rs.b 8 ;8 textures + ; +zo_sc rs.w 1 ;scale (how many txts on wall) +zo_open rs.w 0 ;for wall polys... +zo_ev rs.w 1 ;for events... + ; +zo_size rs.b 0 ;32! + + rsreset + ; + ;a shape to draw! + ; +sh_next rs.l 1 +sh_prev rs.l 1 +sh_x rs.w 1 +sh_y rs.w 1 +sh_z rs.w 1 +sh_shape rs.l 1 +sh_scale rs.w 0 +sh_strip rs.l 1 +sh_render rs.l 1 ;drawobjnorm or drawobjinvs + ; +sh_size rs.b 0 + + rsreset + ; + ;gore...body parts lying around! + ; +go_next rs.l 1 +go_prev rs.l 1 +go_x rs.w 1 +go_z rs.w 1 +go_shape rs.l 1 + ; +go_size rs.b 0 + + rsreset + ; + ;an object in the game (player/alien etc...) + ; +ob_next rs.l 1 +ob_prev rs.l 1 +ob_x rs.l 1 +ob_y rs.l 1 +ob_z rs.l 1 +ob_rot rs.l 1 + ; + ;start of info load by prog. +ob_info rs.b 0 + ; +ob_rotspeed rs.l 1 +ob_movspeed rs.l 1 +ob_shape rs.l 1 +ob_logic rs.l 1 +ob_render rs.l 1 +ob_hit rs.l 1 ;routine to do when damaged +ob_die rs.l 1 ;routine to do when killed +ob_eyey rs.w 1 ;eye height +ob_firey rs.w 1 ;where bullets come from +ob_gutsy rs.w 1 +ob_mega rs.w 0 +ob_othery rs.w 1 +ob_colltype rs.w 1 +ob_collwith rs.w 1 +ob_cntrl rs.w 1 +ob_damage rs.w 1 +ob_hitpoints rs.w 1 +ob_think rs.w 1 +ob_frame rs.l 1 ;anim frame +ob_framespeed rs.l 1 ;anim frame +ob_base rs.w 1 +ob_range rs.w 1 +ob_weapon rs.w 1 ;weapon meter (0...4) +ob_reload rs.b 1 ;weapon reload timer +ob_reloadcnt rs.b 1 ;counter +ob_hurtpause rs.w 1 +ob_firerate rs.w 0 +ob_punchrate rs.w 1 +ob_bouncecnt rs.w 1 ;how many times my bullets bounce! +ob_firecnt rs.w 0 +ob_something rs.w 1 +ob_scale rs.w 1 ;scale factor for drawing +ob_lastbut rs.w 1 +ob_blood rs.w 1 ;color AND for blood +ob_ypad rs.w 1 + ; +ob_oldlogic rs.l 1 +ob_oldlogic2 rs.l 1 +ob_oldhit rs.l 1 +ob_olddie rs.l 1 +ob_oldrot rs.w 1 +ob_newrot rs.w 1 +ob_yvec rs.l 1 +ob_xvec rs.l 1 +ob_zvec rs.l 1 +ob_radsq rs.l 1 ;radius squared +ob_rad rs.w 1 +ob_delay rs.w 1 +ob_delay2 rs.w 0 +ob_bounce rs.w 1 +ob_hurtwait rs.w 1 + ; +ob_washit rs.l 1 ;flag for un-hit coll detect! +ob_window rs.l 1 ;pointer back to window! +ob_nxvec rs.w 0 ;normalized X vec +ob_lives rs.w 1 +ob_nzvec rs.w 0 ;nomralized z vec +ob_infra rs.w 1 +ob_thermo rs.w 1 +ob_invisible rs.w 1 +ob_hyper rs.w 1 +ob_update rs.w 1 ;update stats! +ob_mess rs.l 1 ;message +ob_messlen rs.w 1 +ob_messtimer rs.w 1 ;timer for messages +ob_palette rs.l 1 ;palette for window +ob_paltimer rs.w 1 ;timer before back to normal +ob_pixsize rs.w 1 +ob_pixsizeadd rs.w 1 +ob_telex rs.w 1 +ob_telez rs.w 1 +ob_telerot rs.w 1 +ob_chunks rs.l 1 + ; +ob_size rs.b 0 + + rsreset + ; + ;solid wall draw data + ; +vd_z rs.w 1 ;current Z +vd_pal rs.w 1 ;palette# (0...15) +vd_y rs.w 1 +vd_h rs.w 1 +vd_data rs.l 1 +vd_ystep rs.l 1 + ; +vd_size rs.b 0 + + rsreset + ; + ;palette file... + ; +pa_numcols rs.w 1 ;how many colours +pa_cols rs.w 256 ;the colours! + + rsreset + ; + ;anim file... + ; +an_rotshft rs.w 1 +an_frames rs.w 1 +an_maxw rs.w 1 +an_maxh rs.w 1 +an_pal rs.l 1 + ; +an_size rs.b 0 + + rsreset + ; + ;window + ; +wi_slice rs.l 1 ;slice window appears in! +wi_nslice rs.l 1 ;next slice to disp. +wi_x rs 1 +wi_y rs 1 +wi_w rs 1 ;how many chixels across +wi_h rs 1 ;how many down +wi_pw rs 1 ;width of 1 chixel +wi_ph rs 1 ;hite of 1 chixel + ; +wi_bw rs 1 ;bitmap width +wi_bh rs 1 ;bitmap height + ; +wi_bmapmem rs.l 1 +wi_copmem rs.l 1 +wi_bmap rs.l 1 +wi_cop rs.l 1 +wi_cop1 rs.l 1 +wi_cop2 rs.l 1 +wi_copmod rs.w 1 + ; +wi_strip rs.l 1 +wi_iff rs.l 1 ;show iff instead! +wi_pal rs.l 1 ;palette for IFF! + ; +wi_size rs.b 0 + +key macro + btst #\1&7,\1>>3(a0) + endm + +keya1 macro + btst #\1&7,\1>>3(a1) + endm + +qkey macro + move.l rawtable(pc),a0 + key \1 + endm + +freemem macro + ; + ifne debugmem + lea .fmem\@,a0 + jsr freemem_ + bra .fmemskip\@ +.fmem\@ dc.b '\1',0 + even +.fmemskip\@ ; + elseif + jsr freemem_ + endc + ; + endm + +allocmem macro + ; + ifne debugmem + ; + lea .amem\@,a0 + jsr allocmem_ + bra .amemskip\@ +.amem\@ dc.b '\1',10,0 + even +.amemskip\@ ; + elseif + ; + jsr allocmem_ + ; + endc + ; + endm + +allocmem2 macro + ; + ifne debugmem + ; + lea .amem\@,a0 + jsr allocmem2_ + bra .amemskip\@ +.amem\@ dc.b '\1',10,0 + even +.amemskip\@ ; + elseif + ; + jsr allocmem2_ + ; + endc + ; + endm + +alloclist macro ;alloclist listname,maxitems,itemsize + ; + move.l \2,d0 + move.l \3,d1 + lea \1(pc),a2 + jsr k_alloclist + bra.s alskip\@ + ; +\1 dc.l 0 ;0 +\1_last dc.l 0 ;4 + dc.l 0 ;8 +\1_free dc.l 0 ;12 +alskip\@ ; + endm + +k_alloclist ;a2=address of 'first' pointer + ;d0=max items, d1=item size + ; + move.l a2,8(a2) ;clear out used list + lea 4(a2),a0 + clr.l (a0) + move.l a0,(a2) + movem.l d0-d1,-(a7) + mulu d1,d0 + move.l #$10001,d1 + allocmem alloclist + move.l d0,a0 + lea 12(a2),a2 + movem.l (a7)+,d0-d1 + subq #1,d0 +.loop move.l a0,(a2) + move.l a0,a2 + add d1,a0 + dbf d0,.loop + rts + +addnext macro + ; + ;addnext 'listname' + ;add after a5 + ;return eq if none available else a0 + ; + move.l \1_free,d0 + beq.s .anskip\@ + move.l d0,a0 + move.l (a0),\1_free + move.l (a5),a1 + move.l a1,(a0) + move.l a0,4(a1) + move.l a0,(a5) + move.l a5,4(a0) +.anskip\@ ; + endm + +addfirst macro + ; + ;addfirst 'listname' + ;return eq if none available else a0 + ; + move.l \1_free,d0 + beq.s .afskip\@ + move.l d0,a0 + move.l (a0),\1_free + move.l \1,a1 ;current first + move.l a1,(a0) + move.l a0,4(a1) + move.l a0,\1 + move.l #\1,4(a0) +.afskip\@ ; + endm + +addlast macro + ; + ;addlast 'listname' + ;return eq in none available else a0 + ; + move.l \1_free,d0 + beq.s .alskip\@ + move.l d0,a0 + move.l (a0),\1_free + ; + move.l \1_last+4,a1 ;current last + move.l a0,(a1) + move.l a1,4(a0) + move.l a0,\1_last+4 + move.l #\1_last,(a0) +.alskip\@ ; + endm + +killitem macro + ; + ;killitem listname + ;a0=item to kill, return a0=previous item. + ; + move.l (a0),a1 ;next of me! + move.l 4(a0),4(a1) + move.l 4(a0),a1 ;prev of me + move.l (a0),(a1) + move.l \1_free,(a0) + move.l a0,\1_free + move.l a1,a0 + endm + +clearlist macro + ; + ;clearlist listname + ; +.clloop\@ move.l \1,a0 + tst.l (a0) + beq .cldone\@ + killitem \1 + bra .clloop\@ +.cldone\@ ; + endm + +zerolist macro listname,size of item + ; + ;fill all list items with 0! + ; + clearlist \1 +.zlloop\@ addlast \1 + beq .zlskip\@ + lea 8(a0),a1 + moveq #0,d0 + move #(\2-8)/2-1,d1 +.zlloop2\@ move d0,(a1)+ + dbf d1,.zlloop2\@ + bra .zlloop\@ +.zlskip\@ clearlist \1 + ; + endm + +bwait macro + ; +.bwait\@ btst #6,$dff002 + beq.s .bwait2\@ + bra.s .bwait\@ +.bwait2\@ ; + endm + +printlong macro + move.l \1,-(a7) + jsr printlong_ + endm + +check macro + list +check set *-\1 + nolist + endm + +push macro + movem.l d2-d7/a2-a6,-(a7) + endm + +pull macro + movem.l (a7)+,d2-d7/a2-a6 + endm + +col macro + move #0,$dff106 + move \1,$dff180 + endm + +warn macro + move d0,-(a7) + move #-1,d0 +.wloop\@ col \1 + dbf d0,.wloop\@ + move (a7)+,d0 + endm + +tempfile ds.b 64 + +wbmess dc.l 0 ;workbench message! + +entrypoint ; + clr.l map_test + move.l 4.w,a6 + move.l 276(a6),a5 ;task + tst.l $ac(a5) ;cli? + bne.s cli + ; + lea $5c(a5),a0 + jsr -384(a6) ;waitport + lea $5c(a5),a0 + jsr -372(a6) ;get message + move.l d0,wbmess + bra wb +cli ; + cmp.b #'@',(a0)+ + bne.s wb + lea tempfile,a1 + move.l a1,map_test +.loop move.b (a0)+,(a1) + beq.s wb + cmp.b #10,(a1)+ + bne.s .loop + clr.b -(a1) +wb ; + lea dosname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,dosbase + ; + move.l d0,a6 + jsr -60(a6) + move.l d0,outhand + ; + move.l wbmess(pc),d0 + beq.s .nocd + move.l d0,a0 + move.l $24(a0),a0 + move.l (a0),d1 + move.l dosbase,a6 + jsr -126(a6) +.nocd ; + jsr initmain + bsr bigfont + ; +.intro move.l medat(pc),a1 + move.l titlemed(pc),a0 + jsr 8(a1) ;start title music! + ; +.intro2 jsr dointro ;returns gametype + ; + cmp #3,gametype + bcs.s .play + move.l medat(pc),a1 + jsr 12(a1) + bra.s exittoos +.play ; + bsr initnewgame + tst gametype + bmi .intro2 + ; + bsr smallfont + tst twowins + beq.s .n2 + bsr swaphflags +.n2 bsr execscript_med +.wmf tst fadevol + bne.s .wmf + tst twowins + beq.s .n22 + bsr swaphflags +.n22 bsr bigfont + bra .intro + ; +exittoos bsr freeobjlist2 + move #$4000,$dff09a + move.l ciaa,a0 + movem.l rawstuff,d0-d1 + movem.l d0-d1,$64(a0) + move #$c000,$dff09a + jsr permit + jsr finitdisplay + jsr finitvbint + jsr finitsfx + jsr finitser + jsr freememlist + jsr undir + ; + move.l wbmess(pc),d0 + beq.s .bye + ; + move.l 4.w,a6 + move.l d0,a1 + jsr -378(a6) + clr.l wbmess + ; +.bye rts + +; ************* FAST SUBS ******************** + +fastsubs + +swaphflags movem.l floorflag(pc),d0-d1 + move.l d1,floorflag + move.l d0,floorflag2 + rts + +smallfont move #6,fontw + move #8,fonth + move.l smallfont_,font + rts + +bigfont move #8,fontw + move #10,fonth + move.l bigfont_,font + rts + +encodejoy ;a0=cntrl block to encode... + ;return d0 encoded + ; + ;bit: + ;0 = joyx -1 + ;1 = joyx 1 + ;2 = joyy -1 + ;3 = joyy 1 + ;4 = joyb true + ;5 = joys true + ; + moveq #0,d0 + ; + tst (a0) + beq.s .skipx + bpl.s .x1 + bset #0,d0 + bra.s .skipx +.x1 bset #1,d0 +.skipx tst 2(a0) + beq.s .skipy + bpl.s .y1 + bset #2,d0 + bra.s .skipy +.y1 bset #3,d0 +.skipy tst 4(a0) + beq.s .skipb + bset #4,d0 +.skipb tst 6(a0) + beq.s .skipf + bset #5,d0 +.skipf ; + rts + +decodejoy ; + ;d0.b = encoded byte... + ;a0 = block to fill + ; + ;0 = joyx -1 + ;1 = joyx 1 + ;2 = joyy -1 + ;3 = joyy 1 + ;4 = joyb true + ;5 = joys true + ; + clr (a0) + move d0,d1 + and #3,d1 + beq.s .skipx + cmp #1,d1 + bne.s .x1 + move #-1,(a0) + bra.s .skipx +.x1 move #1,(a0) +.skipx clr 2(a0) + move d0,d1 + and #12,d1 + beq.s .skipy + cmp #4,d1 + bne.s .y1 + move #-1,2(a0) + bra.s .skipy +.y1 move #1,2(a0) +.skipy btst #4,d0 + sne d1 + ext d1 + move d1,4(a0) + btst #5,d0 + sne d1 + ext d1 + move d1,6(a0) + rts + +sfxs ; +sfx0 ds.b fx_size +sfx1 ds.b fx_size +sfx2 ds.b fx_size +sfx3 ds.b fx_size + +sfxintserver0 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx0 + dc.l sfxint + +sfxintserver1 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx1 + dc.l sfxint + +sfxintserver2 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx2 + dc.l sfxint + +sfxintserver3 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx3 + dc.l sfxint + +initsfx push + move.l 4.w,a6 + ; + moveq #7,d0 + lea sfxintserver0,a1 + jsr -162(a6) ;setintvector + ; + moveq #8,d0 + lea sfxintserver1,a1 + jsr -162(a6) + ; + moveq #9,d0 + lea sfxintserver2,a1 + jsr -162(a6) + ; + moveq #10,d0 + lea sfxintserver3,a1 + jsr -162(a6) + ; + lea sfxs(pc),a1 + move #$80,d0 + moveq #1,d1 + moveq #0,d2 + moveq #3,d3 +.loop bsr .init + lea fx_size(a1),a1 + dbf d3,.loop + ; + pull + rts + ; +.init clr fx_status(a1) + move d0,fx_int(a1) + move d1,fx_dma(a1) + move d2,fx_offset(a1) + add d0,d0 + add d1,d1 + add #16,d2 + rts + +finitsfx push + move.l 4.w,a6 + ; + moveq #7,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #8,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #9,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #10,d0 + sub.l a1,a1 + jsr -162(a6) + ; + pull + rts + +waitquiet bsr vwait + lea sfxs(pc),a0 + moveq #3,d0 +.loop tst fx_status(a0) + bne.s waitquiet + lea fx_size(a0),a0 + dbf d0,.loop + rts + +playsfx ;sfx file in a0, vol in d0, priority in d1 + ; + move #$4000,$dff09a ;snd/vb ints off + ; + lea sfxs(pc),a1 + moveq #3,d2 +.loop tst fx_status(a1) + beq.s makesfx + lea fx_size(a1),a1 + dbf d2,.loop + ; + ;OK, none free...check priorities + ; + lea sfxs(pc),a1 + moveq #3,d2 +.loop2 cmp fx_priority(a1),d1 + bgt.s queuesfx + lea fx_size(a1),a1 + dbf d2,.loop2 + ; + ;no-can-do! + ; + move #$c000,$dff09a + rts + ; +queuesfx ;OK, turn off other and play US! + ; + move #1,fx_status(a1) + move d0,fx_vol(a1) + move d1,fx_priority(a1) + move.l a0,fx_sfx(a1) ;play me next! + ; + bsr sfxoff + ; + move #$c000,$dff09a + rts + +sfxoff lea $dff0a0,a2 + add fx_offset(a1),a2 + move.l chipzero(pc),(a2) + move #1,4(a2) ;len + move #0,8(a2) ;vol + move fx_int(a1),$dff09a + move fx_dma(a1),$dff096 + rts + +makesfx ;OK, play this SFX NOW! + ; + move d1,fx_priority(a1) + move d0,fx_vol(a1) + bsr playsfxnow + move #$c000,$dff09a + rts + +playsfxnow move #-2,fx_status(a1) + ; + lea $dff0a0,a2 + add fx_offset(a1),a2 + move (a0)+,6(a2) ;period + move (a0)+,4(a2) ;len + move fx_vol(a1),8(a2) ;vol + move.l a0,(a2) ;data + ; + move fx_dma(a1),d0 ;dma bits + or #$8000,d0 + move fx_int(a1),d1 ;int bits + move d1,d2 + or #$8000,d1 + ; + move d0,$dff096 ;dma on! + move d1,$dff09a ;int en + move d2,$dff09c ;intreq clr + ; + rts + +sfxint ;interupt for sfx! + ; + tst fx_status(a1) + bge.s .skip + addq #1,fx_status(a1) + blt.s .skip + ; + move.l a2,-(a7) + bsr sfxoff + move.l (a7)+,a2 + ; +.skip move fx_int(a1),$dff09c + moveq #0,d0 + rts + +dogamemenu ; + move #$20,$dff09a + ; + st paused + move framecnt,-(a7) + move linked,-(a7) + clr linked + ; + move #$8020,$dff09a + ; + move.l player1,a5 + move.l ob_palette(a5),-(a7) + move.l #palettesw,ob_palette(a5) + move.l ob_window(a5),a2 + jsr plotwbmap + ; + tst twowins + beq .p1 + ; + move.l player2,a5 + move.l ob_palette(a5),-(a7) + move.l #palettesw,ob_palette(a5) + move.l ob_window(a5),a2 + jsr plotwbmap +.p1 ; + bsr drawall2 + ; + move.l player1,a5 + lea gamemenu,a4 + move.l ob_window(a5),a6 + jsr initmenu + ; +.loop bsr selmenu + beq .done + ; + subq #1,d0 + bne .notpsize + bsr newpsize + bra .loop + ; +.notpsize subq #1,d0 + bne .notwsize + bsr newwsize + bra .loop + ; +.notwsize subq #1,d0 + bne .notlwin + bsr largewin + bra .loop + ; +.notlwin subq #1,d0 + bne .notfloor + ; + addq #1,floorflag + cmp #2,floorflag + bne.s .fskip + move #-1,floorflag +.fskip bsr refresh + bra .loop + ; +.notfloor subq #1,d0 + bne .notroof + ; + addq #1,roofflag + cmp #2,roofflag + bne.s .rskip + move #-1,roofflag +.rskip bsr refresh + bra .loop +.notroof ; + move #1,finished + ; +.done bsr finitmenu + ; + tst twowins + beq.s .p12 + ; + move.l player2,a5 + move.l (a7)+,ob_palette(a5) + move.l ob_window(a5),a2 + jsr plotwbmap + bsr initstats + bsr showstats +.p12 ; + move.l player1,a5 + move.l (a7)+,ob_palette(a5) + move.l ob_window(a5),a2 + jsr plotwbmap + bsr initstats + bsr showstats + ; + move #$20,$dff09a + ; + move (a7)+,linked + move (a7)+,framecnt + clr paused + ; + move #$8020,$dff09a + ; + rts + +freewindows lea window1,a0 + jsr freewindow + tst twowins + beq.s .p1 + lea window2,a0 + jsr freewindow +.p1 rts + +largewin move.l player1,a5 + bsr large + tst twowins + beq refresh + move.l player2,a5 + bsr large + bra refresh + +large move.l ob_window(a5),a6 + move wi_pw(a6),d2 + ; + cmp #2,d2 + beq .lhr + ; + ;large lo-res window! + ; +.lores move #324,d0 + move #240,d1 + bra thinkwin + ; +.lhr bsr swappsize + bra.s .lores + ; + move #180,d0 + move #240,d1 + bra thinkwin + +newwsize ;window size stuff! + ; + move.l player1,a5 + bsr swapwsize + tst twowins + beq refresh + move.l player2,a5 + bsr swapwsize + bra refresh + +swapwsize ;increment window size! + ; + move.l ob_window(a5),a6 + movem wi_w(a6),d0-d1 ;w,h + move wi_pw(a6),d2 + mulu d2,d0 + mulu d2,d1 + cmp #2,d2 + beq .hr + ; + ;lo-res! + ; + cmp #318,d0 + bcs.s .inc + move #132,d0 + move d0,d1 + bra thinkwin +.inc add #24,d0 + move d0,d1 + cmp #240,d1 + bls thinkwin + move #240,d1 + bra thinkwin + ; +.hr cmp #180,d0 + bcs.s .inc2 + tst twowins + bne .min + add #18,d1 + cmp #240,d1 + bls thinkwin +.min move #132,d0 + move d0,d1 + bra thinkwin +.inc2 add #24,d0 + move d0,d1 + ; +thinkwin move #180,d3 ;max width! + cmp #2,d2 + beq .gmax + move #318,d3 +.gmax cmp d3,d0 + bls .nm + move d3,d0 +.nm ; + cmp #240,d1 + bls .n240 + move #240,d1 +.n240 tst twowins + beq.s .ggt + move #120,d1 +.ggt ; + move #160,d3 + move d0,d4 + lsr #1,d4 + sub d4,d3 ;wi_x + move d3,wi_x(a6) + ; + ext.l d0 + divu d2,d0 + move d0,wi_w(a6) + ; + tst twowins + bne.s .skip3 + ; + move #cy,d3 + move d1,d4 + lsr #1,d4 + sub d4,d3 + move d3,wi_y(a6) + ; +.skip3 ext.l d1 + divu d2,d1 + move d1,wi_h(a6) + ; + rts + +newpsize ;toggle pixel size between 2 and 3 + ; + ;copy windows to temp so we can free 'em up later + ; + move.l player1,a5 + bsr swappsize + tst twowins + beq refresh + move.l player2,a5 + bsr swappsize + ; +refresh jsr dispoff + bsr finitmenu + ; + bsr freewindows + bsr putwindow + ; + lea window1,a0 + jsr makewindow + lea window1,a0 + jsr showwindow + ; + tst twowins + beq.s .p1 + ; + lea window2,a0 + jsr makewindow + lea window2,a0 + jsr showwindow + ; +.p1 jsr calcbpos + ; + lea gamemenu,a4 + lea window1,a6 + jsr initmenu2 + ; + bsr drawall2 + jsr dispon + rts + +swappsize move.l ob_window(a5),a6 + movem wi_w(a6),d0-d1 ;w,h + move wi_pw(a6),d2 + mulu d2,d0 + mulu d2,d1 + eor #1,d2 ;2,3... + move d2,wi_pw(a6) + move d2,wi_ph(a6) + ; + bra thinkwin + +showflag dc 0 + +showit ;don't show if beam in the way! + ; + move showflag(pc),d0 + beq.s .rts + ; + move.l $dff004,d0 + lsr.l #8,d0 ;beampos + and #$1ff,d0 + ; + cmp minbpos(pc),d0 + bcs.s .show + cmp maxbpos(pc),d0 + bcs.s .rts + ; + ;cmp minbpos(pc),d0 + ;bcc.s .rts + ; +.show clr showflag + lea window1,a0 + jsr showwindowq + lea window2,a0 + jmp showwindowq + ; +.rts rts + +drawall2 bsr drawall + bsr drawall + bra vwait + +drawall ; +.wait move doneflag(pc),d0 + beq.s .wait ;wait for update + clr doneflag +.wait2 move showflag(pc),d0 + bne.s .wait2 + ; + move.l memory(pc),memat + move.l player1(pc),a5 + bsr calcscene + move.l player1(pc),a5 + bsr blitscene + move.l player1(pc),a5 + bsr drawscene + ; + move twowins(pc),d0 + beq.s .show + ; + move.l memory(pc),memat + move.l player2(pc),a5 + bsr calcscene + move.l player2(pc),a5 + bsr blitscene + move.l player2(pc),a5 + bsr drawscene + ; +.show st showflag + rts + +resetplayer st ob_update(a5) + clr ob_mega(a5) + clr ob_thermo(a5) + clr ob_infra(a5) + clr ob_invisible(a5) + clr ob_messtimer(a5) + clr ob_pixsize(a5) + clr ob_pixsizeadd(a5) + clr ob_bouncecnt(a5) + move.l #palettes,ob_palette(a5) + rts + +message ;print up a message...player in a5 + ; + move.l (a7),a0 ;return address=message! + move.l a0,ob_mess(a5) + ; + moveq #-1,d0 +.loop addq #1,d0 + tst.b (a0)+ + bne.s .loop + ; + move d0,ob_messlen(a5) + move #-127,ob_messtimer(a5) + ; + move.l a0,d0 + addq.l #1,d0 + and #$fffe,d0 + move.l d0,(a7) + rts + +pdelay dc 0 ;non zero=wait between prints + +printmess ;a5=object + ; + move.l ob_window(a5),a6 + move.l ob_mess(a5),a4 + move ob_messlen(a5),d0 + move wi_bh(a6),d6 + lsr #2,d6 ;Y + ; +printmess2 ;a6=window, a4=message, d0=length of message, d6=Y + ; + move fontw(pc),d2 + lsr #1,d2 + mulu d2,d0 + move #160,d7 + sub d0,d7 ;X + ; +.loop2 move.b (a4)+,d2 + beq .done + cmp.b #' ',d2 + beq.s .spc + cmp.b #'0',d2 + bcs.s .nnum + cmp.b #'9',d2 + bhi.s .nnum + sub.b #'0',d2 + ext d2 + bra.s .here +.nnum cmp.b #'!',d2 + bne.s .notex + moveq #36,d2 + bra.s .here +.notex cmp.b #'.',d2 + bne.s .notfs + moveq #37,d2 + bra.s .here +.notfs cmp.b #':',d2 + bne.s .notcol + moveq #38,d2 + bra.s .here +.notcol cmp.b #127,d2 + bne.s .notcurs + moveq #39,d2 + bra.s .here +.notcurs and #31,d2 + add #9,d2 +.here move.l font(pc),a0 + move.l wi_bmap(a6),a1 + move d7,d0 + move d6,d1 + bsr blit + ; + move pdelay(pc),d2 + subq #1,d2 + bmi.s .spc + ; +.pdloop bsr vwait + bsr checkany + beq.s .none + move #-1,pdelay + moveq #0,d2 +.none dbf d2,.pdloop + ; +.spc add fontw(pc),d7 + bra .loop2 +.done ; + rts + +initstats ; + ;health... + move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #2,d1 + moveq #39,d2 + bsr blit + ; + ;weapon... + move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #12,d1 + moveq #44,d2 + bra blit + +putstrip ;a0=window + ; + move.l wi_bmap(a0),a1 + move wi_bh(a0),d0 + lsr #2,d0 + mulu #7*40,d0 + add.l d0,a1 ;dest + move.l wi_strip(a0),a0 ;src + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l #$9f00000,$dff040 + move.l #-1,$dff044 + move #0,$dff064 + move #0,$dff066 + move.l a0,$dff050 + move.l a1,$dff054 + move #(7*7)<<6+20,$dff058 + rts + +loff dc 0 + +showstats ;a5=player + ; + ;ok, hitpoints... + ; + ;lagtime... + move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #22,d1 + move lagtime(pc),d2 + bsr blit + ; + move.l ob_window(a5),a0 + moveq #44,d5 + add wi_x(a0),d5 + moveq #40,d4 + moveq #0,d6 + move ob_hitpoints(a5),d7 + ; +.hploop cmp d7,d6 + bcs.s .hpskip + cmp #25,d7 + bcc.s .hpdone + moveq #41,d4 + moveq #25,d7 + bra.s .hploop + ; +.hpskip move.l font(pc),a0 + move.l ob_window(a5),a1 + move.l wi_bmap(a1),a1 + move d5,d0 + moveq #2,d1 + move d4,d2 + bsr blit + addq #2,d5 + addq #1,d6 + bra.s .hploop +.hpdone ; + ;show lives remaining... + ; + move.l ob_window(a5),a0 + move wi_bw(a0),d5 + add wi_x(a0),d5 + move ob_lives(a5),d7 + beq.s .lvdone + subq #1,d7 +.lvloop ; + move.l font(pc),a0 + move.l ob_window(a5),a1 + move.l wi_bmap(a1),a1 + subq #8,d5 + move d5,d0 + moveq #2,d1 + moveq #43,d2 + bsr blit + dbf d7,.lvloop +.lvdone ; + ;show weapons! + ; + move.l ob_window(a5),a0 + moveq #44,d5 + add wi_x(a0),d5 + moveq #49,d4 + sub ob_weapon(a5),d4 ;0...4 + moveq #1,d7 +.wploop ; + move.l font(pc),a0 + move.l ob_window(a5),a1 + move.l wi_bmap(a1),a1 + move d5,d0 + moveq #12,d1 + moveq #50,d2 + cmp.b ob_reload(a5),d7 + blt.s .nowp + move d4,d2 +.nowp bsr blit + ; + add #10,d5 + addq #1,d7 + cmp #6,d7 + bcs.s .wploop + ; + rts + +blit ;a0=shapetable to blit, a1=bitmap, d0=X, d1=Y, d2=char + ; + add.l 4(a0,d2*4),a0 + ; + mulu #280,d1 + add.l d1,a1 + move d0,d2 + asr #3,d2 + add d2,a1 ;dest! + move.l a0,a2 + add.l (a0),a2 + lea 8(a0),a3 + addq #4,a0 + and #15,d0 + ror #4,d0 + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l a2,$dff050 + move.l a3,$dff04c + move.l a1,$dff048 + move.l a1,$dff054 + ; + move d0,$dff042 + or blitmode(pc),d0 + move d0,$dff040 + move.l #$ffff0000,$dff044 + moveq #-2,d0 + move d0,$dff064 + move d0,$dff062 + moveq #38,d0 + sub (a0)+,d0 + move d0,$dff060 + move d0,$dff066 + move (a0)+,$dff058 + ; + rts + +blitmode dc $fca + +pixsize dc 0 ;pixel size...at least 2! + +pixelate ;pixel out the coplist...d0=pixelsize + ; + move d0,pixsize + move d0,d1 + ; + ;pixel out vertically, then horizontally + ; + move.l cop(pc),a0 + lea coloffs(pc),a1 + moveq #0,d2 ;x + move d1,d6 + lsr #1,d6 +.forx ; + move.l a0,a3 + lea 0(a1,d2*4),a2 + add.l (a2),a3 + ; + move d2,d5 + add d6,d5 + cmp width(pc),d5 + ble.s .xok + move width(pc),d5 +.xok sub d2,d5 + ble .done + subq #1,d5 + ; +.loop2 moveq #0,d3 + move.l a3,a4 + move.l a0,a5 + add.l (a2)+,a5 + move d1,d7 + lsr #1,d7 ;first Y add +.fory ; + move (a4),d0 ;start column! + move d3,d4 + add d7,d4 + cmp hite(pc),d4 + ble.s .yok + move hite(pc),d4 +.yok sub d3,d4 + ble .nextx + subq #1,d4 + ; +.loop move d0,(a5) + add copmod(pc),a4 + add copmod(pc),a5 + ; + dbf d4,.loop + ; +.nexty add d7,d3 + move d1,d7 + bra.s .fory + ; +.nextx dbf d5,.loop2 + ; + add d6,d2 + move d1,d6 + bra.s .forx + ; +.done rts + +makeqstrip ; + ;do a simple roof/floor strip for blitter to wack in... + ; + cmp #$100,con0poke + bne.s .doit + rts + ; +.doit move.l qstrip(pc),a0 + move.l darktable(pc),a1 + move.l palette(pc),a2 + move.l qstripbot(pc),a4 + moveq #0,d2 + ; + move floorflag(pc),d0 + bne.s .fdone + ; + move camy(pc),d0 + neg d0 + ext.l d0 + lsl.l #focshft,d0 + ; + move.b qcols+1(pc),d2 + move.l qstripbot(pc),a4 + move maxy(pc),d1 + ; +.floop subq #1,d1 + beq.s .fdone + ; + move.l d0,d3 + divs d1,d3 + cmp #maxz,d3 + bcc .fdone + ; + move 0(a1,d3*2),d3 ;darkness (0...15) + move.l 0(a2,d3*4),a3 ;pal to use + move 0(a3,d2*2),-(a4) ;colour! + ; + bra.s .floop + ; +.fdone move roofflag(pc),d0 + bne.s .rdone + ; + move #-256,d0 + sub camy(pc),d0 + ext.l d0 + lsl.l #focshft,d0 ;cam Y + ; + move.b qcols(pc),d2 + ; + move miny(pc),d1 ;SY + ; +.rloop beq.s .rdone + ; + move.l d0,d3 + divs d1,d3 + cmp #maxz,d3 + bcc .rdone + ; + move 0(a1,d3*2),d3 ;darkness (0...15) + move.l 0(a2,d3*4),a3 ;pal to use + move 0(a3,d2*2),(a0)+ ;colour! + ; + addq #1,d1 + bra.s .rloop +.rdone ; + moveq #0,d0 +.loop cmp.l a4,a0 + bcc.s .done + move.l d0,(a0)+ + bra.s .loop + ; +.done rts + +flatcam dc.l 0 +flatyadd dc 0 +flatyadd2 dc 0 + +flat ; + ;do flat above/below panel! + ; + ;d0=Y pos of flat + ;d1=Screen Y add + ;d7=first screen Y (miny or maxy-1) + ; + ;a0=panel to draw on! + ; + ext.l d0 + lsl.l #focshft,d0 + move.l d0,flatcam + ; + move d1,flatyadd + muls copmod(pc),d1 + move d1,flatyadd2 + ; + move d7,d0 + add midy(pc),d0 + mulu copmod(pc),d0 + add.l cop(pc),d0 + add.l coloffs(pc),d0 + move.l d0,a2 +.vloop ; + ;find Z on this scanline... + ; + tst d7 + beq .rts + move.l flatcam(pc),d6 + divs d7,d6 ;d6.w = Z + cmp #maxz,d6 + bcc .rts + ; + move.l darktable(pc),a5 + move 0(a5,d6*2),d5 + move.l palette(pc),a5 + move.l 0(a5,d5*4),a5 + ; + ;Find leftmost X... + ; + move minx(pc),d5 + muls d6,d5 + asr.l #focshft,d5 + ; + move maxx(pc),d4 + muls d6,d4 + asr.l #focshft,d4 + ; + ;rotate X1,Z around camera... + ; + move d5,d0 + move d6,d1 + ; + move d0,d2 + move d1,d3 + ; + muls icm1(pc),d0 + add.l d0,d0 + muls icm2(pc),d3 + add.l d3,d3 + add.l d3,d0 + ; + muls icm3(pc),d2 + add.l d2,d2 + muls icm4(pc),d1 + add.l d1,d1 + add.l d2,d1 + ; + ;d0,d1.q = rotated x1,z + ; + ;rotate X2,Z around camera... + ; + move d4,d2 + move d6,d3 + ; + muls icm1(pc),d4 + add.l d4,d4 + muls icm2(pc),d3 + add.l d3,d3 + add.l d3,d4 + ; + muls icm3(pc),d2 + add.l d2,d2 + muls icm4(pc),d6 + add.l d6,d6 + add.l d2,d6 + ; + ;d4,d6.q = rotated x2,z + ; + move width(pc),d5 + ext.l d5 + sub.l d0,d4 ;Xadd + divs.l d5,d4 + sub.l d1,d6 ;Zadd + divs.l d5,d6 + ; + ;d0,d1.q=x,z + ;d4,d6.q=xadd,zadd + ; + ;move.l d4,d2 + ;asr.l #1,d2 + ;add.l d2,d0 + ; + ;move.l d6,d2 + ;asr.l #1,d2 + ;add.l d2,d1 + ; + swap d0 + add camx(pc),d0 + swap d1 + add camz(pc),d1 + swap d4 + swap d6 + ; + move d7,-(a7) + moveq #127,d7 + moveq #0,d2 + moveq #0,d3 + ; + move.l a2,a3 + ; + move wdiv32(pc),-(a7) + ; +.hloop2 moveq #31,d5 + ; +.hloop tst (a3) ;check destination! + bne.s .skip + ; + and d7,d0 + and d7,d1 + move d0,d2 + lsl #7,d2 + add d2,d1 + add.l d4,d0 + move.b 0(a0,d1),d3 + addx d2,d0 + add.l d6,d1 + move 0(a5,d3*2),(a3) + addx d2,d1 + addq #4,a3 + dbf d5,.hloop + bra.s .hhh + ; +.skip add.l d4,d0 + addx d2,d0 + add.l d6,d1 + addx d2,d1 + addq #4,a3 + dbf d5,.hloop + ; +.hhh addq #4,a3 + subq #1,(a7) + bgt.s .hloop2 + bne.s .kl + ; + move wrem32(pc),d5 + bpl.s .hloop + ; +.kl move.l (a7)+,d7 + add flatyadd(pc),d7 + add flatyadd2(pc),a2 + bra .vloop + ; +.rts rts + +doanims move.l map_anim(pc),a0 + lea textures,a1 + ; +.loop move (a0)+,d0 ;how many frames + beq.s .done + movem (a0)+,d1-d2 ;first, delay + subq #1,(a0)+ + bgt.s .loop + move d2,-2(a0) + lea 0(a1,d1*4),a2 + ; + ;do the anim! + ; + subq #2,d0 + move.l (a2),d2 +.loop2 move.l 4(a2),(a2)+ + dbf d0,.loop2 + move.l d2,(a2) + bra.s .loop + ; +.done rts + +dorots ; + move.l camrots2(pc),a6 + lea rotpolys(pc),a5 ;header! + ; +rotloop move.l (a5),a5 + tst.l (a5) + beq .done + move rp_speed(a5),d0 + beq.s rotloop + ; + add d0,rp_rot(a5) + move rp_rot(a5),d0 + ; + move.l rp_first(a5),a2 ;first + move rp_num(a5),d5 + subq #1,d5 + move d5,d4 + lsl #5,d4 + lea 0(a2,d4),a1 ;previous + lea rp_lx(a5),a3 + ; + btst #0,rp_flags+1(a5) + bne.s morph + ; +.rot movem rp_cx(a5),d6-d7 ;centre x,z + and #1023,d0 + lea 0(a6,d0*8),a4 ;rotation matrix. + ; +.loop bsr rotter + add d6,d0 + add d7,d1 + movem d0-d1,zo_lx(a2) + movem d0-d1,zo_rx(a1) + bsr rotter + movem d0-d1,zo_na(a2) + exg d0,d1 + neg d0 + movem d0-d1,zo_a(a2) + move.l a2,a1 + lea 32(a2),a2 + dbf d5,.loop + ; + bra rotloop + ; +.done rts + ; +morph tst d0 + bgt.s .dp + moveq #0,d0 +.neg neg rp_speed(a5) + bra.s .skip2 +.dp cmp #$4000,d0 + blt.s .skip + move #$4000,d0 + btst #1,rp_flags+1(a5) + bne.s .neg + clr rp_speed(a5) +.skip2 move d0,rp_rot(a5) +.skip ; + move d0,d4 + movem.l a2/d5,-(a7) ;for calculating norms! + ; +.loop movem (a3)+,d0-d3 + muls d4,d0 + lsl.l #2,d0 + swap d0 + add d2,d0 + muls d4,d1 + lsl.l #2,d1 + swap d1 + add d3,d1 + movem d0-d1,zo_lx(a2) + movem d0-d1,zo_rx(a1) + move.l a2,a1 + lea 32(a2),a2 + dbf d5,.loop + ; + movem.l (a7)+,a2/d5 + ; +.loop2 move zo_rx(a2),d0 + sub zo_lx(a2),d0 + move zo_rz(a2),d1 + sub zo_lz(a2),d1 + bsr calcnormvec + movem d0-d1,zo_na(a2) + exg d0,d1 + neg d0 + movem d0-d1,zo_a(a2) + lea 32(a2),a2 + dbf d5,.loop2 + ; + bra rotloop + +calcnormvec ;d0,d1 = vector...normalize! + ; + ;OK, find vector length! + ; + move d0,d2 + muls d2,d2 + move d1,d3 + muls d3,d3 + add.l d3,d2 + ; + ;OK, sqr of d2.l! + ; + move.l #$10000,d3 + ; +.fitit cmp.l #16384,d2 ;fits? + bcs.s .ok + asr.l #1,d2 + mulu.l #92681,d4:d3 ;mult by sqr(2) + move d4,d3 + swap d3 + bra.s .fitit + ; +.ok ;OK to look up, but multiply the result.w by d3.q + ; + move.l sqr(pc),a0 + and #$fffe,d2 + movem 0(a0,d2),d2 ;sqr.l! + mulu.l d3,d2 + swap d2 ;length.w + ; + ;length should be >= both abs(xvec) AND abs(zvec) + ; + move d0,d3 + bpl.s .xp + neg d3 +.xp move d1,d4 + bpl.s .zp + neg d4 +.zp ; + cmp d4,d3 + bcc.s .bg + exg d3,d4 +.bg ; + cmp d3,d2 + bcc.s .lo + move d3,d2 +.lo ; + ext.l d2 + ; + swap d0 + clr d0 + divs.l d2,d0 + muls.l #32766,d0 + swap d0 + ; + swap d1 + clr d1 + divs.l d2,d1 + muls.l #32766,d1 + swap d1 + rts + +rotter movem (a3)+,d0-d1 ;this x,z + move d0,d2 + move d1,d3 + ; + muls (a4),d0 + muls 2(a4),d3 + add.l d3,d0 + add.l d0,d0 + swap d0 ;new x! + ; + muls 4(a4),d2 + muls 6(a4),d1 + add.l d2,d1 + add.l d1,d1 + swap d1 + ; + rts + +dodoors lea doors(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + move.l do_poly(a5),a0 + move do_fracadd(a5),d0 + add d0,do_frac(a5) + move do_frac(a5),d0 + move d0,d1 + add d1,d1 + move d1,zo_open(a0) ;copy frac + ; + move do_rx(a5),d1 + sub do_lx(a5),d1 ;width + move d1,d2 + muls d0,d2 + lsl.l #2,d2 + swap d2 + move do_lx(a5),d3 + sub d2,d3 + move d3,zo_lx(a0) + add d1,d3 + move d3,zo_rx(a0) + ; + move do_rz(a5),d1 + sub do_lz(a5),d1 + move d1,d2 + muls d0,d2 + lsl.l #2,d2 + swap d2 + move do_lz(a5),d3 + sub d2,d3 + move d3,zo_lz(a0) + add d1,d3 + move d3,zo_rz(a0) + ; + tst d0 + beq.s .kill + cmp #$4000,d0 + bne.s .loop + ; +.kill move.l a5,a0 + killitem doors + move.l a0,a5 + bra .loop + ; +.done rts + +doorsfxflag dc 0 + +execevent ;d0=event number to execute...1,2... + ; + sf doorsfxflag + move.l map_map(pc),a6 + move.l map_events(pc),a0 + add.l 0(a0,d0*4),a6 + ; +exec_loop move (a6)+,d0 + beq.s .rts + subq #1,d0 + beq exec_addobj ;1 - add an object (alien etc) + subq #1,d0 + beq exec_opendoor ;2 - open a door + subq #1,d0 + beq exec_teleport ;3 - teleport + subq #1,d0 + beq exec_loadobjs ;4 - load objects + subq #1,d0 + beq exec_changetxt ;5 - change texture + subq #1,d0 + beq exec_rotpolys ;6 - start polygons rotating! + ; + warn #$f0f + ; +.rts tst doorsfxflag + beq.s .nodoor + clr doorsfxflag + move.l doorsfx(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx +.nodoor rts + +exec_changetxt ; + move (a6)+,d0 ;zone# + move.l map_poly(pc),a1 + lsl #5,d0 + lea 0(a1,d0),a1 ;polygon to change + ; + move (a6)+,d0 ;new texture + move.b d0,zo_t(a1) + bra exec_loop + +exec_opendoor st doorsfxflag + addlast doors ;a0=new door + ; + move (a6)+,d0 ;door # + move.l map_poly(pc),a1 + lsl #5,d0 + lea 0(a1,d0),a1 ;polygon to open! + ; + ;calc lx add, lz add, rx add, rz add + ; + move.l a1,do_poly(a0) + move.l zo_lx(a1),do_lx(a0) + move.l zo_rx(a1),do_rx(a0) + clr do_frac(a0) + move #$100,do_fracadd(a0) + bra exec_loop + +exec_teleport move.l eventobj(pc),a0 + ; + move (a6)+,ob_telex(a0) + addq #2,a6 + move (a6)+,ob_telez(a0) + move (a6)+,ob_telerot(a0) + ; + tst finished2 + bne exec_loop + ; + move #2,ob_pixsizeadd(a0) + bsr dotelesfx + bra exec_loop + +dotelesfx move.l telesfx(pc),a0 + moveq #64,d0 + moveq #10,d1 + bra playsfx + +exec_loadobjs ; +.loop move (a6)+,d0 + bmi .done + bsr loadanobj + bra.s .loop +.done ; + bra exec_loop + +loadanobj ;d0=object#...sys must be permitted + ; + lea objinfo,a2 + mulu #objinfof-objinfo,d0 + move.l _ob_shape-objinfo(a2,d0),a2 + lea 8(a2),a3 ;filename + ; + tst.l (a2) + bne.s .skip + move.l a3,a0 + moveq #1,d1 + bsr loadfile + move.l d0,(a2) + beq.s .skip + move.l d0,a0 + jsr remapanim +.skip ; + tst.l 4(a2) + bne.s .rts + move.l a3,a0 +.loop tst.b (a3)+ + bne.s .loop + move.b #'2',-(a3) + moveq #1,d1 + bsr loadfile + clr.b (a3) + move.l d0,4(a2) + beq.s .rts + move.l d0,a0 + jsr remapanim + ; +.rts rts + +exec_rotpolys ; + ;could also be morphpolys depending on bit 0 of flags! + ; + addlast rotpolys + bne.s .ok + addq #8,a6 + bra exec_loop + ; +.ok st doorsfxflag + movem (a6)+,d0-d3 ;polynum,count,speed,flags + ; + clr rp_rot(a0) + move d1,rp_num(a0) + move d2,rp_speed(a0) + move d3,rp_flags(a0) + move d1,d5 + subq #1,d5 + move.l map_poly(pc),a2 ;polygons! + lsl #5,d0 + add d0,a2 + move.l a2,rp_first(a0) + ; + btst #0,d3 + beq .rot + ; + ;OK, prepare for morph + ; + lsl #5,d1 + lea 0(a2,d1),a3 + lea rp_vx(a0),a1 + ; +.loop movem zo_lx(a3),d0-d1 + movem zo_lx(a2),d2-d3 + sub d2,d0 + sub d3,d1 + movem d0-d3,(a1) + addq #8,a1 + ; + lea 32(a2),a2 + lea 32(a3),a3 + dbf d5,.loop + ; + bra exec_loop + ; +.rot ;First, calc centre X,Z into d6,d7 + ; + moveq #0,d6 + moveq #0,d7 + move.l a2,a1 + ; +.loop0 movem zo_lx(a1),d0/d2 + add.l d0,d6 + add.l d2,d7 + lea 32(a1),a1 + dbf d5,.loop0 + ; + divu d1,d6 + divu d1,d7 + movem d6-d7,rp_cx(a0) + ; + lea rp_lx(a0),a1 + subq #1,d1 + ; +.loop2 movem zo_lx(a2),d0/d2 + sub d6,d0 + move d0,(a1)+ + sub d7,d2 + move d2,(a1)+ + move.l zo_na(a2),(a1)+ + ; + lea 32(a2),a2 + dbf d1,.loop2 + ; + bra exec_loop + +exec_addobj clr.l dummy + move (a6)+,d0 ;monster type + lea objinfo,a2 + mulu #objinfof-objinfo,d0 + add.l d0,a2 + move.l (a2)+,a3 + tst.l (a3) + beq.s .ok +.no addq #8,a6 + bra exec_loop +.ok cmp #2,-2(a6) ;player? + bcc.s .notp + addfirst objects + bra.s .bum +.notp addlast objects +.bum beq.s .no + move.l a0,a5 + ; + move.l a5,(a3) + ; + move (a6)+,ob_x(a5) + move (a6)+,ob_y(a5) + move (a6)+,ob_z(a5) + move (a6)+,ob_rot(a5) + ; + lea ob_info(a5),a3 + move #(objinfof-objinfo-4)>>1-1,d0 +.loop move (a2)+,(a3)+ + dbf d0,.loop + ; + tst ob_blood(a5) ;hi bit of blood=1=invisible! + smi d0 + ext d0 + move d0,ob_invisible(a5) + ; + bsr calcvecs + movem.l d4-d5,ob_xvec(a5) + ; + move.l ob_shape(a5),a0 + move.l 4(a0),ob_chunks(a5) + move.l (a0),a0 + move.l a0,ob_shape(a5) + ; + move an_maxw(a0),d0 + move d0,ob_rad(a5) + mulu d0,d0 + move.l d0,ob_radsq(a5) + ; + clr.l ob_washit(a5) + ; + bsr rnddelay + ; + bra exec_loop + +rnddelay move ob_range(a5),d0 + bsr rndn + add ob_base(a5),d0 + move d0,ob_delay(a5) + ; + rts + +seedrnd ;seed number in d0.w + ; + moveq #54,d1 + lea rndtable(pc),a0 + ; +.loop move d0,(a0)+ + mulu #$1efd,d0 + add #$dff,d0 + dbf d1,.loop + ; + move.l a0,k_index + move.l #rndtable+48,j_index + rts + +rndw ;return rnd number 0...65535 if d0.w + ; + movem.l a0/a1,-(a7) + lea rndtable(pc),a1 + move.l j_index(pc),a0 + move -(a0),d0 + cmp.l a0,a1 + bne.s .skip + lea rndtable+110(pc),a0 +.skip move.l a0,j_index + move.l k_index(pc),a0 + add -(a0),d0 + move d0,(a0) + cmp.l a0,a1 + bne.s .skip2 + lea rndtable+110(pc),a0 +.skip2 move.l a0,k_index + movem.l (a7)+,a0/a1 + rts + +savernd lea rndtable(pc),a0 + lea rndback(pc),a1 + moveq #(rndtablef-rndtable)/2-1,d0 +.loop move (a0)+,(a1)+ + dbf d0,.loop + rts + +loadrnd lea rndback(pc),a0 + lea rndtable(pc),a1 + moveq #(rndtablef-rndtable)/2-1,d0 +.loop move (a0)+,(a1)+ + dbf d0,.loop + rts + +rndtable ds.w 55 +k_index dc.l 0 +j_index dc.l 0 +rndtablef + +rndback ds.b rndtablef-rndtable + +rndl bsr rndw + move d0,d1 + bsr rndw + swap d0 + move d1,d0 + rts + +rndn move d0,d1 + bsr rndw + mulu d1,d0 + swap d0 + rts + +calcangle2 ;angle of camera to object in a5 + ; + move camx(pc),d0 + sub ob_x(a5),d0 + move camz(pc),d1 + sub ob_z(a5),d1 + bra.s calcangle_ + +calcangle ;angle of object a5 to object a0... + ; + move ob_x(a0),d0 + sub ob_x(a5),d0 + move ob_z(a0),d1 + sub ob_z(a5),d1 + ; +calcangle_ ;d0.w=x d1.w=y (dest-src)! + ; + moveq #0,d2 + tst d1 + bpl.s .hpos + moveq #16,d2 + neg d1 +.hpos tst d0 + bpl.s .wpos + eor #8,d2 + neg d0 +.wpos cmp d1,d0 + bmi.s .notsteep + bne.s .neq + move #$2000,d1 + bra.s .flow +.neq eor #4,d2 + exg d1,d0 +.notsteep tst d1 + bne.s .noflow + moveq #0,d1 + bra.s .flow +.noflow ext.l d0 + swap d0 + divu d1,d0 + lsr #6,d0 + and #1022,d0 + move .arc(pc,d0),d1 +.flow move.l .oct(pc,d2),d0 + eor d0,d1 + swap d0 + add d1,d0 + lsr #8,d0 + rts + ; +.oct dc 0,0,$4000,-1,0,-1,$c000,0 + dc $8000,-1,$4000,0,$8000,0,$c000,-1 +.arc incbin arc.bin + +currplayer dc.l 0 + +calcscene ;a5=player object + ; + move #$20,$dff09a + ; + move.l a5,currplayer + move.l ob_palette(a5),palette + move ob_thermo(a5),thermo + move ob_infra(a5),infra + move ob_pixsize(a5),pixsize + ; + clr.l shapelist + move.l a5,a0 + bsr calccamera + bsr makewalls + ; + lea objects(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq.s .done + cmp.l currplayer(pc),a5 + beq.s .loop + move.l ob_render(a5),a0 + tst ob_invisible(a5) + beq.s .notinvs + bpl.s .hb + move.l #drawobjtrans,shaperender + bra.s .rit +.hb move.l #drawobjinvs,shaperender +.rit jsr (a0) + move.l #drawobjnorm,shaperender + bra.s .loop +.notinvs jsr (a0) + bra.s .loop +.done ; + lea gore(pc),a5 + ; +.loop2 move.l (a5),a5 + tst.l (a5) + beq.s .done2 + ; + movem go_x(a5),d0/d2 + moveq #0,d1 + move.l go_shape(a5),a0 + move #$200,d7 + bsr drawshape_q + ; + bra.s .loop2 + ; +.done2 move #$8020,$dff09a + ; + rts + +blitscene bclr #7,ob_update(a5) + beq.s .noupdate + ; + bclr #7,ob_update+1(a5) + beq.s .stats + ; + move.l ob_window(a5),a2 + moveq #9,d0 + bsr wcopy + bsr initstats + ; +.stats bsr showstats + ; +.noupdate move ob_messtimer(a5),d0 + bpl.s .mskip + addq #1,d0 + beq.s .mdone + neg ob_messtimer(a5) + move.l ob_window(a5),a0 + bsr putstrip + bsr printmess + bra.s .mskip + ; +.mdone clr ob_messtimer(a5) + move.l ob_window(a5),a0 + bsr putstrip +.mskip ; + rts + +drawscene ;a5=player + ; + move.l ob_window(a5),a0 + bsr dbwindow + ; + bsr castwalls + bsr makeqstrip + bsr renderwalls + ; + move floorflag(pc),d0 + ble.s .nofloor + ; + move camy(pc),d0 + neg d0 + moveq #-1,d1 + move maxy(pc),d7 + subq #1,d7 + move.l floor(pc),a0 + bsr flat + ; +.nofloor move roofflag(pc),d0 + ble.s .noflat + ; + move #-255,d0 + sub camy(pc),d0 + moveq #1,d1 + move miny(pc),d7 + move.l roof(pc),a0 + bsr flat + ; +.noflat bsr drawshapes + bsr drawblood + ; + move.l currplayer(pc),a0 + move ob_pixsize(a0),d0 + bne pixelate + rts + +chatstuff move chatok(pc),d0 + beq.s .rts + ; + move chatoutget(pc),d0 + cmp chatoutput(pc),d0 + beq.s .noout + and #31,d0 + lea chatout(pc),a0 + move.b 0(a0,d0),d0 ;chat out character! + addq #1,chatoutget + moveq #1,d1 + move d0,-(a7) + bsr chatprintout + move (a7)+,d0 + sub.b #32,d0 ;encode for chat + bset #6,d0 + bsr serput + ; +.noout move chatinget(pc),d0 + cmp chatinput(pc),d0 + beq.s .rts + and #31,d0 + lea chatin(pc),a0 + move.b 0(a0,d0),d0 + addq #1,chatinget + moveq #2,d1 + bsr chatprintin + ; +.rts rts + +sfxvbint lea sfxs(pc),a1 + moveq #3,d3 + ; +.loop tst fx_status(a1) + ble.s .skip + ; + ;this one queued! gotta play it... + ; + subq #1,fx_status(a1) + bgt.s .skip + move.l fx_sfx(a1),a0 + bsr playsfxnow + ; +.skip lea fx_size(a1),a1 + dbf d3,.loop + ; + ;fade out song if nec. + ; + move fadevol(pc),d0 + beq.s .nofade + move.l medat(pc),a1 + sub #$80,fadevol + bgt.s .setvol + clr fadevol + jmp 12(a1) ;stop song + bra.s .nofade + ; +.setvol move fadevol(pc),d0 + lsr #8,d0 + jmp 16(a1) ;set volume + ; +.nofade rts + + dc.l readmodem +joytable dc.l readjoy1,readjoy0,readkeys,readcd321,readcd320 + +readjoy ;a0=player + move ob_cntrl(a0),d0 + bmi.s readmodem + ; + lea joyx0(pc),a0 + lea 0(a0,d0*8),a0 + move.l joytable(pc,d0*4),a1 + jsr (a1) + move linked(pc),d0 + bne.s .send + rts +.send ; + ;a0=cntrl block + ; + bsr encodejoy + movem.l d0/a0,-(a7) + bsr serput + movem.l (a7)+,d0/a0 + ; +.noput lea pbuff(pc),a1 + ; + move pput(pc),d1 + and #127,d1 + move.b d0,0(a1,d1) + addq #1,pput + ; + move pget(pc),d1 + and #127,d1 + move.b 0(a1,d1),d0 + addq #1,pget + ; + bra decodejoy + ; +readmodem ; +.waitser bsr serget + bpl.s .sergot + ; + ;OK, do a vwait to allow other machine to catch up! + ; + move #$20,$dff09c +.vw ; + ifne debugser + col #$f0f + endc + ; + btst #5,$dff01f + beq.s .vw + ; + move #$20,$dff09c + bsr chatstuff + bra.s .waitser + ; +.sergot lea joyxs(pc),a0 + tst.b d0 + bpl .djoy + and #$ff,d0 + move d0,finished + moveq #0,d0 + ; +.djoy bsr decodejoy + move.l (a0)+,joyx + move.l (a0),joyb + rts + +escape dc 0 + +readjoys ;fill in appropriate 'joyxn' block...check escape + ; + qkey $45 + beq.s .noesc + st escape +.noesc move finished(pc),d0 + or finished2(pc),d0 + bne.s .rts + ; + move.l player1(pc),a0 + bsr readjoy + move gametype(pc),d0 + beq.s .rts + move.l player2(pc),a0 + bra readjoy +.rts rts + +vbhandler movem.l d2-d7/a2-a6,-(a7) + ; + subq #1,(a1)+ ;inc/dec frame counters + addq #1,(a1) + ; + ;this done every frame! + bsr showit + bsr chatstuff + bsr sfxvbint + ; + btst #0,framecnt+1 + beq exit_vb + tst paused + bne exit_vb + ; + ;OK, movement/animation stuff! + ; + bsr readjoys + bsr doanims + bsr dorots + bsr dodoors + bsr moveblood + ; + ifne debugser + ; + ;OK, kludge in a random number! + move framecnt(pc),d0 + and #126,d0 + bne.s .nornd + ; + bsr rndw + lea .rndasc(pc),a0 + moveq #3,d1 +.loop rol #4,d0 + move d0,d2 + and #15,d2 + add #48,d2 + cmp #58,d2 + bcs.s .rok + addq #7,d2 +.rok move.b d2,(a0)+ + dbf d1,.loop + ; + move.l player1(pc),a5 + bsr message +.rndasc dc.b 'aaaa',0 + even + ; + endc +.nornd ; + move.l a7,obj_stack + lea objects(pc),a5 + ; +obj_loop move.l (a5),a5 + tst.l (a5) + beq exit_vb + ; + move.l ob_logic(a5),a0 + jsr (a0) + ; + ;check collision! + ; + move ob_collwith(a5),d0 + beq.s obj_loop + ; + move ob_rad(a5),d1 + move ob_x(a5),d6 + move ob_z(a5),d7 + ; + lea objects(pc),a0 + ; +.loop2 move.l (a0),a0 + cmp.l a5,a0 + bne.s .this + ; + clr.l ob_washit(a5) ;not hit! can get hit next time... + bra obj_loop +.this ; + move ob_colltype(a0),d2 + and d0,d2 + beq.s .loop2 + ; + move ob_rad(a0),d2 + add d1,d2 ;r sum + ; + move ob_x(a0),d3 + sub d6,d3 + bpl.s .xpl + neg d3 +.xpl cmp d2,d3 + bcc.s .loop2 + ; + move ob_z(a0),d4 + sub d7,d4 + bpl.s .ypl + neg d4 +.ypl cmp d2,d4 + bcc.s .loop2 + ; + mulu d2,d2 + mulu d3,d3 + mulu d4,d4 + add.l d4,d3 + cmp.l d2,d3 + bcc.s .loop2 + ; + cmp.l ob_washit(a5),a0 + beq obj_loop + move.l a0,ob_washit(a5) + ; + move finished2(pc),d0 + bne obj_loop + ; + move.l #killobject3,killjsr + movem.l a0/a5,obj_a0 + exg.l a0,a5 + ; + move ob_damage(a0),d0 + move.l ob_hit(a5),a1 + sub d0,ob_hitpoints(a5) + bgt.s hit_skip + move.l ob_die(a5),a1 + ; +hit_skip jsr (a1) + ; +hit_ret move.l #killobject2,killjsr + movem.l obj_a0(pc),a0/a5 + ; + move ob_damage(a0),d0 + move.l ob_hit(a5),a1 + sub d0,ob_hitpoints(a5) + bgt.s hit_skip2 + move.l ob_die(a5),a1 + ; +hit_skip2 jsr (a1) + bra obj_loop + ; +exit_vb st doneflag + bsr showit + ; + movem.l (a7)+,d2-d7/a2-a6 + moveq #0,d0 + ; +rts rts + +obj_a0 dc.l 0 +obj_a5 dc.l 0 +obj_stack dc.l 0 +killjsr dc.l killobject2 + +killobject ; + move.l killjsr(pc),a0 + jmp (a0) + +killobject2 move.l a5,a0 + killitem objects + move.l a0,a5 + move.l obj_stack(pc),a7 + bra obj_loop + +killobject3 move.l a5,a0 + killitem objects + move.l obj_stack(pc),a7 + bra hit_ret + +bloodspeed bsr rndw + ext.l d0 + lsl.l #2,d0 + rts + +bloodspeed2 bsr rndw + ext.l d0 + lsl.l #5,d0 + rts + +bloodspeed3 bsr rndw + ext.l d0 + lsl.l #4,d0 + rts + +makesparksq move.l ob_chunks(a5),a2 + ; +makesparks ;a2=sparks + ; + movem.l ob_x(a5),d2-d4 + move 2(a2),d5 + subq #1,d5 + ; +.loop addlast objects + beq .rts + movem.l d2-d4,ob_x(a0) + bsr bloodspeed2 + move.l d0,ob_xvec(a0) + bsr bloodspeed2 + move.l d0,ob_yvec(a0) + bsr bloodspeed2 + move.l d0,ob_zvec(a0) + move.l a2,ob_shape(a0) + move d5,ob_frame(a0) + move.l #sparkslogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + clr ob_invisible(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + bsr rndw + and #15,d0 + add #15,d0 + move d0,ob_delay(a0) + dbf d5,.loop +.rts rts + +sparkslogic subq #1,ob_delay(a5) + ble killobject + movem.l ob_x(a5),d0-d2 + add.l ob_xvec(a5),d0 + add.l ob_yvec(a5),d1 + add.l ob_zvec(a5),d2 + movem.l d0-d2,ob_x(a5) + rts + +bloodymess ;throw random blood splots everywhere! + ; + bsr bloodspeed2 + add.l ob_x(a5),d0 + move.l d0,d2 + bsr bloodspeed2 + add.l ob_gutsy(a5),d0 + move.l d0,d3 + bsr bloodspeed2 + add.l ob_z(a5),d0 + move.l d0,d4 + ; +.loop addlast blood + beq.s .done + ; + movem.l d2-d4,bl_x(a0) + bsr bloodspeed + move.l d0,bl_xvec(a0) + bsr bloodspeed + move.l d0,bl_yvec(a0) + bsr bloodspeed + move.l d0,bl_zvec(a0) + move ob_blood(a5),bl_color(a0) + ; + dbf d7,.loop + ; +.done rts + +bloodymess2 ;throw random blood splots everywhere! + ; + bsr bloodspeed2 + add.l ob_x(a5),d0 + move.l d0,d2 + bsr bloodspeed2 + add.l ob_gutsy(a5),d0 + move.l d0,d3 + bsr bloodspeed2 + add.l ob_z(a5),d0 + move.l d0,d4 + ; +.loop addlast blood + beq.s .done + ; + movem.l d2-d4,bl_x(a0) + bsr bloodspeed3 + move.l d0,bl_xvec(a0) + bsr bloodspeed3 + move.l d0,bl_yvec(a0) + bsr bloodspeed3 + move.l d0,bl_zvec(a0) + move ob_blood(a5),bl_color(a0) + ; + dbf d7,.loop + ; +.done rts + +chunklogic move mode(pc),d0 + beq chunklogic2 + ; + add.l #$8000,ob_yvec(a5) + move.l ob_yvec(a5),d0 + add.l ob_y(a5),d0 + blt .skip + ; + ;OK...hit ground! + ; + bsr splat + addlast gore + bne.s .gok + ; + move.l gore(pc),a0 + killitem gore + addlast gore + beq killobject + ; +.gok move ob_x(a5),go_x(a0) + move ob_z(a5),go_z(a0) + move.l ob_shape(a5),a1 + move ob_frame(a5),d0 + add.l 12(a1,d0*4),a1 + move.l a1,go_shape(a0) + ; + bra killobject + ; +.skip move.l d0,ob_y(a5) + bsr checkvecs + beq.s .rts + clr.l ob_xvec(a5) + clr.l ob_zvec(a5) +.rts rts + +chunklogic2 add.l #$8000,ob_yvec(a5) + move.l ob_yvec(a5),d0 + add.l d0,ob_y(a5) + blt.s .ok + ;bsr splat + bra killobject +.ok movem.l ob_xvec(a5),d0-d1 + add.l d0,ob_x(a5) + add.l d1,ob_z(a5) + rts + +splat move.l splatsfx(pc),a0 + moveq #32,d0 + moveq #-1,d1 + bra playsfx + +blowterra move.l robodiesfx(pc),a0 + moveq #64,d0 + moveq #20,d1 + bsr playsfx + bra blowquick + +blowdragon ;same, but messier... + ; + ;loud! + ; + move.l diesfx(pc),a0 + moveq #64,d0 + moveq #50,d1 + bsr playsfx + move.l diesfx(pc),a0 + moveq #64,d0 + moveq #50,d1 + bsr playsfx + move.l robodiesfx(pc),a0 + moveq #64,d0 + moveq #50,d1 + bsr playsfx + move.l robodiesfx(pc),a0 + moveq #64,d0 + moveq #50,d1 + bsr playsfx + ; + moveq #63,d7 + bsr bloodymess2 + ; + move.l ob_chunks(a5),a4 + bsr blowchunx + bsr blowchunx + bsr blowchunx + bsr blowchunx + ; + move.l #dragondead,ob_logic(a5) + move.l #rts,ob_render(a5) + clr ob_colltype(a5) + clr ob_collwith(a5) + move #127,ob_delay(a5) + rts + +dragondead subq #1,ob_delay(a5) + bgt.s .rts + ; + move #3,finished + ; +.rts rts + +blowdeath cmp.l sucker(pc),a5 + bne.s blowobject + clr.l sucker + clr.l sucking + ; +blowobject move.l diesfx(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx +blowquick ; + moveq #31,d7 + bsr bloodymess2 + ; + move.l ob_chunks(a5),d0 + bne.s .chok + ; + moveq #15,d7 + bsr bloodymess2 + bra killobject + ; +.chok move.l d0,a4 + bsr blowchunx + bra killobject + +blowchunx move 2(a4),d7 + subq #1,d7 + ; +.loop addlast objects + beq killobject + movem.l ob_x(a5),d0-d2 + move.l #-64<<16,d1 + movem.l d0-d2,ob_x(a0) + ; + bsr bloodspeed3 + move.l d0,ob_xvec(a0) + bsr bloodspeed3 + sub.l #$40000,d0 + move.l d0,ob_yvec(a0) + bsr bloodspeed3 + move.l d0,ob_zvec(a0) + ; + clr ob_invisible(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + move.l #chunklogic,ob_logic(a0) + move.l a4,ob_shape(a0) + move.l #drawshape_1sc,ob_render(a0) + move d7,ob_frame(a0) + move ob_scale(a5),ob_scale(a0) + ; + move an_maxw(a4),d0 + move d0,ob_rad(a0) + mulu d0,d0 + move.l d0,ob_radsq(a0) + ; + dbf d7,.loop + rts + +hurtdeath ;OK! death head hit! + ; + ;point at player, and start to suck his soul! + ; + move.l sucking(pc),d0 + bne.s .rts + ; + bsr pickplayer + cmp.l #playerlogic,ob_logic(a0) + bne.s .rts + ; + move.l a0,sucking + move.l a5,sucker + ; + move ob_rot(a5),ob_oldrot(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #deathsuck,ob_logic(a5) + move.l #rts,ob_hit(a5) + move #64,ob_delay(a5) + bra.s deathsuck + ; +.rts rts + +deathsuck ;death head sucking out a players soul! + ; + bsr deathbounce + bsr deathanim + subq #1,ob_delay(a5) + bgt.s .more + move ob_oldrot(a5),ob_rot(a5) + move.l ob_oldlogic(a5),ob_logic(a5) + move.l #hurtdeath,ob_hit(a5) + clr.l sucker + clr.l sucking + bra rnddelay + ; +.more move.l sucking(pc),a0 + move.l a0,a2 + bsr calcangle ;point at player! + move d0,ob_rot(a5) + ; + add #128,d0 + and #255,d0 + move.l camrots(pc),a3 + lea 0(a3,d0*8),a3 + ; + move.l a3,suckangle + ; + ;calc x/z vecs + ; + moveq #3,d7 + bsr addsoul + ; +.rts rts + +sucker dc.l 0 +sucking dc.l 0 +suckangle dc.l 0 + +addsoul ;d7 times! + ; + addlast blood + beq .rts + ; + move 2(a3),d2 + ext.l d2 + lsl.l #5,d2 + neg.l d2 + move 6(a3),d3 + ext.l d3 + lsl.l #5,d3 + ; + move.l d2,bl_xvec(a0) + move.l a5,bl_yvec(a0) + move.l d3,bl_zvec(a0) + ; + swap d2 + swap d3 + add d2,d2 + add d3,d3 + add ob_x(a2),d2 + add ob_z(a2),d3 + ; + bsr rndw + and #63,d0 + sub #32,d0 + add d2,d0 + move d0,bl_x(a0) + ; + bsr rndw + and #63,d0 + sub #32,d0 + add #110,d0 + move d0,bl_y(a0) ;>0= funny blood! + ; + bsr rndw + and #63,d0 + sub #32,d0 + add d3,d0 + move d0,bl_z(a0) + ; + bsr rndw + and #1,d0 + move soulcols(pc,d0*2),bl_color(a0) + ; + dbf d7,addsoul + ; +.rts rts + +soulcols dc $0ff,$0f0 + +hurtghoul moveq #31,d7 + bsr bloodymess + rts + +hurtterra move.l a0,-(a7) + move.l shootsfx2(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx + move.l (a7)+,a0 + bra.s hurtobject + +hurtngrunt move.l a0,-(a7) + bsr rndw + and #3,d0 + cmp lastgrunt(pc),d0 + bne.s .new + addq #1,d0 + and #3,d0 +.new move d0,lastgrunt + lea grunttable(pc),a0 + move.l 0(a0,d0*4),a0 + move.l (a0),a0 + moveq #64,d0 + moveq #1,d1 + bsr playsfx + move.l (a7)+,a0 + ; +hurtobject move ob_colltype(a0),d0 + and #24,d0 + bne.s .rts + ; + moveq #23,d7 + bsr bloodymess + move ob_hurtpause(a5),ob_hurtwait(a5) + beq .rts + ; + move #4,ob_frame(a5) + move.l ob_logic(a5),ob_oldlogic2(a5) + move.l ob_hit(a5),ob_oldhit(a5) + move.l #pauselogic2,ob_logic(a5) + move.l #rts,ob_hit(a5) + ; +.rts rts + +lizhurt move.l a0,-(a7) + move.l lizhitsfx(pc),a0 + moveq #64,d0 + moveq #1,d1 + bsr playsfx + move.l (a7)+,a0 + bra hurtobject + +pauselogic2 subq #1,ob_hurtwait(a5) + bgt.s .rts + clr ob_frame(a5) + move.l ob_oldlogic2(a5),ob_logic(a5) + move.l ob_oldhit(a5),ob_hit(a5) +.rts rts + +pauselogic subq #1,ob_delay(a5) + bgt.s .skip + ; + bsr rnddelay + move.l ob_oldlogic(a5),ob_logic(a5) + ; + ;if in front of player, continue on old course... + ; + bsr pickcalc + ; + ;bsr pickplayer + ;tst ob_invisible(a0) + ;bne.s .useold ;can't see player! no intelligence... + ;bsr calcangle + ; + move ob_rot(a0),d1 + and #255,d1 + sub d0,d1 + bpl.s .pl + neg d1 +.pl cmp #64,d1 + bcs.s .skip + cmp #192,d1 + bcc.s .skip + ; +.useold move ob_oldrot(a5),ob_rot(a5) + bsr calcvecs + ; +.skip rts + +shoot ; + ;fire off a bullet... + ; + ;d2 : colltype + ;d3 : collwith + ;d4 : hitpoints + ;d5 : damage + ;d6 : speed + ;a2=bullet shape + ;a3=sparks shape + ; + addfirst objects + beq .rts + ; + move ob_bouncecnt(a5),ob_bouncecnt(a0) + move ob_x(a5),ob_x(a0) + move ob_y(a5),d0 + add ob_firey(a5),d0 + move d0,ob_y(a0) + move ob_z(a5),ob_z(a0) + move.l #firelogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + move.l #rts,ob_hit(a0) + move.l #killobject,ob_die(a0) + move d2,ob_colltype(a0) + move d3,ob_collwith(a0) + move d4,ob_hitpoints(a0) + move d5,ob_damage(a0) + move d6,ob_movspeed(a0) + move.l a2,ob_shape(a0) + clr ob_invisible(a0) + clr ob_frame(a0) + move.l a3,ob_chunks(a0) + ; + move ob_rot(a5),d0 + and #255,d0 + move.l camrots(pc),a1 + lea 0(a1,d0*8),a1 + ; + move 2(a1),d0 + move d0,ob_nxvec(a0) + neg d0 + muls d6,d0 + add.l d0,d0 + move 6(a1),d1 + move d1,ob_nzvec(a0) + muls d6,d1 + add.l d1,d1 + ; + movem.l d0-d1,ob_xvec(a0) + ;add.l d0,ob_x(a0) + ;add.l d1,ob_z(a0) + ; + move #32,ob_rad(a0) + move.l #32*32,ob_radsq(a0) + ; +.rts rts + +pickcalc ;pick a player and calculate angle to player! + ; + bsr pickplayer + bsr calcangle + tst ob_invisible(a0) + beq.s .rts + move d0,-(a7) + bsr rndw + and #63,d0 + sub #32,d0 + add (a7)+,d0 + and #255,d0 +.rts rts + +fire1 bsr pickcalc + ; + ;random noise for inaccuracy! + ; + move d0,-(a7) + bsr rndw + and #31,d0 + sub #16,d0 + add (a7)+,d0 + and #255,d0 + ; + move d0,ob_rot(a5) + bsr calcvecs + move #7,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #pauselogic,ob_logic(a5) + clr.l ob_frame(a5) + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #1,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet1,a2 + lea sparks1,a3 + ; + bsr shoot + ; + rts + +pickplayer ;pick nearest player + ; + move.l player1(pc),a0 + move gametype(pc),d0 + beq.s .rts + move.l player2(pc),a1 + move linked(pc),d0 + bpl.s .nosw + ; + exg a0,a1 +.nosw ; + tst ob_hitpoints(a0) + beq .sw + tst ob_hitpoints(a1) + beq.s .rts + ; + move ob_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move ob_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 ;dist to player a0 + ; + move ob_x(a5),d1 + sub ob_x(a1),d1 + muls d1,d1 + move ob_z(a5),d2 + sub ob_z(a1),d2 + muls d2,d2 + add.l d2,d1 ;dist to player a1 + ; + cmp.l d1,d0 + bcs.s .rts + ; +.sw move.l a1,a0 + ; +.rts rts + +checkcoll ;check for collision between a5, and a0 + ; + move ob_rad(a5),d1 + move ob_rad(a0),d2 + add d1,d2 ;r sum + ; + move ob_x(a0),d3 + sub ob_x(a5),d3 + bpl.s .xpl + neg d3 +.xpl cmp d2,d3 + bcc.s .no + ; + move ob_z(a0),d4 + sub ob_z(a5),d4 + bpl.s .ypl + neg d4 +.ypl cmp d2,d4 + bcc.s .no + ; + mulu d2,d2 + mulu d3,d3 + mulu d4,d4 + add.l d4,d3 + cmp.l d2,d3 + bcc.s .no + ; + moveq #-1,d0 + rts + ; +.no moveq #0,d0 + rts + +baldycharge ; + ;baldy charging at player! + ; + bsr checkvecs + beq baldy_skip + ; +baldy_tonorm move.l ob_movspeed(a5),d0 + lsr.l #2,d0 + move.l d0,ob_movspeed(a5) + ; + move.l ob_framespeed(a5),d0 + lsr.l #2,d0 + move.l d0,ob_framespeed(a5) + ; + move.l ob_oldlogic(a5),ob_logic(a5) + bsr rnddelay + ; + bra monsterfix + ; +baldy_skip ;close to player? start throwing punches around! + ; + bsr pickcalc + ; + sub ob_rot(a5),d0 + cmp #32,d0 + bgt baldy_tonorm + cmp #-32,d0 + blt baldy_tonorm + ; + move.l a0,ob_washit(a5) + bsr checkcoll + beq monsternew ;no collisions! + ; + ;go into punch mode! + ; + move.l #baldypunch,ob_logic(a5) + move ob_punchrate(a5),ob_delay(a5) + clr.l ob_frame(a5) + rts + +baldypunch ; + bsr pickplayer + bsr checkcoll + bne.s .doit + ; + clr.l ob_frame(a5) + bra baldy_tonorm + ; +.doit subq #1,ob_delay(a5) + ble.s .punch + rts +.punch move ob_punchrate(a5),ob_delay(a5) + moveq #0,d0 ;stand frame + cmp ob_frame(a5),d0 + bne .skip + ; + clr.l ob_washit(a5) ;punch! + bsr calcangle + move d0,ob_rot(a5) + moveq #5,d0 +.skip move d0,ob_frame(a5) + rts + +calcbangle bsr calcangle + tst ob_invisible(a0) + beq.s .notinv + ; + ;invisible, add some randomeness! + ; + move d0,-(a7) + bsr rndw + and #127,d0 + sub #64,d0 + add (a7)+,d0 + and #255,d0 + ; +.notinv move d0,ob_rot(a5) + rts + +lizardlogic ; + subq #1,ob_delay(a5) + bgt monstermove ;charge? + ; + bsr pickcalc ;pic player in a0! + move ob_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move ob_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 + cmp.l #256*256,d0 + bcc.s bl2 + ; + move.l lizsfx(pc),a0 + moveq #32,d0 + moveq #5,d1 + bsr playsfx + ; + bra bl2 + +baldylogic ; + ;OK, what can baldy do... + ; + ;how about, walk around similar to the marine, but randomly + ;charge at you? + ; + ;then, if he's close enough, he throws a punch! + ; + subq #1,ob_delay(a5) + bgt monstermove ;charge? + ; +bl2 bsr pickcalc + move d0,ob_rot(a5) + ; + move.l ob_movspeed(a5),d0 + lsl.l #2,d0 + move.l d0,ob_movspeed(a5) + move.l ob_framespeed(a5),d0 + lsl.l #2,d0 + move.l d0,ob_framespeed(a5) + ; + bsr calcvecs + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #baldycharge,ob_logic(a5) + ; + rts + +terralogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + ble .fire + ; + move ob_delay(a5),d0 + and #31,d0 + bne monstermove + ; + move.l robotsfx(pc),a0 + moveq #64,d0 + moveq #10,d1 + bsr playsfx + bra monstermove + ; +.fire ;OK, terra goes apeshit! stand there firing off at player! + ;use punchrate as firedelay! + ; + clr ob_frame(a5) + move #1,ob_delay(a5) + move ob_firecnt(a5),ob_delay2(a5) + move.l #terralogic2,ob_logic(a5) + rts + +terralogic2 ; + subq #1,ob_delay(a5) + bgt.s .rts + ; + move ob_firerate(a5),ob_delay(a5) + ; + ;OK, to to face player and fire away! + ; + bsr pickcalc + move d0,ob_rot(a5) + bsr calcvecs + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #16,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet4,a2 + lea sparks4,a3 + ; + bsr shoot + ; + move.l shootsfx3(pc),a0 + moveq #32,d0 + moveq #5,d1 + bsr playsfx + ; + subq #1,ob_delay2(a5) + bgt.s .rts + ; + bsr rnddelay + move.l #terralogic,ob_logic(a5) + ; +.rts rts + +ghoullogic ; + addq #8,ob_bounce(a5) + move ob_bounce(a5),d0 + move.l camrots(pc),a0 + and #255,d0 + move 0(a0,d0*8),d0 + ext.l d0 + lsl.l #5,d0 ;+/- 32 + swap d0 + add #-32,d0 + move d0,ob_y(a5) + ; + bsr pickcalc + move d0,ob_rot(a5) + ; + subq #1,ob_delay(a5) + bgt.s .skip + ; + move #1,ob_frame(a5) + move.l #$2000,ob_framespeed(a5) + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet2,a2 + lea sparks2,a3 + ; + bsr shoot + bsr rnddelay + ; +.skip ;OK, ghoul moves around ignoring walls! + ; + ;he's pointed at player...how about randomly selected to make + ;this his new movement vector? + ; + bsr rndw + move ob_movspeed(a5),d1 + lsl #8,d1 + cmp d1,d0 + bcc.s .no + ; + bsr calcvecs + ; + move.l ghoulsfx(pc),a0 + moveq #32,d0 + moveq #-5,d1 + bsr playsfx + ; +.no movem.l ob_xvec(a5),d0-d1 + add.l d0,ob_x(a5) + add.l d1,ob_z(a5) + ; + move.l ob_framespeed(a5),d0 + beq.s .rts + add.l d0,ob_frame(a5) + cmp #3,ob_frame(a5) + bcs.s .rts + ; + clr ob_frame(a5) + clr.l ob_framespeed(a5) + ; +.rts rts + +demonpause move ob_delay(a5),d0 + move d0,d1 + and #4,d0 + sne d0 + ext d0 + and #5,d0 ;0 or 5 + move d0,ob_frame(a5) + ; + and #7,d1 ;do a fire? + cmp #7,d1 + bne.s .nofire + ; + move ob_delay(a5),d0 + lsr #3,d0 + mulu #18,d0 + lea wtable(pc),a0 + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + movem 0(a0,d0),d4-d6 ;hits,dam,speed + mulu #$c000,d5 + swap d5 ;3/4 damage! + moveq #0,d7 ;acc + movem.l 6(a0,d0),a2-a3 ;bullets/sparks + move.l 14(a0,d0),-(a7) ;sfx! + ; + bsr shoot + ; + move.l (a7)+,a0 + move.l (a0),a0 + moveq #32,d0 + moveq #0,d1 + bsr playsfx + ; +.nofire subq #1,ob_delay(a5) + bgt.s .rts + ; + bsr rnddelay + move.l ob_oldlogic(a5),ob_logic(a5) + ; +.rts rts + +demonlogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + bgt monstermove + ; + bsr pickcalc + ; + move d0,ob_rot(a5) + bsr calcvecs + move #5<<3-1,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #demonpause,ob_logic(a5) + ; + rts + +phantomlogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + bgt monstermove + ; + bsr pickcalc + ; + move d0,ob_rot(a5) + bsr calcvecs + move #7,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #pauselogic,ob_logic(a5) + move #5,ob_frame(a5) + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet3,a2 + lea sparks3,a3 + ; + bra shoot + +deathbounce addq #4,ob_bounce(a5) + move ob_bounce(a5),d0 + move.l camrots(pc),a0 + and #255,d0 + move 0(a0,d0*8),d0 + ext.l d0 + lsl.l #5,d0 ;+/- 64 + swap d0 + add #-48,d0 + move d0,ob_y(a5) + rts + +deathheadlogic ; + ;cruises around rotating at speed ob_delay + ; + bsr deathbounce + ; + bsr checkvecs + bne.s .hit + ; + ;charge player? + ; + bsr pickcalc ;find angle to player + move ob_rot(a5),d1 + and #255,d1 + sub d0,d1 ;am I near? + bpl.s .ansk + neg d1 +.ansk cmp #16,d1 + bcc.s .notnear + ; + ;OK! chargaroony! + ; + move d0,ob_rot(a5) + move.l #deathcharge,ob_logic(a5) + bra calcvecs +.hit add #128,ob_rot(a5) + bsr rnddelay +.notnear move ob_delay(a5),d0 + add d0,ob_rot(a5) + bsr calcvecs + rts + +deathanim move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + cmp.l #$8000,ob_frame(a5) + blt.s .fix + cmp.l #$28000,ob_frame(a5) + blt.s .fok +.fix neg.l d0 + add.l d0,ob_frame(a5) + move.l d0,ob_framespeed(a5) + ; +.fok rts + +deathcharge bsr deathbounce + bsr deathanim + ; + bsr pickcalc + move ob_rot(a5),d1 + and #255,d1 + sub d1,d0 ;am I near? + bpl.s .ansk + neg d0 +.ansk cmp #128,d0 + bcc.s .hit + bsr checkvecs + bne.s .hit2 + rts +.hit2 add #128,ob_rot(a5) +.hit move.l #deathheadlogic,ob_logic(a5) + move.l #$8000,ob_frame(a5) + bra rnddelay + +monsterlogic ; + move ob_rot(a5),ob_oldrot(a5) + ;monster cruising around minding his own business... + ; + subq #1,ob_delay(a5) + ble fire1 + ; +monstermove bsr checkvecs + beq.s monsternew + ; + ;OK, try 90/-90 degrees... + ; +monsterfix bsr rndw + moveq #64,d1 + tst d0 + bpl.s .umk + moveq #-64,d1 +.umk add d1,ob_rot(a5) + bsr calcvecs + bsr checkvecs + beq.s monsternew + ; + add #128,ob_rot(a5) + bsr calcvecs + bsr checkvecs + beq.s monsternew + ; + move ob_oldrot(a5),d0 + add #128,d0 + move d0,ob_rot(a5) + ; + bsr calcvecs + bsr checkvecs +monsternew ; + move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + and #3,ob_frame(a5) + rts + +dragonfire ;dragon fires at you! + ; + ;d2 : colltype + ;d3 : collwith + ;d4 : hitpoints + ;d5 : damage + ;d6 : speed + ;a2=bullet shape + ;a3=sparks shape + ; + subq #1,ob_delay(a5) + bpl .rts + move ob_delay(a5),d0 + cmp #-16*8,d0 + bgt.s .try + move #47,ob_delay(a5) + rts +.try and #7,d0 + bne .rts + ; +.fire moveq #0,d2 ;colltype + moveq #24+3,d3 ;collwith - p1/p2/bullets + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #16,d6 ;speed + lea bullet5,a2 + lea sparks5,a3 + ; + addlast objects + beq .rts + ; + move ob_bouncecnt(a5),ob_bouncecnt(a0) + move ob_x(a5),ob_x(a0) + move ob_y(a5),d0 + add ob_firey(a5),d0 + move d0,ob_y(a0) + move ob_z(a5),ob_z(a0) + move.l #homeinlogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + move.l #makesparksq,ob_hit(a0) + move.l #blowdb,ob_die(a0) + move d2,ob_colltype(a0) + move d3,ob_collwith(a0) + move d4,ob_hitpoints(a0) + move d5,ob_damage(a0) + move d6,ob_movspeed(a0) + move.l a2,ob_shape(a0) + clr ob_invisible(a0) + clr ob_frame(a0) + move.l a3,ob_chunks(a0) + ; + move ob_rot(a5),d0 + and #255,d0 + move.l camrots(pc),a1 + lea 0(a1,d0*8),a1 + ; + move 2(a1),d0 + move d0,ob_nxvec(a0) + neg d0 + muls d6,d0 + add.l d0,d0 + move 6(a1),d1 + move d1,ob_nzvec(a0) + muls d6,d1 + add.l d1,d1 + ; + movem.l d0-d1,ob_xvec(a0) + ; + move #32,ob_rad(a0) + move.l #32*32,ob_radsq(a0) + ; +.rts rts + +blowdb bsr makesparksq + bra killobject + +homeinlogic bsr checkvecs + bne.s blowdb + bsr pickcalc ;find angle to player! + move.l camrots(pc),a0 + lea 0(a0,d0*8),a0 + move 2(a0),d4 ;x acc. + neg d4 + ext.l d4 + lsl.l #2,d4 + move 6(a0),d5 ;z acc. + ext.l d5 + lsl.l #2,d5 + ; + add.l ob_xvec(a5),d4 + move.l d4,d0 + bpl.s .pl1 + neg.l d0 +.pl1 cmp.l #$200000,d0 ;max speed + bcc.s .sk1 + move.l d4,ob_xvec(a5) + ; +.sk1 add.l ob_zvec(a5),d5 + move.l d5,d0 + bpl.s .pl2 + neg.l d0 +.pl2 cmp.l #$200000,d0 + bcc.s .sk2 + move.l d5,ob_zvec(a5) +.sk2 ; + bra putfire + +dragonanim move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + and #3,ob_frame(a5) + rts + +getobrot move ob_rotspeed(a5),d0 + bne.s .addr + ; + ;OK, randomly left/rite! + ; + bsr rndw + and #1,d0 + bne.s .addr2 + moveq #-1,d0 + ; +.addr2 lsl #2,d0 + move d0,ob_rotspeed(a5) + ; +.addr rts + +dragonlogic ;OK! end of game baddy! + ; + ;how about cruising around in a circle a-la + ;deathhead! + ; + bsr dragonanim + bsr dragonfire + bsr checkvecs + beq.s .nohit + ; + ;OK, dragon has hit a wall...rot him around till he's clear! + ; + bsr getobrot + lsl #2,d0 + add d0,ob_rot(a5) + bra calcvecs +.nohit ; + bsr pickcalc + move ob_rot(a5),d1 + and #255,d1 + sub d0,d1 ;am I near? + bpl.s .ansk + neg d1 +.ansk moveq #6,d0 + tst ob_rotspeed(a5) + bne.s .sh + moveq #24,d0 +.sh cmp d0,d1 + bcs.s .near + ; + ;not pointed at player! + bsr getobrot + add d0,ob_rot(a5) + bra calcvecs + ; +.near clr ob_rotspeed(a5) ;towards player! + rts + +weaponlogic ; + move.l camrots(pc),a0 + ; + addq #8,ob_movspeed(a5) + move ob_movspeed(a5),d0 + and #127,d0 + move 2(a0,d0*8),d0 + asr #8,d0 + move d0,ob_y(a5) + ; + move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + move ob_frame(a5),d0 + move.l ob_shape(a5),a0 + cmp 2(a0),d0 + bcs.s .skip + clr ob_frame(a5) +.skip ; + subq #1,ob_delay(a5) + bgt .rts + bsr rnddelay + ; + addlast objects + beq.s .rts + ; + movem.l ob_x(a5),d2-d4 + movem.l d2-d4,ob_x(a0) + bsr bloodspeed2 + move.l d0,ob_xvec(a0) + bsr bloodspeed2 + move.l d0,ob_yvec(a0) + bsr bloodspeed2 + move.l d0,ob_zvec(a0) + move.l ob_chunks(a5),a2 + move.l a2,ob_shape(a0) + move 2(a2),d0 + bsr rndn + move d0,ob_frame(a0) + move.l #sparkslogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + clr ob_invisible(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + bsr rndw + and #15,d0 + add #15,d0 + move d0,ob_delay(a0) +.rts rts + +calcvecs move ob_rot(a5),d0 + ; + and #255,d0 + move.l camrots(pc),a0 + lea 0(a0,d0*8),a0 + ; + move ob_movspeed(a5),d4 + move d4,d5 + muls 2(a0),d4 + add.l d4,d4 + neg.l d4 + move.l d4,ob_xvec(a5) + muls 6(a0),d5 + add.l d5,d5 + move.l d5,ob_zvec(a5) + rts + +checkvecs movem.l ob_xvec(a5),d6-d7 + add.l ob_x(a5),d6 + add.l ob_z(a5),d7 + bsr checknewslow ;ok to stand here? + beq.s .ok + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + bsr checknewslow + bne.s .fix + moveq #-1,d1 ;use old pos, and report hit! + rts + ; +.fix bsr adjustposq ;fixup! + moveq #-1,d1 + ; +.ok move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + tst d1 + rts + +playerdead bsr getcntrl + ; + subq #1,ob_delay(a5) + bgt.s .rts + ; + cmp #2,gametype + bne.s .notcom + ; + ;combat game! + ; + move #4,finished2 + move #1,ob_pixsizeadd(a5) + move.l #rts,ob_logic(a5) + ; + bsr getother + move #1,ob_pixsizeadd(a0) +.rts rts +.notcom ; + tst ob_lives(a5) + beq.s .dead + move.l #waitrestart,ob_logic(a5) + rts + ; +.dead move.l #rts,ob_logic(a5) + ; + tst gametype + bne.s .not1p + ; + ;OK, one player game done! + ; +.allover move #2,finished + rts + ; +.not1p move.l player1,a0 + cmp.l a5,a0 + bne.s .goth + move.l player2,a0 +.goth tst ob_hitpoints(a0) + ble.s .allover + rts + +waitrestart bsr getcntrl + ; + bsr checkfireb + beq.s .rts + ; + move ob_weapon(a5),d0 + move d0,-(a7) + ; + lea p1x(pc),a0 + lea player1_+4,a1 + cmp.l player1,a5 + beq.s .got + lea p2x(pc),a0 + lea player2_+4,a1 +.got lea ob_info(a5),a2 + move #(objinfof-objinfo-4)>>1-1,d0 +.loop move (a1)+,(a2)+ + dbf d0,.loop + move (a0)+,ob_x(a5) + move (a0)+,ob_z(a5) + move (a0)+,ob_rot(a5) + ; + move (a7)+,d0 + move d0,ob_weapon(a5) + ; + move.l ob_shape(a5),a0 + move.l 4(a0),ob_chunks(a5) + move.l (a0),a0 + move.l a0,ob_shape(a5) + ; + bsr resetplayer + move #-1,ob_update(a5) + st ob_lastbut(a5) + ; +.rts rts + +playerdeath bsr getcntrl + ; + addq #4,ob_rot(a5) + addq #4,ob_eyey(a5) + cmp #-32,ob_eyey(a5) + blt .rts + ; + move #-32,ob_eyey(a5) + move.l #playerdead,ob_logic(a5) + move #63,ob_delay(a5) + ; + cmp #2,gametype + bne.s .notcom + ; + ;death in combat game! + ; + move.l player1,a0 + cmp.l a5,a0 + bne.s .got + move.l player2,a0 +.got tst ob_hitpoints(a0) + ble.s .draw ;it's a draw! + ; +.win move.l a5,-(a7) + ; + move.l a0,a5 + clr ob_collwith(a5) + clr ob_colltype(a5) + bsr message + dc.b 'winner!',0 + even + ; + move.l (a7)+,a5 + subq #1,ob_lives(a5) + move #-1,ob_update(a5) ;refresh 'lives' + bsr message + dc.b 'loser!',0 + even + ; + rts +.draw ; + rts +.notcom ; + ;2 player? do damage to both players! + ; + tst gametype + beq.s .nlink + bsr getother + move #-1,ob_update(a0) + subq #1,ob_lives(a0) + bpl.s .nlink + clr ob_lives(a0) + ; +.nlink move #-1,ob_update(a5) + subq #1,ob_lives(a5) + bgt.s .rts + clr ob_lives(a5) + bsr message + dc.b 'game over',0 + even + ; +.rts rts + +getother ;get other player from a5! + ; + move.l player1(pc),a0 + cmp.l a0,a5 + bne.s .rts + move.l player2(pc),a0 +.rts rts + +redpal move.l #palettesr,ob_palette(a5) + move #2,ob_paltimer(a5) + rts + +playerhit tst ob_damage(a0) + beq.s .rts + st ob_update(a5) + bsr redpal +.rts rts + +playerdie bsr redpal + clr ob_hitpoints(a5) + st ob_update(a5) + move.l #playerdeath,ob_logic(a5) + clr ob_colltype(a5) + clr ob_collwith(a5) + rts + +inchealth ;inc health of a5 + ; + addq #5,ob_hitpoints(a5) + cmp #25,ob_hitpoints(a5) + ble.s .skip + move #25,ob_hitpoints(a5) +.skip st ob_update(a5) + bsr message + dc.b 'health bonus!',0 + even + rts + +healthgot bsr playtsfx + move.l a5,-(a7) + move.l a0,a5 + bsr inchealth + move.l (a7)+,a5 + bra killobject + +playtsfx move.l a0,-(a7) + move.l tokensfx(pc),a0 + moveq #64,d0 + moveq #0,d1 + bsr playsfx + move.l (a7)+,a0 + rts + +weapongot bsr playtsfx + ; + move.l a5,-(a7) + move ob_weapon(a5),d0 ;weapon #! + move.l a0,a5 + bsr weapond0 + move.l (a7)+,a5 + bra killobject + +weapond0 cmp ob_weapon(a5),d0 + bne .new + ; + subq.b #1,ob_reload(a5) + beq.s .skip + cmp.b #1,ob_reload(a5) + bne.s .notfull + bsr message + dc.b 'weapon boosted to full!',0 + even + bra.s .kill + ; +.notfull bsr message + dc.b 'weapon boost!',0 + even + ; +.kill st ob_update(a5) + rts + ; +.skip addq.b #1,ob_reload(a5) + add #250,ob_mega(a5) + cmp #ok,ob_mega(a5) + bcs.s .mwb + ; + bsr message + dc.b 'ultra mega overkill!!!',0 + even + rts + ; +.mwb bsr message + dc.b 'mega weapon boost!',0 + even + rts + ; +.new move d0,ob_weapon(a5) + move.b #ireload,ob_reload(a5) + st ob_update(a5) + bsr message + dc.b 'new weapon!',0 + even + bra.s .kill + +invisigot move.l a5,-(a7) + move.l a0,a5 + ; + add #1500,ob_invisible(a5) + bsr message + dc.b 'invisibility!',0 + even + ; + move.l (a7)+,a5 + bra killobject + +invincgot tst ob_hyper(a0) + bne.s .rts + move.l a5,-(a7) + move.l a0,a5 + ; + move #-$200,ob_hyper(a5) + bsr message + dc.b 'hyper!',0 + even + ; + move.l (a7)+,a5 + bra killobject + ; +.rts rts + +bouncygot cmp #3,ob_bouncecnt(a0) + bcc.s .rts + addq #1,ob_bouncecnt(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'bouncy bullets!',0 + even + move.l (a7)+,a5 + bra killobject +.rts rts + +thermogot add #1500,ob_thermo(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'got the thermo glasses!',0 + even + move.l (a7)+,a5 + bra killobject + +maxsize equ $280 + +playertimers tst ob_mega(a5) + beq.s .nomega + subq #1,ob_mega(a5) + bne.s .nomega + bsr message + dc.b 'mega wepaon out...',0 + even + ; +.nomega tst ob_thermo(a5) + beq.s .noth + subq #1,ob_thermo(a5) + bne.s .noth + bsr message + dc.b 'thermo glasses out...',0 + even + ; +.noth tst ob_messtimer(a5) + ble.s .notm + subq #2,ob_messtimer(a5) +.notm ; + tst ob_invisible(a5) + beq.s .noti + subq #1,ob_invisible(a5) + bne.s .noti + bsr message + dc.b 'invisibility out...',0 + even +.noti ; + tst ob_paltimer(a5) + beq.s .notp + subq #1,ob_paltimer(a5) + bne.s .notp + move.l #palettes,ob_palette(a5) +.notp ; + move ob_pixsizeadd(a5),d0 + beq.s .notpix + add d0,ob_pixsize(a5) + bne.s .pixnz + ; + clr ob_pixsizeadd(a5) + bra.s .notpix + ; +.pixnz cmp #24,ob_pixsize(a5) + bne.s .notpix + ; + move finished2(pc),finished + bne.s .notpix + ; + move ob_telex(a5),ob_x(a5) + move ob_telez(a5),ob_z(a5) + move ob_telerot(a5),ob_rot(a5) + neg ob_pixsizeadd(a5) +.notpix ; + move ob_hyper(a5),d0 + beq.s .nothyper + bpl.s .hplus + ; + ;hyper is minus! growing... + ; + subq #4,d0 + move d0,d1 + neg d1 + cmp #maxsize,d1 + bne.s .hdone + move #750<<2+maxsize,d0 + bra.s .hdone + ; +.hplus subq #4,d0 + cmp #maxsize,d0 + bhi.s .hdone2 + bne.s .noteq + bsr message + dc.b 'hyper out...',0 + even + move #maxsize,d0 +.noteq move d0,d1 + cmp #$200,d0 + bne.s .hdone + moveq #0,d0 + ; +.hdone move d1,ob_scale(a5) + ; + move d1,d2 + mulu #((pl_eyey<<16)/$200),d2 + swap d2 + neg d2 + move d2,ob_eyey(a5) + ; + move d1,d2 + mulu #((pl_firey<<16)/$200),d2 + swap d2 + neg d2 + move d2,ob_firey(a5) + ; + move d1,d2 + mulu #((pl_gutsy<<16)/$200),d2 + swap d2 + neg d2 + move d2,ob_gutsy(a5) + ; +.hdone2 move d0,ob_hyper(a5) +.nothyper ; + rts + +footstep move.l d0,-(a7) + move.l footstepsfx(pc),a0 + moveq #16,d0 + moveq #0,d1 + bsr playsfx + move.l (a7)+,d0 + rts + +pbuff ds.b 128 ;player controls to use! +pput dc 0 ;put new cntrl here +pget dc 0 ;read this for actual + +getcntrl move ob_cntrl(a5),d0 + lea joyx0(pc),a0 + move.l 0(a0,d0*8),joyx + move.l 4(a0,d0*8),joyb + rts + +maxrotsp equ $40000 +rotacc equ $20000 +rotrevacc equ $40000 +rotsetacc equ $20000 + +rotplayer ;return rot in d0, leave a0 + ; + move joys(pc),d0 ;strafing? + bne.s .norot + move joyx(pc),d0 + beq.s .norot + ; + move.l #rotacc,d1 ;rotacc + move ob_rotspeed(a5),d2 + beq.s .useacc + eor d2,d0 + bpl.s .useacc + move.l #rotrevacc,d1 ;fast rev! +.useacc move joyx(pc),d0 + bpl.s .plus + neg.l d1 +.plus add.l d1,ob_rotspeed(a5) + cmp.l #maxrotsp,ob_rotspeed(a5) + bgt.s .fixaccpl + cmp.l #-maxrotsp,ob_rotspeed(a5) + bge.s .addrot + move.l #-maxrotsp,ob_rotspeed(a5) + bra.s .addrot +.fixaccpl move.l #maxrotsp,ob_rotspeed(a5) + bra.s .addrot + ; +.norot tst.l ob_rotspeed(a5) + beq.s .skip + bpl.s .orpl + add.l #rotsetacc,ob_rotspeed(a5) + ble.s .addrot +.clrrot clr.l ob_rotspeed(a5) + bra.s .skip +.orpl sub.l #rotsetacc,ob_rotspeed(a5) + bmi.s .clrrot + ; +.addrot move.l ob_rotspeed(a5),d0 + add.l d0,ob_rot(a5) + ; +.skip rts + +moveplayer ;work out movement vector into d0/d1...check still/moving! + ; + move joyy(pc),d0 + bne .move + move joys(pc),d0 + beq.s .still + move joyx(pc),d0 + bne.s .strafe + ; +.still move ob_bounce(a5),d1 + bne.s .nob + rts +.nob add #30,ob_bounce(a5) + move ob_bounce(a5),d1 + and #127,d1 + cmp #30,d1 + bcc .fskip + clr ob_bounce(a5) + clr ob_frame(a5) + bra footstep + ; +.strafe ;do strafe! X rot in d0 + ; + move.l camrots(pc),a1 + lsl #6,d0 ;* ninety degrees + add ob_rot(a5),d0 + and #255,d0 + lea 0(a1,d0*8),a1 + ; + move ob_movspeed(a5),d0 + move d0,d1 + muls 2(a1),d0 + add.l d0,d0 + muls 6(a1),d1 + add.l d1,d1 + neg.l d0 + add.l d0,d6 + add.l d1,d7 + bra .check + ; +.move ;and possibly strafe! + ; + ;work out move vec into d0/d1 + ; + neg d0 + muls ob_movspeed(a5),d0 ;speed + move.l camrots(pc),a1 + move ob_rot(a5),d1 + and #255,d1 + lea 0(a1,d1*8),a1 + move d0,d1 + muls 2(a1),d0 + add.l d0,d0 + muls 6(a1),d1 + add.l d1,d1 + neg.l d0 + add.l d0,d6 + add.l d1,d7 + move joys(pc),d0 + beq.s .check + move joyx(pc),d0 + bne.s .strafe +.check ; + bsr checknewslow + beq.s .newpos + bsr adjustpos + beq.s .newpos + bsr adjustpos + beq.s .newpos + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + bra.s .bounce + ; +.newpos move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + ; +.bounce move ob_bounce(a5),d2 + add #20,ob_bounce(a5) + move ob_bounce(a5),d1 + and #255,d2 + cmp #64,d2 + bcc.s .fskip + and #255,d1 + cmp #64,d1 + bcs.s .fskip + ; + bsr footstep +.fskip ; + move.l ob_framespeed(a5),d1 + add.l d1,ob_frame(a5) + and #3,ob_frame(a5) + rts + +checkevent bsr checknew2 + beq.s .rts + ; + move ob_pixsizeadd(a5),d0 + or finished2(pc),d0 + bne .rts + ; + move zo_ev(a4),d0 ;poly->event + bmi.s .rts + ; + cmp #24,d0 + bne.s .notexit + ; + move #3,finished2 ;pattern done! + move #1,ob_pixsizeadd(a5) ;pixel out + tst gametype + beq.s .onewin + move.l player1(pc),a0 + cmp.l a5,a0 + bne.s .gotcha + move.l player2(pc),a0 +.gotcha move #2,ob_pixsizeadd(a0) ;pixel out other player +.onewin ; + bsr dotelesfx + moveq #24,d0 + ; +.notexit cmp #19,d0 + bcc.s .noclr + ; + ;OK, gotta clear all 'event' zones with same type! + ; + move.l map_poly(pc),a0 + move.l map_ppnt(pc),a1 + moveq #32,d1 +.loop2 cmp zo_ev(a0),d0 + bne.s .skip2 + neg zo_ev(a0) +.skip2 add.l d1,a0 + cmp.l a1,a0 + bcs.s .loop2 + ; +.noclr move.l a5,eventobj + movem.l d6-d7,-(a7) + bsr execevent + movem.l (a7)+,d6-d7 + move.l eventobj(pc),a5 + ; +.rts rts + + ;these updated after a call to 'getcntrl' + ; +joyx dc 0 ;left/rite +joyy dc 0 ;for/back +joyb dc 0 ;fire +joys dc 0 ;strafe + +checksuck cmp.l sucking(pc),a5 + bne.s .nosuck + ; + move.l suckangle(pc),a0 + moveq #25,d0 + move d0,d1 + muls 2(a0),d0 + neg.l d0 + add.l d0,d6 + ; + muls 6(a0),d1 + add.l d1,d7 + bsr checknewslow + beq.s .newok + bsr adjustpos + beq.s .newok + bsr adjustpos + beq.s .newok + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + ; +.newok move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + ; +.nosuck rts + +playerlogic bsr playertimers ;do timer stuff... + bsr getcntrl ;player control + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + ; + ;getting sucked? + ; + ;OK, are we getting pushed/squashed? + ; + bsr checknewslow + beq.s .newok + bsr adjustpos + beq.s .newok2 + bsr adjustpos + beq.s .newok2 + ; + subq #1,ob_hitpoints(a5) + ble playerdie + st ob_update(a5) + bra redpal + ; +.newok2 move.l d6,ob_x(a5) + move.l d7,ob_z(a5) +.newok ; + bsr checksuck + bsr checkevent ;in an event zone? + bsr rotplayer ;rotate + bsr moveplayer ;forward/back/strafe +checkfire ; + move cheat(pc),d0 + beq.s .nocheat + ; + qkey $5f ;help????? + beq.s .noend + move #3,finished + rts +.noend key 10 + beq.s .nohealth + bsr inchealth + bra.s .nocheat +.nohealth move.b (a0),d1 + moveq #5,d0 +.loop btst d0,d1 + bne.s .gotch + subq #1,d0 + bne.s .loop + bra.s .nocheat +.gotch ; + subq #1,d0 + bsr weapond0 + ; +.nocheat bsr checkfireb + beq .nofire + tst.b ob_reloadcnt(a5) + bne .nofire2 + ; + move ob_collwith(a5),d2 + and #3,d2 + eor #3,d2 ;colltype + moveq #0,d3 ;collwith! + ; + move ob_weapon(a5),d0 + mulu #18,d0 + lea wtable(pc),a0 + movem 0(a0,d0),d4-d6 + movem.l 6(a0,d0),a2-a3 + move.l 14(a0,d0),-(a7) + ; + tst ob_mega(a5) + beq.s .nomega + ; + cmp #ok,ob_mega(a5) + bcc.s .threeway + ; + movem.l d2-d6/a2-a3,-(a7) + addq #4,ob_rot(a5) + bsr shoot + movem.l (a7)+,d2-d6/a2-a3 + subq #8,ob_rot(a5) + bsr shoot + addq #4,ob_rot(a5) + bra.s .shdone +.threeway ; + movem.l d2-d6/a2-a3,-(a7) + addq #8,ob_rot(a5) + bsr shoot + movem.l (a7),d2-d6/a2-a3 + sub #16,ob_rot(a5) + bsr shoot + movem.l (a7)+,d2-d6/a2-a3 + addq #8,ob_rot(a5) + ; +.nomega bsr shoot + ; +.shdone move.l (a7)+,a0 + move.l (a0),a0 + moveq #32,d0 + moveq #0,d1 + bsr playsfx + ; + move.b ob_reload(a5),ob_reloadcnt(a5) + rts + ; +.nofire tst.b ob_reloadcnt(a5) + beq.s .rts +.nofire2 subq.b #1,ob_reloadcnt(a5) +.rts rts + + ; + ;hitpoints + ;damage + ;speed + ; +wtable dc 1,1,32 + dc.l bullet1,sparks1,shootsfx3 + dc 5,2,36 + dc.l bullet2,sparks2,shootsfx5 + dc 10,2,40 + dc.l bullet3,sparks3,shootsfx + dc 15,3,40 + dc.l bullet4,sparks4,shootsfx4 + dc 20,5,24 + dc.l bullet5,sparks5,shootsfx5 + +adjustposq ; + neg d0 + move d0,d1 + ; + muls zo_a(a4),d0 + add.l d0,d0 + ; + muls zo_b(a4),d1 + add.l d1,d1 + ; + sub.l d0,d6 + sub.l d1,d7 + ; + rts + +adjustpos bsr adjustposq + ; + ;addq #1,(a4) + ;move.l a4,-(a7) + bsr checknewslow + ;move.l (a7)+,a3 + ;addq #1,(a3) + tst d1 + rts + +checkfireb move joyb(pc),d0 + beq.s .nofire + tst ob_lastbut(a5) + bne.s .skip + move d0,ob_lastbut(a5) + rts +.skip moveq #0,d0 + rts +.nofire clr ob_lastbut(a5) + rts + +eventobj dc.l 0 + +calcbounce ;calculate bounce vector...poly in a4, obj in a5 + ; + ;R=2 N (N dot V) - V + ; + ;where R=reflect vector, N=normal to poly, V=original vector + ; + subq #1,ob_bouncecnt(a5) + bge.s .nok + bsr makesparksq + bra killobject +.nok ; + move.l closewall(pc),a4 + movem ob_nxvec(a5),d0-d1 ;normalized dir + movem zo_na(a4),d2-d3 ;normal to poly + neg d2 + ; + ;calc dot product: + ; + move d0,d4 + muls d2,d4 + move d1,d5 + muls d3,d5 + add.l d5,d4 + add.l d4,d4 + swap d4 ;dot product? + ; + muls d4,d2 + lsl.l #2,d2 + swap d0 + clr d0 + sub.l d0,d2 + swap d2 + ; + muls d4,d3 + lsl.l #2,d3 + swap d1 + clr d1 + sub.l d1,d3 + swap d3 + ; + movem d2-d3,ob_nxvec(a5) + ; + neg d2 + muls ob_movspeed(a5),d2 + add.l d2,d2 + muls ob_movspeed(a5),d3 + add.l d3,d3 + ; + movem.l d2-d3,ob_xvec(a5) + ; + bsr checkvecs + beq.s putfire + bra calcbounce + +firelogic ; + bsr checkvecs + bne calcbounce +putfire ; + addq #1,ob_frame(a5) + move ob_frame(a5),d0 + move.l ob_shape(a5),a0 + cmp 2(a0),d0 + bcs.s .skip + clr ob_frame(a5) +.skip ; + rts + +moveblood lea blood(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + tst bl_y(a5) + ble.s .do + ; + move.l sucking(pc),d0 + beq.s .kill + ; + move.l bl_xvec(a5),d0 + add.l d0,bl_x(a5) + move.l bl_zvec(a5),d1 + add.l d1,bl_z(a5) + ; + move.l bl_dest(a5),a0 + move bl_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move bl_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 + cmp.l #64*64,d0 + bcc.s .loop + bra.s .kill + ; +.do add.l #$8000,bl_yvec(a5) + ; + movem.l bl_xvec(a5),d0-d2 + add.l d1,bl_y(a5) + blt.s .ok + ; +.kill move.l a5,a0 + killitem blood + move.l a0,a5 + bra .loop + ; +.ok add.l d0,bl_x(a5) + add.l d2,bl_z(a5) + bra .loop + ; +.done rts + +drawblood lea blood(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + move bl_x(a5),d0 + sub camx(pc),d0 + move bl_y(a5),d1 + ble.s .blok + neg d1 +.blok sub camy(pc),d1 + move bl_z(a5),d2 + sub camz(pc),d2 + ; + ;rotate x/z around cam... + ; + move d0,d3 + move d2,d5 + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 ;X + ; + muls cm3(pc),d3 + muls cm4(pc),d2 + add.l d3,d2 + add.l d2,d2 + swap d2 ;Z + ; + tst d2 + beq .loop + cmp #maxz,d2 + bcc .loop + ; + ext.l d0 + lsl.l #focshft,d0 + divs d2,d0 + cmp minx(pc),d0 + blt .loop + cmp maxx(pc),d0 + bge .loop + ; + ext.l d1 + lsl.l #focshft,d1 + divs d2,d1 + cmp miny(pc),d1 + blt .loop + cmp maxy(pc),d1 + bge .loop + ; + cmp #32,d2 + bcc.s .pix + tst bl_y(a5) + bgt.s .pix + ; + ;blit to screen! + ; + move #$20,$dff09a + ; + bsr savernd + move.l window(pc),a0 + move wi_bh(a0),d0 + subq #8,d0 + bsr rndn + move d0,d2 ;Y + ; + move wi_bw(a0),d0 + subq #8,d0 + bsr rndn ;X + add wi_x(a0),d0 + move d2,d1 + ; + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #51,d2 + bsr blit + ; + bsr loadrnd + ; + move.l a5,a0 + killitem blood + move.l a0,a5 + ; + move #$8020,$dff09a + bra .loop +.pix ; + add midx(pc),d0 + add midy(pc),d1 + ; + move.l darktable(pc),a0 + move 0(a0,d2*2),d3 + ; + move.l cop(pc),a1 + ; + lea coloffs,a2 + add.l 0(a2,d0*4),a1 + mulu copmod(pc),d1 + ; + move blcols(pc,d3*2),d3 + and bl_color(a5),d3 + move d3,0(a1,d1.l) + bra .loop + ; +.done rts + +blcols dc $ccc,$bbb,$aaa,$999,$888,$777,$666,$555 + dc $444,$333,$222,$111,$111,$111,$111,$111 + +shaperender dc.l drawobjnorm ;default! + +drawshape_1sc ;draw shape with one frame, scaled! + ; + move.l ob_shape(a5),a0 + move ob_frame(a5),d0 + add.l 12(a0,d0*4),a0 + move ob_scale(a5),d7 + bra drawshape + +drawshape_1 ; + move.l ob_shape(a5),a0 + move ob_frame(a5),d0 + add.l 12(a0,d0*4),a0 + move #$200,d7 ;scale + bra drawshape + +drawshape_8 ; + ;shape has 8 rotations, and a scale! + ; + bsr calcangle2 + add #16,d0 + sub ob_rot(a5),d0 + lsr #5,d0 + and #7,d0 + move ob_frame(a5),d1 + lsl #3,d1 + or d1,d0 + move.l ob_shape(a5),a0 + move ob_scale(a5),d7 + add.l 12(a0,d0*4),a0 + ; +drawshape move ob_x(a5),d0 + move ob_y(a5),d1 + move ob_z(a5),d2 +drawshape_q ; + ;A0=shape + ;D0=X + ;D1=Y + ;D2=Z + ;D7=sclae factor + ; + ;rotate Z around camera! + ; + sub camx(pc),d0 + sub camy(pc),d1 + sub camz(pc),d2 + ; + move d0,d3 + move d2,d5 + muls cm3(pc),d3 + muls cm4(pc),d2 + add.l d3,d2 + add.l d2,d2 + swap d2 + ; + tst d2 + ble .rts + cmp #maxz,d2 + bcc .rts + ; + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 + ; + move.l memat(pc),a1 + add.l #sh_size,memat + movem d0-d2,sh_x(a1) + move.l a0,sh_shape(a1) + move d7,sh_scale(a1) + move.l shaperender(pc),sh_render(a1) + ; + lea shapelist(pc),a2 +.loop move.l (a2),d0 + beq.s .end + move.l a2,a3 + move.l d0,a2 + cmp sh_z(a2),d2 ;nearer...further in list + ble.s .loop + move.l a2,(a1) + move.l a1,(a3) + rts +.end move.l d0,(a1) + move.l a1,(a2) +.rts rts + +checknew2 ;check trigger zone + move.l map_grid(pc),a0 + addq #4,a0 + bra.s checknew_ + +gs equ 1< furthest wall list. + ; + ;optimizations... + ;check if both z's are negative after rotation + ;check if projected left/rite ends are on screen + ; + addq #1,frame + ; + clr.l inlist + move.l #inlist,inlistf + ; + move.l map_poly(pc),a4 + move.l map_ppnt(pc),a3 + move.l map_grid(pc),a2 + movem camx(pc),d6-d7 ;x,z + lsr #grdshft,d6 + lsr #grdshft,d7 + lea gridoffs(pc),a6 + moveq #(gridoffsf-gridoffs)>>2-1,d5 + ; +.loop movem (a6)+,d0-d1 + add d6,d0 + cmp #32,d0 + bcc .skip + add d7,d1 + cmp #32,d1 + bcc .skip + ; + ;d0,d1=x/z of map to check! + ; + lsl #5,d1 ;Y*32... + add d1,d0 ;+X + lea 0(a2,d0*8),a0 ;mapgrid + move (a0)+,d4 ;how many polys here + bmi .skip + move (a0),d0 ;poly data offset + lea 0(a3,d0*2),a0 + ; +.loop2 move (a0)+,d0 ;poly# + lsl #5,d0 + lea 0(a4,d0),a1 ;actual poly + ; + bsr dothezone + ; + dbf d4,.loop2 ;finish sq + ; +.skip dbf d5,.loop ;gridoffs + ; + ;now do rots/morphs... + ; + lea rotpolys(pc),a3 + ; +.loop3 move.l (a3),a3 + tst.l (a3) + beq.s .rpdone + ; + move.l rp_first(a3),a4 + move rp_num(a3),d4 + subq #1,d4 + ; +.loop4 move.l a4,a1 + bsr dothezone2 + ; + lea 32(a4),a4 + dbf d4,.loop4 + ; + bra.s .loop3 +.rpdone ; +makeoutlist ;create outlist from inlist + ; + clr.l outlist + move.l #outlist,outlistf + ; +.loop lea inlist(pc),a0 + move.l (a0),d0 + beq .done + move.l a0,a2 ;save previous! + move.l d0,a0 + ; + ;OK, see if any are in front of a0... + ; + lea inlist(pc),a1 + ; +.loop2 move.l (a1),d0 + beq .none + move.l a1,a3 + move.l d0,a1 + cmp.l a0,a1 + beq.s .loop2 ;don't compare with self! + ; + ;check screen pos overlap... + ; + move wl_rsx(a0),d0 + cmp wl_lsx(a1),d0 + blt .loop2 + ; + move wl_lsx(a0),d1 + cmp wl_rsx(a1),d1 + bgt .loop2 + ; + ;check near/far Z overlap + ; + move wl_nz(a1),d2 + cmp wl_fz(a0),d2 + bge .loop2 ;behind! + ; + move wl_fz(a1),d2 + cmp wl_nz(a0),d2 + ble .swap + ; + tst wl_open(a1) + bne .swap + ; + ;look at a0 points against a1 line... + ; + movem wl_a(a1),d5-d6 + move.l wl_c(a1),d7 + ; + move wl_lx(a1),d0 + sub wl_lx(a0),d0 + muls d5,d0 + move wl_lz(a1),d1 + sub wl_lz(a0),d1 + muls d6,d1 + add.l d1,d0 + eor.l d7,d0 + ; + move wl_lx(a1),d1 + sub wl_rx(a0),d1 + muls d5,d1 + move wl_lz(a1),d2 + sub wl_rz(a0),d2 + muls d6,d2 + add.l d2,d1 + eor.l d7,d1 + ; + ;if both a0 in front, no swap + ; + move.l d0,d4 + or.l d1,d4 + bpl .loop2 ;both a0's in front of a1! + ; + ;if both a0 behind, swap + ; + and.l d1,d0 + bmi .swap ;both a0's behind a1! + ; + ;look at a1 points against a0 line! + ; + movem wl_a(a0),d5-d6 + move.l wl_c(a0),d7 + ; + move wl_lx(a0),d2 + sub wl_lx(a1),d2 + muls d5,d2 + move wl_lz(a0),d3 + sub wl_lz(a1),d3 + muls d6,d3 + add.l d3,d2 + eor.l d7,d2 + ; + move wl_lx(a0),d3 + sub wl_rx(a1),d3 + muls d5,d3 + move wl_lz(a0),d4 + sub wl_rz(a1),d4 + muls d6,d4 + add.l d4,d3 + eor.l d7,d3 + ; + move.l d2,d4 + and.l d3,d4 + bmi .loop2 ;both a1's behind a0! + ; + or.l d3,d2 + bmi .loop2 + ; +.swap move.l a1,a0 + move.l a3,a2 + bra .loop2 + ; +.none ;OK, none in front of this (a0) + ; + move.l (a0),(a2) ;unlink from inlist + clr.l (a0) + ; + move.l outlistf(pc),a2 + move.l a0,(a2) + move.l a0,outlistf + bra .loop + ; +.done rts + +dothezone2 ; + move frame(pc),d0 + cmp zo_done(a1),d0 + beq.s .rts + move d0,zo_done(a1) + tst zo_open(a1) + bmi.s .rts + ; + movem d4-d7,-(a7) + ; + movem zo_lx(a1),d0-d3 ;x1,z1,x2,z2 + movem camx(pc),d6-d7 + ; + move #maxz,d4 + move d4,d5 + neg d5 + ; + sub d6,d0 + cmp d4,d0 + bge.s .rts2 + cmp d5,d0 + ble.s .rts2 + ; + sub d7,d1 + cmp d4,d1 + bge.s .rts2 + cmp d5,d1 + ble.s .rts2 + ; + sub d6,d2 + cmp d4,d2 + bge.s .rts2 + cmp d5,d2 + ble.s .rts2 + ; + sub d7,d3 + cmp d4,d3 + bge.s .rts2 + cmp d5,d3 + bgt dothezone3 ;.rts2 + ; +.rts2 movem (a7)+,d4-d7 + ; +.rts rts + +dothezone ; + move frame(pc),d0 + cmp zo_done(a1),d0 + beq rts ;.skip3 + move d0,zo_done(a1) + tst zo_open(a1) + bmi rts ;.skip3 + ; + ;OK, setup: + ; + ;d0=lx,d1=lz,d2=rx,d3=rz + ;d4=t,d5=sc,d6=dist + ; + ;back face/dist check... + ; + movem d4-d7,-(a7) + ; + movem zo_lx(a1),d0-d3 ;x1,z1,x2,z2 + movem camx(pc),d6-d7 + ; + sub d6,d0 + sub d7,d1 + sub d6,d2 + sub d7,d3 + ; +dothezone3 move d0,d4 + move d1,d5 + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 + ; + muls cm3(pc),d4 + muls cm4(pc),d1 + add.l d4,d1 + add.l d1,d1 + swap d1 ;LZ + ; + move d2,d4 + move d3,d5 + muls cm1(pc),d2 + muls cm2(pc),d5 + add.l d5,d2 + add.l d2,d2 + swap d2 ;RX + ; + muls cm3(pc),d4 + muls cm4(pc),d3 + add.l d4,d3 + add.l d3,d3 + swap d3 ;RZ + ; + ;check Z's... + tst d1 + bgt.s .zok + tst d3 + ble .skip2 +.zok ; + cmp #maxz,d1 + blt.s .zok2 + cmp #maxz,d3 + bge .skip2 +.zok2 ; + ;do backface check...generate a,b,c... + ; + rol.l #exshft,d0 + rol.l #exshft,d1 + rol.l #exshft,d2 + rol.l #exshft,d3 + ; + move d1,d4 + sub d3,d4 ;a + move d2,d5 + sub d0,d5 ;b + ; + move d0,d6 + muls d4,d6 + move d1,d7 + muls d5,d7 + add.l d7,d6 + bpl.s .front + ; + ;backface showing!... + bra .skip2 +.front ; + move.l memat(pc),a5 + ; + movem d0-d5,wl_lx(a5) + move.l d6,wl_c(a5) + ; + ;work out some screen positions! + tst d1 + bgt.s .z1ok + ; + ;lz bad, rz must be OK... + ; +.ov1 move minx(pc),wl_lsx(a5) + bra.s .z1sk + ; +.z1ok ext.l d0 + lsl.l #focshft,d0 + divs d1,d0 + bvs.s .ov1 + subq #1,d0 + cmp maxx(pc),d0 + bge .skip2 + move d0,wl_lsx(a5) +.z1sk ; + tst d3 + bgt.s .z2ok + ; + ;rz bad, lz must be OK... + ; +.ov2 move maxx(pc),wl_rsx(a5) + bra.s .z2sk + ; +.z2ok ext.l d2 + lsl.l #focshft,d2 + divs d3,d2 + bvs.s .ov2 + addq #1,d2 + cmp minx(pc),d2 + blt .skip2 + move d2,wl_rsx(a5) +.z2sk ; + cmp d1,d3 + bge.s .zskp + exg d1,d3 +.zskp movem d1/d3,wl_nz(a5) ;near/far Z + ; + move.l zo_t(a1),wl_t(a5) + move.l zo_t+4(a1),wl_t+4(a5) + move zo_sc(a1),wl_sc(a5) + move zo_open(a1),wl_open(a5) + ; + ;add to end of inlist... + ; + clr.l (a5) + move.l inlistf(pc),a1 + move.l a5,(a1) + move.l a5,inlistf + add.l #wl_size,memat + ; +.skip2 movem (a7)+,d4-d7 + ; +.skip3 rts + + elseif + +makeoutlist2 ;create outlist from inlist + ; +.loop0 lea inlist(pc),a0 + ; +.loop move.l (a0),d0 + beq .done + move.l a0,a2 ;save previous! + move.l d0,a0 + ; + ;OK, see if any are in front of a0... + ; + lea inlist(pc),a1 + ; +.loop2 move.l (a1),d0 + beq .none + move.l a1,a3 + move.l d0,a1 + ; + cmp.l a0,a1 + beq.s .loop2 ;don't compare with self! + ; + ;see if a1 is in front of a0 + ; + move wl_nz(a1),d0 + cmp wl_fz(a0),d0 + bge .loop2 ;behind! + ; + move wl_fz(a1),d0 + cmp wl_nz(a0),d0 + ble .swap + ; + ;now, compare screen x coords..... + ; + move wl_rsx(a0),d0 + cmp wl_lsx(a1),d0 + blt .loop2 + ; + move wl_lsx(a0),d0 + cmp wl_rsx(a1),d0 + bgt .loop2 + ; + ;look at a0 points against a1 line + ; + ;If Sgn((x3-x1)*a2+(y3-y1)*b2)<>Sgn(c2) + ; If Sgn((x3-x2)*a2+(y3-y2)*b2)<>Sgn(c2) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + movem wl_a(a1),d5-d6 + move.l wl_c(a1),d7 + ; + move wl_lx(a1),d0 + sub wl_lx(a0),d0 + muls d5,d0 + move wl_lz(a1),d1 + sub wl_lz(a0),d1 + muls d6,d1 + add.l d1,d0 + eor.l d7,d0 + ; + move wl_lx(a1),d1 + sub wl_rx(a0),d1 + muls d5,d1 + move wl_lz(a1),d2 + sub wl_rz(a0),d2 + muls d6,d2 + add.l d2,d1 + eor.l d7,d1 + ; + ;OK, screen X's overlap... + ;if both a0 in front, no swap + ; + move.l d0,d4 + or.l d1,d4 + bpl .loop2 + ; + ;if both a0 behind, swap + ; + move.l d0,d4 + and.l d1,d4 + bmi .swap + ; + ;bra .loop2 + ; + ;elseif + ;look at a1 points against a0 line + ; + ;If Sgn((x1-x3)*a1+(y1-y3)*b1)=Sgn(c1) + ; If Sgn((x1-x4)*a1+(y1-y4)*b1)=Sgn(c1) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + movem wl_a(a0),d5-d6 + move.l wl_c(a0),d7 + ; + move wl_lx(a0),d2 + sub wl_lx(a1),d2 + muls d5,d2 + move wl_lz(a0),d3 + sub wl_lz(a1),d3 + muls d6,d3 + add.l d3,d2 + eor.l d7,d2 + ; + move wl_lx(a0),d3 + sub wl_rx(a1),d3 + muls d5,d3 + move wl_lz(a0),d4 + sub wl_rz(a1),d4 + muls d6,d4 + add.l d4,d3 + eor.l d7,d3 + ; + ;if both a1's behind, no swap + ; + move.l d2,d4 + and.l d3,d4 + bmi .loop2 ;both a1's behind... + ; + ;if both a1's in front, swap + move.l d2,d4 + or.l d3,d4 + bpl .swap + ; + bra .loop2 + ; + ;elseif + ; +.swap ;a1 is infront of a0! make a1 new frontmost + bra .loop + move.l a1,a0 + move.l a3,a2 + bra .loop2 + ; +.none ;OK, none in front of this (a0) + ; + move.l (a0),(a2) ;unlink from inlist + clr.l (a0) + move.l outlistf(pc),a2 + move.l a0,(a2) + move.l a0,outlistf + bra .loop0 + ; +.done ;move.l inlist(pc),d0 + ;bne .loop0 + rts + + elseif + +castwalls ;process 'walls' list + ; + move.l castrots(pc),a6 + move minx(pc),d7 + lea 0(a6,d7*8),a6 + move.l vertdraws(pc),a4 + ; +.loop ;do this vert line! + ; + lea outlist(pc),a5 + ; +.loop2 move.l (a5),d0 + beq .empty + move.l d0,a5 + ; + cmp wl_lsx(a5),d7 + blt.s .loop2 + cmp wl_rsx(a5),d7 + bgt.s .loop2 + ; + movem wl_lx(a5),d0-d1 + muls (a6),d0 + muls 2(a6),d1 + add.l d1,d0 ;LX! + bgt.s .loop2 + ; + movem wl_rx(a5),d1-d2 + muls (a6),d1 + muls 2(a6),d2 + add.l d2,d1 ;RX! + blt.s .loop2 + ; + sub.l d0,d1 + ; + swap d1 + tst d1 + ble.s .dfix + neg.l d0 + divu d1,d0 + bvc.s .noov +.dfix moveq #-1,d0 +.noov lsr #1,d0 ;fraction -> unsigned + ; + cmp wl_open(a5),d0 + bcs.s .loop2 + ; + movem wl_lx(a5),d1-d2 + muls 4(a6),d1 + muls 6(a6),d2 + add.l d2,d1 + add.l d1,d1 ;lz + ; + movem wl_rx(a5),d2-d3 + muls 4(a6),d2 + muls 6(a6),d3 + add.l d3,d2 + add.l d2,d2 ;rz + ; + sub.l d1,d2 + swap d2 + muls d0,d2 + add.l d2,d2 + add.l d1,d2 + ; + swap d2 + ; + cmp #exone,d2 + blt .loop2 + cmp #maxz<d2 + jsr -156(a6) + move.l d2,vbr + ; + lea ciaaname,a1 + jsr -498(a6) + move.l d0,ciaa + move.l d0,a0 + movem.l $64(a0),d0-d1 + movem.l d0-d1,rawstuff + move #$4000,$dff09a + move.l rawtable(pc),$64(a0) + move.l #rawkeyread,$68(a0) + move #$c000,$dff09a + ; + move.l #8,d0 + move.l #$10002,d1 + allocmem chipzero + move.l d0,chipzero + ; + move.l #256,d0 ;128 words high max! + moveq #2,d1 + allocmem qstrip + move.l d0,qstrip + ; + move.l #256,d0 + moveq #1,d1 + allocmem maptable + move.l d0,maptable + ; + move.l #32768,d0 + moveq #1,d1 + allocmem memory + move.l d0,memory + ; + move.l #320*vd_size,d0 + moveq #1,d1 + allocmem vertdraws + move.l d0,vertdraws + ; + move.l #maxz*2,d0 + moveq #1,d1 + allocmem darktable + move.l d0,darktable + ; + move.l #16*512*2,d0 ;16 shades, 256 words + moveq #1,d1 + allocmem map_rgbs + ; + move.l #map_rgbs_,map_rgbs + ;move.l d0,map_rgbs + ;add.l #16*512,d0 + move.l d0,map_rgbsw + add.l #16*512,d0 + move.l d0,map_rgbsr + ; + st paused + clr dispnest + clr.l font + bsr initsfx + bsr initvbint + bsr initdisplay + bsr dispoff + ; + lea magicfiles,a0 + bsr loadfiles + ; + move.l magic,a0 + move.l magicpal,a1 + bsr makeiff + bsr showiff + bsr dispon + move #50,vbcounter + ; + lea progfiles,a0 + bsr loadfiles + ; + bsr initbmappal + bsr initmed + bsr initser + bsr calcbaud + bsr makecoloffs + bsr initdarktable + ; + bset #15,remapped + bne .noremap + ; + move.l map_rgbs(pc),a0 + move #-1,(a0)+ + move.l a0,map_rgbsat + ; + lea bullet1,a0 + jsr remapanim + lea bullet2,a0 + jsr remapanim + lea bullet3,a0 + jsr remapanim + lea bullet4,a0 + jsr remapanim + lea bullet5,a0 + jsr remapanim + lea sparks1,a0 + jsr remapanim + lea sparks2,a0 + jsr remapanim + lea sparks3,a0 + jsr remapanim + lea sparks4,a0 + jsr remapanim + lea sparks5,a0 + jsr remapanim + ; + elseif + lea 128*128+groundtile,a2 + move.l a2,a0 + bsr addpal + lea groundtile,a0 + move.l a2,a1 + bsr remap + ; + lea 128*128+ceilingtile,a2 + move.l a2,a0 + bsr addpal + lea ceilingtile,a0 + move.l a2,a1 + bsr remap + elseif + ; + lea qpal,a0 + bsr addpal + lea qcols,a0 + lea qpal,a1 + bsr remap + ; + move.l map_rgbsat(pc),map_rgbsat2 +.noremap ; + move.l map_rgbsat2(pc),map_rgbsat + ; + moveq #0,d0 + bsr loadanobj ;load player1 + moveq #1,d0 + bsr loadanobj ;load player2 + moveq #2,d0 + bsr loadanobj ;load tokens (health) + ; + move.l map_rgbsat(pc),map_rgbsfrom + move.l map_rgbsat(pc),map_rgbsfrom2 + ; + alloclist objects,#maxobjects,#ob_size + alloclist doors,#maxdoors,#do_size + alloclist blood,#maxblood,#bl_size + alloclist gore,#maxgore,#go_size + alloclist rotpolys,#maxrotpolys,#rp_size + ; +.w5sex tst vbcounter + bgt .w5sex + ; + bsr dispoff + lea iffwindow,a0 + bsr freewindow + ; + move.l magic,a1 + freemem magic + move.l magicpal,a1 + freemem magicpal + ; + bra forbid + +checkdatadisk ;return eq if gloomdata: found! + ; + move.l dosbase(pc),a0 + move.l 34(a0),a0 + move.l 24(a0),a0 + add.l a0,a0 + add.l a0,a0 + addq #4,a0 + ; +.loop move.l (a0),d0 + beq.s .done + lsl.l #2,d0 + move.l d0,a0 + move.l 40(a0),a1 + add.l a1,a1 + add.l a1,a1 + cmp.b #9,(a1)+ ;9 chars + bne.s .loop + lea lockname(pc),a2 + moveq #8,d0 ;check 9 chars! +.loop2 cmp.b (a1)+,(a2)+ + bne.s .loop + dbf d0,.loop2 + rts + ; +.done moveq #-1,d0 + rts + +askdatadisk ; + ;make sure data disk is available... + ; + ;if 'gloomgame' is in CD, then use CD, else... + ;wait for 'gloomdata:' to get inserted! + ; + bsr permit + move.l #gamename,d1 + move.l #1005,d2 + move.l dosbase(pc),a6 + jsr -30(a6) ;open 'misc/script' + move.l d0,d1 + beq.s .nolock + jsr -36(a6) ;close it! + bra .load + ; +.nolock bsr forbid + bsr checkdatadisk + beq .dataok ;already there? + ; + lea diskmenu,a0 + bsr qmenu + ; + ;OK, gotta swap disks and pick up data files! + ; +.wfd bsr permit + move.l grbase(pc),a6 + jsr -270(a6) + bsr forbid + bsr checkdatadisk + bne.s .wfd + ; + bsr finitqmenu + ; +.dataok bsr permit + bsr undir ;release old lock! + move.l #lockname,d1 + moveq #-2,d2 + move.l dosbase(pc),a6 + jsr -84(a6) ;lock? + move.l d0,d1 + beq.s .wfd + jsr -126(a6) ;make current dir! + move.l d0,oldlock + ; +.load lea datafiles,a0 + bsr loadfiles + bra forbid + +undir move.l oldlock(pc),d1 + beq.s .rts + clr gloomdata + clr.l oldlock + move.l dosbase(pc),a6 + jsr -126(a6) ;CD to old current dir + move.l d0,d1 + jsr -90(a6) ;unlock old (mine!) +.rts rts + +oldlock dc.l 0 + +lockname dc.b 'gloomdata:',0 + even + +lagtext dc.b 'lAG?',0 + even + +syncup ;time to calculate frame lag! + ; + ;master can establish lag time... + ; + move linked(pc),d0 + bne.s .li +.rts rts +.li ; + bsr qsync +; ; +;.li move.l lagtext(pc),d0 +; bsr longput +;.rl lea lagtext(pc),a2 +;.rw bsr serwait +; cmp.b (a2)+,d0 +; bne.s .li +; tst.b (a2) +; bne.s .rw +; ; +; bsr qsync + ; +calclag tst linked + bmi .slave + ; + ;MASTER - average out 32 sends of random data! + ; + moveq #0,d6 ;sum + moveq #31,d5 ;32 samples + ; +.mloop moveq #0,d7 + add #69,d0 + bsr vwait + bsr serput + ; +.mwait addq #2,d7 + bsr vwait + bsr vwait + bsr serget + bmi.s .mwait + ; +.got add d7,d6 + dbf d5,.mloop + ; + lsr #7,d6 ;/32 = avg. /2=half, /2=25 FPS + addq #1,d6 ;safety... + ; + move d6,d0 + move d0,lagtime + bsr serput + bra initlag + ; +.slave ;OK, bounce back 32 items... + ; + moveq #31,d5 +.sloop bsr serwait + bsr serput + dbf d5,.sloop + ; + ;now, wait to get told lagtime! + ; + bsr serwait + and #255,d0 + move d0,lagtime + ; +initlag ;what to do... + ; + ;stick 'lagtime' dummy 'no events' into rec buff! + ;stick 'lagtime' dummy 'noevents' into pcntrl buffer + ; + move #$4000,$dff09a + ; + lea pbuff(pc),a0 ;controller buffer + lea rbuff(pc),a1 ;ser rec. buffer + moveq #31,d1 ;32*4=128 bytes! + moveq #0,d0 +.loop move.l d0,(a0)+ + move.l d0,(a1)+ + dbf d1,.loop + ; + move lagtime(pc),d0 + ; + clr pget + clr rget + move d0,pput + move d0,rput + ; + move #$c000,$dff09a + ; + rts + +lagtime dc 0 + +qsync ;OK, quick sync up! + ; + tst linked + beq.s .rts + ; +.loop bsr vwait + move.b #$80,d0 + bsr serput +.wait bsr serwait + cmp.b #$80,d0 + bne.s .loop + moveq #0,d0 + bsr serput +.wait2 bsr serwait + cmp.b #$80,d0 + beq.s .wait2 + tst.b d0 + bne.s .loop + ; +.rts rts + +initnewgame move gametype(pc),twowins + beq.s .skip + tst linked + beq.s .skip + ; + ifeq debugser + clr twowins + endc +.skip ; + tst.l map_test + bne.s .skhit + bset #15,gloomdata + bne.s .gotdata + ; +.skhit bsr askdatadisk +.gotdata ; + bsr qsync + ; + move.l medat(pc),a1 + jsr 12(a1) + ;move #$4000,fadevol + cmp #2,gametype + bne normalgame + ; + ;combat type game! + ; + move #6,p1_ob_collwith + move #5,p2_ob_collwith + ; + lea combatmenu,a0 + bsr qmenu + ; +.loop bsr selmenu + cmp #3,d0 + bcs .play + bne.s .loop + ; + ;change number of wins... + ; + addq.b #1,comnum + cmp.b #'9',comnum + bls .loop + move.b #'2',comnum + bra .loop + ; +.play add #49,d0 + move.b d0,comseriesnum + move #7,comsleft + ; + bsr finitqmenu + ; + move.b comnum(pc),d0 + sub.b #'0',d0 + ext d0 + move d0,p1lives + move d0,p2lives + ; + lea combatfiles(pc),a0 + bsr permit + bsr loadfiles + bra forbid + ; +normalgame ;check for continue offsets in 'gloomgame' file! + ; + move.l script(pc),scriptat ;default + move.l gloomgame(pc),a0 + lea conttxts(pc),a1 + lea conts(pc),a2 + moveq #0,d7 + ; +.loop move.l (a0)+,d0 + cmp.l #'game',d0 + beq.s .done + ; + ;another! + ; + addq #1,d7 + add.l script(pc),d0 ;OK, where to continue from! + move.l d0,(a2)+ + lea context(pc),a3 +.loop2 move.b (a3)+,(a1)+ + bne.s .loop2 + subq #1,a1 + move.l d0,a3 +.loop3 move.b (a3)+,(a1) + cmp.b #10,(a1)+ + bne.s .loop3 + clr.b -1(a1) + bra.s .loop + ; +.done tst d7 + beq initpstuff + addq #1,d7 + move.b d7,contmenu + ; + ;OK, need a continue game menu... + ; + lea gloom,a0 + lea gloompal,a1 + lea contmenu,a2 + bsr pmenu + ; + bsr selmenu + ; + bsr finitpmenu + ; + move curropt(pc),d0 + beq initpstuff + lea conts(pc),a0 + move.l -4(a0,d0*4),a0 +.leol cmp.b #10,(a0)+ + bne.s .leol + move.l a0,scriptat + ; +initpstuff move #4,p1_ob_collwith + move #4,p2_ob_collwith + moveq #3,d0 + tst linked + beq.s .nlink + moveq #6,d0 + moveq #1,d0 +.nlink move d0,p1lives + move d0,p2lives + move #25,p1health + move #25,p2health + move #0,p1weapon + move #0,p2weapon + move.b #ireload,p1reload + move.b #ireload,p2reload + ; + rts + +combatfiles dc.l combat + dc.b 'pics/combat',0 + even + dc.l combatpal + dc.b 'pics/combat.pal',0 + even + dc.l 0 + +conts ds.l 8 ;8 slots! + +combatmenu dc.b 4 + dc.b 'play spacehulk series',0 + dc.b 'play gothic tomb series',0 + dc.b 'play hell series',0 + dc.b 'start with ' +comnum dc.b '3 lives',0 + even + +context dc.b 'CONTINUE FROM ',0 + even + +contmenu dc.b 1 + dc.b 'START NEW GAME',0 +conttxts ds.b 160 + even + +execscript_med bsr waitquiet + ; + move.l medat(pc),a1 + move.l loadingmed(pc),a0 + jsr 8(a1) ;start title music! + ; +execscript cmp #2,gametype + beq scriptplay ;no script for combat game! + ; + move.l scriptat(pc),a0 + ; +.loop move.b (a0)+,d0 + cmp.b #10,d0 + beq.s .loop + and #31,d0 + bne.s .more +.loop2 cmp.b #10,(a0)+ + bne.s .loop2 + bra.s .loop +.more cmp #27,d0 + bcc.s .loop2 + add #96,d0 + ; + ;command! fetch the rest... + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + addq #1,a0 ;skip '_' + move.l a0,scriptat + cmp.l #'pict',d0 + beq scriptpict + cmp.l #'draw',d0 + beq scriptdraw + cmp.l #'text',d0 + beq scripttext + cmp.l #'wait',d0 + beq scriptwait + cmp.l #'play',d0 + beq scriptplay + cmp.l #'done',d0 + beq scriptdone + cmp.l #'dark',d0 + beq scriptdark + cmp.l #'show',d0 + beq scriptshow + cmp.l #'hide',d0 + beq scripthide + cmp.l #'loop',d0 + beq scriptloop + cmp.l #'rest',d0 + beq scriptrest + cmp.l #'tile',d0 + beq scripttile + ; + warn #$f80 + ; + ;Hmmm....bad command +.fucked ; + rts + ; +scriptdone bsr dispoff + move.l medat(pc),a1 + clr fadevol + jsr 12(a1) ;stop song + bra gameover + +sccont dc.b 'cont_' + even + +scriptrest ;restart point! + ;this changes...we add this to 'gloomgame' file now. + ; + move.l a0,d1 + sub.l script(pc),d1 ;offset from start of script! +.leol cmp.b #10,(a0)+ + bne.s .leol + move.l a0,scriptat + ; + move.l gloomgame(pc),a1 +.loop move.l (a1)+,d0 + cmp.l #'game',d0 + beq.s .add + cmp.l d0,d1 + bne.s .loop + ; + ;already here! + ; + bra execscript + ; +.add ;OK, gotta add new scriptat position! + ; + move.l d1,-(a1) + ; + ;save it out! + ; + bsr permit + lea gamename,a0 + move.l gloomgame,a1 + moveq #32,d0 + bsr savefile + bsr forbid + bra execscript + +scriptloop move.l script,scriptat + bra execscript + +scripthide bsr dispoff + bra execscript + +scriptshow clr pdelay + bsr dispon + bra execscript + +scriptdraw move.l pic,a0 + move.l picpal,a1 + bsr makeiff + bsr showiff + bra execscript + +fetchrest move.l scriptat,a0 + moveq #-1,d0 +.loop addq #1,d0 + move.b (a0)+,(a1) + cmp.b #10,(a1)+ + bne.s .loop + clr.b -(a1) + move.l a0,scriptat + rts + +picpath dc.b 'pics/' +picname ds.b 64 +pic_pal dc.b '.pal',0 + even + +pic dc.l 0 +picpal dc.l 0 + +freeiff push + move.l pic(pc),d0 + beq.s .skip1 + clr.l pic + move.l d0,a1 + freemem pic +.skip1 move.l picpal(pc),d0 + beq.s .skip2 + clr.l picpal + move.l d0,a1 + freemem picpal +.skip2 pull + rts + +freetiles push + move.l floor(pc),d0 + beq.s .skip1 + clr.l floor + move.l d0,a1 + freemem floor +.skip1 move.l roof(pc),d0 + beq.s .skip2 + clr.l roof + move.l d0,a1 + freemem roof +.skip2 pull + rts + +floorname dc.b 'txts/floor' +floortag ds.b 32 + even + +roofname dc.b 'txts/roof' +rooftag ds.b 32 + even + +scripttile ;tile command...load in floor/roof tiles! + ; + lea floortag(pc),a1 + bsr fetchrest + bsr loadtile + bra execscript + +loadtile ; + ;floor tag=tile extension... + ; + bsr freetiles + lea floortag(pc),a0 + lea rooftag(pc),a1 +.loop move.b (a0)+,(a1)+ + bne.s .loop + ; + bsr permit + lea floorname(pc),a0 + moveq #1,d1 + jsr loadfile + move.l d0,floor + lea roofname(pc),a0 + moveq #1,d1 + jsr loadfile + move.l d0,roof + bsr forbid + ; + move.l map_rgbsfrom,map_rgbsat + ; + move.l floor(pc),a2 + lea 128*128(a2),a2 + move.l a2,a0 + bsr addpal + move.l floor(pc),a0 + move.l a2,a1 + bsr remap + ; + move.l roof(pc),a2 + lea 128*128(a2),a2 + move.l a2,a0 + bsr addpal + move.l roof(pc),a0 + move.l a2,a1 + bsr remap + ; + move.l map_rgbsat,map_rgbsfrom2 + rts + +scriptpict ;load an iff + bsr freeiff + lea picname,a1 + bsr fetchrest + move.l a1,-(a7) + bsr permit + lea picpath,a0 + moveq #1,d1 + jsr loadfile + move.l d0,pic + lea pic_pal,a0 + move.l (a7)+,a1 +.loop move.b (a0)+,(a1)+ + bne.s .loop + lea picpath,a0 + moveq #1,d1 + jsr loadfile + move.l d0,picpal + bsr forbid + bra execscript + +scriptdark move.l iffwindow+wi_cop,a0 ;copperlist to darken! + ; + ;bank,32,bank,32... + ; + addq #6,a0 + moveq #3,d0 ;4 lots of 32 colours + moveq #31,d1 + ; + ;skip first 8 + ; + ;subq #8,d1 + ;lea 32(a0),a0 +.loop ; + move (a0),d2 ;hi nyb + move 132(a0),d3 ;lo nyb! + and #$eee,d3 + lsr #1,d3 + move d2,d4 + and #$111,d4 + lsl #3,d4 + or d4,d3 + and #$eee,d2 + lsr #1,d2 + move d2,(a0) + move d3,132(a0) + ; + addq #4,a0 + dbf d1,.loop + moveq #31,d1 + lea 136(a0),a0 + dbf d0,.loop + bra execscript + +text ds.b 64 + +scripttext ;print text on iff + ;a6=window, a4=message, d0=length of message, d6=Y + ; + move #2,pdelay + ; + lea text,a1 + bsr fetchrest + ; + lea iffwindow,a6 + lea text,a4 + move wi_bh(a6),d6 + sub #7,d6 + bsr printmess2 + ; + tst pdelay + bmi execscript + clr pdelay + bra execscript + +scriptwait ; + tst pdelay + bmi execscript + bsr waitany + bra execscript + +checkany ; + movem.l d0-d7/a0-a6,-(a7) + bsr vwait + bsr readmenujoys + tst joyb + movem.l (a7)+,d0-d7/a0-a6 + rts + +waitany movem.l d0-d7/a0-a6,-(a7) +.wait bsr vwait + bsr readmenujoys + tst joyb + beq .wait + ; +.unwait bsr vwait + bsr readmenujoys + tst joyb + bne .unwait + ; + movem.l (a7)+,d0-d7/a0-a6 + rts + +copywin moveq #wi_size/2-1,d0 +.loop move (a0)+,(a1)+ + dbf d0,.loop + rts + +freeobjlist lea objlist,a2 + ; +.loop move.l (a2)+,d0 + beq.s .done + move.l d0,a3 + ; + move.l (a3),d0 + beq.s .skip + move.l d0,a1 + freemem obj + clr.l (a3) +.skip ; + move.l 4(a3),d0 + beq.s .loop + move.l d0,a1 + freemem objchunks + clr.l 4(a3) + bra.s .loop + ; +.done rts + +freeobjlist2 lea objlist,a2 + ; +.loop move.l -(a2),d0 + beq.s .done + move.l d0,a3 + ; + move.l (a3),d0 + beq.s .skip + move.l d0,a1 + freemem obj2 + clr.l (a3) +.skip ; + move.l 4(a3),d0 + beq.s .loop + move.l d0,a1 + freemem objchunks2 + clr.l 4(a3) + bra.s .loop + ; +.done rts + +mappath dc.b 'maps/' +mapname ds.b 64 + even + +getwindow tst twowins + bne.s .p2 + ; + lea defwindow1_1p,a0 + lea window1,a1 + bsr copywin + rts + ; +.p2 lea defwindow1_2p,a0 + lea window1,a1 + bsr copywin + ; + lea defwindow2_2p,a0 + lea window2,a1 + bsr copywin + rts + +putwindow tst twowins + bne.s .p2 + ; + lea window1,a0 + lea defwindow1_1p,a1 + bsr copywin + rts + ; +.p2 lea window1,a0 + lea defwindow1_2p,a1 + bsr copywin + ; + lea window2,a0 + lea defwindow2_2p,a1 + bsr copywin + rts + +linkswap tst linked + bpl.s .rts + movem.l player1(pc),a0-a1 + exg a0,a1 + movem.l a0-a1,player1 + move ob_cntrl(a0),d0 + move ob_cntrl(a1),d1 + move d1,ob_cntrl(a0) + move d0,ob_cntrl(a1) +.rts rts + +pickcombat ;pick combat zone... + ;put name into a1... + ; + move $dff006,d0 + bsr seedrnd + ; + move comsleft(pc),d0 + bne.s .pick + moveq #7,d0 + move d0,comsleft +.pick bsr rndn + lea commaps(pc),a0 + subq #1,comsleft + move comsleft(pc),d1 + move.b 0(a0,d0),d2 ;map to play! + move.b 0(a0,d1),0(a0,d0) + move.b d2,0(a0,d1) + ; + add.b #48,d2 + move.b d2,comseriesmap + ; + lea comname(pc),a0 +.loop move.b (a0)+,(a1)+ + bne.s .loop + ; + move.l combat,a0 + move.l combatpal,a1 + bsr makeiff + bsr showiff + bsr dispon + lea tilenum(pc),a0 + lea floortag(pc),a1 +.loop2 move.b (a0)+,(a1)+ + bne.s .loop2 + bra loadtile + +tilenum dc.b '1',0 + +commaps dc.b 1,2,3,4,5,6,7,8 +comsleft dc 7 ;7 maps left! +comname dc.b 'com' +comseriesnum dc.b '1_' +comseriesmap dc.b '1',0 + even + +scriptplay ; + lea mapname,a1 + ; + cmp #2,gametype + bne.s .notcombat + ; + ;OK, combat game is a happening... + ; + ;select from on-screen maps. + ; + bsr pickcombat + bra.s .gotname + ; +.notcombat bsr fetchrest +.gotname ; + zerolist objects,ob_size + zerolist doors,do_size + zerolist blood,bl_size + zerolist gore,go_size + zerolist rotpolys,rp_size + ; + clr.l player1 + clr.l player2 + tst gametype + bne.s .p2 + not.l player2 ;no player 2! +.p2 ; + bsr permit + ; + move.l map_test(pc),d0 + bne.s .use + move.l #mappath,d0 +.use move.l d0,a0 + moveq #1,d1 + bsr loadfile + move.l d0,map_map + ; + bsr initmap + bsr loadtxts + move #$a3f7,d0 + bsr seedrnd + moveq #1,d0 + bsr execevent + bsr calcpalettes + bsr forbid + bsr makepalettes + bsr dispoff + bsr freewindows + bsr getwindow + ; + ;init player vars... + ; + move.l player1,a5 + ; + move p1lives(pc),ob_lives(a5) + ; + cmp #2,gametype + beq.s .psk + ; + move p1health(pc),d0 + bne.s .p1hok + move #25,p1health + move.b #ireload,p1reload +.p1hok move p1health(pc),ob_hitpoints(a5) + move p1weapon(pc),ob_weapon(a5) + move.b p1reload(pc),ob_reload(a5) + ; +.psk bsr resetplayer + ; + tst gametype + beq .p1 + ; + move.l player2,a5 + move p2lives(pc),ob_lives(a5) + ; + cmp #2,gametype + beq.s .psk2 + ; + move p2health(pc),d0 + bne.s .p2hok + move #25,p2health + move.b #ireload,p2reload +.p2hok move p2health(pc),ob_hitpoints(a5) + move p2weapon(pc),ob_weapon(a5) + move.b p2reload(pc),ob_reload(a5) + ; +.psk2 bsr resetplayer +.p1 ; + bsr linkswap + ; + ;save player positions at start of level! + ; + move.l player1(pc),a5 + move ob_x(a5),p1x + move ob_z(a5),p1z + move ob_rot(a5),p1r + tst gametype + beq.s .shit + move.l player2(pc),a5 + move ob_x(a5),p2x + move ob_z(a5),p2z + move ob_rot(a5),p2r +.shit ; + ;init windows... + ; + move.l player1(pc),a5 + move.l #window1,ob_window(a5) + move.l ob_window(a5),a0 + bsr makewindow + move.l ob_window(a5),a0 + bsr showwindow + bsr initstats + ; + tst twowins + beq.s .onew + ; + move.l player2(pc),a5 + move.l #window2,ob_window(a5) + move.l ob_window(a5),a0 + bsr makewindow + move.l ob_window(a5),a0 + bsr showwindow + bsr initstats +.onew ; + bsr calcbpos + ; + ;move #$4000,fadevol ;fadeout med! + ; + move.l medat(pc),a1 + clr fadevol + jsr 12(a1) ;stop song + ; + move #$1f3a,d0 + bsr seedrnd + clr.l sucker + clr.l sucking + clr finished + clr finished2 + clr doneflag + clr showflag + clr escape + ; + bsr syncup + ; + clr framecnt + clr paused + bsr drawall2 + bsr dispon + ; + bsr chaton + ; +mainloop bsr drawall + move escape(pc),d0 + beq.s .noesc + bsr dogamemenu + clr escape +.noesc move finished(pc),d0 + beq.s mainloop + ; + st paused + bsr chatoff + ; +.unlk bsr dispoff + bsr freewindows + bsr linkswap + bsr freeobjlist + bsr freetxts + bsr freemap + ; + ;finished codes... + ; + ;1 : quit (esc/exit game) + ;2 : death (both players dead) + ;3 : pattern completed + ;4 : combat game...someone died! + ; + move finished(pc),d0 + and #127,d0 + subq #1,d0 + beq exitgame + subq #1,d0 + beq gameover + subq #1,d0 + beq levelover + subq #1,d0 + beq combatwon + ; +.fuck warn #$f08 + warn #$80f + bra.s .fuck + ; +exitgame bsr sendback + cmp #2,gametype + bne.s gameover +combatover move.l combat,a1 + freemem combat + move.l combatpal,a1 + freemem combatpal +gameover ; + bsr freeiff + bra freetiles +levelover ; + move.l player1,a5 + move ob_hitpoints(a5),p1health + move ob_lives(a5),p1lives + move ob_weapon(a5),p1weapon + move.b ob_reload(a5),p1reload + ; + tst gametype + beq.s .p1p1 + ; + move.l player2,a5 + move ob_hitpoints(a5),p2health + move ob_lives(a5),p2lives + move ob_weapon(a5),p2weapon + move.b ob_reload(a5),p2reload +.p1p1 ; + tst p1lives + bne.s .losk + tst gametype + beq.s .losk + tst p2lives + beq gameover +.losk tst.l map_test + bne gameover + bra execscript_med + ; +combatwon move.l player1(pc),a5 + move ob_lives(a5),p1lives + beq .p1lost + move.l player2(pc),a5 + move ob_lives(a5),p2lives + beq .p2lost + ; + ;combat game continues! + ; + bra execscript_med + ; +.p1lost ;player 1 lost the game + ; + lea p2wins(pc),a0 + tst linked + beq .combatmess + lea ploses_(pc),a0 + bgt .combatmess + lea pwins_(pc),a0 + bra .combatmess + ; +.p2lost ;player 2 lost combat game + ; + lea p1wins(pc),a0 + tst linked + beq .combatmess + lea ploses_(pc),a0 + blt .combatmess + lea pwins_(pc),a0 + ; +.combatmess move.l a0,-(a7) + ; + move.l combat,a0 + move.l combatpal,a1 + jsr makeiff + jsr showiff + move.l (a7)+,a4 + lea iffwindow,a6 + bsr initmenu + bsr dispon + ; + bsr selmenu + ; + bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bsr freewindow + bsr qsync + bra combatover + +flushser moveq #49,d7 +.loop bsr vwait +.loop2 bsr serget + bpl.s .loop2 + dbf d7,.loop + bra qsync + +sendback move linked(pc),d0 + beq.s .rts + ; + move finished(pc),d0 + bset #7,d0 + bne serput + move.b d0,d2 + bsr serput +.wait bsr serwait + cmp.b d0,d2 + bne.s .wait +.rts rts + +p1wins dc.b 1,'player one wins combat game!',0 + even +p2wins dc.b 1,'player two wins combat game!',0 + even +pwins_ dc.b 1,'player wins combat game!',0 + even +ploses_ dc.b 1,'player loses combat game!',0 + even + +freemap move.l map_map,d0 + beq.s .done + move.l d0,a1 + freemem map + clr.l map_map +.done rts + +inccntrl addq #1,(a2) + cmp #5,(a2) + bcs.s .pok + clr (a2) +.pok move (a2),d0 + cmp (a3),d0 + beq.s inccntrl + ; +.there lea popts(pc),a0 + move.l 0(a0,d0*4),a0 +.sk move.b (a0)+,(a1)+ + bne.s .sk + rts + +dointro ; + lea gloom,a0 + lea gloompal,a1 + jsr makeiff + jsr showiff + ; + lea gloombrush,a0 + lea iffwindow,a1 + move.l wi_bmap(a1),a1 + add.l #168*7*40,a1 + bsr decodeiff + ; + bsr dispon + ; + bsr chaton + ; + bsr waitany + ; + lea startmenu,a4 + tst linked + beq.s .use + lea startmenu2,a4 +.use lea iffwindow,a6 + jsr initmenu + ; +.sel jsr selmenu + ; + tst linked + beq.s .notlinked + ; + cmp #2,d0 + bcs .newgame2 + subq #2,d0 + beq .unlink + subq #1,d0 + beq .about + subq #1,d0 + beq .exitgloom + bra .sel +.unlink ; + bsr chatoff + clr linked + lea p2ctype(pc),a1 + lea p2_ob_cntrl,a2 + lea p1_ob_cntrl,a3 + bsr inccntrl + ; + bsr finitpmenu + bra dointro + ; +.newgame2 addq #1,d0 + move d0,gametype + bsr chatoff + bra finitpmenu + ; +.notlinked cmp #3,d0 + bcs .newgame + ; + subq #3,d0 + bne .notp1 + ; + lea p1ctype(pc),a1 + lea p1_ob_cntrl,a2 + lea p2_ob_cntrl,a3 + bsr inccntrl + bra .sel + ; +.notp1 subq #1,d0 + bne.s .notp2 + ; + lea p2ctype(pc),a1 + lea p2_ob_cntrl,a2 + lea p1_ob_cntrl,a3 + bsr inccntrl + bra .sel + ; +.notp2 subq #1,d0 + bne.s .notlink + ; + bsr finitpmenu + bsr linkup + bra dointro + ; +.notlink subq #1,d0 + bne.s .notvile + ; + addq #1,mode + and #1,mode + move mode(pc),d0 + lea modes,a0 + move.l 0(a0,d0*4),a0 + lea modetxt,a1 +.moloop move.b (a0)+,(a1)+ + bne.s .moloop + ; + bra .sel + ; +.notvile subq #1,d0 + bne .notabout + ; +.about ;about text... + ; + bsr finitpmenu + lea gloom,a0 + lea gloompal,a1 + lea abouttext,a2 + bsr pmenu + move numopts(pc),-(a7) + move #1,numopts + bsr selmenu + move (a7)+,numopts + bsr finitpmenu + bra dointro + ; +.notabout subq #1,d0 + bne .sel + ; +.exitgloom moveq #4,d0 + ; +.newgame move d0,gametype + ; + bsr chatoff + bra finitpmenu + +linkup ;link up... + ; + lea linkupmenu,a0 + bsr qmenu + ; +.loop bsr selmenu + cmp #3,d0 + bne.s .notb + bsr optbaud + bra.s .loop + ; +.notb bsr finitqmenu + move curropt(pc),d0 + beq nulllink + cmp #4,d0 + beq.s .rts + subq #1,d0 + beq dialup + subq #1,d0 + beq answer +.rts rts + ; +answer lea ata(pc),a0 + move #-1,linked + bra doconnect + +dialup ; + lea phonenum(pc),a0 + move.l a0,a1 + move.l a0,phoneat +.clr tst.b (a0) + beq.s .clrd + move.b #32,(a0)+ + bra.s .clr +.clrd move.b #127,(a1) + ; + lea linkmenu0,a0 + bsr qmenu + ; + st chatok + ; +.loop qkey $41,d0 ;undel! + bne.s .loop + ; +.wkey qkey $44 ;return? + bne .done + key $41,d0 + bne .del ;del + ; + move chatoutget(pc),d0 + cmp chatoutput(pc),d0 + beq.s .wkey + ; + and #31,d0 + lea chatout(pc),a0 + move.b 0(a0,d0),d0 ;chat out character! + addq #1,chatoutget + ; + cmp #48,d0 + bcs.s .loop + cmp #58,d0 + bcc.s .loop + ; + move.l phoneat(pc),a0 + move.b d0,(a0)+ + tst.b (a0) + beq.s .skinc + move.b #127,(a0) + move.l a0,phoneat + ; +.skinc bsr vwait + bsr optoff + bsr opton + bra .loop + ; +.del move.l phoneat(pc),a0 + cmp.l #phonenum,a0 + beq .loop + cmp.b #127,(a0) + bne.s .noc + move.b #32,(a0) + subq #1,a0 +.noc move.b #127,(a0) + move.l a0,phoneat + bra.s .skinc + ; +.done qkey $44 + bne.s .done + ; + bsr finitqmenu + ; + clr chatok + clr chatoutget + clr chatoutput + ; + lea pbuff(pc),a0 ;use this for connect string! + move.l a0,a2 + ; + move.l #'ATDT',(a2)+ + lea phonenum(pc),a1 +.cpn move.b (a1)+,(a2) + beq.s .null + cmp.b #32,(a2)+ + bne.s .cpn + subq #1,a2 +.null move.b #13,(a2)+ + move.b #10,(a2)+ + clr.b (a2) + ; + move #1,linked + bra doconnect + +phoneat dc.l phonenum + +nulllink ; + lea connect(pc),a0 +doconnect ; + bsr sendstring + bsr waitconnect + beq .calcmaster + ; + clr linked + rts + ; + ;OK, randomly determine who is master and who is slave! + ; + ;faster computer SHOULD be master! + ; + ;let's try, number of rnd divs/frame...send as a long word! + ; +.calcmaster tst linked + bne .linked + ; + moveq #0,d7 + ; + move #$20,$dff09a + ; +.vwloop btst #5,$dff01f + beq.s .vwloop + move #$20,$dff09c +.cmloop ; + btst #5,$dff01f + bne.s .cmdone + bsr rndw + ext.l d0 + divs #$a5a5,d0 + addq.l #1,d7 + bra.s .cmloop +.cmdone ; + move #$20,$dff09c + move #$8020,$dff09a + ; + move.l d7,d0 + bsr longput + bsr longget + cmp.l d0,d7 + beq.s .calcmaster + blt.s .skip + ; + ;I'm player 1 + move #1,linked + bra.s .linked + ; +.skip ;I'm actually player 2! + move #-1,linked + ; +.linked move #-1,p2_ob_cntrl + ; + lea incharge(pc),a0 + tst linked + bgt.s .goz + lea notincharge(pc),a0 +.goz bsr qmenu + bsr chaton + bsr selmenu + bra finitqmenu + +longput ;send ser long in d0 + ; + moveq #3,d1 +.loop rol.l #8,d0 + movem.l d0-d1,-(a7) + bsr vwait + bsr serput + movem.l (a7)+,d0-d1 + dbf d1,.loop + rts + +longget ;get ser long in d0 + ; + move.l d2,-(a7) + moveq #3,d1 +.loop movem.l d1-d2,-(a7) + bsr serwait + movem.l (a7)+,d1-d2 + lsl.l #8,d2 + move.b d0,d2 + dbf d1,.loop + move.l d2,d0 + move.l (a7)+,d2 + rts + +incharge dc.b 1 + dc.b 'player selects options',0 + even + +notincharge dc.b 1 + dc.b 'other player selects options',0 + even + +sendstring ;a0=string to send + ; + move.l a0,a2 +.loop bsr vwait + move.b (a2)+,d0 + beq.s .done + bsr serput + bra.s .loop +.done rts + +waitconnect ;wait for 'CONNECT' to arrive... + ;return eq if OK, else ne if 'esc'ed or not received. + ; + lea linkmess,a0 + bsr qmenu + ; +.retry lea wconnect(pc),a2 + ; +.loop qkey $45 ;ESC? + bne .notok + bsr serget + bpl.s .sgok + bsr vwait + bra.s .loop +.sgok cmp.b (a2)+,d0 + bne.s .retry + tst.b (a2) + bne.s .loop + ; +.ok ;OK, connect xxxx ends with 13,10... + ; +.w10 qkey $45 + bne .notok + bsr serget + bpl.s .sgok2 + bsr vwait + bra.s .w10 +.sgok2 cmp.b #10,d0 + bne.s .w10 + ; + bsr finitqmenu + moveq #0,d0 + rts + ; +.notok bsr finitqmenu + moveq #-1,d0 + rts + +optbaud addq #1,baud + cmp #6,baud + bcs.s .ok + clr baud +.ok ; +calcbaud move baud(pc),d0 + lea bauds(pc),a0 + move.l 4(a0,d0*8),a0 ;baud text! + lea baudtext(pc),a1 +.loop move.b (a0)+,(a1)+ + bne.s .loop + ; + move baud(pc),d0 + lea bauds(pc),a1 + move.l 0(a1,d0*8),d0 ;2400 etc. + move.l baudconst(pc),d1 + divu d0,d1 + subq #1,d1 + move d1,$dff032 + ; + rts + +connect dc.b 'CONNECT',13,10,0 + even + +wconnect dc.b 'CONNECT',0 + even + +ata dc.b 'ATA',13,10,0 + even + +linkmenu0 dc.b 1 + dc.b 'DIAL: ' +phonenum dc.b 127,' ',0 + even + +linkmess dc.b 1 + dc.b 'ATTEMPTING TO CONNECT...ESC TO ABORT',0 + even + +linkupmenu dc.b 5 + dc.b 'NULL LINK',0 + dc.b 'DIAL UP',0 + dc.b 'ANSWER',0 + dc.b 'BAUD RATE: ' +baudtext dc.b '2400 ',0 + dc.b 'EXIT',0 + even + +baudconst dc.l 3546895 ;pal + dc.l 3579545 ;ntsc + +baud dc 5 + +bauds dc.l 2400,b1,4800,b2,9600,b3,14400,b4,28800,b5 + dc.l 38400,b6 + +b1 dc.b '2400 ',0 +b2 dc.b '4800 ',0 +b3 dc.b '9600 ',0 +b4 dc.b '14400',0 +b5 dc.b '28800',0 +b6 dc.b '38400',0 + even + + dc.l popt0 +popts dc.l popt1,popt2,popt3,popt4,popt5 + ; +popt0 dc.b 'NULL MODEM',0 ;-1 +popt1 dc.b 'JOYSTICK 1',0 ;0 +popt2 dc.b 'JOYSTICK 2',0 ;1 +popt3 dc.b ' KEYBOARD ',0 ;2 +popt4 dc.b 'CD32 PAD 1',0 ;3 +popt5 dc.b 'CD32 PAD 2',0 ;4 + +joyxs dc 0,0 ;serial +joyys dc 0,0 + ; +joyx0 dc 0,0 +joyb0 dc 0,0 +joyx1 dc 0,0 +joyb1 dc 0,0 +joyx2 dc 0,0 +joyb2 dc 0,0 +joyx3 dc 0,0 +joyb3 dc 0,0 +joyx4 dc 0,0 +joyb4 dc 0,0 + + even + +makeiff ;show an IFF picture...128 colours...320 X 240 + ; + ;a0=trimmed iff, a1=iff's palette + ; + push + movem.l a0-a1,-(a7) + lea iffwindow,a0 + bsr freewindow + movem.l (a7)+,a0-a1 + ; + lea iffwindow,a2 + cmp.l #0,a0 + bne.s .notblank + addq #1,a0 + move.l a0,wi_iff(a2) + move.l #rgbs16,a1 + bra.s .blank + ; +.notblank move.l a0,wi_iff(a2) +.blank move.l a1,wi_pal(a2) + ; + ;copy font palette to IFF palette! + ; + move.l font(pc),d0 + beq.s .nofont + ; + move.l d0,a0 + add.l (a0),a0 + addq #2,a0 + clr.l (a1)+ + moveq #14,d0 +.loop move (a0),(a1)+ + move (a0)+,(a1)+ + dbf d0,.loop +.nofont ; + move.l a2,a0 + bsr makewindow + ; + pull + rts + +showiff push + lea iffwindow,a0 + bsr showwindow + pull + rts + +gamemenu dc.b 7 + dc.b 'CONTINUE',0 + dc.b 'RESOLUTION',0 + dc.b 'WINDOW SIZE',0 + dc.b 'FULL SCREEN WINDOW',0 + dc.b 'FLOOR',0 + dc.b 'CEILING',0 + dc.b 'QUIT GAME',0 + even + +modes dc.l mode1,mode2 + +mode1 dc.b 'MEATY',0 + +mode2 dc.b 'MESSY',0 + +startmenu dc.b 9 + dc.b 'ONE PLAYER GAME',0 ;0 + dc.b 'TWO PLAYER GAME',0 ;1 + dc.b 'TWO PLAYER COMBAT',0 ;2 + dc.b 'PLAYER 1 ' +p1ctype dc.b 'JOYSTICK 1',0 ;3 + ; + dc.b 'PLAYER 2 ' +p2ctype dc.b 'JOYSTICK 2',0 ;4 + ; + dc.b 'REMOTE LINK OPTIONS',0 ;5 + ; + dc.b 'VIOLENCE MODEL: ' +modetxt dc.b 'MEATY',0 ;6 + dc.b 'ABOUT GLOOM',0 ;7 + dc.b 'EXIT GLOOM',0 ;8 + even + +startmenu2 dc.b 5 + dc.b 'TWO PLAYER GAME',0 ;0 + dc.b 'TWO PLAYER COMBAT GAME',0 ;1 + dc.b 'UNLINK FROM REMOTE PLAYER',0 ;2 + dc.b 'ABOUT GLOOM',0 ;3 + dc.b 'EXIT GLOOM',0 ;4 + even + +menuwindow dc.l 0 +menubmap dc.l 0 + +menuy dc 0 +numopts dc 0 ;how many menu options +curropt dc 0 ;current option +flashdelay dc 0 + +menustrips ds.l 32 ;16 max! + +qmenu move.l a0,-(a7) + sub.l a0,a0 + bsr makeiff + bsr showiff + move.l (a7)+,a4 + lea iffwindow,a6 + bsr initmenu + bra dispon + +pmenu move.l a2,-(a7) + bsr makeiff + bsr showiff + move.l (a7)+,a4 + lea iffwindow,a6 + bsr initmenu + bra dispon + +finitpmenu ; +finitqmenu bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bra freewindow + +initmenu clr curropt +initmenu2 ; + ;do a menu...menu in a4, window in a6 + ; + move.l a6,menuwindow + move.b (a4)+,d0 ;how many + ext d0 + move d0,numopts + move d0,-(a7) ;counter + move wi_bh(a6),d6 + move.l wi_bmap(a6),menubmap + lsr #1,d6 + move fonth(pc),d2 + lsr #1,d2 + mulu d2,d0 + sub d0,d6 ;Y + move d6,menuy + lea menustrips(pc),a5 + ; +.loop ;save strip! + ; + move.l a4,(a5)+ + ; + move #40*7,d0 + mulu fonth(pc),d0 + moveq #2,d1 + allocmem menustrip + move.l d0,(a5)+ + move.l d0,a1 + move.l wi_bmap(a6),a0 + move d6,d0 + mulu #7*40,d0 + add.l d0,a0 + ; + move #40*7,d0 + mulu fonth(pc),d0 + lsr.l #2,d0 + subq #1,d0 + ; +.sloop move.l (a0)+,(a1)+ + dbf d0,.sloop + ; + move.l a4,a0 + moveq #-1,d0 +.cnt addq #1,d0 + tst.b (a0)+ + bne.s .cnt + ; + bsr printmess2 + ; + add fonth(pc),d6 + subq #1,(a7) + bgt.s .loop + addq #2,a7 + ; + ifne debugmem + bsr showmem + lea memasc,a4 + moveq #8,d0 + bsr printmess2 + ; + move.l freememerr,d0 + beq.s .nomemerr + clr.l freememerr + move.l d0,a4 + move.l d0,a0 + moveq #-1,d0 +.ccloop addq #1,d0 + tst.b (a0)+ + bne.s .ccloop + add fonth(pc),d6 + bsr printmess2 +.nomemerr ; + endc + ; + rts + + ifne debugmem +showmem push + move.l 4.w,a6 + moveq #1,d1 + jsr -216(a6) + lea memasc,a0 + moveq #7,d1 +.loop rol.l #4,d0 + move d0,d2 + and #15,d2 + add #48,d2 + cmp #58,d2 + bcs.s .skip + addq #7,d2 +.skip move.b d2,(a0)+ + dbf d1,.loop + pull + rts + ; +memasc dc.b '12345678',0 + even + endc + +optoff move curropt(pc),d6 + lea menustrips(pc),a0 + move.l 4(a0,d6*8),a0 ;address of strip + mulu fonth(pc),d6 + add menuy(pc),d6 + mulu #7*40,d6 + move.l menubmap(pc),a1 + add.l d6,a1 + ; + move fonth(pc),d0 + mulu #7,d0 + lsl #6,d0 + or #20,d0 + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l #$9f00000,$dff040 + move.l #-1,$dff044 + move #0,$dff064 + move #0,$dff066 + move.l a0,$dff050 + move.l a1,$dff054 + move d0,$dff058 + ; + move #13,flashdelay + ; + rts + +opton move curropt(pc),d6 + lea menustrips(pc),a0 + move.l 0(a0,d6*8),a4 ;text! + mulu fonth(pc),d6 + add menuy(pc),d6 + ; + ;a6=window, a4=message, d0=length of message, d6=Y + ; + move.l a4,a0 + moveq #-1,d0 +.loop addq #1,d0 + tst.b (a0)+ + bne.s .loop + ; + move.l menuwindow(pc),a6 + bsr printmess2 + ; + move #13,flashdelay + ; + rts + +readmenujoys ;if in charge...read and send else rec. + ; + tst linked + beq.s .read + bpl.s .readsend + ; +.get bsr serget + bmi.s .none + bsr serput ;send back! + lea joyx(pc),a0 + jmp decodejoy +.none clr.l joyx + clr.l joyb + rts + ; +.readsend bsr .read + lea joyx(pc),a0 + jsr encodejoy + tst.b d0 + beq.s .rts + bsr serput + bsr serwait ;wait for send back! +.rts rts + ; +.read ;OK, read joystick in port 2, and keyboard! + ;merge into joyx,joyy,joyb + ; + lea joyx(pc),a0 + bsr readjoy1 + lea joyx0(pc),a0 + bsr readkeys + move.l joyx0(pc),d0 + or.l d0,joyx + move.l joyb0(pc),d0 + or.l d0,joyb + ; + qkey $44 + bne.s .fire + qkey $45 + bne.s .fire + rts +.fire move #-1,joyb + rts + +selmenu ;select a menu item...return item in d0 + ; + ;flash selected option on/off + ; + bsr optoff + ; +.loop1 bsr vwait + bsr readmenujoys + tst joyy + blt .up2 + bgt .down2 + tst joyb + bne .sel2 + ; + subq #1,flashdelay + bgt .loop1 + ; + bsr opton + ; +.loop2 bsr vwait + bsr readmenujoys + tst joyy + blt .up + bgt .down + tst joyb + bne .sel + ; + subq #1,flashdelay + bgt .loop2 + ; + bra selmenu + ; +.up2 bsr opton +.up subq #1,curropt + bpl.s .upskip + move numopts(pc),d0 + subq #1,d0 + move d0,curropt +.upskip bsr vwait + bsr readmenujoys + tst joyy + bmi .upskip + bra selmenu + ; +.down2 bsr opton +.down addq #1,curropt + move curropt(pc),d0 + cmp numopts(pc),d0 + bcs.s .downskip + clr curropt +.downskip bsr vwait + bsr readmenujoys + tst joyy + bgt .downskip + bra selmenu + ; +.sel2 bsr opton +.sel bsr vwait + bsr readmenujoys + tst joyb + bne .sel + move curropt(pc),d0 + rts + +finitmenu ;clean up menu operation + ; + lea menustrips(pc),a5 + move numopts(pc),d2 + subq #1,d2 +.loop addq #4,a5 + move.l (a5)+,a1 + freemem menustrip + dbf d2,.loop + rts + +initbmappal move.l smallfont_,a0 + add.l (a0),a0 + addq #2,a0 + moveq #22,d0 ;23 colours to poke! + move.l coplist(pc),a1 + move.l a1,a2 + move.l a1,a3 + move.l a1,a4 + ; + lea cols1+6-copinit(a1),a1 + lea cols2+6-copinit(a2),a2 + lea cols3+6-copinit(a3),a3 + lea cols4+6-copinit(a4),a4 + ; +.loop move (a0),(a1) + move (a0),(a2) + move (a0),(a3) + move (a0)+,(a4) + addq #4,a1 + addq #4,a2 + addq #4,a3 + addq #4,a4 + dbf d0,.loop + rts + +initdarktable ; + move #maxz-1,d2 + move.l sqr(pc),a0 + move.l darktable(pc),a1 + ; +.loop move d2,d3 + lsl #3,d3 + move 0(a0,d3),d3 + lsr #3,d3 + eor #15,d3 + move d3,(a1)+ + ; + dbf d2,.loop + ; + rts + +initrawmap lea ascmap(pc),a0 + lea rawmap(pc),a1 + bsr .loop + lea ascmap2(pc),a0 + lea shiftmap(pc),a1 + ; +.loop moveq #0,d0 + move.b (a0)+,d0 + cmp #$ff,d0 + beq.s .rts +.loop2 move.b (a0)+,d1 + beq.s .loop + move.b d1,0(a1,d0) + addq #1,d0 + bra.s .loop2 +.rts rts + +ascmap dc.b $1,'1234567890',0 + dc.b $10,'QWERTYUIOP',0 + dc.b $20,'ASDFGHJKL',0 + dc.b $31,'ZXCVBNM',0 + dc.b $40,' ',0 + dc.b $38,',.',0 + dc.b $ff + even + ; +ascmap2 dc.b $3a,'?',0 + dc.b $01,'!',0 + dc.b $ff + even + +rawmap ds.b 128 ;unshifted chars +shiftmap ds.b 128 ;shifted chars + +chatout ds.b 32 +chatoutput dc 0 +chatoutget dc 0 + +chatin ds.b 32 +chatinput dc 0 +chatinget dc 0 + +shiftdown dc 0 ;shift key status + +rawkeyread ;a1=matrix! hi bit of keycode=1 if key up! + ; + move.l d2,-(a7) + ; + moveq #0,d2 + move.b $bfec01,d2 + not.b d2 + ror.b #1,d2 + or.b #$40,$bfee01 + ; + move d2,d0 + move d2,d1 + and #7,d1 + lsr #3,d0 + bclr #4,d0 + bne.s .clrkey + ; +.setkey bset d1,0(a1,d0) ;key on! + ; + move chatok(pc),d0 + beq.s .skip + ; + lea rawmap(pc),a0 + move.b $60>>3(a1),d0 + and #7,d0 + beq.s .unshft + lea shiftmap(pc),a0 +.unshft move.b 0(a0,d2),d0 ;asc! + beq.s .skip + ; + ;ok, add to chat out buffer! + ; + lea chatout(pc),a0 + move chatoutput(pc),d1 + and #31,d1 + move.b d0,0(a0,d1) + addq #1,chatoutput + ; + bra.s .skip + ; +.clrkey bclr d1,0(a1,d0) + ; +.skip moveq #6,d0 ;wait 6 scanlines? + moveq #-1,d1 +.loop move d1,d2 +.loop2 move.l $dff004,d1 + lsr.l #8,d1 + and #$1ff,d1 + cmp d2,d1 + beq.s .loop2 + dbf d0,.loop + ; + and.b #$bf,$bfee01 + ; + move.l (a7)+,d2 + rts + +rawtable dc.l rawmatrix +rawstuff dc.l 0,0 +ciaa dc.l 0 +ciaaname dc.b 'ciaa.resource',0 + even +rawmatrix dc.l 0,0,0,0 ;128 key bits + +savefile ;a0=name, a1=mem, d0=length + push + ; + movem.l d0/a0-a1,-(a7) + ; + move.l dosbase,a6 + move.l a0,d1 + move.l #1006,d2 + jsr -30(a6) + move.l d0,d7 + bne.s .ok + ; + lea wpmess(pc),a0 + bsr qmenu + ; +.help bsr vwait + ; + movem.l (a7),d0/a0-a1 + move.l dosbase,a6 + move.l a0,d1 + move.l #1006,d2 + jsr -30(a6) + move.l d0,d7 + beq.s .help + ; + move.l d7,-(a7) + bsr finitqmenu + move.l (a7)+,d7 + ; +.ok move.l d7,d1 + movem.l (a7)+,d0/a0-a1 + move.l a1,d2 + move.l d0,d3 + jsr -48(a6) + ; + move.l d7,d1 + jsr -36(a6) + ; +.done pull + rts + +wpmess dc.b 1 + dc.b 'please write enable the gloom data disk!',0 + even + +fileheader ds.b 14 +loadmem dc.l 0 + +loadfileabs move.l a1,loadmem + bra.s loadfile_ + +loadfile clr.l loadmem + ; +loadfile_ ;a0=name, d1=memtype + ; + ;decrunch file if nec. + ; + ;return d0=pointer + ; + push + ; + move.l d1,d5 ;save memtype + move.l dosbase,a6 + ; + move.l a0,d1 + move.l #1005,d2 + jsr -30(a6) ;open it! + move.l d0,d7 ;handle + beq .err + ; + move.l d7,d1 + moveq #0,d2 + moveq #1,d3 + jsr -66(a6) ;seek to end + ; + move.l d7,d1 + moveq #0,d2 + moveq #-1,d3 ;seek to start + jsr -66(a6) + ; + move.l d0,d4 ;length=prev filepos + ; + move.l d7,d1 + move.l #fileheader,d2 + moveq #14,d3 + jsr -42(a6) ;read! + ; + move.l d0,-(a7) ;how many bytes read! + ; + move.l d7,d1 + moveq #0,d2 + moveq #-1,d3 ;back to start + jsr -66(a6) + ; + cmp.l #14,(a7)+ + bcs.s .nocrunch + ; + moveq #0,d6 + move.l fileheader(pc),d0 + cmp.l #'CrM2',d0 + beq.s .crunch + cmp.l #'CrM!',d0 + bne.s .nocrunch + ; +.crunch cmp.l fileheader+6(pc),d4 ;loadlen>destlen? + bcc.s .skip + move.l fileheader+6(pc),d4 ;length to allocate +.skip ; + moveq #14,d6 + add fileheader+4(pc),d6 + bsr loadit + move.l d0,a0 ;src + add.l d6,d0 ;dest + move.l d0,a1 + jsr decrm+32 + pull + rts +.nocrunch ; + bsr loadit + ; +.err pull + rts + +loadit ;d4=length to alloc/read, d5=memtype + ;seek to start, load, close and return base in d0. + ; + move.l loadmem(pc),d0 + bne.s .noalloc + ; + move.l d4,d0 + move.l d5,d1 + move.l d6,d2 ;offset XS + allocmem2 loadfile + sub.l d6,d0 +.noalloc ; + move.l d7,d1 + move.l d0,d2 + move.l d4,d3 ;read len + jsr -42(a6) ;read + move.l d7,d1 + jsr -36(a6) ;close + move.l d2,d0 + ; + rts + +andtable dc $ffff,0 ;rgb and, brightness add...wht + dc $ff00,8 ;red + +makepalettes ; + ;make wht and red pals + ; + ;create pointers... + ; + lea palettes(pc),a0 + move.l map_rgbs(pc),d0 + lea palettesw(pc),a1 + move.l map_rgbsw(pc),d1 + lea palettesr(pc),a2 + move.l map_rgbsr(pc),d2 + ; + moveq #15,d7 + ; +.loop move.l (a0)+,d3 + sub.l d0,d3 ;offset! + move.l d3,d4 + add.l d1,d3 + move.l d3,(a1)+ + add.l d2,d4 + move.l d4,(a2)+ + ; + dbf d7,.loop + ; + move.l map_rgbsend(pc),d7 + sub.l map_rgbs(pc),d7 ;how many bytes! + lsr #1,d7 + subq #1,d7 ;words! + ; + move.l map_rgbsw(pc),a1 + move #$ffff,d1 ;col and + move #0,d2 ;gamma + bsr makeapal + ; + move.l map_rgbsr(pc),a1 + move #$ff00,d1 + moveq #16,d2 + bsr makeapal + ; + rts + +makeapal move.l map_rgbs(pc),a0 + ; +.loop move (a0)+,d4 ;src colour...find briteness + ; + move d4,d5 + move d4,d6 + and #$f00,d4 + lsr #8,d4 + and #$0f0,d5 + lsr #4,d5 + and #$00f,d6 + add d6,d5 + add d5,d4 + add d2,d4 + cmp #16*3,d4 + bcs.s .bok + moveq #16*3-1,d4 +.bok ext.l d4 + divu #3,d4 ;(r+g+b)/3=briteness! + ; + move d4,d5 + move d4,d6 + lsl #8,d4 + lsl #4,d5 + or d6,d5 + or d5,d4 ;RGB + and d1,d4 + ; + move d4,(a1)+ + ; + cmp.l map_rgbsend(pc),a0 + bcs.s .loop + ; + rts + +calcpalettes ;OK, our palette currently runs from: + ; + ;map_rgbs + ; to + ;map_rgbsat + ; + ;append brightness versions... + ; + lea palettes(pc),a2 + move.l map_rgbs(pc),(a2)+ ;first brightness! + move.l map_rgbsat(pc),a1 ;first brightness! + move.l a1,a3 + moveq #1,d0 ;rgb subtract + ; +.loop move.l map_rgbs(pc),a0 + move.l a1,(a2)+ + ; +.loop2 move (a0)+,d1 + move d1,d2 + move d1,d3 + ; + and #$f00,d1 + lsr #8,d1 + sub d0,d1 + bpl.s .rok + moveq #0,d1 +.rok ; + and #$f0,d2 + lsr #4,d2 + sub d0,d2 + bpl.s .gok + moveq #0,d2 +.gok ; + and #$0f,d3 + sub d0,d3 + bpl.s .bok + moveq #0,d3 +.bok ; + lsl #8,d1 + lsl #4,d2 + or d3,d2 + or d2,d1 + or #$8000,d1 + ; + move d1,(a1)+ + cmp.l a3,a0 + bcs.s .loop2 + ; + addq #1,d0 + cmp #16,d0 + bcs.s .loop + ; + move.l a1,map_rgbsend + ; + rts + +map_rgbsend dc.l 0 + +dispoff tst dispnest + bne.s .skip + bsr vwait + move #$01a0,$dff096 ;bp/cop/spr off! +.skip addq #1,dispnest + rts + +dispon subq #1,dispnest + bgt.s .skip + bsr vwait + move.l coplist(pc),$dff080 + move #0,$dff088 + move #$8080,$dff096 ;cop on! + move #0,$dff088 +.skip rts + +forbid push + moveq #49,d0 +.fl bsr vwait + dbf d0,.fl + bsr ownblitter + move.l 4.w,a6 + jsr -132(a6) + move #$8400,$dff096 ;bltnasty! + pull + rts + +permit push + move.l 4.w,a6 + jsr -138(a6) + bsr disownblitter + pull + rts + +initvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -168(a6) ;addintserver + pull + rts + +vbcounter dc 0 +framecnt dc 0 + +frame dc 0,0 + +vbintserver dc.l 0,0 + dc.b 2,0 + dc.l 0 +vbintdata dc.l vbcounter +vbintcode dc.l vbhandler + +rbfintserver dc.l 0,0 + dc.b 2,0 + dc.l 0 +rbfintdata dc.l rbuff +rbfintcode dc.l rbf + +finitvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -174(a6) + pull + rts + +ownblitter push + move.l grbase,a6 + jsr -456(a6) + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + pull + rts + +disownblitter push + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + move.l grbase,a6 + jsr -462(a6) + pull + rts + +makecoloffs push + ; + lea coloffs,a0 + moveq #2,d0 + moveq #3,d2 +.loop addq.l #4,d0 + moveq #31,d1 +.loop2 move.l d0,(a0)+ + addq.l #4,d0 + dbf d1,.loop2 + dbf d2,.loop + ; + pull + rts + +grname dc.b 'graphics.library',0 + even +grbase dc.l 0 +oldview dc.l 0 +dosname dc.b 'dos.library',0 + even +dosbase dc.l 0 + +calcbpos ;also: calc qstripbot, con0poke... + ; + move window1+wi_h,d0 + add d0,d0 + ext.l d0 + add.l qstrip(pc),d0 + move.l d0,qstripbot + ; + move #$100,con0poke + move floorflag(pc),d0 + and roofflag(pc),d0 + bne.s .cp + move #$9f0,con0poke ;one of them is cop strip! +.cp ; + move window1+wi_y,d0 + subq #4,d0 + move d0,minbpos + tst twowins + beq.s .p1 + ; + move window2+wi_y,d0 + add window2+wi_bh,d0 + addq #4,d0 + move d0,maxbpos + rts + ; +.p1 move window1+wi_y,d0 + add window1+wi_bh,d0 + addq #4,d0 + move d0,maxbpos + ; + rts + +showwindow ;a0=window + ; + push + ; + ;poke bitmaps... + move.l wi_slice(a0),a1 + move.l (a1),a1 + move.l wi_bmap(a0),d0 + moveq #6,d1 ;7 bitplanes +.loop move d0,6(a1) + swap d0 + move d0,2(a1) + swap d0 + add.l #40,d0 + addq #8,a1 + dbf d1,.loop + ; + ;create DIW + ; + move.l wi_slice(a0),a1 + move.l (a1),a1 + ; + move wi_y(a0),d0 + move d0,d1 + add wi_bh(a0),d1 + lsl #8,d0 + or #$81,d0 + move d0,56+2(a1) + lsl #8,d1 + or #$c1,d1 + move d1,56+6(a1) + ; + ;create wait! + ; + move wi_y(a0),d0 + subq #3,d0 + move.b d0,64(a1) + ; + ;create link to next! + move.l wi_nslice(a0),a1 + move.l (a1),d0 + move.l wi_cop1(a0),a1 + add.l wi_copmem(a0),a1 + move.l wi_cop2(a0),a2 + add.l wi_copmem(a0),a2 + move d0,-6(a1) + move d0,-6(a2) + swap d0 + move d0,-10(a1) + move d0,-10(a2) + ; + pull + ; +showwindowq ;display coplist + ; + move.l wi_cop(a0),d0 + move.l wi_slice(a0),a0 + move.l (a0),a0 + ; + move d0,72+6(a0) + swap d0 + move d0,72+2(a0) + ; + rts + +finitdisplay push + ; + move.l grbase,a6 + move.l oldview,a1 + jsr -222(a6) ;load view + jsr -270(a6) + jsr -270(a6) + move.l 38(a6),$dff080 + move #$81a0,$dff096 + move #0,$dff088 + ; + pull + rts + +chatmap dc.l 0 + +initdisplay push + ; + lea grname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,grbase + ; + move.l d0,a6 + move.l 34(a6),oldview + sub.l a1,a1 + jsr -222(a6) ;loadview + ; + move.l #copinitf-copinit,d0 + moveq #2,d1 + allocmem copinit + move.l d0,coplist + ; + move.l d0,a1 + lea copinit,a0 + lea copinitf,a2 + ; +.loop cmp.l a2,a0 + bcc.s .done + move.l (a0)+,(a1)+ + bra.s .loop +.done ; + add.l #sl1-copinit,d0 + move.l d0,slice1 + add.l #sl2-sl1,d0 + move.l d0,slice2 + add.l #cstop-sl2,d0 + move.l d0,copstop + ; + move.l copstop,d0 + move.l slice1,a0 + move.l slice2,a1 + ; + move d0,72+6(a0) + move d0,72+6(a1) + swap d0 + move d0,72+2(a0) + move d0,72+2(a1) + ; + move.l #80*2*5,d0 + moveq #2,d1 + allocmem chatplanes + move.l d0,chatmap + ; + move d0,chatplanes+6 + swap d0 + move d0,chatplanes+2 + swap d0 + add.l #80,d0 + move d0,chatplanes+14 + swap d0 + move d0,chatplanes+10 + ; + bsr chatoff + ; + jsr -270(a6) + jsr -270(a6) + move.l coplist,$dff080 + move #0,$dff088 + ; + pull + rts + +allocwbmap move wi_w(a2),d0 + mulu wi_pw(a2),d0 + move d0,wi_bw(a2) + ; + move wi_h(a2),d0 + mulu wi_ph(a2),d0 + move d0,wi_bh(a2) + ; + mulu #40*7,d0 + ; + move.l #$10002,d1 + move.l d0,wi_bmapmem(a2) + allocmem wi_bmap + move.l d0,wi_bmap(a2) + ; + move.l #40*7*7,d0 + moveq #2,d1 + allocmem wi_strip + move.l d0,wi_strip(a2) + ; + rts + +windowiff ;draw iff into window! + ; + move.l wi_iff(a2),a0 + cmp.l #1,a0 + bne.s .do + rts + ; +.do move.l wi_bmap(a2),a1 + ; + move 2(a0),d1 + cmp #240,d1 + bcs.s .skip + move #240,d1 +.skip move #120,d2 + lsr #1,d1 + sub d1,d2 + mulu #7*40,d2 + add.l d2,a1 + ; +decodeiff ;for 40 columns... + ; + ;a0=trimmed IFF file, + ;a1=destination bitmap... + ; + move.l a2,-(a7) + moveq #40,d7 + ; + move (a0)+,d0 ;pixel width + lsr #3,d0 ;to byte width + move (a0)+,d1 ;pixel height + cmp #240,d1 + bls.s .hok + move #240,d1 +.hok subq #1,d1 ;to dbf + move (a0)+,d2 ;depth + subq #1,d2 ;to dbf + addq #6,a0 ;skip header + ; +.loop5 move d2,d5 ;depth + ; +.loop4 move.l a1,a2 + move d0,d4 ;how many bytes in line + ; +.loop moveq #0,d3 + move.b (a0)+,d3 + bmi.s .repeat + sub d3,d4 +.loop3 move.b (a0)+,(a2)+ + dbf d3,.loop3 + bra.s .skip + ; +.repeat cmp.b #-128,d3 + beq.s .loop + neg.b d3 + sub d3,d4 +.loop2 move.b (a0),(a2)+ + dbf d3,.loop2 + addq #1,a0 +.skip subq #1,d4 + bgt.s .loop + ; + add d7,a1 + dbf d5,.loop4 + dbf d1,.loop5 + ; + move.l (a7)+,a2 + rts + +plotwbmap ;OK, plot colours on bitmap! + ; + move.l wi_iff(a2),d0 + bne windowiff + ; + move.l wi_bmap(a2),a0 + move wi_x(a2),d0 + move d0,d1 + lsr #3,d0 + not d1 + and #7,d1 + moveq #127,d7 ;colour + move wi_w(a2),d6 ;width + subq #1,d6 + ; +.wloop move wi_pw(a2),d5 + subq #1,d5 + ; +.wloop2 move d7,d4 + moveq #6,d3 + ; +.dloop bclr d1,0(a0,d0) + lsr #1,d4 + bcc.s .dskip + bset d1,0(a0,d0) +.dskip lea 40(a0),a0 + dbf d3,.dloop + ; + lea -40*7(a0),a0 + subq #1,d1 + bpl.s .dskip2 + moveq #7,d1 + addq #1,d0 +.dskip2 dbf d5,.wloop2 + ; + subq #1,d7 + dbf d6,.wloop + ; + move wi_bh(a2),d0 ;how many to copy + subq #1,d0 + bsr wcopy + ; + move.l wi_bmap(a2),a0 + move.l wi_strip(a2),a1 + move wi_bh(a2),d0 + lsr #2,d0 + mulu #7*40,d0 + add.l d0,a0 + move #7*7*10-1,d2 + ; +.loop move.l (a0)+,(a1)+ + dbf d2,.loop + ; + rts + +wcopy ;copy top scanline to next d0 scanlines + ; + move.l wi_bmap(a2),a0 + mulu #10*7,d0 + subq #1,d0 + lea 40*7(a0),a1 +.cbloop move.l (a0)+,(a1)+ + dbf d0,.cbloop + ; + rts + +freewindow ;window in a0 + ; + push + move.l a0,a2 + move.l wi_bmap(a2),d0 + beq.s .no1 + clr.l wi_bmap(a2) + move.l d0,a1 + freemem wi_bmap +.no1 move.l wi_strip(a2),d0 + beq.s .no2 + clr.l wi_strip(a2) + move.l d0,a1 + freemem wi_strip +.no2 move.l wi_cop1(a2),d0 + beq.s .no3 + clr.l wi_cop1(a2) + move.l d0,a1 + freemem wi_cop +.no3 pull + rts + +makewindow ;make window + ; + ;a0=window struct! + ; + push + ; + move.l a0,a2 + ; + bsr allocwbmap + bsr plotwbmap + ; + tst.l wi_iff(a2) + beq wchunky + ; + ;make a palette coplist for the window + ; + ;to write 32 colours... + ;set bank, write hi nybs, set bank, write lo nybs... + ;=66 copins. + ;*4=264 total + ;+1 for final wait +3 for final copjump=268 + ; + move.l #268<<2,d0 + move.l d0,wi_copmem(a2) + moveq #2,d1 + allocmem wi_iffcop + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + move.l d0,wi_cop2(a2) + move.l d0,a0 ;dest + move.l wi_pal(a2),a1 ;palette! + ; + moveq #0,d0 ;bank + moveq #3,d3 ;something. + ; +.loop move #$106,(a0)+ + move d0,(a0)+ + move #$180,d1 + moveq #31,d2 +.hiloop move d1,(a0)+ + move (a1),(a0)+ + addq #4,a1 + addq #2,d1 + dbf d2,.hiloop + ; + lea -128+2(a1),a1 + move #$106,(a0)+ + bset #9,d0 + move d0,(a0)+ + bclr #9,d0 + move #$180,d1 + moveq #31,d2 +.loloop move d1,(a0)+ + move (a1),(a0)+ + addq #4,a1 + addq #2,d1 + dbf d2,.loloop + subq #2,a1 + ; + add #$2000,d0 ;next bank! + dbf d3,.loop + ; + move.l #$fffffffe,(a0)+ + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + pull + rts + ; +wchunky ;how many copins on one line? + ; + move wi_w(a2),d0 + move d0,d1 + subq #1,d0 + lsr #5,d0 ;how many bank changes per line! + addq #3,d0 ;1 waits - 1 eor, 1 init bank select + add d1,d0 ;+colpokes + ; + move d0,d1 + lsl #2,d1 + move d1,wi_copmod(a2) + ; + mulu wi_h(a2),d0 + addq #4,d0 ;1 wait and cop jump at end + ; + lsl.l #2,d0 ;4 bytes/copins + moveq #2,d1 ;cop in chip + move.l d0,wi_copmem(a2) + lsl.l #1,d0 ;2 coplists! + allocmem wi_chunkycop + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + ; + move.l d0,a0 + move wi_y(a2),d6 + move wi_h(a2),d7 + subq #1,d7 + move #$111,d3 ;test colour + move #$8000,d4 ;Colour Eor + ; +.hloop ;make one copline... + ; + moveq #127,d0 ;colour reg to poke + move wi_w(a2),d1 + subq #1,d1 + ; +.lloop move d0,d2 + addq #1,d2 + and #31,d2 + bne.s .notnbank + ; + ;new bank.... + move d0,d2 + sub #31,d2 + and #$ffe0,d2 + lsl #8,d2 + or d4,d2 ;eor bank + move #$106,(a0)+ ;bank select + move d2,(a0)+ + ; +.notnbank move d0,d2 + and #31,d2 + add d2,d2 + add #$180,d2 + move d2,(a0)+ ;colour poke + move d3,(a0)+ + add #$111,d3 + subq #1,d0 + dbf d1,.lloop + ; + bsr .makewait + ; + ;ok, now do EOR! + move #$10c,(a0)+ + move d4,(a0)+ + bchg #15,d4 + ; + dbf d7,.hloop + ; + bsr .makewait + ; + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + ; + ;OK, 1 list created...copy to other! + ; + move.l wi_cop1(a2),a0 + move.l a0,a1 + add.l wi_copmem(a2),a1 + move.l a1,wi_cop2(a2) + move.l a1,a3 + ; +.copycop move.l (a0)+,(a3)+ + cmp.l a1,a0 + bcs.s .copycop + ; + pull + rts + +.makewait ; + ;make wait ins. at pos d6 + ; + subq #1,d6 + move.b d6,(a0)+ + move.b #$e1,(a0)+ + move #$fffe,(a0)+ + addq #1,d6 + add wi_ph(a2),d6 + rts + +allocmem2_ ; + ;as below, but d2.l = extra mem at start to set aside + ; + push + moveq #16,d3 + add.l d2,d3 + bra.s amem_ + +allocmem_ ; + ;d0=size, d1=requirements, a0=text field + ; + ;set up node before allocmem for quick freemem: + ; + ;00.l : next + ;04.l : real size + ;08.l : offset to user mem (normally 16, but CM fucks things up) + ;12.l : pointer to text field for debugging + ; + push + moveq #16,d3 ;offset + ; +amem_ move.l a0,d4 + add.l d3,d0 + ; + move.l d0,d2 ;len + move.l a0,d4 ;text + move.l 4.w,a6 + jsr -198(a6) + tst.l d0 + bne.s .skip + ; + warn #$f00 + ; +.skip move.l d0,a0 + move.l memlist,(a0) ;next + move.l a0,memlist + movem.l d2-d4,4(a0) + add.l d3,a0 + move.l a0,d0 + ; + pull + rts + +freememlist push + ; +.more move.l memlist,d0 + beq.s .done + move.l d0,a2 + ; + ifne debugmem + move.l 12(a2),a0 ;text field + move.l a0,d2 + moveq #-1,d3 +.loop addq.l #1,d3 + tst.b (a0)+ + bne.s .loop + ; + move.l outhand,d1 + move.l dosbase,a6 + jsr -48(a6) + endc + ; + move.l a2,a1 + ; + move.l (a1),memlist + move.l 4(a1),d0 + move.l 4.w,a6 + jsr -210(a6) + bra.s .more + ; +.done pull + rts + +freemem_ ; + ;a1=address to free! + ; + push + ; + ifne debugmem + move.l a0,-(a7) ;error mess + elseif + endc + ; + move.l a1,a2 ;mem to find! + lea memlist(pc),a1 + ; +.more move.l a1,a0 ;prev + move.l (a1),d0 + beq.s .err + move.l d0,a1 + ; + move.l a1,a3 + add.l 8(a3),a3 + cmp.l a3,a2 + bne.s .more + ; + move.l (a1),(a0) + move.l 4(a1),d0 + move.l 4.w,a6 + jsr -210(a6) + bra.s .done + ; +.err warn #$ff0 + ifne debugmem + move.l (a7),freememerr + endc +.done ; + ifne debugmem + addq #4,a7 + endc + ; + pull + rts + +freememerr dc.l 0 + +initmap ;map address in map_map... + ;load in textures, do colour mapping etc. + ; + push + ; + move.l map_map,a0 + ; + move.l a0,a1 + add.l (a0),a1 + move.l a1,map_grid + ; + move.l a0,a1 + add.l 4(a0),a1 + move.l a1,map_poly + ; + move.l a0,a1 + add.l 8(a0),a1 + move.l a1,map_ppnt + ; + move.l a0,a1 + add.l 12(a0),a1 + move.l a1,map_anim + ; + move.l a0,a1 + add.l 16(a0),a1 + move.l a1,map_txts + ; + move.l (a0),d0 + sub.l #25*4,d0 + add.l a0,d0 + move.l d0,map_events + ; + move.l map_rgbsfrom2,map_rgbsat + ; + pull + rts + +freetxts lea textscrns,a6 + moveq #7,d7 +.loop move.l (a6)+,d0 + beq.s .skip + move.l d0,a1 + freemem freetxts + clr.l -4(a6) +.skip dbf d7,.loop + rts + +loadtxts push + ; + lea textures,a4 + move.l map_txts,a5 ;texture names + lea textscrns,a6 + moveq #7,d7 + ; +.ltl lea .temp(pc),a0 + ; +.ltl2 move.b (a5)+,(a0)+ + bne.s .ltl2 + moveq #0,d0 + cmp.l #.temp+1,a0 + beq.s .notext + lea .temp2(pc),a0 + moveq #1,d1 + jsr loadfile + ; +.notext move.l d0,(a6)+ ;texture! + beq.s .skip + ; + ;do colour mapping stuff! + ; + move.l d0,-(a7) + ; + move.l d0,a0 + add.l (a0),a0 + move.l a0,a2 + bsr addpal + ; + move.l (a7),a0 + addq #4,a0 + move.l a2,a1 + bsr remap + ; + move.l (a7)+,a0 + addq #4,a0 + moveq #19,d0 + move.l #64*65,d1 + ; +.mtxt move.l a0,(a4)+ + add.l d1,a0 + dbf d0,.mtxt +.skip ; + dbf d7,.ltl + ; + pull + rts + +.temp2 dc.b 'txts/' +.temp ds.b 64 + even + +remapanim ;a0=anim to remap... + ; + push + ; + move.l a0,a6 + movem (a6),d6-d7 + lsl d6,d7 ;how many frames! + subq #1,d7 + ; + move.l a6,a0 + add.l an_pal(a0),a0 + bsr addpal + ; + lea an_size(a6),a5 + ; +.loop move.l a6,a0 + add.l (a5)+,a0 ;start of shape + addq #4,a0 ;skip handles + movem (a0)+,d0-d1 ;w/h + mulu d1,d0 + lea 0(a0,d0.l),a1 ;end + bsr remap + ; + dbf d7,.loop + ; + pull + rts + +remap ;a0=start of byte data, a1=end of byte data + ; + push + ; + moveq #0,d0 + move.l maptable,a2 + ; +.loop cmp.l a1,a0 + bcc.s .done + move.b (a0),d0 + move.b 0(a2,d0),(a0)+ + bra.s .loop +.done ; + pull + rts + +addpal ;add palette in a0 to end of map_rgb + ; + push + ; + move (a0)+,d0 + subq #1,d0 + move.l map_rgbsat,a2 ;end of rgbs + move.l maptable,a3 + ; + clr.b (a3) ;0=0 + move.b #255,255(a3) ;-1=-1 + move.b #254,254(a3) ;-1=-1 + move.b #253,253(a3) ;-1=-1 + move.b #252,252(a3) ;-1=-1 + move.b #251,251(a3) ;-1=-1 + move.b #250,250(a3) ;-1=-1 + move.b #249,249(a3) ;-1=-1 + ; + moveq #1,d2 ;colour 1! + ; +.loop move (a0)+,d1 ;colour...does it exist? + bmi.s .next ;not used! + move.l map_rgbs,a1 + ; +.loop2 cmp.l a2,a1 + bcc.s .no + cmp (a1)+,d1 + beq.s .yes + bra.s .loop2 + ; +.no ;colour doesn't exist! + ;may have to do a 'near match' routine if we run out of colours + ; + move d1,(a2)+ + move.l a2,a1 + ; +.yes subq #2,a1 + sub.l map_rgbs,a1 + move.l a1,d1 + lsr #1,d1 ;real colour + ; + cmp #256,d1 + bcs.s .ok + ; + warn #$00f + ; +.ok move.b d1,0(a3,d2) + ; +.next addq #1,d2 + dbf d0,.loop + ; + move.l a2,map_rgbsat + ; + pull + rts + + ;coll types... + ; + ;1...bullet from player 1 + ;2...bullet from player 2 + ;4...bullet from monster + ;8...player 1 + ;16..player 2 + ; + + dc.l 0,player,tokens + ; +objlist ;list of objects to be freed... + ; + dc.l marine,baldy,terra,ghoul,demon,phantom + dc.l lizard,deathhead,dragon,0 + +player dc.l 0,0 ;main, chunks + dc.b 'objs/player',0,0 + even +tokens dc.l 0,0 + dc.b 'objs/tokens',0,0 + even +marine dc.l 0,0 + dc.b 'objs/marine',0,0 + even +baldy dc.l 0,0 + dc.b 'objs/baldy',0,0 + even +terra dc.l 0,0 + dc.b 'objs/terra',0,0 + even +ghoul dc.l 0,0 + dc.b 'objs/ghoul',0,0 + even +demon dc.l 0,0 + dc.b 'objs/demon',0,0 + even +phantom dc.l 0,0 + dc.b 'objs/phantom',0,0 + even +lizard dc.l 0,0 + dc.b 'objs/lizard',0,0 + even +deathhead dc.l 0,0 + dc.b 'objs/deathhead',0,0 + even +dragon dc.l 0,0 + dc.b 'objs/dragon',0,0 + even + +objinfo +player1_ dc.l player1 +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l $d0000 +_ob_shape dc.l player +.ob_logic dc.l playerlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l playerhit +.ob_die dc.l playerdie + ; +.ob_eyey dc -pl_eyey ;eye height +.ob_firey dc -pl_firey ;where bullets come from +.ob_gutsy dc -pl_gutsy +.ob_othery dc 0 +.ob_colltype dc 8 +p1_ob_collwith dc 6 ;6=combat, 4=game +p1_ob_cntrl dc 0 ;for player 0,1=joyport, 2=keys +.ob_damage dc 1 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 1 +.ob_range dc 1 +.ob_weapon dc 0 ;weapon type...0...25 +.ob_reload dc.b ireload,0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 ;4! +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +objinfof + +oilen equ objinfof-objinfo + +player2_ dc.l player2 +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l $d0000 +.ob_shape dc.l player +.ob_logic dc.l playerlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l playerhit +.ob_die dc.l playerdie +.ob_eyey dc -pl_eyey ;eye height +.ob_firey dc -pl_firey ;where bullets come from +.ob_gutsy dc -pl_gutsy +.ob_othery dc 0 +.ob_colltype dc 16 +p2_ob_collwith dc 5 ;5=combat, 4=game +p2_ob_cntrl dc 1 ;for player 0,1=joyport, 2=keys, 3=serial +.ob_damage dc 1 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 1 +.ob_range dc 1 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc.b ireload,0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 ;4! +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +health_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l healthgot +.ob_die dc.l healthgot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $30000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +weapon_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon2 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 1 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +thermo_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l thermogot +.ob_die dc.l thermogot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $10000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +infra_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l thermogot +.ob_die dc.l thermogot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $10000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +invisi_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l invisigot +.ob_die dc.l invisigot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $20000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +invinc_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l invincgot +.ob_die dc.l invincgot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $30000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +dragon_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l $c0000 +.ob_shape dc.l dragon +.ob_logic dc.l dragonlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l rts ;hurtngrunt +.ob_die dc.l blowdragon ;object +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 10 +.ob_hitpoints dc 100 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 16 +.ob_range dc 32 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $300 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +bouncy_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l bouncygot +.ob_die dc.l bouncygot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $60000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +marine_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $60000 +.ob_shape dc.l marine +.ob_logic dc.l monsterlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 1 +.ob_hitpoints dc 5 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 16 +.ob_range dc 32 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +baldy_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $40000 +.ob_shape dc.l baldy +.ob_logic dc.l baldylogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 2 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 3 +.ob_punchrate dc 4 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $220 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +terra_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $20000 +.ob_shape dc.l terra +.ob_logic dc.l terralogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtterra ;ngrunt +.ob_die dc.l blowterra +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 1 +.ob_hitpoints dc 35 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 32 +.ob_range dc 48 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_firerate dc 12 ;how often terra fires +.ob_bouncecnt dc 0 ;how many times +.ob_firecnt dc 5 +.ob_scale dc $280 +.ob_apad dc 0 +.ob_blood dc $fff ;color AND for blood +.ob_ypad dc 1 + +ghoul_ dc.l dummy +.ob_rotspeed dc.l $0 +.ob_movspeed dc.l $80000 +.ob_shape dc.l ghoul +.ob_logic dc.l ghoullogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtghoul +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -64 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 5 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l 0 +.ob_base dc 32 +.ob_range dc 48 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_firerate dc 12 ;how often terra fires +.ob_bouncecnt dc 0 ;how many times +.ob_firecnt dc 5 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $80f0 ;color AND for blood +.ob_ypad dc 1 + +phantom_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $a0000 +.ob_shape dc.l phantom +.ob_logic dc.l phantomlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 3 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $a000 +.ob_base dc 8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 7 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $280 +.ob_apad dc 0 +.ob_blood dc $ff0 ;color AND for blood +.ob_ypad dc 1 + +demon_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $70000 +.ob_shape dc.l demon +.ob_logic dc.l demonlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -90 ;where bullets come from +.ob_gutsy dc -72 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 5 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $7000 +.ob_base dc 32 +.ob_range dc 4 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $380 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +weapon1_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon1 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon2_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon2 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 1 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon3_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon3 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 2 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon4_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon4 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 3 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon5_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon5 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 4 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +lizard_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $60000 +.ob_shape dc.l lizard +.ob_logic dc.l lizardlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l lizhurt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 2 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 8 +.ob_range dc 8 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 2 +.ob_punchrate dc 3 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $240 +.ob_apad dc 0 +.ob_blood dc $f0f ;color AND for blood +.ob_ypad dc 1 + +deathhead_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l $c0000 +.ob_shape dc.l deathhead +.ob_logic dc.l deathheadlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtdeath +.ob_die dc.l blowdeath +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -96 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 3 +.ob_hitpoints dc 35 +.ob_think dc 0 +.ob_frame dc.l $8000 +.ob_framespeed dc.l $6000 +.ob_base dc -8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 10 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +abouttext dc.b 14 + dc.b 'GLOOM',0 + dc.b 0 + dc.b 'A BLACK MAGIC GAME',0 + dc.b 0 + dc.b 'PROGRAMMED BY MARK SIBLY',0 + dc.b 'GRAPHICS BY THE BUTLER BROTHERS',0 + dc.b 'MUSIC BY KEV STANNARD',0 + dc.b 'AUDIO BY US',0 + dc.b 'PRODUCED BY US',0 + dc.b 'DESIGNED BY US',0 + dc.b 'GAME CODED IN DEVPAC2',0 + dc.b 'UTILITIES CODED IN BLITZ BASIC 2',0 + dc.b 'RENDERED IN DPAINT3 AND DPAINT4',0 + dc.b 'DECRUNCHING CODE BY THOMAS SCHWARZ',0 + even + +sqrinc incbin sqr.bin + +weapon1 dc.l bullet1,sparks1 +weapon2 dc.l bullet2,sparks2 +weapon3 dc.l bullet3,sparks3 +weapon4 dc.l bullet4,sparks4 +weapon5 dc.l bullet5,sparks5 + +bullet1 incbin bullet1.bin +bullet2 incbin bullet2.bin +bullet3 incbin bullet3.bin +bullet4 incbin bullet4.bin +bullet5 incbin bullet5.bin + +sparks1 incbin sparks1.bin +sparks2 incbin sparks2.bin +sparks3 incbin sparks3.bin +sparks4 incbin sparks4.bin +sparks5 incbin sparks5.bin + +gloombrush incbin gloombrush + +gloom incbin title +gloompal incbin title.pal + +medplayer incbin medplay +decrm incbin decrm + +castrotsinc incbin castrots.bin +camrotsinc incbin camrots.bin ;256 +camrots2inc incbin camrots2.bin ;1024 +chatfont incbin chatfont.bin + +rgbs16 ds.l 16 +map_rgbs_ ds.w 256*16 diff --git a/arc.bin b/arc.bin new file mode 100644 index 0000000000000000000000000000000000000000..249546dd4bfb4a6da0a2760e337d57311c33d48a GIT binary patch literal 1024 zcmV~$2~3rB008jszVG|`e}8GD22n#yM}f`pOgHm*1y;-w1#09l=7J!n3$TE$OXg0bEEk<{s4QM-h0=&UHSHQ7WS zA0{!|b!M7HSe;$SKFzLUOW3#BeQYOtiXC7R>@D^oCvj=q zQf@U@%vEylaUXNN+y(9z?k0DiCwYg@4)>^CBs<3LU53Dw;$BJ14)>UiF`pZh$obB3+>}7Vue!<>qzh&>X57?dd z7xuSy+#a$2v}f%99NuxAMb1-BffIGMIF-&Wr^#t|dYnF|-x+q2&TVJTC0xygZkGFu zyT&bYOWi7WkK62axV>)7?RSUWq&wyQ?O~qm0WZT_?nS()_nNoetM&GJ2fa_d6W)0* z?p^c7yu03|YV!K*<d zfF5ufTmnCUYv2Z$0uR7^$c9D;!_075xH5b`d@0-(R))1QP;1K*Bj>9`}_J1-~A>aT2 literal 0 HcmV?d00001 diff --git a/baldy.anim b/baldy.anim new file mode 100644 index 0000000000000000000000000000000000000000..5880ee311b317d72d1c39d112f86abac0266efe2 GIT binary patch literal 49912 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

$4|N}&dtNhmM-nCjx6YZ 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 b*?M})bF$MrT{3o)XjBprbgSesLO=cwF`Avj literal 0 HcmV?d00001 diff --git a/baldy.anim.info b/baldy.anim.info new file mode 100644 index 0000000000000000000000000000000000000000..4ce447ce7402c701c8c98671b56993c2983ffc9c GIT binary patch literal 438 zcmaDXz`)1=1M&=l3~UU{42+EIS|1qMwOL>i2%3cfC|(G}84W-|5XJx?Q z1_pk91qK`b6AbP^J^etvAp8MnRs|3nf3SZb^Wpyo`~Uxc)C2Vb_5TB5uo*D7t$@1C zfPsPWLjurl3%Gk=Zjk`Gg^j;~fq@5MyZoK|+vI6o9HFn>M(HiZBG{|EB_vARvnB{iqCA~hf}Gq1$c)6>cY%mV4+0AfBj RPaoHi$N*PcM?X(r1^~Kcd&B?$ literal 0 HcmV?d00001 diff --git a/baldy.chunks b/baldy.chunks new file mode 100644 index 0000000000000000000000000000000000000000..4fbfac2bf5485a6a01fd4f125be08e70d0b8cdfb GIT binary patch literal 4394 zcmeHJU2Ggz75?tr*_qjR?>j&DoO}Jm(?_O(!qCT_nwXxLo~i-pSE1quup!?aJt9v|AF5M0 zAWz`e0|a4kpdQv|>NAa~F<)=g!`RfDi!=3T#+doW;^Jbm)LdGs)$5-m=IgNdzWbw| z1yU;(jw0mrf1bM<|Jz{l$j6@~g9i+Lo$0euoN0H+bW_Ak(m_|PpvyF@LOIvDqME6qb9d;z*Fi@8hALa2yy?Kw zFgFNOR=5VGnpCzrP(523y|&0HPyPp@e3HsE*FWEZYjGckL-^}rb=M7G_zt+R1+K(* z!Ic*EX$d=k;<_;Og~H$&)I!9o~HM-uzgpH>TlJZ-DOG-LU zL%9JU;=UVo7}kGbTU zIlaGugE*&QooD)l)WYsHWb9|r0+XWOLaCm5P+fz5kqy}9CUXeY{e`fu;W)nI8r3$s zEpXjAwubEOW9+gG=7|FR#4oA(&mk+u9FRFVk1HvqbrX*27f0usRCBxH=XhIp@RksT zUR4+~-@X4Pc3M9ML;6wx*)Dq>8T6SRWY@7%|NJ_u$O^%;0+ApTN;g@Pzhh0ZS~AFY zxfRq@72j>)wFqv<;H+?DpDbbLE$9GNz5`EXfxje>G-fc|BK#Ke0raonMo>om&5iw2 zY3@QzLtJ4eX!dNf3I~<$Ur{j|f}o`5@McqWNm3TJ(wh~tX9GT!-FetPPDkn+UK)x6 z@A#kQhr&(l@}USG1!6e~{8>H{kXIdT!4{}=9y`gwcz4uP;@c!7Ab=aFADug&uY+AhS?X!R4q$+n_yn>s>_TfpdT;}pb4G%z zc3#6+bQ?JxiM>43>37qPFRfz`ULk89oRLG1$KFK@Bod(t-7m9rQ=60KtT`5cwS!*T zT)EKu#yoMxfsJU;`V5|9 z)kwAwY?+f*P#oIaMf#-bhJ!%NmQP$TBh5TMg5sD?pkk&R&8juCiUM-?eb0nvdzp`7 z=v>6^uno&(!d3Jk`_fm;L!o8tljftS;&3SZRt$d?S=KXyrF%4|J^a*2>#n56UNx0g z9$!FlmJPu@W(YGadw$Ey0&K6xI9HvRp4-+U{=ll!`=AzAF@Wr+UdDb0;r+(nrIzsR z7z|O7cN4a;0Xl~U_m5RtK>6G=W_&iEj3W3Ncg?O? z5bvG>_B}TV%T{3)!SgCfQ5b5nNL0?;qDy?3v;mY&$&{;3{D?s#Pj(sw#*-BZ{S$vQ zg$3XgD@(!d&?!P#lOJ$k^=E>I=_H`b*T@RBOhoznBgh}ch2IlFCcDjJIF>6cb7;+2 z@361ceJ#?^kskE@o|LUrzKo=_A^#nf!H z%*pZGyU;6Jco!c;2;OFNdAur+SANFp<@H2j4O8vnVU7~6{P58js+B;a@%G_m@M`m~ zQ0P8(K?K_;q9&_fd_KF(|1lhN9*&JVBhZ-~GZ)C>++eaSSC@B%nB!x_oJu%q=qo(m zpL&7kf=OiE66$8&EOVb0SoxgQs&;5Wn6=`4Lz`+!wAAqFK!g;cS~?bQijLrG844t` vX-v&>N}+a{ue!X#%i;l-E>S35PCrxf+5X+mz;*_p%^qKrVA9VpNUq#fk{9{}>19sp&4G;;zI0|$`i{=v==2c#MQFgMI^1ghg>KlJ}$ zLjv!5)(7H08xj=tn-7EoY1RMoD#wBJ^j~=$@<3Yd&l~G#ARYRDSLl2o{T^g5kOrC# zGQS?g{r|rK%moq3-I96-$H=IP@a5*grX>*?d<%K!kZ8>+|v literal 0 HcmV?d00001 diff --git a/baldy.iff b/baldy.iff new file mode 100644 index 0000000000000000000000000000000000000000..5880ee311b317d72d1c39d112f86abac0266efe2 GIT binary patch literal 49912 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

PgJ3JAEUuwHS!G>D3>t}TL4pk$^k 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%0A8#(kR1%PjYf0KzkxxFB3tw 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:crunched length +; +;------------------------------------------------ +_startcrunch: + MOVE.l d0,a0 + MOVE.l d1,d0 +; LEA $100000,a0 + LEA Own(pc),a1 +; MOVE.l #30000,d0 + MOVEQ #8,d1 +; MOVE.w #$4000,$dff09a ; System Off + BSR Implode +; MOVE.w #$c000,$dff09a ; System On + RTS +;------------------------------------------------ +Own: MOVE.w d1,$dff180 + BTST #6,$bfe001 + BNE own1 + MOVEQ #0,d0 + BRA own2 +own1: MOVEQ #-1,d0 +own2: RTS +;------------------------------------------------ +Implode: MOVEM.l d2-d7/a2-a6,-(a7) + MOVE.w #$57,d2 +im01: CLR.w -(a7) + DBF d2,im01 + MOVE.l a7,a6 + MOVE.l a5,2(a6) + CMP.l #$40,d0 + BCS im23 + LSR.l #8,d1 + SCS (a6) + LSR.l #8,d1 + CMP.b #12,d1 + BCS im02 + MOVEQ #0,d1 +im02: MOVE.l a1,6(a6) + MOVE.l a0,10(a6) + MOVE.l a0,$22(a6) + MOVE.l a0,$26(a6) + MOVE.l d0,$12(a6) + ADD.l d0,a0 + MOVE.l a0,14(a6) + LEA imtab0(pc),a0 + LSL.w #2,d1 + MOVE.l 0(a0,d1.w),d1 + ADDQ.l #1,d1 + CMP.l d0,d1 + BLS im03 + MOVE.l d0,d1 + SUBQ.l #1,d1 +im03: MOVE.l d1,$1A(a6) + SUBQ.l #1,d1 + MOVEQ #0,d0 +im04: CMP.l (a0)+,d1 + BLS im05 + ADDQ.b #1,d0 + BRA im04 +im05: MOVE.b d0,1(a6) + LEA $A4(a6),a1 + MOVEQ #12,d1 + MULU d1,d0 + LEA imtab1(pc),a0 + ADD.l d0,a0 + SUBQ.w #1,d1 +im06: MOVE.b (a0)+,(a1)+ + DBF d1,im06 + LEA $74(a6),a1 + LEA $A4(a6),a0 + MOVEQ #11,d1 +im07: MOVE.b (a0)+,d0 + MOVEQ #0,d2 + BSET d0,d2 + MOVE.l d2,(a1)+ + DBF d1,im07 + LEA $74(a6),a0 + LEA $84(a6),a1 + MOVEQ #7,d1 +im08: MOVE.l (a0)+,d0 + ADD.l d0,(a1)+ + DBF d1,im08 + TST.b (a6) + BEQ im11 + LEA $74(a6),a1 + MOVEQ #7,d0 +im09: MOVE.l (a1)+,d1 + MOVE.w d1,(a2)+ + DBF d0,im09 + LEA $A4(a6),a1 + MOVEQ #11,d0 +im10: MOVE.b (a1)+,(a2)+ + DBF d0,im10 +im11: MOVE.b #7,$2D(a6) +im12: BSR im26 + BNE im22 + BSR im28 + BEQ im15 + BSR im55 + BNE im13 + MOVE.l $22(a6),a0 + MOVE.l $26(a6),a1 + MOVE.b (a0),(a1) + ADDQ.l #1,$22(a6) + ADDQ.l #1,$26(a6) + ADDQ.l #1,$30(a6) + ADDQ.l #1,$1E(a6) + CMP.l #$4012,$30(a6) + BCS im12 + BRA im15 +im13: MOVE.b $5C(a6),d0 + MOVE.l $60(a6),d1 + BSR im37 + MOVE.b $5E(a6),d0 + MOVE.w $66(a6),d1 + BSR im37 + MOVE.b $5D(a6),d0 + MOVE.w $64(a6),d1 + CMP.b #13,d0 + BNE im14 + MOVE.l $26(a6),a0 + MOVE.b d1,(a0)+ + MOVE.l a0,$26(a6) + MOVEQ #5,d0 + MOVEQ #$1F,d1 +im14: BSR im37 + MOVEQ #0,d0 + MOVE.b $2E(a6),d0 + ADD.l d0,$22(a6) + CLR.l $30(a6) + BRA im12 +im15: BSR im26 + BNE im22 + MOVE.l $22(a6),a0 + MOVE.l $26(a6),a1 + MOVE.b (a0),(a1) + ADDQ.l #1,$22(a6) + ADDQ.l #1,$26(a6) + ADDQ.l #1,$30(a6) + ADDQ.l #1,$1E(a6) + MOVE.l $22(a6),d0 + CMP.l 14(a6),d0 + BNE im15 + BSR im26 + BNE im22 + TST.b (a6) + BNE im19 + MOVE.l $26(a6),d0 + SUB.l 10(a6),d0 + CMP.l #12,d0 + BCS im23 + MOVE.l $12(a6),d1 + SUB.l d0,d1 + CMP.l #$36,d1 + BLS im23 + MOVE.l 10(a6),a1 + MOVE.l $26(a6),a0 + MOVE.l #$FF00,d7 + BTST #0,d0 + BEQ im16 + MOVEQ #0,d7 + ADDQ.l #1,d0 + CLR.b (a0)+ +im16: MOVE.l (a1),8(a0) + MOVE.l #"IMP!",(a1) + MOVE.l 4(a1),4(a0) + MOVE.l $12(a6),4(a1) + MOVE.l 8(a1),(a0) + MOVE.l d0,8(a1) + ADD.l #$2E,d0 + MOVE.l d0,$16(a6) + MOVE.l $30(a6),12(a0) + MOVE.b $2C(a6),d1 + AND.w #$FE,d1 + MOVE.b $2D(a6),d0 + BSET d0,d1 + OR.w d7,d1 + MOVE.w d1,$10(a0) + LEA $74(a6),a1 + ADD.w #$12,a0 + MOVEQ #7,d0 +im17: MOVE.l (a1)+,d1 + MOVE.w d1,(a0)+ + DBF d0,im17 + LEA $A4(a6),a1 + MOVEQ #11,d0 +im18: MOVE.b (a1)+,(a0)+ + DBF d0,im18 + BRA im23 +im19: MOVE.l $26(a6),d0 + SUB.l 10(a6),d0 + MOVE.l $12(a6),d1 + SUB.l d0,d1 + CMP.l #6,d1 + BLS im23 + MOVE.b $2C(a6),d1 + AND.b #$FE,d1 + MOVE.b $2D(a6),d2 + BSET d2,d1 + MOVE.l $26(a6),a0 + BTST #0,d0 + BEQ im20 + MOVE.b d1,(a0)+ + MOVE.l $30(a6),(a0) + BRA im21 +im20: MOVE.l $30(a6),(a0)+ + MOVE.b d1,(a0) +im21: ADDQ.l #5,d0 + MOVE.l d0,$16(a6) + BRA im23 +im22: MOVEQ #-1,d0 + BRA im24 +im23: MOVE.l $16(a6),d0 +im24: MOVE.w #$57,d2 +im25: CLR.w (a7)+ + DBF d2,im25 + MOVEM.l (a7)+,d2-d7/a2-a6 + TST.l d0 + RTS +;------------------------------------------------ +imtab0: Dc.l 128,256,512,1024,1792,3328,5376,9472,20736,37376,67840,67840 +imtab1: Dc.l $5050505,$5050505,$6060606,$5060707,$6060606,$7070606 + Dc.l $5060707,$7070707,$8080808,$5060708,$7070808,$8080909 + Dc.l $6070708,$7080909,$8090A0A,$6070708,$709090A,$80A0B0B + Dc.l $6070808,$709090A,$80A0B0C,$6070808,$709090A,$90A0C0D + Dc.l $6070708,$709090C,$90A0C0E,$6070809,$7090A0C,$90B0D0F + Dc.l $6070808,$70A0B0B,$90C0D10,$6080809,$70B0C0C,$90D0E11 +imtab2: Dc.l $2060E,$1020304 +imtab3: Dc.l $1010101,$2030304,$405070E +imtab4: Dc.l $20002,$20002,$6000A,$A0012,$16002A,$8A4012 +;------------------------------------------------ +im26: MOVE.l 6(a6),d0 + BEQ im27 + MOVE.l d0,a0 + MOVE.l 14(a6),d0 + SUB.l $22(a6),d0 + MOVE.l $22(a6),d1 + SUB.l $26(a6),d1 + MOVEQ #0,d2 + MOVE.b 1(a6),d2 + MOVE.l 2(a6),a5 + MOVE.l a6,-(a7) + JSR (a0) + MOVE.l (a7)+,a6 + NOT.l d0 +im27: TST.l d0 + RTS +;------------------------------------------------ +im28: MOVE.l $22(a6),a5 + MOVE.l 14(a6),d4 + MOVE.l a5,d0 + ADDQ.l #1,d0 + ADD.l $1A(a6),d0 + CMP.l d4,d0 + BLS im29 + MOVE.l d4,d0 + MOVE.l d0,d1 + SUB.l a5,d1 + CMP.l #3,d1 + BCC im29 + MOVEQ #0,d0 + RTS +;------------------------------------------------ +im29: MOVE.l d0,d5 + MOVE.l a5,a2 + ADDQ.l #1,a2 + MOVE.l a2,a4 + MOVEQ #1,d7 + MOVE.b (a5),d3 + LEA $34(a6),a3 +im30: CMP.b (a2)+,d3 + BEQ im32 + CMP.b (a2)+,d3 + BEQ im32 + CMP.b (a2)+,d3 + BEQ im32 + CMP.b (a2)+,d3 + BEQ im32 + CMP.b (a2)+,d3 + BEQ im32 + CMP.b (a2)+,d3 + BEQ im32 + CMP.b (a2)+,d3 + BEQ im32 + CMP.b (a2)+,d3 + BEQ im32 + CMP.b (a2)+,d3 + BEQ im32 + CMP.b (a2)+,d3 + BEQ im32 + CMP.b (a2)+,d3 + BEQ im32 + CMP.b (a2)+,d3 + BEQ im32 + CMP.b (a2)+,d3 + BEQ im32 + CMP.b (a2)+,d3 + BEQ im32 + CMP.b (a2)+,d3 + BEQ im32 + CMP.b (a2)+,d3 + BEQ im32 + CMP.l a2,d5 + BHI im30 +im31: MOVEQ #-1,d0 + RTS +;------------------------------------------------ +im32: CMP.l a2,d5 + BLS im31 + MOVE.l a4,a0 + MOVE.l a2,a1 + CMPM.b (a0)+,(a1)+ + BNE im30 + CMPM.b (a0)+,(a1)+ + BNE im35 + CMPM.b (a0)+,(a1)+ + BNE im34 + MOVE.w #251,d0 +im33: CMPM.b (a0)+,(a1)+ + DBNE d0,im33 +im34: CMP.l d4,a1 + BLS im35 + MOVE.l d4,a1 +im35: MOVE.l a1,d6 + SUB.l a2,d6 + CMP.w d6,d7 + BCC im30 + MOVE.w d6,d7 + CMP.w #8,d6 + BHI im36 + TST.b -2(a3,d6.w) + BNE im30 + MOVE.b d6,-2(a3,d6.w) + MOVE.l a2,d0 + SUB.l a5,d0 + SUBQ.l #2,d0 + MOVE.w d6,d1 + LSL.w #2,d1 + MOVE.l d0,0(a3,d1.w) + BRA im30 +im36: MOVE.b d6,7(a3) + MOVE.l a2,d0 + SUB.l a5,d0 + SUBQ.l #2,d0 + MOVE.l d0,$24(a3) + CMP.b #$FF,d6 + BNE im30 + BRA im31 +im37: MOVE.b $2C(a6),d2 + MOVE.b $2D(a6),d3 + MOVE.l $26(a6),a0 +im38: LSR.l #1,d1 + ROXR.b #1,d2 + SUBQ.b #1,d3 + BPL im39 + MOVEQ #7,d3 + MOVE.b d2,(a0)+ + MOVEQ #0,d2 +im39: SUBQ.b #1,d0 + BNE im38 + MOVE.l a0,$26(a6) + MOVE.b d3,$2D(a6) + MOVE.b d2,$2C(a6) + RTS +;------------------------------------------------ +im40: AND.l #$FF,d0 + CMP.b #13,d0 + BHI im42 + CMP.b #5,d0 + BHI im41 + LEA imtab2(pc),a0 + MOVE.b -2(a0,d0.w),$71(a6) + MOVE.b 2(a0,d0.w),$69(a6) + BRA im44 +im41: SUBQ.b #6,d0 + OR.b #$F0,d0 + MOVE.b d0,$71(a6) + MOVE.b #8,$69(a6) + BRA im43 +im42: MOVE.b #$1F,$70(a6) + MOVE.b d0,$71(a6) + MOVE.b #13,$69(a6) +im43: MOVEQ #5,d0 +im44: SUBQ.b #2,d0 + MOVE.l $30(a6),d2 + LEA imtab3(pc),a1 + LEA imtab4(pc),a0 + ADD.l d0,a0 + ADD.l d0,a0 + CMP.w (a0),d2 + BCC im45 + MOVE.b 0(a1,d0.w),d6 + MOVE.b d6,d3 + ADDQ.b #1,d3 + MOVE.b #0,$73(a6) + MOVEQ #0,d4 + BRA im48 +im45: CMP.w 8(a0),d2 + BCC im46 + MOVE.b 4(a1,d0.w),d6 + MOVE.b d6,d3 + ADDQ.b #2,d3 + MOVE.b #2,$73(a6) + MOVE.w (a0),d4 + BRA im48 +im46: CMP.w $10(a0),d2 + BCS im47 + MOVEQ #0,d0 + RTS +;------------------------------------------------ +im47: MOVE.b 8(a1,d0.w),d6 + MOVE.b d6,d3 + ADDQ.b #2,d3 + MOVE.b #3,$73(a6) + MOVE.w 8(a0),d4 +im48: MOVE.b d3,$6A(a6) + SUB.w d4,d2 + MOVEQ #$10,d5 + SUB.b d6,d5 + LSL.w d5,d2 +im49: ADD.w d2,d2 + ROXL $72(a6) + SUBQ.b #1,d6 + BNE im49 + LEA $A4(a6),a1 + LEA $74(a6),a0 + ADD.w d0,a0 + ADD.w d0,a0 + ADD.w d0,a0 + ADD.w d0,a0 + CMP.l (a0),d1 + BCC im50 + MOVE.b 0(a1,d0.w),d6 + MOVE.b d6,d3 + ADDQ.b #1,d3 + MOVEQ #0,d7 + MOVEQ #0,d4 + BRA im53 +im50: CMP.l $10(a0),d1 + BCC im51 + MOVE.b 4(a1,d0.w),d6 + MOVE.b d6,d3 + ADDQ.b #2,d3 + MOVEQ #2,d7 + MOVE.l (a0),d4 + BRA im53 +im51: CMP.l $20(a0),d1 + BCS im52 + MOVEQ #0,d0 + RTS +;------------------------------------------------ +im52: MOVE.b 8(a1,d0.w),d6 + MOVE.b d6,d3 + ADDQ.b #2,d3 + MOVEQ #3,d7 + MOVE.l $10(a0),d4 +im53: MOVE.b d3,$68(a6) + SUB.l d4,d1 + MOVEQ #$20,d5 + SUB.b d6,d5 + LSL.l d5,d1 +im54: ADD.l d1,d1 + ADDX.l d7,d7 + SUBQ.b #1,d6 + BNE im54 + MOVE.l d7,$6C(a6) + MOVEQ #-1,d0 + RTS +;------------------------------------------------ +im55: CLR.w $2A(a6) + CLR.b $2E(a6) + LEA $34(a6),a4 + LEA $3C(a6),a5 +im56: MOVE.l (a5)+,d1 + MOVE.b (a4)+,d0 + BEQ im58 + BSR im40 + BEQ im58 + MOVEQ #0,d0 + MOVEQ #0,d1 + MOVE.b -1(a4),d0 + LSL.w #3,d0 + ADD.b $69(a6),d1 + ADD.b $68(a6),d1 + ADD.b $6A(a6),d1 + SUB.w d1,d0 + BMI im58 + CMP.w $2A(a6),d0 + BCS im58 + MOVE.w d0,$2A(a6) + MOVE.b -1(a4),$2E(a6) + LEA $5C(a6),a0 + LEA $68(a6),a1 + MOVEQ #12,d1 +im57: MOVE.b (a1)+,(a0)+ + DBF d1,im57 +im58: MOVE.l a4,d0 + SUB.l a6,d0 + CMP.w #$3C,d0 + BNE im56 + CLR.l -(a4) + CLR.l -(a4) + TST.w $2E(a6) + RTS +;------------------------------------------------ + + + +_decrunch: ;LEA $50000,a0 + MOVE.l d0,a0 +;********************************** +;* FILE IMPLODER DECRUNCH ROUTINE * +;* FOR ASMONE ASSEMBLER * +;********************************** +; +; Entry: a0 = address of crunched file +; Exit: d0 = 0 error or d0 = -1 depack ok +; +; File structure to check: +; +; 0(a0) = 'IMP!' +; 4(a0) = len of depacked file +; 8(a0) = len of packed file-$32 +; A(a0) = here start the datas +; +; +deplode: + CMP.l #"IMP!",(a0) + BNE I1802 + MOVEM.l d2-d5/a2-a4,-(a7) + MOVE.l a0,a3 + MOVE.l a0,a4 + TST.l (a0)+ + ADD.l (a0)+,a4 + ADD.l (a0)+,a3 + MOVE.l a3,a2 + MOVE.l (a2)+,-(a0) + MOVE.l (a2)+,-(a0) + MOVE.l (a2)+,-(a0) + MOVE.l (a2)+,d2 + MOVE.w (a2)+,d3 + BMI I17EE + SUBQ.l #1,a3 +I17EE: + LEA -$1C(a7),a7 + MOVE.l a7,a1 + MOVEQ #6,d0 +I17F6: + MOVE.l (a2)+,(a1)+ + DBF d0,I17F6 + MOVE.l a7,a1 + BRA I1E70 +I1802: + MOVEQ #0,d0 + RTS +I1E70: + TST.l d2 + BEQ I1E7A +I1E74: + MOVE.b -(a3),-(a4) + SUBQ.l #1,d2 + BNE I1E74 +I1E7A: + CMP.l a4,a0 + BCS I1E92 + LEA $1C(a7),a7 + MOVEQ #-$1,d0 + CMP.l a3,a0 + BEQ I1E8A + MOVEQ #0,d0 +I1E8A: + MOVEM.l (a7)+,d2-d5/a2-a4 + TST.l d0 + RTS +I1E92: + ADD.b d3,d3 + BNE I1E9A + MOVE.b -(a3),d3 + ADDX.b d3,d3 +I1E9A: + BCC I1F04 + ADD.b d3,d3 + BNE I1EA4 + MOVE.b -(a3),d3 + ADDX.b d3,d3 +I1EA4: + BCC I1EFE + ADD.b d3,d3 + BNE I1EAE + MOVE.b -(a3),d3 + ADDX.b d3,d3 +I1EAE: + BCC I1EF8 + ADD.b d3,d3 + BNE I1EB8 + MOVE.b -(a3),d3 + ADDX.b d3,d3 +I1EB8: + BCC I1EF2 + MOVEQ #0,d4 + ADD.b d3,d3 + BNE I1EC4 + MOVE.b -(a3),d3 + ADDX.b d3,d3 +I1EC4: + BCC I1ECE + MOVE.b -(a3),d4 + MOVEQ #3,d0 + SUBQ.b #1,d4 + BRA I1F08 +I1ECE: + ADD.b d3,d3 + BNE I1ED6 + MOVE.b -(a3),d3 + ADDX.b d3,d3 +I1ED6: + ADDX.b d4,d4 + ADD.b d3,d3 + BNE I1EE0 + MOVE.b -(a3),d3 + ADDX.b d3,d3 +I1EE0: + ADDX.b d4,d4 + ADD.b d3,d3 + BNE I1EEA + MOVE.b -(a3),d3 + ADDX.b d3,d3 +I1EEA: + ADDX.b d4,d4 + ADDQ.b #5,d4 + MOVEQ #3,d0 + BRA I1F08 +I1EF2: + MOVEQ #4,d4 + MOVEQ #3,d0 + BRA I1F08 +I1EF8: + MOVEQ #3,d4 + MOVEQ #2,d0 + BRA I1F08 +I1EFE: + MOVEQ #2,d4 + MOVEQ #1,d0 + BRA I1F08 +I1F04: + MOVEQ #1,d4 + MOVEQ #0,d0 +I1F08: + MOVEQ #0,d5 + MOVE.w d0,d1 + ADD.b d3,d3 + BNE I1F14 + MOVE.b -(a3),d3 + ADDX.b d3,d3 +I1F14: + BCC I1F2C + ADD.b d3,d3 + BNE I1F1E + MOVE.b -(a3),d3 + ADDX.b d3,d3 +I1F1E: + BCC I1F28 + MOVE.b I1F8C(pc,d0.w),d5 + ADDQ.b #8,d0 + BRA I1F2C +I1F28: + MOVEQ #2,d5 + ADDQ.b #4,d0 +I1F2C: + MOVE.b I1F90(pc,d0.w),d0 +I1F30: + ADD.b d3,d3 + BNE I1F38 + MOVE.b -(a3),d3 + ADDX.b d3,d3 +I1F38: + ADDX.w d2,d2 + SUBQ.b #1,d0 + BNE I1F30 + ADD.w d5,d2 + MOVEQ #0,d5 + MOVE.l d5,a2 + MOVE.w d1,d0 + ADD.b d3,d3 + BNE I1F4E + MOVE.b -(a3),d3 + ADDX.b d3,d3 +I1F4E: + BCC I1F6A + ADD.w d1,d1 + ADD.b d3,d3 + BNE I1F5A + MOVE.b -(a3),d3 + ADDX.b d3,d3 +I1F5A: + BCC I1F64 + MOVE.w 8(a1,d1.w),a2 + ADDQ.b #8,d0 + BRA I1F6A +I1F64: + MOVE.w 0(a1,d1.w),a2 + ADDQ.b #4,d0 +I1F6A: + MOVE.b $10(a1,d0.w),d0 +I1F6E: + ADD.b d3,d3 + BNE I1F76 + MOVE.b -(a3),d3 + ADDX.b d3,d3 +I1F76: + ADDX.l d5,d5 + SUBQ.b #1,d0 + BNE I1F6E + ADDQ.w #1,a2 + ADD.l d5,a2 + ADD.l a4,a2 +I1F82: + MOVE.b -(a2),-(a4) + DBF d4,I1F82 + BRA I1E70 +I1F8C: + Dc.l $60A0A12 +I1F90: + Dc.l $1010101 + Dc.l $2030304 + Dc.l $405070E + +;***------------------------------------------------------------------------ +;*** This is the ultimate Data-Decrunch-Routine +;*** For Crunch-Mania V1.7 +;*** (c) 1991, 92 by -;> Thomas Schwarz <+-, all rights reserved +;*** You may Use this piece of code as long as you don't claim that +;*** you have written it. In any Case the author (me) has To be +;*** mentioned someplace in your proggy. +;*** Note: Source- AND Destinationaddresses have To be always Even Addresses +;***------------------------------------------------------------------------ +;*** Here is the Format of the Header: +;*** Type Offset Contents Function +;*** LONG 0 "CrM!"/"CrM2" To recongnize crunched files +;*** WORD 4 Minimum Security Distance To savely decrunch Data when +;*** Source AND Dest is in the same +;*** Memoryblock +;*** LONG 6 Original Len Datalen before packing +;*** LONG 10 ($a) Crunched Len Datalen after packing without +;*** Header +;***------------------------------------------------------------------------ +;** Jump here To decrunch some Data with overlap check +;** You need some Memory directly in front of the Destination Area +;** which has To be as large as the MinSecDist +;** Load the Regs with: +;** a0: Adr of Source (with Header) ** a1: Adr of Dest +;**------------------------------------------------------------------------- +;Test = 0 ;set this to 1 to decrunch ram:Test +;*************************************************************************** +; ifne Test +_crm: + MOVE.l d0,a0 + MOVE.l d0,a1 + +; MOVE.l d0,_Data +; LEA _Data(pc),a0 +; LEA 14(a0),a1 +; BRA NormalDecrunch +; endc +;*----------- + +OverlapDecrunch: + MOVEM.l d0-d7/a0-a6,-(a7) + LEA FastDecruncher(pc),a5 + MOVE.l (a0)+,d0 + CMP.l #"CrM!",d0 + BEQ.b decr + LEA LZHDecruncher(pc),a5 + CMP.l #"CrM2",d0 + BNE.b NotCrunched +decr: MOVEQ #0,d0 + MOVE.w (a0)+,d0 ;MinSecDist + MOVE.l (a0)+,d1 ;DestLen + MOVE.l (a0)+,d2 ;SrcLen + LEA 0(a0,d0.l),a2 + CMP.l a1,a2 + BLE.b NoCopy + MOVE.l a0,a2 + MOVE.l a1,a0 + SUB.l d0,a0 ;MinSecDist abziehen + MOVE.l a0,a3 + MOVE.l d2,d7 + LSR.l #2,d7 ;Longs +CopyLoop: + MOVE.l (a2)+,(a3)+ + SUBQ.l #1,d7 + BNE.b CopyLoop + MOVE.l (a2)+,(a3)+ ;in case of ... +NoCopy: + MOVE.l a0,a2 + JSR (a5) +NotCrunched: + MOVEM.l (a7)+,d0-d7/a0-a6 + RTS +;**------------------------------------------------------------------------- +;** Jump here To decrunch some Data without any overlap checks +;** The Regs have To loaded with: +;** a0: Adr of Source (with Header) +;** a1: Adr of Dest +;**------------------------------------------------------------------------- +NormalDecrunch: + MOVEM.l d0-d7/a0-a6,-(a7) + MOVE.l (a0)+,d0 + LEA FastDecruncher(pc),a5 + CMP.l #"CrM!",d0 + BEQ.b decr2 + LEA LZHDecruncher(pc),a5 + CMP.l #"CrM2",d0 + BNE.b NotCrunched2 +decr2: TST.w (a0)+ ;skip MinSecDist + MOVE.l (a0)+,d1 ;OrgLen + MOVE.l (a0)+,d2 ;CrLen + MOVE.l a0,a2 + JSR (a5) +NotCrunched2: + MOVEM.l (a7)+,d0-d7/a0-a6 + RTS +;**------------------------------------------------------------------------- +;** This is the pure Decrunch-Routine +;** The Registers have To be loaded with the following values: +;** a1: Adr of Destination (normal) ** a2: Adr of Source (packed) +;** d1: Len of Destination ** d2: Len of Source +;** Leave everything below this Line in its original state! +;**------------------------------------------------------------------------- +FastDecruncher: + MOVE.l a1,a5 ;Decrunched Anfang (hier Ende des Decrunchens) + ADD.l d1,a1 + ADD.l d2,a2 + MOVE.w -(a2),d0 ;Anz Bits in letztem Wort + MOVE.l -(a2),d6 ;1.LW + MOVEQ #16,d7 ;Anz Bits + SUB.w d0,d7 ;Anz Bits, die rotiert werden m|ssen + LSR.l d7,d6 ;1.Bits an Anfang bringen + MOVE.w d0,d7 ;Anz Bits, die noch im Wort sind + MOVEQ #16,d3 + MOVEQ #0,d4 +DecrLoop: + CMP.l a5,a1 + BLE.l DecrEnd ;a1=a5: fertig (a1d0:Bits + MOVE.w d6,d0 ;d6:Akt Wort + LSR.l d1,d6 ;ndchste Bits nach vorne bringen + SUB.w d1,d7 ;d7:Anz Bits, die noch im Wort sind + BGT.b GBNoLoop +; add.w #16,d7 ;BitCounter korrigieren + ADD.w d3,d7 ;BitCounter korrigieren + ROR.l d7,d6 ;restliche Bits re rausschieben + MOVE.w -(a2),d6 ;ndchstes Wort holen + ROL.l d7,d6 ;und zur|ckrotieren +GBNoLoop: + ADD.w d1,d1 ;*2 (in Tab sind Ws) + AND.w AndData-2(pc,d1.w),d0 ;unerw|nschte Bits rausschmei_en + RTS +;*---------- +AndData: + Dc.w %1,%11,%111,%1111,%11111,%111111,%1111111 + Dc.w %11111111,%111111111,%1111111111 + Dc.w %11111111111,%111111111111 + Dc.w %1111111111111,%11111111111111 +;*----------- +DecrEnd: + RTS ;a5: Start of decrunched Data +;*************************************************************************** +OCmpTab = 0 +OAddTab = 64 +ORealTab = 128 +OAnzPerBits = 1182 +OBufLen = 1246+2 +;****************************** +LZHDecruncher: + LEA Tabbs+2(pc),a6 +; addq.l #2,a6 + ADD.l d1,a1 + ADD.l d2,a2 + + MOVE.w -(a2),d0 ;Anz Bits in letztem Wort + MOVE.l -(a2),d6 ;1.LW + MOVEQ #16,d7 ;Anz Bits + SUB.w d0,d7 ;Anz Bits, die rotiert werden m|ssen + LSR.l d7,d6 ;1.Bits an Anfang bringen + MOVE.w d0,d7 ;Anz Bits, die noch im Wort sind + MOVEQ #16,d3 + +BufLoop: + LEA OAnzPerBits(a6),a0 + MOVEQ #16-1,d2 +clear: CLR.l (a0)+ + DBF d2,clear + + LEA OAnzPerBits+32(a6),a0 + LEA ORealTab+30(a6),a4 + MOVEQ #9,d2 + BSR ReadTab + LEA OAnzPerBits(a6),a0 + LEA ORealTab(a6),a4 + MOVEQ #4,d2 + BSR ReadTab + + LEA OAnzPerBits+32(a6),a3 + LEA OCmpTab-2(a6),a4 + BSR CalcCmpTab + LEA OAnzPerBits(a6),a3 + LEA OCmpTab+30(a6),a4 + BSR CalcCmpTab + + MOVEQ #16,d1 + BSR GetBits2 + MOVE.w d0,d5 + LEA ORealTab+30(a6),a0 + LEA -30(a0),a5 +decrloop2: ;** tabu: d3/d6/d7/a0-a2/a4 + MOVE.l a6,a4 + BSR ReadIt + BTST #8,d0 + BNE.b skip + MOVE.w d0,d4 + + LEA OCmpTab+32(a6),a4 + EXG a0,a5 + BSR ReadIt + EXG a0,a5 + MOVE.w d0,d1 + MOVE.w d0,d2 + BNE.b sc1 + MOVEQ #1,d1 + MOVEQ #16,d2 +sc1: BSR GetBits2 + BSET d2,d0 +sc2: LEA 1(a1,d0.w),a3 +sloop: MOVE.b -(a3),-(a1) + DBF d4,sloop + + MOVE.b -(a3),-(a1) + MOVE.b -(a3),d0 +skip: MOVE.b d0,-(a1) + DBF d5,decrloop2 + MOVEQ #1,d1 + BSR GetBits2 + BNE.w BufLoop + BRA LZHDecrEnd +;*-----------******************* +ReadIt: + MOVEQ #0,d1 ;Nr Byte +RIloop: + SUBQ.w #1,d7 + BEQ.b BTLoop + LSR.l #1,d6 ;Bit rausschieben und Flags setzen + BRA BTEnd +BTLoop: + MOVEQ #16,d7 ;hier kein add notwendig: d7 vorher 0 + MOVE.w d6,d0 + LSR.l #1,d6 ;Bit rausschieben und Flags setzen + SWAP d6 ;ror.l #16,d6 + MOVE.w -(a2),d6 ;ndchstes Wort holen + SWAP d6 ;rol.l #16,d6 + LSR.w #1,d0 ;Bit rausschieben und Flags setzen +BTEnd: + ROXL.w #1,d1 + MOVE.w (a4)+,d0 + CMP.w d1,d0 + BLS.b RIloop + + ADD.w 62(a4),d1 + ADD.w d1,d1 + MOVE.w 0(a0,d1.w),d0 + RTS +;*------------------------------------- +GetBits2: ;d1:AnzBits->d0:Bits + MOVE.w d6,d0 ;d6:Akt Wort + LSR.l d1,d6 ;ndchste Bits nach vorne bringen + SUB.w d1,d7 ;d7:Anz Bits, die noch im Wort sind + BGT.b GBNoLoop2 + ADD.w d3,d7 ;BitCounter korrigieren + ROR.l d7,d6 ;restliche Bits re rausschieben + MOVE.w -(a2),d6 ;ndchstes Wort holen + ROL.l d7,d6 ;und zur|ckrotieren +GBNoLoop2: + ADD.w d1,d1 ;*2 (in Tab sind Ws) + AND.w AndData2-2(pc,d1.w),d0 ;unerw|nschte Bits rausschmei_en + RTS +;*---------- +AndData2: + Dc.w %1,%11,%111,%1111,%11111,%111111,%1111111 + Dc.w %11111111,%111111111,%1111111111 + Dc.w %11111111111,%111111111111 + Dc.w %1111111111111,%11111111111111 + Dc.w %111111111111111,%1111111111111111 +;*--------------------------------------- +ReadTab: + MOVEM.l d1-d5/a3,-(a7) + MOVEQ #4,d1 + BSR GetBits2 ;Anz AnzPerBits + MOVE.w d0,d5 + SUBQ.w #1,d5 + MOVEQ #0,d4 + SUB.l a3,a3 +RTlop: ADDQ.w #1,d4 + MOVE.w d4,d1 + CMP.w d2,d1 + BLE.b c1 + MOVE.w d2,d1 +c1: BSR GetBits2 + MOVE.w d0,(a0)+ + ADD.w d0,a3 + DBF d5,RTlop + + MOVE.w a3,d5 + SUBQ.w #1,d5 +RTlp2: MOVE.w d2,d1 + BSR GetBits2 + MOVE.w d0,(a4)+ + DBF d5,RTlp2 + MOVEM.l (a7)+,d1-d5/a3 + RTS +;************************************************************** +CalcCmpTab: + MOVEM.l d0-d7,-(a7) + CLR.w (a4)+ + MOVEQ #15-1,d7 + MOVEQ #-1,d4 + MOVEQ #0,d2 + MOVEQ #0,d3 + MOVEQ #1,d1 +CClop: MOVE.w (a3)+,d6 + MOVE.w d3,64(a4) + MOVE.w -2(a4),d0 + ADD.w d0,d0 + SUB.w d0,64(a4) + ADD.w d6,d3 + MULU d1,d6 + ADD.w d6,d2 + MOVE.w d2,(a4)+ +cont2: + LSL.w #1,d2 + DBF d7,CClop + MOVEM.l (a7)+,d0-d7 + RTS +;********************************************* +LZHDecrEnd: +;LZHDecrLen equ *-LZHDecruncher + + RTS +;*********************************** +Tabbs: Dc.w 0 ;unbedingt!!!!!!! +CmpTab: Ds.w 16 ;Len + Ds.w 16 ;Dist +AddTab: Ds.w 16 ;Len + Ds.w 16 ;Dist +RealTab: + Ds.w 527 ;Dist+Len +AnzPerBits: + Ds.w 32 ;Dist+Len +;*************************************************************************** +;** Leave everything above this Line in its original state! +; ifne Test +_Data: Dc.l 0 + +;IncBin work:decruncher.s +; Ds.l 10000 +; endc + +;A0 : Start des gecr. Files +;A1 : Ende des gecr. Files +;A2 : Zieladresse an die decruncht werden soll + +_ppdecrunch: + MOVEM.l d0-d7/a0-a6,-(a7) + MOVE.l d0,a0 + MOVE.l d1,a1 + MOVE.l d2,a2 + bsr dec + MOVEM.l (a7)+,d0-d7/a0-a6 + RTS + +dec: CMP.l #"PP20",(a0) + BNE.b nopower + LEA 4(a0),a5 ;Effiziens + MOVE.l a1,a0 + MOVE.l a2,a3 + MOVEQ #3,d6 + MOVEQ #7,d7 + MOVEQ #1,d5 + MOVE.l a3,a2 ; remember start of file + MOVE.l -(a0),d1 ; get file length and empty bits + TST.b d1 + BEQ.b NoEmptyBits + BSR ReadBit ; this will always get the next long (D5 = 1) + SUBQ.b #1,d1 + LSR.l d1,d5 ; get rid of empty bits +NoEmptyBits: + LSR.l #8,d1 + ADD.l d1,a3 ; a3 = endfile +LoopCheckCrunch: + BSR ReadBit ; check if crunch or normal + BCS.b CrunchedBytes +NormalBytes: + MOVEQ #0,d2 +_Read2BitsRow: + MOVEQ #1,d0 + BSR ReadD1 + ADD.w d1,d2 + CMP.w d6,d1 + BEQ.b _Read2BitsRow +ReadNormalByte: + MOVEQ #7,d0 + BSR ReadD1 + MOVE.b d1,-(a3) + DBF d2,ReadNormalByte + CMP.l a3,a2 + BCS.b CrunchedBytes +nopower:RTS + + +ReadBit: + LSR.l #1,d5 ; this will also set X if d5 becomes zero + BEQ.b GetNextLong + RTS +GetNextLong: + MOVE.l -(a0),d5 + ROXR.l #1,d5 ; X-bit set by lsr above + RTS +ReadD1_SUB: + SUBQ.w #1,d0 +ReadD1: + MOVEQ #0,d1 +ReadBits: + LSR.l #1,d5 ; this will also set X if d5 becomes zero + BEQ.b GetNext +RotX: + ROXL.l #1,d1 + DBF d0,ReadBits + RTS +GetNext: + MOVE.l -(a0),d5 + ROXR.l #1,d5 ; X-bit set by lsr above + BRA RotX +CrunchedBytes: + MOVEQ #1,d0 + BSR ReadD1 ; read code + MOVEQ #0,d0 + MOVE.b 0(a5,d1.w),d0 ; get number of bits of offset + MOVE.w d1,d2 ; d2 = code = length-2 + CMP.w d6,d2 ; if d2 = 3 check offset bit and read length + BNE.b ReadOffset + BSR ReadBit ; read offset bit (long/short) + BCS.b LongBlockOffset + MOVEQ #7,d0 +LongBlockOffset: + BSR ReadD1_SUB + MOVE.w d1,d3 ; d3 = offset +_Read3BitsRow: + MOVEQ #2,d0 + BSR ReadD1 + ADD.w d1,d2 ; d2 = length-1 + CMP.w d7,d1 ; cmp with #7 + BEQ.b _Read3BitsRow + BRA DecrunchBlock +ReadOffset: + BSR ReadD1_SUB ; read offset + MOVE.w d1,d3 ; d3 = offset +DecrunchBlock: + ADDQ.w #1,d2 +DecrunchBlockLoop: + MOVE.b 0(a3,d3.w),-(a3) + DBF d2,DecrunchBlockLoop +EndOfLoop: + CMP.l a3,a2 + BCS.l LoopCheckCrunch + RTS diff --git a/ctest.bb2 b/ctest.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..f7cfc0caeca0180a9a0efaa0cd63eb7c637bea6c GIT binary patch literal 42 vcmZQ*FkxW0z^GuLV{BxgV`OTkW6HpA0>n2l(J{3;!J=Tmz|g?Oz`y_iv5*I^ literal 0 HcmV?d00001 diff --git a/ctest.bb2.bak b/ctest.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..f0ae266f1fe03859f416497240a3cca81c3fe1a8 GIT binary patch literal 58 zcmZQr#-d=Lqf}B+Qf#CTBn{&Ym2?al816PHEMwF#&;+xVGHQT1I?LFBLO`(wE(Qhw D&e9G> literal 0 HcmV?d00001 diff --git a/ctest.bb2.info b/ctest.bb2.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKu5KjQ&7NB?y5ce^#F!TWFHXsgS;9%$g(sO`fQ-Esb0ok*FdJ7mt7^;Bm P1R(AL;$9%`XW#+=HTDzh literal 0 HcmV?d00001 diff --git a/cunt b/cunt new file mode 100644 index 0000000000000000000000000000000000000000..5d47dfb5acdf6927774769a631e9a27782b33f1d GIT binary patch literal 3516 zcmd5;eP~4a5?Qf>2+OnVB&zUU{1F;A1pHAqi<2hN zJjt}im}h4T+2|i#S3=1jC5#fbG=z`^la^9cV}eP$&N0SwL$F6E_2y)5=t7q%ir#+b zO8#hJ`+HCP^zOU&e4lgAy+nooq}-$A-*^>zfxq+Hd>^0J&7Xc=hZUUViEIBvOFN>QM5U(EO^kyn6|C`h6U zYhLrReZHHh!2CBR?R<*f-0B#r+y!CiUHWG6vCuk3j}d9^&%4R~CgN^cECff)LL@4p zOGZjJ#Fm4WiJL34~&AK%*vF*^25Z<~EZ-O$^yrf?5yRcOlDPy~y*TE5CA9 zu1sOYSYLs!6RlQ|0?zBc363O;TOUVk7+5-J%gbENl3F67Ll?&c^(IC}&7>vW^~7JKRICpE6Y{<>=!BCM3@F;PRR zubt-*rRBKYvbYyAdMJBQYImDPP|IcJJK9TYjB^=_#8Vu*eP59aUi@SRGkLldyKX&q zh+F>ANT);=`Yu(c;NA6;M9ngv>OihK7v%hhdYD2!0^K=`{CHo`he+S{3=QL5nd8V+ zkWe>P36bPKWG4LuK1FwS6ZNi*=0z=4z;83U6rvEuN0A-9+*eCggEn-0B**SSs;?#9 zrPH~!IMY_nT3aKlbdmR{B65r>TNc^x*ePTdRs>7@jgrJd@+7f4|`P};98)D#rzB%@BO=k_; zH*UN{_SJfVU6;UdN!m5HMzdxY$0OE+PT(H2p}mTIzBS>~czo^5%h(N=@m@RAM^yS2 zd})YKWzOepr{vRSF*|5;+#80`9V(=zkCd#(GbPyU-EdN5^=?J;6+N>O_K8DdcgEtbRa?=cVExu8xwh;^kBpGk z_Gf#1>mJ@O6ZfbH5ia2fKbhqSD>M1Xsw0S{{ny?1;CUIe)c6d&#D`wxuOThA7d7SV zq0AXXAN%SF#jInbjKJDi_)X@DeZBe<#C(5angn}Nq9JoU(}|gJo^f85=S3vC6i?|x zkGu7!p}kpm$XvA#DuJQLd!XUMYE>&@z?NNK8=$iA<2s?>q{FM)a528JaW3c^b~sia!`5GY9GZ+DPj>$&vDgeZivk- ziv^Gm5Bq@noSo?pSr5Hio`Ns!>$axP>5d+H{Hjh;QevZR=`)fi&Xxs+(s4;?<|$)2 zEzzY1h8`WX+fT)Qz-MXf6toC^DBU7?pYy?^biL&Cu?O326tq~zf6Pv zub=AAVC84nV>fvpJ7)L};TVzs7G@{q?410bkpGj|(GR>Jbe+ahdN@D0Fm12-$9DV?3f9fGPYH+42n4AZV3eT=nB>CUk`%fg2{fYjQCpOpseMNnTL*f2}rD1#?JNG`` zF@T=}^w|o)g>e>m2rL5&z$|bRNC8)XcY$|+w}27g6(9-(03W*CG|&mO0;su?5Kse@ zqTN8Y^BdqUFb9Cvc@5YPz!s+yP?3GmIUWKlz~6uc*gFhdf*bDu%S6TSqZmBJGr$+1 z*#SV81{&=G0CS3O15=yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKMnhmU1V%#uM+huq;9~G$U}cD7 zNMR@evL^xY0wA6M#4SMa8X)dtU}5M1(rrK-#K6JO0i@>u#ijt&%mcD#0reIzh%i(E Q*$F`01;o8T+|R%T0D-F#>i_@% literal 0 HcmV?d00001 diff --git a/cunt.info b/cunt.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKu5KjQ&7NB?y5ce^#F!TWFHXsgS;9%$g(sO`fQ-Esb0ok*FdJ7mt7^;Bm P1R(AL;$9%`XW#+=HTDzh literal 0 HcmV?d00001 diff --git a/data/gloomgame b/data/gloomgame new file mode 100644 index 0000000..31fd5de --- /dev/null +++ b/data/gloomgame @@ -0,0 +1 @@ +gamegamegamegamegamegamegamegame \ No newline at end of file diff --git a/data/maps/com1_1 b/data/maps/com1_1 new file mode 100644 index 0000000000000000000000000000000000000000..4feaebbfe73f060aede798cbe9d62bfe9feacec1 GIT binary patch literal 928 zcmV;R17G|@a!oP-0000bY5)KOl2wecy2p3%m&AWw|9=Z{U&B5L@t2Q&7yM87hrs`i z{{Z;=!`?3NcZUBPcw51LiM%KDkC)NW(b3V-(b3ob6-{Bbt+*@HR|aZkaI31X1a%|B z9a!)drWX^!A5tD2T%Be-pzj=4Id?z(0mQ82BULkAuC)@50}OzXN?n{5AD9zZ1b; zOd=B_+`kQSMeX^)2x{CjLpj1AGSf zb@1!p*XlL!+j4E;SHiD>UZTDWbu!+Lj*gCwj*gCwj*gCwj*gDs!ouqP{fCjZLcZrw zrSHs@zDeXh`&(vw{Q2@fv%lz7+y0%ip^dT=_H|q1?|yRG;>cgz>Y(YwpP4-QCm;K2 z;e4N+-nKs_`<-TuHmXFE_D@@=-nTRE)mdK~-!i|jhu=D{`X4-}?2vv*pMN$NmHn6P z3~iA7>FtFVr!V?X-z0;-cUh6LDD%BPWX*w%vK99`2Gc)pX5z?v(^vf-(EZ)#0Pnv$ zr|dm5%UAXnKb_z7XZ`at@=KZfy3CCjtjVFV`FiFy$bZ@2_x}frA@faGR#E)gt@22( z?cK8?ix%x>!i};Q_L{RO+0yo}$Y$Wp{cnm^^xxThh9Au9Yi~mSpEml?^s*6{Ypt)z zH_w{iB=s6I3|&%~&+nGB^K~1|3~yUmP{r-0nr5!$KVeIm68Mz8EzF!xKr?_;7`Dxf!Bk$W6;%)o^VItkHQ|FQ2YVuAbkD9?{hx*J>DMpUGTf$ zcTG{>4Za(E7Wggjo2QiD0lG+UKXB{3b@0o0%fYUiroI(_ioOMW3ixI4%ixz!B)$=J zlwN+|7x)X|=flr~p9ek`e)7+Oo#4-gnoCa&I!jN2ojjECbe$(j(sZ3CNz!zkCrQ$D zohM1sf4RA&xAwtNxxVN6c-!aHFV_YCeSe`;t^4?sL4H5aH~Qb}{qwk*1sjbWlH|R!}Z_X zwSU_k>Nhp}$L0fD@gu{H1Q2sNz?3(qD0KbDYuam7cpl?xB z|MkJ}m>>9s1x8^zo#8Rx@weJl*!QQk_PyaUpMq!|4YhWT#(!JYye3QVN}kE)s_rJ_ z1r6*KM98+c`6co<=&cF8h5cb7t3J2uUR!VnE*gU0jZ522FHg@dzh`)j*{#2`S6tlN z#GPjF>v;2f48c3kmi}I6pEq`RnYZE<=Era4=8E6&E#WQy65q?p>{T>@Mt^^#2Ww$R zFzUjDLS&SXot>SXou~W~@>p`bxxrMDxOw5{ zgPKXt55Fhg4{0a7Ebz0!8cH4#uPJssF&>!UP6XjKdQD%$gN58K;J4VfBZ1xrcx|sO zybRJtdmamECA=o^o4{`YyfpCB!>@;52EVbd zk;1QqUjn-FE8&+(W%fK0{zSeJd?NS-@C)JR_IdDg`5gFJ@U!4&z|V%AC8xnpf}a9) zSXot>SXot>SXotO1BG@t)=6m6FBj>^8~o>3PTTgoc=8D^7*`V+oFFZU*_ z7utRPtwQ+&_vq~TXedv<)vA%USbg+)UgZ1#>v3hgljWWs-yxfeE#(zcKQN+x9qT_& zEe!jU@E7a%Y^ooTzyC*Na<4w(7e6g8l2k9w-^yi}VNLom*0SH-aeklO|Ks)h_sf5M zX+*zI@2qvKxApEJ(#wBd) z(CKBLyVJfy^Kb5d-SS=egR#EWTjumo>1DsZzFJ?NzG{{FQ~d|>)cnM-vu@sR`bODr zo7=x3{_8Y4Sz((bmKWsTH^@o(>%~Nkvfn-b!ubv(Mr{{t^AF-yBS}<^OA9v9eEB0r zwf^#w2=VuLb2;80Jtv)$8zwSCJH@>syk;xHVNHcoQ7BvkUHUUqca8Z>m#wsRrROnJ zjAmJk%P^VGK*DD|4Ky}|_*$;yjOis*sA^O?)|#)-TCStELiQ84-jA<2Oq*=Ke=e>+ zD`w=?+3mdErm3mB7B2SVyFGUAZhq|-nl9PqiPv!BG+nkX{>tQ=wi$)lHQYTe+sbJ% zX%ZivKcofoHX6YgNtw92gjb z!eUW)%yK&)k;&#WJEi{t{(`}wQMnKN5Uqql=5dP8OSSjUWh3BYl8hrSf? zE(Y;m!G9V2C-EP}UJ>B08EH-YTlUV*&d$!x&d$!x&fEMFr7RUmD}~})hu$A}J^LQ; znv$D=DwIwqgm8`lRG{E>Ek|(EO07H&(nol0;kSaCr77ZgE#S9=u1Rp4OH|$iQmAeN zdy$9ua>eUjnqX z72%eZS$GA~L3}*;dGK?pQ=b#U&g8S;XYv{Fr%P2n1o#u-kL<_69VCy0I;BJBXJ=<; zXJ=<;XJ=<;XJ={rIA}j#eZ05(ixeMOXZzy$Z|Jd>KC;L6#q!_XqxbH!;D^8Y|2V!` z{r2CU=u~}WpUy9q5B1Fa_fDX{Mt`9Ev;FaYreCCgp!~7@@lL3}O@E;LxB12Twe^$2`NcYk^_KpUs-GOz4LZHd7J%nRebDoeV$61{R#eq^55^b%{-Usuk;_5*ZL1v=^vT= zpFGF<=jNXuS#O!1zIp!b^K_KYi9z|f)AJM0&uO#t^2Geezc%kbJ2qt})>voCi}U%} z(#*bDpA6V7R1t(b?k|UJsgIfTd{3hM-LP7#QQ`sFXGM#?8g_Zx(rMx!kErUq-YMxm z;V^H=4?})=Wc~U2f!%k~+WV)vI|-L)9upzz?FL3**S?`UEclwI!jlPnahY=9Ga>-2!J>f{~` zSpy5|B935rHzQRx(tV>6ynDHlur1N;UC1!B?0EE0kL3`9Vn k*pMCv3zI`&QUJIL9|49#q8@VmjSB-er7 z2Y7Aaw}U-AnfP85{3-Yo@F(Gqa%1qT!mk8+c_Z+L;SazcfIknqOYeo?_i{b(yWw}h z?&Le+x5ICNT6q=Vx500M-V1n5(o=jd0lScIhhGl94R<473ceM53hqL_8GJJMCDX|- zgk2>U!te|8fqXpYXP*Z?4ty;5S@1L9XTwjMQTmSLi=$A0hqtGJm18;RVZiHG5^g!K3%>pT8jgS)>bX z{l!N1%MaXFl^|a4{n`0re%aIZB53{lCcU!XV!WWD|J+|Kee8Yi{f7Ossz>Dce*B|J zra@o3y7@Kxr}ygd_&?TuTkr4x^Yq91$v@qHmdE#jlX~0s40Wux^cgrU zzi#3kEVuMjQ8>x{^N)~W|9QrC-)z-T-l~!RS)z%Pk1qVjTFZZVe)@8UOD+8eEU^9d z4qqVuS^L+*9U=bHhs^s29cwH$&DMGPeY5a%vcqhYI6W#KwA=R2edHBhjkaAl@{}#q zkyiGGm3s|p_8c9ZveBh|FVK&8Jkr6p%x+A0*9N3`>r%N1uej!k$r{{^YDXLtRJ?8E0!5zdBu9!ebi7T z8+@dlrtA5#w*0Lt`6n&g^zlTcrL&2hk-2s1>q19aY~qcJw#@A6_s%T#;?K{_{L0P` z9a+VB60TZb5zoKr0e)nI!K)yV34@LpESgQMrfh;sRV-1<)o)J!@<$u>Tq`7(BIQv(O=P>CH)2cIsF;^ zDg6obj>q&`71HjRbQeTDHTqfUr=o2ySZ`j}we5Re*R}0?Ue~vO!6zk#DJ*a$Bu)iW zkz4}Yfp}fQ?j5w3Zw;x-Zrkw7c4fgX32^%lu;n{aU*L_vZV-4u;pUvY@NJ}B=8~JtPm&-XC@2?}Oh5z88Eh z_#N;&;kUzYg5L$c6MQE44e%S`*Tb)aUk1JvbmdpTu97S0?+m}Wm%%PPCGZvCE5a{? zUjV)Vd_4Gh@N?kj!q0`D13m_PH2&tF1v*Jjgq=A__1}P=>=WU~!;ga>20j#gDEJZZ zBjJa`4}u*zA@F7SPy21Z2iGI+5PTr`0o;ImKX`udeYqcaUhuu(dr2Pf-KQSK<8dqvRL! z!j&TYKb{!ovfs^74lK9xRD6T|3Q*xM@&DzI_xAp3wfIlp`o9tRVEzBEl02`%-|v5x z|2#Nh#g_hu%YU98QZL8(;f`x9{MQUPvfs^c{DOadzk~dtS>=BHFT{RW{O$bJ7vui_ zSK>b`e|^82{QM*Rf5$bJ{%R<3Wxtw>G_Vx{Y z&6fMBN^x9Yse|$l_r>3QSk;xAE&W#$?`Q9%Z;*ee{>1a<{{kp+WxuMqIo@c+@(SOy zw=8fzZ-;9 za2wyZyH-|gx7|`vC4QR)1^I2hLHUukWvGH}J0qMu0trzGmUA4DEHD;C~zDZI#0qM_1wXrs~ zCep&IVN|kSjMZ&R^csarG}g^Dv2BIvO-9hY4*d`4FGYISrI=`HHlQ(Wy zf6D_E{R# z-d*asa+UQiWApX>AV9my33G)MVj&SQazS9guxPSdF2P{(DP-bxK(JmhoDPRmvE1@{ zJ)aM!ovONdc$L~+3hyFZNA}h zx!rE}o89*XgTi647@Sx58l8m3W3m|>l1nI+O6AiDwBC1Lx?jM+s5D+R9FNE(^4YBC z{s{-fqLEpQ&j162N?}m2Buow!0>L4W*n~&G2!X(%!Eh8k`vCyJ00F{asM5kEPyh}5 C|HG^R literal 0 HcmV?d00001 diff --git a/data/maps/com1_7 b/data/maps/com1_7 new file mode 100644 index 0000000000000000000000000000000000000000..562f05c753630cb206fe878b3dbdf723eae55424 GIT binary patch literal 968 zcmV;(12_Cba!oP-0000casU7Wx+J6vkUrNZ$DhZV&71NQkS;*{pK?9PcOl%9{F`z) z$Un*7$hRcigK~Ar*O9L!e<6P+evmqUE|*KC(&==%T`ryf1iY3DQcH0A>Guv-t)KWg zX)L@Rq@Ll8C65hPma-2Er!wrLgxn_K4iMl<@+SelgK$Q?k>E~}Cy;n!ykp>(f?g4R zk$5A#Bj8U0ctfu!d;;(b!#A%d(*IoOuINaYO{e$z{ zFTj(1&i{Py(LWP@JM#du`=%P3jm&=Zeq;80>4zoF@;sm!)nCjKeg|9bcjihqADt|% zei``hDiN~7&?k58=6)GO{LcMS!zkT>%RcpgGyCcC*XCBLXB(U5&ac3~y}#az(e1w5 z4mUCT>Hhuleg*yXtz7+R|GZUkh5hAv_|fv=J~Uu_!xd=e|O== z=Kj(7pSf|r0o)ft&Lz*4ebh zza0u*@L^MNxxR1zq4*oPrB^H5-wXLwcNJAUYUOiU&2N@GYur?B)aMlP4L$IAc;#Zh zF<*Fv;uQ!3{GASIARW6v!rqg-M>UTb%(CD;kJtmb- zsMPAUYRzi7V88!?Ai!u=3l)n-{5|+P@OR;Fs^5;_Z>Zmy!tV>bHTY}rJHYP+ehU0H;%&Tl34Rj%7VulZUx2>} zye9DH#N7PO19c7KxHIr);ZMS!fj!Wlg~PAe*M>jYkHH@kBk+gS565r^oxpw{d_MR+ z{f~Su7k_2n1HZ8EhTbOI;MY@LJA&WQZ-n0oz7=>?;5YUS@awvD@GHQt2E9#uD)BX6 zM@L6TM@L6TM@L6TM@L6TKk906UHik#wujMv?9KL`Z@wSipPxwk@_%-5-DR{t-Y?yp zc(gu?_hhfMtv>jFc6Q5s3-8JO_L6D4gq^;dZhr8>Gc6DIla2P8zu%8Gt1R1Z_v6N4v_IZY?#?tbEf3}| z-I2c1{o(%cUp9L?thRrjJLga6UjA_Y?3E15L-~{Yv*=v^IAHxby1)NTSn))hhLYm_W^c5$lx`Gu&tv43n#xw|DqLBxqXtY=srTI`@S~a| z>QV30_0#I6HB5FhLZ*d9x@Udh9y1n|LLc-G>RH2eGR@E~^E6s0x7nv}^WCN`CWWe_ zS*f5mM?0+cbH_N_RaTgLVc!=f25dQLe7^oaANxLkvvGUk(^S;ml4cRk={secL-O;YcuEI?>YC7jGe*d5=7|91yWD+3}F`y<@Etq3+IV{F!JfKl4 z70UgR(QLS1Gnx&D&>0wxM`O|X6q;2onN4QXdDQNEKA+HNbXqkgmrbWsYE?@G;06c< zgTkR`EFLQtjL0OCiDbfQIHXf57fb*82L^>iqS3GT9w~qWK%kJ2BK8{yh{WM=$aF)% Y1&4z`P#5S1000UJ2gr;d5{Qfd0+u1ZQvd(} literal 0 HcmV?d00001 diff --git a/data/maps/com2_2 b/data/maps/com2_2 new file mode 100644 index 0000000000000000000000000000000000000000..4919ef5dac68c140713df27e6175151cf4b92f7a GIT binary patch literal 1078 zcmV-61j+kDa!oP-0000dq5uE{C?urUpQfCCMf6)wq_;1j}{EGaN{DS zNIyWMy!-Im^)~n|`ip!f?-P6m_zm#u>UH7Q>UHpIpi^H8x=ODpcoq7Ed@}t^z6pM! zUkJOzUk|u_z%SGb;pafFJ`HImxl6&%@aMwMg`Wz%D)2M)4ESl@H24+ZSAv}+r@~Hw zQhD_HeLkO0r_<^5`h7m1Pp8xA^q=BlXiomwOgAup|ChIS{c)e1r~TdkUGopA`2T)g zC*1y>2;Xa%{k3bK3-j}gmp9E^fvxaa_qi|5hJN#_`|W;f5959Qep&&(+ESDEc1)@R z?*DH<-q$zHjGvwU%}O4ZH2dcK&Hwy=Ek+xdee-^8Kke7`Xw|3v2|r-u!*hJsFU{RK z9s3GQB%*)VJ(zB9nz?^lAhv(lUz*SRJM!Bw+}}1azdQY!WIZlt_vh`Ves%l!{#sTW zo94!s=L7$4)%fY`zx#|5(QS@Ahm^^o#z3$E|aJzJ6L( z8=C$3`)Z$^^KbR9+e!E*<{!r&xbgYN@BjEl8<_q1`)}Ns{SWiw)ANe_&b4lDo2S1$ zD-F%mX1Mws6lBtog(f*3<^@HIlhC)dRDKcpj}=!QsKbv^u(8PS-D-mr{y(`9+?IFU z&R!g>MOgE1ZVgz=v2Raud8>Spa$>&5W|~Zwq-#z~GT{6n@*>5 z$|WL~P^?!g_sm99F`UqBHh`t97BL-=NhK1wY`$YXpU@~YIxQZPOs7-oH7d1Uvs$g! zYt|bTmd|OmTW!}1#s7i+1_mOLnACbdCYjDEmPGd=>DQrH>cE zL6{ANoHD}h8gQqi0`hh9I`RY0Kz>iV$KNAfM!c7F%Dd#-^EUYw>J+!hCX$nZ zc_#TL`7wPl$Tv)(zD~MJuaU2juad8luaK^aqP|SJg=OGgM7~76NWU^KkS_2S$>+)E z$mixc@>$d>&ydcNGsj0qM@L6TM@L6TM@L6P{7g+3@12ML_7oJnzt(+(Gz*-QQS=ApetjXrdKJGIUH=+Q)jxv%f5^M7?w#*l7j z`|AAP+B*H~MfylPnEv{|H7ECK{jKFv4bA_0zjzt_(ZC(d|9ZbS_f$~qxxbzN_(v1_ zqmImOZ|<+&Kf71wTL4K!ga5z(4;|X({^9a_{rUjh-_FfC_NRt2ItTsTgvyp?$JxX{K6fvkcan z+emd?t@>Zz^*ppqXEtIynBPS7rm^V~skPrG57JbV^tLfJ>$l#+d@4|0)c|rbj;0##p6-9?0!Wfo>wdPj;CX}xSgh9WSF8RP8~y`=fpBP4QY{&eNM#bqg@WnA;{zA4SUfT- z7?RI_;DD|JLBIilB4AK#4iO0h1>jK$1V$wUhQp{3_z!>t{Q$rK0D-XCB19!oA^-)a C=keG8 literal 0 HcmV?d00001 diff --git a/data/maps/com2_4 b/data/maps/com2_4 new file mode 100644 index 0000000000000000000000000000000000000000..779492a4b969c1c2e4f7c14b84446b88e78a580e GIT binary patch literal 906 zcmV;519kjEa!oP-0000dRsaA4d?c{dO(1^!Rm6V*^n%^^SWAVtrw?Fm4ft2#t~vN; z;(x&Zj{gn*7xSXot>SXm;4fiEDEHG;kUfof>jDjhE$eZ z2GT=#Epjcuj{-a*q@v+Ug;S2;2=oU8a7O^R1;frBaO;O$I`HekuLis-@THAywWF9f_I@Qc760Py>V+&u8}!k>jd0)7PiG5BNfb5N%|cMCi$@JHZ}!XJb` z0Db`cKKOm`d*JuN?}gt3z6X3Z>J_)aZjxK$xJ}2T-vPb@d^-4b@N3}L!mov20=@-& zCGeNPUjckM)GMC`bdx?ig*%d;0(=SZ$L}%lM{*My z{OtSf!^M{JPn=nAB)#RBr{3?CxV}Jq-P`53-R1Jw`7uv@-721W8ls%{r--%mj09EI$3Y&K76zN z{+f|s>^Jc6WC$aP*&)C$#FSD+0=u6fv%EgJ~N!Z5NJ*$ga~jgs)NENlx4HkFjDR8>k1 zYpom5OIc~E9&74n*=CF{j{V#>_{y!N?53YnvomwH+tQWYtf?xaRBv9liOUU@TgY6q zdEZgL|1KkEaHOGIz+3pnx0JWEDvTPbJ*IzuNDI!O4b_lHghj^#g9AiT$%a`lnocK_ z3MC?$P^ww47)++q_y~+fqmk(pl2I#`%jUCr%)t%x*g$kjUiHnT*cAV7g!bz(B+%6&8}o|KMe84iOTHMPwKV6dDN& gh{XH=C}36_4}imh@dxMz000FE$%+yYDvA;S0+D6hzyJUM literal 0 HcmV?d00001 diff --git a/data/maps/com2_5 b/data/maps/com2_5 new file mode 100644 index 0000000000000000000000000000000000000000..06227058cce91c24f495b70bf4aff097d4cc3b55 GIT binary patch literal 972 zcmV;-12gilwr^0ULo4{_Nyzj%W4!j!h zYr?PDSAkoQuLV8|d@cUVei?OT;V1S<@Dsq{J_h@k-<G*)PM6CiPA5gWS-49UUDV9UUDV z9UUDV9UUDUzqz^2{r3){*$A;{+HZ8p?t&obk7nk zkl%Bs-kG2M`d*9ItG;2&mESYe{W~r!hs-~)DeHG^{{HLN%zAy^$^MU;)@Qy(e@MDs zE|>kfOW)I`%!_0z@0|^^{j)drokh!)(&EzM`t@*Z_oTfh`<=$&vLDl@-kCmWUwv=w zHeyAxAK!aEX};@!I%LegX8Y?;y)t~#`Q4v;w11_LzHrI@VEgM);G6G%`49J6`O{W4 z^FO-Te{R+DPxlM=hOh11vm)6K>D6}mTQ8b_xPM{G3ElGcNVY@yo%2m!H2-zGRsCDG zMlRpXE>4wQvgxGl^Sk6G{(f^`F`v)R9hGP_l9Gpw!TikCti_V zBDPPlnCQ*nGBVMwZ|?qUEhWd;&KeWG+hL)zIzx1oeoDO{+7ou3pYLhLDVt@xY6^P4 ziqIRT;r{R*ryT8_@cDtMr!Lv=q@4EfnXrM{;C?y3AD3{y+uOI(j{CB%Zf?p~cVq6( zO?Dn&TexGkc-3|vM(*x5U5vX6j?(Pf-rT_c}1wo+^2)t%B9FIsOvzhG! u0sjI)!EiWCI12)TLV#d+h$a^giA4Mm7+?w-{Q$rK0l}b{!bAd4!T<$YFPJ1|8JZ9 z=|nRwVE^>|-<>#yWz9bNes9mMeeG(7Wz0VMesA~DpSw_hGX3=J`Rs4rE9OTE$KW54 z_wR4cn0|Zx>Dn2WH|K}9=f65?hGot9;nn%?&#v#y)ZP2u#4|2$&krA-zj{BMjS$Sa zkKC`$)gPWKKXE{Er|wj*;Ge(n?!c^1+@H!t6iEMz56>UHD`PU|AAeuOYiSS2@P2rc z_ZQ}*^|_xizcnU+pneqWd)f0B=1cROY;Bu-?O6=Vm}g|T*#3Nf%>42_Ms^!)`{Rcj z=gr$HN3K+t;(gS7OH;^p&Pn(u>^N62jR&kFN$bYP3^$*bpGLI_ni?~F%Q2M&n3;{3 zFJLa?W=n)w&MiyyHl|fmo#a+16pBiR>P`Wuv@F7L@A1m!<7WHc5bk;neyB8-u=8Eh zn)6q8p1HExcdp+XI=<P>b>;6#XED&-=j>Pp1TvadC9KNvb{F8?5O5d z+YWC#8+fQMWASz>F2yC=e3{xcB&TQJ>g*#9#1+z3(gf{IK1Prg)Py>l3K1C$!D2aN zx~+`Kr4pG`x?eDwPA8Mu^%AjMuh}gY%ZAVl3=Az-uvpxBMI(|)<}+Ee-g7&k(5Q4; zJtmb-sMM;JYX#$g0|Eiy@Q6%SFB*KcEW2xKYinz3Yinz3Yinz3Yis|muC4#`n-Fd{&ScW#eP`x~-<^&9)}J|-D<6mZ z<@uuJQVqu6zEGam-?hyyH_mlwalW(jMem&y`PTf*!lL{iK2*OCWOq;FLY@W{kIie( zA32|me}C2cqewRz{`r0~*XLi~_vU956dR3ye5cN5AD#R1{Ly$fk3Tx!nkdd|jr-ij zszJEl&t}i#bawaS4f)6S{e9+2r-8V~_sj8;zdPsp1GDox=i|@M9}FUSW6VOS62Ele(5E zXW#UIvv3+5)KG}XW+Il%F^J^?wO_trF&NB-Q!$*-X*C+nhSPDp;&M5jk7w`|8jr|i za!E9zRV$WDWzzYC%4ap3&Sz7(?EZs8qEV?7nq4xTPpDLCbxN&Tv0%J#0fAT?9uWzQ z#^bUHEYj(J{{ew8STtV&{{evk3fQa)Args!;E+A*i3-IUR&%vLAKMH;n{0aCI z@W=LJ>+BKf-55OOX-?Q&uVE4iAh2IOl2Ye3rZSdRRx500O-8`oC_5*Z~ z-m2l(?Capy>}%my?5p5cJqq|);b(?l4893`68J^?BKQUS0{D6RJoq`&$>e*B-jA9z0Sz2SSn_t<;GcI4gQyTNya?IkN<|2 zsOmb7qp0dSj-#mRf55=efBx*oO_uWwZ=TaMS#LidyY8PiG5>zI?#J#rCYbpX|KV*> zU&rhsYRsD~K7XIb5&a0A7F)>gs$VyGqRV;v^_|D>Rz7YDe*H+OwXatG!U_xI7ypH| zJr{~l-}ZPE43JYF-lS92v0meJSMc8~{&uWG#g_jy^3UgLC2@Zb=W8BoE&jb?9xS)| z^^cps%|wTRKkxs`Kb{}+z03G3{%!eUzvkIj@cwvzUt`T>zu$hosSg%d{`^0(YJA=P zhL4kqQ2XOU#*`%f{OBORr2Mn_$A8bDzlZaV(LH~^$$Yc<$5;>d`|dB{{Ntp5dt=RI zztF+H{Tg~6EVugf_s!q#-}mh@9t{7xX#c-_v!C;A%lNbYoqu^hK5l<@|8@QCEmmK{ zpY-V(FJ!;BN1Drjp@V(;H^_Lh-|wiRJE!bEeBH7-@g{FGD}cD?zB}BG`9@j zOCD=2{=J(I7F+#$H|Fp2T_NL7`K$Qy)_+YkHuHIR*^_05SuHg`FT8x*43XB$S?BfP zIYE*qEtxuMWwu%`AfZA|mWosbyrx^e>S(v!TAEg#oKH?GiD|}KagK)Y(BI@O@)n}q zCzdjgXkv`{xOKFtx;(8Vw_%=`Wv1$@Q~KROEfuV~2+&z*MK++Lq8fu;`a`1Ly2D7n zBwmt@5wA5z=Hk9WsIHJTi&;tNr70~4rhuU|SwNw0OZsa-e^XN(8~p-kZ_Un2df)Tc zrJ{(I%cg6tb^IGU&bIE2PH&S&K)~A)md3a3j|psVZMM?fE?9sIbECg0Z}fNITm2om zv5SADTW67|(d-AuWK%h;-g7&i&*(HdEgq9grqk**I;~!_TCLY>)*BU$$!4?KZC1N& zy5VxWUaxoC_6G%n!r`#^j8-ohzzjj+v53@iLnD$&WYVcz(!qGY|ABFM^rBfUmrN!< z@L)765s+O00FYD?3lfunz`=CvD*yz8LLzXOTtX=p@IztH_!JBe3 literal 0 HcmV?d00001 diff --git a/data/maps/com3_2 b/data/maps/com3_2 new file mode 100644 index 0000000000000000000000000000000000000000..f36f3e9890f3099066ebb64c557e466c425f4c2f GIT binary patch literal 1300 zcmV+v1?&1la!oP-0000fY5)KQ27bTxORu#eIni}97hUw1P5B{_%!Ro#@^#2pBJ6{* z2jp{-e~^EZzmdO^zmUI^KaoF@Ka$Qxyn*^tzWlu}OVaecFH6$&y*K^|B9F5SeZu$R_X@aG!yGZfN=i;1QY*}j!X9!Q3cMA-P6BXpdO5=` z8F1ahcMRScyc2H;yd!u<@D1~Uyg1S;j|Q}pT#dnu^kc%W3cM)rqri^>JSSc!aLdCl z0n^ZT1iTXPi^4AeyaMpUNUS^%(nxYQ4|+@AKVa{{--W*meg^yv_-pXj;IF}7gue-X z0{jK|bNSAE{ewLsnesOZe>qQ|uqWV8!ykq}1bztoA^1b^2jCCG?}y(9z7KpZ=@oaM zusfuV@;3`J($5XP8+;7#Gs16#-vPV8-wwVVd>ZGYUkbhzd3Uw5rRjhFe^r0|v>@EyCB1)q=w!LR`}BPN{d1q45Bt)(Te6^>5WUtKWqC>Oz9I(_emU zLo*c*=Q{$se%pTj`M*6rLo()nexH~>e;4C2LAk%)pO`;?7vnx(Fh746^E2}Y@8bT} z$yPyuKfdTwP;PJ4IDU8MrpRVo-|bJ;wtjK__`ey%8=Lh{&(8mR zU#n!QpvgbJI}#@S*8I=!Q~Bw&e9QN#{Pg~B_oPb18<_p-eytPpzda|RnR9=?zf7L| z;rr@;Jv%R$e|=BpWUtPDdq2OvGb9_E{i*u4ADsT!{r>{|`OPY^1h4x`)k6$4x6yC+~isH|}jdv8>vecYCE;648xSo{VU5 zsM-z4hL`Zr^_rfIRaGZ*$Y@&FdyZ)hMeYZ~NixzDS8^3)LW5f4U26KTBWcRiobXmnaVCYMd8)M|BFy=J#vuvlz%TQ#23Yqs0&7aN_{?|Hr7 zZ`d3b6AOmJ;&E8KW;-8{{{ewO$SfW)8I8wd(g_TXNh_Ai<})d!a=s4=z~IsO6qZjj zn&0pr_(Ucp7nDk6mp~vcECWu!p-{MtR1gV*L!yxIXj~5siNhc<4*(VV0sz1O0YWh$ KA%Z1QApiwP@T5`z literal 0 HcmV?d00001 diff --git a/data/maps/com3_3 b/data/maps/com3_3 new file mode 100644 index 0000000000000000000000000000000000000000..8792b7a45b6417ce81b09bfcfbd5dc4c065b43a8 GIT binary patch literal 962 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 Q000XHLV+TJ07S9?3~>!lfB*mh literal 0 HcmV?d00001 diff --git a/data/maps/com3_6 b/data/maps/com3_6 new file mode 100644 index 0000000000000000000000000000000000000000..2dd51e36c606bd2208effcbc218630f2040094ac GIT binary patch literal 1186 zcmV;T1YP?>a!oP-0000fVgLXHlq9&Dz@A?e{~b~T$M{3xo-yO!#2*TLP2x|0J|+BZ z@%zBv82$nLEBtlwFYwpEzr|l1`da(EcOA!Z+;<(vaol$w_;qjhU`j}wGU1m2sUf&6 zRHeP&;j};9f*)}Y2v$`N2;hzws&?o5w9zY1544xxPxw9e9`J)%R2~X%qMjFNYP-Ts z(IuJwUx_kC?evptI4?6^Q-)q@(AE$yuK^KS2GmefBx~BZVUMrfB=jV*t(;wfT${$1hx6@1f`NabDrhmUYSEhfu zzdXy8GBgX;n)WO8Bfiql{zBm= zq8I14_m)&I_Q9j&FXSHf2N~UeX@5e&K&wrA5#LJvX~&uJ74vj6L3-0ZTA9Y*XU^DW zvh+93jZKCSRJXR4e4d!E=M1alNArj2k^JGJ`3nAO`nVs{@|X9NLnWsCwfzf6)y%#5 z6rV>XG5hy2nR%28-xS7`ftBS*tW}h z2m0-%9b}(k{c=~;*xem&wa-L!v)3D}_4@1VS$678C}};gMX@7ya@+13C>yA^-UsET z+Ud5sLAIGx8)=m-&AQ%!y$5}J>Q4?l1?A0sE!QLUFAW{zqJFOMciIVAZ4*(w3Gv6p zzK!%0(SEc0S01Q!0Dgcp2dLA$Z}kMLFx!t%I)!>W<6f2VrkeM*l%j78`s6gvA0nw0 z_YC#>=)}2S{(<%Op4}YAXmis&3ANAfa%h%XUSH{0zq3X*bt<#HD#rHpxUp`O>vEIU z=|Sz==Iw0ZZ$^uHGOg&@ZY?VidZbqA`}#n486a@#!h}L`FeEG+D3;Hw)+;tA7mY^a zvH28^OD&g7Xq3vOa@BmoWIB-;q-H}Vl**-(Iket&JDyKx^a>3Mheo8*>9qQlTC-ZM z*K9T`EvDUYx!vzKyY>eKr3C}xv1s(JVKSP|DHRIEe(8As0>Z0UG#(`!l1b&@KtM1t z2#iW5m;d}G!N3DSWDraM94`%lfWV;GWCjHgheDxn{{RX40e}Dl!qQ=efJ&hN4Aa1Y Ap8x;= literal 0 HcmV?d00001 diff --git a/data/maps/com3_7 b/data/maps/com3_7 new file mode 100644 index 0000000000000000000000000000000000000000..a907f33fa5f9301197e75bb523d09748f85420ea GIT binary patch literal 1868 zcmYk)c~p{n8V7JK%`KNg^J*G*O0zP>Y811?F)J!F^j7Z5+%y~_MJWRjq^#uHY)dQiD- z*3&aWIaR&S9Xb$KK-s}DNS{P5hJL;H)vd3r0O^!;jNt_2V|$m&*N!us{qos;@LqUT z9r#rWZ~U;i&t`X2v9`)?gMWU!9b4&43il0jX^A<(^BY`ZmYbY}-H`Z;yyfGa=1$Bk zF;29-?q2jho`a8U)U zlky^|O9zGtXZ3XE7RJfYU3oW3TkZHF8_FK}efH)yLyD=KCu8zTn1~I?fNjP!E2TgG z7nB}NPq|-yQ5M)$l2zJ@mj-r}Fz1}r?3Ug9V~61sl)QZjLCW1kIVMf-0I$dDQftkk=#kQ)~IxJ$zHQZ{e{y3;UTVGTtpfG27ocZ zvX$B{t;Hd)Ci>=1h09E3hBa_9Jbb2Yn&hk5O2s2YjN;hGPDdW zMb{O;v$hrTrv5a}FwU?_TQHJBWNMjO3X!G1M9?fD$SdRIPDmG|1Hx+#bC+y@n0|JS z;)~2^X0!ttIAUg!FO0SWvL50KafG-*%psl-n~V#bTbzOW^7^{_MEw{iSH9>V1C6*1 zxdF*S40OxgRA!Xz%I(S{5Zo%OO`q{M1e0xvGHHWR4i256?Nvs|bL#FTeZQCg9nJr@ zhq|fBMwPk=5lIYQ-8liq?=3DH@d#BII~11GOLxK0S|^E4YN5 zbq`~s;nlQ43>z=Lv!H^Dx7L)ktqS1(`VXP}DdJ$b?f|(6#8kt9aWLpyps-9mk3GMf zqSZ0*v$^f~5;6RoVwtSgZ2aeItu^NY8|crNK_}vY_C&hl+S;<0tFV+VQ=DN7B$C1> zEjmUCLHGcAIQ_vMXsi9{iQ=BNnXZGsOj%B)>!@2BzXfT(eVdkn>UU$D$e%%`Iw)cv z{2JXH8reM0d^Z%!eFO4r3lD<#mxn>^^rf(RB*?)`Pl4+9ZXu(k!0Yhev0POgh~xT1 z62XL-yw5t49E;Yf1jG;Q;bQ=f!igk+xCyBz*st9>12ho=o>Z@?gsMYooVAbP8f&~B z5B#RG4-~SrP;7W*t}a4x!rn&?SK}r^>sHvOvFVHuy{n9xxr|)K^DnPg|E_hIQY+N` z$IF2rKuB%%W1u64F>S8%r+>K0m5g9M(NF0djix6+Jb2X3cFxZJ)PlW>YHFIKeLBp@ z=+;h@I=UfO92l)QC<6w38&HXz^JuQrTurUtr$#HOm73Jx8GPPHq*+p5(y!+@eWHGiwt8(?FztXM?)lpDEFm*hzZ6{Wa#+Utj%Kfj)Ct6;_+ z%yCh$hwU9wWx!LjfyPb0))E%BJRZFhX*uinEL^@NQ){7u)%uWmIj?W~9VtCKLPcW) z)m(-C0H;or$K|M;6;f;w=mH#V8t-2aHWE;dnnIOtAE(MEh4|H0IH$Z+%CSkU(9zCv zwy0Bx9Ls?O+77^q+~Jv}i3y2g#>j=QRGt;sVaJenqa%*`g7Q0!uEFHKx--=!4ijmE zDkSzwIt_M?4~j4HDmT$sh>J-3dyz;5by z=D)kw6q}2#DrC_H35Oo>r$_300&B!qkk+Hd4DUwZ{B5 z_WW9u=i}i^O;L%USx)~{>Z@1|S!7{p#{Bn}g%(W~+WFoa+<}O;$#nn6L-?y7b3!>$ zoUuPvUeO2V>3}qu5{*K_i{4Bw-Q4ucAJFfje&;JDTyctjg#iE8kJ`)`N(a%qJU1ag zW0P}ye99F%3>$AHnLQXvMGBmi^^(7?#G74d}Ze4{{ k@7*o-#)h309l?i|Vbbf@uY2g}C0Fg;>=bTL=cH%+U(C1Q8vpeFKn9@1XBUPp_lu8qf}f zv`wQ-0?%MA0-&6GYK8O%p`XG}pU3{9S$d z*C18YzxaFM?}*`kcaJm*^YL{8uG62u)R5Zq_zIE>PJabl3fG^<$QSQ^b#MM0q@0*} z@#n@=3WkygNB@tfQ}2zg8+l^b5^AFouRCmMYsLg`epEf$2`HDBd zZT{h1Y$w~uzj$>&IHq|8qCRw!@34OSJ|0?pMX!SX;ki9~!Y|zy%Y6Of+06Im7n|b` z?kn3?{#x9|OB#Q5QqT%MV&;d-c@E$63%**$uiak_uN+JEk5{J6hxZEKv*(TZqrbMW zA2@RI-@RX3{ha;b%ge9YC*2mWSkRn8*?f#U?D?uxYBpIfm+^+m{tEAoJ{%cq7;LUj zTPLlh^7mu>?p|U0hpNlq)!?>oZNID*yO%Umzq&p%<-V}}t1si_S2wI{?+u-spCZ0b z0DI>bz_=li?~|MNi)Uv2+RD7<&&qCW`B(pKWhH0(U}=6p&(5ePBkf?%x;7t}Qqum1 z?-?=k$Liis&K6ev(I3gcJ8!1>e>i-r1gqX&yEgp8wkLGIncf(}rSpz_>ZLO?1Y15% zd*gX}#(dLv)x3%oc-daQ^!-kL@lmst?#mx~tHA$fesRX_V?TI&tNA$^@uB`tt~Vv} ztSVS(LZ$Ne)|;6;Gkn62!@o6Ue=ztpddB?I_4AEq#`2aj)-~QY7=!tbl(sOWI(4DJ zXD<}lnb&AWn*L(t%Oq&r`C+PX*&3&p7}Vs=%Nl^Ac{mcUIe6`dpZGr~FMT!7l~mn5 zGb6@KL0oo^m(L~EhwDSZTW;U0L=50@2ecKhHvsACAKVq~n@|b|amCustp824zMFsC z?~$E+pf-mz6-Rsp?k=w=PE{P0L$j$CRU+P`TI#<19a$}D(7Y-mqHW+*Rdf7E(sbXc zI`7m3`6E<~Lrp2vG~5i)$cfD??QOsRqdc{X0l$-3ZU!#^ox!-)0^9foO zr(B%)^W&~S!zkT#=y@LFbso|*!_<1CTApI&9rD$ookeo{I-K-JMpZcnrO^hnQkn%_ z8#N}WRx{u9fg*1x9$?joP=r;d3KCeYmeZBf1(i!>(@DhYcSx#LYSnthhQ(vFT5WdQ zb;j#=#OE{GO)kS}#Pl3itl12*Wi_17C)64h8kJ6|S1Yz#HJ;UYy08ll%2ZYDu zvYC9&iA=BEKhS9Onols8&uSMd_#_ttjYy?+s6<{nBa%=*@{R;9Ef|c!AyD|-azPA; o#Q@Ogt$+~?iNvq~SLh4~2Y|#p5Fii+000#VMoSg}DvK5X0@OM7bN~PV literal 0 HcmV?d00001 diff --git a/data/maps/map1_2 b/data/maps/map1_2 new file mode 100644 index 0000000000000000000000000000000000000000..f44d61e291209a228a1ec89ddc3ed222d525b42d GIT binary patch literal 2280 zcmVbajlGCUKcboe{LzLuVro|e!y@g9)S2I(z67Pz^Y{z`nh_+tnR-mUBEFGdO83=X^sL8=JtVpCm*xLGQ@ttPls}|9(xvGI^nv{%Usd<=bII>M zJm7Zwf9W~=PJWm4n_xEhU(&6(t9n*<6`x496$^S;urYdBv*S0!eNu0#P4z}_sT*p8 zXTWR)KXd(5pGr^FMIJi#sn#VOU<>}|^pR)6FG;TwjeeD06)OG>`l7$8EBdB>6)FEz z)N=z5_Y?EuAMqZSp5pWLobf2<=^5w2pQWdPr|}+=p5jyck4jGhPvSixJ;W#J8pNTm zOOHM{{U$sHKZx|G{;H4CBf_B{rHAQZ`c!k`kHmUNdx;O~h~ZF=${&Ca^nml=58^#9 z-%Iz>ee|DwE8j}@(ml_E--z_LcNXuYyXh|aK|-KiA>4Q!_>W1qaW?%{A4?7g-wKa^ zNe(`VX)CE*3%0?Sc2V^U6PZ_`ddjaQ}GTH?@rUr1|lg@z0;x zBh(GOsrSR+EFXIve1Y!xhN?+?>46OF~!+T!cf%n7TdbT%c+p>Q9 zAp-P#vtM?@bN#av58Fxo!E=V@#_i{F`?V~VUw$(t9yT_8@}Jn5pB=w-f3-<8-!1ul z_~rWp@_enokU5_neBRJqE%&ErpMKJo{(^kLWcUl^?enY13vbw;zp{Mw@V@=un17!i zj5qTO^Aoxae7EKI4U3+Kh=zWIMVVU=S)JiJ*4 z-j9rD`G>(WLp(_zPn<3Xr~dT6-kavHr|)z9;VLcKhJSB-bLHsJKkZPoc%9on-chSw z;2#m|jg9|#Q1+i)7W;$asNe4n)P40#xuY-MjF{ zE38{PSpBhXm;I;e_m6y?SMJ!N;``>twm;Rp)AID`Hyay%^1OKIK5jd|ZezqY*85TT z|02Vv_>Yi%=+en{cwc9Q{k-q=t?sw>kB%|BSjcj1b$eZ3FPr`3&sWHs7+V?V8-wF` zJ~#D|{$tHHyZcM&`;CqK^1@NRXukh9b&6|a_VsytLOT+#k)k3Z}#Ze{r$D zo>etJFZZkCO@46sSMsL*SMTN+N;l0H-c~o1xSpR8d(R`J*XIlU!p8YxztqPS^GnT7 zulog$z)$Yaf80ObKN;ft!{C`C*zZ&Q+5Xi&Za=;===Q;WVDh>Ziuud@;X{0{72g4O zjUNFDXA>?=-`$a^{nhx-E$exe3=9uId~o%=`BXzcx1{pA4gSI_72i6sMujEjG%u9j zI;CGO@vodO&L08%rZ}h0%T-#h$G_IGubx$3k6z^zk&hT=-If~4<$v2hzB3$K8_O>j zWi&hG{hKnq8yk0G+Z^ggcw17lhk3WDMaozo z`9<%qzez?NkXK>Z7iza^EV+9RWt)pHA~Ui-=`!@WWnM))ae3T8mfthK@@0hi%hAsp zv3FG?h>a{;8~*eB=Wb>FQY_PSEOK~f!3quQXnqjguo>wVN`k>kuR7S#mD zQ|r?Q=i6u8OGZIzhp6tsex|7I!D@!JM9Y!ug6+cg*m#(E>w<?MX)gMvpsT%SQ^?c%qyH+l3y-SyN zQPXPPODU?`|JHpzsjn~%t9fyLyvx4q+4aTx)RRVTOs1~*@?b`D4+GQFtY))^GXvrL~Wp7m(E0w)-!fgBha?4h(d8?eYUmk9}!77>J zDfxT>x^}{*9ZiIggjJ^uicO~$OEudXkjbXAx%CEzPN&qW_3IUm%W1q`@0e^pGh43b zbNhZzH?#5l2L!^cR}5x1B9%<$)5-k`i%X`}D>b_fvg38TUGLajPAeOa$mFtlOxANd zpV8^{TK$gCYq#9*I9yIQADhtleLn73{E|^CmQ1G;swEzkRjgMlw@dy9OR42_`oUnh zVp}elOlFgMH6oKtsMPA!s{NA@mH$U$(pfyFb3Le9zu?GDf(tK(MI({`ST+p{Zp7mc z*&H4k35Z0Zv3NvU6@Udm!0<~40wX{JLx8aV01yxZfWUx25Ci~FJRJy=AR<+hAOHd5 C`RbDZ literal 0 HcmV?d00001 diff --git a/data/maps/map1_3 b/data/maps/map1_3 new file mode 100644 index 0000000000000000000000000000000000000000..716e0b76996b612ffb6410eaa68d85c761dece49 GIT binary patch literal 3066 zcmY+=dpr~R8wYSjgrw9VMbb?Xt7+u6b*NNAxh=%bA=ZQmV`&?aoFj2kIBr|HtvD>P z+%23gh+!_d%qEwOVPmV=)o-ug@2}tY{r%&4Jit@mUVX7vtG2G~^)i zGPJMlz0h66WqifcrEKpWL&Cz-NC)dsxjgnnBuRQ|CSb|;8adcO~>(o!AqwQtd2`;&f!*ot+->sSicV^7>QoO!B5FIWnwAaOb#P2yfQGo{X zLYS6NWBlxfhiq@F9XgJ;NDEu!Ax651oy6;v1YZm=@sfM8!XvjrFZU$3nqR@&$QtGx zz@0VT8t>jnFR?u9Rc3atFma}^K9o18;40pO`(q;Y67LBekLIyzK=6uTB2&nFuCQmw z5oeIlbWd!OVzeC0E0w*#sodu|i$O227IL*jElM)OwGt^&mG4V%(e89s(1xCXT;M4y z$hcVyHH9rxYEf;xHr{Rp2ZfoD-n6dxuK14lD;8ptN2@j_n0*Rr3U=|%$P|Ut$XDL& z+Z6N_)SH`*Z(LtAHM+oip!W7D?KSU}=4b`-`{W@X2CX(|%m!w|Ug4H3 z&weMa3$IB=^|k^L0nZ2RE#fayA92;E4?sex%7lR!rrn45Wa>8j0Z1LZ6TY0!tSgVE zKI*S&hELMl{{K?Aq=p^bTmf~#X)`~MA1yjUIqfQZ%iJP2 zosqF;Wl}LG#5LH zQ^n@6G}_VgPJ#6_);vEG<_vbs0nmG3-)Y)}=lqWrIqt<@m6I_{acHef1Oe;=NxqX4 zXo{i0%sUBeoB5hx}Wur?i#H#%&?=>9RBsp#mA30lJOhIKuc?!fx# zhY=4+y0E_SO7mH=^Myf$;^FmV}*&#NcbS zr%`gbm&$%whoFxn5na+=zclfq0y1501h$1%Jm!u|hvl2#6UbcYPqE$l-aP3>fBO{% z6uAdIQmhpqz`t8mMNlaMwEIa>vCBT7Gbr zhpkJ>G5M9DtkN`C(cUbsaLJ52H|J*;qAT|*p9~-k=8Y~0;`y^rK5lM%99K`1ypez6 zwi%)h@I|WIC^1$ynlnV>qK@VWH=?IIqnlqhPf1B^FF?i5!J$}7DKb~FfQ18snDEJK z^6<@4uCpVd30(Uw1K@j+ER_=e_Ok9xKwy{Un9b4x`~;HaDRmZ>K5-Iy;3BcWV#iQJk_znHiRt7yF48?J!&G)@Ky@^7V zSy!L#JFr|TSUtH}MCT0Aj%J*gv^f8vEfUoYJuu?6xJn3qB{UZ9U3K_s>-EpwaW0yC z|Lyxq$;AjuVUWecHlM)=^wOj2oUw?5Gr>%2qG7C{{2%#p`OC%nA7hL?(wA_|cljG+ z2VSbbp(e0J8I4iE8XL3wLemARv020Y`FG%8uy_qV494%H8SsKDamy(!Is!eC1CF3- z+dC9kvi4mP)|Dxe?Go$NKOs)+iiM0=q$OHtg>>)_4}(bvy;ot?k-Hmwygy0(1kOV> zXyjVwa#XW)OUbwIR?@Qr2lrH=8lRSdY+H{7>JYX1B-iikq@WSr{*S9VGxsDO583MX zgLrGr>YRvTWW}r;3O8YgnWZ@vdgqju(beB4iBrW-gguT0C&lVf%sjzSZd$#z*apGc zX?>SF;L~s?Xo-l~N=x!f9k3YSL$Q2({BWDFf7=*fW3G73LZ@Zny@hBBJLtPB7NF{Z zXz-8dl)d$LTS5zu`!~tiq|dq~V`0t(qMfP{q~b>_d=94;5f2cHHpUsZ)%Y_ zLodP@KerD6bQ%ns^+$zgwmgYWoByuIy5k-GP6Nuk!)YY-fyQ6dIhQo2pZziAITpmJ z`!)vrrS$U8pk|wI>=m15K#0LgLt2<~8a(6_dB0(tCU3=!Q+Fs1>QP16s!(!nPhUIA(~{b{3Yy@)c-`zFi_73;rJfmDhh+0!!I^cK_i`X3j1PN-#F zA%?o7PU=6u{sz>%lHMIs=Vu-_iRzqVWafZ@1kHb<($NITYn}UQJth g>lXC(UAjk@Nl8hkm6SewIsMC_%PLieE-NYh2O{aY00000 literal 0 HcmV?d00001 diff --git a/data/maps/map1_4 b/data/maps/map1_4 new file mode 100644 index 0000000000000000000000000000000000000000..11ada331c09d2ecb0821636fdc71eb6316935159 GIT binary patch literal 4482 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 SKo|f3TyqtO7#IRom;edEVR&-@ literal 0 HcmV?d00001 diff --git a/data/maps/map1_6 b/data/maps/map1_6 new file mode 100644 index 0000000000000000000000000000000000000000..3f8accde294d1805e0562bdf216d0ca005dacc49 GIT binary patch literal 4016 zcmYk6dpy&N8^@KT5;`i8%Mu+TXL1eMPD;W-?)S4fLb+CMxot|O5~~o0P#kT!ZN=QT z(N3u(*X1&7Q_OvHnSJg0^ZWhvdp^(K&*k%aKhMS6&c;$ZVKXfyrC6!c8nNVLPXHD; zk9@4@+4(+;5!+<>J9eC+A+H6=T^qeAIzut9(@|(FbQdZK-2r)y#UuJdx)kXUKahl+ zgM|Elu1Xla=&7#4pRN`Xw^*4eB-iy{nN)n(N z%H(~-pE-OBX57s{f#!ksQ~E;HG}SaKaUKx|B(rtPM+${XWCd6zxVwlM&T0I*7b$I{ z)U=%s5<}bnxxAdF3$-Dj6}8? zM=x19pq)IS3_08hSfON}wY!3`5}*Xc18G7jp(aAJaWH$i6j>&btN7Uls1JI^F$I>; zbT(ipuB0;~N6|6+a5^bS05a$)VCHD3kSv6IC0AoPIK1Rz`M*3($8f7FES+ zg!}-~apW7!j(R3&nR zcA;O~N8Sf9Wr1BAQXr-PK!~f@9LR<=wDZZT;FA zot&1&CQ&+fbL6_4HqANd3_iSM-IVc*j;c}5mTG1 zgE&GSbYfC~bBKdbx9sIRSH%ZF_sefPh_bt~BMynK1Q~9E-$_gI**pHDZ@LLjETkxQ zJtxk<6iRfbARw_+e5Wj9gOd!TuCk8dSlG9Fz4?KpXJ8IOd|nef2H7DTK;`8a9Ir|+44 zUq^6X2e=r_LS-u~uE5M=7X#D?s1INJmyQVdUIJE#9ZHwCT*b3WF;@Go%j1OboI2KH z(1I=4Y9S$}4NnmZ5AzENhsUB!Trt^ecaX}~>?v_5bX4o|tM{ejm?=y+bg$$qrbko_ z`H`#@xSA`M+D=cB7$9#%TU6Z9oht}MFD3B0$uHQSj$DV{fk4s&U`w5X^(xj>x+U+H zDgg!UOnqBPi7f}$*$n0*+&!N?e8rKWB8e>tW+cPHYaqvnH_AVtD({Ff)yhk{B z46AMs_8A(vP>?vyKkxFYH1&Jd#HI&BVmX;I&3z!~CY!c$@8wEo*+3< z?4ge(6!0Wye-a|_hHh9U zegRkwo4%aSE1oYYtQ)!I-(gBVRT zk8XKvX9jT=#9N39APWf2qFJS)v&v2|L;`M!XtNa~$E8seAG)3bthm$qdmOvB2jnaY zr+}skLTSA-;39KX5+j>eUCSI0WiD%e6>%c5ciZrER>5`24Ij64Y66V-1Tlj&YM3G~ zear1bNjl@w%reFIknV%8>7VV_OZ&FZ3tx)^1>Xx|Lt<#$!#n1cSclSL8vW=n$eFXE zJ&MFLBZ33tZ)Kwurl*YGZe&439hxmWyZJddb)JQuYnh{i zEjJ?N5pb~>{X%mG5gb{4B>(nAh@gk{6Hh-udPY^%ugnLT!+e7~D)dkSR)M%cG-v7? z!tXzrW*3B_AP10rXQ<55-v!;T;U&a2kT<+xd@qAhK7cd=_V(c3% zXxy;ocM|a5G~U)JLt>Iv6BJB+BP$HU8tcBNBc?WTL^(d2yV~sQ

pHFI;mD#*XR9 z%<%v5&X}w(jZdVJ?}QI|nncPE(hi8;1%hViJ=`DbOqj9?h*%(IU81U$%BN%FgA>V0 zV)v~#4N;~N_%lQtHsln_Xr=kq3vIGOCa;J>_9-2vZInrYLB%^K1TKd{ttYCYEJU)i zdI9tuxP82+1IHs00=fhHE(EfRA&c*C!Q2qOX=7wO5*aPXWU2t3=2H#I=d^{R6t$_xgCdX*lf7QlPp&by_LU9@65j$4U z;~9;T;1MUql|ZZwa;d*RK#I=a;IR3n)W~4+Qa^>f80)=>^Cxpz$Ilp(laVl}-q?)| zS?&hM*rHK{;Y#LlFul=9(4dQ{FT9uxg&ZFXYeJW%Rcos;KZ%z2#TYOyb~|i$4~ zB5HU6hzjigsIvXvm);v~OmoHzb75=NGj9lAMra3CTDY&oO%PTuH!5v>Mcvlx*r+z^ z`RC@A)`z%X9+#dm*bqR4OgDs(Y^#0eK{93^TiqkLrILUF$`EQv}XR4WuzGhR$m#oR0E6tW+xuQ(= zN0-;}CUq}#rh;FUM(sYIVXwL;`6HK+t83^ zJn-iP_~uJi?y)fzLG`sI7TGQ(ytVKR`(td5d}OcigaDJUgrmxkugdzFXGWN}#rIah zQ2vV#`NXj(D*MfnZ>q05ZJjo%_b(ukhSMhRq zhu6d)zS}TCfqV{U*SyyXvt*tl3KyuChEzp@9g_8OOEO`3p_PcvO&030O`h4Nw~=PW zjqlC;PrPYI2#_D4G)itLsU2;oOH@v~3my5h`+0Rdh}VTo6D+W)IaPGa8_y}V{=82T zf9Sy=)g{+Uk89(a#8smAcbUPq6Ck)OOP7H;ptxP;&m$j_fCRi1V#`Lj~$GR^Qv|RLj z4FB3TAITwHTDaNgchpJs_Vp=OZTI$-_SsOLg1{;^Iv^gk+0?hBNw~6gB&o+%LsMo? zMDz1k{={{{O*LNo&&e-f}ZAc=t2*JhmL0(__2-cSdlaJSEG@Pia^|6eQ z4{UCwMm$ceGayEs!r-*dn*Ku@$*J^!d3~@QSf7=L9{%UpQtL4@g@`j(Yz;2n-yQt> zr>2@9^A|zyPJ6x!H>;dj+fG|eb*P)-SxXfA=g(-U;+E9<8N@~H;=VUr{rW!}{Tn8td7a9-25mp$A>{e5 zDQ>5W`VEd5R7+$ZeYMpx8RxoFQQvN)WH37C*bhGboK5WQ7pltSzQ2bX`&UKn;GPd! zZ*BHiX(`EEVBS*Ef!+Q6i5(mc_f-NZ<9AElJn@@!muyBxhLM!i%`|V7{kiJ4-ty{F GyZ!?yi>rqK literal 0 HcmV?d00001 diff --git a/data/maps/map1_7 b/data/maps/map1_7 new file mode 100644 index 0000000000000000000000000000000000000000..974c5abd2f60fc1ecd0240909a29b47f4b68d929 GIT binary patch literal 4728 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≥J@aK$>l9ucr8-wkL<`}KT~E? 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 RT?HG=hkQyb-nj!|VQ z`SCe?4nxo-utXjQ27#y!kDzwaj`C)0b8gZ~`fHMJgg}8&KQ)5(cUw{+V=^Busl2%h89kw=71A+Nu`@ywHE>PR+|CdZ~cyADI27b78K^g-YqhD4^tRKHpb z11bHDaI`mc>J}&m_LxUs6x-W%+su}~S`0!_Bx#@nIxk{*E?RGlxa4s`8z7^25Yt_X zXnhUxheLSG(7Sz@**t6_7_R~JNdvA7D0fhUgau45hoO61YyOnHz7jbU?XAI~3ROh4 zC!H1RSf$5%&kA312>6#zLqlk1choPUuVv^!tszBV`ekVyytRH%J8|c}8ma5lQavx# z0tHV5%?fWIRvlmLBoRuDvXd_01g0wTg_HV(ZOkR47cFQT8tzAHqGP^eHhznY>6m*Yl;K^;VhMs=g&Ig2N#59^ov)2uI|U)a<@Syz!=5x zX9Ll7XM&7TtHG_SRn&%NttFO@PsfAu)()U9_6@M`7+Zb4XJm4nsLYe$dI)L+Iy4!u zdxj>U&339^#4a6Cdj!M_>4ZkfJlX2CYfWoUB6a4}FN*)3F3ny*-L@zO;~Z!$jnFe9 z%0Ci&Yl~ZQ+E-`i@5Qad96uZR2tbeeYR9 zwf#u*o}~+3T~i&)b!+BtIqFxcTSy-g&b>6w$%OW%w(Xzp$KI6o4h3^c^tpyF2;pW= zD|;iAzR35U=I1~{F1nwdHvf6~r?8&__8}gjw&W82+IT$GVNw^c6O`!svQkfqT(tfp zs#29B`508FKBc8NHWgQoq<3Z9T6opZjCzeyLcVAEa2}10;Yi#MnG^ZTvmxoKxo?P>QSi#0n}3x~YDdJc+q^$6(!d;1F# z(j4q4On;@d5vcoVhCd)5aB>qLEz`GE+RUrC#+@*}e7JNT1JZ5uC+k9qfd~C2NaL}#4SkRj zlcZ*48#BAbH&=V#%ohLtQa34SzSE_A{6&e)Qas2~OIkP7j2gJTuq zi*{4RuPY_0XOd7@@b;QTP3{}LXUfTp;;M5S)tLvseeM$d(%J->XiVZ(MH(#zn|M`c zoW*ayK6^S9muBP0&n`uV6`PHZm-mg?`6WEwwoc#{gmS+XQQ)CHrX8RDc>k&`v2HnE zHjg}WQNzE#Ey6Xp76|{F%6MM!q|J{})V-&3Ym1J#apis723MLd3@fQ=GkadX@Zz5m zxrMTM*Q>qPqa*s;e7xpj0wN;Dj?`t(1p#e8|88;GI$p5qUlPZW&T5d|)%s=XTLqW{?h9!}rD zQGZyKuE1T|sBycclW>RHh3`BZ1gc+1pmS3JyfTLTLjc^{8x-_1VH4@`VeK{Ft3SxL za;A|>GVfnY>ZioLXbyMK$@@35!?!Pd-SkBVeN}8aD@*>8u=5EoF1fWS6KI^^shfY za^A$+VcdV4d3ZCAaI-J0?btZj9}(XJGnyA^ssiFi=faDw2JF2AJao`e+wYYwKXC7E z#VgW2O%0U+`^sBVH?3cWp{~_-oKcpuGW)58rsu;gEwH&fOF{moO&&wlSRKlnvSMZ&HXa4P&2oBzSj(ah1qDoZT){tdV` z;59t+7w+nTU2vnGDCc*=r-e<>r|72wy)@(={lzu~KyM*%{klJRY~33cq7rZTeEqpR>#!h#94Rn#OfS-V$ zf=}p^nmB6sYWPa;Qdc)V9DVV}$X}$i-+D~YDObW*bV~Sc@ZI1?=p*_|Qsfozqwpo) z1iS`#4DemL7kFX#Vfb{{>gnN&Pb^*pzUmVAPSR7kx$qs1pzdG&=m)(3^a^YEV)$bC zcJS@sSKftv>6g!pzGzqZTY_J~FX0!@h`)eebOrh2gP+|;KZov;{pRPw&-yIO@I}|^MeuFzqi+g7`jmcdd=FAb zxDoe3AHo;H7sB^`FMKO+#cp?eF#ppJ;D^_QKZGB`58!*Jk?%ZB0Dk~KhCiTEKcu1l zXa5i0o?pKQ-ujQf3*Ns~?~#9p&xg;1Hi&15p!eW=@cZ-%d-Rdt%Rj?+;k)o%?uFlk z@AOXm2YBiZ{5yL6UB3q2=xz8`^zyCqM*`o0Z^FgBk#oi;6Oa`Xz!VGLsXd1*{pg4E zLrLVa*fl;Hni$~5g+0K$S8+Y1uzg>zKH$6bUBZn5^&SB<^T9ddXqJcaDU;@t$2_n8 z7Jo&b4Byi?g6_XwUGN?K1HJ`6p-yPw+xsNY|ux*kAfY3ycfM7 z^4NL*$DciZ4t@@P9<-kI%|F2A^f{Und=q>fXQ^ks19@yeX+8U%zYU%nJRfKmpL0*} zv*@#duLE8hyft_%--VtIzoFNVxL(In_ky2-pN37*lfqAQN%Kbo-_ZAhO#<>y1zrlg zC22h?z*e4kS2+I;Sn6`{nc*|RS3VVd8E%GL@xyk3dv}1DUiQM4lhnKgbo0Wz*Zu^w zo+aQjz-NITfq0LWzXU%7KL|Z1p!sX?>EYAEmr3qkTKpM&8GJEm=dp7Om|UOyPA2g# z`m-NHRQ&RPxVcSXw9fg$xjt^g@7_=M60%xleBo-WKSt<2c|Y7@{}z~j!o_`D#2-A6 zc;ok`HET?toR9XBp{Z$~nIG*XeKE0HvVw0zMbTMc`Y;hb|(|(aaHCLy8Ym9 zu9ndyVYJu#$({A3v`?l(?{DKZ`?0xAs%OZrW9akzR^fWwFa59Am~AohA`L|O{ks~Lo2D~;Sysz^c{`joFsIQ)D>c{!ki66En&O~275#LUK&cpUwVkay% znf~PZV`3-MIUl(%dO!DCI-J=ZKhHG@er$f651nW=AJ^oescDa$A6!!UbN=l5{prTL z4W@o{T4?)fcXD=n%6)`%PJZNG5_7-j(I2-1HnhR}g&mDcOux8M(c<@Z^z+{OZnl4< zso&3~sGhc3iS4uhVPtn{-P`%mN4)v;wLR^Gc6YbYZM6bAn_(Riuii(WI2%p*v>Z0g zlk<`FrWvzp#reqpab1PAVLtLcw1%wOu%CG!pU>tW-UkLhZvJF_X@9o=wx8TD^JDvA z`y=Vb`nT~H{q&6uOHDsvM*46}zrJhhr?mv(?Nnp-H~M4eFX-b^(@)r1IXe0q-+eiC z`N{s`x-X7 zqkDP^SI}3~)iF)%FPshkKg0J$t8#lU+}7ViZ=&8GrpxGm?{8ZD57RmHIrLlI{%loB z>MQ)qX-}Iq^d;ZiZ%Yem+xxBcr}bpN`+@&0?MZ)zzx%xKchB!rL3PFdPu!o^jvgH> ze~<1@^Jms+{n4MgKA9?+`8XF8*A!;fnwR;{NY6;pYC-)zYWcr+cKZ7C`H}zL zYwGRW-m7)>lBZD6{e2U<-i$bHGX0VDrFYYTbNkKo2KQ78hS7ZHuDPeRe)4+Ay0Gle z?nl(s)C*JIsCIR^y|?e=dtTXr=z{-JH7zksx9Oi(A5kn}w7|S>W*eD?{W#ZQ^Jdcm z@xM${ZTjQXPoYnnB{tgckFNOmFB^N8o6Y9`m>-`+UqElF*k;zvubC97e_b(s9(@7- z8GTH#^bY?`N|yPV{&VwaH5d3kZT#bdjYv1=HT7@CW%YCz@qF86Cs*FM-!|<-zsH{= z-f!+bv8mg9=De7(dE@&d+M@qAdGb5$vl8}AiyP*(chj$!AM+hwMg6U-6^qOF>gqJc z8%#fRL48k4Xyje=$5+(ezMR+fll;%B(W$SaDEs~EL)I3ITOd4|(Iv_VW_iWj@l zk+OAFUs)iiwPKEEn^)7nRld08K5qR;`UCzOVXOLq+3f$S*$-l=Z52<~7Mf>RND$fXuC}EInI2I%z~?(nBLWejq4v$e|;@- zf$c+K?N6|gqSmmGUR%4nwL8%&gsy1!^bI%YqE|zfnQM0syMdH)^V7Kw_yr-)I2hq3 zruql8lT$RS{Uv`x+7-Qau9bR$J#p)n=(Nu%JUCnGR+jqJ!;G2*zX?-Sx{|W)>{)PY zplgR1w5RGRc^P#}p{cCl!UF7E&i^3aSbA_*p9OrMG;@y_YYg~F$6rLf<0E`Eb1t)g z$Itj<{CwmcOk~R-PWb0Ia=QI+M)af79*EJxx)P~n!5&;L73ei+pPaubo0Wmy$5Np;np~v$TfE7AI)bS zXRE%B`rG}^i`8F1c68VD2j>-fH}wzj8(bswb83CQBlS~$9d_Z@kuO6pO}ee`o;^p6 zF5h$-qmU0LZ5iukDaGG9*KYXhR(+v2Xrsy}Qf<*kbWXYe{+!2OeSYv0t~w3VA1KYx z1BVE7AL%c@CQgfa6MNy!X8MDj@jvYs+t;Y|q~80Zb3k6Bbw(cfpFKJE$l4Em5zuaA z!PDQqNBV=FXJlu-2Q+=BkCf;LD(Z-p*wy~Xu^-6sH0DJ}WD zYRi3$ZTES<@*5M0y%ky4rTzT$Y9u+kGJGJ^Zf>h(CwDz}lYQB)%;kIXYUZq|R`ojG zvs7SpJ8xKY-*!@v_njK2t515>JG0Xz&B;fAyQ4f7u5Y%DOyi#Z%L~!Y{_~Wz9H}02 z*A+&8c}KR-vm;wiUV?WQM6gGDM|)FTC34a zwfTtiDSPu5t(?rI{%owwrJX^uzuz&oZD`6=Cxkudjg3c4oZS5DFR#Kov+!*Gd-Lli zbvIT7({>4uKeE#{dS@$_tWmoTtvn{9AAWP7CZE2_2!m6-@jb8(=4S2BxAxD*LUX7~ z)&Sk0-%qE$@!&sj~cyK_;F)&(rq8Y4|K z3!b97_v?Oq<)R!ZwE~Z4!o8!F?HL@sqbh|%UxxMi6;Am1yzbtl56gztF(V|j=vVC8q7u}i{H4bblghFW3gM%VcDb(_TP^neS zSvXFN59|@2!+L`)Jiovt&PX!lj>D&!)CZ$ z@YyWRYdxRQX!M$0Hm6sw*zESZZN~e9$K>+4-EPNk!|C??et&P*@A?u94PCM6B))Ay zq*H0tTD5x9Yqs5Q*gQrj7mUnmHXKf1c19LCncRwsWkefa>Zl0T<(`^ z)&~iZ|36@|8I;nYTC!d+xY#6eS8BKaGBtmLLE|8(98*ESghnV3xU@_X2#Uqw uQ22yO6AlW)Vm1IEE}FVcHe%!zw`T@^Ls!4c)i}|{W!1p^SsaVyq#mu9$vG$PN%L}v+dtq z)q8v5a@7fo4o^=ePnY@jNisgPHU~Oi$dKQA$E14*4oGsnt%)}PE@&U~^A)Ge*^)=b zKk=2NmBI9<^vm?zvN%)NaBGY9aRnUvqI(e5nk(7?auP-)8^d-PWf;_+anQD2zCFl%jo>5rHtfl!p`8ghxjxv#yr=ZkC9LaD zWL<*r&$h6Ix8zEPSE-~LWofIgCHF*a`{23w?K37!w`kI3qO$^n>kBC{KXt*Y2+!Fs zF-4cbN;@G&j(5k}ZEFBpV_jn$!KeeGp2ouGV9&*eQz>{SXfdcKc=V-%r{XSYT$k@E zF_CY8JasQ=1#TPjRHSlGBo=i_^dwejEud3f>^{jZ*e#Lsa<@*A7iWt^Kg1N| z3Yzh#1n-e=O}-z1<(Q7@NoiPYI?(OH%Rn8+Oq`2OiF!|5^Oe;*bU0~}jmi>WsjwL( zS9eUqod9t>dgRS$1dyo1NQb6^oV}dA+_@7{I$)dKk`Jv_ri;qrewJ2(jnTV6$GNA@ zaeHcUnCL2{QxpFZf9o%&!fa+~6X%=g248PgR&!H*9LG@|qB<#!>9+7}to^E$s_#x< z@AOilF~n_lP!+7%nZpiDsJ3>D4JeTV;=x@rvbnm4a$vk;;ojA5g7c{yu3f|_h$-l? zm6<70-%Rc09~(7FPf=%38U3>ym?fgHU_Eon6E(wUs0&-~Qa)f|qYeSx@c*aWITR zNM9#xgQB*$m9`oPK02D67?R3Q|4y34&X@j&<;0A|nBli<8fi=i$ z7YOm8Y%^@JuVgg^VHUj(8mn6CuxQ#7Eb-%?88t(ISG5aWhApv2Z(=+$dSrAz=zdTp zWSl+c>x!EQ>Ce6w*zViYEsB+BN}o`BDmpQaMVxE=gOYWqwJr6ukikKH`Hm*-KtIk3 zKN(>f??ya?erx%nix}VnD$%8xkEW)q#x$^9w+65Sl?`z=a@3R5_c$vb0Z(YxL>u$H zsb4J#@tY+7CEtp61=7+uC-}yz0jLBUC91C`BlfsJ{Y2w<6sMy%;Jthegr-iDjsj6x z3={~J8YJ4yNn@OJtWr7)i>0(I^nVexAZi8S90#Q_m!{6V3voRoyD&$VY)7xdx%@hO zW;J2b7!o6gG*!Sg_qs%rHakkJi3W_+JdfL6Cot`umk>7mx+va61uX@iwotD;u~646 zRJpsLg0EAd1Au!CHZ#*(?A<$~;EIQPQ_N2ksKsxuAz9P_-xe5niw0zt{V-0HongGo zs7XR_Q3gqrS=6M^NC=Ra$9r;?m{`CGT6y4do=}mB%fv zh%g+(UTB6~wN(V*AMIxzodfa{W>N+@f>lKgGHnESxpv#)T#qVlBe+)i7VCxqH4zfK z$Gj6x^_yQP_R6zbYp=9Ro7s^l?f99n}HGjk5%axD+P6LTEf1V>dDn3J- zVQAF-eh~9$6I1J(gtzF+?qH#x@Yo_KV-sZ3Lo8lo;W^V%5i$~jegrjqWX{#ZE$)_! z$ySHL?JR^c{A&;e#~qTVEoah?`7wF@g2j2UsC= z$yRyOH}50C4X~9B(3g`Bk?iyNe$06q$=JGk8|z97DiP%mRv@ zJLX3?025yP9=ka7UN$cJqB%@qIzpx_kzg!SYf1C`GmHCNvM>FH;Jxx5UO(7}CMo$sk+{{FJF!{t7;+SHz~lU@vMSKdFYyN#G5{rI`VaxVPTm3i5l;+WE0rOghu;jdTUM-KZx>mzFf2nc@9Lw;P=0AJHpZdyBF+j!?7D^~sTNx8$*=BPOzuOeQ$}QC)bho|sip;{ z^>tYu3aNbZG=I0Jd}K=Rkb+p76!}}(4Dnx>7i+27zz!*6P=1;DWADi^$mrjE1vWFd zQLHY!hT@|LD`T;*q0G-Oi+W@-sxUZKVzZSTrueG>D;bX=a3vD<`v7v}bBpf}?mm3J zS3ZQ~cu0!;wOAdBWG7vslj7Q{q4ws#y4hbcnMAbFAsG*yiSJ70ip5of&`$9Sz~UTl zzyAl>b9o2KZVqF1 z-a4_9?UbnAM!+{T`zK7CiSlxkZv1!bJ1v5Yl#?zxW7IEjoli9#4=L=884R z4SgUMZsm5NDS&+ z{tCiynQt7gDqrUjgTq&j8VOYyvXJFN$Q{I*-wf%>rs?F0>x){DIFi0i08%7MzxnL# zAdk0wzsPp>;iU+%I4TNwkooSpOTpbe~{{l3$MJMkA*6Xm22_?vZM@uN%UrxD$(}Ia4e-H^|y# zcBvAog5`33kR`w|@~D@zIAM{ybg4gFfMMD}4P_TU9P{hvy;vfDjXOC^47UB{OHpon zn3<(ViY3{KD$n{8gJHR=+yyhE12=j5S?EWkrvwCrd=nXUC`F0Wn-N<;JIhj}{>4HC z(%E?I9ZcYDV1b}0FB;=lr}J08rdd1*pxC#?#9x3>RBtg|9g*Jg^*`;Z5x>0uVIQut zzE=NXKd!R*GL4{m@+eYn%32SBI3C)(>XnIo)nr3YaBY^$KE`23tp}$P#5KE9@|SPP z`VW&Hu6iONk^#hIkzNih$Tx%ZJ-D;8{L1rQ+EH@Tz_GBqt1S6l|pDR~>m>e+UkT7Bu~^YTRy-Z`kBGb<0lwu{xmDO$nKQ1@ilK zY+=jG2|L)lGSQ7Xtlw{W@v&~*pWhL;zUx9D^9B1NZyLED)0c^Uo)YjB_X(!KFzU3t zxGGpf$Wq8L1fSp?g6oa1Yb(-bqy>pTb#(TI85-ITeG411uz&G>kR9A%vU^U?t@OkL z+I6rV{H{{0qqFCQ&A~ghu?6DPZul9>?~bFtO1ox{Wjh;JLB1Td3bAO74k#$}3dtdS zhp~N%_fZl)qYFXQZC-HZ$PPe`ab)C(4vryH2<0mY8W5}9|C(KVTw7(LYNDFuBZjFa z-8fTKPbANe+-!|(GD>W*VLHq+kCj}+bkLXi%lvMF?UmKny5@ra6`z;|i8`W%Ydm_` zB=Yz7OMD)AyQk&Fxy8OHGta8Dyamd~qJkwMcv^`-D1d5>)^8 z8d(pghtrp3c0TVOu=-)MgkkMS%=&08LyDK4J`-RXzAcX~k3N~MR7Zz~1c?u*hC*;2 zyqTnr3xDTjwDB%#z8SZW`{jlxZ3M;n)({M#enHa4>G?JXfvWYrE8xICQKN%X#CysR z&-*zqDaPGVu?2NLLsK;E<5y*=H!LvwuQm5aTL&dJC|`@{xd_Up>A2_-n|WdoZ@1sL2)-1 zl2UA5i}ZlP%zdFgaEg6m)c6WRr~8{QW*PdaNwu-Q8ELSR7DT%_OpW!tbqaTkM0s0d zh%Nm)y%NhG9gK~>-)g6gx_tjW#5Ol@+TI5}<>fcPwvWixE;WE%5M2DJ^m zukvX@pjk<%JF1)Ak{oXf6S_}l{=`wUvF@a6q(B2?~Cmsd5YN_lfoH zn7q}dG(2nEebUzBxwiUSV7+~Pr7y@}I(9kGfmzW?Z;t-z`YDhW2j0Qe3T;Ao@KpWN z$!&&zw1(5*#Dw+W8V*!$lX$PicUFy*3CG;lo_9HLqd;I4W{%kN*@@fHdLEtrs~E8_ zJj59c5au}mxCdP(}D2boT zeE(#URbdNoaJGGR{!9M%f2ls(8xuAnzLs4UDd@Gsry-NxDZP*A$#k zEM*p~5lH7UP}r17VQJYNmhWlexZ#blGs9;qe^;`Q5APK!ERsKyN0XGS&hs$38vh`T zQKDW52v?~H9dqB6QxN`v^)S#q%1#nv%Gki0z*cCsi2FcBddb}o?LA409wmXYV8Qm` z%z`&J{Rz6(ugZwWtfgIJyCpAWqnDO)-n>wQ`+~CT4_*<36a!*~Z@@=r@DKcs;=pOk z#}by*40sZ`Bjm<-@@3{phbqQmqPkX!XHCcVj{(*D`d% z-hI23Zt1;w^RUh&Sa&CUuIVfaOG*tMr<7W|x)A^;&u{^MG-ZMO+lhU^wo+j_YSA*g zKI?woraBUDfF#MJm)i(zXOa9w+<8XoKKGy$%MXv5pH#Gk^)Y*bi)weG84-dU(1%>q z(#m26DI&8p;G}$e-@-(2Wev@}Hvx3SZ?10fAdH9&nJ$!77E&KS`OWP(y z#d@@~Bc1^f*AVoYYwDJEeeX9=m{CHl~0Z?$7>}_84ioSmKmH;df zTMPWNL;q+DJmXDscr7oxe{FgyJJ#cMWONS_F{IyNP^cEuJbdz_Yb-p+K*M3vXq9dD z(yt@=`>6={x3c{V%QEjEJ~yZT^fsd1RHhTYU=BI4{NysHe8k3NCFE8)cYU?5C+d?x zN25A|9td~#&gJ}Rk!v}176AR24ITa&aptg-_P4jbAZCu+4b2RKF7+*j$1?Z&OUlFd z(#}$k9K8Y#(HO{G*O(%i==b6&3;v&L6Rh=YEYaqT7aYsrg z&xBtihV?9(?@zY3RpZBCg|)1h!ziOBEthBIa(DJk&N6^euWh}ncWxD}af-k|1O^7KJh^-aeH|GLY>ys-o-Cm{fU+alVy zImf$d;P1cJoNEUoM4s4SB5NgC0fkXH{??XVq5REn7cU2sJ0_QMcf3t>ujrqHOAFo2D@GO&awe1i zGQcwT=Pi26O>ewE-tQf}<^@$FyK|~Rzjk|$N7Z0VQrkjP*0(BMV5;X(BaU8y!9LrW=A4?2+xunt>5VVf zW5qw;jug}9Bq~c)yA&_H+Mu981r^QWqrR3biBsn0>>C3?hdz25905G{M2~m1?>VUU zptI;nXxVn%ZD|~pLwnvF-nmU1Etyru>b%7 literal 0 HcmV?d00001 diff --git a/data/maps/map3_4 b/data/maps/map3_4 new file mode 100644 index 0000000000000000000000000000000000000000..ef8d7c55cd8444ebffb99de7a4e47a0c549e76e6 GIT binary patch literal 6850 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 b=DYi;Q%d{xU64{!7C$iGbI71_pXC1m&Z29( literal 0 HcmV?d00001 diff --git a/data/maps/map3_5 b/data/maps/map3_5 new file mode 100644 index 0000000000000000000000000000000000000000..cd29858ccb95659b3ffd1ec58aefd62d36bba5a1 GIT binary patch literal 4294 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 Xj~&{w<>H-7N?%{?-mkZN%kKXHB!+d3 literal 0 HcmV?d00001 diff --git a/data/maps/map3_7 b/data/maps/map3_7 new file mode 100644 index 0000000000000000000000000000000000000000..6822a17fb71f95c3b68857fac584db1f178e1a36 GIT binary patch literal 2088 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 literal 0 HcmV?d00001 diff --git a/data/maps/map4_3 b/data/maps/map4_3 new file mode 100644 index 0000000000000000000000000000000000000000..76440bac3ca5c3da8013e494960b26214b7587c4 GIT binary patch literal 3958 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 literal 0 HcmV?d00001 diff --git a/data/maps/map4_5 b/data/maps/map4_5 new file mode 100644 index 0000000000000000000000000000000000000000..e27052e2e3663a71d3d7c9311aa45075caf04fb4 GIT binary patch literal 3808 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 WFaRhB1^@sO3<)GLf`Noe!T<~xxi!ZC literal 0 HcmV?d00001 diff --git a/data/maps/map4_6 b/data/maps/map4_6 new file mode 100644 index 0000000000000000000000000000000000000000..30a5797e8a24046ed72244d7b7b03586d9aab16f GIT binary patch literal 4274 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 qx9WyOhXcCnG(2j%yiC`Eekk8c zIM3jZf<7wsRp6h3x#(Bp?DYGS{~3C+{3YUKywCWH@fYAO_2$^#rF@7$#?Yras3*pU!R{gy3LVa zc-mi_Zf!N2BbJx@6T7^$bo|dFYKF@rR!90PdvCG*=hF)!e(|Y6ZBO4fOYBSg4({7y zmX578Ut?)}lYd3Mw%FyPOIDP>qfF_n*%9}R1^J&pnVof;B6oLIM^;Ccm*iF}@$=`W zakBPfWp8gSFD)*tk1ZWFQq}boPs>%Wvv2I*^TVdwuBIR4-1Zmii6_l^Dk(uT_; zr<3h#`wo~{9A_QT{f73-*U(Xo-X+5+@(=B9lYELOP-6s?lFKOf}@)h}C z=Gk7to3HMowZ;)8$?`s3TF4J*)r{2}^d>s|#df#uq`EQ@> zjwFSJyUn>OwaH(uO8s(H&BHcKq3+fhef0FX}Ox=a>iqk=@gDlG^|(c7OTc%QLNZ)Hyh3e6Oqj5bvqr;C!^{3 z{sKg-Sk!_~DV575vgw4zXEmEnCsXPD3Wr6bQRy_gWot|RUbkU!Sj3iPK)PXZye=>p z6$+A0Y!@rl|NaDa!QqhDb^;9+i_a&Z*c>7s6av9vF)%z32NDE8q97;lf*}C_zyJc_ MDDeS6B2fVV1=sft>i_@% literal 0 HcmV?d00001 diff --git a/data/misc/script b/data/misc/script new file mode 100644 index 0000000000000000000000000000000000000000..e6919825cd80e21f6d087d44673cd26ef65ad28a GIT binary patch literal 632 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 literal 0 HcmV?d00001 diff --git a/data/objs/baldy2 b/data/objs/baldy2 new file mode 100644 index 0000000000000000000000000000000000000000..944b369501ba273f4d4f9ac7436351744c640b55 GIT binary patch literal 1292 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 literal 0 HcmV?d00001 diff --git a/data/objs/demon b/data/objs/demon new file mode 100644 index 0000000000000000000000000000000000000000..24318fa0f5efc1387a5cb02f3660c5a27e4bdf3f GIT binary patch literal 13012 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 KkrzS&kp2&vy$FK< literal 0 HcmV?d00001 diff --git a/data/objs/demon2 b/data/objs/demon2 new file mode 100644 index 0000000000000000000000000000000000000000..8a757ed1305c82510ae7373742c86755f7295623 GIT binary patch literal 970 zcmV;*12z0Za!oP-0000AHUIzvyfM`>)mQJNo&EDaBALH@Z|{lu5nb}MU+;yCp7|AW z@+RZ*tgDfE2g}d6dH3FX&pm<`y!Re^Zm`dOp`^3)f1rMklfJY$A1U3L&QPsOKX6}v zR^n?`wzaQBZ(CI=t^-(6EnAw_mPlFcYo{(+n{?mzqiJ&XK$Zd-+#F$7_Wc#*g|Fqm|y_|!e#f_N2#uvHM^tjo)C5^RKuGm4f)(#81bNy>=M zwXjjb$QGc)V3dY|QetT^$;~^J@Ypi%y!I7R;4c`%II0SynAcQ}_FTjEUyYR*! zip;_nH<{4mdl7GvA#RSbEBL#(vQBkK|GcRDy=UrG$s`}nbLv^tA&Wnx=4{Hi9@_>^ z40=rP*CC~*Id^Qk`WX%$a8RV0B}}5`2+178i3OJ}jig9R$h($Em!0qtm)t#5VfK_w zX&W~_$B>29l``PWch}BkoeZ zL4K_gO$bDSU%xsY4~|nA_(w>>CU75xWmE9&J2u8r7-NSp)|Sn^Pg>LfyTFzr%{XBw zNg1I-MmTzu)iN?XZ*wb(-Q0evp7k}4XPg@xdVkrOa}J-%FjZ8fjU``aelr@e31 zq`$lSL~{HL2Ea(-ouyEO@L*UxC>M#wqw<->60>x`VKUjxmouH>1q4DtFswo?8wLZS sfRI2o2?&LO;lOB2C<_4sL7=eM5DpImhC{$m000Ci2m=f<6$%Uh2yh(NrvLx| literal 0 HcmV?d00001 diff --git a/data/objs/dragon b/data/objs/dragon new file mode 100644 index 0000000000000000000000000000000000000000..fa9e7a7510bd3e731874fa5d235131bd85f9e6d5 GIT binary patch literal 67360 zcmV(tK!GT{C?@We`ogX{y)3QzuEn;|CjFbxAlJSHGgyayxIJpx-B|xitqTpx+p*E z{^+{?Z`~EI^8a*DzoYkQmhbMZ`>6Y)euj!?KgsvbnjQJ5NoDmVl_Zu)(pdaNV?`JK z3}~kcWX2xRY$zi?1gS6jOus!c`b5j#Q;$wc-bR^s!ex;eSF=;kA~O$BC!R!Q@8*rX z?woQXDE%~TXmXMCu6KN zRJKx+4n$_1`AAWe2>M>gjLZJ#$D(z}jLVrRJ0ddACz3B*Cz7s2WuBk6FrpmO4n$;L z_TnNlwh3%k01^`pL}i{1rd){0*r|Fu_ zKU;oVD;Ei>zLca;SNrR3#h1Ik+DSgFfdq&Jm#0^|5g7;#&5IYDQVd#c55ObTt-5d< zU^WcZ?F;5D0x_yc<-~+Si4*`g_O9h`$I4GITxgr*a=Bmi@(R0MG?gk>M7J8D<!mWd=qrv9wUrGJGi%CAy z&x~u6!bi8K@|ay*5GyjstFR(`ArGcPqM3_oOAR%|gM&41N@fW4EPHT??@Di6xl-Gv zk&c{C!fs=f+SSIHQJRU-o80;HCN5LTvQ_Xxn_T~YcszhAYqfF~E;i7UCN4JCWb=^* zRs}w@;X3rDHnDoGk-QpjjE?}^R`z@!#*8&n8*ue%#ctT3l_IU^L&QrWYJX^O0#h?h zG(1vp$oJu><_4w$93xX*o7(oa<;;*5(O=j)!Zzs{c~1UUBO){=s-TG7wXit>o<9lN zakm98EAkx1Y{M;A`tJr>&KQ!!2eYLlnN#F4FATD;+8AY_SP&lM;=g#=0+(`VzJd6M zUPq-6&V;;-s`ivHJ%I(iaMOwwPQy(cHTw5+(AJhK-?oz4L^Xe$dbahLPpzz&P9*dq zM>g@bp_8maKvNl4RD&WMwr?RRU3AU0G}NL^siQhgCe+k8ZwG9}J^P^#1WPvoZo-NW zkZ;z=N$X!)N^jbPpETxQxP&D8o7UvQHtmA5J!C8j)z#TbDlQABteH&*OWM(N^{rnE zr_5jm()cy$Bhd<%Pb+z`bFdxFi~F&WZMRARUhP4|?hyp%D^ItnVo+CRQL5_Gi(aCw zsr>er>Cj|8PWI-^F-&gY=_Li){v=s-YaYYm0C?U;NPAV z^{U(Ml9wvYEWX!{V`*z;;JcN3+w9cxunpa^191ip|H<6y9&TJ9Vi)UL&D5ZD%4xLH z5B|gbs^)FIq^=5n(00FRqKJ2N;z14HEPHEXTYk`GzQw_`vXd)emBGiERa5%E?M}=k z`+0WM04)VvPam`ypvfj#YdA>%YO>-H4ybBOP~so~bQrBdg#w{BokHrD=F`%F)`#j{ zW~3-%(mc4qVq|nmW&hMTC)yXbk&wuBUm5WsIh$2re4~Y3|fIx=LRQ) zWV%Edbh(Ixj+~=%p-^LBIbO$GG}CdUk0>&1Etw=nbS%nlqqVhTc2D?xv7+tGd*~R{M~A|E167+T@!vpxBF?PRP;Zla^`PP zz%ROlt|5?RqKRsbnwRH5){l(d3X1<+R{#I}#ER+xzJCQ!S1qf1P*|>e^F)nk`6{Q2 z>gmef$7mrZ_lxSrN?CQ5VXBZ9{VPE1tf}{Z=~71lwS3PdPOb;T3`cCfZ|OQaTLbm~ zKj|um{n=9JzMzNw(thjT-KYDeh~Aa-0!quiymMPwtCtjymS9X2Yw0*iI|nmJtXFOC zkVn(tM-=-qkvoTD)G0K~6vXXXAdfr0b=~eLNoQoE?DS$wVw1$#T4Y$%>Np_CddUq0 z;8o7~tbAbvf*}dgZ-IRis|{fk9AI zxz)hp>Y-<)!;-qvli&(@SoZcvM6nVNSGcOGEO9* z&O(!UsOH8bs&tFi%2X)YB$ObIK-lg$ek4|B=0g2jA$H4BMMx&teBx3i`f=>6L*oY; z+GNDAIo_*-RY8G{Rw1b;jCi0(e^GQ^pzI!gS$y@X2}tu*7LFY8^2eYml|3EDQ~}x< zY6*CPA90Tfx=yE~qk_8n-a}fIq@dFYEeOvWu~m6ZQFi{^aZzktD-{uII649e8K^|( z8QF2YYL-weZVA=o1+moj@TN3dr9EnhCBiwdACX06mRC9zycyj68bV2H^*}jy%q)o$ zV`;8l5CpdI%qw0lx1U*9Oqnpa8tu`vUMT|`&a|M4Sl0cj7}Nw8g})$qq}YlK0jnL| zV3=MEDWmR$`W3ySUwIyv1@35=a(mAAj!ng`HadZT@ zt+D#|=TkHp*qtM?vSBTVD)QQ3TLp8?tbD!KRj-6;M4Ao+3EujuMcHi?bF$lP*@-;; zRJ?H;Fl{!fWgP;iCJAg6SyIszE}hJnXhC;@7dmXZOxXRJQysl$V-R4PHC1ImKvl;w zVfQh|LugUdOrvS|*gE)VVDO4dG^K1^I9Ro}JFinD(fvsJZCfib+PyVUW|C@aTNePW zhAsrMJt zQ^^I#06Y3M(T1dk(&=0V@1doUWQ9QCoKHFdC*WfT-3JbyGhfi z6yB&&6_BSxz(+nz^VJB-si!Wm(_jo7eW9D%;Nr|OgUt)@2}ki4wRBztq)%+gFTf!w zCqy_2uWP%5N*0E{J&@DXk0{yc(V|K34X;OFAc`1RF)z0#QnXbUaz=r1Opbx#qSzAE zn$>IrQo5UpLtzzH3ds>fNxm*+#V+<2SMVSZhpRfG?-hH-8d(dsgB5d&9kj2$z}~c@ ztC@%2IlM-`?YzdDogm^E){gqug`oWnkhSL4>?PUq`9o(4lRALp9H>zzb&m?yi@TIn ztC=h{2ZT$2z$nI(t+gKwm&skmwR*Ih>(32PK^1yUyxADse!9rPwqGhRg4d_;R=nG% z#O3PbV^QHsiHW1zq5nku3$|-suj?^=sxhSO_Cff=4vka}UkUIQ^;-U4CCiF2r1!FH z{=2yDj(*i}zE>}dU@gTM)o^^{cWl4L#9WKYUtF}8H1L*UvjwTnqbmID=|<}jr(6}u10>f+tk&v zimgB3ej}sp6^kYuf%-?cC_hoDCkvl?`yen}vjsKnqxI*aE)e-%k+16GUT8#wq}}t1^rZ0vw;=Un4v6F{1u?jSMT- zq0@{oYUnO5)ZwHpB9lnqUo*&l3vOmwaq%KznK+O%ubF=4^|rOJ#45OaS1eBzk2It43yk9Wt9fxASjLd_D{tJkuQC_dPrTL+s`}qC9p=ZWGI;}?Vg$& zKxsR^X))D}kJibYaf{w|k$``4Yz~6lm5KA_PTs+AgD>k?lbZEOCbkq(OjxpQGO>Nd z@orF`l2IjaBDBj;J-wI6@5*!LK!!I<>wOl^3m#>WYoD#H-Qdg+DZyzbEt6yt^_F?B zn%ddu?RwNgS4KrAoZM(&!kHGn2kTeT!#{1?~g_Dy{yv1mR49M3}BF1EoEi} zh+M$e%T^Nkotq*uWCBB>2?`E%V8m-^E_fb?mptEr?;mQajp|hg^j}*G(KgUbXncKE z%Mv1iI;Cx>#qc`VAHVt95we58Rbm@Jy=fB9v*M%70Lx+CT`A9;ouVd`peL8yw&&-N z4~fJ4;oTrCtF3rJ%jteR^}_BhCMhpjRGBq(-_pLH)kSK->n`|tS7RNbsSMjozXmif z%dC11ga38YU8nA&?!)y!Q$K{ohh=SCikR=Ww2!?hA22diulIj@XkyNcu*;_03-Ya6 z{%jCFJT8zRxDeOCR)G5998F#mxU2Sl}1J-g`hBm7Ep})Sc)k%(Qu&hdZLg52iuXMz7+5GDNLtt zNAZg6@4_jFQnuDc6au_sio^I4-bF&8jMt%dWf_zzq6~yabxTUou2UyrP-kQ%hgqPH z85+ISZChSqm-4XcHQIFpkPwe$tNW>unXxDYifnjD)@7vaf}0DiJA3{)hoYwGOQ01h0`FC}n5$ghaN4w*gm z7Cjx`9t&c86@z+HfZqW|7K(-53)|>R*BRnY2K+_G;v+#!g!)VV3FZ~@>J@*8rIp*H z{D9cK-=VW`L6^1QBbM{FRWK)yLpr3=t?hQieNhw6B;v^G$iCbpHO+vWM>(@F^h&~6 zw$Jpebs9tF{e~Fm0nb`^B8p5^KqM;)%Wnm62KR7_CSy`AS1~ef%M1%`)$Ak3 z2YwosXBbh0=s@!i@O8NttJrIE=qsaC^!Bw}4@#1|?swT<;=$6mC70EePi1ziWUd#0 zX3kF)Jq=+xv1RtmqiwZ6e2WshfNUL28tVyJvaN@LSbaejw-oM&>TOcXT`TGkQ{}0a0>xZbO8y|ThYx` z!F^C0+N?iEQykRD;W~%-K1YZU8#aIJJM-uv!z`rbm=d zoJMk}0;bd@#cu002f-j=qo;JW*Bbhshzj0J+~e@YalH8{T<%E4D=mO&_=z4ETA!8{ zRo7(6lUIAQ*hA6?EnnwT*aE|(vld?+e#+!|-bpK)^Vw)3qV=;zB81sp&+IEd9$wgJ z*r88)7qAw*FZUJP;KAMp&()ZUFjKfJ`T#9-EDE|Gw(=23hv&AaY$&K~1}#r}RN<5~ zS@n?ulawt4F;CBG(}`Y{ZG|vF52|%<@i|OvJmWP|_aoodUK+~bo940S0MV)^B$*jge$_XTu6%P`CFVBtX zr*YZ?rUBfs!<{&;)vB5@NKVv7aY)2?AXSz%wDCLh^{cbBO87t~p`2)Fpb}jgB!Yf; zrqu2YIm?JEy&+L1+{CI`B6y}osqFW*6AF{KL;)v)l!5XRs>8dFl|G#E0EeTh6eV#J zBZK4&mR*f2>YJ8Df; z+1clZ(k7M*-&XA{xK+(f=`BqJprIY2Hi!pYLMf%Rc@&*pbaQ(QNNEX3DBl89#chJ+ zvfH^7$W?kiXxgD&B{;+hF5Iac-gJhw>GJGtW}GjGQZR8KjyejLCWC1kSXEVqwiLYV z{vf_)i)s6M(=$WamUoby*Jxk?>a6u?tINo4@E~svDZ|ZxYMvI3QEP%m34TT)U&4L_*e^Ltz{t`wq;lDDD<9D!*~nbgus zI#x0-wJ=G*ra%`-g2HK2FmOp8g9Tdjuo8Du8C@-q(}bVA zYnY&UOWEI#A?yVYMFU($-)TEzvaykUh;oTaE>`q_T({s zc@O&Srf^nv5Gr|GgM|a;1SHZ0&O=xHg-rPcmK*WVK1F31;0pQ)hz)B@>S||U>{)SG zbz~JavdhmV`g<{z^y(Bq2ztw=ukLRolUe!cW7#X%8l|_NWR)|(K`eb`vouk0LRtLr zPWsKbRV{CEADP_1g2V-6g*y_$e@rvfKuB#S|1&0n`rFNAk9-lt*vWP zN(>yQR0VfDXRS#rfmJB;tE+WlZoQp*p*f%$)M=r|iDrC09*DD{TmU-z1hC=blAW_HawEA>%5Vo$yCtgYtxGmB`LOec2#ZLiv`|9>G%1hu+2c(cv?JE^YmNTo3jne;@eq_gWv5D7{am9t8< zbFg&5`dJmm;qag}CB=Zt$$8G#SSyDcptAus7crrm3BZS^U0JPck5r3Rc%tAynAqJq z>Wy&Wf!lj3+SYKv0Y$;rli6eS*HUZ#y-WNJOZi=6_N`0v{bTV>OYWUL{e7pur1g)Q zHII*Ux58SNy!ywtn#Zy_$E@1Nr+UYt8kd~9$Cp~ik@|b_lTUse>7T&uW4=9OyNzSG z-D9>bW3zo@u+3wx9ZRciW2n7jrVV4GU1OlFJJbF*DyN;jJ^8U$f94xj`CL}NCOWss zI;ruwt9)51pAh<|!s?db%T)LXRXz7~w)SeLyhfJYc|!Y{>7Q_wbM3vXeXSL5Xq_#x z`lYd^t?U$~wcpgWwN*W0w6?4YTT@*vs9KiOgG*^_sc9FfXu_;$ZKbpfR=#{X=g!?& z`NnA9HYGFWZ>(k-r@XkejII@oqjdL^8l{oOv5<1Hj~=n{xmGcb)-hyNJWh2_5cN~T zlUDG$RXij0PX<*jf!3+uAf>;{lKt9U{~?V3W=?;d=0C(z-?_1GUL?IEi+P5A46}>}%)aMk?0UC`>fLXv za}KS+dbZl?+P|x4PV42e5S_QnJ&&gPqR(ydcV&S3j;Fvtec%4Za>O=8Zglu8)sx9L z1)jZMG%S^4oZiG8UpjqVuD#g_IIWqMX0MB;G!}t$`=2sm;iCc1Ut4i)f~~lD*4+Q< z_gvNP_ux0iuWM@N|L+}V9C3{?-; z{rHhYgv1nsf<(8ZXw3<44(H5ej=!!_4f!XeffHzli%4yNu=7&10gbm(YU@d=C?r_7 zP#cf8Y9($P1t5q4JpDyY&j#vCu{;`&oWwv)q648FRv@HFqV)(&zwuB=-kzu*In1qpb-ve{zuY=8hglwMe6OBv%p};DF37 zR|TggJY7Clu@RI;VKW?rKGbzOg>y(Oka37H0;GEv=O7&flS-9Ej!;uCm`M>RPDD~_ zN(${v@4|AMZ4Tg7l9(YZwaID%DL*VYoXCj@;E*s!z!wL3uTsYWx>Ir{$Va#!FUZL@ z6jzGr02+mFVL?3NC!DoluVm+tZ30cgFW6!B0mmbbRlt{tiWJl?ISVKRIvSA{>m|}C zt?2YXoW7!2rCLaKFUpeLit3C$3pN0mD&>1+FIF<(lnxPeZFFeT@lRg+qRKmF}m6-*eB;_+Uls_$8ynm-h+T;XT zGi5cjhO1HviYF@XG>1q=%0&k$ZO_E&K|&QUYn?{sg-jWwDHw^ostX04bxzB?ZDiV0Ptog9a^k zf)G)uf$lRx!xaEwFLt=%3%by3iXs7Y#Y@%9`WPcraD<*@ME=|3Wy?bun>k&aCK4Ns z)l2zP)$pjJmjS`qtHNst+=qQ0*(KZwO~rFH)mt#x6>8NcgN}%5;t%wTokSMJ>-wab zp0weznjcG=0Ax&&ScNgXyH<;BU5hwkq>8rdpz5MtUP8IB05WBdymb4KBU<^uD|_w%ay|XsAx1L23A2) z<$g&5r^7%2H4x4YPlOM!xNGB>t=qwx4I0_VE&9+`?B&3 z9>+m%-JADO{^~v>uwU%&1E}Zv?xeLTbwS!$?|aUne(8anp#XJ;`)lH7N<6lLp{$7$kDf#oRyw}ld+GmL$-X9g%5d9Xt zlLsj(TPttiQ(9xy#QheN#w$eu9!mJ7Tqo$6N=G-*XuA*SG@?W2q$*ZVQ)}q89|NdT z$kW{N;3MkU^jeSN^?sg?5ptH}(P(;D9X&6wazud-MX2z6c`eDFA68^gw&=I)AO|Ia zo&M<168Jq9_uGiwlv@YG_=(4Qf4<)6JjpXfx4iQd#?-7S<$g8^O|}7Nl4P~TFYHV5 zXT6)TD19stME~}Edu;-uo&1|<_ZMU(C^aS9d?=KFA9lFQBvU`#vJZc769ny=iV++% zRQl`Xx(tC{=9z~KLcH$Z)ofVPyGv5fP+W(%8)s=33v0K{cB%9@c%8{X%1tAKs%082 z1K!u_n%BOGjp0ha-_ZXXQuOksp11M!%OXKI(YdJPxi+-lNup)C?SI(t&Cqf7e+$g4+Z)pLALka=oa* z^HntNFpTj57?QyWNkXY0`&=0rJ&R-SFRG0!j!vMlQ6a*&>Ry?sfUrupFHks`owe**67Q+$D)Zy?gLD1 z+QWuc0JgCzCuDam==+Z?1(L=@gw6qz#Fv*#2FcbrEfXd$Yi6ZpVhMGP9T&DCzfWj@ z6P;AiEfV&w!a}dut?c}wDvnj(qml|Lss9Mc@T<3Gz?K_LY?u?OAxN6iw$D4p4C!Z@ zp3{jG(M^2a3@QK>lAc1my(^jV=5Eb%#v_^8p*|XoeL#eXXVXchzJ}3dB_+BevPAs= z!0}T439~QC&9$PV=Ie-K52M(n&)_A`9_cKr_L5?GNBa(iEpq#+%|ZV7s)1M3^oRtI zplB)YIO>_LwF}8>qkLVILPxYeXda1N#0O;T7b=DoecSa*$1XxRB`Kw~qSCgsrodaa zC+p&@_0g3dL9pNIQkyB5(_mglKN3^*&QtfbN(EQ!4pu#h`r5)ik_toQj}0c!0aCfJ zU~282ND^?*V&xZB1`{VpP(j2|ZD@pjkVPKZACyQ^J!Zr~#^qg8X+3W_#?ou)B26}N zv?pf7vzVac|BI*`LhP!}Z#9u6l}_A?7X!@II^#_%4Icam1|PYTxFC--R|BVo!~zyo zhx5~dk_45;P1w0$BbtWIa+ibzRE=%|hlD~3SMqsEi{I&?pI%ux&uF$vQ?S#}MwYfy z{iUlbgbl@q1 zV8Ps75|!er1r8U&*YY>P^CH91&<3ry?$GpL=g*%!2GF&jOCq2B0^cove!APqg-iMq zrnL3H-jv5aWWp0=n30M~E;C8)0DdUsKJA%JT&I2ges_V&VtOV3Pbe2K?VcJX0xgE4 ziTntq`p@*`G<(fKskT=oRKTK=X`qA!6cC=^jrjtT&+J3?(&R<^Vf^r^vDuWt6#b2* z*oehJDG)}KX2@RC9%zcnc5O|ly}gj%Fc!#A1a+GlX`-{OUiOX5PhcAa&_B1W6;V3W z>Jz%|x2s$ZfCPCTp2nJ^8yn9w>|7OwFy%m0zfz0FH8yXsNW2d?sH{}YwGiSOqhn3y zlVz^KC{mr1!{~~*{kElf7$=EOB&y0?GyzjeJOh~AP^W22_WoL2=phUI^{XWGz*s1R zkM89WTQ?v$1Jzl+z*N2`C{md?98)E@AIg!favG3au zD=%Dvo_3G;nawlQ<%j7qeCn-~B%)dbVq0Su2b4WW>iWVa z;|jYc_XL^%hfiC@;4bH`uo1x}EkG_XR}gi?Iw@Xv*AAc4pAmcD%i-@si6w^x zDV7k(xhanVL@szs%L}60> zPNQ!393CWGPSq7Mt`Hs*QX?hwBYmnk1q#JPu__n~N2&7^7C*Hh2Tv1d0)EZFk z5}alJ%?_rF#>$>L}k7?xH4O{f)mzE}Jf2NJ#Ry{m)

TMsYZAE$@8;AWk+K(VeIosI=(yg<QJlPBpNj(&}uY7^wF{FM9@ zrbki2AlMV;?gWj8zWdswsl8shbJ(&bN3fMP5xa^_M>T+V(xvSFnuF;IVcYz|seJO+ zOzV1uf>Q-j&{>r(?-k>;d5RKxn`UWBX#btw=_msv$s+l^xCIapdIG6(e9wZ5Tj;+^ zQ%`vU|03lx-!8+%^A;~|4=JsVpp`C9nr6a8vQAooAmmdU{`!8EHN2^gV)?_&iogLa z1g2NTG9@cwWXa=Rk6EOeoA2*e$uw45wJ%FS$M(Nw%)b}?>($LOt121kYz78w|K%!P zT+vWY;%>zNd-A4f$piWJ=XaQbdYHyL5C|YsZ7h~q}@_azM^zh-y~|?m~0mZVbE%%E_Q_2lod9=8OVWf%}mRJ zAtTcfi<&j>a)(QS@YoQK|ur* zCCWsm5`o1pE*2-ZXomYQ7;fh!>YxIj%|-Pm$FiEz2ZvzkgX%O)83jzV?H;s)4plZ^ z1$4MFJ{;nqD}#=m?tan&2oJT#6eZOXQ2;iT$l-NonA$?t?!>K7-WFt64ris^qC23Z z6(uWpKVPy!tBIdhp&US59IfeSJa~{P+_NyY1Qy!SCd54 z_l2I2iP=)ca5`>CR{y{D`A*|aU5_4XYC6wmp~`Jx%B$K3g!Q#8ZOezYn~KH|0ZzK? zruHqhB2Zm+k8ueS)6^!?m{CM*5vq!~9T+rSGG|vdvBX7GMVwgn0kV~$GM8Kgp-C$0 z3dM)#ppA^c3wP&gz21mpj;R3LzAiRqlJk;s+mZ)%X9569a$M?(;D9?J&NSN&338n< za?2~x+PeAqaBvbT+wFW-5ydG`-U{b&mqtlum9#rN6;GO!yH1p5TGH?0Rm*N&uya9m z#YBp0X{d>1iae8Kj@DLCWDaO}`;Q&&VxW?ThpH*EDzGKlY}LdPfMoYWvv@_^+GIs`Ee1{`*ETtF<{7$LDYgE zVF^H%uiyK2@=6p0Mh!XTSvCf_&ojCTCp@-iTJYrIb<8s=w}2^Uw>oLJB7+8cbCt^c z8)NV*Z&KI*QyPyog{0Xu0$Hi-S5wkVN0gdfpw3< zhsCx`Mfu{|HGo;kHXMqcZQ>;)(`aET*M&Ex3axax^8Je)y-4Ud?9WKh{W&P@;z0DsWR3KC|#X*^)9b&76oj$D#?>o@F#c8Ao)|X}p?kJo6@SovONuC_#7qXfl#|}NiaDY0*>k~C z)|VXIKWVn#42%*{kb_X9LJ4hbKn_{Ca}*^(NE;Gp3eTYp0Ya+U)lCUw&et;*ZAcs` zCsNUHJ{Uwn15$a4yl&JW6N(2T!SMWmN+y~OYN)hcLnV|7i@ zvf3^;d=?iCkj!SZ+b!24na$^Qdfm?-lhy6`eLn-z2@sG=Pe-S9OU5&W+8dF|^lG(& z<(n4_Mnj?5446+EjtIo!u)J(os*1&e(x||oDjEpF;z5|Cq7w=QgCU^6fJ`9{iUL7V z5R@Ph4TpiD@Zda74k-fxV4|Eh90`U)%7BPe1`_}PK!EUgToMNeg28~mP#^>b0viKD z0RU*Y(*#9r3Cv5ZbAed?c)NjNizSiC8>N`g66C;*p35m941iaVr35%sPfL{w*w`zh zgPd;H5hW0IgTGo-FbI09e7$h6MTp$;GF6LpMMf=+S2=jfki;4wn#Ak8-9QX2nO)Ad zBLkA!4}}6iAPivqweSnllagk| z$+X|#*5k`S!Y}Lu}`9WM&xl+1QK{B`=ti#=wxNuZy zRukX=6NfEq6>~9_Kv_R=N75YLr1oVi-qfslGW8QD5~=;V+5m5DU20ZTS5lgl#_&DY zVRWtf-I!xS3gDHcO5pGlqj)NT8Z_Fnmb{qKfg58TJX^}EtC-E~plgrKOs+L-$?8yJ zQeh)w>y-hO5L{Cso~kZV8dI-Z1rXP)CeR@;ls~w3dSydLja_p!SgkdCbweCg z0G%m~x)n#iON7*QM<&&{RWNmPAZ3Juea&qLT2W(4l|AjivT#g>lJm0m04~SflL%8d zM`V)fIJ#3Y-BP+9Q467EajV+7VZy5rcF{^_x`n~zk0)By(wqfNbXEQC)=oI^YpNSa zL5j#)sd+pt#OIP%dg;ti%m{y&b$e%(WXtXdH7s3|(f}Oz^2%pxCP6iqy*nXAY1F6wK013|!nZE{U`dJ{zgb-* zB|hg`=u{fI`I94(jZoH*3f;4Hrlb@`#~LV-ik|Ka)ltxpY_dVD-w$t3EuRQ?Lg~v$ z&vc@A5KE#aHl##IMKdR>!fYdOilO?DZ&Scm{YWd+Mj8J566-?G{(?ApZ z>>bxWKkWFYPZRw}4%y!Rc#dfC6#T0Qa%fw-sE=>*#r|5q+)y|BG8+F|K>zgwE&UY_ zf1M$3<>-6)A`bpCg8$*jU;YM%zkDEX?$j;&i3$Irq!;%O2KHhK^|L;~LS1c-qZ=N! zPewLA=<}Y8YrWnlK8$F&E|7f~-Erb5`TYp=V_}S08_tM(qZ(@1-5A|^`5$`QQH@s+ zf=86lr$#hbD;GSFg}O1Q*4*@CUDe9?$qs17z33rV#ONE--dV&;!-yNp>(dq)67Y%v z@@Yj}n%tMMw4v@4V|n^O%yT(R4kN9Z2{I4@YB8eUx++z1U(BrqQ3^4(HuPYw4Olpb| zDNF<_>L^4xvAxhPHDDVA5a+*i&|z#^@U{)El$1cfbA*6qFP(rUM@ofoUne#9`C&1z zyjAb{{5$+I#^qnAO_m>vBgov?FRR3NX13q>AVuK5rS z(z&c*R=;0QGZYOiyUs^8Y0FKDg1A5W5K!t#nhUY+3!4>2y`xXlh`V+X$95ja^u;ZC zJj&g#E<3B8I_Flt)riV+__eeSt86i}Q;EO1hAn;J zKuv@poYmPi^q9D6R-(193b(RY;JW10W;(RI$zID}Z|A~mO;Q&bt(ir+IYlxo;89i? zYsI*YP1A*NRx%N#rcgyh1V@&>Cqd4a%yh65b_yOcpnH-EB0Bh)e2`B{7<)>N)ho9+ zVe}%p`iaP?FDlbhrVT=l<#A)YPj&S%s7}f*Ed|e62Ix5iXR(!r{Reqig9}N{<)j2~ zY=|F9>|Qyd-$10o@{Hjb{1{ML7%Mai++eaWVTe!lS%nUS;Z-8Dz+4H>!LLNNmfxxY zWx!U6&%sTIy)`AgVu(+8J?MbY(l5Z0;(Ni44!RmZc*J0V{`aK~T53A@#0ZS|sbvfL zYBhMnu#(_6jQ*5V(^ry!jbeNL{cF#Flb{tmWX~x^0R#RXzRvDEcnKUtC|Ob}iTCC7 z?jWf!83*21h43}2kd!07*Q0+Upg_;cjA9>&ug~=_>dGJ*Ee3J`&_KjA5g!xLyv$+< zpg}513PhycKvE$+C>fwm5V?n;*L0pTI*y-WV+t@aXz35d@}>fh`{Z-kUEAVztQ zN&RA6|Du)SeIxv`LjFRP;JtJB1daK{GrRid?MVyn3JN}gc+gHl6zSi@Sx|(Pm|_0u-o9&u38*C=j+6T~kaL#?xH?@+>?%zH zRZZtq`!-NXbOR%yrs`kz)HSM#G93r@GfH6xy8yj)AKv7GtN}|WRQj?JzQ<8c>Yr;` zoODmZZ5gCpC;R-feq6tz)q9g=WBj2E*VOsv)xN74hBp72Q9JnYyJz8MT-dFWzYUle#>5Df_Aw=lZ1Bvk zdY9<}EFg$6q1ns|RK-si`Dv3FS>c%r#-UYc`J;c(7{<1EWsZ=8c)G@EEA4Jqm|30~ zwkM84#-VmBm+4asM{t@Hv1Cw%DZ3O=_l&D7R9mbNSgo(2hU{wSxv^nu8*+t(HON6< zHVQxb#ltdDZ^jLe~i&xBjkfN?jEQpEyJW>;DXzz(c+Ta%e>H>||vWm%(P_i+{C+C*H zh(cb!cMycTX8@Y4gP6JHJG3EYowNWBll|W5rY|T}A&0pHV&K`_jz}L?a|f7eK;ga8 z0_zV(Lm8K$EWTv#;z7CT{!BMJBl!&Gmo0y?ZxYCeLwA#F1WEEuOT!F#z#-+~+Q#PM zIPaK)0Bk0ifk$s4M-Ai1cT$Ucko>Vx5=Hw~Amxzf_%3CpGO(pFV@)`b1~9sP5@Z!N z^CIUnF!Ku(8s4YhM(G6GEgpa`4&E-n3|FLiBBvwFI*zLs#BEt7K;ydO>5S&0w{Ri_ zEswPZ;p)^$(7vH$Fx|@=sVBCYhCE~}rmo!wm~~r3r_-B|k&`)qOANiRxh5ZkaHre{ zm`&Prk_aPkM8~otjwep0Q)atSlCsmLn2-y22l=hPg@*8m$r%mNn{80X3_AIRM9B1M zTS~T2w%2~TK+)xCJ$B5c?#Zv*M=vx+u)~{Z= zWAe;>XDa|GP^Rh%-Dh5{M)hhQX@O=SA0bU@C_U z=a)vi3bg4n2aDz`FnH%IbG8_~1eie1PclKr>gwl0^`@OJY+-X*F_|Q!rYA})-ZRWX zE};(4u&mqNw!!n4F^V{{r++BM=CRS;9iEuJg1w*hqhvK0Rp3#OHR+7&ch(sS;pADyZDAPF?}9#NU2IB3${VMS;E54 zR&_vGhjYssW9IB~??gGWqHMZLpvvm>*xj>P!p|=q#OoQJpdz2=Bzof!jUqo~G8aKz zld;#Xm1AB#I$(zz++zoj0c17Qu$3hlLkn;$=H6Wy31+9O3`#h0Ng0xoj|73jpoJUU zn-|+4dso4|gAZI&@1q}G==*$R$c0{a>^Ao`V<^@l$U{z>EG@W@I~s5|K2c%I#m zX<#V9?+;i9EHmKLI%66i6`1W6VMb3PO}O~$f|IaNfLKPZ4}y$mbAp)iGFq4p~ z{icRN`Jle0acAsKhVe$PwQm-mp^}+C4gp3l)kNs&Xw~y9Yac!4v3j!0pq7{ge60#y zc5kLHrgR>{h#p3Q8p!!AqWC3>grTq&Dvg~c`2T=vV8*t#W%i=Nlh?L|g|*th94@Mm z4sm=9(8VE_!vE_FUBg~kKkJSjMcfoJ^v2>f8m|CTK&-#`cQ?)NAj6Z>EY%#U(=6P- zsI}7_dP1k+faL#hP(aERwAI!rifY0y7$^%YwMp2z93=%6!ij}Wlbue3`w2LN zOL128T<{Q&MVi~8I{Y{6l~M=$F2-s|`k#51z+@Z_8m2Q=n^^-_(eiC!cB~|x=qA@J z%)0BfzGOFZno4PWQ?jLC>qhk1PnK97L?x4EIeTwXEJzXsNZGY<;LeO!;{&SV`H?6+YgTic~#-V2t2$xb=PLW#j+CY z4pgRMDVc=U-y-M&*s_kSf{a>ukfS#9in+2>q4J`)Vxsor<$T~^{p#zKQsy)|^h#qI ztZJl7a`e(tO&L5Kf=r9@xye;UejvDHPPBbFZc@SZcjD1thuL$zs~E?r5b^segICPS zJg1)@$vu!_NS3*RfrG=0@f*Mg0Bg`ar0KGudX8?Bq_VN80-k4H2rquBy($^ShGl## zJyLu7@(iyFQm6okFNeJA)WVG?HZ;q;%~O!`ea2psI@-k%)B^yZR&gJBPdNJ5%EtBu zpri%p9UqYH(v5PrCxKP-Cs0IL#8}h{nt&>xX6>9+2Otvq4Q}c_R?LGNObgyr>8HDh z868jkAOfv2eYYx2m>u9?)uHMic3GuYD&+I!SIqlOZcwmcrP(%cK+WS6>2bLMA66t9g$Nkk3OJE`G(3EO zTeF4w!3Tp4oe=?LUW$E=uhb1V4ka@$ilBr6wAt4@do8+G`w$g;3+;QpkS(MvVqZ^Q z#N}Xx43$0}c}?+SYUoMO3Y3}HXGK!Wp2lU1_2>UtI@N8B&j#eNf)rxP~j8C``*PdNAN*DZ91?{IC{#Xe5HPN~r z0C()?{J8&?Z_C&JZ%=k*A?(s2X;C(lKa%{Z2s4;s*)paWs!#ZoaheZsCgwo&tyeAY zMu7NdDQ)wF0)JLcG61t67#tj_hJ?Y%@!NO%ahWJg{EjpeG6)qG1zXDV!%RhwZ?2v0 zR9`YkD7&(sfFeB<4lD-OUVVq7`w>#BV8)n`&|2Y2uyAs00+J7buNG^kDoBK469uJ%rkkjHbjF0(^h+m#8s-{beI?_H!u|koqyHbqFA2 zHeM=YQz7Fi{k%j4%R*1h1&;jUeUP*25_<9GUL!R`vItexuc?g1=2*tH<)*3`PE`)T ztC|#gv7WE;hFu_qAMdWv+#wjhRx{jEzKmsgY-Vkv7>TNau8oXrSlsgeD<~#N_U$p4 zwlmqa^}qomm;*7HwogXE{_c;G=5zvP%#EI91EFi6zzS}HQQ)460b|ot(`@ogaGZ~vg6ETA< zS2hD?ZfJ&-j24lL;o1(F{ujaE;}HYG5FnC_XKv7CAMCQhGsj|w3Us;9#xJ&#NPZ1) zEM`6;G?2yNp9Ak=_R`V-JgKVjjz}5(&T+_wEtLsjd*jiAOp)jN8w_TVK45=0ADIn^ z(jSFf6j1`8l92IzR z>hQ@?MJ2FRtff~CR%;@^L?33qM2#*c3=A=ILNRz=eGF@OJ;^R^{E+5pRE1zNDO6Xf z6^PVO1?QBnK7mE{V##LdUFH}YV;4^CkF>~u=h$amGb=` zI_p=4eu3!phzPNn*W`+XBMwZ;0NuFr5UpJAfrFM?XjXY?GdbZ=7J-(uB-^%!(nt6l zc%!qjGx7)g#(twukc?nd7}D~@LGI9c-?KF)qx^vBlz9=%N{iXqk2Wr^=*v1#5RR+%^iCL_`I7R~LNH66#cn#DzV@uqT-XMrMB`>gu zOB8#d3zQhWPrr~xgSs>xk{cdRCE)I08BG&<(n#5jol5N9D`KQLGlH(?xQi@8t7^aY zH9%4imYwj-OY%CnV(^OPcEBnW799YrY2kqw&g|fdE2UKG0N2b8q6iz31zL&7=|`Y| zl*oG*#*ZacM>#v0ayXV`8lvYB0(Z)5GE~wPXo3!9U84L`tWH&5O6oN)iBv)$nte2~ z710;=d;Msq6Fj*bY5?@J$rd}|kgc9wzD zY)wu`PGwp@_UEO8SNxc~17Al2BvcGMM6${f#GJ~odcIhu%wJ64=^#OwAz4~;D(S{m zvq3z61ynhvC9IEXl*#VQt7jQk4p`=K25?V^t@~7&)U-v}m3G6gIfxyz8Df&e*5bJ#5J|QmlS1Ki87@bS*CAB zRoyPFTF;qoUltgLRYq0Jc5xY27&FaI%~uo9Pa8Uf^&^k7Ss@H0ft7mGlQI}sGOQj- zK+{GjvWt3p<8tGf!eHsb5)e_9Wbxyt7;w(F0PMwDJPX~kuj@>}bQ@R36)|0rZ7jZvopXDgaBn&V#H-yJ_6Mb6)kx9`tVFrmP0DUY10ze234ooB1^cz z?R4quoz#u4DVbK!&$2~5AwG|C6v#t5(<(VVh z1gvP9>5VEQt}J$OGa05;%lm%-Iav6_^DJ@dKnAm#rp{JnS-xKmb=Rg;M}wMb9=Q^S z0cQGS@R?Sx%XpQ{<8-J91Br411O#biGM+P_X`A`R?mTMdU30hf6dkA(tpfq#_T}^J zXCt|Z&bi#I6$Y~oAs+YBkh0bW8!e4SayvVbu>b@R3J^As5jF;Mk7M>(&M|s>_mJyE z*sN6cBjlX=8O+0}Nc=2+X;926QQ(oksXa;tb2c`=tYph#4l@#}ubKL4>tiS* za!0(&MEv_}Gsx|z_oHYCiT>OXMdjc7eeK`ntNDEYEZ+eRmJDS+M|EsB6qb^A3rTBw|{ zc`Ycma0upO$a|0v_jAlGrAMQ;N1^Gscgsfy_XD%A!r67z$;1QqP67 z`!HunGadRWvbeU8XO-JhJdY|F4D<(z&&>1-a_i)(rPS*SHq-6=Gyp!y+l+hHPO08(BUh{iC%Bq8(yk(HR<&gy>l%x{I zr5&?VY?;&p6Bpfmlx{+14+(&j!5IkLzGnOiFVTI$88Z2vwPoZ?_X6 zGrhe%sB7zeW}@8Kawtzl1Tl;?aZ4_{pC&UgHN86-m&W+dQG7M)T2yu0_qdc7%rf8@ zt_Wd$l%m5LgP?*WP5N5{G+pS{!z!%KM zi{XE^p#AJ$P&u;@G>q?UsO2Z^x>cCGVSB^=2CLw$gK%LdGG7&MaVZ0#k;Flx%9qX> z_}x5uYu|5xWG$33`KpqcueI^{a_VSO)R&Lgp?_rVY>K43ieEFpsB0~is`r~06R2w?NkE#JHpC%-nju7pIpywQ1wq~QLwPz`1mQNpw()mgiLbA#_NOj2uJ)1KukQ{<1 z6ie(DX5SjIv8J*uQGIO2lWtC7WWOnV5vac)z2dd1fX*+id(4#S$6*R|#sN9C89UZs zWm-?TK_7@Vfdr_DH6$;I>v<>&<`$%8!YH=6L{&gTrrL^M1N>V!UlW%?0#FpLyl^0v z&2)lUAX=Ci)`J_zQ9{UhOXhF*wh>3SYiSu33lji$DOU~@Dqh-w9>7D}B!JGyW+VF2VHl0Yb8R^U|Ck{8hL@?RrKES=y(k}X5htr9~hsj}1(9;?;xIJ&{P zRv@+H3|6r(Wl$l2hQj}{DU4q;iux;HGIwlxL{lc!Kw3#?QZCw1IF;{LmGVmxp}{CR zNGd(;MO|kd6MB~l$q%yxWJ(#qyhJwUp! zcq&V!#Pb2(<2eXD1c(T+;^u2z?`qoe{)_C8&nf4!av2nEPza@&zG%>xXNB?V5kqEY zs!X{T@`JKZ8kV_3LXh9(vp#n+z;fB}2UQV-!o`s1q|4uLm+XUCiVc(nwyVaEAjKH2N~IS&D5?Dlm=>w=S!8j1`P_eI zKPd5>t!_1dm?;cf1+xn0qle{ja#h^Y2SY(ha=vFs(4MGoRhGu!6;jl~xs#t&X2nR< zpr3SQ13F~zGyDu1puxqQ4tBxYP&(>)Y#GsG&F)$Bo#z8z5m>L#r!mS?(7p9mRX}Hk zR8`foB?gp?IOStB41`^DAlhZQ&jhbekB96%ls#V%%a zg*VU=sGNGnis-)Qmzvo_iOy9}YOk4$yac?ttdspMhcS$ATJ}q$;BNQ4=(vZnFz82a z$v@IvcUAYi6%aj2k#fFORIx;;G7J84Pq+jaMAy;s*N!vRMS+75NY+#-NkY>|tQ8Ec z!nBM&$(#dW;VhLn(n>QmLV1emIjQkfB!^xy%r-zHK$$=zri^Dm`otUE0}Vk{N>bmy zu*U^M6R9?>GcJ)2eknA!IphA&|`OM z#7Ezjm(T4bV%Y*`8fae8a)RN<-=Sx)UPJF{{Sq;_C+Iz2Clydk2p zP``kpfH~_bt7cck@hb*@6(50Xtkci341a6hN#0A|7Qu}VYD}-=SIyFWRg+E+KV>}n zB8m=G@1Exi=y4W7;Lt2`Z4)7-+i^kp(O)vYWy<%%JB#i@8H_Z25Rn^SS}d!kBAM}g z$U)-z-$jw>nN4O>O*PlVo_#2%W>>({^u8C}Xcq2)55+k#ci?i0mCqJbfqcsa-RT(% zKF-mQ*`!?z!NJzz+mus6-$fo4lYIhAc*Ahy9@|%xs~%QwLnmw!P0(s5(D%s zu!Bkuil`X{`-Sp9JKp*XWEaz)CzddIwdyH}GD>Gy z4Vsw_Li=;?ayDr(seDgaC>YL80CRy;9Pcr8&Rp{4d&3#rR%j<&U!hZQ5@W|subCY> zj8YRf&;y2n4zB;m$jinL)OhV*6B(879_4h%mz<^}w}EmTeUllZPftdg~f~6w*$=s~ujAh1r34#dmw;}+^;2Pk95 z&l{ZK&>+Lh2B&XKna$bBWV9yWaP?0mV(#zM)& zv7J^BqX&y!(zZNi-F4XUfu2knQX!Qp#WNZmit5LV+FvAdJg3b9ttiFuis0+MNXLxP zf;2p1Kga=`GBF&{xfba`jP|?*7k-T%J!U9@P>1xK09yZrbo#<|;U41##y+;%0Y%G?7*hKo3}{Zk5FJc* zGdK`q8Iw7v#C+q%+Wn{K@wbJQBH79*)2Hv_!1gph@ctT^%I&|^bg)g@Oc=7Z9 zWDPuY{wX=}*!{(RcG$(PD4)lU-?SY=Q6Zm?A3Ybxc=4Ogu$RY--d`lXgsBf3JpF-V z=1BPQqs{sc!LPmPG;oRk!CaHZRFTDIGG`b27?~Z1 zzhi6jDmZD<=YT;-{||eiTN+b*W@xin7`WN5&k%UQzAB8B*1iS^sP<9^DxHK3$ozlL>Q>@t|y zr^Z+^tyP>PEn$GL-wSz@M@D`xZuIK_6wcB}3<2jtg38vUCY$8fKc;ni z>sgdyL4Foqv7E@HI^P%_AnoShi`+Tku+n;i`sXN+GwiC`SQdk=nojR4lcQkRWtvnbI6i*MDbUk7vUxbgR#8|T6HzT4xdHH6Z*I+jh|oGJ(0M7( zYc0S!%%HZP=ny(A&&3^`ZUud@l*0Xx-`OMsqO9=|oS_OgTto5z^d0ODiL;kNebm6k z^5DYp(Ml~4)#+2A-X>MoHq1PryB4#%~zWXKMt&(`B<6nE#$B}l%o2xbdhXoRn<47kc zuXiKWFUI;{3mD&XIY_|(i^38t1#;qzvnhNtb!W7kfrBz|gai%PK?}|#IU@!oFQxc2 zKs>9E>VQYCCE0>pN)Nc>#Mk@U=YxdTY8hEpalRAakb?=lLWsa);3Mop8lE&}ayVCpq38@4 zVAW-l!%&R`=7l;X!U#2GlL~exOJJy6rf?p-N3htn16B&5XiWtLgjUv>>4*+R1AU)h zO$^!4+r^k>67~YqA+XB~j(z``GXW5Xd1+cf5_CXVKuN1Z3nqR1$us$)hSm*}U=>gz z2mv?Gc!t&b0Ym5STAWE<<}FJ?6`y^|O8c0h)r?yxHsnbJfsTmUKc7XDFis(yj>nKk zKyo5+0W^@>3n$|ew_f9y$Xj@qjD?RN6|r0~y!Tv<@FjDPC}vZ#019y%Tb{m=wqu>H zNc|9T`TCs#m;BYOXT2jJc5u06wIIP3XKUt3W96P+i%8nQ_}*6hG6CbP?z#>+Ztzr@ z?sqa!=^C`P3ZCxDU%^y3-i_^qvH3+8Y$#bKlih=ry~qERs?<$1*Sf7Oepral$|f^Z z_ex|h$|^>I+&uh{zY-}JZ{R%7l7076FtW$FMJ|2HQm}=_c$3MR@?Ht5F9Ih3DvfHf{!aMbFoIn`=SCLEp0xfhm8RL~^2>1;XKP}`7k#X9G( zO(9|&;Q-de!U{>mOw*9*2?WHPGVzVb>98y&flRZ531<;H3u*=91_?k+kzQ&q8+ix> z;(|FSmP{%YO9hikl~DbONv4yT{RXXMw_L8be8A*@Ln0GN#PYe)uUQ)o2gCA6%yv*I z6zc-v=?IK99uY?3!I02&K^2MxqH$2bVksAhL&6~VXhs|m34>x#xMVF35(L7b(4b%* z5r=~y0RWIT8VZI3fp92HC=v(*z+jL#Kmrd213_V6P#^>b0u2Mg0I^Z!6wuGnjK^iG zgV39QUS-Udr~k@Y5QXzxdv5YCze~FaM-sFhG^H@Mj~X%oPac_kmR-}qM;_X2#(|JD zO(_oJT9VghNjqQ=i6jwXBJ`C0jYsmP$yRXaoaa2}6axKeB2#jhR8k8HGB%%2B+EjR z!&4r|5|%qlZMG1!g()}!>mXItmB0I_%R=hl&9@u0d)t1;rc<_x!PsrJbvGg!-fW%# z%mlPAHKJ2zF+P%(8Wv8pBjIXOLC58A04SJ;Dgn}37o882BDyR2Cn6vJuAU^G2EvlV zqB&iZOu||fIOVjPYb4+oV?%gSs@nc$x@&rRaj9rtc|I3qH>4o3kq#-k>Sb$w>)x^t zol8RJx6V2TqnK7K z5hhdZBGnOT*I_QR0<6?RG<2D0QFE?N8*i5TK#lUPDmB4Zo~5Bp@KTHIXj-%qcSjfB z<(s{~7KOGCi9c;&6db}_MgKIb*Rph&!8_h;VEK{b9>pfM?i9%-p3bg?oa?mFCQSi_3hG58YSZrq{z}8rWe7yInU8>D955 zq%T)-1VUPuEu5T2QoTO5Hoe?|IzekMGnm^xlOfICAHC({mw9yA4^A%BD(viHc@wi8 z_$d0=&z+5*3cA1Yp$F;M%KLK*8LJoc#`mwO*unjLmNUQqOL|EB?Fqw}*6=WegqRn# zqQXSu5JnKVJc?koq>4fRJENr>pHOuUB5eujU#s`JgDE-KvzU!p&QL`_xv_#%4@(CH zyakkTE}5KPHy@adS>#s)o;Gq{tZ@Qg{5;E?JJgI$kd@OB>jf~cqgb*I7~p2~-`Ttn zt~`v=xk66WPGjvdSu#vq!Ql(q5Mn z1~lG;ZdyATBZm(xIJAWbSizNR+Sf%uhy*17R2G#)j_OmQktQ9UIbt!hRGJ7}_H+{L zjyC?2Cjow_)Wj^lL(~3;hLl3UrJKVNS2DWnuDa-vkX{Di(_tc8!qtZS>~83ZSrLdP?p?g?bAVh%v;X(3r~0s94VGJ+(Dy zWi5hxF+Q#rsZ_;sAOL0U>?7#=i?ezxFtw(yX;T*&hOKwHP_dBC_ zsIFzXrDe>hID<0MxAudtuDFh?#Q=dbD{2V-1tfIQS`MKc1WOm_EZFqbuSfyRX4c^l z8ms|lT~xW6IT|bsp-z9S6U^tW`c?9HD&-3JIaI8BsjZDBa1v0SIoo`vLtF`S@gaCsO`2-5wG~@T9NCp! zREb~3a2leBx&6eWwTCq3a$_s6nMp`Z_)K1vGGrj@Y@xG-y&z1nbyfEePl4QlIGF{c z8s?TewXNxF(rmlS>v`ZH5Nt+t#^x|niA7tX%NvMxdl#>kprU3!IO-K*aQ`a>!`j2{ z-&2@dQm1KFQAupgZ+PUX;cdNKg|3GfA}Q5-`Gf7?oPm>pFWkSli(K(j*fbI9=~F}& z?*?$4q)(Q|B)+#U>Ntc;-mMy8 zN$vpaey(3D#W`rk&xx9>dSG_ZkO_0u?io`UJ$=+IMIMB&!7R4d_KYfV&UXIPUDDi0 zGbKX#UX1_*-4li_NR^zvFRi86!Td17kDOD@31T8UiECq4sAR7*QJaV&(vrsU$>wOVB{du=cSLgdk34} z>Q?k>!Bd24e;97uWbeOASs-zhg?0#M^n_-O^)m!k^;7H|Iy(6#wIujy2i<$;JVD7? z7B{Z)iT6}X8Q%m76s65oIqF~V>b>b7?LPzxo&^LTu(yfkz6ece_#jyNne1~3zyMdj zRxo}tPh5SJfdbn!+mmU9fYLrCeas#%#tVBufla%G@Fdm2Uu)>_uEtCdEMrcIy{&mX z!c9Nlw0I?S{PUN#2`2`eW7G+ZZ|~ee@j1iHNTmF1X8zzmFn)RX5O_7N;x8rA1ypl5 zH;mh#g>yMVro4o;jx zjg>24(?Y8yFcx#ZUnyp998%5KmXGB7VCo7Emd~wyob8w(P|^}3J{}h`LS1t1k#Rcu5aJN6 z?QB+OSlEwYhHy1s8f^k+X9RtTbJ80jLujK;*aAVt*;J`BlMUINpKGhgm6V{Os>bLq zCFKCyvI=90{5hSUn`O40Nk_dc$S$HK8V%*IXs4Y&5IFykXD75gaQ#3uh`*`Ja{=ezOaL%&Ag~ax)pA{0;mS;I+L=$YS0D-Lp zoDmt;{&Q@(XV{SzQN&hC4z5t@DDVzvCL!22j}z>bk{Z2>;*!cL#vvcndrS=R&6qu! zNdnH#%c?B^uJkM(--)HN*AAtW{Q1RmhHz>9?z#bG!rJYw&YB@AgA~aKR?pyt8(^K9 z()q{^4P`139n%OP?YRW25e_R5)|ZBoiPnk)L5sAp1sx3pdTM=9ZMItiLR2vE z>m(jXALCVLmuR>Z1FychG;&b4WhEXINbQE(5qCctrJ;jgP4d5$_qnm=YMA$5U za4(W4Ha)!TtSE;5mM3V5u~u;%O%b7etU1@coX*KG2DfVQAchD9ev?YAer-cyR~z2j zmt-#$rYF$Rf5wwV%&c%!>-L}CSIihn3zqfaaKct2fLnXx%&X=aldC!fKxaL zTn@Na4*^5)PrB^&-FpV(8MJYr=#$cq%A*9ng8E9b!2Cr`Yvs)~n7V)>mT_)M5{m1+ zGYM+oJ=axNGk*aUXJ304|E%T{vL29+CZv-r>!J0gZdpNzCnf^~UDyy8PY;i_e&Wnn zwqn_YC=}+s>QG?`+p3{r5IEMhl5*so+{wCB4TQ3v!Zv(gS&6vH0s>UYCT=OQBv7=i!$5xwO^a69~OUYGkvhrH_XZ}V~y?v3TE3~b=h-mK!S3-PUO&8yxdmv zPDm2x1DC6#YgHE4U}TZMJk9Aky*oIa%%FSZ35jH|TfI~YA#U!B_Lp_(+1~38Mc8jM zIfc8!%YnV7Z|i-m{5c}O@=UWP+~ym-9HKq)Gn#PFgK_C^EB@>JBd$q!L?~l-_I@xE zH>YoOn_BIXM2$f%TYS3;pMZr){?pc5nkOW=Z0~SFmPLX}S{g#}#-t6a z;L}Sxm==div?6G4@-LZYak%kpz2VN%kZQg;x&sRPWxk>LfL_Loi?tQC8Ld>#Hmatn zi5@{*&QBK`DVkC0Nkm&!ADLUIy|D>Q38OiRkrc% zIOLEQiq0A*o?N+d<|3~_agz20qu!hc7Nf42{OYn{v~gvggJcUQ0$|u4fD5 zDCrUJ{*guNlJ(0q^bqxPq(UfQ3~~MAnQR~s=T!x$A9JbzA-ge`t4yTE^bnhe+YO+N zD+w&B#_0san6pioy{e%cd1`p1igovhi`k0bP#uH~vRqvzcRwT!s~VU^CU-HJ<0=`{ z-6E-2R~<+~sJURBTNgSa=khobHE}~5zqt0M`74~D5(9@&OPXPG{{;o7MSTRIvX>H^ z{5TRX#LgNo?-Vv0Bt*AG^iZ(SE1PwzncV%4FN{I*R&S2n(%>d?q`>VJB;I$uhHvI^ zmT*M)sq~d;YRxI1(%cCxgE-l5kX_If{%dtO7l3$*X)>{rIqx&y&KwJ%gtpOq)J(mi@`m6;zV4|=U#I2^G^7BkceR&dDER;RWUp4+0^wrTzgKsEJ5?gt9l=7 zEu(Bq)SY?87?iFOt^KB=*J(4gQ!k$RWIKYq!zk6>t;+ZIAj;Pe#L4Urp(#1nr9KmLb*o*4Pee4OYcoF z2vQt6YSIy)>hlggI}v?Q!3IepPXZj!KW9dd;e4ehgzsm&Dgtvha2nv41P-q|aD8Rx zH9~X*Yc_FpwZsLL=B=+HJ}Hou?StZi3xT+_$omm53=#)^Xribl{AS#A;I`h`7S+C1G z*;&Fow0GUau3uo6f|pmFI08hA^#rS(C3i zcC@=uftyal77;PmJ5~(lXfW5CzBN`&8J27=bY5iy!qQW(k_^AEzAQ?sL5usbXk57MVEoi6gV=FV);Z+4i? z7QBQr;-#YoriB2*<#l7#sFstbA&7$F!p<>JzKn2H^Ef`3*;b4rc9wg*3pqJxq(f#+EhX`V zy+^kvXK+i?c96Gyb6cKsW)(GNa^lvw*IswF&gQsDyGUBW`!KL%QWquh%$&U{MK=WO z#%|NA{Z}=ehyL$rEjn5ys(zTWSCguG1a!9TF5{0iYW8-qGI1TXWLAK*LAy^2_)cFH z#jKjYg`(=J%Qb$yaL`*DmAg+r$#Xw6z|)f%xf44zdME3vS?gysFX#ZSEmVl%{_Dpv z3zQDqE8r!o$=uEgs0h|5FbUem^0)Wl8LVxl z$EQz7D)ACFW-eL5^A9^_fKq2B2&gS?|AsY_p?p?}R4+-#*!o(0Ljn?IEnSwkZsH$n z1W4JKw8u^1D&|S^DSF*vlbdF-yNJECEhLb}s>IQE=zZIoLtXAV35s?V2OXtf58906?&@eQmUngn-&E#PJ%U)x7iuUlTq#7x| za*1|IPY8+1W=mDTd-2V=)n%emjo_-p8s^r2N;a2p}#E#3)2#Wjh^ z0dEQ-iEl^9l&x!PiHwL=}eVokfCDG7U@w`0-iS{2_lp=p!Rh^s5Jj7f;ue%wjXE}JX+Z?Ja zL&#yoQ3GR57dD8uSFKjTbwp=J<`x6~;@y=SWalN?2%&_dl^Lo|HgNd+U><`3kURb4vlL5U352H z$az$)mCU(Z_P*Ros>bzg*%YMcEok`0F=Kig8Mhv*Wo@mF)(uENlJec136Gt3fTV`& zakt?ukao`kMk0%5s229%(IE?CT3#$%jj}9cW7O6Gi6en!Y#_Oen#u9rgDlZC63%5q zA`61mM$nT7^I5y|5aQ@~=S*T;(uo*?Ls4S(BL|IY`+L!I80RV+vDt@8DO=K?Y=1!` zstz9S1)jf66ak7tnY6#*Aag8 zHQk{LW?Qyiz#BKEvnj17&fQwA=B|>BX;jsHZMMCI8YEoKWe6{JbGXZ-ZOeD07TV3W z$ZxZoLl5<1noK-;LiX@`S5e6;gbEDuMr`shNHmy1lwO&2&*;m_?O8!?VCyo4a8!${ z0`MbaUE>$GuAyD=|8??>=EH>E?II-$1(e#();5BV3$-tmRTNCw+{-pYah%S8j4Jf* zrqsJw(hLER*Ihogz~1%Mi=rFp&ZLbOMCT&{g6rq~SjtV_OAxKyTXgpUGZKqwv!I&j zLIVlvd86&DVFD-3p6`yY7*Hl?Y^nzuO#K}-XH$M^nk!i!A6S#J9uNB7^<#-D*2_nh zCvR@WCF9y_bBj1WI8npJtR84fMN8>VkUPB%WX$;OF@Rg@U^3;@ibZHGQ>9As$@0W7k5O1>;$0hYIR)NB&)+*lA2QJj=_oDBc_f{)$Qtid}A~b zP)M5eu>?7?aRXr*#dK>ocN!~6;PdLu?(JrM+B=u7Xo2fb)j<>mozD>FT85tZe2KZQ z5MLOQ*0+frqZtrFeogT47}~f%`J69ndK_D>C*5bg-Ur0v!=t-r>Ws9ks^>Co-jo32 zQpe_Xz9G&w3>M7zo07H%-%*02VTa~krt*CURD$UZtctYhH)29@LylWLtFE7jc55cp zPCK}{UEl+RkrcJq;yK{sn!@DA0Fknx?ca)xBU4`IGkv^67ov!M&}U5oM#DmuDb=A~ zQOk$_V_ZgaxsA|yrqV#OmBq<4XuM6Z#WwbDP5FXm5^HOrR@-3FcUJSFdq^|^rpicM z&-0OA7}{9ZYpWZVegsx&k*QETOvTL<((S9f6!&T!7e@tUJppE4wozm7sCq72_Z&(Z61y{g*<)8Ec+6Y$ zSPwTMs!~e+C-tuFPJS|+YfV7m;{UK=b_hEmB3%Fu{mk7dj`^cE{}oB6G)1>Mqk0n& zym;{~vi`ka`27EmkNkFj;EWIc?nA%!!3+Pefv@#nHUCQEU#(Jw!aHaBTl&>8h8?p^ zC;yb$ukq?N{}Ylwgh4O&>yi7(i2vN`OZwF!@omIC`qeJ-<=@?{6E)@jCDy5T_Aj@# zrHn$jYvP`0eQKV5{mWirRoIsGF#`BqYMAA*ny>?0H%nf%PN?$bqtu>j!}r)kMZFhV zr(JY{nd4p%lxOW-9ijjI&pKOLq`uB)^TmPtJKk-eKXOHx*7=G-e<^{@YMB1)9Q=>v zwW?$I^M!jiyIQ3z~t!kcd+?nt#3Ba-?p^|j?Ls`&oex!~1f!%79z^*6R&ffPmzf33hr;T2n z7Gf;-sQ>eM1n+6g#TD65J>)_^Zv~w^HFWF`c1$nD&QUoQCCH%LoJ4;E`Zu&j-pHGV zB!6xI>E2UiAX_LCo*RG}`&r^`JQ1|+2Iavuo-_7`h}p*@1mx!;fgiK9b1kAzrt>Qz z=F4ecnPLy7g^R!};IViI>|o7sECq)C#z@OTy3x)Uz&~RJ9qV_cs!o2!3|r5Diik%`-#(5D&^s9hiapa`&*Sn5+-AQ;kuH-dsn3-#Mr}mx>09Oluv7MHDPCvd(Mi) z1L>Ly?BK182|8Yb4*@3Jm`>` z?QTODO0#)8XS-^MSDBV-McLD7srTe|46A3v*O;ufE+^g^+SKQV3icnzT8W&xTi#U- zoVr__2y?S}v%&<{=51l07A)H{nW|)FeUj~CYnGbe`4Rpyh?g_qmoswI#G{?F*{l=c zX7Y08M{Q$e%#!V&!p}*TfIBOoHew)_H!3u9w}Y5-3XcWl8=P zI(07^D*iSwMf(&q8OG_IQTbr{5HVrQ?mW9E>5LG=NTLS3Yw|X>v3m(q7FL7A#${?t%ztH3bY;h<{>Y+m?RoLHNKA;b7t(;6w+6LB<4-E*eqI#}*d^(@C=d zn)3tgL2lGVYIFYz4}~&DvlJJOuo8$tZG$TUbR;i){$Q2C=o6MX_E>}Q6HC$s03gO+ z+-v9bt_iuWLGgoXi<+9&iyeBds9D7Q&Qjn*2?WeU42D<{8qyK`pq>EE*U{CV{CZI- zfF@v!xGvUq-3QPTwNbcad~8|rLxBwCttvTw>7235;4@mlH1*xuSG9#L`2q!@Y}+pA zh~S}(Lf#|TQa9dCFE^wBz&G?JX8z$0jY1pTdRbBN+B7?Sg+!n>=W!4R$v|HPd8kJH z_M_8dF=wz4MXBOC4S4ra{9H*?S$#~AykYi*t2&MW zwl#bEvU7PBwev^aB!fFQ7rR{0(>1MpuVGpjx@`r8XxS)adfu138xXgoUsg(IvxSwC zxvQh~3?TV!B@%`gB@j#Wv#n`kNk}Sp=(a}1i91!caev2`{yaa>(KFBTi|0*N|1}Da zm(@qglB49EQStbs#)`ZC7|~Y>Wh?l5QNIcbPxvKNfBI~H&uo9BY=3!bzv<04`5R;R z!(-$}ZS2;Yb;ypJ z*Tk~O{v33hksa5d)fr~?&LrH3>b&EKzS`@GRmhI#(UR{XI&PNsHkWx3(R;x>;_ym* zi0FNan{iH(OjPTU9cN7>*s-QNCX%j1cHG{Re2D0|5jo=Us|=<;+}k_C6n)LJt+|mM z_kE?in`}1Y@*}L_2Hr*V!*%i_tnLV~5Fu@DUWD2?rI4Esdlk-d*lmRgxbh>bfhdkz zTW}?J;BbZ8_tn8r{wcgPUYk6`HZNbTzb(0og=(uZl%)lKezxpcdVl|-ip^vwBt#Zp z-mi8dIuIM1moGS=F>SOz5J!nxe()1uHYnB2OGlQ0Sk*Lg>Ov(%ia-ggtGQd{;!iX# zH75BkS8M*h0K~ZXtr<&QS5BS#Z$WvRmp z+-d%GXlXMFrtMsw547sDC;ew`MQ53OV>vt|dwPE(ZFo!Roe6;FEl1cn0FP$HDw)#j2Rw zho-DltF#iSD&B-Vl35k0`Juohrj0b8dqu-1za2*~YG5JBH8nZCBI|Bk$O8J8{e!HL zw^Cy&ck;P1B0_4Y5fZIz4naqcgza2y#G@+w7ctynl=J;(gDH$ylF|d(=!z^;@L3mz zF<-E-%0jRt9_G@&blCzf=Fxo-_?KBnp%Bi5zJ{vyAz*t!1wC-vN)}gPwwSg0_j|(D zmX+`ONNpltKhC{cddxT0#!NPndICqb@uh{6tsx+(jH{{xA}(7ukkqcZ8*6E)K{mFT z(qe6G3l{Kp%v;~ONO&nM+y%Q^XmW=9Y=qsl_oAl%s7>=vW&41H-*a-(m{#4fR%a}Q zgsoX!l!ZmXcI}H7L(ALIcI~Yn3%AT*1k(65=trVTmv1Y1v2(B;&5MWF$h6y~2v@sM zbvuLtbCsu8sbHY58Ahj8oLco1ZJ*C*{W1)f$==f0mMM+g9VDQ3zk)2kHIHHOAUtm) zBmzRg3TY^uxMkY8RlC?dh^;z*<5j2KB^;@_W%j&!n@U?R3Z5(8-)5(UfKHsy6G&m- z{X3lpn~o4L7wavXtwH84yPSvqWB=83ZM}(H6#vlef73+)-IIv`Zulp*Hg&iC47b?0 zwv0uKVbp{L#;U3PPyVNN692NhVgMEeU9La$H$xOy#V4ub`# zQlM0(^QStc{j~HTaiRK-vsx4}=_DzC2CSgIlRF{^30w7&l>JTnwl;?{i_(c62Ske%a)F= zW7|=~6rfh!!xPFHT_72Ba}ff5;x{NN7}ysp*vn>;ZZtE*F>DQu6h?4cdtt~;H{ZI0 zVs=L4MCQdyZE`}QI--^$)tF6M5C-W3yH+$0WHzI4^DViQ@hbgfBG=yoTub7sOKMcc z`5uGHo{eTut?nid!F{0QK;|Z*n?Bzv0SFKsXez>mXTm#WDVvPUw6zx(qUXw6CT?pv zRFcZ|1^W~p$>x=Fv63)Vp+33M7jGi{i(@A4{ z)NlhK>m)EI0-WyPlY)>zU_E@Cly7w)LYGHmTgQtWg3m_|L&W6tc#bBxTqhHU}eh0T9SE7iUbep9T$i@72Z={IckDLd8n3-E_nEtKt(Eh zJC2|SNM)#!@e&_$CxqNir-w%sy8GTjT9u(ewh~eip0whq@|q&)tGMDNv2j?bC9Lky z5D}V^CpynH#`9FNps~4YSCR{3pu57<(QYa0M1ou+n@;7n(@iyVsIB79bL43VOJAx1 z)jY7W2s;~Axp+_rZR6NhznyQsvM@Ms;c!~*)wEtB1}B|q0x4x}`%q(238i7Ypm~Y0 z5HJRW`1{9cXz1%;WVUCEt}a!cG)QHs08UdP=B{P7tA|?koA^l~+l1d0cRz(=^>bp? zCeq$I09z_f6-ZWW$zjxb=qlv42|LyZA$Me-35TG-2^wml_^Uye0=9aV!3}DOz^`6N=7Z)F zfU9Q~KtoE}UtaF&W`jEmq;^(pC9n#zwwViHu6ebOx8vih9|+PCXj}*t%-O1uc3UM} z?6y{H)I9wZym1?_ZMLdpIsr~hNo*BOQqoG7S0jfF3g>tb=S_~2Ha^WQj@+}cfMD8c zs%n6cRl+!M`=W8u+7xjnRkZzV9DFo1JR&8UPHbIWE?U{&9qM5;e`I~Ot%aD)UXrLY z5^80(E+DOjE-htZO4j&61S6&7MV1Yn=!SH~#t6l=t$r(&)Z)#!j-4IpBnvIB{GXi! z<|0(_mP(vBaO?klfnQx(5iEEpUuZ619JF?Yup+t&T(S8VF1&(vBh2B90cLmopmx%) zQX_s0Jn0GKfyV${{Tb1Qi4CKraE{}st}6GDbnx}&y&3MM445-^5Y$L0LbI)8NI#^mSNN$NMC>ye^q-|Qt%{1 z=EjQr03{`KLy%2-JGe1I(QEVF4LL~gjhvkt2|eiA^mYIdLnVU{uH@;>6+^ir0dP!? zpz#rG31ZD?wgIKOn~Ff#${HR=l-jO_c-|00-8~Yw+HPvXByYrS0%BPuu+LmOEK;0?NU|At$J~9 zf)>d}C0-PXCaoJOT_iVFy(;Bj*s9qm#HW=cB-2fd!sV|Q+^!{;*l8k4%up!AtFN_J zCVutX)X}nvEkEQx71bD%b@J8rcP6gk{@SL%l~IW}!>TbV>6TnBBGdGuc?GkGEZn6E zd7~1p6xnWKxhI@Se9nwYebG^$>XqTxZrvD^@o`^ujn^NUt+c9Su8dE+IWr7I0d4km zE#JB^I{WnRSf!L@i>&uE=)}jbnZDr*-IcF4MC=Nua_GeC<1A&U%nNr4BE0MX6k=uk zWr(rXj*zUd{N{{Izlggqn^Wt$K#^K8Cj3u{JGkuQG;94QMkYV@q1oK+xA(D% zqF2;5j7fYlP(1iiq=~-zvE0r^COw7#PgF{`*ERt^Jec_S=S@PYtC<*;cpHZ*62PCh z<`8q!;Bk#OQz;`7Zwm-P02+&S!V3G3c|1!5NfC)Rj8y=qsj`em0T(0qSIEx%j7q*) zV@nG0;eO)`ja?$*?M@i2&7#sd3*`9^(6-}a?mj6dEt82s%K4Y>pRKK}mLZku%^|!W z+!8|xnaMu3NV7%AgbBYhY@Q_-c>iHq9L+W(J+i5afvTd5tV%s)xvSO80zu4S zEKmte=A$jQkbq7oACL$nA{h{hM&29sNrlO0&t{cM@X7`^oA7zg*%!00W>T3WSo?d%r_GX9l`Id9~W zYhgn&#fz5HD;L~cmgNokB@$N*a?G^@+u3ui`A2-nV8-clYof)$ZNiEzbJexKycvQ8 zIZHCdifn>TiYm3sTUfmlk6N%w=q)6xn~e+^kfPT<`qlH;Z*1+QKtkoLa20jA3)y@4 z#`NN{Su<}qb0DDE3c#6(Kv0tD(&Yo$xV+)>=9#t|*mZxPvrF*+sz<~Ze0nZT?G}3t z>(N*y3=oiBEoEi}h*H4U%T^NS9h)Yk$OMN%5~LjJ!LZiQT<|?NE`PoUynU*wH<{!g z(Q|AsMB70ybMf_CEO3e#>Xo*m7dvYl|G)X#5we5Ao?;t7y=f9Fv*M%70Lx?ET_~+w zouVe>pgWg5v3KW?4~fJ4;oTr2s%>~d%ar~+^}_BhCMhRH=3KQ*f2Dmts*2Tt(MkAz zm#}HkR|ajPzk?bV<<;E>L;sT|Z{)-NOur{z)d5)k6BZriwQ?#Oe%{hP_auD4$yLAI zlkKL9CNje=n{l7YwQu>bK=|;wK!V^x-vL?+?156SdO7qqvB~fY`aj!`#H$)0{n^7b z;+i?ZpZIaP5{qjGY*ZR5CgT|xOKlyc^T~_Ch@tYMEfT`e7(xpuL4B-66q@L`P{0VO?p;Ja{(7Q5>@)c1ALMA$; zrD)eEQ?RHrvJ%6r&|8d+S?ag-uQ5ycSallh%7MrTN3zxP)H<2ACQCNCFQpeqOp+r&P6y!YhL_<}#LJ!et(Bvq8;^pf2@A3ZbAfm5+%@zt-ZvseH) zb3nY6!2=<_BLF&h_taSQcYC-kiSSkp=*|Ot1sGZ?7kDpkp)Xv=i8vea7axd?1u}E8 zU+_;bZ#MUXM6 z7b;p@w`GO}sp|F-8IRP-@~>cy8fWgBg-C*)X_JOg`b7}r=zEtPJ(63%LH4O1>H zSh8(RJ7>U4xDPNB@gk{D>5dB0B$OITl4#~WNmR${?UySz*y5{{?KZ>uM|@cFr2)v7 z!+=-{i=YTjnBI;msSDeF)8e*y zLQ;XbYXzY*${Be?`NU@`fGTZ5T>9>@P<#?b8an$+U2(6e=zy){&CWjzRMXF#l|N*S zmonG}pNNs+g{k>r6;ih@T(wSnJ%l|Vg4O$^*X*fBJIN(WetRthR9?1d z#88_mLH&hi-+Ky~}s?mxi*q zX8EnTz%*+38JHCy86;Qa>#)VM52>)sz!St2+!3e4X#(7AbImIDF9pmHkVHzPQIh0e z`ZSdm##)M)@>S4DT|sg{Alel0CkR7mK?fyCzPX^@g$pYF+ebypC43+g zP|h?oPzf%L5=K8fP^xzsoaMw7-jJx{Zerykkvvf9srdJ{6AF{KL;*X3mjUt@Jj1(> zl|7vD0EeTh6eUR$BZK4umR*fidwCdxE5vEN0F%%z2(Sd8w#KE~X zFzw3s)war)PSl#Kv$OXPq)jXnuC3Zw^(&g2vRax6K|(u3Z4eH)gi}ix%Sk%6=;rnq z;L;M1QN9GJirWRtWsgfqkf!u}(X~Rla&d?fU8Pbvyy*>V)8*LO^Eh8%q+sGf9CQ^f zO$O37wLJ3;Vkvz&{6TWf7Ss0ire=q*qVFarcE`$^jzRg8$7LzKV00q_r_Pu85XENSD8 zK6jZ@gmKD(cOi@O$bZ*uGn9+4fiueZ94H?!!6uL{av$I1%4hLQ*l)*3<)l<&fGg-G zAT(_=sHvTUx@E;-)sR#+y?ZRC`g<^b^y(Bq2ztw=ubynAlUe!cW7#X%8l-PN@hW?O zf=cz44BAD-2^aIlJA=gA3o>>c(0NIaos0xsH&sma10=7`H$6PMO&97d)Pqvrz9$I;1Py?HT>;*^9 zpEdopXFiOSrmnFmcmZkYi8!9xSE-%^REJdZIpSGew-cA#B=StuGPcl%t;$JZ$z_(6 zPsaqi0vp^B~;u*!{$J1i;Dq!DS7GFSbc{Zps;~97crrm3BZSEU0ID{ zk5>yWpyVf!jLuV{0T}fTH6o$?UQA>!~sSUbX%PwfwG``&PC2{+alu zwf9bw{e7hWN$H<7X`deH?}W9g#kfme|GfGJELgqg)BpDKT8rDw3;QFjMeL4+{btgl z^_y4!)4gghPV_J6hPCG|ndR1*7T&uGrm1DyNxrr-7~f=GqZg&u+1~B z9c!y?GpM~YrVTTrT{EDqd+Yu;DrcR&d*;Pk|CntD<#9^>OmrWRbt~g@LHM##z9ICl zh1EU5mX+`jrF-t_?d;UAc#S=}@{RkM>7Q_wYxdsKzSfElv`(JceOlPlLGtX=1uLIj z{cBrQE7mJdYQU$pHPhOKsqHv4_Lj=lk$TpQDrSb-dqBl2^WoONJ9R7P8LoWTl+T&I znV4#m<;A9DaHeG&r1>$cSsZDZ2Pv5G>0cX_GZ^hN7DX$^r9hnPpAhvc!;?Yqx>CF& z^sfe0J%QGh;2@{J%bNY#NB%<@{>+;Ho#Ma5P(Qh`?_MUoBaeBV9`WWq;Uw32@$TNH zyCs_ILTjhFu8E^L(T{TZ9^{^T_|l60A7;OTh_Ak!=iT}cslM zO=?#ernF{|F<(N+%=P0lf{e_zJM;cbzbCKpxlnm$%>15U|I{GIHY>&6GZGl~8FAl( ztkwhbU&-x#&$YZ7uO04xWAJ}C_Op9?1i^;*Kam=$#avzw!!75n{jbrUXE6DkZRT)a znYV>`&qr`vd`Mck82lwtTOX3AKLq!*Rku~8?SY~z05lI1?$^u zuWJ6ip*pXY$U<~KEcPy&>We)O#og8e?zKJw1MGj;&sc`Yt<7HrpVE2M;Ip@@=7o~1 zbDP_3tLHDORoA;ACl!b?%1Oge<^0>RH}SVgcu`{wwNq!l{g>w_&?v0|r+{oI*Q!u>T$ zxT2G3i4t@b|HQu^w-JswVfZypqZ5wUti*&~9I3VphNUB*xLQk$k`(ATo2aXX9U0oH zSz8p9DQg5JT!DtLkaC4(pc}!=SF22kTFAq3Xs8+$JSnbJXEa!V{KMirrCUo4i+s`2IKA8iARRP zNFo4FKT%Ng!K#w%PX_9)Vjw2b0nm=CVv;1$dW0rmKCXjewN#746`dP}{dx`vCwq7pf^lNqhxe8RldK3P_Unvj2|d`;X_x-T z7Bu)!O9ysRPwp)A84 zt`&?B%4)@W2wWA)tjLvmj#-4!)v6NRC2sA(K*2S84}-6O<;< z?gd#Xf)dMImY_6~^24z#h~SERJEFi+g$$m#W?laN#+; zP*y|ppv7LeXzO&#ERl%|;h1GYDpJK+kXhr2Q!{Bp^3}VK^y>RufQu$|)NW{0A(~8)iyO+IuwDmT{uaZ6(9sWJ#ygF6BBvyx zn!^zFnJup8GytP`cRuEiVZ*kfaa4pRs})4m4R`IRZ81m|ERwgy6R2yZ#Fk4OUXYbk z;h%ZEdop5LkJ(PF7MvxX{2t8Tg$FroKv94um~6g@SYjKc&+Nn`HhqFrXitJAmSaymjM zu2{#$O*kF;54uD7@q%Gf@AFNFd?ue#Z0=O2{dmijCjL}38WMu_kXd`6+Ef_ z{Z*8uS2I%kPXIPCcbci!_|zZPF8y*JCXCc*{xeGao7qvL*ytzxpTEhQ{F#0u zvOn402T&jN-AQYb>WXxU-uLBm1(#h}_oCCc3l}Dx1}eVSSYzn4?=w~BY&)tQiwYHY zLkZ~L6v$FNRSn;q3vZ&?e=kWN6#T*0USsIA?K8xW?+=RX4StJG<%5)!E#dy)m-4>IC0OW{MzdafPT!*6GbQa4P z5|uq1cX-mkk=O0+gUpaLTYJwjLrqG;nV0dfN)uofc_vF-QvSrhCVAPrVu#Yf1rPsc z*S63qDc{MrFL8E4T!T_Ax59}?0rzW+vPCoV+aq`P0Wfj1Q9>hzil0?`NI{S*Jkv1Y zuvePf`mKu^cWEkF>I;x|<819B;cZRxU8;Q!9w%~8a+6Z%>X}B1K=yIEp|$U#V|X*q z_w+w(P`YPcX`4`?NSUOBBodPSy*_VY!|Jwm(5{4U zqob%ZA+IFb6jG(pToO>zt2xFE12HO8@bYAGX|BaW2m6l84fA@P;J`Iylch*jGn|oO zyd5c_?aHF`)IE&IeW}?C9vPVDB_eknnZr|e0Otsz@prOCOqNYJc^z4!#>-;M5Q;{7 zclK-ZMcU7wPvZ;`$yTBx&RJWxvWi+#*TJXlV*~eMP?aHeK z7x8<4RtN)7MKiXkP2Qt6gwzZiYSMvfAb-_aI)d8-H=lG`6;Iu$!Shorvh)-%U?UP( zAt}gJBp+*oBO|(OedYC0rQylc7Ahn-R{cm4@*_CN5_eF9%;}{x=cvL!XY1KSz|8;z z>>v1qj8!Q0_Md$g_zo-(4ayr6Av~>6xcbC&7FOu@+Q*`aNbUnnZQ8?zRsgoKDko%5 zE$AnYEd`RsM1;-(lf;*oO9si-IU^G$$7>d4W?~6-jU5-ZA-_*(fD`3ZF)bW+uEJEW z*sbjRqAHG6-=mTWDyjb(ljfJVX26ykO>CGGsv$_4(zf?I#tiNknx4~%q}ok<-3%%K z6_TDzyuB(#@s@7QbH*ZB*`YofjeS6bju*1YroM*JWhEuLKR#S5tO|uo;uCm2Rhw%? zN6ps|#urDiOP|0?o*mL&`s*ab@{jf%3R>mQRhonS@l_0Osp$|2AwbYm-f`6fSgIG2 zw?_E8D1?t_e$YJ$8>JiTc{YK9UMUcx`D(l zFD#bxSrSF$?eMX1GR;%2G}5rq@4$dz`KNm69piM5idM^v6(-Bz6u%$m({H<`uy($lrZ#60G?4!VcR@3N*Gv;M-%vAOVyw0${6!* zgHvp&T&PNEB-23%3Me5x!5i`^CSTZx?WM?z_QUz%P~D3uf+_nN%dugKf>I!jD9w<) zraaLVlR|shlkM> zN&9U|@-R;lo=IBTVzd}NQ^`Eb8;TU|DS5g{S2_qn|2=BXJun_#$sQi%5m>aKI0MyL zzQ9zzCn=JJI2=>9K)69lBKQ$3wPD^miM6+9C>GLnAgheaZ#xbl~Yz zOMz%k=w$~(3-N(gaRi#;ho@bZtzW>btD-@lIqTWGw%L)&T(xyp$`g?-1C{@Ka>>bH(Lf+#l&2_ISUq!kE271VEvO)9Php+F)R2^Est4Dd zmb}v{nr6r|C95QE_yHv2id2}^ohM-{z79tt;fZauTpn8W9;@pJn~W;%AJP(N16?z3 z7l6B-y1+*Sl$8Lu!CXPt5bH~%YSoq!B}gIMIYKVn@(9qm^=B1oNQOj*O>WOh6JVD@ z-G;+S(Bb8c&~AAQ%FZ&%94L9+#GDCH=@j#~xfL^PsvER% zQUa}kmk8>-iEcl%uQ}frh6nIK`vbDPb)J7FARO&YGalzw-#O+Z~ zs^J0QH6kpzUc!CxcDb%1DnYjqe~WAi5Q;_~LVfGQ?dhc-?Lnmukt6t%MZ?5Ax1Nzi zO7?KqgDMnxB`n&(s#mc)ZlaCw&gvot57^uEO6juY^oQK5k1qB8IX27VphLn%m(T0` zV7#OYbGUo^OY(L6oxkKv_n^7YuuI*3DS6_B{dr@(N$u(#U+5)O8Env|<<-@K@UHvuR?s(=5QD`eb7Clx(vCejrx{a$UZA2f^8TNH2$egG4I z)=N(TXY$|q_}z6*(5f3iEGue;{Uz##9A(RNj>kVn&b1BlR(?u;GEnPtA|Tis=I#WI zgRZ;UxT&>Xx;xmiA#X}c^Z0J!lTpoJJ?yD_Kc=$RLWC!Om{l#_TIro{P_Rl6s#*xL zrTz5bP>(S}Pg88o$wMFW`^l1kGD4CqTibw90SBNemp9D#D2=X*bfq-+kU1!>P?z%T z+)A-x_TzGf*y;&V=J}>k)D?v}t{X3zhUrNhk?+vZVHl7zTX zy}zzs@qKsm+T+?$1?yN^f}wYlNA~&|2aO@JGL~OkUH$g?7YZX)8agEwFPk#QFZ+*V zg;VA$*ShD0E7zlbA)-L2J0Qp^~ree?8GyM9R4Wth#(ep>tXpE`~g=yM7ZU!GFY`zMR^kjTF#X?kv z9Xa0pqy!KjYmO)f@+6`FZ7Owz)t+N%3tPJqwNG%f!laz_F6|LouvQ_sp(8xK`kfUc zm?=<>z%C9}^t2kdkSpx7Ft!91D$ypyJt15D@|*OaY1=?fE-dh-mA*a}dO{~PFs}1UcD{d3k)U~%R9@=gz7(f{lCQa#&Xx!e&F1t4f zgo#<|6KPDyqBb{?B}_UnXtdRiscmD3E2xV&uIvM4D?(*0xCud$dDIn)4i7;a8Gsh< z58N6TB$ibY0k?R#*j7ue`tEFst=3ZN;vAqKK8YxCz>_O-|7M#`>8WG0v?;_n z8tgPQH;5BItS>y(OEXF?T6Xm))z@{VhoOrBuIdw0!)%d&D+daSU~gOLJbWWsvZ4Gb zdxB$qWJsja_BF>NRNFCa@R%q}jP<313|&a?$aT+xwL|3(=+(-WH?aW$j`V>e)o=)^ z?%4v}@C26JyVq!g91HkMvlWZt2v((A&}{F5kA*;3k&BbA|~ z%My)kNbf6@jkaj~bb^3D5&}oIm;2kNVTf8`eoJ2SAr*-z$Jla;lX* zmOWS-9Ft)!DVE+WGD|jw7cF^{dSxotOP(L&n^nL%wLRD=(ZU&}BcS8qLe>G(q8`n&?AvTSH-kB_Db_sdouwJMfcS$-f#>MBh}fN!E@ zlrf*xQ?kjX%d`?C&J(r;1VoBRHHsZpBR2+&HX>j(_+*qfO!EoXVei{Mwbkz0>{&?W-Qu}I5JM9qTqal z`Ev~NwH1$Ni@7W?Y&4QlyMn<$m-+=_@eC4xFa>@TqXlFn>2k4H>jil5bDOcGNkK)iI32LiWz)lm>gK4@PQxz z8pK4=uR!ldFMB^_g@Yo*-OV!ME7uGL3(q}QuCcawgTpIcfW2us0T+oaq}PYFCBOxU zy{VzjA4`>N4zdsXSlF{+T0ok2y)v6PK&73e!t0>OQUkE_N;&qEx-xv=mMlbA*$q&! zdM!UY4!?1=`3G&MhJb@O>7fh6fUl5020^eFSUzZEr8gD?RF)xr1TUZ(`DWT3B*omL z;I`eTl`NN?px6nAf~DswkaWprf3Qmm31l*1JEa*~pSBES4`+J&WstXR#hX~#s`iy4 z@HnniqvM1f*8rF1cEHaImBj_-m}QZ*k07*1LJTMb1bt=E1qg9TIu|5YIYxK$`zS$$jr zgVh`&ioN|-|9L9*ELuev7Du+Jm+S2Xa;?WIRWtyqLF(*#uyz~~G^&cCKn>$2v5KTD zWe_aseRXJadCsw=d;R5O*_Wr%ODf#G*3bs)YLIDJ5~q|rsW-sq-GTDAt9N4>0a7Js z$ zsn^Qnxoi{(a?U?a{)Z{5Tfd?!I6y9&#@cC?E=a7`6CB%7l}`$~os>kz{>p~n8^;(u z(#I57q1<3qICXpCMO543oa`aY#R5seDrtd+&Do0gkGX7E8!%wt1BFtyNj!l@a$v4F zpf;@t#eh4QRKlvRgN`tq4A^PW}_=@KHX7{Cjj3lZrutezgvXZ^+y5K zxT|35n?S=74aYUKI?$Fha;K}f2E{y~V~*fBKxlw2kF#bFj^P=yOR?hV0>^WeJn_|` z@>Q#vd11v?##0VZtHtVuRz00#PvtlVHPG+x`&qQ7QQcDh$VN)Y6;kwgTa%v2S)Hda zMqm&7j;?O>tlNFY4MUfc;UEiNAA+I#S+)s{ne@$t71ybH`3w}DDs}BVICl8Db@nQk zrDYuIozB*+W7DZ-*FDtfJ8E-&=zMWqdjj1%@q$b_+x1n`j(KET+66_Y(n%&qWg3V5 zqpldM@pagOv9a5VBqdKL25HS64Td1cuZM@z+h@c(lIhD0$A-9E{mCwZqic`aS1$k* zY+B7niRcgQ>*{qw>$R%{seO6B*ekxkTA57YQ*s{$rKtES8g^|@gw#7+XRGNb-+X_) zCGxkdsM)@R|I!ddB+P!5?_OK1d4`7)cO4L&@>eb3O2_MJ9CAzc&cM~b+S*%^oF;sK zYB=h(Q%L9@@GHMR>unFDe=5KpR93Q~jq(2{Z{*ATo4@#=*H9LE|>q4GI#uKP=63a@9iLeDjHAoPp`CNb@UTc%P4`z!inx}R_c`}8r2xkdRe`) z+r)1nlBT>$TacxYTGggk2K9S5kxdmEfw;Mm27) zgzv)Ix)$a3`il49ykB6wLhn!~egL(O0L2eSD!0A>m3?h1&}g0alh86r=8jN_T6i_D zsHPpBQFeVRHjSlTH{t40@Loip%enI2zx*IM=MlzOJvY?fiQYpx2tz;g-mNiTST zs8!ZfSmp;6ING>c$5xFet4zL_S!JaaJd%GUNGfAfa!?8hL=>OiIwVe-o>vfg>Bu5- zqf#-?mb@Nhe`#-|^j{ERt#~uYmlBEhq>GojrZqQAV=;*1kEJkavM;Kg9km{LNYNWy zgvs+q+@b^ZiW!KXYr=(X4Hz`Gwd!7I&DBd^$PKN3t5kG;(~YQUE3qblW=rYqOI}#v zNzd$;)Cg8JuVT$t)2>lD;;NbM32kfnTf%Tc&orrV%!{1s^e(C6Ro6Pk)I5+#eT}nA zX00H7)073GWimILT0Wa2K$5wus_a-kScUqob%=`5Eq&RQiEZ-AS8C&rUY3Y~*DKR< zE`dXr_Kl9xg5K*5YJuRgmdW{xAB1KeDSpBX; zBpgg?yYAefneLSmjRqRob1p{Wr{MdK?Ok_d&0vU_gs%!9^)F!Y1!yD|Bslses7PCM zBmTHKw6-8gN2IQm7%|9{VXf>dLW~B&gDwL-Ai9#hqZP)=Q1+G#;JGQHvbELX-S{Jw z&~b{Kaz(#iXpt>QfCpsWKei-e>{rBUKiTdog7e(nZKI$fE-+cTT;fK=K={SDnLR+ zwUs0KU|9@+3?ykP*X^dE!I@kSQVj>me2@q~$W*hpW!QHL><)!aLboJ`+^;!S*xFb< zbST>l9V4(@L9In6=VKd*p45;@W$0*ndg94UC1mgTU>~%={f;H4oPm;L+HAY11;M3X ze$@f^h>Wbt&n|%T4!de1*SV-3i0^2!p!}d?QTI0BNERnhTBebJU?Hi0wLpBp0#927 zkK0K?=a*?WGN3=n1m`mL&RYa7#TpR#~=^fAvy*t>ld{z=&ZpKd5o!dKkEgFV`5pexx94Z8kCY&H+_E*XL^G+LQ#^vd$5=gG|=8c1CIooZ9ez|{XW|C@9bQrbZHpNTPNu}*w zlowID%f?(T)YPc{xev0if7w7HHtCi)Qu)3lGcgEx9NYTJK8C-8=yvAr z2g*wnsFn~7;?(afVBTM^X$Y9^rApo}AyJ%I-Go?Auga*ZZsN!jx_C)xtq`z2zn|_F zX1o?fU;b^BU21ekfDm^ndDxa!F5hJ!!k~h!`uC`ZaQFv%mv6z#-9Ss(CY+32s%7o( zGv`xcPv**>R4MH~HQ_C!m23)93Ww9OH2Y+A1(BsS?h*Z!?g{$Jz!2D zN_qmEkY7t#6t^1sMh~n%Zr}1{|0Zwb)&5T3=u|!W6-0D_UV1Vmm=pi2#hQyi*Vr=$E7zihULqbf_7BpUz*`TtI_I!O{IGt_%eD(pX#3>J zgdji&F~X{j1yetZO}$%FbRs01#ryyJ+?hY5+_A1dsH@+mb~GtY%YFy%KBiczx_5%b zP4LjE^K)&B3-?p>5n*+H?MJ01j4I!M<5vD6zag*uXQ*a-c*}ZW>g+hv5AJW~bZFTd z%&!v%O&>nSQ%4!(5npT88vOamz&Y^-#zU#S29qtGgZof+dJHr#zWK;LPhNv-d093y zXx^iH%4~63)n(L2siKw|@0=>`g?$nb&Am03Fvx^Itc8&Xd?nf)==5HfM)dISLoRfl zUwpRO$>1d8dE|CGu($$1;OUx3^)Oky7&?huCKfjfACdC5ER&}DM(3s}x%&8azsF?T z(M{a0{&qc_nvSn88R}(ueVuwFpk5HCauwiz+hb9=CWF|>D)!w9zpR@i$dB4?`X=+a z!_LO@3d`4%L8&ledYCCEty~iXE*380$I9fgjhCjHXKcT1N#zH#bB;H?$onO8lT7on zYYo;zd4a_xFfyQM3g&t-#cc=BPg5#h2#y3<M< zWHlVA_biGJ+y2x4)NnUKdm1ZuRP{2dw`g$sJvvS2y)K8Q*wH+$?@UFd!jk~W3hX^i z%a(_wYSQ!~y^N7tP1w+kq4||$AGI3h(u@lx)xZOy_ja*XHZrRnV`MC7EE^^2#@1I` zmqm-^_SA&Ybo&udz>S4AsCxHF(QG{?^&oC-@@h1G0yWL9ixTM(pAXo|vcgMmNXsM0 zQB*3ig_JZEG4tl_Y{?-0*JX#Iwk} zqpaE4F0ihP4jetxS{rtwH>zR2u7hOKSd?JBC6Pswe#r{f_RhVfC;%?n5>`cZZ8Lil z4eYJ)GUBZl5Vd44LA~m)aCUZ~>~6YwC6{^Y<*TGj7m7S9{tH*@ETsXdq@sC|705El zV!Kc*9ku%E4^;Jf)k35hBMwAl2= zuS#+Mjcw{RPj>}#&XZpdt|n~*RX7HfT&B|$bi;>a4kx>Uxd^1NS%ic=dC?140l9jz z35AoZB4Lof9`5C>o!1x_tV1FOSy8M7uGQ^>aQQ`(7BA!7$v#I79_P2&he5vk+${cH z+THEJkcY>+l=wh?=#A(&J#28^%_g-wS^7t1zNiq(P?OU!@}(Ishc@ylLw8i4UYQWSWkCtux%%iWs_j- zghTjAd<}{^STWhsaLGn?l)VwuzWutkqLEb#%yFa9FPd)(zxu5PAAnxV}a2OTrnDr zhoymeAedGvi%J6ln9xQUD2GKMp#YFjDhr52!Qh~5Boh*e!{Q*YKq?q11Vez(csQpH zhr?loKx6Gh?ru(#JRp@}dyKyYUf;PBQ`=yxwyLV4 z*@)PHaLoM0;V@d_u%G~6K%l>`nT*|y(E$RJ8S;LR%Q2tQ3tz%Un7^0V?oL}5rLz+Y zG{xy6|d0rL1uFBnl`-K!&FADjade^oytOkbp zvlMu^ubYEXT*c`?@QMv``JTFuK5$ur#fz=2kd7r;0&c^=NsG-O5(>YEF_OO5b7e*yCvxWFh+)b z1&V}(*J;(&&9{mOL?-b=ZzzVH2IlwejA0S{k|x7gM}H(d;%%E))hkxZ8v7PX@98U- zw8_D2%ft~UP+Y7mahCA;n?jeONF^ak>p3f#x$uLS?M9IoXMlhG7~X;*R#>PF7~5r&ssrw_Gsk;A*PEkVF$I{^Mpw4p~e4Q%F)RrgK2Z+JEUl)2WI#|&3Tcp^={WHvgHn5C2c7#0WA6T*w@!tbzTHx+$kuBZB$@CJE2#%;EGP-0tdbaO7?|y|TYc zNOX8-xw;ePimoVj@bjwG=fJ@ls1SG_FO+s;9YT*iFr${QJpSecMYn>JR8ietZDIdY ztL8B7kTI?E6?%=0ZrwKry^pM|@r-&As>{35m4tJ|9zXSE4>6h}3I-COcJ?t={s`BO zHLlkm_u^?)%F&tvG4gf=;I?XPVDQ$S>~29^r2ojhdjj(UZVT=`ITd+iNXANm1GlW@ zd-26D!$t~v1WePXO*;7}Uns+iFimDL78{#N+ucD4ctxuIL*19muIl9CGEDiS=5>$W zja(7NG5d=3aBj@29H!0w;R|3uNiF)DKTSrXi#o~)Esf!~CA?Ak(V;F`HY{JPmv6ix z*-m?@apH82G1ZvHN(gUNZ%!)PA3F0Hv3!eK6@&1U>4v2WZ0zOBET?HODVI;6`jZws zaHTdZTD=sayQg147uVaKS>B2&!4y2yA5vuFuRN<7yt-Tq$777cezMX*b~KW)aI@D@ zV%mBYhLo=)-j~O+?7l>K@-TY6NsC{5xrJD1Dzu7%MrX&6;~&I?;!*vIgKH<3&iJv7 zxl~rfW~fjFsZ_)_^F`{i%Q#k;7xUFDK#x)x7yV08c@P>LU>?S8%})}y(;~SlMK*I2 z>KvH?cLGn0-r>*!2M=i^gw`2f3-RT}){IqK8JEeY|Monv|Gjwv`tgzk-ekf|=Czi@ zu42l#L#)nD_E^mIIT#^r=EfJ;y_iwwPHJu@v!DMMangQ|+wqGS zEO$auH{%5z9=QMY!~Va2xDqGLEmDL*cLks0U(n(&X(06?2EK?-c#Zk44yP(L=3Q${ z7JH#w00f69KT9GbF>$ADFCs;SjglEd+ncN%^EY}#NN)__GDBB$0Z~#;KqNJZzhZZk zJJ95vz?9Lz@7a-PE#ZFf`xVH1sJH4v!``Em&cspYIKl#n5WpzBgCGEe{k?oSKq)m-4Q5Qmu}k5Pdqh6~VCM zg0RQ`^{*uwfdoTV8Pyyh&*fZ)0OVR=|8+$ZkO_u{)CC8?p!9}wFvH>>^_1P{d~*0T zk>D!Zb-QMDxx|Fe@S4HkCW5ZF2BO8r&Z^VbI8V$~m@y%CA)T+S$~l!^N@tbNBWsp$ zFbIC=?K7|6s^Mji8Bzh^8__asxr59Mv#olYdqt2^?%nrFo`E4Avl3Th{_C!>RzH$U z}|(LS)P2WZCE8S{(rqE8rs-6zl02c@#7!nV;xmNc%WcD8=o1jOmn+Gz)X1}1;y zWz&L-Ya7~ZnVOEf&haQ0ye4G&eZ*SF>aeoI#sSA^RZN1;cinb2uCC4qyJ6`=a8{v{ zwwSazn3DW5!xq@gy2NWi$r}jp{iMG4AIO6udMROE3G-P!)&VC^b_3O-_h!U1{lxRr z$cTajamof@b%)*f0-2_y8lml_;nyHMx|h$Y`jmc4s?eaYDUU4((@_Bud>I zbz0S}i8g3p@to3u9L`qCtYps5oi8CBki{6DfK`HpAr+mW`!%jJm9ow+B5{!58HtdH zc5z|YAwva=k4UKu?HbNz7FjOaQh7U>UylakD%={TUpKSj7(u!F?rh=5BqPgJd4WOg=0U|-Qok^15&>;SK7G;%3 z>xL;*~CGvndtfGr*a_m)MadiZ*_=MlNRxi(b&pYi*5{dHYiU>KM(9bT7D^ zu|3)v*3}e({}{%vy+;xre+ENu^do$$ohJE%*qJcnOFG^sLVx-#XL4MS2L+hM&b|E6 z>1S*B+L7C7VBUu4Ez~*9u$*#mgmM*}?{`&Q`ng9k0Y&J8h1w)v(_544X-n{l0U_() zwvYtAs}d&DY+m-x;$qH)DrCE_l_Qh0p6qAyIo7aQ-o{B#qJ8Dp0=oH|!p(D9&dINU zh9r~+y9e`FEZ&#~Ampr);q9!&)*jW@LiMR*XVn5s-)@*`tfj{?^v1Bx(M)K`8}{9eUYnk2+x85^jbP=5Oe4SaDq|6qc}TXIHJ)PM&*WzuA`>5{WQb zyt^4%^|r^A(CeFsm%oIRkvQW-pr&OlZ?tv!cr?=ZR^&D zz1DTFQgKoUF^1(;uB6cy`Ty(A{Gequ`dm#q({S65EGYPjtotm;;gkzk&^Xlc!x zPpb92+R0c-QUFp@e7$IYhUi|mn^+>oIEo<w!2?SvI?jic}ay=Z?wWT^B)OH*b+)Y+ zDO_h>v_F*o^SDjhM78UE^_xtA&Qmaft^5G5TkoS5CSlP5h@g*XKA!URrT>Ka+sII^ zlG*4&nfY5@w?5E>sjT@L4+)$XDQjM~-*W;CMIkRCk*L8xHS0qWHeR&7E-4`xA9j{j zbam@is_O3aMe9@DfjC%GnPgTsto@f>v_EHSGcnf!wo1gkYJUVYc3E2LE-^)vB+JEo z0WVsg<>4~=0xG0RHe6dK`SR1+^|te+Lol6To4L>^kqso%PifYJ8k*~MWSCYi~)!o#zJvDF|Je%-1Cy$XxsLL!nhay~?0Ijc;Bmlzfzap{QlU zI8;c*gppO6+S%FsRxYe`k!dY^8C)7AFf-Y{y}KWJh*e3`LC zr1GPtqaN`FFv{le288ZfcS?i)Cg6%wJgNNVNRo+ClsZscb>n8?!EK-QD|4D#ND6fb zWVO$?7>tD_+e6Gf9mr}*p@RB9_|W~fUpakJA_+UVwNcmJ)LL?Ps(P;J1P+p$a!wZz zc*e|j#>7HJ>-RwB16=_p2_u$ls~^W%e9O~I06vt0*Ib`3i@=sp5eglXyM&d1bd@(1 z7%N`(8_?q_{;7EIx^13vHkjVXu1EuCmIUA&5t`E>TIH0#yHmY(W=2a%=>?0J@N3 zlf4O%>BLV~nD_%X)vr+l7T&hv1V%yg8wyTqpZ1h2P*={?S2rxwNyQ8vFTLjUlvRAb zOXr=Z=rg!!<*bfoyTfL3QsG0CWLYH%iL1tp?&uv+ysH1PnR-r*u%uTjndhMcm}_oe zJ~uM?U(Tw>)M+k6C3xFWNGt1eYUbC*?1CFa6(~0#-)%U=mG`z+&hfueo}>xfCKW`t zB%Fw~s=np(JU=LnQzYWYZnEa}RwRd0*iPtsR5ZB%m`Pdx-UA*rDyE4pHS zk_5>H-AR3&I_m(g?jF^W7SR^bTFs+n#b;?#CEk|-F;?o-3+!|+P;{o+8L0wVbV_0d z(&~Vtbm`NtqvT6vvl-x#qERE{h~$FLMACnN_GTZt!8hd+hZ@X`#c}Ghb@#N0ONOm$ z$AALLvYDch?Lc>1*jl@QRBNt!B7NvTAqZUn#8Qd7O2z2IP$Ojb{AIABz5M|pini3x zM5Q1tg}0Q|^B2{OdlIrV@w76ovGuX3U{`EpX~q17iywLap!QR-mkV@7GtD z#~WibzZPAVy_K|t6CkQmd$Q&5zKj{%a;iq@vlnjH016m)THorUWT zZ?3N%U*_9mw%%jqmHV@)q3^0h^(w|$zPi2-mzzhJ+SGU-zCd8M1)2+4mR)S$LcW*& z@Ce?)rv=V=XoYbs%QniY&i6Oez4G~+5DQc*Vr6JybI_fr)ztjO{ zTQ9wcIk!jBRn0NF-YINWd&0e%Jz*QRQ5RQS11*@zjTM4~f{~>^FDi@v+Z3BxBuGtl z;cb}C(!3KGKd-LHvd5FQkC@{nwV7LVNw=1jvU7b7;|hO;9*&8))&38&~M4eSO5uC zN^a5L`n};PyBoP}*j}vdCh(%zw9-bluF63MYWJtUw|!`ibE4_E@7TZ?dtb10p9bUx8bd)$0;d)-y^1*J+8n&$K4}PvTI|SqKh0MKZiHfwx zUp7?hKElNa#sT{Z;#HT7-dgp&Y3TdRJp{=xSbgzx# zELrDTYyU)L=S%lp-s?vaIp8{#0*p1&k1qAtwsCT-4A)sIQFoSv2z`KXDWb(Mdt)iH zs2_^%Up2^iXa$7U)({j5_}(nUB36jSXM5yu(q8vs{6JNafXEU+D|oEO+pC2ZGJ*P0 z0!!blOtva;2*U?WS8l#zG7b~>K#K+Mw}D$E9fltrX%^jm@8%G_=ui3I2`_!H%b;wi zGeA`xeb0!lTULvu2e>kf4%o+1M6Jd#=ZT<* znaxE~t_@Cm%vOlMB8~uv%3Su+mT~Yw`(E&|nd_??Q9_^&_QcpErRN-Tf}m~bdt!bH zwTMj&&q8sb*^UT2*(_0xIFnTi=3v4%IL*{DgEgYy+3ERj+eSFdLipU{ z_j)2nt>{6Qi;dfpgCaP^UwdPunq`AH9gfk9viCzJAeMKdbb%`>RLOr$+npwxKEJ!4hzdcOp5&r6?GGiEk*)7epkC>s5f~o{V z%Dx5Qk2;W7XpIKJ@$^!a z3Q%G!T$R`99?myxW=?&Z~d^_RiQtg+*TR={(QS$U^8_sj=D z;8Qv91Qd5|mtHR=I?{8E+^?4@MJ3rTJQ`<^q%+d@YieeB0M0vdSwy_CdSbkKJ5#al zEBYWR=GFhA6@zge`arW_qS>uPGykMk>VC-x0uo_iNTY#vlEGy;*=i&|cPGCQ}13cpo=wLoEY;S!X1L@O>#A)|T4^9XV+khTi;}63}dO&CUw-u+a6|;}L zZ7u&`gEZ;zfd_V_-O%s)Q5ms=Txr-i@A;k!n>7aH&Xos$$5^b0)4sM2;CkZ`{&BMeQclD{zno?D zZzKM3v(oTS_BTBOMSqPk&oyCR;pQvKj92-`&mRIm^N*e$~Z8-G4AZzrV zzo)4KYY{K88!mzh?p*jwog98zl=KdDK(0(Lc`|+cCa@%tBQ=|@lZ;HIVAljbLh@XC zroElR1-r+X#IH|p8%9EBikN)_v$(Og6m1qbY)znjbA3@INg5l*Btc3cFfiPS__4&Q zhCcndj8Gtkw&R$tVp38NQr?G{@p%+1+A)HxW)3v(F;xPH?=4F+X3dMtc?ANa?9O+7 zbmu;(6ZzApR~4AO(j}3%O!vA*b)Smd%?OD0WP251FL=~f5a`0R?E(mP1WFaA@@~L^ z?I`Ps@~du}WjTSo_HzcGI`BT)u>+Zw?oJ`6&bsN_Kcs(>qr7$QxSZuU<_AY*)>26F zfzNhxH-0l`Gh$Tsi;131u&_Q6hQA13&;mGpy&kV-mCkAmMy^^%`BW=64YG$M`DZ?U zvVpI{3p|X$$h%Z;RH`*%2bi;&p6Q$YhL~#Nh4Ou;_OC)6g&F-l^3Lcfjt#l2<{F|W zILgSaR-~1)DJ8OT*WzGij0-u3QFL|!#T@V^B};P-!JFlV_su$y*b5Lk)V~QHFPmJ! z*cfT^Ir=mOid#&!)yqqEMgX&#Jh}@x>q!Ji3m08Zkw1L1$<0w$S)1L#K03L00VdOl zJY$ODiu<lh69LyVA?Em^+EhelejqcMp{MV_H7L3()oU%Yol;U4!J1B_w^H18 zS5?g|r;>^#>RYG=TMajMX{`XW7k0m&pNQA1vgL z8JY}8=q%-Y+<+<+&iI8>+M10n*~#*BK&4#@*a10gO4CX#7tEH%m&qLhy=3`vC*cnt z9I9{tDfsW+7)WUV{@9E|m^2XJCp=jMiw*m44cV4aVnBdyS=eOJGRVKd>yG)#k>QP8 zyL1k?b1JT}0&;;2jL*oR4jhP%xfWgkRDc8a%I7+8P2hO89(KuSaLK|)0Rog55QfC7 zs;ekPN}=`)AX%W%Pymlw##c(~$O{PXDB(Y<=aRrDFcBjHYqrO1iSz)iE#tB$v6dQ9gU=5xYIX2FM+i|VWU!H$VgG&f6hdtXk4`x6N1#dS9 z(qZstEgHTQa0(N49nR`03xPYL}IS%rN*kjfvmDGVp;)=Ww&`BL&wSt;`V@ z?Z}qaYNg3RSNmIrb#5TzIJNeP&23=Ap-1+%wG*RYXtnz(7Pe8K-vG7$=8J3YUfr0B z{8r)a7)JVTL%pnsKWy~-EEB(k)SqACkIp9(^`s?z+x_~b5`J4TZ>NDf&c*sm6TJ@# z|L4R@|2Tp_`Ii-c_y1o%>xcjH(peo+f5wp^h1NVZAMK1=!wwsTui6xG#J;uo?PDwb zuH}~C`&#>2I1*NW#~g8zoWIMRehUO6?lbOFpZzIL!bSMZ`~BupnbN(1KK~$)vU@g< zC(CTlIsK0^*}q;6lYg70TQ~EzvY+s*>kTz^a&7y0IoZ+l4t@P&o^0-Ns&n)zS+lvt z8F%8g^jTvz(`&bX67QBfSHMZqLRr1f&b|MLzD#8HjXwEPgz2VOM^n1(oqUmjT2mWd zr6ym4l$>HP7m^L2}}6G2!}s_C~39r4A@JrrtSe%o50d_fiSP8xC?1(R>KV9#^h`d)@yb_g@m-*xu9Ygyh}?Zv1(0$bLr?(LUg?t4zv3-OvXbGkbgU4 ze_NopX6@Ub{5ALEUFE~bb~EH>P#q?NL)4Cq{n`VWC2Xq zd|2e=YPN_Pr}=9h_}pPeAB|^xh&p^)5(JV zwlHiSZki>|F9EfhiO4Vf=ZEJ6gvLt;mt#v`GE)+F;o@L*?bFKGKf7Z(j|IdQn%ba` z%AH>t!GyiYp*!=py2cI@1Zz{mVQ5$xWyiBKnX_p)9 zEvz1Y)~-jgnIO`&n^=t#auWArqlEi`Gc@Hv&V<+t7~L|>qHszBVy$dJn57p(O14sb z1)*n{#3bjjdIE}S)v}hsJ(7$Zeo`;mRO4cshkN?I(R_(^^jUXh4&VI+LO}gpvM{Z+ zsM=IqA{3Dp@M9(mXw=&6fK3TEJA{BwiF(L<5=^-dVi4{S#+Lv@%!IyUFU(>;@wu^WBhWn#Hw` zZ5-~!ow^=XU261%j7eXJ)?wc_uDG0UoJ&Nj1Ot4DZw*g2x+FsEakY+4M5;iL^8`6Gm`kXY6FZFU$&t?GaR;da-Jro5?p&_ z_qOt(CL#GRy3u(9l1K7Iv?-h)=Ts*Ym(Jl@ktGWF+i3iy2O`HHO%R7@{?{<6GRc~u zJ}kFCuXd$Q622S}3Q={IXV*%c%asTsM4ZpUQO?daOJ^EAsBS&l`_sOl`f)LORK|>o z&p`ohyTb}qs;Ic5m=$o^3zgp4(cYs5YCOi)4q-B6c?*C;r`!@1^7Y;49CF-vFr?M< zuv=Tv)h0NMrB)};l%~+Iv<)H^?+&`q%G#;ylG&Mi*V}AyCc5V9hOK}XFX#{!y1o3t z`t!(uS4cuRs{Lxi`U3ev0&{I3zV)o1XE5`S)h9nNPqhb@MfFvWB13QQU=S1S9aLE{ z;-J=gSGH#Y3+VhvB9l5IX+VuRB(V5)y0Lh^kG`=IrDifj%|*d1J87>{=jZKB7qt^* zG?)h|>&T&^EralzA$71na)ql1HiR7?CF$+)FIjLSiMYy^obwr9tx_g4zmthd8XX;Q zi+;W?8>prQuz$a?AF*s6AL8RurmK>^ zb&J`-5l&`k*IZ3S43ypoIrD_P5^CecNLxKeOgFv@8P3^^EMV~gI85(w^9&4=npc7s zIg5pwmh$!&aQxg&AFaH^@m6N+R~0%nD}8`K3fMG@U`s8!=gM946Fxb32~CzNZDWEza`T3d)qZxUd`{$^WoU zjc!@&K3QXO;`2&>Mx#`&XBTAlkfIK$&}{Kds6T(%K#=iOs7%oi(n8Hx4jF9kZ7;A1 z{ZqYGwN(?9 zttP6duc|v{cU<)xw@c*CdhjMd`Nb-d$XNj+Yo6ACyYREpXA9`jLBY`sBJu4`8kP0> z?mtrDAAGQM0WN^y?GCUNU`&Ie#LoH>!ZfQv56Ud9wU5P|+npoE)V}99YMhEBwJ8C{ zUP~$@RhZt&xa4n{E^vmT#aQTp1k|)T{&^M7Nj<%`TV47ITZ;mO3JSFtx6`t(=2bSX zWHw6nYO++thRaf$y<}$we~}Zi&k=04yp9J7#i>gkA)-^)XQWPWq?iKgV)CW zp>r+gWQZX4D7kENb%lUKjV2;X_OI4jOMapoQJ%=H=pXk3wNvJVm;5RGMtN3qGR>#| zZC3Ll<%|T~L9d^v-w$@zt08*p_=+%%IS%YW=k16;V!Q>#&nW9S} zbK2MF1PxnGr48Ve5IjG9Dz6eNl$1G^4;9tf-nfc%t?y%dVSMhz#-B~As@50MQI*!l zW^hD&zV?{uQBolEB%51X_R;mRp<^#Dc$2W|1iPT>158g})GD1maS+@Xg3N*sdfRb; zkY}taY6|sItQTdIbHzhAPaI;gy+!B@#}OtP$bGgewV)Lweg=NZD8RA3oWky^i!ta* zU<&H$>hZ8CLmr#q5@P{UannawWJIb`sqJ!!J4M9RQ->O75j2GGmrG5aJ7lrOemRvG zU6Smka}F5Mug-a$og5G**Ckarv>u1KmAH^+;2=;s5eT&E4ScpH&T4C*%k0)iB2q!v zwR1H2yT)a;q|HMl8*t5~1u*cWKk6iWs0! z142~kw4gjp+A10%s*stYGdY?fJ9)7%EMPq0)m3OpxDK@qIGN4qb;HNV%|ct3%r#;> zHkrIR8A?E?)@I;k9ksnSZJp?8lt1lz zQf4>_d;X>t3L8!hDObHsehIjVo7ZL24DYpBHqJoELU9ZzBS|rq0M{8y`YHT`#X{1D zGkLSjTE&Do8hkL@DuG4(06p4O?v5WcB+m(17qa8IY!-HqR8Er?nxWHS;+0G;K+hg9_Y^;Nk1J$6T zU=KpS#Vgc;?qRJaZo^HT?=q)OuPC}XT*$DdGXw*Xga2)}1lrL><;cld#X0sa*D@b` zNliF~8**&fyfbH^DOk2s+!-puBOXY(mfJ-Z)H7$4pu^jfYq*ez*e>$&7E@wu<~#sE z*c>9*SPTMWsU_<|4&{A zRg4~(a3YY^;43tdaVAcg|B+AtPt+aMqRb&}$3P7y(=jb$F3y4?9OIHelPSjrm{d@V zjfp@wI7GveTd^9O8@-VP4m>D8sWiANgA3IzPnq1s=C|FM)cQC~)d`_Dk}mfxNL?Hb zY^W&GkGLB-qE3#>yyhHwtO^FEvaUJ|AR@LUvjOz;Dgs!p&RrTI!0}y9B+?%7O;YN~@Ka&0TZ)y6ehD#qa*APLBp4}M&3$#9tm_7P zD_o_xB&+F?i!4uQeBqyo3UAK}@Px zESiy$nN-quK&#fQmV0f-FgF~Jh$J#GAd*Wa6bglEz|4VJ6^#a?f$0cjJQRzD1EFZd zY&#VRMFR0Kut+BnhJ)fDz=S#=3WtMXz_?}s4he&y;b5RB7!QVnLLj(cKqU!Wa9+P(+^l=PbIrU(n+FTQp@3y zsVtE35|=TyOH6_Ek#6?}3do8aJQ{L(ED*=@CAb|?=K?AqFy?2`UYU73nYD}QM$CjxmtlV=VUL&Wc<$e-lZ+8i`H?ovYx z><2t-&Urt1)T)}Q_*+hsCqI*CWa<CBG*w8tr5c zvN>Wm)ZXg(Hg-;!%8$?dO*=%$lPJ9Y@^-`-q3idr9~Gl4zb1|x>6ypp=N^)FJw*FD z#(6n*j+=59@LP^mtY`rO%kp&WfuZffXp&L~j54v**(Z}nEU`}^CIxO5XBFI{PjTR~ z{GGFEuVcxH1tzk4ujARu5 z1w}p^JexzCH{|2Oeu5hJ^CyJ$9+x)sBI?JJcI@@uOfo>*A%d{}$i-v<&4*8xSfLLm zP60*Cnf&$Z1}qCKu*MOS>0PIjmu6`0L*(qQo>x5&`ZQwVma*j3^O}@8ium#<-8hF_ z(Qh_ZgZ?gxY0x*5PsnQ;(}~f$Amtx?b5epDdL9;rK2Dv6?}i$U!)tl(R&S~{19s4S zoO|G(jELvn%filG@Ybw%AgBa7c{6tXCvA-#T3q)1@~uF*Q_|#Eqf#DDpZn8ByftNP z$CX+gPUDab+g1z7)0cIIqNSVEZW>C(cJHdyr>V5^OB-C&Hawa+Q$>s(ZrBxu7MG1} zO-!lMJL^ioNk1pTlgZ+TtOmmbetMROo9I}H%|g1RB(@y!Z9iq%)t8B@T6uIpnO z3EFE7n$WnAXhjbmJf1%xxPVoCWrjtgnHISAOv<}mt!jAFLh^3bYL}C1OPh?k8s#(x z?IEhc|H*_?QilMi8MP4=&@idG)k>H-Yg;12~{?*;aPf@lnNI^ZFXDt zP11?ujvm2*$(P?^)NK*@HDamP*m+mB zh7<-ea@?-)_X@Ts+8O+sXto~aKQ8kidqnY(ONEXa>fuOJPM1l(`W~VBHAsJB$5v@x zIbrOi>ttsOV{M5hLB8PB?*5wt*0D)6y5)EACxu^P+jVn8R4`_Tqs)rtYx z8gSk;Xl!wy_=K;ldIf}%iliYFb{-V|&5RWx3?=JR?7k&O*A&nY^Tp_pVerxm57*lP z#PT>oY8|Gv?1qntZOm47(2R$^FpKC`gm0^REly2on(0ypZt;;0Lqi3iHcuhlqlWZ& zI<#PI5qo`F8zrk#LK2UL>HDm8%nZQ8Y`fwZDTssH<}+m4(a(zGFqJ6f>$W*q;Y*%U z|JvfsGW%EO^aLQqZ8{Of6z`I3Xl%lrMxnDyR>}XKABB^kNbi|1FU+kRAhaWp_Zf<- zol5L4ikGI2ssn8aYv&5{Je{EtU1PVKj4&J8t@kr?XqX<61p@WurS&i9ppk%<2=lBjI2(rv%rg= z%>v;pA^~Wbh8%wbVWG9|k5d+u;VGg&iE~$mV2%!WjrL=o^dsK4FxKI*te*QkP|qR7 zPa?x}$nANO+h-@0`_t?1&fZwp&k=?Z;8Yj3CH})CX-vJ{yJuJik{*HtCNFK#bv+n!fd40)bX55#sUq@|9*1N>C9d+Ca=q`XC; z=YZHlGiCPCpo3m3Z35*xeHz5_X5rTh?My-1*=?gfp-5@X(S~%n@T>|*;B=^LhQ>*2 z6louJ>c$BOd=(neNM=Cf&=PUzYzcuBZ5HCgHQr}hr3MCVQ9SACApFU*nwWe)!^SQU ziw$oaA3ibvkeI{Npw#2=#UZlMCbtZyXsETnECW1jVa6clrJmT?#Ty#{o5)`QS3*t! zedfr>#gBIFPc8L_=8ErK)vpVP4;Xk8s9G!bOKSh9G76jw3|JZI#DCfne(V-CJo5jb zu4F2j$C(88%MqM_zbfj*FIWVP8SA!$$0g1M2px2lKL^ueU@(#9vd^wrh0Go!$ zlov*6p4J3qGF2CjyfjNw`DxsWHimkrAtr{hb3nYA(0nNB21M+0K-sfx2|%lfjPGdR z|2G-rC6sBaPS5;lA_C8R!4a5hW&ZKB4qyAK3_~GyveYY6D+-mDL7?{C3uX zLQYSwv1Nw~E9=8UC%Zzw9UBLbNi?ajEL=8 z8RX!B2X|O-Q*>xdj*32wmx&xf;q-wAkFvY9G1z1}VClumN$rmsm|*b6cXvNSL-J>X z7?Nsc>E8AXI#EJdz1c8<=*#N|0i-(w)`ax5GE-bJqBT8sb3;N}x@#7bQDv75G^l}h ztb$j4(tNq03#BKG#xf_yHOw?>U_94#flUvH-RUVpFCH3EoDgL%r4b@rpdB%hE6kMb zj!R{rgxFI0;t~&aY1ZC`IZBDRVZ+#0sgnq-h3+Fbip6-?I*`evlp}1%#5AQ#i55J= z^1SaTWV`KPh%-CpO?!LG-nO?i(JoC?sQ$o9SUEar50fUnYQnFr9*O`(PtL0|n$$fA zLVCNO!I_87jBj)*;K?j6dq=;BoCZlUzTs;`OK8)sUMAtZEguCaOA5m~2X=(K00+`t z&OFI4aTpZEBlTg>M7^YGD|_a^$yH~0BV>TrA}6}_^}_iXYma=m`$;)IN^Q9}bi_eUR^MmrAvm-2|K(uX=b|7K@l`GCY;(aOYtyK3dX7qnz(ZbFpD zS`13V#=rJ2kx$C9EeLq--ee>$uL((w(4*To*Z;Wx_pkoL{JYudSAP1&dEtfcyj<|r z^(Jpbe0X5`CA{$0{;=iehPUJPSF}!t4>-q$fAxs-!$!(rcw>Al)aQmb=F=W{YkiUJ z=Z5#;@2+@c{gYhq$@?d{;gk1B`QfenzO!?Ir#v#gvas;U_DAjSmX5og7@V_UNnr5Q z`!!;iLSV_`ea{WfT4wrqWcW7^p}wXO+Na-YhiL2==Z433+oy(Ckday-kXDn4%RFFX z-nn_%$QG05c4MxkLcxkPTrh;d%1qwn#xR z@X7w`N_DGOtzNpiR}xems6cpP!AQ>&Y` z+2N!1cw%r148diBZZi<^ECiaS2W@kmgB**s(GbX6~jgGXn=;i-CEo zusb|5e_pzwS}idgg*aZP^UDlKaKP$PhBx!2R35i2lPMVreo0GU8%()2s>3_p8mUPhOR0MSVgt zy-aFJkT#iI=R|I_0cTRo;R@M)wP{{)KWR-~)o1bw;!SWdIMkXS3FQ#DFYdU=vhj0; z`I0k0*;3?ajJY27u;qgUzgk`PTmVXy3$bbXPS6eA`q$&C^ywhiqZ&J0r!m;f0`=wQ!Kfs`_( zD~xd2s9>Vyo}i80_+TNdj`&P&jLjF%tPp zOv7tCl%A?Uj1I$b3{9cTuww;&-(=Vu57i9=&Yp#VU{v)>R%~E*!WYKz85Ks2<&q}i z8#JM>x&|!{`l_;C$x2TI53!N1q2R+QP@G`T&G~{Np-vMeh%UCZO)vHz*VWc_3@a2iMDfV;>7@TKePM+B4 zyF*7Y2@Qd}lN+nbGyg3TU7Ti@c1%v&9J@*M-wwVOEQ2=F_Q>7I>yL-wY?1#@Mo2j< z1yxsAuX?kC?#BPF#h-ftCRL zR#+^y@TVtZdVhc3%a+xvRvgpQd(r&mh+$8Y8>g@~c1Leu5r%YNOm2@}_uAn*7^}xG zm>6C>s}tu;Y;Cc<-PcCJ6Xb%U4DB z3{Ki(fBS3^t}`bDykswyHPD&*A&I+S=VWbQYQ&2J>-$DDq!73uBHXDNEwDE6!vr>M zyVxDY76a>Sd(0H5_ y4haImAsBQ35C?|Bp^*3#Bn<(C0buYrBrXjF0ssJD5D;(>2?q%W6$Hiy6#xOPj9*Lu literal 0 HcmV?d00001 diff --git a/data/objs/dragon2 b/data/objs/dragon2 new file mode 100644 index 0000000000000000000000000000000000000000..ddcbb87e98c04e422aacdf944ecf5d93e221bf35 GIT binary patch literal 3686 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 E3pf1~j{pDw literal 0 HcmV?d00001 diff --git a/data/objs/ghoul b/data/objs/ghoul new file mode 100644 index 0000000000000000000000000000000000000000..ead4452de2f509ea4f50955c8acfc21921fa0059 GIT binary patch literal 7934 zcmVVH}X`#;v6{~z_OzbE}_Z~p&UYx6&?DfD%yzxVxUFWd55 z{IB(?KX>}lpP}UO{GaPof2Z~9Q~r+oL+!ML9nGM2NrR$bGKhqj3O?_f%RA-Y9V8Z4~ELL4NQ{ynmRyeneWCSeKcI!2lt%w*~ zss)|O-kYU~o?s`tJe^|Dg>T__pb!xI0f)R=MC1ENx5B{`eMOOj7Nt+g5L9?R;OM@JFbx_pZEOYh-0tHxHOrw{2 z<}5^q^@@}b=sgRN8L`LaRH!azWHcutM7G&y8F{5#%4jZhR`J{Vzlk^pJdf8@iVkc_Y@v*O0?%HV`^#1EZdsyA>q$wpoq*iG$E z(Cg5H=wb41mNx=T6Sl#Rv|>tbbd#ibJf~AgO(Svd$vkrsbZRs7VN>*2bJS0hmLplq z4|M$vJpBs<{RqsJgGx!k7dc==l7IcHzqX^k-$i~=Pk(UIKANw-Q>VX!DDL9XKEGGp zH>0`XM{=f);}spjx;uK5cH?O6qgCC1(b~A9wBtu;s*cYcUCiZum0J5D)OIoG>_AZ6 zpUvk1hu54KkURAhThW)-TraLFMQxl}Z4Oy%fL~YSzO9jcRJ zC|aCF^9xP%3AdZ8MDOMUyeK=L3%lGMtOUMkA7UYP?T)OVCsRgR3<2B!M}Cw1-ji1B z5>%1Hrz=@?ipYxuwmN&IqBT&s3p=+~>Czc<-fHIQ&ZLz*%kevC8kr?Z=0;=#n+`>7 zQ|VB(nt0!)h2YhLRt`iBau`w%;f`o|%vFPK86x(>b}BF%vqL^^;;q5~jv|Jzjm;1u zA<3b+EpE_}2qsYD8NT6HKJirDFzKFt&yqrDRSy9>x&%c~<*#IDdrLgK3VmdxKSrJh zf&m1|Xrc!!;weASgq9)_Czyo{K7FWfnL(5f3sFQuZu~Z}v>3!(LB?K0drU`VUiaB* z{gg=sobYt7cP)ujv*In}Oh%J~rL+d8IGf6bP;?tbeAq#TgZB>S)#J3clvmW)UE_-% zTI+XL{ayMy^f$*jv~-A0JIzjM37Y{bhey=OpmsD?Oruv!!crk-#BYr-{-Y$atc(Z( zKO$qDOz#q82gKREFk+E2giMDCOx6h3lYysQ2QMcs3fXP0Wi1{}u2l;p&VgIy;llop zHT=J93H$hHe)hG^F4PCnD;lnGC$T zlZ3^XawkZpNU7CIJ;ri|oS1_7isN|&V=9M0r*SWLf-WcsP;S=F{$a?Ngnv9A zOwAf|e3(KPh^-fl{l!W$V-T2Ba*qX?fxD6ROGCW>5TsntJj>yX@IghQy?~@ zDxEmXmhOKb8F}oBx7f}NBD8FA8K1BT^lT1eGO*;eOJtvaF`H;n~P8 zxC*W$*cCQ-3mH(+b|q+|0up3Z975wPW(9EwoE=HG+?0Vr<4#MkN@PU^eB7Th7sWM7 zYe~sefJcX7V>GljX^LqhjSZ+I8VayVLyuyX<80ym44ELPP=z5>%~dLwT5x5QUXZ*n zFw(53r<|y7sB`ekNE{-6ET|$Yqb$+XPyb4NO1q?040zKk!<5|5yJMo2KT@0^s%|&* zcj!O#7wiz0l0LnA%4mfom8ukIYr-iyuv4VQ>^%xFr?pdsI?jv5en!y3!5rIQ5^{w= zRaiurWu{x`Y2ID-O&{aeq%|RWkaUc$oC=={2Q~pm763~q^Tu1Sf(S~;q#$oaP{_*2 zT?^4Mj-<2Q#zM(nsf{s}i2B~Oy$dcGae|2o5V;s@NrKGaWJOv8!G)GbOrSZSo0QpY zuU}RJWKpuzP)86!(@el}vC=5e9R;Ci<%c0SOK~eNfUR1J3yR~~$oU%vpkwRkSk$_@ zgMV~YCu=xyNC1|+EzS99*(BJ^H%l66c0g!1-lS46+mNi`9|@{ARt>{&{V~$MnCV|kbbtG4o>CATcqNY^Ju%RgQdC@Ch)t9N zh7lFe%0jwht*Qj)raIboM0CekrkPTz{fLkq?o-ie+i8lC<-|Z#)R=(X_B%t({G@lX z+RA6W%zw0|Ld&TuypEr1-pObz>;olL#826Vi!0G+H}I>@bA# zfJX?K^EnAh*lp~_mENY8C{kb;afDAn^OIQ+o|0<9XU|g`-F{&5EV+`Yst}&xGv&G} zv=r5t?sb`UtRne1s1?zr(OEQo?s%>$nv=eWjHrd*B_p$9oowQRYd983O=Br4Y;l$B zNbTISfYP}+X4R5hci1p_@n$3U-QgmVo51g*;LGkP%y z&LcTU;!^v6Qzt0s#AOTyHeW3F-|AVpOp=rkuG z7A8$2RZMl4O^HD?B{9;znCV|kbid{PQkjsfk=oAXuU9;^>XVRqkL4{ra~7F-OG+H0 z=*VZfa&|Czixr%M#J?$G3!kvt%)Bgf77+Ox!FNA=4D$~FoTLALQ2%S9 zdFYYb9`3v!q}onrpnnO_KX2(TTIipm_4k-{_wl}t@NTZ-S#{n$L+#Fv?0%x_E~4q) zlIV`U=RTt4?vmu5qT^1Y;r^oFu7U5bLjLTpH`kKTap3Fj<@EQ+H1^wdzwHlD znz5nj?#$CSo4Uqz4^e5IUBbWoKS_0~?Ocr zmsUPoG_Eq+79h~&30U!4CpFhxi|On^iW%{*W3^X8#GLnJu8b{R1;Ses3VY$VK=6j6 zurZ-<+o`|Y=yb5i*}O~Nhv9K6$m%ZMW!&*9%X@d8{)pqeXWef1UHcQ=X)8Ku-*bPG zTd%b&m%zwmU{Ge^K%81D zK*~>vY2h7knybi%5Vm8>fMt&O(Tult1~$+0$tCw_9ZL z^=X4k4ZC`Aop?h*<&wZO_SjchljcR|Nt2k+)Wbuvq5IttStQ|7Z@ZLBg5HlbR;hQM z7_b`IXbfd&!42>v(p$l+$nPvun1%;(qN!zrw&+<9g{n`!A+d(IengthvCOY~khDfX zUzX^u7fxG=C_Uv3g~A5iiIW^Vfuul{p_sxV3aoKJkrn5-d{SKSsi-9Tl8TO+%@i2P zKpakcVtA&fTHlEPp>!>RSlFh1+|rxTTD8?=LJKEgfDI}_D_!8b)UJvM_EE4al`O#s zj8jo|qKp9rky0l-S>(6}8g2#{$*Gq>AUVn%O4^v&zH^p96cNyyYh6lg;W#SnyfozW z&}Vmqu$5XOM0`G6w_r(|oPr{9YSr5-S6IZ@3qahzd*j=n=VDl-QEJxt2}7cqYoo@&`fW*3%Q&zRNp%gf=F_~LTuf_fCI1I6hi^LC9BXJF zuP=yQ1Fb-i@$}`$lFQqd2dvNg@7B`oZoOp&IL&&(;lA(JpVwd0pY&ol{g3-OIpgdg z$PckljC2RoQS>rJJOJ0F903WfC4lF6$MYpuiwCKXv546bLI6Lss-W12mPY?1X;URu z?1pnCMkQ3PxZ=AiQmfUh-e54pbn0*M46I3dqAq7y=j#n|eDK<8*L7DCqvE?^5^iUu zTZPZ<5mr|O)Lwv?;lE?;3unbq3->Vm^JQ&AVTKs4O`f}|ev z&nx)z>T40@(i}9TY1THtW@NcPYPh1Pw6cI!l$g673o>4_x9SyHM6f9FDNnyDa@L|` zdw>*N@Uq3$X{{!~B_y-7doWkpj-;+Okt5|TXR`}KC*%m(qjGVah>vC*DZVH_G>Qe& zHOT__Y)KPnB*RU_ly7TKp#osx7rVmL*xl=S{cs|J&GucR1abFkJD1tNPv~83`di{W ziSKs%PMD0OKsPT~mJHW70pz(gX0aGIp`vs9>(=K#l87f;L5Rk53Qa{EcUcfwvLxhO z*~K`Fx|*$I7Xs%Z4AmIShGH^OW24munv~eLhAuINWJ+YlaJ+0%Q?Yzj3R=oaNFaj% z6dSNyRKc+kHk$1fsJSSxZZBN9cEVO8CiIhR))K~u#W)g5Y(_cnP;Ax%nb~2}73Qnv zSL)*P*4tE6l@vHOf{WHT-ZV2D)^MqiXCVkh+@QO)Lvl^<I`nN@Rf})BLj@_#gGz6^=qnPas>}PQ!VnPs&?Zq=MIb*0FmH?{;B`Gfi~)`zhvnIZJ&|*D?LRJ2fZ${buo%nQC!v)E?tvoqKo#}FrbQsrT!Sym$sbV!wNJQ#r4Yv z(IkZ*Zc%dOqMcJg6joiJtipuADNkP!FPHf|T@RNHsG_MULJJU>rud2PbDL@{OAxlh zL49Qxl0yZl7kp%9=Agui;%CVp+gOYx7tZi@EBKW9JRTMqz)@-z)@2%%Rq*gs9@Eu$ z)ZC&-+Cf7g^7jDQ6$>J!N-6?NozZ=dg3yZM5YDgPiIA-Q*IEyW^=D)P8qDz z)(fF+KQHbcg!x4^>4u#J=rxtG1vb#}t~(Zi8L2B0P(kH`6-2g@^&pAD@!({eh&@OV zZv~=I40AzrcZ@3mX4o5a72-tm${BuW?-WteF2^eGBHze2y{Fl>vmi}Hmuaj8FlP$Fs0|s$(NQ63j6FnY z=IJ!kKFcp=<)LJtF#jcIlGwDw_96Aqi~&_%=rbog7sTG#H`S2)NpubD`&hSTxO z`5=TUK?a|+3>fZPHQ>-oN;gBQAZ;b4-eq$uA-Po`n~Zh%Q|7I5k+`_~NzWG(?rCTM zuZYiZd+w}`I83n@829SAw^n^xw)n!{ce;)FZtn-UhQ%(1cWbY*X1B*?4<`gOWWV@6 z0qJ^Vxoa?N-IqRUmPTroPHL1^YLi}i$um75h-cs~*l`E+T*HO-{qZdTtkwsz)T|)|r z!T!2|<#qo(*V}hq=f!-(k?!6{s=Kad?zoeh?(%KW?&Ce|`(66P)pV7q&W78{w#F94 z3YsX~!uVp=A8qF6h;42nb_0WmBA?R z>Nkrgg?H<&P6HbZ`w?6KB}g*+tOrJfa7qF-$lGiDX5Ee*2WHHtC0hoU0}DtYDmK@LPY&Wy`L4`tI|^_G`gEO3PfdrdR6^H(c(P~|Ba|Ck2x2^1mH>PC6URkcXw?LN;wH5(% zw6OKQ>9i*rlW1GQkie?mVfIUSZ27~uSQdr-Gs|DT-_&2zU)SGWN4Lo`B|N6KAP7Tj zr<$%kUw3r8jBYIQWu6poXfcZTo*Nj<3I52k#_Y2NZS8KyV?*K#6~OJ4FBq0azv>ub z18Sb)nMHfra3+g-hz8?i!x#qYV^bWxn5}65oUa|v&pToCnGCba@I{c>HuDTztb1Ia z|2-{RpFFO(vyRT&e)H zrRc`$ysii(f&(@h+(>d?ek~6hdeZ3F3QuE|;cvYA#s7 z%c5QY2(u8909~^b=4dcN9|cF?0hVIifOU6aTecCq6RWH` zx^t_dI=R!Um=U=%tBw)4ks2Q0vxEWk+5ssr!YaTkPYp?B)@9JLRmdo(^Lrk(ybCTO z1>Lw2>T4W~AglzU_SQ@1cr_)+veF#^-diw^Ma~xtAiGmlyLQ4c9Cv%p2H0M(AJ8d; z6*;HypOD(%1wt4C8^Ft8C6%D^%3m6}Ak>>1fHO+}5*AP>NvRn3037&Wn~@7Ip`vM| zpo0M8NyU;8qmV+GuL74mnn5covU0^+ifqrwQvl|T48$(jsR$}oEYu-<$*v=irhFLI z@yc)ra=AQ+RBAjJU>V7_8;4L8;A27;8nhrRIc9)^Qd4gM4MZ;?7G>T`ZEUrGR!rL? z9wdzd?y9?BRju~0O|S(};mC!NP2>`-7sCRq0q=*_-#~B#A-;Bo(J7wrXM_zK!HtV| zn+q_3F2CvKwLn3{MluLh0LB7!tCiQRMBr;ACBP178i_W<61`!7k0_$wcqK+8fY(;A z3Dv9|N6T>`WkA9Nu*;yy)C5_x2j^wHgy?5&3AZTOw-8~{Z0LS z`pf#)@pHq_0~@t*8koQqpW?FG_TEmc#)N-!4?>JS_iA_YJSjbRIcNgbQ^4I4Rscf* zFqd=_VL1FWgIO;aDos9v( zNop!CE05BK%1b?a4DX*;^R{f`*zIsAtw9IQbGq=bIH@W&$Y;Pa;vno^-8G>Ne9Pi|;n%lO2;csl}5J& zcya!5sVCL?fvxSQx4n8FMAe+P!&|47B*Og8EuJi-uO#&qK&(DC`XA(#%j1uF z;k}KiC(QSg3zIfp9DCm);)4qcs}NRaIW}db)mJpQ5*P= zsg}l%*UOJ*QycO&h8qHWlB~1Gjk(DC$fM_yd;xf4VBaMfe^?N9S-+wENe9rw=QcmT z>nB5}L)X*yUQeMu4}XJ?v-DMwK35OQk@zxvsh`3p`00O-=i~pE<$36A*~SV)7XrnpZ5G&Zl$g1qz2mq*APwi)Fgy zc)i~+*o?MoIi}OaL3`Sw`AiQWA7eWLh z;aK#I3Ji#bq~PfkrWFhag@eIp+=4>+c%OR^S(VQ95lC&7hL|%ZvL{JVDpBtPaM24@$y!B#5uD)nUj8^*ckq$m_R$56Fw10P2* zW?#(^Uti5%UiuP@Usd;sw%cCKd0&GGYM-~qK)l;YBE5Y{yrRO7`?=4-NkSh}?|g6n z*&3~T{1_t@iGJKKf8TIzcqJPnA^Z30I`n~Y+cNxr$I`#q%=V8xE9w*b*!R8Y|M>q2 zWp5Lb-pDHGFN{xH?X*}Jd*{7=n<}Tll9s>Eir*f9738qo(q_UGzP<;^Jm4cL|5}if z6TQ3EH2@(u&hYZbf$$hxv z-~qsHL$$YL^EW6%f`@hZ<(zrb)bNfuL8g_jFmSZ1mTM~?=Jch;P#5RII_GBp9OH&+X=|IeB*O(* z_Idk18C)7hGQA%j`Yh-uW(Og)6jHnHh)BsKRyg&IrU zp{2LnnB+F_03o@)8wJ!rp)1kRa?5aGIs!uSAvpvDJ~sBy&^WYAa<=(_&U z@FN#lXq_L>zu$f{-1r#uK)%wB(9_O+5nAkt5IGOR{|j_KIf`uuVbu9%1kK)T1}yc~ z+Hl<%m*$|o&RhKrXXPT~ualiYV6kDlkqOVicuIN6#_&zK$-aLow9mfx{od_P(Z@mL zE>g$A%%5sKontsxIvtO0>HM_dpP!XoFlLbJe#4pQ)8oclIeec7NZ3&MYZ+SZci-47 zYeW?K#u~D_x$9rEK7Y~aZP`0|;7dmK-MS_@SN&i2jeXs_N*rwCzELbx)EH)Gqt#Sn zxtw#$X;%NFg>mssH^JF!Bxc32hS7Tsu4E-!IS_lkFK`nz*SLR#v8iD_&>&)1@7E%k ztl{)+uPu14os7uRKKqHAB(>M7N7BN%_s)+?gJ!jC_0?XjF1ZTY@rjQU`0%TX=ysr4L7^`V)H(=VaMr;DMBJE{_AjgWsH?$MwVDxd+YZ;t zQhRQQJ{GIUQIz$|nB9*{dV?HoAk+3}0|>rQoE0rnRq8xlwq-vS5FVRi?xLns_czpk z8GSOs%(0*{@3Nno{Bip>8q8-^g;y5cqN{$JUV8UAsJ)={b@r0vgkLgHiTD{^c55x} zby)c&5_A3=6+uiu%*k7S#BX}Sb2(u}-~O8WXTY2Z(s5Y#!xNcXiq{opi5dw_Q{jH_ z>{gsOWI!P_pZlG+-NWi|C*akq)iF+99pvqRc#yK0fzQG4*HS zHWwPz+MzZ)ND`>r67GF-TFd*r9{YqaH#y9fI9t4+GK|~D>|r3w1fF3itpY&=&vcc7 z^}c2x%XPSJ(=>eXHg|#(ijkGQW>U6!&Y!4Eb+ZhnF598fFph9|HdIwqv6QV>Cigs< zBtiFC7+LpYad(mZ`nNCMPpl~>m;}SeQ#HPTHole7NovM@9wktJvJ|!FXu&AB(exDm7uWKI@0$0XfqAn$*%>In20S)K`6f=6&ra* zEw(TmV5nj{j5{G3zO-TFQriQ<{9D3$bR@=>Uol|HM!L4WeAI_5Qw;MSp|NPXYBU+i4bvWrsCs(e1 z3bvHkm;IQPvR528w1&&ftF(x=h4;)tqHb-m(GJv5xzm!x-%kS|VA(GOtp(tM%Z%3#t7A6A$>;pb%VxdobOcmeq1rCGl0`N3n<6 z<_(8}u@&khYM5Ae{uOM56}BDG-Y(ToUlq2qkGDn{mh=?x1|sy?`4#SRRryj=~^bA zI2obQ}C*z#8%4zXiaGuV+HnzHgmU6j+jE1#VLGwk!-2JRlt_8+<-U}T!0)Y zLCWrPP|i`{HaO8?q^6QM(&iz($jVK~=p{aJC$H-0QIF`M%ES=-3KP`NXrp!dr{a1p zZA80X1_t(`tH$cxqVvJ&m$vWbVx`Kd#~xSp##lWq!wdt-a#H6l4s&-@&1~N%bv;|u ze2?K_NWRw#wr(n+?uAlI<7Zb5W&?&h$sI0&$%ckS!^s|3kR38q*+Z_O(VB}&zgs%v z3Rl_5X4B~0z6px00fgg|Cuk%4V&shZx47sG`G(CR;xRxXGb&71ni%%tF`O9)pQ>(Z zLvid6gnrToq1MJ>KO{PrDp(2)qIDYNi{O zZZEVyAwKp7(zvSA*v1o;(%+NXngGfSbRH^TOrjvg1o1C=*>~p%ZcZ)zYw)bvOktGL zs4#h-H2aX@741ZwMpDkQpOXV^#)%8!h;S)DE9B%oN6#xdaETr3tM*-HhWI^N5v6hm zN;Ryt;yMwp1kH>e{yRm0yTLV%Y_MPKp;vAW->`wDhJ zYr@@6it0ju>B;HeIc*M9&5qMZaocq2+nBHgQiPCsy}bczWcVCnJX1A2(*a9Z>TA(> z*Y_}}k^d}05jeglxmZbQSV$=3n;8HR#s)v+!xaxM^d>HgGGHTN8ZoxzmL&P_fmqoE>agTrxtGz|ud-3@!S#uT+~;Agx-$ zF)|oBlOUD7O99uN2Z8%5mg74;r50B*bQNxnwZ^(lOM!^qv9}H6*$(@JD(e`|*{$Jt z>)1vLdu-+ca#;i~EMZ?LY@mB-ZaOzivZ6C!%l}TE? zJN97>+WENCr*0O%sQzpnoJ5awblKyh7|UL-wbIA)nO&2X8^Kw1W=^@I*N)k=bZb?L zK_4jnK99N%EY|G-GxTSn*z>e;Y?&qUj{&JA(7i#L8+Tz9iPh;iRhRxiSRsefY@qQM zRuD3m&Q2H(H2oT`c;Z`LYsWNvH~8VJ0ll;vJbkAk^VJfE6wy6g_(307M}N#Tn!Z6(Pr zIun5h@LolN)F`r|qRZ2&dh?)4<(!<1O1K6cMhE>HLQ#!uXlqpZil(Fj8CE)%Zq9Dc|sE2?I+C zH30z5LdVogO9nMp9jsN`XFhRm8f2@fzy=yjv{FYfr*FCz&IlhH{>e>3{BZ|VkBlkS zO`4m!cHr-d1NJ$;dB4!GjH!Tn_Ri6uLO#|mm)~#0MMEn);dozo$#9_v1sCEM8caGy zrB&xoSNRQKeoG>AdJzAKJ_**lVLf50QfvxoV!FPmipdR^PGe~3{4BFXzr+@CBv$6( ztWbx_6+WdQ^0F=qo1A%e`-__-|c+#5SUg3yk%k=h>dFRD_eC2A78!RW$j*_`_10qW3LRN&++h! z<^$sHUwL+X5Uxm7KRl9e{2wfm`jJI@G&pWOw*{#Ek9*!L3VUtXV-nq!E^^$>L1c#C zi}6`=B4?KckOkNFT7u%m$F9VQ1iwv#;t1X#WAL`cdeJU+TGJR5gyYLa4EC4e@No4t znCyyQie2HPq^bewjuR;=mbWEve+kXAca`yYru+H1|FmEgePy(`RO(+58j7-3j+@uF zwx-{dBJ2+z$HL?W-riLieVzrWq6v?wxOeawU2?!4v@o0X;1*Qw(@r@FXyOcGfeCA! zk}^&R8x+5UM}!Z%bG%V1HEwXxOpZqA1Ah>6BHF)i;te=r;l;@%<{YWc*$o=)(GrnS z46XYlWGg(fkOi4156|td?DV1@*XMcj=u9`>%ykYvwMk3O4QUGH3eMR2+-WpGzp%6& z_!pQs!MEm-xmK^uqFFg(RZ{ucjyq!SA$5t{(`eP%)?^!ci3wH+1jUqWY`0ir`-ife zm^C*|ed-RA>GTMzKHpH9j}2#8njY!rU9Pb?!8wS!hI%|w{?{<(}>)-%@CCyd)G`~Tx|7=t`&B=zJM>o@A`$sS{e{p@;@!C?2XSc6ex76;DM&K$|X_Zwirf`BzCj-PkRZ-+GZH{%JDf zGY}Ro>0_9~+3B2UqU|0SO7D(lA{KjfZsHsetY9Ny%K!l;0?ksB_6DD81VZH%5^O-& zRH%&I=NY6tVzA2blVI|QK;l9Y&ogZ)NnCsp7(02QPnMCH&dSWen}{_>-v=9|nOhtA zM$R0pK(G7)tjOE*WEM8{UQ<7um{q05?3*B?guj=mFer`A>*zZx74@2a1WX7x&@AEV zXrtXnA*Iqne1XWc5Y?zoR~wIKiQ#rd-nCWDpNJnrGRmwLl&U`_AXS)2hHhH{e;kr9 z?;FPt*G6w_#*eD<=?E#ASP81cU6(N!=QY>K%GZ!)0;4VO&4H6{{+!Sq3n19d;V#)bk%iAkcS4nXz{A@mtD)YD_rl_#w zpIZcZ%|m>mvX{8}D9QqXbjT+ZV&m8#zIpbTlm`bOoSHRX$kay^8W;JuqHq8Vf%8CV z08sIm%Ne%l9*9_EBNT4D147?fX+`L%;J$#ZvjX~)+pmTj_k-?s=Gy=ge}Jgx2p!8n zzasmkaEW=KpNq|wZT2mc)lcVMNP(YJ#Ad-=COQWlfQiWEeWGpslp5?#amhjIPO;5F z;x01Bi6Nw2U|C2!*UatBu=bSM<<6`m&&!!?Y(Y)T%BiYi4f!jb#lhs8E}8vsQ}Q5q zX{hk3{od2=NVc#ZC_~V{JjjY2BOp8<5x>-#R6C_UC7&?{kPAp z?9i)4Lt0bs`vV!vzVu06ET(T*^W<6J-*WABVoX#wjb^+gXMt|odbIaTBLn!2@8L#| zJB6HE-?s|@~i)DL|xiy!?DoijZ0w;3NnqaWr?ektC{eWLRp-%f+!&0r4Kw4qt^ z*#(m0-E-5RHiwnmodDHyFX`mgj zIVrZ*IaF!K!GWzmQtftW)agNa3yuMh;;!x8gG+zS@}m=oT6d5|B*!h}D`~ z?w6HW*e@72HtqUVgGl^eh?kRXH;8xN8#C3oiwkor91&)3k2tzXmGS52KBXHzEpNsX zT2Hw6+UsdM3zS%dm)oqrT9OHv&CUJY z`&E)}zAAJ5WI`v){?4;hiuS@CUSrwwYSXk|KJse&xbhD76*--i!T3cmnDSs|(Rmu# z>y>cSS{h^FXSUxzo2g%8hZP`BkFDMb5mySevt*_^|JOHtsjhCsV z^sF+zl56-l8%Ezc@x|n<$xNuWBM#mSR2-Y~4dtZTuc>GY?lT$w3}l^397KXl5%h() zbKG5C9!PCFwq^Ld`g$#txlE^}^B%29iYvwIp|4&SJkE)doYVy&t)rwe#V39X8H8*UG)Lr0&xnq-{lYEfnrYn(*<8u~}$nJGN> zCRnliHJcuza#4FnVN4+M)BQ#vp7I3T9=2c*Bze%8nUOeUYjS9iip)0l7*LU>x5Sew zp#I4AYAx|pFpZB*G_ANBxeWCFJEnVq6k+|)^$2l*<=;=!1HkK3`KE71IM|(yc{lt6 zt&&T0)C>MXWe^H1l>6;ncQWq}PK|{Ij-7z*yU2CGv`8np5C}E#XF6jf;VJ(pzTP-b zj@#a}QjtDYEQuMH=mnCC*rwwjYC;}pj_d*zz6G{D2JM=gZCLR|1NZe2CRhx9YbtHC z!S<@TV*EIGQl~xhF9OVyZoy!_Oa7{p>Jw&>9zn3K+`K4-q*0v`QE*uDZR&Cm62kWr z-`eBgN}4a8^mKNlF8$;XDd<8r;eZMSH%(ApSreao`jrxoDjOcFpl_b~7PWGN{xyz$ z78(tIK8m&{V`83vU@tn3iLr#g8F4xvZE@7X0s1MTpLrFYIxWGKx#Ie(FpNS-D4wd$ zEGPT}iy~{=e_P)rtq(~wMo|qr?-plk-Lr5T1bcZg5RJ5Rp>+1r@z_!KrZMGf9duq6 z073B>KDfQZoG)+g?y@hXq7+5o`;SqQ<2@KJh#`nOY5l&h<2Sr@VblW< z6=h@@-9Jyu_i^H1%o!`omzpRBPf_oNMRIxVmGr5Bje57dS`!O0LU=m(7~Ka#q@LS; zxle`Ljh`)E;$!wu!?Dw^aJ6%3o#>bI^K#cil+%W#kfc30n>jJ!02p6jxGaP1 zP><`nD#xN+#{AxP;Zo6XcM?eqkSg=tmK6>yimDTF-B|Jk0zD=?gkEQl9zTyHo;9WM zs3bL(XCc7qpc_RkjWZam!`Ir(I0^Pf0Qwhi%ay=Da6LJp%Y(WO;Af2v<#6(QFZct)IAOI(aZBS(7rS5y|E;M{SAc4d*y)lq%Yw z<-O#Cl$IXE!H8ZJ15UfXny$?6zc*~!gq#3P->uY?ek6uZ5C zN)oSa*~8;hnUG0cPyRQfu=D<>q_=h3ObE<=T>z!ck^n#M5=5o2hO$^|{D;-_I}cmN zzx?L!B~eLVnv*uC%>Ar-JBw&C7>x^zT6291nvis4ubun&9c0n6PF&aPft5;UdR)QP z?q{Q_FoD(PK|(KuV*bV%FQl=-2J-?1QH!_e(d9yyl2(3*jPv}Yp`*9=v?W{k zKif$QdT)V8<+VM+t|w>C3cf{ATlroEne}7gstW$BGIm0iC&`yqW#5iTl4M9TpiYrn zAu@+s`JM$~-wUGcdf+Q=4ZydIw*_GfetzK#PW})`LB?a>S;l9=g6r*QOGWgFTFUWJ zlH_hdqE#<8mvi-RtI1rm+anI1G^wMDKqK<%+JWz0YQk znG5GDKI8}<-C>kg%!U0H;z89AG+>F``Ti**ky7`yPKq_OvB&c_Fv30B{?g~fm_c%| zg^RW3)?3-uI5v(na6wq!VxZWslfyz7@lIHsS%9|@9rCxpwqbeha;me;hlknKhrgwE zQDpp>8zOgSB6oYHcIz#73s8F~3r`lmArk*C@RFJ%NOYTw)9eL0cBTOs1%`u&CfW%W zL@$~4-mksyhlS4}kNo%Klmf$XG$udC5gvRlNqWgxu2Xaa&Mx%6Obx_x#;^-Q-1hjc zz+)zCQ;dnI-zy_jphA#L`Y*0oJ&kyEUy4F6i2SX2mL-VTY3n%aM5U~vX>Ys=&8s3MR|nqv%(NL z?K_So!tQJa^No{2(uRWSyKPD`U{{9pkj}g!Ivv<4YccWJ`@V-%?~?_=W)W?pz_LjI zyacab(~0vtA^^Qv9ejBBCd7=6AtA%p@ym2o*Q!uVg>j@jRd@a47UJ3skq~S>!+U7s zFysQZCHs@J`+c$G92lO4cVDRaW))>~?o${16e;`|);T#8l)H<;kCbzd6H22_Bm;aM5Lm0dSC|8aV!_&)o>3C=!TgYd|#OUhJJrB~e#hRo=H6M?g$viGk-Punx+KA$@4Aj%->k2iaA zi``%=4hO`MpZc!Pfrn*l48N!U>1(r%tUQ#}^i;Tg@;Y192u$DLq?4Uu)xb?vJjBnj z9ecK|^R5~R3FyvKPbT`z#j72m_duhd4!CNqMfp8FYqTqtJSO(F!MIIVDO_-{BTOuo zA5$gHVsl?8?0wyEhZ)Ke+cx0<`Wd&tg$xrNRq)lr;<`>3l>*@8gL!`` z@PDGIxM$QaBB%LVVne>lvCswz{l|O@eVgSW{tB1Y#;LIAVssy z9}+#65x6$>XE-8D&cKjNn6;Q%+-6M_ z0vaxMb5`?EGh5L*}u22Uu^UPr_J)Me!|?u2-%S(FcQ-B1g5i{4j$=u?c z``~}#Q%(10T3T5-!p%X%oaTCha=RsAlD+~q7Fb7ycy1iuwAB2BInA}MFNGj;G~A)m zRgeh!__@L<$LW+TIq1HOs-N5OM8u9VDRhOr`*j<;HuYd)$r0tFI-8@B60b2&o!j1Y zLRN*#?CwXp?s!QPPCS*&3v2DJj8d9$3iz7>rM|=IeoMDUT+*mqFuYO-x%ucouM*$C z$HOfDB^`%PDQsTvU-!#%Jl6odpV8+hpFG~@OZEeq;3A0PayYxFJ`Id`Xwb5{*jPQ$ z_~Kt0uV%ve$dh4rTs$3y?yzTQ2{v6N_A752+CKh%+&_E!u%|+kMzV`}EOdk6-;6cI zhYN_6;H@;>?uxY*o-H`ziw@U3hDAL1ZP+-e-#JK~%(uzLbUL34!KPp`Z~v@Iz}Q5k z(w9{oFu%h#hTc8BC~GQWqMazO8fczHYzBKQOA>l;nTN5i+-g8GR|v1IqoqT}x4-^+ z@D`4hS}gumaP+HNH{rLYWq7Zw%j)2~Z0WM5m3ne&KMbo@EOZW|L&$Nc%<7!Usqe++ zQyg7|wYG~NqJ>DH&q+l+Gz(*c#j8i?DczgU;#;^08+~Z=6IDcuuZ>`PhW zpr2R6ogO?juCl1P{`0VX=Nc~{#DDA3FW zVxjwIV<)+SyhFTJH${E1aEx&%YfZd>w2vF}8wp_CIu6q@5elx#8)RDec?(QL(691c zr~c%Az&wNw?#5VeT<*Vy$;eoQ{r9)~eHeFeNM@`^wLA(l$G;?1j6aVx!KzYgG^gym zBxX_Mv+MeB{^YCDyNwomNq-U2HQ0u|I{A@~VOZU}(A?#>@o%|rnw+$qab9)~zb*~r z)eMF{IcB2%dM`C&&hRotTE)|}L<>o!MVb6&CN@oe5gbM!J+ollZ`E0O7M1GBnU|`g zRO_EojNe@@!XY20N(lOdMXqA9xY9m`RqT2M6lCkXz1wFst5>0M{)TVuG8Ds;h!lpi z8ozZQ+UBu5Qhr1)%d*cUN>0V%bFmx#=%$fFcZrJ+8R1DmrjhFF7UXO4ES8pinvh{= z%}YsAdG))`tCbKQyWPv|0^5@QIX%YD$xh$Dww@=gU~cG3!fGk~{x!(s&@bvhVrrkZ zFsuEqs`Tm5F>7R>!20@VDx__eT~ikNm)lNW&FiWne{`67oTS_rcg2(y?hWOGdikFX z`A@v(+k>wD7-;+7oAp!FrMVgyH{a4DRr-RcUqUYM;sTfYohi|Ci))mJni(16PjP3h z1)=C-y(30v;W#WEXdL5~*tJZ0>9eU?Uig?}@GT2fc982K-gf5Y@4qd}gHpi8HVfBh z#rbYGb!aY~a*X6XM)AJsa)%i@))bWyVu(7FQ{x4&KAy$6T-P-sg5a9CfPiN?X@iyy zO=Y3r>R;Xi!=l830j;~6JSRiObH*j5h^nGs!Y4)Lt?%FiypyCic%Nv!*#m_FEwDVIUlQbg}NxM(}a_UB(>|vOCrB1j-8fex}Slgq%>F>kThF;)X&u9&}+36JCb@A^}T;h%CdasQTbcES^! za)5jfn{G%C3@_A_#|s!Ch-(GsJu9aXpn9R`jGwX>QzWe zCpEAAMeiqW)n$a;PJZO2b;y4w51h?b+j2vp6I>aR7g*p#@kSi_P?ADMraWbluCPrv zfIKYz>Ux~-lHY2HNy;x^%4}Cs^n+C{bGqrqaiTo?vnQ!W~KG z+p)=6hir7bAh9Fc)1I9Sp&Np^n)=oaL89xamN1wCq z>Fk$7%io09p+onc*iv#IGlle=BZO^J*YLoUzv<_MKb^Kjdt1%Su>&@Q z4RX79COh`&zkLmRz@AJ5?e!;ZQZIYk2xS(|j?gU_t&gg}pN)RDY#OAY{DWyiLr6p_ z`x?eePpn9phLM!7bo~^ulhfAChf9`yx6!-gAiyAsla@g&9j2~c`|3Tj ze>ber`|p#aM*pC}=gKthqkxw9d|O^;x9&pWJGEe%{P~uUvJ4E z(K@ARs%sG0C%nvFuUsZO$jZ73nT%kW1L0U4{aLw!f2{-IS?aYi3w;@>a1+UbFt?;i zZ|b8>__Bz95NRjBFnf@%eOEkFJ9KmAl16?dGTcZ2X0-L+>*IvNbKK9u&tJ;)Jje=|i;_jY1$KHp zPMpyD@<<)DWOux`!)|)0pR7me!A?b0qrRD}%?NYbA9Qbl{gasgJk5vjotE;zUKZ3u z+XiS(2<$$_F$KIcz1qDhJQix7zKXCEumX0uj?Z6uNq^mBE(LR3!~T18`D*@npe3%T z@f{!MYm(epJkd%yiGZh37Fd<oyw?P%TiYE7le0g4kLZxY;vD7)aVF0A$b};oYepG>?W9+GgL6i{PK$j zQ$h*`>fOM?6hCcVhRxZVwQ;k>cX#S<;ud?S)zr}9 zuNXJKZjTK>W6*6d@mg9%_pc8UlCEBt6U9lp$Jg7lY~MqLLkRHb2U}!-?~^e5#2HvI zn1tmr37#2!U)H&`305MTxap%^2{4#e3MB<;*EPxY zPttwCMjmmOAAU`gl`6gF7b?+W%$%mt;IIDUDp8_N&#iD5HDcMMU$dfE^MD*Rvfro| zFzYT{v}k*ma}hOV-?QV&Z#Wxm-?4T1B=nxF+I8{x9vma3&QF(x6+7}}p<*LSkts)| z@-6_c%60MFx2F)J{Op4uN!A>agC-#@LXK(idF@psgpCkwXb|Q&&yEs53Sc%s*X+QD zmLQWNj`<@P9tA~upctvb4Fd=9Q?Y5gln51W;*L05iUbJ)B6{>Zn+^L5Y@acIhOaa!^9wL&{{zAvPe}j( literal 0 HcmV?d00001 diff --git a/data/objs/lizard2 b/data/objs/lizard2 new file mode 100644 index 0000000000000000000000000000000000000000..027e9ec23d78c39f7154e55056f3742890c32023 GIT binary patch literal 1286 zcmV+h1^N0za!oP-0000D+5i9q_*Chs{pdcwd^`T?%l_`G|HXg&Glt3k;h*lF-`)cM zaYy~lpZkYT56%7G`MZIjPabEDk% zcoPsvNf4&<6Km#!pv$lx59*1c4R5n`({UKtY>hKi0R)!JZnnv_NFZb2iHzzsrrIK# zs@vjtk3QhR5D}5c*xc9aga`B+k9jl{mlo~^9@pR;wj}%e3iU*K$DVn_YtIwMx;CTH zta&Fiw9Lc$EU~20TvtOV{(CD*Rqy&lF8}ul+*avR?j^W@1N2zJoRC3k=E9rIGS^#`l^{Gl|6DCQ1d9-kr?wjB0yU2^D-j}ujhX^EEfTiPr zLYTV-6jKNge!;j%OYDn~qv`aiVq%3hMtHlJL<*VEh$bcnsJX5^Eo3HG=#!*Y;Mnrs zN;Fr(i>{Kl47ckEwC?X$)jS=Pd0q#Ga6Rn}ccL}f$z>N|m9-BueLplKJyg7yuX(J6 zOChehU24~X%JT&}wP_VHEG{3;RYSLD6i>pz(n2I*Dn(LhTDz$vdcaZYk{owK5Au4S z9aQ^;L_6A3C#6I?#c#TC?=~@dhA_*xDwvkzT9?u`7nlDuady|pm(N$GCCP34BDEYeVn^SM>SjCh_eg(iI;1}8x9tf!WVp`9Vm`Yj7 zVjB;Muz~@RO!s9eKn_GSU4w{Z@B~G}EYZCI$i3wsz^%)h%m1hRC7=H3bBr(Cg58n< zPj*Rj*+{is)DTRi7C2?kf?u;=2^;ZOozGYrg(heW%7sExL<@}8NM%+pst4f))c28? zj(Q{bu(!qVM?BeKlx5{`kE}12A3F#=c~F$RcKIInCP(lt2k&s@t~ek3&xzdf_fI!c z+X5FJ2N%2hEdfLrV(83ga;$6nr;WfcPBP>LroAo;nzn8bT1Z|=ZuIl(YSgut>S=IH zC3+^LlEGz{F(p8f*6vBZaN<06;ZkVI=bl9g+%b0NIvX2zIkl_9JE{doaA?biVG)?r z#9lyNUBQic{Wv(U2j48X{>A{0wPCE@oJ>Y%J=Um4tQl7U95sfTrgIQ47JLckGaQeD zi7B2cbDdQAG@2?RhZ#(gRF4-gSMXij-#vdW(0P>4tb01OKNfP#*NLc)#!0?5yCU;qFB literal 0 HcmV?d00001 diff --git a/data/objs/marine b/data/objs/marine new file mode 100644 index 0000000000000000000000000000000000000000..a472396a7c86c5b291f193977b7c933ce901ecc3 GIT binary patch literal 12240 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 b4l)oF#NZbS7byZ1M9}cBd9uI1K*0V7(REr8 literal 0 HcmV?d00001 diff --git a/data/objs/marine2 b/data/objs/marine2 new file mode 100644 index 0000000000000000000000000000000000000000..d7939d0c65007405c3170567e9e9b256a63f27ca GIT binary patch literal 1380 zcmV-q1)KUqa!oP-0000F&;S4hRv>I(IMyE@zKY3x$&9H~C+VmR>t1uOuLddkIOsK`@`LGj|btDPE)hd^bp zLlz=86lZ6uLp%rWENpNq!tUX_Td|`?2eHn;ki<249S*Js6{)8(3y}a%u){`oAKq*A zc_&U3SaQUD_dz+Tnt4Fd<06x&eB6i`MScl(fc3%kL@y8wC>&-v;Tt;9rn+eG8jTeO zY`9Z!9I*flSif~^C*0VDY%|M5n>PC>YDr9s6Sa)HD zAVXBgt|LXrMu$XeVJfoq1~jw>%$R|pP$_OJGZqhK=*eK6tzt2wl^B3$@lr#g*41%v zP7!rw;Z8*}c<7UDV(gzWC+K9Pf6)Io()(J)DZu+^+R){#0v20S)P$pLD7N>#OGW@J zrZ~r=>gqg#BCz|>!~#2+8!R!msW1RTBb_SGHRW=Q?FQm7oqMUx@VqvPAyZ+6*(m`%H0a)}z)w;&n!) zXp#ZWR9;k$!p63(v0Pf)a2bqA207G2g-(mGpmV5{fXvM@3&6tE?_ui4$=VwhW5uVP zDJ+}%FYufH`X$yJg`>Cxj2TE(-3VudP)w?%!&NB}#V^cH!mRXHx0d4=xy}O#AZ%8n zxE}_n#-J=myl8?2@ex22dvbwZ^N@{JdNoKolu6b(?1REJ6D3R%g%Yc139VQ!%5S*| z+x=-JJsL3_vEkNx*RoX5X@8_@hu^D0-S0-L=ZT_ci`;6AquG`~#%^9@_h4WhJDGHPpV|fO_p#m?VO(7 zGRM25b6%rDeGXTB$RBJl_v%sSH{3betvghnM3i$&ux zsPu+KCYDgCRVzKZ-*v)aaajDegG;d6?)zSEZ}a*Jj?gNBK&U_x4+w;UVBlCB8Vm#h mA%I{k9vub&!60zhd=>)=g~A~qC=>t!01^QK!iwesf&dD+%!aQ3 literal 0 HcmV?d00001 diff --git a/data/objs/phantom b/data/objs/phantom new file mode 100644 index 0000000000000000000000000000000000000000..4e9b91cd1f701329222af74093beadfd5eb08aa3 GIT binary patch literal 11064 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 D#`Hq- literal 0 HcmV?d00001 diff --git a/data/objs/phantom2 b/data/objs/phantom2 new file mode 100644 index 0000000000000000000000000000000000000000..a572dce54c0304f039b3cd96c6f62f18302a62df GIT binary patch literal 1206 zcmV;n1WEfta!oP-0000CYybcRs2z2C&RgTH_@wX1ySw}5enmZhe4hAUk!Rl`O#Z2| zjDAEW`sB}%SF8Kr{zO>5Dbybz{(|fJqt3_bu>0=n>NfeS)@`aVwSMmTPV+`V>p~qC zT}l>GN3M{SEVgM0-IZCjEr}&dK|%F;wImG8KD^2|t{h7xhh6iu%2E=%HyR7N^Ie1#19l-7CxwxT+-(Dy11<3 z@V2eXrbLf+#`>}{hXwM?bqg)C)PVN*G?VPYgK$oJuoh*OmbE=d%VfHJXugp#d$ZR3Dy#a!=jWMs#Q`FN)JJy-AWxo z`$ANq0aOyZaqH$v1#WHxBA`*ODIIBLmdqbZ>uNsWp$5SBtPm%aco#QGFH*>j03;Es zkJ=XEk2VMqcZEhZA0vDTJXBB>4Xq@n_`)~6EVl9*Us^Hsy?>#Nl7?5yBDnxO1HOPv z=*?z62+?uYAk@^4b4x>msmX^9DO&|ftlX zv?(soOer6U7_`whsAd@-K!ZdjN6MyhS?PZwV+M}nf|zp>AZxXm@KGHmK&G4u5M|i) zOo%8!&XZ8FBe8ihm5eq*EW3!D_&nIOQtKvm0AP@#O2H8|t-}&>k~Bl715QR36p{g= zEBLiApk%W?KMbcL;0Z2Ef6hvJ{t9|=VYrf)0GSNCFL__=-gFt{ne`p#OpD_u7xqzx z_6tZe$!Lu?7i#wht2Jf^v#@bP4fQ&MxqH=e0LEk9ftLpzIv`mcepI^P=qsnJh6mMQ zM8JS8SBJHfS%M9kN@@(f5U!({%)lQ6R?`w<0pob45TFq{@oi))7hQ4}9iXsw^+ZXD z^ua}X`fx4GQg2XY(G2#swE&-J_VTS&FX>m7{!jiO^z}c&ET^A$gNLFMh@b#FBrFXk z?kFH5R{5V8xJGfr76q%kTJCtTw`u|l$UvLUnT|q6|C9)XjnbKt4=wS7fh6l34Z5H^ zc@Z|Xh&E+pf}i zsEr94JQZG*CF@RS${Lg|LYqgZGoFn=OCTa&;UpBCsu+@!5uh?99ccE{)eZWLAm?mV z0EU2#VC*X@PLV^%#TAf4j8L^9ib;CKcJIX#pK2~x1r}Zw$JcZr|%2put2P~+7JTyip6pF?s6G_z~ znNX=)t`}?uODUk(aygv;x9}YhiAQ7r_((7t2nE1FAW%3c5efqVA#f;kG8+#8z~GQr UJQxK4002V(U{IqWP@tm#1U)G;*8l(j literal 0 HcmV?d00001 diff --git a/data/objs/terra b/data/objs/terra new file mode 100644 index 0000000000000000000000000000000000000000..e25a794c7ae5d73d65e2501ca7bf9ce7e496df29 GIT binary patch literal 26722 zcmY(}Wl$VV7$9H>?iM7tL-0Uw_dsxWcXzkIM{swypo_aN8iKpK%OXK`kp=d0cXd~H zzou*Y?VjoCo_f2cA88L|Za8eX57gLjaCTaL;^m-BNfXy=*bcbpZ4Xut+d(-5K1RNG z!2EBTV7;8nu${#xAanqR0PB5(?n1{xvtYgax8jen@AB_|P5;7f>|wj_e~ZpwJ7w>t zZ%5)yupQBtelXSbIi~6>6%}mvNyIe=HuwtDghjl*CcRQ}LifPpEijZfSkfz%@0C^&RK_rRYgKY3*N=(5QDDx>xa6DwJp7lj!67-=Lcf*m0=!T@P>w zHXQmJ_UTQ2Qe6FxAKZ~}^E_tgXaX$sZc96T&Zd9>>XwXL6LUXMd>Vw?t^6|aH%EYxW zJY_84*m#$DrCBzUq!{%<+mr>)Cb3Q&8lin>>~I{ido!a6uN~CgrsMl|U-OLI_QmsU zvF7<_8mxA~1X8vM-8O*vxmMbQ8b`c=|JAo|+kY^dftNVvHub>*tXpCO-%qw4Y z4)Yw(R!Bl`DDc`%t3V7-ovN)Uvo@iwc|J)e@+aS$kY%}Xzds?JTv;1z@(X3T@&Fu@ z;;HwWOv>d0YFQeR9a))fhgVX;UXj{&Sk`Rs!Yt<=^`5{R`I{W&%=jW>@uFj+678S} zZhQTjI8I=`wtM-%Kr5%^w;v4|Zk=y;304diSZeRK!qg!+i$JW5aRn zes9atSJms>4kMhEsT!x6=ftM=zFP)E`w#cFwJiPK;LI;Ne@r6&!slZd(x0Zn(Iqix zOF-4W_BynU$DK8N8zv9*>R}rQ<0;U-OS&d)OT8MZf!;K#)jaD$k?W-Ta9Ds1Mdsy4 zp#c{Q(l?b$>$hu;VMJoa0118eJ%{Cqp|E|(vQ2`HXNL9B!%EPYj`_~*!%l5UM^ZJ| zilP>4b|t9ghD!5&6NpW2D<*0i?{n2Zfg3jgrwKn@)UfXIW z;JIj2`|)CnLF`uJkvFac z6^bpRsCk~=;Hg)N_hD~*Gqp%EU0550Cr`MJ%gs_Ty8iiLe6_UkD0D+#+NyHRLM+Tp zWn$6XHox*0vU22BZbhLXq%N$4lCZIt2ek|L+DJ} z%)TS3AZuRGn&6_OGVE)It9gN_chpdt3D32k8fEsWcaV?|P$WB}iOY4zB^Jvdb*IU} z0iWQm#d=x#a@`buT8m}h-G_WAGyYVHN@{+5eXUEEc@!7qcf_i%kCuBT-bgVmXc z)8W_L{g!=_4<5?JveO(V+J5n4H7IOE{n~&e3zj#QkeX=MF0JjC9~}vfRBnGVap!wK zvi3JPT}y|SVQg3z{f+08&obfF!X`G!`r=P)vZ5cbRRivly$VtNA$u_1;CYnQhWL=G z5FiqJ7r~iAc3(Wrxe$u!??#N;I{jU^e`(D3bC&V_o^RB3Q6$P$?_yh zoD~hYm{|z|zlz@i=R;|xKNRr{Q5i;v`6340n53A3%l(gosft*q*zZF;8W@t&?w9?B z`#EQp_v`jv2X%VkfIuMcPUQ0&xc-c@;ik^#>;YyyKU|NKp=+0j{N#Hp8jogRJR_jJ zRuJ}zo+rS{8HB%)ibw zkGUN~97x!-?y*&S{{&?jt}Cth#c-0eSITO_&zrj1gaY^wH}TF7h>Za8ylN#+F|PKoDxK1@)Gu|Qi&PE_p>@FPJ8+N z@YY$#$o&a4njJrMSD>G^H99$oiR^Qw9_In|EvO$o;;D3 zzhljylO5<~fsX;VYWMRgs;G~1-*vytIdNnXP^CquS94hJTBlEoD3kPDc1s`)K%E9TncTQ=dwvbbO_Q_fo+9FrUwW z9TKc{_Sf&kWwyk;TTHdxb?XzA`CCud1M&F2`#n~MeaPU_OSJh>@XsFUt|I@}i$74p zZU%D$a@AsBFt^ySxilB{2zJ2Rtw4DUF3b>M%+vkSev6S*5Hd7q*@Csc z->TS>0{O_vGWazls?nl~r9LXoF9-@iqMUlWVFiyAJ`!xMp~1HX$@-a^V5PYl7& zi16bt(1DB`Q&S7&f`-+FCE!uRtLtB2&O_l|=57Mx>2JdCu;=^7d*9tt&e@Y2_sPOT z&%WRFe(ynBHpG{~Cx;&cL%FXx9Y>)GKp+RZ;V8AG5p z@OkkK4BJHt?Gc?g3l++O#!bMVcWF25)Dx411-NKBtcTa-U~Iq-9e=Fd5)AFBCmj|HS zrbX?!UfcQ{7vKgYP$`I}uf5nhK#mH!FmGOVw@kvg7k8gfKY zZS#S6lTVIiF_9*%4PaiIRdUj~2_#UgW@}-#k3{EmxKQW#Bg0|{9%N(uzYaksgsUD; zL~s!wxPbd*Ixk=-wlKlLplyo(#|M@mdCh#U7;nmZ%-zsS# zI^@}=f0_e&w6PvT)-Rz#h=AiY)sW!WM5*#r8Y&yYMgQ~3Bgj?HM0@&gLl?rnHx)<@?}$-vX60BK#vg45LzBs;qo);4&*7~_qEPxOSpie0gVePR@9nF*zl z&pMUY2YT7_fb?2ogEcY2k9EB?WF5aW#3owK8j$3DB*vDD)4wK*jqXYLLaMI+V2e$X zTf@Az->0ms@a$y1FEIfchp(G{n{EQ}-iHnE_|}QLv64E1>Xs~9X;J$|tz95Y-hcGn zMRvB@cI+Mv83Of%dx@YM#IU{$&b}DefR|nQTxA&9>*IxB+@$ttpRtRgOW(zR12~R5 zrOGHNedl8u$jUe0<)SrQ10QJtLHxGM48)yX(P-H)ZH4{~14TPUZ+%;dlvI*$G1ruE6gFT=w{LW0d8+uSu`)9|C_4cC{oK*ym_G(w_UQ^&FqW6AJPV>=u-knGd@_7vn3q1_& zhXv6DUK&9`iI2+#H&r}422B0wSF(Tl9;CfL(mu{6EXl;}3h=#D6+WjmIHBES3af>y z2IXw-IA!+2f4)#!$ohi?&^##MeI`lqzAeEdB>aNI;^SAXj47ftpi!9>OV>V#yuT7p zZYzwAgvh1Du!G1Y3;KmHU@>_E>^8ixi;|Vh<03rRf8LwfP6VGfa^a}TTPscV3%EYw z%Eu!7S8TfOp=zUeMz48$S^dLp4&#TE5wa8<6E&PSA!C{ipL=0LuE8#7h)c2O3vlVnvcUQ1krALqEMDfQ5wl*!hPU-!xm&-Pw!)46FQ z9-+q&z+)IdK;|dWL_yjz*HW#|BXt@31h#yYLr>~%^?^%AeBMIMK%K&V;k(WkcE|KJT-D)>AsZJoExkE2%6!4xrWq_m}J zLuy)1YAG`&y**H@!8!0kifDq-ddLBttJ$yUQTU&8)qPI2u>>S*rgNO@NbQB|iG;kV zHBHWa?h4*tvdCOl7(ZCO4L_g%igVSAVVs*u3CZEYmB0Q{Q{!<_E_cDN+;R4GCn0Oo zI~~MaSWT-f>ID3{AGOtij%l|eHL6a|XF%e6EFhFFE;b67H>9=GDhc5xJ4gu;M9}%K zmm>X2JvfkfKZS8_7>M_WasYja=_DMa!#Utsy&i&)_1+18V9Jr_6Zu%@8isPYqrs5` z{cTnfyqLGE1KcX$Dlg&FXp!e8-Yf~PV!ayJ4=E;ElkPONTX}RdwL5<2fGZ%Z9uHjE zwODzSF||0kBGVXROebFD#U?bfp;JObhuH@k=56K!6I{g_IIBDZ4L;2Taw>w(C9aH_ zfZl+!!oRbBwa6Qa0-;Yo-(DtRhskuWjW8S4IN!v?q`y2&$Kb*ZF-M@L3EjKzq&1kq zzZpcn9;|QT)IW4?Y5=-Ao|Ew6Uu|2@8rne5pA%?pXmSKZ`fxT$2WM{?8T!2KI>`Sj z!h92M$AVmfRw5_$jwd_n9%*md2Z}I#XZPq1O?{NqWigizTI9n%TABtZX~tZ3xywsl zI&D&;P4vIjq1(n7e$ihhmt%OMoso~;3gX$HYYt>c&q;3zLE97_oVoQi8FW9R7EScM zd*!ynk{&)7MneIYY`=eh4B{MR_38W1x22`zw0!2_a_?F{G%yHAQK#+hi(|xz!YEb{ zo~&zK(Zb2r*A5wa&9o^XHiy}83S1tvFIqF|`+AEEy*7tXq~Wghs?*%IWGR&P_*8ek zpF_UqeN~oAId@=U3w~p}TfY?G5~kQK?TJX}+kodgrpg~K`#C6COtwK42Ut-0-AG*Jqhq>}s)2rC4nZ=kNR4`!lv*t77 z)f#ixz!%hZEmO&v*T0`Uey|8(eF!GHe(ptH;Ez32BsA@Q9Pn}?K?eq_Qch>hm4`Gt zKFQtCNIhZV&XsSD*B_E~$A387oZ_ft=pC=OCe!o6FR-*8rElp%-tnxcPReL=Fy;!0qmWMZUX?wqttvKdL z8pkSdeP+E{RM<=}OhqIs6EhB7YqIP6p7kfC!1q1Hv-`tb2mw7;{TOZ~^HOo93hm~L zL^O3Lu=5VdnjH7rL_#2)irJUnn)_uP4dM7|<-hKE8sO9fXz{Lw>t_2=N9{fF#;l7F z!*~~9C}a@^ z^twTY79tb$ygGUYX8Bw@L9e#Jp*#&$ZOd<*fjw8IYu+oGqHkwgAdKB3pGWS7JNGgC z1~8eA{N$U8>sG}aGH~CyV~PDoWavggBNw|&D(tv@Kiq-dCSp7cZ5>AGbo?`7!$zCr z1N$sorKp;XR)ySnnDEA|>L)U(QH*RP(MIaqSiEc|47k;PQxYcqfW<~!2kLAyYLCMt z;<`_sUmFQLN*cHbK07eQ< zU7X5Z%|v4q{wG`jw<_|?FL=n|S-EwJUoZ`jm(rJZSkJYPS!3xEA+?B~bdTAP72J|D z?8^?wyhbzf<19lR9vEH*>i;OY1D|3H^Xv@SvNNa#(yr_8hmtzf-`Lt{0Cso2>NA@x zt=fJxfh@MWd%|?zv))u+`h#HF_dgOwo;oW0s%-pn7=zD7Lsn#o9#Vmh+gTNaFD)7m z5HVsjP7TX_p8s$hR%@yUuk?tyeQSAt;+p6#6$AiwH^fwE`x?_x_S!iU`SWa3@?NnOLMF zLX0&Px(_;bw)wjXdgoGExYRU~%AY6hr>`eXTqKl}+4}Mug!ZdX9+PQz?ox0eYq%QtUZZjD->f3$0-S`hNgi=o|)YmSb3M${Y@C0Qkykclv$Z zt`+XrRazo|U)5~MOQ?5EzMiS}Y~|iGqg$PtK-E3!grL{t zf2I~6x9iB#Q~@|01b4Gf58HqKyN$WHmS?K-GJPuAaU1E~OY?^b97CMOZ(GO@CSP{{ z&Ex4ilmDYy4oHX%Y)0hIBFFYHAd|`N(^~yo$FvTiu z%naZV<>MfczY4FrLyr$DAGUFKFLa?qFv8Tu!6V1O8sRig=RF>wCxrhnUVjY5N+ARs zp{&ELe=?kDCy1!*kn~xA_u;}gBwEILb|bMY@z>tsU>CYxqL!gfRgS{J{Xp|Qh`eVY z=~zv+xsfWv*fxjb-tmGE&k;qwN?qS6t}hbOhL|2GY>;bMpW-`dVpM_2_3Q!2A`T(g zVKp1Z@vG@o;NE`cuOrl(3GgljjO-vj7OW^!VWj-*{W$ZT6H{nR(XshMFAXUQn&~pi z!eeCFHhH3oQzv@D{)9iayP2kinn$n9%xD4&H^{Hp_!+rMapTrq@IW9ZuKu>T%a$wU z!uYVnlLj|d(f9~G5OE$!+xW=FyWbA-ap%sA`H;`kk@7BGv}&+{E%-Q07q2O~Hu(5R z+bEV(>*6{$EA*_*e>VI+kJp!Daz;frKZH{NsHO|chYi7+U?KOW(5J%S*IBXm%EI^4 zLY~Qd(+&~cRnffbKmjADz|?IjZcBQ@*F3?Azs<=+iYs1i`;3B)`h_!1L3DoD_QJx7 ztMM8NmbEtocgvf)wsFFi00p5|N447k?%I3S_*NP%Cpi6LB*m7cdX|T7VNNcIpUglG zYuhe;)@_HnB)`(9@#P}gaRWe>a%IeSz{*mVw~tB5)nw1@{z5^Uk7-FOJiv4WVpg}A zFy3T`x--Sy<31rxBpGwn^09uWM^fi<%(0#9>~m_m%%+3Db`F!qFqn$V=5{8KU4cyg zjM+HFe1><$-_C&jJF$fx+caA25wm$YhQLiPyE2oVgAip@6vi5bkDm|a(tRiU!P!Hl zl`N7nVVkV#_Y+a<@|Du|>aqhbM(~s{rTnt2v$kd*zxK)8Rrj)QQ~lmrP#b_QWW(jk zkl5j1yAwo#1SobkA%(SjtA;N>_%sUOd+G2@yVli~t`PMH4J~}|8U5u&UwOB{FYMG7 z?_v}jgoIxKGyii|d8@#@{p;8Eq9YeC)0lCUXTMHbSsZQrr!5)xc(PqoQ|ofhP@M3J zjV0_&;r>wttGt`YavNXHmf@z2r>i?tg$Eaiib2w*Dg*8auk2L`ZR#Jaf_7ySp9&VA z^RK(L?(wxfJoCuTZK*c4=_7%U0)MnlET5K_6I4u4QavisH zz}K9+=zlCkkdHW4q@TTt*DvV{=NG7Q^`qG|Myeb?INA-R_P4;#AI5YG(k+W9;*xvu zS@bwXN2lpIWwOrID-El}N+aE2J1R*`)x0DnChl$S&mKjjq9xJxi46GN9i$_; zo%suE+KhvSDfwAysiaLSTk6_+i=k;HrHN6N3SzP=CW~VV-X#591YYk*-31rxVfzI0 zzi~cso_>zodtGb^Zs;$Qzr1d_zFOZ-oQ7@}tX&69uW#FKZ?^PMAdt0hU@C`GwRB&( z%=&B#)*UxERL2RIuRJ|oZcYkUt-KTW$WypU1-AOHqVxC2)p!2vGg|<~F|A;&bRGqp z?Kq~$uV9@{fG2ow{z@K~dmMT@BHtS=h@6aNL>QZ$u@(^A4K>==QX_d`_;?7gRMo&Y z#uLsblvJFuM*~XebNtPXzZjs8Q=yJOJK&p(#zGFdGb=A!t28GAHNcV4^^J8Ek~td^ zD<8VtjRW;JK?u4SLBCI4bghm~XbK$|`p5renjQ^4(uAn5aH*w(b6Ma}L?zDUC?v#f z6>;1VV9N?c!5ev+$pd{b22S|NKh))=bChGjJbTw;Wp^UO9joi>i2GVHd&&O=9F zEfpL=qU&@0;JtzZ;Tsd0^_5oeVOc?*s)_pgRx9|VOzOF^LE`)=K{UW_X2Kq{BIFXG zYBIsYn;YIo_VU5FA*L?OAwMba1ND{(Q}aY+KLf7yjahSA zTwku)^(L#z%Eszh#bJwz#=6-|2eRMgA~8oE+XTpyiDUYU(_zGT?#kuNV3pHiq5-AG zsW5{n+h^{($)WCDw1aEU3wels2uH_*$2x&kzYf>>Z-R2~dbA?;)XQO?aqFX(0z;O4 z1<3lfE+3N=wqd13cjwRGc7&ZtXWbED#=8TbOWx6z@~q z@D&EqBiZXU-K|fUQ)YE`>VOg-tjh}hHzdhzOSLlp$G&Z?d)%R~M*zeBwM zEoUC@b04JeXSKB{;{gVrpYlGna_u*hqg3Ki$U7wUBLbL2VWZ0i}3M>(jg zMlS84>kLHUj@ztgUlbup5AwCf+}CG+id`G18HRg9G`AnyC&WR6)Te)mUC-^JCTwY4 z&%nmg{Z7Vqt|&>*YVXJ{H_F)bONBvKjd1w2w7!wBop)oLmhJiXHFf^anN6(siSCC^ z^EH}QtsNuJnP}KC1wf&|j3g zkYpz8+fqFe2~f#FMos|o?64j7S))_RqA05t&^6!W)!Q}FHrzKn^ve7d)IKD3S9b6(7aOrKCwxnAPm@2#4z@w$wU$0y9Ct8A)TMLo3DM`hPnwpogy=zZI5 zvoX)k{qkrZ*h2;*cU|B4VdXF$*i5LQKq$EF6SzGG+{s?IM(QtA@ zImx?U^w-X#A#`mi1`v)iTBB^lEXELFb`i9S%a^vXT>hh;tz@y0 zs0Lgc?SoAv_nV-#YvU^ty5RhN1CfpP2fnSNYOyHTdH&`0qMxo#DsA03mX0LpW_dD+ z%h0B5_mbhnw$a^lTvwQVk1ZRO9jbyfJvF=RJMQy*% zU8xCN$EJAN=40DBo^wjVS0DsY!-X zAGWe4xQQNLW^7z-ixgy(|GLV~cDv`9HTo$08*bN1b>6}UD`V_K>wymWkq{rcZWu}8 zsE671qCxV^d!96Q8!?%JG)w8C4fmW%5#c0)ud+k2V>*&UqGfDbY{WqinMFk5H-2Tf z_m#%wOzEhV#$!utuPm#Ns7`&zP9;~4&W?GX8!OX*%y(OYUK8UiukAX$KfCq-ltO-T zDm&Do#;oR^#^|i(9`*Rz6Dc(p8LPQKUGaTT{%|DI$i6i z92+~UbKSL9bYCP#4=(#+sXk`3ch$EMw#NZRk|Vnee^3Op&tpe%Xm|a1?4+t&zX2~f z?3ldJ6Z)Oa3;zE!XYKRN^JaY~r|I+t2=V@PzP^ex=_HyJq^qW@eosOM(p8%Jz>@b2 zfEas)`Jc!9lr!yfEVcd7%GxOfIH6kOo#WN+|3^js(VVV>|A*$BB88{H$(R0Q01xDg&s#?=1&q8FYOVum^6FJM{b4X%)b{y-lfCDrQ2vyBo3{)oozA z8!%r-Ra%(e%c9~e^aQv=y0BifY6c5-=r^xpD0&6|i{G7nTn-9{iTwjQG5-tbh(B&# z^s9&ViswM6ZmwP$GIV^B?z?w)wDWU7zNCO7(&;I1&@a(BZBxD~Fomj%KM&fMeeL`D zygTpCWDWg{^d+atBSKS=h45Lr{7>J?IbFnphUG{%N%%N%j;ZRkgUa+B_$Sx7)6&KN zaU9I2%jKtikU{{Q)IV3$oEb`yHq<5ZY4@@0aSFgBr&?b$d*`NB(=S<@p4|+69{nn$ z{cntNsu1LUCH%w33Et!u;zy;X`hc~o;eQWZ5#xl6OAjfIjZ3Gdi(HH;j=wF^$NhL& z&rr@V{j$O*lVe4IN}NZZ=m9v|Y5q-@fiV{X$MXZ$Pb%RLFt$9nl~p2rq|@oiZ8HKW zQ!B*QJg-9k%braJ$hw-9Xx}wJuu7H-Wi`KVy@O-Pm><@496k|U{&Psxcs0}LwXN(1 zsmRmYd7vr}2_cglXO=D}0;Q(@`q|%qBaUB-^q}CU9*`3t&)7emvnEqo@ zIn428Hch{VU-{)Km%$xNf33mO#z99u1=F8nDm{3cYwX)55Xd$vq`oB2E$T6Q9ha40 zgFZ(-stbXm^lyIP1lRn-Io1=Rj&Lm3%MG5^fSeI@Zx{R`zv{p|HlrRKYYhd(;DwB9 zr#dNWBgRP&%`@JY@QJJ@^D6|}8Ykn_BBg==wsOsNndteZ&yVU<5&}%t>2#q@tVVwq zmBUW{i$c775Yh(e3vsi3(G7}#nhP8z1mbft%aF0<2(j9-_Djn34G6C#1gt355(^+RgYSc&A>sV`dI07Q1j`@28y>N&iL^@Jk-W8lX`_Lo5U%F`BIq>Cf5nj z4|5kO`TGx0X843B`v>SqkM#617?~Ys4t8SG;h!ZdW*4#<9;_CMG=>O zei+F!(XONEbPiBi5@lR%{V|Qz;I;s+v)Z^LHA$4tR}7xdI3;ksmeb9s4~|jo=IX1^ zhoKHV_j3D(|_NF3wM}$k&f+ z5hlVR{-9nypO({xeOSVK+%vY_$LB)am#t6toph&xq2sBVmEcHVd@xmE-LvM&>tM$k z71L>5zgtx3uCC*e^pqRqL=dsXWA23Dij}BYK7U;x|XBQH9{Ltb3x+B>+ zfD(uvg)-CQr#`TY{m#_%gY|p*{JrG~nQ!htzEebk=AmY#^}qSfX1ne+<8K)ru4wqd z_t!D$BQhWKGe)f4B(Y%e(@maZGH=DkVtW6}9uhn%=YN2w`}?n| zQ?2+3h-dgJM@j_cv?8(RGyT7$hdoE({&Z(KOAOpRE)oQ~N@LxF`d%e#b_RhqNqr;E zdPy&WsPx})T0*jJ$+w^EFiJ$~p6{o6&yTm(kBfeaW|{Im?plGGH;DQ{#{!a|c0UfS zyTlYfy*np@9#v8Tk1 zyD-9#eI;>RhuMB)z$+7;WJ@j$h5Cn_vv3f-|7d$Fj>`JKz(*PQ%{k0**b9ez=4FI-$L3HwBb}c zpgjninj)GU3_TzK;48`V849eLo^zd6hX{*%Z3S&Co*8oMpbfR0b=8lKO^GqCTek2@ zrQI;hoD92&sb{Y9^h$KHLp%oNqpCKkJIYnqi4-?SIK;f2>9_ z#95@#3&>;;oK&jy?@IYF+r4ptQyN^^Hhy`3E?Nh&DN??2B7-}Jw01#S*sm-NHwF?- z&sqN+$a9_qGc}%X!n}-NHTIz}v5-NnvXoFJK@}{q(>i+ex(k3&qZtNa; z$%F5|gv(&$B@MoaGS}1TDi>!YM&NY9+pzIM3FxT4D z>0M0IW1h;^bkdLa0M}dPq~4e3On3O#OaG62V)rmpyfXnH-Hj=!5f`8IkC_t5aDy2ko8et88C^LpzF?d9_> zYu?)yw@_er6w-Rk{|r4D+ti<7$~q@PL!vE}e?D7RL2mChO>ZAtH;_`9;VSuwazzHs zo%v`W#xa8nyzvb6GmdKYy2`s2-yH>H={d#Dcl20?zrW`}FXmIkPi29w`#+@`O4fHC@N0EdDc*nO~H{Im(7wMK~>Lkf$VMIt$D^H>xBy zNagdu=4Bs>Onzg#ZC=UPIb(b$h?YQmx;cm^2OBjL{g(zV&!Hg?k;AqKgMRe-<$m5u z;cA4hTzpNM_!HY5{=u}v?i_)dGEY(g8ofx;^3gRRd4yr!4f7C#E58L(6@;2-rd-VY zHZg_Umn<&~_lluvg|eu0@@R!1wT5^IiWlphm~G~hU~Za~y+}dGuk8_He?0dq`h(jFnBALe z>!tHDh~v*blY{D}Sy|*}=Nrcs^(VB`uPmrEm+c9OG|K)9=EtpOD+`2sahbpq%>xAT zEkOBnAdck_hq}u}!}ZdRA14#QTi|-g;7sAvgD1WF<&@CvLkoQa_!kO~k0sX2K_laK zwxd&jX~VDWYz*%niw4FOld_>=e4cTFsdaGc?XK)94H+p7 zWLBsf%Bx6Eq(UeEjdQa`tY-eJKKC@CR-%VT*(FCq>bSYP{#W-D4lsh9W2VB7-+Bq? z{8JfJ=B>;idgR}lkFk7n8C2?TL$JUkb23NK|c(=jUv=WD}uk9+pRdPv&olM#XTVV7h4zWSxF6~fOoW<8dbfbg+)pXG3a zgE_#yI;uj`K3Tw#c9q&hc8?K=LZPE}S^CnrN;^?z^*@J{f7wpf(qF`#<4H@VY6+)# z6yZ{DE$Nf9-ep5%!!{F@bs{&c+sWRrDrFuV_7%$Alm+>1;p0YNcp%b-vWAt^{w1x& z3lq~$tkoJvIUdDn!y{NTk63oSUg^b`9+CGEiwV}LkhS%3a|?0v?EYx?7C0MHmfhD7 z{Vo*Tz&5Ys4e8;j#8YjX&X?N`G{PG(UTtg5m)Q<9h#3)8Z7ax^T7v51-7ZE8Un_Od ztk11bI|PTAH8lZBj_!iJny-NbFH_t~{Df`hFqY`3*4RyW?jxDwT7YC<@Ha@rE1L)^p)+o}Xqu?GUo2IiU zQko^M`CiUPlOI!@h}W-;b4j_@NtN}Tncnn{_B2K`RDgw z3XOd?-pkLRIE>ow5%8B#q?_aJOHjYlM;;vpHXex2pRXzMb$-U#xS z)Y}-8^kMF*Z#ShJ0U4Xc8DOskyz~o2?Q{hxod{^yzqSH2-X;DGPbVK!VK{w&M?fnVdGrB~JX?*0X!0jPx4*~l zXc-H2fu#Ux`ZPuB7QvB|V3|7I%gmmPM}+@|ExtTsR_Luh=)+qd2P@?Aou zn>MeXMRpo&JGLKQVd%&I38_bYjQew(_9=bCTeMi+K|2l-Xg~EDS~@@e-;xR!Ndny+ zjoXy7NLkWu>HNSS7ZxIPB+pysrGU>A*fQaEsD6H8c&K}7>Ts7rRJc*p=A9CD-1z8- zLnUUt_?RRS!$VwWT3j?}a8molf9-_eP>~|wsfz_j(BVJ84akHIaN%R%;MT-rZQ?Vb zB|lz8@`U3CLI!eAZ-2k9E(mVB0o#tST?>k?gs^VMc&ZOxQHI8+Z}m^D|ZEni9~y!EHi9+tJ|!(4!IYmKW=kl)Jck z;a+<08c}jE#U7WVSX(N|&Vt*aOwM;jJ-{YX)CPUG1q;F(ji1_>_|i-8SAU7 z%sUr!IdmA0lYc`(PfK3Fy($4MK&kh_>0UX~AT_$;T9rWPLzroW6B1DLZtXFCGAMfA z3?a%2r`LZ7z01|_dQw*1bM7bj#{M}Xf2)+=rgFX&h}8bz{MkpH%B$qpMvvn@sj1AS zpWH#r;@P*m{Qc_7y2rsbQR=e(TJEon6?vZ=0(ic!lNNa6Cw{IqOP+!AEKrU$Reof0 z4q(*~+~Y`R02SVS|I+2$u|?B%G~F)y(KBWwB;J0m;r?@5T(`kZM`fzn)xZsDyk$}W zeimY$SYN0>b8ZonGz)`RE$JJ)@xbNl8rV?zi03GSx%eDGqp{rQN8u5-se_m0ca_5= z14j9j(mGQ!?KL#5ux){VH<}H@5b9V@Ky|~0ae4uqbp=9 z(Zw5*c^Ie(I%j_fH4@)?q=Gpz_XcW;c&6>}o)ba=n5VirmW>fmkL8C zZfPuzK_+38)l^XdxL<|}PFd5Gu&i)QTl*9|McYp0`i(KXYCqqL-9Rq7kvHH5xeABq zcrM>I21w2a2JRxktd|r>hd~e8YRlN3lxs-8aDG!#$ebSt2M@k@ITu*W2`hw@Vq~NN zsp65+84dDT!)%1$lZBECKK4IAs^q15dxw_X#jozm5hFuO6sP*)p%+`BLvv~3GhjO< zc&1`x-NHZSSXNI49!zsLT)!7;>HwUvWjXfAu9my~iVu8wt+hDgzBeiE`aKG8&?4)> z)dB^(b62fP@zA}tuamM#o+iszI0y&ZlN-2X&_`V@?N&towQE<~d6(0kzC!D+`s-7Q z+DnSJQ{R_KLFK@l?aLi@Xy5kK6IEqci;?c-J&u8}aA5E7w&FB`(R>J73!6%M@tI0N zp^w$ilek;!?C>CAG-p<>2yXs@Y+0LY+C=Xly1ra$H=K7340Y!$bDPBLjCRDDP0R}k z!RpV*nFh!gt9ql$qmHa2U?jI@v$H-Tog5D~V`z7SBe|bl@q30OLW@cYbwPS_wranP zzLL;xs2!L!-6(z0tZr_`+YDaa>ZvdsEw|@$iMn&UH-4>Avze;1$~f}RE4{$Qq~xvF z<5c?K*-mu}^SE|zQmv28%#Rb#!pqWW6k&*VgI1qz);GyLqZ7+mE%#ju{WxeP%V{Mk zq(6*l?w+%GVhw$3>Sb`^M@ks(!%1&yWT%#ZAM|F3Kkh&6;Vh4@`o4 ziI*3-$tufqiUMyB_H|`BK{KjEZj^c#u+fqa`bI`2daTNVKGL!sUf~@`?!InDw((Qk z$KHa5b6L;5yu$2UQc82DJbe;J+Qd(i zcply%C(GBQty8W{;Z}<(%%i4g58>9@{_HD%MjP5}f5(~j?qjS~#qM>3vOhT_c5Ll% zAe)hSe|N62f10PJ7}erHc5K$Wwq7itO@PQzR9gaX#8Qi01?@ny+;;3ASfn^SnyC7q zm)mQ=6>zIm$Y{v|A#M#L7>;8nq9_zLs5}U@=xNKBnL!a7+NzOn!ragBx8c8#3 zZ!B}mf>sDJb__rnV)oyVwmOirs8g1KkiMRbD6Ge53^F93>V$& zCPRsUcDtYv{+9rPH~7MLOZXsVjU))tDlG4p=|IlSj??2W)$j9PA`c}t5Yaf{$cf+i zG2WRX-*Yyuq(z%|_unXs=(ZnPAz6Wy1FG$QkL7{eq649d;Gm|Rao=2-ELC$?Hn$M6 zqg7vg$Hz@o^48qa^1dWUf&KRD(>k1j@k_TSxeeCp=9r6eDoIGFl_rUdMP_X zUqCGFHb~*SnbEiJ`td44VD^O&6>pD#@~V#5iCQ&^Pb~$;COUtEHRcSLB5jqW4q5$0 z+;09g;BsMmzta2}d=tCWjCSyV?`B?P8?sHM)r1Weu0CI^&bk`!DNL%-!<^HNi%x3d zzV_#Po(C)5o>!N3%{bo!THYVQiW;3l6s+deG)P5vK1e%H%_;j|YZEU9y1Pfu_RGzb zbu|PG9rui7e7m*7&$Zd#i6%|r&p9I&s)$LohLnZ4W&y?592s<5znH1|S~Gj#Pvy%N zigiu}cY-!P8k`Yx7c?lkWouOi`~sn+@7*l;LKBiZ(~E%CC~T zcaLI3&b}{G>#h<+y#IP<3fAb}hDw``aw=nYD2UAtlTvX)hTpnEwt;iAEe{%-r{Tx}m0{zZS22S4fBUP!t&6Hj*|D^2M1fp4cOo;!f+9`o$J2i$%C~&J&Tvq~Wg!|k{IkDAo(`G_EA zoNHDVmRmXyJ@>L0le;R1mTMtX@R%-2g;Q`{SQA>@fp6V|avQbVn~E6qTX}V6ect!) z2mA}&dM@YXzKgO?Wyc9w*ezw;zfVUDM%){B{$)L`9cZlr_ie(?+|}!c8^@ZZUOjtJ z@9L2Z;JlshO8KCjPiwneMx;8X^reZcKJUux#CUy8vmJXyV{KjvWPn2M*UJ^=phobt zWRh`-!o#vL^2PXa``nb(#m4X_>Dr4`zq%o0>@mfkmhk3Z>y~Z}koW%MpGd~6St5u< z+Q{HoIvpQyVP&)w)*MJHHrw6k+UJ_J+~)kSJFM0otF!odBp>mU(O%Y7_wB7EWKl2| zOS9s`nGXkH!AwtQ{b_Kbk6BIQ#Gf#o=ZbeBpK?}*<+`x$|3qtHnzwY~n-&fQJwDnu zSjo8}G{$}InMhqVW$JlyN#D=P%>*w-=ic>tvP<~1yGbuxWPiy&Nh9I4w<;5IM+AOc z=u=-X0W4L1UUotNV3n>!w3+PVVm-FkEoBT7HbUi>9DD7X5U-4ADExZ1c78po(e^S_ zSiwv#K4~=B>b^-Tc6Su-%(L`uEE_HPho-KP1OR~@rkfpCfLDJRSu zLSjX0WxY@3Z@w6z*;>^@ePk!EpxGO`Qnc{isC}>hNUbEd)|^|w*}jWFt6CUutsHb? zmv`|>&r5$%xO(8M+;_=$FIk8mMQz@)vfrvcvQppF?^yZo-??=g)-r4TfiACpu`xG2 z)4z3kwF!E|OI7ZxIqsiQYR(nw2OU>XHQ(DE?W-VH>UUjZuX)q(OfRcns2H|&J5|_S zP=tB0kLEQxdb`JXZBXU)jEyNiX8EbqPG%c4bu0ck&7IP*dbozg0;PTG%EZTJilW*) zP2ajYgVTCu#*uAW;B{&r5BMT=AT3I*13Fkrtq?lBtcT!hQ(vE9Kme;CNxk8!%RQIT z)F&=FE@jxvqBM6^i;A&C>MUcVL`*W2y+esAye+Ey&aSKp-81`DZetiw?2sVZik|`1 z9|=`dp`b)fR$ykdO;2LKQMf}@Xc?*sxYF9IPkN>5rwwBWt{gQ~;CS|G@r%wjhg9*9 zgwgty;?&Qk9lTDE58mpYGkIs#uze0W)At!VJWWvk zx$-ckTD%-q$u~&dgV;T`7--Cvv%wKbldQ+3bkvxRYGCom{ZU{6G&X zYS$`zYwQ^%g}N;fg|#lZGup8yebi$;SWTXRZ9~^07ac>QB&(ogmlg%JPPp^d<-&;@ z=xs5B|Hun#?Rh3w8WzlUM1{9w87-F*e1>`+bgPRCW?3MV7QU{KM+OXH{YDFFZYLVLq#axgi>v)H^@?3@r0p$+RHZGzze9gDCsy?BSl-fWdZY6nDvL;ayQb5m&-b09@ z>N8u?lgl<^2jxsU0R|n~pvSAQhB3#!i1Dru6(I^xAX+Ap5E0=z12rf(P}vuNS%{m6 zA8J~h?SZCHR-(sFUZ%#ndITbS;?cY zyr)PuzanlYb9GN;(}VIg@q18~Nljfns9Y)QxtcG;ZWB#f1zTRP>MJ-zKTDs%Zrt4MZXRbqVVtMIm@pZ1S&xzj7 z!5u{?3yX-kZlI~8;>dwKhI=+yj|CY#wLc3f$&6X;f$~yTI4P-55vbjhw5+Fe1rxH(FPqZ zMJw_qp~~odIyhXLXl@8In+@G)s)@o6Ry_)%N|osi8j@!fy4G8r%&cMXKYtlGw9e?S zlrw$)O@ib3${4x&tKmZTK5#H7TIc$Q6um~CkW1TD3DJ9P#6Pzm_T~F-{ks2E$iAsV zKeQh5`@Vv1d;RXL>K1(Fmx?~As@6SQ&ugKR;M3i!p4%Cj4rV>>tF=3Da)yn}viI+P z3|%sX;FedtZ^4ghw`1L7wiNp(*Ir_^^oG-(cWW1B>+5p|)PaiglUSYYP{X>F+B8EC zhGC?5Ja1&3#WC352xtm@U?f~sOUXEfJVH@!>>}+C-7-P6?fO{`h3A)g+(W$#HLC~d zaGbC}77rP&jRRXFwrDQ%xU0mJK;p6Mv|bITiPVK+oeMBDT|KEJ(5S&NM#fIDvi<`(sGZ!(j3oPuqQ0qn^l2?OhaUT8fq0w3nN~kB$*j`~kEI zkh0pgwIf>BYRS#n9Ti;~cLCnhR^y;2@t=nJuSB`z=GF(TIa5tLD%7GKO|2^tC&3rn zx$PT+wswU-(H&%Rn){WKIK(F#&`NlMwTyjYEIhGIpe2Eh>G&n!;lv4PBNkiyQsNL8 zx>{meZBPKMa?tK{Fmm70n^{;+b%+zQuF&0t!KzHGV)(42h-{~>EsVJ3%u{JOzZ~rs zoOAAHNY{A7u8;b1vsm;hzsW{ z>_Bmm%S3NYzQs5@TDBL{DUP*5XE2>4bAEAIN59KXZ_Ubci<+bdQfA|t)dwpvlP|RH zBDGxhIU9s05ccE>H(Nf(FCeBsJi{euEpH}vfS;0$10{!LV z;n1dOWWcdYBYLlS&Pb)AL%d;$+BQSnMr&;yg}p(xdfiOMi`js3;L!Z9vDnEkoT^R% zq?l-IZ+0x-s!jgd6FcQb4%269U0L0Jy=@Fm*H}Q8CBksnM=|Ogzy!b zA^zc6!y&YL{x)G37t3djlj7URDH3~qZBKW;w1VsuTa*93T}`&n>T{*_H`(7 zJ>yhXmQtiSGKBA7(bzU|px^K_-tvrqsRp!}xjsNefEO_br2=-+#P{J*{9;Jx`s%8x z{bk2u6(t%HT5T8^XiA%&-FB9n33^}}ymft%Qn--QcC4@IuRK|%5k+DceS=5v+(23s z6HVIJZfwY(1EFbdU_`Y31fs73Q%XJ$d9-x=Ix4JHrBsFvpRAF_RO&CC#BNExH#3sj zF}x_|R(meVN;Sso9!}m=Ri$mBci|v3b3CVJ(oJGlE813zu5{AGgtjy+uJ=ftyUqUE zx+V3+P#(F!3R^^QR3msNNh=+ez8505ou!fKBtSbwTz_GtlLU#=x(IxqZCWudrZkfs zdMd|7)P8-`2FFLa0n-jwmK$o(_`cFjX6hr~^hVDBrS+P;v z?H+4W0nebTcmaDy9NSG7)!O?=U33wyF&8?~pY~22n`!Uyet?|{&`Cro7H`E5_6Tfmb-x+Ie*){mKAKUls+xFf46cNAZ z2iE!Jb-r>uUp0=m%zumJ&DQx=_J7P#C>tFMNl7)kt!U}ks!OASS!-~tcAmFBcO1k( z%KIl$PMCOiqt4at9Id_BGvU{x+()Ba-u!zNrtRm0&%}~(2|dG$vQJwpZ}x6J3WPlt zQ)uY(mJeiL*#}2`_^o&5bElbOcn?=)Xm`OEpONoND!cOz%4q#!#buiJwO{gR2Hlju zJn@|!Sgr=HtiRb%%_dv1bGt`trXWP43mS2R4BTr*E+g-AjgZ%Pndm>k4=aJoOwR_l zdl}FV%yPIXv?=>D7FQl^r)RXwU%M)i57`|+#Y@|o`r7F|n^@Rc1ju2lA41!m1U3z* zyqO=!@{`&cs|R+Ovh5`JA<$YJ$%%GYU8zC=zS7Z8=GtD~2Moy~NJDVQ#| zHJ})&)_Pu#(4C8&32yDuY44sY+))t6uA1;z*5?TV!rb=gmD@ZQEs9d&dbLtcWz(Wb z(yLRTVcDJzTgdB!pJsNUnNm|j;@h@BoGUydpZBIQ)s+&S+3O%-Bv$%wCJUktuzcfD;uu- zQ`wXkE!!&msJKFge#sw>(?vLGOs_#h!c|tt^^;docatdzaYR-paYJ{LR)mha>HQFg|kSf-^<+;M7!GXT^wwWFH z0HmEZR9q1@~tsIm_DOrA>d_#qG3N3<<2J%4nTS^2K_!51EW4*_2fj}Habe+QPn zskary`Rb+hbN#&kw(r~b=Z}TCxZSpOfu9Lq9C4c0L0@UeCaX<;%t%*sgCXSq2-(L* ze~A5%5F1;2iX?`6k)E>N#1i)m!R&oiZcpPe5+m37~C@>(TXxY!Fie(c`h@) zJrFw+uwFX7*jgGIy~sROZ%#wFz1W_*I7_1jt%NF4FfxgBa$RjO#nxAJcR$do3hAVZ z(>a#YJ*>W3Qpc;a76!03vB|+=4$nxo@--@PW@(HT=hrSO|u zkycKe%`-DTPzYTVP;il+LS|-ZUy1oE@Ut?>Il+^t1@1{J^E8shckEC#YgPS^3BZN` z^dy!#j=3+8^)%L-xNdY!J_IGf9dguI%=yhqDU~Zx(j~)$Sj^DxCH1VUXG+RQ4+KX< zJI_#iCGu`kXuTDRQer{uO#pIVD%zWrR6%e!s(?A^@?^fXHz^gACzgqWV0@VAagEaa)EMy!s07?q19!l8;1G1MQKWkPbA}TvvA3MQQwBLtbA#5 zu-q`SQ^kFAt_GPmDbrKJ%-b{SZi7RFL|_{-tY+El#&J2VEsSHPMU8^8=wmn>zcV;; zCqRa&eqpr`%kw>!{wtFm3x6Hr)0ySqu(3a(-zHSJFYUo~i00D5h|h9s%W{A>@=32P z^gVf?pp&xSD?267yXk2mKq3>~hp$;VVHe)ik|XX{X&`$r1k}w1n{Z7*qfP;S zS_=`J7xy<3yOF8=G(>c1_?#=hTWOmMSQgfjN(537M+e;!w&Gov$-t^)#h=Zd3 zfkkjQ#?29|9iEc+y=e`ks`9OyLt0DT=U02uCuv8{b$7X6-osRz8f_)O=P^j)O_lxb zI&^cI^Ax)j^}1;mb&i~#9Q1vAXn9IeXJF}9A7J20Vb3Rj-LI{r_ngH_1|jXv%nV=m zCwP6I+0;E6XndhrpgY6l_Yv8{@n>M&i+XK(Tt_R~Z)XfJ{G(l(Vz^bN^u398bqA!K zj@Bj8^{>g}?<*UlRnoSdTKsQQovu)-?<(HXwlt~EkER~Zr)tR4V-&;D^i9dt%C%Hw zHoQ?cN6%j;R&}bgv4>AzJI#k{tF>)W3~8>wr@Mx|3M#Ji;MUd*5v#z+E)*5&R5_9?$$i-E!;l)Y=1~T`mMi% z^k0LPUxPGXg4SN5ot~RLFG=nfsd9~n{si3i)PP-|K2~?msio%L&iR@#zF#bvUp9Q8 z+216F*T!>MBr;?g+3-Ox8?ZsFSm`yP+d%0uf1Lam=&8QwGVE`~agwT`d^i=x|M-x$ z1~<3~Z98O0Ti*_5NT&7{6!>`{b2qqEwrZ*ntJP>#vb-D`yKJBXO)UI{VIQcuKkV1vQ%;J*1rg@{Lb!er0|NLq^`bme9uW)ejKUuON_l? z!P>{ImAm{=U--;(=0DK zmoaQFI{RxBK9K39En?TDYgnP{ir1rDO1cMJRJJ~q#eLId_i*WyDYDnCYMU>)_Nl7M z+F3r=+muB6ROSNL8zc+?E=&baOWA;;LaBPwy=l%hMhjG#Tb$-)uY<&;Ora2}a6-~1 z)@GNTq{XAa^>tHJ?NC-$R9u9mIbNG8(e2vrQEgG7cI*Sv)+i3@+g4*X4^dOMeV~}6 z#U_xY+7xJs(nLV=zXq79(}*0}O%{cdHRVrcIVtw2r0ol$oziDzxH|0b+Re`uqlXPR zx)txIn6JeB$mEp%J3y7l_RE2k#|w}R>}$uLS|6+R+h4YD5cI* zjw?&G&G!3rfa{@iP%!;0Pj8=ayzz^PVN5Gmmn8+$b!aa2_Cg%xU%6C6zs9p)*zAip zA3*y#EYi^ps(tApE%NC*)#6#pwHrc~l#|YE1BCPCl6CZXtXW%q>0HsTvdr60V$elv zs?_B!VGVq^!{J%3w7C7c0rI`?${`kA(P3CCy^E)QDMeHmYVf)Sji-OgT?nbc1o1RU z-N9U>D}(R31s0vrtTgp8ALNG%I|W%J%IU6)2tWJMVI~c>5_dN@HPRH*e7Y}mz?Rz`8L*sLM?wH|P ziTEbqs?Sz9jEoKF{7ed&4G?rXS7-2mNYC*{+=d&}+> zyj-UTq%$~mY~dXa(ML+8_w_YhCV`MwfJp2(XFg{`RB_MQ@UOU8=yHY_mDRAVtc0?N zjG6Iot>!oELC)~V^de;2Os4=S8YU(m#UCQ2er|dD8s|Czs7&OngXbYmMI^-Vr@8%V zN7LwX%QKkk3f}dB`Q(EyCN#=jwo`*yY%_LZYul?KYg8kh$j9OEB~}dKTFPhHpBkizqjw> z$#>-L$MmO7`Ck0CCjBVX@)tw;P_fDRgY=(Mp3`q(?-bb&2gePW_K4XYqaIDVdz-X_ zn_o>^MDbS+5*JaMt>zIVhqp>gs`**_Gt*PY8fY4%3q>VWegadO@n+;%m@XESCg0Q477;&+^Lnrf#>1yY;YcXJ5Mn4|+-)Xc=bF)cQg zygOx*BU?IQJGtn=<4DK6;@DK_SS#j_)4QfsrP$L;)vv`nxNedZs3?zkEGJApeKprQ z9trJDINXiim7|?ZOnlv@a*p(kTMjA^N(bqrAGz6X5tLd&5X3H zc5(>5eiAh47+c0snxP{4R*EYpG?9zOCX8M*i+{sTsc}aX5ExPTXo~O7I~Fsi{?-=grXQJo!BEK4PPLu6GAB4xjfsWjVf6{@g{=h9T;(Z20Atv?(9{7 z_LE4<{^+uvk(6yFt}6a9+8Ram8dVn@-`cer+Wyv7Q=3))WJAe&>NUTAw{Pvc_Ral& zKHrBX`Bv-Y{G`$^mm*OcZSnXH+l!4E^%0tYoX^HgfB7eFKX z=C3rP)a~212UCvQc_rqPyS)zH(9_k|j3-_4?+Pmn54hsZsmJMA*;dD9%sYi-v(`T< z*E&+CY~_Dxc6{`c)vL3eozc9{Go+m1n{4k4>|xSib7e5a)z;~R9Xq1w0>e$q7% z?Ew1k!K-mevC$78q-idZ@~;WWtWgO7PqD|Tx&e6J1G^?b=h>(({@<((#<~*`^m10O&Y#4q#x0iI7m<< z8%C~-tfSlnz618kHkLl}iDaZ;NP%6tJf>!uK^e3uu}4g#2y}_P6iWpi>M)I}ca<8- zYp#{FIHnQ@JrvRrgq67{?@@wDUh}=}J1W_z=9jv;T_BapIxb4bMhkIXi?i&bWU@4n zkJ}2-wKf<(BKdR{yvjv8TGwuz%C?bsvXS}Ab*7SdF?gUys)I~%TE|1PwXdg|(;u*+ z=zZQG);&8gB9VBauJ~zA7C5O+avnI;x+w|~tp`|ESzHG0pZhSKHjGRP7t#7lk++EG z(f^b*$2#{-NOwrg5|LCxu=**qh|;b2X|6-0@5eYX+cCS^iF#^2)qwdHjzwacSJ%LR z1x2LW<);`m0gtdmrtZ20?X@W=Mf>6(w$g$HH{>s&=|b=|hJ|wn@*F6Z4FP&p@xcN7cEBM?I4-+W3#lZrD-8? zVNQ^9UbHLfD5P;7Rk2QkTVh5C^Ay>7yha95K%9I(AQMUDlF@|Hb&SU&vIz{1Uox7` zC)$1w*Jhuw}4MeG;XSb1?hB zrsc9E=VuapArH1I%9~byD{YUU>4_p^LwvI6Fx&L@j$3h#Fc2x5=P_+hv6~ws?ke=sD@1SEG*2ASm4}zu7J1AH zr=g-VLjI(*0cP^22-9U*>OK+d9=Q`_A5g)4vL(X;!EX{CH!uwL4{B&R@YfnPg=1L8 zut(OHE3@xRk4{^Te-`3ZzpJlbuOF_Tt{EoQFtdAyMN%>^oK*1dJ%)7b_6 z83mTkN52GWNH)eVq9T)1+Na=`rl+CJ^iruxMb(`H)Afc+Uf@BqtRNmVgolAYO0G1T@zIFFJ}=P#|zEWjfp8fu)6)T2Zl5ap}6GKlTE*67e(!(h^E zGeZRY<@Vl7VA&;6HEL3oUV+pT)*2vUTaS`1SHMOw9C6c-WQ28^>uyCo;}!`;+^zRK ziK$^jUnBbE=p*o?#Rtn;ht7Wr)-ot7gbcP*OEiIa@fWSzcD(}l_00#QQW z1mtnoXeoA9hg439>0V@sKVhPvQa#VSKf!N-Q)uZxqZU?ZOH_tV(GuFK(28n_IU{B{ zTju4_Gu)I}y+qllu%fgSH6oPMn2Nh+Ek(Xp_c_T1u3ZdS)UARIHi+DmoXfvF5m4ER z7WzJYW+;wo#aSfD;5v+)(a|bRec36H4|3M|YcvXTk~E47!Ek*6A|-2C_q!&hKA^Kx zU}3A51m*2E)_qOwnlm9df9X&lCv=}U4|7G=o_UGA;0Xx=L4Ep6@XkZd61 zyryP8^>QMYImyXaqP0_?iFjypRZrlHXAN!-SuW?AnJH?wfMkWmMSC7KVlO;Kv7Hp( zLI!!ffU}=_f;K^l17K(m9T$7oRD7(N%%oQY>Lx)zjtBo#3z2KpGb=Z8?rBWtf1>nAt7=9%cH+}dz*aBIdk(7Kj%c17;DA%OoHb%VsVNuX|| zl(ntFzmq4t`}K0d1pL&wG-=wA47IMD*be5#MdgC5GIX{|xy!kWz7t*h$Uu}P8 z{_Xv{`}fPAl)nWMBNPjGsbwKnm=qEV2L$55XuM!CkVvLeiOlMOM5@^=*IT|LFPYu< zKY(C(L?#yv2E>5Sz#te71cJcf2nZGc1cpICa438t6$F98;PBuS8XE}!07QUbKtZWc Hpg{lxWt#Q! literal 0 HcmV?d00001 diff --git a/data/objs/terra2 b/data/objs/terra2 new file mode 100644 index 0000000000000000000000000000000000000000..4443d10a98da002b58fe7b191345d6bf2d01da3e GIT binary patch literal 1836 zcmV+{2h;dNa!oP-0000L)Bpen9x9lsKYU0h?)Z9Z`qnwVER1R}-@Z%w*ROu0>-DJr zJNL|gTGQ)(_&ejjzEk?tpNI3uS3lIh$}g{blY{jG@|!|?qo|sSdGIizZa)3XAmSt- zOTvjw$jD+6eOJ9r2yjm656)OJfI<}3P8rX3St$=yAS~q4bL*0{j48l3`tX{VO?6bM z;RUUl5S1zv(4+0lmTx=45~pQJ%H6L!sJpCp{~(3V?HX3?e$6N{K|Y94%q178nhThA zn^GQq5`3@@$)IO0G?bQbN+5gfwf6A?MF! zSNA5$DSk(#Pv~+V-EbvO=vO^)c^3_&-_Xk|lo1a}`DV_sl1TDbOY8k-{Zabk@#dfR z-$nM*S@pwOmTNwAZ$46JzA)=>b9et@@BUKl^5`y-K95nme^Rxjfzb+p4Tj&pQye@) zbmCRCju1&AT|NLxn;--cKci*jh&P@Pqc;!kJpsF_%*> zYGPNArfukcp^2A=MJfZ$r3rzDHq{SPGM2N1W8AeRDmi#5cdAr_tm_W7#!~8&TGk$~ zHuOMGaKwQp^L`;AJ^I8FdTB`D(Q}wdz*h(Z>CTi%#xwS{DMQcbNX4K;c(D;U%nb*Z zGn~CHMj#GBZROdq^aony1q1-7tai2$JOO3GCt14G9-RZ($^Zx@Mq7kW$gSI_Z46={ zKnaUR2ene34xA=|APDhJMBr|4`tF2R_5;gvy^o+D{TEf*`o8~BrEGE7^ms$Sc@8SX z2$#o#XLx`T38ne3!5!l0!5!g`m`6W~=n-Bc=ow!yD^>I}FX*<+9XeD<^GhNrbt1NK zLx?2d%WWvzOKK~RiA&4|H4X%iI1)_Mm01}kE?Rj*S|nEOQ$&Abpz6tZgQ`>#nHt*i z!y2L0FV8wvRSTYiT{zk+#df$F-n);{Yocqe1$6TbJ5^$y%~}Lj8ov6efnZ- z&87GP)gh8a(AJvNJaTp@?1NT+H6-F|r&Uu7qoZ6t2%Jr#)aNj{j97}4Nfj#M9q&bb z8iDaQ=C)i|o2YTd&`r4-d(PC>W~38mv^-WW=t@&>#`z~nZs{gNltbeF~7+;nf;CyGfLP__KE?zpD z%**d_<0odzvC&k^VQK3I2PCk@#RfRE!;l<2!T5u!v0h0*(G3=BpL|~R1~P=fAm+n@ zOk#s$r-z0=3?&CSbat33;8Wh2OY<gBZ&x3nqZ`C z?5DWKG60&6GJ(8OaY(}3I-8E?(X4S zNK3OvmH`@2KdD$&k`>x0=&_WhuT!~}R^Dy&Uh=Irci07BO1YMy$02DaKV%MH3XYng*yn=oKD}QpOCy zRRiXOD)d(G=(9I{pEJDbuRw(>?#EsU$kka?RLW`@%As4?B`+nJGaNcE1J%)QUjofu z9wZcCxizZS*@NZK&q&{}{w2=e^-jpRTom z?-j+}s0VhIq3%r*#680$WueL$E+KuP@^}?lnt&b28_!0~UL*tmFRz)xcgaTn;;6y4L2Lb`0@JKQO1p|VBz({-w3k-z-;1Gy( a5(fu^Lt!wm5C8%y27tl=gyTZNga87W)pqIt literal 0 HcmV?d00001 diff --git a/data/objs/troll b/data/objs/troll new file mode 100644 index 0000000000000000000000000000000000000000..fa8c6a024a52e6a02355d73b23a4c575ec05e1cc GIT binary patch literal 24060 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 literal 0 HcmV?d00001 diff --git a/data/objs/troll2 b/data/objs/troll2 new file mode 100644 index 0000000000000000000000000000000000000000..1ac76e388232a00ec3695a804d95fe0c72219974 GIT binary patch literal 2234 zcmV;r2u1fpa!oP-0000PSO5SBtU5AB+f5k$fB2F8nY%vpg8i8){hGD=Hc|UA|2OQ` z{C>@^)BEw?vn%BO{73K4e$2o5`xj{y`ewFv4=x!d_mS?*D`)WoUd$RiQLWOOUJ0;| z5b||(c>xhZ=$Hvk6ZyP+)UATbhd_|dR!|{rK8|bRFo|24?dZgH`3WOeJ-)8Ct8)u|!CuMY;_><=k1Tg-405qP%J!G??Y@h5;q@KB!+K-sO_O!|`4Sg{ zc9o}EeGrNO!DW};*!AA$v&*kwrxU}al=nPa!97(jprH%J&?p*hm!d`*qtNB%G=&)E z@+zl1k{D`wbpUc==Iuz=RF{>;2sj%Bwj~m@GT{Mw+p4gH_1ht^;Oq#}>(?`HdhNG4 zyL%JtkFdUYYSkQjf2*Dt3L2k-5S}INF8GH?vGAH#z239!Sm=lER{96IXIy<<}qtpsa_DroHiP|N#G0c+~>lmLC|B0W0kin*kQ0-mT$y$ePXinjw`oYQHb0zDjI6l|u&*$PT50tC;} z)DkiJ?Q(_pIcNu3es>lC*u%{Ww16RTELM>`+KF2F?q(1h$t5|YA-*aYZ)icz(~?@$n4(<4v8 zF->ZgtO66nage@;gT_<}9`@G}3$gIQ<@|LTH^A%Fan+}Pi2 zeY^h*_B^NDq%4XGE&2yZqQp?QyQ0_c)lzaSK})?t!n2s>p}WX+Du%GCJI@8}Q?$>q zA$??EAm2tK&J6_CQNc{?W4LnDVR6FL>$7|iplQ(nv+sLGpGX)G9jxArPu^ihBp^E` zc1v~D%Nh_tH{0G#L4>O*b;S5W5Fiw#N?eghP*T()9gQ#{3!EZ6n2RM;N{nK;JP?vn z6~qzB5SSeE9c)OR7SU3PtxE#PA>4Y7da>yzFdD9DWk~0p!U;xs0tp66!UrIP=dv%( zjtDvJge}#83wLc0`{EetTzp((uht+A-Rxf@sTKeu=^b6V)zaNLKG|t~r}{%}cYW!Q z6DY|KfDT3`jUN6U1fu!fFxAQ(#rDBe-p&fpZ}P*6G0iGcD+{_Rn3Hc8xoIKbSfkF_ zDF`{a$s19p-R~wEszYKXx`v?laRXCIQ&i%VHbR1q6ox8&)wKX@0x@D4`D~OCIU5w( zi7HDH<0cXWCAaG6w_-8{Oj20HLleX;NF=l_Bx4b6hGFLA#jTBE4+C$d+;kzCZBGOU zR8u8ORSO}Fmy;~G#iQ4aCdl3)qRX^Q6yyhu?RrB1@USTX$Tn+eyFweu*V2t|(O@O> z*qSuf{qi|AwHubsVs~_G1yfQy#8Yey@0>A6-v}Y1(v?h0u!}*cg>Rt?GHdHpmRnne zamO4?7V#SWdRjK*bDPWlOw;a7?p&=>|p zO@sKDA~H@%&z_ouSc6Zn(qw#B=<57ZL9qG9z*evnaLYItuJJr&0x^z*{a!GT>owUJwAY_z zbUK*$U~}^CphI44HpklEPif~J;0Z-6%ft5ozeFp81dG%_S0^$;fmUfQ`*>gpchRY8 zQq#dxm3dOLE5@lzq1zZRATGp0CS~H$h(TS6K~RFcV$u%nesKbL$I;@7?xCnd82AkM z0%IIS7sz^fsG{}ck2W2{oQ#)nwQA2b!_QYE-erg5jydGFw*N@3;bHK>KL=VJ*L1O- zeyVPNcUvOrgcIwrv~mv-wNtQm1SVwZ4!ZKmmOvyQ2gtAdvIro4!UOL#7C{jz?Eb+8 zmXI4Ke~ZHFC-BUz|F-0+ZJ zK+1Ww0mSo~CQT%m!l1BbOn~H}&;po|hCsKo>v$039EpI46v}llLH+>gB~Qp9PGJ8n zpafaU#S9^2PRNr?fIEC024_M8pu4zaurO$+#G!P5vLod0EJ4ImtX}%rj=l zhyWp=pklQ)LLG4-Pyz@Wfes2JV^k5$5>i+Q5z%G@SVDpmQaqCPMImQ}*0A%&G3fV0 zw$Z9Q1UzcdUUqLUTPxMz{a+8&?Ea7y z9FSt&z&S6d5vZ<2G-T)?i(WNz$R0v|{a3u2Of9=#nIcjA;bHl_mv3(2_xHJ>l}|`A zsL_v&#kss&V>_yre)!YwM#?dw%aGJWdKmkbAFy~O_e1746kbt$hTnX7# zs21jn=sqNC%F$Fq7oZqG%Eg6v9^7@72BJh+5y`)ZJFxf(3Tf4Pwduhcx}1Hp4(WMNUPsI>D#%tsr{PFFSFb1QXC zc_sS}Gp^dw9(VXrK3oj&fUi?eoahE+qZu3k;AC^`+IX74(QOi=;wAX>qr)`wyn?zh zfzDW0Bk(xqo#`}(GZ(>4`@9br!Us8M@`^#irWsVZ0{d`I@1o^^XV>SsqIZpIpl03z zN`ZVQDpi0T+X>Tp?!tt?$BNsb(#{VVRo)+|QJOj>TnAx2A>^8GpH-_wqqj6riD(;U z(FpD9eA}$Mmwr@AcTd4U5L-mIB2jT_)fyXCnYTLy?571VVa zFD_>8X*TET9Ke!JY?y2ktYy;CKtq>QG1jeu^6ZfM{@quZ0d_*RyP5YN^f0t)a% zw8sGj9#}be9?jSQXZyE60+%?I7U-A7x+Z=H}{<+4=u-E>e*g%4PfyTu~U`MJ+|mu2ZW_Mq~`f(`=^m<`I7eh3qRpR zWDS;Tya<8_X7bxoe5DvFc`g;rCV|IqesR9a74D)#^L`UOP8n+&ESm^H842G_?3W9b zh1J>l)_S;-l<-a0`}U^@O7$~PKYwN1r_^X&%5Un!H1ju|?aG`7TcFv6M(S>0b1#76 z>u{b+Zfl^7wjy3RH}u#%>u{9e`lt3#iw^2FlBz3rrH)+G*q$C(NIXg`f)0GZfmuAI zLpeQu$tCb_rIbeNNY}&88gWbMZr$(Fg8&@4NkGNgpnl?>DvFV);sn{%_gX-*cNyD+ z^7YO>+zu$FWGg4h&Ocao6RM6ze&mNuZ*l#`&ab4BzkjeIbx##^uHTJp{n?8R6N~I8 zZBoul?-D>kN`6lq|58pHg0*(9r*Y(Rq_hFfyfCxskWA&QPApJMUJtOGOSS^=#q#FC zgSg-)iR`5!Y^&LblLBd5grVyf0EstIEV@YB6H9b}6R6SCDIin-(h&lM42qJrP5HLD zH2CIlG*Pa*2qwgyrhk|+(FP+e#m5-rsH{zAUB;L>T4OHT1;Ie~03X2`p)R>9L7+pMS`Zl$)yT=shv6%EHdPAWSCDTO}bvCnXl@rL6e8F zlPurOA>Y4Jn$_lc3^ghr3~cst7ZJz{H+fc%K2R?DPFx%n)^)pe7FWw{m?0ppCJh_9 zL(H-+BpCOVYM(AUq&-6AT*_j3mq?RX7U@0e)=4294y-gR(<>5q80Tm_OENg}#gT~L zPd>e;hCRoTOKrlA+%3_~Hrmy?4FMP?Ew$$=dC~Yrwh9I+C)&4=zwLeJ7yU*`xaOQs zZ@cF=BlpcFV|g#mYIR)9axoZg!vgl6#ymHNv`aG*6I5nARm@3ow6sg+f8Qn;JSSVL zPqXs6AKIc3PZO2TH?K<&4S9{7&Oux{I4`~5#xPYsFLC*&9MU3!!o0KiF51Oljl9M$ zD}r5wR|C3UEG$HiUfoMjdj z7g`l^C72k*ctS*R6XS-B6_>`VE-=Zt!=Od!7#M6S-gE9ZIGUr~doFp!)goVB^`Ob4 zKm6KGq%&LEoH8VB5RI?u<^HwpgI;)Zx$h5+DQ44xBB3rpneNrUg()B*z$%~^6~L!i z7l30O*s9kx$xWxr7cRt0_J8g)nnFrN@I*-&wTou(xTEx zQBlu{$dkqo7ah>@Cm0f7+>SVjVKM#F?rFq;Bnf+$@|dK{*}*i9`J$|~;Vht*BMSSddMfd@T~ zeGpd@ry&Bo#tEwG7trN?7RG8!S0J_<9-z6bG3$2jwKSP_nZ+@~e(tO5q3E@+$GTrt zKR@&-@-ht3JjtW=H-5}7!3Mmr;zc|U#C9`=^S&l~nd2TqMG0S0%@&acB>8g}GXvT< ztQc}6F=$Hzdz}#CL?t|^mF>6|I2klUl&d}nVTQ^zr_`kRJ&BP&$r}!dg4ibap+Y(! zkBDLDjB$C={F*bJ45{#XUk50C52 zpfu`$`1abuFs@mCZhmN}YkzI7<>)UzKPs(rz1K*IF*_rffn`o-BdQ{Q$K8_~R?Csu zK&yXfpKd-6wbTxyNsG0pt6b;%+ZUZ5M|f%eyVX1G((ct5x=>#^Q)^% zTdBoFt#cpI4#!80v7*HdNm9boBH1$~olxOkgMwa|V^%bP9*9NF%2BuI{yUtGP}C`8 z{qp>Caw~%&UIk)r1&t65Gv}X?v+XZ5ZL7S6DCmuG84CO|6%zv_N|t=F5;&_$zan2Q z5A;!KiSZhJgJAUHyW9XZGCeO>0#s;ldYft-8^=_nFPcjWHTuktBmUPbp|-e6y33LQ zt1-a!6^%M>Z52(g626^nP)}0&jL!NpM}Tn$U9A_zY#l8|#F7=PtGheNzqbkZ@%V0; z*3~BsFR9KNG*J-IOeb#cE)qAJ-bYH?+L7*hzn!%j9Pev|4-2Y8Aw;W)nT);_N05Zf z82`FwfT=SI9*Ow(hqWh@ALjm4vT0UO zVLkU3#WW1Ks*otTq%{{SfpWlF^kI)hrF?*e&Rh|3pP-OZ9k~!A8gyTLirm!CMAiBv zps!g8u)O|}Tmf_0%wNZdx-Yos=#=)i^%nkJi)+{IdcP)#^h;K;$)K3;c{8g8+ybVQ zv9#MTSsml*3Vua=z43+z7`aZG*Lcw|R(uGbJxY_Gn{;KZ5H0o1s6iM z>D(?9xe;M;&x1t1@b;fGMEX_;SEg{*vVRc+U(b)tRt_pm);1Oby)_8xy<)s9Px6de z=D1vjV^KU07c)~C&F`YsI2?0+aRc-a8LPHMgS5uopMy;2r5v_Az@OQb-95se4R zQ=a*2%u%F6fhdvcBrb9x0?Gp?g2tByL<@3M<6`?_hNqVDMgxfQ>@G1lPuz_&I@T#M z3|$cuT> zpxN$=rC={+sNS@^O_D=G@fyYZpIFad5Y= z$Mq}~EHa@IiH66RQLkbziu?@%>u1ZIDU}5>rOr zYfW-`sR3y>YsPMTUF{bkxxh}vQk115(R`JVIJW2azef))EA&`nvwt&4@jfYo1()pk zm;QU-HDabW%0)_(%uOGuXxsmCLU(euOj9;8eZ5TM_O@G=VflF*!Q0Lw`HOLw;~K_B z0>5;jCIpz4J#AB%?PgEgJcXF|4eD-j5XFSZc>)+TtQQHPQZK$jcn^H~0myn0%WCE+ z=HzH}Fcm!6Q85x+FLc0q!s|*68DWyIQ{1WN*T-m=&%Fc(Yli(+O9hDF9$B|ZcwTk( zf$3NCDb!1fn&dARZQGoEGZM~kymRKG7NipO@mT9)NPo8(G%%}$=6JfjQk61GB;4TD z!u@kwxo_O_=;-@xBHW?az#o%6g6@_0bb5bo^B-T9+@<gt9@GMIq1={%Y(cw_vA#wEOIYOBbz=TQS ze>zg{HVhLMq#E+o5b#~Z9g;1$>01==WJoboc*HgYiHLe;8HjjABPLSIlBF+yE*)C# zPIyqd)&Lecck-FqZZeC&7TYH$Fj7MHMJyJSr7< zRA>L8M-cPo^8!nYZBn= z=V5lpw?-aeG)eCT4&&;s6xZ>Bs?5}l4RLIt>pkqruW}OI%OMX6C+=S2D)fW7$AtTH ziV8cbb6@=Je$x9>TUsUV>Sw{K*KkX^9z(p4@*h-@+4aC2R@?KvXFaoi{bgJ$k=r18 z)xuZU)*=f^5FXNKxF?|d1x54&m#Jb(ZEjELLP&0|bta zjt=>!zKxC7G`^ggGrCn08zgW@@g^P>GZ6Oc8Vv`gwMwww%lT^hFNIMrnHsCwwnnuC z6K>z%G~8y6g^`pmWSCU}2K+2`!DTi2S?8p{iu0~9#-bj4V8jqTBuglwEY1)6jE4$K z`B7pldKYfMj*hvmEyg-(Xi|7=4{Pmd9+EH4cW9PwJF5Ftg$MY|)u*#WDI25Znq2Q@ zZMn20QO?ou{+p`Op)K?#9bnbrxI{pneX?o@ru8W+A&z2zfP0MLrrATRdot8TQ_s-| zh>8zMDM*t+WhBN3)Y>33?0d_oIGB|64)V=a0j84{suT^Wp@UOb@d@RpEpc zm5@O?UQLfR$<%FiQ5Okss^SqAYOkjsJGt$w5x+BWN@!)nndNd<%%@S36iSMDF!713 z3A?02GC3n?NIgN>SquBfRDNadtVt43Z%43)clWlG@maSRgoWxha^O%9f*&k)8!f?0YCZL{1Qq0 z`Fz#c1Fk3Zp$XOSRvlR!?@__@%kVFf84-K5*(`A%ag4goM%u&c;`7WZ_5@m{-PekD9LEK zQ@~I<0g;mtV6B+gNU6(}^n`U$&B*}3g-1Lu!X*h5n5rV5efnaXF%k?exr{;hG8QFr~Zp zI^)xKJ~tTVzle`VxY5td{(i*0`2#$BU z_(!iMyB^-A>yXm1TUa~tEh!0I)EL6)$^h+C5~R&C_@zKP#%U3v41Fy zyMm^kRth|Bh>+=wf@2g|lnfC3F9j(NHtft1^?@?|Arw6v8^AX#DmnLk4CJ>{^kQAc?thW1zq+KAP?fSH^*=sD%B1XAg9(U{pQ8#m-=hyuqLXK5c%n zjih)-4SA%fq+!su3@IVQG%(HYv z`M1|=<4aqmYl2Xt3`MN;?V^>4k6-}wG!7-LFctA+G$Yi1|&YEEwP+N(@Xk$Cqx z(}g4Iki9r=Shha+A|SniPOqD#@4&|wH~q5Lc!o9EL9U!CdZHTHV5G`oz>us(Awe0S zc$68ML$N)Cri?zC&3o=y?!w54$;>D>!FxJ zKtd?5QnBP@`UO(V0fLtm3c|M?4+Wavcra7*acoh_t%DmD@LOf64aRsKNY3muSeRBt z;RzPD3krCyFKhds%U`8`H8VnUo06U1i&vK5qa`bgOgf@^RwplrU-I*|d+-vv)<;Hh znI6CR`@Xbw-ZPsWAIqlijdI;RUEY}4zd(SM z>FT8_pQSNeh(KlQ5lY(vP-QY@n+fDyk_HHp9?COjmv2l+y&=?7)h$5PXb(y~l$@n{ zTGQ}Fa%(4!Ji>9kLD@p#-R2e=V+b#`cZ2NPES&aJo!-*O^Zk<_5~TH#`0rAtq6ltwGkU-uoQ{hX+Zx(A2b8%N9ZW@=yW zqO8vJnsw3_3c|T0#HI4oH*4X+b+4CJ8g#qgz8~vU`no;Jziu{bskPmya>DfFRg@vY zl1pK61@opHUncU!KnT%08hC*vLVmg})II_T$6qSl% ztH=5ugTWIbeCwGGGbh0cz5h|7ebD?ih#=!8VGG}ysunXu!iZi_^mVbQOa24zlj?=# zU?6sm(n+ScCN|yPt1FF(ZyI$M&eRQF)7mx07#nZB+jL;iC)XdYas- zrf(YPSe59aOh$m6?QkbyX7<3OY1CYI>QTIll@X*33QL;l7AJ#JGWu%Y>R6oc(Gfla&oUThpw{Zy_CXJq<2NSxoZIzoFW>z~ z>ZHGY;`|WR&nSz%5)_Q#*kkJccWRDyfF#aSk9;k#uNU#vHSnjsbRtJ~h_E!~u(LG+ zevVJI{o&knw_U4{wz3NkR7m>h&J7Nz%s-U)Y$MV*&--s`mcz~)fteXT=zs1rc?af2 zO--)4hw(ifca3qvYu}AAAz*dyF-ro+udpe~bq-Fsk_(d@cwtnF>O%q26;ADMo1P^n^i<{TrfGM?@_dq9USnnPaTsXJLRM zMhQ)yC((fs@!5_xrS0Rr>c;@0{tD!iq1on(8$rK#5G7}DwD?cE2MvL6u4m%3!HKxq zn0u49k)yMeGchBh__MYUE#+kRzqhAamXq6~-ebJx+MQP3O0IK6bSDR^vC zav=B*p!gh^xXSvLzE4X8Mo8irJKl5;Cs$WiC55 z^3oB_0fQ^c#;TN*K=jCYfe-2<5T)6DDBxOP!SehuL3d8>c(e_mUpwYS+<3!7H01}cQ-eaKsJ zdi=o1f7`9HP3BtudETSmBtyB1VYlRoeONZs=HO-S@OPYV7IUqSJ-NL^{h{7pa(99| zol@UQbGz3bMLr^O?oH6<1eCm9wc&$yHooPzQGtu|(my4r{AU~~@9J2uG(fpaj1RV+ z^`%_w1>u-^N=Ef`d8M|7Z4QLvS*)yAn*$9Zs$KHtL_!ehpAJoAG}7Ls9H#3MthsM=BmC#jUe9Dp=`*W)oS=VnM<`;?cP4SS`OLoJvx9j;@l#K> zxSf}I>%z6Dh$lMG*W-PTcYPI!?)d&-lY#dy@HG5J{7P-Al4TS$PV*0X7fG#4`O}+_ zZ2f=tyy)iq?kwdKGxTxYAKv31kB|3j*Oy;Br#LLq+cIyHzXC417xLnm*JAy9lRBL5 zQm^dnMR59s^ASbx@j-A|%Y%k5@Pjc-ZY8QBAC&6T*))uQJ}|JXR+Ygr zyT|6U=7#2Ke7Qj#&E(FDO&J$g5#8KppE8Rp2#$L@U`=zH8yW6Ii{*3;rlU>YmCyvJ zYfMCc{t1Wy4ys9tUC8G`qnqn2=={&djS?Me3XPhXK zuCVmRw?ozI;>u9f~(Pe(;u9@*Ysa5^!qu8HwUT8qAJCKJwn(J>hZ!8tR70@q*`9&h;{31Oryz-sSYl?zb27+Qq*p+6u+yD7khp#8b__g zU$oka1@S(IlR?DZcYBGKIN?!z-TU-rm$ts|$42nYM$7qa(2MNxM4?pfgKpDv^ez+Y zVlN*;jY=XP%2_3o6UETcDB8xGl2#!bG9(3F#7T<>U(5)6i4w|BeRDvGQHh0vjWZbz z3PtG{Jc-DXrrHP(L0v6Zu|=uFtJg4Kc#Uzlh2g4U2~Ag&}em$GaVWzkp|p6D1G)K5$*t67uq_UVr{N1ZH9wSaTkSQ;^fHm`oqR>Y`F7`ec6;0{&hC;!j`Tv`cu41i|{vh z;0w#)3jfDRsgt>5e+QR7i@$@Uz0?gsF{l1o`r%WNMS}@r1jU(LkVnLy@%`|fL-=m; z%LA|HDNv$r4y7B%t=$0aoQe4_%;D@Z5eV8_Xwe} zfSc6e2~Tyb@-_l$CD#*UDj(~z@g=thVuf9*8|d^E?k4q8y^-$h20YK=E3M&$ct}RR zl8e+wv)-gB!?`rv0+!lU*!9U>DsCN5TUSQwbG$2k)aUs4grdb`W+xNfAMsePapME`EJ&flh4c7(>1~ z9IG{=KS|}4qnuB~vZOGw*^XZ)lKFkfLHC zDy1X@OuDk^D%&PLANnGZFOD-0^?O*KD_w`;=)P+4j7BM8%s3Jk>CM`)Yz?xHnGk+b zjO)*a^R#3MU4L`<$M|Q&@$@4H zvEL|QLaoLgePdeGbl7)mUjzy@EIi(OG$1Ou9=UFq;|zGZshG(l4RF~% z=C^W}TW8Ro*>}6?hn?RYSK^J0t@?UDRZVy7v^h^M(NUkCL`7^*Q4wM0pZ{x~_mPOH zO;_2?60LcW^~Z4iPqxQ&b#oG^J)K%Z0#6@+$INFT=@*ERGw*dqkbNB)Hy`NcSlF}y zs8=0QiX(qurHV+1Rw~R!yLn?uSaf8S(VWWx1P}^E3Z<20uhN1M3S+tu1~t`0l`7Cc zDHEmFhv7V0+fHrYvK<{Pakk76?#+D{!FBZ%@kvCWt*!D&J^VlBEFB3cG^ZQreXz;c4Q(t}ANBQQw8Viq6?< z@w_hz(QMG0lTTi#NnXhiAjeiNPH3cWLbvDVqC>!yW+EM!-AaLEg{=Wgq2S1bNGof= zkM6u}DZv5H1sj9{q~-jd=!(mpm z;`Bh;Jea-voWIY_5uE33yUeF0_w~UCjV~29bL?ISK^f0eUR(LId1W0QUeEXVYkoLS zD&_UO;RiMVvDbs6)pK4iy~O?-9mCRo?xU$u&fDfklCC9xME+yc4sNyX*ejUFc zd~MyR--jV(R2tfNuW|-Q0QRf*HJvU_D1Z1!3b33L8PAYKWMcD{+UXugAqFs_6isr2Yi15 znjiP;);pa}Gn6YiI2@R7yM902^JPiszE59cfIb8Fz8)37CHGz46SnFPD0pkCG7r%B z>2RF6&US4MfAjs@gf}=fB5O6l^Ady~5fkS7yv_$&GXJDt2i0>`!M*lPVy&WPjf~dR~eW?6kx^+yG6V~KU zhgm{lex*cle%XJ!A5asSqWn4!zqnvSfDpq}U-fKKr5QOZt|_x`iNg3hmYV+tT%OTc z@V-p$UG2{6c0He#{btVOK+JOn&$6Rkbib2`*5gHv9q_sI7ekF=iy$mLP^ z#I&mp>*R8fb;)#R1lvEss~40Hd)-%ITH+QGo0pi zZ1sv>8Y&d8#o8TirebH;)?h{0=XWPteo+L$#zK@`Pet|?rWkCA%3tP4k*EQ>uB)4U z*_diM)RH@?SMb?boZ8*)+4wOpFBq@84bD*bx{MM)I@3{QPJ0NNWTxsQo+_BZK*J2< z6337BPDeCI(eIaF3fobsT;ULKJ! zqR{0N?AZM}g|~Tkv(`15_csLE`Y)GpM@a?7f6Znl6yR-(zFMve@O8<{h``wEoZd+J(VQ*f z;yt#lQh03>SIoC?pC$4x>#VPweho(#73r#tx(@MbKf^OTX0yv|ylmZ;*oybEM$%9p zZc$}K{V*kgO{|WpCCUaQGrJ3kWw7y*j;G&rs0$hQ4C{Yq8HRl#mcEsk5w@4MEhq4l9tZaca3VlE2n?8&Z~Man#~EzpU7hz z&tx$54m+Y5*6wq8cDN(*us^%Yotv5;*+NYX&epTV(^PsF*JcmTQ`QTEpwv{769@Yh0vazP5-~j2 z>g2>cj%J@CET0jw-S@FMA#l_PKd*_PYY0I3jc95bj3+!3+w5CO9x>`;}6wI=Fjwrg=X(zNYK`p8mK!&GLJ_ z<8PW1m9xc#*NnO7lqPjd_RHp^&m?0T4^Jud(&I0~9n95yIn4|T0e-v#2UWW%4OgC9 zYj>v1>oYgw-f5TqidByt?PP8Vw7)OJ&8-$xQLTs;$DBI4q%zo3{+mp$_mRBTB$_Ho z3gE*LV8Er@F;$&yCvro~cwkgqFT}N+*=X1}xOe=CD$`hj=wMPVS?9nud*(baDOL-( zw+l`yU4EQC-$Xk-g9raS;DW%Fp9(67PElY`Dxsv%B4vWkUPyAPl?^9L+uP7$v{2lL z?sxanUL<}G*VfIaJr~Nok72``qo(niq|)~@{=3j=qqnv9aJQ}8wpDf->#KbN5a$6b z?lv1avt25>tK7Hs9o+9Mz*(;M%+^E`!}hM`a1IzNjUR&Otpp#TAEX!Vs;1}lr|xv4 zvxyFuf&B3Q5*kPe%9v1D*X&|**x&9*W}jA~E+c#wb*ZSVz&V+q5uNWD?trNYJkZy8Nht)Z;#f4wxu z39#7eJCH*OuE2MQ?b)@#+U;1?VY%d|+x*!-ql}Fa_g*DAl2#nfQQ)5sRt1Ft;xlSBwxr5q&4!FwKw}HdD-0U~G{Gv<)$lAR8#W2?o`z>3ljm2c)JK7^aj|+9L`YpY_bbY3vW{p*>H5u{^Qp z>Die9wx`r*(_6t3_wdtKGLA<&v%i(e!ECX4!X&kQI|OdPZDqzy%Mu<6T9tU_kK}vW zxw-&%cGxa1iigMeFn&$T?!T*meOjjN_*@ID-`HVpsSxhud&rr1eeBKqJDyqattc{% zXrBhraLHVc*J@2mV$qVN-d4veL%UX`Tw1TY>*wz;(7uxkfs8_r) z6j_vXn{$^I7EMCKPG9IeWPz8CahbLx83MwBy%3G!f!bjI}FMtd&bCHl3!{v#QGK=(O6UR;_Ba+i^Q?mrx5Oom6U8 zYh~9nn$%0FbvrIoNy_a>t5>X6FD0$m$fT0mzIS!emCb3@y7kK^#R5uexg8dpW!39; z=2L2gipiJK(5TeQrZ+d`ip8xN$&F(TL$_zG&y3mjd%j9W7jx~RS2TQ%TvBPL z-fw*|nAMKwcH7}JGKrn%9hmk)t~(9iJFj8SaXY|1$F6hCh}-YI&o`naA(6}S8vZvz zcZl~-Xz@7T3&kD5eJ=31y#}9q+<0^lndD!6!}`y@Q;#188}^J~<`w(L>I)2yVdI{E zo$}$whhMNZ505+r5Xb(0@M;7iK?KkD{ooJW3&HS*@8kcD2lfvq0N@~h$@~WY{(yhL z!V)n!oT1?oGLo;T()OIM&~KQ0N$T7}QEM0w>hCaz0$rzv41W>a6Vv6hCG~nbOtwGl z%(&8Qn0wv#%N*wjw~f8AcDu!n<@< zubNDvK%8%6gME4S8Hy3z(MbVui7Vu5nOH;dt{?i_PDYn)TV_U1R4lE(Xy1OS1 zJA}HXVU_wc%thV*M{WIizseNEvECpWl#Ed9eGYm7jFZ%zRkmICF)6$*NtGcWp~mZV zVxpbwIiLo1OS*+??#K>u1rVt^;x1?ZBx4Ga62u3kR}WWw_k2>d-pMQux3+q9A~@d@ zsaB10h?y__8Yh>N3JlnGU-!p^oq|d3tjR~+mMY#wNF>=44H*&@A?R^IGu+nBhXj+| zq1y~Z$V6aCvLvg}F~&ihg9yJbU}VWJ@u$DLsT3{Y7tF3>xL%70x)Vhh0Set+;M?dO zr*(I?tRb|O-5~nX+m%;}!}0~yON(&CL`N8&DP+clEPZG-*AYdN>f#<;kdgI)@~YyC zkornUexX^{0nQH*7dv8uH1jP>L8ozhjD-ebsQ7NARAEr=>Mw0g*Hynervwj4qH+Yw zdUhiT_14BR-gz+-Sh@-H@~Q#}%mi2W$b^-Gb8(FV^AczyEj(C+L~Aq?5aOJP>Vws6 zl7@FS&VYd9NgI<2=s1l$P;zqlq&){h-hq!bS(0cVpZpHQGA>EWMGJVOoqjs<$0hCm zZsd2sp&~~z0E>%vJQw}Db$7i@!)YsmZUXS{B{ZHdZ|}*TbH^Foi}6MDg*l+1&W#8H z<87F7b2(-#R?DLGyTke=q|!ltc|~Bb-|sAr1X=^ULO^qOZHbb3^txL*HT1L@l8)yu z8ZzWc{F;sO>HK;QbB)jfc0tjobp1;A*iF9vC0o;sMBhAv2WaoW8oTnxuHpK}yg+Hd zV-a#zqZ@}$2|^+TpqO?FY*{e^v(C+|E%A+D9B~Y1Ag0a`#x$Jdw1=%hOMg`CkD#T* zz{!?Fci_mnHd-OqY_IiIFWg(NS^C9nt3LT0Fk6;@^J$0k+jh>J1keM+NnHyvdL4Gt z<1)KjkfpaY`a`XkOeh;&^+-B2InX3u55 zM6i{M+-L45yaq#adP09_gK|3>wRJUs*8c2V3uvmdXV8+ONR!9=UmFZE6Vic|%=*-V^1O!b3+<2lf zD^sC{+u9LN=LS&HcO;lHIKhx+n8j0;LKOS|xW&86RMOX-iV%3JJUx<5N7S(OX`NpuuH z@=k4TTJ`)3m=PjxYIFvPlw@!E_>VU&A7|Q0Ov#kQS#+7dX-dcJg+D~8q+YQ4YT$4} z53zK)bvnCAyFvuN2j*I?cUt9KzFr~p$~1#y{x|bIH7D% zFlX8S<ahVrJ)`k&d-OD4ussUtm=FDgMO&y7*`7kZLGd=cEQjHSU4V%XEw`Hc7Qu&3$9jQf0q>)|aCC_O|Zo z>YX}=0ffO@Ym)dOAI$6x!?B2&7l(|RGB(KukL$_lJ>Y&H8|ptB(o&?BhnBLGXHSD- z^k=8A9z8L6{C;USJ)g~#Aj0mp%7tYvCZ*s!b92$eGvd8jP5~RbC~W&1G99Zbkj#0# ziBo~sXPoRo=zr<})G{tHw_O^!HEYEMMC@SM(+*N|Gd}xA1E6()5n48nl&9iRjzBKS z5e-xYF~>s!-CXqfigbOW_4Pl?IToG`2y7&A)iFAxNRwo?mgQdKFF7kVN>hF1Ilb-r zeB~y;>fkf07+_Lfv?nK{{3e1?B5T`i?vgsazFC|LUAmGS$8VM~D9t4=$YEBa|9hJtveqVwu2(~;ezOfg}2%0m=B@d)sW$(IEl1% zUbw%|TnZvW-f|Wf@8cw2v}B!CdmT4#SHhF0t3RPWy`t8e1*a ze!edA-OZDQq&>^q$EE`sNOV{C9bRU4*?vu%r~0@N7u|RdLYV}_tq~RMZP1*o_jT~! z@Yt}&WuL{JlCIOXes%F-Ul;xa>zaP!7kOn0M!B!+K_$3Tefr}t20nRXqTmJM!vovL zKW}KDUSp7aJ;8R&bkMhq`4ixc`@E>SmKX&Xuv;j$%nGu?@Aj=LQ<8@)c9ccMa@WwL zYkaL=+V3}p@$&q6Siq-|W5XTkgIH*GELEkOy=#<6n(ui_qGXvzTK0PWBK<3s;6Sg% zg=E8f(}NXAZM`IooHw_Cha%qGAI8{k))9=&;&R?_V`XT%a0VI=7{pF%%i2coKYYl*Guei(U9NF? zp2|B}`Jp|_okBU4qZ%Vq!o%`2F*tX~Qh`NukpXglQp%`D8qn#pDAJNrD7){6+{)3a zuEYH{ua8R}Qx8OK{)3Gn(d$C6!W!Wrif9?ba*3ho_o6z>j|I`)`x(vB)JaEe>q$xr zlL|wI_tx)AHt=xR2&pIN?b-3)cD84nr)TCESeUMq*LV|R%0Z$!f!fz|vpTR3(EqHN z$}g_CKZtv0(Z9&Rc`J6G^Av!Gl9%2h>OQ4M%5$f2Iu@+e8Fhlrq!9S{Pt1-RtYvOP zeT)R<9e|64h76m*LvN7_l+m|(GA6y$snHV4ubD;n^l5Z_ZvU7i=_Gr$vM>th7L3P~(mgBxGiU1^QzGW1UjkrNbrQv;I~?(B8i)3?&q?_< zU=f-!-41K+C7K7KM2rW$4|dih5EU6dBJG&CVM6P?Grv(5dv(({CP3kgs~d4)0zCtu0T%u=g2j3>h1Q-TSaMn%k`_7j}#hcDW!(LW>xNhZ8H!&3c3Nbk!X7)9wFOs{2DP;PvmwUT_- zKqXTN=^HG4Tob>oXot0(t49d=X5OCyY@4abh7`1tnl3uU>2x7ZN4n!8(9TEQ;r2EN z#95)k;&8`itnAy0)?o6g<%RnmIPo^TTe!y&{cPj{3AeB@o-WpI)_}oO3U;C{YBMBfY~^x2N)l&5dIn6)?n1J5{8K<&>J0 zY31|X5zH|lS!)JqDR@xHet)F16ZJzr*=G$b9C|r#P>wnI=Csh0tq}4(ui*|W^!OB9 zXt5-(%FPtjEra3mzw#vA?<*yKNB*tCd*uJ=n{4ft$d%<{ZMOHLGbvZx(}At%76KEc z7!T+5&|lbG0|Y=}QK$5$GKFwvPf8Kd)M-k%Tg6w);wH57Mbj(ww^O*j-)m^vS0*Bl zvtA;eaCy98GT3WazI?R!`pRMtlT-zh<)MXJ@w~VYFWggE?zt3#qL5{sC>+=fpL^nJ zE`jt7-ZCDdSUuT(B4xckm_|9ubWaz((Ft$ks<4c6UWelx`G957_!LcJ+n#3_ImzVQ zD;@TPCmmeQCHih={z!z!vHuzGm z=fz+KbCSr}aGMbnRPG*i5bp4o|G^H&XY#G*H?=kt?oQ9Blw|960IJA9agX;^6?N44 zEGySzG^=>S8Han79$(MejJm6Y&<*qL7$>r;?{xx{lx*T#Z1UfB$Ip`Q(ixImRk(FV zQ>pKaMJ(jNE2cuY#vy!*D@V#KWZ`?{~AgGs{qCm$MwGZp?K_s17~ zhnF&8&6SFeDUUp@X9|2DoEzp~d86mTRao}_1!#|e6vsA?#n^In)T_IW^WP2hoSTnbQKSVryt>eO;FeF0qb^4oHJ_lDu`=g`6+qTWs;T!B)~;*unE()w_#BeMoPxCKRJ= zf=et+;)f5Vd%SrhR!(A85ERFHRz-gz%JbFbYg3L)aY?EYl z6%KZBS>wdxqhrN=G%ezq7+z81ZTGC1bEi8!fhpkqXx<@s856&6K~%tjFi2s4S`kle zDvRe&u+N)o#WpdWf|U^b-J+RHb#5u!UC?p5|t%XL}oJ}N9E=N6YR=N z2-V>I7}iz;FD0ENdBk@cnw=dYVmcD8YjRmvC4r=TK!}q~>`J=Q7`li~vIqF}E4NFwec9g;s9f0q)#d@szQym}}t8GNhWJ68{+wzSLZaJ&jrxnH+5av1N%m->?CDBpNh&;>r!uE6c-+S9!v zRJ&P-GL+A(2e`NoaRtF+uEmMC!uUt8C|l8Rylz)< zgzNLz&;x~-7p~HpTpbv_JSG-j5HUb8C?OvMBXiPKCqLh@(VmhVOC-E9qRqm)JaXfa zIdzVl?Yh1tw@;4z$lUa@T;UV-DHU-9_rZ8cL$Gmk;@+Y!t~f~Vmj;NJ?8nU zjO2HTZClEfbp}KiXA|?qd9i!H8qO>*K^Lg#1sV%4vtO&&2k8?q`V+Q-k}*?F-AXw= zmqObzjP#$XP4!Ncn|O(m;jlt29xZ!)U~X!+8X60F#2uWVoxQvXrt=Cxz@RUUNqvXUK# zt&)PQQ>Y&!#&I#4smCTMzCKh6DXJuCKQmK<)+^sSk!!-qwvouhb$5`&V{e5>e0ZDN z67sHu=nEKcw$#9XHhI2dN5B}*nWa;MBl30Rs z(tee-)2@tWVt)}Zj27Auh!OFueN+tTwzM#f%M9hUdMPaq#hTwJP#&_0`l1ZmcWyW1 zy%0aBKM?ecEX@PXBw9m!_q=-<@!qj99G1qHn&mxZFc-U<f|MOxuEo}Cl1VQ~axq)qZ&G8MMbA1STquemw>(k*i@WhHx<56kd8ugr za`*PfIg{c3kL=2$vt-X(V?UGQ!fO28O`mx5EJtH8D|B%RKOdMBl>2R~dJ}b|_8#ZP zRQ_HW*iWj( z-NS#rztM=vMuL^Kmgkl%YFnqjo|w#(!hOu@N0#8tMH7dYTY?)Kz0Cgpwcn&nm`CbL zYgeuG_1a4_o&Cc8XVdWKn1(c#b+MzVCx!Ad8+Xz#aeuwn$e9CdWq&n4D>kF`lrIzY zU3niRZ*5<-Udq+bgg|K8zxhI84Sh&72mRv|+QAFo#2tYowPq*?qUNLpHu4+ZjljwK-=5sM)6q}f+pOQ{JDE8Al+%D#$y0*cV9akkc zT`BNwdwgBV9}7pF!i`_f%W5uZRDNz<&8nAuA>`4VZ+ghLMiGr1o5n^@y#T*S_@h?M zkZ09Pyg&Ab!a`uB5h>*z-$SKfG(g2Pm$W~)H-Ry?WDaSq?+$ZR=9TqE!`bJEVjb*Z zZO`u$DuUu~%4~<54tsONQTOMk+lA0J_Qn41XODy57)K|{M=?`b{w7f75jsGf4Q6FhT#ioDoKW!K;1C5yPdv=BG7qhxbB2se^Ws~8j@cS_w zegkFv5t*7!9+}$RuS?B&vDm#LVOW^n42nA4^U3in2D{fL!WeY=PsxOEPd*v>@e>RB zyd^M!xYsh9^2-smgOY#~;4!P=Q&s)DPi)uid}9`W_o!;VBDQs&4+p?o@PDvm*f!oK zMRQ#qXBa-HmNGoY{Kgii18E--a2UVFS=z%oR%a3Jl>J2dT<(n2niEej1AA`&zc2Mg znGtg`S&=QeAu^bYwS+k9BG1%MF1}6D5~>o2xe-ON&VRf7^S7T5q~(#|yu6j#Cnocy ztw7xBxR~ZMR39^1mgZ{sp`q+-}ChZfMolp$0s9g_LZ8>aMtet@UUdAWl z=(8tbtd7HuOG+Rv#s6j1J9J4CPulPFnOAyN{S4zJ`a_#V_^8r)c;i(QKsyEelN7&NSJDm?JL+NZ20>(ZtHzUVqo5?@Q^>Y3drft>FIwF zdc)(Mg~CAe8`{-ehKKsokEF~nG1JE2VSi*_fiqu+%Hu2pD9@jfucp&8RVx74hB2~T zx1Z75v+o;nLDXR3il#*nv{%%x*4qe;-spBWzfJnS@y!4^ z&`G*@&d)Z2P?nOz+{s%?_*t&zmydz$xA?Nw?)*SF*xcA@9%IOmV7GT&@P4H{#kNF- z?bh>JU-kBf~Lp)5PVNvu+6W`VMA#OHFui}fh&ux2W zYAwpp_&C5?`;Zmd!Nqx4ODeSG=(V(oJqsN2&jXGp&`#9PpET3BDc zF1kGqN76*r^zD*4)@hRELw}s*kp2Civ{td=u^>N|dVbZXW21UR&U##a(!B`CepS@1 zv3Ea9u+`}L*V2AT4-didW?TP=n3gX?8K65f%3@{#@nyK^2RsHSyEUr{%6ti;{uqyJ zfSfZf#CkO5yQGv(3q1E%&#N-t!e4Etg2<|1qDY(<{KQAWk#JpZQzMsbfxUlST(RZp zEsw=6AR*=uyoR}Fy>TB@auj{BWND3RmVdfgHj|uk6kKN60@`=D>Le6KTXc6AFJJI| zd`OZ%Y~?cbrx=}ck6CGZl5+BT7*O4d8dP00=!Wm4be_eDFp+2U2qeST#{Cf0ov0u8 zP(D)~mwO+*JYC)RiMRY(ygiEpNMqL+B}oyYfZdBM|0jL*53d4jxi4V%1Bph@ z)jN9@1I0vk(bMrVbLQARB6G(_)P3L3|A`Xg5#d4A zPGzx|{PB8xMlbLBNqqZJj7nY@E}?DS-L5;A+Ob9|ag;#I&sq7~+3~R1J6x0v`rdZf z{K5F?kHkz9nOuY*I}O5R{8KC!gO-fbwPP({Q<^Rxz?;bvUv7{hLpeL)UZ+=ssi_X( zaq$u`H}NtRjI&nNjVZ#CHl57(okS+PW^X7?sI*HKXD+JjUA?jL(HU0|?Uw^q1J9{b z#{9*qLj@IIB${XQnW+Je5n=SM_S~gY8!TFm{8k=(i!497iww4oZ%J*)*KT7alo;0M z{>6JYTOqRjCjYId$ciYLcmG2&P>A?GkuhzL1Ka8#!rHkVR+2yROYl9cZR=lK+x$AG znwM1mB5xZQZLUTDiLAFZBxkdm5tfZRa>MWKPt`T6z?+Z5eTevh6rOQz+*7gj)ioB} zu`&%$#fX6XOtWtP6}W%#F(!LaEkD64YR_+oS~qma4@-3j%;q_-Tn(uydfg*>P#Zp0 z-QUZTs8ZUinIy;8TQxb5qR7`o|C@=YK0S+*`IXE=9d2Y9Wu~N$%XClaB5LZow2O6m zZraxR+12(~V1ANbUbbv=*o8l69#h`r`b61yi>@h%a+bGET8pl`^Gn+M@xN$fQRTUu z$m4$zH)b0Vp7n~pP%b9w`R2O7b$(5h42_uO3I~2tG;z#0vGk{fL+H!8m`)Nl$ z9IJ1Vi7C+M`t5I*#AaP#lHE*WWS&Y@=WBvuaJE9r&|l^s&iCR(|4Dz5?^6$VE*erd ztNS)3**{d*=EHuA(d^&bW!;M^{dAVmA;6hcFP`z*=;*BbT@25y=T5a&{#Sk?XBA-` z>458{>Ri=7Q0&?*Y_FB@7@tk4yuTKm@Fu~|#OS?%x!~hPm#E33b=4m1Su6I&F_zE# zOp-?EBLY)_TtgC^iA0ZUjzc;#c#E0^_Fc6b^_}u=-Xq%_3ln3_OvR{H1!}{~y6ulq z56ZsnIK=43XudK;=F4rC_i9XDZDe$@Fxq|#iTTwj;~jtVHSr=!@&6@7=eB8GR=ktf=GNSwH-O#hwoV$JuD-pr3a zri&HSm2P*W{j;5bT`pHl*_~DP(|M(5D9+LG-VHx()a-VCZyHb5@@#vP<4Jt%j_QE@ zz1{B~b#T%~N>#Z<&6RHfj`vSzhk8kV44n4^xfm9AB^b9)PHGxwQnFpn%FGj=3wa$NA(KYz2e>cwh-f7h@ zg|g^d;-Z%>|2bUNHM{9p6WW)fFV}bzdg9sXoDkh@jXmi_6}3%M6YZs7$!Hbs;_rx? zBprdXrC@a`bev>#oJ?}WGA=S^WAn-5hC3Q=IoB`EuPm%Nom&F=>X$>95MNSOQ6ecaS!LVEE#w3=NyH$9KL6Kz9cO&{IJ-1xq?qXOmkJl}DS z`791L>XK0Q=CO4Y%^TTs^V7DvmJIy`*KWE9e(x~!RPJk3)hmM3aV-L)7u2$(VG)Z6 z(5drC$PFc z66;}2x*cbnrow*yOdO;|uhF#Fh}83!5F}z^s-kbm=~*A8g_Er-U?XR?-TsdEV zz7@OaSs1o-?uX0!?@{^w+vvwR8IKGTIziVs91pX__0cv|=iTjicRyRhc;r|tESsCs z8y@!z<>G2&~Wh;4x_q7#6+IJ&AkBQ8vMk6F5&z((F|nj;G{TLd?GSUmvXp6k!k( zeZ>~(nKItl^Pyp95(Srz!x?X$b1R!ooyQN&v)5QWudh4vZhIo2J0R3b-s{!@9!{BA8!I>J4|;|20K39bo0fzMk=NyEaw$k-R{G#_=$kFVVs!^ z-;-ZUGF22vVG?#0xs!pBF&t+Xw%SVU_)izNZErBscxqo159R>?XCP(`aDHE{;5Nua zkudf;%D=lVig=!5TmDl2!{3bv2LsHqX4yxFc8~axHZeXQ9kiYMXw~JtV5B!kJ-WSL z;i~3YyR{96#Ebs>*D~Br3K3ME;=b{@?=u(rZp>9Eep|yJzi^sa|A?40mWEI;N%k(c zLyiMtfz88kFj32{GsEXu>f1%WOowimNXXipA=;9-b+fF@9hK?Mvu864WJ?Qq#4&W_ zNXyP~aC+u-pSQejC($dlk2N0yg%SGAdCBh6A1e8%0TKQ8%LV51d4o1V#Tb?APcMy> zms6Mh{E~iJCnjprCzxA;1-)8>8_G?6;zYFLZm=!1IrXF`P&=8v7Mge_Pu1P#^oAk6 z+}NgIe*3{Q;J02cw2t|>LS^^+yB;nY^%?Kh@!;7yMtBdzP4{`kf$cMQ^6O7Qf1?|0 zwo5t1-zhiDd3*_kbufA)oDAgQA=C{=@OGpovz%Kk#8BuP3uc^%kQK#o3{r9=J(*!m zMAMmNET_AY>ZXgcy$S|W)0z{N+0hP|IOWhB!UuWaq2SBl2FRxpO)I_3@!k_GX-E29E+;hGH+QN~sO)jPM8?=1VHMApQ%8Xe7$-Dz%@(@T zYv3_6)wX}>ILChIG zET>#wop$qEr^Ix}w_0U8VR|>tBu$?EEt)+?`0)L7Z>=o`zuD+Ljdzv$78MH-g=4zs zHgOX-w5u#-2x6y8v zr-I>nd)>x;pZTl%twu_7Qxfk|n$YGl_GcNyiSd^9c=W6O?_&FVxch3B(D$`_zCJ(d zS>vDPPGQyf6yX|jy5dSwb)Uhb(AFsx}zHt)??*3SkYl8`4 z5D%(wlQ{LqyA zH7k9kOv4H6+mt7~cgKX7>tM6%Z!Ur+OA_xa_W0i$>)1)Sktd4&HPkZaju#CR{9@*~ zQJ-#a75$siI*Y_{i(uP@T;y)Uw=ieKM zm`2v|^_<3clq9eX+0W7HkEgGOAD0pJy+>9axD#BYUSf_F8RA?OoOccQW$px02T8Lv>~xrHWb@ zMM*BK@otXva2T|ce_Q*V(r%BjuU2^`E;O6oE+Jt*YJQW4gihN}Nin&y6NwTEKaus^ zyvf>3?phPOA|5^~GrWlPIJ$KlJIO}GEa(hNcpo*Ti~Hz$Eq#qan`7YZd!kn$sA5XLr!e$no6idVQYE@_10{}&i{dG${68aXuD z?Lw*r3MrZ?i^|dw`~I-*^kt=!V0fZzJY()GEM6Ec^Ar15r@6y^FIoh*5XN~pZcP3E zFYISB<)n#Tmfn9UA=}P-wA^*qtCi%-y@cA1XA+j6!#o&W4^jj1*%IFNgz9m5Id+G4 z1)ywICCRFD`siAI7Jl4feB76N4al^KomTq6zi9MuQ+B*y6~k$HJd~(l=sN4&`0@Kt zs%Rz+G4M=em?9|jkyd8|*LmT;i?Ica~-$mNOkm&q;EA_Nq{q@LJw{NiPbB&IK zNcx_0-?MG!@ajK*aS_Gzz~cHm`qRT_)unsu%YAsyCnv<=bXSqVd7}UBv@1xMB!tY$ ziVfML0I_TLer*Ts!w<@Re?RPfGFfk>o*=8p4ls=67f6pIFu|d}oOCjNe%{96miW5w zrH&`fS&T-%AKXl8P&QF8G8nqq`uvv!{g$4b$Qw$)bi+zj%jR2rbBdK zqjY}UC-M`81|QQnnw)1eY4-7g_BpigW+lE9wdHF3=4lLkIVL$h_jQ&d9Ow?xCIZ*= z+DGMv4=ro!r+rqQ{e;2k+C9XLbUiB0^-{bw*O4vph?o`Axj*clm)+5H1!W+AUPEK1 z?|l9xDT>V}N0Vw|FEy#Ktms|E$o|ujj_};i3?m6@G&;F|b5d2k3I(qBdxzxktGpZ>VD>7M z${V8{6{vdSSxOkqCK7!$1U4iCO2y`njIhy=k+Top#d-^9wuVdR2`n>8c`-&qaE^?pC8f~-z9I=wyF*_X4xhqqMSm9X30DV zY>5htmLZe!N~5M)r_Lhb6kK6APgC~$vmUjv+!@rS-BZNj6ng~~$+zTZKY_XXu^5IB zzKPknaRx?GY<3~qT`5a0FQc1v+ON#gMwU4jI6Oap9&76kF;?+S%#5P!s%#}UJBf}s zuic53nLeDAZwd1zINN5leCqY}K&H;jHDU35Ia)&dAJ_$S8tq1*qF%Z%Gq`I z{VfPH5|j?%lO5eH;ei-GVZvQ;_UsiqfX3#@i@g3if3uU=`kEA_J|HZyuBArC^|r*? zh)Mq}VB3ge%B3vW$|+0P*=Wrps=(#OHclt!pG~TrP(iRHEXh>o5q4jj8`5j7-g#_f zwXw|$`fW4wOJNYC2x1w8Ge4Fm*NoFeF&QFo`!sa<&hlDp7&xQR3g~_bk z5ut=k^XG7Du{qCM3O$oPB=naTIU}u;g)Ut5r|xJhDE59iORkDmO$%~q`@O!)<<5}fcQ-tK&0@^sJ=17K7K1Adi05eSj|Hd7 zVQImWIGSB-J{HrPXZQP(opcW$D@X5rWch+&Ma71)E0cSHp~s@Vw49SI?-0%1ey^B( zHWw4!*q1l=sDu1^^e*;gZ4qkU_JtRl&2AN$R`X5H7G^_nf$nvyI5Dv~-}mV9+1Iuu z-R;shIr_Qaw0?*0M8r+$gvTFj=_#MO!?CrmC7SkSWMX@QH3}`s!TU_wBTCk+U`$hq zEZ<;0iQw*Jk&sHjE+z;;v~k4fha=0wqn+|W0-RvU36 zRbfk1FO6DOE3|-SCkhy$_oGfpYrN?%5D>tFk7OEAnFRPXlr|AmpNt>pH%%Xqtf-&-)T=2R4)-OIkUVU z-}~mXC)uejRv=t1)W&mSvEgz#d1VU`xuw)A6}_(Gw{*nhfO9G(vgd->@VMQWwW8yk*K>M!Zj@(d z6^&bT{eN6X37hWty`I@c2OY$)==S@#?B36M^Lk-YIV8`y<&D=a^gM=pLB8epz27L7 zGl$H~bUPndz2^75@<@5m*?-$%3%ePrN>f#y%OZhhXCu z3jKol6!`PNSLiIl2@vDLK7M%yehokXK)&*ShkxII-^2J3KL_Xc2mZ(B@Hh|R|N8y_ zf6x#32nGlnos0^W0V92I+kMaqBV$-@{MLn=ceRYIZ&f$*zlTwwdF;>QNgg+1etjKn z%swES_^SR}4R2L*XX!CK0(^VvfA3o)UNCU~_szp(%6BlHS1a4SIU>c_1s8s3Q4c@n z-!3vgmwBt53K8zZqBWR(iRgZcVDe}d%{S`^Q!d*I?ocYO>OU9^>-1#?NpgMmCH!3b zKR;b(w;+qJrfzHoZJJj6H7Qdv{4y&mkcd)9z<@(wT6qK*5+R7@08#UU(m7MmeQ%UY z&Xm|h2ug4DTktbGXyXH2C6Fp&Mtm?>8WUs8ydP}JQq=nZy<~pgB(Qk#IpJS0!kiGY zMVo-^unT35yDV3+AE1JW9en3k?;6Ua_(fShlYYoDe zu5qx7C&k@xH@z+?H9)$LKk&A7ihcvRegs>-7g4s~YyyTdG&rL+JIbdKag41F#7H|_ zWe=h?gyFOLsjRfouR`ja9KsMini{zV=DH-)GkpUBat1%fA#MRzAllAoL>?TtWP7+R zz$QqgD3EhHQzS6x5n7lCED>YmVv|nFu=AF*dSN}rB#u?uy)%%^Db-A#oo89o#WtG* zb&vXuU|D={6yQQUO?X!42V-)^rEI9|^W3u-4QmnYS~4g*UNa06`_glUS#O46M!!ku9KpB_|Y)C=Xya)xY7!oj; z3sa%z3P#SRP)K%^@maECxt~KC1eGp3&d&`dDu)gMKU=wmy&>T?p zE}S!u<#zdvG8fq?6VC@EFVXDKwVMo0;xh$-U=%KYY#xAGrPZQ@N`0usb#eiM~p^RK}m?hVE}O@l6xsK46WtP0U223p z%ILgQ5=h^WU1AetQ)8>_Pp)))Rb|e*;R16;#YJTjs|+KVSdSd-JXyuPC#APua5vQ1{P?Cka$&(lQPi8t>vDfEP>_xQQt!&W|`Q>8^o zemU8Fl-|`fjr*JV?irLv!F!J{-K%x-9*5-io5!NsJ)J6m-Ab|XWbHJcO)_C$%KxGq z^^3xDjj7Q_d3t@#_h`A)pke$-25ll82zh>BZas3YA zM+^aLU@#dli(bNmoQhC*(qIwD4HIz)m*kwOKMB`;xixXr9D>*<;_dhVj~82?VEdlt z4Bj#3>wh<%^DY)z_GLc1PJ?0f^X2^+4RMM7Pq{xafO6j=otp#Bhi0(M9k2O!04QWE zev?mj>CgUkeurPfmAHbyZLm0T>^Jf(6Mqjv+{fOI5S^;KN5{26 zM4#SKsiF{G6E?y7rAw#mNInsvnTwZuilz8KPBosBMEM6aw5z7UyA7JkK*&|cg1kt= zEk-0L;8h@Dyn?CZK#8CVehZf9ocB$xTbra%W8Mf)kJm31HvzNzca58}ZAXntmmcAt zr?uhOY@UnX857)h<4^?&ckejcQ++Wf-pp=~D0tlMsa<>eA;vOywQpp~Y)IdKxD*)B zg&n(AZXz)07PtI;ToMj?@eDll2P{S9f4y71>!Y!BKvacXCWa(d;e}jii$d(|8YxEr z45w(GoP?szQ9qR$_HDISFyo63VR;kB#g92iyI1!J^33+k|!^cZDJ6_<3*K zOm-(_lK%6tI4fkCFL7?n08W0rA?>Q}k66e|U&DAG&Y{-PF2agm)3EDJ_3!Y7)Rgq^ ziF`O?d0$%4m~{PaqeZbWUqUQ4ggK?daePO&wbzS7%(pPNYDE)5ncSNQ?>wex1rrWqH@3{*5#pZj3YEUn?qdk3=>fs+ zBmEqgvd^@di&kI(jZV^U%+p=Qm|alQys4Ob4I>R#_*QP|a9`g)i`&zf*ez#~y71wV zc6QOuKGvUb=6ItU{-VPV7xb~x=-%>Qr}sO%mt^E|2dcVQgW>o|Pjy=!*DcS_&g)Jd z0He(Y8ZWxe!u!2W)?-i|t;&nL%UU7N9l22T^t+W>_K|WTjiP%?vL#!8D@apbVgx3_=J7tc1W@cMYHZ2_8_t7=?;1mAnKt;ZI#1 z!kID*ULyg-gIsQundmRD+k`)R=VT7M@%{&s`esT)-I|*HExkmRB)2a={6m8EDE!ag zah+s3B=9FyPPNJS?I_W5Zn@*h7Y!HIr8$)6;4>-mei#2o4XoRXd@@~;x#I+eE6*k( z-LKmww(nc)m%f6|YxF~mc3bT-ayTlft9x-=EK%@_TD&O;jCXFhd2~BBtVfZ& z8=fRkY?=}+gvm7P4S7L86a^y;LU;ghgz^9aga|grq8n!gh7Tf@lB`YQx>wzc3%J-t zMf`Ozxb)TkY3m`<3mC)0_5CI>FI}dfmo6-KWzvj1+}v%){X!gS$v^E$mQ*VJnPsHF zDn-&9H5Usn@zSpsBVw%FR+r)Xm!rPjMeL=V>CQWr=yt| zuD?7WQZ5v#HyURa863x4z3rtI`lM%%tPDI``!Ja5UXQN-#biUHPk{@;@;Gpz9V$QI zj~7t&C?gO>$Vt%-EAe^>_wI;prQCp47j>Zu3ii`{NjZt0j8r_7DIgJj0`aWGrlG)KiQ$J%7|J$`NUVcL2(+zOIhUo3ISZY}gshtXO z3tYCPwlr?7zKe!+wUx#A=CAAoWL<}Nu)j?f zqC+k+Y%;$&I(&?lPvx-da()^Rp>=9*Z!K7yYTS`Y$pT7TBP`(LO2i$Sc$9a`Gc-6r z23tL5bI9P$t(!nX0eOgNoXHFWE?(ExM&y;;zzQ4e+HoPrMFtWRx5Z&}85(*1#VYzh z3a66{X8JAzqjb~s>(ox4WO+omAHQLip0VVKDs@!If+FY;9V-B-L|i*sF7_vKTM4ws zwzsLm1pxiZv))E|FT$19{hRT4-N$DA*XD1BjS{-+4KGR)x^OAWOni$BB5QkKNm-~s zCLiR7;#=FjWKFbv;D;A-jFtEE@TIQWSx39H_YEW7B}b$ZEzco?jiE_k*4GplXooIr zSL{3ReGz^S>K9oD-=PW;hi0WMDcO%n6rlvW1&C{mN9_U1<|C}WUP)=IdWBI0KTV!RKUjV(c(aGmvg&{T26Op$6Mei6q| zN=54!%yGmDz5-k1!rsoic2d;A6fdSXSblS}2q8+A5hyH@HgH=<93eFkDp&#wW01B4 zB2pp88pDk3ukJ29AGJfjE>=;_@#*? z{kihXp7}c1?WelqL%}N-?O=?8#gXW(D!nsrYIuWe>e4{mf~|rRZWWPt-*Jr(4v+dC zutKxC%vf^voj>fQ2H5i$h$u8V)5!P~A_dgm0He0^XeDF-2QXj)3sgeY8W;Vz96~7i z01B`IxlUxhxfqV_y(1nhsosAf`lW&2i}+W?dc{cuP$#;XCpd;OaugqD%lK9!*^YiO z@bXRQSxRbK7vTUt{X~0Xz5Oj?5|~-G+Ak4s-NJ!=rM9+fqavp%_Wc*P^e+yty`Z>@ z=*e<@Q6Nj0bm+T*K$r?~-?%cCR8W~qr*uT<-Hfhx>FvV~KeM#je2*zw{~0Oi?tJuE zxMdgim>MjwjTH(o+a4g1q|>XYVHj|HTQVz)R+Y7|6KaY{`h+P;^Yftfkt&Ds5jfzG ztahy!KjH|7SoN2kR8Z(RND9FGR z;mAO9so)G7w5OYalKVu1raju{*{F&e?EG~lMJPF|xk!L-3BkDk+H2PGPa7WSb$& z)+2HF;1nZEb+*=EymMk=@G;(-PWX;zZde3e$37NmkW3y6HL;BQRGy&(>adI({PU1` zK-uds7lRO2_+&^$d??4D&;}%Ox&dE#LUa6mzQR9vJpOS#BlHNX3-6vm%{y5khl)fn zYXk76x3^{yNtjD&21-0K|ZOWTefKYZ0pL2N$ zllZ@2w#VcUJs07=oANN=-{A~fN+IPFADXXe8%-7(wO1QseZ9)7fY1U5=YpZG?l;o_ zunK_~v-WFwG}N)V)afRwXaPXI@hZN?FJ;Qf6)~bZ2Fox9WuS;oAN#+JMRclWGd|pd zEPW}SdCu+@XhE&xonv;->mEv3;x|6XWsuIXjq@BP4LHG|q6Wl6Ac;AX`QOw`0_DWF zgin@Zz#W902F zAll1)Hlz(3-})<=#J@}L-+Rb7BX1*YpR84Ts4Amf2?~Up3c*dz)$Q33T>LYW zJ<}>z;V=R>i-U2-y5L-~w){|fk2GinC}Nx?F9)L%6Gf%vSCjPShOAZ!XaFX6@{jM; zdF5zqy;;d^@lruZ>o^Hxf!}Ev1Gm1>-jZ1>y^T8n6KRHR2aUe2*vxP~g-()S6!pC1 zVR4*0BtX$!$l7L}}@P$i7s^$8)Y zk!-RL`u|p%A)AJ%<$O zFacU9F%_CW7B38q+R|h9YWBKjwHMs+qlYk0lfjpJi^QmNBWk1i?0N| zT5+&hPwETR=$AhyvJjw-sULb#4&F?BVs(Mqc&qb?s>kO7BbyK!gXv0(dYL>X;foAZ zzy*fD3%EDm#hAQc0eC1+oIHpT7jAZE zqqAYb6q(qEo4X@YeK%tLV@leDAin7S%@+)N3&SU&A5=7zT#Odhz`zw7Dc*qo%IGZ> zq^olDw*;J=(>-A{0JAMhP7l4V4+UbG*H>(`Afv55OXPkuL^M}xWywTb)S4eZ5vu^J zT9=1cp5GkxED@YOZFNJ5R? zQq&p%w2>=@U=Cn=2PVmc+~)>DNR}(504>3Bzy*OK!xba&!j2OPGoK+ponw}00fW#5 zHy!N=-X2|* z_g|&D;Ukv1qzY%@`o30+`OX~!x6xfYF2$(kSA_`=3ow+HFiU;@E_a@oD6HCq0YwyB zjLuD73*Bu|T!Q9Vh|iJ)(GGdTB0FxhUCyK+l=?&=PT>c=q+^k46(NNPOrrYMW=seP z%!~y;Bj!?oB=HY_0Eq-I+%#~TI6%TTi)2u)aKMc41y2tmvbpvD8t7G9D8g`g&g9X3 zAE5^%b}@p+B2~OOEO&k9(wV^&4oTPg`<%6S=Xj7xM<;um+**A)99_Ib$#N*hXVj%9 zS2rQ^Zg(&h0_^us#?4}wtJ#{KDMUQG25ggE;hsL|GdJEAjc?fQg=M=OzdQ;*C(wKU z?7PMrG3g8M2Sy*Kt6p)_0ISEQdc}jxw|v$X+E24Ph|dAiDWODIC0rdl2+|S#Sy%U~ zMBF-HUm_Vm{vtk*h?g8;HgNY3mLjeYhRQGk1A;(A+1A#iFdaVBSyB^lDm++#g;6=y z#D}6kkI*fwFap^{JHQn~YRebrl5)2%m}@V`v@;P}vyFG_ln!!MMTD4OCl(d9-26#S z;EE`V?>kmV_6-CJL|irwl4*yx-=!}MGr=0ScsDj{-@|-oU&a6^dY_t8GFB%HLi(>w z3fIy$@m1J{02TmLK&!uQ0pi#d7L%X!Ni%q+dO)M{&D($WC7p(t=&Fu{_-48rY{diI zaDl$SHq`kvy}=oy3wZ!gIlA`?{KY3AeN|>?Rw<0noMIvF4WGAA!ml--9mYZ>b?Z=t z7<@J1m11*(HmsmEu?W(U#2(=i3If3Q2_P7pPD9zz(10wY3C@DXNOUO2niO%zfBU^* zdrDq*gK-<&!NBauk@e?+!)myMCd@{at;>Uzky=8X;G-k`(zSm`T7nA=ZEn-ju2x^_ zXr=%O%428|aS=#Syhp<(@R}|d7JaX>+F(QW7)tIYV^H}g_I*-HDBuN>n79{KIuBpz z+QDCH=A;T3)Om6JTV}+UL(zl!X^>2vBbk0acr(n#sj;_OlSd1}1$-kTNIVMvbm)Pl z9MAZeszfU{BiJ}b5UWHUp%OV;|F$DSFOFB^;WUrE#22-Il~h`IaRe1fgYo?^KnWR+ zs|aiW#}!DMggn9k1c~ioHwOyv7PJD{vXiVyHUV6+WcTn0Rq9_ZL_*r(zCoDSC6#RB zt>F{*)e~sC81(C<#;5J#hDXWZyW2HxoZDY+Z`?Ck*y91EjJTd3!&js~a8p@fFAC*J zz!cHknh$`;)0_L<*NcPBbfo1&Oft^#L0`=T(d&Crv);@_=Odm43Gh0cEePR(?a^m@ zW|fjgCmFml;Z_2UI3@mn@U|jlrXPvm3o|21&Y=>SbicMcsWgc~4~t_i86e2VjFuB# z1bip7s^OM*zT^RUQHqR+GSh$xp<^uLO~zT{1mYoUm?`W=46~kRfB||LXHPY_8DsoJ zwgu$#0cwN*QZM_b_5im^W4fQH34$S!(pH&_pan}qlEHXfwPcBVZy4mI>%36J)mw0k z_A)F5!VZ<5}66 zUxE2s(&+MJ7md@%IO8X2 z216Se4s%;Wxwo|wXy8!WRaf1Aj7pqoR%4I3;gjj0)f-w3a zqzIM0p=MjIrqyWW8L5!XwCBJo8DgGG=*aYQyX)j+SLJiH9k2KEh3c4JvH<nLm)aYOzd3B%7%7_s~-iU-T>rD{)c;N=1%XY3%EGi58Z zUrwWaTcq2F3X#RBV%_f>*irm4{UdVQZCiSt{zr{fS$4FPD*KvqvvnZB=~M~<{#B)N z@}1~MBPOg9q1jS)A>!fVZkJo5MpJFqb@@f9%jMKyC^wVlyUW~XH{QNd*oQdStSD?g z*Mir8om`Ze67#@tlx@(rI<#;Cn=cd-beTy1{rLNq%cA2^!fkl`jsg=I}0d7IZ# z)%wF}=ZzEneSnnZuslp#p(4p8Bwd|5gd8s32k9`r(9~|Jg7-LG#w2;H3Q&P)(91cv z0)|9eIO$$UR8hLb1jS>kIs z-u~|1K-dLHnOsY!O}1WdK~MFcOeQ3Pjrwhi&vKug>#8teU}^@!;wIvWVEwMWUnK*I6w{S*{( z1%T#kd1f;DEHSsVepm05BI=iNTwms~w&n^) z0T0bAiS!A{C@t@vURXhB87pL9X~I1tN?l5vrQV4McRe8rNZfC#Ua?10YR-@^xCY6Y zF}Pf21wdzZV_)+x+yWsgkPM%kU6KYYkZr8sfFKLN5)3n>M@sJ&a@ca+UiY z(P6naBSkkUCQ0^Z)n(3KJ~Rpvz+`m1ZJ50-tqYOG+x*^^6=)d2_{8uc7|lDfyTU}a z`PY9J;~=K2Cc}_3*XFU}SJgDhz=LCio;pnUbz;@4Pm+;8RC-+rjiU}JQ0{aV^4t4S z{yWvx2v4II8>~J#NQ8Lod|QL>`sYo`#iI@zmw&L#gXqtGRjBv`fD`^0ahSjbmlzGg z#@c(B&D%(g0VRg@lF{*EV8E86$HhETV=4gNrYqq!mTQ?aO4IkD<|(!v#b zQj@J!`sr_<-x&EYqc#_D+*>DtJQ1x&--T*lhGDRV$q}#NrNle$69K+dS-s>=Pcdf* zB>@EHUc$~KL<=zsIF&*=Zg{E0I4t5G8)tslAa!+L536;?jzY<2W2hD^;fLj1OSBZ= zY(|>OeJP^mDtT5YW&ir+b#^VXpq5^ekIo;46u<`_8j5r*mObnTNm4m^HQtMc?WfyV zpr^}2?y>gfK;WpCDw>a zm(nc9y}?j$YK|Tde1dU^BAzcRc-CQ|F=UHe`70l&nkKLqm;YIm9gSu}0EiYi!LVyt zsSUg$PYoaY8Vn4Ewrhv2CEw~zpoYqeK25|n5CUn{4}r7x`LHcN^YjAx^Gag@Qg52C zOi~Iv>f2^RtLICOVkL4*y%rmUQ?8Ei@3n^5tMtu*V+slo-+prWw)3)nn*n9n)KU44 zv0N%qynG6`@9DrX>^iLiIM92(#sY>E=3Vw%JY0szyD*?oWs=x74@IVrff83zPV_UP zh3ohGUkcy~YSY*ilKBx~{NC-^E$Hu0I{e^~$j}ol<{zrc+w@hnU4L>#&ChCDpugj2vxVrUBQ}RXkj+T4X znBijM!EA3w9jgnfliWeMqFTv-qNREsc8^`(xC4`4{^(@iwslw2JisdP`I0r(FW*n( zGVXlemro2JQTucA9c8tu6B4n-Xj^VRYLQ$V_YG}57Y>a_NuSUyrF<5|0ZUx}S}&3( zq|5z(k)W|7$B34lWLcaGi$r%O!OT!adPXr5I0vK@M!-NBfMJa_|5mvIrV);qTr-PA=J#B@j z2f?2g@PQYo-ulia>v`YRiC15pDb*(GinO(|J(`a2=%rax)H=)A-baw=E;AZEW6q1_ zUHxXMz4ppY78{hsw|4wv78NV{y$?q&7FMP*?E zAslgAdYv%9i0i%+Y3iS9$x%o8yH>Kqx&&kFx3nG(AxWBv#=YQ$2Ie%YX42k3ku!Rm z!KVc^+brfg&Gr3vcsj3+V)T8SkhuyhH}2lUJx7*}I(>iF4x8}7QDK1Pp$D_7-s*Fq zM(5{qUQ`l88_}HNP_;ZmxgeC1ljhFf1i}RlcD3RD%{8~1$)vbun@7%~A%MaJO*STSUS_j? z;vSi)O1Prx1q5tKjW6uQpz(h`*V;OP;OyX!GSOkX`JE0mCRcyI?!^`cYOJ791+2eY z&Lx*36WxZ9+o!TcJy?}^_>R8w_R7>F3(T#VU-G+6gbHfqVJnN|5BUkp0J<>Md^nXVo9XD8eG&Yh% z`h+Nj=P^rs%7Qkr!SfIbwx#lTZJZO8f^#MXJ6i{?f>yu?K?u1DTN(+PMj?3d6BZ3; z!l1DTg(raH0F0;)fk&`jW80};XiFR_F1g=2OutsfXdD#~L{18qv0d2L(_U$t<8@rc zD!$3gXuBxrwZc$$2uvCb4_!YjUpzPvwB8}+Cz1H2vp-?E;8T~k9S44~;L&7zTy&T= zSN_P>YcRy1<+cVR!+en$Qk{@i*{%f>Ctq_`oYP6qi{UM~=E|P>ONCnyl z>x7#`Si1;=JZ)0C8)pJAMgXxRHJ30_=o3BwAuNeEftG-T%^=sj2sVH6KoE&YqzITj zU?U_SJd7AyNnWUex zVhRJs7#`N!HCv+Lzp;Tj>i9ZpNq+j5rux-qfKzX6_$SX9R!Ose_m;nU{mZ_??<<%A zGmsTqC%Y36e($exx~t)^1ugYD@gB6yg~#%9cK}8Z!j4i7DvO4PA%9SZIt{ zFYNOHLSBfCC*b;Px1OS8yO}xHkM-0U^t>>ONa=C-OV`z-Pl&RdWGUO4yV(R~Gp|HW z!ZL;9Vea~0?$3)14hfxdET^iqOQLtNpi|Z|j0Je+(zCIlm9=lZnc)I~!ad>` zm)1DGdXSKk7K!dwTp4hiG>EQ+jc5K=K=du&jD-ng*E8rckbR;gLNYMMRb@sLWyT7L zfa-~!Y2@tMIO;SC7DSLCi4mhh|Kluq3kU-wLP3Cugoq!U?CWDfgI@18B*AzS79TsJ zo_fq6#fyRzF*;!9T3zt(e;Q8k(}0r;`bv@N1}<;;eMlzhx_F)Z4W|B8IQC%-m`O@y`tX50_J(IP6CGQ>~eTn|;Fwzn5;j??{Si2_% zw*0h;zgT5P!Ck`q{3sQ8!B^r<6;rjJ%;wy|oWbS-mo>V*u_;*I`RJC8QVVMSyHOa^ zI4>dxezn^A1AHEx`^KCl+=YU^VEaT)%ndkh!Lf}qluQp+GiFRN4K;B_nET@~Bh+YL z_5m>*G~t8+#7ZszM8}1I7oI^1^mTsJxOBLfAy&k*=jr9j>R|(zpqobZJ{ts)8_$c9 zY5S7kQ>POd7w+nxq+nrK>iUpzEE!#9U=>cVS{BMjwC|@*tY%WKMu1X%0&&7c{RQSe zIyTmY2$di2-{?#Lq4c5)Gw4eOPd-_I;%V|+t{gVL_qX-x@a_9KQOU}=QNXNWH1&p@ z0;zu8+(O>f*;-W)j5WLv=X*6Gx;Ha<>s4Bk3vqRNILV?MV{aoTSS@%=F3o^(I+)9b zdx$Qwk;_C_gk%OU%vh4e-0|Zw5oF$~HWHS#)oF~s|FCR6Aq9+BGR{t9zlKC65CB6g zd&neNU)T8w)Vf+7`m1Ft*Fx_h4FiObb>u!9vKSro6A#~SdgZ{&wz7v&@nloz5jmX{ z$0_tqY9EsFV*uctH8UdY{zr_j&f?EAKq|)7XG!2#hRZNq*>-7^ob9DyBxS~__AND@ z!yeWH*$>xVsu^)=+QnG@Fpqer<4)1SRc9%(Cqo%=WW9DrLOT7atmSXCs62B4W`jj* z%w4Jsz6OfbrfB6?%!%kkI45lZFW<$wUGhOqXIb-GbtKqi`YgGPHv53$jdv% zVzLZ!YTJP}A6*wlhEM*$A(s$>!~+8^0h0lPL60C7G3Bx@8`RTIrmNYx?+e|b*Jl4= z*j`S#BA5;m&E~ss>Qi&=GL?J`Q7I3k6n15_;AArxWIdn4UT4ylP*Dl8y6kI}-&=V_^KQGXNf0^}D!#S>F@C@*6r|pZECZ zfkQ^VJkp#|bk&iZ$yx&SBYkHsslS{uk%Bt&F(cPupk|2#3fQV>MBy zznI&2L^-C7l#cfb<|Cs)?UWquG~-lMNvTW}=!@Bj5Cq#o4oYnSz)8lC@^e(TUu=4T zYWOzCx-$|Tm;sP&!U4Dk2RO?HSvU#794Cm8aN2hL7uLP}jJYg4rhh;D{aFo}?YcA$ z6zyF2Rk=uS9wnO*nXeA80;qO{U6f|OZMc}uEuJmk-s>*d&zg%3N@}f#C*0np*!J|r z?Jsx$QH>Ud(VC6O5t9|Pn8M#FkL`7JrT`J+{uKR|?rGU)BQM20!S$zsM^jpvXhMXK z{it(J|6D0o~K~oLUPeeH|i=;SFUQa zDIx0ix^^m0^qidK+6@6@EEiYIqiNFgDW-c-QnS zl6074;VXSb#k}+dR{d$0Z);HFTm3Px49u1WflJbT4yXDBU#?Z&;T`)SfZe-Dh~tk$ ziGJLqVzQ5Xd{pNf%H%?vygibUl~JhC7ABcNX3v+b!;TdqjU8)Z$}x`C$~na|%mNUR z#}0qtfKY+Q8I=w=PDCI?DG}w3Kffnn0>5XoJzTmZD^%(6DD{eN-T{pJW@dvEi?0v6 zb-asGxA%`K6TIl?D4N5v&KrEAZVRZg;NE=U3uwEo1r``?JR4`C*l|0}H$6Mt^Q`fZ zQeVmDN1*{^tb8B(w;SV(axpz!?yj6Q%CLS!wD->Tj@0LG_s4cQ;1n0$4XDpx>}XRz z8uw6xb*vt)?;CKd^~~EM3t!}Y+gdn-6jP3g}sB!Rt zAq-|i3;|;l;CVoSX%K@%A`m%dq+H{n@l)cvND>vId;Q`^{i*Hvw^p8JXc21hsm5YN z&Ht2nUdvUcX)(}Hw!dOK{3O1ZwxR+@eN56>Kv^7cU!?0Qo#Y}n*&*|UBK}Q@^ z*uHwkxIKpG?E28Y@6zW89Gn) zYUT(`fYFdRBn$zu46;I_ALA;?(^jdjOVv|-iLF^ zFyne8bJ`Arz3lp4=Nk{SHg9i>$FBSv#~xokxI*waKOADeeem=A@yiFsd3?w3fKcfN z4?l;4exaW@BqII40DJ#1DhGZc;FJC5{}0@L55R%`A@Cdr_9uV-0Ds^300;sB0ESMg zrAi2a+rPGWz`@u0{58i$p+64;9^~{SA{h&8HqN?x09EVhs?%UeQ*Kv|^iOgTYuY`V z-kxhw?$bRFSzbib!}XZ|PYAgRie_e7fo<$6{KCE12=){bNXS4QqucnshUpRsSfA^X04F+Ea}Arh+1#V9?`)|86^HwtkpJc^d>dJgRfk8K7ORo zQtk`}_$87(4SusTLO0Y;9F-dgxAZK!cqSiE9vKNWA>o13qk@Pv(4VO~IGd>|J}f*q z@l3!}FXhC0L3ZZZTFds4F#AzvZa(Pja#SJYk^4#AM=ot<5}4{7mzX_D-?O}Pd7A1-Lla_ zyGpoW1)D{WQ~oE8N{FFr)8~+@ql8lcg^=+{$E-jezeMq4DJ1uhi7hdxH3gd35}2T9<%*{-simBwN&c;YMbyud>p9rG!Rp_E*VtVKA4diI4ip1oXKppw zzlSgYwU_Z|rW~mrQOVYon3Z5`^7k@-R*^$>B4BX4;8dz=ZyI| z{Jvhd`h8F2#vO~Bm38||#DCz(jqG5FA>~|R{$TV7^PMZB7JT~8+BonAfx_F$Pw+4R zR8w?kB`=F4co1vecaqDnHfcVxS$3%5=h*_`e8dWf#`3TnP#C4i?zAfhEj2fkIE;mQ zAyFi2wx9u>V536#1D`_5N4^{sR40ok6ydj{Y&i#TaPPq%1t^ap5a6XJ*x{@GZiHQ& zgiwPPHn4C|j$(TagXvIUG~E3hY2NI-#^f{?FEj+5A0*?jU16M`;EY;DMA*=Rr5|k< zoqTLnmtsJSD4Y0UpDa^yFDIGb-{vw-MPDN03%r&8z03-(bTxu*8<5nG6QSR5?~U*t zO*b@fPIv){ zcK&Q;U=Q48xtw@-P&2M9UdhJXQ1Gf8s8%2mK15<42az6VVFR;?Iojdbf9;_~PefWc z$s())>&|lpne}n`OQ8p+jVbKr!@>ThKAHwZagmYSI9(;|5KMjNH}L1Hknj!<%fpWB zQ{Ex=OO;#n?4D!Dyt7PwyXkgvu<=S|bc}I|Aq89`J$o1|&WAGD*wtCL)cx##XJe4j z$E$8R4D4$2?*CWnD=vDtJqpdi2@TGqd6o}~CQ$zQPw;27rT_xhvnx7T4;H7In;#a6 zqdZ_LC4K3|X@wH@6D5eK(W=)CsrW$>15Wy3Cg+5LGJj1gHDP`Vg-dhbTZ-)0h9Bju zY_0*FTKw)3J1P$DVV6~Q13^z?CX}7<&^Ex}Iyxz#Jgta3I3t}MHE_G35NJ`V<7<+M zSUV~#h|%#}<#^7k5!<>uu*dfG^zxT!pk)(Yx5mJ$5J$Fm{RClg>0qdorXAQiej`Je zOWI9Me}YL2(WOBf1FEAs)8t4cnJ#(CDex-c;rmfmNZ@ak(l=LDU+uc*aVE*8I+lmE zXQgc{F^ytqv3f^*!RsbIFPVz-uE}IWLM*q?y6s*MLoS#BIe1VRtCp7P0;>@<k1GU0 z-8qe@gwGC&UtzWg`wk2EBYDF#8q+}AqZpuwKq&(9WORS~DAfsM@(Ml!!l53-yVJe# zx2kZ?`u*!GpQiQm`wm|;1e|5VpR|or+T~nDF!z~VSF4n)&zag^dm1rzIyx|1rZlSY zA9Qm%n>L!PT_D{NIIs-Fc!U*E-}YBHeOz9e#kYtfDLeju(bC%E-mXlVZ8w>~BN1i3 zUPZ_M(^}y5AC%x(K~Bxz4@DTOX}&Ek;i&WQlK>GUwAT9jmST&OEA2mV90`D`mKPNl z!x~(fdlxTtLmWFUqH)-X0jF0*^brmA!s>kPhHG>6iiKIJ*u9X>-BOc`>2$n9y6yhL z!K{182N26V2%-VuN<-46ns);tK(nD+Dq8ya zeLGdZjQCU^of#R+jmxNXV>wemNXA?%H_HP6tZa5dVD^$;@G7nzhKaA}eATKcxU=yL z_F{WMyq8C%LF$>CjO>%|O$Z`gFohSDEoR9!x>gr6X|idvu?TFJzE)S0MdkNi!kg=_ zfO&ga=STI7ywL)p(psv1ws=}kX9j37=^tM_zWjd)DlXn|R%ky}cvY)v>HT9cCWF;3 zUl)G`Nt8~V?d66q)6Oa~E*Gz)Kpwg;r#2Va_JN+|uC`P09fHsr3RW59l+ ztY8IfLnv>+S3YSxV}v{@+xh?|_<<6$_J{ECfA{E6iBTDM8DnC+hK}``+%c7 zCdFiPC}}QTP&s*dpvb(FP)D{t@q74qXn$;P)7nIKqBpL_{rv`7&`i@WJ zq(H0Da%*mTNj#1s>Ya0G5>-3QddD&9HO+QU{A*=0TQ<9cU#equa#5T0@Rw5H(M0az zO^fvN&B$)9E@=@t%T8|q|Gu#@Ru?>7zcC)85W?{(36^;$W#Gx3*Izha)5ZWq#4_Nj zNsNDxn)`&U9s~B*!Jsk(1Hz>$ltG~zmuOIlmZwfh>rCO<;m8M}+9Ioqx?_01p#>rc zjv=_+M$u`YWVa{TV=yEs+OhJM=l;3$Bz7vkG<_PD70ARpramJCSYOeVhj3`Tj1AJ{ zMePW})FWTWO?YS(IGDR!Q!h1x1+?pDW8_;hn&RP0NCAr)^$Osi_2Vtu?PQ<4L=qrW zsHYXmJCO7pReQYQN=M%etM)un0A-wiYV7@n6PuRMu)k;WyHA^t^6e)=IxweE%0Ao? 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 literal 0 HcmV?d00001 diff --git a/data/pics/combat.pal b/data/pics/combat.pal new file mode 100644 index 0000000000000000000000000000000000000000..650795d3fec3af26ff596fbe75b9093b298cc454 GIT binary patch literal 512 zcmWm0Pe{{Y9LMqJ_j`WNpYQX0pWj2#p-Trv>eRu}1fkP1N$^nGMt`7)t+2!b9qUvo zs7pPxL)+SF8A92_Q>84uji6Eq+r_e`og-r1rM10ZhtEeXszuVs)@_~7@>v#UVPYF< z4Rum)UfZl@YmjPaM4D10)f_^cv&7L~oCAEzIp~z#7PsAPb>p;!9&rO^+-<`{G+<8B zkk>;`$Tr&Nobv)|m!9%>Sco6@g5)Rm?DhS42d2LqBwi8{!f~u}>uEpp45=h(RwO zFg+rn|MExX3B=)^7@+$qhL=T}&&j)F4H6K6DH_&sa$BZhPA27$N~oK9!WoAQ`zf>R zDJ0>(nzCbZTJ~asj6l|_sw95Z8J5CHGX@KC2XgY3e(B9)+FsL--8YyqL6!5TArGUN z#UWMXMP1^qd7+HTn*zSVlrD;bS)moZ>UQ`GWJZ6)GM4Zy7V#Or6FI%6=gkNAvt5yA za9tj@CGs4XOc~epwpq2y=9}iYNrQGa@juG=hNA!g literal 0 HcmV?d00001 diff --git a/data/pics/gothic b/data/pics/gothic new file mode 100644 index 0000000000000000000000000000000000000000..ccd69f5f0e24434cc01585bfef2df54af707e2ea GIT binary patch literal 47714 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

EJ$En&H(yQ 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 SY1K4)@E30Cw&{Ev_Wl8g^o&FR literal 0 HcmV?d00001 diff --git a/data/pics/hell b/data/pics/hell new file mode 100644 index 0000000000000000000000000000000000000000..acb7394e3c652f165dd6ca0b54bcb9503fa5986b GIT binary patch literal 50852 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 Vf8Y232m%Kl8x0AV0V7G600QrxF`NJZ literal 0 HcmV?d00001 diff --git a/data/pics/hell.pal b/data/pics/hell.pal new file mode 100644 index 0000000000000000000000000000000000000000..0017912bb9ea7e52fef7b5cd7b3ef7485d3c8f4d GIT binary patch literal 512 zcmXBPJ808U6vy#<|M&jy>-_JzL=mCrkYd3(lBMdB5Ru{oQsZkgRV;OIXiG%5lz>{n zl)s?_Dh?`9Q+23fr5ywk4ilo>%gvcv264dE7*zmgfGK;vMtUH)xF}g{6Ox= X!Uj zytpaxG&LeYx3iQf@~q^35--ZA?UFGw;h)f5?2!E9XJOON=vykm7G+X@^A6Kq9mPJC zW?ytHNQ(>P2|LaEbkb|80rFgCa7pChHXoD~lcp!tDARgCRb^-*B1exw6rXu#?UXF& z8<4=AGKc$A==MNA^ger zXhXH%7W7+q$K!GuqxPXl!Gbzt9^rR!*Q*8x7=oZW_yC&y?WtDKRyr%o82i=B}u1=5On%XieUJl>Wb^NN2x?iw6 RsL>%?-0XEP=I&GO^qY4p(lK2DiWmM6`72#eXo z!!72f*EeSK&C%eIrPGggf35qHd8J(Gl!=q)2@i_Ij!ZE^Ld4U6D6eIYfb=XZ)utqC|i;2@jO%^>huGM@GWP z<)OzQ6#+vEE|(wxs$rW33kWuS?X9XBp6+{9i?f$5sA|w8fG*p3WIA|qG2oH$iDoK( zt5XsgnL|dBgcd7@+v;qCx&+ibW|9|qf|Qsh$lac&G-uh6tX8XUXy)cEpB@(9hXZ>> z+VBcgiyd|bUhQBSxtso7)FPht((cS5)gUw`dgSNn((fRWwx~!e`?QqtGi zvK>A|0t#gu=j|mY8Zu;8gox;%HcXe= z1_W!=X*o!A;bZ7N`-~B9CD%o`3DVF?lmFN#?_RH7sui4yte{OJb7exQ@Vnl?QmkzR zYbW18|1(*Y7L?Qvr6OV=u-i7`qKY% zWqI-d;ff7!^&43Nm0($M^8ts1f~0}LqXobR#sI`fBpEk?M4T}qK+3PB+zDtvZR8-v z?-~Yys|KS`q`f?gnAYtXIrk~E`FmSE>xVj0JlY)4=*(HC`Q(6j4t`kjA%K&2=ND> zhjm2BI8yHW7ZwUoN^W$LI1(!^Jl8|NUwjv^J+tnOeH= ze0`if+2z4#sv+ejc$7eT9*A9Fs4WqzXE~-OLHZ!gCZD)e{mLYB379}~&}xYN4vP@; zM#&%24Z(u=*9VX(5>_c7w@8?8<5s}&at9t zU2i%dRGrmH(PfSEqfqmgt2W*#A#T<*hPcn*r8LUwxqN|Xv|$|&tWKvJn!)_D{G%64 zvf*w_=Hqe+5P;D>NCQ%6S;A>Fj;}kJa2UlkLXX`^Kiq)M!K@t=eZyh}X8sMP9(`E> zjDy@EzaEeOa*I|(C`ds2>WBe@(5iDe!0|v#`^*%>JRVey6sy1g^!SF4;E3{fz}lXp zhm`DKkeM4zmndmXy;3^9ryG4$z`-Kxn@Jh-F$G*Is# zks*_$^vwmTeQeJuejH8jds@H*F~ikcD$Csm^L&G+1SA;uf<~F>eeq}}L0zET5DaTG+vN`?utHDP4fdQ6Kcm#k^>>97(E(Hc0Z!l_;y3sC`?s~A&R zX*v%gfaE1X|MJv5GSfi#1$z<_>@CA3zN2L7!b8@nGkr!aRO#=%S+zs9w zdW`DFF6!+`^19{(`$N&Jf|dF-MUUtS0FKs#yWzx%YVP(PE)kjj`Ra7H|3ic15;!3* zIXi)dbZGLrm^Y;@?}q|}^ZQG4h9MHykY4=~bNvB@(CQ&_o2M4pz1aeyKfI_*9$VBY zCw&2csw0K~U_{yNz_bC+Ep-6qbw(A<*=sHR6 zhmJ8Jy{lYDDuR{L>6f>R5?KSjx$bzoKq)_TwX0rFeH`GJ@=k)37kQDo5GJrPA8!ef z#jm!Q+x$HY7K3!WHdx*LHH{f;O!a`vA;*K?+_3|lK)J6XgJuoOfx694MDh#JVq@cE zA1F1EeSwSO$Kg=uR0tcLLRr%v#srU7BLR*>-5|yUjc65G2?Bn;`pS?05Q+&n5*~>n zQRk�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

Bl9?KF}Fc|nERP+~DRSHJgk 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

(yO~ow(6;=*6nFD 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 literal 0 HcmV?d00001 diff --git a/data/pics/spacehulk.pal b/data/pics/spacehulk.pal new file mode 100644 index 0000000000000000000000000000000000000000..7496dfe796c4984f9630c41f4a8eb32a9b191b3e GIT binary patch literal 512 zcmWN}&r6eG902g=ect!`{Q5r6^QLs|uoXea&4Mf>oOMYddbglU5pUZLT>?duPWCp| zJnWzwqGcx+C3(^oj0l315muIma%fVJSdc^nb;zJTf53+jLYzHBdofdTJ4Bz`tta8E z*?=@m^Q0MpbIv{<$|{_PcAhn3GO$$<(a$1J---g;A_THd8=t0ae1XOtpfPCDIB&QK z@5=u(NB7%ZFV2^|1U{t)?55kH=G>Hh<|V}+_pn-KF}CIfYOi+^LI@bJBwK}mE<%sr z1sT%L6S|kB{5pjCh%gXWm(=3X>y0<9nSmV z8qc{SG9a^jfRPEiH&hRCUpD)7FkH2uzpuv3MwCJIpG z!!8j+&Py4ImKu=0ys3Vvf@4Kd_sS~Q7@BQ4ZhnYc{0v6u%c6L%D)gtU`gg@B9F!$^ zg9S6JCfs?fi03*oU8;uHao$5UNd|EOL#)Y`oWj$1Ph2n+FVa z^sAaR$JA|SMK9P-cprE5BfG61n^kNmh7akOZfb6p@Pt`3zjXuWOjDNh6Iw7Y;HZ5k aUYTVtvMn}c*WFRGVLQzS+vo4NoBsf%>xQxb literal 0 HcmV?d00001 diff --git a/data/pics/theend b/data/pics/theend new file mode 100644 index 0000000000000000000000000000000000000000..74c13103fb343a210d466b8c39789f90915dde1b GIT binary patch literal 45212 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�I3<^4|jC{J2pli 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 literal 0 HcmV?d00001 diff --git a/data/pics/theend.pal b/data/pics/theend.pal new file mode 100644 index 0000000000000000000000000000000000000000..afa68e1f0347c5eb84d37ec497ed196b17e7a5ad GIT binary patch literal 512 zcmbWm%}di^902g=_4|EZe$Vq5bj%K$2pyLuQWV=XiwXjp3%Zo9QV@b@4)IcyRCH;% zxs}zSOf8A546*11il~(cT{=Y3DX>c~hv*<>|3e@65JE@@F8tpRSe!JlCbpW#Rh+M< zN#4Xutl4j1E$lT->LgFeUp&ovc)MI9>U6zGm_}FyKOq4dA%-g=6?Tg@>=xbZh{%OL zNI@CWupQHw!cGL-L)!2tK7nJrPPFq5k%0!$C3eaTKOnp0Si4%r^a%V8LB&*3okL$9BL0$j#|9>PJ^2tzc6WwQ>eNbww&bb@SFol&dGxuVIr zA1b5v>O5=J1)a5dxi1=s3i<-k>ST1sobo5^IMnngW$LsXS7+>~uILe66;(YUC-s!N zZim^Dt&lBt!p@jUw-Aj)``s+g`jRL{Ww+K_DuGx9H%T9}BeT5XwZU5Nabc4|&{Ocdm`KT5u?u|Ge pYV^MU;NONN|1>O{X1Ab!yG6d}Kbd#_v;G+V01Myv_plPa{sa3McAo$M literal 0 HcmV?d00001 diff --git a/data/txts/floor1 b/data/txts/floor1 new file mode 100644 index 0000000000000000000000000000000000000000..628f855a2de8c59680c2c75a2cdfddab830ff210 GIT binary patch literal 1330 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 I5EMlK2P5rLNdN!< literal 0 HcmV?d00001 diff --git a/data/txts/floor3 b/data/txts/floor3 new file mode 100644 index 0000000000000000000000000000000000000000..20d491ef5baeb2659032da4e5703dcb5d9c38173 GIT binary patch literal 1806 zcmV+p2l4nra!oP-0000$KmY&-04|=N&rkB6pU+P3=lksbce;O`oZrsQPv=v`{O@po zJKO&a*#3XN<~twHO`qp`TlxOq_?sWkkNyKo`Sj@jKD57`Z}6QD=WoycbNvtJ`gil` z&Hi(_-_QS<{N{51pT9Ht_5MA~`cLznj+7Jp^Z8%S^nd4T#r}JIKj&r-^X>otaeN== zC*Sus_x}BUf8Srf`?Ih6-Shu?e!uT7Kkl!;{l@nHzuN!Znt$Dy|J_cX_Xc10tB?KG z@c+4A|C>GjZ14H0{~pitm*4r#>-_5H{MnE5JOBE(uaEwn-})~9yLiSbQnsOg-#h&9{*YV+Mozm^bY^n|J9$Yxuz-k&I1Q}9zm8hH?RGF|5(aefRd+9?ZK1)l~PT( zuNfWn%yI+0%#6Tqz{lVe58$N$F&f-2`B(l2fI0O0{VVwofSACz zn3o_5Edi7U8|PR(5X6u8ANhv=!)OdZ5Wj?eFydt5i$^0%^k541*c3z<$i}zv9i>j_ zKpg%m|HE(vRlWH2p+ldB{KHxU839So(mS_7ihf3h&^|nab46%(f2Td7bqDY*&afj< zP)C;zUT3ejfA*cjP^f3r!Um?b6;n zi3fL4|FMM73(@>vG}k+lT018UDOS4)5@_ z_yPeUZ5wK#gEtRLzvUdM0)?|x8Hzp!As>ku;!pW>ZlKes^HSELYyUaQ5Ga=~!#))N zVsPmv39kH11|p_OWmm8Ljs$?qE_YW`!#~nM612bspWr_ES+HY9_GhFbZD{KA<3BN<^Tr8zWUkM8W|XXEFAZ0Oo`XkD?d|Si zt@(E^=dNts59aWT{b%AY=@;X+>*EgD9KV@A{;Q!Nt{c*jlmLhd&*m(64QSCfhxzaO zrzt|E2ti`ejkcX$Tdi*;p?*E#=8Lu8WiYE*PgQ6iAkW?!d z495e}`7EAND;5hy^9hj3X*HV-$3v;$_GAMum2B@IIxBvhE literal 0 HcmV?d00001 diff --git a/data/txts/roof1 b/data/txts/roof1 new file mode 100644 index 0000000000000000000000000000000000000000..df3f6cb133cc42c7bcb787e9a828039e0e0feaf7 GIT binary patch literal 394 zcmZ=R@-<=r0tW{M2F9AYx;nWHe{W{JuK#iWy!~nO*(z@z-?pC*0-gVp?Du~EvU`EO zz4Y(sdhgvl@#oLqj=J=&nKS-Y_|4)|XO&a0PW-#HcFOuYm(I_*xPQz3`IG;Z*w5K} z|J?PT*umPhL0|5zjz64OIDKnj>mM^8&8jP!_CRCfQ>D&a&i9FbvN5^pdC|{VnY+LK zwHMvK{%p);k9`aO&!4|-ZB*L7zxz+8)Ue^E+xq8cErexo2}JZNzh_Tk-gEv zfH&KE{PZpNKmT6+?|p@UjGCg*x%3+@YT|;Ou1Xs#t_H2H_}|sOZ0a33X}JSX(O%7zc}e9c7k8MMnb+E*VM1o%Njqj*+3Lv5m6}d-IvE4r7o|r{ zSK4x2FfXNLYgw3)trtV(d;?(tR$Jp@kFWw z6kOlx!Tv7FlHc6Io5tD=Sh72No~a_>_U44@$;>kx-R7e&sJaF?;M5jL?*fuT>xCg| zm53y}iuOKy`0ptQx&hS9?dv3(6ZO}j(akRlc>~;PC=)55(;`3KIB7}rDL1?ipUqKo zG8Yw5g(O8IH2lLKbBR7ZhN-AB1`;c`x?1Xa#vt=8aS&fsrpd-ABxXNQC4WDb`|%WM zoTFn#Rn~-grJ34&_J@}(V=q~ZccrlmUrDaKa9lX8s)x+gqt`%{R@S1<>9+@yEvEnM z18~o1;y6kJyE!g2&FlfbBgqPTj{p(J!yvO_c>gVRWbg?x)u4R>cNH-_EG^%fLG5$s zjl&nmt>eT8TNf$ToQlu}^FRs1HFZG$yT*oBYK`ZQadZ)|Kd54={YAY3Q(*2Y&SDx% zh+RySH9eF~3*4pRADpTo5W9Htz~@1`yO9KB-3j(*%KCx~9M_A+C!H-2Vw6aVd-7$> z_~YfOpdTmed_HLVv8RubPVaXq$V7FJ6rso3z*^MmnfCne@%ac`-zNXw1frZ=`p_WL z8*`rlI)~{Q+Y*!ChY(*GNdpN)lQmT-vrbPI`|0L0aLVerR~s42sBo#`H$JCjWms4T zdRE?f3Z$Ew_@l?0`FtYY}ypTcZ3Ya zPaC&K0z|th?VU!y3tHcxnti~gi`Ze_*9u8+IkiB4WxD7T4YPr);TMy_9KSjHG5sF0 z4P9s&;uqm-Cut(m2UQ2}Dy#o5zsuk^$s@o#iBfm?(;EHhNZ}Y;|V!XPUBh@WBzUnr!~21ZKRBe@V zV~uYe6SldZ3@NWJ1d3{$!MWT1moNOPsc5@$HAvp2*Q1ActwismVByxbLlDKa1v~iq z)9y1i(uC0@#Dyu!uF|(gcEAnw)-5*^D^>|Ee($oEzbSwDtLN(&Z7GBCE(bmzm@L1a zI8j3wgZKnKHEs=dOdY@~;d*R5*E*~d+cxKZ$cjMKhrsBvG(VV&GY*=26_klx}f~{-`j8$8$ToOPDHr5DSLQ%#U5|OlBbJR!B;wa^Mm2FlK-(s3a>8RH|V literal 0 HcmV?d00001 diff --git a/data/txts/roof3 b/data/txts/roof3 new file mode 100644 index 0000000000000000000000000000000000000000..050a4b435a08bd38b55d2a1d6f43b162a861d56c GIT binary patch literal 1642 zcmV-w29^0ka!oP-0000$KmY&+TrVD<&yVvSpU;l(=d0}geY$_29N*3^Pv?up{QGQw zKHL9g?0-Hsf1Iyd`Oe??8z0X%{zFUo(f=0E{(rph=f^ks`p*7&W`8|?U-Q+>{(ZmY zxs7svoUT{%+CTHT;{Q0lAM=X``QiWm=-~f4-+$bn-~0Lb|9pP`?k>OXm(Tsq|Hg6u zbbbHs7q|W4_5ZlE|F~TL@3;OsU-vs7`@@I*?f2>f{_}tSV)yxrzvmbHwttvD|IQtM znmPY5WBlU({HOKt|DFB+D(~`N%NWGRrqnO;HvgJ_%28uu{(JxEnf^xL@%`WMKhCT@ z*Zoib#{It&|Az1V@2BFJRR7%n{bvHq{xkmd|1JK5^q#xFrnmlk{dM}ol%&%^|0%#A z?nB5j#;0rlP5-X4l;9*PQfwXO6B}_}He2hMK1AYdi3g_@81BzXL z+Q0K$1<&HY>tD!x1jYs`hAwQ0~7`4@aOBSbes|63<@Ry zry2!k(>3qvJ42n&fVun?|B1j+S8v0#M?ud`ejyw^Xfc!mB-#YQ<)s7T&+IZ*XAk-( zluj`I724JmR%X}=c|eaSG7yqL5Srm#9G~`Y`K$sU=!NU?ftdYC{~*Ev6@xqr(0-Qe z&L(t5+8_N}z)}E;m>9nqude)i4F`vy@mh!ljZ7?QMCYDA_FwaMO~ML`VqxK2gtxA>qaVh;;Z4${P*zy zB3wCs9sHIWy$3nqQHRLYFcd(R6d_%A<5~v*NSANMw*IA#lOKXH4dVbnu9&&u7ygU* zOu!JO{3LgPzX*TRVYa1~0^ybs0i7e#%W|~k!vEK*lW+jDyp|*7%k3YM?XwXqOaT#( zLt1C0j~T;NPe=Zi5DCj?@LYi(mvbo+>dUmmb>wCUOdD7;n};Ef48QT*0^kJC%FVoQ zel^SakSZdXNFiBeTEFp~Qe=23V&V8Z&>G*9aROaMFE4oVBn0WF`1Mc;(ez)XHgn_e z@TX}%%vOsmnun&f@PHIY%Kj6Zz*D!cp?qihcjUE1W+I!>@~Rj!aP)WnnbiW7vqu?% zJ^`N(%+BI}i*GR{E7!Td_T8u;GIGW6Pk}%ffH`buIem}-8h8GiR0185a>RTy@IMj) ziFF;%e}bR!|M~V=9B;cTIq|8!5;d|_W$$X=aQq308~mFLNCchmh6)fhKm{lGn*4Xb zt~b$Q{5o%I@f52wa5ZwEnRWSBf3(5{7Tx#5f@4`p{6GjF<{sogQMdkU0)hN$Yfb0@ z14^IZv;61q2paA9$V>qQrCPC$Szom;;Xm|#31<1r&~QeIrIlLMt*ttb;XkPVqkqA; z;$#6j(WI}mtry~oJ1%TiiLvlfW%}p8jXhIk?{P0K_QWe zWYT#|tXM6Vj0O`Sl+tT98%`%fso?m3Kp;@4)N)xgr+z@A@(G0khhVbZuJ}wwTQjQM zZu`FAs9ZK35s5_Nv2ifaazw~xRY0(OLP|5F;9$UzXv}>GhC{*t;50CZ1%rX%H|#tR o5P$^%AgCZ78wLXbV6d2UEC~vRLLlHU5C8&32#5_GMnw$(2}V?E6aWAK literal 0 HcmV?d00001 diff --git a/data/txts/txt1_0 b/data/txts/txt1_0 new file mode 100644 index 0000000000000000000000000000000000000000..e9231d66fc22f0d19810a532ed6161993b2bf852 GIT binary patch literal 2778 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 B>6HKg literal 0 HcmV?d00001 diff --git a/data/txts/txt1_1 b/data/txts/txt1_1 new file mode 100644 index 0000000000000000000000000000000000000000..611e375d9d57970aad45766fc0ff1b76ce525794 GIT binary patch literal 15330 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 AFaQ7m literal 0 HcmV?d00001 diff --git a/data/txts/txt1_2 b/data/txts/txt1_2 new file mode 100644 index 0000000000000000000000000000000000000000..c767174b65af9668d4cb8b81ee233b329b135aa0 GIT binary patch literal 9532 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 O!88+@>p8M`~niO?En#^r{48C?%aha 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 literal 0 HcmV?d00001 diff --git a/data/txts/txt3_1 b/data/txts/txt3_1 new file mode 100644 index 0000000000000000000000000000000000000000..a4516658189e09819b48d42d9c5ada2d30cf7902 GIT binary patch literal 16554 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 Mm*OsW$N^;k3$K+~kpKVy literal 0 HcmV?d00001 diff --git a/data/txts/txt3_2 b/data/txts/txt3_2 new file mode 100644 index 0000000000000000000000000000000000000000..9c4670f956b2666419f4de6878771101822c3e91 GIT binary patch literal 14068 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 literal 0 HcmV?d00001 diff --git a/data/txts/txt3_3 b/data/txts/txt3_3 new file mode 100644 index 0000000000000000000000000000000000000000..d2b670e6123b7f3030e5a61d08aff374ad9310b1 GIT binary patch literal 17986 zcmZsCWmr`2^Y_`HW9gDu8U>_7YFD~D1*8#>4rz92BqSt7=@JnEX%H4vLXZ?GX%M7K zdfCVC@Bj9BbFMivbI*0pnKSoi=DOxq^3@Rq006`j0|2Vxp`(G&~0#Omj#D{bZIv!#nJ(1L~F{~gxW?-YWv`l z31#Pm`bAO7&0hDFbKtBwZavwn?@>fT#f9=BP>5U2Q;clMjUIN5C(r%f_pZq>0HY%I zr`v*jh}|AdtPKL^`Ld@a_OHJBNNq3Cplf$f^AVf64e{}w0q&S^e~vXd-aDwub4|}JuQP@+Yu6G~s5XKM6Dv)v$I@Cr*@)iFL%%krElTC=;&{q*>f&{7KmY&` z-UyAoujj!G7}6zOYe%sUFtn+-h<{mrOJP|3zPkv(46i~8W}LrK#>-Ux3{I`rY9mig z+7UM+9?}JfQy`}LbL2Ej7Ff^Vjcf-jaeekmNpxPyV@FezE%*~y^&^=RVd9x`FaI3X z-5d#md;2Qx)QLk_l3xH>+It1MKdpnK05of941F*E@m0=<={H`UFpHx0GJtfP-Db<1 zLruW9-}J0-F6)&bll7?d)7i=cO1wec^;wz_MdW=cBP-sD(vTOVo+MK(%RR58aH%K*tLy~c{_*!8j@SIBoIB3&04;WM4swuihStI|M)=J}9UgOsNy7cJk9Dk8& zN7>waLMpUfM+nX8-je&zOT6S`)B#!v1IuxVIaB^v4}n?h)8Ud1Wp++$5e$e*7$DMm z==!6TH*-^8(wh<=c~C`mfU>ABUeTKLv771-9K)s8IX1@HGStqSFTtt5g!q z`g}cvHyXETjL ztCBEuICX$+vIWw>)6_oDjZJ`m#e-Terp^rGXQBUkEjY5V`ffVkHaJPKm6Uqhex9(f zYGmFM`jc;SI>}m~Su2ayL@E=dX{LLFMC+WgD*rZR0(6ujc^;0HjJ&KH*E8R~qj7dMXQGd@%2I1`0QxL?M&5}Yx=ydS-d8WvbqW#v)Gf1DRq2ROyz^0 zO~gnLT~__HDe)J0S@c)6QO#k3^1eQxQ9X`dny<{gHt3X3+dIwrR1t8*KnrUF+rJH4 z(G0)sI!BIRAd~l0oA6m_$F+KW}z> zh$cgFsQvb&4xfLTebJb@I|Vbl2azR<#!yi>s|jT=QxZAZsCppu)893Sl$sIeuDw{6 z7Pxa!LjwrIwV1n}5u{Q#lB^o}?wOPI@8R(paq~=YC;#$kuwM~^HUI#+mC~x?jna^t zk!yaIq*K=19LxM#L@&So6HEv=XItd%*01RJsl{yBkt`coKyc*|01(>me=HnYnE+nU zyh9eaGQabZKsmVtl`6Pb#dwIjU7qGD?zH1_p zJM4AfPL$rSZ{hvS^@@#n8dyrZ?!qdO9N!jl?HaPbw|?iGbXhUS1haB?{@jM|`o;un ziGJD&F-G$hs$QY;bSl@|c~||G(B&E6@H>CbR8(_(_XDpK_06H;V?T(3x3z9-Uxo|CHALW7xp!56cvUFNIe+G z+?=2HpPS!eng4&RZ@35)HuU<;8$o-)B8%JZUP_9*Sj2gAjUfaN0mx+N;Gw)0Zp_Fv zc=fJR{3KdEeEU`kpW*?X6?y(*ww0$>a42`p;Creqme7;x(7o$zs!tT@#PyrHx7dx{ z`2o98byc|?X)3lL6rsBah4_E8{Oy?%V|khB*We%CJfVNDYl4uwiu!C}W12jM%XpzD zvFEMN{QvYwuo5znCfPof-&iBrI-JN!?t#vO+`i2KpRUd^o9#O}4lgEN(B6-Wf%8k$Bhzjqb2v}%$`zHNLzI z;Kni=70?;}(D6A2FLVPJ!XVi5vbZE>soxn*{4bKQ;&@16CP(U?Ry36L_G;CtiMYW*;x<5b0P6)mqRKV2 zpn6kk8x9b3A~qe=I>!w_sEiAs;P8SixBEQjf-N6)K7GMffH>fHPja^jMud|c={%t- z3?&FhgV5S1ycl=ZVP1)YG!epr3;B=s)1uQ|8V42M`@fa_AYz;Cs%%9tAB@Q#2o2tU z*0Bu>omo4_V%~&*bhkPpyL!UCFC&OL^qVd#mOguf1rU2e3p6&AxKUZI0$4cMga{AhU8AS1qm|vo8rJ|lk zle~HJCs$xn(px2aZ%J_Sa?T!g-B+>oCQ2g=B%_-<3%j>BSDgSC)j zb>lAA6zdn1NO2#n?n9GNZI9p3LzCkdw_0%H`e)rFxm3QlLl(Ot9EqjX} zmVw(z#q?W*+Es^o$lEB%7SFGztEC^G?agKtZXGVO0;C<9VY>)MH3hyR^=E`-pGUtN zQ*xf^GFRiwUja0^T)>^e7(-*kwc76OXa2LHg3gUX-Yb?$>-iSXmc4ANG{E2r0Z?!} zrxmHd%sqRJfoKjyG{b(gdt8_6139CK&|+gOh^M;xAsrgbyuUOTcqd}k-}(YjT)T-# z#g+E_owOE~kZccr=9XVqlE{VzFLduFfMfmDGXZ!>(rAxZ&mVOvH|rd?m?wg&G$ZVu zHa3L&OU>b1T>$asV^rZL1~Pc5e|4nwAX4iW%iB;B@Aru?*t3IcQ|$HP#tdMl{_@3Q zEl_SSRXEcY7;(ozz-BJ+aqH^)YpM0hLRqNlHgm;TNZ>ZC_g(j%i){Ymv|M?znr#`x=Ss&aiDT>(=)zXdF#VIp>|k~b}W zY+F)(Uz6xqZHXNz_~ZLjvUPVllC7r`-{}#GAGk)xnZejQ2!{tq3HoiGalO0Qyc+7lQfojL1(bhwG8uq>ijKcbMJRRsq@rfdH#d+m|0B zMY%t{JrPJ<8&^wko?*-H^p5*?dbX~R{VT+MdigI-w)?%htZgQA; zx?$_BD-std?ta1#D>u#3IuUGxKD|%>l!$$c@s7K4iA+5!jgeYm0IK>B4lz=fKMbpL zZ)&{baGi-ZsvrI?RMKH!&vHb)^Z~*1Ovx(nfoi@jUQiL??J=C-7r=%N*fElUTqQ)|-f1?^lno9`D4*5$*h5FAUp3{ zWcrrzc`F`D8CCC`P5&5tJXErwei1By<`zZ++=NQb8>XgCruPIGZ(n>}G*4Iu&|$Qu zlxT2@Fz61s((3`H%!abJ7qHj@1rdyP0-&G{_+5fX`Ci+!TBOmaQ!UZS#poD=7?aQ- zsH!3bg@$IANpJb^N4AuLV4J-Vpe6LNI#}O@8fv~7!cc3zsG^W%v&RL}eeXK&4ZK8B z_Rv7VP6>A3%qMr|wZEDM8;33)@*N{VT5z4VF4#k=;}tuA&Vt#=#Nx>>w@&(O6F{7U z0*`kWNrlb1H+TY*d7bB!83_kzHu3>p_4z5L7eT)WuJ)p$R+{vWt2|@CXfDx)EjhxI zuM-77@TBGyfv3hGveN-j^=ZZzK*i>TlAvQeWC?cJl$B=+ey-arxvA zh`C!{SnM_cp=H3+Ay0#E9Yz>IrfezuOA0W;HqtN)rVK2eJ#hM)QD6Z8Frk_mN!`f+ z`gFi-QXLR*;x;)GN$GIRZbf<2htOsu#qW7kpXt1(+9XLXOZYey_S%1#?I=^Aa>q6;=U244-h|AccrNq;J@?Ts+F}LITT}Fqy zu_uc&pBw+D5xI?clfUEz`H46X`ro73#=C0-_z)B^8~*u@G`0NM1+s6Mp!%?nOSj-U zOgxkiGTrJR3=Z8}9v5mOmRV)?LPZ?k8h+^fz>F5>Og=bRv~jNklpdBz&#h1%oDbTs zOTxU`N7b0jAvT?bKh1CEtC(GFBh(@mg~j^nV@Ee`?FP^PKZj^$FR;Y6@^@jiq z^-pR#U{qjO(~_7$*@fL$1_?woCK71Kd$n=FUui5I1a61`#K+2{osgI(1aN>$pMj$2 zW70qyKrEndz1J(j8N8VWA!QQ2*mQ<0pELr>6SJX*!ESH2yX_qf6S#rj@ZS~;SCx$uF+Ncd6|K$-F3 z3cGbP8vg?jbi^|$KvFTDLX%?=f8IF0yKM?LxmOL0j8?~_prH+saMTB}r;A@h-7BuU zmZ@zHx=f8#g6{%49w8<-p-WqtugU#|ca^Gu7ZFldXFqJgl3o*67p2Y<6wXENlKPUu zMc`zR>SUJK>?c>FzZM!z2j$17r7uiX$g3ZZeLQfG%{k?z6`#tc$@b*|+#cx!S z7EkNULwxe^&1dHgr&cMFj8__PGS;TAy&j@`r8;$L6ySR`)n&+m(xm4azN7N%WW?{b z!Ea1TUME=@2dP6}D&$OKv;HN*!<6FI)yu+US`T{zA* zeLA)x>USl8jz6SETmL`ge)??*=PylCycc?|498pS*lahG%e3T(&ItcdQv}? z!tbz{tu%0`Q1zEH#d%*@PDul;2sH5P-$q4_^f#>rl85FriiW$eq1F$)M|#Q9`&qX< z)n_RY!3Qmc{Tm87OAc9?SV-vr+ukqyVK}O;eH(Opef6}aL?$?wB0D(OeA^Zw@4V<7 zdAm0+D$hsEn0X=4+G&ee4DS$&yd4s;Upf^W8*1PfEO#nGeMC7ui@ZJADLl)17btJp zdaL)x?tu&2UX=RAY{AZMtB}Gsjg%GQyb<^0p9I&AaM9{xX#kCLEVk7)l8hg;MKuSO zl1{x?Mm20!<16KGxwqhSL6nFxft03dI#_0fcP( zOL-b`9%sX>PlFd$?9e#73+gwD{eD-Xn~$F1%mI?J0iq_*@X=Yf_haD~ceC3gMf-0Y zAS~aE17%)j6I>JTp^4xt!l@VgBDNDR;fNX363?#$M>gk>9)NAHn?@XVZUfD{O>xAq z4n`15RZSDJ?b&=br%@gC4f*@y-;+$`Z z(5P1I**_Pa+?LJ2&I{O(kR3FtGeSu5pXTZ+60wLV{f$I5gb@M%xL(Ttyk4g9hMgB~ zXgU$_U{I~ME^r<=G!2f%IpGepJM@>SFsKF`()s5jOv1o<5{x3KSvc5gecEW0G4-1EzX0IQ!ehpQaafvQtHJr62(~~Rp6{c^VHopdNVK`1qH9Ycm_A*E7U%Vo3FL73{tJ7SAB*>=2 zUI_|x`0RN;lKhE`@WoKx?-4HwAhiKZ+%)`G{(-PSecFXUExB_#4Of*I`gvSYanR_l zjhvY(LB9?fG%ABf9>}3g_mnKz_A})K{ES~RXoQ##0R5Jq%f2B>XZQ`x(WbE8zRxJ8 z5_yS%hR)C|*ln!oTx597r2F41gsjjq>8( zL^rLoM}G9;yq6${oF#eU0#+pWO~Lh=X8vo+N2bXmF8{NV4)t$H#rTwj2HTp>BHW}QZ6d)?LR>Ski9CAJFVfvd1>z&GQ!;6 z-|3u8!Q-I_Br;2oM)@%KMHM9S6FziowiKxmAmeW(^rS72_P~|-TgovrXO@W(E)fKX zISivi^v=OfU%Hk7mB8Qlg7C9Mf?l$5AH&>g<*>1LZl}9w(z|1#7^bKB_>kHtw_#Gk zu=|~84dHi|!b<47UCFN*8Xu6liXtZSe$)>rqjR_TWtIm3){uz9q_@i)kLtKz5qJ|# zyZ^jiHoBLbjgM#`MLv`f08}OvIVGpFK2p1huJ7SR!Uxli%lkdKskZOUN-z#uW|pa6z96?z%ev9R5t`yU-i= z$fa*f>OSz0URA>DngOQkz{lC>mcmF-VK3Mg z{(P4pZJ=eCLr2>$_O%7(p{1}-w#Gf>i-#{f1f3t1B|a3(NP9qDR{YidivS0;HlWS- zwK;Yl%w;@AWcyiC2}Qg12p}jR`^)JXi{&RHH1Bv^7V~5pX++HYVvI|$I6Hw+)NqAt zO!X;kQBjS6`71PtC093gq-PvT77^>l@W+?06rK3`w~+MXS4l;18~ExMtq}*lP=CLv z%7U>hMSA9RQme5vfWUU%N(?~c6L_oY^A%%gb36aKeT@_Q0{snJQWvmj+HnwD|1%W(fptKpvujW*h#oFH-ue6-fO7P>s=zOwcjLwbt=b00yNW#8v##oF9Sj%kXhxbqlaFVxf-d`&4FNN7oXTF#g~)sz6*!HcPg&IQUrItO z>!7xkUz`$48K)`id|UOAVY!$Hr`0dMU}UQ!3uR_i`mYUdC`m|^@MD+Pzzr7jGOWOR z@Xn50CE1(&A_foA9=|y)-?_dqwp?Vs&uOd`i&=rJ+MQjrM%^$y1qgIG^snc@NWfL- zw*Uh={9+Yz6MQ7Gzd75Rs@E8uB6O_~7N9z!AS@65Vrd%@jCs9HNQeO-fMr7B2a**e zTR|N+8f0y~_v5j>kQ~7L<%)#I*WMhs*#qkUOfQ{UWb){!sA!W$WVX{Vun`ir-vHEv z{)VE){+nob8i@OdQU{1|!q8PPRMPn8Ujg9#A7FJWpp_XN;q(^}{Wwl=CgV~J;JGId z6_~w76~RWOfyg?_H}4Q1Q90<5br^zIFccl(^SQu=vt zA?w2h;FD7TbPXEcHY6vP3L6mXLbO*#hPy4 zx!2+1mzgtUyjyM_Y~Q%<#IlP~4lqjt9*oM7=`(Wu^=$_J(m(UlUs;P_F)h5-PcFA5 zth6LqGNn@-_suVX)iKPv=B5!O1@`e?n?)Gv73;-Pdq{nf+c1p=4kyDd8pv0J? zM@Z!m5%kN@au#&mjK0|l%90!K zh`o7RyoMp^#ZppVOYXe*Il=DMJDZZpcr=_QB*PRamWGzo=P+wLrvfAfYo>E}_@=VH z{)8T$7E@s^s*W>?Pz{W>c=+!{JSKnQxAxL9OJ!=@(h$D>YUM!Q6CC%xJ$+5T#XO-@ z;R?yFIHSm7@9)RlME`0}>yMqHTqUd8t(lKZ&AIy;GJfcN?9+U3MuBgFvXsi^yYJUZ zL;5X69COz{ED{rln7@k77{~;V(+?3k^S)Ly&yIAm83P7u6a1dWs???U>E{^$jE_;I zbn%Y)CBAV%&5lm$^OW3c~txgOgoii0^#vJulf-!()3U%K>kx*8BLTQ zR$9AG%qYJPK7sGX@pxmmUhnGf%0OE?TMaZ+-7pfr^SIC<<=haeX2gmHl5Q&l0Gch) zpS@iBq%Y&DpGOc&x)VxLzPjEwU?9>}@u!e?9C-yz1S5T8JxRpf35n|tPJ0rm5?Ry ziq6D$Gr_J&Kkh3*&+np|xxrB^T-8_SHdLSr$S(%kzZKlOl%(a{rOjx@ zsv>0J&XVqR;=1iR^Atdtovp8JWgM)n@_d;&^t6^t4W2j}`LO+i^f3wi`?%r>aK$XJ z4p1i&*ZTg(sON%}->|#|G~Dj-87d2Y3V`Ulzr^(YxJQ^Q7EH0AV{S`2$~D$J7CgpQ zvml$MY&t#D5|dUQG^}wsef4dDk3a@^dlN|`LL>gCyAFhCWc8THB;`NS*qc1@As7J1 zt{uWcR4DL6K3c}9_@nDVEqa~>?`7)o9XL_P{~?+qMtgnB}7M zIP+_xYN8CbdW?=`R{$nPNCb^T-m~()G!P4`^AEE>vM7w+mVQ^_MlYI37*Fvn(dwa; zp)mjldWcU&dHAh5r`D>F*#VZ}={a#_$zr*Z!bEnlW=hXidFANS`uzdz z*0fXdCq|aG_&&>t^)fyI&s5Id$5LK7*O*gLaD$=HbaY%a%WL=DTy9>`!b-NbCjb+@M zuhe}VEoFPcA}nng*8V|`(jf3uxr-&2qlM_rK#pp{7Xz_=*8w&o~A!K7&8=L+q$h$<#ZY$De_dQQ=Jr z;+OG{m1F(vx0~Efl9hw9ETVgF$8T0PZh;b<^<&ky2Qp7sj!fWe`-P_%oHy<_Sxe+C z7Tbl4yxqmpmup4>1Xtt>LHnBfKZ~;|0?|Lf!X_dM_bTYQsNTN1QFBUp%NEN;v1#y- zUHK5WBMeyQneWr+arbh*dGuW%+dwP59NnxsyrEx@$yPrYsd9BH1sK9})(MPbUVsYW zm>Bhm9%kSXph3(?@EZDE+G_P(T`@X0$BrGp^$ku2pAZ=#dvJ`o$p$TF({%;VbsalL z_(m}=;yslfi?s}%68f9NEcj&G6J@v&UA5q&wW;qBTOjcBu!<&Wnep?mhq6k}NDXcw z?1bjsvWnd-zRNOu3Smcef?w6rZXG%8)%m3FW!}gO`v=k!`su1e#D3LF`<-~8YAB8U zS^=2`MxLI_c+;U&zj-NyF;!)v^bJ0L8jt!?oU> z%qJknYIwElT@*4&>DaY+xrJCnu~YYyf4j&HtzD056g2<(s6~bYQ}1WtZ}Ln3oBivP z@4rp}ScsVKnsU!1fs`|K9nVo?ja@H>0px zZkoDhwNb3wzV8{$m(%n3x^xT#TA#Reh(MK|0&-LJgo)!|pK%~ci6cE>gX%JE(Oa48r_fy!@R3(iL$lgdqM2Y-qut_*&}8+wJ2JTaus*E6R4R-z$?J=sMa)=uz?)-VyEH)TXtF z4}dhn_K)|sQ1k<_6K^1OisfwuxxrlP#ks@U+>{)@j`W{Dm3xT!w&4RfQ0*E8*C+yv ze6)If_S-F+LfS%J09&}uyp{(kWUD_4?k@58Kd~07O^}_z^#cz?In|FQVdo!e*;u5M zMoB0@cT%{U_xpT12zFmdn@4n{rt0aLbzsO5TeqD)x~gM+d69$WhIB7GIwRVmS>svv z9yLxveVgo7Zn5##dMo02{_fJA?3D3U`#Mf=ic#M@l=Ph@pCDF*eRwgq^CynBV%vXU z3CKjM^O-!zsC;L}GHsp8B9E8}ijyv;uea0E84;H%Tr^I?u*Xu$tqULiwL7|g^6pDg zbqJbg1{^UW`gp;Hz(N*1IeLLOk~Lb^#XtxLzQ?_!4>Z#m>Qf?{xt#&YdHb%2=iDhG zzmqDy8B!(jeJyc^y?r~FMpdj<#=r0aC}uERpSG5mapFm5ZJj&aa=m2j&0vLRv5xm2 zZm9ww4ML^6Ht|D2l8sM7w(69P6HkE;jbDoPmbtk|1=3Qacy>a>%d3`yFgy;aEoc@- zqr2t)wd-S$h|i9n0Qw4}kj7~zfYkX_%2PDKohyi?59>q5{68s+XsYcNy5^J4r`Dn2 z+xOMp|LU3y;_g$wFO}uP{PyM0)U1q_R{joS?fwR3JLCr22|GDEM2reu*erE#JRiL& zkPy)G%I0kuqHa0uglX=m)wCDJG{UOv;>rwmL)p(h!)#_++nAd}bPg5f2IEN>R2fdo zZbP50-z~vU9rh2)59#RI3XI}hd zo}7^G-n}FAs>@5~&Vs@;T&lP9-RFgcsHwp9UlVI%Ec}aDNxltl1pRdR!2=|)dH32~ zFe3k~G&oJnc^R;=%ck`jHN};h=8|XJD;(RwTE@TgbBC#7Skrix4ix4MeiUe$&F&IV zUj@E|2SJ|a+k6aJzYnDU{SlF}^^BDg{&93ROkm_5Y_fA)37rOqA8j?iz!d0nQJRf_# z=A@Ti-Dbz%CL=k`Q)rM{rgyLPjxbqjaF9N6(BA;tF1R-Z^FAx`=EFDu{Jd53`I=eX z#7|%=)o>}(qOUtQa``^%-3^zh-xs+j#6x$8UfdAbrLvL?AfC#4xz=F{8)p~=_G!!c$#dTn53&!Mx6w`?=)Ynz^uiM7wOQ`I5{R$nViim(Zsie>`JguNMhD z=@+_h(3dI8X!eJDSMabt9Fhg$6R@;Q@SQEeHt4ntmba*8u+u#N%TplO2-G4M#IU8} z7L8$jSiFN=wzebn>tWc>{dPu^><(cBy>b!XZts?CH}=g86Wrg1GzXa&JKj3z<|OTD z>uLR#gd$hReYLn&YqiQRWK-^QCVPx5p9nl9hlXy{i{6oUcb!IFg2p?3F6Kw{NjT>(9!tF0?$urgjkmQ$b*ONrm|$C6 zY~%dNQ@+t%u84jBV&7V({^?MH3bW8R-kF@CDA+)>McsR@PM(sJc8)}2zhSFLZ5JV> zLFV<-{)A|6laA~CI~adY0&1?o3ZvsyBmJ`@l)DAm--<{*%r1DbiZT?$fufHpJnSUT zoz$_op4Sfa`b~?Oep{^2irUCZI(cbbd&)s`uC4{7ge zUEQ0^np^M$(t!Nv4*ozy15Qe>D~h4;1LJq0h*;N!ivc%oHP2V?mnDTP?sjcvtll+K zx9i~7zhkCR{0_UmpTjJbu=aDeHil)@=Dap&;S-6^%c(Dr@fIC80U zB%?nWfsD6^mvBD|$`R6agyEU5!0xunO8r3J}1zexvHxT^^5iELmTz(b*k&;CUf-YarT*x5&}T(QYbZS*URnIh57 zH@6*5kt06mhq9KwFmU|(>agq1=1XY_jNIy8C1vB&C{s5%P--zwjRs;HPSX*LEx zuS?V^l>rAE;ueulO60~sP=?^%lh{na-6ffUARWw+&yUpfA1fw+W^&sBiu2}10X-`i zZ_EpkSLJW;x<-)r_o7#rdf&!dst!V*N66R>^FqfMu5{?HIJj%LO1R?7R-fd8SZ;d! zG2Zw<)aQgr{^oh9x%>sv z?AU3OApB@VB-M9P8bHRjddO-ly;m3hJM01Hpr)W2CC3rbKX-s*$+ zjfbiLbVBKvW`Y93dMKCI!qKxicpopfAUlDGQ{;%e2_hK^_G5M)FLT!ap$6k}$qzvr zlJO}HV(Qki^B%Z8zm%7${nRlXEt>X(v?kF_GGhRuN*j{0>L zB`&5QeXC&#^}$?6LLGKPKv)H=iB2Q`K|wrD(#vK%konpSE|ZgB`&*v^NfdiOn(!l$ z$`G-=lM9ebK-FJFD^f&0e4OAdQ8wx0kion@v@SEl%)H#JZgo}%w=(fn7h#CItD(%i z&vYOGis0b-EQ%)L`k)2(c>W0*QzJL3Yp4G4>Mat)<)A)eisaGQ2iRq3Qu64z7{N$L z9-q-m7DJ|IphrG4;{sz}De2Xv0V-i0leJu5F%DvyL~4x>jKp<5!<%vsoEjojj@3qN#VUyXspq>hQBi9*>+ zAf+)rXwWtsBKX6#_&|)MLK$7*jeH1W3-;BD8B7o+3PGV?pGYr5m0v2j)4m4j$GLFG zX$Z4~035wc#z|e%@IPNf%L(kht)XZ1!Qzj^zNLLiLxZ^u(7a)Wq|EwI8_7)VPHpKP z^yu98)Q5fANFOWa%a#Y_fXapp98wBsmP>-rUZr{8h6)n_n3r0CX!a=rAZSKY3E>F? zWKVV@hrfl2xmisugT;NongXfc!?yuSWY;|IW0BMECokkK#eIF#%z@m_Gyv#gQ?VD| zxkAz%%@%k}BUFnF&sJ)30k)ZZPTspYKBnjL>#0;JLfUz^NEZ|wBQGT}tQlib^5)!^Xv6|qHEhm9?fW2Ya? z2s8E2AY1Kc1m?K9y4ElOOU!nWcWV%{B__QPSq8RPiA3NCzdS0qA`o0y8+mv=6ER7u z;EaR@LdAOsS-31H;aGC_u$}AkD_NG;R|Zia?;mh^eR9Huj%PqiVBonGrF{JLVC9~y zE5S18&BEC{Mw3qo)?qZ!Qv2)Kwvo^ zYB4>(Wj1i;#I@~wW+9sZ&Y4D+T#jAyW!sl+`{FGK=Oj&|IkdOCo_+x^9R0hs`m`}Q zMXK;hdXZFkY}umNk5SLdLT^zkcQdH+X15$5jmL)q6!(r8Tq_uqk}`^vlR(9lADC+| z1zG}+tb#yH%tc=YBx;W;YYTUc&9)r1Z9~KlaAw6TpJ^eAi3(W$vLriNU#xVfT z84Ny+tCtP0*sJ`)3_CnwyqMGh{62;wq}UMj3$q>vZnD3w|I`;Ib=pM-=?c+TA}D*Y z+t`wVGs|1j38ECvDKf@)r}Cr9Sxah$6W5|BZ)qDj#!vnZ=JSzq7v|G5-!JzpV&?fj z9hH~}U$@D=P(Jb{4KNXHGto|Ob@2KW-T&2_cTt+*Hf9D>_PHTP4%S=0Wf=;_1XOSa zv{$hup&u-NW-9jJN6(d-cr>%x`rI$Y&!&rk6}Xk%-bNvBBDn@xqB?87)M`cd4tYaB z6LwDBKXtQg??rxDQ#P`50Ac>t0OXF^(kvp#H4yu5jr5Q6$SGucrRXy&IpBA;4tuqR zEwG+1;-*OnHj#)MAr~K^lWdDM|9jz`{PU+eRfXm+@~pPlC>}y8sfvwc)(9^B-h;0q zGqZ6IEjUs0LNPZ0i>HKyWjs?>?<|$pvZgPgZY1yh7^2V>I_2u< z7eriXZOf!sfQ!7m4K8A`D>Q1TK?Em{jq51^i6Tj{#uEpTeL-vr5q27o-ya%@9Bxo9 zY+@*s(e0Vl{>ZU9G_HV~Q%T=TE2j$R;M=z1Hk*KDtx4x$>|+&kE6b zQ(+dq-z>Y%TG*s~t|03{MZ_7W$>)|K^BA7@B)%y|g)%Q$oh@l6!b!x8DZ1@zwDye~ zOMgVv9IG#RD2QEb#TC({Tow~DL!%r!3MtRJNSlDUV2&92+79CrBII+8Lk=!;-M0) zPNMg1G)BJ?sQ+Dk0;~R-<9h!X;2)hTB8fm#C1J=3Nj&yeqZg-#-wxQJ0nVt+EkZZ} zb<%(F@$QCd=x5Iot3^NGz&aN;H*8970;EBNwJJm@d(LO`u3D~_2=TNS+L)%n6N22& zA9wK6ZXAH0$n6!pT^vjph8S2!N8@i^Y(XfV8 zgJSNAR4{wGTh+ISo9oczSwz2|7hgP~_xSW-Aom`ltk<(Lzl;*z+|hMCK=ZdU3@mANKF^HIhuD*nVUXw*~O zpJ>j?nmsy1R@BWk8z?*VoHsmoF!3!;Btcd6XR3< zDpLTv2mnegjqK!TXBELE{~10n&`V$!8VL}hmGU`2vR$P*fC;Dz&9A{>+RIV7BNh_JKLsd7M>h#X`5e7e@f zKOgn{POa5`)wR_9F!4F~t4^QU`c?qwy9TI%817ZPEi7Toh*m!tuN=Qn5(5q|oCBzv z;FhqHBBBG3@AP!$%rLYAeNqbYSLpkXX^*6G2FZfpe0y4$01VMuU)G!_l{N4j4sw3g zyGoz{NQJcG3efZte`M(~ua&a_2?AO=np~00m}ORv1X#>WLn5ILTtuKT8Hj-NRElaz zCBO$|h+1N%CLp1u%mkn}!V!V)PE<#;dXoHraa;-rLy<`m5E&&u#`cI*(EONwsT8GP zc?gffW+_7k_LvNUB#beK;8P|;jEO?PmxNG@AR-bE){~}mLP`{bLeo|-QHiEN02lN3 zfh4|KE(FCK-C+`d&yyhFK(&XBbCT|Lp$2QPORIBDUcYumP)FG6S9KK-G-} zkw$w);!oG@71lWb&cu|-$VVk2p>xVb0?XOFIm|AHX4z|tOtc+tQKFs zx{5HoUb(P-rqlc_&De+SS2h;uyEjjMkpAKhU3xk0D?p$6U^q6%I%W}hQp*X zsvT0fVzOCocT27R35COD^&3sb=at*;eg9#Q*pNyl7mZ<)EjRcy9TSZqFz~2cFew%c z$B>9rEGQNai=UzqP_Oy*5=; zjLR6ma^ZUXJ0W`uq_BpT35;v7bQ-e|)rFTh1nh+55hEPsvE~U8TdS^2#8!W*iTQ9{ zmyVHL*R|!sZY{NV$)o7RRoIr&^V`~e%zQ5+T?QdwwrCns)BtDvyT=Hi+yufg3-1Ak zt;aFJ%>VUi;dMa@Hdg~ugi*xjOb{^Xcm=!;Mp%bX-N%pDN!L#?aX{&D2(Z!pkAc#@ zTaKUDlLeGccOg0c1ZKVfgfNn0T4?_-AdJ$B5&xNy- zZ1H1D$weHc_3DCkJv9Y0?~h2JvV_=kl-3Yz8S-!_StA>gS0Zj7oO&y{@UfNuALVYf z1Y`(tookxnne*L#jNSO;*{fbpLfB?0p4B>3HhN44+@wK@kUaUAoBe+B zgg&H*Lor(!BE}WDv9JtMO#ca#+aC!T`KmrhUbF7YZk3SIegeiUQ0C@VsO-;`BBcs1 zzB`M5w-<=mxXFx=Poe(Llm8~IC1H(W7J{$aGnJ98T-dLD<{n@OJ}gn9NDQXZ;FcG1 z%XpMOe*B)_Ya@mu0!_wzpx`>reMFfZ*o=QWJR<4Nv$f%5GL=popWv2D6G&u}J|xdX zYaLsw%A?g1BYUdX?F2FQKef&*Nn9(7fzlv`K%R(LhK9a-?I=xwS2fU_;Pxhzez$H?00`0+cI zyM0;3AJC9|8RdBN)sBl61F~}R`n&NH?bFGNkYe*gx0$I_u7v~542`A^ji8nYM>Vx;asj<{v)E8 za%S2+&p^%o^y9#eE^?mp!xpv=vG8PXpwYBmX7o(ZcX6b`XpLZ8Ms;BPz}8d?jZ@OF z*}#Q6Zm(@UE=#n*+G?)rsYr5i!(7*ylax1=CFAdJ`e|%yosoJKuAQgxyr9|j zet>oFwU)jrY^ba5nSDc~l$VpT0JP9*Q-9w|L<-em@av0#^lXFX0^c%+DT(3h_)80U zG4rQx&VsdP9m5AU=$J*MI?N>RC^LF_CAMd1(%U~bAj<)*{(XJE5s9KgcXBVUz0BaF z(FRyxdFThaL8XZ*y6%NJo+;|YK!#pt9Oae{+#c<{pBD zbpzYn@9zhWRF2ra$ftoi*0N^49h@_PjW;D5lq**QBLw?R{!fg3U|c_*(i*!7L6b8gGhGBaK*FnOa7jE%>=u2&`xeCaXugSRL|*X=%W=}8u`Q*m z0wndTbf?T)BFjX*)hiY=LLJ|J`=-2WWko=HSL|$}APr886RCn%_%$N8j=Gl1+LT`On@HUI7QuZp-Rw zq8KSJ?2pxQ)Yc19sZ@2fk&Ov8N;oPMDhPGt_QOx@5b7u=xmsTZF5-cF)V9KG8S=ZQ0SA@8ct*hhd5Y#`8}6uWsR_Lr zaR~32TXg4h)N|d2FMBjsvGz6T=Z|k6pv_m-J#bQ_ZrtW);!}c*#O1o{QDq-Zd(-l7 z(J3q6%d)B^?#BG=C!7>@6O$TCP22WqYc-;e20tOv4wp8^r~YdffIKug@Q?HwNsOuf zOetR4a|~7Nxfd$YRQ|F+F2|yuZ6pi^z{cUf`Y92xSi z?vQZ7AAKm&vr#fS3%ol?^(&{v9D)^&tm~y~rdoPVOs%VN)T*Jb-hD(4!rGV4vkWx? z2d#q4C|orlEX6~kN535gmpd)X9!?=R!h& ze%mc+i2r*wDlS906uTlP;WO3mvlypY-dwY2<0f_yQ)z@h8LK+i?e8wHEb{w?#% znaQD_SW8P9kL`}DpV6sF|H|YX)5nU0OKEj7&KZo|OT94=bzgG>UNg--jBZzYxijYB zXx&Pr>x&;dR{1RmfvhsfW}Bf<@IbJcs;&E(c;a^=?u#89Bv<$WZs^!Bs6SS)t+o?V@&Nr)P|N{|pFQgkay2w_E!wyOk*9ud7oiioHY5oMJq zQG@7ZwGhz>i^aRY|NG&+uK%a^%X7_~IoHfQ&zUoG-*e8R^Z3R^002PxGys6%<5n&s z8_y_jBjYKFXW}5gZtOXFp?bOYQ-`?#i4q+FXlq4NI@wmRiwAC)4*zkm!6DCc<^v$V zl4rXn*1{vzxMN7cYF{C9D#!?!s;mpFLImJL=;+aov*F-B(=g1aW^KWitwk%p%Sk^3 zAiG$9ai7*+8R+FG5}R7BMQvpybhS$++)$wau>f-jKm|ivrobJWGpA1!D`DwN`BE{q z0Fsr^2igL@fvj>``RSpmJi&_QyzZ=kmHl#BmecGW!_o8n(zX)6WZVNSc z1)$%X9t9iUy@x^T_bsly_6UqrcU#tgKWko#g#Y>}J~G-JoIjk#Hm1}_Fhw#?+DQ|( zZCzj?|Atve$cR3bmE6RMjld4(a74|8x5%KyCw-V;Jq#Ua62CT4On-jnpd)mxBnciZ zJfUI*lN{q|=CDryRqE>#CTLB?A-f@+f{`c*mC2~A@V#>Gjz%m(o*(NS(j-{m+?kuy zsmA_Iod)W0@+m<#i;>kzn&oX)arWvWKkp;pgjeY^qO)%;$<9!Jn+H}`{zV<-yU(JX zf^n;oK@t1|hUmHRp^k1Cxoj33yl?yM%sg8zJ)6D??CIs=de=yP8{rCKXyT+a9{KtT zBY=jHr=>_QpYeG2DIYt$pL|KY7Q><&#tu5VQk=!-aeG&gT|wAK1@^^+#>6cG;vkbk zlEu|b1%b#4AE}m~cbQR~gzPjT4AATNZ=gT$nawbt0s!7e{N0|aC^LS)8@Eqve|ZTX ziof?jqaI#Qq@8nOid8;G;Niv+Ppn}bWE9kcSnqT}Z%|KrbrIZdsv2W4!lNsLLfNE< z*1dIs_w9ni_4SsGXrG$1%q6o68-Wf%{th>a>wKE=zeW5?z*}>StOfXcpu^fAl>8-8 zESEB!Y{eAYRY66WX^!rw%vaiawDX0aG|jtEciQi6An*oNGV8*fU{2oLq*s1*i%INQ zw2pP=cCjjZtgZc&{c!(6E0H-qPN5+!IQR1ZxT*Y+#P+#Z$^jWU ze5QM9NIZ*+rSua|OLR|Rq_EDP=xj1_yV_(S6iQhx3}YuFcdAY18lkN&c^v^r7L)@k zI^|6Lweo8zrdSGmE>7nbFFSd&qMi1$i)0@0l$I89<4e7x3F+(rcNbKk$BK?8pJSeE z8&t8Ts<+a|i##*XH6evT<|=ydh5e2ui(xPYS_cj+yjwU-_UOT)jW)-7S0c1E8J)b9 z{hIs2Q4x9vphTK1G_t2Ys+D9^pq--5eV);F8xKz}d9&?CS+~l{L=`)VBhC&6fEYijZq&5E!Rc zwZDdayigo}Im%l&Oo|?Un6u(C@VMQnGKBOa6x+bHkpXe}${cw|bMp((~3Wk$&*vX!RGm*kD zK~h-T{}oM0?B+pE)&H|rs7+y*>K1xII1F|a{#rOpgpAx(lh~etQX~q)Sht$Y&Wsdg zE7cTY#43$roNNSMhN227-24b^l=kOvPNC zh`u}@quqp}hX@QIs@_U8f1HaA$0D3=5t)Vg_mG){Oz+;r=3ma`3Io?4|1#0B{MTR^3hXY3&aCmmgD#mTE#PPAZ|^7`G}Y6N)|w-j9$l8 z0Hf;|Fbm<3;X1A7b;>3BOF7pfGnc-${hy+j414r<1D-N07x`Nzp z3gBQ^Lv;q46)pZy1|23ptc0BEuSl{hM5uO;MJD0kWR5`qxubD1>qMNuL@14E)Q&V$ zP1DG$pp~>GqgzfmgKU!SAubB3;NtM;rA7jPaIQrnU_8hzJH|HpOSy{l*Oy((@n_Et zHcEbnGmRcpDt!(WJ_lV#K`9B3i?BX_6=|`Zx&WmwAw?ZzT9-2%nq}xx`ozney`d@;%?tjJ$)Y7xl>!m|Z8CFqL6G`LO6xxKIU%Eq!soj#9 ze&xcAKZ|X}62?3j@v4atEa$<$4YKfI9kpBNywf60zK z1$T@bpiYexT!1xhlgYI6qyl~;igeN59IXv z4k}=_^W^x>eKi?ctne$a5NJfqiH#9T@iV|56y$W$1`woK-FKf^$UV61$5g2G;^o!K zKL{u#t|7r8$2)mGF->yN04AxfD4kS;Ae;%Fi3#23t~vh=pUyY9lhK?!!y|Y#LmxOx zZdGg>;(YkAd5fX0GBd=0d&|Lyjkz4XP#IwZTcp$A-co#=?MhCrF&`CxALgFXCY6*7 zc*iGwz0moJD)6w4{u0g@uP$W=9m=q{#XbV1d@+uY7FGuq0&b9~rxN=2lUO{&ahc~n z>0|PW%^VMMyZ%r%e(&6VM2$l6Jpgl-@KdfFozHavJ~0BRZ?DMGrVd_fTriABB5LS2 z@0OdGx;zI^VQm{9WLmBh#`Xpw1NPg%8G&^7%JR>K#uIYo_zgiJ3*CW- z;s5oZU(ld^wIz02C#EFXlzBbpYLN(aZEYb3-cYA=`t32k4+J^YOND^W_{-Q9`|>++ z%?g*Hl!N2h7n_>53gX*#%0t$OVO@cS8T?)|D<*f@d$N4whd^htfAZlz0<<1158DUe zhbA(FpnTp35>Ewa>|uMn_SBW! zSX$zYZwoo(EY{AwTHhV-H5cu|D`XrTQ;NjYL5?1~awtR{`GuYri!N7XwV2VOx4DoB zjwGB(o0u`IPpY|oh`bwn`Nt{vtM&;EBWsDLe94APgM)mAqzIgNWajdInYm>v+Xx^FdE96|R4D7SxX zeaC)c75SG^9$UwXZXNf2y z_e#(|*uO;O%k&*8>P9ymUx7d;YF$6{m7E1rje>~Er@J!Hk8u`&H3XM)|L*9NDn|saa?cNs;%a4RGN;GgeuDjWKES_a# zRp|t)FA8?;ScxcB)rJ zZTw-{GHtpx1j&p#a*rs%qTGSC_1(Z(U2z^4?UM(coL;7}xcJ>qeWcdkE3oh}fU~^G z`Y;9f$h`mLu-3A`Ctd;-WFJ~O*G@3?tojD2UJJmM_s763pZ2FF);N4(m2bj3_DTVKcrPSizP_$sDf$<@Mrc`A`R`s>^Si9@t9(t zOMJHc!0`mLNgYO6>r+IwcId=%^K!2JyM)o1Oxal*ivZgEOMNRbig^;Vm7_vs*xXme z`yu;o16@%mfwyC<7$z08PcYK9`=RU)lRr4ciX?G>#m#+wI)qClUu0sL_|M7mnnL7j zi+h?&Wi;G`>dmW3G0(X5V!#_eoSxdfeE$M7@^0p@hKTitT0l#>OPCQ^3)c6gGU_PfIPxo4D}OEe%DJN9?uiKN`#O?; zg}p1EyTItMgqHh-Bd^#ZQ-{Zk9F$y9e?fcBIGI{B%FZ{dIC)WfCamK9Nt|fNWu=k_ zGVgA;KIP#o7|i(u7-=q1qH|P zlfc#TLxIQ3n-||Hm1;fvU2-obN%4elNvdf*HrV`cJhWG`O@25G5bn^}6Dt$48~onc z^7+!`!SzjrpN`bM<1=BcxXkUP9m=&$HtRy~{l`&cg&vWE8ty+e^#zMxq~;r;mql&e zQx2J-NS@Yag(l;_qLsEkHMl&kW7P0S$s6>geUdSRvB=Xm^+gZ_P-g| z{KWhvM+ndS&YKA>Z_*!Z-W8+gE|=k~-_PkTvd*(CH^`JANd!KHC#GjEjdror(EUYhXN7f5pFOd&g(`-BtK%@(zq zh~wsg{?;IzU}WH$#?==aUgv5}EPuql zVXUqgIUxFx(86k4DD*oXCTFP$CpW^+V9R%WMGXn}Pu{ZwwqKhh1u&=i*25Ae*&{#b zd18V4dRH0Iaiu$e;_3ddMp}9xFJ9IsbgEa1O09*qK4T~~W}V0(ODB3a;Wuy4K^Khb z{~2qasD~92Lv1!i9T|C!F`tG+mjvX8@E@VSr@wR-nux65Sw|znlb(5pXg+=VDwLP>PfW2 zPjnQSJ8nuHa+4T#gP^m8&ZotqKMWZVj-Xz|uxrFmM-sbDt%1+wHy=vuG+@G7VH0hq|$NQ4Ud49_0>7J?+D}JIAw&Vr>!}L}!v8bEDN%oN1Q`+%8lZAT5 z_5Z{HRE!_W^|$4ak!5I>a5yEOL@4qkQpS)>w7q*Ki;c0qKdB@E_CFkCG-g9|Z^T3>2wS-scwLT zmZc(0wY^`%G=I-YV<^!tP25F)ISJAqL(Kl|&-%Zz}Zy&)Iz?LqRl1>IC6_)+Wr5*R@g5@Xk)l|-dszh6J z%7vapuKm~uod)fIGHe8olH1cvhqWa#Hfrc|O>%?j(y(NZ$n(STWRaY%b;T6GK_EFY+Y zIhL`|?8U)YnZjd-lRJjpQm-;cOz?Y6Uy?|Xna3O8u>9kVyVi8;W>Flt0ZUn}h|NDJ#+=tkz;~Xv^Zm|nN2M;Ap)Gk+U zy5lZ<6_pa)z|_+5+|!GK-h@jX)wXV4n_jO9)%UcH9nPxovE-4b;cveJ;_?Rq4|X=q zVmK=fkOlA+7jk``xuVjcTO7|c=@%QzKQwtEx9? z=^Yf%anMEWouJBk;pZuLe3OnRb5XbNvj>BYm@be4tJjX|e-QE#>sR2NiAI0&%BtSx`0GEvBmNg+}qiw(3z40SAvkfw)sX^JUI8$ycxQ;vb>uY_ z6zqQn@k|V^YlG~}cm7UED!C8+9ad-#*|k#z=cC0BVN^Wi)oHZ*6?EuNqV5OCL&zL4 zf(fuIV}GN z!fpAVX#Q0dyLW+bBPO~Y^`s_a^6brji0QZi?(4<^`y4~m-UwUSStT1_UY8^ylUsZP7XunX!k-n6${r$3onX1rd}J~8_f z&-n|2kTC z`5_NZgSpUb+F{v(>(W^G)2G!?;)4`Klh%J9+*mjLZRNH5=3S8$LSqB)$lTGa_jd2X zgo`t!@SJ$nZ#g}*x)FT8O`CMLjf7+d4F{x6Z7&{vkg0eJkf~$M%NPuq-$HOl_Thu| zMyr$YY0$Q)BOJHCw}H}qbJm9}3Pj{njR8)Of9O#pp4)|RTOx@&4*rZtbvN+#;8Z?0 zXRlJdwe4R~DHjBQd8CBwOoGfTlyAQB^$_ zf<2ZO(CBoy-UIb7GHju<5de6DBguSnyQ$J=( z3bqpzI)n(8{_pMH&pjGwy20)`i1&foBd*hZ?c@-TGO&9Wkfj27FGsw|(DpdjNS6w6 zHHBS|-+Q!0WbDtSxG)ae7Qpu8>G%{p0Cl`KPiu66DeRNod#jum|M5J&k-#1|9H%a$ zbms6+fhwG@S0Qzfu4eoU^()k|BZ~8au+~D;_ln&C{ybgn1(!c}W!K$h+T;i8Go`*m^cYN6dla0bj({3!zbQ2Q;063| zm@c77LFN0^fv6*i%7)9#eoms{uzZ~ga5dq*_KEbkZBFwGT15^{#TA8LmxixqM;(n; z-yn`(E3&kpzHgYoL(S3R#D^-+48)_34hS|Ot8Q+D#h9q0d#|F7`avz4ZOLFND9^2} zraIMTUCC&5y4{BWL8|ivqQ)R})LnuQ2-_>0@3i~y1j zn-6w0Cgu_>Vv+OpVYbrybOH=GwUFRZ7U;Mj`g7^8FK}n%^ zey72A*0Lqt&$3-l6vp>&RxL)%o+?$Xq|MH$hk?JGQKShWXTiM0QZh2>tZBxB7T3+3 zOB-Z)gLHSZ+?e)&tafM1cy&d3w^%vtWoRHn=PdK?77!?Zr$Lq*R4MI4? zaFaB(n1Ck85xgPWbMrxvJIs3Ytfn$7;QO2Syt?tcT*hZ_vFGnx3N={fvqFQ*3v$j> zhK}s3DCuraNKL3h3LFi|s`!K^^d`&Bt~{wV=_ibV54O~4`d&VtO!@mbY3*(TFLFax zfhazC-65)o;130Oet(yQGDLIq4t(T1T9~x!?Y7ILn@ekQtOO`i0|K+ zd|UZ!q4!l@b5S$cQ{b(jMyeZlgTnWU)g+>*F`DbqGZ(|K?xQ@ zX)l7oy`2eJD#q76*P@l_s_)VZloQpwPn?C)csRcRRyy4?3Ab(?qWQ`W>g&K5a|Gs3j4hCl3&E5aFI zA9@$3MgvmtAR=d}i+0cfe&<%lIQ&J}z4#}pGOA$%lwF$w07q*qt;5>Gaz*yeo5g9i zp63_-thch{J-`2j=qJWg!XOFjbI)&zyk6J6N`vYKX}Ez_0!E4d zsU0o{c6Z_V;&`!8aPF_Czi#D$PN16%X`US2B$v*BGFw}ZO<~T}z#C@Osmv``y)as7 z=aeXep!X`5XAkO%qtb))95a34=Uz=SmAmO=rL8%6{)5k?P;bFF5UL>DWAOFIrE`{X zXZ{&xH-w(@VNPGK+P6jy*j9(t1{{AtyG=m6*VnV@=ryrzH@K1_G#*vxSU*yfcqIE0Nr$-4u{ zA&sw31*WFZGYkcre7(44*X2ekNt>Zd@roKh<9U$;-AjZVm64IGxmqyM(QEEF&H@zH zxB7DBny>}v$s7*ekb$mA8{0I2g6W4Jm`%6m=7XLP$uEnH!3#M(bm77XXu`yh7Llc4 zod*egeM~+z!nC{dBBoqd6&e3HS9q|gex90UPb=`a_^VK^K5AOiO z8yi*FR5;;g1|7E5!|%-IRVG+cs;gHsoRe*0sb=?!n9Q zP9z1^)N*2TLq6$&k9G)NpLAmB)Vjj?y2yqe`$L^I_q2z>>jR=S8fHvk9Q7Nz2~6Dj z$Dt40J>KNg@`4#wNTgunm(U75OP3Gl-IGfwr`Nj~gwdoe7Cx|Aq~| z@vX~jTH&p)j3{1%X7vm{XPe06Xh>xp-6+o^!W6ObCydM7_^u<(cna3cBus z31!4`gS?&`(CaW+fr4)Gz=TwsFaC|5ug-r#jV1lXJS~13Klg}N5F@Eq z9rkT@g6>mQ5zA+ji2)fb6)xawLq|ZqnH|4aier3@%B9h)R&fJCt2@l!ASdxB3*O#1 zIbdDy^D~Uhxh+ADY=%b`J~E0CO+p_7<5m!=h7qe1!iXjP>L7iBWNc&Z@;Qo35<32z+T1GoU1ncc-(cax_St1axGevM=rEy^=)Vr z38tE5>UGEQ_|h$lr*}CVDsLll%UyJ{qvkdD`Ez2RE5!Pc76nPjKU}>&+&!I>7>c*a z!zGSky@62gQdYv@cY>9}H6CP6M7;L4$*8dQwjk!jZstHe)A=qRcjSo!%nlL&_f8x2d_o5)6OeO-qjz5tPozvb?6D$Cl&*PWgOX?H^JeK{2vPSs<6q0)G zG{~#p@xPQIkl)hd`-4uoTvr4y*8?LIhvtd6qDHKu^{*8? z<3n!3PElkev7f9>V73Cp|2z_4j*k?>TD#@RuASG4t`z)6L!Nl5=X!DJ z(raeRqDZ{;m7O%et*}UdrG>RGQt#`I(svSgp*;iiiDTEAtWsi6-yC<-U|cYVb%^Pa zP0W6JvcVWNW9VjEulMiZAV+6u@WyhegymgjYp*)**Y@k+wM<=(&<@w z0wdS;90SENew~evu$u8-s5C?^c+li@o*zvBukZ~}HakKownYpmZp_{Nir$INml+J1 zc=n$1#Tef^+Q$A14KGnD>!J=H9*e11Bny8Ki9-2GypHB zQsSRQF*1qY_q7IewC<-E-nbg}OW|D&aoG}mS{I@AGn?+o?)3{>)-$ep8u&j|J54+W z1B$O_T%+p;pN7qNM$Rq!;-vk*(?6><_E*mv%{Pxb_DIKYc7PMYJkb@%hO;1O&ad^4 zn}k^nzHtXA$)8{P1)-Ria_WQ&5ZpaE`p9ObnQa^gsXY`4cg2zgUvv`=8TrtV%235- zk*6Ul5lqlfip)q@uENuD^>>9vGOrU`{I#cWX(VPbQGqbj9a!KA%wu5#SHMKJ!m1nh zKJdGz9`yxlt;znJSh+{BzQya*TMhv)EXC2w&fr?SSC2kw=!NdSyY%D=K@a_Ri#p=s zt8>3qxAd3>kC(wLQ!LXzZokWW!7>=Tk5ldd2dM~lp8<(pV*c z(@p3*FM5uAKN0=P^ueI99$4|ogQ5Jb-1Tgh^^@ZrY}zJaqG=plE_O`vLm0Xk&y*45 z(DF&=Y03$cA?tag4SD?|8qs=wROeHVDt>VAVCaBkPr3)T@?W5-rPNE%i*=gt$o$(C z0Aa*xStj?^^Nc;57F0;4u8&H{hkGkAYJW#JXt9R)({k5(mNBj=`RUfM070TfjYX2+ zNZABA^RO57{0cFYoQz+yAZ>sRc<*Kd(1SJaq!NYb}}+zBu2kU_5#E%xp^yHTPu`-Z6fr~Jn^A=WsbrvvLu zs+&`9M*khv3s%N|TPNO@bt$8-e_zl^p+AQjX934rOGkrEGYIA0ri(HlOg44bq+CEu zWsW$tj+zqFTN{E^@Br)BW#AvQlfJ~ zJ^sb7%%KVFh0@Pcm0!E|bxFOa8^GY&ohBZH%(d^j<*^&GLDe#Bd>iU^sA8 z+VBcz`KbG`Tgvgkc_u8@IrDFN+mox3juk@>BX<%8i-%?#f1yKv@V7uTPTn|=T)$Zr zn$%9523O7(rv&F1^+>F6U$=dg*{Q%jbD$KYufXPF(Bju6us(S$COhYI`mR;;u+D0Y ziHH4TTrV_*Sj9SqkTxrp>c1$1Euf=MJwNNT@tEyGmI`y5Hys$Y*O)EW6z98rQI7On zA2!oaa4eR#?1T!MwDA87t9*nI+8ox8;V*q^3ayf1sfY@w{4z zeOIp)8IT30rVD1-MvYet3j{5PwZ%Sp`^0eDK}@Xd7Q>CnK_Sakvw$|9)Amh2Lgu_p zfj}&_>F@2ocY`n`nonsxny{cz|Dr52<~Q+;qQb71N4$f)4+eGwo)DSvmeiZ_kH$#; zL=V?%ORw*9&&(_~t$aOi7_@-BX?g*KD_#xy%a~YT)|XHK+~(^E+14a-ejjaKcTU=! zJ;_zV(t{G%WIeqF3di)LnUlRl8nHYV}h`@#y3n+`#!x zUgr((G0yUd<$vj%m-bT5!1;xoc`1s4%2A$x>1YkD<=Jw9dw9ydAO0MjZ-W0DW!$BD?( z&>sVvl3isiIugGm`XyFbJ9v;Y*swst$#3XE`u}fnnd~qy^n!p1bKVl`PE>)f%_epD zw8;Wt!H3HuhfMjVNKEiPbl*g=ZaVOoR4_w4onB15^sf(vE+w8G&PVHP*CN#=;p=F~ zQC@sMHthbHx)6Da`3@ew={GE~fIAyZAA#=6zjbO5$}rb`DQzULx>0=qYYt(@-$+d_ zg0Ii~Xn%6$Tn$%Ub<5V&V1n*aQ;gt8H^}i9QEa1v`1#R5kOF*T3Z6=~d(V^&J@Aab zeK7lhtros9!&SVJs)l1sLQY*_`?{s8v*?XSf5WNy?=m>LbbwBd=Ul?nG01TZma2Il zeApAxwR-rb-Ha8bF!%7r z%_BUzI?QQ6>{`Vh3b0eN4*nAWROp266bW6^g&x2mAC!&J<73Bz-4^9sTBrWW$b-&> zkc~j>I)kuX#qE3jL3u%%-)hs^^IAa{j)>@QK^V4Lon1|L&EDOa9baZr>n&EaDfD3T zi>8v@?GkrVqsgKi~s?@&N& zBdnBeJ8N5m4ArVo2GCzZO5bS)U5Hd^44wZiId}q`PXEJ8yrn^wl{-6GhGURp4c{d? z`9Har?j>KBf|NNtcPo<>p2vZ`w%ac;;?PXUH-4NuEY8gokWNQp1FKoaqf&B$Ir95#*>XN3&TP46@^8_OKm~>W=gmL4=gR zX$vc!NhIjx#lH@Vs`F!M6YB=ZiN@L?zTPV>J2eC7hJYN9uemGaxCg$efUXWz8Kh`9 zZ@0rcY-)QK;u1ToU5U&I%1u4`aWg72B*Th!i4IcZM}q_n=cVIE73Advh6UvW#im5= z>DPM+4Iv25V3Y4~QIm*AnX|gb=jtk(bdM)o`i>;pm$QO&sd2fEHZ+7h<>eW6DHPh) zN~gRXy;aWyy7H$C@}cFDbplyXZ6bH8UO7#;kvn{&`d-WKL@_hjR@~JvR6)(iG<>UG zV*0StjsuUB-P!xTxqRUR8uDS%NpvBB>oZvpmcpT15+Dd0`f2}j0q;{rq;0~cZ+BWX zk$lnx3waLr3PHEfmfAHV|OOD$9sk)h4eZV^1We-yK-+ww#yUE%h=k=6;vTclj5{2& zf`?+u^_vDgrkdmr7iz)!3Hl(2?(t8b$3N*8H+TeV451Fr0-E|HLPrF?F5-ne;e z?Q~?QV+ua5)bXjxZ++5QGaH^k*j3PUhV~E-(~*}Tzp=qR|4&5r)Ysb3{oC;;CPnk- zPFL>YKobsxPnj&G&91r&m@-uiQ!9ugQ7Z zEB(r$3(tK+x;uK#FS3jUqaJ9@d)J$I+4F_lma=-rCcXa`ioVvS1@6Qq*ow{=e#*!1YZaM@TX;4P!0Hc z2(Kw}g3NgvK7VE?3EdCPHGuA2k$(v}w$1a!oW9CyupGuATMjU%(WjEGN$~jqz#2YB zLPzzn;E-LEbyMWjfoCGuS2`^L7aX#ESJhXyUk(VKy#x>Z4M6;x=tZ8i;_`!hphCKQ)rGn4W-9W|OWJy=0F2*< z^CB1D^PQQZi8^@DqH0Exp!W^-3dF8~qu&LAO5M%tY;5ImcTnl-D86|bXNT&{=px!5 zfLT6NXB4(QzW-*YOXfX_#K#K-y%F_g9A-)K03iKZEPOc7022iR(tXtCEWUR@*J-kc z7(?XsUfBUh3S7m3tg_y`)~~Mq$o=LCH4ENE)w?lSUQpSebv4?BV1a1(A_fdp1O9ygL+@Hs3Z2`AHgD%`_nWJ+g*m&zy+<1%^c}w; zLM5Y?7EiDKeGGsPhk+UV`L(;4UPX|Q+VA1|H1GuBBI|oWrX9b~Cjj0TV9^vVM8y_N zd@BdSGy{Nm;2ps@N%)x;2J~Yqq4py3<2u>^(2AAh$HkT(71mMJ8vM2S-hu%H4;Tz` z-c4o$pzH{Tk$ME}lND`Dvf&Ry&C>*Ma^)$i>ufQy+#=e4u2DRhq zf)-|-)9Lf^eil`RyIAKJEhL-b-f5a*6{h|yejI#2Wefo@K{4QXNg>5a1PL&WW#bWN zmbH;#N&Swy2=J|$I09awkt%+NUkZH?@$!#`2N&vs+)A?w_>TTok`K%8OA-N|n}$M& z8N4Wst|D>uX7!+UJUL{8jf@@aQVYvBLj;zs$0K={i7WEeqcQx zbvQr`Pn#{pK3Zh1dBb*#!)}V$tFXKC**1$mnf{91n13<@^uId)Y6DbIc&C7!@ zwf5H%zjz7tCHQdzNkpT$9h!;G(t#EZDDQS+W^Xj$T%6ux`yhY=pZe-Zz_@)*Lg2vFo0 zYn$fDD}PM$w$$K?5+)och&SuMS#iLu^=TQXFJLuQxt?7}SQ7gOFv4>Jbc^yX%QAmp z0bnT0(zTbB5CcSNqh!LL#UAdSV~#U02jum~VHF%2Yj_$7DQ<0e zIiNNG5C6ffV1!}Uk09ZB5Jb9+N--3TQGw$YSb+=AGPm5qrI3fMQ+%}hkt{?PRrH9s zuA48@X+3dgpF>pUUar*JaFI84+=jBL#fSoXY1gDJ`X73tzARu>5w8^*)viDmLqA*0 zA8k?km{iOSQ+m)CAbiaCoocCRYCjo zrfgU7Qs)K$FrB?CB=u(^9&Er;{0DCY-&wIlwTzh_akZ6*)GvW03N@K%o+2S4Gi-)Q z12x<;kq?&WbwR>Py21oGNjCEl?wP_n+?wF4On_uxlqm**Nz)!6{&~<91_rJUU;*3L z9R;^u!kw>_<=DRm8#)8YNo0l+46}967R|6y8E9~BG-Bg4X#7)z8qK%5XG`zFF7Ijx zH1)|}@_hh0Or}58i)xIlny}Y%_G#X1rrY7K+Y*!@RdQ)ivwaM^>}O#=NEIE`c`gm8 zS@@s~It2j+_ggeQ-53y45}O==6|MYRj|YrvI~Ew|GM=jIi?boI;=B`YVWg)|uOx{P z8R7XskuS9$UGwS$fRGw&BVZa_3mB#U_=@#$wx|VtepIoCwPy^!pL48R67#AVUSYWW z*gUnsciegWnFy+~?dj`H!%jjylUdw%Fsn_;E2Bm%$U^1QXEl19^>X`jVN`x8dkXru z5{CA%tJio@(RE%ChZ~DZevu5xoy?J~ooY-Vkpyfw^BaKl^Z74u{Eb1*`~lE;R^UpG z@K1(MY70=8ECj>~ifz_o9B!M?ebEV0*?U_W`$o!{6_M=A`6hfx0IP-vCre@(+ZwxT zCc>~liQ=zTehP6X^0wWr$cOYiz5ID0+ciWcMD|;IP(0J_op&?mZvo(KA3S7m2dT~R zPAaW(C?pBE;fI$NJHoWZ!0~|ZyS^@E&8Qh2?jbXt&VlTsn;Mrj0#c4sGARRWJYW^l zkTxQDOpXqteDR`%f4WR_tH2}%bHl|uL2r-Gi$PY(=2-@R&@Z0Z8c_B8+veM^0X6J^ zL7W|84$QnMrula691{y9tm3r_@L^toCZQY>mWcQvJ~PGt)24sTj)v)V-^C(7xtOhjJ1$XSk8sAsNX*vGuT500Hqhr$e-iqO56%|b7;hi3VVJ5OgN&W^zM zThGvHUZ;v@{e7P3R69x;g)%pK8XETKEH7s^%uZ?OEH7Kmz~ETxg8hbTOlLWcXHDzbP!5^Jxoe2AKZiQ}+`6qN&dH>wbD>`Q zA{Wy$TH&AXNsn1!&%U=%f1g!gVt7g*ZsBiG1Oa-TixaM;EhF)9PmnA!Z8 mfO9aKr!Dw_bj6F@&`1yl!0^z6Q8YB+LRvqx3J5;{$o~Oyl+L~Y literal 0 HcmV?d00001 diff --git a/data/txts/txt4_2 b/data/txts/txt4_2 new file mode 100644 index 0000000000000000000000000000000000000000..b183002f1aa5455b8f45ac48f86d317dfcd7f57c GIT binary patch literal 12462 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 OV!|~%PSFYnQ2z_{9{-a7 literal 0 HcmV?d00001 diff --git a/data/txts/txt4_3 b/data/txts/txt4_3 new file mode 100644 index 0000000000000000000000000000000000000000..5019d0ff871da1944a74e3544a2d315797b6c150 GIT binary patch literal 16522 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 literal 0 HcmV?d00001 diff --git a/deathhead2 b/deathhead2 new file mode 100644 index 0000000000000000000000000000000000000000..1f6f7015bf0c71d28339481abdd13f24c67558e2 GIT binary patch literal 28568 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 literal 0 HcmV?d00001 diff --git a/deathhead2.info b/deathhead2.info new file mode 100644 index 0000000000000000000000000000000000000000..cbcf6ab3ade9c2caf906f2efcf55780fb8c49f70 GIT binary patch literal 438 zcmaDXz`)1=1M&=l3~UU{42+DdG82G!2}}Y(voJ8S$_fH8M*~n0gfRff6eb2HH3eo2 zDX_qY0}RX`3>YlaK^U%FXyRgdg+!F>jQUVMT6nQ ziY8Dy$Yu~o=Jsx{C`5sdsGYHYDjm>W!wTAoRC}U4LCg+a>0E@CxPtEe9tvRJ&=*nY(7~FFx#C?O z!YXG@gL65jxv87tR?dvdj%&6oW@RU{Hnu9Q$bVhD<_tYgoWxBe^N~|5GL7k>|Hxr4 zs$N(M+}PcmA>U>|RTcWTR8m3+ZGT?jm{DYVDAsS%libxlxAl2&R&q;lpQ+icEY9|= z=X9*U>MVLHd^DVweR=|aBn8Kkc2gKMN1S=jUkQ<4?Goh;|HB#bZ-v)Z-iJM_dxO!p Z;`4Bxa1*$x+EYuQmOw3m|26^3;V)$>1pNR2 literal 0 HcmV?d00001 diff --git a/decrm.s b/decrm.s new file mode 100644 index 0000000..be36789 --- /dev/null +++ b/decrm.s @@ -0,0 +1,399 @@ + + ;crunchmania decruncher.... + ; + + elseif + +OverlapDecrunch: + MOVEM.l d0-d7/a0-a6,-(a7) + ; + MOVE.l d0,a0 + MOVE.l d0,a1 + ; + LEA FastDecruncher(pc),a5 + MOVE.l (a0)+,d0 + CMP.l #"CrM!",d0 + BEQ.b decr + LEA LZHDecruncher(pc),a5 + CMP.l #"CrM2",d0 + BNE.b NotCrunched +decr: MOVEQ #0,d0 + MOVE.w (a0)+,d0 ;MinSecDist + MOVE.l (a0)+,d1 ;DestLen + MOVE.l (a0)+,d2 ;SrcLen + LEA 0(a0,d0.l),a2 + CMP.l a1,a2 + BLE.b NoCopy + MOVE.l a0,a2 + MOVE.l a1,a0 + SUB.l d0,a0 ;MinSecDist abziehen + MOVE.l a0,a3 + MOVE.l d2,d7 + LSR.l #2,d7 ;Longs +CopyLoop: + MOVE.l (a2)+,(a3)+ + SUBQ.l #1,d7 + BNE.b CopyLoop + MOVE.l (a2)+,(a3)+ ;in case of ... +NoCopy: + MOVE.l a0,a2 + JSR (a5) +NotCrunched: + MOVEM.l (a7)+,d0-d7/a0-a6 + RTS + + elseif + +;**------------------------------------------------------------------------- +;** Jump here To decrunch some Data without any overlap checks +;** The Regs have To loaded with: +;** a0: Adr of Source (with Header) +;** a1: Adr of Dest +;**------------------------------------------------------------------------- + +NormalDecrunch: + MOVEM.l d0-d7/a0-a6,-(a7) + MOVE.l (a0)+,d0 + LEA FastDecruncher(pc),a5 + CMP.l #"CrM!",d0 + BEQ.b decr2 + LEA LZHDecruncher(pc),a5 + CMP.l #"CrM2",d0 + BNE.b NotCrunched2 +decr2: TST.w (a0)+ ;skip MinSecDist + MOVE.l (a0)+,d1 ;OrgLen + MOVE.l (a0)+,d2 ;CrLen + MOVE.l a0,a2 + JSR (a5) +NotCrunched2: + MOVEM.l (a7)+,d0-d7/a0-a6 + RTS +;**------------------------------------------------------------------------- +;** This is the pure Decrunch-Routine +;** The Registers have To be loaded with the following values: +;** a1: Adr of Destination (normal) ** a2: Adr of Source (packed) +;** d1: Len of Destination ** d2: Len of Source +;** Leave everything below this Line in its original state! +;**------------------------------------------------------------------------- +FastDecruncher: + MOVE.l a1,a5 ;Decrunched Anfang (hier Ende des Decrunchens) + ADD.l d1,a1 + ADD.l d2,a2 + MOVE.w -(a2),d0 ;Anz Bits in letztem Wort + MOVE.l -(a2),d6 ;1.LW + MOVEQ #16,d7 ;Anz Bits + SUB.w d0,d7 ;Anz Bits, die rotiert werden m|ssen + LSR.l d7,d6 ;1.Bits an Anfang bringen + MOVE.w d0,d7 ;Anz Bits, die noch im Wort sind + MOVEQ #16,d3 + MOVEQ #0,d4 +DecrLoop: + CMP.l a5,a1 + BLE.l DecrEnd ;a1=a5: fertig (a1d0:Bits + MOVE.w d6,d0 ;d6:Akt Wort + LSR.l d1,d6 ;ndchste Bits nach vorne bringen + SUB.w d1,d7 ;d7:Anz Bits, die noch im Wort sind + BGT.b GBNoLoop +; add.w #16,d7 ;BitCounter korrigieren + ADD.w d3,d7 ;BitCounter korrigieren + ROR.l d7,d6 ;restliche Bits re rausschieben + MOVE.w -(a2),d6 ;ndchstes Wort holen + ROL.l d7,d6 ;und zur|ckrotieren +GBNoLoop: + ADD.w d1,d1 ;*2 (in Tab sind Ws) + AND.w AndData-2(pc,d1.w),d0 ;unerw|nschte Bits rausschmei_en + RTS +;*---------- +AndData: + Dc.w %1,%11,%111,%1111,%11111,%111111,%1111111 + Dc.w %11111111,%111111111,%1111111111 + Dc.w %11111111111,%111111111111 + Dc.w %1111111111111,%11111111111111 +;*----------- +DecrEnd: + RTS ;a5: Start of decrunched Data + +;*************************************************************************** +OCmpTab = 0 +OAddTab = 64 +ORealTab = 128 +OAnzPerBits = 1182 +OBufLen = 1246+2 +;****************************** + +LZHDecruncher: + LEA Tabbs+2(pc),a6 +; addq.l #2,a6 + ADD.l d1,a1 + ADD.l d2,a2 + + MOVE.w -(a2),d0 ;Anz Bits in letztem Wort + MOVE.l -(a2),d6 ;1.LW + MOVEQ #16,d7 ;Anz Bits + SUB.w d0,d7 ;Anz Bits, die rotiert werden m|ssen + LSR.l d7,d6 ;1.Bits an Anfang bringen + MOVE.w d0,d7 ;Anz Bits, die noch im Wort sind + MOVEQ #16,d3 + +BufLoop: + LEA OAnzPerBits(a6),a0 + MOVEQ #16-1,d2 +clear: CLR.l (a0)+ + DBF d2,clear + + LEA OAnzPerBits+32(a6),a0 + LEA ORealTab+30(a6),a4 + MOVEQ #9,d2 + BSR ReadTab + LEA OAnzPerBits(a6),a0 + LEA ORealTab(a6),a4 + MOVEQ #4,d2 + BSR ReadTab + + LEA OAnzPerBits+32(a6),a3 + LEA OCmpTab-2(a6),a4 + BSR CalcCmpTab + LEA OAnzPerBits(a6),a3 + LEA OCmpTab+30(a6),a4 + BSR CalcCmpTab + + MOVEQ #16,d1 + BSR GetBits2 + MOVE.w d0,d5 + LEA ORealTab+30(a6),a0 + LEA -30(a0),a5 +decrloop2: ;** tabu: d3/d6/d7/a0-a2/a4 + MOVE.l a6,a4 + BSR ReadIt + BTST #8,d0 + BNE.b skip + MOVE.w d0,d4 + + LEA OCmpTab+32(a6),a4 + EXG a0,a5 + BSR ReadIt + EXG a0,a5 + MOVE.w d0,d1 + MOVE.w d0,d2 + BNE.b sc1 + MOVEQ #1,d1 + MOVEQ #16,d2 +sc1: BSR GetBits2 + BSET d2,d0 +sc2: LEA 1(a1,d0.w),a3 +sloop: MOVE.b -(a3),-(a1) + DBF d4,sloop + + MOVE.b -(a3),-(a1) + MOVE.b -(a3),d0 +skip: MOVE.b d0,-(a1) + DBF d5,decrloop2 + MOVEQ #1,d1 + BSR GetBits2 + BNE.w BufLoop + BRA LZHDecrEnd +;*-----------******************* +ReadIt: + MOVEQ #0,d1 ;Nr Byte +RIloop: + SUBQ.w #1,d7 + BEQ.b BTLoop + LSR.l #1,d6 ;Bit rausschieben und Flags setzen + BRA BTEnd +BTLoop: + MOVEQ #16,d7 ;hier kein add notwendig: d7 vorher 0 + MOVE.w d6,d0 + LSR.l #1,d6 ;Bit rausschieben und Flags setzen + SWAP d6 ;ror.l #16,d6 + MOVE.w -(a2),d6 ;ndchstes Wort holen + SWAP d6 ;rol.l #16,d6 + LSR.w #1,d0 ;Bit rausschieben und Flags setzen +BTEnd: + ROXL.w #1,d1 + MOVE.w (a4)+,d0 + CMP.w d1,d0 + BLS.b RIloop + + ADD.w 62(a4),d1 + ADD.w d1,d1 + MOVE.w 0(a0,d1.w),d0 + RTS +;*------------------------------------- +GetBits2: ;d1:AnzBits->d0:Bits + MOVE.w d6,d0 ;d6:Akt Wort + LSR.l d1,d6 ;ndchste Bits nach vorne bringen + SUB.w d1,d7 ;d7:Anz Bits, die noch im Wort sind + BGT.b GBNoLoop2 + ADD.w d3,d7 ;BitCounter korrigieren + ROR.l d7,d6 ;restliche Bits re rausschieben + MOVE.w -(a2),d6 ;ndchstes Wort holen + ROL.l d7,d6 ;und zur|ckrotieren +GBNoLoop2: + ADD.w d1,d1 ;*2 (in Tab sind Ws) + AND.w AndData2-2(pc,d1.w),d0 ;unerw|nschte Bits rausschmei_en + RTS +;*---------- +AndData2: + Dc.w %1,%11,%111,%1111,%11111,%111111,%1111111 + Dc.w %11111111,%111111111,%1111111111 + Dc.w %11111111111,%111111111111 + Dc.w %1111111111111,%11111111111111 + Dc.w %111111111111111,%1111111111111111 +;*--------------------------------------- +ReadTab: + MOVEM.l d1-d5/a3,-(a7) + MOVEQ #4,d1 + BSR GetBits2 ;Anz AnzPerBits + MOVE.w d0,d5 + SUBQ.w #1,d5 + MOVEQ #0,d4 + SUB.l a3,a3 +RTlop: ADDQ.w #1,d4 + MOVE.w d4,d1 + CMP.w d2,d1 + BLE.b c1 + MOVE.w d2,d1 +c1: BSR GetBits2 + MOVE.w d0,(a0)+ + ADD.w d0,a3 + DBF d5,RTlop + + MOVE.w a3,d5 + SUBQ.w #1,d5 +RTlp2: MOVE.w d2,d1 + BSR GetBits2 + MOVE.w d0,(a4)+ + DBF d5,RTlp2 + MOVEM.l (a7)+,d1-d5/a3 + RTS +;************************************************************** +CalcCmpTab: + MOVEM.l d0-d7,-(a7) + CLR.w (a4)+ + MOVEQ #15-1,d7 + MOVEQ #-1,d4 + MOVEQ #0,d2 + MOVEQ #0,d3 + MOVEQ #1,d1 +CClop: MOVE.w (a3)+,d6 + MOVE.w d3,64(a4) + MOVE.w -2(a4),d0 + ADD.w d0,d0 + SUB.w d0,64(a4) + ADD.w d6,d3 + MULU d1,d6 + ADD.w d6,d2 + MOVE.w d2,(a4)+ +cont2: + LSL.w #1,d2 + DBF d7,CClop + MOVEM.l (a7)+,d0-d7 + RTS +;********************************************* +LZHDecrEnd: +;LZHDecrLen equ *-LZHDecruncher + + RTS +;*********************************** +Tabbs: Dc.w 0 ;unbedingt!!!!!!! +CmpTab: Ds.w 16 ;Len + Ds.w 16 ;Dist +AddTab: Ds.w 16 ;Len + Ds.w 16 ;Dist +RealTab: + Ds.w 527 ;Dist+Len +AnzPerBits: + Ds.w 32 ;Dist+Len diff --git a/defender b/defender new file mode 100644 index 0000000000000000000000000000000000000000..bc9f8136f683d863c628ded2b3af7d065128d46b GIT binary patch literal 9118 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 literal 0 HcmV?d00001 diff --git a/demon.chunks b/demon.chunks new file mode 100644 index 0000000000000000000000000000000000000000..725061cae9d98edd40094f6018bdd30bc8a94327 GIT binary patch literal 2304 zcmY+GZERCj7{~wT-rKe7y7rEBQrVz25P~tlMhMQZm%FhDk_{?}iB4UvLLf0nXugqkbyG{*M;LEJ#0I!-I_*gcG%gtt*2L&!frHf*tTUO{m`oZ$A=&ws&V&< zwO^o!ST$yjO^!!m{6A*Ch&`I0)N#*%s&4^l^lt5YiLFvMpnfwD!oExAUzWay`+$3w zqsaP!qXQ?U$*>Nd(SbOt6NJntByu5bT29>46`481h2=OJBDYtw1P#O3b;GxI#a_In zafF7rF@ICrz1o`RER9cZ|+!d$1JHSkM>= zB=Rs`|8aW(h5?J?3dE@#>bf?^Ys0u5EsPJ8%mQG{seK8P6T{2Wl=r-rVv2=6juEs{ z+4sqJoT%dHvf(_;u^-&=c~(+04dIUe!`%+%@(AyHcN{?pc$Va}=uRewx{rSjQ)#m> zYIkPxu*R-7l)OAmPCMnl=F`Q%x0}jPDR76XQ!5LL|{l%*Y11U5*r{$2U`@WJpcI{Pi z7khpzcT={?sUqwU&{^In4d4kRd-{+jF?V`C5%Le8n4%AkBBNd&(OqK_br*0*E|y>6 zn&e8&!%Bbg!t<#65@TKz-(V?q)A-u4N@(CV50q095^hRWd7KzbR4@R*=PfM87nnhxGbJCSInb(5rLX~VX z%e)&l5(dUfTxtR}sZq2S&_uTagmcOVE+z|l?Urnkkw!fE>Bll2g_Z4;Ys4{E?Q7Z# z%7rqLL|3^*wkQ_CUK~r6u#lZBDX`X%-Q@uZ3udZQu2ef+$X*pB@T-qnu}7hVvDvAS zD`jLEVpm!b=8-dHpns~-v}4DD2}Ub;V%SpOB8$c(ja0!n}FW3 zxFb!c!Q+K*E`I1(d-aHuuiiH%_6F{7m)S{?DCNkLQ*)uq!6;iw_>cyMx;?hP@#}U0qh6dX+Blwk_ODx zNV)8W!<-f1uY$@~VLq+VxJFH!Wn=~=7m4y|9wjUf%oY&Ep(;4Xr%oLf1c?Ga5yD+l zL|rHzhTuy1K{``lgCVxidi!RWSG1lhU>-JKD+zS7@^9)3rHTs-l`0^_Hw;r6gbF;& ztfzQo=6ST~wD>Hn^%cQY)nLsdyz*ytII60C5?4XlR5F)InG3p)aDyjBR;Nv>mZ4dM z+a5?ab+bja5UFZ2CWu9~JZ5dhuzZeZ^00Qh=muDXr*wd)lnAh|_VtNhFDY4`mSV~m z?b>hS*((D3EB-z8*>hCpi9*#CJ``tFqF+;-)rlUJ;2AyDRKCS)$&OY^>3*h_;!^cB zgE0$aRRU_bQd7G^&wJpjm8#E$2s%1Zxq@r{n+nYhI;hX9utsV%Mx#{G%*#Pj>nAr) hRpdrj%Oayq1J|c(n5qVZ9_ee%kBo15glzF#yOECI%+e2xbf^ zu)v1{49p)47%cc7Fcd&B{|7k+_75@)Jp2b3r1|9^*f*^IQ2#aj2T1+@|NsA>81#>U zfuCQ2!G`|?gF8@9KTt0Se*l_Q0mQ~1>>tQ{`2WHF|NkHLK)pcy|3DaQ2Fz^_pl&l@ zU|{@^0JPfz?jD$1B!F&V<8NSK;6d0f|7+C)`>&w|_5W7E-Nt?4+RX&pAUcy;s5{tf&720ZWD7!%_*%&4M@z)EAjO7v~mHnK)N`9n9t4A Q$2BA}z}42#&(oIy04)i9`v3p{ literal 0 HcmV?d00001 diff --git a/demon.pal b/demon.pal new file mode 100644 index 0000000000000000000000000000000000000000..add6ed8d535e54e3489186daaf88c6a53e0363ca GIT binary patch literal 512 zcmZ|Cy=zlZ7=ZDdd%oZEo^uI`xD{_Bxc0UYQgvw3IOrhFSBo7AA<;#sMAA@-OTgp` zIv6q}Xu;MxBrZ}b#YVRZ4t46};3854K?K3s`~&ji86FakE%-4O`(GqJ7Ld3XcyVu% zobp04MFSeAf!P}W4?3yxEcB*mf+c8L&+&ktqZv|Q(_V@PW|xO9MU#-^A%5W*n&mT) z;5nL?f!th3_s|1EFpS(9ULAq)GaKxXtUvZ@;FF4SyIM51EKrmEWHIaFa4>g2vD+C|;K zOQtHH!UGzqh^9;vnpndNrlXdyiZ#<vpeul{O|Ue8@a#!iQTtH_NzN`pZs5@_YVq> BasdDU literal 0 HcmV?d00001 diff --git a/dhead b/dhead new file mode 100644 index 0000000000000000000000000000000000000000..0318693830cb19b9fdd67551669854e59710f359 GIT binary patch literal 36810 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 A(f|Me literal 0 HcmV?d00001 diff --git a/dhead.info b/dhead.info new file mode 100644 index 0000000000000000000000000000000000000000..66b04c08f6a4e9e3097d8a2f032e8ed416c8dbb1 GIT binary patch literal 466 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 literal 0 HcmV?d00001 diff --git a/dhead1.info b/dhead1.info new file mode 100644 index 0000000000000000000000000000000000000000..4c5471898206a87ed7bfcccb50ee7e6362612396 GIT binary patch literal 221 zcmaDXz`)1=1KJE63@i-H42+B%=byj?QE3(iMve;$fVimvC;`G40Avai1CzoGX0Vj} z2M|^N14RD+{r~^}1}F&;0n0uBNkUDN{{v#z{{xZ#LF@!53Do-k0hrD3AFTHQNC^ml YeZT=^@VR;VxQ0XqxY~O9IQcRF0J1$WMF0Q* literal 0 HcmV?d00001 diff --git a/dhead2 b/dhead2 new file mode 100644 index 0000000000000000000000000000000000000000..d8ac1888f81468221a577288173588950bdcd80e GIT binary patch literal 13360 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 literal 0 HcmV?d00001 diff --git a/dhead2.info b/dhead2.info new file mode 100644 index 0000000000000000000000000000000000000000..4c5471898206a87ed7bfcccb50ee7e6362612396 GIT binary patch literal 221 zcmaDXz`)1=1KJE63@i-H42+B%=byj?QE3(iMve;$fVimvC;`G40Avai1CzoGX0Vj} z2M|^N14RD+{r~^}1}F&;0n0uBNkUDN{{v#z{{xZ#LF@!53Do-k0hrD3AFTHQNC^ml YeZT=^@VR;VxQ0XqxY~O9IQcRF0J1$WMF0Q* literal 0 HcmV?d00001 diff --git a/dhead3 b/dhead3 new file mode 100644 index 0000000000000000000000000000000000000000..b61a4ddc7d0d94525db3dfef62feeeb005e01517 GIT binary patch literal 13492 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 PM)=cze~Q3=9Rd3PQJ3SE literal 0 HcmV?d00001 diff --git a/dhead3.info b/dhead3.info new file mode 100644 index 0000000000000000000000000000000000000000..4c5471898206a87ed7bfcccb50ee7e6362612396 GIT binary patch literal 221 zcmaDXz`)1=1KJE63@i-H42+B%=byj?QE3(iMve;$fVimvC;`G40Avai1CzoGX0Vj} z2M|^N14RD+{r~^}1}F&;0n0uBNkUDN{{v#z{{xZ#LF@!53Do-k0hrD3AFTHQNC^ml YeZT=^@VR;VxQ0XqxY~O9IQcRF0J1$WMF0Q* literal 0 HcmV?d00001 diff --git a/diskreq.s b/diskreq.s new file mode 100644 index 0000000..45df4b7 --- /dev/null +++ b/diskreq.s @@ -0,0 +1,20 @@ +askfordisk jsr diskreq+32 + jsr qvwait + move.l d7,$dff080 + move #0,$dff088 + ; +.retry move.l #'GARD',d0 + move.l diskbuff,d1 + move.l sibdos,a0 + jsr (a0) + bne.s .got + ; + move #199,d7 +.vwloop jsr qvwait + dbf d7,.vwloop + bra.s .retry + ; +.got rts + +diskreq incbin loader + even diff --git a/display.s b/display.s new file mode 100644 index 0000000..2cf67ad --- /dev/null +++ b/display.s @@ -0,0 +1,179 @@ + + ;Display routines for planar Gloom + ; + bsr initdisplay + ; +loop btst #6,$bfe001 + bne loop + ; + bra finitdisplay + + + +finitdisplay ; + move.l grbase,a6 + move.l oldview,a1 + jsr -222(a6) ;load view + jsr -270(a6) + jsr -270(a6) + move.l 38(a6),$dff080 + move #$81a0,$dff096 + move #0,$dff088 + ; + rts + +initdisplay ; + lea grname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,grbase + ; + move.l d0,a6 + move.l 34(a6),oldview + sub.l a1,a1 + jsr -222(a6) ;loadview + ; + move.l #80*2*5,d0 + moveq #2,d1 + allocmem chatplanes + move.l d0,chatmap + ; + move d0,chatplanes+6 + swap d0 + move d0,chatplanes+2 + swap d0 + add.l #80,d0 + move d0,chatplanes+14 + swap d0 + move d0,chatplanes+10 + ; + move.l #copinitf-copinit,d0 + moveq #2,d1 + allocmem copinit + move.l d0,coplist + ; + move.l d0,a1 + lea copinit,a0 + lea copinitf,a2 + ; +.loop cmp.l a2,a0 + bcc.s .done + move.l (a0)+,(a1)+ + bra.s .loop +.done ; + add.l #sl1-copinit,d0 + move.l d0,slice1 + add.l #sl2-sl1,d0 + move.l d0,slice2 + add.l #cstop-sl2,d0 + move.l d0,copstop + ; + move.l copstop,d0 + move.l slice1,a0 + move.l slice2,a1 + ; + move d0,72+6(a0) + move d0,72+6(a1) + swap d0 + move d0,72+2(a0) + move d0,72+2(a1) + ; + bsr dochatoff + ; + jsr -270(a6) + move #$81a0,$dff096 + ; + ;jsr -270(a6) + ;move.l coplist,$dff080 + ;move #0,$dff088 + ; + pull + rts + +cols24 macro + dc $180,0,$182,0,$184,0,$186,0 + dc $188,0,$18a,0,$18c,0,$18e,0 + dc $190,0,$192,0,$194,0,$196,0 + dc $198,0,$19a,0,$19c,0,$19e,0 + dc $1a0,0,$1a2,0,$1a4,0,$1a6,0 + dc $1a8,0,$1aa,0,$1ac,0,$1ae,0 + endm + +copinit ;initialization for display + ; + dc $1fc,15,$096,$120 + ; + dc $08e,$1e81,$090,$23c1,$1e4,$2000 + dc $092,$38,$094,$c0,$102,0 + ; + dc $100,$a200,$108,80,$10a,80 + dc $106,0,$10c,0 ;bank, eor + dc $182,$fff,$184,$f0f,$186,$ff0 + ; +chatplanes dc $e0,0,$e2,0,$e4,0,$e6,0 + ; + dc 26<<8+1,$fffe + ; + dc $140,0,$142,0,$144,0,$146,0 + dc $148,0,$14a,0,$14c,0,$14e,0 + dc $150,0,$152,0,$154,0,$156,0 + dc $158,0,$15a,0,$15c,0,$15e,0 + dc $160,0,$162,0,$164,0,$166,0 + dc $168,0,$16a,0,$16c,0,$16e,0 + dc $170,0,$172,0,$174,0,$176,0 + dc $178,0,$17a,0,$17c,0,$17e,0 + ; +chatdispon dc $1fe,0 ;096,$8100 + dc $2401,$fffe,$096,$100 + dc $094,$a0,$100,$7200,$108,6*40,$10a,6*40 + ; + ;lo colour nybs - lo bank + dc $106,$0200 +cols1 cols24 + ; + ;lo nybs - hi bank + dc $106,$8200 +cols2 cols24 + ; + ;hi colour nybs - lo bank + dc $106,0 +cols3 cols24 + ; + ;hi colour nybs - hi bank + dc $106,$8000 +cols4 cols24 + ; + ;slice... +sl1 ; + dc $e0,0,$e2,0 + dc $e4,0,$e6,0 + dc $e8,0,$ea,0 + dc $ec,0,$ee,0 + dc $f0,0,$f2,0 + dc $f4,0,$f6,0 + dc $f8,0,$fa,0 + dc $08e,$2c81,$090,$f4c1 ;diw + dc $0001,$fffe ;wait for slice! + dc $096,$8100 + ; + dc $084,0,$086,0,$08a,0 +sl2 ; + dc $e0,0,$e2,0 + dc $e4,0,$e6,0 + dc $e8,0,$ea,0 + dc $ec,0,$ee,0 + dc $f0,0,$f2,0 + dc $f4,0,$f6,0 + dc $f8,0,$fa,0 + ;56 + dc $08e,$2c81,$090,$f4c1 ;diw + ;64 + dc $0001,$fffe ;wait for slice! + ;68 + dc $096,$8100 + ;72 + ; + dc $084,0,$086,0,$08a,0 + ; +cstop dc $096,$0100 ;display DMA off... + dc $ffff,$fffe diff --git a/doc b/doc new file mode 100644 index 0000000..b434bfe --- /dev/null +++ b/doc @@ -0,0 +1,23 @@ + + spacehulk (maps 1_1..1_8) + ************************* + +monsters: marine, baldy, terra + +firepower: red, green, darkgreen + + + gothic tomb + *********** + +monsters: lizard, ghoul, phantom, deathhead + +firepower: red, green, darkgreen, lightblue + + + hell + **** + +monsters: any! + +firepower: all! diff --git a/doc.info b/doc.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pK+hNyYLcx_P;J|S&T4@})G9x*oi8E4h(3!`{ z5jen!8{`eLk3zSkc$2WIl4iR5>z@7{vC3?D#9|iz_`MHFQJP$6I4>bFkd>u6CehFN zrUJ83!iQ_|rIcWF4W1u z2swny$|*9}zf8MDbt(=X?=qH_lQnOD^P*{yvG#Mg;4^5yfFcV*hH4isfA^_#;iaX^ zP@Tx5foxwe)_DQ_6R*oOksw8JZt`PB$^KUA&3R5SUkfON$RO$SwkZohxAn%ty3~)e zj;Y>fz0X$7v*C>4q#Y&_)oNBKj(*1ExW(OR=XwXJyQDWBRrV&}!RE4l+i07Co$Bxkx z_l*kquJ(7<5Afa9|xG)>> z0NZ)hL><|Fg!4*@tOItE{{h2Uv|t}bb|SPnnEU{8F!=-+JVmy@v-T_2{sBY&euX{* z?B)pP>Mwi`a0Yr;ZD_a+F@B3t8Q##g!N`ys^<3OGv~8$j`$?OJ`)rUxA*4D+z zj`Q*w)`^Cs*V-n9ko^rHo56WX!r&uif$0Z=d*>-&rW(H1o}-&UHttw95C>h%O+v$m zFGix8v)MoyOK@xp8jjOB3{PxuvadA8(ftw-tn!KExtC3`jJ=_nCT{Aee5`VJ;2FFt zs%bP(SnQgI(W^k^bhqLTp(w-KoPGqWEx$Q*jP(uPJf+hNyYLcx_P;J|S&T4@})G9x*oi8E4h(3!`{ z5jen!8{`eLk3zSkc$2WIl4iR5>z@7{vC3?D#9|iz_`MHFQJP$6I4>bFkd>u6CehFN zrUJ83!iQ_|rIcWF4W1u z2swny$|*9}zf8MDbt(=X?=qH_lQnOD^P*{yvG#Mg;4^5yfFcV*hH4isfA^_#;iaX^ zP@Tx5foxwe)_DQ_6R*oOksw8JZt`PB$^KUA&3R5SUkfON$RO$SwkZohxAn%ty3~)e zj;Y>fz0X$7v*C>4q#Y&_)oNBKj(*1ExW(OR=XwXJyQDWBRrV&}!RE4l+i07Co$Bxkx z_l*kquJ(7<5Afa9|xG)>> z0NZ)hL><|Fg!4*@tOItE{{h2Uv|t}bb|SPnnEU{8F!=-+JVmy@v-T_2{sBY&euX{* z?B)pP>Mwi`a0Yr;ZD_a+F@B3t8Q##g!N`ys^<3OGv~8$j`$?OJ`)rUxA*4D+z zj`Q*w)`^Cs*V-n9ko^rHo56WX!r&uif$0Z=d*>-&rW(H1o}-&UHttw95C>h%O+v$m zFGix8v)MoyOK@xp8jjOB3{PxuvadA8(ftw-tn!KExtC3`jJ=_nCT{Aee5`VJ;2FFt zs%bP(SnQgI(W^k^bhqLTp(w-KoPGqWEx$Q*jP(uPJfyKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pK`pv4p3|gP|Z9bdlpb{0fPub R6_A|(#9ct#3&i~lTmalj6Kenf literal 0 HcmV?d00001 diff --git a/dpal b/dpal new file mode 100644 index 0000000000000000000000000000000000000000..5ccf9a37d7943c9953d7ee96b00ae8265eb1c172 GIT binary patch literal 12346 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 literal 0 HcmV?d00001 diff --git a/dragon.abrsh b/dragon.abrsh new file mode 100644 index 0000000000000000000000000000000000000000..1595e08de6801293c10fc60ec8601750d43fccc9 GIT binary patch literal 173882 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%0A6Cj!4h-tLC zitbRA@NlD-`o-sTcJs}{l`AIA8ed}E`uXK+ZAXuu%d=GwQc^s|?36&IN1xd9HJ;!h zKCqe~xsXE{3N_7!Dx_2<{Bu?U)5wT2;h!SEPS+93fDnMBw0C9QDaoN^P)SrnjTC`y zb{Lg_r5Oeqn+n&QLWPJEz5}INzdz*(@_u4B<~7H5-K}K3o@>Hag4{@omo`Uq^#WfI zf88dP1UwWej>RwtT>qi&o5QYRK+MFyML;76%=MLwV7HZ3K>yH!mbhY{lQ$aj9#=kC zEEvgwC{p%4WmX1D ziGhuUoC(LrCqceu=0vB#SZz3w!qft`v4KU3g?YrgJ3Bfey+N~2tlGGBh>$*v7Gj3N zSqhF|2(T2|(5mIoU;2d2GELIA>NQ$D8*C4}9xny-2w*Z0NL+@dD8|v$(l}9sPzt&1 z8I2B%4^)B#T+7@SJ$}LsZ*j&cU&hlykBI$a(6Y52w)_(VTx~6FY^~vU={t=A*bdTe zXbQ11!$`}Tse;#Wao*-@8lIJ^k2B5kAVlUd6K=T?q9a4KvP}U0yR-EyZZex z-tt(J&}@^XOH)9-So(bhw2~{|X74hUYNTqLJp|kxmDHg7OHGB~VIclDj^No0recOG zYbb9?fn*XQ9AFyB+kt;1Q~oLZL*{`Q=6YKi3t`^4y?xf0i7c)Sew#7WG2iHBh3vw= z0DyI;`;A>DSu~wxuA^%-KmV*4YXAUNOj%#DxkHoid;VVlfEj9SKrN{Z5(1@ZkpEE! zl$r!=>mSO$0=^wD1Vcnn_mTdo_=~aL_40dCm59fra*eF+z%W`#Ok|s;k=)OtZEeen zeXD;TnLS|sU$TEkXcAGj&h7i6B#o3%(NrSOL4V2q>lije90)}wao@2VEix=(ko|LU zw!kOy>)YA{KFx{5`@8H~ zME$jExq@yjg6j@yH5xU6WY+1T@<08cB2k%2^fRqmH)d6&*gSy+yfco&ugn0{P7VHy zK;z&WsF`6=rvrc{2-j=NoF#+3N8dwm)5Nv=1&gPr$Ki3X1zf4FV}YM<`kelTP|-;P&?Y#KL?W{Onz>HZ`o+;rmIgvcMa8(P@-aLwFHG5{(ZC*77#{e%tA?>13$OJ~lZaSj&s2>IEyXUYj)zGtrGjV`|FbWy02$jXGt|M$x^=C@M zB~YJe)kE%|l+vbu^S(=O3Wv^sp^j%V$W(|8NHp{?AtfTD$b}zA{}&cufr+k=Ys`%! zV6&1=8RwVeCc~Vsx&;ki&Sv|ZIr|q4(D~uzp-LxtDa#l{2fD?mk#*l(X*>Ud0T|=t z0~vO7517h}aCors`x*jc1+Q2Vb6sS2%pW8Gf{hE1!Sq|hE;|IVouP_e@HYS;^!Sqq zO=?(7;P9xCufYrR=yo+6EPLBwXkeN$K^Sa*^=$Qlo&P}qNL4rzkQB8BIw zfB^8HDqrR)v8!0vMw_x~P;&mU>Ch@JP{PF^!(?|#kpl#eWa~e4|5fui(g-Mw7<7LY z)!7j@8Dnpzb_mz~L-*I|+F|AL7`*dv52$QAJB}&i@V1%6gozjJGOSpX{txOI zwA%I8%n7V#t?`}xhXm~K46QGesVRF^2;yH5z(0*)G;&larC-pBf)fY*O~8QLobKEH z5YEB)QNT zPqEMu&bB-th}G*FGX!jYz(Ol}>Wq0Yfi_Pqld`f*bGLhr3@%d;Fyw}?Hdwq20``qi zl+f9+Au$R!QCl2Jrhw1Nh(HYJO;Q*VnS+8)V^`>#!)${Gl6gT#brtn zA?c69CQL=~pv6IagA3EaVS++uV&ZLrpw?d4cA72Ih$^5^j13AVX29$FUbw&E#rKn_ zES9Ay2X`Dj$bNv4x0}e>nQIA>COid>nU4VX)U$7?)p^uTOmjY3_A;H9Z`2p}&yebZ14YO9dK zIro3k0fy@zH|CHWHOmBy*x%jSb=`(lWRoefA1eiy z?JLjAXA5HVz-UOgJZohy92`N`C&ZTKXXKYcK^mf?7-g?joQVnC!#LP%G<-YCU6-$|QV>!sHB;>;MB;?zMo{5W!l(@lM$XXz zUlStZ5ILk1Oy>cv1=pf?kh+8urfv8G4|uIEk8h|=h-ZUAt1z>X4#Rv}>PA`=(OJGXK};en0o#&%K}D<6k7om^tVD ze!X7r*Yo*$J_Q1r_PnV8M+SJO7X1_bU*C3@c%jKmQ6?Ch^!Y&u;3+^cq=Zcbixw^n zDc8bl)u~1kG(pA7FBh!^!F5E|M9)oJT$`yJJMlNo4Vp)*0Yix)yEEcWS$vfs@CcArB`GU%)T3rTzU zK8?v@;?7rTK=Qb?GA_PYBdstSE~(`L#(#bHq(L`7bT0n(I?6rThi&NL?CLjWru!Be z&4`w{#~-D_4>4N5Rp-;si%Gb4{gR1|RX4hNdRyyGp$jxxRs)4$%0YRkl0l)NNf5lW zSD#Eu;R)FPg6|vfVe1wVi8LBLrLOMv%j=A+)a&0aTnc>pRP@Aan}zmjOG;ax6T1&< zQU3h~zg5n%pV+YWd0p4{?``c}>*fYlY`rta*^o|#+5t_bph+AN6D+nE>)9=BLPJy2 zl2$cBCDK2If4$$+QQKVz8UxxKqP_9kRU^p%3*2wTjrm#^2N3MlUg-WYa5~7uIKys)-AYNEkjbn^%-nB&xEN(<6)ojQd6OTR`|i{Ua)|ixBx*GAY{Md1{O_Z5&7Ss z{+sOZU=D&spm5qH8yV`u%S;1pmbmVs44`Hn?9nuoMMngz=!5n*{T13T254V?ZmyH@ zftSm)dlQG_AEtyTrJKm%Iq2J_!_|P^5J=@vwENT`I~+m85rHZKixv?HxXP2Pz@kxr z3w0nX8nOimT7C}nBq8^a$lJv-3`_nJ>p2&?@Z!_yRt~jv9 zrn#iR?GlTFAjp?)h=>U2=*U(R+WUvgMZcs2$f?jd11UWk1;hhbx(3EZHUn)u`a8Hm zx+Nht47q6`g)t?vXdi(1Q@r2adR-zvNgy?K_fN`m$VWabGYf){X%8-O!>h4FC zYZKiOhyZL?!0)T(u4s}x8ySDDv%R}_Lh zr9jSxNC9h}yip7}85sg>ADV@BrhpC=2Z=P~m_C9~ZAIt3-;~I|AEI=AYuun?JZSo> z47ZPeK=ykwOy<>Pd3(ldN;nR&@Yw8RwkT2$f;xx=u~Cd@=TtoD?s-HC^ZQTKE+ckhK{-2 zKIj^0-|TGIJQVP4I*K9c(!WFZr!G6{vB|~>Qpo?LT_hb~I=pK6Z|vUP+zoAc*QSZn z>RnS(Q3OE^`%m4a4;u+hLuH){(n-)mG~tW0O)#Z6soyW?J|CB1rYam0Pv_|UD{Ake z$D#K5E+msRKiXO|;3+6t33{?2?}(TJp@x@MCMg@rg%y8?nQ}IOVZJ|v&`pD!NA8nn zMU$YKLzU)y)6F!FKr+a8ndi88E;le<3=&gIy@VXDFj->xOpDv+{5Nhdg*AmG%HZX& z@(2M8!RiSIn^Cw7|Lp|qyZ}ZDn?jj#@F$6>;02)yl^D$x2hH^j3kIF6Wk$|tJfvI^ z!`Q$yap^PHYN{5+&?un(Ng~xfv5=dj!qpHmw9tL-KcIU}zd}qvsTt0=ZVlLdik(nE zqQbqT34w-&!j&bFu~@PmbqkG(Fy~AJ;NBPg3hNloOoKTlsc`re8yiBA#AASMELoHd zr1KOgf3�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 literal 0 HcmV?d00001 diff --git a/dragon.chunks b/dragon.chunks new file mode 100644 index 0000000000000000000000000000000000000000..11de18bc02a12e967b686b1cec0ca9775ced26b7 GIT binary patch literal 9992 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 R)5kR=GQic=(a+PD0RWPbedquH literal 0 HcmV?d00001 diff --git a/dragon1 b/dragon1 new file mode 100644 index 0000000000000000000000000000000000000000..c73ae0f74dfec8570235d7141cedef51ce5295e1 GIT binary patch literal 40740 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\nCxSBH$Z*BhF&WE?QHtL$Z0zjDtnRWVt9Cg;Kl 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%0A-cTHLrtm*+~}e$nHFb(I0T}zO_TN)aM7W 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 literal 0 HcmV?d00001 diff --git a/dragon4.info b/dragon4.info new file mode 100644 index 0000000000000000000000000000000000000000..01ce89da1fe48da916a6566c3668bd6576691f6e GIT binary patch literal 221 zcmaDXz`)1=1KJE63@i-H42+CSD|}#rs5A=$BhyL_p!}-_packG0FWt63{0{H%wQ?` z4EIgQaAE41=*m_y7A(`cM?$ zvqARfj(r!R4*<)rtNL(VcE|v?M8kca$cQSAj}dz()-^&o=cffo+Kd3dC~e<_5kn&*nuNo literal 0 HcmV?d00001 diff --git a/ecstest.bb2.bak b/ecstest.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..35d2472eeca259a0640c1df7d8f2441a0939de97 GIT binary patch literal 99 zcmZQ*FkxW0z^GuLV{BxgV`OTkW6HpA0>n2l(J{3;!J=Tmz|bJ3kZo(I&>*2;Y{ZbP qqJ5`FL&ea-z#z@QKoh}9Gtgvc5C`gJR!COSF*E@h+`z@azyJU*OcgW$ literal 0 HcmV?d00001 diff --git a/ecstest.bb2.info b/ecstest.bb2.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKu5KjQ&7NB?y5ce^#F!TWFHXsgS;9%$g(sO`fQ-Esb0ok*FdJ7mt7^;Bm P1R(AL;$9%`XW#+=HTDzh literal 0 HcmV?d00001 diff --git a/fire.bin b/fire.bin new file mode 100644 index 0000000000000000000000000000000000000000..223b8a9992583f68106e7928d3c50d82b926c2cc GIT binary patch literal 1080 zcmZXT%TdEH5Qaq@^6&t${E#l5n6v;5FbpkF0Rx=5ai47F_ffhJ(gYRD{_GDO( zcWi&V|7usVbMC}ly1}{P$2nJVZPGh$SXs)qt^9v0%d*vNmO`hX5rmLAUk*6KuIoa; zb)7;+%tNbhAyic*cf=8a8u8x8NI;TE>PSOFfYo(_d2bR~p4Em5SYt8DD*y#sotg=i zK_Q@=XBAzGyjl&S(rxOY#~G(bt$s{ydTi*oy>Lys+FNJb)J;Fgwp#=u@~8_l3@>Se z7SN~y{U_XMW#p#pVW0{N^cs({!M>g-oMf6CaplpT)TOQ3mQ8Uma%1s?Th(Uu;HYM4 zO9rI2l}@-zICa)5S98`Q|H literal 0 HcmV?d00001 diff --git a/fire.iff b/fire.iff new file mode 100644 index 0000000000000000000000000000000000000000..f6dccbb8f3f51524279a3baae03c5fb1518ca028 GIT binary patch literal 912 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 U_9WO^78n9YK`rP7q~>e?ADd~%9RL6T literal 0 HcmV?d00001 diff --git a/fire2.bin b/fire2.bin new file mode 100644 index 0000000000000000000000000000000000000000..9b303c91f0e8dd4b117b57b363fc8cc79ea99590 GIT binary patch literal 8364 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 IrU#Ax2Ol|&U;qFB literal 0 HcmV?d00001 diff --git a/fire2.sfx b/fire2.sfx new file mode 100644 index 0000000000000000000000000000000000000000..70afa7c01fe6a746bd7c366de84daf9317fc2efa GIT binary patch literal 8464 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 E0696rF#rGn literal 0 HcmV?d00001 diff --git a/fire3.sfx b/fire3.sfx new file mode 100644 index 0000000000000000000000000000000000000000..457ca40eae5f45f29a314d1e1851f71ab17cc94a GIT binary patch literal 4176 zcmXX~>2n)LcJH|dGXMtn%>x7p9^fG!q9}=nXiL^%$+D!id~EDEiM_R(FR9v1s`5F1 zLMr*Nm29%HV|#6_*Ont$wj_%ZB}$Yiks?J>JV4?gPGWEmW(L3#$$8`I}bG{%-+{OZ>q5BLA( z7ytNY$p6#y8*iL%bS=~W@X@dSuJzns{pRmK{&nl=)BneP<^1t?|167lceZN>p9kpb zjwWX~vQ}jy zJ1^$vgI_(GyT!IG?AM)_GyF&IOq)(w2T^uivbAesiw|C;HCl#(rP!T6-M!9^zj=(F zc&}@u&mt`Rfp1kai0r5=_T|S_xaG4it`%CEpM;wHNF6FMCyu>8Y1!CbSl)BIgWKE8 zvFrEl%=06o=iVfD?<_pVn)^;n9cI@Zx)4qv~2V>Vjv89jT@ z=j(vKn*WcvVpXqg(;mHevdM;T-%iD!Jeny7df$7!X4a{9uU(66MO~-g928!x+eoqy zX>)|MN1Ww{*WJ3|pN;Fb7SK%dXxHox$qDwTCAMB|o@zif;Ji7F@>HM)K9oK^!yaG5a`$+JP^XW`g7lXne_4PXSifS zpA&RL$47?k%m2Ll@JDsW{N@J%%BGP3~C+hD(%O>vDC(BPwAD`Z1j*dRk zdnZ=0e5wF+1JL6?m`@75qs=s3kvA4?d?dEUpFQy2iK?%(^1Gj&ncMeuuZa_pHeA?M zdK10rr*P0Be`FCmo4r>!^ZG4UJ)3^fe)LuNAvs|3G&dF$-Tt@z{g_VIccJq_Qzdfa z^L1p{KQY}L`b213bdDjZeZp(e@3gmFcU874(8XN>tpn#n8r}_s@|llD3;s5}m$C_( z=U1-eV`R&OxA}-;WA+K?qljxt9>QOXx3dpHt4;(ImX7xrn(AUj4 z+#8gM{$?#>nRNNJe$SKC)1^J~;~ahn+je+d@)$B3xpph+d+YLB?YABC^XrnY#!Of2 zgcgp@a=#a&~69NYkvv9575B>w>UEse#Bf6^h8A8@7vWvCo1WQU|Z$y(M{ zuXCNO702aWJZZO2PsFrW;T6k|+=+H`=RoS2efLX=xj)UnCH#KC9o-RM8>I+U)7DCa z%DRWieP?%XHM&2a-U`dj!@qR)4K;`E-plQoDx1Z?6B9~M-LG1=;~HnGt}PKBO$pj1 z4$BXB!X?ob=zHI^FmfHgi4O4PI^J2`Z>cff0KfW>VN4*Nf>QW++@-kgis zfjLSI8#iXfd3tJ|KhZ-lrOL2A0v2O8TJzp>ylYh3`iXgE_iD6f@=^Er;NwvaJfJLG z@liSwD~*v}+tCMa&z}F%|05HOUmbrt=pULPwC3I6XW;nemA<7+sU*K&>!6%#_np8# z(5GG6EvD(Gikh5se`A@V_nDSc8?y}dX+;;IMr5RxqFd^`n)3{9gW~ksX64Xc=`TAr zzMzf!o=E%5i9~VJtjO9UW6Js!6o+K9tykZKhHBbaaRDfadY+#+)ML+R^h7qFiPJ@> z$yHeDRV6)dG366u)@U$ms~5WtgDQEuUz}@62H2*7M7ol%^>r3qVKX+*=|iMn+v$^> zh!ia)pEE`Fgl3T5j*qu|cC$wt|H1T8TYlbk_CWDFp})#uU&jI)zK*MhgXQ;H*Mrcp z12I#4u9h}wcB7|<`N~V@(4X3w>Pk-f`6~r!gHi%CUNYU;MBOYO*MMi?-{O%7pkGbGur14`^-M5eaelkbu{gLFt&2TFtYJKPNvENcCxu_0A>PyX=>4I zBKPA~S3xyV9@0?D#2Kf$Cmn@_QGHmTi@I3?WQOe2z5E-{Rl2hvPgidVLwArp??4w` z3Rr{cCSln`y0eMC;KG@w>s=-Aa%^h1X=>-QomV7X8MDw>$i5{f)*Wegzsc7A(zOzh z&`kkd!o5|qub>l|{XsXIWpdZi;q}3etYc^g6BlBDF{HV(!txW{Q(rNwHtlxGb()ps-0OGU%;l z{X_wH<%oT|o-Vl+kc!&e4(WOKg%07q<>dAqeP2o;t*WdgW5r zHM&c_$#oK$>^_ZGZx3Z#12@~o=Y0K*JIjIO#zC-<^rN;;wdATlB5zj{t`PZFU##FV zr~FKMg`x~xc~E!TGVK*I4!NWc%GKbExPS!v7`FPdYH(>j<di!$BjR&+kulC+-dJ z)DM=@Tm^ykb~fmCYpd)0pr*20v-eeJ$?^7^;DEfhq=~=X;k|%e%M}JH^3#hXy(^bJ=Psz8YQvth<9yO zZ{FimeQ2c8wThT&rL1MLC0c^ZO7)&hvnTciWDjeO6pWegzFGm=y%6A>QHr0Ya?Qq z!=wkii7AUht;T>@ma>{9NLzF^MaoD-#TBC{h;WCqT1TO{9>&wPYCPx1O8_b88L`y@ z2#zabj9TIIprX~m9Ae`z64OC>358WShe%}#q!|QNvkAK&k$Hor0`Rg3OvHZOLS#5X z6>OARCk4fVi&#q0f`Vc<*Oju77Q!OIz=ce+p;WC)HG@&Ei4Y6}4##jDlqg#vt1xIo zZ4#s^W=yD5Xqr+GP{SRSG{9-J$YUCS6GFM9HFL-REe zRv0y0ZL$`_3ej#T?O>f$rGgkhS=LbXSj}ZY_$)9IAfJ<9T8~sE1kodPpj1j#5hh7R z)R|$J5K91U>;{sGkboC0dW@8EGKN92EOVj^2!y~@SfhcYIuA&wToOnEz_kiQ81SkD zlMD_jsLBHr!qiF)L&S;6dMNP5WvM^S<&0!97{B-B8Fi~s$eHY z1eYP8!kD2{2erBu5>*)>Dke)PsUVoB;EG&FDOj#?BBj-;VzmY|6a_c|;20!9jhClT zCka`o0UAg!1^@;_iUbs~1_2q>NCJQf3cw910K!R75l}*bQ2>Lwh@mh*K*RZxd8M zBu9-i4F?#`{ovZ_sJ8aN0fyTW+@+1mW;F*G4l{7)HZB$b>0sdUWOxA9%fQ75BJH7q)MNbvn@BzLAPz*h7|h~HwkpU;tSrti%}Zeb E0696rF#rGn literal 0 HcmV?d00001 diff --git a/flat b/flat new file mode 100644 index 0000000000000000000000000000000000000000..2106e95c63c8c4bf795af48d8e8c8c52ae1f9b03 GIT binary patch literal 1376 zcmZQzVE)Vi0gO-@NHKacFfhLa(Z+uq7#QwpA|2^bA3z5wAGTU0;JeuhBtTDxF@d5PW3ntu(^NzVur?Bl z64h1RMGTWI%?9@mhDjJXDhQ;POo#Lv1mDMAK6)_)&T$I;UdpQmEws!^+PQMEP literal 0 HcmV?d00001 diff --git a/flat.iff.info b/flat.iff.info new file mode 100644 index 0000000000000000000000000000000000000000..b396f7d9f529cbc824dc9f731e0de8f21c23fda6 GIT binary patch literal 221 zcmaDXz`)1=1KJE63@i-HKoK^bJ1{|1nuURZO?L(mS2X}7Ko|pnOkrYRK7E22EG7Q| zMAiQQk^g`H|Np-MNwN%H0s>$k WZ~z&6Zk|4_A&~*Dww^vtz6=1lwJ#R{ literal 0 HcmV?d00001 diff --git a/flat.s b/flat.s new file mode 100644 index 0000000..fd53be4 --- /dev/null +++ b/flat.s @@ -0,0 +1,65 @@ + + move #$4000,$dff09a + ; +vwait move #$20,$dff09c +.ll btst #5,$dff01f + beq.s .ll + move #$f00,$dff180 + ; + move #99,d7 + ; + lea lut,a0 + lea pal,a5 + moveq #0,d0 + moveq #0,d1 + moveq #0,d4 + moveq #0,d6 + moveq #0,d7 + ; + move #99,-(a7) + ; +.loop bsr flat + subq #1,(a7) + bpl.s .loop + addq #2,a7 + ; + move #0,$dff180 + btst #6,$bfe001 + bne vwait + ; + move #$c000,$dff09a + rts + +flat ; + moveq #31,d5 + lea dummy(pc),a3 + ; +.hloop tst (a3) ;check destination! + bne.s .skip + ; + and d7,d0 + and d7,d1 + move d0,d2 + lsl #7,d2 + add d2,d1 + add.l d4,d0 + move.b 0(a0,d1),d3 + addx d2,d0 + add.l d6,d1 + move 0(a5,d3*2),(a3) + addx d2,d1 + addq #4,a3 + dbf d5,.hloop + rts + ; +.skip add.l d4,d0 + addx d2,d0 + add.l d6,d1 + addx d2,d1 + addq #4,a3 + dbf d5,.hloop + rts + +lut ds.b 512 +pal ds.b 512 +dummy ds.l 32 diff --git a/flat3.bin b/flat3.bin new file mode 100644 index 0000000..b565f02 --- /dev/null +++ b/flat3.bin @@ -0,0 +1,1666 @@ + + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + +                                   + + + + + + + +  + + + + + + + +  + + + + + + + +  + + + + + + + +  + + + + + + + +  + + + + + + + +  + + + + + + + +  + + + + + + + +  + + + + + + + +  + + + + + + + +  + + + + + + + +  + + + + + + + +  + + + + + + + +  + + + + + + + +  + + + + + + + +  + + + + + + + +  + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +  + + + + + + + +    + + + + + + + +    + + + + + + + +    + + + + + + + +    + + + + + + + +    + + + + + + + +    + + + + + + + +    + + + + + + + +    + + + + + + + +     + + + + + + + +     + + + + + + + +     + + + + + + + +     + + + + + + + +     + + + + + + + +     + + + + + + + +     + + + + + + + +     + + + + + + + +  + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + +    + + + + + + + +    + + + + + + + +    + + + + + + + +    + + + + + + + +    + + + + + + + +    + + + + + + + +    + + + + + + + +     + + + + + + + +   + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +    + + + + + + + +    + + + + + + + +    + + + + + + + +    + + + + + + + +    + + + + + + + +    + + + + + + + +    + + + + + + + +    + + + + + + + +   + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + + +   + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +   + + + + + + + +  + + + + + + + +     + + + + + + + +     + + + + + + + +     + + + + + + + +     + + + + + + + +     + + + + + + + +     + + + + + + + +     + + + + + + + +     + + + + + + + +     + + + + + + + + + + + + + + + +     + + + + + + + + + + + + + + + +     + + + + + + + + + + + + + + + +     + + + + + + + + + + + + + + + +     + + + + + + + + + + + + + + + +     + + + + + + + + + + + + + + + +     + + + + + + + + + + + + + + + +     + + + + + + + + + + + + + + + +   ï Ý Ì Ì º © —™ˆwfTC" 1R +s ”¶¯ ßÿu•·U3T \ No newline at end of file diff --git a/flat3.iff b/flat3.iff new file mode 100644 index 0000000000000000000000000000000000000000..b124d8fae5efdbc137718df26f8a2b50ecfa73f1 GIT binary patch literal 13892 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 literal 0 HcmV?d00001 diff --git a/flat3.iff.info b/flat3.iff.info new file mode 100644 index 0000000000000000000000000000000000000000..51271d37eaf1a45817dabf2328ce3b29677f4c1b GIT binary patch literal 466 zcmaDXz`)1=16B+o3@i-H42+B%XYRlRQE3(iMvk)wfp}2^Py&Q80LT<32FA=2%qUXz z|G}Uk0W8W0q}hQ2jX>H#{{I0WpXmWm21qj}FfnidY3?8F3~@l3@egyu{6?TUKK4WZ zA2uZLu4jE9{<9%LQNQ^>IFMHTFRyYONKgNj*C7w2<^H^}jt0`9|96GX2h#6B_5x|3 z=^*p#LEQiU8^By30pb2X02OeU4;J|6FaxZB4MBs$3CL$@U}0bY(;N&6Kw6%MhcN+2 z+y9gA1&ROvUw{7vo5O6dIc!k#+TiBG%*RE;+yU19|NjA?GsIj{b4n{x0}?ayN<2M1 ctz5t?ko!1*n9t4A$2BA}z}42%$H|ug01t(%+5i9m literal 0 HcmV?d00001 diff --git a/flat4.iff b/flat4.iff new file mode 100644 index 0000000000000000000000000000000000000000..b0ffa3feecd228144781ec91e8ef4d4c080c36c4 GIT binary patch literal 3760 zcmeHKOHRWu5FJ-VRG>l@9KcJK7AJ7hih@L_$&Q_mkR$jAK0=m=RgRD&&z;Vjo z9|9Oi=F>-janWN3J@$yOqK8yCbv)%9Pp;;cr|BHRLegbi|;lv>af)4MAV4wF$ Y7S}N?oiiWe+aUce>x7%a&)%5c0NE*>N&o-= literal 0 HcmV?d00001 diff --git a/flat4.iff.info b/flat4.iff.info new file mode 100644 index 0000000000000000000000000000000000000000..d43fa55b6d39e42db73b7d3c965b6ecf3f268277 GIT binary patch literal 221 zcmaDXz`)1=1KJE63@i-H42+B%d;h=$QE3(iMvi?ufOu8|Py&Q80LT<31|}r|X0Vj} z2M|^N14RD+{r~^}1}F&;0n0uBNkUDN2isi#4;OJ{d4|np3IYuR$DO zk<6BCq=>fLGOvrY&f_XY6=M@&6JiY%(AzSAz!->t5ZKmrT~$?CR_pbqD9Su9vuvHE zMY_zFG0!ZH(kNW=45x88JzLG@0LFYmyjcA{WBrJ8xJD2h5A6xSsSRzSUTjZra*4@+ z555yWTFerC{#a)`zc{@Dj>`s(xC3vqW^f>Y+``BK1Y*(29eZwd*7$g%Z69yTFc~ca zZKaj5t7+hZJBIB+*ijTpQlOG(<%UdkWXiDKe565*v4iEpPn;eYr`BoC{stA_tFqKl)9r(IsGcoGZVfbzw5)Zqa~`6vI*(L`eVHZ4 rA6Znc`lX^}Xu1XLo~ZO7Zf7euy!3sg3DrXi&XnqXj=asU;9*wxUAI@) literal 0 HcmV?d00001 diff --git a/floor3.info b/floor3.info new file mode 100644 index 0000000000000000000000000000000000000000..374662ad4f0dee47338c8cadbf30c6ab8e04605b GIT binary patch literal 221 zcmaDXz`)1=1KJE63@i-H42+DddNMFURGNhWD0c&hcQpVdKo|pnOkrYRQcz$9OUZu# zQT0DS;sS_)HL}&Aa?yf5cwa(PJog?t^Xf@*$n@|dLMw4fB@JB W96$!2o2QR!NMwMkt*4KZF9QJ2EG>rs literal 0 HcmV?d00001 diff --git a/flush.s b/flush.s new file mode 100644 index 0000000..624286b --- /dev/null +++ b/flush.s @@ -0,0 +1,8 @@ +flushc movem.l a0-a1/d0-d1/a6,-(a7) + move.l 4.w,a6 + cmp #636,16(a6) + bcs.s .skip + jsr -636(a6) +.skip movem.l (a7)+,a0-a1/d0-d1/a6 + rts + diff --git a/font.bin b/font.bin new file mode 100644 index 0000000000000000000000000000000000000000..c8f0d9ebb1099331ed436bc2c9f379398624bebd GIT binary patch literal 11568 zcmeHNU1(HC6#iV-&BknU*J}N%)u_>G8?1s45kk9`v_vQ+EeNgnun#^+iICC<1=Dp2 z#aa+aiYXMXP73$(5Wa0Qt04G`N2%-jgX1IFzag|u>+`+K6Mj7atLTx0yOpj zP3?e_l;7__`ZzGB8+fh_m@7BW6@K%C-}Az6zVKTh{1ynmg~D%<@LMeW77M=@gx`|G zz>8U6X{-Dm0?RG}&Hcdg?ZApP^1BDDEC4MBfmQDVt6StZ3cPdf~1%p6I-BY9KtGc()QMlqJ9Fmp;|=q!S#^@}Zz z7z@W=bibHUG*MxD#=@w>{lap29%C##R}G5KGJz*f2qjZzIWbR`%R1Sxa8IU~r-+@_ zFKl~`BO7JT81^}tZEr@Ay{_X+)uLeGHAF?d9{b#;)}F4iSIiYkU1A%ueVMAYXE>Jq zGKTjAI-L|M6Hu4X0a$}* zaXqsto{aaS^KSp6l~wN=DBhX6QE2HKTK`3UOFTVeMOC(gx9@B#=G!j}rAM(jo?c$H zBL<2i+pcGXXSyH4bGc2rdrhQ|-ApU#SYBQFt_L?aM8jUPQk2qlCtbG?t(@?BMkq%n z_7?MQl+tzgD(R8RqStfUvSg(wrR<5zG4;o$KdVNE>EqL>kKURmF{Q?P=iNh=yG|5G z20oFP`lV$<{)2dWOP|Sx>L+fG4DQXhT=-Qs>e6#_o?1;}pg24@p<=4_l!~d%Gplwz zS-g{*EX2o#+J4AOoX&`uY^eU`gR7gO#+0(suJP$h@#nsA<<%&q7gN$#^|zHHuB&1y zLg`L#c>5na)goGT-Y|D`oQJHR5SdqHhS6IQoqBqgIOT z^E9+)p5a(hf~6;LORdzifn|wc$p%W~YU(V23$|<7wnNpod>15U+bG(^Z--j^sD9p?~*-KHd9F!9VJttS% z-i)Klw(4hjCXzjL4pjLB&-&V^a4c-Y^WvBGz`$(#GgxoL7`N3LV{CiVM-Q#2pDY$z z{AtfBv#?yYwhap-Gox=*V#mxPBxJl4$S;F5LMo%G#qg5NFaKVQ@%&kNdS{;HvA(vR z%#-I&_Dii4^Ys0am5NSR#MaFL$upOY8Z~x4FlG8)&X7wm9N8o|A2BWvwx0L&hEy#Y6n^m7LJ+4AAjuiFnH&_)Hp(0wtf7tK`F)tlO;X7EVq5p^vzqBM z_BF=?d!kk<+%Fv4(XlWx+noGlu(0;wb24LL4f*XaQ{0o^_Nm!WrzeAj-}ZILjH|QA z3W+h^!?3<=d!D(tC)+1F7Ph@D{+Q?EV&U(4n5uQWFqY_)kA>y-$z^?oSNdM#c?Eb+ zs8;D+O1$sX98@do#Mb6nn0xZ-$oFwi5#q%dpEDeg%lZnRyfCGEDSi1qZsTV_-kI1a z+kM<73cQ0@^1RX{T4D`Z`)C|gFV=#wNb?@VnqsA|CVZZAu}rd`n)9zq_Ni=spJbm} zwG#sz*Pv+~gv%2D$#`~#z4P&!M>u)6sb*B>jjgt+<`bWv}#Qpfa*qHYs z;udbn_s#`5=sAVs=ttgjb5@3{49P~f!L4`e+*xkijk$2;)7{HBiz71C@5WYi{0+34 Bz!v}j literal 0 HcmV?d00001 diff --git a/font.iff b/font.iff new file mode 100644 index 0000000000000000000000000000000000000000..e69ba875068e07dd0cf658cf4a25a620db34ff43 GIT binary patch literal 12400 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 G!2bd3e9-g& literal 0 HcmV?d00001 diff --git a/font.iff.info b/font.iff.info new file mode 100644 index 0000000000000000000000000000000000000000..cdbdfc093a76809b929b9309810adc2dcb6fd894 GIT binary patch literal 460 zcmaDXz`)1=16B+o3@i-HKoK^b9+)61&GM6h%_JCzO&Wj_AdCS(rZ6$EY5OpvNY(!b zgN6jKC?k+&2MRO-X$SfL2Y`I02S6Dh&78o*zyYMWf3P#e0cplR%nkD!f$I3!5B-1G zkifg1^?~@$h6F|Z<^$nCTJ^uY%5fk){a0RxJdl?A^Ts+FNQeI46*?bCzX#b1q=BY` z%&!M=|Nn0QbAbee`~Lt`z+paE;Ge?`umUy&4Gt$DpQV9?fdNc&Fem_Nc^)3d1R!ny zPrer<{{Mgd{TFNwv%%)DLCtG}n+r1^7Y%avw|={F5>`V TJ~vMv*O15nS6fdXCtn5tg`20c literal 0 HcmV?d00001 diff --git a/fonts/2001.font b/fonts/2001.font new file mode 100644 index 0000000000000000000000000000000000000000..ce8dad659ec354f55e71262cae08094144333d8d GIT binary patch literal 264 Xcmd;QU|=*dFfi1&U>Lc8gTV;^J)Z%E literal 0 HcmV?d00001 diff --git a/fonts/2001/8 b/fonts/2001/8 new file mode 100644 index 0000000000000000000000000000000000000000..a55d9a4167a57a16ef74e690a037736596244193 GIT binary patch literal 1832 zcmeIzu}d^Z7{~E(T{c_Dn<*cHylkSj+X?kI35lO zVija7i|`_EWoc09#+J7L-E zu(VpsT2%^H*0oaIQ=QjyV_umNgNaU5)!Xz3H=i+zA42C3wXSNGIFp##IGelYz(v0< zBL;S;`mU6^mY6QS@_x_xtUM4dNODm2y>DAj`jLD1(0H1CO79m{x=b(FBfg)SU3OxP zH8Lz+T1%1Y#EeO|NwVkMQ~Fq6CtcZhq&w1&UDw5M7t_nbob=jk#b+6-+T73MaH6%J zbq7I5vi@db#FUzgDN^>D7~5EV&6iT8GOfwB-mA7@G8w33_igv9SFb7|bhXxnB|Qng z@nfDR|Lq~ft=W6l^+QVf+qa~%@r3l!Qi-bRxg^b++-F9(_v%L<+Th$ENOskBzxZ~r zmq{3Qr4)svL!+T>v-@WbRLwwH{Unn`x^-MXSf5aM0@EoGPjo3F)&gs7ttat^PX9G^S6ucYa!pT}*%3 z{`2wW)W74$#b}Gu7Dp~w&OGH397E&FLQr566?$;k#twGTVjm-nF~t#%ae`Bv;T#vZ z#1*b_gInC;9*-vH&oE!fVIe56i3&Y9Y-0zzXt9qG#+c#=$2h?$&Tx(kT;dAXxWO&% zaF0jsp=WYRk|#MV1O+xxAxg_PH~2FT;LK{xW)}`amW7V YlTS6^KhPgkAw_Jj(8t#Zpshaq16r}~(*OVf literal 0 HcmV?d00001 diff --git a/fonts/microscopic.font b/fonts/microscopic.font new file mode 100644 index 0000000000000000000000000000000000000000..043dfd3d948a2fe5677b0e04a6257b5fc15f0791 GIT binary patch literal 264 ecmd;QU|`J6OfJeVPR=jLOx8DL7=eJ5!3h8fvISQF literal 0 HcmV?d00001 diff --git a/fonts/microscopic/5 b/fonts/microscopic/5 new file mode 100644 index 0000000000000000000000000000000000000000..9302e1e9d353a51d61fdb4642f93853488f03e69 GIT binary patch literal 600 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 literal 0 HcmV?d00001 diff --git a/g.s.old b/g.s.old new file mode 100644 index 0000000..cda04e3 --- /dev/null +++ b/g.s.old @@ -0,0 +1,1646 @@ + +focshft equ 6 +grdshft equ 8 +darkshft equ 7 +maxz equ 16<>2-1,d5 + ; +.loop movem (a6)+,d2-d3 + ; + move d6,d0 + add d2,d0 + cmp #32,d0 + bcc .skip + ; + move d7,d1 + add d3,d1 + cmp #32,d1 + bcc .skip + ; + ;d0,d1=x/z of map to check! + ; + lsl #5,d1 ;Y*32... + add d1,d0 ;+X + lea 0(a2,d0*4),a0 ;mapgrid + move (a0)+,d4 ;how many polys here + bmi .skip + move (a0),d0 ;poly data offset + lea 0(a3,d0*2),a0 + ; +.loop2 move (a0)+,d0 ;poly# + lsl #5,d0 + lea 0(a4,d0),a1 ;actual poly + move frame(pc),d0 + cmp (a1),d0 + beq .skip2 + move d0,(a1)+ + addq #1,wallcnt + ; + bsr rotandadd ;x1,z1 + bsr rotandadd ;x2,z2 + ; + move.l (a1)+,(a5)+ ;y,h + move.l (a1)+,(a5)+ ;scale + move.l (a1)+,(a5)+ ;texture + ; +.skip2 dbf d4,.loop2 + ; +.skip dbf d5,.loop + ; + rts + +rotandadd movem (a1)+,d0-d1 ;X,Z + sub camx(pc),d0 + sub camz(pc),d1 + move d0,d2 + move d1,d3 + ; + muls cm1(pc),d0 + muls cm2(pc),d1 + add.l d1,d0 + add.l d0,d0 + swap d0 + move d0,(a5)+ ;X + ; + muls cm3(pc),d2 + muls cm4(pc),d3 + add.l d3,d2 + add.l d2,d2 + swap d2 + move d2,(a5)+ ;Z + ; + rts + +castwalls ;process 'walls' list + ; + move.l castrots(pc),a6 + move.l vertdraws(pc),a4 + move minx(pc),d0 + lsl #3,d0 + add d0,a6 + move width(pc),d7 + subq #1,d7 + ; +.columnloop ;do this vert line! + ; + clr.l vd_data(a4) + move.l walls(pc),a5 + move wallcnt(pc),d6 + bmi .nextcolumn + ; + ;OK, here we use Z buffer to find nearest Z! + ; + move #32767,vd_z(a4) +.vertloop ; + move va_lx(a5),d0 + move va_lz(a5),d1 + muls (a6),d0 + muls 2(a6),d1 + add.l d1,d0 ;LX! + bgt .nextvert + ; + move va_rx(a5),d1 + move va_rz(a5),d2 + muls (a6),d1 + muls 2(a6),d2 + add.l d2,d1 ;RX! + lsl.l #4,d1 + swap d1 + tst d1 + ble .nextvert + ; + ;OK, this vertical section is in line with RAY! + ;gotta find middle Z! + ; + ;LX<0 (-lx)/(rx-lx) + ; + lsl.l #4,d0 + swap d0 + sub d0,d1 + ble .nextvert + swap d0 + neg.l d0 + divu d1,d0 ;fraction! + ; + move va_lx(a5),d1 + move va_lz(a5),d2 + muls 4(a6),d1 + muls 6(a6),d2 + add.l d2,d1 ;LZ + add.l d1,d1 + swap d1 + ; + move va_rx(a5),d2 + move va_rz(a5),d3 + muls 4(a6),d2 + muls 6(a6),d3 + add.l d3,d2 ;RZ + add.l d2,d2 + swap d2 + ; + move d0,d3 + lsr #1,d3 + sub d1,d2 + muls d3,d2 + add.l d2,d2 + swap d2 + add d1,d2 ;middle Z! + ble .nextvert + cmp #maxz,d2 + bcc .nextvert + ; + ;OK, d0.r=fraction, d2.w=middle Z!...calc real height! + ; + move d2,d3 + lsr #darkshft,d3 + movem d2-d3,vd_z(a4) + ; + move va_h(a5),d1 + ext.l d1 + lsl.l #focshft,d1 + divs d2,d1 ;real h + ble .nextvert + move d1,vd_h(a4) + ; + lea textures(pc),a3 + move va_texture(a5),d3 + move.l -4(a3,d3*4),a3 + ; + ;have to divide h into real height of texture! + ; + move te_hand(a3),d3 + addq #1,d3 + swap d3 + clr d3 + ext.l d1 + lsl.l #5,d1 + lsl.l #5,d3 + divu.l d1,d3 + move.l d3,vd_ystep(a4) + ; + move va_y(a5),d1 + ext.l d1 + lsl.l #focshft,d1 + divs d2,d1 ;real Y + move d1,vd_y(a4) + ; + ;find which column....0 -> w-1 + ; + ;scale up fraction to find texture column! + ; + and.l #$ffff,d0 + move.l va_scale(a5),d1 + mulu.l d1,d1:d0 + move d1,d0 + swap d0 + ; + move te_wshift(a3),d1 + lsl.l d1,d0 + swap d0 ;which column! + move te_wand(a3),d1 + and d1,d0 + ; + move te_hshift(a3),d1 + lsl d1,d0 + ; + lea te_size(a3,d0),a3 + move.l a3,vd_data(a4) + bra.s .nextcolumn + ; +.nextvert lea va_size(a5),a5 + dbf d6,.vertloop + ; +.nextcolumn lea vd_size(a4),a4 + addq #8,a6 + dbf d7,.columnloop + ; + check .columnloop + ; + rts + +dbwindow ;a0=window to double buffer.... + ; + movem.l wi_cop(a0),d0-d1 + cmp.l d0,d1 + bne.s .skip + move.l wi_cop2(a0),d1 +.skip move.l d1,wi_cop(a0) + ; +usewindow ;a0=window to use... + ; + move.l wi_cop(a0),cop + move wi_copmod(a0),copmod + move wi_w(a0),d0 + move d0,width + lsr #1,d0 + move d0,maxx + neg d0 + move d0,minx + move wi_h(a0),d1 + move d1,hite + lsr #1,d1 + move d1,maxy + neg d1 + move d1,miny + ; + rts + +clswindow ;clear window contents/arrays etc. + ; +blitcls ;use blitter to cls cop + ; + move width(pc),d0 + subq #1,d0 + ; + move hite(pc),d1 + lsl #6,d1 + or #1,d1 + ; + move copmod(pc),d2 + subq #2,d2 + ; + lea coloffs(pc),a0 + lea $dff000,a1 + ; + btst #6,2(a1) +.bwait btst #6,2(a1) + bne.s .bwait + ; + move.l #$1000000,$040(a1) + move d2,$066(a1) ;Dmod + ; +.loop move.l cop(pc),d2 + add.l (a0)+,d2 + ; + move.l d2,$054(a1) ;Dpth + move d1,$058(a1) ;size... + ; + btst #6,2(a1) +.bwait2 btst #6,2(a1) + bne.s .bwait2 + ; + dbf d0,.loop + rts + +blitcls2 ;use blitter to cls cop + ; + move width(pc),d0 + subq #1,d0 + ; + move hite(pc),d1 + lsr #1,d1 + lsl #6,d1 + or #1,d1 + ; + move copmod(pc),d2 + add d2,d2 + subq #2,d2 + ; + lea coloffs(pc),a0 + lea $dff000,a1 + move #$f00,d7 + move #0,d6 + ; + btst #6,6(a1) +.bwait btst #6,6(a1) + bne.s .bwait + ; + move.l #$1f00000,$040(a1) + move d2,$066(a1) ;Dmod + move.l #-1,$044(a1) + ; +.loop move.l cop(pc),d2 + add.l (a0)+,d2 + ; + move.l d2,$054(a1) ;Dpth + move d1,$058(a1) ;size... + move d7,$074(a1) + addq #1,d7 + and #$f0f,d7 + ; + btst #6,2(a1) +.bwait2 btst #6,2(a1) + bne.s .bwait2 + ; + move copmod(pc),d5 + ext.l d5 + add.l d5,d2 + move.l d2,$054(a1) ;Dpth + move d1,$058(a1) ;size... + move d6,$074(a1) + addq #1,d6 + and #$f0f,d6 + ; + btst #6,2(a1) +.bwait3 btst #6,2(a1) + bne.s .bwait3 + ; + dbf d0,.loop + rts + +renderwindow ; + ; +renderwalls move.l vertdraws(pc),a6 + lea coloffs(pc),a5 + move width(pc),d7 + subq #1,d7 + lea palettes,a2 + ; +.loop move.l vd_data(a6),d0 + beq .vertskip + move.l d0,a0 + ; + move.l cop(pc),a1 + add.l (a5),a1 + ; + move vd_h(a6),d5 + move.l vd_ystep(a6),d1 + ; + move vd_y(a6),d0 + add midy(pc),d0 + bpl.s .noclip + ; + ;gotta clip Y + add d0,d5 ;reduce hite + ble .vertskip + neg d0 + ext.l d0 + mulu.l d1,d0 ;y step* y + bra.s .skipclip + ; +.noclip mulu copmod(pc),d0 + add.l d0,a1 + moveq #0,d0 +.skipclip ; + swap d0 + swap d1 + move vd_pal(a6),d2 + move.l 0(a2,d2*4),a3 + moveq #0,d2 + moveq #0,d3 + move copmod(pc),d4 + ext.l d4 + cmp hite(pc),d5 + ble.s .hok + move hite(pc),d5 +.hok subq #1,d5 + ; +.vertloop ;a0=src texture column + ;a1=dest coppoke + ;a3=palette + ;d0=current Y + ;d1=Y step + ;d2=0 + ;d3=$00xx + ;d4=copmod + ;d5=count + ; + move.b 0(a0,d0),d3 ;lut entry + move 0(a3,d3*2),(a1) ;colour! + add.l d1,d0 + addx.l d2,d0 + add.l d4,a1 + dbf d5,.vertloop + ; +.vertskip addq #4,a5 + lea vd_size(a6),a6 + dbf d7,.loop + ; + check .loop + ; + rts + +vbhandler subq #1,(a1) + moveq #0,d0 + rts + +vwait move #1,vbcounter +.loop tst vbcounter + bgt.s .loop + rts + +;************** DATA *************************** + +data + +palettes ds.l 16 ;16 palettes for 16 brightnesses +rgbs ds.l 1 ;table for calculating palettes + +joyx0 dc 0 +joyy0 dc 0 +joyr0 dc 0 +joyb0 dc 0 + ; +joyx1 dc 0 +joyy1 dc 0 +joyr1 dc 0 +joyb1 dc 0 + +map_map dc.l mapinc +map_grid dc.l 0 +map_poly dc.l 0 +map_ppnt dc.l 0 +map_rgbs dc.l 0 +map_txts dc.l 0 + ; +camx dc 0 +camz dc 0 +camy dc 0 +camr dc 0 + + ;camera matrix... +cm1 dc $7ffe +cm2 dc 0 +cm3 dc 0 +cm4 dc $7ffe + +castrots dc.l castrotsinc+8*160 ;middle of table +camrots dc.l camrotsinc +vertdraws dc.l 0 ;vertical strips to draw + +walls dc.l 0 ;linked list of walls to display +wallcnt dc.l 0 + ;already rotated around camera! +cop dc.l 0 +copmod dc 0 +width dc 0 +hite dc 0 +minx dc 0 +midx ; +maxx dc 0 +miny dc 0 +midy ; +maxy dc 0 + +coplist dc.l 0 +slice1 dc.l 0 +slice2 dc.l 0 +copstop dc.l 0 + +memlist dc.l 0 + +dispnest dc 0 + +coloffs ds.l 320 ;320 columns max + +window1 ; +slice dc.l slice1 +nslice dc.l copstop ;slice2 ;copstop here for 1 window + ; + dc 160-52*3 + dc 44 + dc 104 ;max width for 2 high = 90! + dc 80 + dc 3 + dc 3 + dc.l joyx1 + dc 0,0,0,0 ;camx,z,y,r + ; + dc 0 + dc.l 0 + dc.l 0 + ; + dc.l 0 + dc.l 0 + dc.l 0 + dc.l 0 + dc 0 + +window2 ; + dc.l slice2 + dc.l copstop + ; + dc 160-32*3 + dc 44+120 + dc 64 + dc 59 + dc 3 + dc 2 + dc.l joyx0 + dc 0,0,0,0 ;camx,z,y,r + ; + dc 0 + dc.l 0 + dc.l 0 + ; + dc.l 0 + dc.l 0 + dc.l 0 + dc.l 0 + dc 0 + +col0 equ $123 + +copinit ;initialization for display + ; + dc $1fc,15 + dc $096,$0120 ;cop/bit/spr DMA off + ;dc $08e,$2c81,$090,$f4c1 + dc $092,$38,$094,$a0 + dc $108,6*40,$10a,6*40 + dc $100,$7200 ;lores, 7 bitplanes + dc $102,0 + ; + dc 26<<8+1,$fffe + ; + ;lo colour nybs - lo bank + dc $106,$0200 + dc $180,col0 + ; + ;lo nybs - hi bank + dc $106,$8200 + dc $180,col0 + ; + ;hi colour nybs - lo bank + dc $106,0 + dc $180,col0 + ; + ;hi colour nybs - hi bank + dc $106,$8000 + dc $180,col0 + ; + ;slice... + ; +sl1 dc $e0,0,$e2,0 + dc $e4,0,$e6,0 + dc $e8,0,$ea,0 + dc $ec,0,$ee,0 + dc $f0,0,$f2,0 + dc $f4,0,$f6,0 + dc $f8,0,$fa,0 + dc $08e,$2c81,$090,$f4c1 ;diw + dc $096,$8100 + dc $084,0,$086,0,$08a,0 + ; +sl2 dc $e0,0,$e2,0 + dc $e4,0,$e6,0 + dc $e8,0,$ea,0 + dc $ec,0,$ee,0 + dc $f0,0,$f2,0 + dc $f4,0,$f6,0 + dc $f8,0,$fa,0 + ;56 + dc $08e,$2c81,$090,$f4c1 ;diw + ;64 + dc $096,$8100 + ;68 + dc $084,0,$086,0,$08a,0 + ; +cstop dc $096,$0100 + dc $ffff,$fffe +copinitf ; + +bigdata + +textures ds.l 48 + +mapinc incbin maps/test +castrotsinc incbin castrots.bin +camrotsinc incbin camrots.bin +palette incbin texture.pal + +testwall dc -256,1024,256,1024 + dc -64,128 + dc.l $40000 + dc.l 0 + +;************** SLOW SUBS ********************** + +slowsubs + +loadfile ;a0=name, d1=memtype + ; + ;return d0=pointer + ; + push + ; + move.l d1,-(a7) + ; + move.l a0,d1 + move.l #1005,d2 + move.l dosbase,a6 + jsr -30(a6) ;open it! + move.l d0,d7 ;handle + beq .done + ; + move.l d7,d1 + moveq #0,d2 + moveq #1,d3 + jsr -66(a6) ;seek to end + ; + move.l d7,d1 + moveq #0,d2 + moveq #-1,d3 ;seek to start + jsr -66(a6) + ; + ;d0=length of file ? + ; + move.l d0,d3 + move.l (a7),d1 + jsr allocmem + ; + move.l d0,d2 + move.l d7,d1 + jsr -42(a6) + move.l d7,d1 + jsr -36(a6) + move.l d2,d0 + ; +.done addq #4,a7 + pull + ; + rts + +calcpalettes ;a0=palette! + ; + move.l map_rgbs(pc),a0 + ; + move.l rgbs(pc),a1 + move #255,d0 + move.l #$f0000,d1 + ; +.loop move (a0)+,d2 + ; + move d2,d3 + lsl.l #8,d2 + and.l d1,d2 + move.l d2,(a1)+ ;R + ; + move d3,d2 + lsl.l #8,d2 + lsl.l #4,d2 + and.l d1,d2 + move.l d2,(a1)+ ;G + ; + swap d3 + and.l d1,d3 + move.l d3,(a1)+ ;B + ; + dbf d0,.loop + ; + lea palettes(pc),a0 + moveq #15,d0 + ; +.loop2 move.l rgbs(pc),a1 + move.l (a0)+,a2 + move #255,d1 + ; +.loop3 movem.l (a1),d2-d4 + lsr.l #8,d2 + and #$f00,d2 + lsr.l #8,d3 + lsr.l #4,d3 + and #$f0,d3 + swap d4 + and #$f,d4 + or d4,d3 + or d3,d2 + move d2,(a2)+ + ; + move.l (a1),d2 + sub.l #$10000,d2 + bpl.s .rok + moveq #0,d2 +.rok move.l d2,(a1)+ + ; + move.l (a1),d3 + sub.l #$10000,d3 + bpl.s .gok + moveq #0,d3 +.gok move.l d3,(a1)+ + ; + move.l (a1),d4 + sub.l #$10000,d4 + bpl.s .bok + moveq #0,d4 +.bok move.l d4,(a1)+ + ; + dbf d1,.loop3 + dbf d0,.loop2 + rts + +dispoff tst dispnest + bne.s .skip + bsr vwait + move #$01a0,$dff096 +.skip addq #1,dispnest + rts + +dispon subq #1,dispnest + bgt.s .skip + bsr vwait + move #$8180,$dff096 +.skip rts + +forbid push + move.l 4.w,a6 + jsr -132(a6) + pull + rts + +permit push + move.l 4.w,a6 + jsr -138(a6) + pull + rts + +initvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -168(a6) ;addintserver + pull + rts + +vbcounter dc 0 +frame dc 0 + +vbintserver dc.l 0,0 + dc.b 2,0 + dc.l 0 +vbintdata dc.l vbcounter +vbintcode dc.l vbhandler + +finitvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -174(a6) + pull + rts + +ownblitter push + move.l grbase,a6 + jsr -456(a6) + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + pull + rts + +disownblitter push + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + move.l grbase,a6 + jsr -462(a6) + pull + rts + +makecoloffs push + lea coloffs,a0 + moveq #2,d0 + moveq #3,d2 +.loop addq.l #4,d0 + moveq #31,d1 +.loop2 move.l d0,(a0)+ + addq.l #4,d0 + dbf d1,.loop2 + dbf d2,.loop + pull + rts + +grname dc.b 'graphics.library',0 + even +grbase dc.l 0 +oldview dc.l 0 +dosname dc.b 'dos.library',0 + even +dosbase dc.l 0 + +showwindow ;a0=window + ; + push + ; + ;poke bitmaps... + move.l wi_slice(a0),a1 + move.l (a1),a1 + move.l wi_bmap(a0),d0 + moveq #6,d1 ;7 bitplanes +.loop move d0,6(a1) + swap d0 + move d0,2(a1) + swap d0 + add.l #40,d0 + addq #8,a1 + dbf d1,.loop + ; + ;create DIW + move.l wi_slice(a0),a1 + move.l (a1),a1 + move wi_y(a0),d0 + move d0,d1 + add wi_bh(a0),d1 + lsl #8,d0 + or #$81,d0 + move d0,56+2(a1) + lsl #8,d1 + or #$c1,d1 + move d1,56+6(a1) + ; + ;create link to next! + move.l wi_nslice(a0),a1 + move.l (a1),d0 + move.l wi_cop1(a0),a1 + add.l wi_copmem(a0),a1 + move.l wi_cop2(a0),a2 + add.l wi_copmem(a0),a2 + move d0,-6(a1) + move d0,-6(a2) + swap d0 + move d0,-10(a1) + move d0,-10(a2) + ; + pull + ; +showwindowq ;display coplist + ; + move.l wi_slice(a0),a1 + move.l (a1),a1 + move.l wi_cop(a0),d0 + move d0,68+6(a1) + swap d0 + move d0,68+2(a1) + rts + +finitdisplay push + ; + move.l grbase,a6 + move.l oldview,a1 + jsr -222(a6) ;load view + jsr -270(a6) + jsr -270(a6) + move.l 38(a6),$dff080 + move #0,$dff088 + move #$81a0,$dff096 + ; + pull + rts + +initdisplay push + ; + lea grname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,grbase + ; + move.l d0,a6 + move.l 34(a6),oldview + sub.l a1,a1 + jsr -222(a6) ;loadview + ; + move.l #copinitf-copinit,d0 + moveq #2,d1 + bsr allocmem + move.l d0,coplist + ; + move.l d0,a1 + lea copinit,a0 + lea copinitf,a2 + ; +.loop cmp.l a2,a0 + bcc.s .done + move.l (a0)+,(a1)+ + bra.s .loop +.done ; + add.l #sl1-copinit,d0 + move.l d0,slice1 + add.l #sl2-sl1,d0 + move.l d0,slice2 + add.l #cstop-sl2,d0 + move.l d0,copstop + ; + move.l copstop,d0 + move.l slice1,a0 + move.l slice2,a1 + move d0,68+6(a0) + move d0,68+6(a1) + swap d0 + move d0,68+2(a0) + move d0,68+2(a1) + ; + jsr -270(a6) + jsr -270(a6) + move.l coplist,$dff080 + move #0,$dff088 + ; + pull + rts + +makewindow ; + ;a0=window struct! + ; + push + ; + move.l a0,a2 + ; + move wi_h(a2),d0 + mulu wi_ph(a2),d0 + move d0,wi_bh(a2) + mulu #40*7,d0 + ; + move.l #$10002,d1 + move.l d0,wi_bmapmem(a2) + bsr allocmem + move.l d0,wi_bmap(a2) + ; + ;OK, plot colours on bitmap! + move.l d0,a0 + move wi_x(a2),d0 + move d0,d1 + lsr #3,d0 + not d1 + and #7,d1 + moveq #127,d7 ;colour + move wi_w(a2),d6 ;width + subq #1,d6 + ; +.wloop move wi_pw(a2),d5 + subq #1,d5 + ; +.wloop2 move d7,d4 + moveq #6,d3 + ; +.dloop bclr d1,0(a0,d0) + lsr #1,d4 + bcc.s .dskip + bset d1,0(a0,d0) +.dskip lea 40(a0),a0 + dbf d3,.dloop + ; + lea -40*7(a0),a0 + subq #1,d1 + bpl.s .dskip2 + moveq #7,d1 + addq #1,d0 +.dskip2 dbf d5,.wloop2 + ; + subq #1,d7 + dbf d6,.wloop + ; + move.l wi_bmapmem(a2),d0 + sub.l #40*7,d0 + lsr.l #2,d0 + subq #1,d0 + lea 40*7(a0),a1 +.cbloop move.l (a0)+,(a1)+ + dbf d0,.cbloop + ; + ;how many copins on one line? + move wi_w(a2),d0 + move d0,d1 + subq #1,d0 + lsr #5,d0 ;how many bank changes per line! + addq #4,d0 ;2 waits - 1 eor, 1 init bank select + add d1,d0 ;+colpokes + ; + move d0,d1 + lsl #2,d1 + move d1,wi_copmod(a2) + ; + mulu wi_h(a2),d0 + addq #5,d0 ;2 waits and cop jump at end + ; + lsl.l #2,d0 ;4 bytes/copins + moveq #2,d1 ;cop in chip + move.l d0,wi_copmem(a2) + lsl.l #1,d0 ;2 coplists! + bsr allocmem + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + ; + move.l d0,a0 + move wi_y(a2),d6 + move wi_h(a2),d7 + subq #1,d7 + move #$111,d3 ;test colour + move #$8000,d4 ;Colour Eor + ; +.hloop ;make one copline... + ; + moveq #127,d0 ;colour reg to poke + move wi_w(a2),d1 + subq #1,d1 + ; +.lloop move d0,d2 + addq #1,d2 + and #31,d2 + bne.s .notnbank + ; + ;new bank.... + move d0,d2 + sub #31,d2 + and #$ffe0,d2 + lsl #8,d2 + or d4,d2 ;eor bank + move #$106,(a0)+ ;bank select + move d2,(a0)+ + ; +.notnbank move d0,d2 + and #31,d2 + add d2,d2 + add #$180,d2 + move d2,(a0)+ ;colour poke + move d3,(a0)+ + add #$111,d3 + subq #1,d0 + dbf d1,.lloop + ; + bsr .makewait + ; + ;ok, now do EOR! + move #$10c,(a0)+ + ;move #0,d4 + move d4,(a0)+ + bchg #15,d4 + ; + dbf d7,.hloop + ; + bsr .makewait + ; + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + ; + ;OK, 1 list created...copy to other! + ; + move.l wi_cop1(a2),a0 + move.l a0,a1 + add.l wi_copmem(a2),a1 + move.l a1,wi_cop2(a2) + move.l a1,a3 + ; +.copycop move.l (a0)+,(a3)+ + cmp.l a1,a0 + bcs.s .copycop + ; + pull + rts + +.makewait ; + ;make wait ins. + move.l #$01fe0000,(a0)+ ;no wait - nop + cmp #256,d6 + blt.s .not256 + move.l #$00e1fffe,-4(a0) + sub #256,d6 +.not256 move.b d6,(a0)+ + move.b #1,(a0)+ + move #$fffe,(a0)+ ;wait! + add wi_ph(a2),d6 + rts + +allocmem ; + ;d0=size, d1=requirements + ; + push + move.l 4.w,a6 + ; + addq.l #8,d0 + move.l d0,-(a7) + jsr -198(a6) + move.l d0,a0 + move.l memlist,(a0) + move.l (a7)+,4(a0) + move.l a0,memlist + addq.l #8,a0 + move.l a0,d0 + ; + pull + rts + +freememlist push + move.l 4.w,a6 + ; +.more move.l memlist,d0 + beq.s .done + move.l d0,a1 + move.l (a1),memlist + move.l 4(a1),d0 + jsr -210(a6) + bra.s .more + ; +.done pull + rts + +freemem ; + ;a1=address to free! + ; + push + move.l 4.w,a6 + subq.l #8,a1 + move.l #memlist,d0 + ; +.more move.l d0,a0 + move.l (a0),d0 + beq.s .done ;not found! + cmp.l d0,a1 + bne.s .more + ; + move.l (a1),(a0) + move.l 4(a1),d0 + jsr -210(a6) + ; +.done pull + rts + +initmap push + ; + move.l map_map,a0 + ; + move.l a0,a1 + add.l (a0),a1 + move.l a1,map_grid + ; + move.l a0,a1 + add.l 4(a0),a1 + move.l a1,map_poly + ; + move.l a0,a1 + add.l 8(a0),a1 + move.l a1,map_ppnt + ; + move.l a0,a1 + add.l 12(a0),a1 + move.l a1,map_rgbs + ; + move.l a0,a1 + add.l 16(a0),a1 + move.l a1,map_txts + ; + jsr calcpalettes + jsr loadtxts + ; + lea window1,a0 + bsr initwindow + lea window2,a0 + bsr initwindow + ; + pull + rts + +loadtxts move.l map_txts,a5 ;texture names + lea textures,a6 + moveq #47,d7 +.ltl lea .temp(pc),a0 +.ltl2 move.b (a5)+,(a0)+ + bne.s .ltl2 + cmp.l #.temp+1,a0 + beq.s .notext + lea .temp2(pc),a0 + moveq #1,d1 + jsr loadfile +.notext move.l d0,(a6)+ + dbf d7,.ltl + rts + +.temp2 dc.b 'txts/' +.temp ds.b 64 + +initwindow move #16<Qhvw zHKn!80v3Gwz#)&b9OjE0dNz&eDh|FC1!P5*$0>T=Jpz}zqu(3$xZYw+hc3oXI1J&^ z=rl4#2AxhvOefrM#RbQxbZ%l+zJ^L+60Q<15;T-MV9s19kD%P5+N9crY3Oym6DVJT z2jwfUAP`2YB%j4uc0^upz_#u&z$SGwG_7gdB#0Ctg-8(+gajfiS01dKZyq-)|K=(H zHB}60Y!GUyxF#zPv7&B!RCjNLOl?1m_}&w7QQQY_z`Z{AdK`zuT?lXr;K2D+k~egg zV5WUQj{zFJ$^!xuOK{Gih^J&7l66>zrkXTb7<2{MFiDnA#@xNIvs8O6n-9t^HVz6p-Vb&dbem#ib zyNRQ;cwn)_X~I{Dw!404yLLSO_a9@y$9W{bV1jstZ6AwhDvM4u)9Eqp@z*Sd&((VY zm)+4;A1gIpcJpQKee07;$>H`H8fh^n_|$MKPkOis#t(0wG$zfFLg6V10)=f9(3r~b z-RXEdrj6N!iz-Yzv_VFOH`@*4JEn2bY%*n`@*QQNuu%ApurOdUG_qx6TgjG^Z6RAi zQqmoeXJIPo{ zByh1pBv3kBt$$K%)hTSG4X}Q68M{zaZDXwwqGg48-h0NbH(<#Nj#RHV8z|u%Fm8k; p7&hWQ2=)d9>R1H7e!>!vaE}+&QK9x}jZwhXH9gjHkBU??_yY?FM`Hj0 literal 0 HcmV?d00001 diff --git a/gb.bb2.bak b/gb.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..812fe749d68bee814d2f3fb3210aeafb623db989 GIT binary patch literal 1320 zcmbVM&2G~`5MF2tg^Ftn1+~+{AwTQHc9J&4bzcA^kPv6&Wu5glaZ;@vHI_K|z!UXK zpP}WEm{~hb;YieE=iB*a=9}HwvbT|nLKpB8oOFjEbPku%G|uywv2qhk!*l(9ldF0a z)oNX7ZL@#{pFVKN<1B~yB8Q$$W4eliZ%qMNk>zoU%)3Y6a(DE5!!FlbjOozD_z8z0 zTpFE5rpTbv>4@os8?LzE7?sXV%*xkLZJ30sgo^|n_%6H$tVhA4Yobg}7+$gE!z_pL;!yhs0e7@D#v-^Q$Cp z=q$lZ`+$rAI=zYkfr%wJ=TO8`@(#&6ti$nAZGv-qr=Uz6&sJ3i{M53BYm%5Q=++Nb zN^AwIW6i;8lmY8o5%h!8^N)zN1ajVsn44&(@E-qL<$@Z;v#5KhMN|q_jV{c(L(i`d zBKU6NC@mg%tZ+Kvt3=ybKeSyt9{>A~u{#>oV-Zbd(TQd{J;w1ZIov)2oZFA{NPfZO z@r+1HjhEegnfJeW#QK`W@VRyKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKMnhmU1V%#uM+huq;9~G$U}cD7 zNMR@evL^xY0wA6M#4SMa8X)dtU}5M1(rrK-#K6JO0i@>u#ijt&%mcD#0reIzh%i(E Q*$F`01;o8T+|R%T0D-F#>i_@% literal 0 HcmV?d00001 diff --git a/ggfx/floor1 b/ggfx/floor1 new file mode 100644 index 0000000000000000000000000000000000000000..7506f3e8b501f822c430cf09ce32b33cc65e8166 GIT binary patch literal 6804 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 X!<}rSa*u)7x!rRI_KD_E`@g>dMO$rj literal 0 HcmV?d00001 diff --git a/ggfx/floor2_2 b/ggfx/floor2_2 new file mode 100644 index 0000000000000000000000000000000000000000..dbf28687fe40364d4aceb794cae79770c324c403 GIT binary patch literal 9434 zcmc(le{2)y8ONXVIle$*zah)OZPT2Wp^|MC^+wx;R>GmpAV>qUZtaRTwFXLntrP>9 zNDA|v#fH0Sql{@y(?Zhy)vcO__fJ(+WjR!dZdx^>Z5sVGe5MqLI^ly9>|p!eec$uh zAf~A*IGQ28^W8n4d*1i`zVGw?TDJP3l|=LZw&Lp#tbAZ)Pd5>@kdA-&)RBba>;|bz zqNS@=t;VIE`Hy_cET)I|DT4Fj zC)`!>OrG+1UL^(R<^{UIFTf60A|&IA;a(}z9J07V(*-W+Qi0Pbl_8nRg(Tr}`JPU8 zfg}xIq)`D^^C~RT5;IC9tDNUcB*_*{Rqh-oxpHby5vGa>)5sMrojrSnQ=mw4kn>=X zC?;Kwl(?KX6}7~r;#Nr!NX1l4fix)(V-;V77s|P8E{pdH^ZMOOn#$%np7*Uk7RB?@ zR#I?JG8G;7t}`xiKJFUJ18s&drpw~#jc3HuFvY7(eEpYUx*!Z2@vLhYrkpTbeo7c- z$p=G2hGEokH-ZE^?iR*NY1h!Vdr1_}mJL07j&_v|1x1$xrEKctu!>Ry!SBBN@@)rS#CY8HPzdXF@B-q+1^CRn^^05R-!s7VaN%H z+x0C@6u*jN1At#zpG8(op+Jsp{n~UltF1_~)vZ zt(%$=8s>IZy)=WZM4dsU>ZM{5iN?i65+5(30ir5$!E#eJlvAgx$j*rlM52b)D$)pt zi5eT_Dv}v!rmYInmJVwcvoGnIo0s;gBW8V*a%j6&$;)kLqKfI;xUY)TqcNg@PpTqS z9Wq0vmc6tko0|&Pt|CX*7)|x^3)593q{u9Yv5F+aL_%e%ASnV`u|mu%W89GWn5nu> zPT!}|g41Mwchq%KI+h5jd2eF9?iRQWK_ZjU8V(5 zs(B&H3R9FdLSKamRTllJ2z2TC2~~PlU+jV|T_#j1z43+)UAj!6N>o1Rvch!Yoq`6U z>?dTIj}#FS$z?*8-qGn0gy}LNOF5Y_AWWAjWU1Lgm=&g|IS9)x(+6GVcb-?F%&3!} z&q0@n={l6Txm?MGE}12i=`w{bIRdUvsxU0882O&(ROBSR#;xt7* zAxxwk(u|6x2&6cO@d^>b6vBlx%fx*UX2_7ekmfdrs6m*jA?G1Ygax#g2=wK~(STu@ zC}Mh~LcA5h4wB&MN6SPV!qi1v7(C$ynznU1f{iUL8vxM@q7VH8uMq{#i)K;+&KrS= z5IU*6sBmsZIFP)qkrJ0i_MkmII(Rri;kq2fTl%QP>!`0IUWPTIm*O?i3OO(t-6O9G zPaW8<+>~(Tc=lx3x8%!qqqq>(KFm0&9oXdCBQ6|`&TT8FHmHcmXp zSh&lImvo0Va)c-FJHZbPI<&QCBG2OYh2qA&<&;Jvcy|$4C#9-^l*-6Ihh=l-y*ctFoL`BkV=pD}TtY9~$6+5Y+aE9BdV0!9%-!)jy5NxKiTIsPV*H+eYDkRz z{jQXgHL}c5dFmv~Fv^@FIOrva#Jrp1&OM&}j^oRhMm$J(*Wf=KQd^(Lx!ct@;AD$W zVaN!}j5-`C500ukoY8D)9PccR=cXN>esGW+pJ? a77d*$%1q)eeW$7;sV<3p*s) z0twL!9@+P&T~gtF4J9VMY}GrYCibCjq2M<)yQH4E4k_5`kUE17NijiEOhFnLAD?^; z>AroaRB8ihZ_*4dhmWU%N@guc(*BNs<5R3Pv#0iTe7?tzL!9n3GQdoPnh3Afc0jYVzwi zeAAe|BtQZj##?&unT~|K+Vrkqwif)}ZEC z;@p#`NRB*3LHp^Lpap}1HueoTwwBX;$Fcdu_X0MY2mywWliB1=3N*Y@lQCkH z@{oWq|1GM)R(l^ zAJZ~8=>u{^!9Y@sqcEy82Z1cdQ3O+us;kWYY}WRtX6-t;-=ETQztI?D2c?BQ^!9Dk z+^;XTES78BLT8fsH$PA_8|l?>mMKMqQBn*srlVK{NGFU&;HrliKz@`i&P&yemtOLp zixf@(sal>@J?Pi#&D*`#`^w;DEy7Xpdhu#weGLI;VVnvxEma0HHQB<>mR7@m% z9)f7oDmo<27zj`)59mp5@>D}MH{s_B-zA_%bG%0=6bD&Ak4*&H zk|+N3nU699v4-`48m7e2pj(Z^btn>JIShoE#YE?%7-3g_$PJ!S-h0pVbD96~amFA@ zyXX1-g|{?o(51yLN}<*z$)Tai$;|FfufCdjFpA|A3kCzk4O#D!O2|oBjIe;z#@Uqu z-@{Xp@lw&xkMcB-Hm$H%y!KMv?FY02qydQ@UOYL}(K4Bdqo)TXdU!yFQJFb zGXo-;0jbYGg`AOwV@8^|8EA@UAYjZuSeuF9Thq=#E&DCC>rd6Pk5{{XC$CvwxHi3W z^dV|8TDaL!ix`I8^w6o6W4T(6F~xAYwjqGZ?3qhZ5=nUo#fN+T|qfsxBmrKuG=HyZiBgQFU=?Hzrhl~|K7XvAG>)u A?f?J) literal 0 HcmV?d00001 diff --git a/ggfx/floor3 b/ggfx/floor3 new file mode 100644 index 0000000000000000000000000000000000000000..09b729c9ccf84d68806844a94a2a2824787515f2 GIT binary patch literal 7314 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 literal 0 HcmV?d00001 diff --git a/ggfx/floor3.info b/ggfx/floor3.info new file mode 100644 index 0000000000000000000000000000000000000000..49c1afa67e5af307dee03118a2f549c75c7275fd GIT binary patch literal 221 zcmaDXz`)1=1KJE63@i-H42+Dd+CDHrRGNi>kyVESDF3PfC;`G40Avai17r9OX0Vj} z2M|^N14RD+{r~^}1}F&;0n0uBNkUDN{{v#z{{xZ#LF@!53Do-k0hrD3AFTHQNC^ml YeZT=^@VR;VxQ0XqxY~O9IQcRF0PSrp-2eap literal 0 HcmV?d00001 diff --git a/ggfx/roof1 b/ggfx/roof1 new file mode 100644 index 0000000000000000000000000000000000000000..0c8310d6171826dabd1877c6abb11059fee552ea GIT binary patch literal 6256 zcmeI0O>9(E6vxkfZ=j zAt5H3$ijt77H-+NBO!DO3yBM2V%(v0p{xuPW2BvV?;ii>zK?mO1CqLdIGwidzW2`W zo^#K==iE8BcW|hmXyc*2-TD4}|IQvFdXgM`@Uw~(u8%&ZvWjv81A}<9^SO848hS1L z?)c%!$&u0YfzQ&pw|jPMn@H!zC(}J6WBbP^KOGsJOz#;#^5MwD#Ni{O`#(wd_4dBp z*539?x}~GDt^L)u?#@;!^yl`VzhV5Pno}EEH>6s(CRnu_4U?G z-CbMr-5vRkHE#@T&F5Qo^(FHM9^ZAadFask!Ljt-iS_$VCEhjr}#l*iO(FySraq(Z6Z-?Tih}K5E ze@nDl#O-6ECZ?dud^04zL{5r`&xw+T7!$QI;x_ZOkobnEJt9scs~BRKXkDDR$$Ty( z=8=9PVvgu}kN+mx;)^Sdf!aw@w*ql{fmBw+m4-{~F4k9!hB8scN0M4+NtH=83sNB} zi@2qMky6ii?8+lFF(+tdJUG@xUrFuGFc;a&2}jaM#t0;Vx z$?+g-X%9UqH-KH(7wEMeXqggFsiMnwVy@U?8%!CyEHgYyTQkz1HueUb=&mVz=ty4S zIA`IZlaYs5-KU2zp%*2>3IRF`f0pjsxfdbbAn&#O8Xo$$0DYJ|!2s>66J6^+f$FR#0HdYtws$uWNupc9AxE_|r7VP^( zmF8nuI>NGbv9HWNV;P^+IC9-^3YKEnl4RENXV4jTEMQb}WvBAz{O;PkykMAL!E*Rl zx@OvL25t8Pv4SjYRl|2!>4~~R(O9|KSZNGWi5cO_#*B);RHTbww}U~O4d@HkKvvfQ zVt5REp&qwA#;uJMvihOM&DZ0O#<-_q-02!OSC9K6#g z@p3RiXBmlMpASHpwsHufT>__MGI0r_FYZ!SCk&V~^X34wO4*ENNLwH+SL4QyTU9Je zRED!5M!7N8kK8PxSl$FM?n2mv^u6H5t{jh&dhTs_=wbHIfBPc3!f(Hb(K2HB|4~`2 zw1Ub=iZmIJC|0srLCNN4Fsaz$*)OSih8Lnj(W=%;Ob2;ag|!~~)g8y<- zkkq${o<>P*3qW z$nGI^mFQ?hwG(ZMs3(|DN7Opzxfr#b=te}%5p_h=Hs*9hZDB446dZPp)USYW%At9c z2DRT%c=HkKEFf0~lK|ud5RMZsl;IUlfSV1ZrR~hf*dUx?ROJ3>AUtJ`AgyU9Q^o0x sMHg^gB zr8fBWF<=9Qc5O?x8N|$oMhwiGH(#F?bKq0<{c$#*&A;6PxP_6w{607&=Z`m}33u~p zER{q`mSs|4vPefNQh^GjQN=olV;yT1$59fiBngrvD$ho}nBc`Ivx0dIR%^UwSleTh zL5{TSZL`^=X(~NGET%K*&Vz=&Tl{#CYhMbH8-}NPzV|`!PW8j*sO?10x6IA`M zYU(I{uI&BOdD*`Q#F#zZKLaqm`wPfwlQob=E%xcm$G8e!)iVa0#H(Pggr|9?k~ zI_||J!P}f&$vfb-#AfVDGGNpao3ATLfpJT0wytCige}o!uCBxYla@$TR*<6HBrcE5 L*G=MOZJF^0vZa`5 literal 0 HcmV?d00001 diff --git a/ggfx/roof1.iff.info b/ggfx/roof1.iff.info new file mode 100644 index 0000000000000000000000000000000000000000..824b52f30fb42fa9ee216b789c5c8f79deb51325 GIT binary patch literal 221 zcmaDXz`)1=1KJE63@i-H42+B%n`B^us5A=$Q0@j0?`i-_fG`FCnZm@t7;u9bEG7Q| zMAiQQk^g`H|Np-MNwN%H0s>$k WZ~z&6Zk|4_A&~*Dww^vtz6=0d)Gz}8 literal 0 HcmV?d00001 diff --git a/ggfx/roof1.info b/ggfx/roof1.info new file mode 100644 index 0000000000000000000000000000000000000000..a360803deda272397e14e2337099cb9545b3a98a GIT binary patch literal 221 zcmaDXz`)1=1KJE63@i-H42+Dd+CDHrRGNi>kyVESDF3PfC;`G40Avai17l=Ar~ z906{nHTvp4)dbubUFJIqX-|&CTthDm>?$_7! zpR`{6gc8papjGk$V=z0&$Kv$fs4dG*%pn?FKKk?kfs zVBkGjuynxIiVz>vwDvx|Pa~bdjxB}|517&me&MH-Iy{l%F!F%om=Oc#VQ4wyROisz zOy>g{r|{47808F!kU}SlFkn<5O~zw6IHUN1=P?aEj^zSYn1&dwMH3t!Xjmw^KrQ^- zVT-Fh@CYrSh2UDqy>p+B;MRs2awEQuUk-{L^q6dli^j(00^(Y7OL$0q=W>?7cT=3C z=xAwz1vG@-LSRIxseA)X2&4(O0cj$4()lki!v>Ny$XCcPrdUIC`*6fQunb1nQR1IZa%eJ%L z!6)=ShOt?B;-S(trO$uS^*Dx)&2B$?KafbGJJT{kM92X=2Rw4r2fX$}Dq`w83_IWH z1MTeSr&zdB|A0 zBNwxVDNa%aKEe_rXKE8w#Tk)bH8IYhn%K|)M&LDJ-#h>LURO{BDa&Q52?5uYgcA5M z)fDCY1k-f-N%f=}<)YUrbXzrZ;?TO`sEpJNj9RY9olZbApNUp@J=xJrJSwIpb54J` z?3I*8bVqTF{6Khh4hrfz$JypwVAe<0zH>bHu-4hG;U=S+MVu2vWZX;QWb|u^%sE@d z8dB}Yao4X!HTNRcP<^3;&!`t=-yXUD7W1TWZJb128QA%+00-59W=M%^8Em3Wb4LQn z@G+xtlORhGN4n1e^v-#@`*$`0m0nzYBR-z);)5TF@88yR=;NEA9r2B@`z8hEZ&Jw# S7vH2#M literal 0 HcmV?d00001 diff --git a/ggfx/roof2_2 b/ggfx/roof2_2 new file mode 100644 index 0000000000000000000000000000000000000000..a121b8bb901a8acd2fcdc7dfa84fb4dcbe559073 GIT binary patch literal 10404 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 YeZT=^@VR;VxQ0XqxY~O9IQcRF00mht3;+NC literal 0 HcmV?d00001 diff --git a/ggfx/txt1_0 b/ggfx/txt1_0 new file mode 100644 index 0000000000000000000000000000000000000000..3c71543e81da278841f155562d6c39e25841c556 GIT binary patch literal 14972 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 C=y`zv literal 0 HcmV?d00001 diff --git a/ggfx/txt1_2 b/ggfx/txt1_2 new file mode 100644 index 0000000000000000000000000000000000000000..c23684b8878a49e64d6da5b0ad91225d50845440 GIT binary patch literal 40794 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 literal 0 HcmV?d00001 diff --git a/ggfx/txt1_3 b/ggfx/txt1_3 new file mode 100644 index 0000000000000000000000000000000000000000..320ed049a6da7a49656a99bc8f7062bca97dcf2e GIT binary patch literal 45402 zcmcG%4PaE&wKlxZ%rG;7Br_mFfWQohj`ms!N+n>JGYM3%RlwF>Yi&!YR_nD$@TWkN z$vI)v(A(NzwHLVlB$n%Id;KiguKVFAxZn(SKgA*Ny+nyv*%pa)7nexZ^E> z__ms*Zg-8_y}|3=2Z4aMthy{9mjzk^ilXe>w=Wuv#^Z5Zf7^x)Ewa1;|JT&uE;UP+ z;_}sjfO&&F*H;FwAJ4vie8}||EM59d=y4yj;GFqS_z`28))w|17Qn~maSi@mhlBph z_ix=;x(uC%DbN4L;)VE)ld+Ni&6w3Xw9MFGS-;HRDLb#enK=i4FI{*XMAx@5 zi9esPbcszcIj$b0(#@MGc1sxc+&JF*(I7g1>Em;UigPF+--Za)2LT z2bkr-d0~}Lz2o9r{_V`qpNo~eXyS7*{vygxKKWDqbIZ?mOAsvmWXrFMA6)G28EfL= z@%%4~-A6ZWd_@0TzcZ6#%;DfN3^ndQ%$pwvxqI%>Z|qxspp~)N(<;6Z>pGzNCtqPA zuk&7^`b&=-S*CyP`{lGC=dthY`5h~qE-1TiF;N`h{tL=4yddkJb7m`N%pu2_Q+%{D zfIDCIzq0Rq+ik|3kNnGA&OiLu*aNlQt>L!ot~0TvT&NAV&E4?}{qx$9%pGKGMgem( zr^;-y*F>+)OXYBrjL!v`ac0-<%u13>sK%+FT5LQ_y8DZ>83b493^==VuFP&_th=~H z>^Wiem>B&M^YomsL<9Bu=bT@f1_OzgRgRTQMlUKe@zT-XWGMIS5wy=W1`=iI;f8M+St}+Ws5mdj=&E|&rtpWC~YmwM%* zvHKkp8G9II<;7;1K3ACY&p#k0ziExbCKWhYE6~k}%C%EKHuTjei+i8F0-OSHd9Bt8)reiJISr;mXMT057Ts)Sr`3bDb9kW z6!(ShS|!-&j-0Fb+cce7df);(aOR+!2dYkl)7<*`G6LcAWohpCrB(IXBz`81`#6GN z!Pxyunpum=3525ZG;^#kmjSb^ti1}c5K zQW9>G-~=q8ky)EP)c zexsVCO8QLHjLj_;Q8TtdEml(lAI!?jP1MaD3@T)9y-TT#Rij2qG+-rh^sw>pD4;8B zes>1vX@0iTMBJn)tS(rf5e5|^%-DNELQ052r-_hyVZ7SdDDrcIgxUW06ViZKxY9(r z)_88W4=*e(;}4=c?k66ITSD6ey$daYPI-~Lv_M7q|kxs+p*`ILaG`@N`% zMESRalrKV~g;(81Q48W09f`89=iKXL<>nL3y}VZqE;A9nPHb9@dI9GYtMm9u7_qKl zpOk#h(>>}rkBKDs!fLH)oZ~#@ft%492kTiA^TZ~1H=C$mQEwfZAiq>^x}J2e*VA@) z)I=t5rDi?T8VJIHsLBlb)eQEwV5HDcqwhbYb$XWWoxs&Q{NZ%(POh%@hqaqY>ized z^aVy;jj_bsMNJ(yxW&X=XH!R|Th!=F7toj4z^tz}y|w;jabVVnrnlsmHNhrn82XOc z;SHDd^(v0pe8XkDSJCLp+4RjpgEOb@AK}VWJ|V(+??kX(h9Zp3^#(%5rr}HTmMKwP z*vQ|OQgatCY`o!ZNn^{^M;<}5&N8;lQZv+!NBDjzb>;OPkF4LX2{v(Vv!P`VF}7tT zfBPohFI!fI-@d7@U)I<%R$Gh4ts6VTmS6fhe3-=fQlaO+S%rot2#KvkJuopd#qKoO zihMxg-*oX465$e{VcU)lF)@qtBP6&3ek05i5})tl$0QT=EAs2F7ZWo{P-WB6U=?PI z@XrqNv`qLE&@ktAypn-YdmK4Uk=_3Bt7S zazqw_eFzO{c(NVlN1uwM6tF$|6i?|5fl)&sw$zSIwvLu68nbVRsl0F(=Y3(Ga_qve z5>E3`O?;g*(8gwN=P^FMg#|%&`pn_`1CzKbzI4%aw!c zFN8!h-+2-56BCaMJI8oui`w-5<1 zYY?>!GWG4QqKND3B5z?YoMU6Ti7C`3sFqf==~fuOn*|YZIfX=+C&zOxnW$6U8usgE zg`7?mD(zeiswV1G7yJFj_2%VLH7M&;S5>y>8rAnJM&apw^HQ6v(i3bYPc@#CHmFVH zlZfgpC#Y`cry}EjrBQXYCpQ$--Y?9MlItzCtJo65s!cx!)ka;8qSK~^WQ%j>gTi<* zxlP#l6J}a<@kmf5Im-$zt88?<-p2cmHmk7eP^u4s>KZo2OVb9&+0Ctp-tXP1^3oo( z9?svk+}+P^#Viy)cq|QN1x3?hQ!#uK?t8^v$=^HN4{>_NHS#d)5tgwMV-%UPe!<}mLK5;rnJ`i z*v~XOei|9iRie0ygJKs{p(@uH{(Q&VrC+M?k;KF zy|Z5097DG!Gp5zL(zfKwoPUOzA4?P^o;bE{;biwBpk?7?wumUE)jiGr=U{svI@OU~H!n9@*7~}GODZ~^f}jhooM~pXu;B7`+hWEp%IfOG z6kR>QQW1XdQ~Z>adee6ACiyYRFlMQnm?k*|RY7f{0PlJG5`Iz|SQEN^iThrO!UDc- z%M+lA0PVd?sQWa{O+@&olXxl&!k>b0n8E@csu}~LFzd{ZiDvwdIz1<7>U1eAV0FP2 zplOC)+H3~lDo9Fy<)7J;X*nYCW0qu^Ez?P+U$0<>IVoZVN%2HV;z>9`(M0Oy>DNP{ zq4o?bsg?ZQ$9R9(M5^+1Yn3HqPa}M_!j2M}rHNGMmIcA!1@`nIip8k3bSzI!*vRj= z8s28-M!x#$a0+$Z#9uFGXq@DhDU`(+>ijo#?$-11-+cEmx;6m9!`mUToLf82+CUXB&ruUBt)<@ zBiY40y)(MiA9C)wXh!!ZKh!SPlzP3aj`}){iwI&t)y;Ui_atu%N<20HBwrsy)sK21 z^?E3+^>s~-Dt~K$PvX7Z5)3wRNpJTJD#hL(!T7BvX`5vSv9?mF^%eHo^c3XLG=omr|chc`6JvwL#;opYy6#` zf3EkZvBdN>8CBAAhTNQv5Nk?@?BCUhYQ0nMP7EE?g)U%VifX@Z?P`su*_(P8yL&BnDTJ#~p|kn2z8YXY6L!)HSr{`w*KVw1yjvT9>8Rz1+l< zC*^TzHcf9!paqRXY>Lp@!r)M9if}SeZ*3=vmynqQTb1;}dv- zF&#Cw`{1sE?QGOgw&T1OVjH08C)&3M%}_(#5~+25OPg+6s72Ej#^MQqS>+krK%H%B zUAWb-Ev`r{w(;J0601MFlN)GUG31|X*mhhbO>7fSx*Qlqr8qNCx2?6V@~aovb{s!N zk@T8h$I_NCk1pc|>Xt~a^M9$$umqN9(7PCmrc#csNOPl!)Q`~;!h15d)h1ao1lhta z#REYdNpMCwIjn zW38&<6d|>iRn(bCtkHh&DH>v9uvWlYA=cv?3doaH$^2tg>g3O)O~e2R=dkp0I0p=) zQ#8sJrW{W#e^A=nU}Bm(;TxWUozG#!9B&;Wd&kOG5* z=${6c3#sjTR2}rsc{rj5-m3>5CZxc?p;X=kk84t;z+n97%^E@5$q&VM?o}T;1cVoT z=#a__)TW;I0zU#p7|P_xy8m2re2(Xeb|CKulHA=r?l0g?~y=?u}-O;j_Crz=o z1H(xm$+>zu>&c=dw_WRGeeaf5{Hcvkebx^Q6RNC0h?kTJWK#s)gA<|Z*=}Zw2GREJ%ho_g^)@>r>`Zw;sHvB}n*xw8W`XcBf zKjHhQ@^o=gw~3HTc=pfsk0}=u9?0p-p#wi-*M3vtFJD_~BA7a&zPBq^bSMtQgM&=T z(;~bEgZE##u3!Bl2bN7x|Cr_l$EEEbG4?{Ix)DUp$d&It-7>Q0IS%|UAjFO?+5XX% zR$u4YyGft1G)a*ee|xGj;?V+3D5ky%gjiJCe$a36b*c`!8a>3|yqJlgxw#&r*Eef{ zX)I~Vi>6l!`^$uc%DS-7OJgjqdL5=Ifrt5taD2-77deot=U>ECpXXaol$C9o&7aq9 z9>iz`Rl4pwQq(k`19`e>KEyVQTTisMmds9VR{1zAse1I58A6I*PoEr#12VeHNe=Y>0Bxo4Y!(2~rzKI4a9V?iSU@apnzxwuc=E3s> z;yF$gUq_?--W5D?*7H7MAYgS7Z-V0=Sa#?;uh!JWPV#|e6asMKX}N_bPJ0VtBzQV- zX^aH>pJ@NitD(@0ll)K35MdPp$gY5&e2EEWhRJRJX-A%Fw+ z-c$qSF5;0*H5jHGQUCK_3kLU%WsYce2rxSQHg)#eTE3lo3!2Y!zFp;GfSN7Is?DF1 zeGmFrbx@nC@W#`MuL9MApYyYK^F2Pc+F;vwTAtRZ3#!09WJ_WT zLD&~oHHIm+1}qaUM#zB`WJ_Wj9ZB}B80N~G4Sn!{J z;QV>ci%RO#VCqE6k4dR!tb6NFv{~%>&Z~`$6aT&0*u&U!CHr+dN$?xudQAC>DL%T&l=?D14j%-SnJx}JFlOUMSII8 z01v{9Xnr;uEQ*GD&{y&kngM`kV|Pn|hYZ#I8^S$krV!MaqM^c~X8kvI2OOG3yQ>KI zz>H|8I@hR_ZBbZAv#2MnSrleOJJs2GET@m&n&S4)?z$CLfd3r1|5}?Zc2d;ZDz{Nw zEvk5~bnL2IVXegRt4MA$2<*T1kw<1gjv6bsQJ)Hv+&)ha$-VFCfm{R0&9>P{4y_eY zEZV990BJHRMgcNvJ!tyguC3iSR-x89NRyUOLGw-+^}BU9?)nMT{;u>6Fg6}n?s;#) zg1&>DoFC(~gsR2VywP*U_5akssGhz~VC+s!u%lx(30_8mX7?|>M|_6_OILDW%t3;k z*I%y*M!C;iLS<{ZRo>f#?%$0@*u>lkuq`Q@Gw1E;Wf%{#*)~+s4B!?US5KEus12iX zbUeKb*G~A0i#N^gMRS#W%`(jZ+z@odCw*IlppK`X&;&!F5)%BA^KO)w$(0us4_7{WMeOfaK?qoZK!P=djpxA9!aArIPi;-?zhn`Jaq&xx?s zU^P@li9(-1;Dyc*Lrawf7sJ`B1MMMQRlgLubW*_Lb^#8frY}+BGp;j@`vj`6qf= zZB)c?0(vv04F{(NhkbECs|qwl9-=Mcz8u5=fH?!{3|LM zNk^UJOE2N>y&6fCNVd}NdA}~Fp+@pXBB@=D2}JTu7*TPl0vS_BjpPGFvM@su&yyVr z+Ok7Atwnw#Xjo+olbYlJjttpZvp_ZlvhYA@460~mLgE@Il(>duv|4X!0)rHYayFtI zL}k)CONgp`F|pLIGlKdNR;L-O!2AtE5$2Gn?Nvn3njuIN5#*>4ts60aa+ZUvv%HV- z>3IIlY(a1-#ODr5S8&Afc@x7F%crlD{^~*g^n`75+Mn`f;r}jZe`@jK(g}oKpT1by z^>cQ|(M5j$oslfO>Ae5WRjay>5=I8Qv+ubW#dY6)@ws#JqT>9+GqbQ8Wv}30IQr+q- z?2x3o($dv^gsUfcZTbY_OK|gEv|1Cr7^yH{dCo55aTGo;6dQFy^JH`|5HippG+#56 zKE+{uXtsUl3@h~`(*kX4{DO(g0>|JWoODU5?qYWy4L7*hUR|L&as5d_9rOIOHr}fx; zCqovX<12l5>cPXu`*|;tlQdSy3j9q4jw3Iuf2BrR|MKA@6SQ*0{Zk8KOQ(*!^BXR8 zpiYclfvmvq?fK=j@4nz$zkQXs{#EY_pHTUGd%nR&j$X=~zW;7l3d`GBrpu|fd?ms$4}ChCM;8m-&*uU^!otp2)!6v2Wo@l!fw7J|MIUf96K6s@4H4l^&RyWdO7ypsiVZ@Q=PxKf21qL8=}|wn7aVI-x(I` zw-1C*sjO)ql?&MSnNwKKoK0f_1+rb3j(Qm>_#ILo3CYM8bUh1(5cuV!ZAHC)p|zR} z7fi^`5rHv66e)y-A{ai)`&J>C;b{to1t9?c?4f!^6N)zD7h%rpu?Fg@VOPz&fqhwt zx_Cn3iYLiOsXbykMgs0VVv@V=XRh`eSkazqgw#5lxUDS7MhQPfE7T;a&}Ln4FjoU4 zcKgqyd!7}y#);581^z661?hPM+~wi%`q%i`c?dOm8VwSREN(Dz5hE)+pABQ;Z^9~f zg!!&E3(9Hcy7}poJJ;TLV%@vN#h=e>-`zRDMs5-Ndw7_K_lM}VH$T0%eeI2Z4&4mFjhim~zqY_J^omZ?0za6WXj6_0DK-yIae(!!IoB zEugJA3QHF&bSuKTQZ3C6p9&>#?#vG#5>!=JjJIPVi@q5*3BZLujH>ifRmOODn=PP~ ztK2Fd6+u9CqOIt^H@5#_8R~MYcxDft0EHusGVXS3k~tgiR|@ahFFaOW5`A~W!|}WR zbhQXwTwIjxMO1#fYBO$ZpD(B-Ox)vidahns>)L!R)ncKW1zc;-QhD|+qPG_DTSpA8 z7W9fMPBOcIKI&)GK`D!Q-}%BoSig9~Dn&y3sNDPSmAHQB(shNi$|@h-p!H6JXCnq6SF?T@%U#Tl*-`r@-E?sFZl*Xg z)iG) z+y4dQ@Pi?(%&)GLntS?HDfARlhN_wMZalFQxkabOLzXlfBdYEOx#jYa7THo!%{qR8 z48$yU%o`_ep!G)AQu>5O1F`*zf?Eza!KOesV*FN}!1=-S8;wt$Rytr*_5 zz)xji^R&Ryu_J`Qf}$CG1Z1Kjof%b){Kf7m z$YV?}`?SX~v@$!W?qk&x5&grkltA4Zon<4#p66nl?Mqbt%0`P`QFo489DCp{(l2E%daZc& zYwd3-WYx83mbM9)&8@}29MgzSR*P4M+uw`Bq*J@7%bZ~j;pKSQwSK!s6nWIWQKTXw zUFtlqZDX^jEHq;XaHyclRK&5rnA8^X`QEN^T*Z z{zDi`su@xZ_@q8*ZQK2mwKAI%yY9W-H)2&I24E9)3o*8joR`CMs$kGviNyt_GSy`C_(;( zAjclQb&g_|C&nMn|EQtl7neA9ms!w;qXn##VMR>hN#uekHmA^Y&f^Gbk(-}TgWJFu~3O~pBv z<9S~TbK5$Vk$c7SlhQ?9{h+OtNB?l+y&s+5wKcS*xuN@kc*R&vFrpOA72|tS$>sf^ z?Y2dfLgAT`8!xi8ms#GHg&l4-`$pd~9!q+~^A9P`H?2LY9ki+3r_PO1T`9prSvb0Z zRqW}*}I27RdH?=Pft!4tx6sY%UW5Wkuu!!OKWnpB8~Nt6jzECi(Or*8C8=B}yr5ss zzgHF#HB7v*WFE)bn0S7bGWruRwplB+a-Uib=TccHTS2#OkJ;gEa7<1q1Y{uR63 zwwqlwEBxsdsV|@6yPN^7Ja6JFC+pfeUvfU#T&O5rL=Ldc+ zQ`yzNus*W=RI>i(TNE+5#=*yGf)T~FSd6x(4zA@5Bk_kQH@xufti9iy^})!!@8ys*!U{Ny&JTd@Q_}vFW2>Zs8A7)ZgQkFL&F8wiMXgRM}iUYvzz~Fix!@E zF#O5;sUnrP-FX|8Pwt$1>e{^zyn67?jq;Sc;?{Sbhv2UZKPmikT0DMf`leKP|07y? zZ+pE?{E;ouGu?Gl&_YO%zq7YaJW`NK{x~e#CTQh`Hl2@cuUy?yQ#kfUU(sFv*2}J$ zWmU$GwD#}-t39ff>jhn~wlK=or#+lZZgZ0JBIX_pZBdQ6%~Hia5xmpF$3IOK9+28b z>SZ=s|MQU>A9wrDPIEkO;c7pIi@L|esE{tYPul-8Dvu7fU#~O&*_O!B7iv>~c@lzH z<0=eRiAN`-l9x&HNI%M>gZw$&79;nz9j#vd@jEwKKnMZVx}Y*{BACnUp>~u2gG22mmbHGhu z%i(m5n=I!%s&a(4aBo_?&awK3Ot8}MJ|$JeKiuVJg=o>mx^r+p+^+oFrt+c%hSV0Z z)1Q8cZ#?jXLQ*&D4(*9`Quy{IeJ2-Um2J#}J)@hd(6&;yuh`fyMla8OPIqWy*kSLH zNpF_QSY_+_dCBRTpfY0~7#qh<_fT@D$~L zTMoY!suzPBJ7WJkoMwfdJ$GBgzl=;J)1NlNuU~|6iy5AbAH; zI=TKxTG7g^QtvGd;nX#8&!a))3xHp&O5ATxC0D%Mh_}MPFBW)C?*fcXoE^7buNwR= zI{<#F10%E97Nr31jPZWnpsf;802;p-ab2__RoME&R)zo+Wf#-0R>F$yEB~bIWj+c( z$E^Qtqj>7e>6g-P9Q+*u&@t?Q|h+r>|APTjs>Q|P;3H#u;v z9MXF-rqz_SnbO#;RZ16w9k;Fqy9)h=Qj3HZh=(T_ova^tuUzI@{cH~s;=YJjKsEue|fyF|8ZEuZ5{zsvc7_Yr}X$X0f1-G|#( z^nSl#Yf_c1(uV_}IX)m>B@T>FO6IsumWGi0G?o8=I_`4MVDIgf*fxPu2r-g|c=F$;HDexN{aE7maP^&o-)~DW!`r|?TCWSkY~%n#;$aW}@(N=X zZiY_Vdk5Sl(ygEb2UtGEqfVOMBGW|Nm5G^b_Wk8@)L=9JQ?kChf-31<#Z zj3ftWxE4gi9Z(&$>&2=H4u3e(u1@B!wORBs^XUGiirFkbbjfat9>e7xlHvPXW!!$5 z;a3hO*vh}K8K-b1$GtfGYlR`;hzDPRpB#uhO3qs)fRlWSA z*YGjZ9sHA09v?$|W2m&|sK%6^+VN`~{v9h-6)Q2jzO+Is|JtKBi)*n$daNTF(3!eO zh9B4irfeBJ%=S~MMC630`Jg^8Z&K9S6|Xg5b=H9)i>CM2B8cd)>s`09W1Ao}qSalD zsiYTy&<$g(sg7bPI=vq^kyB`Qr`` zZY26#KTX|yrL0mwL)a*Gs;ab-AMBQ?Tq%5A@4`Pn&*R}wJ$O9ICTqVKSME~OwU>HB zKhXZLQuw(s9E0YgR!U{Mv`yu_?H;8}5JFtF7ICet&eGL+sK8b5sAFn$5jkp*m5|+p z+HNSY$iFVIEDgt0^?T{I@Z~pXW%+WwFW{`lJUAltN>I~($gzmYn-N) zo$H#@vpXL+7eQqSUaO4C+Rpoe+xdBLohMg=>rGm@FKBRmh?Rceb^M1EMHjC)Zu0ew z-pp(`0%5EPIlgnc^+&g9Wt;I=rEJu*4bk2fh9oc0OP0G-$+5NX;2zu&uYB-MJc zR_=S(aDP}5yq`Iqjx%Zs)Sqd@nkkw}NGB{AL z;gGzZR~UaPZo|9GjygQ@#uM8EXm+%OSy;Bi)gv{ZysxcHE4v>q(W|G7jrcxW`)kb| zwa%rc`T6$!t?=6nkDZ*ac;Z__9sll0`e;cr`tIZYIh{wP<~KLUbFrjJpBZlHYGx@G z)?qqbLaUmdtM9Aqh)@+fky$95 zx?@+cRN@z54+}4Pu%$e#N{RPhYp{qZFP;`O=$#v*nzjC`=xQo=NAQdy*r5or;}TWC zC=p3#0<>Vj+RQ^qnfi(rTlm6nTd%>3ENn;Qq?8Wc*NPDveR$F4+tqL*YHg)%40nER?NIq16bMIpPT^`J)XX%j^{96%D#~ zCzfkM8+1d0;>EJ#aaE7MbwdUN6&@r$t4p-Wk~XVZjbhOiH(@;RTG!R*$)W zgc0bMj$<%nN&N;d0?Ed?9z{y~q)4NxmDzmV?=<2~;dHWt!;s5uWJvoQtOO+g>)J;9 zR2v!6T+76-UZzJgh9TE>D5GV^e$}y7H>43ut_?7kirF^WA%&2Nm3E1+wJu9a>1Fj{ z8>4c_Wzk)Y&5t3XIAE_s9$=IqjBLCPR!nciGl272na$VdU5(+!c>25}4l_!c8SUlb zfRy|jNQz{}knV6W=-ApDTXZw7eUpul9mnb&SQmCx=#FM>V2w+4AuG^WK1#C@HpZa! z0nAMmJP<%YxvQB=so3vZ5eWMa(Ws-XdEx13L4Dx{R?jdJU4nQrC&;v>R0v11NMO9dx9@>)C`lkq)#ozihmvH{3tB!gG)+8W|0GHM2i}uEk*y07UyK^7h(Cb19J)~eNS?Khpd&^9eVW8 zAvgYqr~jUs1_(C3>SPVqYo@#O6Zv|rEVC`!zr6SUkGEeBPoU5a4%*UXAFrRIkOfsc zo5Lke%bCWEcuwV-D91|)79y>6;fAV<4r9%-ShJz}QCqQIwmG(H<7}~CezCgvuPo?m zmd8$OVVI>7*VLi?A-!y?{Py3z^4J~U4$11DUB^BU8<5IZVrgNcQO&UGefto*QQ2*4 z(79qMr)a~3ZSed7DVAQwPX{&Y@@Wj~l_6uCfLn2Uq-p zxYj3Eu4y2yB$%1rSQ}l5E`=fWH!V!Nh5OlsId)EDmO$_5{c1d+uD@?K( zQ=RapblDpJmEo61;ujXIY5Kt#8yTp0fT)#iMnvIf!dtBD4w;P%NYONwDl5S`#l}~1 zt&}w4ipokWm*;TBf;0w!Q&SkJO!)Brvz!0oY(ZKGD_QQmjf#J@+4Kh^PXEglti0mU z;K(;8Y+QGC^OJkg5}=N{cQX}#UHC)Ym+xKw=;OTaXEl$HUy!p`ty)1o%vmqHUco`pKGruDoj+;@gQ zPLFyP({C43;PwLCC|+;&I^wt~{o$(hNSr}ph09oVURB9z0_DZbLW5os&v~cUZ|8WU zmJ8DZh+_-c7(6MTF5;#O!U(clbDeyb$wtuoS9{YgwyM2B8)> z|J^#VB)6+UgOv7Y4o~x(L4mP_8A4p&v8&Fw$mqHX+QDn`6@ERFsE*!27AO}&->|D) z)NM7s{g2uPUbj^1nM9RbL>e-dppdnvZQo@vSy}9zu)9mv6N)T6%rV@gc`h}Vs3#Pq zv4{&JSW{#!hq0?yX+IlZs%`LfU2URVdaIAftV^G9%O#EJ3wxKK?78l=9ZA-9_t5nY@+5rv-NG)utu?1NB9^=C8inb*fq8u%; zsQrvYnPg4K?!$Xeg@V92Q`YOh)z*UF48E*;eSD~!r-V; zG&TsE35sQtwY|bviJn@tO~D|K4K%D+7uNO$YiKks+@NS>7SL0S8qi``Ia&;!7Ss{P z`KDkMt4pB`=?O-=F`aZAGnR!-2~c#1MqUy99&=nUTw_oqhVWbSQ1g@=?3ywaZAqAl zu#U8~rbyecOTU&F#-*0&*+gNw6xL5D>J-i2BU{kYtfvvRK{XzOYIK20Q=k%CczN{% zqDm6zg8<0Hbv6n@D}0)8;L`(GSb-B;KIFuf_hXYY&J*y-aPPw-nl~jwyC{h_>x7(1 z=-9>jc^B`8(jHmME1bSOANDg(zm`(ir{+cO;aWl=`c@vqRhW@dm=F6oQ)v%0?6@}M zjFdwn>I>0ndPBbAbzbAeIdrV73(OlDX`DanWbtSV{k#^G>2%&1bJsSw_m z4|7xz4OK40j4F0bl>p0!8C8aK2d#Gu_K7IV)CzKoP%C0MA3oId^6%+DgCb)~k$jj@ zrAreO8}ngCm7|&}iX$JIs&uieo-jzfE1W{$9!}@MhnmiS_?h4P4n)P2gY$#=aFDnv z@(#`$yYgU$_*+vH>we6!@}WuG=bgf=3f9N+Ap{e2WYxzZ1kUHhaBDuysI`-e{HPc{ zln)2hg8p`q>SK7!sP!n8m?kIzAs>RN-r=j^tL#HgPCKbVN0utjkSgS>@?b`lwZx1| zhx6f}Dx@=qDtR!Yik(!!kq^Q2pYmP03blqR7vfM=B1v79VQ{D_ky>4qVQ{D_NDS3f z83zBqsDgx1O_kwrh$=`J)l?Y{hp2+2QB9TMaEL0DJW8qzhySc9hj<%DYAO24@R(6$ zXVgzArib!jmMVUZOjD>bJZ4mRl(jPt5>E4BMwKDmMC&!f_LVeGNvUN~F&}1BIS^0P zPexj5J{(j9f|Ht~j;=hIQROX{wV?-Ts`)UZiWlA9Hss{A;g<682QdrY@FpGH2 zWJ+P}KQ=sO5s#Nr3Ts!-@R&v1)lDg^M?J&iKOo*!U3lf*B!o$?BpNNMp^1 zW>DzsIvOoJI5XLp4>QEy@_2eFlQkcj#OckpFVc7pQR6wqTl1kAs{3}HSTpaYetsw) znxVQ+Ycy-Q-gt&VGgS9IN{t6I`h1vCZRczAHlY;W4Ai+GA3>C>1`O z53^L^lM9I_IVvCs(Nwq)zo-g_x+UZSe%P81Gb-%FQ}Y#kolseS#)Tg{?ERiPLa6=&7hrAhGs99vt*k)E5?X>V0Au%<@#ELL8oI zc+9Bs1w9q1LOHnkFr!L8sel~Ze3&&_Koun7YTbJn%&2lyQ(*w31*vi&nyTa(=7>1Q zFqa1hiJy{?;fY}`4-OLlgd-pOW%P*QF^9Nn5Wf)r0de$$AGiK6oX&%psp^5#Quf{wrB@Yg&0t(6LEsfDU z_2#@d7

8Z=%bRNv8 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

q`+l3`HLTnb}023^5L&6nmNeAyy==s>uV2T!Gt5 Q87TK$X}B&EHwEJV0SDgT6951J literal 0 HcmV?d00001 diff --git a/ggfx/txt1_3.info b/ggfx/txt1_3.info new file mode 100644 index 0000000000000000000000000000000000000000..ce55f0b250422e8cd7ab52a8cae71866f7d4a85e GIT binary patch literal 460 zcmaDXz`)1=16B+o3@i-H42+Dd(k?JTRGI}Sr_9aBs`RD-C;`G40AvaiBdZh(Gm2FG ze=ulB0E;pLX?CDMBan8G|9=3;XLscR&|7=K5)Neiz4y0B8%c~p*($jzCb;tv0xj%2Lqk(kj|6QT;f%JQjy+9gh zI>`Kb5cmK81~3;$K)C-8Km{D;g9ZLM%m6E3L(t%G0`gfJSQr?)gzQEHf;@J4=<>C;#5c-g7trFH)VHl|qV`*@wi2sWtiVn{ z1+5yY{Z{+1MEk&^6fA9}^4LYx(8?pVwW6X~9tBh&8(!IDcjx{-=iZrQLz4FY_sV`U zGk0e`bMCq4o_prb*)Pw$`bwh4Coa8W+LhC;yyPMxI$6X7fT)NVOGE@Nmm5Y-rt(A>duRfOt7EnJjD@RXRaI5Ns&KffDi#i+eqFjT)>s>i zC1X`}RpD5;IUKAD22-h2b8~YtnOwPYWn*LG;>C;W>gq14uD%A>xSKrq?D|jKL8MrD z=&R}oAH_d;I{tZewH|+0VSk*#v1@;rw z@MSdaB@xYJ`NJlEG)2)g8M$aGPeU0lt~V|+aulX`j&H-kh&5g|4v`rFT+yyDFJ(L< zVu7^fiDo=5dhv~LFi%F9qPaW`4qrfG0#TxQ7Ku-cyo+AhB3oMX(rA%MgTW@Und;(D zdK6RD=#M5Tlwx{GoKk}@a(2NTMB-_RXUMdH)jr0yp|(8Jv||yL?op46k+_m>yA6yP zk`WgLlD-98RNV>{o^jSub>{tozGT{omR1riNAfO4EY%Va3eaGo1k#DlP)6WP#A0>v z5Za|vN!$^8M0TDX-!U&R4_IBIaF#6(G|Zd1pO)WA=3y5j*6=g72kJBRz@)(#!f8X9 zdh&_ocUjP52aCu^Q+S?DUL!sJIB;-LqoC3lC0gv|cgC5tMi!}=Bx4SX)DPI$BxTcr zIgshqKL)+4f6Q8OLY<^3(N1&PC?XFJgJPIAu)2it*!tSC>B{Y zA(=CPNrN%EA!V95W3|t?`u}1+auK~F6AqI=@5qcl&RAmIQs#Mq%ob=^^hn;tG!>b{ zL+N{xX=o61Hoh_Vqwtw1IgAP)g&NyamV*s>WqljgIf7({6bv??2HxvL5~i0+kE zAe7`Rfp1X^P3^%4d4`g=G$sh-y`|s>93R7w@EOIzIHT9YAiSQT(Ui9#885PdmWMH8 z*|ul0P2+Kaqazr^(Gf$Fp-f%W@(AE8$#`RpEsvfj65QL{Qw*Y=`JElLWyflX6qZEtfNqVIE96BiGZAisCt_6Y{u+7ND z>qFO4HBMeKf}5dlOe3yy_I;WR}=t`Z^( z60o|IagOMeG?%6hh`%-C$7{CJD}2;y=O!V6+6Xp>=$NLRGpwBP>IUmS|$&)b~8muYSw9vC7wx=`GTx7Bq#gh(M7$__M(*f&^r03aR`eR2s zVlFb-xU`^MifmNo8}fTUmb>HYf4ukp9oY}&y4VKu7r_vk_^Txzf-Day5Qi+tGE6aw z`JfIWiH;(0Rfp)9T1|9JZBe>B`lD1RcF}p!2R}Y*(r6boQRxtsNeYPEkos1UDjGax z#EoZ7Xmn8%C5I?QWj1u+P={$O{3Wjqmf5oX;?fvJUm9-CxP;xGP` z6giRa0PAaaH9TR|UOM^MQ;Bxwt5NecE#3Z5g^@FwN4_3-GhI63o^=;D-3Y!KHQ!8} z+y9OsP=$1~{kUw&gw_m>XXD#uf9zr#`36K=T404hSbAHe1Y!0_WLOclsaQ}r3~R&! zPO%=OpaNEouQkbcCi=X;oEjUSlY0+u5{?aM`DXN zHM>|ycvd?IABf9i@g=!gYeqi*-pt(Uk6mn|Aw!|gQQ1-DmGanDChTAvb0tqwaV>2F z*U~oT8g#e@wK9~}|Kg6pXB&-|p8bpZ4Lc4z?P3HD)KlnDCeZQ#b4vn&`ca4DrNbUC zy>G()W)~x-%-kb0@eGiKo2il$S1jqUE7uHKvf}==+o22^!S$55Y<*tlR(fT2>3fQ+ zMn|}17=?njLMfoZH+_~P4?dZ4*vtA`3uOJRJ3=ou~8IsZez5GGjyJndD(-m_6 z$1Z~MS+f1IUrGD9i`wO%Hp|3l7aht&Jmh=)*Pt9Dy8H;mJT6A?x8-5hG0)->V92;Z z%Il`4r%w3ZqKB7$XFl+Udw^iwRxTv7ZX*NOHgVV^)6aY`w5oDK(s*k278k*~94*MK z%Uh2F?~(F1mrFT()sW-c1Fvn`;v!gwrHmEHdA>4fx8xJD%Ed!u#Jq$aV~DT^mZFFO zCYLOO6j{p{@)^ipLH~a5hO3g_+`4|x?7+bMy};VrfFPT8$YP2BvWM&H;<@3uCBBjO zBo|yfAqd>a2(kf(Y+(OjkR2rtUU%KBCBD^zA50lDSC4QJWN(oeBdj$0&Vgt%6S^b zjBlN@Q_7M#Pp%p~Dqu~Yu*F66cSYEi!xiC;xwh-B3&kH@6@6$S9m;J1KEbF6V~|}V z%gWlb84SEtz$1(fVWXJnOo zmo0r&z*ItZi@1`g3iA`;WgG0xkrbzTz&MO8&ydf7%@;g)!+VpT8@zSR-m=lbFW$R# z&7Ny#F8<=ZV4QOp!@z*?9UUvA{CwmYzKSQN#cuQkft!-EeL*lb9LC0e9^?$!al?Dj zC6BBgc;G8^L1qN-uGrAb2uQdopMpCr-6`?xm5h}{!{Pi+7*6nZiYA=HIuRKjI`W4f&syH5iRT<9tJ39b;XzItW}q z_pJ_kq-|uSVMDOC95S>0$c^VdFZZktb-X~6A=psIJ2XHEb|D&wOu2D}w7((q2?*9c zhfxXkI180-hDbfYa~PSYcoV%$@dR!^e?p@3!lUO+z5dNR-uJx@qwr=a;|V-hg`{kI zVBD&K1FxacnJvKYGoHXxZeRMh^Rs(aML&F(zRD{5(P2g?fadwY#xnWw7iEUUxnlsM z;+Y{@ggzY}MJbt`ssc8b0GqE|D&=3lGkEKte^}S>$jA3?{qusFT}2|pg%1ePt z2=rI4P^1!?TG|j#n#m%$dxm@^3yTMVzH*H%X;&I^Y%-G`f-R`7gYkk$tE({shDfo~ zhrR`boi(WW;Ovk7Jo(Rqr&j+k++aOEe`@uD(p~iUd@l*vkcQ?6O!Cn9WA-L8(QNyo zRTZNb(OJGNz;SenZ;MyjR2P8PYSSIu{4-=`$M>g1-&}R(ud1o!i7mhkjedf~+R$nR zQij}JCd*dHP8MsK$>{VeBS?W%4q=Wk6+yDFaz#qACi8`4P3Bvb?3j_rzI9&lrBi<3 zYgjPp=}V`4Z{RLt($nCZk&167$$ZZ~lt_m<_dQn{x_2?14R0ZI?@AiBx|#W^DYH%E zG~cGx6Px6lYeM(dQYn0~(7kCIv-)F}u8m*}_iSfyA)#y#K3^KU}rp$&8;uLGOa+@tjVlLj^CgqH8B-TFEdF;(K!IcO^-1xD=u{VOV51fZI zd%!s>MHnAEU-SwZ(hQX==ctv5e-1`yH0uJ!wb85#UK&^Ppp=u3{?DaT<{o>0I?ML{ z``_O<>FJ2vfH-8iA%S3O$f~a=a?$L4LrX(-7JY$*TSxTr>gEVd!P(n#1ROU6curAA zA{&j}w1z7VWa*;fGfKLfr8ThGu)lQ?!i=^Qqc6%!Ph5^x%7FHRTQIO0ae|l@tH(u$ zG_05+?W1pY-Y#1<(ip%LX;Yqk_Yx@&|NEz_D#Bzya~1x< zx5XiieyvDnX!qGA^$;A(U^ruy!Mk>7)o-X6j*;_EB$U!O6u>3hFMVc<( z|7gqcjVqR~I`bt8d=Uc~;{azMO9oQrM;OQ&(3#mpXjJlr;S8i`ER1g*EE!A$155;~ zFiRIWWIwQE%LO&ZCf@zR*4L(uv3&>c-TGQA^DHpJPA*Fqm_%=oH?@SI*X`%}PFhR@ zuiq3@czjbZ5^xv;#|;AGyLJz)Id=BG<*P&6DKwtPwCyw`kQt%f8;ln*%unDj*ex=J ze$Tics90lIuuKg1o|p(j(i$M=0@g|=?mYD9Yaed-Wck!;=$HggYZ{e!bZEC9oIQiVfg; zw79}oSw`o~hJ-82s^@M$LBgyPUx?pyJ_R0_h?_&HTra2^ol20a&hQT<;z z`ucx9^6XVpzi|`MX4nP?dr_S<3jWXrdT7nE<-c)z*y8fR(Y`t++ zbj|FB);ZAGHDh)Gp$8k?NrcQI@W8e~Bb?kIre^3{UW=iKK`CudxklHn{K>mRXW3g5 zdt$~w7+nW@k^RHX8>M`>_UFElU%B&lO%pH+{>q*I1MEe1o~--HyCdz)>cJiN->_{0 zX2BizzYhf2sq!dMO>6NC`Egt>VYzB-r9l|F!aPYEZBZ@DRwDwqHYTh8XqVFNlz(0J za%A4?Qzw3JammuM`7U-6hku5Z07edfLCW&FwpF1C|Ni?^Fan_o`|bhanV@nSe|E5K z*~=sEer;97@y_wD!3VB5o@oH`DLScA+#+8`=vD?elzK!-KEk2+h5BxD~`4Op^ys zYdXpEg)KomTE!>iMPlG!T=x9LL`z(dMGSHCxBqnk#}G9-tcs@(k9oiHaI$ph!}Zl^ zjvQ*_*5sRdTTV`o=&-k~8M&n6x*c$%90Z#QQ7Q8+nMq*rm-ksr4jv@o3Fk=6*pE5& zjQt3_!Ie#!G8q6imjd6ipKC6=SI)fj+;)4y`#YX?v9MxtH&+b%13PyEx=%rKw(TcY*gJu5obUOKrg{gaQt(7{MFPVsq^&jDk*2qm$O0(jsp^_oa_rEWDM) zd@C(WZQ0)bPS%@e(YAzL9N2XWBvBE!6c%J-u4R)jlF%9hUW=m)c%G%Srls{z)8=&} z<=YJxzrU~{cVG5J7YnuK5F&Gd)X8PTGPA4A;v1f=zhqKpt&7l_4QxVE7-zT6+8&f{b^>*tq9d4wO#iqp=*^-nvCukRHW=IgCJ z{H`H9Df4eNZJFFpu{-DzKMnS{hymL(!SN;Od#LE6ODKkE2#0G~HM#K)V08;MbviN$ zugS$<56Hwze5OHp7t>TMXGr;$OtoPZ0Xu?T<`HK<#U|j8zcDV{iD$&0K(XX&$Jys` za1bhhhpH&vV5GAIJ%@RHC0_v7L%2P3!{sJ4h`>KZ#);nNJPbiiJF5Tl`{FTJufFQjzIGK;UfA-In6^99FO|x2jaWGBeRiyKv!cqP9x2p z8SU638dG&eiCm-ErIC-1eF;2Rj72sECZE6~ z64=;T*k*v6EJfr~R8gX|p<)>!Q;5Y=icA;5P};}fy(XbyAPA{&oED$#ZnR21%&RTn zZU7H?r(|NqGD8E2Hc`k$O%_+Oxu@Gcn<^kM!o;|aD{1Vi#L_LYeej%NPK-lD4`7=? z@`61jR~sE6Y2v0;cfn1&SOjy8r)ya12PgOYzqjDORhNLTF|`P@acLZh+cR-C1}XhU zGfb&9nXtG{mOyu*xb+@u04$NmLJLVRJ|&(WGXPFQ?`@j* zHt;qZ(T$+c<_hKwY~;0wCEzUyV?J<5cNON`Ulr8lv%sw_sM3b$ACVb^yh|8s zc=_Hj*#>cCDQtqc#p3T5<5}tHNVLGbXY;*5Wb-^tg8o@1w4(6ChF%nmzRn=rJr;jJ z=9r{_sZC*;Btj{OsPF@{Te33To@jvsCHdNYqaXUb4~p(7FsqJr?KZMS(|ExZ;=UsT zG8NLd+b5d3B3JFfMv((0++_H8EDXnrA0+gHG#io~0Es5r^`-homcKXA%;ze_V$r^l zCUh`qh(NVb-#8%)3$&9c1a{e2*toq}vFjVDHbz1?t-}{bB+q%OqNom0_mW z4aX%QTBN~Uhi(=hG z`h3|2C!}wTG_pTMCTOQ>$0^!jDOBtM808F$s94t;n*z0U?4domZN|F;zj@lGi{|!+kxA3&6QbKN9v&FB z{rq~EjlR(jSydsnxgGOpX}lwQgLp@p-f38HKr{C3B)|UiVz>^dpG1#65n#z8JD+c- z*6d^3W;A1JLM*|)F>>LpzPUl~`Er6M=nea(X8Oa(9-^m-uH2qD9DI0`?{e86n#H&J z76iRBSo8It7jHmR7T<{>O4~O^cD5V}wziji38s+gvPtX{BVP(vv$RyrXbo2e8=^0%ig1!ZNK-c+mcYie9{Ux8~J5QE*|JGO-Q6MkVZPqv{*1e4d zz>zaN-s9x?{$%nrI|4{)G#2;RjvU5Zj;H~2SK`3spxfvmSM1&{F+78WRk8pvcBSt@ z^y(NZKIZTd=NLx;owK_b?6K{q@8*K%+x`#La^-;R4VX|w#y@Smwn@A%$q$!}(Z}uXY>SXoH-n1pq4~N6Li2+-Q;bf;i1*6<@1Az_jyr3X^QG1r z{b5A@VMxmdrTdE9} zEZWr{Mrti@Rm=nOS98USZ|x8LggHmtE=pKYAf(TxQ`9~tVk4+DAo8KQsGL~;r%sJvrv_1r+lE`aXJq7*HDd0vX3Fp=>AL02bA#8|j6SqcV3& z+zz;{P~x;gFEq*WQp{645Pf+-=?NbouMVElGUGYQ&cLDBJF|!WH6F&KpP6eTb-rMB6`~9`o zog6&<@v^6SGslFJck%04Rqqgq!U={`@q#YDQvj(`a^&1 zvSq>Rt}7dvcQkwX z4eEf62t zNWi|J;>DfX&h*A&FrN=I4#5|ahra+8Xkq8Di4#BCkB|Jw3veAOJj-6MfZ$7NmT}zh zWwpBH!AuxBHS`ESDd_8c%25d)+Ew_JV@2Xc$ zuUT%HDc`y*(CcDYZx=NJW!0%cG{+F!O1!hCogKJ%HsoN7#*QUGz7<3OTH*7g?Rend zoj_R89+*#H+orKGqEX3!53iD?L$VL_#IWC~*A!ZqnlmMkA|S@Y-pEt?XQbRRtY%py z#*(jJgH{lY4qCN(oA*bwr5%i0sm!4m zY)4YiJj}pwCud-aR@4do0>0JRcr9@C#hr~cynQh@3T|Y`s{!#$(%ijG21El8w$%Vm zZ@?SQyxqW!!u9?fnm-9@lVo2SNN5~jCPtyhcsoWBJng^$vcI*aacof|U3m>|q^MCG zyr$*_;Nk(-)T{u~fNLVKJjbLoTc|j;{=rFa|DK9xuYYjzX}>1}ScYvs5c?x3HJJ>p zZmgbU34(R1#^5W)dK$k1OnW_zHvutijSQ6Xpp--I#ThTCocyH~IO7GClb%{Z-pmD+ zWm|!~y>*3K@xG8XY2i+>vpQta!ktuK9a?BD+?f{Dp@(@}R6D_=O|7wTB}i|9)gr!` zY-|j$7UpX_5Us_*qv7cHOQ^UOq|pxQW+G@G+{AEftD8Z)q}8BbK0DD|3DR$MB4mi0 zIkhwK4`6LkXW|1O6?H}`iN?Ydw&RQwDkqPZIOBxMNgSTaOsE{b4e@E--X`&|j4Pgo z6IbG9QW&`w?!<~s(^|L_K|*Zc$p8#JLONS&SgWx32?GY>W(TqTTQYb*8{i+*QgMRy zYTxIuTME$_tY4o4151*Ok(7#-O=kPW`o;E(_3LV-Uu?&&4;s*~tFgq2Lp)>lky0%1 zb`*?Q!Jt^=*XUFnmC~BEfh`y`3XQ=U#+J+q8jS2M)VIi|qBSp4eLZ)T-uNi*kDNm^ zGEBGgLy@>G(Fnb9_B`y5?1w>sDrXw6S@PzXPti$w<6FPNepc>jVVc?$pxO&>9*kbn z54shTp#=>a7VJz?AK1kE{kR$0mVHutP&Yy|puBAr8Pd)Y79DH+I46dMAC7%{t@std{YfD=T*(8#wEJnkTdOtr1{ zNA?gshZFFvU?@{w;d~dT>TR_@QcS-3ASPiLRxmj7twu}wBSXkTX^&qjmqKWUata7xD~Yns46mY zMR$L(CtM*c4;Ed)U4c>e^Hnjya6Tf=Vb|UA;YJ!p`C^PXZ#Visg*$n^J>W9sW?dC$ zC}m*hOK*y+;_z?1?VH5=4*%kLXbNkTPvIjkXvArY=W&1xW@fxIt^4vkxLc^G5ET`o z;+N;)UHCx=GIcogmCy?4>!ZZp7OGFRwAZE3-B##NeK+U%zWv=hm6wGe6Nfi?07sY* zB1`ybANyMPmWfflZ)E9LTfz+qbW7Wnx{F0B!i32uFM2UJuyi7HMVAB>wgE2REqk{u zB6|=jLv*P`N0rvc`$H8fLv#r@!cirNzaR8-s0?P_r@~5m=k*4$cb=bb;=vMAN0->k zQa4cmxCytCjxO!ARCK8ah@F;y55i-JE|vBcztb3Kg#l57#t>a{S^?MMM(Bbf-oh{j zvs4gTijfw1Z&YC~bXF?hiz$S^Cpckt67|~`OlJOO(=~536zM@F9 z=xYcq?RJA3c$19Jc2O^kq%3biXsLfa@^R=ZM#U<$&hppf_@C?85HQ(iMhoh2ChAMF=gK0}+;Y z{&WIKh^%Q@_d1&Qto%xp&Mdvm=3FG5D{Qh_A+uZm*Kq1qcGe{=&$hxuOq!vhZv zbRkysfTF7YtaDCI{UN-wW=l-?&rEM615qOcUH%)>byzwp5jE=Xk&L@vhrEPw`%cmU zE@9O6$I#s$5uW*V=<$J>?<$?l^@ovf^@tH!SUkhAqTcBLi;59}?tgmVg?15m|6m^; zcsYNjdOzvHsLne@5>cMwGb>J7G;1b5h(R-VwLLaHyotpgUdnMG3tjtxCF=J4v7W78 z;%t}2L6%bOg^PkZACC+x)<eQ}mz*TJ*U?jC{*-6VzzoaBK8uJ_PMTSD^jZW|?l3z`5H_J*bg}&Yx(ZQ=7 zl_pEOEH+o6uMcDqBas@jXXd8<$L!g+#UW(G;7%U62sW>8jQsoBYkzdz*ZqHsozBy< zYmNSp>EFl!p#EsP`I&AcE>fP)RhY8}KOB?T=L;P*vNmp1y$wLrWn={8hfZWh&>e9n12BJy7ddOalA6%WTQXClLHQ|56r`U zfgXo+GCE}vmgrz~DlG(23jH2?2^0hT_`EFRz7hR^>+Qp75qnyK7Zu)#;gN@N)aVW3 zsNoMQ8lI?XGm+^HLS(SGwFL{@GKuY)ST6uSUL$UpJO9%{EUqHVy@*=K9M-dTY>SPq zr_((!3jLr8B;`W{L*^~o>FW=(a+EzG@d>Xf{5; zG`z~b5!8$n8ujye*hLs;>MDWqBi+$Uo3rds@4_+d+PUq-e;=CgSKB{J`N#lgiOK z9^J{86gx>CIW@XDx9!Nh?uEVX0^go!PHaznl5cHq#fjC*-og)@_`rbVM5C_!IUH7t zdJ8{rIEZEaJaXW$TF+bfVKWzAyc+yR8nl60soOV3ER|w)cP7+?SiVf5Gxv=Vsgi&mGLjGAg)L}> z-tLV~ZqFl`(6;})7#N8-a^7%sxBP%2(G)LO^~CKMBl4-K?cV5QQ{DaWsHU#0s&01G z9#}?Uei?M+oGG(`&??^S2{x5sL~dzCdr=gK@sl@uf-NJ_B!wUs1gsdrNp1JWNL=Mp z6+0$cU3pdG8LU~=`@7M}r<#uJ39u+tUe!L)IiopzLh8Sq(NYVq(Zq3Jm4Rs`qkuLn}o=VpWx3bpT;0RCpdWv?+vG zjX$C@$6yM1KjvimI0Ya%Gf4)K#yK6*-G!X0>d+i_$A7Bhrcxa|?(ncUr&JyE&y&CU zqcLZ#C`hrY_PeQ6_Yaw%Q>uP8ZqRRLWxx29f)uOGA*5J!Q>mIMGZPLIy0P&YW)n#w zciX`>bmTVDpKk8dmaLOQb^PnMJ-#ko8!yPIS|jI4JL2R{#mT)YhidbeZ+jr0j@B3C zR8{-k+^I}M=TH^D!1@A3!_BFxum=q%OX{KXoouO8cJX@;yz$516l71G$yrpPO^`I@>NHIxG+(E)a>65w(1!lNoiE zZ54l7HvW$VnNnk%F%=zNrs~n4psiE+U2GRz$bp{h*`wJ9I)0osj&^#karrKb}hsO(*2g2`N{t zMbI0~Ow8Dr&#(LOrCy=~Tzu{i>oeruNRC-jn;<$Dvu8%9vUgH5HkxxP&h) zlXR!ds)~w=bf{pzrb5xZ5xz8rnEyj~=hvfC+(^8wsbGHxJR04Ly8m*sdtP4WWF`Im z53ZVX?y~pW3$lKqk;cSaI^0N#j*QD3D&o1U+SZaOptJ9GhYnd}{O!7N;MtQ-598uo z?h=>A4aXNB`Tp|OpY=_{w2&zem*p$Vtc>SdTNDkIvd7)e4U~!R+sBvXD---_PcW=# zaPm=ZApGBxhE5%NY1&C4dhRutS;$5A7o-#|kVXNGW7kOduz0$wX=!OFdMD5*d4*v1 z>$Eibr4dwFL9eRP7<+R3zn{H(e({|J*+LbK3Jm+46_ll+vV(3JZ_AVLcAB%_bdle8 zpwgF*iRa6piw*J`H3;LE><|{ zK7*T_w4Wbc&s-X0rZ}_@uR)nERygTC_bzqPevU=<2d}8Z7zoEHfqa^X>LoI+bt{6a zyDtP6zgQuuQL)#~2trvF(of#KQe*8iXY5J5G{&f*sqw^T^FY%<&{X+7K~v}XeC7%hxF@KTvP!AocK z{OZHpl5?*!GqK8~hly$YFT@awMu8d9SQ}|Qy^cmMcmT8VuibeO%#edN4dCpT7%DIi zMk|ibqfr+;fJRw+>@P{vMOzNw^p~*Am`&piNJO1Z5_1+wey!6^WL*5Or0__V#(cMp z6xP<%oP0_3$)Dr}HGl29GeOEh#IKkPth6FUHJBx?us?y`$hGaSCD9HVZK>K0Mq06w zjTXyl6w>p7Rwe;z8rcSPwONl1tZr4QHz6m5wJX+qVezz?ue>b8rmuashUKJDVlvH% zEMcw{(u$m{c;#iqWVyo#h@3Af@g|J5LRp=oifgV_MA8l+U=I#GHr&jbrES7P28HRx zqyMyCEV}FkA>JI`8V$o$(kLl_Je6oUA1NfyQ7HOlEF0PWv0|hUk8)IEO&CgrGLQIM z#h`_hoFl-J)R>XSQKCxViLno`K26iQMN=IwU)SOaL%_$X?onCIZI7m%`|H7m+G7s1S{8+>rY#;kz)VOk=a~Ys6MUyC2`bdgjJ>xrGqGqTk_;I6 z4G@<@jS&gype4!`VA(abzpZ2kER0>KR zD-IkSYMf@Ks*n$pQ(*u>5V1~05Xc052jNDHHPh#@)W%ZKAxI8E%wCw_Ng%k#A;{QG z5Rw~~39#fCx|I$cVc|{>GTh)3jq0SiJk-8Rr@KTqjZqD<7VJLl(HA@mBoIUD0<11l zX)Y*U^#L^f>6$E)YwktQzmUbo6!DK(5yhWn@-rQbWKT2Q0$c;NOBg-#pL4Ltf{LTj>H7;#$ z8S=*Cw_1r*owA|@EGEsSi49%ovMIh@vjUqi*yLt=3F#~x>>4N77%$Yu z7|_cYJIu-#yUaYVC%*CCYQ;!KH8aL8W}9?lf>}Z{n(QzGb}?Jp#Vn>6VG(^77LF1N z<=Z^K0=kIt(|R7b@X|du9f&D}M#}HMj4R@KC&GkGOe2V?ERyL>8Z$DG<}u=2&~gy8 zu*R}2UA$ByauA@=Fmqv2Kuo4wQhJ1VTYDrfD?LIK!%nhCQb=y4LoRKouj-V1mRMn_TQk^ve#>FKhAjPZW`J z)e*8C%cgwr>7QGC)bx|&*-TVp7tuvpiWmlT#k7z=l?R!q#@-@8}*?7mq(+V>}`596}vhl>OD1c#_b?zd=mDyCBuNuValJ3Y=$AVy;;4!zbX zhdeanhVa7szx_U5Ci!vhF2o}oM4zj;q?3lk+ixIo?Az~St<2B2Jz}9%G~)YvBb{=9 z<$FomB|jM_?W$V5e1l<@kw;z~<$)Cjo00f*u<(G#IiQe}Uflrtak=(=mF2JX$JwQG z5g<{>&SG#;2MxAp`Z(MQn)c_Lrq1ueay+Gk$?}-B8Zp9J;aYDc%)f(aD$|GX9d9vl zq+TI6biomia|EcQ^!bnuNpXxEKR+IqOh=)jg9szvWV!g~gO*?_8dZ`u!(*oKc#q%T zDz|FkD=-m_Y5c`U@RWGOLlT~95d+icdq3{n-`s}F1n+xO@SSU9f%pznz^Gr0b&gMv zi-;8MJB*j~=C#71IU-%$i^vo7*qbLj6>)MnmQ;1;a!i>>l#=$)eVb`o7rGULz7r}Q zHW2WVv4D%L4!7f~n2un-O1`KNBn47q@e6CXXRngO2Q(BlxYB2@Y2*#wmU14(y}3CC zF*i5V$1w&5PHsjtPj`++m8-EHGlBU=5+LRq zMVK8!PmqwEfw0=nK|Dm}bcR?^lhL z`n?B>AY0Bmsqz2AU1%L>IkZwWt;);@9RNZ}h(cZ1r30Hz(1EmQxQOaJ7@{vXpPX{WofqN&ub&>;`oxwZy8)X!p(26BL5bKlbLO}ERTJ35`i-IGQ> zE^RK#S8BxR?)^2?!V<|i8z2Yy0yA5&95aqp8%Y>Y<{K&8!Bzqj5v5cfoF!`U{bSbB z;{e8OHh`V7?26)F|GR1Jw39jZv5?n0L>H>FrWnpA}}AZ#!x9_TYsLNxRPG-nS z0x@XpgY9j?j5das8lJYXhm#oc9wyTD2+>JV=x>hm#caCJ`27E_d-vUy1*r?w{-Beh z&_zy-c+!U+uEzlca`A+VCvovp^9V`wb#aw&&=C92N8Z6wA?JBoViY<}avDPXHU)z~ zb|1Z&4q%fP%6M(_gc@vJJK+&}u&%7F$K4^{IdUPHhs=rZ`X;~p32s~|6(TYR+jFI; z%DT5(eHXtK*z>z?>Oh(KFRO=;In6>mq6zZ0dM^`lj&2&*=TTfgY3$P3TLd4jH%4?Wc0n))xxiT?jo z#5HI8f?>XP|I3LYdNI+%L?KB2KP)OTryy*BzP`N!UT(_W9^DPQP`u}|v)dJFQpSRq-ThR988BGa=CMWF$|fypI`1(3Fwavy&A zH}KR)-_-?dP*oK?r>NOqH?oo6#q{iom@XaUUvX5I@+h7rWCGuqH$8Fi z#(2KFhOZeGfD609B7mQ|4P|JGArrblh112loDEKUMGV8XIOtK7Y6H69(y?>%E!o6! zPl0r19oGd@t;Q_*cAa#YE;!|^qq?*zx!)GgNnie~t8~HP#ilOfK&eCwhkN8d$=LF$ zE;!y?tP6hK15bBr!ya95)H;j5bp=1qRRz~>IjT!m?%S50zjnN4x6!dCHfp3zU51mH z49txU*X*JVZMuM++j2r?m|fD0&179WqS@7!>H?|6s<_n$=>4+}>jHa_G$Gm)@)ZSI zkLr@$y>FYnE;C*j5EgChs05Lqsmt)FnH1B=C4%+Is(^^wU@j4Xq^{COj-*4-Q@7#d z?ktQV-jwPVl;3SWJ|>cQgzqmal$6`sS~qNKwdbWLiYcA>(f;upANoX>f`+V&H>5;8 zm0|wMXNf*>rY;37iCA5TWhLkbI7^taExLfC+njPk7QLK%fZuIH-X)T|@<>Q_udsB% zb=}@KYst)gw%nOT6g8jm%Oj`Us0*sN-S4^hwiJA^%>i-c^5suHxhQ_%d|gl{?a_s~ z!K{;D$KBsq$W3>|+JIb=<=4+wtY~O>yikU-oX*I{MKT37{;+_j+vGEU9EB6Q;R7+{ z4cvU>;Dz7N1soPTWp!MpU?>g=PORa31DnM^x3dmj zTwv!~I&?W8TiP}Ss~!>!Tk^~OkNv!$2WMW_1rKQzHzi8ZnNwH4eVZ=0dPm1E@4=iR zkYC|{d~JacYs+=%s=`9_c|LSTstg784AbSLmDiphl7XY5lVv#etvG(AoeS>rlU7|0 z$d}XJu*iyqN`|W}Ll;!(sL=&3dw{zNg>$1tc($hL_!rC}H{~8lVT>R8Q0?`)xQ9d| z6wyC=+QHX!!I>L}>EdY|f2L{stHj5Fe1reVb5FWN7gYJURhOJ>M#w?Pz=F!{AAY!f z`wt6F)44PE$R zNmdt^5RP&1v_m2_d=L>A6!#GG2>VZ6FyE&Oq&e2qrMNM%pMp$i8&vM`wZHwDE~v7x zLl=mwl9>hSKV+5raO2!|T~Mdxb6r3X*8QoVBe-O@;4-q<=@WtQDXelGR)NGY1=hu> zBVG)n?-p6}v2FS|B;!`uUgW0uJwdu8VCqRtoE$2CZvjwHgWogF{-3I94}U7x$PleSSp#x}4xZqgR)c8xt9# z*hbO9s@J)$pvuBdU2GY{)8~6ig~cZDhwE`xRdAuEL%KNp&JjN7ALSLn*+X>cBH?2T z_}KaaDHfP$bq`{3iaYN2yWL_uaMtDISL1lhH1#8;fWE(Ud&Ys5ye_tF`8?C=K$H8e zvA)|m#*<)O6wUlo=TKFb7;8;knB~B&5MvdKalP)j-da`MV*&;`EKa=>+F$3>rJ_+D z4+aK)Bpy_1_@}}V#Nh>h-k+OtYiXcZtKlC~UA}Ulu1ps%)UdVfiF5Q+B9A8;aHQO! zMke6D#Iz1B>mEP+np~}yk25v$7u9NCnLKElnQ2|lJTv~UVENe}hzD5#6LDwujT(}F z;Rq#bTjjyPX1^$A$$9?JJ^lt}<#YkTorsj5M=|cmnjhXcP=&9L{SezS#k;ml7tL!I zj9t+th|J}a-7kMzw>I7^;&3ZOXF~bQT~s8EtV>v!XAEGM@9{slLIB+^E^)b`Ax2TM zu;wY>+U*P=DTywaK4^dMu>yISE-yIoF(s|f3Zzw&)+PIOdwN?M>=G=k=L;O>^Z;G5 zHYM7mMS`@nx*g{3=8R%}B4YlO%#HS++S=_~nXbQw$yl;WVy1g%npxOCHdWw=y38^y za^MlXMj+NJRa;WvFuT+`Qq+0`)M&1~z4XKFAN`@*@$T_RY%c zQk-SkJ$$0<(&f59b`N*UuAo&XDP4;}*Aj)ZP7-swv_(_O_+E1N9n4&C&$vMH-pNDJKn_UvB}*wQv# z_8ZBewpenXNGK)yOQAhG)}qR%IZTM`S}QPz2i5H#uJ7)mzSg`h-2&5tfmv6s3s3A% z>15SfUm&T1He}WEd99cphcJ#N+H|?ouqtiiIWS{Et&exRz|BRvd^;E4Cv&%3BF36! zZ0L4@eQpQ&iK|(95H(#F+*K)fA&5d0XgWcq{9ak$th#(go8~WaBWbe0oAnqttpcCd zB{V7{cgvkJ8HlmZw)}@y_i4HqeWFxrE&8I!C)CxuIR)0TtG42?ME8){gBvTAcR_)d zyR==GF=pWAOt^Tm9xQW(PHwtIm2gJhhRm!Z=~i4SBPLE=pt#iq zbiq_Cj)7j8FfB88vaOE@s%6J*+QEb_u-=VDxlgy5$b(ns)7`lW@bNH1eY8Gvc_>Mq zFm>n8VIxzKm9p9M!ty8W<^BdEp&c~7wA`c1Cj_rU@v4EmIxP3Q9aL63Ocx2;kwdNs z3N+Yo)C%0)GKUTxLa8cpiJU*hmlMsk^9e z#1bz<3FO!zT|S|JW));UJS>6&K6Gp;Z^rV9z-s<&Of7!be-ad{H*l?b5a! z(gh(oODSB1lAH=`mAbuzyIo!eg37)jr;89(67;?B3lDov}75N77pL%hDYx~R3b-}d*QRY~$1ora+*Y<-NT|f~(w+4zq2+Wr&aEA6B*9Bv# z(zUfpn5pY^VP;UY?hq?x`-70p5oLQISGFN8KNAU9Hh=D|0>?K0xh@=H1F`=L)GLL1 zY*n|D7PxSUF6aYzQ=geB;mt0f_Wp5Q;C(nMH@iT1!Jp^?id$7TomSx3-Z)m5%uV6< z?oY`5^ePMQ+yck8^&?%xip;-$h_u_v&iQ`W?bin8PSM4_z9swps4Kgw0)p@E)5VpY zihY^Yr|F`Jg~e!&84W(J%k0bNymxhr+%H~*fs;>~!@8otfz}Ik5sBQhE5ImFzj`}7 zwe9y7NG-lz7yH_0JFg3MNv$A$ZZ^NA3rkH+2RaL)=VtYrx^TmW^CUfHtlPW&MzJnG zxT*5!gRSy_NSp=Zc1BTwd+WLx@SmP-z}g8>kF)qiwxE-`_Rs#7%zi(>9N&P>6+9v_ zT~EuEo3eanb&)Pg=dvucnoeErT@gI?w{6UaowlPzp>Ese&dh{d{Qt_je$b|ZFn-rG zyPkQ)%Te1%LuKNRQKz}+|li&kMTuk4iT0|u2}F#G+%l2w1b)B)p6 zS=BS*b*M6fq%N)^E6Q6x!GJZWYonlYMeHF4KR6EQDdYSNAWu@&L{?~$jh%EA-Y@75JVsyKNdBL4#NHJQ>d zH!SXnM8u8UGEtW6S&Ye~Z(mq0H+}sWH_M!g$#fO&W>`S?==X_agYgqJ@5r2GOo1_) zD!3g|>`9x%i345;H=-FrW63JzQ^&n!0@vHj00Y13DCN@>+o_XCdIuc!0%R2m}V`jv@#vpd9gzqzZ4;bWMSj@N&pre@a@EP=8a->n28g zV(Szmg~HYVt|80{Q?RUaDF$`0wXs9GS+TGk;VgQ4q-ukPKV7^YV6rf28!SV{e2V_c3V{Z11Eat(*OVf literal 0 HcmV?d00001 diff --git a/ggfx/txt1_z b/ggfx/txt1_z new file mode 100644 index 0000000000000000000000000000000000000000..4e2b67e41ead55fa721d811890efc4312b7631d9 GIT binary patch literal 11022 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 LHx>B*p#c0RJ;u1u literal 0 HcmV?d00001 diff --git a/ggfx/txt1_z.info b/ggfx/txt1_z.info new file mode 100644 index 0000000000000000000000000000000000000000..b2c717a671da181df98f102fe2a3f354896a34c2 GIT binary patch literal 460 zcmaDXz`)1=16B+o3@i-H42+Dd+9fbSRGI}SXKW3`G7Ufp5XJx?Q{%r0V~J zK|=yqlo3d?0|gp^w1fQr13*601E36$W=>#Y-~iIxKiC=KfHdPD=7#x=Ky`fVhyFio zNZ?)1`at|=LxQ4y^MP<6t@>YHNe z=GTL`|Nl3Dxj+KK{eJ)|;4mL7@XuieSOFV?28R=n&(grczyPK>7!-iCJP!|J0+6=< zC*KPa|Np=K{tGsT*emvI0w TpPQ$TYe-~(tF5PxlP?1RS+}NE literal 0 HcmV?d00001 diff --git a/ggfx/txt3_1 b/ggfx/txt3_1 new file mode 100644 index 0000000000000000000000000000000000000000..4d788e7360dca11557cbbae8f53c107d10890e24 GIT binary patch literal 49046 zcmb@v34Bvk_6L4nmL_e1w9wMBnNZYV0V#q5jL@Vd2qH+4mTiERQ2`O8F6>R;OF$N7 zplpgG($W!ypcH=tf+9^?s(_#^NJT+Nv0z!-lrGucd*^@dOHzt5%>4hKzt=-vn@e)e zJ@=k_&i8xY7t@^Nm0b8BWX!dS;izT%b1s) zwl6O$DJ>~0JB`ar{hax+tAdmz0%cWNjlq^FM#hAKJ!mUbUD2?0Xt2&pFI98sMlDmzjA zo2Wh^st<_j9in21>J6frMO1$ysso z`Dx^>;UxP>G9{510S)*HARmAQ$OJF~=l}>*k*nX4@&n{RKFNQJyfvR>Pa#u`*#G(^ z_r(g=>7&<=9lZRN?fky&KYq0N)CX(6$>WMwF8m_rm7+IZ*!9Yk9W$Q)=j2hF(uTb= z@~IVu0l9-8U(~N>cJCf9KiX}EHhxN%nDMbuqodmnZxfyzuKJ5o(N`|($uQmNto{G> zKcKdt&|##Fn9|b5<4>;=S?lj%W)mW<8X1`)EgHITP+%lV*FewK*W?NOedrTt-`4-# z=jUP1KQ{uqs0oR%5r)zH;pet@e-3=m1AbONF^;J2zR&bTJ!QjE#?a4K5LpyS9c!9Q z$l)BXAg|_#Q6%wii1A(5cvM~2{7R;%sN5n;CGpPI{>Gx$?XZovyt%Lj-dwn!3?Woj zkQhn4)+m7^1;j{}i9@o56Ob*uAp${BErU9s;sv7025uiclMrm;36^cJ7ULwcQ zqPl39)b;3w_0UE~2o*(8ej&7ZZ^){@n<0`;F>dkcr5!l=(hi3r7R;xzE8-clR57XTDLdLbw>KY)v<+o*@2mP3d_#8C~1OhKe!#eoIc&xFH) zHL9+aZ@+wc@b=5%tn<%Psh#zmBwiMpx?vcw-@NH@3+(U91=f|>R79mJ^Qt5`YPZw^ ziBxD@0~_+aY(qZvI|+)+4ⅆ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

aGRw-6G^Kn7P7;AP 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 Y{J1BCf&Ht12w6YPx# literal 0 HcmV?d00001 diff --git a/ggfx/txt3_3 b/ggfx/txt3_3 new file mode 100644 index 0000000000000000000000000000000000000000..e7b93003305a49d6f9d12b82a9fb8cb96612d683 GIT binary patch literal 47136 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

%D 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 literal 0 HcmV?d00001 diff --git a/ggfx/txt3_4 b/ggfx/txt3_4 new file mode 100644 index 0000000000000000000000000000000000000000..5738b3f1f1fdcd27d9e04688943eb1e07a3c8e90 GIT binary patch literal 14418 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 J`TvRq{tt3xuQ>n! literal 0 HcmV?d00001 diff --git a/ggfx/txt4_2 b/ggfx/txt4_2 new file mode 100644 index 0000000000000000000000000000000000000000..c3d676cd95ffeac6632cb1c9caee567100545233 GIT binary patch literal 38142 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 p=5N2>ckkyVEiDF3PfC;`G40Avai17mmtGm2FG ze=ulB0E;pLX?CDMBan8G|9=3;XLscR&|7=K5)Neiz4y0B8%c~p*($jzCb;tv0xj%2Lqk(kj|6QT;f%JQjy+9gh zI>`Kb5cmK81~3;$K)C-8Km{D;g9ZLM%m6E3L(t%G0`gfJSQr?HQ0 cD;F>e!x%oZ>&rwl}2JtAZ7z8B4iUGJRu7R!G=ac5(qI6a+u$AIGrytrWYloY%&-Z=#1%x z6eBSvkOTuUq$H#`tPVo{`~TRKls5<=9})%r{_{U(9wC$k)=ndo)T5t2Tm0pZU_zj^ ztB$t)-~ax9@R-+M9fwUc__W1@VYL6nYLunx^n8H`*N zW0EJ*`>UvKMo$|179nd!dO;~NOuLUL<9VJHf#^Lz1pLwahzArBZ1aKQ0B~NcZN(oS zaRVcT_<*V8?t_oGfT(>ytPS}0bt2zQDdF8XvwXKdKckic!QzE<`9t)^B7-;PS*{U3 zNN2>{_F2o;rTAS0^@Sj{YlLOR@_P6JNj06g?VYSGL6@r7hzTR?3Gp!H75 zI!JU8sGp0^z_x-~@L%!CVnl*s2!4RD_(US*90kkt4p=6twPq4_m?$0Azflal2*G&A zNz3$Yh*rusmfX?o-8eDY#MzNDa+GUbjsf7(!#S-UHKfP;x@2}P6@FYY=#ib)&%r_E z#buJS)=cuOHqdO0+^Vfq^h|gm+-Hmgr(*!_B z%x+K&m;bsXi+8kyLVG+U6l(El3jsPa09s@QjvlPnBA(YG1FWa|!TRf@w<55YSrMqx zhwdZM(d1r&OUBA6b@p2l1UajI5A1bjbfEHmnSmD>csmRk4N;w{5(^;IRe~F-`e6Gz z;I-jjKl@ONw8{A@tmAD5sOy)+RQT#aK z68rdk^WSzU-`pz7_`;AM;TU+ui%)!W{79caMqK#DN8+YCkNKuME1V8x)&1=c%v!sQ zFWxV&CuhncQQJQ@RevsjbVpEigRxwJLngSBVsFVp}D>( z!hcRwdeY2^vlgH!`*4_Pv>>wJ=%O+Pu*=U-D(A5hFQK6#6%Be04GH^c*i_HcucY-} zzgNZ@GGm3s3s6%mTJ>f^)GShQf|+qb+p6<7JQud4_35!&#!hg0Kz)lfj}kz<4)tC%T*OWvKpC2buSJ^F z28E~PQBX$x5&6aF@LIHrHwahO4r)(qS!D=hrTGc5;IxCN1OW+owAgvzz$>Vk2r}0b zLHfY3d+h3Wtozo3nPR>9KX#kf3Gh?jt+wWmn8yzzp*mQ_)WHL;%!95WHZ31miW}HE zaQQ&P-FL1Exe9iZ%*cg|+Q}sXwFN+)AuM8o8VquR_;^-(ytEZnjh%OfrCJlmV1Id| z;m$aSw#cl42M_lI57xqS52Js7KYI8fXpr&#ovhOn%)*ah+cR4}8FGI=+O#X`=R8-G z4}P-qTP`rpy|A5P*xqh&<+-3;@YMhO#f_-BQ_u@I!NobDot#hL3@RzK2hu|9pxzuy zFV~TEd{((HR-n|FGkSE!F3QZegSyIISdIG9J7?EhoV}!km*)Qde*L?l+%byvqriE$ z9-J^r4_{l=9e@r!&K~h`ZG1$nWPVAdG#lPka$6~`k9in!w{JoZPoIaT+0B_f-7(nI z5#rT5LL}z$kFIB*)PH%Df0<&JvQ0qq)cVR>)2Bx@1P6}sD@_j#Q6N*3vRIK7V>y}H z(4RG#LUc)|=H)CM%jlKh4Uu)LsdYsp2 zl*Es1j((Afl!2o4ZBuJaj@CVwQtNkJ?dS)Ym+f`m4=r~dg<6V5E2LQf{*d%74MTfR z{V2-nBMewjlURF3FV5@9y2enfuz=nLf#2($cGpmo%v0Dk^WPb}-jGK9uD*KF{{AVb zrZ}}i*j0n&j0)l6yd#C3S1VBX>h+(Im)4hnS*Myj#Gp~aC5rd2ny2b;O${kMy!!KI zR&wrGg-x@RwQwB6h0EX`9Pt?(Whp2UVl(Zd}C_RrV*bcaxyM1ZnA-AhRy!qfc3m5txZvk;wIOorbg7h z&Xnyp2B#>V%je&rI5qWm^>s*l*_k=n`hbID0jX3idQ^)ZnYHh0kH4I8lt=83WF!dG z4-=C@ak`R6gI4d-J7iXNoy2LJSZ%?O$c0v}1;8IMLAy|0t1ySM6*8uE{vY)Si4*Pk z0WS#&%(>k8X<+&W{n1jRmxMQ6DHGZJb;pSMF%D*1MRZ;vF6MGuxVOfEdcrUy&~ZZ$ z`)IpZgfb#a3{*Fw3nV@3XQ4nATas`8u_ZZ8Bs24Mx;zD8%P5|4+h0%1tazx|aN9?S zQX)Df2|Vqqw-_`ME1WjUb>Xfd*Fiiu*`id|TcmQcNQfwbP6Q-WXRzCu3M2#|c4GY0 z8N<0oWOR{=A$kW%kV&D<=XQ}|kW^F5ht{~5b)kdi>tmxDvN$A%PR(~VmZ;4d-C3ap0zENmvnvfR)L^XdCUGkEUec#* zofw>Zysj`hFogw*Ye)O*v3x<7nSVZcG};u=Tc2O4zjNT??1Rw>dB0xWmPWBv(Q#du zoUJ?dEs1T~nvt2V@R43%)|cg&qZ!Y;msG|%&!_Q(Vsu%J5(HPIq2q>-N)XTup_l#1 zl%V9Jd+o&@^~EalTmrH~SLWi(==|I}M(ML%Nn;JCdI=PZYJWYJ*&Cjodn8ef%v|Hl zY{IzOUY9?4OO>qXc63Jp#a4A_;3T45{qA7bOKgQCrqiZso+Vmd(Z{D6t>k}f5N;SL zR=S)m0!Da+pw9Q^R6pEU&oqB?@;8{v=1XO-Jnn}?@9mPaX&hjf2Ou$sdEZan%9jlx!30;p+F zjjG#)6Pk-{CF;+Ac;@qe1X&43amxmOJuPc;jVoF2*#&_zN}#M@-oi zM+$R(;8msd)Z`v~0>zVuVK3P+kjVsxy-aXU9wzs(P;p}{ZpBi|^=v28{ zpw!xqe2Gp~?p{sz2hky)8d76=J*Su2bt8&p99QD6r)AaMxCe11l$v~rFlR4C$4je^ zo#kcBl-T|mJ8}1@vZ1=Xa zye4zXpVTTzw%$+8;(bKTgf3HWUVb1U@|D`(FQtcWGg8de`|D|W*QFoC)uTLyBXL#4R zUEQ|u>{|ntGkvd{BhUR7f1F=T@rn_0{a#w;u%fU6gM>KJwy^B2x&;hei;7i!ss;WT z8AlVcxh%-aN0GK=T8C*tG={t6u{`r`E7jh-yWDPvnkO<=w}CadbuLs8@*jux10KC2 zKo5zP^f+3j0xyq)6lW5|n9(r#aB#Ryj|NBKh244I9Jfe{tLH+qf3}-BKc3N5kLB^l zzK*ucK%!X1e{=lSZ+CwCCFc~;mcJ}xOPKb;W`5c6YDM9NA2XYGSWr1}+VijRZ@C!B z_vFHjEbCyoH53ztOOtc*_Bo|pdp_;vbi_Uq>KKme4YkAo6t>{VdT(d?!c`?Vxb-sjUA%N-Dc1YWU#h;a1xut*Ay@sPs5^W9 zi@Y-JYh$&mMVd+>B%!r9gX0w8W<&6|;6e3q2Rx_)k zLTet_9&gYf+du~kYmu7-%5|Tc(JVC-L7PAm0&2X7@iGmj&~twX7GVasNNCbhMG$XD zAS}gjG()b3qaQ+z-O0gGl>bU<+H4;IF6U8NG{BV&k~oC1(!~0RoP| zgmtxV@LGtcSScizl=pkw!W8W;IaBq3Qwly3mP`^!9%jYBd%2sbM1n{eV?bz3{N<`a zN=qiA8lrd+gEGkrLHIO)3uk;9v`@){YyeJ;>LO@y5H6SLcvIU#?x>SFN8@3N9pJB* z%iAXrBf;w_WXYRMOR6J;6n4(zwL>;h?C5w*rwq`QwHD!Zn+-7rXa*c-c~a0693b7b z+W{I2Db^CtBxtRWv}t(#cwb2?hp^HCnV%M58@g}iMxQQbQe6w22C-OOuUX<=W3r|W zpxB3@+oRH`g^+!30N3F=pb<_wWmUP-9CsT)|1A@i-%rum`Tcy|ptYs0yz-?Yx&p{2r<#&KrzNa-4~y5{xLQbWsW(>S<>>gweROu@{YQq*s+-aKst zYaBtbIwd+mLF-fS`kV6+W7B9AlR~g5_~vak-vcnqn52|ldNJqwfjutbb*Ftb!KP6* zfD&-yKoyOG;jSQ&kz&@o zZazJNGs@V#v0g*#U0S?8zI%{+BQ~{avb3&Vn9T8YMmXNZ;W?gSmv)#pvG3uL!#}oa zmVxxSON#?u?<{brF%JdOduyzW1U+S}c37O{t&{32ym*~w>eUXJt+NBXc8nxR?H_Nb z4-6ojAA7s%v6L#>=Aui*$uU5AwvHNjU-L)Sf5hN&gJR`be?7rcp>-fe3YgJXT4_^B zh;}`L6wXmhlv_oYZm?cIgs2!+Hszj@r7!q))ZcyRU6@z^B7t!J~9Kbm*3ESb-Hyv|9UxP}?NoFr$ENH7C zl;sCJ{zjHc_j%<^$(ZxT@m zK3wS&Obmv&CIjU15)vE2Vv5v_e!C1w;)+J@FN_z@ifhBjeTQnTv0N~>vi4-Rr1NlPp z-;H6$)%?AkZxtmQv8kHZnuClX2LaeLxT;4rQmi!#Nef2(r*zS6HQzfsX{r`oaI}ka zu$@9XY7;Y^Jk=(}4%USUa3Aa9aFWCtS*NPnDT(%W8|u^$LvS%z?8k{8*H+Q`Y*p>p zx%CEHA`&=f_+IstYR;Pg_AL%oJj_q0c(!V6(X)x+s(`o88P?62Q#l*WFivGvi`sTI zDwQ1xZ5%ZEu~?c`PRn1q7ot|v%E4@cNIzD31s5xZ_|ot? zAy_A~UGBLR#m$^K6iqBa9aKcVUrzD#sO8>UCQh23w%oJk>{;FPC=9FSyMqIVev;;c z7?V?l6RixV1ul0fO+zJR+I+Xt;x$hT#Fj6(l%U0U5&CLb7m@`TD}j#_XaCN)_PpTA zzB4X~#w&wbT8?}O^ih%2JFDV+nasRj^=w1;Q=`Ve zPw$&m+(;6bc${%63Pju=V`V(#jIp7S7|7t2S;eX|V+=#i_;7}AXpo3H9@!38Lx==` zP&b&I7#`uZuvcf01~<=`24g4yQBgQ&Rw|JzW?C#@o`P6eg}&1Rfl*e>UR0s}k*9iC z?(V6zArhgvkZ3dES||?B)#h+c3xwyYhcP2!`0!lhsS&xE1)#x+u3)d&s{%+O#o@VR zQ?7=jhxgZr@nie9)28TRa*-!miNvX)UINC9SQk!CWE42n6%)J8-Fm051?dQWU_+>_CJ7LL7k0CH4>GXB;BDnfDGzif*aV*CkOU_ zY(epuu<+Vk+X6=ISW7#TaC>et_Zwysvh^?!U#x2?{nP^X6e2J|&bRF5zm zP$+W;u})1sn^@(v+gtu==-(EYUP0q4%WVrrLoVc+i6wIFijbgiX<6~oz(NYUtiF#1T zxX;4wwAA!?Eh=gJ=C$4XEW}}@qg4dEkr7Z;(5(kgdURX0M%vNMDIM3bN5c+Z-a>C_ zH#awP&_G$Xp}zp0Q2ekNcYW*tO?G>kIWS%Mu$gv$$o%W$w@&zB{0&^M7?5e7NEt>v za5k3CKi2S{`PT-X8#8cx1m5<(rLnY8+uRRLD9#njf+~&TMyUZBN*jY3bMM!T54U!o zk6Y>?autKZq+G8TBJn!Yko4GiwRvl2z=j4mn)L8;LlU-&B2meak`4_@IP1e@r3|CW zEXRODt8I&7%-y1u+si0Xb+~yHQJ6=m&`^z-Pwr{pDNZCcUMRRz<~tc~p3O6Z5^1{D z4nNF!(Sz=zKFy^E&}UHW6L8WyR{x^NO3iB{(>Lb`J`#XcASL7WK3gk_5J`c^4H!Eh zOaDT@a}qqwNw0_;62&74gek=(9aQAWL@8AAw@=m-)Pm(C!Cs=N|c1e9ti z9#lY`%8Z^6|e^(NfYgB3!oMKnZ5dYNAr87>pcw7II%weEYhi z@2v;Unc#HH(2S_o^`+k5p~sPgZqz@vdUT^FKPVpF+HdlZZ^p+s^he9h5+ki-GK75-)Rp|^x*)E8BC;UT@{6owq zz&8}1a%gQi)m)R{(B8dpY0T9`xv34Rm%u3+2g{?1%%xaxEYdYD=BK2*smYR zsUsQ<5Bd5>nUW`djA_Kkl8*g$!O=Upt?-Ny*Dz=YL|IMre4l22sb2$UDb}yaY4eqG zhb*P^%#+TjUqkP^*aw#HzG(KBCiEy2o4|)9lv=>CFj!lef*4mD?U>`t6}$OM9Es0T z46rg(k<7ngNCsT@*h{D#Fhqm11+KIIx9o;?kmLQKH0N6+5M1ZbmivuXvGNkpXqb9` zN%k+6G1<>Kla_roLnu}7KjWYy`;o!xTSlc$y1$~{Uvj70WXzq$7&yn`1L5^ewg97z zJ&jF$AK?Z^q}a<}!jw=M!xUaqwmMy5O!j5|0ni7gJR+;;BHLAV!x5I_dtupEX+kLp z8RXCoG|MAQ#T+RLa8yZMr@07aAO4uOd zN&$WDTmf!>bEz*$A2GZVn|hMM^)BsTrmKu6xiXG75=F1idD7p*-T_cI#QVs75`I$h ztxjjT+eA6SrH}E`!nA^A@T6ASjNy$<>ffR2M?wkR;Y^>a1Geh6(W-CSWK$OC5cLXnPL((VyxMit{@Sv5O8sY zd=%B8%7go^^auA(%Y~%BeU%M$Bw(0Jzn+&B2QD=;?oKbsU+OP#$0^odz#W-0wl*sZ zF2%4{(k&P0PLfKpcx@6!JXl&;P5`;Y+_@L`e|swbesB|T*&lN&hYU*n^1dIQX zCLP$O@4&0LKE#=!n|Y#xu;}bC3$)E+lBP7W9rUP!7yU;Ndzz5g;^IRDYiKQfbTZoQ zN2CRs@UN&)bGzFaYF9Q8QR2z8^sPpo3+X=2V;z1er)O(WkWQ|^YU0F2tGx+N!u7#4EZ{PIU-L=N z(?L=s3Y@eJ%sDJD?HwJofejmo2L04-u4HX1jXk`FC&Bf11xWn_Z;yx3@YD%r<*Z*1 zQ48K^GNHKmAc^)%W>f}|FscX?J@`-24^VWKEZS}YDbW1+j z@8f0B*u&sfJidKKS*g~i6!REX5WoTgHt>tKV9wm>tJILBF)h&yuFN9L(O^yIATQ7V z==ju{@a{NO6EhkACxs@YaI6UfTnYME<3Un1et7Hckv>BZ-%m;EAAc<~Eu$zir*xxC z!eqgvdCBmBdvD!HtLN}6XMF3vE)r&{bZu_Rc|r!posLjk#YY(He^QLTQS@jHABt*c zx)hHmB{|GPOW4hNn&&rb0RpO}r6<`X=3UYR7re%uR!r+CQojFtRR>yN-wKQ}LGn!F z?vHEhU|WR)DA4q|xA0+S)jar2ZFoM7QWT@fmp?Qp?!pzg>UqkL&OTRbn@r```#tmVyqbA^o zmaLwFtdRi{9+;BmsBmrX{T?-v`1}ronRiaJ?Qy>U)vq0>SL_=()bQd8M)k5a4A={E zU2sY(wt=>-!XXnaq{|Vcp;w??U~DwTPXo_xigMR@;W<=C@cLY7&%bN=K8o^9YwL^` zb<4MVx;3V)rc$If(S<}hVn$_vWaUPPU{(UF(Mr$NYF$+xd0+c<>H-Js2sBeWRY9Koo)`x^>vp~4+_+GF);?RY!4oGuMvU4U_9-}v zS29+@?G*wnY4)?AZs^*JBGE+=9~v_wp#JHjS@5!(V8?WkktXGX)LpT*``56Vcsgpm zru-6!nEx+NWbqd`9B~bY$4nur$+uQ7LLPh<`p(w-D-$$zcfNk7?vu@eJfaVytl{04 zT9t%r2v}chcjgbXLiHO0EPT~ZrV<;RZxV?n>imjWLb7Y3{5nA|ju}N@?2j}v7+I>A zo8c#OV~ZlfOj^$vGUOT=k?xu$zT+-z*)Chb zRcv7YM^nq#JX}G(jY~-w>2ux=5u6`AC6gi8fYI&5{^=f!`(;6wUjJXkAft{9WaRwT z-&gKx96%af`^1;TKIDZycx;Wmk*eR*{!-1lE2HGT^6W#8;AAyeaeeitboNd-@P>bqm-(~4eeQ_u8RE7lF2e+?!cd}E*NTfigWDzQ>=%xp+| z%dsG&GF-cP#{1Q-z9oxoGHZ!N*2UA}edAeZ-|bkyN#WX$9g$C{9g`2G(-uU+#b)X^ z7#Qh7Uey-zOp9Yh7bg?7Ae{4#q1V6LMD10)I~c*E1M$CCcL7MxQH%uP%82>eD>^nRs4-9wSPiodQ zP6{0y=KcL}u(2i8b8c^1ap3`vv+?f_Ea-s)&?dbLZXqkod8s>urj*Uy)~pRaI(f4_ zGGg4RR4OuX%Qpa_gIPSEZDmrvjNJcYFb@G5y%b^KIQwyEEf^y(`y-J4q(APU;=J2b%!HE}Y`o z2i&=SFTJ?u-H!*587~(xOP)d}g{0zeS{$(NBP3-u^qcb2-o}p!Y*Qr;4m-hm-Y;Qk$bCu)dpCbyzSS{||GsptRr z^!TkAGAXXDss$v`JtbZ7T@^$a2lZ3URt!{5>|LaMcD_uC;JBoxcytdMjU#H+F^ZSP zD;HSbxPkaoK2X_PaOLVHx`-&DEY_9pYyS(O`+yX*u#RfUSJe(~LDCc%@eDLKw;riwCqf zH3==+P~96+nTB<%41PWqFMz>Av~kX#!yU8i*1ypC13Eb=159+dx#HXLR#G>WBF^DW z662Nn6^|&QLl&p)C!YG<#><(5iyDgeOOYRK`5ZkjQnPt$gz-1=Ro% zC>mPkzx_g($&A{; ztu_C2M&DZzaO_AvmTG6k8}8RIuGV{S5HVwkUO3pCdEHmHEBg(}-7;wd5(3-FPAP{2 zE9wTMlNhxQaOuyf>$V2;*6AYVg~^1pz_wa&C`Pp5a(b7|IskXp)YZze!3k@XJ)J?W~kEQdXEp0C8(gX#p$N<~W?l3{>fdWo8y&Poz;FRS_ifZ?9Z=h#j%97n?svgG?5|E!IPhiryUjOm69G*NH~ytSO6r}!WOoOUddUe ziR(}qF!0Chy~Li#08FU&Frd{mw>grLfGF zA@4l*M2hY6ORL{`=5w2=T3MuD5MD3GlP>8$BRMII^Ec6NsmzKEx!^Lb3MM@x2G8-2 z!mynAh4APudOOCoPFH%ehOJc@KBvTDBsOapFw3PZ{c%A!8ZJ7}PARF$Bw?V+wcc*( zg#7)nS&?PHtKYkbTC|^Tl;n_RMn^?z)=y_2O4?{*!y)oB&?@--pSMifJ`!>xyZP!c{lO*HP){ zEA$-u4ETokrNN{Xrxzb#o++2~D)$>Gvl{U%JV^{O9OaGLF;-l@oO}Zt5#QFZM z(dG^AIaXC96VtQOaK$t5DPv51CFEW@ec{H;V(vM&>OOeWP-Pe@V`Y-hO7)Ugklp9VWp&%-QmZ_ zjLb8Zr>EjzRGM)Y+L4=yO{vx%k;B~HPQpgwV((8Aqy> zLdJq{{6wJ70#a|^F{IXx)SU2Io*GkJd24rle;wZ zBXk?yrxKErHHJKu0V52V+EaW4j6Og<+2G7ui(P2p2n5dK6LTiJf{m&V-iE#IGmvCN6<{mrRwu49(? zX-WSk??_WhxtjG)fAx*xqdb7Tr;LVKt99B6iQ$#zUWMZuhIIb4P|Gz_Oto+dsaUv)q|0&{w;VOQO-bDg6`xPU?u|=|BAG5-R}KgWJq9TI8;wiXGL+dEJfSr> zLrQ~1Z+P+8b8@0-^ICUe9;wr$GwZ3g^p1WUxOV9=FxhZObt6Sl>a>2iRBg|NYRm{N zrV7I?{4Qqcgao3_N?$04-+n5P6gplD=D?!1#%6}koMQ3r{a~`R;mBmXD>nx%^CIfZ z4w$)gr?rj_%;-!XJ*n58*(r*(n^R~{V#i4@aOi>W3ShT*T9P*7%i7tWM9+G10ki%H z&PaO40Q6q%S~QtHMxrwWgm+jsuT_^Uu~lC!fyH#{`+vAePtW6OgtMTwl=TGji$-5Y z^RcGPPC@7&@%L$KUV9Jk3cu!{yf(>2lI|1sgpeKA`-A7F-pxO`Ct`f`n%8iZt#RO+ zgpPC;9R+mv*=w`E$ot}tyg!)ZvqIML!$IzWW9&(cd)gXJE5(ato7d)FRaj?* zX1Lc6E5ztxfqF4G>a>^^?hzW9o}+yB;jLT4pY-Xg+YYN2|LXYD_@5-?S!4yvEwC;% z4V1VoKbFyvQlS|j(|5wT=cDP(Yp<+8R*QE^+&x^ci3JcC!p;2zQ8E(oG_k8k`|ZZnT_%t);;ZMo$IdPsMLE) zN;&({QIh1Vtl@B4mQq3i5`v?x{o9R-bypH7FN0FGu@eJBmufBkTzlV`TrfNPyPaPkBz3f^K z7E)fpVcA7&ASQ~jD}8&ea~uAs2GzQOuYEC!*UgQ5%H;m&VSnj)Q zxc{wJ@_u9{vlX0uZqZnP{*kxCp1(Kl{H<;6M6+ndL1Q^lE>{`R;<#Fya5@v<_bp?6m@&t+~gYw|Uio zx8{H_=W}y;!@r#FJzrq@Ru6@jq51D1p?zT{nS%jSUjkl{~uzSxro*%zVo5R;+=Q|5pwX_qta3%avejn^+J&rX7G91ljW#;47 zrSq38i92xpIwiFQpgAiRaJ`A!uh7c1F#vppH8z9GEI94MyU3)J$JtySlO$n$D5aF3 zuieD2$r`OdpWJ2cU958MjdPl3JjN=9M$bCMp4q8*`s{l6?)kuP5l}I=Crr=%c6E<7S zL~>dgJQa=>FTMkA`yT>_r!;ks8C6*Tu?801g&uXq`B~i~`s~IK>u=hha&^DyD@3(z zu&#g7SIe@;4_0^oE^q3DUvjCeV^P*@u9sw2ut>*Rm2q`MY*x&aa*frPTad>{lre*g z1cy}0`OHX1Z|B-B)D~<>vlGs4Wk8VWq{Ce;4$|`jQ^#xe8>j# z!kNz4C&ogkf&f2cW#7h0CvK2|uay-s;{x$U`W0_(uNcIAQF={9ciLUt_1s=db9c^# zxb%c{hA;a!T5nDn=iqkZTb_7uSf@sdZqCbF!h(Ti%|yhvvDMN5_(Qk~X)Y43q)g1j zVm7m&Bxqx_yHGL91`Rm(-q)W^3cToR$hVFfdGP(To0*=UW}{CVmWOZTQ0r+n-S)5^ z!S%8fm8}<5`!`3;pV@GSL~+o9mfM0%a<4#rCN96H;5R*VQ)1Zr_1evk33w0$uJCxc z3cJZYfcyQJ4PM>vCgFh}I_*o1#BL@}afCGg$%T8tRI}{NGd~BE+*#QMrr3X^7S^w5 z$tUyg&2N8s+rh2K1?H4AFYVQyhkFrcFV6&f6s%7ckWkc)oD`dG?URC1g4XmRXnqjc9Vl`h64B(a=Ge* zRxQu(YhHY>M+%z;!Uj&lCc&-@uyEiRV`}Hoe#1nbpT2P8%^oQdW+t+6{{EAYcqSdU z@^wm%I|^|5VF_c#Q=(mzRDhET?&#ek8qQU6EosR;=_)2wantt$<>6;}9j=&sA?Q0W z+TomVowZx`;84V)W;(n>(8!0IG=wt~b_F4q=!C@rs=_m-!GoO@_Oz&)JE<0N5MISG$UFcv5Z;OJhl8;`fD#XyW*^ysfO4~c$>iMzm^RK1)xWtLY6 z-&wqA(1j!4NOlj^}5L+I3>;5{Ho~a*{yw zgh4KjD#=?{lYp;(=twTW-lXiG!0X7sJp$|@B%Q@V3$hw*@Zzy6LZ)%jG(1?l2_Mtg zMm+RkLFH`m0v%x4KB!MB95^TDVw+De*@kQ!_x;dY(1K?V7XKJF)n}2pj_!7WgyHN#MU#9?w<%`T!$Xv@(2Nu&FCq>)?abnNdFd^jmyz{HMy zqaJR|T!deEq9XWMxEw_p?&(m*Wd)a-{Y~<%{tcBok5~c2i?EkV*7?H&XZd=RQeSajb+%P&4~9{tMVQBcO7>V+>-;A%^UFMmH-*b+g=l$*uE(fP#<*g`DF z@iM6%x1u-?gf%P(AC6rRnaXFUz8Qs=IVDJE%h8Pz-h&*p4w(aH0XUI*Kg>hPXMoUK zN*45%02R2Wg=c(c9;j0Uv}A7GHrbnggEh3Dqg~uR=1yf1I>fp0>55B02d4XyFa>N@Dt#BCWx|xW<0BekK$*l-cP^rTW=2>9N>0pGfCOaZ_UHQm1eRmal~*lnx%z#V&GnH z>q*RiW#Z(J6tfHGDd4#Gh623<$_X%{9BV$x5n1TIxm;u)$r0(7nBm5V|B2MwC*^(S zdZi`V-KtdtM(;edS~*31jSn!stF)qZG#<`7SUX#)(YXCGU5+ z%h23KwByL$#@YWWVctiHx@ZkP9|=sHTB5bRt4PG>W1UwrykKjf61BEYd_M5BzkB$} z4?dORJBY$eoY&^2~ov<%QEyPa|RWeTXxWA6(iE`0w@E^)mf_yvTx=onhiqJRNWvL^mR0UKV zSz6u4i_J9Ci&V;c9LP_M!3!1ZGqns`ysMYmi#=L2ZSkqzJkdEJw46RNkfc|6UGS;l=i)W-{!48g$NRD_-mC#NUWT(c5^JkYi`6VmhAD9*;J`|mF z4n?c(Rd^<8_0IGycMJ5RxbG(XTL1NzcwIfKT7Css%Rx;Ga~pB8T7!+LHLO`5F| zbHK`j6Fry1hbA?AvVUXAzWytY9Q~rtA#|L0sO0dVf2eo6%Y$YN3}3(F``2xIX8H0- zCFWp?Nc^NfcDg3FdKPIN{i+reEEKJ`?;YmEKGay53DZzuh})+H3;JaMJ=A1~9A?w- z+7I8L^!D3m(Sb!q^07MVlIInzu$k@2 zQte*_mnOQ{*$3$}kbpD+R=676ZQ)r;yEWe{jUZ!Asm&{J9#KjqMbxIEsH#Q$?hOEw zY|Knb8a1s3SvrREMv^wkQ=vUjU$XO%r??pQt>AqBIe@n(4^cQ?9^)?8POeSfwF?iu z^6BS68u}*HCkbT1B0v$^UO4Eb^n8|1q@NLT3#H?qX6$EumvGGE<5l`0I-wCO>KzY# z1SAt8Xg!4iF0EzfA)FopV?|C}K_?=$89NIv=eyBr!@_p$xjwuenkfgZFX~6vENx9&k5C>!xm9U)`Q!+dE44{l7t7)C%|J;i$Els*$qigWPBk1j9vv}s-AW8+#AHR_kf%@jOscizRz*zwWy6o}Q6 zu2q-7j!^KrR+lLWvs(EMon`UcMmRd0+$hcDpJ+8{0P<;$SkG75(s}vY+pTMGMN+^k zFHpa%estM=MXSij-h9rKrH8uLdBt`mUd3VTKj%^Fc_*AP!Q3{?d=VyyR}NCOqdXUW zX$as#0yDsmx|IfT_??K}P@Z||{l1PQXGDzpBh8YF!Yg& z-M&EZLhV_wV^mwkFg0`tsqFx*xOP~N92ONH$$S0P{HiF=_HZ&m*w-o@c$K`G-+lAi zV)Re%79YWr8~NqGd0r1E!ThQee*XmWO8(U6HqxtKroM`YHnK;cp2NYJ_VmAUGLMkO zPtLhC=S}QiOlB*2qO8D3M`SD9k{&>)%2QfsY@@be(8_^mKn5dL?L6(pO;gq*XmO*8 zmD2l68Zvsl;0e#g%_X&gM1N}}E9~x~a19~-Mw955iBThX$V_B_J7TX3@UhP9F^1y~ zR_rOR9>3uNd%9pHD&f&b9bIQqsNhGRK*6^vSI-xmm%VCFf%gCF?%Ly zMTbWMBE<)kiWLOf1gpHEDFxCbP4@lP38f%C-23tHl9e13F3FhJSnb+v;cw%y=31f3}@860nKtjBVsbl3fzZNWjZTi zgt-5n;K$~_x|$UXsvFqA`SOu?n21to_aEA)hWu$IL7Vw;2hvg^9a)CWz;V@Q; zjUahWkb(WQV%^j|)o+~m1?2kyJR~I@fLnjtNx?K9+@adJ)?{Ya#&o{mqXGAd8 zWJE^oSRT~NHrF=y7UuZU*gQLywpK7kp2vYfqyKbsD(}?4*rd8XPc2`1mqXWa_>NGj4Vj8=UF#;Fb1Rp{r zsGX4>^MjIXv-;*+;1D&Vav|1yWqO&z$243X@BkDngwViDWl%F(Hd-qPB*I8C9A+3f zo4N3JR9iVxcWjz`Ynb;anX>uplrVKzJc}dIH%+k8R_MxI$!iW@z>86qM?C;sak2^%}Qhq>^lP) zNw|6^(76CZbN%PRezL=K#%DUj-5K-W|K`1(962!5FUP5S!5>2Qjj>&h$CsE`#?VI} z>3D-k*&n`q%%4JC|N8;5##s{v52zv|RNe2_XN;8nkDf1HD;|C_Hh{W^oS)#$F3LG3 zbz~8>Z2RM7j9C7?80>yvo9DguSv-sj9A!kujCvA~%r`f&NhWxnVSGZDE}z6uVC*<7 zMtOpG)tn@vmo>w$_?M?|*|yn;P!_W+jZOjt{B+f%9lXnMEJsH&$yBJudZ4zYkG%wt zb}6rnF%E@inJw)cKhLSd%!TG(hH!mdK$6LaObk0=PZ^SS-gVh) zePb=h?T*2_Bz5`EsBg6LWWYW@Y$-U3sl=tJ{caRLpKV2bgW%|R3i3Wb^MW7k6e-h&eW0J2yurl58w_p^mGsI>IFBHaf(`_ql)ci7o6bMbB(ra) zJKqSOqxYDRw($eUFl|}rHNxKuiW*0rWG%O*%`6zm3-=5L>@r-uOpK5pmiY@WDC4Q~ zGr6!GzYW{*fjec)!#jH6)rBtzZBJHB2$fnwzYhLR#%f=))r|>h-ptB>MaXd~&$IAfI3 zd~CRb7<{xyHuz}Sl*e}$@9bVfp|MJ-iqLO@zn5_p8*77TmOGRRYtyX|jUrZ`Q?L~u zxB!POAs)*fYI1m^a?#(-=)W{vRu)(-N2WI>Y^nE$%hEO;@Qi;Qbx-T+^01w553Z8o zpapB@Zt0|Yrluxu5H53vz(%`2h@~PpHRQlm-F$N;PI;?RQ`yB7uHWH?&EB=@*uY1->ep^0T=OJl%^EaTNR6x;#b9%jO< zTJ81eE6zn|kEWL3K%6WysIp07)$ZXNC+>ZWLf=L7ajZv|z(wYRixNK^mNX4t!q20P zS2I)BA@08E(EiMCe;2opQF>jY0iA^ z(=u(cI@QjfY`TbxX0mw10sHV+|7s<*iLd=PXiHWnnmoU_m!<(bYzU70A}-zf`_$*3 z><*RS_t%srsirsW9SXOq4ctM5;LZ;xIXCGgpd`Yn~XhJ*twWDMRPr>!nZW> z?b~dD9C=2tq~oNdTW>0y!D~If(N%a`sVG-4oh*T9VFFxO$GsQJ_Zm+8$M7^&U8RC! z91EA=F2sWY+-?~RYRwDdf|^;b_Cr%rNM|xlUy2=Z==GToL{-ftYHOs>d<`^8FFe;D(Gs}yy zIJud{CG1z`N91`t0i!&OUb=-WSRs}j!H9U)uFizz-*gs@9EEI1mpc#Uo7I45xc8I? z&hk&~FS|3QqVvvIp$=)wI$zypHaHD4AH%dVTZF~+*v=;etY10oNSnDZWpN|33|D21 z65}T*;hxY0OT)6F1D3de>wHwP*#3y4j_;4kv~;ocHS#7q#vao>9{-_Rde7!>4H(|( zS(-aa6Kgz`&CFDRxev~tg_+cQHhX!SJii1p30h^vVwESvjAq6wXa++a5-o8H7R+~W z+z!8lppdL{)LWQ(%$L41dYV|kB6RD566wx7wios!KR6ESS5oy%|9?Re$Baj~gF;h# z+s3;*p4#&wnV$g-|BDegh(;b?g##}ZUfle6ZP4CAu!uj2xO z+_BG;cfQDKOgLj-kssIBvJrw-y;GJr4yH0qAa8O|a45?%{c(BD$4OFDl5813U++uc z=yxJ}I$oA#uHXK~D~}fSI?INVw6j_t_~NLqMhDwN%p}Y9iJ>nKW2sg96I=2n@PvCQ2h~0=mX;?V?`?m+Ngk`R?N1=7ecYkJv z+xKpENzf+vo<${mwz}H!O45)8Podet0Cl0}E1}Gw$KbP~e6WGTYnyW#u)*7+VT0^d z(OgxgjwRu9LAaVpMMG@`lnyh$@^PzkYf@ntWk@E6vcaKhl&`0Y64k zye9%*vXIH%5+wN_-AX?VX2{}@h3^~-uJG{%3o%j3qglwGKg&Ip8S2L8&@|&$6N3Bu z_zLB`Qn8GJ`5D?oJ){f_ZpEVev{#a196mO_dGMQoeCHbkYZRV(q%@pk%%=vG{<$!@r#vm;raNb@Sa? z-rNDS3mVf&3eBTQ4$dE9QEo?g>J8(jP8EguCB4}GC4AnN?CjcV>Xg0c3m0ArUb%Zy z=Dvu3FMq?HW_ibtV6=VZ)^MS?tgtXR5EAWum{R5VWvo4_O>cOTG-lEybl{p)5es1< zO)9#>paGu9QQ3|U>+$`%>ZjM7#Bhqe<)A!j{TLYi$vR*eaV}c zXrdHxHe{&R;T>quCrzBWV{Ek^LO~~?pix(SFxVtVQ0(+q&8*+>%4SC+ zd=%&)()a{v+;!ClyX&en&W9>z;Xat4huFR@h(^iK!>iK6%?ILyX4f{-c6eiD|Nf1Y zxXj%)g7zHL!z=#SoXdIM`i`)oyZTD59#Z-j_G}(7rCia&tN8xdyrbFC)iF^IkzQ?H zyZI?2N)Uni=1!&M)w;WFjgGk^H^ErXt_*F%W-agpKmlo89h9wG`xm>NuDv-I$? zxc#f<9e?@bQ;HrUEl*io;smwRL_I`~iZGg@w`phtjr4tsI9_|(x34F3TU=jT+cr|} zmY8C@z4;T@LoIh0=(&R2wT&&}tUsNN3uZ3KDb_=zHR_}JH@=+G;jA7aN|A@3*~mj# zdU#n}&HEF&Jlr?MqlZW<>*p@LC)>If=^>Q4E>a_I@p!V@KqGyRDA+i-@=t5uhmO2$ zc=AP7riT!o&TEe5_;ZW&kn+0q)o}THJX;T`uVtYt|1{wlBiB4u-Q#z~5}#2wIEneVht_a2ODlf ze*4LWK&ovNZB%$W>EU&xT2UH!*F&Y!CgR<7D7EaXK3FzM6`7zio2ZA^kt!UTfxM31 zbS(&@H{rdL$ZF`m-+T(8`=Ewyd04wzIpkUpRzelJH7qW3vI^VfiD2eroZZt)z$oCbKpsV&=LN@G2)TEehQ(6HrM!|TcqQsT3HnL#)t z*O1bp=O|ua3B48iZ_UWw3PmM^{3zgCZyKC?QPxFFhzV!Gp>(S%T5BQfZ!841boQ6}c{vi#`CiI3Qq~YF5`E|y=QeP@ zlqvxh0GP02WUs-LC&D)vySo*&VrU@&Es$)Y`+w$OzDOK!@AM*ZAS4ci=NKD4kvP~j z4%-v$8V5q+K)9Im_1hD*k{}LOlmu~TEs_644@Ex^hn`tQKM)5(;y_3odcs7p+Ki+J zcPE=ssjG+(5(h%!;O;~ms;71Cm%K)_!5L)&!OXgfT0+v?8uSPj59f6im}Gh|O=_b! zq&@L`&E6>%X-^@q*YG?W*@vEq#uN*w0)6~QK^5(S@>5}ikZ2GtuB%wDLWtG2d)n>e zk~fI9-KbcMaOO|TY6*$QhD$ttTBgs#nGw&!d&{z%8Ke$E?4kA{JlDD3@G?yuOr_oC zL>p7^%MpacgK)9ixSnZ65;JY^_T&=L76Ww<%-lSnmXK(aT%xggfIbbgF&=7gPcj>c z2H|;T=|gz##+Qe?sb<(f!-B~wXngh>hKWlwfEo=5iL)7}{qC(~w`haIs|13XpS@N~ zNHpA+XngkCb!eEVa(E}1O+iE{sdCsb_L4RTNgISj!=}+Nkv6=d4L=r> zKtS3cBpP1CNI=_!HauvfR5=LIBSrxm9hzNMw411G$ST@RR0xR*AytqKTEXlhDjh}J zF8YyLLZU*r_{hTb9W^SKD+s7iz4&eYNbscM2TS5Q0h+gws(fHq;T+jYGC* z9RU&*dL}Amhfp}oLR6$8baQAjghYjqnv8@KlX12hYBHOOY&D=lKuv~_w6X~?5{x{33Je? z1Mi#+rMz8?MBLa%x<#-Qx+O}NkUDchVq_@<6Yqz_JU1Sm{_P8brgR$(=WZ)1g3jK&N?V$h1DlW14& zY=CK#PzoR>gv6v2iCD~ZXx>3LVTlS5#wmTUD2;Rr6-kma-9j`7r=njvC&VjNgrt}xD8$;ZoXTRgvtc=na)iW~ka(;{DhcL#;^CiUj#d*ORTB*a ze~U_xpzq#-2HIlNkT}qD6fs6r;Ws6Od!Y$Rmyjs5B5CA93Yz0=pt2!od5j{`XwiVC zhAVVoNN2Eg46B^!%}m6nwq$<^g;mHyRQjq*(g~@~wjxPiN@4_O!%|2mXnBm{b)?6o zr%-Ai7Nn<;!A(f-v?6L%RSGP!4-2bOuzr<5sJ(F+N&YAFlIU#sgc2cad5+?xMq&(2 zGJ9apMhK~qXdr~NauD|Y3Nat7-uEjReuRh-1>pni3~J%V57tD#CqOI>gb%QmX>HV+ zFe`7=nlvHFZbhWf-h-ci9?{-I0UU_wi}uMzP}_)$2~)oY#1a7QMIUgNSB_3{qU@N)dy|nVI$iP|GQUxoP$)p^R`EZh&vuJ?cCWm zLh82MNT68R`lTKsiX)eN$82rZLsG$90Ul^@kh^Up6(qAFw!?_u?9@RxN8wrgfq(KM zu7}`)pob1eqqK>{1#-GxlG6qf7i*dNzQpYFR6T^G45d>;@mI4HJtQ*9#*ha`w)Bw5 zsKZ3t4Fc0ajZAiGYL@B6sdwlhBo#>cYW}XOa2oJ zR6V3*k~x5oMne z#!Wk=N)HjGmukR?Kee|W5}RaUWJX$I%t)q#C;~esjVUA4SM?B*)S~zpAOS=q@p z0cP!}NCvCMpAJT)R9~?@T&*cT`gxj(9bOlXeuVw`NsSCo@qt*Y4^PvyCwXIi9X(0f zQ~M77W4?O4jd)3!9d_FgV$(trrWOpOr)V0<-yW;*;^|2(?B@RdN_s*X^rrElzpcI% zXKa^ffju4{Gr)~NulD5FP`9TwnZC1gis?nf)I{!Y*VxxxPr@&5We@Jv{ulmTXjb&Q qpD(uOeWT=zoB#M%w534U1xtI&EV3#TD98vyExRB>Wi+>GI)DOY z7vBnDX=RCsf|JWo3My7bt%?wa$R-RSbmezm_qI?K_4D~Y-hX_4gr>>syk5`Od98EK z>zs4jd(hwk2rbJ_9oTn3Z|QUE@B8-eKA`)6w4Mkdf5L!Hz;8s81iWi}2%bPa2BfCL z7Yh=Qg<~xi#POUZolnnB&n~r=I@8?6hrsQaLvBM@qJ;}`UQ?Nx^eo~cCy&DJ0UKLo=)1SX$Y{KP^$peGXQV3q-s zybC`bTqPCvqipPlgnpn3CR?GJR;tp3m1=~f8pOCV+^iJpWCD93R@{sr1o)1Bc=!py zZIKc_siBn3CkkREki*;y27JF+m1Z!^Z>;3dw8$36=Ql zWP$H~EUpRdkyR>;!FZi{c%w{EI9)0Xbiwxym_h{t(2U2JX&94sK~45CW_yfDX&+%W z+f$2BG&CgJ!P`lf#3za2THrUb82x0$Sl&_kjsPoYY(^LLF-*uJ{;pcn*B;n+9J5Uh{eSZrDD0SHW*@$3*OWiB3;7mFTi&mQy#n-9DtH37@59_ zi+9PzQ!hiwbcu^+roJ zo($?f@GZ!&;Vuk&1W#0w9^MF>gkW~zdLHOU4?ltj)kCd0>!9$%YUwIKjXMMhO+6Vm{_0R0(gC7lTv8w9W#iE<6EcFW}Wu zePogwXj)+wU)qfcKQqHj9Y<>vS_fPv7u|WSB4jqi&d`Y6yl&?x`5A_? z?uOBe8qjac=qjFCuD#4Vj^J%E9}mq}F$%H;%&O+Ox?yn4F73W%BnD zdC(E6ydKde#2qSvk&MejKK01U6Y5xr{DLaK3Rg=3aG;Mq`=f-fP%Yq54Qw9Gh?XL(2|?~1e^6@AMdJ4U%_+7C z-|xTRf(pETDhMoGA?UyYr&OUn3(7K9_lFEL1Q=QXXHJ{Pl5ZDK3O; z2i-=gf`Wm)w19^xS~1*1xuGdtV8bUURwC2H^*6pe12Z)2+b;9cK{ssNM#*=f!)Ek`yDcUPprjQG zy7z-+=t-?PCn7Yyzj3?7W!Sf!UAVtnwQXuRL>;X0Lifm4@5PV`l}lS;7GMTh%1uK( zibmlg9*BZYr|4Lr4tjG@9E>kTDsINq?f(T99*xf)Wz2+bQ_V!K3!(05By{IRL5!`< zK@ZT)-a7L|7~es!w-)G){rL(!QiA-TC^r%SmE@$(7&l^)c-$E)6^A!Wrg!dcm~y{P z#=$641YN#W-GhV97!(gH4BY;HV9H1JNZt5KDf)u(`Jxfu)epX3B^5f-D?mjO16}MM~4WQa8fRVz6hz1CcHPkgR#-^{m*jH zkx$BqZ+Q{wq5w?;@5R5|gr58Y?#{XeGf9Y_v=X60iubCwad0GpuCQSzcZP@D*qKx+ zJ|0!|TX02bQi%%WU?uvNcFgfVp+dRZEi1j%0n z%M=Rh&wh)6^vBPjEcn{LZX*xB6hmLNOS^3mmjp;On>>ra=kXot97gK8eZpUn-m=a0 zhpMXm8&E9NiMKtEk@WR9vL&P{;qp!(n+DE8*--wS@DL+e2)|p^2!_?j&ysNqp+nMV zy$M!xVdpZ8p{k$SR>G*=*gXR<=ojvzL@2jc*f55PSeaXmU?qguhC%(f@2BekqWBpU zIQ8s@1rmtYk|=@P@4pSC0I7)vi-X$Q(=0)tli}3}>siD$V2nHP!2zhIyz(kkYxScb zW9)&G3tf)y(+e0N)q%M{92`T*82y#i(hUYGkQ?s{P=T6u4>WD7U*O!4Jy=yPD%tyDuKM8*~D62&s7l;DxIXW`HECp9K`<8ZdJS$4~Ia?vU&! zmG31H_dl-+n%De>`#03UWM4*vuCcB1^v6(4cfvg=3h_9a!A%7wTov;fZtVMTG62>b z#9ZNpg4-7XpGkayL_CNs`hm;@{qtN5^!h%ava4}lfj8ms1CpXeiG(x>PqB9w(1Xl? zB+DIwWI^tM7(`41km8HG7^rmxR3r*85PKbTDF$k`=I9AP4IEL5TlE4=1>M>MNO3Ytm*q{OU=dS8jR7kMZ&-to3>N6pSx}rB zD6!RsgyK|*tjrm~AjvUx~A@KY?A5z%Xb33U*Wm+xeKYM_}>tFem?&GXo%# zhQAK;XfB=@I^hYNHGp0HD`)=#_TS;`qRd(A{|aXp=SaicJsGA!Ud_jI_P(?=CKvu? zHUDmy4PdP?*q>H2UIx1=f&F1M{}yc6f0HvA?7zd=*1vET(70(Q|8M6^wRM<)_gS(u zXGK^bHiD@dz^bJ=!@^!V0U+$9DUl)me@Ir?stZgL+Xa~@HgbLok-GQ4Z9#rBUNn$?MrBuyFK=GGsdPZ(@8R{Ht zsAD^a>v(GcBFKANg8U881l%d1=b(7VW#~=+h@_NA2>d$)l?D`FnF6)zJYXlA>%8?~ zMiSn7uM2q4*Lx+T|2hqi{r_Jtm>~|#J_N=;;$ZeTm`G{;{!;qnnoq8KA1oDcWD}B0 zOhPJdz>kpE5c`o47|+Ob8!xF;MQFkTl(hwe82t=oS-@8FCe1>ijDao#ZdS%F6;@d6Duni|QreI)14lV@WE1{JO>1^Op1&CdsjD#m3u0Os<*6AZ~#~B z1Y!-w zib#Ub^|+W^h>N2@_Ca^yB77!z3}T0OB2*T95M?2RJ@A%?>uMPpIT}8%#Sp}4T>Mm~ zT$})(?@PrCaB(Y{B9bX}$jbrcEdY;pKPn?! zxG8ZEN?Y%dN~2?-z>Ha=L^pgKtCNaDs-Q8hONsD7_I}%HL2eUgJ-F^SE}%U%TdLcn zoVJWC9G=XYo&lfm`OXuaV;<`6X%$Q(8O=XWJg##XNeDuuv5M_CY+Uyl@t=ysCE z+SnLlBdIZvML5CW@J=zv*!rtu0gVavf)7@k1lJoNCyd{>{GCdv^&iN<*;ycSes6p~ zUm^#y0ZwpSF)@f25Yi$FkqCv?W+u{HV`~qP4GrK_5wvdYPE4XiOb)hrZLo%lY2Jg- zTJNGB{szBZ9+@(zv;CTm~5d)*7n_Drweaa;JJs*0OCRazx5)i42ZgVxxBkj4h7v z9u&b}>VA6g^Dyb6jW9}+PV$I_i(8}s9wT$LLx6#$Alvq6+_Pav%`I>qE0XIT0N>%K zf9zZbD*5Ii zx-Fj^DiYb8*hdk(Z1)Er!qS5q7nme|9g`h|kk2CZ&`fED;iT7l!RZ)Q@6}_vVvG&G zQ3q>>j)ktgvV6riS&FFMgomKzRok5pfr5y8Km~z7=>@$Yb#=d|B?Q=dlTHIDUHBVl zF+lZYss(AS(N|JWX1OQQ?6tuR_}MDGXQiGn9tA-H+)1dAf=yo-iyn92hs<&ZuPgjJ zLkH#3UJI+H&ciIwleo)WOn6$9XX|T#FX(`R{zJis`~a{vp7(lPcqoX3Ac+CIQZ!0= zfU(0|fK8()8GAEa%MrMx!D9n#Y53K!kF{AuT*RIR?593}NtT&6=)F^5A2S<&@t#S; z-b@O6jo}DkCozp;9w68k_`4r`*CN#e;7+w?(W&lu(P|N`WXAec0&iI_o|`4X2Y)r^ zse=;hc$G-K>w0SpzbIuXFF8xWl0p!F2PXnJZU7g52LnU?4%n8@k46CV0f4RbX*~rz zw{(`@_2cQ7b;DPko;nMxU-f!na9Z8h_jGt#et9a{*_3tAlZeIOjbi}~gbP6Ib@*;* zEU*)%DaU^QD+j@EOlJ{ay(eOL&FAskzX#UO|2|v*xu**f*8+6t(VN!%RN05CKI4vyJ#Vuu7^raAyQndsu?9svZ|yooUC?{C!ufcifV z)1gK>@!Nhu;vh>vpTQ}5$PyC30wwl4ClXyMtd9UFTfGxjzwj&2P!#jRUaVZkzrf?> z>IDKZ287aa3k5X2X8;YYvx$Rc0FI4$sG+pgyI?ElZN#lLMRT*D^|k3z=jtv35elt! zR;jhCcr{cZK3W0LxN#j~=6}e;k}3{LJu7ikoxC(!ZX4|A3G<>=@={x3MJ#UnaPyww@9SCFHq)q;N$6NwF~p-W?xG zD1;5em`?)?Ewe(@R0A)N@PSb#0}4fSIu2um4NcY5NHBGnCc}K$S!M<AK62hu8x%#{GJU_cNC!j~d~BV@lINhk*bQsHH&PH*Ml{oU0KNDmI; z@u=#}P)PoOcO@}zq>O~GRoKWS7=VkwNPw}6!xN0I!$)Ny$eaO{4M2CtN)uBn0X>j_ z_KuN(aE=Z22OyY9f*xqaQ1+|Pvr=Me+NnP|*Cen*GGi7zye z)!`5dDbLuY2F|2K{KJgFhWzfTgf(8m+G@gBEgKjkFNH~1xf0e7r!nn5W(-UY0P+ zk8dQ=5I7=_U*hob&BE*{CT8N}+jnOJT)ljJ=i=i_t&@bynpqN@oPvSTK&dpKfouu* z4TF(WF&I4sBo#?aS}LpIoAS|JC1Gv2i2Hf>MZkhfBqYL05iug-Hxctvi<_&?RRQuO zDUM2IidK04bKzS$>c$|RC(W32y25^8mM0IA2%3Us#4J2Iah!r zIYNlBv5!bf0Z3UAi3ItH`aN=vCxaPF5;ZOut^TYFt46Q)ti<$xk%Afgzw|a zP%b721+DZ^>nLJa5lK=CT1AZ3DG<$(D-DzTrxm+-o`E{bX8z&LLgDVdOt06ndJ@WL z22$HQ=COz>B}tLiS4H&k)7V8py;cxJE1wQOnf&Ef3SH;6+N&l|MHDt5Ng~88MgnEIWL427UCYQIVxD-kbX(nY&=C<_&BARV7hf0)5`SbizTa!L7o92gln*I(YoXpc;C$TZ?|o*5 zmN`EA;^gVm8AqokB7w{okU-l7WP)Tmot+|l))ItLr}2r2+zz&^ic+GU&3#CX8g6eY zyC6_@j&El7B7K)!qX23a?~hSVX0F@0^bGJh+JAc z492b}$%)yOWo3wF7pG@ixyu!otDJl0^bf}_tT`TG+ZjY3HiU=yq0*#?!JAiAz1m1MJKNx?yFA}OW6!Uw|j1X7TBO6YW@ zR!8ci6^up`uZd?E!a$MD?G&EyH-*E8Hnnf(O+HvZckXxJeRH(7{{8&-yY&Y(O?5M~e!e@zv+tWAYSvdQ?(yYXZMnOm$6`8Yu<&0%q zdYZz{p_u=qqV7?V`2n9PvbKDGZ?hArzBtJ2Luo8qUKq^Hc`gf7fasZCZX)^nUwsC3ZC%ElUzFGE7kppvFlN~o<`q*N(EqCmUMQrB7Y z>0iUEHH;7Cqh>TrqRQ|dO)URnQcljDnUf}+OK9=tgJphe?oBRHd=QyzW+w(cKRjj* zn&do+dJ^aI0t|*OFOPdBLQN2sZ3JjniUg~hB&d=5eje#m^vI06c7DUe0&w=?XM-r% zks)?177aVnh2lioX+IUvT*q8q_vTB(er`*@@M~4?&-;HuE$vl2C$!~h-v~|ml2Jwj zQnPW}$(D5QY#~6od-F=M$Cx*Uez<*VTj7=0rY#y&agX|RNw4=^gA;^wq)}c)K9S9R znlGEOf9m9bJayKPvF1x<1u$+Q%x*(|?}Fdq=$D!Ea=ImEJ{$J+s^JGejoS7}<}qQe z(e2{OoMq*u2T-Pe2|RxkN;^3&JI55u^8R)c?AYif=35tTY&e(OBb5iwDBs-fLd*)* z7^qBefLMSnheTKv66u9rbYzLeEh3i-i7pNnDvY)fi`fJ{>V|wMa8c^%WhAN7C3Wo- z8W*5Y&{}dip+XASsNmdE!X~CjkWHy@asw9;<6qv@GHy}dN#N76XQszWLQ9<|B85P# z7X=rjz+EoODtmWlhw+|WzozldS7XLTDo6)D`tkN`q%NoZGt!xN_*le(d>VQp^?jL9N1$0o+$Rk`RKrh@-Gf(aBh$k#bM4|NznP?1KCfnr6H(TE z%-b}Nm^bS{-=ys0^0qOpzIbEAE&FRi`{4D7EW7)BS8dVI_#l5ObLK0NN@d^6 zemNeFS=vlI*-uLYBwU zWfx3%z@@eGcg@d>dgf;{d6HoGUq<$ucWnBD(M!6Xs|aq^aoM!6k@nc7Qv;%VB0X)^ zD^@dF#>c0HUsyO}(l+-WnI5~RvI0@DW#!kmZgtQ~T}3#Z5xISPe7uIVXSYpcn!{*y zh0-P_$W62^Z0M|+wRe86`|!iJ-fFYl>z%8bQ=fgYe>$8|cz8`vz;O)66QtD?2nY#6 z5EM{YOLSVnXJ;>1Flzel!jdw#(+Oe$_MZlRdLj8A*71l&w1!ZVSjU5X3&H=<1}t;P z)lTmtvAeW`*ymVOP5A=*~LCIP^ zPXWtbq|<42dKGvw2-F>PJ&)8I8+5(P<*BW8KTOFZ16rAk^W01GguGML_a=}I8tZyH ziDX^RA;$Sw*Js?>zdy14gAns-r&v{0apL63>A8s}8fu#*WpCWeqf{bN)s5yBv>r39 zUAUr5aq6PV=`uEmXZ%#ESl@EeU_n_Dm#^um;p~gdr;YkLtc1*7ZKd zA_jsYRlJ3Kvr=@sHJ2}6E!f;=T|1Xh`Eg=9*QxElxv;WN42=Dbds>i{eE_KXfHg3! z_LA;M%<{y3@cviVJ{^N~eLI*4gP)I`Mvpc9z(Hfp^)GHYvw$4OWhQ<0+0mm@PbDNG zQPT9`l9ne?qn2;+##?$7LDPgvrPpipdPFJn!$V;PIG6#@^8QLYEX*=Z`0gGQ85S8G zorc78(g7ktpb^E|tvm&*kO&Nr%N6?J5d@(#7>%>7vXakBM^tvvfdgfU9=EF}R`ZD8 zgd(t-2d%=T3$W*&^#wI=VJp+0+3K9IIWy8|B-LtKNvmiD($GXcMG%Rr;BH`IB9#os z5y(g~lv1I941A=ZR{Hqpf;$I(O;E7ZEn$NzmI<((v5v2-I(6?RIOFS9-@UYQ2$5G@aq;*2 z=da#&AA>tcgOX==u@LLq+>F;=8*X^2+4vhFKN*Mr7`=M0;672|8PzqR_wy6>9<4ez zx#u&VRpgf6J5$_cu7Y%beU3r)pBuHiV$oyO?yJcs!4dh6kqRmreB_tU zKG;}rulMFF-)6pYQWB70~)qp zh9xmJE|$q`R%UXCUbLL*u=Ar=PkRp3E|}`cab`O?3)bzbs3I=s-W~UY8bn`oxZK%^ z9gsp8OGhqYSrM_UWJlP-70P^&t#eB_ib`TQ1JIroB#?Q3Gl>+o#onXBPh@%6jFg^C((%gRikUFt1ol)tk(P>Y`&74>H{OpvSyT4Y*%8MFy`d<1q}y3_rV(k_ z*f)p>I&n;FX5H?>!_+fvvv03h_tL79w&$kZm@=qhb^asWPUU4GAFjE<44aU4fO@}* zC|j|)Rm8c6-i;ItURLnC1cEqrV$6aCaj|`$)*dcNbN;ko-ngRR?$*-Vpx`%yg8vAm z(^$dN2xK_N24Ll`j$Racq4JRZTOo}hPjzn6zYx9VxNF%5dABrMWG@-z@nrab6sZ>gs zOoE363M!`jUj8^G<)97G8y)84#OxMWP#GCJbcfYD51YZwHc{^tmCjdRKf4)jBBZ3; zne8;oqlA}w#`uS7wX`A#w0lToT&or_(aoF3w8(n1?!mpf`ftwvvgj8AE&`Hj55-zb zZCuOPNx#vniz5u#px5U&>UBkdq|}q&<rSnaLlbABuMcyZ9^R#TooEqtAz&8xLC zio`Cxep`AV`;`cq?Cb2zRe)CS$zrWe*f=Z5 zv9virQOtlmC1bTDxtK+9O!v%$eWy+%Y5_zo6`tbi>efTTI(D`prPpyQH(V*{^wpC3 z1eK}q4Ie!FCC}Y^_27k}JS%fzV+D8R5BJZfr3>i-Cki47LOKFZkLC$V-NGfr#;)~m z=AXrK97sXD8<6}@p2i9Ny+T{`qAe|ep=$ciW(^cu(`Q8URd>J+JQ?=Zf!CSDF_Vs^-R4Vnp(I8U# z_0)x-<*FktGrP0|XA@`-D^$LYE|r`$U>!EA;j z(H&8|J(i7WxK?YHL*Fo${-(@I3pg~eTq9aGxk#_kgoCC^Nlr@4v3PP^Znx+{yr3%J z5fVgvhX(z6)`oRlXp$*3!D>bH<-Br471JO&;0j#`>MJ5b9JWXRna-E8E@6~jxt58I zEiZq6p{+hQIb5gLt5gtr0IwU&Yu5spw7@__r7QtVGtjhZlGGG245^6IkYqk=^_KX$ ztPNawSUe;g;!z$r6O_TMsf~f~0|d~U0=|K)vht-uEEmhLG-yaF25Zf>_%f{aU&~KZ z>`pry)Gci4b?Pw5i^vff>(3hDG{K^v_|-~2UW& zun2HR=Y@uAtRkwYuE@t%&(KK@0oKO~N-o=l1Q#rtAn;hp!IsM@0ToA>3BuPv(oC{i zv6O=??4G?~K~hqv4)m6)n8ND;%qt5BYzmJoBvofFs0H>6eiy4v`)SE(*|GogAiH; zEPI|dZh(?D*m<(!+K_s%$D%N=l5DZHYyskN;|Ihfsfp zWB;H(`jwG|Ux$ue*E+s`(#F>me0HVdP=Z$AtqcvuGGpgBrGrC=Y_1Ag0fq|dP7={s zIh8q*f_Qo@Q>Fb-_uAk13dP1W`MaIES&R{3FHhzjCMyvJpO~IRQvECe>oD}m- zS}X^XrYs`uu^GmA#sZw_@?pI}uEKg3>-9R7Rs+w77YSDImvKZ}iFJG#3xEPzBTtq>zoB?AD zei~e{ShPcy0m$|gy|0$hIbahLJy^*H3ykD*pxTy#pd%bFEO?kzmF^Z=HTqjuHQd2i z2AqQ`6+C5oif@O7xsMU#=8ADWf_!Oi2-7dUpO!6Sig*&lcyB~;D-1+SoyKHr*S6JD z<^jCM#k9A>y~-C_F{LIpHZ~nud7iVnxXAALaQ9Ulie_3c$PU1TByRIIM9|c=&>xsCBeH zgI)ls(`yySBc9^~gGg96gQpRMb8&ktn*IMMniY7qcuh%SwoCMQL>DVO7Rx%_Ah07- z9LdSKaE5D(LS0Bif}qM5kkB6AJU|?GOM$sj!2y?V9NCrNOJqe(5G7#@Q_$c{G!uHs zndqY^l!P&)zAY$DN|JRW94x4b7j{&U>-TCbx>D8bT3SizOUkQ${PvqKPKsJB89uJo zyMY{12;zeRB~KBGAPq?0qG$KgX={n7HVNq&F%!mF zXClFwN*or8CUq2g`AFi{KE9wG7Pf2i@~9)nhR>MMruE5_T2VwUQ*G@fvOTuseWDkc z587v+>*rBdMYJS?+2SVMNb!C2VFAEXPzWr zY1K0@<{-cjV4osMtonmk6_HY~0}GUkD0Lw#Y72kkf$>!^EEgKt{?B67j<=_IiQd-- z1S;I6Kr@wOCx+{7HoZAY)gV_D#?{Q?R8xAXzyY4<%<*n$#H}}9{H9{( zz1&cqicTE7-B~6GsY*E3+zOYI2h`>YEyOlN>r6M7wvOXPf-0d?3AKmYOb=k0~X z!IUa1x|cx`rFuPxQiZuVC3#E+czXmjj5#ARwjGwC4y-f5DYaPPqaXgl3$MQ(O)K&R zQRsl>r%nU==dr&lAN*agKj6{r0xUu0Nk&5&M5r89i!uJcN7b5t4^TX0h3-Hos3St= zi4D;I^IwnU_#dKb1}w+_CaMO4WDN_}9zh01sAyx93XBlEm5G*;z5bW@+LFidHG*^~ zK@0Hyl8E0f2w+XgVK!fN98+?me&)5(p1Y?{y><5}6NbM4mQo>~( zJc5*&YE%MmG$?_FpxfD_?)^Tme=@V}b6K|RNt0)Hjm=#cfLX&w3~md0c*h5n%-18m z(HOWZA|fPwx-!^j-uanxxING97#O`Ft@zWuyVe9SVNK!utAz__a@5%{|lc%mZ!nFS1?JKuk(tT(EH4whB8Jms!p z|AAkYAEDkHy6%K|THwCsmc55&zj-`tWnf2bGj_lA3r0)e5T1o)O<%(-JrDNX9wN7)uv7Jw`(?l z2&L@;SXeYqIN$~WLI6B_P(n6py*D0*1Kpll)=>BG%ftKsb1UfDwc*oG*v$8woRf38 zL?>chOPo%Z3xmKPr!gA-H9okM8QKO3d^J_;5F z!gc^pFxh3XAUGR>hQXkjseG`gyXyZwdZ?sUUQo4|?6;stREjOdW;O>Hn)yP8FVXDp z!-)!djZ&rP&bQ3y6xVC$(2R_9K2=u|%0}QTlEF{>V?^=W!{7ec_x@l@{n2gT3XGD` z_-d6}ov&K=)%SLNn}!$sT9LP6MepW8D!4c~%pd@CF!PG-0)k1z;l|R{?_b})D-tP5 z-G+0!doR3q$1|`ut=;mgvOqerB$$) zy*IPd^l85`DC~omARawMOsTH3IdZaUj0P!ixexRMxQj??>B^Bl z&pC%}UU+-`=SP;Oyk8K|{K{x>bzj@@;`VmMAN(}ZxLezyqRKP*&Np_XIDs7p@rzG% z?XIc*DKnGz;;{xDNJWP)oWJnWoOci0y{|QU*K96V(C@t#kzX^W_4teDFWh;Zt|i8| zQ`W989Xe$2y;-xSM73;5+3kgh8dkh8%p6iyR@G0MwZOlRdD`7B#UcUBlJZk=I|>jL zVULRdB@*Hg5fYj5e~W)|;L8H@hKFh{p#0R)Q}rItWw$^%AZw-8 zsBXPz!madvd|1Nx35c@Voz8f$r3u&=W7Mte*qRhkMiHqXkP62&2$ZOT8xmn#RB|g| zn_}jqrAr~3-|nO7p!?@|DY#ej;qD!QRD>E(ny+BM98~KKaYJLb_fRuTEE5gIej3AZ zIdb~)?H8xb__cZb_N!N}^cs-p*!lGMu)dMKhIE{j5gD0wy-n1MvtA8oAMxUVr-mgO z{`1Oz{&V9xel2)E`339rTng!tH+Xw0+0QU02u+_edy@L;Ij_C2VNCzlrjVHV)indno%c1>xeGqe86fFMML*ctGNDHSE)SOoVkt%64hD5Kg>t|ecQLw z`nYe{RcXWUM%iis}UWw~!Y&*&0EGb#4U0PDGA6{>4b>r6?eQ5JmvcQY# zQGMVZ(uZ!H(fhr*b2ipb|1$356RkJTo8YeK-EFG(cjeRWf&*=5@)>UD`OBYmC_jl` zNWrZlk3PV!XyW+}v%?54I*ZO4*?{e-+@z!3X7fL<+y8mR@%^XoE~x7gUweA+#<5?G zHJeU{=H@1UP&TS(Pv^y>h&pXgOhmK=DPa%ri(p>}0t`*?-}g9(TlMp6D~1doJ9=8w zjxoPhJXiel$(76D?Li2UD-JPbc0RFm2)3 zr{ajdeG&C^UVlW5T0EqGcE*q?lcxAcA`d)rprjF%x?|faWw$w(xv6P4->TGIA6^i5 zVfs|CapLv6VWE5DqB=l;qg?q0Sz7S8IOd3=jS{dc5TFz z<8%M>jb_S#mLm@ja%LM;H@0V%W%oVOB0g+rr&Y__=bqTyPv3IJmi!-j^y!t_Xa76< z-)T1J+*kdl)e6E{(tZ|lf&Mls{i+<5rnR9RE;~nldgIQ$p+gmlO)j>zQbmMg@#)cn zUm4#S$k+Z9o7T6PF?9OY=5s$iUKBMB^wznJu0vLrm2qG6Mk~)FuJsc`*y@!!q4>s%1&&3YT2HOpozCvDc2?Sy zk{KkR6eRuoo8Y#;0^C1;8{9^eVTCV(XA>!g1J6kWSixY=LO21OpZ}9UccB7-$A?HZ zNWtz#iyH^K>u%TFndL|5Dte6kaPI8;-x-qITgILH6fAByV82D|_sy<6b?7y~Z zb(~~y`-Zgp{bGe=aC0<*B*JAzf4{(tUL)4O-~Aj13h85#K72U`%x$CIZ=Gs?k7EnK z+^*l+^Xus!7*1Tg`c4Kj2AkWxF1$VX?Z7qu0ilMb<~E!uA|KnjCMg2Hw9(wg5qR*< zc-MrE_<>2Aec-?+Z8n`7H*U(B&mqbz=p3*u1rpvx5i~m`8QKt$-y$2@I3oYR>kSIL z>!Ec0CItOvPB~aJm*@JK+r)DqaPmZm&p5#0>7u2+1O7EaPcGtFfrmd0i5)%v5U5{@ z1NDj7)^sFP0&8laBeu2Wh1f8J8*YLo<3+=0^qEvp$cl&qTLMpH0L2iy!vb6pEO6*PI`iQpe%bnAy?~VTC zM|I!2E?@Fg*WIh1U0?Um^YHxMxx*V?@XNW!>HKzl7X!)ADk@Yy51{o{G}_u#Ri}Ty zQd|A|0|*op{Z?i%4Za3h&kt7Is~w{F>{ANPEm$Ftw*m=fG-4GF8XoMEtVR`k0z4yV zYqOD|XR>XxXMJdEF=uwoI`8@J%N|7E^4xo6;Apd-Z%FvOmtRV#j@sOFD_5SdOt}&X zM|vFjpz8-+4<`%mFTbq&riL6s)dd}8P^50*f`J1!4xC>7L!+%t?)WatKQZps=NnUO zCj?&D#0o{AMf3CWKdf3`dU4{!=@5a7ii(W3{Ra+g4Qa1Ih5$K{V6SXxs{_Zpb?E5e zLgM|r=N{_94^Mh1E*o#ks;ORVuW4Vj@95Ez%*kEfd%bXNc=B|lh{<~%QN5R5dM|v; ziIY!vpH5v)^9F6;2%@Q_UHA6;<-Rl-|NT^dXZk3(57*{FIEq+0zP(aKuCJ;(Q#)_o z6hyUjQ2F^qi29+p4vg&(6a3v$d_@WQheU)t5ZR(bfTbY|OA|sL&Yue_QRD^hD&(p( z!%9PB{xvb-0GI7_AzDPVpn{)#k%x~iSlv8`1?4!Bk`hQpwzw6omkSpvE5y^+OINHY z1p(=bL*PbKwX*X(KBh<*yaY02;C_m*YYXh{e7IoRipb?bEmU)7AllCXw;5e~{XZu$ zK-Pf+!l&4SAJS-auhD|{Tc`J%{8GxtXU?2G3*K~(OXRTOZDe;hq%=HyX2^g+$5fy9 z^HCGqH~%nY$t#yOE;_vJo$u^h2M^AvwIofQdhsG0SX!{J{s_@YNEutwGLn|iw+9{+sA!i=l4 z-u}E#gY6w>u@38lUnA4tl{vUKehv9nJbe*a^>=Rj)(3!Bfi?}BI%b1;!^W>{wxAz2 zto%jss=o94lct>gPSxM@u17Y$5p}+3abhNZAq7XQEcpn(`e!jYxncI4H_YN$qo2Ps z6^&!IX$LI4fBQ!IozX9joU^dLYx#nOxp!vWnKf(9{amt`KYA&$Yu8#2qO0s%w<2mM z>{TT|9wIL_=ysG|1`dPyV}`#Pa$hr^~v4CI_#uZ$HtbGFl_J_Cc+P~j=dGfU9pW`BMc)vwnB)HRF1rxm8)Msa0yYSn!-{2ARv%mcE+WIn+ z$!Kh5Vo8S{A)9*JKc#WRD0Mnta0)8P<;JY+9AtU;4vU~y!P$zoT`|orGaxQEAJ|zzFt`X;v>Fg%lQiy zTt^^vOiVrYXa(&Rz++-}w*I2}4e|LAA6?rP6q9y8)23+WG$f=f93DTW?Vd8baD4i+ zwzpU0ZTj{1U)HQa)Y`mN;8a?==(YXtc#2P49*4&E^BR2u_6kTm)T2j>q2K&A<@avm zQqO&KgrMG>_e0oguico@cF*aF9WoMjh9*Qu`-dh)M{k|op#wx4P9e%4(W~=Mb)ZRy z7a_0z2@dhZT5HyY8&5s_@a6r_-ksv})|cBp-ZNIWqG-V4DwAc=kRVN1ubBMh#zCLA z@0vR@eC2!R=gi8Uo!xIxzd_mRduMj-tQ~ISV&Ntl^iO#tYEO|xXg0L28XmLu7LGOB z7D9G4mZl#4lT%3)o{|Gw%Lb29KlCn3wt+=+cH_oRLeGo=Wz*)Vg)cR{;Ma~1ckJkt zP_~C7^92MG4X$*3W1!%|-9~bB|6O8AF~0hNEk>pUU^lm>j7N`B zQ@{}cf5-k#;$0_1%^-pgu{UgHQwp%JWt+k(YSuSNRDo!r3OO<#mho(ePVJBMghDc; z{Q}pMN}3?T0!-n-@4okjdC00Ut^UKKW1B$dfUSkIBNVVz!G2!C8VnW-7vayMI_$4* zwu>TZTC45T@62mAl7p`QswV9-0#JH+&F+i@7O}GRtfL`MSPQphq+n@~PFOF8ZV_S=!5fuT&hF_c+S+8Usdowi+i!i) zv6(-EG?Fz;he(E}OXiFd&D z(`yX&U&BwN?Wm||c}dULzJGn^L?$!4GTK1fX~H+p2(yjl3N;kb?TP&00Bm5B@Ekm< z3x@bC#C8ZSb<)FA7m8)ytz=Ke`)g>`vIrL8{6~0o1)B{~Um)tU!ed8{9ELD}1D>6$ zG5SBw#(7PlJ$!sy_K7WDD`HMKgwN`e7>9ocZGZpOG{f)=wT)PGHv4jwr?^xQy6FBPdq)iyqqeY*nwLNj4ji4@pk-nzXh<#w3jKnN zB{byn6csKjSy^g=DfTa7)rd)fRB4C!MR75c=Z_TFXmcc5EG!le-jKDlmWzlYy41DZ z^oePf$L0F{cZjhFdK?C$DJ5bE6&x1I7!b57)Zf%hr&os<451y0X-8y20BgwOk+L^Z zK8=)v9YcEXyaEdV(^^>Naht@Mr4?EIqxXdcGHhw&D;cx_n|dZCQkFRSr$Ht`K6Ysa z2CXSI9k$z%&ivlqWNiz5KGkP9BzzhX%^@Yg3u<6M@L$%LAN1L=nCS6S5#=l@ow_yQ zr{{Q`L+h{AG7xi9#3E%99vr8T+><`x;FA%AM5`!xgtB`F@(#gVkue~BG*8YNqT?IW zt!&NIaZNL=hW}yN+H3zMdnoepf_B6~Zb7jbVwj?-)c8&lV>S3OFq))Q zC5%C9)F#T})F|6Ee@ZG^`iG<gWODtUaU_XWDyyDXn zjaH0C0SD26?H8O(02%m*(mF!HWKm*&R(-SAghSdv>pEr58RS|)3)7!ZuBv>mG|`fk zK7{938ZwU%wBV2`vM7p+iHsyk*|0F0g4W?gBzyNm7vW(OEAImPgxHaL7zr9U7$B56 zJA;zT= zwBsy-onrd?>?NPV(&q6Hsffd;)}zO6q(7xEsS1+^IkY*j2Wh13j%Y_dBp67;_89e2 zG80H{B&73HK4`XfPe^FeF4BcsytcAj8#rBQ2pK%}1aqPB$t!d3!29x3E=knaRnJP^3J!}acSPAmA-VQ;INm^S_Wsg(Kz=D`vgAxBouZ+bmV#7V}1K5!iu@zj{9V>_kH9Iv7JRRz6sFf_ERSl=hS z0E_{aRe%|QBXg!#IEy7ra;5pBXCl5m7phQqSy+12`_^#S7fHF{vf>Y1$Cyls6_*cq z_Ur-kV!YGhK3dLkq7Vyb4r_fAB+xD^F+tLdKTVgE9Lo3dLg{2;tnKPhR>r|zE;*>& zG*Jq&gXbih14A@=c#@XKTMFPB9wTj%Emh+7cv#j)e;0huVw|Mq8=}KcPMTsC!G3W; zvIhrRO;YlIO`R$N?Vb()`G1H9Lmt&*AJyL`R52wki|K4i*j;0?mFGMBCB2F*;Q9ET z{;jcAH~u-Zigvill0sWO(&Ud5tW0dENdsCK64MBWYPnvK;E*)Antg?Zz!q&kKdzfj zsnsm;)0zD;EfI)=B!vV?X9v9kr@)$uI1cS8)9RHkcj%z$=Bca8h-H~LSt;uuC12sh zdy+bS_~w+h+2r$d#j^67_4ksj$dg0bttdu1+d&SFMuN$XY>+`Lm$ zcS=I^VhiJm30cYb;1A1EWv3Asfsg=57+_|=GgMGE; z_a3Blv!y`B8ysfXBp4hN(>mYKE+C~@%wXf0~)Fnfwo*$%u*g@Q1 zRoq__ygJEh&ByN*dn&R*a+D};+H$F0>jxp?2NxbZcn%UX;w1fLDuX*Wx%6cCYro$< zK48iVV)Cu}F)s%b$w?$6&B+_os18^wh&*^SRa@e5nwQ;93bpn18A3~G1N*P%cs?&* z86I-`NZt{m$i8_mn`nYZ=~%9ntcISP`K5Dk8d}j3?_!Vs38`O9fv)|_GvU}tfg@H* z|AON#@GLDUoF`|1X-ae^%Y%p68&-IRL%`1LBi?bJjndByrKPo;K$HfK)Kqa3Y(#_TM};`L+w_VL8H9-U&E zjTsixSNGM_7k7QIX2P(qQ?zN5iw2L{S$I121?#5-PSEm=icWyoM0-$c7BFM}lAaZ~ zor6sp5@PU+h=}X*?7*D=)Ld^BXaDxp|1v`>+34f94F918cjX>W4!5VIqy?gmy}DBU z?#QX@#~o`i@Z@v3x;LL8UV%KV5VBBN0z!Hv803FR((<6dV>Bvp6kk42-XVJD-m2`A zSAP3pYSM_x|81UDy-^>rPB>D0>ieu=KfL|kBFOJu^TqlTvT=z%kyI_M+z63R9$+%H}G z>e#b0Jlh~)U*)5wb$YFu`Rdd^<~N0J0)K>tMtWagcH-)Xw=2KMoSQppRP)o(&!Ixe zlk&urCP?-7@jD8R!cf1?&8MYJtyLIO#cPr?jU5m2!L z1{n&9ib^YLtpT};bpS0@Y*j*t41y4uD@w6c#g?l$)ahO|B2`+grb@3k2SsazS`<`7 zh5PLjLK47f<)1%T0%z_0?)^RIC2>2}mfXQy-#ruCeQz3Xb=;2soz5oVYkgn1{bNza zD)R15e6=><`0>~~^Y7?;ChmSI{o1Z@(}x%AT}%(38~ezjsNh%^Mvn3*ZT+KJQB;dp zI-9;DXfomKV_|ZUQbhG?6o*8~ZA<>T-y9=28(NruWtc|XJ4KDczEQ2 zhNcvPGEslcgHj3)eaU2X5Q3ptTwAM*!n=;mE8ZS|lu6#YsIc|v#rJSbDhMe;`L90_ z6%BP4Rc={>#Zr$Ox*I_;^erL@aJ2qWnMeVhcIPJdQsv5=6E-j`?D3k&9Pc@`N#qyb1szz0M%b2%fdrhp~8 z^Hy1ZTTJIpPnv!$>TYeoQFCcD7H6#R8*^~@RnlPNb*>iaAxgy_cfJY6ImZbQ$BFSyx z{QcwR1lTQwKh-n<9;w*I!d!Z7>WCkUum0#6v3MIsX-JrGqzZ>Di1i^OVZNqB zqH9icL4O&@0Bkh5KwB&UMFRca&DSItf}I(b&r0^x?JCCz(WtbU{SiCdy(nrBTp}_!#4h;}P3}FeG z-00EPnUeTX)6ID^GryEK@d*_w$O22iO zTR1AG;gh+Tn=94HYp}k9=+_+bvtkg2;M77w2jVaNIvq5rm=^k+fqzuGG*ZqOEr?+OsGF>rB3p~=x4#&Cmx z4HtgbIJ6xZqsYXt`g&b>4iTB&*VqKIP1(CqU4>GiYVyJpn$9tA*qMA+>X_F2j8i%~ zcD?aOf#=gl^?JCwYmsi2vs$=w|5}G;%h26h=P;Xm#6NW*mkJvZr$w%&t5!#x$@ad;3}%O za1~n_{3>ACGpwW=QMhpjzS)b$10+j317?vy{b}@m#ZW>8mOevv12|gDnl;LG+0=w9 z1^zV)YNlLU*=}n1&=sq$jI&vtbmG?Oa?Z%L{;h&Wr%JaP(+su*6P*eMo^n*rr*MCk zVp%q;Q`Q~-c3s%A6lQ;RLO{jCethc%hZ7#yy8#t*_I|k2lSC;Rl`UQ&UKURGKflt; zV|YUaRX`EG**a$hH!R=y&W@1!`p71aZVgVMx@=moAS_JJrdXHjMyF5r9*^J0Bwz}? z=KWv_q$jRWeyucc-T2hrM2CMapK|CLtWSE}qzVZcb~AXUUu#QHcA`1zO!M=_oXU0` zWRhx17iRZYV?f*|!vj3fnm~BU*ED6=S6F)LdJ_|22HFP6u>2rOWvvNNfJ$!j1r+X= z8@%=@mB0Vq{-~oLmGE{B%us0(MPXCbUOs;D zqVXzg^LmI;91HA#&E!=9c^5P>YOG(#%rN*&j6t8loP@grRy=wLZT?>V+;hXHEOaq5 zs4jsV)hNT{c7+!L0*|S46h^(B!B0US+E9|jLQj$?2}#0@_+$b|$iL@ZD$L1Vw3d)0 z-yJ>rdPzd0sBPL5H36d=56?SaLI9G6EE$WME0e%-0`D|&#$nWffJDV+AVA_@c>l

O#LV%<{MyaU?y}z&{QxVhYt<$?Qkc>o@==6B#NT$9d)#pOIbxS)k z?e>nCsq?Veq720%GSnst&(J*4i9t(1AVlc$J|M)*xtz3YXGiy==Pw&?-zfiSc^~@d zMeGT#In?T-muG^qHS{;g%*wZ6{(BVjo6(=5>QN`GJ!0PUyq30mlSXcjnR& zF`lW`6PHsrNlu;J@y*rfp6Ao6;VoFd+MV};JdR{YCFhsSTix$IN=ga~)6@0QhY4E- zPZ|bxm)OUd&+y+Qfm>9*W27Zl9PW3RT z8pD^(9(n5*uh<`cIn0U>%93K%kakv3&hrAl`pmjy-@O$plarD`eN574AI8EQGWmZ$ z4*O{s8n;j~Spw2(ggZ1@$|*sb(`$3+=J63HdL8D?J8oO?Hp5}baLH95xPhz0s(!Z- zQ9$PVNz>xrPBbu@Fb_gHcq1}jNH(<}11}^}qcVX7z-eD>QIrsz!71QB$7 z5O9Jjg>F*_Mg!#puNLe9m1@egx97SzODn&&VgCKsyWojHz!Rkk1@WRA7UJaC{P=Em zZ~+c@0+(3#>xnLmS1mzRAtI4N85O=G_>YGw#lrEgB@{hyUMlv1#*oChPjK^y(9oc$ zC_gAl(q$8_;1L-lY8#;>42F#bC4uq^-5HK*qzp0KloAkPT9!hC9W+-w6x}NxLNL72 z3Wlk0yG1rwG>PjGp3K4n&1_-+$RWBtE z5gsGox5;h!AMv}L8e%#hGYwc2f+fIRJYosy(H{?X3H+_l?gY#Ri;YR{LE0h%?@ji9iBh#2`R|kuFHEgV%~hBD_+G1yv=d z_Q!;Q7(oS$FJD^`QkkT~4|-fP;A_B1gWv^y+k9Ug2t`*Jq;iaf8;10%=vBxqBBUI(=+2vYTSJbk9?3M{z=&|zy}%&_6I{o^XE zS*tH*k<4W08nPsYQY!pL2b%%`E}(qaGiv8Co8{dhKU|JRrht{EOA5@`7DRVQlB!Nd zF{N49S=jjGs5fPHS_oz^geu@$SRb+7T{`{ju8l3Dwx};K8f8FI2ATp3ttlAojZ6V= zQuKsDrl8jrxP?e0uEg8<(UBPzG~om@nFSSI`H`~VwJAMIpkmWBmf&o~ndA2!9F?3D z!ePt>ZIwwhqHH8bg<*;tnK_f8tz{q|h}@{tJ)#RheCVlUP16Wfiw1;f7i2mV!0N`h3(%q9O(f42xm)zJWm^K50pJ28X?DEQAhO3?P7e?gZ7#P0TH4qzoE!y3vW zmGM`6_(dv{q_97D)avC?R!Wo@fdDTmL)r%dXoEn2O(Cr5@C2&(AGr7JSwmw0t6~wR z3{P-6;IePS&ETbBxNkZ2YAsHYiZGM3wAWeyQ`m=4U&&EoA99E7$9025jEf&8t{*hy zM<;eew8_ADAO1_Q-m|8@eU^_I2;~&;c|fDBJTX%i8qi0}Xz(v0V>}<06WPMGT}y*1 z&2h1I^zNREj^g#289UlY%u&rqS?v7Lqi07l1Cs^rG|nZZyyJweL;2t_JG6)3n@5hc zf%n2lB=@o7rYtFJeQ7di(jLf0UzH95*2^oQA*<`KTv;i`aYwl9s&sPGOxwGNGLnqk zTv)Ot(6&)@J?Y-bTfH&zfdhB6J>(HZB(tozjw~y>cF69Y`>21S{`*NZJA@qpUHWIh z%Ny#c`Ls;f5r_e~WpQRb)}r7_#R3|88kf%sfpzo^$_qwy9^;3@4yi zKI*mE@J{EGXOB8s`lr&oeDxuV&ctkEyW77ZkJOt-N6xYC9rg6p+%>N{mTTwHW^7b_ z!zzd=%QZ1Hpph6>6sS5)ztUPv45Xo`3ol5BKTSEQ+E%MnHf7Z{lt!e~tLM=sdh_Vf ztI#|;;-bzxnmCkf5W&?h|D23VCg#v8wn5+Gnbez_nb~v8H2oxwbcQO4s=cAT;gER> zid6>Ao+C?iT19lG`o2b~WKEX{RXchn7EWX0_^=U<4_4tH=+2tWT=d#P+|Yco7ap&2 zDBIzCiN%n-w#^UA=%@{KcE7AQTSh;XQh~rRZsF3Y0doUg&A#37xKd}l%*CjZLKP~-p*Kag;J#%78?%HD`e(}wA(T=81#>U zfuCQ2!G`|?gF8@9KTt0Se*l_Q0mQ~1>>tQ{`2WHF|NkHLK)pcy|3DaQ2GngA1)y#- zU|?YUkN~vX0`4A|TO@#PVdHOLVBkU6F8^!Q1N*O`1@-?{!QIAu{s03X{{*1^BS7~c zyX6ss`Ue{Z&JP6)%%2Z{4dMU)|AG8}tZox?NzEy(NDWBL%q#Kq^t5sTvp~8yfSAwC R)5kR=GQic=(a+PD0RY6_d}aUu literal 0 HcmV?d00001 diff --git a/ghoul.sfx b/ghoul.sfx new file mode 100644 index 0000000000000000000000000000000000000000..b90ccc90ef8626d8aeaede8fe44de194980ab9a9 GIT binary patch literal 30804 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 literal 0 HcmV?d00001 diff --git a/ghoul2 b/ghoul2 new file mode 100644 index 0000000000000000000000000000000000000000..99f8d2e49c91ff0bbde85d6ec9b373fd807728a9 GIT binary patch literal 42792 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

Yw(bdK$Z(8@gpyX=uLD3fOqBrT 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 literal 0 HcmV?d00001 diff --git a/ghoul2.info b/ghoul2.info new file mode 100644 index 0000000000000000000000000000000000000000..6ab4d20a0b7719d19b96bb41e85afc679ce6aa02 GIT binary patch literal 438 zcmaDXz`)1=1M&=l3~UU{42+Dd)+d1Y4om_;voJ8S+IRx7LjzC{gfRff6eb2HwFS%= zQec4(2N;+?7%*7yKVT?;V*U?u4D26d7VbNJ`u~A2*bJ!K)HR@P zGhkp~{Ez^&+XC($m|G-(ZeinZU|`@u*e?HT)dTylp#}B-R>9rIeEt9fAO8fP{v$y5 zAiL!egZc*>2F?!!49uSofDPgQ|Nnvff2?j3b4kr9tw;?>%*-qC^z^iH0kc55IDnYX S&C|yA_NIcvj})Z ziRFUD9Mp$q)On94Ygu6X+0^N#MB_~Bl(H67k_a{R~Q+!w;08e^H8Xl_`H5`yWf@RxqJ56@JK9F3LObuU-1ntMa@^(~)P# zze46!<1%A7n}xfIn#;?_{J^S;j}tL*o(2Q*sW*ZxvRe@26N{2cQA)0il2b2YTu(+Z zNgqYUDMqGFGtP;vzsg=66dDk-cV(UzAP_;Xc3)XMMw4XC3c`Jgh64|xmLAd3$i>A7 z18!5JjN9~cM8%Gez=y;9SeO_1*NG3}Y-{X8x>YP0MVi5)AlBY9RaPr$XQ6m)6t|-| z5t&IulBq@f;a`AY#8?#)dJ=QVJll& z4+6G93a}u=rxKDDu>_#VZUcyZgs}T@;Ln_4LSexQP$EPVe0so1LyfW8hKzkfQ0W=t z#pj{8$o55<-Nssh^-z?53gx{ZRY#NMsRHtJ*p4%R$^w9A2MORC002?CiB#x}rAY^T z7g6e4O$qHsC^1M*3_?EA;3EcEfYNL)9JzxeV$~Vuw#`8{l#JIIUjQd)F1AFCu{cy5 z3f`-u;C6E29!!vY1lRUtlsSaQ*9u&E0n!O|Q43bkYr(u3wGbb{YU}u^!G~HwK0Mk` z_%H$JMyvp?DP*hkA!7?6Zkq)O=G271N(}Ol0U^2I=iCB!%FR@P>L;MZ=M)@+W%V4h z)j{z@OGP{xUqlDzX)2#VeQhI}$e_&cz-J3SNhCr;*rbS;NkmYGlltf`21KhNvR;_G z9@fia8mKZnR%JYhvV4~GkPMW9F+hb>APS;25L6d2#AE~h`KJbOwF-#TWD?P_d4rdaMS^`T zk>ZOhm~wsAMrs32AOsL97!g7X6C#70G(1R%e2LJ&i|2j_H(B6C{h3$G$VWM`Ne84E zcp(QPLOIL?BB+?lgiwj=>7c+$vX^}5(gz^+KyjrMslA4jR4L^Hl2UsWfmTpM`5bPN zj0fPxi%%Ui6akKI>&*GF)Ut-O)ILIxl>}Ku0=2tP99@{&mOR-yW!nl-sooI)#x^2~ zeV`-<<BC^Aj7Pj$?jnHH(F@^9)Z1Z71|8gmA)E7X2}3@=pGc|C z=|~#f2?s$sGKdpPgYjZ~95Ed+P7DXTkR^oB6 zN+&J0dT;`wb`MKsDhpT0(}>NkA;^|+rymqV4mnAuzHX~ev1&%bSuJovi{c806Pu2@ z1ctQqB`vnOVSxHbEl1!c6=|u=Q>{f+h!@qNC0;a+0N~F-f45=!0PS{Y2Q3ofP+~&T zEFa3-Stxu;!@-kT&P)*#BA5$}!xxpcTF#U#Ox`n=w3K2?7h&_qLF_pRo zw?T-?bJ4RTtH~t8;UO8t893O=V=@}aSrySzrUOAb(j+3J6Q2m$C(1JsQvua5i{ipD z4JK6umkB6O(fnyBT!`ZaVB^;!!Bb%%yegzah$eU*Kx%I=P=btID=})HPK4P*n2F=7 zFaj7T>CSioFt*Ja9C5unYa&4+9gcYdf++YLj312Rl?F%#dWGy&T+vAisHGBut52Y; z@M!p&MI(fV#3up)HQj}!W_CoX>CW0)YF6w6GuydVIPyi*dsB;pK)Ccg|!lds7%7@y9DNUVKJD&G}l@jdv4f1K0N z<=s?o$~1O8x%K!sg2t5nLWGI)CY_khak6F-ERq6rCP~UrHW=sNINB)2`Evq046n*c znWNw&4+6}Op)o62{$Qqs{XVoT6OI?P|JQp(Xy22{8O{Jo)ZC5ycqQoF%C<1^_Z8E^ z(3^oXmnybCrH!!!Z+&q}7GXP} zoNgwKjd9*UoE@5XF7zs2=1qeK=*8I&Q)P{ywd?&O^z9Hh>VCYWZ6+F3{5Q+jg7O@F z{t`eF{0RqngeeUk+nh^r&fWvgD<1b9lvrm^t#qcuo+&G^uyZB$wfBKl{dJFUohkQ> zn>B~9txi*{Ry+|oAvvd&>y9V{uTM%;uVa|cU7wi^TN6Wnk#RNzI5HN|hX)boFI=Rz zkDGZVw(&`(oPb_Faydh=RM(e(#f%Z8^*N;1+juT7X8g<4Q99{8;sR-Z7BdK&(&T>g ztvBIl&BQa;-fpnC1w#tw>G;jMegv$`=gHzhCPK@<_5&+!#EC)KIw36MoZ`EG|EXyb zTWW66BvzByz^A|ppE3r`QUq4TV`eEt>oc-(Obo7lCCrR$hUo% zCGn_f+y=0%fa#)?aiix!gGg^qkTvY&vYOPU2N^#Z#U$@f!y+COP?GAJdO2fnon9eK2E- zIv+=i7vhEj@;T(teoL*o+FaQO;Ih8InuaF9I5Pm8KLB8*RfA-^mnn+^kBk9WX@NPc zsth^Y#8RvLiS@}t6{#PmvVZ}zH}ox~D)MPd&=nvS&58v#eW#;#zw{u;i<6lpm4`9J zBVkxX)o5Hc^+P^x%40A9t@-A;iXRejGAl@z&uzlClOUT zY<2G~U@zXifEJ}HJBp@TDm~NnTuiT&f%mhf;F>(J6em(2>O{=CV_?G!N7xl40 zrqasW#8T)9Vx&Ye<}xT=S_D7LQ|t~hcI&KjC@Bu6QF(7fNP%k75``tDj_3 zPm+)gS+_obf7KjYnT|^W*PHus`4=)z zhjLNrQBx@aHm0jMP#&+LCl+4l1E`pBg4*VXJI>`u><#Fp4Z+%D;98v1DwE5dm{li? zQ*p~5h~`+#`jk6cTb)R4YB1kP6mO(a@yYrL=DaS;se$kpKOq1@MQTAksozntZxxz( z(ym+k@DV65J-4|Vteif!loY++;_((;plE$hspu6n9aYIWJNG-HRZrQm|DR|wyk&k_ z{tFnzr;Ib507Fs~RaKrIZHbl``mCdr^p``x^76CC%cUe0A$EeJojA(%HgN`{ZM>0e zAOO9Okt!Ed2_-Ixn97AdocBZ`qYF4$TbKZfriKqC=lx7ZkgFEEr7opx#8@;g_4^|^ z`-5m?Yv;X*l|n^DZzf&uJkakNj9o_;eJgeSfQh}T++A^df62{W&m5ABptMc(}}C0D1Oj4U+1IoIYjA7fK8JxL%)f4MrS>~ zoFsjE482MSTQP;BL@1StoSf#{I#vs$rZY_8edHXddu{M^Da6xVf#9H?q^4MD)D%Ot zD#GdYkt!NmFlVGGZ3)V%O4-r1pzFG!unW#%jF0<~#wOR2p-z%Cb45Ek!Tg%P17#Ft z{CheDy5+pXLTVDt1CM(F{&N2okB;_{+if<$X9oQPtmB=fvk%N8NguC=Bt^_L39KBR zcUWpd*cjgjqql#X1!5ZJOe`L!q2#ROGwcV(XB+4z9D;;nUL@9_LVby9pk+2kzvCUx zPJy?&cRwzvzPx5{E>7V4LvNvqgfek6MSpqWwiwf9`YB?no!{ax5Rt7OVtVwwd6H?x zjKhoOfN61xLBXG~o&qzjaN9*hMK6X^44Z-vszP{uSkeT~85_XUmkpktLR@tLDb`i& z$%NF@ec3Dwd+$~J9lio(pBNMsb@JW<@ceaA3A6~MGtGX76@G(dI&%7e@>U*b4!>~= zrn*eITR9AbpG7#tbt8kY&rk0gj(^h5=Y39Z zT@zI84;Vv_W9@9;X&Hi1+aE>cH+7qwZ)zbb>#K%#hAI7hL#vn zn1+6VwGLUqT?@hOL!!iI9XLvY8oqrh>$q*APBX; zP_L6D#Gh$ghj7jADFuS}nU4!DCCL3~;4VJw%nA5vo&KwaQ9$rliBQpnw9>OwVLlfH z3EhHvz3|#36YA%opU}?}Ru-Vmt(-s!OL1xJ>el+Yoe{>){m>jN6h7r4G8QmPgYt^i zrqe=8QXhFi-DeI^PY%pIjdJsfj-Ys})~7*1@C&bid&o44C4)>f4~4@4T9$T#eGjgM zm>LMz{#R+F+2_ZR*M997Q&K0rYy!Wtq%*P;9z_V1t}Wv<%k{!BC|A4n7Ak#=F3STZ zu9jWOdv6$Mu}2a*Ny4XIAi^Otib{rh`vXw_)gk)IXX2~>5P6O-TMR4q-C-P+T%1LP zYl#6FsrUYhYXXs4gq|rnK4QR9hh{X*!%ubQy(rzF9gY4<5xNEZ`+;%%ZFdCv_9vCY zvDo^eCgT+~tl;D1%)}woJ<7)gC~S_<5ky?yLI$FUxZ+v!Lk^ryJv^C`-iK4sM8!CZ zU-gWg_|;{m7YOqP$~Gz5Vo!Pj5Yrm!NHYFxd8`0UGy~;`Y;sJEIkgpTg$d2xg0 z59iY9*hg{6BBoB6Mpjo6b>B>vbea-O$FGc6rPCKBLOLz{P1fzRr^xB8a0)hO&PbmZ zuyPT_RLTpr?wDhHA=R#Ee*{OKOZC-5@sZrK$7odbbSp$s+De0hktiKE2tID#@5|LYpYrs4yJ>z~C?^=Ee^^dmYi+L7Bt5KxE4YH-YLY~K+ zke;UuB+rgT%aL?#i9v1#JTF~0_J4z4-M*GhQMw*iBwfFIf?PXCmICsfn_QHW7=v+=)T^+2QyT7{#iJqD6`yk7#T<9;m$TKT~Qy2Vq37R&xE9X3i|fL~pI3*x90 zEku6rqGHmTn+k{AjWvF8&(j)m8xQDkh8<$OOQo}hkK;;Kcz65Zrd|pTW3tFs{u=US z+eE(Vb|Iu#I>GX_pdo&x|FQ%}X?; zhA$doz28_eYd^9FWs+W_A)^O|a&hk}9d>Ma>%*`ketRBC-QFPA4)X@-y3WFm_|^Gs zY6MDj1@ec6$hE!Sn?Yh*hdNsK2gr3Y`;s6uUUH{~19#$=4>MA&&~jhDBQ<638Xw%- z>jBs^kE&Ju=@F8lOxb~?YYWMiV$QeRZzcEXi!q49Jr+Df-w;)+(xSfsh&r9dnf^Xv z>}I2{;NE`{Ja8Ul&RE;3zfy)^O^`xxH_)|LVYyuFxle;VzTyy4>K(Eu?6N5Ip)0e_ zi|0!URs@IwZ~B%Fi2e2kfV6I4QD}Ju3cgtI>*rs93GbQ+JijB=zZoPu{mP{4S1*w3 z0|vPOnS7CC}nP8!WYM449i?Qhr(J{gsZ_POleMvyUx_{J#ne*4VTt= zrQ^+8EKUDok3v@^k5{sJQ7DqzOj*r3dTF~=vQ+;>XJ z@p@Us6EhJYu}e;_9JyGM=V=FkyUek?X!0@r7c52`i?#B*Zh{@}S|@ps&HRbK`XFP? zc~X5xS8^X`sn}}iKKccUroX$2+;^jD&Y3{&mA>`}ggZXkh@`Z$8nPYcDS~jP?BAM( zuN$bp@yiJ$t!qUDt|9&DuLVJ1_bG_xez{J1PCRZq2YWppBykB9 zpIbbZQiXJ0dRaVXl>{js>*zE*MXt0YR9vu#^deThYE;NRc?ZdgM6EK|^I8-tBS97X z=>0@NG=whPIwcCuf#8i_btHxK7=;?4cxePtu$O;A6y#Xxtia_xwTa6p;Iyj4Ca3Nx z_YXO6iC%+I(q%yrkF1f5{yc=_+y+KGA@OuIq03_;UfL`Ptyl*{Xb1UAFt0}Fv^*W* z#DJ516O325on_H^K?dkESw}SjBo0lIbn1^p8{cTacKk%|@5V>`eU_widI8bdM|9%n z{ZTq<6`kF{C4II8N2>!_O-7t8lXM1A{X1_XKF$ehjL%{G>bx`=N2ObJ7ZT5?R(M{j z3Qyd;t2LQR!(+dQkJsW;Gd$-^joMHB92l=7<0B^4slg{b#;3adh&e1m?dSB28u9s~ ze5&JfFJxXJKIbM%K7*cw@m5xR#>a-3rB{j1oH>%u3L4z4=JUT3AL4U`_>`=);&UU6 zCtLA(a=`D$XYLj&KHI9}^Zb7`KJ{L>G(LmmkRy&-dI*|CK<8zHZjlO8m4sSa0h)#+Uo1e@Sln0=N?D?Z|&MC(qRYSktfLT4)>6FW;2XZH7f;<_Fgi5>DWS@7vfHg5u z`yScn-+Bmny%*59ERI^72EC1>W->^LkM)v4YP|GkKsp_j{%e3DSQ6(mVW2FYI1*CO;! zB9w7-7mi{g5ekkhAV_79Bq13jkJ}m_uo+qusX^oJ z=17XgB}T*cPb}t&MlM`l@!mSJwV<~Ki%Zp%POLMZ99QmNS=7*g=iLY8n^22JTyY8lwe!uwF0f7iy&B zKp;p1ouyq?L1Lx$6Lc}k3sL2QF2@M|l>V)3gE3uRqI;txckhB+(B)%94zoE6wVP;rF$ z?lN{Rsx->_q-Kcz7(3;=wi@-BG}#6=8ECte=9HMZ3R&%P5-Eo#tg%_0lF3f#s~iu& zfcI}p^(-Eye$nX;4c43`V9Q%L375g$W#z$NW zM2GjuSbPaiJMg1?vWJX0-nbW8cb34I>1MCVbzzz`>U0%Pt+W3!^uka(6iW9P_#V%x5wQyU;dD! zr1%ID285gBP?Q~!4%h9IQY!W#$0ZkBR10IEOrcdKzgU(rX+VoNasQ8O=F@f^GQl0W zFx~nzd^&36X)@1_;T$_Pk!O$PAxNGm?oG>oB8ZPk60pJ>!pi#prOf}+2QaqcoOhUA ze%xs-b#mNyQ&GFlB8*U6$MPW;vc51(O~<5|E?+qIC^=CMmkgJptkkO`E3N-dxjs~* zv_XhDz$1=I;^R9-PVHs-QqlnNfNv`5N_A=zt#Ppc|> zOwhat01C9_yfO@xg)Qfsv9!vSu@J_?DE{ghe6h+WV7*f@kVZhVE&-CoSoriI2OVFo z@M0GkZ%#$ykb$RF=o@9@S0;V0HVWswg@&}mizr(x+?6b5RRgdMl(!_)v>&vJ1)n8b z(>rjG3s6(6u``ZtC^Ct4XDVM0O-CA@^e)E1|=%*m*q2X1IHosS^&t0WA4YP z`z9T`YbB{#2Bz$d05}LhPmDW!t)I&0rWuGPi5QCV>rvhk@hFBudDmYunkzljK%@~R z@<0en#5jzb>}FW!b8)!NILi{m=Rwqj?#K29R-1fiK>Vm9S8{3}rfMidX*)qa0>mj+ zqbx>CG&9~v1Ed`w*C5G~;nm=Th7sC}+}%e$rbduEJ1lh&E8M10P58Kpe6W7_(B=h& zn$uiKDk=ea1duW+0kO6bLES2!=?Jj;IWR&)Wr!gd+#R2fi3hm`+Bv5B;4@u{xP{7# zNmM?b%CARk8Sbu%wo9lr)gcXiP;a&Ixm{Aa5h->^z=I^bdzh>T$a>M1G+38aL5u?M zFh!P^Es5;gRUqa|J|T%XLWn92ga}DacOtMtkq;<{1HkMK(!SA`Dwv~fpZb8L=%9cm zuGRr$rv;HRrjVNif{Y`G2*QrnK*Qp72tp6?&`9NyygDF-9%X8bPcF4_+!(e8=Fr9f z50bKBKNa>XWMOP4#ML5+!2F%(NkS;^2uRhk7m;cLn3B-U0*dQX1|aSUfc)x1T)#tF zgD$jzJOv)8@A95j>0(lRfl9}nMe;l<9mcOMAkXTca1hq9ON&1z=}ZQ98_L-+GV!be z6vh@Nds=Y~^0JRcWoeamiZe1Us51OyJWAzD)2IS!h>da2CGJBA;Gl+jJP5!80K^43 z0CbC$1|vGf++xwsBl``yt?OZi^3>j`3DI+Rf0gAYYv=~eu@ak@paaQE z=c9Z#eDfGIG7_UK{7a)u`6UVx=|Yc}k^_?LiIC)&glftB9bzQzg&(e-2czwI0AwJ| zY0w$qdU(jizjO}UDk({TvYP;Q0>l&G8gy`nhVxfDq-dF_0z31vP7-hr6>X-|bV*Kt z#`Xaql_=?zlp?TBdP=2+7Br+Qgo?-gEfwYJfS72*5@7%V5k68)MaBiu z`g9<~S}=IYz|dVw$8K!gtA~p$WOCWKRs71Vgpd-QKz3ZE^VI~BoAcsijrAodVYm^x zkL5~Yx${vtq`{#_ZY|@XgTpQwK2wsqm z^0cPGr$tB#d_X+?HjBZ_5sHwP+kxcA3qVXE6lb zP@GVB0>h_z-9U*EVW2QRPlq1*O{Ykj^O!2_;^F>wF*&JBA$mmF0K$$o3^_o69fcr* zuXcK;x2d{{`(c&bU4Hz^DDMgJ^cPpSnHIMgBqT zCu9kzA~&;Z7#`q=&wyiyQY%G0xda6zJ&%*(5cPqbo!E6_0_;eXeFT9#M)#*>B;rzW zs>777b~#4mc!R~2l%lKHZrZkkpg};fJyGKnU{SxF2B>0mObk;H35w|YI+kPfM`a{@ z45*&4=21Z7?LjZcGw_O5i_tykw(Tuwp2sJl+$?Pds9V7-2UV1a^OG&2d|upIr*n%A zw~0*6V@4LLZaaReZq}C@m0pRkBE1^SLyx0GxKVyfrPmC`F)9$@Mr{p19mWhtL_!1a zg+S3aI$9oO?qcRJ0sZi=-*wxj(FUwwGG}8LE9g8t3$bg{74_lLZ*CL59BQ!m5TN>< zi|#41piBTN3LL{92lNIERDiB%?UPXLZe4}f`5a@3+mFW_IXs%wvqzT^WtSZ$S4Pex0$dzl^EqMwErmIg0gVEHCLKwsr8P80}Ttv}-@pYGONE z*p9k`upJI>`#5T0y~BYOdEHK8AQA1mX>gpNKeig+GR*1_edg-Jak_9PFlTZQLrbz> zqfI;5)Q)pv9>eZNHWJXRO~hFQr_*D1G0xCi*Fl`)1A4-{^D#~u*^$)KEY6qQn;3h2 z#po1SQmt)T!pDY0Dw!RE$ZT`HxCU-LQ^uZlWAOf@~_aJ9<2T=Uo%xV<@* zq8vBk`BfI!0q~uSJ@k`j_P~i#kl%RE_anbY z(@11pZw+G?l{0ZOLqktyS?J0lvpz+NkIMd7Mkf^2M8bLULm@##p$PJht0 zY-Nz-dTp!N97MV8V^l#6U)O+jZ$A^&C{~r&-KB)p)=TV6^NT9%T40qU>5rjdh~+O6 zwoXCga*1`>Llya`p~a3U7A)MM4XtlQ4Nd0dY9Cp>M})@5V-Ci2s@}X2L|SRNQIVvv zYKoa&&4&i1I;n0PTNn6HHzrH%h?xs&Rn%cH=4Bh`QnDDc zZH3>y3EMpJegZnHD06sJ$GRgrI$oJ%48`-p z&6*DkN?}Xl4mcp}w)$%@GZcl#iJa%?Cl_QOnH`(k%Nd&}v1;8(*kOc?{3i#7q%aGs z9QCZZpLh-X1yNCJAGq&=tU{U!(*lfe9G!(K=)h8!>LlrIdn1xm$ESsHj^g1Y_-*ij zjUq|w78T&#;mMN3hDE^V+*g>E6+_Xek1ZD@X-OmJuumc!Y^Bc3^E6tx!52p6b~>zH+krz1fIBo3bNtb)3IuRz6ebo*;U6U|9JQnGZ2qk3lUh;wfinziIaCl+R^exjNKFd!LJij^A=!trUtpJE z1TFOx!^JwHg+iA(9a z>jc$F87;ZSI|DQFRzb?tX3@@QFpf#y`0Y>-=!T1sb%MY=%&HV_ zHjzT6d_zL8IId1yk`2m6mVpLR06q&b%?S;00sg~R=->N&maiC{sS7D ztNnr!9|#5=p9MhBUUXnt=|~VPp0NJJL zVME3_?ZEOf;qQ(&jaKCBG(5Ix+zXq>5nUC^h29mQ?^X(FveSSgaz3PFvhs*>M* zW_bil#P{YS$JJuoFB$N%7h|Yr=0ma{ry=>93!qHW}L&~e;RE;Rf z%@2IwU9jO^O5Peu9-?e4@tAUsLgqKk2-&-Py$-^B@v4l0=%)6ZG{1#_Ok*!8%NB9OY3Jh#Vr z4-<^p&EZ*y33;&e{+-B&WfIn>Pz0P5E>y^4Fisj=9CMq-bEd z?Ftvd{#*-S946fiR~lMD61R4gK??N26+Qf+%4LWZlbWJiqE$n~cbmD2(BiLHj8g$l)R)({^`=NyNk!y-jdZVC?)i%jfEs>`$Gz|`uORoKEV%c=y}ScU zmWz(SrSse|e2-g7?$zD0zW#Ec4!M5@=TV_-TY=-5^AYLZQ&c3~ON`}S>4XabMJ#B1 z1nSiZ%M94z{@VdcYvHAbnM@2f+)4Mayj!fQw)I$oq#o2{Z6A42-tp9{B;lc@xPBMP zLfn4F>sjcU$6RJue!q}@(|)F!NS#7$i+@70#VZ5Hkl*10$**|xHJqph_{l9ED8Mk+ zC_mPLT4ljy9Xil61wy%DBY7M+a0_{SoIHv~U?t2=;h0jBl%|~{kDk5c(e_{&d0e{G zPadC>9{JBSE7CJE$)$Wggzn7x;9gg^S+3OvU5Hvk>PktuI(^^KpA6-j^U3*WdZIym zmV@JCJ2lJsKFfJ2CB_ev&VPNF2x}}z&gU~3=38*S5$julF`UCGquU%RoquMMb4-}T z3R2-z5Nn>2jM6;42lhJWo0*tEZHrPu8CCGZ>tlibCL}AkSb8ob&-O1T!!yT#3(pQe zmkQL|0D7NpBf+a5A9t1Ky@-R=z!kODjbzOgPmxWL+WE@<@EDGs0Ie*VkA%>OQU72)V8F6C`Xc81ub#GC}Is)E+k(kd4=9@GUfX7iJZ?4!^2hLAh1oimmQ@WXJWar8-PaXCkR? zv(yLGe;EJ+VqY)R$Y{*yz}559MCrJ6JaVk+wm(Cne;8=MvGUq7iaBqx7TNO`8&?-? zAMpVhig!rS$p%pBVTi_>Bl?0t?P1rQ@O#}(%kTS7NWZ7Yl3!Wbj=z&&JY5DexO_x9 zZ@C`FZ}hFOn+qh``!UC4sndsk=_OrQ1&gCP87S8*_j0NJ1@doePt~m%25OIo-_()B{e1z5+X%BEI>R-v_^0*9?ajB?~T%r}kMcGD8@`iO+;xcC@)Z#`R=ds5Ul`F-h zDRqh^15wOL<2NR@IF8z-T{R*DWkgCP3#B|nEO;5Q_#hA@&?OCoSa1i?P^h_5!}ZeZ z4rGIkOOM5cMv{~oarqOL*|~V02=({kIOMBJLRSroNnyd;b0ndMX-r#p?bQfj7JWMLlD?K5g#gR%jmp2$IJY|KFjp>nWCKH<< z+h3Ip-J6wt`C>Mg$7Xc@Q;gr8N9~tQfK5dP=Z2$|bS@80UD;;NFSpu^MMnnb%c}>+ z+ABa~%SC+ZUml&&J*cNnZ|NsS-Jc{zJzL?}?RNrHSGFH3K%!=VHvCru)bdIJqS0o& zj8NE$P#y63=YNjSye#VB(Har@_P-}WAoSKJGC+4(0iwCb>;E}GcNP;NGqJh_mHcl8 zXqg-Wt==`7hU2YI$^Zq=Qib(*ifRVvJmc~V zHAlsUxtXA$p^NdEh`w1p0L8bQPXluTt$m8RF9b1|*;;%AMlBwbA*yu>=}P}*IKCYV zQM`4=sw>Y}iSnFnANVyf3Rodp6blhC`Z^XO412VHj{9h!my8Ug1kt~062j0j=yl=~ z_c8IQ^}giuPA4+n;+zc8E3(ddNg(gnUg$DZ%+aw{k4ABCMkPOk+ z6rx`+b2%kvL6=d033c`&nDCSkg|yj3fxlZUDU`^Vyiy&L#Sh7mhu&3-VqW)HL^xX~ z0^j3dFhsOh79~~)YWN>x`4_8# zh^w0p9-6Dz_eL+*Z@FI%_di^$y@qSCd?D#I3t%aYo=v#Ua$G~WjJ*^Nv6(?EMtB8D zR`$})_Ddwom`lmOKqC(u*nL<)MJS~qrqVjG6wIpM1)*+`Xl6(tB3E+;t;TOLqVRUV{__bnOpx)#pc zQCI^PHBVVR8-HIz87*%*iqMHffUeFIEU4rV*K4S0R{5(|1YcLhT--QiO-X%M!(bSx z*=em-bG5?qF#_I1=oU`~-cwrm!}<;F-O=*{V3GQDFtR(x0~ zb?d-Shu9b3NaGe=>{VuSWeXt@R#p&M&2iI!vUXra z)r1W!RpX`{jZ8&Yj>JM@k$i06|4JtL{h$B;J0q~0I>C&Wqf?#BCK=8*<^pQMdHw;QR z?U;X%SkcBx*07LF27#e1*@RW4MSCr>m`&w^u8csjtyFe6B?e`pcmzgsVRTO((jJv*{85xygo5(#4~(l}GYDdW zHw~hwx7y|`vbl*8Et?#VWYO#Lk@`9S{NE8tm7ek9>vXd1L+Uo46_reU7qEb*z;J2F z{1%0GsPGIjJUbhyhLws<5%l_cq-J2m$G)I_Fb!$EDP?3(@y-P@qcCROiwv;|EX43l zShmM?wNF;&R(R!D=Hd!&pCDB_z~UuM!8pBDUKzV4i>B(f<2440G0dh$JF?f*c!isR)P!PL3nsc`4?2{<_n?k|1Wa62EH*A;pL zqbTl8_r)HxoC)W;aqV{3R*@RZrg<(>0+le;B1bSTft>qwx6mh zE~QBU9L{1pV|hDk|2vpwWbl=kUDRhc{6kagS;@50BOPv#+qwinkzQBigw zJH}i_w^#PKS-o#RI&Po}?8ghgN2HbYfi3EO%GLvgdsOCZ^3k4H_Ro~PFtAl-#~B+= zGz+p4n1wc6)MW`Xao!7fzXFxi?7 zfp$%AV1a#iZN)yZjwKsvqrJ!RkY)LRm3i%i?ISXok=eF4n+06gs|yB*$eG zzxA&yrvCWv0%&qXmp&iMeP8C*ekLb1%#;>*tOnaX2Tp=zq3cPRGPA)87aT$Ch&OVv zb0ddB9tuTZ^*Dm_(6+MULztQoh++V7X@fow3oKU+>^nfldFGeX`_5#}4CckHMtC(h z=3x)x-2?Bqo6y)->R0i6i)WJ|-Lin@VC=o6A4%ITUKlrBIl(-B<~`4xQ_chij4K|m1O4G~IBvBh zZMOx#fZb|SSlZ`IF)lFY&GYs#wsTOVxs};1c{)GIYWbK)N9JP+?&-8@#qN@dCi5K& zvRTtJFI=}CewE?PeebTt?)vS8tz`D?2i`91! zp;|CwHIwb=N@LsktWc$}avo$&Bg_G(_AY37%!>gPjkR}O^XoaxQU2qd9pI90fAiD_ z8sp2Cn+OH6XP>z}G?OVsEh<{WWxG)GA}jX<<=RVKewM?qjf-uD7Pog5W0{%EEA!5( z*?cYi-4|>G2NfTN!Q-qUZ`t@KpgPKdGZpZFf`8soW zY~7|CFziZ8Z(7&{_p=6>QHoyzFIAZ~m8pz%{}XFej=wG7LwJ2l$U5hAbM-B3*Tg9Z zEnKj`ZY0+cfs|3TPclbwbkw?AI>BjKPWjX5lIxb+;1othT3JPCKXatsq@Jo0L%c%@37g zE9Kszw-y$|XZahYGsiRb^@89(Yl zPI|0EXv5JV9lp7c8D^X^Sr8$oDT9aZd*?u|OpXt<&wULxi}w^g^$B*dn3GCp=3(df zTB{Yr5C8V~sARZon&rSdbK>CeBc|l%7b3E#Obura%c0&QLK3mlSktJHFb(do6O(ha zXLdcwb5EVT^Crm4+?JO;U@hpIFX(U2VeDkNtFDwcVrHw&@Ri?Tsv~D6_VR{CM>VFH z<{7C@mFnamKO-A9os|+SS4b(ZnHt}%XwXd%<~_XoR2>plVLXkdf3h@Dj!y2Tb(U=Q z;`*Y&8czaw2a*if-e5+g?TCoTDBZx=EYwiZ(^}e8+%9)@W6TQE?0x&$ub>Uf)4FUY!dte( zpxSg|VVM_$F2_pr#sfKrnIPx1V8GWEjkR z(j1O3cLO%c+b!e5iXdq zQ-0fyb2si~<7}h6_7puStMJF;bo2(r8Bg;8p~+_jJ%5?0oCh&JKVtV@@il&*^jiEdXPSQ*QYC;Ha18F8me_>4ZjGxIcFT<<3P9ds_@TSJhU=-m+ zk(ix86m_J!7mQ>nRCfCN8u1A|WbwgOJX6#DGM`Rj3a=;$;~yn71%`fLrXDlVeo6sK zCA8f`k1Q%&&_-|}>Q0v?GN-pgX6l(d)~MQq2vooXb_#N1pCu<$mIsjYk@+;lb(oI% zjH9Q^;-L10frh8Pr)QUOg`IEUA4iA`{6g1GK2#T`6-PMAty%tds>{Sg@oUV9* zFG7~ZV2NITh<>A(%XQdMH$|l#yke2|SXN+Gwbvpv)k9{I)&x=5-eD$5a@_QswDVXo z*}*#uk>xPgksZeuQ)}4ivCFb?Ki%N6-chL7`@90;Lb++Vv~icujbC^fp|nA_;T6vp zIk15(M?OreC7((=!%UiWhX5MXlUTgkqEm~^;AMeTbW9JsikbUvk!;rWL0Q|hcu*IKB|W5>KQEJP-YF$B`A=!c z^0@y+S=>i=2c76!T*G|^)+N?wHTZpF_e*AYX?(5&W9B5e?2fJegSp9n8hHu3-p^U)CN6vVQg+!-z}!)s zpq-bK1A!(?{fdY@JYYbzO^f1dmd(+tSJbd6DUKOsQS|bQjM8;9B%_-&@qS50ZywN& zoL=`(RT$0J5Mty^T)hW52}fsDhfyDuDKE$IM3KOPyA?z-sn;}lV~e2xS}(Av-M<~m z24W_kJo-Lz?DYN`CGFAQbaYg*2sWY?ig8BUxu?Ny%p$g@Q)b*Kn(K6a5#>c%V`;FX z#j*KOI`1fVzK1NudstfBW?4+ajuNiZLtG}K`m=LXGD5`O@j`Is(@S=SQ*d9az%N0Bag^_j&oCBtT zW2%CcK3bu~?Vl<8C=b_;LM+lyIPMgk6+XlaMB!#(=?TWh?5q5NZ21iXy{;dt%XHF{Kf#)8*G#&kMCH#tm^Bue#Xo`eRlodquB!gOVQVj~?e0XpV_&L% zSEXP^<=ZK<{g;%>+bO48^4O=U2rTeM@|Ue0+KcKfq*9pLk?D+B3clM8#=ak9Y&yR3 znX-sT*~wxl>c~q%_;xQqJl{l~v$}B1@QfidjKq+_-2lhtRNbX~h)rSc_LAuGN z1lt;NgEJv`IAG87Ii-rYN+9|qC3uLVI!fXak$_ic5&xvhVxTwGK#}`&vUy7O*koX_ zfFhI!G%}e`S=KTsl;KoX-6)e4+84=B1Ytrh#M*aPn&1nA)Vp)2urgVu;*K5$Nu;_) zXhcg+=mbo_G8Oh@QDNH*%i$2jP80=cW~44eamTGPoe#mVBNoYY+YT}_$uf?wI*m*5 z`!~TB;!D#-%Q}~(=`R~1zLu5su)-IvK*`yUE`V3Z!(@e1vWTwm;kbDMrQ6m>>)lb1 z_d>F=f7(a`xrn!1Gvpb_(Iw!Q$P55Hn=A(n$tKYtl z%p0cCVxi!TtPt>JL0BX5irSirMlxd`5K4oy#hC!A3t1R8t!$$@`$;R?wu5bw*{YZ0Iuz&B zoF;yt6XWDsENbm%x&T%2IGW5=_C?@1buq?q#S>x3#L{k$*EZmSQiSG(fqbQ6cOLvY z9$iqcK>Bqe+le@b=J}BQvz2Y1u)yiFvb+BU%N_W$l34}Fj*4a)(0tlRv)Ibk=2JG4 zXkiZM1If0?j6jymbZRpFXAdq?;j6JZ#~)m_?o%$ptcsTyk8C$TjAX~Mr zBV5|RJ2Ygo0G{UavIa6QNr}E~Mp*4};;mf92LJ1>g2(+ZJt^m<`MHEmibwtt)-WXV zwUz@-Ik^}yZWZzN)Zs($jCUQq;=Ul>DNu?nw5mgAy-~%#;S%|6Q)jg_FzFHF<|mhwnQL|AyY>~C zPAO?PbF!Yyrp=mVU_^GiagwoNaYNRyng#G|{Jj;9W}g;GB*zBxScdJlML+N}by#$L z9=g{L6&Q!qCf^7qP7Z5{w|bKf&A7}zbw+F=O&-<{u>zz$cXBm?w8#?MfIW&ve2D~vW$kV0VSQrmhS}SwiNbMdRRg@V}ng8cl;yDD|K~HoQjj5ejX} zfh?>L*tM48Ykt!5x@dhlyxO^@F&4t~!QQp>X}>g&(XsnExyWa~FT!9~x=gX3sWT{# z)z#YnImlRj@4P*Wkd=Ds*`f()vYC63U&_+VLelA&a_Wf)VxL@6a{8H*G~gt-ep`ac zIK#+>(H9Pd!;PVf=?B;$Ym$yv7V)&mUa(KGUs(G=9$LV=ABM3qoI7t@2p~RW-HA$H z7uGH>g}Py+u0_Qu+Ba|Gla0ofFJbGMiK^1jTW=KblsFSh!Q`nBrBSDjJ>7S!TqXsh?9+IoDUQb20VGwkt&@6`YKuHK~r3Y3q8?Gp38$PQzSzpEH=b{Ft%#2(c$ zY+<~#?FpG7G=TEs^%WxN~16ELXCz{w7`8e~rhJq$W{rXB`y z1cDE4lcq6lv>QkU^OR#4l@MM1zJE%CiL2TquVN1U&t%Y@!)jAtY6bTH<1Q>4!=U4b zNR`3lJxGb`xalkKW(_2RusB9f*cPz-v(lVn`=)P-nVq$ixmmn6Zl2m|1q?g_BF(uo z{HN(mh!~PFp=>f>-uj+?_$ba4DS{>&TUvrG%&z^2%&LyR9X>{jb}d9QSVoleLX8@k z-t!L2tTWjQD6fd1VsNcTybnj@IzTHY1}#yWJHe9gidoHnOIj84osGh<+Fs_0mWA-C zc4K%{!;*e3f@xKhme}R>BdoSrcMYt$3U`sUl(2#FdF+mlg0g(dI=Vnkmzm;lA!X*U zj&~HxOj{2Fea!bQE`4C9)#>|D)Y)0GYUm@sVK(tS%TE2@B4o#$11B*%S*+pxuyX)| zTFgS{`*Gh+xRQq=Sia2|?nKA2KIzG|-;i+3pA`IE#0YFh*xifrBpd~4rJw$6&VGwZ z`$efJ?yZlLio!eTWGQa7S6cE$h)Da=kx08>MsU30_Fd8ps)%vy30C1!3JRFC(onDM z>tw~d*^jabt8@3$%+{cn*0q<9Gw+j+%3go_;Qe%s)}*F^_W8*umbz>{8TkGgGT^DC zVH`qM%RN((_LH>WCmNSpsBdPYSbWEDEkk6%c@J&uJE9ff*!(GrLb5baXB2|1@b*)S zk=5;M!~s`t^l%CHPNPe_%5Zj+Ow@Z0qu9}4CXT+REFz7h9oMKdvUBa!EM(nGOkjup z1d#Af)6veb{vNBCn**g_WFJg#vLAEHU>sY=7&S7`bA@X({f#!hd}=nbu8%RgqNRob z(qU(%pJMAs*DE5%Y8fK_`@~RvC5BG>M)zK zcIJ1XNY&uvq@7Hcb9(hDD&Dz6J7nJdBnYD+#w`6^TH29MmvF=H&Xb&iP-j_k&e39( z*O13}MrKb(o|f9i>y6 zkED>@Q;bXsI8hR?gaW^<$)T*Lry5n3R1Lj_U&ABTC{{aEj&eUPl7@z&v=A@dBd_K& z=p8zEoH{U$>H^Z)-u;C~|U`w?LO3-ixX-~a#s literal 0 HcmV?d00001 diff --git a/ghoulpic.info b/ghoulpic.info new file mode 100644 index 0000000000000000000000000000000000000000..ed597c7f73416d0f37175a4b15ce5718fe466a4e GIT binary patch literal 466 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

(LgJ0e(I_GB6(w3rS$D@f*iF&%kqlw~ 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Ƅi4n47l}RnNCPaI==p{; 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 literal 0 HcmV?d00001 diff --git a/gloom.gs b/gloom.gs new file mode 100644 index 0000000000000000000000000000000000000000..a7c53c2f4353094c499deb74c0e100c0439d7fc4 GIT binary patch literal 11580 zcmd5>eQaCTb$`|u`Dj`Gwq++yUi^_buB?%=?ATS5i4vbA#uUktv?UorWlE%M)f6d{ zls|@I@PeY~ilWGd01L7GlF6mhGHw$0tMP_2-0j=n&c%pW~9G38J3_0xi11Ky_BfvM=sL@MLs?KwfafVK-do*K(e zj_2_9irxuQ_By@p0Ph)|^SAol30l}_Vt$5F-Vv-Dm@GSh%|gaH*s7jQz&7e7u`@lu z9u|x;@y@4XA~iqL0c=#iJ0W1ADX}wHuRAMPJ226+%b%eUN3mY_UD=>agJmb@XEp%)7YoDrd^%F23Tq4McgOY& zuvzHUrlJp=p0W67VcQ7y`OtcU;k;R_+vYUXA`{pdY`0wz%*vaN(=m-bBUp!J1F%^{ zx9uB(F)s`mut}`jz9Sp9?bGpjxXfw$XTfayfK6k&UG#Q(ESbP4v)vOu+9%5nV6(&? zmyI33;9owB!zkj_&O`b1+I)%mF>JNh6@sd2#d7dx`_qEi{ydYKkHYr$uL(vQq@p^2 zF#+5EQZVL(eLN z_zT&fHpU8K2w}$?g3&YZ1|RZ`lJ9-}?l6L)slve5xm&P=#g~dF{3Nhrf?3%_Jz1Td z8NsY=zGFz z#gJ%hDvDYT>=x9rglIg;&K)q>Z=VbFbSgn!lmF~(a&7>VBF2= z^!r>Znu*518$2kIt$gTWzGo41Cpa!BGffwdD2E{nl}IoBB<}lm1i+wyrnP4*(5lIl)*obCOEK@9Pm|^?1N# z8AKe$Qi)UsnyfeVPtA;U)W4i<>feqN?o8UM^``!bni!+P1vT|gy-l2e#*^bIoNMZT zu&Gx7s6Xo?PTi*d)2--eG>e?>HueA2R&>hG;;P?m>Yo;g#gwe`qq`tmSAe2w`4H7v z+x?W@aXt;ycmt@ehwkfw-T-P@qi=3Rug>^xQ~y?13Z$cq19i6R-$;g^wayz% z{qtVXsdWed)#q+78DPf0rit5&rh;B zp_6SMkxlAn<7`0CZ}VB%9B;*Qlkwz9@?R7D72qbnAV23PeBP@zUl;t3@8Ji2hWHJ^ zt*@RS^Cy>yqg^1N;Tq3U`8SZGykhdj6?2rWO3NZLi>`fm`-ZC;ZbsTEwkOE&J zelF*ua<{`5>iH%pq>>dyd`1r|XM0&FUTr;vwXQ<#Y=2rPY+vENk~}q~uPn~?Zwf^( zWXLiETX{QxGdiHh_l=AjjfoPN914WQATQu}Qu&Qs4!s~lRCj-KK*+Sz$YXwHB}Y~opIw4=!k zN)CHFpA(w%&9g{j>>fZAcbc2;^PuU`^rVR=Psg+I(S(m~yz>o_^HQrE=CyJUZ0!}V zIiCcLWqUR?<#S3+NIfV?FM~#OrtN8++p3ZGKB*`Iaa=SVp$VQVRVpj}HNN&rZub^O zf~L>4pX4Q^w{Fn4-+KEkccEUZyZh!M4?os77kT1|BM0;0M?-G0Tv$Prdc~sNmmo!q zYez}}dDWnh^0vEDxm0xbh5PmwmX;#nVbh2m9rF4C0vl$N+F4T<8>j`XSQB;2s; zEPj52_|2QQZYhZ?5Lp;FTzKqP@&kwS$NCN*%s*xfz6t8@inQmO7DHMhfw=7YI)46! z_`3G?_J%YH_*kDMQ&js$$JzY_k@gOxAw&2C#xuUJI_a+W4aMEN&RusXuTD_cKDL$e%z5G(WSoQKp@mej`*Q#Z&c+p#4^2(KR(aT@TFP9i! zk7{`gFoZFm5U9DxJnii(V0WQ-vA^c_=gVTQp(%uwZ-j&Ci$qpz4KWAvN0B;686nC? z`gEF`_i*3f!F&X1(A*$T^Zh6ZP#BHl8;(NG-2boIQ}=zp)l-RR7G3qeHx0$DTQ_eR zPnGhudpu>iru-3IQ~D6DX>l^O`Pd*_`0d+wZiA_R;c|YtJ~tvQ>zL{- z;qX8sH55L8N?>U)SA;=0fi#YO8?xV#vp?57yJI?DV0 zUcn@B_eG8!Ievth*?$>r7X|1pR+zCNx3I88YO}BX;YyoeO|rml;S>A`t-%8!Xdqvs z=6{JE*bRJ`_YX#NwL|Agj0(d5r-{=DYTYku@)xWX{Z|1l_hVb_)tS{HR0|VgnEx06zVCC z27{8;G8fFezIVFbJCNZ~4tlv|?)x_L!g2QPXy%S<>HrnK?_vBXnzwG>+DeanxH=dx zm!)QYW00$w`M(qb#eP5~?0-hAdGlUt5^>%K_Mua2n(gav{|6Kcwt_ZqVD~A(wWgph2|nOs^o^a78at7JkP#$? z@f+a4h_+|{%dki8f$mtsk7l$z`w^J~ze<`v`GY_GG8u;!p>>t|*$Er!UqoM0gVLC& zvj86;&`75YE_p8K3b+|^j+?|+V^!UEjSNcDR1H;eGe3a2&F8>bOIQ5iA(>00lBm4{ ztN8gHQrvvEb5FzZ5i{B8-qq@Ixn8Q2&mp`jL0=@jeh$0}xv~z$GSO-Ekw1@}1ApZ> zhaV^O;#a=>hsq22$Z)-~%9<$@;R@Ui)>g{!PJUo`HD4;$>&2S4kgpZFH8@PW};jw%#-e5e(+IqGj{tg6{~gjJ)2Oj#zq|Y&TA%I#U%#V zyIQLkSM@#;j`714V-30->+{Z6E_*9$i|4(SO10>r*DRK5=ops7s|_{K&)t>f!d0y? z%6nn8#9LUovRD$mhR#*$^*n^Y)Y*_r4(M1o$`6CW+G5e8#b7KIZG+0ib0E{I6(Yk* z-~NkzULibuwf}N|zix4=C*;q;efS7LLXl%-t+d8v1b%Xdu6nfekara%GTZ0{r2=Y; z#EKN_+U5Kz*48GZ=}j!4H>K)&ZICub;^GQ;kHIXlgkjMx(8md+@2E`>H(c#1cPMqT zkDm4lmCI#%eb!qp!(8ooWoQj|zkChUZO0|-^4+p}gN)?w@wNm$D zO$R$JDlsZ*{Cp1|g{z|J`uPR{y0r!dU3Vz9Y7ja=?;pp0ZTZ)VCKL@%4AtuSYTYZ~ z8{S*0R#v?8#j2v}r=~i|nE=N7ioify`mb z8K+`Lfryj|hFvF3I!y*m-}LaARMNhx6a6Rlqg11qHp zIPEl28ZEeoBWkYGO3=fxB1>gSzFepwJn+Gx0W=@dXjR;h>OgGp>TXi2E_!wFuc2); zJ6~j2TH)$y<$`K_M@%n-PN-+|^@-*%gi@bX70dO&FdIPO$S}TFu3X`Aa9CT%^--+X z%J^QDB*7m*;4elHN*-~CN^5lwAGK9f{s&pUP*zz3J<*?GBC|=~Ya|2NKU6wiF;y=B zznSHO?`U7c1IR;N+|6WDZtCX=znlit71RC*UCLvvjvSX3e-Aku0={Wy%8HO$0fCG_7UE!uJb literal 0 HcmV?d00001 diff --git a/gloom.iff b/gloom.iff new file mode 100644 index 0000000000000000000000000000000000000000..c38ae04033c846d229f6504cf99ec3a860971c65 GIT binary patch literal 9082 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 + ; +linemod equ 40*7 + + jmp entrypoint + + rsreset + ; + ;rotpoly details... + ; +rp_next rs.l 1 +rp_prev rs.l 1 + ; +rp_speed rs.w 1 +rp_rot rs.w 1 +rp_flags rs.w 1 ;what to do? + ; +rp_cx rs.w 1 ;only for rot +rp_cz rs.w 1 +rp_first rs.l 1 ;pointer to first! +rp_num rs.w 1 + ; +rp_vx rs.w 0 +rp_lx rs.w 1 +rp_vz rs.w 0 +rp_lz rs.w 1 +rp_ox rs.w 0 +rp_na rs.w 1 +rp_oz rs.w 0 +rp_nb rs.w 1 + ; +rp_more rs.b 8*31 ;=32 max verts! + ; +rp_size rs.b 0 + + rsreset + ; + ;sfx channel info + ; +fx_status rs.w 1 +fx_priority rs.w 1 +fx_sfx rs.l 1 +fx_vol rs.w 1 +fx_offset rs.w 1 +fx_dma rs.w 1 +fx_int rs.w 1 + ; +fx_size rs.b 0 + + rsreset + ; + ;blood! + ; +bl_next rs.l 1 +bl_prev rs.l 1 +bl_x rs.l 1 +bl_y rs.l 1 +bl_z rs.l 1 +bl_xvec rs.l 1 +bl_dest rs.l 0 +bl_yvec rs.l 1 +bl_zvec rs.l 1 +bl_color rs.l 1 ;colour and! + ; +bl_size rs.b 0 + + rsreset + ; + ;a texture + ; +te_pal rs.l 1 + ; +te_size rs.b 0 + + rsreset + ; + ;an opening/closing door! + ; +do_next rs.l 1 +do_prev rs.l 1 +do_poly rs.l 1 ;door polygon +do_lx rs.w 1 +do_lz rs.w 1 +do_rx rs.w 1 +do_rz rs.w 1 +do_frac rs.w 1 +do_fracadd rs.w 1 + ; +do_size rs.b 0 + + rsreset + ; + ;wall list... + ; +wl_next rs.l 1 +wl_lsx rs.w 1 ;leftmost screen X +wl_rsx rs.w 1 ;rightmost screen X +wl_nz rs.w 1 ;near Z! +wl_fz rs.w 1 ;far Z! +wl_lx rs.w 1 +wl_lz rs.w 1 +wl_rx rs.w 1 +wl_rz rs.w 1 +wl_a rs.w 1 +wl_b rs.w 1 +wl_c rs.l 1 +wl_sc rs.w 1 +wl_open rs.w 1 ;0=door shut, $4000=open! +wl_t rs.b 8 ;textures + ; +wl_size rs.b 0 + + rsreset + ; + ;a zone... + ; +zo_done rs.w 1 +zo_lx rs.w 1 +zo_lz rs.w 1 +zo_rx rs.w 1 +zo_rz rs.w 1 + ; +zo_a rs.w 1 +zo_b rs.w 1 +zo_na rs.w 1 +zo_nb rs.w 1 +zo_ln rs.w 1 + ; +zo_t rs.b 8 ;8 textures + ; +zo_sc rs.w 1 ;scale (how many txts on wall) +zo_open rs.w 0 ;for wall polys... +zo_ev rs.w 1 ;for events... + ; +zo_size rs.b 0 ;32! + + rsreset + ; + ;a shape to draw! + ; +sh_next rs.l 1 +sh_prev rs.l 1 +sh_x rs.w 1 +sh_y rs.w 1 +sh_z rs.w 1 +sh_shape rs.l 1 +sh_scale rs.w 0 +sh_strip rs.l 1 +sh_render rs.l 1 ;drawobjnorm or drawobjinvs + ; +sh_size rs.b 0 + + rsreset + ; + ;gore...body parts lying around! + ; +go_next rs.l 1 +go_prev rs.l 1 +go_x rs.w 1 +go_z rs.w 1 +go_shape rs.l 1 + ; +go_size rs.b 0 + + rsreset + ; + ;an object in the game (player/alien etc...) + ; +ob_next rs.l 1 +ob_prev rs.l 1 +ob_x rs.l 1 +ob_y rs.l 1 +ob_z rs.l 1 +ob_rot rs.l 1 + ; + ;start of info load by prog. +ob_info rs.b 0 + ; +ob_rotspeed rs.l 1 +ob_movspeed rs.l 1 +ob_shape rs.l 1 +ob_logic rs.l 1 +ob_render rs.l 1 +ob_hit rs.l 1 ;routine to do when damaged +ob_die rs.l 1 ;routine to do when killed +ob_eyey rs.w 1 ;eye height +ob_firey rs.w 1 ;where bullets come from +ob_gutsy rs.w 1 +ob_mega rs.w 0 +ob_othery rs.w 1 +ob_colltype rs.w 1 +ob_collwith rs.w 1 +ob_cntrl rs.w 1 +ob_damage rs.w 1 +ob_hitpoints rs.w 1 +ob_think rs.w 1 +ob_frame rs.l 1 ;anim frame +ob_framespeed rs.l 1 ;anim frame +ob_base rs.w 1 +ob_range rs.w 1 +ob_weapon rs.w 1 ;weapon meter (0...4) +ob_reload rs.b 1 ;weapon reload timer +ob_reloadcnt rs.b 1 ;counter +ob_hurtpause rs.w 1 +ob_firerate rs.w 0 +ob_punchrate rs.w 1 +ob_bouncecnt rs.w 1 ;how many times my bullets bounce! +ob_firecnt rs.w 0 +ob_something rs.w 1 +ob_scale rs.w 1 ;scale factor for drawing +ob_lastbut rs.w 1 +ob_blood rs.w 1 ;color AND for blood +ob_ypad rs.w 1 + ; +ob_oldlogic rs.l 1 +ob_oldlogic2 rs.l 1 +ob_oldhit rs.l 1 +ob_olddie rs.l 1 +ob_oldrot rs.w 1 +ob_newrot rs.w 1 +ob_yvec rs.l 1 +ob_xvec rs.l 1 +ob_zvec rs.l 1 +ob_radsq rs.l 1 ;radius squared +ob_rad rs.w 1 +ob_delay rs.w 1 +ob_delay2 rs.w 0 +ob_bounce rs.w 1 +ob_hurtwait rs.w 1 + ; +ob_washit rs.l 1 ;flag for un-hit coll detect! +ob_window rs.l 1 ;pointer back to window! +ob_nxvec rs.w 0 ;normalized X vec +ob_lives rs.w 1 +ob_nzvec rs.w 0 ;normalized z vec +ob_infra rs.w 1 +ob_thermo rs.w 1 +ob_invisible rs.w 1 +ob_hyper rs.w 1 +ob_update rs.w 1 ;update stats! +ob_mess rs.l 1 ;message +ob_messlen rs.w 1 +ob_messtimer rs.w 1 ;timer for messages +ob_palette rs.l 1 ;palette for window +ob_paltimer rs.w 1 ;timer before back to normal +ob_pixsize rs.w 1 +ob_pixsizeadd rs.w 1 +ob_telex rs.w 1 +ob_telez rs.w 1 +ob_telerot rs.w 1 +ob_chunks rs.l 1 + ; +ob_size rs.b 0 + + rsreset + ; + ;solid wall draw data + ; +vd_z rs.w 1 ;current Z +vd_pal rs.w 1 ;palette# (0...15) +vd_y rs.w 1 +vd_h rs.w 1 +vd_data rs.l 1 +vd_ystep rs.l 1 + ; +vd_size rs.b 0 + + rsreset + ; + ;palette file... + ; +pa_numcols rs.w 1 ;how many colours +pa_cols rs.w 256 ;the colours! + + rsreset + ; + ;anim file... + ; +an_rotshft rs.w 1 +an_frames rs.w 1 +an_maxw rs.w 1 +an_maxh rs.w 1 +an_pal rs.l 1 + ; +an_size rs.b 0 + + rsreset + ; + ;window + ; +wi_slice rs.l 1 ;slice window appears in! +wi_nslice rs.l 1 ;next slice to disp. +wi_x rs 1 +wi_y rs 1 +wi_w rs 1 ;how many chixels across +wi_h rs 1 ;how many down +wi_pw rs 1 ;width of 1 chixel +wi_ph rs 1 ;hite of 1 chixel + ; +wi_bw rs 1 ;bitmap width +wi_bh rs 1 ;bitmap height + ; +wi_bmapmem rs.l 1 +wi_copmem rs.l 1 +wi_bmap rs.l 1 +wi_cop rs.l 1 +wi_cop1 rs.l 1 +wi_cop2 rs.l 1 +wi_copmod rs.w 1 + ; +wi_strip rs.l 1 +wi_iff rs.l 1 ;show iff instead! +wi_pal rs.l 1 ;palette for IFF! + ; +wi_size rs.b 0 + +key macro + btst #\1&7,\1>>3(a0) + endm + +keya1 macro + btst #\1&7,\1>>3(a1) + endm + +qkey macro + move.l rawtable(pc),a0 + key \1 + endm + +freemem macro + ; + ifne debugmem + lea .fmem\@,a0 + jsr freemem_ + bra .fmemskip\@ +.fmem\@ dc.b '\1',0 + even +.fmemskip\@ ; + elseif + jsr freemem_ + endc + ; + endm + +allocmem macro + ; + ifne debugmem + ; + lea .amem\@,a0 + jsr allocmem_ + bra .amemskip\@ +.amem\@ dc.b '\1',10,0 + even +.amemskip\@ ; + elseif + ; + jsr allocmem_ + ; + endc + ; + endm + +allocmem2 macro + ; + ifne debugmem + ; + lea .amem\@,a0 + jsr allocmem2_ + bra .amemskip\@ +.amem\@ dc.b '\1',10,0 + even +.amemskip\@ ; + elseif + ; + jsr allocmem2_ + ; + endc + ; + endm + +alloclist macro ;alloclist listname,maxitems,itemsize + ; + move.l \2,d0 + move.l \3,d1 + lea \1(pc),a2 + jsr k_alloclist + bra.s alskip\@ + ; +\1 dc.l 0 ;0 +\1_last dc.l 0 ;4 + dc.l 0 ;8 +\1_free dc.l 0 ;12 +alskip\@ ; + endm + +k_alloclist ;a2=address of 'first' pointer + ;d0=max items, d1=item size + ; + move.l a2,8(a2) ;clear out used list + lea 4(a2),a0 + clr.l (a0) + move.l a0,(a2) + movem.l d0-d1,-(a7) + mulu d1,d0 + move.l #$10001,d1 + allocmem alloclist + move.l d0,a0 + lea 12(a2),a2 + movem.l (a7)+,d0-d1 + subq #1,d0 +.loop move.l a0,(a2) + move.l a0,a2 + add d1,a0 + dbf d0,.loop + rts + +addnext macro + ; + ;addnext 'listname' + ;add after a5 + ;return eq if none available else a0 + ; + move.l \1_free,d0 + beq.s .anskip\@ + move.l d0,a0 + move.l (a0),\1_free + move.l (a5),a1 + move.l a1,(a0) + move.l a0,4(a1) + move.l a0,(a5) + move.l a5,4(a0) +.anskip\@ ; + endm + +addfirst macro + ; + ;addfirst 'listname' + ;return eq if none available else a0 + ; + move.l \1_free,d0 + beq.s .afskip\@ + move.l d0,a0 + move.l (a0),\1_free + move.l \1,a1 ;current first + move.l a1,(a0) + move.l a0,4(a1) + move.l a0,\1 + move.l #\1,4(a0) +.afskip\@ ; + endm + +addlast macro + ; + ;addlast 'listname' + ;return eq in none available else a0 + ; + move.l \1_free,d0 + beq.s .alskip\@ + move.l d0,a0 + move.l (a0),\1_free + ; + move.l \1_last+4,a1 ;current last + move.l a0,(a1) + move.l a1,4(a0) + move.l a0,\1_last+4 + move.l #\1_last,(a0) +.alskip\@ ; + endm + +killitem macro + ; + ;killitem listname + ;a0=item to kill, return a0=previous item. + ; + move.l (a0),a1 ;next of me! + move.l 4(a0),4(a1) + move.l 4(a0),a1 ;prev of me + move.l (a0),(a1) + move.l \1_free,(a0) + move.l a0,\1_free + move.l a1,a0 + endm + +clearlist macro + ; + ;clearlist listname + ; +.clloop\@ move.l \1,a0 + tst.l (a0) + beq .cldone\@ + killitem \1 + bra .clloop\@ +.cldone\@ ; + endm + +zerolist macro listname,size of item + ; + ;fill all list items with 0! + ; + clearlist \1 +.zlloop\@ addlast \1 + beq .zlskip\@ + lea 8(a0),a1 + moveq #0,d0 + move #(\2-8)/2-1,d1 +.zlloop2\@ move d0,(a1)+ + dbf d1,.zlloop2\@ + bra .zlloop\@ +.zlskip\@ clearlist \1 + ; + endm + +bwait macro + ; +.bwait\@ btst #6,$dff002 + beq.s .bwait2\@ + bra.s .bwait\@ +.bwait2\@ ; + endm + +printlong macro + move.l \1,-(a7) + jsr printlong_ + endm + +check macro + list +check set *-\1 + nolist + endm + +push macro + movem.l d2-d7/a2-a6,-(a7) + endm + +pull macro + movem.l (a7)+,d2-d7/a2-a6 + endm + +col macro + move #0,$dff106 + move \1,$dff180 + endm + +warn macro + move d0,-(a7) + move #-1,d0 +.wloop\@ col \1 + dbf d0,.wloop\@ + move (a7)+,d0 + endm + +tempfile ds.b 64 + +wbmess dc.l 0 ;workbench message! + +entrypoint ; + clr.l map_test + move.l 4.w,a6 + move.l 276(a6),a5 ;task + tst.l $ac(a5) ;cli? + bne.s cli + ; + lea $5c(a5),a0 + jsr -384(a6) ;waitport + lea $5c(a5),a0 + jsr -372(a6) ;get message + move.l d0,wbmess + bra wb +cli ; + cmp.b #'@',(a0)+ + bne.s wb + lea tempfile,a1 + move.l a1,map_test +.loop move.b (a0)+,(a1) + beq.s wb + cmp.b #10,(a1)+ + bne.s .loop + clr.b -(a1) +wb ; + lea dosname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,dosbase + ; + move.l d0,a6 + jsr -60(a6) + move.l d0,outhand + ; + move.l wbmess(pc),d0 + beq.s .nocd + move.l d0,a0 + move.l $24(a0),a0 + move.l (a0),d1 + move.l dosbase,a6 + jsr -126(a6) +.nocd ; + move.l 4.w,a6 + moveq #1,d1 + jsr -216(a6) + cmp.l #$1a6548-$c000,d0 ;enough memory to run gloom? + bcs nomem + ; + jsr initmain + bsr bigfont + ; +.intro move.l medat(pc),a1 + move.l titlemed(pc),a0 + jsr 8(a1) ;start title music! + ; +.intro2 jsr dointro ;returns gametype + ; + cmp #3,gametype + bcs.s .play + move.l medat(pc),a1 + jsr 12(a1) + bra.s exittoos +.play ; + bsr initnewgame + tst gametype + bmi .intro2 + ; + bsr smallfont + tst twowins + beq.s .n2 + bsr swaphflags +.n2 bsr execscript_med +.wmf tst fadevol + bne.s .wmf + tst twowins + beq.s .n22 + bsr swaphflags +.n22 bsr bigfont + bra .intro + ; +exittoos bsr freeobjlist2 + move #$4000,$dff09a + move.l ciaa,a0 + movem.l rawstuff,d0-d1 + movem.l d0-d1,$64(a0) + move #$c000,$dff09a + jsr permit + jsr finitdisplay + jsr finitvbint + jsr finitsfx + jsr finitser + jsr freememlist + ifeq cd32 + jsr undir + endc + ; +nomem move.l wbmess(pc),d0 + beq.s .bye + ; + move.l 4.w,a6 + move.l d0,a1 + jsr -378(a6) + clr.l wbmess + ; +.bye rts + +; ************* FAST SUBS ******************** + +fastsubs + +swaphflags movem.l floorflag(pc),d0-d1 + move.l d1,floorflag + move.l d0,floorflag2 + rts + +smallfont move #6,fontw + move #8,fonth + move.l smallfont_,font + rts + +bigfont move #8,fontw + move #10,fonth + move.l bigfont_,font + rts + +encodejoy ;a0=cntrl block to encode... + ;return d0 encoded + ; + ;bit: + ;0 = joyx -1 + ;1 = joyx 1 + ;2 = joyy -1 + ;3 = joyy 1 + ;4 = joyb true + ;5 = joys true + ; + moveq #0,d0 + ; + tst (a0) + beq.s .skipx + bpl.s .x1 + bset #0,d0 + bra.s .skipx +.x1 bset #1,d0 +.skipx tst 2(a0) + beq.s .skipy + bpl.s .y1 + bset #2,d0 + bra.s .skipy +.y1 bset #3,d0 +.skipy tst 4(a0) + beq.s .skipb + bset #4,d0 +.skipb tst 6(a0) + beq.s .skipf + bset #5,d0 +.skipf ; + rts + +decodejoy ; + ;d0.b = encoded byte... + ;a0 = block to fill + ; + ;0 = joyx -1 + ;1 = joyx 1 + ;2 = joyy -1 + ;3 = joyy 1 + ;4 = joyb true + ;5 = joys true + ; + clr (a0) + move d0,d1 + and #3,d1 + beq.s .skipx + cmp #1,d1 + bne.s .x1 + move #-1,(a0) + bra.s .skipx +.x1 move #1,(a0) +.skipx clr 2(a0) + move d0,d1 + and #12,d1 + beq.s .skipy + cmp #4,d1 + bne.s .y1 + move #-1,2(a0) + bra.s .skipy +.y1 move #1,2(a0) +.skipy btst #4,d0 + sne d1 + ext d1 + move d1,4(a0) + btst #5,d0 + sne d1 + ext d1 + move d1,6(a0) + rts + +sfxs ; +sfx0 ds.b fx_size +sfx1 ds.b fx_size +sfx2 ds.b fx_size +sfx3 ds.b fx_size + +sfxintserver0 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx0 + dc.l sfxint + +sfxintserver1 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx1 + dc.l sfxint + +sfxintserver2 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx2 + dc.l sfxint + +sfxintserver3 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx3 + dc.l sfxint + +initsfx push + move.l 4.w,a6 + ; + moveq #7,d0 + lea sfxintserver0,a1 + jsr -162(a6) ;setintvector + ; + moveq #8,d0 + lea sfxintserver1,a1 + jsr -162(a6) + ; + moveq #9,d0 + lea sfxintserver2,a1 + jsr -162(a6) + ; + moveq #10,d0 + lea sfxintserver3,a1 + jsr -162(a6) + ; + lea sfxs(pc),a1 + move #$80,d0 + moveq #1,d1 + moveq #0,d2 + moveq #3,d3 +.loop bsr .init + lea fx_size(a1),a1 + dbf d3,.loop + ; + pull + rts + ; +.init clr fx_status(a1) + move d0,fx_int(a1) + move d1,fx_dma(a1) + move d2,fx_offset(a1) + add d0,d0 + add d1,d1 + add #16,d2 + rts + +finitsfx push + move.l 4.w,a6 + ; + moveq #7,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #8,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #9,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #10,d0 + sub.l a1,a1 + jsr -162(a6) + ; + pull + rts + +waitquiet bsr vwait + lea sfxs(pc),a0 + moveq #3,d0 +.loop tst fx_status(a0) + bne.s waitquiet + lea fx_size(a0),a0 + dbf d0,.loop + rts + +playsfx ;sfx file in a0, vol in d0, priority in d1 + ; + ;move #$4000,$dff09a ;snd/vb ints off + ; + lea sfxs(pc),a1 + moveq #3,d2 +.loop tst fx_status(a1) + beq.s makesfx + lea fx_size(a1),a1 + dbf d2,.loop + ; + ;OK, none free...check priorities + ; + lea sfxs(pc),a1 + moveq #3,d2 +.loop2 cmp fx_priority(a1),d1 + bgt.s queuesfx + lea fx_size(a1),a1 + dbf d2,.loop2 + ; + ;no-can-do! + ; + ;move #$c000,$dff09a + rts + ; +queuesfx ;OK, turn off other and play US! + ; + move #1,fx_status(a1) + move d0,fx_vol(a1) + move d1,fx_priority(a1) + move.l a0,fx_sfx(a1) ;play me next! + ; + bsr sfxoff + ; + ;move #$c000,$dff09a + rts + +sfxoff lea $dff0a0,a2 + add fx_offset(a1),a2 + move.l chipzero(pc),(a2) + move #1,4(a2) ;len + move #0,8(a2) ;vol + move fx_int(a1),$dff09a + move fx_dma(a1),$dff096 + rts + +makesfx ;OK, play this SFX NOW! + ; + move d1,fx_priority(a1) + move d0,fx_vol(a1) + bsr playsfxnow + ;move #$c000,$dff09a + rts + +playsfxnow move #-2,fx_status(a1) + ; + lea $dff0a0,a2 + add fx_offset(a1),a2 + move (a0)+,6(a2) ;period + move (a0)+,4(a2) ;len + move fx_vol(a1),8(a2) ;vol + move.l a0,(a2) ;data + ; + move fx_dma(a1),d0 ;dma bits + or #$8000,d0 + move fx_int(a1),d1 ;int bits + move d1,d2 + or #$8000,d1 + ; + move d0,$dff096 ;dma on! + move d1,$dff09a ;int en + move d2,$dff09c ;intreq clr + ; + rts + +sfxint ;interupt for sfx! + ; + tst fx_status(a1) + bge.s .skip + addq #1,fx_status(a1) + blt.s .skip + ; + move.l a2,-(a7) + bsr sfxoff + move.l (a7)+,a2 + ; +.skip move fx_int(a1),$dff09c + moveq #0,d0 + rts + +dogamemenu ; + move #$20,$dff09a + ; + st paused + move framecnt,-(a7) + move linked,-(a7) + clr linked + ; + move #$8020,$dff09a + ; + move.l player1,a5 + move.l ob_palette(a5),-(a7) + move.l #palettesw,ob_palette(a5) + move.l ob_window(a5),a2 + jsr plotwbmap + ; + tst twowins + beq .p1 + ; + move.l player2,a5 + move.l ob_palette(a5),-(a7) + move.l #palettesw,ob_palette(a5) + move.l ob_window(a5),a2 + jsr plotwbmap +.p1 ; + bsr drawall2 + ; + move.l player1,a5 + lea gamemenu,a4 + move.l ob_window(a5),a6 + jsr initmenu + ; +.loop jsr selmenu + beq .done + ; + subq #1,d0 + bne .notpsize + bsr newpsize + bra .loop + ; +.notpsize subq #1,d0 + bne .notwsize + bsr newwsize + bra .loop + ; +.notwsize subq #1,d0 + bne .notlwin + bsr largewin + bra .loop + ; +.notlwin subq #1,d0 + bne .notfloor + ; + addq #1,floorflag + cmp #2,floorflag + bne.s .fskip + move #-1,floorflag +.fskip bsr refresh + bra .loop + ; +.notfloor subq #1,d0 + bne .notroof + ; + addq #1,roofflag + cmp #2,roofflag + bne.s .rskip + move #-1,roofflag +.rskip bsr refresh + bra .loop +.notroof ; + move #1,finished + ; +.done jsr finitmenu + ; + tst twowins + beq.s .p12 + ; + move.l player2,a5 + move.l (a7)+,ob_palette(a5) + move.l ob_window(a5),a2 + jsr plotwbmap + bsr initstats + bsr showstats +.p12 ; + move.l player1,a5 + move.l (a7)+,ob_palette(a5) + move.l ob_window(a5),a2 + jsr plotwbmap + bsr initstats + bsr showstats + ; + move #$20,$dff09a + ; + move (a7)+,linked + beq.s .nolink + move finished(pc),d0 + beq.s .nolink + bset #7,d0 + bsr serput +.nolink move (a7)+,framecnt + clr paused + ; + move #$8020,$dff09a + ; + rts + +freewindows lea window1,a0 + jsr freewindow + tst twowins + beq.s .p1 + lea window2,a0 + jsr freewindow +.p1 rts + +largewin move.l player1,a5 + bsr large + tst twowins + beq refresh + move.l player2,a5 + bsr large + bra refresh + +large move.l ob_window(a5),a6 + move wi_pw(a6),d2 + ; + cmp #2,d2 + beq .lhr + ; + ;large lo-res window! + ; +.lores move #324,d0 + move #240,d1 + bra thinkwin + ; +.lhr bsr swappsize + bra.s .lores + ; + move #180,d0 + move #240,d1 + bra thinkwin + +newwsize ;window size stuff! + ; + move.l player1,a5 + bsr swapwsize + tst twowins + beq refresh + move.l player2,a5 + bsr swapwsize + bra refresh + +swapwsize ;increment window size! + ; + move.l ob_window(a5),a6 + movem wi_w(a6),d0-d1 ;w,h + move wi_pw(a6),d2 + mulu d2,d0 + mulu d2,d1 + cmp #2,d2 + beq .hr + ; + ;lo-res! + ; + cmp #318,d0 + bcs.s .inc + move #132,d0 + move d0,d1 + bra thinkwin +.inc add #24,d0 + move d0,d1 + cmp #240,d1 + bls thinkwin + move #240,d1 + bra thinkwin + ; +.hr cmp #180,d0 + bcs.s .inc2 + tst twowins + bne .min + add #18,d1 + cmp #240,d1 + bls thinkwin +.min move #132,d0 + move d0,d1 + bra thinkwin +.inc2 add #24,d0 + move d0,d1 + ; +thinkwin move #180,d3 ;max width! + cmp #2,d2 + beq .gmax + move #318,d3 +.gmax cmp d3,d0 + bls .nm + move d3,d0 +.nm ; + cmp #240,d1 + bls .n240 + move #240,d1 +.n240 tst twowins + beq.s .ggt + move #120,d1 +.ggt ; + move #160,d3 + move d0,d4 + lsr #1,d4 + sub d4,d3 ;wi_x + move d3,wi_x(a6) + ; + ext.l d0 + divu d2,d0 + move d0,wi_w(a6) + ; + tst twowins + bne.s .skip3 + ; + move #cy,d3 + move d1,d4 + lsr #1,d4 + sub d4,d3 + move d3,wi_y(a6) + ; +.skip3 ext.l d1 + divu d2,d1 + move d1,wi_h(a6) + ; + rts + +newpsize ;toggle pixel size between 2 and 3 + ; + ;copy windows to temp so we can free 'em up later + ; + move.l player1,a5 + bsr swappsize + tst twowins + beq refresh + move.l player2,a5 + bsr swappsize + ; +refresh jsr dispoff + jsr finitmenu + ; + bsr freewindows + bsr putwindow + ; + lea window1,a0 + jsr makewindow + lea window1,a0 + jsr showwindow + ; + tst twowins + beq.s .p1 + ; + lea window2,a0 + jsr makewindow + lea window2,a0 + jsr showwindow + ; +.p1 jsr calcbpos + ; + lea gamemenu,a4 + lea window1,a6 + jsr initmenu2 + ; + bsr drawall2 + jsr dispon + rts + +swappsize move.l ob_window(a5),a6 + movem wi_w(a6),d0-d1 ;w,h + move wi_pw(a6),d2 + mulu d2,d0 + mulu d2,d1 + eor #1,d2 ;2,3... + move d2,wi_pw(a6) + move d2,wi_ph(a6) + ; + bra thinkwin + +showflag dc 0 + +showit ;don't show if beam in the way! + ; + move showflag(pc),d0 + beq.s .rts + ; + move.l $dff004,d0 + lsr.l #8,d0 ;beampos + and #$1ff,d0 + ; + cmp minbpos(pc),d0 + bcs.s .show + cmp maxbpos(pc),d0 + bcs.s .rts + ; + ;cmp minbpos(pc),d0 + ;bcc.s .rts + ; +.show clr showflag + lea window1,a0 + jsr showwindowq + lea window2,a0 + jmp showwindowq + ; +.rts rts + +drawall2 bsr drawall + bsr drawall + bra vwait + +drawall ; +.wait move doneflag(pc),d0 + beq.s .wait ;wait for update + clr doneflag +.wait2 move showflag(pc),d0 + bne.s .wait2 + ; + move.l memory(pc),memat + move.l player1(pc),a5 + bsr calcscene + move.l player1(pc),a5 + bsr blitscene + move.l player1(pc),a5 + bsr drawscene + ; + move twowins(pc),d0 + beq.s .show + ; + move.l memory(pc),memat + move.l player2(pc),a5 + bsr calcscene + move.l player2(pc),a5 + bsr blitscene + move.l player2(pc),a5 + bsr drawscene + ; +.show st showflag + rts + +resetplayer st ob_update(a5) + clr ob_mega(a5) + clr ob_thermo(a5) + clr ob_infra(a5) + clr ob_invisible(a5) + clr ob_pixsize(a5) + clr ob_pixsizeadd(a5) + clr ob_bouncecnt(a5) + move #-1,ob_messtimer(a5) + move.l #palettes,ob_palette(a5) + rts + +message ;print up a message...player in a5 + ; + move.l (a7),a0 ;return address=message! + move.l a0,ob_mess(a5) + ; + moveq #-1,d0 +.loop addq #1,d0 + tst.b (a0)+ + bne.s .loop + ; + move d0,ob_messlen(a5) + move #-127,ob_messtimer(a5) + ; + move.l a0,d0 + addq.l #1,d0 + and #$fffe,d0 + move.l d0,(a7) + rts + +pdelay dc 0 ;non zero=wait between prints + +printmess ;a5=object + ; + move.l ob_window(a5),a6 + move.l ob_mess(a5),a4 + move ob_messlen(a5),d0 + move wi_bh(a6),d6 + lsr #2,d6 ;Y + ; +printmess2 ;a6=window, a4=message, d0=length of message, d6=Y + ; + move fontw(pc),d2 + lsr #1,d2 + mulu d2,d0 + move #160,d7 + sub d0,d7 ;X + ; +.loop2 move.b (a4)+,d2 + beq .done + cmp.b #' ',d2 + beq .spc + cmp.b #'\',d2 + beq .spc + cmp.b #'0',d2 + bcs.s .nnum + cmp.b #'9',d2 + bhi.s .nnum + sub.b #'0',d2 + ext d2 + bra.s .here +.nnum cmp.b #"'",d2 + bne.s .notap + moveq #57,d2 + bra.s .here +.notap cmp.b #'!',d2 + bne.s .notex + moveq #36,d2 + bra.s .here +.notex cmp.b #'.',d2 + bne.s .notfs + moveq #37,d2 + bra.s .here +.notfs cmp.b #':',d2 + bne.s .notcol + moveq #38,d2 + bra.s .here +.notcol cmp.b #127,d2 + bne.s .notcurs + moveq #39,d2 + bra.s .here +.notcurs and #31,d2 + add #9,d2 +.here move.l font(pc),a0 + move.l wi_bmap(a6),a1 + move d7,d0 + move d6,d1 + bsr blit + ; + move pdelay(pc),d2 + subq #1,d2 + bmi.s .spc + ; +.pdloop bsr vwait + bsr checkany + beq.s .none + move #-1,pdelay + moveq #0,d2 +.none dbf d2,.pdloop + ; +.spc add fontw(pc),d7 + bra .loop2 +.done ; + rts + +initstats ; + ;health... + move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #2,d1 + moveq #39,d2 + bsr blit + ; + ;weapon... + move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #12,d1 + moveq #44,d2 + bra blit + +putstrip ;a0=window + ; + move.l wi_bmap(a0),a1 + move wi_bh(a0),d0 + lsr #2,d0 + mulu #7*40,d0 + add.l d0,a1 ;dest + move.l wi_strip(a0),a0 ;src + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l #$9f00000,$dff040 + move.l #-1,$dff044 + move #0,$dff064 + move #0,$dff066 + move.l a0,$dff050 + move.l a1,$dff054 + move #(7*7)<<6+20,$dff058 + rts + +loff dc 0 + +printhexnum ;d0=x,d1=y,d2=hex long,a5=window + ; + move.l ob_window(a5),a0 + move.l wi_bmap(a0),a1 + ; + movem.l d0-d2/a0-a1,-(a7) + subq #2,d0 + subq #1,d1 + moveq #55,d2 + move.l font(pc),a0 + bsr blit + movem.l (a7)+,d0-d2/a0-a1 + ; + move #8,-(a7) +.loop rol.l #4,d2 + movem.l d0-d2/a0-a1,-(a7) + and #15,d2 + move.l font(pc),a0 + bsr blit + movem.l (a7)+,d0-d2/a0-a1 + addq #6,d0 + subq #1,(a7) + bne.s .loop + addq #2,a7 + addq #8,d1 + rts + +showstats ;a5=player + ; + ;ok, hitpoints... + ; + elseif + ; + ;lagtime... + move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #22,d1 + move lagtime(pc),d2 + bsr blit + ; + elseif + ; + move.l ob_window(a5),a0 + moveq #44,d5 + add wi_x(a0),d5 + moveq #40,d4 + moveq #0,d6 + move ob_hitpoints(a5),d7 + ; +.hploop cmp d7,d6 + bcs.s .hpskip + cmp #25,d7 + bcc.s .hpdone + moveq #41,d4 + moveq #25,d7 + bra.s .hploop + ; +.hpskip move.l font(pc),a0 + move.l ob_window(a5),a1 + move.l wi_bmap(a1),a1 + move d5,d0 + moveq #2,d1 + move d4,d2 + bsr blit + addq #2,d5 + addq #1,d6 + bra.s .hploop +.hpdone ; + ;show lives remaining... + ; + move.l ob_window(a5),a0 + move wi_bw(a0),d5 + add wi_x(a0),d5 + move ob_lives(a5),d7 + beq.s .lvdone + subq #1,d7 +.lvloop ; + move.l font(pc),a0 + move.l ob_window(a5),a1 + move.l wi_bmap(a1),a1 + subq #8,d5 + move d5,d0 + moveq #2,d1 + moveq #43,d2 + bsr blit + dbf d7,.lvloop +.lvdone ; + ;show weapons! + ; + move.l ob_window(a5),a0 + moveq #44,d5 + add wi_x(a0),d5 + moveq #49,d4 + sub ob_weapon(a5),d4 ;0...4 + moveq #1,d7 +.wploop ; + move.l font(pc),a0 + move.l ob_window(a5),a1 + move.l wi_bmap(a1),a1 + move d5,d0 + moveq #12,d1 + moveq #50,d2 + cmp.b ob_reload(a5),d7 + blt.s .nowp + move d4,d2 +.nowp bsr blit + ; + add #10,d5 + addq #1,d7 + cmp #6,d7 + bcs.s .wploop + ; + rts + +blit ;a0=shapetable to blit, a1=bitmap, d0=X, d1=Y, d2=char + ; + add.l 4(a0,d2*4),a0 + ; + mulu #280,d1 + add.l d1,a1 + move d0,d2 + asr #3,d2 + add d2,a1 ;dest! + move.l a0,a2 + add.l (a0),a2 + lea 8(a0),a3 + addq #4,a0 + and #15,d0 + ror #4,d0 + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l a2,$dff050 + move.l a3,$dff04c + move.l a1,$dff048 + move.l a1,$dff054 + ; + move d0,$dff042 + or blitmode(pc),d0 + move d0,$dff040 + move.l #$ffff0000,$dff044 + moveq #-2,d0 + move d0,$dff064 + move d0,$dff062 + moveq #38,d0 + sub (a0)+,d0 + move d0,$dff060 + move d0,$dff066 + move (a0)+,$dff058 + ; + rts + +blitmode dc $fca + +pixsize dc 0 ;pixel size...at least 2! + +pixelate ;pixel out the coplist...d0=pixelsize + ; + move d0,pixsize + move d0,d1 + ; + ;pixel out vertically, then horizontally + ; + move.l cop(pc),a0 + lea coloffs(pc),a1 + moveq #0,d2 ;x + move d1,d6 + lsr #1,d6 +.forx ; + move.l a0,a3 + lea 0(a1,d2*4),a2 + add.l (a2),a3 + ; + move d2,d5 + add d6,d5 + cmp width(pc),d5 + ble.s .xok + move width(pc),d5 +.xok sub d2,d5 + ble .done + subq #1,d5 + ; +.loop2 moveq #0,d3 + move.l a3,a4 + move.l a0,a5 + add.l (a2)+,a5 + move d1,d7 + lsr #1,d7 ;first Y add +.fory ; + move (a4),d0 ;start column! + move d3,d4 + add d7,d4 + cmp hite(pc),d4 + ble.s .yok + move hite(pc),d4 +.yok sub d3,d4 + ble .nextx + subq #1,d4 + ; +.loop move d0,(a5) + add copmod(pc),a4 + add copmod(pc),a5 + ; + dbf d4,.loop + ; +.nexty add d7,d3 + move d1,d7 + bra.s .fory + ; +.nextx dbf d5,.loop2 + ; + add d6,d2 + move d1,d6 + bra.s .forx + ; +.done rts + +makeqstrip ; + ;do a simple roof/floor strip for blitter to wack in... + ; + cmp #$100,con0poke + bne.s .doit + rts + ; +.doit move.l qstrip(pc),a0 + move.l darktable(pc),a1 + move.l palette(pc),a2 + move.l qstripbot(pc),a4 + moveq #0,d2 + ; + move floorflag(pc),d0 + bne.s .fdone + ; + move camy(pc),d0 + neg d0 + ext.l d0 + lsl.l #focshft,d0 + ; + move.b qcols+1(pc),d2 + move.l qstripbot(pc),a4 + move maxy(pc),d1 + ; +.floop subq #1,d1 + beq.s .fdone + ; + move.l d0,d3 + divs d1,d3 + cmp #maxz,d3 + bcc .fdone + ; + move 0(a1,d3*2),d3 ;darkness (0...15) + move.l 0(a2,d3*4),a3 ;pal to use + move 0(a3,d2*2),-(a4) ;colour! + ; + bra.s .floop + ; +.fdone move roofflag(pc),d0 + bne.s .rdone + ; + move #-256,d0 + sub camy(pc),d0 + ext.l d0 + lsl.l #focshft,d0 ;cam Y + ; + move.b qcols(pc),d2 + ; + move miny(pc),d1 ;SY + ; +.rloop beq.s .rdone + ; + move.l d0,d3 + divs d1,d3 + cmp #maxz,d3 + bcc .rdone + ; + move 0(a1,d3*2),d3 ;darkness (0...15) + move.l 0(a2,d3*4),a3 ;pal to use + move 0(a3,d2*2),(a0)+ ;colour! + ; + addq #1,d1 + bra.s .rloop +.rdone ; + moveq #0,d0 +.loop cmp.l a4,a0 + bcc.s .done + move.l d0,(a0)+ + bra.s .loop + ; +.done rts + +flatcam dc.l 0 +flatyadd dc 0 +flatyadd2 dc 0 + +flat ; + ;do flat above/below panel! + ; + ;d0=Y pos of flat + ;d1=Screen Y add + ;d7=first screen Y (miny or maxy-1) + ; + ;a0=panel to draw on! + ; + ext.l d0 + lsl.l #focshft,d0 + move.l d0,flatcam + ; + move d1,flatyadd + muls copmod(pc),d1 + move d1,flatyadd2 + ; + move d7,d0 + add midy(pc),d0 + mulu copmod(pc),d0 + add.l cop(pc),d0 + add.l coloffs(pc),d0 + move.l d0,a2 +.vloop ; + ;find Z on this scanline... + ; + tst d7 + beq .rts + move.l flatcam(pc),d6 + divs d7,d6 ;d6.w = Z + cmp #maxz,d6 + bcc .rts + ; + move.l darktable(pc),a5 + move 0(a5,d6*2),d5 + move.l palette(pc),a5 + move.l 0(a5,d5*4),a5 + ; + ;Find leftmost X... + ; + move minx(pc),d5 + muls d6,d5 + asr.l #focshft,d5 + ; + move maxx(pc),d4 + muls d6,d4 + asr.l #focshft,d4 + ; + ;rotate X1,Z around camera... + ; + move d5,d0 + move d6,d1 + ; + move d0,d2 + move d1,d3 + ; + muls icm1(pc),d0 + add.l d0,d0 + muls icm2(pc),d3 + add.l d3,d3 + add.l d3,d0 + ; + muls icm3(pc),d2 + add.l d2,d2 + muls icm4(pc),d1 + add.l d1,d1 + add.l d2,d1 + ; + ;d0,d1.q = rotated x1,z + ; + ;rotate X2,Z around camera... + ; + move d4,d2 + move d6,d3 + ; + muls icm1(pc),d4 + add.l d4,d4 + muls icm2(pc),d3 + add.l d3,d3 + add.l d3,d4 + ; + muls icm3(pc),d2 + add.l d2,d2 + muls icm4(pc),d6 + add.l d6,d6 + add.l d2,d6 + ; + ;d4,d6.q = rotated x2,z + ; + move width(pc),d5 + ext.l d5 + sub.l d0,d4 ;Xadd + divs.l d5,d4 + sub.l d1,d6 ;Zadd + divs.l d5,d6 + ; + ;d0,d1.q=x,z + ;d4,d6.q=xadd,zadd + ; + ;move.l d4,d2 + ;asr.l #1,d2 + ;add.l d2,d0 + ; + ;move.l d6,d2 + ;asr.l #1,d2 + ;add.l d2,d1 + ; + swap d0 + add camx(pc),d0 + swap d1 + add camz(pc),d1 + swap d4 + swap d6 + ; + move d7,-(a7) + moveq #127,d7 + moveq #0,d2 + moveq #0,d3 + ; + move.l a2,a3 + ; + move wdiv32(pc),-(a7) + ; +.hloop2 moveq #31,d5 + ; +.hloop tst (a3) ;check destination! + bne.s .skip + ; + and d7,d0 + and d7,d1 + move d0,d2 + lsl #7,d2 + add d2,d1 + add.l d4,d0 + move.b 0(a0,d1),d3 + addx d2,d0 + add.l d6,d1 + move 0(a5,d3*2),(a3) + addx d2,d1 + addq #4,a3 + dbf d5,.hloop + bra.s .hhh + ; +.skip add.l d4,d0 + addx d2,d0 + add.l d6,d1 + addx d2,d1 + addq #4,a3 + dbf d5,.hloop + ; +.hhh addq #4,a3 + subq #1,(a7) + bgt.s .hloop2 + bne.s .kl + ; + move wrem32(pc),d5 + bpl.s .hloop + ; +.kl move.l (a7)+,d7 + add flatyadd(pc),d7 + add flatyadd2(pc),a2 + bra .vloop + ; +.rts rts + +doanims move.l map_anim(pc),a0 + lea textures,a1 + ; +.loop move (a0)+,d0 ;how many frames + beq.s .done + movem (a0)+,d1-d2 ;first, delay + subq #1,(a0)+ + bgt.s .loop + move d2,-2(a0) + lea 0(a1,d1*4),a2 + ; + ;do the anim! + ; + subq #2,d0 + move.l (a2),d2 +.loop2 move.l 4(a2),(a2)+ + dbf d0,.loop2 + move.l d2,(a2) + bra.s .loop + ; +.done rts + +dorots ; + move.l camrots2(pc),a6 + lea rotpolys(pc),a5 ;header! + ; +rotloop move.l (a5),a5 + tst.l (a5) + beq .done + move rp_speed(a5),d0 + beq.s rotloop + ; + add d0,rp_rot(a5) + move rp_rot(a5),d0 + ; + move.l rp_first(a5),a2 ;first + move rp_num(a5),d5 + subq #1,d5 + move d5,d4 + lsl #5,d4 + lea 0(a2,d4),a1 ;previous + lea rp_lx(a5),a3 + ; + btst #0,rp_flags+1(a5) + bne.s morph + ; +.rot movem rp_cx(a5),d6-d7 ;centre x,z + and #1023,d0 + lea 0(a6,d0*8),a4 ;rotation matrix. + ; +.loop bsr rotter + add d6,d0 + add d7,d1 + movem d0-d1,zo_lx(a2) + movem d0-d1,zo_rx(a1) + bsr rotter + movem d0-d1,zo_na(a2) + exg d0,d1 + neg d0 + movem d0-d1,zo_a(a2) + move.l a2,a1 + lea 32(a2),a2 + dbf d5,.loop + ; + bra rotloop + ; +.done rts + ; +morph tst d0 + bgt.s .dp + moveq #0,d0 +.neg neg rp_speed(a5) + bra.s .skip2 +.dp cmp #$4000,d0 + blt.s .skip + move #$4000,d0 + btst #1,rp_flags+1(a5) + bne.s .neg + clr rp_speed(a5) +.skip2 move d0,rp_rot(a5) +.skip ; + move d0,d4 + movem.l a2/d5,-(a7) ;for calculating norms! + ; +.loop movem (a3)+,d0-d3 + muls d4,d0 + lsl.l #2,d0 + swap d0 + add d2,d0 + muls d4,d1 + lsl.l #2,d1 + swap d1 + add d3,d1 + movem d0-d1,zo_lx(a2) + movem d0-d1,zo_rx(a1) + move.l a2,a1 + lea 32(a2),a2 + dbf d5,.loop + ; + movem.l (a7)+,a2/d5 + ; +.loop2 move zo_rx(a2),d0 + sub zo_lx(a2),d0 + move zo_rz(a2),d1 + sub zo_lz(a2),d1 + bsr calcnormvec + movem d0-d1,zo_na(a2) + exg d0,d1 + neg d0 + movem d0-d1,zo_a(a2) + lea 32(a2),a2 + dbf d5,.loop2 + ; + bra rotloop + +calcnormvec ;d0,d1 = vector...normalize! + ; + ;OK, find vector length! + ; + move d0,d2 + muls d2,d2 + move d1,d3 + muls d3,d3 + add.l d3,d2 + ; + ;OK, sqr of d2.l! + ; + move.l #$10000,d3 + ; +.fitit cmp.l #16384,d2 ;fits? + bcs.s .ok + asr.l #1,d2 + mulu.l #92681,d4:d3 ;mult by sqr(2) + move d4,d3 + swap d3 + bra.s .fitit + ; +.ok ;OK to look up, but multiply the result.w by d3.q + ; + move.l sqr(pc),a0 + and #$fffe,d2 + movem 0(a0,d2),d2 ;sqr.l! + mulu.l d3,d2 + swap d2 ;length.w + ; + ;length should be >= both abs(xvec) AND abs(zvec) + ; + move d0,d3 + bpl.s .xp + neg d3 +.xp move d1,d4 + bpl.s .zp + neg d4 +.zp ; + cmp d4,d3 + bcc.s .bg + exg d3,d4 +.bg ; + cmp d3,d2 + bcc.s .lo + move d3,d2 +.lo ; + ext.l d2 + ; + swap d0 + clr d0 + divs.l d2,d0 + muls.l #32766,d0 + swap d0 + ; + swap d1 + clr d1 + divs.l d2,d1 + muls.l #32766,d1 + swap d1 + rts + +rotter movem (a3)+,d0-d1 ;this x,z + move d0,d2 + move d1,d3 + ; + muls (a4),d0 + muls 2(a4),d3 + add.l d3,d0 + add.l d0,d0 + swap d0 ;new x! + ; + muls 4(a4),d2 + muls 6(a4),d1 + add.l d2,d1 + add.l d1,d1 + swap d1 + ; + rts + +dodoors lea doors(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + move.l do_poly(a5),a0 + move do_fracadd(a5),d0 + add d0,do_frac(a5) + move do_frac(a5),d0 + move d0,d1 + add d1,d1 + move d1,zo_open(a0) ;copy frac + ; + move do_rx(a5),d1 + sub do_lx(a5),d1 ;width + move d1,d2 + muls d0,d2 + lsl.l #2,d2 + swap d2 + move do_lx(a5),d3 + sub d2,d3 + move d3,zo_lx(a0) + add d1,d3 + move d3,zo_rx(a0) + ; + move do_rz(a5),d1 + sub do_lz(a5),d1 + move d1,d2 + muls d0,d2 + lsl.l #2,d2 + swap d2 + move do_lz(a5),d3 + sub d2,d3 + move d3,zo_lz(a0) + add d1,d3 + move d3,zo_rz(a0) + ; + tst d0 + beq.s .kill + cmp #$4000,d0 + bne.s .loop + ; +.kill move.l a5,a0 + killitem doors + move.l a0,a5 + bra .loop + ; +.done rts + +doorsfxflag dc 0 + +execevent ;d0=event number to execute...1,2... + ; + sf doorsfxflag + move.l map_map(pc),a6 + move.l map_events(pc),a0 + add.l 0(a0,d0*4),a6 + ; +exec_loop move (a6)+,d0 + beq.s .rts + subq #1,d0 + beq exec_addobj ;1 - add an object (alien etc) + subq #1,d0 + beq exec_opendoor ;2 - open a door + subq #1,d0 + beq exec_teleport ;3 - teleport + subq #1,d0 + beq exec_loadobjs ;4 - load objects + subq #1,d0 + beq exec_changetxt ;5 - change texture + subq #1,d0 + beq exec_rotpolys ;6 - start polygons rotating! + ; + warn #$f0f + ; +.rts tst doorsfxflag + beq.s .nodoor + clr doorsfxflag + move.l doorsfx(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx +.nodoor rts + +changedtxt dc 0 +deftxt dc.l 0 +defgfxtxt dc.l 0 + +exec_changetxt ; + move (a6)+,d0 ;zone# + move.l map_poly(pc),a1 + lsl #5,d0 + lea 0(a1,d0),a1 ;polygon to change + ; + move (a6)+,d0 ;new texture + move d0,changedtxt + move.b d0,zo_t(a1) + bra exec_loop + +exec_opendoor st doorsfxflag + addlast doors ;a0=new door + ; + move (a6)+,d0 ;door # + move.l map_poly(pc),a1 + lsl #5,d0 + lea 0(a1,d0),a1 ;polygon to open! + ; + ;calc lx add, lz add, rx add, rz add + ; + move.l a1,do_poly(a0) + move.l zo_lx(a1),do_lx(a0) + move.l zo_rx(a1),do_rx(a0) + clr do_frac(a0) + move #$100,do_fracadd(a0) + bra exec_loop + +exec_teleport move.l eventobj(pc),a0 + ; + move (a6)+,ob_telex(a0) + addq #2,a6 + move (a6)+,ob_telez(a0) + move (a6)+,ob_telerot(a0) + ; + move finished(pc),d0 + or finished2(pc),d0 + bne exec_loop + ; + tst -6(a6) ;teleport? or lock! + beq.s .tele + ; + ;LOCK! + cmp.l #playerlogic,ob_logic(a0) + bne exec_loop + ; + move changedtxt(pc),d0 + lea textures(pc),a1 + move.l 0(a1,d0*4),a1 + lea 65<<6+1(a1),a2 + lea 10*65+19(a1),a1 + movem.l a1-a2,deftxt + ; + move.l #locklogic,ob_logic(a0) + bra exec_loop +.tele ; + move #2,ob_pixsizeadd(a0) + bsr dotelesfx + bra exec_loop + +dotelesfx move.l telesfx(pc),a0 + moveq #64,d0 + moveq #10,d1 + bra playsfx + +exec_loadobjs ; +.loop move (a6)+,d0 + bmi .done + bsr loadanobj + bra.s .loop +.done ; + bra exec_loop + +loadanobj ;d0=object#...sys must be permitted + ; + lea objinfo,a2 + mulu #objinfof-objinfo,d0 + move.l _ob_shape-objinfo(a2,d0),a2 + lea 8(a2),a3 ;filename + ; + tst.l (a2) + bne.s .skip + move.l a3,a0 + moveq #1,d1 + jsr loadfile + move.l d0,(a2) + beq.s .skip + move.l d0,a0 + jsr remapanim +.skip ; + tst.l 4(a2) + bne.s .rts + move.l a3,a0 +.loop tst.b (a3)+ + bne.s .loop + move.b #'2',-(a3) + moveq #1,d1 + jsr loadfile + clr.b (a3) + move.l d0,4(a2) + beq.s .rts + move.l d0,a0 + jsr remapanim + ; +.rts rts + +exec_rotpolys ; + ;could also be morphpolys depending on bit 0 of flags! + ; + addlast rotpolys + bne.s .ok + addq #8,a6 + bra exec_loop + ; +.ok st doorsfxflag + movem (a6)+,d0-d3 ;polynum,count,speed,flags + ; + clr rp_rot(a0) + move d1,rp_num(a0) + move d2,rp_speed(a0) + move d3,rp_flags(a0) + move d1,d5 + subq #1,d5 + move.l map_poly(pc),a2 ;polygons! + lsl #5,d0 + add d0,a2 + move.l a2,rp_first(a0) + ; + btst #0,d3 + beq .rot + ; + ;OK, prepare for morph + ; + lsl #5,d1 + lea 0(a2,d1),a3 + lea rp_vx(a0),a1 + ; +.loop movem zo_lx(a3),d0-d1 + movem zo_lx(a2),d2-d3 + sub d2,d0 + sub d3,d1 + movem d0-d3,(a1) + addq #8,a1 + ; + lea 32(a2),a2 + lea 32(a3),a3 + dbf d5,.loop + ; + bra exec_loop + ; +.rot ;First, calc centre X,Z into d6,d7 + ; + moveq #0,d6 + moveq #0,d7 + move.l a2,a1 + ; +.loop0 movem zo_lx(a1),d0/d2 + add.l d0,d6 + add.l d2,d7 + lea 32(a1),a1 + dbf d5,.loop0 + ; + divu d1,d6 + divu d1,d7 + movem d6-d7,rp_cx(a0) + ; + lea rp_lx(a0),a1 + subq #1,d1 + ; +.loop2 movem zo_lx(a2),d0/d2 + sub d6,d0 + move d0,(a1)+ + sub d7,d2 + move d2,(a1)+ + move.l zo_na(a2),(a1)+ + ; + lea 32(a2),a2 + dbf d1,.loop2 + ; + bra exec_loop + +exec_addobj clr.l dummy + move (a6)+,d0 ;monster type + lea objinfo,a2 + mulu #objinfof-objinfo,d0 + add.l d0,a2 + move.l (a2)+,a3 + tst.l (a3) + beq.s .ok +.no addq #8,a6 + bra exec_loop +.ok cmp #2,-2(a6) ;player? + bcc.s .notp + addfirst objects + bra.s .bum +.notp addlast objects +.bum beq.s .no + move.l a0,a5 + ; + move.l a5,(a3) + ; + move (a6)+,ob_x(a5) + move (a6)+,ob_y(a5) + move (a6)+,ob_z(a5) + move (a6)+,ob_rot(a5) + ; + lea ob_info(a5),a3 + move #(objinfof-objinfo-4)>>1-1,d0 +.loop move (a2)+,(a3)+ + dbf d0,.loop + ; + tst ob_blood(a5) ;hi bit of blood=1=invisible! + smi d0 + ext d0 + move d0,ob_invisible(a5) + ; + bsr calcvecs + movem.l d4-d5,ob_xvec(a5) + ; + move.l ob_shape(a5),a0 + move.l 4(a0),ob_chunks(a5) + move.l (a0),a0 + move.l a0,ob_shape(a5) + ; + move an_maxw(a0),d0 + move d0,ob_rad(a5) + mulu d0,d0 + move.l d0,ob_radsq(a5) + ; + clr.l ob_washit(a5) + ; + bsr rnddelay + ; + bra exec_loop + +rnddelay move ob_range(a5),d0 + bsr rndn + add ob_base(a5),d0 + move d0,ob_delay(a5) + ; + rts + +seedrnd ;seed number in d0.w + ; + moveq #54,d1 + lea rndtable(pc),a0 + ; +.loop move d0,(a0)+ + mulu #$1efd,d0 + add #$dff,d0 + dbf d1,.loop + ; + move.l a0,k_index + move.l #rndtable+48,j_index + rts + +rndw ;return rnd number 0...65535 if d0.w + ; + movem.l a0/a1,-(a7) + lea rndtable(pc),a1 + move.l j_index(pc),a0 + move -(a0),d0 + cmp.l a0,a1 + bne.s .skip + lea rndtable+110(pc),a0 +.skip move.l a0,j_index + move.l k_index(pc),a0 + add -(a0),d0 + move d0,(a0) + cmp.l a0,a1 + bne.s .skip2 + lea rndtable+110(pc),a0 +.skip2 move.l a0,k_index + movem.l (a7)+,a0/a1 + rts + +rndtable ds.w 55 +k_index dc.l 0 +j_index dc.l 0 + +rndl bsr rndw + move d0,d1 + bsr rndw + swap d0 + move d1,d0 + rts + +rndn move d0,d1 + bsr rndw + mulu d1,d0 + swap d0 + rts + +seedrnd2 ;seed number in d0.w + ; + moveq #54,d1 + lea rndtable2(pc),a0 + ; +.loop move d0,(a0)+ + mulu #$1efd,d0 + add #$dff,d0 + dbf d1,.loop + ; + move.l a0,k_index2 + move.l #rndtable2+48,j_index2 + rts + +rndw2 ;return rnd number 0...65535 if d0.w + ; + movem.l a0/a1,-(a7) + lea rndtable2(pc),a1 + move.l j_index2(pc),a0 + move -(a0),d0 + cmp.l a0,a1 + bne.s .skip + lea rndtable2+110(pc),a0 +.skip move.l a0,j_index2 + move.l k_index2(pc),a0 + add -(a0),d0 + move d0,(a0) + cmp.l a0,a1 + bne.s .skip2 + lea rndtable2+110(pc),a0 +.skip2 move.l a0,k_index2 + movem.l (a7)+,a0/a1 + rts + +rndtable2 ds.w 55 +k_index2 dc.l 0 +j_index2 dc.l 0 + +rndl2 bsr rndw2 + move d0,d1 + bsr rndw2 + swap d0 + move d1,d0 + rts + +rndn2 move d0,d1 + bsr rndw2 + mulu d1,d0 + swap d0 + rts + +calcangle2 ;angle of camera to object in a5 + ; + move camx(pc),d0 + sub ob_x(a5),d0 + move camz(pc),d1 + sub ob_z(a5),d1 + bra.s calcangle_ + +calcangle ;angle of object a5 to object a0... + ; + move ob_x(a0),d0 + sub ob_x(a5),d0 + move ob_z(a0),d1 + sub ob_z(a5),d1 + ; +calcangle_ ;d0.w=x d1.w=y (dest-src)! + ; + moveq #0,d2 + tst d1 + bpl.s .hpos + moveq #16,d2 + neg d1 +.hpos tst d0 + bpl.s .wpos + eor #8,d2 + neg d0 +.wpos cmp d1,d0 + bmi.s .notsteep + bne.s .neq + move #$2000,d1 + bra.s .flow +.neq eor #4,d2 + exg d1,d0 +.notsteep tst d1 + bne.s .noflow + moveq #0,d1 + bra.s .flow +.noflow ext.l d0 + swap d0 + divu d1,d0 + lsr #6,d0 + and #1022,d0 + move .arc(pc,d0),d1 +.flow move.l .oct(pc,d2),d0 + eor d0,d1 + swap d0 + add d1,d0 + lsr #8,d0 + rts + ; +.oct dc 0,0,$4000,-1,0,-1,$c000,0 + dc $8000,-1,$4000,0,$8000,0,$c000,-1 +.arc incbin arc.bin + +currplayer dc.l 0 + +calcscene ;a5=player object + ; + move #$20,$dff09a + ; + move.l a5,currplayer + move.l ob_palette(a5),palette + move ob_thermo(a5),thermo + move ob_infra(a5),infra + move ob_pixsize(a5),pixsize + ; + clr.l shapelist + move.l a5,a0 + bsr calccamera + bsr makewalls + ; + lea objects(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq.s .done + cmp.l currplayer(pc),a5 + beq.s .loop + move.l ob_render(a5),a0 + tst ob_invisible(a5) + beq.s .notinvs + bpl.s .hb + move.l #drawobjtrans,shaperender + bra.s .rit +.hb move.l #drawobjinvs,shaperender +.rit jsr (a0) + move.l #drawobjnorm,shaperender + bra.s .loop +.notinvs jsr (a0) + bra.s .loop +.done ; + lea gore(pc),a5 + ; +.loop2 move.l (a5),a5 + tst.l (a5) + beq.s .done2 + ; + movem go_x(a5),d0/d2 + moveq #0,d1 + move.l go_shape(a5),a0 + move #$200,d7 + bsr drawshape_q + ; + bra.s .loop2 + ; +.done2 move #$8020,$dff09a + ; + rts + +blitscene ; + bclr #7,ob_update(a5) + beq.s .noupdate + ; + bclr #7,ob_update+1(a5) + beq.s .stats + ; + move.l ob_window(a5),a2 + moveq #9,d0 + jsr wcopy + bsr initstats + ; +.stats bsr showstats + ; +.noupdate move ob_messtimer(a5),d0 + bpl.s .mskip + addq #1,d0 + beq.s .mdone + neg ob_messtimer(a5) + move.l ob_window(a5),a0 + bsr putstrip + bsr printmess + bra.s .mskip + ; +.mdone clr ob_messtimer(a5) + move.l ob_window(a5),a0 + bsr putstrip +.mskip ; + rts + +drawscene ;a5=player + ; + move.l ob_window(a5),a0 + bsr dbwindow + ; + bsr castwalls + bsr makeqstrip + bsr renderwalls + ; + move floorflag(pc),d0 + ble.s .nofloor + ; + move camy(pc),d0 + neg d0 + moveq #-1,d1 + move maxy(pc),d7 + subq #1,d7 + move.l floor(pc),a0 + bsr flat + ; +.nofloor move roofflag(pc),d0 + ble.s .noflat + ; + move #-255,d0 + sub camy(pc),d0 + moveq #1,d1 + move miny(pc),d7 + move.l roof(pc),a0 + bsr flat + ; +.noflat bsr drawshapes + bsr drawblood + ; + move.l currplayer(pc),a0 + move ob_pixsize(a0),d0 + bne pixelate + rts + +chatstuff move chatok(pc),d0 + beq.s .rts + ; + move chatoutget(pc),d0 + cmp chatoutput(pc),d0 + beq.s .noout + and #31,d0 + lea chatout(pc),a0 + move.b 0(a0,d0),d0 ;chat out character! + addq #1,chatoutget + moveq #1,d1 + move d0,-(a7) + bsr chatprintout + move (a7)+,d0 + sub.b #32,d0 ;encode for chat + bset #6,d0 + bsr serput + ; +.noout move chatcnt(pc),d0 + beq.s .rts + ; + move chatinget(pc),d0 + and #31,d0 + lea chatin(pc),a0 + move.b 0(a0,d0),d0 + addq #1,chatinget + subq #1,chatcnt + moveq #2,d1 + bsr chatprintin + ; +.rts rts + +sfxvbint lea sfxs(pc),a1 + moveq #3,d3 + ; +.loop tst fx_status(a1) + ble.s .skip + ; + ;this one queued! gotta play it... + ; + subq #1,fx_status(a1) + bgt.s .skip + move.l fx_sfx(a1),a0 + bsr playsfxnow + ; +.skip lea fx_size(a1),a1 + dbf d3,.loop + ; + ;fade out song if nec. + ; + move fadevol(pc),d0 + beq.s .nofade + move.l medat(pc),a1 + sub #$80,fadevol + bgt.s .setvol + clr fadevol + jmp 12(a1) ;stop song + bra.s .nofade + ; +.setvol move fadevol(pc),d0 + lsr #8,d0 + jmp 16(a1) ;set volume + ; +.nofade rts + + dc.l readmodem +joytable dc.l readjoy1,readjoy0,readkeys,readcd321,readcd320 + +readjoy ;a0=player + move ob_cntrl(a0),d0 + bmi.s readmodem + ; + lea joyx0(pc),a0 + lea 0(a0,d0*8),a0 + move.l joytable(pc,d0*4),a1 + jsr (a1) + move linked(pc),d0 + bne.s .send + rts +.send ; + ;a0=cntrl block + ; + bsr encodejoy + movem.l d0/a0,-(a7) + bsr serput + ;movem.l (a7),d0/a0 + ;bsr serput + movem.l (a7)+,d0/a0 + ; +.noput lea pbuff(pc),a1 + ; + move pput(pc),d1 + and #127,d1 + move.b d0,0(a1,d1) + addq #1,pput + ; + move pget(pc),d1 + and #127,d1 + move.b 0(a1,d1),d0 + addq #1,pget + ; + bra decodejoy +readmodem ; + bsr rbfchk + bne.s .serhere + ; + ;OK, do a vwait to allow other machine to catch up! + ; + move #$20,$dff09c +.vw ; + ifne debugser + col #$f0f + endc + ; + btst #5,$dff01f + beq.s .vw + ; + move #$20,$dff09c + bsr chatstuff + bra.s readmodem + ; +.serhere bsr serget + lea joyxs(pc),a0 + bclr #7,d0 + beq.s .djoy + and #$ff,d0 + move d0,finished + moveq #0,d0 + ;bra.s .sgot + ; +.djoy ;movem.l d0/a0,-(a7) + ;bsr serwait + ;move d0,d1 + ;movem.l (a7)+,d0/a0 + ;cmp.b d0,d1 + ;beq.s .sgot + ; + ;warn #$fff + ;warn #$00f + ; +.sgot bsr decodejoy + move.l (a0)+,joyx + move.l (a0),joyb + rts + +escape dc 0 + +readjoys ;fill in appropriate 'joyxn' block...check escape + ; + move finished(pc),d0 + or finished2(pc),d0 + bne.s .rts + ; + qkey $45 + sne escape + ; + move.l player1(pc),a0 + bsr readjoy + move gametype(pc),d0 + beq.s .rts + move.l player2(pc),a0 + bra readjoy + ; +.rts rts + +lrnd dc 0 + +vbhandler movem.l d2-d7/a2-a6,-(a7) + ; + subq #1,(a1)+ ;inc/dec frame counters + addq #1,(a1) + ; + ;this done every frame! + bsr showit + bsr chatstuff + bsr sfxvbint + ; + btst #0,framecnt+1 + beq exit_vb + tst paused + bne exit_vb + ; + ;OK, movement/animation stuff! + ; + bsr readjoys + bsr doanims + bsr dorots + bsr dodoors + bsr moveblood + ; + ifne debugser + ; + ;OK, kludge in a random number! + move framecnt(pc),d0 + and #126,d0 + bne.s .nornd + ; + bsr rndw + move lrnd(pc),d1 + move d0,lrnd + cmp d0,d1 + bne.s .hi + warn #$fff + warn #$00f +.hi lea .rndasc(pc),a0 + moveq #3,d1 +.loop rol #4,d0 + move d0,d2 + and #15,d2 + add #48,d2 + cmp #58,d2 + bcs.s .rok + addq #7,d2 +.rok move.b d2,(a0)+ + dbf d1,.loop + ; + move.l player1(pc),a5 + bsr message +.rndasc dc.b 'aaaa',0 + even + ; + endc +.nornd ; + move.l a7,obj_stack + lea objects(pc),a5 + ; +obj_loop move.l (a5),a5 + tst.l (a5) + beq exit_vb + ; + move.l ob_logic(a5),a0 + jsr (a0) + ; + ;check collision! + ; + move ob_collwith(a5),d0 + beq.s obj_loop + ; + move ob_rad(a5),d1 + move ob_x(a5),d6 + move ob_z(a5),d7 + ; + lea objects(pc),a0 + ; +.loop2 move.l (a0),a0 + cmp.l a5,a0 + bne.s .this + ; + clr.l ob_washit(a5) ;not hit! can get hit next time... + bra obj_loop +.this ; + move ob_colltype(a0),d2 + and d0,d2 + beq.s .loop2 + ; + move ob_rad(a0),d2 + add d1,d2 ;r sum + ; + move ob_x(a0),d3 + sub d6,d3 + bpl.s .xpl + neg d3 +.xpl cmp d2,d3 + bcc.s .loop2 + ; + move ob_z(a0),d4 + sub d7,d4 + bpl.s .ypl + neg d4 +.ypl cmp d2,d4 + bcc.s .loop2 + ; + mulu d2,d2 + mulu d3,d3 + mulu d4,d4 + add.l d4,d3 + cmp.l d2,d3 + bcc.s .loop2 + ; + cmp.l ob_washit(a5),a0 + beq obj_loop + move.l a0,ob_washit(a5) + ; + move finished2(pc),d0 + bne obj_loop + ; + move.l #killobject3,killjsr + movem.l a0/a5,obj_a0 + exg.l a0,a5 + ; + move ob_damage(a0),d0 + move.l ob_hit(a5),a1 + sub d0,ob_hitpoints(a5) + bgt.s hit_skip + move.l ob_die(a5),a1 + ; +hit_skip jsr (a1) + ; +hit_ret move.l #killobject2,killjsr + movem.l obj_a0(pc),a0/a5 + ; + move ob_damage(a0),d0 + move.l ob_hit(a5),a1 + sub d0,ob_hitpoints(a5) + bgt.s hit_skip2 + move.l ob_die(a5),a1 + ; +hit_skip2 jsr (a1) + bra obj_loop + ; +exit_vb st doneflag + bsr showit + ; + movem.l (a7)+,d2-d7/a2-a6 + moveq #0,d0 + ; +rts rts + +obj_a0 dc.l 0 +obj_a5 dc.l 0 +obj_stack dc.l 0 +killjsr dc.l killobject2 + +killobject ; + move.l killjsr(pc),a0 + jmp (a0) + +killobject2 move.l a5,a0 + killitem objects + move.l a0,a5 + move.l obj_stack(pc),a7 + bra obj_loop + +killobject3 move.l a5,a0 + killitem objects + move.l obj_stack(pc),a7 + bra hit_ret + +bloodspeed bsr rndw + ext.l d0 + lsl.l #2,d0 + rts + +bloodspeed2 bsr rndw + ext.l d0 + lsl.l #5,d0 + rts + +bloodspeed3 bsr rndw + ext.l d0 + lsl.l #4,d0 + rts + +makesparksq move.l ob_chunks(a5),a2 + ; +makesparks ;a2=sparks + ; + movem.l ob_x(a5),d2-d4 + move 2(a2),d5 + subq #1,d5 + ; +.loop addlast objects + beq .rts + movem.l d2-d4,ob_x(a0) + bsr bloodspeed2 + move.l d0,ob_xvec(a0) + bsr bloodspeed2 + move.l d0,ob_yvec(a0) + bsr bloodspeed2 + move.l d0,ob_zvec(a0) + move.l a2,ob_shape(a0) + move d5,ob_frame(a0) + move.l #sparkslogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + clr ob_invisible(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + bsr rndw + and #15,d0 + add #15,d0 + move d0,ob_delay(a0) + dbf d5,.loop +.rts rts + +sparkslogic subq #1,ob_delay(a5) + ble killobject + movem.l ob_x(a5),d0-d2 + add.l ob_xvec(a5),d0 + add.l ob_yvec(a5),d1 + add.l ob_zvec(a5),d2 + movem.l d0-d2,ob_x(a5) + rts + +bloodymess ;throw random blood splots everywhere! + ; + bsr bloodspeed2 + add.l ob_x(a5),d0 + move.l d0,d2 + bsr bloodspeed2 + add.l ob_gutsy(a5),d0 + move.l d0,d3 + bsr bloodspeed2 + add.l ob_z(a5),d0 + move.l d0,d4 + ; +.loop addlast blood + beq.s .done + ; + movem.l d2-d4,bl_x(a0) + bsr bloodspeed + move.l d0,bl_xvec(a0) + bsr bloodspeed + move.l d0,bl_yvec(a0) + bsr bloodspeed + move.l d0,bl_zvec(a0) + move ob_blood(a5),bl_color(a0) + ; + dbf d7,.loop + ; +.done rts + +bloodymess2 ;throw random blood splots everywhere! + ; + bsr bloodspeed2 + add.l ob_x(a5),d0 + move.l d0,d2 + bsr bloodspeed2 + add.l ob_gutsy(a5),d0 + move.l d0,d3 + bsr bloodspeed2 + add.l ob_z(a5),d0 + move.l d0,d4 + ; +.loop addlast blood + beq.s .done + ; + movem.l d2-d4,bl_x(a0) + bsr bloodspeed3 + move.l d0,bl_xvec(a0) + bsr bloodspeed3 + move.l d0,bl_yvec(a0) + bsr bloodspeed3 + move.l d0,bl_zvec(a0) + move ob_blood(a5),bl_color(a0) + ; + dbf d7,.loop + ; +.done rts + +chunklogic move mode(pc),d0 + beq chunklogic2 + ; + add.l #$8000,ob_yvec(a5) + move.l ob_yvec(a5),d0 + add.l ob_y(a5),d0 + blt .skip + ; + ;OK...hit ground! + ; + bsr splat + addlast gore + bne.s .gok + ; + move.l gore(pc),a0 + killitem gore + addlast gore + beq killobject + ; +.gok move ob_x(a5),go_x(a0) + move ob_z(a5),go_z(a0) + move.l ob_shape(a5),a1 + move ob_frame(a5),d0 + add.l 12(a1,d0*4),a1 + move.l a1,go_shape(a0) + ; + bra killobject + ; +.skip move.l d0,ob_y(a5) + bsr checkvecs + beq.s .rts + clr.l ob_xvec(a5) + clr.l ob_zvec(a5) +.rts rts + +chunklogic2 add.l #$8000,ob_yvec(a5) + move.l ob_yvec(a5),d0 + add.l d0,ob_y(a5) + blt.s .ok + ;bsr splat + bra killobject +.ok movem.l ob_xvec(a5),d0-d1 + add.l d0,ob_x(a5) + add.l d1,ob_z(a5) + rts + +splat move.l splatsfx(pc),a0 + moveq #32,d0 + moveq #-1,d1 + bra playsfx + +blowterra move.l robodiesfx(pc),a0 + moveq #64,d0 + moveq #20,d1 + bsr playsfx + bra blowquick + +blowdragon ;same, but messier... + ; + ;loud! + ; + move.l diesfx(pc),a0 + moveq #64,d0 + moveq #50,d1 + bsr playsfx + move.l diesfx(pc),a0 + moveq #64,d0 + moveq #50,d1 + bsr playsfx + move.l robodiesfx(pc),a0 + moveq #64,d0 + moveq #50,d1 + bsr playsfx + move.l robodiesfx(pc),a0 + moveq #64,d0 + moveq #50,d1 + bsr playsfx + ; + moveq #63,d7 + bsr bloodymess2 + ; + move.l ob_chunks(a5),a4 + bsr blowchunx + bsr blowchunx + bsr blowchunx + bsr blowchunx + ; + move.l #dragondead,ob_logic(a5) + move.l #rts,ob_render(a5) + clr ob_colltype(a5) + clr ob_collwith(a5) + move #127,ob_delay(a5) + rts + +dragondead subq #1,ob_delay(a5) + bgt.s .rts + ; + move #3,finished + ; +.rts rts + +blowdeath cmp.l sucker(pc),a5 + bne.s blowobject + clr.l sucker + clr.l sucking + ; +blowobject move.l diesfx(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx +blowquick ; + moveq #31,d7 + bsr bloodymess2 + ; + move.l ob_chunks(a5),d0 + bne.s .chok + ; + moveq #15,d7 + bsr bloodymess2 + bra killobject + ; +.chok move.l d0,a4 + bsr blowchunx + bra killobject + +blowchunx move 2(a4),d7 + subq #1,d7 + ; +.loop addlast objects + beq killobject + movem.l ob_x(a5),d0-d2 + move.l #-64<<16,d1 + movem.l d0-d2,ob_x(a0) + ; + bsr bloodspeed3 + move.l d0,ob_xvec(a0) + bsr bloodspeed3 + sub.l #$40000,d0 + move.l d0,ob_yvec(a0) + bsr bloodspeed3 + move.l d0,ob_zvec(a0) + ; + clr ob_invisible(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + move.l #chunklogic,ob_logic(a0) + move.l a4,ob_shape(a0) + move.l #drawshape_1sc,ob_render(a0) + move d7,ob_frame(a0) + move ob_scale(a5),ob_scale(a0) + ; + move an_maxw(a4),d0 + move d0,ob_rad(a0) + mulu d0,d0 + move.l d0,ob_radsq(a0) + ; + dbf d7,.loop + rts + +hurtdeath ;OK! death head hit! + ; + ;point at player, and start to suck his soul! + ; + move.l sucking(pc),d0 + bne.s .rts + ; + bsr pickplayer + cmp.l #playerlogic,ob_logic(a0) + bne.s .rts + ; + move.l a0,sucking + move.l a5,sucker + ; + move ob_rot(a5),ob_oldrot(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #deathsuck,ob_logic(a5) + move.l #rts,ob_hit(a5) + move #64,ob_delay(a5) + bra.s deathsuck + ; +.rts rts + +deathsuck ;death head sucking out a players soul! + ; + bsr deathbounce + bsr deathanim + subq #1,ob_delay(a5) + bgt.s .more + move ob_oldrot(a5),ob_rot(a5) + move.l ob_oldlogic(a5),ob_logic(a5) + move.l #hurtdeath,ob_hit(a5) + clr.l sucker + clr.l sucking + bra rnddelay + ; +.more move.l sucking(pc),a0 + move.l a0,a2 + bsr calcangle ;point at player! + move d0,ob_rot(a5) + ; + add #128,d0 + and #255,d0 + move.l camrots(pc),a3 + lea 0(a3,d0*8),a3 + ; + move.l a3,suckangle + ; + ;calc x/z vecs + ; + moveq #3,d7 + bsr addsoul + ; +.rts rts + +sucker dc.l 0 +sucking dc.l 0 +suckangle dc.l 0 + +addsoul ;d7 times! + ; + addlast blood + beq .rts + ; + move 2(a3),d2 + ext.l d2 + lsl.l #5,d2 + neg.l d2 + move 6(a3),d3 + ext.l d3 + lsl.l #5,d3 + ; + move.l d2,bl_xvec(a0) + move.l a5,bl_yvec(a0) + move.l d3,bl_zvec(a0) + ; + swap d2 + swap d3 + add d2,d2 + add d3,d3 + add ob_x(a2),d2 + add ob_z(a2),d3 + ; + bsr rndw + and #63,d0 + sub #32,d0 + add d2,d0 + move d0,bl_x(a0) + ; + bsr rndw + and #63,d0 + sub #32,d0 + add #110,d0 + move d0,bl_y(a0) ;>0= funny blood! + ; + bsr rndw + and #63,d0 + sub #32,d0 + add d3,d0 + move d0,bl_z(a0) + ; + bsr rndw + and #1,d0 + move soulcols(pc,d0*2),bl_color(a0) + ; + dbf d7,addsoul + ; +.rts rts + +soulcols dc $0ff,$0f0 + +hurtghoul moveq #31,d7 + bsr bloodymess + rts + +hurtterra move.l a0,-(a7) + move.l shootsfx2(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx + move.l (a7)+,a0 + bra.s hurtobject + +hurtngrunt move.l a0,-(a7) + bsr rndw + and #3,d0 + cmp lastgrunt(pc),d0 + bne.s .new + addq #1,d0 + and #3,d0 +.new move d0,lastgrunt + lea grunttable(pc),a0 + move.l 0(a0,d0*4),a0 + move.l (a0),a0 + moveq #64,d0 + moveq #1,d1 + bsr playsfx + move.l (a7)+,a0 + ; +hurtobject move ob_colltype(a0),d0 + and #24,d0 + bne.s .rts + ; + moveq #23,d7 + bsr bloodymess + move ob_hurtpause(a5),ob_hurtwait(a5) + beq .rts + ; + move #4,ob_frame(a5) + move.l ob_logic(a5),ob_oldlogic2(a5) + move.l ob_hit(a5),ob_oldhit(a5) + move.l #pauselogic2,ob_logic(a5) + move.l #rts,ob_hit(a5) + ; +.rts rts + +lizhurt move.l a0,-(a7) + move.l lizhitsfx(pc),a0 + moveq #64,d0 + moveq #1,d1 + bsr playsfx + move.l (a7)+,a0 + bra hurtobject + +trollhurt move.l a0,-(a7) + move.l trollhitsfx(pc),a0 + moveq #64,d0 + moveq #1,d1 + bsr playsfx + move.l (a7)+,a0 + bra hurtobject + +pauselogic2 subq #1,ob_hurtwait(a5) + bgt.s .rts + clr ob_frame(a5) + move.l ob_oldlogic2(a5),ob_logic(a5) + move.l ob_oldhit(a5),ob_hit(a5) +.rts rts + +pauselogic subq #1,ob_delay(a5) + bgt.s .skip + ; + bsr rnddelay + move.l ob_oldlogic(a5),ob_logic(a5) + ; + ;if in front of player, continue on old course... + ; + bsr pickcalc + ; + move ob_rot(a0),d1 + and #255,d1 + sub d0,d1 + bpl.s .pl + neg d1 +.pl cmp #64,d1 + bcs.s .skip + cmp #192,d1 + bcc.s .skip + ; +.useold move ob_oldrot(a5),ob_rot(a5) + bsr calcvecs + ; +.skip rts + +shoot ; + ;fire off a bullet... + ; + ;d2 : colltype + ;d3 : collwith + ;d4 : hitpoints + ;d5 : damage + ;d6 : speed + ;a2=bullet shape + ;a3=sparks shape + ; + addfirst objects + beq .rts + ; + move ob_bouncecnt(a5),ob_bouncecnt(a0) + move ob_x(a5),ob_x(a0) + move ob_y(a5),d0 + add ob_firey(a5),d0 + move d0,ob_y(a0) + move ob_z(a5),ob_z(a0) + move.l #firelogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + move.l #rts,ob_hit(a0) + move.l #killobject,ob_die(a0) + move d2,ob_colltype(a0) + move d3,ob_collwith(a0) + move d4,ob_hitpoints(a0) + move d5,ob_damage(a0) + move d6,ob_movspeed(a0) + move.l a2,ob_shape(a0) + clr ob_invisible(a0) + clr ob_frame(a0) + move.l a3,ob_chunks(a0) + ; + move ob_rot(a5),d0 + and #255,d0 + move.l camrots(pc),a1 + lea 0(a1,d0*8),a1 + ; + move 2(a1),d0 + move d0,ob_nxvec(a0) + neg d0 + muls d6,d0 + add.l d0,d0 + move 6(a1),d1 + move d1,ob_nzvec(a0) + muls d6,d1 + add.l d1,d1 + ; + movem.l d0-d1,ob_xvec(a0) + ;add.l d0,ob_x(a0) + ;add.l d1,ob_z(a0) + ; + move #32,ob_rad(a0) + move.l #32*32,ob_radsq(a0) + ; +.rts rts + +pickcalc ;pick a player and calculate angle to player! + ; + bsr pickplayer + bsr calcangle + tst ob_invisible(a0) + beq.s .rts + move d0,-(a7) + bsr rndw + and #63,d0 + sub #32,d0 + add (a7)+,d0 + and #255,d0 +.rts rts + +fire1 bsr pickcalc + ; + ;random noise for inaccuracy! + ; + move d0,-(a7) + bsr rndw + and #31,d0 + sub #16,d0 + add (a7)+,d0 + and #255,d0 + ; + move d0,ob_rot(a5) + bsr calcvecs + move #7,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #pauselogic,ob_logic(a5) + clr.l ob_frame(a5) + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #1,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet1,a2 + lea sparks1,a3 + ; + bsr shoot + ; + rts + +pickplayer ;pick nearest player + ; + move.l player1(pc),a0 + move gametype(pc),d0 + beq.s .rts + move.l player2(pc),a1 + move linked(pc),d0 + bpl.s .nosw + exg a0,a1 +.nosw ; + tst ob_hitpoints(a0) + beq .sw + tst ob_hitpoints(a1) + beq.s .rts + ; + move ob_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move ob_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 ;dist to player a0 + ; + move ob_x(a5),d1 + sub ob_x(a1),d1 + muls d1,d1 + move ob_z(a5),d2 + sub ob_z(a1),d2 + muls d2,d2 + add.l d2,d1 ;dist to player a1 + ; + cmp.l d1,d0 + bcs.s .rts + ; +.sw move.l a1,a0 + ; +.rts rts + +checkcoll ;check for collision between a5, and a0 + ; + move ob_rad(a5),d1 + move ob_rad(a0),d2 + add d1,d2 ;r sum + ; + move ob_x(a0),d3 + sub ob_x(a5),d3 + bpl.s .xpl + neg d3 +.xpl cmp d2,d3 + bcc.s .no + ; + move ob_z(a0),d4 + sub ob_z(a5),d4 + bpl.s .ypl + neg d4 +.ypl cmp d2,d4 + bcc.s .no + ; + mulu d2,d2 + mulu d3,d3 + mulu d4,d4 + add.l d4,d3 + cmp.l d2,d3 + bcc.s .no + ; + moveq #-1,d0 + rts + ; +.no moveq #0,d0 + rts + +baldycharge ; + ;baldy charging at player! + ; + bsr checkvecs + beq baldy_skip + ; +baldy_tonorm move.l ob_movspeed(a5),d0 + lsr.l #2,d0 + move.l d0,ob_movspeed(a5) + ; + move.l ob_framespeed(a5),d0 + lsr.l #2,d0 + move.l d0,ob_framespeed(a5) + ; + move.l ob_oldlogic(a5),ob_logic(a5) + bsr rnddelay + ; + bra monsterfix + ; +baldy_skip ;close to player? start throwing punches around! + ; + bsr pickcalc + ; + sub ob_rot(a5),d0 + cmp #32,d0 + bgt baldy_tonorm + cmp #-32,d0 + blt baldy_tonorm + ; + move.l a0,ob_washit(a5) + bsr checkcoll + beq monsternew ;no collisions! + ; + ;go into punch mode! + ; + move.l #baldypunch,ob_logic(a5) + move ob_punchrate(a5),ob_delay(a5) + clr.l ob_frame(a5) + rts + +baldypunch ; + bsr pickplayer + bsr checkcoll + bne.s .doit + ; + clr.l ob_frame(a5) + bra baldy_tonorm + ; +.doit subq #1,ob_delay(a5) + ble.s .punch + rts +.punch move ob_punchrate(a5),ob_delay(a5) + moveq #0,d0 ;stand frame + cmp ob_frame(a5),d0 + bne .skip + ; + clr.l ob_washit(a5) ;punch! + bsr calcangle + move d0,ob_rot(a5) + moveq #5,d0 +.skip move d0,ob_frame(a5) + rts + +calcbangle bsr calcangle + tst ob_invisible(a0) + beq.s .notinv + ; + ;invisible, add some randomeness! + ; + move d0,-(a7) + bsr rndw + and #127,d0 + sub #64,d0 + add (a7)+,d0 + and #255,d0 + ; +.notinv move d0,ob_rot(a5) + rts + +trolllogic move ob_rad(a5),d0 + mulu #$a000,d0 + swap d0 + move d0,ob_rad(a5) + mulu d0,d0 + move.l d0,ob_radsq(a5) + move.l #trolllogic2,ob_logic(a5) + ; +trolllogic2 subq #1,ob_delay(a5) + bgt monstermove ;charge? + ; + bsr pickcalc ;pic player in a0! + move ob_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move ob_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 + cmp.l #320*320,d0 + bcc bl2 + ; + move.l trollsfx(pc),a0 + moveq #64,d0 + moveq #5,d1 + bsr playsfx + ; + bra bl2 + +lizardlogic ; + subq #1,ob_delay(a5) + bgt monstermove ;charge? + ; + bsr pickcalc ;pic player in a0! + move ob_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move ob_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 + cmp.l #256*256,d0 + bcc.s bl2 + ; + move.l lizsfx(pc),a0 + moveq #32,d0 + moveq #5,d1 + bsr playsfx + ; + bra bl2 + +baldylogic ; + ;OK, what can baldy do... + ; + ;how about, walk around similar to the marine, but randomly + ;charge at you? + ; + ;then, if he's close enough, he throws a punch! + ; + subq #1,ob_delay(a5) + bgt monstermove ;charge? + ; +bl2 bsr pickcalc + move d0,ob_rot(a5) + ; + move.l ob_movspeed(a5),d0 + lsl.l #2,d0 + move.l d0,ob_movspeed(a5) + move.l ob_framespeed(a5),d0 + lsl.l #2,d0 + move.l d0,ob_framespeed(a5) + ; + bsr calcvecs + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #baldycharge,ob_logic(a5) + ; + rts + +terralogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + ble .fire + ; + move ob_delay(a5),d0 + and #31,d0 + bne monstermove + ; + move.l robotsfx(pc),a0 + moveq #64,d0 + moveq #10,d1 + bsr playsfx + bra monstermove + ; +.fire ;OK, terra goes apeshit! stand there firing off at player! + ;use punchrate as firedelay! + ; + clr ob_frame(a5) + move #1,ob_delay(a5) + move ob_firecnt(a5),ob_delay2(a5) + move.l #terralogic2,ob_logic(a5) + rts + +terralogic2 ; + subq #1,ob_delay(a5) + bgt.s .rts + ; + move ob_firerate(a5),ob_delay(a5) + ; + ;OK, to to face player and fire away! + ; + bsr pickcalc + move d0,ob_rot(a5) + bsr calcvecs + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #16,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet4,a2 + lea sparks4,a3 + ; + bsr shoot + ; + move.l shootsfx3(pc),a0 + moveq #32,d0 + moveq #5,d1 + bsr playsfx + ; + subq #1,ob_delay2(a5) + bgt.s .rts + ; + bsr rnddelay + move.l #terralogic,ob_logic(a5) + ; +.rts rts + +ghoullogic ; + addq #8,ob_bounce(a5) + move ob_bounce(a5),d0 + move.l camrots(pc),a0 + and #255,d0 + move 0(a0,d0*8),d0 + ext.l d0 + lsl.l #5,d0 ;+/- 32 + swap d0 + add #-32,d0 + move d0,ob_y(a5) + ; + bsr pickcalc + move d0,ob_rot(a5) + ; + subq #1,ob_delay(a5) + bgt.s .skip + ; + move #1,ob_frame(a5) + move.l #$2000,ob_framespeed(a5) + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet2,a2 + lea sparks2,a3 + ; + bsr shoot + bsr rnddelay + ; +.skip ;OK, ghoul moves around ignoring walls! + ; + ;he's pointed at player...how about randomly selected to make + ;this his new movement vector? + ; + bsr rndw + move ob_movspeed(a5),d1 + lsl #8,d1 + cmp d1,d0 + bcc.s .no + ; + bsr calcvecs + ; + move.l ghoulsfx(pc),a0 + moveq #32,d0 + moveq #-5,d1 + bsr playsfx + ; +.no movem.l ob_xvec(a5),d0-d1 + add.l d0,ob_x(a5) + add.l d1,ob_z(a5) + ; + move.l ob_framespeed(a5),d0 + beq.s .rts + add.l d0,ob_frame(a5) + cmp #3,ob_frame(a5) + bcs.s .rts + ; + clr ob_frame(a5) + clr.l ob_framespeed(a5) + ; +.rts rts + +demonpause move ob_delay(a5),d0 + move d0,d1 + and #4,d0 + sne d0 + ext d0 + and #5,d0 ;0 or 5 + move d0,ob_frame(a5) + ; + and #7,d1 ;do a fire? + cmp #7,d1 + bne.s .nofire + ; + move ob_delay(a5),d0 + lsr #3,d0 + mulu #18,d0 + lea wtable(pc),a0 + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + movem 0(a0,d0),d4-d6 ;hits,dam,speed + mulu #$c000,d5 + swap d5 ;3/4 damage! + moveq #0,d7 ;acc + movem.l 6(a0,d0),a2-a3 ;bullets/sparks + move.l 14(a0,d0),-(a7) ;sfx! + ; + bsr shoot + ; + move.l (a7)+,a0 + move.l (a0),a0 + moveq #32,d0 + moveq #0,d1 + bsr playsfx + ; +.nofire subq #1,ob_delay(a5) + bgt.s .rts + ; + bsr rnddelay + move.l ob_oldlogic(a5),ob_logic(a5) + ; +.rts rts + +demonlogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + bgt monstermove + ; + bsr pickcalc + ; + move d0,ob_rot(a5) + bsr calcvecs + move #5<<3-1,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #demonpause,ob_logic(a5) + ; + rts + +phantomlogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + bgt monstermove + ; + bsr pickcalc + ; + move d0,ob_rot(a5) + bsr calcvecs + move #7,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #pauselogic,ob_logic(a5) + move #5,ob_frame(a5) + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet3,a2 + lea sparks3,a3 + ; + bra shoot + +deathbounce addq #4,ob_bounce(a5) + move ob_bounce(a5),d0 + move.l camrots(pc),a0 + and #255,d0 + move 0(a0,d0*8),d0 + ext.l d0 + lsl.l #5,d0 ;+/- 64 + swap d0 + add #-48,d0 + move d0,ob_y(a5) + rts + +deathheadlogic ; + ;cruises around rotating at speed ob_delay + ; + bsr deathbounce + ; + bsr checkvecs + bne.s .hit + ; + ;charge player? + ; + bsr pickcalc ;find angle to player + move ob_rot(a5),d1 + and #255,d1 + sub d0,d1 ;am I near? + bpl.s .ansk + neg d1 +.ansk cmp #16,d1 + bcc.s .notnear + ; + ;OK! chargaroony! + ; + move d0,ob_rot(a5) + move.l #deathcharge,ob_logic(a5) + bra calcvecs +.hit add #128,ob_rot(a5) + bsr rnddelay +.notnear move ob_delay(a5),d0 + add d0,ob_rot(a5) + bsr calcvecs + rts + +deathanim move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + cmp.l #$8000,ob_frame(a5) + blt.s .fix + cmp.l #$28000,ob_frame(a5) + blt.s .fok +.fix neg.l d0 + add.l d0,ob_frame(a5) + move.l d0,ob_framespeed(a5) + ; +.fok rts + +deathcharge bsr deathbounce + bsr deathanim + ; + bsr pickcalc + move ob_rot(a5),d1 + and #255,d1 + sub d1,d0 ;am I near? + bpl.s .ansk + neg d0 +.ansk cmp #128,d0 + bcc.s .hit + bsr checkvecs + bne.s .hit2 + rts +.hit2 add #128,ob_rot(a5) +.hit move.l #deathheadlogic,ob_logic(a5) + move.l #$8000,ob_frame(a5) + bra rnddelay + +monsterlogic ; + move ob_rot(a5),ob_oldrot(a5) + ;monster cruising around minding his own business... + ; + subq #1,ob_delay(a5) + ble fire1 + ; +monstermove bsr checkvecs + beq.s monsternew + ; + ;OK, try 90/-90 degrees... + ; +monsterfix bsr rndw + moveq #64,d1 + tst d0 + bpl.s .umk + moveq #-64,d1 +.umk add d1,ob_rot(a5) + bsr calcvecs + bsr checkvecs + beq.s monsternew + ; + add #128,ob_rot(a5) + bsr calcvecs + bsr checkvecs + beq.s monsternew + ; + move ob_oldrot(a5),d0 + add #128,d0 + move d0,ob_rot(a5) + ; + bsr calcvecs + bsr checkvecs +monsternew ; + move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + and #3,ob_frame(a5) + rts + +dragonfire ;dragon fires at you! + ; + ;d2 : colltype + ;d3 : collwith + ;d4 : hitpoints + ;d5 : damage + ;d6 : speed + ;a2=bullet shape + ;a3=sparks shape + ; + subq #1,ob_delay(a5) + bpl .rts + move ob_delay(a5),d0 + cmp #-16*8,d0 + bgt.s .try + move #47,ob_delay(a5) + rts +.try and #7,d0 + bne .rts + ; +.fire moveq #0,d2 ;colltype + moveq #24+3,d3 ;collwith - p1/p2/bullets + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #16,d6 ;speed + lea bullet5,a2 + lea sparks5,a3 + ; + addlast objects + beq .rts + ; + move ob_bouncecnt(a5),ob_bouncecnt(a0) + move ob_x(a5),ob_x(a0) + move ob_y(a5),d0 + add ob_firey(a5),d0 + move d0,ob_y(a0) + move ob_z(a5),ob_z(a0) + move.l #homeinlogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + move.l #makesparksq,ob_hit(a0) + move.l #blowdb,ob_die(a0) + move d2,ob_colltype(a0) + move d3,ob_collwith(a0) + move d4,ob_hitpoints(a0) + move d5,ob_damage(a0) + move d6,ob_movspeed(a0) + move.l a2,ob_shape(a0) + clr ob_invisible(a0) + clr ob_frame(a0) + move.l a3,ob_chunks(a0) + ; + move ob_rot(a5),d0 + and #255,d0 + move.l camrots(pc),a1 + lea 0(a1,d0*8),a1 + ; + move 2(a1),d0 + move d0,ob_nxvec(a0) + neg d0 + muls d6,d0 + add.l d0,d0 + move 6(a1),d1 + move d1,ob_nzvec(a0) + muls d6,d1 + add.l d1,d1 + ; + movem.l d0-d1,ob_xvec(a0) + ; + move #32,ob_rad(a0) + move.l #32*32,ob_radsq(a0) + ; +.rts rts + +blowdb bsr makesparksq + bra killobject + +homeinlogic bsr checkvecs + bne.s blowdb + bsr pickcalc ;find angle to player! + move.l camrots(pc),a0 + lea 0(a0,d0*8),a0 + move 2(a0),d4 ;x acc. + neg d4 + ext.l d4 + lsl.l #2,d4 + move 6(a0),d5 ;z acc. + ext.l d5 + lsl.l #2,d5 + ; + add.l ob_xvec(a5),d4 + move.l d4,d0 + bpl.s .pl1 + neg.l d0 +.pl1 cmp.l #$200000,d0 ;max speed + bcc.s .sk1 + move.l d4,ob_xvec(a5) + ; +.sk1 add.l ob_zvec(a5),d5 + move.l d5,d0 + bpl.s .pl2 + neg.l d0 +.pl2 cmp.l #$200000,d0 + bcc.s .sk2 + move.l d5,ob_zvec(a5) +.sk2 ; + bra putfire + +dragonanim move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + and #3,ob_frame(a5) + rts + +getobrot move ob_rotspeed(a5),d0 + bne.s .addr + ; + ;OK, randomly left/rite! + ; + bsr rndw + and #1,d0 + bne.s .addr2 + moveq #-1,d0 + ; +.addr2 lsl #2,d0 + move d0,ob_rotspeed(a5) + ; +.addr rts + +dragonlogic ;OK! end of game baddy! + ; + ;how about cruising around in a circle a-la + ;deathhead! + ; + bsr dragonanim + bsr dragonfire + bsr checkvecs + beq.s .nohit + ; + ;OK, dragon has hit a wall...rot him around till he's clear! + ; + bsr getobrot + lsl #2,d0 + add d0,ob_rot(a5) + bra calcvecs +.nohit ; + bsr pickcalc + move ob_rot(a5),d1 + and #255,d1 + sub d0,d1 ;am I near? + bpl.s .ansk + neg d1 +.ansk moveq #6,d0 + tst ob_rotspeed(a5) + bne.s .sh + moveq #24,d0 +.sh cmp d0,d1 + bcs.s .near + ; + ;not pointed at player! + bsr getobrot + add d0,ob_rot(a5) + bra calcvecs + ; +.near tst ob_rotspeed(a5) + beq.s .near2 + clr ob_rotspeed(a5) ;towards player! + ; + move.l dragonsfx(pc),a0 + moveq #64,d0 + moveq #20,d1 + bsr playsfx + ; +.near2 rts + +weaponlogic ; + move.l camrots(pc),a0 + ; + addq #8,ob_movspeed(a5) + move ob_movspeed(a5),d0 + and #127,d0 + move 2(a0,d0*8),d0 + asr #8,d0 + move d0,ob_y(a5) + ; + move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + move ob_frame(a5),d0 + move.l ob_shape(a5),a0 + cmp 2(a0),d0 + bcs.s .skip + clr ob_frame(a5) +.skip ; + subq #1,ob_delay(a5) + bgt .rts + bsr rnddelay + ; + addlast objects + beq.s .rts + ; + movem.l ob_x(a5),d2-d4 + movem.l d2-d4,ob_x(a0) + bsr bloodspeed2 + move.l d0,ob_xvec(a0) + bsr bloodspeed2 + move.l d0,ob_yvec(a0) + bsr bloodspeed2 + move.l d0,ob_zvec(a0) + move.l ob_chunks(a5),a2 + move.l a2,ob_shape(a0) + move 2(a2),d0 + bsr rndn + move d0,ob_frame(a0) + move.l #sparkslogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + clr ob_invisible(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + bsr rndw + and #15,d0 + add #15,d0 + move d0,ob_delay(a0) +.rts rts + +calcvecs move ob_rot(a5),d0 + ; + and #255,d0 + move.l camrots(pc),a0 + lea 0(a0,d0*8),a0 + ; + move ob_movspeed(a5),d4 + move d4,d5 + muls 2(a0),d4 + add.l d4,d4 + neg.l d4 + move.l d4,ob_xvec(a5) + muls 6(a0),d5 + add.l d5,d5 + move.l d5,ob_zvec(a5) + rts + +checkvecs movem.l ob_xvec(a5),d6-d7 + add.l ob_x(a5),d6 + add.l ob_z(a5),d7 + bsr checknewslow ;ok to stand here? + beq.s .ok + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + bsr checknewslow + bne.s .fix + moveq #-1,d1 ;use old pos, and report hit! + rts + ; +.fix bsr adjustposq ;fixup! + moveq #-1,d1 + ; +.ok move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + tst d1 + rts + +playerdead bsr getcntrl + ; + subq #1,ob_delay(a5) + bgt.s .rts + ; + cmp #2,gametype + bne.s .notcom + ; + ;combat game! + ; + move #4,finished2 + move #1,ob_pixsizeadd(a5) + move.l #rts,ob_logic(a5) + bsr getother + move #1,ob_pixsizeadd(a0) +.rts rts + ; +.notcom ; + tst ob_lives(a5) + beq.s .dead + move.l #waitrestart,ob_logic(a5) + rts + ; +.dead move.l #rts,ob_logic(a5) + tst gametype + bne.s .not1p +.allover move #2,finished + rts + ; +.not1p ;OK, I'm all out of lives...what about other guy... + bsr getother + tst ob_lives(a0) + beq.s .allover + rts + +waitrestart bsr getcntrl + ; + bsr checkfireb + beq.s .rts + ; + move ob_weapon(a5),-(a7) + ; + lea p1x(pc),a0 + lea player1_+4,a1 + cmp.l player1,a5 + beq.s .got + lea p2x(pc),a0 + lea player2_+4,a1 +.got lea ob_info(a5),a2 + move #(objinfof-objinfo-4)>>1-1,d0 +.loop move (a1)+,(a2)+ + dbf d0,.loop + ; + clr.l ob_colltype(a5) + move #75,ob_delay(a5) + move.l #playerlogic0,ob_logic(a5) + ; + move (a0)+,ob_x(a5) + move (a0)+,ob_z(a5) + move (a0)+,ob_rot(a5) + ; + move (a7)+,ob_weapon(a5) + clr ob_bounce(a5) + ; + move.l ob_shape(a5),a0 + move.l 4(a0),ob_chunks(a5) + move.l (a0),a0 + move.l a0,ob_shape(a5) + ; + bsr resetplayer + move #-1,ob_update(a5) + st ob_lastbut(a5) + ; +.rts rts + +playerdeath bsr getcntrl + ; + addq #4,ob_rot(a5) + addq #4,ob_eyey(a5) + cmp #-32,ob_eyey(a5) + blt .rts + ; + move #-32,ob_eyey(a5) + move.l #playerdead,ob_logic(a5) + move #63,ob_delay(a5) + ; + cmp #2,gametype + bne.s .notcom + ; + ;death in combat game! + ; + bsr getother + ; +.win move.l a5,-(a7) + ; + move.l a0,a5 + clr ob_collwith(a5) + clr ob_colltype(a5) + bsr message + dc.b 'winner!',0 + even + ; + move.l (a7)+,a5 + subq #1,ob_lives(a5) + move #-1,ob_update(a5) ;refresh 'lives' + bsr message + dc.b 'loser!',0 + even + ; + rts +.notcom ; + subq #1,ob_lives(a5) + move #-1,ob_update(a5) + move gametype(pc),d0 + beq.s .one + ; + ;2 player game! + ; + bsr getother + tst ob_lives(a5) + beq.s .hmm + move ob_lives(a5),ob_lives(a0) + move #-1,ob_update(a0) + rts +.hmm tst ob_lives(a0) + beq.s .go2 + rts +.one tst ob_lives(a5) + beq.s .go + rts +.go2 move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'game over',0 + even + move.l (a7)+,a5 +.go bsr message + dc.b 'game over',0 + even +.rts rts + +getother ;get other player from a5! + ; + move.l player1(pc),a0 + cmp.l a0,a5 + bne.s .rts + move.l player2(pc),a0 +.rts rts + +redpal move.l #palettesr,ob_palette(a5) + move #2,ob_paltimer(a5) + rts + +playerhit tst ob_damage(a0) + beq.s .rts + st ob_update(a5) + bsr redpal +.rts rts + +playerdie bsr redpal + clr ob_hitpoints(a5) + st ob_update(a5) + move.l #playerdeath,ob_logic(a5) + clr ob_colltype(a5) + clr ob_collwith(a5) + rts + +inchealth ;inc health of a5 + ; + addq #5,ob_hitpoints(a5) + cmp #25,ob_hitpoints(a5) + ble.s .skip + move #25,ob_hitpoints(a5) +.skip st ob_update(a5) + bsr message + dc.b 'health bonus!',0 + even + rts + +healthgot bsr playtsfx + move.l a5,-(a7) + move.l a0,a5 + bsr inchealth + move.l (a7)+,a5 + bra killobject + +playtsfx move.l a0,-(a7) + move.l tokensfx(pc),a0 + moveq #64,d0 + moveq #0,d1 + bsr playsfx + move.l (a7)+,a0 + rts + +weapongot bsr playtsfx + move.l a5,-(a7) + move ob_weapon(a5),d0 ;weapon #! + move.l a0,a5 + bsr weapond0 + move.l (a7)+,a5 + bra killobject + +weapond0 cmp ob_weapon(a5),d0 + bne .new + ; + subq.b #1,ob_reload(a5) + beq.s .skip + cmp.b #1,ob_reload(a5) + bne.s .notfull + bsr message + dc.b 'weapon boosted to full!',0 + even + bra.s .kill + ; +.notfull bsr message + dc.b 'weapon boost!',0 + even + ; +.kill st ob_update(a5) + rts + ; +.skip addq.b #1,ob_reload(a5) + add #250,ob_mega(a5) + cmp #ok,ob_mega(a5) + bcs.s .mwb + ; + bsr message + dc.b 'ultra mega overkill!!!',0 + even + rts + ; +.mwb bsr message + dc.b 'mega weapon boost!',0 + even + rts + ; +.new move d0,ob_weapon(a5) + move.b #ireload,ob_reload(a5) + st ob_update(a5) + bsr message + dc.b 'new weapon!',0 + even + bra.s .kill + +invisigot bsr playtsfx + move.l a5,-(a7) + move.l a0,a5 + add #1500,ob_invisible(a5) + bsr message + dc.b 'invisibility!',0 + even + move.l (a7)+,a5 + bra killobject + +invincgot bsr playtsfx + tst ob_hyper(a0) + bne.s .rts + move.l a5,-(a7) + move.l a0,a5 + ; + move #-$200,ob_hyper(a5) + bsr message + dc.b 'hyper!',0 + even + ; + move.l (a7)+,a5 + bra killobject + ; +.rts rts + +bouncylogic addq #1,ob_delay(a5) + move ob_delay(a5),d0 + lsr #1,d0 + and #3,d0 + move .bnc(pc,d0*2),ob_frame(a5) + rts +.bnc dc 3,4,3,5 + +bouncygot bsr playtsfx + cmp #3,ob_bouncecnt(a0) + bcc.s .rts + addq #1,ob_bouncecnt(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'bouncy bullets!',0 + even + move.l (a7)+,a5 + bra killobject +.rts rts + +thermogot bsr playtsfx + add #1500,ob_thermo(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'got the thermo glasses!',0 + even + move.l (a7)+,a5 + bra killobject + +maxsize equ $280 + +playertimers tst ob_mega(a5) + beq.s .nomega + subq #1,ob_mega(a5) + bne.s .nomega + bsr message + dc.b 'mega weapon out...',0 + even + ; +.nomega tst ob_thermo(a5) + beq.s .noth + subq #1,ob_thermo(a5) + bne.s .noth + bsr message + dc.b 'thermo glasses out...',0 + even + ; +.noth tst ob_messtimer(a5) + ble.s .notm + subq #2,ob_messtimer(a5) +.notm ; + tst ob_invisible(a5) + beq.s .noti + subq #1,ob_invisible(a5) + bne.s .noti + bsr message + dc.b 'invisibility out...',0 + even +.noti ; + tst ob_paltimer(a5) + beq.s .notp + subq #1,ob_paltimer(a5) + bne.s .notp + move.l #palettes,ob_palette(a5) +.notp ; + move ob_pixsizeadd(a5),d0 + beq.s .notpix + add d0,ob_pixsize(a5) + bne.s .pixnz + ; + clr ob_pixsizeadd(a5) + bra.s .notpix + ; +.pixnz cmp #24,ob_pixsize(a5) + bne.s .notpix + ; + move finished2(pc),finished + bne.s .notpix + ; + move ob_telex(a5),ob_x(a5) + move ob_telez(a5),ob_z(a5) + move ob_telerot(a5),ob_rot(a5) + neg ob_pixsizeadd(a5) +.notpix ; + move ob_hyper(a5),d0 + beq.s .nothyper + bpl.s .hplus + ; + ;hyper is minus! growing... + ; + subq #4,d0 + move d0,d1 + neg d1 + cmp #maxsize,d1 + bne.s .hdone + move #750<<2+maxsize,d0 + bra.s .hdone + ; +.hplus subq #4,d0 + cmp #maxsize,d0 + bhi.s .hdone2 + bne.s .noteq + bsr message + dc.b 'hyper out...',0 + even + move #maxsize,d0 +.noteq move d0,d1 + cmp #$200,d0 + bne.s .hdone + moveq #0,d0 + ; +.hdone move d1,ob_scale(a5) + ; + move d1,d2 + mulu #((pl_eyey<<16)/$200),d2 + swap d2 + neg d2 + move d2,ob_eyey(a5) + ; + move d1,d2 + mulu #((pl_firey<<16)/$200),d2 + swap d2 + neg d2 + move d2,ob_firey(a5) + ; + move d1,d2 + mulu #((pl_gutsy<<16)/$200),d2 + swap d2 + neg d2 + move d2,ob_gutsy(a5) + ; +.hdone2 move d0,ob_hyper(a5) +.nothyper ; + rts + +footstep move.l d0,-(a7) + move.l footstepsfx(pc),a0 + moveq #16,d0 + moveq #0,d1 + bsr playsfx + move.l (a7)+,d0 + rts + +pbuff ds.b 128 ;player controls to use! +pput dc 0 ;put new cntrl here +pget dc 0 ;read this for actual + +getcntrl move ob_cntrl(a5),d0 + lea joyx0(pc),a0 + move.l 0(a0,d0*8),joyx + move.l 4(a0,d0*8),joyb + rts + +maxrotsp equ $40000 +rotacc equ $20000 +rotrevacc equ $40000 +rotsetacc equ $20000 + +rotplayer ;return rot in d0, leave a0 + ; + move joys(pc),d0 ;strafing? + bne.s .norot + move joyx(pc),d0 + beq.s .norot + ; + move.l #rotacc,d1 ;rotacc + move ob_rotspeed(a5),d2 + beq.s .useacc + eor d2,d0 + bpl.s .useacc + move.l #rotrevacc,d1 ;fast rev! +.useacc move joyx(pc),d0 + bpl.s .plus + neg.l d1 +.plus add.l d1,ob_rotspeed(a5) + cmp.l #maxrotsp,ob_rotspeed(a5) + bgt.s .fixaccpl + cmp.l #-maxrotsp,ob_rotspeed(a5) + bge.s .addrot + move.l #-maxrotsp,ob_rotspeed(a5) + bra.s .addrot +.fixaccpl move.l #maxrotsp,ob_rotspeed(a5) + bra.s .addrot + ; +.norot tst.l ob_rotspeed(a5) + beq.s .skip + bpl.s .orpl + add.l #rotsetacc,ob_rotspeed(a5) + ble.s .addrot +.clrrot clr.l ob_rotspeed(a5) + bra.s .skip +.orpl sub.l #rotsetacc,ob_rotspeed(a5) + bmi.s .clrrot + ; +.addrot move.l ob_rotspeed(a5),d0 + add.l d0,ob_rot(a5) + ; +.skip rts + +unbounce move ob_bounce(a5),d1 + beq.s .rts + add #30,ob_bounce(a5) + move ob_bounce(a5),d1 + and #127,d1 + cmp #30,d1 + bcc.s .rts + clr ob_bounce(a5) + clr ob_frame(a5) + bra footstep +.rts rts + +moveplayer ;work out movement vector into d0/d1...check still/moving! + ; + move joyy(pc),d0 + bne .move + move joys(pc),d0 + beq.s .still + move joyx(pc),d0 + bne.s .strafe + ; +.still bsr unbounce + move ob_bounce(a5),d0 + bne .fskip + rts + ; +.strafe ;do strafe! X rot in d0 + ; + move.l camrots(pc),a1 + lsl #6,d0 ;* ninety degrees + add ob_rot(a5),d0 + and #255,d0 + lea 0(a1,d0*8),a1 + ; + move ob_movspeed(a5),d0 + move d0,d1 + muls 2(a1),d0 + add.l d0,d0 + muls 6(a1),d1 + add.l d1,d1 + neg.l d0 + add.l d0,d6 + add.l d1,d7 + bra .check + ; +.move ;and possibly strafe! + ; + ;work out move vec into d0/d1 + ; + neg d0 + muls ob_movspeed(a5),d0 ;speed + move.l camrots(pc),a1 + move ob_rot(a5),d1 + and #255,d1 + lea 0(a1,d1*8),a1 + move d0,d1 + muls 2(a1),d0 + add.l d0,d0 + muls 6(a1),d1 + add.l d1,d1 + neg.l d0 + add.l d0,d6 + add.l d1,d7 + move joys(pc),d0 + beq.s .check + move joyx(pc),d0 + bne.s .strafe +.check ; + bsr checknewslow + beq.s .newpos + bsr adjustpos + beq.s .newpos + bsr adjustpos + beq.s .newpos + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + bra.s .bounce + ; +.newpos move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + ; +.bounce move ob_bounce(a5),d2 + add #20,ob_bounce(a5) + move ob_bounce(a5),d1 + and #255,d2 + cmp #64,d2 + bcc.s .fskip + and #255,d1 + cmp #64,d1 + bcs.s .fskip + ; + bsr footstep +.fskip ; + move.l ob_framespeed(a5),d1 + add.l d1,ob_frame(a5) + and #3,ob_frame(a5) + rts + +checkevent bsr checknew2 + beq.s .rts + ; + move ob_pixsizeadd(a5),d0 + or finished2(pc),d0 + bne .rts + ; + move zo_ev(a4),d0 ;poly->event + bmi.s .rts + ; + cmp #24,d0 + bne.s .notexit + ; + move #3,finished2 ;pattern done! + move #1,ob_pixsizeadd(a5) ;pixel out + tst gametype + beq.s .onewin + bsr getother + move #2,ob_pixsizeadd(a0) ;pixel out other player +.onewin ; + bsr dotelesfx + moveq #24,d0 + ; +.notexit cmp #19,d0 + bcc.s .noclr + ; + ;OK, gotta clear all 'event' zones with same type! + ; + move.l map_poly(pc),a0 + move.l map_ppnt(pc),a1 + moveq #32,d1 +.loop2 cmp zo_ev(a0),d0 + bne.s .skip2 + neg zo_ev(a0) +.skip2 add.l d1,a0 + cmp.l a1,a0 + bcs.s .loop2 + ; +.noclr move.l a5,eventobj + movem.l d6-d7,-(a7) + bsr execevent + movem.l (a7)+,d6-d7 + move.l eventobj(pc),a5 + ; +.rts rts + + ;these updated after a call to 'getcntrl' + ; +joyx dc 0 ;left/rite +joyy dc 0 ;for/back +joyb dc 0 ;fire +joys dc 0 ;strafe + +checksuck cmp.l sucking(pc),a5 + bne.s .nosuck + ; + move.l suckangle(pc),a0 + moveq #25,d0 + move d0,d1 + muls 2(a0),d0 + neg.l d0 + add.l d0,d6 + ; + muls 6(a0),d1 + add.l d1,d7 + bsr checknewslow + beq.s .newok + bsr adjustpos + beq.s .newok + bsr adjustpos + beq.s .newok + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + bra.s .nosuck + ; +.newok move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + ; +.nosuck rts + +playerlogic0 ;restart after death...2 seconds invincibility. + ; + subq #1,ob_delay(a5) + bgt.s playerlogic + ; + ;OK, fix colltype/collwith + ; + lea player1_,a1 + cmp.l player1,a5 + beq.s .got + lea player2_,a1 +.got lea p1_ob_colltype-player1_(a1),a1 + move.l (a1),ob_colltype(a5) + move.l #playerlogic,ob_logic(a5) +playerlogic ; + bsr playertimers ;do timer stuff... + bsr getcntrl ;player control + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + ; + ;getting sucked? + ; + ;OK, are we getting pushed/squashed? + ; + bsr checknewslow + beq.s .newok + bsr adjustpos + beq.s .newok2 + bsr adjustpos + beq.s .newok2 + ; + subq #1,ob_hitpoints(a5) + ble playerdie + st ob_update(a5) + bra redpal + ; +.newok2 move.l d6,ob_x(a5) + move.l d7,ob_z(a5) +.newok ; + bsr checksuck + bsr checkevent ;in an event zone? + bsr rotplayer ;rotate + bsr moveplayer ;forward/back/strafe +checkfire ; + move cheat(pc),d0 + beq.s .nocheat + ; + qkey $5f ;help????? + beq.s .noend + move #3,finished + rts +.noend key 10 + beq.s .nohealth + bsr inchealth + bra.s .nocheat +.nohealth move.b (a0),d1 + moveq #5,d0 +.loop btst d0,d1 + bne.s .gotch + subq #1,d0 + bne.s .loop + bra.s .nocheat +.gotch ; + subq #1,d0 + bsr weapond0 + ; +.nocheat bsr checkfireb + beq .nofire + tst.b ob_reloadcnt(a5) + bne .nofire2 + ; + move ob_collwith(a5),d2 + and #3,d2 + eor #3,d2 ;colltype + moveq #0,d3 ;collwith! + ; + move ob_weapon(a5),d0 + mulu #18,d0 + lea wtable(pc),a0 + movem 0(a0,d0),d4-d6 + movem.l 6(a0,d0),a2-a3 + move.l 14(a0,d0),-(a7) + ; + tst ob_mega(a5) + beq.s .nomega + ; + cmp #ok,ob_mega(a5) + bcc.s .threeway + ; + movem.l d2-d6/a2-a3,-(a7) + addq #4,ob_rot(a5) + bsr shoot + movem.l (a7)+,d2-d6/a2-a3 + subq #8,ob_rot(a5) + bsr shoot + addq #4,ob_rot(a5) + bra.s .shdone +.threeway ; + movem.l d2-d6/a2-a3,-(a7) + addq #8,ob_rot(a5) + bsr shoot + movem.l (a7),d2-d6/a2-a3 + sub #16,ob_rot(a5) + bsr shoot + movem.l (a7)+,d2-d6/a2-a3 + addq #8,ob_rot(a5) + ; +.nomega bsr shoot + ; +.shdone move.l (a7)+,a0 + move.l (a0),a0 + moveq #32,d0 + moveq #0,d1 + bsr playsfx + ; + move.b ob_reload(a5),ob_reloadcnt(a5) + rts + ; +.nofire tst.b ob_reloadcnt(a5) + beq.s .rts +.nofire2 subq.b #1,ob_reloadcnt(a5) +.rts rts + + ; + ;hitpoints + ;damage + ;speed + ; +wtable dc 1,1,32 + dc.l bullet1,sparks1,shootsfx3 + dc 5,2,36 + dc.l bullet2,sparks2,shootsfx5 + dc 10,2,40 + dc.l bullet3,sparks3,shootsfx + dc 15,3,40 + dc.l bullet4,sparks4,shootsfx4 + dc 20,5,24 + dc.l bullet5,sparks5,shootsfx5 + +adjustposq ; + neg d0 + move d0,d1 + ; + muls zo_a(a4),d0 + add.l d0,d0 + ; + muls zo_b(a4),d1 + add.l d1,d1 + ; + sub.l d0,d6 + sub.l d1,d7 + ; + rts + +adjustpos bsr adjustposq + ; + ;addq #1,(a4) + ;move.l a4,-(a7) + bsr checknewslow + ;move.l (a7)+,a3 + ;addq #1,(a3) + tst d1 + rts + +checkfireb move joyb(pc),d0 + beq.s .nofire + tst ob_lastbut(a5) + bne.s .skip + move d0,ob_lastbut(a5) + rts +.skip moveq #0,d0 + rts +.nofire clr ob_lastbut(a5) + rts + +eventobj dc.l 0 + +calcbounce ;calculate bounce vector...poly in a4, obj in a5 + ; + ;R=2 N (N dot V) - V + ; + ;where R=reflect vector, N=normal to poly, V=original vector + ; + subq #1,ob_bouncecnt(a5) + bge.s .nok + bsr makesparksq + bra killobject +.nok ; + move.l closewall(pc),a4 + movem ob_nxvec(a5),d0-d1 ;normalized dir + movem zo_na(a4),d2-d3 ;normal to poly + neg d2 + ; + ;calc dot product: + ; + move d0,d4 + muls d2,d4 + move d1,d5 + muls d3,d5 + add.l d5,d4 + add.l d4,d4 + swap d4 ;dot product? + ; + muls d4,d2 + lsl.l #2,d2 + swap d0 + clr d0 + sub.l d0,d2 + swap d2 + ; + muls d4,d3 + lsl.l #2,d3 + swap d1 + clr d1 + sub.l d1,d3 + swap d3 + ; + movem d2-d3,ob_nxvec(a5) + ; + neg d2 + muls ob_movspeed(a5),d2 + add.l d2,d2 + muls ob_movspeed(a5),d3 + add.l d3,d3 + ; + movem.l d2-d3,ob_xvec(a5) + ; + bsr checkvecs + beq.s putfire + bra calcbounce + +firelogic ; + bsr checkvecs + bne calcbounce +putfire ; + addq #1,ob_frame(a5) + move ob_frame(a5),d0 + move.l ob_shape(a5),a0 + cmp 2(a0),d0 + bcs.s .skip + clr ob_frame(a5) +.skip ; + rts + +moveblood lea blood(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + tst bl_y(a5) + ble.s .do + ; + move.l sucking(pc),d0 + beq.s .kill + ; + move.l bl_xvec(a5),d0 + add.l d0,bl_x(a5) + move.l bl_zvec(a5),d1 + add.l d1,bl_z(a5) + ; + move.l bl_dest(a5),a0 + move bl_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move bl_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 + cmp.l #64*64,d0 + bcc.s .loop + bra.s .kill + ; +.do add.l #$8000,bl_yvec(a5) + ; + movem.l bl_xvec(a5),d0-d2 + add.l d1,bl_y(a5) + blt.s .ok + ; +.kill move.l a5,a0 + killitem blood + move.l a0,a5 + bra .loop + ; +.ok add.l d0,bl_x(a5) + add.l d2,bl_z(a5) + bra .loop + ; +.done rts + +scrnblood dc 0 + +drawblood clr scrnblood + move #$20,$dff09a + lea blood(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + move bl_color(a5),d6 + beq.s .loop ;already splatted on screen if 0! + ; + move bl_x(a5),d0 + sub camx(pc),d0 + move bl_y(a5),d1 + ble.s .blok + neg d1 +.blok sub camy(pc),d1 + move bl_z(a5),d2 + sub camz(pc),d2 + ; + ;rotate x/z around cam... + ; + move d0,d3 + move d2,d5 + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 ;X + ; + muls cm3(pc),d3 + muls cm4(pc),d2 + add.l d3,d2 + add.l d2,d2 + swap d2 ;Z + ; + tst d2 + beq .loop + cmp #maxz,d2 + bcc .loop + ; + ext.l d0 + lsl.l #focshft,d0 + divs d2,d0 + cmp minx(pc),d0 + blt .loop + cmp maxx(pc),d0 + bge .loop + ; + ext.l d1 + lsl.l #focshft,d1 + divs d2,d1 + cmp miny(pc),d1 + blt .loop + cmp maxy(pc),d1 + bge .loop + ; + cmp #40,d2 + bcc.s .pix + tst bl_y(a5) + bgt.s .pix + ; + ;blood on screen! + ; + st scrnblood + clr bl_color(a5) + bra .loop +.pix ; + add midx(pc),d0 + add midy(pc),d1 + ; + move.l darktable(pc),a0 + move 0(a0,d2*2),d3 + ; + move.l cop(pc),a1 + ; + lea coloffs,a2 + add.l 0(a2,d0*4),a1 + mulu copmod(pc),d1 + ; + move blcols(pc,d3*2),d3 + and d6,d3 + move d3,0(a1,d1.l) + bra .loop + ; +.done move #$8020,$dff09a + ; + move scrnblood(pc),d0 + beq.s .rts + clr scrnblood + ; + bsr rndw2 + and #3,d0 + add #51,d0 + move d0,d2 ;splat# + ; + move.l window(pc),a0 + move wi_bh(a0),d0 + subq #8,d0 + bsr rndn2 + move d0,d3 ;Y + ; + move wi_bw(a0),d0 + subq #8,d0 + bsr rndn2 + add wi_x(a0),d0 ;X + ; + move d3,d1 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + bra blit + ; +.rts rts + +blcols dc $ccc,$bbb,$aaa,$999,$888,$777,$666,$555 + dc $444,$333,$222,$111,$111,$111,$111,$111 + +shaperender dc.l drawobjnorm ;default! + +drawshape_1sc ;draw shape with one frame, scaled! + ; + move.l ob_shape(a5),a0 + move ob_frame(a5),d0 + add.l 12(a0,d0*4),a0 + move ob_scale(a5),d7 + bra drawshape + +drawshape_1 ; + move.l ob_shape(a5),a0 + move ob_frame(a5),d0 + add.l 12(a0,d0*4),a0 + move #$200,d7 ;scale + bra drawshape + +drawshape_8 ; + ;shape has 8 rotations, and a scale! + ; + bsr calcangle2 + add #16,d0 + sub ob_rot(a5),d0 + lsr #5,d0 + and #7,d0 + move ob_frame(a5),d1 + lsl #3,d1 + or d1,d0 + move.l ob_shape(a5),a0 + move ob_scale(a5),d7 + add.l 12(a0,d0*4),a0 + ; +drawshape move ob_x(a5),d0 + move ob_y(a5),d1 + move ob_z(a5),d2 +drawshape_q ; + ;A0=shape + ;D0=X + ;D1=Y + ;D2=Z + ;D7=sclae factor + ; + ;rotate Z around camera! + ; + sub camx(pc),d0 + sub camy(pc),d1 + sub camz(pc),d2 + ; + move d0,d3 + move d2,d5 + muls cm3(pc),d3 + muls cm4(pc),d2 + add.l d3,d2 + add.l d2,d2 + swap d2 + ; + tst d2 + ble .rts + cmp #maxz,d2 + bcc .rts + ; + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 + ; + move.l memat(pc),a1 + add.l #sh_size,memat + movem d0-d2,sh_x(a1) + move.l a0,sh_shape(a1) + move d7,sh_scale(a1) + move.l shaperender(pc),sh_render(a1) + ; + lea shapelist(pc),a2 +.loop move.l (a2),d0 + beq.s .end + move.l a2,a3 + move.l d0,a2 + cmp sh_z(a2),d2 ;nearer...further in list + ble.s .loop + move.l a2,(a1) + move.l a1,(a3) + rts +.end move.l d0,(a1) + move.l a1,(a2) +.rts rts + +checknew2 ;check trigger zone + move.l map_grid(pc),a0 + addq #4,a0 + bra.s checknew_ + +gs equ 1< furthest wall list. + ; + ;optimizations... + ;check if both z's are negative after rotation + ;check if projected left/rite ends are on screen + ; + bsr incframe + ; + clr.l inlist + move.l #inlist,inlistf + ; + move.l map_poly(pc),a4 + move.l map_ppnt(pc),a3 + move.l map_grid(pc),a2 + movem camx(pc),d6-d7 ;x,z + lsr #grdshft,d6 + lsr #grdshft,d7 + lea gridoffs(pc),a6 + moveq #(gridoffsf-gridoffs)>>2-1,d5 + ; +.loop movem (a6)+,d0-d1 + add d6,d0 + cmp #32,d0 + bcc .skip + add d7,d1 + cmp #32,d1 + bcc .skip + ; + ;d0,d1=x/z of map to check! + ; + lsl #5,d1 ;Y*32... + add d1,d0 ;+X + lea 0(a2,d0*8),a0 ;mapgrid + move (a0)+,d4 ;how many polys here + bmi .skip + move (a0),d0 ;poly data offset + lea 0(a3,d0*2),a0 + ; +.loop2 move (a0)+,d0 ;poly# + lsl #5,d0 + lea 0(a4,d0),a1 ;actual poly + ; + bsr dothezone + ; + dbf d4,.loop2 ;finish sq + ; +.skip dbf d5,.loop ;gridoffs + ; + ;now do rots/morphs... + ; + lea rotpolys(pc),a3 + ; +.loop3 move.l (a3),a3 + tst.l (a3) + beq.s .rpdone + ; + move.l rp_first(a3),a4 + move rp_num(a3),d4 + subq #1,d4 + ; +.loop4 move.l a4,a1 + bsr dothezone2 + ; + lea 32(a4),a4 + dbf d4,.loop4 + ; + bra.s .loop3 +.rpdone ; +makeoutlist ;create outlist from inlist + ; + clr.l outlist + move.l #outlist,outlistf + ; +.loop lea inlist(pc),a0 + move.l (a0),d0 + beq .done + move.l a0,a2 ;save previous! + move.l d0,a0 + ; + ;OK, see if any are in front of a0... + ; + lea inlist(pc),a1 + ; +.loop2 move.l (a1),d0 + beq .none + move.l a1,a3 + move.l d0,a1 + cmp.l a0,a1 + beq.s .loop2 ;don't compare with self! + ; + ;check screen pos overlap... + ; + move wl_rsx(a0),d0 + cmp wl_lsx(a1),d0 + blt .loop2 + ; + move wl_lsx(a0),d1 + cmp wl_rsx(a1),d1 + bgt .loop2 + ; + ;check near/far Z overlap + ; + move wl_nz(a1),d2 + cmp wl_fz(a0),d2 + bge .loop2 ;behind! + ; + move wl_fz(a1),d2 + cmp wl_nz(a0),d2 + ble .swap + ; + tst wl_open(a1) + bne .swap + ; + ;look at a0 points against a1 line... + ; + movem wl_a(a1),d5-d6 + move.l wl_c(a1),d7 + ; + move wl_lx(a1),d0 + sub wl_lx(a0),d0 + muls d5,d0 + move wl_lz(a1),d1 + sub wl_lz(a0),d1 + muls d6,d1 + add.l d1,d0 + eor.l d7,d0 + ; + move wl_lx(a1),d1 + sub wl_rx(a0),d1 + muls d5,d1 + move wl_lz(a1),d2 + sub wl_rz(a0),d2 + muls d6,d2 + add.l d2,d1 + eor.l d7,d1 + ; + ;if both a0 in front, no swap + ; + move.l d0,d4 + or.l d1,d4 + bpl .loop2 ;both a0's in front of a1! + ; + ;if both a0 behind, swap + ; + and.l d1,d0 + bmi .swap ;both a0's behind a1! + ; + ;look at a1 points against a0 line! + ; + movem wl_a(a0),d5-d6 + move.l wl_c(a0),d7 + ; + move wl_lx(a0),d2 + sub wl_lx(a1),d2 + muls d5,d2 + move wl_lz(a0),d3 + sub wl_lz(a1),d3 + muls d6,d3 + add.l d3,d2 + eor.l d7,d2 + ; + move wl_lx(a0),d3 + sub wl_rx(a1),d3 + muls d5,d3 + move wl_lz(a0),d4 + sub wl_rz(a1),d4 + muls d6,d4 + add.l d4,d3 + eor.l d7,d3 + ; + move.l d2,d4 + and.l d3,d4 + bmi .loop2 ;both a1's behind a0! + ; + or.l d3,d2 + bmi .loop2 + ; +.swap move.l a1,a0 + move.l a3,a2 + bra .loop2 + ; +.none ;OK, none in front of this (a0) + ; + move.l (a0),(a2) ;unlink from inlist + clr.l (a0) + ; + move.l outlistf(pc),a2 + move.l a0,(a2) + move.l a0,outlistf + bra .loop + ; +.done rts + +dothezone2 ; + move frame(pc),d0 + cmp zo_done(a1),d0 + beq.s .rts + move d0,zo_done(a1) + tst zo_open(a1) + bmi.s .rts + ; + movem d4-d7,-(a7) + ; + movem zo_lx(a1),d0-d3 ;x1,z1,x2,z2 + movem camx(pc),d6-d7 + ; + move #maxz,d4 + move d4,d5 + neg d5 + ; + sub d6,d0 + cmp d4,d0 + bge.s .rts2 + cmp d5,d0 + ble.s .rts2 + ; + sub d7,d1 + cmp d4,d1 + bge.s .rts2 + cmp d5,d1 + ble.s .rts2 + ; + sub d6,d2 + cmp d4,d2 + bge.s .rts2 + cmp d5,d2 + ble.s .rts2 + ; + sub d7,d3 + cmp d4,d3 + bge.s .rts2 + cmp d5,d3 + bgt dothezone3 ;.rts2 + ; +.rts2 movem (a7)+,d4-d7 + ; +.rts rts + +dothezone ; + move frame(pc),d0 + cmp zo_done(a1),d0 + beq rts ;.skip3 + move d0,zo_done(a1) + tst zo_open(a1) + bmi rts ;.skip3 + ; + ;OK, setup: + ; + ;d0=lx,d1=lz,d2=rx,d3=rz + ;d4=t,d5=sc,d6=dist + ; + ;back face/dist check... + ; + movem d4-d7,-(a7) + ; + movem zo_lx(a1),d0-d3 ;x1,z1,x2,z2 + movem camx(pc),d6-d7 + ; + sub d6,d0 + sub d7,d1 + sub d6,d2 + sub d7,d3 + ; +dothezone3 move d0,d4 + move d1,d5 + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 + ; + muls cm3(pc),d4 + muls cm4(pc),d1 + add.l d4,d1 + add.l d1,d1 + swap d1 ;LZ + ; + move d2,d4 + move d3,d5 + muls cm1(pc),d2 + muls cm2(pc),d5 + add.l d5,d2 + add.l d2,d2 + swap d2 ;RX + ; + muls cm3(pc),d4 + muls cm4(pc),d3 + add.l d4,d3 + add.l d3,d3 + swap d3 ;RZ + ; + ;check Z's... + tst d1 + bgt.s .zok + tst d3 + ble .skip2 +.zok ; + cmp #maxz,d1 + blt.s .zok2 + cmp #maxz,d3 + bge .skip2 +.zok2 ; + ;do backface check...generate a,b,c... + ; + rol.l #exshft,d0 + rol.l #exshft,d1 + rol.l #exshft,d2 + rol.l #exshft,d3 + ; + move d1,d4 + sub d3,d4 ;a + move d2,d5 + sub d0,d5 ;b + ; + move d0,d6 + muls d4,d6 + move d1,d7 + muls d5,d7 + add.l d7,d6 + bpl.s .front + ; + ;backface showing!... + bra .skip2 +.front ; + move.l memat(pc),a5 + ; + movem d0-d5,wl_lx(a5) + move.l d6,wl_c(a5) + ; + ;work out some screen positions! + tst d1 + bgt.s .z1ok + ; + ;lz bad, rz must be OK... + ; +.ov1 move minx(pc),wl_lsx(a5) + bra.s .z1sk + ; +.z1ok ext.l d0 + lsl.l #focshft,d0 + divs d1,d0 + bvs.s .ov1 + subq #1,d0 + cmp maxx(pc),d0 + bge .skip2 + move d0,wl_lsx(a5) +.z1sk ; + tst d3 + bgt.s .z2ok + ; + ;rz bad, lz must be OK... + ; +.ov2 move maxx(pc),wl_rsx(a5) + bra.s .z2sk + ; +.z2ok ext.l d2 + lsl.l #focshft,d2 + divs d3,d2 + bvs.s .ov2 + addq #1,d2 + cmp minx(pc),d2 + blt .skip2 + move d2,wl_rsx(a5) +.z2sk ; + cmp d1,d3 + bge.s .zskp + exg d1,d3 +.zskp movem d1/d3,wl_nz(a5) ;near/far Z + ; + move.l zo_t(a1),wl_t(a5) + move.l zo_t+4(a1),wl_t+4(a5) + move zo_sc(a1),wl_sc(a5) + move zo_open(a1),wl_open(a5) + ; + ;add to end of inlist... + ; + clr.l (a5) + move.l inlistf(pc),a1 + move.l a5,(a1) + move.l a5,inlistf + add.l #wl_size,memat + ; +.skip2 movem (a7)+,d4-d7 + ; +.skip3 rts + + elseif + +makeoutlist2 ;create outlist from inlist + ; +.loop0 lea inlist(pc),a0 + ; +.loop move.l (a0),d0 + beq .done + move.l a0,a2 ;save previous! + move.l d0,a0 + ; + ;OK, see if any are in front of a0... + ; + lea inlist(pc),a1 + ; +.loop2 move.l (a1),d0 + beq .none + move.l a1,a3 + move.l d0,a1 + ; + cmp.l a0,a1 + beq.s .loop2 ;don't compare with self! + ; + ;see if a1 is in front of a0 + ; + move wl_nz(a1),d0 + cmp wl_fz(a0),d0 + bge .loop2 ;behind! + ; + move wl_fz(a1),d0 + cmp wl_nz(a0),d0 + ble .swap + ; + ;now, compare screen x coords..... + ; + move wl_rsx(a0),d0 + cmp wl_lsx(a1),d0 + blt .loop2 + ; + move wl_lsx(a0),d0 + cmp wl_rsx(a1),d0 + bgt .loop2 + ; + ;look at a0 points against a1 line + ; + ;If Sgn((x3-x1)*a2+(y3-y1)*b2)<>Sgn(c2) + ; If Sgn((x3-x2)*a2+(y3-y2)*b2)<>Sgn(c2) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + movem wl_a(a1),d5-d6 + move.l wl_c(a1),d7 + ; + move wl_lx(a1),d0 + sub wl_lx(a0),d0 + muls d5,d0 + move wl_lz(a1),d1 + sub wl_lz(a0),d1 + muls d6,d1 + add.l d1,d0 + eor.l d7,d0 + ; + move wl_lx(a1),d1 + sub wl_rx(a0),d1 + muls d5,d1 + move wl_lz(a1),d2 + sub wl_rz(a0),d2 + muls d6,d2 + add.l d2,d1 + eor.l d7,d1 + ; + ;OK, screen X's overlap... + ;if both a0 in front, no swap + ; + move.l d0,d4 + or.l d1,d4 + bpl .loop2 + ; + ;if both a0 behind, swap + ; + move.l d0,d4 + and.l d1,d4 + bmi .swap + ; + ;bra .loop2 + ; + ;elseif + ;look at a1 points against a0 line + ; + ;If Sgn((x1-x3)*a1+(y1-y3)*b1)=Sgn(c1) + ; If Sgn((x1-x4)*a1+(y1-y4)*b1)=Sgn(c1) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + movem wl_a(a0),d5-d6 + move.l wl_c(a0),d7 + ; + move wl_lx(a0),d2 + sub wl_lx(a1),d2 + muls d5,d2 + move wl_lz(a0),d3 + sub wl_lz(a1),d3 + muls d6,d3 + add.l d3,d2 + eor.l d7,d2 + ; + move wl_lx(a0),d3 + sub wl_rx(a1),d3 + muls d5,d3 + move wl_lz(a0),d4 + sub wl_rz(a1),d4 + muls d6,d4 + add.l d4,d3 + eor.l d7,d3 + ; + ;if both a1's behind, no swap + ; + move.l d2,d4 + and.l d3,d4 + bmi .loop2 ;both a1's behind... + ; + ;if both a1's in front, swap + move.l d2,d4 + or.l d3,d4 + bpl .swap + ; + bra .loop2 + ; + ;elseif + ; +.swap ;a1 is infront of a0! make a1 new frontmost + bra .loop + move.l a1,a0 + move.l a3,a2 + bra .loop2 + ; +.none ;OK, none in front of this (a0) + ; + move.l (a0),(a2) ;unlink from inlist + clr.l (a0) + move.l outlistf(pc),a2 + move.l a0,(a2) + move.l a0,outlistf + bra .loop0 + ; +.done ;move.l inlist(pc),d0 + ;bne .loop0 + rts + + elseif + +castwalls ;process 'walls' list + ; + move.l castrots(pc),a6 + move minx(pc),d7 + lea 0(a6,d7*8),a6 + move.l vertdraws(pc),a4 + ; +.loop ;do this vert line! + ; + lea outlist(pc),a5 + ; +.loop2 move.l (a5),d0 + beq .empty + move.l d0,a5 + ; + cmp wl_lsx(a5),d7 + blt.s .loop2 + cmp wl_rsx(a5),d7 + bgt.s .loop2 + ; + movem wl_lx(a5),d0-d1 + muls (a6),d0 + muls 2(a6),d1 + add.l d1,d0 ;LX! + bgt.s .loop2 + ; + movem wl_rx(a5),d1-d2 + muls (a6),d1 + muls 2(a6),d2 + add.l d2,d1 ;RX! + blt.s .loop2 + ; + sub.l d0,d1 + ; + swap d1 + tst d1 + ble.s .dfix + neg.l d0 + divu d1,d0 + bvc.s .noov +.dfix moveq #-1,d0 +.noov lsr #1,d0 ;fraction -> unsigned + ; + cmp wl_open(a5),d0 + bcs.s .loop2 + ; + movem wl_lx(a5),d1-d2 + muls 4(a6),d1 + muls 6(a6),d2 + add.l d2,d1 + add.l d1,d1 ;lz + ; + movem wl_rx(a5),d2-d3 + muls 4(a6),d2 + muls 6(a6),d3 + add.l d3,d2 + add.l d2,d2 ;rz + ; + sub.l d1,d2 + swap d2 + muls d0,d2 + add.l d2,d2 + add.l d1,d2 + ; + swap d2 + ; + cmp #exone,d2 + blt .loop2 + cmp #maxz<0 + ext d0 + move ltk(pc,d0*2),landerstokill + move lnd(pc,d0*2),landerdelay + ; + move #3,playerlives + ; + bra initnewdef + ; +.rts rts + +ltk dc 20,35,50 +lnd dc 25,20,15 + +playdefender bsr atmachine + bsr defender + move landerstokill(pc),d0 + ble.s .win + move playerlives(pc),d0 + ble.s .lose + rts +.win addq #1,ob_lives(a5) + move #-1,ob_update(a5) + tst gametype + beq.s .lose + jsr getother + tst ob_lives(a0) + beq.s .lose + addq #1,ob_lives(a0) + move #-1,ob_update(a0) +.lose move #96,ob_delay(a5) + move.l #waittolive,ob_logic(a5) + rts + +waittolive bsr atmachine + bsr defender + subq #1,ob_delay(a5) + bgt.s .rts + move.l #playerlogic,ob_logic(a5) +.rts rts + +atmachine ;standing at machine logic + ; + bsr playertimers ;do timer stuff... + bsr getcntrl ;player control + ; + ;OK, rotate slightly in front of machine! + ; + move joyx(pc),d0 + bne.s .rot + move ob_rotspeed(a5),d0 + bpl.s .rp + addq #2,ob_rotspeed(a5) + ble.s .rotdone + clr ob_rotspeed(a5) + bra.s .rotdone +.rp subq #2,ob_rotspeed(a5) + bge.s .rotdone + clr ob_rotspeed(a5) + bra.s .rotdone +.rot bgt.s .rplus + subq #1,ob_rotspeed(a5) + cmp #-8,ob_rotspeed(a5) + bge.s .rotdone + move #-8,ob_rotspeed(a5) + bra.s .rotdone +.rplus addq #1,ob_rotspeed(a5) + cmp #8,ob_rotspeed(a5) + ble.s .rotdone + move #8,ob_rotspeed(a5) +.rotdone ; + move ob_rotspeed(a5),d0 + move d0,d4 + add ob_telerot(a5),d0 + move d0,ob_rot(a5) + ; + move d4,d5 + add d4,d4 + add d5,d4 + add d4,d4 + ; + sub #64,d0 + and #255,d0 + move.l camrots(pc),a0 + lea 0(a0,d0*8),a0 + move d4,d5 + muls 2(a0),d4 + neg.l d4 + swap d4 + muls 6(a0),d5 + swap d5 + add ob_telex(a5),d4 + add ob_telez(a5),d5 + move d4,ob_x(a5) + move d5,ob_z(a5) + rts + +maxdefobjects equ 128 + + rsreset + ; +de_next rs.l 1 +de_prev rs.l 1 +de_xa rs.l 1 +de_ya rs.l 1 +de_x rs.l 1 +de_y rs.l 1 +de_shape rs.w 1 +de_delay rs.w 1 +de_colltype rs.w 1 +de_collwith rs.w 1 +de_logic rs.l 1 + ; +de_size rs.b 0 + +defshapes ; + dc 65,36,6,3 ;0 + dc 65,40,6,3 ;1 + dc 66,44,3,1 ;2 + dc 66,46,3,1 ;3 + dc 72,37,5,5 ;4 + dc 84,37,1,1 ;5 + dc 86,39,1,1 ;6 + dc 81,39,1,1 ;7 + dc 79,37,1,1 ;8 + dc 71,44,2,1 ;9 + dc 65,49,15,12 ;10 + dc 86,49,11,10 ;11 + dc 79,42,2,5 ;12 + dc 85,42,2,5 ;13 + +landerstoadd dc 10 ;how manylanders left! +landerstokill dc 10 +landerdelay dc 25 ;wait between landers +landercnt dc 1 + ; +defstack dc.l 0 +deflbut dc.l 0 ;last button status! +playerxa dc.l 0 ;x speed! +playerx dc 0,0 +playery dc 14,0 +playershape dc 0 +playerlives dc 0 + +movedefplayer move joyx(pc),d0 + beq.s .nox + bpl.s .xrite + move #1,playershape + sub.l #$8000,playerxa + bpl.s .xmore + cmp.l #-$30000,playerxa + bge.s .xdone + move.l #-$30000,playerxa + bra.s .xdone +.xmore sub.l #$4000,playerxa + bra.s .xdone + ; +.xrite clr playershape + add.l #$8000,playerxa + ble.s .xmore2 + cmp.l #$30000,playerxa + ble.s .xdone + move.l #$30000,playerxa + bra.s .xdone +.xmore2 add.l #$4000,playerxa + bra.s .xdone + ; +.nox ;to rest! + move.l playerxa(pc),d0 + beq.s .xdone + bpl.s .xp + add.l #$1000,playerxa + ble.s .xdone + clr.l playerxa +.xp sub.l #$1000,playerxa + bge.s .xdone + clr.l playerxa +.xdone ; + move.l playerxa(pc),d0 + add.l d0,playerx + and #255,playerx + ; + move joyy(pc),d0 + add d0,playery + cmp #1,playery + blt.s .yf + cmp #34,playery + blt.s .ydone + move #34,playery + bra.s .ydone +.yf move #1,playery +.ydone ; + move joyb(pc),d0 + beq .nofire + move deflbut(pc),d0 + bne .rts + st deflbut + ; + addfirst defobjects + beq.s .rts + move.l #$20000,d0 ;bullet speed! + move playershape(pc),d1 + beq.s .rite + neg.l d0 +.rite add.l playerxa(pc),d0 + move.l d0,de_xa(a0) + move playerx(pc),de_x(a0) + move playery(pc),de_y(a0) + addq #1,de_y(a0) + move playershape(pc),d0 + addq #2,d0 + move d0,de_shape(a0) + move #2,de_colltype(a0) + move.l #defbull,de_logic(a0) + move #12,de_delay(a0) + move.l shootsfx3(pc),a0 + moveq #32,d0 + moveq #0,d1 + bra playsfx + ; +.nofire clr deflbut +.rts rts + +deffrag add.l #$1000,de_ya(a5) + move.l de_ya(a5),d0 + add.l d0,de_y(a5) + cmp #36,de_y(a5) + bge killdefobject + move.l de_xa(a5),d0 + add.l d0,de_x(a5) + and #255,de_x(a5) + rts + +impfrag subq #1,de_delay(a5) + ble killdefobject + move.l de_xa(a5),d0 + add.l d0,de_x(a5) + and #255,de_x(a5) + move.l de_ya(a5),d0 + add.l d0,de_y(a5) + rts + +blowuplander move.l diesfx(pc),a0 + moveq #64,d0 + moveq #1,d1 + bsr playsfx + subq #1,landerstokill + moveq #7,d7 ;8 pixel exp +.loop2 addlast defobjects + beq killdefobject + move de_x(a5),de_x(a0) + move de_y(a5),de_y(a0) + bsr rndw + ext.l d0 + lsl.l #1,d0 + move.l d0,de_xa(a0) + bsr rndw + ext.l d0 + lsl.l #1,d0 + move.l d0,de_ya(a0) + move d7,d0 + and #1,d0 + addq #5,d0 + move d0,de_shape(a0) + move.l #deffrag,de_logic(a0) + move #15,de_delay(a0) + clr de_colltype(a0) + dbf d7,.loop2 + bra killdefobject + +blowupplayer moveq #3,d7 + ; +.loop move.l robodiesfx(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx + dbf d7,.loop + ; + moveq #31,d7 +.loop2 addlast defobjects + beq .rts + move playerx(pc),de_x(a0) + move playery(pc),de_y(a0) + bsr rndw + ext.l d0 + lsl.l #1,d0 + move.l d0,de_xa(a0) + bsr rndw + ext.l d0 + lsl.l #1,d0 + move.l d0,de_ya(a0) + move d7,d0 + and #1,d0 + addq #7,d0 + move d0,de_shape(a0) + move.l #deffrag,de_logic(a0) + move #15,de_delay(a0) + clr de_colltype(a0) + dbf d7,.loop2 +.rts move #-1,playershape + subq #1,playerlives + rts + +landerwait subq #1,de_delay(a5) + ble.s .skip + rts +.skip move.l #landerlogic,de_logic(a5) + move #4,de_shape(a5) +landerlogic ; + move playershape(pc),d0 + bmi .done + ; + move de_x(a5),d0 + move d0,d2 + move de_y(a5),d1 + move d1,d3 + ; + sub playerx(pc),d0 + bpl.s .skipn1 + neg d0 +.skipn1 cmp #6,d0 + bcc.s .chk + sub playery(pc),d1 + bpl.s .skipn2 + neg d1 +.skipn2 cmp #4,d1 + bcs blowupplayer + ; + ;check if shot! +.chk lea defobjects(pc),a0 +.loop move.l (a0),a0 + tst.l (a0) + beq .done + move de_colltype(a0),d0 + beq.s .loop + ; + move d2,d0 + sub de_x(a0),d0 + bpl.s .skip + neg d0 +.skip cmp #6,d0 + bcc.s .loop + ; + move d3,d1 + sub de_y(a0),d1 + bpl.s .skip2 + neg d1 +.skip2 cmp #4,d1 + bcc.s .loop + ; + ;BOOM! + ; + bra blowuplander +.done ; + move de_x(a5),d0 + sub playerx(pc),d0 + and #255,d0 + cmp #128,d0 + bcs.s .left + ; + ;go right-ish! + ; + add.l #$4000,de_xa(a5) + cmp.l #$10000,de_xa(a5) + ble.s .xdone + move.l #$10000,de_xa(a5) + bra.s .xdone + ; +.left sub.l #$4000,de_xa(a5) + cmp.l #-$10000,de_xa(a5) + bge.s .xdone + move.l #-$10000,de_xa(a5) + ; +.xdone move.l de_xa(a5),d0 + add.l d0,de_x(a5) + and #255,de_x(a5) + ; + move de_y(a5),d0 + sub playery(pc),d0 + bpl.s .up + ; + ;down + ; + add.l #$2000,de_ya(a5) + cmp.l #$8000,de_ya(a5) + ble.s .ydone + move.l #$8000,de_ya(a5) + bra.s .ydone + ; +.up sub.l #$2000,de_ya(a5) + cmp.l #-$8000,de_ya(a5) + bge.s .ydone + move.l #-$8000,de_ya(a5) + ; +.ydone move.l de_ya(a5),d0 + add.l d0,de_y(a5) + ; + rts + +defbull subq #1,de_delay(a5) + ble.s killdefobject + move.l de_xa(a5),d0 + add.l d0,de_x(a5) + and #255,de_x(a5) + rts + +killdefobject move.l a5,a0 + killitem defobjects + move.l a0,a5 + move.l defstack(pc),a7 + bra def_loop + +initnewdef move landerdelay(pc),landercnt + move landerstokill(pc),landerstoadd + clearlist defobjects + clr.l playerx + clr.l playerxa + clr playershape + move #18,playery + rts + +defender ;defender game! + ; + move.l a5,-(a7) + ; + move landerstoadd(pc),d0 + beq .nolander + subq #1,landercnt + bgt .nolander + ; + ;add a lander! + ; + addlast defobjects + beq .nolander + subq #1,landerstoadd + move landerdelay(pc),landercnt + ; + bsr rndw + and #255,d0 + move d0,d2 + move d0,de_x(a0) + moveq #32,d0 + bsr rndn + move d0,d3 + move d0,de_y(a0) + move #5,de_shape(a0) + clr.l de_xa(a0) + clr.l de_ya(a0) + move.l #landerwait,de_logic(a0) + move #32,de_delay(a0) + clr de_colltype(a0) + ; + ;OK, now add lander fragments! + ; + moveq #7,d7 + ; +.frloop addlast defobjects + beq.s .nolander + ; + bsr rndw + ext.l d0 + lsl.l #1,d0 ;xadd + move.l d0,d4 + move.l d0,de_xa(a0) + bsr rndw + ext.l d0 + lsl.l #1,d0 + move.l d0,d5 + move.l d0,de_ya(a0) + ; + neg.l d4 + lsl.l #5,d4 + swap d4 + add d2,d4 + and #255,d4 + move d4,de_x(a0) + neg.l d5 + lsl.l #5,d5 + swap d5 + add d3,d5 + move d5,de_y(a0) + ; + move d7,d0 + and #1,d0 + addq #5,d0 + move d0,de_shape(a0) + move.l #impfrag,de_logic(a0) + move #32,de_delay(a0) + clr de_colltype(a0) + dbf d7,.frloop + ; +.nolander move playershape(pc),d0 + bmi.s .dead + bsr movedefplayer +.dead ; + move playerx(pc),d0 + sub #22,d0 + bsr drawmounts + ; + ;OK, scanner time! + ; + moveq #5,d0 + moveq #3,d1 + moveq #12,d2 + bsr drawsprite + moveq #39,d0 + moveq #3,d1 + moveq #13,d2 + bsr drawsprite + move playery(pc),d1 + lsr #3,d1 + addq #1,d1 + moveq #22,d0 + moveq #7,d2 + bsr drawsprite + ; + lea defobjects(pc),a5 +.scanloop move.l (a5),a5 + tst.l (a5) + beq.s .scandone + cmp #4,de_shape(a5) + bne.s .scanloop + move de_x(a5),d0 + sub playerx(pc),d0 + lsr #3,d0 + move de_y(a5),d1 + lsr #3,d1 + add #16,d0 + and #31,d0 + addq #6,d0 + addq #1,d1 + moveq #5,d2 + bsr drawsprite + bra.s .scanloop +.scandone ; + move.l a7,defstack + lea defobjects(pc),a5 + ; +def_loop move.l (a5),a5 + tst.l (a5) + beq.s .done + ; + move.l de_logic(a5),a0 + jsr (a0) + ; + move de_x(a5),d0 + sub playerx(pc),d0 + and #255,d0 + cmp #128,d0 + bcs.s .nob + or #$ff00,d0 +.nob add #22,d0 + move de_y(a5),d1 + move de_shape(a5),d2 + bsr drawsprite + ; + bra.s def_loop +.done ; + move playershape(pc),d0 + bmi.s .dead + ; + move landerstokill(pc),d0 + bgt.s .bye2 + subq #1,landerstokill + subq #1,d0 + and #$10,d0 + beq.s .bye2 + moveq #22,d0 + moveq #18,d1 + moveq #11,d2 + bsr drawsprite +.bye2 ; + moveq #22,d0 + move playery(pc),d1 + move playershape(pc),d2 + bsr drawsprite + bra.s .bye + ; +.dead subq #1,playershape + cmp #-96,playershape + bcc.s .no + move playerlives(pc),d3 + beq.s .gameover + ; + bsr initnewdef + bra.s .bye + ; +.no move playerlives(pc),d3 + bne.s .showlives +.gameover and #$10,d2 + beq.s .exit + moveq #22,d0 + moveq #18,d1 + moveq #10,d2 + bsr drawsprite + bra.s .exit + ; +.bye move playerlives(pc),d3 + beq.s .exit +.showlives subq #1,d3 + moveq #1,d1 + ; +.lives moveq #2,d0 + moveq #9,d2 + movem d1/d3,-(a7) + bsr drawsprite + movem (a7)+,d1/d3 + addq #2,d1 + dbf d3,.lives + ; +.exit move.l (a7)+,a5 + rts + +drawsprite ;d0=x, d1=y, d2=shape + ; + exg d0,d2 + move d1,d3 + lea defshapes(pc),a0 + movem 0(a0,d0*8),d0-d1/d4-d5 + ; + ;d0=src x, d1=src y, d2=dest x,d3=dest y,d4=w, d5=h + ; + sub #64,d0 + movem.l deftxt(pc),a0-a1 + add d0,d1 + lsl #6,d0 + add d0,d1 + add d1,a1 + ; + ;handles... + move d4,d0 + lsr #1,d0 + sub d0,d2 + move d5,d1 + lsr #1,d1 + sub d1,d3 + ; + tst d2 + bmi.s .xmi + move d2,d0 + add d4,d0 + sub #44,d0 + ble.s .xok + sub d0,d4 + bgt.s .xok +.xrts rts +.xmi add d2,d4 ;reduce width + ble.s .xrts + move d2,d0 + lsl #6,d2 + add d0,d2 + sub d2,a1 + bra.s .xdone +.xok move d2,d0 + lsl #6,d2 + add d0,d2 + add d2,a0 +.xdone ; + tst d3 + bmi.s .ymi + move d3,d0 + add d5,d0 + sub #36,d0 + ble.s .yok + sub d0,d5 + bgt.s .yok +.yrts rts +.ymi add d3,d5 ;reduce width + ble.s .yrts + sub d3,a1 + bra.s .ydone +.yok add d3,a0 +.ydone ; + moveq #65,d7 + sub d5,d7 + subq #1,d4 ;w + subq #1,d5 ;h +.loop move d5,d6 +.loop2 move.b (a1)+,d0 + beq.s .col0 + move.b d0,(a0) +.col0 addq #1,a0 + dbf d6,.loop2 + add.l d7,a0 + add.l d7,a1 + dbf d4,.loop + ; + rts + +drawmounts ;d0=offset + ; + ;parallax top 25, bottom 11 + ; + move d0,d2 + lsr #1,d0 + ; + and #63,d0 + movem.l deftxt(pc),a0-a1 + move d0,d1 + lsl #6,d1 + add d0,d1 ;* 65 + add d1,a1 + ; + ;OK, draw mountains at d0 + ; + moveq #65-25,d7 + move.l #64*65,d6 + moveq #43,d1 ;w + ; +.loop move.b (a1)+,(a0)+ ;to even address - 1 + move (a1)+,(a0)+ ;to long address - 3 + move.l (a1)+,(a0)+ ;7 + move.l (a1)+,(a0)+ ;11 + move.l (a1)+,(a0)+ ;15 + move.l (a1)+,(a0)+ ;19 + move.l (a1)+,(a0)+ ;23 + move (a1)+,(a0)+ ;25! + ; + add.l d7,a0 + add.l d7,a1 + addq #1,d0 + and #63,d0 + bne.s .skip + sub.l d6,a1 +.skip dbf d1,.loop + ; + move d2,d0 + and #63,d0 + ; + movem.l deftxt(pc),a0-a1 + move d0,d1 + lsl #6,d1 + add d0,d1 ;* 65 + add d1,a1 + lea 25(a0),a0 ;bottom 25! + lea 25(a1),a1 + ; + ;OK, draw mountains at d0 + ; + moveq #65-11,d7 + moveq #43,d1 ;w + ; +.loop2 move (a1)+,(a0)+ ;2 + move.l (a1)+,(a0)+ ;6 + move.l (a1)+,(a0)+ ;10 + move.b (a1)+,(a0)+ ;11 + ; + add.l d7,a0 + add.l d7,a1 + addq #1,d0 + and #63,d0 + bne.s .skip2 + sub.l d6,a1 +.skip2 dbf d1,.loop2 + ; + rts + +chatxout dc 0 +chatxin dc 0 + +chatontxt dc.b 'CHAT MODE ENABLED',0 + even + +chatcls move.l chatmap,a0 + moveq #0,d0 + move #20*2*5-1,d1 +.loop move.l d0,(a0)+ + dbf d1,.loop + clr.l chatxout + rts + +chaton ;enable chat mode! + ; + tst linked + beq .rts + tst chatok + bne .rts + ; + bsr chatcls + lea chatontxt(pc),a2 +.loop move.b (a2)+,d0 + beq.s .done + moveq #3,d1 + bsr chatprintout + bra.s .loop +.done clr chatoutput + clr chatoutget + clr chatinput + clr chatinget + st chatok + move.l coplist(pc),a0 + move.l #$0968100,chatdispon-copinit(a0) + ; +.rts rts + +chatoff ;disable chat mode + ; + tst linked + beq.s chatoffrts + tst chatok + beq.s chatoffrts + ; +dochatoff sf chatok + bsr chatcls + move.l coplist(pc),a0 + move.l #$1fe0000,chatdispon-copinit(a0) + ; +chatoffrts rts + +chatscrollin ;scroll chatin window across a byte. + ; + move d2,-(a7) + move.l chatmap,a0 + lea 40(a0),a0 + bra.s chatsc + +chatscrollout ;scroll chatout window across a byte. + ; + move d2,-(a7) + move.l chatmap,a0 +chatsc moveq #4,d0 ;5 lines to scroll +.loop3 moveq #1,d1 ;2 bitpanes +.loop2 moveq #38,d2 ;39 chars to move... +.loop move.b 1(a0),(a0)+ + dbf d2,.loop + clr.b (a0)+ + lea 40(a0),a0 + dbf d1,.loop2 + dbf d0,.loop3 + move (a7)+,d2 + rts + +chatspcout cmp #40,chatxout + bcc.s chatscrollout + addq #1,chatxout + rts + +calcchar ext d0 + cmp #'A',d0 + bcs.s .notal + and #31,d0 + add #9,d0 + rts +.notal cmp #'.',d0 + bne.s .not1 + moveq #36,d0 + rts +.not1 cmp #'!',d0 + bne.s .not2 + moveq #37,d0 + rts +.not2 cmp #'?',d0 + bne.s .not3 + moveq #38,d0 + rts +.not3 cmp #',',d0 + bne.s .not4 + moveq #39,d0 + rts +.not4 sub #48,d0 + rts + +chatprintout ;d0.b=chr$() to print, d1=colour (1,2,3) + ; + cmp.b #32,d0 + beq.s chatspcout + bsr calcchar + ; + movem.l d2/a2,-(a7) + ; + cmp #40,chatxout + bcs.s .nosc + ; + movem d0-d1,-(a7) + bsr chatscrollout + movem (a7)+,d0-d1 + subq #1,chatxout +.nosc ; + lea chatfont,a0 + ext d0 + add d0,a0 + move.l chatmap,a1 ;bp1 + add chatxout(pc),a1 + addq #1,chatxout + cmp #1,d1 + beq.s .skip + lea 80(a1),a2 + cmp #2,d1 + beq.s .skip2 + move.l a2,a1 +.skip move.l a1,a2 +.skip2 moveq #4,d0 ;5 lines +.loop move.b (a0),(a1) + move.b (a0),(a2) + lea 40(a0),a0 + lea 160(a1),a1 + lea 160(a2),a2 + dbf d0,.loop + ; + movem.l (a7)+,d2/a2 + rts + +chatspcin cmp #40,chatxin + bcc chatscrollin + addq #1,chatxin + rts + +chatprintinhex move d0,-(a7) + lsr #4,d0 + bsr .skip + move (a7)+,d0 + ; +.skip and #15,d0 + add #48,d0 + cmp #58,d0 + bcs.s chatprintin + addq #7,d0 + ; +chatprintin ;d0.b=chr$() to print, d1=colour (1,2,3) + ; + cmp.b #32,d0 + beq.s chatspcin + bsr calcchar + ; + movem.l d2/a2,-(a7) + ; + cmp #40,chatxin + bcs.s .nosc + ; + movem d0-d1,-(a7) + bsr chatscrollin + movem (a7)+,d0-d1 + subq #1,chatxin +.nosc ; + lea chatfont,a0 + ext d0 + add d0,a0 + move.l chatmap,a1 ;bp1 + add chatxin(pc),a1 + lea 40(a1),a1 + addq #1,chatxin + cmp #1,d1 + beq.s .skip + lea 80(a1),a2 + cmp #2,d1 + beq.s .skip2 + move.l a2,a1 +.skip move.l a1,a2 +.skip2 moveq #4,d0 ;5 lines +.loop move.b (a0),(a1) + move.b (a0),(a2) + lea 40(a0),a0 + lea 160(a1),a1 + lea 160(a2),a2 + dbf d0,.loop + ; + movem.l (a7)+,d2/a2 + rts + +;-------------- serial stuff -------------------; + +sblen equ 128 ;serial buffer length + +initser push + ; + clr rget + clr rput + clr rbfcnt + clr chatcnt + ; + move.l 4.w,a6 + moveq #11,d0 + lea rbfintserver(pc),a1 + jsr -162(a6) + ; + move #$0801,$dff09c + move #$0001,$dff09a ;no tbe int. + move #$8800,$dff09a ;rbf int only + ; + pull + rts + +finitser push + ; + move #$0801,$dff09a + move #$0801,$dff09c + ; + move.l 4.w,a6 + moveq #11,d0 + sub.l a1,a1 + jsr -162(a6) + ; + pull + rts + +serput ;send byte in d0 + ; +;.wait btst #4,$dff018 +; beq.s .wait + ; + move #1,$dff09c + ; + and #$ff,d0 + or #$100,d0 + move d0,$dff030 + ; +.wait btst #0,$dff01f + beq.s .wait + move #1,$dff09c + ; + rts + +rbfchk ;return ne if something there! + ; + move rbfcnt(pc),d0 + rts + +serwait bsr rbfchk + beq.s serwait + ; +serget lea rbuff(pc),a0 + move rget(pc),d0 + and #sblen-1,d0 + move.b 0(a0,d0),d0 + addq #1,rget + subq #1,rbfcnt + ; + rts + +chatcnt dc 0 +rbfcnt dc 0 + +rbf ;receive buffer full interupt + ; + ;a1=rbuff + ; + movem.l d0-d1/a0-a1,-(a7) + ; + move $dff018,d0 ;ser byte + bmi .fuck + move #$800,$dff09c + ; + move chatok(pc),d1 + beq.s .chskip + bclr #6,d0 + beq.s .chskip + add.b #32,d0 + ; + lea chatin(pc),a1 + move chatinput(pc),d1 + and #31,d1 + move.b d0,0(a1,d1) + addq #1,chatinput + addq #1,chatcnt + bra.s .bye + ; +.chskip lea rbuff(pc),a1 + move rput(pc),d1 + and #sblen-1,d1 + move.b d0,0(a1,d1) + addq #1,rput + addq #1,rbfcnt + ; +.bye movem.l (a7)+,d0-d1/a0-a1 + rts + ; +.fuck warn #$f00 ;ser overflow error! + warn #$fff + bra.s .fuck + +rbuff ds.b sblen +rput dc 0 +rget dc 0 + +medat dc.l 0 +titlemed dc.l 0 +loadingmed dc.l 0 +fadevol dc 0 ;non-zero=fade to 0! + +relocate ;a0=pointer to what to relocate + ; + bsr flushc + ; + move.l (a0),d0 + beq .rts + move.l d0,a1 + add.l #32,(a0) + lea 28(a1),a0 + move.l (a0)+,d0 + lea 0(a0,d0.l*4),a1 + cmp.l #$3ec,(a1)+ + bne.s .rts + move.l (a1)+,d0 + addq #4,a1 + move.l a0,d2 + ; +.loop move.l (a1)+,d1 ;offset + add.l d2,0(a0,d1) + subq.l #1,d0 + bne.s .loop + ; +.rts bsr flushc + ; + rts + +initmed lea medat,a0 + tst.l (a0) + bne.s .noreloc + ; + move.l #medplayer,(a0) + bsr relocate + ; +.noreloc move.l medat(pc),a1 + move.l chipzero(pc),a0 + jsr (a1) + ; + move.l medat(pc),a1 + move.l titlemed(pc),a0 + jsr 4(a1) + ; + move.l loadingmed(pc),d0 + beq.s .no + move.l d0,a0 + move.l medat(pc),a1 + jsr 4(a1) +.no ; + rts + +datafiles dc.l script +scriptname dc.b 'misc/script',0 + even + ; + ifeq cd32 + dc.l gloomgame +gamename dc.b 'gloomgame',0 + even + endc + ; + dc.l 0 + +progfiles dc.l bigfont_+1 ;odd=chipmem! + dc.b 'misc/bigfont.bin',0 + even + dc.l smallfont_+1 ;odd=chipmem! + dc.b 'misc/smallfont.bin',0 + even + dc.l titlemed+1 + dc.b 'sfxs/med1',0 + even + dc.l loadingmed+1 + dc.b 'sfxs/med2',0 + even + dc.l shootsfx+1 + dc.b 'sfxs/shoot.bin',0 + even + dc.l shootsfx2+1 + dc.b 'sfxs/shoot2.bin',0 + even + dc.l shootsfx3+1 + dc.b 'sfxs/shoot3.bin',0 + even + dc.l shootsfx4+1 + dc.b 'sfxs/shoot4.bin',0 + even + dc.l shootsfx5+1 + dc.b 'sfxs/shoot5.bin',0 + even + dc.l gruntsfx+1 + dc.b 'sfxs/grunt.bin',0 + even + dc.l gruntsfx2+1 + dc.b 'sfxs/grunt2.bin',0 + even + dc.l gruntsfx3+1 + dc.b 'sfxs/grunt3.bin',0 + even + dc.l gruntsfx4+1 + dc.b 'sfxs/grunt4.bin',0 + even + dc.l tokensfx+1 + dc.b 'sfxs/token.bin',0 + even + dc.l doorsfx+1 + dc.b 'sfxs/door.bin',0 + even + dc.l footstepsfx+1 + dc.b 'sfxs/footstep.bin',0 + even + dc.l diesfx+1 + dc.b 'sfxs/die.bin',0 + even + dc.l splatsfx+1 + dc.b 'sfxs/splat.bin',0 + even + dc.l telesfx+1 + dc.b 'sfxs/teleport.bin',0 + even + dc.l ghoulsfx+1 + dc.b 'sfxs/ghoul.bin',0 + even + dc.l lizsfx+1 + dc.b 'sfxs/lizard.bin',0 + even + dc.l lizhitsfx+1 + dc.b 'sfxs/lizhit.bin',0 + even + dc.l trollsfx+1 + dc.b 'sfxs/trollmad.bin',0 + even + dc.l trollhitsfx+1 + dc.b 'sfxs/trollhit.bin',0 + even + dc.l robotsfx+1 + dc.b 'sfxs/robot.bin',0 + even + dc.l robodiesfx+1 + dc.b 'sfxs/robodie.bin',0 + even + dc.l dragonsfx+1 + dc.b 'sfxs/dragon.bin',0 + even + ; + dc.l 0 + +loadfiles ; + push + move.l a0,a2 + ; +.loop move.l (a2)+,d0 + beq.s .done + moveq #1,d1 + bclr #0,d0 + beq.s .nochip + moveq #2,d1 +.nochip move.l d0,a3 + move.l a2,a0 + bsr loadfile + move.l d0,(a3) +.z tst.b (a2)+ + bne.s .z + exg a2,d0 + addq.l #1,d0 + bclr #0,d0 + exg a2,d0 + bra.s .loop + ; +.done pull + rts + +diskmenu dc.b 1 + dc.b 'please insert gloom data disk',0 + even + +magicfiles dc.l magic + dc.b 'pics/blackmagic',0 + even + dc.l magicpal + dc.b 'pics/blackmagic.pal',0 + even + dc.l 0 + +magic dc.l 0 +magicpal dc.l 0 +vbr dc.l 0 + +initmain ; + move.l 4.w,a6 + move.l 276(a6),a0 + move.l #-1,184(a0) + ; + bsr initrawmap + ; + jsr -150(a6) ;supervisor + dc $4e7a,$2801 ;get vbr->d2 + jsr -156(a6) + move.l d2,vbr + ; + lea ciaaname,a1 + jsr -498(a6) + move.l d0,ciaa + move.l d0,a0 + movem.l $64(a0),d0-d1 + movem.l d0-d1,rawstuff + move #$4000,$dff09a + move.l rawtable(pc),$64(a0) + move.l #rawkeyread,$68(a0) + move #$c000,$dff09a + ; + move.l #8,d0 + move.l #$10002,d1 + allocmem chipzero + move.l d0,chipzero + ; + move.l #256,d0 ;128 words high max! + moveq #2,d1 + allocmem qstrip + move.l d0,qstrip + ; + move.l #256,d0 + moveq #1,d1 + allocmem maptable + move.l d0,maptable + ; + move.l #32768,d0 + moveq #1,d1 + allocmem memory + move.l d0,memory + ; + move.l #320*vd_size,d0 + moveq #1,d1 + allocmem vertdraws + move.l d0,vertdraws + ; + move.l #maxz*2,d0 + moveq #1,d1 + allocmem darktable + move.l d0,darktable + ; + move.l #16*512*2,d0 ;16 shades, 256 words + moveq #1,d1 + allocmem map_rgbs + ; + move.l #map_rgbs_,map_rgbs + ;move.l d0,map_rgbs + ;add.l #16*512,d0 + move.l d0,map_rgbsw + add.l #16*512,d0 + move.l d0,map_rgbsr + ; + st paused + clr dispnest + clr.l font + bsr initsfx + bsr initvbint + bsr initdisplay + bsr dispoff + ; + lea magicfiles,a0 + bsr loadfiles + ; + move.l magic,a0 + move.l magicpal,a1 + bsr makeiff + bsr showiff + bsr dispon + move #50,vbcounter + ; + lea progfiles,a0 + bsr loadfiles + ; + bsr initbmappal + bsr initmed + bsr initser + bsr calcbaud + bsr makecoloffs + bsr initdarktable + ; + bset #15,remapped + bne .noremap + ; + move.l map_rgbs(pc),a0 + move #-1,(a0)+ + move.l a0,map_rgbsat + ; + lea bullet1,a0 + jsr remapanim + lea bullet2,a0 + jsr remapanim + lea bullet3,a0 + jsr remapanim + lea bullet4,a0 + jsr remapanim + lea bullet5,a0 + jsr remapanim + lea sparks1,a0 + jsr remapanim + lea sparks2,a0 + jsr remapanim + lea sparks3,a0 + jsr remapanim + lea sparks4,a0 + jsr remapanim + lea sparks5,a0 + jsr remapanim + ; + elseif + lea 128*128+groundtile,a2 + move.l a2,a0 + bsr addpal + lea groundtile,a0 + move.l a2,a1 + bsr remap + ; + lea 128*128+ceilingtile,a2 + move.l a2,a0 + bsr addpal + lea ceilingtile,a0 + move.l a2,a1 + bsr remap + elseif + ; + lea qpal,a0 + bsr addpal + lea qcols,a0 + lea qpal,a1 + bsr remap + ; + move.l map_rgbsat(pc),map_rgbsat2 +.noremap ; + move.l map_rgbsat2(pc),map_rgbsat + ; + moveq #0,d0 + bsr loadanobj ;load player1 + moveq #1,d0 + bsr loadanobj ;load player2 + moveq #2,d0 + bsr loadanobj ;load tokens (health) + ; + move.l map_rgbsat(pc),map_rgbsfrom + move.l map_rgbsat(pc),map_rgbsfrom2 + ; + alloclist objects,#maxobjects,#ob_size + alloclist doors,#maxdoors,#do_size + alloclist blood,#maxblood,#bl_size + alloclist gore,#maxgore,#go_size + alloclist rotpolys,#maxrotpolys,#rp_size + alloclist defobjects,#maxdefobjects,#de_size + ; +.w5sex tst vbcounter + bgt .w5sex + ; + bsr dispoff + lea iffwindow,a0 + bsr freewindow + ; + move.l magic,a1 + freemem magic + move.l magicpal,a1 + freemem magicpal + ; + move #$1234,d0 + bsr seedrnd2 + ; + ifne cd32 + lea nvname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,nv + bsr loadgloomgame + endc + ; + bra forbid + + ifeq cd32 + +checkdatadisk ;return eq if gloomdata: found! + ; + move.l dosbase(pc),a0 + move.l 34(a0),a0 + move.l 24(a0),a0 + add.l a0,a0 + add.l a0,a0 + addq #4,a0 + ; +.loop move.l (a0),d0 + beq.s .done + lsl.l #2,d0 + move.l d0,a0 + move.l 40(a0),a1 + add.l a1,a1 + add.l a1,a1 + cmp.b #9,(a1)+ ;9 chars + bne.s .loop + lea lockname(pc),a2 + moveq #8,d0 ;check 9 chars! +.loop2 cmp.b (a1)+,(a2)+ + bne.s .loop + dbf d0,.loop2 + rts + ; +.done moveq #-1,d0 + rts + +askdatadisk ; + ;make sure data disk is available... + ; + ;if 'gloomgame' is in CD, then use CD, else... + ;wait for 'gloomdata:' to get inserted! + ; + bsr permit + move.l #gamename,d1 + move.l #1005,d2 + move.l dosbase(pc),a6 + jsr -30(a6) + move.l d0,d1 + beq.s .nolock + jsr -36(a6) ;close it! + bra .load + ; +.nolock bsr forbid + bsr checkdatadisk + beq .dataok ;already there? + ; + lea diskmenu,a0 + bsr qmenu + ; + ;OK, gotta swap disks and pick up data files! + ; +.wfd bsr permit + move.l grbase(pc),a6 + jsr -270(a6) + bsr forbid + bsr checkdatadisk + bne.s .wfd + ; + bsr finitqmenu + ; +.dataok bsr permit + bsr undir ;release old lock! + move.l #lockname,d1 + moveq #-2,d2 + move.l dosbase(pc),a6 + jsr -84(a6) ;lock? + move.l d0,d1 + beq.s .wfd + jsr -126(a6) ;make current dir! + move.l d0,oldlock + ; +.load lea datafiles,a0 + bsr loadfiles + bra forbid + +undir move.l oldlock(pc),d1 + beq.s .rts + clr gloomdata + clr.l oldlock + move.l dosbase(pc),a6 + jsr -126(a6) ;CD to old current dir + move.l d0,d1 + jsr -90(a6) ;unlock old (mine!) +.rts rts + +oldlock dc.l 0 + +lockname dc.b 'gloomdata:',0 + even + + endc + +lagtext dc.b 'lAG?',0 + even + +syncup ;time to calculate frame lag! + ; + ;master can establish lag time... + ; + move linked(pc),d0 + bne.s .li +.rts rts +.li ; + ;bsr qsync + bsr qsync2 + ; + moveq #31,d5 + ; + tst linked + bmi .slave + ; + ;MASTER - average out 32 sends of random data! + ; + moveq #0,d6 ;sum + ; +.mloop moveq #0,d7 + bsr vwait + bsr serput + ; +.mwait addq #1,d7 + bsr vwait + bsr rbfchk + beq.s .mwait + ; + bsr serget + add d7,d6 + dbf d5,.mloop + ; + add #64,d6 + lsr #7,d6 ;/32 = avg. /2=half, /2=25 FPS + addq #1,d6 ;safety... + ; + move d6,d0 + move d0,lagtime + bsr serput + bra initlag + ; +.slave ;OK, bounce back 32 items... + ; + moveq #31,d5 +.sloop bsr serwait + bsr serput + dbf d5,.sloop + ; + ;now, wait to get told lagtime! + ; + bsr serwait + and #255,d0 + move d0,lagtime + ; +initlag ;what to do... + ; + ;stick 'lagtime' dummy 'noevents' into rec buff! + ;stick 'lagtime' dummy 'noevents' into pcntrl buffer + ; + move #$4000,$dff09a + ; + lea pbuff(pc),a0 ;controller buffer + lea rbuff(pc),a1 ;ser rec. buffer + moveq #31,d1 ;32*4=128 bytes! + moveq #0,d0 +.loop move.l d0,(a0)+ + move.l d0,(a1)+ + dbf d1,.loop + ; + move lagtime(pc),d0 + ; + clr pget + clr rget + clr chatcnt + move d0,pput + ;add d0,d0 + move d0,rbfcnt + move d0,rput + ; + move #$c000,$dff09a + ; + rts + +syncmenu dc.b 1 + dc.b 'waiting for other player',0 + even + +lagtime dc 0 + +qsync ;OK, quick sync up! + ; + move linked(pc),d0 + beq.s .rts + ; +.more bsr rbfchk ;anything there? + beq.s .no + bsr serget + cmp.b #$8f,d0 + bne.s .more + move.b #$8f,d0 + bra serput + ; +.no lea syncmenu,a0 + bsr qmenu + move.b #$8f,d0 + bsr serput + ; +.loop bsr serwait + cmp.b #$8f,d0 + bne.s .loop + ; + bra finitqmenu + ; +.rts rts + +qsync2 ;OK, quick sync up, but now 'waiting' menu + ; + move linked(pc),d0 + beq.s .rts + ; + move.b #$8f,d0 + bsr serput + ; +.loop bsr serwait + cmp.b #$8f,d0 + bne.s .loop + ; +.rts rts + +combatnokmenu dc.b 1 + dc.b 'sorry...not available in demo',0 + even + +initnewgame ; + ifeq combatok + ; + cmp #2,gametype + bne.s .skipnok + lea combatnokmenu(pc),a0 + bsr qmenu + ; + bsr selmenu + ; + bsr finitqmenu + move #-1,gametype + rts +.skipnok ; + endc + ; + move gametype(pc),twowins + beq.s .skip + tst linked + beq.s .skip + clr cheat + ; + nop + ; + ifeq debugser + clr twowins + endc +.skip ; + tst.l map_test + bne.s .skhit + ; + bset #15,gloomdata + bne.s .gotdata +.skhit ; + ifne cd32 + bsr permit + lea datafiles,a0 + bsr loadfiles + bsr forbid + elseif + bsr askdatadisk + endc +.gotdata ; + bsr qsync + ; + move.l medat(pc),a1 + jsr 12(a1) + cmp #2,gametype + bne normalgame + ; + ;combat type game! + ; + move #6,p1_ob_collwith + move #5,p2_ob_collwith + ; + lea combatmenu,a0 + bsr qmenu + ; +.loop bsr selmenu + cmp #3,d0 + bcs .play + bne.s .loop + ; + ;change number of wins... + ; + addq.b #1,comnum + cmp.b #'9',comnum + bls .loop + move.b #'2',comnum + bra .loop + ; +.play add #49,d0 + move.b d0,comseriesnum + ; + bsr finitqmenu + move.b comnum(pc),d0 + sub.b #'0',d0 + ext d0 + move d0,p1lives + move d0,p2lives + ; + lea combatfiles(pc),a0 + bsr permit + bsr loadfiles + bra forbid +normalgame ; + ;check for continue offsets in 'gloomgame' file! + ; + tst linked + bge.s .master + ; + bsr qsync + bsr longget + add.l script(pc),d0 + move.l d0,scriptat + bra initpstuff +.master ; + move.l script(pc),scriptat ;default + move.l gloomgame(pc),a0 + lea conttxts(pc),a1 + lea conts(pc),a2 + moveq #0,d7 + ; +.loop move.l (a0)+,d0 + cmp.l #'game',d0 + beq.s .done + ; + ;another! + ; + addq #1,d7 + add.l script(pc),d0 + move.l d0,(a2)+ + lea context(pc),a3 +.loop2 move.b (a3)+,(a1)+ + bne.s .loop2 + subq #1,a1 + move.l d0,a3 +.loop3 move.b (a3)+,(a1) + cmp.b #10,(a1)+ + bne.s .loop3 + clr.b -1(a1) + bra.s .loop + ; +.done move linked(pc),-(a7) + tst d7 + beq .more + addq #1,d7 + move.b d7,contmenu + ; + ;OK, need a continue game menu... + ; + clr linked + lea gloom,a0 + lea gloompal,a1 + lea contmenu,a2 + bsr pmenu + bsr selmenu + bsr finitpmenu + ; + move curropt(pc),d0 + beq .more + lea conts(pc),a0 + move.l -4(a0,d0*4),a0 +.leol cmp.b #10,(a0)+ + bne.s .leol + move.l a0,scriptat + ; +.more move (a7)+,linked + beq.s initpstuff + bsr qsync + move.l scriptat(pc),d0 + sub.l script(pc),d0 + bsr longput +initpstuff ; + move #4,p1_ob_collwith + move #4,p2_ob_collwith + move #3,p1lives + move #3,p2lives + move #25,p1health + move #25,p2health + move #0,p1weapon + move #0,p2weapon + move.b #ireload,p1reload + move.b #ireload,p2reload + ; + rts + +combatfiles dc.l combat + dc.b 'pics/combat',0 + even + dc.l combatpal + dc.b 'pics/combat.pal',0 + even + dc.l 0 + +conts ds.l 8 ;8 slots! + +combatmenu dc.b 4 + dc.b 'play spacehulk series',0 + dc.b 'play gothic tomb series',0 + dc.b 'play hell series',0 + dc.b 'start with ' +comnum dc.b '3 lives',0 + even + +context dc.b 'CONTINUE FROM ',0 + even + +contmenu dc.b 1 + dc.b 'START NEW GAME',0 +conttxts ds.b 160 + even + +execscript_med ; + bsr waitquiet + ; + move.l loadingmed(pc),d0 + beq.s execscript + move.l d0,a0 + move.l medat(pc),a1 + jsr 8(a1) ;start loading music! + ; +execscript cmp #2,gametype + beq scriptplay ;no script for combat game! + ; + move.l scriptat(pc),a0 + ; +.loop move.b (a0)+,d0 + cmp.b #10,d0 + beq.s .loop + and #31,d0 + bne.s .more +.loop2 cmp.b #10,(a0)+ + bne.s .loop2 + bra.s .loop +.more cmp #27,d0 + bcc.s .loop2 + add #96,d0 + ; + ;command! fetch the rest... + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + addq #1,a0 ;skip '_' + move.l a0,scriptat + cmp.l #'pict',d0 + beq scriptpict + cmp.l #'draw',d0 + beq scriptdraw + cmp.l #'text',d0 + beq scripttext + cmp.l #'wait',d0 + beq scriptwait + cmp.l #'play',d0 + beq scriptplay + cmp.l #'done',d0 + beq scriptdone + cmp.l #'dark',d0 + beq scriptdark + cmp.l #'show',d0 + beq scriptshow + cmp.l #'hide',d0 + beq scripthide + cmp.l #'loop',d0 + beq scriptloop + cmp.l #'rest',d0 + beq scriptrest + cmp.l #'tile',d0 + beq scripttile + ; + warn #$f80 + ; + ;Hmmm....bad command +.fucked ; + rts + ; +scriptdone bsr dispoff + move.l loadingmed(pc),d0 + beq gameover + ; + move.l medat(pc),a1 + clr fadevol + jsr 12(a1) ;stop song + bra gameover + +sccont dc.b 'cont_' + even + +scriptrest ;restart point! + ;this changes...we add this to 'gloomgame' file now. + ; + move.l a0,d1 + sub.l script(pc),d1 ;offset from start of script! +.leol cmp.b #10,(a0)+ + bne.s .leol + move.l a0,scriptat + ; + move.l gloomgame(pc),a1 +.loop move.l (a1)+,d0 + cmp.l #'game',d0 + beq.s .add + cmp.l d0,d1 + bne.s .loop + ; + ;already here! + ; + bra execscript + ; +.add ;OK, gotta add new scriptat position! + ; + move.l d1,-(a1) + ; + ;save it out! + ; + bsr permit + ifne cd32 + bsr savegloomgame + elseif + lea gamename,a0 + move.l gloomgame,a1 + moveq #32,d0 + bsr savefile + endc + bsr forbid + ; + bra execscript + +scriptloop move.l script,scriptat + bra execscript + +scripthide bsr dispoff + bra execscript + +scriptshow clr pdelay + bsr dispon + bra execscript + +scriptdraw move.l pic,a0 + move.l picpal,a1 + bsr makeiff + bsr showiff + bra execscript + +fetchrest move.l scriptat,a0 + moveq #-1,d0 +.loop addq #1,d0 + move.b (a0)+,(a1) + cmp.b #10,(a1)+ + bne.s .loop + clr.b -(a1) + move.l a0,scriptat + rts + +picpath dc.b 'pics/' +picname ds.b 64 +pic_pal dc.b '.pal',0 + even + +pic dc.l 0 +picpal dc.l 0 + +freeiff push + move.l pic(pc),d0 + beq.s .skip1 + clr.l pic + move.l d0,a1 + freemem pic +.skip1 move.l picpal(pc),d0 + beq.s .skip2 + clr.l picpal + move.l d0,a1 + freemem picpal +.skip2 pull + rts + +freetiles push + move.l floor(pc),d0 + beq.s .skip1 + clr.l floor + move.l d0,a1 + freemem floor +.skip1 move.l roof(pc),d0 + beq.s .skip2 + clr.l roof + move.l d0,a1 + freemem roof +.skip2 pull + rts + +floorname dc.b 'txts/floor' +floortag ds.b 32 + even + +roofname dc.b 'txts/roof' +rooftag ds.b 32 + even + +scripttile ;tile command...load in floor/roof tiles! + ; + lea floortag(pc),a1 + bsr fetchrest + bsr loadtile + bra execscript + +loadtile ; + ;floor tag=tile extension... + ; + bsr freetiles + lea floortag(pc),a0 + lea rooftag(pc),a1 +.loop move.b (a0)+,(a1)+ + bne.s .loop + ; + bsr permit + lea floorname(pc),a0 + moveq #1,d1 + jsr loadfile + move.l d0,floor + lea roofname(pc),a0 + moveq #1,d1 + jsr loadfile + move.l d0,roof + bsr forbid + ; + move.l map_rgbsfrom,map_rgbsat + ; + move.l floor(pc),a2 + lea 128*128(a2),a2 + move.l a2,a0 + bsr addpal + move.l floor(pc),a0 + move.l a2,a1 + bsr remap + ; + move.l roof(pc),a2 + lea 128*128(a2),a2 + move.l a2,a0 + bsr addpal + move.l roof(pc),a0 + move.l a2,a1 + bsr remap + ; + move.l map_rgbsat,map_rgbsfrom2 + rts + +scriptpict ;load an iff + bsr freeiff + lea picname,a1 + bsr fetchrest + move.l a1,-(a7) + bsr permit + lea picpath,a0 + moveq #1,d1 + jsr loadfile + move.l d0,pic + lea pic_pal,a0 + move.l (a7)+,a1 +.loop move.b (a0)+,(a1)+ + bne.s .loop + lea picpath,a0 + moveq #1,d1 + jsr loadfile + move.l d0,picpal + bsr forbid + bra execscript + +scriptdark move.l iffwindow+wi_cop,a0 ;copperlist to darken! + ; + ;bank,32,bank,32... + ; + addq #6,a0 + moveq #3,d0 ;4 lots of 32 colours + moveq #31,d1 + ; + ;skip first 8 + ; + ;subq #8,d1 + ;lea 32(a0),a0 +.loop ; + move (a0),d2 ;hi nyb + move 132(a0),d3 ;lo nyb! + and #$eee,d3 + lsr #1,d3 + move d2,d4 + and #$111,d4 + lsl #3,d4 + or d4,d3 + and #$eee,d2 + lsr #1,d2 + move d2,(a0) + move d3,132(a0) + ; + addq #4,a0 + dbf d1,.loop + moveq #31,d1 + lea 136(a0),a0 + dbf d0,.loop + bra execscript + +text ds.b 64 + +scripttext ;print text on iff + ;a6=window, a4=message, d0=length of message, d6=Y + ; + move #2,pdelay + ; + lea text,a1 + bsr fetchrest + ; + lea iffwindow,a6 + lea text,a4 + move wi_bh(a6),d6 + sub #7,d6 + bsr printmess2 + ; + tst pdelay + bmi execscript + clr pdelay + bra execscript + +scriptwait ; + tst pdelay + bmi execscript + bsr waitany + bra execscript + +checkany movem.l d0-d7/a0-a6,-(a7) + bsr vwait + bsr readmenusel + and #$10,d0 ;set ne if fire! + movem.l (a7)+,d0-d7/a0-a6 + rts + +waitany movem.l d0-d7/a0-a6,-(a7) +.wait bsr checkany + beq.s .wait +.wait2 bsr checkany + bne.s .wait2 + movem.l (a7)+,d0-d7/a0-a6 + rts + +copywin moveq #wi_size/2-1,d0 +.loop move (a0)+,(a1)+ + dbf d0,.loop + rts + +freeobjlist lea objlist,a2 + ; +.loop move.l (a2)+,d0 + beq.s .done + move.l d0,a3 + ; + move.l (a3),d0 + beq.s .skip + move.l d0,a1 + freemem obj + clr.l (a3) +.skip ; + move.l 4(a3),d0 + beq.s .loop + move.l d0,a1 + freemem objchunks + clr.l 4(a3) + bra.s .loop + ; +.done rts + +freeobjlist2 lea objlist,a2 + ; +.loop move.l -(a2),d0 + beq.s .done + move.l d0,a3 + ; + move.l (a3),d0 + beq.s .skip + move.l d0,a1 + freemem obj2 + clr.l (a3) +.skip ; + move.l 4(a3),d0 + beq.s .loop + move.l d0,a1 + freemem objchunks2 + clr.l 4(a3) + bra.s .loop + ; +.done rts + +mappath dc.b 'maps/' +mapname ds.b 64 + even + +getwindow tst twowins + bne.s .p2 + ; + lea defwindow1_1p,a0 + lea window1,a1 + bsr copywin + rts + ; +.p2 lea defwindow1_2p,a0 + lea window1,a1 + bsr copywin + ; + lea defwindow2_2p,a0 + lea window2,a1 + bsr copywin + rts + +putwindow tst twowins + bne.s .p2 + ; + lea window1,a0 + lea defwindow1_1p,a1 + bsr copywin + rts + ; +.p2 lea window1,a0 + lea defwindow1_2p,a1 + bsr copywin + ; + lea window2,a0 + lea defwindow2_2p,a1 + bsr copywin + rts + +linkswap tst linked + bpl.s .rts + ; + movem.l player1(pc),a0-a1 + exg a0,a1 + movem.l a0-a1,player1 + ; + move ob_cntrl(a0),d0 + move ob_cntrl(a1),d1 + move d1,ob_cntrl(a0) + move d0,ob_cntrl(a1) +.rts rts + +pickcombat ;pick combat zone... + ;put name into a1... + ; + move.l a1,-(a7) + ; + tst linked + bge.s .doit + ; + ;OK, slave...get map# from other player! + ; + bsr serwait + move.b d0,d2 + bra.s .gotmap + ; +.doit move $dff006,d0 + bsr seedrnd + ; + move comsleft(pc),d0 + bne.s .pick + moveq #7,d0 + move d0,comsleft +.pick bsr rndn + lea commaps(pc),a0 + subq #1,comsleft + move comsleft(pc),d1 + move.b 0(a0,d0),d2 ;map to play! + move.b 0(a0,d1),0(a0,d0) + move.b d2,0(a0,d1) + ; + tst linked + beq.s .gotmap + ; + move.b d2,d0 + bsr serput + ; +.gotmap move.l (a7)+,a1 + add.b #48,d2 + move.b d2,comseriesmap + ; + lea comname(pc),a0 +.loop move.b (a0)+,(a1)+ + bne.s .loop + ; + move.l combat,a0 + move.l combatpal,a1 + bsr makeiff + bsr showiff + bsr dispon + move.b comseriesnum(pc),floortag + clr.b floortag+1 + bra loadtile + +commaps dc.b 1,2,3,4,5,6,7,8 +comsleft dc 7 ;7 maps left! +comname dc.b 'com' +comseriesnum dc.b '1_' +comseriesmap dc.b '1',0 + even + +scriptplay ; + lea mapname,a1 + ; + cmp #2,gametype + bne.s .notcombat + ; + ;OK, combat game is a happening... + ; + ;select from on-screen maps. + ; + bsr pickcombat + bra.s .gotname + ; +.notcombat bsr fetchrest +.gotname ; + zerolist objects,ob_size + zerolist doors,do_size + zerolist blood,bl_size + zerolist gore,go_size + zerolist rotpolys,rp_size + ; + clr.l player1 + clr.l player2 + tst gametype + bne.s .p2 + not.l player2 ;no player 2! +.p2 ; + bsr permit + ; + move.l map_test(pc),d0 + bne.s .use + move.l #mappath,d0 +.use move.l d0,a0 + moveq #1,d1 + bsr loadfile + move.l d0,map_map + ; + bsr initmap + bsr loadtxts + move #$a3f7,d0 + bsr seedrnd + moveq #1,d0 + bsr execevent + bsr calcpalettes + bsr forbid + bsr makepalettes + bsr dispoff + bsr freewindows + bsr getwindow + ; + ;init player vars... + ; + move.l player1,a5 + ; + move p1lives(pc),ob_lives(a5) + ; + cmp #2,gametype + beq.s .psk + ; + move p1health(pc),d0 + bne.s .p1hok + move #25,p1health + move.b #ireload,p1reload +.p1hok move p1health(pc),ob_hitpoints(a5) + move p1weapon(pc),ob_weapon(a5) + move.b p1reload(pc),ob_reload(a5) + ; +.psk bsr resetplayer + ; + tst gametype + beq .p1 + ; + move.l player2,a5 + move p2lives(pc),ob_lives(a5) + ; + cmp #2,gametype + beq.s .psk2 + ; + move p2health(pc),d0 + bne.s .p2hok + move #25,p2health + move.b #ireload,p2reload +.p2hok move p2health(pc),ob_hitpoints(a5) + move p2weapon(pc),ob_weapon(a5) + move.b p2reload(pc),ob_reload(a5) + ; +.psk2 bsr resetplayer +.p1 ; + bsr linkswap + ; + ;save player positions at start of level! + ; + move.l player1(pc),a5 + move ob_x(a5),p1x + move ob_z(a5),p1z + move ob_rot(a5),p1r + tst gametype + beq.s .shit + move.l player2(pc),a5 + move ob_x(a5),p2x + move ob_z(a5),p2z + move ob_rot(a5),p2r +.shit ; + ;init windows... + ; + move.l player1(pc),a5 + move.l #window1,ob_window(a5) + move.l ob_window(a5),a0 + bsr makewindow + move.l ob_window(a5),a0 + bsr showwindow + bsr initstats + ; + tst twowins + beq.s .onew + ; + move.l player2(pc),a5 + move.l #window2,ob_window(a5) + move.l ob_window(a5),a0 + bsr makewindow + move.l ob_window(a5),a0 + bsr showwindow + bsr initstats +.onew ; + bsr calcbpos + ; + ;move #$4000,fadevol ;fadeout med! + ; + move.l loadingmed(pc),d0 + beq.s .nolmed + move.l medat(pc),a1 + clr fadevol + jsr 12(a1) ;stop song +.nolmed ; + move #$1f3a,d0 + bsr seedrnd + clr.l sucker + clr.l sucking + clr finished + clr finished2 + clr doneflag + clr showflag + clr escape + clr frame + ; + bsr syncup + ; + clr framecnt + clr paused + bsr drawall2 + bsr dispon + bsr chaton + ; +mainloop bsr drawall + move escape(pc),d0 + beq.s .noesc + bsr dogamemenu + clr escape +.noesc move finished(pc),d0 + beq.s mainloop + ; + st paused + bsr chatoff + bsr dispoff + bsr qsync2 + bsr freewindows + bsr linkswap + bsr freeobjlist + bsr freetxts + bsr freemap + ; + ;finished codes... + ; + ;1 : quit (esc/exit game) + ;2 : death (both players dead) + ;3 : pattern completed + ;4 : combat game...someone died! + ; + move finished(pc),d0 + and #127,d0 + subq #1,d0 + beq exitgame + subq #1,d0 + beq gameover + subq #1,d0 + beq levelover + subq #1,d0 + beq combatwon + ; +.fuck warn #$f08 + warn #$80f + bra.s .fuck + ; +exitgame cmp #2,gametype + bne.s gameover +combatover move.l combat,a1 + freemem combat + move.l combatpal,a1 + freemem combatpal +gameover bsr freeiff + bra freetiles +levelover ; + move.l player1,a5 + move ob_hitpoints(a5),p1health + move ob_lives(a5),p1lives + move ob_weapon(a5),p1weapon + move.b ob_reload(a5),p1reload + ; + tst gametype + beq.s .p1p1 + ; + move.l player2,a5 + move ob_hitpoints(a5),p2health + move ob_lives(a5),p2lives + move ob_weapon(a5),p2weapon + move.b ob_reload(a5),p2reload + ; + ;shared lives! + ; + move p1lives(pc),d0 + move p2lives(pc),d1 + cmp d1,d0 + bcc.s .used0 + move d1,d0 +.used0 move d0,p1lives + move d0,p2lives + ; +.p1p1 tst.l map_test + bne gameover + bra execscript_med + ; +combatwon move.l player1(pc),a5 + move ob_lives(a5),p1lives + beq .p1lost + move.l player2(pc),a5 + move ob_lives(a5),p2lives + beq .p2lost + ; + ;combat game continues! + ; + bra execscript_med + ; +.p1lost ;player 1 lost the game + ; + lea p2wins(pc),a2 + tst linked + beq .combatmess + lea ploses_(pc),a2 + bgt .combatmess + lea pwins_(pc),a2 + bra .combatmess + ; +.p2lost ;player 2 lost combat game + ; + lea p1wins(pc),a2 + tst linked + beq .combatmess + lea ploses_(pc),a2 + blt .combatmess + lea pwins_(pc),a2 + ; +.combatmess move.l combat,a0 + move.l combatpal,a1 + bsr pmenu + bsr selmenu + bsr finitpmenu + bra combatover + +p1wins dc.b 1,'player one wins combat game!',0 + even +p2wins dc.b 1,'player two wins combat game!',0 + even +pwins_ dc.b 1,'player wins combat game!',0 + even +ploses_ dc.b 1,'player loses combat game!',0 + even + +freemap move.l map_map,d0 + beq.s .done + move.l d0,a1 + freemem map + clr.l map_map +.done rts + +inccntrl addq #1,(a2) + cmp #5,(a2) + bcs.s .pok + clr (a2) +.pok move (a2),d0 + cmp (a3),d0 + beq.s inccntrl + ; +.there lea popts(pc),a0 + move.l 0(a0,d0*4),a0 +.sk move.b (a0)+,(a1)+ + bne.s .sk + rts + +dointro ; + lea gloom,a0 + lea gloompal,a1 + jsr makeiff + jsr showiff + ; + lea gloombrush,a0 + lea iffwindow,a1 + move.l wi_bmap(a1),a1 + add.l #168*7*40,a1 + bsr decodeiff + ; + bsr dispon + ; + bsr chaton + ; + bsr waitany + ; + lea startmenu,a4 + tst linked + beq.s .use + lea startmenu2,a4 +.use lea iffwindow,a6 + jsr initmenu + ; +.sel jsr selmenu + ; + tst linked + beq.s .notlinked + ; + cmp #2,d0 + bcs .newgame2 + subq #2,d0 + beq .unlink + subq #1,d0 + beq .about + subq #1,d0 + beq .exitgloom + bra .sel +.unlink ; + bsr qsync2 + bsr chatoff + clr linked + lea p2ctype(pc),a1 + lea p2_ob_cntrl,a2 + lea p1_ob_cntrl,a3 + bsr inccntrl + ; + bsr finitpmenu + bra dointro + ; +.newgame2 addq #1,d0 + move d0,gametype + bsr qsync2 + bsr chatoff + bra finitpmenu + ; +.notlinked cmp #3,d0 + bcs .newgame + ; + subq #3,d0 + bne .notp1 + ; + lea p1ctype(pc),a1 + lea p1_ob_cntrl,a2 + lea p2_ob_cntrl,a3 + bsr inccntrl + bra .sel + ; +.notp1 subq #1,d0 + bne.s .notp2 + ; + lea p2ctype(pc),a1 + lea p2_ob_cntrl,a2 + lea p1_ob_cntrl,a3 + bsr inccntrl + bra .sel + ; +.notp2 subq #1,d0 + bne.s .notlink + ; + bsr finitpmenu + bsr linkup + bra dointro + ; +.notlink subq #1,d0 + bne.s .notvile + ; + addq #1,mode + and #1,mode + move mode(pc),d0 + lea modes,a0 + move.l 0(a0,d0*4),a0 + lea modetxt,a1 +.moloop move.b (a0)+,(a1)+ + bne.s .moloop + ; + bra .sel + ; +.notvile subq #1,d0 + bne .notabout + ; +.about ;about text... + ; + bsr finitpmenu + lea gloom,a0 + lea gloompal,a1 + lea abouttext,a2 + bsr pmenu + move numopts(pc),-(a7) + move #1,numopts + ; + bsr selmenu + ; + ;cheat mode too? + ; + qkey $5f + beq.s .noch + ; + warn #$f0f + move #-1,cheat + ; +.noch move (a7)+,numopts + bsr finitpmenu + bra dointro + ; +.notabout subq #1,d0 + bne .sel + ; +.exitgloom moveq #4,d0 + ; +.newgame move d0,gametype + bsr qsync2 + bsr chatoff + bra finitpmenu + +linkup ;link up... + ; + lea linkupmenu,a0 + bsr qmenu + ; +.loop bsr selmenu + cmp #3,d0 + bne.s .notb + bsr optbaud + bra.s .loop + ; +.notb bsr finitqmenu + move curropt(pc),d0 + beq nulllink + cmp #4,d0 + beq.s .rts + subq #1,d0 + beq dialup + subq #1,d0 + beq answer +.rts rts + ; +answer lea ata(pc),a0 + move #-1,linked + bra doconnect + +dialup ; + lea phonenum(pc),a0 + move.l a0,a1 + move.l a0,phoneat +.clr tst.b (a0) + beq.s .clrd + move.b #32,(a0)+ + bra.s .clr +.clrd move.b #127,(a1) + ; + lea linkmenu0,a0 + bsr qmenu + ; + st chatok + ; +.loop qkey $41,d0 ;undel! + bne.s .loop + ; +.wkey bsr checkesc + bne .escout + qkey $44 ;return? + bne .done + key $41,d0 + bne .del ;del + ; + move chatoutget(pc),d0 + cmp chatoutput(pc),d0 + beq.s .wkey + ; + and #31,d0 + lea chatout(pc),a0 + move.b 0(a0,d0),d0 ;chat out character! + addq #1,chatoutget + ; + cmp #48,d0 + bcs.s .loop + cmp #58,d0 + bcc.s .loop + ; + move.l phoneat(pc),a0 + move.b d0,(a0)+ + tst.b (a0) + beq.s .skinc + move.b #127,(a0) + move.l a0,phoneat + ; +.skinc bsr vwait + bsr optoff + bsr opton + bra .loop + ; +.del move.l phoneat(pc),a0 + cmp.l #phonenum,a0 + beq .loop + cmp.b #127,(a0) + bne.s .noc + move.b #32,(a0) + subq #1,a0 +.noc move.b #127,(a0) + move.l a0,phoneat + bra.s .skinc + ; +.done qkey $44 + bne.s .done + ; + bsr .escout + ; + lea pbuff(pc),a0 ;use this for connect string! + move.l a0,a2 + ; + move.l #'ATDT',(a2)+ + lea phonenum(pc),a1 +.cpn move.b (a1)+,(a2) + beq.s .null + cmp.b #32,(a2)+ + bne.s .cpn + subq #1,a2 +.null move.b #13,(a2)+ + move.b #10,(a2)+ + clr.b (a2) + ; + move #1,linked + bra doconnect + ; +.escout bsr finitqmenu + clr chatok + clr chatoutget + clr chatoutput + rts + +checkesc qkey $45 + ifne cd32 + movem.l d0-d7/a0-a6,-(a7) + lea cd32buff(pc),a0 + clr escape + bsr readcd321 + tst escape + sf escape + movem.l (a7)+,d0-d7/a0-a6 + endc + rts + +cd32buff ds 8 + +phoneat dc.l phonenum + +nulllink ; + lea connect(pc),a0 +doconnect ; + bsr sendstring + bsr waitconnect + beq .calcmaster + ; + clr linked + rts + ; + ;OK, randomly determine who is master and who is slave! + ; + ;faster computer SHOULD be master! + ; + ;let's try, number of rnd divs/frame...send as a long word! + ; +.calcmaster tst linked + bne .linked + ; + move linkdelay(pc),d0 + ext.l d0 + move.l d0,d2 + bsr longput + bsr longget + cmp.l d0,d2 + beq.s .itsatie + bhi .master + bra .slave + ; +.itsatie ;OK, both connected at same time! use faster machine... + ; + moveq #0,d7 + ; + move #$20,$dff09a + ; +.vwloop btst #5,$dff01f + beq.s .vwloop + move #$20,$dff09c +.cmloop ; + btst #5,$dff01f + bne.s .cmdone + bsr rndw + ext.l d0 + divs #$a5a5,d0 + addq.l #1,d7 + bra.s .cmloop +.cmdone ; + move #$20,$dff09c + move #$8020,$dff09a + ; + move.l d7,d0 + bsr longput + bsr longget + cmp.l d0,d7 + beq.s .calcmaster + blt.s .slave + ; + ;I'm player 1 +.master move #1,linked + bra.s .linked + ; +.slave ;I'm actually player 2! + move #-1,linked + ; +.linked move #-1,p2_ob_cntrl + ; + lea incharge(pc),a0 + tst linked + bgt.s .goz + lea notincharge(pc),a0 +.goz bsr qmenu + bsr chaton + bsr selmenu + bra finitqmenu + +longput ;send ser long in d0 + ; + moveq #3,d1 +.loop rol.l #8,d0 + movem.l d0-d1,-(a7) + bsr vwait + bsr serput + movem.l (a7)+,d0-d1 + dbf d1,.loop + rts + +longget ;get ser long in d0 + ; + move.l d2,-(a7) + moveq #3,d1 +.loop movem.l d1-d2,-(a7) + bsr serwait + movem.l (a7)+,d1-d2 + lsl.l #8,d2 + move.b d0,d2 + dbf d1,.loop + move.l d2,d0 + move.l (a7)+,d2 + rts + +incharge dc.b 1 + dc.b 'player selects options',0 + even + +notincharge dc.b 1 + dc.b 'other player selects options',0 + even + +sendstring ;a0=string to send + ; + move.l a0,a2 +.loop bsr vwait + move.b (a2)+,d0 + beq.s .done + bsr serput + bra.s .loop +.done rts + +linkdelay dc 0 + +waitconnect ;wait for 'CONNECT' to arrive... + ;return eq if OK, else ne if 'esc'ed or not received. + ; + lea linkmess,a0 + bsr qmenu + clr linkdelay + ; +.retry lea wconnect(pc),a2 + ; +.loop bsr vwait + addq #1,linkdelay + bsr checkesc + bne .notok + bsr rbfchk + beq.s .loop + bsr serget + cmp.b (a2)+,d0 + bne.s .retry + tst.b (a2) + bne.s .loop + ; +.ok ;OK, connect xxxx ends with 13,10... + ; +.w10 bsr vwait + addq #1,linkdelay + bsr checkesc + bne .notok + bsr rbfchk + beq.s .w10 + bsr serget + cmp.b #10,d0 + bne.s .w10 + ; + bsr finitqmenu + moveq #0,d0 + rts + ; +.notok bsr finitqmenu + moveq #-1,d0 + rts + +optbaud addq #1,baud + cmp #6,baud + bcs.s .ok + clr baud +.ok ; +calcbaud move baud(pc),d0 + lea bauds(pc),a0 + move.l 4(a0,d0*8),a0 ;baud text! + lea baudtext(pc),a1 +.loop move.b (a0)+,(a1)+ + bne.s .loop + ; + move baud(pc),d0 + lea bauds(pc),a1 + move.l 0(a1,d0*8),d0 ;2400 etc. + move.l baudconst(pc),d1 + divu d0,d1 + subq #1,d1 + move d1,$dff032 + ; + rts + +connect dc.b 'CONNECT',13,10,0 + even + +wconnect dc.b 'CONNECT',0 + even + +ata dc.b 'ATA',13,10,0 + even + +linkmenu0 dc.b 1 + dc.b 'DIAL: ' +phonenum dc.b 127,' ',0 + even + +linkmess dc.b 1 + dc.b 'ATTEMPTING TO CONNECT...ESC TO ABORT',0 + even + +linkupmenu dc.b 5 + dc.b 'NULL LINK',0 + dc.b 'DIAL UP',0 + dc.b 'ANSWER',0 + dc.b 'BAUD RATE: ' +baudtext dc.b '2400 ',0 + dc.b 'EXIT',0 + even + +baudconst dc.l 3546895 ;pal + dc.l 3579545 ;ntsc + +baud dc 0 + +bauds dc.l 2400,b1,4800,b2,9600,b3,14400,b4,28800,b5 + dc.l 38400,b6 + +b1 dc.b '2400 ',0 +b2 dc.b '4800 ',0 +b3 dc.b '9600 ',0 +b4 dc.b '14400',0 +b5 dc.b '28800',0 +b6 dc.b '38400',0 + even + + dc.l popt0 +popts dc.l popt1,popt2,popt3,popt4,popt5 + ; +popt0 dc.b 'NULL MODEM',0 ;-1 +popt1 dc.b 'JOYSTICK 1',0 ;0 +popt2 dc.b 'JOYSTICK 2',0 ;1 +popt3 dc.b ' KEYBOARD ',0 ;2 +popt4 dc.b 'CD32 PAD 1',0 ;3 +popt5 dc.b 'CD32 PAD 2',0 ;4 + +joyxs dc 0,0 ;serial +joyys dc 0,0 + ; +joyx0 dc 0,0 +joyb0 dc 0,0 +joyx1 dc 0,0 +joyb1 dc 0,0 +joyx2 dc 0,0 +joyb2 dc 0,0 +joyx3 dc 0,0 +joyb3 dc 0,0 +joyx4 dc 0,0 +joyb4 dc 0,0 + + even + +makeiff ;show an IFF picture...128 colours...320 X 240 + ; + ;a0=trimmed iff, a1=iff's palette + ; + push + movem.l a0-a1,-(a7) + lea iffwindow,a0 + bsr freewindow + movem.l (a7)+,a0-a1 + ; + lea iffwindow,a2 + cmp.l #0,a0 + bne.s .notblank + addq #1,a0 + move.l a0,wi_iff(a2) + move.l #rgbs16,a1 + bra.s .blank + ; +.notblank move.l a0,wi_iff(a2) +.blank move.l a1,wi_pal(a2) + ; + ;copy font palette to IFF palette! + ; + move.l font(pc),d0 + beq.s .nofont + ; + move.l d0,a0 + add.l (a0),a0 + addq #2,a0 + clr.l (a1)+ + moveq #14,d0 +.loop move (a0),(a1)+ + move (a0)+,(a1)+ + dbf d0,.loop +.nofont ; + move.l a2,a0 + bsr makewindow + ; + pull + rts + +showiff push + lea iffwindow,a0 + bsr showwindow + pull + rts + +gamemenu dc.b 7 + dc.b 'CONTINUE',0 + dc.b 'RESOLUTION',0 + dc.b 'WINDOW SIZE',0 + dc.b 'FULL SCREEN WINDOW',0 + dc.b 'FLOOR',0 + dc.b 'CEILING',0 + dc.b 'QUIT GAME',0 + even + +modes dc.l mode1,mode2 + +mode1 dc.b 'MEATY',0 + +mode2 dc.b 'MESSY',0 + +startmenu dc.b 9 + dc.b 'ONE PLAYER GAME',0 ;0 + dc.b 'TWO PLAYER GAME',0 ;1 + dc.b 'TWO PLAYER COMBAT',0 ;2 + dc.b 'PLAYER 1 ' +p1ctype + ifne cd32 + dc.b 'CD32 PAD 1',0 ;3 + elseif + dc.b 'JOYSTICK 1',0 ;3 + endc + ; + dc.b 'PLAYER 2 ' +p2ctype + ifne cd32 + dc.b 'CD32 PAD 2',0 ;4 + elseif + dc.b 'JOYSTICK 2',0 ;4 + endc + ; + dc.b 'REMOTE LINK OPTIONS',0 ;5 + ; + dc.b 'VIOLENCE MODEL: ' +modetxt dc.b 'MEATY',0 ;6 + dc.b 'ABOUT GLOOM',0 ;7 + dc.b 'EXIT GLOOM',0 ;8 + even + +startmenu2 dc.b 5 + dc.b 'TWO PLAYER GAME',0 ;0 + dc.b 'TWO PLAYER COMBAT GAME',0 ;1 + dc.b 'UNLINK FROM REMOTE PLAYER',0 ;2 + dc.b 'ABOUT GLOOM',0 ;3 + dc.b 'EXIT GLOOM',0 ;4 + even + +menuwindow dc.l 0 +menubmap dc.l 0 + +menuy dc 0 +numopts dc 0 ;how many menu options +curropt dc 0 ;current option +flashdelay dc 0 + +menustrips ds.l 32 ;16 max! + +qmenu move.l a0,-(a7) + sub.l a0,a0 + bsr makeiff + bsr showiff + move.l (a7)+,a4 + lea iffwindow,a6 + bsr initmenu + bra dispon + +pmenu move.l a2,-(a7) + bsr makeiff + bsr showiff + move.l (a7)+,a4 + lea iffwindow,a6 + bsr initmenu + bra dispon + +finitpmenu ; +finitqmenu bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bra freewindow + +initmenu clr curropt +initmenu2 ; + ;do a menu...menu in a4, window in a6 + ; + move.l a6,menuwindow + move.b (a4)+,d0 ;how many + ext d0 + move d0,numopts + move d0,-(a7) ;counter + move wi_bh(a6),d6 + move.l wi_bmap(a6),menubmap + lsr #1,d6 + move fonth(pc),d2 + lsr #1,d2 + mulu d2,d0 + sub d0,d6 ;Y + move d6,menuy + lea menustrips(pc),a5 + ; +.loop ;save strip! + ; + move.l a4,(a5)+ + ; + move #40*7,d0 + mulu fonth(pc),d0 + moveq #2,d1 + allocmem menustrip + move.l d0,(a5)+ + move.l d0,a1 + move.l wi_bmap(a6),a0 + move d6,d0 + mulu #7*40,d0 + add.l d0,a0 + ; + move #40*7,d0 + mulu fonth(pc),d0 + lsr.l #2,d0 + subq #1,d0 + ; +.sloop move.l (a0)+,(a1)+ + dbf d0,.sloop + ; + move.l a4,a0 + moveq #-1,d0 +.cnt addq #1,d0 + tst.b (a0)+ + bne.s .cnt + ; + jsr printmess2 + ; + add fonth(pc),d6 + subq #1,(a7) + bgt.s .loop + addq #2,a7 + ; + ifne debugmem + bsr showmem + lea memasc,a4 + moveq #8,d0 + jsr printmess2 + ; + move.l freememerr,d0 + beq.s .nomemerr + clr.l freememerr + move.l d0,a4 + move.l d0,a0 + moveq #-1,d0 +.ccloop addq #1,d0 + tst.b (a0)+ + bne.s .ccloop + add fonth(pc),d6 + jsr printmess2 +.nomemerr ; + endc + ; + rts + +minmem dc.l $7fffffff + + ifne debugmem + ; +showmem push + move.l 4.w,a6 + move.l #$20001,d1 + jsr -216(a6) + cmp.l minmem(pc),d0 + bge.s .notmin + move.l d0,minmem +.notmin move.l minmem(pc),d0 + ; + lea memasc,a0 + moveq #7,d1 +.loop rol.l #4,d0 + move d0,d2 + and #15,d2 + add #48,d2 + cmp #58,d2 + bcs.s .skip + addq #7,d2 +.skip move.b d2,(a0)+ + dbf d1,.loop + pull + rts + ; +memasc dc.b '12345678',0 + even + endc + +optoff move curropt(pc),d6 + lea menustrips(pc),a0 + move.l 4(a0,d6*8),a0 ;address of strip + mulu fonth(pc),d6 + add menuy(pc),d6 + mulu #7*40,d6 + move.l menubmap(pc),a1 + add.l d6,a1 + ; + move fonth(pc),d0 + mulu #7,d0 + lsl #6,d0 + or #20,d0 + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l #$9f00000,$dff040 + move.l #-1,$dff044 + move #0,$dff064 + move #0,$dff066 + move.l a0,$dff050 + move.l a1,$dff054 + move d0,$dff058 + ; + move #13,flashdelay + ; + rts + +opton move curropt(pc),d6 + lea menustrips(pc),a0 + move.l 0(a0,d6*8),a4 ;text! + mulu fonth(pc),d6 + add menuy(pc),d6 + ; + ;a6=window, a4=message, d0=length of message, d6=Y + ; + move.l a4,a0 + moveq #-1,d0 +.loop addq #1,d0 + tst.b (a0)+ + bne.s .loop + ; + move.l menuwindow(pc),a6 + jsr printmess2 + ; + move #13,flashdelay + ; + rts + +readmenujoy ;encode to d0! + ; + ;OK, read joystick in port 2, and keyboard! + ;merge into joyx,joyy,joyb + ; + lea joyx(pc),a0 + bsr readjoy1 + lea joyx0(pc),a0 + bsr readkeys + move.l joyx0(pc),d0 + or.l d0,joyx + move.l joyb0(pc),d0 + or.l d0,joyb + ; + qkey $44 + bne.s .fire + qkey $45 + beq.s .encode +.fire move #-1,joyb +.encode lea joyx(pc),a0 + jsr encodejoy + and #$1c,d0 ;fire/up/down only! + rts + + ;bit: + ;0 = joyx -1 + ;1 = joyx 1 + ;2 = joyy -1 + ;3 = joyy 1 + ;4 = joyb true + ;5 = joys true + +unselmenu move d0,-(a7) +.loop bsr readmenujoy + cmp (a7),d0 + beq.s .loop + move (a7)+,d0 + rts + +readmenusel ;read menu selection! + tst linked + bne.s .link + ; + ;not linked... + ; + bsr readmenujoy + bne unselmenu + rts + ; +.link bmi.s .slave + ; + ;master... + ; + bsr readmenujoy + beq.s .rts + bsr unselmenu + bsr serput + bsr serwait + and #255,d0 +.rts rts + ; +.slave bsr rbfchk + beq.s .rts + bsr serget + bsr serput + and #255,d0 + rts + +selmenu ;select a menu item...return item in d0 + ; + ;flash selected option on/off + ; + bsr optoff +.loop1 bsr vwait + bsr readmenusel + bne.s .joygot + subq #1,flashdelay + bgt.s .loop1 + ; + bsr opton +.loop2 bsr vwait + bsr readmenusel + bne.s .joygot2 + subq #1,flashdelay + bgt.s .loop2 + bra selmenu + ; +.joygot move d0,-(a7) + bsr opton + move (a7)+,d0 +.joygot2 ; + btst #2,d0 + bne.s .up + btst #3,d0 + bne.s .down + ; + ;selected! + ; + move curropt(pc),d0 + rts + ; +.up subq #1,curropt + bpl selmenu + move numopts(pc),d0 + subq #1,d0 + move d0,curropt + bra selmenu + ; +.down addq #1,curropt + move curropt(pc),d0 + cmp numopts(pc),d0 + bcs selmenu + clr curropt + bra selmenu + +finitmenu ;clean up menu operation + ; + lea menustrips(pc),a5 + move numopts(pc),d2 + subq #1,d2 +.loop addq #4,a5 + move.l (a5)+,a1 + freemem menustrip + dbf d2,.loop + rts + +initbmappal move.l smallfont_,a0 + add.l (a0),a0 + addq #2,a0 + moveq #22,d0 ;23 colours to poke! + move.l coplist(pc),a1 + move.l a1,a2 + move.l a1,a3 + move.l a1,a4 + ; + lea cols1+6-copinit(a1),a1 + lea cols2+6-copinit(a2),a2 + lea cols3+6-copinit(a3),a3 + lea cols4+6-copinit(a4),a4 + ; +.loop move (a0),(a1) + move (a0),(a2) + move (a0),(a3) + move (a0)+,(a4) + addq #4,a1 + addq #4,a2 + addq #4,a3 + addq #4,a4 + dbf d0,.loop + rts + +initdarktable ; + move #maxz-1,d2 + move.l sqr(pc),a0 + move.l darktable(pc),a1 + ; +.loop move d2,d3 + lsl #3,d3 + move 0(a0,d3),d3 + lsr #3,d3 + eor #15,d3 + move d3,(a1)+ + ; + dbf d2,.loop + ; + rts + +initrawmap lea ascmap(pc),a0 + lea rawmap(pc),a1 + bsr .loop + lea ascmap2(pc),a0 + lea shiftmap(pc),a1 + ; +.loop moveq #0,d0 + move.b (a0)+,d0 + cmp #$ff,d0 + beq.s .rts +.loop2 move.b (a0)+,d1 + beq.s .loop + move.b d1,0(a1,d0) + addq #1,d0 + bra.s .loop2 +.rts rts + +ascmap dc.b $1,'1234567890',0 + dc.b $10,'QWERTYUIOP',0 + dc.b $20,'ASDFGHJKL',0 + dc.b $31,'ZXCVBNM',0 + dc.b $40,' ',0 + dc.b $38,',.',0 + dc.b $ff + even + ; +ascmap2 dc.b $3a,'?',0 + dc.b $01,'!',0 + dc.b $ff + even + +rawmap ds.b 128 ;unshifted chars +shiftmap ds.b 128 ;shifted chars + +chatout ds.b 32 +chatoutput dc 0 +chatoutget dc 0 + +chatin ds.b 32 +chatinput dc 0 +chatinget dc 0 + +shiftdown dc 0 ;shift key status + +rawkeyread ;a1=matrix! hi bit of keycode=1 if key up! + ; + move.l d2,-(a7) + ; + moveq #0,d2 + move.b $bfec01,d2 + not.b d2 + ror.b #1,d2 + or.b #$40,$bfee01 + ; + move d2,d0 + move d2,d1 + and #7,d1 + lsr #3,d0 + bclr #4,d0 + bne.s .clrkey + ; +.setkey bset d1,0(a1,d0) ;key on! + ; + move chatok(pc),d0 + beq.s .skip + ; + lea rawmap(pc),a0 + move.b $60>>3(a1),d0 + and #7,d0 + beq.s .unshft + lea shiftmap(pc),a0 +.unshft move.b 0(a0,d2),d0 ;asc! + beq.s .skip + ; + ;ok, add to chat out buffer! + ; + lea chatout(pc),a0 + move chatoutput(pc),d1 + and #31,d1 + move.b d0,0(a0,d1) + addq #1,chatoutput + ; + bra.s .skip + ; +.clrkey bclr d1,0(a1,d0) + ; +.skip moveq #6,d0 ;wait 6 scanlines? + moveq #-1,d1 +.loop move d1,d2 +.loop2 move.l $dff004,d1 + lsr.l #8,d1 + and #$1ff,d1 + cmp d2,d1 + beq.s .loop2 + dbf d0,.loop + ; + and.b #$bf,$bfee01 + ; + move.l (a7)+,d2 + rts + +rawtable dc.l rawmatrix +rawstuff dc.l 0,0 +ciaa dc.l 0 +ciaaname dc.b 'ciaa.resource',0 + even +rawmatrix dc.l 0,0,0,0 ;128 key bits + +savefile ;a0=name, a1=mem, d0=length + push + ; + movem.l d0/a0-a1,-(a7) + ; + move.l dosbase,a6 + move.l a0,d1 + move.l #1006,d2 + jsr -30(a6) + move.l d0,d7 + bne.s .ok + ; + lea wpmess(pc),a0 + bsr qmenu + ; +.help bsr vwait + ; + movem.l (a7),d0/a0-a1 + move.l dosbase,a6 + move.l a0,d1 + move.l #1006,d2 + jsr -30(a6) + move.l d0,d7 + beq.s .help + ; + move.l d7,-(a7) + bsr finitqmenu + move.l (a7)+,d7 + ; +.ok move.l d7,d1 + movem.l (a7)+,d0/a0-a1 + move.l a1,d2 + move.l d0,d3 + jsr -48(a6) + ; + move.l d7,d1 + jsr -36(a6) + ; +.done pull + rts + +wpmess dc.b 1 + dc.b 'please write enable the gloom data disk!',0 + even + +fileheader ds.b 14 +loadmem dc.l 0 + +loadfileabs move.l a1,loadmem + bra.s loadfile_ + +loadfile clr.l loadmem + ; +loadfile_ ;a0=name, d1=memtype + ; + ;decrunch file if nec. + ; + ;return d0=pointer + ; + push + ; + move.l d1,d5 ;save memtype + move.l dosbase,a6 + ; + move.l a0,d1 + move.l #1005,d2 + jsr -30(a6) ;open it! + move.l d0,d7 ;handle + beq .err + ; + move.l d7,d1 + moveq #0,d2 + moveq #1,d3 + jsr -66(a6) ;seek to end + ; + move.l d7,d1 + moveq #0,d2 + moveq #-1,d3 ;seek to start + jsr -66(a6) + ; + move.l d0,d4 ;length=prev filepos + ; + move.l d7,d1 + move.l #fileheader,d2 + moveq #14,d3 + jsr -42(a6) ;read! + ; + move.l d0,-(a7) ;how many bytes read! + ; + move.l d7,d1 + moveq #0,d2 + moveq #-1,d3 ;back to start + jsr -66(a6) + ; + cmp.l #14,(a7)+ + bcs.s .nocrunch + ; + moveq #0,d6 + move.l fileheader(pc),d0 + cmp.l #'CrM2',d0 + beq.s .crunch + cmp.l #'CrM!',d0 + bne.s .nocrunch + ; +.crunch cmp.l fileheader+6(pc),d4 ;loadlen>destlen? + bcc.s .skip + move.l fileheader+6(pc),d4 ;length to allocate +.skip ; + moveq #14,d6 + add fileheader+4(pc),d6 + bsr loadit + move.l d0,a0 ;src + add.l d6,d0 ;dest + move.l d0,a1 + ; + jsr flushc + jsr decrm+32 + jsr flushc + ; + pull + rts +.nocrunch ; + bsr loadit + ; +.err pull + rts + +loadit ;d4=length to alloc/read, d5=memtype + ;seek to start, load, close and return base in d0. + ; + move.l loadmem(pc),d0 + bne.s .noalloc + ; + move.l d4,d0 + move.l d5,d1 + move.l d6,d2 ;offset XS + allocmem2 loadfile + sub.l d6,d0 +.noalloc ; + move.l d7,d1 + move.l d0,d2 + move.l d4,d3 ;read len + jsr -42(a6) ;read + move.l d7,d1 + jsr -36(a6) ;close + move.l d2,d0 + ; + rts + +andtable dc $ffff,0 ;rgb and, brightness add...wht + dc $ff00,8 ;red + +makepalettes ; + ;make wht and red pals + ; + ;create pointers... + ; + lea palettes(pc),a0 + move.l map_rgbs(pc),d0 + lea palettesw(pc),a1 + move.l map_rgbsw(pc),d1 + lea palettesr(pc),a2 + move.l map_rgbsr(pc),d2 + ; + moveq #15,d7 + ; +.loop move.l (a0)+,d3 + sub.l d0,d3 ;offset! + move.l d3,d4 + add.l d1,d3 + move.l d3,(a1)+ + add.l d2,d4 + move.l d4,(a2)+ + ; + dbf d7,.loop + ; + move.l map_rgbsend(pc),d7 + sub.l map_rgbs(pc),d7 ;how many bytes! + lsr #1,d7 + subq #1,d7 ;words! + ; + move.l map_rgbsw(pc),a1 + move #$ffff,d1 ;col and + move #0,d2 ;gamma + bsr makeapal + ; + move.l map_rgbsr(pc),a1 + move #$ff00,d1 + moveq #16,d2 + bsr makeapal + ; + rts + +makeapal move.l map_rgbs(pc),a0 + ; +.loop move (a0)+,d4 ;src colour...find briteness + ; + move d4,d5 + move d4,d6 + and #$f00,d4 + lsr #8,d4 + and #$0f0,d5 + lsr #4,d5 + and #$00f,d6 + add d6,d5 + add d5,d4 + add d2,d4 + cmp #16*3,d4 + bcs.s .bok + moveq #16*3-1,d4 +.bok ext.l d4 + divu #3,d4 ;(r+g+b)/3=briteness! + ; + move d4,d5 + move d4,d6 + lsl #8,d4 + lsl #4,d5 + or d6,d5 + or d5,d4 ;RGB + and d1,d4 + ; + move d4,(a1)+ + ; + cmp.l map_rgbsend(pc),a0 + bcs.s .loop + ; + rts + +calcpalettes ;OK, our palette currently runs from: + ; + ;map_rgbs + ; to + ;map_rgbsat + ; + ;append brightness versions... + ; + lea palettes(pc),a2 + move.l map_rgbs(pc),(a2)+ ;first brightness! + move.l map_rgbsat(pc),a1 ;first brightness! + move.l a1,a3 + moveq #1,d0 ;rgb subtract + ; +.loop move.l map_rgbs(pc),a0 + move.l a1,(a2)+ + ; +.loop2 move (a0)+,d1 + move d1,d2 + move d1,d3 + ; + and #$f00,d1 + lsr #8,d1 + sub d0,d1 + bpl.s .rok + moveq #0,d1 +.rok ; + and #$f0,d2 + lsr #4,d2 + sub d0,d2 + bpl.s .gok + moveq #0,d2 +.gok ; + and #$0f,d3 + sub d0,d3 + bpl.s .bok + moveq #0,d3 +.bok ; + lsl #8,d1 + lsl #4,d2 + or d3,d2 + or d2,d1 + or #$8000,d1 + ; + move d1,(a1)+ + cmp.l a3,a0 + bcs.s .loop2 + ; + addq #1,d0 + cmp #16,d0 + bcs.s .loop + ; + move.l a1,map_rgbsend + ; + rts + +map_rgbsend dc.l 0 + +dispoff tst dispnest + bne.s .skip + bsr vwait + move #$01a0,$dff096 ;bp/cop/spr off! +.skip addq #1,dispnest + rts + +dispon subq #1,dispnest + bgt.s .skip + bsr vwait + move.l coplist(pc),$dff080 + move #0,$dff088 + move #$8080,$dff096 ;cop on! + move #0,$dff088 +.skip rts + +forbid push + moveq #49,d0 +.fl bsr vwait + dbf d0,.fl + bsr ownblitter + move.l 4.w,a6 + jsr -132(a6) + move #$8400,$dff096 ;bltnasty! + pull + rts + +permit push + move.l 4.w,a6 + jsr -138(a6) + bsr disownblitter + pull + rts + +initvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -168(a6) ;addintserver + pull + rts + +vbcounter dc 0 +framecnt dc 0 + +frame dc 0,0 + +vbintserver dc.l 0,0 + dc.b 2,0 + dc.l 0 +vbintdata dc.l vbcounter +vbintcode dc.l vbhandler + +rbfintserver dc.l 0,0 + dc.b 2,0 + dc.l 0 +rbfintdata dc.l rbuff +rbfintcode dc.l rbf + +finitvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -174(a6) + pull + rts + +ownblitter push + move.l grbase,a6 + jsr -456(a6) + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + pull + rts + +disownblitter push + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + move.l grbase,a6 + jsr -462(a6) + pull + rts + +makecoloffs push + ; + lea coloffs,a0 + moveq #2,d0 + moveq #3,d2 +.loop addq.l #4,d0 + moveq #31,d1 +.loop2 move.l d0,(a0)+ + addq.l #4,d0 + dbf d1,.loop2 + dbf d2,.loop + ; + pull + rts + +grname dc.b 'graphics.library',0 + even +grbase dc.l 0 +oldview dc.l 0 +dosname dc.b 'dos.library',0 + even +dosbase dc.l 0 + +calcbpos ;also: calc qstripbot, con0poke... + ; + move window1+wi_h,d0 + add d0,d0 + ext.l d0 + add.l qstrip(pc),d0 + move.l d0,qstripbot + ; + move #$100,con0poke + move floorflag(pc),d0 + and roofflag(pc),d0 + bne.s .cp + move #$9f0,con0poke ;one of them is cop strip! +.cp ; + move window1+wi_y,d0 + subq #4,d0 + move d0,minbpos + tst twowins + beq.s .p1 + ; + move window2+wi_y,d0 + add window2+wi_bh,d0 + addq #4,d0 + move d0,maxbpos + rts + ; +.p1 move window1+wi_y,d0 + add window1+wi_bh,d0 + addq #4,d0 + move d0,maxbpos + ; + rts + +showwindow ;a0=window + ; + push + ; + ;poke bitmaps... + move.l wi_slice(a0),a1 + move.l (a1),a1 + move.l wi_bmap(a0),d0 + moveq #6,d1 ;7 bitplanes +.loop move d0,6(a1) + swap d0 + move d0,2(a1) + swap d0 + add.l #40,d0 + addq #8,a1 + dbf d1,.loop + ; + ;create DIW + ; + move.l wi_slice(a0),a1 + move.l (a1),a1 + ; + move wi_y(a0),d0 + move d0,d1 + add wi_bh(a0),d1 + lsl #8,d0 + or #$81,d0 + move d0,56+2(a1) + lsl #8,d1 + or #$c1,d1 + move d1,56+6(a1) + ; + ;create wait! + ; + move wi_y(a0),d0 + subq #3,d0 + move.b d0,64(a1) + ; + ;create link to next! + move.l wi_nslice(a0),a1 + move.l (a1),d0 + move.l wi_cop1(a0),a1 + add.l wi_copmem(a0),a1 + move.l wi_cop2(a0),a2 + add.l wi_copmem(a0),a2 + move d0,-6(a1) + move d0,-6(a2) + swap d0 + move d0,-10(a1) + move d0,-10(a2) + ; + pull + ; +showwindowq ;display coplist + ; + move.l wi_cop(a0),d0 + move.l wi_slice(a0),a0 + move.l (a0),a0 + ; + move d0,72+6(a0) + swap d0 + move d0,72+2(a0) + ; + rts + +finitdisplay push + ; + move.l grbase,a6 + move.l oldview,a1 + jsr -222(a6) ;load view + jsr -270(a6) + jsr -270(a6) + move.l 38(a6),$dff080 + move #$81a0,$dff096 + move #0,$dff088 + ; + pull + rts + +chatmap dc.l 0 + +initdisplay push + ; + lea grname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,grbase + ; + move.l d0,a6 + move.l 34(a6),oldview + sub.l a1,a1 + jsr -222(a6) ;loadview + ; + move.l #80*2*5,d0 + moveq #2,d1 + allocmem chatplanes + move.l d0,chatmap + ; + move d0,chatplanes+6 + swap d0 + move d0,chatplanes+2 + swap d0 + add.l #80,d0 + move d0,chatplanes+14 + swap d0 + move d0,chatplanes+10 + ; + move.l #copinitf-copinit,d0 + moveq #2,d1 + allocmem copinit + move.l d0,coplist + ; + move.l d0,a1 + lea copinit,a0 + lea copinitf,a2 + ; +.loop cmp.l a2,a0 + bcc.s .done + move.l (a0)+,(a1)+ + bra.s .loop +.done ; + add.l #sl1-copinit,d0 + move.l d0,slice1 + add.l #sl2-sl1,d0 + move.l d0,slice2 + add.l #cstop-sl2,d0 + move.l d0,copstop + ; + move.l copstop,d0 + move.l slice1,a0 + move.l slice2,a1 + ; + move d0,72+6(a0) + move d0,72+6(a1) + swap d0 + move d0,72+2(a0) + move d0,72+2(a1) + ; + bsr dochatoff + ; + jsr -270(a6) + move #$81a0,$dff096 + ; + ;jsr -270(a6) + ;move.l coplist,$dff080 + ;move #0,$dff088 + ; + pull + rts + +allocwbmap move wi_w(a2),d0 + mulu wi_pw(a2),d0 + move d0,wi_bw(a2) + ; + move wi_h(a2),d0 + mulu wi_ph(a2),d0 + move d0,wi_bh(a2) + ; + mulu #40*7,d0 + ; + move.l #$10002,d1 + move.l d0,wi_bmapmem(a2) + allocmem wi_bmap + move.l d0,wi_bmap(a2) + ; + move.l #40*7*7,d0 + moveq #2,d1 + allocmem wi_strip + move.l d0,wi_strip(a2) + ; + rts + +windowiff ;draw iff into window! + ; + move.l wi_iff(a2),a0 + cmp.l #1,a0 + bne.s .do + rts + ; +.do move.l wi_bmap(a2),a1 + ; + move 2(a0),d1 + cmp #240,d1 + bcs.s .skip + move #240,d1 +.skip move #120,d2 + lsr #1,d1 + sub d1,d2 + mulu #7*40,d2 + add.l d2,a1 + ; +decodeiff ;for 40 columns... + ; + ;a0=trimmed IFF file, + ;a1=destination bitmap... + ; + move.l a2,-(a7) + moveq #40,d7 + ; + move (a0)+,d0 ;pixel width + lsr #3,d0 ;to byte width + move (a0)+,d1 ;pixel height + cmp #240,d1 + bls.s .hok + move #240,d1 +.hok subq #1,d1 ;to dbf + move (a0)+,d2 ;depth + subq #1,d2 ;to dbf + addq #6,a0 ;skip header + ; +.loop5 move d2,d5 ;depth + ; +.loop4 move.l a1,a2 + move d0,d4 ;how many bytes in line + ; +.loop moveq #0,d3 + move.b (a0)+,d3 + bmi.s .repeat + sub d3,d4 +.loop3 move.b (a0)+,(a2)+ + dbf d3,.loop3 + bra.s .skip + ; +.repeat cmp.b #-128,d3 + beq.s .loop + neg.b d3 + sub d3,d4 +.loop2 move.b (a0),(a2)+ + dbf d3,.loop2 + addq #1,a0 +.skip subq #1,d4 + bgt.s .loop + ; + add d7,a1 + dbf d5,.loop4 + dbf d1,.loop5 + ; + move.l (a7)+,a2 + rts + +plotwbmap ;OK, plot colours on bitmap! + ; + move.l wi_iff(a2),d0 + bne windowiff + ; + move.l wi_bmap(a2),a0 + move wi_x(a2),d0 + move d0,d1 + lsr #3,d0 + not d1 + and #7,d1 + moveq #127,d7 ;colour + move wi_w(a2),d6 ;width + subq #1,d6 + ; +.wloop move wi_pw(a2),d5 + subq #1,d5 + ; +.wloop2 move d7,d4 + moveq #6,d3 + ; +.dloop bclr d1,0(a0,d0) + lsr #1,d4 + bcc.s .dskip + bset d1,0(a0,d0) +.dskip lea 40(a0),a0 + dbf d3,.dloop + ; + lea -40*7(a0),a0 + subq #1,d1 + bpl.s .dskip2 + moveq #7,d1 + addq #1,d0 +.dskip2 dbf d5,.wloop2 + ; + subq #1,d7 + dbf d6,.wloop + ; + move wi_bh(a2),d0 ;how many to copy + subq #1,d0 + bsr wcopy + ; + move.l wi_bmap(a2),a0 + move.l wi_strip(a2),a1 + move wi_bh(a2),d0 + lsr #2,d0 + mulu #7*40,d0 + add.l d0,a0 + move #7*7*10-1,d2 + ; +.loop move.l (a0)+,(a1)+ + dbf d2,.loop + ; + rts + +wcopy ;copy top scanline to next d0 scanlines + ; + move.l wi_bmap(a2),a0 + mulu #10*7,d0 + subq #1,d0 + lea 40*7(a0),a1 +.cbloop move.l (a0)+,(a1)+ + dbf d0,.cbloop + ; + rts + +freewindow ;window in a0 + ; + push + move.l a0,a2 + move.l wi_bmap(a2),d0 + beq.s .no1 + clr.l wi_bmap(a2) + move.l d0,a1 + freemem wi_bmap +.no1 move.l wi_strip(a2),d0 + beq.s .no2 + clr.l wi_strip(a2) + move.l d0,a1 + freemem wi_strip +.no2 move.l wi_cop1(a2),d0 + beq.s .no3 + clr.l wi_cop1(a2) + move.l d0,a1 + freemem wi_cop +.no3 pull + rts + +makewindow ;make window + ; + ;a0=window struct! + ; + push + ; + move.l a0,a2 + ; + bsr allocwbmap + bsr plotwbmap + ; + tst.l wi_iff(a2) + beq wchunky + ; + ;make a palette coplist for the window + ; + ;to write 32 colours... + ;set bank, write hi nybs, set bank, write lo nybs... + ;=66 copins. + ;*4=264 total + ;+1 for final wait +3 for final copjump=268 + ; + move.l #268<<2,d0 + move.l d0,wi_copmem(a2) + moveq #2,d1 + allocmem wi_iffcop + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + move.l d0,wi_cop2(a2) + move.l d0,a0 ;dest + move.l wi_pal(a2),a1 ;palette! + ; + moveq #0,d0 ;bank + moveq #3,d3 ;something. + ; +.loop move #$106,(a0)+ + move d0,(a0)+ + move #$180,d1 + moveq #31,d2 +.hiloop move d1,(a0)+ + move (a1),(a0)+ + addq #4,a1 + addq #2,d1 + dbf d2,.hiloop + ; + lea -128+2(a1),a1 + move #$106,(a0)+ + bset #9,d0 + move d0,(a0)+ + bclr #9,d0 + move #$180,d1 + moveq #31,d2 +.loloop move d1,(a0)+ + move (a1),(a0)+ + addq #4,a1 + addq #2,d1 + dbf d2,.loloop + subq #2,a1 + ; + add #$2000,d0 ;next bank! + dbf d3,.loop + ; + move.l #$fffffffe,(a0)+ + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + pull + rts + ; +wchunky ;how many copins on one line? + ; + move wi_w(a2),d0 + move d0,d1 + subq #1,d0 + lsr #5,d0 ;how many bank changes per line! + addq #3,d0 ;1 waits - 1 eor, 1 init bank select + add d1,d0 ;+colpokes + ; + move d0,d1 + lsl #2,d1 + move d1,wi_copmod(a2) + ; + mulu wi_h(a2),d0 + addq #4,d0 ;1 wait and cop jump at end + ; + lsl.l #2,d0 ;4 bytes/copins + moveq #2,d1 ;cop in chip + move.l d0,wi_copmem(a2) + lsl.l #1,d0 ;2 coplists! + allocmem wi_chunkycop + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + ; + move.l d0,a0 + move wi_y(a2),d6 + move wi_h(a2),d7 + subq #1,d7 + move #$111,d3 ;test colour + move #$8000,d4 ;Colour Eor + ; +.hloop ;make one copline... + ; + moveq #127,d0 ;colour reg to poke + move wi_w(a2),d1 + subq #1,d1 + ; +.lloop move d0,d2 + addq #1,d2 + and #31,d2 + bne.s .notnbank + ; + ;new bank.... + move d0,d2 + sub #31,d2 + and #$ffe0,d2 + lsl #8,d2 + or d4,d2 ;eor bank + move #$106,(a0)+ ;bank select + move d2,(a0)+ + ; +.notnbank move d0,d2 + and #31,d2 + add d2,d2 + add #$180,d2 + move d2,(a0)+ ;colour poke + move d3,(a0)+ + add #$111,d3 + subq #1,d0 + dbf d1,.lloop + ; + bsr .makewait + ; + ;ok, now do EOR! + move #$10c,(a0)+ + move d4,(a0)+ + bchg #15,d4 + ; + dbf d7,.hloop + ; + bsr .makewait + ; + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + ; + ;OK, 1 list created...copy to other! + ; + move.l wi_cop1(a2),a0 + move.l a0,a1 + add.l wi_copmem(a2),a1 + move.l a1,wi_cop2(a2) + move.l a1,a3 + ; +.copycop move.l (a0)+,(a3)+ + cmp.l a1,a0 + bcs.s .copycop + ; + pull + rts + +.makewait ; + ;make wait ins. at pos d6 + ; + subq #1,d6 + move.b d6,(a0)+ + move.b #$e1,(a0)+ + move #$fffe,(a0)+ + addq #1,d6 + add wi_ph(a2),d6 + rts + +allocmem2_ ; + ;as below, but d2.l = extra mem at start to set aside + ; + push + moveq #16,d3 + add.l d2,d3 + bra.s amem_ + +allocmem_ ; + ;d0=size, d1=requirements, a0=text field + ; + ;set up node before allocmem for quick freemem: + ; + ;00.l : next + ;04.l : real size + ;08.l : offset to user mem (normally 16, but CM fucks things up) + ;12.l : pointer to text field for debugging + ; + push + moveq #16,d3 ;offset + ; +amem_ move.l a0,d4 + add.l d3,d0 + ; + move.l d0,d2 ;len + move.l a0,d4 ;text + move.l 4.w,a6 + jsr -198(a6) + tst.l d0 + bne.s .skip + ; + warn #$f00 + ; +.skip move.l d0,a0 + move.l memlist,(a0) ;next + move.l a0,memlist + movem.l d2-d4,4(a0) + add.l d3,a0 + move.l a0,d0 + ; + pull + rts + +freememlist push + ; +.more move.l memlist,d0 + beq.s .done + move.l d0,a2 + ; + ifne debugmem + move.l 12(a2),a0 ;text field + move.l a0,d2 + moveq #-1,d3 +.loop addq.l #1,d3 + tst.b (a0)+ + bne.s .loop + ; + move.l outhand,d1 + move.l dosbase,a6 + jsr -48(a6) + endc + ; + move.l a2,a1 + ; + move.l (a1),memlist + move.l 4(a1),d0 + move.l 4.w,a6 + jsr -210(a6) + bra.s .more + ; +.done pull + rts + +freemem_ ; + ;a1=address to free! + ; + push + ; + ifne debugmem + move.l a0,-(a7) ;error mess + elseif + endc + ; + move.l a1,a2 ;mem to find! + lea memlist(pc),a1 + ; +.more move.l a1,a0 ;prev + move.l (a1),d0 + beq.s .err + move.l d0,a1 + ; + move.l a1,a3 + add.l 8(a3),a3 + cmp.l a3,a2 + bne.s .more + ; + move.l (a1),(a0) + move.l 4(a1),d0 + move.l 4.w,a6 + jsr -210(a6) + bra.s .done + ; +.err warn #$ff0 + ifne debugmem + move.l (a7),freememerr + endc +.done ; + ifne debugmem + addq #4,a7 + endc + ; + pull + rts + +freememerr dc.l 0 + +initmap ;map address in map_map... + ;load in textures, do colour mapping etc. + ; + push + ; + move.l map_map,a0 + ; + move.l a0,a1 + add.l (a0),a1 + move.l a1,map_grid + ; + move.l a0,a1 + add.l 4(a0),a1 + move.l a1,map_poly + ; + move.l a0,a1 + add.l 8(a0),a1 + move.l a1,map_ppnt + ; + move.l a0,a1 + add.l 12(a0),a1 + move.l a1,map_anim + ; + move.l a0,a1 + add.l 16(a0),a1 + move.l a1,map_txts + ; + move.l (a0),d0 + sub.l #25*4,d0 + add.l a0,d0 + move.l d0,map_events + ; + move.l map_rgbsfrom2,map_rgbsat + ; + pull + rts + +freetxts lea textscrns,a6 + moveq #7,d7 +.loop move.l (a6)+,d0 + beq.s .skip + move.l d0,a1 + freemem freetxts + clr.l -4(a6) +.skip dbf d7,.loop + rts + +loadtxts push + ; + lea textures,a4 + move.l map_txts,a5 ;texture names + lea textscrns,a6 + moveq #7,d7 + ; +.ltl lea .temp(pc),a0 + ; +.ltl2 move.b (a5)+,(a0)+ + bne.s .ltl2 + moveq #0,d0 + cmp.l #.temp+1,a0 + beq.s .notext + lea .temp2(pc),a0 + moveq #1,d1 + jsr loadfile + ; +.notext move.l d0,(a6)+ ;texture! + beq.s .skip + ; + ;do colour mapping stuff! + ; + move.l d0,-(a7) + ; + move.l d0,a0 + add.l (a0),a0 + move.l a0,a2 + bsr addpal + ; + move.l (a7),a0 + addq #4,a0 + move.l a2,a1 + bsr remap + ; + move.l (a7)+,a0 + addq #4,a0 + moveq #19,d0 + move.l #64*65,d1 + ; +.mtxt move.l a0,(a4)+ + add.l d1,a0 + dbf d0,.mtxt +.skip ; + dbf d7,.ltl + ; + pull + rts + +.temp2 dc.b 'txts/' +.temp ds.b 64 + even + +remapanim ;a0=anim to remap... + ; + push + ; + move.l a0,a6 + movem (a6),d6-d7 + lsl d6,d7 ;how many frames! + subq #1,d7 + ; + move.l a6,a0 + add.l an_pal(a0),a0 + bsr addpal + ; + lea an_size(a6),a5 + ; +.loop move.l a6,a0 + add.l (a5)+,a0 ;start of shape + addq #4,a0 ;skip handles + movem (a0)+,d0-d1 ;w/h + mulu d1,d0 + lea 0(a0,d0.l),a1 ;end + bsr remap + ; + dbf d7,.loop + ; + pull + rts + +remap ;a0=start of byte data, a1=end of byte data + ; + push + ; + moveq #0,d0 + move.l maptable,a2 + ; +.loop cmp.l a1,a0 + bcc.s .done + move.b (a0),d0 + move.b 0(a2,d0),(a0)+ + bra.s .loop +.done ; + pull + rts + +addpal ;add palette in a0 to end of map_rgb + ; + push + ; + move (a0)+,d0 + subq #1,d0 + move.l map_rgbsat,a2 ;end of rgbs + move.l maptable,a3 + ; + clr.b (a3) ;0=0 + move.b #255,255(a3) ;-1=-1 + move.b #254,254(a3) ;-1=-1 + move.b #253,253(a3) ;-1=-1 + move.b #252,252(a3) ;-1=-1 + move.b #251,251(a3) ;-1=-1 + move.b #250,250(a3) ;-1=-1 + move.b #249,249(a3) ;-1=-1 + ; + moveq #1,d2 ;colour 1! + ; +.loop move (a0)+,d1 ;colour...does it exist? + bmi.s .next ;not used! + move.l map_rgbs,a1 + ; +.loop2 cmp.l a2,a1 + bcc.s .no + cmp (a1)+,d1 + beq.s .yes + bra.s .loop2 + ; +.no ;colour doesn't exist! + ;may have to do a 'near match' routine if we run out of colours + ; + move d1,(a2)+ + move.l a2,a1 + ; +.yes subq #2,a1 + sub.l map_rgbs,a1 + move.l a1,d1 + lsr #1,d1 ;real colour + ; + cmp #256,d1 + bcs.s .ok + ; + warn #$00f + ; +.ok move.b d1,0(a3,d2) + ; +.next addq #1,d2 + dbf d0,.loop + ; + move.l a2,map_rgbsat + ; + pull + rts + + ;coll types... + ; + ;1...bullet from player 1 + ;2...bullet from player 2 + ;4...bullet from monster + ;8...player 1 + ;16..player 2 + ; + + dc.l 0,player,tokens + ; +objlist ;list of objects to be freed... + ; + dc.l marine,baldy,terra,ghoul,demon,phantom + dc.l lizard,deathhead,dragon,troll,0 + +player dc.l 0,0 ;main, chunks + dc.b 'objs/player',0,0 + even +tokens dc.l 0,0 + dc.b 'objs/tokens',0,0 + even +marine dc.l 0,0 + dc.b 'objs/marine',0,0 + even +baldy dc.l 0,0 + dc.b 'objs/baldy',0,0 + even +terra dc.l 0,0 + dc.b 'objs/terra',0,0 + even +ghoul dc.l 0,0 + dc.b 'objs/ghoul',0,0 + even +demon dc.l 0,0 + dc.b 'objs/demon',0,0 + even +phantom dc.l 0,0 + dc.b 'objs/phantom',0,0 + even +lizard dc.l 0,0 + dc.b 'objs/lizard',0,0 + even +deathhead dc.l 0,0 + dc.b 'objs/deathhead',0,0 + even +dragon dc.l 0,0 + dc.b 'objs/dragon',0,0 + even +troll dc.l 0,0 + dc.b 'objs/troll',0,0 + even + +objinfo +player1_ dc.l player1 +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l $d0000 +_ob_shape dc.l player +.ob_logic dc.l playerlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l playerhit +.ob_die dc.l playerdie + ; +.ob_eyey dc -pl_eyey ;eye height +.ob_firey dc -pl_firey ;where bullets come from +.ob_gutsy dc -pl_gutsy +.ob_othery dc 0 +p1_ob_colltype dc 8 +p1_ob_collwith dc 6 ;6=combat, 4=game +p1_ob_cntrl + ifne cd32 + dc 3 ;for player 0,1=joyport, 2=keys + elseif + dc 0 + endc +.ob_damage dc 1 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 1 +.ob_range dc 1 +.ob_weapon dc 0 ;weapon type...0...25 +.ob_reload dc.b ireload,0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 ;4! +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +objinfof + +oilen equ objinfof-objinfo + +player2_ dc.l player2 +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l $d0000 +.ob_shape dc.l player +.ob_logic dc.l playerlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l playerhit +.ob_die dc.l playerdie +.ob_eyey dc -pl_eyey ;eye height +.ob_firey dc -pl_firey ;where bullets come from +.ob_gutsy dc -pl_gutsy +.ob_othery dc 0 +p2_ob_colltype dc 16 +p2_ob_collwith dc 5 ;5=combat, 4=game +p2_ob_cntrl + ifne cd32 + dc 4 ;for player 0,1=joyport, 2=keys, 3=serial + elseif + dc 1 + endc + +.ob_damage dc 1 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 1 +.ob_range dc 1 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc.b ireload,0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 ;4! +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +health_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l healthgot +.ob_die dc.l healthgot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $20000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +weapon_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon2 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 1 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +thermo_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l thermogot +.ob_die dc.l thermogot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $00000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +infra_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l thermogot +.ob_die dc.l thermogot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $00000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +invisi_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l invisigot +.ob_die dc.l invisigot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $10000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +invinc_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l invincgot +.ob_die dc.l invincgot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $20000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +dragon_ dc.l dummy +.ob_rotspeed dc.l $ffff0000 +.ob_movspeed dc.l $c0000 +.ob_shape dc.l dragon +.ob_logic dc.l dragonlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l rts ;hurtngrunt +.ob_die dc.l blowdragon ;object +.ob_eyey dc -64 ;eye height +.ob_firey dc -144 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 10 +.ob_hitpoints dc 250 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 16 +.ob_range dc 32 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $300 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +bouncy_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l bouncylogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l bouncygot +.ob_die dc.l bouncygot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $30000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +marine_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $60000 +.ob_shape dc.l marine +.ob_logic dc.l monsterlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 1 +.ob_hitpoints dc 5 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 16 +.ob_range dc 32 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +baldy_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $40000 +.ob_shape dc.l baldy +.ob_logic dc.l baldylogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 2 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 3 +.ob_punchrate dc 4 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $220 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +terra_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $20000 +.ob_shape dc.l terra +.ob_logic dc.l terralogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtterra ;ngrunt +.ob_die dc.l blowterra +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 1 +.ob_hitpoints dc 35 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 32 +.ob_range dc 48 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_firerate dc 12 ;how often terra fires +.ob_bouncecnt dc 0 ;how many times +.ob_firecnt dc 5 +.ob_scale dc $280 +.ob_apad dc 0 +.ob_blood dc $fff ;color AND for blood +.ob_ypad dc 1 + +ghoul_ dc.l dummy +.ob_rotspeed dc.l $0 +.ob_movspeed dc.l $80000 +.ob_shape dc.l ghoul +.ob_logic dc.l ghoullogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtghoul +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -64 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 5 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l 0 +.ob_base dc 32 +.ob_range dc 48 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_firerate dc 12 ;how often terra fires +.ob_bouncecnt dc 0 ;how many times +.ob_firecnt dc 5 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $80f0 ;color AND for blood +.ob_ypad dc 1 + +phantom_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $a0000 +.ob_shape dc.l phantom +.ob_logic dc.l phantomlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 3 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $a000 +.ob_base dc 8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 7 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $280 +.ob_apad dc 0 +.ob_blood dc $ff0 ;color AND for blood +.ob_ypad dc 1 + +demon_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $70000 +.ob_shape dc.l demon +.ob_logic dc.l demonlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -90 ;where bullets come from +.ob_gutsy dc -72 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 5 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $7000 +.ob_base dc 32 +.ob_range dc 4 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $380 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +weapon1_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon1 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon2_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon2 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 1 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon3_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon3 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 2 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon4_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon4 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 3 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon5_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon5 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 4 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +lizard_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $60000 +.ob_shape dc.l lizard +.ob_logic dc.l lizardlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l lizhurt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 2 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 8 +.ob_range dc 8 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 2 +.ob_punchrate dc 3 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $240 +.ob_apad dc 0 +.ob_blood dc $f0f ;color AND for blood +.ob_ypad dc 1 + +deathhead_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l $c0000 +.ob_shape dc.l deathhead +.ob_logic dc.l deathheadlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtdeath +.ob_die dc.l blowdeath +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -96 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 3 +.ob_hitpoints dc 35 +.ob_think dc 0 +.ob_frame dc.l $8000 +.ob_framespeed dc.l $6000 +.ob_base dc -8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 10 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +troll_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $60000 +.ob_shape dc.l troll +.ob_logic dc.l trolllogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l trollhurt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 3 +.ob_hitpoints dc 18 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 8 +.ob_range dc 8 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 2 +.ob_punchrate dc 3 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $240 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +abouttext dc.b 14 + dc.b 'GLOOM',0 + dc.b 0 + dc.b 'A BLACK MAGIC GAME',0 + dc.b 0 + dc.b 'PROGRAMMED BY MARK SIBLY',0 + dc.b 'GRAPHICS BY THE BUTLER BROTHERS',0 + dc.b 'MUSIC BY KEV STANNARD',0 + dc.b 'AUDIO BY US',0 + dc.b 'PRODUCED BY US',0 + dc.b 'DESIGNED BY US',0 + dc.b 'GAME CODED IN DEVPAC2',0 + dc.b 'UTILITIES CODED IN BLITZ BASIC 2',0 + dc.b 'RENDERED IN DPAINT3 AND DPAINT4',0 + dc.b 'DECRUNCHING CODE BY THOMAS SCHWARZ',0 + even + +sqrinc incbin sqr.bin + +weapon1 dc.l bullet1,sparks1 +weapon2 dc.l bullet2,sparks2 +weapon3 dc.l bullet3,sparks3 +weapon4 dc.l bullet4,sparks4 +weapon5 dc.l bullet5,sparks5 + +bullet1 incbin bullet1.bin +bullet2 incbin bullet2.bin +bullet3 incbin bullet3.bin +bullet4 incbin bullet4.bin +bullet5 incbin bullet5.bin + +sparks1 incbin sparks1.bin +sparks2 incbin sparks2.bin +sparks3 incbin sparks3.bin +sparks4 incbin sparks4.bin +sparks5 incbin sparks5.bin + +gloombrush incbin gloombrush + +gloom incbin title +gloompal incbin title.pal + +medplayer incbin medplay +decrm incbin decrm + +castrotsinc incbin castrots64.bin +camrotsinc incbin camrots.bin ;256 +camrots2inc incbin camrots2.bin ;1024 +chatfont incbin chatfont.bin + +rgbs16 ds.l 16 +map_rgbs_ ds.w 256*16 + diff --git a/gloom.s.help b/gloom.s.help new file mode 100644 index 0000000..80603dc --- /dev/null +++ b/gloom.s.help @@ -0,0 +1,11792 @@ + + ;adding chat-line... + ; + ;OK, modem stuff... + ; + ;Once 2 machines are linked, player 1 gets to choose options! + ;player 2 is ignored... + ; + ;player 1 if linked=1, 2 if linked=-1 + + ;********* + ;* GLOOM * + ;********* + ; + ;error codes + ; + ;red - allocmem failed + ;yel - freemem failed + ;orange - unknown script command + ;purp - unknown event command + ;cyn - can't open file in loadfile + ;blu - ran out of remap colours! + +cy equ 160 + +pl_eyey equ 110 +pl_firey equ 60 +pl_gutsy equ 64 + +debugser equ 0 +debugmem equ 0 +onedemo equ 0 + ; +ireload equ 8 ;initial reload val. +maxobjects equ 256 ;max objects in game +maxdoors equ 16 ;max doors opening at once +maxblood equ 128 ;max droplets of bluuurd +maxgore equ 128 ;body parts on ground! +maxrotpolys equ 32 ;max rotating thingys. + ; +focshft equ 6 +grdshft equ 8 +darkshft equ 7 ;smaller=smaller range=faster! +maxz equ 16<>1 + ; +linemod equ 40*7 + + jmp entrypoint + + rsreset + ; + ;rotpoly details... + ; +rp_next rs.l 1 +rp_prev rs.l 1 + ; +rp_speed rs.w 1 +rp_rot rs.w 1 +rp_flags rs.w 1 ;what to do? + ; +rp_cx rs.w 1 ;only for rot +rp_cz rs.w 1 +rp_first rs.l 1 ;pointer to first! +rp_num rs.w 1 + ; +rp_vx rs.w 0 +rp_lx rs.w 1 +rp_vz rs.w 0 +rp_lz rs.w 1 +rp_ox rs.w 0 +rp_na rs.w 1 +rp_oz rs.w 0 +rp_nb rs.w 1 + ; +rp_more rs.b 8*31 ;=32 max verts! + ; +rp_size rs.b 0 + + rsreset + ; + ;sfx channel info + ; +fx_status rs.w 1 +fx_priority rs.w 1 +fx_sfx rs.l 1 +fx_vol rs.w 1 +fx_offset rs.w 1 +fx_dma rs.w 1 +fx_int rs.w 1 + ; +fx_size rs.b 0 + + rsreset + ; + ;blood! + ; +bl_next rs.l 1 +bl_prev rs.l 1 +bl_x rs.l 1 +bl_y rs.l 1 +bl_z rs.l 1 +bl_xvec rs.l 1 +bl_yvec rs.l 1 +bl_zvec rs.l 1 +bl_color rs.l 1 ;colour and! + ; +bl_size rs.b 0 + + rsreset + ; + ;a texture + ; +te_pal rs.l 1 + ; +te_size rs.b 0 + + rsreset + ; + ;an opening/closing door! + ; +do_next rs.l 1 +do_prev rs.l 1 +do_poly rs.l 1 ;door polygon +do_lx rs.w 1 +do_lz rs.w 1 +do_rx rs.w 1 +do_rz rs.w 1 +do_frac rs.w 1 +do_fracadd rs.w 1 + ; +do_size rs.b 0 + + rsreset + ; + ;wall list... + ; +wl_next rs.l 1 +wl_lsx rs.w 1 ;leftmost screen X +wl_rsx rs.w 1 ;rightmost screen X +wl_nz rs.w 1 ;near Z! +wl_fz rs.w 1 ;far Z! +wl_lx rs.w 1 +wl_lz rs.w 1 +wl_rx rs.w 1 +wl_rz rs.w 1 +wl_a rs.w 1 +wl_b rs.w 1 +wl_c rs.l 1 +wl_sc rs.w 1 +wl_open rs.w 1 ;0=door shut, $4000=open! +wl_t rs.b 8 ;textures + ; +wl_size rs.b 0 + + rsreset + ; + ;a zone... + ; +zo_done rs.w 1 +zo_lx rs.w 1 +zo_lz rs.w 1 +zo_rx rs.w 1 +zo_rz rs.w 1 + ; +zo_a rs.w 1 +zo_b rs.w 1 +zo_na rs.w 1 +zo_nb rs.w 1 +zo_ln rs.w 1 + ; +zo_t rs.b 8 ;8 textures + ; +zo_sc rs.w 1 ;scale (how many txts on wall) +zo_open rs.w 0 ;for wall polys... +zo_ev rs.w 1 ;for events... + ; +zo_size rs.b 0 ;32! + + rsreset + ; + ;a shape to draw! + ; +sh_next rs.l 1 +sh_prev rs.l 1 +sh_x rs.w 1 +sh_y rs.w 1 +sh_z rs.w 1 +sh_shape rs.l 1 +sh_scale rs.w 0 +sh_strip rs.l 1 +sh_render rs.l 1 ;drawobjnorm or drawobjinvs + ; +sh_size rs.b 0 + + rsreset + ; + ;gore...body parts lying around! + ; +go_next rs.l 1 +go_prev rs.l 1 +go_x rs.w 1 +go_z rs.w 1 +go_shape rs.l 1 + ; +go_size rs.b 0 + + rsreset + ; + ;an object in the game (player/alien etc...) + ; +ob_next rs.l 1 +ob_prev rs.l 1 +ob_x rs.l 1 +ob_y rs.l 1 +ob_z rs.l 1 +ob_rot rs.l 1 + ; + ;start of info load by prog. +ob_info rs.b 0 + ; +ob_rotspeed rs.l 1 +ob_movspeed rs.l 1 +ob_shape rs.l 1 +ob_logic rs.l 1 +ob_render rs.l 1 +ob_hit rs.l 1 ;routine to do when damaged +ob_die rs.l 1 ;routine to do when killed +ob_eyey rs.w 1 ;eye height +ob_firey rs.w 1 ;where bullets come from +ob_gutsy rs.w 1 +ob_othery rs.w 1 +ob_colltype rs.w 1 +ob_collwith rs.w 1 +ob_cntrl rs.w 1 +ob_damage rs.w 1 +ob_hitpoints rs.w 1 +ob_think rs.w 1 +ob_frame rs.l 1 ;anim frame +ob_framespeed rs.l 1 ;anim frame +ob_base rs.w 1 +ob_range rs.w 1 +ob_weapon rs.w 1 ;weapon meter +ob_reload rs.b 1 ;weapon reload timer +ob_reloadcnt rs.b 1 ;counter +ob_hurtpause rs.w 1 +ob_firerate rs.w 0 +ob_punchrate rs.w 1 +ob_bouncecnt rs.w 1 ;how many times my bullets bounce! +ob_firecnt rs.w 0 +ob_something rs.w 1 +ob_scale rs.w 1 ;scale factor for drawing +ob_lastbut rs.w 1 +ob_blood rs.w 1 ;color AND for blood +ob_ypad rs.w 1 + ; +ob_oldlogic rs.l 1 +ob_oldlogic2 rs.l 1 +ob_oldhit rs.l 1 +ob_olddie rs.l 1 +ob_oldrot rs.w 1 +ob_newrot rs.w 1 +ob_yvec rs.l 1 +ob_xvec rs.l 1 +ob_zvec rs.l 1 +ob_radsq rs.l 1 ;radius squared +ob_rad rs.w 1 +ob_delay rs.w 1 +ob_delay2 rs.w 0 +ob_bounce rs.w 1 +ob_hurtwait rs.w 1 + ; +ob_washit rs.l 1 ;flag for un-hit coll detect! +ob_window rs.l 1 ;pointer back to window! +ob_nxvec rs.w 0 ;normalized X vec +ob_lives rs.w 1 +ob_nzvec rs.w 0 ;nomralized z vec +ob_infra rs.w 1 +ob_thermo rs.w 1 +ob_invisible rs.w 1 +ob_hyper rs.w 1 +ob_update rs.w 1 ;update stats! +ob_mess rs.l 1 ;message +ob_messlen rs.w 1 +ob_messtimer rs.w 1 ;timer for messages +ob_palette rs.l 1 ;palette for window +ob_paltimer rs.w 1 ;timer before back to normal +ob_pixsize rs.w 1 +ob_pixsizeadd rs.w 1 +ob_telex rs.w 1 +ob_telez rs.w 1 +ob_telerot rs.w 1 +ob_chunks rs.l 1 + ; +ob_size rs.b 0 + + rsreset + ; + ;solid wall draw data + ; +vd_z rs.w 1 ;current Z +vd_pal rs.w 1 ;palette# (0...15) +vd_y rs.w 1 +vd_h rs.w 1 +vd_data rs.l 1 +vd_ystep rs.l 1 + ; +vd_size rs.b 0 + + rsreset + ; + ;palette file... + ; +pa_numcols rs.w 1 ;how many colours +pa_cols rs.w 256 ;the colours! + + rsreset + ; + ;anim file... + ; +an_rotshft rs.w 1 +an_frames rs.w 1 +an_maxw rs.w 1 +an_maxh rs.w 1 +an_pal rs.l 1 + ; +an_size rs.b 0 + + rsreset + ; + ;window + ; +wi_slice rs.l 1 ;slice window appears in! +wi_nslice rs.l 1 ;next slice to disp. +wi_x rs 1 +wi_y rs 1 +wi_w rs 1 ;how many chixels across +wi_h rs 1 ;how many down +wi_pw rs 1 ;width of 1 chixel +wi_ph rs 1 ;hite of 1 chixel + ; +wi_bw rs 1 ;bitmap width +wi_bh rs 1 ;bitmap height + ; +wi_bmapmem rs.l 1 +wi_copmem rs.l 1 +wi_bmap rs.l 1 +wi_cop rs.l 1 +wi_cop1 rs.l 1 +wi_cop2 rs.l 1 +wi_copmod rs.w 1 + ; +wi_strip rs.l 1 +wi_iff rs.l 1 ;show iff instead! +wi_pal rs.l 1 ;palette for IFF! + ; +wi_size rs.b 0 + +key macro + btst #\1&7,\1>>3(a0) + endm + +qkey macro + move.l rawtable(pc),a0 + key \1 + endm + +freemem macro + ; + ifne debugmem + lea .fmem\@,a0 + jsr freemem_ + bra .fmemskip\@ +.fmem\@ dc.b '\1',0 + even +.fmemskip\@ ; + elseif + jsr freemem_ + endc + ; + endm + +allocmem macro + ; + ifne debugmem + ; + lea .amem\@,a0 + jsr allocmem_ + bra .amemskip\@ +.amem\@ dc.b '\1',10,0 + even +.amemskip\@ ; + elseif + ; + jsr allocmem_ + ; + endc + ; + endm + +allocmem2 macro + ; + ifne debugmem + ; + lea .amem\@,a0 + jsr allocmem2_ + bra .amemskip\@ +.amem\@ dc.b '\1',10,0 + even +.amemskip\@ ; + elseif + ; + jsr allocmem2_ + ; + endc + ; + endm + +alloclist macro ;alloclist listname,maxitems,itemsize + ; + move.l \2,d0 + move.l \3,d1 + lea \1(pc),a2 + jsr k_alloclist + bra.s alskip\@ + ; +\1 dc.l 0 ;0 +\1_last dc.l 0 ;4 + dc.l 0 ;8 +\1_free dc.l 0 ;12 +alskip\@ ; + endm + +k_alloclist ;a2=address of 'first' pointer + ;d0=max items, d1=item size + ; + move.l a2,8(a2) ;clear out used list + lea 4(a2),a0 + clr.l (a0) + move.l a0,(a2) + movem.l d0-d1,-(a7) + mulu d1,d0 + move.l #$10001,d1 + allocmem alloclist + move.l d0,a0 + lea 12(a2),a2 + movem.l (a7)+,d0-d1 + subq #1,d0 +.loop move.l a0,(a2) + move.l a0,a2 + add d1,a0 + dbf d0,.loop + rts + +addnext macro + ; + ;addnext 'listname' + ;add after a5 + ;return eq if none available else a0 + ; + move.l \1_free,d0 + beq.s .anskip\@ + move.l d0,a0 + move.l (a0),\1_free + move.l (a5),a1 + move.l a1,(a0) + move.l a0,4(a1) + move.l a0,(a5) + move.l a5,4(a0) +.anskip\@ ; + endm + +addfirst macro + ; + ;addfirst 'listname' + ;return eq if none available else a0 + ; + move.l \1_free,d0 + beq.s .afskip\@ + move.l d0,a0 + move.l (a0),\1_free + move.l \1,a1 ;current first + move.l a1,(a0) + move.l a0,4(a1) + move.l a0,\1 + move.l #\1,4(a0) +.afskip\@ ; + endm + +addlast macro + ; + ;addlast 'listname' + ;return eq in none available else a0 + ; + move.l \1_free,d0 + beq.s .alskip\@ + move.l d0,a0 + move.l (a0),\1_free + ; + move.l \1_last+4,a1 ;current last + move.l a0,(a1) + move.l a1,4(a0) + move.l a0,\1_last+4 + move.l #\1_last,(a0) +.alskip\@ ; + endm + +killitem macro + ; + ;killitem listname + ;a0=item to kill, return a0=previous item. + ; + move.l (a0),a1 ;next of me! + move.l 4(a0),4(a1) + move.l 4(a0),a1 ;prev of me + move.l (a0),(a1) + move.l \1_free,(a0) + move.l a0,\1_free + move.l a1,a0 + endm + +clearlist macro + ; + ;clearlist listname + ; +.clloop\@ move.l \1,a0 + tst.l (a0) + beq .cldone\@ + killitem \1 + bra .clloop\@ +.cldone\@ ; + endm + +zerolist macro listname,size of item + ; + ;fill all list items with 0! + ; + clearlist \1 +.zlloop\@ addlast \1 + beq .zlskip\@ + lea 8(a0),a1 + moveq #0,d0 + move #(\2-8)/2-1,d1 +.zlloop2\@ move d0,(a1)+ + dbf d1,.zlloop2\@ + bra .zlloop\@ +.zlskip\@ clearlist \1 + ; + endm + +bwait macro + ; +.bwait\@ btst #6,$dff002 + beq.s .bwait2\@ + bra.s .bwait\@ +.bwait2\@ ; + endm + +printlong macro + move.l \1,-(a7) + jsr printlong_ + endm + +check macro + list +check set *-\1 + nolist + endm + +push macro + movem.l d2-d7/a2-a6,-(a7) + endm + +pull macro + movem.l (a7)+,d2-d7/a2-a6 + endm + +col macro + move #0,$dff106 + move \1,$dff180 + endm + +warn macro + move d0,-(a7) + move #-1,d0 +.wloop\@ col \1 + dbf d0,.wloop\@ + move (a7)+,d0 + endm + +tempfile ds.b 64 + +entrypoint +cli ; + move.l a0,a2 + ; + lea dosname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,dosbase + ; + move.l d0,a6 + jsr -60(a6) + move.l d0,outhand + ; + clr.l map_test + cmp.b #'@',(a2)+ + bne.s main + lea tempfile,a0 + move.l a0,map_test +.loop move.b (a2)+,(a0) + beq.s main + cmp.b #10,(a0)+ + bne.s .loop + clr.b -(a0) +main ; + jsr initmain + bsr bigfont + ; +.intro move.l medat(pc),a1 + move.l titlemed(pc),a0 + jsr 8(a1) ;start title music! + ; +.intro2 jsr dointro ;returns gametype + ; + cmp #3,gametype + bcs.s .play + move.l medat(pc),a1 + jsr 12(a1) + bra.s exittoos +.play ; + bsr initnewgame + tst gametype + bmi .intro2 + ; + bsr smallfont + tst twowins + beq.s .n2 + bsr swaphflags +.n2 bsr execscript_med +.wmf tst fadevol + bne.s .wmf + tst twowins + beq.s .n22 + bsr swaphflags +.n22 bsr bigfont + bra .intro + ; +exittoos bsr freeobjlist2 + move #$4000,$dff09a + move.l ciaa(pc),a0 + movem.l rawstuff(pc),d0-d1 + movem.l d0-d1,$64(a0) + move #$c000,$dff09a + jsr permit + jsr finitser + jsr finitsfx + jsr finitvbint + jsr finitdisplay + jsr freememlist + bsr undir + rts + +; ************* FAST SUBS ******************** + +fastsubs + +swaphflags movem.l floorflag(pc),d0-d1 + move.l d1,floorflag + move.l d0,floorflag2 + rts + +smallfont move #6,fontw + move #8,fonth + move.l smallfont_,font + rts + +bigfont move #8,fontw + move #10,fonth + move.l bigfont_,font + rts + +encodejoy ;a0=cntrl block to encode... + ;return d0 encoded + ; + ;bit: + ;0 = joyx -1 + ;1 = joyx 1 + ;2 = joyy -1 + ;3 = joyy 1 + ;4 = joyb true + ;5 = joys true + ; + moveq #0,d0 + ; + tst (a0) + beq.s .skipx + bpl.s .x1 + bset #0,d0 + bra.s .skipx +.x1 bset #1,d0 +.skipx tst 2(a0) + beq.s .skipy + bpl.s .y1 + bset #2,d0 + bra.s .skipy +.y1 bset #3,d0 +.skipy tst 4(a0) + beq.s .skipb + bset #4,d0 +.skipb tst 6(a0) + beq.s .skipf + bset #5,d0 +.skipf ; + rts + +decodejoy ; + ;d0.b = encoded byte... + ;a0 = block to fill + ; + ;0 = joyx -1 + ;1 = joyx 1 + ;2 = joyy -1 + ;3 = joyy 1 + ;4 = joyb true + ;5 = joys true + ; + clr (a0) + move d0,d1 + and #3,d1 + beq.s .skipx + cmp #1,d1 + bne.s .x1 + move #-1,(a0) + bra.s .skipx +.x1 move #1,(a0) +.skipx clr 2(a0) + move d0,d1 + and #12,d1 + beq.s .skipy + cmp #4,d1 + bne.s .y1 + move #-1,2(a0) + bra.s .skipy +.y1 move #1,2(a0) +.skipy btst #4,d0 + sne d1 + ext d1 + move d1,4(a0) + btst #5,d0 + sne d1 + ext d1 + move d1,6(a0) + rts + +sfxs ; +sfx0 ds.b fx_size +sfx1 ds.b fx_size +sfx2 ds.b fx_size +sfx3 ds.b fx_size + +sfxintserver0 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx0 + dc.l sfxint + +sfxintserver1 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx1 + dc.l sfxint + +sfxintserver2 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx2 + dc.l sfxint + +sfxintserver3 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx3 + dc.l sfxint + +initsfx push + move.l 4.w,a6 + ; + moveq #7,d0 + lea sfxintserver0,a1 + jsr -162(a6) ;setintvector + ; + moveq #8,d0 + lea sfxintserver1,a1 + jsr -162(a6) + ; + moveq #9,d0 + lea sfxintserver2,a1 + jsr -162(a6) + ; + moveq #10,d0 + lea sfxintserver3,a1 + jsr -162(a6) + ; + lea sfxs(pc),a1 + move #$80,d0 + moveq #1,d1 + moveq #0,d2 + moveq #3,d3 +.loop bsr .init + lea fx_size(a1),a1 + dbf d3,.loop + ; + pull + rts + ; +.init clr fx_status(a1) + move d0,fx_int(a1) + move d1,fx_dma(a1) + move d2,fx_offset(a1) + add d0,d0 + add d1,d1 + add #16,d2 + rts + +finitsfx push + move.l 4.w,a6 + ; + moveq #7,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #8,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #9,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #10,d0 + sub.l a1,a1 + jsr -162(a6) + ; + pull + rts + +waitquiet bsr vwait + lea sfxs(pc),a0 + moveq #3,d0 +.loop tst fx_status(a0) + bne.s waitquiet + lea fx_size(a0),a0 + dbf d0,.loop + rts + +playsfx ;sfx file in a0, vol in d0, priority in d1 + ; + move #$4000,$dff09a + lea sfxs(pc),a1 + moveq #3,d2 +.loop tst fx_status(a1) + beq.s makesfx + lea fx_size(a1),a1 + dbf d2,.loop + ; + ;OK, none free...check priorities + ; + lea sfxs(pc),a1 + moveq #3,d2 +.loop2 cmp fx_priority(a1),d1 + bgt.s queuesfx + lea fx_size(a1),a1 + dbf d2,.loop2 + ; + ;no-can-do! + ; + move #$c000,$dff09a + rts + ; +queuesfx ;OK, turn off other and play US! + ; + move #1,fx_status(a1) + move d0,fx_vol(a1) + move d1,fx_priority(a1) + move.l a0,fx_sfx(a1) ;play me next! + ; + bsr sfxoff + ; + move #$c000,$dff09a + rts + +sfxoff lea $dff0a0,a2 + add fx_offset(a1),a2 + move.l chipzero(pc),(a2) + move #1,4(a2) ;len + move #0,8(a2) ;vol + move fx_int(a1),$dff09a + move fx_dma(a1),$dff096 + rts + +makesfx ;OK, play this SFX NOW! + ; + move d1,fx_priority(a1) + move d0,fx_vol(a1) + bsr playsfxnow + move #$c000,$dff09a + rts + +playsfxnow move #-2,fx_status(a1) + ; + lea $dff0a0,a2 + add fx_offset(a1),a2 + move (a0)+,6(a2) ;period + move (a0)+,4(a2) ;len + move fx_vol(a1),8(a2) ;vol + move.l a0,(a2) ;data + ; + move fx_dma(a1),d0 ;dma bits + or #$8000,d0 + move fx_int(a1),d1 ;int bits + move d1,d2 + or #$8000,d1 + ; + move d0,$dff096 ;dma on! + move d1,$dff09a ;int en + move d2,$dff09c ;intreq clr + ; + rts + +sfxint ;interupt for sfx! + ; + tst fx_status(a1) + bge.s .skip + addq #1,fx_status(a1) + blt.s .skip + ; + move.l a2,-(a7) + bsr sfxoff + move.l (a7)+,a2 + ; +.skip move fx_int(a1),$dff09c + moveq #0,d0 + rts + +dogamemenu ; + move #$4000,$dff09a + ; + st paused + move framecnt(pc),-(a7) + move linked(pc),-(a7) + clr linked + ; + move #$c000,$dff09a + ; + move.l player1,a5 + move.l ob_palette(a5),-(a7) + move.l #palettesw,ob_palette(a5) + move.l ob_window(a5),a2 + bsr plotwbmap + ; + tst twowins + beq .p1 + ; + move.l player2,a5 + move.l ob_palette(a5),-(a7) + move.l #palettesw,ob_palette(a5) + move.l ob_window(a5),a2 + bsr plotwbmap +.p1 ; + bsr drawall2 + ; + move.l player1,a5 + lea gamemenu,a4 + move.l ob_window(a5),a6 + jsr initmenu + ; +.loop bsr selmenu + beq .done + ; + subq #1,d0 + bne .notpsize + bsr newpsize + bra .loop + ; +.notpsize subq #1,d0 + bne .notwsize + bsr newwsize + bra .loop + ; +.notwsize subq #1,d0 + bne .notlwin + bsr largewin + bra .loop + ; +.notlwin subq #1,d0 + bne .notfloor + ; + addq #1,floorflag + cmp #2,floorflag + bne.s .fskip + move #-1,floorflag +.fskip bsr refresh + bra .loop + ; +.notfloor subq #1,d0 + bne .notroof + ; + addq #1,roofflag + cmp #2,roofflag + bne.s .rskip + move #-1,roofflag +.rskip bsr refresh + bra .loop +.notroof ; + move #1,finished + ; +.done bsr finitmenu + ; + tst twowins + beq.s .p12 + ; + move.l player2,a5 + move.l (a7)+,ob_palette(a5) + move.l ob_window(a5),a2 + bsr plotwbmap + bsr initstats + bsr showstats +.p12 ; + move.l player1,a5 + move.l (a7)+,ob_palette(a5) + move.l ob_window(a5),a2 + bsr plotwbmap + bsr initstats + bsr showstats + ; + move #$4000,$dff09a + ; + move (a7)+,linked + move (a7)+,framecnt + clr paused + ; + move #$c000,$dff09a + ; + rts + +freewindows lea window1,a0 + bsr freewindow + tst twowins + beq.s .p1 + lea window2,a0 + bsr freewindow +.p1 rts + +largewin move.l player1,a5 + bsr large + tst twowins + beq refresh + move.l player2,a5 + bsr large + bra refresh + +large move.l ob_window(a5),a6 + move wi_pw(a6),d2 + ; + cmp #2,d2 + beq .lhr + ; + ;large lo-res window! + ; +.lores move #324,d0 + move #240,d1 + bra thinkwin + ; +.lhr bsr swappsize + bra.s .lores + ; + move #180,d0 + move #240,d1 + bra thinkwin + +newwsize ;window size stuff! + ; + move.l player1,a5 + bsr swapwsize + tst twowins + beq refresh + move.l player2,a5 + bsr swapwsize + bra refresh + +swapwsize ;increment window size! + ; + move.l ob_window(a5),a6 + movem wi_w(a6),d0-d1 ;w,h + move wi_pw(a6),d2 + mulu d2,d0 + mulu d2,d1 + cmp #2,d2 + beq .hr + ; + ;lo-res! + ; + cmp #318,d0 + bcs.s .inc + move #132,d0 + move d0,d1 + bra thinkwin +.inc add #24,d0 + move d0,d1 + cmp #240,d1 + bls thinkwin + move #240,d1 + bra thinkwin + ; +.hr cmp #180,d0 + bcs.s .inc2 + tst twowins + bne .min + add #18,d1 + cmp #240,d1 + bls thinkwin +.min move #132,d0 + move d0,d1 + bra thinkwin +.inc2 add #24,d0 + move d0,d1 + ; +thinkwin move #180,d3 ;max width! + cmp #2,d2 + beq .gmax + move #318,d3 +.gmax cmp d3,d0 + bls .nm + move d3,d0 +.nm ; + cmp #240,d1 + bls .n240 + move #240,d1 +.n240 tst twowins + beq.s .ggt + move #120,d1 +.ggt ; + move #160,d3 + move d0,d4 + lsr #1,d4 + sub d4,d3 ;wi_x + move d3,wi_x(a6) + ; + ext.l d0 + divu d2,d0 + move d0,wi_w(a6) + ; + tst twowins + bne.s .skip3 + ; + move #cy,d3 + move d1,d4 + lsr #1,d4 + sub d4,d3 + move d3,wi_y(a6) + ; +.skip3 ext.l d1 + divu d2,d1 + move d1,wi_h(a6) + ; + rts + +newpsize ;toggle pixel size between 2 and 3 + ; + ;copy windows to temp so we can free 'em up later + ; + move.l player1,a5 + bsr swappsize + tst twowins + beq refresh + move.l player2,a5 + bsr swappsize + ; +refresh bsr dispoff + bsr finitmenu + ; + bsr freewindows + bsr putwindow + ; + lea window1,a0 + bsr makewindow + lea window1,a0 + bsr showwindow + ; + tst twowins + beq.s .p1 + ; + lea window2,a0 + bsr makewindow + lea window2,a0 + bsr showwindow + ; +.p1 bsr calcbpos + ; + lea gamemenu,a4 + lea window1,a6 + jsr initmenu2 + ; + bsr drawall2 + bsr dispon + rts + +swappsize move.l ob_window(a5),a6 + movem wi_w(a6),d0-d1 ;w,h + move wi_pw(a6),d2 + mulu d2,d0 + mulu d2,d1 + eor #1,d2 ;2,3... + move d2,wi_pw(a6) + move d2,wi_ph(a6) + ; + bra thinkwin + +drawall2 bsr drawall + st showflag +.wait tst showflag + bne.s .wait + ; + bsr drawall + st showflag +.wait2 tst showflag + bne.s .wait2 + ; + bra vwait + +drawall move doneflag(pc),d0 + beq.s drawall ;wait for updated! + clr doneflag + ; + move.l memory(pc),memat + move.l player1(pc),a5 + bsr calcscene + move.l player1(pc),a5 + bsr blitscene + move.l player1(pc),a5 + bsr drawscene + ; + move twowins(pc),d0 + beq.s .rts + ; + move.l memory(pc),memat + move.l player2(pc),a5 + bsr calcscene + move.l player2(pc),a5 + bsr blitscene + move.l player2(pc),a5 + bsr drawscene + ; +.rts rts + +resetplayer st ob_update(a5) + clr ob_thermo(a5) + clr ob_infra(a5) + clr ob_invisible(a5) + clr ob_messtimer(a5) + clr ob_pixsize(a5) + clr ob_pixsizeadd(a5) + clr ob_bouncecnt(a5) + move.l #palettes,ob_palette(a5) + rts + +message ;print up a message...player in a5 + ; + move.l (a7),a0 ;return address=message! + move.l a0,ob_mess(a5) + ; + moveq #-1,d0 +.loop addq #1,d0 + tst.b (a0)+ + bne.s .loop + ; + move d0,ob_messlen(a5) + move #-127,ob_messtimer(a5) + ; + move.l a0,d0 + addq.l #1,d0 + and #$fffe,d0 + move.l d0,(a7) + rts + +pdelay dc 0 ;non zero=wait between prints + +printmess ;a5=object + ; + move.l ob_window(a5),a6 + move.l ob_mess(a5),a4 + move ob_messlen(a5),d0 + move wi_bh(a6),d6 + lsr #2,d6 ;Y + ; +printmess2 ;a6=window, a4=message, d0=length of message, d6=Y + ; + move fontw(pc),d2 + lsr #1,d2 + mulu d2,d0 + move #160,d7 + sub d0,d7 ;X + ; +.loop2 move.b (a4)+,d2 + beq .done + cmp.b #' ',d2 + beq.s .spc + cmp.b #'0',d2 + bcs.s .nnum + cmp.b #'9',d2 + bhi.s .nnum + sub.b #'0',d2 + ext d2 + bra.s .here +.nnum cmp.b #'!',d2 + bne.s .notex + moveq #36,d2 + bra.s .here +.notex cmp.b #'.',d2 + bne.s .notfs + moveq #37,d2 + bra.s .here +.notfs cmp.b #':',d2 + bne.s .notcol + moveq #38,d2 + bra.s .here +.notcol cmp.b #127,d2 + bne.s .notcurs + moveq #39,d2 + bra.s .here +.notcurs and #31,d2 + add #9,d2 +.here move.l font(pc),a0 + move.l wi_bmap(a6),a1 + move d7,d0 + move d6,d1 + bsr blit + ; + move pdelay(pc),d2 + subq #1,d2 + bmi.s .spc + ; +.pdloop bsr vwait + bsr checkany + beq.s .none + move #-1,pdelay + moveq #0,d2 +.none dbf d2,.pdloop + ; +.spc add fontw(pc),d7 + bra .loop2 +.done ; + rts + +initstats ; + ;health... + move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #2,d1 + moveq #39,d2 + bsr blit + ; + ;weapon... + move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #12,d1 + moveq #44,d2 + bra blit + +putstrip ;a0=window + ; + move.l wi_bmap(a0),a1 + move wi_bh(a0),d0 + lsr #2,d0 + mulu #7*40,d0 + add.l d0,a1 ;dest + move.l wi_strip(a0),a0 ;src + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l #$9f00000,$dff040 + move.l #-1,$dff044 + move #0,$dff064 + move #0,$dff066 + move.l a0,$dff050 + move.l a1,$dff054 + move #(7*7)<<6+20,$dff058 + rts + +loff dc 0 + +showstats ;a5=player + ; + ;ok, hitpoints... + ; + ;lagtime... + move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #22,d1 + move lagtime(pc),d2 + bsr blit + ; + move.l ob_window(a5),a0 + moveq #44,d5 + add wi_x(a0),d5 + moveq #40,d4 + moveq #0,d6 + move ob_hitpoints(a5),d7 + ; +.hploop cmp d7,d6 + bcs.s .hpskip + cmp #25,d7 + bcc.s .hpdone + moveq #41,d4 + moveq #25,d7 + bra.s .hploop + ; +.hpskip move.l font(pc),a0 + move.l ob_window(a5),a1 + move.l wi_bmap(a1),a1 + move d5,d0 + moveq #2,d1 + move d4,d2 + bsr blit + addq #2,d5 + addq #1,d6 + bra.s .hploop +.hpdone ; + ;show lives remaining... + ; + move.l ob_window(a5),a0 + move wi_bw(a0),d5 + add wi_x(a0),d5 + move ob_lives(a5),d7 + beq.s .lvdone + subq #1,d7 +.lvloop ; + move.l font(pc),a0 + move.l ob_window(a5),a1 + move.l wi_bmap(a1),a1 + subq #8,d5 + move d5,d0 + moveq #2,d1 + moveq #43,d2 + bsr blit + dbf d7,.lvloop +.lvdone ; + ;show weapons! + ; + move.l ob_window(a5),a0 + moveq #44,d5 + add wi_x(a0),d5 + move ob_weapon(a5),d6 + moveq #45,d4 + moveq #4,d7 + ; +.wploop btst d7,d6 + beq.s .nowp + ; + move.l font(pc),a0 + move.l ob_window(a5),a1 + move.l wi_bmap(a1),a1 + move d5,d0 + moveq #12,d1 + move d4,d2 + bsr blit + ; +.nowp addq #1,d4 + add #10,d5 + dbf d7,.wploop + ; + rts + +blit ;a0=shapetable to blit, a1=bitmap, d0=X, d1=Y, d2=char + ; + add.l 4(a0,d2*4),a0 + ; + mulu #280,d1 + add.l d1,a1 + move d0,d2 + asr #3,d2 + add d2,a1 ;dest! + move.l a0,a2 + add.l (a0),a2 + lea 8(a0),a3 + addq #4,a0 + and #15,d0 + ror #4,d0 + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l a2,$dff050 + move.l a3,$dff04c + move.l a1,$dff048 + move.l a1,$dff054 + ; + move d0,$dff042 + or blitmode(pc),d0 + move d0,$dff040 + move.l #$ffff0000,$dff044 + moveq #-2,d0 + move d0,$dff064 + move d0,$dff062 + moveq #38,d0 + sub (a0)+,d0 + move d0,$dff060 + move d0,$dff066 + move (a0)+,$dff058 + ; + rts + +blitmode dc $fca + +pixsize dc 0 ;pixel size...at least 2! + +pixelate ;pixel out the coplist...d0=pixelsize + ; + move d0,pixsize + move d0,d1 + ; + ;pixel out vertically, then horizontally + ; + move.l cop(pc),a0 + lea coloffs(pc),a1 + moveq #0,d2 ;x + move d1,d6 + lsr #1,d6 +.forx ; + move.l a0,a3 + lea 0(a1,d2*4),a2 + add.l (a2),a3 + ; + move d2,d5 + add d6,d5 + cmp width(pc),d5 + ble.s .xok + move width(pc),d5 +.xok sub d2,d5 + ble .done + subq #1,d5 + ; +.loop2 moveq #0,d3 + move.l a3,a4 + move.l a0,a5 + add.l (a2)+,a5 + move d1,d7 + lsr #1,d7 ;first Y add +.fory ; + move (a4),d0 ;start column! + move d3,d4 + add d7,d4 + cmp hite(pc),d4 + ble.s .yok + move hite(pc),d4 +.yok sub d3,d4 + ble .nextx + subq #1,d4 + ; +.loop move d0,(a5) + add copmod(pc),a4 + add copmod(pc),a5 + ; + dbf d4,.loop + ; +.nexty add d7,d3 + move d1,d7 + bra.s .fory + ; +.nextx dbf d5,.loop2 + ; + add d6,d2 + move d1,d6 + bra.s .forx + ; +.done rts + +makeqstrip ; + ;do a simple roof/floor strip for blitter to wack in... + ; + cmp #$100,con0poke + bne.s .doit + rts + ; +.doit move.l qstrip(pc),a0 + move.l darktable(pc),a1 + move.l palette(pc),a2 + move.l qstripbot(pc),a4 + moveq #0,d2 + ; + move floorflag(pc),d0 + bne.s .fdone + ; + move camy(pc),d0 + neg d0 + ext.l d0 + lsl.l #focshft,d0 + ; + move.b qcols+1(pc),d2 + move.l qstripbot(pc),a4 + move maxy(pc),d1 + ; +.floop subq #1,d1 + beq.s .fdone + ; + move.l d0,d3 + divs d1,d3 + cmp #maxz,d3 + bcc .fdone + ; + move 0(a1,d3*2),d3 ;darkness (0...15) + move.l 0(a2,d3*4),a3 ;pal to use + move 0(a3,d2*2),-(a4) ;colour! + ; + bra.s .floop + ; +.fdone move roofflag(pc),d0 + bne.s .rdone + ; + move #-256,d0 + sub camy(pc),d0 + ext.l d0 + lsl.l #focshft,d0 ;cam Y + ; + move.b qcols(pc),d2 + ; + move miny(pc),d1 ;SY + ; +.rloop beq.s .rdone + ; + move.l d0,d3 + divs d1,d3 + cmp #maxz,d3 + bcc .rdone + ; + move 0(a1,d3*2),d3 ;darkness (0...15) + move.l 0(a2,d3*4),a3 ;pal to use + move 0(a3,d2*2),(a0)+ ;colour! + ; + addq #1,d1 + bra.s .rloop +.rdone ; + moveq #0,d0 +.loop cmp.l a4,a0 + bcc.s .done + move.l d0,(a0)+ + bra.s .loop + ; +.done rts + +flatcam dc.l 0 +flatyadd dc 0 +flatyadd2 dc 0 + +flat ; + ;do flat above/below panel! + ; + ;d0=Y pos of flat + ;d1=Screen Y add + ;d7=first screen Y (miny or maxy-1) + ; + ;a0=panel to draw on! + ; + ext.l d0 + lsl.l #focshft,d0 + move.l d0,flatcam + ; + move d1,flatyadd + muls copmod(pc),d1 + move d1,flatyadd2 + ; + move d7,d0 + add midy(pc),d0 + mulu copmod(pc),d0 + add.l cop(pc),d0 + add.l coloffs(pc),d0 + move.l d0,a2 +.vloop ; + ;find Z on this scanline... + ; + tst d7 + beq .rts + move.l flatcam(pc),d6 + divs d7,d6 ;d6.w = Z + cmp #maxz,d6 + bcc .rts + ; + move.l darktable(pc),a5 + move 0(a5,d6*2),d5 + move.l palette(pc),a5 + move.l 0(a5,d5*4),a5 + ; + ;Find leftmost X... + ; + move minx(pc),d5 + muls d6,d5 + asr.l #focshft,d5 + ; + move maxx(pc),d4 + muls d6,d4 + asr.l #focshft,d4 + ; + ;rotate X1,Z around camera... + ; + move d5,d0 + move d6,d1 + ; + move d0,d2 + move d1,d3 + ; + muls icm1(pc),d0 + add.l d0,d0 + muls icm2(pc),d3 + add.l d3,d3 + add.l d3,d0 + ; + muls icm3(pc),d2 + add.l d2,d2 + muls icm4(pc),d1 + add.l d1,d1 + add.l d2,d1 + ; + ;d0,d1.q = rotated x1,z + ; + ;rotate X2,Z around camera... + ; + move d4,d2 + move d6,d3 + ; + muls icm1(pc),d4 + add.l d4,d4 + muls icm2(pc),d3 + add.l d3,d3 + add.l d3,d4 + ; + muls icm3(pc),d2 + add.l d2,d2 + muls icm4(pc),d6 + add.l d6,d6 + add.l d2,d6 + ; + ;d4,d6.q = rotated x2,z + ; + move width(pc),d5 + ext.l d5 + sub.l d0,d4 ;Xadd + divs.l d5,d4 + sub.l d1,d6 ;Zadd + divs.l d5,d6 + ; + ;d0,d1.q=x,z + ;d4,d6.q=xadd,zadd + ; + ;move.l d4,d2 + ;asr.l #1,d2 + ;add.l d2,d0 + ; + ;move.l d6,d2 + ;asr.l #1,d2 + ;add.l d2,d1 + ; + swap d0 + add camx(pc),d0 + swap d1 + add camz(pc),d1 + swap d4 + swap d6 + ; + move d7,-(a7) + moveq #127,d7 + moveq #0,d2 + moveq #0,d3 + ; + move.l a2,a3 + ; + move wdiv32(pc),-(a7) + ; +.hloop2 moveq #31,d5 + ; +.hloop tst (a3) ;check destination! + bne.s .skip + ; + and d7,d0 + and d7,d1 + move d0,d2 + lsl #7,d2 + add d2,d1 + add.l d4,d0 + move.b 0(a0,d1),d3 + addx d2,d0 + add.l d6,d1 + move 0(a5,d3*2),(a3) + addx d2,d1 + addq #4,a3 + dbf d5,.hloop + bra.s .hhh + ; +.skip add.l d4,d0 + addx d2,d0 + add.l d6,d1 + addx d2,d1 + addq #4,a3 + dbf d5,.hloop + ; +.hhh addq #4,a3 + subq #1,(a7) + bgt.s .hloop2 + bne.s .kl + ; + move wrem32(pc),d5 + bpl.s .hloop + ; +.kl move.l (a7)+,d7 + add flatyadd(pc),d7 + add flatyadd2(pc),a2 + bra .vloop + ; +.rts rts + +doanims move.l map_anim(pc),a0 + lea textures,a1 + ; +.loop move (a0)+,d0 ;how many frames + beq.s .done + movem (a0)+,d1-d2 ;first, delay + subq #1,(a0)+ + bgt.s .loop + move d2,-2(a0) + lea 0(a1,d1*4),a2 + ; + ;do the anim! + ; + subq #2,d0 + move.l (a2),d2 +.loop2 move.l 4(a2),(a2)+ + dbf d0,.loop2 + move.l d2,(a2) + bra.s .loop + ; +.done rts + +dorots ; + move.l camrots2(pc),a6 + lea rotpolys(pc),a5 ;header! + ; +rotloop move.l (a5),a5 + tst.l (a5) + beq .done + move rp_speed(a5),d0 + beq.s rotloop + ; + add d0,rp_rot(a5) + move rp_rot(a5),d0 + ; + move.l rp_first(a5),a2 ;first + move rp_num(a5),d5 + subq #1,d5 + move d5,d4 + lsl #5,d4 + lea 0(a2,d4),a1 ;previous + lea rp_lx(a5),a3 + ; + btst #0,rp_flags+1(a5) + bne.s morph + ; +.rot movem rp_cx(a5),d6-d7 ;centre x,z + and #1023,d0 + lea 0(a6,d0*8),a4 ;rotation matrix. + ; +.loop bsr rotter + add d6,d0 + add d7,d1 + movem d0-d1,zo_lx(a2) + movem d0-d1,zo_rx(a1) + bsr rotter + movem d0-d1,zo_na(a2) + exg d0,d1 + neg d0 + movem d0-d1,zo_a(a2) + move.l a2,a1 + lea 32(a2),a2 + dbf d5,.loop + ; + bra rotloop + ; +.done rts + ; +morph tst d0 + bgt.s .dp + moveq #0,d0 +.neg neg rp_speed(a5) + bra.s .skip2 +.dp cmp #$4000,d0 + blt.s .skip + move #$4000,d0 + btst #1,rp_flags+1(a5) + bne.s .neg + clr rp_speed(a5) +.skip2 move d0,rp_rot(a5) +.skip ; + move d0,d4 + movem.l a2/d5,-(a7) ;for calculating norms! + ; +.loop movem (a3)+,d0-d3 + muls d4,d0 + lsl.l #2,d0 + swap d0 + add d2,d0 + muls d4,d1 + lsl.l #2,d1 + swap d1 + add d3,d1 + movem d0-d1,zo_lx(a2) + movem d0-d1,zo_rx(a1) + move.l a2,a1 + lea 32(a2),a2 + dbf d5,.loop + ; + movem.l (a7)+,a2/d5 + ; +.loop2 move zo_rx(a2),d0 + sub zo_lx(a2),d0 + move zo_rz(a2),d1 + sub zo_lz(a2),d1 + bsr calcnormvec + movem d0-d1,zo_na(a2) + exg d0,d1 + neg d0 + movem d0-d1,zo_a(a2) + lea 32(a2),a2 + dbf d5,.loop2 + ; + bra rotloop + +calcnormvec ;d0,d1 = vector...normalize! + ; + ;OK, find vector length! + ; + move d0,d2 + muls d2,d2 + move d1,d3 + muls d3,d3 + add.l d3,d2 + ; + ;OK, sqr of d2.l! + ; + move.l #$10000,d3 + ; +.fitit cmp.l #16384,d2 ;fits? + bcs.s .ok + asr.l #1,d2 + mulu.l #92681,d4:d3 ;mult by sqr(2) + move d4,d3 + swap d3 + bra.s .fitit + ; +.ok ;OK to look up, but multiply the result.w by d3.q + ; + move.l sqr(pc),a0 + and #$fffe,d2 + movem 0(a0,d2),d2 ;sqr.l! + mulu.l d3,d2 + swap d2 ;length.w + ; + ;length should be >= both abs(xvec) AND abs(zvec) + ; + move d0,d3 + bpl.s .xp + neg d3 +.xp move d1,d4 + bpl.s .zp + neg d4 +.zp ; + cmp d4,d3 + bcc.s .bg + exg d3,d4 +.bg ; + cmp d3,d2 + bcc.s .lo + move d3,d2 +.lo ; + ext.l d2 + ; + swap d0 + clr d0 + divs.l d2,d0 + muls.l #32766,d0 + swap d0 + ; + swap d1 + clr d1 + divs.l d2,d1 + muls.l #32766,d1 + swap d1 + rts + +rotter movem (a3)+,d0-d1 ;this x,z + move d0,d2 + move d1,d3 + ; + muls (a4),d0 + muls 2(a4),d3 + add.l d3,d0 + add.l d0,d0 + swap d0 ;new x! + ; + muls 4(a4),d2 + muls 6(a4),d1 + add.l d2,d1 + add.l d1,d1 + swap d1 + ; + rts + +dodoors lea doors(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + move.l do_poly(a5),a0 + move do_fracadd(a5),d0 + add d0,do_frac(a5) + move do_frac(a5),d0 + move d0,d1 + add d1,d1 + move d1,zo_open(a0) ;copy frac + ; + move do_rx(a5),d1 + sub do_lx(a5),d1 ;width + move d1,d2 + muls d0,d2 + lsl.l #2,d2 + swap d2 + move do_lx(a5),d3 + sub d2,d3 + move d3,zo_lx(a0) + add d1,d3 + move d3,zo_rx(a0) + ; + move do_rz(a5),d1 + sub do_lz(a5),d1 + move d1,d2 + muls d0,d2 + lsl.l #2,d2 + swap d2 + move do_lz(a5),d3 + sub d2,d3 + move d3,zo_lz(a0) + add d1,d3 + move d3,zo_rz(a0) + ; + tst d0 + beq.s .kill + cmp #$4000,d0 + bne.s .loop + ; +.kill move.l a5,a0 + killitem doors + move.l a0,a5 + bra .loop + ; +.done rts + +doorsfxflag dc 0 + +execevent ;d0=event number to execute...1,2... + ; + sf doorsfxflag + move.l map_map(pc),a6 + move.l map_events(pc),a0 + add.l 0(a0,d0*4),a6 + ; +exec_loop move (a6)+,d0 + beq.s .rts + subq #1,d0 + beq exec_addobj ;1 - add an object (alien etc) + subq #1,d0 + beq exec_opendoor ;2 - open a door + subq #1,d0 + beq exec_teleport ;3 - teleport + subq #1,d0 + beq exec_loadobjs ;4 - load objects + subq #1,d0 + beq exec_changetxt ;5 - change texture + subq #1,d0 + beq exec_rotpolys ;6 - start polygons rotating! + ; + warn #$f0f + ; +.rts tst doorsfxflag + beq.s .nodoor + clr doorsfxflag + move.l doorsfx(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx +.nodoor rts + +exec_changetxt ; + move (a6)+,d0 ;zone# + move.l map_poly(pc),a1 + lsl #5,d0 + lea 0(a1,d0),a1 ;polygon to change + ; + move (a6)+,d0 ;new texture + move.b d0,zo_t(a1) + bra exec_loop + +exec_opendoor st doorsfxflag + addlast doors ;a0=new door + ; + move (a6)+,d0 ;door # + move.l map_poly(pc),a1 + lsl #5,d0 + lea 0(a1,d0),a1 ;polygon to open! + ; + ;calc lx add, lz add, rx add, rz add + ; + move.l a1,do_poly(a0) + move.l zo_lx(a1),do_lx(a0) + move.l zo_rx(a1),do_rx(a0) + clr do_frac(a0) + move #$100,do_fracadd(a0) + bra exec_loop + +exec_teleport move.l eventobj(pc),a0 + ; + move (a6)+,ob_telex(a0) + addq #2,a6 + move (a6)+,ob_telez(a0) + move (a6)+,ob_telerot(a0) + ; + tst finished2 + bne exec_loop + ; + move #2,ob_pixsizeadd(a0) + bsr dotelesfx + bra exec_loop + +dotelesfx move.l telesfx(pc),a0 + moveq #64,d0 + moveq #10,d1 + bra playsfx + +exec_loadobjs ; +.loop move (a6)+,d0 + bmi .done + bsr loadanobj + bra.s .loop +.done ; + bra exec_loop + +loadanobj ;d0=object#...sys must be permitted + ; + lea objinfo,a2 + mulu #objinfof-objinfo,d0 + move.l _ob_shape-objinfo(a2,d0),a2 + lea 8(a2),a3 ;filename + ; + tst.l (a2) + bne.s .skip + move.l a3,a0 + moveq #1,d1 + bsr loadfile + move.l d0,(a2) + beq.s .skip + move.l d0,a0 + bsr remapanim +.skip ; + tst.l 4(a2) + bne.s .rts + move.l a3,a0 +.loop tst.b (a3)+ + bne.s .loop + move.b #'2',-(a3) + moveq #1,d1 + bsr loadfile + clr.b (a3) + move.l d0,4(a2) + beq.s .rts + move.l d0,a0 + bsr remapanim + ; +.rts rts + +exec_rotpolys ; + ;could also be morphpolys depending on bit 0 of flags! + ; + addlast rotpolys + bne.s .ok + addq #8,a6 + bra exec_loop + ; +.ok st doorsfxflag + movem (a6)+,d0-d3 ;polynum,count,speed,flags + ; + clr rp_rot(a0) + move d1,rp_num(a0) + move d2,rp_speed(a0) + move d3,rp_flags(a0) + move d1,d5 + subq #1,d5 + move.l map_poly(pc),a2 ;polygons! + lsl #5,d0 + add d0,a2 + move.l a2,rp_first(a0) + ; + btst #0,d3 + beq .rot + ; + ;OK, prepare for morph + ; + lsl #5,d1 + lea 0(a2,d1),a3 + lea rp_vx(a0),a1 + ; +.loop movem zo_lx(a3),d0-d1 + movem zo_lx(a2),d2-d3 + sub d2,d0 + sub d3,d1 + movem d0-d3,(a1) + addq #8,a1 + ; + lea 32(a2),a2 + lea 32(a3),a3 + dbf d5,.loop + ; + bra exec_loop + ; +.rot ;First, calc centre X,Z into d6,d7 + ; + moveq #0,d6 + moveq #0,d7 + move.l a2,a1 + ; +.loop0 movem zo_lx(a1),d0/d2 + add.l d0,d6 + add.l d2,d7 + lea 32(a1),a1 + dbf d5,.loop0 + ; + divu d1,d6 + divu d1,d7 + movem d6-d7,rp_cx(a0) + ; + lea rp_lx(a0),a1 + subq #1,d1 + ; +.loop2 movem zo_lx(a2),d0/d2 + sub d6,d0 + move d0,(a1)+ + sub d7,d2 + move d2,(a1)+ + move.l zo_na(a2),(a1)+ + ; + lea 32(a2),a2 + dbf d1,.loop2 + ; + bra exec_loop + +exec_addobj clr.l dummy + move (a6)+,d0 ;monster type + lea objinfo,a2 + mulu #objinfof-objinfo,d0 + add.l d0,a2 + move.l (a2)+,a3 + tst.l (a3) + beq.s .ok +.no addq #8,a6 + bra exec_loop +.ok cmp #2,-2(a6) ;player? + bcc.s .notp + addfirst objects + bra.s .bum +.notp addlast objects +.bum beq.s .no + move.l a0,a5 + ; + move.l a5,(a3) + ; + move (a6)+,ob_x(a5) + move (a6)+,ob_y(a5) + move (a6)+,ob_z(a5) + move (a6)+,ob_rot(a5) + ; + lea ob_info(a5),a3 + move #(objinfof-objinfo-4)>>1-1,d0 +.loop move (a2)+,(a3)+ + dbf d0,.loop + ; + tst ob_blood(a5) ;hi bit of blood=1=invisible! + smi d0 + ext d0 + move d0,ob_invisible(a5) + ; + bsr calcvecs + movem.l d4-d5,ob_xvec(a5) + ; + move.l ob_shape(a5),a0 + move.l 4(a0),ob_chunks(a5) + move.l (a0),a0 + move.l a0,ob_shape(a5) + ; + move an_maxw(a0),d0 + move d0,ob_rad(a5) + mulu d0,d0 + move.l d0,ob_radsq(a5) + ; + clr.l ob_washit(a5) + ; + bsr rnddelay + ; + bra exec_loop + +rnddelay move ob_range(a5),d0 + bsr rndn + add ob_base(a5),d0 + move d0,ob_delay(a5) + ; + rts + +seedrnd ;seed number in d0.w + ; + moveq #54,d1 + lea rndtable(pc),a0 + ; +.loop move d0,(a0)+ + mulu #$1efd,d0 + add #$dff,d0 + dbf d1,.loop + ; + move.l a0,k_index + move.l #rndtable+48,j_index + rts + +rndw ;return rnd number 0...65535 if d0.w + ; + movem.l a0/a1,-(a7) + lea rndtable(pc),a1 + move.l j_index(pc),a0 + move -(a0),d0 + cmp.l a0,a1 + bne.s .skip + lea rndtable+110(pc),a0 +.skip move.l a0,j_index + move.l k_index(pc),a0 + add -(a0),d0 + move d0,(a0) + cmp.l a0,a1 + bne.s .skip2 + lea rndtable+110(pc),a0 +.skip2 move.l a0,k_index + movem.l (a7)+,a0/a1 + rts + +savernd lea rndtable(pc),a0 + lea rndback(pc),a1 + moveq #(rndtablef-rndtable)/2-1,d0 +.loop move (a0)+,(a1)+ + dbf d0,.loop + rts + +loadrnd lea rndback(pc),a0 + lea rndtable(pc),a1 + moveq #(rndtablef-rndtable)/2-1,d0 +.loop move (a0)+,(a1)+ + dbf d0,.loop + rts + +rndtable ds.w 55 +k_index dc.l 0 +j_index dc.l 0 +rndtablef + +rndback ds.b rndtablef-rndtable + +rndl bsr rndw + move d0,d1 + bsr rndw + swap d0 + move d1,d0 + rts + +rndn move d0,d1 + bsr rndw + mulu d1,d0 + swap d0 + rts + +calcangle2 ;angle of camera to object in a5 + ; + move camx(pc),d0 + sub ob_x(a5),d0 + move camz(pc),d1 + sub ob_z(a5),d1 + bra.s calcangle_ + +calcangle ;angle of object a5 to object a0... + ; + move ob_x(a0),d0 + sub ob_x(a5),d0 + move ob_z(a0),d1 + sub ob_z(a5),d1 + ; +calcangle_ ;d0.w=x d1.w=y (dest-src)! + ; + moveq #0,d2 + tst d1 + bpl.s .hpos + moveq #16,d2 + neg d1 +.hpos tst d0 + bpl.s .wpos + eor #8,d2 + neg d0 +.wpos cmp d1,d0 + bmi.s .notsteep + bne.s .neq + move #$2000,d1 + bra.s .flow +.neq eor #4,d2 + exg d1,d0 +.notsteep tst d1 + bne.s .noflow + moveq #0,d1 + bra.s .flow +.noflow ext.l d0 + swap d0 + divu d1,d0 + lsr #6,d0 + and #1022,d0 + move .arc(pc,d0),d1 +.flow move.l .oct(pc,d2),d0 + eor d0,d1 + swap d0 + add d1,d0 + lsr #8,d0 + rts + ; +.oct dc 0,0,$4000,-1,0,-1,$c000,0 + dc $8000,-1,$4000,0,$8000,0,$c000,-1 +.arc incbin arc.bin + +currplayer dc.l 0 + +calcscene ;a5=player object + ; + move #$20,$dff09a + ; + move.l a5,currplayer + move.l ob_palette(a5),palette + move ob_thermo(a5),thermo + move ob_infra(a5),infra + move ob_pixsize(a5),pixsize + ; + clr.l shapelist + move.l a5,a0 + bsr calccamera + bsr makewalls + ; + lea objects(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq.s .done + cmp.l currplayer(pc),a5 + beq.s .loop + move.l ob_render(a5),a0 + tst ob_invisible(a5) + beq.s .notinvs + bpl.s .hb + move.l #drawobjtrans,shaperender + bra.s .rit +.hb move.l #drawobjinvs,shaperender +.rit jsr (a0) + move.l #drawobjnorm,shaperender + bra.s .loop +.notinvs jsr (a0) + bra.s .loop +.done ; + lea gore(pc),a5 + ; +.loop2 move.l (a5),a5 + tst.l (a5) + beq.s .done2 + ; + movem go_x(a5),d0/d2 + moveq #0,d1 + move.l go_shape(a5),a0 + move #$200,d7 + bsr drawshape_q + ; + bra.s .loop2 + ; +.done2 move #$8020,$dff09a + ; + rts + +blitscene bclr #7,ob_update(a5) + beq.s .noupdate + ; + bclr #7,ob_update+1(a5) + beq.s .stats + ; + move.l ob_window(a5),a2 + moveq #9,d0 + bsr wcopy + bsr initstats + ; +.stats bsr showstats + ; +.noupdate move ob_messtimer(a5),d0 + bpl.s .mskip + addq #1,d0 + beq.s .mdone + neg ob_messtimer(a5) + move.l ob_window(a5),a0 + bsr putstrip + bsr printmess + bra.s .mskip + ; +.mdone clr ob_messtimer(a5) + move.l ob_window(a5),a0 + bsr putstrip +.mskip ; + rts + +drawscene ;a5=player + ; +.wait move showflag(pc),d0 + bne.s .wait + ; + move.l ob_window(a5),a0 + bsr dbwindow + ; + bsr castwalls + bsr makeqstrip + bsr renderwalls + ; + move floorflag(pc),d0 + ble.s .nofloor + ; + move camy(pc),d0 + neg d0 + moveq #-1,d1 + move maxy(pc),d7 + subq #1,d7 + move.l floor(pc),a0 + bsr flat + ; +.nofloor move roofflag(pc),d0 + ble.s .noflat + ; + move #-255,d0 + sub camy(pc),d0 + moveq #1,d1 + move miny(pc),d7 + move.l roof(pc),a0 + bsr flat + ; +.noflat bsr drawshapes + bsr drawblood + ; + move.l currplayer(pc),a0 + move ob_pixsize(a0),d0 + bne pixelate + rts + +chatstuff move chatok(pc),d0 + beq.s .rts + ; + move chatoutget(pc),d0 + cmp chatoutput(pc),d0 + beq.s .noout + and #31,d0 + lea chatout(pc),a0 + move.b 0(a0,d0),d0 ;chat out character! + addq #1,chatoutget + moveq #1,d1 + move d0,-(a7) + bsr chatprint + move (a7)+,d0 + sub.b #32,d0 ;encode for chat + bset #6,d0 + bsr serput + ; +.noout move chatinget(pc),d0 + cmp chatinput(pc),d0 + beq.s .rts + and #31,d0 + lea chatin(pc),a0 + move.b 0(a0,d0),d0 + addq #1,chatinget + moveq #2,d1 + bsr chatprint + ; +.rts rts + +showstuff move showflag(pc),d0 + beq.s .noshow + ; + ;don't show if beam in the way! + ; + move.l $dff004,d0 + lsr.l #8,d0 ;beampos + and #$1ff,d0 + cmp minbpos(pc),d0 + bcs.s .ok + cmp maxbpos(pc),d0 + bcs.s .noshow + ; +.ok clr showflag + lea window1,a0 + bsr showwindowq + lea window2,a0 + bra showwindowq + ; +.noshow rts + +sfxvbint lea sfxs(pc),a1 + moveq #3,d3 + ; +.loop tst fx_status(a1) + ble.s .skip + ; + ;this one queued! gotta play it... + ; + subq #1,fx_status(a1) + bgt.s .skip + move.l fx_sfx(a1),a0 + bsr playsfxnow + ; +.skip lea fx_size(a1),a1 + dbf d3,.loop + ; + ;fade out song if nec. + ; + move fadevol(pc),d0 + beq.s .nofade + move.l medat(pc),a1 + sub #$80,fadevol + bgt.s .setvol + clr fadevol + jmp 12(a1) ;stop song + bra.s .nofade + ; +.setvol move fadevol(pc),d0 + lsr #8,d0 + jmp 16(a1) ;set volume + ; +.nofade rts + +vbhandler movem.l d2-d7/a2-a6,-(a7) + ; + subq #1,(a1)+ ;inc/dec frame counters + addq #1,(a1) + ; + ;this done every frame! + bsr showstuff + bsr chatstuff + bsr sfxvbint + ; + btst #0,framecnt+1 + beq exit_vb + tst paused + bne exit_vb + ; + ;OK, movement/animation stuff! + ; + bsr readjoys + bsr doanims + bsr dorots + bsr dodoors + bsr moveblood + ; + ifne debugser + ; + ;OK, kludge in a random number! + move framecnt(pc),d0 + and #126,d0 + bne.s .nornd + ; + bsr rndw + lea .rndasc(pc),a0 + moveq #3,d1 +.loop rol #4,d0 + move d0,d2 + and #15,d2 + add #48,d2 + cmp #58,d2 + bcs.s .rok + addq #7,d2 +.rok move.b d2,(a0)+ + dbf d1,.loop + ; + move.l player1(pc),a5 + bsr message +.rndasc dc.b 'aaaa',0 + even + ; + endc +.nornd ; + move.l a7,obj_stack + lea objects(pc),a5 + ; +obj_loop move.l (a5),a5 + tst.l (a5) + beq exit_vb + ; + move.l ob_logic(a5),a0 + jsr (a0) + ; + ;check collision! + ; + move ob_collwith(a5),d0 + beq.s obj_loop + ; + move ob_rad(a5),d1 + move ob_x(a5),d6 + move ob_z(a5),d7 + ; + lea objects(pc),a0 + ; +.loop2 move.l (a0),a0 + cmp.l a5,a0 + bne.s .this + ; + clr.l ob_washit(a5) ;not hit! can get hit next time... + bra obj_loop +.this ; + move ob_colltype(a0),d2 + and d0,d2 + beq.s .loop2 + ; + move ob_rad(a0),d2 + add d1,d2 ;r sum + ; + move ob_x(a0),d3 + sub d6,d3 + bpl.s .xpl + neg d3 +.xpl cmp d2,d3 + bcc.s .loop2 + ; + move ob_z(a0),d4 + sub d7,d4 + bpl.s .ypl + neg d4 +.ypl cmp d2,d4 + bcc.s .loop2 + ; + mulu d2,d2 + mulu d3,d3 + mulu d4,d4 + add.l d4,d3 + cmp.l d2,d3 + bcc.s .loop2 + ; + cmp.l ob_washit(a5),a0 + beq obj_loop + move.l a0,ob_washit(a5) + ; + move finished2(pc),d0 + bne obj_loop + ; + move.l #killobject3,killjsr + movem.l a0/a5,obj_a0 + exg.l a0,a5 + ; + move ob_damage(a0),d0 + move.l ob_hit(a5),a1 + sub d0,ob_hitpoints(a5) + bgt.s hit_skip + move.l ob_die(a5),a1 + ; +hit_skip jsr (a1) + ; +hit_ret move.l #killobject2,killjsr + movem.l obj_a0(pc),a0/a5 + ; + move ob_damage(a0),d0 + move.l ob_hit(a5),a1 + sub d0,ob_hitpoints(a5) + bgt.s hit_skip2 + move.l ob_die(a5),a1 + ; +hit_skip2 jsr (a1) + bra obj_loop + ; +exit_vb st doneflag + ; + movem.l (a7)+,d2-d7/a2-a6 + moveq #0,d0 + ; +rts rts + +obj_a0 dc.l 0 +obj_a5 dc.l 0 +obj_stack dc.l 0 +killjsr dc.l killobject2 + +killobject ; + move.l killjsr(pc),a0 + jmp (a0) + +killobject2 move.l a5,a0 + killitem objects + move.l a0,a5 + move.l obj_stack(pc),a7 + bra obj_loop + +killobject3 move.l a5,a0 + killitem objects + move.l obj_stack(pc),a7 + bra hit_ret + +bloodspeed bsr rndw + ext.l d0 + lsl.l #2,d0 + rts + +bloodspeed2 bsr rndw + ext.l d0 + lsl.l #5,d0 + rts + +bloodspeed3 bsr rndw + ext.l d0 + lsl.l #4,d0 + rts + +makesparksq move.l ob_chunks(a5),a2 + ; +makesparks ;a2=sparks + ; + movem.l ob_x(a5),d2-d4 + move 2(a2),d5 + subq #1,d5 + ; +.loop addlast objects + beq .rts + movem.l d2-d4,ob_x(a0) + bsr bloodspeed2 + move.l d0,ob_xvec(a0) + bsr bloodspeed2 + move.l d0,ob_yvec(a0) + bsr bloodspeed2 + move.l d0,ob_zvec(a0) + move.l a2,ob_shape(a0) + move d5,ob_frame(a0) + move.l #sparkslogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + clr ob_invisible(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + bsr rndw + and #15,d0 + add #15,d0 + move d0,ob_delay(a0) + dbf d5,.loop +.rts rts + +sparkslogic subq #1,ob_delay(a5) + ble killobject + movem.l ob_x(a5),d0-d2 + add.l ob_xvec(a5),d0 + add.l ob_yvec(a5),d1 + add.l ob_zvec(a5),d2 + movem.l d0-d2,ob_x(a5) + rts + +bloodymess ;throw random blood splots everywhere! + ; + bsr bloodspeed2 + add.l ob_x(a5),d0 + move.l d0,d2 + bsr bloodspeed2 + add.l ob_gutsy(a5),d0 + move.l d0,d3 + bsr bloodspeed2 + add.l ob_z(a5),d0 + move.l d0,d4 + ; +.loop addlast blood + beq.s .done + ; + movem.l d2-d4,bl_x(a0) + bsr bloodspeed + move.l d0,bl_xvec(a0) + bsr bloodspeed + move.l d0,bl_yvec(a0) + bsr bloodspeed + move.l d0,bl_zvec(a0) + move ob_blood(a5),bl_color(a0) + ; + dbf d7,.loop + ; +.done rts + +bloodymess2 ;throw random blood splots everywhere! + ; + bsr bloodspeed2 + add.l ob_x(a5),d0 + move.l d0,d2 + bsr bloodspeed2 + add.l ob_gutsy(a5),d0 + move.l d0,d3 + bsr bloodspeed2 + add.l ob_z(a5),d0 + move.l d0,d4 + ; +.loop addlast blood + beq.s .done + ; + movem.l d2-d4,bl_x(a0) + bsr bloodspeed3 + move.l d0,bl_xvec(a0) + bsr bloodspeed3 + move.l d0,bl_yvec(a0) + bsr bloodspeed3 + move.l d0,bl_zvec(a0) + move ob_blood(a5),bl_color(a0) + ; + dbf d7,.loop + ; +.done rts + +chunklogic move mode(pc),d0 + beq chunklogic2 + ; + add.l #$8000,ob_yvec(a5) + move.l ob_yvec(a5),d0 + add.l ob_y(a5),d0 + blt .skip + ; + ;OK...hit ground! + ; + bsr splat + addlast gore + bne.s .gok + ; + move.l gore(pc),a0 + killitem gore + addlast gore + beq killobject + ; +.gok move ob_x(a5),go_x(a0) + move ob_z(a5),go_z(a0) + move.l ob_shape(a5),a1 + move ob_frame(a5),d0 + add.l 12(a1,d0*4),a1 + move.l a1,go_shape(a0) + ; + bra killobject + ; +.skip move.l d0,ob_y(a5) + bsr checkvecs + beq.s .rts + clr.l ob_xvec(a5) + clr.l ob_zvec(a5) +.rts rts + +chunklogic2 add.l #$8000,ob_yvec(a5) + move.l ob_yvec(a5),d0 + add.l d0,ob_y(a5) + blt.s .ok + ;bsr splat + bra killobject +.ok movem.l ob_xvec(a5),d0-d1 + add.l d0,ob_x(a5) + add.l d1,ob_z(a5) + rts + +splat move.l splatsfx(pc),a0 + moveq #32,d0 + moveq #-1,d1 + bra playsfx + +blowobject move.l diesfx(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx + ; + moveq #31,d7 + bsr bloodymess2 + ; + move.l ob_chunks(a5),d0 + bne.s .chok + ; + moveq #15,d7 + bsr bloodymess2 + bra killobject + ; +.chok move.l d0,a4 + move 2(a4),d7 + subq #1,d7 + ; +.loop addlast objects + beq killobject + movem.l ob_x(a5),d0-d2 + move.l #-64<<16,d1 + movem.l d0-d2,ob_x(a0) + ; + bsr bloodspeed3 + move.l d0,ob_xvec(a0) + bsr bloodspeed3 + sub.l #$40000,d0 + move.l d0,ob_yvec(a0) + bsr bloodspeed3 + move.l d0,ob_zvec(a0) + ; + clr ob_invisible(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + move.l #chunklogic,ob_logic(a0) + move.l a4,ob_shape(a0) + move.l #drawshape_1sc,ob_render(a0) + move d7,ob_frame(a0) + move ob_scale(a5),ob_scale(a0) + ; + move an_maxw(a4),d0 + move d0,ob_rad(a0) + mulu d0,d0 + move.l d0,ob_radsq(a0) + ; + dbf d7,.loop + bra killobject + +hurtghoul moveq #31,d7 + bsr bloodymess + rts + +hurtngrunt move.l a0,-(a7) + bsr rndw + and #3,d0 + cmp lastgrunt(pc),d0 + bne.s .new + addq #1,d0 + and #3,d0 +.new move d0,lastgrunt + lea grunttable(pc),a0 + move.l 0(a0,d0*4),a0 + move.l (a0),a0 + moveq #64,d0 + moveq #1,d1 + bsr playsfx + move.l (a7)+,a0 + ; +hurtobject move ob_colltype(a0),d0 + and #24,d0 + bne.s .rts + ; + moveq #23,d7 + bsr bloodymess + move ob_hurtpause(a5),ob_hurtwait(a5) + beq .rts + ; + move #4,ob_frame(a5) + move.l ob_logic(a5),ob_oldlogic2(a5) + move.l ob_hit(a5),ob_oldhit(a5) + move.l #pauselogic2,ob_logic(a5) + move.l #rts,ob_hit(a5) + ; +.rts rts + +lizhurt move.l a0,-(a7) + move.l lizhitsfx(pc),a0 + moveq #64,d0 + moveq #1,d1 + bsr playsfx + move.l (a7)+,a0 + bra hurtobject + +pauselogic2 subq #1,ob_hurtwait(a5) + bgt.s .rts + clr ob_frame(a5) + move.l ob_oldlogic2(a5),ob_logic(a5) + move.l ob_oldhit(a5),ob_hit(a5) +.rts rts + +pauselogic subq #1,ob_delay(a5) + bgt.s .skip + ; + bsr rnddelay + move.l ob_oldlogic(a5),ob_logic(a5) + ; + ;if in front of player, continue on old course... + ; + bsr pickcalc + ; + ;bsr pickplayer + ;tst ob_invisible(a0) + ;bne.s .useold ;can't see player! no intelligence... + ;bsr calcangle + ; + move ob_rot(a0),d1 + and #255,d1 + sub d0,d1 + bpl.s .pl + neg d1 +.pl cmp #64,d1 + bcs.s .skip + cmp #192,d1 + bcc.s .skip + ; +.useold move ob_oldrot(a5),ob_rot(a5) + bsr calcvecs + ; +.skip rts + +shoot ; + ;fire off a bullet... + ; + ;d2 : colltype + ;d3 : collwith + ;d4 : hitpoints + ;d5 : damage + ;d6 : speed + ;a2=bullet shape + ;a3=sparks shape + ; + addfirst objects + beq .rts + ; + move ob_bouncecnt(a5),ob_bouncecnt(a0) + move ob_x(a5),ob_x(a0) + move ob_y(a5),d0 + add ob_firey(a5),d0 + move d0,ob_y(a0) + move ob_z(a5),ob_z(a0) + move.l #firelogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + move.l #rts,ob_hit(a0) + move.l #killobject,ob_die(a0) + move d2,ob_colltype(a0) + move d3,ob_collwith(a0) + move d4,ob_hitpoints(a0) + move d5,ob_damage(a0) + move d6,ob_movspeed(a0) + move.l a2,ob_shape(a0) + clr ob_invisible(a0) + clr ob_frame(a0) + move.l a3,ob_chunks(a0) + ; + move ob_rot(a5),d0 + and #255,d0 + move.l camrots(pc),a1 + lea 0(a1,d0*8),a1 + ; + move 2(a1),d0 + move d0,ob_nxvec(a0) + neg d0 + muls d6,d0 + add.l d0,d0 + move 6(a1),d1 + move d1,ob_nzvec(a0) + muls d6,d1 + add.l d1,d1 + ; + movem.l d0-d1,ob_xvec(a0) + add.l d0,ob_x(a0) + add.l d1,ob_z(a0) + ; + move #32,ob_rad(a0) + move.l #32*32,ob_radsq(a0) + ; +.rts rts + +pickcalc ;pick a player and calculate angle to player! + ; + bsr pickplayer + bsr calcangle + tst ob_invisible(a0) + beq.s .rts + move d0,-(a7) + bsr rndw + and #63,d0 + sub #32,d0 + add (a7)+,d0 + and #255,d0 +.rts rts + +fire1 bsr pickcalc + ; + ;random noise for inaccuracy! + ; + move d0,-(a7) + bsr rndw + and #31,d0 + sub #16,d0 + add (a7)+,d0 + and #255,d0 + ; + move d0,ob_rot(a5) + bsr calcvecs + move #7,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #pauselogic,ob_logic(a5) + clr.l ob_frame(a5) + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #1,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet1,a2 + lea sparks1,a3 + ; + bsr shoot + ; + rts + +pickplayer ;pick nearest player + ; + move.l player1(pc),a0 + move gametype(pc),d0 + beq.s .rts + move.l player2(pc),a1 + move linked(pc),d0 + bpl.s .nosw + ; + exg a0,a1 +.nosw ; + tst ob_hitpoints(a0) + beq .sw + tst ob_hitpoints(a1) + beq.s .rts + ; + move ob_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move ob_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 ;dist to player a0 + ; + move ob_x(a5),d1 + sub ob_x(a1),d1 + muls d1,d1 + move ob_z(a5),d2 + sub ob_z(a1),d2 + muls d2,d2 + add.l d2,d1 ;dist to player a1 + ; + cmp.l d1,d0 + bcs.s .rts + ; +.sw move.l a1,a0 + ; +.rts rts + +checkcoll ;check for collision between a5, and a0 + ; + move ob_rad(a5),d1 + move ob_rad(a0),d2 + add d1,d2 ;r sum + ; + move ob_x(a0),d3 + sub ob_x(a5),d3 + bpl.s .xpl + neg d3 +.xpl cmp d2,d3 + bcc.s .no + ; + move ob_z(a0),d4 + sub ob_z(a5),d4 + bpl.s .ypl + neg d4 +.ypl cmp d2,d4 + bcc.s .no + ; + mulu d2,d2 + mulu d3,d3 + mulu d4,d4 + add.l d4,d3 + cmp.l d2,d3 + bcc.s .no + ; + moveq #-1,d0 + rts + ; +.no moveq #0,d0 + rts + +baldycharge ; + ;baldy charging at player! + ; + bsr checkvecs + beq baldy_skip + ; +baldy_tonorm move.l ob_movspeed(a5),d0 + lsr.l #2,d0 + move.l d0,ob_movspeed(a5) + ; + move.l ob_framespeed(a5),d0 + lsr.l #2,d0 + move.l d0,ob_framespeed(a5) + ; + move.l ob_oldlogic(a5),ob_logic(a5) + bsr rnddelay + ; + bra monsterfix + ; +baldy_skip ;close to player? start throwing punches around! + ; + bsr pickcalc + ; + sub ob_rot(a5),d0 + cmp #32,d0 + bgt baldy_tonorm + cmp #-32,d0 + blt baldy_tonorm + ; + move.l a0,ob_washit(a5) + bsr checkcoll + beq monsternew ;no collisions! + ; + ;go into punch mode! + ; + move.l #baldypunch,ob_logic(a5) + move ob_punchrate(a5),ob_delay(a5) + clr.l ob_frame(a5) + rts + +baldypunch ; + bsr pickplayer + bsr checkcoll + bne.s .doit + ; + clr.l ob_frame(a5) + bra baldy_tonorm + ; +.doit subq #1,ob_delay(a5) + ble.s .punch + rts +.punch move ob_punchrate(a5),ob_delay(a5) + moveq #0,d0 ;stand frame + cmp ob_frame(a5),d0 + bne .skip + ; + clr.l ob_washit(a5) ;punch! + bsr calcangle + move d0,ob_rot(a5) + moveq #5,d0 +.skip move d0,ob_frame(a5) + rts + +calcbangle bsr calcangle + tst ob_invisible(a0) + beq.s .notinv + ; + ;invisible, add some randomeness! + ; + move d0,-(a7) + bsr rndw + and #127,d0 + sub #64,d0 + add (a7)+,d0 + and #255,d0 + ; +.notinv move d0,ob_rot(a5) + rts + +lizardlogic ; + subq #1,ob_delay(a5) + bgt monstermove ;charge? + ; + bsr pickcalc ;pic player in a0! + move ob_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move ob_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 + cmp.l #256*256,d0 + bcc.s bl2 + ; + move.l lizsfx(pc),a0 + moveq #32,d0 + moveq #5,d1 + bsr playsfx + ; + bra bl2 + +baldylogic ; + ;OK, what can baldy do... + ; + ;how about, walk around similar to the marine, but randomly + ;charge at you? + ; + ;then, if he's close enough, he throws a punch! + ; + subq #1,ob_delay(a5) + bgt monstermove ;charge? + ; +bl2 bsr pickcalc + move d0,ob_rot(a5) + ; + move.l ob_movspeed(a5),d0 + lsl.l #2,d0 + move.l d0,ob_movspeed(a5) + move.l ob_framespeed(a5),d0 + lsl.l #2,d0 + move.l d0,ob_framespeed(a5) + ; + bsr calcvecs + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #baldycharge,ob_logic(a5) + ; + rts + +terralogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + bgt monstermove + ; + ;OK, terra goes apeshit! stand there firing off at player! + ;use punchrate as firedelay! + ; + clr ob_frame(a5) + move #1,ob_delay(a5) + move ob_firecnt(a5),ob_delay2(a5) + move.l #terralogic2,ob_logic(a5) + rts + +terralogic2 ; + subq #1,ob_delay(a5) + bgt.s .rts + ; + move ob_firerate(a5),ob_delay(a5) + ; + ;OK, to to face player and fire away! + ; + ;bsr pickplayer + ;bsr calcangle + ; + bsr pickcalc + move d0,ob_rot(a5) + bsr calcvecs + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #16,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet4,a2 + lea sparks4,a3 + ; + bsr shoot + ; + subq #1,ob_delay2(a5) + bgt.s .rts + ; + bsr rnddelay + move.l #terralogic,ob_logic(a5) + ; +.rts rts + +ghoullogic ; + addq #8,ob_bounce(a5) + move ob_bounce(a5),d0 + move.l camrots(pc),a0 + and #255,d0 + move 0(a0,d0*8),d0 + ext.l d0 + lsl.l #5,d0 ;+/- 32 + swap d0 + add #-32,d0 + move d0,ob_y(a5) + ; + bsr pickcalc + move d0,ob_rot(a5) + ; + subq #1,ob_delay(a5) + bgt.s .skip + ; + move #1,ob_frame(a5) + move.l #$2000,ob_framespeed(a5) + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet2,a2 + lea sparks2,a3 + ; + bsr shoot + bsr rnddelay + ; +.skip ;OK, ghoul moves around ignoring walls! + ; + ;he's pointed at player...how about randomly selected to make + ;this his new movement vector? + ; + bsr rndw + move ob_movspeed(a5),d1 + lsl #8,d1 + cmp d1,d0 + bcc.s .no + ; + bsr calcvecs + ; + move.l ghoulsfx(pc),a0 + moveq #32,d0 + moveq #-5,d1 + bsr playsfx + ; +.no movem.l ob_xvec(a5),d0-d1 + add.l d0,ob_x(a5) + add.l d1,ob_z(a5) + ; + move.l ob_framespeed(a5),d0 + beq.s .rts + add.l d0,ob_frame(a5) + cmp #3,ob_frame(a5) + bcs.s .rts + ; + clr ob_frame(a5) + clr.l ob_framespeed(a5) + ; +.rts rts + +demonpause move ob_delay(a5),d0 + move d0,d1 + and #4,d0 + sne d0 + ext d0 + and #5,d0 ;0 or 5 + move d0,ob_frame(a5) + ; + and #7,d1 ;do a fire? + cmp #7,d1 + bne.s .nofire + ; + move ob_delay(a5),d0 + lsr #3,d0 + mulu #18,d0 + lea wtable(pc),a0 + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + movem 0(a0,d0),d4-d6 ;hits,dam,speed + moveq #0,d7 ;acc + movem.l 6(a0,d0),a2-a3 ;bullets/sparks + move.l 14(a0,d0),-(a7) ;sfx! + ; + bsr shoot + ; + move.l (a7)+,a0 + move.l (a0),a0 + moveq #32,d0 + moveq #0,d1 + bsr playsfx + ; +.nofire subq #1,ob_delay(a5) + bgt.s .rts + ; + bsr rnddelay + move.l ob_oldlogic(a5),ob_logic(a5) + ; +.rts rts + +demonlogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + bgt monstermove + ; + bsr pickcalc + move d0,-(a7) + and #15,d0 + subq #8,d0 + add (a7)+,d0 + ; + and #255,d0 + move d0,ob_rot(a5) + bsr calcvecs + move #5<<3-1,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #demonpause,ob_logic(a5) + ; + rts + +phantomlogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + bgt monstermove + ; + bsr pickcalc + ; + move d0,ob_rot(a5) + bsr calcvecs + move #7,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #pauselogic,ob_logic(a5) + move #5,ob_frame(a5) + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet3,a2 + lea sparks3,a3 + ; + bra shoot + +monsterlogic ; + move ob_rot(a5),ob_oldrot(a5) + ;monster cruising around minding his own business... + ; + subq #1,ob_delay(a5) + ble fire1 + ; +monstermove bsr checkvecs + beq.s monsternew + ; + ;OK, try 90/-90 degrees... + ; +monsterfix bsr rndw + moveq #64,d1 + tst d0 + bpl.s .umk + moveq #-64,d1 +.umk add d1,ob_rot(a5) + bsr calcvecs + bsr checkvecs + beq.s monsternew + ; + add #128,ob_rot(a5) + bsr calcvecs + bsr checkvecs + beq.s monsternew + ; + move ob_oldrot(a5),d0 + add #128,d0 + move d0,ob_rot(a5) + ; + bsr calcvecs + bsr checkvecs +monsternew ; + move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + and #3,ob_frame(a5) + rts + +weaponlogic ; + move.l camrots(pc),a0 + ; + addq #8,ob_movspeed(a5) + move ob_movspeed(a5),d0 + and #127,d0 + move 2(a0,d0*8),d0 + asr #8,d0 + move d0,ob_y(a5) + ; + move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + move ob_frame(a5),d0 + move.l ob_shape(a5),a0 + cmp 2(a0),d0 + bcs.s .skip + clr ob_frame(a5) +.skip ; + subq #1,ob_delay(a5) + bgt .rts + bsr rnddelay + ; + addlast objects + beq.s .rts + ; + movem.l ob_x(a5),d2-d4 + movem.l d2-d4,ob_x(a0) + bsr bloodspeed2 + move.l d0,ob_xvec(a0) + bsr bloodspeed2 + move.l d0,ob_yvec(a0) + bsr bloodspeed2 + move.l d0,ob_zvec(a0) + move.l ob_chunks(a5),a2 + move.l a2,ob_shape(a0) + move 2(a2),d0 + bsr rndn + move d0,ob_frame(a0) + move.l #sparkslogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + clr ob_invisible(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + bsr rndw + and #15,d0 + add #15,d0 + move d0,ob_delay(a0) +.rts rts + +calcvecs move ob_rot(a5),d0 + and #255,d0 + move.l camrots(pc),a0 + lea 0(a0,d0*8),a0 + ; + move ob_movspeed(a5),d4 + move d4,d5 + muls 2(a0),d4 + add.l d4,d4 + neg.l d4 + move.l d4,ob_xvec(a5) + muls 6(a0),d5 + add.l d5,d5 + move.l d5,ob_zvec(a5) + rts + +checkvecs movem.l ob_xvec(a5),d6-d7 + add.l ob_x(a5),d6 + add.l ob_z(a5),d7 + bsr checknewslow ;ok to stand here? + beq.s .ok + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + bsr checknewslow + bne.s .fix + moveq #-1,d1 ;use old pos, and report hit! + rts + ; +.fix bsr adjustposq ;fixup! + moveq #-1,d1 + ; +.ok move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + tst d1 + rts + +playerdead bsr getcntrl + ; + subq #1,ob_delay(a5) + bgt.s .rts + ; + cmp #2,gametype + bne.s .notcom + ; + ;combat game! + ; + move #4,finished2 + move #1,ob_pixsizeadd(a5) + move.l #rts,ob_logic(a5) + move.l player1,a0 + cmp.l a5,a0 + bne.s .got + move.l player2,a0 +.got move #1,ob_pixsizeadd(a0) +.rts rts +.notcom ; + tst ob_lives(a5) + beq.s .dead + move.l #waitrestart,ob_logic(a5) + rts + ; +.dead move.l #rts,ob_logic(a5) + ; + tst gametype + bne.s .not1p + ; + ;OK, one player game done! + ; +.allover move #2,finished + rts + ; +.not1p move.l player1,a0 + cmp.l a5,a0 + bne.s .goth + move.l player2,a0 +.goth tst ob_hitpoints(a0) + ble.s .allover + rts + +waitrestart bsr getcntrl + ; + bsr checkfireb + beq.s .rts + ; + move ob_weapon(a5),-(a7) + ; + lea p1x(pc),a0 + lea player1_+4,a1 + cmp.l player1,a5 + beq.s .got + lea p2x(pc),a0 + lea player2_+4,a1 +.got lea ob_info(a5),a2 + move #(objinfof-objinfo-4)>>1-1,d0 +.loop move (a1)+,(a2)+ + dbf d0,.loop + move (a0)+,ob_x(a5) + move (a0)+,ob_z(a5) + move (a0)+,ob_rot(a5) + ; + move (a7)+,d0 + moveq #4,d1 +.wloop bclr d1,d0 + dbne d1,.wloop + tst d0 + bne.s .wdone + moveq #1,d0 +.wdone move d0,ob_weapon(a5) + ; + move.l ob_shape(a5),a0 + move.l 4(a0),ob_chunks(a5) + move.l (a0),a0 + move.l a0,ob_shape(a5) + ; + bsr resetplayer + move #-1,ob_update(a5) + st ob_lastbut(a5) + ; +.rts rts + +playerdeath bsr getcntrl + ; + addq #4,ob_rot(a5) + addq #4,ob_eyey(a5) + cmp #-32,ob_eyey(a5) + blt .rts + ; + move #-32,ob_eyey(a5) + move.l #playerdead,ob_logic(a5) + move #63,ob_delay(a5) + ; + cmp #2,gametype + bne.s .notcom + ; + ;death in combat game! + ; + move.l player1,a0 + cmp.l a5,a0 + bne.s .got + move.l player2,a0 +.got tst ob_hitpoints(a0) + ble.s .draw ;it's a draw! + ; +.win move.l a5,-(a7) + ; + move.l a0,a5 + clr ob_collwith(a5) + clr ob_colltype(a5) + bsr message + dc.b 'winner!',0 + even + ; + move.l (a7)+,a5 + subq #1,ob_lives(a5) + move #-1,ob_update(a5) ;refresh 'lives' + bsr message + dc.b 'loser!',0 + even + ; + rts +.draw ; + rts +.notcom ; + tst linked + beq.s .nlink + bsr getother + move #-1,ob_update(a0) + subq #1,ob_lives(a0) + ; +.nlink move #-1,ob_update(a5) + subq #1,ob_lives(a5) + bne.s .rts + bsr message + dc.b 'game over',0 + even + ; +.rts rts + +getother ;get other player from a5! + ; + move.l player1(pc),a0 + cmp.l a0,a5 + bne.s .rts + move.l player2(pc),a0 +.rts rts + +redpal move.l #palettesr,ob_palette(a5) + move #2,ob_paltimer(a5) + rts + +playerhit tst ob_damage(a0) + beq.s .rts + st ob_update(a5) + bsr redpal +.rts rts + +playerdie bsr redpal + clr ob_hitpoints(a5) + st ob_update(a5) + move.l #playerdeath,ob_logic(a5) + clr ob_colltype(a5) + clr ob_collwith(a5) + rts + +healthgot bsr playtsfx + addq #5,ob_hitpoints(a0) + cmp #25,ob_hitpoints(a0) + ble.s .skip + move #25,ob_hitpoints(a0) +.skip st ob_update(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'health bonus!',0 + even + move.l (a7)+,a5 + bra killobject + +playtsfx move.l a0,-(a7) + move.l tokensfx(pc),a0 + moveq #64,d0 + moveq #0,d1 + bsr playsfx + move.l (a7)+,a0 + rts + +weapongot bsr playtsfx + ; + move.l a5,-(a7) + move ob_weapon(a5),d0 ;weapon bit! + move.l a0,a5 + move ob_weapon(a5),d1 + bset d0,d1 + beq.s .new ;newweapon! + ; + subq.b #1,ob_reload(a5) + bmi.s .skip + bne.s .notfull + bsr message + dc.b 'weapon at full boost!',0 + even + bra.s .kill + ; +.notfull bsr message + dc.b 'weapon bonus!',0 + even +.kill move.l (a7)+,a5 + bra killobject + ; +.skip clr.b ob_reload(a5) + bra.s .kill + ; +.new move d1,ob_weapon(a5) + move.b #ireload,ob_reload(a5) + st ob_update(a5) + bsr message + dc.b 'weapon boost!',0 + even + bra.s .kill + +invisigot move.l a5,-(a7) + move.l a0,a5 + ; + add #1500,ob_invisible(a5) + bsr message + dc.b 'invisibility!',0 + even + ; + move.l (a7)+,a5 + bra killobject + +invincgot tst ob_hyper(a0) + bne.s .rts + move.l a5,-(a7) + move.l a0,a5 + ; + move #-$200,ob_hyper(a5) + bsr message + dc.b 'hyper!',0 + even + ; + move.l (a7)+,a5 + bra killobject + ; +.rts rts + +bouncygot cmp #3,ob_bouncecnt(a0) + bcc.s .rts + addq #1,ob_bouncecnt(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'bouncy bullets!',0 + even + move.l (a7)+,a5 + bra killobject +.rts rts + +thermogot add #1500,ob_thermo(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'got the thermo glasses!',0 + even + move.l (a7)+,a5 + bra killobject + +maxsize equ $280 + +playertimers tst ob_thermo(a5) + beq.s .noth + subq #1,ob_thermo(a5) + bne.s .noth + bsr message + dc.b 'thermo glasses out...',0 + even + ; +.noth tst ob_messtimer(a5) + ble.s .notm + subq #2,ob_messtimer(a5) +.notm ; + tst ob_invisible(a5) + beq.s .noti + subq #1,ob_invisible(a5) + bne.s .noti + bsr message + dc.b 'invisibility out...',0 + even +.noti ; + tst ob_paltimer(a5) + beq.s .notp + subq #1,ob_paltimer(a5) + bne.s .notp + move.l #palettes,ob_palette(a5) +.notp ; + move ob_pixsizeadd(a5),d0 + beq.s .notpix + add d0,ob_pixsize(a5) + bne.s .pixnz + ; + clr ob_pixsizeadd(a5) + bra.s .notpix + ; +.pixnz cmp #24,ob_pixsize(a5) + bne.s .notpix + ; + move finished2(pc),finished + bne.s .notpix + ; + move ob_telex(a5),ob_x(a5) + move ob_telez(a5),ob_z(a5) + move ob_telerot(a5),ob_rot(a5) + neg ob_pixsizeadd(a5) +.notpix ; + move ob_hyper(a5),d0 + beq.s .nothyper + bpl.s .hplus + ; + ;hyper is minus! growing... + ; + subq #4,d0 + move d0,d1 + neg d1 + cmp #maxsize,d1 + bne.s .hdone + move #750<<2+maxsize,d0 + bra.s .hdone + ; +.hplus subq #4,d0 + cmp #maxsize,d0 + bhi.s .hdone2 + bne.s .noteq + bsr message + dc.b 'hyper out...',0 + even + move #maxsize,d0 +.noteq move d0,d1 + cmp #$200,d0 + bne.s .hdone + moveq #0,d0 + ; +.hdone move d1,ob_scale(a5) + ; + move d1,d2 + mulu #((pl_eyey<<16)/$200),d2 + swap d2 + neg d2 + move d2,ob_eyey(a5) + ; + move d1,d2 + mulu #((pl_firey<<16)/$200),d2 + swap d2 + neg d2 + move d2,ob_firey(a5) + ; + move d1,d2 + mulu #((pl_gutsy<<16)/$200),d2 + swap d2 + neg d2 + move d2,ob_gutsy(a5) + ; +.hdone2 move d0,ob_hyper(a5) +.nothyper ; + rts + +footstep move.l d0,-(a7) + move.l footstepsfx(pc),a0 + moveq #16,d0 + moveq #0,d1 + bsr playsfx + move.l (a7)+,d0 + rts + +cntrls dc.l joyx0,joyx1,joyx2,joyx3 + +pbuff ds.b 128 ;player controls to use! +pput dc 0 ;put new cntrl here +pget dc 0 ;read this for actual + +getcntrlq lea cntrls(pc),a0 + move.l 0(a0,d0*4),a0 ;address of cntrl table... + move.l (a0)+,joyx + move.l (a0),joyb + rts + +getcntrl move ob_cntrl(a5),d0 + tst gametype + beq getcntrlq + tst linked + beq getcntrlq + ; + cmp #3,d0 ;null modem? + bne.s .notnull + ; +.waitser bsr serget + bpl.s .sergot + ; + ;OK, do a vwait to allow other machine to catch up! + ; + move #$20,$dff09c +.vw ; + ifne debugser + col #$f0f + endc + ; + btst #5,$dff01f + beq.s .vw + ; + move #$20,$dff09c + bsr chatstuff + bra.s .waitser + ; +.sergot lea joyx3(pc),a0 + tst.b d0 + bpl .djoy + and #$ff,d0 + move d0,finished + move.l #rts,ob_logic(a5) + moveq #0,d0 +.djoy bsr decodejoy + move.l (a0)+,joyx + move.l (a0),joyb + rts + ; +.notnull lea cntrls(pc),a0 + move.l 0(a0,d0*4),a0 ;address of cntrl table... + ; + bsr encodejoy + movem.l d0/a0,-(a7) + bsr serput + movem.l (a7)+,d0/a0 + ; + lea pbuff(pc),a1 + ; + move pput(pc),d1 + and #127,d1 + move.b d0,0(a1,d1) + addq #1,pput + ; + move pget(pc),d1 + and #127,d1 + move.b 0(a1,d1),d0 + addq #1,pget + ; + bsr decodejoy + move.l (a0)+,joyx + move.l (a0),joyb + rts + +maxrotsp equ $40000 +rotacc equ $20000 +rotrevacc equ $40000 +rotsetacc equ $20000 + +rotplayer ;return rot in d0, leave a0 + ; + move joys(pc),d0 ;strafing? + bne.s .norot + move joyx(pc),d0 + beq.s .norot + ; + move.l #rotacc,d1 ;rotacc + move ob_rotspeed(a5),d2 + beq.s .useacc + eor d2,d0 + bpl.s .useacc + move.l #rotrevacc,d1 ;fast rev! +.useacc move joyx(pc),d0 + bpl.s .plus + neg.l d1 +.plus add.l d1,ob_rotspeed(a5) + cmp.l #maxrotsp,ob_rotspeed(a5) + bgt.s .fixaccpl + cmp.l #-maxrotsp,ob_rotspeed(a5) + bge.s .addrot + move.l #-maxrotsp,ob_rotspeed(a5) + bra.s .addrot +.fixaccpl move.l #maxrotsp,ob_rotspeed(a5) + bra.s .addrot + ; +.norot tst.l ob_rotspeed(a5) + beq.s .skip + bpl.s .orpl + add.l #rotsetacc,ob_rotspeed(a5) + ble.s .addrot +.clrrot clr.l ob_rotspeed(a5) + bra.s .skip +.orpl sub.l #rotsetacc,ob_rotspeed(a5) + bmi.s .clrrot + ; +.addrot move.l ob_rotspeed(a5),d0 + add.l d0,ob_rot(a5) + ; +.skip rts + +moveplayer ;work out movement vector into d0/d1...check still/moving! + ; + move joyy(pc),d0 + bne .move + move joys(pc),d0 + beq.s .still + move joyx(pc),d0 + bne.s .strafe + ; +.still move ob_bounce(a5),d1 + bne.s .nob + rts +.nob add #30,ob_bounce(a5) + move ob_bounce(a5),d1 + and #127,d1 + cmp #30,d1 + bcc .fskip + clr ob_bounce(a5) + clr ob_frame(a5) + bra footstep + ; +.strafe ;do strafe! X rot in d0 + ; + move.l camrots(pc),a1 + lsl #6,d0 ;* ninety degrees + add ob_rot(a5),d0 + and #255,d0 + lea 0(a1,d0*8),a1 + ; + move ob_movspeed(a5),d0 + move d0,d1 + muls 2(a1),d0 + add.l d0,d0 + muls 6(a1),d1 + add.l d1,d1 + neg.l d0 + add.l d0,d6 + add.l d1,d7 + bra .check + ; +.move ;and possibly strafe! + ; + ;work out move vec into d0/d1 + ; + neg d0 + muls ob_movspeed(a5),d0 ;speed + move.l camrots(pc),a1 + move ob_rot(a5),d1 + and #255,d1 + lea 0(a1,d1*8),a1 + move d0,d1 + muls 2(a1),d0 + add.l d0,d0 + muls 6(a1),d1 + add.l d1,d1 + neg.l d0 + add.l d0,d6 + add.l d1,d7 + move joys(pc),d0 + beq.s .check + move joyx(pc),d0 + bne.s .strafe +.check ; + bsr checknewslow + beq.s .newpos + bsr adjustpos + beq.s .newpos + bsr adjustpos + beq.s .newpos + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + bra.s .bounce + ; +.newpos move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + ; +.bounce move ob_bounce(a5),d2 + add #20,ob_bounce(a5) + move ob_bounce(a5),d1 + and #255,d2 + cmp #64,d2 + bcc.s .fskip + and #255,d1 + cmp #64,d1 + bcs.s .fskip + ; + bsr footstep +.fskip ; + move.l ob_framespeed(a5),d1 + add.l d1,ob_frame(a5) + and #3,ob_frame(a5) + rts + +checkevent bsr checknew2 + beq.s .rts + ; + move ob_pixsizeadd(a5),d0 + or finished2(pc),d0 + bne .rts + ; + move zo_ev(a4),d0 ;poly->event + bmi.s .rts + ; + cmp #24,d0 + bne.s .notexit + ; + move #3,finished2 ;pattern done! + move #1,ob_pixsizeadd(a5) ;pixel out + tst gametype + beq.s .onewin + move.l player1(pc),a0 + cmp.l a5,a0 + bne.s .gotcha + move.l player2(pc),a0 +.gotcha move #2,ob_pixsizeadd(a0) ;pixel out other player +.onewin ; + bsr dotelesfx + moveq #24,d0 + ; +.notexit cmp #19,d0 + bcc.s .noclr + ; + ;OK, gotta clear all 'event' zones with same type! + ; + move.l map_poly(pc),a0 + move.l map_ppnt(pc),a1 + moveq #32,d1 +.loop2 cmp zo_ev(a0),d0 + bne.s .skip2 + neg zo_ev(a0) +.skip2 add.l d1,a0 + cmp.l a1,a0 + bcs.s .loop2 + ; +.noclr move.l a5,eventobj + movem.l d6-d7,-(a7) + bsr execevent + movem.l (a7)+,d6-d7 + move.l eventobj(pc),a5 + ; +.rts rts + + ;these updated after a call to 'getcntrl' + ; +joyx dc 0 ;left/rite +joyy dc 0 ;for/back +joyb dc 0 ;fire +joys dc 0 ;strafe + +playerlogic bsr playertimers ;do timer stuff... + bsr getcntrl ;player control + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + ; + ;OK, are we getting pushed/squashed? + ; + bsr checknewslow + beq.s .newok + bsr adjustpos + beq.s .newok2 + bsr adjustpos + beq.s .newok2 + ; + subq #1,ob_hitpoints(a5) + ble playerdie + st ob_update(a5) + bra redpal + ; +.newok2 move.l d6,ob_x(a5) + move.l d7,ob_z(a5) +.newok ; + bsr checkevent ;in an event zone? + bsr rotplayer ;rotate + bsr moveplayer ;forward/back/strafe +checkfire ; + tst.b ob_reloadcnt(a5) + beq.s .rok + subq.b #1,ob_reloadcnt(a5) +.rok bsr checkfireb + beq .rts + ; + tst.b ob_reloadcnt(a5) + bne .rts + move.b ob_reload(a5),ob_reloadcnt(a5) + ; + move ob_collwith(a5),d2 + and #3,d2 + eor #3,d2 ;colltype + ; + move ob_weapon(a5),d1 + moveq #4,d0 +.loop btst d0,d1 + dbne d0,.loop + mulu #18,d0 + ; + lea wtable(pc),a0 + ; + movem 0(a0,d0),d4-d6 + movem.l 6(a0,d0),a2-a3 + move.l 14(a0,d0),-(a7) + ; + moveq #0,d3 + bsr shoot + ; + move.l (a7)+,a0 + move.l (a0),a0 + moveq #32,d0 + moveq #0,d1 + bsr playsfx + ; +.rts rts + + ; + ;hitpoints + ;damage + ;speed + ; +wtable dc 1,1,32 + dc.l bullet1,sparks1,shootsfx3 + dc 5,2,36 + dc.l bullet2,sparks2,shootsfx2 + dc 10,3,40 + dc.l bullet3,sparks3,shootsfx + dc 15,4,40 + dc.l bullet4,sparks4,shootsfx4 + dc 20,7,24 + dc.l bullet5,sparks5,shootsfx5 + +adjustposq ; + neg d0 + move d0,d1 + ; + muls zo_a(a4),d0 + add.l d0,d0 + ; + muls zo_b(a4),d1 + add.l d1,d1 + ; + sub.l d0,d6 + sub.l d1,d7 + ; + rts + +adjustpos bsr adjustposq + ; + ;addq #1,(a4) + ;move.l a4,-(a7) + bsr checknewslow + ;move.l (a7)+,a3 + ;addq #1,(a3) + tst d1 + rts + +checkfireb move joyb(pc),d0 + beq.s .nofire + tst ob_lastbut(a5) + bne.s .skip + move d0,ob_lastbut(a5) + rts +.skip moveq #0,d0 + rts +.nofire clr ob_lastbut(a5) + rts + +eventobj dc.l 0 + +calcbounce ;calculate bounce vector...poly in a4, obj in a5 + ; + ;R=2 N (N dot V) - V + ; + ;where R=reflect vector, N=normal to poly, V=original vector + ; + subq #1,ob_bouncecnt(a5) + bge.s .nok + bsr makesparksq + bra killobject +.nok ; + move.l closewall(pc),a4 + movem ob_nxvec(a5),d0-d1 ;normalized dir + movem zo_na(a4),d2-d3 ;normal to poly + neg d2 + ; + ;calc dot product: + ; + move d0,d4 + muls d2,d4 + move d1,d5 + muls d3,d5 + add.l d5,d4 + add.l d4,d4 + swap d4 ;dot product? + ; + muls d4,d2 + lsl.l #2,d2 + swap d0 + clr d0 + sub.l d0,d2 + swap d2 + ; + muls d4,d3 + lsl.l #2,d3 + swap d1 + clr d1 + sub.l d1,d3 + swap d3 + ; + movem d2-d3,ob_nxvec(a5) + ; + neg d2 + muls ob_movspeed(a5),d2 + add.l d2,d2 + muls ob_movspeed(a5),d3 + add.l d3,d3 + ; + movem.l d2-d3,ob_xvec(a5) + ; + bsr checkvecs + beq.s putfire + bra calcbounce + +firelogic ; + bsr checkvecs + bne calcbounce +putfire ; + addq #1,ob_frame(a5) + move ob_frame(a5),d0 + move.l ob_shape(a5),a0 + cmp 2(a0),d0 + bcs.s .skip + clr ob_frame(a5) +.skip ; + rts + +moveblood lea blood(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + add.l #$8000,bl_yvec(a5) + ; + movem.l bl_xvec(a5),d0-d2 + add.l d1,bl_y(a5) + blt.s .ok + ; + move.l a5,a0 + killitem blood + move.l a0,a5 + bra.s .loop + ; +.ok add.l d0,bl_x(a5) + add.l d2,bl_z(a5) + bra.s .loop + ; +.done rts + +drawblood lea blood(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + move bl_x(a5),d0 + sub camx(pc),d0 + move bl_y(a5),d1 + sub camy(pc),d1 + move bl_z(a5),d2 + sub camz(pc),d2 + ; + ;rotate x/z around cam... + ; + move d0,d3 + move d2,d5 + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 ;X + ; + muls cm3(pc),d3 + muls cm4(pc),d2 + add.l d3,d2 + add.l d2,d2 + swap d2 ;Z + ; + tst d2 + beq .loop + cmp #maxz,d2 + bcc .loop + ; + ext.l d0 + lsl.l #focshft,d0 + divs d2,d0 + cmp minx(pc),d0 + blt .loop + cmp maxx(pc),d0 + bge .loop + ; + ext.l d1 + lsl.l #focshft,d1 + divs d2,d1 + cmp miny(pc),d1 + blt .loop + cmp maxy(pc),d1 + bge .loop + ; + cmp #32,d2 + bcc.s .pix + ; + ;blit to screen! + ; + move #$20,$dff09a + ; + bsr savernd + move.l window(pc),a0 + move wi_bh(a0),d0 + subq #8,d0 + bsr rndn + move d0,d2 ;Y + ; + move wi_bw(a0),d0 + subq #8,d0 + bsr rndn ;X + add wi_x(a0),d0 + move d2,d1 + ; + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #50,d2 + bsr blit + ; + bsr loadrnd + ; + move.l a5,a0 + killitem blood + move.l a0,a5 + ; + move #$8020,$dff09a + bra .loop +.pix ; + add midx(pc),d0 + add midy(pc),d1 + ; + move.l darktable(pc),a0 + move 0(a0,d2*2),d3 + ; + move.l cop(pc),a1 + ; + lea coloffs,a2 + add.l 0(a2,d0*4),a1 + mulu copmod(pc),d1 + ; + move blcols(pc,d3*2),d3 + and bl_color(a5),d3 + move d3,0(a1,d1.l) + bra .loop + ; +.done rts + +blcols dc $ccc,$bbb,$aaa,$999,$888,$777,$666,$555 + dc $444,$333,$222,$111,$000,$000,$000,$000 + +shaperender dc.l drawobjnorm ;default! + +drawshape_1sc ;draw shape with one frame, scaled! + ; + move.l ob_shape(a5),a0 + move ob_frame(a5),d0 + add.l 12(a0,d0*4),a0 + move ob_scale(a5),d7 + bra drawshape + +drawshape_1 ; + move.l ob_shape(a5),a0 + move ob_frame(a5),d0 + add.l 12(a0,d0*4),a0 + move #$200,d7 ;scale + bra drawshape + +drawshape_8 ; + ;shape has 8 rotations, and a scale! + ; + bsr calcangle2 + add #16,d0 + sub ob_rot(a5),d0 + lsr #5,d0 + and #7,d0 + move ob_frame(a5),d1 + lsl #3,d1 + or d1,d0 + move.l ob_shape(a5),a0 + move ob_scale(a5),d7 + add.l 12(a0,d0*4),a0 + ; +drawshape move ob_x(a5),d0 + move ob_y(a5),d1 + move ob_z(a5),d2 +drawshape_q ; + ;A0=shape + ;D0=X + ;D1=Y + ;D2=Z + ;D7=sclae factor + ; + ;rotate Z around camera! + ; + sub camx(pc),d0 + sub camy(pc),d1 + sub camz(pc),d2 + ; + move d0,d3 + move d2,d5 + muls cm3(pc),d3 + muls cm4(pc),d2 + add.l d3,d2 + add.l d2,d2 + swap d2 + ; + tst d2 + ble .rts + cmp #maxz,d2 + bcc .rts + ; + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 + ; + move.l memat(pc),a1 + add.l #sh_size,memat + movem d0-d2,sh_x(a1) + move.l a0,sh_shape(a1) + move d7,sh_scale(a1) + move.l shaperender(pc),sh_render(a1) + ; + lea shapelist(pc),a2 +.loop move.l (a2),d0 + beq.s .end + move.l a2,a3 + move.l d0,a2 + cmp sh_z(a2),d2 ;nearer...further in list + ble.s .loop + move.l a2,(a1) + move.l a1,(a3) + rts +.end move.l d0,(a1) + move.l a1,(a2) +.rts rts + +checknew2 ;check trigger zone + move.l map_grid(pc),a0 + addq #4,a0 + bra.s checknew_ + +gs equ 1< furthest wall list. + ; + ;optimizations... + ;check if both z's are negative after rotation + ;check if projected left/rite ends are on screen + ; + addq #1,frame + ; + clr.l inlist + move.l #inlist,inlistf + ; + move.l map_poly(pc),a4 + move.l map_ppnt(pc),a3 + move.l map_grid(pc),a2 + movem camx(pc),d6-d7 ;x,z + lsr #grdshft,d6 + lsr #grdshft,d7 + lea gridoffs(pc),a6 + moveq #(gridoffsf-gridoffs)>>2-1,d5 + ; +.loop movem (a6)+,d0-d1 + add d6,d0 + cmp #32,d0 + bcc .skip + add d7,d1 + cmp #32,d1 + bcc .skip + ; + ;d0,d1=x/z of map to check! + ; + lsl #5,d1 ;Y*32... + add d1,d0 ;+X + lea 0(a2,d0*8),a0 ;mapgrid + move (a0)+,d4 ;how many polys here + bmi .skip + move (a0),d0 ;poly data offset + lea 0(a3,d0*2),a0 + ; +.loop2 move (a0)+,d0 ;poly# + lsl #5,d0 + lea 0(a4,d0),a1 ;actual poly + ; + bsr dothezone + ; + dbf d4,.loop2 ;finish sq + ; +.skip dbf d5,.loop ;gridoffs + ; + ;now do rots/morphs... + ; + lea rotpolys(pc),a3 + ; +.loop3 move.l (a3),a3 + tst.l (a3) + beq.s .rpdone + ; + move.l rp_first(a3),a4 + move rp_num(a3),d4 + subq #1,d4 + ; +.loop4 move.l a4,a1 + bsr dothezone2 + ; + lea 32(a4),a4 + dbf d4,.loop4 + ; + bra.s .loop3 +.rpdone ; +makeoutlist ;create outlist from inlist + ; + clr.l outlist + move.l #outlist,outlistf + ; +.loop lea inlist(pc),a0 + move.l (a0),d0 + beq .done + move.l a0,a2 ;save previous! + move.l d0,a0 + ; + ;OK, see if any are in front of a0... + ; + lea inlist(pc),a1 + ; +.loop2 move.l (a1),d0 + beq .none + move.l a1,a3 + move.l d0,a1 + cmp.l a0,a1 + beq.s .loop2 ;don't compare with self! + ; + ;check screen pos overlap... + ; + move wl_rsx(a0),d0 + cmp wl_lsx(a1),d0 + blt .loop2 + ; + move wl_lsx(a0),d1 + cmp wl_rsx(a1),d1 + bgt .loop2 + ; + ;check near/far Z overlap + ; + move wl_nz(a1),d2 + cmp wl_fz(a0),d2 + bge .loop2 ;behind! + ; + move wl_fz(a1),d2 + cmp wl_nz(a0),d2 + ble .swap + ; + tst wl_open(a1) + bne .swap + ; + ;look at a0 points against a1 line... + ; + movem wl_a(a1),d5-d6 + move.l wl_c(a1),d7 + ; + move wl_lx(a1),d0 + sub wl_lx(a0),d0 + muls d5,d0 + move wl_lz(a1),d1 + sub wl_lz(a0),d1 + muls d6,d1 + add.l d1,d0 + eor.l d7,d0 + ; + move wl_lx(a1),d1 + sub wl_rx(a0),d1 + muls d5,d1 + move wl_lz(a1),d2 + sub wl_rz(a0),d2 + muls d6,d2 + add.l d2,d1 + eor.l d7,d1 + ; + ;if both a0 in front, no swap + ; + move.l d0,d4 + or.l d1,d4 + bpl .loop2 ;both a0's in front of a1! + ; + ;if both a0 behind, swap + ; + and.l d1,d0 + bmi .swap ;both a0's behind a1! + ; + ;look at a1 points against a0 line! + ; + movem wl_a(a0),d5-d6 + move.l wl_c(a0),d7 + ; + move wl_lx(a0),d2 + sub wl_lx(a1),d2 + muls d5,d2 + move wl_lz(a0),d3 + sub wl_lz(a1),d3 + muls d6,d3 + add.l d3,d2 + eor.l d7,d2 + ; + move wl_lx(a0),d3 + sub wl_rx(a1),d3 + muls d5,d3 + move wl_lz(a0),d4 + sub wl_rz(a1),d4 + muls d6,d4 + add.l d4,d3 + eor.l d7,d3 + ; + move.l d2,d4 + and.l d3,d4 + bmi .loop2 ;both a1's behind a0! + ; + or.l d3,d2 + bmi .loop2 + ; +.swap move.l a1,a0 + move.l a3,a2 + bra .loop2 + ; +.none ;OK, none in front of this (a0) + ; + move.l (a0),(a2) ;unlink from inlist + clr.l (a0) + ; + move.l outlistf(pc),a2 + move.l a0,(a2) + move.l a0,outlistf + bra .loop + ; +.done rts + +dothezone2 ; + move frame(pc),d0 + cmp zo_done(a1),d0 + beq.s .rts + move d0,zo_done(a1) + tst zo_open(a1) + bmi.s .rts + ; + movem d4-d7,-(a7) + ; + movem zo_lx(a1),d0-d3 ;x1,z1,x2,z2 + movem camx(pc),d6-d7 + ; + move #maxz,d4 + move d4,d5 + neg d5 + ; + sub d6,d0 + cmp d4,d0 + bge.s .rts2 + cmp d5,d0 + ble.s .rts2 + ; + sub d7,d1 + cmp d4,d1 + bge.s .rts2 + cmp d5,d1 + ble.s .rts2 + ; + sub d6,d2 + cmp d4,d2 + bge.s .rts2 + cmp d5,d2 + ble.s .rts2 + ; + sub d7,d3 + cmp d4,d3 + bge.s .rts2 + cmp d5,d3 + bgt dothezone3 ;.rts2 + ; +.rts2 movem (a7)+,d4-d7 + ; +.rts rts + +dothezone ; + move frame(pc),d0 + cmp zo_done(a1),d0 + beq rts ;.skip3 + move d0,zo_done(a1) + tst zo_open(a1) + bmi rts ;.skip3 + ; + ;OK, setup: + ; + ;d0=lx,d1=lz,d2=rx,d3=rz + ;d4=t,d5=sc,d6=dist + ; + ;back face/dist check... + ; + movem d4-d7,-(a7) + ; + movem zo_lx(a1),d0-d3 ;x1,z1,x2,z2 + movem camx(pc),d6-d7 + ; + sub d6,d0 + sub d7,d1 + sub d6,d2 + sub d7,d3 + ; +dothezone3 move d0,d4 + move d1,d5 + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 + ; + muls cm3(pc),d4 + muls cm4(pc),d1 + add.l d4,d1 + add.l d1,d1 + swap d1 ;LZ + ; + move d2,d4 + move d3,d5 + muls cm1(pc),d2 + muls cm2(pc),d5 + add.l d5,d2 + add.l d2,d2 + swap d2 ;RX + ; + muls cm3(pc),d4 + muls cm4(pc),d3 + add.l d4,d3 + add.l d3,d3 + swap d3 ;RZ + ; + ;check Z's... + tst d1 + bgt.s .zok + tst d3 + ble .skip2 +.zok ; + cmp #maxz,d1 + blt.s .zok2 + cmp #maxz,d3 + bge .skip2 +.zok2 ; + ;do backface check...generate a,b,c... + ; + rol.l #exshft,d0 + rol.l #exshft,d1 + rol.l #exshft,d2 + rol.l #exshft,d3 + ; + move d1,d4 + sub d3,d4 ;a + move d2,d5 + sub d0,d5 ;b + ; + move d0,d6 + muls d4,d6 + move d1,d7 + muls d5,d7 + add.l d7,d6 + bpl.s .front + ; + ;backface showing!... + bra .skip2 +.front ; + move.l memat(pc),a5 + ; + movem d0-d5,wl_lx(a5) + move.l d6,wl_c(a5) + ; + ;work out some screen positions! + tst d1 + bgt.s .z1ok + ; + ;lz bad, rz must be OK... + ; +.ov1 move minx(pc),wl_lsx(a5) + bra.s .z1sk + ; +.z1ok ext.l d0 + lsl.l #focshft,d0 + divs d1,d0 + bvs.s .ov1 + subq #1,d0 + cmp maxx(pc),d0 + bge .skip2 + move d0,wl_lsx(a5) +.z1sk ; + tst d3 + bgt.s .z2ok + ; + ;rz bad, lz must be OK... + ; +.ov2 move maxx(pc),wl_rsx(a5) + bra.s .z2sk + ; +.z2ok ext.l d2 + lsl.l #focshft,d2 + divs d3,d2 + bvs.s .ov2 + addq #1,d2 + cmp minx(pc),d2 + blt .skip2 + move d2,wl_rsx(a5) +.z2sk ; + cmp d1,d3 + bge.s .zskp + exg d1,d3 +.zskp movem d1/d3,wl_nz(a5) ;near/far Z + ; + move.l zo_t(a1),wl_t(a5) + move.l zo_t+4(a1),wl_t+4(a5) + move zo_sc(a1),wl_sc(a5) + move zo_open(a1),wl_open(a5) + ; + ;add to end of inlist... + ; + clr.l (a5) + move.l inlistf(pc),a1 + move.l a5,(a1) + move.l a5,inlistf + add.l #wl_size,memat + ; +.skip2 movem (a7)+,d4-d7 + ; +.skip3 rts + + elseif + +makeoutlist2 ;create outlist from inlist + ; +.loop0 lea inlist(pc),a0 + ; +.loop move.l (a0),d0 + beq .done + move.l a0,a2 ;save previous! + move.l d0,a0 + ; + ;OK, see if any are in front of a0... + ; + lea inlist(pc),a1 + ; +.loop2 move.l (a1),d0 + beq .none + move.l a1,a3 + move.l d0,a1 + ; + cmp.l a0,a1 + beq.s .loop2 ;don't compare with self! + ; + ;see if a1 is in front of a0 + ; + move wl_nz(a1),d0 + cmp wl_fz(a0),d0 + bge .loop2 ;behind! + ; + move wl_fz(a1),d0 + cmp wl_nz(a0),d0 + ble .swap + ; + ;now, compare screen x coords..... + ; + move wl_rsx(a0),d0 + cmp wl_lsx(a1),d0 + blt .loop2 + ; + move wl_lsx(a0),d0 + cmp wl_rsx(a1),d0 + bgt .loop2 + ; + ;look at a0 points against a1 line + ; + ;If Sgn((x3-x1)*a2+(y3-y1)*b2)<>Sgn(c2) + ; If Sgn((x3-x2)*a2+(y3-y2)*b2)<>Sgn(c2) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + movem wl_a(a1),d5-d6 + move.l wl_c(a1),d7 + ; + move wl_lx(a1),d0 + sub wl_lx(a0),d0 + muls d5,d0 + move wl_lz(a1),d1 + sub wl_lz(a0),d1 + muls d6,d1 + add.l d1,d0 + eor.l d7,d0 + ; + move wl_lx(a1),d1 + sub wl_rx(a0),d1 + muls d5,d1 + move wl_lz(a1),d2 + sub wl_rz(a0),d2 + muls d6,d2 + add.l d2,d1 + eor.l d7,d1 + ; + ;OK, screen X's overlap... + ;if both a0 in front, no swap + ; + move.l d0,d4 + or.l d1,d4 + bpl .loop2 + ; + ;if both a0 behind, swap + ; + move.l d0,d4 + and.l d1,d4 + bmi .swap + ; + ;bra .loop2 + ; + ;elseif + ;look at a1 points against a0 line + ; + ;If Sgn((x1-x3)*a1+(y1-y3)*b1)=Sgn(c1) + ; If Sgn((x1-x4)*a1+(y1-y4)*b1)=Sgn(c1) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + movem wl_a(a0),d5-d6 + move.l wl_c(a0),d7 + ; + move wl_lx(a0),d2 + sub wl_lx(a1),d2 + muls d5,d2 + move wl_lz(a0),d3 + sub wl_lz(a1),d3 + muls d6,d3 + add.l d3,d2 + eor.l d7,d2 + ; + move wl_lx(a0),d3 + sub wl_rx(a1),d3 + muls d5,d3 + move wl_lz(a0),d4 + sub wl_rz(a1),d4 + muls d6,d4 + add.l d4,d3 + eor.l d7,d3 + ; + ;if both a1's behind, no swap + ; + move.l d2,d4 + and.l d3,d4 + bmi .loop2 ;both a1's behind... + ; + ;if both a1's in front, swap + move.l d2,d4 + or.l d3,d4 + bpl .swap + ; + bra .loop2 + ; + ;elseif + ; +.swap ;a1 is infront of a0! make a1 new frontmost + bra .loop + move.l a1,a0 + move.l a3,a2 + bra .loop2 + ; +.none ;OK, none in front of this (a0) + ; + move.l (a0),(a2) ;unlink from inlist + clr.l (a0) + move.l outlistf(pc),a2 + move.l a0,(a2) + move.l a0,outlistf + bra .loop0 + ; +.done ;move.l inlist(pc),d0 + ;bne .loop0 + rts + + elseif + +castwalls ;process 'walls' list + ; + move.l castrots(pc),a6 + move minx(pc),d7 + lea 0(a6,d7*8),a6 + move.l vertdraws(pc),a4 + ; +.loop ;do this vert line! + ; + lea outlist(pc),a5 + ; +.loop2 move.l (a5),d0 + beq .empty + move.l d0,a5 + ; + cmp wl_lsx(a5),d7 + blt.s .loop2 + cmp wl_rsx(a5),d7 + bgt.s .loop2 + ; + movem wl_lx(a5),d0-d1 + muls (a6),d0 + muls 2(a6),d1 + add.l d1,d0 ;LX! + bgt.s .loop2 + ; + movem wl_rx(a5),d1-d2 + muls (a6),d1 + muls 2(a6),d2 + add.l d2,d1 ;RX! + blt.s .loop2 + ; + sub.l d0,d1 + ; + swap d1 + tst d1 + ble.s .dfix + neg.l d0 + divu d1,d0 + bvc.s .noov +.dfix moveq #-1,d0 +.noov lsr #1,d0 ;fraction -> unsigned + ; + cmp wl_open(a5),d0 + bcs.s .loop2 + ; + movem wl_lx(a5),d1-d2 + muls 4(a6),d1 + muls 6(a6),d2 + add.l d2,d1 + add.l d1,d1 ;lz + ; + movem wl_rx(a5),d2-d3 + muls 4(a6),d2 + muls 6(a6),d3 + add.l d3,d2 + add.l d2,d2 ;rz + ; + sub.l d1,d2 + swap d2 + muls d0,d2 + add.l d2,d2 + add.l d1,d2 + ; + swap d2 + ; + cmp #exone,d2 + blt .loop2 + cmp #maxz<d2 + jsr -156(a6) + move.l d2,vbr + ; + lea ciaaname,a1 + jsr -498(a6) + move.l d0,ciaa + move.l d0,a0 + movem.l $64(a0),d0-d1 + movem.l d0-d1,rawstuff + move #$4000,$dff09a + move.l rawtable(pc),$64(a0) + move.l #rawkeyread,$68(a0) + move #$c000,$dff09a + ; + move.l #8,d0 + move.l #$10002,d1 + allocmem chipzero + move.l d0,chipzero + ; + move.l #256,d0 ;128 words high max! + moveq #2,d1 + allocmem qstrip + move.l d0,qstrip + ; + move.l #256,d0 + moveq #1,d1 + allocmem maptable + move.l d0,maptable + ; + move.l #32768,d0 + moveq #1,d1 + allocmem memory + move.l d0,memory + ; + move.l #320*vd_size,d0 + moveq #1,d1 + allocmem vertdraws + move.l d0,vertdraws + ; + move.l #maxz*2,d0 + moveq #1,d1 + allocmem darktable + move.l d0,darktable + ; + move.l #16*512*2,d0 ;16 shades, 256 words + moveq #1,d1 + allocmem map_rgbs + ; + move.l #map_rgbs_,map_rgbs + ;move.l d0,map_rgbs + ;add.l #16*512,d0 + move.l d0,map_rgbsw + add.l #16*512,d0 + move.l d0,map_rgbsr + ; + st paused + clr dispnest + clr showflag + clr.l font + bsr initsfx + bsr initvbint + bsr initdisplay + bsr dispoff + ; + lea magicfiles,a0 + bsr loadfiles + ; + move.l magic,a0 + move.l magicpal,a1 + bsr makeiff + bsr showiff + bsr dispon + move #50,vbcounter + ; + lea progfiles,a0 + bsr loadfiles + ; + bsr initbmappal + bsr initmed + bsr initser + bsr calcbaud + bsr makecoloffs + bsr initdarktable + ; + bset #15,remapped + bne .noremap + ; + move.l map_rgbs(pc),a0 + move #-1,(a0)+ + move.l a0,map_rgbsat + ; + lea bullet1,a0 + jsr remapanim + lea bullet2,a0 + jsr remapanim + lea bullet3,a0 + jsr remapanim + lea bullet4,a0 + jsr remapanim + lea bullet5,a0 + jsr remapanim + lea sparks1,a0 + jsr remapanim + lea sparks2,a0 + jsr remapanim + lea sparks3,a0 + jsr remapanim + lea sparks4,a0 + jsr remapanim + lea sparks5,a0 + jsr remapanim + ; + elseif + lea 128*128+groundtile,a2 + move.l a2,a0 + bsr addpal + lea groundtile,a0 + move.l a2,a1 + bsr remap + ; + lea 128*128+ceilingtile,a2 + move.l a2,a0 + bsr addpal + lea ceilingtile,a0 + move.l a2,a1 + bsr remap + elseif + ; + lea qpal,a0 + bsr addpal + lea qcols,a0 + lea qpal,a1 + bsr remap + ; + move.l map_rgbsat(pc),map_rgbsat2 +.noremap ; + move.l map_rgbsat2(pc),map_rgbsat + ; + moveq #0,d0 + bsr loadanobj ;load player1 + moveq #1,d0 + bsr loadanobj ;load player2 + moveq #2,d0 + bsr loadanobj ;load tokens (health) + ; + move.l map_rgbsat(pc),map_rgbsfrom + move.l map_rgbsat(pc),map_rgbsfrom2 + ; + alloclist objects,#maxobjects,#ob_size + alloclist doors,#maxdoors,#do_size + alloclist blood,#maxblood,#bl_size + alloclist gore,#maxgore,#go_size + alloclist rotpolys,#maxrotpolys,#rp_size + ; +.w5sex tst vbcounter + bgt .w5sex + ; + bsr dispoff + lea iffwindow,a0 + bsr freewindow + move.l magic,a1 + freemem magic + move.l magicpal,a1 + freemem magicpal + ; + bra forbid + + elseif +;OK, sample device list prog... +; +d=OldOpenLibrary_("dos.library") +r=Peek.l(d+34) ;root +i=Peek.l(r+24):i LSL 2 ;info +l=Peek.l(i+4) ;list! + +While l + l LSL 2 + s=Peek.l(l+40):s LSL 2 + NPrint Peeks$(s+1,Peek.b(s)) + l=Peek.l(l) +Wend + elseif + +checkdatadisk ;return eq if gloomdata: found! + ; + move.l dosbase(pc),a0 + move.l 34(a0),a0 + move.l 24(a0),a0 + add.l a0,a0 + add.l a0,a0 + addq #4,a0 + ; +.loop move.l (a0),d0 + beq.s .done + lsl.l #2,d0 + move.l d0,a0 + move.l 40(a0),a1 + add.l a1,a1 + add.l a1,a1 + cmp.b #9,(a1)+ ;9 chars + bne.s .loop + lea lockname(pc),a2 + moveq #8,d0 ;check 9 chars! +.loop2 cmp.b (a1)+,(a2)+ + bne.s .loop + dbf d0,.loop2 + rts + ; +.done moveq #-1,d0 + rts + +askdatadisk ; + bsr checkdatadisk + beq .dataok ;already there? + ; + sub.l a0,a0 + bsr makeiff + bsr showiff + lea diskmenu,a4 + lea iffwindow,a6 + bsr initmenu + bsr dispon + ; + ;OK, gotta swap disks and pick up data files! + ; +.wfd bsr permit + move.l grbase(pc),a6 + jsr -270(a6) + bsr forbid + bsr checkdatadisk + bne.s .wfd + ; + bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bsr freewindow + ; +.dataok bsr permit + bsr undir ;release old lock! + move.l #lockname,d1 + moveq #-2,d2 + move.l dosbase(pc),a6 + jsr -84(a6) ;lock? + move.l d0,d1 + beq.s .wfd + jsr -126(a6) ;make current dir! + move.l d0,oldlock + ; + lea datafiles,a0 + bsr loadfiles + bsr forbid + ; + rts + +undir move.l oldlock(pc),d1 + beq.s .rts + clr gloomdata + clr.l oldlock + move.l dosbase(pc),a6 + jsr -126(a6) ;CD to old current dir + move.l d0,d1 + jsr -90(a6) ;unlock old (mine!) +.rts rts + +oldlock dc.l 0 + +lockname dc.b 'gloomdata:',0 + even + +lagtext dc.b 'lAG?',0 + even + +syncup ;time to calculate frame lag! + ; + ;master can establish lag time... + ; + move linked(pc),d0 + bne.s .li +.rts rts +.li move.l lagtext(pc),d0 + bsr longput +.rl lea lagtext(pc),a2 +.rw bsr serwait + cmp.b (a2)+,d0 + bne.s .rl + tst.b (a2) + bne.s .rw + ; +calclag tst linked + bmi .slave + ; + ;MASTER - average out 32 sends of random data! + ; + moveq #0,d6 ;sum + moveq #31,d5 ;32 samples + ; +.mloop moveq #0,d7 + add #69,d0 + bsr vwait + bsr serput + ; +.mwait addq #1,d7 + bsr vwait + bsr serget + bmi.s .mwait + ; +.got add d7,d6 + dbf d5,.mloop + ; + lsr #7,d6 ;/32 = avg. /2=half, /2=25 FPS + addq #1,d6 ;safety... + ; + move d6,d0 + move d0,lagtime + bsr serput + bra initlag + ; +.slave ;OK, bounce back 32 items... + ; + moveq #31,d5 +.sloop bsr serwait + bsr serput + dbf d5,.sloop + ; + ;now, wait to get told lagtime! + ; + bsr serwait + and #255,d0 + move d0,lagtime + ; +initlag ;what to do... + ; + ;stick 'lagtime' dummy 'no events' into rec buff! + ;stick 'lagtime' dummy 'noevents' into pcntrl buffer + ; + move #$4000,$dff09a + ; + lea pbuff(pc),a0 ;controller buffer + lea rbuff(pc),a1 ;ser rec. buffer + moveq #31,d1 ;32*4=128 bytes! + moveq #0,d0 +.loop move.l d0,(a0)+ + move.l d0,(a1)+ + dbf d1,.loop + ; + move lagtime(pc),d0 + ; + clr tput + clr tget + clr pget + clr rget + move d0,pput + move d0,rput + ; + move #$c000,$dff09a + ; + bsr vwait + ; + rts + +lagtime dc 0 + +qsync bsr vwait + move.b #$80,d0 + bsr serput + bsr serget + bmi.s qsync + cmp.b #$80,d0 + bne.s qsync + bsr vwait + moveq #0,d0 + bsr serput + bsr serwait + tst.b d0 + bne.s qsync + ; + rts + +initnewgame move gametype(pc),twowins + beq.s .skip + tst linked + beq.s .skip + ; + ifeq debugser + clr twowins + endc +.skip ; + bset #15,gloomdata + bne.s .gotdata + ; + bsr askdatadisk +.gotdata ; + bsr qsync + ; + move.l medat(pc),a1 + jsr 12(a1) + ;move #$4000,fadevol + cmp #2,gametype + bne normalgame + ; + ;combat type game! + ; + move #6,p1_ob_collwith + move #5,p2_ob_collwith + ; + lea combat,a0 + lea combatpal,a1 + bsr makeiff + bsr showiff + ; + lea combatmenu,a4 + lea iffwindow,a6 + bsr initmenu + ; + bsr dispon + ; +.loop bsr selmenu + tst d0 + beq .play + ; + ;change number of wins... + ; + addq.b #1,comnum + cmp.b #'9',comnum + bls .loop + move.b #'2',comnum + bra .loop + ; +.play bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bsr freewindow + ; + move.b comnum(pc),d0 + sub.b #'0',d0 + ext d0 + move d0,p1lives + move d0,p2lives + rts + ; +normalgame move #4,p1_ob_collwith + move #4,p2_ob_collwith + ; + move.l script,a0 + move.l a0,scriptat + lea conttxts(pc),a1 + lea conts(pc),a2 + moveq #0,d7 ;how many conts found! + ; + ;OK, any continue points in script? + ; +.loop move.b (a0)+,d0 + cmp.b #10,d0 + beq.s .loop + and #31,d0 + bne.s .more +.loop2 cmp.b #10,(a0)+ + bne.s .loop2 + bra.s .loop +.more cmp #27,d0 + bcc.s .loop2 + add #96,d0 + ; + ;command! fetch the rest... + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + addq #1,a0 ;skip '_' + cmp.l #'cont',d0 + beq.s .cont + cmp.l #'done',d0 + beq.s .done + ; +.eol cmp.b #10,(a0)+ + bne.s .eol + bra .loop + ; +.cont ;continue point! + ; + lea context(pc),a3 +.cont2 move.b (a3)+,(a1)+ + bne.s .cont2 + subq #1,a1 + ; +.clp move.b (a0)+,(a1) + cmp.b #'_',(a1)+ + bne.s .clp + clr.b -1(a1) + move.l a0,(a2)+ + addq #1,d7 + bra .eol + ; +.done tst d7 + beq initpstuff + addq #1,d7 + move.b d7,contmenu + ; + ;OK, need a continue game menu... + ; + lea gloom,a0 + lea gloompal,a1 + bsr makeiff + bsr showiff + ; + lea contmenu,a4 + lea iffwindow,a6 + bsr initmenu + bsr dispon + ; + bsr selmenu + ; + bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bsr freewindow + ; + move curropt(pc),d0 + beq initpstuff + lea conts(pc),a0 + move.l -4(a0,d0*4),scriptat + ; +initpstuff moveq #3,d0 + tst linked + beq.s .nlink + moveq #6,d0 +.nlink move d0,p1lives + move d0,p2lives + move #25,p1health + move #25,p2health + move #1,p1weapon + move #1,p2weapon + move.b #ireload,p1reload + move.b #ireload,p2reload + ; + rts + +conts ds.l 8 ;8 slots! + +combatmenu dc.b 2 + dc.b 'play combat game',0 + dc.b 'start with ' +comnum dc.b '3 lives',0 + even + +context dc.b 'CONTINUE FROM ',0 + even + +contmenu dc.b 1 + dc.b 'START NEW GAME',0 +conttxts ds.b 160 + even + +execscript_med bsr waitquiet + ; + move.l medat(pc),a1 + move.l loadingmed(pc),a0 + jsr 8(a1) ;start title music! + ; +execscript cmp #2,gametype + beq scriptplay ;no script for combat game! + ; + move.l scriptat(pc),a0 + ; +.loop move.b (a0)+,d0 + cmp.b #10,d0 + beq.s .loop + and #31,d0 + bne.s .more +.loop2 cmp.b #10,(a0)+ + bne.s .loop2 + bra.s .loop +.more cmp #27,d0 + bcc.s .loop2 + add #96,d0 + ; + ;command! fetch the rest... + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + addq #1,a0 ;skip '_' + move.l a0,scriptat + cmp.l #'pict',d0 + beq scriptpict + cmp.l #'draw',d0 + beq scriptdraw + cmp.l #'text',d0 + beq scripttext + cmp.l #'wait',d0 + beq scriptwait + cmp.l #'play',d0 + beq scriptplay + cmp.l #'done',d0 + beq scriptdone + cmp.l #'dark',d0 + beq scriptdark + cmp.l #'show',d0 + beq scriptshow + cmp.l #'hide',d0 + beq scripthide + cmp.l #'loop',d0 + beq scriptloop + cmp.l #'rest',d0 + beq scriptrest + cmp.l #'cont',d0 + beq scriptcont + cmp.l #'tile',d0 + beq scripttile + ; + warn #$f80 + ; + ;Hmmm....bad command +.fucked ; +scriptdone bsr freeiff + rts + +sccont dc.b 'cont_' + even + +scriptcont cmp.b #10,(a0)+ + bne.s scriptcont + move.l a0,scriptat + ; + bra execscript + + ;a0=name, a1=mem, d0=length + +scriptrest ;restart point! change to 'cont_' and save script out... + ; + lea sccont(pc),a1 + subq #5,a0 +.loop move.b (a1)+,(a0) + cmp.b #'_',(a0)+ + bne.s .loop + ; +.leol cmp.b #10,(a0)+ + bne.s .leol + move.l a0,scriptat + ; + ;save script! + ; + bsr permit + ; + lea scriptname,a0 + move.l script,a1 + move.l -12(a1),d0 + subq.l #8,d0 + subq.l #8,d0 + ; + bsr savefile + ; + bsr forbid + bra execscript + +scriptloop move.l script,scriptat + bra execscript + +scripthide bsr dispoff + bra execscript + +scriptshow clr pdelay + bsr dispon + bra execscript + +scriptdraw move.l pic,a0 + move.l picpal,a1 + bsr makeiff + bsr showiff + bra execscript + +fetchrest move.l scriptat,a0 + moveq #-1,d0 +.loop addq #1,d0 + move.b (a0)+,(a1) + cmp.b #10,(a1)+ + bne.s .loop + clr.b -(a1) + move.l a0,scriptat + rts + +picpath dc.b 'pics/' +picname ds.b 64 +pic_pal dc.b '.pal',0 + even + +pic dc.l 0 +picpal dc.l 0 + +freeiff push + move.l pic(pc),d0 + beq.s .skip1 + clr.l pic + move.l d0,a1 + freemem pic +.skip1 move.l picpal(pc),d0 + beq.s .skip2 + clr.l picpal + move.l d0,a1 + freemem picpal +.skip2 pull + rts + +freetiles push + move.l floor(pc),d0 + beq.s .skip1 + clr.l floor + move.l d0,a1 + freemem floor +.skip1 move.l roof(pc),d0 + beq.s .skip2 + clr.l roof + move.l d0,a1 + freemem roof +.skip2 pull + rts + +floorname dc.b 'txts/floor' +floortag ds.b 32 + even + +roofname dc.b 'txts/roof' +rooftag ds.b 32 + even + +scripttile ;tile command...load in floor/roof tiles! + ; + lea floortag(pc),a1 + bsr fetchrest + bsr loadtile + bra execscript + +loadtile ; + ;floor tag=tile extension... + ; + bsr freetiles + lea floortag(pc),a0 + lea rooftag(pc),a1 +.loop move.b (a0)+,(a1)+ + bne.s .loop + ; + bsr permit + lea floorname(pc),a0 + moveq #1,d1 + jsr loadfile + move.l d0,floor + lea roofname(pc),a0 + moveq #1,d1 + jsr loadfile + move.l d0,roof + bsr forbid + ; + move.l map_rgbsfrom,map_rgbsat + ; + move.l floor(pc),a2 + lea 128*128(a2),a2 + move.l a2,a0 + bsr addpal + move.l floor(pc),a0 + move.l a2,a1 + bsr remap + ; + move.l roof(pc),a2 + lea 128*128(a2),a2 + move.l a2,a0 + bsr addpal + move.l roof(pc),a0 + move.l a2,a1 + bsr remap + ; + move.l map_rgbsat,map_rgbsfrom2 + rts + +scriptpict ;load an iff + bsr freeiff + lea picname,a1 + bsr fetchrest + move.l a1,-(a7) + bsr permit + lea picpath,a0 + moveq #1,d1 + jsr loadfile + move.l d0,pic + lea pic_pal,a0 + move.l (a7)+,a1 +.loop move.b (a0)+,(a1)+ + bne.s .loop + lea picpath,a0 + moveq #1,d1 + jsr loadfile + move.l d0,picpal + bsr forbid + bra execscript + +scriptdark move.l iffwindow+wi_cop,a0 ;copperlist to darken! + ; + ;bank,32,bank,32... + ; + addq #6,a0 + moveq #3,d0 ;4 lots of 32 colours + moveq #31,d1 + ; + ;skip first 8 + ; + ;subq #8,d1 + ;lea 32(a0),a0 +.loop ; + move (a0),d2 ;hi nyb + move 132(a0),d3 ;lo nyb! + and #$eee,d3 + lsr #1,d3 + move d2,d4 + and #$111,d4 + lsl #3,d4 + or d4,d3 + and #$eee,d2 + lsr #1,d2 + move d2,(a0) + move d3,132(a0) + ; + addq #4,a0 + dbf d1,.loop + moveq #31,d1 + lea 136(a0),a0 + dbf d0,.loop + bra execscript + +text ds.b 64 + +scripttext ;print text on iff + ;a6=window, a4=message, d0=length of message, d6=Y + ; + move #2,pdelay + ; + lea text,a1 + bsr fetchrest + ; + lea iffwindow,a6 + lea text,a4 + move wi_bh(a6),d6 + sub #7,d6 + bsr printmess2 + ; + tst pdelay + bmi execscript + clr pdelay + bra execscript + +scriptwait ; + tst pdelay + bmi execscript + bsr waitany + bra execscript + +checkany ; + movem.l d0-d7/a0-a6,-(a7) + bsr vwait + bsr readmenujoys + tst joyb4 + movem.l (a7)+,d0-d7/a0-a6 + rts + +waitany movem.l d0-d7/a0-a6,-(a7) +.wait bsr vwait + bsr readmenujoys + tst joyb4 + beq .wait + ; +.unwait bsr vwait + bsr readmenujoys + tst joyb4 + bne .unwait + ; + movem.l (a7)+,d0-d7/a0-a6 + rts + +copywin moveq #wi_size/2-1,d0 +.loop move (a0)+,(a1)+ + dbf d0,.loop + rts + +freeobjlist lea objlist,a2 + ; +.loop move.l (a2)+,d0 + beq.s .done + move.l d0,a3 + ; + move.l (a3),d0 + beq.s .skip + move.l d0,a1 + freemem obj + clr.l (a3) +.skip ; + move.l 4(a3),d0 + beq.s .loop + move.l d0,a1 + freemem objchunks + clr.l 4(a3) + bra.s .loop + ; +.done rts + +freeobjlist2 lea objlist,a2 + ; +.loop move.l -(a2),d0 + beq.s .done + move.l d0,a3 + ; + move.l (a3),d0 + beq.s .skip + move.l d0,a1 + freemem obj2 + clr.l (a3) +.skip ; + move.l 4(a3),d0 + beq.s .loop + move.l d0,a1 + freemem objchunks2 + clr.l 4(a3) + bra.s .loop + ; +.done rts + +mappath dc.b 'maps/' +mapname ds.b 64 + even + +getwindow tst twowins + bne.s .p2 + ; + lea defwindow1_1p,a0 + lea window1,a1 + bsr copywin + rts + ; +.p2 lea defwindow1_2p,a0 + lea window1,a1 + bsr copywin + ; + lea defwindow2_2p,a0 + lea window2,a1 + bsr copywin + rts + +putwindow tst twowins + bne.s .p2 + ; + lea window1,a0 + lea defwindow1_1p,a1 + bsr copywin + rts + ; +.p2 lea window1,a0 + lea defwindow1_2p,a1 + bsr copywin + ; + lea window2,a0 + lea defwindow2_2p,a1 + bsr copywin + rts + +linkswap tst linked + bpl.s .rts + movem.l player1(pc),a0-a1 + exg a0,a1 + movem.l a0-a1,player1 + move ob_cntrl(a0),d0 + move ob_cntrl(a1),d1 + move d1,ob_cntrl(a0) + move d0,ob_cntrl(a1) +.rts rts + +pickcombat ;pick combat zone... + ;put name into a1... + ; + lea comname(pc),a0 +.loop move.b (a0)+,(a1)+ + bne.s .loop + ; + lea combat,a0 + lea combatpal,a1 + bsr makeiff + bsr showiff + bsr dispon + lea tilenum(pc),a0 + lea floortag(pc),a1 +.loop2 move.b (a0)+,(a1)+ + bne.s .loop2 + bra loadtile + +tilenum dc.b '1',0 + +comname dc.b 'map0_1',0 + even + +scriptplay ; + lea mapname,a1 + ; + cmp #2,gametype + bne.s .notcombat + ; + ;OK, combat game is a happening... + ; + ;select from on-screen maps. + ; + bsr pickcombat + bra.s .gotname + ; +.notcombat bsr fetchrest +.gotname ; + zerolist objects,ob_size + zerolist doors,do_size + zerolist blood,bl_size + zerolist gore,go_size + zerolist rotpolys,rp_size + ; + tst twowins + beq.s .not2pg + ; + ;OK, see if either player is out of lives...if so, revert to single window + ; + move p2lives(pc),d0 + beq.s .g0 + move p1lives(pc),d0 + bne.s .not2pg + move p2health(pc),p1health + move p2weapon(pc),p1weapon + move p2lives(pc),p1lives + move p2reload(pc),p1reload +.g0 bsr swaphflags + clr gametype + clr twowins + ; +.not2pg clr.l player1 + clr.l player2 + tst gametype + bne.s .p2 + not.l player2 ;no player 2! +.p2 ; + bsr permit + ; + move.l map_test(pc),d0 + bne.s .use + move.l #mappath,d0 +.use move.l d0,a0 + moveq #1,d1 + bsr loadfile + move.l d0,map_map + ; + bsr initmap + bsr loadtxts + move #$a3f7,d0 + bsr seedrnd + moveq #1,d0 + bsr execevent + bsr calcpalettes + bsr forbid + bsr makepalettes + bsr dispoff + bsr freewindows + bsr getwindow + ; + ;init player vars... + ; + move.l player1,a5 + ; + move p1lives(pc),ob_lives(a5) + ; + cmp #2,gametype + beq.s .psk + ; + move p1health(pc),d0 + bne.s .p1hok + move #25,p1health + move #1,p1weapon + move.b #ireload,p1reload +.p1hok move p1health(pc),ob_hitpoints(a5) + move p1weapon(pc),ob_weapon(a5) + move.b p1reload(pc),ob_reload(a5) + ; +.psk bsr resetplayer + ; + tst gametype + beq .p1 + ; + move.l player2,a5 + move p2lives(pc),ob_lives(a5) + ; + cmp #2,gametype + beq.s .psk2 + ; + move p2health(pc),d0 + bne.s .p2hok + move #25,p2health + clr p2weapon +.p2hok move p2health(pc),ob_hitpoints(a5) + move p2weapon(pc),ob_weapon(a5) + move.b p2reload(pc),ob_reload(a5) + ; +.psk2 bsr resetplayer +.p1 ; + bsr linkswap + ; + ;save player positions at start of level! + ; + move.l player1(pc),a5 + move ob_x(a5),p1x + move ob_z(a5),p1z + move ob_rot(a5),p1r + tst gametype + beq.s .shit + move.l player2(pc),a5 + move ob_x(a5),p2x + move ob_z(a5),p2z + move ob_rot(a5),p2r +.shit ; + ;init windows... + ; + move.l player1(pc),a5 + move.l #window1,ob_window(a5) + move.l ob_window(a5),a0 + bsr makewindow + move.l ob_window(a5),a0 + bsr showwindow + bsr initstats + ; + tst twowins + beq.s .onew + ; + move.l player2(pc),a5 + move.l #window2,ob_window(a5) + move.l ob_window(a5),a0 + bsr makewindow + move.l ob_window(a5),a0 + bsr showwindow + bsr initstats +.onew ; + bsr calcbpos + move #$4000,fadevol ;fadeout med! + ; + ;move.l medat(pc),a1 + ;clr fadevol + ;jsr 12(a1) ;stop song + ; + move #$1f3a,d0 + bsr seedrnd + clr finished + clr finished2 + clr doneflag + clr showflag + ; + bsr syncup + ; + clr framecnt + clr paused + bsr drawall2 + bsr dispon + ; + bsr chaton + ; +mainloop bsr drawall + st showflag + ; + qkey $45 ;ESC? + beq .notesc + bsr dogamemenu +.notesc move finished(pc),d0 + beq.s mainloop + ; + st paused + bsr chatoff + ; +.unlk bsr dispoff + bsr freewindows + bsr linkswap + bsr freeobjlist + bsr freetxts + bsr freemap + ; + ;finished codes... + ; + ;1 : quit (esc/exit game) + ;2 : death (both players dead) + ;3 : pattern completed + ;4 : combat game...someone died! + ; + move finished(pc),d0 + and #127,d0 + subq #1,d0 + beq exitgame + subq #1,d0 + beq gameover + subq #1,d0 + beq levelover + subq #1,d0 + beq combatover + ; +.fuck warn #$f08 + warn #$80f + bra.s .fuck + ; +exitgame bsr sendback + bsr freeiff + bra freetiles +gameover ; + bsr freeiff + bra freetiles +levelover ; + move.l player1,a5 + move ob_hitpoints(a5),p1health + move ob_weapon(a5),p1weapon + move ob_lives(a5),p1lives + move.b ob_reload(a5),p1reload + ; + tst gametype + beq.s .p1p1 + ; + move.l player2,a5 + move ob_hitpoints(a5),p2health + move ob_weapon(a5),p2weapon + move ob_lives(a5),p2lives + move.b ob_reload(a5),p2reload +.p1p1 ; + tst.l map_test + beq execscript_med + bra exitgame ;tell other! + ; +combatover move.l player1(pc),a5 + move ob_lives(a5),p1lives + beq .p1lost + move.l player2(pc),a5 + move ob_lives(a5),p2lives + beq .p2lost + ; + ;combat game continues! + ; + bra execscript_med + ; +.p1lost ;player 1 lost the game + ; + lea p2wins(pc),a0 + tst linked + beq .combatmess + lea ploses_(pc),a0 + bgt .combatmess + lea pwins_(pc),a0 + bra .combatmess + ; +.p2lost ;player 2 lost combat game + ; + lea p1wins(pc),a0 + tst linked + beq .combatmess + lea ploses_(pc),a0 + blt .combatmess + lea pwins_(pc),a0 + ; +.combatmess move.l a0,-(a7) + ; + bsr freeiff + bsr freetiles + lea combat,a0 + lea combatpal,a1 + jsr makeiff + jsr showiff + move.l (a7)+,a4 + lea iffwindow,a6 + bsr initmenu + bsr dispon + ; + bsr selmenu + ; + bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bra freewindow + +sendback move linked(pc),d0 + beq.s .rts + move finished(pc),d0 + bset #7,d0 + beq serput +.rts rts + +p1wins dc.b 1,'player one wins combat game!',0 + even +p2wins dc.b 1,'player two wins combat game!',0 + even +pwins_ dc.b 1,'player wins combat game!',0 + even +ploses_ dc.b 1,'player loses combat game!',0 + even + +freemap move.l map_map,d0 + beq.s .done + move.l d0,a1 + freemem map + clr.l map_map +.done rts + +dointro ; + lea gloom,a0 + lea gloompal,a1 + jsr makeiff + jsr showiff + ; + lea gloombrush,a0 + lea iffwindow,a1 + move.l wi_bmap(a1),a1 + add.l #168*7*40,a1 + bsr decodeiff + ; + bsr dispon + ; + bsr chaton + ; + bsr waitany + ; + lea startmenu,a4 + tst linked + beq.s .use + lea startmenu2,a4 +.use lea iffwindow,a6 + jsr initmenu + ; +.sel jsr selmenu + ; + tst linked + beq.s .notlinked + ; + cmp #2,d0 + bcs .newgame2 + subq #2,d0 + beq .unlink + subq #1,d0 + beq .about + subq #1,d0 + beq .exitgloom + bra .sel +.unlink ; + bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bsr freewindow + clr linked + bra dointro + ; +.newgame2 addq #1,d0 + move d0,gametype + bsr chatoff + bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bra freewindow + ; +.notlinked cmp #3,d0 + bcs .newgame + ; + subq #3,d0 + bne .notp1 + ; + lea p1ctype(pc),a1 + lea p1_ob_cntrl,a2 + lea p2_ob_cntrl,a3 + tst linked + beq.s .here + ; + addq #1,(a2) ;0,1,2 + cmp #3,(a2) + bcs.s .pok2 + clr (a2) +.pok2 move (a2),d0 + bra.s .there + ; +.here addq #1,(a2) + cmp #3,(a2) + bcs.s .pok + clr (a2) +.pok move (a2),d0 + cmp (a3),d0 + beq.s .here + ; +.there lea popts(pc),a0 + move.l 0(a0,d0*4),a0 + ; +.sk move.b (a0)+,(a1)+ + bne.s .sk + bra .sel + ; +.notp1 subq #1,d0 + bne.s .notp2 + ; + lea p2ctype(pc),a1 + lea p2_ob_cntrl,a2 + lea p1_ob_cntrl,a3 + bra.s .here + ; +.notp2 subq #1,d0 + bne.s .notlink + ; + bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bsr freewindow + bsr linkup + bra dointro + ; +.notlink subq #1,d0 + bne.s .notvile + ; + addq #1,mode + and #1,mode + move mode(pc),d0 + lea modes,a0 + move.l 0(a0,d0*4),a0 + lea modetxt,a1 +.moloop move.b (a0)+,(a1)+ + bne.s .moloop + ; + bra .sel + ; +.notvile subq #1,d0 + bne .notabout + ; +.about ;about text... + ; + bsr dispoff + bsr finitmenu + lea gloom,a0 + lea gloompal,a1 + bsr makeiff + bsr showiff + ; + lea abouttext,a4 + lea iffwindow,a6 + bsr initmenu + move numopts(pc),-(a7) + move #1,numopts + ; + bsr dispon + bsr selmenu + ; + move (a7)+,numopts + ; + bsr dispoff + bsr finitmenu + bra dointro + ; +.notabout subq #1,d0 + bne .sel + ; +.exitgloom moveq #4,d0 + ; +.newgame move d0,gametype + ; + bsr chatoff + jsr dispoff + jsr finitmenu + lea iffwindow,a0 + bra freewindow + +linkup ;link up... + ; + sub.l a0,a0 + bsr makeiff + bsr showiff + lea linkupmenu,a4 + lea iffwindow,a6 + bsr initmenu + ; + bsr dispon + ; +.loop bsr selmenu + cmp #3,d0 + bne.s .notb + bsr optbaud + bra.s .loop + ; +.notb move d0,-(a7) + bsr dispoff + bsr finitmenu + move (a7)+,d0 + beq nulllink + cmp #4,d0 + beq.s .rts + subq #1,d0 + beq dialup + subq #1,d0 + beq answer +.rts rts +answer lea ata(pc),a0 + move #-1,linked + bra doconnect + +dialup ; + lea phonenum(pc),a0 + move.l a0,a1 + move.l a0,phoneat +.clr tst.b (a0) + beq.s .clrd + move.b #32,(a0)+ + bra.s .clr +.clrd move.b #127,(a1) + ; + sub.l a0,a0 + bsr makeiff + bsr showiff + lea linkmenu0,a4 + lea iffwindow,a6 + bsr initmenu + bsr dispon + ; +.loop moveq #-1,d0 + move.l d0,keyoff + ; +.wkey cmp.l keyoff(pc),d0 + beq.s .wkey + ; + move keyoff(pc),d0 + lsl #3,d0 + or keybit(pc),d0 + beq.s .wkey + ; + cmp #$44,d0 + beq.s .done + cmp #$41,d0 + bne.s .notdel + ; + move.l phoneat(pc),a0 + cmp.l #phonenum,a0 + beq.s .loop + cmp.b #127,(a0) + bne.s .noc + move.b #32,(a0) + subq #1,a0 +.noc move.b #127,(a0) + move.l a0,phoneat + bra.s .skinc + ; +.notdel cmp #10,d0 + bhi.s .loop + bcs.s .nz + moveq #0,d0 +.nz add #48,d0 + ; + move.l phoneat(pc),a0 + move.b d0,(a0)+ + tst.b (a0) + beq.s .skinc + move.b #127,(a0) + move.l a0,phoneat + ; +.skinc bsr vwait + bsr optoff + bsr opton + bra .loop + ; +.done bsr dispoff + bsr finitmenu + ; + lea pbuff(pc),a0 ;use this for connect string! + move.l a0,a2 + ; + move.l #'ATDT',(a2)+ + lea phonenum(pc),a1 +.cpn move.b (a1)+,(a2) + beq.s .null + cmp.b #32,(a2)+ + bne.s .cpn + subq #1,a2 +.null move.b #13,(a2)+ + move.b #10,(a2)+ + clr.b (a2) + ; + move #1,linked + bra doconnect + +phoneat dc.l phonenum + +nulllink ; + lea connect(pc),a0 +doconnect ; + bsr sendstring + bsr waitconnect + beq .calcmaster + ; + clr linked + rts + ; + ;OK, randomly determine who is master and who is slave! + ; + ;faster computer SHOULD be master! + ; + ;let's try, number of rnd divs/frame...send as a long word! + ; +.calcmaster tst linked + bne .linked + ; + moveq #0,d7 + move #$4000,$dff09a ;ints off! + ; +.vwloop btst #5,$dff01f + beq.s .vwloop + move #$20,$dff09c +.cmloop ; + btst #5,$dff01f + bne.s .cmdone + bsr rndw + ext.l d0 + divs #$a5a5,d0 + addq.l #1,d7 + bra.s .cmloop +.cmdone ; + move #$20,$dff09c + move #$c000,$dff09a + ; + move.l d7,d0 + bsr longput + bsr longget + cmp.l d0,d7 + beq.s .calcmaster + blt.s .skip + ; + ;I'm player 1 + move #1,linked + bra.s .linked + ; +.skip ;I'm actually player 2! + move #-1,linked + ; +.linked move #3,p2_ob_cntrl + sub.l a0,a0 + bsr makeiff + bsr showiff + lea incharge(pc),a4 + tst linked + bgt.s .goz + lea notincharge(pc),a4 +.goz lea iffwindow,a6 + bsr initmenu + bsr dispon + ; + bsr chaton + ; + bsr selmenu + ; + bsr dispoff + bra finitmenu + +longput ;send ser long in d0 + ; + moveq #3,d1 +.loop rol.l #8,d0 + movem.l d0-d1,-(a7) + bsr vwait + bsr serput + movem.l (a7)+,d0-d1 + dbf d1,.loop + rts + +longget ;get ser long in d0 + ; + move.l d2,-(a7) + moveq #3,d1 +.loop movem.l d1-d2,-(a7) + bsr serwait + movem.l (a7)+,d1-d2 + lsl.l #8,d2 + move.b d0,d2 + dbf d1,.loop + move.l d2,d0 + move.l (a7)+,d2 + rts + +incharge dc.b 1 + dc.b 'player selects options',0 + even + +notincharge dc.b 1 + dc.b 'other player selects options',0 + even + +sendstring ;a0=string to send + ; + move.l a0,a2 +.loop bsr vwait + move.b (a2)+,d0 + beq.s .done + bsr serput + bra.s .loop +.done rts + +waitconnect ;wait for 'CONNECT' to arrive... + ;return eq if OK, else ne if 'esc'ed or not received. + ; + sub.l a0,a0 + bsr makeiff + bsr showiff + lea linkmess,a4 + lea iffwindow,a6 + bsr initmenu + bsr dispon + ; +.retry lea wconnect(pc),a2 + ; +.loop qkey $45 ;ESC? + bne .notok + bsr serget + bpl.s .sgok + bsr vwait + bra.s .loop +.sgok cmp.b (a2)+,d0 + bne.s .retry + tst.b (a2) + bne.s .loop + ; +.ok ;OK, connect xxxx ends with 13,10... + ; +.w10 qkey $45 + bne .notok + bsr serget + bpl.s .sgok2 + bsr vwait + bra.s .w10 +.sgok2 cmp.b #10,d0 + bne.s .w10 + ; + bsr dispoff + bsr finitmenu + moveq #0,d0 + rts + ; +.notok bsr dispoff + bsr finitmenu + moveq #-1,d0 + rts + +optbaud addq #1,baud + cmp #6,baud + bcs.s .ok + clr baud +.ok ; +calcbaud move baud(pc),d0 + lea bauds(pc),a0 + move.l 4(a0,d0*8),a0 ;baud text! + lea baudtext(pc),a1 +.loop move.b (a0)+,(a1)+ + bne.s .loop + ; + move baud(pc),d0 + lea bauds(pc),a1 + move.l 0(a1,d0*8),d0 ;2400 etc. + move.l baudconst(pc),d1 + divu d0,d1 + subq #1,d1 + move d1,$dff032 + ; + rts + +connect dc.b 'CONNECT',13,10,0 + even + +wconnect dc.b 'CONNECT',0 + even + +ata dc.b 'ATA',13,10,0 + even + +linkmenu0 dc.b 1 + dc.b 'DIAL: ' +phonenum dc.b 127,' ',0 + even + +linkmess dc.b 1 + dc.b 'ATTEMPTING TO CONNECT...ESC TO ABORT',0 + even + +linkupmenu dc.b 5 + dc.b 'NULL LINK',0 + dc.b 'DIAL UP',0 + dc.b 'ANSWER',0 + dc.b 'BAUD RATE: ' +baudtext dc.b '2400 ',0 + dc.b 'EXIT',0 + even + +baudconst dc.l 3546895 ;pal + dc.l 3579545 ;ntsc + +baud dc 5 + +bauds dc.l 2400,b1,4800,b2,9600,b3,14400,b4,28800,b5 + dc.l 38400,b6 + +b1 dc.b '2400 ',0 +b2 dc.b '4800 ',0 +b3 dc.b '9600 ',0 +b4 dc.b '14400',0 +b5 dc.b '28800',0 +b6 dc.b '38400',0 + even + +popts dc.l popt1,popt2,popt3,popt4 +popt1 dc.b 'JOYSTICK 2',0 +popt2 dc.b 'JOYSTICK 1',0 +popt3 dc.b ' KEYBOARD ',0 +popt4 dc.b 'NULL MODEM',0 + + even + +makeiff ;show an IFF picture...128 colours...320 X 240 + ; + ;a0=trimmed iff, a1=iff's palette + ; + push + movem.l a0-a1,-(a7) + lea iffwindow,a0 + bsr freewindow + movem.l (a7)+,a0-a1 + ; + lea iffwindow,a2 + cmp.l #0,a0 + bne.s .notblank + addq #1,a0 + move.l a0,wi_iff(a2) + move.l #rgbs16,a1 + bra.s .blank + ; +.notblank move.l a0,wi_iff(a2) +.blank move.l a1,wi_pal(a2) + ; + ;copy font palette to IFF palette! + ; + move.l font(pc),d0 + beq.s .nofont + ; + move.l d0,a0 + add.l (a0),a0 + addq #2,a0 + clr.l (a1)+ + moveq #14,d0 +.loop move (a0),(a1)+ + move (a0)+,(a1)+ + dbf d0,.loop +.nofont ; + move.l a2,a0 + bsr makewindow + ; + pull + rts + +showiff push + lea iffwindow,a0 + bsr showwindow + pull + rts + +gamemenu dc.b 7 + dc.b 'CONTINUE',0 + dc.b 'RESOLUTION',0 + dc.b 'WINDOW SIZE',0 + dc.b 'FULL SCREEN WINDOW',0 + dc.b 'FLOOR',0 + dc.b 'CEILING',0 + dc.b 'QUIT GAME',0 + even + +modes dc.l mode1,mode2 + +mode1 dc.b 'MEATY',0 + +mode2 dc.b 'MESSY',0 + +startmenu dc.b 9 + dc.b 'ONE PLAYER GAME',0 ;0 + dc.b 'TWO PLAYER GAME',0 ;1 + dc.b 'TWO PLAYER COMBAT',0 ;2 + dc.b 'PLAYER 1 ' +p1ctype dc.b 'JOYSTICK 1',0 ;3 + ; + dc.b 'PLAYER 2 ' +p2ctype dc.b 'JOYSTICK 2',0 ;4 + ; + dc.b 'REMOTE LINK OPTIONS',0 ;5 + ; + dc.b 'VIOLENCE MODEL: ' +modetxt dc.b 'MEATY',0 ;6 + dc.b 'ABOUT GLOOM',0 ;7 + dc.b 'EXIT GLOOM',0 ;8 + even + +startmenu2 dc.b 5 + dc.b 'TWO PLAYER GAME',0 ;0 + dc.b 'TWO PLAYER COMBAT GAME',0 ;1 + dc.b 'UNLINK FROM REMOTE PLAYER',0 ;2 + dc.b 'ABOUT GLOOM',0 ;3 + dc.b 'EXIT GLOOM',0 ;4 + even + +menuwindow dc.l 0 +menubmap dc.l 0 + +menuy dc 0 +numopts dc 0 ;how many menu options +curropt dc 0 ;current option +flashdelay dc 0 + +menustrips ds.l 32 ;16 max! + +initmenu clr curropt +initmenu2 ; + ;do a menu...menu in a4, window in a6 + ; + move.l a6,menuwindow + move.b (a4)+,d0 ;how many + ext d0 + move d0,numopts + move d0,-(a7) ;counter + move wi_bh(a6),d6 + move.l wi_bmap(a6),menubmap + lsr #1,d6 + move fonth(pc),d2 + lsr #1,d2 + mulu d2,d0 + sub d0,d6 ;Y + move d6,menuy + lea menustrips(pc),a5 + ; +.loop ;save strip! + ; + move.l a4,(a5)+ + ; + move #40*7,d0 + mulu fonth(pc),d0 + moveq #2,d1 + allocmem menustrip + move.l d0,(a5)+ + move.l d0,a1 + move.l wi_bmap(a6),a0 + move d6,d0 + mulu #7*40,d0 + add.l d0,a0 + ; + move #40*7,d0 + mulu fonth(pc),d0 + lsr.l #2,d0 + subq #1,d0 + ; +.sloop move.l (a0)+,(a1)+ + dbf d0,.sloop + ; + move.l a4,a0 + moveq #-1,d0 +.cnt addq #1,d0 + tst.b (a0)+ + bne.s .cnt + ; + bsr printmess2 + ; + add fonth(pc),d6 + subq #1,(a7) + bgt.s .loop + addq #2,a7 + ; + ifne debugmem + bsr showmem + lea memasc,a4 + moveq #8,d0 + bsr printmess2 + ; + move.l freememerr,d0 + beq.s .nomemerr + clr.l freememerr + move.l d0,a4 + move.l d0,a0 + moveq #-1,d0 +.ccloop addq #1,d0 + tst.b (a0)+ + bne.s .ccloop + add fonth(pc),d6 + bsr printmess2 +.nomemerr ; + endc + ; + rts + + ifne debugmem +showmem push + move.l 4.w,a6 + moveq #1,d1 + jsr -216(a6) + lea memasc,a0 + moveq #7,d1 +.loop rol.l #4,d0 + move d0,d2 + and #15,d2 + add #48,d2 + cmp #58,d2 + bcs.s .skip + addq #7,d2 +.skip move.b d2,(a0)+ + dbf d1,.loop + pull + rts + ; +memasc dc.b '12345678',0 + even + endc + +optoff move curropt(pc),d6 + lea menustrips(pc),a0 + move.l 4(a0,d6*8),a0 ;address of strip + mulu fonth(pc),d6 + add menuy(pc),d6 + mulu #7*40,d6 + move.l menubmap(pc),a1 + add.l d6,a1 + ; + move fonth(pc),d0 + mulu #7,d0 + lsl #6,d0 + or #20,d0 + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l #$9f00000,$dff040 + move.l #-1,$dff044 + move #0,$dff064 + move #0,$dff066 + move.l a0,$dff050 + move.l a1,$dff054 + move d0,$dff058 + ; + move #13,flashdelay + ; + rts + +opton move curropt(pc),d6 + lea menustrips(pc),a0 + move.l 0(a0,d6*8),a4 ;text! + mulu fonth(pc),d6 + add menuy(pc),d6 + ; + ;a6=window, a4=message, d0=length of message, d6=Y + ; + move.l a4,a0 + moveq #-1,d0 +.loop addq #1,d0 + tst.b (a0)+ + bne.s .loop + ; + move.l menuwindow(pc),a6 + bsr printmess2 + ; + move #13,flashdelay + ; + rts + +readmenujoys ;if in charge...read and send else rec. + ; + tst linked + beq.s .read + ; + bpl.s .readsend + ; +.get bsr serget + bmi.s .none + lea joyx4(pc),a0 + bra decodejoy +.none clr joyx4 + clr joyy4 + clr joyb4 + clr joys4 + rts + ; +.readsend bsr .read + lea joyx4(pc),a0 + bsr encodejoy + tst.b d0 + bne serput + rts + ; +.read bsr readjoys + ; + ;up/down + ; + move joyy2(pc),d0 + bne.s .gy + move joyy1(pc),d0 +.gy move d0,joyy4 + ; + ;fire! + ; + move joyb2(pc),d0 + bne.s .gf + move joyb1(pc),d0 + bne.s .gf + key $44 ;ret + bne.s .fire + key $45 ;esc + bne.s .fire + moveq #0,d0 + bra.s .gf +.fire moveq #-1,d0 +.gf move d0,joyb4 + rts + +selmenu ;select a menu item...return item in d0 + ; + ;flash selected option on/off + ; + bsr optoff + ; +.loop1 bsr vwait + bsr readmenujoys + tst joyy4 + blt .up2 + bgt .down2 + tst joyb4 + bne .sel2 + ; + subq #1,flashdelay + bgt .loop1 + ; + bsr opton + ; +.loop2 bsr vwait + bsr readmenujoys + tst joyy4 + blt .up + bgt .down + tst joyb4 + bne .sel + ; + subq #1,flashdelay + bgt .loop2 + ; + bra selmenu + ; +.up2 bsr opton +.up subq #1,curropt + bpl.s .upskip + move numopts(pc),d0 + subq #1,d0 + move d0,curropt +.upskip bsr vwait + bsr readmenujoys + tst joyy4 + bmi .upskip + bra selmenu + ; +.down2 bsr opton +.down addq #1,curropt + move curropt(pc),d0 + cmp numopts(pc),d0 + bcs.s .downskip + clr curropt +.downskip bsr vwait + bsr readmenujoys + tst joyy4 + bgt .downskip + bra selmenu + ; +.sel2 bsr opton +.sel bsr vwait + bsr readmenujoys + tst joyb4 + bne .sel + move curropt(pc),d0 + rts + +finitmenu ;clean up menu operation + ; + lea menustrips(pc),a5 + move numopts(pc),d2 + subq #1,d2 +.loop addq #4,a5 + move.l (a5)+,a1 + freemem menustrip + dbf d2,.loop + rts + +initbmappal move.l smallfont_,a0 + add.l (a0),a0 + addq #2,a0 + moveq #22,d0 ;23 colours to poke! + move.l coplist(pc),a1 + move.l a1,a2 + move.l a1,a3 + move.l a1,a4 + ; + lea cols1+6-copinit(a1),a1 + lea cols2+6-copinit(a2),a2 + lea cols3+6-copinit(a3),a3 + lea cols4+6-copinit(a4),a4 + ; +.loop move (a0),(a1) + move (a0),(a2) + move (a0),(a3) + move (a0)+,(a4) + addq #4,a1 + addq #4,a2 + addq #4,a3 + addq #4,a4 + dbf d0,.loop + rts + +initdarktable ; + move #maxz-1,d2 + move.l sqr(pc),a0 + move.l darktable(pc),a1 + ; +.loop move d2,d3 + lsl #3,d3 + move 0(a0,d3),d3 + lsr #3,d3 + eor #15,d3 + move d3,(a1)+ + ; + dbf d2,.loop + ; + rts + +initrawmap lea ascmap(pc),a0 + lea rawmap(pc),a1 +.loop moveq #0,d0 + move.b (a0)+,d0 + cmp #$ff,d0 + beq.s .rts +.loop2 move.b (a0)+,d1 + beq.s .loop + move.b d1,0(a1,d0) + addq #1,d0 + bra.s .loop2 +.rts rts + +keyoff dc 0 +keybit dc 0 + +ascmap dc.b $1,'1234567890',0 + dc.b $10,'QWERTYUIOP',0 + dc.b $20,'ASDFGHJKL',0 + dc.b $31,'ZXCVBNM',0 + dc.b $40,' ',0 + dc.b $ff + even + +rawmap ds.b 128 + +chatout ds.b 32 +chatoutput dc 0 +chatoutget dc 0 + +chatin ds.b 32 +chatinput dc 0 +chatinget dc 0 + +rawkeyread ;a1=matrix! hi bit of keycode=1 if key up! + ; + move.l d2,-(a7) + ; + moveq #0,d2 + move.b $bfec01,d2 + not.b d2 + ror.b #1,d2 + or.b #$40,$bfee01 + ; + move d2,d0 + move d2,d1 + and #7,d1 + lsr #3,d0 + bclr #4,d0 + bne.s .clrkey + ; +.setkey bset d1,0(a1,d0) ;key on! + movem d0-d1,keyoff + ; + ;OK, key down... + move chatok(pc),d0 + beq.s .skip + lea rawmap(pc),a0 + move.b 0(a0,d2),d0 ;asc! + beq.s .skip + ; + ;ok, add to chat out buffer! + ; + lea chatout(pc),a0 + move chatoutput(pc),d1 + and #31,d1 + move.b d0,0(a0,d1) + addq #1,chatoutput + ; + bra.s .skip + ; +.clrkey bclr d1,0(a1,d0) + ; +.skip moveq #6,d0 ;wait 6 scanlines? + moveq #-1,d1 +.loop move d1,d2 +.loop2 move.l $dff004,d1 + lsr.l #8,d1 + and #$1ff,d1 + cmp d2,d1 + beq.s .loop2 + dbf d0,.loop + ; + and.b #$bf,$bfee01 + ; + move.l (a7)+,d2 + rts + +rawtable dc.l rawmatrix +rawstuff dc.l 0,0 +ciaa dc.l 0 +ciaaname dc.b 'ciaa.resource',0 + even +rawmatrix dc.l 0,0,0,0 ;128 key bits + +savefile ;a0=name, a1=mem, d0=length + push + ; + movem.l d0/a1,-(a7) + ; + move.l dosbase,a6 + move.l a0,d1 + move.l #1006,d2 + jsr -30(a6) + move.l d0,d7 + beq .done + ; + move.l d7,d1 + movem.l (a7)+,d0/a1 + move.l a1,d2 + move.l d0,d3 + jsr -48(a6) + ; + move.l d7,d1 + jsr -36(a6) + ; +.done pull + rts + +fileheader ds.b 14 +loadmem dc.l 0 + +loadfileabs move.l a1,loadmem + bra.s loadfile_ + +loadfile clr.l loadmem + ; +loadfile_ ;a0=name, d1=memtype + ; + ;decrunch file if nec. + ; + ;return d0=pointer + ; + push + ; + move.l d1,d5 ;save memtype + move.l dosbase,a6 + ; + move.l a0,d1 + move.l #1005,d2 + jsr -30(a6) ;open it! + move.l d0,d7 ;handle + beq .err + ; + move.l d7,d1 + moveq #0,d2 + moveq #1,d3 + jsr -66(a6) ;seek to end + ; + move.l d7,d1 + moveq #0,d2 + moveq #-1,d3 ;seek to start + jsr -66(a6) + ; + move.l d0,d4 ;length=prev filepos + ; + move.l d7,d1 + move.l #fileheader,d2 + moveq #14,d3 + jsr -42(a6) ;read! + ; + move.l d0,-(a7) ;how many bytes read! + ; + move.l d7,d1 + moveq #0,d2 + moveq #-1,d3 ;back to start + jsr -66(a6) + ; + cmp.l #14,(a7)+ + bcs.s .nocrunch + ; + moveq #0,d6 + move.l fileheader(pc),d0 + cmp.l #'CrM2',d0 + beq.s .crunch + cmp.l #'CrM!',d0 + bne.s .nocrunch + ; +.crunch cmp.l fileheader+6(pc),d4 ;loadlen>destlen? + bcc.s .skip + move.l fileheader+6(pc),d4 ;length to allocate +.skip ; + moveq #14,d6 + add fileheader+4(pc),d6 + bsr loadit + move.l d0,a0 ;src + add.l d6,d0 ;dest + move.l d0,a1 + jsr decrm+32 + pull + rts +.nocrunch ; + bsr loadit + ; +.err pull + rts + +loadit ;d4=length to alloc/read, d5=memtype + ;seek to start, load, close and return base in d0. + ; + move.l loadmem(pc),d0 + bne.s .noalloc + ; + move.l d4,d0 + move.l d5,d1 + move.l d6,d2 ;offset XS + allocmem2 loadfile + sub.l d6,d0 +.noalloc ; + move.l d7,d1 + move.l d0,d2 + move.l d4,d3 ;read len + jsr -42(a6) ;read + move.l d7,d1 + jsr -36(a6) ;close + move.l d2,d0 + ; + rts + +andtable dc $ffff,0 ;rgb and, brightness add...wht + dc $ff00,8 ;red + +makepalettes ; + ;make wht and red pals + ; + ;create pointers... + ; + lea palettes(pc),a0 + move.l map_rgbs(pc),d0 + lea palettesw(pc),a1 + move.l map_rgbsw(pc),d1 + lea palettesr(pc),a2 + move.l map_rgbsr(pc),d2 + ; + moveq #15,d7 + ; +.loop move.l (a0)+,d3 + sub.l d0,d3 ;offset! + move.l d3,d4 + add.l d1,d3 + move.l d3,(a1)+ + add.l d2,d4 + move.l d4,(a2)+ + ; + dbf d7,.loop + ; + move.l map_rgbsend(pc),d7 + sub.l map_rgbs(pc),d7 ;how many bytes! + lsr #1,d7 + subq #1,d7 ;words! + ; + move.l map_rgbsw(pc),a1 + move #$ffff,d1 ;col and + move #0,d2 ;gamma + bsr makeapal + ; + move.l map_rgbsr(pc),a1 + move #$ff00,d1 + moveq #16,d2 + bsr makeapal + ; + rts + +makeapal move.l map_rgbs(pc),a0 + ; +.loop move (a0)+,d4 ;src colour...find briteness + ; + move d4,d5 + move d4,d6 + and #$f00,d4 + lsr #8,d4 + and #$0f0,d5 + lsr #4,d5 + and #$00f,d6 + add d6,d5 + add d5,d4 + add d2,d4 + cmp #16*3,d4 + bcs.s .bok + moveq #16*3-1,d4 +.bok ext.l d4 + divu #3,d4 ;(r+g+b)/3=briteness! + ; + move d4,d5 + move d4,d6 + lsl #8,d4 + lsl #4,d5 + or d6,d5 + or d5,d4 ;RGB + and d1,d4 + ; + move d4,(a1)+ + ; + cmp.l map_rgbsend(pc),a0 + bcs.s .loop + ; + rts + +calcpalettes ;OK, our palette currently runs from: + ; + ;map_rgbs + ; to + ;map_rgbsat + ; + ;append brightness versions... + ; + lea palettes(pc),a2 + move.l map_rgbs(pc),(a2)+ ;first brightness! + move.l map_rgbsat(pc),a1 ;first brightness! + move.l a1,a3 + moveq #1,d0 ;rgb subtract + ; +.loop move.l map_rgbs(pc),a0 + move.l a1,(a2)+ + ; +.loop2 move (a0)+,d1 + move d1,d2 + move d1,d3 + ; + and #$f00,d1 + lsr #8,d1 + sub d0,d1 + bpl.s .rok + moveq #0,d1 +.rok ; + and #$f0,d2 + lsr #4,d2 + sub d0,d2 + bpl.s .gok + moveq #0,d2 +.gok ; + and #$0f,d3 + sub d0,d3 + bpl.s .bok + moveq #0,d3 +.bok ; + lsl #8,d1 + lsl #4,d2 + or d3,d2 + or d2,d1 + or #$8000,d1 + ; + move d1,(a1)+ + cmp.l a3,a0 + bcs.s .loop2 + ; + addq #1,d0 + cmp #16,d0 + bcs.s .loop + ; + move.l a1,map_rgbsend + ; + rts + +map_rgbsend dc.l 0 + +dispoff tst dispnest + bne.s .skip + bsr vwait + move #$01a0,$dff096 ;bp/cop/spr off! +.skip addq #1,dispnest + rts + +dispon subq #1,dispnest + bgt.s .skip + bsr vwait + move.l coplist(pc),$dff080 + move #0,$dff088 + move #$8080,$dff096 ;cop on! + move #0,$dff088 +.skip rts + +forbid push + moveq #49,d0 +.fl bsr vwait + dbf d0,.fl + bsr ownblitter + move.l 4.w,a6 + jsr -132(a6) + move #$8400,$dff096 ;bltnasty! + pull + rts + +permit push + move.l rawstuff,a0 + clr.l $70(a0) + move.l 4.w,a6 + jsr -138(a6) + bsr disownblitter + pull + rts + +initvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -168(a6) ;addintserver + pull + rts + +vbcounter dc 0 +framecnt dc 0 + +frame dc 0,0 + +vbintserver dc.l 0,0 + dc.b 2,0 + dc.l 0 +vbintdata dc.l vbcounter +vbintcode dc.l vbhandler + +tbeintserver dc.l 0,0 + dc.b 2,0 + dc.l 0 +tbeintdata dc.l tbuff +tbeintcode dc.l tbe + +rbfintserver dc.l 0,0 + dc.b 2,0 + dc.l 0 +rbfintdata dc.l rbuff +rbfintcode dc.l rbf + +finitvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -174(a6) + pull + rts + +ownblitter push + move.l grbase,a6 + jsr -456(a6) + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + pull + rts + +disownblitter push + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + move.l grbase,a6 + jsr -462(a6) + pull + rts + +makecoloffs push + ; + lea coloffs,a0 + moveq #2,d0 + moveq #3,d2 +.loop addq.l #4,d0 + moveq #31,d1 +.loop2 move.l d0,(a0)+ + addq.l #4,d0 + dbf d1,.loop2 + dbf d2,.loop + ; + pull + rts + +grname dc.b 'graphics.library',0 + even +grbase dc.l 0 +oldview dc.l 0 +dosname dc.b 'dos.library',0 + even +dosbase dc.l 0 + +calcbpos ;also: calc qstripbot, con0poke... + ; + move window1+wi_h,d0 + add d0,d0 + ext.l d0 + add.l qstrip(pc),d0 + move.l d0,qstripbot + ; + move #$100,con0poke + move floorflag(pc),d0 + and roofflag(pc),d0 + bne.s .cp + move #$9f0,con0poke ;one of them is cop strip! +.cp ; + move window1+wi_y,d0 + subq #4,d0 + move d0,minbpos + tst twowins + beq.s .p1 + ; + move window2+wi_y,d0 + add window2+wi_bh,d0 + addq #4,d0 + move d0,maxbpos + rts + ; +.p1 move window1+wi_y,d0 + add window1+wi_bh,d0 + addq #4,d0 + move d0,maxbpos + ; + rts + +showwindow ;a0=window + ; + push + ; + ;poke bitmaps... + move.l wi_slice(a0),a1 + move.l (a1),a1 + move.l wi_bmap(a0),d0 + moveq #6,d1 ;7 bitplanes +.loop move d0,6(a1) + swap d0 + move d0,2(a1) + swap d0 + add.l #40,d0 + addq #8,a1 + dbf d1,.loop + ; + ;create DIW + ; + move.l wi_slice(a0),a1 + move.l (a1),a1 + ; + move wi_y(a0),d0 + move d0,d1 + add wi_bh(a0),d1 + lsl #8,d0 + or #$81,d0 + move d0,56+2(a1) + lsl #8,d1 + or #$c1,d1 + move d1,56+6(a1) + ; + ;create wait! + ; + move wi_y(a0),d0 + subq #3,d0 + move.b d0,64(a1) + ; + ;create link to next! + move.l wi_nslice(a0),a1 + move.l (a1),d0 + move.l wi_cop1(a0),a1 + add.l wi_copmem(a0),a1 + move.l wi_cop2(a0),a2 + add.l wi_copmem(a0),a2 + move d0,-6(a1) + move d0,-6(a2) + swap d0 + move d0,-10(a1) + move d0,-10(a2) + ; + pull + ; +showwindowq ;display coplist + ; + move.l wi_cop(a0),d0 + move.l wi_slice(a0),a0 + move.l (a0),a0 + ; + move d0,72+6(a0) + swap d0 + move d0,72+2(a0) + ; + rts + +finitdisplay push + ; + move.l grbase,a6 + move.l oldview,a1 + jsr -222(a6) ;load view + jsr -270(a6) + jsr -270(a6) + move.l 38(a6),$dff080 + move #$81a0,$dff096 + move #0,$dff088 + ; + pull + rts + +chatmap dc.l 0 + +initdisplay push + ; + lea grname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,grbase + ; + move.l d0,a6 + move.l 34(a6),oldview + sub.l a1,a1 + jsr -222(a6) ;loadview + ; + move.l #80*2*5,d0 + moveq #2,d1 + allocmem chatplanes + move.l d0,chatmap + ; + move d0,chatplanes+6 + swap d0 + move d0,chatplanes+2 + swap d0 + add.l #80,d0 + move d0,chatplanes+14 + swap d0 + move d0,chatplanes+10 + ; + bsr chatcls + ; + move.l #copinitf-copinit,d0 + moveq #2,d1 + allocmem copinit + move.l d0,coplist + ; + move.l d0,a1 + lea copinit,a0 + lea copinitf,a2 + ; +.loop cmp.l a2,a0 + bcc.s .done + move.l (a0)+,(a1)+ + bra.s .loop +.done ; + add.l #sl1-copinit,d0 + move.l d0,slice1 + add.l #sl2-sl1,d0 + move.l d0,slice2 + add.l #cstop-sl2,d0 + move.l d0,copstop + ; + move.l copstop,d0 + move.l slice1,a0 + move.l slice2,a1 + ; + move d0,72+6(a0) + move d0,72+6(a1) + swap d0 + move d0,72+2(a0) + move d0,72+2(a1) + ; + jsr -270(a6) + jsr -270(a6) + move.l coplist,$dff080 + move #0,$dff088 + ; + ;move #0,$dff1dc + pull + rts + +allocwbmap move wi_w(a2),d0 + mulu wi_pw(a2),d0 + move d0,wi_bw(a2) + ; + move wi_h(a2),d0 + mulu wi_ph(a2),d0 + move d0,wi_bh(a2) + ; + mulu #40*7,d0 + ; + move.l #$10002,d1 + move.l d0,wi_bmapmem(a2) + allocmem wi_bmap + move.l d0,wi_bmap(a2) + ; + move.l #40*7*7,d0 + moveq #2,d1 + allocmem wi_strip + move.l d0,wi_strip(a2) + ; + rts + +windowiff ;draw iff into window! + ; + move.l wi_iff(a2),a0 + cmp.l #1,a0 + bne.s .do + rts + ; +.do move.l wi_bmap(a2),a1 + ; + move 2(a0),d1 + cmp #240,d1 + bcs.s .skip + move #240,d1 +.skip move #120,d2 + lsr #1,d1 + sub d1,d2 + mulu #7*40,d2 + add.l d2,a1 + ; +decodeiff ;for 40 columns... + ; + ;a0=trimmed IFF file, + ;a1=destination bitmap... + ; + move.l a2,-(a7) + moveq #40,d7 + ; + move (a0)+,d0 ;pixel width + lsr #3,d0 ;to byte width + move (a0)+,d1 ;pixel height + cmp #240,d1 + bls.s .hok + move #240,d1 +.hok subq #1,d1 ;to dbf + move (a0)+,d2 ;depth + subq #1,d2 ;to dbf + addq #6,a0 ;skip header + ; +.loop5 move d2,d5 ;depth + ; +.loop4 move.l a1,a2 + move d0,d4 ;how many bytes in line + ; +.loop moveq #0,d3 + move.b (a0)+,d3 + bmi.s .repeat + sub d3,d4 +.loop3 move.b (a0)+,(a2)+ + dbf d3,.loop3 + bra.s .skip + ; +.repeat cmp.b #-128,d3 + beq.s .loop + neg.b d3 + sub d3,d4 +.loop2 move.b (a0),(a2)+ + dbf d3,.loop2 + addq #1,a0 +.skip subq #1,d4 + bgt.s .loop + ; + add d7,a1 + dbf d5,.loop4 + dbf d1,.loop5 + ; + move.l (a7)+,a2 + rts + +plotwbmap ;OK, plot colours on bitmap! + ; + move.l wi_iff(a2),d0 + bne windowiff + ; + move.l wi_bmap(a2),a0 + move wi_x(a2),d0 + move d0,d1 + lsr #3,d0 + not d1 + and #7,d1 + moveq #127,d7 ;colour + move wi_w(a2),d6 ;width + subq #1,d6 + ; +.wloop move wi_pw(a2),d5 + subq #1,d5 + ; +.wloop2 move d7,d4 + moveq #6,d3 + ; +.dloop bclr d1,0(a0,d0) + lsr #1,d4 + bcc.s .dskip + bset d1,0(a0,d0) +.dskip lea 40(a0),a0 + dbf d3,.dloop + ; + lea -40*7(a0),a0 + subq #1,d1 + bpl.s .dskip2 + moveq #7,d1 + addq #1,d0 +.dskip2 dbf d5,.wloop2 + ; + subq #1,d7 + dbf d6,.wloop + ; + move wi_bh(a2),d0 ;how many to copy + subq #1,d0 + bsr wcopy + ; + move.l wi_bmap(a2),a0 + move.l wi_strip(a2),a1 + move wi_bh(a2),d0 + lsr #2,d0 + mulu #7*40,d0 + add.l d0,a0 + move #7*7*10-1,d2 + ; +.loop move.l (a0)+,(a1)+ + dbf d2,.loop + ; + rts + +wcopy ;copy top scanline to next d0 scanlines + ; + move.l wi_bmap(a2),a0 + mulu #10*7,d0 + subq #1,d0 + lea 40*7(a0),a1 +.cbloop move.l (a0)+,(a1)+ + dbf d0,.cbloop + ; + rts + +freewindow ;window in a0 + ; + push + move.l a0,a2 + move.l wi_bmap(a2),d0 + beq.s .no1 + clr.l wi_bmap(a2) + move.l d0,a1 + freemem wi_bmap +.no1 move.l wi_strip(a2),d0 + beq.s .no2 + clr.l wi_strip(a2) + move.l d0,a1 + freemem wi_strip +.no2 move.l wi_cop1(a2),d0 + beq.s .no3 + clr.l wi_cop1(a2) + move.l d0,a1 + freemem wi_cop +.no3 pull + rts + +makewindow ;make window + ; + ;a0=window struct! + ; + push + ; + move.l a0,a2 + ; + bsr allocwbmap + bsr plotwbmap + ; + tst.l wi_iff(a2) + beq wchunky + ; + ;make a palette coplist for the window + ; + ;to write 32 colours... + ;set bank, write hi nybs, set bank, write lo nybs... + ;=66 copins. + ;*4=264 total + ;+1 for final wait +3 for final copjump=268 + ; + move.l #268<<2,d0 + move.l d0,wi_copmem(a2) + moveq #2,d1 + allocmem wi_iffcop + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + move.l d0,wi_cop2(a2) + move.l d0,a0 ;dest + move.l wi_pal(a2),a1 ;palette! + ; + moveq #0,d0 ;bank + moveq #3,d3 ;something. + ; +.loop move #$106,(a0)+ + move d0,(a0)+ + move #$180,d1 + moveq #31,d2 +.hiloop move d1,(a0)+ + move (a1),(a0)+ + addq #4,a1 + addq #2,d1 + dbf d2,.hiloop + ; + lea -128+2(a1),a1 + move #$106,(a0)+ + bset #9,d0 + move d0,(a0)+ + bclr #9,d0 + move #$180,d1 + moveq #31,d2 +.loloop move d1,(a0)+ + move (a1),(a0)+ + addq #4,a1 + addq #2,d1 + dbf d2,.loloop + subq #2,a1 + ; + add #$2000,d0 ;next bank! + dbf d3,.loop + ; + move.l #$fffffffe,(a0)+ + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + pull + rts + ; +wchunky ;how many copins on one line? + ; + move wi_w(a2),d0 + move d0,d1 + subq #1,d0 + lsr #5,d0 ;how many bank changes per line! + addq #3,d0 ;1 waits - 1 eor, 1 init bank select + add d1,d0 ;+colpokes + ; + move d0,d1 + lsl #2,d1 + move d1,wi_copmod(a2) + ; + mulu wi_h(a2),d0 + addq #4,d0 ;1 wait and cop jump at end + ; + lsl.l #2,d0 ;4 bytes/copins + moveq #2,d1 ;cop in chip + move.l d0,wi_copmem(a2) + lsl.l #1,d0 ;2 coplists! + allocmem wi_chunkycop + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + ; + move.l d0,a0 + move wi_y(a2),d6 + move wi_h(a2),d7 + subq #1,d7 + move #$111,d3 ;test colour + move #$8000,d4 ;Colour Eor + ; +.hloop ;make one copline... + ; + moveq #127,d0 ;colour reg to poke + move wi_w(a2),d1 + subq #1,d1 + ; +.lloop move d0,d2 + addq #1,d2 + and #31,d2 + bne.s .notnbank + ; + ;new bank.... + move d0,d2 + sub #31,d2 + and #$ffe0,d2 + lsl #8,d2 + or d4,d2 ;eor bank + move #$106,(a0)+ ;bank select + move d2,(a0)+ + ; +.notnbank move d0,d2 + and #31,d2 + add d2,d2 + add #$180,d2 + move d2,(a0)+ ;colour poke + move d3,(a0)+ + add #$111,d3 + subq #1,d0 + dbf d1,.lloop + ; + bsr .makewait + ; + ;ok, now do EOR! + move #$10c,(a0)+ + move d4,(a0)+ + bchg #15,d4 + ; + dbf d7,.hloop + ; + bsr .makewait + ; + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + ; + ;OK, 1 list created...copy to other! + ; + move.l wi_cop1(a2),a0 + move.l a0,a1 + add.l wi_copmem(a2),a1 + move.l a1,wi_cop2(a2) + move.l a1,a3 + ; +.copycop move.l (a0)+,(a3)+ + cmp.l a1,a0 + bcs.s .copycop + ; + pull + rts + +.makewait ; + ;make wait ins. at pos d6 + ; + subq #1,d6 + move.b d6,(a0)+ + move.b #$e1,(a0)+ + move #$fffe,(a0)+ + addq #1,d6 + add wi_ph(a2),d6 + rts + +allocmem2_ ; + ;as below, but d2.l = extra mem at start to set aside + ; + push + moveq #16,d3 + add.l d2,d3 + bra.s amem_ + +allocmem_ ; + ;d0=size, d1=requirements, a0=text field + ; + ;set up node before allocmem for quick freemem: + ; + ;00.l : next + ;04.l : real size + ;08.l : offset to user mem (normally 16, but CM fucks things up) + ;12.l : pointer to text field for debugging + ; + push + moveq #16,d3 ;offset + ; +amem_ move.l a0,d4 + add.l d3,d0 + ; + move.l d0,d2 ;len + move.l a0,d4 ;text + move.l 4.w,a6 + jsr -198(a6) + tst.l d0 + bne.s .skip + ; + warn #$f00 + ; +.skip move.l d0,a0 + move.l memlist,(a0) ;next + move.l a0,memlist + movem.l d2-d4,4(a0) + add.l d3,a0 + move.l a0,d0 + ; + pull + rts + +freememlist push + ; +.more move.l memlist,d0 + beq.s .done + move.l d0,a2 + ; + ifne debugmem + move.l 12(a2),a0 ;text field + move.l a0,d2 + moveq #-1,d3 +.loop addq.l #1,d3 + tst.b (a0)+ + bne.s .loop + ; + move.l outhand,d1 + move.l dosbase,a6 + jsr -48(a6) + endc + ; + move.l a2,a1 + ; + move.l (a1),memlist + move.l 4(a1),d0 + move.l 4.w,a6 + jsr -210(a6) + bra.s .more + ; +.done pull + rts + +freemem_ ; + ;a1=address to free! + ; + push + ; + ifne debugmem + move.l a0,-(a7) ;error mess + elseif + endc + ; + move.l a1,a2 ;mem to find! + lea memlist(pc),a1 + ; +.more move.l a1,a0 ;prev + move.l (a1),d0 + beq.s .err + move.l d0,a1 + ; + move.l a1,a3 + add.l 8(a3),a3 + cmp.l a3,a2 + bne.s .more + ; + move.l (a1),(a0) + move.l 4(a1),d0 + move.l 4.w,a6 + jsr -210(a6) + bra.s .done + ; +.err warn #$ff0 + ifne debugmem + move.l (a7),freememerr + endc +.done ; + ifne debugmem + addq #4,a7 + endc + ; + pull + rts + +freememerr dc.l 0 + +initmap ;map address in map_map... + ;load in textures, do colour mapping etc. + ; + push + ; + move.l map_map,a0 + ; + move.l a0,a1 + add.l (a0),a1 + move.l a1,map_grid + ; + move.l a0,a1 + add.l 4(a0),a1 + move.l a1,map_poly + ; + move.l a0,a1 + add.l 8(a0),a1 + move.l a1,map_ppnt + ; + move.l a0,a1 + add.l 12(a0),a1 + move.l a1,map_anim + ; + move.l a0,a1 + add.l 16(a0),a1 + move.l a1,map_txts + ; + move.l (a0),d0 + sub.l #25*4,d0 + add.l a0,d0 + move.l d0,map_events + ; + move.l map_rgbsfrom2,map_rgbsat + ; + pull + rts + +freetxts lea textscrns,a6 + moveq #7,d7 +.loop move.l (a6)+,d0 + beq.s .skip + move.l d0,a1 + freemem freetxts + clr.l -4(a6) +.skip dbf d7,.loop + rts + +loadtxts push + ; + lea textures,a4 + move.l map_txts,a5 ;texture names + lea textscrns,a6 + moveq #7,d7 + ; +.ltl lea .temp(pc),a0 + ; +.ltl2 move.b (a5)+,(a0)+ + bne.s .ltl2 + moveq #0,d0 + cmp.l #.temp+1,a0 + beq.s .notext + lea .temp2(pc),a0 + moveq #1,d1 + jsr loadfile + ; +.notext move.l d0,(a6)+ ;texture! + beq.s .skip + ; + ;do colour mapping stuff! + ; + move.l d0,-(a7) + ; + move.l d0,a0 + add.l (a0),a0 + move.l a0,a2 + bsr addpal + ; + move.l (a7),a0 + addq #4,a0 + move.l a2,a1 + bsr remap + ; + move.l (a7)+,a0 + addq #4,a0 + moveq #19,d0 + move.l #64*65,d1 + ; +.mtxt move.l a0,(a4)+ + add.l d1,a0 + dbf d0,.mtxt +.skip ; + dbf d7,.ltl + ; + pull + rts + +.temp2 dc.b 'txts/' +.temp ds.b 64 + even + +remapanim ;a0=anim to remap... + ; + push + ; + move.l a0,a6 + movem (a6),d6-d7 + lsl d6,d7 ;how many frames! + subq #1,d7 + ; + move.l a6,a0 + add.l an_pal(a0),a0 + bsr addpal + ; + lea an_size(a6),a5 + ; +.loop move.l a6,a0 + add.l (a5)+,a0 ;start of shape + addq #4,a0 ;skip handles + movem (a0)+,d0-d1 ;w/h + mulu d1,d0 + lea 0(a0,d0.l),a1 ;end + bsr remap + ; + dbf d7,.loop + ; + pull + rts + +remap ;a0=start of byte data, a1=end of byte data + ; + push + ; + moveq #0,d0 + move.l maptable,a2 + ; +.loop cmp.l a1,a0 + bcc.s .done + move.b (a0),d0 + move.b 0(a2,d0),(a0)+ + bra.s .loop +.done ; + pull + rts + +addpal ;add palette in a0 to end of map_rgb + ; + push + ; + move (a0)+,d0 + subq #1,d0 + move.l map_rgbsat,a2 ;end of rgbs + move.l maptable,a3 + ; + clr.b (a3) ;0=0 + move.b #255,255(a3) ;-1=-1 + move.b #254,254(a3) ;-1=-1 + move.b #253,253(a3) ;-1=-1 + move.b #252,252(a3) ;-1=-1 + move.b #251,251(a3) ;-1=-1 + move.b #250,250(a3) ;-1=-1 + move.b #249,249(a3) ;-1=-1 + ; + moveq #1,d2 ;colour 1! + ; +.loop move (a0)+,d1 ;colour...does it exist? + bmi.s .next ;not used! + move.l map_rgbs,a1 + ; +.loop2 cmp.l a2,a1 + bcc.s .no + cmp (a1)+,d1 + beq.s .yes + bra.s .loop2 + ; +.no ;colour doesn't exist! + ;may have to do a 'near match' routine if we run out of colours + ; + move d1,(a2)+ + move.l a2,a1 + ; +.yes subq #2,a1 + sub.l map_rgbs,a1 + move.l a1,d1 + lsr #1,d1 ;real colour + ; + cmp #256,d1 + bcs.s .ok + ; + warn #$00f + ; +.ok move.b d1,0(a3,d2) + ; +.next addq #1,d2 + dbf d0,.loop + ; + move.l a2,map_rgbsat + ; + pull + rts + + ;coll types... + ; + ;1...bullet from player 1 + ;2...bullet from player 2 + ;4...bullet from monster + ;8...player 1 + ;16..player 2 + ; + + dc.l 0,player,tokens + ; +objlist ;list of objects to be freed... + ; + dc.l marine,baldy,terra,ghoul,demon,phantom + dc.l lizard,deathhead,0 + +player dc.l 0,0 ;main, chunks + dc.b 'objs/player',0,0 + even +tokens dc.l 0,0 + dc.b 'objs/tokens',0,0 + even +marine dc.l 0,0 + dc.b 'objs/marine',0,0 + even +baldy dc.l 0,0 + dc.b 'objs/baldy',0,0 + even +terra dc.l 0,0 + dc.b 'objs/terra',0,0 + even +ghoul dc.l 0,0 + dc.b 'objs/ghoul',0,0 + even +demon dc.l 0,0 + dc.b 'objs/demon',0,0 + even +phantom dc.l 0,0 + dc.b 'objs/phantom',0,0 + even +lizard dc.l 0,0 + dc.b 'objs/lizard',0,0 + even +deathhead dc.l 0,0 + dc.b 'objs/deathhead',0,0 + even + +objinfo +player1_ dc.l player1 +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l $d0000 +_ob_shape dc.l player +.ob_logic dc.l playerlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l playerhit +.ob_die dc.l playerdie + ; +.ob_eyey dc -pl_eyey ;eye height +.ob_firey dc -pl_firey ;where bullets come from +.ob_gutsy dc -pl_gutsy +.ob_othery dc 0 +.ob_colltype dc 8 +p1_ob_collwith dc 6 ;6=combat, 4=game +p1_ob_cntrl dc 1 ;for player 0,1=joyport, 2=keys +.ob_damage dc 1 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 1 +.ob_range dc 1 +.ob_weapon dc 1 ;weapon type...0...25 +.ob_reload dc.b ireload,0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 ;4! +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +objinfof + +oilen equ objinfof-objinfo + +player2_ dc.l player2 +.ob_rotspeed dc.l 0 ;$40000 +.ob_movspeed dc.l $d0000 +.ob_shape dc.l player +.ob_logic dc.l playerlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l playerhit +.ob_die dc.l playerdie +.ob_eyey dc -pl_eyey ;eye height +.ob_firey dc -pl_firey ;where bullets come from +.ob_gutsy dc -pl_gutsy +.ob_othery dc 0 +.ob_colltype dc 16 +p2_ob_collwith dc 5 ;5=combat, 4=game +p2_ob_cntrl dc 0 ;for player 0,1=joyport, 2=keys, 3=serial +.ob_damage dc 1 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 1 +.ob_range dc 1 +.ob_weapon dc 1 ;weapon type... +.ob_reload dc.b ireload,0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 ;4! +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +health_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l healthgot +.ob_die dc.l healthgot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $30000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +weapon_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon2 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 2 +.ob_range dc 4 +.ob_weapon dc 1 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +thermo_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l thermogot +.ob_die dc.l thermogot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $10000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +infra_ ds.b oilen + +invisi_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l invisigot +.ob_die dc.l invisigot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $20000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +invinc_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l invincgot +.ob_die dc.l invincgot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $30000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + + ;END OF GAME GOD goes here... + ; +blank1_ ds.b oilen + +bouncy_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l bouncygot +.ob_die dc.l bouncygot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $60000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +marine_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $60000 +.ob_shape dc.l marine +.ob_logic dc.l monsterlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 1 +.ob_hitpoints dc 5 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 16 +.ob_range dc 32 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +baldy_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $40000 +.ob_shape dc.l baldy +.ob_logic dc.l baldylogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 2 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 3 +.ob_punchrate dc 4 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $220 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +terra_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $20000 +.ob_shape dc.l terra +.ob_logic dc.l terralogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 1 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 32 +.ob_range dc 48 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_firerate dc 12 ;how often terra fires +.ob_bouncecnt dc 0 ;how many times +.ob_firecnt dc 5 +.ob_scale dc $280 +.ob_apad dc 0 +.ob_blood dc $fff ;color AND for blood +.ob_ypad dc 1 + +ghoul_ dc.l dummy +.ob_rotspeed dc.l $0 +.ob_movspeed dc.l $80000 +.ob_shape dc.l ghoul +.ob_logic dc.l ghoullogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtghoul +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -64 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 5 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l 0 +.ob_base dc 32 +.ob_range dc 48 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_firerate dc 12 ;how often terra fires +.ob_bouncecnt dc 0 ;how many times +.ob_firecnt dc 5 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $80f0 ;color AND for blood +.ob_ypad dc 1 + +phantom_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $a0000 +.ob_shape dc.l phantom +.ob_logic dc.l phantomlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 3 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $a000 +.ob_base dc 8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 7 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $280 +.ob_apad dc 0 +.ob_blood dc $ff0 ;color AND for blood +.ob_ypad dc 1 + +demon_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $50000 +.ob_shape dc.l demon +.ob_logic dc.l demonlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -90 ;where bullets come from +.ob_gutsy dc -72 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 5 +.ob_hitpoints dc 15 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $5000 +.ob_base dc 32 +.ob_range dc 4 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $380 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +weapon1_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon1 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 2 +.ob_range dc 4 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon2_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon2 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 2 +.ob_range dc 4 +.ob_weapon dc 1 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon3_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon3 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 2 +.ob_range dc 4 +.ob_weapon dc 2 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon4_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon4 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 2 +.ob_range dc 4 +.ob_weapon dc 3 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon5_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon5 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 2 +.ob_range dc 4 +.ob_weapon dc 4 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +lizard_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $60000 +.ob_shape dc.l lizard +.ob_logic dc.l lizardlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l lizhurt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 2 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 8 +.ob_range dc 8 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 2 +.ob_punchrate dc 3 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $240 +.ob_apad dc 0 +.ob_blood dc $f0f ;color AND for blood +.ob_ypad dc 1 + +abouttext dc.b 14 + dc.b 'GLOOM',0 + dc.b 0 + dc.b 'A BLACK MAGIC GAME',0 + dc.b 0 + dc.b 'PROGRAMMED BY MARK SIBLY',0 + dc.b 'GRAPHICS BY THE BUTLER BROTHERS',0 + dc.b 'MUSIC BY KEV STANNARD',0 + dc.b 'AUDIO BY US',0 + dc.b 'PRODUCED BY US',0 + dc.b 'DESIGNED BY US',0 + dc.b 'GAME CODED IN DEVPAC2',0 + dc.b 'UTILITIES CODED IN BLITZ BASIC 2',0 + dc.b 'RENDERED IN DPAINT3 AND DPAINT4',0 + dc.b 'DECRUNCHING CODE BY THOMAS SCHWARZ',0 + even + +sqrinc incbin sqr.bin + +weapon1 dc.l bullet1,sparks1 +weapon2 dc.l bullet2,sparks2 +weapon3 dc.l bullet3,sparks3 +weapon4 dc.l bullet4,sparks4 +weapon5 dc.l bullet5,sparks5 + +bullet1 incbin bullet1.bin +bullet2 incbin bullet2.bin +bullet3 incbin bullet3.bin +bullet4 incbin bullet4.bin +bullet5 incbin bullet5.bin + +sparks1 incbin sparks1.bin +sparks2 incbin sparks2.bin +sparks3 incbin sparks3.bin +sparks4 incbin sparks4.bin +sparks5 incbin sparks5.bin + +gloombrush incbin gloombrush + +gloom incbin title +gloompal incbin title.pal + +combat incbin combat +combatpal incbin combat.pal + +medplayer incbin medplay +decrm incbin decrm + +castrotsinc incbin castrots.bin +camrotsinc incbin camrots.bin ;256 +camrots2inc incbin camrots2.bin ;1024 +chatfont incbin chatfont.bin + +rgbs16 ds.l 16 +map_rgbs_ ds.w 256*16 diff --git a/gloom.s.ok b/gloom.s.ok new file mode 100644 index 0000000..7ceecb5 --- /dev/null +++ b/gloom.s.ok @@ -0,0 +1,12657 @@ + + ;OK, add a cheat mode! + ; + ;adding chat-line... + ; + ;OK, modem stuff... + ; + ;Once 2 machines are linked, player 1 gets to choose options! + ;player 2 is ignored... + ; + ;player 1 if linked=1, 2 if linked=-1 + + ;********* + ;* GLOOM * + ;********* + ; + ;error codes + ; + ;red - allocmem failed + ;yel - freemem failed + ;orange - unknown script command + ;purp - unknown event command + ;cyn - can't open file in loadfile + ;blu - ran out of remap colours! + +ok equ 750+125 ;overkill level! + ; +cy equ 166 + +pl_eyey equ 110 +pl_firey equ 60 +pl_gutsy equ 64 + +debugser equ 0 +debugmem equ 0 +onedemo equ 0 + ; +ireload equ 5 ;initial reload val. +maxobjects equ 256 ;max objects in game +maxdoors equ 16 ;max doors opening at once +maxblood equ 128 ;max droplets of bluuurd +maxgore equ 128 ;body parts on ground! +maxrotpolys equ 32 ;max rotating thingys. + ; +focshft equ 6 +grdshft equ 8 +darkshft equ 7 ;smaller=smaller range=faster! +maxz equ 16<>1 + ; +linemod equ 40*7 + + jmp entrypoint + + rsreset + ; + ;rotpoly details... + ; +rp_next rs.l 1 +rp_prev rs.l 1 + ; +rp_speed rs.w 1 +rp_rot rs.w 1 +rp_flags rs.w 1 ;what to do? + ; +rp_cx rs.w 1 ;only for rot +rp_cz rs.w 1 +rp_first rs.l 1 ;pointer to first! +rp_num rs.w 1 + ; +rp_vx rs.w 0 +rp_lx rs.w 1 +rp_vz rs.w 0 +rp_lz rs.w 1 +rp_ox rs.w 0 +rp_na rs.w 1 +rp_oz rs.w 0 +rp_nb rs.w 1 + ; +rp_more rs.b 8*31 ;=32 max verts! + ; +rp_size rs.b 0 + + rsreset + ; + ;sfx channel info + ; +fx_status rs.w 1 +fx_priority rs.w 1 +fx_sfx rs.l 1 +fx_vol rs.w 1 +fx_offset rs.w 1 +fx_dma rs.w 1 +fx_int rs.w 1 + ; +fx_size rs.b 0 + + rsreset + ; + ;blood! + ; +bl_next rs.l 1 +bl_prev rs.l 1 +bl_x rs.l 1 +bl_y rs.l 1 +bl_z rs.l 1 +bl_xvec rs.l 1 +bl_dest rs.l 0 +bl_yvec rs.l 1 +bl_zvec rs.l 1 +bl_color rs.l 1 ;colour and! + ; +bl_size rs.b 0 + + rsreset + ; + ;a texture + ; +te_pal rs.l 1 + ; +te_size rs.b 0 + + rsreset + ; + ;an opening/closing door! + ; +do_next rs.l 1 +do_prev rs.l 1 +do_poly rs.l 1 ;door polygon +do_lx rs.w 1 +do_lz rs.w 1 +do_rx rs.w 1 +do_rz rs.w 1 +do_frac rs.w 1 +do_fracadd rs.w 1 + ; +do_size rs.b 0 + + rsreset + ; + ;wall list... + ; +wl_next rs.l 1 +wl_lsx rs.w 1 ;leftmost screen X +wl_rsx rs.w 1 ;rightmost screen X +wl_nz rs.w 1 ;near Z! +wl_fz rs.w 1 ;far Z! +wl_lx rs.w 1 +wl_lz rs.w 1 +wl_rx rs.w 1 +wl_rz rs.w 1 +wl_a rs.w 1 +wl_b rs.w 1 +wl_c rs.l 1 +wl_sc rs.w 1 +wl_open rs.w 1 ;0=door shut, $4000=open! +wl_t rs.b 8 ;textures + ; +wl_size rs.b 0 + + rsreset + ; + ;a zone... + ; +zo_done rs.w 1 +zo_lx rs.w 1 +zo_lz rs.w 1 +zo_rx rs.w 1 +zo_rz rs.w 1 + ; +zo_a rs.w 1 +zo_b rs.w 1 +zo_na rs.w 1 +zo_nb rs.w 1 +zo_ln rs.w 1 + ; +zo_t rs.b 8 ;8 textures + ; +zo_sc rs.w 1 ;scale (how many txts on wall) +zo_open rs.w 0 ;for wall polys... +zo_ev rs.w 1 ;for events... + ; +zo_size rs.b 0 ;32! + + rsreset + ; + ;a shape to draw! + ; +sh_next rs.l 1 +sh_prev rs.l 1 +sh_x rs.w 1 +sh_y rs.w 1 +sh_z rs.w 1 +sh_shape rs.l 1 +sh_scale rs.w 0 +sh_strip rs.l 1 +sh_render rs.l 1 ;drawobjnorm or drawobjinvs + ; +sh_size rs.b 0 + + rsreset + ; + ;gore...body parts lying around! + ; +go_next rs.l 1 +go_prev rs.l 1 +go_x rs.w 1 +go_z rs.w 1 +go_shape rs.l 1 + ; +go_size rs.b 0 + + rsreset + ; + ;an object in the game (player/alien etc...) + ; +ob_next rs.l 1 +ob_prev rs.l 1 +ob_x rs.l 1 +ob_y rs.l 1 +ob_z rs.l 1 +ob_rot rs.l 1 + ; + ;start of info load by prog. +ob_info rs.b 0 + ; +ob_rotspeed rs.l 1 +ob_movspeed rs.l 1 +ob_shape rs.l 1 +ob_logic rs.l 1 +ob_render rs.l 1 +ob_hit rs.l 1 ;routine to do when damaged +ob_die rs.l 1 ;routine to do when killed +ob_eyey rs.w 1 ;eye height +ob_firey rs.w 1 ;where bullets come from +ob_gutsy rs.w 1 +ob_mega rs.w 0 +ob_othery rs.w 1 +ob_colltype rs.w 1 +ob_collwith rs.w 1 +ob_cntrl rs.w 1 +ob_damage rs.w 1 +ob_hitpoints rs.w 1 +ob_think rs.w 1 +ob_frame rs.l 1 ;anim frame +ob_framespeed rs.l 1 ;anim frame +ob_base rs.w 1 +ob_range rs.w 1 +ob_weapon rs.w 1 ;weapon meter (0...4) +ob_reload rs.b 1 ;weapon reload timer +ob_reloadcnt rs.b 1 ;counter +ob_hurtpause rs.w 1 +ob_firerate rs.w 0 +ob_punchrate rs.w 1 +ob_bouncecnt rs.w 1 ;how many times my bullets bounce! +ob_firecnt rs.w 0 +ob_something rs.w 1 +ob_scale rs.w 1 ;scale factor for drawing +ob_lastbut rs.w 1 +ob_blood rs.w 1 ;color AND for blood +ob_ypad rs.w 1 + ; +ob_oldlogic rs.l 1 +ob_oldlogic2 rs.l 1 +ob_oldhit rs.l 1 +ob_olddie rs.l 1 +ob_oldrot rs.w 1 +ob_newrot rs.w 1 +ob_yvec rs.l 1 +ob_xvec rs.l 1 +ob_zvec rs.l 1 +ob_radsq rs.l 1 ;radius squared +ob_rad rs.w 1 +ob_delay rs.w 1 +ob_delay2 rs.w 0 +ob_bounce rs.w 1 +ob_hurtwait rs.w 1 + ; +ob_washit rs.l 1 ;flag for un-hit coll detect! +ob_window rs.l 1 ;pointer back to window! +ob_nxvec rs.w 0 ;normalized X vec +ob_lives rs.w 1 +ob_nzvec rs.w 0 ;nomralized z vec +ob_infra rs.w 1 +ob_thermo rs.w 1 +ob_invisible rs.w 1 +ob_hyper rs.w 1 +ob_update rs.w 1 ;update stats! +ob_mess rs.l 1 ;message +ob_messlen rs.w 1 +ob_messtimer rs.w 1 ;timer for messages +ob_palette rs.l 1 ;palette for window +ob_paltimer rs.w 1 ;timer before back to normal +ob_pixsize rs.w 1 +ob_pixsizeadd rs.w 1 +ob_telex rs.w 1 +ob_telez rs.w 1 +ob_telerot rs.w 1 +ob_chunks rs.l 1 + ; +ob_size rs.b 0 + + rsreset + ; + ;solid wall draw data + ; +vd_z rs.w 1 ;current Z +vd_pal rs.w 1 ;palette# (0...15) +vd_y rs.w 1 +vd_h rs.w 1 +vd_data rs.l 1 +vd_ystep rs.l 1 + ; +vd_size rs.b 0 + + rsreset + ; + ;palette file... + ; +pa_numcols rs.w 1 ;how many colours +pa_cols rs.w 256 ;the colours! + + rsreset + ; + ;anim file... + ; +an_rotshft rs.w 1 +an_frames rs.w 1 +an_maxw rs.w 1 +an_maxh rs.w 1 +an_pal rs.l 1 + ; +an_size rs.b 0 + + rsreset + ; + ;window + ; +wi_slice rs.l 1 ;slice window appears in! +wi_nslice rs.l 1 ;next slice to disp. +wi_x rs 1 +wi_y rs 1 +wi_w rs 1 ;how many chixels across +wi_h rs 1 ;how many down +wi_pw rs 1 ;width of 1 chixel +wi_ph rs 1 ;hite of 1 chixel + ; +wi_bw rs 1 ;bitmap width +wi_bh rs 1 ;bitmap height + ; +wi_bmapmem rs.l 1 +wi_copmem rs.l 1 +wi_bmap rs.l 1 +wi_cop rs.l 1 +wi_cop1 rs.l 1 +wi_cop2 rs.l 1 +wi_copmod rs.w 1 + ; +wi_strip rs.l 1 +wi_iff rs.l 1 ;show iff instead! +wi_pal rs.l 1 ;palette for IFF! + ; +wi_size rs.b 0 + +key macro + btst #\1&7,\1>>3(a0) + endm + +keya1 macro + btst #\1&7,\1>>3(a1) + endm + +qkey macro + move.l rawtable(pc),a0 + key \1 + endm + +freemem macro + ; + ifne debugmem + lea .fmem\@,a0 + jsr freemem_ + bra .fmemskip\@ +.fmem\@ dc.b '\1',0 + even +.fmemskip\@ ; + elseif + jsr freemem_ + endc + ; + endm + +allocmem macro + ; + ifne debugmem + ; + lea .amem\@,a0 + jsr allocmem_ + bra .amemskip\@ +.amem\@ dc.b '\1',10,0 + even +.amemskip\@ ; + elseif + ; + jsr allocmem_ + ; + endc + ; + endm + +allocmem2 macro + ; + ifne debugmem + ; + lea .amem\@,a0 + jsr allocmem2_ + bra .amemskip\@ +.amem\@ dc.b '\1',10,0 + even +.amemskip\@ ; + elseif + ; + jsr allocmem2_ + ; + endc + ; + endm + +alloclist macro ;alloclist listname,maxitems,itemsize + ; + move.l \2,d0 + move.l \3,d1 + lea \1(pc),a2 + jsr k_alloclist + bra.s alskip\@ + ; +\1 dc.l 0 ;0 +\1_last dc.l 0 ;4 + dc.l 0 ;8 +\1_free dc.l 0 ;12 +alskip\@ ; + endm + +k_alloclist ;a2=address of 'first' pointer + ;d0=max items, d1=item size + ; + move.l a2,8(a2) ;clear out used list + lea 4(a2),a0 + clr.l (a0) + move.l a0,(a2) + movem.l d0-d1,-(a7) + mulu d1,d0 + move.l #$10001,d1 + allocmem alloclist + move.l d0,a0 + lea 12(a2),a2 + movem.l (a7)+,d0-d1 + subq #1,d0 +.loop move.l a0,(a2) + move.l a0,a2 + add d1,a0 + dbf d0,.loop + rts + +addnext macro + ; + ;addnext 'listname' + ;add after a5 + ;return eq if none available else a0 + ; + move.l \1_free,d0 + beq.s .anskip\@ + move.l d0,a0 + move.l (a0),\1_free + move.l (a5),a1 + move.l a1,(a0) + move.l a0,4(a1) + move.l a0,(a5) + move.l a5,4(a0) +.anskip\@ ; + endm + +addfirst macro + ; + ;addfirst 'listname' + ;return eq if none available else a0 + ; + move.l \1_free,d0 + beq.s .afskip\@ + move.l d0,a0 + move.l (a0),\1_free + move.l \1,a1 ;current first + move.l a1,(a0) + move.l a0,4(a1) + move.l a0,\1 + move.l #\1,4(a0) +.afskip\@ ; + endm + +addlast macro + ; + ;addlast 'listname' + ;return eq in none available else a0 + ; + move.l \1_free,d0 + beq.s .alskip\@ + move.l d0,a0 + move.l (a0),\1_free + ; + move.l \1_last+4,a1 ;current last + move.l a0,(a1) + move.l a1,4(a0) + move.l a0,\1_last+4 + move.l #\1_last,(a0) +.alskip\@ ; + endm + +killitem macro + ; + ;killitem listname + ;a0=item to kill, return a0=previous item. + ; + move.l (a0),a1 ;next of me! + move.l 4(a0),4(a1) + move.l 4(a0),a1 ;prev of me + move.l (a0),(a1) + move.l \1_free,(a0) + move.l a0,\1_free + move.l a1,a0 + endm + +clearlist macro + ; + ;clearlist listname + ; +.clloop\@ move.l \1,a0 + tst.l (a0) + beq .cldone\@ + killitem \1 + bra .clloop\@ +.cldone\@ ; + endm + +zerolist macro listname,size of item + ; + ;fill all list items with 0! + ; + clearlist \1 +.zlloop\@ addlast \1 + beq .zlskip\@ + lea 8(a0),a1 + moveq #0,d0 + move #(\2-8)/2-1,d1 +.zlloop2\@ move d0,(a1)+ + dbf d1,.zlloop2\@ + bra .zlloop\@ +.zlskip\@ clearlist \1 + ; + endm + +bwait macro + ; +.bwait\@ btst #6,$dff002 + beq.s .bwait2\@ + bra.s .bwait\@ +.bwait2\@ ; + endm + +printlong macro + move.l \1,-(a7) + jsr printlong_ + endm + +check macro + list +check set *-\1 + nolist + endm + +push macro + movem.l d2-d7/a2-a6,-(a7) + endm + +pull macro + movem.l (a7)+,d2-d7/a2-a6 + endm + +col macro + move #0,$dff106 + move \1,$dff180 + endm + +warn macro + move d0,-(a7) + move #-1,d0 +.wloop\@ col \1 + dbf d0,.wloop\@ + move (a7)+,d0 + endm + +tempfile ds.b 64 + +wbmess dc.l 0 ;workbench message! + +entrypoint ; + clr.l map_test + move.l 4.w,a6 + move.l 276(a6),a5 ;task + tst.l $ac(a5) ;cli? + bne.s cli + ; + lea $5c(a5),a0 + jsr -384(a6) ;waitport + lea $5c(a5),a0 + jsr -372(a6) ;get message + move.l d0,wbmess + bra wb +cli ; + cmp.b #'@',(a0)+ + bne.s wb + lea tempfile,a1 + move.l a1,map_test +.loop move.b (a0)+,(a1) + beq.s wb + cmp.b #10,(a1)+ + bne.s .loop + clr.b -(a1) +wb ; + lea dosname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,dosbase + ; + move.l d0,a6 + jsr -60(a6) + move.l d0,outhand + ; + move.l wbmess(pc),d0 + beq.s .nocd + move.l d0,a0 + move.l $24(a0),a0 + move.l (a0),d1 + move.l dosbase,a6 + jsr -126(a6) +.nocd ; + jsr initmain + bsr bigfont + ; +.intro move.l medat(pc),a1 + move.l titlemed(pc),a0 + jsr 8(a1) ;start title music! + ; +.intro2 jsr dointro ;returns gametype + ; + cmp #3,gametype + bcs.s .play + move.l medat(pc),a1 + jsr 12(a1) + bra.s exittoos +.play ; + bsr initnewgame + tst gametype + bmi .intro2 + ; + bsr smallfont + tst twowins + beq.s .n2 + bsr swaphflags +.n2 bsr execscript_med +.wmf tst fadevol + bne.s .wmf + tst twowins + beq.s .n22 + bsr swaphflags +.n22 bsr bigfont + bra .intro + ; +exittoos bsr freeobjlist2 + move #$4000,$dff09a + move.l ciaa,a0 + movem.l rawstuff,d0-d1 + movem.l d0-d1,$64(a0) + move #$c000,$dff09a + jsr permit + jsr finitdisplay + jsr finitvbint + jsr finitsfx + jsr finitser + jsr freememlist + jsr undir + ; + move.l wbmess(pc),d0 + beq.s .bye + ; + move.l 4.w,a6 + move.l d0,a1 + jsr -378(a6) + clr.l wbmess + ; +.bye rts + +; ************* FAST SUBS ******************** + +fastsubs + +swaphflags movem.l floorflag(pc),d0-d1 + move.l d1,floorflag + move.l d0,floorflag2 + rts + +smallfont move #6,fontw + move #8,fonth + move.l smallfont_,font + rts + +bigfont move #8,fontw + move #10,fonth + move.l bigfont_,font + rts + +encodejoy ;a0=cntrl block to encode... + ;return d0 encoded + ; + ;bit: + ;0 = joyx -1 + ;1 = joyx 1 + ;2 = joyy -1 + ;3 = joyy 1 + ;4 = joyb true + ;5 = joys true + ; + moveq #0,d0 + ; + tst (a0) + beq.s .skipx + bpl.s .x1 + bset #0,d0 + bra.s .skipx +.x1 bset #1,d0 +.skipx tst 2(a0) + beq.s .skipy + bpl.s .y1 + bset #2,d0 + bra.s .skipy +.y1 bset #3,d0 +.skipy tst 4(a0) + beq.s .skipb + bset #4,d0 +.skipb tst 6(a0) + beq.s .skipf + bset #5,d0 +.skipf ; + rts + +decodejoy ; + ;d0.b = encoded byte... + ;a0 = block to fill + ; + ;0 = joyx -1 + ;1 = joyx 1 + ;2 = joyy -1 + ;3 = joyy 1 + ;4 = joyb true + ;5 = joys true + ; + clr (a0) + move d0,d1 + and #3,d1 + beq.s .skipx + cmp #1,d1 + bne.s .x1 + move #-1,(a0) + bra.s .skipx +.x1 move #1,(a0) +.skipx clr 2(a0) + move d0,d1 + and #12,d1 + beq.s .skipy + cmp #4,d1 + bne.s .y1 + move #-1,2(a0) + bra.s .skipy +.y1 move #1,2(a0) +.skipy btst #4,d0 + sne d1 + ext d1 + move d1,4(a0) + btst #5,d0 + sne d1 + ext d1 + move d1,6(a0) + rts + +sfxs ; +sfx0 ds.b fx_size +sfx1 ds.b fx_size +sfx2 ds.b fx_size +sfx3 ds.b fx_size + +sfxintserver0 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx0 + dc.l sfxint + +sfxintserver1 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx1 + dc.l sfxint + +sfxintserver2 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx2 + dc.l sfxint + +sfxintserver3 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx3 + dc.l sfxint + +initsfx push + move.l 4.w,a6 + ; + moveq #7,d0 + lea sfxintserver0,a1 + jsr -162(a6) ;setintvector + ; + moveq #8,d0 + lea sfxintserver1,a1 + jsr -162(a6) + ; + moveq #9,d0 + lea sfxintserver2,a1 + jsr -162(a6) + ; + moveq #10,d0 + lea sfxintserver3,a1 + jsr -162(a6) + ; + lea sfxs(pc),a1 + move #$80,d0 + moveq #1,d1 + moveq #0,d2 + moveq #3,d3 +.loop bsr .init + lea fx_size(a1),a1 + dbf d3,.loop + ; + pull + rts + ; +.init clr fx_status(a1) + move d0,fx_int(a1) + move d1,fx_dma(a1) + move d2,fx_offset(a1) + add d0,d0 + add d1,d1 + add #16,d2 + rts + +finitsfx push + move.l 4.w,a6 + ; + moveq #7,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #8,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #9,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #10,d0 + sub.l a1,a1 + jsr -162(a6) + ; + pull + rts + +waitquiet bsr vwait + lea sfxs(pc),a0 + moveq #3,d0 +.loop tst fx_status(a0) + bne.s waitquiet + lea fx_size(a0),a0 + dbf d0,.loop + rts + +playsfx ;sfx file in a0, vol in d0, priority in d1 + ; + move #$4000,$dff09a ;snd/vb ints off + ; + lea sfxs(pc),a1 + moveq #3,d2 +.loop tst fx_status(a1) + beq.s makesfx + lea fx_size(a1),a1 + dbf d2,.loop + ; + ;OK, none free...check priorities + ; + lea sfxs(pc),a1 + moveq #3,d2 +.loop2 cmp fx_priority(a1),d1 + bgt.s queuesfx + lea fx_size(a1),a1 + dbf d2,.loop2 + ; + ;no-can-do! + ; + move #$c000,$dff09a + rts + ; +queuesfx ;OK, turn off other and play US! + ; + move #1,fx_status(a1) + move d0,fx_vol(a1) + move d1,fx_priority(a1) + move.l a0,fx_sfx(a1) ;play me next! + ; + bsr sfxoff + ; + move #$c000,$dff09a + rts + +sfxoff lea $dff0a0,a2 + add fx_offset(a1),a2 + move.l chipzero(pc),(a2) + move #1,4(a2) ;len + move #0,8(a2) ;vol + move fx_int(a1),$dff09a + move fx_dma(a1),$dff096 + rts + +makesfx ;OK, play this SFX NOW! + ; + move d1,fx_priority(a1) + move d0,fx_vol(a1) + bsr playsfxnow + move #$c000,$dff09a + rts + +playsfxnow move #-2,fx_status(a1) + ; + lea $dff0a0,a2 + add fx_offset(a1),a2 + move (a0)+,6(a2) ;period + move (a0)+,4(a2) ;len + move fx_vol(a1),8(a2) ;vol + move.l a0,(a2) ;data + ; + move fx_dma(a1),d0 ;dma bits + or #$8000,d0 + move fx_int(a1),d1 ;int bits + move d1,d2 + or #$8000,d1 + ; + move d0,$dff096 ;dma on! + move d1,$dff09a ;int en + move d2,$dff09c ;intreq clr + ; + rts + +sfxint ;interupt for sfx! + ; + tst fx_status(a1) + bge.s .skip + addq #1,fx_status(a1) + blt.s .skip + ; + move.l a2,-(a7) + bsr sfxoff + move.l (a7)+,a2 + ; +.skip move fx_int(a1),$dff09c + moveq #0,d0 + rts + +dogamemenu ; + move #$20,$dff09a + ; + st paused + move framecnt,-(a7) + move linked,-(a7) + clr linked + ; + move #$8020,$dff09a + ; + move.l player1,a5 + move.l ob_palette(a5),-(a7) + move.l #palettesw,ob_palette(a5) + move.l ob_window(a5),a2 + jsr plotwbmap + ; + tst twowins + beq .p1 + ; + move.l player2,a5 + move.l ob_palette(a5),-(a7) + move.l #palettesw,ob_palette(a5) + move.l ob_window(a5),a2 + jsr plotwbmap +.p1 ; + bsr drawall2 + ; + move.l player1,a5 + lea gamemenu,a4 + move.l ob_window(a5),a6 + jsr initmenu + ; +.loop bsr selmenu + beq .done + ; + subq #1,d0 + bne .notpsize + bsr newpsize + bra .loop + ; +.notpsize subq #1,d0 + bne .notwsize + bsr newwsize + bra .loop + ; +.notwsize subq #1,d0 + bne .notlwin + bsr largewin + bra .loop + ; +.notlwin subq #1,d0 + bne .notfloor + ; + addq #1,floorflag + cmp #2,floorflag + bne.s .fskip + move #-1,floorflag +.fskip bsr refresh + bra .loop + ; +.notfloor subq #1,d0 + bne .notroof + ; + addq #1,roofflag + cmp #2,roofflag + bne.s .rskip + move #-1,roofflag +.rskip bsr refresh + bra .loop +.notroof ; + move #1,finished + ; +.done bsr finitmenu + ; + tst twowins + beq.s .p12 + ; + move.l player2,a5 + move.l (a7)+,ob_palette(a5) + move.l ob_window(a5),a2 + jsr plotwbmap + bsr initstats + bsr showstats +.p12 ; + move.l player1,a5 + move.l (a7)+,ob_palette(a5) + move.l ob_window(a5),a2 + jsr plotwbmap + bsr initstats + bsr showstats + ; + move #$20,$dff09a + ; + move (a7)+,linked + move (a7)+,framecnt + clr paused + ; + move #$8020,$dff09a + ; + rts + +freewindows lea window1,a0 + jsr freewindow + tst twowins + beq.s .p1 + lea window2,a0 + jsr freewindow +.p1 rts + +largewin move.l player1,a5 + bsr large + tst twowins + beq refresh + move.l player2,a5 + bsr large + bra refresh + +large move.l ob_window(a5),a6 + move wi_pw(a6),d2 + ; + cmp #2,d2 + beq .lhr + ; + ;large lo-res window! + ; +.lores move #324,d0 + move #240,d1 + bra thinkwin + ; +.lhr bsr swappsize + bra.s .lores + ; + move #180,d0 + move #240,d1 + bra thinkwin + +newwsize ;window size stuff! + ; + move.l player1,a5 + bsr swapwsize + tst twowins + beq refresh + move.l player2,a5 + bsr swapwsize + bra refresh + +swapwsize ;increment window size! + ; + move.l ob_window(a5),a6 + movem wi_w(a6),d0-d1 ;w,h + move wi_pw(a6),d2 + mulu d2,d0 + mulu d2,d1 + cmp #2,d2 + beq .hr + ; + ;lo-res! + ; + cmp #318,d0 + bcs.s .inc + move #132,d0 + move d0,d1 + bra thinkwin +.inc add #24,d0 + move d0,d1 + cmp #240,d1 + bls thinkwin + move #240,d1 + bra thinkwin + ; +.hr cmp #180,d0 + bcs.s .inc2 + tst twowins + bne .min + add #18,d1 + cmp #240,d1 + bls thinkwin +.min move #132,d0 + move d0,d1 + bra thinkwin +.inc2 add #24,d0 + move d0,d1 + ; +thinkwin move #180,d3 ;max width! + cmp #2,d2 + beq .gmax + move #318,d3 +.gmax cmp d3,d0 + bls .nm + move d3,d0 +.nm ; + cmp #240,d1 + bls .n240 + move #240,d1 +.n240 tst twowins + beq.s .ggt + move #120,d1 +.ggt ; + move #160,d3 + move d0,d4 + lsr #1,d4 + sub d4,d3 ;wi_x + move d3,wi_x(a6) + ; + ext.l d0 + divu d2,d0 + move d0,wi_w(a6) + ; + tst twowins + bne.s .skip3 + ; + move #cy,d3 + move d1,d4 + lsr #1,d4 + sub d4,d3 + move d3,wi_y(a6) + ; +.skip3 ext.l d1 + divu d2,d1 + move d1,wi_h(a6) + ; + rts + +newpsize ;toggle pixel size between 2 and 3 + ; + ;copy windows to temp so we can free 'em up later + ; + move.l player1,a5 + bsr swappsize + tst twowins + beq refresh + move.l player2,a5 + bsr swappsize + ; +refresh jsr dispoff + bsr finitmenu + ; + bsr freewindows + bsr putwindow + ; + lea window1,a0 + jsr makewindow + lea window1,a0 + jsr showwindow + ; + tst twowins + beq.s .p1 + ; + lea window2,a0 + jsr makewindow + lea window2,a0 + jsr showwindow + ; +.p1 jsr calcbpos + ; + lea gamemenu,a4 + lea window1,a6 + jsr initmenu2 + ; + bsr drawall2 + jsr dispon + rts + +swappsize move.l ob_window(a5),a6 + movem wi_w(a6),d0-d1 ;w,h + move wi_pw(a6),d2 + mulu d2,d0 + mulu d2,d1 + eor #1,d2 ;2,3... + move d2,wi_pw(a6) + move d2,wi_ph(a6) + ; + bra thinkwin + +showflag dc 0 + +showit ;don't show if beam in the way! + ; + move showflag(pc),d0 + beq.s .rts + ; + move.l $dff004,d0 + lsr.l #8,d0 ;beampos + and #$1ff,d0 + ; + cmp minbpos(pc),d0 + bcs.s .show + cmp maxbpos(pc),d0 + bcs.s .rts + ; + ;cmp minbpos(pc),d0 + ;bcc.s .rts + ; +.show clr showflag + lea window1,a0 + jsr showwindowq + lea window2,a0 + jmp showwindowq + ; +.rts rts + +drawall2 bsr drawall + bsr drawall + bra vwait + +drawall ; +.wait move doneflag(pc),d0 + beq.s .wait ;wait for update + clr doneflag +.wait2 move showflag(pc),d0 + bne.s .wait2 + ; + move.l memory(pc),memat + move.l player1(pc),a5 + bsr calcscene + move.l player1(pc),a5 + bsr blitscene + move.l player1(pc),a5 + bsr drawscene + ; + move twowins(pc),d0 + beq.s .show + ; + move.l memory(pc),memat + move.l player2(pc),a5 + bsr calcscene + move.l player2(pc),a5 + bsr blitscene + move.l player2(pc),a5 + bsr drawscene + ; +.show st showflag + rts + +resetplayer st ob_update(a5) + clr ob_mega(a5) + clr ob_thermo(a5) + clr ob_infra(a5) + clr ob_invisible(a5) + clr ob_messtimer(a5) + clr ob_pixsize(a5) + clr ob_pixsizeadd(a5) + clr ob_bouncecnt(a5) + move.l #palettes,ob_palette(a5) + rts + +message ;print up a message...player in a5 + ; + move.l (a7),a0 ;return address=message! + move.l a0,ob_mess(a5) + ; + moveq #-1,d0 +.loop addq #1,d0 + tst.b (a0)+ + bne.s .loop + ; + move d0,ob_messlen(a5) + move #-127,ob_messtimer(a5) + ; + move.l a0,d0 + addq.l #1,d0 + and #$fffe,d0 + move.l d0,(a7) + rts + +pdelay dc 0 ;non zero=wait between prints + +printmess ;a5=object + ; + move.l ob_window(a5),a6 + move.l ob_mess(a5),a4 + move ob_messlen(a5),d0 + move wi_bh(a6),d6 + lsr #2,d6 ;Y + ; +printmess2 ;a6=window, a4=message, d0=length of message, d6=Y + ; + move fontw(pc),d2 + lsr #1,d2 + mulu d2,d0 + move #160,d7 + sub d0,d7 ;X + ; +.loop2 move.b (a4)+,d2 + beq .done + cmp.b #' ',d2 + beq.s .spc + cmp.b #'0',d2 + bcs.s .nnum + cmp.b #'9',d2 + bhi.s .nnum + sub.b #'0',d2 + ext d2 + bra.s .here +.nnum cmp.b #'!',d2 + bne.s .notex + moveq #36,d2 + bra.s .here +.notex cmp.b #'.',d2 + bne.s .notfs + moveq #37,d2 + bra.s .here +.notfs cmp.b #':',d2 + bne.s .notcol + moveq #38,d2 + bra.s .here +.notcol cmp.b #127,d2 + bne.s .notcurs + moveq #39,d2 + bra.s .here +.notcurs and #31,d2 + add #9,d2 +.here move.l font(pc),a0 + move.l wi_bmap(a6),a1 + move d7,d0 + move d6,d1 + bsr blit + ; + move pdelay(pc),d2 + subq #1,d2 + bmi.s .spc + ; +.pdloop bsr vwait + bsr checkany + beq.s .none + move #-1,pdelay + moveq #0,d2 +.none dbf d2,.pdloop + ; +.spc add fontw(pc),d7 + bra .loop2 +.done ; + rts + +initstats ; + ;health... + move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #2,d1 + moveq #39,d2 + bsr blit + ; + ;weapon... + move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #12,d1 + moveq #44,d2 + bra blit + +putstrip ;a0=window + ; + move.l wi_bmap(a0),a1 + move wi_bh(a0),d0 + lsr #2,d0 + mulu #7*40,d0 + add.l d0,a1 ;dest + move.l wi_strip(a0),a0 ;src + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l #$9f00000,$dff040 + move.l #-1,$dff044 + move #0,$dff064 + move #0,$dff066 + move.l a0,$dff050 + move.l a1,$dff054 + move #(7*7)<<6+20,$dff058 + rts + +loff dc 0 + +showstats ;a5=player + ; + ;ok, hitpoints... + ; + ;lagtime... + move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #22,d1 + move lagtime(pc),d2 + bsr blit + ; + move.l ob_window(a5),a0 + moveq #44,d5 + add wi_x(a0),d5 + moveq #40,d4 + moveq #0,d6 + move ob_hitpoints(a5),d7 + ; +.hploop cmp d7,d6 + bcs.s .hpskip + cmp #25,d7 + bcc.s .hpdone + moveq #41,d4 + moveq #25,d7 + bra.s .hploop + ; +.hpskip move.l font(pc),a0 + move.l ob_window(a5),a1 + move.l wi_bmap(a1),a1 + move d5,d0 + moveq #2,d1 + move d4,d2 + bsr blit + addq #2,d5 + addq #1,d6 + bra.s .hploop +.hpdone ; + ;show lives remaining... + ; + move.l ob_window(a5),a0 + move wi_bw(a0),d5 + add wi_x(a0),d5 + move ob_lives(a5),d7 + beq.s .lvdone + subq #1,d7 +.lvloop ; + move.l font(pc),a0 + move.l ob_window(a5),a1 + move.l wi_bmap(a1),a1 + subq #8,d5 + move d5,d0 + moveq #2,d1 + moveq #43,d2 + bsr blit + dbf d7,.lvloop +.lvdone ; + ;show weapons! + ; + move.l ob_window(a5),a0 + moveq #44,d5 + add wi_x(a0),d5 + moveq #49,d4 + sub ob_weapon(a5),d4 ;0...4 + moveq #1,d7 +.wploop ; + move.l font(pc),a0 + move.l ob_window(a5),a1 + move.l wi_bmap(a1),a1 + move d5,d0 + moveq #12,d1 + moveq #50,d2 + cmp.b ob_reload(a5),d7 + blt.s .nowp + move d4,d2 +.nowp bsr blit + ; + add #10,d5 + addq #1,d7 + cmp #6,d7 + bcs.s .wploop + ; + rts + +blit ;a0=shapetable to blit, a1=bitmap, d0=X, d1=Y, d2=char + ; + add.l 4(a0,d2*4),a0 + ; + mulu #280,d1 + add.l d1,a1 + move d0,d2 + asr #3,d2 + add d2,a1 ;dest! + move.l a0,a2 + add.l (a0),a2 + lea 8(a0),a3 + addq #4,a0 + and #15,d0 + ror #4,d0 + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l a2,$dff050 + move.l a3,$dff04c + move.l a1,$dff048 + move.l a1,$dff054 + ; + move d0,$dff042 + or blitmode(pc),d0 + move d0,$dff040 + move.l #$ffff0000,$dff044 + moveq #-2,d0 + move d0,$dff064 + move d0,$dff062 + moveq #38,d0 + sub (a0)+,d0 + move d0,$dff060 + move d0,$dff066 + move (a0)+,$dff058 + ; + rts + +blitmode dc $fca + +pixsize dc 0 ;pixel size...at least 2! + +pixelate ;pixel out the coplist...d0=pixelsize + ; + move d0,pixsize + move d0,d1 + ; + ;pixel out vertically, then horizontally + ; + move.l cop(pc),a0 + lea coloffs(pc),a1 + moveq #0,d2 ;x + move d1,d6 + lsr #1,d6 +.forx ; + move.l a0,a3 + lea 0(a1,d2*4),a2 + add.l (a2),a3 + ; + move d2,d5 + add d6,d5 + cmp width(pc),d5 + ble.s .xok + move width(pc),d5 +.xok sub d2,d5 + ble .done + subq #1,d5 + ; +.loop2 moveq #0,d3 + move.l a3,a4 + move.l a0,a5 + add.l (a2)+,a5 + move d1,d7 + lsr #1,d7 ;first Y add +.fory ; + move (a4),d0 ;start column! + move d3,d4 + add d7,d4 + cmp hite(pc),d4 + ble.s .yok + move hite(pc),d4 +.yok sub d3,d4 + ble .nextx + subq #1,d4 + ; +.loop move d0,(a5) + add copmod(pc),a4 + add copmod(pc),a5 + ; + dbf d4,.loop + ; +.nexty add d7,d3 + move d1,d7 + bra.s .fory + ; +.nextx dbf d5,.loop2 + ; + add d6,d2 + move d1,d6 + bra.s .forx + ; +.done rts + +makeqstrip ; + ;do a simple roof/floor strip for blitter to wack in... + ; + cmp #$100,con0poke + bne.s .doit + rts + ; +.doit move.l qstrip(pc),a0 + move.l darktable(pc),a1 + move.l palette(pc),a2 + move.l qstripbot(pc),a4 + moveq #0,d2 + ; + move floorflag(pc),d0 + bne.s .fdone + ; + move camy(pc),d0 + neg d0 + ext.l d0 + lsl.l #focshft,d0 + ; + move.b qcols+1(pc),d2 + move.l qstripbot(pc),a4 + move maxy(pc),d1 + ; +.floop subq #1,d1 + beq.s .fdone + ; + move.l d0,d3 + divs d1,d3 + cmp #maxz,d3 + bcc .fdone + ; + move 0(a1,d3*2),d3 ;darkness (0...15) + move.l 0(a2,d3*4),a3 ;pal to use + move 0(a3,d2*2),-(a4) ;colour! + ; + bra.s .floop + ; +.fdone move roofflag(pc),d0 + bne.s .rdone + ; + move #-256,d0 + sub camy(pc),d0 + ext.l d0 + lsl.l #focshft,d0 ;cam Y + ; + move.b qcols(pc),d2 + ; + move miny(pc),d1 ;SY + ; +.rloop beq.s .rdone + ; + move.l d0,d3 + divs d1,d3 + cmp #maxz,d3 + bcc .rdone + ; + move 0(a1,d3*2),d3 ;darkness (0...15) + move.l 0(a2,d3*4),a3 ;pal to use + move 0(a3,d2*2),(a0)+ ;colour! + ; + addq #1,d1 + bra.s .rloop +.rdone ; + moveq #0,d0 +.loop cmp.l a4,a0 + bcc.s .done + move.l d0,(a0)+ + bra.s .loop + ; +.done rts + +flatcam dc.l 0 +flatyadd dc 0 +flatyadd2 dc 0 + +flat ; + ;do flat above/below panel! + ; + ;d0=Y pos of flat + ;d1=Screen Y add + ;d7=first screen Y (miny or maxy-1) + ; + ;a0=panel to draw on! + ; + ext.l d0 + lsl.l #focshft,d0 + move.l d0,flatcam + ; + move d1,flatyadd + muls copmod(pc),d1 + move d1,flatyadd2 + ; + move d7,d0 + add midy(pc),d0 + mulu copmod(pc),d0 + add.l cop(pc),d0 + add.l coloffs(pc),d0 + move.l d0,a2 +.vloop ; + ;find Z on this scanline... + ; + tst d7 + beq .rts + move.l flatcam(pc),d6 + divs d7,d6 ;d6.w = Z + cmp #maxz,d6 + bcc .rts + ; + move.l darktable(pc),a5 + move 0(a5,d6*2),d5 + move.l palette(pc),a5 + move.l 0(a5,d5*4),a5 + ; + ;Find leftmost X... + ; + move minx(pc),d5 + muls d6,d5 + asr.l #focshft,d5 + ; + move maxx(pc),d4 + muls d6,d4 + asr.l #focshft,d4 + ; + ;rotate X1,Z around camera... + ; + move d5,d0 + move d6,d1 + ; + move d0,d2 + move d1,d3 + ; + muls icm1(pc),d0 + add.l d0,d0 + muls icm2(pc),d3 + add.l d3,d3 + add.l d3,d0 + ; + muls icm3(pc),d2 + add.l d2,d2 + muls icm4(pc),d1 + add.l d1,d1 + add.l d2,d1 + ; + ;d0,d1.q = rotated x1,z + ; + ;rotate X2,Z around camera... + ; + move d4,d2 + move d6,d3 + ; + muls icm1(pc),d4 + add.l d4,d4 + muls icm2(pc),d3 + add.l d3,d3 + add.l d3,d4 + ; + muls icm3(pc),d2 + add.l d2,d2 + muls icm4(pc),d6 + add.l d6,d6 + add.l d2,d6 + ; + ;d4,d6.q = rotated x2,z + ; + move width(pc),d5 + ext.l d5 + sub.l d0,d4 ;Xadd + divs.l d5,d4 + sub.l d1,d6 ;Zadd + divs.l d5,d6 + ; + ;d0,d1.q=x,z + ;d4,d6.q=xadd,zadd + ; + ;move.l d4,d2 + ;asr.l #1,d2 + ;add.l d2,d0 + ; + ;move.l d6,d2 + ;asr.l #1,d2 + ;add.l d2,d1 + ; + swap d0 + add camx(pc),d0 + swap d1 + add camz(pc),d1 + swap d4 + swap d6 + ; + move d7,-(a7) + moveq #127,d7 + moveq #0,d2 + moveq #0,d3 + ; + move.l a2,a3 + ; + move wdiv32(pc),-(a7) + ; +.hloop2 moveq #31,d5 + ; +.hloop tst (a3) ;check destination! + bne.s .skip + ; + and d7,d0 + and d7,d1 + move d0,d2 + lsl #7,d2 + add d2,d1 + add.l d4,d0 + move.b 0(a0,d1),d3 + addx d2,d0 + add.l d6,d1 + move 0(a5,d3*2),(a3) + addx d2,d1 + addq #4,a3 + dbf d5,.hloop + bra.s .hhh + ; +.skip add.l d4,d0 + addx d2,d0 + add.l d6,d1 + addx d2,d1 + addq #4,a3 + dbf d5,.hloop + ; +.hhh addq #4,a3 + subq #1,(a7) + bgt.s .hloop2 + bne.s .kl + ; + move wrem32(pc),d5 + bpl.s .hloop + ; +.kl move.l (a7)+,d7 + add flatyadd(pc),d7 + add flatyadd2(pc),a2 + bra .vloop + ; +.rts rts + +doanims move.l map_anim(pc),a0 + lea textures,a1 + ; +.loop move (a0)+,d0 ;how many frames + beq.s .done + movem (a0)+,d1-d2 ;first, delay + subq #1,(a0)+ + bgt.s .loop + move d2,-2(a0) + lea 0(a1,d1*4),a2 + ; + ;do the anim! + ; + subq #2,d0 + move.l (a2),d2 +.loop2 move.l 4(a2),(a2)+ + dbf d0,.loop2 + move.l d2,(a2) + bra.s .loop + ; +.done rts + +dorots ; + move.l camrots2(pc),a6 + lea rotpolys(pc),a5 ;header! + ; +rotloop move.l (a5),a5 + tst.l (a5) + beq .done + move rp_speed(a5),d0 + beq.s rotloop + ; + add d0,rp_rot(a5) + move rp_rot(a5),d0 + ; + move.l rp_first(a5),a2 ;first + move rp_num(a5),d5 + subq #1,d5 + move d5,d4 + lsl #5,d4 + lea 0(a2,d4),a1 ;previous + lea rp_lx(a5),a3 + ; + btst #0,rp_flags+1(a5) + bne.s morph + ; +.rot movem rp_cx(a5),d6-d7 ;centre x,z + and #1023,d0 + lea 0(a6,d0*8),a4 ;rotation matrix. + ; +.loop bsr rotter + add d6,d0 + add d7,d1 + movem d0-d1,zo_lx(a2) + movem d0-d1,zo_rx(a1) + bsr rotter + movem d0-d1,zo_na(a2) + exg d0,d1 + neg d0 + movem d0-d1,zo_a(a2) + move.l a2,a1 + lea 32(a2),a2 + dbf d5,.loop + ; + bra rotloop + ; +.done rts + ; +morph tst d0 + bgt.s .dp + moveq #0,d0 +.neg neg rp_speed(a5) + bra.s .skip2 +.dp cmp #$4000,d0 + blt.s .skip + move #$4000,d0 + btst #1,rp_flags+1(a5) + bne.s .neg + clr rp_speed(a5) +.skip2 move d0,rp_rot(a5) +.skip ; + move d0,d4 + movem.l a2/d5,-(a7) ;for calculating norms! + ; +.loop movem (a3)+,d0-d3 + muls d4,d0 + lsl.l #2,d0 + swap d0 + add d2,d0 + muls d4,d1 + lsl.l #2,d1 + swap d1 + add d3,d1 + movem d0-d1,zo_lx(a2) + movem d0-d1,zo_rx(a1) + move.l a2,a1 + lea 32(a2),a2 + dbf d5,.loop + ; + movem.l (a7)+,a2/d5 + ; +.loop2 move zo_rx(a2),d0 + sub zo_lx(a2),d0 + move zo_rz(a2),d1 + sub zo_lz(a2),d1 + bsr calcnormvec + movem d0-d1,zo_na(a2) + exg d0,d1 + neg d0 + movem d0-d1,zo_a(a2) + lea 32(a2),a2 + dbf d5,.loop2 + ; + bra rotloop + +calcnormvec ;d0,d1 = vector...normalize! + ; + ;OK, find vector length! + ; + move d0,d2 + muls d2,d2 + move d1,d3 + muls d3,d3 + add.l d3,d2 + ; + ;OK, sqr of d2.l! + ; + move.l #$10000,d3 + ; +.fitit cmp.l #16384,d2 ;fits? + bcs.s .ok + asr.l #1,d2 + mulu.l #92681,d4:d3 ;mult by sqr(2) + move d4,d3 + swap d3 + bra.s .fitit + ; +.ok ;OK to look up, but multiply the result.w by d3.q + ; + move.l sqr(pc),a0 + and #$fffe,d2 + movem 0(a0,d2),d2 ;sqr.l! + mulu.l d3,d2 + swap d2 ;length.w + ; + ;length should be >= both abs(xvec) AND abs(zvec) + ; + move d0,d3 + bpl.s .xp + neg d3 +.xp move d1,d4 + bpl.s .zp + neg d4 +.zp ; + cmp d4,d3 + bcc.s .bg + exg d3,d4 +.bg ; + cmp d3,d2 + bcc.s .lo + move d3,d2 +.lo ; + ext.l d2 + ; + swap d0 + clr d0 + divs.l d2,d0 + muls.l #32766,d0 + swap d0 + ; + swap d1 + clr d1 + divs.l d2,d1 + muls.l #32766,d1 + swap d1 + rts + +rotter movem (a3)+,d0-d1 ;this x,z + move d0,d2 + move d1,d3 + ; + muls (a4),d0 + muls 2(a4),d3 + add.l d3,d0 + add.l d0,d0 + swap d0 ;new x! + ; + muls 4(a4),d2 + muls 6(a4),d1 + add.l d2,d1 + add.l d1,d1 + swap d1 + ; + rts + +dodoors lea doors(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + move.l do_poly(a5),a0 + move do_fracadd(a5),d0 + add d0,do_frac(a5) + move do_frac(a5),d0 + move d0,d1 + add d1,d1 + move d1,zo_open(a0) ;copy frac + ; + move do_rx(a5),d1 + sub do_lx(a5),d1 ;width + move d1,d2 + muls d0,d2 + lsl.l #2,d2 + swap d2 + move do_lx(a5),d3 + sub d2,d3 + move d3,zo_lx(a0) + add d1,d3 + move d3,zo_rx(a0) + ; + move do_rz(a5),d1 + sub do_lz(a5),d1 + move d1,d2 + muls d0,d2 + lsl.l #2,d2 + swap d2 + move do_lz(a5),d3 + sub d2,d3 + move d3,zo_lz(a0) + add d1,d3 + move d3,zo_rz(a0) + ; + tst d0 + beq.s .kill + cmp #$4000,d0 + bne.s .loop + ; +.kill move.l a5,a0 + killitem doors + move.l a0,a5 + bra .loop + ; +.done rts + +doorsfxflag dc 0 + +execevent ;d0=event number to execute...1,2... + ; + sf doorsfxflag + move.l map_map(pc),a6 + move.l map_events(pc),a0 + add.l 0(a0,d0*4),a6 + ; +exec_loop move (a6)+,d0 + beq.s .rts + subq #1,d0 + beq exec_addobj ;1 - add an object (alien etc) + subq #1,d0 + beq exec_opendoor ;2 - open a door + subq #1,d0 + beq exec_teleport ;3 - teleport + subq #1,d0 + beq exec_loadobjs ;4 - load objects + subq #1,d0 + beq exec_changetxt ;5 - change texture + subq #1,d0 + beq exec_rotpolys ;6 - start polygons rotating! + ; + warn #$f0f + ; +.rts tst doorsfxflag + beq.s .nodoor + clr doorsfxflag + move.l doorsfx(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx +.nodoor rts + +exec_changetxt ; + move (a6)+,d0 ;zone# + move.l map_poly(pc),a1 + lsl #5,d0 + lea 0(a1,d0),a1 ;polygon to change + ; + move (a6)+,d0 ;new texture + move.b d0,zo_t(a1) + bra exec_loop + +exec_opendoor st doorsfxflag + addlast doors ;a0=new door + ; + move (a6)+,d0 ;door # + move.l map_poly(pc),a1 + lsl #5,d0 + lea 0(a1,d0),a1 ;polygon to open! + ; + ;calc lx add, lz add, rx add, rz add + ; + move.l a1,do_poly(a0) + move.l zo_lx(a1),do_lx(a0) + move.l zo_rx(a1),do_rx(a0) + clr do_frac(a0) + move #$100,do_fracadd(a0) + bra exec_loop + +exec_teleport move.l eventobj(pc),a0 + ; + move (a6)+,ob_telex(a0) + addq #2,a6 + move (a6)+,ob_telez(a0) + move (a6)+,ob_telerot(a0) + ; + tst finished2 + bne exec_loop + ; + move #2,ob_pixsizeadd(a0) + bsr dotelesfx + bra exec_loop + +dotelesfx move.l telesfx(pc),a0 + moveq #64,d0 + moveq #10,d1 + bra playsfx + +exec_loadobjs ; +.loop move (a6)+,d0 + bmi .done + bsr loadanobj + bra.s .loop +.done ; + bra exec_loop + +loadanobj ;d0=object#...sys must be permitted + ; + lea objinfo,a2 + mulu #objinfof-objinfo,d0 + move.l _ob_shape-objinfo(a2,d0),a2 + lea 8(a2),a3 ;filename + ; + tst.l (a2) + bne.s .skip + move.l a3,a0 + moveq #1,d1 + bsr loadfile + move.l d0,(a2) + beq.s .skip + move.l d0,a0 + jsr remapanim +.skip ; + tst.l 4(a2) + bne.s .rts + move.l a3,a0 +.loop tst.b (a3)+ + bne.s .loop + move.b #'2',-(a3) + moveq #1,d1 + bsr loadfile + clr.b (a3) + move.l d0,4(a2) + beq.s .rts + move.l d0,a0 + jsr remapanim + ; +.rts rts + +exec_rotpolys ; + ;could also be morphpolys depending on bit 0 of flags! + ; + addlast rotpolys + bne.s .ok + addq #8,a6 + bra exec_loop + ; +.ok st doorsfxflag + movem (a6)+,d0-d3 ;polynum,count,speed,flags + ; + clr rp_rot(a0) + move d1,rp_num(a0) + move d2,rp_speed(a0) + move d3,rp_flags(a0) + move d1,d5 + subq #1,d5 + move.l map_poly(pc),a2 ;polygons! + lsl #5,d0 + add d0,a2 + move.l a2,rp_first(a0) + ; + btst #0,d3 + beq .rot + ; + ;OK, prepare for morph + ; + lsl #5,d1 + lea 0(a2,d1),a3 + lea rp_vx(a0),a1 + ; +.loop movem zo_lx(a3),d0-d1 + movem zo_lx(a2),d2-d3 + sub d2,d0 + sub d3,d1 + movem d0-d3,(a1) + addq #8,a1 + ; + lea 32(a2),a2 + lea 32(a3),a3 + dbf d5,.loop + ; + bra exec_loop + ; +.rot ;First, calc centre X,Z into d6,d7 + ; + moveq #0,d6 + moveq #0,d7 + move.l a2,a1 + ; +.loop0 movem zo_lx(a1),d0/d2 + add.l d0,d6 + add.l d2,d7 + lea 32(a1),a1 + dbf d5,.loop0 + ; + divu d1,d6 + divu d1,d7 + movem d6-d7,rp_cx(a0) + ; + lea rp_lx(a0),a1 + subq #1,d1 + ; +.loop2 movem zo_lx(a2),d0/d2 + sub d6,d0 + move d0,(a1)+ + sub d7,d2 + move d2,(a1)+ + move.l zo_na(a2),(a1)+ + ; + lea 32(a2),a2 + dbf d1,.loop2 + ; + bra exec_loop + +exec_addobj clr.l dummy + move (a6)+,d0 ;monster type + lea objinfo,a2 + mulu #objinfof-objinfo,d0 + add.l d0,a2 + move.l (a2)+,a3 + tst.l (a3) + beq.s .ok +.no addq #8,a6 + bra exec_loop +.ok cmp #2,-2(a6) ;player? + bcc.s .notp + addfirst objects + bra.s .bum +.notp addlast objects +.bum beq.s .no + move.l a0,a5 + ; + move.l a5,(a3) + ; + move (a6)+,ob_x(a5) + move (a6)+,ob_y(a5) + move (a6)+,ob_z(a5) + move (a6)+,ob_rot(a5) + ; + lea ob_info(a5),a3 + move #(objinfof-objinfo-4)>>1-1,d0 +.loop move (a2)+,(a3)+ + dbf d0,.loop + ; + tst ob_blood(a5) ;hi bit of blood=1=invisible! + smi d0 + ext d0 + move d0,ob_invisible(a5) + ; + bsr calcvecs + movem.l d4-d5,ob_xvec(a5) + ; + move.l ob_shape(a5),a0 + move.l 4(a0),ob_chunks(a5) + move.l (a0),a0 + move.l a0,ob_shape(a5) + ; + move an_maxw(a0),d0 + move d0,ob_rad(a5) + mulu d0,d0 + move.l d0,ob_radsq(a5) + ; + clr.l ob_washit(a5) + ; + bsr rnddelay + ; + bra exec_loop + +rnddelay move ob_range(a5),d0 + bsr rndn + add ob_base(a5),d0 + move d0,ob_delay(a5) + ; + rts + +seedrnd ;seed number in d0.w + ; + moveq #54,d1 + lea rndtable(pc),a0 + ; +.loop move d0,(a0)+ + mulu #$1efd,d0 + add #$dff,d0 + dbf d1,.loop + ; + move.l a0,k_index + move.l #rndtable+48,j_index + rts + +rndw ;return rnd number 0...65535 if d0.w + ; + movem.l a0/a1,-(a7) + lea rndtable(pc),a1 + move.l j_index(pc),a0 + move -(a0),d0 + cmp.l a0,a1 + bne.s .skip + lea rndtable+110(pc),a0 +.skip move.l a0,j_index + move.l k_index(pc),a0 + add -(a0),d0 + move d0,(a0) + cmp.l a0,a1 + bne.s .skip2 + lea rndtable+110(pc),a0 +.skip2 move.l a0,k_index + movem.l (a7)+,a0/a1 + rts + +savernd lea rndtable(pc),a0 + lea rndback(pc),a1 + moveq #(rndtablef-rndtable)/2-1,d0 +.loop move (a0)+,(a1)+ + dbf d0,.loop + rts + +loadrnd lea rndback(pc),a0 + lea rndtable(pc),a1 + moveq #(rndtablef-rndtable)/2-1,d0 +.loop move (a0)+,(a1)+ + dbf d0,.loop + rts + +rndtable ds.w 55 +k_index dc.l 0 +j_index dc.l 0 +rndtablef + +rndback ds.b rndtablef-rndtable + +rndl bsr rndw + move d0,d1 + bsr rndw + swap d0 + move d1,d0 + rts + +rndn move d0,d1 + bsr rndw + mulu d1,d0 + swap d0 + rts + +calcangle2 ;angle of camera to object in a5 + ; + move camx(pc),d0 + sub ob_x(a5),d0 + move camz(pc),d1 + sub ob_z(a5),d1 + bra.s calcangle_ + +calcangle ;angle of object a5 to object a0... + ; + move ob_x(a0),d0 + sub ob_x(a5),d0 + move ob_z(a0),d1 + sub ob_z(a5),d1 + ; +calcangle_ ;d0.w=x d1.w=y (dest-src)! + ; + moveq #0,d2 + tst d1 + bpl.s .hpos + moveq #16,d2 + neg d1 +.hpos tst d0 + bpl.s .wpos + eor #8,d2 + neg d0 +.wpos cmp d1,d0 + bmi.s .notsteep + bne.s .neq + move #$2000,d1 + bra.s .flow +.neq eor #4,d2 + exg d1,d0 +.notsteep tst d1 + bne.s .noflow + moveq #0,d1 + bra.s .flow +.noflow ext.l d0 + swap d0 + divu d1,d0 + lsr #6,d0 + and #1022,d0 + move .arc(pc,d0),d1 +.flow move.l .oct(pc,d2),d0 + eor d0,d1 + swap d0 + add d1,d0 + lsr #8,d0 + rts + ; +.oct dc 0,0,$4000,-1,0,-1,$c000,0 + dc $8000,-1,$4000,0,$8000,0,$c000,-1 +.arc incbin arc.bin + +currplayer dc.l 0 + +calcscene ;a5=player object + ; + move #$20,$dff09a + ; + move.l a5,currplayer + move.l ob_palette(a5),palette + move ob_thermo(a5),thermo + move ob_infra(a5),infra + move ob_pixsize(a5),pixsize + ; + clr.l shapelist + move.l a5,a0 + bsr calccamera + bsr makewalls + ; + lea objects(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq.s .done + cmp.l currplayer(pc),a5 + beq.s .loop + move.l ob_render(a5),a0 + tst ob_invisible(a5) + beq.s .notinvs + bpl.s .hb + move.l #drawobjtrans,shaperender + bra.s .rit +.hb move.l #drawobjinvs,shaperender +.rit jsr (a0) + move.l #drawobjnorm,shaperender + bra.s .loop +.notinvs jsr (a0) + bra.s .loop +.done ; + lea gore(pc),a5 + ; +.loop2 move.l (a5),a5 + tst.l (a5) + beq.s .done2 + ; + movem go_x(a5),d0/d2 + moveq #0,d1 + move.l go_shape(a5),a0 + move #$200,d7 + bsr drawshape_q + ; + bra.s .loop2 + ; +.done2 move #$8020,$dff09a + ; + rts + +blitscene bclr #7,ob_update(a5) + beq.s .noupdate + ; + bclr #7,ob_update+1(a5) + beq.s .stats + ; + move.l ob_window(a5),a2 + moveq #9,d0 + bsr wcopy + bsr initstats + ; +.stats bsr showstats + ; +.noupdate move ob_messtimer(a5),d0 + bpl.s .mskip + addq #1,d0 + beq.s .mdone + neg ob_messtimer(a5) + move.l ob_window(a5),a0 + bsr putstrip + bsr printmess + bra.s .mskip + ; +.mdone clr ob_messtimer(a5) + move.l ob_window(a5),a0 + bsr putstrip +.mskip ; + rts + +drawscene ;a5=player + ; + move.l ob_window(a5),a0 + bsr dbwindow + ; + bsr castwalls + bsr makeqstrip + bsr renderwalls + ; + move floorflag(pc),d0 + ble.s .nofloor + ; + move camy(pc),d0 + neg d0 + moveq #-1,d1 + move maxy(pc),d7 + subq #1,d7 + move.l floor(pc),a0 + bsr flat + ; +.nofloor move roofflag(pc),d0 + ble.s .noflat + ; + move #-255,d0 + sub camy(pc),d0 + moveq #1,d1 + move miny(pc),d7 + move.l roof(pc),a0 + bsr flat + ; +.noflat bsr drawshapes + bsr drawblood + ; + move.l currplayer(pc),a0 + move ob_pixsize(a0),d0 + bne pixelate + rts + +chatstuff move chatok(pc),d0 + beq.s .rts + ; + move chatoutget(pc),d0 + cmp chatoutput(pc),d0 + beq.s .noout + and #31,d0 + lea chatout(pc),a0 + move.b 0(a0,d0),d0 ;chat out character! + addq #1,chatoutget + moveq #1,d1 + move d0,-(a7) + bsr chatprintout + move (a7)+,d0 + sub.b #32,d0 ;encode for chat + bset #6,d0 + bsr serput + ; +.noout move chatinget(pc),d0 + cmp chatinput(pc),d0 + beq.s .rts + and #31,d0 + lea chatin(pc),a0 + move.b 0(a0,d0),d0 + addq #1,chatinget + moveq #2,d1 + bsr chatprintin + ; +.rts rts + +sfxvbint lea sfxs(pc),a1 + moveq #3,d3 + ; +.loop tst fx_status(a1) + ble.s .skip + ; + ;this one queued! gotta play it... + ; + subq #1,fx_status(a1) + bgt.s .skip + move.l fx_sfx(a1),a0 + bsr playsfxnow + ; +.skip lea fx_size(a1),a1 + dbf d3,.loop + ; + ;fade out song if nec. + ; + move fadevol(pc),d0 + beq.s .nofade + move.l medat(pc),a1 + sub #$80,fadevol + bgt.s .setvol + clr fadevol + jmp 12(a1) ;stop song + bra.s .nofade + ; +.setvol move fadevol(pc),d0 + lsr #8,d0 + jmp 16(a1) ;set volume + ; +.nofade rts + + dc.l readmodem +joytable dc.l readjoy1,readjoy0,readkeys,readcd321,readcd320 + +readjoy ;a0=player + move ob_cntrl(a0),d0 + bmi.s readmodem + ; + lea joyx0(pc),a0 + lea 0(a0,d0*8),a0 + move.l joytable(pc,d0*4),a1 + jsr (a1) + move linked(pc),d0 + bne.s .send + rts +.send ; + ;a0=cntrl block + ; + bsr encodejoy + movem.l d0/a0,-(a7) + bsr serput + movem.l (a7)+,d0/a0 + ; +.noput lea pbuff(pc),a1 + ; + move pput(pc),d1 + and #127,d1 + move.b d0,0(a1,d1) + addq #1,pput + ; + move pget(pc),d1 + and #127,d1 + move.b 0(a1,d1),d0 + addq #1,pget + ; + bra decodejoy + ; +readmodem ; +.waitser bsr serget + bpl.s .sergot + ; + ;OK, do a vwait to allow other machine to catch up! + ; + move #$20,$dff09c +.vw ; + ifne debugser + col #$f0f + endc + ; + btst #5,$dff01f + beq.s .vw + ; + move #$20,$dff09c + bsr chatstuff + bra.s .waitser + ; +.sergot lea joyxs(pc),a0 + tst.b d0 + bpl .djoy + and #$ff,d0 + move d0,finished + moveq #0,d0 + ; +.djoy bsr decodejoy + move.l (a0)+,joyx + move.l (a0),joyb + rts + +escape dc 0 + +readjoys ;fill in appropriate 'joyxn' block...check escape + ; + qkey $45 + beq.s .noesc + st escape +.noesc move finished(pc),d0 + or finished2(pc),d0 + bne.s .rts + ; + move.l player1(pc),a0 + bsr readjoy + move gametype(pc),d0 + beq.s .rts + move.l player2(pc),a0 + bra readjoy +.rts rts + +vbhandler movem.l d2-d7/a2-a6,-(a7) + ; + subq #1,(a1)+ ;inc/dec frame counters + addq #1,(a1) + ; + ;this done every frame! + bsr showit + bsr chatstuff + bsr sfxvbint + ; + btst #0,framecnt+1 + beq exit_vb + tst paused + bne exit_vb + ; + ;OK, movement/animation stuff! + ; + bsr readjoys + bsr doanims + bsr dorots + bsr dodoors + bsr moveblood + ; + ifne debugser + ; + ;OK, kludge in a random number! + move framecnt(pc),d0 + and #126,d0 + bne.s .nornd + ; + bsr rndw + lea .rndasc(pc),a0 + moveq #3,d1 +.loop rol #4,d0 + move d0,d2 + and #15,d2 + add #48,d2 + cmp #58,d2 + bcs.s .rok + addq #7,d2 +.rok move.b d2,(a0)+ + dbf d1,.loop + ; + move.l player1(pc),a5 + bsr message +.rndasc dc.b 'aaaa',0 + even + ; + endc +.nornd ; + move.l a7,obj_stack + lea objects(pc),a5 + ; +obj_loop move.l (a5),a5 + tst.l (a5) + beq exit_vb + ; + move.l ob_logic(a5),a0 + jsr (a0) + ; + ;check collision! + ; + move ob_collwith(a5),d0 + beq.s obj_loop + ; + move ob_rad(a5),d1 + move ob_x(a5),d6 + move ob_z(a5),d7 + ; + lea objects(pc),a0 + ; +.loop2 move.l (a0),a0 + cmp.l a5,a0 + bne.s .this + ; + clr.l ob_washit(a5) ;not hit! can get hit next time... + bra obj_loop +.this ; + move ob_colltype(a0),d2 + and d0,d2 + beq.s .loop2 + ; + move ob_rad(a0),d2 + add d1,d2 ;r sum + ; + move ob_x(a0),d3 + sub d6,d3 + bpl.s .xpl + neg d3 +.xpl cmp d2,d3 + bcc.s .loop2 + ; + move ob_z(a0),d4 + sub d7,d4 + bpl.s .ypl + neg d4 +.ypl cmp d2,d4 + bcc.s .loop2 + ; + mulu d2,d2 + mulu d3,d3 + mulu d4,d4 + add.l d4,d3 + cmp.l d2,d3 + bcc.s .loop2 + ; + cmp.l ob_washit(a5),a0 + beq obj_loop + move.l a0,ob_washit(a5) + ; + move finished2(pc),d0 + bne obj_loop + ; + move.l #killobject3,killjsr + movem.l a0/a5,obj_a0 + exg.l a0,a5 + ; + move ob_damage(a0),d0 + move.l ob_hit(a5),a1 + sub d0,ob_hitpoints(a5) + bgt.s hit_skip + move.l ob_die(a5),a1 + ; +hit_skip jsr (a1) + ; +hit_ret move.l #killobject2,killjsr + movem.l obj_a0(pc),a0/a5 + ; + move ob_damage(a0),d0 + move.l ob_hit(a5),a1 + sub d0,ob_hitpoints(a5) + bgt.s hit_skip2 + move.l ob_die(a5),a1 + ; +hit_skip2 jsr (a1) + bra obj_loop + ; +exit_vb st doneflag + bsr showit + ; + movem.l (a7)+,d2-d7/a2-a6 + moveq #0,d0 + ; +rts rts + +obj_a0 dc.l 0 +obj_a5 dc.l 0 +obj_stack dc.l 0 +killjsr dc.l killobject2 + +killobject ; + move.l killjsr(pc),a0 + jmp (a0) + +killobject2 move.l a5,a0 + killitem objects + move.l a0,a5 + move.l obj_stack(pc),a7 + bra obj_loop + +killobject3 move.l a5,a0 + killitem objects + move.l obj_stack(pc),a7 + bra hit_ret + +bloodspeed bsr rndw + ext.l d0 + lsl.l #2,d0 + rts + +bloodspeed2 bsr rndw + ext.l d0 + lsl.l #5,d0 + rts + +bloodspeed3 bsr rndw + ext.l d0 + lsl.l #4,d0 + rts + +makesparksq move.l ob_chunks(a5),a2 + ; +makesparks ;a2=sparks + ; + movem.l ob_x(a5),d2-d4 + move 2(a2),d5 + subq #1,d5 + ; +.loop addlast objects + beq .rts + movem.l d2-d4,ob_x(a0) + bsr bloodspeed2 + move.l d0,ob_xvec(a0) + bsr bloodspeed2 + move.l d0,ob_yvec(a0) + bsr bloodspeed2 + move.l d0,ob_zvec(a0) + move.l a2,ob_shape(a0) + move d5,ob_frame(a0) + move.l #sparkslogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + clr ob_invisible(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + bsr rndw + and #15,d0 + add #15,d0 + move d0,ob_delay(a0) + dbf d5,.loop +.rts rts + +sparkslogic subq #1,ob_delay(a5) + ble killobject + movem.l ob_x(a5),d0-d2 + add.l ob_xvec(a5),d0 + add.l ob_yvec(a5),d1 + add.l ob_zvec(a5),d2 + movem.l d0-d2,ob_x(a5) + rts + +bloodymess ;throw random blood splots everywhere! + ; + bsr bloodspeed2 + add.l ob_x(a5),d0 + move.l d0,d2 + bsr bloodspeed2 + add.l ob_gutsy(a5),d0 + move.l d0,d3 + bsr bloodspeed2 + add.l ob_z(a5),d0 + move.l d0,d4 + ; +.loop addlast blood + beq.s .done + ; + movem.l d2-d4,bl_x(a0) + bsr bloodspeed + move.l d0,bl_xvec(a0) + bsr bloodspeed + move.l d0,bl_yvec(a0) + bsr bloodspeed + move.l d0,bl_zvec(a0) + move ob_blood(a5),bl_color(a0) + ; + dbf d7,.loop + ; +.done rts + +bloodymess2 ;throw random blood splots everywhere! + ; + bsr bloodspeed2 + add.l ob_x(a5),d0 + move.l d0,d2 + bsr bloodspeed2 + add.l ob_gutsy(a5),d0 + move.l d0,d3 + bsr bloodspeed2 + add.l ob_z(a5),d0 + move.l d0,d4 + ; +.loop addlast blood + beq.s .done + ; + movem.l d2-d4,bl_x(a0) + bsr bloodspeed3 + move.l d0,bl_xvec(a0) + bsr bloodspeed3 + move.l d0,bl_yvec(a0) + bsr bloodspeed3 + move.l d0,bl_zvec(a0) + move ob_blood(a5),bl_color(a0) + ; + dbf d7,.loop + ; +.done rts + +chunklogic move mode(pc),d0 + beq chunklogic2 + ; + add.l #$8000,ob_yvec(a5) + move.l ob_yvec(a5),d0 + add.l ob_y(a5),d0 + blt .skip + ; + ;OK...hit ground! + ; + bsr splat + addlast gore + bne.s .gok + ; + move.l gore(pc),a0 + killitem gore + addlast gore + beq killobject + ; +.gok move ob_x(a5),go_x(a0) + move ob_z(a5),go_z(a0) + move.l ob_shape(a5),a1 + move ob_frame(a5),d0 + add.l 12(a1,d0*4),a1 + move.l a1,go_shape(a0) + ; + bra killobject + ; +.skip move.l d0,ob_y(a5) + bsr checkvecs + beq.s .rts + clr.l ob_xvec(a5) + clr.l ob_zvec(a5) +.rts rts + +chunklogic2 add.l #$8000,ob_yvec(a5) + move.l ob_yvec(a5),d0 + add.l d0,ob_y(a5) + blt.s .ok + ;bsr splat + bra killobject +.ok movem.l ob_xvec(a5),d0-d1 + add.l d0,ob_x(a5) + add.l d1,ob_z(a5) + rts + +splat move.l splatsfx(pc),a0 + moveq #32,d0 + moveq #-1,d1 + bra playsfx + +blowterra move.l robodiesfx(pc),a0 + moveq #64,d0 + moveq #20,d1 + bsr playsfx + bra blowquick + +blowdragon ;same, but messier... + ; + ;loud! + ; + move.l diesfx(pc),a0 + moveq #64,d0 + moveq #50,d1 + bsr playsfx + move.l diesfx(pc),a0 + moveq #64,d0 + moveq #50,d1 + bsr playsfx + move.l robodiesfx(pc),a0 + moveq #64,d0 + moveq #50,d1 + bsr playsfx + move.l robodiesfx(pc),a0 + moveq #64,d0 + moveq #50,d1 + bsr playsfx + ; + moveq #63,d7 + bsr bloodymess2 + ; + move.l ob_chunks(a5),a4 + bsr blowchunx + bsr blowchunx + bsr blowchunx + bsr blowchunx + ; + move.l #dragondead,ob_logic(a5) + move.l #rts,ob_render(a5) + clr ob_colltype(a5) + clr ob_collwith(a5) + move #127,ob_delay(a5) + rts + +dragondead subq #1,ob_delay(a5) + bgt.s .rts + ; + move #3,finished + ; +.rts rts + +blowdeath cmp.l sucker(pc),a5 + bne.s blowobject + clr.l sucker + clr.l sucking + ; +blowobject move.l diesfx(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx +blowquick ; + moveq #31,d7 + bsr bloodymess2 + ; + move.l ob_chunks(a5),d0 + bne.s .chok + ; + moveq #15,d7 + bsr bloodymess2 + bra killobject + ; +.chok move.l d0,a4 + bsr blowchunx + bra killobject + +blowchunx move 2(a4),d7 + subq #1,d7 + ; +.loop addlast objects + beq killobject + movem.l ob_x(a5),d0-d2 + move.l #-64<<16,d1 + movem.l d0-d2,ob_x(a0) + ; + bsr bloodspeed3 + move.l d0,ob_xvec(a0) + bsr bloodspeed3 + sub.l #$40000,d0 + move.l d0,ob_yvec(a0) + bsr bloodspeed3 + move.l d0,ob_zvec(a0) + ; + clr ob_invisible(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + move.l #chunklogic,ob_logic(a0) + move.l a4,ob_shape(a0) + move.l #drawshape_1sc,ob_render(a0) + move d7,ob_frame(a0) + move ob_scale(a5),ob_scale(a0) + ; + move an_maxw(a4),d0 + move d0,ob_rad(a0) + mulu d0,d0 + move.l d0,ob_radsq(a0) + ; + dbf d7,.loop + rts + +hurtdeath ;OK! death head hit! + ; + ;point at player, and start to suck his soul! + ; + move.l sucking(pc),d0 + bne.s .rts + ; + bsr pickplayer + cmp.l #playerlogic,ob_logic(a0) + bne.s .rts + ; + move.l a0,sucking + move.l a5,sucker + ; + move ob_rot(a5),ob_oldrot(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #deathsuck,ob_logic(a5) + move.l #rts,ob_hit(a5) + move #64,ob_delay(a5) + bra.s deathsuck + ; +.rts rts + +deathsuck ;death head sucking out a players soul! + ; + bsr deathbounce + bsr deathanim + subq #1,ob_delay(a5) + bgt.s .more + move ob_oldrot(a5),ob_rot(a5) + move.l ob_oldlogic(a5),ob_logic(a5) + move.l #hurtdeath,ob_hit(a5) + clr.l sucker + clr.l sucking + bra rnddelay + ; +.more move.l sucking(pc),a0 + move.l a0,a2 + bsr calcangle ;point at player! + move d0,ob_rot(a5) + ; + add #128,d0 + and #255,d0 + move.l camrots(pc),a3 + lea 0(a3,d0*8),a3 + ; + move.l a3,suckangle + ; + ;calc x/z vecs + ; + moveq #3,d7 + bsr addsoul + ; +.rts rts + +sucker dc.l 0 +sucking dc.l 0 +suckangle dc.l 0 + +addsoul ;d7 times! + ; + addlast blood + beq .rts + ; + move 2(a3),d2 + ext.l d2 + lsl.l #5,d2 + neg.l d2 + move 6(a3),d3 + ext.l d3 + lsl.l #5,d3 + ; + move.l d2,bl_xvec(a0) + move.l a5,bl_yvec(a0) + move.l d3,bl_zvec(a0) + ; + swap d2 + swap d3 + add d2,d2 + add d3,d3 + add ob_x(a2),d2 + add ob_z(a2),d3 + ; + bsr rndw + and #63,d0 + sub #32,d0 + add d2,d0 + move d0,bl_x(a0) + ; + bsr rndw + and #63,d0 + sub #32,d0 + add #110,d0 + move d0,bl_y(a0) ;>0= funny blood! + ; + bsr rndw + and #63,d0 + sub #32,d0 + add d3,d0 + move d0,bl_z(a0) + ; + bsr rndw + and #1,d0 + move soulcols(pc,d0*2),bl_color(a0) + ; + dbf d7,addsoul + ; +.rts rts + +soulcols dc $0ff,$0f0 + +hurtghoul moveq #31,d7 + bsr bloodymess + rts + +hurtterra move.l a0,-(a7) + move.l shootsfx2(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx + move.l (a7)+,a0 + bra.s hurtobject + +hurtngrunt move.l a0,-(a7) + bsr rndw + and #3,d0 + cmp lastgrunt(pc),d0 + bne.s .new + addq #1,d0 + and #3,d0 +.new move d0,lastgrunt + lea grunttable(pc),a0 + move.l 0(a0,d0*4),a0 + move.l (a0),a0 + moveq #64,d0 + moveq #1,d1 + bsr playsfx + move.l (a7)+,a0 + ; +hurtobject move ob_colltype(a0),d0 + and #24,d0 + bne.s .rts + ; + moveq #23,d7 + bsr bloodymess + move ob_hurtpause(a5),ob_hurtwait(a5) + beq .rts + ; + move #4,ob_frame(a5) + move.l ob_logic(a5),ob_oldlogic2(a5) + move.l ob_hit(a5),ob_oldhit(a5) + move.l #pauselogic2,ob_logic(a5) + move.l #rts,ob_hit(a5) + ; +.rts rts + +lizhurt move.l a0,-(a7) + move.l lizhitsfx(pc),a0 + moveq #64,d0 + moveq #1,d1 + bsr playsfx + move.l (a7)+,a0 + bra hurtobject + +pauselogic2 subq #1,ob_hurtwait(a5) + bgt.s .rts + clr ob_frame(a5) + move.l ob_oldlogic2(a5),ob_logic(a5) + move.l ob_oldhit(a5),ob_hit(a5) +.rts rts + +pauselogic subq #1,ob_delay(a5) + bgt.s .skip + ; + bsr rnddelay + move.l ob_oldlogic(a5),ob_logic(a5) + ; + ;if in front of player, continue on old course... + ; + bsr pickcalc + ; + ;bsr pickplayer + ;tst ob_invisible(a0) + ;bne.s .useold ;can't see player! no intelligence... + ;bsr calcangle + ; + move ob_rot(a0),d1 + and #255,d1 + sub d0,d1 + bpl.s .pl + neg d1 +.pl cmp #64,d1 + bcs.s .skip + cmp #192,d1 + bcc.s .skip + ; +.useold move ob_oldrot(a5),ob_rot(a5) + bsr calcvecs + ; +.skip rts + +shoot ; + ;fire off a bullet... + ; + ;d2 : colltype + ;d3 : collwith + ;d4 : hitpoints + ;d5 : damage + ;d6 : speed + ;a2=bullet shape + ;a3=sparks shape + ; + addfirst objects + beq .rts + ; + move ob_bouncecnt(a5),ob_bouncecnt(a0) + move ob_x(a5),ob_x(a0) + move ob_y(a5),d0 + add ob_firey(a5),d0 + move d0,ob_y(a0) + move ob_z(a5),ob_z(a0) + move.l #firelogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + move.l #rts,ob_hit(a0) + move.l #killobject,ob_die(a0) + move d2,ob_colltype(a0) + move d3,ob_collwith(a0) + move d4,ob_hitpoints(a0) + move d5,ob_damage(a0) + move d6,ob_movspeed(a0) + move.l a2,ob_shape(a0) + clr ob_invisible(a0) + clr ob_frame(a0) + move.l a3,ob_chunks(a0) + ; + move ob_rot(a5),d0 + and #255,d0 + move.l camrots(pc),a1 + lea 0(a1,d0*8),a1 + ; + move 2(a1),d0 + move d0,ob_nxvec(a0) + neg d0 + muls d6,d0 + add.l d0,d0 + move 6(a1),d1 + move d1,ob_nzvec(a0) + muls d6,d1 + add.l d1,d1 + ; + movem.l d0-d1,ob_xvec(a0) + ;add.l d0,ob_x(a0) + ;add.l d1,ob_z(a0) + ; + move #32,ob_rad(a0) + move.l #32*32,ob_radsq(a0) + ; +.rts rts + +pickcalc ;pick a player and calculate angle to player! + ; + bsr pickplayer + bsr calcangle + tst ob_invisible(a0) + beq.s .rts + move d0,-(a7) + bsr rndw + and #63,d0 + sub #32,d0 + add (a7)+,d0 + and #255,d0 +.rts rts + +fire1 bsr pickcalc + ; + ;random noise for inaccuracy! + ; + move d0,-(a7) + bsr rndw + and #31,d0 + sub #16,d0 + add (a7)+,d0 + and #255,d0 + ; + move d0,ob_rot(a5) + bsr calcvecs + move #7,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #pauselogic,ob_logic(a5) + clr.l ob_frame(a5) + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #1,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet1,a2 + lea sparks1,a3 + ; + bsr shoot + ; + rts + +pickplayer ;pick nearest player + ; + move.l player1(pc),a0 + move gametype(pc),d0 + beq.s .rts + move.l player2(pc),a1 + move linked(pc),d0 + bpl.s .nosw + ; + exg a0,a1 +.nosw ; + tst ob_hitpoints(a0) + beq .sw + tst ob_hitpoints(a1) + beq.s .rts + ; + move ob_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move ob_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 ;dist to player a0 + ; + move ob_x(a5),d1 + sub ob_x(a1),d1 + muls d1,d1 + move ob_z(a5),d2 + sub ob_z(a1),d2 + muls d2,d2 + add.l d2,d1 ;dist to player a1 + ; + cmp.l d1,d0 + bcs.s .rts + ; +.sw move.l a1,a0 + ; +.rts rts + +checkcoll ;check for collision between a5, and a0 + ; + move ob_rad(a5),d1 + move ob_rad(a0),d2 + add d1,d2 ;r sum + ; + move ob_x(a0),d3 + sub ob_x(a5),d3 + bpl.s .xpl + neg d3 +.xpl cmp d2,d3 + bcc.s .no + ; + move ob_z(a0),d4 + sub ob_z(a5),d4 + bpl.s .ypl + neg d4 +.ypl cmp d2,d4 + bcc.s .no + ; + mulu d2,d2 + mulu d3,d3 + mulu d4,d4 + add.l d4,d3 + cmp.l d2,d3 + bcc.s .no + ; + moveq #-1,d0 + rts + ; +.no moveq #0,d0 + rts + +baldycharge ; + ;baldy charging at player! + ; + bsr checkvecs + beq baldy_skip + ; +baldy_tonorm move.l ob_movspeed(a5),d0 + lsr.l #2,d0 + move.l d0,ob_movspeed(a5) + ; + move.l ob_framespeed(a5),d0 + lsr.l #2,d0 + move.l d0,ob_framespeed(a5) + ; + move.l ob_oldlogic(a5),ob_logic(a5) + bsr rnddelay + ; + bra monsterfix + ; +baldy_skip ;close to player? start throwing punches around! + ; + bsr pickcalc + ; + sub ob_rot(a5),d0 + cmp #32,d0 + bgt baldy_tonorm + cmp #-32,d0 + blt baldy_tonorm + ; + move.l a0,ob_washit(a5) + bsr checkcoll + beq monsternew ;no collisions! + ; + ;go into punch mode! + ; + move.l #baldypunch,ob_logic(a5) + move ob_punchrate(a5),ob_delay(a5) + clr.l ob_frame(a5) + rts + +baldypunch ; + bsr pickplayer + bsr checkcoll + bne.s .doit + ; + clr.l ob_frame(a5) + bra baldy_tonorm + ; +.doit subq #1,ob_delay(a5) + ble.s .punch + rts +.punch move ob_punchrate(a5),ob_delay(a5) + moveq #0,d0 ;stand frame + cmp ob_frame(a5),d0 + bne .skip + ; + clr.l ob_washit(a5) ;punch! + bsr calcangle + move d0,ob_rot(a5) + moveq #5,d0 +.skip move d0,ob_frame(a5) + rts + +calcbangle bsr calcangle + tst ob_invisible(a0) + beq.s .notinv + ; + ;invisible, add some randomeness! + ; + move d0,-(a7) + bsr rndw + and #127,d0 + sub #64,d0 + add (a7)+,d0 + and #255,d0 + ; +.notinv move d0,ob_rot(a5) + rts + +lizardlogic ; + subq #1,ob_delay(a5) + bgt monstermove ;charge? + ; + bsr pickcalc ;pic player in a0! + move ob_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move ob_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 + cmp.l #256*256,d0 + bcc.s bl2 + ; + move.l lizsfx(pc),a0 + moveq #32,d0 + moveq #5,d1 + bsr playsfx + ; + bra bl2 + +baldylogic ; + ;OK, what can baldy do... + ; + ;how about, walk around similar to the marine, but randomly + ;charge at you? + ; + ;then, if he's close enough, he throws a punch! + ; + subq #1,ob_delay(a5) + bgt monstermove ;charge? + ; +bl2 bsr pickcalc + move d0,ob_rot(a5) + ; + move.l ob_movspeed(a5),d0 + lsl.l #2,d0 + move.l d0,ob_movspeed(a5) + move.l ob_framespeed(a5),d0 + lsl.l #2,d0 + move.l d0,ob_framespeed(a5) + ; + bsr calcvecs + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #baldycharge,ob_logic(a5) + ; + rts + +terralogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + ble .fire + ; + move ob_delay(a5),d0 + and #31,d0 + bne monstermove + ; + move.l robotsfx(pc),a0 + moveq #64,d0 + moveq #10,d1 + bsr playsfx + bra monstermove + ; +.fire ;OK, terra goes apeshit! stand there firing off at player! + ;use punchrate as firedelay! + ; + clr ob_frame(a5) + move #1,ob_delay(a5) + move ob_firecnt(a5),ob_delay2(a5) + move.l #terralogic2,ob_logic(a5) + rts + +terralogic2 ; + subq #1,ob_delay(a5) + bgt.s .rts + ; + move ob_firerate(a5),ob_delay(a5) + ; + ;OK, to to face player and fire away! + ; + bsr pickcalc + move d0,ob_rot(a5) + bsr calcvecs + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #16,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet4,a2 + lea sparks4,a3 + ; + bsr shoot + ; + move.l shootsfx3(pc),a0 + moveq #32,d0 + moveq #5,d1 + bsr playsfx + ; + subq #1,ob_delay2(a5) + bgt.s .rts + ; + bsr rnddelay + move.l #terralogic,ob_logic(a5) + ; +.rts rts + +ghoullogic ; + addq #8,ob_bounce(a5) + move ob_bounce(a5),d0 + move.l camrots(pc),a0 + and #255,d0 + move 0(a0,d0*8),d0 + ext.l d0 + lsl.l #5,d0 ;+/- 32 + swap d0 + add #-32,d0 + move d0,ob_y(a5) + ; + bsr pickcalc + move d0,ob_rot(a5) + ; + subq #1,ob_delay(a5) + bgt.s .skip + ; + move #1,ob_frame(a5) + move.l #$2000,ob_framespeed(a5) + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet2,a2 + lea sparks2,a3 + ; + bsr shoot + bsr rnddelay + ; +.skip ;OK, ghoul moves around ignoring walls! + ; + ;he's pointed at player...how about randomly selected to make + ;this his new movement vector? + ; + bsr rndw + move ob_movspeed(a5),d1 + lsl #8,d1 + cmp d1,d0 + bcc.s .no + ; + bsr calcvecs + ; + move.l ghoulsfx(pc),a0 + moveq #32,d0 + moveq #-5,d1 + bsr playsfx + ; +.no movem.l ob_xvec(a5),d0-d1 + add.l d0,ob_x(a5) + add.l d1,ob_z(a5) + ; + move.l ob_framespeed(a5),d0 + beq.s .rts + add.l d0,ob_frame(a5) + cmp #3,ob_frame(a5) + bcs.s .rts + ; + clr ob_frame(a5) + clr.l ob_framespeed(a5) + ; +.rts rts + +demonpause move ob_delay(a5),d0 + move d0,d1 + and #4,d0 + sne d0 + ext d0 + and #5,d0 ;0 or 5 + move d0,ob_frame(a5) + ; + and #7,d1 ;do a fire? + cmp #7,d1 + bne.s .nofire + ; + move ob_delay(a5),d0 + lsr #3,d0 + mulu #18,d0 + lea wtable(pc),a0 + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + movem 0(a0,d0),d4-d6 ;hits,dam,speed + mulu #$c000,d5 + swap d5 ;3/4 damage! + moveq #0,d7 ;acc + movem.l 6(a0,d0),a2-a3 ;bullets/sparks + move.l 14(a0,d0),-(a7) ;sfx! + ; + bsr shoot + ; + move.l (a7)+,a0 + move.l (a0),a0 + moveq #32,d0 + moveq #0,d1 + bsr playsfx + ; +.nofire subq #1,ob_delay(a5) + bgt.s .rts + ; + bsr rnddelay + move.l ob_oldlogic(a5),ob_logic(a5) + ; +.rts rts + +demonlogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + bgt monstermove + ; + bsr pickcalc + ; + move d0,ob_rot(a5) + bsr calcvecs + move #5<<3-1,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #demonpause,ob_logic(a5) + ; + rts + +phantomlogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + bgt monstermove + ; + bsr pickcalc + ; + move d0,ob_rot(a5) + bsr calcvecs + move #7,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #pauselogic,ob_logic(a5) + move #5,ob_frame(a5) + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet3,a2 + lea sparks3,a3 + ; + bra shoot + +deathbounce addq #4,ob_bounce(a5) + move ob_bounce(a5),d0 + move.l camrots(pc),a0 + and #255,d0 + move 0(a0,d0*8),d0 + ext.l d0 + lsl.l #5,d0 ;+/- 64 + swap d0 + add #-48,d0 + move d0,ob_y(a5) + rts + +deathheadlogic ; + ;cruises around rotating at speed ob_delay + ; + bsr deathbounce + ; + bsr checkvecs + bne.s .hit + ; + ;charge player? + ; + bsr pickcalc ;find angle to player + move ob_rot(a5),d1 + and #255,d1 + sub d0,d1 ;am I near? + bpl.s .ansk + neg d1 +.ansk cmp #16,d1 + bcc.s .notnear + ; + ;OK! chargaroony! + ; + move d0,ob_rot(a5) + move.l #deathcharge,ob_logic(a5) + bra calcvecs +.hit add #128,ob_rot(a5) + bsr rnddelay +.notnear move ob_delay(a5),d0 + add d0,ob_rot(a5) + bsr calcvecs + rts + +deathanim move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + cmp.l #$8000,ob_frame(a5) + blt.s .fix + cmp.l #$28000,ob_frame(a5) + blt.s .fok +.fix neg.l d0 + add.l d0,ob_frame(a5) + move.l d0,ob_framespeed(a5) + ; +.fok rts + +deathcharge bsr deathbounce + bsr deathanim + ; + bsr pickcalc + move ob_rot(a5),d1 + and #255,d1 + sub d1,d0 ;am I near? + bpl.s .ansk + neg d0 +.ansk cmp #128,d0 + bcc.s .hit + bsr checkvecs + bne.s .hit2 + rts +.hit2 add #128,ob_rot(a5) +.hit move.l #deathheadlogic,ob_logic(a5) + move.l #$8000,ob_frame(a5) + bra rnddelay + +monsterlogic ; + move ob_rot(a5),ob_oldrot(a5) + ;monster cruising around minding his own business... + ; + subq #1,ob_delay(a5) + ble fire1 + ; +monstermove bsr checkvecs + beq.s monsternew + ; + ;OK, try 90/-90 degrees... + ; +monsterfix bsr rndw + moveq #64,d1 + tst d0 + bpl.s .umk + moveq #-64,d1 +.umk add d1,ob_rot(a5) + bsr calcvecs + bsr checkvecs + beq.s monsternew + ; + add #128,ob_rot(a5) + bsr calcvecs + bsr checkvecs + beq.s monsternew + ; + move ob_oldrot(a5),d0 + add #128,d0 + move d0,ob_rot(a5) + ; + bsr calcvecs + bsr checkvecs +monsternew ; + move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + and #3,ob_frame(a5) + rts + +dragonfire ;dragon fires at you! + ; + ;d2 : colltype + ;d3 : collwith + ;d4 : hitpoints + ;d5 : damage + ;d6 : speed + ;a2=bullet shape + ;a3=sparks shape + ; + subq #1,ob_delay(a5) + bpl .rts + move ob_delay(a5),d0 + cmp #-16*8,d0 + bgt.s .try + move #47,ob_delay(a5) + rts +.try and #7,d0 + bne .rts + ; +.fire moveq #0,d2 ;colltype + moveq #24+3,d3 ;collwith - p1/p2/bullets + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #16,d6 ;speed + lea bullet5,a2 + lea sparks5,a3 + ; + addlast objects + beq .rts + ; + move ob_bouncecnt(a5),ob_bouncecnt(a0) + move ob_x(a5),ob_x(a0) + move ob_y(a5),d0 + add ob_firey(a5),d0 + move d0,ob_y(a0) + move ob_z(a5),ob_z(a0) + move.l #homeinlogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + move.l #makesparksq,ob_hit(a0) + move.l #blowdb,ob_die(a0) + move d2,ob_colltype(a0) + move d3,ob_collwith(a0) + move d4,ob_hitpoints(a0) + move d5,ob_damage(a0) + move d6,ob_movspeed(a0) + move.l a2,ob_shape(a0) + clr ob_invisible(a0) + clr ob_frame(a0) + move.l a3,ob_chunks(a0) + ; + move ob_rot(a5),d0 + and #255,d0 + move.l camrots(pc),a1 + lea 0(a1,d0*8),a1 + ; + move 2(a1),d0 + move d0,ob_nxvec(a0) + neg d0 + muls d6,d0 + add.l d0,d0 + move 6(a1),d1 + move d1,ob_nzvec(a0) + muls d6,d1 + add.l d1,d1 + ; + movem.l d0-d1,ob_xvec(a0) + ; + move #32,ob_rad(a0) + move.l #32*32,ob_radsq(a0) + ; +.rts rts + +blowdb bsr makesparksq + bra killobject + +homeinlogic bsr checkvecs + bne.s blowdb + bsr pickcalc ;find angle to player! + move.l camrots(pc),a0 + lea 0(a0,d0*8),a0 + move 2(a0),d4 ;x acc. + neg d4 + ext.l d4 + lsl.l #2,d4 + move 6(a0),d5 ;z acc. + ext.l d5 + lsl.l #2,d5 + ; + add.l ob_xvec(a5),d4 + move.l d4,d0 + bpl.s .pl1 + neg.l d0 +.pl1 cmp.l #$200000,d0 ;max speed + bcc.s .sk1 + move.l d4,ob_xvec(a5) + ; +.sk1 add.l ob_zvec(a5),d5 + move.l d5,d0 + bpl.s .pl2 + neg.l d0 +.pl2 cmp.l #$200000,d0 + bcc.s .sk2 + move.l d5,ob_zvec(a5) +.sk2 ; + bra putfire + +dragonanim move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + and #3,ob_frame(a5) + rts + +getobrot move ob_rotspeed(a5),d0 + bne.s .addr + ; + ;OK, randomly left/rite! + ; + bsr rndw + and #1,d0 + bne.s .addr2 + moveq #-1,d0 + ; +.addr2 lsl #2,d0 + move d0,ob_rotspeed(a5) + ; +.addr rts + +dragonlogic ;OK! end of game baddy! + ; + ;how about cruising around in a circle a-la + ;deathhead! + ; + bsr dragonanim + bsr dragonfire + bsr checkvecs + beq.s .nohit + ; + ;OK, dragon has hit a wall...rot him around till he's clear! + ; + bsr getobrot + lsl #2,d0 + add d0,ob_rot(a5) + bra calcvecs +.nohit ; + bsr pickcalc + move ob_rot(a5),d1 + and #255,d1 + sub d0,d1 ;am I near? + bpl.s .ansk + neg d1 +.ansk moveq #6,d0 + tst ob_rotspeed(a5) + bne.s .sh + moveq #24,d0 +.sh cmp d0,d1 + bcs.s .near + ; + ;not pointed at player! + bsr getobrot + add d0,ob_rot(a5) + bra calcvecs + ; +.near clr ob_rotspeed(a5) ;towards player! + rts + +weaponlogic ; + move.l camrots(pc),a0 + ; + addq #8,ob_movspeed(a5) + move ob_movspeed(a5),d0 + and #127,d0 + move 2(a0,d0*8),d0 + asr #8,d0 + move d0,ob_y(a5) + ; + move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + move ob_frame(a5),d0 + move.l ob_shape(a5),a0 + cmp 2(a0),d0 + bcs.s .skip + clr ob_frame(a5) +.skip ; + subq #1,ob_delay(a5) + bgt .rts + bsr rnddelay + ; + addlast objects + beq.s .rts + ; + movem.l ob_x(a5),d2-d4 + movem.l d2-d4,ob_x(a0) + bsr bloodspeed2 + move.l d0,ob_xvec(a0) + bsr bloodspeed2 + move.l d0,ob_yvec(a0) + bsr bloodspeed2 + move.l d0,ob_zvec(a0) + move.l ob_chunks(a5),a2 + move.l a2,ob_shape(a0) + move 2(a2),d0 + bsr rndn + move d0,ob_frame(a0) + move.l #sparkslogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + clr ob_invisible(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + bsr rndw + and #15,d0 + add #15,d0 + move d0,ob_delay(a0) +.rts rts + +calcvecs move ob_rot(a5),d0 + ; + and #255,d0 + move.l camrots(pc),a0 + lea 0(a0,d0*8),a0 + ; + move ob_movspeed(a5),d4 + move d4,d5 + muls 2(a0),d4 + add.l d4,d4 + neg.l d4 + move.l d4,ob_xvec(a5) + muls 6(a0),d5 + add.l d5,d5 + move.l d5,ob_zvec(a5) + rts + +checkvecs movem.l ob_xvec(a5),d6-d7 + add.l ob_x(a5),d6 + add.l ob_z(a5),d7 + bsr checknewslow ;ok to stand here? + beq.s .ok + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + bsr checknewslow + bne.s .fix + moveq #-1,d1 ;use old pos, and report hit! + rts + ; +.fix bsr adjustposq ;fixup! + moveq #-1,d1 + ; +.ok move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + tst d1 + rts + +playerdead bsr getcntrl + ; + subq #1,ob_delay(a5) + bgt.s .rts + ; + cmp #2,gametype + bne.s .notcom + ; + ;combat game! + ; + move #4,finished2 + move #1,ob_pixsizeadd(a5) + move.l #rts,ob_logic(a5) + ; + bsr getother + move #1,ob_pixsizeadd(a0) +.rts rts +.notcom ; + tst ob_lives(a5) + beq.s .dead + move.l #waitrestart,ob_logic(a5) + rts + ; +.dead move.l #rts,ob_logic(a5) + ; + tst gametype + bne.s .not1p + ; + ;OK, one player game done! + ; +.allover move #2,finished + rts + ; +.not1p move.l player1,a0 + cmp.l a5,a0 + bne.s .goth + move.l player2,a0 +.goth tst ob_hitpoints(a0) + ble.s .allover + rts + +waitrestart bsr getcntrl + ; + bsr checkfireb + beq.s .rts + ; + move ob_weapon(a5),d0 + move d0,-(a7) + ; + lea p1x(pc),a0 + lea player1_+4,a1 + cmp.l player1,a5 + beq.s .got + lea p2x(pc),a0 + lea player2_+4,a1 +.got lea ob_info(a5),a2 + move #(objinfof-objinfo-4)>>1-1,d0 +.loop move (a1)+,(a2)+ + dbf d0,.loop + move (a0)+,ob_x(a5) + move (a0)+,ob_z(a5) + move (a0)+,ob_rot(a5) + ; + move (a7)+,d0 + move d0,ob_weapon(a5) + ; + move.l ob_shape(a5),a0 + move.l 4(a0),ob_chunks(a5) + move.l (a0),a0 + move.l a0,ob_shape(a5) + ; + bsr resetplayer + move #-1,ob_update(a5) + st ob_lastbut(a5) + ; +.rts rts + +playerdeath bsr getcntrl + ; + addq #4,ob_rot(a5) + addq #4,ob_eyey(a5) + cmp #-32,ob_eyey(a5) + blt .rts + ; + move #-32,ob_eyey(a5) + move.l #playerdead,ob_logic(a5) + move #63,ob_delay(a5) + ; + cmp #2,gametype + bne.s .notcom + ; + ;death in combat game! + ; + move.l player1,a0 + cmp.l a5,a0 + bne.s .got + move.l player2,a0 +.got tst ob_hitpoints(a0) + ble.s .draw ;it's a draw! + ; +.win move.l a5,-(a7) + ; + move.l a0,a5 + clr ob_collwith(a5) + clr ob_colltype(a5) + bsr message + dc.b 'winner!',0 + even + ; + move.l (a7)+,a5 + subq #1,ob_lives(a5) + move #-1,ob_update(a5) ;refresh 'lives' + bsr message + dc.b 'loser!',0 + even + ; + rts +.draw ; + rts +.notcom ; + ;2 player? do damage to both players! + ; + tst gametype + beq.s .nlink + bsr getother + move #-1,ob_update(a0) + subq #1,ob_lives(a0) + bpl.s .nlink + clr ob_lives(a0) + ; +.nlink move #-1,ob_update(a5) + subq #1,ob_lives(a5) + bgt.s .rts + clr ob_lives(a5) + bsr message + dc.b 'game over',0 + even + ; +.rts rts + +getother ;get other player from a5! + ; + move.l player1(pc),a0 + cmp.l a0,a5 + bne.s .rts + move.l player2(pc),a0 +.rts rts + +redpal move.l #palettesr,ob_palette(a5) + move #2,ob_paltimer(a5) + rts + +playerhit tst ob_damage(a0) + beq.s .rts + st ob_update(a5) + bsr redpal +.rts rts + +playerdie bsr redpal + clr ob_hitpoints(a5) + st ob_update(a5) + move.l #playerdeath,ob_logic(a5) + clr ob_colltype(a5) + clr ob_collwith(a5) + rts + +inchealth ;inc health of a5 + ; + addq #5,ob_hitpoints(a5) + cmp #25,ob_hitpoints(a5) + ble.s .skip + move #25,ob_hitpoints(a5) +.skip st ob_update(a5) + bsr message + dc.b 'health bonus!',0 + even + rts + +healthgot bsr playtsfx + move.l a5,-(a7) + move.l a0,a5 + bsr inchealth + move.l (a7)+,a5 + bra killobject + +playtsfx move.l a0,-(a7) + move.l tokensfx(pc),a0 + moveq #64,d0 + moveq #0,d1 + bsr playsfx + move.l (a7)+,a0 + rts + +weapongot bsr playtsfx + ; + move.l a5,-(a7) + move ob_weapon(a5),d0 ;weapon #! + move.l a0,a5 + bsr weapond0 + move.l (a7)+,a5 + bra killobject + +weapond0 cmp ob_weapon(a5),d0 + bne .new + ; + subq.b #1,ob_reload(a5) + beq.s .skip + cmp.b #1,ob_reload(a5) + bne.s .notfull + bsr message + dc.b 'weapon boosted to full!',0 + even + bra.s .kill + ; +.notfull bsr message + dc.b 'weapon boost!',0 + even + ; +.kill st ob_update(a5) + rts + ; +.skip addq.b #1,ob_reload(a5) + add #250,ob_mega(a5) + cmp #ok,ob_mega(a5) + bcs.s .mwb + ; + bsr message + dc.b 'ultra mega overkill!!!',0 + even + rts + ; +.mwb bsr message + dc.b 'mega weapon boost!',0 + even + rts + ; +.new move d0,ob_weapon(a5) + move.b #ireload,ob_reload(a5) + st ob_update(a5) + bsr message + dc.b 'new weapon!',0 + even + bra.s .kill + +invisigot move.l a5,-(a7) + move.l a0,a5 + ; + add #1500,ob_invisible(a5) + bsr message + dc.b 'invisibility!',0 + even + ; + move.l (a7)+,a5 + bra killobject + +invincgot tst ob_hyper(a0) + bne.s .rts + move.l a5,-(a7) + move.l a0,a5 + ; + move #-$200,ob_hyper(a5) + bsr message + dc.b 'hyper!',0 + even + ; + move.l (a7)+,a5 + bra killobject + ; +.rts rts + +bouncygot cmp #3,ob_bouncecnt(a0) + bcc.s .rts + addq #1,ob_bouncecnt(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'bouncy bullets!',0 + even + move.l (a7)+,a5 + bra killobject +.rts rts + +thermogot add #1500,ob_thermo(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'got the thermo glasses!',0 + even + move.l (a7)+,a5 + bra killobject + +maxsize equ $280 + +playertimers tst ob_mega(a5) + beq.s .nomega + subq #1,ob_mega(a5) + bne.s .nomega + bsr message + dc.b 'mega wepaon out...',0 + even + ; +.nomega tst ob_thermo(a5) + beq.s .noth + subq #1,ob_thermo(a5) + bne.s .noth + bsr message + dc.b 'thermo glasses out...',0 + even + ; +.noth tst ob_messtimer(a5) + ble.s .notm + subq #2,ob_messtimer(a5) +.notm ; + tst ob_invisible(a5) + beq.s .noti + subq #1,ob_invisible(a5) + bne.s .noti + bsr message + dc.b 'invisibility out...',0 + even +.noti ; + tst ob_paltimer(a5) + beq.s .notp + subq #1,ob_paltimer(a5) + bne.s .notp + move.l #palettes,ob_palette(a5) +.notp ; + move ob_pixsizeadd(a5),d0 + beq.s .notpix + add d0,ob_pixsize(a5) + bne.s .pixnz + ; + clr ob_pixsizeadd(a5) + bra.s .notpix + ; +.pixnz cmp #24,ob_pixsize(a5) + bne.s .notpix + ; + move finished2(pc),finished + bne.s .notpix + ; + move ob_telex(a5),ob_x(a5) + move ob_telez(a5),ob_z(a5) + move ob_telerot(a5),ob_rot(a5) + neg ob_pixsizeadd(a5) +.notpix ; + move ob_hyper(a5),d0 + beq.s .nothyper + bpl.s .hplus + ; + ;hyper is minus! growing... + ; + subq #4,d0 + move d0,d1 + neg d1 + cmp #maxsize,d1 + bne.s .hdone + move #750<<2+maxsize,d0 + bra.s .hdone + ; +.hplus subq #4,d0 + cmp #maxsize,d0 + bhi.s .hdone2 + bne.s .noteq + bsr message + dc.b 'hyper out...',0 + even + move #maxsize,d0 +.noteq move d0,d1 + cmp #$200,d0 + bne.s .hdone + moveq #0,d0 + ; +.hdone move d1,ob_scale(a5) + ; + move d1,d2 + mulu #((pl_eyey<<16)/$200),d2 + swap d2 + neg d2 + move d2,ob_eyey(a5) + ; + move d1,d2 + mulu #((pl_firey<<16)/$200),d2 + swap d2 + neg d2 + move d2,ob_firey(a5) + ; + move d1,d2 + mulu #((pl_gutsy<<16)/$200),d2 + swap d2 + neg d2 + move d2,ob_gutsy(a5) + ; +.hdone2 move d0,ob_hyper(a5) +.nothyper ; + rts + +footstep move.l d0,-(a7) + move.l footstepsfx(pc),a0 + moveq #16,d0 + moveq #0,d1 + bsr playsfx + move.l (a7)+,d0 + rts + +pbuff ds.b 128 ;player controls to use! +pput dc 0 ;put new cntrl here +pget dc 0 ;read this for actual + +getcntrl move ob_cntrl(a5),d0 + lea joyx0(pc),a0 + move.l 0(a0,d0*8),joyx + move.l 4(a0,d0*8),joyb + rts + +maxrotsp equ $40000 +rotacc equ $20000 +rotrevacc equ $40000 +rotsetacc equ $20000 + +rotplayer ;return rot in d0, leave a0 + ; + move joys(pc),d0 ;strafing? + bne.s .norot + move joyx(pc),d0 + beq.s .norot + ; + move.l #rotacc,d1 ;rotacc + move ob_rotspeed(a5),d2 + beq.s .useacc + eor d2,d0 + bpl.s .useacc + move.l #rotrevacc,d1 ;fast rev! +.useacc move joyx(pc),d0 + bpl.s .plus + neg.l d1 +.plus add.l d1,ob_rotspeed(a5) + cmp.l #maxrotsp,ob_rotspeed(a5) + bgt.s .fixaccpl + cmp.l #-maxrotsp,ob_rotspeed(a5) + bge.s .addrot + move.l #-maxrotsp,ob_rotspeed(a5) + bra.s .addrot +.fixaccpl move.l #maxrotsp,ob_rotspeed(a5) + bra.s .addrot + ; +.norot tst.l ob_rotspeed(a5) + beq.s .skip + bpl.s .orpl + add.l #rotsetacc,ob_rotspeed(a5) + ble.s .addrot +.clrrot clr.l ob_rotspeed(a5) + bra.s .skip +.orpl sub.l #rotsetacc,ob_rotspeed(a5) + bmi.s .clrrot + ; +.addrot move.l ob_rotspeed(a5),d0 + add.l d0,ob_rot(a5) + ; +.skip rts + +moveplayer ;work out movement vector into d0/d1...check still/moving! + ; + move joyy(pc),d0 + bne .move + move joys(pc),d0 + beq.s .still + move joyx(pc),d0 + bne.s .strafe + ; +.still move ob_bounce(a5),d1 + bne.s .nob + rts +.nob add #30,ob_bounce(a5) + move ob_bounce(a5),d1 + and #127,d1 + cmp #30,d1 + bcc .fskip + clr ob_bounce(a5) + clr ob_frame(a5) + bra footstep + ; +.strafe ;do strafe! X rot in d0 + ; + move.l camrots(pc),a1 + lsl #6,d0 ;* ninety degrees + add ob_rot(a5),d0 + and #255,d0 + lea 0(a1,d0*8),a1 + ; + move ob_movspeed(a5),d0 + move d0,d1 + muls 2(a1),d0 + add.l d0,d0 + muls 6(a1),d1 + add.l d1,d1 + neg.l d0 + add.l d0,d6 + add.l d1,d7 + bra .check + ; +.move ;and possibly strafe! + ; + ;work out move vec into d0/d1 + ; + neg d0 + muls ob_movspeed(a5),d0 ;speed + move.l camrots(pc),a1 + move ob_rot(a5),d1 + and #255,d1 + lea 0(a1,d1*8),a1 + move d0,d1 + muls 2(a1),d0 + add.l d0,d0 + muls 6(a1),d1 + add.l d1,d1 + neg.l d0 + add.l d0,d6 + add.l d1,d7 + move joys(pc),d0 + beq.s .check + move joyx(pc),d0 + bne.s .strafe +.check ; + bsr checknewslow + beq.s .newpos + bsr adjustpos + beq.s .newpos + bsr adjustpos + beq.s .newpos + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + bra.s .bounce + ; +.newpos move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + ; +.bounce move ob_bounce(a5),d2 + add #20,ob_bounce(a5) + move ob_bounce(a5),d1 + and #255,d2 + cmp #64,d2 + bcc.s .fskip + and #255,d1 + cmp #64,d1 + bcs.s .fskip + ; + bsr footstep +.fskip ; + move.l ob_framespeed(a5),d1 + add.l d1,ob_frame(a5) + and #3,ob_frame(a5) + rts + +checkevent bsr checknew2 + beq.s .rts + ; + move ob_pixsizeadd(a5),d0 + or finished2(pc),d0 + bne .rts + ; + move zo_ev(a4),d0 ;poly->event + bmi.s .rts + ; + cmp #24,d0 + bne.s .notexit + ; + move #3,finished2 ;pattern done! + move #1,ob_pixsizeadd(a5) ;pixel out + tst gametype + beq.s .onewin + move.l player1(pc),a0 + cmp.l a5,a0 + bne.s .gotcha + move.l player2(pc),a0 +.gotcha move #2,ob_pixsizeadd(a0) ;pixel out other player +.onewin ; + bsr dotelesfx + moveq #24,d0 + ; +.notexit cmp #19,d0 + bcc.s .noclr + ; + ;OK, gotta clear all 'event' zones with same type! + ; + move.l map_poly(pc),a0 + move.l map_ppnt(pc),a1 + moveq #32,d1 +.loop2 cmp zo_ev(a0),d0 + bne.s .skip2 + neg zo_ev(a0) +.skip2 add.l d1,a0 + cmp.l a1,a0 + bcs.s .loop2 + ; +.noclr move.l a5,eventobj + movem.l d6-d7,-(a7) + bsr execevent + movem.l (a7)+,d6-d7 + move.l eventobj(pc),a5 + ; +.rts rts + + ;these updated after a call to 'getcntrl' + ; +joyx dc 0 ;left/rite +joyy dc 0 ;for/back +joyb dc 0 ;fire +joys dc 0 ;strafe + +checksuck cmp.l sucking(pc),a5 + bne.s .nosuck + ; + move.l suckangle(pc),a0 + moveq #25,d0 + move d0,d1 + muls 2(a0),d0 + neg.l d0 + add.l d0,d6 + ; + muls 6(a0),d1 + add.l d1,d7 + bsr checknewslow + beq.s .newok + bsr adjustpos + beq.s .newok + bsr adjustpos + beq.s .newok + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + ; +.newok move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + ; +.nosuck rts + +playerlogic bsr playertimers ;do timer stuff... + bsr getcntrl ;player control + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + ; + ;getting sucked? + ; + ;OK, are we getting pushed/squashed? + ; + bsr checknewslow + beq.s .newok + bsr adjustpos + beq.s .newok2 + bsr adjustpos + beq.s .newok2 + ; + subq #1,ob_hitpoints(a5) + ble playerdie + st ob_update(a5) + bra redpal + ; +.newok2 move.l d6,ob_x(a5) + move.l d7,ob_z(a5) +.newok ; + bsr checksuck + bsr checkevent ;in an event zone? + bsr rotplayer ;rotate + bsr moveplayer ;forward/back/strafe +checkfire ; + move cheat(pc),d0 + beq.s .nocheat + ; + qkey $5f ;help????? + beq.s .noend + move #3,finished + rts +.noend key 10 + beq.s .nohealth + bsr inchealth + bra.s .nocheat +.nohealth move.b (a0),d1 + moveq #5,d0 +.loop btst d0,d1 + bne.s .gotch + subq #1,d0 + bne.s .loop + bra.s .nocheat +.gotch ; + subq #1,d0 + bsr weapond0 + ; +.nocheat bsr checkfireb + beq .nofire + tst.b ob_reloadcnt(a5) + bne .nofire2 + ; + move ob_collwith(a5),d2 + and #3,d2 + eor #3,d2 ;colltype + moveq #0,d3 ;collwith! + ; + move ob_weapon(a5),d0 + mulu #18,d0 + lea wtable(pc),a0 + movem 0(a0,d0),d4-d6 + movem.l 6(a0,d0),a2-a3 + move.l 14(a0,d0),-(a7) + ; + tst ob_mega(a5) + beq.s .nomega + ; + cmp #ok,ob_mega(a5) + bcc.s .threeway + ; + movem.l d2-d6/a2-a3,-(a7) + addq #4,ob_rot(a5) + bsr shoot + movem.l (a7)+,d2-d6/a2-a3 + subq #8,ob_rot(a5) + bsr shoot + addq #4,ob_rot(a5) + bra.s .shdone +.threeway ; + movem.l d2-d6/a2-a3,-(a7) + addq #8,ob_rot(a5) + bsr shoot + movem.l (a7),d2-d6/a2-a3 + sub #16,ob_rot(a5) + bsr shoot + movem.l (a7)+,d2-d6/a2-a3 + addq #8,ob_rot(a5) + ; +.nomega bsr shoot + ; +.shdone move.l (a7)+,a0 + move.l (a0),a0 + moveq #32,d0 + moveq #0,d1 + bsr playsfx + ; + move.b ob_reload(a5),ob_reloadcnt(a5) + rts + ; +.nofire tst.b ob_reloadcnt(a5) + beq.s .rts +.nofire2 subq.b #1,ob_reloadcnt(a5) +.rts rts + + ; + ;hitpoints + ;damage + ;speed + ; +wtable dc 1,1,32 + dc.l bullet1,sparks1,shootsfx3 + dc 5,2,36 + dc.l bullet2,sparks2,shootsfx5 + dc 10,2,40 + dc.l bullet3,sparks3,shootsfx + dc 15,3,40 + dc.l bullet4,sparks4,shootsfx4 + dc 20,5,24 + dc.l bullet5,sparks5,shootsfx5 + +adjustposq ; + neg d0 + move d0,d1 + ; + muls zo_a(a4),d0 + add.l d0,d0 + ; + muls zo_b(a4),d1 + add.l d1,d1 + ; + sub.l d0,d6 + sub.l d1,d7 + ; + rts + +adjustpos bsr adjustposq + ; + ;addq #1,(a4) + ;move.l a4,-(a7) + bsr checknewslow + ;move.l (a7)+,a3 + ;addq #1,(a3) + tst d1 + rts + +checkfireb move joyb(pc),d0 + beq.s .nofire + tst ob_lastbut(a5) + bne.s .skip + move d0,ob_lastbut(a5) + rts +.skip moveq #0,d0 + rts +.nofire clr ob_lastbut(a5) + rts + +eventobj dc.l 0 + +calcbounce ;calculate bounce vector...poly in a4, obj in a5 + ; + ;R=2 N (N dot V) - V + ; + ;where R=reflect vector, N=normal to poly, V=original vector + ; + subq #1,ob_bouncecnt(a5) + bge.s .nok + bsr makesparksq + bra killobject +.nok ; + move.l closewall(pc),a4 + movem ob_nxvec(a5),d0-d1 ;normalized dir + movem zo_na(a4),d2-d3 ;normal to poly + neg d2 + ; + ;calc dot product: + ; + move d0,d4 + muls d2,d4 + move d1,d5 + muls d3,d5 + add.l d5,d4 + add.l d4,d4 + swap d4 ;dot product? + ; + muls d4,d2 + lsl.l #2,d2 + swap d0 + clr d0 + sub.l d0,d2 + swap d2 + ; + muls d4,d3 + lsl.l #2,d3 + swap d1 + clr d1 + sub.l d1,d3 + swap d3 + ; + movem d2-d3,ob_nxvec(a5) + ; + neg d2 + muls ob_movspeed(a5),d2 + add.l d2,d2 + muls ob_movspeed(a5),d3 + add.l d3,d3 + ; + movem.l d2-d3,ob_xvec(a5) + ; + bsr checkvecs + beq.s putfire + bra calcbounce + +firelogic ; + bsr checkvecs + bne calcbounce +putfire ; + addq #1,ob_frame(a5) + move ob_frame(a5),d0 + move.l ob_shape(a5),a0 + cmp 2(a0),d0 + bcs.s .skip + clr ob_frame(a5) +.skip ; + rts + +moveblood lea blood(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + tst bl_y(a5) + ble.s .do + ; + move.l sucking(pc),d0 + beq.s .kill + ; + move.l bl_xvec(a5),d0 + add.l d0,bl_x(a5) + move.l bl_zvec(a5),d1 + add.l d1,bl_z(a5) + ; + move.l bl_dest(a5),a0 + move bl_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move bl_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 + cmp.l #64*64,d0 + bcc.s .loop + bra.s .kill + ; +.do add.l #$8000,bl_yvec(a5) + ; + movem.l bl_xvec(a5),d0-d2 + add.l d1,bl_y(a5) + blt.s .ok + ; +.kill move.l a5,a0 + killitem blood + move.l a0,a5 + bra .loop + ; +.ok add.l d0,bl_x(a5) + add.l d2,bl_z(a5) + bra .loop + ; +.done rts + +drawblood lea blood(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + move bl_x(a5),d0 + sub camx(pc),d0 + move bl_y(a5),d1 + ble.s .blok + neg d1 +.blok sub camy(pc),d1 + move bl_z(a5),d2 + sub camz(pc),d2 + ; + ;rotate x/z around cam... + ; + move d0,d3 + move d2,d5 + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 ;X + ; + muls cm3(pc),d3 + muls cm4(pc),d2 + add.l d3,d2 + add.l d2,d2 + swap d2 ;Z + ; + tst d2 + beq .loop + cmp #maxz,d2 + bcc .loop + ; + ext.l d0 + lsl.l #focshft,d0 + divs d2,d0 + cmp minx(pc),d0 + blt .loop + cmp maxx(pc),d0 + bge .loop + ; + ext.l d1 + lsl.l #focshft,d1 + divs d2,d1 + cmp miny(pc),d1 + blt .loop + cmp maxy(pc),d1 + bge .loop + ; + cmp #32,d2 + bcc.s .pix + tst bl_y(a5) + bgt.s .pix + ; + ;blit to screen! + ; + move #$20,$dff09a + ; + bsr savernd + move.l window(pc),a0 + move wi_bh(a0),d0 + subq #8,d0 + bsr rndn + move d0,d2 ;Y + ; + move wi_bw(a0),d0 + subq #8,d0 + bsr rndn ;X + add wi_x(a0),d0 + move d2,d1 + ; + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #51,d2 + bsr blit + ; + bsr loadrnd + ; + move.l a5,a0 + killitem blood + move.l a0,a5 + ; + move #$8020,$dff09a + bra .loop +.pix ; + add midx(pc),d0 + add midy(pc),d1 + ; + move.l darktable(pc),a0 + move 0(a0,d2*2),d3 + ; + move.l cop(pc),a1 + ; + lea coloffs,a2 + add.l 0(a2,d0*4),a1 + mulu copmod(pc),d1 + ; + move blcols(pc,d3*2),d3 + and bl_color(a5),d3 + move d3,0(a1,d1.l) + bra .loop + ; +.done rts + +blcols dc $ccc,$bbb,$aaa,$999,$888,$777,$666,$555 + dc $444,$333,$222,$111,$111,$111,$111,$111 + +shaperender dc.l drawobjnorm ;default! + +drawshape_1sc ;draw shape with one frame, scaled! + ; + move.l ob_shape(a5),a0 + move ob_frame(a5),d0 + add.l 12(a0,d0*4),a0 + move ob_scale(a5),d7 + bra drawshape + +drawshape_1 ; + move.l ob_shape(a5),a0 + move ob_frame(a5),d0 + add.l 12(a0,d0*4),a0 + move #$200,d7 ;scale + bra drawshape + +drawshape_8 ; + ;shape has 8 rotations, and a scale! + ; + bsr calcangle2 + add #16,d0 + sub ob_rot(a5),d0 + lsr #5,d0 + and #7,d0 + move ob_frame(a5),d1 + lsl #3,d1 + or d1,d0 + move.l ob_shape(a5),a0 + move ob_scale(a5),d7 + add.l 12(a0,d0*4),a0 + ; +drawshape move ob_x(a5),d0 + move ob_y(a5),d1 + move ob_z(a5),d2 +drawshape_q ; + ;A0=shape + ;D0=X + ;D1=Y + ;D2=Z + ;D7=sclae factor + ; + ;rotate Z around camera! + ; + sub camx(pc),d0 + sub camy(pc),d1 + sub camz(pc),d2 + ; + move d0,d3 + move d2,d5 + muls cm3(pc),d3 + muls cm4(pc),d2 + add.l d3,d2 + add.l d2,d2 + swap d2 + ; + tst d2 + ble .rts + cmp #maxz,d2 + bcc .rts + ; + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 + ; + move.l memat(pc),a1 + add.l #sh_size,memat + movem d0-d2,sh_x(a1) + move.l a0,sh_shape(a1) + move d7,sh_scale(a1) + move.l shaperender(pc),sh_render(a1) + ; + lea shapelist(pc),a2 +.loop move.l (a2),d0 + beq.s .end + move.l a2,a3 + move.l d0,a2 + cmp sh_z(a2),d2 ;nearer...further in list + ble.s .loop + move.l a2,(a1) + move.l a1,(a3) + rts +.end move.l d0,(a1) + move.l a1,(a2) +.rts rts + +checknew2 ;check trigger zone + move.l map_grid(pc),a0 + addq #4,a0 + bra.s checknew_ + +gs equ 1< furthest wall list. + ; + ;optimizations... + ;check if both z's are negative after rotation + ;check if projected left/rite ends are on screen + ; + addq #1,frame + ; + clr.l inlist + move.l #inlist,inlistf + ; + move.l map_poly(pc),a4 + move.l map_ppnt(pc),a3 + move.l map_grid(pc),a2 + movem camx(pc),d6-d7 ;x,z + lsr #grdshft,d6 + lsr #grdshft,d7 + lea gridoffs(pc),a6 + moveq #(gridoffsf-gridoffs)>>2-1,d5 + ; +.loop movem (a6)+,d0-d1 + add d6,d0 + cmp #32,d0 + bcc .skip + add d7,d1 + cmp #32,d1 + bcc .skip + ; + ;d0,d1=x/z of map to check! + ; + lsl #5,d1 ;Y*32... + add d1,d0 ;+X + lea 0(a2,d0*8),a0 ;mapgrid + move (a0)+,d4 ;how many polys here + bmi .skip + move (a0),d0 ;poly data offset + lea 0(a3,d0*2),a0 + ; +.loop2 move (a0)+,d0 ;poly# + lsl #5,d0 + lea 0(a4,d0),a1 ;actual poly + ; + bsr dothezone + ; + dbf d4,.loop2 ;finish sq + ; +.skip dbf d5,.loop ;gridoffs + ; + ;now do rots/morphs... + ; + lea rotpolys(pc),a3 + ; +.loop3 move.l (a3),a3 + tst.l (a3) + beq.s .rpdone + ; + move.l rp_first(a3),a4 + move rp_num(a3),d4 + subq #1,d4 + ; +.loop4 move.l a4,a1 + bsr dothezone2 + ; + lea 32(a4),a4 + dbf d4,.loop4 + ; + bra.s .loop3 +.rpdone ; +makeoutlist ;create outlist from inlist + ; + clr.l outlist + move.l #outlist,outlistf + ; +.loop lea inlist(pc),a0 + move.l (a0),d0 + beq .done + move.l a0,a2 ;save previous! + move.l d0,a0 + ; + ;OK, see if any are in front of a0... + ; + lea inlist(pc),a1 + ; +.loop2 move.l (a1),d0 + beq .none + move.l a1,a3 + move.l d0,a1 + cmp.l a0,a1 + beq.s .loop2 ;don't compare with self! + ; + ;check screen pos overlap... + ; + move wl_rsx(a0),d0 + cmp wl_lsx(a1),d0 + blt .loop2 + ; + move wl_lsx(a0),d1 + cmp wl_rsx(a1),d1 + bgt .loop2 + ; + ;check near/far Z overlap + ; + move wl_nz(a1),d2 + cmp wl_fz(a0),d2 + bge .loop2 ;behind! + ; + move wl_fz(a1),d2 + cmp wl_nz(a0),d2 + ble .swap + ; + tst wl_open(a1) + bne .swap + ; + ;look at a0 points against a1 line... + ; + movem wl_a(a1),d5-d6 + move.l wl_c(a1),d7 + ; + move wl_lx(a1),d0 + sub wl_lx(a0),d0 + muls d5,d0 + move wl_lz(a1),d1 + sub wl_lz(a0),d1 + muls d6,d1 + add.l d1,d0 + eor.l d7,d0 + ; + move wl_lx(a1),d1 + sub wl_rx(a0),d1 + muls d5,d1 + move wl_lz(a1),d2 + sub wl_rz(a0),d2 + muls d6,d2 + add.l d2,d1 + eor.l d7,d1 + ; + ;if both a0 in front, no swap + ; + move.l d0,d4 + or.l d1,d4 + bpl .loop2 ;both a0's in front of a1! + ; + ;if both a0 behind, swap + ; + and.l d1,d0 + bmi .swap ;both a0's behind a1! + ; + ;look at a1 points against a0 line! + ; + movem wl_a(a0),d5-d6 + move.l wl_c(a0),d7 + ; + move wl_lx(a0),d2 + sub wl_lx(a1),d2 + muls d5,d2 + move wl_lz(a0),d3 + sub wl_lz(a1),d3 + muls d6,d3 + add.l d3,d2 + eor.l d7,d2 + ; + move wl_lx(a0),d3 + sub wl_rx(a1),d3 + muls d5,d3 + move wl_lz(a0),d4 + sub wl_rz(a1),d4 + muls d6,d4 + add.l d4,d3 + eor.l d7,d3 + ; + move.l d2,d4 + and.l d3,d4 + bmi .loop2 ;both a1's behind a0! + ; + or.l d3,d2 + bmi .loop2 + ; +.swap move.l a1,a0 + move.l a3,a2 + bra .loop2 + ; +.none ;OK, none in front of this (a0) + ; + move.l (a0),(a2) ;unlink from inlist + clr.l (a0) + ; + move.l outlistf(pc),a2 + move.l a0,(a2) + move.l a0,outlistf + bra .loop + ; +.done rts + +dothezone2 ; + move frame(pc),d0 + cmp zo_done(a1),d0 + beq.s .rts + move d0,zo_done(a1) + tst zo_open(a1) + bmi.s .rts + ; + movem d4-d7,-(a7) + ; + movem zo_lx(a1),d0-d3 ;x1,z1,x2,z2 + movem camx(pc),d6-d7 + ; + move #maxz,d4 + move d4,d5 + neg d5 + ; + sub d6,d0 + cmp d4,d0 + bge.s .rts2 + cmp d5,d0 + ble.s .rts2 + ; + sub d7,d1 + cmp d4,d1 + bge.s .rts2 + cmp d5,d1 + ble.s .rts2 + ; + sub d6,d2 + cmp d4,d2 + bge.s .rts2 + cmp d5,d2 + ble.s .rts2 + ; + sub d7,d3 + cmp d4,d3 + bge.s .rts2 + cmp d5,d3 + bgt dothezone3 ;.rts2 + ; +.rts2 movem (a7)+,d4-d7 + ; +.rts rts + +dothezone ; + move frame(pc),d0 + cmp zo_done(a1),d0 + beq rts ;.skip3 + move d0,zo_done(a1) + tst zo_open(a1) + bmi rts ;.skip3 + ; + ;OK, setup: + ; + ;d0=lx,d1=lz,d2=rx,d3=rz + ;d4=t,d5=sc,d6=dist + ; + ;back face/dist check... + ; + movem d4-d7,-(a7) + ; + movem zo_lx(a1),d0-d3 ;x1,z1,x2,z2 + movem camx(pc),d6-d7 + ; + sub d6,d0 + sub d7,d1 + sub d6,d2 + sub d7,d3 + ; +dothezone3 move d0,d4 + move d1,d5 + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 + ; + muls cm3(pc),d4 + muls cm4(pc),d1 + add.l d4,d1 + add.l d1,d1 + swap d1 ;LZ + ; + move d2,d4 + move d3,d5 + muls cm1(pc),d2 + muls cm2(pc),d5 + add.l d5,d2 + add.l d2,d2 + swap d2 ;RX + ; + muls cm3(pc),d4 + muls cm4(pc),d3 + add.l d4,d3 + add.l d3,d3 + swap d3 ;RZ + ; + ;check Z's... + tst d1 + bgt.s .zok + tst d3 + ble .skip2 +.zok ; + cmp #maxz,d1 + blt.s .zok2 + cmp #maxz,d3 + bge .skip2 +.zok2 ; + ;do backface check...generate a,b,c... + ; + rol.l #exshft,d0 + rol.l #exshft,d1 + rol.l #exshft,d2 + rol.l #exshft,d3 + ; + move d1,d4 + sub d3,d4 ;a + move d2,d5 + sub d0,d5 ;b + ; + move d0,d6 + muls d4,d6 + move d1,d7 + muls d5,d7 + add.l d7,d6 + bpl.s .front + ; + ;backface showing!... + bra .skip2 +.front ; + move.l memat(pc),a5 + ; + movem d0-d5,wl_lx(a5) + move.l d6,wl_c(a5) + ; + ;work out some screen positions! + tst d1 + bgt.s .z1ok + ; + ;lz bad, rz must be OK... + ; +.ov1 move minx(pc),wl_lsx(a5) + bra.s .z1sk + ; +.z1ok ext.l d0 + lsl.l #focshft,d0 + divs d1,d0 + bvs.s .ov1 + subq #1,d0 + cmp maxx(pc),d0 + bge .skip2 + move d0,wl_lsx(a5) +.z1sk ; + tst d3 + bgt.s .z2ok + ; + ;rz bad, lz must be OK... + ; +.ov2 move maxx(pc),wl_rsx(a5) + bra.s .z2sk + ; +.z2ok ext.l d2 + lsl.l #focshft,d2 + divs d3,d2 + bvs.s .ov2 + addq #1,d2 + cmp minx(pc),d2 + blt .skip2 + move d2,wl_rsx(a5) +.z2sk ; + cmp d1,d3 + bge.s .zskp + exg d1,d3 +.zskp movem d1/d3,wl_nz(a5) ;near/far Z + ; + move.l zo_t(a1),wl_t(a5) + move.l zo_t+4(a1),wl_t+4(a5) + move zo_sc(a1),wl_sc(a5) + move zo_open(a1),wl_open(a5) + ; + ;add to end of inlist... + ; + clr.l (a5) + move.l inlistf(pc),a1 + move.l a5,(a1) + move.l a5,inlistf + add.l #wl_size,memat + ; +.skip2 movem (a7)+,d4-d7 + ; +.skip3 rts + + elseif + +makeoutlist2 ;create outlist from inlist + ; +.loop0 lea inlist(pc),a0 + ; +.loop move.l (a0),d0 + beq .done + move.l a0,a2 ;save previous! + move.l d0,a0 + ; + ;OK, see if any are in front of a0... + ; + lea inlist(pc),a1 + ; +.loop2 move.l (a1),d0 + beq .none + move.l a1,a3 + move.l d0,a1 + ; + cmp.l a0,a1 + beq.s .loop2 ;don't compare with self! + ; + ;see if a1 is in front of a0 + ; + move wl_nz(a1),d0 + cmp wl_fz(a0),d0 + bge .loop2 ;behind! + ; + move wl_fz(a1),d0 + cmp wl_nz(a0),d0 + ble .swap + ; + ;now, compare screen x coords..... + ; + move wl_rsx(a0),d0 + cmp wl_lsx(a1),d0 + blt .loop2 + ; + move wl_lsx(a0),d0 + cmp wl_rsx(a1),d0 + bgt .loop2 + ; + ;look at a0 points against a1 line + ; + ;If Sgn((x3-x1)*a2+(y3-y1)*b2)<>Sgn(c2) + ; If Sgn((x3-x2)*a2+(y3-y2)*b2)<>Sgn(c2) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + movem wl_a(a1),d5-d6 + move.l wl_c(a1),d7 + ; + move wl_lx(a1),d0 + sub wl_lx(a0),d0 + muls d5,d0 + move wl_lz(a1),d1 + sub wl_lz(a0),d1 + muls d6,d1 + add.l d1,d0 + eor.l d7,d0 + ; + move wl_lx(a1),d1 + sub wl_rx(a0),d1 + muls d5,d1 + move wl_lz(a1),d2 + sub wl_rz(a0),d2 + muls d6,d2 + add.l d2,d1 + eor.l d7,d1 + ; + ;OK, screen X's overlap... + ;if both a0 in front, no swap + ; + move.l d0,d4 + or.l d1,d4 + bpl .loop2 + ; + ;if both a0 behind, swap + ; + move.l d0,d4 + and.l d1,d4 + bmi .swap + ; + ;bra .loop2 + ; + ;elseif + ;look at a1 points against a0 line + ; + ;If Sgn((x1-x3)*a1+(y1-y3)*b1)=Sgn(c1) + ; If Sgn((x1-x4)*a1+(y1-y4)*b1)=Sgn(c1) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + movem wl_a(a0),d5-d6 + move.l wl_c(a0),d7 + ; + move wl_lx(a0),d2 + sub wl_lx(a1),d2 + muls d5,d2 + move wl_lz(a0),d3 + sub wl_lz(a1),d3 + muls d6,d3 + add.l d3,d2 + eor.l d7,d2 + ; + move wl_lx(a0),d3 + sub wl_rx(a1),d3 + muls d5,d3 + move wl_lz(a0),d4 + sub wl_rz(a1),d4 + muls d6,d4 + add.l d4,d3 + eor.l d7,d3 + ; + ;if both a1's behind, no swap + ; + move.l d2,d4 + and.l d3,d4 + bmi .loop2 ;both a1's behind... + ; + ;if both a1's in front, swap + move.l d2,d4 + or.l d3,d4 + bpl .swap + ; + bra .loop2 + ; + ;elseif + ; +.swap ;a1 is infront of a0! make a1 new frontmost + bra .loop + move.l a1,a0 + move.l a3,a2 + bra .loop2 + ; +.none ;OK, none in front of this (a0) + ; + move.l (a0),(a2) ;unlink from inlist + clr.l (a0) + move.l outlistf(pc),a2 + move.l a0,(a2) + move.l a0,outlistf + bra .loop0 + ; +.done ;move.l inlist(pc),d0 + ;bne .loop0 + rts + + elseif + +castwalls ;process 'walls' list + ; + move.l castrots(pc),a6 + move minx(pc),d7 + lea 0(a6,d7*8),a6 + move.l vertdraws(pc),a4 + ; +.loop ;do this vert line! + ; + lea outlist(pc),a5 + ; +.loop2 move.l (a5),d0 + beq .empty + move.l d0,a5 + ; + cmp wl_lsx(a5),d7 + blt.s .loop2 + cmp wl_rsx(a5),d7 + bgt.s .loop2 + ; + movem wl_lx(a5),d0-d1 + muls (a6),d0 + muls 2(a6),d1 + add.l d1,d0 ;LX! + bgt.s .loop2 + ; + movem wl_rx(a5),d1-d2 + muls (a6),d1 + muls 2(a6),d2 + add.l d2,d1 ;RX! + blt.s .loop2 + ; + sub.l d0,d1 + ; + swap d1 + tst d1 + ble.s .dfix + neg.l d0 + divu d1,d0 + bvc.s .noov +.dfix moveq #-1,d0 +.noov lsr #1,d0 ;fraction -> unsigned + ; + cmp wl_open(a5),d0 + bcs.s .loop2 + ; + movem wl_lx(a5),d1-d2 + muls 4(a6),d1 + muls 6(a6),d2 + add.l d2,d1 + add.l d1,d1 ;lz + ; + movem wl_rx(a5),d2-d3 + muls 4(a6),d2 + muls 6(a6),d3 + add.l d3,d2 + add.l d2,d2 ;rz + ; + sub.l d1,d2 + swap d2 + muls d0,d2 + add.l d2,d2 + add.l d1,d2 + ; + swap d2 + ; + cmp #exone,d2 + blt .loop2 + cmp #maxz<d2 + jsr -156(a6) + move.l d2,vbr + ; + lea ciaaname,a1 + jsr -498(a6) + move.l d0,ciaa + move.l d0,a0 + movem.l $64(a0),d0-d1 + movem.l d0-d1,rawstuff + move #$4000,$dff09a + move.l rawtable(pc),$64(a0) + move.l #rawkeyread,$68(a0) + move #$c000,$dff09a + ; + move.l #8,d0 + move.l #$10002,d1 + allocmem chipzero + move.l d0,chipzero + ; + move.l #256,d0 ;128 words high max! + moveq #2,d1 + allocmem qstrip + move.l d0,qstrip + ; + move.l #256,d0 + moveq #1,d1 + allocmem maptable + move.l d0,maptable + ; + move.l #32768,d0 + moveq #1,d1 + allocmem memory + move.l d0,memory + ; + move.l #320*vd_size,d0 + moveq #1,d1 + allocmem vertdraws + move.l d0,vertdraws + ; + move.l #maxz*2,d0 + moveq #1,d1 + allocmem darktable + move.l d0,darktable + ; + move.l #16*512*2,d0 ;16 shades, 256 words + moveq #1,d1 + allocmem map_rgbs + ; + move.l #map_rgbs_,map_rgbs + ;move.l d0,map_rgbs + ;add.l #16*512,d0 + move.l d0,map_rgbsw + add.l #16*512,d0 + move.l d0,map_rgbsr + ; + st paused + clr dispnest + clr.l font + bsr initsfx + bsr initvbint + bsr initdisplay + bsr dispoff + ; + lea magicfiles,a0 + bsr loadfiles + ; + move.l magic,a0 + move.l magicpal,a1 + bsr makeiff + bsr showiff + bsr dispon + move #50,vbcounter + ; + lea progfiles,a0 + bsr loadfiles + ; + bsr initbmappal + bsr initmed + bsr initser + bsr calcbaud + bsr makecoloffs + bsr initdarktable + ; + bset #15,remapped + bne .noremap + ; + move.l map_rgbs(pc),a0 + move #-1,(a0)+ + move.l a0,map_rgbsat + ; + lea bullet1,a0 + jsr remapanim + lea bullet2,a0 + jsr remapanim + lea bullet3,a0 + jsr remapanim + lea bullet4,a0 + jsr remapanim + lea bullet5,a0 + jsr remapanim + lea sparks1,a0 + jsr remapanim + lea sparks2,a0 + jsr remapanim + lea sparks3,a0 + jsr remapanim + lea sparks4,a0 + jsr remapanim + lea sparks5,a0 + jsr remapanim + ; + elseif + lea 128*128+groundtile,a2 + move.l a2,a0 + bsr addpal + lea groundtile,a0 + move.l a2,a1 + bsr remap + ; + lea 128*128+ceilingtile,a2 + move.l a2,a0 + bsr addpal + lea ceilingtile,a0 + move.l a2,a1 + bsr remap + elseif + ; + lea qpal,a0 + bsr addpal + lea qcols,a0 + lea qpal,a1 + bsr remap + ; + move.l map_rgbsat(pc),map_rgbsat2 +.noremap ; + move.l map_rgbsat2(pc),map_rgbsat + ; + moveq #0,d0 + bsr loadanobj ;load player1 + moveq #1,d0 + bsr loadanobj ;load player2 + moveq #2,d0 + bsr loadanobj ;load tokens (health) + ; + move.l map_rgbsat(pc),map_rgbsfrom + move.l map_rgbsat(pc),map_rgbsfrom2 + ; + alloclist objects,#maxobjects,#ob_size + alloclist doors,#maxdoors,#do_size + alloclist blood,#maxblood,#bl_size + alloclist gore,#maxgore,#go_size + alloclist rotpolys,#maxrotpolys,#rp_size + ; +.w5sex tst vbcounter + bgt .w5sex + ; + bsr dispoff + lea iffwindow,a0 + bsr freewindow + move.l magic,a1 + freemem magic + move.l magicpal,a1 + freemem magicpal + ; + bra forbid + +checkdatadisk ;return eq if gloomdata: found! + ; + move.l dosbase(pc),a0 + move.l 34(a0),a0 + move.l 24(a0),a0 + add.l a0,a0 + add.l a0,a0 + addq #4,a0 + ; +.loop move.l (a0),d0 + beq.s .done + lsl.l #2,d0 + move.l d0,a0 + move.l 40(a0),a1 + add.l a1,a1 + add.l a1,a1 + cmp.b #9,(a1)+ ;9 chars + bne.s .loop + lea lockname(pc),a2 + moveq #8,d0 ;check 9 chars! +.loop2 cmp.b (a1)+,(a2)+ + bne.s .loop + dbf d0,.loop2 + rts + ; +.done moveq #-1,d0 + rts + +askdatadisk ; + ;make sure data disk is available... + ; + ;if 'gloomgame' is in CD, then use CD, else... + ;wait for 'gloomdata:' to get inserted! + ; + bsr permit + move.l #gamename,d1 + move.l #1005,d2 + move.l dosbase(pc),a6 + jsr -30(a6) ;open 'misc/script' + move.l d0,d1 + beq.s .nolock + jsr -36(a6) ;close it! + bra .load + ; +.nolock bsr forbid + bsr checkdatadisk + beq .dataok ;already there? + ; + sub.l a0,a0 + bsr makeiff + bsr showiff + lea diskmenu,a4 + lea iffwindow,a6 + bsr initmenu + bsr dispon + ; + ;OK, gotta swap disks and pick up data files! + ; +.wfd bsr permit + move.l grbase(pc),a6 + jsr -270(a6) + bsr forbid + bsr checkdatadisk + bne.s .wfd + ; + bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bsr freewindow + ; +.dataok bsr permit + bsr undir ;release old lock! + move.l #lockname,d1 + moveq #-2,d2 + move.l dosbase(pc),a6 + jsr -84(a6) ;lock? + move.l d0,d1 + beq.s .wfd + jsr -126(a6) ;make current dir! + move.l d0,oldlock + ; +.load lea datafiles,a0 + bsr loadfiles + bra forbid + +undir move.l oldlock(pc),d1 + beq.s .rts + clr gloomdata + clr.l oldlock + move.l dosbase(pc),a6 + jsr -126(a6) ;CD to old current dir + move.l d0,d1 + jsr -90(a6) ;unlock old (mine!) +.rts rts + +oldlock dc.l 0 + +lockname dc.b 'gloomdata:',0 + even + +lagtext dc.b 'lAG?',0 + even + +syncup ;time to calculate frame lag! + ; + ;master can establish lag time... + ; + move linked(pc),d0 + bne.s .li +.rts rts +.li ; + bsr qsync +; ; +;.li move.l lagtext(pc),d0 +; bsr longput +;.rl lea lagtext(pc),a2 +;.rw bsr serwait +; cmp.b (a2)+,d0 +; bne.s .li +; tst.b (a2) +; bne.s .rw +; ; +; bsr qsync + ; +calclag tst linked + bmi .slave + ; + ;MASTER - average out 32 sends of random data! + ; + moveq #0,d6 ;sum + moveq #31,d5 ;32 samples + ; +.mloop moveq #0,d7 + add #69,d0 + bsr vwait + bsr serput + ; +.mwait addq #2,d7 + bsr vwait + bsr vwait + bsr serget + bmi.s .mwait + ; +.got add d7,d6 + dbf d5,.mloop + ; + lsr #7,d6 ;/32 = avg. /2=half, /2=25 FPS + addq #1,d6 ;safety... + ; + move d6,d0 + move d0,lagtime + bsr serput + bra initlag + ; +.slave ;OK, bounce back 32 items... + ; + moveq #31,d5 +.sloop bsr serwait + bsr serput + dbf d5,.sloop + ; + ;now, wait to get told lagtime! + ; + bsr serwait + and #255,d0 + move d0,lagtime + ; +initlag ;what to do... + ; + ;stick 'lagtime' dummy 'no events' into rec buff! + ;stick 'lagtime' dummy 'noevents' into pcntrl buffer + ; + move #$4000,$dff09a + ; + lea pbuff(pc),a0 ;controller buffer + lea rbuff(pc),a1 ;ser rec. buffer + moveq #31,d1 ;32*4=128 bytes! + moveq #0,d0 +.loop move.l d0,(a0)+ + move.l d0,(a1)+ + dbf d1,.loop + ; + move lagtime(pc),d0 + ; + clr pget + clr rget + move d0,pput + move d0,rput + ; + move #$c000,$dff09a + ; + rts + +lagtime dc 0 + +qsync ;OK, quick sync up! + ; + tst linked + beq.s .rts + ; +.loop bsr vwait + move.b #$80,d0 + bsr serput +.wait bsr serwait + cmp.b #$80,d0 + bne.s .loop + moveq #0,d0 + bsr serput +.wait2 bsr serwait + cmp.b #$80,d0 + beq.s .wait2 + tst.b d0 + bne.s .loop + ; +.rts rts + +initnewgame move gametype(pc),twowins + beq.s .skip + tst linked + beq.s .skip + ; + ifeq debugser + clr twowins + endc +.skip ; + tst.l map_test + bne.s .skhit + bset #15,gloomdata + bne.s .gotdata + ; +.skhit bsr askdatadisk +.gotdata ; + bsr qsync + ; + move.l medat(pc),a1 + jsr 12(a1) + ;move #$4000,fadevol + cmp #2,gametype + bne normalgame + ; + ;combat type game! + ; + move #6,p1_ob_collwith + move #5,p2_ob_collwith + ; + lea combat,a0 + lea combatpal,a1 + bsr makeiff + bsr showiff + ; + lea combatmenu,a4 + lea iffwindow,a6 + bsr initmenu + ; + bsr dispon + ; +.loop bsr selmenu + cmp #3,d0 + bcs .play + bne.s .loop + ; + ;change number of wins... + ; + addq.b #1,comnum + cmp.b #'9',comnum + bls .loop + move.b #'2',comnum + bra .loop + ; +.play add #49,d0 + move.b d0,comseriesnum + move #7,comsleft + bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bsr freewindow + ; + move.b comnum(pc),d0 + sub.b #'0',d0 + ext d0 + move d0,p1lives + move d0,p2lives + rts + ; +normalgame ;check for continue offsets in 'gloomgame' file! + ; + move.l script(pc),scriptat ;default + move.l gloomgame(pc),a0 + lea conttxts(pc),a1 + lea conts(pc),a2 + moveq #0,d7 + ; +.loop move.l (a0)+,d0 + cmp.l #'game',d0 + beq.s .done + ; + ;another! + ; + addq #1,d7 + add.l script(pc),d0 ;OK, where to continue from! + move.l d0,(a2)+ + lea context(pc),a3 +.loop2 move.b (a3)+,(a1)+ + bne.s .loop2 + subq #1,a1 + move.l d0,a3 +.loop3 move.b (a3)+,(a1) + cmp.b #10,(a1)+ + bne.s .loop3 + clr.b -1(a1) + bra.s .loop + ; +.done tst d7 + beq initpstuff + addq #1,d7 + move.b d7,contmenu + ; + ;OK, need a continue game menu... + ; + lea gloom,a0 + lea gloompal,a1 + bsr makeiff + bsr showiff + ; + lea contmenu,a4 + lea iffwindow,a6 + bsr initmenu + bsr dispon + ; + bsr selmenu + ; + bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bsr freewindow + ; + move curropt(pc),d0 + beq initpstuff + lea conts(pc),a0 + move.l -4(a0,d0*4),a0 +.leol cmp.b #10,(a0)+ + bne.s .leol + move.l a0,scriptat + ; +initpstuff move #4,p1_ob_collwith + move #4,p2_ob_collwith + moveq #3,d0 + tst linked + beq.s .nlink + moveq #6,d0 + moveq #1,d0 +.nlink move d0,p1lives + move d0,p2lives + move #25,p1health + move #25,p2health + move #0,p1weapon + move #0,p2weapon + move.b #ireload,p1reload + move.b #ireload,p2reload + ; + rts + +conts ds.l 8 ;8 slots! + +combatmenu dc.b 4 + dc.b 'play spacehulk series',0 + dc.b 'play gothic tomb series',0 + dc.b 'play hell series',0 + dc.b 'start with ' +comnum dc.b '3 lives',0 + even + +context dc.b 'CONTINUE FROM ',0 + even + +contmenu dc.b 1 + dc.b 'START NEW GAME',0 +conttxts ds.b 160 + even + +execscript_med bsr waitquiet + ; + move.l medat(pc),a1 + move.l loadingmed(pc),a0 + jsr 8(a1) ;start title music! + ; +execscript cmp #2,gametype + beq scriptplay ;no script for combat game! + ; + move.l scriptat(pc),a0 + ; +.loop move.b (a0)+,d0 + cmp.b #10,d0 + beq.s .loop + and #31,d0 + bne.s .more +.loop2 cmp.b #10,(a0)+ + bne.s .loop2 + bra.s .loop +.more cmp #27,d0 + bcc.s .loop2 + add #96,d0 + ; + ;command! fetch the rest... + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + addq #1,a0 ;skip '_' + move.l a0,scriptat + cmp.l #'pict',d0 + beq scriptpict + cmp.l #'draw',d0 + beq scriptdraw + cmp.l #'text',d0 + beq scripttext + cmp.l #'wait',d0 + beq scriptwait + cmp.l #'play',d0 + beq scriptplay + cmp.l #'done',d0 + beq scriptdone + cmp.l #'dark',d0 + beq scriptdark + cmp.l #'show',d0 + beq scriptshow + cmp.l #'hide',d0 + beq scripthide + cmp.l #'loop',d0 + beq scriptloop + cmp.l #'rest',d0 + beq scriptrest + cmp.l #'tile',d0 + beq scripttile + ; + warn #$f80 + ; + ;Hmmm....bad command +.fucked ; + rts + ; +scriptdone bsr dispoff + move.l medat(pc),a1 + clr fadevol + jsr 12(a1) ;stop song + bra gameover + +sccont dc.b 'cont_' + even + +scriptrest ;restart point! + ;this changes...we add this to 'gloomgame' file now. + ; + move.l a0,d1 + sub.l script(pc),d1 ;offset from start of script! +.leol cmp.b #10,(a0)+ + bne.s .leol + move.l a0,scriptat + ; + move.l gloomgame(pc),a1 +.loop move.l (a1)+,d0 + cmp.l #'game',d0 + beq.s .add + cmp.l d0,d1 + bne.s .loop + ; + ;already here! + ; + bra execscript + ; +.add ;OK, gotta add new scriptat position! + ; + move.l d1,-(a1) + ; + ;save it out! + ; + bsr permit + lea gamename,a0 + move.l gloomgame,a1 + moveq #32,d0 + bsr savefile + bsr forbid + bra execscript + +scriptloop move.l script,scriptat + bra execscript + +scripthide bsr dispoff + bra execscript + +scriptshow clr pdelay + bsr dispon + bra execscript + +scriptdraw move.l pic,a0 + move.l picpal,a1 + bsr makeiff + bsr showiff + bra execscript + +fetchrest move.l scriptat,a0 + moveq #-1,d0 +.loop addq #1,d0 + move.b (a0)+,(a1) + cmp.b #10,(a1)+ + bne.s .loop + clr.b -(a1) + move.l a0,scriptat + rts + +picpath dc.b 'pics/' +picname ds.b 64 +pic_pal dc.b '.pal',0 + even + +pic dc.l 0 +picpal dc.l 0 + +freeiff push + move.l pic(pc),d0 + beq.s .skip1 + clr.l pic + move.l d0,a1 + freemem pic +.skip1 move.l picpal(pc),d0 + beq.s .skip2 + clr.l picpal + move.l d0,a1 + freemem picpal +.skip2 pull + rts + +freetiles push + move.l floor(pc),d0 + beq.s .skip1 + clr.l floor + move.l d0,a1 + freemem floor +.skip1 move.l roof(pc),d0 + beq.s .skip2 + clr.l roof + move.l d0,a1 + freemem roof +.skip2 pull + rts + +floorname dc.b 'txts/floor' +floortag ds.b 32 + even + +roofname dc.b 'txts/roof' +rooftag ds.b 32 + even + +scripttile ;tile command...load in floor/roof tiles! + ; + lea floortag(pc),a1 + bsr fetchrest + bsr loadtile + bra execscript + +loadtile ; + ;floor tag=tile extension... + ; + bsr freetiles + lea floortag(pc),a0 + lea rooftag(pc),a1 +.loop move.b (a0)+,(a1)+ + bne.s .loop + ; + bsr permit + lea floorname(pc),a0 + moveq #1,d1 + jsr loadfile + move.l d0,floor + lea roofname(pc),a0 + moveq #1,d1 + jsr loadfile + move.l d0,roof + bsr forbid + ; + move.l map_rgbsfrom,map_rgbsat + ; + move.l floor(pc),a2 + lea 128*128(a2),a2 + move.l a2,a0 + bsr addpal + move.l floor(pc),a0 + move.l a2,a1 + bsr remap + ; + move.l roof(pc),a2 + lea 128*128(a2),a2 + move.l a2,a0 + bsr addpal + move.l roof(pc),a0 + move.l a2,a1 + bsr remap + ; + move.l map_rgbsat,map_rgbsfrom2 + rts + +scriptpict ;load an iff + bsr freeiff + lea picname,a1 + bsr fetchrest + move.l a1,-(a7) + bsr permit + lea picpath,a0 + moveq #1,d1 + jsr loadfile + move.l d0,pic + lea pic_pal,a0 + move.l (a7)+,a1 +.loop move.b (a0)+,(a1)+ + bne.s .loop + lea picpath,a0 + moveq #1,d1 + jsr loadfile + move.l d0,picpal + bsr forbid + bra execscript + +scriptdark move.l iffwindow+wi_cop,a0 ;copperlist to darken! + ; + ;bank,32,bank,32... + ; + addq #6,a0 + moveq #3,d0 ;4 lots of 32 colours + moveq #31,d1 + ; + ;skip first 8 + ; + ;subq #8,d1 + ;lea 32(a0),a0 +.loop ; + move (a0),d2 ;hi nyb + move 132(a0),d3 ;lo nyb! + and #$eee,d3 + lsr #1,d3 + move d2,d4 + and #$111,d4 + lsl #3,d4 + or d4,d3 + and #$eee,d2 + lsr #1,d2 + move d2,(a0) + move d3,132(a0) + ; + addq #4,a0 + dbf d1,.loop + moveq #31,d1 + lea 136(a0),a0 + dbf d0,.loop + bra execscript + +text ds.b 64 + +scripttext ;print text on iff + ;a6=window, a4=message, d0=length of message, d6=Y + ; + move #2,pdelay + ; + lea text,a1 + bsr fetchrest + ; + lea iffwindow,a6 + lea text,a4 + move wi_bh(a6),d6 + sub #7,d6 + bsr printmess2 + ; + tst pdelay + bmi execscript + clr pdelay + bra execscript + +scriptwait ; + tst pdelay + bmi execscript + bsr waitany + bra execscript + +checkany ; + movem.l d0-d7/a0-a6,-(a7) + bsr vwait + bsr readmenujoys + tst joyb + movem.l (a7)+,d0-d7/a0-a6 + rts + +waitany movem.l d0-d7/a0-a6,-(a7) +.wait bsr vwait + bsr readmenujoys + tst joyb + beq .wait + ; +.unwait bsr vwait + bsr readmenujoys + tst joyb + bne .unwait + ; + movem.l (a7)+,d0-d7/a0-a6 + rts + +copywin moveq #wi_size/2-1,d0 +.loop move (a0)+,(a1)+ + dbf d0,.loop + rts + +freeobjlist lea objlist,a2 + ; +.loop move.l (a2)+,d0 + beq.s .done + move.l d0,a3 + ; + move.l (a3),d0 + beq.s .skip + move.l d0,a1 + freemem obj + clr.l (a3) +.skip ; + move.l 4(a3),d0 + beq.s .loop + move.l d0,a1 + freemem objchunks + clr.l 4(a3) + bra.s .loop + ; +.done rts + +freeobjlist2 lea objlist,a2 + ; +.loop move.l -(a2),d0 + beq.s .done + move.l d0,a3 + ; + move.l (a3),d0 + beq.s .skip + move.l d0,a1 + freemem obj2 + clr.l (a3) +.skip ; + move.l 4(a3),d0 + beq.s .loop + move.l d0,a1 + freemem objchunks2 + clr.l 4(a3) + bra.s .loop + ; +.done rts + +mappath dc.b 'maps/' +mapname ds.b 64 + even + +getwindow tst twowins + bne.s .p2 + ; + lea defwindow1_1p,a0 + lea window1,a1 + bsr copywin + rts + ; +.p2 lea defwindow1_2p,a0 + lea window1,a1 + bsr copywin + ; + lea defwindow2_2p,a0 + lea window2,a1 + bsr copywin + rts + +putwindow tst twowins + bne.s .p2 + ; + lea window1,a0 + lea defwindow1_1p,a1 + bsr copywin + rts + ; +.p2 lea window1,a0 + lea defwindow1_2p,a1 + bsr copywin + ; + lea window2,a0 + lea defwindow2_2p,a1 + bsr copywin + rts + +linkswap tst linked + bpl.s .rts + movem.l player1(pc),a0-a1 + exg a0,a1 + movem.l a0-a1,player1 + move ob_cntrl(a0),d0 + move ob_cntrl(a1),d1 + move d1,ob_cntrl(a0) + move d0,ob_cntrl(a1) +.rts rts + +pickcombat ;pick combat zone... + ;put name into a1... + ; + move $dff006,d0 + bsr seedrnd + ; + move comsleft(pc),d0 + bne.s .pick + moveq #7,d0 + move d0,comsleft +.pick bsr rndn + lea commaps(pc),a0 + subq #1,comsleft + move comsleft(pc),d1 + move.b 0(a0,d0),d2 ;map to play! + move.b 0(a0,d1),0(a0,d0) + move.b d2,0(a0,d1) + ; + add.b #48,d2 + move.b d2,comseriesmap + ; + lea comname(pc),a0 +.loop move.b (a0)+,(a1)+ + bne.s .loop + ; + lea combat,a0 + lea combatpal,a1 + bsr makeiff + bsr showiff + bsr dispon + lea tilenum(pc),a0 + lea floortag(pc),a1 +.loop2 move.b (a0)+,(a1)+ + bne.s .loop2 + bra loadtile + +tilenum dc.b '1',0 + +commaps dc.b 1,2,3,4,5,6,7,8 +comsleft dc 7 ;7 maps left! +comname dc.b 'com' +comseriesnum dc.b '1_' +comseriesmap dc.b '1',0 + even + +scriptplay ; + lea mapname,a1 + ; + cmp #2,gametype + bne.s .notcombat + ; + ;OK, combat game is a happening... + ; + ;select from on-screen maps. + ; + bsr pickcombat + bra.s .gotname + ; +.notcombat bsr fetchrest +.gotname ; + zerolist objects,ob_size + zerolist doors,do_size + zerolist blood,bl_size + zerolist gore,go_size + zerolist rotpolys,rp_size + ; + clr.l player1 + clr.l player2 + tst gametype + bne.s .p2 + not.l player2 ;no player 2! +.p2 ; + bsr permit + ; + move.l map_test(pc),d0 + bne.s .use + move.l #mappath,d0 +.use move.l d0,a0 + moveq #1,d1 + bsr loadfile + move.l d0,map_map + ; + bsr initmap + bsr loadtxts + move #$a3f7,d0 + bsr seedrnd + moveq #1,d0 + bsr execevent + bsr calcpalettes + bsr forbid + bsr makepalettes + bsr dispoff + bsr freewindows + bsr getwindow + ; + ;init player vars... + ; + move.l player1,a5 + ; + move p1lives(pc),ob_lives(a5) + ; + cmp #2,gametype + beq.s .psk + ; + move p1health(pc),d0 + bne.s .p1hok + move #25,p1health + move.b #ireload,p1reload +.p1hok move p1health(pc),ob_hitpoints(a5) + move p1weapon(pc),ob_weapon(a5) + move.b p1reload(pc),ob_reload(a5) + ; +.psk bsr resetplayer + ; + tst gametype + beq .p1 + ; + move.l player2,a5 + move p2lives(pc),ob_lives(a5) + ; + cmp #2,gametype + beq.s .psk2 + ; + move p2health(pc),d0 + bne.s .p2hok + move #25,p2health + move.b #ireload,p2reload +.p2hok move p2health(pc),ob_hitpoints(a5) + move p2weapon(pc),ob_weapon(a5) + move.b p2reload(pc),ob_reload(a5) + ; +.psk2 bsr resetplayer +.p1 ; + bsr linkswap + ; + ;save player positions at start of level! + ; + move.l player1(pc),a5 + move ob_x(a5),p1x + move ob_z(a5),p1z + move ob_rot(a5),p1r + tst gametype + beq.s .shit + move.l player2(pc),a5 + move ob_x(a5),p2x + move ob_z(a5),p2z + move ob_rot(a5),p2r +.shit ; + ;init windows... + ; + move.l player1(pc),a5 + move.l #window1,ob_window(a5) + move.l ob_window(a5),a0 + bsr makewindow + move.l ob_window(a5),a0 + bsr showwindow + bsr initstats + ; + tst twowins + beq.s .onew + ; + move.l player2(pc),a5 + move.l #window2,ob_window(a5) + move.l ob_window(a5),a0 + bsr makewindow + move.l ob_window(a5),a0 + bsr showwindow + bsr initstats +.onew ; + bsr calcbpos + ; + ;move #$4000,fadevol ;fadeout med! + ; + move.l medat(pc),a1 + clr fadevol + jsr 12(a1) ;stop song + ; + move #$1f3a,d0 + bsr seedrnd + clr.l sucker + clr.l sucking + clr finished + clr finished2 + clr doneflag + clr showflag + clr escape + ; + bsr syncup + ; + clr framecnt + clr paused + bsr drawall2 + bsr dispon + ; + bsr chaton + ; +mainloop bsr drawall + move escape(pc),d0 + beq.s .noesc + bsr dogamemenu + clr escape +.noesc move finished(pc),d0 + beq.s mainloop + ; + st paused + bsr chatoff + ; +.unlk bsr dispoff + bsr freewindows + bsr linkswap + bsr freeobjlist + bsr freetxts + bsr freemap + ; + ;finished codes... + ; + ;1 : quit (esc/exit game) + ;2 : death (both players dead) + ;3 : pattern completed + ;4 : combat game...someone died! + ; + move finished(pc),d0 + and #127,d0 + subq #1,d0 + beq exitgame + subq #1,d0 + beq gameover + subq #1,d0 + beq levelover + subq #1,d0 + beq combatover + ; +.fuck warn #$f08 + warn #$80f + bra.s .fuck + ; +exitgame bsr sendback + bsr freeiff + bra freetiles +gameover ; + bsr freeiff + bra freetiles +levelover ; + move.l player1,a5 + move ob_hitpoints(a5),p1health + move ob_lives(a5),p1lives + move ob_weapon(a5),p1weapon + move.b ob_reload(a5),p1reload + ; + tst gametype + beq.s .p1p1 + ; + move.l player2,a5 + move ob_hitpoints(a5),p2health + move ob_lives(a5),p2lives + move ob_weapon(a5),p2weapon + move.b ob_reload(a5),p2reload +.p1p1 ; + tst p1lives + bne.s .losk + tst gametype + beq.s .losk + tst p2lives + beq gameover +.losk tst.l map_test + bne gameover + bra execscript_med + ; +combatover move.l player1(pc),a5 + move ob_lives(a5),p1lives + beq .p1lost + move.l player2(pc),a5 + move ob_lives(a5),p2lives + beq .p2lost + ; + ;combat game continues! + ; + bra execscript_med + ; +.p1lost ;player 1 lost the game + ; + lea p2wins(pc),a0 + tst linked + beq .combatmess + lea ploses_(pc),a0 + bgt .combatmess + lea pwins_(pc),a0 + bra .combatmess + ; +.p2lost ;player 2 lost combat game + ; + lea p1wins(pc),a0 + tst linked + beq .combatmess + lea ploses_(pc),a0 + blt .combatmess + lea pwins_(pc),a0 + ; +.combatmess move.l a0,-(a7) + ; + bsr freeiff + bsr freetiles + lea combat,a0 + lea combatpal,a1 + jsr makeiff + jsr showiff + move.l (a7)+,a4 + lea iffwindow,a6 + bsr initmenu + bsr dispon + ; + bsr selmenu + ; + bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bsr freewindow + bra qsync + +flushser moveq #49,d7 +.loop bsr vwait +.loop2 bsr serget + bpl.s .loop2 + dbf d7,.loop + bra qsync + +sendback move linked(pc),d0 + beq.s .rts + ; + move finished(pc),d0 + bset #7,d0 + bne serput + move.b d0,d2 + bsr serput +.wait bsr serwait + cmp.b d0,d2 + bne.s .wait +.rts rts + +p1wins dc.b 1,'player one wins combat game!',0 + even +p2wins dc.b 1,'player two wins combat game!',0 + even +pwins_ dc.b 1,'player wins combat game!',0 + even +ploses_ dc.b 1,'player loses combat game!',0 + even + +freemap move.l map_map,d0 + beq.s .done + move.l d0,a1 + freemem map + clr.l map_map +.done rts + +inccntrl addq #1,(a2) + cmp #5,(a2) + bcs.s .pok + clr (a2) +.pok move (a2),d0 + cmp (a3),d0 + beq.s inccntrl + ; +.there lea popts(pc),a0 + move.l 0(a0,d0*4),a0 +.sk move.b (a0)+,(a1)+ + bne.s .sk + rts + +dointro ; + lea gloom,a0 + lea gloompal,a1 + jsr makeiff + jsr showiff + ; + lea gloombrush,a0 + lea iffwindow,a1 + move.l wi_bmap(a1),a1 + add.l #168*7*40,a1 + bsr decodeiff + ; + bsr dispon + ; + bsr chaton + ; + bsr waitany + ; + lea startmenu,a4 + tst linked + beq.s .use + lea startmenu2,a4 +.use lea iffwindow,a6 + jsr initmenu + ; +.sel jsr selmenu + ; + tst linked + beq.s .notlinked + ; + cmp #2,d0 + bcs .newgame2 + subq #2,d0 + beq .unlink + subq #1,d0 + beq .about + subq #1,d0 + beq .exitgloom + bra .sel +.unlink ; + bsr chatoff + clr linked + lea p2ctype(pc),a1 + lea p2_ob_cntrl,a2 + lea p1_ob_cntrl,a3 + bsr inccntrl + bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bsr freewindow + bra dointro + ; +.newgame2 addq #1,d0 + move d0,gametype + bsr chatoff + bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bra freewindow + ; +.notlinked cmp #3,d0 + bcs .newgame + ; + subq #3,d0 + bne .notp1 + ; + lea p1ctype(pc),a1 + lea p1_ob_cntrl,a2 + lea p2_ob_cntrl,a3 + bsr inccntrl + bra .sel + ; +.notp1 subq #1,d0 + bne.s .notp2 + ; + lea p2ctype(pc),a1 + lea p2_ob_cntrl,a2 + lea p1_ob_cntrl,a3 + bsr inccntrl + bra .sel + ; +.notp2 subq #1,d0 + bne.s .notlink + ; + bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bsr freewindow + bsr linkup + bra dointro + ; +.notlink subq #1,d0 + bne.s .notvile + ; + addq #1,mode + and #1,mode + move mode(pc),d0 + lea modes,a0 + move.l 0(a0,d0*4),a0 + lea modetxt,a1 +.moloop move.b (a0)+,(a1)+ + bne.s .moloop + ; + bra .sel + ; +.notvile subq #1,d0 + bne .notabout + ; +.about ;about text... + ; + bsr dispoff + bsr finitmenu + lea gloom,a0 + lea gloompal,a1 + bsr makeiff + bsr showiff + ; + lea abouttext,a4 + lea iffwindow,a6 + bsr initmenu + move numopts(pc),-(a7) + move #1,numopts + ; + bsr dispon + bsr selmenu + ; + move (a7)+,numopts + ; + bsr dispoff + bsr finitmenu + bra dointro + ; +.notabout subq #1,d0 + bne .sel + ; +.exitgloom moveq #4,d0 + ; +.newgame move d0,gametype + ; + bsr chatoff + jsr dispoff + jsr finitmenu + lea iffwindow,a0 + bra freewindow + +linkup ;link up... + ; + sub.l a0,a0 + bsr makeiff + bsr showiff + lea linkupmenu,a4 + lea iffwindow,a6 + bsr initmenu + ; + bsr dispon + ; +.loop bsr selmenu + cmp #3,d0 + bne.s .notb + bsr optbaud + bra.s .loop + ; +.notb move d0,-(a7) + bsr dispoff + bsr finitmenu + move (a7)+,d0 + beq nulllink + cmp #4,d0 + beq.s .rts + subq #1,d0 + beq dialup + subq #1,d0 + beq answer +.rts rts +answer lea ata(pc),a0 + move #-1,linked + bra doconnect + +dialup ; + lea phonenum(pc),a0 + move.l a0,a1 + move.l a0,phoneat +.clr tst.b (a0) + beq.s .clrd + move.b #32,(a0)+ + bra.s .clr +.clrd move.b #127,(a1) + ; + sub.l a0,a0 + bsr makeiff + bsr showiff + lea linkmenu0,a4 + lea iffwindow,a6 + bsr initmenu + bsr dispon + ; +.loop moveq #-1,d0 + move.l d0,keyoff + ; +.wkey cmp.l keyoff(pc),d0 + beq.s .wkey + ; + move keyoff(pc),d0 + lsl #3,d0 + or keybit(pc),d0 + beq.s .wkey + ; + cmp #$44,d0 + beq.s .done + cmp #$41,d0 + bne.s .notdel + ; + move.l phoneat(pc),a0 + cmp.l #phonenum,a0 + beq.s .loop + cmp.b #127,(a0) + bne.s .noc + move.b #32,(a0) + subq #1,a0 +.noc move.b #127,(a0) + move.l a0,phoneat + bra.s .skinc + ; +.notdel cmp #10,d0 + bhi.s .loop + bcs.s .nz + moveq #0,d0 +.nz add #48,d0 + ; + move.l phoneat(pc),a0 + move.b d0,(a0)+ + tst.b (a0) + beq.s .skinc + move.b #127,(a0) + move.l a0,phoneat + ; +.skinc bsr vwait + bsr optoff + bsr opton + bra .loop + ; +.done bsr dispoff + bsr finitmenu + ; + lea pbuff(pc),a0 ;use this for connect string! + move.l a0,a2 + ; + move.l #'ATDT',(a2)+ + lea phonenum(pc),a1 +.cpn move.b (a1)+,(a2) + beq.s .null + cmp.b #32,(a2)+ + bne.s .cpn + subq #1,a2 +.null move.b #13,(a2)+ + move.b #10,(a2)+ + clr.b (a2) + ; + move #1,linked + bra doconnect + +phoneat dc.l phonenum + +nulllink ; + lea connect(pc),a0 +doconnect ; + bsr sendstring + bsr waitconnect + beq .calcmaster + ; + clr linked + rts + ; + ;OK, randomly determine who is master and who is slave! + ; + ;faster computer SHOULD be master! + ; + ;let's try, number of rnd divs/frame...send as a long word! + ; +.calcmaster tst linked + bne .linked + ; + moveq #0,d7 + ; + move #$20,$dff09a + ; +.vwloop btst #5,$dff01f + beq.s .vwloop + move #$20,$dff09c +.cmloop ; + btst #5,$dff01f + bne.s .cmdone + bsr rndw + ext.l d0 + divs #$a5a5,d0 + addq.l #1,d7 + bra.s .cmloop +.cmdone ; + move #$20,$dff09c + move #$8020,$dff09a + ; + move.l d7,d0 + bsr longput + bsr longget + cmp.l d0,d7 + beq.s .calcmaster + blt.s .skip + ; + ;I'm player 1 + move #1,linked + bra.s .linked + ; +.skip ;I'm actually player 2! + move #-1,linked + ; +.linked move #-1,p2_ob_cntrl + sub.l a0,a0 + bsr makeiff + bsr showiff + lea incharge(pc),a4 + tst linked + bgt.s .goz + lea notincharge(pc),a4 +.goz lea iffwindow,a6 + bsr initmenu + bsr dispon + ; + bsr chaton + bsr selmenu + ; + bsr dispoff + bra finitmenu + +longput ;send ser long in d0 + ; + moveq #3,d1 +.loop rol.l #8,d0 + movem.l d0-d1,-(a7) + bsr vwait + bsr serput + movem.l (a7)+,d0-d1 + dbf d1,.loop + rts + +longget ;get ser long in d0 + ; + move.l d2,-(a7) + moveq #3,d1 +.loop movem.l d1-d2,-(a7) + bsr serwait + movem.l (a7)+,d1-d2 + lsl.l #8,d2 + move.b d0,d2 + dbf d1,.loop + move.l d2,d0 + move.l (a7)+,d2 + rts + +incharge dc.b 1 + dc.b 'player selects options',0 + even + +notincharge dc.b 1 + dc.b 'other player selects options',0 + even + +sendstring ;a0=string to send + ; + move.l a0,a2 +.loop bsr vwait + move.b (a2)+,d0 + beq.s .done + bsr serput + bra.s .loop +.done rts + +waitconnect ;wait for 'CONNECT' to arrive... + ;return eq if OK, else ne if 'esc'ed or not received. + ; + sub.l a0,a0 + bsr makeiff + bsr showiff + lea linkmess,a4 + lea iffwindow,a6 + bsr initmenu + bsr dispon + ; +.retry lea wconnect(pc),a2 + ; +.loop qkey $45 ;ESC? + bne .notok + bsr serget + bpl.s .sgok + bsr vwait + bra.s .loop +.sgok cmp.b (a2)+,d0 + bne.s .retry + tst.b (a2) + bne.s .loop + ; +.ok ;OK, connect xxxx ends with 13,10... + ; +.w10 qkey $45 + bne .notok + bsr serget + bpl.s .sgok2 + bsr vwait + bra.s .w10 +.sgok2 cmp.b #10,d0 + bne.s .w10 + ; + bsr dispoff + bsr finitmenu + moveq #0,d0 + rts + ; +.notok bsr dispoff + bsr finitmenu + moveq #-1,d0 + rts + +optbaud addq #1,baud + cmp #6,baud + bcs.s .ok + clr baud +.ok ; +calcbaud move baud(pc),d0 + lea bauds(pc),a0 + move.l 4(a0,d0*8),a0 ;baud text! + lea baudtext(pc),a1 +.loop move.b (a0)+,(a1)+ + bne.s .loop + ; + move baud(pc),d0 + lea bauds(pc),a1 + move.l 0(a1,d0*8),d0 ;2400 etc. + move.l baudconst(pc),d1 + divu d0,d1 + subq #1,d1 + move d1,$dff032 + ; + rts + +connect dc.b 'CONNECT',13,10,0 + even + +wconnect dc.b 'CONNECT',0 + even + +ata dc.b 'ATA',13,10,0 + even + +linkmenu0 dc.b 1 + dc.b 'DIAL: ' +phonenum dc.b 127,' ',0 + even + +linkmess dc.b 1 + dc.b 'ATTEMPTING TO CONNECT...ESC TO ABORT',0 + even + +linkupmenu dc.b 5 + dc.b 'NULL LINK',0 + dc.b 'DIAL UP',0 + dc.b 'ANSWER',0 + dc.b 'BAUD RATE: ' +baudtext dc.b '2400 ',0 + dc.b 'EXIT',0 + even + +baudconst dc.l 3546895 ;pal + dc.l 3579545 ;ntsc + +baud dc 5 + +bauds dc.l 2400,b1,4800,b2,9600,b3,14400,b4,28800,b5 + dc.l 38400,b6 + +b1 dc.b '2400 ',0 +b2 dc.b '4800 ',0 +b3 dc.b '9600 ',0 +b4 dc.b '14400',0 +b5 dc.b '28800',0 +b6 dc.b '38400',0 + even + + dc.l popt0 +popts dc.l popt1,popt2,popt3,popt4,popt5 + ; +popt0 dc.b 'NULL MODEM',0 ;-1 +popt1 dc.b 'JOYSTICK 1',0 ;0 +popt2 dc.b 'JOYSTICK 2',0 ;1 +popt3 dc.b ' KEYBOARD ',0 ;2 +popt4 dc.b 'CD32 PAD 1',0 ;3 +popt5 dc.b 'CD32 PAD 2',0 ;4 + +joyxs dc 0,0 ;serial +joyys dc 0,0 + ; +joyx0 dc 0,0 +joyb0 dc 0,0 +joyx1 dc 0,0 +joyb1 dc 0,0 +joyx2 dc 0,0 +joyb2 dc 0,0 +joyx3 dc 0,0 +joyb3 dc 0,0 +joyx4 dc 0,0 +joyb4 dc 0,0 + + even + +makeiff ;show an IFF picture...128 colours...320 X 240 + ; + ;a0=trimmed iff, a1=iff's palette + ; + push + movem.l a0-a1,-(a7) + lea iffwindow,a0 + bsr freewindow + movem.l (a7)+,a0-a1 + ; + lea iffwindow,a2 + cmp.l #0,a0 + bne.s .notblank + addq #1,a0 + move.l a0,wi_iff(a2) + move.l #rgbs16,a1 + bra.s .blank + ; +.notblank move.l a0,wi_iff(a2) +.blank move.l a1,wi_pal(a2) + ; + ;copy font palette to IFF palette! + ; + move.l font(pc),d0 + beq.s .nofont + ; + move.l d0,a0 + add.l (a0),a0 + addq #2,a0 + clr.l (a1)+ + moveq #14,d0 +.loop move (a0),(a1)+ + move (a0)+,(a1)+ + dbf d0,.loop +.nofont ; + move.l a2,a0 + bsr makewindow + ; + pull + rts + +showiff push + lea iffwindow,a0 + bsr showwindow + pull + rts + +gamemenu dc.b 7 + dc.b 'CONTINUE',0 + dc.b 'RESOLUTION',0 + dc.b 'WINDOW SIZE',0 + dc.b 'FULL SCREEN WINDOW',0 + dc.b 'FLOOR',0 + dc.b 'CEILING',0 + dc.b 'QUIT GAME',0 + even + +modes dc.l mode1,mode2 + +mode1 dc.b 'MEATY',0 + +mode2 dc.b 'MESSY',0 + +startmenu dc.b 9 + dc.b 'ONE PLAYER GAME',0 ;0 + dc.b 'TWO PLAYER GAME',0 ;1 + dc.b 'TWO PLAYER COMBAT',0 ;2 + dc.b 'PLAYER 1 ' +p1ctype dc.b 'JOYSTICK 1',0 ;3 + ; + dc.b 'PLAYER 2 ' +p2ctype dc.b 'JOYSTICK 2',0 ;4 + ; + dc.b 'REMOTE LINK OPTIONS',0 ;5 + ; + dc.b 'VIOLENCE MODEL: ' +modetxt dc.b 'MEATY',0 ;6 + dc.b 'ABOUT GLOOM',0 ;7 + dc.b 'EXIT GLOOM',0 ;8 + even + +startmenu2 dc.b 5 + dc.b 'TWO PLAYER GAME',0 ;0 + dc.b 'TWO PLAYER COMBAT GAME',0 ;1 + dc.b 'UNLINK FROM REMOTE PLAYER',0 ;2 + dc.b 'ABOUT GLOOM',0 ;3 + dc.b 'EXIT GLOOM',0 ;4 + even + +menuwindow dc.l 0 +menubmap dc.l 0 + +menuy dc 0 +numopts dc 0 ;how many menu options +curropt dc 0 ;current option +flashdelay dc 0 + +menustrips ds.l 32 ;16 max! + +initmenu clr curropt +initmenu2 ; + ;do a menu...menu in a4, window in a6 + ; + move.l a6,menuwindow + move.b (a4)+,d0 ;how many + ext d0 + move d0,numopts + move d0,-(a7) ;counter + move wi_bh(a6),d6 + move.l wi_bmap(a6),menubmap + lsr #1,d6 + move fonth(pc),d2 + lsr #1,d2 + mulu d2,d0 + sub d0,d6 ;Y + move d6,menuy + lea menustrips(pc),a5 + ; +.loop ;save strip! + ; + move.l a4,(a5)+ + ; + move #40*7,d0 + mulu fonth(pc),d0 + moveq #2,d1 + allocmem menustrip + move.l d0,(a5)+ + move.l d0,a1 + move.l wi_bmap(a6),a0 + move d6,d0 + mulu #7*40,d0 + add.l d0,a0 + ; + move #40*7,d0 + mulu fonth(pc),d0 + lsr.l #2,d0 + subq #1,d0 + ; +.sloop move.l (a0)+,(a1)+ + dbf d0,.sloop + ; + move.l a4,a0 + moveq #-1,d0 +.cnt addq #1,d0 + tst.b (a0)+ + bne.s .cnt + ; + bsr printmess2 + ; + add fonth(pc),d6 + subq #1,(a7) + bgt.s .loop + addq #2,a7 + ; + ifne debugmem + bsr showmem + lea memasc,a4 + moveq #8,d0 + bsr printmess2 + ; + move.l freememerr,d0 + beq.s .nomemerr + clr.l freememerr + move.l d0,a4 + move.l d0,a0 + moveq #-1,d0 +.ccloop addq #1,d0 + tst.b (a0)+ + bne.s .ccloop + add fonth(pc),d6 + bsr printmess2 +.nomemerr ; + endc + ; + rts + + ifne debugmem +showmem push + move.l 4.w,a6 + moveq #1,d1 + jsr -216(a6) + lea memasc,a0 + moveq #7,d1 +.loop rol.l #4,d0 + move d0,d2 + and #15,d2 + add #48,d2 + cmp #58,d2 + bcs.s .skip + addq #7,d2 +.skip move.b d2,(a0)+ + dbf d1,.loop + pull + rts + ; +memasc dc.b '12345678',0 + even + endc + +optoff move curropt(pc),d6 + lea menustrips(pc),a0 + move.l 4(a0,d6*8),a0 ;address of strip + mulu fonth(pc),d6 + add menuy(pc),d6 + mulu #7*40,d6 + move.l menubmap(pc),a1 + add.l d6,a1 + ; + move fonth(pc),d0 + mulu #7,d0 + lsl #6,d0 + or #20,d0 + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l #$9f00000,$dff040 + move.l #-1,$dff044 + move #0,$dff064 + move #0,$dff066 + move.l a0,$dff050 + move.l a1,$dff054 + move d0,$dff058 + ; + move #13,flashdelay + ; + rts + +opton move curropt(pc),d6 + lea menustrips(pc),a0 + move.l 0(a0,d6*8),a4 ;text! + mulu fonth(pc),d6 + add menuy(pc),d6 + ; + ;a6=window, a4=message, d0=length of message, d6=Y + ; + move.l a4,a0 + moveq #-1,d0 +.loop addq #1,d0 + tst.b (a0)+ + bne.s .loop + ; + move.l menuwindow(pc),a6 + bsr printmess2 + ; + move #13,flashdelay + ; + rts + +readmenujoys ;if in charge...read and send else rec. + ; + tst linked + beq.s .read + bpl.s .readsend + ; +.get bsr serget + bmi.s .none + bsr serput ;send back! + lea joyx(pc),a0 + jmp decodejoy +.none clr.l joyx + clr.l joyb + rts + ; +.readsend bsr .read + lea joyx(pc),a0 + jsr encodejoy + tst.b d0 + beq.s .rts + bsr serput + bsr serwait ;wait for send back! +.rts rts + ; +.read ;OK, read joystick in port 2, and keyboard! + ;merge into joyx,joyy,joyb + ; + lea joyx(pc),a0 + bsr readjoy1 + lea joyx0(pc),a0 + bsr readkeys + move.l joyx0(pc),d0 + or.l d0,joyx + move.l joyb0(pc),d0 + or.l d0,joyb + ; + qkey $44 + bne.s .fire + qkey $45 + bne.s .fire + rts +.fire move #-1,joyb + rts + +selmenu ;select a menu item...return item in d0 + ; + ;flash selected option on/off + ; + bsr optoff + ; +.loop1 bsr vwait + bsr readmenujoys + tst joyy + blt .up2 + bgt .down2 + tst joyb + bne .sel2 + ; + subq #1,flashdelay + bgt .loop1 + ; + bsr opton + ; +.loop2 bsr vwait + bsr readmenujoys + tst joyy + blt .up + bgt .down + tst joyb + bne .sel + ; + subq #1,flashdelay + bgt .loop2 + ; + bra selmenu + ; +.up2 bsr opton +.up subq #1,curropt + bpl.s .upskip + move numopts(pc),d0 + subq #1,d0 + move d0,curropt +.upskip bsr vwait + bsr readmenujoys + tst joyy + bmi .upskip + bra selmenu + ; +.down2 bsr opton +.down addq #1,curropt + move curropt(pc),d0 + cmp numopts(pc),d0 + bcs.s .downskip + clr curropt +.downskip bsr vwait + bsr readmenujoys + tst joyy + bgt .downskip + bra selmenu + ; +.sel2 bsr opton +.sel bsr vwait + bsr readmenujoys + tst joyb + bne .sel + move curropt(pc),d0 + rts + +finitmenu ;clean up menu operation + ; + lea menustrips(pc),a5 + move numopts(pc),d2 + subq #1,d2 +.loop addq #4,a5 + move.l (a5)+,a1 + freemem menustrip + dbf d2,.loop + rts + +initbmappal move.l smallfont_,a0 + add.l (a0),a0 + addq #2,a0 + moveq #22,d0 ;23 colours to poke! + move.l coplist(pc),a1 + move.l a1,a2 + move.l a1,a3 + move.l a1,a4 + ; + lea cols1+6-copinit(a1),a1 + lea cols2+6-copinit(a2),a2 + lea cols3+6-copinit(a3),a3 + lea cols4+6-copinit(a4),a4 + ; +.loop move (a0),(a1) + move (a0),(a2) + move (a0),(a3) + move (a0)+,(a4) + addq #4,a1 + addq #4,a2 + addq #4,a3 + addq #4,a4 + dbf d0,.loop + rts + +initdarktable ; + move #maxz-1,d2 + move.l sqr(pc),a0 + move.l darktable(pc),a1 + ; +.loop move d2,d3 + lsl #3,d3 + move 0(a0,d3),d3 + lsr #3,d3 + eor #15,d3 + move d3,(a1)+ + ; + dbf d2,.loop + ; + rts + +initrawmap lea ascmap(pc),a0 + lea rawmap(pc),a1 + bsr .loop + lea ascmap2(pc),a0 + lea shiftmap(pc),a1 + ; +.loop moveq #0,d0 + move.b (a0)+,d0 + cmp #$ff,d0 + beq.s .rts +.loop2 move.b (a0)+,d1 + beq.s .loop + move.b d1,0(a1,d0) + addq #1,d0 + bra.s .loop2 +.rts rts + +keyoff dc 0 +keybit dc 0 + +ascmap dc.b $1,'1234567890',0 + dc.b $10,'QWERTYUIOP',0 + dc.b $20,'ASDFGHJKL',0 + dc.b $31,'ZXCVBNM',0 + dc.b $40,' ',0 + dc.b $38,',.',0 + dc.b $ff + even + ; +ascmap2 dc.b $3a,'?',0 + dc.b $01,'!',0 + dc.b $ff + even + +rawmap ds.b 128 ;unshifted chars +shiftmap ds.b 128 ;shifted chars + +chatout ds.b 32 +chatoutput dc 0 +chatoutget dc 0 + +chatin ds.b 32 +chatinput dc 0 +chatinget dc 0 + +shiftdown dc 0 ;shift key status + +rawkeyread ;a1=matrix! hi bit of keycode=1 if key up! + ; + move.l d2,-(a7) + ; + moveq #0,d2 + move.b $bfec01,d2 + not.b d2 + ror.b #1,d2 + or.b #$40,$bfee01 + ; + move d2,d0 + move d2,d1 + and #7,d1 + lsr #3,d0 + bclr #4,d0 + bne.s .clrkey + ; +.setkey bset d1,0(a1,d0) ;key on! + movem d0-d1,keyoff + ; + ;OK, key down... + move chatok(pc),d0 + beq.s .skip + lea rawmap(pc),a0 + move.b $60>>3(a1),d0 + and #7,d0 + beq.s .unshft + lea shiftmap(pc),a0 +.unshft move.b 0(a0,d2),d0 ;asc! + beq.s .skip + ; + ;ok, add to chat out buffer! + ; + lea chatout(pc),a0 + move chatoutput(pc),d1 + and #31,d1 + move.b d0,0(a0,d1) + addq #1,chatoutput + ; + bra.s .skip + ; +.clrkey bclr d1,0(a1,d0) + ; +.skip moveq #6,d0 ;wait 6 scanlines? + moveq #-1,d1 +.loop move d1,d2 +.loop2 move.l $dff004,d1 + lsr.l #8,d1 + and #$1ff,d1 + cmp d2,d1 + beq.s .loop2 + dbf d0,.loop + ; + and.b #$bf,$bfee01 + ; + move.l (a7)+,d2 + rts + +rawtable dc.l rawmatrix +rawstuff dc.l 0,0 +ciaa dc.l 0 +ciaaname dc.b 'ciaa.resource',0 + even +rawmatrix dc.l 0,0,0,0 ;128 key bits + +savefile ;a0=name, a1=mem, d0=length + push + ; + movem.l d0/a0-a1,-(a7) + ; + move.l dosbase,a6 + move.l a0,d1 + move.l #1006,d2 + jsr -30(a6) + move.l d0,d7 + bne.s .ok + ; + sub.l a0,a0 + bsr makeiff + bsr showiff + lea wpmess,a4 + lea iffwindow,a6 + bsr initmenu + bsr dispon + ; +.help bsr vwait + ; + movem.l (a7),d0/a0-a1 + move.l dosbase,a6 + move.l a0,d1 + move.l #1006,d2 + jsr -30(a6) + move.l d0,d7 + beq.s .help + ; + move.l d7,-(a7) + bsr dispoff + bsr finitmenu + move.l (a7)+,d7 + ; +.ok move.l d7,d1 + movem.l (a7)+,d0/a0-a1 + move.l a1,d2 + move.l d0,d3 + jsr -48(a6) + ; + move.l d7,d1 + jsr -36(a6) + ; +.done pull + rts + +wpmess dc.b 1 + dc.b 'please write enable the gloom data disk!',0 + even + +fileheader ds.b 14 +loadmem dc.l 0 + +loadfileabs move.l a1,loadmem + bra.s loadfile_ + +loadfile clr.l loadmem + ; +loadfile_ ;a0=name, d1=memtype + ; + ;decrunch file if nec. + ; + ;return d0=pointer + ; + push + ; + move.l d1,d5 ;save memtype + move.l dosbase,a6 + ; + move.l a0,d1 + move.l #1005,d2 + jsr -30(a6) ;open it! + move.l d0,d7 ;handle + beq .err + ; + move.l d7,d1 + moveq #0,d2 + moveq #1,d3 + jsr -66(a6) ;seek to end + ; + move.l d7,d1 + moveq #0,d2 + moveq #-1,d3 ;seek to start + jsr -66(a6) + ; + move.l d0,d4 ;length=prev filepos + ; + move.l d7,d1 + move.l #fileheader,d2 + moveq #14,d3 + jsr -42(a6) ;read! + ; + move.l d0,-(a7) ;how many bytes read! + ; + move.l d7,d1 + moveq #0,d2 + moveq #-1,d3 ;back to start + jsr -66(a6) + ; + cmp.l #14,(a7)+ + bcs.s .nocrunch + ; + moveq #0,d6 + move.l fileheader(pc),d0 + cmp.l #'CrM2',d0 + beq.s .crunch + cmp.l #'CrM!',d0 + bne.s .nocrunch + ; +.crunch cmp.l fileheader+6(pc),d4 ;loadlen>destlen? + bcc.s .skip + move.l fileheader+6(pc),d4 ;length to allocate +.skip ; + moveq #14,d6 + add fileheader+4(pc),d6 + bsr loadit + move.l d0,a0 ;src + add.l d6,d0 ;dest + move.l d0,a1 + jsr decrm+32 + pull + rts +.nocrunch ; + bsr loadit + ; +.err pull + rts + +loadit ;d4=length to alloc/read, d5=memtype + ;seek to start, load, close and return base in d0. + ; + move.l loadmem(pc),d0 + bne.s .noalloc + ; + move.l d4,d0 + move.l d5,d1 + move.l d6,d2 ;offset XS + allocmem2 loadfile + sub.l d6,d0 +.noalloc ; + move.l d7,d1 + move.l d0,d2 + move.l d4,d3 ;read len + jsr -42(a6) ;read + move.l d7,d1 + jsr -36(a6) ;close + move.l d2,d0 + ; + rts + +andtable dc $ffff,0 ;rgb and, brightness add...wht + dc $ff00,8 ;red + +makepalettes ; + ;make wht and red pals + ; + ;create pointers... + ; + lea palettes(pc),a0 + move.l map_rgbs(pc),d0 + lea palettesw(pc),a1 + move.l map_rgbsw(pc),d1 + lea palettesr(pc),a2 + move.l map_rgbsr(pc),d2 + ; + moveq #15,d7 + ; +.loop move.l (a0)+,d3 + sub.l d0,d3 ;offset! + move.l d3,d4 + add.l d1,d3 + move.l d3,(a1)+ + add.l d2,d4 + move.l d4,(a2)+ + ; + dbf d7,.loop + ; + move.l map_rgbsend(pc),d7 + sub.l map_rgbs(pc),d7 ;how many bytes! + lsr #1,d7 + subq #1,d7 ;words! + ; + move.l map_rgbsw(pc),a1 + move #$ffff,d1 ;col and + move #0,d2 ;gamma + bsr makeapal + ; + move.l map_rgbsr(pc),a1 + move #$ff00,d1 + moveq #16,d2 + bsr makeapal + ; + rts + +makeapal move.l map_rgbs(pc),a0 + ; +.loop move (a0)+,d4 ;src colour...find briteness + ; + move d4,d5 + move d4,d6 + and #$f00,d4 + lsr #8,d4 + and #$0f0,d5 + lsr #4,d5 + and #$00f,d6 + add d6,d5 + add d5,d4 + add d2,d4 + cmp #16*3,d4 + bcs.s .bok + moveq #16*3-1,d4 +.bok ext.l d4 + divu #3,d4 ;(r+g+b)/3=briteness! + ; + move d4,d5 + move d4,d6 + lsl #8,d4 + lsl #4,d5 + or d6,d5 + or d5,d4 ;RGB + and d1,d4 + ; + move d4,(a1)+ + ; + cmp.l map_rgbsend(pc),a0 + bcs.s .loop + ; + rts + +calcpalettes ;OK, our palette currently runs from: + ; + ;map_rgbs + ; to + ;map_rgbsat + ; + ;append brightness versions... + ; + lea palettes(pc),a2 + move.l map_rgbs(pc),(a2)+ ;first brightness! + move.l map_rgbsat(pc),a1 ;first brightness! + move.l a1,a3 + moveq #1,d0 ;rgb subtract + ; +.loop move.l map_rgbs(pc),a0 + move.l a1,(a2)+ + ; +.loop2 move (a0)+,d1 + move d1,d2 + move d1,d3 + ; + and #$f00,d1 + lsr #8,d1 + sub d0,d1 + bpl.s .rok + moveq #0,d1 +.rok ; + and #$f0,d2 + lsr #4,d2 + sub d0,d2 + bpl.s .gok + moveq #0,d2 +.gok ; + and #$0f,d3 + sub d0,d3 + bpl.s .bok + moveq #0,d3 +.bok ; + lsl #8,d1 + lsl #4,d2 + or d3,d2 + or d2,d1 + or #$8000,d1 + ; + move d1,(a1)+ + cmp.l a3,a0 + bcs.s .loop2 + ; + addq #1,d0 + cmp #16,d0 + bcs.s .loop + ; + move.l a1,map_rgbsend + ; + rts + +map_rgbsend dc.l 0 + +dispoff tst dispnest + bne.s .skip + bsr vwait + move #$01a0,$dff096 ;bp/cop/spr off! +.skip addq #1,dispnest + rts + +dispon subq #1,dispnest + bgt.s .skip + bsr vwait + move.l coplist(pc),$dff080 + move #0,$dff088 + move #$8080,$dff096 ;cop on! + move #0,$dff088 +.skip rts + +forbid push + moveq #49,d0 +.fl bsr vwait + dbf d0,.fl + bsr ownblitter + move.l 4.w,a6 + jsr -132(a6) + move #$8400,$dff096 ;bltnasty! + pull + rts + +permit push + move.l 4.w,a6 + jsr -138(a6) + bsr disownblitter + pull + rts + +initvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -168(a6) ;addintserver + pull + rts + +vbcounter dc 0 +framecnt dc 0 + +frame dc 0,0 + +vbintserver dc.l 0,0 + dc.b 2,0 + dc.l 0 +vbintdata dc.l vbcounter +vbintcode dc.l vbhandler + +rbfintserver dc.l 0,0 + dc.b 2,0 + dc.l 0 +rbfintdata dc.l rbuff +rbfintcode dc.l rbf + +finitvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -174(a6) + pull + rts + +ownblitter push + move.l grbase,a6 + jsr -456(a6) + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + pull + rts + +disownblitter push + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + move.l grbase,a6 + jsr -462(a6) + pull + rts + +makecoloffs push + ; + lea coloffs,a0 + moveq #2,d0 + moveq #3,d2 +.loop addq.l #4,d0 + moveq #31,d1 +.loop2 move.l d0,(a0)+ + addq.l #4,d0 + dbf d1,.loop2 + dbf d2,.loop + ; + pull + rts + +grname dc.b 'graphics.library',0 + even +grbase dc.l 0 +oldview dc.l 0 +dosname dc.b 'dos.library',0 + even +dosbase dc.l 0 + +calcbpos ;also: calc qstripbot, con0poke... + ; + move window1+wi_h,d0 + add d0,d0 + ext.l d0 + add.l qstrip(pc),d0 + move.l d0,qstripbot + ; + move #$100,con0poke + move floorflag(pc),d0 + and roofflag(pc),d0 + bne.s .cp + move #$9f0,con0poke ;one of them is cop strip! +.cp ; + move window1+wi_y,d0 + subq #4,d0 + move d0,minbpos + tst twowins + beq.s .p1 + ; + move window2+wi_y,d0 + add window2+wi_bh,d0 + addq #4,d0 + move d0,maxbpos + rts + ; +.p1 move window1+wi_y,d0 + add window1+wi_bh,d0 + addq #4,d0 + move d0,maxbpos + ; + rts + +showwindow ;a0=window + ; + push + ; + ;poke bitmaps... + move.l wi_slice(a0),a1 + move.l (a1),a1 + move.l wi_bmap(a0),d0 + moveq #6,d1 ;7 bitplanes +.loop move d0,6(a1) + swap d0 + move d0,2(a1) + swap d0 + add.l #40,d0 + addq #8,a1 + dbf d1,.loop + ; + ;create DIW + ; + move.l wi_slice(a0),a1 + move.l (a1),a1 + ; + move wi_y(a0),d0 + move d0,d1 + add wi_bh(a0),d1 + lsl #8,d0 + or #$81,d0 + move d0,56+2(a1) + lsl #8,d1 + or #$c1,d1 + move d1,56+6(a1) + ; + ;create wait! + ; + move wi_y(a0),d0 + subq #3,d0 + move.b d0,64(a1) + ; + ;create link to next! + move.l wi_nslice(a0),a1 + move.l (a1),d0 + move.l wi_cop1(a0),a1 + add.l wi_copmem(a0),a1 + move.l wi_cop2(a0),a2 + add.l wi_copmem(a0),a2 + move d0,-6(a1) + move d0,-6(a2) + swap d0 + move d0,-10(a1) + move d0,-10(a2) + ; + pull + ; +showwindowq ;display coplist + ; + move.l wi_cop(a0),d0 + move.l wi_slice(a0),a0 + move.l (a0),a0 + ; + move d0,72+6(a0) + swap d0 + move d0,72+2(a0) + ; + rts + +finitdisplay push + ; + move.l grbase,a6 + move.l oldview,a1 + jsr -222(a6) ;load view + jsr -270(a6) + jsr -270(a6) + move.l 38(a6),$dff080 + move #$81a0,$dff096 + move #0,$dff088 + ; + pull + rts + +chatmap dc.l 0 + +initdisplay push + ; + lea grname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,grbase + ; + move.l d0,a6 + move.l 34(a6),oldview + sub.l a1,a1 + jsr -222(a6) ;loadview + ; + move.l #copinitf-copinit,d0 + moveq #2,d1 + allocmem copinit + move.l d0,coplist + ; + move.l d0,a1 + lea copinit,a0 + lea copinitf,a2 + ; +.loop cmp.l a2,a0 + bcc.s .done + move.l (a0)+,(a1)+ + bra.s .loop +.done ; + add.l #sl1-copinit,d0 + move.l d0,slice1 + add.l #sl2-sl1,d0 + move.l d0,slice2 + add.l #cstop-sl2,d0 + move.l d0,copstop + ; + move.l copstop,d0 + move.l slice1,a0 + move.l slice2,a1 + ; + move d0,72+6(a0) + move d0,72+6(a1) + swap d0 + move d0,72+2(a0) + move d0,72+2(a1) + ; + move.l #80*2*5,d0 + moveq #2,d1 + allocmem chatplanes + move.l d0,chatmap + ; + move d0,chatplanes+6 + swap d0 + move d0,chatplanes+2 + swap d0 + add.l #80,d0 + move d0,chatplanes+14 + swap d0 + move d0,chatplanes+10 + ; + bsr chatoff + ; + jsr -270(a6) + jsr -270(a6) + move.l coplist,$dff080 + move #0,$dff088 + ; + pull + rts + +allocwbmap move wi_w(a2),d0 + mulu wi_pw(a2),d0 + move d0,wi_bw(a2) + ; + move wi_h(a2),d0 + mulu wi_ph(a2),d0 + move d0,wi_bh(a2) + ; + mulu #40*7,d0 + ; + move.l #$10002,d1 + move.l d0,wi_bmapmem(a2) + allocmem wi_bmap + move.l d0,wi_bmap(a2) + ; + move.l #40*7*7,d0 + moveq #2,d1 + allocmem wi_strip + move.l d0,wi_strip(a2) + ; + rts + +windowiff ;draw iff into window! + ; + move.l wi_iff(a2),a0 + cmp.l #1,a0 + bne.s .do + rts + ; +.do move.l wi_bmap(a2),a1 + ; + move 2(a0),d1 + cmp #240,d1 + bcs.s .skip + move #240,d1 +.skip move #120,d2 + lsr #1,d1 + sub d1,d2 + mulu #7*40,d2 + add.l d2,a1 + ; +decodeiff ;for 40 columns... + ; + ;a0=trimmed IFF file, + ;a1=destination bitmap... + ; + move.l a2,-(a7) + moveq #40,d7 + ; + move (a0)+,d0 ;pixel width + lsr #3,d0 ;to byte width + move (a0)+,d1 ;pixel height + cmp #240,d1 + bls.s .hok + move #240,d1 +.hok subq #1,d1 ;to dbf + move (a0)+,d2 ;depth + subq #1,d2 ;to dbf + addq #6,a0 ;skip header + ; +.loop5 move d2,d5 ;depth + ; +.loop4 move.l a1,a2 + move d0,d4 ;how many bytes in line + ; +.loop moveq #0,d3 + move.b (a0)+,d3 + bmi.s .repeat + sub d3,d4 +.loop3 move.b (a0)+,(a2)+ + dbf d3,.loop3 + bra.s .skip + ; +.repeat cmp.b #-128,d3 + beq.s .loop + neg.b d3 + sub d3,d4 +.loop2 move.b (a0),(a2)+ + dbf d3,.loop2 + addq #1,a0 +.skip subq #1,d4 + bgt.s .loop + ; + add d7,a1 + dbf d5,.loop4 + dbf d1,.loop5 + ; + move.l (a7)+,a2 + rts + +plotwbmap ;OK, plot colours on bitmap! + ; + move.l wi_iff(a2),d0 + bne windowiff + ; + move.l wi_bmap(a2),a0 + move wi_x(a2),d0 + move d0,d1 + lsr #3,d0 + not d1 + and #7,d1 + moveq #127,d7 ;colour + move wi_w(a2),d6 ;width + subq #1,d6 + ; +.wloop move wi_pw(a2),d5 + subq #1,d5 + ; +.wloop2 move d7,d4 + moveq #6,d3 + ; +.dloop bclr d1,0(a0,d0) + lsr #1,d4 + bcc.s .dskip + bset d1,0(a0,d0) +.dskip lea 40(a0),a0 + dbf d3,.dloop + ; + lea -40*7(a0),a0 + subq #1,d1 + bpl.s .dskip2 + moveq #7,d1 + addq #1,d0 +.dskip2 dbf d5,.wloop2 + ; + subq #1,d7 + dbf d6,.wloop + ; + move wi_bh(a2),d0 ;how many to copy + subq #1,d0 + bsr wcopy + ; + move.l wi_bmap(a2),a0 + move.l wi_strip(a2),a1 + move wi_bh(a2),d0 + lsr #2,d0 + mulu #7*40,d0 + add.l d0,a0 + move #7*7*10-1,d2 + ; +.loop move.l (a0)+,(a1)+ + dbf d2,.loop + ; + rts + +wcopy ;copy top scanline to next d0 scanlines + ; + move.l wi_bmap(a2),a0 + mulu #10*7,d0 + subq #1,d0 + lea 40*7(a0),a1 +.cbloop move.l (a0)+,(a1)+ + dbf d0,.cbloop + ; + rts + +freewindow ;window in a0 + ; + push + move.l a0,a2 + move.l wi_bmap(a2),d0 + beq.s .no1 + clr.l wi_bmap(a2) + move.l d0,a1 + freemem wi_bmap +.no1 move.l wi_strip(a2),d0 + beq.s .no2 + clr.l wi_strip(a2) + move.l d0,a1 + freemem wi_strip +.no2 move.l wi_cop1(a2),d0 + beq.s .no3 + clr.l wi_cop1(a2) + move.l d0,a1 + freemem wi_cop +.no3 pull + rts + +makewindow ;make window + ; + ;a0=window struct! + ; + push + ; + move.l a0,a2 + ; + bsr allocwbmap + bsr plotwbmap + ; + tst.l wi_iff(a2) + beq wchunky + ; + ;make a palette coplist for the window + ; + ;to write 32 colours... + ;set bank, write hi nybs, set bank, write lo nybs... + ;=66 copins. + ;*4=264 total + ;+1 for final wait +3 for final copjump=268 + ; + move.l #268<<2,d0 + move.l d0,wi_copmem(a2) + moveq #2,d1 + allocmem wi_iffcop + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + move.l d0,wi_cop2(a2) + move.l d0,a0 ;dest + move.l wi_pal(a2),a1 ;palette! + ; + moveq #0,d0 ;bank + moveq #3,d3 ;something. + ; +.loop move #$106,(a0)+ + move d0,(a0)+ + move #$180,d1 + moveq #31,d2 +.hiloop move d1,(a0)+ + move (a1),(a0)+ + addq #4,a1 + addq #2,d1 + dbf d2,.hiloop + ; + lea -128+2(a1),a1 + move #$106,(a0)+ + bset #9,d0 + move d0,(a0)+ + bclr #9,d0 + move #$180,d1 + moveq #31,d2 +.loloop move d1,(a0)+ + move (a1),(a0)+ + addq #4,a1 + addq #2,d1 + dbf d2,.loloop + subq #2,a1 + ; + add #$2000,d0 ;next bank! + dbf d3,.loop + ; + move.l #$fffffffe,(a0)+ + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + pull + rts + ; +wchunky ;how many copins on one line? + ; + move wi_w(a2),d0 + move d0,d1 + subq #1,d0 + lsr #5,d0 ;how many bank changes per line! + addq #3,d0 ;1 waits - 1 eor, 1 init bank select + add d1,d0 ;+colpokes + ; + move d0,d1 + lsl #2,d1 + move d1,wi_copmod(a2) + ; + mulu wi_h(a2),d0 + addq #4,d0 ;1 wait and cop jump at end + ; + lsl.l #2,d0 ;4 bytes/copins + moveq #2,d1 ;cop in chip + move.l d0,wi_copmem(a2) + lsl.l #1,d0 ;2 coplists! + allocmem wi_chunkycop + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + ; + move.l d0,a0 + move wi_y(a2),d6 + move wi_h(a2),d7 + subq #1,d7 + move #$111,d3 ;test colour + move #$8000,d4 ;Colour Eor + ; +.hloop ;make one copline... + ; + moveq #127,d0 ;colour reg to poke + move wi_w(a2),d1 + subq #1,d1 + ; +.lloop move d0,d2 + addq #1,d2 + and #31,d2 + bne.s .notnbank + ; + ;new bank.... + move d0,d2 + sub #31,d2 + and #$ffe0,d2 + lsl #8,d2 + or d4,d2 ;eor bank + move #$106,(a0)+ ;bank select + move d2,(a0)+ + ; +.notnbank move d0,d2 + and #31,d2 + add d2,d2 + add #$180,d2 + move d2,(a0)+ ;colour poke + move d3,(a0)+ + add #$111,d3 + subq #1,d0 + dbf d1,.lloop + ; + bsr .makewait + ; + ;ok, now do EOR! + move #$10c,(a0)+ + move d4,(a0)+ + bchg #15,d4 + ; + dbf d7,.hloop + ; + bsr .makewait + ; + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + ; + ;OK, 1 list created...copy to other! + ; + move.l wi_cop1(a2),a0 + move.l a0,a1 + add.l wi_copmem(a2),a1 + move.l a1,wi_cop2(a2) + move.l a1,a3 + ; +.copycop move.l (a0)+,(a3)+ + cmp.l a1,a0 + bcs.s .copycop + ; + pull + rts + +.makewait ; + ;make wait ins. at pos d6 + ; + subq #1,d6 + move.b d6,(a0)+ + move.b #$e1,(a0)+ + move #$fffe,(a0)+ + addq #1,d6 + add wi_ph(a2),d6 + rts + +allocmem2_ ; + ;as below, but d2.l = extra mem at start to set aside + ; + push + moveq #16,d3 + add.l d2,d3 + bra.s amem_ + +allocmem_ ; + ;d0=size, d1=requirements, a0=text field + ; + ;set up node before allocmem for quick freemem: + ; + ;00.l : next + ;04.l : real size + ;08.l : offset to user mem (normally 16, but CM fucks things up) + ;12.l : pointer to text field for debugging + ; + push + moveq #16,d3 ;offset + ; +amem_ move.l a0,d4 + add.l d3,d0 + ; + move.l d0,d2 ;len + move.l a0,d4 ;text + move.l 4.w,a6 + jsr -198(a6) + tst.l d0 + bne.s .skip + ; + warn #$f00 + ; +.skip move.l d0,a0 + move.l memlist,(a0) ;next + move.l a0,memlist + movem.l d2-d4,4(a0) + add.l d3,a0 + move.l a0,d0 + ; + pull + rts + +freememlist push + ; +.more move.l memlist,d0 + beq.s .done + move.l d0,a2 + ; + ifne debugmem + move.l 12(a2),a0 ;text field + move.l a0,d2 + moveq #-1,d3 +.loop addq.l #1,d3 + tst.b (a0)+ + bne.s .loop + ; + move.l outhand,d1 + move.l dosbase,a6 + jsr -48(a6) + endc + ; + move.l a2,a1 + ; + move.l (a1),memlist + move.l 4(a1),d0 + move.l 4.w,a6 + jsr -210(a6) + bra.s .more + ; +.done pull + rts + +freemem_ ; + ;a1=address to free! + ; + push + ; + ifne debugmem + move.l a0,-(a7) ;error mess + elseif + endc + ; + move.l a1,a2 ;mem to find! + lea memlist(pc),a1 + ; +.more move.l a1,a0 ;prev + move.l (a1),d0 + beq.s .err + move.l d0,a1 + ; + move.l a1,a3 + add.l 8(a3),a3 + cmp.l a3,a2 + bne.s .more + ; + move.l (a1),(a0) + move.l 4(a1),d0 + move.l 4.w,a6 + jsr -210(a6) + bra.s .done + ; +.err warn #$ff0 + ifne debugmem + move.l (a7),freememerr + endc +.done ; + ifne debugmem + addq #4,a7 + endc + ; + pull + rts + +freememerr dc.l 0 + +initmap ;map address in map_map... + ;load in textures, do colour mapping etc. + ; + push + ; + move.l map_map,a0 + ; + move.l a0,a1 + add.l (a0),a1 + move.l a1,map_grid + ; + move.l a0,a1 + add.l 4(a0),a1 + move.l a1,map_poly + ; + move.l a0,a1 + add.l 8(a0),a1 + move.l a1,map_ppnt + ; + move.l a0,a1 + add.l 12(a0),a1 + move.l a1,map_anim + ; + move.l a0,a1 + add.l 16(a0),a1 + move.l a1,map_txts + ; + move.l (a0),d0 + sub.l #25*4,d0 + add.l a0,d0 + move.l d0,map_events + ; + move.l map_rgbsfrom2,map_rgbsat + ; + pull + rts + +freetxts lea textscrns,a6 + moveq #7,d7 +.loop move.l (a6)+,d0 + beq.s .skip + move.l d0,a1 + freemem freetxts + clr.l -4(a6) +.skip dbf d7,.loop + rts + +loadtxts push + ; + lea textures,a4 + move.l map_txts,a5 ;texture names + lea textscrns,a6 + moveq #7,d7 + ; +.ltl lea .temp(pc),a0 + ; +.ltl2 move.b (a5)+,(a0)+ + bne.s .ltl2 + moveq #0,d0 + cmp.l #.temp+1,a0 + beq.s .notext + lea .temp2(pc),a0 + moveq #1,d1 + jsr loadfile + ; +.notext move.l d0,(a6)+ ;texture! + beq.s .skip + ; + ;do colour mapping stuff! + ; + move.l d0,-(a7) + ; + move.l d0,a0 + add.l (a0),a0 + move.l a0,a2 + bsr addpal + ; + move.l (a7),a0 + addq #4,a0 + move.l a2,a1 + bsr remap + ; + move.l (a7)+,a0 + addq #4,a0 + moveq #19,d0 + move.l #64*65,d1 + ; +.mtxt move.l a0,(a4)+ + add.l d1,a0 + dbf d0,.mtxt +.skip ; + dbf d7,.ltl + ; + pull + rts + +.temp2 dc.b 'txts/' +.temp ds.b 64 + even + +remapanim ;a0=anim to remap... + ; + push + ; + move.l a0,a6 + movem (a6),d6-d7 + lsl d6,d7 ;how many frames! + subq #1,d7 + ; + move.l a6,a0 + add.l an_pal(a0),a0 + bsr addpal + ; + lea an_size(a6),a5 + ; +.loop move.l a6,a0 + add.l (a5)+,a0 ;start of shape + addq #4,a0 ;skip handles + movem (a0)+,d0-d1 ;w/h + mulu d1,d0 + lea 0(a0,d0.l),a1 ;end + bsr remap + ; + dbf d7,.loop + ; + pull + rts + +remap ;a0=start of byte data, a1=end of byte data + ; + push + ; + moveq #0,d0 + move.l maptable,a2 + ; +.loop cmp.l a1,a0 + bcc.s .done + move.b (a0),d0 + move.b 0(a2,d0),(a0)+ + bra.s .loop +.done ; + pull + rts + +addpal ;add palette in a0 to end of map_rgb + ; + push + ; + move (a0)+,d0 + subq #1,d0 + move.l map_rgbsat,a2 ;end of rgbs + move.l maptable,a3 + ; + clr.b (a3) ;0=0 + move.b #255,255(a3) ;-1=-1 + move.b #254,254(a3) ;-1=-1 + move.b #253,253(a3) ;-1=-1 + move.b #252,252(a3) ;-1=-1 + move.b #251,251(a3) ;-1=-1 + move.b #250,250(a3) ;-1=-1 + move.b #249,249(a3) ;-1=-1 + ; + moveq #1,d2 ;colour 1! + ; +.loop move (a0)+,d1 ;colour...does it exist? + bmi.s .next ;not used! + move.l map_rgbs,a1 + ; +.loop2 cmp.l a2,a1 + bcc.s .no + cmp (a1)+,d1 + beq.s .yes + bra.s .loop2 + ; +.no ;colour doesn't exist! + ;may have to do a 'near match' routine if we run out of colours + ; + move d1,(a2)+ + move.l a2,a1 + ; +.yes subq #2,a1 + sub.l map_rgbs,a1 + move.l a1,d1 + lsr #1,d1 ;real colour + ; + cmp #256,d1 + bcs.s .ok + ; + warn #$00f + ; +.ok move.b d1,0(a3,d2) + ; +.next addq #1,d2 + dbf d0,.loop + ; + move.l a2,map_rgbsat + ; + pull + rts + + ;coll types... + ; + ;1...bullet from player 1 + ;2...bullet from player 2 + ;4...bullet from monster + ;8...player 1 + ;16..player 2 + ; + + dc.l 0,player,tokens + ; +objlist ;list of objects to be freed... + ; + dc.l marine,baldy,terra,ghoul,demon,phantom + dc.l lizard,deathhead,dragon,0 + +player dc.l 0,0 ;main, chunks + dc.b 'objs/player',0,0 + even +tokens dc.l 0,0 + dc.b 'objs/tokens',0,0 + even +marine dc.l 0,0 + dc.b 'objs/marine',0,0 + even +baldy dc.l 0,0 + dc.b 'objs/baldy',0,0 + even +terra dc.l 0,0 + dc.b 'objs/terra',0,0 + even +ghoul dc.l 0,0 + dc.b 'objs/ghoul',0,0 + even +demon dc.l 0,0 + dc.b 'objs/demon',0,0 + even +phantom dc.l 0,0 + dc.b 'objs/phantom',0,0 + even +lizard dc.l 0,0 + dc.b 'objs/lizard',0,0 + even +deathhead dc.l 0,0 + dc.b 'objs/deathhead',0,0 + even +dragon dc.l 0,0 + dc.b 'objs/dragon',0,0 + even + +objinfo +player1_ dc.l player1 +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l $d0000 +_ob_shape dc.l player +.ob_logic dc.l playerlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l playerhit +.ob_die dc.l playerdie + ; +.ob_eyey dc -pl_eyey ;eye height +.ob_firey dc -pl_firey ;where bullets come from +.ob_gutsy dc -pl_gutsy +.ob_othery dc 0 +.ob_colltype dc 8 +p1_ob_collwith dc 6 ;6=combat, 4=game +p1_ob_cntrl dc 0 ;for player 0,1=joyport, 2=keys +.ob_damage dc 1 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 1 +.ob_range dc 1 +.ob_weapon dc 0 ;weapon type...0...25 +.ob_reload dc.b ireload,0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 ;4! +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +objinfof + +oilen equ objinfof-objinfo + +player2_ dc.l player2 +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l $d0000 +.ob_shape dc.l player +.ob_logic dc.l playerlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l playerhit +.ob_die dc.l playerdie +.ob_eyey dc -pl_eyey ;eye height +.ob_firey dc -pl_firey ;where bullets come from +.ob_gutsy dc -pl_gutsy +.ob_othery dc 0 +.ob_colltype dc 16 +p2_ob_collwith dc 5 ;5=combat, 4=game +p2_ob_cntrl dc 1 ;for player 0,1=joyport, 2=keys, 3=serial +.ob_damage dc 1 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 1 +.ob_range dc 1 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc.b ireload,0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 ;4! +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +health_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l healthgot +.ob_die dc.l healthgot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $30000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +weapon_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon2 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 1 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +thermo_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l thermogot +.ob_die dc.l thermogot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $10000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +infra_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l thermogot +.ob_die dc.l thermogot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $10000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +invisi_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l invisigot +.ob_die dc.l invisigot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $20000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +invinc_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l invincgot +.ob_die dc.l invincgot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $30000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +dragon_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l $c0000 +.ob_shape dc.l dragon +.ob_logic dc.l dragonlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l rts ;hurtngrunt +.ob_die dc.l blowdragon ;object +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 10 +.ob_hitpoints dc 100 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 16 +.ob_range dc 32 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $300 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +bouncy_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l bouncygot +.ob_die dc.l bouncygot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $60000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +marine_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $60000 +.ob_shape dc.l marine +.ob_logic dc.l monsterlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 1 +.ob_hitpoints dc 5 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 16 +.ob_range dc 32 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +baldy_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $40000 +.ob_shape dc.l baldy +.ob_logic dc.l baldylogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 2 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 3 +.ob_punchrate dc 4 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $220 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +terra_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $20000 +.ob_shape dc.l terra +.ob_logic dc.l terralogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtterra ;ngrunt +.ob_die dc.l blowterra +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 1 +.ob_hitpoints dc 35 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 32 +.ob_range dc 48 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_firerate dc 12 ;how often terra fires +.ob_bouncecnt dc 0 ;how many times +.ob_firecnt dc 5 +.ob_scale dc $280 +.ob_apad dc 0 +.ob_blood dc $fff ;color AND for blood +.ob_ypad dc 1 + +ghoul_ dc.l dummy +.ob_rotspeed dc.l $0 +.ob_movspeed dc.l $80000 +.ob_shape dc.l ghoul +.ob_logic dc.l ghoullogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtghoul +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -64 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 5 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l 0 +.ob_base dc 32 +.ob_range dc 48 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_firerate dc 12 ;how often terra fires +.ob_bouncecnt dc 0 ;how many times +.ob_firecnt dc 5 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $80f0 ;color AND for blood +.ob_ypad dc 1 + +phantom_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $a0000 +.ob_shape dc.l phantom +.ob_logic dc.l phantomlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 3 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $a000 +.ob_base dc 8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 7 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $280 +.ob_apad dc 0 +.ob_blood dc $ff0 ;color AND for blood +.ob_ypad dc 1 + +demon_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $70000 +.ob_shape dc.l demon +.ob_logic dc.l demonlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -90 ;where bullets come from +.ob_gutsy dc -72 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 5 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $7000 +.ob_base dc 32 +.ob_range dc 4 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $380 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +weapon1_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon1 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon2_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon2 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 1 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon3_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon3 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 2 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon4_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon4 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 3 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon5_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon5 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 4 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +lizard_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $60000 +.ob_shape dc.l lizard +.ob_logic dc.l lizardlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l lizhurt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 2 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 8 +.ob_range dc 8 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 2 +.ob_punchrate dc 3 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $240 +.ob_apad dc 0 +.ob_blood dc $f0f ;color AND for blood +.ob_ypad dc 1 + +deathhead_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l $c0000 +.ob_shape dc.l deathhead +.ob_logic dc.l deathheadlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtdeath +.ob_die dc.l blowdeath +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -96 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 3 +.ob_hitpoints dc 35 +.ob_think dc 0 +.ob_frame dc.l $8000 +.ob_framespeed dc.l $6000 +.ob_base dc -8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 10 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +abouttext dc.b 14 + dc.b 'GLOOM',0 + dc.b 0 + dc.b 'A BLACK MAGIC GAME',0 + dc.b 0 + dc.b 'PROGRAMMED BY MARK SIBLY',0 + dc.b 'GRAPHICS BY THE BUTLER BROTHERS',0 + dc.b 'MUSIC BY KEV STANNARD',0 + dc.b 'AUDIO BY US',0 + dc.b 'PRODUCED BY US',0 + dc.b 'DESIGNED BY US',0 + dc.b 'GAME CODED IN DEVPAC2',0 + dc.b 'UTILITIES CODED IN BLITZ BASIC 2',0 + dc.b 'RENDERED IN DPAINT3 AND DPAINT4',0 + dc.b 'DECRUNCHING CODE BY THOMAS SCHWARZ',0 + even + +sqrinc incbin sqr.bin + +weapon1 dc.l bullet1,sparks1 +weapon2 dc.l bullet2,sparks2 +weapon3 dc.l bullet3,sparks3 +weapon4 dc.l bullet4,sparks4 +weapon5 dc.l bullet5,sparks5 + +bullet1 incbin bullet1.bin +bullet2 incbin bullet2.bin +bullet3 incbin bullet3.bin +bullet4 incbin bullet4.bin +bullet5 incbin bullet5.bin + +sparks1 incbin sparks1.bin +sparks2 incbin sparks2.bin +sparks3 incbin sparks3.bin +sparks4 incbin sparks4.bin +sparks5 incbin sparks5.bin + +gloombrush incbin gloombrush + +gloom incbin title +gloompal incbin title.pal + +combat ;incbin combat +combatpal ;incbin combat.pal + +medplayer incbin medplay +decrm incbin decrm + +castrotsinc incbin castrots.bin +camrotsinc incbin camrots.bin ;256 +camrots2inc incbin camrots2.bin ;1024 +chatfont incbin chatfont.bin + +rgbs16 ds.l 16 +map_rgbs_ ds.w 256*16 diff --git a/gloom.s.okay b/gloom.s.okay new file mode 100644 index 0000000..d04d67e --- /dev/null +++ b/gloom.s.okay @@ -0,0 +1,10316 @@ + + ;********* + ;* GLOOM * + ;********* + ; + ;error codes + ; + ;red - allocmem failed + ;yel - freemem failed + ;orange - unknown script command + ;purp - unknown event command + ;cyn - can't open file in loadfile + ;blu - ran out of remap colours! + ; +debugser equ 0 +debugmem equ 0 +onedemo equ 0 +aga equ -1 + ; +maxobjects equ 256 ;max objects in game +maxdoors equ 16 ;max doors opening at once +maxblood equ 128 ;max droplets of bluuurd +maxgore equ 128 ;body parts on ground! +maxrotpolys equ 16 ;max rotating thingys. + ; +focshft equ 6 +grdshft equ 8 +darkshft equ 7 ;smaller=smaller range=faster! +maxz equ 16<>1 + ; +linemod equ 40*7 + + jmp entrypoint + + rsreset + ; + ;rotpoly details... + ; +rp_next rs.l 1 +rp_prev rs.l 1 + ; +rp_speed rs.w 1 +rp_rot rs.w 1 +rp_flags rs.w 1 ;what to do? + ; +rp_cx rs.w 1 ;only for rot +rp_cz rs.w 1 +rp_first rs.l 1 ;pointer to first! +rp_num rs.w 1 + ; +rp_vx rs.w 0 +rp_lx rs.w 1 +rp_vz rs.w 0 +rp_lz rs.w 1 +rp_ox rs.w 0 +rp_na rs.w 1 +rp_oz rs.w 0 +rp_nb rs.w 1 + ; +rp_more rs.b 8*15 ;=16 max verts! + ; +rp_size rs.b 0 + + rsreset + ; + ;sfx channel info + ; +fx_status rs.w 1 +fx_priority rs.w 1 +fx_sfx rs.l 1 +fx_vol rs.w 1 +fx_offset rs.w 1 +fx_dma rs.w 1 +fx_int rs.w 1 + ; +fx_size rs.b 0 + + rsreset + ; + ;blood! + ; +bl_next rs.l 1 +bl_prev rs.l 1 +bl_x rs.l 1 +bl_y rs.l 1 +bl_z rs.l 1 +bl_xvec rs.l 1 +bl_yvec rs.l 1 +bl_zvec rs.l 1 +bl_color rs.l 1 ;colour and! + ; +bl_size rs.b 0 + + rsreset + ; + ;a texture + ; +te_pal rs.l 1 + ; +te_size rs.b 0 + + rsreset + ; + ;an opening/closing door! + ; +do_next rs.l 1 +do_prev rs.l 1 +do_poly rs.l 1 ;door polygon +do_lx rs.w 1 +do_lz rs.w 1 +do_rx rs.w 1 +do_rz rs.w 1 +do_frac rs.w 1 +do_fracadd rs.w 1 + ; +do_size rs.b 0 + + rsreset + ; + ;wall list... + ; +wl_next rs.l 1 +wl_lsx rs.w 1 ;leftmost screen X +wl_rsx rs.w 1 ;rightmost screen X +wl_nz rs.w 1 ;near Z! +wl_fz rs.w 1 ;far Z! +wl_lx rs.w 1 +wl_lz rs.w 1 +wl_rx rs.w 1 +wl_rz rs.w 1 +wl_a rs.w 1 +wl_b rs.w 1 +wl_c rs.l 1 +wl_sc rs.w 1 +wl_open rs.w 1 ;0=door shut, $4000=open! +wl_t rs.b 8 ;textures + ; +wl_size rs.b 0 + + rsreset + ; + ;a zone... + ; +zo_done rs.w 1 +zo_lx rs.w 1 +zo_lz rs.w 1 +zo_rx rs.w 1 +zo_rz rs.w 1 + ; +zo_a rs.w 1 +zo_b rs.w 1 +zo_na rs.w 1 +zo_nb rs.w 1 +zo_ln rs.w 1 + ; +zo_t rs.b 8 ;8 textures + ; +zo_sc rs.w 1 ;scale (how many txts on wall) +zo_open rs.w 0 ;for wall polys... +zo_ev rs.w 1 ;for events... + ; +zo_size rs.b 0 ;32! + + rsreset + ; + ;a shape to draw! + ; +sh_next rs.l 1 +sh_prev rs.l 1 +sh_x rs.w 1 +sh_y rs.w 1 +sh_z rs.w 1 +sh_shape rs.l 1 +sh_scale rs.w 0 +sh_strip rs.l 1 + ; +sh_size rs.b 0 + + rsreset + ; + ;gore...body parts lying around! + ; +go_next rs.l 1 +go_prev rs.l 1 +go_x rs.w 1 +go_z rs.w 1 +go_shape rs.l 1 + ; +go_size rs.b 0 + + rsreset + ; + ;an object in the game (player/alien etc...) + ; +ob_next rs.l 1 +ob_prev rs.l 1 +ob_x rs.l 1 +ob_y rs.l 1 +ob_z rs.l 1 +ob_rot rs.l 1 + ; + ;start of info load by prog. +ob_info rs.b 0 + ; +ob_rotspeed rs.l 1 +ob_movspeed rs.l 1 +ob_shape rs.l 1 +ob_logic rs.l 1 +ob_render rs.l 1 +ob_hit rs.l 1 ;routine to do when damaged +ob_die rs.l 1 ;routine to do when killed +ob_eyey rs.w 1 ;eye height +ob_firey rs.w 1 ;where bullets come from +ob_gutsy rs.w 1 +ob_othery rs.w 1 +ob_colltype rs.w 1 +ob_collwith rs.w 1 +ob_cntrl rs.w 1 +ob_damage rs.w 1 +ob_hitpoints rs.w 1 +ob_think rs.w 1 +ob_frame rs.l 1 ;anim frame +ob_framespeed rs.l 1 ;anim frame +ob_base rs.w 1 +ob_range rs.w 1 +ob_weapon rs.w 1 ;weapon meter... +ob_wlevel rs.w 1 ;weapon type (0...4) +ob_hurtpause rs.w 1 +ob_firerate rs.w 0 +ob_punchrate rs.w 1 +ob_bouncecnt rs.w 1 ;how many times my bullets bounce! +ob_firecnt rs.w 0 +ob_something rs.w 1 +ob_scale rs.w 1 ;scale factor for drawing +ob_lastbut rs.w 1 +ob_blood rs.w 1 ;color AND for blood +ob_ypad rs.w 1 + ; +ob_oldlogic rs.l 1 +ob_oldlogic2 rs.l 1 +ob_oldhit rs.l 1 +ob_olddie rs.l 1 +ob_oldrot rs.w 1 +ob_newrot rs.w 1 +ob_yvec rs.l 1 +ob_xvec rs.l 1 +ob_zvec rs.l 1 +ob_radsq rs.l 1 ;radius squared +ob_rad rs.w 1 +ob_delay rs.w 1 +ob_delay2 rs.w 0 +ob_bounce rs.w 1 +ob_hurtwait rs.w 1 + ; +ob_washit rs.l 1 ;flag for un-hit coll detect! +ob_window rs.l 1 ;pointer back to window! +ob_nxvec rs.w 0 ;normalized X vec +ob_lives rs.w 1 +ob_nzvec rs.w 0 ;nomralized z vec +ob_infra rs.w 1 +ob_thermo rs.w 1 +ob_invisible rs.w 1 +ob_hyper rs.w 1 +ob_update rs.w 1 ;update stats! +ob_mess rs.l 1 ;message +ob_messlen rs.w 1 +ob_messtimer rs.w 1 ;timer for messages +ob_palette rs.l 1 ;palette for window +ob_paltimer rs.w 1 ;timer before back to normal +ob_pixsize rs.w 1 +ob_pixsizeadd rs.w 1 +ob_telex rs.w 1 +ob_telez rs.w 1 +ob_telerot rs.w 1 +ob_chunks rs.l 1 + ; +ob_size rs.b 0 + + rsreset + ; + ;solid wall draw data + ; +vd_z rs.w 1 ;current Z +vd_pal rs.w 1 ;palette# (0...15) +vd_y rs.w 1 +vd_h rs.w 1 +vd_data rs.l 1 +vd_ystep rs.l 1 + ; +vd_size rs.b 0 + + rsreset + ; + ;palette file... + ; +pa_numcols rs.w 1 ;how many colours +pa_cols rs.w 256 ;the colours! + + rsreset + ; + ;anim file... + ; +an_rotshft rs.w 1 +an_frames rs.w 1 +an_maxw rs.w 1 +an_maxh rs.w 1 +an_pal rs.l 1 + ; +an_size rs.b 0 + + rsreset + ; + ;window + ; +wi_slice rs.l 1 ;slice window appears in! +wi_nslice rs.l 1 ;next slice to disp. +wi_x rs 1 +wi_y rs 1 +wi_w rs 1 ;how many chixels across +wi_h rs 1 ;how many down +wi_pw rs 1 ;width of 1 chixel +wi_ph rs 1 ;hite of 1 chixel + ; +wi_bw rs 1 ;bitmap width +wi_bh rs 1 ;bitmap height + ; +wi_bmapmem rs.l 1 +wi_copmem rs.l 1 +wi_bmap rs.l 1 +wi_cop rs.l 1 +wi_cop1 rs.l 1 +wi_cop2 rs.l 1 +wi_copmod rs.w 1 + ; +wi_strip rs.l 1 +wi_iff rs.l 1 ;show iff instead! +wi_pal rs.l 1 ;palette for IFF! + ; +wi_size rs.b 0 + +key macro + btst #\1&7,\1>>3(a0) + endm + +qkey macro + move.l rawtable(pc),a0 + key \1 + endm + +freemem macro + ; + ifne debugmem + lea .fmem\@,a0 + jsr freemem_ + bra .fmemskip\@ +.fmem\@ dc.b '\1',0 + even +.fmemskip\@ ; + elseif + jsr freemem_ + endc + ; + endm + +allocmem macro + ; + ifne debugmem + ; + lea .amem\@,a0 + jsr allocmem_ + bra .amemskip\@ +.amem\@ dc.b '\1',10,0 + even +.amemskip\@ ; + elseif + ; + jsr allocmem_ + ; + endc + ; + endm + +allocmem2 macro + ; + ifne debugmem + ; + lea .amem\@,a0 + jsr allocmem2_ + bra .amemskip\@ +.amem\@ dc.b '\1',10,0 + even +.amemskip\@ ; + elseif + ; + jsr allocmem2_ + ; + endc + ; + endm + +alloclist macro ;alloclist listname,maxitems,itemsize + ; + move.l \2,d0 + move.l \3,d1 + lea \1(pc),a2 + jsr k_alloclist + bra.s alskip\@ + ; +\1 dc.l 0 ;0 +\1_last dc.l 0 ;4 + dc.l 0 ;8 +\1_free dc.l 0 ;12 +alskip\@ ; + endm + +k_alloclist ;a2=address of 'first' pointer + ;d0=max items, d1=item size + ; + move.l a2,8(a2) ;clear out used list + lea 4(a2),a0 + clr.l (a0) + move.l a0,(a2) + movem.l d0-d1,-(a7) + mulu d1,d0 + move.l #$10001,d1 + allocmem alloclist + move.l d0,a0 + lea 12(a2),a2 + movem.l (a7)+,d0-d1 + subq #1,d0 +.loop move.l a0,(a2) + move.l a0,a2 + add d1,a0 + dbf d0,.loop + rts + +addnext macro + ; + ;addnext 'listname' + ;add after a5 + ;return eq if none available else a0 + ; + move.l \1_free,d0 + beq.s .anskip\@ + move.l d0,a0 + move.l (a0),\1_free + move.l (a5),a1 + move.l a1,(a0) + move.l a0,4(a1) + move.l a0,(a5) + move.l a5,4(a0) +.anskip\@ ; + endm + +addfirst macro + ; + ;addfirst 'listname' + ;return eq if none available else a0 + ; + move.l \1_free,d0 + beq.s .afskip\@ + move.l d0,a0 + move.l (a0),\1_free + move.l \1,a1 ;current first + move.l a1,(a0) + move.l a0,4(a1) + move.l a0,\1 + move.l #\1,4(a0) +.afskip\@ ; + endm + +addlast macro + ; + ;addlast 'listname' + ;return eq in none available else a0 + ; + move.l \1_free,d0 + beq.s .alskip\@ + move.l d0,a0 + move.l (a0),\1_free + ; + move.l \1_last+4,a1 ;current last + move.l a0,(a1) + move.l a1,4(a0) + move.l a0,\1_last+4 + move.l #\1_last,(a0) +.alskip\@ ; + endm + +killitem macro + ; + ;killitem listname + ;a0=item to kill, return a0=previous item. + ; + move.l (a0),a1 ;next of me! + move.l 4(a0),4(a1) + move.l 4(a0),a1 ;prev of me + move.l (a0),(a1) + move.l \1_free,(a0) + move.l a0,\1_free + move.l a1,a0 + endm + +clearlist macro + ; + ;clearlist listname + ; +.clloop\@ move.l \1,a0 + tst.l (a0) + beq .cldone\@ + killitem \1 + bra .clloop\@ +.cldone\@ ; + endm + +zerolist macro listname,size of item + ; + ;fill all list items with 0! + ; + clearlist \1 +.zlloop\@ addlast \1 + beq .zlskip\@ + lea 8(a0),a1 + moveq #0,d0 + move #(\2-8)/2-1,d1 +.zlloop2\@ move d0,(a1)+ + dbf d1,.zlloop2\@ + bra .zlloop\@ +.zlskip\@ clearlist \1 + ; + endm + +bwait macro + ; +.bwait\@ btst #6,$dff002 + beq.s .bwait2\@ + bra.s .bwait\@ +.bwait2\@ ; + endm + +printlong macro + move.l \1,-(a7) + jsr printlong_ + endm + +check macro + list +check set *-\1 + nolist + endm + +push macro + movem.l d2-d7/a2-a6,-(a7) + endm + +pull macro + movem.l (a7)+,d2-d7/a2-a6 + endm + +col macro + move #0,$dff106 + move \1,$dff180 + endm + +warn macro + move d0,-(a7) + move #-1,d0 +.wloop\@ col \1 + dbf d0,.wloop\@ + move (a7)+,d0 + endm + +tempfile ds.b 64 + +entrypoint +cli ; + move.l a0,a2 + ; + lea dosname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,dosbase + ; + move.l d0,a6 + jsr -60(a6) + move.l d0,outhand + ; + clr.l map_test + cmp.b #'@',(a2)+ + bne.s main + lea tempfile,a0 + move.l a0,map_test +.loop move.b (a2)+,(a0) + beq.s main + cmp.b #10,(a0)+ + bne.s .loop + clr.b -(a0) +main ; + bsr bigfont + jsr initmain + ; +.intro move.l medat(pc),a1 + move.l titlemed(pc),a0 + jsr 8(a1) ;start title music! + ; +.intro2 jsr dointro ;returns gametype + cmp #3,gametype + bcs.s .play + move.l medat(pc),a1 + jsr 12(a1) + bra.s exittoos +.play ; + bsr initnewgame + tst gametype + bmi .intro2 + ; + bsr smallfont + bsr execscript_med + bsr bigfont + ; + bra .intro + ; +exittoos bsr freeobjlist2 + bsr permit + move.l rawstuff,a0 + bclr #0,$3d(a0) + bsr finitser + bsr finitsfx + bsr finitvbint + bsr finitdisplay + bsr freememlist + bsr undir + rts + +; ************* FAST SUBS ******************** + +fastsubs + +smallfont move #6,fontw + move #8,fonth + clr fontoff + rts + +bigfont move #8,fontw + move #10,fonth + move #51,fontoff + rts + +encodejoy ;a0=cntrl block to encode... + ;return d0 encoded + ; + ;bit: + ;0 = joyx -1 + ;1 = joyx 1 + ;2 = joyy -1 + ;3 = joyy 1 + ;4 = joyb true + ;5 = joyf true + ; + moveq #0,d0 + ; + tst (a0) + beq.s .skipx + bpl.s .x1 + bset #0,d0 + bra.s .skipx +.x1 bset #1,d0 +.skipx tst 2(a0) + beq.s .skipy + bpl.s .y1 + bset #2,d0 + bra.s .skipy +.y1 bset #3,d0 +.skipy tst 4(a0) + beq.s .skipb + bset #4,d0 +.skipb tst 6(a0) + beq.s .skipf + bset #5,d0 +.skipf ; + rts + +decodejoy ; + ;d0.b = encoded byte... + ;a0 = block to fill + ; + ;0 = joyx -1 + ;1 = joyx 1 + ;2 = joyy -1 + ;3 = joyy 1 + ;4 = joyb true + ;5 = joyf true + ; + clr (a0) + move d0,d1 + and #3,d1 + beq.s .skipx + cmp #1,d1 + bne.s .x1 + move #-1,(a0) + bra.s .skipx +.x1 move #1,(a0) +.skipx clr 2(a0) + move d0,d1 + and #12,d1 + beq.s .skipy + cmp #4,d1 + bne.s .y1 + move #-1,2(a0) + bra.s .skipy +.y1 move #1,2(a0) +.skipy btst #4,d0 + sne d1 + ext d1 + move d1,4(a0) + btst #5,d0 + sne d1 + ext d1 + move d1,6(a0) + ; + rts + +sfxs ; +sfx0 ds.b fx_size +sfx1 ds.b fx_size +sfx2 ds.b fx_size +sfx3 ds.b fx_size + +sfxintserver0 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx0 + dc.l sfxint + +sfxintserver1 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx1 + dc.l sfxint + +sfxintserver2 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx2 + dc.l sfxint + +sfxintserver3 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx3 + dc.l sfxint + +initsfx push + move.l 4.w,a6 + ; + moveq #7,d0 + lea sfxintserver0,a1 + jsr -162(a6) ;setintvector + ; + moveq #8,d0 + lea sfxintserver1,a1 + jsr -162(a6) + ; + moveq #9,d0 + lea sfxintserver2,a1 + jsr -162(a6) + ; + moveq #10,d0 + lea sfxintserver3,a1 + jsr -162(a6) + ; + lea sfxs(pc),a1 + move #$80,d0 + moveq #1,d1 + moveq #0,d2 + moveq #3,d3 +.loop bsr .init + lea fx_size(a1),a1 + dbf d3,.loop + ; + pull + rts + ; +.init clr fx_status(a1) + move d0,fx_int(a1) + move d1,fx_dma(a1) + move d2,fx_offset(a1) + add d0,d0 + add d1,d1 + add #16,d2 + rts + +finitsfx push + move.l 4.w,a6 + ; + moveq #7,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #8,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #9,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #10,d0 + sub.l a1,a1 + jsr -162(a6) + ; + pull + rts + +playsfx ;sfx file in a0, vol in d0, priority in d1 + ; + move #$4000,$dff09a + lea sfxs(pc),a1 + moveq #3,d2 +.loop tst fx_status(a1) + beq.s makesfx + lea fx_size(a1),a1 + dbf d2,.loop + ; + ;OK, none free...check priorities + ; + lea sfxs(pc),a1 + moveq #3,d2 +.loop2 cmp fx_priority(a1),d1 + bgt.s queuesfx + lea fx_size(a1),a1 + dbf d2,.loop2 + ; + ;no-can-do! + ; + move #$c000,$dff09a + rts + ; +queuesfx ;OK, turn off other and play US! + ; + move #1,fx_status(a1) + move d0,fx_vol(a1) + move d1,fx_priority(a1) + move.l a0,fx_sfx(a1) ;play me next! + ; + bsr sfxoff + ; + move #$c000,$dff09a + rts + +sfxoff lea $dff0a0,a2 + add fx_offset(a1),a2 + move.l chipzero(pc),(a2) + move #1,4(a2) ;len + move #0,8(a2) ;vol + move fx_int(a1),$dff09a + move fx_dma(a1),$dff096 + rts + +makesfx ;OK, play this SFX NOW! + ; + move d1,fx_priority(a1) + move d0,fx_vol(a1) + bsr playsfxnow + move #$c000,$dff09a + rts + +playsfxnow move #-2,fx_status(a1) + ; + lea $dff0a0,a2 + add fx_offset(a1),a2 + move (a0)+,6(a2) ;period + move (a0)+,4(a2) ;len + move fx_vol(a1),8(a2) ;vol + move.l a0,(a2) ;data + ; + move fx_dma(a1),d0 ;dma bits + or #$8000,d0 + move fx_int(a1),d1 ;int bits + move d1,d2 + or #$8000,d1 + ; + move d0,$dff096 ;dma on! + move d1,$dff09a ;int en + move d2,$dff09c ;intreq clr + ; + rts + +sfxint ;interupt for sfx! + ; + tst fx_status(a1) + bge.s .skip + addq #1,fx_status(a1) + blt.s .skip + ; + move.l a2,-(a7) + bsr sfxoff + move.l (a7)+,a2 + ; +.skip move fx_int(a1),$dff09c + moveq #0,d0 + rts + +sfxvbint movem.l d2-d3/a1-a2,-(a7) + lea sfxs(pc),a1 + moveq #3,d3 +.loop tst fx_status(a1) + ble.s .skip + ; + ;this one queued! gotta play it... + ; + subq #1,fx_status(a1) + bgt.s .skip + move.l fx_sfx(a1),a0 + bsr playsfxnow + ; +.skip lea fx_size(a1),a1 + dbf d3,.loop + ; + movem.l (a7)+,d2-d3/a1-a2 + rts + +dogamemenu ; + move #$0020,$dff09a + st paused + move framecnt(pc),-(a7) + move #$8020,$dff09a + ; + move.l player1,a5 + move.l ob_palette(a5),-(a7) + move.l #palettesw,ob_palette(a5) + move.l ob_window(a5),a2 + bsr plotwbmap + ; + tst twowins + beq .p1 + ; + move.l player2,a5 + move.l ob_palette(a5),-(a7) + move.l #palettesw,ob_palette(a5) + move.l ob_window(a5),a2 + bsr plotwbmap +.p1 ; + bsr drawall2 + ; + move.l player1,a5 + lea gamemenu,a4 + move.l ob_window(a5),a6 + jsr initmenu + ; +.loop bsr selmenu + beq .done + ; + subq #1,d0 + bne .notpsize + bsr newpsize + bra .loop + ; +.notpsize subq #1,d0 + bne .notwsize + bsr newwsize + bra .loop + ; +.notwsize subq #1,d0 + bne .notlwin + bsr largewin + bra .loop + ; +.notlwin subq #1,d0 + bne .notfloor + ; + addq #1,floorflag + cmp #2,floorflag + bne.s .fskip + move #-1,floorflag +.fskip bsr refresh + bra .loop + ; +.notfloor subq #1,d0 + bne .notroof + ; + addq #1,roofflag + cmp #2,roofflag + bne.s .rskip + move #-1,roofflag +.rskip bsr refresh + bra .loop +.notroof ; + ;MUST BE QUIT GAME! + ; + ;tst linked + ;beq.s .unlk + ;move.b #$80,d0 + ;bsr serput + ; +.unlk move #1,finished + ; +.done bsr finitmenu + ; + tst twowins + beq.s .p12 + ; + move.l player2,a5 + move.l (a7)+,ob_palette(a5) + move.l ob_window(a5),a2 + bsr plotwbmap + bsr initstats + bsr showstats +.p12 ; + move.l player1,a5 + move.l (a7)+,ob_palette(a5) + move.l ob_window(a5),a2 + bsr plotwbmap + bsr initstats + bsr showstats + ; + move #$0020,$dff09a + move (a7)+,framecnt + clr paused + move #$8020,$dff09a + ; + rts + +freewindows lea window1,a0 + bsr freewindow + tst twowins + beq.s .p1 + lea window2,a0 + bsr freewindow +.p1 rts + +largewin move.l player1,a5 + bsr large + tst twowins + beq refresh + move.l player2,a5 + bsr large + bra refresh + +large move.l ob_window(a5),a6 + move wi_pw(a6),d2 + ; + cmp #2,d2 + beq .lhr + ; + ;large lo-res window! + ; + move #324,d0 + move #240,d1 + bra thinkwin + ; +.lhr move #180,d0 + move #240,d1 + bra thinkwin + +newwsize ;window size stuff! + ; + move.l player1,a5 + bsr swapwsize + tst twowins + beq refresh + move.l player2,a5 + bsr swapwsize + bra refresh + +swapwsize ;increment window size! + ; + move.l ob_window(a5),a6 + movem wi_w(a6),d0-d1 ;w,h + move wi_pw(a6),d2 + mulu d2,d0 + mulu d2,d1 + cmp #2,d2 + beq .hr + ; + ;lo-res! + ; + cmp #318,d0 + bcs.s .inc + move #132,d0 + move d0,d1 + bra thinkwin +.inc add #24,d0 + move d0,d1 + cmp #240,d1 + bls thinkwin + move #240,d1 + bra thinkwin + ; +.hr cmp #180,d0 + bcs.s .inc2 + tst twowins + bne .min + add #18,d1 + cmp #240,d1 + bls thinkwin +.min move #132,d0 + move d0,d1 + bra thinkwin +.inc2 add #24,d0 + move d0,d1 + ; +thinkwin move #180,d3 ;max width! + cmp #2,d2 + beq .gmax + move #318,d3 +.gmax cmp d3,d0 + bls .nm + move d3,d0 +.nm ; + cmp #240,d1 + bls .n240 + move #240,d1 +.n240 tst twowins + beq.s .ggt + move #120,d1 +.ggt ; + move #160,d3 + move d0,d4 + lsr #1,d4 + sub d4,d3 ;wi_x + move d3,wi_x(a6) + ; + ext.l d0 + divu d2,d0 + move d0,wi_w(a6) + ; + tst twowins + bne.s .skip3 + ; + move #166,d3 + move d1,d4 + lsr #1,d4 + sub d4,d3 + move d3,wi_y(a6) + ; +.skip3 ext.l d1 + divu d2,d1 + move d1,wi_h(a6) + ; + rts + +newpsize ;toggle pixel size between 2 and 3 + ; + ;copy windows to temp so we can free 'em up later + ; + move.l player1,a5 + bsr swappsize + tst twowins + beq refresh + move.l player2,a5 + bsr swappsize + ; +refresh bsr dispoff + bsr finitmenu + ; + bsr freewindows + bsr putwindow + bsr calcbpos + ; + lea window1,a0 + bsr makewindow + lea window1,a0 + bsr showwindow + ; + tst twowins + beq.s .p1 + ; + lea window2,a0 + bsr makewindow + lea window2,a0 + bsr showwindow + ; +.p1 lea gamemenu,a4 + lea window1,a6 + jsr initmenu2 + ; + bsr drawall2 + bsr dispon + rts + +swappsize move.l ob_window(a5),a6 + movem wi_w(a6),d0-d1 ;w,h + move wi_pw(a6),d2 + mulu d2,d0 + mulu d2,d1 + eor #1,d2 ;2,3... + move d2,wi_pw(a6) + move d2,wi_ph(a6) + ; + bra thinkwin + +drawall2 bsr drawall + bsr drawall +.wait tst showflag + bne.s .wait + rts + +drawall tst doneflag + beq.s drawall ;wait for updated! + clr doneflag + ; + move.l memory(pc),memat + move.l player1(pc),a5 + bsr calcscene + move.l player1(pc),a5 + bsr blitscene + move.l player1(pc),a5 + bsr drawscene + ; + move twowins(pc),d0 + beq.s .p1 + ; + move.l memory(pc),memat + move.l player2(pc),a5 + bsr calcscene + move.l player2(pc),a5 + bsr blitscene + move.l player2(pc),a5 + bsr drawscene + ; +.p1 st showflag + ; + rts + +resetplayer st ob_update(a5) + clr ob_thermo(a5) + clr ob_infra(a5) + clr ob_invisible(a5) + clr ob_messtimer(a5) + clr ob_pixsize(a5) + clr ob_pixsizeadd(a5) + move.l #palettes,ob_palette(a5) + rts + +calcwlevel moveq #0,d0 + move.b ob_weapon(a5),d0 + beq.s .wlg + subq #1,d0 + divu #5,d0 + mulu #20,d0 + ;lsl #4,d0 +.wlg move d0,ob_wlevel(a5) + rts + +message ;print up a message...player in a5 + ; + move.l (a7),a0 ;return address=message! + move.l a0,ob_mess(a5) + ; + moveq #-1,d0 +.loop addq #1,d0 + tst.b (a0)+ + bne.s .loop + ; + move d0,ob_messlen(a5) + move #-127,ob_messtimer(a5) + ; + move.l a0,d0 + addq.l #1,d0 + and #$fffe,d0 + move.l d0,(a7) + rts + +pdelay dc 0 ;non zero=wait between prints + +printmess ;a5=object + ; + move.l ob_window(a5),a6 + move.l ob_mess(a5),a4 + move ob_messlen(a5),d0 + move wi_bh(a6),d6 + lsr #2,d6 ;Y + ; +printmess2 ;a6=window, a4=message, d0=length of message, d6=Y + ; + move fontw(pc),d2 + lsr #1,d2 + mulu d2,d0 + move #160,d7 + sub d0,d7 ;X + ; +.loop2 move.b (a4)+,d2 + beq.s .done + cmp.b #' ',d2 + beq.s .spc + cmp.b #'0',d2 + bcs.s .nnum + cmp.b #'9',d2 + bhi.s .nnum + sub.b #'0',d2 + ext d2 + bra.s .here +.nnum cmp.b #'!',d2 + bne.s .notex + moveq #65+26,d2 + bra.s .notfs +.notex cmp.b #'.',d2 + bne.s .notfs + moveq #65+27,d2 +.notfs and #31,d2 + add #17,d2 +.here add fontoff(pc),d2 + move.l font(pc),a0 + move.l wi_bmap(a6),a1 + move d7,d0 + move d6,d1 + bsr blit + ; + move pdelay(pc),d2 + subq #1,d2 + bmi.s .spc + ; +.pdloop bsr vwait + bsr checkany + beq.s .none + move #-1,pdelay + moveq #0,d2 +.none dbf d2,.pdloop + ; +.spc add fontw(pc),d7 + bra.s .loop2 +.done ; + rts + +initstats ; + ;health... + move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #2,d1 + moveq #10,d2 + bsr blit + ; + ;weapon... + move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #10,d1 + moveq #11,d2 + bsr blit + ; + rts + +putstrip ;a0=window + ; + move.l wi_bmap(a0),a1 + move wi_bh(a0),d0 + lsr #2,d0 + mulu #7*40,d0 + add.l d0,a1 ;dest + move.l wi_strip(a0),a0 ;src + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l #$9f00000,$dff040 + move.l #-1,$dff044 + move #0,$dff064 + move #0,$dff066 + move.l a0,$dff050 + move.l a1,$dff054 + move #(7*7)<<6+20,$dff058 + rts + +loff dc 0 + +showstats ;a5=player + ; + moveq #2,d5 + move ob_hitpoints(a5),d6 + clr loff + bsr showlevel + ; + moveq #10,d5 + move ob_weapon(a5),d6 + lsr #8,d6 + move #51,loff + bsr showlevel + ; + cmp #2,gametype + bne.s .lives + ; + movem wins1(pc),d6-d7 + cmp.l player1,a5 + beq.s .skip + exg d6,d7 +.skip sub d7,d6 + ble.s .rts + ; + subq #1,d6 + move.l ob_window(a5),a0 + move wi_bw(a0),d7 + subq #2,d7 + ; +.loop subq #6,d7 + move d7,d0 + move.l ob_window(a5),a0 + add wi_x(a0),d0 + moveq #2,d1 + moveq #50,d2 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + bsr blit + dbf d6,.loop + ; +.rts rts + ; +.lives ;show how many lives + move ob_lives(a5),d6 ;how many lives! + beq.s .nolives + ; + move.l ob_window(a5),a0 + move wi_bw(a0),d7 + subq #2,d7 + subq #1,d6 + ; +.lloop subq #6,d7 + move d7,d0 + move.l ob_window(a5),a0 + add wi_x(a0),d0 + moveq #2,d1 + moveq #50,d2 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + bsr blit + dbf d6,.lloop + ; +.nolives rts + +showlevel moveq #47,d7 + ext.l d6 + divu #5,d6 + subq #1,d6 + bmi.s .skip + ; +.loop moveq #12,d2 + bsr drawh2 + dbf d6,.loop +.skip ; + swap d6 + tst d6 + beq.s .rest + moveq #17,d2 + sub d6,d2 + bsr drawh2 + ; +.rest cmp #47+6*5,d7 + bcc.s .hdone + moveq #17,d2 + bsr drawh2 + bra.s .rest +.hdone ; + rts + +drawh2 add loff(pc),d2 + ; +drawh move.l ob_window(a5),a0 + move d7,d0 + move d5,d1 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + addq #6,d7 + ; +blit ;a0=shapetable to blit, a1=bitmap, d0=X, d1=Y, d2=char + ; + add.l 4(a0,d2*4),a0 + ; + mulu #280,d1 + add.l d1,a1 + move d0,d2 + asr #3,d2 + add d2,a1 ;dest! + move.l a0,a2 + add.l (a0),a2 + lea 8(a0),a3 + addq #4,a0 + and #15,d0 + ror #4,d0 + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l a2,$dff050 + move.l a3,$dff04c + move.l a1,$dff048 + move.l a1,$dff054 + ; + move d0,$dff042 + or #$fca,d0 + move d0,$dff040 + move.l #$ffff0000,$dff044 + moveq #-2,d0 + move d0,$dff064 + move d0,$dff062 + moveq #38,d0 + sub (a0)+,d0 + move d0,$dff060 + move d0,$dff066 + move (a0)+,$dff058 + ; + rts + +pixsize dc 0 ;pixel size...at least 2! + +pixelate ;pixel out the coplist! + ; + move pixsize(pc),d1 ;x/y add + ; + ;pixel out vertically, then horizontally + ; + move.l cop(pc),a0 + lea coloffs(pc),a1 + moveq #0,d2 ;x + move d1,d6 + lsr #1,d6 +.forx ; + move.l a0,a3 + lea 0(a1,d2*4),a2 + add.l (a2),a3 + ; + move d2,d5 + add d6,d5 + cmp width(pc),d5 + ble.s .xok + move width(pc),d5 +.xok sub d2,d5 + ble .done + subq #1,d5 + ; +.loop2 moveq #0,d3 + move.l a3,a4 + move.l a0,a5 + add.l (a2)+,a5 + move d1,d7 + lsr #1,d7 ;first Y add +.fory ; + move (a4),d0 ;start column! + move d3,d4 + add d7,d4 + cmp hite(pc),d4 + ble.s .yok + move hite(pc),d4 +.yok sub d3,d4 + ble .nextx + subq #1,d4 + ; +.loop move d0,(a5) + add copmod(pc),a4 + add copmod(pc),a5 + ; + dbf d4,.loop + ; +.nexty add d7,d3 + move d1,d7 + bra.s .fory + ; +.nextx dbf d5,.loop2 + ; + add d6,d2 + move d1,d6 + bra.s .forx + ; +.done rts + +makeqstrip ; + ;do a simple roof/floor strip for blitter to wack in... + ; + cmp #$100,con0poke + bne.s .doit + rts + ; +.doit move.l qstrip(pc),a0 + move.l darktable(pc),a1 + move.l palette(pc),a2 + move.l qstripbot(pc),a4 + moveq #0,d2 + ; + move floorflag(pc),d0 + bne.s .fdone + ; + move camy(pc),d0 + neg d0 + ext.l d0 + lsl.l #focshft,d0 + ; + move.b qcols+1(pc),d2 + move.l qstripbot(pc),a4 + move maxy(pc),d1 + ; +.floop subq #1,d1 + beq.s .fdone + ; + move.l d0,d3 + divs d1,d3 + cmp #maxz,d3 + bcc .fdone + ; + move 0(a1,d3*2),d3 ;darkness (0...15) + move.l 0(a2,d3*4),a3 ;pal to use + move 0(a3,d2*2),-(a4) ;colour! + ; + bra.s .floop + ; +.fdone move roofflag(pc),d0 + bne.s .rdone + ; + move #-256,d0 + sub camy(pc),d0 + ext.l d0 + lsl.l #focshft,d0 ;cam Y + ; + move.b qcols(pc),d2 + ; + move miny(pc),d1 ;SY + ; +.rloop beq.s .rdone + ; + move.l d0,d3 + divs d1,d3 + cmp #maxz,d3 + bcc .rdone + ; + move 0(a1,d3*2),d3 ;darkness (0...15) + move.l 0(a2,d3*4),a3 ;pal to use + move 0(a3,d2*2),(a0)+ ;colour! + ; + addq #1,d1 + bra.s .rloop +.rdone ; + moveq #0,d0 +.loop cmp.l a4,a0 + bcc.s .done + move.l d0,(a0)+ + bra.s .loop + ; +.done rts + +flatcam dc.l 0 +flatyadd dc 0 +flatyadd2 dc 0 + +flat ; + ;do flat above/below panel! + ; + ;d0=Y pos of flat + ;d1=Screen Y add + ;d7=first screen Y (miny or maxy-1) + ; + ;a0=panel to draw on! + ; + ext.l d0 + lsl.l #focshft,d0 + move.l d0,flatcam + ; + move d1,flatyadd + muls copmod(pc),d1 + move d1,flatyadd2 + ; + move d7,d0 + add midy(pc),d0 + mulu copmod(pc),d0 + add.l cop(pc),d0 + add.l coloffs(pc),d0 + move.l d0,a2 +.vloop ; + ;find Z on this scanline... + ; + tst d7 + beq .rts + move.l flatcam(pc),d6 + divs d7,d6 ;d6.w = Z + cmp #maxz,d6 + bcc .rts + ; + move.l darktable(pc),a5 + move 0(a5,d6*2),d5 + move.l palette(pc),a5 + move.l 0(a5,d5*4),a5 + ; + ;Find leftmost X... + ; + move minx(pc),d5 + muls d6,d5 + asr.l #focshft,d5 + ; + move maxx(pc),d4 + muls d6,d4 + asr.l #focshft,d4 + ; + ;rotate X1,Z around camera... + ; + move d5,d0 + move d6,d1 + ; + move d0,d2 + move d1,d3 + ; + muls icm1(pc),d0 + add.l d0,d0 + muls icm2(pc),d3 + add.l d3,d3 + add.l d3,d0 + ; + muls icm3(pc),d2 + add.l d2,d2 + muls icm4(pc),d1 + add.l d1,d1 + add.l d2,d1 + ; + ;d0,d1.q = rotated x1,z + ; + ;rotate X2,Z around camera... + ; + move d4,d2 + move d6,d3 + ; + muls icm1(pc),d4 + add.l d4,d4 + muls icm2(pc),d3 + add.l d3,d3 + add.l d3,d4 + ; + muls icm3(pc),d2 + add.l d2,d2 + muls icm4(pc),d6 + add.l d6,d6 + add.l d2,d6 + ; + ;d4,d6.q = rotated x2,z + ; + move width(pc),d5 + ext.l d5 + sub.l d0,d4 ;Xadd + divs.l d5,d4 + sub.l d1,d6 ;Zadd + divs.l d5,d6 + ; + ;d0,d1.q=x,z + ;d4,d6.q=xadd,zadd + ; + swap d0 + add camx(pc),d0 + swap d1 + add camz(pc),d1 + swap d4 + swap d6 + ; + move d7,-(a7) + moveq #127,d7 + moveq #0,d2 + moveq #0,d3 + ; + move.l a2,a3 + ; + move wdiv32(pc),-(a7) + ; +.hloop2 moveq #31,d5 + ; +.hloop tst (a3) ;check destination! + bne.s .skip + ; + and d7,d0 + and d7,d1 ;X/Z for fetch! + move d0,d2 + lsl #7,d2 + lea 0(a0,d2),a6 + move.b 0(a6,d1),d3 + move 0(a5,d3*2),(a3) + ; +.skip add.l d4,d0 + addx d2,d0 + add.l d6,d1 + addx d2,d1 + addq #4,a3 + dbf d5,.hloop + ; + addq #4,a3 + subq #1,(a7) + bgt.s .hloop2 + bne.s .kl + ; + move wrem32(pc),d5 + bpl.s .hloop + ; +.kl move.l (a7)+,d7 + add flatyadd(pc),d7 + add flatyadd2(pc),a2 + bra .vloop + ; +.rts rts + +doanims move.l map_anim(pc),a0 + lea textures,a1 + ; +.loop move (a0)+,d0 ;how many frames + beq.s .done + movem (a0)+,d1-d2 ;first, delay + subq #1,(a0)+ + bgt.s .loop + move d2,-2(a0) + lea 0(a1,d1*4),a2 + ; + ;do the anim! + ; + subq #2,d0 + move.l (a2),d2 +.loop2 move.l 4(a2),(a2)+ + dbf d0,.loop2 + move.l d2,(a2) + bra.s .loop + ; +.done rts + +dorots ; + move.l camrots2(pc),a6 + lea rotpolys(pc),a5 ;header! + ; +rotloop move.l (a5),a5 + tst.l (a5) + beq .done + move rp_speed(a5),d0 + beq.s rotloop + ; + add d0,rp_rot(a5) + move rp_rot(a5),d0 + ; + move.l rp_first(a5),a2 ;first + move rp_num(a5),d5 + subq #1,d5 + move d5,d4 + lsl #5,d4 + lea 0(a2,d4),a1 ;previous + lea rp_lx(a5),a3 + ; + btst #0,rp_flags+1(a5) + bne.s morph + ; +.rot movem rp_cx(a5),d6-d7 ;centre x,z + and #1023,d0 + lea 0(a6,d0*8),a4 ;rotation matrix. + ; +.loop bsr rotter + add d6,d0 + add d7,d1 + movem d0-d1,zo_lx(a2) + movem d0-d1,zo_rx(a1) + bsr rotter + movem d0-d1,zo_na(a2) + exg d0,d1 + neg d0 + movem d0-d1,zo_a(a2) + move.l a2,a1 + lea 32(a2),a2 + dbf d5,.loop + ; + bra rotloop + ; +.done rts + ; +morph tst d0 + bgt.s .dp + moveq #0,d0 +.neg neg rp_speed(a5) + bra.s .skip2 +.dp cmp #$4000,d0 + blt.s .skip + move #$4000,d0 + btst #1,rp_flags+1(a5) + bne.s .neg + clr rp_speed(a5) +.skip2 move d0,rp_rot(a5) +.skip ; + move d0,d4 + movem.l a2/d5,-(a7) ;for calculating norms! + ; +.loop movem (a3)+,d0-d3 + muls d4,d0 + lsl.l #2,d0 + swap d0 + add d2,d0 + muls d4,d1 + lsl.l #2,d1 + swap d1 + add d3,d1 + movem d0-d1,zo_lx(a2) + movem d0-d1,zo_rx(a1) + move.l a2,a1 + lea 32(a2),a2 + dbf d5,.loop + ; + movem.l (a7)+,a2/d5 + ; +.loop2 move zo_rx(a2),d0 + sub zo_lx(a2),d0 + move zo_rz(a2),d1 + sub zo_lz(a2),d1 + bsr calcnormvec + movem d0-d1,zo_na(a2) + exg d0,d1 + neg d0 + movem d0-d1,zo_a(a2) + lea 32(a2),a2 + dbf d5,.loop2 + ; + bra rotloop + +calcnormvec ;d0,d1 = vector...normalize! + ; + ;OK, find vector length! + ; + move d0,d2 + muls d2,d2 + move d1,d3 + muls d3,d3 + add.l d3,d2 + ; + ;OK, sqr of d2.l! + ; + move.l #$10000,d3 + ; +.fitit cmp.l #16384,d2 ;fits? + bcs.s .ok + asr.l #1,d2 + mulu.l #92681,d4:d3 ;mult by sqr(2) + move d4,d3 + swap d3 + bra.s .fitit + ; +.ok ;OK to look up, but multiply the result.w by d3.q + ; + move.l sqr(pc),a0 + and #$fffe,d2 + movem 0(a0,d2),d2 ;sqr.l! + mulu.l d3,d2 + swap d2 ;length.w + ; + ;length should be >= both abs(xvec) AND abs(zvec) + ; + move d0,d3 + bpl.s .xp + neg d3 +.xp move d1,d4 + bpl.s .zp + neg d4 +.zp ; + cmp d4,d3 + bcc.s .bg + exg d3,d4 +.bg ; + cmp d3,d2 + bcc.s .lo + move d3,d2 +.lo ; + ext.l d2 + ; + swap d0 + clr d0 + divs.l d2,d0 + muls.l #32766,d0 + swap d0 + ; + swap d1 + clr d1 + divs.l d2,d1 + muls.l #32766,d1 + swap d1 + rts + +rotter movem (a3)+,d0-d1 ;this x,z + move d0,d2 + move d1,d3 + ; + muls (a4),d0 + muls 2(a4),d3 + add.l d3,d0 + add.l d0,d0 + swap d0 ;new x! + ; + muls 4(a4),d2 + muls 6(a4),d1 + add.l d2,d1 + add.l d1,d1 + swap d1 + ; + rts + +dodoors lea doors(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + move.l do_poly(a5),a0 + move do_fracadd(a5),d0 + add d0,do_frac(a5) + move do_frac(a5),d0 + move d0,d1 + add d1,d1 + move d1,zo_open(a0) ;copy frac + ; + move do_rx(a5),d1 + sub do_lx(a5),d1 ;width + move d1,d2 + muls d0,d2 + lsl.l #2,d2 + swap d2 + move do_lx(a5),d3 + sub d2,d3 + move d3,zo_lx(a0) + add d1,d3 + move d3,zo_rx(a0) + ; + move do_rz(a5),d1 + sub do_lz(a5),d1 + move d1,d2 + muls d0,d2 + lsl.l #2,d2 + swap d2 + move do_lz(a5),d3 + sub d2,d3 + move d3,zo_lz(a0) + add d1,d3 + move d3,zo_rz(a0) + ; + tst d0 + beq.s .kill + cmp #$4000,d0 + bne.s .loop + ; +.kill move.l a5,a0 + killitem doors + move.l a0,a5 + bra .loop + ; +.done rts + +doorsfxflag dc 0 + +execevent ;d0=event number to execute...1,2... + ; + sf doorsfxflag + move.l map_map(pc),a6 + move.l map_events(pc),a0 + ; + ifne aga + add.l 0(a0,d0*4),a6 + elseif + lsl #2,d0 + add.l 0(a0,d0),a6 + endc + ; +exec_loop move (a6)+,d0 + beq.s .rts + subq #1,d0 + beq exec_addobj ;1 - add an object (alien etc) + subq #1,d0 + beq exec_opendoor ;2 - open a door + subq #1,d0 + beq exec_teleport ;3 - teleport + subq #1,d0 + beq exec_loadobjs ;4 - load objects + subq #1,d0 + beq exec_changetxt ;5 - change texture + subq #1,d0 + beq exec_rotpolys ;6 - start polygons rotating! + ; + warn #$f0f + ; +.rts tst doorsfxflag + beq.s .nodoor + clr doorsfxflag + move.l doorsfx(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx +.nodoor rts + +exec_changetxt ; + move (a6)+,d0 ;zone# + move.l map_poly(pc),a1 + lsl #5,d0 + lea 0(a1,d0),a1 ;polygon to change + ; + move (a6)+,d0 ;new texture + move.b d0,zo_t(a1) + bra exec_loop + +exec_opendoor st doorsfxflag + addlast doors ;a0=new door + ; + move (a6)+,d0 ;door # + move.l map_poly(pc),a1 + lsl #5,d0 + lea 0(a1,d0),a1 ;polygon to open! + ; + ;calc lx add, lz add, rx add, rz add + ; + move.l a1,do_poly(a0) + move.l zo_lx(a1),do_lx(a0) + move.l zo_rx(a1),do_rx(a0) + clr do_frac(a0) + move #$100,do_fracadd(a0) + bra exec_loop + +exec_teleport move.l eventobj(pc),a0 + ; + move (a6)+,ob_telex(a0) + addq #2,a6 + move (a6)+,ob_telez(a0) + move (a6)+,ob_telerot(a0) + ; + move #4,ob_pixsizeadd(a0) + ; + bsr dotelesfx + ; + bra exec_loop + +dotelesfx move.l telesfx(pc),a0 + moveq #64,d0 + moveq #10,d1 + bra playsfx + +exec_loadobjs ; +.loop move (a6)+,d0 + bmi .done + bsr loadanobj + bra.s .loop +.done ; + bra exec_loop + +loadanobj ;d0=object#...sys must be permitted + ; + lea objinfo,a2 + mulu #objinfof-objinfo,d0 + move.l _ob_shape-objinfo(a2,d0),a2 + lea 8(a2),a3 ;filename + ; + tst.l (a2) + bne.s .skip + move.l a3,a0 + moveq #1,d1 + bsr loadfile + move.l d0,(a2) + beq.s .skip + move.l d0,a0 + bsr remapanim +.skip ; + tst.l 4(a2) + bne.s .rts + move.l a3,a0 +.loop tst.b (a3)+ + bne.s .loop + move.b #'2',-(a3) + moveq #1,d1 + bsr loadfile + clr.b (a3) + move.l d0,4(a2) + beq.s .rts + move.l d0,a0 + bsr remapanim + ; +.rts rts + +exec_rotpolys ; + ;could also be morphpolys depending on bit 0 of flags! + ; + addlast rotpolys + bne.s .ok + addq #8,a6 + bra exec_loop + ; +.ok movem (a6)+,d0-d3 ;polynum,count,speed,flags + ; + clr rp_rot(a0) + move d1,rp_num(a0) + move d2,rp_speed(a0) + move d3,rp_flags(a0) + move d1,d5 + subq #1,d5 + move.l map_poly(pc),a2 ;polygons! + lsl #5,d0 + add d0,a2 + move.l a2,rp_first(a0) + ; + btst #0,d3 + beq .rot + ; + ;OK, prepare for morph + ; + lsl #5,d1 + lea 0(a2,d1),a3 + lea rp_vx(a0),a1 + ; +.loop movem zo_lx(a3),d0-d1 + movem zo_lx(a2),d2-d3 + sub d2,d0 + sub d3,d1 + movem d0-d3,(a1) + addq #8,a1 + ; + lea 32(a2),a2 + lea 32(a3),a3 + dbf d5,.loop + ; + bra exec_loop + ; +.rot ;First, calc centre X,Z into d6,d7 + ; + moveq #0,d6 + moveq #0,d7 + move.l a2,a1 + ; +.loop0 movem zo_lx(a1),d0/d2 + add.l d0,d6 + add.l d2,d7 + lea 32(a1),a1 + dbf d5,.loop0 + ; + divu d1,d6 + divu d1,d7 + movem d6-d7,rp_cx(a0) + ; + lea rp_lx(a0),a1 + subq #1,d1 + ; +.loop2 movem zo_lx(a2),d0/d2 + sub d6,d0 + move d0,(a1)+ + sub d7,d2 + move d2,(a1)+ + move.l zo_na(a2),(a1)+ + ; + lea 32(a2),a2 + dbf d1,.loop2 + ; + bra exec_loop + +exec_addobj clr.l dummy + move (a6)+,d0 ;monster type + lea objinfo,a2 + mulu #objinfof-objinfo,d0 + add.l d0,a2 + move.l (a2)+,a3 + tst.l (a3) + beq.s .ok +.no addq #8,a6 + bra exec_loop +.ok cmp #2,-2(a6) ;player? + bcc.s .notp + addfirst objects + bra.s .bum +.notp addlast objects +.bum beq.s .no + move.l a0,a5 + ; + move.l a5,(a3) + ; + move (a6)+,ob_x(a5) + move (a6)+,ob_y(a5) + move (a6)+,ob_z(a5) + move (a6)+,ob_rot(a5) + ; + lea ob_info(a5),a3 + move #(objinfof-objinfo-4)>>1-1,d0 +.loop move (a2)+,(a3)+ + dbf d0,.loop + ; + bsr calcvecs + movem.l d4-d5,ob_xvec(a5) + ; + move.l ob_shape(a5),a0 + move.l 4(a0),ob_chunks(a5) + move.l (a0),a0 + move.l a0,ob_shape(a5) + ; + move an_maxw(a0),d0 + move d0,ob_rad(a5) + mulu d0,d0 + move.l d0,ob_radsq(a5) + ; + clr.l ob_washit(a5) + ; + bsr rnddelay + ; + bra exec_loop + +rnddelay move ob_range(a5),d0 + bsr rndn + add ob_base(a5),d0 + move d0,ob_delay(a5) + ; + rts + +seedrnd ;seed number in d0.w + ; + moveq #54,d1 + lea rndtable(pc),a0 + ; +.loop move d0,(a0)+ + mulu #$1efd,d0 + add #$dff,d0 + dbf d1,.loop + ; + move.l a0,k_index + move.l #rndtable+48,j_index + rts + +rndw ;return rnd number 0...65535 if d0.w + ; + movem.l a0/a1,-(a7) + lea rndtable(pc),a1 + move.l j_index(pc),a0 + move -(a0),d0 + cmp.l a0,a1 + bne.s .skip + lea rndtable+110(pc),a0 +.skip move.l a0,j_index + move.l k_index(pc),a0 + add -(a0),d0 + move d0,(a0) + cmp.l a0,a1 + bne.s .skip2 + lea rndtable+110(pc),a0 +.skip2 move.l a0,k_index + movem.l (a7)+,a0/a1 + rts + +savernd lea rndtable(pc),a0 + lea rndback(pc),a1 + moveq #(rndtablef-rndtable)/2-1,d0 +.loop move (a0)+,(a1)+ + dbf d0,.loop + rts + +loadrnd lea rndback(pc),a0 + lea rndtable(pc),a1 + moveq #(rndtablef-rndtable)/2-1,d0 +.loop move (a0)+,(a1)+ + dbf d0,.loop + rts + +rndtable ds.w 55 +k_index dc.l 0 +j_index dc.l 0 +rndtablef + +rndback ds.b rndtablef-rndtable + +rndl bsr rndw + move d0,d1 + bsr rndw + swap d0 + move d1,d0 + rts + +rndn move d0,d1 + bsr rndw + mulu d1,d0 + swap d0 + rts + +calcangle2 ;angle of camera to object in a5 + ; + move camx(pc),d0 + sub ob_x(a5),d0 + move camz(pc),d1 + sub ob_z(a5),d1 + bra.s calcangle_ + +calcangle ;angle of object a5 to object a0... + ; + move ob_x(a0),d0 + sub ob_x(a5),d0 + move ob_z(a0),d1 + sub ob_z(a5),d1 + ; +calcangle_ ;d0.w=x d1.w=y (dest-src)! + ; + moveq #0,d2 + tst d1 + bpl.s .hpos + moveq #16,d2 + neg d1 +.hpos tst d0 + bpl.s .wpos + eor #8,d2 + neg d0 +.wpos cmp d1,d0 + bmi.s .notsteep + bne.s .neq + move #$2000,d1 + bra.s .flow +.neq eor #4,d2 + exg d1,d0 +.notsteep tst d1 + bne.s .noflow + moveq #0,d1 + bra.s .flow +.noflow ext.l d0 + swap d0 + divu d1,d0 + lsr #6,d0 + and #1022,d0 + move .arc(pc,d0),d1 +.flow move.l .oct(pc,d2),d0 + eor d0,d1 + swap d0 + add d1,d0 + lsr #8,d0 + rts + ; +.oct dc 0,0,$4000,-1,0,-1,$c000,0 + dc $8000,-1,$4000,0,$8000,0,$c000,-1 +.arc incbin arc.bin + +currplayer dc.l 0 + +calcscene ;a5=player object + ; + move #$20,$dff09a + ; + move.l a5,currplayer + move.l ob_palette(a5),palette + move ob_thermo(a5),thermo + move ob_infra(a5),infra + move ob_pixsize(a5),pixsize + ; + clr.l shapelist + move.l a5,a0 + bsr calccamera + bsr makewalls + ; + lea objects(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq.s .done + cmp.l currplayer(pc),a5 + beq.s .loop + move.l ob_render(a5),a0 + jsr (a0) + bra.s .loop +.done ; + lea gore(pc),a5 + ; +.loop2 move.l (a5),a5 + tst.l (a5) + beq.s .done2 + ; + movem go_x(a5),d0/d2 + moveq #0,d1 + move.l go_shape(a5),a0 + move #$200,d7 + bsr drawshape_q + ; + bra.s .loop2 + ; +.done2 move #$8020,$dff09a + ; + rts + +blitscene bclr #7,ob_update(a5) + beq.s .noupdate + ; + bclr #7,ob_update+1(a5) + beq.s .stats + ; + move.l ob_window(a5),a2 + moveq #9,d0 + bsr wcopy + bsr initstats + ; +.stats bsr showstats + ; +.noupdate move ob_messtimer(a5),d0 + bpl.s .mskip + addq #1,d0 + beq.s .mdone + neg ob_messtimer(a5) + move.l ob_window(a5),a0 + bsr putstrip + bsr printmess + bra.s .mskip + ; +.mdone clr ob_messtimer(a5) + move.l ob_window(a5),a0 + bsr putstrip +.mskip ; + rts + +drawscene ;a5=player + ; +.wait tst showflag + bne.s .wait + ; + move.l ob_window(a5),a0 + bsr dbwindow + ; + bsr castwalls + bsr makeqstrip + bsr renderwalls + ; + move floorflag(pc),d0 + ble.s .nofloor + ; + move camy(pc),d0 + neg d0 + moveq #-1,d1 + move maxy(pc),d7 + subq #1,d7 + lea groundtile,a0 + bsr flat + ; +.nofloor move roofflag(pc),d0 + ble.s .noflat + ; + move #-255,d0 + sub camy(pc),d0 + moveq #1,d1 + move miny(pc),d7 + lea ceilingtile,a0 + bsr flat + ; +.noflat bsr drawshapes + bsr drawblood + ; + move.l currplayer(pc),a0 + move ob_pixsizeadd(a0),d0 + beq .done + add d0,ob_pixsize(a0) + move ob_pixsize(a0),d0 + beq .fin + cmp #24,d0 + bne .pix + ; + ;ok, big pixels + ; + move finished2(pc),finished + bne .pix + ; + move #$20,$dff09a + move ob_telex(a0),ob_x(a0) + move ob_telez(a0),ob_z(a0) + move ob_telerot(a0),ob_rot(a0) + neg ob_pixsizeadd(a0) + move #$8020,$dff09a + bra.s .pix + ; +.fin clr ob_pixsizeadd(a0) + ; +.pix move d0,pixsize + bsr pixelate + ; +.done rts + +vbhandler ; + subq #1,(a1)+ + addq #1,(a1) + ; + tst showflag + beq.s .noshow + ; + ;don't show if beam in the way! + ; + move.l $dff004,d0 + lsr.l #8,d0 ;beampos + and #$1ff,d0 + cmp minbpos(pc),d0 + bcs.s .ok + cmp maxbpos(pc),d0 + bcs.s .noshow + ; +.ok clr showflag + lea window1,a0 + bsr showwindowq + lea window2,a0 + bsr showwindowq + ; +.noshow bsr sfxvbint + ; + move fadevol(pc),d0 + beq.s .nofade + move.l medat(pc),a1 + sub #$80,fadevol + bgt.s .setvol + clr fadevol + jsr 12(a1) ;stop song + bra.s .nofade +.setvol move fadevol(pc),d0 + lsr #8,d0 + jsr 16(a1) ;set volume + ; +.nofade btst #0,framecnt+1 + beq rts + tst paused + bne exit_vb2 + ; + ;OK, movement/animation stuff! + ; + movem.l d0-d7/a0-a6,-(a7) + ; + bsr readjoys + bsr doanims + bsr dorots + bsr dodoors + bsr moveblood + ; + ifne debugser + ; + ;OK, kludge in a random number! + move framecnt(pc),d0 + and #126,d0 + bne.s .nornd + ; + bsr rndw + lea .rndasc(pc),a0 + moveq #3,d1 +.loop rol #4,d0 + move d0,d2 + and #15,d2 + add #48,d2 + cmp #58,d2 + bcs.s .rok + addq #7,d2 +.rok move.b d2,(a0)+ + dbf d1,.loop + ; + move.l player1(pc),a5 + bsr message +.rndasc dc.b 'aaaa',0 + even + ; + endc +.nornd ; + move.l a7,obj_stack + lea objects(pc),a5 + ; +obj_loop move.l (a5),a5 + tst.l (a5) + beq exit_vb + ; + move.l ob_logic(a5),a0 + jsr (a0) + ; + ;check collision! + ; + move ob_collwith(a5),d0 + beq.s obj_loop + ; + move ob_rad(a5),d1 + move ob_x(a5),d6 + move ob_z(a5),d7 + ; + lea objects(pc),a0 + ; +.loop2 move.l (a0),a0 + cmp.l a5,a0 + bne.s .this + ; + clr.l ob_washit(a5) ;not hit! can get hit next time... + bra obj_loop +.this ; + move ob_colltype(a0),d2 + and d0,d2 + beq.s .loop2 + ; + move ob_rad(a0),d2 + add d1,d2 ;r sum + ; + move ob_x(a0),d3 + sub d6,d3 + bpl.s .xpl + neg d3 +.xpl cmp d2,d3 + bcc.s .loop2 + ; + move ob_z(a0),d4 + sub d7,d4 + bpl.s .ypl + neg d4 +.ypl cmp d2,d4 + bcc.s .loop2 + ; + mulu d2,d2 + mulu d3,d3 + mulu d4,d4 + add.l d4,d3 + cmp.l d2,d3 + bcc.s .loop2 + ; + cmp.l ob_washit(a5),a0 + beq obj_loop + move.l a0,ob_washit(a5) + ; + move finished2(pc),d0 + bne obj_loop + ; + move.l #killobject3,killjsr + movem.l a0/a5,obj_a0 + exg.l a0,a5 + ; + move ob_damage(a0),d0 + move.l ob_hit(a5),a1 + sub d0,ob_hitpoints(a5) + bgt.s hit_skip + move.l ob_die(a5),a1 + ; +hit_skip jsr (a1) + ; +hit_ret move.l #killobject2,killjsr + movem.l obj_a0(pc),a0/a5 + ; + move ob_damage(a0),d0 + move.l ob_hit(a5),a1 + sub d0,ob_hitpoints(a5) + bgt.s hit_skip2 + move.l ob_die(a5),a1 + ; +hit_skip2 jsr (a1) + ; + bra obj_loop + ; +exit_vb movem.l (a7)+,d0-d7/a0-a6 +exit_vb2 st doneflag + moveq #0,d0 + ; +rts rts + +obj_a0 dc.l 0 +obj_a5 dc.l 0 +obj_stack dc.l 0 +killjsr dc.l killobject2 + +killobject ; + move.l killjsr(pc),a0 + jmp (a0) + +killobject2 move.l a5,a0 + killitem objects + move.l a0,a5 + move.l obj_stack(pc),a7 + bra obj_loop + +killobject3 move.l a5,a0 + killitem objects + move.l obj_stack(pc),a7 + bra hit_ret + +bloodspeed bsr rndw + ext.l d0 + lsl.l #2,d0 + rts + +bloodspeed2 bsr rndw + ext.l d0 + lsl.l #5,d0 + rts + +bloodspeed3 bsr rndw + ext.l d0 + lsl.l #4,d0 + rts + +makesparksq move.l ob_chunks(a5),a2 + ; +makesparks ;a2=sparks + ; + movem.l ob_x(a5),d2-d4 + move 2(a2),d5 + subq #1,d5 + ; +.loop addlast objects + beq .rts + movem.l d2-d4,ob_x(a0) + bsr bloodspeed2 + move.l d0,ob_xvec(a0) + bsr bloodspeed2 + move.l d0,ob_yvec(a0) + bsr bloodspeed2 + move.l d0,ob_zvec(a0) + move.l a2,ob_shape(a0) + move d5,ob_frame(a0) + move.l #sparkslogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + bsr rndw + and #15,d0 + add #15,d0 + move d0,ob_delay(a0) + dbf d5,.loop +.rts rts + +sparkslogic subq #1,ob_delay(a5) + ble killobject + movem.l ob_x(a5),d0-d2 + add.l ob_xvec(a5),d0 + add.l ob_yvec(a5),d1 + add.l ob_zvec(a5),d2 + movem.l d0-d2,ob_x(a5) + rts + +bloodymess ;throw random blood splots everywhere! + ; + bsr bloodspeed2 + add.l ob_x(a5),d0 + move.l d0,d2 + bsr bloodspeed2 + add.l ob_gutsy(a5),d0 + move.l d0,d3 + bsr bloodspeed2 + add.l ob_z(a5),d0 + move.l d0,d4 + ; +.loop addlast blood + beq.s .done + ; + movem.l d2-d4,bl_x(a0) + bsr bloodspeed + move.l d0,bl_xvec(a0) + bsr bloodspeed + move.l d0,bl_yvec(a0) + bsr bloodspeed + move.l d0,bl_zvec(a0) + move ob_blood(a5),bl_color(a0) + ; + dbf d7,.loop + ; +.done rts + +bloodymess2 ;throw random blood splots everywhere! + ; + bsr bloodspeed2 + add.l ob_x(a5),d0 + move.l d0,d2 + bsr bloodspeed2 + add.l ob_gutsy(a5),d0 + move.l d0,d3 + bsr bloodspeed2 + add.l ob_z(a5),d0 + move.l d0,d4 + ; +.loop addlast blood + beq.s .done + ; + movem.l d2-d4,bl_x(a0) + bsr bloodspeed3 + move.l d0,bl_xvec(a0) + bsr bloodspeed3 + move.l d0,bl_yvec(a0) + bsr bloodspeed3 + move.l d0,bl_zvec(a0) + move ob_blood(a5),bl_color(a0) + ; + dbf d7,.loop + ; +.done rts + +chunklogic move mode(pc),d0 + beq chunklogic2 + ; + add.l #$8000,ob_yvec(a5) + move.l ob_yvec(a5),d0 + add.l ob_y(a5),d0 + blt .skip + ; + ;OK...hit ground! + ; + bsr splat + addlast gore + bne.s .gok + ; + move.l gore(pc),a0 + killitem gore + addlast gore + beq killobject + ; +.gok move ob_x(a5),go_x(a0) + move ob_z(a5),go_z(a0) + move.l ob_shape(a5),a1 + move ob_frame(a5),d0 + add.l 12(a1,d0*4),a1 + move.l a1,go_shape(a0) + ; + bra killobject + ; +.skip move.l d0,ob_y(a5) + bsr checkvecs + beq.s .rts + clr.l ob_xvec(a5) + clr.l ob_zvec(a5) +.rts rts + +chunklogic2 add.l #$8000,ob_yvec(a5) + move.l ob_yvec(a5),d0 + add.l d0,ob_y(a5) + blt.s .ok + ;bsr splat + bra killobject +.ok movem.l ob_xvec(a5),d0-d1 + add.l d0,ob_x(a5) + add.l d1,ob_z(a5) + rts + +splat move.l splatsfx(pc),a0 + moveq #32,d0 + moveq #-1,d1 + bra playsfx + +blowobject move.l diesfx(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx + ; + moveq #31,d7 + bsr bloodymess2 + ; + move.l ob_chunks(a5),d0 + bne.s .chok + ; + moveq #15,d7 + bsr bloodymess2 + bra killobject + ; +.chok move.l d0,a4 + move 2(a4),d7 + subq #1,d7 + ; +.loop addlast objects + beq killobject + movem.l ob_x(a5),d0-d2 + move.l #-64<<16,d1 + movem.l d0-d2,ob_x(a0) + ; + bsr bloodspeed3 + move.l d0,ob_xvec(a0) + bsr bloodspeed3 + sub.l #$40000,d0 + move.l d0,ob_yvec(a0) + bsr bloodspeed3 + move.l d0,ob_zvec(a0) + ; + clr ob_colltype(a0) + clr ob_collwith(a0) + move.l #chunklogic,ob_logic(a0) + move.l a4,ob_shape(a0) + move.l #drawshape_1sc,ob_render(a0) + move d7,ob_frame(a0) + move ob_scale(a5),ob_scale(a0) + ; + move an_maxw(a4),d0 + move d0,ob_rad(a0) + mulu d0,d0 + move.l d0,ob_radsq(a0) + ; + dbf d7,.loop + bra killobject + +hurtghoul moveq #31,d7 + bsr bloodymess + rts + +hurtngrunt move.l a0,-(a7) + bsr rndw + and #3,d0 + cmp lastgrunt(pc),d0 + bne.s .new + addq #1,d0 + and #3,d0 +.new move d0,lastgrunt + lea grunttable(pc),a0 + move.l 0(a0,d0*4),a0 + move.l (a0),a0 + moveq #64,d0 + moveq #1,d1 + bsr playsfx + move.l (a7)+,a0 + ; +hurtobject move ob_colltype(a0),d0 + and #24,d0 + bne.s .rts + ; + moveq #23,d7 + bsr bloodymess + move ob_hurtpause(a5),ob_hurtwait(a5) + beq .rts + ; + move #4,ob_frame(a5) + move.l ob_logic(a5),ob_oldlogic2(a5) + move.l ob_hit(a5),ob_oldhit(a5) + move.l #pauselogic2,ob_logic(a5) + move.l #rts,ob_hit(a5) + ; +.rts rts + +pauselogic2 subq #1,ob_hurtwait(a5) + bgt.s .rts + clr ob_frame(a5) + move.l ob_oldlogic2(a5),ob_logic(a5) + move.l ob_oldhit(a5),ob_hit(a5) +.rts rts + +pauselogic subq #1,ob_delay(a5) + bgt.s .skip + ; + bsr rnddelay + move.l ob_oldlogic(a5),ob_logic(a5) + ; + ;if in front of player, continue on old course... + ; + bsr pickplayer + tst ob_invisible(a0) + bne.s .useold ;can't see player! no intelligence... + ; + bsr calcangle + move ob_rot(a0),d1 + and #255,d1 + sub d0,d1 + bpl.s .pl + neg d1 +.pl cmp #64,d1 + bcs.s .skip + cmp #192,d1 + bcc.s .skip + ; +.useold move ob_oldrot(a5),ob_rot(a5) + bsr calcvecs + ; +.skip rts + +shoot ; + ;fire off a bullet... + ; + ;d2 : colltype + ;d3 : collwith + ;d4 : hitpoints + ;d5 : damage + ;d6 : speed + ;a2=bullet shape + ;a3=sparks shape + ; + addfirst objects + beq .rts + ; + move ob_bouncecnt(a5),ob_bouncecnt(a0) + move ob_x(a5),ob_x(a0) + move ob_y(a5),d0 + add ob_firey(a5),d0 + move d0,ob_y(a0) + move ob_z(a5),ob_z(a0) + move.l #firelogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + move.l #rts,ob_hit(a0) + move.l #killobject,ob_die(a0) + move d2,ob_colltype(a0) + move d3,ob_collwith(a0) + move d4,ob_hitpoints(a0) + move d5,ob_damage(a0) + move d6,ob_movspeed(a0) + move.l a2,ob_shape(a0) + clr ob_frame(a0) + move.l a3,ob_chunks(a0) + ; + move ob_rot(a5),d0 + and #255,d0 + move.l camrots(pc),a1 + ; + ifne aga + lea 0(a1,d0*8),a1 + elseif + lsl #3,d0 + lea 0(a1,d0),a1 + endc + ; + move 2(a1),d0 + move d0,ob_nxvec(a0) + neg d0 + muls d6,d0 + add.l d0,d0 + move 6(a1),d1 + move d1,ob_nzvec(a0) + muls d6,d1 + add.l d1,d1 + ; + movem.l d0-d1,ob_xvec(a0) + add.l d0,ob_x(a0) + add.l d1,ob_z(a0) + ; + move #32,ob_rad(a0) + move.l #32*32,ob_radsq(a0) + ; +.rts rts + +fire1 bsr pickplayer + bsr calcangle + move d0,-(a7) + bsr rndw + tst ob_invisible(a0) + bne.s .inv + and #16,d0 + subq #8,d0 +.inv add (a7)+,d0 + and #255,d0 + move d0,ob_rot(a5) + bsr calcvecs + move #7,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #pauselogic,ob_logic(a5) + clr.l ob_frame(a5) + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #1,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet1,a2 + lea sparks1,a3 + ; + bsr shoot + ; + rts + +pickplayer ;pick nearest player + ; + move.l player1(pc),a0 + move gametype(pc),d0 + beq.s .rts + move.l player2(pc),a1 + move linked(pc),d0 + bpl.s .nosw + ; + exg a0,a1 +.nosw ; + tst ob_hitpoints(a0) + beq .sw + tst ob_hitpoints(a1) + beq.s .rts + ; + move ob_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move ob_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 ;dist to player a0 + ; + move ob_x(a5),d1 + sub ob_x(a1),d1 + muls d1,d1 + move ob_z(a5),d2 + sub ob_z(a1),d2 + muls d2,d2 + add.l d2,d1 ;dist to player a1 + ; + cmp.l d1,d0 + bcs.s .rts + ; +.sw move.l a1,a0 + ; +.rts rts + +checkcoll ;check for collision between a5, and a0 + ; + move ob_rad(a5),d1 + move ob_rad(a0),d2 + add d1,d2 ;r sum + ; + move ob_x(a0),d3 + sub ob_x(a5),d3 + bpl.s .xpl + neg d3 +.xpl cmp d2,d3 + bcc.s .no + ; + move ob_z(a0),d4 + sub ob_z(a5),d4 + bpl.s .ypl + neg d4 +.ypl cmp d2,d4 + bcc.s .no + ; + mulu d2,d2 + mulu d3,d3 + mulu d4,d4 + add.l d4,d3 + cmp.l d2,d3 + bcc.s .no + ; + moveq #-1,d0 + rts + ; +.no moveq #0,d0 + rts + +baldycharge ; + ;baldy charging at player! + ; + bsr checkvecs + beq baldy_skip + ; +baldy_tonorm move.l ob_movspeed(a5),d0 + lsr.l #2,d0 + move.l d0,ob_movspeed(a5) + ; + move.l ob_framespeed(a5),d0 + lsr.l #2,d0 + move.l d0,ob_framespeed(a5) + ; + move.l #baldylogic,ob_logic(a5) + bsr rnddelay + ; + bra monsterfix + ; +baldy_skip ;close to player? start throwing punches around! + ; + bsr pickplayer + bsr calcangle + sub ob_rot(a5),d0 + cmp #32,d0 + bgt baldy_tonorm + cmp #-32,d0 + blt baldy_tonorm + ; + move.l a0,ob_washit(a5) + bsr checkcoll + beq monsternew ;no collisions! + ; + ;go into punch mode! + ; + move.l #baldypunch,ob_logic(a5) + move ob_punchrate(a5),ob_delay(a5) + clr.l ob_frame(a5) + rts + +baldypunch ; + bsr pickplayer + bsr checkcoll + bne.s .doit + ; + clr.l ob_frame(a5) + bra baldy_tonorm + ; +.doit subq #1,ob_delay(a5) + ble.s .punch + rts +.punch move ob_punchrate(a5),ob_delay(a5) + moveq #0,d0 ;stand frame + cmp ob_frame(a5),d0 + bne .skip + ; + clr.l ob_washit(a5) ;punch! + bsr calcangle + move d0,ob_rot(a5) + moveq #5,d0 +.skip move d0,ob_frame(a5) + rts + +calcbangle bsr calcangle + tst ob_invisible(a0) + beq.s .notinv + ; + ;invisible, add some randomeness! + ; + move d0,-(a7) + bsr rndw + and #127,d0 + sub #64,d0 + add (a7)+,d0 + and #255,d0 + ; +.notinv move d0,ob_rot(a5) + rts + +baldylogic ; + ;OK, what can baldy do... + ; + ;how about, walk around similar to the marine, but randomly + ;charge at you? + ; + ;then, if he's close enough, he throws a punch! + ; + subq #1,ob_delay(a5) + bgt monstermove ;charge? + ; + bsr pickplayer + bsr calcbangle + ; + move.l ob_movspeed(a5),d0 + lsl.l #2,d0 + move.l d0,ob_movspeed(a5) + move.l ob_framespeed(a5),d0 + lsl.l #2,d0 + move.l d0,ob_framespeed(a5) + ; + bsr calcvecs + move.l #baldycharge,ob_logic(a5) + ; + rts + +terralogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + bgt monstermove + ; + ;OK, terra goes apeshit! stand there firing off at player! + ;use punchrate as firedelay! + ; + clr ob_frame(a5) + move #1,ob_delay(a5) + move ob_firecnt(a5),ob_delay2(a5) + move.l #terralogic2,ob_logic(a5) + rts + +terralogic2 ; + subq #1,ob_delay(a5) + bgt.s .rts + ; + move ob_firerate(a5),ob_delay(a5) + ; + ;OK, to to face player and fire away! + ; + bsr pickplayer + bsr calcangle + move d0,ob_rot(a5) + bsr calcvecs + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #16,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet4,a2 + lea sparks4,a3 + ; + bsr shoot + ; + subq #1,ob_delay2(a5) + bgt.s .rts + ; + bsr rnddelay + move.l #terralogic,ob_logic(a5) + ; +.rts rts + +ghoullogic ; + addq #8,ob_bounce(a5) + move ob_bounce(a5),d0 + move.l camrots(pc),a0 + and #255,d0 + move 0(a0,d0*8),d0 + ext.l d0 + lsl.l #5,d0 ;+/- 32 + swap d0 + add #-32,d0 + move d0,ob_y(a5) + ; + bsr pickplayer + bsr calcangle + move d0,ob_rot(a5) + ; + subq #1,ob_delay(a5) + bgt.s .skip + ; + move #1,ob_frame(a5) + move.l #$2000,ob_framespeed(a5) + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet2,a2 + lea sparks2,a3 + ; + bsr shoot + bsr rnddelay + ; +.skip ;OK, ghoul moves around ignoring walls! + ; + ;he's pointed at player...how about randomly selected to make + ;this his new movement vector? + ; + bsr rndw + move ob_movspeed(a5),d1 + lsl #8,d1 + cmp d1,d0 + bcc.s .no + ; + bsr calcvecs + ; +.no movem.l ob_xvec(a5),d0-d1 + add.l d0,ob_x(a5) + add.l d1,ob_z(a5) + ; + move.l ob_framespeed(a5),d0 + beq.s .rts + add.l d0,ob_frame(a5) + cmp #3,ob_frame(a5) + bcs.s .rts + ; + clr ob_frame(a5) + clr.l ob_framespeed(a5) + ; +.rts rts + +demonpause move ob_delay(a5),d0 + move d0,d1 + and #4,d0 + sne d0 + ext d0 + and #5,d0 ;0 or 5 + move d0,ob_frame(a5) + ; + and #7,d1 ;do a fire? + cmp #7,d1 + bne.s .nofire + ; + move ob_delay(a5),d0 + lsr #3,d0 + mulu #20,d0 + lea wtable(pc),a0 + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + movem 2(a0,d0),d4-d6 ;hits,dam,speed + moveq #0,d7 ;acc + move.l 8(a0,d0),a2 ;bullets + move.l 12(a0,d0),a3 ;sparks + move.l 16(a0,d0),-(a7) + ; + bsr shoot + ; + move.l (a7)+,a0 + move.l (a0),a0 + moveq #32,d0 + moveq #0,d1 + bsr playsfx + ; +.nofire subq #1,ob_delay(a5) + bgt.s .rts + ; + bsr rnddelay + move.l ob_oldlogic(a5),ob_logic(a5) + ; +.rts rts + +demonlogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + bgt monstermove + ; + bsr pickplayer + bsr calcangle + move d0,-(a7) + bsr rndw + tst ob_invisible(a0) + bne.s .inv + and #16,d0 + subq #8,d0 +.inv add (a7)+,d0 + and #255,d0 + move d0,ob_rot(a5) + bsr calcvecs + move #5<<3-1,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #demonpause,ob_logic(a5) + ; + rts + +phantomlogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + bgt monstermove + ; + bsr pickplayer + bsr calcangle + move d0,ob_rot(a5) + bsr calcvecs + move #7,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #pauselogic,ob_logic(a5) + move #5,ob_frame(a5) + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet3,a2 + lea sparks3,a3 + ; + bra shoot + +monsterlogic ; + move ob_rot(a5),ob_oldrot(a5) + ;monster cruising around minding his own business... + ; + subq #1,ob_delay(a5) + ble fire1 + ; +monstermove bsr checkvecs + beq.s monsternew + ; + ;OK, try 90/-90 degrees... + ; +monsterfix bsr rndw + moveq #64,d1 + tst d0 + bpl.s .umk + moveq #-64,d1 +.umk add d1,ob_rot(a5) + bsr calcvecs + bsr checkvecs + beq.s monsternew + ; + add #128,ob_rot(a5) + bsr calcvecs + bsr checkvecs + beq.s monsternew + ; + move ob_oldrot(a5),d0 + add #128,d0 + move d0,ob_rot(a5) + ; + bsr calcvecs + bsr checkvecs +monsternew ; + move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + and #3,ob_frame(a5) + rts + +calcvecs move ob_rot(a5),d0 + and #255,d0 + move.l camrots(pc),a0 + ; + ifne aga + lea 0(a0,d0*8),a0 + elseif + lsl #3,d0 + lea 0(a0,d0),a0 + endc + ; + move ob_movspeed(a5),d4 + move d4,d5 + muls 2(a0),d4 + add.l d4,d4 + neg.l d4 + move.l d4,ob_xvec(a5) + muls 6(a0),d5 + add.l d5,d5 + move.l d5,ob_zvec(a5) + rts + +checkvecs movem.l ob_xvec(a5),d6-d7 + add.l ob_x(a5),d6 + add.l ob_z(a5),d7 + ; +checkvecs2 bsr checknewslow ;ok to stand here? + beq.s .ok + bsr adjustposq + moveq #-1,d1 +.ok move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + tst d1 + rts + +playerdead bsr getcntrl + ; + subq #1,ob_delay(a5) + bgt.s .rts + ; + cmp #2,gametype + bne.s .notcom + ; + ;combat game! + ; + move #3,finished2 + move #2,ob_pixsizeadd(a5) + move.l #rts,ob_logic(a5) + move.l player1,a0 + cmp.l a5,a0 + bne.s .got + move.l player2,a0 +.got move #2,ob_pixsizeadd(a0) +.rts rts +.notcom ; + tst ob_lives(a5) + beq.s .dead + move.l #waitrestart,ob_logic(a5) + rts + ; +.dead move.l #rts,ob_logic(a5) + ; + tst gametype + bne.s .not1p + ; + ;OK, one player game done! + ; +.allover move #1,finished + rts + ; +.not1p move.l player1,a0 + cmp.l a5,a0 + bne.s .goth + move.l player2,a0 +.goth tst ob_hitpoints(a0) + ble.s .allover + rts + +waitrestart bsr getcntrl + ; + bsr checkfireb + beq.s .rts + ; + lea p1x(pc),a0 + lea player1_+4,a1 + cmp.l player1,a5 + beq.s .got + lea p2x(pc),a0 + lea player2_+4,a1 +.got lea ob_info(a5),a2 + move #(objinfof-objinfo-4)>>1-1,d0 +.loop move (a1)+,(a2)+ + dbf d0,.loop + move (a0)+,ob_x(a5) + move (a0)+,ob_z(a5) + move (a0)+,ob_rot(a5) + ; + move.l ob_shape(a5),a0 + move.l 4(a0),ob_chunks(a5) + move.l (a0),a0 + move.l a0,ob_shape(a5) + ; + bsr resetplayer + st ob_lastbut(a5) + ; +.rts rts + +playerdeath bsr getcntrl + ; + addq #4,ob_rot(a5) + addq #4,ob_eyey(a5) + cmp #-32,ob_eyey(a5) + blt .rts + ; + move #-32,ob_eyey(a5) + move.l #playerdead,ob_logic(a5) + move #63,ob_delay(a5) + ; + cmp #2,gametype + bne.s .notcom + ; + move.l player1,a0 + cmp.l a5,a0 + bne.s .got + move.l player2,a0 +.got tst ob_hitpoints(a0) + ble.s .draw + ; +.win move.l a5,-(a7) + move.l a0,a5 + addq #1,wins1 + cmp.l player1,a5 + beq.s .wd + subq #1,wins1 + addq #1,wins2 +.wd st ob_update(a5) + clr ob_collwith(a5) + clr ob_colltype(a5) + bsr message + dc.b 'winner!',0 + even + move.l (a7)+,a5 + st ob_update(a5) + bsr message + dc.b 'loser!',0 + even + rts +.draw ; + rts +.notcom ; + subq #1,ob_lives(a5) + bne.s .ngo + bsr message + dc.b 'game over',0 + even +.ngo move #-1,ob_update(a5) + ; +.rts rts + +redpal move.l #palettesr,ob_palette(a5) + move #2,ob_paltimer(a5) + rts + +playerhit tst ob_damage(a0) + beq.s .rts + st ob_update(a5) + bsr redpal +.rts rts + +playerdie bsr redpal + clr ob_hitpoints(a5) + st ob_update(a5) + move.l #playerdeath,ob_logic(a5) + clr ob_colltype(a5) + clr ob_collwith(a5) + rts + +healthgot bsr playtsfx + addq #5,ob_hitpoints(a0) + cmp #25,ob_hitpoints(a0) + ble.s .skip + move #25,ob_hitpoints(a0) +.skip st ob_update(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'health bonus!',0 + even + move.l (a7)+,a5 + bra killobject + +playtsfx move.l a0,-(a7) + move.l tokensfx(pc),a0 + moveq #64,d0 + moveq #0,d1 + bsr playsfx + move.l (a7)+,a0 + rts + +weapongot bsr playtsfx + add #$c0,ob_weapon(a0) + cmp #$1900,ob_weapon(a0) + ble.s .skip + move #$1900,ob_weapon(a0) +.skip st ob_update(a0) + move.l a5,-(a7) + move.l a0,a5 + move ob_wlevel(a5),d2 + bsr calcwlevel + cmp ob_wlevel(a5),d2 + beq.s .nob + bsr message + dc.b 'weapon boost!',0 + even + bra.s .nob2 +.nob bsr message + dc.b 'weapon bonus...',0 + even +.nob2 move.l (a7)+,a5 + bra killobject + +invisigot add #1500,ob_invisible(a0) + move.l #rts,ob_render(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr calcwlevel + bsr message + dc.b 'invisibility!',0 + even + move.l (a7)+,a5 + bra killobject + +thermogot add #1500,ob_thermo(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'got the thermo glasses!',0 + even + move.l (a7)+,a5 + bra killobject + +playertimers tst ob_thermo(a5) + beq.s .noth + subq #1,ob_thermo(a5) + bne.s .noth + bsr message + dc.b 'thermo glasses out...',0 + even + ; +.noth tst ob_messtimer(a5) + ble.s .notm + subq #2,ob_messtimer(a5) +.notm ; + tst ob_invisible(a5) + beq.s .noti + subq #1,ob_invisible(a5) + bne.s .noti + move.l #drawshape_8,ob_render(a5) + bsr message + dc.b 'invisibility out...',0 + even +.noti ; + tst ob_paltimer(a5) + beq.s .notp + subq #1,ob_paltimer(a5) + bne.s .notp + move.l #palettes,ob_palette(a5) +.notp ; + rts + +footstep move.l d0,-(a7) + move.l footstepsfx(pc),a0 + moveq #16,d0 + moveq #0,d1 + bsr playsfx + move.l (a7)+,d0 + rts + +prevjoy dc 0 ;previous joy reading! + +cntrls dc.l joyx0,joyx1,joyx2,joyx3 + +getcntrl move ob_cntrl(a5),d0 + cmp #3,d0 ;null modem? + bne.s .notnull + ; + ;OK, control from null modem! + ; + move linkcnt(pc),d0 + beq.s .waitser + ; + subq #1,linkcnt + moveq #0,d0 + lea joyx3(pc),a0 + bra decodejoy + ; +.waitser bsr serget + bpl.s .sergot + ; + ;OK, do a vwait to allow other machine to catch up! + ; + move #$20,$dff09c +.vw ; + ifne debugser + col #$f0f + endc + ; + btst #5,$dff01f + beq.s .vw + move #$20,$dff09c + bra.s .waitser + ; +.sergot lea joyx3(pc),a0 + tst.b d0 + bpl decodejoy + and #$ff,d0 + move d0,finished + move.l #rts,ob_logic(a5) + moveq #0,d0 + bra decodejoy + ; +.notnull lea cntrls(pc),a0 + move.l 0(a0,d0*4),a0 ;address of cntrl table... + move linked(pc),d0 + beq.s .rts + ; + bsr encodejoy + move.l a0,a2 + bsr serput ;output it! + move.l a2,a0 + move prevjoy(pc),d1 ;use previous! + move d0,prevjoy ;new previous + move d1,d0 + bra decodejoy + ; +.rts rts + +playerlogic bsr playertimers + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + ; + bsr checknewslow + beq.s .newok + bsr adjustpos + beq.s .newok2 + bsr adjustpos + beq.s .newok2 + ; + subq #1,ob_hitpoints(a5) + ble playerdie + st ob_update(a5) + bra redpal + ; +.newok2 move.l d6,ob_x(a5) + move.l d7,ob_z(a5) +.newok ; + bsr getcntrl ;update controller block, + ;and put in a0 + ; + move (a0),d0 ;joyx - rotate + muls ob_rotspeed(a5),d0 + add ob_rot(a5),d0 + and #255,d0 + move d0,ob_rot(a5) + ; + move 2(a0),d4 ;joyy + bne.s .speed + ; + ;OK, standing still! + ; + and #255,ob_bounce(a5) + beq.s .nob + add #32,ob_bounce(a5) + cmp #128,ob_bounce(a5) + ble.s .nob + clr ob_bounce(a5) + bsr footstep +.nob clr.l ob_frame(a5) + bra checkfire + ; +.speed add #16,ob_bounce(a5) + move ob_bounce(a5),d1 + sub #64,d1 + and #255,d1 + bne.s .fskip + bsr footstep +.fskip ; + move.l ob_framespeed(a5),d1 + add.l d1,ob_frame(a5) + and #3,ob_frame(a5) + ; + neg d4 + muls ob_movspeed(a5),d4 ;speed + move.l camrots(pc),a1 + lea 0(a1,d0*8),a1 + ; + move d4,d5 ;real speed + muls 2(a1),d4 + add.l d4,d4 + muls 6(a1),d5 + add.l d5,d5 + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + ; + neg.l d4 + add.l d4,d6 + add.l d5,d7 + ; + bsr checknewslow + beq.s .newpos + bsr adjustpos + beq.s .newpos + bsr adjustpos + beq.s .newpos + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + bra.s .useold + ; +.newpos move.l d6,ob_x(a5) + move.l d7,ob_z(a5) +.useold ; + tst ob_pixsizeadd(a5) + bne checkfire + ; + bsr checknew2 ;in a trigger zone? + beq.s checkfire + ; + move zo_ev(a4),d0 ;poly->event + bmi.s checkfire + ; + cmp #24,d0 + bne.s .notexit + ; + move #3,finished2 ;pattern done! + move #2,ob_pixsizeadd(a5) + ; + move d0,-(a7) + bsr dotelesfx + move (a7)+,d0 + ; +.notexit cmp #19,d0 + bcc.s .noclr + ; + ;OK, gotta clear all 'event' zones with same type! + ; + move.l map_poly(pc),a0 + move.l map_ppnt(pc),a1 + moveq #32,d1 +.loop2 cmp zo_ev(a0),d0 + bne.s .skip2 + neg zo_ev(a0) +.skip2 add.l d1,a0 + cmp.l a1,a0 + bcs.s .loop2 + ; +.noclr move.l a5,eventobj + bsr execevent + move.l eventobj(pc),a5 +checkfire ; + bsr checkfireb + beq .rts + ; + move ob_collwith(a5),d2 + and #3,d2 + eor #3,d2 ;colltype + ; + lea wtable(pc),a0 + move ob_wlevel(a5),d0 + movem 0(a0,d0),d3-d6 + movem.l 8(a0,d0),a2-a3 + move.l 16(a0,d0),-(a7) + ; + move.b ob_weapon(a5),d0 + sub d3,ob_weapon(a5) + cmp.b ob_weapon(a5),d0 + beq.s .noup + ; + bsr calcwlevel + st ob_update(a5) + ; +.noup moveq #0,d3 + bsr shoot + ; + move.l (a7)+,a0 + move.l (a0),a0 + moveq #32,d0 + moveq #0,d1 + bsr playsfx + ; +.rts rts + + ; + ;weaponuse.w + ;hitpoints + ;damage + ;speed + ; +wtable dc 0,1,1,32 + dc.l bullet1,sparks1,shootsfx3 + dc $8,5,2,36 + dc.l bullet2,sparks2,shootsfx2 + dc $c,10,3,40 + dc.l bullet3,sparks3,shootsfx + dc $10,15,4,40 + dc.l bullet4,sparks4,shootsfx4 + dc $20,20,7,24 + dc.l bullet5,sparks5,shootsfx5 + +adjustposq ; + neg d0 + move d0,d1 + ; + muls zo_a(a4),d0 + add.l d0,d0 + ; + muls zo_b(a4),d1 + add.l d1,d1 + ; + sub.l d0,d6 + sub.l d1,d7 + ; + rts + +adjustpos bsr adjustposq + ; + ;addq #1,(a4) + ;move.l a4,-(a7) + bsr checknewslow + ;move.l (a7)+,a3 + ;addq #1,(a3) + tst d1 + rts + +checkfireb lea cntrls(pc),a0 + move ob_cntrl(a5),d0 + move.l 0(a0,d0*4),a0 + move 4(a0),d0 + beq.s .nofire + tst ob_lastbut(a5) + bne.s .skip + move d0,ob_lastbut(a5) + rts +.skip moveq #0,d0 + rts +.nofire clr ob_lastbut(a5) + rts + +eventobj dc.l 0 + +calcbounce ;calculate bounce vector...poly in a4, obj in a5 + ; + ;R=2 N (N dot V) - V + ; + ;where R=reflect vector, N=normal to poly, V=original vector + ; + subq #1,ob_bouncecnt(a5) + bge.s .nok + bsr makesparksq + bra killobject +.nok ; + movem ob_nxvec(a5),d0-d1 ;normalized dir + movem zo_na(a4),d2-d3 ;normal to poly + neg d2 + ; + ;calc dot product: + ; + move d0,d4 + muls d2,d4 + move d1,d5 + muls d3,d5 + add.l d5,d4 + add.l d4,d4 + swap d4 ;dot product? + ; + muls d4,d2 + lsl.l #2,d2 + swap d0 + clr d0 + sub.l d0,d2 + swap d2 + ; + muls d4,d3 + lsl.l #2,d3 + swap d1 + clr d1 + sub.l d1,d3 + swap d3 + ; + movem d2-d3,ob_nxvec(a5) + ; + neg d2 + muls ob_movspeed(a5),d2 + add.l d2,d2 + muls ob_movspeed(a5),d3 + add.l d3,d3 + ; + movem.l d2-d3,ob_xvec(a5) + ; + move.l d2,d6 + add.l ob_x(a5),d6 + move.l d3,d7 + add.l ob_z(a5),d7 + ; + bsr checkvecs2 + beq.s putfire + bra calcbounce + +firelogic ; + bsr checkvecs + bne calcbounce +putfire ; + addq #1,ob_frame(a5) + move ob_frame(a5),d0 + move.l ob_shape(a5),a0 + cmp 2(a0),d0 + bcs.s .skip + clr ob_frame(a5) +.skip ; + rts + +moveblood lea blood(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + add.l #$8000,bl_yvec(a5) + ; + movem.l bl_xvec(a5),d0-d2 + add.l d1,bl_y(a5) + blt.s .ok + ; + move.l a5,a0 + killitem blood + move.l a0,a5 + bra.s .loop + ; +.ok add.l d0,bl_x(a5) + add.l d2,bl_z(a5) + bra.s .loop + ; +.done rts + +drawblood lea blood(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + move bl_x(a5),d0 + sub camx(pc),d0 + move bl_y(a5),d1 + sub camy(pc),d1 + move bl_z(a5),d2 + sub camz(pc),d2 + ; + ;rotate x/z around cam... + ; + move d0,d3 + move d2,d5 + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 ;X + ; + muls cm3(pc),d3 + muls cm4(pc),d2 + add.l d3,d2 + add.l d2,d2 + swap d2 ;Z + ; + tst d2 + beq .loop + cmp #maxz,d2 + bcc .loop + ; + ext.l d0 + lsl.l #focshft,d0 + divs d2,d0 + cmp minx(pc),d0 + blt .loop + cmp maxx(pc),d0 + bge .loop + ; + ext.l d1 + lsl.l #focshft,d1 + divs d2,d1 + cmp miny(pc),d1 + blt .loop + cmp maxy(pc),d1 + bge .loop + ; + cmp #32,d2 + bcc.s .pix + ; + ;blit to screen! + ; + move #$4000,$dff09a + ; + bsr savernd + move.l window(pc),a0 + move wi_bh(a0),d0 + subq #8,d0 + bsr rndn + move d0,d2 ;Y + ; + move wi_bw(a0),d0 + subq #8,d0 + bsr rndn ;X + add wi_x(a0),d0 + move d2,d1 + ; + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #46,d2 + bsr blit + ; + bsr loadrnd + ; + move.l a5,a0 + killitem blood + move.l a0,a5 + ; + move #$c000,$dff09a + bra .loop +.pix ; + add midx(pc),d0 + add midy(pc),d1 + ; + move.l darktable(pc),a0 + move 0(a0,d2*2),d3 + ; + move.l cop(pc),a1 + ; + lea coloffs,a2 + add.l 0(a2,d0*4),a1 + mulu copmod(pc),d1 + ; + move blcols(pc,d3*2),d3 + and bl_color(a5),d3 + move d3,0(a1,d1.l) + bra .loop + ; +.done rts + +blcols dc $ccc,$bbb,$aaa,$999,$888,$777,$666,$555 + dc $444,$333,$222,$111,$000,$000,$000,$000 + +;blcols dc $fff,$eee,$ddd,$ccc,$bbb,$aaa,$999,$888 + dc $777,$666,$555,$444,$333,$222,$111,$000 + +drawshape_1sc ;draw shape with one frame, scaled! + ; + move.l ob_shape(a5),a0 + move ob_frame(a5),d0 + add.l 12(a0,d0*4),a0 + move ob_scale(a5),d7 + bra drawshape + +drawshape_1 ; + move.l ob_shape(a5),a0 + move ob_frame(a5),d0 + add.l 12(a0,d0*4),a0 + move #$200,d7 ;scale + bra drawshape + +drawshape_8 ; + ;shape has 8 rotations, and a scale! + ; + bsr calcangle2 + add #16,d0 + sub ob_rot(a5),d0 + lsr #5,d0 + and #7,d0 + move ob_frame(a5),d1 + lsl #3,d1 + or d1,d0 + move.l ob_shape(a5),a0 + move ob_scale(a5),d7 + ; + ifne aga + add.l 12(a0,d0*4),a0 + elseif + lsl #2,d0 + add.l 12(a0,d0),a0 + endc + ; +drawshape move ob_x(a5),d0 + move ob_y(a5),d1 + move ob_z(a5),d2 +drawshape_q ; + ;A0=shape + ;D0=X + ;D1=Y + ;D2=Z + ;D7=sclae factor + ; + ;rotate Z around camera! + ; + sub camx(pc),d0 + sub camy(pc),d1 + sub camz(pc),d2 + ; + move d0,d3 + move d2,d5 + muls cm3(pc),d3 + muls cm4(pc),d2 + add.l d3,d2 + add.l d2,d2 + swap d2 + ; + tst d2 + ble .rts + cmp #maxz,d2 + bcc .rts + ; + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 + ; + move.l memat(pc),a1 + add.l #sh_size,memat + movem d0-d2,sh_x(a1) + move.l a0,sh_shape(a1) + move d7,sh_scale(a1) + ; + lea shapelist(pc),a2 +.loop move.l (a2),d0 + beq.s .end + move.l a2,a3 + move.l d0,a2 + cmp sh_z(a2),d2 ;nearer...further in list + ble.s .loop + move.l a2,(a1) + move.l a1,(a3) + rts +.end move.l d0,(a1) + move.l a1,(a2) +.rts rts + +checknew2 ;check trigger zone + move.l map_grid(pc),a0 + addq #4,a0 + bra.s checknew_ + +gs equ 1< furthest wall list. + ; + ;optimizations... + ;check if both z's are negative after rotation + ;check if projected left/rite ends are on screen + ; + addq #1,frame + ; + clr.l inlist + move.l #inlist,inlistf + ; + move.l map_poly(pc),a4 + move.l map_ppnt(pc),a3 + move.l map_grid(pc),a2 + movem camx(pc),d6-d7 ;x,z + lsr #grdshft,d6 + lsr #grdshft,d7 + lea gridoffs(pc),a6 + moveq #(gridoffsf-gridoffs)>>2-1,d5 + ; +.loop movem (a6)+,d0-d1 + add d6,d0 + cmp #32,d0 + bcc .skip + add d7,d1 + cmp #32,d1 + bcc .skip + ; + ;d0,d1=x/z of map to check! + ; + lsl #5,d1 ;Y*32... + add d1,d0 ;+X + lea 0(a2,d0*8),a0 ;mapgrid + move (a0)+,d4 ;how many polys here + bmi .skip + move (a0),d0 ;poly data offset + ; + ifne aga + lea 0(a3,d0*2),a0 + elseif + add d0,d0 + lea 0(a3,d0),a0 + endc + ; +.loop2 move (a0)+,d0 ;poly# + lsl #5,d0 + lea 0(a4,d0),a1 ;actual poly + move frame(pc),d0 + cmp zo_done(a1),d0 + beq .skip3 + move d0,zo_done(a1) + tst zo_open(a1) + bmi .skip3 + ; + ;OK, setup: + ; + ;d0=lx,d1=lz,d2=rx,d3=rz + ;d4=t,d5=sc,d6=dist + ; + ;back face/dist check... + ; + movem d4-d7,-(a7) + ; + movem zo_lx(a1),d0-d3 ;x1,z1,x2,z2 + movem camx(pc),d6-d7 + ; + sub d6,d0 + sub d7,d1 + sub d6,d2 + sub d7,d3 + ; + move d0,d4 + move d1,d5 + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 + ; + muls cm3(pc),d4 + muls cm4(pc),d1 + add.l d4,d1 + add.l d1,d1 + swap d1 ;LZ + ; + move d2,d4 + move d3,d5 + muls cm1(pc),d2 + muls cm2(pc),d5 + add.l d5,d2 + add.l d2,d2 + swap d2 ;RX + ; + muls cm3(pc),d4 + muls cm4(pc),d3 + add.l d4,d3 + add.l d3,d3 + swap d3 ;RZ + ; + ;check Z's... + tst d1 + bgt.s .zok + tst d3 + ble .skip2 +.zok ; + cmp #maxz,d1 + blt.s .zok2 + cmp #maxz,d3 + bge .skip2 +.zok2 ; + ;do backface check...generate a,b,c... + ; + rol.l #exshft,d0 + rol.l #exshft,d1 + rol.l #exshft,d2 + rol.l #exshft,d3 + ; + move d1,d4 + sub d3,d4 ;a + move d2,d5 + sub d0,d5 ;b + ; + move d0,d6 + muls d4,d6 + move d1,d7 + muls d5,d7 + add.l d7,d6 + bpl.s .front + ; + ;backface showing!... + bra .skip2 +.front ; + move.l memat(pc),a5 + ; + movem d0-d5,wl_lx(a5) + move.l d6,wl_c(a5) + ; + ;work out some screen positions! + tst d1 + bgt.s .z1ok + ; + ;lz bad, rz must be OK... + ; +.ov1 move minx(pc),wl_lsx(a5) + bra.s .z1sk + ; +.z1ok ext.l d0 + lsl.l #focshft,d0 + divs d1,d0 + bvs.s .ov1 + subq #1,d0 + cmp maxx(pc),d0 + bge .skip2 + move d0,wl_lsx(a5) +.z1sk ; + tst d3 + bgt.s .z2ok + ; + ;rz bad, lz must be OK... + ; +.ov2 move maxx(pc),wl_rsx(a5) + bra.s .z2sk + ; +.z2ok ext.l d2 + lsl.l #focshft,d2 + divs d3,d2 + bvs.s .ov2 + addq #1,d2 + cmp minx(pc),d2 + blt .skip2 + move d2,wl_rsx(a5) +.z2sk ; + cmp d1,d3 + bge.s .zskp + exg d1,d3 +.zskp movem d1/d3,wl_nz(a5) ;near/far Z + ; + move.l zo_t(a1),wl_t(a5) + move.l zo_t+4(a1),wl_t+4(a5) + move zo_sc(a1),wl_sc(a5) + move zo_open(a1),wl_open(a5) + ; + ;add to end of inlist... + ; + clr.l (a5) + move.l inlistf(pc),a1 + move.l a5,(a1) + move.l a5,inlistf + add.l #wl_size,memat + ; +.skip2 movem (a7)+,d4-d7 + ; +.skip3 dbf d4,.loop2 ;finish sq + ; +.skip dbf d5,.loop ;gridoffs + ; +makeoutlist ;create outlist from inlist + ; + clr.l outlist + move.l #outlist,outlistf + ; +.loop lea inlist(pc),a0 + move.l (a0),d0 + beq .done + move.l a0,a2 ;save previous! + move.l d0,a0 + ; + ;OK, see if any are in front of a0... + ; + lea inlist(pc),a1 + ; +.loop2 move.l (a1),d0 + beq .none + move.l a1,a3 + move.l d0,a1 + cmp.l a0,a1 + beq.s .loop2 ;don't compare with self! + ; + ;check screen pos overlap... + ; + move wl_rsx(a0),d0 + cmp wl_lsx(a1),d0 + blt .loop2 + ; + move wl_lsx(a0),d1 + cmp wl_rsx(a1),d1 + bgt .loop2 + ; + ;check near/far Z overlap + ; + move wl_nz(a1),d2 + cmp wl_fz(a0),d2 + bge .loop2 ;behind! + ; + move wl_fz(a1),d2 + cmp wl_nz(a0),d2 + ble .swap + ; + tst wl_open(a1) + bne .swap + ; + ;look at a0 points against a1 line... + ; + movem wl_a(a1),d5-d6 + move.l wl_c(a1),d7 + ; + move wl_lx(a1),d0 + sub wl_lx(a0),d0 + muls d5,d0 + move wl_lz(a1),d1 + sub wl_lz(a0),d1 + muls d6,d1 + add.l d1,d0 + eor.l d7,d0 + ; + move wl_lx(a1),d1 + sub wl_rx(a0),d1 + muls d5,d1 + move wl_lz(a1),d2 + sub wl_rz(a0),d2 + muls d6,d2 + add.l d2,d1 + eor.l d7,d1 + ; + ;if both a0 in front, no swap + ; + move.l d0,d4 + or.l d1,d4 + bpl .loop2 ;both a0's in front of a1! + ; + ;if both a0 behind, swap + ; + and.l d1,d0 + bmi .swap ;both a0's behind a1! + ; + ;look at a1 points against a0 line! + ; + movem wl_a(a0),d5-d6 + move.l wl_c(a0),d7 + ; + move wl_lx(a0),d2 + sub wl_lx(a1),d2 + muls d5,d2 + move wl_lz(a0),d3 + sub wl_lz(a1),d3 + muls d6,d3 + add.l d3,d2 + eor.l d7,d2 + ; + move wl_lx(a0),d3 + sub wl_rx(a1),d3 + muls d5,d3 + move wl_lz(a0),d4 + sub wl_rz(a1),d4 + muls d6,d4 + add.l d4,d3 + eor.l d7,d3 + ; + move.l d2,d4 + and.l d3,d4 + bmi .loop2 ;both a1's behind a0! + ; + or.l d3,d2 + bmi .loop2 + ; +.swap move.l a1,a0 + move.l a3,a2 + bra .loop2 + ; +.none ;OK, none in front of this (a0) + ; + move.l (a0),(a2) ;unlink from inlist + clr.l (a0) + ; + move.l outlistf(pc),a2 + move.l a0,(a2) + move.l a0,outlistf + bra .loop + ; +.done rts + + elseif + +makeoutlist2 ;create outlist from inlist + ; +.loop0 lea inlist(pc),a0 + ; +.loop move.l (a0),d0 + beq .done + move.l a0,a2 ;save previous! + move.l d0,a0 + ; + ;OK, see if any are in front of a0... + ; + lea inlist(pc),a1 + ; +.loop2 move.l (a1),d0 + beq .none + move.l a1,a3 + move.l d0,a1 + ; + cmp.l a0,a1 + beq.s .loop2 ;don't compare with self! + ; + ;see if a1 is in front of a0 + ; + move wl_nz(a1),d0 + cmp wl_fz(a0),d0 + bge .loop2 ;behind! + ; + move wl_fz(a1),d0 + cmp wl_nz(a0),d0 + ble .swap + ; + ;now, compare screen x coords..... + ; + move wl_rsx(a0),d0 + cmp wl_lsx(a1),d0 + blt .loop2 + ; + move wl_lsx(a0),d0 + cmp wl_rsx(a1),d0 + bgt .loop2 + ; + ;look at a0 points against a1 line + ; + ;If Sgn((x3-x1)*a2+(y3-y1)*b2)<>Sgn(c2) + ; If Sgn((x3-x2)*a2+(y3-y2)*b2)<>Sgn(c2) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + movem wl_a(a1),d5-d6 + move.l wl_c(a1),d7 + ; + move wl_lx(a1),d0 + sub wl_lx(a0),d0 + muls d5,d0 + move wl_lz(a1),d1 + sub wl_lz(a0),d1 + muls d6,d1 + add.l d1,d0 + eor.l d7,d0 + ; + move wl_lx(a1),d1 + sub wl_rx(a0),d1 + muls d5,d1 + move wl_lz(a1),d2 + sub wl_rz(a0),d2 + muls d6,d2 + add.l d2,d1 + eor.l d7,d1 + ; + ;OK, screen X's overlap... + ;if both a0 in front, no swap + ; + move.l d0,d4 + or.l d1,d4 + bpl .loop2 + ; + ;if both a0 behind, swap + ; + move.l d0,d4 + and.l d1,d4 + bmi .swap + ; + ;bra .loop2 + ; + ;elseif + ;look at a1 points against a0 line + ; + ;If Sgn((x1-x3)*a1+(y1-y3)*b1)=Sgn(c1) + ; If Sgn((x1-x4)*a1+(y1-y4)*b1)=Sgn(c1) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + movem wl_a(a0),d5-d6 + move.l wl_c(a0),d7 + ; + move wl_lx(a0),d2 + sub wl_lx(a1),d2 + muls d5,d2 + move wl_lz(a0),d3 + sub wl_lz(a1),d3 + muls d6,d3 + add.l d3,d2 + eor.l d7,d2 + ; + move wl_lx(a0),d3 + sub wl_rx(a1),d3 + muls d5,d3 + move wl_lz(a0),d4 + sub wl_rz(a1),d4 + muls d6,d4 + add.l d4,d3 + eor.l d7,d3 + ; + ;if both a1's behind, no swap + ; + move.l d2,d4 + and.l d3,d4 + bmi .loop2 ;both a1's behind... + ; + ;if both a1's in front, swap + move.l d2,d4 + or.l d3,d4 + bpl .swap + ; + bra .loop2 + ; + ;elseif + ; +.swap ;a1 is infront of a0! make a1 new frontmost + bra .loop + move.l a1,a0 + move.l a3,a2 + bra .loop2 + ; +.none ;OK, none in front of this (a0) + ; + move.l (a0),(a2) ;unlink from inlist + clr.l (a0) + move.l outlistf(pc),a2 + move.l a0,(a2) + move.l a0,outlistf + bra .loop0 + ; +.done ;move.l inlist(pc),d0 + ;bne .loop0 + rts + + elseif + +castwalls ;process 'walls' list + ; + move.l castrots(pc),a6 + move minx(pc),d7 + ; + ifne aga + lea 0(a6,d7*8),a6 + elseif + move d7,d0 + lsl #3,d0 + lea 0(a6,d0),a6 + endc + ; + move.l vertdraws(pc),a4 + ; +.loop ;do this vert line! + ; + lea outlist(pc),a5 + ; +.loop2 move.l (a5),d0 + beq .empty + move.l d0,a5 + ; + cmp wl_lsx(a5),d7 + blt.s .loop2 + cmp wl_rsx(a5),d7 + bgt.s .loop2 + ; + movem wl_lx(a5),d0-d1 + muls (a6),d0 + muls 2(a6),d1 + add.l d1,d0 ;LX! + bgt .loop2 + ; + movem wl_rx(a5),d1-d2 + muls (a6),d1 + muls 2(a6),d2 + add.l d2,d1 ;RX! + blt .loop2 + ; + sub.l d0,d1 + ; + swap d1 + tst d1 + ble.s .dfix + neg.l d0 + divu d1,d0 + bvc.s .noov +.dfix moveq #-1,d0 +.noov lsr #1,d0 ;fraction -> unsigned + ; + cmp wl_open(a5),d0 + bcs.s .loop2 + ; + movem wl_lx(a5),d1-d2 + muls 4(a6),d1 + muls 6(a6),d2 + add.l d2,d1 + add.l d1,d1 ;lz + ; + movem wl_rx(a5),d2-d3 + muls 4(a6),d2 + muls 6(a6),d3 + add.l d3,d2 + add.l d2,d2 ;rz + ; + sub.l d1,d2 + swap d2 + muls d0,d2 + add.l d2,d2 + add.l d1,d2 + ; + swap d2 + ; + cmp #exone,d2 + blt .loop2 + cmp #maxz<destlen? + bcc.s .skip + move.l fileheader+6(pc),d4 ;length to allocate +.skip ; + moveq #14,d6 + add fileheader+4(pc),d6 + bsr loadit + move.l d0,a0 ;src + add.l d6,d0 ;dest + move.l d0,a1 + jsr decrm+32 + pull + rts +.nocrunch ; + bsr loadit + ; +.err pull + rts + +loadit ;d4=length to alloc/read, d5=memtype + ;seek to start, load, close and return base in d0. + ; + move.l loadmem(pc),d0 + bne.s .noalloc + ; + move.l d4,d0 + move.l d5,d1 + move.l d6,d2 ;offset XS + allocmem2 loadfile + sub.l d6,d0 +.noalloc ; + move.l d7,d1 + move.l d0,d2 + move.l d4,d3 ;read len + jsr -42(a6) ;read + move.l d7,d1 + jsr -36(a6) ;close + move.l d2,d0 + ; + rts + +andtable dc $ffff,0 ;rgb and, brightness add...wht + dc $ff00,8 ;red + +makepalettes ; + ;make wht and red pals + ; + ;create pointers... + ; + lea palettes(pc),a0 + move.l map_rgbs(pc),d0 + lea palettesw(pc),a1 + move.l map_rgbsw(pc),d1 + lea palettesr(pc),a2 + move.l map_rgbsr(pc),d2 + ; + moveq #15,d7 + ; +.loop move.l (a0)+,d3 + sub.l d0,d3 ;offset! + move.l d3,d4 + add.l d1,d3 + move.l d3,(a1)+ + add.l d2,d4 + move.l d4,(a2)+ + ; + dbf d7,.loop + ; + move.l map_rgbsend(pc),d7 + sub.l map_rgbs(pc),d7 ;how many bytes! + lsr #1,d7 + subq #1,d7 ;words! + ; + move.l map_rgbsw(pc),a1 + move #$ffff,d1 ;col and + move #0,d2 ;gamma + bsr makeapal + ; + move.l map_rgbsr(pc),a1 + move #$ff00,d1 + moveq #16,d2 + bsr makeapal + ; + rts + +makeapal move.l map_rgbs(pc),a0 + ; +.loop move (a0)+,d4 ;src colour...find briteness + ; + move d4,d5 + move d4,d6 + and #$f00,d4 + lsr #8,d4 + and #$0f0,d5 + lsr #4,d5 + and #$00f,d6 + add d6,d5 + add d5,d4 + add d2,d4 + cmp #16*3,d4 + bcs.s .bok + moveq #16*3-1,d4 +.bok ext.l d4 + divu #3,d4 ;(r+g+b)/3=briteness! + ; + move d4,d5 + move d4,d6 + lsl #8,d4 + lsl #4,d5 + or d6,d5 + or d5,d4 ;RGB + and d1,d4 + ; + move d4,(a1)+ + ; + cmp.l map_rgbsend(pc),a0 + bcs.s .loop + ; + rts + +calcpalettes ;OK, our palette currently runs from: + ; + ;map_rgbs + ; to + ;map_rgbsat + ; + ;append brightness versions... + ; + lea palettes(pc),a2 + move.l map_rgbs(pc),(a2)+ ;first brightness! + move.l map_rgbsat(pc),a1 ;first brightness! + move.l a1,a3 + moveq #1,d0 ;rgb subtract + ; +.loop move.l map_rgbs(pc),a0 + move.l a1,(a2)+ + ; +.loop2 move (a0)+,d1 + move d1,d2 + move d1,d3 + ; + and #$f00,d1 + lsr #8,d1 + sub d0,d1 + bpl.s .rok + moveq #0,d1 +.rok ; + and #$f0,d2 + lsr #4,d2 + sub d0,d2 + bpl.s .gok + moveq #0,d2 +.gok ; + and #$0f,d3 + sub d0,d3 + bpl.s .bok + moveq #0,d3 +.bok ; + lsl #8,d1 + lsl #4,d2 + or d3,d2 + or d2,d1 + or #$8000,d1 + ; + move d1,(a1)+ + cmp.l a3,a0 + bcs.s .loop2 + ; + addq #1,d0 + cmp #16,d0 + bcs.s .loop + ; + move.l a1,map_rgbsend + ; + rts + +map_rgbsend dc.l 0 + +dispoff tst dispnest + bne.s .skip + bsr vwait + move #$01a0,$dff096 +.skip addq #1,dispnest + rts + +dispon subq #1,dispnest + bgt.s .skip + bsr vwait + move.l coplist(pc),$dff080 + move #$8180,$dff096 + move #0,$dff088 +.skip rts + +forbid push + moveq #49,d0 +.fl bsr vwait + dbf d0,.fl + bsr ownblitter + move.l 4.w,a6 + jsr -132(a6) + move #$8400,$dff096 + pull + rts + +permit push + move.l rawstuff,a0 + clr.l $70(a0) + move.l 4.w,a6 + jsr -138(a6) + bsr disownblitter + pull + rts + +initvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -168(a6) ;addintserver + pull + rts + +vbcounter dc 0 +framecnt dc 0 + +frame dc 0,0 + +vbintserver dc.l 0,0 + dc.b 2,0 + dc.l 0 +vbintdata dc.l vbcounter +vbintcode dc.l vbhandler + +finitvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -174(a6) + pull + rts + +ownblitter push + move.l grbase,a6 + jsr -456(a6) + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + pull + rts + +disownblitter push + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + move.l grbase,a6 + jsr -462(a6) + pull + rts + +makecoloffs push + ; + ifne aga + ; + lea coloffs,a0 + moveq #2,d0 + moveq #3,d2 +.loop addq.l #4,d0 + moveq #31,d1 +.loop2 move.l d0,(a0)+ + addq.l #4,d0 + dbf d1,.loop2 + dbf d2,.loop + ; + elseif + ; + lea coloffs,a0 + moveq #18,d0 + moveq #127,d1 + ; +.loop move.l d0,(a0)+ + addq.l #4,d0 + dbf d1,.loop + ; + endc + ; + pull + rts + +grname dc.b 'graphics.library',0 + even +grbase dc.l 0 +oldview dc.l 0 +dosname dc.b 'dos.library',0 + even +dosbase dc.l 0 + +calcbpos ;also: calc qstripbot, con0poke... + ; + move window1+wi_h,d0 + add d0,d0 + ext.l d0 + add.l qstrip(pc),d0 + move.l d0,qstripbot + ; + move #$100,con0poke + move floorflag(pc),d0 + and roofflag(pc),d0 + bne.s .cp + move #$9f0,con0poke ;one of them is cop strip! +.cp ; + move window1+wi_y,d0 + subq #4,d0 + move d0,minbpos + tst twowins + beq.s .p1 + ; + move window2+wi_y,d0 + add window2+wi_bh,d0 + addq #4,d0 + move d0,maxbpos + rts + ; +.p1 move window1+wi_y,d0 + add window1+wi_bh,d0 + addq #4,d0 + move d0,maxbpos + ; + rts + +showwindow ;a0=window + ; + push + ; + ifne aga + ; + ;poke bitmaps... + move.l wi_slice(a0),a1 + move.l (a1),a1 + move.l wi_bmap(a0),d0 + moveq #6,d1 ;7 bitplanes +.loop move d0,6(a1) + swap d0 + move d0,2(a1) + swap d0 + add.l #40,d0 + addq #8,a1 + dbf d1,.loop + ; + ;create DIW + ; + move.l wi_slice(a0),a1 + move.l (a1),a1 + ; + move wi_y(a0),d0 + move d0,d1 + add wi_bh(a0),d1 + lsl #8,d0 + or #$81,d0 + move d0,56+2(a1) + lsl #8,d1 + or #$c1,d1 + move d1,56+6(a1) + ; + move wi_y(a0),d0 + subq #3,d0 + move.b d0,64(a1) + ; + endc + ; + ;create link to next! + move.l wi_nslice(a0),a1 + move.l (a1),d0 + move.l wi_cop1(a0),a1 + add.l wi_copmem(a0),a1 + move.l wi_cop2(a0),a2 + add.l wi_copmem(a0),a2 + move d0,-6(a1) + move d0,-6(a2) + swap d0 + move d0,-10(a1) + move d0,-10(a2) + ; + pull + ; +showwindowq ;display coplist + ; + move.l wi_cop(a0),d0 + move.l wi_slice(a0),a0 + move.l (a0),a0 + ; + ifne aga + ; + move d0,72+6(a0) + swap d0 + move d0,72+2(a0) + ; + elseif + ; + move d0,6(a0) + swap d0 + move d0,2(a0) + ; + endc + ; + rts + +finitdisplay push + ; + move.l grbase,a6 + move.l oldview,a1 + jsr -222(a6) ;load view + jsr -270(a6) + jsr -270(a6) + move.l 38(a6),$dff080 + move #$81a0,$dff096 + move #0,$dff088 + ; + pull + rts + +initdisplay push + ; + lea grname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,grbase + ; + move.l d0,a6 + move.l 34(a6),oldview + sub.l a1,a1 + jsr -222(a6) ;loadview + ; + move.l #copinitf-copinit,d0 + moveq #2,d1 + allocmem copinit + move.l d0,coplist + ; + move.l d0,a1 + lea copinit,a0 + lea copinitf,a2 + ; +.loop cmp.l a2,a0 + bcc.s .done + move.l (a0)+,(a1)+ + bra.s .loop +.done ; + add.l #sl1-copinit,d0 + move.l d0,slice1 + add.l #sl2-sl1,d0 + move.l d0,slice2 + add.l #cstop-sl2,d0 + move.l d0,copstop + ; + move.l copstop,d0 + move.l slice1,a0 + move.l slice2,a1 + ; + ifne aga + ; + move d0,72+6(a0) + move d0,72+6(a1) + swap d0 + move d0,72+2(a0) + move d0,72+2(a1) + ; + elseif + ; + move d0,6(a0) + move d0,6(a1) + swap d0 + move d0,2(a0) + move d0,2(a1) + ; + endc + ; + jsr -270(a6) + jsr -270(a6) + move.l coplist,$dff080 + move #0,$dff088 + ; + pull + rts + +allocwbmap move wi_w(a2),d0 + mulu wi_pw(a2),d0 + move d0,wi_bw(a2) + ; + move wi_h(a2),d0 + mulu wi_ph(a2),d0 + move d0,wi_bh(a2) + ; + mulu #40*7,d0 + ; + move.l #$10002,d1 + move.l d0,wi_bmapmem(a2) + allocmem wi_bmap + move.l d0,wi_bmap(a2) + ; + move.l #40*7*7,d0 + moveq #2,d1 + allocmem wi_strip + move.l d0,wi_strip(a2) + ; + rts + +windowiff ;draw iff into window! + ; + move.l wi_iff(a2),a0 + cmp.l #1,a0 + bne.s .do + rts + ; +.do move.l wi_bmap(a2),a1 + ; + move 2(a0),d1 + cmp #240,d1 + bcs.s .skip + move #240,d1 +.skip move #120,d2 + lsr #1,d1 + sub d1,d2 + mulu #7*40,d2 + add.l d2,a1 + ; +decodeiff ;for 40 columns... + ; + ;a0=trimmed IFF file, + ;a1=destination bitmap... + ; + move.l a2,-(a7) + moveq #40,d7 + ; + move (a0)+,d0 ;pixel width + lsr #3,d0 ;to byte width + move (a0)+,d1 ;pixel height + cmp #240,d1 + bls.s .hok + move #240,d1 +.hok subq #1,d1 ;to dbf + move (a0)+,d2 ;depth + subq #1,d2 ;to dbf + addq #6,a0 ;skip header + ; +.loop5 move d2,d5 ;depth + ; +.loop4 move.l a1,a2 + move d0,d4 ;how many bytes in line + ; +.loop moveq #0,d3 + move.b (a0)+,d3 + bmi.s .repeat + sub d3,d4 +.loop3 move.b (a0)+,(a2)+ + dbf d3,.loop3 + bra.s .skip + ; +.repeat cmp.b #-128,d3 + beq.s .loop + neg.b d3 + sub d3,d4 +.loop2 move.b (a0),(a2)+ + dbf d3,.loop2 + addq #1,a0 +.skip subq #1,d4 + bgt.s .loop + ; + add d7,a1 + dbf d5,.loop4 + dbf d1,.loop5 + ; + move.l (a7)+,a2 + rts + +plotwbmap ;OK, plot colours on bitmap! + ; + tst.l wi_iff(a2) + bne windowiff + ; + move.l wi_bmap(a2),a0 + move wi_x(a2),d0 + move d0,d1 + lsr #3,d0 + not d1 + and #7,d1 + moveq #127,d7 ;colour + move wi_w(a2),d6 ;width + subq #1,d6 + ; +.wloop move wi_pw(a2),d5 + subq #1,d5 + ; +.wloop2 move d7,d4 + moveq #6,d3 + ; +.dloop bclr d1,0(a0,d0) + lsr #1,d4 + bcc.s .dskip + bset d1,0(a0,d0) +.dskip lea 40(a0),a0 + dbf d3,.dloop + ; + lea -40*7(a0),a0 + subq #1,d1 + bpl.s .dskip2 + moveq #7,d1 + addq #1,d0 +.dskip2 dbf d5,.wloop2 + ; + subq #1,d7 + dbf d6,.wloop + ; + move wi_bh(a2),d0 ;how many to copy + subq #1,d0 + bsr wcopy + ; + move.l wi_bmap(a2),a0 + move.l wi_strip(a2),a1 + move wi_bh(a2),d0 + lsr #2,d0 + mulu #7*40,d0 + add.l d0,a0 + move #7*7*10-1,d2 + ; +.loop move.l (a0)+,(a1)+ + dbf d2,.loop + ; + rts + +wcopy ;copy top scanline to next d0 scanlines + ; + move.l wi_bmap(a2),a0 + mulu #10*7,d0 + subq #1,d0 + lea 40*7(a0),a1 +.cbloop move.l (a0)+,(a1)+ + dbf d0,.cbloop + ; + rts + +freewindow ;window in a0 + ; + push + move.l a0,a2 + move.l wi_bmap(a2),d0 + beq.s .no1 + clr.l wi_bmap(a2) + move.l d0,a1 + freemem wi_bmap +.no1 move.l wi_strip(a2),d0 + beq.s .no2 + clr.l wi_strip(a2) + move.l d0,a1 + freemem wi_strip +.no2 move.l wi_cop1(a2),d0 + beq.s .no3 + clr.l wi_cop1(a2) + move.l d0,a1 + freemem wi_cop +.no3 pull + rts + + ifne aga + ; +agawindow ; +makewindow ;AGA make window + ; + ;a0=window struct! + ; + push + ; + move.l a0,a2 + ; + bsr allocwbmap + bsr plotwbmap + ; + tst.l wi_iff(a2) + beq wchunky + ; + ;make a palette coplist for the window + ; + ;to write 32 colours... + ;set bank, write hi nybs, set bank, write lo nybs... + ;=66 copins. + ;*4=264 total + ;+1 for final wait +3 for final copjump=268 + ; + move.l #268<<2,d0 + move.l d0,wi_copmem(a2) + moveq #2,d1 + allocmem wi_iffcop + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + move.l d0,wi_cop2(a2) + move.l d0,a0 ;dest + move.l wi_pal(a2),a1 ;palette! + ; + moveq #0,d0 ;bank + moveq #3,d3 + ; +.loop move #$106,(a0)+ + move d0,(a0)+ + move #$180,d1 + moveq #31,d2 +.hiloop move d1,(a0)+ + move (a1),(a0)+ + addq #4,a1 + addq #2,d1 + dbf d2,.hiloop + ; + lea -128+2(a1),a1 + move #$106,(a0)+ + bset #9,d0 + move d0,(a0)+ + bclr #9,d0 + move #$180,d1 + moveq #31,d2 +.loloop move d1,(a0)+ + move (a1),(a0)+ + addq #4,a1 + addq #2,d1 + dbf d2,.loloop + subq #2,a1 + ; + add #$2000,d0 ;next bank! + dbf d3,.loop + ; + move.l #$fffffffe,(a0)+ + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + pull + rts + ; +wchunky ;how many copins on one line? + ; + move wi_w(a2),d0 + move d0,d1 + subq #1,d0 + lsr #5,d0 ;how many bank changes per line! + addq #3,d0 ;1 waits - 1 eor, 1 init bank select + add d1,d0 ;+colpokes + ; + move d0,d1 + lsl #2,d1 + move d1,wi_copmod(a2) + ; + mulu wi_h(a2),d0 + addq #4,d0 ;1 wait and cop jump at end + ; + lsl.l #2,d0 ;4 bytes/copins + moveq #2,d1 ;cop in chip + move.l d0,wi_copmem(a2) + lsl.l #1,d0 ;2 coplists! + allocmem wi_chunkycop + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + ; + move.l d0,a0 + move wi_y(a2),d6 + move wi_h(a2),d7 + subq #1,d7 + move #$111,d3 ;test colour + move #$8000,d4 ;Colour Eor + ; +.hloop ;make one copline... + ; + moveq #127,d0 ;colour reg to poke + move wi_w(a2),d1 + subq #1,d1 + ; +.lloop move d0,d2 + addq #1,d2 + and #31,d2 + bne.s .notnbank + ; + ;new bank.... + move d0,d2 + sub #31,d2 + and #$ffe0,d2 + lsl #8,d2 + or d4,d2 ;eor bank + move #$106,(a0)+ ;bank select + move d2,(a0)+ + ; +.notnbank move d0,d2 + and #31,d2 + add d2,d2 + add #$180,d2 + move d2,(a0)+ ;colour poke + move d3,(a0)+ + add #$111,d3 + subq #1,d0 + dbf d1,.lloop + ; + bsr .makewait + ; + ;ok, now do EOR! + move #$10c,(a0)+ + move d4,(a0)+ + bchg #15,d4 + ; + dbf d7,.hloop + ; + bsr .makewait + ; + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + ; + ;OK, 1 list created...copy to other! + ; + move.l wi_cop1(a2),a0 + move.l a0,a1 + add.l wi_copmem(a2),a1 + move.l a1,wi_cop2(a2) + move.l a1,a3 + ; +.copycop move.l (a0)+,(a3)+ + cmp.l a1,a0 + bcs.s .copycop + ; + pull + rts + +.makewait ; + ;make wait ins. at pos d6 + ; + subq #1,d6 + move.b d6,(a0)+ + move.b #$e1,(a0)+ + move #$fffe,(a0)+ + addq #1,d6 + add wi_ph(a2),d6 + rts + + elseif + +ecswindow +makewindow ;ECS makewindow...no bitmap needed! + ; + ;a0=window struct + ; + push + ; + move.l a0,a2 + ; + ;how many copins on one line? + ; + ;2 waits... + ;width moves + ;1 colour 0 poke... + ; + ;=width+3! + ; + move wi_w(a2),d0 + addq #7,d0 + ; + move d0,d1 + lsl #2,d1 + move d1,wi_copmod(a2) + ; + mulu wi_h(a2),d0 + addq #4,d0 ;1 waits at begin and cop jump + ;at end + ; + lsl.l #2,d0 ;4 bytes/copins + moveq #2,d1 ;cop in chip + move.l d0,wi_copmem(a2) + lsl.l #1,d0 ;2 coplists! + allocmem wi_chunkycop + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + ; + move.l d0,a0 + move #$47,d5 + sub wi_w(a2),d5 + add d5,d5 + or #1,d5 + move wi_y(a2),d6 + move wi_h(a2),d7 + subq #1,d7 + ; + moveq #0,d3 + move #$fffe,d4 + bsr .makewait ;wait! + ; +.hloop ;make one copline... + cmp #128,d6 + ble.s .yn + move.b #$80,d3 +.yn ; + move.l a0,d2 ;prepare jump address + addq.l #8,d2 + ; + move #$084,(a0)+ + swap d2 + move d2,(a0)+ + move #$086,(a0)+ + swap d2 + move d2,(a0)+ + ; + ;wait for start X pos... + ; + move.b d3,(a0)+ + move.b d5,(a0)+ + move #$80fe,(a0)+ + ; + move wi_w(a2),d1 + subq #1,d1 + ; +.lloop move.l #$1800f00,(a0)+ + dbf d1,.lloop + move #$180,(a0)+ + move #col0,(a0)+ + ; + move.b d3,(a0)+ + move.b #$e1,(a0)+ + move #$80fe,(a0)+ ;wait for end of line! + ; + move #$ffff,d4 ;skip! + bsr .makewait + move.l #$8a0000,(a0)+ ;strobe! + ; + dbf d7,.hloop + ; + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + ; + ;OK, 1 list created...copy to other! + ; + move.l wi_cop1(a2),a0 + move.l a0,a1 + add.l wi_copmem(a2),a1 + move.l a1,wi_cop2(a2) + move.l a1,a3 + ; + move.l a1,d0 + sub.l a0,d0 + ; +.copycop move.l (a0)+,(a3)+ + cmp #$084,-8(a3) + bne.s .noafix + move -6(a3),d2 + swap d2 + move -2(a3),d2 + add.l d0,d2 + move d2,-2(a3) + swap d2 + move d2,-6(a3) +.noafix cmp.l a1,a0 + bcs.s .copycop + ; + pull + rts + +.makewait ; + ;make wait ins. at pos d6 + ;cmp #256,d6 + ;blt.s .not256 + ;move.l #$ffe1fffe,(a0)+ + ;add wi_ph(a2),d6 + ;rts + ; +.not256 move.b d6,(a0)+ + move.b #1,(a0)+ + move d4,(a0)+ ;wait/skip + add wi_ph(a2),d6 + rts + + endc + +allocmem2_ ; + ;as below, but d2.l = extra mem at start to set aside + ; + push + moveq #16,d3 + add.l d2,d3 + bra.s amem_ + +allocmem_ ; + ;d0=size, d1=requirements, a0=text field + ; + ;set up node before allocmem for quick freemem: + ; + ;00.l : next + ;04.l : real size + ;08.l : offset to user mem (normally 16, but CM fucks things up) + ;12.l : pointer to text field for debugging + ; + push + moveq #16,d3 ;offset + ; +amem_ move.l a0,d4 + add.l d3,d0 + ; + move.l d0,d2 ;len + move.l a0,d4 ;text + move.l 4.w,a6 + jsr -198(a6) + tst.l d0 + bne.s .skip + ; + warn #$f00 + ; +.skip move.l d0,a0 + move.l memlist,(a0) ;next + move.l a0,memlist + movem.l d2-d4,4(a0) + add.l d3,a0 + move.l a0,d0 + ; + pull + rts + +freememlist push + ; +.more move.l memlist,d0 + beq.s .done + move.l d0,a2 + ; + ifne debugmem + move.l 12(a2),a0 ;text field + move.l a0,d2 + moveq #-1,d3 +.loop addq.l #1,d3 + tst.b (a0)+ + bne.s .loop + ; + move.l outhand,d1 + move.l dosbase,a6 + jsr -48(a6) + endc + ; + move.l a2,a1 + ; + move.l (a1),memlist + move.l 4(a1),d0 + move.l 4.w,a6 + jsr -210(a6) + bra.s .more + ; +.done pull + rts + +freemem_ ; + ;a1=address to free! + ; + push + ; + ifne debugmem + move.l a0,-(a7) ;error mess + elseif + endc + ; + move.l a1,a2 ;mem to find! + lea memlist(pc),a1 + ; +.more move.l a1,a0 ;prev + move.l (a1),d0 + beq.s .err + move.l d0,a1 + ; + move.l a1,a3 + add.l 8(a3),a3 + cmp.l a3,a2 + bne.s .more + ; + move.l (a1),(a0) + move.l 4(a1),d0 + move.l 4.w,a6 + jsr -210(a6) + bra.s .done + ; +.err warn #$ff0 + ifne debugmem + move.l (a7),freememerr + endc +.done ; + ifne debugmem + addq #4,a7 + endc + ; + pull + rts + +freememerr dc.l 0 + +initmap ;map address in map_map... + ;load in textures, do colour mapping etc. + ; + push + ; + move.l map_map,a0 + ; + move.l a0,a1 + add.l (a0),a1 + move.l a1,map_grid + ; + move.l a0,a1 + add.l 4(a0),a1 + move.l a1,map_poly + ; + move.l a0,a1 + add.l 8(a0),a1 + move.l a1,map_ppnt + ; + move.l a0,a1 + add.l 12(a0),a1 + move.l a1,map_anim + ; + move.l a0,a1 + add.l 16(a0),a1 + move.l a1,map_txts + ; + move.l (a0),d0 + sub.l #25*4,d0 + add.l a0,d0 + move.l d0,map_events + ; + move.l map_rgbsfrom,map_rgbsat + ; + pull + rts + +freetxts lea textscrns,a6 + moveq #7,d7 +.loop move.l (a6)+,d0 + beq.s .skip + move.l d0,a1 + freemem freetxts + clr.l -4(a6) +.skip dbf d7,.loop + rts + +loadtxts push + ; + lea textures,a4 + move.l map_txts,a5 ;texture names + lea textscrns,a6 + moveq #7,d7 + ; +.ltl lea .temp(pc),a0 + ; +.ltl2 move.b (a5)+,(a0)+ + bne.s .ltl2 + moveq #0,d0 + cmp.l #.temp+1,a0 + beq.s .notext + lea .temp2(pc),a0 + moveq #1,d1 + jsr loadfile + ; +.notext move.l d0,(a6)+ ;texture! + beq.s .skip + ; + ;do colour mapping stuff! + ; + move.l d0,-(a7) + ; + move.l d0,a0 + add.l (a0),a0 + move.l a0,a2 + bsr addpal + ; + move.l (a7),a0 + addq #4,a0 + move.l a2,a1 + bsr remap + ; + move.l (a7)+,a0 + addq #4,a0 + moveq #19,d0 + move.l #64*65,d1 + ; +.mtxt move.l a0,(a4)+ + add.l d1,a0 + dbf d0,.mtxt +.skip ; + dbf d7,.ltl + ; + pull + rts + +.temp2 dc.b 'txts/' +.temp ds.b 64 + even + +remapanim ;a0=anim to remap... + ; + push + ; + move.l a0,a6 + movem (a6),d6-d7 + lsl d6,d7 ;how many frames! + subq #1,d7 + ; + move.l a6,a0 + add.l an_pal(a0),a0 + bsr addpal + ; + lea an_size(a6),a5 + ; +.loop move.l a6,a0 + add.l (a5)+,a0 ;start of shape + addq #4,a0 ;skip handles + movem (a0)+,d0-d1 ;w/h + mulu d1,d0 + lea 0(a0,d0.l),a1 ;end + bsr remap + ; + dbf d7,.loop + ; + pull + rts + +remap ;a0=start of byte data, a1=end of byte data + ; + push + ; + moveq #0,d0 + move.l maptable,a2 + ; +.loop cmp.l a1,a0 + bcc.s .done + move.b (a0),d0 + move.b 0(a2,d0),(a0)+ + bra.s .loop +.done ; + pull + rts + +addpal ;add palette in a0 to end of map_rgb + ; + push + ; + move (a0)+,d0 + subq #1,d0 + move.l map_rgbsat,a2 ;end of rgbs + move.l maptable,a3 + ; + clr.b (a3) ;0=0 + move.b #255,255(a3) ;-1=-1 + move.b #254,254(a3) ;-1=-1 + move.b #253,253(a3) ;-1=-1 + move.b #252,252(a3) ;-1=-1 + move.b #251,251(a3) ;-1=-1 + move.b #250,250(a3) ;-1=-1 + move.b #249,249(a3) ;-1=-1 + ; + moveq #1,d2 ;colour 1! + ; +.loop move (a0)+,d1 ;colour...does it exist? + bmi.s .next ;not used! + move.l map_rgbs,a1 + ; +.loop2 cmp.l a2,a1 + bcc.s .no + cmp (a1)+,d1 + beq.s .yes + bra.s .loop2 + ; +.no ;colour doesn't exist! + ;may have to do a 'near match' routine if we run out of colours + ; + move d1,(a2)+ + move.l a2,a1 + ; +.yes subq #2,a1 + sub.l map_rgbs,a1 + move.l a1,d1 + lsr #1,d1 ;real colour + ; + cmp #256,d1 + bcs.s .ok + ; + warn #$00f + ; +.ok move.b d1,0(a3,d2) + ; +.next addq #1,d2 + dbf d0,.loop + ; + move.l a2,map_rgbsat + ; + pull + rts + + ;coll types... + ; + ;1...bullet from player 1 + ;2...bullet from player 2 + ;4...bullet from monster + ;8...player 1 + ;16..player 2 + ; + + dc.l 0,player,tokens + ; +objlist ;list of objects to be freed... + ; + dc.l marine,baldy,terra,ghoul,demon,phantom,0 + +player dc.l 0,0 ;main, chunks + dc.b 'objs/player',0,0 + even +tokens dc.l 0,0 + dc.b 'objs/tokens',0,0 + even +marine dc.l 0,0 + dc.b 'objs/marine',0,0 + even +baldy dc.l 0,0 + dc.b 'objs/baldy',0,0 + even +terra dc.l 0,0 + dc.b 'objs/terra',0,0 + even +ghoul dc.l 0,0 + dc.b 'objs/ghoul',0,0 + even +demon dc.l 0,0 + dc.b 'objs/demon',0,0 + even +phantom dc.l 0,0 + dc.b 'objs/phantom',0,0 + even + +objinfo +player1_ dc.l player1 +.ob_rotspeed dc.l $40000 +.ob_movspeed dc.l $d0000 +_ob_shape dc.l player +.ob_logic dc.l playerlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l playerhit +.ob_die dc.l playerdie + ; +.ob_eyey dc -110 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 8 +p1_ob_collwith dc 6 ;6=combat, 4=game +p1_ob_cntrl dc 1 ;for player 0,1=joyport, 2=keys +.ob_damage dc 1 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 1 +.ob_range dc 1 +.ob_weapon dc 0 ;weapon type...0...25 +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 ;4! +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +objinfof + +oilen equ objinfof-objinfo + +player2_ dc.l player2 +.ob_rotspeed dc.l $40000 +.ob_movspeed dc.l $d0000 +.ob_shape dc.l player +.ob_logic dc.l playerlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l playerhit +.ob_die dc.l playerdie +.ob_eyey dc -110 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 16 +p2_ob_collwith dc 5 ;5=combat, 4=game +p2_ob_cntrl dc 0 ;for player 0,1=joyport, 2=keys, 3=null +.ob_damage dc 1 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 1 +.ob_range dc 1 +.ob_weapon dc 0 ;weapon type... +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 ;4! +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +health_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l healthgot +.ob_die dc.l healthgot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $30000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +weapon_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $50000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +thermo_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l thermogot +.ob_die dc.l thermogot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $10000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +infra_ ds.b oilen + +invisi_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l invisigot +.ob_die dc.l invisigot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $20000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +invinc_ ds.b oilen + +blank1_ ds.b oilen + +blank2_ ds.b oilen + +marine_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $60000 +.ob_shape dc.l marine +.ob_logic dc.l monsterlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 1 +.ob_hitpoints dc 5 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 16 +.ob_range dc 32 +.ob_weapon dc 0 ;weapon type... +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +baldy_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $40000 +.ob_shape dc.l baldy +.ob_logic dc.l baldylogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 2 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_wlevel dc 0 +.ob_hurtpause dc 3 +.ob_punchrate dc 4 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $220 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +terra_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $20000 +.ob_shape dc.l terra +.ob_logic dc.l terralogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 1 +.ob_hitpoints dc 12 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 32 +.ob_range dc 48 +.ob_weapon dc 0 ;weapon type... +.ob_wlevel dc 0 +.ob_hurtpause dc 0 +.ob_firerate dc 12 ;how often terra fires +.ob_bouncecnt dc 0 ;how many times +.ob_firecnt dc 5 +.ob_scale dc $280 +.ob_apad dc 0 +.ob_blood dc $fff ;color AND for blood +.ob_ypad dc 1 + +ghoul_ dc.l dummy +.ob_rotspeed dc.l $0 +.ob_movspeed dc.l $a0000 +.ob_shape dc.l ghoul +.ob_logic dc.l ghoullogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtghoul +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -64 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l 0 +.ob_base dc 32 +.ob_range dc 48 +.ob_weapon dc 0 ;weapon type... +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_firerate dc 12 ;how often terra fires +.ob_bouncecnt dc 0 ;how many times +.ob_firecnt dc 5 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $0f0 ;color AND for blood +.ob_ypad dc 1 + +phantom_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $a0000 +.ob_shape dc.l phantom +.ob_logic dc.l phantomlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 3 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $a000 +.ob_base dc 8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_wlevel dc 0 +.ob_hurtpause dc 7 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $280 +.ob_apad dc 0 +.ob_blood dc $ff0 ;color AND for blood +.ob_ypad dc 1 + +demon_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $50000 +.ob_shape dc.l demon +.ob_logic dc.l demonlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -90 ;where bullets come from +.ob_gutsy dc -72 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 5 +.ob_hitpoints dc 15 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $5000 +.ob_base dc 32 +.ob_range dc 4 +.ob_weapon dc 0 ;weapon type... +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $380 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +abouttext dc.b 14 + dc.b 'GLOOM',0 + dc.b 0 + dc.b 'A BLACK MAGIC GAME',0 + dc.b 0 + dc.b 'PROGRAMMED BY MARK SIBLY',0 + dc.b 'GRAPHICS BY THE BUTLER BROTHERS',0 + dc.b 'MUSIC BY KEV STANNARD',0 + dc.b 'AUDIO BY US',0 + dc.b 'PRODUCED BY US',0 + dc.b 'DESIGNED BY US',0 + dc.b 'GAME CODED IN DEVPAC2',0 + dc.b 'UTILITIES CODED IN BLITZ BASIC 2',0 + dc.b 'RENDERED IN DPAINT3 AND DPAINT4',0 + dc.b 'DECRUNCHING CODE BY THOMAS SCHWARZ',0 + even + +sqrinc incbin sqr.bin + +groundtile incbin tile2.bin +ceilingtile incbin tile.bin + +bullet1 incbin bullet1.bin +bullet2 incbin bullet2.bin +bullet3 incbin bullet3.bin +bullet4 incbin bullet4.bin +bullet5 incbin bullet5.bin + +sparks1 incbin sparks1.bin +sparks2 incbin sparks2.bin +sparks3 incbin sparks3.bin +sparks4 incbin sparks4.bin +sparks5 incbin sparks5.bin + +gloombrush incbin gloombrush + +gloom incbin title +gloompal incbin title.pal + +combat incbin combat +combatpal incbin combat.pal + +medplayer incbin medplay +decrm incbin decrm + +castrotsinc incbin castrots.bin +camrotsinc incbin camrots.bin ;256 +camrots2inc incbin camrots2.bin ;1024 + +rgbs16 ds.l 16 +map_rgbs_ ds.w 256*16 diff --git a/gloom.s.old b/gloom.s.old new file mode 100644 index 0000000..84cde41 --- /dev/null +++ b/gloom.s.old @@ -0,0 +1,12674 @@ + + ;OK, add a cheat mode! + ; + ;adding chat-line... + ; + ;OK, modem stuff... + ; + ;Once 2 machines are linked, player 1 gets to choose options! + ;player 2 is ignored... + ; + ;player 1 if linked=1, 2 if linked=-1 + + ;********* + ;* GLOOM * + ;********* + ; + ;error codes + ; + ;red - allocmem failed + ;yel - freemem failed + ;orange - unknown script command + ;purp - unknown event command + ;cyn - can't open file in loadfile + ;blu - ran out of remap colours! + +ok equ 750+125 ;overkill level! + ; +cy equ 166 + +pl_eyey equ 110 +pl_firey equ 60 +pl_gutsy equ 64 + +debugser equ 0 +debugmem equ 0 +onedemo equ 0 + ; +ireload equ 5 ;initial reload val. +maxobjects equ 256 ;max objects in game +maxdoors equ 16 ;max doors opening at once +maxblood equ 128 ;max droplets of bluuurd +maxgore equ 128 ;body parts on ground! +maxrotpolys equ 32 ;max rotating thingys. + ; +focshft equ 6 +grdshft equ 8 +darkshft equ 7 ;smaller=smaller range=faster! +maxz equ 16<>1 + ; +linemod equ 40*7 + + jmp entrypoint + + rsreset + ; + ;rotpoly details... + ; +rp_next rs.l 1 +rp_prev rs.l 1 + ; +rp_speed rs.w 1 +rp_rot rs.w 1 +rp_flags rs.w 1 ;what to do? + ; +rp_cx rs.w 1 ;only for rot +rp_cz rs.w 1 +rp_first rs.l 1 ;pointer to first! +rp_num rs.w 1 + ; +rp_vx rs.w 0 +rp_lx rs.w 1 +rp_vz rs.w 0 +rp_lz rs.w 1 +rp_ox rs.w 0 +rp_na rs.w 1 +rp_oz rs.w 0 +rp_nb rs.w 1 + ; +rp_more rs.b 8*31 ;=32 max verts! + ; +rp_size rs.b 0 + + rsreset + ; + ;sfx channel info + ; +fx_status rs.w 1 +fx_priority rs.w 1 +fx_sfx rs.l 1 +fx_vol rs.w 1 +fx_offset rs.w 1 +fx_dma rs.w 1 +fx_int rs.w 1 + ; +fx_size rs.b 0 + + rsreset + ; + ;blood! + ; +bl_next rs.l 1 +bl_prev rs.l 1 +bl_x rs.l 1 +bl_y rs.l 1 +bl_z rs.l 1 +bl_xvec rs.l 1 +bl_dest rs.l 0 +bl_yvec rs.l 1 +bl_zvec rs.l 1 +bl_color rs.l 1 ;colour and! + ; +bl_size rs.b 0 + + rsreset + ; + ;a texture + ; +te_pal rs.l 1 + ; +te_size rs.b 0 + + rsreset + ; + ;an opening/closing door! + ; +do_next rs.l 1 +do_prev rs.l 1 +do_poly rs.l 1 ;door polygon +do_lx rs.w 1 +do_lz rs.w 1 +do_rx rs.w 1 +do_rz rs.w 1 +do_frac rs.w 1 +do_fracadd rs.w 1 + ; +do_size rs.b 0 + + rsreset + ; + ;wall list... + ; +wl_next rs.l 1 +wl_lsx rs.w 1 ;leftmost screen X +wl_rsx rs.w 1 ;rightmost screen X +wl_nz rs.w 1 ;near Z! +wl_fz rs.w 1 ;far Z! +wl_lx rs.w 1 +wl_lz rs.w 1 +wl_rx rs.w 1 +wl_rz rs.w 1 +wl_a rs.w 1 +wl_b rs.w 1 +wl_c rs.l 1 +wl_sc rs.w 1 +wl_open rs.w 1 ;0=door shut, $4000=open! +wl_t rs.b 8 ;textures + ; +wl_size rs.b 0 + + rsreset + ; + ;a zone... + ; +zo_done rs.w 1 +zo_lx rs.w 1 +zo_lz rs.w 1 +zo_rx rs.w 1 +zo_rz rs.w 1 + ; +zo_a rs.w 1 +zo_b rs.w 1 +zo_na rs.w 1 +zo_nb rs.w 1 +zo_ln rs.w 1 + ; +zo_t rs.b 8 ;8 textures + ; +zo_sc rs.w 1 ;scale (how many txts on wall) +zo_open rs.w 0 ;for wall polys... +zo_ev rs.w 1 ;for events... + ; +zo_size rs.b 0 ;32! + + rsreset + ; + ;a shape to draw! + ; +sh_next rs.l 1 +sh_prev rs.l 1 +sh_x rs.w 1 +sh_y rs.w 1 +sh_z rs.w 1 +sh_shape rs.l 1 +sh_scale rs.w 0 +sh_strip rs.l 1 +sh_render rs.l 1 ;drawobjnorm or drawobjinvs + ; +sh_size rs.b 0 + + rsreset + ; + ;gore...body parts lying around! + ; +go_next rs.l 1 +go_prev rs.l 1 +go_x rs.w 1 +go_z rs.w 1 +go_shape rs.l 1 + ; +go_size rs.b 0 + + rsreset + ; + ;an object in the game (player/alien etc...) + ; +ob_next rs.l 1 +ob_prev rs.l 1 +ob_x rs.l 1 +ob_y rs.l 1 +ob_z rs.l 1 +ob_rot rs.l 1 + ; + ;start of info load by prog. +ob_info rs.b 0 + ; +ob_rotspeed rs.l 1 +ob_movspeed rs.l 1 +ob_shape rs.l 1 +ob_logic rs.l 1 +ob_render rs.l 1 +ob_hit rs.l 1 ;routine to do when damaged +ob_die rs.l 1 ;routine to do when killed +ob_eyey rs.w 1 ;eye height +ob_firey rs.w 1 ;where bullets come from +ob_gutsy rs.w 1 +ob_mega rs.w 0 +ob_othery rs.w 1 +ob_colltype rs.w 1 +ob_collwith rs.w 1 +ob_cntrl rs.w 1 +ob_damage rs.w 1 +ob_hitpoints rs.w 1 +ob_think rs.w 1 +ob_frame rs.l 1 ;anim frame +ob_framespeed rs.l 1 ;anim frame +ob_base rs.w 1 +ob_range rs.w 1 +ob_weapon rs.w 1 ;weapon meter (0...4) +ob_reload rs.b 1 ;weapon reload timer +ob_reloadcnt rs.b 1 ;counter +ob_hurtpause rs.w 1 +ob_firerate rs.w 0 +ob_punchrate rs.w 1 +ob_bouncecnt rs.w 1 ;how many times my bullets bounce! +ob_firecnt rs.w 0 +ob_something rs.w 1 +ob_scale rs.w 1 ;scale factor for drawing +ob_lastbut rs.w 1 +ob_blood rs.w 1 ;color AND for blood +ob_ypad rs.w 1 + ; +ob_oldlogic rs.l 1 +ob_oldlogic2 rs.l 1 +ob_oldhit rs.l 1 +ob_olddie rs.l 1 +ob_oldrot rs.w 1 +ob_newrot rs.w 1 +ob_yvec rs.l 1 +ob_xvec rs.l 1 +ob_zvec rs.l 1 +ob_radsq rs.l 1 ;radius squared +ob_rad rs.w 1 +ob_delay rs.w 1 +ob_delay2 rs.w 0 +ob_bounce rs.w 1 +ob_hurtwait rs.w 1 + ; +ob_washit rs.l 1 ;flag for un-hit coll detect! +ob_window rs.l 1 ;pointer back to window! +ob_nxvec rs.w 0 ;normalized X vec +ob_lives rs.w 1 +ob_nzvec rs.w 0 ;nomralized z vec +ob_infra rs.w 1 +ob_thermo rs.w 1 +ob_invisible rs.w 1 +ob_hyper rs.w 1 +ob_update rs.w 1 ;update stats! +ob_mess rs.l 1 ;message +ob_messlen rs.w 1 +ob_messtimer rs.w 1 ;timer for messages +ob_palette rs.l 1 ;palette for window +ob_paltimer rs.w 1 ;timer before back to normal +ob_pixsize rs.w 1 +ob_pixsizeadd rs.w 1 +ob_telex rs.w 1 +ob_telez rs.w 1 +ob_telerot rs.w 1 +ob_chunks rs.l 1 + ; +ob_size rs.b 0 + + rsreset + ; + ;solid wall draw data + ; +vd_z rs.w 1 ;current Z +vd_pal rs.w 1 ;palette# (0...15) +vd_y rs.w 1 +vd_h rs.w 1 +vd_data rs.l 1 +vd_ystep rs.l 1 + ; +vd_size rs.b 0 + + rsreset + ; + ;palette file... + ; +pa_numcols rs.w 1 ;how many colours +pa_cols rs.w 256 ;the colours! + + rsreset + ; + ;anim file... + ; +an_rotshft rs.w 1 +an_frames rs.w 1 +an_maxw rs.w 1 +an_maxh rs.w 1 +an_pal rs.l 1 + ; +an_size rs.b 0 + + rsreset + ; + ;window + ; +wi_slice rs.l 1 ;slice window appears in! +wi_nslice rs.l 1 ;next slice to disp. +wi_x rs 1 +wi_y rs 1 +wi_w rs 1 ;how many chixels across +wi_h rs 1 ;how many down +wi_pw rs 1 ;width of 1 chixel +wi_ph rs 1 ;hite of 1 chixel + ; +wi_bw rs 1 ;bitmap width +wi_bh rs 1 ;bitmap height + ; +wi_bmapmem rs.l 1 +wi_copmem rs.l 1 +wi_bmap rs.l 1 +wi_cop rs.l 1 +wi_cop1 rs.l 1 +wi_cop2 rs.l 1 +wi_copmod rs.w 1 + ; +wi_strip rs.l 1 +wi_iff rs.l 1 ;show iff instead! +wi_pal rs.l 1 ;palette for IFF! + ; +wi_size rs.b 0 + +key macro + btst #\1&7,\1>>3(a0) + endm + +keya1 macro + btst #\1&7,\1>>3(a1) + endm + +qkey macro + move.l rawtable(pc),a0 + key \1 + endm + +freemem macro + ; + ifne debugmem + lea .fmem\@,a0 + jsr freemem_ + bra .fmemskip\@ +.fmem\@ dc.b '\1',0 + even +.fmemskip\@ ; + elseif + jsr freemem_ + endc + ; + endm + +allocmem macro + ; + ifne debugmem + ; + lea .amem\@,a0 + jsr allocmem_ + bra .amemskip\@ +.amem\@ dc.b '\1',10,0 + even +.amemskip\@ ; + elseif + ; + jsr allocmem_ + ; + endc + ; + endm + +allocmem2 macro + ; + ifne debugmem + ; + lea .amem\@,a0 + jsr allocmem2_ + bra .amemskip\@ +.amem\@ dc.b '\1',10,0 + even +.amemskip\@ ; + elseif + ; + jsr allocmem2_ + ; + endc + ; + endm + +alloclist macro ;alloclist listname,maxitems,itemsize + ; + move.l \2,d0 + move.l \3,d1 + lea \1(pc),a2 + jsr k_alloclist + bra.s alskip\@ + ; +\1 dc.l 0 ;0 +\1_last dc.l 0 ;4 + dc.l 0 ;8 +\1_free dc.l 0 ;12 +alskip\@ ; + endm + +k_alloclist ;a2=address of 'first' pointer + ;d0=max items, d1=item size + ; + move.l a2,8(a2) ;clear out used list + lea 4(a2),a0 + clr.l (a0) + move.l a0,(a2) + movem.l d0-d1,-(a7) + mulu d1,d0 + move.l #$10001,d1 + allocmem alloclist + move.l d0,a0 + lea 12(a2),a2 + movem.l (a7)+,d0-d1 + subq #1,d0 +.loop move.l a0,(a2) + move.l a0,a2 + add d1,a0 + dbf d0,.loop + rts + +addnext macro + ; + ;addnext 'listname' + ;add after a5 + ;return eq if none available else a0 + ; + move.l \1_free,d0 + beq.s .anskip\@ + move.l d0,a0 + move.l (a0),\1_free + move.l (a5),a1 + move.l a1,(a0) + move.l a0,4(a1) + move.l a0,(a5) + move.l a5,4(a0) +.anskip\@ ; + endm + +addfirst macro + ; + ;addfirst 'listname' + ;return eq if none available else a0 + ; + move.l \1_free,d0 + beq.s .afskip\@ + move.l d0,a0 + move.l (a0),\1_free + move.l \1,a1 ;current first + move.l a1,(a0) + move.l a0,4(a1) + move.l a0,\1 + move.l #\1,4(a0) +.afskip\@ ; + endm + +addlast macro + ; + ;addlast 'listname' + ;return eq in none available else a0 + ; + move.l \1_free,d0 + beq.s .alskip\@ + move.l d0,a0 + move.l (a0),\1_free + ; + move.l \1_last+4,a1 ;current last + move.l a0,(a1) + move.l a1,4(a0) + move.l a0,\1_last+4 + move.l #\1_last,(a0) +.alskip\@ ; + endm + +killitem macro + ; + ;killitem listname + ;a0=item to kill, return a0=previous item. + ; + move.l (a0),a1 ;next of me! + move.l 4(a0),4(a1) + move.l 4(a0),a1 ;prev of me + move.l (a0),(a1) + move.l \1_free,(a0) + move.l a0,\1_free + move.l a1,a0 + endm + +clearlist macro + ; + ;clearlist listname + ; +.clloop\@ move.l \1,a0 + tst.l (a0) + beq .cldone\@ + killitem \1 + bra .clloop\@ +.cldone\@ ; + endm + +zerolist macro listname,size of item + ; + ;fill all list items with 0! + ; + clearlist \1 +.zlloop\@ addlast \1 + beq .zlskip\@ + lea 8(a0),a1 + moveq #0,d0 + move #(\2-8)/2-1,d1 +.zlloop2\@ move d0,(a1)+ + dbf d1,.zlloop2\@ + bra .zlloop\@ +.zlskip\@ clearlist \1 + ; + endm + +bwait macro + ; +.bwait\@ btst #6,$dff002 + beq.s .bwait2\@ + bra.s .bwait\@ +.bwait2\@ ; + endm + +printlong macro + move.l \1,-(a7) + jsr printlong_ + endm + +check macro + list +check set *-\1 + nolist + endm + +push macro + movem.l d2-d7/a2-a6,-(a7) + endm + +pull macro + movem.l (a7)+,d2-d7/a2-a6 + endm + +col macro + move #0,$dff106 + move \1,$dff180 + endm + +warn macro + move d0,-(a7) + move #-1,d0 +.wloop\@ col \1 + dbf d0,.wloop\@ + move (a7)+,d0 + endm + +tempfile ds.b 64 + +wbmess dc.l 0 ;workbench message! + +entrypoint ; + clr.l map_test + move.l 4.w,a6 + move.l 276(a6),a5 ;task + tst.l $ac(a5) ;cli? + bne.s cli + ; + lea $5c(a5),a0 + jsr -384(a6) ;waitport + lea $5c(a5),a0 + jsr -372(a6) ;get message + move.l d0,wbmess + bra wb +cli ; + cmp.b #'@',(a0)+ + bne.s wb + lea tempfile,a1 + move.l a1,map_test +.loop move.b (a0)+,(a1) + beq.s wb + cmp.b #10,(a1)+ + bne.s .loop + clr.b -(a1) +wb ; + lea dosname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,dosbase + ; + move.l d0,a6 + jsr -60(a6) + move.l d0,outhand + ; + move.l wbmess(pc),d0 + beq.s .nocd + move.l d0,a0 + move.l $24(a0),a0 + move.l (a0),d1 + move.l dosbase,a6 + jsr -126(a6) +.nocd ; + jsr initmain + bsr bigfont + ; +.intro move.l medat(pc),a1 + move.l titlemed(pc),a0 + jsr 8(a1) ;start title music! + ; +.intro2 jsr dointro ;returns gametype + ; + cmp #3,gametype + bcs.s .play + move.l medat(pc),a1 + jsr 12(a1) + bra.s exittoos +.play ; + bsr initnewgame + tst gametype + bmi .intro2 + ; + bsr smallfont + tst twowins + beq.s .n2 + bsr swaphflags +.n2 bsr execscript_med +.wmf tst fadevol + bne.s .wmf + tst twowins + beq.s .n22 + bsr swaphflags +.n22 bsr bigfont + bra .intro + ; +exittoos bsr freeobjlist2 + move #$4000,$dff09a + move.l ciaa,a0 + movem.l rawstuff,d0-d1 + movem.l d0-d1,$64(a0) + move #$c000,$dff09a + jsr permit + jsr finitdisplay + jsr finitvbint + jsr finitsfx + jsr finitser + jsr freememlist + jsr undir + ; + move.l wbmess(pc),d0 + beq.s .bye + ; + move.l 4.w,a6 + move.l d0,a1 + jsr -378(a6) + clr.l wbmess + ; +.bye rts + +; ************* FAST SUBS ******************** + +fastsubs + +swaphflags movem.l floorflag(pc),d0-d1 + move.l d1,floorflag + move.l d0,floorflag2 + rts + +smallfont move #6,fontw + move #8,fonth + move.l smallfont_,font + rts + +bigfont move #8,fontw + move #10,fonth + move.l bigfont_,font + rts + +encodejoy ;a0=cntrl block to encode... + ;return d0 encoded + ; + ;bit: + ;0 = joyx -1 + ;1 = joyx 1 + ;2 = joyy -1 + ;3 = joyy 1 + ;4 = joyb true + ;5 = joys true + ; + moveq #0,d0 + ; + tst (a0) + beq.s .skipx + bpl.s .x1 + bset #0,d0 + bra.s .skipx +.x1 bset #1,d0 +.skipx tst 2(a0) + beq.s .skipy + bpl.s .y1 + bset #2,d0 + bra.s .skipy +.y1 bset #3,d0 +.skipy tst 4(a0) + beq.s .skipb + bset #4,d0 +.skipb tst 6(a0) + beq.s .skipf + bset #5,d0 +.skipf ; + rts + +decodejoy ; + ;d0.b = encoded byte... + ;a0 = block to fill + ; + ;0 = joyx -1 + ;1 = joyx 1 + ;2 = joyy -1 + ;3 = joyy 1 + ;4 = joyb true + ;5 = joys true + ; + clr (a0) + move d0,d1 + and #3,d1 + beq.s .skipx + cmp #1,d1 + bne.s .x1 + move #-1,(a0) + bra.s .skipx +.x1 move #1,(a0) +.skipx clr 2(a0) + move d0,d1 + and #12,d1 + beq.s .skipy + cmp #4,d1 + bne.s .y1 + move #-1,2(a0) + bra.s .skipy +.y1 move #1,2(a0) +.skipy btst #4,d0 + sne d1 + ext d1 + move d1,4(a0) + btst #5,d0 + sne d1 + ext d1 + move d1,6(a0) + rts + +sfxs ; +sfx0 ds.b fx_size +sfx1 ds.b fx_size +sfx2 ds.b fx_size +sfx3 ds.b fx_size + +sfxintserver0 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx0 + dc.l sfxint + +sfxintserver1 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx1 + dc.l sfxint + +sfxintserver2 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx2 + dc.l sfxint + +sfxintserver3 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx3 + dc.l sfxint + +initsfx push + move.l 4.w,a6 + ; + moveq #7,d0 + lea sfxintserver0,a1 + jsr -162(a6) ;setintvector + ; + moveq #8,d0 + lea sfxintserver1,a1 + jsr -162(a6) + ; + moveq #9,d0 + lea sfxintserver2,a1 + jsr -162(a6) + ; + moveq #10,d0 + lea sfxintserver3,a1 + jsr -162(a6) + ; + lea sfxs(pc),a1 + move #$80,d0 + moveq #1,d1 + moveq #0,d2 + moveq #3,d3 +.loop bsr .init + lea fx_size(a1),a1 + dbf d3,.loop + ; + pull + rts + ; +.init clr fx_status(a1) + move d0,fx_int(a1) + move d1,fx_dma(a1) + move d2,fx_offset(a1) + add d0,d0 + add d1,d1 + add #16,d2 + rts + +finitsfx push + move.l 4.w,a6 + ; + moveq #7,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #8,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #9,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #10,d0 + sub.l a1,a1 + jsr -162(a6) + ; + pull + rts + +waitquiet bsr vwait + lea sfxs(pc),a0 + moveq #3,d0 +.loop tst fx_status(a0) + bne.s waitquiet + lea fx_size(a0),a0 + dbf d0,.loop + rts + +playsfx ;sfx file in a0, vol in d0, priority in d1 + ; + move #$4000,$dff09a ;snd/vb ints off + ; + lea sfxs(pc),a1 + moveq #3,d2 +.loop tst fx_status(a1) + beq.s makesfx + lea fx_size(a1),a1 + dbf d2,.loop + ; + ;OK, none free...check priorities + ; + lea sfxs(pc),a1 + moveq #3,d2 +.loop2 cmp fx_priority(a1),d1 + bgt.s queuesfx + lea fx_size(a1),a1 + dbf d2,.loop2 + ; + ;no-can-do! + ; + move #$c000,$dff09a + rts + ; +queuesfx ;OK, turn off other and play US! + ; + move #1,fx_status(a1) + move d0,fx_vol(a1) + move d1,fx_priority(a1) + move.l a0,fx_sfx(a1) ;play me next! + ; + bsr sfxoff + ; + move #$c000,$dff09a + rts + +sfxoff lea $dff0a0,a2 + add fx_offset(a1),a2 + move.l chipzero(pc),(a2) + move #1,4(a2) ;len + move #0,8(a2) ;vol + move fx_int(a1),$dff09a + move fx_dma(a1),$dff096 + rts + +makesfx ;OK, play this SFX NOW! + ; + move d1,fx_priority(a1) + move d0,fx_vol(a1) + bsr playsfxnow + move #$c000,$dff09a + rts + +playsfxnow move #-2,fx_status(a1) + ; + lea $dff0a0,a2 + add fx_offset(a1),a2 + move (a0)+,6(a2) ;period + move (a0)+,4(a2) ;len + move fx_vol(a1),8(a2) ;vol + move.l a0,(a2) ;data + ; + move fx_dma(a1),d0 ;dma bits + or #$8000,d0 + move fx_int(a1),d1 ;int bits + move d1,d2 + or #$8000,d1 + ; + move d0,$dff096 ;dma on! + move d1,$dff09a ;int en + move d2,$dff09c ;intreq clr + ; + rts + +sfxint ;interupt for sfx! + ; + tst fx_status(a1) + bge.s .skip + addq #1,fx_status(a1) + blt.s .skip + ; + move.l a2,-(a7) + bsr sfxoff + move.l (a7)+,a2 + ; +.skip move fx_int(a1),$dff09c + moveq #0,d0 + rts + +dogamemenu ; + move #$20,$dff09a + ; + st paused + move framecnt,-(a7) + move linked,-(a7) + clr linked + ; + move #$8020,$dff09a + ; + move.l player1,a5 + move.l ob_palette(a5),-(a7) + move.l #palettesw,ob_palette(a5) + move.l ob_window(a5),a2 + jsr plotwbmap + ; + tst twowins + beq .p1 + ; + move.l player2,a5 + move.l ob_palette(a5),-(a7) + move.l #palettesw,ob_palette(a5) + move.l ob_window(a5),a2 + jsr plotwbmap +.p1 ; + bsr drawall2 + ; + move.l player1,a5 + lea gamemenu,a4 + move.l ob_window(a5),a6 + jsr initmenu + ; +.loop bsr selmenu + beq .done + ; + subq #1,d0 + bne .notpsize + bsr newpsize + bra .loop + ; +.notpsize subq #1,d0 + bne .notwsize + bsr newwsize + bra .loop + ; +.notwsize subq #1,d0 + bne .notlwin + bsr largewin + bra .loop + ; +.notlwin subq #1,d0 + bne .notfloor + ; + addq #1,floorflag + cmp #2,floorflag + bne.s .fskip + move #-1,floorflag +.fskip bsr refresh + bra .loop + ; +.notfloor subq #1,d0 + bne .notroof + ; + addq #1,roofflag + cmp #2,roofflag + bne.s .rskip + move #-1,roofflag +.rskip bsr refresh + bra .loop +.notroof ; + move #1,finished + ; +.done bsr finitmenu + ; + tst twowins + beq.s .p12 + ; + move.l player2,a5 + move.l (a7)+,ob_palette(a5) + move.l ob_window(a5),a2 + jsr plotwbmap + bsr initstats + bsr showstats +.p12 ; + move.l player1,a5 + move.l (a7)+,ob_palette(a5) + move.l ob_window(a5),a2 + jsr plotwbmap + bsr initstats + bsr showstats + ; + move #$20,$dff09a + ; + move (a7)+,linked + move (a7)+,framecnt + clr paused + ; + move #$8020,$dff09a + ; + rts + +freewindows lea window1,a0 + jsr freewindow + tst twowins + beq.s .p1 + lea window2,a0 + jsr freewindow +.p1 rts + +largewin move.l player1,a5 + bsr large + tst twowins + beq refresh + move.l player2,a5 + bsr large + bra refresh + +large move.l ob_window(a5),a6 + move wi_pw(a6),d2 + ; + cmp #2,d2 + beq .lhr + ; + ;large lo-res window! + ; +.lores move #324,d0 + move #240,d1 + bra thinkwin + ; +.lhr bsr swappsize + bra.s .lores + ; + move #180,d0 + move #240,d1 + bra thinkwin + +newwsize ;window size stuff! + ; + move.l player1,a5 + bsr swapwsize + tst twowins + beq refresh + move.l player2,a5 + bsr swapwsize + bra refresh + +swapwsize ;increment window size! + ; + move.l ob_window(a5),a6 + movem wi_w(a6),d0-d1 ;w,h + move wi_pw(a6),d2 + mulu d2,d0 + mulu d2,d1 + cmp #2,d2 + beq .hr + ; + ;lo-res! + ; + cmp #318,d0 + bcs.s .inc + move #132,d0 + move d0,d1 + bra thinkwin +.inc add #24,d0 + move d0,d1 + cmp #240,d1 + bls thinkwin + move #240,d1 + bra thinkwin + ; +.hr cmp #180,d0 + bcs.s .inc2 + tst twowins + bne .min + add #18,d1 + cmp #240,d1 + bls thinkwin +.min move #132,d0 + move d0,d1 + bra thinkwin +.inc2 add #24,d0 + move d0,d1 + ; +thinkwin move #180,d3 ;max width! + cmp #2,d2 + beq .gmax + move #318,d3 +.gmax cmp d3,d0 + bls .nm + move d3,d0 +.nm ; + cmp #240,d1 + bls .n240 + move #240,d1 +.n240 tst twowins + beq.s .ggt + move #120,d1 +.ggt ; + move #160,d3 + move d0,d4 + lsr #1,d4 + sub d4,d3 ;wi_x + move d3,wi_x(a6) + ; + ext.l d0 + divu d2,d0 + move d0,wi_w(a6) + ; + tst twowins + bne.s .skip3 + ; + move #cy,d3 + move d1,d4 + lsr #1,d4 + sub d4,d3 + move d3,wi_y(a6) + ; +.skip3 ext.l d1 + divu d2,d1 + move d1,wi_h(a6) + ; + rts + +newpsize ;toggle pixel size between 2 and 3 + ; + ;copy windows to temp so we can free 'em up later + ; + move.l player1,a5 + bsr swappsize + tst twowins + beq refresh + move.l player2,a5 + bsr swappsize + ; +refresh jsr dispoff + bsr finitmenu + ; + bsr freewindows + bsr putwindow + ; + lea window1,a0 + jsr makewindow + lea window1,a0 + jsr showwindow + ; + tst twowins + beq.s .p1 + ; + lea window2,a0 + jsr makewindow + lea window2,a0 + jsr showwindow + ; +.p1 jsr calcbpos + ; + lea gamemenu,a4 + lea window1,a6 + jsr initmenu2 + ; + bsr drawall2 + jsr dispon + rts + +swappsize move.l ob_window(a5),a6 + movem wi_w(a6),d0-d1 ;w,h + move wi_pw(a6),d2 + mulu d2,d0 + mulu d2,d1 + eor #1,d2 ;2,3... + move d2,wi_pw(a6) + move d2,wi_ph(a6) + ; + bra thinkwin + +showflag dc 0 + +showit ;don't show if beam in the way! + ; + move showflag(pc),d0 + beq.s .rts + ; + move.l $dff004,d0 + lsr.l #8,d0 ;beampos + and #$1ff,d0 + ; + cmp minbpos(pc),d0 + bcs.s .show + cmp maxbpos(pc),d0 + bcs.s .rts + ; + ;cmp minbpos(pc),d0 + ;bcc.s .rts + ; +.show clr showflag + lea window1,a0 + jsr showwindowq + lea window2,a0 + jmp showwindowq + ; +.rts rts + +drawall2 bsr drawall + bsr drawall + bra vwait + +drawall ; +.wait move doneflag(pc),d0 + beq.s .wait ;wait for update + clr doneflag +.wait2 move showflag(pc),d0 + bne.s .wait2 + ; + move.l memory(pc),memat + move.l player1(pc),a5 + bsr calcscene + move.l player1(pc),a5 + bsr blitscene + move.l player1(pc),a5 + bsr drawscene + ; + move twowins(pc),d0 + beq.s .show + ; + move.l memory(pc),memat + move.l player2(pc),a5 + bsr calcscene + move.l player2(pc),a5 + bsr blitscene + move.l player2(pc),a5 + bsr drawscene + ; +.show st showflag + rts + +resetplayer st ob_update(a5) + clr ob_mega(a5) + clr ob_thermo(a5) + clr ob_infra(a5) + clr ob_invisible(a5) + clr ob_messtimer(a5) + clr ob_pixsize(a5) + clr ob_pixsizeadd(a5) + clr ob_bouncecnt(a5) + move.l #palettes,ob_palette(a5) + rts + +message ;print up a message...player in a5 + ; + move.l (a7),a0 ;return address=message! + move.l a0,ob_mess(a5) + ; + moveq #-1,d0 +.loop addq #1,d0 + tst.b (a0)+ + bne.s .loop + ; + move d0,ob_messlen(a5) + move #-127,ob_messtimer(a5) + ; + move.l a0,d0 + addq.l #1,d0 + and #$fffe,d0 + move.l d0,(a7) + rts + +pdelay dc 0 ;non zero=wait between prints + +printmess ;a5=object + ; + move.l ob_window(a5),a6 + move.l ob_mess(a5),a4 + move ob_messlen(a5),d0 + move wi_bh(a6),d6 + lsr #2,d6 ;Y + ; +printmess2 ;a6=window, a4=message, d0=length of message, d6=Y + ; + move fontw(pc),d2 + lsr #1,d2 + mulu d2,d0 + move #160,d7 + sub d0,d7 ;X + ; +.loop2 move.b (a4)+,d2 + beq .done + cmp.b #' ',d2 + beq.s .spc + cmp.b #'0',d2 + bcs.s .nnum + cmp.b #'9',d2 + bhi.s .nnum + sub.b #'0',d2 + ext d2 + bra.s .here +.nnum cmp.b #'!',d2 + bne.s .notex + moveq #36,d2 + bra.s .here +.notex cmp.b #'.',d2 + bne.s .notfs + moveq #37,d2 + bra.s .here +.notfs cmp.b #':',d2 + bne.s .notcol + moveq #38,d2 + bra.s .here +.notcol cmp.b #127,d2 + bne.s .notcurs + moveq #39,d2 + bra.s .here +.notcurs and #31,d2 + add #9,d2 +.here move.l font(pc),a0 + move.l wi_bmap(a6),a1 + move d7,d0 + move d6,d1 + bsr blit + ; + move pdelay(pc),d2 + subq #1,d2 + bmi.s .spc + ; +.pdloop bsr vwait + bsr checkany + beq.s .none + move #-1,pdelay + moveq #0,d2 +.none dbf d2,.pdloop + ; +.spc add fontw(pc),d7 + bra .loop2 +.done ; + rts + +initstats ; + ;health... + move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #2,d1 + moveq #39,d2 + bsr blit + ; + ;weapon... + move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #12,d1 + moveq #44,d2 + bra blit + +putstrip ;a0=window + ; + move.l wi_bmap(a0),a1 + move wi_bh(a0),d0 + lsr #2,d0 + mulu #7*40,d0 + add.l d0,a1 ;dest + move.l wi_strip(a0),a0 ;src + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l #$9f00000,$dff040 + move.l #-1,$dff044 + move #0,$dff064 + move #0,$dff066 + move.l a0,$dff050 + move.l a1,$dff054 + move #(7*7)<<6+20,$dff058 + rts + +loff dc 0 + +showstats ;a5=player + ; + ;ok, hitpoints... + ; + ;lagtime... + move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #22,d1 + move lagtime(pc),d2 + bsr blit + ; + move.l ob_window(a5),a0 + moveq #44,d5 + add wi_x(a0),d5 + moveq #40,d4 + moveq #0,d6 + move ob_hitpoints(a5),d7 + ; +.hploop cmp d7,d6 + bcs.s .hpskip + cmp #25,d7 + bcc.s .hpdone + moveq #41,d4 + moveq #25,d7 + bra.s .hploop + ; +.hpskip move.l font(pc),a0 + move.l ob_window(a5),a1 + move.l wi_bmap(a1),a1 + move d5,d0 + moveq #2,d1 + move d4,d2 + bsr blit + addq #2,d5 + addq #1,d6 + bra.s .hploop +.hpdone ; + ;show lives remaining... + ; + move.l ob_window(a5),a0 + move wi_bw(a0),d5 + add wi_x(a0),d5 + move ob_lives(a5),d7 + beq.s .lvdone + subq #1,d7 +.lvloop ; + move.l font(pc),a0 + move.l ob_window(a5),a1 + move.l wi_bmap(a1),a1 + subq #8,d5 + move d5,d0 + moveq #2,d1 + moveq #43,d2 + bsr blit + dbf d7,.lvloop +.lvdone ; + ;show weapons! + ; + move.l ob_window(a5),a0 + moveq #44,d5 + add wi_x(a0),d5 + moveq #49,d4 + sub ob_weapon(a5),d4 ;0...4 + moveq #1,d7 +.wploop ; + move.l font(pc),a0 + move.l ob_window(a5),a1 + move.l wi_bmap(a1),a1 + move d5,d0 + moveq #12,d1 + moveq #50,d2 + cmp.b ob_reload(a5),d7 + blt.s .nowp + move d4,d2 +.nowp bsr blit + ; + add #10,d5 + addq #1,d7 + cmp #6,d7 + bcs.s .wploop + ; + rts + +blit ;a0=shapetable to blit, a1=bitmap, d0=X, d1=Y, d2=char + ; + add.l 4(a0,d2*4),a0 + ; + mulu #280,d1 + add.l d1,a1 + move d0,d2 + asr #3,d2 + add d2,a1 ;dest! + move.l a0,a2 + add.l (a0),a2 + lea 8(a0),a3 + addq #4,a0 + and #15,d0 + ror #4,d0 + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l a2,$dff050 + move.l a3,$dff04c + move.l a1,$dff048 + move.l a1,$dff054 + ; + move d0,$dff042 + or blitmode(pc),d0 + move d0,$dff040 + move.l #$ffff0000,$dff044 + moveq #-2,d0 + move d0,$dff064 + move d0,$dff062 + moveq #38,d0 + sub (a0)+,d0 + move d0,$dff060 + move d0,$dff066 + move (a0)+,$dff058 + ; + rts + +blitmode dc $fca + +pixsize dc 0 ;pixel size...at least 2! + +pixelate ;pixel out the coplist...d0=pixelsize + ; + move d0,pixsize + move d0,d1 + ; + ;pixel out vertically, then horizontally + ; + move.l cop(pc),a0 + lea coloffs(pc),a1 + moveq #0,d2 ;x + move d1,d6 + lsr #1,d6 +.forx ; + move.l a0,a3 + lea 0(a1,d2*4),a2 + add.l (a2),a3 + ; + move d2,d5 + add d6,d5 + cmp width(pc),d5 + ble.s .xok + move width(pc),d5 +.xok sub d2,d5 + ble .done + subq #1,d5 + ; +.loop2 moveq #0,d3 + move.l a3,a4 + move.l a0,a5 + add.l (a2)+,a5 + move d1,d7 + lsr #1,d7 ;first Y add +.fory ; + move (a4),d0 ;start column! + move d3,d4 + add d7,d4 + cmp hite(pc),d4 + ble.s .yok + move hite(pc),d4 +.yok sub d3,d4 + ble .nextx + subq #1,d4 + ; +.loop move d0,(a5) + add copmod(pc),a4 + add copmod(pc),a5 + ; + dbf d4,.loop + ; +.nexty add d7,d3 + move d1,d7 + bra.s .fory + ; +.nextx dbf d5,.loop2 + ; + add d6,d2 + move d1,d6 + bra.s .forx + ; +.done rts + +makeqstrip ; + ;do a simple roof/floor strip for blitter to wack in... + ; + cmp #$100,con0poke + bne.s .doit + rts + ; +.doit move.l qstrip(pc),a0 + move.l darktable(pc),a1 + move.l palette(pc),a2 + move.l qstripbot(pc),a4 + moveq #0,d2 + ; + move floorflag(pc),d0 + bne.s .fdone + ; + move camy(pc),d0 + neg d0 + ext.l d0 + lsl.l #focshft,d0 + ; + move.b qcols+1(pc),d2 + move.l qstripbot(pc),a4 + move maxy(pc),d1 + ; +.floop subq #1,d1 + beq.s .fdone + ; + move.l d0,d3 + divs d1,d3 + cmp #maxz,d3 + bcc .fdone + ; + move 0(a1,d3*2),d3 ;darkness (0...15) + move.l 0(a2,d3*4),a3 ;pal to use + move 0(a3,d2*2),-(a4) ;colour! + ; + bra.s .floop + ; +.fdone move roofflag(pc),d0 + bne.s .rdone + ; + move #-256,d0 + sub camy(pc),d0 + ext.l d0 + lsl.l #focshft,d0 ;cam Y + ; + move.b qcols(pc),d2 + ; + move miny(pc),d1 ;SY + ; +.rloop beq.s .rdone + ; + move.l d0,d3 + divs d1,d3 + cmp #maxz,d3 + bcc .rdone + ; + move 0(a1,d3*2),d3 ;darkness (0...15) + move.l 0(a2,d3*4),a3 ;pal to use + move 0(a3,d2*2),(a0)+ ;colour! + ; + addq #1,d1 + bra.s .rloop +.rdone ; + moveq #0,d0 +.loop cmp.l a4,a0 + bcc.s .done + move.l d0,(a0)+ + bra.s .loop + ; +.done rts + +flatcam dc.l 0 +flatyadd dc 0 +flatyadd2 dc 0 + +flat ; + ;do flat above/below panel! + ; + ;d0=Y pos of flat + ;d1=Screen Y add + ;d7=first screen Y (miny or maxy-1) + ; + ;a0=panel to draw on! + ; + ext.l d0 + lsl.l #focshft,d0 + move.l d0,flatcam + ; + move d1,flatyadd + muls copmod(pc),d1 + move d1,flatyadd2 + ; + move d7,d0 + add midy(pc),d0 + mulu copmod(pc),d0 + add.l cop(pc),d0 + add.l coloffs(pc),d0 + move.l d0,a2 +.vloop ; + ;find Z on this scanline... + ; + tst d7 + beq .rts + move.l flatcam(pc),d6 + divs d7,d6 ;d6.w = Z + cmp #maxz,d6 + bcc .rts + ; + move.l darktable(pc),a5 + move 0(a5,d6*2),d5 + move.l palette(pc),a5 + move.l 0(a5,d5*4),a5 + ; + ;Find leftmost X... + ; + move minx(pc),d5 + muls d6,d5 + asr.l #focshft,d5 + ; + move maxx(pc),d4 + muls d6,d4 + asr.l #focshft,d4 + ; + ;rotate X1,Z around camera... + ; + move d5,d0 + move d6,d1 + ; + move d0,d2 + move d1,d3 + ; + muls icm1(pc),d0 + add.l d0,d0 + muls icm2(pc),d3 + add.l d3,d3 + add.l d3,d0 + ; + muls icm3(pc),d2 + add.l d2,d2 + muls icm4(pc),d1 + add.l d1,d1 + add.l d2,d1 + ; + ;d0,d1.q = rotated x1,z + ; + ;rotate X2,Z around camera... + ; + move d4,d2 + move d6,d3 + ; + muls icm1(pc),d4 + add.l d4,d4 + muls icm2(pc),d3 + add.l d3,d3 + add.l d3,d4 + ; + muls icm3(pc),d2 + add.l d2,d2 + muls icm4(pc),d6 + add.l d6,d6 + add.l d2,d6 + ; + ;d4,d6.q = rotated x2,z + ; + move width(pc),d5 + ext.l d5 + sub.l d0,d4 ;Xadd + divs.l d5,d4 + sub.l d1,d6 ;Zadd + divs.l d5,d6 + ; + ;d0,d1.q=x,z + ;d4,d6.q=xadd,zadd + ; + ;move.l d4,d2 + ;asr.l #1,d2 + ;add.l d2,d0 + ; + ;move.l d6,d2 + ;asr.l #1,d2 + ;add.l d2,d1 + ; + swap d0 + add camx(pc),d0 + swap d1 + add camz(pc),d1 + swap d4 + swap d6 + ; + move d7,-(a7) + moveq #127,d7 + moveq #0,d2 + moveq #0,d3 + ; + move.l a2,a3 + ; + move wdiv32(pc),-(a7) + ; +.hloop2 moveq #31,d5 + ; +.hloop tst (a3) ;check destination! + bne.s .skip + ; + and d7,d0 + and d7,d1 + move d0,d2 + lsl #7,d2 + add d2,d1 + add.l d4,d0 + move.b 0(a0,d1),d3 + addx d2,d0 + add.l d6,d1 + move 0(a5,d3*2),(a3) + addx d2,d1 + addq #4,a3 + dbf d5,.hloop + bra.s .hhh + ; +.skip add.l d4,d0 + addx d2,d0 + add.l d6,d1 + addx d2,d1 + addq #4,a3 + dbf d5,.hloop + ; +.hhh addq #4,a3 + subq #1,(a7) + bgt.s .hloop2 + bne.s .kl + ; + move wrem32(pc),d5 + bpl.s .hloop + ; +.kl move.l (a7)+,d7 + add flatyadd(pc),d7 + add flatyadd2(pc),a2 + bra .vloop + ; +.rts rts + +doanims move.l map_anim(pc),a0 + lea textures,a1 + ; +.loop move (a0)+,d0 ;how many frames + beq.s .done + movem (a0)+,d1-d2 ;first, delay + subq #1,(a0)+ + bgt.s .loop + move d2,-2(a0) + lea 0(a1,d1*4),a2 + ; + ;do the anim! + ; + subq #2,d0 + move.l (a2),d2 +.loop2 move.l 4(a2),(a2)+ + dbf d0,.loop2 + move.l d2,(a2) + bra.s .loop + ; +.done rts + +dorots ; + move.l camrots2(pc),a6 + lea rotpolys(pc),a5 ;header! + ; +rotloop move.l (a5),a5 + tst.l (a5) + beq .done + move rp_speed(a5),d0 + beq.s rotloop + ; + add d0,rp_rot(a5) + move rp_rot(a5),d0 + ; + move.l rp_first(a5),a2 ;first + move rp_num(a5),d5 + subq #1,d5 + move d5,d4 + lsl #5,d4 + lea 0(a2,d4),a1 ;previous + lea rp_lx(a5),a3 + ; + btst #0,rp_flags+1(a5) + bne.s morph + ; +.rot movem rp_cx(a5),d6-d7 ;centre x,z + and #1023,d0 + lea 0(a6,d0*8),a4 ;rotation matrix. + ; +.loop bsr rotter + add d6,d0 + add d7,d1 + movem d0-d1,zo_lx(a2) + movem d0-d1,zo_rx(a1) + bsr rotter + movem d0-d1,zo_na(a2) + exg d0,d1 + neg d0 + movem d0-d1,zo_a(a2) + move.l a2,a1 + lea 32(a2),a2 + dbf d5,.loop + ; + bra rotloop + ; +.done rts + ; +morph tst d0 + bgt.s .dp + moveq #0,d0 +.neg neg rp_speed(a5) + bra.s .skip2 +.dp cmp #$4000,d0 + blt.s .skip + move #$4000,d0 + btst #1,rp_flags+1(a5) + bne.s .neg + clr rp_speed(a5) +.skip2 move d0,rp_rot(a5) +.skip ; + move d0,d4 + movem.l a2/d5,-(a7) ;for calculating norms! + ; +.loop movem (a3)+,d0-d3 + muls d4,d0 + lsl.l #2,d0 + swap d0 + add d2,d0 + muls d4,d1 + lsl.l #2,d1 + swap d1 + add d3,d1 + movem d0-d1,zo_lx(a2) + movem d0-d1,zo_rx(a1) + move.l a2,a1 + lea 32(a2),a2 + dbf d5,.loop + ; + movem.l (a7)+,a2/d5 + ; +.loop2 move zo_rx(a2),d0 + sub zo_lx(a2),d0 + move zo_rz(a2),d1 + sub zo_lz(a2),d1 + bsr calcnormvec + movem d0-d1,zo_na(a2) + exg d0,d1 + neg d0 + movem d0-d1,zo_a(a2) + lea 32(a2),a2 + dbf d5,.loop2 + ; + bra rotloop + +calcnormvec ;d0,d1 = vector...normalize! + ; + ;OK, find vector length! + ; + move d0,d2 + muls d2,d2 + move d1,d3 + muls d3,d3 + add.l d3,d2 + ; + ;OK, sqr of d2.l! + ; + move.l #$10000,d3 + ; +.fitit cmp.l #16384,d2 ;fits? + bcs.s .ok + asr.l #1,d2 + mulu.l #92681,d4:d3 ;mult by sqr(2) + move d4,d3 + swap d3 + bra.s .fitit + ; +.ok ;OK to look up, but multiply the result.w by d3.q + ; + move.l sqr(pc),a0 + and #$fffe,d2 + movem 0(a0,d2),d2 ;sqr.l! + mulu.l d3,d2 + swap d2 ;length.w + ; + ;length should be >= both abs(xvec) AND abs(zvec) + ; + move d0,d3 + bpl.s .xp + neg d3 +.xp move d1,d4 + bpl.s .zp + neg d4 +.zp ; + cmp d4,d3 + bcc.s .bg + exg d3,d4 +.bg ; + cmp d3,d2 + bcc.s .lo + move d3,d2 +.lo ; + ext.l d2 + ; + swap d0 + clr d0 + divs.l d2,d0 + muls.l #32766,d0 + swap d0 + ; + swap d1 + clr d1 + divs.l d2,d1 + muls.l #32766,d1 + swap d1 + rts + +rotter movem (a3)+,d0-d1 ;this x,z + move d0,d2 + move d1,d3 + ; + muls (a4),d0 + muls 2(a4),d3 + add.l d3,d0 + add.l d0,d0 + swap d0 ;new x! + ; + muls 4(a4),d2 + muls 6(a4),d1 + add.l d2,d1 + add.l d1,d1 + swap d1 + ; + rts + +dodoors lea doors(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + move.l do_poly(a5),a0 + move do_fracadd(a5),d0 + add d0,do_frac(a5) + move do_frac(a5),d0 + move d0,d1 + add d1,d1 + move d1,zo_open(a0) ;copy frac + ; + move do_rx(a5),d1 + sub do_lx(a5),d1 ;width + move d1,d2 + muls d0,d2 + lsl.l #2,d2 + swap d2 + move do_lx(a5),d3 + sub d2,d3 + move d3,zo_lx(a0) + add d1,d3 + move d3,zo_rx(a0) + ; + move do_rz(a5),d1 + sub do_lz(a5),d1 + move d1,d2 + muls d0,d2 + lsl.l #2,d2 + swap d2 + move do_lz(a5),d3 + sub d2,d3 + move d3,zo_lz(a0) + add d1,d3 + move d3,zo_rz(a0) + ; + tst d0 + beq.s .kill + cmp #$4000,d0 + bne.s .loop + ; +.kill move.l a5,a0 + killitem doors + move.l a0,a5 + bra .loop + ; +.done rts + +doorsfxflag dc 0 + +execevent ;d0=event number to execute...1,2... + ; + sf doorsfxflag + move.l map_map(pc),a6 + move.l map_events(pc),a0 + add.l 0(a0,d0*4),a6 + ; +exec_loop move (a6)+,d0 + beq.s .rts + subq #1,d0 + beq exec_addobj ;1 - add an object (alien etc) + subq #1,d0 + beq exec_opendoor ;2 - open a door + subq #1,d0 + beq exec_teleport ;3 - teleport + subq #1,d0 + beq exec_loadobjs ;4 - load objects + subq #1,d0 + beq exec_changetxt ;5 - change texture + subq #1,d0 + beq exec_rotpolys ;6 - start polygons rotating! + ; + warn #$f0f + ; +.rts tst doorsfxflag + beq.s .nodoor + clr doorsfxflag + move.l doorsfx(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx +.nodoor rts + +exec_changetxt ; + move (a6)+,d0 ;zone# + move.l map_poly(pc),a1 + lsl #5,d0 + lea 0(a1,d0),a1 ;polygon to change + ; + move (a6)+,d0 ;new texture + move.b d0,zo_t(a1) + bra exec_loop + +exec_opendoor st doorsfxflag + addlast doors ;a0=new door + ; + move (a6)+,d0 ;door # + move.l map_poly(pc),a1 + lsl #5,d0 + lea 0(a1,d0),a1 ;polygon to open! + ; + ;calc lx add, lz add, rx add, rz add + ; + move.l a1,do_poly(a0) + move.l zo_lx(a1),do_lx(a0) + move.l zo_rx(a1),do_rx(a0) + clr do_frac(a0) + move #$100,do_fracadd(a0) + bra exec_loop + +exec_teleport move.l eventobj(pc),a0 + ; + move (a6)+,ob_telex(a0) + addq #2,a6 + move (a6)+,ob_telez(a0) + move (a6)+,ob_telerot(a0) + ; + tst finished2 + bne exec_loop + ; + move #2,ob_pixsizeadd(a0) + bsr dotelesfx + bra exec_loop + +dotelesfx move.l telesfx(pc),a0 + moveq #64,d0 + moveq #10,d1 + bra playsfx + +exec_loadobjs ; +.loop move (a6)+,d0 + bmi .done + bsr loadanobj + bra.s .loop +.done ; + bra exec_loop + +loadanobj ;d0=object#...sys must be permitted + ; + lea objinfo,a2 + mulu #objinfof-objinfo,d0 + move.l _ob_shape-objinfo(a2,d0),a2 + lea 8(a2),a3 ;filename + ; + tst.l (a2) + bne.s .skip + move.l a3,a0 + moveq #1,d1 + bsr loadfile + move.l d0,(a2) + beq.s .skip + move.l d0,a0 + jsr remapanim +.skip ; + tst.l 4(a2) + bne.s .rts + move.l a3,a0 +.loop tst.b (a3)+ + bne.s .loop + move.b #'2',-(a3) + moveq #1,d1 + bsr loadfile + clr.b (a3) + move.l d0,4(a2) + beq.s .rts + move.l d0,a0 + jsr remapanim + ; +.rts rts + +exec_rotpolys ; + ;could also be morphpolys depending on bit 0 of flags! + ; + addlast rotpolys + bne.s .ok + addq #8,a6 + bra exec_loop + ; +.ok st doorsfxflag + movem (a6)+,d0-d3 ;polynum,count,speed,flags + ; + clr rp_rot(a0) + move d1,rp_num(a0) + move d2,rp_speed(a0) + move d3,rp_flags(a0) + move d1,d5 + subq #1,d5 + move.l map_poly(pc),a2 ;polygons! + lsl #5,d0 + add d0,a2 + move.l a2,rp_first(a0) + ; + btst #0,d3 + beq .rot + ; + ;OK, prepare for morph + ; + lsl #5,d1 + lea 0(a2,d1),a3 + lea rp_vx(a0),a1 + ; +.loop movem zo_lx(a3),d0-d1 + movem zo_lx(a2),d2-d3 + sub d2,d0 + sub d3,d1 + movem d0-d3,(a1) + addq #8,a1 + ; + lea 32(a2),a2 + lea 32(a3),a3 + dbf d5,.loop + ; + bra exec_loop + ; +.rot ;First, calc centre X,Z into d6,d7 + ; + moveq #0,d6 + moveq #0,d7 + move.l a2,a1 + ; +.loop0 movem zo_lx(a1),d0/d2 + add.l d0,d6 + add.l d2,d7 + lea 32(a1),a1 + dbf d5,.loop0 + ; + divu d1,d6 + divu d1,d7 + movem d6-d7,rp_cx(a0) + ; + lea rp_lx(a0),a1 + subq #1,d1 + ; +.loop2 movem zo_lx(a2),d0/d2 + sub d6,d0 + move d0,(a1)+ + sub d7,d2 + move d2,(a1)+ + move.l zo_na(a2),(a1)+ + ; + lea 32(a2),a2 + dbf d1,.loop2 + ; + bra exec_loop + +exec_addobj clr.l dummy + move (a6)+,d0 ;monster type + lea objinfo,a2 + mulu #objinfof-objinfo,d0 + add.l d0,a2 + move.l (a2)+,a3 + tst.l (a3) + beq.s .ok +.no addq #8,a6 + bra exec_loop +.ok cmp #2,-2(a6) ;player? + bcc.s .notp + addfirst objects + bra.s .bum +.notp addlast objects +.bum beq.s .no + move.l a0,a5 + ; + move.l a5,(a3) + ; + move (a6)+,ob_x(a5) + move (a6)+,ob_y(a5) + move (a6)+,ob_z(a5) + move (a6)+,ob_rot(a5) + ; + lea ob_info(a5),a3 + move #(objinfof-objinfo-4)>>1-1,d0 +.loop move (a2)+,(a3)+ + dbf d0,.loop + ; + tst ob_blood(a5) ;hi bit of blood=1=invisible! + smi d0 + ext d0 + move d0,ob_invisible(a5) + ; + bsr calcvecs + movem.l d4-d5,ob_xvec(a5) + ; + move.l ob_shape(a5),a0 + move.l 4(a0),ob_chunks(a5) + move.l (a0),a0 + move.l a0,ob_shape(a5) + ; + move an_maxw(a0),d0 + move d0,ob_rad(a5) + mulu d0,d0 + move.l d0,ob_radsq(a5) + ; + clr.l ob_washit(a5) + ; + bsr rnddelay + ; + bra exec_loop + +rnddelay move ob_range(a5),d0 + bsr rndn + add ob_base(a5),d0 + move d0,ob_delay(a5) + ; + rts + +seedrnd ;seed number in d0.w + ; + moveq #54,d1 + lea rndtable(pc),a0 + ; +.loop move d0,(a0)+ + mulu #$1efd,d0 + add #$dff,d0 + dbf d1,.loop + ; + move.l a0,k_index + move.l #rndtable+48,j_index + rts + +rndw ;return rnd number 0...65535 if d0.w + ; + movem.l a0/a1,-(a7) + lea rndtable(pc),a1 + move.l j_index(pc),a0 + move -(a0),d0 + cmp.l a0,a1 + bne.s .skip + lea rndtable+110(pc),a0 +.skip move.l a0,j_index + move.l k_index(pc),a0 + add -(a0),d0 + move d0,(a0) + cmp.l a0,a1 + bne.s .skip2 + lea rndtable+110(pc),a0 +.skip2 move.l a0,k_index + movem.l (a7)+,a0/a1 + rts + +savernd lea rndtable(pc),a0 + lea rndback(pc),a1 + moveq #(rndtablef-rndtable)/2-1,d0 +.loop move (a0)+,(a1)+ + dbf d0,.loop + rts + +loadrnd lea rndback(pc),a0 + lea rndtable(pc),a1 + moveq #(rndtablef-rndtable)/2-1,d0 +.loop move (a0)+,(a1)+ + dbf d0,.loop + rts + +rndtable ds.w 55 +k_index dc.l 0 +j_index dc.l 0 +rndtablef + +rndback ds.b rndtablef-rndtable + +rndl bsr rndw + move d0,d1 + bsr rndw + swap d0 + move d1,d0 + rts + +rndn move d0,d1 + bsr rndw + mulu d1,d0 + swap d0 + rts + +calcangle2 ;angle of camera to object in a5 + ; + move camx(pc),d0 + sub ob_x(a5),d0 + move camz(pc),d1 + sub ob_z(a5),d1 + bra.s calcangle_ + +calcangle ;angle of object a5 to object a0... + ; + move ob_x(a0),d0 + sub ob_x(a5),d0 + move ob_z(a0),d1 + sub ob_z(a5),d1 + ; +calcangle_ ;d0.w=x d1.w=y (dest-src)! + ; + moveq #0,d2 + tst d1 + bpl.s .hpos + moveq #16,d2 + neg d1 +.hpos tst d0 + bpl.s .wpos + eor #8,d2 + neg d0 +.wpos cmp d1,d0 + bmi.s .notsteep + bne.s .neq + move #$2000,d1 + bra.s .flow +.neq eor #4,d2 + exg d1,d0 +.notsteep tst d1 + bne.s .noflow + moveq #0,d1 + bra.s .flow +.noflow ext.l d0 + swap d0 + divu d1,d0 + lsr #6,d0 + and #1022,d0 + move .arc(pc,d0),d1 +.flow move.l .oct(pc,d2),d0 + eor d0,d1 + swap d0 + add d1,d0 + lsr #8,d0 + rts + ; +.oct dc 0,0,$4000,-1,0,-1,$c000,0 + dc $8000,-1,$4000,0,$8000,0,$c000,-1 +.arc incbin arc.bin + +currplayer dc.l 0 + +calcscene ;a5=player object + ; + move #$20,$dff09a + ; + move.l a5,currplayer + move.l ob_palette(a5),palette + move ob_thermo(a5),thermo + move ob_infra(a5),infra + move ob_pixsize(a5),pixsize + ; + clr.l shapelist + move.l a5,a0 + bsr calccamera + bsr makewalls + ; + lea objects(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq.s .done + cmp.l currplayer(pc),a5 + beq.s .loop + move.l ob_render(a5),a0 + tst ob_invisible(a5) + beq.s .notinvs + bpl.s .hb + move.l #drawobjtrans,shaperender + bra.s .rit +.hb move.l #drawobjinvs,shaperender +.rit jsr (a0) + move.l #drawobjnorm,shaperender + bra.s .loop +.notinvs jsr (a0) + bra.s .loop +.done ; + lea gore(pc),a5 + ; +.loop2 move.l (a5),a5 + tst.l (a5) + beq.s .done2 + ; + movem go_x(a5),d0/d2 + moveq #0,d1 + move.l go_shape(a5),a0 + move #$200,d7 + bsr drawshape_q + ; + bra.s .loop2 + ; +.done2 move #$8020,$dff09a + ; + rts + +blitscene bclr #7,ob_update(a5) + beq.s .noupdate + ; + bclr #7,ob_update+1(a5) + beq.s .stats + ; + move.l ob_window(a5),a2 + moveq #9,d0 + bsr wcopy + bsr initstats + ; +.stats bsr showstats + ; +.noupdate move ob_messtimer(a5),d0 + bpl.s .mskip + addq #1,d0 + beq.s .mdone + neg ob_messtimer(a5) + move.l ob_window(a5),a0 + bsr putstrip + bsr printmess + bra.s .mskip + ; +.mdone clr ob_messtimer(a5) + move.l ob_window(a5),a0 + bsr putstrip +.mskip ; + rts + +drawscene ;a5=player + ; + move.l ob_window(a5),a0 + bsr dbwindow + ; + bsr castwalls + bsr makeqstrip + bsr renderwalls + ; + move floorflag(pc),d0 + ble.s .nofloor + ; + move camy(pc),d0 + neg d0 + moveq #-1,d1 + move maxy(pc),d7 + subq #1,d7 + move.l floor(pc),a0 + bsr flat + ; +.nofloor move roofflag(pc),d0 + ble.s .noflat + ; + move #-255,d0 + sub camy(pc),d0 + moveq #1,d1 + move miny(pc),d7 + move.l roof(pc),a0 + bsr flat + ; +.noflat bsr drawshapes + bsr drawblood + ; + move.l currplayer(pc),a0 + move ob_pixsize(a0),d0 + bne pixelate + rts + +chatstuff move chatok(pc),d0 + beq.s .rts + ; + move chatoutget(pc),d0 + cmp chatoutput(pc),d0 + beq.s .noout + and #31,d0 + lea chatout(pc),a0 + move.b 0(a0,d0),d0 ;chat out character! + addq #1,chatoutget + moveq #1,d1 + move d0,-(a7) + bsr chatprintout + move (a7)+,d0 + sub.b #32,d0 ;encode for chat + bset #6,d0 + bsr serput + ; +.noout move chatinget(pc),d0 + cmp chatinput(pc),d0 + beq.s .rts + and #31,d0 + lea chatin(pc),a0 + move.b 0(a0,d0),d0 + addq #1,chatinget + moveq #2,d1 + bsr chatprintin + ; +.rts rts + +sfxvbint lea sfxs(pc),a1 + moveq #3,d3 + ; +.loop tst fx_status(a1) + ble.s .skip + ; + ;this one queued! gotta play it... + ; + subq #1,fx_status(a1) + bgt.s .skip + move.l fx_sfx(a1),a0 + bsr playsfxnow + ; +.skip lea fx_size(a1),a1 + dbf d3,.loop + ; + ;fade out song if nec. + ; + move fadevol(pc),d0 + beq.s .nofade + move.l medat(pc),a1 + sub #$80,fadevol + bgt.s .setvol + clr fadevol + jmp 12(a1) ;stop song + bra.s .nofade + ; +.setvol move fadevol(pc),d0 + lsr #8,d0 + jmp 16(a1) ;set volume + ; +.nofade rts + + dc.l readmodem +joytable dc.l readjoy1,readjoy0,readkeys,readcd321,readcd320 + +readjoy ;a0=player + move ob_cntrl(a0),d0 + bmi.s readmodem + ; + lea joyx0(pc),a0 + lea 0(a0,d0*8),a0 + move.l joytable(pc,d0*4),a1 + jsr (a1) + move linked(pc),d0 + bne.s .send + rts +.send ; + ;a0=cntrl block + ; + bsr encodejoy + movem.l d0/a0,-(a7) + bsr serput + movem.l (a7)+,d0/a0 + ; +.noput lea pbuff(pc),a1 + ; + move pput(pc),d1 + and #127,d1 + move.b d0,0(a1,d1) + addq #1,pput + ; + move pget(pc),d1 + and #127,d1 + move.b 0(a1,d1),d0 + addq #1,pget + ; + bra decodejoy + ; +readmodem ; +.waitser bsr serget + bpl.s .sergot + ; + ;OK, do a vwait to allow other machine to catch up! + ; + move #$20,$dff09c +.vw ; + ifne debugser + col #$f0f + endc + ; + btst #5,$dff01f + beq.s .vw + ; + move #$20,$dff09c + bsr chatstuff + bra.s .waitser + ; +.sergot lea joyxs(pc),a0 + tst.b d0 + bpl .djoy + and #$ff,d0 + move d0,finished + moveq #0,d0 + ; +.djoy bsr decodejoy + move.l (a0)+,joyx + move.l (a0),joyb + rts + +escape dc 0 + +readjoys ;fill in appropriate 'joyxn' block...check escape + ; + qkey $45 + beq.s .noesc + st escape +.noesc move finished(pc),d0 + or finished2(pc),d0 + bne.s .rts + ; + move.l player1(pc),a0 + bsr readjoy + move gametype(pc),d0 + beq.s .rts + move.l player2(pc),a0 + bra readjoy +.rts rts + +vbhandler movem.l d2-d7/a2-a6,-(a7) + ; + subq #1,(a1)+ ;inc/dec frame counters + addq #1,(a1) + ; + ;this done every frame! + bsr showit + bsr chatstuff + bsr sfxvbint + ; + btst #0,framecnt+1 + beq exit_vb + tst paused + bne exit_vb + ; + ;OK, movement/animation stuff! + ; + bsr readjoys + bsr doanims + bsr dorots + bsr dodoors + bsr moveblood + ; + ifne debugser + ; + ;OK, kludge in a random number! + move framecnt(pc),d0 + and #126,d0 + bne.s .nornd + ; + bsr rndw + lea .rndasc(pc),a0 + moveq #3,d1 +.loop rol #4,d0 + move d0,d2 + and #15,d2 + add #48,d2 + cmp #58,d2 + bcs.s .rok + addq #7,d2 +.rok move.b d2,(a0)+ + dbf d1,.loop + ; + move.l player1(pc),a5 + bsr message +.rndasc dc.b 'aaaa',0 + even + ; + endc +.nornd ; + move.l a7,obj_stack + lea objects(pc),a5 + ; +obj_loop move.l (a5),a5 + tst.l (a5) + beq exit_vb + ; + move.l ob_logic(a5),a0 + jsr (a0) + ; + ;check collision! + ; + move ob_collwith(a5),d0 + beq.s obj_loop + ; + move ob_rad(a5),d1 + move ob_x(a5),d6 + move ob_z(a5),d7 + ; + lea objects(pc),a0 + ; +.loop2 move.l (a0),a0 + cmp.l a5,a0 + bne.s .this + ; + clr.l ob_washit(a5) ;not hit! can get hit next time... + bra obj_loop +.this ; + move ob_colltype(a0),d2 + and d0,d2 + beq.s .loop2 + ; + move ob_rad(a0),d2 + add d1,d2 ;r sum + ; + move ob_x(a0),d3 + sub d6,d3 + bpl.s .xpl + neg d3 +.xpl cmp d2,d3 + bcc.s .loop2 + ; + move ob_z(a0),d4 + sub d7,d4 + bpl.s .ypl + neg d4 +.ypl cmp d2,d4 + bcc.s .loop2 + ; + mulu d2,d2 + mulu d3,d3 + mulu d4,d4 + add.l d4,d3 + cmp.l d2,d3 + bcc.s .loop2 + ; + cmp.l ob_washit(a5),a0 + beq obj_loop + move.l a0,ob_washit(a5) + ; + move finished2(pc),d0 + bne obj_loop + ; + move.l #killobject3,killjsr + movem.l a0/a5,obj_a0 + exg.l a0,a5 + ; + move ob_damage(a0),d0 + move.l ob_hit(a5),a1 + sub d0,ob_hitpoints(a5) + bgt.s hit_skip + move.l ob_die(a5),a1 + ; +hit_skip jsr (a1) + ; +hit_ret move.l #killobject2,killjsr + movem.l obj_a0(pc),a0/a5 + ; + move ob_damage(a0),d0 + move.l ob_hit(a5),a1 + sub d0,ob_hitpoints(a5) + bgt.s hit_skip2 + move.l ob_die(a5),a1 + ; +hit_skip2 jsr (a1) + bra obj_loop + ; +exit_vb st doneflag + bsr showit + ; + movem.l (a7)+,d2-d7/a2-a6 + moveq #0,d0 + ; +rts rts + +obj_a0 dc.l 0 +obj_a5 dc.l 0 +obj_stack dc.l 0 +killjsr dc.l killobject2 + +killobject ; + move.l killjsr(pc),a0 + jmp (a0) + +killobject2 move.l a5,a0 + killitem objects + move.l a0,a5 + move.l obj_stack(pc),a7 + bra obj_loop + +killobject3 move.l a5,a0 + killitem objects + move.l obj_stack(pc),a7 + bra hit_ret + +bloodspeed bsr rndw + ext.l d0 + lsl.l #2,d0 + rts + +bloodspeed2 bsr rndw + ext.l d0 + lsl.l #5,d0 + rts + +bloodspeed3 bsr rndw + ext.l d0 + lsl.l #4,d0 + rts + +makesparksq move.l ob_chunks(a5),a2 + ; +makesparks ;a2=sparks + ; + movem.l ob_x(a5),d2-d4 + move 2(a2),d5 + subq #1,d5 + ; +.loop addlast objects + beq .rts + movem.l d2-d4,ob_x(a0) + bsr bloodspeed2 + move.l d0,ob_xvec(a0) + bsr bloodspeed2 + move.l d0,ob_yvec(a0) + bsr bloodspeed2 + move.l d0,ob_zvec(a0) + move.l a2,ob_shape(a0) + move d5,ob_frame(a0) + move.l #sparkslogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + clr ob_invisible(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + bsr rndw + and #15,d0 + add #15,d0 + move d0,ob_delay(a0) + dbf d5,.loop +.rts rts + +sparkslogic subq #1,ob_delay(a5) + ble killobject + movem.l ob_x(a5),d0-d2 + add.l ob_xvec(a5),d0 + add.l ob_yvec(a5),d1 + add.l ob_zvec(a5),d2 + movem.l d0-d2,ob_x(a5) + rts + +bloodymess ;throw random blood splots everywhere! + ; + bsr bloodspeed2 + add.l ob_x(a5),d0 + move.l d0,d2 + bsr bloodspeed2 + add.l ob_gutsy(a5),d0 + move.l d0,d3 + bsr bloodspeed2 + add.l ob_z(a5),d0 + move.l d0,d4 + ; +.loop addlast blood + beq.s .done + ; + movem.l d2-d4,bl_x(a0) + bsr bloodspeed + move.l d0,bl_xvec(a0) + bsr bloodspeed + move.l d0,bl_yvec(a0) + bsr bloodspeed + move.l d0,bl_zvec(a0) + move ob_blood(a5),bl_color(a0) + ; + dbf d7,.loop + ; +.done rts + +bloodymess2 ;throw random blood splots everywhere! + ; + bsr bloodspeed2 + add.l ob_x(a5),d0 + move.l d0,d2 + bsr bloodspeed2 + add.l ob_gutsy(a5),d0 + move.l d0,d3 + bsr bloodspeed2 + add.l ob_z(a5),d0 + move.l d0,d4 + ; +.loop addlast blood + beq.s .done + ; + movem.l d2-d4,bl_x(a0) + bsr bloodspeed3 + move.l d0,bl_xvec(a0) + bsr bloodspeed3 + move.l d0,bl_yvec(a0) + bsr bloodspeed3 + move.l d0,bl_zvec(a0) + move ob_blood(a5),bl_color(a0) + ; + dbf d7,.loop + ; +.done rts + +chunklogic move mode(pc),d0 + beq chunklogic2 + ; + add.l #$8000,ob_yvec(a5) + move.l ob_yvec(a5),d0 + add.l ob_y(a5),d0 + blt .skip + ; + ;OK...hit ground! + ; + bsr splat + addlast gore + bne.s .gok + ; + move.l gore(pc),a0 + killitem gore + addlast gore + beq killobject + ; +.gok move ob_x(a5),go_x(a0) + move ob_z(a5),go_z(a0) + move.l ob_shape(a5),a1 + move ob_frame(a5),d0 + add.l 12(a1,d0*4),a1 + move.l a1,go_shape(a0) + ; + bra killobject + ; +.skip move.l d0,ob_y(a5) + bsr checkvecs + beq.s .rts + clr.l ob_xvec(a5) + clr.l ob_zvec(a5) +.rts rts + +chunklogic2 add.l #$8000,ob_yvec(a5) + move.l ob_yvec(a5),d0 + add.l d0,ob_y(a5) + blt.s .ok + ;bsr splat + bra killobject +.ok movem.l ob_xvec(a5),d0-d1 + add.l d0,ob_x(a5) + add.l d1,ob_z(a5) + rts + +splat move.l splatsfx(pc),a0 + moveq #32,d0 + moveq #-1,d1 + bra playsfx + +blowterra move.l robodiesfx(pc),a0 + moveq #64,d0 + moveq #20,d1 + bsr playsfx + bra blowquick + +blowdragon ;same, but messier... + ; + ;loud! + ; + move.l diesfx(pc),a0 + moveq #64,d0 + moveq #50,d1 + bsr playsfx + move.l diesfx(pc),a0 + moveq #64,d0 + moveq #50,d1 + bsr playsfx + move.l robodiesfx(pc),a0 + moveq #64,d0 + moveq #50,d1 + bsr playsfx + move.l robodiesfx(pc),a0 + moveq #64,d0 + moveq #50,d1 + bsr playsfx + ; + moveq #63,d7 + bsr bloodymess2 + ; + move.l ob_chunks(a5),a4 + bsr blowchunx + bsr blowchunx + bsr blowchunx + bsr blowchunx + ; + move.l #dragondead,ob_logic(a5) + move.l #rts,ob_render(a5) + clr ob_colltype(a5) + clr ob_collwith(a5) + move #127,ob_delay(a5) + rts + +dragondead subq #1,ob_delay(a5) + bgt.s .rts + ; + move #3,finished + ; +.rts rts + +blowdeath cmp.l sucker(pc),a5 + bne.s blowobject + clr.l sucker + clr.l sucking + ; +blowobject move.l diesfx(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx +blowquick ; + moveq #31,d7 + bsr bloodymess2 + ; + move.l ob_chunks(a5),d0 + bne.s .chok + ; + moveq #15,d7 + bsr bloodymess2 + bra killobject + ; +.chok move.l d0,a4 + bsr blowchunx + bra killobject + +blowchunx move 2(a4),d7 + subq #1,d7 + ; +.loop addlast objects + beq killobject + movem.l ob_x(a5),d0-d2 + move.l #-64<<16,d1 + movem.l d0-d2,ob_x(a0) + ; + bsr bloodspeed3 + move.l d0,ob_xvec(a0) + bsr bloodspeed3 + sub.l #$40000,d0 + move.l d0,ob_yvec(a0) + bsr bloodspeed3 + move.l d0,ob_zvec(a0) + ; + clr ob_invisible(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + move.l #chunklogic,ob_logic(a0) + move.l a4,ob_shape(a0) + move.l #drawshape_1sc,ob_render(a0) + move d7,ob_frame(a0) + move ob_scale(a5),ob_scale(a0) + ; + move an_maxw(a4),d0 + move d0,ob_rad(a0) + mulu d0,d0 + move.l d0,ob_radsq(a0) + ; + dbf d7,.loop + rts + +hurtdeath ;OK! death head hit! + ; + ;point at player, and start to suck his soul! + ; + move.l sucking(pc),d0 + bne.s .rts + ; + bsr pickplayer + cmp.l #playerlogic,ob_logic(a0) + bne.s .rts + ; + move.l a0,sucking + move.l a5,sucker + ; + move ob_rot(a5),ob_oldrot(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #deathsuck,ob_logic(a5) + move.l #rts,ob_hit(a5) + move #64,ob_delay(a5) + bra.s deathsuck + ; +.rts rts + +deathsuck ;death head sucking out a players soul! + ; + bsr deathbounce + bsr deathanim + subq #1,ob_delay(a5) + bgt.s .more + move ob_oldrot(a5),ob_rot(a5) + move.l ob_oldlogic(a5),ob_logic(a5) + move.l #hurtdeath,ob_hit(a5) + clr.l sucker + clr.l sucking + bra rnddelay + ; +.more move.l sucking(pc),a0 + move.l a0,a2 + bsr calcangle ;point at player! + move d0,ob_rot(a5) + ; + add #128,d0 + and #255,d0 + move.l camrots(pc),a3 + lea 0(a3,d0*8),a3 + ; + move.l a3,suckangle + ; + ;calc x/z vecs + ; + moveq #3,d7 + bsr addsoul + ; +.rts rts + +sucker dc.l 0 +sucking dc.l 0 +suckangle dc.l 0 + +addsoul ;d7 times! + ; + addlast blood + beq .rts + ; + move 2(a3),d2 + ext.l d2 + lsl.l #5,d2 + neg.l d2 + move 6(a3),d3 + ext.l d3 + lsl.l #5,d3 + ; + move.l d2,bl_xvec(a0) + move.l a5,bl_yvec(a0) + move.l d3,bl_zvec(a0) + ; + swap d2 + swap d3 + add d2,d2 + add d3,d3 + add ob_x(a2),d2 + add ob_z(a2),d3 + ; + bsr rndw + and #63,d0 + sub #32,d0 + add d2,d0 + move d0,bl_x(a0) + ; + bsr rndw + and #63,d0 + sub #32,d0 + add #110,d0 + move d0,bl_y(a0) ;>0= funny blood! + ; + bsr rndw + and #63,d0 + sub #32,d0 + add d3,d0 + move d0,bl_z(a0) + ; + bsr rndw + and #1,d0 + move soulcols(pc,d0*2),bl_color(a0) + ; + dbf d7,addsoul + ; +.rts rts + +soulcols dc $0ff,$0f0 + +hurtghoul moveq #31,d7 + bsr bloodymess + rts + +hurtterra move.l a0,-(a7) + move.l shootsfx2(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx + move.l (a7)+,a0 + bra.s hurtobject + +hurtngrunt move.l a0,-(a7) + bsr rndw + and #3,d0 + cmp lastgrunt(pc),d0 + bne.s .new + addq #1,d0 + and #3,d0 +.new move d0,lastgrunt + lea grunttable(pc),a0 + move.l 0(a0,d0*4),a0 + move.l (a0),a0 + moveq #64,d0 + moveq #1,d1 + bsr playsfx + move.l (a7)+,a0 + ; +hurtobject move ob_colltype(a0),d0 + and #24,d0 + bne.s .rts + ; + moveq #23,d7 + bsr bloodymess + move ob_hurtpause(a5),ob_hurtwait(a5) + beq .rts + ; + move #4,ob_frame(a5) + move.l ob_logic(a5),ob_oldlogic2(a5) + move.l ob_hit(a5),ob_oldhit(a5) + move.l #pauselogic2,ob_logic(a5) + move.l #rts,ob_hit(a5) + ; +.rts rts + +lizhurt move.l a0,-(a7) + move.l lizhitsfx(pc),a0 + moveq #64,d0 + moveq #1,d1 + bsr playsfx + move.l (a7)+,a0 + bra hurtobject + +pauselogic2 subq #1,ob_hurtwait(a5) + bgt.s .rts + clr ob_frame(a5) + move.l ob_oldlogic2(a5),ob_logic(a5) + move.l ob_oldhit(a5),ob_hit(a5) +.rts rts + +pauselogic subq #1,ob_delay(a5) + bgt.s .skip + ; + bsr rnddelay + move.l ob_oldlogic(a5),ob_logic(a5) + ; + ;if in front of player, continue on old course... + ; + bsr pickcalc + ; + ;bsr pickplayer + ;tst ob_invisible(a0) + ;bne.s .useold ;can't see player! no intelligence... + ;bsr calcangle + ; + move ob_rot(a0),d1 + and #255,d1 + sub d0,d1 + bpl.s .pl + neg d1 +.pl cmp #64,d1 + bcs.s .skip + cmp #192,d1 + bcc.s .skip + ; +.useold move ob_oldrot(a5),ob_rot(a5) + bsr calcvecs + ; +.skip rts + +shoot ; + ;fire off a bullet... + ; + ;d2 : colltype + ;d3 : collwith + ;d4 : hitpoints + ;d5 : damage + ;d6 : speed + ;a2=bullet shape + ;a3=sparks shape + ; + addfirst objects + beq .rts + ; + move ob_bouncecnt(a5),ob_bouncecnt(a0) + move ob_x(a5),ob_x(a0) + move ob_y(a5),d0 + add ob_firey(a5),d0 + move d0,ob_y(a0) + move ob_z(a5),ob_z(a0) + move.l #firelogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + move.l #rts,ob_hit(a0) + move.l #killobject,ob_die(a0) + move d2,ob_colltype(a0) + move d3,ob_collwith(a0) + move d4,ob_hitpoints(a0) + move d5,ob_damage(a0) + move d6,ob_movspeed(a0) + move.l a2,ob_shape(a0) + clr ob_invisible(a0) + clr ob_frame(a0) + move.l a3,ob_chunks(a0) + ; + move ob_rot(a5),d0 + and #255,d0 + move.l camrots(pc),a1 + lea 0(a1,d0*8),a1 + ; + move 2(a1),d0 + move d0,ob_nxvec(a0) + neg d0 + muls d6,d0 + add.l d0,d0 + move 6(a1),d1 + move d1,ob_nzvec(a0) + muls d6,d1 + add.l d1,d1 + ; + movem.l d0-d1,ob_xvec(a0) + ;add.l d0,ob_x(a0) + ;add.l d1,ob_z(a0) + ; + move #32,ob_rad(a0) + move.l #32*32,ob_radsq(a0) + ; +.rts rts + +pickcalc ;pick a player and calculate angle to player! + ; + bsr pickplayer + bsr calcangle + tst ob_invisible(a0) + beq.s .rts + move d0,-(a7) + bsr rndw + and #63,d0 + sub #32,d0 + add (a7)+,d0 + and #255,d0 +.rts rts + +fire1 bsr pickcalc + ; + ;random noise for inaccuracy! + ; + move d0,-(a7) + bsr rndw + and #31,d0 + sub #16,d0 + add (a7)+,d0 + and #255,d0 + ; + move d0,ob_rot(a5) + bsr calcvecs + move #7,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #pauselogic,ob_logic(a5) + clr.l ob_frame(a5) + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #1,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet1,a2 + lea sparks1,a3 + ; + bsr shoot + ; + rts + +pickplayer ;pick nearest player + ; + move.l player1(pc),a0 + move gametype(pc),d0 + beq.s .rts + move.l player2(pc),a1 + move linked(pc),d0 + bpl.s .nosw + ; + exg a0,a1 +.nosw ; + tst ob_hitpoints(a0) + beq .sw + tst ob_hitpoints(a1) + beq.s .rts + ; + move ob_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move ob_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 ;dist to player a0 + ; + move ob_x(a5),d1 + sub ob_x(a1),d1 + muls d1,d1 + move ob_z(a5),d2 + sub ob_z(a1),d2 + muls d2,d2 + add.l d2,d1 ;dist to player a1 + ; + cmp.l d1,d0 + bcs.s .rts + ; +.sw move.l a1,a0 + ; +.rts rts + +checkcoll ;check for collision between a5, and a0 + ; + move ob_rad(a5),d1 + move ob_rad(a0),d2 + add d1,d2 ;r sum + ; + move ob_x(a0),d3 + sub ob_x(a5),d3 + bpl.s .xpl + neg d3 +.xpl cmp d2,d3 + bcc.s .no + ; + move ob_z(a0),d4 + sub ob_z(a5),d4 + bpl.s .ypl + neg d4 +.ypl cmp d2,d4 + bcc.s .no + ; + mulu d2,d2 + mulu d3,d3 + mulu d4,d4 + add.l d4,d3 + cmp.l d2,d3 + bcc.s .no + ; + moveq #-1,d0 + rts + ; +.no moveq #0,d0 + rts + +baldycharge ; + ;baldy charging at player! + ; + bsr checkvecs + beq baldy_skip + ; +baldy_tonorm move.l ob_movspeed(a5),d0 + lsr.l #2,d0 + move.l d0,ob_movspeed(a5) + ; + move.l ob_framespeed(a5),d0 + lsr.l #2,d0 + move.l d0,ob_framespeed(a5) + ; + move.l ob_oldlogic(a5),ob_logic(a5) + bsr rnddelay + ; + bra monsterfix + ; +baldy_skip ;close to player? start throwing punches around! + ; + bsr pickcalc + ; + sub ob_rot(a5),d0 + cmp #32,d0 + bgt baldy_tonorm + cmp #-32,d0 + blt baldy_tonorm + ; + move.l a0,ob_washit(a5) + bsr checkcoll + beq monsternew ;no collisions! + ; + ;go into punch mode! + ; + move.l #baldypunch,ob_logic(a5) + move ob_punchrate(a5),ob_delay(a5) + clr.l ob_frame(a5) + rts + +baldypunch ; + bsr pickplayer + bsr checkcoll + bne.s .doit + ; + clr.l ob_frame(a5) + bra baldy_tonorm + ; +.doit subq #1,ob_delay(a5) + ble.s .punch + rts +.punch move ob_punchrate(a5),ob_delay(a5) + moveq #0,d0 ;stand frame + cmp ob_frame(a5),d0 + bne .skip + ; + clr.l ob_washit(a5) ;punch! + bsr calcangle + move d0,ob_rot(a5) + moveq #5,d0 +.skip move d0,ob_frame(a5) + rts + +calcbangle bsr calcangle + tst ob_invisible(a0) + beq.s .notinv + ; + ;invisible, add some randomeness! + ; + move d0,-(a7) + bsr rndw + and #127,d0 + sub #64,d0 + add (a7)+,d0 + and #255,d0 + ; +.notinv move d0,ob_rot(a5) + rts + +lizardlogic ; + subq #1,ob_delay(a5) + bgt monstermove ;charge? + ; + bsr pickcalc ;pic player in a0! + move ob_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move ob_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 + cmp.l #256*256,d0 + bcc.s bl2 + ; + move.l lizsfx(pc),a0 + moveq #32,d0 + moveq #5,d1 + bsr playsfx + ; + bra bl2 + +baldylogic ; + ;OK, what can baldy do... + ; + ;how about, walk around similar to the marine, but randomly + ;charge at you? + ; + ;then, if he's close enough, he throws a punch! + ; + subq #1,ob_delay(a5) + bgt monstermove ;charge? + ; +bl2 bsr pickcalc + move d0,ob_rot(a5) + ; + move.l ob_movspeed(a5),d0 + lsl.l #2,d0 + move.l d0,ob_movspeed(a5) + move.l ob_framespeed(a5),d0 + lsl.l #2,d0 + move.l d0,ob_framespeed(a5) + ; + bsr calcvecs + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #baldycharge,ob_logic(a5) + ; + rts + +terralogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + ble .fire + ; + move ob_delay(a5),d0 + and #31,d0 + bne monstermove + ; + move.l robotsfx(pc),a0 + moveq #64,d0 + moveq #10,d1 + bsr playsfx + bra monstermove + ; +.fire ;OK, terra goes apeshit! stand there firing off at player! + ;use punchrate as firedelay! + ; + clr ob_frame(a5) + move #1,ob_delay(a5) + move ob_firecnt(a5),ob_delay2(a5) + move.l #terralogic2,ob_logic(a5) + rts + +terralogic2 ; + subq #1,ob_delay(a5) + bgt.s .rts + ; + move ob_firerate(a5),ob_delay(a5) + ; + ;OK, to to face player and fire away! + ; + bsr pickcalc + move d0,ob_rot(a5) + bsr calcvecs + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #16,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet4,a2 + lea sparks4,a3 + ; + bsr shoot + ; + move.l shootsfx3(pc),a0 + moveq #32,d0 + moveq #5,d1 + bsr playsfx + ; + subq #1,ob_delay2(a5) + bgt.s .rts + ; + bsr rnddelay + move.l #terralogic,ob_logic(a5) + ; +.rts rts + +ghoullogic ; + addq #8,ob_bounce(a5) + move ob_bounce(a5),d0 + move.l camrots(pc),a0 + and #255,d0 + move 0(a0,d0*8),d0 + ext.l d0 + lsl.l #5,d0 ;+/- 32 + swap d0 + add #-32,d0 + move d0,ob_y(a5) + ; + bsr pickcalc + move d0,ob_rot(a5) + ; + subq #1,ob_delay(a5) + bgt.s .skip + ; + move #1,ob_frame(a5) + move.l #$2000,ob_framespeed(a5) + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet2,a2 + lea sparks2,a3 + ; + bsr shoot + bsr rnddelay + ; +.skip ;OK, ghoul moves around ignoring walls! + ; + ;he's pointed at player...how about randomly selected to make + ;this his new movement vector? + ; + bsr rndw + move ob_movspeed(a5),d1 + lsl #8,d1 + cmp d1,d0 + bcc.s .no + ; + bsr calcvecs + ; + move.l ghoulsfx(pc),a0 + moveq #32,d0 + moveq #-5,d1 + bsr playsfx + ; +.no movem.l ob_xvec(a5),d0-d1 + add.l d0,ob_x(a5) + add.l d1,ob_z(a5) + ; + move.l ob_framespeed(a5),d0 + beq.s .rts + add.l d0,ob_frame(a5) + cmp #3,ob_frame(a5) + bcs.s .rts + ; + clr ob_frame(a5) + clr.l ob_framespeed(a5) + ; +.rts rts + +demonpause move ob_delay(a5),d0 + move d0,d1 + and #4,d0 + sne d0 + ext d0 + and #5,d0 ;0 or 5 + move d0,ob_frame(a5) + ; + and #7,d1 ;do a fire? + cmp #7,d1 + bne.s .nofire + ; + move ob_delay(a5),d0 + lsr #3,d0 + mulu #18,d0 + lea wtable(pc),a0 + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + movem 0(a0,d0),d4-d6 ;hits,dam,speed + mulu #$c000,d5 + swap d5 ;3/4 damage! + moveq #0,d7 ;acc + movem.l 6(a0,d0),a2-a3 ;bullets/sparks + move.l 14(a0,d0),-(a7) ;sfx! + ; + bsr shoot + ; + move.l (a7)+,a0 + move.l (a0),a0 + moveq #32,d0 + moveq #0,d1 + bsr playsfx + ; +.nofire subq #1,ob_delay(a5) + bgt.s .rts + ; + bsr rnddelay + move.l ob_oldlogic(a5),ob_logic(a5) + ; +.rts rts + +demonlogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + bgt monstermove + ; + bsr pickcalc + ; + move d0,ob_rot(a5) + bsr calcvecs + move #5<<3-1,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #demonpause,ob_logic(a5) + ; + rts + +phantomlogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + bgt monstermove + ; + bsr pickcalc + ; + move d0,ob_rot(a5) + bsr calcvecs + move #7,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #pauselogic,ob_logic(a5) + move #5,ob_frame(a5) + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet3,a2 + lea sparks3,a3 + ; + bra shoot + +deathbounce addq #4,ob_bounce(a5) + move ob_bounce(a5),d0 + move.l camrots(pc),a0 + and #255,d0 + move 0(a0,d0*8),d0 + ext.l d0 + lsl.l #5,d0 ;+/- 64 + swap d0 + add #-48,d0 + move d0,ob_y(a5) + rts + +deathheadlogic ; + ;cruises around rotating at speed ob_delay + ; + bsr deathbounce + ; + bsr checkvecs + bne.s .hit + ; + ;charge player? + ; + bsr pickcalc ;find angle to player + move ob_rot(a5),d1 + and #255,d1 + sub d0,d1 ;am I near? + bpl.s .ansk + neg d1 +.ansk cmp #16,d1 + bcc.s .notnear + ; + ;OK! chargaroony! + ; + move d0,ob_rot(a5) + move.l #deathcharge,ob_logic(a5) + bra calcvecs +.hit add #128,ob_rot(a5) + bsr rnddelay +.notnear move ob_delay(a5),d0 + add d0,ob_rot(a5) + bsr calcvecs + rts + +deathanim move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + cmp.l #$8000,ob_frame(a5) + blt.s .fix + cmp.l #$28000,ob_frame(a5) + blt.s .fok +.fix neg.l d0 + add.l d0,ob_frame(a5) + move.l d0,ob_framespeed(a5) + ; +.fok rts + +deathcharge bsr deathbounce + bsr deathanim + ; + bsr pickcalc + move ob_rot(a5),d1 + and #255,d1 + sub d1,d0 ;am I near? + bpl.s .ansk + neg d0 +.ansk cmp #128,d0 + bcc.s .hit + bsr checkvecs + bne.s .hit2 + rts +.hit2 add #128,ob_rot(a5) +.hit move.l #deathheadlogic,ob_logic(a5) + move.l #$8000,ob_frame(a5) + bra rnddelay + +monsterlogic ; + move ob_rot(a5),ob_oldrot(a5) + ;monster cruising around minding his own business... + ; + subq #1,ob_delay(a5) + ble fire1 + ; +monstermove bsr checkvecs + beq.s monsternew + ; + ;OK, try 90/-90 degrees... + ; +monsterfix bsr rndw + moveq #64,d1 + tst d0 + bpl.s .umk + moveq #-64,d1 +.umk add d1,ob_rot(a5) + bsr calcvecs + bsr checkvecs + beq.s monsternew + ; + add #128,ob_rot(a5) + bsr calcvecs + bsr checkvecs + beq.s monsternew + ; + move ob_oldrot(a5),d0 + add #128,d0 + move d0,ob_rot(a5) + ; + bsr calcvecs + bsr checkvecs +monsternew ; + move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + and #3,ob_frame(a5) + rts + +dragonfire ;dragon fires at you! + ; + ;d2 : colltype + ;d3 : collwith + ;d4 : hitpoints + ;d5 : damage + ;d6 : speed + ;a2=bullet shape + ;a3=sparks shape + ; + subq #1,ob_delay(a5) + bpl .rts + move ob_delay(a5),d0 + cmp #-16*8,d0 + bgt.s .try + move #47,ob_delay(a5) + rts +.try and #7,d0 + bne .rts + ; +.fire moveq #0,d2 ;colltype + moveq #24+3,d3 ;collwith - p1/p2/bullets + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #16,d6 ;speed + lea bullet5,a2 + lea sparks5,a3 + ; + addlast objects + beq .rts + ; + move ob_bouncecnt(a5),ob_bouncecnt(a0) + move ob_x(a5),ob_x(a0) + move ob_y(a5),d0 + add ob_firey(a5),d0 + move d0,ob_y(a0) + move ob_z(a5),ob_z(a0) + move.l #homeinlogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + move.l #makesparksq,ob_hit(a0) + move.l #blowdb,ob_die(a0) + move d2,ob_colltype(a0) + move d3,ob_collwith(a0) + move d4,ob_hitpoints(a0) + move d5,ob_damage(a0) + move d6,ob_movspeed(a0) + move.l a2,ob_shape(a0) + clr ob_invisible(a0) + clr ob_frame(a0) + move.l a3,ob_chunks(a0) + ; + move ob_rot(a5),d0 + and #255,d0 + move.l camrots(pc),a1 + lea 0(a1,d0*8),a1 + ; + move 2(a1),d0 + move d0,ob_nxvec(a0) + neg d0 + muls d6,d0 + add.l d0,d0 + move 6(a1),d1 + move d1,ob_nzvec(a0) + muls d6,d1 + add.l d1,d1 + ; + movem.l d0-d1,ob_xvec(a0) + ; + move #32,ob_rad(a0) + move.l #32*32,ob_radsq(a0) + ; +.rts rts + +blowdb bsr makesparksq + bra killobject + +homeinlogic bsr checkvecs + bne.s blowdb + bsr pickcalc ;find angle to player! + move.l camrots(pc),a0 + lea 0(a0,d0*8),a0 + move 2(a0),d4 ;x acc. + neg d4 + ext.l d4 + lsl.l #2,d4 + move 6(a0),d5 ;z acc. + ext.l d5 + lsl.l #2,d5 + ; + add.l ob_xvec(a5),d4 + move.l d4,d0 + bpl.s .pl1 + neg.l d0 +.pl1 cmp.l #$200000,d0 ;max speed + bcc.s .sk1 + move.l d4,ob_xvec(a5) + ; +.sk1 add.l ob_zvec(a5),d5 + move.l d5,d0 + bpl.s .pl2 + neg.l d0 +.pl2 cmp.l #$200000,d0 + bcc.s .sk2 + move.l d5,ob_zvec(a5) +.sk2 ; + bra putfire + +dragonanim move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + and #3,ob_frame(a5) + rts + +getobrot move ob_rotspeed(a5),d0 + bne.s .addr + ; + ;OK, randomly left/rite! + ; + bsr rndw + and #1,d0 + bne.s .addr2 + moveq #-1,d0 + ; +.addr2 lsl #2,d0 + move d0,ob_rotspeed(a5) + ; +.addr rts + +dragonlogic ;OK! end of game baddy! + ; + ;how about cruising around in a circle a-la + ;deathhead! + ; + bsr dragonanim + bsr dragonfire + bsr checkvecs + beq.s .nohit + ; + ;OK, dragon has hit a wall...rot him around till he's clear! + ; + bsr getobrot + lsl #2,d0 + add d0,ob_rot(a5) + bra calcvecs +.nohit ; + bsr pickcalc + move ob_rot(a5),d1 + and #255,d1 + sub d0,d1 ;am I near? + bpl.s .ansk + neg d1 +.ansk moveq #6,d0 + tst ob_rotspeed(a5) + bne.s .sh + moveq #24,d0 +.sh cmp d0,d1 + bcs.s .near + ; + ;not pointed at player! + bsr getobrot + add d0,ob_rot(a5) + bra calcvecs + ; +.near clr ob_rotspeed(a5) ;towards player! + rts + +weaponlogic ; + move.l camrots(pc),a0 + ; + addq #8,ob_movspeed(a5) + move ob_movspeed(a5),d0 + and #127,d0 + move 2(a0,d0*8),d0 + asr #8,d0 + move d0,ob_y(a5) + ; + move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + move ob_frame(a5),d0 + move.l ob_shape(a5),a0 + cmp 2(a0),d0 + bcs.s .skip + clr ob_frame(a5) +.skip ; + subq #1,ob_delay(a5) + bgt .rts + bsr rnddelay + ; + addlast objects + beq.s .rts + ; + movem.l ob_x(a5),d2-d4 + movem.l d2-d4,ob_x(a0) + bsr bloodspeed2 + move.l d0,ob_xvec(a0) + bsr bloodspeed2 + move.l d0,ob_yvec(a0) + bsr bloodspeed2 + move.l d0,ob_zvec(a0) + move.l ob_chunks(a5),a2 + move.l a2,ob_shape(a0) + move 2(a2),d0 + bsr rndn + move d0,ob_frame(a0) + move.l #sparkslogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + clr ob_invisible(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + bsr rndw + and #15,d0 + add #15,d0 + move d0,ob_delay(a0) +.rts rts + +calcvecs move ob_rot(a5),d0 + ; + and #255,d0 + move.l camrots(pc),a0 + lea 0(a0,d0*8),a0 + ; + move ob_movspeed(a5),d4 + move d4,d5 + muls 2(a0),d4 + add.l d4,d4 + neg.l d4 + move.l d4,ob_xvec(a5) + muls 6(a0),d5 + add.l d5,d5 + move.l d5,ob_zvec(a5) + rts + +checkvecs movem.l ob_xvec(a5),d6-d7 + add.l ob_x(a5),d6 + add.l ob_z(a5),d7 + bsr checknewslow ;ok to stand here? + beq.s .ok + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + bsr checknewslow + bne.s .fix + moveq #-1,d1 ;use old pos, and report hit! + rts + ; +.fix bsr adjustposq ;fixup! + moveq #-1,d1 + ; +.ok move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + tst d1 + rts + +playerdead bsr getcntrl + ; + subq #1,ob_delay(a5) + bgt.s .rts + ; + cmp #2,gametype + bne.s .notcom + ; + ;combat game! + ; + move #4,finished2 + move #1,ob_pixsizeadd(a5) + move.l #rts,ob_logic(a5) + ; + bsr getother + move #1,ob_pixsizeadd(a0) +.rts rts +.notcom ; + tst ob_lives(a5) + beq.s .dead + move.l #waitrestart,ob_logic(a5) + rts + ; +.dead move.l #rts,ob_logic(a5) + ; + tst gametype + bne.s .not1p + ; + ;OK, one player game done! + ; +.allover move #2,finished + rts + ; +.not1p move.l player1,a0 + cmp.l a5,a0 + bne.s .goth + move.l player2,a0 +.goth tst ob_hitpoints(a0) + ble.s .allover + rts + +waitrestart bsr getcntrl + ; + bsr checkfireb + beq.s .rts + ; + move ob_weapon(a5),d0 + move d0,-(a7) + ; + lea p1x(pc),a0 + lea player1_+4,a1 + cmp.l player1,a5 + beq.s .got + lea p2x(pc),a0 + lea player2_+4,a1 +.got lea ob_info(a5),a2 + move #(objinfof-objinfo-4)>>1-1,d0 +.loop move (a1)+,(a2)+ + dbf d0,.loop + move (a0)+,ob_x(a5) + move (a0)+,ob_z(a5) + move (a0)+,ob_rot(a5) + ; + move (a7)+,d0 + move d0,ob_weapon(a5) + ; + move.l ob_shape(a5),a0 + move.l 4(a0),ob_chunks(a5) + move.l (a0),a0 + move.l a0,ob_shape(a5) + ; + bsr resetplayer + move #-1,ob_update(a5) + st ob_lastbut(a5) + ; +.rts rts + +playerdeath bsr getcntrl + ; + addq #4,ob_rot(a5) + addq #4,ob_eyey(a5) + cmp #-32,ob_eyey(a5) + blt .rts + ; + move #-32,ob_eyey(a5) + move.l #playerdead,ob_logic(a5) + move #63,ob_delay(a5) + ; + cmp #2,gametype + bne.s .notcom + ; + ;death in combat game! + ; + move.l player1,a0 + cmp.l a5,a0 + bne.s .got + move.l player2,a0 +.got tst ob_hitpoints(a0) + ble.s .draw ;it's a draw! + ; +.win move.l a5,-(a7) + ; + move.l a0,a5 + clr ob_collwith(a5) + clr ob_colltype(a5) + bsr message + dc.b 'winner!',0 + even + ; + move.l (a7)+,a5 + subq #1,ob_lives(a5) + move #-1,ob_update(a5) ;refresh 'lives' + bsr message + dc.b 'loser!',0 + even + ; + rts +.draw ; + rts +.notcom ; + ;2 player? do damage to both players! + ; + tst gametype + beq.s .nlink + bsr getother + move #-1,ob_update(a0) + subq #1,ob_lives(a0) + bpl.s .nlink + clr ob_lives(a0) + ; +.nlink move #-1,ob_update(a5) + subq #1,ob_lives(a5) + bgt.s .rts + clr ob_lives(a5) + bsr message + dc.b 'game over',0 + even + ; +.rts rts + +getother ;get other player from a5! + ; + move.l player1(pc),a0 + cmp.l a0,a5 + bne.s .rts + move.l player2(pc),a0 +.rts rts + +redpal move.l #palettesr,ob_palette(a5) + move #2,ob_paltimer(a5) + rts + +playerhit tst ob_damage(a0) + beq.s .rts + st ob_update(a5) + bsr redpal +.rts rts + +playerdie bsr redpal + clr ob_hitpoints(a5) + st ob_update(a5) + move.l #playerdeath,ob_logic(a5) + clr ob_colltype(a5) + clr ob_collwith(a5) + rts + +inchealth ;inc health of a5 + ; + addq #5,ob_hitpoints(a5) + cmp #25,ob_hitpoints(a5) + ble.s .skip + move #25,ob_hitpoints(a5) +.skip st ob_update(a5) + bsr message + dc.b 'health bonus!',0 + even + rts + +healthgot bsr playtsfx + move.l a5,-(a7) + move.l a0,a5 + bsr inchealth + move.l (a7)+,a5 + bra killobject + +playtsfx move.l a0,-(a7) + move.l tokensfx(pc),a0 + moveq #64,d0 + moveq #0,d1 + bsr playsfx + move.l (a7)+,a0 + rts + +weapongot bsr playtsfx + ; + move.l a5,-(a7) + move ob_weapon(a5),d0 ;weapon #! + move.l a0,a5 + bsr weapond0 + move.l (a7)+,a5 + bra killobject + +weapond0 cmp ob_weapon(a5),d0 + bne .new + ; + subq.b #1,ob_reload(a5) + beq.s .skip + cmp.b #1,ob_reload(a5) + bne.s .notfull + bsr message + dc.b 'weapon boosted to full!',0 + even + bra.s .kill + ; +.notfull bsr message + dc.b 'weapon boost!',0 + even + ; +.kill st ob_update(a5) + rts + ; +.skip addq.b #1,ob_reload(a5) + add #250,ob_mega(a5) + cmp #ok,ob_mega(a5) + bcs.s .mwb + ; + bsr message + dc.b 'ultra mega overkill!!!',0 + even + rts + ; +.mwb bsr message + dc.b 'mega weapon boost!',0 + even + rts + ; +.new move d0,ob_weapon(a5) + move.b #ireload,ob_reload(a5) + st ob_update(a5) + bsr message + dc.b 'new weapon!',0 + even + bra.s .kill + +invisigot move.l a5,-(a7) + move.l a0,a5 + ; + add #1500,ob_invisible(a5) + bsr message + dc.b 'invisibility!',0 + even + ; + move.l (a7)+,a5 + bra killobject + +invincgot tst ob_hyper(a0) + bne.s .rts + move.l a5,-(a7) + move.l a0,a5 + ; + move #-$200,ob_hyper(a5) + bsr message + dc.b 'hyper!',0 + even + ; + move.l (a7)+,a5 + bra killobject + ; +.rts rts + +bouncygot cmp #3,ob_bouncecnt(a0) + bcc.s .rts + addq #1,ob_bouncecnt(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'bouncy bullets!',0 + even + move.l (a7)+,a5 + bra killobject +.rts rts + +thermogot add #1500,ob_thermo(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'got the thermo glasses!',0 + even + move.l (a7)+,a5 + bra killobject + +maxsize equ $280 + +playertimers tst ob_mega(a5) + beq.s .nomega + subq #1,ob_mega(a5) + bne.s .nomega + bsr message + dc.b 'mega wepaon out...',0 + even + ; +.nomega tst ob_thermo(a5) + beq.s .noth + subq #1,ob_thermo(a5) + bne.s .noth + bsr message + dc.b 'thermo glasses out...',0 + even + ; +.noth tst ob_messtimer(a5) + ble.s .notm + subq #2,ob_messtimer(a5) +.notm ; + tst ob_invisible(a5) + beq.s .noti + subq #1,ob_invisible(a5) + bne.s .noti + bsr message + dc.b 'invisibility out...',0 + even +.noti ; + tst ob_paltimer(a5) + beq.s .notp + subq #1,ob_paltimer(a5) + bne.s .notp + move.l #palettes,ob_palette(a5) +.notp ; + move ob_pixsizeadd(a5),d0 + beq.s .notpix + add d0,ob_pixsize(a5) + bne.s .pixnz + ; + clr ob_pixsizeadd(a5) + bra.s .notpix + ; +.pixnz cmp #24,ob_pixsize(a5) + bne.s .notpix + ; + move finished2(pc),finished + bne.s .notpix + ; + move ob_telex(a5),ob_x(a5) + move ob_telez(a5),ob_z(a5) + move ob_telerot(a5),ob_rot(a5) + neg ob_pixsizeadd(a5) +.notpix ; + move ob_hyper(a5),d0 + beq.s .nothyper + bpl.s .hplus + ; + ;hyper is minus! growing... + ; + subq #4,d0 + move d0,d1 + neg d1 + cmp #maxsize,d1 + bne.s .hdone + move #750<<2+maxsize,d0 + bra.s .hdone + ; +.hplus subq #4,d0 + cmp #maxsize,d0 + bhi.s .hdone2 + bne.s .noteq + bsr message + dc.b 'hyper out...',0 + even + move #maxsize,d0 +.noteq move d0,d1 + cmp #$200,d0 + bne.s .hdone + moveq #0,d0 + ; +.hdone move d1,ob_scale(a5) + ; + move d1,d2 + mulu #((pl_eyey<<16)/$200),d2 + swap d2 + neg d2 + move d2,ob_eyey(a5) + ; + move d1,d2 + mulu #((pl_firey<<16)/$200),d2 + swap d2 + neg d2 + move d2,ob_firey(a5) + ; + move d1,d2 + mulu #((pl_gutsy<<16)/$200),d2 + swap d2 + neg d2 + move d2,ob_gutsy(a5) + ; +.hdone2 move d0,ob_hyper(a5) +.nothyper ; + rts + +footstep move.l d0,-(a7) + move.l footstepsfx(pc),a0 + moveq #16,d0 + moveq #0,d1 + bsr playsfx + move.l (a7)+,d0 + rts + +pbuff ds.b 128 ;player controls to use! +pput dc 0 ;put new cntrl here +pget dc 0 ;read this for actual + +getcntrl move ob_cntrl(a5),d0 + lea joyx0(pc),a0 + move.l 0(a0,d0*8),joyx + move.l 4(a0,d0*8),joyb + rts + +maxrotsp equ $40000 +rotacc equ $20000 +rotrevacc equ $40000 +rotsetacc equ $20000 + +rotplayer ;return rot in d0, leave a0 + ; + move joys(pc),d0 ;strafing? + bne.s .norot + move joyx(pc),d0 + beq.s .norot + ; + move.l #rotacc,d1 ;rotacc + move ob_rotspeed(a5),d2 + beq.s .useacc + eor d2,d0 + bpl.s .useacc + move.l #rotrevacc,d1 ;fast rev! +.useacc move joyx(pc),d0 + bpl.s .plus + neg.l d1 +.plus add.l d1,ob_rotspeed(a5) + cmp.l #maxrotsp,ob_rotspeed(a5) + bgt.s .fixaccpl + cmp.l #-maxrotsp,ob_rotspeed(a5) + bge.s .addrot + move.l #-maxrotsp,ob_rotspeed(a5) + bra.s .addrot +.fixaccpl move.l #maxrotsp,ob_rotspeed(a5) + bra.s .addrot + ; +.norot tst.l ob_rotspeed(a5) + beq.s .skip + bpl.s .orpl + add.l #rotsetacc,ob_rotspeed(a5) + ble.s .addrot +.clrrot clr.l ob_rotspeed(a5) + bra.s .skip +.orpl sub.l #rotsetacc,ob_rotspeed(a5) + bmi.s .clrrot + ; +.addrot move.l ob_rotspeed(a5),d0 + add.l d0,ob_rot(a5) + ; +.skip rts + +moveplayer ;work out movement vector into d0/d1...check still/moving! + ; + move joyy(pc),d0 + bne .move + move joys(pc),d0 + beq.s .still + move joyx(pc),d0 + bne.s .strafe + ; +.still move ob_bounce(a5),d1 + bne.s .nob + rts +.nob add #30,ob_bounce(a5) + move ob_bounce(a5),d1 + and #127,d1 + cmp #30,d1 + bcc .fskip + clr ob_bounce(a5) + clr ob_frame(a5) + bra footstep + ; +.strafe ;do strafe! X rot in d0 + ; + move.l camrots(pc),a1 + lsl #6,d0 ;* ninety degrees + add ob_rot(a5),d0 + and #255,d0 + lea 0(a1,d0*8),a1 + ; + move ob_movspeed(a5),d0 + move d0,d1 + muls 2(a1),d0 + add.l d0,d0 + muls 6(a1),d1 + add.l d1,d1 + neg.l d0 + add.l d0,d6 + add.l d1,d7 + bra .check + ; +.move ;and possibly strafe! + ; + ;work out move vec into d0/d1 + ; + neg d0 + muls ob_movspeed(a5),d0 ;speed + move.l camrots(pc),a1 + move ob_rot(a5),d1 + and #255,d1 + lea 0(a1,d1*8),a1 + move d0,d1 + muls 2(a1),d0 + add.l d0,d0 + muls 6(a1),d1 + add.l d1,d1 + neg.l d0 + add.l d0,d6 + add.l d1,d7 + move joys(pc),d0 + beq.s .check + move joyx(pc),d0 + bne.s .strafe +.check ; + bsr checknewslow + beq.s .newpos + bsr adjustpos + beq.s .newpos + bsr adjustpos + beq.s .newpos + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + bra.s .bounce + ; +.newpos move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + ; +.bounce move ob_bounce(a5),d2 + add #20,ob_bounce(a5) + move ob_bounce(a5),d1 + and #255,d2 + cmp #64,d2 + bcc.s .fskip + and #255,d1 + cmp #64,d1 + bcs.s .fskip + ; + bsr footstep +.fskip ; + move.l ob_framespeed(a5),d1 + add.l d1,ob_frame(a5) + and #3,ob_frame(a5) + rts + +checkevent bsr checknew2 + beq.s .rts + ; + move ob_pixsizeadd(a5),d0 + or finished2(pc),d0 + bne .rts + ; + move zo_ev(a4),d0 ;poly->event + bmi.s .rts + ; + cmp #24,d0 + bne.s .notexit + ; + move #3,finished2 ;pattern done! + move #1,ob_pixsizeadd(a5) ;pixel out + tst gametype + beq.s .onewin + move.l player1(pc),a0 + cmp.l a5,a0 + bne.s .gotcha + move.l player2(pc),a0 +.gotcha move #2,ob_pixsizeadd(a0) ;pixel out other player +.onewin ; + bsr dotelesfx + moveq #24,d0 + ; +.notexit cmp #19,d0 + bcc.s .noclr + ; + ;OK, gotta clear all 'event' zones with same type! + ; + move.l map_poly(pc),a0 + move.l map_ppnt(pc),a1 + moveq #32,d1 +.loop2 cmp zo_ev(a0),d0 + bne.s .skip2 + neg zo_ev(a0) +.skip2 add.l d1,a0 + cmp.l a1,a0 + bcs.s .loop2 + ; +.noclr move.l a5,eventobj + movem.l d6-d7,-(a7) + bsr execevent + movem.l (a7)+,d6-d7 + move.l eventobj(pc),a5 + ; +.rts rts + + ;these updated after a call to 'getcntrl' + ; +joyx dc 0 ;left/rite +joyy dc 0 ;for/back +joyb dc 0 ;fire +joys dc 0 ;strafe + +checksuck cmp.l sucking(pc),a5 + bne.s .nosuck + ; + move.l suckangle(pc),a0 + moveq #25,d0 + move d0,d1 + muls 2(a0),d0 + neg.l d0 + add.l d0,d6 + ; + muls 6(a0),d1 + add.l d1,d7 + bsr checknewslow + beq.s .newok + bsr adjustpos + beq.s .newok + bsr adjustpos + beq.s .newok + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + ; +.newok move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + ; +.nosuck rts + +playerlogic bsr playertimers ;do timer stuff... + bsr getcntrl ;player control + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + ; + ;getting sucked? + ; + ;OK, are we getting pushed/squashed? + ; + bsr checknewslow + beq.s .newok + bsr adjustpos + beq.s .newok2 + bsr adjustpos + beq.s .newok2 + ; + subq #1,ob_hitpoints(a5) + ble playerdie + st ob_update(a5) + bra redpal + ; +.newok2 move.l d6,ob_x(a5) + move.l d7,ob_z(a5) +.newok ; + bsr checksuck + bsr checkevent ;in an event zone? + bsr rotplayer ;rotate + bsr moveplayer ;forward/back/strafe +checkfire ; + move cheat(pc),d0 + beq.s .nocheat + ; + qkey $5f ;help????? + beq.s .noend + move #3,finished + rts +.noend key 10 + beq.s .nohealth + bsr inchealth + bra.s .nocheat +.nohealth move.b (a0),d1 + moveq #5,d0 +.loop btst d0,d1 + bne.s .gotch + subq #1,d0 + bne.s .loop + bra.s .nocheat +.gotch ; + subq #1,d0 + bsr weapond0 + ; +.nocheat bsr checkfireb + beq .nofire + tst.b ob_reloadcnt(a5) + bne .nofire2 + ; + move ob_collwith(a5),d2 + and #3,d2 + eor #3,d2 ;colltype + moveq #0,d3 ;collwith! + ; + move ob_weapon(a5),d0 + mulu #18,d0 + lea wtable(pc),a0 + movem 0(a0,d0),d4-d6 + movem.l 6(a0,d0),a2-a3 + move.l 14(a0,d0),-(a7) + ; + tst ob_mega(a5) + beq.s .nomega + ; + cmp #ok,ob_mega(a5) + bcc.s .threeway + ; + movem.l d2-d6/a2-a3,-(a7) + addq #4,ob_rot(a5) + bsr shoot + movem.l (a7)+,d2-d6/a2-a3 + subq #8,ob_rot(a5) + bsr shoot + addq #4,ob_rot(a5) + bra.s .shdone +.threeway ; + movem.l d2-d6/a2-a3,-(a7) + addq #8,ob_rot(a5) + bsr shoot + movem.l (a7),d2-d6/a2-a3 + sub #16,ob_rot(a5) + bsr shoot + movem.l (a7)+,d2-d6/a2-a3 + addq #8,ob_rot(a5) + ; +.nomega bsr shoot + ; +.shdone move.l (a7)+,a0 + move.l (a0),a0 + moveq #32,d0 + moveq #0,d1 + bsr playsfx + ; + move.b ob_reload(a5),ob_reloadcnt(a5) + rts + ; +.nofire tst.b ob_reloadcnt(a5) + beq.s .rts +.nofire2 subq.b #1,ob_reloadcnt(a5) +.rts rts + + ; + ;hitpoints + ;damage + ;speed + ; +wtable dc 1,1,32 + dc.l bullet1,sparks1,shootsfx3 + dc 5,2,36 + dc.l bullet2,sparks2,shootsfx5 + dc 10,2,40 + dc.l bullet3,sparks3,shootsfx + dc 15,3,40 + dc.l bullet4,sparks4,shootsfx4 + dc 20,5,24 + dc.l bullet5,sparks5,shootsfx5 + +adjustposq ; + neg d0 + move d0,d1 + ; + muls zo_a(a4),d0 + add.l d0,d0 + ; + muls zo_b(a4),d1 + add.l d1,d1 + ; + sub.l d0,d6 + sub.l d1,d7 + ; + rts + +adjustpos bsr adjustposq + ; + ;addq #1,(a4) + ;move.l a4,-(a7) + bsr checknewslow + ;move.l (a7)+,a3 + ;addq #1,(a3) + tst d1 + rts + +checkfireb move joyb(pc),d0 + beq.s .nofire + tst ob_lastbut(a5) + bne.s .skip + move d0,ob_lastbut(a5) + rts +.skip moveq #0,d0 + rts +.nofire clr ob_lastbut(a5) + rts + +eventobj dc.l 0 + +calcbounce ;calculate bounce vector...poly in a4, obj in a5 + ; + ;R=2 N (N dot V) - V + ; + ;where R=reflect vector, N=normal to poly, V=original vector + ; + subq #1,ob_bouncecnt(a5) + bge.s .nok + bsr makesparksq + bra killobject +.nok ; + move.l closewall(pc),a4 + movem ob_nxvec(a5),d0-d1 ;normalized dir + movem zo_na(a4),d2-d3 ;normal to poly + neg d2 + ; + ;calc dot product: + ; + move d0,d4 + muls d2,d4 + move d1,d5 + muls d3,d5 + add.l d5,d4 + add.l d4,d4 + swap d4 ;dot product? + ; + muls d4,d2 + lsl.l #2,d2 + swap d0 + clr d0 + sub.l d0,d2 + swap d2 + ; + muls d4,d3 + lsl.l #2,d3 + swap d1 + clr d1 + sub.l d1,d3 + swap d3 + ; + movem d2-d3,ob_nxvec(a5) + ; + neg d2 + muls ob_movspeed(a5),d2 + add.l d2,d2 + muls ob_movspeed(a5),d3 + add.l d3,d3 + ; + movem.l d2-d3,ob_xvec(a5) + ; + bsr checkvecs + beq.s putfire + bra calcbounce + +firelogic ; + bsr checkvecs + bne calcbounce +putfire ; + addq #1,ob_frame(a5) + move ob_frame(a5),d0 + move.l ob_shape(a5),a0 + cmp 2(a0),d0 + bcs.s .skip + clr ob_frame(a5) +.skip ; + rts + +moveblood lea blood(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + tst bl_y(a5) + ble.s .do + ; + move.l sucking(pc),d0 + beq.s .kill + ; + move.l bl_xvec(a5),d0 + add.l d0,bl_x(a5) + move.l bl_zvec(a5),d1 + add.l d1,bl_z(a5) + ; + move.l bl_dest(a5),a0 + move bl_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move bl_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 + cmp.l #64*64,d0 + bcc.s .loop + bra.s .kill + ; +.do add.l #$8000,bl_yvec(a5) + ; + movem.l bl_xvec(a5),d0-d2 + add.l d1,bl_y(a5) + blt.s .ok + ; +.kill move.l a5,a0 + killitem blood + move.l a0,a5 + bra .loop + ; +.ok add.l d0,bl_x(a5) + add.l d2,bl_z(a5) + bra .loop + ; +.done rts + +drawblood lea blood(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + move bl_x(a5),d0 + sub camx(pc),d0 + move bl_y(a5),d1 + ble.s .blok + neg d1 +.blok sub camy(pc),d1 + move bl_z(a5),d2 + sub camz(pc),d2 + ; + ;rotate x/z around cam... + ; + move d0,d3 + move d2,d5 + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 ;X + ; + muls cm3(pc),d3 + muls cm4(pc),d2 + add.l d3,d2 + add.l d2,d2 + swap d2 ;Z + ; + tst d2 + beq .loop + cmp #maxz,d2 + bcc .loop + ; + ext.l d0 + lsl.l #focshft,d0 + divs d2,d0 + cmp minx(pc),d0 + blt .loop + cmp maxx(pc),d0 + bge .loop + ; + ext.l d1 + lsl.l #focshft,d1 + divs d2,d1 + cmp miny(pc),d1 + blt .loop + cmp maxy(pc),d1 + bge .loop + ; + cmp #32,d2 + bcc.s .pix + tst bl_y(a5) + bgt.s .pix + ; + ;blit to screen! + ; + move #$20,$dff09a + ; + bsr savernd + move.l window(pc),a0 + move wi_bh(a0),d0 + subq #8,d0 + bsr rndn + move d0,d2 ;Y + ; + move wi_bw(a0),d0 + subq #8,d0 + bsr rndn ;X + add wi_x(a0),d0 + move d2,d1 + ; + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #51,d2 + bsr blit + ; + bsr loadrnd + ; + move.l a5,a0 + killitem blood + move.l a0,a5 + ; + move #$8020,$dff09a + bra .loop +.pix ; + add midx(pc),d0 + add midy(pc),d1 + ; + move.l darktable(pc),a0 + move 0(a0,d2*2),d3 + ; + move.l cop(pc),a1 + ; + lea coloffs,a2 + add.l 0(a2,d0*4),a1 + mulu copmod(pc),d1 + ; + move blcols(pc,d3*2),d3 + and bl_color(a5),d3 + move d3,0(a1,d1.l) + bra .loop + ; +.done rts + +blcols dc $ccc,$bbb,$aaa,$999,$888,$777,$666,$555 + dc $444,$333,$222,$111,$111,$111,$111,$111 + +shaperender dc.l drawobjnorm ;default! + +drawshape_1sc ;draw shape with one frame, scaled! + ; + move.l ob_shape(a5),a0 + move ob_frame(a5),d0 + add.l 12(a0,d0*4),a0 + move ob_scale(a5),d7 + bra drawshape + +drawshape_1 ; + move.l ob_shape(a5),a0 + move ob_frame(a5),d0 + add.l 12(a0,d0*4),a0 + move #$200,d7 ;scale + bra drawshape + +drawshape_8 ; + ;shape has 8 rotations, and a scale! + ; + bsr calcangle2 + add #16,d0 + sub ob_rot(a5),d0 + lsr #5,d0 + and #7,d0 + move ob_frame(a5),d1 + lsl #3,d1 + or d1,d0 + move.l ob_shape(a5),a0 + move ob_scale(a5),d7 + add.l 12(a0,d0*4),a0 + ; +drawshape move ob_x(a5),d0 + move ob_y(a5),d1 + move ob_z(a5),d2 +drawshape_q ; + ;A0=shape + ;D0=X + ;D1=Y + ;D2=Z + ;D7=sclae factor + ; + ;rotate Z around camera! + ; + sub camx(pc),d0 + sub camy(pc),d1 + sub camz(pc),d2 + ; + move d0,d3 + move d2,d5 + muls cm3(pc),d3 + muls cm4(pc),d2 + add.l d3,d2 + add.l d2,d2 + swap d2 + ; + tst d2 + ble .rts + cmp #maxz,d2 + bcc .rts + ; + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 + ; + move.l memat(pc),a1 + add.l #sh_size,memat + movem d0-d2,sh_x(a1) + move.l a0,sh_shape(a1) + move d7,sh_scale(a1) + move.l shaperender(pc),sh_render(a1) + ; + lea shapelist(pc),a2 +.loop move.l (a2),d0 + beq.s .end + move.l a2,a3 + move.l d0,a2 + cmp sh_z(a2),d2 ;nearer...further in list + ble.s .loop + move.l a2,(a1) + move.l a1,(a3) + rts +.end move.l d0,(a1) + move.l a1,(a2) +.rts rts + +checknew2 ;check trigger zone + move.l map_grid(pc),a0 + addq #4,a0 + bra.s checknew_ + +gs equ 1< furthest wall list. + ; + ;optimizations... + ;check if both z's are negative after rotation + ;check if projected left/rite ends are on screen + ; + addq #1,frame + ; + clr.l inlist + move.l #inlist,inlistf + ; + move.l map_poly(pc),a4 + move.l map_ppnt(pc),a3 + move.l map_grid(pc),a2 + movem camx(pc),d6-d7 ;x,z + lsr #grdshft,d6 + lsr #grdshft,d7 + lea gridoffs(pc),a6 + moveq #(gridoffsf-gridoffs)>>2-1,d5 + ; +.loop movem (a6)+,d0-d1 + add d6,d0 + cmp #32,d0 + bcc .skip + add d7,d1 + cmp #32,d1 + bcc .skip + ; + ;d0,d1=x/z of map to check! + ; + lsl #5,d1 ;Y*32... + add d1,d0 ;+X + lea 0(a2,d0*8),a0 ;mapgrid + move (a0)+,d4 ;how many polys here + bmi .skip + move (a0),d0 ;poly data offset + lea 0(a3,d0*2),a0 + ; +.loop2 move (a0)+,d0 ;poly# + lsl #5,d0 + lea 0(a4,d0),a1 ;actual poly + ; + bsr dothezone + ; + dbf d4,.loop2 ;finish sq + ; +.skip dbf d5,.loop ;gridoffs + ; + ;now do rots/morphs... + ; + lea rotpolys(pc),a3 + ; +.loop3 move.l (a3),a3 + tst.l (a3) + beq.s .rpdone + ; + move.l rp_first(a3),a4 + move rp_num(a3),d4 + subq #1,d4 + ; +.loop4 move.l a4,a1 + bsr dothezone2 + ; + lea 32(a4),a4 + dbf d4,.loop4 + ; + bra.s .loop3 +.rpdone ; +makeoutlist ;create outlist from inlist + ; + clr.l outlist + move.l #outlist,outlistf + ; +.loop lea inlist(pc),a0 + move.l (a0),d0 + beq .done + move.l a0,a2 ;save previous! + move.l d0,a0 + ; + ;OK, see if any are in front of a0... + ; + lea inlist(pc),a1 + ; +.loop2 move.l (a1),d0 + beq .none + move.l a1,a3 + move.l d0,a1 + cmp.l a0,a1 + beq.s .loop2 ;don't compare with self! + ; + ;check screen pos overlap... + ; + move wl_rsx(a0),d0 + cmp wl_lsx(a1),d0 + blt .loop2 + ; + move wl_lsx(a0),d1 + cmp wl_rsx(a1),d1 + bgt .loop2 + ; + ;check near/far Z overlap + ; + move wl_nz(a1),d2 + cmp wl_fz(a0),d2 + bge .loop2 ;behind! + ; + move wl_fz(a1),d2 + cmp wl_nz(a0),d2 + ble .swap + ; + tst wl_open(a1) + bne .swap + ; + ;look at a0 points against a1 line... + ; + movem wl_a(a1),d5-d6 + move.l wl_c(a1),d7 + ; + move wl_lx(a1),d0 + sub wl_lx(a0),d0 + muls d5,d0 + move wl_lz(a1),d1 + sub wl_lz(a0),d1 + muls d6,d1 + add.l d1,d0 + eor.l d7,d0 + ; + move wl_lx(a1),d1 + sub wl_rx(a0),d1 + muls d5,d1 + move wl_lz(a1),d2 + sub wl_rz(a0),d2 + muls d6,d2 + add.l d2,d1 + eor.l d7,d1 + ; + ;if both a0 in front, no swap + ; + move.l d0,d4 + or.l d1,d4 + bpl .loop2 ;both a0's in front of a1! + ; + ;if both a0 behind, swap + ; + and.l d1,d0 + bmi .swap ;both a0's behind a1! + ; + ;look at a1 points against a0 line! + ; + movem wl_a(a0),d5-d6 + move.l wl_c(a0),d7 + ; + move wl_lx(a0),d2 + sub wl_lx(a1),d2 + muls d5,d2 + move wl_lz(a0),d3 + sub wl_lz(a1),d3 + muls d6,d3 + add.l d3,d2 + eor.l d7,d2 + ; + move wl_lx(a0),d3 + sub wl_rx(a1),d3 + muls d5,d3 + move wl_lz(a0),d4 + sub wl_rz(a1),d4 + muls d6,d4 + add.l d4,d3 + eor.l d7,d3 + ; + move.l d2,d4 + and.l d3,d4 + bmi .loop2 ;both a1's behind a0! + ; + or.l d3,d2 + bmi .loop2 + ; +.swap move.l a1,a0 + move.l a3,a2 + bra .loop2 + ; +.none ;OK, none in front of this (a0) + ; + move.l (a0),(a2) ;unlink from inlist + clr.l (a0) + ; + move.l outlistf(pc),a2 + move.l a0,(a2) + move.l a0,outlistf + bra .loop + ; +.done rts + +dothezone2 ; + move frame(pc),d0 + cmp zo_done(a1),d0 + beq.s .rts + move d0,zo_done(a1) + tst zo_open(a1) + bmi.s .rts + ; + movem d4-d7,-(a7) + ; + movem zo_lx(a1),d0-d3 ;x1,z1,x2,z2 + movem camx(pc),d6-d7 + ; + move #maxz,d4 + move d4,d5 + neg d5 + ; + sub d6,d0 + cmp d4,d0 + bge.s .rts2 + cmp d5,d0 + ble.s .rts2 + ; + sub d7,d1 + cmp d4,d1 + bge.s .rts2 + cmp d5,d1 + ble.s .rts2 + ; + sub d6,d2 + cmp d4,d2 + bge.s .rts2 + cmp d5,d2 + ble.s .rts2 + ; + sub d7,d3 + cmp d4,d3 + bge.s .rts2 + cmp d5,d3 + bgt dothezone3 ;.rts2 + ; +.rts2 movem (a7)+,d4-d7 + ; +.rts rts + +dothezone ; + move frame(pc),d0 + cmp zo_done(a1),d0 + beq rts ;.skip3 + move d0,zo_done(a1) + tst zo_open(a1) + bmi rts ;.skip3 + ; + ;OK, setup: + ; + ;d0=lx,d1=lz,d2=rx,d3=rz + ;d4=t,d5=sc,d6=dist + ; + ;back face/dist check... + ; + movem d4-d7,-(a7) + ; + movem zo_lx(a1),d0-d3 ;x1,z1,x2,z2 + movem camx(pc),d6-d7 + ; + sub d6,d0 + sub d7,d1 + sub d6,d2 + sub d7,d3 + ; +dothezone3 move d0,d4 + move d1,d5 + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 + ; + muls cm3(pc),d4 + muls cm4(pc),d1 + add.l d4,d1 + add.l d1,d1 + swap d1 ;LZ + ; + move d2,d4 + move d3,d5 + muls cm1(pc),d2 + muls cm2(pc),d5 + add.l d5,d2 + add.l d2,d2 + swap d2 ;RX + ; + muls cm3(pc),d4 + muls cm4(pc),d3 + add.l d4,d3 + add.l d3,d3 + swap d3 ;RZ + ; + ;check Z's... + tst d1 + bgt.s .zok + tst d3 + ble .skip2 +.zok ; + cmp #maxz,d1 + blt.s .zok2 + cmp #maxz,d3 + bge .skip2 +.zok2 ; + ;do backface check...generate a,b,c... + ; + rol.l #exshft,d0 + rol.l #exshft,d1 + rol.l #exshft,d2 + rol.l #exshft,d3 + ; + move d1,d4 + sub d3,d4 ;a + move d2,d5 + sub d0,d5 ;b + ; + move d0,d6 + muls d4,d6 + move d1,d7 + muls d5,d7 + add.l d7,d6 + bpl.s .front + ; + ;backface showing!... + bra .skip2 +.front ; + move.l memat(pc),a5 + ; + movem d0-d5,wl_lx(a5) + move.l d6,wl_c(a5) + ; + ;work out some screen positions! + tst d1 + bgt.s .z1ok + ; + ;lz bad, rz must be OK... + ; +.ov1 move minx(pc),wl_lsx(a5) + bra.s .z1sk + ; +.z1ok ext.l d0 + lsl.l #focshft,d0 + divs d1,d0 + bvs.s .ov1 + subq #1,d0 + cmp maxx(pc),d0 + bge .skip2 + move d0,wl_lsx(a5) +.z1sk ; + tst d3 + bgt.s .z2ok + ; + ;rz bad, lz must be OK... + ; +.ov2 move maxx(pc),wl_rsx(a5) + bra.s .z2sk + ; +.z2ok ext.l d2 + lsl.l #focshft,d2 + divs d3,d2 + bvs.s .ov2 + addq #1,d2 + cmp minx(pc),d2 + blt .skip2 + move d2,wl_rsx(a5) +.z2sk ; + cmp d1,d3 + bge.s .zskp + exg d1,d3 +.zskp movem d1/d3,wl_nz(a5) ;near/far Z + ; + move.l zo_t(a1),wl_t(a5) + move.l zo_t+4(a1),wl_t+4(a5) + move zo_sc(a1),wl_sc(a5) + move zo_open(a1),wl_open(a5) + ; + ;add to end of inlist... + ; + clr.l (a5) + move.l inlistf(pc),a1 + move.l a5,(a1) + move.l a5,inlistf + add.l #wl_size,memat + ; +.skip2 movem (a7)+,d4-d7 + ; +.skip3 rts + + elseif + +makeoutlist2 ;create outlist from inlist + ; +.loop0 lea inlist(pc),a0 + ; +.loop move.l (a0),d0 + beq .done + move.l a0,a2 ;save previous! + move.l d0,a0 + ; + ;OK, see if any are in front of a0... + ; + lea inlist(pc),a1 + ; +.loop2 move.l (a1),d0 + beq .none + move.l a1,a3 + move.l d0,a1 + ; + cmp.l a0,a1 + beq.s .loop2 ;don't compare with self! + ; + ;see if a1 is in front of a0 + ; + move wl_nz(a1),d0 + cmp wl_fz(a0),d0 + bge .loop2 ;behind! + ; + move wl_fz(a1),d0 + cmp wl_nz(a0),d0 + ble .swap + ; + ;now, compare screen x coords..... + ; + move wl_rsx(a0),d0 + cmp wl_lsx(a1),d0 + blt .loop2 + ; + move wl_lsx(a0),d0 + cmp wl_rsx(a1),d0 + bgt .loop2 + ; + ;look at a0 points against a1 line + ; + ;If Sgn((x3-x1)*a2+(y3-y1)*b2)<>Sgn(c2) + ; If Sgn((x3-x2)*a2+(y3-y2)*b2)<>Sgn(c2) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + movem wl_a(a1),d5-d6 + move.l wl_c(a1),d7 + ; + move wl_lx(a1),d0 + sub wl_lx(a0),d0 + muls d5,d0 + move wl_lz(a1),d1 + sub wl_lz(a0),d1 + muls d6,d1 + add.l d1,d0 + eor.l d7,d0 + ; + move wl_lx(a1),d1 + sub wl_rx(a0),d1 + muls d5,d1 + move wl_lz(a1),d2 + sub wl_rz(a0),d2 + muls d6,d2 + add.l d2,d1 + eor.l d7,d1 + ; + ;OK, screen X's overlap... + ;if both a0 in front, no swap + ; + move.l d0,d4 + or.l d1,d4 + bpl .loop2 + ; + ;if both a0 behind, swap + ; + move.l d0,d4 + and.l d1,d4 + bmi .swap + ; + ;bra .loop2 + ; + ;elseif + ;look at a1 points against a0 line + ; + ;If Sgn((x1-x3)*a1+(y1-y3)*b1)=Sgn(c1) + ; If Sgn((x1-x4)*a1+(y1-y4)*b1)=Sgn(c1) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + movem wl_a(a0),d5-d6 + move.l wl_c(a0),d7 + ; + move wl_lx(a0),d2 + sub wl_lx(a1),d2 + muls d5,d2 + move wl_lz(a0),d3 + sub wl_lz(a1),d3 + muls d6,d3 + add.l d3,d2 + eor.l d7,d2 + ; + move wl_lx(a0),d3 + sub wl_rx(a1),d3 + muls d5,d3 + move wl_lz(a0),d4 + sub wl_rz(a1),d4 + muls d6,d4 + add.l d4,d3 + eor.l d7,d3 + ; + ;if both a1's behind, no swap + ; + move.l d2,d4 + and.l d3,d4 + bmi .loop2 ;both a1's behind... + ; + ;if both a1's in front, swap + move.l d2,d4 + or.l d3,d4 + bpl .swap + ; + bra .loop2 + ; + ;elseif + ; +.swap ;a1 is infront of a0! make a1 new frontmost + bra .loop + move.l a1,a0 + move.l a3,a2 + bra .loop2 + ; +.none ;OK, none in front of this (a0) + ; + move.l (a0),(a2) ;unlink from inlist + clr.l (a0) + move.l outlistf(pc),a2 + move.l a0,(a2) + move.l a0,outlistf + bra .loop0 + ; +.done ;move.l inlist(pc),d0 + ;bne .loop0 + rts + + elseif + +castwalls ;process 'walls' list + ; + move.l castrots(pc),a6 + move minx(pc),d7 + lea 0(a6,d7*8),a6 + move.l vertdraws(pc),a4 + ; +.loop ;do this vert line! + ; + lea outlist(pc),a5 + ; +.loop2 move.l (a5),d0 + beq .empty + move.l d0,a5 + ; + cmp wl_lsx(a5),d7 + blt.s .loop2 + cmp wl_rsx(a5),d7 + bgt.s .loop2 + ; + movem wl_lx(a5),d0-d1 + muls (a6),d0 + muls 2(a6),d1 + add.l d1,d0 ;LX! + bgt.s .loop2 + ; + movem wl_rx(a5),d1-d2 + muls (a6),d1 + muls 2(a6),d2 + add.l d2,d1 ;RX! + blt.s .loop2 + ; + sub.l d0,d1 + ; + swap d1 + tst d1 + ble.s .dfix + neg.l d0 + divu d1,d0 + bvc.s .noov +.dfix moveq #-1,d0 +.noov lsr #1,d0 ;fraction -> unsigned + ; + cmp wl_open(a5),d0 + bcs.s .loop2 + ; + movem wl_lx(a5),d1-d2 + muls 4(a6),d1 + muls 6(a6),d2 + add.l d2,d1 + add.l d1,d1 ;lz + ; + movem wl_rx(a5),d2-d3 + muls 4(a6),d2 + muls 6(a6),d3 + add.l d3,d2 + add.l d2,d2 ;rz + ; + sub.l d1,d2 + swap d2 + muls d0,d2 + add.l d2,d2 + add.l d1,d2 + ; + swap d2 + ; + cmp #exone,d2 + blt .loop2 + cmp #maxz<d2 + jsr -156(a6) + move.l d2,vbr + ; + lea ciaaname,a1 + jsr -498(a6) + move.l d0,ciaa + move.l d0,a0 + movem.l $64(a0),d0-d1 + movem.l d0-d1,rawstuff + move #$4000,$dff09a + move.l rawtable(pc),$64(a0) + move.l #rawkeyread,$68(a0) + move #$c000,$dff09a + ; + move.l #8,d0 + move.l #$10002,d1 + allocmem chipzero + move.l d0,chipzero + ; + move.l #256,d0 ;128 words high max! + moveq #2,d1 + allocmem qstrip + move.l d0,qstrip + ; + move.l #256,d0 + moveq #1,d1 + allocmem maptable + move.l d0,maptable + ; + move.l #32768,d0 + moveq #1,d1 + allocmem memory + move.l d0,memory + ; + move.l #320*vd_size,d0 + moveq #1,d1 + allocmem vertdraws + move.l d0,vertdraws + ; + move.l #maxz*2,d0 + moveq #1,d1 + allocmem darktable + move.l d0,darktable + ; + move.l #16*512*2,d0 ;16 shades, 256 words + moveq #1,d1 + allocmem map_rgbs + ; + move.l #map_rgbs_,map_rgbs + ;move.l d0,map_rgbs + ;add.l #16*512,d0 + move.l d0,map_rgbsw + add.l #16*512,d0 + move.l d0,map_rgbsr + ; + st paused + clr dispnest + clr.l font + bsr initsfx + bsr initvbint + bsr initdisplay + bsr dispoff + ; + lea magicfiles,a0 + bsr loadfiles + ; + move.l magic,a0 + move.l magicpal,a1 + bsr makeiff + bsr showiff + bsr dispon + move #50,vbcounter + ; + lea progfiles,a0 + bsr loadfiles + ; + bsr initbmappal + bsr initmed + bsr initser + bsr calcbaud + bsr makecoloffs + bsr initdarktable + ; + bset #15,remapped + bne .noremap + ; + move.l map_rgbs(pc),a0 + move #-1,(a0)+ + move.l a0,map_rgbsat + ; + lea bullet1,a0 + jsr remapanim + lea bullet2,a0 + jsr remapanim + lea bullet3,a0 + jsr remapanim + lea bullet4,a0 + jsr remapanim + lea bullet5,a0 + jsr remapanim + lea sparks1,a0 + jsr remapanim + lea sparks2,a0 + jsr remapanim + lea sparks3,a0 + jsr remapanim + lea sparks4,a0 + jsr remapanim + lea sparks5,a0 + jsr remapanim + ; + elseif + lea 128*128+groundtile,a2 + move.l a2,a0 + bsr addpal + lea groundtile,a0 + move.l a2,a1 + bsr remap + ; + lea 128*128+ceilingtile,a2 + move.l a2,a0 + bsr addpal + lea ceilingtile,a0 + move.l a2,a1 + bsr remap + elseif + ; + lea qpal,a0 + bsr addpal + lea qcols,a0 + lea qpal,a1 + bsr remap + ; + move.l map_rgbsat(pc),map_rgbsat2 +.noremap ; + move.l map_rgbsat2(pc),map_rgbsat + ; + moveq #0,d0 + bsr loadanobj ;load player1 + moveq #1,d0 + bsr loadanobj ;load player2 + moveq #2,d0 + bsr loadanobj ;load tokens (health) + ; + move.l map_rgbsat(pc),map_rgbsfrom + move.l map_rgbsat(pc),map_rgbsfrom2 + ; + alloclist objects,#maxobjects,#ob_size + alloclist doors,#maxdoors,#do_size + alloclist blood,#maxblood,#bl_size + alloclist gore,#maxgore,#go_size + alloclist rotpolys,#maxrotpolys,#rp_size + ; +.w5sex tst vbcounter + bgt .w5sex + ; + bsr dispoff + lea iffwindow,a0 + bsr freewindow + move.l magic,a1 + freemem magic + move.l magicpal,a1 + freemem magicpal + ; + bra forbid + +checkdatadisk ;return eq if gloomdata: found! + ; + move.l dosbase(pc),a0 + move.l 34(a0),a0 + move.l 24(a0),a0 + add.l a0,a0 + add.l a0,a0 + addq #4,a0 + ; +.loop move.l (a0),d0 + beq.s .done + lsl.l #2,d0 + move.l d0,a0 + move.l 40(a0),a1 + add.l a1,a1 + add.l a1,a1 + cmp.b #9,(a1)+ ;9 chars + bne.s .loop + lea lockname(pc),a2 + moveq #8,d0 ;check 9 chars! +.loop2 cmp.b (a1)+,(a2)+ + bne.s .loop + dbf d0,.loop2 + rts + ; +.done moveq #-1,d0 + rts + +askdatadisk ; + ;make sure data disk is available... + ; + ;if 'gloomgame' is in CD, then use CD, else... + ;wait for 'gloomdata:' to get inserted! + ; + bsr permit + move.l #gamename,d1 + move.l #1005,d2 + move.l dosbase(pc),a6 + jsr -30(a6) ;open 'misc/script' + move.l d0,d1 + beq.s .nolock + jsr -36(a6) ;close it! + bra .load + ; +.nolock bsr forbid + bsr checkdatadisk + beq .dataok ;already there? + ; + sub.l a0,a0 + bsr makeiff + bsr showiff + lea diskmenu,a4 + lea iffwindow,a6 + bsr initmenu + bsr dispon + ; + ;OK, gotta swap disks and pick up data files! + ; +.wfd bsr permit + move.l grbase(pc),a6 + jsr -270(a6) + bsr forbid + bsr checkdatadisk + bne.s .wfd + ; + bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bsr freewindow + ; +.dataok bsr permit + bsr undir ;release old lock! + move.l #lockname,d1 + moveq #-2,d2 + move.l dosbase(pc),a6 + jsr -84(a6) ;lock? + move.l d0,d1 + beq.s .wfd + jsr -126(a6) ;make current dir! + move.l d0,oldlock + ; +.load lea datafiles,a0 + bsr loadfiles + bra forbid + +undir move.l oldlock(pc),d1 + beq.s .rts + clr gloomdata + clr.l oldlock + move.l dosbase(pc),a6 + jsr -126(a6) ;CD to old current dir + move.l d0,d1 + jsr -90(a6) ;unlock old (mine!) +.rts rts + +oldlock dc.l 0 + +lockname dc.b 'gloomdata:',0 + even + +lagtext dc.b 'lAG?',0 + even + +syncup ;time to calculate frame lag! + ; + ;master can establish lag time... + ; + move linked(pc),d0 + bne.s .li +.rts rts +.li ; + bsr qsync +; ; +;.li move.l lagtext(pc),d0 +; bsr longput +;.rl lea lagtext(pc),a2 +;.rw bsr serwait +; cmp.b (a2)+,d0 +; bne.s .li +; tst.b (a2) +; bne.s .rw +; ; +; bsr qsync + ; +calclag tst linked + bmi .slave + ; + ;MASTER - average out 32 sends of random data! + ; + moveq #0,d6 ;sum + moveq #31,d5 ;32 samples + ; +.mloop moveq #0,d7 + add #69,d0 + bsr vwait + bsr serput + ; +.mwait addq #2,d7 + bsr vwait + bsr vwait + bsr serget + bmi.s .mwait + ; +.got add d7,d6 + dbf d5,.mloop + ; + lsr #7,d6 ;/32 = avg. /2=half, /2=25 FPS + addq #1,d6 ;safety... + ; + move d6,d0 + move d0,lagtime + bsr serput + bra initlag + ; +.slave ;OK, bounce back 32 items... + ; + moveq #31,d5 +.sloop bsr serwait + bsr serput + dbf d5,.sloop + ; + ;now, wait to get told lagtime! + ; + bsr serwait + and #255,d0 + move d0,lagtime + ; +initlag ;what to do... + ; + ;stick 'lagtime' dummy 'no events' into rec buff! + ;stick 'lagtime' dummy 'noevents' into pcntrl buffer + ; + move #$4000,$dff09a + ; + lea pbuff(pc),a0 ;controller buffer + lea rbuff(pc),a1 ;ser rec. buffer + moveq #31,d1 ;32*4=128 bytes! + moveq #0,d0 +.loop move.l d0,(a0)+ + move.l d0,(a1)+ + dbf d1,.loop + ; + move lagtime(pc),d0 + ; + clr pget + clr rget + move d0,pput + move d0,rput + ; + move #$c000,$dff09a + ; + rts + +lagtime dc 0 + +qsync ;OK, quick sync up! + ; + tst linked + beq.s .rts + ; +.loop bsr vwait + move.b #$80,d0 + bsr serput +.wait bsr serwait + cmp.b #$80,d0 + bne.s .loop + moveq #0,d0 + bsr serput +.wait2 bsr serwait + cmp.b #$80,d0 + beq.s .wait2 + tst.b d0 + bne.s .loop + ; +.rts rts + +initnewgame move gametype(pc),twowins + beq.s .skip + tst linked + beq.s .skip + ; + ifeq debugser + clr twowins + endc +.skip ; + tst.l map_test + bne.s .skhit + bset #15,gloomdata + bne.s .gotdata + ; +.skhit bsr askdatadisk +.gotdata ; + bsr qsync + ; + move.l medat(pc),a1 + jsr 12(a1) + ;move #$4000,fadevol + cmp #2,gametype + bne normalgame + ; + ;combat type game! + ; + move #6,p1_ob_collwith + move #5,p2_ob_collwith + ; + sub.l a0,a0 + bsr makeiff + bsr showiff + lea combatmenu,a4 + lea iffwindow,a6 + bsr initmenu + ; + bsr dispon + ; +.loop bsr selmenu + cmp #3,d0 + bcs .play + bne.s .loop + ; + ;change number of wins... + ; + addq.b #1,comnum + cmp.b #'9',comnum + bls .loop + move.b #'2',comnum + bra .loop + ; +.play add #49,d0 + move.b d0,comseriesnum + move #7,comsleft + bsr dispoff + bsr finitmenu + ; + move.b comnum(pc),d0 + sub.b #'0',d0 + ext d0 + move d0,p1lives + move d0,p2lives + ; + lea combatfiles(pc),a0 + bsr permit + bsr loadfiles + bra forbid + ; +normalgame ;check for continue offsets in 'gloomgame' file! + ; + move.l script(pc),scriptat ;default + move.l gloomgame(pc),a0 + lea conttxts(pc),a1 + lea conts(pc),a2 + moveq #0,d7 + ; +.loop move.l (a0)+,d0 + cmp.l #'game',d0 + beq.s .done + ; + ;another! + ; + addq #1,d7 + add.l script(pc),d0 ;OK, where to continue from! + move.l d0,(a2)+ + lea context(pc),a3 +.loop2 move.b (a3)+,(a1)+ + bne.s .loop2 + subq #1,a1 + move.l d0,a3 +.loop3 move.b (a3)+,(a1) + cmp.b #10,(a1)+ + bne.s .loop3 + clr.b -1(a1) + bra.s .loop + ; +.done tst d7 + beq initpstuff + addq #1,d7 + move.b d7,contmenu + ; + ;OK, need a continue game menu... + ; + lea gloom,a0 + lea gloompal,a1 + bsr makeiff + bsr showiff + ; + lea contmenu,a4 + lea iffwindow,a6 + bsr initmenu + bsr dispon + ; + bsr selmenu + ; + bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bsr freewindow + ; + move curropt(pc),d0 + beq initpstuff + lea conts(pc),a0 + move.l -4(a0,d0*4),a0 +.leol cmp.b #10,(a0)+ + bne.s .leol + move.l a0,scriptat + ; +initpstuff move #4,p1_ob_collwith + move #4,p2_ob_collwith + moveq #3,d0 + tst linked + beq.s .nlink + moveq #6,d0 + moveq #1,d0 +.nlink move d0,p1lives + move d0,p2lives + move #25,p1health + move #25,p2health + move #0,p1weapon + move #0,p2weapon + move.b #ireload,p1reload + move.b #ireload,p2reload + ; + rts + +combatfiles dc.l combat + dc.b 'pics/combat',0 + even + dc.l combatpal + dc.b 'pics/combat.pal',0 + even + dc.l 0 + +conts ds.l 8 ;8 slots! + +combatmenu dc.b 4 + dc.b 'play spacehulk series',0 + dc.b 'play gothic tomb series',0 + dc.b 'play hell series',0 + dc.b 'start with ' +comnum dc.b '3 lives',0 + even + +context dc.b 'CONTINUE FROM ',0 + even + +contmenu dc.b 1 + dc.b 'START NEW GAME',0 +conttxts ds.b 160 + even + +execscript_med bsr waitquiet + ; + move.l medat(pc),a1 + move.l loadingmed(pc),a0 + jsr 8(a1) ;start title music! + ; +execscript cmp #2,gametype + beq scriptplay ;no script for combat game! + ; + move.l scriptat(pc),a0 + ; +.loop move.b (a0)+,d0 + cmp.b #10,d0 + beq.s .loop + and #31,d0 + bne.s .more +.loop2 cmp.b #10,(a0)+ + bne.s .loop2 + bra.s .loop +.more cmp #27,d0 + bcc.s .loop2 + add #96,d0 + ; + ;command! fetch the rest... + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + addq #1,a0 ;skip '_' + move.l a0,scriptat + cmp.l #'pict',d0 + beq scriptpict + cmp.l #'draw',d0 + beq scriptdraw + cmp.l #'text',d0 + beq scripttext + cmp.l #'wait',d0 + beq scriptwait + cmp.l #'play',d0 + beq scriptplay + cmp.l #'done',d0 + beq scriptdone + cmp.l #'dark',d0 + beq scriptdark + cmp.l #'show',d0 + beq scriptshow + cmp.l #'hide',d0 + beq scripthide + cmp.l #'loop',d0 + beq scriptloop + cmp.l #'rest',d0 + beq scriptrest + cmp.l #'tile',d0 + beq scripttile + ; + warn #$f80 + ; + ;Hmmm....bad command +.fucked ; + rts + ; +scriptdone bsr dispoff + move.l medat(pc),a1 + clr fadevol + jsr 12(a1) ;stop song + bra gameover + +sccont dc.b 'cont_' + even + +scriptrest ;restart point! + ;this changes...we add this to 'gloomgame' file now. + ; + move.l a0,d1 + sub.l script(pc),d1 ;offset from start of script! +.leol cmp.b #10,(a0)+ + bne.s .leol + move.l a0,scriptat + ; + move.l gloomgame(pc),a1 +.loop move.l (a1)+,d0 + cmp.l #'game',d0 + beq.s .add + cmp.l d0,d1 + bne.s .loop + ; + ;already here! + ; + bra execscript + ; +.add ;OK, gotta add new scriptat position! + ; + move.l d1,-(a1) + ; + ;save it out! + ; + bsr permit + lea gamename,a0 + move.l gloomgame,a1 + moveq #32,d0 + bsr savefile + bsr forbid + bra execscript + +scriptloop move.l script,scriptat + bra execscript + +scripthide bsr dispoff + bra execscript + +scriptshow clr pdelay + bsr dispon + bra execscript + +scriptdraw move.l pic,a0 + move.l picpal,a1 + bsr makeiff + bsr showiff + bra execscript + +fetchrest move.l scriptat,a0 + moveq #-1,d0 +.loop addq #1,d0 + move.b (a0)+,(a1) + cmp.b #10,(a1)+ + bne.s .loop + clr.b -(a1) + move.l a0,scriptat + rts + +picpath dc.b 'pics/' +picname ds.b 64 +pic_pal dc.b '.pal',0 + even + +pic dc.l 0 +picpal dc.l 0 + +freeiff push + move.l pic(pc),d0 + beq.s .skip1 + clr.l pic + move.l d0,a1 + freemem pic +.skip1 move.l picpal(pc),d0 + beq.s .skip2 + clr.l picpal + move.l d0,a1 + freemem picpal +.skip2 pull + rts + +freetiles push + move.l floor(pc),d0 + beq.s .skip1 + clr.l floor + move.l d0,a1 + freemem floor +.skip1 move.l roof(pc),d0 + beq.s .skip2 + clr.l roof + move.l d0,a1 + freemem roof +.skip2 pull + rts + +floorname dc.b 'txts/floor' +floortag ds.b 32 + even + +roofname dc.b 'txts/roof' +rooftag ds.b 32 + even + +scripttile ;tile command...load in floor/roof tiles! + ; + lea floortag(pc),a1 + bsr fetchrest + bsr loadtile + bra execscript + +loadtile ; + ;floor tag=tile extension... + ; + bsr freetiles + lea floortag(pc),a0 + lea rooftag(pc),a1 +.loop move.b (a0)+,(a1)+ + bne.s .loop + ; + bsr permit + lea floorname(pc),a0 + moveq #1,d1 + jsr loadfile + move.l d0,floor + lea roofname(pc),a0 + moveq #1,d1 + jsr loadfile + move.l d0,roof + bsr forbid + ; + move.l map_rgbsfrom,map_rgbsat + ; + move.l floor(pc),a2 + lea 128*128(a2),a2 + move.l a2,a0 + bsr addpal + move.l floor(pc),a0 + move.l a2,a1 + bsr remap + ; + move.l roof(pc),a2 + lea 128*128(a2),a2 + move.l a2,a0 + bsr addpal + move.l roof(pc),a0 + move.l a2,a1 + bsr remap + ; + move.l map_rgbsat,map_rgbsfrom2 + rts + +scriptpict ;load an iff + bsr freeiff + lea picname,a1 + bsr fetchrest + move.l a1,-(a7) + bsr permit + lea picpath,a0 + moveq #1,d1 + jsr loadfile + move.l d0,pic + lea pic_pal,a0 + move.l (a7)+,a1 +.loop move.b (a0)+,(a1)+ + bne.s .loop + lea picpath,a0 + moveq #1,d1 + jsr loadfile + move.l d0,picpal + bsr forbid + bra execscript + +scriptdark move.l iffwindow+wi_cop,a0 ;copperlist to darken! + ; + ;bank,32,bank,32... + ; + addq #6,a0 + moveq #3,d0 ;4 lots of 32 colours + moveq #31,d1 + ; + ;skip first 8 + ; + ;subq #8,d1 + ;lea 32(a0),a0 +.loop ; + move (a0),d2 ;hi nyb + move 132(a0),d3 ;lo nyb! + and #$eee,d3 + lsr #1,d3 + move d2,d4 + and #$111,d4 + lsl #3,d4 + or d4,d3 + and #$eee,d2 + lsr #1,d2 + move d2,(a0) + move d3,132(a0) + ; + addq #4,a0 + dbf d1,.loop + moveq #31,d1 + lea 136(a0),a0 + dbf d0,.loop + bra execscript + +text ds.b 64 + +scripttext ;print text on iff + ;a6=window, a4=message, d0=length of message, d6=Y + ; + move #2,pdelay + ; + lea text,a1 + bsr fetchrest + ; + lea iffwindow,a6 + lea text,a4 + move wi_bh(a6),d6 + sub #7,d6 + bsr printmess2 + ; + tst pdelay + bmi execscript + clr pdelay + bra execscript + +scriptwait ; + tst pdelay + bmi execscript + bsr waitany + bra execscript + +checkany ; + movem.l d0-d7/a0-a6,-(a7) + bsr vwait + bsr readmenujoys + tst joyb + movem.l (a7)+,d0-d7/a0-a6 + rts + +waitany movem.l d0-d7/a0-a6,-(a7) +.wait bsr vwait + bsr readmenujoys + tst joyb + beq .wait + ; +.unwait bsr vwait + bsr readmenujoys + tst joyb + bne .unwait + ; + movem.l (a7)+,d0-d7/a0-a6 + rts + +copywin moveq #wi_size/2-1,d0 +.loop move (a0)+,(a1)+ + dbf d0,.loop + rts + +freeobjlist lea objlist,a2 + ; +.loop move.l (a2)+,d0 + beq.s .done + move.l d0,a3 + ; + move.l (a3),d0 + beq.s .skip + move.l d0,a1 + freemem obj + clr.l (a3) +.skip ; + move.l 4(a3),d0 + beq.s .loop + move.l d0,a1 + freemem objchunks + clr.l 4(a3) + bra.s .loop + ; +.done rts + +freeobjlist2 lea objlist,a2 + ; +.loop move.l -(a2),d0 + beq.s .done + move.l d0,a3 + ; + move.l (a3),d0 + beq.s .skip + move.l d0,a1 + freemem obj2 + clr.l (a3) +.skip ; + move.l 4(a3),d0 + beq.s .loop + move.l d0,a1 + freemem objchunks2 + clr.l 4(a3) + bra.s .loop + ; +.done rts + +mappath dc.b 'maps/' +mapname ds.b 64 + even + +getwindow tst twowins + bne.s .p2 + ; + lea defwindow1_1p,a0 + lea window1,a1 + bsr copywin + rts + ; +.p2 lea defwindow1_2p,a0 + lea window1,a1 + bsr copywin + ; + lea defwindow2_2p,a0 + lea window2,a1 + bsr copywin + rts + +putwindow tst twowins + bne.s .p2 + ; + lea window1,a0 + lea defwindow1_1p,a1 + bsr copywin + rts + ; +.p2 lea window1,a0 + lea defwindow1_2p,a1 + bsr copywin + ; + lea window2,a0 + lea defwindow2_2p,a1 + bsr copywin + rts + +linkswap tst linked + bpl.s .rts + movem.l player1(pc),a0-a1 + exg a0,a1 + movem.l a0-a1,player1 + move ob_cntrl(a0),d0 + move ob_cntrl(a1),d1 + move d1,ob_cntrl(a0) + move d0,ob_cntrl(a1) +.rts rts + +pickcombat ;pick combat zone... + ;put name into a1... + ; + move $dff006,d0 + bsr seedrnd + ; + move comsleft(pc),d0 + bne.s .pick + moveq #7,d0 + move d0,comsleft +.pick bsr rndn + lea commaps(pc),a0 + subq #1,comsleft + move comsleft(pc),d1 + move.b 0(a0,d0),d2 ;map to play! + move.b 0(a0,d1),0(a0,d0) + move.b d2,0(a0,d1) + ; + add.b #48,d2 + move.b d2,comseriesmap + ; + lea comname(pc),a0 +.loop move.b (a0)+,(a1)+ + bne.s .loop + ; + move.l combat,a0 + move.l combatpal,a1 + bsr makeiff + bsr showiff + bsr dispon + lea tilenum(pc),a0 + lea floortag(pc),a1 +.loop2 move.b (a0)+,(a1)+ + bne.s .loop2 + bra loadtile + +tilenum dc.b '1',0 + +commaps dc.b 1,2,3,4,5,6,7,8 +comsleft dc 7 ;7 maps left! +comname dc.b 'com' +comseriesnum dc.b '1_' +comseriesmap dc.b '1',0 + even + +scriptplay ; + lea mapname,a1 + ; + cmp #2,gametype + bne.s .notcombat + ; + ;OK, combat game is a happening... + ; + ;select from on-screen maps. + ; + bsr pickcombat + bra.s .gotname + ; +.notcombat bsr fetchrest +.gotname ; + zerolist objects,ob_size + zerolist doors,do_size + zerolist blood,bl_size + zerolist gore,go_size + zerolist rotpolys,rp_size + ; + clr.l player1 + clr.l player2 + tst gametype + bne.s .p2 + not.l player2 ;no player 2! +.p2 ; + bsr permit + ; + move.l map_test(pc),d0 + bne.s .use + move.l #mappath,d0 +.use move.l d0,a0 + moveq #1,d1 + bsr loadfile + move.l d0,map_map + ; + bsr initmap + bsr loadtxts + move #$a3f7,d0 + bsr seedrnd + moveq #1,d0 + bsr execevent + bsr calcpalettes + bsr forbid + bsr makepalettes + bsr dispoff + bsr freewindows + bsr getwindow + ; + ;init player vars... + ; + move.l player1,a5 + ; + move p1lives(pc),ob_lives(a5) + ; + cmp #2,gametype + beq.s .psk + ; + move p1health(pc),d0 + bne.s .p1hok + move #25,p1health + move.b #ireload,p1reload +.p1hok move p1health(pc),ob_hitpoints(a5) + move p1weapon(pc),ob_weapon(a5) + move.b p1reload(pc),ob_reload(a5) + ; +.psk bsr resetplayer + ; + tst gametype + beq .p1 + ; + move.l player2,a5 + move p2lives(pc),ob_lives(a5) + ; + cmp #2,gametype + beq.s .psk2 + ; + move p2health(pc),d0 + bne.s .p2hok + move #25,p2health + move.b #ireload,p2reload +.p2hok move p2health(pc),ob_hitpoints(a5) + move p2weapon(pc),ob_weapon(a5) + move.b p2reload(pc),ob_reload(a5) + ; +.psk2 bsr resetplayer +.p1 ; + bsr linkswap + ; + ;save player positions at start of level! + ; + move.l player1(pc),a5 + move ob_x(a5),p1x + move ob_z(a5),p1z + move ob_rot(a5),p1r + tst gametype + beq.s .shit + move.l player2(pc),a5 + move ob_x(a5),p2x + move ob_z(a5),p2z + move ob_rot(a5),p2r +.shit ; + ;init windows... + ; + move.l player1(pc),a5 + move.l #window1,ob_window(a5) + move.l ob_window(a5),a0 + bsr makewindow + move.l ob_window(a5),a0 + bsr showwindow + bsr initstats + ; + tst twowins + beq.s .onew + ; + move.l player2(pc),a5 + move.l #window2,ob_window(a5) + move.l ob_window(a5),a0 + bsr makewindow + move.l ob_window(a5),a0 + bsr showwindow + bsr initstats +.onew ; + bsr calcbpos + ; + ;move #$4000,fadevol ;fadeout med! + ; + move.l medat(pc),a1 + clr fadevol + jsr 12(a1) ;stop song + ; + move #$1f3a,d0 + bsr seedrnd + clr.l sucker + clr.l sucking + clr finished + clr finished2 + clr doneflag + clr showflag + clr escape + ; + bsr syncup + ; + clr framecnt + clr paused + bsr drawall2 + bsr dispon + ; + bsr chaton + ; +mainloop bsr drawall + move escape(pc),d0 + beq.s .noesc + bsr dogamemenu + clr escape +.noesc move finished(pc),d0 + beq.s mainloop + ; + st paused + bsr chatoff + ; +.unlk bsr dispoff + bsr freewindows + bsr linkswap + bsr freeobjlist + bsr freetxts + bsr freemap + ; + ;finished codes... + ; + ;1 : quit (esc/exit game) + ;2 : death (both players dead) + ;3 : pattern completed + ;4 : combat game...someone died! + ; + move finished(pc),d0 + and #127,d0 + subq #1,d0 + beq exitgame + subq #1,d0 + beq gameover + subq #1,d0 + beq levelover + subq #1,d0 + beq combatwon + ; +.fuck warn #$f08 + warn #$80f + bra.s .fuck + ; +exitgame bsr sendback + cmp #2,gametype + bne.s gameover +combatover move.l combat,a1 + freemem combat + move.l combatpal,a1 + freemem combatpal +gameover ; + bsr freeiff + bra freetiles +levelover ; + move.l player1,a5 + move ob_hitpoints(a5),p1health + move ob_lives(a5),p1lives + move ob_weapon(a5),p1weapon + move.b ob_reload(a5),p1reload + ; + tst gametype + beq.s .p1p1 + ; + move.l player2,a5 + move ob_hitpoints(a5),p2health + move ob_lives(a5),p2lives + move ob_weapon(a5),p2weapon + move.b ob_reload(a5),p2reload +.p1p1 ; + tst p1lives + bne.s .losk + tst gametype + beq.s .losk + tst p2lives + beq gameover +.losk tst.l map_test + bne gameover + bra execscript_med + ; +combatwon move.l player1(pc),a5 + move ob_lives(a5),p1lives + beq .p1lost + move.l player2(pc),a5 + move ob_lives(a5),p2lives + beq .p2lost + ; + ;combat game continues! + ; + bra execscript_med + ; +.p1lost ;player 1 lost the game + ; + lea p2wins(pc),a0 + tst linked + beq .combatmess + lea ploses_(pc),a0 + bgt .combatmess + lea pwins_(pc),a0 + bra .combatmess + ; +.p2lost ;player 2 lost combat game + ; + lea p1wins(pc),a0 + tst linked + beq .combatmess + lea ploses_(pc),a0 + blt .combatmess + lea pwins_(pc),a0 + ; +.combatmess move.l a0,-(a7) + ; + move.l combat,a0 + move.l combatpal,a1 + jsr makeiff + jsr showiff + move.l (a7)+,a4 + lea iffwindow,a6 + bsr initmenu + bsr dispon + ; + bsr selmenu + ; + bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bsr freewindow + bsr qsync + bra combatover + +flushser moveq #49,d7 +.loop bsr vwait +.loop2 bsr serget + bpl.s .loop2 + dbf d7,.loop + bra qsync + +sendback move linked(pc),d0 + beq.s .rts + ; + move finished(pc),d0 + bset #7,d0 + bne serput + move.b d0,d2 + bsr serput +.wait bsr serwait + cmp.b d0,d2 + bne.s .wait +.rts rts + +p1wins dc.b 1,'player one wins combat game!',0 + even +p2wins dc.b 1,'player two wins combat game!',0 + even +pwins_ dc.b 1,'player wins combat game!',0 + even +ploses_ dc.b 1,'player loses combat game!',0 + even + +freemap move.l map_map,d0 + beq.s .done + move.l d0,a1 + freemem map + clr.l map_map +.done rts + +inccntrl addq #1,(a2) + cmp #5,(a2) + bcs.s .pok + clr (a2) +.pok move (a2),d0 + cmp (a3),d0 + beq.s inccntrl + ; +.there lea popts(pc),a0 + move.l 0(a0,d0*4),a0 +.sk move.b (a0)+,(a1)+ + bne.s .sk + rts + +dointro ; + lea gloom,a0 + lea gloompal,a1 + jsr makeiff + jsr showiff + ; + lea gloombrush,a0 + lea iffwindow,a1 + move.l wi_bmap(a1),a1 + add.l #168*7*40,a1 + bsr decodeiff + ; + bsr dispon + ; + bsr chaton + ; + bsr waitany + ; + lea startmenu,a4 + tst linked + beq.s .use + lea startmenu2,a4 +.use lea iffwindow,a6 + jsr initmenu + ; +.sel jsr selmenu + ; + tst linked + beq.s .notlinked + ; + cmp #2,d0 + bcs .newgame2 + subq #2,d0 + beq .unlink + subq #1,d0 + beq .about + subq #1,d0 + beq .exitgloom + bra .sel +.unlink ; + bsr chatoff + clr linked + lea p2ctype(pc),a1 + lea p2_ob_cntrl,a2 + lea p1_ob_cntrl,a3 + bsr inccntrl + bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bsr freewindow + bra dointro + ; +.newgame2 addq #1,d0 + move d0,gametype + bsr chatoff + bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bra freewindow + ; +.notlinked cmp #3,d0 + bcs .newgame + ; + subq #3,d0 + bne .notp1 + ; + lea p1ctype(pc),a1 + lea p1_ob_cntrl,a2 + lea p2_ob_cntrl,a3 + bsr inccntrl + bra .sel + ; +.notp1 subq #1,d0 + bne.s .notp2 + ; + lea p2ctype(pc),a1 + lea p2_ob_cntrl,a2 + lea p1_ob_cntrl,a3 + bsr inccntrl + bra .sel + ; +.notp2 subq #1,d0 + bne.s .notlink + ; + bsr dispoff + bsr finitmenu + lea iffwindow,a0 + bsr freewindow + bsr linkup + bra dointro + ; +.notlink subq #1,d0 + bne.s .notvile + ; + addq #1,mode + and #1,mode + move mode(pc),d0 + lea modes,a0 + move.l 0(a0,d0*4),a0 + lea modetxt,a1 +.moloop move.b (a0)+,(a1)+ + bne.s .moloop + ; + bra .sel + ; +.notvile subq #1,d0 + bne .notabout + ; +.about ;about text... + ; + bsr dispoff + bsr finitmenu + lea gloom,a0 + lea gloompal,a1 + bsr makeiff + bsr showiff + ; + lea abouttext,a4 + lea iffwindow,a6 + bsr initmenu + move numopts(pc),-(a7) + move #1,numopts + ; + bsr dispon + bsr selmenu + ; + move (a7)+,numopts + ; + bsr dispoff + bsr finitmenu + bra dointro + ; +.notabout subq #1,d0 + bne .sel + ; +.exitgloom moveq #4,d0 + ; +.newgame move d0,gametype + ; + bsr chatoff + jsr dispoff + jsr finitmenu + lea iffwindow,a0 + bra freewindow + +linkup ;link up... + ; + sub.l a0,a0 + bsr makeiff + bsr showiff + lea linkupmenu,a4 + lea iffwindow,a6 + bsr initmenu + ; + bsr dispon + ; +.loop bsr selmenu + cmp #3,d0 + bne.s .notb + bsr optbaud + bra.s .loop + ; +.notb move d0,-(a7) + bsr dispoff + bsr finitmenu + move (a7)+,d0 + beq nulllink + cmp #4,d0 + beq.s .rts + subq #1,d0 + beq dialup + subq #1,d0 + beq answer +.rts rts +answer lea ata(pc),a0 + move #-1,linked + bra doconnect + +dialup ; + lea phonenum(pc),a0 + move.l a0,a1 + move.l a0,phoneat +.clr tst.b (a0) + beq.s .clrd + move.b #32,(a0)+ + bra.s .clr +.clrd move.b #127,(a1) + ; + sub.l a0,a0 + bsr makeiff + bsr showiff + lea linkmenu0,a4 + lea iffwindow,a6 + bsr initmenu + bsr dispon + ; + st chatok + ; +.wkey qkey $44 ;return? + bne .done + key $41,d0 + bne .del ;del + ; + move chatoutget(pc),d0 + cmp chatoutput(pc),d0 + beq.s .wkey + ; + and #31,d0 + lea chatout(pc),a0 + move.b 0(a0,d0),d0 ;chat out character! + addq #1,chatoutget + ; + cmp #48,d0 + bcs.s .wkey + cmp #58,d0 + bcc.s .wkey + ; + move.l phoneat(pc),a0 + move.b d0,(a0)+ + tst.b (a0) + beq.s .skinc + move.b #127,(a0) + move.l a0,phoneat + ; +.skinc bsr vwait + bsr optoff + bsr opton + bra .wkey + ; +.del move.l phoneat(pc),a0 + cmp.l #phonenum,a0 + beq .wkey + cmp.b #127,(a0) + bne.s .noc + move.b #32,(a0) + subq #1,a0 +.noc move.b #127,(a0) + move.l a0,phoneat + ; +.undel qkey $41 + bne.s .undel + ; + bra.s .skinc + ; +.done qkey $44 + bne.s .done + ; + bsr dispoff + bsr finitmenu + ; + clr chatok + clr chatoutget + clr chatoutput + ; + lea pbuff(pc),a0 ;use this for connect string! + move.l a0,a2 + ; + move.l #'ATDT',(a2)+ + lea phonenum(pc),a1 +.cpn move.b (a1)+,(a2) + beq.s .null + cmp.b #32,(a2)+ + bne.s .cpn + subq #1,a2 +.null move.b #13,(a2)+ + move.b #10,(a2)+ + clr.b (a2) + ; + move #1,linked + bra doconnect + +phoneat dc.l phonenum + +nulllink ; + lea connect(pc),a0 +doconnect ; + bsr sendstring + bsr waitconnect + beq .calcmaster + ; + clr linked + rts + ; + ;OK, randomly determine who is master and who is slave! + ; + ;faster computer SHOULD be master! + ; + ;let's try, number of rnd divs/frame...send as a long word! + ; +.calcmaster tst linked + bne .linked + ; + moveq #0,d7 + ; + move #$20,$dff09a + ; +.vwloop btst #5,$dff01f + beq.s .vwloop + move #$20,$dff09c +.cmloop ; + btst #5,$dff01f + bne.s .cmdone + bsr rndw + ext.l d0 + divs #$a5a5,d0 + addq.l #1,d7 + bra.s .cmloop +.cmdone ; + move #$20,$dff09c + move #$8020,$dff09a + ; + move.l d7,d0 + bsr longput + bsr longget + cmp.l d0,d7 + beq.s .calcmaster + blt.s .skip + ; + ;I'm player 1 + move #1,linked + bra.s .linked + ; +.skip ;I'm actually player 2! + move #-1,linked + ; +.linked move #-1,p2_ob_cntrl + sub.l a0,a0 + bsr makeiff + bsr showiff + lea incharge(pc),a4 + tst linked + bgt.s .goz + lea notincharge(pc),a4 +.goz lea iffwindow,a6 + bsr initmenu + bsr dispon + ; + bsr chaton + bsr selmenu + ; + bsr dispoff + bra finitmenu + +longput ;send ser long in d0 + ; + moveq #3,d1 +.loop rol.l #8,d0 + movem.l d0-d1,-(a7) + bsr vwait + bsr serput + movem.l (a7)+,d0-d1 + dbf d1,.loop + rts + +longget ;get ser long in d0 + ; + move.l d2,-(a7) + moveq #3,d1 +.loop movem.l d1-d2,-(a7) + bsr serwait + movem.l (a7)+,d1-d2 + lsl.l #8,d2 + move.b d0,d2 + dbf d1,.loop + move.l d2,d0 + move.l (a7)+,d2 + rts + +incharge dc.b 1 + dc.b 'player selects options',0 + even + +notincharge dc.b 1 + dc.b 'other player selects options',0 + even + +sendstring ;a0=string to send + ; + move.l a0,a2 +.loop bsr vwait + move.b (a2)+,d0 + beq.s .done + bsr serput + bra.s .loop +.done rts + +waitconnect ;wait for 'CONNECT' to arrive... + ;return eq if OK, else ne if 'esc'ed or not received. + ; + sub.l a0,a0 + bsr makeiff + bsr showiff + lea linkmess,a4 + lea iffwindow,a6 + bsr initmenu + bsr dispon + ; +.retry lea wconnect(pc),a2 + ; +.loop qkey $45 ;ESC? + bne .notok + bsr serget + bpl.s .sgok + bsr vwait + bra.s .loop +.sgok cmp.b (a2)+,d0 + bne.s .retry + tst.b (a2) + bne.s .loop + ; +.ok ;OK, connect xxxx ends with 13,10... + ; +.w10 qkey $45 + bne .notok + bsr serget + bpl.s .sgok2 + bsr vwait + bra.s .w10 +.sgok2 cmp.b #10,d0 + bne.s .w10 + ; + bsr dispoff + bsr finitmenu + moveq #0,d0 + rts + ; +.notok bsr dispoff + bsr finitmenu + moveq #-1,d0 + rts + +optbaud addq #1,baud + cmp #6,baud + bcs.s .ok + clr baud +.ok ; +calcbaud move baud(pc),d0 + lea bauds(pc),a0 + move.l 4(a0,d0*8),a0 ;baud text! + lea baudtext(pc),a1 +.loop move.b (a0)+,(a1)+ + bne.s .loop + ; + move baud(pc),d0 + lea bauds(pc),a1 + move.l 0(a1,d0*8),d0 ;2400 etc. + move.l baudconst(pc),d1 + divu d0,d1 + subq #1,d1 + move d1,$dff032 + ; + rts + +connect dc.b 'CONNECT',13,10,0 + even + +wconnect dc.b 'CONNECT',0 + even + +ata dc.b 'ATA',13,10,0 + even + +linkmenu0 dc.b 1 + dc.b 'DIAL: ' +phonenum dc.b 127,' ',0 + even + +linkmess dc.b 1 + dc.b 'ATTEMPTING TO CONNECT...ESC TO ABORT',0 + even + +linkupmenu dc.b 5 + dc.b 'NULL LINK',0 + dc.b 'DIAL UP',0 + dc.b 'ANSWER',0 + dc.b 'BAUD RATE: ' +baudtext dc.b '2400 ',0 + dc.b 'EXIT',0 + even + +baudconst dc.l 3546895 ;pal + dc.l 3579545 ;ntsc + +baud dc 5 + +bauds dc.l 2400,b1,4800,b2,9600,b3,14400,b4,28800,b5 + dc.l 38400,b6 + +b1 dc.b '2400 ',0 +b2 dc.b '4800 ',0 +b3 dc.b '9600 ',0 +b4 dc.b '14400',0 +b5 dc.b '28800',0 +b6 dc.b '38400',0 + even + + dc.l popt0 +popts dc.l popt1,popt2,popt3,popt4,popt5 + ; +popt0 dc.b 'NULL MODEM',0 ;-1 +popt1 dc.b 'JOYSTICK 1',0 ;0 +popt2 dc.b 'JOYSTICK 2',0 ;1 +popt3 dc.b ' KEYBOARD ',0 ;2 +popt4 dc.b 'CD32 PAD 1',0 ;3 +popt5 dc.b 'CD32 PAD 2',0 ;4 + +joyxs dc 0,0 ;serial +joyys dc 0,0 + ; +joyx0 dc 0,0 +joyb0 dc 0,0 +joyx1 dc 0,0 +joyb1 dc 0,0 +joyx2 dc 0,0 +joyb2 dc 0,0 +joyx3 dc 0,0 +joyb3 dc 0,0 +joyx4 dc 0,0 +joyb4 dc 0,0 + + even + +makeiff ;show an IFF picture...128 colours...320 X 240 + ; + ;a0=trimmed iff, a1=iff's palette + ; + push + movem.l a0-a1,-(a7) + lea iffwindow,a0 + bsr freewindow + movem.l (a7)+,a0-a1 + ; + lea iffwindow,a2 + cmp.l #0,a0 + bne.s .notblank + addq #1,a0 + move.l a0,wi_iff(a2) + move.l #rgbs16,a1 + bra.s .blank + ; +.notblank move.l a0,wi_iff(a2) +.blank move.l a1,wi_pal(a2) + ; + ;copy font palette to IFF palette! + ; + move.l font(pc),d0 + beq.s .nofont + ; + move.l d0,a0 + add.l (a0),a0 + addq #2,a0 + clr.l (a1)+ + moveq #14,d0 +.loop move (a0),(a1)+ + move (a0)+,(a1)+ + dbf d0,.loop +.nofont ; + move.l a2,a0 + bsr makewindow + ; + pull + rts + +showiff push + lea iffwindow,a0 + bsr showwindow + pull + rts + +gamemenu dc.b 7 + dc.b 'CONTINUE',0 + dc.b 'RESOLUTION',0 + dc.b 'WINDOW SIZE',0 + dc.b 'FULL SCREEN WINDOW',0 + dc.b 'FLOOR',0 + dc.b 'CEILING',0 + dc.b 'QUIT GAME',0 + even + +modes dc.l mode1,mode2 + +mode1 dc.b 'MEATY',0 + +mode2 dc.b 'MESSY',0 + +startmenu dc.b 9 + dc.b 'ONE PLAYER GAME',0 ;0 + dc.b 'TWO PLAYER GAME',0 ;1 + dc.b 'TWO PLAYER COMBAT',0 ;2 + dc.b 'PLAYER 1 ' +p1ctype dc.b 'JOYSTICK 1',0 ;3 + ; + dc.b 'PLAYER 2 ' +p2ctype dc.b 'JOYSTICK 2',0 ;4 + ; + dc.b 'REMOTE LINK OPTIONS',0 ;5 + ; + dc.b 'VIOLENCE MODEL: ' +modetxt dc.b 'MEATY',0 ;6 + dc.b 'ABOUT GLOOM',0 ;7 + dc.b 'EXIT GLOOM',0 ;8 + even + +startmenu2 dc.b 5 + dc.b 'TWO PLAYER GAME',0 ;0 + dc.b 'TWO PLAYER COMBAT GAME',0 ;1 + dc.b 'UNLINK FROM REMOTE PLAYER',0 ;2 + dc.b 'ABOUT GLOOM',0 ;3 + dc.b 'EXIT GLOOM',0 ;4 + even + +menuwindow dc.l 0 +menubmap dc.l 0 + +menuy dc 0 +numopts dc 0 ;how many menu options +curropt dc 0 ;current option +flashdelay dc 0 + +menustrips ds.l 32 ;16 max! + +initmenu clr curropt +initmenu2 ; + ;do a menu...menu in a4, window in a6 + ; + move.l a6,menuwindow + move.b (a4)+,d0 ;how many + ext d0 + move d0,numopts + move d0,-(a7) ;counter + move wi_bh(a6),d6 + move.l wi_bmap(a6),menubmap + lsr #1,d6 + move fonth(pc),d2 + lsr #1,d2 + mulu d2,d0 + sub d0,d6 ;Y + move d6,menuy + lea menustrips(pc),a5 + ; +.loop ;save strip! + ; + move.l a4,(a5)+ + ; + move #40*7,d0 + mulu fonth(pc),d0 + moveq #2,d1 + allocmem menustrip + move.l d0,(a5)+ + move.l d0,a1 + move.l wi_bmap(a6),a0 + move d6,d0 + mulu #7*40,d0 + add.l d0,a0 + ; + move #40*7,d0 + mulu fonth(pc),d0 + lsr.l #2,d0 + subq #1,d0 + ; +.sloop move.l (a0)+,(a1)+ + dbf d0,.sloop + ; + move.l a4,a0 + moveq #-1,d0 +.cnt addq #1,d0 + tst.b (a0)+ + bne.s .cnt + ; + bsr printmess2 + ; + add fonth(pc),d6 + subq #1,(a7) + bgt.s .loop + addq #2,a7 + ; + ifne debugmem + bsr showmem + lea memasc,a4 + moveq #8,d0 + bsr printmess2 + ; + move.l freememerr,d0 + beq.s .nomemerr + clr.l freememerr + move.l d0,a4 + move.l d0,a0 + moveq #-1,d0 +.ccloop addq #1,d0 + tst.b (a0)+ + bne.s .ccloop + add fonth(pc),d6 + bsr printmess2 +.nomemerr ; + endc + ; + rts + + ifne debugmem +showmem push + move.l 4.w,a6 + moveq #1,d1 + jsr -216(a6) + lea memasc,a0 + moveq #7,d1 +.loop rol.l #4,d0 + move d0,d2 + and #15,d2 + add #48,d2 + cmp #58,d2 + bcs.s .skip + addq #7,d2 +.skip move.b d2,(a0)+ + dbf d1,.loop + pull + rts + ; +memasc dc.b '12345678',0 + even + endc + +optoff move curropt(pc),d6 + lea menustrips(pc),a0 + move.l 4(a0,d6*8),a0 ;address of strip + mulu fonth(pc),d6 + add menuy(pc),d6 + mulu #7*40,d6 + move.l menubmap(pc),a1 + add.l d6,a1 + ; + move fonth(pc),d0 + mulu #7,d0 + lsl #6,d0 + or #20,d0 + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l #$9f00000,$dff040 + move.l #-1,$dff044 + move #0,$dff064 + move #0,$dff066 + move.l a0,$dff050 + move.l a1,$dff054 + move d0,$dff058 + ; + move #13,flashdelay + ; + rts + +opton move curropt(pc),d6 + lea menustrips(pc),a0 + move.l 0(a0,d6*8),a4 ;text! + mulu fonth(pc),d6 + add menuy(pc),d6 + ; + ;a6=window, a4=message, d0=length of message, d6=Y + ; + move.l a4,a0 + moveq #-1,d0 +.loop addq #1,d0 + tst.b (a0)+ + bne.s .loop + ; + move.l menuwindow(pc),a6 + bsr printmess2 + ; + move #13,flashdelay + ; + rts + +readmenujoys ;if in charge...read and send else rec. + ; + tst linked + beq.s .read + bpl.s .readsend + ; +.get bsr serget + bmi.s .none + bsr serput ;send back! + lea joyx(pc),a0 + jmp decodejoy +.none clr.l joyx + clr.l joyb + rts + ; +.readsend bsr .read + lea joyx(pc),a0 + jsr encodejoy + tst.b d0 + beq.s .rts + bsr serput + bsr serwait ;wait for send back! +.rts rts + ; +.read ;OK, read joystick in port 2, and keyboard! + ;merge into joyx,joyy,joyb + ; + lea joyx(pc),a0 + bsr readjoy1 + lea joyx0(pc),a0 + bsr readkeys + move.l joyx0(pc),d0 + or.l d0,joyx + move.l joyb0(pc),d0 + or.l d0,joyb + ; + qkey $44 + bne.s .fire + qkey $45 + bne.s .fire + rts +.fire move #-1,joyb + rts + +selmenu ;select a menu item...return item in d0 + ; + ;flash selected option on/off + ; + bsr optoff + ; +.loop1 bsr vwait + bsr readmenujoys + tst joyy + blt .up2 + bgt .down2 + tst joyb + bne .sel2 + ; + subq #1,flashdelay + bgt .loop1 + ; + bsr opton + ; +.loop2 bsr vwait + bsr readmenujoys + tst joyy + blt .up + bgt .down + tst joyb + bne .sel + ; + subq #1,flashdelay + bgt .loop2 + ; + bra selmenu + ; +.up2 bsr opton +.up subq #1,curropt + bpl.s .upskip + move numopts(pc),d0 + subq #1,d0 + move d0,curropt +.upskip bsr vwait + bsr readmenujoys + tst joyy + bmi .upskip + bra selmenu + ; +.down2 bsr opton +.down addq #1,curropt + move curropt(pc),d0 + cmp numopts(pc),d0 + bcs.s .downskip + clr curropt +.downskip bsr vwait + bsr readmenujoys + tst joyy + bgt .downskip + bra selmenu + ; +.sel2 bsr opton +.sel bsr vwait + bsr readmenujoys + tst joyb + bne .sel + move curropt(pc),d0 + rts + +finitmenu ;clean up menu operation + ; + lea menustrips(pc),a5 + move numopts(pc),d2 + subq #1,d2 +.loop addq #4,a5 + move.l (a5)+,a1 + freemem menustrip + dbf d2,.loop + rts + +initbmappal move.l smallfont_,a0 + add.l (a0),a0 + addq #2,a0 + moveq #22,d0 ;23 colours to poke! + move.l coplist(pc),a1 + move.l a1,a2 + move.l a1,a3 + move.l a1,a4 + ; + lea cols1+6-copinit(a1),a1 + lea cols2+6-copinit(a2),a2 + lea cols3+6-copinit(a3),a3 + lea cols4+6-copinit(a4),a4 + ; +.loop move (a0),(a1) + move (a0),(a2) + move (a0),(a3) + move (a0)+,(a4) + addq #4,a1 + addq #4,a2 + addq #4,a3 + addq #4,a4 + dbf d0,.loop + rts + +initdarktable ; + move #maxz-1,d2 + move.l sqr(pc),a0 + move.l darktable(pc),a1 + ; +.loop move d2,d3 + lsl #3,d3 + move 0(a0,d3),d3 + lsr #3,d3 + eor #15,d3 + move d3,(a1)+ + ; + dbf d2,.loop + ; + rts + +initrawmap lea ascmap(pc),a0 + lea rawmap(pc),a1 + bsr .loop + lea ascmap2(pc),a0 + lea shiftmap(pc),a1 + ; +.loop moveq #0,d0 + move.b (a0)+,d0 + cmp #$ff,d0 + beq.s .rts +.loop2 move.b (a0)+,d1 + beq.s .loop + move.b d1,0(a1,d0) + addq #1,d0 + bra.s .loop2 +.rts rts + +ascmap dc.b $1,'1234567890',0 + dc.b $10,'QWERTYUIOP',0 + dc.b $20,'ASDFGHJKL',0 + dc.b $31,'ZXCVBNM',0 + dc.b $40,' ',0 + dc.b $38,',.',0 + dc.b $ff + even + ; +ascmap2 dc.b $3a,'?',0 + dc.b $01,'!',0 + dc.b $ff + even + +rawmap ds.b 128 ;unshifted chars +shiftmap ds.b 128 ;shifted chars + +chatout ds.b 32 +chatoutput dc 0 +chatoutget dc 0 + +chatin ds.b 32 +chatinput dc 0 +chatinget dc 0 + +shiftdown dc 0 ;shift key status + +rawkeyread ;a1=matrix! hi bit of keycode=1 if key up! + ; + move.l d2,-(a7) + ; + moveq #0,d2 + move.b $bfec01,d2 + not.b d2 + ror.b #1,d2 + or.b #$40,$bfee01 + ; + move d2,d0 + move d2,d1 + and #7,d1 + lsr #3,d0 + bclr #4,d0 + bne.s .clrkey + ; +.setkey bset d1,0(a1,d0) ;key on! + ; + move chatok(pc),d0 + beq.s .skip + ; + lea rawmap(pc),a0 + move.b $60>>3(a1),d0 + and #7,d0 + beq.s .unshft + lea shiftmap(pc),a0 +.unshft move.b 0(a0,d2),d0 ;asc! + beq.s .skip + ; + ;ok, add to chat out buffer! + ; + lea chatout(pc),a0 + move chatoutput(pc),d1 + and #31,d1 + move.b d0,0(a0,d1) + addq #1,chatoutput + ; + bra.s .skip + ; +.clrkey bclr d1,0(a1,d0) + ; +.skip moveq #6,d0 ;wait 6 scanlines? + moveq #-1,d1 +.loop move d1,d2 +.loop2 move.l $dff004,d1 + lsr.l #8,d1 + and #$1ff,d1 + cmp d2,d1 + beq.s .loop2 + dbf d0,.loop + ; + and.b #$bf,$bfee01 + ; + move.l (a7)+,d2 + rts + +rawtable dc.l rawmatrix +rawstuff dc.l 0,0 +ciaa dc.l 0 +ciaaname dc.b 'ciaa.resource',0 + even +rawmatrix dc.l 0,0,0,0 ;128 key bits + +savefile ;a0=name, a1=mem, d0=length + push + ; + movem.l d0/a0-a1,-(a7) + ; + move.l dosbase,a6 + move.l a0,d1 + move.l #1006,d2 + jsr -30(a6) + move.l d0,d7 + bne.s .ok + ; + sub.l a0,a0 + bsr makeiff + bsr showiff + lea wpmess,a4 + lea iffwindow,a6 + bsr initmenu + bsr dispon + ; +.help bsr vwait + ; + movem.l (a7),d0/a0-a1 + move.l dosbase,a6 + move.l a0,d1 + move.l #1006,d2 + jsr -30(a6) + move.l d0,d7 + beq.s .help + ; + move.l d7,-(a7) + bsr dispoff + bsr finitmenu + move.l (a7)+,d7 + ; +.ok move.l d7,d1 + movem.l (a7)+,d0/a0-a1 + move.l a1,d2 + move.l d0,d3 + jsr -48(a6) + ; + move.l d7,d1 + jsr -36(a6) + ; +.done pull + rts + +wpmess dc.b 1 + dc.b 'please write enable the gloom data disk!',0 + even + +fileheader ds.b 14 +loadmem dc.l 0 + +loadfileabs move.l a1,loadmem + bra.s loadfile_ + +loadfile clr.l loadmem + ; +loadfile_ ;a0=name, d1=memtype + ; + ;decrunch file if nec. + ; + ;return d0=pointer + ; + push + ; + move.l d1,d5 ;save memtype + move.l dosbase,a6 + ; + move.l a0,d1 + move.l #1005,d2 + jsr -30(a6) ;open it! + move.l d0,d7 ;handle + beq .err + ; + move.l d7,d1 + moveq #0,d2 + moveq #1,d3 + jsr -66(a6) ;seek to end + ; + move.l d7,d1 + moveq #0,d2 + moveq #-1,d3 ;seek to start + jsr -66(a6) + ; + move.l d0,d4 ;length=prev filepos + ; + move.l d7,d1 + move.l #fileheader,d2 + moveq #14,d3 + jsr -42(a6) ;read! + ; + move.l d0,-(a7) ;how many bytes read! + ; + move.l d7,d1 + moveq #0,d2 + moveq #-1,d3 ;back to start + jsr -66(a6) + ; + cmp.l #14,(a7)+ + bcs.s .nocrunch + ; + moveq #0,d6 + move.l fileheader(pc),d0 + cmp.l #'CrM2',d0 + beq.s .crunch + cmp.l #'CrM!',d0 + bne.s .nocrunch + ; +.crunch cmp.l fileheader+6(pc),d4 ;loadlen>destlen? + bcc.s .skip + move.l fileheader+6(pc),d4 ;length to allocate +.skip ; + moveq #14,d6 + add fileheader+4(pc),d6 + bsr loadit + move.l d0,a0 ;src + add.l d6,d0 ;dest + move.l d0,a1 + jsr decrm+32 + pull + rts +.nocrunch ; + bsr loadit + ; +.err pull + rts + +loadit ;d4=length to alloc/read, d5=memtype + ;seek to start, load, close and return base in d0. + ; + move.l loadmem(pc),d0 + bne.s .noalloc + ; + move.l d4,d0 + move.l d5,d1 + move.l d6,d2 ;offset XS + allocmem2 loadfile + sub.l d6,d0 +.noalloc ; + move.l d7,d1 + move.l d0,d2 + move.l d4,d3 ;read len + jsr -42(a6) ;read + move.l d7,d1 + jsr -36(a6) ;close + move.l d2,d0 + ; + rts + +andtable dc $ffff,0 ;rgb and, brightness add...wht + dc $ff00,8 ;red + +makepalettes ; + ;make wht and red pals + ; + ;create pointers... + ; + lea palettes(pc),a0 + move.l map_rgbs(pc),d0 + lea palettesw(pc),a1 + move.l map_rgbsw(pc),d1 + lea palettesr(pc),a2 + move.l map_rgbsr(pc),d2 + ; + moveq #15,d7 + ; +.loop move.l (a0)+,d3 + sub.l d0,d3 ;offset! + move.l d3,d4 + add.l d1,d3 + move.l d3,(a1)+ + add.l d2,d4 + move.l d4,(a2)+ + ; + dbf d7,.loop + ; + move.l map_rgbsend(pc),d7 + sub.l map_rgbs(pc),d7 ;how many bytes! + lsr #1,d7 + subq #1,d7 ;words! + ; + move.l map_rgbsw(pc),a1 + move #$ffff,d1 ;col and + move #0,d2 ;gamma + bsr makeapal + ; + move.l map_rgbsr(pc),a1 + move #$ff00,d1 + moveq #16,d2 + bsr makeapal + ; + rts + +makeapal move.l map_rgbs(pc),a0 + ; +.loop move (a0)+,d4 ;src colour...find briteness + ; + move d4,d5 + move d4,d6 + and #$f00,d4 + lsr #8,d4 + and #$0f0,d5 + lsr #4,d5 + and #$00f,d6 + add d6,d5 + add d5,d4 + add d2,d4 + cmp #16*3,d4 + bcs.s .bok + moveq #16*3-1,d4 +.bok ext.l d4 + divu #3,d4 ;(r+g+b)/3=briteness! + ; + move d4,d5 + move d4,d6 + lsl #8,d4 + lsl #4,d5 + or d6,d5 + or d5,d4 ;RGB + and d1,d4 + ; + move d4,(a1)+ + ; + cmp.l map_rgbsend(pc),a0 + bcs.s .loop + ; + rts + +calcpalettes ;OK, our palette currently runs from: + ; + ;map_rgbs + ; to + ;map_rgbsat + ; + ;append brightness versions... + ; + lea palettes(pc),a2 + move.l map_rgbs(pc),(a2)+ ;first brightness! + move.l map_rgbsat(pc),a1 ;first brightness! + move.l a1,a3 + moveq #1,d0 ;rgb subtract + ; +.loop move.l map_rgbs(pc),a0 + move.l a1,(a2)+ + ; +.loop2 move (a0)+,d1 + move d1,d2 + move d1,d3 + ; + and #$f00,d1 + lsr #8,d1 + sub d0,d1 + bpl.s .rok + moveq #0,d1 +.rok ; + and #$f0,d2 + lsr #4,d2 + sub d0,d2 + bpl.s .gok + moveq #0,d2 +.gok ; + and #$0f,d3 + sub d0,d3 + bpl.s .bok + moveq #0,d3 +.bok ; + lsl #8,d1 + lsl #4,d2 + or d3,d2 + or d2,d1 + or #$8000,d1 + ; + move d1,(a1)+ + cmp.l a3,a0 + bcs.s .loop2 + ; + addq #1,d0 + cmp #16,d0 + bcs.s .loop + ; + move.l a1,map_rgbsend + ; + rts + +map_rgbsend dc.l 0 + +dispoff tst dispnest + bne.s .skip + bsr vwait + move #$01a0,$dff096 ;bp/cop/spr off! +.skip addq #1,dispnest + rts + +dispon subq #1,dispnest + bgt.s .skip + bsr vwait + move.l coplist(pc),$dff080 + move #0,$dff088 + move #$8080,$dff096 ;cop on! + move #0,$dff088 +.skip rts + +forbid push + moveq #49,d0 +.fl bsr vwait + dbf d0,.fl + bsr ownblitter + move.l 4.w,a6 + jsr -132(a6) + move #$8400,$dff096 ;bltnasty! + pull + rts + +permit push + move.l 4.w,a6 + jsr -138(a6) + bsr disownblitter + pull + rts + +initvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -168(a6) ;addintserver + pull + rts + +vbcounter dc 0 +framecnt dc 0 + +frame dc 0,0 + +vbintserver dc.l 0,0 + dc.b 2,0 + dc.l 0 +vbintdata dc.l vbcounter +vbintcode dc.l vbhandler + +rbfintserver dc.l 0,0 + dc.b 2,0 + dc.l 0 +rbfintdata dc.l rbuff +rbfintcode dc.l rbf + +finitvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -174(a6) + pull + rts + +ownblitter push + move.l grbase,a6 + jsr -456(a6) + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + pull + rts + +disownblitter push + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + move.l grbase,a6 + jsr -462(a6) + pull + rts + +makecoloffs push + ; + lea coloffs,a0 + moveq #2,d0 + moveq #3,d2 +.loop addq.l #4,d0 + moveq #31,d1 +.loop2 move.l d0,(a0)+ + addq.l #4,d0 + dbf d1,.loop2 + dbf d2,.loop + ; + pull + rts + +grname dc.b 'graphics.library',0 + even +grbase dc.l 0 +oldview dc.l 0 +dosname dc.b 'dos.library',0 + even +dosbase dc.l 0 + +calcbpos ;also: calc qstripbot, con0poke... + ; + move window1+wi_h,d0 + add d0,d0 + ext.l d0 + add.l qstrip(pc),d0 + move.l d0,qstripbot + ; + move #$100,con0poke + move floorflag(pc),d0 + and roofflag(pc),d0 + bne.s .cp + move #$9f0,con0poke ;one of them is cop strip! +.cp ; + move window1+wi_y,d0 + subq #4,d0 + move d0,minbpos + tst twowins + beq.s .p1 + ; + move window2+wi_y,d0 + add window2+wi_bh,d0 + addq #4,d0 + move d0,maxbpos + rts + ; +.p1 move window1+wi_y,d0 + add window1+wi_bh,d0 + addq #4,d0 + move d0,maxbpos + ; + rts + +showwindow ;a0=window + ; + push + ; + ;poke bitmaps... + move.l wi_slice(a0),a1 + move.l (a1),a1 + move.l wi_bmap(a0),d0 + moveq #6,d1 ;7 bitplanes +.loop move d0,6(a1) + swap d0 + move d0,2(a1) + swap d0 + add.l #40,d0 + addq #8,a1 + dbf d1,.loop + ; + ;create DIW + ; + move.l wi_slice(a0),a1 + move.l (a1),a1 + ; + move wi_y(a0),d0 + move d0,d1 + add wi_bh(a0),d1 + lsl #8,d0 + or #$81,d0 + move d0,56+2(a1) + lsl #8,d1 + or #$c1,d1 + move d1,56+6(a1) + ; + ;create wait! + ; + move wi_y(a0),d0 + subq #3,d0 + move.b d0,64(a1) + ; + ;create link to next! + move.l wi_nslice(a0),a1 + move.l (a1),d0 + move.l wi_cop1(a0),a1 + add.l wi_copmem(a0),a1 + move.l wi_cop2(a0),a2 + add.l wi_copmem(a0),a2 + move d0,-6(a1) + move d0,-6(a2) + swap d0 + move d0,-10(a1) + move d0,-10(a2) + ; + pull + ; +showwindowq ;display coplist + ; + move.l wi_cop(a0),d0 + move.l wi_slice(a0),a0 + move.l (a0),a0 + ; + move d0,72+6(a0) + swap d0 + move d0,72+2(a0) + ; + rts + +finitdisplay push + ; + move.l grbase,a6 + move.l oldview,a1 + jsr -222(a6) ;load view + jsr -270(a6) + jsr -270(a6) + move.l 38(a6),$dff080 + move #$81a0,$dff096 + move #0,$dff088 + ; + pull + rts + +chatmap dc.l 0 + +initdisplay push + ; + lea grname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,grbase + ; + move.l d0,a6 + move.l 34(a6),oldview + sub.l a1,a1 + jsr -222(a6) ;loadview + ; + move.l #copinitf-copinit,d0 + moveq #2,d1 + allocmem copinit + move.l d0,coplist + ; + move.l d0,a1 + lea copinit,a0 + lea copinitf,a2 + ; +.loop cmp.l a2,a0 + bcc.s .done + move.l (a0)+,(a1)+ + bra.s .loop +.done ; + add.l #sl1-copinit,d0 + move.l d0,slice1 + add.l #sl2-sl1,d0 + move.l d0,slice2 + add.l #cstop-sl2,d0 + move.l d0,copstop + ; + move.l copstop,d0 + move.l slice1,a0 + move.l slice2,a1 + ; + move d0,72+6(a0) + move d0,72+6(a1) + swap d0 + move d0,72+2(a0) + move d0,72+2(a1) + ; + move.l #80*2*5,d0 + moveq #2,d1 + allocmem chatplanes + move.l d0,chatmap + ; + move d0,chatplanes+6 + swap d0 + move d0,chatplanes+2 + swap d0 + add.l #80,d0 + move d0,chatplanes+14 + swap d0 + move d0,chatplanes+10 + ; + bsr chatoff + ; + jsr -270(a6) + jsr -270(a6) + move.l coplist,$dff080 + move #0,$dff088 + ; + pull + rts + +allocwbmap move wi_w(a2),d0 + mulu wi_pw(a2),d0 + move d0,wi_bw(a2) + ; + move wi_h(a2),d0 + mulu wi_ph(a2),d0 + move d0,wi_bh(a2) + ; + mulu #40*7,d0 + ; + move.l #$10002,d1 + move.l d0,wi_bmapmem(a2) + allocmem wi_bmap + move.l d0,wi_bmap(a2) + ; + move.l #40*7*7,d0 + moveq #2,d1 + allocmem wi_strip + move.l d0,wi_strip(a2) + ; + rts + +windowiff ;draw iff into window! + ; + move.l wi_iff(a2),a0 + cmp.l #1,a0 + bne.s .do + rts + ; +.do move.l wi_bmap(a2),a1 + ; + move 2(a0),d1 + cmp #240,d1 + bcs.s .skip + move #240,d1 +.skip move #120,d2 + lsr #1,d1 + sub d1,d2 + mulu #7*40,d2 + add.l d2,a1 + ; +decodeiff ;for 40 columns... + ; + ;a0=trimmed IFF file, + ;a1=destination bitmap... + ; + move.l a2,-(a7) + moveq #40,d7 + ; + move (a0)+,d0 ;pixel width + lsr #3,d0 ;to byte width + move (a0)+,d1 ;pixel height + cmp #240,d1 + bls.s .hok + move #240,d1 +.hok subq #1,d1 ;to dbf + move (a0)+,d2 ;depth + subq #1,d2 ;to dbf + addq #6,a0 ;skip header + ; +.loop5 move d2,d5 ;depth + ; +.loop4 move.l a1,a2 + move d0,d4 ;how many bytes in line + ; +.loop moveq #0,d3 + move.b (a0)+,d3 + bmi.s .repeat + sub d3,d4 +.loop3 move.b (a0)+,(a2)+ + dbf d3,.loop3 + bra.s .skip + ; +.repeat cmp.b #-128,d3 + beq.s .loop + neg.b d3 + sub d3,d4 +.loop2 move.b (a0),(a2)+ + dbf d3,.loop2 + addq #1,a0 +.skip subq #1,d4 + bgt.s .loop + ; + add d7,a1 + dbf d5,.loop4 + dbf d1,.loop5 + ; + move.l (a7)+,a2 + rts + +plotwbmap ;OK, plot colours on bitmap! + ; + move.l wi_iff(a2),d0 + bne windowiff + ; + move.l wi_bmap(a2),a0 + move wi_x(a2),d0 + move d0,d1 + lsr #3,d0 + not d1 + and #7,d1 + moveq #127,d7 ;colour + move wi_w(a2),d6 ;width + subq #1,d6 + ; +.wloop move wi_pw(a2),d5 + subq #1,d5 + ; +.wloop2 move d7,d4 + moveq #6,d3 + ; +.dloop bclr d1,0(a0,d0) + lsr #1,d4 + bcc.s .dskip + bset d1,0(a0,d0) +.dskip lea 40(a0),a0 + dbf d3,.dloop + ; + lea -40*7(a0),a0 + subq #1,d1 + bpl.s .dskip2 + moveq #7,d1 + addq #1,d0 +.dskip2 dbf d5,.wloop2 + ; + subq #1,d7 + dbf d6,.wloop + ; + move wi_bh(a2),d0 ;how many to copy + subq #1,d0 + bsr wcopy + ; + move.l wi_bmap(a2),a0 + move.l wi_strip(a2),a1 + move wi_bh(a2),d0 + lsr #2,d0 + mulu #7*40,d0 + add.l d0,a0 + move #7*7*10-1,d2 + ; +.loop move.l (a0)+,(a1)+ + dbf d2,.loop + ; + rts + +wcopy ;copy top scanline to next d0 scanlines + ; + move.l wi_bmap(a2),a0 + mulu #10*7,d0 + subq #1,d0 + lea 40*7(a0),a1 +.cbloop move.l (a0)+,(a1)+ + dbf d0,.cbloop + ; + rts + +freewindow ;window in a0 + ; + push + move.l a0,a2 + move.l wi_bmap(a2),d0 + beq.s .no1 + clr.l wi_bmap(a2) + move.l d0,a1 + freemem wi_bmap +.no1 move.l wi_strip(a2),d0 + beq.s .no2 + clr.l wi_strip(a2) + move.l d0,a1 + freemem wi_strip +.no2 move.l wi_cop1(a2),d0 + beq.s .no3 + clr.l wi_cop1(a2) + move.l d0,a1 + freemem wi_cop +.no3 pull + rts + +makewindow ;make window + ; + ;a0=window struct! + ; + push + ; + move.l a0,a2 + ; + bsr allocwbmap + bsr plotwbmap + ; + tst.l wi_iff(a2) + beq wchunky + ; + ;make a palette coplist for the window + ; + ;to write 32 colours... + ;set bank, write hi nybs, set bank, write lo nybs... + ;=66 copins. + ;*4=264 total + ;+1 for final wait +3 for final copjump=268 + ; + move.l #268<<2,d0 + move.l d0,wi_copmem(a2) + moveq #2,d1 + allocmem wi_iffcop + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + move.l d0,wi_cop2(a2) + move.l d0,a0 ;dest + move.l wi_pal(a2),a1 ;palette! + ; + moveq #0,d0 ;bank + moveq #3,d3 ;something. + ; +.loop move #$106,(a0)+ + move d0,(a0)+ + move #$180,d1 + moveq #31,d2 +.hiloop move d1,(a0)+ + move (a1),(a0)+ + addq #4,a1 + addq #2,d1 + dbf d2,.hiloop + ; + lea -128+2(a1),a1 + move #$106,(a0)+ + bset #9,d0 + move d0,(a0)+ + bclr #9,d0 + move #$180,d1 + moveq #31,d2 +.loloop move d1,(a0)+ + move (a1),(a0)+ + addq #4,a1 + addq #2,d1 + dbf d2,.loloop + subq #2,a1 + ; + add #$2000,d0 ;next bank! + dbf d3,.loop + ; + move.l #$fffffffe,(a0)+ + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + pull + rts + ; +wchunky ;how many copins on one line? + ; + move wi_w(a2),d0 + move d0,d1 + subq #1,d0 + lsr #5,d0 ;how many bank changes per line! + addq #3,d0 ;1 waits - 1 eor, 1 init bank select + add d1,d0 ;+colpokes + ; + move d0,d1 + lsl #2,d1 + move d1,wi_copmod(a2) + ; + mulu wi_h(a2),d0 + addq #4,d0 ;1 wait and cop jump at end + ; + lsl.l #2,d0 ;4 bytes/copins + moveq #2,d1 ;cop in chip + move.l d0,wi_copmem(a2) + lsl.l #1,d0 ;2 coplists! + allocmem wi_chunkycop + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + ; + move.l d0,a0 + move wi_y(a2),d6 + move wi_h(a2),d7 + subq #1,d7 + move #$111,d3 ;test colour + move #$8000,d4 ;Colour Eor + ; +.hloop ;make one copline... + ; + moveq #127,d0 ;colour reg to poke + move wi_w(a2),d1 + subq #1,d1 + ; +.lloop move d0,d2 + addq #1,d2 + and #31,d2 + bne.s .notnbank + ; + ;new bank.... + move d0,d2 + sub #31,d2 + and #$ffe0,d2 + lsl #8,d2 + or d4,d2 ;eor bank + move #$106,(a0)+ ;bank select + move d2,(a0)+ + ; +.notnbank move d0,d2 + and #31,d2 + add d2,d2 + add #$180,d2 + move d2,(a0)+ ;colour poke + move d3,(a0)+ + add #$111,d3 + subq #1,d0 + dbf d1,.lloop + ; + bsr .makewait + ; + ;ok, now do EOR! + move #$10c,(a0)+ + move d4,(a0)+ + bchg #15,d4 + ; + dbf d7,.hloop + ; + bsr .makewait + ; + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + ; + ;OK, 1 list created...copy to other! + ; + move.l wi_cop1(a2),a0 + move.l a0,a1 + add.l wi_copmem(a2),a1 + move.l a1,wi_cop2(a2) + move.l a1,a3 + ; +.copycop move.l (a0)+,(a3)+ + cmp.l a1,a0 + bcs.s .copycop + ; + pull + rts + +.makewait ; + ;make wait ins. at pos d6 + ; + subq #1,d6 + move.b d6,(a0)+ + move.b #$e1,(a0)+ + move #$fffe,(a0)+ + addq #1,d6 + add wi_ph(a2),d6 + rts + +allocmem2_ ; + ;as below, but d2.l = extra mem at start to set aside + ; + push + moveq #16,d3 + add.l d2,d3 + bra.s amem_ + +allocmem_ ; + ;d0=size, d1=requirements, a0=text field + ; + ;set up node before allocmem for quick freemem: + ; + ;00.l : next + ;04.l : real size + ;08.l : offset to user mem (normally 16, but CM fucks things up) + ;12.l : pointer to text field for debugging + ; + push + moveq #16,d3 ;offset + ; +amem_ move.l a0,d4 + add.l d3,d0 + ; + move.l d0,d2 ;len + move.l a0,d4 ;text + move.l 4.w,a6 + jsr -198(a6) + tst.l d0 + bne.s .skip + ; + warn #$f00 + ; +.skip move.l d0,a0 + move.l memlist,(a0) ;next + move.l a0,memlist + movem.l d2-d4,4(a0) + add.l d3,a0 + move.l a0,d0 + ; + pull + rts + +freememlist push + ; +.more move.l memlist,d0 + beq.s .done + move.l d0,a2 + ; + ifne debugmem + move.l 12(a2),a0 ;text field + move.l a0,d2 + moveq #-1,d3 +.loop addq.l #1,d3 + tst.b (a0)+ + bne.s .loop + ; + move.l outhand,d1 + move.l dosbase,a6 + jsr -48(a6) + endc + ; + move.l a2,a1 + ; + move.l (a1),memlist + move.l 4(a1),d0 + move.l 4.w,a6 + jsr -210(a6) + bra.s .more + ; +.done pull + rts + +freemem_ ; + ;a1=address to free! + ; + push + ; + ifne debugmem + move.l a0,-(a7) ;error mess + elseif + endc + ; + move.l a1,a2 ;mem to find! + lea memlist(pc),a1 + ; +.more move.l a1,a0 ;prev + move.l (a1),d0 + beq.s .err + move.l d0,a1 + ; + move.l a1,a3 + add.l 8(a3),a3 + cmp.l a3,a2 + bne.s .more + ; + move.l (a1),(a0) + move.l 4(a1),d0 + move.l 4.w,a6 + jsr -210(a6) + bra.s .done + ; +.err warn #$ff0 + ifne debugmem + move.l (a7),freememerr + endc +.done ; + ifne debugmem + addq #4,a7 + endc + ; + pull + rts + +freememerr dc.l 0 + +initmap ;map address in map_map... + ;load in textures, do colour mapping etc. + ; + push + ; + move.l map_map,a0 + ; + move.l a0,a1 + add.l (a0),a1 + move.l a1,map_grid + ; + move.l a0,a1 + add.l 4(a0),a1 + move.l a1,map_poly + ; + move.l a0,a1 + add.l 8(a0),a1 + move.l a1,map_ppnt + ; + move.l a0,a1 + add.l 12(a0),a1 + move.l a1,map_anim + ; + move.l a0,a1 + add.l 16(a0),a1 + move.l a1,map_txts + ; + move.l (a0),d0 + sub.l #25*4,d0 + add.l a0,d0 + move.l d0,map_events + ; + move.l map_rgbsfrom2,map_rgbsat + ; + pull + rts + +freetxts lea textscrns,a6 + moveq #7,d7 +.loop move.l (a6)+,d0 + beq.s .skip + move.l d0,a1 + freemem freetxts + clr.l -4(a6) +.skip dbf d7,.loop + rts + +loadtxts push + ; + lea textures,a4 + move.l map_txts,a5 ;texture names + lea textscrns,a6 + moveq #7,d7 + ; +.ltl lea .temp(pc),a0 + ; +.ltl2 move.b (a5)+,(a0)+ + bne.s .ltl2 + moveq #0,d0 + cmp.l #.temp+1,a0 + beq.s .notext + lea .temp2(pc),a0 + moveq #1,d1 + jsr loadfile + ; +.notext move.l d0,(a6)+ ;texture! + beq.s .skip + ; + ;do colour mapping stuff! + ; + move.l d0,-(a7) + ; + move.l d0,a0 + add.l (a0),a0 + move.l a0,a2 + bsr addpal + ; + move.l (a7),a0 + addq #4,a0 + move.l a2,a1 + bsr remap + ; + move.l (a7)+,a0 + addq #4,a0 + moveq #19,d0 + move.l #64*65,d1 + ; +.mtxt move.l a0,(a4)+ + add.l d1,a0 + dbf d0,.mtxt +.skip ; + dbf d7,.ltl + ; + pull + rts + +.temp2 dc.b 'txts/' +.temp ds.b 64 + even + +remapanim ;a0=anim to remap... + ; + push + ; + move.l a0,a6 + movem (a6),d6-d7 + lsl d6,d7 ;how many frames! + subq #1,d7 + ; + move.l a6,a0 + add.l an_pal(a0),a0 + bsr addpal + ; + lea an_size(a6),a5 + ; +.loop move.l a6,a0 + add.l (a5)+,a0 ;start of shape + addq #4,a0 ;skip handles + movem (a0)+,d0-d1 ;w/h + mulu d1,d0 + lea 0(a0,d0.l),a1 ;end + bsr remap + ; + dbf d7,.loop + ; + pull + rts + +remap ;a0=start of byte data, a1=end of byte data + ; + push + ; + moveq #0,d0 + move.l maptable,a2 + ; +.loop cmp.l a1,a0 + bcc.s .done + move.b (a0),d0 + move.b 0(a2,d0),(a0)+ + bra.s .loop +.done ; + pull + rts + +addpal ;add palette in a0 to end of map_rgb + ; + push + ; + move (a0)+,d0 + subq #1,d0 + move.l map_rgbsat,a2 ;end of rgbs + move.l maptable,a3 + ; + clr.b (a3) ;0=0 + move.b #255,255(a3) ;-1=-1 + move.b #254,254(a3) ;-1=-1 + move.b #253,253(a3) ;-1=-1 + move.b #252,252(a3) ;-1=-1 + move.b #251,251(a3) ;-1=-1 + move.b #250,250(a3) ;-1=-1 + move.b #249,249(a3) ;-1=-1 + ; + moveq #1,d2 ;colour 1! + ; +.loop move (a0)+,d1 ;colour...does it exist? + bmi.s .next ;not used! + move.l map_rgbs,a1 + ; +.loop2 cmp.l a2,a1 + bcc.s .no + cmp (a1)+,d1 + beq.s .yes + bra.s .loop2 + ; +.no ;colour doesn't exist! + ;may have to do a 'near match' routine if we run out of colours + ; + move d1,(a2)+ + move.l a2,a1 + ; +.yes subq #2,a1 + sub.l map_rgbs,a1 + move.l a1,d1 + lsr #1,d1 ;real colour + ; + cmp #256,d1 + bcs.s .ok + ; + warn #$00f + ; +.ok move.b d1,0(a3,d2) + ; +.next addq #1,d2 + dbf d0,.loop + ; + move.l a2,map_rgbsat + ; + pull + rts + + ;coll types... + ; + ;1...bullet from player 1 + ;2...bullet from player 2 + ;4...bullet from monster + ;8...player 1 + ;16..player 2 + ; + + dc.l 0,player,tokens + ; +objlist ;list of objects to be freed... + ; + dc.l marine,baldy,terra,ghoul,demon,phantom + dc.l lizard,deathhead,dragon,0 + +player dc.l 0,0 ;main, chunks + dc.b 'objs/player',0,0 + even +tokens dc.l 0,0 + dc.b 'objs/tokens',0,0 + even +marine dc.l 0,0 + dc.b 'objs/marine',0,0 + even +baldy dc.l 0,0 + dc.b 'objs/baldy',0,0 + even +terra dc.l 0,0 + dc.b 'objs/terra',0,0 + even +ghoul dc.l 0,0 + dc.b 'objs/ghoul',0,0 + even +demon dc.l 0,0 + dc.b 'objs/demon',0,0 + even +phantom dc.l 0,0 + dc.b 'objs/phantom',0,0 + even +lizard dc.l 0,0 + dc.b 'objs/lizard',0,0 + even +deathhead dc.l 0,0 + dc.b 'objs/deathhead',0,0 + even +dragon dc.l 0,0 + dc.b 'objs/dragon',0,0 + even + +objinfo +player1_ dc.l player1 +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l $d0000 +_ob_shape dc.l player +.ob_logic dc.l playerlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l playerhit +.ob_die dc.l playerdie + ; +.ob_eyey dc -pl_eyey ;eye height +.ob_firey dc -pl_firey ;where bullets come from +.ob_gutsy dc -pl_gutsy +.ob_othery dc 0 +.ob_colltype dc 8 +p1_ob_collwith dc 6 ;6=combat, 4=game +p1_ob_cntrl dc 0 ;for player 0,1=joyport, 2=keys +.ob_damage dc 1 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 1 +.ob_range dc 1 +.ob_weapon dc 0 ;weapon type...0...25 +.ob_reload dc.b ireload,0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 ;4! +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +objinfof + +oilen equ objinfof-objinfo + +player2_ dc.l player2 +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l $d0000 +.ob_shape dc.l player +.ob_logic dc.l playerlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l playerhit +.ob_die dc.l playerdie +.ob_eyey dc -pl_eyey ;eye height +.ob_firey dc -pl_firey ;where bullets come from +.ob_gutsy dc -pl_gutsy +.ob_othery dc 0 +.ob_colltype dc 16 +p2_ob_collwith dc 5 ;5=combat, 4=game +p2_ob_cntrl dc 1 ;for player 0,1=joyport, 2=keys, 3=serial +.ob_damage dc 1 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 1 +.ob_range dc 1 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc.b ireload,0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 ;4! +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +health_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l healthgot +.ob_die dc.l healthgot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $30000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +weapon_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon2 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 1 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +thermo_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l thermogot +.ob_die dc.l thermogot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $10000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +infra_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l thermogot +.ob_die dc.l thermogot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $10000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +invisi_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l invisigot +.ob_die dc.l invisigot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $20000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +invinc_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l invincgot +.ob_die dc.l invincgot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $30000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +dragon_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l $c0000 +.ob_shape dc.l dragon +.ob_logic dc.l dragonlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l rts ;hurtngrunt +.ob_die dc.l blowdragon ;object +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 10 +.ob_hitpoints dc 100 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 16 +.ob_range dc 32 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $300 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +bouncy_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l bouncygot +.ob_die dc.l bouncygot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $60000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +marine_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $60000 +.ob_shape dc.l marine +.ob_logic dc.l monsterlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 1 +.ob_hitpoints dc 5 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 16 +.ob_range dc 32 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +baldy_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $40000 +.ob_shape dc.l baldy +.ob_logic dc.l baldylogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 2 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 3 +.ob_punchrate dc 4 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $220 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +terra_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $20000 +.ob_shape dc.l terra +.ob_logic dc.l terralogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtterra ;ngrunt +.ob_die dc.l blowterra +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 1 +.ob_hitpoints dc 35 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 32 +.ob_range dc 48 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_firerate dc 12 ;how often terra fires +.ob_bouncecnt dc 0 ;how many times +.ob_firecnt dc 5 +.ob_scale dc $280 +.ob_apad dc 0 +.ob_blood dc $fff ;color AND for blood +.ob_ypad dc 1 + +ghoul_ dc.l dummy +.ob_rotspeed dc.l $0 +.ob_movspeed dc.l $80000 +.ob_shape dc.l ghoul +.ob_logic dc.l ghoullogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtghoul +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -64 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 5 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l 0 +.ob_base dc 32 +.ob_range dc 48 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_firerate dc 12 ;how often terra fires +.ob_bouncecnt dc 0 ;how many times +.ob_firecnt dc 5 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $80f0 ;color AND for blood +.ob_ypad dc 1 + +phantom_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $a0000 +.ob_shape dc.l phantom +.ob_logic dc.l phantomlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 3 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $a000 +.ob_base dc 8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 7 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $280 +.ob_apad dc 0 +.ob_blood dc $ff0 ;color AND for blood +.ob_ypad dc 1 + +demon_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $70000 +.ob_shape dc.l demon +.ob_logic dc.l demonlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -90 ;where bullets come from +.ob_gutsy dc -72 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 5 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $7000 +.ob_base dc 32 +.ob_range dc 4 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $380 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +weapon1_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon1 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon2_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon2 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 1 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon3_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon3 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 2 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon4_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon4 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 3 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon5_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon5 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 4 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +lizard_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $60000 +.ob_shape dc.l lizard +.ob_logic dc.l lizardlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l lizhurt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 2 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 8 +.ob_range dc 8 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 2 +.ob_punchrate dc 3 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $240 +.ob_apad dc 0 +.ob_blood dc $f0f ;color AND for blood +.ob_ypad dc 1 + +deathhead_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l $c0000 +.ob_shape dc.l deathhead +.ob_logic dc.l deathheadlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtdeath +.ob_die dc.l blowdeath +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -96 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 3 +.ob_hitpoints dc 35 +.ob_think dc 0 +.ob_frame dc.l $8000 +.ob_framespeed dc.l $6000 +.ob_base dc -8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 10 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +abouttext dc.b 14 + dc.b 'GLOOM',0 + dc.b 0 + dc.b 'A BLACK MAGIC GAME',0 + dc.b 0 + dc.b 'PROGRAMMED BY MARK SIBLY',0 + dc.b 'GRAPHICS BY THE BUTLER BROTHERS',0 + dc.b 'MUSIC BY KEV STANNARD',0 + dc.b 'AUDIO BY US',0 + dc.b 'PRODUCED BY US',0 + dc.b 'DESIGNED BY US',0 + dc.b 'GAME CODED IN DEVPAC2',0 + dc.b 'UTILITIES CODED IN BLITZ BASIC 2',0 + dc.b 'RENDERED IN DPAINT3 AND DPAINT4',0 + dc.b 'DECRUNCHING CODE BY THOMAS SCHWARZ',0 + even + +sqrinc incbin sqr.bin + +weapon1 dc.l bullet1,sparks1 +weapon2 dc.l bullet2,sparks2 +weapon3 dc.l bullet3,sparks3 +weapon4 dc.l bullet4,sparks4 +weapon5 dc.l bullet5,sparks5 + +bullet1 incbin bullet1.bin +bullet2 incbin bullet2.bin +bullet3 incbin bullet3.bin +bullet4 incbin bullet4.bin +bullet5 incbin bullet5.bin + +sparks1 incbin sparks1.bin +sparks2 incbin sparks2.bin +sparks3 incbin sparks3.bin +sparks4 incbin sparks4.bin +sparks5 incbin sparks5.bin + +gloombrush incbin gloombrush + +gloom incbin title +gloompal incbin title.pal + +medplayer incbin medplay +decrm incbin decrm + +castrotsinc incbin castrots.bin +camrotsinc incbin camrots.bin ;256 +camrots2inc incbin camrots2.bin ;1024 +chatfont incbin chatfont.bin + +rgbs16 ds.l 16 +map_rgbs_ ds.w 256*16 diff --git a/gloom.s.squash b/gloom.s.squash new file mode 100644 index 0000000..37d3064 --- /dev/null +++ b/gloom.s.squash @@ -0,0 +1,10348 @@ + + ;********* + ;* GLOOM * + ;********* + ; + ;error codes + ; + ;red - allocmem failed + ;yel - freemem failed + ;orange - unknown script command + ;purp - unknown event command + ;cyn - can't open file in loadfile + ;blu - ran out of remap colours! + ; +debugser equ 0 +debugmem equ 0 +onedemo equ 0 +aga equ -1 + ; +maxobjects equ 256 ;max objects in game +maxdoors equ 16 ;max doors opening at once +maxblood equ 128 ;max droplets of bluuurd +maxgore equ 128 ;body parts on ground! +maxrotpolys equ 16 ;max rotating thingys. + ; +focshft equ 6 +grdshft equ 8 +darkshft equ 7 ;smaller=smaller range=faster! +maxz equ 16<>1 + ; +linemod equ 40*7 + + jmp entrypoint + + rsreset + ; + ;rotpoly details... + ; +rp_next rs.l 1 +rp_prev rs.l 1 + ; +rp_speed rs.w 1 +rp_rot rs.w 1 +rp_flags rs.w 1 ;what to do? + ; +rp_cx rs.w 1 ;only for rot +rp_cz rs.w 1 +rp_first rs.l 1 ;pointer to first! +rp_num rs.w 1 + ; +rp_vx rs.w 0 +rp_lx rs.w 1 +rp_vz rs.w 0 +rp_lz rs.w 1 +rp_ox rs.w 0 +rp_na rs.w 1 +rp_oz rs.w 0 +rp_nb rs.w 1 + ; +rp_more rs.b 8*15 ;=16 max verts! + ; +rp_size rs.b 0 + + rsreset + ; + ;sfx channel info + ; +fx_status rs.w 1 +fx_priority rs.w 1 +fx_sfx rs.l 1 +fx_vol rs.w 1 +fx_offset rs.w 1 +fx_dma rs.w 1 +fx_int rs.w 1 + ; +fx_size rs.b 0 + + rsreset + ; + ;blood! + ; +bl_next rs.l 1 +bl_prev rs.l 1 +bl_x rs.l 1 +bl_y rs.l 1 +bl_z rs.l 1 +bl_xvec rs.l 1 +bl_yvec rs.l 1 +bl_zvec rs.l 1 +bl_color rs.l 1 ;colour and! + ; +bl_size rs.b 0 + + rsreset + ; + ;a texture + ; +te_pal rs.l 1 + ; +te_size rs.b 0 + + rsreset + ; + ;an opening/closing door! + ; +do_next rs.l 1 +do_prev rs.l 1 +do_poly rs.l 1 ;door polygon +do_lx rs.w 1 +do_lz rs.w 1 +do_rx rs.w 1 +do_rz rs.w 1 +do_frac rs.w 1 +do_fracadd rs.w 1 + ; +do_size rs.b 0 + + rsreset + ; + ;wall list... + ; +wl_next rs.l 1 +wl_lsx rs.w 1 ;leftmost screen X +wl_rsx rs.w 1 ;rightmost screen X +wl_nz rs.w 1 ;near Z! +wl_fz rs.w 1 ;far Z! +wl_lx rs.w 1 +wl_lz rs.w 1 +wl_rx rs.w 1 +wl_rz rs.w 1 +wl_a rs.w 1 +wl_b rs.w 1 +wl_c rs.l 1 +wl_sc rs.w 1 +wl_open rs.w 1 ;0=door shut, $4000=open! +wl_t rs.b 8 ;textures + ; +wl_size rs.b 0 + + rsreset + ; + ;a zone... + ; +zo_done rs.w 1 +zo_lx rs.w 1 +zo_lz rs.w 1 +zo_rx rs.w 1 +zo_rz rs.w 1 + ; +zo_a rs.w 1 +zo_b rs.w 1 +zo_na rs.w 1 +zo_nb rs.w 1 +zo_ln rs.w 1 + ; +zo_t rs.b 8 ;8 textures + ; +zo_sc rs.w 1 ;scale (how many txts on wall) +zo_open rs.w 0 ;for wall polys... +zo_ev rs.w 1 ;for events... + ; +zo_size rs.b 0 ;32! + + rsreset + ; + ;a shape to draw! + ; +sh_next rs.l 1 +sh_prev rs.l 1 +sh_x rs.w 1 +sh_y rs.w 1 +sh_z rs.w 1 +sh_shape rs.l 1 +sh_scale rs.w 0 +sh_strip rs.l 1 + ; +sh_size rs.b 0 + + rsreset + ; + ;gore...body parts lying around! + ; +go_next rs.l 1 +go_prev rs.l 1 +go_x rs.w 1 +go_z rs.w 1 +go_shape rs.l 1 + ; +go_size rs.b 0 + + rsreset + ; + ;an object in the game (player/alien etc...) + ; +ob_next rs.l 1 +ob_prev rs.l 1 +ob_x rs.l 1 +ob_y rs.l 1 +ob_z rs.l 1 +ob_rot rs.l 1 + ; + ;start of info load by prog. +ob_info rs.b 0 + ; +ob_rotspeed rs.l 1 +ob_movspeed rs.l 1 +ob_shape rs.l 1 +ob_logic rs.l 1 +ob_render rs.l 1 +ob_hit rs.l 1 ;routine to do when damaged +ob_die rs.l 1 ;routine to do when killed +ob_eyey rs.w 1 ;eye height +ob_firey rs.w 1 ;where bullets come from +ob_gutsy rs.w 1 +ob_othery rs.w 1 +ob_colltype rs.w 1 +ob_collwith rs.w 1 +ob_cntrl rs.w 1 +ob_damage rs.w 1 +ob_hitpoints rs.w 1 +ob_think rs.w 1 +ob_frame rs.l 1 ;anim frame +ob_framespeed rs.l 1 ;anim frame +ob_base rs.w 1 +ob_range rs.w 1 +ob_weapon rs.w 1 ;weapon meter... +ob_wlevel rs.w 1 ;weapon type (0...4) +ob_hurtpause rs.w 1 +ob_firerate rs.w 0 +ob_punchrate rs.w 1 +ob_bouncecnt rs.w 1 ;how many times my bullets bounce! +ob_firecnt rs.w 0 +ob_something rs.w 1 +ob_scale rs.w 1 ;scale factor for drawing +ob_lastbut rs.w 1 +ob_blood rs.w 1 ;color AND for blood +ob_ypad rs.w 1 + ; +ob_oldlogic rs.l 1 +ob_oldlogic2 rs.l 1 +ob_oldhit rs.l 1 +ob_olddie rs.l 1 +ob_oldrot rs.w 1 +ob_newrot rs.w 1 +ob_yvec rs.l 1 +ob_xvec rs.l 1 +ob_zvec rs.l 1 +ob_radsq rs.l 1 ;radius squared +ob_rad rs.w 1 +ob_delay rs.w 1 +ob_delay2 rs.w 0 +ob_bounce rs.w 1 +ob_hurtwait rs.w 1 + ; +ob_washit rs.l 1 ;flag for un-hit coll detect! +ob_window rs.l 1 ;pointer back to window! +ob_nxvec rs.w 0 ;normalized X vec +ob_lives rs.w 1 +ob_nzvec rs.w 0 ;nomralized z vec +ob_infra rs.w 1 +ob_thermo rs.w 1 +ob_invisible rs.w 1 +ob_hyper rs.w 1 +ob_update rs.w 1 ;update stats! +ob_mess rs.l 1 ;message +ob_messlen rs.w 1 +ob_messtimer rs.w 1 ;timer for messages +ob_palette rs.l 1 ;palette for window +ob_paltimer rs.w 1 ;timer before back to normal +ob_pixsize rs.w 1 +ob_pixsizeadd rs.w 1 +ob_telex rs.w 1 +ob_telez rs.w 1 +ob_telerot rs.w 1 +ob_chunks rs.l 1 + ; +ob_size rs.b 0 + + rsreset + ; + ;solid wall draw data + ; +vd_z rs.w 1 ;current Z +vd_pal rs.w 1 ;palette# (0...15) +vd_y rs.w 1 +vd_h rs.w 1 +vd_data rs.l 1 +vd_ystep rs.l 1 + ; +vd_size rs.b 0 + + rsreset + ; + ;palette file... + ; +pa_numcols rs.w 1 ;how many colours +pa_cols rs.w 256 ;the colours! + + rsreset + ; + ;anim file... + ; +an_rotshft rs.w 1 +an_frames rs.w 1 +an_maxw rs.w 1 +an_maxh rs.w 1 +an_pal rs.l 1 + ; +an_size rs.b 0 + + rsreset + ; + ;window + ; +wi_slice rs.l 1 ;slice window appears in! +wi_nslice rs.l 1 ;next slice to disp. +wi_x rs 1 +wi_y rs 1 +wi_w rs 1 ;how many chixels across +wi_h rs 1 ;how many down +wi_pw rs 1 ;width of 1 chixel +wi_ph rs 1 ;hite of 1 chixel + ; +wi_bw rs 1 ;bitmap width +wi_bh rs 1 ;bitmap height + ; +wi_bmapmem rs.l 1 +wi_copmem rs.l 1 +wi_bmap rs.l 1 +wi_cop rs.l 1 +wi_cop1 rs.l 1 +wi_cop2 rs.l 1 +wi_copmod rs.w 1 + ; +wi_strip rs.l 1 +wi_iff rs.l 1 ;show iff instead! +wi_pal rs.l 1 ;palette for IFF! + ; +wi_size rs.b 0 + +key macro + btst #\1&7,\1>>3(a0) + endm + +qkey macro + move.l rawtable(pc),a0 + key \1 + endm + +freemem macro + ; + ifne debugmem + lea .fmem\@,a0 + jsr freemem_ + bra .fmemskip\@ +.fmem\@ dc.b '\1',0 + even +.fmemskip\@ ; + elseif + jsr freemem_ + endc + ; + endm + +allocmem macro + ; + ifne debugmem + ; + lea .amem\@,a0 + jsr allocmem_ + bra .amemskip\@ +.amem\@ dc.b '\1',10,0 + even +.amemskip\@ ; + elseif + ; + jsr allocmem_ + ; + endc + ; + endm + +allocmem2 macro + ; + ifne debugmem + ; + lea .amem\@,a0 + jsr allocmem2_ + bra .amemskip\@ +.amem\@ dc.b '\1',10,0 + even +.amemskip\@ ; + elseif + ; + jsr allocmem2_ + ; + endc + ; + endm + +alloclist macro ;alloclist listname,maxitems,itemsize + ; + move.l \2,d0 + move.l \3,d1 + lea \1(pc),a2 + jsr k_alloclist + bra.s alskip\@ + ; +\1 dc.l 0 ;0 +\1_last dc.l 0 ;4 + dc.l 0 ;8 +\1_free dc.l 0 ;12 +alskip\@ ; + endm + +k_alloclist ;a2=address of 'first' pointer + ;d0=max items, d1=item size + ; + move.l a2,8(a2) ;clear out used list + lea 4(a2),a0 + clr.l (a0) + move.l a0,(a2) + movem.l d0-d1,-(a7) + mulu d1,d0 + move.l #$10001,d1 + allocmem alloclist + move.l d0,a0 + lea 12(a2),a2 + movem.l (a7)+,d0-d1 + subq #1,d0 +.loop move.l a0,(a2) + move.l a0,a2 + add d1,a0 + dbf d0,.loop + rts + +addnext macro + ; + ;addnext 'listname' + ;add after a5 + ;return eq if none available else a0 + ; + move.l \1_free,d0 + beq.s .anskip\@ + move.l d0,a0 + move.l (a0),\1_free + move.l (a5),a1 + move.l a1,(a0) + move.l a0,4(a1) + move.l a0,(a5) + move.l a5,4(a0) +.anskip\@ ; + endm + +addfirst macro + ; + ;addfirst 'listname' + ;return eq if none available else a0 + ; + move.l \1_free,d0 + beq.s .afskip\@ + move.l d0,a0 + move.l (a0),\1_free + move.l \1,a1 ;current first + move.l a1,(a0) + move.l a0,4(a1) + move.l a0,\1 + move.l #\1,4(a0) +.afskip\@ ; + endm + +addlast macro + ; + ;addlast 'listname' + ;return eq in none available else a0 + ; + move.l \1_free,d0 + beq.s .alskip\@ + move.l d0,a0 + move.l (a0),\1_free + ; + move.l \1_last+4,a1 ;current last + move.l a0,(a1) + move.l a1,4(a0) + move.l a0,\1_last+4 + move.l #\1_last,(a0) +.alskip\@ ; + endm + +killitem macro + ; + ;killitem listname + ;a0=item to kill, return a0=previous item. + ; + move.l (a0),a1 ;next of me! + move.l 4(a0),4(a1) + move.l 4(a0),a1 ;prev of me + move.l (a0),(a1) + move.l \1_free,(a0) + move.l a0,\1_free + move.l a1,a0 + endm + +clearlist macro + ; + ;clearlist listname + ; +.clloop\@ move.l \1,a0 + tst.l (a0) + beq .cldone\@ + killitem \1 + bra .clloop\@ +.cldone\@ ; + endm + +zerolist macro listname,size of item + ; + ;fill all list items with 0! + ; + clearlist \1 +.zlloop\@ addlast \1 + beq .zlskip\@ + lea 8(a0),a1 + moveq #0,d0 + move #(\2-8)/2-1,d1 +.zlloop2\@ move d0,(a1)+ + dbf d1,.zlloop2\@ + bra .zlloop\@ +.zlskip\@ clearlist \1 + ; + endm + +bwait macro + ; +.bwait\@ btst #6,$dff002 + beq.s .bwait2\@ + bra.s .bwait\@ +.bwait2\@ ; + endm + +printlong macro + move.l \1,-(a7) + jsr printlong_ + endm + +check macro + list +check set *-\1 + nolist + endm + +push macro + movem.l d2-d7/a2-a6,-(a7) + endm + +pull macro + movem.l (a7)+,d2-d7/a2-a6 + endm + +col macro + move #0,$dff106 + move \1,$dff180 + endm + +warn macro + move d0,-(a7) + move #-1,d0 +.wloop\@ col \1 + dbf d0,.wloop\@ + move (a7)+,d0 + endm + +tempfile ds.b 64 + +entrypoint +cli ; + move.l a0,a2 + ; + lea dosname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,dosbase + ; + move.l d0,a6 + jsr -60(a6) + move.l d0,outhand + ; + clr.l map_test + cmp.b #'@',(a2)+ + bne.s main + lea tempfile,a0 + move.l a0,map_test +.loop move.b (a2)+,(a0) + beq.s main + cmp.b #10,(a0)+ + bne.s .loop + clr.b -(a0) +main ; + bsr bigfont + jsr initmain + ; +.intro move.l medat(pc),a1 + move.l titlemed(pc),a0 + jsr 8(a1) ;start title music! + ; +.intro2 jsr dointro ;returns gametype + cmp #3,gametype + bcs.s .play + move.l medat(pc),a1 + jsr 12(a1) + bra.s exittoos +.play ; + bsr initnewgame + tst gametype + bmi .intro2 + ; + bsr smallfont + bsr execscript_med + bsr bigfont + ; + bra .intro + ; +exittoos bsr freeobjlist2 + bsr permit + move.l rawstuff,a0 + bclr #0,$3d(a0) + bsr finitser + bsr finitsfx + bsr finitvbint + bsr finitdisplay + bsr freememlist + bsr undir + rts + +; ************* FAST SUBS ******************** + +fastsubs + +smallfont move #6,fontw + move #8,fonth + clr fontoff + rts + +bigfont move #8,fontw + move #10,fonth + move #51,fontoff + rts + +encodejoy ;a0=cntrl block to encode... + ;return d0 encoded + ; + ;bit: + ;0 = joyx -1 + ;1 = joyx 1 + ;2 = joyy -1 + ;3 = joyy 1 + ;4 = joyb true + ;5 = joyf true + ; + moveq #0,d0 + ; + tst (a0) + beq.s .skipx + bpl.s .x1 + bset #0,d0 + bra.s .skipx +.x1 bset #1,d0 +.skipx tst 2(a0) + beq.s .skipy + bpl.s .y1 + bset #2,d0 + bra.s .skipy +.y1 bset #3,d0 +.skipy tst 4(a0) + beq.s .skipb + bset #4,d0 +.skipb tst 6(a0) + beq.s .skipf + bset #5,d0 +.skipf ; + rts + +decodejoy ; + ;d0.b = encoded byte... + ;a0 = block to fill + ; + ;0 = joyx -1 + ;1 = joyx 1 + ;2 = joyy -1 + ;3 = joyy 1 + ;4 = joyb true + ;5 = joyf true + ; + clr (a0) + move d0,d1 + and #3,d1 + beq.s .skipx + cmp #1,d1 + bne.s .x1 + move #-1,(a0) + bra.s .skipx +.x1 move #1,(a0) +.skipx clr 2(a0) + move d0,d1 + and #12,d1 + beq.s .skipy + cmp #4,d1 + bne.s .y1 + move #-1,2(a0) + bra.s .skipy +.y1 move #1,2(a0) +.skipy btst #4,d0 + sne d1 + ext d1 + move d1,4(a0) + btst #5,d0 + sne d1 + ext d1 + move d1,6(a0) + ; + rts + +sfxs ; +sfx0 ds.b fx_size +sfx1 ds.b fx_size +sfx2 ds.b fx_size +sfx3 ds.b fx_size + +sfxintserver0 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx0 + dc.l sfxint + +sfxintserver1 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx1 + dc.l sfxint + +sfxintserver2 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx2 + dc.l sfxint + +sfxintserver3 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx3 + dc.l sfxint + +initsfx push + move.l 4.w,a6 + ; + moveq #7,d0 + lea sfxintserver0,a1 + jsr -162(a6) ;setintvector + ; + moveq #8,d0 + lea sfxintserver1,a1 + jsr -162(a6) + ; + moveq #9,d0 + lea sfxintserver2,a1 + jsr -162(a6) + ; + moveq #10,d0 + lea sfxintserver3,a1 + jsr -162(a6) + ; + lea sfxs(pc),a1 + move #$80,d0 + moveq #1,d1 + moveq #0,d2 + moveq #3,d3 +.loop bsr .init + lea fx_size(a1),a1 + dbf d3,.loop + ; + pull + rts + ; +.init clr fx_status(a1) + move d0,fx_int(a1) + move d1,fx_dma(a1) + move d2,fx_offset(a1) + add d0,d0 + add d1,d1 + add #16,d2 + rts + +finitsfx push + move.l 4.w,a6 + ; + moveq #7,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #8,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #9,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #10,d0 + sub.l a1,a1 + jsr -162(a6) + ; + pull + rts + +playsfx ;sfx file in a0, vol in d0, priority in d1 + ; + move #$4000,$dff09a + lea sfxs(pc),a1 + moveq #3,d2 +.loop tst fx_status(a1) + beq.s makesfx + lea fx_size(a1),a1 + dbf d2,.loop + ; + ;OK, none free...check priorities + ; + lea sfxs(pc),a1 + moveq #3,d2 +.loop2 cmp fx_priority(a1),d1 + bgt.s queuesfx + lea fx_size(a1),a1 + dbf d2,.loop2 + ; + ;no-can-do! + ; + move #$c000,$dff09a + rts + ; +queuesfx ;OK, turn off other and play US! + ; + move #1,fx_status(a1) + move d0,fx_vol(a1) + move d1,fx_priority(a1) + move.l a0,fx_sfx(a1) ;play me next! + ; + bsr sfxoff + ; + move #$c000,$dff09a + rts + +sfxoff lea $dff0a0,a2 + add fx_offset(a1),a2 + move.l chipzero(pc),(a2) + move #1,4(a2) ;len + move #0,8(a2) ;vol + move fx_int(a1),$dff09a + move fx_dma(a1),$dff096 + rts + +makesfx ;OK, play this SFX NOW! + ; + move d1,fx_priority(a1) + move d0,fx_vol(a1) + bsr playsfxnow + move #$c000,$dff09a + rts + +playsfxnow move #-2,fx_status(a1) + ; + lea $dff0a0,a2 + add fx_offset(a1),a2 + move (a0)+,6(a2) ;period + move (a0)+,4(a2) ;len + move fx_vol(a1),8(a2) ;vol + move.l a0,(a2) ;data + ; + move fx_dma(a1),d0 ;dma bits + or #$8000,d0 + move fx_int(a1),d1 ;int bits + move d1,d2 + or #$8000,d1 + ; + move d0,$dff096 ;dma on! + move d1,$dff09a ;int en + move d2,$dff09c ;intreq clr + ; + rts + +sfxint ;interupt for sfx! + ; + tst fx_status(a1) + bge.s .skip + addq #1,fx_status(a1) + blt.s .skip + ; + move.l a2,-(a7) + bsr sfxoff + move.l (a7)+,a2 + ; +.skip move fx_int(a1),$dff09c + moveq #0,d0 + rts + +sfxvbint movem.l d2-d3/a1-a2,-(a7) + lea sfxs(pc),a1 + moveq #3,d3 +.loop tst fx_status(a1) + ble.s .skip + ; + ;this one queued! gotta play it... + ; + subq #1,fx_status(a1) + bgt.s .skip + move.l fx_sfx(a1),a0 + bsr playsfxnow + ; +.skip lea fx_size(a1),a1 + dbf d3,.loop + ; + movem.l (a7)+,d2-d3/a1-a2 + rts + +dogamemenu ; + move #$0020,$dff09a + st paused + move framecnt(pc),-(a7) + move #$8020,$dff09a + ; + move.l player1,a5 + move.l ob_palette(a5),-(a7) + move.l #palettesw,ob_palette(a5) + move.l ob_window(a5),a2 + bsr plotwbmap + ; + tst twowins + beq .p1 + ; + move.l player2,a5 + move.l ob_palette(a5),-(a7) + move.l #palettesw,ob_palette(a5) + move.l ob_window(a5),a2 + bsr plotwbmap +.p1 ; + bsr drawall2 + ; + move.l player1,a5 + lea gamemenu,a4 + move.l ob_window(a5),a6 + jsr initmenu + ; +.loop bsr selmenu + beq .done + ; + subq #1,d0 + bne .notpsize + bsr newpsize + bra .loop + ; +.notpsize subq #1,d0 + bne .notwsize + bsr newwsize + bra .loop + ; +.notwsize subq #1,d0 + bne .notlwin + bsr largewin + bra .loop + ; +.notlwin subq #1,d0 + bne .notfloor + ; + addq #1,floorflag + cmp #2,floorflag + bne.s .fskip + move #-1,floorflag +.fskip bsr refresh + bra .loop + ; +.notfloor subq #1,d0 + bne .notroof + ; + addq #1,roofflag + cmp #2,roofflag + bne.s .rskip + move #-1,roofflag +.rskip bsr refresh + bra .loop +.notroof ; + ;MUST BE QUIT GAME! + ; + ;tst linked + ;beq.s .unlk + ;move.b #$80,d0 + ;bsr serput + ; +.unlk move #1,finished + ; +.done bsr finitmenu + ; + tst twowins + beq.s .p12 + ; + move.l player2,a5 + move.l (a7)+,ob_palette(a5) + move.l ob_window(a5),a2 + bsr plotwbmap + bsr initstats + bsr showstats +.p12 ; + move.l player1,a5 + move.l (a7)+,ob_palette(a5) + move.l ob_window(a5),a2 + bsr plotwbmap + bsr initstats + bsr showstats + ; + move #$0020,$dff09a + move (a7)+,framecnt + clr paused + move #$8020,$dff09a + ; + rts + +freewindows lea window1,a0 + bsr freewindow + tst twowins + beq.s .p1 + lea window2,a0 + bsr freewindow +.p1 rts + +largewin move.l player1,a5 + bsr large + tst twowins + beq refresh + move.l player2,a5 + bsr large + bra refresh + +large move.l ob_window(a5),a6 + move wi_pw(a6),d2 + ; + cmp #2,d2 + beq .lhr + ; + ;large lo-res window! + ; + move #324,d0 + move #240,d1 + bra thinkwin + ; +.lhr move #180,d0 + move #240,d1 + bra thinkwin + +newwsize ;window size stuff! + ; + move.l player1,a5 + bsr swapwsize + tst twowins + beq refresh + move.l player2,a5 + bsr swapwsize + bra refresh + +swapwsize ;increment window size! + ; + move.l ob_window(a5),a6 + movem wi_w(a6),d0-d1 ;w,h + move wi_pw(a6),d2 + mulu d2,d0 + mulu d2,d1 + cmp #2,d2 + beq .hr + ; + ;lo-res! + ; + cmp #318,d0 + bcs.s .inc + move #132,d0 + move d0,d1 + bra thinkwin +.inc add #24,d0 + move d0,d1 + cmp #240,d1 + bls thinkwin + move #240,d1 + bra thinkwin + ; +.hr cmp #180,d0 + bcs.s .inc2 + tst twowins + bne .min + add #18,d1 + cmp #240,d1 + bls thinkwin +.min move #132,d0 + move d0,d1 + bra thinkwin +.inc2 add #24,d0 + move d0,d1 + ; +thinkwin move #180,d3 ;max width! + cmp #2,d2 + beq .gmax + move #318,d3 +.gmax cmp d3,d0 + bls .nm + move d3,d0 +.nm ; + cmp #240,d1 + bls .n240 + move #240,d1 +.n240 tst twowins + beq.s .ggt + move #120,d1 +.ggt ; + move #160,d3 + move d0,d4 + lsr #1,d4 + sub d4,d3 ;wi_x + move d3,wi_x(a6) + ; + ext.l d0 + divu d2,d0 + move d0,wi_w(a6) + ; + tst twowins + bne.s .skip3 + ; + move #166,d3 + move d1,d4 + lsr #1,d4 + sub d4,d3 + move d3,wi_y(a6) + ; +.skip3 ext.l d1 + divu d2,d1 + move d1,wi_h(a6) + ; + rts + +newpsize ;toggle pixel size between 2 and 3 + ; + ;copy windows to temp so we can free 'em up later + ; + move.l player1,a5 + bsr swappsize + tst twowins + beq refresh + move.l player2,a5 + bsr swappsize + ; +refresh bsr dispoff + bsr finitmenu + ; + bsr freewindows + bsr putwindow + bsr calcbpos + ; + lea window1,a0 + bsr makewindow + lea window1,a0 + bsr showwindow + ; + tst twowins + beq.s .p1 + ; + lea window2,a0 + bsr makewindow + lea window2,a0 + bsr showwindow + ; +.p1 lea gamemenu,a4 + lea window1,a6 + jsr initmenu2 + ; + bsr drawall2 + bsr dispon + rts + +swappsize move.l ob_window(a5),a6 + movem wi_w(a6),d0-d1 ;w,h + move wi_pw(a6),d2 + mulu d2,d0 + mulu d2,d1 + eor #1,d2 ;2,3... + move d2,wi_pw(a6) + move d2,wi_ph(a6) + ; + bra thinkwin + +drawall2 bsr drawall + bsr drawall +.wait tst showflag + bne.s .wait + rts + +drawall tst doneflag + beq.s drawall ;wait for updated! + clr doneflag + ; + move.l memory(pc),memat + move.l player1(pc),a5 + bsr calcscene + move.l player1(pc),a5 + bsr blitscene + move.l player1(pc),a5 + bsr drawscene + ; + move twowins(pc),d0 + beq.s .p1 + ; + move.l memory(pc),memat + move.l player2(pc),a5 + bsr calcscene + move.l player2(pc),a5 + bsr blitscene + move.l player2(pc),a5 + bsr drawscene + ; +.p1 st showflag + ; + rts + +resetplayer st ob_update(a5) + clr ob_thermo(a5) + clr ob_infra(a5) + clr ob_invisible(a5) + clr ob_messtimer(a5) + clr ob_pixsize(a5) + clr ob_pixsizeadd(a5) + move.l #palettes,ob_palette(a5) + rts + +calcwlevel moveq #0,d0 + move.b ob_weapon(a5),d0 + beq.s .wlg + subq #1,d0 + divu #5,d0 + mulu #20,d0 + ;lsl #4,d0 +.wlg move d0,ob_wlevel(a5) + rts + +message ;print up a message...player in a5 + ; + move.l (a7),a0 ;return address=message! + move.l a0,ob_mess(a5) + ; + moveq #-1,d0 +.loop addq #1,d0 + tst.b (a0)+ + bne.s .loop + ; + move d0,ob_messlen(a5) + move #-127,ob_messtimer(a5) + ; + move.l a0,d0 + addq.l #1,d0 + and #$fffe,d0 + move.l d0,(a7) + rts + +pdelay dc 0 ;non zero=wait between prints + +printmess ;a5=object + ; + move.l ob_window(a5),a6 + move.l ob_mess(a5),a4 + move ob_messlen(a5),d0 + move wi_bh(a6),d6 + lsr #2,d6 ;Y + ; +printmess2 ;a6=window, a4=message, d0=length of message, d6=Y + ; + move fontw(pc),d2 + lsr #1,d2 + mulu d2,d0 + move #160,d7 + sub d0,d7 ;X + ; +.loop2 move.b (a4)+,d2 + beq.s .done + cmp.b #' ',d2 + beq.s .spc + cmp.b #'0',d2 + bcs.s .nnum + cmp.b #'9',d2 + bhi.s .nnum + sub.b #'0',d2 + ext d2 + bra.s .here +.nnum cmp.b #'!',d2 + bne.s .notex + moveq #65+26,d2 + bra.s .notfs +.notex cmp.b #'.',d2 + bne.s .notfs + moveq #65+27,d2 +.notfs and #31,d2 + add #17,d2 +.here add fontoff(pc),d2 + move.l font(pc),a0 + move.l wi_bmap(a6),a1 + move d7,d0 + move d6,d1 + bsr blit + ; + move pdelay(pc),d2 + subq #1,d2 + bmi.s .spc + ; +.pdloop bsr vwait + bsr checkany + beq.s .none + move #-1,pdelay + moveq #0,d2 +.none dbf d2,.pdloop + ; +.spc add fontw(pc),d7 + bra.s .loop2 +.done ; + rts + +initstats ; + ;health... + move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #2,d1 + moveq #10,d2 + bsr blit + ; + ;weapon... + move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #10,d1 + moveq #11,d2 + bsr blit + ; + rts + +putstrip ;a0=window + ; + move.l wi_bmap(a0),a1 + move wi_bh(a0),d0 + lsr #2,d0 + mulu #7*40,d0 + add.l d0,a1 ;dest + move.l wi_strip(a0),a0 ;src + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l #$9f00000,$dff040 + move.l #-1,$dff044 + move #0,$dff064 + move #0,$dff066 + move.l a0,$dff050 + move.l a1,$dff054 + move #(7*7)<<6+20,$dff058 + rts + +loff dc 0 + +showstats ;a5=player + ; + moveq #2,d5 + move ob_hitpoints(a5),d6 + clr loff + bsr showlevel + ; + moveq #10,d5 + move ob_weapon(a5),d6 + lsr #8,d6 + move #51,loff + bsr showlevel + ; + cmp #2,gametype + bne.s .lives + ; + movem wins1(pc),d6-d7 + cmp.l player1,a5 + beq.s .skip + exg d6,d7 +.skip sub d7,d6 + ble.s .rts + ; + subq #1,d6 + move.l ob_window(a5),a0 + move wi_bw(a0),d7 + subq #2,d7 + ; +.loop subq #6,d7 + move d7,d0 + move.l ob_window(a5),a0 + add wi_x(a0),d0 + moveq #2,d1 + moveq #50,d2 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + bsr blit + dbf d6,.loop + ; +.rts rts + ; +.lives ;show how many lives + move ob_lives(a5),d6 ;how many lives! + beq.s .nolives + ; + move.l ob_window(a5),a0 + move wi_bw(a0),d7 + subq #2,d7 + subq #1,d6 + ; +.lloop subq #6,d7 + move d7,d0 + move.l ob_window(a5),a0 + add wi_x(a0),d0 + moveq #2,d1 + moveq #50,d2 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + bsr blit + dbf d6,.lloop + ; +.nolives rts + +showlevel moveq #47,d7 + ext.l d6 + divu #5,d6 + subq #1,d6 + bmi.s .skip + ; +.loop moveq #12,d2 + bsr drawh2 + dbf d6,.loop +.skip ; + swap d6 + tst d6 + beq.s .rest + moveq #17,d2 + sub d6,d2 + bsr drawh2 + ; +.rest cmp #47+6*5,d7 + bcc.s .hdone + moveq #17,d2 + bsr drawh2 + bra.s .rest +.hdone ; + rts + +drawh2 add loff(pc),d2 + ; +drawh move.l ob_window(a5),a0 + move d7,d0 + move d5,d1 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + addq #6,d7 + ; +blit ;a0=shapetable to blit, a1=bitmap, d0=X, d1=Y, d2=char + ; + add.l 4(a0,d2*4),a0 + ; + mulu #280,d1 + add.l d1,a1 + move d0,d2 + asr #3,d2 + add d2,a1 ;dest! + move.l a0,a2 + add.l (a0),a2 + lea 8(a0),a3 + addq #4,a0 + and #15,d0 + ror #4,d0 + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l a2,$dff050 + move.l a3,$dff04c + move.l a1,$dff048 + move.l a1,$dff054 + ; + move d0,$dff042 + or #$fca,d0 + move d0,$dff040 + move.l #$ffff0000,$dff044 + moveq #-2,d0 + move d0,$dff064 + move d0,$dff062 + moveq #38,d0 + sub (a0)+,d0 + move d0,$dff060 + move d0,$dff066 + move (a0)+,$dff058 + ; + rts + +pixsize dc 0 ;pixel size...at least 2! + +pixelate ;pixel out the coplist! + ; + move pixsize(pc),d1 ;x/y add + ; + ;pixel out vertically, then horizontally + ; + move.l cop(pc),a0 + lea coloffs(pc),a1 + moveq #0,d2 ;x + move d1,d6 + lsr #1,d6 +.forx ; + move.l a0,a3 + lea 0(a1,d2*4),a2 + add.l (a2),a3 + ; + move d2,d5 + add d6,d5 + cmp width(pc),d5 + ble.s .xok + move width(pc),d5 +.xok sub d2,d5 + ble .done + subq #1,d5 + ; +.loop2 moveq #0,d3 + move.l a3,a4 + move.l a0,a5 + add.l (a2)+,a5 + move d1,d7 + lsr #1,d7 ;first Y add +.fory ; + move (a4),d0 ;start column! + move d3,d4 + add d7,d4 + cmp hite(pc),d4 + ble.s .yok + move hite(pc),d4 +.yok sub d3,d4 + ble .nextx + subq #1,d4 + ; +.loop move d0,(a5) + add copmod(pc),a4 + add copmod(pc),a5 + ; + dbf d4,.loop + ; +.nexty add d7,d3 + move d1,d7 + bra.s .fory + ; +.nextx dbf d5,.loop2 + ; + add d6,d2 + move d1,d6 + bra.s .forx + ; +.done rts + +makeqstrip ; + ;do a simple roof/floor strip for blitter to wack in... + ; + cmp #$100,con0poke + bne.s .doit + rts + ; +.doit move.l qstrip(pc),a0 + move.l darktable(pc),a1 + move.l palette(pc),a2 + move.l qstripbot(pc),a4 + moveq #0,d2 + ; + move floorflag(pc),d0 + bne.s .fdone + ; + move camy(pc),d0 + neg d0 + ext.l d0 + lsl.l #focshft,d0 + ; + move.b qcols+1(pc),d2 + move.l qstripbot(pc),a4 + move maxy(pc),d1 + ; +.floop subq #1,d1 + beq.s .fdone + ; + move.l d0,d3 + divs d1,d3 + cmp #maxz,d3 + bcc .fdone + ; + move 0(a1,d3*2),d3 ;darkness (0...15) + move.l 0(a2,d3*4),a3 ;pal to use + move 0(a3,d2*2),-(a4) ;colour! + ; + bra.s .floop + ; +.fdone move roofflag(pc),d0 + bne.s .rdone + ; + move #-256,d0 + sub camy(pc),d0 + ext.l d0 + lsl.l #focshft,d0 ;cam Y + ; + move.b qcols(pc),d2 + ; + move miny(pc),d1 ;SY + ; +.rloop beq.s .rdone + ; + move.l d0,d3 + divs d1,d3 + cmp #maxz,d3 + bcc .rdone + ; + move 0(a1,d3*2),d3 ;darkness (0...15) + move.l 0(a2,d3*4),a3 ;pal to use + move 0(a3,d2*2),(a0)+ ;colour! + ; + addq #1,d1 + bra.s .rloop +.rdone ; + moveq #0,d0 +.loop cmp.l a4,a0 + bcc.s .done + move.l d0,(a0)+ + bra.s .loop + ; +.done rts + +flatcam dc.l 0 +flatyadd dc 0 +flatyadd2 dc 0 + +flat ; + ;do flat above/below panel! + ; + ;d0=Y pos of flat + ;d1=Screen Y add + ;d7=first screen Y (miny or maxy-1) + ; + ;a0=panel to draw on! + ; + ext.l d0 + lsl.l #focshft,d0 + move.l d0,flatcam + ; + move d1,flatyadd + muls copmod(pc),d1 + move d1,flatyadd2 + ; + move d7,d0 + add midy(pc),d0 + mulu copmod(pc),d0 + add.l cop(pc),d0 + add.l coloffs(pc),d0 + move.l d0,a2 +.vloop ; + ;find Z on this scanline... + ; + tst d7 + beq .rts + move.l flatcam(pc),d6 + divs d7,d6 ;d6.w = Z + cmp #maxz,d6 + bcc .rts + ; + move.l darktable(pc),a5 + move 0(a5,d6*2),d5 + move.l palette(pc),a5 + move.l 0(a5,d5*4),a5 + ; + ;Find leftmost X... + ; + move minx(pc),d5 + muls d6,d5 + asr.l #focshft,d5 + ; + move maxx(pc),d4 + muls d6,d4 + asr.l #focshft,d4 + ; + ;rotate X1,Z around camera... + ; + move d5,d0 + move d6,d1 + ; + move d0,d2 + move d1,d3 + ; + muls icm1(pc),d0 + add.l d0,d0 + muls icm2(pc),d3 + add.l d3,d3 + add.l d3,d0 + ; + muls icm3(pc),d2 + add.l d2,d2 + muls icm4(pc),d1 + add.l d1,d1 + add.l d2,d1 + ; + ;d0,d1.q = rotated x1,z + ; + ;rotate X2,Z around camera... + ; + move d4,d2 + move d6,d3 + ; + muls icm1(pc),d4 + add.l d4,d4 + muls icm2(pc),d3 + add.l d3,d3 + add.l d3,d4 + ; + muls icm3(pc),d2 + add.l d2,d2 + muls icm4(pc),d6 + add.l d6,d6 + add.l d2,d6 + ; + ;d4,d6.q = rotated x2,z + ; + move width(pc),d5 + ext.l d5 + sub.l d0,d4 ;Xadd + divs.l d5,d4 + sub.l d1,d6 ;Zadd + divs.l d5,d6 + ; + ;d0,d1.q=x,z + ;d4,d6.q=xadd,zadd + ; + swap d0 + add camx(pc),d0 + swap d1 + add camz(pc),d1 + swap d4 + swap d6 + ; + move d7,-(a7) + moveq #127,d7 + moveq #0,d2 + moveq #0,d3 + ; + move.l a2,a3 + ; + move wdiv32(pc),-(a7) + ; +.hloop2 moveq #31,d5 + ; +.hloop tst (a3) ;check destination! + bne.s .skip + ; + and d7,d0 + and d7,d1 ;X/Z for fetch! + move d0,d2 + lsl #7,d2 + lea 0(a0,d2),a6 + move.b 0(a6,d1),d3 + move 0(a5,d3*2),(a3) + ; +.skip add.l d4,d0 + addx d2,d0 + add.l d6,d1 + addx d2,d1 + addq #4,a3 + dbf d5,.hloop + ; + addq #4,a3 + subq #1,(a7) + bgt.s .hloop2 + bne.s .kl + ; + move wrem32(pc),d5 + bpl.s .hloop + ; +.kl move.l (a7)+,d7 + add flatyadd(pc),d7 + add flatyadd2(pc),a2 + bra .vloop + ; +.rts rts + +doanims move.l map_anim(pc),a0 + lea textures,a1 + ; +.loop move (a0)+,d0 ;how many frames + beq.s .done + movem (a0)+,d1-d2 ;first, delay + subq #1,(a0)+ + bgt.s .loop + move d2,-2(a0) + lea 0(a1,d1*4),a2 + ; + ;do the anim! + ; + subq #2,d0 + move.l (a2),d2 +.loop2 move.l 4(a2),(a2)+ + dbf d0,.loop2 + move.l d2,(a2) + bra.s .loop + ; +.done rts + +dorots ; + move.l camrots2(pc),a6 + lea rotpolys(pc),a5 ;header! + ; +rotloop move.l (a5),a5 + tst.l (a5) + beq .done + move rp_speed(a5),d0 + beq.s rotloop + add d0,rp_rot(a5) + move rp_rot(a5),d0 + ; + move.l rp_first(a5),a2 ;first + move rp_num(a5),d5 + subq #1,d5 + move d5,d4 + lsl #5,d4 + lea 0(a2,d4),a1 ;previous + lea rp_lx(a5),a3 + ; + btst #0,rp_flags+1(a5) + bne.s morph + ; +.rot movem rp_cx(a5),d6-d7 ;centre x,z + and #1023,d0 + lea 0(a6,d0*8),a4 ;rotation matrix. + ; +.loop bsr rotter + add d6,d0 + add d7,d1 + movem d0-d1,zo_lx(a2) + movem d0-d1,zo_rx(a1) + bsr rotter + movem d0-d1,zo_na(a2) + exg d0,d1 + neg d0 + movem d0-d1,zo_a(a2) + move.l a2,a1 + lea 32(a2),a2 + dbf d5,.loop + ; + bra rotloop + ; +.done rts + ; +morph tst d0 + bgt.s .dp + moveq #0,d0 +.neg neg rp_speed(a5) + bra.s .skip2 +.dp cmp #$4000,d0 + blt.s .skip + move #$4000,d0 + btst #1,rp_flags+1(a5) + bne.s .neg + clr rp_speed(a5) +.skip2 move d0,rp_rot(a5) +.skip ; + move d0,d4 + movem.l a2/d5,-(a7) ;for calculating norms! + ; +.loop movem (a3)+,d0-d3 + muls d4,d0 + lsl.l #2,d0 + swap d0 + add d2,d0 + muls d4,d1 + lsl.l #2,d1 + swap d1 + add d3,d1 + movem d0-d1,zo_lx(a2) + movem d0-d1,zo_rx(a1) + move.l a2,a1 + lea 32(a2),a2 + dbf d5,.loop + ; + movem.l (a7)+,a2/d5 + ; +.loop2 move zo_rx(a2),d0 + sub zo_lx(a2),d0 + move zo_rz(a2),d1 + sub zo_lz(a2),d1 + bsr calcnormvec + movem d0-d1,zo_na(a2) + exg d0,d1 + neg d0 + movem d0-d1,zo_a(a2) + lea 32(a2),a2 + dbf d5,.loop2 + ; + bra rotloop + +calcnormvec ;d0,d1 = vector...normalize! + ; + ;OK, find vector length! + ; + move d0,d2 + muls d2,d2 + move d1,d3 + muls d3,d3 + add.l d3,d2 + ; + ;OK, sqr of d2.l! + ; + move.l #$10000,d3 + ; +.fitit cmp.l #16384,d2 ;fits? + bcs.s .ok + asr.l #1,d2 + mulu.l #92681,d4:d3 ;mult by sqr(2) + move d4,d3 + swap d3 + bra.s .fitit + ; +.ok ;OK to look up, but multiply the result.w by d3.q + ; + move.l sqr(pc),a0 + and #$fffe,d2 + movem 0(a0,d2),d2 ;sqr.l! + mulu.l d3,d2 + swap d2 ;length.w + ; + ;length should be >= both abs(xvec) AND abs(zvec) + ; + move d0,d3 + bpl.s .xp + neg d3 +.xp move d1,d4 + bpl.s .zp + neg d4 +.zp ; + cmp d4,d3 + bcc.s .bg + exg d3,d4 +.bg ; + cmp d3,d2 + bcc.s .lo + move d3,d2 +.lo ; + ext.l d2 + ; + swap d0 + clr d0 + divs.l d2,d0 + muls.l #32766,d0 + swap d0 + ; + swap d1 + clr d1 + divs.l d2,d1 + muls.l #32766,d1 + swap d1 + rts + +rotter movem (a3)+,d0-d1 ;this x,z + move d0,d2 + move d1,d3 + ; + muls (a4),d0 + muls 2(a4),d3 + add.l d3,d0 + add.l d0,d0 + swap d0 ;new x! + ; + muls 4(a4),d2 + muls 6(a4),d1 + add.l d2,d1 + add.l d1,d1 + swap d1 + ; + rts + +dodoors lea doors(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + move.l do_poly(a5),a0 + move do_fracadd(a5),d0 + add d0,do_frac(a5) + move do_frac(a5),d0 + move d0,d1 + add d1,d1 + move d1,zo_open(a0) ;copy frac + ; + move do_rx(a5),d1 + sub do_lx(a5),d1 ;width + move d1,d2 + muls d0,d2 + lsl.l #2,d2 + swap d2 + move do_lx(a5),d3 + sub d2,d3 + move d3,zo_lx(a0) + add d1,d3 + move d3,zo_rx(a0) + ; + move do_rz(a5),d1 + sub do_lz(a5),d1 + move d1,d2 + muls d0,d2 + lsl.l #2,d2 + swap d2 + move do_lz(a5),d3 + sub d2,d3 + move d3,zo_lz(a0) + add d1,d3 + move d3,zo_rz(a0) + ; + tst d0 + beq.s .kill + cmp #$4000,d0 + bne.s .loop + ; +.kill move.l a5,a0 + killitem doors + move.l a0,a5 + bra .loop + ; +.done rts + +doorsfxflag dc 0 + +execevent ;d0=event number to execute...1,2... + ; + sf doorsfxflag + move.l map_map(pc),a6 + move.l map_events(pc),a0 + ; + ifne aga + add.l 0(a0,d0*4),a6 + elseif + lsl #2,d0 + add.l 0(a0,d0),a6 + endc + ; +exec_loop move (a6)+,d0 + beq.s .rts + subq #1,d0 + beq exec_addobj ;1 - add an object (alien etc) + subq #1,d0 + beq exec_opendoor ;2 - open a door + subq #1,d0 + beq exec_teleport ;3 - teleport + subq #1,d0 + beq exec_loadobjs ;4 - load objects + subq #1,d0 + beq exec_changetxt ;5 - change texture + subq #1,d0 + beq exec_rotpolys ;6 - start polygons rotating! + ; + warn #$f0f + ; +.rts tst doorsfxflag + beq.s .nodoor + clr doorsfxflag + move.l doorsfx(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx +.nodoor rts + +exec_changetxt ; + move (a6)+,d0 ;zone# + move.l map_poly(pc),a1 + lsl #5,d0 + lea 0(a1,d0),a1 ;polygon to change + ; + move (a6)+,d0 ;new texture + move.b d0,zo_t(a1) + bra exec_loop + +exec_opendoor st doorsfxflag + addlast doors ;a0=new door + ; + move (a6)+,d0 ;door # + move.l map_poly(pc),a1 + lsl #5,d0 + lea 0(a1,d0),a1 ;polygon to open! + ; + ;calc lx add, lz add, rx add, rz add + ; + move.l a1,do_poly(a0) + move.l zo_lx(a1),do_lx(a0) + move.l zo_rx(a1),do_rx(a0) + clr do_frac(a0) + move #$100,do_fracadd(a0) + bra exec_loop + +exec_teleport move.l eventobj(pc),a0 + ; + move (a6)+,ob_telex(a0) + addq #2,a6 + move (a6)+,ob_telez(a0) + move (a6)+,ob_telerot(a0) + ; + move #4,ob_pixsizeadd(a0) + ; + bsr dotelesfx + ; + bra exec_loop + +dotelesfx move.l telesfx(pc),a0 + moveq #64,d0 + moveq #10,d1 + bra playsfx + +exec_loadobjs ; +.loop move (a6)+,d0 + bmi .done + bsr loadanobj + bra.s .loop +.done ; + bra exec_loop + +loadanobj ;d0=object#...sys must be permitted + ; + lea objinfo,a2 + mulu #objinfof-objinfo,d0 + move.l _ob_shape-objinfo(a2,d0),a2 + lea 8(a2),a3 ;filename + ; + tst.l (a2) + bne.s .skip + move.l a3,a0 + moveq #1,d1 + bsr loadfile + move.l d0,(a2) + beq.s .skip + move.l d0,a0 + bsr remapanim +.skip ; + tst.l 4(a2) + bne.s .rts + move.l a3,a0 +.loop tst.b (a3)+ + bne.s .loop + move.b #'2',-(a3) + moveq #1,d1 + bsr loadfile + clr.b (a3) + move.l d0,4(a2) + beq.s .rts + move.l d0,a0 + bsr remapanim + ; +.rts rts + +exec_rotpolys ; + ;could also be morphpolys depending on bit 0 of flags! + ; + addlast rotpolys + bne.s .ok + addq #8,a6 + bra exec_loop + ; +.ok movem (a6)+,d0-d3 ;polynum,count,speed,flags + ; + clr rp_rot(a0) + move d1,rp_num(a0) + move d2,rp_speed(a0) + move d3,rp_flags(a0) + move d1,d5 + subq #1,d5 + move.l map_poly(pc),a2 ;polygons! + lsl #5,d0 + add d0,a2 + move.l a2,rp_first(a0) + ; + btst #0,d3 + beq .rot + ; + ;OK, prepare for morph + ; + lsl #5,d1 + lea 0(a2,d1),a3 + lea rp_vx(a0),a1 + ; +.loop movem zo_lx(a3),d0-d1 + movem zo_lx(a2),d2-d3 + sub d2,d0 + sub d3,d1 + movem d0-d3,(a1) + addq #8,a1 + ; + lea 32(a2),a2 + lea 32(a3),a3 + dbf d5,.loop + ; + bra exec_loop + ; +.rot ;First, calc centre X,Z into d6,d7 + ; + moveq #0,d6 + moveq #0,d7 + move.l a2,a1 + ; +.loop0 movem zo_lx(a1),d0/d2 + add.l d0,d6 + add.l d2,d7 + lea 32(a1),a1 + dbf d5,.loop0 + ; + divu d1,d6 + divu d1,d7 + movem d6-d7,rp_cx(a0) + ; + lea rp_lx(a0),a1 + subq #1,d1 + ; +.loop2 movem zo_lx(a2),d0/d2 + sub d6,d0 + move d0,(a1)+ + sub d7,d2 + move d2,(a1)+ + move.l zo_na(a2),(a1)+ + ; + lea 32(a2),a2 + dbf d1,.loop2 + ; + rts + +exec_addobj clr.l dummy + move (a6)+,d0 ;monster type + lea objinfo,a2 + mulu #objinfof-objinfo,d0 + add.l d0,a2 + move.l (a2)+,a3 + tst.l (a3) + beq.s .ok +.no addq #8,a6 + bra exec_loop +.ok cmp #2,-2(a6) ;player? + bcc.s .notp + addfirst objects + bra.s .bum +.notp addlast objects +.bum beq.s .no + move.l a0,a5 + ; + move.l a5,(a3) + ; + move (a6)+,ob_x(a5) + move (a6)+,ob_y(a5) + move (a6)+,ob_z(a5) + move (a6)+,ob_rot(a5) + ; + lea ob_info(a5),a3 + move #(objinfof-objinfo-4)>>1-1,d0 +.loop move (a2)+,(a3)+ + dbf d0,.loop + ; + bsr calcvecs + movem.l d4-d5,ob_xvec(a5) + ; + move.l ob_shape(a5),a0 + move.l 4(a0),ob_chunks(a5) + move.l (a0),a0 + move.l a0,ob_shape(a5) + ; + move an_maxw(a0),d0 + move d0,ob_rad(a5) + mulu d0,d0 + move.l d0,ob_radsq(a5) + ; + clr.l ob_washit(a5) + ; + bsr rnddelay + ; + bra exec_loop + +rnddelay move ob_range(a5),d0 + bsr rndn + add ob_base(a5),d0 + move d0,ob_delay(a5) + ; + rts + +seedrnd ;seed number in d0.w + ; + moveq #54,d1 + lea rndtable(pc),a0 + ; +.loop move d0,(a0)+ + mulu #$1efd,d0 + add #$dff,d0 + dbf d1,.loop + ; + move.l a0,k_index + move.l #rndtable+48,j_index + rts + +rndw ;return rnd number 0...65535 if d0.w + ; + movem.l a0/a1,-(a7) + lea rndtable(pc),a1 + move.l j_index(pc),a0 + move -(a0),d0 + cmp.l a0,a1 + bne.s .skip + lea rndtable+110(pc),a0 +.skip move.l a0,j_index + move.l k_index(pc),a0 + add -(a0),d0 + move d0,(a0) + cmp.l a0,a1 + bne.s .skip2 + lea rndtable+110(pc),a0 +.skip2 move.l a0,k_index + movem.l (a7)+,a0/a1 + rts + +savernd lea rndtable(pc),a0 + lea rndback(pc),a1 + moveq #(rndtablef-rndtable)/2-1,d0 +.loop move (a0)+,(a1)+ + dbf d0,.loop + rts + +loadrnd lea rndback(pc),a0 + lea rndtable(pc),a1 + moveq #(rndtablef-rndtable)/2-1,d0 +.loop move (a0)+,(a1)+ + dbf d0,.loop + rts + +rndtable ds.w 55 +k_index dc.l 0 +j_index dc.l 0 +rndtablef + +rndback ds.b rndtablef-rndtable + +rndl bsr rndw + move d0,d1 + bsr rndw + swap d0 + move d1,d0 + rts + +rndn move d0,d1 + bsr rndw + mulu d1,d0 + swap d0 + rts + +calcangle2 ;angle of camera to object in a5 + ; + move camx(pc),d0 + sub ob_x(a5),d0 + move camz(pc),d1 + sub ob_z(a5),d1 + bra.s calcangle_ + +calcangle ;angle of object a5 to object a0... + ; + move ob_x(a0),d0 + sub ob_x(a5),d0 + move ob_z(a0),d1 + sub ob_z(a5),d1 + ; +calcangle_ ;d0.w=x d1.w=y (dest-src)! + ; + moveq #0,d2 + tst d1 + bpl.s .hpos + moveq #16,d2 + neg d1 +.hpos tst d0 + bpl.s .wpos + eor #8,d2 + neg d0 +.wpos cmp d1,d0 + bmi.s .notsteep + bne.s .neq + move #$2000,d1 + bra.s .flow +.neq eor #4,d2 + exg d1,d0 +.notsteep tst d1 + bne.s .noflow + moveq #0,d1 + bra.s .flow +.noflow ext.l d0 + swap d0 + divu d1,d0 + lsr #6,d0 + and #1022,d0 + move .arc(pc,d0),d1 +.flow move.l .oct(pc,d2),d0 + eor d0,d1 + swap d0 + add d1,d0 + lsr #8,d0 + rts + ; +.oct dc 0,0,$4000,-1,0,-1,$c000,0 + dc $8000,-1,$4000,0,$8000,0,$c000,-1 +.arc incbin arc.bin + +currplayer dc.l 0 + +calcscene ;a5=player object + ; + move #$20,$dff09a + ; + move.l a5,currplayer + move.l ob_palette(a5),palette + move ob_thermo(a5),thermo + move ob_infra(a5),infra + move ob_pixsize(a5),pixsize + ; + clr.l shapelist + move.l a5,a0 + bsr calccamera + bsr makewalls + ; + lea objects(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq.s .done + cmp.l currplayer(pc),a5 + beq.s .loop + move.l ob_render(a5),a0 + jsr (a0) + bra.s .loop +.done ; + lea gore(pc),a5 + ; +.loop2 move.l (a5),a5 + tst.l (a5) + beq.s .done2 + ; + movem go_x(a5),d0/d2 + moveq #0,d1 + move.l go_shape(a5),a0 + move #$200,d7 + bsr drawshape_q + ; + bra.s .loop2 + ; +.done2 move #$8020,$dff09a + ; + rts + +blitscene bclr #7,ob_update(a5) + beq.s .noupdate + ; + bclr #7,ob_update+1(a5) + beq.s .stats + ; + move.l ob_window(a5),a2 + moveq #9,d0 + bsr wcopy + bsr initstats + ; +.stats bsr showstats + ; +.noupdate move ob_messtimer(a5),d0 + bpl.s .mskip + addq #1,d0 + beq.s .mdone + neg ob_messtimer(a5) + move.l ob_window(a5),a0 + bsr putstrip + bsr printmess + bra.s .mskip + ; +.mdone clr ob_messtimer(a5) + move.l ob_window(a5),a0 + bsr putstrip +.mskip ; + rts + +drawscene ;a5=player + ; +.wait tst showflag + bne.s .wait + ; + move.l ob_window(a5),a0 + bsr dbwindow + ; + bsr castwalls + bsr makeqstrip + bsr renderwalls + ; + move floorflag(pc),d0 + ble.s .nofloor + ; + move camy(pc),d0 + neg d0 + moveq #-1,d1 + move maxy(pc),d7 + subq #1,d7 + lea groundtile,a0 + bsr flat + ; +.nofloor move roofflag(pc),d0 + ble.s .noflat + ; + move #-255,d0 + sub camy(pc),d0 + moveq #1,d1 + move miny(pc),d7 + lea ceilingtile,a0 + bsr flat + ; +.noflat bsr drawshapes + bsr drawblood + ; + move.l currplayer(pc),a0 + move ob_pixsizeadd(a0),d0 + beq .done + add d0,ob_pixsize(a0) + move ob_pixsize(a0),d0 + beq .fin + cmp #24,d0 + bne .pix + ; + ;ok, big pixels + ; + move finished2(pc),finished + bne .pix + ; + move #$20,$dff09a + move ob_telex(a0),ob_x(a0) + move ob_telez(a0),ob_z(a0) + move ob_telerot(a0),ob_rot(a0) + neg ob_pixsizeadd(a0) + move #$8020,$dff09a + bra.s .pix + ; +.fin clr ob_pixsizeadd(a0) + ; +.pix move d0,pixsize + bsr pixelate + ; +.done rts + +vbhandler ; + subq #1,(a1)+ + addq #1,(a1) + ; + tst showflag + beq.s .noshow + ; + ;don't show if beam in the way! + ; + move.l $dff004,d0 + lsr.l #8,d0 ;beampos + and #$1ff,d0 + cmp minbpos(pc),d0 + bcs.s .ok + cmp maxbpos(pc),d0 + bcs.s .noshow + ; +.ok clr showflag + lea window1,a0 + bsr showwindowq + lea window2,a0 + bsr showwindowq + ; +.noshow bsr sfxvbint + ; + move fadevol(pc),d0 + beq.s .nofade + move.l medat(pc),a1 + sub #$80,fadevol + bgt.s .setvol + clr fadevol + jsr 12(a1) ;stop song + bra.s .nofade +.setvol move fadevol(pc),d0 + lsr #8,d0 + jsr 16(a1) ;set volume + ; +.nofade btst #0,framecnt+1 + beq rts + tst paused + bne exit_vb2 + ; + ;OK, movement/animation stuff! + ; + movem.l d0-d7/a0-a6,-(a7) + ; + bsr readjoys + bsr doanims + bsr dorots + bsr dodoors + bsr moveblood + ; + ifne debugser + ; + ;OK, kludge in a random number! + move framecnt(pc),d0 + and #126,d0 + bne.s .nornd + ; + bsr rndw + lea .rndasc(pc),a0 + moveq #3,d1 +.loop rol #4,d0 + move d0,d2 + and #15,d2 + add #48,d2 + cmp #58,d2 + bcs.s .rok + addq #7,d2 +.rok move.b d2,(a0)+ + dbf d1,.loop + ; + move.l player1(pc),a5 + bsr message +.rndasc dc.b 'aaaa',0 + even + ; + endc +.nornd ; + move.l a7,obj_stack + lea objects(pc),a5 + ; +obj_loop move.l (a5),a5 + tst.l (a5) + beq exit_vb + ; + move.l ob_logic(a5),a0 + jsr (a0) + ; + ;check collision! + ; + move ob_collwith(a5),d0 + beq.s obj_loop + ; + move ob_rad(a5),d1 + move ob_x(a5),d6 + move ob_z(a5),d7 + ; + lea objects(pc),a0 + ; +.loop2 move.l (a0),a0 + cmp.l a5,a0 + bne.s .this + ; + clr.l ob_washit(a5) ;not hit! can get hit next time... + bra obj_loop +.this ; + move ob_colltype(a0),d2 + and d0,d2 + beq.s .loop2 + ; + move ob_rad(a0),d2 + add d1,d2 ;r sum + ; + move ob_x(a0),d3 + sub d6,d3 + bpl.s .xpl + neg d3 +.xpl cmp d2,d3 + bcc.s .loop2 + ; + move ob_z(a0),d4 + sub d7,d4 + bpl.s .ypl + neg d4 +.ypl cmp d2,d4 + bcc.s .loop2 + ; + mulu d2,d2 + mulu d3,d3 + mulu d4,d4 + add.l d4,d3 + cmp.l d2,d3 + bcc.s .loop2 + ; + cmp.l ob_washit(a5),a0 + beq obj_loop + move.l a0,ob_washit(a5) + ; + move finished2(pc),d0 + bne obj_loop + ; + move.l #killobject3,killjsr + movem.l a0/a5,obj_a0 + exg.l a0,a5 + ; + move ob_damage(a0),d0 + move.l ob_hit(a5),a1 + sub d0,ob_hitpoints(a5) + bgt.s hit_skip + move.l ob_die(a5),a1 + ; +hit_skip jsr (a1) + ; +hit_ret move.l #killobject2,killjsr + movem.l obj_a0(pc),a0/a5 + ; + move ob_damage(a0),d0 + move.l ob_hit(a5),a1 + sub d0,ob_hitpoints(a5) + bgt.s hit_skip2 + move.l ob_die(a5),a1 + ; +hit_skip2 jsr (a1) + ; + bra obj_loop + ; +exit_vb movem.l (a7)+,d0-d7/a0-a6 +exit_vb2 st doneflag + moveq #0,d0 + ; +rts rts + +obj_a0 dc.l 0 +obj_a5 dc.l 0 +obj_stack dc.l 0 +killjsr dc.l killobject2 + +killobject ; + move.l killjsr(pc),a0 + jmp (a0) + +killobject2 move.l a5,a0 + killitem objects + move.l a0,a5 + move.l obj_stack(pc),a7 + bra obj_loop + +killobject3 move.l a5,a0 + killitem objects + move.l obj_stack(pc),a7 + bra hit_ret + +bloodspeed bsr rndw + ext.l d0 + lsl.l #2,d0 + rts + +bloodspeed2 bsr rndw + ext.l d0 + lsl.l #5,d0 + rts + +bloodspeed3 bsr rndw + ext.l d0 + lsl.l #4,d0 + rts + +makesparksq move.l ob_chunks(a5),a2 + ; +makesparks ;a2=sparks + ; + movem.l ob_x(a5),d2-d4 + move 2(a2),d5 + subq #1,d5 + ; +.loop addlast objects + beq .rts + movem.l d2-d4,ob_x(a0) + bsr bloodspeed2 + move.l d0,ob_xvec(a0) + bsr bloodspeed2 + move.l d0,ob_yvec(a0) + bsr bloodspeed2 + move.l d0,ob_zvec(a0) + move.l a2,ob_shape(a0) + move d5,ob_frame(a0) + move.l #sparkslogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + bsr rndw + and #15,d0 + add #15,d0 + move d0,ob_delay(a0) + dbf d5,.loop +.rts rts + +sparkslogic subq #1,ob_delay(a5) + ble killobject + movem.l ob_x(a5),d0-d2 + add.l ob_xvec(a5),d0 + add.l ob_yvec(a5),d1 + add.l ob_zvec(a5),d2 + movem.l d0-d2,ob_x(a5) + rts + +bloodymess ;throw random blood splots everywhere! + ; + bsr bloodspeed2 + add.l ob_x(a5),d0 + move.l d0,d2 + bsr bloodspeed2 + add.l ob_gutsy(a5),d0 + move.l d0,d3 + bsr bloodspeed2 + add.l ob_z(a5),d0 + move.l d0,d4 + ; +.loop addlast blood + beq.s .done + ; + movem.l d2-d4,bl_x(a0) + bsr bloodspeed + move.l d0,bl_xvec(a0) + bsr bloodspeed + move.l d0,bl_yvec(a0) + bsr bloodspeed + move.l d0,bl_zvec(a0) + move ob_blood(a5),bl_color(a0) + ; + dbf d7,.loop + ; +.done rts + +bloodymess2 ;throw random blood splots everywhere! + ; + bsr bloodspeed2 + add.l ob_x(a5),d0 + move.l d0,d2 + bsr bloodspeed2 + add.l ob_gutsy(a5),d0 + move.l d0,d3 + bsr bloodspeed2 + add.l ob_z(a5),d0 + move.l d0,d4 + ; +.loop addlast blood + beq.s .done + ; + movem.l d2-d4,bl_x(a0) + bsr bloodspeed3 + move.l d0,bl_xvec(a0) + bsr bloodspeed3 + move.l d0,bl_yvec(a0) + bsr bloodspeed3 + move.l d0,bl_zvec(a0) + move ob_blood(a5),bl_color(a0) + ; + dbf d7,.loop + ; +.done rts + +chunklogic move mode(pc),d0 + beq chunklogic2 + ; + add.l #$8000,ob_yvec(a5) + move.l ob_yvec(a5),d0 + add.l ob_y(a5),d0 + blt .skip + ; + ;OK...hit ground! + ; + bsr splat + addlast gore + bne.s .gok + ; + move.l gore(pc),a0 + killitem gore + addlast gore + beq killobject + ; +.gok move ob_x(a5),go_x(a0) + move ob_z(a5),go_z(a0) + move.l ob_shape(a5),a1 + move ob_frame(a5),d0 + add.l 12(a1,d0*4),a1 + move.l a1,go_shape(a0) + ; + bra killobject + ; +.skip move.l d0,ob_y(a5) + movem.l ob_xvec(a5),d6-d7 + add.l ob_x(a5),d6 + add.l ob_z(a5),d7 + bsr checknew + beq.s .newok + clr.l ob_xvec(a5) + clr.l ob_zvec(a5) + rts + ; +.newok move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + rts + +chunklogic2 add.l #$8000,ob_yvec(a5) + move.l ob_yvec(a5),d0 + add.l d0,ob_y(a5) + blt.s .ok + ;bsr splat + bra killobject +.ok movem.l ob_xvec(a5),d0-d1 + add.l d0,ob_x(a5) + add.l d1,ob_z(a5) + rts + +splat move.l splatsfx(pc),a0 + moveq #32,d0 + moveq #-1,d1 + bra playsfx + +blowobject move.l diesfx(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx + ; + moveq #31,d7 + bsr bloodymess2 + ; + move.l ob_chunks(a5),d0 + bne.s .chok + ; + moveq #15,d7 + bsr bloodymess2 + bra killobject + ; +.chok move.l d0,a4 + move 2(a4),d7 + subq #1,d7 + ; +.loop addlast objects + beq killobject + movem.l ob_x(a5),d0-d2 + move.l #-64<<16,d1 + movem.l d0-d2,ob_x(a0) + ; + bsr bloodspeed3 + move.l d0,ob_xvec(a0) + bsr bloodspeed3 + sub.l #$40000,d0 + move.l d0,ob_yvec(a0) + bsr bloodspeed3 + move.l d0,ob_zvec(a0) + ; + clr ob_colltype(a0) + clr ob_collwith(a0) + move.l #chunklogic,ob_logic(a0) + move.l a4,ob_shape(a0) + move.l #drawshape_1sc,ob_render(a0) + move d7,ob_frame(a0) + move ob_scale(a5),ob_scale(a0) + ; + move an_maxw(a4),d0 + move d0,ob_rad(a0) + mulu d0,d0 + move.l d0,ob_radsq(a0) + ; + dbf d7,.loop + bra killobject + +hurtghoul moveq #31,d7 + bsr bloodymess + rts + +hurtngrunt move.l a0,-(a7) + bsr rndw + and #3,d0 + cmp lastgrunt(pc),d0 + bne.s .new + addq #1,d0 + and #3,d0 +.new move d0,lastgrunt + lea grunttable(pc),a0 + move.l 0(a0,d0*4),a0 + move.l (a0),a0 + moveq #64,d0 + moveq #1,d1 + bsr playsfx + move.l (a7)+,a0 + ; +hurtobject move ob_colltype(a0),d0 + and #24,d0 + bne.s .rts + ; + moveq #23,d7 + bsr bloodymess + move ob_hurtpause(a5),ob_hurtwait(a5) + beq .rts + ; + move #4,ob_frame(a5) + move.l ob_logic(a5),ob_oldlogic2(a5) + move.l ob_hit(a5),ob_oldhit(a5) + move.l #pauselogic2,ob_logic(a5) + move.l #rts,ob_hit(a5) + ; +.rts rts + +pauselogic2 subq #1,ob_hurtwait(a5) + bgt.s .rts + clr ob_frame(a5) + move.l ob_oldlogic2(a5),ob_logic(a5) + move.l ob_oldhit(a5),ob_hit(a5) +.rts rts + +pauselogic subq #1,ob_delay(a5) + bgt.s .skip + ; + bsr rnddelay + move.l ob_oldlogic(a5),ob_logic(a5) + ; + ;if in front of player, continue on old course... + ; + bsr pickplayer + tst ob_invisible(a0) + bne.s .useold ;can't see player! no intelligence... + ; + bsr calcangle + move ob_rot(a0),d1 + and #255,d1 + sub d0,d1 + bpl.s .pl + neg d1 +.pl cmp #64,d1 + bcs.s .skip + cmp #192,d1 + bcc.s .skip + ; +.useold move ob_oldrot(a5),ob_rot(a5) + bsr calcvecs + ; +.skip rts + +shoot ; + ;fire off a bullet... + ; + ;d2 : colltype + ;d3 : collwith + ;d4 : hitpoints + ;d5 : damage + ;d6 : speed + ;a2=bullet shape + ;a3=sparks shape + ; + addfirst objects + beq .rts + ; + move ob_bouncecnt(a5),ob_bouncecnt(a0) + move ob_x(a5),ob_x(a0) + move ob_y(a5),d0 + add ob_firey(a5),d0 + move d0,ob_y(a0) + move ob_z(a5),ob_z(a0) + move.l #firelogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + move.l #rts,ob_hit(a0) + move.l #killobject,ob_die(a0) + move d2,ob_colltype(a0) + move d3,ob_collwith(a0) + move d4,ob_hitpoints(a0) + move d5,ob_damage(a0) + move d6,ob_movspeed(a0) + move.l a2,ob_shape(a0) + clr ob_frame(a0) + move.l a3,ob_chunks(a0) + ; + move ob_rot(a5),d0 + and #255,d0 + move.l camrots(pc),a1 + ; + ifne aga + lea 0(a1,d0*8),a1 + elseif + lsl #3,d0 + lea 0(a1,d0),a1 + endc + ; + move 2(a1),d0 + move d0,ob_nxvec(a0) + neg d0 + muls d6,d0 + add.l d0,d0 + move 6(a1),d1 + move d1,ob_nzvec(a0) + muls d6,d1 + add.l d1,d1 + ; + movem.l d0-d1,ob_xvec(a0) + add.l d0,ob_x(a0) + add.l d1,ob_z(a0) + ; + move #32,ob_rad(a0) + move.l #32*32,ob_radsq(a0) + ; +.rts rts + +fire1 bsr pickplayer + bsr calcangle + move d0,-(a7) + bsr rndw + tst ob_invisible(a0) + bne.s .inv + and #16,d0 + subq #8,d0 +.inv add (a7)+,d0 + and #255,d0 + move d0,ob_rot(a5) + bsr calcvecs + move #7,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #pauselogic,ob_logic(a5) + clr.l ob_frame(a5) + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #1,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet1,a2 + lea sparks1,a3 + ; + bsr shoot + ; + rts + +pickplayer ;pick nearest player + ; + move.l player1(pc),a0 + move gametype(pc),d0 + beq.s .rts + move.l player2(pc),a1 + move linked(pc),d0 + bpl.s .nosw + ; + exg a0,a1 +.nosw ; + tst ob_hitpoints(a0) + beq .sw + tst ob_hitpoints(a1) + beq.s .rts + ; + move ob_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move ob_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 ;dist to player a0 + ; + move ob_x(a5),d1 + sub ob_x(a1),d1 + muls d1,d1 + move ob_z(a5),d2 + sub ob_z(a1),d2 + muls d2,d2 + add.l d2,d1 ;dist to player a1 + ; + cmp.l d1,d0 + bcs.s .rts + ; +.sw move.l a1,a0 + ; +.rts rts + +checkcoll ;check for collision between a5, and a0 + ; + move ob_rad(a5),d1 + move ob_rad(a0),d2 + add d1,d2 ;r sum + ; + move ob_x(a0),d3 + sub ob_x(a5),d3 + bpl.s .xpl + neg d3 +.xpl cmp d2,d3 + bcc.s .no + ; + move ob_z(a0),d4 + sub ob_z(a5),d4 + bpl.s .ypl + neg d4 +.ypl cmp d2,d4 + bcc.s .no + ; + mulu d2,d2 + mulu d3,d3 + mulu d4,d4 + add.l d4,d3 + cmp.l d2,d3 + bcc.s .no + ; + moveq #-1,d0 + rts + ; +.no moveq #0,d0 + rts + +baldycharge ; + ;baldy charging at player! + ; + bsr checkvecs + beq baldy_skip + ; +baldy_tonorm move.l ob_movspeed(a5),d0 + lsr.l #2,d0 + move.l d0,ob_movspeed(a5) + ; + move.l ob_framespeed(a5),d0 + lsr.l #2,d0 + move.l d0,ob_framespeed(a5) + ; + move.l #baldylogic,ob_logic(a5) + bsr rnddelay + ; + bra monsterfix + ; +baldy_skip ;close to player? start throwing punches around! + ; + bsr pickplayer + bsr calcangle + sub ob_rot(a5),d0 + cmp #32,d0 + bgt baldy_tonorm + cmp #-32,d0 + blt baldy_tonorm + ; + move.l a0,ob_washit(a5) + bsr checkcoll + beq monsternew ;no collisions! + ; + ;go into punch mode! + ; + move.l #baldypunch,ob_logic(a5) + move ob_punchrate(a5),ob_delay(a5) + clr.l ob_frame(a5) + rts + +baldypunch ; + bsr pickplayer + bsr checkcoll + bne.s .doit + ; + clr.l ob_frame(a5) + bra baldy_tonorm + ; +.doit subq #1,ob_delay(a5) + ble.s .punch + rts +.punch move ob_punchrate(a5),ob_delay(a5) + moveq #0,d0 ;stand frame + cmp ob_frame(a5),d0 + bne .skip + ; + clr.l ob_washit(a5) ;punch! + bsr calcangle + move d0,ob_rot(a5) + moveq #5,d0 +.skip move d0,ob_frame(a5) + rts + +calcbangle bsr calcangle + tst ob_invisible(a0) + beq.s .notinv + ; + ;invisible, add some randomeness! + ; + move d0,-(a7) + bsr rndw + and #127,d0 + sub #64,d0 + add (a7)+,d0 + and #255,d0 + ; +.notinv move d0,ob_rot(a5) + rts + +baldylogic ; + ;OK, what can baldy do... + ; + ;how about, walk around similar to the marine, but randomly + ;charge at you? + ; + ;then, if he's close enough, he throws a punch! + ; + subq #1,ob_delay(a5) + bgt monstermove ;charge? + ; + bsr pickplayer + bsr calcbangle + ; + move.l ob_movspeed(a5),d0 + lsl.l #2,d0 + move.l d0,ob_movspeed(a5) + move.l ob_framespeed(a5),d0 + lsl.l #2,d0 + move.l d0,ob_framespeed(a5) + ; + bsr calcvecs + move.l #baldycharge,ob_logic(a5) + ; + rts + +terralogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + bgt monstermove + ; + ;OK, terra goes apeshit! stand there firing off at player! + ;use punchrate as firedelay! + ; + clr ob_frame(a5) + move #1,ob_delay(a5) + move ob_firecnt(a5),ob_delay2(a5) + move.l #terralogic2,ob_logic(a5) + rts + +terralogic2 ; + subq #1,ob_delay(a5) + bgt.s .rts + ; + move ob_firerate(a5),ob_delay(a5) + ; + ;OK, to to face player and fire away! + ; + bsr pickplayer + bsr calcangle + move d0,ob_rot(a5) + bsr calcvecs + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #16,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet4,a2 + lea sparks4,a3 + ; + bsr shoot + ; + subq #1,ob_delay2(a5) + bgt.s .rts + ; + bsr rnddelay + move.l #terralogic,ob_logic(a5) + ; +.rts rts + +ghoullogic ; + addq #8,ob_bounce(a5) + move ob_bounce(a5),d0 + move.l camrots(pc),a0 + and #255,d0 + move 0(a0,d0*8),d0 + ext.l d0 + lsl.l #5,d0 ;+/- 32 + swap d0 + add #-32,d0 + move d0,ob_y(a5) + ; + bsr pickplayer + bsr calcangle + move d0,ob_rot(a5) + ; + subq #1,ob_delay(a5) + bgt.s .skip + ; + move #1,ob_frame(a5) + move.l #$2000,ob_framespeed(a5) + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet2,a2 + lea sparks2,a3 + ; + bsr shoot + bsr rnddelay + ; +.skip ;OK, ghoul moves around ignoring walls! + ; + ;he's pointed at player...how about randomly selected to make + ;this his new movement vector? + ; + bsr rndw + move ob_movspeed(a5),d1 + lsl #8,d1 + cmp d1,d0 + bcc.s .no + ; + bsr calcvecs + ; +.no movem.l ob_xvec(a5),d0-d1 + add.l d0,ob_x(a5) + add.l d1,ob_z(a5) + ; + move.l ob_framespeed(a5),d0 + beq.s .rts + add.l d0,ob_frame(a5) + cmp #3,ob_frame(a5) + bcs.s .rts + ; + clr ob_frame(a5) + clr.l ob_framespeed(a5) + ; +.rts rts + +demonpause move ob_delay(a5),d0 + move d0,d1 + and #4,d0 + sne d0 + ext d0 + and #5,d0 ;0 or 5 + move d0,ob_frame(a5) + ; + and #7,d1 ;do a fire? + cmp #7,d1 + bne.s .nofire + ; + move ob_delay(a5),d0 + lsr #3,d0 + mulu #20,d0 + lea wtable(pc),a0 + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + movem 2(a0,d0),d4-d6 ;hits,dam,speed + moveq #0,d7 ;acc + move.l 8(a0,d0),a2 ;bullets + move.l 12(a0,d0),a3 ;sparks + move.l 16(a0,d0),-(a7) + ; + bsr shoot + ; + move.l (a7)+,a0 + move.l (a0),a0 + moveq #32,d0 + moveq #0,d1 + bsr playsfx + ; +.nofire subq #1,ob_delay(a5) + bgt.s .rts + ; + bsr rnddelay + move.l ob_oldlogic(a5),ob_logic(a5) + ; +.rts rts + +demonlogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + bgt monstermove + ; + bsr pickplayer + bsr calcangle + move d0,-(a7) + bsr rndw + tst ob_invisible(a0) + bne.s .inv + and #16,d0 + subq #8,d0 +.inv add (a7)+,d0 + and #255,d0 + move d0,ob_rot(a5) + bsr calcvecs + move #5<<3-1,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #demonpause,ob_logic(a5) + ; + rts + +phantomlogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + bgt monstermove + ; + bsr pickplayer + bsr calcangle + move d0,ob_rot(a5) + bsr calcvecs + move #7,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #pauselogic,ob_logic(a5) + move #5,ob_frame(a5) + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet3,a2 + lea sparks3,a3 + ; + bra shoot + +monsterlogic ; + move ob_rot(a5),ob_oldrot(a5) + ;monster cruising around minding his own business... + ; + subq #1,ob_delay(a5) + ble fire1 + ; +monstermove bsr checkvecs + beq.s monsternew + ; + ;OK, try 90/-90 degrees... + ; +monsterfix bsr rndw + moveq #64,d1 + tst d0 + bpl.s .umk + moveq #-64,d1 +.umk add d1,ob_rot(a5) + bsr calcvecs + bsr checkvecs + beq.s monsternew + ; + add #128,ob_rot(a5) + bsr calcvecs + bsr checkvecs + beq.s monsternew + ; + move ob_oldrot(a5),d0 + add #128,d0 + move d0,ob_rot(a5) + ; + bsr calcvecs + bsr checkvecs + ; +monsternew move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + and #3,ob_frame(a5) + rts + +calcvecs move ob_rot(a5),d0 + and #255,d0 + move.l camrots(pc),a0 + ; + ifne aga + lea 0(a0,d0*8),a0 + elseif + lsl #3,d0 + lea 0(a0,d0),a0 + endc + ; + move ob_movspeed(a5),d4 + move d4,d5 + muls 2(a0),d4 + add.l d4,d4 + neg.l d4 + move.l d4,ob_xvec(a5) + muls 6(a0),d5 + add.l d5,d5 + move.l d5,ob_zvec(a5) + rts + +checkvecs move.l ob_x(a5),d6 + add.l ob_xvec(a5),d6 + move.l ob_z(a5),d7 + add.l ob_zvec(a5),d7 + bra checknew ;ok to stand here? + +playerdead bsr getcntrl + ; + subq #1,ob_delay(a5) + bgt.s .rts + ; + cmp #2,gametype + bne.s .notcom + ; + ;combat game! + ; + move #3,finished2 + move #2,ob_pixsizeadd(a5) + move.l #rts,ob_logic(a5) + move.l player1,a0 + cmp.l a5,a0 + bne.s .got + move.l player2,a0 +.got move #2,ob_pixsizeadd(a0) +.rts rts +.notcom ; + tst ob_lives(a5) + beq.s .dead + move.l #waitrestart,ob_logic(a5) + rts + ; +.dead move.l #rts,ob_logic(a5) + ; + tst gametype + bne.s .not1p + ; + ;OK, one player game done! + ; +.allover move #1,finished + rts + ; +.not1p move.l player1,a0 + cmp.l a5,a0 + bne.s .goth + move.l player2,a0 +.goth tst ob_hitpoints(a0) + ble.s .allover + rts + +waitrestart bsr getcntrl + ; + bsr checkfireb + beq.s .rts + ; + lea p1x(pc),a0 + lea player1_+4,a1 + cmp.l player1,a5 + beq.s .got + lea p2x(pc),a0 + lea player2_+4,a1 +.got lea ob_info(a5),a2 + move #(objinfof-objinfo-4)>>1-1,d0 +.loop move (a1)+,(a2)+ + dbf d0,.loop + move (a0)+,ob_x(a5) + move (a0)+,ob_z(a5) + move (a0)+,ob_rot(a5) + ; + move.l ob_shape(a5),a0 + move.l 4(a0),ob_chunks(a5) + move.l (a0),a0 + move.l a0,ob_shape(a5) + ; + bsr resetplayer + st ob_lastbut(a5) + ; +.rts rts + +playerdeath bsr getcntrl + ; + addq #4,ob_rot(a5) + addq #4,ob_eyey(a5) + cmp #-32,ob_eyey(a5) + blt .rts + ; + move #-32,ob_eyey(a5) + move.l #playerdead,ob_logic(a5) + move #63,ob_delay(a5) + ; + cmp #2,gametype + bne.s .notcom + ; + move.l player1,a0 + cmp.l a5,a0 + bne.s .got + move.l player2,a0 +.got tst ob_hitpoints(a0) + ble.s .draw + ; +.win move.l a5,-(a7) + move.l a0,a5 + addq #1,wins1 + cmp.l player1,a5 + beq.s .wd + subq #1,wins1 + addq #1,wins2 +.wd st ob_update(a5) + clr ob_collwith(a5) + clr ob_colltype(a5) + bsr message + dc.b 'winner!',0 + even + move.l (a7)+,a5 + st ob_update(a5) + bsr message + dc.b 'loser!',0 + even + rts +.draw ; + rts +.notcom ; + subq #1,ob_lives(a5) + bne.s .ngo + bsr message + dc.b 'game over',0 + even +.ngo move #-1,ob_update(a5) + ; +.rts rts + +redpal move.l #palettesr,ob_palette(a5) + move #2,ob_paltimer(a5) + rts + +playerhit tst ob_damage(a0) + beq.s .rts + st ob_update(a5) + bsr redpal +.rts rts + +playerdie bsr redpal + clr ob_hitpoints(a5) + st ob_update(a5) + move.l #playerdeath,ob_logic(a5) + clr ob_colltype(a5) + clr ob_collwith(a5) + rts + +healthgot bsr playtsfx + addq #5,ob_hitpoints(a0) + cmp #25,ob_hitpoints(a0) + ble.s .skip + move #25,ob_hitpoints(a0) +.skip st ob_update(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'health bonus!',0 + even + move.l (a7)+,a5 + bra killobject + +playtsfx move.l a0,-(a7) + move.l tokensfx(pc),a0 + moveq #64,d0 + moveq #0,d1 + bsr playsfx + move.l (a7)+,a0 + rts + +weapongot bsr playtsfx + add #$c0,ob_weapon(a0) + cmp #$1900,ob_weapon(a0) + ble.s .skip + move #$1900,ob_weapon(a0) +.skip st ob_update(a0) + move.l a5,-(a7) + move.l a0,a5 + move ob_wlevel(a5),d2 + bsr calcwlevel + cmp ob_wlevel(a5),d2 + beq.s .nob + bsr message + dc.b 'weapon boost!',0 + even + bra.s .nob2 +.nob bsr message + dc.b 'weapon bonus...',0 + even +.nob2 move.l (a7)+,a5 + bra killobject + +invisigot add #1500,ob_invisible(a0) + move.l #rts,ob_render(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr calcwlevel + bsr message + dc.b 'invisibility!',0 + even + move.l (a7)+,a5 + bra killobject + +thermogot add #1500,ob_thermo(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'got the thermo glasses!',0 + even + move.l (a7)+,a5 + bra killobject + +playertimers tst ob_thermo(a5) + beq.s .noth + subq #1,ob_thermo(a5) + bne.s .noth + bsr message + dc.b 'thermo glasses out...',0 + even + ; +.noth tst ob_messtimer(a5) + ble.s .notm + subq #2,ob_messtimer(a5) +.notm ; + tst ob_invisible(a5) + beq.s .noti + subq #1,ob_invisible(a5) + bne.s .noti + move.l #drawshape_8,ob_render(a5) + bsr message + dc.b 'invisibility out...',0 + even +.noti ; + tst ob_paltimer(a5) + beq.s .notp + subq #1,ob_paltimer(a5) + bne.s .notp + move.l #palettes,ob_palette(a5) +.notp ; + rts + +footstep move.l d0,-(a7) + move.l footstepsfx(pc),a0 + moveq #16,d0 + moveq #0,d1 + bsr playsfx + move.l (a7)+,d0 + rts + +prevjoy dc 0 ;previous joy reading! + +cntrls dc.l joyx0,joyx1,joyx2,joyx3 + +getcntrl move ob_cntrl(a5),d0 + cmp #3,d0 ;null modem? + bne.s .notnull + ; + ;OK, control from null modem! + ; + move linkcnt(pc),d0 + beq.s .waitser + ; + subq #1,linkcnt + moveq #0,d0 + lea joyx3(pc),a0 + bra decodejoy + ; +.waitser bsr serget + bpl.s .sergot + ; + ;OK, do a vwait to allow other machine to catch up! + ; + move #$20,$dff09c +.vw ; + ifne debugser + col #$f0f + endc + ; + btst #5,$dff01f + beq.s .vw + move #$20,$dff09c + bra.s .waitser + ; +.sergot lea joyx3(pc),a0 + tst.b d0 + bpl decodejoy + and #$ff,d0 + move d0,finished + move.l #rts,ob_logic(a5) + moveq #0,d0 + bra decodejoy + ; +.notnull lea cntrls(pc),a0 + move.l 0(a0,d0*4),a0 ;address of cntrl table... + move linked(pc),d0 + beq.s .rts + ; + bsr encodejoy + move.l a0,a2 + bsr serput ;output it! + move.l a2,a0 + move prevjoy(pc),d1 ;use previous! + move d0,prevjoy ;new previous + move d1,d0 + bra decodejoy + ; +.rts rts + +playerlogic bsr playertimers + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + ; + bsr checknewslow + beq.s .newok + bsr adjustpos + beq.s .newok2 + ; + subq #1,ob_hitpoints(a5) + st ob_update(a5) + bra redpal + ; + ;bsr adjustpos + ;beq.s .newok2 + ; + warn #$f00 + ; +.newok2 move.l d6,ob_x(a5) + move.l d7,ob_z(a5) +.newok ; + bsr getcntrl ;update controller block, + ;and put in a0 + ; + move (a0),d0 ;joyx - rotate + muls ob_rotspeed(a5),d0 + add ob_rot(a5),d0 + and #255,d0 + move d0,ob_rot(a5) + ; + move 2(a0),d4 ;joyy + bne.s .speed + ; + ;OK, standing still! + ; + and #255,ob_bounce(a5) + beq.s .nob + add #32,ob_bounce(a5) + cmp #128,ob_bounce(a5) + ble.s .nob + clr ob_bounce(a5) + bsr footstep +.nob clr.l ob_frame(a5) + bra checkfire + ; +.speed add #16,ob_bounce(a5) + move ob_bounce(a5),d1 + sub #64,d1 + and #255,d1 + bne.s .fskip + bsr footstep +.fskip ; + move.l ob_framespeed(a5),d1 + add.l d1,ob_frame(a5) + and #3,ob_frame(a5) + ; + neg d4 + muls ob_movspeed(a5),d4 ;speed + move.l camrots(pc),a1 + lea 0(a1,d0*8),a1 + ; + move d4,d5 ;real speed + muls 2(a1),d4 + add.l d4,d4 + muls 6(a1),d5 + add.l d5,d5 + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + ; + neg.l d4 + add.l d4,d6 + add.l d5,d7 + ; + bsr checknewslow + beq.s .newpos + bsr adjustpos + beq.s .newpos + bsr adjustposq + ; +.newpos move.l d6,ob_x(a5) + move.l d7,ob_z(a5) +.useold ; + tst ob_pixsizeadd(a5) + bne checkfire + ; + bsr checknew2 ;in a trigger zone? + beq.s checkfire + ; + move zo_ev(a4),d0 ;poly->event + bmi.s checkfire + ; + cmp #24,d0 + bne.s .notexit + ; + move #3,finished2 ;pattern done! + move #2,ob_pixsizeadd(a5) + ; + move d0,-(a7) + bsr dotelesfx + move (a7)+,d0 + ; +.notexit cmp #19,d0 + bcc.s .noclr + ; + ;OK, gotta clear all 'event' zones with same type! + ; + move.l map_poly(pc),a0 + move.l map_ppnt(pc),a1 + moveq #32,d1 +.loop2 cmp zo_ev(a0),d0 + bne.s .skip2 + neg zo_ev(a0) +.skip2 add.l d1,a0 + cmp.l a1,a0 + bcs.s .loop2 + ; +.noclr move.l a5,eventobj + bsr execevent + move.l eventobj(pc),a5 +checkfire ; + bsr checkfireb + beq .rts + ; + move ob_collwith(a5),d2 + and #3,d2 + eor #3,d2 ;colltype + ; + lea wtable(pc),a0 + move ob_wlevel(a5),d0 + movem 0(a0,d0),d3-d6 + movem.l 8(a0,d0),a2-a3 + move.l 16(a0,d0),-(a7) + ; + move.b ob_weapon(a5),d0 + sub d3,ob_weapon(a5) + cmp.b ob_weapon(a5),d0 + beq.s .noup + ; + bsr calcwlevel + st ob_update(a5) + ; +.noup moveq #0,d3 + bsr shoot + ; + move.l (a7)+,a0 + move.l (a0),a0 + moveq #32,d0 + moveq #0,d1 + bsr playsfx + ; +.rts rts + + ; + ;weaponuse.w + ;hitpoints + ;damage + ;speed + ; +wtable dc 0,1,1,32 + dc.l bullet1,sparks1,shootsfx3 + dc $8,5,2,36 + dc.l bullet2,sparks2,shootsfx2 + dc $c,10,3,40 + dc.l bullet3,sparks3,shootsfx + dc $10,15,4,40 + dc.l bullet4,sparks4,shootsfx4 + dc $20,20,7,24 + dc.l bullet5,sparks5,shootsfx5 + +adjustposq ; + neg d0 + move d0,d1 + ; + muls zo_a(a4),d0 + add.l d0,d0 + ; + muls zo_b(a4),d1 + add.l d1,d1 + ; + sub.l d0,d6 + sub.l d1,d7 + ; + rts + +adjustpos bsr adjustposq + ; + ;addq #1,(a4) + ;move.l a4,-(a7) + bsr checknewslow + ;move.l (a7)+,a3 + ;addq #1,(a3) + tst d1 + rts + +checkfireb lea cntrls(pc),a0 + move ob_cntrl(a5),d0 + move.l 0(a0,d0*4),a0 + move 4(a0),d0 + beq.s .nofire + tst ob_lastbut(a5) + bne.s .skip + move d0,ob_lastbut(a5) + rts +.skip moveq #0,d0 + rts +.nofire clr ob_lastbut(a5) + rts + +eventobj dc.l 0 + +calcbounce ;calculate bounce vector...poly in a4, obj in a5 + ; + ;R=2 N (N dot V) - V + ; + ;where R=reflect vector, N=normal to poly, V=original vector + ; + subq #1,ob_bouncecnt(a5) + bge.s .nok + bsr makesparksq + bra killobject +.nok ; + movem ob_nxvec(a5),d0-d1 ;normalized dir + movem zo_na(a4),d2-d3 ;normal to poly + neg d2 + ; + ;calc dot product: + ; + move d0,d4 + muls d2,d4 + move d1,d5 + muls d3,d5 + add.l d5,d4 + add.l d4,d4 + swap d4 ;dot product? + ; + muls d4,d2 + lsl.l #2,d2 + swap d0 + clr d0 + sub.l d0,d2 + swap d2 + ; + muls d4,d3 + lsl.l #2,d3 + swap d1 + clr d1 + sub.l d1,d3 + swap d3 + ; + movem d2-d3,ob_nxvec(a5) + ; + neg d2 + muls ob_movspeed(a5),d2 + add.l d2,d2 + muls ob_movspeed(a5),d3 + add.l d3,d3 + ; + movem.l d2-d3,ob_xvec(a5) + ; + move.l d2,d6 + add.l ob_x(a5),d6 + move.l d3,d7 + add.l ob_z(a5),d7 + ; + bsr checknew + beq putfire + ; + bra calcbounce + +firelogic ; + move.l ob_xvec(a5),d6 + add.l ob_x(a5),d6 + move.l ob_zvec(a5),d7 + add.l ob_z(a5),d7 + ; + bsr checknew + bne calcbounce +.nokill ; +putfire move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + ; + addq #1,ob_frame(a5) + move ob_frame(a5),d0 + move.l ob_shape(a5),a0 + cmp 2(a0),d0 + bcs.s .skip + clr ob_frame(a5) +.skip ; + rts + +moveblood lea blood(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + add.l #$8000,bl_yvec(a5) + ; + movem.l bl_xvec(a5),d0-d2 + add.l d1,bl_y(a5) + blt.s .ok + ; + move.l a5,a0 + killitem blood + move.l a0,a5 + bra.s .loop + ; +.ok add.l d0,bl_x(a5) + add.l d2,bl_z(a5) + bra.s .loop + ; +.done rts + +drawblood lea blood(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + move bl_x(a5),d0 + sub camx(pc),d0 + move bl_y(a5),d1 + sub camy(pc),d1 + move bl_z(a5),d2 + sub camz(pc),d2 + ; + ;rotate x/z around cam... + ; + move d0,d3 + move d2,d5 + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 ;X + ; + muls cm3(pc),d3 + muls cm4(pc),d2 + add.l d3,d2 + add.l d2,d2 + swap d2 ;Z + ; + tst d2 + beq .loop + cmp #maxz,d2 + bcc .loop + ; + ext.l d0 + lsl.l #focshft,d0 + divs d2,d0 + cmp minx(pc),d0 + blt .loop + cmp maxx(pc),d0 + bge .loop + ; + ext.l d1 + lsl.l #focshft,d1 + divs d2,d1 + cmp miny(pc),d1 + blt .loop + cmp maxy(pc),d1 + bge .loop + ; + cmp #32,d2 + bcc.s .pix + ; + ;blit to screen! + ; + move #$4000,$dff09a + ; + bsr savernd + move.l window(pc),a0 + move wi_bh(a0),d0 + subq #8,d0 + bsr rndn + move d0,d2 ;Y + ; + move wi_bw(a0),d0 + subq #8,d0 + bsr rndn ;X + add wi_x(a0),d0 + move d2,d1 + ; + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #46,d2 + bsr blit + ; + bsr loadrnd + ; + move.l a5,a0 + killitem blood + move.l a0,a5 + ; + move #$c000,$dff09a + bra .loop +.pix ; + add midx(pc),d0 + add midy(pc),d1 + ; + move.l darktable(pc),a0 + move 0(a0,d2*2),d3 + ; + move.l cop(pc),a1 + ; + lea coloffs,a2 + add.l 0(a2,d0*4),a1 + mulu copmod(pc),d1 + ; + move blcols(pc,d3*2),d3 + and bl_color(a5),d3 + move d3,0(a1,d1.l) + bra .loop + ; +.done rts + +blcols dc $ccc,$bbb,$aaa,$999,$888,$777,$666,$555 + dc $444,$333,$222,$111,$000,$000,$000,$000 + +;blcols dc $fff,$eee,$ddd,$ccc,$bbb,$aaa,$999,$888 + dc $777,$666,$555,$444,$333,$222,$111,$000 + +drawshape_1sc ;draw shape with one frame, scaled! + ; + move.l ob_shape(a5),a0 + move ob_frame(a5),d0 + add.l 12(a0,d0*4),a0 + move ob_scale(a5),d7 + bra drawshape + +drawshape_1 ; + move.l ob_shape(a5),a0 + move ob_frame(a5),d0 + add.l 12(a0,d0*4),a0 + move #$200,d7 ;scale + bra drawshape + +drawshape_8 ; + ;shape has 8 rotations, and a scale! + ; + bsr calcangle2 + add #16,d0 + sub ob_rot(a5),d0 + lsr #5,d0 + and #7,d0 + move ob_frame(a5),d1 + lsl #3,d1 + or d1,d0 + move.l ob_shape(a5),a0 + move ob_scale(a5),d7 + ; + ifne aga + add.l 12(a0,d0*4),a0 + elseif + lsl #2,d0 + add.l 12(a0,d0),a0 + endc + ; +drawshape move ob_x(a5),d0 + move ob_y(a5),d1 + move ob_z(a5),d2 +drawshape_q ; + ;A0=shape + ;D0=X + ;D1=Y + ;D2=Z + ;D7=sclae factor + ; + ;rotate Z around camera! + ; + sub camx(pc),d0 + sub camy(pc),d1 + sub camz(pc),d2 + ; + move d0,d3 + move d2,d5 + muls cm3(pc),d3 + muls cm4(pc),d2 + add.l d3,d2 + add.l d2,d2 + swap d2 + ; + tst d2 + ble .rts + cmp #maxz,d2 + bcc .rts + ; + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 + ; + move.l memat(pc),a1 + add.l #sh_size,memat + movem d0-d2,sh_x(a1) + move.l a0,sh_shape(a1) + move d7,sh_scale(a1) + ; + lea shapelist(pc),a2 +.loop move.l (a2),d0 + beq.s .end + move.l a2,a3 + move.l d0,a2 + cmp sh_z(a2),d2 ;nearer...further in list + ble.s .loop + move.l a2,(a1) + move.l a1,(a3) + rts +.end move.l d0,(a1) + move.l a1,(a2) +.rts rts + +mover ; + ;d4=x speed + ;d5=z speed + ;d6=x + ;d7=z + ; + ;return d0, ne if a wall was hit! + ;check only walls zone (player) + ; + neg.l d4 + moveq #0,d3 + add.l d4,d6 + bsr checknew + beq.s .xok + moveq #-1,d3 + sub.l d4,d6 +.xok ; + add.l d5,d7 + bsr checknew + beq.s .zok + moveq #-1,d3 + sub.l d5,d7 +.zok tst d3 + rts + +checknew2 ;check trigger zone + move.l map_grid(pc),a0 + addq #4,a0 + bra.s checknew_ + +gs equ 1< furthest wall list. + ; + ;optimizations... + ;check if both z's are negative after rotation + ;check if projected left/rite ends are on screen + ; + addq #1,frame + ; + clr.l inlist + move.l #inlist,inlistf + ; + move.l map_poly(pc),a4 + move.l map_ppnt(pc),a3 + move.l map_grid(pc),a2 + movem camx(pc),d6-d7 ;x,z + lsr #grdshft,d6 + lsr #grdshft,d7 + lea gridoffs(pc),a6 + moveq #(gridoffsf-gridoffs)>>2-1,d5 + ; +.loop movem (a6)+,d0-d1 + add d6,d0 + cmp #32,d0 + bcc .skip + add d7,d1 + cmp #32,d1 + bcc .skip + ; + ;d0,d1=x/z of map to check! + ; + lsl #5,d1 ;Y*32... + add d1,d0 ;+X + lea 0(a2,d0*8),a0 ;mapgrid + move (a0)+,d4 ;how many polys here + bmi .skip + move (a0),d0 ;poly data offset + ; + ifne aga + lea 0(a3,d0*2),a0 + elseif + add d0,d0 + lea 0(a3,d0),a0 + endc + ; +.loop2 move (a0)+,d0 ;poly# + lsl #5,d0 + lea 0(a4,d0),a1 ;actual poly + move frame(pc),d0 + cmp zo_done(a1),d0 + beq .skip3 + move d0,zo_done(a1) + tst zo_open(a1) + bmi .skip3 + ; + ;OK, setup: + ; + ;d0=lx,d1=lz,d2=rx,d3=rz + ;d4=t,d5=sc,d6=dist + ; + ;back face/dist check... + ; + movem d4-d7,-(a7) + ; + movem zo_lx(a1),d0-d3 ;x1,z1,x2,z2 + movem camx(pc),d6-d7 + ; + sub d6,d0 + sub d7,d1 + sub d6,d2 + sub d7,d3 + ; + move d0,d4 + move d1,d5 + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 + ; + muls cm3(pc),d4 + muls cm4(pc),d1 + add.l d4,d1 + add.l d1,d1 + swap d1 ;LZ + ; + move d2,d4 + move d3,d5 + muls cm1(pc),d2 + muls cm2(pc),d5 + add.l d5,d2 + add.l d2,d2 + swap d2 ;RX + ; + muls cm3(pc),d4 + muls cm4(pc),d3 + add.l d4,d3 + add.l d3,d3 + swap d3 ;RZ + ; + ;check Z's... + tst d1 + bgt.s .zok + tst d3 + ble .skip2 +.zok ; + cmp #maxz,d1 + blt.s .zok2 + cmp #maxz,d3 + bge .skip2 +.zok2 ; + ;do backface check...generate a,b,c... + ; + rol.l #exshft,d0 + rol.l #exshft,d1 + rol.l #exshft,d2 + rol.l #exshft,d3 + ; + move d1,d4 + sub d3,d4 ;a + move d2,d5 + sub d0,d5 ;b + ; + move d0,d6 + muls d4,d6 + move d1,d7 + muls d5,d7 + add.l d7,d6 + bpl.s .front + ; + ;backface showing!... + bra .skip2 +.front ; + move.l memat(pc),a5 + ; + movem d0-d5,wl_lx(a5) + move.l d6,wl_c(a5) + ; + ;work out some screen positions! + tst d1 + bgt.s .z1ok + ; + ;lz bad, rz must be OK... + ; +.ov1 move minx(pc),wl_lsx(a5) + bra.s .z1sk + ; +.z1ok ext.l d0 + lsl.l #focshft,d0 + divs d1,d0 + bvs.s .ov1 + subq #1,d0 + cmp maxx(pc),d0 + bge .skip2 + move d0,wl_lsx(a5) +.z1sk ; + tst d3 + bgt.s .z2ok + ; + ;rz bad, lz must be OK... + ; +.ov2 move maxx(pc),wl_rsx(a5) + bra.s .z2sk + ; +.z2ok ext.l d2 + lsl.l #focshft,d2 + divs d3,d2 + bvs.s .ov2 + addq #1,d2 + cmp minx(pc),d2 + blt .skip2 + move d2,wl_rsx(a5) +.z2sk ; + cmp d1,d3 + bge.s .zskp + exg d1,d3 +.zskp movem d1/d3,wl_nz(a5) ;near/far Z + ; + move.l zo_t(a1),wl_t(a5) + move.l zo_t+4(a1),wl_t+4(a5) + move zo_sc(a1),wl_sc(a5) + move zo_open(a1),wl_open(a5) + ; + ;add to end of inlist... + ; + clr.l (a5) + move.l inlistf(pc),a1 + move.l a5,(a1) + move.l a5,inlistf + add.l #wl_size,memat + ; +.skip2 movem (a7)+,d4-d7 + ; +.skip3 dbf d4,.loop2 ;finish sq + ; +.skip dbf d5,.loop ;gridoffs + ; +makeoutlist ;create outlist from inlist + ; + clr.l outlist + move.l #outlist,outlistf + ; +.loop lea inlist(pc),a0 + move.l (a0),d0 + beq .done + move.l a0,a2 ;save previous! + move.l d0,a0 + ; + ;OK, see if any are in front of a0... + ; + lea inlist(pc),a1 + ; +.loop2 move.l (a1),d0 + beq .none + move.l a1,a3 + move.l d0,a1 + cmp.l a0,a1 + beq.s .loop2 ;don't compare with self! + ; + ;check screen pos overlap... + ; + move wl_rsx(a0),d0 + cmp wl_lsx(a1),d0 + blt .loop2 + ; + move wl_lsx(a0),d1 + cmp wl_rsx(a1),d1 + bgt .loop2 + ; + ;check near/far Z overlap + ; + move wl_nz(a1),d2 + cmp wl_fz(a0),d2 + bge .loop2 ;behind! + ; + move wl_fz(a1),d2 + cmp wl_nz(a0),d2 + ble .swap + ; + tst wl_open(a1) + bne .swap + ; + ;look at a0 points against a1 line... + ; + movem wl_a(a1),d5-d6 + move.l wl_c(a1),d7 + ; + move wl_lx(a1),d0 + sub wl_lx(a0),d0 + muls d5,d0 + move wl_lz(a1),d1 + sub wl_lz(a0),d1 + muls d6,d1 + add.l d1,d0 + eor.l d7,d0 + ; + move wl_lx(a1),d1 + sub wl_rx(a0),d1 + muls d5,d1 + move wl_lz(a1),d2 + sub wl_rz(a0),d2 + muls d6,d2 + add.l d2,d1 + eor.l d7,d1 + ; + ;if both a0 in front, no swap + ; + move.l d0,d4 + or.l d1,d4 + bpl .loop2 ;both a0's in front of a1! + ; + ;if both a0 behind, swap + ; + and.l d1,d0 + bmi .swap ;both a0's behind a1! + ; + ;look at a1 points against a0 line! + ; + movem wl_a(a0),d5-d6 + move.l wl_c(a0),d7 + ; + move wl_lx(a0),d2 + sub wl_lx(a1),d2 + muls d5,d2 + move wl_lz(a0),d3 + sub wl_lz(a1),d3 + muls d6,d3 + add.l d3,d2 + eor.l d7,d2 + ; + move wl_lx(a0),d3 + sub wl_rx(a1),d3 + muls d5,d3 + move wl_lz(a0),d4 + sub wl_rz(a1),d4 + muls d6,d4 + add.l d4,d3 + eor.l d7,d3 + ; + move.l d2,d4 + and.l d3,d4 + bmi .loop2 ;both a1's behind a0! + ; + or.l d3,d2 + bmi .loop2 + ; +.swap move.l a1,a0 + move.l a3,a2 + bra .loop2 + ; +.none ;OK, none in front of this (a0) + ; + move.l (a0),(a2) ;unlink from inlist + clr.l (a0) + ; + move.l outlistf(pc),a2 + move.l a0,(a2) + move.l a0,outlistf + bra .loop + ; +.done rts + + elseif + +makeoutlist2 ;create outlist from inlist + ; +.loop0 lea inlist(pc),a0 + ; +.loop move.l (a0),d0 + beq .done + move.l a0,a2 ;save previous! + move.l d0,a0 + ; + ;OK, see if any are in front of a0... + ; + lea inlist(pc),a1 + ; +.loop2 move.l (a1),d0 + beq .none + move.l a1,a3 + move.l d0,a1 + ; + cmp.l a0,a1 + beq.s .loop2 ;don't compare with self! + ; + ;see if a1 is in front of a0 + ; + move wl_nz(a1),d0 + cmp wl_fz(a0),d0 + bge .loop2 ;behind! + ; + move wl_fz(a1),d0 + cmp wl_nz(a0),d0 + ble .swap + ; + ;now, compare screen x coords..... + ; + move wl_rsx(a0),d0 + cmp wl_lsx(a1),d0 + blt .loop2 + ; + move wl_lsx(a0),d0 + cmp wl_rsx(a1),d0 + bgt .loop2 + ; + ;look at a0 points against a1 line + ; + ;If Sgn((x3-x1)*a2+(y3-y1)*b2)<>Sgn(c2) + ; If Sgn((x3-x2)*a2+(y3-y2)*b2)<>Sgn(c2) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + movem wl_a(a1),d5-d6 + move.l wl_c(a1),d7 + ; + move wl_lx(a1),d0 + sub wl_lx(a0),d0 + muls d5,d0 + move wl_lz(a1),d1 + sub wl_lz(a0),d1 + muls d6,d1 + add.l d1,d0 + eor.l d7,d0 + ; + move wl_lx(a1),d1 + sub wl_rx(a0),d1 + muls d5,d1 + move wl_lz(a1),d2 + sub wl_rz(a0),d2 + muls d6,d2 + add.l d2,d1 + eor.l d7,d1 + ; + ;OK, screen X's overlap... + ;if both a0 in front, no swap + ; + move.l d0,d4 + or.l d1,d4 + bpl .loop2 + ; + ;if both a0 behind, swap + ; + move.l d0,d4 + and.l d1,d4 + bmi .swap + ; + ;bra .loop2 + ; + ;elseif + ;look at a1 points against a0 line + ; + ;If Sgn((x1-x3)*a1+(y1-y3)*b1)=Sgn(c1) + ; If Sgn((x1-x4)*a1+(y1-y4)*b1)=Sgn(c1) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + movem wl_a(a0),d5-d6 + move.l wl_c(a0),d7 + ; + move wl_lx(a0),d2 + sub wl_lx(a1),d2 + muls d5,d2 + move wl_lz(a0),d3 + sub wl_lz(a1),d3 + muls d6,d3 + add.l d3,d2 + eor.l d7,d2 + ; + move wl_lx(a0),d3 + sub wl_rx(a1),d3 + muls d5,d3 + move wl_lz(a0),d4 + sub wl_rz(a1),d4 + muls d6,d4 + add.l d4,d3 + eor.l d7,d3 + ; + ;if both a1's behind, no swap + ; + move.l d2,d4 + and.l d3,d4 + bmi .loop2 ;both a1's behind... + ; + ;if both a1's in front, swap + move.l d2,d4 + or.l d3,d4 + bpl .swap + ; + bra .loop2 + ; + ;elseif + ; +.swap ;a1 is infront of a0! make a1 new frontmost + bra .loop + move.l a1,a0 + move.l a3,a2 + bra .loop2 + ; +.none ;OK, none in front of this (a0) + ; + move.l (a0),(a2) ;unlink from inlist + clr.l (a0) + move.l outlistf(pc),a2 + move.l a0,(a2) + move.l a0,outlistf + bra .loop0 + ; +.done ;move.l inlist(pc),d0 + ;bne .loop0 + rts + + elseif + +castwalls ;process 'walls' list + ; + move.l castrots(pc),a6 + move minx(pc),d7 + ; + ifne aga + lea 0(a6,d7*8),a6 + elseif + move d7,d0 + lsl #3,d0 + lea 0(a6,d0),a6 + endc + ; + move.l vertdraws(pc),a4 + ; +.loop ;do this vert line! + ; + lea outlist(pc),a5 + ; +.loop2 move.l (a5),d0 + beq .empty + move.l d0,a5 + ; + cmp wl_lsx(a5),d7 + blt.s .loop2 + cmp wl_rsx(a5),d7 + bgt.s .loop2 + ; + movem wl_lx(a5),d0-d1 + muls (a6),d0 + muls 2(a6),d1 + add.l d1,d0 ;LX! + bgt .loop2 + ; + movem wl_rx(a5),d1-d2 + muls (a6),d1 + muls 2(a6),d2 + add.l d2,d1 ;RX! + blt .loop2 + ; + sub.l d0,d1 + ; + swap d1 + tst d1 + ble.s .dfix + neg.l d0 + divu d1,d0 + bvc.s .noov +.dfix moveq #-1,d0 +.noov lsr #1,d0 ;fraction -> unsigned + ; + cmp wl_open(a5),d0 + bcs.s .loop2 + ; + movem wl_lx(a5),d1-d2 + muls 4(a6),d1 + muls 6(a6),d2 + add.l d2,d1 + add.l d1,d1 ;lz + ; + movem wl_rx(a5),d2-d3 + muls 4(a6),d2 + muls 6(a6),d3 + add.l d3,d2 + add.l d2,d2 ;rz + ; + sub.l d1,d2 + swap d2 + muls d0,d2 + add.l d2,d2 + add.l d1,d2 + ; + swap d2 + ; + cmp #exone,d2 + blt .loop2 + cmp #maxz<destlen? + bcc.s .skip + move.l fileheader+6(pc),d4 ;length to allocate +.skip ; + moveq #14,d6 + add fileheader+4(pc),d6 + bsr loadit + move.l d0,a0 ;src + add.l d6,d0 ;dest + move.l d0,a1 + jsr decrm+32 + pull + rts +.nocrunch ; + bsr loadit + ; +.err pull + rts + +loadit ;d4=length to alloc/read, d5=memtype + ;seek to start, load, close and return base in d0. + ; + move.l loadmem(pc),d0 + bne.s .noalloc + ; + move.l d4,d0 + move.l d5,d1 + move.l d6,d2 ;offset XS + allocmem2 loadfile + sub.l d6,d0 +.noalloc ; + move.l d7,d1 + move.l d0,d2 + move.l d4,d3 ;read len + jsr -42(a6) ;read + move.l d7,d1 + jsr -36(a6) ;close + move.l d2,d0 + ; + rts + +andtable dc $ffff,0 ;rgb and, brightness add...wht + dc $ff00,8 ;red + +makepalettes ; + ;make wht and red pals + ; + ;create pointers... + ; + lea palettes(pc),a0 + move.l map_rgbs(pc),d0 + lea palettesw(pc),a1 + move.l map_rgbsw(pc),d1 + lea palettesr(pc),a2 + move.l map_rgbsr(pc),d2 + ; + moveq #15,d7 + ; +.loop move.l (a0)+,d3 + sub.l d0,d3 ;offset! + move.l d3,d4 + add.l d1,d3 + move.l d3,(a1)+ + add.l d2,d4 + move.l d4,(a2)+ + ; + dbf d7,.loop + ; + move.l map_rgbsend(pc),d7 + sub.l map_rgbs(pc),d7 ;how many bytes! + lsr #1,d7 + subq #1,d7 ;words! + ; + move.l map_rgbsw(pc),a1 + move #$ffff,d1 ;col and + move #0,d2 ;gamma + bsr makeapal + ; + move.l map_rgbsr(pc),a1 + move #$ff00,d1 + moveq #16,d2 + bsr makeapal + ; + rts + +makeapal move.l map_rgbs(pc),a0 + ; +.loop move (a0)+,d4 ;src colour...find briteness + ; + move d4,d5 + move d4,d6 + and #$f00,d4 + lsr #8,d4 + and #$0f0,d5 + lsr #4,d5 + and #$00f,d6 + add d6,d5 + add d5,d4 + add d2,d4 + cmp #16*3,d4 + bcs.s .bok + moveq #16*3-1,d4 +.bok ext.l d4 + divu #3,d4 ;(r+g+b)/3=briteness! + ; + move d4,d5 + move d4,d6 + lsl #8,d4 + lsl #4,d5 + or d6,d5 + or d5,d4 ;RGB + and d1,d4 + ; + move d4,(a1)+ + ; + cmp.l map_rgbsend(pc),a0 + bcs.s .loop + ; + rts + +calcpalettes ;OK, our palette currently runs from: + ; + ;map_rgbs + ; to + ;map_rgbsat + ; + ;append brightness versions... + ; + lea palettes(pc),a2 + move.l map_rgbs(pc),(a2)+ ;first brightness! + move.l map_rgbsat(pc),a1 ;first brightness! + move.l a1,a3 + moveq #1,d0 ;rgb subtract + ; +.loop move.l map_rgbs(pc),a0 + move.l a1,(a2)+ + ; +.loop2 move (a0)+,d1 + move d1,d2 + move d1,d3 + ; + and #$f00,d1 + lsr #8,d1 + sub d0,d1 + bpl.s .rok + moveq #0,d1 +.rok ; + and #$f0,d2 + lsr #4,d2 + sub d0,d2 + bpl.s .gok + moveq #0,d2 +.gok ; + and #$0f,d3 + sub d0,d3 + bpl.s .bok + moveq #0,d3 +.bok ; + lsl #8,d1 + lsl #4,d2 + or d3,d2 + or d2,d1 + or #$8000,d1 + ; + move d1,(a1)+ + cmp.l a3,a0 + bcs.s .loop2 + ; + addq #1,d0 + cmp #16,d0 + bcs.s .loop + ; + move.l a1,map_rgbsend + ; + rts + +map_rgbsend dc.l 0 + +dispoff tst dispnest + bne.s .skip + bsr vwait + move #$01a0,$dff096 +.skip addq #1,dispnest + rts + +dispon subq #1,dispnest + bgt.s .skip + bsr vwait + move.l coplist(pc),$dff080 + move #$8180,$dff096 + move #0,$dff088 +.skip rts + +forbid push + moveq #49,d0 +.fl bsr vwait + dbf d0,.fl + bsr ownblitter + move.l 4.w,a6 + jsr -132(a6) + move #$8400,$dff096 + pull + rts + +permit push + move.l rawstuff,a0 + clr.l $70(a0) + move.l 4.w,a6 + jsr -138(a6) + bsr disownblitter + pull + rts + +initvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -168(a6) ;addintserver + pull + rts + +vbcounter dc 0 +framecnt dc 0 + +frame dc 0,0 + +vbintserver dc.l 0,0 + dc.b 2,0 + dc.l 0 +vbintdata dc.l vbcounter +vbintcode dc.l vbhandler + +finitvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -174(a6) + pull + rts + +ownblitter push + move.l grbase,a6 + jsr -456(a6) + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + pull + rts + +disownblitter push + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + move.l grbase,a6 + jsr -462(a6) + pull + rts + +makecoloffs push + ; + ifne aga + ; + lea coloffs,a0 + moveq #2,d0 + moveq #3,d2 +.loop addq.l #4,d0 + moveq #31,d1 +.loop2 move.l d0,(a0)+ + addq.l #4,d0 + dbf d1,.loop2 + dbf d2,.loop + ; + elseif + ; + lea coloffs,a0 + moveq #18,d0 + moveq #127,d1 + ; +.loop move.l d0,(a0)+ + addq.l #4,d0 + dbf d1,.loop + ; + endc + ; + pull + rts + +grname dc.b 'graphics.library',0 + even +grbase dc.l 0 +oldview dc.l 0 +dosname dc.b 'dos.library',0 + even +dosbase dc.l 0 + +calcbpos ;also: calc qstripbot, con0poke... + ; + move window1+wi_h,d0 + add d0,d0 + ext.l d0 + add.l qstrip(pc),d0 + move.l d0,qstripbot + ; + move #$100,con0poke + move floorflag(pc),d0 + and roofflag(pc),d0 + bne.s .cp + move #$9f0,con0poke ;one of them is cop strip! +.cp ; + move window1+wi_y,d0 + subq #4,d0 + move d0,minbpos + tst twowins + beq.s .p1 + ; + move window2+wi_y,d0 + add window2+wi_bh,d0 + addq #4,d0 + move d0,maxbpos + rts + ; +.p1 move window1+wi_y,d0 + add window1+wi_bh,d0 + addq #4,d0 + move d0,maxbpos + ; + rts + +showwindow ;a0=window + ; + push + ; + ifne aga + ; + ;poke bitmaps... + move.l wi_slice(a0),a1 + move.l (a1),a1 + move.l wi_bmap(a0),d0 + moveq #6,d1 ;7 bitplanes +.loop move d0,6(a1) + swap d0 + move d0,2(a1) + swap d0 + add.l #40,d0 + addq #8,a1 + dbf d1,.loop + ; + ;create DIW + ; + move.l wi_slice(a0),a1 + move.l (a1),a1 + ; + move wi_y(a0),d0 + move d0,d1 + add wi_bh(a0),d1 + lsl #8,d0 + or #$81,d0 + move d0,56+2(a1) + lsl #8,d1 + or #$c1,d1 + move d1,56+6(a1) + ; + move wi_y(a0),d0 + subq #3,d0 + move.b d0,64(a1) + ; + endc + ; + ;create link to next! + move.l wi_nslice(a0),a1 + move.l (a1),d0 + move.l wi_cop1(a0),a1 + add.l wi_copmem(a0),a1 + move.l wi_cop2(a0),a2 + add.l wi_copmem(a0),a2 + move d0,-6(a1) + move d0,-6(a2) + swap d0 + move d0,-10(a1) + move d0,-10(a2) + ; + pull + ; +showwindowq ;display coplist + ; + move.l wi_cop(a0),d0 + move.l wi_slice(a0),a0 + move.l (a0),a0 + ; + ifne aga + ; + move d0,72+6(a0) + swap d0 + move d0,72+2(a0) + ; + elseif + ; + move d0,6(a0) + swap d0 + move d0,2(a0) + ; + endc + ; + rts + +finitdisplay push + ; + move.l grbase,a6 + move.l oldview,a1 + jsr -222(a6) ;load view + jsr -270(a6) + jsr -270(a6) + move.l 38(a6),$dff080 + move #$81a0,$dff096 + move #0,$dff088 + ; + pull + rts + +initdisplay push + ; + lea grname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,grbase + ; + move.l d0,a6 + move.l 34(a6),oldview + sub.l a1,a1 + jsr -222(a6) ;loadview + ; + move.l #copinitf-copinit,d0 + moveq #2,d1 + allocmem copinit + move.l d0,coplist + ; + move.l d0,a1 + lea copinit,a0 + lea copinitf,a2 + ; +.loop cmp.l a2,a0 + bcc.s .done + move.l (a0)+,(a1)+ + bra.s .loop +.done ; + add.l #sl1-copinit,d0 + move.l d0,slice1 + add.l #sl2-sl1,d0 + move.l d0,slice2 + add.l #cstop-sl2,d0 + move.l d0,copstop + ; + move.l copstop,d0 + move.l slice1,a0 + move.l slice2,a1 + ; + ifne aga + ; + move d0,72+6(a0) + move d0,72+6(a1) + swap d0 + move d0,72+2(a0) + move d0,72+2(a1) + ; + elseif + ; + move d0,6(a0) + move d0,6(a1) + swap d0 + move d0,2(a0) + move d0,2(a1) + ; + endc + ; + jsr -270(a6) + jsr -270(a6) + move.l coplist,$dff080 + move #0,$dff088 + ; + pull + rts + +allocwbmap move wi_w(a2),d0 + mulu wi_pw(a2),d0 + move d0,wi_bw(a2) + ; + move wi_h(a2),d0 + mulu wi_ph(a2),d0 + move d0,wi_bh(a2) + ; + mulu #40*7,d0 + ; + move.l #$10002,d1 + move.l d0,wi_bmapmem(a2) + allocmem wi_bmap + move.l d0,wi_bmap(a2) + ; + move.l #40*7*7,d0 + moveq #2,d1 + allocmem wi_strip + move.l d0,wi_strip(a2) + ; + rts + +windowiff ;draw iff into window! + ; + move.l wi_iff(a2),a0 + cmp.l #1,a0 + bne.s .do + rts + ; +.do move.l wi_bmap(a2),a1 + ; + move 2(a0),d1 + cmp #240,d1 + bcs.s .skip + move #240,d1 +.skip move #120,d2 + lsr #1,d1 + sub d1,d2 + mulu #7*40,d2 + add.l d2,a1 + ; +decodeiff ;for 40 columns... + ; + ;a0=trimmed IFF file, + ;a1=destination bitmap... + ; + move.l a2,-(a7) + moveq #40,d7 + ; + move (a0)+,d0 ;pixel width + lsr #3,d0 ;to byte width + move (a0)+,d1 ;pixel height + cmp #240,d1 + bls.s .hok + move #240,d1 +.hok subq #1,d1 ;to dbf + move (a0)+,d2 ;depth + subq #1,d2 ;to dbf + addq #6,a0 ;skip header + ; +.loop5 move d2,d5 ;depth + ; +.loop4 move.l a1,a2 + move d0,d4 ;how many bytes in line + ; +.loop moveq #0,d3 + move.b (a0)+,d3 + bmi.s .repeat + sub d3,d4 +.loop3 move.b (a0)+,(a2)+ + dbf d3,.loop3 + bra.s .skip + ; +.repeat cmp.b #-128,d3 + beq.s .loop + neg.b d3 + sub d3,d4 +.loop2 move.b (a0),(a2)+ + dbf d3,.loop2 + addq #1,a0 +.skip subq #1,d4 + bgt.s .loop + ; + add d7,a1 + dbf d5,.loop4 + dbf d1,.loop5 + ; + move.l (a7)+,a2 + rts + +plotwbmap ;OK, plot colours on bitmap! + ; + tst.l wi_iff(a2) + bne windowiff + ; + move.l wi_bmap(a2),a0 + move wi_x(a2),d0 + move d0,d1 + lsr #3,d0 + not d1 + and #7,d1 + moveq #127,d7 ;colour + move wi_w(a2),d6 ;width + subq #1,d6 + ; +.wloop move wi_pw(a2),d5 + subq #1,d5 + ; +.wloop2 move d7,d4 + moveq #6,d3 + ; +.dloop bclr d1,0(a0,d0) + lsr #1,d4 + bcc.s .dskip + bset d1,0(a0,d0) +.dskip lea 40(a0),a0 + dbf d3,.dloop + ; + lea -40*7(a0),a0 + subq #1,d1 + bpl.s .dskip2 + moveq #7,d1 + addq #1,d0 +.dskip2 dbf d5,.wloop2 + ; + subq #1,d7 + dbf d6,.wloop + ; + move wi_bh(a2),d0 ;how many to copy + subq #1,d0 + bsr wcopy + ; + move.l wi_bmap(a2),a0 + move.l wi_strip(a2),a1 + move wi_bh(a2),d0 + lsr #2,d0 + mulu #7*40,d0 + add.l d0,a0 + move #7*7*10-1,d2 + ; +.loop move.l (a0)+,(a1)+ + dbf d2,.loop + ; + rts + +wcopy ;copy top scanline to next d0 scanlines + ; + move.l wi_bmap(a2),a0 + mulu #10*7,d0 + subq #1,d0 + lea 40*7(a0),a1 +.cbloop move.l (a0)+,(a1)+ + dbf d0,.cbloop + ; + rts + +freewindow ;window in a0 + ; + push + move.l a0,a2 + move.l wi_bmap(a2),d0 + beq.s .no1 + clr.l wi_bmap(a2) + move.l d0,a1 + freemem wi_bmap +.no1 move.l wi_strip(a2),d0 + beq.s .no2 + clr.l wi_strip(a2) + move.l d0,a1 + freemem wi_strip +.no2 move.l wi_cop1(a2),d0 + beq.s .no3 + clr.l wi_cop1(a2) + move.l d0,a1 + freemem wi_cop +.no3 pull + rts + + ifne aga + ; +agawindow ; +makewindow ;AGA make window + ; + ;a0=window struct! + ; + push + ; + move.l a0,a2 + ; + bsr allocwbmap + bsr plotwbmap + ; + tst.l wi_iff(a2) + beq wchunky + ; + ;make a palette coplist for the window + ; + ;to write 32 colours... + ;set bank, write hi nybs, set bank, write lo nybs... + ;=66 copins. + ;*4=264 total + ;+1 for final wait +3 for final copjump=268 + ; + move.l #268<<2,d0 + move.l d0,wi_copmem(a2) + moveq #2,d1 + allocmem wi_iffcop + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + move.l d0,wi_cop2(a2) + move.l d0,a0 ;dest + move.l wi_pal(a2),a1 ;palette! + ; + moveq #0,d0 ;bank + moveq #3,d3 + ; +.loop move #$106,(a0)+ + move d0,(a0)+ + move #$180,d1 + moveq #31,d2 +.hiloop move d1,(a0)+ + move (a1),(a0)+ + addq #4,a1 + addq #2,d1 + dbf d2,.hiloop + ; + lea -128+2(a1),a1 + move #$106,(a0)+ + bset #9,d0 + move d0,(a0)+ + bclr #9,d0 + move #$180,d1 + moveq #31,d2 +.loloop move d1,(a0)+ + move (a1),(a0)+ + addq #4,a1 + addq #2,d1 + dbf d2,.loloop + subq #2,a1 + ; + add #$2000,d0 ;next bank! + dbf d3,.loop + ; + move.l #$fffffffe,(a0)+ + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + pull + rts + ; +wchunky ;how many copins on one line? + ; + move wi_w(a2),d0 + move d0,d1 + subq #1,d0 + lsr #5,d0 ;how many bank changes per line! + addq #3,d0 ;1 waits - 1 eor, 1 init bank select + add d1,d0 ;+colpokes + ; + move d0,d1 + lsl #2,d1 + move d1,wi_copmod(a2) + ; + mulu wi_h(a2),d0 + addq #4,d0 ;1 wait and cop jump at end + ; + lsl.l #2,d0 ;4 bytes/copins + moveq #2,d1 ;cop in chip + move.l d0,wi_copmem(a2) + lsl.l #1,d0 ;2 coplists! + allocmem wi_chunkycop + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + ; + move.l d0,a0 + move wi_y(a2),d6 + move wi_h(a2),d7 + subq #1,d7 + move #$111,d3 ;test colour + move #$8000,d4 ;Colour Eor + ; +.hloop ;make one copline... + ; + moveq #127,d0 ;colour reg to poke + move wi_w(a2),d1 + subq #1,d1 + ; +.lloop move d0,d2 + addq #1,d2 + and #31,d2 + bne.s .notnbank + ; + ;new bank.... + move d0,d2 + sub #31,d2 + and #$ffe0,d2 + lsl #8,d2 + or d4,d2 ;eor bank + move #$106,(a0)+ ;bank select + move d2,(a0)+ + ; +.notnbank move d0,d2 + and #31,d2 + add d2,d2 + add #$180,d2 + move d2,(a0)+ ;colour poke + move d3,(a0)+ + add #$111,d3 + subq #1,d0 + dbf d1,.lloop + ; + bsr .makewait + ; + ;ok, now do EOR! + move #$10c,(a0)+ + move d4,(a0)+ + bchg #15,d4 + ; + dbf d7,.hloop + ; + bsr .makewait + ; + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + ; + ;OK, 1 list created...copy to other! + ; + move.l wi_cop1(a2),a0 + move.l a0,a1 + add.l wi_copmem(a2),a1 + move.l a1,wi_cop2(a2) + move.l a1,a3 + ; +.copycop move.l (a0)+,(a3)+ + cmp.l a1,a0 + bcs.s .copycop + ; + pull + rts + +.makewait ; + ;make wait ins. at pos d6 + ; + subq #1,d6 + move.b d6,(a0)+ + move.b #$e1,(a0)+ + move #$fffe,(a0)+ + addq #1,d6 + add wi_ph(a2),d6 + rts + + elseif + +ecswindow +makewindow ;ECS makewindow...no bitmap needed! + ; + ;a0=window struct + ; + push + ; + move.l a0,a2 + ; + ;how many copins on one line? + ; + ;2 waits... + ;width moves + ;1 colour 0 poke... + ; + ;=width+3! + ; + move wi_w(a2),d0 + addq #7,d0 + ; + move d0,d1 + lsl #2,d1 + move d1,wi_copmod(a2) + ; + mulu wi_h(a2),d0 + addq #4,d0 ;1 waits at begin and cop jump + ;at end + ; + lsl.l #2,d0 ;4 bytes/copins + moveq #2,d1 ;cop in chip + move.l d0,wi_copmem(a2) + lsl.l #1,d0 ;2 coplists! + allocmem wi_chunkycop + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + ; + move.l d0,a0 + move #$47,d5 + sub wi_w(a2),d5 + add d5,d5 + or #1,d5 + move wi_y(a2),d6 + move wi_h(a2),d7 + subq #1,d7 + ; + moveq #0,d3 + move #$fffe,d4 + bsr .makewait ;wait! + ; +.hloop ;make one copline... + cmp #128,d6 + ble.s .yn + move.b #$80,d3 +.yn ; + move.l a0,d2 ;prepare jump address + addq.l #8,d2 + ; + move #$084,(a0)+ + swap d2 + move d2,(a0)+ + move #$086,(a0)+ + swap d2 + move d2,(a0)+ + ; + ;wait for start X pos... + ; + move.b d3,(a0)+ + move.b d5,(a0)+ + move #$80fe,(a0)+ + ; + move wi_w(a2),d1 + subq #1,d1 + ; +.lloop move.l #$1800f00,(a0)+ + dbf d1,.lloop + move #$180,(a0)+ + move #col0,(a0)+ + ; + move.b d3,(a0)+ + move.b #$e1,(a0)+ + move #$80fe,(a0)+ ;wait for end of line! + ; + move #$ffff,d4 ;skip! + bsr .makewait + move.l #$8a0000,(a0)+ ;strobe! + ; + dbf d7,.hloop + ; + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + ; + ;OK, 1 list created...copy to other! + ; + move.l wi_cop1(a2),a0 + move.l a0,a1 + add.l wi_copmem(a2),a1 + move.l a1,wi_cop2(a2) + move.l a1,a3 + ; + move.l a1,d0 + sub.l a0,d0 + ; +.copycop move.l (a0)+,(a3)+ + cmp #$084,-8(a3) + bne.s .noafix + move -6(a3),d2 + swap d2 + move -2(a3),d2 + add.l d0,d2 + move d2,-2(a3) + swap d2 + move d2,-6(a3) +.noafix cmp.l a1,a0 + bcs.s .copycop + ; + pull + rts + +.makewait ; + ;make wait ins. at pos d6 + ;cmp #256,d6 + ;blt.s .not256 + ;move.l #$ffe1fffe,(a0)+ + ;add wi_ph(a2),d6 + ;rts + ; +.not256 move.b d6,(a0)+ + move.b #1,(a0)+ + move d4,(a0)+ ;wait/skip + add wi_ph(a2),d6 + rts + + endc + +allocmem2_ ; + ;as below, but d2.l = extra mem at start to set aside + ; + push + moveq #16,d3 + add.l d2,d3 + bra.s amem_ + +allocmem_ ; + ;d0=size, d1=requirements, a0=text field + ; + ;set up node before allocmem for quick freemem: + ; + ;00.l : next + ;04.l : real size + ;08.l : offset to user mem (normally 16, but CM fucks things up) + ;12.l : pointer to text field for debugging + ; + push + moveq #16,d3 ;offset + ; +amem_ move.l a0,d4 + add.l d3,d0 + ; + move.l d0,d2 ;len + move.l a0,d4 ;text + move.l 4.w,a6 + jsr -198(a6) + tst.l d0 + bne.s .skip + ; + warn #$f00 + ; +.skip move.l d0,a0 + move.l memlist,(a0) ;next + move.l a0,memlist + movem.l d2-d4,4(a0) + add.l d3,a0 + move.l a0,d0 + ; + pull + rts + +freememlist push + ; +.more move.l memlist,d0 + beq.s .done + move.l d0,a2 + ; + ifne debugmem + move.l 12(a2),a0 ;text field + move.l a0,d2 + moveq #-1,d3 +.loop addq.l #1,d3 + tst.b (a0)+ + bne.s .loop + ; + move.l outhand,d1 + move.l dosbase,a6 + jsr -48(a6) + endc + ; + move.l a2,a1 + ; + move.l (a1),memlist + move.l 4(a1),d0 + move.l 4.w,a6 + jsr -210(a6) + bra.s .more + ; +.done pull + rts + +freemem_ ; + ;a1=address to free! + ; + push + ; + ifne debugmem + move.l a0,-(a7) ;error mess + elseif + endc + ; + move.l a1,a2 ;mem to find! + lea memlist(pc),a1 + ; +.more move.l a1,a0 ;prev + move.l (a1),d0 + beq.s .err + move.l d0,a1 + ; + move.l a1,a3 + add.l 8(a3),a3 + cmp.l a3,a2 + bne.s .more + ; + move.l (a1),(a0) + move.l 4(a1),d0 + move.l 4.w,a6 + jsr -210(a6) + bra.s .done + ; +.err warn #$ff0 + ifne debugmem + move.l (a7),freememerr + endc +.done ; + ifne debugmem + addq #4,a7 + endc + ; + pull + rts + +freememerr dc.l 0 + +initmap ;map address in map_map... + ;load in textures, do colour mapping etc. + ; + push + ; + move.l map_map,a0 + ; + move.l a0,a1 + add.l (a0),a1 + move.l a1,map_grid + ; + move.l a0,a1 + add.l 4(a0),a1 + move.l a1,map_poly + ; + move.l a0,a1 + add.l 8(a0),a1 + move.l a1,map_ppnt + ; + move.l a0,a1 + add.l 12(a0),a1 + move.l a1,map_anim + ; + move.l a0,a1 + add.l 16(a0),a1 + move.l a1,map_txts + ; + move.l (a0),d0 + sub.l #25*4,d0 + add.l a0,d0 + move.l d0,map_events + ; + move.l map_rgbsfrom,map_rgbsat + ; + pull + rts + +freetxts lea textscrns,a6 + moveq #7,d7 +.loop move.l (a6)+,d0 + beq.s .skip + move.l d0,a1 + freemem freetxts + clr.l -4(a6) +.skip dbf d7,.loop + rts + +loadtxts push + ; + lea textures,a4 + move.l map_txts,a5 ;texture names + lea textscrns,a6 + moveq #7,d7 + ; +.ltl lea .temp(pc),a0 + ; +.ltl2 move.b (a5)+,(a0)+ + bne.s .ltl2 + moveq #0,d0 + cmp.l #.temp+1,a0 + beq.s .notext + lea .temp2(pc),a0 + moveq #1,d1 + jsr loadfile + ; +.notext move.l d0,(a6)+ ;texture! + beq.s .skip + ; + ;do colour mapping stuff! + ; + move.l d0,-(a7) + ; + move.l d0,a0 + add.l (a0),a0 + move.l a0,a2 + bsr addpal + ; + move.l (a7),a0 + addq #4,a0 + move.l a2,a1 + bsr remap + ; + move.l (a7)+,a0 + addq #4,a0 + moveq #19,d0 + move.l #64*65,d1 + ; +.mtxt move.l a0,(a4)+ + add.l d1,a0 + dbf d0,.mtxt +.skip ; + dbf d7,.ltl + ; + pull + rts + +.temp2 dc.b 'txts/' +.temp ds.b 64 + even + +remapanim ;a0=anim to remap... + ; + push + ; + move.l a0,a6 + movem (a6),d6-d7 + lsl d6,d7 ;how many frames! + subq #1,d7 + ; + move.l a6,a0 + add.l an_pal(a0),a0 + bsr addpal + ; + lea an_size(a6),a5 + ; +.loop move.l a6,a0 + add.l (a5)+,a0 ;start of shape + addq #4,a0 ;skip handles + movem (a0)+,d0-d1 ;w/h + mulu d1,d0 + lea 0(a0,d0.l),a1 ;end + bsr remap + ; + dbf d7,.loop + ; + pull + rts + +remap ;a0=start of byte data, a1=end of byte data + ; + push + ; + moveq #0,d0 + move.l maptable,a2 + ; +.loop cmp.l a1,a0 + bcc.s .done + move.b (a0),d0 + move.b 0(a2,d0),(a0)+ + bra.s .loop +.done ; + pull + rts + +addpal ;add palette in a0 to end of map_rgb + ; + push + ; + move (a0)+,d0 + subq #1,d0 + move.l map_rgbsat,a2 ;end of rgbs + move.l maptable,a3 + ; + clr.b (a3) ;0=0 + move.b #255,255(a3) ;-1=-1 + move.b #254,254(a3) ;-1=-1 + move.b #253,253(a3) ;-1=-1 + move.b #252,252(a3) ;-1=-1 + move.b #251,251(a3) ;-1=-1 + move.b #250,250(a3) ;-1=-1 + move.b #249,249(a3) ;-1=-1 + ; + moveq #1,d2 ;colour 1! + ; +.loop move (a0)+,d1 ;colour...does it exist? + bmi.s .next ;not used! + move.l map_rgbs,a1 + ; +.loop2 cmp.l a2,a1 + bcc.s .no + cmp (a1)+,d1 + beq.s .yes + bra.s .loop2 + ; +.no ;colour doesn't exist! + ;may have to do a 'near match' routine if we run out of colours + ; + move d1,(a2)+ + move.l a2,a1 + ; +.yes subq #2,a1 + sub.l map_rgbs,a1 + move.l a1,d1 + lsr #1,d1 ;real colour + ; + cmp #256,d1 + bcs.s .ok + ; + warn #$00f + ; +.ok move.b d1,0(a3,d2) + ; +.next addq #1,d2 + dbf d0,.loop + ; + move.l a2,map_rgbsat + ; + pull + rts + + ;coll types... + ; + ;1...bullet from player 1 + ;2...bullet from player 2 + ;4...bullet from monster + ;8...player 1 + ;16..player 2 + ; + + dc.l 0,player,tokens + ; +objlist ;list of objects to be freed... + ; + dc.l marine,baldy,terra,ghoul,demon,phantom,0 + +player dc.l 0,0 ;main, chunks + dc.b 'objs/player',0,0 + even +tokens dc.l 0,0 + dc.b 'objs/tokens',0,0 + even +marine dc.l 0,0 + dc.b 'objs/marine',0,0 + even +baldy dc.l 0,0 + dc.b 'objs/baldy',0,0 + even +terra dc.l 0,0 + dc.b 'objs/terra',0,0 + even +ghoul dc.l 0,0 + dc.b 'objs/ghoul',0,0 + even +demon dc.l 0,0 + dc.b 'objs/demon',0,0 + even +phantom dc.l 0,0 + dc.b 'objs/phantom',0,0 + even + +objinfo +player1_ dc.l player1 +.ob_rotspeed dc.l $40000 +.ob_movspeed dc.l $d0000 +_ob_shape dc.l player +.ob_logic dc.l playerlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l playerhit +.ob_die dc.l playerdie + ; +.ob_eyey dc -110 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 8 +p1_ob_collwith dc 6 ;6=combat, 4=game +p1_ob_cntrl dc 1 ;for player 0,1=joyport, 2=keys +.ob_damage dc 1 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 1 +.ob_range dc 1 +.ob_weapon dc 0 ;weapon type...0...25 +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 ;4! +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +objinfof + +oilen equ objinfof-objinfo + +player2_ dc.l player2 +.ob_rotspeed dc.l $40000 +.ob_movspeed dc.l $d0000 +.ob_shape dc.l player +.ob_logic dc.l playerlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l playerhit +.ob_die dc.l playerdie +.ob_eyey dc -110 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 16 +p2_ob_collwith dc 5 ;5=combat, 4=game +p2_ob_cntrl dc 0 ;for player 0,1=joyport, 2=keys, 3=null +.ob_damage dc 1 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 1 +.ob_range dc 1 +.ob_weapon dc 0 ;weapon type... +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 ;4! +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +health_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l healthgot +.ob_die dc.l healthgot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $30000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +weapon_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $50000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +thermo_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l thermogot +.ob_die dc.l thermogot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $10000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +infra_ ds.b oilen + +invisi_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l invisigot +.ob_die dc.l invisigot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $20000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +invinc_ ds.b oilen + +blank1_ ds.b oilen + +blank2_ ds.b oilen + +marine_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $60000 +.ob_shape dc.l marine +.ob_logic dc.l monsterlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 1 +.ob_hitpoints dc 5 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 16 +.ob_range dc 32 +.ob_weapon dc 0 ;weapon type... +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +baldy_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $40000 +.ob_shape dc.l baldy +.ob_logic dc.l baldylogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 2 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_wlevel dc 0 +.ob_hurtpause dc 3 +.ob_punchrate dc 4 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $220 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +terra_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $20000 +.ob_shape dc.l terra +.ob_logic dc.l terralogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 1 +.ob_hitpoints dc 12 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 32 +.ob_range dc 48 +.ob_weapon dc 0 ;weapon type... +.ob_wlevel dc 0 +.ob_hurtpause dc 0 +.ob_firerate dc 12 ;how often terra fires +.ob_bouncecnt dc 0 ;how many times +.ob_firecnt dc 5 +.ob_scale dc $280 +.ob_apad dc 0 +.ob_blood dc $fff ;color AND for blood +.ob_ypad dc 1 + +ghoul_ dc.l dummy +.ob_rotspeed dc.l $0 +.ob_movspeed dc.l $a0000 +.ob_shape dc.l ghoul +.ob_logic dc.l ghoullogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtghoul +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -64 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l 0 +.ob_base dc 32 +.ob_range dc 48 +.ob_weapon dc 0 ;weapon type... +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_firerate dc 12 ;how often terra fires +.ob_bouncecnt dc 0 ;how many times +.ob_firecnt dc 5 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $0f0 ;color AND for blood +.ob_ypad dc 1 + +phantom_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $a0000 +.ob_shape dc.l phantom +.ob_logic dc.l phantomlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 3 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $a000 +.ob_base dc 8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_wlevel dc 0 +.ob_hurtpause dc 7 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $280 +.ob_apad dc 0 +.ob_blood dc $ff0 ;color AND for blood +.ob_ypad dc 1 + +demon_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $50000 +.ob_shape dc.l demon +.ob_logic dc.l demonlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -90 ;where bullets come from +.ob_gutsy dc -72 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 5 +.ob_hitpoints dc 15 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $5000 +.ob_base dc 32 +.ob_range dc 4 +.ob_weapon dc 0 ;weapon type... +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $380 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +abouttext dc.b 14 + dc.b 'GLOOM',0 + dc.b 0 + dc.b 'A BLACK MAGIC GAME',0 + dc.b 0 + dc.b 'PROGRAMMED BY MARK SIBLY',0 + dc.b 'GRAPHICS BY THE BUTLER BROTHERS',0 + dc.b 'MUSIC BY KEV STANNARD',0 + dc.b 'AUDIO BY US',0 + dc.b 'PRODUCED BY US',0 + dc.b 'DESIGNED BY US',0 + dc.b 'GAME CODED IN DEVPAC2',0 + dc.b 'UTILITIES CODED IN BLITZ BASIC 2',0 + dc.b 'RENDERED IN DPAINT3 AND DPAINT4',0 + dc.b 'DECRUNCHING CODE BY THOMAS SCHWARZ',0 + even + +sqrinc incbin sqr.bin + +groundtile incbin tile2.bin +ceilingtile incbin tile.bin + +bullet1 incbin bullet1.bin +bullet2 incbin bullet2.bin +bullet3 incbin bullet3.bin +bullet4 incbin bullet4.bin +bullet5 incbin bullet5.bin + +sparks1 incbin sparks1.bin +sparks2 incbin sparks2.bin +sparks3 incbin sparks3.bin +sparks4 incbin sparks4.bin +sparks5 incbin sparks5.bin + +gloombrush incbin gloombrush + +gloom incbin title +gloompal incbin title.pal + +combat incbin combat +combatpal incbin combat.pal + +medplayer incbin medplay +decrm incbin decrm + +castrotsinc incbin castrots.bin +camrotsinc incbin camrots.bin ;256 +camrots2inc incbin camrots2.bin ;1024 + +rgbs16 ds.l 16 +map_rgbs_ ds.w 256*16 diff --git a/gloom.s.vg b/gloom.s.vg new file mode 100644 index 0000000..0ed27d2 --- /dev/null +++ b/gloom.s.vg @@ -0,0 +1,8959 @@ + + ;OK, add a chunky to planar option! + ;A500 etc. here we come! + ; + ;this'll require: + ; + ;user can select: + ; + ;internal error codes: + ; + ;red - allocmem failed + ;yel - freemem failed + ;orange - unknown script command + ;purp - unknown event command + ;cyn - can't open file in loadfile + ;blu - ran out of remap colours! + ; +aga equ -1 +debugmem equ 0 +maxobjects equ 256 ;max objects in game +maxdoors equ 16 ;max doors opening at once +maxblood equ 128 ;max droplets of bluuurd +maxgore equ 128 ;body parts on ground! + ; +focshft equ 6 +grdshft equ 8 +darkshft equ 7 ;smaller=smaller range=faster! +maxz equ 16<>1 + ; +linemod equ 40*7 + + jmp entrypoint + + rsreset + ; + ;sfx channel info + ; +fx_status rs.w 1 +fx_priority rs.w 1 +fx_sfx rs.l 1 +fx_vol rs.w 1 +fx_offset rs.w 1 +fx_dma rs.w 1 +fx_int rs.w 1 + ; +fx_size rs.b 0 + + rsreset + ; + ;blood! + ; +bl_next rs.l 1 +bl_prev rs.l 1 +bl_x rs.l 1 +bl_y rs.l 1 +bl_z rs.l 1 +bl_xvec rs.l 1 +bl_yvec rs.l 1 +bl_zvec rs.l 1 +bl_color rs.l 1 + ; +bl_size rs.b 0 + + rsreset + ; + ;a texture + ; +te_pal rs.l 1 + ; +te_size rs.b 0 + + rsreset + ; + ;an opening/closing door! + ; +do_next rs.l 1 +do_prev rs.l 1 +do_poly rs.l 1 ;door polygon +do_lx rs.w 1 +do_lz rs.w 1 +do_rx rs.w 1 +do_rz rs.w 1 +do_frac rs.w 1 +do_fracadd rs.w 1 + ; +do_size rs.b 0 + + rsreset + ; + ;wall list... + ; +wl_next rs.l 1 +wl_lsx rs.w 1 ;leftmost screen X +wl_rsx rs.w 1 ;rightmost screen X +wl_nz rs.w 1 ;near Z! +wl_fz rs.w 1 ;far Z! +wl_lx rs.w 1 +wl_lz rs.w 1 +wl_rx rs.w 1 +wl_rz rs.w 1 +wl_a rs.w 1 +wl_b rs.w 1 +wl_c rs.l 1 +wl_sc rs.w 1 +wl_open rs.w 1 ;0=door shut, $7fff=open! +wl_prec rs.w 1 ;precision info. +wl_pad rs.w 1 +wl_t rs.b 8 ;textures + ; +wl_size rs.b 0 + + rsreset + ; + ;a zone... + ; +zo_done rs.w 1 +zo_lx rs.w 1 +zo_lz rs.w 1 +zo_rx rs.w 1 +zo_rz rs.w 1 + ; +zo_a rs.w 1 +zo_b rs.w 1 +zo_na rs.w 1 +zo_nb rs.w 1 +zo_ln rs.w 1 + ; +zo_t rs.b 8 ;8 textures + ; +zo_sc rs.w 1 +zo_open rs.w 0 ;for wall polys... +zo_ev rs.w 1 ;for events... + ; +zo_size rs.b 0 ;32! + + rsreset + ; + ;a shape to draw! + ; +sh_next rs.l 1 +sh_prev rs.l 1 +sh_x rs.w 1 +sh_y rs.w 1 +sh_z rs.w 1 +sh_shape rs.l 1 +sh_scale rs.w 0 +sh_strip rs.l 1 + ; +sh_size rs.b 0 + + rsreset + ; + ;gore...body parts lying around! + ; +go_next rs.l 1 +go_prev rs.l 1 +go_x rs.w 1 +go_z rs.w 1 +go_shape rs.l 1 + ; +go_size rs.b 0 + + rsreset + ; + ;an object in the game (player/alien etc...) + ; +ob_next rs.l 1 +ob_prev rs.l 1 +ob_x rs.l 1 +ob_y rs.l 1 +ob_z rs.l 1 +ob_rot rs.l 1 + ; + ;start of info load by prog. +ob_info rs.b 0 + ; +ob_rotspeed rs.l 1 +ob_movspeed rs.l 1 +ob_shape rs.l 1 +ob_logic rs.l 1 +ob_render rs.l 1 +ob_hit rs.l 1 ;routine to do when damaged +ob_die rs.l 1 ;routine to do when killed +ob_eyey rs.w 1 ;eye height +ob_firey rs.w 1 ;where bullets come from +ob_gutsy rs.w 1 +ob_othery rs.w 1 +ob_colltype rs.w 1 +ob_collwith rs.w 1 +ob_cntrl rs.w 1 +ob_damage rs.w 1 +ob_hitpoints rs.w 1 +ob_think rs.w 1 +ob_frame rs.l 1 ;anim frame +ob_framespeed rs.l 1 ;anim frame +ob_base rs.w 1 +ob_range rs.w 1 +ob_weapon rs.w 1 ;weapon meter... +ob_wlevel rs.w 1 ;weapon type (0...4) +ob_hurtpause rs.w 1 +ob_firerate rs.w 0 +ob_punchrate rs.w 1 +ob_bouncecnt rs.w 1 ;how many times my bullets bounce! +ob_firecnt rs.w 0 +ob_something rs.w 1 +ob_scale rs.w 1 ;scale factor for drawing +ob_apad rs.w 1 + ; +ob_acc rs.l 1 +ob_oldlogic rs.l 1 +ob_oldlogic2 rs.l 1 +ob_oldhit rs.l 1 +ob_olddie rs.l 1 +ob_oldrot rs.w 1 +ob_newrot rs.w 1 +ob_yvec rs.l 1 +ob_xvec rs.l 1 +ob_zvec rs.l 1 +ob_radsq rs.l 1 ;radius squared +ob_rad rs.w 1 +ob_delay rs.w 1 +ob_delay2 rs.w 0 +ob_bounce rs.w 1 +ob_hurtwait rs.w 1 + ; +ob_washit rs.l 1 ;flag for un-hit coll detect! +ob_window rs.l 1 ;pointer back to window! +ob_nxvec rs.w 0 ;normalized X vec +ob_lives rs.w 1 +ob_nzvec rs.w 0 ;nomralized z vec +ob_infra rs.w 1 +ob_thermo rs.w 1 +ob_invisible rs.w 1 +ob_hyper rs.w 1 +ob_update rs.w 1 ;update stats! +ob_mess rs.l 1 ;message +ob_messlen rs.w 1 +ob_messtimer rs.w 1 ;timer for messages +ob_palette rs.l 1 ;palette for window +ob_paltimer rs.w 1 ;timer before back to normal +ob_pixsize rs.w 1 +ob_pixsizeadd rs.w 1 +ob_telex rs.w 1 +ob_telez rs.w 1 +ob_telerot rs.w 1 +ob_chunks rs.l 1 + ; +ob_size rs.b 0 + + rsreset + ; + ;solid wall draw data + ; +vd_z rs.w 1 ;current Z +vd_pal rs.w 1 ;palette# (0...15) +vd_y rs.w 1 +vd_h rs.w 1 +vd_data rs.l 1 +vd_ystep rs.l 1 + ; +vd_size rs.b 0 + + rsreset + ; + ;palette file... + ; +pa_numcols rs.w 1 ;how many colours +pa_cols rs.w 256 ;the colours! + + rsreset + ; + ;anim file... + ; +an_rotshft rs.w 1 +an_frames rs.w 1 +an_maxw rs.w 1 +an_maxh rs.w 1 +an_pal rs.l 1 + ; +an_size rs.b 0 + + rsreset + ; + ;window + ; +wi_slice rs.l 1 ;slice window appears in! +wi_nslice rs.l 1 ;next slice to disp. +wi_x rs 1 +wi_y rs 1 +wi_w rs 1 ;how many chixels across +wi_h rs 1 ;how many down +wi_pw rs 1 ;width of 1 chixel +wi_ph rs 1 ;hite of 1 chixel + ; +wi_bw rs 1 ;bitmap width +wi_bh rs 1 ;bitmap height + ; +wi_bmapmem rs.l 1 +wi_copmem rs.l 1 +wi_bmap rs.l 1 +wi_cop rs.l 1 +wi_cop1 rs.l 1 +wi_cop2 rs.l 1 +wi_copmod rs.w 1 + ; +wi_strip rs.l 1 +wi_iff rs.l 1 ;show iff instead! +wi_pal rs.l 1 ;palette for IFF! + ; +wi_size rs.b 0 + +key macro + btst #\1&7,\1>>3(a0) + endm + +qkey macro + move.l rawtable(pc),a0 + key \1 + endm + +freemem macro + ; + ifne debugmem + lea .fmem\@,a0 + jsr freemem_ + bra .fmemskip\@ +.fmem\@ dc.b '\1',0 + even +.fmemskip\@ ; + elseif + jsr freemem_ + endc + ; + endm + +allocmem macro + ; + ifne debugmem + ; + lea .amem\@,a0 + jsr allocmem_ + bra .amemskip\@ +.amem\@ dc.b '\1',10,0 + even +.amemskip\@ ; + elseif + ; + jsr allocmem_ + ; + endc + ; + endm + +allocmem2 macro + ; + ifne debugmem + ; + lea .amem\@,a0 + jsr allocmem2_ + bra .amemskip\@ +.amem\@ dc.b '\1',10,0 + even +.amemskip\@ ; + elseif + ; + jsr allocmem2_ + ; + endc + ; + endm + +alloclist macro ;alloclist listname,maxitems,itemsize + ; + move.l \2,d0 + move.l \3,d1 + lea \1(pc),a2 + jsr k_alloclist + bra.s alskip\@ + ; +\1 dc.l 0 ;0 +\1_last dc.l 0 ;4 + dc.l 0 ;8 +\1_free dc.l 0 ;12 +alskip\@ ; + endm + +k_alloclist ;a2=address of 'first' pointer + ;d0=max items, d1=item size + ; + move.l a2,8(a2) ;clear out used list + lea 4(a2),a0 + clr.l (a0) + move.l a0,(a2) + movem.l d0-d1,-(a7) + mulu d1,d0 + move.l #$10001,d1 + allocmem alloclist + move.l d0,a0 + lea 12(a2),a2 + movem.l (a7)+,d0-d1 + subq #1,d0 +.loop move.l a0,(a2) + move.l a0,a2 + add d1,a0 + dbf d0,.loop + rts + +addnext macro + ; + ;addnext 'listname' + ;add after a5 + ;return eq if none available else a0 + ; + move.l \1_free,d0 + beq.s .anskip\@ + move.l d0,a0 + move.l (a0),\1_free + move.l (a5),a1 + move.l a1,(a0) + move.l a0,4(a1) + move.l a0,(a5) + move.l a5,4(a0) +.anskip\@ ; + endm + +addfirst macro + ; + ;addfirst 'listname' + ;return eq if none available else a0 + ; + move.l \1_free,d0 + beq.s .afskip\@ + move.l d0,a0 + move.l (a0),\1_free + move.l \1,a1 ;current first + move.l a1,(a0) + move.l a0,4(a1) + move.l a0,\1 + move.l #\1,4(a0) +.afskip\@ ; + endm + +addlast macro + ; + ;addlast 'listname' + ;return eq in none available else a0 + ; + move.l \1_free,d0 + beq.s .alskip\@ + move.l d0,a0 + move.l (a0),\1_free + ; + move.l \1_last+4,a1 ;current last + move.l a0,(a1) + move.l a1,4(a0) + move.l a0,\1_last+4 + move.l #\1_last,(a0) +.alskip\@ ; + endm + +killitem macro + ; + ;killitem listname + ;a0=item to kill, return a0=previous item. + ; + move.l (a0),a1 ;next of me! + move.l 4(a0),4(a1) + move.l 4(a0),a1 ;prev of me + move.l (a0),(a1) + move.l \1_free,(a0) + move.l a0,\1_free + move.l a1,a0 + endm + +clearlist macro + ; + ;clearlist listname + ; +.clloop\@ move.l \1,a0 + tst.l (a0) + beq .cldone\@ + killitem \1 + bra .clloop\@ +.cldone\@ ; + endm + + + +bwait macro + ; +.bwait\@ btst #6,$dff002 + beq.s .bwait2\@ + bra.s .bwait\@ +.bwait2\@ ; + endm + +printlong macro + move.l \1,-(a7) + jsr printlong_ + endm + +check macro + list +check set *-\1 + nolist + endm + +push macro + movem.l d2-d7/a2-a6,-(a7) + endm + +pull macro + movem.l (a7)+,d2-d7/a2-a6 + endm + +col macro + move #0,$dff106 + move \1,$dff180 + endm + +warn macro + move d0,-(a7) + move #-1,d0 +.wloop\@ col \1 + dbf d0,.wloop\@ + move (a7)+,d0 + endm + +tempfile ds.b 64 + +entrypoint +cli ; + move.l a0,a2 + ; + lea dosname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,dosbase + ; + move.l d0,a6 + jsr -60(a6) + move.l d0,outhand + ; + clr.l map_test + cmp.b #'@',(a2)+ + bne.s main + lea tempfile,a0 + move.l a0,map_test +.loop move.b (a2)+,(a0) + beq.s main + cmp.b #10,(a0)+ + bne.s .loop + clr.b -(a0) +main ; + bsr bigfont + jsr initmain + ; +.intro move.l medat(pc),a1 + move.l titlemed(pc),a0 + jsr 8(a1) + ; + jsr dointro ;returns gametype + cmp #3,gametype + bcs.s .play + ; + move.l medat(pc),a1 + jsr 12(a1) + bra.s exittoos +.play ; + bsr initnewgame + ; + move #$4000,fadevol + ; + bsr smallfont + bsr execscript + bsr bigfont + ; + bra .intro + ; +exittoos bsr freeobjlist2 + bsr permit + move.l rawstuff,a0 + bclr #0,$3d(a0) + bsr finitsfx + bsr finitvbint + bsr finitdisplay + bsr freememlist + bsr undir + rts + +smallfont move #6,fontw + move #8,fonth + clr fontoff + rts + +bigfont move #8,fontw + move #10,fonth + move #51,fontoff + rts + +; ************* FAST SUBS ******************** + +fastsubs + +sfxs +sfx0 ds.b fx_size +sfx1 ds.b fx_size +sfx2 ds.b fx_size +sfx3 ds.b fx_size + +sfxintserver0 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx0 + dc.l sfxint + +sfxintserver1 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx1 + dc.l sfxint + +sfxintserver2 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx2 + dc.l sfxint + +sfxintserver3 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx3 + dc.l sfxint + +initsfx push + move.l 4.w,a6 + ; + moveq #7,d0 + lea sfxintserver0,a1 + jsr -162(a6) ;setintvector + ; + moveq #8,d0 + lea sfxintserver1,a1 + jsr -162(a6) + ; + moveq #9,d0 + lea sfxintserver2,a1 + jsr -162(a6) + ; + moveq #10,d0 + lea sfxintserver3,a1 + jsr -162(a6) + ; + lea sfxs(pc),a1 + move #$80,d0 + moveq #1,d1 + moveq #0,d2 + moveq #3,d3 +.loop bsr .init + lea fx_size(a1),a1 + dbf d3,.loop + ; + pull + rts + ; +.init clr fx_status(a1) + move d0,fx_int(a1) + move d1,fx_dma(a1) + move d2,fx_offset(a1) + add d0,d0 + add d1,d1 + add #16,d2 + rts + +finitsfx push + move.l 4.w,a6 + ; + moveq #7,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #8,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #9,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #10,d0 + sub.l a1,a1 + jsr -162(a6) + ; + pull + rts + +playsfx ;sfx file in a0, vol in d0, priority in d1 + ; + move #$4000,$dff09a + lea sfxs(pc),a1 + moveq #3,d2 +.loop tst fx_status(a1) + beq.s makesfx + lea fx_size(a1),a1 + dbf d2,.loop + ; + ;OK, none free...check priorities + ; + lea sfxs(pc),a1 + moveq #3,d2 +.loop2 cmp fx_priority(a1),d1 + bgt.s queuesfx + lea fx_size(a1),a1 + dbf d2,.loop2 + ; + ;no-can-do! + ; + move #$c000,$dff09a + rts + ; +queuesfx ;OK, turn off other and play US! + ; + move #1,fx_status(a1) + move d0,fx_vol(a1) + move d1,fx_priority(a1) + move.l a0,fx_sfx(a1) ;play me next! + ; + bsr sfxoff + ; + move #$c000,$dff09a + rts + +sfxoff lea $dff0a0,a2 + add fx_offset(a1),a2 + move.l chipzero(pc),(a2) + move #1,4(a2) ;len + move #0,8(a2) ;vol + move fx_int(a1),$dff09a + move fx_dma(a1),$dff096 + rts + +makesfx ;OK, play this SFX NOW! + ; + move d1,fx_priority(a1) + move d0,fx_vol(a1) + bsr playsfxnow + move #$c000,$dff09a + rts + +playsfxnow move #-2,fx_status(a1) + ; + lea $dff0a0,a2 + add fx_offset(a1),a2 + move (a0)+,6(a2) ;period + move (a0)+,4(a2) ;len + move fx_vol(a1),8(a2) ;vol + move.l a0,(a2) ;data + ; + move fx_dma(a1),d0 ;dma bits + or #$8000,d0 + move fx_int(a1),d1 ;int bits + move d1,d2 + or #$8000,d1 + ; + move d0,$dff096 ;dma on! + move d1,$dff09a ;int en + move d2,$dff09c ;intreq clr + ; + rts + +sfxint ;interupt for sfx! + ; + tst fx_status(a1) + bge.s .skip + addq #1,fx_status(a1) + blt.s .skip + ; + move.l a2,-(a7) + bsr sfxoff + move.l (a7)+,a2 + ; +.skip move fx_int(a1),$dff09c + moveq #0,d0 + rts + +sfxvbint movem.l d2-d3/a1-a2,-(a7) + lea sfxs(pc),a1 + moveq #3,d3 +.loop tst fx_status(a1) + ble.s .skip + ; + ;this one queued! gotta play it... + ; + subq #1,fx_status(a1) + bgt.s .skip + move.l fx_sfx(a1),a0 + bsr playsfxnow + ; +.skip lea fx_size(a1),a1 + dbf d3,.loop + ; + movem.l (a7)+,d2-d3/a1-a2 + rts + +dogamemenu ; + st paused + ; + move.l player1,a5 + move.l ob_palette(a5),-(a7) + move.l #palettesw,ob_palette(a5) + move.l ob_window(a5),a2 + bsr plotwbmap + ; + tst gametype + beq .p1 + ; + move.l player2,a5 + move.l ob_palette(a5),-(a7) + move.l #palettesw,ob_palette(a5) + move.l ob_window(a5),a2 + bsr plotwbmap +.p1 ; + bsr drawall2 + ; + move.l player1,a5 + lea gamemenu,a4 + move.l ob_window(a5),a6 + jsr initmenu + ; +.loop bsr selmenu + beq .done + ; + subq #1,d0 + bne .notpsize + bsr newpsize + bra .loop + ; +.notpsize subq #1,d0 + bne .notwsize + bsr newwsize + bra .loop + ; +.notwsize subq #1,d0 + bne .notlwin + bsr largewin + bra .loop + ; +.notlwin subq #1,d0 + bne .notfloor + ; + addq #1,floorflag + cmp #2,floorflag + bne.s .fskip + move #-1,floorflag +.fskip bsr refresh + bra .loop + ; +.notfloor subq #1,d0 + bne .notroof + ; + addq #1,roofflag + cmp #2,roofflag + bne.s .rskip + move #-1,roofflag +.rskip bsr refresh + bra .loop +.notroof ; + ;MUST BE QUIT GAME! + ; + move #1,finished + ; +.done bsr finitmenu + ; + tst gametype + beq.s .p12 + ; + move.l player2,a5 + move.l (a7)+,ob_palette(a5) + move.l ob_window(a5),a2 + bsr plotwbmap + bsr initstats + bsr showstats +.p12 ; + move.l player1,a5 + move.l (a7)+,ob_palette(a5) + move.l ob_window(a5),a2 + bsr plotwbmap + bsr initstats + bsr showstats + ; + clr paused + rts + +freewindows lea window1,a0 + bsr freewindow + tst gametype + beq.s .p1 + lea window2,a0 + bsr freewindow +.p1 rts + +largewin move.l player1,a5 + bsr large + tst gametype + beq refresh + move.l player2,a5 + bsr large + bra refresh + +large move.l ob_window(a5),a6 + move wi_pw(a6),d2 + ; + cmp #2,d2 + beq .lhr + ; + ;large lo-res window! + ; + move #324,d0 + move #240,d1 + bra thinkwin + ; +.lhr move #180,d0 + move #240,d1 + bra thinkwin + +newwsize ;window size stuff! + ; + move.l player1,a5 + bsr swapwsize + tst gametype + beq refresh + move.l player2,a5 + bsr swapwsize + bra refresh + +swapwsize ;increment window size! + ; + move.l ob_window(a5),a6 + movem wi_w(a6),d0-d1 ;w,h + move wi_pw(a6),d2 + mulu d2,d0 + mulu d2,d1 + cmp #2,d2 + beq .hr + ; + ;lo-res! + ; + cmp #318,d0 + bcs.s .inc + move #132,d0 + move d0,d1 + bra thinkwin +.inc add #24,d0 + move d0,d1 + cmp #240,d1 + bls thinkwin + move #240,d1 + bra thinkwin + ; +.hr cmp #180,d0 + bcs.s .inc2 + tst gametype + bne .min + add #18,d1 + cmp #240,d1 + bls thinkwin +.min move #132,d0 + move d0,d1 + bra thinkwin +.inc2 add #24,d0 + move d0,d1 + ; +thinkwin move #180,d3 ;max width! + cmp #2,d2 + beq .gmax + move #318,d3 +.gmax cmp d3,d0 + bls .nm + move d3,d0 +.nm ; + cmp #240,d1 + bls .n240 + move #240,d1 +.n240 tst gametype + beq.s .ggt + move #120,d1 +.ggt ; + move #160,d3 + move d0,d4 + lsr #1,d4 + sub d4,d3 ;wi_x + move d3,wi_x(a6) + ; + ext.l d0 + divu d2,d0 + move d0,wi_w(a6) + ; + tst gametype + bne.s .skip3 + ; + move #166,d3 + move d1,d4 + lsr #1,d4 + sub d4,d3 + move d3,wi_y(a6) + ; +.skip3 ext.l d1 + divu d2,d1 + move d1,wi_h(a6) + ; + rts + +newpsize ;toggle pixel size between 2 and 3 + ; + ;copy windows to temp so we can free 'em up later + ; + move.l player1,a5 + bsr swappsize + tst gametype + beq refresh + move.l player2,a5 + bsr swappsize + ; +refresh bsr dispoff + bsr finitmenu + ; + bsr freewindows + bsr putwindow + bsr calcbpos + ; + lea window1,a0 + bsr makewindow + lea window1,a0 + bsr showwindow + ; + tst gametype + beq.s .p1 + ; + lea window2,a0 + bsr makewindow + lea window2,a0 + bsr showwindow + ; +.p1 lea gamemenu,a4 + lea window1,a6 + jsr initmenu2 + ; + bsr drawall2 + bsr dispon + rts + +swappsize move.l ob_window(a5),a6 + movem wi_w(a6),d0-d1 ;w,h + move wi_pw(a6),d2 + mulu d2,d0 + mulu d2,d1 + eor #1,d2 ;2,3... + move d2,wi_pw(a6) + move d2,wi_ph(a6) + ; + bra thinkwin + +drawall2 bsr drawall + bsr drawall +.wait tst showflag + bne.s .wait + rts + +drawall tst doneflag + beq.s drawall ;wait for updated! + clr doneflag + ; + move.l memory(pc),memat + move.l player1(pc),a5 + bsr calcscene + move.l player1(pc),a5 + bsr blitscene + move.l player1(pc),a5 + bsr drawscene + ; + move gametype(pc),d0 + beq.s .p1 + ; + move.l memory(pc),memat + move.l player2(pc),a5 + bsr calcscene + move.l player2(pc),a5 + bsr blitscene + move.l player2(pc),a5 + bsr drawscene + ; +.p1 st showflag + ; + rts + +resetplayer st ob_update(a5) + clr ob_thermo(a5) + clr ob_infra(a5) + clr ob_invisible(a5) + clr ob_messtimer(a5) + clr ob_pixsize(a5) + clr ob_pixsizeadd(a5) + move.l #palettes,ob_palette(a5) + rts + +initplayer bsr resetplayer + bsr calcwlevel + bra initstats + +calcwlevel moveq #0,d0 + move.b ob_weapon(a5),d0 + beq.s .wlg + subq #1,d0 + divu #5,d0 + lsl #4,d0 +.wlg move d0,ob_wlevel(a5) + rts + +message ;print up a message...player in a5 + ; + move.l (a7),a0 ;return address=message! + move.l a0,ob_mess(a5) + ; + moveq #-1,d0 +.loop addq #1,d0 + tst.b (a0)+ + bne.s .loop + ; + move d0,ob_messlen(a5) + move #-127,ob_messtimer(a5) + ; + move.l a0,d0 + addq.l #1,d0 + and #$fffe,d0 + move.l d0,(a7) + rts + +pdelay dc 0 ;non zero=wait between prints + +printmess ;a5=object + ; + move.l ob_window(a5),a6 + move.l ob_mess(a5),a4 + move ob_messlen(a5),d0 + move wi_bh(a6),d6 + lsr #2,d6 ;Y + ; +printmess2 ;a6=window, a4=message, d0=length of message, d6=Y + ; + move fontw(pc),d2 + lsr #1,d2 + mulu d2,d0 + move #160,d7 + sub d0,d7 ;X + ; +.loop2 move.b (a4)+,d2 + beq.s .done + cmp.b #' ',d2 + beq.s .spc + cmp.b #'0',d2 + bcs.s .nnum + cmp.b #'9',d2 + bhi.s .nnum + sub.b #'0',d2 + ext d2 + bra.s .here +.nnum cmp.b #'!',d2 + bne.s .notex + moveq #65+26,d2 + bra.s .notfs +.notex cmp.b #'.',d2 + bne.s .notfs + moveq #65+27,d2 +.notfs and #31,d2 + add #17,d2 +.here add fontoff(pc),d2 + move.l font(pc),a0 + move.l wi_bmap(a6),a1 + move d7,d0 + move d6,d1 + bsr blit + ; + move pdelay(pc),d2 + subq #1,d2 + bmi.s .spc + ; +.pdloop bsr vwait + bsr checkany + beq.s .none + move #-1,pdelay + moveq #0,d2 +.none dbf d2,.pdloop + ; +.spc add fontw(pc),d7 + bra.s .loop2 +.done ; + rts + +initstats move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #2,d1 + moveq #10,d2 + bsr blit + ; + move.l ob_window(a5),a0 + moveq #2,d0 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #10,d1 + moveq #11,d2 + ; + bsr blit + ; + rts + +putstrip ;a0=window + ; + move.l wi_bmap(a0),a1 + move wi_bh(a0),d0 + lsr #2,d0 + mulu #7*40,d0 + add.l d0,a1 ;dest + move.l wi_strip(a0),a0 ;src + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l #$9f00000,$dff040 + move.l #-1,$dff044 + move #0,$dff064 + move #0,$dff066 + move.l a0,$dff050 + move.l a1,$dff054 + move #(7*7)<<6+20,$dff058 + rts + +showstats ;a5=player + ; + ;show health! + ; + moveq #2,d5 + move ob_hitpoints(a5),d6 + bsr showlevel + ; + moveq #10,d5 + move ob_weapon(a5),d6 + lsr #8,d6 + bsr showlevel + ; + cmp #2,gametype + bne.s .rts + ; + movem wins1(pc),d6-d7 + cmp.l player1,a5 + beq.s .skip + exg d6,d7 +.skip sub d7,d6 + ble.s .rts + ; + subq #1,d6 + move.l ob_window(a5),a0 + move wi_bw(a0),d7 + subq #2,d7 + ; +.loop subq #6,d7 + move d7,d0 + move.l ob_window(a5),a0 + add wi_x(a0),d0 + moveq #2,d1 + moveq #50,d2 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + bsr blit + dbf d6,.loop + ; +.rts rts + +showlevel moveq #47,d7 + ext.l d6 + divu #5,d6 + subq #1,d6 + bmi.s .skip + ; +.loop moveq #12,d2 + bsr drawh + dbf d6,.loop +.skip ; + swap d6 + tst d6 + beq.s .rest + moveq #17,d2 + sub d6,d2 + bsr drawh + ; +.rest cmp #47+6*5,d7 + bcc.s .hdone + moveq #17,d2 + bsr drawh + bra.s .rest +.hdone ; + rts + +drawh move.l ob_window(a5),a0 + move d7,d0 + move d5,d1 + add wi_x(a0),d0 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + addq #6,d7 + ; +blit ;a0=shapetable to blit, a1=bitmap, d0=X, d1=Y, d2=char + ; + add.l 4(a0,d2*4),a0 + ; + mulu #280,d1 + add.l d1,a1 + move d0,d2 + asr #3,d2 + add d2,a1 ;dest! + move.l a0,a2 + add.l (a0),a2 + lea 8(a0),a3 + addq #4,a0 + and #15,d0 + ror #4,d0 + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l a2,$dff050 + move.l a3,$dff04c + move.l a1,$dff048 + move.l a1,$dff054 + ; + move d0,$dff042 + or #$fca,d0 + move d0,$dff040 + move.l #$ffff0000,$dff044 + moveq #-2,d0 + move d0,$dff064 + move d0,$dff062 + moveq #38,d0 + sub (a0)+,d0 + move d0,$dff060 + move d0,$dff066 + move (a0)+,$dff058 + ; + rts + +pixsize dc 0 ;pixel size...at least 2! + +pixelate ;pixel out the coplist! + ; + move pixsize(pc),d1 ;x/y add + ; + ;pixel out vertically, then horizontally + ; + move.l cop(pc),a0 + lea coloffs(pc),a1 + moveq #0,d2 ;x + move d1,d6 + lsr #1,d6 +.forx ; + move.l a0,a3 + lea 0(a1,d2*4),a2 + add.l (a2),a3 + ; + move d2,d5 + add d6,d5 + cmp width(pc),d5 + ble.s .xok + move width(pc),d5 +.xok sub d2,d5 + ble .done + subq #1,d5 + ; +.loop2 moveq #0,d3 + move.l a3,a4 + move.l a0,a5 + add.l (a2)+,a5 + move d1,d7 + lsr #1,d7 ;first Y add +.fory ; + move (a4),d0 ;start column! + move d3,d4 + add d7,d4 + cmp hite(pc),d4 + ble.s .yok + move hite(pc),d4 +.yok sub d3,d4 + ble .nextx + subq #1,d4 + ; +.loop move d0,(a5) + add copmod(pc),a4 + add copmod(pc),a5 + ; + dbf d4,.loop + ; +.nexty add d7,d3 + move d1,d7 + bra.s .fory + ; +.nextx dbf d5,.loop2 + ; + add d6,d2 + move d1,d6 + bra.s .forx + ; +.done rts + +makeqstrip ; + ;do a simple roof/floor strip for blitter to wack in... + ; + cmp #$100,con0poke + bne.s .doit + rts + ; +.doit move.l qstrip(pc),a0 + move.l darktable(pc),a1 + move.l palette(pc),a2 + move.l qstripbot(pc),a4 + moveq #0,d2 + ; + move floorflag(pc),d0 + bne.s .fdone + ; + move camy(pc),d0 + neg d0 + ext.l d0 + lsl.l #focshft,d0 + ; + move.b qcols+1(pc),d2 + move.l qstripbot(pc),a4 + move maxy(pc),d1 + ; +.floop subq #1,d1 + beq.s .fdone + ; + move.l d0,d3 + divs d1,d3 + cmp #maxz,d3 + bcc .fdone + ; + move 0(a1,d3*2),d3 ;darkness (0...15) + move.l 0(a2,d3*4),a3 ;pal to use + move 0(a3,d2*2),-(a4) ;colour! + ; + bra.s .floop + ; +.fdone move roofflag(pc),d0 + bne.s .rdone + ; + move #-256,d0 + sub camy(pc),d0 + ext.l d0 + lsl.l #focshft,d0 ;cam Y + ; + move.b qcols(pc),d2 + ; + move miny(pc),d1 ;SY + ; +.rloop beq.s .rdone + ; + move.l d0,d3 + divs d1,d3 + cmp #maxz,d3 + bcc .rdone + ; + move 0(a1,d3*2),d3 ;darkness (0...15) + move.l 0(a2,d3*4),a3 ;pal to use + move 0(a3,d2*2),(a0)+ ;colour! + ; + addq #1,d1 + bra.s .rloop +.rdone ; + moveq #0,d0 +.loop cmp.l a4,a0 + bcc.s .done + move.l d0,(a0)+ + bra.s .loop + ; +.done rts + +flatcam dc.l 0 +flatyadd dc 0 +flatyadd2 dc 0 + +flat ; + ;do flat above/below panel! + ; + ;d0=Y pos of flat + ;d1=Screen Y add + ;d7=first screen Y (miny or maxy-1) + ; + ;a0=panel to draw on! + ; + ext.l d0 + lsl.l #focshft,d0 + move.l d0,flatcam + ; + move d1,flatyadd + muls copmod(pc),d1 + move d1,flatyadd2 + ; + move d7,d0 + add midy(pc),d0 + mulu copmod(pc),d0 + add.l cop(pc),d0 + add.l coloffs(pc),d0 + move.l d0,a2 +.vloop ; + ;find Z on this scanline... + ; + tst d7 + beq .rts + move.l flatcam(pc),d6 + divs d7,d6 ;d6.w = Z + cmp #maxz,d6 + bcc .rts + ; + move.l darktable(pc),a5 + move 0(a5,d6*2),d5 + move.l palette(pc),a5 + move.l 0(a5,d5*4),a5 + ; + ;Find leftmost X... + ; + move minx(pc),d5 + muls d6,d5 + asr.l #focshft,d5 + ; + move maxx(pc),d4 + muls d6,d4 + asr.l #focshft,d4 + ; + ;rotate X1,Z around camera... + ; + move d5,d0 + move d6,d1 + ; + move d0,d2 + move d1,d3 + ; + muls icm1(pc),d0 + add.l d0,d0 + muls icm2(pc),d3 + add.l d3,d3 + add.l d3,d0 + ; + muls icm3(pc),d2 + add.l d2,d2 + muls icm4(pc),d1 + add.l d1,d1 + add.l d2,d1 + ; + ;d0,d1.q = rotated x1,z + ; + ;rotate X2,Z around camera... + ; + move d4,d2 + move d6,d3 + ; + muls icm1(pc),d4 + add.l d4,d4 + muls icm2(pc),d3 + add.l d3,d3 + add.l d3,d4 + ; + muls icm3(pc),d2 + add.l d2,d2 + muls icm4(pc),d6 + add.l d6,d6 + add.l d2,d6 + ; + ;d4,d6.q = rotated x2,z + ; + move width(pc),d5 + ext.l d5 + sub.l d0,d4 ;Xadd + divs.l d5,d4 + sub.l d1,d6 ;Zadd + divs.l d5,d6 + ; + ;d0,d1.q=x,z + ;d4,d6.q=xadd,zadd + ; + swap d0 + add camx(pc),d0 + swap d1 + add camz(pc),d1 + swap d4 + swap d6 + ; + move d7,-(a7) + moveq #127,d7 + moveq #0,d2 + moveq #0,d3 + ; + move.l a2,a3 + ; + move wdiv32(pc),-(a7) + ; +.hloop2 moveq #31,d5 + ; +.hloop tst (a3) ;check destination! + bne.s .skip + ; + and d7,d0 + and d7,d1 ;X/Z for fetch! + move d0,d2 + lsl #7,d2 + lea 0(a0,d2),a6 + move.b 0(a6,d1),d3 + move 0(a5,d3*2),(a3) + ; +.skip add.l d4,d0 + addx d2,d0 + add.l d6,d1 + addx d2,d1 + addq #4,a3 + dbf d5,.hloop + ; + addq #4,a3 + subq #1,(a7) + bgt.s .hloop2 + bne.s .kl + ; + move wrem32(pc),d5 + bpl.s .hloop + ; +.kl move.l (a7)+,d7 + add flatyadd(pc),d7 + add flatyadd2(pc),a2 + bra .vloop + ; +.rts rts + +doanims move.l map_anim(pc),a0 + lea textures,a1 + ; +.loop move (a0)+,d0 ;how many frames + beq.s .done + movem (a0)+,d1-d2 ;first, delay + subq #1,(a0)+ + bgt.s .loop + move d2,-2(a0) + lea 0(a1,d1*4),a2 + ; + ;do the anim! + ; + subq #2,d0 + move.l (a2),d2 +.loop2 move.l 4(a2),(a2)+ + dbf d0,.loop2 + move.l d2,(a2) + bra.s .loop + ; +.done rts + +dodoors lea doors(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + move.l do_poly(a5),a0 + move do_fracadd(a5),d0 + add d0,do_frac(a5) + move do_frac(a5),d0 + move d0,d1 + add d1,d1 + move d1,zo_open(a0) ;copy frac + ; + move do_rx(a5),d1 + sub do_lx(a5),d1 ;width + move d1,d2 + muls d0,d2 + lsl.l #2,d2 + swap d2 + move do_lx(a5),d3 + sub d2,d3 + move d3,zo_lx(a0) + add d1,d3 + move d3,zo_rx(a0) + ; + move do_rz(a5),d1 + sub do_lz(a5),d1 + move d1,d2 + muls d0,d2 + lsl.l #2,d2 + swap d2 + move do_lz(a5),d3 + sub d2,d3 + move d3,zo_lz(a0) + add d1,d3 + move d3,zo_rz(a0) + ; + tst d0 + beq.s .kill + cmp #$4000,d0 + bne.s .loop + ; +.kill move.l a5,a0 + killitem doors + move.l a0,a5 + bra .loop + ; +.done rts + +doorsfxflag dc 0 + +execevent ;d0=event number to execute...1,2... + ; + sf doorsfxflag + move.l map_map(pc),a6 + ; + ifne aga + add.l 16(a6,d0*4),a6 + elseif + lsl #2,d0 + add.l 16(a6,d0),a6 + endc + ; +exec_loop move (a6)+,d0 + beq.s .rts + subq #1,d0 + beq exec_addobj ;1 - add an object (alien etc) + subq #1,d0 + beq exec_opendoor ;2 - open a door + subq #1,d0 + beq exec_teleport ;3 - teleport + subq #1,d0 + beq exec_loadobjs ;4 - load objects + subq #1,d0 + beq exec_changetxt ;5 - change texture + ; + warn #$f0f + ; +.rts tst doorsfxflag + beq.s .nodoor + clr doorsfxflag + move.l doorsfx(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx +.nodoor rts + +exec_changetxt ; + move (a6)+,d0 ;zone# + move.l map_poly(pc),a1 + lsl #5,d0 + lea 0(a1,d0),a1 ;polygon to change + ; + move (a6)+,d0 ;new texture + move.b d0,zo_t(a1) + bra exec_loop + +exec_opendoor st doorsfxflag + addlast doors ;a0=new door + ; + move (a6)+,d0 ;door # + move.l map_poly(pc),a1 + lsl #5,d0 + lea 0(a1,d0),a1 ;polygon to open! + ; + ;calc lx add, lz add, rx add, rz add + ; + move.l a1,do_poly(a0) + move.l zo_lx(a1),do_lx(a0) + move.l zo_rx(a1),do_rx(a0) + clr do_frac(a0) + move #$100,do_fracadd(a0) + bra exec_loop + +exec_teleport move.l eventobj(pc),a0 + ; + move (a6)+,ob_telex(a0) + addq #2,a6 + move (a6)+,ob_telez(a0) + move (a6)+,ob_telerot(a0) + ; + move #4,ob_pixsizeadd(a0) + ; + bra exec_loop + +exec_loadobjs ; +.loop move (a6)+,d0 + bmi .done + bsr loadanobj + bra.s .loop +.done ; + bra exec_loop + +loadanobj ;d0=object#...sys must be permitted + ; + lea objinfo,a2 + mulu #objinfof-objinfo,d0 + move.l _ob_shape-objinfo(a2,d0),a2 + lea 8(a2),a3 ;filename + ; + tst.l (a2) + bne.s .skip + move.l a3,a0 + moveq #1,d1 + bsr loadfile + move.l d0,(a2) + beq.s .skip + move.l d0,a0 + bsr remapanim +.skip ; + tst.l 4(a2) + bne.s .rts + move.l a3,a0 +.loop tst.b (a3)+ + bne.s .loop + move.b #'2',-(a3) + moveq #1,d1 + bsr loadfile + clr.b (a3) + move.l d0,4(a2) + beq.s .rts + move.l d0,a0 + bsr remapanim + ; +.rts rts + +exec_addobj clr.l dummy + move (a6)+,d0 ;monster type + lea objinfo,a2 + mulu #objinfof-objinfo,d0 + add.l d0,a2 + move.l (a2)+,a3 + tst.l (a3) + beq.s .ok +.no addq #8,a6 + bra exec_loop +.ok cmp #2,-2(a6) ;player? + bcc.s .notp + addfirst objects + bra.s .bum +.notp addlast objects +.bum beq.s .no + move.l a0,a5 + ; + move.l a5,(a3) + ; + move (a6)+,ob_x(a5) + move (a6)+,ob_y(a5) + move (a6)+,ob_z(a5) + move (a6)+,ob_rot(a5) + ; + lea ob_info(a5),a3 + move #(objinfof-objinfo-4)>>1-1,d0 +.loop move (a2)+,(a3)+ + dbf d0,.loop + ; + bsr calcvecs + movem.l d4-d5,ob_xvec(a5) + ; + move.l ob_shape(a5),a0 + move.l 4(a0),ob_chunks(a5) + move.l (a0),a0 + move.l a0,ob_shape(a5) + ; + move an_maxw(a0),d0 + move d0,ob_rad(a5) + mulu d0,d0 + move.l d0,ob_radsq(a5) + ; + clr.l ob_washit(a5) + ; + bsr rnddelay + ; + bra exec_loop + +rnddelay move ob_range(a5),d0 + bsr rndn + add ob_base(a5),d0 + move d0,ob_delay(a5) + ; + rts + +seedrnd ;seed number in d0.w + ; + moveq #54,d1 + lea rndtable(pc),a0 +.loop move d0,(a0)+ + mulu #$1efd,d0 + add #$dff,d0 + dbf d1,.loop + move.l a0,(a0) + move.l #rndtable+48,j_index + rts + +rndw ;return rnd number 0...65535 if d0.w + ; + movem.l a0/a1,-(a7) + lea rndtable(pc),a1 + move.l j_index(pc),a0 + move -(a0),d0 + cmp.l a0,a1 + bne.s .skip + lea rndtable+110(pc),a0 +.skip move.l a0,j_index + move.l k_index(pc),a0 + add -(a0),d0 + move d0,(a0) + cmp.l a0,a1 + bne.s .skip2 + lea rndtable+110(pc),a0 +.skip2 move.l a0,k_index + movem.l (a7)+,a0/a1 + rts + +rndtable ds.w 55 +k_index dc.l 0 +j_index dc.l 0 + +rndl bsr rndw + move d0,d1 + bsr rndw + swap d0 + move d1,d0 + rts + +rndn move d0,d1 + bsr rndw + mulu d1,d0 + swap d0 + rts + +calcangle2 ;angle of camera to object in a5 + ; + move camx(pc),d0 + sub ob_x(a5),d0 + move camz(pc),d1 + sub ob_z(a5),d1 + bra.s calcangle_ + +calcangle ;angle of object a5 to object a0... + ; + move ob_x(a0),d0 + sub ob_x(a5),d0 + move ob_z(a0),d1 + sub ob_z(a5),d1 + ; +calcangle_ ;d0.w=x d1.w=y (dest-src)! + ; + moveq #0,d2 + tst d1 + bpl.s .hpos + moveq #16,d2 + neg d1 +.hpos tst d0 + bpl.s .wpos + eor #8,d2 + neg d0 +.wpos cmp d1,d0 + bmi.s .notsteep + bne.s .neq + move #$2000,d1 + bra.s .flow +.neq eor #4,d2 + exg d1,d0 +.notsteep tst d1 + bne.s .noflow + moveq #0,d1 + bra.s .flow +.noflow ext.l d0 + swap d0 + divu d1,d0 + lsr #6,d0 + and #1022,d0 + move .arc(pc,d0),d1 +.flow move.l .oct(pc,d2),d0 + eor d0,d1 + swap d0 + add d1,d0 + lsr #8,d0 + rts + ; +.oct dc 0,0,$4000,-1,0,-1,$c000,0 + dc $8000,-1,$4000,0,$8000,0,$c000,-1 +.arc incbin arc.bin + +currplayer dc.l 0 + +calcscene ;a5=player object + ; + move #$20,$dff09a + ; + move.l a5,currplayer + move.l ob_palette(a5),palette + move ob_thermo(a5),thermo + move ob_infra(a5),infra + move ob_pixsize(a5),pixsize + ; + clr.l shapelist + move.l a5,a0 + bsr calccamera + bsr makewalls + ; + lea objects(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq.s .done + cmp.l currplayer(pc),a5 + beq.s .loop + move.l ob_render(a5),a0 + jsr (a0) + bra.s .loop +.done ; + lea gore(pc),a5 + ; +.loop2 move.l (a5),a5 + tst.l (a5) + beq.s .done2 + ; + movem go_x(a5),d0/d2 + moveq #0,d1 + move.l go_shape(a5),a0 + move #$200,d7 + bsr drawshape_q + ; + bra.s .loop2 + ; +.done2 move #$8020,$dff09a + ; + rts + +ipals dc.l palettesb,palettesw,palettesr + +blitscene bclr #7,ob_update(a5) + beq.s .noupdate + bsr showstats + ; +.noupdate move ob_messtimer(a5),d0 + bpl.s .mskip + addq #1,d0 + beq.s .mdone + neg ob_messtimer(a5) + move.l ob_window(a5),a0 + bsr putstrip + bsr printmess + bra.s .mskip + ; +.mdone clr ob_messtimer(a5) + move.l ob_window(a5),a0 + bsr putstrip +.mskip ; + rts + +drawscene ;a5=player + ; +.wait tst showflag + bne.s .wait + ; + move.l ob_window(a5),a0 + bsr dbwindow + ; + bsr castwalls + bsr makeqstrip + bsr renderwalls + ; + move floorflag(pc),d0 + ble.s .nofloor + ; + move camy(pc),d0 + neg d0 + moveq #-1,d1 + move maxy(pc),d7 + subq #1,d7 + lea groundtile,a0 + bsr flat + ; +.nofloor move roofflag(pc),d0 + ble.s .noflat + ; + move #-255,d0 + sub camy(pc),d0 + moveq #1,d1 + move miny(pc),d7 + lea ceilingtile,a0 + bsr flat + ; +.noflat bsr drawshapes + bsr drawblood + ; + move.l currplayer(pc),a0 + move ob_pixsizeadd(a0),d0 + beq .done + add d0,ob_pixsize(a0) + move ob_pixsize(a0),d0 + beq .fin + cmp #24,d0 + bne .pix + ; + ;ok, big pixels + ; + move finished2(pc),finished + bne .pix + ; + move #$20,$dff09a + move ob_telex(a0),ob_x(a0) + move ob_telez(a0),ob_z(a0) + move ob_telerot(a0),ob_rot(a0) + neg ob_pixsizeadd(a0) + move #$8020,$dff09a + bra.s .pix + ; +.fin clr ob_pixsizeadd(a0) + ; +.pix move d0,pixsize + bsr pixelate + ; +.done rts + +vbhandler ; + subq #1,(a1)+ + addq #1,(a1) + ; + tst showflag + beq.s .noshow + ; + ;don't show if beam in the way! + ; + move.l $dff004,d0 + lsr.l #8,d0 ;beampos + and #$1ff,d0 + cmp minbpos(pc),d0 + bcs.s .ok + cmp maxbpos(pc),d0 + bcs.s .noshow + ; +.ok clr showflag + lea window1,a0 + bsr showwindowq + lea window2,a0 + bsr showwindowq + ; +.noshow bsr sfxvbint + ; + move fadevol(pc),d0 + beq.s .nofade + move.l medat(pc),a1 + sub #$40,fadevol + bne.s .setvol + jsr 12(a1) + bra.s .nofade +.setvol move fadevol(pc),d0 + lsr #8,d0 + jsr 16(a1) + ; +.nofade btst #0,framecnt+1 + beq rts + tst paused + bne exit_vb2 + ; + ;OK, movement/animation stuff! + ; + movem.l d0-d7/a0-a6,-(a7) + ; + bsr readjoys + bsr dodoors + bsr doanims + bsr moveblood + ; + move.l a7,obj_stack + lea objects(pc),a5 + ; +obj_loop move.l (a5),a5 + tst.l (a5) + beq exit_vb + ; + move.l ob_logic(a5),a0 + jsr (a0) + ; + ;check collision! + ; + move ob_collwith(a5),d0 + beq.s obj_loop + ; + move ob_rad(a5),d1 + move ob_x(a5),d6 + move ob_z(a5),d7 + ; + lea objects(pc),a0 + ; +.loop2 move.l (a0),a0 + cmp.l a5,a0 + bne.s .this + ; + clr.l ob_washit(a5) ;not hit! can get hit next time... + bra obj_loop +.this ; + move ob_colltype(a0),d2 + and d0,d2 + beq.s .loop2 + ; + move ob_rad(a0),d2 + add d1,d2 ;r sum + ; + move ob_x(a0),d3 + sub d6,d3 + bpl.s .xpl + neg d3 +.xpl cmp d2,d3 + bcc.s .loop2 + ; + move ob_z(a0),d4 + sub d7,d4 + bpl.s .ypl + neg d4 +.ypl cmp d2,d4 + bcc.s .loop2 + ; + mulu d2,d2 + mulu d3,d3 + mulu d4,d4 + add.l d4,d3 + cmp.l d2,d3 + bcc.s .loop2 + ; + cmp.l ob_washit(a5),a0 + beq obj_loop + move.l a0,ob_washit(a5) + ; + move finished2(pc),d0 + bne obj_loop + ; + move.l #killobject3,killjsr + movem.l a0/a5,obj_a0 + exg.l a0,a5 + ; + move ob_damage(a0),d0 + move.l ob_hit(a5),a1 + sub d0,ob_hitpoints(a5) + bgt.s hit_skip + move.l ob_die(a5),a1 + ; +hit_skip jsr (a1) + ; +hit_ret move.l #killobject2,killjsr + movem.l obj_a0(pc),a0/a5 + ; + move ob_damage(a0),d0 + move.l ob_hit(a5),a1 + sub d0,ob_hitpoints(a5) + bgt.s hit_skip2 + move.l ob_die(a5),a1 + ; +hit_skip2 jsr (a1) + ; + bra obj_loop + ; +exit_vb movem.l (a7)+,d0-d7/a0-a6 +exit_vb2 st doneflag + moveq #0,d0 + ; +rts rts + +obj_a0 dc.l 0 +obj_a5 dc.l 0 +obj_stack dc.l 0 +killjsr dc.l killobject2 + +killobject ; + move.l killjsr(pc),a0 + jmp (a0) + +killobject2 move.l a5,a0 + killitem objects + move.l a0,a5 + move.l obj_stack(pc),a7 + bra obj_loop + +killobject3 move.l a5,a0 + killitem objects + move.l obj_stack(pc),a7 + bra hit_ret + +bloodspeed bsr rndw + ext.l d0 + lsl.l #2,d0 + rts + +bloodspeed2 bsr rndw + ext.l d0 + lsl.l #5,d0 + rts + +bloodspeed3 bsr rndw + ext.l d0 + lsl.l #4,d0 + rts + +makesparksq move.l ob_chunks(a5),a2 + ; +makesparks ;a2=sparks + ; + movem.l ob_x(a5),d2-d4 + move 2(a2),d5 + subq #1,d5 + ; +.loop addlast objects + beq .rts + movem.l d2-d4,ob_x(a0) + bsr bloodspeed2 + move.l d0,ob_xvec(a0) + bsr bloodspeed2 + move.l d0,ob_yvec(a0) + bsr bloodspeed2 + move.l d0,ob_zvec(a0) + move.l a2,ob_shape(a0) + move d5,ob_frame(a0) + move.l #sparkslogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + bsr rndw + and #15,d0 + add #15,d0 + move d0,ob_delay(a0) + dbf d5,.loop +.rts rts + +sparkslogic subq #1,ob_delay(a5) + ble killobject + movem.l ob_x(a5),d0-d2 + add.l ob_xvec(a5),d0 + add.l ob_yvec(a5),d1 + add.l ob_zvec(a5),d2 + movem.l d0-d2,ob_x(a5) + rts + +bloodymess ;throw random blood splots everywhere! + ; + bsr bloodspeed2 + add.l ob_x(a5),d0 + move.l d0,d2 + bsr bloodspeed2 + add.l ob_gutsy(a5),d0 + move.l d0,d3 + bsr bloodspeed2 + add.l ob_z(a5),d0 + move.l d0,d4 + ; +.loop addlast blood + beq.s .done + ; + movem.l d2-d4,bl_x(a0) + bsr bloodspeed + move.l d0,bl_xvec(a0) + bsr bloodspeed + move.l d0,bl_yvec(a0) + bsr bloodspeed + move.l d0,bl_zvec(a0) + bsr rndw + and #$031,d0 + move d0,bl_color(a0) + ; + dbf d7,.loop + ; +.done rts + +bloodymess2 ;throw random blood splots everywhere! + ; + bsr bloodspeed2 + add.l ob_x(a5),d0 + move.l d0,d2 + bsr bloodspeed2 + add.l ob_gutsy(a5),d0 + move.l d0,d3 + bsr bloodspeed2 + add.l ob_z(a5),d0 + move.l d0,d4 + ; +.loop addlast blood + beq.s .done + ; + movem.l d2-d4,bl_x(a0) + bsr bloodspeed3 + move.l d0,bl_xvec(a0) + bsr bloodspeed3 + move.l d0,bl_yvec(a0) + bsr bloodspeed3 + move.l d0,bl_zvec(a0) + bsr rndw + and #$031,d0 + move d0,bl_color(a0) + ; + dbf d7,.loop + ; +.done rts + +chunklogic move mode(pc),d0 + beq chunklogic2 + ; + add.l #$8000,ob_yvec(a5) + move.l ob_yvec(a5),d0 + add.l ob_y(a5),d0 + blt .skip + ; + ;OK...hit ground! + ; + bsr splat + addlast gore + bne.s .gok + ; + move.l gore(pc),a0 + killitem gore + addlast gore + beq killobject + ; +.gok move ob_x(a5),go_x(a0) + move ob_z(a5),go_z(a0) + move.l ob_shape(a5),a1 + move ob_frame(a5),d0 + add.l 12(a1,d0*4),a1 + move.l a1,go_shape(a0) + ; + bra killobject + ; +.skip move.l d0,ob_y(a5) + movem.l ob_xvec(a5),d6-d7 + add.l ob_x(a5),d6 + add.l ob_z(a5),d7 + bsr checknew + beq.s .newok + clr.l ob_xvec(a5) + clr.l ob_zvec(a5) + rts + ; +.newok move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + rts + +chunklogic2 add.l #$8000,ob_yvec(a5) + move.l ob_yvec(a5),d0 + add.l d0,ob_y(a5) + blt.s .ok + ;bsr splat + bra killobject +.ok movem.l ob_xvec(a5),d0-d1 + add.l d0,ob_x(a5) + add.l d1,ob_z(a5) + rts + +splat move.l splatsfx(pc),a0 + moveq #32,d0 + moveq #-1,d1 + bra playsfx + +blowobject move.l diesfx(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx + ; + moveq #31,d7 + bsr bloodymess2 + ; + move.l ob_chunks(a5),a4 + move 2(a4),d7 + subq #1,d7 + ; +.loop addlast objects + beq killobject + movem.l ob_x(a5),d0-d2 + move.l #-64<<16,d1 + movem.l d0-d2,ob_x(a0) + ; + bsr bloodspeed3 + move.l d0,ob_xvec(a0) + bsr bloodspeed3 + sub.l #$40000,d0 + move.l d0,ob_yvec(a0) + bsr bloodspeed3 + move.l d0,ob_zvec(a0) + ; + clr ob_colltype(a0) + clr ob_collwith(a0) + move.l #chunklogic,ob_logic(a0) + move.l a4,ob_shape(a0) + move.l #drawshape_1,ob_render(a0) + move d7,ob_frame(a0) + ; + move an_maxw(a4),d0 + move d0,ob_rad(a0) + mulu d0,d0 + move.l d0,ob_radsq(a0) + ; + dbf d7,.loop + bra killobject + +hurtngrunt move.l a0,-(a7) + bsr rndw + and #3,d0 + cmp lastgrunt(pc),d0 + bne.s .new + addq #1,d0 + and #3,d0 +.new move d0,lastgrunt + lea grunttable(pc),a0 + move.l 0(a0,d0*4),a0 + move.l (a0),a0 + moveq #64,d0 + moveq #1,d1 + bsr playsfx + move.l (a7)+,a0 + ; +hurtobject move ob_colltype(a0),d0 + and #24,d0 + bne.s .rts + ; + moveq #23,d7 + bsr bloodymess + move ob_hurtpause(a5),ob_hurtwait(a5) + beq .rts + move #4,ob_frame(a5) + move.l ob_logic(a5),ob_oldlogic2(a5) + move.l ob_hit(a5),ob_oldhit(a5) + move.l #pauselogic2,ob_logic(a5) + move.l #rts,ob_hit(a5) +.rts rts + +pauselogic2 subq #1,ob_hurtwait(a5) + bgt.s .rts + clr ob_frame(a5) + move.l ob_oldlogic2(a5),ob_logic(a5) + move.l ob_oldhit(a5),ob_hit(a5) +.rts rts + +pauselogic subq #1,ob_delay(a5) + bgt.s .skip + ; + bsr rnddelay + move.l ob_oldlogic(a5),ob_logic(a5) + ; + ;if in front of player, continue on old course... + ; + bsr pickplayer + tst ob_invisible(a0) + bne.s .useold ;can't see player! no intelligence... + ; + bsr calcangle + move ob_rot(a0),d1 + and #255,d1 + sub d0,d1 + bpl.s .pl + neg d1 +.pl cmp #64,d1 + bcs.s .skip + cmp #192,d1 + bcc.s .skip + ; +.useold move ob_oldrot(a5),ob_rot(a5) + bsr calcvecs + ; +.skip rts + +shoot ; + ;fire off a bullet... + ; + ;d2 : colltype + ;d3 : collwith + ;d4 : hitpoints + ;d5 : damage + ;d6 : speed + ;a2=bullet shape + ;a3=sparks shape + ; + addfirst objects + beq .rts + ; + move ob_bouncecnt(a5),ob_bouncecnt(a0) + move ob_x(a5),ob_x(a0) + move ob_y(a5),d0 + add ob_firey(a5),d0 + move d0,ob_y(a0) + move ob_z(a5),ob_z(a0) + move.l #firelogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + move.l #rts,ob_hit(a0) + move.l #killobject,ob_die(a0) + move d2,ob_colltype(a0) + move d3,ob_collwith(a0) + move d4,ob_hitpoints(a0) + move d5,ob_damage(a0) + move d6,ob_movspeed(a0) + move.l a2,ob_shape(a0) + clr ob_frame(a0) + move.l a3,ob_chunks(a0) + ; + move ob_rot(a5),d0 + and #255,d0 + move.l camrots(pc),a1 + ; + ifne aga + lea 0(a1,d0*8),a1 + elseif + lsl #3,d0 + lea 0(a1,d0),a1 + endc + ; + move 2(a1),d0 + move d0,ob_nxvec(a0) + neg d0 + muls d6,d0 + add.l d0,d0 + move 6(a1),d1 + move d1,ob_nzvec(a0) + muls d6,d1 + add.l d1,d1 + ; + movem.l d0-d1,ob_xvec(a0) + add.l d0,ob_x(a0) + add.l d1,ob_z(a0) + ; + move #32,ob_rad(a0) + move.l #32*32,ob_radsq(a0) + ; +.rts rts + +fire1 bsr pickplayer + bsr calcangle + move d0,-(a7) + bsr rndw + tst ob_invisible(a0) + bne.s .inv + and #16,d0 + subq #8,d0 +.inv add (a7)+,d0 + and #255,d0 + move d0,ob_rot(a5) + bsr calcvecs + move #7,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #pauselogic,ob_logic(a5) + clr.l ob_frame(a5) + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #1,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet1,a2 + lea sparks1,a3 + ; + bsr shoot + ; + rts + +checkvecs move.l ob_x(a5),d6 + add.l ob_xvec(a5),d6 + move.l ob_z(a5),d7 + add.l ob_zvec(a5),d7 + bra checknew ;ok to stand here? + +pickplayer ;pick a player at random + move.l player1(pc),a0 + tst gametype + beq.s .rts + ; + move ob_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move ob_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 ;dist to player 1 + ; + move.l player2(pc),a1 + move ob_x(a5),d1 + sub ob_x(a1),d1 + muls d1,d1 + move ob_z(a5),d2 + sub ob_z(a1),d2 + muls d2,d2 + add.l d2,d1 ;dist to player 2 + ; + cmp.l d1,d0 + bcs.s .rts + ; + move.l a1,a0 + ; +.rts rts + +checkcoll ;check for collision between a5, and a0 + ; + move ob_rad(a5),d1 + move ob_rad(a0),d2 + add d1,d2 ;r sum + ; + move ob_x(a0),d3 + sub ob_x(a5),d3 + bpl.s .xpl + neg d3 +.xpl cmp d2,d3 + bcc.s .no + ; + move ob_z(a0),d4 + sub ob_z(a5),d4 + bpl.s .ypl + neg d4 +.ypl cmp d2,d4 + bcc.s .no + ; + mulu d2,d2 + mulu d3,d3 + mulu d4,d4 + add.l d4,d3 + cmp.l d2,d3 + bcc.s .no + ; + moveq #-1,d0 + rts + ; +.no moveq #0,d0 + rts + +baldycharge ; + ;baldy charging at player! + ; + bsr checkvecs + beq baldy_skip + ; +baldy_tonorm move.l ob_movspeed(a5),d0 + lsr.l #2,d0 + move.l d0,ob_movspeed(a5) + ; + move.l ob_framespeed(a5),d0 + lsr.l #2,d0 + move.l d0,ob_framespeed(a5) + ; + move.l #baldylogic,ob_logic(a5) + bsr rnddelay + ; + bra monsterfix + ; +baldy_skip ;close to player? start throwing punches around! + ; + bsr pickplayer + bsr calcangle + sub ob_rot(a5),d0 + cmp #32,d0 + bgt baldy_tonorm + cmp #-32,d0 + blt baldy_tonorm + ; + move.l a0,ob_washit(a5) + bsr checkcoll + beq monsternew ;no collisions! + ; + ;go into punch mode! + ; + move.l #baldypunch,ob_logic(a5) + move ob_punchrate(a5),ob_delay(a5) + clr.l ob_frame(a5) + rts + +baldypunch ; + bsr pickplayer + bsr checkcoll + bne.s .doit + ; + clr.l ob_frame(a5) + bra baldy_tonorm + ; +.doit subq #1,ob_delay(a5) + ble.s .punch + rts +.punch move ob_punchrate(a5),ob_delay(a5) + moveq #0,d0 ;stand frame + cmp ob_frame(a5),d0 + bne .skip + ; + clr.l ob_washit(a5) ;punch! + bsr calcangle + move d0,ob_rot(a5) + moveq #5,d0 +.skip move d0,ob_frame(a5) + rts + +calcbangle bsr calcangle + tst ob_invisible(a0) + beq.s .notinv + ; + ;invisible, add some randomeness! + ; + move d0,-(a7) + bsr rndw + and #127,d0 + sub #64,d0 + add (a7)+,d0 + and #255,d0 + ; +.notinv move d0,ob_rot(a5) + rts + +baldylogic ; + ;OK, what can baldy do... + ; + ;how about, walk around similar to the marine, but randomly + ;charge at you? + ; + ;then, if he's close enough, he throws a punch! + ; + subq #1,ob_delay(a5) + bgt monstermove ;charge? + ; + bsr pickplayer + bsr calcbangle + ; + move.l ob_movspeed(a5),d0 + lsl.l #2,d0 + move.l d0,ob_movspeed(a5) + move.l ob_framespeed(a5),d0 + lsl.l #2,d0 + move.l d0,ob_framespeed(a5) + ; + bsr calcvecs + move.l #baldycharge,ob_logic(a5) + ; + rts + +terralogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + bgt monstermove + ; + ;OK, terra goes apeshit! stand there firing off at player! + ;use punchrate as firedelay! + ; + clr ob_frame(a5) + move #1,ob_delay(a5) + move ob_firecnt(a5),ob_delay2(a5) + move.l #terralogic2,ob_logic(a5) + rts + +terralogic2 ; + subq #1,ob_delay(a5) + bgt.s .rts + ; + move ob_firerate(a5),ob_delay(a5) + ; + ;OK, to to face player and fire away! + ; + bsr pickplayer + bsr calcangle + move d0,ob_rot(a5) + bsr calcvecs + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #16,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet3,a2 + lea sparks3,a3 + ; + bsr shoot + ; + subq #1,ob_delay2(a5) + bgt.s .rts + ; + bsr rnddelay + move.l #terralogic,ob_logic(a5) + ; +.rts rts + +monsterlogic ; + move ob_rot(a5),ob_oldrot(a5) + ;monster cruising around minding his own business... + ; + subq #1,ob_delay(a5) + ble fire1 + ; +monstermove bsr checkvecs + beq.s monsternew + ; + ;OK, try 90/-90 degrees... + ; +monsterfix bsr rndw + moveq #64,d1 + tst d0 + bpl.s .umk + moveq #-64,d1 +.umk add d1,ob_rot(a5) + bsr calcvecs + bsr checkvecs + beq.s monsternew + ; + add #128,ob_rot(a5) + bsr calcvecs + bsr checkvecs + beq.s monsternew + ; + move ob_oldrot(a5),d0 + add #128,d0 + move d0,ob_rot(a5) + ; + bsr calcvecs + bsr checkvecs + ; +monsternew move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + and #3,ob_frame(a5) + rts + +calcvecs move ob_rot(a5),d0 + and #255,d0 + move.l camrots(pc),a0 + ; + ifne aga + lea 0(a0,d0*8),a0 + elseif + lsl #3,d0 + lea 0(a0,d0),a0 + endc + ; + move ob_movspeed(a5),d4 + move d4,d5 + muls 2(a0),d4 + add.l d4,d4 + neg.l d4 + move.l d4,ob_xvec(a5) + muls 6(a0),d5 + add.l d5,d5 + move.l d5,ob_zvec(a5) + rts + +playerdead subq #1,ob_delay(a5) + bgt.s .rts + ; + cmp #2,gametype + bne.s .notcom + ; + ;combat game! + ; + move #3,finished2 + move #2,ob_pixsizeadd(a5) + move.l #rts,ob_logic(a5) + move.l player1,a0 + cmp.l a5,a0 + bne.s .got + move.l player2,a0 +.got move #2,ob_pixsizeadd(a0) +.rts rts +.notcom ; + move.l #waitrestart,ob_logic(a5) + ; +waitrestart bsr checkfireb + beq.s .rts + ; + lea p1x(pc),a0 + lea player1_+4,a1 + cmp.l player1,a5 + beq.s .got + lea p2x(pc),a0 + lea player2_+4,a1 +.got lea ob_info(a5),a2 + move #(objinfof-objinfo-4)>>1-1,d0 +.loop move (a1)+,(a2)+ + dbf d0,.loop + move (a0)+,ob_x(a5) + move (a0)+,ob_z(a5) + move (a0)+,ob_rot(a5) + ; + move.l ob_shape(a5),a0 + move.l 4(a0),ob_chunks(a5) + move.l (a0),a0 + move.l a0,ob_shape(a5) + ; + bsr resetplayer + ; +.rts rts + +playerdeath addq #4,ob_rot(a5) + addq #4,ob_eyey(a5) + cmp #-32,ob_eyey(a5) + blt.s .rts + move #-32,ob_eyey(a5) + move.l #playerdead,ob_logic(a5) + move #63,ob_delay(a5) + ; + cmp #2,gametype + bne.s .notcom + ; + move.l player1,a0 + cmp.l a5,a0 + bne.s .got + move.l player2,a0 +.got tst ob_hitpoints(a0) + ble.s .draw + ; +.win move.l a5,-(a7) + move.l a0,a5 + addq #1,wins1 + cmp.l player1,a5 + beq.s .wd + subq #1,wins1 + addq #1,wins2 +.wd st ob_update(a5) + clr ob_collwith(a5) + clr ob_colltype(a5) + bsr message + dc.b 'winner!',0 + even + move.l (a7)+,a5 + st ob_update(a5) + bsr message + dc.b 'loser!',0 + even + ; +.draw +.notcom ; +.rts rts + +redpal move.l #palettesr,ob_palette(a5) + move #2,ob_paltimer(a5) + rts + +playerhit tst ob_damage(a0) + beq.s .rts + st ob_update(a5) + bsr redpal +.rts rts + +playerdie bsr redpal + clr ob_hitpoints(a5) + st ob_update(a5) + move.l #playerdeath,ob_logic(a5) + clr ob_colltype(a5) + clr ob_collwith(a5) + rts + +healthgot bsr playtsfx + addq #5,ob_hitpoints(a0) + cmp #25,ob_hitpoints(a0) + ble.s .skip + move #25,ob_hitpoints(a0) +.skip st ob_update(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'health bonus!',0 + even + move.l (a7)+,a5 + bra killobject + +playtsfx move.l a0,-(a7) + move.l tokensfx(pc),a0 + moveq #64,d0 + moveq #0,d1 + bsr playsfx + move.l (a7)+,a0 + rts + +weapongot bsr playtsfx + add #$100,ob_weapon(a0) + cmp #$1900,ob_weapon(a0) + ble.s .skip + move #$1900,ob_weapon(a0) +.skip st ob_update(a0) + move.l a5,-(a7) + move.l a0,a5 + move ob_wlevel(a5),d2 + bsr calcwlevel + cmp ob_wlevel(a5),d2 + beq.s .nob + bsr message + dc.b 'weapon boost!',0 + even + bra.s .nob2 +.nob bsr message + dc.b 'weapon bonus...',0 + even +.nob2 move.l (a7)+,a5 + bra killobject + +invisigot add #1500,ob_invisible(a0) + move.l #rts,ob_render(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr calcwlevel + bsr message + dc.b 'invisibility!',0 + even + move.l (a7)+,a5 + bra killobject + +thermogot add #1500,ob_thermo(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'got the thermo glasses!',0 + even + move.l (a7)+,a5 + bra killobject + +playertimers tst ob_thermo(a5) + beq.s .noth + subq #1,ob_thermo(a5) + bne.s .noth + bsr message + dc.b 'thermo glasses out...',0 + even + ; +.noth tst ob_messtimer(a5) + ble.s .notm + subq #2,ob_messtimer(a5) +.notm ; + tst ob_invisible(a5) + beq.s .noti + subq #1,ob_invisible(a5) + bne.s .noti + move.l #drawshape_8,ob_render(a5) + bsr message + dc.b 'invisibility out...',0 + even +.noti ; + tst ob_paltimer(a5) + beq.s .notp + subq #1,ob_paltimer(a5) + bne.s .notp + move.l #palettes,ob_palette(a5) +.notp ; + rts + +footstep move.l d0,-(a7) + move.l footstepsfx(pc),a0 + moveq #16,d0 + moveq #0,d1 + bsr playsfx + move.l (a7)+,d0 + rts + +cntrls dc.l joyx0,joyx1,joyx2 + +playerlogic bsr playertimers + ; + lea cntrls(pc),a0 + move ob_cntrl(a5),d0 + move.l 0(a0,d0*4),a0 + ; + move (a0),d0 ;joyx - rotate + muls ob_rotspeed(a5),d0 + add ob_rot(a5),d0 + and #255,d0 + move d0,ob_rot(a5) + ; + ;move... + ; + move 2(a0),d4 ;joyy + bne.s .speed + ; + and #255,ob_bounce(a5) + beq.s .nob + add #32,ob_bounce(a5) + cmp #128,ob_bounce(a5) + ble.s .nob + clr ob_bounce(a5) + bsr footstep + ; +.nob clr.l ob_frame(a5) + bra checkfire + ; +.speed add #16,ob_bounce(a5) + move ob_bounce(a5),d1 + sub #64,d1 + and #255,d1 + bne.s .fskip + bsr footstep +.fskip ; + move.l ob_framespeed(a5),d1 + add.l d1,ob_frame(a5) + and #3,ob_frame(a5) + ; + neg d4 + muls ob_movspeed(a5),d4 ;speed + move.l camrots(pc),a1 + ; + ifne aga + lea 0(a1,d0*8),a1 + elseif + lsl #3,d0 + lea 0(a1,d0),a1 + endc + ; + move d4,d5 ;real speed + muls 2(a1),d4 + add.l d4,d4 + muls 6(a1),d5 + add.l d5,d5 + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + ; + bsr mover + ; + move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + ; + tst ob_pixsizeadd(a5) + bne checkfire + ; + bsr checknew2 ;in a trigger zone? + beq.s checkfire + ; + move zo_ev(a4),d0 ;poly->event + bmi.s checkfire + ; + cmp #24,d0 + bne.s .notexit + ; + move #3,finished2 ;pattern done! + move #2,ob_pixsizeadd(a5) + ; +.notexit cmp #19,d0 + bcc.s .noclr + ; + ;OK, gotta clear all 'event' zones with same type! + ; + move.l map_poly(pc),a0 + move.l map_ppnt(pc),a1 + moveq #32,d1 +.loop2 cmp zo_ev(a0),d0 + bne.s .skip2 + neg zo_ev(a0) +.skip2 add.l d1,a0 + cmp.l a1,a0 + bcs.s .loop2 + ; +.noclr move.l a5,eventobj + bsr execevent + move.l eventobj(pc),a5 +checkfire ; + bsr checkfireb + beq .rts + ; + move ob_collwith(a5),d2 + and #3,d2 + eor #3,d2 ;colltype + ; + lea wtable(pc),a0 + move ob_wlevel(a5),d0 + movem 0(a0,d0),d3-d6 + movem.l 8(a0,d0),a2-a3 + ; + move.b ob_weapon(a5),d0 + sub d3,ob_weapon(a5) + cmp.b ob_weapon(a5),d0 + beq.s .noup + ; + bsr calcwlevel + st ob_update(a5) + ; +.noup moveq #0,d3 + bsr shoot + ; + move.l shootsfx,a0 + moveq #32,d0 + moveq #0,d1 + bsr playsfx + ; +.rts rts + +checkfireb lea cntrls(pc),a0 + move ob_cntrl(a5),d0 + move.l 0(a0,d0*4),a0 + tst 8(a0) + rts + +eventobj dc.l 0 + + ; + ;weaponuse.w + ;hitpoints + ;damage + ;speed + ; +wtable dc 0,1,1,32 + dc.l bullet1,sparks1 + dc $8,5,2,36 + dc.l bullet2,sparks2 + dc $10,10,3,40 + dc.l bullet3,sparks3 + dc $20,15,4,40 + dc.l bullet4,sparks4 + dc $40,20,7,24 + dc.l bullet5,sparks5 + +calcbounce ;calculate bounce vector...poly in a4, obj in a5 + ; + ;R=2 N (N dot V) - V + ; + ;where R=reflect vector, N=normal to poly, V=original vector + ; + subq #1,ob_bouncecnt(a5) + bge.s .nok + bsr makesparksq + bra killobject +.nok ; + movem ob_nxvec(a5),d0-d1 ;normalized dir + movem zo_na(a4),d2-d3 ;normal to poly + neg d2 + ; + ;calc dot product: + ; + move d0,d4 + muls d2,d4 + move d1,d5 + muls d3,d5 + add.l d5,d4 + add.l d4,d4 + swap d4 ;dot product? + ; + muls d4,d2 + lsl.l #2,d2 + swap d0 + clr d0 + sub.l d0,d2 + swap d2 + ; + muls d4,d3 + lsl.l #2,d3 + swap d1 + clr d1 + sub.l d1,d3 + swap d3 + ; + movem d2-d3,ob_nxvec(a5) + ; + neg d2 + muls ob_movspeed(a5),d2 + add.l d2,d2 + muls ob_movspeed(a5),d3 + add.l d3,d3 + ; + movem.l d2-d3,ob_xvec(a5) + ; + move.l d2,d6 + add.l ob_x(a5),d6 + move.l d3,d7 + add.l ob_z(a5),d7 + ; + bsr checknew + beq putfire + ; + bra calcbounce + +firelogic ; + move.l ob_xvec(a5),d6 + add.l ob_x(a5),d6 + move.l ob_zvec(a5),d7 + add.l ob_z(a5),d7 + ; + bsr checknew + bne calcbounce +.nokill ; +putfire move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + ; + addq #1,ob_frame(a5) + move ob_frame(a5),d0 + move.l ob_shape(a5),a0 + cmp 2(a0),d0 + bcs.s .skip + clr ob_frame(a5) +.skip ; + rts + +moveblood lea blood(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + add.l #$8000,bl_yvec(a5) + ; + movem.l bl_xvec(a5),d0-d2 + add.l d1,bl_y(a5) + blt.s .ok + ; + move.l a5,a0 + killitem blood + move.l a0,a5 + bra.s .loop + ; +.ok add.l d0,bl_x(a5) + add.l d2,bl_z(a5) + bra.s .loop + ; +.done rts + +drawblood lea blood(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + move bl_x(a5),d0 + sub camx(pc),d0 + move bl_y(a5),d1 + sub camy(pc),d1 + move bl_z(a5),d2 + sub camz(pc),d2 + ; + ;rotate x/z around cam... + ; + move d0,d3 + move d2,d5 + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 ;X + ; + muls cm3(pc),d3 + muls cm4(pc),d2 + add.l d3,d2 + add.l d2,d2 + swap d2 ;Z + ; + tst d2 + beq .loop + cmp #maxz,d2 + bcc .loop + ; + ext.l d0 + lsl.l #focshft,d0 + divs d2,d0 + cmp minx(pc),d0 + blt .loop + cmp maxx(pc),d0 + bge .loop + ; + ext.l d1 + lsl.l #focshft,d1 + divs d2,d1 + cmp miny(pc),d1 + blt .loop + cmp maxy(pc),d1 + bge .loop + ; + cmp #32,d2 + bcc.s .pix + ; + ;blit to screen! + ; + move.l window(pc),a0 + ; + move wi_bh(a0),d0 + subq #8,d0 + bsr rndn + move d0,d2 ;Y + ; + move wi_bw(a0),d0 + subq #8,d0 + bsr rndn ;X + add wi_x(a0),d0 + move d2,d1 + ; + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + moveq #46,d2 + bsr blit + ; + move #$4000,$dff09a + move.l a5,a0 + killitem blood + move.l a0,a5 + move #$c000,$dff09a + bra .loop +.pix ; + add midx(pc),d0 + add midy(pc),d1 + ; + move.l darktable(pc),a0 + move 0(a0,d2*2),d3 + eor #15,d3 + lsl #8,d3 ;shade of red! + ; + move.l cop(pc),a1 + ; + lea coloffs,a2 + add.l 0(a2,d0*4),a1 + mulu copmod(pc),d1 + ; + or bl_color(a5),d3 + move d3,0(a1,d1.l) + bra .loop + ; +.done rts + +drawshape_1 ; + move.l ob_shape(a5),a0 + move ob_frame(a5),d0 + add.l 12(a0,d0*4),a0 + move #$200,d7 ;scale + bra drawshape + +drawshape_8 ; + ;shape has 8 rotations, and a scale! + ; + bsr calcangle2 + add #16,d0 + sub ob_rot(a5),d0 + lsr #5,d0 + and #7,d0 + move ob_frame(a5),d1 + lsl #3,d1 + or d1,d0 + move.l ob_shape(a5),a0 + move ob_scale(a5),d7 + ; + ifne aga + add.l 12(a0,d0*4),a0 + elseif + lsl #2,d0 + add.l 12(a0,d0),a0 + endc + ; +drawshape move ob_x(a5),d0 + move ob_y(a5),d1 + move ob_z(a5),d2 +drawshape_q ; + ;A0=shape + ;D0=X + ;D1=Y + ;D2=Z + ;D7=sclae factor + ; + ;rotate Z around camera! + ; + sub camx(pc),d0 + sub camy(pc),d1 + sub camz(pc),d2 + ; + move d0,d3 + move d2,d5 + muls cm3(pc),d3 + muls cm4(pc),d2 + add.l d3,d2 + add.l d2,d2 + swap d2 + ; + tst d2 + ble .rts + cmp #maxz,d2 + bcc .rts + ; + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 + ; + move.l memat(pc),a1 + add.l #sh_size,memat + movem d0-d2,sh_x(a1) + move.l a0,sh_shape(a1) + move d7,sh_scale(a1) + ; + lea shapelist(pc),a2 +.loop move.l (a2),d0 + beq.s .end + move.l a2,a3 + move.l d0,a2 + cmp sh_z(a2),d2 ;nearer...further in list + ble.s .loop + move.l a2,(a1) + move.l a1,(a3) + rts +.end move.l d0,(a1) + move.l a1,(a2) +.rts rts + +mover ; + ;d4=x speed + ;d5=z speed + ;d6=x + ;d7=z + ; + ;return d0, ne if a wall was hit! + ;check only walls zone (player) + ; + neg.l d4 + moveq #0,d3 + add.l d4,d6 + bsr checknew + beq.s .xok + moveq #-1,d3 + sub.l d4,d6 +.xok ; + add.l d5,d7 + bsr checknew + beq.s .zok + moveq #-1,d3 + sub.l d5,d7 +.zok tst d3 + rts + +mover2 ; + ;d4=x speed + ;d5=z speed + ;d6=x + ;d7=z + ; + ;return d0, ne if a wall was hit! + ;check walls AND monster zones + ; + neg.l d4 + moveq #0,d3 + add.l d4,d6 + bsr checknew + bne.s .xbad + bsr checknew2 + beq.s .xok +.xbad moveq #-1,d3 + sub.l d4,d6 +.xok ; + add.l d5,d7 + bsr checknew + bne.s .zbad + bsr checknew2 + beq.s .zok +.zbad moveq #-1,d3 + sub.l d5,d7 +.zok tst d3 + rts + +checknew2 ;check trigger zone + move.l map_grid(pc),a0 + addq #4,a0 + bra.s checknew_ + +gs equ 1< furthest wall list. + ; + ;optimizations... + ;check if both z's are negative after rotation + ;check if projected left/rite ends are on screen + ; + addq #1,frame + ; + clr.l inlist + move.l #inlist,inlistf + ; + move.l map_poly(pc),a4 + move.l map_ppnt(pc),a3 + move.l map_grid(pc),a2 + movem camx(pc),d6-d7 ;x,z + lsr #grdshft,d6 + lsr #grdshft,d7 + lea gridoffs(pc),a6 + moveq #(gridoffsf-gridoffs)>>2-1,d5 + ; +.loop movem (a6)+,d0-d1 + add d6,d0 + cmp #32,d0 + bcc .skip + add d7,d1 + cmp #32,d1 + bcc .skip + ; + ;d0,d1=x/z of map to check! + ; + lsl #5,d1 ;Y*32... + add d1,d0 ;+X + lea 0(a2,d0*8),a0 ;mapgrid + move (a0)+,d4 ;how many polys here + bmi .skip + move (a0),d0 ;poly data offset + ; + ifne aga + lea 0(a3,d0*2),a0 + elseif + add d0,d0 + lea 0(a3,d0),a0 + endc + ; +.loop2 move (a0)+,d0 ;poly# + lsl #5,d0 + lea 0(a4,d0),a1 ;actual poly + move frame(pc),d0 + cmp zo_done(a1),d0 + beq .skip3 + move d0,zo_done(a1) + tst zo_open(a1) + bmi .skip3 + ; + ;OK, setup: + ; + ;d0=lx,d1=lz,d2=rx,d3=rz + ;d4=t,d5=sc,d6=dist + ; + ;back face/dist check... + ; + movem d4-d7,-(a7) + ; + movem zo_lx(a1),d0-d3 ;x1,z1,x2,z2 + movem camx(pc),d6-d7 + ; + sub d6,d0 + sub d7,d1 + sub d6,d2 + sub d7,d3 + ; + move d0,d4 + move d1,d5 + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 + ; + muls cm3(pc),d4 + muls cm4(pc),d1 + add.l d4,d1 + add.l d1,d1 + swap d1 ;LZ + ; + move d2,d4 + move d3,d5 + muls cm1(pc),d2 + muls cm2(pc),d5 + add.l d5,d2 + add.l d2,d2 + swap d2 ;RX + ; + muls cm3(pc),d4 + muls cm4(pc),d3 + add.l d4,d3 + add.l d3,d3 + swap d3 ;RZ + ; + ;check Z's... + tst d1 + bgt.s .zok + tst d3 + ble .skip2 +.zok ; + cmp #maxz,d1 + blt.s .zok2 + cmp #maxz,d3 + bge .skip2 +.zok2 ; + ;do backface check...generate a,b,c... + ; + rol.l #exshft,d0 + rol.l #exshft,d1 + rol.l #exshft,d2 + rol.l #exshft,d3 + ; + move d1,d4 + sub d3,d4 ;a + move d2,d5 + sub d0,d5 ;b + ; + move d0,d6 + muls d4,d6 + move d1,d7 + muls d5,d7 + add.l d7,d6 + bpl.s .front + ; + ;backface showing!... + bra .skip2 +.front ; + move.l memat(pc),a5 + ; + movem d0-d5,wl_lx(a5) + move.l d6,wl_c(a5) + ; + ;work out some screen positions! + tst d1 + bgt.s .z1ok + ; + ;lz bad, rz must be OK... + ; +.ov1 move minx(pc),wl_lsx(a5) + bra.s .z1sk + ; +.z1ok ext.l d0 + lsl.l #focshft,d0 + divs d1,d0 + bvs.s .ov1 + subq #1,d0 + cmp maxx(pc),d0 + bge .skip2 + move d0,wl_lsx(a5) +.z1sk ; + tst d3 + bgt.s .z2ok + ; + ;rz bad, lz must be OK... + ; +.ov2 move maxx(pc),wl_rsx(a5) + bra.s .z2sk + ; +.z2ok ext.l d2 + lsl.l #focshft,d2 + divs d3,d2 + bvs.s .ov2 + addq #1,d2 + cmp minx(pc),d2 + blt .skip2 + move d2,wl_rsx(a5) +.z2sk ; + cmp d1,d3 + bge.s .zskp + exg d1,d3 +.zskp movem d1/d3,wl_nz(a5) ;near/far Z + ; + move.l zo_t(a1),wl_t(a5) + move.l zo_t+4(a1),wl_t+4(a5) + move zo_sc(a1),wl_sc(a5) + move zo_open(a1),wl_open(a5) + ; + ;add to end of inlist... + ; + clr.l (a5) + move.l inlistf(pc),a1 + move.l a5,(a1) + move.l a5,inlistf + add.l #wl_size,memat + ; +.skip2 movem (a7)+,d4-d7 + ; +.skip3 dbf d4,.loop2 ;finish sq + ; +.skip dbf d5,.loop ;gridoffs + ; +makeoutlist ;create outlist from inlist + ; + clr.l outlist + move.l #outlist,outlistf + ; +.loop lea inlist(pc),a0 + move.l (a0),d0 + beq .done + move.l a0,a2 ;save previous! + move.l d0,a0 + ; + ;OK, see if any are in front of a0... + ; + lea inlist(pc),a1 + ; +.loop2 move.l (a1),d0 + beq .none + move.l a1,a3 + move.l d0,a1 + cmp.l a0,a1 + beq.s .loop2 ;don't compare with self! + ; + ;check screen pos overlap... + ; + move wl_rsx(a0),d0 + cmp wl_lsx(a1),d0 + blt .loop2 + ; + move wl_lsx(a0),d1 + cmp wl_rsx(a1),d1 + bgt .loop2 + ; + ;check near/far Z overlap + ; + move wl_nz(a1),d2 + cmp wl_fz(a0),d2 + bge .loop2 ;behind! + ; + move wl_fz(a1),d2 + cmp wl_nz(a0),d2 + ble .swap + ; + ;look at a0 points against a1 line... + ; + movem wl_a(a1),d5-d6 + move.l wl_c(a1),d7 + ; + move wl_lx(a1),d0 + sub wl_lx(a0),d0 + muls d5,d0 + move wl_lz(a1),d1 + sub wl_lz(a0),d1 + muls d6,d1 + add.l d1,d0 + eor.l d7,d0 + ; + move wl_lx(a1),d1 + sub wl_rx(a0),d1 + muls d5,d1 + move wl_lz(a1),d2 + sub wl_rz(a0),d2 + muls d6,d2 + add.l d2,d1 + eor.l d7,d1 + ; + ;if both a0 in front, no swap + ; + move.l d0,d4 + or.l d1,d4 + bpl .loop2 ;both a0's in front of a1! + ; + ;if both a0 behind, swap + ; + and.l d1,d0 + bmi .swap ;both a0's behind a1! + ; + ;look at a1 points against a0 line! + ; + movem wl_a(a0),d5-d6 + move.l wl_c(a0),d7 + ; + move wl_lx(a0),d2 + sub wl_lx(a1),d2 + muls d5,d2 + move wl_lz(a0),d3 + sub wl_lz(a1),d3 + muls d6,d3 + add.l d3,d2 + eor.l d7,d2 + ; + move wl_lx(a0),d3 + sub wl_rx(a1),d3 + muls d5,d3 + move wl_lz(a0),d4 + sub wl_rz(a1),d4 + muls d6,d4 + add.l d4,d3 + eor.l d7,d3 + ; + move.l d2,d4 + and.l d3,d4 + bmi .loop2 ;both a1's behind a0! + ; + or.l d3,d2 + bmi .loop2 + ; +.swap move.l a1,a0 + move.l a3,a2 + bra .loop2 + ; +.none ;OK, none in front of this (a0) + ; + move.l (a0),(a2) ;unlink from inlist + clr.l (a0) + ; + move.l outlistf(pc),a2 + move.l a0,(a2) + move.l a0,outlistf + bra .loop + ; +.done rts + + elseif + +makeoutlist2 ;create outlist from inlist + ; +.loop0 lea inlist(pc),a0 + ; +.loop move.l (a0),d0 + beq .done + move.l a0,a2 ;save previous! + move.l d0,a0 + ; + ;OK, see if any are in front of a0... + ; + lea inlist(pc),a1 + ; +.loop2 move.l (a1),d0 + beq .none + move.l a1,a3 + move.l d0,a1 + ; + cmp.l a0,a1 + beq.s .loop2 ;don't compare with self! + ; + ;see if a1 is in front of a0 + ; + move wl_nz(a1),d0 + cmp wl_fz(a0),d0 + bge .loop2 ;behind! + ; + move wl_fz(a1),d0 + cmp wl_nz(a0),d0 + ble .swap + ; + ;now, compare screen x coords..... + ; + move wl_rsx(a0),d0 + cmp wl_lsx(a1),d0 + blt .loop2 + ; + move wl_lsx(a0),d0 + cmp wl_rsx(a1),d0 + bgt .loop2 + ; + ;look at a0 points against a1 line + ; + ;If Sgn((x3-x1)*a2+(y3-y1)*b2)<>Sgn(c2) + ; If Sgn((x3-x2)*a2+(y3-y2)*b2)<>Sgn(c2) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + movem wl_a(a1),d5-d6 + move.l wl_c(a1),d7 + ; + move wl_lx(a1),d0 + sub wl_lx(a0),d0 + muls d5,d0 + move wl_lz(a1),d1 + sub wl_lz(a0),d1 + muls d6,d1 + add.l d1,d0 + eor.l d7,d0 + ; + move wl_lx(a1),d1 + sub wl_rx(a0),d1 + muls d5,d1 + move wl_lz(a1),d2 + sub wl_rz(a0),d2 + muls d6,d2 + add.l d2,d1 + eor.l d7,d1 + ; + ;OK, screen X's overlap... + ;if both a0 in front, no swap + ; + move.l d0,d4 + or.l d1,d4 + bpl .loop2 + ; + ;if both a0 behind, swap + ; + move.l d0,d4 + and.l d1,d4 + bmi .swap + ; + ;bra .loop2 + ; + ;elseif + ;look at a1 points against a0 line + ; + ;If Sgn((x1-x3)*a1+(y1-y3)*b1)=Sgn(c1) + ; If Sgn((x1-x4)*a1+(y1-y4)*b1)=Sgn(c1) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + movem wl_a(a0),d5-d6 + move.l wl_c(a0),d7 + ; + move wl_lx(a0),d2 + sub wl_lx(a1),d2 + muls d5,d2 + move wl_lz(a0),d3 + sub wl_lz(a1),d3 + muls d6,d3 + add.l d3,d2 + eor.l d7,d2 + ; + move wl_lx(a0),d3 + sub wl_rx(a1),d3 + muls d5,d3 + move wl_lz(a0),d4 + sub wl_rz(a1),d4 + muls d6,d4 + add.l d4,d3 + eor.l d7,d3 + ; + ;if both a1's behind, no swap + ; + move.l d2,d4 + and.l d3,d4 + bmi .loop2 ;both a1's behind... + ; + ;if both a1's in front, swap + move.l d2,d4 + or.l d3,d4 + bpl .swap + ; + bra .loop2 + ; + ;elseif + ; +.swap ;a1 is infront of a0! make a1 new frontmost + bra .loop + move.l a1,a0 + move.l a3,a2 + bra .loop2 + ; +.none ;OK, none in front of this (a0) + ; + move.l (a0),(a2) ;unlink from inlist + clr.l (a0) + move.l outlistf(pc),a2 + move.l a0,(a2) + move.l a0,outlistf + bra .loop0 + ; +.done ;move.l inlist(pc),d0 + ;bne .loop0 + rts + + elseif + +castwalls ;process 'walls' list + ; + move.l castrots(pc),a6 + move minx(pc),d7 + ; + ifne aga + lea 0(a6,d7*8),a6 + elseif + move d7,d0 + lsl #3,d0 + lea 0(a6,d0),a6 + endc + ; + move.l vertdraws(pc),a4 + ; +.loop ;do this vert line! + ; + lea outlist(pc),a5 + ; +.loop2 move.l (a5),d0 + beq .empty + move.l d0,a5 + ; + cmp wl_lsx(a5),d7 + blt.s .loop2 + cmp wl_rsx(a5),d7 + bgt.s .loop2 + ; + movem wl_lx(a5),d0-d1 + muls (a6),d0 + muls 2(a6),d1 + add.l d1,d0 ;LX! + bgt .loop2 + ; + movem wl_rx(a5),d1-d2 + muls (a6),d1 + muls 2(a6),d2 + add.l d2,d1 ;RX! + blt .loop2 + ; + sub.l d0,d1 + ; + swap d1 + tst d1 + ble.s .dfix + neg.l d0 + divu d1,d0 + bvc.s .noov +.dfix moveq #-1,d0 +.noov lsr #1,d0 ;fraction -> unsigned + ; + cmp wl_open(a5),d0 + bcs.s .loop2 + ; + movem wl_lx(a5),d1-d2 + muls 4(a6),d1 + muls 6(a6),d2 + add.l d2,d1 + add.l d1,d1 ;lz + ; + movem wl_rx(a5),d2-d3 + muls 4(a6),d2 + muls 6(a6),d3 + add.l d3,d2 + add.l d2,d2 ;rz + ; + sub.l d1,d2 + swap d2 + muls d0,d2 + add.l d2,d2 + add.l d1,d2 + ; + swap d2 + ; + cmp #exone,d2 + blt .loop2 + cmp #maxz<destlen? + bcc.s .skip + move.l fileheader+6(pc),d4 ;length to allocate +.skip ; + moveq #14,d6 + add fileheader+4(pc),d6 + bsr loadit + move.l d0,a0 ;src + add.l d6,d0 ;dest + move.l d0,a1 + jsr decrm+32 + pull + rts +.nocrunch ; + bsr loadit + ; +.err pull + rts + +loadit ;d4=length to alloc/read, d5=memtype + ;seek to start, load, close and return base in d0. + ; + move.l d4,d0 + move.l d5,d1 + move.l d6,d2 ;offset XS + allocmem2 loadfile + sub.l d6,d0 + ; + move.l d7,d1 + move.l d0,d2 + move.l d4,d3 ;read len + jsr -42(a6) ;read + move.l d7,d1 + jsr -36(a6) ;close + move.l d2,d0 + ; + rts + +andtable dc $ffff,0 ;rgb and, brightness add... + dc $ff00,8 + dc $f0f0,8 + dc $f00f,12 + dc $fff0,8 + dc $ff0f,8 + dc $f0ff,8 + +makepalettes ; + ;make r,g,b,y,p,c palettes + ; + lea andtable(pc),a0 + moveq #6,d0 + lea palettesw,a2 ;dest + ; +.loop lea palettes,a1 + movem (a0)+,d1/d7 ;what we're anding, briteness correction + ; + moveq #15,d2 ;16 shades + ; +.loop2 move.l (a1)+,a3 ;src + move.l (a2)+,a4 ;dest + move #255,d3 ;256 colours + ; +.loop3 move (a3)+,d4 ;src colour...find briteness + ; + move d4,d5 + move d4,d6 + and #$f00,d4 + lsr #8,d4 + and #$0f0,d5 + lsr #4,d5 + and #$00f,d6 + add d6,d5 + add d5,d4 + add d7,d4 + cmp #16*3,d4 + bcs.s .bok + moveq #16*3-1,d4 +.bok ext.l d4 + divu #3,d4 ;(r+g+b)/3=briteness! + ; + move d4,d5 + move d4,d6 + lsl #8,d4 + lsl #4,d5 + or d6,d5 + or d5,d4 ;RGB + and d1,d4 + ; + move d4,(a4)+ + dbf d3,.loop3 + ; + dbf d2,.loop2 + ; + dbf d0,.loop + ; + rts + +calcpalettes ;a0=palette! + ; + move.l map_rgbs(pc),a0 + ; + move.l rgbs(pc),a1 + move #255,d0 + move.l #$f0000,d1 + ; +.loop move (a0)+,d2 + ; + move d2,d3 + move d2,d4 + and #$f00,d2 + lsr #8,d2 + move d2,(a1)+ + and #$f0,d3 + lsr #4,d3 + move d3,(a1)+ + and #$f,d4 + move d4,(a1)+ + ; + dbf d0,.loop + ; + lea palettes(pc),a0 + moveq #15,d0 + ; +.loop2 move.l rgbs(pc),a1 + move.l (a0)+,a2 + move #255,d1 + ; +.loop3 movem (a1),d2-d4 ;r,g,b + ; + lsl #8,d2 + lsl #4,d3 + or d4,d3 + or d3,d2 + move d2,(a2)+ + bne.s .hmmm + move #$8000,-2(a2) ;no BLACK! +.hmmm ; + ;movem (a1),d2-d4 + ;add d4,d3 + ;add d3,d2 + ;cmp #4,d2 + ;bcc .do + ;addq #6,a1 + ;bra .bok + ; +.do subq #1,(a1)+ + bpl.s .rok + clr -2(a1) + ; +.rok subq #1,(a1)+ + bpl.s .gok + clr -2(a1) + ; +.gok subq #1,(a1)+ + bpl.s .bok + clr -2(a1) +.bok ; + dbf d1,.loop3 + dbf d0,.loop2 + rts + +calcpalettes2 ;a0=palette! + ; + move.l map_rgbs(pc),a0 + ; + move.l rgbs(pc),a1 + move #255,d0 + move.l #$f0000,d1 + ; +.loop move (a0)+,d2 + ; + move d2,d3 + lsl.l #8,d2 + and.l d1,d2 + move.l d2,(a1)+ ;R + ; + move d3,d2 + lsl.l #8,d2 + lsl.l #4,d2 + and.l d1,d2 + move.l d2,(a1)+ ;G + ; + swap d3 + and.l d1,d3 + move.l d3,(a1)+ ;B + ; + dbf d0,.loop + ; + lea palettes(pc),a0 + moveq #15,d0 + ; +.loop2 move.l rgbs(pc),a1 + move.l (a0)+,a2 + move #255,d1 + ; +.loop3 movem.l (a1),d2-d4 + lsr.l #8,d2 + and #$f00,d2 + lsr.l #8,d3 + lsr.l #4,d3 + and #$f0,d3 + swap d4 + and #$f,d4 + or d4,d3 + or d3,d2 + move d2,(a2)+ + bne.s .hmmm + move #$8000,-2(a2) +.hmmm ; + move.l (a1),d2 + sub.l #$10000,d2 + bpl.s .rok + moveq #0,d2 +.rok move.l d2,(a1)+ + ; + move.l (a1),d3 + sub.l #$10000,d3 + bpl.s .gok + moveq #0,d3 +.gok move.l d3,(a1)+ + ; + move.l (a1),d4 + sub.l #$10000,d4 + bpl.s .bok + moveq #0,d4 +.bok move.l d4,(a1)+ + ; + dbf d1,.loop3 + dbf d0,.loop2 + rts + +dispoff tst dispnest + bne.s .skip + bsr vwait + move #$01a0,$dff096 +.skip addq #1,dispnest + rts + +dispon subq #1,dispnest + bgt.s .skip + bsr vwait + move.l coplist(pc),$dff080 + move #$8180,$dff096 + move #0,$dff088 +.skip rts + +forbid push + moveq #49,d0 +.fl bsr vwait + dbf d0,.fl + bsr ownblitter + move.l 4.w,a6 + jsr -132(a6) + move #$8400,$dff096 + pull + rts + +permit push + move.l rawstuff,a0 + clr.l $70(a0) + move.l 4.w,a6 + jsr -138(a6) + bsr disownblitter + pull + rts + +initvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -168(a6) ;addintserver + pull + rts + +vbcounter dc 0 +framecnt dc 0 + +frame dc 0,0 + +vbintserver dc.l 0,0 + dc.b 2,0 + dc.l 0 +vbintdata dc.l vbcounter +vbintcode dc.l vbhandler + +finitvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -174(a6) + pull + rts + +ownblitter push + move.l grbase,a6 + jsr -456(a6) + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + pull + rts + +disownblitter push + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + move.l grbase,a6 + jsr -462(a6) + pull + rts + +makecoloffs push + ; + ifne aga + ; + lea coloffs,a0 + moveq #2,d0 + moveq #3,d2 +.loop addq.l #4,d0 + moveq #31,d1 +.loop2 move.l d0,(a0)+ + addq.l #4,d0 + dbf d1,.loop2 + dbf d2,.loop + ; + elseif + ; + lea coloffs,a0 + moveq #18,d0 + moveq #127,d1 + ; +.loop move.l d0,(a0)+ + addq.l #4,d0 + dbf d1,.loop + ; + endc + ; + pull + rts + +grname dc.b 'graphics.library',0 + even +grbase dc.l 0 +oldview dc.l 0 +dosname dc.b 'dos.library',0 + even +dosbase dc.l 0 + +calcbpos ;also: calc qstripbot, con0poke... + ; + move window1+wi_h,d0 + add d0,d0 + ext.l d0 + add.l qstrip(pc),d0 + move.l d0,qstripbot + ; + move #$100,con0poke + move floorflag(pc),d0 + and roofflag(pc),d0 + bne.s .cp + move #$9f0,con0poke ;one of them is cop strip! +.cp ; + move window1+wi_y,d0 + subq #4,d0 + move d0,minbpos + tst gametype + beq.s .p1 + ; + move window2+wi_y,d0 + add window2+wi_bh,d0 + addq #4,d0 + move d0,maxbpos + rts + ; +.p1 move window1+wi_y,d0 + add window1+wi_bh,d0 + addq #4,d0 + move d0,maxbpos + ; + rts + +showwindow ;a0=window + ; + push + ; + ifne aga + ; + ;poke bitmaps... + move.l wi_slice(a0),a1 + move.l (a1),a1 + move.l wi_bmap(a0),d0 + moveq #6,d1 ;7 bitplanes +.loop move d0,6(a1) + swap d0 + move d0,2(a1) + swap d0 + add.l #40,d0 + addq #8,a1 + dbf d1,.loop + ; + ;create DIW + ; + move.l wi_slice(a0),a1 + move.l (a1),a1 + ; + move wi_y(a0),d0 + move d0,d1 + add wi_bh(a0),d1 + lsl #8,d0 + or #$81,d0 + move d0,56+2(a1) + lsl #8,d1 + or #$c1,d1 + move d1,56+6(a1) + ; + move wi_y(a0),d0 + subq #3,d0 + move.b d0,64(a1) + ; + endc + ; + ;create link to next! + move.l wi_nslice(a0),a1 + move.l (a1),d0 + move.l wi_cop1(a0),a1 + add.l wi_copmem(a0),a1 + move.l wi_cop2(a0),a2 + add.l wi_copmem(a0),a2 + move d0,-6(a1) + move d0,-6(a2) + swap d0 + move d0,-10(a1) + move d0,-10(a2) + ; + pull + ; +showwindowq ;display coplist + ; + move.l wi_cop(a0),d0 + move.l wi_slice(a0),a0 + move.l (a0),a0 + ; + ifne aga + ; + move d0,72+6(a0) + swap d0 + move d0,72+2(a0) + ; + elseif + ; + move d0,6(a0) + swap d0 + move d0,2(a0) + ; + endc + ; + rts + +finitdisplay push + ; + move.l grbase,a6 + move.l oldview,a1 + jsr -222(a6) ;load view + jsr -270(a6) + jsr -270(a6) + move.l 38(a6),$dff080 + move #$81a0,$dff096 + move #0,$dff088 + ; + pull + rts + +initdisplay push + ; + lea grname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,grbase + ; + move.l d0,a6 + move.l 34(a6),oldview + sub.l a1,a1 + jsr -222(a6) ;loadview + ; + move.l #copinitf-copinit,d0 + moveq #2,d1 + allocmem copinit + move.l d0,coplist + ; + move.l d0,a1 + lea copinit,a0 + lea copinitf,a2 + ; +.loop cmp.l a2,a0 + bcc.s .done + move.l (a0)+,(a1)+ + bra.s .loop +.done ; + add.l #sl1-copinit,d0 + move.l d0,slice1 + add.l #sl2-sl1,d0 + move.l d0,slice2 + add.l #cstop-sl2,d0 + move.l d0,copstop + ; + move.l copstop,d0 + move.l slice1,a0 + move.l slice2,a1 + ; + ifne aga + ; + move d0,72+6(a0) + move d0,72+6(a1) + swap d0 + move d0,72+2(a0) + move d0,72+2(a1) + ; + elseif + ; + move d0,6(a0) + move d0,6(a1) + swap d0 + move d0,2(a0) + move d0,2(a1) + ; + endc + ; + jsr -270(a6) + jsr -270(a6) + move.l coplist,$dff080 + move #0,$dff088 + ; + pull + rts + +allocwbmap move wi_w(a2),d0 + mulu wi_pw(a2),d0 + move d0,wi_bw(a2) + ; + move wi_h(a2),d0 + mulu wi_ph(a2),d0 + move d0,wi_bh(a2) + ; + mulu #40*7,d0 + ; + move.l #$10002,d1 + move.l d0,wi_bmapmem(a2) + allocmem wi_bmap + move.l d0,wi_bmap(a2) + ; + move.l #40*7*7,d0 + moveq #2,d1 + allocmem wi_strip + move.l d0,wi_strip(a2) + ; + rts + +windowiff ;draw iff into window! + ; + move.l wi_iff(a2),a0 + cmp.l #1,a0 + bne.s .do + rts + ; +.do move.l wi_bmap(a2),a1 + ; + move 2(a0),d1 + cmp #240,d1 + bcs.s .skip + move #240,d1 +.skip move #120,d2 + lsr #1,d1 + sub d1,d2 + mulu #7*40,d2 + add.l d2,a1 + ; +decodeiff ;for 40 columns... + ; + ;a0=trimmed IFF file, + ;a1=destination bitmap... + ; + move.l a2,-(a7) + moveq #40,d7 + ; + move (a0)+,d0 ;pixel width + lsr #3,d0 ;to byte width + move (a0)+,d1 ;pixel height + cmp #240,d1 + bls.s .hok + move #240,d1 +.hok subq #1,d1 ;to dbf + move (a0)+,d2 ;depth + subq #1,d2 ;to dbf + addq #6,a0 ;skip header + ; +.loop5 move d2,d5 ;depth + ; +.loop4 move.l a1,a2 + move d0,d4 ;how many bytes in line + ; +.loop moveq #0,d3 + move.b (a0)+,d3 + bmi.s .repeat + sub d3,d4 +.loop3 move.b (a0)+,(a2)+ + dbf d3,.loop3 + bra.s .skip + ; +.repeat cmp.b #-128,d3 + beq.s .loop + neg.b d3 + sub d3,d4 +.loop2 move.b (a0),(a2)+ + dbf d3,.loop2 + addq #1,a0 +.skip subq #1,d4 + bgt.s .loop + ; + add d7,a1 + dbf d5,.loop4 + dbf d1,.loop5 + ; + move.l (a7)+,a2 + rts + +plotwbmap ;OK, plot colours on bitmap! + ; + tst.l wi_iff(a2) + bne windowiff + ; + move.l wi_bmap(a2),a0 + move wi_x(a2),d0 + move d0,d1 + lsr #3,d0 + not d1 + and #7,d1 + moveq #127,d7 ;colour + move wi_w(a2),d6 ;width + subq #1,d6 + ; +.wloop move wi_pw(a2),d5 + subq #1,d5 + ; +.wloop2 move d7,d4 + moveq #6,d3 + ; +.dloop bclr d1,0(a0,d0) + lsr #1,d4 + bcc.s .dskip + bset d1,0(a0,d0) +.dskip lea 40(a0),a0 + dbf d3,.dloop + ; + lea -40*7(a0),a0 + subq #1,d1 + bpl.s .dskip2 + moveq #7,d1 + addq #1,d0 +.dskip2 dbf d5,.wloop2 + ; + subq #1,d7 + dbf d6,.wloop + ; + move.l wi_bmapmem(a2),d0 + sub.l #40*7,d0 + lsr.l #2,d0 + subq #1,d0 + lea 40*7(a0),a1 +.cbloop move.l (a0)+,(a1)+ + dbf d0,.cbloop + ; + move.l wi_bmap(a2),a0 + move.l wi_strip(a2),a1 + move wi_bh(a2),d0 + lsr #2,d0 + mulu #7*40,d0 + add.l d0,a0 + move #7*7*10-1,d2 + ; +.loop move.l (a0)+,(a1)+ + dbf d2,.loop + ; + rts + +freewindow ;window in a0 + ; + push + move.l a0,a2 + move.l wi_bmap(a2),d0 + beq.s .no1 + clr.l wi_bmap(a2) + move.l d0,a1 + freemem wi_bmap +.no1 move.l wi_strip(a2),d0 + beq.s .no2 + clr.l wi_strip(a2) + move.l d0,a1 + freemem wi_strip +.no2 move.l wi_cop1(a2),d0 + beq.s .no3 + clr.l wi_cop1(a2) + move.l d0,a1 + freemem wi_cop +.no3 pull + rts + + ifne aga + ; +agawindow ; +makewindow ;AGA make window + ; + ;a0=window struct! + ; + push + ; + move.l a0,a2 + ; + bsr allocwbmap + bsr plotwbmap + ; + tst.l wi_iff(a2) + beq wchunky + ; + ;make a palette coplist for the window + ; + ;to write 32 colours... + ;set bank, write hi nybs, set bank, write lo nybs... + ;=66 copins. + ;*4=264 total + ;+1 for final wait +3 for final copjump=268 + ; + move.l #268<<2,d0 + move.l d0,wi_copmem(a2) + moveq #2,d1 + allocmem wi_iffcop + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + move.l d0,wi_cop2(a2) + move.l d0,a0 ;dest + move.l wi_pal(a2),a1 ;palette! + ; + moveq #0,d0 ;bank + moveq #3,d3 + ; +.loop move #$106,(a0)+ + move d0,(a0)+ + move #$180,d1 + moveq #31,d2 +.hiloop move d1,(a0)+ + move (a1),(a0)+ + addq #4,a1 + addq #2,d1 + dbf d2,.hiloop + ; + lea -128+2(a1),a1 + move #$106,(a0)+ + bset #9,d0 + move d0,(a0)+ + bclr #9,d0 + move #$180,d1 + moveq #31,d2 +.loloop move d1,(a0)+ + move (a1),(a0)+ + addq #4,a1 + addq #2,d1 + dbf d2,.loloop + subq #2,a1 + ; + add #$2000,d0 ;next bank! + dbf d3,.loop + ; + move.l #$fffffffe,(a0)+ + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + pull + rts + ; +wchunky ;how many copins on one line? + ; + move wi_w(a2),d0 + move d0,d1 + subq #1,d0 + lsr #5,d0 ;how many bank changes per line! + addq #3,d0 ;1 waits - 1 eor, 1 init bank select + add d1,d0 ;+colpokes + ; + move d0,d1 + lsl #2,d1 + move d1,wi_copmod(a2) + ; + mulu wi_h(a2),d0 + addq #4,d0 ;1 wait and cop jump at end + ; + lsl.l #2,d0 ;4 bytes/copins + moveq #2,d1 ;cop in chip + move.l d0,wi_copmem(a2) + lsl.l #1,d0 ;2 coplists! + allocmem wi_chunkycop + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + ; + move.l d0,a0 + move wi_y(a2),d6 + move wi_h(a2),d7 + subq #1,d7 + move #$111,d3 ;test colour + move #$8000,d4 ;Colour Eor + ; +.hloop ;make one copline... + ; + moveq #127,d0 ;colour reg to poke + move wi_w(a2),d1 + subq #1,d1 + ; +.lloop move d0,d2 + addq #1,d2 + and #31,d2 + bne.s .notnbank + ; + ;new bank.... + move d0,d2 + sub #31,d2 + and #$ffe0,d2 + lsl #8,d2 + or d4,d2 ;eor bank + move #$106,(a0)+ ;bank select + move d2,(a0)+ + ; +.notnbank move d0,d2 + and #31,d2 + add d2,d2 + add #$180,d2 + move d2,(a0)+ ;colour poke + move d3,(a0)+ + add #$111,d3 + subq #1,d0 + dbf d1,.lloop + ; + bsr .makewait + ; + ;ok, now do EOR! + move #$10c,(a0)+ + move d4,(a0)+ + bchg #15,d4 + ; + dbf d7,.hloop + ; + bsr .makewait + ; + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + ; + ;OK, 1 list created...copy to other! + ; + move.l wi_cop1(a2),a0 + move.l a0,a1 + add.l wi_copmem(a2),a1 + move.l a1,wi_cop2(a2) + move.l a1,a3 + ; +.copycop move.l (a0)+,(a3)+ + cmp.l a1,a0 + bcs.s .copycop + ; + pull + rts + +.makewait ; + ;make wait ins. at pos d6 + ; + subq #1,d6 + move.b d6,(a0)+ + move.b #$e1,(a0)+ + move #$fffe,(a0)+ + addq #1,d6 + add wi_ph(a2),d6 + rts + + elseif + +ecswindow +makewindow ;ECS makewindow...no bitmap needed! + ; + ;a0=window struct + ; + push + ; + move.l a0,a2 + ; + ;how many copins on one line? + ; + ;2 waits... + ;width moves + ;1 colour 0 poke... + ; + ;=width+3! + ; + move wi_w(a2),d0 + addq #7,d0 + ; + move d0,d1 + lsl #2,d1 + move d1,wi_copmod(a2) + ; + mulu wi_h(a2),d0 + addq #4,d0 ;1 waits at begin and cop jump + ;at end + ; + lsl.l #2,d0 ;4 bytes/copins + moveq #2,d1 ;cop in chip + move.l d0,wi_copmem(a2) + lsl.l #1,d0 ;2 coplists! + allocmem wi_chunkycop + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + ; + move.l d0,a0 + move #$47,d5 + sub wi_w(a2),d5 + add d5,d5 + or #1,d5 + move wi_y(a2),d6 + move wi_h(a2),d7 + subq #1,d7 + ; + moveq #0,d3 + move #$fffe,d4 + bsr .makewait ;wait! + ; +.hloop ;make one copline... + cmp #128,d6 + ble.s .yn + move.b #$80,d3 +.yn ; + move.l a0,d2 ;prepare jump address + addq.l #8,d2 + ; + move #$084,(a0)+ + swap d2 + move d2,(a0)+ + move #$086,(a0)+ + swap d2 + move d2,(a0)+ + ; + ;wait for start X pos... + ; + move.b d3,(a0)+ + move.b d5,(a0)+ + move #$80fe,(a0)+ + ; + move wi_w(a2),d1 + subq #1,d1 + ; +.lloop move.l #$1800f00,(a0)+ + dbf d1,.lloop + move #$180,(a0)+ + move #col0,(a0)+ + ; + move.b d3,(a0)+ + move.b #$e1,(a0)+ + move #$80fe,(a0)+ ;wait for end of line! + ; + move #$ffff,d4 ;skip! + bsr .makewait + move.l #$8a0000,(a0)+ ;strobe! + ; + dbf d7,.hloop + ; + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + ; + ;OK, 1 list created...copy to other! + ; + move.l wi_cop1(a2),a0 + move.l a0,a1 + add.l wi_copmem(a2),a1 + move.l a1,wi_cop2(a2) + move.l a1,a3 + ; + move.l a1,d0 + sub.l a0,d0 + ; +.copycop move.l (a0)+,(a3)+ + cmp #$084,-8(a3) + bne.s .noafix + move -6(a3),d2 + swap d2 + move -2(a3),d2 + add.l d0,d2 + move d2,-2(a3) + swap d2 + move d2,-6(a3) +.noafix cmp.l a1,a0 + bcs.s .copycop + ; + pull + rts + +.makewait ; + ;make wait ins. at pos d6 + ;cmp #256,d6 + ;blt.s .not256 + ;move.l #$ffe1fffe,(a0)+ + ;add wi_ph(a2),d6 + ;rts + ; +.not256 move.b d6,(a0)+ + move.b #1,(a0)+ + move d4,(a0)+ ;wait/skip + add wi_ph(a2),d6 + rts + + endc + +allocmem2_ ; + ;as below, but d2.l = extra mem at start to set aside + ; + push + moveq #16,d3 + add.l d2,d3 + bra.s amem_ + +allocmem_ ; + ;d0=size, d1=requirements, a0=text field + ; + ;set up node before allocmem for quick freemem: + ; + ;00.l : next + ;04.l : real size + ;08.l : offset to user mem (normally 16, but CM fucks things up) + ;12.l : pointer to text field for debugging + ; + push + moveq #16,d3 ;offset + ; +amem_ move.l a0,d4 + add.l d3,d0 + ; + move.l d0,d2 ;len + move.l a0,d4 ;text + move.l 4.w,a6 + jsr -198(a6) + tst.l d0 + bne.s .skip + ; + warn #$f00 + ; +.skip move.l d0,a0 + move.l memlist,(a0) ;next + move.l a0,memlist + movem.l d2-d4,4(a0) + add.l d3,a0 + move.l a0,d0 + ; + pull + rts + +freememlist push + ; +.more move.l memlist,d0 + beq.s .done + move.l d0,a2 + ; + ifne debugmem + move.l 12(a2),a0 ;text field + move.l a0,d2 + moveq #-1,d3 +.loop addq.l #1,d3 + tst.b (a0)+ + bne.s .loop + ; + move.l outhand,d1 + move.l dosbase,a6 + jsr -48(a6) + endc + ; + move.l a2,a1 + ; + move.l (a1),memlist + move.l 4(a1),d0 + move.l 4.w,a6 + jsr -210(a6) + bra.s .more + ; +.done pull + rts + +freemem_ ; + ;a1=address to free! + ; + push + ; + ifne debugmem + move.l a0,-(a7) ;error mess + elseif + endc + ; + move.l a1,a2 ;mem to find! + lea memlist(pc),a1 + ; +.more move.l a1,a0 ;prev + move.l (a1),d0 + beq.s .err + move.l d0,a1 + ; + move.l a1,a3 + add.l 8(a3),a3 + cmp.l a3,a2 + bne.s .more + ; + move.l (a1),(a0) + move.l 4(a1),d0 + move.l 4.w,a6 + jsr -210(a6) + bra.s .done + ; +.err warn #$ff0 + ifne debugmem + move.l (a7),freememerr + endc +.done ; + ifne debugmem + addq #4,a7 + endc + ; + pull + rts + +freememerr dc.l 0 + +initmap ;map address in map_map... + ;load in textures, do colour mapping etc. + ; + push + ; + move.l map_map,a0 + ; + move.l a0,a1 + add.l (a0),a1 + move.l a1,map_grid + ; + move.l a0,a1 + add.l 4(a0),a1 + move.l a1,map_poly + ; + move.l a0,a1 + add.l 8(a0),a1 + move.l a1,map_ppnt + ; + move.l a0,a1 + add.l 12(a0),a1 + move.l a1,map_anim + ; + move.l a0,a1 + add.l 16(a0),a1 + move.l a1,map_txts + ; + move.l map_rgbsfrom,map_rgbsat + ; + pull + rts + +freetxts lea textscrns,a6 + moveq #7,d7 +.loop move.l (a6)+,d0 + beq.s .skip + move.l d0,a1 + freemem freetxts + clr.l -4(a6) +.skip dbf d7,.loop + rts + +loadtxts push + ; + lea textures,a4 + move.l map_txts,a5 ;texture names + lea textscrns,a6 + moveq #7,d7 + ; +.ltl lea .temp(pc),a0 + ; +.ltl2 move.b (a5)+,(a0)+ + bne.s .ltl2 + moveq #0,d0 + cmp.l #.temp+1,a0 + beq.s .notext + lea .temp2(pc),a0 + moveq #1,d1 + jsr loadfile + ; +.notext move.l d0,(a6)+ ;texture! + beq.s .skip + ; + ;do colour mapping stuff! + ; + move.l d0,-(a7) + ; + move.l d0,a0 + add.l (a0),a0 + move.l a0,a2 + bsr addpal + ; + move.l (a7),a0 + addq #4,a0 + move.l a2,a1 + bsr remap + ; + move.l (a7)+,a0 + addq #4,a0 + moveq #19,d0 + move.l #64*65,d1 + ; +.mtxt move.l a0,(a4)+ + add.l d1,a0 + dbf d0,.mtxt +.skip ; + dbf d7,.ltl + ; + pull + rts + +.temp2 dc.b 'txts/' +.temp ds.b 64 + even + +remapanim ;a0=anim to remap... + ; + push + ; + move.l a0,a6 + movem (a6),d6-d7 + lsl d6,d7 ;how many frames! + subq #1,d7 + ; + move.l a6,a0 + add.l an_pal(a0),a0 + bsr addpal + ; + lea an_size(a6),a5 + ; +.loop move.l a6,a0 + add.l (a5)+,a0 ;start of shape + addq #4,a0 ;skip handles + movem (a0)+,d0-d1 ;w/h + mulu d1,d0 + lea 0(a0,d0.l),a1 ;end + bsr remap + ; + dbf d7,.loop + ; + pull + rts + +remap ;a0=start of byte data, a1=end of byte data + ; + push + ; + moveq #0,d0 + move.l maptable,a2 + ; +.loop cmp.l a1,a0 + bcc.s .done + move.b (a0),d0 + move.b 0(a2,d0),(a0)+ + bra.s .loop +.done ; + pull + rts + +addpal ;add palette in a0 to end of map_rgb + ; + push + ; + move (a0)+,d0 + subq #1,d0 + move.l map_rgbsat,a2 ;end of rgbs + move.l maptable,a3 + ; + clr.b (a3) ;0=0 + move.b #255,255(a3) ;-1=-1 + move.b #254,254(a3) ;-1=-1 + move.b #253,253(a3) ;-1=-1 + move.b #252,252(a3) ;-1=-1 + move.b #251,251(a3) ;-1=-1 + move.b #250,250(a3) ;-1=-1 + move.b #249,249(a3) ;-1=-1 + ; + moveq #1,d2 ;colour 1! + ; +.loop move (a0)+,d1 ;colour...does it exist? + bmi.s .next ;not used! + move.l map_rgbs,a1 + ; +.loop2 cmp.l a2,a1 + bcc.s .no + cmp (a1)+,d1 + beq.s .yes + bra.s .loop2 + ; +.no ;colour doesn't exist! + ;may have to do a 'near match' routine if we run out of colours + ; + move d1,(a2)+ + move.l a2,a1 + ; +.yes subq #2,a1 + sub.l map_rgbs,a1 + move.l a1,d1 + lsr #1,d1 ;real colour + ; + cmp #256,d1 + bcs.s .ok + ; + warn #$00f + ; +.ok move.b d1,0(a3,d2) + ; +.next addq #1,d2 + dbf d0,.loop + ; + move.l a2,map_rgbsat + ; + pull + rts + + ;coll types... + ; + ;1...bullet from player 1 + ;2...bullet from player 2 + ;4...bullet from monster + ;8...player 1 + ;16..player 2 + ; + + dc.l 0,player,tokens + ; +objlist ;list of objects to be freed... + ; + dc.l marine,baldy,0 + +player dc.l 0,0 ;main, chunks + dc.b 'objs/player',0,0 + even +tokens dc.l 0,0 + dc.b 'objs/tokens',0,0 + even +marine dc.l 0,0 + dc.b 'objs/marine',0,0 + even +baldy dc.l 0,0 + dc.b 'objs/baldy',0,0 + even +terra dc.l 0,0 + dc.b 'objs/terra',0,0 + even +demon dc.l 0,0 + dc.b 'objs/demon',0,0 + even + +objinfo +player1_ dc.l player1 +.ob_rotspeed dc.l $40000 +.ob_movspeed dc.l $d0000 +_ob_shape dc.l player +.ob_logic dc.l playerlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l playerhit +.ob_die dc.l playerdie + ; +.ob_eyey dc -110 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 8 +p1_ob_collwith dc 6 ;6=combat, 4=game +p1_ob_cntrl dc 1 ;for player 0,1=joyport, 2=keys +.ob_damage dc 1 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 1 +.ob_range dc 1 +.ob_weapon dc 0 ;weapon type...0...25 +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 ;4! +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +; +objinfof + +oilen equ objinfof-objinfo + +player2_ dc.l player2 +.ob_rotspeed dc.l $40000 +.ob_movspeed dc.l $d0000 +.ob_shape dc.l player +.ob_logic dc.l playerlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l playerhit +.ob_die dc.l playerdie +.ob_eyey dc -110 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 16 +p2_ob_collwith dc 5 ;5=combat, 4=game +p2_ob_cntrl dc 0 ;for player 0,1=joyport, 2=keys +.ob_damage dc 1 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 1 +.ob_range dc 1 +.ob_weapon dc 0 ;weapon type... +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 ;4! +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 + +health_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l healthgot +.ob_die dc.l healthgot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $30000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 + +weapon_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $50000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 + +thermo_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l thermogot +.ob_die dc.l thermogot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $10000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 + +infra_ ds.b oilen + +invisi_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l invisigot +.ob_die dc.l invisigot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $20000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 + +invinc_ ds.b oilen + +blank1_ ds.b oilen + +blank2_ ds.b oilen + +marine_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $60000 +.ob_shape dc.l marine +.ob_logic dc.l monsterlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 1 +.ob_hitpoints dc 5 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 16 +.ob_range dc 32 +.ob_weapon dc 0 ;weapon type... +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 + +baldy_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $40000 +.ob_shape dc.l baldy +.ob_logic dc.l baldylogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 2 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_wlevel dc 0 +.ob_hurtpause dc 3 +.ob_punchrate dc 4 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $220 +.ob_apad dc 0 + +terra_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $20000 +.ob_shape dc.l terra +.ob_logic dc.l terralogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 1 +.ob_hitpoints dc 12 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 32 +.ob_range dc 48 +.ob_weapon dc 0 ;weapon type... +.ob_wlevel dc 0 +.ob_hurtpause dc 5 +.ob_firerate dc 12 ;how often terra fires +.ob_bouncecnt dc 0 ;how many times +.ob_firecnt dc 5 +.ob_scale dc $280 +.ob_apad dc 0 + +abouttext dc.b 14 + dc.b 'GLOOM',0 + dc.b 0 + dc.b 'A BLACK MAGIC GAME',0 + dc.b 0 + dc.b 'PROGRAMMED BY MARK SIBLY',0 + dc.b 'GRAPHICS BY THE BUTLER BROTHERS',0 + dc.b 'MUSIC BY KEV STANNARD',0 + dc.b 'AUDIO BY US',0 + dc.b 'PRODUCED BY US',0 + dc.b 'DESIGNED BY US',0 + dc.b 'GAME CODED IN DEVPAC2',0 + dc.b 'UTILITIES CODED IN BLITZ BASIC 2',0 + dc.b 'RENDERED IN DPAINT3 AND DPAINT4',0 + dc.b 'DECRUNCHING CODE BY THOMAS SCHWARZ',0 + even + +sqrinc incbin sqr.bin + +groundtile incbin tile2.bin +ceilingtile incbin tile.bin + +bullet1 incbin bullet1.bin +bullet2 incbin bullet2.bin +bullet3 incbin bullet3.bin +bullet4 incbin bullet4.bin +bullet5 incbin bullet5.bin + +sparks1 incbin sparks1.bin +sparks2 incbin sparks2.bin +sparks3 incbin sparks3.bin +sparks4 incbin sparks4.bin +sparks5 incbin sparks5.bin + +gloombrush incbin gloombrush + +gloom incbin title +gloompal incbin title.pal + +combat incbin combat +combatpal incbin combat.pal + +medplayer incbin medplay + +rgbs16 ds.w 32 + +map_rgbs_ ds.w 256 + +decrm incbin decrm diff --git a/gloom.s.zclip b/gloom.s.zclip new file mode 100644 index 0000000..5d6d2d6 --- /dev/null +++ b/gloom.s.zclip @@ -0,0 +1,3057 @@ + + ;OK, how to do object processing... + ; + ;process objects every 2nd vertical blank...set 'done' flag + ; + ;main program waits for 'done' flag, clrs it, disables ints, + ;fetches display stuff, enables ints, draws display, waits for VB + ;and shows it! + ; +focshft equ 6 +grdshft equ 8 +darkshft equ 7 ;smaller=smaller range=faster! +maxz equ 16<>3(a0) + endm + +alloclist macro ;alloclist listname,maxitems,itemsize + ; + move.l \2,d0 + move.l \3,d1 + lea \1(pc),a2 + jsr k_alloclist + bra.s alskip\@ + ; +\1 dc.l 0 ;0 +\1_last dc.l 0 ;4 + dc.l 0 ;8 +\1_free dc.l 0 ;12 +alskip\@ ; + endm + +k_alloclist ;a2=address of 'first' pointer + ;d0=max items, d1=item size + ; + move.l a2,8(a2) ;clear out used list + lea 4(a2),a0 + clr.l (a0) + move.l a0,(a2) + movem.l d0-d1,-(a7) + mulu d1,d0 + move.l #$10001,d1 + jsr allocmem + move.l d0,a0 + lea 12(a2),a2 + movem.l (a7)+,d0-d1 + subq #1,d0 +.loop move.l a0,(a2) + move.l a0,a2 + add d1,a0 + dbf d0,.loop + rts + +addnext macro + ; + ;addnext 'listname' + ;add after a5 + ;return eq if none available else a0 + ; + move.l \1_free,d0 + beq.s .anskip\@ + move.l d0,a0 + move.l (a0),\1_free + move.l (a5),a1 + move.l a1,(a0) + move.l a0,4(a1) + move.l a0,(a5) + move.l a5,4(a0) +.anskip\@ ; + endm + +addfirst macro + ; + ;addfirst 'listname' + ;return eq if none available else a0 + ; + move.l \1_free,d0 + beq.s .afskip\@ + move.l d0,a0 + move.l (a0),\1_free + move.l \1,a1 ;current first + move.l a1,(a0) + move.l a0,4(a1) + move.l a0,\1 + move.l #\1,4(a0) +.afskip\@ ; + endm + +addlast macro + ; + ;addlast 'listname' + ;return eq in none available else a0 + ; + move.l \1_free,d0 + beq.s .alskip\@ + move.l d0,a0 + move.l (a0),\1_free + ; + move.l \1_last+4,a1 ;current last + move.l a0,(a1) + move.l a1,4(a0) + move.l a0,\1_last+4 + move.l #\1_last,(a0) +.alskip\@ ; + endm + +killitem macro + ; + ;killitem listname + ;a0=item to kill, return a0=previous item. + ; + move.l (a0),a1 ;next of me! + move.l 4(a0),4(a1) + move.l 4(a0),a1 ;prev of me + move.l (a0),(a1) + move.l \1_free,(a0) + move.l a0,\1_free + move.l a1,a0 + endm + +clearlist macro + ; + ;clearlist listname + ; +.clloop\@ move.l \1,a0 + tst.l (a0) + beq .cldone\@ + killitem \1 + bra .clloop\@ +.cldone\@ ; + endm + + + +bwait macro + ; +.bwait\@ btst #6,$dff002 + beq.s .bwait2\@ + bra.s .bwait\@ +.bwait2\@ ; + endm + +printlong macro + move.l \1,-(a7) + jsr printlong_ + endm + +check macro + list +check set *-\1 + nolist + endm + +push macro + movem.l d2-d7/a2-a6,-(a7) + endm + +pull macro + movem.l (a7)+,d2-d7/a2-a6 + endm + +col macro + move #0,$dff106 + move \1,$dff180 + endm + +entrypoint +cli ; + move.l a0,a2 + ; + lea dosname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,dosbase + ; + cmp.b #'@',(a2)+ + bne.s main + move.l a2,a0 + moveq #1,d1 + bsr loadfile + move.l d0,map_map + bne.s main + rts +main ; + lea ciaaname,a1 + move.l 4.w,a6 + jsr -498(a6) + move.l d0,a0 + move.l $64(a0),a0 + lea $136(a0),a0 + move.l a0,rawtable + ; + move #$8400,$dff096 + ; + move.l #32768,d0 + moveq #1,d1 + jsr allocmem + move.l d0,memory + ; + lea palettes,a2 + moveq #15,d2 +.palloop move.l #512,d0 + moveq #1,d1 + jsr allocmem + move.l d0,(a2)+ + dbf d2,.palloop + ; + move.l #24*256,d0 + moveq #1,d1 + jsr allocmem + move.l d0,rgbs + ; + move.l #320*vd_size,d0 + moveq #1,d1 + jsr allocmem + move.l d0,vertdraws + ; + jsr initmap + jsr initdisplay + jsr ownblitter + jsr initvbint + jsr forbid + ; + move.l map_poly(pc),a0 +.loop cmp.l map_ppnt(pc),a0 + bcc.s .done + clr (a0) + lea 32(a0),a0 + bra.s .loop +.done clr frame + ; + alloclist objects,#maxobjects,#ob_size + ; + jsr dispoff + ; + jsr makecoloffs + ; + lea window1,a0 + bsr makewindow + lea window2,a0 + bsr makewindow + ; + lea window1,a0 + bsr showwindow + lea window1,a0 + bsr dbwindow + lea window2,a0 + bsr showwindow + lea window2,a0 + bsr dbwindow + ; + move blob+6,d0 + lsr #1,d0 + move d0,blob+2 + ; + move blob2+6,d0 + lsr #1,d0 + move d0,blob2+2 + ; + move #$1f3a,d0 + bsr seedrnd + ; + clr.l player1 + clr.l player2 + not.l player2 + moveq #1,d0 + bsr execevent + ; + bsr dispon + clr doneflag + ; +mainloop tst doneflag + beq.s mainloop ;wait for updated! + clr doneflag + ; + move.l memory(pc),memat + ; + move.l player1(pc),a0 + bsr calcscene + lea window1,a0 + bsr drawscene + ; + ;move.l player2(pc),a0 + ;bsr calcscene + ;lea window2,a0 + ;bsr drawscene + ; + ;bsr vwait ;!*! + ; + lea window1,a0 + bsr showwindowq + lea window2,a0 + bsr showwindowq + ; + move.l rawtable(pc),a0 + key $45 + beq mainloop + ; + bsr permit + bsr finitvbint + bsr disownblitter + bsr finitdisplay + ; + bsr freememlist + rts + +; ************* FAST SUBS ******************** + +fastsubs + +execevent ;d0=event number to execute...1,2... + ; + move.l map_map(pc),a6 + add.l 16(a6,d0*4),a6 + ; +exec_loop move (a6)+,d0 + beq.s .rts + subq #1,d0 + beq exec_addobj ;1 + subq #1,d0 + beq exec_loop ;2 + subq #1,d0 + beq exec_loop ;3 + subq #1,d0 + beq exec_loop ;4 + subq #1,d0 + beq exec_loop ;5 + ; +.rts rts + +exec_addobj clr.l dummy + move (a6)+,d0 ;monster type + lea objinfo,a2 + mulu #objinfof-objinfo,d0 + add.l d0,a2 + move.l (a2)+,a3 + tst.l (a3) + beq.s .ok +.no addq #8,a6 + bra exec_loop +.ok addlast objects + beq.s .no + move.l a0,a5 + ; + move.l a5,(a3) + move (a6)+,ob_x(a5) + move (a6)+,ob_y(a5) + move (a6)+,ob_z(a5) + move (a6)+,ob_rot(a5) + sub #64,ob_rot(a5) + and #255,ob_rot(a5) + lea ob_info(a5),a3 + move #(objinfof-objinfo-4)>>1-1,d0 +.loop move (a2)+,(a3)+ + dbf d0,.loop + ; + bsr calcvecs + movem.l d4-d5,ob_xvec(a5) + bra exec_loop + +seedrnd ;seed number in d0.w + ; + moveq #54,d1 + lea rndtable(pc),a0 +.loop move d0,(a0)+ + mulu #$1efd,d0 + add #$dff,d0 + dbf d1,.loop + move.l a0,(a0) + move.l #rndtable+48,j_index + rts + +rndw ;return rnd number 0...65535 if d0.w + ; + movem.l a0/a1,-(a7) + lea rndtable(pc),a1 + move.l j_index(pc),a0 + move -(a0),d0 + cmp.l a0,a1 + bne.s .skip + lea rndtable+110(pc),a0 +.skip move.l a0,j_index + move.l k_index(pc),a0 + add -(a0),d0 + move d0,(a0) + cmp.l a0,a1 + bne.s .skip2 + lea rndtable+110(pc),a0 +.skip2 move.l a0,k_index + movem.l (a7)+,a0/a1 + rts + +rndtable ds.w 55 +k_index dc.l 0 +j_index dc.l 0 + +rndl bsr rndw + move d0,d1 + bsr rndw + swap d0 + move d1,d0 + rts + +rndn move d0,d1 + bsr rndw + mulu d1,d0 + swap d0 + rts + +calcangle2 ;angle of camera to object in a5 + ; + move camx(pc),d0 + sub ob_x(a5),d0 + move camz(pc),d1 + sub ob_z(a5),d1 + bra.s calcangle_ + +calcangle ;angle of object a5 to object a0... + ; + move ob_x(a0),d0 + sub ob_x(a5),d0 + move ob_z(a0),d1 + sub ob_z(a5),d1 + ; +calcangle_ ;d0.w=x d1.w=y (dest-src)! + ; + moveq #0,d2 + tst d1 + bpl.s .hpos + moveq #16,d2 + neg d1 +.hpos tst d0 + bpl.s .wpos + eor #8,d2 + neg d0 +.wpos cmp d1,d0 + bmi.s .notsteep + bne.s .neq + move #$2000,d1 + bra.s .flow +.neq eor #4,d2 + exg d1,d0 +.notsteep tst d1 + bne.s .noflow + moveq #0,d1 + bra.s .flow +.noflow ext.l d0 + swap d0 + divu d1,d0 + lsr #6,d0 + and #1022,d0 + move .arc(pc,d0),d1 +.flow move.l .oct(pc,d2),d0 + eor d0,d1 + swap d0 + add d1,d0 + lsr #8,d0 + rts + ; +.oct dc 0,0,$4000,-1,0,-1,$c000,0 + dc $8000,-1,$4000,0,$8000,0,$c000,-1 +.arc incbin arc.bin + +calcscene ;a0=player object + ; + move #$4000,$dff09a + move.l a0,-(a7) + clr.l shapelist + bsr calccamera + bsr makewalls + ; + lea objects(pc),a5 +.loop move.l (a5),a5 + tst.l (a5) + beq.s .done + cmp.l (a7),a5 + beq.s .loop + move.l ob_render(a5),a0 + jsr (a0) + bra.s .loop +.done ; + move #$c000,$dff09a + addq #4,a7 + rts + +drawscene ;a0=window + ; + bsr dbwindow + bsr castwalls + bsr renderwindow + bsr drawshapes + rts + +vbhandler subq #1,(a1)+ + addq #1,(a1) + btst #0,1(a1) + beq rts + ; + ;OK, movement/animation stuff! + ; + movem.l d0-d7/a0-a6,-(a7) + ; + bsr readjoys + ; + ;do object logic + ; + move.l a7,obj_stack + lea objects(pc),a5 + ; +obj_loop move.l (a5),a5 + tst.l (a5) + beq exit_vb + ; + move.l ob_logic(a5),a0 + jsr (a0) + ; + ;check collision! + ; + move ob_collwith(a5),d0 + beq.s obj_loop + ; + move.l ob_shape(a5),a0 + move 4(a0),d1 + lsr #1,d1 ;radius! + move ob_x(a5),d6 + move ob_z(a5),d7 + ; + lea objects(pc),a0 + ; +.loop2 move.l (a0),a0 + cmp.l a5,a0 + beq.s obj_loop + ; + move ob_colltype(a0),d2 + and d0,d2 + beq.s .loop2 + ; + move.l ob_shape(a0),a1 + move 4(a1),d2 + lsr #1,d2 ;radius! + add d1,d2 ;r sum + ; + move ob_x(a0),d3 + sub d6,d3 + bpl.s .xpl + neg d3 +.xpl cmp d2,d3 + bcc.s .loop2 + ; + move ob_z(a0),d4 + sub d7,d4 + bpl.s .ypl + neg d4 +.ypl cmp d2,d4 + bcc.s .loop2 + ; + mulu d2,d2 + mulu d3,d3 + mulu d4,d4 + add.l d4,d3 + cmp.l d2,d3 + bcc.s .loop2 + ; + col #$fff + ; + subq #1,ob_hitpoints(a0) + bgt.s hit_skip + ; + move.l #killobject3,killjsr + move.l a5,obj_a5 + ; + move.l a0,a5 + move.l ob_die(a5),a0 + jsr (a0) +hit_ret ; + move.l obj_a5(pc),a5 + move.l #killobject2,killjsr + ; +hit_skip subq #1,ob_hitpoints(a5) + bgt.s hit_skip2 + move.l ob_die(a5),a0 + jsr (a0) +hit_skip2 ; + bra obj_loop + ; +exit_vb st doneflag + movem.l (a7)+,d0-d7/a0-a6 + moveq #0,d0 + ; +rts rts + +obj_a5 dc.l 0 +obj_stack dc.l 0 +killjsr dc.l killobject2 + +killobject ; + move.l killjsr(pc),a0 + jmp (a0) + +killobject2 move.l a5,a0 + killitem objects + move.l a0,a5 + move.l obj_stack(pc),a7 + bra obj_loop + +killobject3 move.l a5,a0 + killitem objects + move.l obj_stack(pc),a7 + bra hit_ret + +monsterlogic ; + ;monster cruising around minding his own business... + ; + bsr rndw + cmp ob_rndturn(a5),d0 + bcc.s .noturn + ; +.turn ;turn 45 degrees randomly left or right! + ; + moveq #32,d1 + bsr rndw + tst d0 + bpl.s .pl + neg d1 +.pl add d1,ob_rot(a5) + movem.l d1,-(a7) + bsr calcvecs + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + bsr mover2 + movem.l (a7)+,d1 + bne.s .pl + movem.l d4-d5,ob_xvec(a5) + move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + rts + ; +.noturn movem.l ob_xvec(a5),d4-d5 + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + bsr mover2 + bne.s .turn + move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + rts + +calcvecs move ob_rot(a5),d0 + and #255,d0 + move.l camrots(pc),a0 + lea 0(a0,d0*8),a0 + move ob_movspeed(a5),d4 + move d4,d5 + muls 2(a0),d4 + add.l d4,d4 + muls 6(a0),d5 + add.l d5,d5 + rts + +playerdeath addq #4,ob_rot(a5) + addq #4,ob_eyey(a5) + blt.s .rts + move.l #rts,ob_logic(a5) +.rts rts + +playerdie move.l #playerdeath,ob_logic(a5) + clr.l ob_colltype(a5) + rts + +playerlogic lea joyx0(pc),a0 + move ob_cntrl(a5),d0 + beq.s .skip + lea joyx1(pc),a0 +.skip ; + move (a0),d0 ;joyx - rotate + muls ob_rotspeed(a5),d0 + add ob_rot(a5),d0 + and #255,d0 + move d0,ob_rot(a5) + ; + ;move... + ; + move 2(a0),d4 + neg d4 + muls ob_movspeed(a5),d4 ;speed + move.l camrots(pc),a1 + lea 0(a1,d0*8),a1 + move d4,d5 ;real speed + muls 2(a1),d4 + add.l d4,d4 + muls 6(a1),d5 + add.l d5,d5 + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + ; + bsr mover + ; + move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + ; + bra checkfire + ; + bsr checknew3 ;in a trigger zone? + bne.s checkfire + ; + move.l new_grid(pc),a0 + moveq #-16,d0 +.loop tst (a0) + bpl.s .here + add.l d0,a0 + bra.s .loop + ; +.here move 2(a0),d0 ;first + move.l map_ppnt(pc),a1 + move 0(a1,d0*2),d0 ;poly# + move.l map_poly(pc),a0 + lsl #5,d0 + move zo_ev(a0,d0),d0 + beq.s checkfire + ; + ;OK, gotta clear all 'event' zones with same type! + ; + moveq #32,d1 + moveq #0,d2 +.loop2 cmp zo_ev(a0),d0 + bne.s .skip2 + move d2,zo_ev(a0) +.skip2 add.l d1,a0 + cmp.l a1,a0 + bcs.s .loop2 + ; + move.l a5,-(a7) + bsr execevent + move.l (a7)+,a5 + ; +checkfire move joyf0(pc),d0 + tst ob_cntrl(a5) + beq.s .skip + move joyf1(pc),d0 +.skip tst d0 + beq .rts + ; + addfirst objects + beq .rts + ; + move ob_x(a5),ob_x(a0) + move ob_y(a5),d0 + add ob_firey(a5),d0 + move d0,ob_y(a0) + move ob_z(a5),ob_z(a0) + move.l #firelogic,ob_logic(a0) + move.l #drawshape,ob_render(a0) + move.l #killobject,ob_die(a0) + move.l #blob,ob_shape(a0) + move ob_collwith(a5),d0 + eor #3,d0 + move d0,ob_colltype(a0) + cmp #2,d0 + beq.s .sk + move.l #blob2,ob_shape(a0) +.sk move #0,ob_collwith(a0) + move #1,ob_hitpoints(a0) + ; + move ob_rot(a5),d0 + move.l camrots(pc),a1 + lea 0(a1,d0*8),a1 + ; + move 2(a1),d0 + ext.l d0 + lsl.l #6,d0 + ; + move 6(a1),d1 + ext.l d1 + lsl.l #6,d1 + ; + movem.l d0-d1,ob_xvec(a0) + ; +.rts rts + +firelogic ; + movem.l ob_xvec(a5),d4-d5 + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + bsr mover + bne killobject + move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + rts + +drawshape_8 ; + ;shape has 8 rotations! + ; + bsr calcangle2 + add #16,d0 + add ob_rot(a5),d0 + lsr #5,d0 + and #7,d0 + lea shrots,a0 + move.l 0(a0,d0*4),a0 + move ob_x(a5),d0 + move ob_y(a5),d1 + move ob_z(a5),d2 + bra.s drawshape_ + +drawshape ; + move ob_x(a5),d0 + move ob_y(a5),d1 + move ob_z(a5),d2 + move.l ob_shape(a5),a0 +drawshape_ ; + ;A0=shape + ;D0=X + ;D1=Y + ;D2=Z + ; + ;rotate Z around camera! + ; + sub camx(pc),d0 + sub camy(pc),d1 + sub camz(pc),d2 + ; + move d0,d3 + move d2,d5 + muls cm3(pc),d3 + muls cm4(pc),d2 + add.l d3,d2 + add.l d2,d2 + swap d2 + ; + cmp #maxz,d2 + bge .rts + cmp #1,d2 + ble .rts + ; + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 + ; + sub (a0)+,d0 ;handles! + sub (a0)+,d1 + ; + move.l memat(pc),a1 + add.l #sh_size,memat + movem d0-d2,sh_x(a1) + move.l a0,sh_shape(a1) + ; + lea shapelist(pc),a2 +.loop move.l (a2),d0 + beq.s .end + move.l a2,a3 + move.l d0,a2 + cmp sh_z(a2),d2 ;nearer...further in list + blt.s .loop + move.l a2,(a1) + move.l a1,(a3) + rts +.end move.l d0,(a1) + move.l a1,(a2) +.rts rts + +drawshapes lea shapelist(pc),a6 + ; +.drawloop move.l (a6),d0 + beq .rts + move.l d0,a6 + movem sh_x(a6),d0-d2 + move.l sh_shape(a6),a0 + ; + ;d0=rotated X, d1=Y, d2=Z + ; + ;work out real width/height! + ; + lsl.l #focshft,d0 + divs d2,d0 ;Screen X + cmp maxx(pc),d0 + bge .drawloop ;X too big! + ; + lsl.l #focshft,d1 + divs d2,d1 ;Screen Y + cmp maxy(pc),d1 + bge .drawloop + ; + movem (a0),d3-d4 + ; + move.l d3,d5 + lsl.l #focshft,d3 + divs d2,d3 ;screen width + ext.l d3 + ble .drawloop + ; + move.l d4,d6 + lsl.l #focshft,d4 + divs d2,d4 ;hite + ext.l d4 + ble .drawloop + ; + swap d5 + divu.l d3,d5 ;x step.q + ; + add midx(pc),d0 + bpl.s .xcskip + add d0,d3 ;reduce width + ble .drawloop + moveq #0,d7 + neg d0 + ext.l d0 + mulu.l d5,d0 ;start column in shape + cmp width(pc),d3 + ble.s .xcdone + move width(pc),d3 + bra.s .xcdone + ; +.xcskip move d0,d7 ;sc X + add d3,d0 + sub width(pc),d0 + ble.s .xcdone2 + sub d0,d3 + ble .drawloop +.xcdone2 move.l d5,d0 + lsr.l #1,d0 +.xcdone ; + swap d6 + divu.l d4,d6 ;y step + ; + move.l cop(pc),a1 + ; + add midy(pc),d1 + bpl.s .ycskip + add d1,d4 ;hite + ble .drawloop + neg d1 + ext.l d1 + mulu.l d6,d1 + cmp hite(pc),d4 + ble.s .ycdone + move hite(pc),d4 + bra.s .ycdone + ; +.ycskip move d1,-(a7) + mulu copmod(pc),d1 + add.l d1,a1 + move (a7)+,d1 + add d4,d1 + sub hite(pc),d1 + ble.s .ycdone2 + sub d1,d4 + ble .drawloop +.ycdone2 move.l d6,d1 + lsr.l #1,d1 +.ycdone ; + ;draw bit... + ; + ;a0=src, a1=dest, a2=palette + ; + ;d0.q=src x + ;d1.q=src y + ;d2.w = Z! + ;d3.w=width + ;d4.w=height + ;d5.q=x step + ;d6.q=y step + ;d7.w=start screen column + ;a0.l=src + ;a1.l=dest + ;a2.l=palette + ; + move.l a6,-(a7) + ; + lea coloffs,a5 + lea 0(a5,d7*4),a5 + ; + move.l vertdraws(pc),a6 + mulu #vd_size,d7 + lea 0(a6,d7),a6 + ; + lea palettes,a2 + move d2,d7 + lsr #darkshft,d7 + move.l 0(a2,d7*4),a2 + ; + subq #1,d3 + subq #1,d4 + swap d0 + swap d1 + swap d5 + swap d6 + addq #2,a0 + ; +.hloop move.l a1,a4 + add.l (a5)+,a4 + cmp vd_z(a6),d2 + bge .zbad + ; + movem.l d0-d1/d4-d5,-(a7) + ; + mulu (a0),d0 + lea 2(a0,d0),a3 ;src + ; + move copmod(pc),d7 + ext.l d7 + moveq #0,d5 + moveq #0,d0 + ; +.vloop move.b 0(a3,d1),d5 + beq.s .skip + move 0(a2,d5*2),(a4) +.skip add.l d6,d1 ;next src Y + addx.l d0,d1 + add.l d7,a4 + dbf d4,.vloop + ; + movem.l (a7)+,d0-d1/d4-d5 + ; +.zbad add.l d5,d0 + moveq #0,d7 + addx.l d7,d0 ;next src X + lea vd_size(a6),a6 + ; + dbf d3,.hloop + ; + move.l (a7)+,a6 + bra .drawloop + ; +.rts rts + +printcampos move camx(pc),d6 + lsr #grdshft,d6 + ext.l d6 + ; + move camz(pc),d7 + lsr #grdshft,d7 + ext.l d7 + ; + move d7,d5 + lsl #5,d5 + add d6,d5 + move.l map_grid(pc),a0 + move 0(a0,d5*4),d5 + and.l #$ffff,d5 + ; + printlong d6 + printlong d7 + printlong d5 + ; + rts + +mover ; + ;d4=x speed + ;d5=z speed + ;d6=x + ;d7=z + ; + ;return d0, ne if a wall was hit! + ;check only walls zone (player) + ; + neg.l d4 + moveq #0,d3 + add.l d4,d6 + add.l d4,d6 + add.l d4,d6 + bsr checknew + beq.s .xok + moveq #-1,d3 + sub.l d4,d6 +.xok sub.l d4,d6 + sub.l d4,d6 + ; + add.l d5,d7 + add.l d5,d7 + add.l d5,d7 + bsr checknew + beq.s .zok + moveq #-1,d3 + sub.l d5,d7 +.zok sub.l d5,d7 + sub.l d5,d7 + tst d3 + rts + +mover2 ; + ;d4=x speed + ;d5=z speed + ;d6=x + ;d7=z + ; + ;return d0, ne if a wall was hit! + ;check walls AND monster zones + ; + neg.l d4 + moveq #0,d3 + add.l d4,d6 + add.l d4,d6 + add.l d4,d6 + bsr checknew + bne.s .xbad + bsr checknew2 + beq.s .xok +.xbad moveq #-1,d3 + sub.l d4,d6 +.xok sub.l d4,d6 + sub.l d4,d6 + ; + add.l d5,d7 + add.l d5,d7 + add.l d5,d7 + bsr checknew + bne.s .zbad + bsr checknew2 + beq.s .zok +.zbad moveq #-1,d3 + sub.l d5,d7 +.zok sub.l d5,d7 + sub.l d5,d7 + tst d3 + rts + +checknew3 ;check trigger event zone + move.l map_grid(pc),a0 + addq #8,a0 + bra.s checknew_ +new_grid dc.l 0 + +checknew2 ;check monster zone + move.l map_grid(pc),a0 + addq #4,a0 + bra.s checknew_ + +checknew ;check wall zone + move.l map_grid(pc),a0 + ; +checknew_ movem.l d3-d5,-(a7) + swap d6 + swap d7 + ; + addq #1,frame + move frame(pc),d5 + move d6,d0 + move d7,d1 + lsr #grdshft,d0 ;x count + lsr #grdshft,d1 + lsl #5,d1 + add d0,d1 + lsl #4,d1 + lea 0(a0,d1),a0 + move.l a0,new_grid + moveq #1,d1 + move.l map_ppnt(pc),a1 + move.l map_poly(pc),a2 + ; + ;d0=counter to left of map! + ;d1=in/out counter + ; +.loop move (a0)+,d2 ;how many in this grid! + bmi .next + ; + move (a0),d3 + lea 0(a1,d3*2),a3 + ; +.loop2 move (a3)+,d3 + lsl #5,d3 + lea 0(a2,d3),a4 + ; + cmp zo_done(a4),d5 + beq .next2 + move d5,zo_done(a4) + ; + cmp zo_minz(a4),d7 + blt .next2 + cmp zo_maxz(a4),d7 + bge .next2 + ; + ;OK, we are in the z area! + ; + cmp zo_minx(a4),d6 + blt .next2 ;too far left! + cmp zo_maxx(a4),d6 + bgt .inc + ; + ;have to do test! + ; + movem zo_x1(a4),d3-d4 ;x1,z1 + sub d6,d3 + muls zo_a(a4),d3 + sub d7,d4 + muls zo_b(a4),d4 + add.l d4,d3 + bpl.s .next2 + ; +.inc addq #1,d1 + ; +.next2 dbf d2,.loop2 + ; +.next lea -18(a0),a0 + dbf d0,.loop + ; + swap d6 + swap d7 + and #1,d1 + movem.l (a7)+,d3-d5 + rts + +calccamera ;a0=player object + ; + move ob_x(a0),camx + move ob_y(a0),d0 + add ob_eyey(a0),d0 + move d0,camy + move ob_z(a0),camz + move ob_rot(a0),d0 + and #255,d0 + move d0,camr + move.l camrots(pc),a1 + lea 0(a1,d0*8),a1 + move.l (a1)+,cm1 + move.l (a1),cm3 + ; + rts + +readjoys ;set up joyx0,joyy0,joyx1,joyy1 + ; + move.l rawtable(pc),a0 + moveq #0,d0 + key $4f + beq.s .nleft + moveq #-1,d0 +.nleft key $4e + beq.s .nrite + moveq #1,d0 +.nrite move d0,joyx0 + moveq #0,d0 + key $4c + beq.s .nup + moveq #-1,d0 +.nup key $4d + beq.s .ndown + moveq #1,d0 +.ndown move d0,joyy0 + key $64 + sne d0 + ext d0 + move d0,d1 + beq.s .nofire + tst joyb0 + beq.s .nofire + moveq #0,d1 +.nofire move d1,joyf0 + move d0,joyb0 + ; + elseif + move.b $bfe001,d3 + move $dff00a,d2 ;joy0 + bsr readjoy + move d0,joyx0 + move d1,joyy0 + bsr makerot + move d0,joyr0 + btst #6,$bfe001 + seq d0 + ext d0 + move d0,d1 + beq.s .nofire + tst joyb0 + beq.s .nofire + moveq #0,d1 +.nofire move d1,joyf0 + move d1,help + move d0,joyb0 + elseif + ; + move $dff00c,d2 + bsr readjoy + move d0,joyx1 + move d1,joyy1 + bsr makerot + move d0,joyr1 + btst #7,$bfe001 + seq d0 + ext d0 + move d0,d1 + beq.s .nofire2 + tst joyb1 + beq.s .nofire2 + moveq #0,d1 +.nofire2 move d1,joyf1 + move d0,joyb1 + ; + rts + +makerot ;convert d0,d1 into a rotation type setting... + ; + ;0=up, 1=up/rite, 2=rite etc... + ; + ;<0=no dir + ; + addq #1,d0 + lsl #2,d0 + addq #1,d1 + or d1,d0 + add d0,d0 + move rots(pc,d0),d0 + rts + +rots ;x=-1 + dc 7,6,5,-1 + ;x=0 + dc 0,-1,4,-1 + ;x=1 + dc 1,2,3,-1 + +readjoy bsr joydir + move d1,d0 + move d2,d1 + add d1,d1 + eor d1,d2 + ; +joydir btst #9,d2 + bne.s .neg + btst #1,d2 + bne.s .pos + moveq #0,d1 + rts +.neg moveq #-1,d1 + rts +.pos moveq #1,d1 + rts + +gridoffs incbin gridoffs.bin +gridoffsf + +makewalls ; + ;New approach! + ; + ;use poly's line eq to test perpendicular distance to wall + ;produce nearest -> furthest wall list. + ; + ;optimizations... + ;check if both z's are negative after rotation + ;check if projected left/rite ends are on screen + ; + addq #1,frame + ; + clr.l inlist + move.l #inlist,inlistf + clr.l outlist + move.l #outlist,outlistf + ; + move.l map_poly(pc),a4 + move.l map_ppnt(pc),a3 + move.l map_grid(pc),a2 + movem camx(pc),d6-d7 ;x,z + lsr #grdshft,d6 + lsr #grdshft,d7 + lea gridoffs(pc),a6 + moveq #(gridoffsf-gridoffs)>>2-1,d5 + ; +.loop movem (a6)+,d0-d1 + add d6,d0 + cmp #32,d0 + bcc .skip + add d7,d1 + cmp #32,d1 + bcc .skip + ; + ;d0,d1=x/z of map to check! + ; + lsl #5,d1 ;Y*32... + add d1,d0 ;+X + lsl #4,d0 + lea 0(a2,d0),a0 ;mapgrid + move (a0)+,d4 ;how many polys here + bmi .skip + move (a0),d0 ;poly data offset + lea 0(a3,d0*2),a0 + ; +.loop2 move (a0)+,d0 ;poly# + lsl #5,d0 + lea 0(a4,d0),a1 ;actual poly + move frame(pc),d0 + cmp zo_done(a1),d0 + beq .skip3 + move d0,zo_done(a1) + ; + ;OK, setup: + ; + ;d0=lx,d1=lz,d2=rx,d3=rz + ;d4=t,d5=sc,d6=dist + ; + ;back face/dist check... + ; + movem d4-d7,-(a7) + ; + movem zo_x1(a1),d0-d3 ;x1,z1,x2,z2 + movem camx(pc),d6-d7 + ; + sub d6,d0 + sub d7,d1 + sub d6,d2 + sub d7,d3 + ; + move d0,d4 + move d1,d5 + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 ;LX + muls cm3(pc),d4 + muls cm4(pc),d1 + add.l d4,d1 + add.l d1,d1 + swap d1 ;LZ + ; + move d2,d4 + move d3,d5 + muls cm1(pc),d2 + muls cm2(pc),d5 + add.l d5,d2 + add.l d2,d2 + swap d2 ;RX + muls cm3(pc),d4 + muls cm4(pc),d3 + add.l d4,d3 + add.l d3,d3 + swap d3 ;RZ + ; + tst d3 + bgt.s .zok + tst d1 + ble .skip2 + ; +.zok ;do backface check...generate a,b,c... + ; + move d1,d4 + sub d3,d4 ;a + move d2,d5 + sub d0,d5 ;b + ; + move d0,d6 + muls d4,d6 + move d1,d7 + muls d5,d7 + add.l d7,d6 + bpl.s .front + ; + ;backface showing!... + bra .skip2 +.front ; + move.l memat(pc),a5 + movem d0-d5,wl_lx(a5) + move.l d6,wl_c(a5) + ; + ;gotta create screen coords...z clip + ; + ;elseif + ; + tst d1 + bgt.s .z1ok + ; + ;lz bad, rz must be OK... + ; + move #-32768,d5 + bra .z1sk + ; + move d3,d5 + sub d1,d5 + move d1,d6 + neg d6 + swap d6 + clr d6 + divu d5,d6 ;frac + move d2,d5 + sub d0,d5 + mulu d6,d5 + swap d5 + add d0,d5 + bra.s .z1sk + ; +.z1ok move d0,d5 + ext.l d5 + lsl.l #focshft,d5 + divs d1,d5 + ; +.z1sk move d5,wl_lsx(a5) + ; + tst d3 + bgt.s .z2ok + ; + ;rz bad, lz must be OK... + ; + move #32767,d2 + bra .z2sk + ; + move d1,d5 + sub d3,d5 + move d1,d6 + swap d6 + clr d6 + divu d5,d6 + sub d0,d2 + mulu d6,d2 + swap d2 + add d0,d2 + bra.s .z2sk + ; +.z2ok ext.l d2 + lsl.l #focshft,d2 + divs d3,d2 + ; +.z2sk move d2,wl_rsx(a5) + ; + movem wl_lsx(a5),d0/d2 + cmp d0,d2 + bge.s .sxok + move d2,wl_lsx(a5) + move d0,wl_rsx(a5) +.sxok ; + ;elseif + ; + cmp d1,d3 + bge.s .zskp + exg d1,d3 +.zskp movem d1/d3,wl_nz(a5) ;near/far Z + move zo_t(a1),wl_t(a5) + move zo_sc(a1),wl_sc(a5) + ; + ;add to end of inlist... + ; + clr.l (a5) + move.l inlistf(pc),a1 + move.l a5,(a1) + move.l a5,inlistf + add.l #wl_size,memat + ; +.skip2 movem (a7)+,d4-d7 + ; +.skip3 dbf d4,.loop2 ;finish sq + ; +.skip dbf d5,.loop ;gridoffs + +makeoutlist ;create outlist from inlist + ; +.loop0 lea inlist(pc),a0 + ; +.loop move.l (a0),d0 + beq .done + move.l a0,a2 ;save previous! + move.l d0,a0 + ; + ;OK, see if any are in front of a0... + ; + lea inlist(pc),a1 + ; +.loop2 move.l (a1),d0 + beq .none + move.l a1,a3 + move.l d0,a1 + ; + cmp.l a0,a1 + beq.s .loop2 ;don't compare with self! + ; + ;see if a1 is in front of a0 + ; + move wl_nz(a1),d0 + cmp wl_fz(a0),d0 + bge .loop2 ;behind! + ; + move wl_fz(a1),d0 + cmp wl_nz(a0),d0 + ble .swap + ; + ;now, compare screen x coords..... + ; + move wl_rsx(a0),d0 + cmp wl_lsx(a1),d0 + blt .loop2 + ; + move wl_lsx(a0),d0 + cmp wl_rsx(a1),d0 + bgt .loop2 + ; + ;look at a0 points against a1 line + ; + ;If Sgn((x3-x1)*a2+(y3-y1)*b2)<>Sgn(c2) + ; If Sgn((x3-x2)*a2+(y3-y2)*b2)<>Sgn(c2) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + movem wl_a(a1),d5-d6 + move.l wl_c(a1),d7 + ; + move wl_lx(a1),d0 + sub wl_lx(a0),d0 + muls d5,d0 + move wl_lz(a1),d1 + sub wl_lz(a0),d1 + muls d6,d1 + add.l d1,d0 + eor.l d7,d0 + ; + move wl_lx(a1),d1 + sub wl_rx(a0),d1 + muls d5,d1 + move wl_lz(a1),d2 + sub wl_rz(a0),d2 + muls d6,d2 + add.l d2,d1 + eor.l d7,d1 + ; + ;OK, screen X's overlap... + ;if both a0 in front, no swap + ; + move.l d0,d4 + or.l d1,d4 + bpl .loop2 + ; + ;if both a0 behind, swap + ; + move.l d0,d4 + and.l d1,d4 + bmi .swap + ; + ;look at a1 points against a0 line + ; + ;If Sgn((x1-x3)*a1+(y1-y3)*b1)=Sgn(c1) + ; If Sgn((x1-x4)*a1+(y1-y4)*b1)=Sgn(c1) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + movem wl_a(a0),d5-d6 + move.l wl_c(a0),d7 + ; + move wl_lx(a0),d2 + sub wl_lx(a1),d2 + muls d5,d2 + move wl_lz(a0),d3 + sub wl_lz(a1),d3 + muls d6,d3 + add.l d3,d2 + eor.l d7,d2 + ; + move wl_lx(a0),d3 + sub wl_rx(a1),d3 + muls d5,d3 + move wl_lz(a0),d4 + sub wl_rz(a1),d4 + muls d6,d4 + add.l d4,d3 + eor.l d7,d3 + ; + ;if both a1's behind, no swap + ; + move.l d2,d4 + and.l d3,d4 + bmi .loop2 ;both a1's behind... + ; + ;if both a1's in front, swap + move.l d2,d4 + or.l d3,d4 + bpl .swap + ; + bra .loop2 + ; +.swap ;a1 is infront of a0! make a1 new frontmost + bra .loop + move.l a1,a0 + move.l a3,a2 + bra .loop2 + ; +.none ;OK, none in front of this (a0) + ; + move.l (a0),(a2) ;unlink from inlist + clr.l (a0) + move.l outlistf(pc),a2 + move.l a0,(a2) + move.l a0,outlistf + bra .loop0 + ; +.done ;move.l inlist(pc),d0 + ;bne .loop0 + rts + + elseif + + ;a1=-(y2-y1):b1=(x2-x1):c1=x1*a1+y1*b1 ;line a/campos + ;a2=-(y4-y3):b2=(x4-x3):c2=x3*a2+y3*b2 ;line b/campos + ; + ;If both B in front of A, yes! + ; + ;If Sgn((x1-x3)*a1+(y1-y3)*b1)=Sgn(c1) + ; If Sgn((x1-x4)*a1+(y1-y4)*b1)=Sgn(c1) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + ;if both A behind B, yes! + ; + ;If Sgn((x3-x1)*a2+(y3-y1)*b2)<>Sgn(c2) + ; If Sgn((x3-x2)*a2+(y3-y2)*b2)<>Sgn(c2) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + ;if both A in front of B, no! + ; + ;If Sgn((x3-x1)*a2+(y3-y1)*b2)=Sgn(c2) + ; If Sgn((x3-x2)*a2+(y3-y2)*b2)=Sgn(c2) + ; tr=0:Return + ; EndIf + ;EndIf + ; + ;if both B behind A, no! + ; + ;If Sgn((x1-x3)*a1+(y1-y3)*b1)<>Sgn(c1) + ; If Sgn((x1-x4)*a1+(y1-y4)*b1)<>Sgn(c1) + ; tr=0:Return + ; EndIf + ;EndIf + ; + ;tr=-1:Return + + elseif + +castwalls ;process 'walls' list + ; + move.l castrots(pc),a6 + move minx(pc),d7 + lea 0(a6,d7*8),a6 + move.l vertdraws(pc),a4 + ; +.loop ;do this vert line! + ; + lea outlist(pc),a5 + ; +.loop2a move.l (a5),d0 + beq .empty + move.l d0,a5 + ; + cmp wl_lsx(a5),d7 + beq .empty + blt.s .loop2a + cmp wl_rsx(a5),d7 + beq .empty + bgt.s .loop2a + ; + movem wl_lx(a5),d0-d1 + muls (a6),d0 + muls 2(a6),d1 + add.l d1,d0 ;LX! + bgt .loop2a + ; + movem wl_rx(a5),d1-d2 + muls (a6),d1 + muls 2(a6),d2 + add.l d2,d1 ;RX! + blt .loop2a + ; + lsl.l #exshft,d0 + lsl.l #exshft,d1 + sub.l d0,d1 + add.l #1<<(exshft-1),d1 ;+.5 + ; + swap d1 + tst d1 + ble.s .dfix + neg.l d0 + divu d1,d0 + bvc.s .noov +.dfix moveq #-1,d0 +.noov lsr #1,d0 ;fraction -> unsigned + ; + movem wl_lx(a5),d1-d2 + muls 4(a6),d1 + muls 6(a6),d2 + add.l d2,d1 + add.l d1,d1 ;LZ + ; + movem wl_rx(a5),d2-d3 + muls 4(a6),d2 + muls 6(a6),d3 + add.l d3,d2 + add.l d2,d2 ;RZ + ; + sub.l d1,d2 + add.l #$8000,d2 ;+.5 + swap d2 + muls d0,d2 + add.l d2,d2 + add.l d1,d2 + add.l #$8000,d2 + ; + swap d2 + tst d2 + ble .loop2a + ; + cmp #maxz,d2 + bcs .zisok + ; +.empty move #32767,vd_z(a4) + clr.l vd_data(a4) + bra .next +.zisok ; + ;d0=frac, d2=z, a5=item + ; + move d2,d3 + lsr #darkshft,d3 + movem d2-d3,vd_z(a4) + ; + moveq #-128,d3 + sub camy(pc),d3 + ext.l d3 + lsl.l #focshft,d3 + divs d2,d3 ;top Y + ; + move camy(pc),d4 + neg d4 + ext.l d4 + lsl.l #focshft,d4 + divs d2,d4 ;bot Y (0) + ; + sub d3,d4 + movem d3-d4,vd_y(a4) + ; + lea textures(pc),a3 + move wl_t(a5),d1 + move.l -4(a3,d1*4),a3 ;texture! + ; + ;calc ystep... + movem te_hand(a3),d1 + addq #1,d1 + swap d1 + ext.l d4 + divu.l d4,d1 + move.l d1,vd_ystep(a4) + ; + ;calc column# + mulu wl_sc(a5),d0 + ; + move te_wshift(a3),d1 + addq #1,d1 + lsl.l d1,d0 + swap d0 + move te_wand(a3),d1 + and d1,d0 + ; + move te_hshift(a3),d1 + lsl d1,d0 + ; + lea te_size(a3,d0),a3 + move.l a3,vd_data(a4) + ; +.next ;onto next display column + ; + lea vd_size(a4),a4 + addq #8,a6 + addq #1,d7 + cmp maxx(pc),d7 + blt .loop + ; + rts + +dbwindow ;a0=window to double buffer.... + ; + movem.l wi_cop(a0),d0-d1 + cmp.l d0,d1 + bne.s .skip + move.l wi_cop2(a0),d1 +.skip move.l d1,wi_cop(a0) + ; +usewindow ;a0=window to use... + ; + move.l wi_cop(a0),cop + move.l wi_bmap(a0),bitmap + clr.l cursx + ; + move wi_copmod(a0),copmod + move wi_w(a0),d0 + move d0,width + lsr #1,d0 + move d0,maxx + neg d0 + move d0,minx + move wi_h(a0),d1 + move d1,hite + lsr #1,d1 + move d1,maxy + neg d1 + move d1,miny + ; + rts + +renderwindow ; + ; +renderwalls ; + move.l vertdraws(pc),a6 + lea coloffs(pc),a5 + move width(pc),d7 + subq #1,d7 + lea palettes,a2 + ; + move copmod(pc),d0 + subq #2,d0 + ; + bwait + move.l #$1f00000,$dff040 + move d0,$dff066 + move.l #-1,$dff044 + move #0,$dff074 + ; +.loop move.l cop(pc),a1 + add.l (a5)+,a1 + move hite(pc),d6 + ; + move.l vd_data(a6),d0 + beq .vertskip + ; + move.l d0,a0 + ; + move vd_h(a6),d5 + move.l vd_ystep(a6),d1 + ; + ;setup d6, how much more to cls! + ; + move vd_y(a6),d0 + add midy(pc),d0 + bpl.s .noclip + ; + ;gotta clip Y + add d0,d5 ;reduce hite + ble .vertskip + neg d0 + ext.l d0 + mulu.l d1,d0 ;y step* y + move.l d1,d2 + asr.l #1,d2 + add.l d2,d0 + cmp d6,d5 + ble .skipclip + move d6,d5 + bra.s .skipclip + ; +.noclip ;OK, cls down to Y in d0! + ; + beq.s .skcl + move d0,d2 + lsl #6,d2 + or #1,d2 + bwait + move.l a1,$dff054 ;Dpth + move d2,$dff058 ;size... + ; + ;start draw from here... +.skcl move d0,d2 + mulu copmod(pc),d2 + add.l d2,a1 + ; + move d0,d2 + add d5,d2 + sub d6,d2 + ble.s .skipclip2 + sub d2,d5 + ble .vertskip + ; +.skipclip2 sub d0,d6 + move.l d1,d0 + asr.l #1,d0 +.skipclip ; + sub d5,d6 + ; + subq #1,d5 + swap d0 + swap d1 + move vd_pal(a6),d2 + move.l 0(a2,d2*4),a3 + moveq #0,d2 + moveq #0,d3 + move copmod(pc),d4 + ext.l d4 + ; +.vertloop ;a0=src texture column + ;a1=dest coppoke + ;a3=palette + ;d0=current Y + ;d1=Y step + ;d2=0 + ;d3=$00xx + ;d4=copmod + ;d5=count + ; + move.b 0(a0,d0),d3 ;lut entry + add.l d1,d0 + addx.l d2,d0 + move 0(a3,d3*2),(a1) ;colour! + add.l d4,a1 + dbf d5,.vertloop + ; +.vertskip lsl #6,d6 + ble.s .vertskip2 + or #1,d6 + bwait + move.l a1,$dff054 + move d6,$dff058 + ; +.vertskip2 lea vd_size(a6),a6 + dbf d7,.loop + ; + check .loop + ; + rts + +vwait move #1,vbcounter +.loop tst vbcounter + bgt.s .loop + rts + +;************** DATA *************************** + +data + +inlist dc.l 0 +inlistf dc.l inlist +outlist dc.l 0 +outlistf dc.l outlist + +dummy dc.l 0 +player1 dc.l 0 +player2 dc.l 0 +doneflag dc.l 0 +memory dc.l 0 +memat dc.l 0 +shapelist dc.l 0 +bitmap dc.l 0 +palettes ds.l 16 ;16 palettes for 16 brightnesses +rgbs ds.l 1 ;table for calculating palettes + +joyx0 dc 0 +joyy0 dc 0 +joyr0 dc 0 +joyb0 dc 0 +joyf0 dc 0 +joyz0 dc 0 + ; +joyx1 dc 0 +joyy1 dc 0 +joyr1 dc 0 +joyb1 dc 0 +joyf1 dc 0 +joyz1 dc 0 + +map_map dc.l mapinc +map_grid dc.l 0 +map_poly dc.l 0 +map_ppnt dc.l 0 +map_rgbs dc.l 0 +map_txts dc.l 0 + ; +camx dc 0 +camz dc 0 +camy dc 0 +camr dc 0 + + ;camera matrix... +cm1 dc $7ffe +cm2 dc 0 +cm3 dc 0 +cm4 dc $7ffe + +castrots dc.l castrotsinc+8*160 ;middle of table +camrots dc.l camrotsinc + +vertdraws dc.l 0 ;draws for player 1 + +cop dc.l 0 +copmod dc 0 +width dc 0 +hite dc 0 +minx dc 0 +midx ; +maxx dc 0 +miny dc 0 +midy ; +maxy dc 0 + +coplist dc.l 0 +slice1 dc.l 0 +slice2 dc.l 0 +copstop dc.l 0 + +memlist dc.l 0 + +dispnest dc 0 + +coloffs ds.l 320 ;320 columns max + +window1 ; +slice dc.l slice1 +nslice dc.l copstop ;slice2 ;copstop here for 1 window + ; + dc 160-45*2 + dc 164-45*2 + dc 90 ;max width for 2 high = 90! + dc 90 + dc 2 + dc 2 + ; + dc 0 + dc.l 0 + dc.l 0 + ; + dc.l 0 + dc.l 0 + dc.l 0 + dc.l 0 + dc 0 + +window2 ; + dc.l slice2 + dc.l copstop + ; + dc 160-32*2 + dc 164 + dc 64 + dc 59 + dc 2 + dc 2 + ; + dc 0 + dc.l 0 + dc.l 0 + ; + dc.l 0 + dc.l 0 + dc.l 0 + dc.l 0 + dc 0 + +col0 equ $123 +col1 equ $fff + +copinit ;initialization for display + ; + dc $1fc,15 + dc $096,$0120 ;cop/bit/spr DMA off + ;dc $08e,$2c81,$090,$f4c1 + dc $092,$38,$094,$a0 + dc $108,6*40,$10a,6*40 + dc $100,$7200 ;lores, 7 bitplanes + dc $102,0 + ; + ;lo colour nybs - lo bank + dc $106,$0200 + dc $180,col0,$182,col1 + ; + ;lo nybs - hi bank + dc $106,$8200 + dc $180,col0,$182,col1 + ; + ;hi colour nybs - lo bank + dc $106,0 + dc $180,col0,$182,col1 + ; + ;hi colour nybs - hi bank + dc $106,$8000 + dc $180,col0,$182,col1 + ; + dc 26<<8+1,$fffe + ; + ;slice... + ; +sl1 dc $e0,0,$e2,0 + dc $e4,0,$e6,0 + dc $e8,0,$ea,0 + dc $ec,0,$ee,0 + dc $f0,0,$f2,0 + dc $f4,0,$f6,0 + dc $f8,0,$fa,0 + dc $08e,$2c81,$090,$f4c1 ;diw + dc $096,$8100 + dc $084,0,$086,0,$08a,0 + ; +sl2 dc $e0,0,$e2,0 + dc $e4,0,$e6,0 + dc $e8,0,$ea,0 + dc $ec,0,$ee,0 + dc $f0,0,$f2,0 + dc $f4,0,$f6,0 + dc $f8,0,$fa,0 + ;56 + dc $08e,$2c81,$090,$f4c1 ;diw + ;64 + dc $096,$8100 + ;68 + dc $084,0,$086,0,$08a,0 + ; +cstop dc $096,$0100 + dc $ffff,$fffe +copinitf ; + +bigdata + +textures ds.l 48 + +castrotsinc incbin castrots.bin +camrotsinc incbin camrots.bin +palette incbin texture.pal +font incbin font.bin +shrots dc.l rot1,rot2,rot3,rot4,rot5,rot6,rot7,rot8 + +;************** SLOW SUBS ********************** + +slowsubs + +rawtable dc.l 0 +ciaaname dc.b 'ciaa.resource',0 + even + +cursx dc 0 +cursy dc 0 + +printlong_ movem.l d0-d7/a0-a6,-(a7) + move.l bitmap(pc),a0 + move cursy(pc),d0 + mulu #linemod*8,d0 + add.l d0,a0 + move cursx(pc),d0 + add d0,a0 + ; + move.l 64(a7),d0 ;num to print + lea font,a1 + moveq #7,d1 + ; +.loop rol.l #4,d0 + move d0,d2 + and #15,d2 + lea 0(a1,d2*8),a2 + move.l a0,a3 + moveq #7,d3 + ; +.loop2 move.b (a2)+,(a3) + lea linemod(a3),a3 + dbf d3,.loop2 + ; + addq #1,a0 + dbf d1,.loop + ; + add #1,cursy + movem.l (a7)+,d0-d7/a0-a6 + move.l (a7)+,(a7) + rts + +loadfile ;a0=name, d1=memtype + ; + ;return d0=pointer + ; + push + ; + move.l d1,-(a7) + ; + move.l a0,d1 + move.l #1005,d2 + move.l dosbase,a6 + jsr -30(a6) ;open it! + move.l d0,d7 ;handle + beq .done + ; + move.l d7,d1 + moveq #0,d2 + moveq #1,d3 + jsr -66(a6) ;seek to end + ; + move.l d7,d1 + moveq #0,d2 + moveq #-1,d3 ;seek to start + jsr -66(a6) + ; + ;d0=length of file ? + ; + move.l d0,d3 + move.l (a7),d1 + jsr allocmem + ; + move.l d0,d2 + move.l d7,d1 + jsr -42(a6) + move.l d7,d1 + jsr -36(a6) + move.l d2,d0 + ; +.done addq #4,a7 + pull + ; + rts + +calcpalettes ;a0=palette! + ; + move.l map_rgbs(pc),a0 + ; + move.l rgbs(pc),a1 + move #255,d0 + move.l #$f0000,d1 + ; +.loop move (a0)+,d2 + ; + move d2,d3 + lsl.l #8,d2 + and.l d1,d2 + move.l d2,(a1)+ ;R + ; + move d3,d2 + lsl.l #8,d2 + lsl.l #4,d2 + and.l d1,d2 + move.l d2,(a1)+ ;G + ; + swap d3 + and.l d1,d3 + move.l d3,(a1)+ ;B + ; + dbf d0,.loop + ; + lea palettes(pc),a0 + moveq #15,d0 + ; +.loop2 move.l rgbs(pc),a1 + move.l (a0)+,a2 + move #255,d1 + ; +.loop3 movem.l (a1),d2-d4 + lsr.l #8,d2 + and #$f00,d2 + lsr.l #8,d3 + lsr.l #4,d3 + and #$f0,d3 + swap d4 + and #$f,d4 + or d4,d3 + or d3,d2 + move d2,(a2)+ + ; + move.l (a1),d2 + sub.l #$10000,d2 + bpl.s .rok + moveq #0,d2 +.rok move.l d2,(a1)+ + ; + move.l (a1),d3 + sub.l #$10000,d3 + bpl.s .gok + moveq #0,d3 +.gok move.l d3,(a1)+ + ; + move.l (a1),d4 + sub.l #$10000,d4 + bpl.s .bok + moveq #0,d4 +.bok move.l d4,(a1)+ + ; + dbf d1,.loop3 + dbf d0,.loop2 + rts + +dispoff tst dispnest + bne.s .skip + bsr vwait + move #$01a0,$dff096 +.skip addq #1,dispnest + rts + +dispon subq #1,dispnest + bgt.s .skip + bsr vwait + move #$8180,$dff096 +.skip rts + +forbid push + move.l 4.w,a6 + jsr -132(a6) + pull + rts + +permit push + move.l 4.w,a6 + jsr -138(a6) + pull + rts + +initvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -168(a6) ;addintserver + pull + rts + +vbcounter dc 0 +framecnt dc 0 + +frame dc 0,0 + +vbintserver dc.l 0,0 + dc.b 2,0 + dc.l 0 +vbintdata dc.l vbcounter +vbintcode dc.l vbhandler + +finitvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -174(a6) + pull + rts + +ownblitter push + move.l grbase,a6 + jsr -456(a6) + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + pull + rts + +disownblitter push + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + move.l grbase,a6 + jsr -462(a6) + pull + rts + +makecoloffs push + lea coloffs,a0 + moveq #2,d0 + moveq #3,d2 +.loop addq.l #4,d0 + moveq #31,d1 +.loop2 move.l d0,(a0)+ + addq.l #4,d0 + dbf d1,.loop2 + dbf d2,.loop + pull + rts + +grname dc.b 'graphics.library',0 + even +grbase dc.l 0 +oldview dc.l 0 +dosname dc.b 'dos.library',0 + even +dosbase dc.l 0 + +showwindow ;a0=window + ; + push + ; + ;poke bitmaps... + move.l wi_slice(a0),a1 + move.l (a1),a1 + move.l wi_bmap(a0),d0 + moveq #6,d1 ;7 bitplanes +.loop move d0,6(a1) + swap d0 + move d0,2(a1) + swap d0 + add.l #40,d0 + addq #8,a1 + dbf d1,.loop + ; + ;create DIW + move.l wi_slice(a0),a1 + move.l (a1),a1 + move wi_y(a0),d0 + move d0,d1 + add wi_bh(a0),d1 + lsl #8,d0 + or #$81,d0 + move d0,56+2(a1) + lsl #8,d1 + or #$c1,d1 + move d1,56+6(a1) + ; + ;create link to next! + move.l wi_nslice(a0),a1 + move.l (a1),d0 + move.l wi_cop1(a0),a1 + add.l wi_copmem(a0),a1 + move.l wi_cop2(a0),a2 + add.l wi_copmem(a0),a2 + move d0,-6(a1) + move d0,-6(a2) + swap d0 + move d0,-10(a1) + move d0,-10(a2) + ; + pull + ; +showwindowq ;display coplist + ; + move.l wi_slice(a0),a1 + move.l (a1),a1 + move.l wi_cop(a0),d0 + move d0,68+6(a1) + swap d0 + move d0,68+2(a1) + rts + +finitdisplay push + ; + move.l grbase,a6 + move.l oldview,a1 + jsr -222(a6) ;load view + jsr -270(a6) + jsr -270(a6) + move.l 38(a6),$dff080 + move #0,$dff088 + move #$81a0,$dff096 + ; + pull + rts + +initdisplay push + ; + lea grname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,grbase + ; + move.l d0,a6 + move.l 34(a6),oldview + sub.l a1,a1 + jsr -222(a6) ;loadview + ; + move.l #copinitf-copinit,d0 + moveq #2,d1 + bsr allocmem + move.l d0,coplist + ; + move.l d0,a1 + lea copinit,a0 + lea copinitf,a2 + ; +.loop cmp.l a2,a0 + bcc.s .done + move.l (a0)+,(a1)+ + bra.s .loop +.done ; + add.l #sl1-copinit,d0 + move.l d0,slice1 + add.l #sl2-sl1,d0 + move.l d0,slice2 + add.l #cstop-sl2,d0 + move.l d0,copstop + ; + move.l copstop,d0 + move.l slice1,a0 + move.l slice2,a1 + move d0,68+6(a0) + move d0,68+6(a1) + swap d0 + move d0,68+2(a0) + move d0,68+2(a1) + ; + jsr -270(a6) + jsr -270(a6) + move.l coplist,$dff080 + move #0,$dff088 + ; + pull + rts + +makewindow ; + ;a0=window struct! + ; + push + ; + move.l a0,a2 + ; + move wi_h(a2),d0 + mulu wi_ph(a2),d0 + move d0,wi_bh(a2) + mulu #40*7,d0 + ; + move.l #$10002,d1 + move.l d0,wi_bmapmem(a2) + bsr allocmem + move.l d0,wi_bmap(a2) + ; + ;OK, plot colours on bitmap! + move.l d0,a0 + move wi_x(a2),d0 + move d0,d1 + lsr #3,d0 + not d1 + and #7,d1 + moveq #127,d7 ;colour + move wi_w(a2),d6 ;width + subq #1,d6 + ; +.wloop move wi_pw(a2),d5 + subq #1,d5 + ; +.wloop2 move d7,d4 + moveq #6,d3 + ; +.dloop bclr d1,0(a0,d0) + lsr #1,d4 + bcc.s .dskip + bset d1,0(a0,d0) +.dskip lea 40(a0),a0 + dbf d3,.dloop + ; + lea -40*7(a0),a0 + subq #1,d1 + bpl.s .dskip2 + moveq #7,d1 + addq #1,d0 +.dskip2 dbf d5,.wloop2 + ; + subq #1,d7 + dbf d6,.wloop + ; + move.l wi_bmapmem(a2),d0 + sub.l #40*7,d0 + lsr.l #2,d0 + subq #1,d0 + lea 40*7(a0),a1 +.cbloop move.l (a0)+,(a1)+ + dbf d0,.cbloop + ; + ;how many copins on one line? + move wi_w(a2),d0 + move d0,d1 + subq #1,d0 + lsr #5,d0 ;how many bank changes per line! + addq #4,d0 ;2 waits - 1 eor, 1 init bank select + add d1,d0 ;+colpokes + ; + move d0,d1 + lsl #2,d1 + move d1,wi_copmod(a2) + ; + mulu wi_h(a2),d0 + addq #5,d0 ;2 waits and cop jump at end + ; + lsl.l #2,d0 ;4 bytes/copins + moveq #2,d1 ;cop in chip + move.l d0,wi_copmem(a2) + lsl.l #1,d0 ;2 coplists! + bsr allocmem + move.l d0,wi_cop(a2) + move.l d0,wi_cop1(a2) + ; + move.l d0,a0 + move wi_y(a2),d6 + move wi_h(a2),d7 + subq #1,d7 + move #$111,d3 ;test colour + move #$8000,d4 ;Colour Eor + ; +.hloop ;make one copline... + ; + moveq #127,d0 ;colour reg to poke + move wi_w(a2),d1 + subq #1,d1 + ; +.lloop move d0,d2 + addq #1,d2 + and #31,d2 + bne.s .notnbank + ; + ;new bank.... + move d0,d2 + sub #31,d2 + and #$ffe0,d2 + lsl #8,d2 + or d4,d2 ;eor bank + move #$106,(a0)+ ;bank select + move d2,(a0)+ + ; +.notnbank move d0,d2 + and #31,d2 + add d2,d2 + add #$180,d2 + move d2,(a0)+ ;colour poke + move d3,(a0)+ + add #$111,d3 + subq #1,d0 + dbf d1,.lloop + ; + bsr .makewait + ; + ;ok, now do EOR! + move #$10c,(a0)+ + ;move #0,d4 + move d4,(a0)+ + bchg #15,d4 + ; + dbf d7,.hloop + ; + bsr .makewait + ; + move.l #$00840000,(a0)+ + move.l #$00860000,(a0)+ + move.l #$008a0000,(a0)+ + ; + ;OK, 1 list created...copy to other! + ; + move.l wi_cop1(a2),a0 + move.l a0,a1 + add.l wi_copmem(a2),a1 + move.l a1,wi_cop2(a2) + move.l a1,a3 + ; +.copycop move.l (a0)+,(a3)+ + cmp.l a1,a0 + bcs.s .copycop + ; + pull + rts + +.makewait ; + ;make wait ins. + move.l #$01fe0000,(a0)+ ;no wait - nop + cmp #256,d6 + blt.s .not256 + move.l #$00e1fffe,-4(a0) + sub #256,d6 +.not256 move.b d6,(a0)+ + move.b #1,(a0)+ + move #$fffe,(a0)+ ;wait! + add wi_ph(a2),d6 + rts + +allocmem ; + ;d0=size, d1=requirements + ; + push + move.l 4.w,a6 + ; + addq.l #8,d0 + move.l d0,-(a7) + jsr -198(a6) + move.l d0,a0 + move.l memlist,(a0) + move.l (a7)+,4(a0) + move.l a0,memlist + addq.l #8,a0 + move.l a0,d0 + ; + pull + rts + +freememlist push + move.l 4.w,a6 + ; +.more move.l memlist,d0 + beq.s .done + move.l d0,a1 + move.l (a1),memlist + move.l 4(a1),d0 + jsr -210(a6) + bra.s .more + ; +.done pull + rts + +freemem ; + ;a1=address to free! + ; + push + move.l 4.w,a6 + subq.l #8,a1 + move.l #memlist,d0 + ; +.more move.l d0,a0 + move.l (a0),d0 + beq.s .done ;not found! + cmp.l d0,a1 + bne.s .more + ; + move.l (a1),(a0) + move.l 4(a1),d0 + jsr -210(a6) + ; +.done pull + rts + +initmap push + ; + move.l map_map,a0 + ; + move.l a0,a1 + add.l (a0),a1 + move.l a1,map_grid + ; + move.l a0,a1 + add.l 4(a0),a1 + move.l a1,map_poly + ; + move.l a0,a1 + add.l 8(a0),a1 + move.l a1,map_ppnt + ; + move.l a0,a1 + add.l 12(a0),a1 + move.l a1,map_rgbs + ; + move.l a0,a1 + add.l 16(a0),a1 + move.l a1,map_txts + ; + jsr calcpalettes + jsr loadtxts + ; + pull + rts + +loadtxts move.l map_txts,a5 ;texture names + lea textures,a6 + moveq #47,d7 +.ltl lea .temp(pc),a0 +.ltl2 move.b (a5)+,(a0)+ + bne.s .ltl2 + cmp.l #.temp+1,a0 + beq.s .notext + lea .temp2(pc),a0 + moveq #1,d1 + jsr loadfile +.notext move.l d0,(a6)+ + dbf d7,.ltl + rts + +.temp2 dc.b 'txts/' +.temp ds.b 64 + cnop 0,4 + +mapinc incbin temp_map + +man incbin ggfx/man1.chk +rot1 incbin rot1.chk +rot2 incbin rot2.chk +rot3 incbin rot3.chk +rot4 incbin rot4.chk +rot5 incbin rot5.chk +rot6 incbin rot6.chk +rot7 incbin rot7.chk +rot8 incbin rot8.chk +blob incbin ggfx/blob.chk +blob2 incbin ggfx/blob2.chk + + cnop 0,4 + +objinfo +player1_ dc.l player1 +.ob_rotspeed dc.l $40000 +.ob_movspeed dc.l $a0000 +.ob_shape dc.l man +.ob_logic dc.l playerlogic +.ob_render dc.l drawshape +.ob_die dc.l playerdie +.ob_eyey dc -64 ;eye height +.ob_firey dc -48 ;where bullets come from +.ob_colltype dc 0 +.ob_collwith dc 1 +.ob_cntrl dc 1 ;for player 0,1=joyport +.ob_rndfire dc 0 +.ob_damage dc 0 +.ob_hitpoints dc 5 +.ob_rndturn dc 0 +.ob_think dc 0 +objinfof + +player2_ dc.l player2 +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $a0000 +.ob_shape dc.l man +.ob_logic dc.l playerlogic +.ob_render dc.l drawshape +.ob_die dc.l playerdie +.ob_eyey dc -64 ;eye height +.ob_firey dc -48 ;where bullets come from +.ob_colltype dc 0 +.ob_collwith dc 1 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_rndfire dc 0 ;guess what! +.ob_damage dc 0 +.ob_hitpoints dc 5 +.ob_rndturn dc 0 +.ob_think dc 0 + +monster1_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $60000 +.ob_shape dc.l rot1 +.ob_logic dc.l monsterlogic +.ob_render dc.l drawshape_8 +.ob_die dc.l killobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -48 ;where bullets come from +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_rndfire dc 0 ;guess what! +.ob_damage dc 0 +.ob_hitpoints dc 1 +.ob_rndturn dc $400 +.ob_think dc 0 diff --git a/gloom2 b/gloom2 new file mode 100644 index 0000000000000000000000000000000000000000..09775ecb10e8acc6942bc5d46fcefdcc306661f3 GIT binary patch literal 106872 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 literal 0 HcmV?d00001 diff --git a/gloom2.s b/gloom2.s new file mode 100644 index 0000000..3496969 --- /dev/null +++ b/gloom2.s @@ -0,0 +1,13628 @@ + + ;********* + ;* GLOOM * + ;********* + ; + ;planar, 020+ version. + ; + ;6 bitplanes for ECS, 8 for AGA + ; + ;error codes + ; + ;red - allocmem failed + ;yel - freemem failed + ;orange - unknown script command + ;purp - unknown event command + ;cyn - can't open file in loadfile + ;blu - ran out of remap colours! + +aga_ equ 0 +os_ equ -1 + +testw equ 128 +testh equ 128 + +cd32 equ 0 ;cd32 version? +combatok equ -1 ;include combat game? +ok equ 750+125 ;overkill level! +cy equ 166 + +pl_eyey equ 110 +pl_firey equ 60 +pl_gutsy equ 64 + +debugser equ 0 +debugmem equ 0 + ; +ireload equ 5 ;initial reload val. +maxobjects equ 256 ;max objects in game +maxdoors equ 16 ;max doors opening at once +maxblood equ 128 ;max droplets of bluuurd +maxgore equ 128 ;body parts on ground! +maxrotpolys equ 32 ;max rotating thingys. + ; +focshft equ 7 +grdshft equ 8 +darkshft equ 7 ;smaller=smaller range=faster! +maxz equ 16<>1 + + jmp entrypoint + + rsreset + ; + ;rotpoly details... + ; +rp_next rs.l 1 +rp_prev rs.l 1 + ; +rp_speed rs.w 1 +rp_rot rs.w 1 +rp_flags rs.w 1 ;what to do? + ; +rp_cx rs.w 1 ;only for rot +rp_cz rs.w 1 +rp_first rs.l 1 ;pointer to first! +rp_num rs.w 1 + ; +rp_vx rs.w 0 +rp_lx rs.w 1 +rp_vz rs.w 0 +rp_lz rs.w 1 +rp_ox rs.w 0 +rp_na rs.w 1 +rp_oz rs.w 0 +rp_nb rs.w 1 + ; +rp_more rs.b 8*31 ;=32 max verts! + ; +rp_size rs.b 0 + + rsreset + ; + ;sfx channel info + ; +fx_status rs.w 1 +fx_priority rs.w 1 +fx_sfx rs.l 1 +fx_vol rs.w 1 +fx_offset rs.w 1 +fx_dma rs.w 1 +fx_int rs.w 1 + ; +fx_size rs.b 0 + + rsreset + ; + ;blood! + ; +bl_next rs.l 1 +bl_prev rs.l 1 +bl_x rs.l 1 +bl_y rs.l 1 +bl_z rs.l 1 +bl_xvec rs.l 1 +bl_dest rs.l 0 +bl_yvec rs.l 1 +bl_zvec rs.l 1 +bl_color rs.l 1 ;colour and! + ; +bl_size rs.b 0 + + rsreset + ; + ;a texture + ; +te_pal rs.l 1 + ; +te_size rs.b 0 + + rsreset + ; + ;an opening/closing door! + ; +do_next rs.l 1 +do_prev rs.l 1 +do_poly rs.l 1 ;door polygon +do_lx rs.w 1 +do_lz rs.w 1 +do_rx rs.w 1 +do_rz rs.w 1 +do_frac rs.w 1 +do_fracadd rs.w 1 + ; +do_size rs.b 0 + + rsreset + ; + ;wall list... + ; +wl_next rs.l 1 +wl_lsx rs.w 1 ;leftmost screen X +wl_rsx rs.w 1 ;rightmost screen X +wl_nz rs.w 1 ;near Z! +wl_fz rs.w 1 ;far Z! +wl_lx rs.w 1 +wl_lz rs.w 1 +wl_rx rs.w 1 +wl_rz rs.w 1 +wl_a rs.w 1 +wl_b rs.w 1 +wl_c rs.l 1 +wl_sc rs.w 1 +wl_open rs.w 1 ;0=door shut, $4000=open! +wl_t rs.b 8 ;textures + ; +wl_size rs.b 0 + + rsreset + ; + ;a zone... + ; +zo_done rs.w 1 +zo_lx rs.w 1 +zo_lz rs.w 1 +zo_rx rs.w 1 +zo_rz rs.w 1 + ; +zo_a rs.w 1 +zo_b rs.w 1 +zo_na rs.w 1 +zo_nb rs.w 1 +zo_ln rs.w 1 + ; +zo_t rs.b 8 ;8 textures + ; +zo_sc rs.w 1 ;scale (how many txts on wall) +zo_open rs.w 0 ;for wall polys... +zo_ev rs.w 1 ;for events... + ; +zo_size rs.b 0 ;32! + + rsreset + ; + ;a shape to draw! + ; +sh_next rs.l 1 +sh_prev rs.l 1 +sh_x rs.w 1 +sh_y rs.w 1 +sh_z rs.w 1 +sh_shape rs.l 1 +sh_scale rs.w 0 +sh_strip rs.l 1 +sh_render rs.l 1 ;drawobjnorm or drawobjinvs + ; +sh_size rs.b 0 + + rsreset + ; + ;gore...body parts lying around! + ; +go_next rs.l 1 +go_prev rs.l 1 +go_x rs.w 1 +go_z rs.w 1 +go_shape rs.l 1 + ; +go_size rs.b 0 + + rsreset + ; + ;an object in the game (player/alien etc...) + ; +ob_next rs.l 1 +ob_prev rs.l 1 +ob_x rs.l 1 +ob_y rs.l 1 +ob_z rs.l 1 +ob_rot rs.l 1 + ; + ;start of info load by prog. +ob_info rs.b 0 + ; +ob_rotspeed rs.l 1 +ob_movspeed rs.l 1 +ob_shape rs.l 1 +ob_logic rs.l 1 +ob_render rs.l 1 +ob_hit rs.l 1 ;routine to do when damaged +ob_die rs.l 1 ;routine to do when killed +ob_eyey rs.w 1 ;eye height +ob_firey rs.w 1 ;where bullets come from +ob_gutsy rs.w 1 +ob_mega rs.w 0 +ob_othery rs.w 1 +ob_colltype rs.w 1 +ob_collwith rs.w 1 +ob_cntrl rs.w 1 +ob_damage rs.w 1 +ob_hitpoints rs.w 1 +ob_think rs.w 1 +ob_frame rs.l 1 ;anim frame +ob_framespeed rs.l 1 ;anim frame +ob_base rs.w 1 +ob_range rs.w 1 +ob_weapon rs.w 1 ;weapon meter (0...4) +ob_reload rs.b 1 ;weapon reload timer +ob_reloadcnt rs.b 1 ;counter +ob_hurtpause rs.w 1 +ob_firerate rs.w 0 +ob_punchrate rs.w 1 +ob_bouncecnt rs.w 1 ;how many times my bullets bounce! +ob_firecnt rs.w 0 +ob_something rs.w 1 +ob_scale rs.w 1 ;scale factor for drawing +ob_lastbut rs.w 1 +ob_blood rs.w 1 ;color AND for blood +ob_ypad rs.w 1 + ; +ob_oldlogic rs.l 1 +ob_oldlogic2 rs.l 1 +ob_oldhit rs.l 1 +ob_olddie rs.l 1 +ob_oldrot rs.w 1 +ob_newrot rs.w 1 +ob_yvec rs.l 1 +ob_xvec rs.l 1 +ob_zvec rs.l 1 +ob_radsq rs.l 1 ;radius squared +ob_rad rs.w 1 +ob_delay rs.w 1 +ob_delay2 rs.w 0 +ob_bounce rs.w 1 +ob_hurtwait rs.w 1 + ; +ob_washit rs.l 1 ;flag for un-hit coll detect! +ob_window rs.l 1 ;pointer back to window! +ob_nxvec rs.w 0 ;normalized X vec +ob_lives rs.w 1 +ob_nzvec rs.w 0 ;normalized z vec +ob_infra rs.w 1 +ob_thermo rs.w 1 +ob_invisible rs.w 1 +ob_hyper rs.w 1 +ob_update rs.w 1 ;update stats! +ob_mess rs.l 1 ;message +ob_messlen rs.w 1 +ob_messtimer rs.w 1 ;timer for messages +ob_palette rs.l 1 ;palette for window +ob_paltimer rs.w 1 ;timer before back to normal +ob_pixsize rs.w 1 +ob_pixsizeadd rs.w 1 +ob_telex rs.w 1 +ob_telez rs.w 1 +ob_telerot rs.w 1 +ob_chunks rs.l 1 + ; +ob_size rs.b 0 + + rsreset + ; + ;solid wall draw data + ; +vd_z rs.w 1 ;current Z +vd_pal rs.w 1 ;palette# (0...15) +vd_y rs.w 1 +vd_h rs.w 1 +vd_data rs.l 1 +vd_ystep rs.l 1 + ; +vd_size rs.b 0 + + rsreset + ; + ;palette file... + ; +pa_numcols rs.w 1 ;how many colours +pa_cols rs.w 256 ;the colours! + + rsreset + ; + ;anim file... + ; +an_rotshft rs.w 1 +an_frames rs.w 1 +an_maxw rs.w 1 +an_maxh rs.w 1 +an_pal rs.l 1 + ; +an_size rs.b 0 + + rsreset + ; + ;window + ; +wi_slice rs.l 1 ;slice window appears in! +wi_nslice rs.l 1 ;next slice to disp. +wi_x rs 1 +wi_y rs 1 +wi_w rs 1 ;how many chixels across +wi_h rs 1 ;how many down +wi_pw rs 1 ;width of 1 chixel +wi_ph rs 1 ;hite of 1 chixel + ; +wi_bw rs 1 ;bitmap width +wi_bh rs 1 ;bitmap height + ; +wi_bmapmem rs.l 1 +wi_copmem rs.l 1 +wi_bmap rs.l 1 +wi_cop rs.l 1 +wi_cop1 rs.l 1 +wi_cop2 rs.l 1 +wi_chunkymodw rs.w 1 + ; +wi_strip rs.l 1 +wi_iff rs.l 1 ;show iff instead! +wi_pal rs.l 1 ;palette for IFF! + ; +wi_size rs.b 0 + +key macro + btst #\1&7,\1>>3(a0) + endm + +keya1 macro + btst #\1&7,\1>>3(a1) + endm + +qkey macro + move.l rawtable(pc),a0 + key \1 + endm + +freemem macro + ; + ifne debugmem + lea .fmem\@,a0 + jsr freemem_ + bra .fmemskip\@ +.fmem\@ dc.b '\1',0 + even +.fmemskip\@ ; + elseif + jsr freemem_ + endc + ; + endm + +allocmem macro + ; + ifne debugmem + ; + lea .amem\@,a0 + jsr allocmem_ + bra .amemskip\@ +.amem\@ dc.b '\1',10,0 + even +.amemskip\@ ; + elseif + ; + jsr allocmem_ + ; + endc + ; + endm + +allocmem2 macro + ; + ifne debugmem + ; + lea .amem\@,a0 + jsr allocmem2_ + bra .amemskip\@ +.amem\@ dc.b '\1',10,0 + even +.amemskip\@ ; + elseif + ; + jsr allocmem2_ + ; + endc + ; + endm + +alloclist macro ;alloclist listname,maxitems,itemsize + ; + move.l \2,d0 + move.l \3,d1 + lea \1(pc),a2 + jsr k_alloclist + bra.s alskip\@ + ; +\1 dc.l 0 ;0 +\1_last dc.l 0 ;4 + dc.l 0 ;8 +\1_free dc.l 0 ;12 +alskip\@ ; + endm + +k_alloclist ;a2=address of 'first' pointer + ;d0=max items, d1=item size + ; + move.l a2,8(a2) ;clear out used list + lea 4(a2),a0 + clr.l (a0) + move.l a0,(a2) + movem.l d0-d1,-(a7) + mulu d1,d0 + move.l #$10001,d1 + allocmem alloclist + move.l d0,a0 + lea 12(a2),a2 + movem.l (a7)+,d0-d1 + subq #1,d0 +.loop move.l a0,(a2) + move.l a0,a2 + add d1,a0 + dbf d0,.loop + rts + +addnext macro + ; + ;addnext 'listname' + ;add after a5 + ;return eq if none available else a0 + ; + move.l \1_free,d0 + beq.s .anskip\@ + move.l d0,a0 + move.l (a0),\1_free + move.l (a5),a1 + move.l a1,(a0) + move.l a0,4(a1) + move.l a0,(a5) + move.l a5,4(a0) +.anskip\@ ; + endm + +addfirst macro + ; + ;addfirst 'listname' + ;return eq if none available else a0 + ; + move.l \1_free,d0 + beq.s .afskip\@ + move.l d0,a0 + move.l (a0),\1_free + move.l \1,a1 ;current first + move.l a1,(a0) + move.l a0,4(a1) + move.l a0,\1 + move.l #\1,4(a0) +.afskip\@ ; + endm + +addlast macro + ; + ;addlast 'listname' + ;return eq in none available else a0 + ; + move.l \1_free,d0 + beq.s .alskip\@ + move.l d0,a0 + move.l (a0),\1_free + ; + move.l \1_last+4,a1 ;current last + move.l a0,(a1) + move.l a1,4(a0) + move.l a0,\1_last+4 + move.l #\1_last,(a0) +.alskip\@ ; + endm + +killitem macro + ; + ;killitem listname + ;a0=item to kill, return a0=previous item. + ; + move.l (a0),a1 ;next of me! + move.l 4(a0),4(a1) + move.l 4(a0),a1 ;prev of me + move.l (a0),(a1) + move.l \1_free,(a0) + move.l a0,\1_free + move.l a1,a0 + endm + +clearlist macro + ; + ;clearlist listname + ; +.clloop\@ move.l \1,a0 + tst.l (a0) + beq .cldone\@ + killitem \1 + bra .clloop\@ +.cldone\@ ; + endm + +zerolist macro listname,size of item + ; + ;fill all list items with 0! + ; + clearlist \1 +.zlloop\@ addlast \1 + beq .zlskip\@ + lea 8(a0),a1 + moveq #0,d0 + move #(\2-8)/2-1,d1 +.zlloop2\@ move d0,(a1)+ + dbf d1,.zlloop2\@ + bra .zlloop\@ +.zlskip\@ clearlist \1 + ; + endm + +bwait macro + ; +.bwait\@ btst #6,$dff002 + beq.s .bwait2\@ + bra.s .bwait\@ +.bwait2\@ ; + endm + +printlong macro + move.l \1,-(a7) + jsr printlong_ + endm + +check macro + list +check set *-\1 + nolist + endm + +push macro + movem.l d2-d7/a2-a6,-(a7) + endm + +pull macro + movem.l (a7)+,d2-d7/a2-a6 + endm + +col macro + move #0,$dff106 + move \1,$dff180 + endm + +warn macro + move d0,-(a7) + move #-1,d0 +.wloop\@ col \1 + dbf d0,.wloop\@ + move (a7)+,d0 + endm + +tempfile ds.b 64 + +wbmess dc.l 0 ;workbench message! + +entrypoint ; + clr.l map_test + move.l 4.w,a6 + move.l 276(a6),a5 ;task + tst.l $ac(a5) ;cli? + bne.s cli + ; + lea $5c(a5),a0 + jsr -384(a6) ;waitport + lea $5c(a5),a0 + jsr -372(a6) ;get message + move.l d0,wbmess + bra wb +cli ; + cmp.b #'@',(a0)+ + bne.s wb + lea tempfile,a1 + move.l a1,map_test +.loop move.b (a0)+,(a1) + beq.s wb + cmp.b #10,(a1)+ + bne.s .loop + clr.b -(a1) +wb ; + lea dosname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,dosbase + ; + move.l d0,a6 + jsr -60(a6) + move.l d0,outhand + ; + move.l wbmess(pc),d0 + beq.s .nocd + move.l d0,a0 + move.l $24(a0),a0 + move.l (a0),d1 + move.l dosbase,a6 + jsr -126(a6) +.nocd ; + move.l 4.w,a6 + moveq #1,d1 + jsr -216(a6) + cmp.l #$1a6548-$c000,d0 ;enough memory to run gloom? + bcs nomem + ; + jsr initmain + ; + bsr bigfont + ; +.intro move.l medat(pc),a1 + move.l titlemed(pc),a0 + jsr 8(a1) ;start title music! + ; +.intro2 jsr dointro ;returns gametype + ; + cmp #3,gametype + bcs.s .play + move.l medat(pc),a1 + jsr 12(a1) + bra.s exittoos +.play ; + bsr initnewgame + tst gametype + bmi .intro2 + ; + ;bsr smallfont + tst twowins + beq.s .n2 + bsr swaphflags +.n2 jsr execscript_med +.wmf tst fadevol + bne.s .wmf + tst twowins + beq.s .n22 + bsr swaphflags +.n22 bsr bigfont + bra .intro + ; +exittoos jsr freeobjlist2 + jsr permit + jsr finitdisplay + jsr finitvbint + jsr finitsfx + jsr finitser + jsr freememlist + ifeq cd32 + jsr undir + endc + ; +nomem move.l wbmess(pc),d0 + beq.s .bye + ; + move.l 4.w,a6 + move.l d0,a1 + jsr -378(a6) + clr.l wbmess + ; +.bye rts + +; ************* FAST SUBS ******************** + +fastsubs + +swaphflags movem.l floorflag(pc),d0-d1 + move.l d1,floorflag + move.l d0,floorflag2 + rts + +smallfont move #6,fontw + move #8,fonth + move.l smallfont_,font + rts + +bigfont move #8,fontw + move #10,fonth + move.l bigfont_,font + rts + +encodejoy ;a0=cntrl block to encode... + ;return d0 encoded + ; + ;bit: + ;0 = joyx -1 + ;1 = joyx 1 + ;2 = joyy -1 + ;3 = joyy 1 + ;4 = joyb true + ;5 = joys true + ; + moveq #0,d0 + ; + tst (a0) + beq.s .skipx + bpl.s .x1 + bset #0,d0 + bra.s .skipx +.x1 bset #1,d0 +.skipx tst 2(a0) + beq.s .skipy + bpl.s .y1 + bset #2,d0 + bra.s .skipy +.y1 bset #3,d0 +.skipy tst 4(a0) + beq.s .skipb + bset #4,d0 +.skipb tst 6(a0) + beq.s .skipf + bset #5,d0 +.skipf ; + rts + +decodejoy ; + ;d0.b = encoded byte... + ;a0 = block to fill + ; + ;0 = joyx -1 + ;1 = joyx 1 + ;2 = joyy -1 + ;3 = joyy 1 + ;4 = joyb true + ;5 = joys true + ; + clr (a0) + move d0,d1 + and #3,d1 + beq.s .skipx + cmp #1,d1 + bne.s .x1 + move #-1,(a0) + bra.s .skipx +.x1 move #1,(a0) +.skipx clr 2(a0) + move d0,d1 + and #12,d1 + beq.s .skipy + cmp #4,d1 + bne.s .y1 + move #-1,2(a0) + bra.s .skipy +.y1 move #1,2(a0) +.skipy btst #4,d0 + sne d1 + ext d1 + move d1,4(a0) + btst #5,d0 + sne d1 + ext d1 + move d1,6(a0) + rts + +sfxs ; +sfx0 ds.b fx_size +sfx1 ds.b fx_size +sfx2 ds.b fx_size +sfx3 ds.b fx_size + +sfxintserver0 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx0 + dc.l sfxint + +sfxintserver1 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx1 + dc.l sfxint + +sfxintserver2 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx2 + dc.l sfxint + +sfxintserver3 dc.l 0,0 + dc.b 2,0 + dc.l 0 + dc.l sfx3 + dc.l sfxint + +initsfx push + move.l 4.w,a6 + ; + moveq #7,d0 + lea sfxintserver0,a1 + jsr -162(a6) ;setintvector + ; + moveq #8,d0 + lea sfxintserver1,a1 + jsr -162(a6) + ; + moveq #9,d0 + lea sfxintserver2,a1 + jsr -162(a6) + ; + moveq #10,d0 + lea sfxintserver3,a1 + jsr -162(a6) + ; + lea sfxs(pc),a1 + move #$80,d0 + moveq #1,d1 + moveq #0,d2 + moveq #3,d3 +.loop bsr .init + lea fx_size(a1),a1 + dbf d3,.loop + ; + pull + rts + ; +.init clr fx_status(a1) + move d0,fx_int(a1) + move d1,fx_dma(a1) + move d2,fx_offset(a1) + add d0,d0 + add d1,d1 + add #16,d2 + rts + +finitsfx push + move.l 4.w,a6 + ; + moveq #7,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #8,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #9,d0 + sub.l a1,a1 + jsr -162(a6) + ; + move.l 4.w,a6 + moveq #10,d0 + sub.l a1,a1 + jsr -162(a6) + ; + pull + rts + +waitquiet bsr vwait + lea sfxs(pc),a0 + moveq #3,d0 +.loop tst fx_status(a0) + bne.s waitquiet + lea fx_size(a0),a0 + dbf d0,.loop + rts + +playsfx ;sfx file in a0, vol in d0, priority in d1 + ; + ;move #$4000,$dff09a ;snd/vb ints off + ; + lea sfxs(pc),a1 + moveq #3,d2 +.loop tst fx_status(a1) + beq.s makesfx + lea fx_size(a1),a1 + dbf d2,.loop + ; + ;OK, none free...check priorities + ; + lea sfxs(pc),a1 + moveq #3,d2 +.loop2 cmp fx_priority(a1),d1 + bgt.s queuesfx + lea fx_size(a1),a1 + dbf d2,.loop2 + ; + ;no-can-do! + ; + ;move #$c000,$dff09a + rts + ; +queuesfx ;OK, turn off other and play US! + ; + move #1,fx_status(a1) + move d0,fx_vol(a1) + move d1,fx_priority(a1) + move.l a0,fx_sfx(a1) ;play me next! + ; + bsr sfxoff + ; + ;move #$c000,$dff09a + rts + +sfxoff lea $dff0a0,a2 + add fx_offset(a1),a2 + move.l chipzero(pc),(a2) + move #1,4(a2) ;len + move #0,8(a2) ;vol + move fx_int(a1),$dff09a + move fx_dma(a1),$dff096 + rts + +makesfx ;OK, play this SFX NOW! + ; + move d1,fx_priority(a1) + move d0,fx_vol(a1) + bsr playsfxnow + ;move #$c000,$dff09a + rts + +playsfxnow move #-2,fx_status(a1) + ; + lea $dff0a0,a2 + add fx_offset(a1),a2 + move (a0)+,6(a2) ;period + move (a0)+,4(a2) ;len + move fx_vol(a1),8(a2) ;vol + move.l a0,(a2) ;data + ; + move fx_dma(a1),d0 ;dma bits + or #$8000,d0 + move fx_int(a1),d1 ;int bits + move d1,d2 + or #$8000,d1 + ; + move d0,$dff096 ;dma on! + move d1,$dff09a ;int en + move d2,$dff09c ;intreq clr + ; + rts + +sfxint ;interupt for sfx! + ; + tst fx_status(a1) + bge.s .skip + addq #1,fx_status(a1) + blt.s .skip + ; + move.l a2,-(a7) + bsr sfxoff + move.l (a7)+,a2 + ; +.skip move fx_int(a1),$dff09c + moveq #0,d0 + rts + +dogamemenu ; + move #$20,$dff09a + ; + st paused + move framecnt,-(a7) + move linked,-(a7) + clr linked + ; + move #$8020,$dff09a + ; + lea gamemenu,a4 + jsr initmenu + ; +.loop jsr selmenu + beq .done + ; + subq #1,d0 + bne .notpsize + bra .loop + ; +.notpsize subq #1,d0 + bne .notwsize + bsr newwsize + bra .loop + ; +.notwsize subq #1,d0 + bne .notlwin + bsr largewin + bra .loop + ; +.notlwin subq #1,d0 + bne .notfloor + ; + addq #1,floorflag + cmp #2,floorflag + bne.s .fskip + move #-1,floorflag +.fskip bsr refresh + bra .loop + ; +.notfloor subq #1,d0 + bne .notroof + ; + addq #1,roofflag + cmp #2,roofflag + bne.s .rskip + move #-1,roofflag +.rskip bsr refresh + bra .loop +.notroof ; + move #1,finished + ; +.done jsr dispoff + jsr finitmenu + cmp #1,finished + bne.s .notfin + bsr clspic + bsr clspic + bra.s .findone +.notfin bsr predrawall +.findone jsr dispon + ; + move #$20,$dff09a + ; + move (a7)+,linked + beq.s .nolink + move finished(pc),d0 + beq.s .nolink + bset #7,d0 + bsr serput +.nolink move (a7)+,framecnt + clr paused + ; + move #$8020,$dff09a + ; + rts + +largewin move #320,width + move #224,hite + bra.s sizedone + +newwsize cmp #224,hite + bcs.s .inc + cmp #320,width + bcs.s .inc2 + move #64,width + move #64,hite + bra.s sizedone + ; +.inc add #32,hite +.inc2 add #32,width + ; +sizedone move width(pc),d0 + move d0,chunkymodw + lsr #1,d0 + move d0,maxx + neg d0 + move d0,minx + move hite(pc),d0 + lsr #1,d0 + move d0,maxy + neg d0 + move d0,miny + bra refresh + +calcoffset move #320,d0 + sub width(pc),d0 + lsr #4,d0 + ext.l d0 + ; + move #224,d1 + sub hite(pc),d1 + lsr #1,d1 + mulu linemodw(pc),d1 + add.l d1,d0 + move.l d0,offset + ; + rts + +refresh jsr dispoff + jsr finitmenu + jsr predrawall + lea gamemenu,a4 + jsr initmenu2 + jsr dispon + rts + +drawchunky ;draw a chunky shape on a 320 wide chunkymap + ; + ;d0=x,d1=y,d2=shape#,a0=shapetable + ; + move.l panel(pc),a0 + add #224,d1 + ; + movem.l d2-d5/a2-a4,-(a7) + ; + move.l chunky(pc),a1 + mulu #320,d1 + add.l d1,a1 ;left + lea coloffs,a2 + lea 0(a2,d0*4),a2 ;coloff + ; + add.l 12(a0,d2*4),a0 ;start of shape! + addq #4,a0 ;skip handles + movem (a0)+,d2-d3 ;width, height + subq #1,d2 + subq #1,d3 + move.l #320,d5 ;chunky mod + moveq #0,d0 + move.l palettes(pc),a4 +.hloop move d3,d4 ;start of column + move.l a1,a3 + add.l (a2)+,a3 +.vloop move.b (a0)+,d0 + beq.s .skip + move.b 0(a4,d0),(a3) +.skip add.l d5,a3 + dbf d4,.vloop + dbf d2,.hloop + ; + movem.l (a7)+,d2-d5/a2-a4 + rts + +predrawall ;draw up everything.... + ; + ;status bar too... + ; + bsr clspic + bsr clspic + bsr calcoffset + moveq #0,d0 + moveq #0,d1 + moveq #47,d2 + bsr drawchunky + move.l player1(pc),a0 + st ob_update(a0) + tst gametype + beq.s .skip + move.l player2(pc),a0 + st ob_update(a0) +.skip bsr drawall_ + bra drawall_ + +drawall ; +.wait tst doneflag + bne.s .waitskip + bsr vwait + bra.s .wait +.waitskip clr doneflag + ; +drawall_ move.l player1(pc),player_ + move.l memory(pc),memat + ; + bsr calcscene + bsr drawscene + bsr blitscene + ; + move twowins(pc),d0 + beq.s .show + ; + move.l player2(pc),player_ + move.l memory(pc),memat + bsr calcscene + bsr drawscene + bsr blitscene +.show ; +.wait2 tst showflag + bne.s .waitskip2 + bsr vwait + bra.s .wait2 +.waitskip2 bsr doc2p + jsr db + clr showflag + rts + +doc2p ; + move.l chunky(pc),a0 ;src + move.l drawbitmap(pc),a1 ;dest + add.l offset(pc),a1 + move width(pc),d0 + move hite(pc),d1 + move.l bpmod(pc),d2 ;bpmod + move.l linemod(pc),d3 ;linemod + move.l c2p(pc),a2 + jsr (a2) + move panelcnt(pc),d0 + beq.s .rts + ; + subq #1,panelcnt + move.l drawbitmap(pc),a1 + move #224,d1 + mulu linemodw(pc),d1 + add.l d1,a1 + ; + move.l chunky(pc),a0 + add.l #320*224,a0 + ; + move #320,d0 + moveq #13,d1 + move.l bpmod(pc),d2 + move.l linemod(pc),d3 + move.l c2p(pc),a2 + jsr (a2) + ; +.rts rts + +resetplayer st ob_update(a5) + clr ob_mega(a5) + clr ob_thermo(a5) + clr ob_infra(a5) + clr ob_invisible(a5) + clr ob_pixsize(a5) + clr ob_pixsizeadd(a5) + clr ob_bouncecnt(a5) + move #-1,ob_messtimer(a5) + move.l #palettes,ob_palette(a5) + rts + +message ;print up a message...player in a5 + ; + move.l (a7),a0 ;return address=message! + move.l a0,ob_mess(a5) + ; + moveq #-1,d0 +.loop addq #1,d0 + tst.b (a0)+ + bne.s .loop + ; + move d0,ob_messlen(a5) + move #-127,ob_messtimer(a5) + ; + move.l a0,d0 + addq.l #1,d0 + and #$fffe,d0 + move.l d0,(a7) + rts + +pdelay dc 0 ;non zero=wait between prints + +printmess ;a5=object + ; + move.l ob_window(a5),a6 + move.l ob_mess(a5),a4 + move ob_messlen(a5),d0 + move wi_bh(a6),d6 + lsr #2,d6 ;Y + ; +printmess2 ;a4=message, d0=length of message, d6=Y + ; + move fontw(pc),d2 + lsr #1,d2 + mulu d2,d0 + move #160,d7 + sub d0,d7 ;X + ; + jsr ownblitter + ; +.loop2 move.b (a4)+,d2 + beq .done + cmp.b #' ',d2 + beq.s .spc + cmp.b #'0',d2 + bcs.s .nnum + cmp.b #'9',d2 + bhi.s .nnum + sub.b #'0',d2 + ext d2 + bra.s .here +.nnum cmp.b #"'",d2 + bne.s .notap + moveq #57,d2 + bra.s .here +.notap cmp.b #'!',d2 + bne.s .notex + moveq #36,d2 + bra.s .here +.notex cmp.b #'.',d2 + bne.s .notfs + moveq #37,d2 + bra.s .here +.notfs cmp.b #':',d2 + bne.s .notcol + moveq #38,d2 + bra.s .here +.notcol cmp.b #127,d2 + bne.s .notcurs + moveq #39,d2 + bra.s .here +.notcurs and #31,d2 + add #9,d2 +.here move.l font(pc),a0 + move.l showbitmap(pc),a1 + move d7,d0 + move d6,d1 + bsr blit + ; + move pdelay(pc),d2 + subq #1,d2 + bmi.s .spc + ; +.pdloop bsr vwait + bsr checkany + beq.s .none + move #-1,pdelay + moveq #0,d2 +.none dbf d2,.pdloop + ; +.spc add fontw(pc),d7 + bra .loop2 +.done ; + jmp disownblitter + +printhexnum ;d0=x,d1=y,d2=hex long,a5=window + ; + move.l ob_window(a5),a0 + move.l wi_bmap(a0),a1 + ; + movem.l d0-d2/a0-a1,-(a7) + subq #2,d0 + subq #1,d1 + moveq #55,d2 + move.l font(pc),a0 + bsr blit + movem.l (a7)+,d0-d2/a0-a1 + ; + move #8,-(a7) +.loop rol.l #4,d2 + movem.l d0-d2/a0-a1,-(a7) + and #15,d2 + move.l font(pc),a0 + bsr blit + movem.l (a7)+,d0-d2/a0-a1 + addq #6,d0 + subq #1,(a7) + bne.s .loop + addq #2,a7 + addq #8,d1 + rts + +showstats ; + ;a5=player + ; + ;clear middle + moveq #0,d0 + moveq #2,d1 + moveq #46,d2 + bsr drawchunky + ; + ;hitpoints + move ob_hitpoints(a5),d7 + ble.s .nohp + move #267,d6 + moveq #45,d2 + subq #1,d7 +.hploop move d6,d0 + moveq #3,d1 + bsr drawchunky + addq #2,d6 + dbf d7,.hploop +.nohp ; + ;lives + move ob_lives(a5),d7 + ble.s .nolv + moveq #6,d6 + sub d7,d6 + lsl #3,d6 + add #218,d6 + moveq #44,d2 + subq #1,d7 +.lvloop move d6,d0 + moveq #2,d1 + bsr drawchunky + addq #8,d6 + dbf d7,.lvloop +.nolv ; + ;weapon + moveq #5,d7 + sub.b ob_reload(a5),d7 + blt.s .nowp + move ob_weapon(a5),d2 ;0...4 + add #39,d2 + moveq #55,d6 + moveq #10,d3 +.wploop move d6,d0 + moveq #2,d1 + bsr drawchunky + add d3,d6 + dbf d7,.wploop +.nowp ; + ;mega + move ob_mega(a5),d7 + lsr #5,d7 + and #$fffe,d7 + ble.s .nomg + cmp #50,d7 + ble.s .mgok + moveq #50,d7 +.mgok moveq #53,d6 + sub d7,d6 + moveq #45,d2 + lsr #1,d7 + subq #1,d7 +.mgloop move d6,d0 + moveq #3,d1 + bsr drawchunky + addq #2,d6 + dbf d7,.mgloop +.nomg ; + rts + +blit ;a0=shapetable to blit, a1=bitmap, d0=X, d1=Y, d2=char + ; + add.l 4(a0,d2*4),a0 + ; + mulu linemodw(pc),d1 + add.l d1,a1 + move d0,d2 + asr #3,d2 + add d2,a1 ;dest! + move.l a0,a2 + add.l (a0),a2 + lea 10(a0),a3 + addq #4,a0 + and #15,d0 + ror #4,d0 + ; + btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l a3,$dff04c ;image + move d0,$dff042 + or blitmode(pc),d0 + move d0,$dff040 + move d0,bltcon0 + move.l #$ffff0000,$dff044 + moveq #-2,d0 + move d0,$dff064 + move d0,$dff062 + move linemodw(pc),d0 + subq #2,d0 + sub (a0)+,d0 + move d0,$dff060 + move d0,$dff066 + move (a0)+,d0 + move (a0),d1 + subq #1,d1 + move.l bpmod(pc),d2 + ; +.bloop btst #6,$dff002 + btst #6,$dff002 + bne.s .bloop + ; + move.l a2,$dff050 ;cookie + move.l a1,$dff048 ;dest + move.l a1,$dff054 + move d0,$dff058 + add.l d2,a1 + ; + dbf d1,.bloop + ; + move bitplanes(pc),d1 + sub (a0),d1 + ble.s .rts + subq #1,d1 + ;clear excess planes + and #$fb0f,bltcon0 + ; + btst #6,$dff002 +.bwait2 btst #6,$dff002 + bne.s .bwait2 + move bltcon0(pc),$dff040 + ; +.bloop2 btst #6,$dff002 + btst #6,$dff002 + bne.s .bloop2 + ; + move.l a2,$dff050 ;cookie + move.l a1,$dff048 ;dest + move.l a1,$dff054 + move d0,$dff058 + add.l d2,a1 + ; + dbf d1,.bloop2 + ; +.rts rts + +bltcon0 dc 0 +blitmode dc $fca + +pixsize dc 0 ;pixel size...at least 2! + +pixelate rts + +flatcam dc.l 0 +flatyadd dc 0 +flatyadd2 dc 0 + +flat ; + ;do flat above/below panel! + ; + ;d0=Y pos of flat + ;d1=Screen Y add + ;d7=first screen Y (miny or maxy-1) + ; + ;a0=panel to draw on! + ; + ext.l d0 + lsl.l #focshft,d0 + move.l d0,flatcam + ; + move d1,flatyadd + muls chunkymodw(pc),d1 + move d1,flatyadd2 + ; + move d7,d0 + add midy(pc),d0 + mulu chunkymodw(pc),d0 + add.l chunky(pc),d0 + move.l d0,a2 + lea coloffs,a1 +.vloop ; + ;find Z on this scanline... + ; + tst d7 + beq .rts + move.l flatcam(pc),d6 + divs d7,d6 ;d6.w = Z + cmp #maxz,d6 + bcc .rts + ; + move.l darktable(pc),a5 + move 0(a5,d6*2),d5 + move.l palette(pc),a5 + move.l 0(a5,d5*4),a5 + ; + ;Find leftmost X... + ; + move minx(pc),d5 + muls d6,d5 + asr.l #focshft,d5 + ; + move maxx(pc),d4 + muls d6,d4 + asr.l #focshft,d4 + ; + ;rotate X1,Z around camera... + ; + move d5,d0 + move d6,d1 + ; + move d0,d2 + move d1,d3 + ; + muls icm1(pc),d0 + add.l d0,d0 + muls icm2(pc),d3 + add.l d3,d3 + add.l d3,d0 + ; + muls icm3(pc),d2 + add.l d2,d2 + muls icm4(pc),d1 + add.l d1,d1 + add.l d2,d1 + ; + ;d0,d1.q = rotated x1,z + ; + ;rotate X2,Z around camera... + ; + move d4,d2 + move d6,d3 + ; + muls icm1(pc),d4 + add.l d4,d4 + muls icm2(pc),d3 + add.l d3,d3 + add.l d3,d4 + ; + muls icm3(pc),d2 + add.l d2,d2 + muls icm4(pc),d6 + add.l d6,d6 + add.l d2,d6 + ; + ;d4,d6.q = rotated x2,z + ; + move width(pc),d5 + ext.l d5 + sub.l d0,d4 ;Xadd + divs.l d5,d4 + sub.l d1,d6 ;Zadd + divs.l d5,d6 + ; + ;d0,d1.q=x,z + ;d4,d6.q=xadd,zadd + ; + swap d0 + add camx(pc),d0 + swap d1 + add camz(pc),d1 + swap d4 + swap d6 + ; + move.l d7,-(a7) + moveq #127,d7 + moveq #0,d2 + moveq #0,d3 + move.l a1,a3 + ; + move width(pc),d5 + subq #1,d5 + ; +.hloop ;get next column + ; + move.l (a3)+,a4 ;coloff + tst.b 0(a2,a4.l) + bne.s .skip + ; + and d7,d0 + and d7,d1 + move d0,d2 + lsl #7,d2 + add d2,d1 + add.l d4,d0 + move.b 0(a0,d1),d3 + addx d2,d0 + add.l d6,d1 + move.b 0(a5,d3),0(a2,a4.l) + addx d2,d1 + dbf d5,.hloop + bra.s .hhh + ; +.skip add.l d4,d0 + addx d2,d0 + add.l d6,d1 + addx d2,d1 + dbf d5,.hloop + ; +.hhh move.l (a7)+,d7 + add flatyadd(pc),d7 + add flatyadd2(pc),a2 + bra .vloop + ; +.rts rts + +doanims move.l map_anim(pc),a0 + lea textures,a1 + ; +.loop move (a0)+,d0 ;how many frames + beq.s .done + movem (a0)+,d1-d2 ;first, delay + subq #1,(a0)+ + bgt.s .loop + move d2,-2(a0) + lea 0(a1,d1*4),a2 + ; + ;do the anim! + ; + subq #2,d0 + move.l (a2),d2 +.loop2 move.l 4(a2),(a2)+ + dbf d0,.loop2 + move.l d2,(a2) + bra.s .loop + ; +.done rts + +dorots ; + move.l camrots2(pc),a6 + lea rotpolys(pc),a5 ;header! + ; +rotloop move.l (a5),a5 + tst.l (a5) + beq .done + move rp_speed(a5),d0 + beq.s rotloop + ; + add d0,rp_rot(a5) + move rp_rot(a5),d0 + ; + move.l rp_first(a5),a2 ;first + move rp_num(a5),d5 + subq #1,d5 + move d5,d4 + lsl #5,d4 + lea 0(a2,d4),a1 ;previous + lea rp_lx(a5),a3 + ; + btst #0,rp_flags+1(a5) + bne.s morph + ; +.rot movem rp_cx(a5),d6-d7 ;centre x,z + and #1023,d0 + lea 0(a6,d0*8),a4 ;rotation matrix. + ; +.loop bsr rotter + add d6,d0 + add d7,d1 + movem d0-d1,zo_lx(a2) + movem d0-d1,zo_rx(a1) + bsr rotter + movem d0-d1,zo_na(a2) + exg d0,d1 + neg d0 + movem d0-d1,zo_a(a2) + move.l a2,a1 + lea 32(a2),a2 + dbf d5,.loop + ; + bra rotloop + ; +.done rts + ; +morph tst d0 + bgt.s .dp + moveq #0,d0 +.neg neg rp_speed(a5) + bra.s .skip2 +.dp cmp #$4000,d0 + blt.s .skip + move #$4000,d0 + btst #1,rp_flags+1(a5) + bne.s .neg + clr rp_speed(a5) +.skip2 move d0,rp_rot(a5) +.skip ; + move d0,d4 + movem.l a2/d5,-(a7) ;for calculating norms! + ; +.loop movem (a3)+,d0-d3 + muls d4,d0 + lsl.l #2,d0 + swap d0 + add d2,d0 + muls d4,d1 + lsl.l #2,d1 + swap d1 + add d3,d1 + movem d0-d1,zo_lx(a2) + movem d0-d1,zo_rx(a1) + move.l a2,a1 + lea 32(a2),a2 + dbf d5,.loop + ; + movem.l (a7)+,a2/d5 + ; +.loop2 move zo_rx(a2),d0 + sub zo_lx(a2),d0 + move zo_rz(a2),d1 + sub zo_lz(a2),d1 + bsr calcnormvec + movem d0-d1,zo_na(a2) + exg d0,d1 + neg d0 + movem d0-d1,zo_a(a2) + lea 32(a2),a2 + dbf d5,.loop2 + ; + bra rotloop + +calcnormvec ;d0,d1 = vector...normalize! + ; + ;OK, find vector length! + ; + move d0,d2 + muls d2,d2 + move d1,d3 + muls d3,d3 + add.l d3,d2 + ; + ;OK, sqr of d2.l! + ; + move.l #$10000,d3 + ; +.fitit cmp.l #16384,d2 ;fits? + bcs.s .ok + asr.l #1,d2 + mulu.l #92681,d4:d3 ;mult by sqr(2) + move d4,d3 + swap d3 + bra.s .fitit + ; +.ok ;OK to look up, but multiply the result.w by d3.q + ; + move.l sqr(pc),a0 + and #$fffe,d2 + movem 0(a0,d2),d2 ;sqr.l! + mulu.l d3,d2 + swap d2 ;length.w + ; + ;length should be >= both abs(xvec) AND abs(zvec) + ; + move d0,d3 + bpl.s .xp + neg d3 +.xp move d1,d4 + bpl.s .zp + neg d4 +.zp ; + cmp d4,d3 + bcc.s .bg + exg d3,d4 +.bg ; + cmp d3,d2 + bcc.s .lo + move d3,d2 +.lo ; + ext.l d2 + ; + swap d0 + clr d0 + divs.l d2,d0 + muls.l #32766,d0 + swap d0 + ; + swap d1 + clr d1 + divs.l d2,d1 + muls.l #32766,d1 + swap d1 + rts + +rotter movem (a3)+,d0-d1 ;this x,z + move d0,d2 + move d1,d3 + ; + muls (a4),d0 + muls 2(a4),d3 + add.l d3,d0 + add.l d0,d0 + swap d0 ;new x! + ; + muls 4(a4),d2 + muls 6(a4),d1 + add.l d2,d1 + add.l d1,d1 + swap d1 + ; + rts + +dodoors lea doors(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + move.l do_poly(a5),a0 + move do_fracadd(a5),d0 + add d0,do_frac(a5) + move do_frac(a5),d0 + move d0,d1 + add d1,d1 + move d1,zo_open(a0) ;copy frac + ; + move do_rx(a5),d1 + sub do_lx(a5),d1 ;width + move d1,d2 + muls d0,d2 + lsl.l #2,d2 + swap d2 + move do_lx(a5),d3 + sub d2,d3 + move d3,zo_lx(a0) + add d1,d3 + move d3,zo_rx(a0) + ; + move do_rz(a5),d1 + sub do_lz(a5),d1 + move d1,d2 + muls d0,d2 + lsl.l #2,d2 + swap d2 + move do_lz(a5),d3 + sub d2,d3 + move d3,zo_lz(a0) + add d1,d3 + move d3,zo_rz(a0) + ; + tst d0 + beq.s .kill + cmp #$4000,d0 + bne.s .loop + ; +.kill move.l a5,a0 + killitem doors + move.l a0,a5 + bra .loop + ; +.done rts + +doorsfxflag dc 0 + +execevent ;d0=event number to execute...1,2... + ; + sf doorsfxflag + move.l map_map(pc),a6 + move.l map_events(pc),a0 + add.l 0(a0,d0*4),a6 + ; +exec_loop move (a6)+,d0 + beq.s .rts + subq #1,d0 + beq exec_addobj ;1 - add an object (alien etc) + subq #1,d0 + beq exec_opendoor ;2 - open a door + subq #1,d0 + beq exec_teleport ;3 - teleport + subq #1,d0 + beq exec_loadobjs ;4 - load objects + subq #1,d0 + beq exec_changetxt ;5 - change texture + subq #1,d0 + beq exec_rotpolys ;6 - start polygons rotating! + ; + warn #$f0f + ; +.rts tst doorsfxflag + beq.s .nodoor + clr doorsfxflag + move.l doorsfx(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx +.nodoor rts + +changedtxt dc 0 +deftxt dc.l 0 +defgfxtxt dc.l 0 + +exec_changetxt ; + move (a6)+,d0 ;zone# + move.l map_poly(pc),a1 + lsl #5,d0 + lea 0(a1,d0),a1 ;polygon to change + ; + move (a6)+,d0 ;new texture + move d0,changedtxt + move.b d0,zo_t(a1) + bra exec_loop + +exec_opendoor st doorsfxflag + addlast doors ;a0=new door + ; + move (a6)+,d0 ;door # + move.l map_poly(pc),a1 + lsl #5,d0 + lea 0(a1,d0),a1 ;polygon to open! + ; + ;calc lx add, lz add, rx add, rz add + ; + move.l a1,do_poly(a0) + move.l zo_lx(a1),do_lx(a0) + move.l zo_rx(a1),do_rx(a0) + clr do_frac(a0) + move #$100,do_fracadd(a0) + bra exec_loop + +exec_teleport move.l eventobj(pc),a0 + ; + move (a6)+,ob_telex(a0) + addq #2,a6 + move (a6)+,ob_telez(a0) + move (a6)+,ob_telerot(a0) + ; + move finished(pc),d0 + or finished2(pc),d0 + bne exec_loop + ; + tst -6(a6) ;teleport? or lock! + beq.s .tele + ; + ;LOCK! + cmp.l #playerlogic,ob_logic(a0) + bne exec_loop + ; + move changedtxt(pc),d0 + lea textures(pc),a1 + move.l 0(a1,d0*4),a1 + lea 65<<6+1(a1),a2 + lea 10*65+19(a1),a1 + movem.l a1-a2,deftxt + ; + move.l #locklogic,ob_logic(a0) + bra exec_loop +.tele ; + move #2,ob_pixsizeadd(a0) + bsr dotelesfx + bra exec_loop + +dotelesfx move.l telesfx(pc),a0 + moveq #64,d0 + moveq #10,d1 + bra playsfx + +exec_loadobjs ; +.loop move (a6)+,d0 + bmi .done + bsr loadanobj + bra.s .loop +.done ; + bra exec_loop + +loadanobj ;d0=object#...sys must be permitted + ; + lea objinfo,a2 + mulu #objinfof-objinfo,d0 + move.l _ob_shape-objinfo(a2,d0),a2 + lea 8(a2),a3 ;filename + ; + tst.l (a2) + bne.s .skip + move.l a3,a0 + moveq #1,d1 + jsr loadfile + move.l d0,(a2) + beq.s .skip + move.l d0,a0 + jsr remapanim +.skip ; + tst.l 4(a2) + bne.s .rts + move.l a3,a0 +.loop tst.b (a3)+ + bne.s .loop + move.b #'2',-(a3) + moveq #1,d1 + jsr loadfile + clr.b (a3) + move.l d0,4(a2) + beq.s .rts + move.l d0,a0 + jsr remapanim + ; +.rts rts + +exec_rotpolys ; + ;could also be morphpolys depending on bit 0 of flags! + ; + addlast rotpolys + bne.s .ok + addq #8,a6 + bra exec_loop + ; +.ok st doorsfxflag + movem (a6)+,d0-d3 ;polynum,count,speed,flags + ; + clr rp_rot(a0) + move d1,rp_num(a0) + move d2,rp_speed(a0) + move d3,rp_flags(a0) + move d1,d5 + subq #1,d5 + move.l map_poly(pc),a2 ;polygons! + lsl #5,d0 + add d0,a2 + move.l a2,rp_first(a0) + ; + btst #0,d3 + beq .rot + ; + ;OK, prepare for morph + ; + lsl #5,d1 + lea 0(a2,d1),a3 + lea rp_vx(a0),a1 + ; +.loop movem zo_lx(a3),d0-d1 + movem zo_lx(a2),d2-d3 + sub d2,d0 + sub d3,d1 + movem d0-d3,(a1) + addq #8,a1 + ; + lea 32(a2),a2 + lea 32(a3),a3 + dbf d5,.loop + ; + bra exec_loop + ; +.rot ;First, calc centre X,Z into d6,d7 + ; + moveq #0,d6 + moveq #0,d7 + move.l a2,a1 + ; +.loop0 movem zo_lx(a1),d0/d2 + add.l d0,d6 + add.l d2,d7 + lea 32(a1),a1 + dbf d5,.loop0 + ; + divu d1,d6 + divu d1,d7 + movem d6-d7,rp_cx(a0) + ; + lea rp_lx(a0),a1 + subq #1,d1 + ; +.loop2 movem zo_lx(a2),d0/d2 + sub d6,d0 + move d0,(a1)+ + sub d7,d2 + move d2,(a1)+ + move.l zo_na(a2),(a1)+ + ; + lea 32(a2),a2 + dbf d1,.loop2 + ; + bra exec_loop + +exec_addobj clr.l dummy + move (a6)+,d0 ;monster type + lea objinfo,a2 + mulu #objinfof-objinfo,d0 + add.l d0,a2 + move.l (a2)+,a3 + tst.l (a3) + beq.s .ok +.no addq #8,a6 + bra exec_loop +.ok cmp #2,-2(a6) ;player? + bcc.s .notp + addfirst objects + bra.s .bum +.notp addlast objects +.bum beq.s .no + move.l a0,a5 + ; + move.l a5,(a3) + ; + move (a6)+,ob_x(a5) + move (a6)+,ob_y(a5) + move (a6)+,ob_z(a5) + move (a6)+,ob_rot(a5) + ; + lea ob_info(a5),a3 + move #(objinfof-objinfo-4)>>1-1,d0 +.loop move (a2)+,(a3)+ + dbf d0,.loop + ; + tst ob_blood(a5) ;hi bit of blood=1=invisible! + smi d0 + ext d0 + move d0,ob_invisible(a5) + ; + bsr calcvecs + movem.l d4-d5,ob_xvec(a5) + ; + move.l ob_shape(a5),a0 + move.l 4(a0),ob_chunks(a5) + move.l (a0),a0 + move.l a0,ob_shape(a5) + ; + move an_maxw(a0),d0 + move d0,ob_rad(a5) + mulu d0,d0 + move.l d0,ob_radsq(a5) + ; + clr.l ob_washit(a5) + ; + bsr rnddelay + ; + bra exec_loop + +rnddelay move ob_range(a5),d0 + bsr rndn + add ob_base(a5),d0 + move d0,ob_delay(a5) + ; + rts + +seedrnd ;seed number in d0.w + ; + moveq #54,d1 + lea rndtable(pc),a0 + ; +.loop move d0,(a0)+ + mulu #$1efd,d0 + add #$dff,d0 + dbf d1,.loop + ; + move.l a0,k_index + move.l #rndtable+48,j_index + rts + +rndw ;return rnd number 0...65535 if d0.w + ; + movem.l a0/a1,-(a7) + lea rndtable(pc),a1 + move.l j_index(pc),a0 + move -(a0),d0 + cmp.l a0,a1 + bne.s .skip + lea rndtable+110(pc),a0 +.skip move.l a0,j_index + move.l k_index(pc),a0 + add -(a0),d0 + move d0,(a0) + cmp.l a0,a1 + bne.s .skip2 + lea rndtable+110(pc),a0 +.skip2 move.l a0,k_index + movem.l (a7)+,a0/a1 + rts + +rndtable ds.w 55 +k_index dc.l 0 +j_index dc.l 0 + +rndl bsr rndw + move d0,d1 + bsr rndw + swap d0 + move d1,d0 + rts + +rndn move d0,d1 + bsr rndw + mulu d1,d0 + swap d0 + rts + +seedrnd2 ;seed number in d0.w + ; + moveq #54,d1 + lea rndtable2(pc),a0 + ; +.loop move d0,(a0)+ + mulu #$1efd,d0 + add #$dff,d0 + dbf d1,.loop + ; + move.l a0,k_index2 + move.l #rndtable2+48,j_index2 + rts + +rndw2 ;return rnd number 0...65535 if d0.w + ; + movem.l a0/a1,-(a7) + lea rndtable2(pc),a1 + move.l j_index2(pc),a0 + move -(a0),d0 + cmp.l a0,a1 + bne.s .skip + lea rndtable2+110(pc),a0 +.skip move.l a0,j_index2 + move.l k_index2(pc),a0 + add -(a0),d0 + move d0,(a0) + cmp.l a0,a1 + bne.s .skip2 + lea rndtable2+110(pc),a0 +.skip2 move.l a0,k_index2 + movem.l (a7)+,a0/a1 + rts + +rndtable2 ds.w 55 +k_index2 dc.l 0 +j_index2 dc.l 0 + +rndl2 bsr rndw2 + move d0,d1 + bsr rndw2 + swap d0 + move d1,d0 + rts + +rndn2 move d0,d1 + bsr rndw2 + mulu d1,d0 + swap d0 + rts + +calcangle2 ;angle of camera to object in a5 + ; + move camx(pc),d0 + sub ob_x(a5),d0 + move camz(pc),d1 + sub ob_z(a5),d1 + bra.s calcangle_ + +calcangle ;angle of object a5 to object a0... + ; + move ob_x(a0),d0 + sub ob_x(a5),d0 + move ob_z(a0),d1 + sub ob_z(a5),d1 + ; +calcangle_ ;d0.w=x d1.w=y (dest-src)! + ; + moveq #0,d2 + tst d1 + bpl.s .hpos + moveq #16,d2 + neg d1 +.hpos tst d0 + bpl.s .wpos + eor #8,d2 + neg d0 +.wpos cmp d1,d0 + bmi.s .notsteep + bne.s .neq + move #$2000,d1 + bra.s .flow +.neq eor #4,d2 + exg d1,d0 +.notsteep tst d1 + bne.s .noflow + moveq #0,d1 + bra.s .flow +.noflow ext.l d0 + swap d0 + divu d1,d0 + lsr #6,d0 + and #1022,d0 + move .arc(pc,d0),d1 +.flow move.l .oct(pc,d2),d0 + eor d0,d1 + swap d0 + add d1,d0 + lsr #8,d0 + rts + ; +.oct dc 0,0,$4000,-1,0,-1,$c000,0 + dc $8000,-1,$4000,0,$8000,0,$c000,-1 +.arc incbin arc.bin + +calcscene ;a5=player object + ; + move #$20,$dff09a + ; + move.l player_(pc),a0 + ; + move.l ob_palette(a0),palette + move ob_thermo(a0),thermo + move ob_infra(a0),infra + move ob_pixsize(a0),pixsize + ; + clr.l shapelist + bsr calccamera + bsr makewalls + ; + lea objects(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq.s .done + cmp.l player_(pc),a5 + beq.s .loop + move.l ob_render(a5),a0 + tst ob_invisible(a5) + beq.s .notinvs + bpl.s .hb + move.l #drawobjtrans,shaperender + bra.s .rit +.hb move.l #drawobjinvs,shaperender +.rit jsr (a0) + move.l #drawobjnorm,shaperender + bra.s .loop +.notinvs jsr (a0) + bra.s .loop +.done ; + lea gore(pc),a5 + ; +.loop2 move.l (a5),a5 + tst.l (a5) + beq.s .done2 + ; + movem go_x(a5),d0/d2 + moveq #0,d1 + move.l go_shape(a5),a0 + move #$200,d7 + bsr drawshape_q + ; + bra.s .loop2 + ; +.done2 move #$8020,$dff09a + ; + rts + +blitscene ; + move.l player_(pc),a5 + ; + bclr #7,ob_update(a5) + beq.s .skip + ; + bsr showstats + move #2,panelcnt +.skip ; + rts + +.noupdate move ob_messtimer(a5),d0 + bpl.s .mskip + addq #1,d0 + beq.s .mdone + neg ob_messtimer(a5) + move.l ob_window(a5),a0 + ;bsr putstrip + bsr printmess + bra.s .mskip + ; +.mdone clr ob_messtimer(a5) + move.l ob_window(a5),a0 + ;bsr putstrip +.mskip ; + rts + +drawscene ;a5=player + ; + bsr castwalls + bsr renderwalls + ; + move roofflag(pc),d0 + ble.s .noroof + move #-255,d0 + sub camy(pc),d0 + moveq #1,d1 + move miny(pc),d7 + move.l roof(pc),a0 + bsr flat +.noroof ; + move floorflag(pc),d0 + ble.s .nofloor + move camy(pc),d0 + neg d0 + moveq #-1,d1 + move maxy(pc),d7 + subq #1,d7 + move.l floor(pc),a0 + bsr flat +.nofloor ; + bsr drawshapes + ; + rts + ; + bsr drawblood + ; + move.l player_(pc),a0 + move ob_pixsize(a0),d0 + bne pixelate + rts + +chatstuff move chatok(pc),d0 + beq.s .rts + ; + move chatoutget(pc),d0 + cmp chatoutput(pc),d0 + beq.s .noout + and #31,d0 + lea chatout(pc),a0 + move.b 0(a0,d0),d0 ;chat out character! + addq #1,chatoutget + moveq #1,d1 + move d0,-(a7) + bsr chatprintout + move (a7)+,d0 + sub.b #32,d0 ;encode for chat + bset #6,d0 + bsr serput + ; +.noout move chatcnt(pc),d0 + beq.s .rts + ; + move chatinget(pc),d0 + and #31,d0 + lea chatin(pc),a0 + move.b 0(a0,d0),d0 + addq #1,chatinget + subq #1,chatcnt + moveq #2,d1 + bsr chatprintin + ; +.rts rts + +sfxvbint lea sfxs(pc),a1 + moveq #3,d3 + ; +.loop tst fx_status(a1) + ble.s .skip + ; + ;this one queued! gotta play it... + ; + subq #1,fx_status(a1) + bgt.s .skip + move.l fx_sfx(a1),a0 + bsr playsfxnow + ; +.skip lea fx_size(a1),a1 + dbf d3,.loop + ; + ;fade out song if nec. + ; + move fadevol(pc),d0 + beq.s .nofade + move.l medat(pc),a1 + sub #$80,fadevol + bgt.s .setvol + clr fadevol + jmp 12(a1) ;stop song + bra.s .nofade + ; +.setvol move fadevol(pc),d0 + lsr #8,d0 + jmp 16(a1) ;set volume + ; +.nofade rts + + dc.l readmodem +joytable dc.l readnull,readnull,readnull,readnull,readnull +joytable2 dc.l readjoy1,readjoy0,readkeys,readcd321,readcd320 + +readjoy ;a0=player + move ob_cntrl(a0),d0 + bmi.s readmodem + ; + lea joyx0(pc),a0 + lea 0(a0,d0*8),a0 + move.l joytable(pc,d0*4),a1 + jsr (a1) + move linked(pc),d0 + bne.s .send + rts +.send ; + ;a0=cntrl block + ; + bsr encodejoy + movem.l d0/a0,-(a7) + bsr serput + ;movem.l (a7),d0/a0 + ;bsr serput + movem.l (a7)+,d0/a0 + ; +.noput lea pbuff(pc),a1 + ; + move pput(pc),d1 + and #127,d1 + move.b d0,0(a1,d1) + addq #1,pput + ; + move pget(pc),d1 + and #127,d1 + move.b 0(a1,d1),d0 + addq #1,pget + ; + bra decodejoy +readmodem ; + bsr rbfchk + bne.s .serhere + ; + ;OK, do a vwait to allow other machine to catch up! + ; + move #$20,$dff09c +.vw ; + ifne debugser + col #$f0f + endc + ; + btst #5,$dff01f + beq.s .vw + ; + move #$20,$dff09c + bsr chatstuff + bra.s readmodem + ; +.serhere bsr serget + lea joyxs(pc),a0 + bclr #7,d0 + beq.s .djoy + and #$ff,d0 + move d0,finished + moveq #0,d0 + ;bra.s .sgot + ; +.djoy ;movem.l d0/a0,-(a7) + ;bsr serwait + ;move d0,d1 + ;movem.l (a7)+,d0/a0 + ;cmp.b d0,d1 + ;beq.s .sgot + ; + ;warn #$fff + ;warn #$00f + ; +.sgot bsr decodejoy + move.l (a0)+,joyx + move.l (a0),joyb + rts + +escape dc 0 + +readjoys ;fill in appropriate 'joyxn' block...check escape + ; + move finished(pc),d0 + or finished2(pc),d0 + bne.s .rts + ; + qkey $45 + sne escape + ; + move.l player1(pc),a0 + bsr readjoy + move gametype(pc),d0 + beq.s .rts + move.l player2(pc),a0 + bra readjoy + ; +.rts rts + +lrnd dc 0 + +vbhandler movem.l d2-d7/a2-a6,-(a7) + ; + subq #1,(a1)+ ;inc/dec frame counters + addq #1,(a1) + ; + ;this done every frame! + bsr chatstuff + bsr sfxvbint + ; + btst #0,framecnt+1 + beq exit_vb2 + tst paused + bne exit_vb2 + ; + ;OK, movement/animation stuff! + ; + bsr readjoys + bsr doanims + bsr dorots + bsr dodoors + bsr moveblood + ; + ifne debugser + ; + ;OK, kludge in a random number! + move framecnt(pc),d0 + and #126,d0 + bne.s .nornd + ; + bsr rndw + move lrnd(pc),d1 + move d0,lrnd + cmp d0,d1 + bne.s .hi + warn #$fff + warn #$00f +.hi lea .rndasc(pc),a0 + moveq #3,d1 +.loop rol #4,d0 + move d0,d2 + and #15,d2 + add #48,d2 + cmp #58,d2 + bcs.s .rok + addq #7,d2 +.rok move.b d2,(a0)+ + dbf d1,.loop + ; + move.l player1(pc),a5 + bsr message +.rndasc dc.b 'aaaa',0 + even + ; + endc +.nornd ; + move.l a7,obj_stack + lea objects(pc),a5 + ; +obj_loop move.l (a5),a5 + tst.l (a5) + beq exit_vb + ; + move.l ob_logic(a5),a0 + jsr (a0) + ; + ;check collision! + ; + move ob_collwith(a5),d0 + beq.s obj_loop + ; + move ob_rad(a5),d1 + move ob_x(a5),d6 + move ob_z(a5),d7 + ; + lea objects(pc),a0 + ; +.loop2 move.l (a0),a0 + cmp.l a5,a0 + bne.s .this + ; + clr.l ob_washit(a5) ;not hit! can get hit next time... + bra obj_loop +.this ; + move ob_colltype(a0),d2 + and d0,d2 + beq.s .loop2 + ; + move ob_rad(a0),d2 + add d1,d2 ;r sum + ; + move ob_x(a0),d3 + sub d6,d3 + bpl.s .xpl + neg d3 +.xpl cmp d2,d3 + bcc.s .loop2 + ; + move ob_z(a0),d4 + sub d7,d4 + bpl.s .ypl + neg d4 +.ypl cmp d2,d4 + bcc.s .loop2 + ; + mulu d2,d2 + mulu d3,d3 + mulu d4,d4 + add.l d4,d3 + cmp.l d2,d3 + bcc.s .loop2 + ; + cmp.l ob_washit(a5),a0 + beq obj_loop + move.l a0,ob_washit(a5) + ; + move finished2(pc),d0 + bne obj_loop + ; + move.l #killobject3,killjsr + movem.l a0/a5,obj_a0 + exg.l a0,a5 + ; + move ob_damage(a0),d0 + move.l ob_hit(a5),a1 + sub d0,ob_hitpoints(a5) + bgt.s hit_skip + move.l ob_die(a5),a1 + ; +hit_skip jsr (a1) + ; +hit_ret move.l #killobject2,killjsr + movem.l obj_a0(pc),a0/a5 + ; + move ob_damage(a0),d0 + move.l ob_hit(a5),a1 + sub d0,ob_hitpoints(a5) + bgt.s hit_skip2 + move.l ob_die(a5),a1 + ; +hit_skip2 jsr (a1) + bra obj_loop + ; +exit_vb st doneflag + ; +exit_vb2 st showflag + ; + movem.l (a7)+,d2-d7/a2-a6 + moveq #0,d0 + ; +rts rts + +obj_a0 dc.l 0 +obj_a5 dc.l 0 +obj_stack dc.l 0 +killjsr dc.l killobject2 + +killobject ; + move.l killjsr(pc),a0 + jmp (a0) + +killobject2 move.l a5,a0 + killitem objects + move.l a0,a5 + move.l obj_stack(pc),a7 + bra obj_loop + +killobject3 move.l a5,a0 + killitem objects + move.l obj_stack(pc),a7 + bra hit_ret + +bloodspeed bsr rndw + ext.l d0 + lsl.l #2,d0 + rts + +bloodspeed2 bsr rndw + ext.l d0 + lsl.l #5,d0 + rts + +bloodspeed3 bsr rndw + ext.l d0 + lsl.l #4,d0 + rts + +makesparksq move.l ob_chunks(a5),a2 + ; +makesparks ;a2=sparks + ; + movem.l ob_x(a5),d2-d4 + move 2(a2),d5 + subq #1,d5 + ; +.loop addlast objects + beq .rts + movem.l d2-d4,ob_x(a0) + bsr bloodspeed2 + move.l d0,ob_xvec(a0) + bsr bloodspeed2 + move.l d0,ob_yvec(a0) + bsr bloodspeed2 + move.l d0,ob_zvec(a0) + move.l a2,ob_shape(a0) + move d5,ob_frame(a0) + move.l #sparkslogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + clr ob_invisible(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + bsr rndw + and #15,d0 + add #15,d0 + move d0,ob_delay(a0) + dbf d5,.loop +.rts rts + +sparkslogic subq #1,ob_delay(a5) + ble killobject + movem.l ob_x(a5),d0-d2 + add.l ob_xvec(a5),d0 + add.l ob_yvec(a5),d1 + add.l ob_zvec(a5),d2 + movem.l d0-d2,ob_x(a5) + rts + +bloodymess ;throw random blood splots everywhere! + ; + bsr bloodspeed2 + add.l ob_x(a5),d0 + move.l d0,d2 + bsr bloodspeed2 + add.l ob_gutsy(a5),d0 + move.l d0,d3 + bsr bloodspeed2 + add.l ob_z(a5),d0 + move.l d0,d4 + ; +.loop addlast blood + beq.s .done + ; + movem.l d2-d4,bl_x(a0) + bsr bloodspeed + move.l d0,bl_xvec(a0) + bsr bloodspeed + move.l d0,bl_yvec(a0) + bsr bloodspeed + move.l d0,bl_zvec(a0) + move ob_blood(a5),bl_color(a0) + ; + dbf d7,.loop + ; +.done rts + +bloodymess2 ;throw random blood splots everywhere! + ; + bsr bloodspeed2 + add.l ob_x(a5),d0 + move.l d0,d2 + bsr bloodspeed2 + add.l ob_gutsy(a5),d0 + move.l d0,d3 + bsr bloodspeed2 + add.l ob_z(a5),d0 + move.l d0,d4 + ; +.loop addlast blood + beq.s .done + ; + movem.l d2-d4,bl_x(a0) + bsr bloodspeed3 + move.l d0,bl_xvec(a0) + bsr bloodspeed3 + move.l d0,bl_yvec(a0) + bsr bloodspeed3 + move.l d0,bl_zvec(a0) + move ob_blood(a5),bl_color(a0) + ; + dbf d7,.loop + ; +.done rts + +chunklogic move mode(pc),d0 + beq chunklogic2 + ; + add.l #$8000,ob_yvec(a5) + move.l ob_yvec(a5),d0 + add.l ob_y(a5),d0 + blt .skip + ; + ;OK...hit ground! + ; + bsr splat + addlast gore + bne.s .gok + ; + move.l gore(pc),a0 + killitem gore + addlast gore + beq killobject + ; +.gok move ob_x(a5),go_x(a0) + move ob_z(a5),go_z(a0) + move.l ob_shape(a5),a1 + move ob_frame(a5),d0 + add.l 12(a1,d0*4),a1 + move.l a1,go_shape(a0) + ; + bra killobject + ; +.skip move.l d0,ob_y(a5) + bsr checkvecs + beq.s .rts + clr.l ob_xvec(a5) + clr.l ob_zvec(a5) +.rts rts + +chunklogic2 add.l #$8000,ob_yvec(a5) + move.l ob_yvec(a5),d0 + add.l d0,ob_y(a5) + blt.s .ok + ;bsr splat + bra killobject +.ok movem.l ob_xvec(a5),d0-d1 + add.l d0,ob_x(a5) + add.l d1,ob_z(a5) + rts + +splat move.l splatsfx(pc),a0 + moveq #32,d0 + moveq #-1,d1 + bra playsfx + +blowterra move.l robodiesfx(pc),a0 + moveq #64,d0 + moveq #20,d1 + bsr playsfx + bra blowquick + +blowdragon ;same, but messier... + ; + ;loud! + ; + move.l diesfx(pc),a0 + moveq #64,d0 + moveq #50,d1 + bsr playsfx + move.l diesfx(pc),a0 + moveq #64,d0 + moveq #50,d1 + bsr playsfx + move.l robodiesfx(pc),a0 + moveq #64,d0 + moveq #50,d1 + bsr playsfx + move.l robodiesfx(pc),a0 + moveq #64,d0 + moveq #50,d1 + bsr playsfx + ; + moveq #63,d7 + bsr bloodymess2 + ; + move.l ob_chunks(a5),a4 + bsr blowchunx + bsr blowchunx + bsr blowchunx + bsr blowchunx + ; + move.l #dragondead,ob_logic(a5) + move.l #rts,ob_render(a5) + clr ob_colltype(a5) + clr ob_collwith(a5) + move #127,ob_delay(a5) + rts + +dragondead subq #1,ob_delay(a5) + bgt.s .rts + ; + move #3,finished + ; +.rts rts + +blowdeath cmp.l sucker(pc),a5 + bne.s blowobject + clr.l sucker + clr.l sucking + ; +blowobject move.l diesfx(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx +blowquick ; + moveq #31,d7 + bsr bloodymess2 + ; + move.l ob_chunks(a5),d0 + bne.s .chok + ; + moveq #15,d7 + bsr bloodymess2 + bra killobject + ; +.chok move.l d0,a4 + bsr blowchunx + bra killobject + +blowchunx move 2(a4),d7 + subq #1,d7 + ; +.loop addlast objects + beq killobject + movem.l ob_x(a5),d0-d2 + move.l #-64<<16,d1 + movem.l d0-d2,ob_x(a0) + ; + bsr bloodspeed3 + move.l d0,ob_xvec(a0) + bsr bloodspeed3 + sub.l #$40000,d0 + move.l d0,ob_yvec(a0) + bsr bloodspeed3 + move.l d0,ob_zvec(a0) + ; + clr ob_invisible(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + move.l #chunklogic,ob_logic(a0) + move.l a4,ob_shape(a0) + move.l #drawshape_1sc,ob_render(a0) + move d7,ob_frame(a0) + move ob_scale(a5),ob_scale(a0) + ; + move an_maxw(a4),d0 + move d0,ob_rad(a0) + mulu d0,d0 + move.l d0,ob_radsq(a0) + ; + dbf d7,.loop + rts + +hurtdeath ;OK! death head hit! + ; + ;point at player, and start to suck his soul! + ; + move.l sucking(pc),d0 + bne.s .rts + ; + bsr pickplayer + cmp.l #playerlogic,ob_logic(a0) + bne.s .rts + ; + move.l a0,sucking + move.l a5,sucker + ; + move ob_rot(a5),ob_oldrot(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #deathsuck,ob_logic(a5) + move.l #rts,ob_hit(a5) + move #64,ob_delay(a5) + bra.s deathsuck + ; +.rts rts + +deathsuck ;death head sucking out a players soul! + ; + bsr deathbounce + bsr deathanim + subq #1,ob_delay(a5) + bgt.s .more + move ob_oldrot(a5),ob_rot(a5) + move.l ob_oldlogic(a5),ob_logic(a5) + move.l #hurtdeath,ob_hit(a5) + clr.l sucker + clr.l sucking + bra rnddelay + ; +.more move.l sucking(pc),a0 + move.l a0,a2 + bsr calcangle ;point at player! + move d0,ob_rot(a5) + ; + add #128,d0 + and #255,d0 + move.l camrots(pc),a3 + lea 0(a3,d0*8),a3 + ; + move.l a3,suckangle + ; + ;calc x/z vecs + ; + moveq #3,d7 + bsr addsoul + ; +.rts rts + +sucker dc.l 0 +sucking dc.l 0 +suckangle dc.l 0 + +addsoul ;d7 times! + ; + addlast blood + beq .rts + ; + move 2(a3),d2 + ext.l d2 + lsl.l #5,d2 + neg.l d2 + move 6(a3),d3 + ext.l d3 + lsl.l #5,d3 + ; + move.l d2,bl_xvec(a0) + move.l a5,bl_yvec(a0) + move.l d3,bl_zvec(a0) + ; + swap d2 + swap d3 + add d2,d2 + add d3,d3 + add ob_x(a2),d2 + add ob_z(a2),d3 + ; + bsr rndw + and #63,d0 + sub #32,d0 + add d2,d0 + move d0,bl_x(a0) + ; + bsr rndw + and #63,d0 + sub #32,d0 + add #110,d0 + move d0,bl_y(a0) ;>0= funny blood! + ; + bsr rndw + and #63,d0 + sub #32,d0 + add d3,d0 + move d0,bl_z(a0) + ; + bsr rndw + and #1,d0 + move soulcols(pc,d0*2),bl_color(a0) + ; + dbf d7,addsoul + ; +.rts rts + +soulcols dc $0ff,$0f0 + +hurtghoul moveq #31,d7 + bsr bloodymess + rts + +hurtterra move.l a0,-(a7) + move.l shootsfx2(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx + move.l (a7)+,a0 + bra.s hurtobject + +hurtngrunt move.l a0,-(a7) + bsr rndw + and #3,d0 + cmp lastgrunt(pc),d0 + bne.s .new + addq #1,d0 + and #3,d0 +.new move d0,lastgrunt + lea grunttable(pc),a0 + move.l 0(a0,d0*4),a0 + move.l (a0),a0 + moveq #64,d0 + moveq #1,d1 + bsr playsfx + move.l (a7)+,a0 + ; +hurtobject move ob_colltype(a0),d0 + and #24,d0 + bne.s .rts + ; + moveq #23,d7 + bsr bloodymess + move ob_hurtpause(a5),ob_hurtwait(a5) + beq .rts + ; + move #4,ob_frame(a5) + move.l ob_logic(a5),ob_oldlogic2(a5) + move.l ob_hit(a5),ob_oldhit(a5) + move.l #pauselogic2,ob_logic(a5) + move.l #rts,ob_hit(a5) + ; +.rts rts + +lizhurt move.l a0,-(a7) + move.l lizhitsfx(pc),a0 + moveq #64,d0 + moveq #1,d1 + bsr playsfx + move.l (a7)+,a0 + bra hurtobject + +trollhurt move.l a0,-(a7) + move.l trollhitsfx(pc),a0 + moveq #64,d0 + moveq #1,d1 + bsr playsfx + move.l (a7)+,a0 + bra hurtobject + +pauselogic2 subq #1,ob_hurtwait(a5) + bgt.s .rts + clr ob_frame(a5) + move.l ob_oldlogic2(a5),ob_logic(a5) + move.l ob_oldhit(a5),ob_hit(a5) +.rts rts + +pauselogic subq #1,ob_delay(a5) + bgt.s .skip + ; + bsr rnddelay + move.l ob_oldlogic(a5),ob_logic(a5) + ; + ;if in front of player, continue on old course... + ; + bsr pickcalc + ; + move ob_rot(a0),d1 + and #255,d1 + sub d0,d1 + bpl.s .pl + neg d1 +.pl cmp #64,d1 + bcs.s .skip + cmp #192,d1 + bcc.s .skip + ; +.useold move ob_oldrot(a5),ob_rot(a5) + bsr calcvecs + ; +.skip rts + +shoot ; + ;fire off a bullet... + ; + ;d2 : colltype + ;d3 : collwith + ;d4 : hitpoints + ;d5 : damage + ;d6 : speed + ;a2=bullet shape + ;a3=sparks shape + ; + addfirst objects + beq .rts + ; + move ob_bouncecnt(a5),ob_bouncecnt(a0) + move ob_x(a5),ob_x(a0) + move ob_y(a5),d0 + add ob_firey(a5),d0 + move d0,ob_y(a0) + move ob_z(a5),ob_z(a0) + move.l #firelogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + move.l #rts,ob_hit(a0) + move.l #killobject,ob_die(a0) + move d2,ob_colltype(a0) + move d3,ob_collwith(a0) + move d4,ob_hitpoints(a0) + move d5,ob_damage(a0) + move d6,ob_movspeed(a0) + move.l a2,ob_shape(a0) + clr ob_invisible(a0) + clr ob_frame(a0) + move.l a3,ob_chunks(a0) + ; + move ob_rot(a5),d0 + and #255,d0 + move.l camrots(pc),a1 + lea 0(a1,d0*8),a1 + ; + move 2(a1),d0 + move d0,ob_nxvec(a0) + neg d0 + muls d6,d0 + add.l d0,d0 + move 6(a1),d1 + move d1,ob_nzvec(a0) + muls d6,d1 + add.l d1,d1 + ; + movem.l d0-d1,ob_xvec(a0) + ;add.l d0,ob_x(a0) + ;add.l d1,ob_z(a0) + ; + move #32,ob_rad(a0) + move.l #32*32,ob_radsq(a0) + ; +.rts rts + +pickcalc ;pick a player and calculate angle to player! + ; + bsr pickplayer + bsr calcangle + tst ob_invisible(a0) + beq.s .rts + move d0,-(a7) + bsr rndw + and #63,d0 + sub #32,d0 + add (a7)+,d0 + and #255,d0 +.rts rts + +fire1 bsr pickcalc + ; + ;random noise for inaccuracy! + ; + move d0,-(a7) + bsr rndw + and #31,d0 + sub #16,d0 + add (a7)+,d0 + and #255,d0 + ; + move d0,ob_rot(a5) + bsr calcvecs + move #7,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #pauselogic,ob_logic(a5) + clr.l ob_frame(a5) + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #1,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet1,a2 + lea sparks1,a3 + ; + bsr shoot + ; + rts + +pickplayer ;pick nearest player + ; + move.l player1(pc),a0 + move gametype(pc),d0 + beq.s .rts + move.l player2(pc),a1 + move linked(pc),d0 + bpl.s .nosw + exg a0,a1 +.nosw ; + tst ob_hitpoints(a0) + beq .sw + tst ob_hitpoints(a1) + beq.s .rts + ; + move ob_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move ob_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 ;dist to player a0 + ; + move ob_x(a5),d1 + sub ob_x(a1),d1 + muls d1,d1 + move ob_z(a5),d2 + sub ob_z(a1),d2 + muls d2,d2 + add.l d2,d1 ;dist to player a1 + ; + cmp.l d1,d0 + bcs.s .rts + ; +.sw move.l a1,a0 + ; +.rts rts + +checkcoll ;check for collision between a5, and a0 + ; + move ob_rad(a5),d1 + move ob_rad(a0),d2 + add d1,d2 ;r sum + ; + move ob_x(a0),d3 + sub ob_x(a5),d3 + bpl.s .xpl + neg d3 +.xpl cmp d2,d3 + bcc.s .no + ; + move ob_z(a0),d4 + sub ob_z(a5),d4 + bpl.s .ypl + neg d4 +.ypl cmp d2,d4 + bcc.s .no + ; + mulu d2,d2 + mulu d3,d3 + mulu d4,d4 + add.l d4,d3 + cmp.l d2,d3 + bcc.s .no + ; + moveq #-1,d0 + rts + ; +.no moveq #0,d0 + rts + +baldycharge ; + ;baldy charging at player! + ; + bsr checkvecs + beq baldy_skip + ; +baldy_tonorm move.l ob_movspeed(a5),d0 + lsr.l #2,d0 + move.l d0,ob_movspeed(a5) + ; + move.l ob_framespeed(a5),d0 + lsr.l #2,d0 + move.l d0,ob_framespeed(a5) + ; + move.l ob_oldlogic(a5),ob_logic(a5) + bsr rnddelay + ; + bra monsterfix + ; +baldy_skip ;close to player? start throwing punches around! + ; + bsr pickcalc + ; + sub ob_rot(a5),d0 + cmp #32,d0 + bgt baldy_tonorm + cmp #-32,d0 + blt baldy_tonorm + ; + move.l a0,ob_washit(a5) + bsr checkcoll + beq monsternew ;no collisions! + ; + ;go into punch mode! + ; + move.l #baldypunch,ob_logic(a5) + move ob_punchrate(a5),ob_delay(a5) + clr.l ob_frame(a5) + rts + +baldypunch ; + bsr pickplayer + bsr checkcoll + bne.s .doit + ; + clr.l ob_frame(a5) + bra baldy_tonorm + ; +.doit subq #1,ob_delay(a5) + ble.s .punch + rts +.punch move ob_punchrate(a5),ob_delay(a5) + moveq #0,d0 ;stand frame + cmp ob_frame(a5),d0 + bne .skip + ; + clr.l ob_washit(a5) ;punch! + bsr calcangle + move d0,ob_rot(a5) + moveq #5,d0 +.skip move d0,ob_frame(a5) + rts + +calcbangle bsr calcangle + tst ob_invisible(a0) + beq.s .notinv + ; + ;invisible, add some randomeness! + ; + move d0,-(a7) + bsr rndw + and #127,d0 + sub #64,d0 + add (a7)+,d0 + and #255,d0 + ; +.notinv move d0,ob_rot(a5) + rts + +trolllogic move ob_rad(a5),d0 + mulu #$a000,d0 + swap d0 + move d0,ob_rad(a5) + mulu d0,d0 + move.l d0,ob_radsq(a5) + move.l #trolllogic2,ob_logic(a5) + ; +trolllogic2 subq #1,ob_delay(a5) + bgt monstermove ;charge? + ; + bsr pickcalc ;pic player in a0! + move ob_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move ob_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 + cmp.l #320*320,d0 + bcc bl2 + ; + move.l trollsfx(pc),a0 + moveq #64,d0 + moveq #5,d1 + bsr playsfx + ; + bra bl2 + +lizardlogic ; + subq #1,ob_delay(a5) + bgt monstermove ;charge? + ; + bsr pickcalc ;pic player in a0! + move ob_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move ob_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 + cmp.l #256*256,d0 + bcc.s bl2 + ; + move.l lizsfx(pc),a0 + moveq #32,d0 + moveq #5,d1 + bsr playsfx + ; + bra bl2 + +baldylogic ; + ;OK, what can baldy do... + ; + ;how about, walk around similar to the marine, but randomly + ;charge at you? + ; + ;then, if he's close enough, he throws a punch! + ; + subq #1,ob_delay(a5) + bgt monstermove ;charge? + ; +bl2 bsr pickcalc + move d0,ob_rot(a5) + ; + move.l ob_movspeed(a5),d0 + lsl.l #2,d0 + move.l d0,ob_movspeed(a5) + move.l ob_framespeed(a5),d0 + lsl.l #2,d0 + move.l d0,ob_framespeed(a5) + ; + bsr calcvecs + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #baldycharge,ob_logic(a5) + ; + rts + +terralogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + ble .fire + ; + move ob_delay(a5),d0 + and #31,d0 + bne monstermove + ; + move.l robotsfx(pc),a0 + moveq #64,d0 + moveq #10,d1 + bsr playsfx + bra monstermove + ; +.fire ;OK, terra goes apeshit! stand there firing off at player! + ;use punchrate as firedelay! + ; + clr ob_frame(a5) + move #1,ob_delay(a5) + move ob_firecnt(a5),ob_delay2(a5) + move.l #terralogic2,ob_logic(a5) + rts + +terralogic2 ; + subq #1,ob_delay(a5) + bgt.s .rts + ; + move ob_firerate(a5),ob_delay(a5) + ; + ;OK, to to face player and fire away! + ; + bsr pickcalc + move d0,ob_rot(a5) + bsr calcvecs + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #16,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet4,a2 + lea sparks4,a3 + ; + bsr shoot + ; + move.l shootsfx3(pc),a0 + moveq #32,d0 + moveq #5,d1 + bsr playsfx + ; + subq #1,ob_delay2(a5) + bgt.s .rts + ; + bsr rnddelay + move.l #terralogic,ob_logic(a5) + ; +.rts rts + +ghoullogic ; + addq #8,ob_bounce(a5) + move ob_bounce(a5),d0 + move.l camrots(pc),a0 + and #255,d0 + move 0(a0,d0*8),d0 + ext.l d0 + lsl.l #5,d0 ;+/- 32 + swap d0 + add #-32,d0 + move d0,ob_y(a5) + ; + bsr pickcalc + move d0,ob_rot(a5) + ; + subq #1,ob_delay(a5) + bgt.s .skip + ; + move #1,ob_frame(a5) + move.l #$2000,ob_framespeed(a5) + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet2,a2 + lea sparks2,a3 + ; + bsr shoot + bsr rnddelay + ; +.skip ;OK, ghoul moves around ignoring walls! + ; + ;he's pointed at player...how about randomly selected to make + ;this his new movement vector? + ; + bsr rndw + move ob_movspeed(a5),d1 + lsl #8,d1 + cmp d1,d0 + bcc.s .no + ; + bsr calcvecs + ; + move.l ghoulsfx(pc),a0 + moveq #32,d0 + moveq #-5,d1 + bsr playsfx + ; +.no movem.l ob_xvec(a5),d0-d1 + add.l d0,ob_x(a5) + add.l d1,ob_z(a5) + ; + move.l ob_framespeed(a5),d0 + beq.s .rts + add.l d0,ob_frame(a5) + cmp #3,ob_frame(a5) + bcs.s .rts + ; + clr ob_frame(a5) + clr.l ob_framespeed(a5) + ; +.rts rts + +demonpause move ob_delay(a5),d0 + move d0,d1 + and #4,d0 + sne d0 + ext d0 + and #5,d0 ;0 or 5 + move d0,ob_frame(a5) + ; + and #7,d1 ;do a fire? + cmp #7,d1 + bne.s .nofire + ; + move ob_delay(a5),d0 + lsr #3,d0 + mulu #18,d0 + lea wtable(pc),a0 + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + movem 0(a0,d0),d4-d6 ;hits,dam,speed + mulu #$c000,d5 + swap d5 ;3/4 damage! + moveq #0,d7 ;acc + movem.l 6(a0,d0),a2-a3 ;bullets/sparks + move.l 14(a0,d0),-(a7) ;sfx! + ; + bsr shoot + ; + move.l (a7)+,a0 + move.l (a0),a0 + moveq #32,d0 + moveq #0,d1 + bsr playsfx + ; +.nofire subq #1,ob_delay(a5) + bgt.s .rts + ; + bsr rnddelay + move.l ob_oldlogic(a5),ob_logic(a5) + ; +.rts rts + +demonlogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + bgt monstermove + ; + bsr pickcalc + ; + move d0,ob_rot(a5) + bsr calcvecs + move #5<<3-1,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #demonpause,ob_logic(a5) + ; + rts + +phantomlogic ; + move ob_rot(a5),ob_oldrot(a5) + subq #1,ob_delay(a5) + bgt monstermove + ; + bsr pickcalc + ; + move d0,ob_rot(a5) + bsr calcvecs + move #7,ob_delay(a5) + move.l ob_logic(a5),ob_oldlogic(a5) + move.l #pauselogic,ob_logic(a5) + move #5,ob_frame(a5) + ; + moveq #4,d2 ;colltype + moveq #0,d3 ;collwith + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #20,d6 ;speed + moveq #0,d7 ;acceleration! + lea bullet3,a2 + lea sparks3,a3 + ; + bra shoot + +deathbounce addq #4,ob_bounce(a5) + move ob_bounce(a5),d0 + move.l camrots(pc),a0 + and #255,d0 + move 0(a0,d0*8),d0 + ext.l d0 + lsl.l #5,d0 ;+/- 64 + swap d0 + add #-48,d0 + move d0,ob_y(a5) + rts + +deathheadlogic ; + ;cruises around rotating at speed ob_delay + ; + bsr deathbounce + ; + bsr checkvecs + bne.s .hit + ; + ;charge player? + ; + bsr pickcalc ;find angle to player + move ob_rot(a5),d1 + and #255,d1 + sub d0,d1 ;am I near? + bpl.s .ansk + neg d1 +.ansk cmp #16,d1 + bcc.s .notnear + ; + ;OK! chargaroony! + ; + move d0,ob_rot(a5) + move.l #deathcharge,ob_logic(a5) + bra calcvecs +.hit add #128,ob_rot(a5) + bsr rnddelay +.notnear move ob_delay(a5),d0 + add d0,ob_rot(a5) + bsr calcvecs + rts + +deathanim move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + cmp.l #$8000,ob_frame(a5) + blt.s .fix + cmp.l #$28000,ob_frame(a5) + blt.s .fok +.fix neg.l d0 + add.l d0,ob_frame(a5) + move.l d0,ob_framespeed(a5) + ; +.fok rts + +deathcharge bsr deathbounce + bsr deathanim + ; + bsr pickcalc + move ob_rot(a5),d1 + and #255,d1 + sub d1,d0 ;am I near? + bpl.s .ansk + neg d0 +.ansk cmp #128,d0 + bcc.s .hit + bsr checkvecs + bne.s .hit2 + rts +.hit2 add #128,ob_rot(a5) +.hit move.l #deathheadlogic,ob_logic(a5) + move.l #$8000,ob_frame(a5) + bra rnddelay + +monsterlogic ; + move ob_rot(a5),ob_oldrot(a5) + ;monster cruising around minding his own business... + ; + subq #1,ob_delay(a5) + ble fire1 + ; +monstermove bsr checkvecs + beq.s monsternew + ; + ;OK, try 90/-90 degrees... + ; +monsterfix bsr rndw + moveq #64,d1 + tst d0 + bpl.s .umk + moveq #-64,d1 +.umk add d1,ob_rot(a5) + bsr calcvecs + bsr checkvecs + beq.s monsternew + ; + add #128,ob_rot(a5) + bsr calcvecs + bsr checkvecs + beq.s monsternew + ; + move ob_oldrot(a5),d0 + add #128,d0 + move d0,ob_rot(a5) + ; + bsr calcvecs + bsr checkvecs +monsternew ; + move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + and #3,ob_frame(a5) + rts + +dragonfire ;dragon fires at you! + ; + ;d2 : colltype + ;d3 : collwith + ;d4 : hitpoints + ;d5 : damage + ;d6 : speed + ;a2=bullet shape + ;a3=sparks shape + ; + subq #1,ob_delay(a5) + bpl .rts + move ob_delay(a5),d0 + cmp #-16*8,d0 + bgt.s .try + move #47,ob_delay(a5) + rts +.try and #7,d0 + bne .rts + ; +.fire moveq #0,d2 ;colltype + moveq #24+3,d3 ;collwith - p1/p2/bullets + moveq #1,d4 ;hitpoints + moveq #3,d5 ;damage + moveq #16,d6 ;speed + lea bullet5,a2 + lea sparks5,a3 + ; + addlast objects + beq .rts + ; + move ob_bouncecnt(a5),ob_bouncecnt(a0) + move ob_x(a5),ob_x(a0) + move ob_y(a5),d0 + add ob_firey(a5),d0 + move d0,ob_y(a0) + move ob_z(a5),ob_z(a0) + move.l #homeinlogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + move.l #makesparksq,ob_hit(a0) + move.l #blowdb,ob_die(a0) + move d2,ob_colltype(a0) + move d3,ob_collwith(a0) + move d4,ob_hitpoints(a0) + move d5,ob_damage(a0) + move d6,ob_movspeed(a0) + move.l a2,ob_shape(a0) + clr ob_invisible(a0) + clr ob_frame(a0) + move.l a3,ob_chunks(a0) + ; + move ob_rot(a5),d0 + and #255,d0 + move.l camrots(pc),a1 + lea 0(a1,d0*8),a1 + ; + move 2(a1),d0 + move d0,ob_nxvec(a0) + neg d0 + muls d6,d0 + add.l d0,d0 + move 6(a1),d1 + move d1,ob_nzvec(a0) + muls d6,d1 + add.l d1,d1 + ; + movem.l d0-d1,ob_xvec(a0) + ; + move #32,ob_rad(a0) + move.l #32*32,ob_radsq(a0) + ; +.rts rts + +blowdb bsr makesparksq + bra killobject + +homeinlogic bsr checkvecs + bne.s blowdb + bsr pickcalc ;find angle to player! + move.l camrots(pc),a0 + lea 0(a0,d0*8),a0 + move 2(a0),d4 ;x acc. + neg d4 + ext.l d4 + lsl.l #2,d4 + move 6(a0),d5 ;z acc. + ext.l d5 + lsl.l #2,d5 + ; + add.l ob_xvec(a5),d4 + move.l d4,d0 + bpl.s .pl1 + neg.l d0 +.pl1 cmp.l #$200000,d0 ;max speed + bcc.s .sk1 + move.l d4,ob_xvec(a5) + ; +.sk1 add.l ob_zvec(a5),d5 + move.l d5,d0 + bpl.s .pl2 + neg.l d0 +.pl2 cmp.l #$200000,d0 + bcc.s .sk2 + move.l d5,ob_zvec(a5) +.sk2 ; + bra putfire + +dragonanim move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + and #3,ob_frame(a5) + rts + +getobrot move ob_rotspeed(a5),d0 + bne.s .addr + ; + ;OK, randomly left/rite! + ; + bsr rndw + and #1,d0 + bne.s .addr2 + moveq #-1,d0 + ; +.addr2 lsl #2,d0 + move d0,ob_rotspeed(a5) + ; +.addr rts + +dragonlogic ;OK! end of game baddy! + ; + ;how about cruising around in a circle a-la + ;deathhead! + ; + bsr dragonanim + bsr dragonfire + bsr checkvecs + beq.s .nohit + ; + ;OK, dragon has hit a wall...rot him around till he's clear! + ; + bsr getobrot + lsl #2,d0 + add d0,ob_rot(a5) + bra calcvecs +.nohit ; + bsr pickcalc + move ob_rot(a5),d1 + and #255,d1 + sub d0,d1 ;am I near? + bpl.s .ansk + neg d1 +.ansk moveq #6,d0 + tst ob_rotspeed(a5) + bne.s .sh + moveq #24,d0 +.sh cmp d0,d1 + bcs.s .near + ; + ;not pointed at player! + bsr getobrot + add d0,ob_rot(a5) + bra calcvecs + ; +.near tst ob_rotspeed(a5) + beq.s .near2 + clr ob_rotspeed(a5) ;towards player! + ; + move.l dragonsfx(pc),a0 + moveq #64,d0 + moveq #20,d1 + bsr playsfx + ; +.near2 rts + +weaponlogic ; + move.l camrots(pc),a0 + ; + addq #8,ob_movspeed(a5) + move ob_movspeed(a5),d0 + and #127,d0 + move 2(a0,d0*8),d0 + asr #8,d0 + move d0,ob_y(a5) + ; + move.l ob_framespeed(a5),d0 + add.l d0,ob_frame(a5) + move ob_frame(a5),d0 + move.l ob_shape(a5),a0 + cmp 2(a0),d0 + bcs.s .skip + clr ob_frame(a5) +.skip ; + subq #1,ob_delay(a5) + bgt .rts + bsr rnddelay + ; + addlast objects + beq.s .rts + ; + movem.l ob_x(a5),d2-d4 + movem.l d2-d4,ob_x(a0) + bsr bloodspeed2 + move.l d0,ob_xvec(a0) + bsr bloodspeed2 + move.l d0,ob_yvec(a0) + bsr bloodspeed2 + move.l d0,ob_zvec(a0) + move.l ob_chunks(a5),a2 + move.l a2,ob_shape(a0) + move 2(a2),d0 + bsr rndn + move d0,ob_frame(a0) + move.l #sparkslogic,ob_logic(a0) + move.l #drawshape_1,ob_render(a0) + clr ob_invisible(a0) + clr ob_colltype(a0) + clr ob_collwith(a0) + bsr rndw + and #15,d0 + add #15,d0 + move d0,ob_delay(a0) +.rts rts + +calcvecs move ob_rot(a5),d0 + ; + and #255,d0 + move.l camrots(pc),a0 + lea 0(a0,d0*8),a0 + ; + move ob_movspeed(a5),d4 + move d4,d5 + muls 2(a0),d4 + add.l d4,d4 + neg.l d4 + move.l d4,ob_xvec(a5) + muls 6(a0),d5 + add.l d5,d5 + move.l d5,ob_zvec(a5) + rts + +checkvecs movem.l ob_xvec(a5),d6-d7 + add.l ob_x(a5),d6 + add.l ob_z(a5),d7 + bsr checknewslow ;ok to stand here? + beq.s .ok + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + bsr checknewslow + bne.s .fix + moveq #-1,d1 ;use old pos, and report hit! + rts + ; +.fix bsr adjustposq ;fixup! + moveq #-1,d1 + ; +.ok move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + tst d1 + rts + +playerdead bsr getcntrl + ; + subq #1,ob_delay(a5) + bgt.s .rts + ; + cmp #2,gametype + bne.s .notcom + ; + ;combat game! + ; + move #4,finished2 + move #1,ob_pixsizeadd(a5) + move.l #rts,ob_logic(a5) + bsr getother + move #1,ob_pixsizeadd(a0) +.rts rts + ; +.notcom ; + tst ob_lives(a5) + beq.s .dead + move.l #waitrestart,ob_logic(a5) + rts + ; +.dead move.l #rts,ob_logic(a5) + tst gametype + bne.s .not1p +.allover move #2,finished + rts + ; +.not1p ;OK, I'm all out of lives...what about other guy... + bsr getother + tst ob_lives(a0) + beq.s .allover + rts + +waitrestart bsr getcntrl + ; + bsr checkfireb + beq.s .rts + ; + move ob_weapon(a5),-(a7) + ; + lea p1x(pc),a0 + lea player1_+4,a1 + cmp.l player1,a5 + beq.s .got + lea p2x(pc),a0 + lea player2_+4,a1 +.got lea ob_info(a5),a2 + move #(objinfof-objinfo-4)>>1-1,d0 +.loop move (a1)+,(a2)+ + dbf d0,.loop + ; + clr.l ob_colltype(a5) + move #75,ob_delay(a5) + move.l #playerlogic0,ob_logic(a5) + ; + move (a0)+,ob_x(a5) + move (a0)+,ob_z(a5) + move (a0)+,ob_rot(a5) + ; + move (a7)+,ob_weapon(a5) + clr ob_bounce(a5) + ; + move.l ob_shape(a5),a0 + move.l 4(a0),ob_chunks(a5) + move.l (a0),a0 + move.l a0,ob_shape(a5) + ; + bsr resetplayer + move #-1,ob_update(a5) + st ob_lastbut(a5) + ; +.rts rts + +playerdeath bsr getcntrl + ; + addq #4,ob_rot(a5) + addq #4,ob_eyey(a5) + cmp #-32,ob_eyey(a5) + blt .rts + ; + move #-32,ob_eyey(a5) + move.l #playerdead,ob_logic(a5) + move #63,ob_delay(a5) + ; + cmp #2,gametype + bne.s .notcom + ; + ;death in combat game! + ; + bsr getother + ; +.win move.l a5,-(a7) + ; + move.l a0,a5 + clr ob_collwith(a5) + clr ob_colltype(a5) + bsr message + dc.b 'winner!',0 + even + ; + move.l (a7)+,a5 + subq #1,ob_lives(a5) + move #-1,ob_update(a5) ;refresh 'lives' + bsr message + dc.b 'loser!',0 + even + ; + rts +.notcom ; + subq #1,ob_lives(a5) + move #-1,ob_update(a5) + move gametype(pc),d0 + beq.s .one + ; + ;2 player game! + ; + bsr getother + tst ob_lives(a5) + beq.s .hmm + move ob_lives(a5),ob_lives(a0) + move #-1,ob_update(a0) + rts +.hmm tst ob_lives(a0) + beq.s .go2 + rts +.one tst ob_lives(a5) + beq.s .go + rts +.go2 move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'game over',0 + even + move.l (a7)+,a5 +.go bsr message + dc.b 'game over',0 + even +.rts rts + +getother ;get other player from a5! + ; + move.l player1(pc),a0 + cmp.l a0,a5 + bne.s .rts + move.l player2(pc),a0 +.rts rts + +redpal ;move.l #palettesr,ob_palette(a5) + move #2,ob_paltimer(a5) + rts + +playerhit tst ob_damage(a0) + beq.s .rts + st ob_update(a5) + bsr redpal +.rts rts + +playerdie bsr redpal + clr ob_hitpoints(a5) + st ob_update(a5) + move.l #playerdeath,ob_logic(a5) + clr ob_colltype(a5) + clr ob_collwith(a5) + rts + +inchealth ;inc health of a5 + ; + addq #5,ob_hitpoints(a5) + cmp #25,ob_hitpoints(a5) + ble.s .skip + move #25,ob_hitpoints(a5) +.skip st ob_update(a5) + bsr message + dc.b 'health bonus!',0 + even + rts + +healthgot bsr playtsfx + move.l a5,-(a7) + move.l a0,a5 + bsr inchealth + move.l (a7)+,a5 + bra killobject + +playtsfx move.l a0,-(a7) + move.l tokensfx(pc),a0 + moveq #64,d0 + moveq #0,d1 + bsr playsfx + move.l (a7)+,a0 + rts + +weapongot bsr playtsfx + move.l a5,-(a7) + move ob_weapon(a5),d0 ;weapon #! + move.l a0,a5 + bsr weapond0 + move.l (a7)+,a5 + bra killobject + +weapond0 st ob_update(a5) + cmp ob_weapon(a5),d0 + bne .new + ; + subq.b #1,ob_reload(a5) + beq.s .skip + cmp.b #1,ob_reload(a5) + bne.s .notfull + bsr message + dc.b 'weapon boosted to full!',0 + even + rts + ; +.notfull bsr message + dc.b 'weapon boost!',0 + even + rts + ; +.skip addq.b #1,ob_reload(a5) + add #250,ob_mega(a5) + cmp #ok,ob_mega(a5) + bcs.s .mwb + ; + bsr message + dc.b 'ultra mega overkill!!!',0 + even + rts + ; +.mwb bsr message + dc.b 'mega weapon boost!',0 + even + rts + ; +.new move d0,ob_weapon(a5) + move.b #ireload,ob_reload(a5) + st ob_update(a5) + bsr message + dc.b 'new weapon!',0 + even + rts + +invisigot bsr playtsfx + move.l a5,-(a7) + move.l a0,a5 + add #1500,ob_invisible(a5) + bsr message + dc.b 'invisibility!',0 + even + move.l (a7)+,a5 + bra killobject + +invincgot bsr playtsfx + tst ob_hyper(a0) + bne.s .rts + move.l a5,-(a7) + move.l a0,a5 + ; + move #-$200,ob_hyper(a5) + bsr message + dc.b 'hyper!',0 + even + ; + move.l (a7)+,a5 + bra killobject + ; +.rts rts + +bouncylogic addq #1,ob_delay(a5) + move ob_delay(a5),d0 + lsr #1,d0 + and #3,d0 + move .bnc(pc,d0*2),ob_frame(a5) + rts +.bnc dc 3,4,3,5 + +bouncygot bsr playtsfx + cmp #3,ob_bouncecnt(a0) + bcc.s .rts + addq #1,ob_bouncecnt(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'bouncy bullets!',0 + even + move.l (a7)+,a5 + bra killobject +.rts rts + +thermogot bsr playtsfx + add #1500,ob_thermo(a0) + move.l a5,-(a7) + move.l a0,a5 + bsr message + dc.b 'got the thermo glasses!',0 + even + move.l (a7)+,a5 + bra killobject + +maxsize equ $280 + +playertimers tst ob_mega(a5) + beq.s .nomega + subq #1,ob_mega(a5) + bne.s .nomout + bsr message + dc.b 'mega weapon out...',0 + even +.nomout move ob_mega(a5),d0 + and #31,d0 + bne.s .nomega + st ob_update(a5) + ; +.nomega tst ob_thermo(a5) + beq.s .noth + subq #1,ob_thermo(a5) + bne.s .noth + bsr message + dc.b 'thermo glasses out...',0 + even + ; +.noth tst ob_messtimer(a5) + ble.s .notm + subq #2,ob_messtimer(a5) +.notm ; + tst ob_invisible(a5) + beq.s .noti + subq #1,ob_invisible(a5) + bne.s .noti + bsr message + dc.b 'invisibility out...',0 + even +.noti ; + tst ob_paltimer(a5) + beq.s .notp + subq #1,ob_paltimer(a5) + bne.s .notp + move.l #palettes,ob_palette(a5) +.notp ; + move ob_pixsizeadd(a5),d0 + beq.s .notpix + add d0,ob_pixsize(a5) + bne.s .pixnz + ; + clr ob_pixsizeadd(a5) + bra.s .notpix + ; +.pixnz cmp #24,ob_pixsize(a5) + bne.s .notpix + ; + move finished2(pc),finished + bne.s .notpix + ; + move ob_telex(a5),ob_x(a5) + move ob_telez(a5),ob_z(a5) + move ob_telerot(a5),ob_rot(a5) + neg ob_pixsizeadd(a5) +.notpix ; + move ob_hyper(a5),d0 + beq.s .nothyper + bpl.s .hplus + ; + ;hyper is minus! growing... + ; + subq #4,d0 + move d0,d1 + neg d1 + cmp #maxsize,d1 + bne.s .hdone + move #750<<2+maxsize,d0 + bra.s .hdone + ; +.hplus subq #4,d0 + cmp #maxsize,d0 + bhi.s .hdone2 + bne.s .noteq + bsr message + dc.b 'hyper out...',0 + even + move #maxsize,d0 +.noteq move d0,d1 + cmp #$200,d0 + bne.s .hdone + moveq #0,d0 + ; +.hdone move d1,ob_scale(a5) + ; + move d1,d2 + mulu #((pl_eyey<<16)/$200),d2 + swap d2 + neg d2 + move d2,ob_eyey(a5) + ; + move d1,d2 + mulu #((pl_firey<<16)/$200),d2 + swap d2 + neg d2 + move d2,ob_firey(a5) + ; + move d1,d2 + mulu #((pl_gutsy<<16)/$200),d2 + swap d2 + neg d2 + move d2,ob_gutsy(a5) + ; +.hdone2 move d0,ob_hyper(a5) +.nothyper ; + rts + +footstep move.l d0,-(a7) + move.l footstepsfx(pc),a0 + moveq #16,d0 + moveq #0,d1 + bsr playsfx + move.l (a7)+,d0 + rts + +pbuff ds.b 128 ;player controls to use! +pput dc 0 ;put new cntrl here +pget dc 0 ;read this for actual + +getcntrl move ob_cntrl(a5),d0 + lea joyx0(pc),a0 + move.l 0(a0,d0*8),joyx + move.l 4(a0,d0*8),joyb + rts + +maxrotsp equ $40000 +rotacc equ $20000 +rotrevacc equ $40000 +rotsetacc equ $20000 + +rotplayer ;return rot in d0, leave a0 + ; + move joys(pc),d0 ;strafing? + bne.s .norot + move joyx(pc),d0 + beq.s .norot + ; + move.l #rotacc,d1 ;rotacc + move ob_rotspeed(a5),d2 + beq.s .useacc + eor d2,d0 + bpl.s .useacc + move.l #rotrevacc,d1 ;fast rev! +.useacc move joyx(pc),d0 + bpl.s .plus + neg.l d1 +.plus add.l d1,ob_rotspeed(a5) + cmp.l #maxrotsp,ob_rotspeed(a5) + bgt.s .fixaccpl + cmp.l #-maxrotsp,ob_rotspeed(a5) + bge.s .addrot + move.l #-maxrotsp,ob_rotspeed(a5) + bra.s .addrot +.fixaccpl move.l #maxrotsp,ob_rotspeed(a5) + bra.s .addrot + ; +.norot tst.l ob_rotspeed(a5) + beq.s .skip + bpl.s .orpl + add.l #rotsetacc,ob_rotspeed(a5) + ble.s .addrot +.clrrot clr.l ob_rotspeed(a5) + bra.s .skip +.orpl sub.l #rotsetacc,ob_rotspeed(a5) + bmi.s .clrrot + ; +.addrot move.l ob_rotspeed(a5),d0 + add.l d0,ob_rot(a5) + ; +.skip rts + +unbounce move ob_bounce(a5),d1 + beq.s .rts + add #30,ob_bounce(a5) + move ob_bounce(a5),d1 + and #127,d1 + cmp #30,d1 + bcc.s .rts + clr ob_bounce(a5) + clr ob_frame(a5) + bra footstep +.rts rts + +moveplayer ;work out movement vector into d0/d1...check still/moving! + ; + move joyy(pc),d0 + bne .move + move joys(pc),d0 + beq.s .still + move joyx(pc),d0 + bne.s .strafe + ; +.still bsr unbounce + move ob_bounce(a5),d0 + bne .fskip + rts + ; +.strafe ;do strafe! X rot in d0 + ; + move.l camrots(pc),a1 + lsl #6,d0 ;* ninety degrees + add ob_rot(a5),d0 + and #255,d0 + lea 0(a1,d0*8),a1 + ; + move ob_movspeed(a5),d0 + move d0,d1 + muls 2(a1),d0 + add.l d0,d0 + muls 6(a1),d1 + add.l d1,d1 + neg.l d0 + add.l d0,d6 + add.l d1,d7 + bra .check + ; +.move ;and possibly strafe! + ; + ;work out move vec into d0/d1 + ; + neg d0 + muls ob_movspeed(a5),d0 ;speed + move.l camrots(pc),a1 + move ob_rot(a5),d1 + and #255,d1 + lea 0(a1,d1*8),a1 + move d0,d1 + muls 2(a1),d0 + add.l d0,d0 + muls 6(a1),d1 + add.l d1,d1 + neg.l d0 + add.l d0,d6 + add.l d1,d7 + move joys(pc),d0 + beq.s .check + move joyx(pc),d0 + bne.s .strafe +.check ; + bsr checknewslow + beq.s .newpos + bsr adjustpos + beq.s .newpos + bsr adjustpos + beq.s .newpos + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + bra.s .bounce + ; +.newpos move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + ; +.bounce move ob_bounce(a5),d2 + add #20,ob_bounce(a5) + move ob_bounce(a5),d1 + and #255,d2 + cmp #64,d2 + bcc.s .fskip + and #255,d1 + cmp #64,d1 + bcs.s .fskip + ; + bsr footstep +.fskip ; + move.l ob_framespeed(a5),d1 + add.l d1,ob_frame(a5) + and #3,ob_frame(a5) + rts + +checkevent bsr checknew2 + beq.s .rts + ; + move ob_pixsizeadd(a5),d0 + or finished2(pc),d0 + bne .rts + ; + move zo_ev(a4),d0 ;poly->event + bmi.s .rts + ; + cmp #24,d0 + bne.s .notexit + ; + move #3,finished2 ;pattern done! + move #1,ob_pixsizeadd(a5) ;pixel out + tst gametype + beq.s .onewin + bsr getother + move #2,ob_pixsizeadd(a0) ;pixel out other player +.onewin ; + bsr dotelesfx + moveq #24,d0 + ; +.notexit cmp #19,d0 + bcc.s .noclr + ; + ;OK, gotta clear all 'event' zones with same type! + ; + move.l map_poly(pc),a0 + move.l map_ppnt(pc),a1 + moveq #32,d1 +.loop2 cmp zo_ev(a0),d0 + bne.s .skip2 + neg zo_ev(a0) +.skip2 add.l d1,a0 + cmp.l a1,a0 + bcs.s .loop2 + ; +.noclr move.l a5,eventobj + movem.l d6-d7,-(a7) + bsr execevent + movem.l (a7)+,d6-d7 + move.l eventobj(pc),a5 + ; +.rts rts + + ;these updated after a call to 'getcntrl' + ; +joyx dc 0 ;left/rite +joyy dc 0 ;for/back +joyb dc 0 ;fire +joys dc 0 ;strafe + +checksuck cmp.l sucking(pc),a5 + bne.s .nosuck + ; + move.l suckangle(pc),a0 + moveq #25,d0 + move d0,d1 + muls 2(a0),d0 + neg.l d0 + add.l d0,d6 + ; + muls 6(a0),d1 + add.l d1,d7 + bsr checknewslow + beq.s .newok + bsr adjustpos + beq.s .newok + bsr adjustpos + beq.s .newok + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + bra.s .nosuck + ; +.newok move.l d6,ob_x(a5) + move.l d7,ob_z(a5) + ; +.nosuck rts + +playerlogic0 ;restart after death...2 seconds invincibility. + ; + subq #1,ob_delay(a5) + bgt.s playerlogic + ; + ;OK, fix colltype/collwith + ; + lea player1_,a1 + cmp.l player1,a5 + beq.s .got + lea player2_,a1 +.got lea p1_ob_colltype-player1_(a1),a1 + move.l (a1),ob_colltype(a5) + move.l #playerlogic,ob_logic(a5) +playerlogic ; + bsr playertimers ;do timer stuff... + bsr getcntrl ;player control + ; + move.l ob_x(a5),d6 + move.l ob_z(a5),d7 + ; + ;getting sucked? + ; + ;OK, are we getting pushed/squashed? + ; + bsr checknewslow + beq.s .newok + bsr adjustpos + beq.s .newok2 + bsr adjustpos + beq.s .newok2 + ; + subq #1,ob_hitpoints(a5) + ble playerdie + st ob_update(a5) + bra redpal + ; +.newok2 move.l d6,ob_x(a5) + move.l d7,ob_z(a5) +.newok ; + bsr checksuck + bsr checkevent ;in an event zone? + bsr rotplayer ;rotate + bsr moveplayer ;forward/back/strafe +checkfire ; + move cheat(pc),d0 + beq.s .nocheat + ; + qkey $5f ;help????? + beq.s .noend + move #3,finished + rts +.noend key 10 + beq.s .nohealth + bsr inchealth + bra.s .nocheat +.nohealth move.b (a0),d1 + moveq #5,d0 +.loop btst d0,d1 + bne.s .gotch + subq #1,d0 + bne.s .loop + bra.s .nocheat +.gotch ; + subq #1,d0 + bsr weapond0 + ; +.nocheat bsr checkfireb + beq .nofire + tst.b ob_reloadcnt(a5) + bne .nofire2 + ; + move ob_collwith(a5),d2 + and #3,d2 + eor #3,d2 ;colltype + moveq #0,d3 ;collwith! + ; + move ob_weapon(a5),d0 + mulu #18,d0 + lea wtable(pc),a0 + movem 0(a0,d0),d4-d6 + movem.l 6(a0,d0),a2-a3 + move.l 14(a0,d0),-(a7) + ; + tst ob_mega(a5) + beq.s .nomega + ; + cmp #ok,ob_mega(a5) + bcc.s .threeway + ; + movem.l d2-d6/a2-a3,-(a7) + addq #4,ob_rot(a5) + bsr shoot + movem.l (a7)+,d2-d6/a2-a3 + subq #8,ob_rot(a5) + bsr shoot + addq #4,ob_rot(a5) + bra.s .shdone +.threeway ; + movem.l d2-d6/a2-a3,-(a7) + addq #8,ob_rot(a5) + bsr shoot + movem.l (a7),d2-d6/a2-a3 + sub #16,ob_rot(a5) + bsr shoot + movem.l (a7)+,d2-d6/a2-a3 + addq #8,ob_rot(a5) + ; +.nomega bsr shoot + ; +.shdone move.l (a7)+,a0 + move.l (a0),a0 + moveq #32,d0 + moveq #0,d1 + bsr playsfx + ; + move.b ob_reload(a5),ob_reloadcnt(a5) + rts + ; +.nofire tst.b ob_reloadcnt(a5) + beq.s .rts +.nofire2 subq.b #1,ob_reloadcnt(a5) +.rts rts + + ; + ;hitpoints + ;damage + ;speed + ; +wtable dc 1,1,32 + dc.l bullet1,sparks1,shootsfx3 + dc 5,2,36 + dc.l bullet2,sparks2,shootsfx5 + dc 10,2,40 + dc.l bullet3,sparks3,shootsfx + dc 15,3,40 + dc.l bullet4,sparks4,shootsfx4 + dc 20,5,24 + dc.l bullet5,sparks5,shootsfx5 + +adjustposq ; + neg d0 + move d0,d1 + ; + muls zo_a(a4),d0 + add.l d0,d0 + ; + muls zo_b(a4),d1 + add.l d1,d1 + ; + sub.l d0,d6 + sub.l d1,d7 + ; + rts + +adjustpos bsr adjustposq + ; + ;addq #1,(a4) + ;move.l a4,-(a7) + bsr checknewslow + ;move.l (a7)+,a3 + ;addq #1,(a3) + tst d1 + rts + +checkfireb move joyb(pc),d0 + beq.s .nofire + tst ob_lastbut(a5) + bne.s .skip + move d0,ob_lastbut(a5) + rts +.skip moveq #0,d0 + rts +.nofire clr ob_lastbut(a5) + rts + +eventobj dc.l 0 + +calcbounce ;calculate bounce vector...poly in a4, obj in a5 + ; + ;R=2 N (N dot V) - V + ; + ;where R=reflect vector, N=normal to poly, V=original vector + ; + subq #1,ob_bouncecnt(a5) + bge.s .nok + bsr makesparksq + bra killobject +.nok ; + move.l closewall(pc),a4 + movem ob_nxvec(a5),d0-d1 ;normalized dir + movem zo_na(a4),d2-d3 ;normal to poly + neg d2 + ; + ;calc dot product: + ; + move d0,d4 + muls d2,d4 + move d1,d5 + muls d3,d5 + add.l d5,d4 + add.l d4,d4 + swap d4 ;dot product? + ; + muls d4,d2 + lsl.l #2,d2 + swap d0 + clr d0 + sub.l d0,d2 + swap d2 + ; + muls d4,d3 + lsl.l #2,d3 + swap d1 + clr d1 + sub.l d1,d3 + swap d3 + ; + movem d2-d3,ob_nxvec(a5) + ; + neg d2 + muls ob_movspeed(a5),d2 + add.l d2,d2 + muls ob_movspeed(a5),d3 + add.l d3,d3 + ; + movem.l d2-d3,ob_xvec(a5) + ; + bsr checkvecs + beq.s putfire + bra calcbounce + +firelogic ; + bsr checkvecs + bne calcbounce +putfire ; + addq #1,ob_frame(a5) + move ob_frame(a5),d0 + move.l ob_shape(a5),a0 + cmp 2(a0),d0 + bcs.s .skip + clr ob_frame(a5) +.skip ; + rts + +moveblood lea blood(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + tst bl_y(a5) + ble.s .do + ; + move.l sucking(pc),d0 + beq.s .kill + ; + move.l bl_xvec(a5),d0 + add.l d0,bl_x(a5) + move.l bl_zvec(a5),d1 + add.l d1,bl_z(a5) + ; + move.l bl_dest(a5),a0 + move bl_x(a5),d0 + sub ob_x(a0),d0 + muls d0,d0 + move bl_z(a5),d1 + sub ob_z(a0),d1 + muls d1,d1 + add.l d1,d0 + cmp.l #64*64,d0 + bcc.s .loop + bra.s .kill + ; +.do add.l #$8000,bl_yvec(a5) + ; + movem.l bl_xvec(a5),d0-d2 + add.l d1,bl_y(a5) + blt.s .ok + ; +.kill move.l a5,a0 + killitem blood + move.l a0,a5 + bra .loop + ; +.ok add.l d0,bl_x(a5) + add.l d2,bl_z(a5) + bra .loop + ; +.done rts + +scrnblood dc 0 + +drawblood clr scrnblood + move #$20,$dff09a + lea blood(pc),a5 + ; +.loop move.l (a5),a5 + tst.l (a5) + beq .done + ; + move bl_color(a5),d6 + beq.s .loop ;already splatted on screen if 0! + ; + move bl_x(a5),d0 + sub camx(pc),d0 + move bl_y(a5),d1 + ble.s .blok + neg d1 +.blok sub camy(pc),d1 + move bl_z(a5),d2 + sub camz(pc),d2 + ; + ;rotate x/z around cam... + ; + move d0,d3 + move d2,d5 + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 ;X + ; + muls cm3(pc),d3 + muls cm4(pc),d2 + add.l d3,d2 + add.l d2,d2 + swap d2 ;Z + ; + tst d2 + beq .loop + cmp #maxz,d2 + bcc .loop + ; + ext.l d0 + lsl.l #focshft,d0 + divs d2,d0 + cmp minx(pc),d0 + blt .loop + cmp maxx(pc),d0 + bge .loop + ; + ext.l d1 + lsl.l #focshft,d1 + divs d2,d1 + cmp miny(pc),d1 + blt .loop + cmp maxy(pc),d1 + bge .loop + ; + cmp #40,d2 + bcc.s .pix + tst bl_y(a5) + bgt.s .pix + ; + ;blood on screen! + ; + st scrnblood + clr bl_color(a5) + bra .loop +.pix ; + add midx(pc),d0 + add midy(pc),d1 + ; + move.l darktable(pc),a0 + move 0(a0,d2*2),d3 + ; + move.l chunky(pc),a1 + ; + lea coloffs,a2 + add.l 0(a2,d0*4),a1 + mulu chunkymod(pc),d1 + ; + move blcols(pc,d3*2),d3 + and d6,d3 + move d3,0(a1,d1.l) + bra .loop + ; +.done move #$8020,$dff09a + ; + move scrnblood(pc),d0 + beq.s .rts + clr scrnblood + ; + bsr rndw2 + and #3,d0 + add #51,d0 + move d0,d2 ;splat# + ; + move.l window(pc),a0 + move wi_bh(a0),d0 + subq #8,d0 + bsr rndn2 + move d0,d3 ;Y + ; + move wi_bw(a0),d0 + subq #8,d0 + bsr rndn2 + add wi_x(a0),d0 ;X + ; + move d3,d1 + move.l wi_bmap(a0),a1 + move.l font(pc),a0 + bra blit + ; +.rts rts + +blcols dc $ccc,$bbb,$aaa,$999,$888,$777,$666,$555 + dc $444,$333,$222,$111,$111,$111,$111,$111 + +shaperender dc.l drawobjnorm ;default! + +drawshape_1sc ;draw shape with one frame, scaled! + ; + move.l ob_shape(a5),a0 + move ob_frame(a5),d0 + add.l 12(a0,d0*4),a0 + move ob_scale(a5),d7 + bra drawshape + +drawshape_1 ; + move.l ob_shape(a5),a0 + move ob_frame(a5),d0 + add.l 12(a0,d0*4),a0 + move #$200,d7 ;scale + bra drawshape + +drawshape_8 ; + ;shape has 8 rotations, and a scale! + ; + bsr calcangle2 + add #16,d0 + sub ob_rot(a5),d0 + lsr #5,d0 + and #7,d0 + move ob_frame(a5),d1 + lsl #3,d1 + or d1,d0 + move.l ob_shape(a5),a0 + move ob_scale(a5),d7 + add.l 12(a0,d0*4),a0 + ; +drawshape move ob_x(a5),d0 + move ob_y(a5),d1 + move ob_z(a5),d2 +drawshape_q ; + ;A0=shape + ;D0=X + ;D1=Y + ;D2=Z + ;D7=sclae factor + ; + ;rotate Z around camera! + ; + sub camx(pc),d0 + sub camy(pc),d1 + sub camz(pc),d2 + ; + move d0,d3 + move d2,d5 + muls cm3(pc),d3 + muls cm4(pc),d2 + add.l d3,d2 + add.l d2,d2 + swap d2 + ; + tst d2 + ble .rts + cmp #maxz,d2 + bcc .rts + ; + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 + ; + move.l memat(pc),a1 + add.l #sh_size,memat + movem d0-d2,sh_x(a1) + move.l a0,sh_shape(a1) + move d7,sh_scale(a1) + move.l shaperender(pc),sh_render(a1) + ; + lea shapelist(pc),a2 +.loop move.l (a2),d0 + beq.s .end + move.l a2,a3 + move.l d0,a2 + cmp sh_z(a2),d2 ;nearer...further in list + ble.s .loop + move.l a2,(a1) + move.l a1,(a3) + rts +.end move.l d0,(a1) + move.l a1,(a2) +.rts rts + +checknew2 ;check trigger zone + move.l map_grid(pc),a0 + addq #4,a0 + bra.s checknew_ + +gs equ 1< furthest wall list. + ; + ;optimizations... + ;check if both z's are negative after rotation + ;check if projected left/rite ends are on screen + ; + bsr incframe + ; + clr.l inlist + move.l #inlist,inlistf + ; + move.l map_poly(pc),a4 + move.l map_ppnt(pc),a3 + move.l map_grid(pc),a2 + movem camx(pc),d6-d7 ;x,z + lsr #grdshft,d6 + lsr #grdshft,d7 + lea gridoffs(pc),a6 + moveq #(gridoffsf-gridoffs)>>2-1,d5 + ; +.loop movem (a6)+,d0-d1 + add d6,d0 + cmp #32,d0 + bcc .skip + add d7,d1 + cmp #32,d1 + bcc .skip + ; + ;d0,d1=x/z of map to check! + ; + lsl #5,d1 ;Y*32... + add d1,d0 ;+X + lea 0(a2,d0*8),a0 ;mapgrid + move (a0)+,d4 ;how many polys here + bmi .skip + move (a0),d0 ;poly data offset + lea 0(a3,d0*2),a0 + ; +.loop2 move (a0)+,d0 ;poly# + lsl #5,d0 + lea 0(a4,d0),a1 ;actual poly + ; + bsr dothezone + ; + dbf d4,.loop2 ;finish sq + ; +.skip dbf d5,.loop ;gridoffs + ; + ;now do rots/morphs... + ; + lea rotpolys(pc),a3 + ; +.loop3 move.l (a3),a3 + tst.l (a3) + beq.s .rpdone + ; + move.l rp_first(a3),a4 + move rp_num(a3),d4 + subq #1,d4 + ; +.loop4 move.l a4,a1 + bsr dothezone2 + ; + lea 32(a4),a4 + dbf d4,.loop4 + ; + bra.s .loop3 +.rpdone ; +makeoutlist ;create outlist from inlist + ; + clr.l outlist + move.l #outlist,outlistf + ; +.loop lea inlist(pc),a0 + move.l (a0),d0 + beq .done + move.l a0,a2 ;save previous! + move.l d0,a0 + ; + ;OK, see if any are in front of a0... + ; + lea inlist(pc),a1 + ; +.loop2 move.l (a1),d0 + beq .none + move.l a1,a3 + move.l d0,a1 + cmp.l a0,a1 + beq.s .loop2 ;don't compare with self! + ; + ;check screen pos overlap... + ; + move wl_rsx(a0),d0 + cmp wl_lsx(a1),d0 + blt .loop2 + ; + move wl_lsx(a0),d1 + cmp wl_rsx(a1),d1 + bgt .loop2 + ; + ;check near/far Z overlap + ; + move wl_nz(a1),d2 + cmp wl_fz(a0),d2 + bge .loop2 ;behind! + ; + move wl_fz(a1),d2 + cmp wl_nz(a0),d2 + ble .swap + ; + tst wl_open(a1) + bne .swap + ; + ;look at a0 points against a1 line... + ; + movem wl_a(a1),d5-d6 + move.l wl_c(a1),d7 + ; + move wl_lx(a1),d0 + sub wl_lx(a0),d0 + muls d5,d0 + move wl_lz(a1),d1 + sub wl_lz(a0),d1 + muls d6,d1 + add.l d1,d0 + eor.l d7,d0 + ; + move wl_lx(a1),d1 + sub wl_rx(a0),d1 + muls d5,d1 + move wl_lz(a1),d2 + sub wl_rz(a0),d2 + muls d6,d2 + add.l d2,d1 + eor.l d7,d1 + ; + ;if both a0 in front, no swap + ; + move.l d0,d4 + or.l d1,d4 + bpl .loop2 ;both a0's in front of a1! + ; + ;if both a0 behind, swap + ; + and.l d1,d0 + bmi .swap ;both a0's behind a1! + ; + ;look at a1 points against a0 line! + ; + movem wl_a(a0),d5-d6 + move.l wl_c(a0),d7 + ; + move wl_lx(a0),d2 + sub wl_lx(a1),d2 + muls d5,d2 + move wl_lz(a0),d3 + sub wl_lz(a1),d3 + muls d6,d3 + add.l d3,d2 + eor.l d7,d2 + ; + move wl_lx(a0),d3 + sub wl_rx(a1),d3 + muls d5,d3 + move wl_lz(a0),d4 + sub wl_rz(a1),d4 + muls d6,d4 + add.l d4,d3 + eor.l d7,d3 + ; + move.l d2,d4 + and.l d3,d4 + bmi .loop2 ;both a1's behind a0! + ; + or.l d3,d2 + bmi .loop2 + ; +.swap move.l a1,a0 + move.l a3,a2 + bra .loop2 + ; +.none ;OK, none in front of this (a0) + ; + move.l (a0),(a2) ;unlink from inlist + clr.l (a0) + ; + move.l outlistf(pc),a2 + move.l a0,(a2) + move.l a0,outlistf + bra .loop + ; +.done rts + +dothezone2 ; + move frame(pc),d0 + cmp zo_done(a1),d0 + beq.s .rts + move d0,zo_done(a1) + tst zo_open(a1) + bmi.s .rts + ; + movem d4-d7,-(a7) + ; + movem zo_lx(a1),d0-d3 ;x1,z1,x2,z2 + movem camx(pc),d6-d7 + ; + move #maxz,d4 + move d4,d5 + neg d5 + ; + sub d6,d0 + cmp d4,d0 + bge.s .rts2 + cmp d5,d0 + ble.s .rts2 + ; + sub d7,d1 + cmp d4,d1 + bge.s .rts2 + cmp d5,d1 + ble.s .rts2 + ; + sub d6,d2 + cmp d4,d2 + bge.s .rts2 + cmp d5,d2 + ble.s .rts2 + ; + sub d7,d3 + cmp d4,d3 + bge.s .rts2 + cmp d5,d3 + bgt dothezone3 ;.rts2 + ; +.rts2 movem (a7)+,d4-d7 + ; +.rts rts + +dothezone ; + move frame(pc),d0 + cmp zo_done(a1),d0 + beq rts ;.skip3 + move d0,zo_done(a1) + tst zo_open(a1) + bmi rts ;.skip3 + ; + ;OK, setup: + ; + ;d0=lx,d1=lz,d2=rx,d3=rz + ;d4=t,d5=sc,d6=dist + ; + ;back face/dist check... + ; + movem d4-d7,-(a7) + ; + movem zo_lx(a1),d0-d3 ;x1,z1,x2,z2 + movem camx(pc),d6-d7 + ; + sub d6,d0 + sub d7,d1 + sub d6,d2 + sub d7,d3 + ; +dothezone3 move d0,d4 + move d1,d5 + muls cm1(pc),d0 + muls cm2(pc),d5 + add.l d5,d0 + add.l d0,d0 + swap d0 + ; + muls cm3(pc),d4 + muls cm4(pc),d1 + add.l d4,d1 + add.l d1,d1 + swap d1 ;LZ + ; + move d2,d4 + move d3,d5 + muls cm1(pc),d2 + muls cm2(pc),d5 + add.l d5,d2 + add.l d2,d2 + swap d2 ;RX + ; + muls cm3(pc),d4 + muls cm4(pc),d3 + add.l d4,d3 + add.l d3,d3 + swap d3 ;RZ + ; + ;check Z's... + tst d1 + bgt.s .zok + tst d3 + ble .skip2 +.zok ; + cmp #maxz,d1 + blt.s .zok2 + cmp #maxz,d3 + bge .skip2 +.zok2 ; + ;do backface check...generate a,b,c... + ; + rol.l #exshft,d0 + rol.l #exshft,d1 + rol.l #exshft,d2 + rol.l #exshft,d3 + ; + move d1,d4 + sub d3,d4 ;a + move d2,d5 + sub d0,d5 ;b + ; + move d0,d6 + muls d4,d6 + move d1,d7 + muls d5,d7 + add.l d7,d6 + bpl.s .front + ; + ;backface showing!... + bra .skip2 +.front ; + move.l memat(pc),a5 + ; + movem d0-d5,wl_lx(a5) + move.l d6,wl_c(a5) + ; + ;work out some screen positions! + tst d1 + bgt.s .z1ok + ; + ;lz bad, rz must be OK... + ; +.ov1 move minx(pc),wl_lsx(a5) + bra.s .z1sk + ; +.z1ok ext.l d0 + lsl.l #focshft,d0 + divs d1,d0 + bvs.s .ov1 + subq #1,d0 + cmp maxx(pc),d0 + bge .skip2 + move d0,wl_lsx(a5) +.z1sk ; + tst d3 + bgt.s .z2ok + ; + ;rz bad, lz must be OK... + ; +.ov2 move maxx(pc),wl_rsx(a5) + bra.s .z2sk + ; +.z2ok ext.l d2 + lsl.l #focshft,d2 + divs d3,d2 + bvs.s .ov2 + addq #1,d2 + cmp minx(pc),d2 + blt .skip2 + move d2,wl_rsx(a5) +.z2sk ; + cmp d1,d3 + bge.s .zskp + exg d1,d3 +.zskp movem d1/d3,wl_nz(a5) ;near/far Z + ; + move.l zo_t(a1),wl_t(a5) + move.l zo_t+4(a1),wl_t+4(a5) + move zo_sc(a1),wl_sc(a5) + move zo_open(a1),wl_open(a5) + ; + ;add to end of inlist... + ; + clr.l (a5) + move.l inlistf(pc),a1 + move.l a5,(a1) + move.l a5,inlistf + add.l #wl_size,memat + ; +.skip2 movem (a7)+,d4-d7 + ; +.skip3 rts + + elseif + +makeoutlist2 ;create outlist from inlist + ; +.loop0 lea inlist(pc),a0 + ; +.loop move.l (a0),d0 + beq .done + move.l a0,a2 ;save previous! + move.l d0,a0 + ; + ;OK, see if any are in front of a0... + ; + lea inlist(pc),a1 + ; +.loop2 move.l (a1),d0 + beq .none + move.l a1,a3 + move.l d0,a1 + ; + cmp.l a0,a1 + beq.s .loop2 ;don't compare with self! + ; + ;see if a1 is in front of a0 + ; + move wl_nz(a1),d0 + cmp wl_fz(a0),d0 + bge .loop2 ;behind! + ; + move wl_fz(a1),d0 + cmp wl_nz(a0),d0 + ble .swap + ; + ;now, compare screen x coords..... + ; + move wl_rsx(a0),d0 + cmp wl_lsx(a1),d0 + blt .loop2 + ; + move wl_lsx(a0),d0 + cmp wl_rsx(a1),d0 + bgt .loop2 + ; + ;look at a0 points against a1 line + ; + ;If Sgn((x3-x1)*a2+(y3-y1)*b2)<>Sgn(c2) + ; If Sgn((x3-x2)*a2+(y3-y2)*b2)<>Sgn(c2) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + movem wl_a(a1),d5-d6 + move.l wl_c(a1),d7 + ; + move wl_lx(a1),d0 + sub wl_lx(a0),d0 + muls d5,d0 + move wl_lz(a1),d1 + sub wl_lz(a0),d1 + muls d6,d1 + add.l d1,d0 + eor.l d7,d0 + ; + move wl_lx(a1),d1 + sub wl_rx(a0),d1 + muls d5,d1 + move wl_lz(a1),d2 + sub wl_rz(a0),d2 + muls d6,d2 + add.l d2,d1 + eor.l d7,d1 + ; + ;OK, screen X's overlap... + ;if both a0 in front, no swap + ; + move.l d0,d4 + or.l d1,d4 + bpl .loop2 + ; + ;if both a0 behind, swap + ; + move.l d0,d4 + and.l d1,d4 + bmi .swap + ; + ;bra .loop2 + ; + ;elseif + ;look at a1 points against a0 line + ; + ;If Sgn((x1-x3)*a1+(y1-y3)*b1)=Sgn(c1) + ; If Sgn((x1-x4)*a1+(y1-y4)*b1)=Sgn(c1) + ; tr=-1:Return + ; EndIf + ;EndIf + ; + movem wl_a(a0),d5-d6 + move.l wl_c(a0),d7 + ; + move wl_lx(a0),d2 + sub wl_lx(a1),d2 + muls d5,d2 + move wl_lz(a0),d3 + sub wl_lz(a1),d3 + muls d6,d3 + add.l d3,d2 + eor.l d7,d2 + ; + move wl_lx(a0),d3 + sub wl_rx(a1),d3 + muls d5,d3 + move wl_lz(a0),d4 + sub wl_rz(a1),d4 + muls d6,d4 + add.l d4,d3 + eor.l d7,d3 + ; + ;if both a1's behind, no swap + ; + move.l d2,d4 + and.l d3,d4 + bmi .loop2 ;both a1's behind... + ; + ;if both a1's in front, swap + move.l d2,d4 + or.l d3,d4 + bpl .swap + ; + bra .loop2 + ; + ;elseif + ; +.swap ;a1 is infront of a0! make a1 new frontmost + bra .loop + move.l a1,a0 + move.l a3,a2 + bra .loop2 + ; +.none ;OK, none in front of this (a0) + ; + move.l (a0),(a2) ;unlink from inlist + clr.l (a0) + move.l outlistf(pc),a2 + move.l a0,(a2) + move.l a0,outlistf + bra .loop0 + ; +.done ;move.l inlist(pc),d0 + ;bne .loop0 + rts + + elseif + +castwalls ;process 'walls' list + ; + move.l castrots(pc),a6 + move minx(pc),d7 + lea 0(a6,d7*8),a6 + move.l vertdraws(pc),a4 + ; +.loop ;do this vert line! + ; + lea outlist(pc),a5 + ; +.loop2 move.l (a5),d0 + beq .empty + move.l a5,a3 ;previous + move.l d0,a5 + ; + cmp wl_lsx(a5),d7 + blt.s .loop2 ;not up to left yet! + ; + cmp wl_rsx(a5),d7 + ble.s .try + ; + ;past right! unlink! + move.l (a5),(a3) + bra.s .loop2 +.try ; + movem wl_lx(a5),d0-d1 + muls (a6),d0 + muls 2(a6),d1 + add.l d1,d0 ;LX! + bgt.s .loop2 + ; + movem wl_rx(a5),d1-d2 + muls (a6),d1 + muls 2(a6),d2 + add.l d2,d1 ;RX! + blt.s .loop2 + ; + sub.l d0,d1 + ; + swap d1 + tst d1 + ble.s .dfix + neg.l d0 + divu d1,d0 + bvc.s .noov +.dfix moveq #-1,d0 +.noov lsr #1,d0 ;fraction -> unsigned + ; + cmp wl_open(a5),d0 + bcs.s .loop2 + ; + movem wl_lx(a5),d1-d2 + muls 4(a6),d1 + muls 6(a6),d2 + add.l d2,d1 + add.l d1,d1 ;lz + ; + movem wl_rx(a5),d2-d3 + muls 4(a6),d2 + muls 6(a6),d3 + add.l d3,d2 + add.l d2,d2 ;rz + ; + sub.l d1,d2 + swap d2 + muls d0,d2 + add.l d2,d2 + add.l d1,d2 + ; + swap d2 + ; + cmp #exone,d2 + blt .loop2 + cmp #maxz<LUT + move.l planar_palette,a6 + ; +.vloop move.b 0(a3,d1),d5 + beq.s .skip + ; + move.b 0(a2,d5),d5 ;ghost colour! + move 0(a6,d5*4),d5 ;to RGB + and d2,d5 + ; + moveq #0,d3 + move.b (a4),d3 + move 0(a6,d3*4),d3 ;to RGB + and d2,d3 + ; + add d3,d5 + lsr #1,d5 + move.b 0(a5,d5),(a4) + moveq #0,d5 + ; +.skip add.l d6,d1 ;next src Y + addx d0,d1 ;xtend + add.l d7,a4 + dbf d4,.vloop + ; + movem.l (a7)+,d0-d5/a5-a6 + ; +.zbad add.l d5,d0 + moveq #0,d7 + addx.l d7,d0 ;next src X + lea vd_size(a6),a6 + ; + dbf d3,.hloop + ; + rts + +drawobjnorm ;normal draw object... + ; +.hloop move.l a1,a4 + add.l (a5)+,a4 + ; + cmp vd_z(a6),d2 + bcs.s .zok + ; + tst thermo + beq.s .zbad + ; + bsr thermostrip + bra.s .zbad + ; +.zok movem.l d0-d1/d4-d5,-(a7) + ; + mulu (a0),d0 + lea 2(a0,d0),a3 ;src + ; + move.l chunkymod(pc),d7 + moveq #0,d5 + moveq #0,d0 + ; + sub d6,d1 + add.l d6,d1 + ; +.vloop move.b 0(a3,d1),d5 + beq.s .skip + move.b 0(a2,d5),(a4) +.skip addx.l d6,d1 ;next src Y + add.l d7,a4 + dbf d4,.vloop + ; + movem.l (a7)+,d0-d1/d4-d5 + ; +.zbad add.l d5,d0 + moveq #0,d7 + addx.l d7,d0 ;next src X + lea vd_size(a6),a6 + ; + dbf d3,.hloop + ; + rts + +thermostrip movem.l d0-d2/d4-d5,-(a7) + ; + mulu (a0),d0 + lea 2(a0,d0),a3 ;src + ; + move chunkymodw(pc),d7 + ext.l d7 + moveq #0,d5 + moveq #0,d0 + move #$00f,d2 + ; + sub d6,d1 + add.l d6,d1 + ; +.vloop move.b 0(a3,d1),d5 + beq.s .skip + ; + move 0(a2,d5*2),d5 + and d2,d5 + move d5,(a4) + ; +.skip addx.l d6,d1 ;next src Y + add.l d7,a4 + dbf d4,.vloop + ; + movem.l (a7)+,d0-d2/d4-d5 + ; + rts + +renderwalls ; + move.l chunkymod(pc),d0 + move.l vertdraws(pc),a0 + move.l palette(pc),a2 + lea palettes,a2 + lea coloffs(pc),a6 + ; + move width(pc),d7 + subq #1,d7 + ; +.loop move.l (a6)+,a1 + add.l chunky(pc),a1 + ; + drawsolidstrip + ; + lea vd_size(a0),a0 + dbf d7,.loop + ; + rts + +solidstrip set 0 +drawstrip2 ; + ;drawstrip_ + ; + rts + + dc $f0ff,$ff0f,$fff0 + dc $f00f,$f0f0,$ff00 + dc $ffff + ; +stripands ;red,green,blue,yel,pur,cyn,wht + +vwait tst os + bne.s .osvwait + move #1,vbcounter +.loop tst vbcounter + bgt.s .loop + rts +.osvwait movem.l d0-d1/a0-a1/a6,-(a7) + move.l grbase(pc),a6 + jsr -270(a6) + movem.l (a7)+,d0-d1/a0-a1/a6 + rts + +;************** DATA *************************** + +data + +active dc.l 0 ;is game input active? +temppal dc.l 0 +todb dc.l 0 +topokepal dc.l 0 +gloomcfg dc.l 0 +gloom dc.l 0 ;incbin title +gloompal dc.l 0 ;incbin title.pal +gloombrush dc.l 0 ;incbin gloombrush + +panel dc.l 0 +panelcnt dc.l 0 ;non zero = do c2p for panel. +offset dc.l 0 ;planar bitmap offset + +os dc os_ +aga dc aga_ + +bitplanes dc 0 +colours dc 0 +linemod dc 0 +linemodw dc 320 +bpmod dc 0 +bpmodw dc 40 + +bmaphite dc 240,0 +bmapmem dc.l 0 + +chunkymod dc 0 +chunkymodw dc testw ;128 pixels width +planar_c2p dc.l 0 ;routines! +c2p dc.l 0 ;the biggy +chunky dc.l 0 ;chunky buffer +bitmaps dc.l 0 ;bitmap memory +bitmaps2 dc.l 0 ;second bitmap +showbitmap dc.l 0 ;bitmap displayed +drawbitmap dc.l 0 ;used bitmap + ; +magic dc.l 0 +magicpal dc.l 0 +combat dc.l 0 +combatpal dc.l 0 + ; +gloomdata dc 0 ;non-zero = datadisk there! +cheat dc 0 ;cheat mode on? +fontw dc 0 +fonth dc 0 +mode dc 0 +chatok dc 0 + +lastgrunt dc.l 0 + +grunttable dc.l gruntsfx,gruntsfx2,gruntsfx3,gruntsfx4 + +splatsfx dc.l 0 +diesfx dc.l 0 +footstepsfx dc.l 0 +doorsfx dc.l 0 +tokensfx dc.l 0 +gruntsfx dc.l 0 +gruntsfx2 dc.l 0 +gruntsfx3 dc.l 0 +gruntsfx4 dc.l 0 + ; +shootsfx dc.l 0 +shootsfx2 dc.l 0 +shootsfx3 dc.l 0 +shootsfx4 dc.l 0 +shootsfx5 dc.l 0 +telesfx dc.l 0 +ghoulsfx dc.l 0 +lizsfx dc.l 0 +lizhitsfx dc.l 0 +trollsfx dc.l 0 +trollhitsfx dc.l 0 +robotsfx dc.l 0 +robodiesfx dc.l 0 +dragonsfx dc.l 0 + +chipzero dc.l 0 + +outhand dc.l 0 + + ;starting positions! + ; +p1x dc 0 +p1z dc 0 +p1r dc 0 + dc 0 + +p2x dc 0 +p2z dc 0 +p2r dc 0 + dc 0 + +p1health dc 0 +p1weapon dc 0 +p1lives dc 0 +p1reload dc 0 + +p2health dc 0 +p2weapon dc 0 +p2lives dc 0 +p2reload dc 0 + +map_test dc.l 0 + + ifne cd32 +gloomgame dc.l gloomgame2 + elseif +gloomgame dc.l 0 + endc + +script dc.l 0 +scriptat dc.l 0 +minbpos dc 0 +maxbpos dc 0 +finished dc 0 +finished2 dc 0 + ; +floorflag dc 1 ;-1 = (black), 0 = split, 1=txt +roofflag dc 1 + ; +floorflag2 dc -1 +roofflag2 dc -1 + ; +floor dc.l 0 +roof dc.l 0 + ; + dc 0 +paused dc $ff00 +gametype dc 0 ;0,1,2 +linked dc 0 ;linked, 2 player modem game +twowins dc 0,0 + ; +font dc.l 0 +bigfont_ dc.l 0 +smallfont_ dc.l 0 + ; + cnop 0,4 + +thermo dc 0 ;thermograph +infra dc 0 ;infrared + ; +maptable dc.l 0 +sqr dc.l sqrinc +darktable dc.l 0 +inlist dc.l 0 +inlistf dc.l inlist +outlist dc.l 0 +outlistf dc.l outlist + +window dc.l 0 +dummy dc.l 0 + +player_ dc.l 0 ;current player! + +player1 dc.l 0 +player2 dc.l 0 +doneflag dc 0 +showflag dc 0 +memory dc.l 0 +memat dc.l 0 +shapelist dc.l 0 +bitmap dc.l 0 + +planar_palette dc.l 0 +planar_remap dc.l 0 + +palette dc.l palettes + +palettes ds.l 16 ;16 shade palettes + ;each 256 bytes long. +map_map dc.l 0 +map_grid dc.l 0 +map_poly dc.l 0 +map_ppnt dc.l 0 +map_rgbs dc.l 0 ;pointer to current RGB +map_txts dc.l 0 +map_anim dc.l 0 +map_events dc.l 0 + +rgb_info dc.l 0 +rgb_rgbs dc.l 0 + ; +map_rgbsat dc.l 0 +map_rgbsat2 dc.l 0 +map_rgbsfrom dc.l 0 +map_rgbsfrom2 dc.l 0 +remapped dc.l 0 + ; +camx dc 0 +camz dc 0 +camy dc 0 +camr dc 0 + + ;camera matrix... +cm1 dc $7ffe +cm2 dc 0 +cm3 dc 0 +cm4 dc $7ffe + + ;inverse of camera matrix... +icm1 dc $7ffe +icm2 dc 0 +icm3 dc 0 +icm4 dc $7ffe + +castrots dc.l castrotsinc+8*160 +camrots dc.l camrotsinc +camrots2 dc.l camrots2inc + +vertdraws dc.l 0 + +width dc testw +hite dc testh +minx dc -testw/2 +midx ; +maxx dc testw/2 +miny dc -testh/2 +midy ; +maxy dc testh/2 +wdiv32 dc 0 +wrem32 dc 0 + +coplist dc.l 0 +slice1 dc.l 0 +slice2 dc.l 0 +copstop dc.l 0 + +memlist dc.l 0 + +dispnest dc 0 + +coloffs ds.l 320 ;320 columns max + +iffwindow ; + dc.l slice1 + dc.l copstop + ; + dc 0 ;x + dc 42 ;y + dc 320 ;w + dc 248 ;h + dc 1 ;pw + dc 1 ;ph + ; + dc 0,0 + dc.l 0 + dc.l 0 + ; + dc.l 0 + dc.l 0 + dc.l 0 + dc.l 0 + dc 0 + dc.l 0,0,0 + +defwindow1_1p ; + dc.l slice1 + dc.l copstop + ; + elseif + dc 160-126 ;45*2 + dc cy-120 ;45*2 + dc 126 ;max width for 2 high = 90! + dc 80 + dc 2 + dc 3 + elseif + ; + dc 160-90 + dc cy-90 + dc 90 + dc 90 + dc 2 + dc 2 + ;elseif + ; + dc 0,0 + dc.l 0 + dc.l 0 + ; + dc.l 0 + dc.l 0 + dc.l 0 + dc.l 0 + dc 0 + dc.l 0,0,0 + +defwindow1_2p ; + dc.l slice1 + dc.l slice2 + ; + dc 160-33*2 + dc cy-124 + dc 66 ;max width for 2 high = 90! + dc 60 + dc 2 + dc 2 + ; + dc 0,0 + dc.l 0 + dc.l 0 + ; + dc.l 0 + dc.l 0 + dc.l 0 + dc.l 0 + dc 0 + dc.l 0,0,0 + +defwindow2_2p ; + dc.l slice2 + dc.l copstop + ; + dc 160-33*2 + dc cy + dc 66 + dc 60 + dc 2 + dc 2 + ; + dc 0,0 + dc.l 0 + dc.l 0 + ; + dc.l 0 + dc.l 0 + dc.l 0 + dc.l 0 + dc 0 + dc.l 0,0,0 + +window1 ; + dc.l slice1 + dc.l slice2 ;copstop here for 1 window + ; + dc 160-33*2 + dc 42 + dc 66 ;max width for 2 high = 90! + dc 60 + dc 2 + dc 2 + ; + dc 0,0 + dc.l 0 + dc.l 0 + ; + dc.l 0 + dc.l 0 + dc.l 0 + dc.l 0 + dc 0 + dc.l 0,0,0 + +window2 ; + dc.l slice2 + dc.l copstop + ; + dc 160-33*2 + dc 165 + dc 66 + dc 60 + dc 2 + dc 2 + ; + dc 0,0 + dc.l 0 + dc.l 0 + ; + dc.l 0 + dc.l 0 + dc.l 0 + dc.l 0 + dc 0 + dc.l 0,0,0 + +bigdata + +textscrns ds.l 8 ;texture screens +textures ds.l 160 ;individual txts (20/screen) + +;************** SLOW SUBS ********************** + +slowsubs + +;MOVE d1,d4:LSL #8,d1:MOVE.b d4,d1:MOVE d1,d4:SWAP d1:MOVE d4,d1 +;MOVE d2,d4:LSL #8,d2:MOVE.b d4,d2:MOVE d2,d4:SWAP d2:MOVE d4,d2 +;MOVE d3,d4:LSL #8,d3:MOVE.b d4,d3:MOVE d3,d4:SWAP d3:MOVE d4,d3 +;;EXT.l d0:MOVE.l (a0),a0:LEA 44(a0),a0:JMP -$354(a6) +;LEA table(pc),a1:MOVE.b d0,3(a1):MOVEM.l d1-d3,4(a1) +;MOVE.l (a0),a0:LEA 44(a0),a0:JMP -$372(a6) +;table:Dc.l $00010000,0,0,0,0 + +lastpal dc.l 0 + +pokelastpal move.l lastpal(pc),a1 + ; +pokepal ;a1=palette to poke + ; + move.l a1,lastpal + move colours(pc),d0 +pokepal2 ; + move.l topokepal(pc),a0 + jmp (a0) + +to32 macro + move \1,d5 + lsl #8,\1 + move.b d5,\1 + move \1,d5 + swap \1 + move d5,\1 + endm + +pokepal_os ; + ;OS version! + ; + move.l temppal(pc),a0 + move d0,(a0)+ ;how many + clr (a0)+ ;first colour + subq #1,d0 + ; +.loop move (a1)+,d1 ;hi nyb + move d1,d2 + move d1,d3 + move d1,d4 + tst aga + beq.s .skip + move (a1)+,d4 + ; +.skip move d4,d5 + and #$f00,d1 + lsr #4,d1 + and #$f00,d5 + lsr #8,d5 + or d5,d1 + to32 d1 + ; + move d4,d5 + and #$0f0,d2 + and #$0f0,d5 + lsr #4,d5 + or d5,d2 + to32 d2 + ; + and #$00f,d3 + lsl #4,d3 + and #$00f,d4 + or d4,d3 + to32 d3 + ; + movem.l d1-d3,(a0) + lea 12(a0),a0 + dbf d0,.loop + clr.l (a0) + ; + move.l viewport(pc),a0 + move.l temppal(pc),a1 + move.l grbase(pc),a6 + jmp -$372(a6) + +pokepal_ecs move.l coplist,a2 + lea palette_ecs-copinit_ecs(a2),a2 + subq #1,d0 +.loop0 move (a1)+,2(a2) + addq #4,a2 + dbf d0,.loop0 + rts + +pokepal_aga move.l coplist,a2 + lea palette_aga-copinit_aga(a2),a2 + subq #1,d0 + move d0,d2 + and #31,d2 +.loop move d2,d1 +.loop2 move (a1)+,6(a2) + move (a1)+,132+6(a2) + addq #4,a2 + dbf d1,.loop2 + lea 264-128(a2),a2 + dbf d0,.loop + rts + +decodeiff ; + ;a0=trimmed IFF file + ;a1=dest bitmap + ; + move.l bpmod(pc),d7 + ; + move (a0)+,d0 ;pixel width + lsr #3,d0 ;to byte width + move (a0)+,d1 ;pixel height + cmp #240,d1 + bls.s .hok + move #240,d1 +.hok subq #1,d1 ;to dbf + move (a0)+,d2 ;depth + subq #1,d2 ;to dbf + addq #6,a0 ;skip header + ; +.loop5 move d2,d5 ;depth + move.l a1,-(a7) ;start of newline + ; +.loop4 move.l a1,a2 + move d0,d4 ;how many bytes in line + ; +.loop moveq #0,d3 + move.b (a0)+,d3 + bmi.s .repeat + sub d3,d4 +.loop3 move.b (a0)+,(a2)+ + dbf d3,.loop3 + bra.s .skip + ; +.repeat cmp.b #-128,d3 + beq.s .loop + neg.b d3 + sub d3,d4 +.loop2 move.b (a0),(a2)+ + dbf d3,.loop2 + addq #1,a0 +.skip subq #1,d4 + bgt.s .loop + ; + add.l d7,a1 + dbf d5,.loop4 + ; + move bitplanes(pc),d3 + subq #1,d3 + sub d2,d3 + ble.s .noxs + subq #1,d3 + moveq #0,d5 +.c move.l a1,a2 + moveq #9,d4 ;clear a line +.cc move.l d5,(a2)+ + dbf d4,.cc + add.l d7,a1 + dbf d3,.c +.noxs ; + move.l (a7)+,a1 + add.l linemod(pc),a1 + dbf d1,.loop5 + ; + rts + +copypic movem.l showbitmap,a0-a1 + move.l bmapmem(pc),d1 + lsr.l #2,d1 + subq #1,d1 +.loop move.l (a0)+,(a1)+ + dbf d1,.loop + rts + +clspic move.l drawbitmap,a1 + move.l bmapmem(pc),d1 + lsr.l #2,d1 + subq #1,d1 + moveq #0,d0 +.loop move.l d0,(a1)+ + dbf d1,.loop + bra db + +showpic ;a0=trimmed IFF file, a1=palette + ; + movem.l a0-a1,-(a7) + bsr clspic ;show a blank bitmap + bsr vwait + movem.l (a7),a0-a1 + move.l drawbitmap(pc),a1 + bsr decodeiff + movem.l (a7)+,a0-a1 + bsr pokepal + bsr db + bra vwait + + ifne cd32 + +applname dc.b 'Gloom',0 + even +itemname dc.b 'Games',0 + even + +gloomgame2 dc.b 'gamegamegamegamegame' + +nvname dc.b 'nonvolatile.library',0 + cnop 0,4 +nv dc.l 0 + +savegloomgame ; + move.l nv,d0 + beq.s .done + ; + move.l d0,a6 + lea applname(pc),a0 + lea itemname(pc),a1 + lea gloomgame2(pc),a2 + moveq #2,d0 ;20 bytes + moveq #-1,d1 + jsr -42(a6) ;storenv + tst.l d0 + bne.s .done ;error! + ; + lea applname(pc),a0 + lea itemname(pc),a1 + moveq #-1,d1 + moveq #1,d2 + jsr -66(a6) ;setnvprotection + ; +.done rts + +loadgloomgame move.l nv,d0 + beq.s .done + ; + move.l d0,a6 + lea applname(pc),a0 + lea itemname(pc),a1 + moveq #-1,d1 + jsr -30(a6) ;getcopnv + tst.l d0 + beq.s .done + ; + move.l d0,a0 + lea gloomgame2(pc),a1 + moveq #4,d1 ;5 longs=20 bytes +.loop move.l (a0)+,(a1)+ + dbf d1,.loop + ; + move.l d0,a0 + jsr -36(a6) ;freenvdata + ; +.done rts + + endc + +flushc ;flush cache! + ; + movem.l a0-a1/d0-d1/a6,-(a7) + move.l 4.w,a6 + cmp #636,16(a6) + bcs.s .skip + jsr -636(a6) +.skip movem.l (a7)+,a0-a1/d0-d1/a6 + rts + +findanglesign ;d1=angle I'm at ; d0=angle I wanna be at...return sign + ;(bmi, bpl) of add to get there + ;return cc (mi,pl) and d0.w (for tst) of sign to get there! + ; + and #255,d0 + and #255,d1 + sub d0,d1 + bpl.s .plus + ; + moveq #1,d0 + cmp #-128,d1 + bgt.s .rts + neg d0 +.rts neg d0 + rts + ; +.plus moveq #1,d0 ;+ + cmp #128,d1 + bge.s .rts2 + neg d0 +.rts2 neg d0 + rts + +checklock cmp #2,d0 + bgt.s .max + cmp #-2,d0 + bge.s .rts + moveq #-2,d0 +.rts rts +.max moveq #2,d0 + rts + +locklogic ;locking on to defender machine + ; + bsr playertimers ;do timer stuff... + bsr getcntrl ;player control + ; + moveq #0,d2 ;how many locked + move ob_x(a5),d0 + sub ob_telex(a5),d0 + bne.s .lockx + addq #1,d2 + bra.s .lockx2 +.lockx bsr checklock + sub d0,ob_x(a5) +.lockx2 ; + move ob_z(a5),d0 + sub ob_telez(a5),d0 + bne.s .lockz + addq #1,d2 + bra.s .lockz2 +.lockz bsr checklock + sub d0,ob_z(a5) +.lockz2 ; + move ob_rot(a5),d1 + move ob_telerot(a5),d0 + bsr findanglesign + ; + move ob_rot(a5),d1 + sub ob_telerot(a5),d1 + and #255,d1 + bne.s .lockrot + addq #1,d2 + bra.s .lockrot2 +.lockrot cmp #4,d1 + bls.s .skip + cmp #256-4,d1 + bcs.s .four + or #$ff00,d1 + neg d1 + bra.s .skip +.four moveq #4,d1 +.skip tst d0 + bmi.s .skip2 + neg d1 +.skip2 add d1,ob_rot(a5) + ; +.lockrot2 bsr unbounce + tst ob_bounce(a5) + bne.s .rts + ; + subq #3,d2 + bne.s .rts + ; + clr ob_rotspeed(a5) + move.l #playdefender,ob_logic(a5) + ; + move.b floortag(pc),d0 + sub.b #49,d0 ;'1'->0 + ext d0 + move ltk(pc,d0*2),landerstokill + move lnd(pc,d0*2),landerdelay + ; + move #3,playerlives + ; + bra initnewdef + ; +.rts rts + +ltk dc 20,35,50 +lnd dc 25,20,15 + +playdefender bsr atmachine + bsr defender + move landerstokill(pc),d0 + ble.s .win + move playerlives(pc),d0 + ble.s .lose + rts +.win addq #1,ob_lives(a5) + move #-1,ob_update(a5) + tst gametype + beq.s .lose + jsr getother + tst ob_lives(a0) + beq.s .lose + addq #1,ob_lives(a0) + move #-1,ob_update(a0) +.lose move #96,ob_delay(a5) + move.l #waittolive,ob_logic(a5) + rts + +waittolive bsr atmachine + bsr defender + subq #1,ob_delay(a5) + bgt.s .rts + move.l #playerlogic,ob_logic(a5) +.rts rts + +atmachine ;standing at machine logic + ; + bsr playertimers ;do timer stuff... + bsr getcntrl ;player control + ; + ;OK, rotate slightly in front of machine! + ; + move joyx(pc),d0 + bne.s .rot + move ob_rotspeed(a5),d0 + bpl.s .rp + addq #2,ob_rotspeed(a5) + ble.s .rotdone + clr ob_rotspeed(a5) + bra.s .rotdone +.rp subq #2,ob_rotspeed(a5) + bge.s .rotdone + clr ob_rotspeed(a5) + bra.s .rotdone +.rot bgt.s .rplus + subq #1,ob_rotspeed(a5) + cmp #-8,ob_rotspeed(a5) + bge.s .rotdone + move #-8,ob_rotspeed(a5) + bra.s .rotdone +.rplus addq #1,ob_rotspeed(a5) + cmp #8,ob_rotspeed(a5) + ble.s .rotdone + move #8,ob_rotspeed(a5) +.rotdone ; + move ob_rotspeed(a5),d0 + move d0,d4 + add ob_telerot(a5),d0 + move d0,ob_rot(a5) + ; + move d4,d5 + add d4,d4 + add d5,d4 + add d4,d4 + ; + sub #64,d0 + and #255,d0 + move.l camrots(pc),a0 + lea 0(a0,d0*8),a0 + move d4,d5 + muls 2(a0),d4 + neg.l d4 + swap d4 + muls 6(a0),d5 + swap d5 + add ob_telex(a5),d4 + add ob_telez(a5),d5 + move d4,ob_x(a5) + move d5,ob_z(a5) + rts + +maxdefobjects equ 128 + + rsreset + ; +de_next rs.l 1 +de_prev rs.l 1 +de_xa rs.l 1 +de_ya rs.l 1 +de_x rs.l 1 +de_y rs.l 1 +de_shape rs.w 1 +de_delay rs.w 1 +de_colltype rs.w 1 +de_collwith rs.w 1 +de_logic rs.l 1 + ; +de_size rs.b 0 + +defshapes ; + dc 65,36,6,3 ;0 + dc 65,40,6,3 ;1 + dc 66,44,3,1 ;2 + dc 66,46,3,1 ;3 + dc 72,37,5,5 ;4 + dc 84,37,1,1 ;5 + dc 86,39,1,1 ;6 + dc 81,39,1,1 ;7 + dc 79,37,1,1 ;8 + dc 71,44,2,1 ;9 + dc 65,49,15,12 ;10 + dc 86,49,11,10 ;11 + dc 79,42,2,5 ;12 + dc 85,42,2,5 ;13 + +landerstoadd dc 10 ;how manylanders left! +landerstokill dc 10 +landerdelay dc 25 ;wait between landers +landercnt dc 1 + ; +defstack dc.l 0 +deflbut dc.l 0 ;last button status! +playerxa dc.l 0 ;x speed! +playerx dc 0,0 +playery dc 14,0 +playershape dc 0 +playerlives dc 0 + +movedefplayer move joyx(pc),d0 + beq.s .nox + bpl.s .xrite + move #1,playershape + sub.l #$8000,playerxa + bpl.s .xmore + cmp.l #-$30000,playerxa + bge.s .xdone + move.l #-$30000,playerxa + bra.s .xdone +.xmore sub.l #$4000,playerxa + bra.s .xdone + ; +.xrite clr playershape + add.l #$8000,playerxa + ble.s .xmore2 + cmp.l #$30000,playerxa + ble.s .xdone + move.l #$30000,playerxa + bra.s .xdone +.xmore2 add.l #$4000,playerxa + bra.s .xdone + ; +.nox ;to rest! + move.l playerxa(pc),d0 + beq.s .xdone + bpl.s .xp + add.l #$1000,playerxa + ble.s .xdone + clr.l playerxa +.xp sub.l #$1000,playerxa + bge.s .xdone + clr.l playerxa +.xdone ; + move.l playerxa(pc),d0 + add.l d0,playerx + and #255,playerx + ; + move joyy(pc),d0 + add d0,playery + cmp #1,playery + blt.s .yf + cmp #34,playery + blt.s .ydone + move #34,playery + bra.s .ydone +.yf move #1,playery +.ydone ; + move joyb(pc),d0 + beq .nofire + move deflbut(pc),d0 + bne .rts + st deflbut + ; + addfirst defobjects + beq.s .rts + move.l #$20000,d0 ;bullet speed! + move playershape(pc),d1 + beq.s .rite + neg.l d0 +.rite add.l playerxa(pc),d0 + move.l d0,de_xa(a0) + move playerx(pc),de_x(a0) + move playery(pc),de_y(a0) + addq #1,de_y(a0) + move playershape(pc),d0 + addq #2,d0 + move d0,de_shape(a0) + move #2,de_colltype(a0) + move.l #defbull,de_logic(a0) + move #12,de_delay(a0) + move.l shootsfx3(pc),a0 + moveq #32,d0 + moveq #0,d1 + bra playsfx + ; +.nofire clr deflbut +.rts rts + +deffrag add.l #$1000,de_ya(a5) + move.l de_ya(a5),d0 + add.l d0,de_y(a5) + cmp #36,de_y(a5) + bge killdefobject + move.l de_xa(a5),d0 + add.l d0,de_x(a5) + and #255,de_x(a5) + rts + +impfrag subq #1,de_delay(a5) + ble killdefobject + move.l de_xa(a5),d0 + add.l d0,de_x(a5) + and #255,de_x(a5) + move.l de_ya(a5),d0 + add.l d0,de_y(a5) + rts + +blowuplander move.l diesfx(pc),a0 + moveq #64,d0 + moveq #1,d1 + bsr playsfx + subq #1,landerstokill + moveq #7,d7 ;8 pixel exp +.loop2 addlast defobjects + beq killdefobject + move de_x(a5),de_x(a0) + move de_y(a5),de_y(a0) + bsr rndw + ext.l d0 + lsl.l #1,d0 + move.l d0,de_xa(a0) + bsr rndw + ext.l d0 + lsl.l #1,d0 + move.l d0,de_ya(a0) + move d7,d0 + and #1,d0 + addq #5,d0 + move d0,de_shape(a0) + move.l #deffrag,de_logic(a0) + move #15,de_delay(a0) + clr de_colltype(a0) + dbf d7,.loop2 + bra killdefobject + +blowupplayer moveq #3,d7 + ; +.loop move.l robodiesfx(pc),a0 + moveq #64,d0 + moveq #2,d1 + bsr playsfx + dbf d7,.loop + ; + moveq #31,d7 +.loop2 addlast defobjects + beq .rts + move playerx(pc),de_x(a0) + move playery(pc),de_y(a0) + bsr rndw + ext.l d0 + lsl.l #1,d0 + move.l d0,de_xa(a0) + bsr rndw + ext.l d0 + lsl.l #1,d0 + move.l d0,de_ya(a0) + move d7,d0 + and #1,d0 + addq #7,d0 + move d0,de_shape(a0) + move.l #deffrag,de_logic(a0) + move #15,de_delay(a0) + clr de_colltype(a0) + dbf d7,.loop2 +.rts move #-1,playershape + subq #1,playerlives + rts + +landerwait subq #1,de_delay(a5) + ble.s .skip + rts +.skip move.l #landerlogic,de_logic(a5) + move #4,de_shape(a5) +landerlogic ; + move playershape(pc),d0 + bmi .done + ; + move de_x(a5),d0 + move d0,d2 + move de_y(a5),d1 + move d1,d3 + ; + sub playerx(pc),d0 + bpl.s .skipn1 + neg d0 +.skipn1 cmp #6,d0 + bcc.s .chk + sub playery(pc),d1 + bpl.s .skipn2 + neg d1 +.skipn2 cmp #4,d1 + bcs blowupplayer + ; + ;check if shot! +.chk lea defobjects(pc),a0 +.loop move.l (a0),a0 + tst.l (a0) + beq .done + move de_colltype(a0),d0 + beq.s .loop + ; + move d2,d0 + sub de_x(a0),d0 + bpl.s .skip + neg d0 +.skip cmp #6,d0 + bcc.s .loop + ; + move d3,d1 + sub de_y(a0),d1 + bpl.s .skip2 + neg d1 +.skip2 cmp #4,d1 + bcc.s .loop + ; + ;BOOM! + ; + bra blowuplander +.done ; + move de_x(a5),d0 + sub playerx(pc),d0 + and #255,d0 + cmp #128,d0 + bcs.s .left + ; + ;go right-ish! + ; + add.l #$4000,de_xa(a5) + cmp.l #$10000,de_xa(a5) + ble.s .xdone + move.l #$10000,de_xa(a5) + bra.s .xdone + ; +.left sub.l #$4000,de_xa(a5) + cmp.l #-$10000,de_xa(a5) + bge.s .xdone + move.l #-$10000,de_xa(a5) + ; +.xdone move.l de_xa(a5),d0 + add.l d0,de_x(a5) + and #255,de_x(a5) + ; + move de_y(a5),d0 + sub playery(pc),d0 + bpl.s .up + ; + ;down + ; + add.l #$2000,de_ya(a5) + cmp.l #$8000,de_ya(a5) + ble.s .ydone + move.l #$8000,de_ya(a5) + bra.s .ydone + ; +.up sub.l #$2000,de_ya(a5) + cmp.l #-$8000,de_ya(a5) + bge.s .ydone + move.l #-$8000,de_ya(a5) + ; +.ydone move.l de_ya(a5),d0 + add.l d0,de_y(a5) + ; + rts + +defbull subq #1,de_delay(a5) + ble.s killdefobject + move.l de_xa(a5),d0 + add.l d0,de_x(a5) + and #255,de_x(a5) + rts + +killdefobject move.l a5,a0 + killitem defobjects + move.l a0,a5 + move.l defstack(pc),a7 + bra def_loop + +initnewdef move landerdelay(pc),landercnt + move landerstokill(pc),landerstoadd + clearlist defobjects + clr.l playerx + clr.l playerxa + clr playershape + move #18,playery + rts + +defender ;defender game! + ; + move.l a5,-(a7) + ; + move landerstoadd(pc),d0 + beq .nolander + subq #1,landercnt + bgt .nolander + ; + ;add a lander! + ; + addlast defobjects + beq .nolander + subq #1,landerstoadd + move landerdelay(pc),landercnt + ; + bsr rndw + and #255,d0 + move d0,d2 + move d0,de_x(a0) + moveq #32,d0 + bsr rndn + move d0,d3 + move d0,de_y(a0) + move #5,de_shape(a0) + clr.l de_xa(a0) + clr.l de_ya(a0) + move.l #landerwait,de_logic(a0) + move #32,de_delay(a0) + clr de_colltype(a0) + ; + ;OK, now add lander fragments! + ; + moveq #7,d7 + ; +.frloop addlast defobjects + beq.s .nolander + ; + bsr rndw + ext.l d0 + lsl.l #1,d0 ;xadd + move.l d0,d4 + move.l d0,de_xa(a0) + bsr rndw + ext.l d0 + lsl.l #1,d0 + move.l d0,d5 + move.l d0,de_ya(a0) + ; + neg.l d4 + lsl.l #5,d4 + swap d4 + add d2,d4 + and #255,d4 + move d4,de_x(a0) + neg.l d5 + lsl.l #5,d5 + swap d5 + add d3,d5 + move d5,de_y(a0) + ; + move d7,d0 + and #1,d0 + addq #5,d0 + move d0,de_shape(a0) + move.l #impfrag,de_logic(a0) + move #32,de_delay(a0) + clr de_colltype(a0) + dbf d7,.frloop + ; +.nolander move playershape(pc),d0 + bmi.s .dead + bsr movedefplayer +.dead ; + move playerx(pc),d0 + sub #22,d0 + bsr drawmounts + ; + ;OK, scanner time! + ; + moveq #5,d0 + moveq #3,d1 + moveq #12,d2 + bsr drawsprite + moveq #39,d0 + moveq #3,d1 + moveq #13,d2 + bsr drawsprite + move playery(pc),d1 + lsr #3,d1 + addq #1,d1 + moveq #22,d0 + moveq #7,d2 + bsr drawsprite + ; + lea defobjects(pc),a5 +.scanloop move.l (a5),a5 + tst.l (a5) + beq.s .scandone + cmp #4,de_shape(a5) + bne.s .scanloop + move de_x(a5),d0 + sub playerx(pc),d0 + lsr #3,d0 + move de_y(a5),d1 + lsr #3,d1 + add #16,d0 + and #31,d0 + addq #6,d0 + addq #1,d1 + moveq #5,d2 + bsr drawsprite + bra.s .scanloop +.scandone ; + move.l a7,defstack + lea defobjects(pc),a5 + ; +def_loop move.l (a5),a5 + tst.l (a5) + beq.s .done + ; + move.l de_logic(a5),a0 + jsr (a0) + ; + move de_x(a5),d0 + sub playerx(pc),d0 + and #255,d0 + cmp #128,d0 + bcs.s .nob + or #$ff00,d0 +.nob add #22,d0 + move de_y(a5),d1 + move de_shape(a5),d2 + bsr drawsprite + ; + bra.s def_loop +.done ; + move playershape(pc),d0 + bmi.s .dead + ; + move landerstokill(pc),d0 + bgt.s .bye2 + subq #1,landerstokill + subq #1,d0 + and #$10,d0 + beq.s .bye2 + moveq #22,d0 + moveq #18,d1 + moveq #11,d2 + bsr drawsprite +.bye2 ; + moveq #22,d0 + move playery(pc),d1 + move playershape(pc),d2 + bsr drawsprite + bra.s .bye + ; +.dead subq #1,playershape + cmp #-96,playershape + bcc.s .no + move playerlives(pc),d3 + beq.s .gameover + ; + bsr initnewdef + bra.s .bye + ; +.no move playerlives(pc),d3 + bne.s .showlives +.gameover and #$10,d2 + beq.s .exit + moveq #22,d0 + moveq #18,d1 + moveq #10,d2 + bsr drawsprite + bra.s .exit + ; +.bye move playerlives(pc),d3 + beq.s .exit +.showlives subq #1,d3 + moveq #1,d1 + ; +.lives moveq #2,d0 + moveq #9,d2 + movem d1/d3,-(a7) + bsr drawsprite + movem (a7)+,d1/d3 + addq #2,d1 + dbf d3,.lives + ; +.exit move.l (a7)+,a5 + rts + +drawsprite ;d0=x, d1=y, d2=shape + ; + exg d0,d2 + move d1,d3 + lea defshapes(pc),a0 + movem 0(a0,d0*8),d0-d1/d4-d5 + ; + ;d0=src x, d1=src y, d2=dest x,d3=dest y,d4=w, d5=h + ; + sub #64,d0 + movem.l deftxt(pc),a0-a1 + add d0,d1 + lsl #6,d0 + add d0,d1 + add d1,a1 + ; + ;handles... + move d4,d0 + lsr #1,d0 + sub d0,d2 + move d5,d1 + lsr #1,d1 + sub d1,d3 + ; + tst d2 + bmi.s .xmi + move d2,d0 + add d4,d0 + sub #44,d0 + ble.s .xok + sub d0,d4 + bgt.s .xok +.xrts rts +.xmi add d2,d4 ;reduce width + ble.s .xrts + move d2,d0 + lsl #6,d2 + add d0,d2 + sub d2,a1 + bra.s .xdone +.xok move d2,d0 + lsl #6,d2 + add d0,d2 + add d2,a0 +.xdone ; + tst d3 + bmi.s .ymi + move d3,d0 + add d5,d0 + sub #36,d0 + ble.s .yok + sub d0,d5 + bgt.s .yok +.yrts rts +.ymi add d3,d5 ;reduce width + ble.s .yrts + sub d3,a1 + bra.s .ydone +.yok add d3,a0 +.ydone ; + moveq #65,d7 + sub d5,d7 + subq #1,d4 ;w + subq #1,d5 ;h +.loop move d5,d6 +.loop2 move.b (a1)+,d0 + beq.s .col0 + move.b d0,(a0) +.col0 addq #1,a0 + dbf d6,.loop2 + add.l d7,a0 + add.l d7,a1 + dbf d4,.loop + ; + rts + +drawmounts ;d0=offset + ; + ;parallax top 25, bottom 11 + ; + move d0,d2 + lsr #1,d0 + ; + and #63,d0 + movem.l deftxt(pc),a0-a1 + move d0,d1 + lsl #6,d1 + add d0,d1 ;* 65 + add d1,a1 + ; + ;OK, draw mountains at d0 + ; + moveq #65-25,d7 + move.l #64*65,d6 + moveq #43,d1 ;w + ; +.loop move.b (a1)+,(a0)+ ;to even address - 1 + move (a1)+,(a0)+ ;to long address - 3 + move.l (a1)+,(a0)+ ;7 + move.l (a1)+,(a0)+ ;11 + move.l (a1)+,(a0)+ ;15 + move.l (a1)+,(a0)+ ;19 + move.l (a1)+,(a0)+ ;23 + move (a1)+,(a0)+ ;25! + ; + add.l d7,a0 + add.l d7,a1 + addq #1,d0 + and #63,d0 + bne.s .skip + sub.l d6,a1 +.skip dbf d1,.loop + ; + move d2,d0 + and #63,d0 + ; + movem.l deftxt(pc),a0-a1 + move d0,d1 + lsl #6,d1 + add d0,d1 ;* 65 + add d1,a1 + lea 25(a0),a0 ;bottom 25! + lea 25(a1),a1 + ; + ;OK, draw mountains at d0 + ; + moveq #65-11,d7 + moveq #43,d1 ;w + ; +.loop2 move (a1)+,(a0)+ ;2 + move.l (a1)+,(a0)+ ;6 + move.l (a1)+,(a0)+ ;10 + move.b (a1)+,(a0)+ ;11 + ; + add.l d7,a0 + add.l d7,a1 + addq #1,d0 + and #63,d0 + bne.s .skip2 + sub.l d6,a1 +.skip2 dbf d1,.loop2 + ; + rts + +chatmap dc.l 0 +chatxout dc 0 +chatxin dc 0 + +chatontxt dc.b 'CHAT MODE ENABLED',0 + even + +chatcls move.l chatmap,a0 + moveq #0,d0 + move #20*2*5-1,d1 +.loop move.l d0,(a0)+ + dbf d1,.loop + clr.l chatxout + rts + +chaton ;enable chat mode! + ; + tst linked + beq .rts + tst chatok + bne .rts + ; + bsr chatcls + lea chatontxt(pc),a2 +.loop move.b (a2)+,d0 + beq.s .done + moveq #3,d1 + bsr chatprintout + bra.s .loop +.done clr chatoutput + clr chatoutget + clr chatinput + clr chatinget + st chatok + ; +.rts rts + +chatoff ;disable chat mode + ; + tst linked + beq.s chatoffrts + tst chatok + beq.s chatoffrts + ; +dochatoff sf chatok + bsr chatcls + ; +chatoffrts rts + +chatscrollin ;scroll chatin window across a byte. + ; + move d2,-(a7) + move.l chatmap,a0 + lea 40(a0),a0 + bra.s chatsc + +chatscrollout ;scroll chatout window across a byte. + ; + move d2,-(a7) + move.l chatmap,a0 +chatsc moveq #4,d0 ;5 lines to scroll +.loop3 moveq #1,d1 ;2 bitpanes +.loop2 moveq #38,d2 ;39 chars to move... +.loop move.b 1(a0),(a0)+ + dbf d2,.loop + clr.b (a0)+ + lea 40(a0),a0 + dbf d1,.loop2 + dbf d0,.loop3 + move (a7)+,d2 + rts + +chatspcout cmp #40,chatxout + bcc.s chatscrollout + addq #1,chatxout + rts + +calcchar ext d0 + cmp #'A',d0 + bcs.s .notal + and #31,d0 + add #9,d0 + rts +.notal cmp #'.',d0 + bne.s .not1 + moveq #36,d0 + rts +.not1 cmp #'!',d0 + bne.s .not2 + moveq #37,d0 + rts +.not2 cmp #'?',d0 + bne.s .not3 + moveq #38,d0 + rts +.not3 cmp #',',d0 + bne.s .not4 + moveq #39,d0 + rts +.not4 sub #48,d0 + rts + +chatprintout ;d0.b=chr$() to print, d1=colour (1,2,3) + ; + cmp.b #32,d0 + beq.s chatspcout + bsr calcchar + ; + movem.l d2/a2,-(a7) + ; + cmp #40,chatxout + bcs.s .nosc + ; + movem d0-d1,-(a7) + bsr chatscrollout + movem (a7)+,d0-d1 + subq #1,chatxout +.nosc ; + lea chatfont,a0 + ext d0 + add d0,a0 + move.l chatmap,a1 ;bp1 + add chatxout(pc),a1 + addq #1,chatxout + cmp #1,d1 + beq.s .skip + lea 80(a1),a2 + cmp #2,d1 + beq.s .skip2 + move.l a2,a1 +.skip move.l a1,a2 +.skip2 moveq #4,d0 ;5 lines +.loop move.b (a0),(a1) + move.b (a0),(a2) + lea 40(a0),a0 + lea 160(a1),a1 + lea 160(a2),a2 + dbf d0,.loop + ; + movem.l (a7)+,d2/a2 + rts + +chatspcin cmp #40,chatxin + bcc chatscrollin + addq #1,chatxin + rts + +chatprintinhex move d0,-(a7) + lsr #4,d0 + bsr .skip + move (a7)+,d0 + ; +.skip and #15,d0 + add #48,d0 + cmp #58,d0 + bcs.s chatprintin + addq #7,d0 + ; +chatprintin ;d0.b=chr$() to print, d1=colour (1,2,3) + ; + cmp.b #32,d0 + beq.s chatspcin + bsr calcchar + ; + movem.l d2/a2,-(a7) + ; + cmp #40,chatxin + bcs.s .nosc + ; + movem d0-d1,-(a7) + bsr chatscrollin + movem (a7)+,d0-d1 + subq #1,chatxin +.nosc ; + lea chatfont,a0 + ext d0 + add d0,a0 + move.l chatmap,a1 ;bp1 + add chatxin(pc),a1 + lea 40(a1),a1 + addq #1,chatxin + cmp #1,d1 + beq.s .skip + lea 80(a1),a2 + cmp #2,d1 + beq.s .skip2 + move.l a2,a1 +.skip move.l a1,a2 +.skip2 moveq #4,d0 ;5 lines +.loop move.b (a0),(a1) + move.b (a0),(a2) + lea 40(a0),a0 + lea 160(a1),a1 + lea 160(a2),a2 + dbf d0,.loop + ; + movem.l (a7)+,d2/a2 + rts + +;-------------- serial stuff -------------------; + +sblen equ 128 ;serial buffer length + +initser push + ; + clr rget + clr rput + clr rbfcnt + clr chatcnt + ; + move.l 4.w,a6 + moveq #11,d0 + lea rbfintserver(pc),a1 + jsr -162(a6) + ; + move #$0801,$dff09c + move #$0001,$dff09a ;no tbe int. + move #$8800,$dff09a ;rbf int only + ; + pull + rts + +finitser push + ; + move #$0801,$dff09a + move #$0801,$dff09c + ; + move.l 4.w,a6 + moveq #11,d0 + sub.l a1,a1 + jsr -162(a6) + ; + pull + rts + +serput ;send byte in d0 + ; +;.wait btst #4,$dff018 +; beq.s .wait + ; + move #1,$dff09c + ; + and #$ff,d0 + or #$100,d0 + move d0,$dff030 + ; +.wait btst #0,$dff01f + beq.s .wait + move #1,$dff09c + ; + rts + +rbfchk ;return ne if something there! + ; + move rbfcnt(pc),d0 + rts + +serwait bsr rbfchk + beq.s serwait + ; +serget lea rbuff(pc),a0 + move rget(pc),d0 + and #sblen-1,d0 + move.b 0(a0,d0),d0 + addq #1,rget + subq #1,rbfcnt + ; + rts + +chatcnt dc 0 +rbfcnt dc 0 + +rbf ;receive buffer full interupt + ; + ;a1=rbuff + ; + movem.l d0-d1/a0-a1,-(a7) + ; + move $dff018,d0 ;ser byte + bmi .fuck + move #$800,$dff09c + ; + move chatok(pc),d1 + beq.s .chskip + bclr #6,d0 + beq.s .chskip + add.b #32,d0 + ; + lea chatin(pc),a1 + move chatinput(pc),d1 + and #31,d1 + move.b d0,0(a1,d1) + addq #1,chatinput + addq #1,chatcnt + bra.s .bye + ; +.chskip lea rbuff(pc),a1 + move rput(pc),d1 + and #sblen-1,d1 + move.b d0,0(a1,d1) + addq #1,rput + addq #1,rbfcnt + ; +.bye movem.l (a7)+,d0-d1/a0-a1 + rts + ; +.fuck warn #$f00 ;ser overflow error! + warn #$fff + bra.s .fuck + +rbuff ds.b sblen +rput dc 0 +rget dc 0 + +medat dc.l 0 +titlemed dc.l 0 +loadingmed dc.l 0 +fadevol dc 0 ;non-zero=fade to 0! + +relocate ;a0=pointer to what to relocate + ; + bsr flushc + ; + move.l (a0),d0 + beq .rts + move.l d0,a1 + add.l #32,(a0) + lea 28(a1),a0 + move.l (a0)+,d0 + lea 0(a0,d0.l*4),a1 + cmp.l #$3ec,(a1)+ + bne.s .rts + move.l (a1)+,d0 + addq #4,a1 + move.l a0,d2 + ; +.loop move.l (a1)+,d1 ;offset + add.l d2,0(a0,d1) + subq.l #1,d0 + bne.s .loop + ; +.rts bsr flushc + ; + rts + +initmed lea medat,a0 + tst.l (a0) + bne.s .noreloc + ; + move.l #medplayer,(a0) + bsr relocate + ; +.noreloc move.l medat(pc),a1 + move.l chipzero(pc),a0 + jsr (a1) + ; + move.l medat(pc),a1 + move.l titlemed(pc),a0 + jsr 4(a1) + ; + move.l loadingmed(pc),d0 + beq.s .no + move.l d0,a0 + move.l medat(pc),a1 + jsr 4(a1) +.no ; + rts + +agafiles dc.l gloom + dc.b 'pics/title',0 + even + dc.l gloompal + dc.b 'pics/title.pal',0 + even + dc.l gloombrush + dc.b 'pics/gloombrush',0 + even + dc.l planar_palette + dc.b 'misc/palette_8',0 + even + dc.l planar_remap + dc.b 'misc/remap_8',0 + even + dc.l 0 + +ecsfiles dc.l gloom + dc.b 'pics_ehb/title',0 + even + dc.l gloompal + dc.b 'pics_ehb/title.pal',0 + even + dc.l planar_palette + dc.b 'misc/palette_6',0 + even + dc.l planar_remap + dc.b 'misc/remap_6',0 + even + dc.l 0 + +progfiles dc.l gloomcfg + dc.b 'gloomcfg',0 + even + dc.l bigfont_+1 + dc.b 'misc/bigfont2.bin',0 + even + dc.l panel + dc.b 'misc/smallfont2.bin',0 + even + dc.l titlemed+1 + dc.b 'sfxs/med1',0 + even + dc.l loadingmed+1 + dc.b 'sfxs/med2',0 + even + dc.l shootsfx+1 + dc.b 'sfxs/shoot.bin',0 + even + dc.l shootsfx2+1 + dc.b 'sfxs/shoot2.bin',0 + even + dc.l shootsfx3+1 + dc.b 'sfxs/shoot3.bin',0 + even + dc.l shootsfx4+1 + dc.b 'sfxs/shoot4.bin',0 + even + dc.l shootsfx5+1 + dc.b 'sfxs/shoot5.bin',0 + even + dc.l gruntsfx+1 + dc.b 'sfxs/grunt.bin',0 + even + dc.l gruntsfx2+1 + dc.b 'sfxs/grunt2.bin',0 + even + dc.l gruntsfx3+1 + dc.b 'sfxs/grunt3.bin',0 + even + dc.l gruntsfx4+1 + dc.b 'sfxs/grunt4.bin',0 + even + dc.l tokensfx+1 + dc.b 'sfxs/token.bin',0 + even + dc.l doorsfx+1 + dc.b 'sfxs/door.bin',0 + even + dc.l footstepsfx+1 + dc.b 'sfxs/footstep.bin',0 + even + dc.l diesfx+1 + dc.b 'sfxs/die.bin',0 + even + dc.l splatsfx+1 + dc.b 'sfxs/splat.bin',0 + even + dc.l telesfx+1 + dc.b 'sfxs/teleport.bin',0 + even + dc.l ghoulsfx+1 + dc.b 'sfxs/ghoul.bin',0 + even + dc.l lizsfx+1 + dc.b 'sfxs/lizard.bin',0 + even + dc.l lizhitsfx+1 + dc.b 'sfxs/lizhit.bin',0 + even + dc.l trollsfx+1 + dc.b 'sfxs/trollmad.bin',0 + even + dc.l trollhitsfx+1 + dc.b 'sfxs/trollhit.bin',0 + even + dc.l robotsfx+1 + dc.b 'sfxs/robot.bin',0 + even + dc.l robodiesfx+1 + dc.b 'sfxs/robodie.bin',0 + even + dc.l dragonsfx+1 + dc.b 'sfxs/dragon.bin',0 + even + dc.l 0 + +datafiles dc.l script +scriptname dc.b 'misc/script',0 + even + ; + ifeq cd32 + dc.l gloomgame +gamename dc.b 'gloomgame',0 + even + endc + ; + dc.l 0 + +loadfiles ; + push + move.l a0,a2 + ; +.loop move.l (a2)+,d0 + beq.s .done + moveq #1,d1 + bclr #0,d0 + beq.s .nochip + moveq #2,d1 +.nochip move.l d0,a3 + move.l a2,a0 + bsr loadfile + move.l d0,(a3) +.z tst.b (a2)+ + bne.s .z + exg a2,d0 + addq.l #1,d0 + bclr #0,d0 + exg a2,d0 + bra.s .loop + ; +.done pull + rts + +diskmenu dc.b 1 + dc.b 'please insert gloom data disk',0 + even + +magicfiles dc.l magic + dc.b 'pics/blackmagic',0 + even + dc.l 0 + +agamagicfiles dc.l magicpal + dc.b 'pics/blackmagic.pal',0 + even + dc.l 0 + +ecsmagicfiles dc.l magicpal + dc.b 'pics_ehb/blackmagic.pal',0 + even + dc.l 0 + +initmain ; + ;calc stuff from aga/os settings + ; + moveq #8,d0 ;bitplanes + move #256,d1 ;colours + move.l #320,d2 ;linemod + move.l #40,d3 ;bpmod + lea db_aga,a0 + lea pokepal_aga,a1 + tst aga + bne.s .aga1 + moveq #6,d0 + moveq #32,d1 + move.l #240,d2 + lea db_ecs,a0 + lea pokepal_ecs,a1 +.aga1 tst os + beq.s .os1 + moveq #40,d2 ;linemod + move.l #40*240,d3 ;bpmod + lea db_os,a0 + lea pokepal_os,a1 +.os1 ; + move d0,bitplanes + move d1,colours + move.l d2,linemod + move.l d3,bpmod + move.l a0,todb + move.l a1,topokepal + ; + move.l 4.w,a6 + move.l 276(a6),a0 + move.l #-1,184(a0) ;requesters OFF for our task. + ; + bsr initrawmap ;init keyboard reader + lea ciaaname,a1 + jsr -498(a6) + move.l d0,ciaa + ; + tst os + beq.s .osskipz + move.l #12*257,d0 + moveq #1,d1 + allocmem temppal + move.l d0,temppal +.osskipz ; + move.l #8,d0 + move.l #$10002,d1 + allocmem chipzero + move.l d0,chipzero + ; + move.l #256,d0 + moveq #1,d1 + allocmem maptable + move.l d0,maptable + ; + move.l #32768,d0 + moveq #1,d1 + allocmem memory + move.l d0,memory + ; + move.l #320*vd_size,d0 + moveq #1,d1 + allocmem vertdraws + move.l d0,vertdraws + ; + move.l #maxz*2,d0 + moveq #1,d1 + allocmem darktable + move.l d0,darktable + ; + move.l #320*240,d0 + moveq #1,d1 + allocmem chunky + move.l d0,chunky ;chunky buffer + ; + move.l #256*16,d0 + moveq #1,d1 + allocmem palettes + ; + ;16 shades... + lea palettes(pc),a0 + moveq #15,d1 +.p_loop move.l d0,(a0)+ + add.l #256,d0 + dbf d1,.p_loop + ; + move.l #map_rgbs_,map_rgbs + ; + st paused + clr dispnest + clr.l font + bsr initsfx + bsr initvbint + bsr initdisplay + ; + lea magicfiles,a0 + bsr loadfiles + lea agamagicfiles,a0 + tst aga + bne.s .agaa + lea ecsmagicfiles,a0 +.agaa bsr loadfiles + ; + move.l magic,a0 + move.l magicpal,a1 + jsr showpic + bsr dispon + ; + move #50,vbcounter + ; + lea progfiles,a0 + bsr loadfiles + lea agafiles,a0 + tst aga + bne.s .lf + lea ecsfiles,a0 +.lf bsr loadfiles + ; + ;load in c2p routine + ; + move.l gloomcfg(pc),a0 + lea text,a1 + move.l #'c2p/',(a1)+ + addq #2,a0 +.cc move.b (a0)+,(a1) + cmp.b #10,(a1)+ + bne.s .cc + clr.b -(a1) + ; + lea text,a0 + moveq #1,d1 + bsr loadfile + move.l d0,planar_c2p + ; + move.l planar_c2p(pc),a2 + lea 36(a2),a0 + tst aga + bne.s .aga + lea 40(a2),a0 +.aga move.l a0,c2p + ; + lea coloffs,a0 ;columns table + move #320,d0 ;320 columns + lea paladjust,a1 + jsr 32(a2) ;inittables + ; + bsr initmed + bsr initser + bsr calcbaud + bsr initdarktable + ; + bset #15,remapped + bne .noremap + ; + move.l map_rgbs(pc),a0 + move #-1,(a0)+ + move.l a0,map_rgbsat + ; + move.l panel,a0 + jsr remapanim + lea bullet1,a0 + jsr remapanim + lea bullet2,a0 + jsr remapanim + lea bullet3,a0 + jsr remapanim + lea bullet4,a0 + jsr remapanim + lea bullet5,a0 + jsr remapanim + lea sparks1,a0 + jsr remapanim + lea sparks2,a0 + jsr remapanim + lea sparks3,a0 + jsr remapanim + lea sparks4,a0 + jsr remapanim + lea sparks5,a0 + jsr remapanim + ; + move.l map_rgbsat(pc),map_rgbsat2 +.noremap ; + move.l map_rgbsat2(pc),map_rgbsat + ; + moveq #0,d0 + bsr loadanobj ;load player1 + moveq #1,d0 + bsr loadanobj ;load player2 + moveq #2,d0 + bsr loadanobj ;load tokens (health) + ; + move.l map_rgbsat(pc),map_rgbsfrom + move.l map_rgbsat(pc),map_rgbsfrom2 + ; + alloclist objects,#maxobjects,#ob_size + alloclist doors,#maxdoors,#do_size + alloclist blood,#maxblood,#bl_size + alloclist gore,#maxgore,#go_size + alloclist rotpolys,#maxrotpolys,#rp_size + alloclist defobjects,#maxdefobjects,#de_size + ; +.w5sex tst vbcounter + bgt .w5sex + ; + bsr dispoff + ; + move.l magic,a1 + freemem magic + move.l magicpal,a1 + freemem magicpal + ; + move #$1234,d0 + bsr seedrnd2 + ; + ifne cd32 + lea nvname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,nv + bsr loadgloomgame + endc + ; + bra forbid + + ifeq cd32 + +checkdatadisk ;return eq if gloomdata: found! + ; + move.l dosbase(pc),a0 + move.l 34(a0),a0 + move.l 24(a0),a0 + add.l a0,a0 + add.l a0,a0 + addq #4,a0 + ; +.loop move.l (a0),d0 + beq.s .done + lsl.l #2,d0 + move.l d0,a0 + move.l 40(a0),a1 + add.l a1,a1 + add.l a1,a1 + cmp.b #9,(a1)+ ;9 chars + bne.s .loop + lea lockname(pc),a2 + moveq #8,d0 ;check 9 chars! +.loop2 cmp.b (a1)+,(a2)+ + bne.s .loop + dbf d0,.loop2 + rts + ; +.done moveq #-1,d0 + rts + +askdatadisk ; + ;make sure data disk is available... + ; + ;if 'gloomgame' is in CD, then use CD, else... + ;wait for 'gloomdata:' to get inserted! + ; + bsr permit + move.l #gamename,d1 + move.l #1005,d2 + move.l dosbase(pc),a6 + jsr -30(a6) + move.l d0,d1 + beq.s .nolock + jsr -36(a6) ;close it! + bra .load + ; +.nolock bsr forbid + bsr checkdatadisk + beq .dataok ;already there? + ; + lea diskmenu,a0 + bsr qmenu + ; + ;OK, gotta swap disks and pick up data files! + ; +.wfd bsr permit + move.l grbase(pc),a6 + jsr -270(a6) + bsr forbid + bsr checkdatadisk + bne.s .wfd + ; + bsr finitqmenu + ; +.dataok bsr permit + bsr undir ;release old lock! + move.l #lockname,d1 + moveq #-2,d2 + move.l dosbase(pc),a6 + jsr -84(a6) ;lock? + move.l d0,d1 + beq.s .wfd + jsr -126(a6) ;make current dir! + move.l d0,oldlock + ; +.load lea datafiles,a0 + bsr loadfiles + bra forbid + +undir move.l oldlock(pc),d1 + beq.s .rts + clr gloomdata + clr.l oldlock + move.l dosbase(pc),a6 + jsr -126(a6) ;CD to old current dir + move.l d0,d1 + jsr -90(a6) ;unlock old (mine!) +.rts rts + +oldlock dc.l 0 + +lockname dc.b 'gloomdata:',0 + even + + endc + +lagtext dc.b 'lAG?',0 + even + +syncup ;time to calculate frame lag! + ; + ;master can establish lag time... + ; + move linked(pc),d0 + bne.s .li +.rts rts +.li ; + ;bsr qsync + bsr qsync2 + ; + moveq #31,d5 + ; + tst linked + bmi .slave + ; + ;MASTER - average out 32 sends of random data! + ; + moveq #0,d6 ;sum + ; +.mloop moveq #0,d7 + bsr vwait + bsr serput + ; +.mwait addq #1,d7 + bsr vwait + bsr rbfchk + beq.s .mwait + ; + bsr serget + add d7,d6 + dbf d5,.mloop + ; + add #64,d6 + lsr #7,d6 ;/32 = avg. /2=half, /2=25 FPS + addq #1,d6 ;safety... + ; + move d6,d0 + move d0,lagtime + bsr serput + bra initlag + ; +.slave ;OK, bounce back 32 items... + ; + moveq #31,d5 +.sloop bsr serwait + bsr serput + dbf d5,.sloop + ; + ;now, wait to get told lagtime! + ; + bsr serwait + and #255,d0 + move d0,lagtime + ; +initlag ;what to do... + ; + ;stick 'lagtime' dummy 'noevents' into rec buff! + ;stick 'lagtime' dummy 'noevents' into pcntrl buffer + ; + move #$4000,$dff09a + ; + lea pbuff(pc),a0 ;controller buffer + lea rbuff(pc),a1 ;ser rec. buffer + moveq #31,d1 ;32*4=128 bytes! + moveq #0,d0 +.loop move.l d0,(a0)+ + move.l d0,(a1)+ + dbf d1,.loop + ; + move lagtime(pc),d0 + ; + clr pget + clr rget + clr chatcnt + move d0,pput + ;add d0,d0 + move d0,rbfcnt + move d0,rput + ; + move #$c000,$dff09a + ; + rts + +syncmenu dc.b 1 + dc.b 'waiting for other player',0 + even + +lagtime dc 0 + +qsync ;OK, quick sync up! + ; + move linked(pc),d0 + beq.s .rts + ; +.more bsr rbfchk ;anything there? + beq.s .no + bsr serget + cmp.b #$8f,d0 + bne.s .more + move.b #$8f,d0 + bra serput + ; +.no lea syncmenu,a0 + bsr qmenu + move.b #$8f,d0 + bsr serput + ; +.loop bsr serwait + cmp.b #$8f,d0 + bne.s .loop + ; + bra finitqmenu + ; +.rts rts + +qsync2 ;OK, quick sync up, but now 'waiting' menu + ; + move linked(pc),d0 + beq.s .rts + ; + move.b #$8f,d0 + bsr serput + ; +.loop bsr serwait + cmp.b #$8f,d0 + bne.s .loop + ; +.rts rts + +combatnokmenu dc.b 1 + dc.b 'sorry...not available in demo',0 + even + +initnewgame ; + ifeq combatok + ; + cmp #2,gametype + bne.s .skipnok + lea combatnokmenu(pc),a0 + bsr qmenu + ; + bsr selmenu + ; + bsr finitqmenu + move #-1,gametype + rts +.skipnok ; + endc + ; + move gametype(pc),twowins + beq.s .skip + tst linked + beq.s .skip + clr cheat + ; + nop + ; + ifeq debugser + clr twowins + endc +.skip ; + tst.l map_test + bne.s .skhit + ; + bset #15,gloomdata + bne.s .gotdata +.skhit ; + ifne cd32 + bsr permit + lea datafiles,a0 + bsr loadfiles + bsr forbid + elseif + bsr askdatadisk + endc +.gotdata ; + bsr qsync + ; + move.l medat(pc),a1 + jsr 12(a1) + cmp #2,gametype + bne normalgame + ; + ;combat type game! + ; + move #6,p1_ob_collwith + move #5,p2_ob_collwith + ; + lea combatmenu,a0 + bsr qmenu + ; +.loop bsr selmenu + cmp #3,d0 + bcs .play + bne.s .loop + ; + ;change number of wins... + ; + addq.b #1,comnum + cmp.b #'9',comnum + bls .loop + move.b #'2',comnum + bra .loop + ; +.play add #49,d0 + move.b d0,comseriesnum + ; + bsr finitqmenu + move.b comnum(pc),d0 + sub.b #'0',d0 + ext d0 + move d0,p1lives + move d0,p2lives + ; + lea combatfiles(pc),a0 + bsr permit + bsr loadfiles + bra forbid +normalgame ; + ;check for continue offsets in 'gloomgame' file! + ; + tst linked + bge.s .master + ; + bsr qsync + bsr longget + add.l script(pc),d0 + move.l d0,scriptat + bra initpstuff +.master ; + move.l script(pc),scriptat ;default + move.l gloomgame(pc),a0 + lea conttxts(pc),a1 + lea conts(pc),a2 + moveq #0,d7 + ; +.loop move.l (a0)+,d0 + cmp.l #'game',d0 + beq.s .done + ; + ;another! + ; + addq #1,d7 + add.l script(pc),d0 + move.l d0,(a2)+ + lea context(pc),a3 +.loop2 move.b (a3)+,(a1)+ + bne.s .loop2 + subq #1,a1 + move.l d0,a3 +.loop3 move.b (a3)+,(a1) + cmp.b #10,(a1)+ + bne.s .loop3 + clr.b -1(a1) + bra.s .loop + ; +.done move linked(pc),-(a7) + tst d7 + beq .more + addq #1,d7 + move.b d7,contmenu + ; + ;OK, need a continue game menu... + ; + clr linked + move.l gloom(pc),a0 + move.l gloompal(pc),a1 + lea contmenu,a2 + bsr pmenu + bsr selmenu + bsr finitpmenu + ; + move curropt(pc),d0 + beq .more + lea conts(pc),a0 + move.l -4(a0,d0*4),a0 +.leol cmp.b #10,(a0)+ + bne.s .leol + move.l a0,scriptat + ; +.more move (a7)+,linked + beq.s initpstuff + bsr qsync + move.l scriptat(pc),d0 + sub.l script(pc),d0 + bsr longput +initpstuff ; + move #4,p1_ob_collwith + move #4,p2_ob_collwith + move #3,p1lives + move #3,p2lives + move #25,p1health + move #25,p2health + move #0,p1weapon + move #0,p2weapon + move.b #ireload,p1reload + move.b #ireload,p2reload + ; + rts + +combatfiles dc.l combat + dc.b 'pics/combat',0 + even + dc.l combatpal + dc.b 'pics/combat.pal',0 + even + dc.l 0 + +conts ds.l 8 ;8 slots! + +combatmenu dc.b 4 + dc.b 'play spacehulk series',0 + dc.b 'play gothic tomb series',0 + dc.b 'play hell series',0 + dc.b 'start with ' +comnum dc.b '3 lives',0 + even + +context dc.b 'CONTINUE FROM ',0 + even + +contmenu dc.b 1 + dc.b 'START NEW GAME',0 +conttxts ds.b 160 + even + +execscript_med ; + bsr waitquiet + ; + move.l loadingmed(pc),d0 + beq.s execscript + move.l d0,a0 + move.l medat(pc),a1 + jsr 8(a1) ;start loading music! + ; +execscript cmp #2,gametype + beq scriptplay ;no script for combat game! + ; + move.l scriptat(pc),a0 + ; +.loop move.b (a0)+,d0 + cmp.b #10,d0 + beq.s .loop + and #31,d0 + bne.s .more +.loop2 cmp.b #10,(a0)+ + bne.s .loop2 + bra.s .loop +.more cmp #27,d0 + bcc.s .loop2 + add #96,d0 + ; + ;command! fetch the rest... + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + move.b (a0)+,d1 + and #31,d1 + add #96,d1 + lsl.l #8,d0 + or d1,d0 + ; + addq #1,a0 ;skip '_' + move.l a0,scriptat + cmp.l #'pict',d0 + beq scriptpict + cmp.l #'draw',d0 + beq scriptdraw + cmp.l #'text',d0 + beq scripttext + cmp.l #'wait',d0 + beq scriptwait + cmp.l #'play',d0 + beq scriptplay + cmp.l #'done',d0 + beq scriptdone + cmp.l #'dark',d0 + beq scriptdark + cmp.l #'show',d0 + beq scriptshow + cmp.l #'hide',d0 + beq scripthide + cmp.l #'loop',d0 + beq scriptloop + cmp.l #'rest',d0 + beq scriptrest + cmp.l #'tile',d0 + beq scripttile + ; + warn #$f80 + ; + ;Hmmm....bad command +.fucked ; + rts + ; +scriptdone bsr dispoff + move.l loadingmed(pc),d0 + beq gameover + ; + move.l medat(pc),a1 + clr fadevol + jsr 12(a1) ;stop song + bra gameover + +sccont dc.b 'cont_' + even + +scriptrest ;restart point! + ;this changes...we add this to 'gloomgame' file now. + ; + move.l a0,d1 + sub.l script(pc),d1 ;offset from start of script! +.leol cmp.b #10,(a0)+ + bne.s .leol + move.l a0,scriptat + ; + move.l gloomgame(pc),a1 +.loop move.l (a1)+,d0 + cmp.l #'game',d0 + beq.s .add + cmp.l d0,d1 + bne.s .loop + ; + ;already here! + ; + bra execscript + ; +.add ;OK, gotta add new scriptat position! + ; + move.l d1,-(a1) + ; + ;save it out! + ; + bsr permit + ifne cd32 + bsr savegloomgame + elseif + lea gamename,a0 + move.l gloomgame,a1 + moveq #32,d0 + bsr savefile + endc + bsr forbid + ; + bra execscript + +scriptloop move.l script,scriptat + bra execscript + +scripthide bsr dispoff + bra execscript + +scriptshow clr pdelay + bsr dispon + bra execscript + +scriptdraw move.l picpal,a1 + move.l pic,d0 + bne.s .use + move.l gloompal,a1 + move.l gloom,d0 +.use move.l d0,a0 + jsr showpic + bsr initfontpal + bra execscript + +fetchrest move.l scriptat,a0 + moveq #-1,d0 +.loop addq #1,d0 + move.b (a0)+,(a1) + cmp.b #10,(a1)+ + bne.s .loop + clr.b -(a1) + move.l a0,scriptat + rts + +text ; +picname ds.b 64 +pic_pal dc.b '.pal',0 + even + +pic dc.l 0 +picpal dc.l 0 + +freeiff push + move.l pic(pc),d0 + beq.s .skip1 + clr.l pic + move.l d0,a1 + freemem pic +.skip1 move.l picpal(pc),d0 + beq.s .skip2 + clr.l picpal + move.l d0,a1 + freemem picpal +.skip2 pull + rts + +freetiles push + move.l floor(pc),d0 + beq.s .skip1 + clr.l floor + move.l d0,a1 + freemem floor +.skip1 move.l roof(pc),d0 + beq.s .skip2 + clr.l roof + move.l d0,a1 + freemem roof +.skip2 pull + rts + +floorname dc.b 'txts/floor' +floortag ds.b 32 + even + +roofname dc.b 'txts/roof' +rooftag ds.b 32 + even + +scripttile ;tile command...load in floor/roof tiles! + ; + lea floortag(pc),a1 + bsr fetchrest + bsr loadtile + bra execscript + +loadtile ; + ;floor tag=tile extension... + ; + bsr freetiles + lea floortag(pc),a0 + lea rooftag(pc),a1 +.loop move.b (a0)+,(a1)+ + bne.s .loop + ; + bsr permit + lea floorname(pc),a0 + moveq #1,d1 + jsr loadfile + move.l d0,floor + lea roofname(pc),a0 + moveq #1,d1 + jsr loadfile + move.l d0,roof + bsr forbid + ; + move.l map_rgbsfrom,map_rgbsat + ; + move.l floor(pc),a2 + lea 128*128(a2),a2 + move.l a2,a0 + bsr addpal + move.l floor(pc),a0 + move.l a2,a1 + bsr remap + ; + move.l roof(pc),a2 + lea 128*128(a2),a2 + move.l a2,a0 + bsr addpal + move.l roof(pc),a0 + move.l a2,a1 + bsr remap + ; + move.l map_rgbsat,map_rgbsfrom2 + rts + +agapicpath dc.b 'pics/',0 +ecspicpath dc.b 'pics_ehb/',0 + even + +scriptpict ;load an iff + bsr freeiff + lea agapicpath(pc),a0 + lea picname,a1 + tst aga + bne.s .aga + lea ecspicpath(pc),a0 +.aga move.b (a0)+,(a1)+ + bne.s .aga + subq #1,a1 + bsr fetchrest + move.l a1,-(a7) + bsr permit + lea picname,a0 + moveq #1,d1 + jsr loadfile + move.l d0,pic + beq.s .nopic + ; + lea pic_pal,a0 + move.l (a7),a1 +.loop move.b (a0)+,(a1)+ + bne.s .loop + lea picname,a0 + moveq #1,d1 + jsr loadfile + move.l d0,picpal + ; +.nopic addq #4,a7 + bsr forbid + bra execscript + +scriptdark ; + tst os + bne execscript + ; + move.l coplist,a2 + tst aga + bne.s .aga + lea palette_ecs-copinit_ecs(a2),a2 + moveq #31,d0 +.loop0 lsr 2(a2) + and #$777,2(a2) + addq #4,a2 + dbf d0,.loop0 + bra execscript +.aga lea palette_aga-copinit_aga(a2),a2 + moveq #6,d0 ;7 banks +.loop moveq #31,d1 ;32 colours +.loop2 move 6(a2),d2 + move d2,d4 + and #$111,d4 + lsr #1,d2 + and #$777,d2 + move 132+6(a2),d3 + lsr #1,d3 + and #$777,d3 + lsl #3,d4 + or d4,d3 + move d2,6(a2) + move d3,132+6(a2) + addq #4,a2 + dbf d1,.loop2 + lea 264-128(a2),a2 + dbf d0,.loop + bra execscript + +scripttext ;print text on iff + ;a6=window, a4=message, d0=length of message, d6=Y + ; + move #2,pdelay + bsr initfontpal + ; + lea text,a1 + bsr fetchrest + ; + lea text,a4 + move bmaphite(pc),d6 + sub #11,d6 + ; + move.l a4,a0 + moveq #0,d1 +.loop move.b (a0)+,d2 + beq.s .done + addq #1,d1 + cmp.b #'\',d2 + bne.s .loop + sub d1,d0 + movem.l d0/d6/a0,-(a7) + move d1,d0 + clr.b -(a0) + sub #11,d6 + bsr printmess2 + movem.l (a7)+,d0/d6/a4 + ; +.done bsr printmess2 + ; + tst pdelay + bmi execscript + clr pdelay + bra execscript + +scriptwait ; + tst pdelay + bmi execscript + bsr waitany + bra execscript + +checkany movem.l d0-d7/a0-a6,-(a7) + bsr vwait + bsr readmenusel + and #$10,d0 ;set ne if fire! + movem.l (a7)+,d0-d7/a0-a6 + rts + +waitany movem.l d0-d7/a0-a6,-(a7) +.wait bsr checkany + beq.s .wait +.wait2 bsr checkany + bne.s .wait2 + movem.l (a7)+,d0-d7/a0-a6 + rts + +copywin moveq #wi_size/2-1,d0 +.loop move (a0)+,(a1)+ + dbf d0,.loop + rts + +freeobjlist lea objlist,a2 + ; +.loop move.l (a2)+,d0 + beq.s .done + move.l d0,a3 + ; + move.l (a3),d0 + beq.s .skip + move.l d0,a1 + freemem obj + clr.l (a3) +.skip ; + move.l 4(a3),d0 + beq.s .loop + move.l d0,a1 + freemem objchunks + clr.l 4(a3) + bra.s .loop + ; +.done rts + +freeobjlist2 lea objlist,a2 + ; +.loop move.l -(a2),d0 + beq.s .done + move.l d0,a3 + ; + move.l (a3),d0 + beq.s .skip + move.l d0,a1 + freemem obj2 + clr.l (a3) +.skip ; + move.l 4(a3),d0 + beq.s .loop + move.l d0,a1 + freemem objchunks2 + clr.l 4(a3) + bra.s .loop + ; +.done rts + +mappath dc.b 'maps/' +mapname ds.b 64 + even + +linkswap tst linked + bpl.s .rts + ; + movem.l player1(pc),a0-a1 + exg a0,a1 + movem.l a0-a1,player1 + ; + move ob_cntrl(a0),d0 + move ob_cntrl(a1),d1 + move d1,ob_cntrl(a0) + move d0,ob_cntrl(a1) +.rts rts + +pickcombat ;pick combat zone... + ;put name into a1... + ; + move.l a1,-(a7) + ; + tst linked + bge.s .doit + ; + ;OK, slave...get map# from other player! + ; + bsr serwait + move.b d0,d2 + bra.s .gotmap + ; +.doit move $dff006,d0 + bsr seedrnd + ; + move comsleft(pc),d0 + bne.s .pick + moveq #7,d0 + move d0,comsleft +.pick bsr rndn + lea commaps(pc),a0 + subq #1,comsleft + move comsleft(pc),d1 + move.b 0(a0,d0),d2 ;map to play! + move.b 0(a0,d1),0(a0,d0) + move.b d2,0(a0,d1) + ; + tst linked + beq.s .gotmap + ; + move.b d2,d0 + bsr serput + ; +.gotmap move.l (a7)+,a1 + add.b #48,d2 + move.b d2,comseriesmap + ; + lea comname(pc),a0 +.loop move.b (a0)+,(a1)+ + bne.s .loop + ; + move.l combat,a0 + move.l combatpal,a1 + jsr showpic + move.b comseriesnum(pc),floortag + clr.b floortag+1 + bra loadtile + +commaps dc.b 1,2,3,4,5,6,7,8 +comsleft dc 7 ;7 maps left! +comname dc.b 'com' +comseriesnum dc.b '1_' +comseriesmap dc.b '1',0 + even + +scriptplay ; + ;arrives here with dispon! + ; + lea mapname,a1 + ; + cmp #2,gametype + bne.s .notcombat + ; + ;OK, combat game is a happening... + ; + ;select from on-screen maps. + ; + bsr pickcombat + bra.s .gotname + ; +.notcombat bsr fetchrest +.gotname ; + zerolist objects,ob_size + zerolist doors,do_size + zerolist blood,bl_size + zerolist gore,go_size + zerolist rotpolys,rp_size + ; + clr.l player1 + clr.l player2 + tst gametype + bne.s .p2 + not.l player2 ;no player 2! +.p2 ; + bsr permit + ; + move.l map_test(pc),d0 + bne.s .use + move.l #mappath,d0 +.use move.l d0,a0 + moveq #1,d1 + bsr loadfile + move.l d0,map_map + ; + bsr initmap + bsr loadtxts + move #$a3f7,d0 + bsr seedrnd + moveq #1,d0 + bsr execevent + bsr forbid + ; + move.l planar_palette(pc),a1 + jsr pokepal + bsr calcpalettes + bsr dispoff + ; + ; + ;init player vars... + ; + move.l player1,a5 + ; + move p1lives(pc),ob_lives(a5) + ; + cmp #2,gametype + beq.s .psk + ; + move p1health(pc),d0 + bne.s .p1hok + move #25,p1health + move.b #ireload,p1reload +.p1hok move p1health(pc),ob_hitpoints(a5) + move p1weapon(pc),ob_weapon(a5) + move.b p1reload(pc),ob_reload(a5) + ; +.psk bsr resetplayer + ; + tst gametype + beq .p1 + ; + move.l player2,a5 + move p2lives(pc),ob_lives(a5) + ; + cmp #2,gametype + beq.s .psk2 + ; + move p2health(pc),d0 + bne.s .p2hok + move #25,p2health + move.b #ireload,p2reload +.p2hok move p2health(pc),ob_hitpoints(a5) + move p2weapon(pc),ob_weapon(a5) + move.b p2reload(pc),ob_reload(a5) + ; +.psk2 bsr resetplayer +.p1 ; + bsr linkswap + ; + ;save player positions at start of level! + ; + move.l player1(pc),a5 + move ob_x(a5),p1x + move ob_z(a5),p1z + move ob_rot(a5),p1r + tst gametype + beq.s .shit + move.l player2(pc),a5 + move ob_x(a5),p2x + move ob_z(a5),p2z + move ob_rot(a5),p2r +.shit ; + ;init windows... + ; + move.l loadingmed(pc),d0 + beq.s .nolmed + move.l medat(pc),a1 + clr fadevol + jsr 12(a1) ;stop song +.nolmed ; + move #$1f3a,d0 + bsr seedrnd + clr.l sucker + clr.l sucking + clr finished + clr finished2 + clr doneflag + clr showflag + clr escape + clr frame + ; + bsr syncup + ; + clr framecnt + clr paused + bsr predrawall + bsr dispon + bsr chaton + ; +mainloop bsr drawall + move escape(pc),d0 + beq.s .noesc + jsr dogamemenu + clr escape +.noesc move finished(pc),d0 + beq.s mainloop + ; +mainexit st paused + bsr chatoff + bsr dispoff + bsr qsync2 + bsr linkswap + bsr freeobjlist + bsr freetxts + bsr freemap + ; + ;finished codes... + ; + ;1 : quit (esc/exit game) + ;2 : death (both players dead) + ;3 : pattern completed + ;4 : combat game...someone died! + ; + move finished(pc),d0 + and #127,d0 + subq #1,d0 + beq exitgame + subq #1,d0 + beq gameover + subq #1,d0 + beq levelover + subq #1,d0 + beq combatwon + ; +.fuck warn #$f08 + warn #$80f + bra.s .fuck + ; +exitgame cmp #2,gametype + bne.s gameover +combatover move.l combat,a1 + freemem combat + move.l combatpal,a1 + freemem combatpal +gameover bsr freeiff + bra freetiles +levelover ; + move.l player1,a5 + move ob_hitpoints(a5),p1health + move ob_lives(a5),p1lives + move ob_weapon(a5),p1weapon + move.b ob_reload(a5),p1reload + ; + tst gametype + beq.s .p1p1 + ; + move.l player2,a5 + move ob_hitpoints(a5),p2health + move ob_lives(a5),p2lives + move ob_weapon(a5),p2weapon + move.b ob_reload(a5),p2reload + ; + ;shared lives! + ; + move p1lives(pc),d0 + move p2lives(pc),d1 + cmp d1,d0 + bcc.s .used0 + move d1,d0 +.used0 move d0,p1lives + move d0,p2lives + ; +.p1p1 tst.l map_test + bne gameover + bra execscript_med + ; +combatwon move.l player1(pc),a5 + move ob_lives(a5),p1lives + beq .p1lost + move.l player2(pc),a5 + move ob_lives(a5),p2lives + beq .p2lost + ; + ;combat game continues! + ; + bra execscript_med + ; +.p1lost ;player 1 lost the game + ; + lea p2wins(pc),a2 + tst linked + beq .combatmess + lea ploses_(pc),a2 + bgt .combatmess + lea pwins_(pc),a2 + bra .combatmess + ; +.p2lost ;player 2 lost combat game + ; + lea p1wins(pc),a2 + tst linked + beq .combatmess + lea ploses_(pc),a2 + blt .combatmess + lea pwins_(pc),a2 + ; +.combatmess move.l combat,a0 + move.l combatpal,a1 + bsr pmenu + bsr selmenu + bsr finitpmenu + bra combatover + +p1wins dc.b 1,'player one wins combat game!',0 + even +p2wins dc.b 1,'player two wins combat game!',0 + even +pwins_ dc.b 1,'player wins combat game!',0 + even +ploses_ dc.b 1,'player loses combat game!',0 + even + +freemap move.l map_map,d0 + beq.s .done + move.l d0,a1 + freemem map + clr.l map_map +.done rts + +inccntrl addq #1,(a2) + cmp #5,(a2) + bcs.s .pok + clr (a2) +.pok move (a2),d0 + cmp (a3),d0 + beq.s inccntrl + ; +.there lea popts(pc),a0 + move.l 0(a0,d0*4),a0 +.sk move.b (a0)+,(a1)+ + bne.s .sk + rts + +dointro ; + move.l gloom(pc),a0 + move.l gloompal(pc),a1 + jsr showpic + ; + move aga(pc),d0 + beq.s .noaga + ; + move.l gloombrush(pc),a0 + move.l showbitmap(pc),a1 + move #168*40,d0 + mulu bitplanes(pc),d0 + add.l d0,a1 + bsr decodeiff +.noaga ; + bsr dispon + ; + bsr chaton + ; + bsr waitany + ; + lea startmenu,a4 + tst linked + beq.s .use + lea startmenu2,a4 +.use jsr initmenu + ; +.sel jsr selmenu + ; + tst linked + beq.s .notlinked + ; + cmp #2,d0 + bcs .newgame2 + subq #2,d0 + beq .unlink + subq #1,d0 + beq .about + subq #1,d0 + beq .exitgloom + bra .sel +.unlink ; + bsr qsync2 + bsr chatoff + clr linked + lea p2ctype(pc),a1 + lea p2_ob_cntrl,a2 + lea p1_ob_cntrl,a3 + bsr inccntrl + ; + bsr finitpmenu + bra dointro + ; +.newgame2 addq #1,d0 + move d0,gametype + bsr qsync2 + bsr chatoff + bra finitpmenu + ; +.notlinked cmp #3,d0 + bcs .newgame + ; + subq #3,d0 + bne .notp1 + ; + lea p1ctype(pc),a1 + lea p1_ob_cntrl,a2 + lea p2_ob_cntrl,a3 + bsr inccntrl + bra .sel + ; +.notp1 subq #1,d0 + bne.s .notp2 + ; + lea p2ctype(pc),a1 + lea p2_ob_cntrl,a2 + lea p1_ob_cntrl,a3 + bsr inccntrl + bra .sel + ; +.notp2 subq #1,d0 + bne.s .notlink + ; + bsr finitpmenu + bsr linkup + bra dointro + ; +.notlink subq #1,d0 + bne.s .notvile + ; + addq #1,mode + and #1,mode + move mode(pc),d0 + lea modes,a0 + move.l 0(a0,d0*4),a0 + lea modetxt,a1 +.moloop move.b (a0)+,(a1)+ + bne.s .moloop + ; + bra .sel + ; +.notvile subq #1,d0 + bne .notabout + ; +.about ;about text... + ; + bsr finitpmenu + move.l gloom(pc),a0 + move.l gloompal(pc),a1 + lea abouttext,a2 + bsr pmenu + move numopts(pc),-(a7) + move #1,numopts + ; + bsr selmenu + ; + ;cheat mode too? + ; + qkey $5f + beq.s .noch + ; + warn #$f0f + move #-1,cheat + ; +.noch move (a7)+,numopts + bsr finitpmenu + bra dointro + ; +.notabout subq #1,d0 + bne .sel + ; +.exitgloom moveq #4,d0 + ; +.newgame move d0,gametype + bsr qsync2 + bsr chatoff + bra finitpmenu + +linkup ;link up... + ; + lea linkupmenu,a0 + bsr qmenu + ; +.loop bsr selmenu + cmp #3,d0 + bne.s .notb + bsr optbaud + bra.s .loop + ; +.notb bsr finitqmenu + move curropt(pc),d0 + beq nulllink + cmp #4,d0 + beq.s .rts + subq #1,d0 + beq dialup + subq #1,d0 + beq answer +.rts rts + ; +answer lea ata(pc),a0 + move #-1,linked + bra doconnect + +dialup ; + lea phonenum(pc),a0 + move.l a0,a1 + move.l a0,phoneat +.clr tst.b (a0) + beq.s .clrd + move.b #32,(a0)+ + bra.s .clr +.clrd move.b #127,(a1) + ; + lea linkmenu0,a0 + bsr qmenu + ; + st chatok + ; +.loop qkey $41,d0 ;undel! + bne.s .loop + ; +.wkey bsr checkesc + bne .escout + qkey $44 ;return? + bne .done + key $41,d0 + bne .del ;del + ; + move chatoutget(pc),d0 + cmp chatoutput(pc),d0 + beq.s .wkey + ; + and #31,d0 + lea chatout(pc),a0 + move.b 0(a0,d0),d0 ;chat out character! + addq #1,chatoutget + ; + cmp #48,d0 + bcs.s .loop + cmp #58,d0 + bcc.s .loop + ; + move.l phoneat(pc),a0 + move.b d0,(a0)+ + tst.b (a0) + beq.s .skinc + move.b #127,(a0) + move.l a0,phoneat + ; +.skinc bsr vwait + bsr optoff + bsr opton + bra .loop + ; +.del move.l phoneat(pc),a0 + cmp.l #phonenum,a0 + beq .loop + cmp.b #127,(a0) + bne.s .noc + move.b #32,(a0) + subq #1,a0 +.noc move.b #127,(a0) + move.l a0,phoneat + bra.s .skinc + ; +.done qkey $44 + bne.s .done + ; + bsr .escout + ; + lea pbuff(pc),a0 ;use this for connect string! + move.l a0,a2 + ; + move.l #'ATDT',(a2)+ + lea phonenum(pc),a1 +.cpn move.b (a1)+,(a2) + beq.s .null + cmp.b #32,(a2)+ + bne.s .cpn + subq #1,a2 +.null move.b #13,(a2)+ + move.b #10,(a2)+ + clr.b (a2) + ; + move #1,linked + bra doconnect + ; +.escout bsr finitqmenu + clr chatok + clr chatoutget + clr chatoutput + rts + +checkesc qkey $45 + ifne cd32 + movem.l d0-d7/a0-a6,-(a7) + lea cd32buff(pc),a0 + clr escape + bsr readcd321 + tst escape + sf escape + movem.l (a7)+,d0-d7/a0-a6 + endc + rts + +cd32buff ds 8 + +phoneat dc.l phonenum + +nulllink ; + lea connect(pc),a0 +doconnect ; + bsr sendstring + bsr waitconnect + beq .calcmaster + ; + clr linked + rts + ; + ;OK, randomly determine who is master and who is slave! + ; + ;faster computer SHOULD be master! + ; + ;let's try, number of rnd divs/frame...send as a long word! + ; +.calcmaster tst linked + bne .linked + ; + move linkdelay(pc),d0 + ext.l d0 + move.l d0,d2 + bsr longput + bsr longget + cmp.l d0,d2 + beq.s .itsatie + bhi .master + bra .slave + ; +.itsatie ;OK, both connected at same time! use faster machine... + ; + moveq #0,d7 + ; + move #$20,$dff09a + ; +.vwloop btst #5,$dff01f + beq.s .vwloop + move #$20,$dff09c +.cmloop ; + btst #5,$dff01f + bne.s .cmdone + bsr rndw + ext.l d0 + divs #$a5a5,d0 + addq.l #1,d7 + bra.s .cmloop +.cmdone ; + move #$20,$dff09c + move #$8020,$dff09a + ; + move.l d7,d0 + bsr longput + bsr longget + cmp.l d0,d7 + beq.s .calcmaster + blt.s .slave + ; + ;I'm player 1 +.master move #1,linked + bra.s .linked + ; +.slave ;I'm actually player 2! + move #-1,linked + ; +.linked move #-1,p2_ob_cntrl + ; + lea incharge(pc),a0 + tst linked + bgt.s .goz + lea notincharge(pc),a0 +.goz bsr qmenu + bsr chaton + bsr selmenu + bra finitqmenu + +longput ;send ser long in d0 + ; + moveq #3,d1 +.loop rol.l #8,d0 + movem.l d0-d1,-(a7) + bsr vwait + bsr serput + movem.l (a7)+,d0-d1 + dbf d1,.loop + rts + +longget ;get ser long in d0 + ; + move.l d2,-(a7) + moveq #3,d1 +.loop movem.l d1-d2,-(a7) + bsr serwait + movem.l (a7)+,d1-d2 + lsl.l #8,d2 + move.b d0,d2 + dbf d1,.loop + move.l d2,d0 + move.l (a7)+,d2 + rts + +incharge dc.b 1 + dc.b 'player selects options',0 + even + +notincharge dc.b 1 + dc.b 'other player selects options',0 + even + +sendstring ;a0=string to send + ; + move.l a0,a2 +.loop bsr vwait + move.b (a2)+,d0 + beq.s .done + bsr serput + bra.s .loop +.done rts + +linkdelay dc 0 + +waitconnect ;wait for 'CONNECT' to arrive... + ;return eq if OK, else ne if 'esc'ed or not received. + ; + lea linkmess,a0 + bsr qmenu + clr linkdelay + ; +.retry lea wconnect(pc),a2 + ; +.loop bsr vwait + addq #1,linkdelay + bsr checkesc + bne .notok + bsr rbfchk + beq.s .loop + bsr serget + cmp.b (a2)+,d0 + bne.s .retry + tst.b (a2) + bne.s .loop + ; +.ok ;OK, connect xxxx ends with 13,10... + ; +.w10 bsr vwait + addq #1,linkdelay + bsr checkesc + bne .notok + bsr rbfchk + beq.s .w10 + bsr serget + cmp.b #10,d0 + bne.s .w10 + ; + bsr finitqmenu + moveq #0,d0 + rts + ; +.notok bsr finitqmenu + moveq #-1,d0 + rts + +optbaud addq #1,baud + cmp #6,baud + bcs.s .ok + clr baud +.ok ; +calcbaud move baud(pc),d0 + lea bauds(pc),a0 + move.l 4(a0,d0*8),a0 ;baud text! + lea baudtext(pc),a1 +.loop move.b (a0)+,(a1)+ + bne.s .loop + ; + move baud(pc),d0 + lea bauds(pc),a1 + move.l 0(a1,d0*8),d0 ;2400 etc. + move.l baudconst(pc),d1 + divu d0,d1 + subq #1,d1 + move d1,$dff032 + ; + rts + +connect dc.b 'CONNECT',13,10,0 + even + +wconnect dc.b 'CONNECT',0 + even + +ata dc.b 'ATA',13,10,0 + even + +linkmenu0 dc.b 1 + dc.b 'DIAL: ' +phonenum dc.b 127,' ',0 + even + +linkmess dc.b 1 + dc.b 'ATTEMPTING TO CONNECT...ESC TO ABORT',0 + even + +linkupmenu dc.b 5 + dc.b 'NULL LINK',0 + dc.b 'DIAL UP',0 + dc.b 'ANSWER',0 + dc.b 'BAUD RATE: ' +baudtext dc.b '2400 ',0 + dc.b 'EXIT',0 + even + +baudconst dc.l 3546895 ;pal + dc.l 3579545 ;ntsc + +baud dc 0 + +bauds dc.l 2400,b1,4800,b2,9600,b3,14400,b4,28800,b5 + dc.l 38400,b6 + +b1 dc.b '2400 ',0 +b2 dc.b '4800 ',0 +b3 dc.b '9600 ',0 +b4 dc.b '14400',0 +b5 dc.b '28800',0 +b6 dc.b '38400',0 + even + + dc.l popt0 +popts dc.l popt1,popt2,popt3,popt4,popt5 + ; +popt0 dc.b 'NULL MODEM',0 ;-1 +popt1 dc.b 'JOYSTICK 1',0 ;0 +popt2 dc.b 'JOYSTICK 2',0 ;1 +popt3 dc.b ' KEYBOARD ',0 ;2 +popt4 dc.b 'CD32 PAD 1',0 ;3 +popt5 dc.b 'CD32 PAD 2',0 ;4 + +joyxs dc 0,0 ;serial +joyys dc 0,0 + ; +joyx0 dc 0,0 +joyb0 dc 0,0 +joyx1 dc 0,0 +joyb1 dc 0,0 +joyx2 dc 0,0 +joyb2 dc 0,0 +joyx3 dc 0,0 +joyb3 dc 0,0 +joyx4 dc 0,0 +joyb4 dc 0,0 + + even + +gamemenu dc.b 7 + dc.b 'CONTINUE',0 + dc.b 'RESOLUTION',0 + dc.b 'WINDOW SIZE',0 + dc.b 'FULL SCREEN WINDOW',0 + dc.b 'FLOOR',0 + dc.b 'CEILING',0 + dc.b 'QUIT GAME',0 + even + +modes dc.l mode1,mode2 + +mode1 dc.b 'MEATY',0 + +mode2 dc.b 'MESSY',0 + +startmenu dc.b 9 + dc.b 'ONE PLAYER GAME',0 ;0 + dc.b 'TWO PLAYER GAME',0 ;1 + dc.b 'TWO PLAYER COMBAT',0 ;2 + dc.b 'PLAYER 1 ' +p1ctype + ifne cd32 + dc.b 'CD32 PAD 1',0 ;3 + elseif + dc.b 'JOYSTICK 1',0 ;3 + endc + ; + dc.b 'PLAYER 2 ' +p2ctype + ifne cd32 + dc.b 'CD32 PAD 2',0 ;4 + elseif + dc.b 'JOYSTICK 2',0 ;4 + endc + ; + dc.b 'REMOTE LINK OPTIONS',0 ;5 + ; + dc.b 'VIOLENCE MODEL: ' +modetxt dc.b 'MEATY',0 ;6 + dc.b 'ABOUT GLOOM',0 ;7 + dc.b 'EXIT GLOOM',0 ;8 + even + +startmenu2 dc.b 5 + dc.b 'TWO PLAYER GAME',0 ;0 + dc.b 'TWO PLAYER COMBAT GAME',0 ;1 + dc.b 'UNLINK FROM REMOTE PLAYER',0 ;2 + dc.b 'ABOUT GLOOM',0 ;3 + dc.b 'EXIT GLOOM',0 ;4 + even + +menuwindow dc.l 0 +menubmap dc.l 0 + +menuy dc 0 +numopts dc 0 ;how many menu options +curropt dc 0 ;current option +flashdelay dc 0 + +menustrips ds.l 32 ;16 max! + +qmenu ;quick menu in a0 + ;on black screen + ; + move.l a0,-(a7) + bsr clspic + move.l (a7)+,a4 + bsr initmenu + bra dispon + +pmenu ;a0=iff, a1=palette, a2=menu + ;display off + move.l a2,-(a7) + bsr showpic + move.l (a7)+,a4 + bsr initmenu + bra dispon + +finitpmenu ; +finitqmenu bsr dispoff + bra finitmenu + +swapshow movem.l showbitmap(pc),d0-d1 + exg d0,d1 + movem.l d0-d1,showbitmap + rts + +finitfontpal bra pokelastpal + +initfontpal move.l font(pc),a1 + add.l (a1),a1 + move (a1),-(a7) + clr (a1) + moveq #4,d0 + bsr pokepal2 + move.l font(pc),a1 + add.l (a1),a1 + move (a7)+,(a1) + rts + +initmenu clr curropt +initmenu2 ; + ;do a menu...menu in a4 + ; + bsr copypic ;copy shown to draw + bsr swapshow + bsr initfontpal + ; + move.b (a4)+,d0 ;how many + ext d0 + move d0,numopts + move d0,-(a7) ;counter + move bmaphite(pc),d6 ;bitmap hite + move.l showbitmap(pc),menubmap + lsr #1,d6 + move fonth(pc),d2 + lsr #1,d2 + mulu d2,d0 + sub d0,d6 ;Y + move d6,menuy + lea menustrips(pc),a5 + ; +.loop ;save strip! + ; + move.l a4,(a5)+ + ; + move fonth(pc),d0 + mulu #40,d0 + mulu bitplanes(pc),d0 + moveq #2,d1 + allocmem menustrip + move.l d0,(a5)+ + move.l d0,a1 ;strip address + ; + move d6,d0 + mulu linemodw(pc),d0 + move.l menubmap(pc),a0 + add.l d0,a0 ;src + ; + move bitplanes(pc),d0 + subq #1,d0 +.sloop move.l a0,-(a7) + move fonth(pc),d1 + subq #1,d1 +.sloop2 move.l a0,-(a7) + moveq #9,d2 +.sloop3 move.l (a0)+,(a1)+ + dbf d2,.sloop3 ;width + move.l (a7)+,a0 + add.l linemod(pc),a0 + dbf d1,.sloop2 ;hite + move.l (a7)+,a0 + add.l bpmod(pc),a0 + dbf d0,.sloop ;depth + ; + move.l a4,a0 + moveq #-1,d0 +.cnt addq #1,d0 + tst.b (a0)+ + bne.s .cnt + ; + jsr printmess2 + ; + add fonth(pc),d6 + subq #1,(a7) + bgt.s .loop + addq #2,a7 + ; + ifne debugmem + bsr showmem + lea memasc,a4 + moveq #8,d0 + jsr printmess2 + ; + move.l freememerr,d0 + beq.s .nomemerr + clr.l freememerr + move.l d0,a4 + move.l d0,a0 + moveq #-1,d0 +.ccloop addq #1,d0 + tst.b (a0)+ + bne.s .ccloop + add fonth(pc),d6 + jsr printmess2 +.nomemerr ; + endc + ; + bsr swapshow + bsr db + bra vwait + +minmem dc.l $7fffffff + + ifne debugmem + ; +showmem push + move.l 4.w,a6 + move.l #$20001,d1 + jsr -216(a6) + cmp.l minmem(pc),d0 + bge.s .notmin + move.l d0,minmem +.notmin move.l minmem(pc),d0 + ; + lea memasc,a0 + moveq #7,d1 +.loop rol.l #4,d0 + move d0,d2 + and #15,d2 + add #48,d2 + cmp #58,d2 + bcs.s .skip + addq #7,d2 +.skip move.b d2,(a0)+ + dbf d1,.loop + pull + rts + ; +memasc dc.b '12345678',0 + even + endc + +optoff ; + bsr ownblitter + move curropt(pc),d6 + lea menustrips(pc),a0 + move.l 4(a0,d6*8),a0 ;address of strip + mulu fonth(pc),d6 + add menuy(pc),d6 + mulu linemodw(pc),d6 + move.l menubmap(pc),a1 + add.l d6,a1 ;dest + ; + move fonth(pc),d0 + lsl #6,d0 + or #20,d0 + ; + move bitplanes(pc),d1 + subq #1,d1 + ; + move linemodw(pc),d2 + sub #40,d2 + ; + btst #6,$dff002 +.bwait0 btst #6,$dff002 + bne.s .bwait0 + ; + move.l #$9f00000,$dff040 ;D=A + move.l #-1,$dff044 + move #0,$dff064 + move d2,$dff066 ;d mod + move.l a0,$dff050 + ; +.loop btst #6,$dff002 +.bwait btst #6,$dff002 + bne.s .bwait + ; + move.l a1,$dff054 + move d0,$dff058 + add.l bpmod(pc),a1 + dbf d1,.loop + ; + move #13,flashdelay + ; + bra disownblitter + +opton move curropt(pc),d6 + lea menustrips(pc),a0 + move.l 0(a0,d6*8),a4 ;text! + mulu fonth(pc),d6 + add menuy(pc),d6 + ; + ;a6=window, a4=message, d0=length of message, d6=Y + ; + move.l a4,a0 + moveq #-1,d0 +.loop addq #1,d0 + tst.b (a0)+ + bne.s .loop + ; + move.l menuwindow(pc),a6 + jsr printmess2 + ; + move #13,flashdelay + ; + rts + +readmenujoy ;encode to d0! + ; + ;OK, read joystick in port 2, and keyboard! + ;merge into joyx,joyy,joyb + ; + tst active + bne.s .doit + lea joyx(pc),a0 + clr.l (a0) + clr.l 4(a0) + moveq #0,d0 + rts +.doit lea joyx(pc),a0 + bsr readjoy1 + lea joyx0(pc),a0 + bsr readkeys + move.l joyx0(pc),d0 + or.l d0,joyx + move.l joyb0(pc),d0 + or.l d0,joyb + ; + qkey $44 + bne.s .fire + qkey $45 + beq.s .encode +.fire move #-1,joyb +.encode lea joyx(pc),a0 + jsr encodejoy + and #$1c,d0 ;fire/up/down only! + rts + + ;bit: + ;0 = joyx -1 + ;1 = joyx 1 + ;2 = joyy -1 + ;3 = joyy 1 + ;4 = joyb true + ;5 = joys true + +unselmenu move d0,-(a7) +.loop bsr readmenujoy + cmp (a7),d0 + beq.s .loop + move (a7)+,d0 + rts + +readmenusel ;read menu selection! + tst linked + bne.s .link + ; + ;not linked... + ; + bsr readmenujoy + bne unselmenu + rts + ; +.link bmi.s .slave + ; + ;master... + ; + bsr readmenujoy + beq.s .rts + bsr unselmenu + bsr serput + bsr serwait + and #255,d0 +.rts rts + ; +.slave bsr rbfchk + beq.s .rts + bsr serget + bsr serput + and #255,d0 + rts + +selmenu ;select a menu item...return item in d0 + ; + ;flash selected option on/off + ; + bsr optoff +.loop1 bsr vwait + bsr readmenusel + bne.s .joygot + subq #1,flashdelay + bgt.s .loop1 + ; + bsr opton +.loop2 bsr vwait + bsr readmenusel + bne.s .joygot2 + subq #1,flashdelay + bgt.s .loop2 + bra selmenu + ; +.joygot move d0,-(a7) + bsr opton + move (a7)+,d0 +.joygot2 ; + btst #2,d0 + bne.s .up + btst #3,d0 + bne.s .down + ; + ;selected! + ; + move curropt(pc),d0 + rts + ; +.up subq #1,curropt + bpl selmenu + move numopts(pc),d0 + subq #1,d0 + move d0,curropt + bra selmenu + ; +.down addq #1,curropt + move curropt(pc),d0 + cmp numopts(pc),d0 + bcs selmenu + clr curropt + bra selmenu + +finitmenu ;clean up menu operation + ; + bsr clspic + bsr vwait + lea menustrips(pc),a5 + move numopts(pc),d2 + subq #1,d2 +.loop addq #4,a5 + move.l (a5)+,a1 + freemem menustrip + dbf d2,.loop + bra finitfontpal + +initdarktable ; + move #maxz-1,d2 + move.l sqr(pc),a0 + move.l darktable(pc),a1 + ; +.loop move d2,d3 + lsl #3,d3 + move 0(a0,d3),d3 + lsr #3,d3 + eor #15,d3 + move d3,(a1)+ + ; + dbf d2,.loop + ; + rts + +initrawmap lea ascmap(pc),a0 + lea rawmap(pc),a1 + bsr .loop + lea ascmap2(pc),a0 + lea shiftmap(pc),a1 + ; +.loop moveq #0,d0 + move.b (a0)+,d0 + cmp #$ff,d0 + beq.s .rts +.loop2 move.b (a0)+,d1 + beq.s .loop + move.b d1,0(a1,d0) + addq #1,d0 + bra.s .loop2 +.rts rts + +ascmap dc.b $1,'1234567890',0 + dc.b $10,'QWERTYUIOP',0 + dc.b $20,'ASDFGHJKL',0 + dc.b $31,'ZXCVBNM',0 + dc.b $40,' ',0 + dc.b $38,',.',0 + dc.b $ff + even + ; +ascmap2 dc.b $3a,'?',0 + dc.b $01,'!',0 + dc.b $ff + even + +rawmap ds.b 128 ;unshifted chars +shiftmap ds.b 128 ;shifted chars + +chatout ds.b 32 +chatoutput dc 0 +chatoutget dc 0 + +chatin ds.b 32 +chatinput dc 0 +chatinget dc 0 + +shiftdown dc 0 ;shift key status + +rawkeyread ;a1=matrix! hi bit of keycode=1 if key up! + ; + move.l d2,-(a7) + ; + moveq #0,d2 + move.b $bfec01,d2 + not.b d2 + ror.b #1,d2 + or.b #$40,$bfee01 + ; + move d2,d0 + move d2,d1 + and #7,d1 + lsr #3,d0 + bclr #4,d0 + bne.s .clrkey + ; +.setkey bset d1,0(a1,d0) ;key on! + ; + move chatok(pc),d0 + beq.s .skip + ; + lea rawmap(pc),a0 + move.b $60>>3(a1),d0 + and #7,d0 + beq.s .unshft + lea shiftmap(pc),a0 +.unshft move.b 0(a0,d2),d0 ;asc! + beq.s .skip + ; + ;ok, add to chat out buffer! + ; + lea chatout(pc),a0 + move chatoutput(pc),d1 + and #31,d1 + move.b d0,0(a0,d1) + addq #1,chatoutput + ; + bra.s .skip + ; +.clrkey bclr d1,0(a1,d0) + ; +.skip moveq #6,d0 ;wait 6 scanlines? + moveq #-1,d1 +.loop move d1,d2 +.loop2 move.l $dff004,d1 + lsr.l #8,d1 + and #$1ff,d1 + cmp d2,d1 + beq.s .loop2 + dbf d0,.loop + ; + and.b #$bf,$bfee01 + ; + move.l (a7)+,d2 + rts + +rawtable dc.l rawmatrix +rawstuff dc.l 0,0 +ciaa dc.l 0 +ciaaname dc.b 'ciaa.resource',0 + even +rawmatrix dc.l 0,0,0,0 ;128 key bits + +savefile ;a0=name, a1=mem, d0=length + push + ; + movem.l d0/a0-a1,-(a7) + ; + move.l dosbase,a6 + move.l a0,d1 + move.l #1006,d2 + jsr -30(a6) + move.l d0,d7 + bne.s .ok + ; + lea wpmess(pc),a0 + bsr qmenu + ; +.help bsr vwait + ; + movem.l (a7),d0/a0-a1 + move.l dosbase,a6 + move.l a0,d1 + move.l #1006,d2 + jsr -30(a6) + move.l d0,d7 + beq.s .help + ; + move.l d7,-(a7) + bsr finitqmenu + move.l (a7)+,d7 + ; +.ok move.l d7,d1 + movem.l (a7)+,d0/a0-a1 + move.l a1,d2 + move.l d0,d3 + jsr -48(a6) + ; + move.l d7,d1 + jsr -36(a6) + ; +.done pull + rts + +wpmess dc.b 1 + dc.b 'please write enable the gloom data disk!',0 + even + +fileheader ds.b 14 +loadmem dc.l 0 + +loadfileabs move.l a1,loadmem + bra.s loadfile_ + +loadfile clr.l loadmem + ; +loadfile_ ;a0=name, d1=memtype + ; + ;decrunch file if nec. + ; + ;return d0=pointer + ; + push + ; + move.l d1,d5 ;save memtype + move.l dosbase,a6 + ; + move.l a0,d1 + move.l #1005,d2 + jsr -30(a6) ;open it! + move.l d0,d7 ;handle + beq .err + ; + move.l d7,d1 + moveq #0,d2 + moveq #1,d3 + jsr -66(a6) ;seek to end + ; + move.l d7,d1 + moveq #0,d2 + moveq #-1,d3 ;seek to start + jsr -66(a6) + ; + move.l d0,d4 ;length=prev filepos + ; + move.l d7,d1 + move.l #fileheader,d2 + moveq #14,d3 + jsr -42(a6) ;read! + ; + move.l d0,-(a7) ;how many bytes read! + ; + move.l d7,d1 + moveq #0,d2 + moveq #-1,d3 ;back to start + jsr -66(a6) + ; + cmp.l #14,(a7)+ + bcs.s .nocrunch + ; + moveq #0,d6 + move.l fileheader(pc),d0 + cmp.l #'CrM2',d0 + beq.s .crunch + cmp.l #'CrM!',d0 + bne.s .nocrunch + ; +.crunch cmp.l fileheader+6(pc),d4 ;loadlen>destlen? + bcc.s .skip + move.l fileheader+6(pc),d4 ;length to allocate +.skip ; + moveq #14,d6 + add fileheader+4(pc),d6 + bsr loadit + move.l d0,a0 ;src + add.l d6,d0 ;dest + move.l d0,a1 + ; + jsr flushc + jsr decrm+32 + jsr flushc + ; + pull + rts +.nocrunch ; + bsr loadit + ; +.err pull + rts + +loadit ;d4=length to alloc/read, d5=memtype + ;seek to start, load, close and return base in d0. + ; + move.l loadmem(pc),d0 + bne.s .noalloc + ; + move.l d4,d0 + move.l d5,d1 + move.l d6,d2 ;offset XS + allocmem2 loadfile + sub.l d6,d0 +.noalloc ; + move.l d7,d1 + move.l d0,d2 + move.l d4,d3 ;read len + jsr -42(a6) ;read + move.l d7,d1 + jsr -36(a6) ;close + move.l d2,d0 + ; + rts + +calcpalettes ;generate 16 versions of palette + ; + lea paladjust,a5 + move.l map_rgbsat(pc),a4 ;end + move.l planar_remap(pc),a1 ;remap table + lea palettes(pc),a2 + moveq #0,d7 ;darkness + ; +.loop move.l (a2)+,a3 + move.l map_rgbs(pc),a0 ;original RGBs + ; +.loop2 move (a0)+,d0 ;RGB value 0,1,2... + move d0,d1 + move d0,d2 + ; + lsr #8,d0 + and #$00f,d0 ;R + sub d7,d0 + bgt.s .rok + moveq #1,d0 +.rok ; + lsr #4,d1 + and #$00f,d1 + sub d7,d1 + bpl.s .gok + moveq #0,d1 +.gok ; + and #$00f,d2 + sub d7,d2 + bpl.s .bok + moveq #0,d2 +.bok ; + lsl #8,d0 ;recombine + lsl #4,d1 + or d1,d0 + or d2,d0 ;correct 4bit RGB! + ; + move.b 0(a1,d0),d0 ;map from RGB->LUT + and #$ff,d0 + move.b 0(a5,d0),(a3)+ ;scrambled adjust + ; + cmp.l a4,a0 + bcs.s .loop2 + ; + addq #1,d7 + cmp #16,d7 + bcs.s .loop + ; + rts + +dispoff tst dispnest + bne.s .skip + bsr vwait + tst os + bne.s .skip + move #$01a0,$dff096 ;bp/cop/spr off! +.skip addq #1,dispnest + rts + +dispon subq #1,dispnest + bgt.s .skip + bsr vwait + tst os + bne.s .skip + move.l coplist(pc),$dff080 + move #0,$dff088 + move #$8080,$dff096 ;cop on! + move #0,$dff088 +.skip rts + +forbid tst os + bne.s .rts + ; + push + moveq #49,d0 +.fl bsr vwait + dbf d0,.fl + bsr ownblitter + move.l 4.w,a6 + jsr -132(a6) + move #$8400,$dff096 ;bltnasty! + pull + ; +.rts rts + +permit tst os + bne.s .rts + ; + push + move.l 4.w,a6 + jsr -138(a6) + bsr disownblitter + pull + ; +.rts rts + +initvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -168(a6) ;addintserver + pull + rts + +vbcounter dc 0 +framecnt dc 0 + +frame dc 0,0 + +vbintserver dc.l 0,0 + dc.b 2,0 + dc.l 0 +vbintdata dc.l vbcounter +vbintcode dc.l vbhandler + +rbfintserver dc.l 0,0 + dc.b 2,0 + dc.l 0 +rbfintdata dc.l rbuff +rbfintcode dc.l rbf + +finitvbint push + move.l 4.w,a6 + moveq #5,d0 + lea vbintserver,a1 + jsr -174(a6) + pull + rts + +blitnest dc 0 + +ownblitter tst blitnest + bne.s .skip + move.l grbase,a6 + jsr -456(a6) +.skip addq #1,blitnest + rts + +disownblitter subq #1,blitnest + bgt.s .rts + move.l grbase,a6 + jmp -462(a6) +.rts rts + +grname dc.b 'graphics.library',0 + even +grbase dc.l 0 +oldview dc.l 0 +dosname dc.b 'dos.library',0 + even +dosbase dc.l 0 + +showwindow ;a0=window + ; + push + ; + ;poke bitmaps... + move.l wi_slice(a0),a1 + move.l (a1),a1 + move.l wi_bmap(a0),d0 + moveq #6,d1 ;7 bitplanes +.loop move d0,6(a1) + swap d0 + move d0,2(a1) + swap d0 + add.l #40,d0 + addq #8,a1 + dbf d1,.loop + ; + ;create DIW + ; + move.l wi_slice(a0),a1 + move.l (a1),a1 + ; + move wi_y(a0),d0 + move d0,d1 + add wi_bh(a0),d1 + lsl #8,d0 + or #$81,d0 + move d0,56+2(a1) + lsl #8,d1 + or #$c1,d1 + move d1,56+6(a1) + ; + ;create wait! + ; + move wi_y(a0),d0 + subq #3,d0 + move.b d0,64(a1) + ; + ;create link to next! + move.l wi_nslice(a0),a1 + move.l (a1),d0 + move.l wi_cop1(a0),a1 + add.l wi_copmem(a0),a1 + move.l wi_cop2(a0),a2 + add.l wi_copmem(a0),a2 + move d0,-6(a1) + move d0,-6(a2) + swap d0 + move d0,-10(a1) + move d0,-10(a2) + ; + pull + ; +showwindowq ;display coplist + ; + move.l wi_cop(a0),d0 + move.l wi_slice(a0),a0 + move.l (a0),a0 + ; + move d0,72+6(a0) + swap d0 + move d0,72+2(a0) + ; + rts + +finitdisplay push + ; + tst os + beq.s .noos + ; + move.l dbufinfo(pc),a1 + move.l grbase(pc),a6 + jsr -$3cc(a6) ;free dbufinfo + ; + move.l screen(pc),a0 + move.l int(pc),a6 + jsr -66(a6) + ; + pull + rts + ; +.noos move.l grbase,a6 + move.l oldview,a1 + jsr -222(a6) ;load view + jsr -270(a6) + jsr -270(a6) + move.l 38(a6),$dff080 + move #$81a0,$dff096 + move #0,$dff088 + ; + pull + rts + +initbitmap ;a0=bitmap struct, d0=bitplane 0 + ; + move bitplanes(pc),d1 + move #40,(a0) ;linemod + move #240,2(a0) + move d1,4(a0) + clr 6(a0) + lea 8(a0),a1 + subq #1,d1 + move.l #40*240,d2 +.loop move.l d0,(a1)+ + add.l d2,d0 + dbf d1,.loop + rts + +intname dc.b 'intuition.library',0 + even +int dc.l 0 + +osbitmap1 ds.b 40 +osbitmap2 ds.b 40 + +screen dc.l 0 +viewport dc.l 0 +dbufinfo dc.l 0 + +newscreen dc 0,0 ;x,y + dc 320,240 ;w,h +newscreen_d dc 8 ;depth + dc.b 0,0 ;pens +newscreen_v dc 0 ;viewmode + dc $4f ;type + dc.l 0 ;font + dc.l 0 ;title + dc.l 0 ;gadgets + dc.l osbitmap1 ;custombitmap + + ;make a new task for this window... + ;simply wait for activate/deactive and + ;modify input readers + ; +newwindow dc 0,0 ;x,y + dc 320,240 ;w,h + dc.b 0,0 ;pens + dc.l $c0000 ;idcmp flags! $40000=active, + dc.l $11940 ;flags! (RMB trap) + dc.l 0 ;gadgets + dc.l 0 ;checkmark + dc.l 0 ;title +newwindow_s dc.l 0 ;screen + dc.l 0 ;bitmap + dc -1,-1,-1,-1 ;mins/maxs + dc 15 ;type + +window dc.l 0 +msgport dc.l 0 + +newtask dcb.b 92,0 + +inputon tst active + bne.s .rts + ; + move #$4000,$dff09a + ; + lea joytable(pc),a2 + lea joytable2(pc),a3 + move.l a3,a4 +.loop move.l (a3)+,(a2)+ + cmp.l a4,a2 + bcs.s .loop + ; + move.l ciaa,a0 + movem.l $64(a0),d0-d1 + movem.l d0-d1,rawstuff + move.l rawtable(pc),$64(a0) + move.l #rawkeyread,$68(a0) + move #$c000,$dff09a + st active + ; +.rts rts + +inputoff tst active + beq.s .rts + ; + move #$4000,$dff09a + ; + lea joytable(pc),a2 + lea readnull(pc),a3 + move.l a3,a4 +.loop move.l a3,(a2)+ + cmp.l a4,a2 + bcs.s .loop + ; + move.l ciaa,a0 + movem.l rawstuff,d0-d1 + movem.l d0-d1,$64(a0) + move #$c000,$dff09a + ; + clr active + ; +.rts rts + +windowtask move.l int(pc),a6 ;intuition base + lea newwindow(pc),a0 + jsr -204(a6) ;openwindow + move.l d0,window + move.l d0,a0 + move.l 86(a0),msgport + ; + ;now, simply wait for window events! + ; + move.l 4.w,a6 +.loop move.l msgport(pc),a0 + jsr -384(a6) ;waitport! + move.l d0,-(a7) + move.l d0,a0 + move.l 20(a0),d0 + cmp.l #$40000,d0 + beq.s .activate + cmp.l #$80000,d0 + bne.s .skip + ; + bsr inputoff + bra.s .skip + ; +.activate ;activate input handlers + ; + bsr inputon + ; +.skip move.l (a7)+,a1 + jsr -378(a6) ;reply msg + bra.s .loop + +initdisplay ; + lea grname,a1 + move.l 4.w,a6 + jsr -408(a6) + move.l d0,grbase + ; + ;allocate 2 bitmaps! + ; + move #40*240,d2 ;1 bitplane (DB) + mulu bitplanes(pc),d2 + move.l d2,bmapmem + move.l d2,d0 + add.l d0,d0 ;2 for DB + moveq #2,d1 + allocmem bitmaps + move.l d0,bitmaps + add.l d2,d0 + move.l d0,bitmaps2 + ; + tst os + beq.s .noos + ; + ;OK, OS version... + ;init bitmaps and open a screen! + ; + move.l 4.w,a6 + lea intname(pc),a1 + jsr -408(a6) + move.l d0,int + ; + move.l bitmaps(pc),d0 + lea osbitmap1(pc),a0 + bsr initbitmap + move.l bitmaps2(pc),d0 + lea osbitmap2(pc),a0 + bsr initbitmap + ; + move bitplanes(pc),newscreen_d + tst aga + bne.s .agasc + move #$80,newscreen_v + ; +.agasc move.l int(pc),a6 + lea newscreen(pc),a0 + jsr -198(a6) + move.l d0,a0 + move.l a0,screen + lea 44(a0),a0 + ; + move.l a0,viewport + move.l grbase(pc),a6 + jsr -$3c6(a6) ;alocdbufinfo + move.l d0,dbufinfo + bra db + ; +.noos move.l grbase(pc),a6 + move.l 34(a6),oldview + sub.l a1,a1 + jsr -222(a6) ;loadview 0. + ; + bsr dispoff + lea copinit_aga,a0 + lea copfinit_aga,a1 + tst aga + bne .aga + lea copinit_ecs,a0 + lea copfinit_ecs,a1 +.aga movem.l a0-a1,-(a7) + move.l a1,d0 + sub.l a0,d0 + move.l d0,d2 + moveq #2,d1 + allocmem coplist + move.l d0,coplist + move.l d0,a2 ;dest + movem.l (a7)+,a0-a1 + lsr.l #2,d2 + subq #1,d2 +.loop move.l (a0)+,(a2)+ + cmp.l a1,a0 + bcs.s .loop + ; +db ;double buffering + ; + movem.l bitmaps(pc),d0-d1 + cmp.l drawbitmap(pc),d0 + beq.s .show + exg d0,d1 +.show movem.l d0-d1,showbitmap + move.l todb(pc),a0 + jmp (a0) + +db_ecs move.l coplist(pc),a0 + moveq #40,d2 + lea bitplanes_ecs-copinit_ecs(a0),a0 + moveq #5,d1 ;6 bitplanes +.loop0 move d0,6(a0) + swap d0 + move d0,2(a0) + swap d0 + add.l d2,d0 + addq #8,a0 + dbf d1,.loop0 + rts + +db_aga move.l coplist(pc),a0 + moveq #40,d2 + lea bitplanes_aga-copinit_aga(a0),a0 + moveq #7,d1 ;8 bitplanes +.loop move d0,6(a0) + swap d0 + move d0,2(a0) + swap d0 + add.l d2,d0 + addq #8,a0 + dbf d1,.loop + rts + +db_os move.l viewport(pc),a0 + lea osbitmap1(pc),a1 + cmp.l 8(a1),d0 + beq.s .got + lea osbitmap2(pc),a1 +.got move.l dbufinfo(pc),a2 + move.l grbase(pc),a6 + jmp -$3ae(a6) ;changevpbitmap + +;a0=bitmap, a1=screen, a3=intution, a6=graphics +; +;.agashowbitmap +; MOVE.l a0,d4:MOVE.l (a1),a2:MOVE.l 4(a1),d0:BNE gotdbuff +; MOVEM.l a1-a2,-(a7):LEA 44(a2),a0:JSR -$3c6(a6):MOVEM.l (a7)+,a1-a2 +; ;_AllocDBufInfo(a6): +; MOVE.l d0,4(a1) +;gotdbuff: +; LEA 44(a2),a0:MOVE.l d4,a1:MOVE.l d0,a2:JSR -$3ae(a6) ;ChangeVPBitMap_ +; RTS + +allocmem2_ ; + ;as below, but d2.l = extra mem at start to set aside + ; + push + moveq #16,d3 + add.l d2,d3 + bra.s amem_ + +allocmem_ ; + ;d0=size, d1=requirements, a0=text field + ; + ;set up node before allocmem for quick freemem: + ; + ;00.l : next + ;04.l : real size + ;08.l : offset to user mem (normally 16, but CM fucks things up) + ;12.l : pointer to text field for debugging + ; + push + moveq #16,d3 ;offset + ; +amem_ move.l a0,d4 + add.l d3,d0 + ; + move.l d0,d2 ;len + move.l a0,d4 ;text + move.l 4.w,a6 + jsr -198(a6) + tst.l d0 + bne.s .skip + ; + warn #$f00 + ; +.skip move.l d0,a0 + move.l memlist,(a0) ;next + move.l a0,memlist + movem.l d2-d4,4(a0) + add.l d3,a0 + move.l a0,d0 + ; + pull + rts + +freememlist push + ; +.more move.l memlist,d0 + beq.s .done + move.l d0,a2 + ; + ifne debugmem + move.l 12(a2),a0 ;text field + move.l a0,d2 + moveq #-1,d3 +.loop addq.l #1,d3 + tst.b (a0)+ + bne.s .loop + ; + move.l outhand,d1 + move.l dosbase,a6 + jsr -48(a6) + endc + ; + move.l a2,a1 + ; + move.l (a1),memlist + move.l 4(a1),d0 + move.l 4.w,a6 + jsr -210(a6) + bra.s .more + ; +.done pull + rts + +freemem_ ; + ;a1=address to free! + ; + push + ; + ifne debugmem + move.l a0,-(a7) ;error mess + elseif + endc + ; + move.l a1,a2 ;mem to find! + lea memlist(pc),a1 + ; +.more move.l a1,a0 ;prev + move.l (a1),d0 + beq.s .err + move.l d0,a1 + ; + move.l a1,a3 + add.l 8(a3),a3 + cmp.l a3,a2 + bne.s .more + ; + move.l (a1),(a0) + move.l 4(a1),d0 + move.l 4.w,a6 + jsr -210(a6) + bra.s .done + ; +.err warn #$ff0 + ifne debugmem + move.l (a7),freememerr + endc +.done ; + ifne debugmem + addq #4,a7 + endc + ; + pull + rts + +freememerr dc.l 0 + +initmap ;map address in map_map... + ;load in textures, do colour mapping etc. + ; + push + ; + move.l map_map,a0 + ; + move.l a0,a1 + add.l (a0),a1 + move.l a1,map_grid + ; + move.l a0,a1 + add.l 4(a0),a1 + move.l a1,map_poly + ; + move.l a0,a1 + add.l 8(a0),a1 + move.l a1,map_ppnt + ; + move.l a0,a1 + add.l 12(a0),a1 + move.l a1,map_anim + ; + move.l a0,a1 + add.l 16(a0),a1 + move.l a1,map_txts + ; + move.l (a0),d0 + sub.l #25*4,d0 + add.l a0,d0 + move.l d0,map_events + ; + move.l map_rgbsfrom2,map_rgbsat + ; + pull + rts + +freetxts lea textscrns,a6 + moveq #7,d7 +.loop move.l (a6)+,d0 + beq.s .skip + move.l d0,a1 + freemem freetxts + clr.l -4(a6) +.skip dbf d7,.loop + rts + +loadtxts push + ; + lea textures,a4 + move.l map_txts,a5 ;texture names + lea textscrns,a6 + moveq #7,d7 + ; +.ltl lea .temp(pc),a0 + ; +.ltl2 move.b (a5)+,(a0)+ + bne.s .ltl2 + moveq #0,d0 + cmp.l #.temp+1,a0 + beq.s .notext + lea .temp2(pc),a0 + moveq #1,d1 + jsr loadfile + ; +.notext move.l d0,(a6)+ ;texture! + beq.s .skip + ; + ;do colour mapping stuff! + ; + move.l d0,-(a7) + ; + move.l d0,a0 + add.l (a0),a0 + move.l a0,a2 + bsr addpal + ; + move.l (a7),a0 + addq #4,a0 + move.l a2,a1 + bsr remap + ; + move.l (a7)+,a0 + addq #4,a0 + moveq #19,d0 + move.l #64*65,d1 + ; +.mtxt move.l a0,(a4)+ + add.l d1,a0 + dbf d0,.mtxt +.skip ; + dbf d7,.ltl + ; + pull + rts + +.temp2 dc.b 'txts/' +.temp ds.b 64 + even + +remapanim ;a0=anim to remap... + ; + push + ; + move.l a0,a6 + movem (a6),d6-d7 + lsl d6,d7 ;how many frames! + subq #1,d7 + ; + move.l a6,a0 + add.l an_pal(a0),a0 + bsr addpal + ; + lea an_size(a6),a5 + ; +.loop move.l a6,a0 + add.l (a5)+,a0 ;start of shape + addq #4,a0 ;skip handles + movem (a0)+,d0-d1 ;w/h + mulu d1,d0 + lea 0(a0,d0.l),a1 ;end + bsr remap + ; + dbf d7,.loop + ; + pull + rts + +remap ;a0=start of byte data, a1=end of byte data + ; + push + ; + moveq #0,d0 + move.l maptable,a2 + ; +.loop cmp.l a1,a0 + bcc.s .done + move.b (a0),d0 + move.b 0(a2,d0),(a0)+ + bra.s .loop +.done ; + pull + rts + +addpal ;add palette in a0 to end of map_rgb + ; + push + ; + move (a0)+,d0 + subq #1,d0 + move.l map_rgbsat,a2 ;end of rgbs + move.l maptable,a3 + ; + clr.b (a3) ;0=0 + move.b #255,255(a3) ;-1=-1 + move.b #254,254(a3) ;-1=-1 + move.b #253,253(a3) ;-1=-1 + move.b #252,252(a3) ;-1=-1 + move.b #251,251(a3) ;-1=-1 + move.b #250,250(a3) ;-1=-1 + move.b #249,249(a3) ;-1=-1 + ; + moveq #1,d2 ;colour 1! + ; +.loop move (a0)+,d1 ;colour...does it exist? + bmi.s .next ;not used! + move.l map_rgbs,a1 + ; +.loop2 cmp.l a2,a1 + bcc.s .no + cmp (a1)+,d1 + beq.s .yes + bra.s .loop2 + ; +.no ;colour doesn't exist! + ;may have to do a 'near match' routine if we run out of colours + ; + move d1,(a2)+ + move.l a2,a1 + ; +.yes subq #2,a1 + sub.l map_rgbs,a1 + move.l a1,d1 + lsr #1,d1 ;real colour + ; + cmp #256,d1 + bcs.s .ok + ; + warn #$00f + ; +.ok move.b d1,0(a3,d2) + ; +.next addq #1,d2 + dbf d0,.loop + ; + move.l a2,map_rgbsat + ; + pull + rts + + ;coll types... + ; + ;1...bullet from player 1 + ;2...bullet from player 2 + ;4...bullet from monster + ;8...player 1 + ;16..player 2 + ; + + dc.l 0,player,tokens + ; +objlist ;list of objects to be freed... + ; + dc.l marine,baldy,terra,ghoul,demon,phantom + dc.l lizard,deathhead,dragon,troll,0 + +player dc.l 0,0 ;main, chunks + dc.b 'objs/player',0,0 + even +tokens dc.l 0,0 + dc.b 'objs/tokens',0,0 + even +marine dc.l 0,0 + dc.b 'objs/marine',0,0 + even +baldy dc.l 0,0 + dc.b 'objs/baldy',0,0 + even +terra dc.l 0,0 + dc.b 'objs/terra',0,0 + even +ghoul dc.l 0,0 + dc.b 'objs/ghoul',0,0 + even +demon dc.l 0,0 + dc.b 'objs/demon',0,0 + even +phantom dc.l 0,0 + dc.b 'objs/phantom',0,0 + even +lizard dc.l 0,0 + dc.b 'objs/lizard',0,0 + even +deathhead dc.l 0,0 + dc.b 'objs/deathhead',0,0 + even +dragon dc.l 0,0 + dc.b 'objs/dragon',0,0 + even +troll dc.l 0,0 + dc.b 'objs/troll',0,0 + even + +objinfo +player1_ dc.l player1 +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l $d0000 +_ob_shape dc.l player +.ob_logic dc.l playerlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l playerhit +.ob_die dc.l playerdie + ; +.ob_eyey dc -pl_eyey ;eye height +.ob_firey dc -pl_firey ;where bullets come from +.ob_gutsy dc -pl_gutsy +.ob_othery dc 0 +p1_ob_colltype dc 8 +p1_ob_collwith dc 6 ;6=combat, 4=game +p1_ob_cntrl + ifne cd32 + dc 3 ;for player 0,1=joyport, 2=keys + elseif + dc 0 + endc +.ob_damage dc 1 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 1 +.ob_range dc 1 +.ob_weapon dc 0 ;weapon type...0...25 +.ob_reload dc.b ireload,0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 ;4! +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +objinfof + +oilen equ objinfof-objinfo + +player2_ dc.l player2 +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l $d0000 +.ob_shape dc.l player +.ob_logic dc.l playerlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l playerhit +.ob_die dc.l playerdie +.ob_eyey dc -pl_eyey ;eye height +.ob_firey dc -pl_firey ;where bullets come from +.ob_gutsy dc -pl_gutsy +.ob_othery dc 0 +p2_ob_colltype dc 16 +p2_ob_collwith dc 5 ;5=combat, 4=game +p2_ob_cntrl + ifne cd32 + dc 4 ;for player 0,1=joyport, 2=keys, 3=serial + elseif + dc 1 + endc + +.ob_damage dc 1 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 1 +.ob_range dc 1 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc.b ireload,0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 ;4! +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +health_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l healthgot +.ob_die dc.l healthgot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $20000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +weapon_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon2 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 1 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +thermo_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l thermogot +.ob_die dc.l thermogot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $00000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +infra_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l thermogot +.ob_die dc.l thermogot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $00000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +invisi_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l invisigot +.ob_die dc.l invisigot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $10000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +invinc_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l rts +.ob_render dc.l drawshape_1 +.ob_hit dc.l invincgot +.ob_die dc.l invincgot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $20000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +dragon_ dc.l dummy +.ob_rotspeed dc.l $ffff0000 +.ob_movspeed dc.l $c0000 +.ob_shape dc.l dragon +.ob_logic dc.l dragonlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l rts ;hurtngrunt +.ob_die dc.l blowdragon ;object +.ob_eyey dc -64 ;eye height +.ob_firey dc -144 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 10 +.ob_hitpoints dc 250 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 16 +.ob_range dc 32 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $300 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +bouncy_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l tokens +.ob_logic dc.l bouncylogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l bouncygot +.ob_die dc.l bouncygot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l $30000 +.ob_framespeed dc.l 0 +.ob_base dc 0 +.ob_range dc 0 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +marine_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $60000 +.ob_shape dc.l marine +.ob_logic dc.l monsterlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 1 +.ob_hitpoints dc 5 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 16 +.ob_range dc 32 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +baldy_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $40000 +.ob_shape dc.l baldy +.ob_logic dc.l baldylogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 2 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 3 +.ob_punchrate dc 4 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $220 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +terra_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $20000 +.ob_shape dc.l terra +.ob_logic dc.l terralogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtterra ;ngrunt +.ob_die dc.l blowterra +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 1 +.ob_hitpoints dc 35 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $6000 +.ob_base dc 32 +.ob_range dc 48 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_firerate dc 12 ;how often terra fires +.ob_bouncecnt dc 0 ;how many times +.ob_firecnt dc 5 +.ob_scale dc $280 +.ob_apad dc 0 +.ob_blood dc $fff ;color AND for blood +.ob_ypad dc 1 + +ghoul_ dc.l dummy +.ob_rotspeed dc.l $0 +.ob_movspeed dc.l $80000 +.ob_shape dc.l ghoul +.ob_logic dc.l ghoullogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtghoul +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -64 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 5 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l 0 +.ob_base dc 32 +.ob_range dc 48 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_firerate dc 12 ;how often terra fires +.ob_bouncecnt dc 0 ;how many times +.ob_firecnt dc 5 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $80f0 ;color AND for blood +.ob_ypad dc 1 + +phantom_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $a0000 +.ob_shape dc.l phantom +.ob_logic dc.l phantomlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 3 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $a000 +.ob_base dc 8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 7 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $280 +.ob_apad dc 0 +.ob_blood dc $ff0 ;color AND for blood +.ob_ypad dc 1 + +demon_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $70000 +.ob_shape dc.l demon +.ob_logic dc.l demonlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtngrunt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -90 ;where bullets come from +.ob_gutsy dc -72 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 5 +.ob_hitpoints dc 25 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $7000 +.ob_base dc 32 +.ob_range dc 4 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 5 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $380 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +weapon1_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon1 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 0 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon2_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon2 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 1 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon3_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon3 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 2 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon4_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon4 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 3 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +weapon5_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l 0 +.ob_shape dc.l weapon5 +.ob_logic dc.l weaponlogic +.ob_render dc.l drawshape_1 +.ob_hit dc.l weapongot +.ob_die dc.l weapongot +.ob_eyey dc 0 ;eye height +.ob_firey dc 0 ;where bullets come from +.ob_gutsy dc 0 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 0 +.ob_hitpoints dc 0 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $08000 +.ob_base dc 4 +.ob_range dc 4 +.ob_weapon dc 4 +.ob_reload dc 0 +.ob_hurtpause dc 0 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc 0 ;color AND for blood +.ob_ypad dc 0 + +lizard_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $60000 +.ob_shape dc.l lizard +.ob_logic dc.l lizardlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l lizhurt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 2 +.ob_hitpoints dc 10 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 8 +.ob_range dc 8 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 2 +.ob_punchrate dc 3 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $240 +.ob_apad dc 0 +.ob_blood dc $f0f ;color AND for blood +.ob_ypad dc 1 + +deathhead_ dc.l dummy +.ob_rotspeed dc.l 0 +.ob_movspeed dc.l $c0000 +.ob_shape dc.l deathhead +.ob_logic dc.l deathheadlogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l hurtdeath +.ob_die dc.l blowdeath +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -96 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 3 +.ob_hitpoints dc 35 +.ob_think dc 0 +.ob_frame dc.l $8000 +.ob_framespeed dc.l $6000 +.ob_base dc -8 +.ob_range dc 16 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 10 +.ob_punchrate dc 0 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $200 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +troll_ dc.l dummy +.ob_rotspeed dc.l $30000 +.ob_movspeed dc.l $60000 +.ob_shape dc.l troll +.ob_logic dc.l trolllogic +.ob_render dc.l drawshape_8 +.ob_hit dc.l trollhurt +.ob_die dc.l blowobject +.ob_eyey dc -64 ;eye height +.ob_firey dc -60 ;where bullets come from +.ob_gutsy dc -64 +.ob_othery dc 0 +.ob_colltype dc 0 +.ob_collwith dc 24+3 +.ob_cntrl dc 0 ;for player 0,1=joyport +.ob_damage dc 3 +.ob_hitpoints dc 18 +.ob_think dc 0 +.ob_frame dc.l 0 +.ob_framespeed dc.l $4000 +.ob_base dc 8 +.ob_range dc 8 +.ob_weapon dc 0 ;weapon type... +.ob_reload dc 0 +.ob_hurtpause dc 2 +.ob_punchrate dc 3 +.ob_bouncecnt dc 0 +.ob_something dc 0 +.ob_scale dc $240 +.ob_apad dc 0 +.ob_blood dc $f00 ;color AND for blood +.ob_ypad dc 1 + +abouttext dc.b 14 + dc.b 'GLOOM',0 + dc.b 0 + dc.b 'A BLACK MAGIC GAME',0 + dc.b 0 + dc.b 'PROGRAMMED BY MARK SIBLY',0 + dc.b 'GRAPHICS BY THE BUTLER BROTHERS',0 + dc.b 'MUSIC BY KEV STANNARD',0 + dc.b 'AUDIO BY US',0 + dc.b 'PRODUCED BY US',0 + dc.b 'DESIGNED BY US',0 + dc.b 'GAME CODED IN DEVPAC2',0 + dc.b 'UTILITIES CODED IN BLITZ BASIC 2',0 + dc.b 'RENDERED IN DPAINT3 AND DPAINT4',0 + dc.b 'DECRUNCHING CODE BY THOMAS SCHWARZ',0 + even + +sqrinc incbin sqr.bin + +weapon1 dc.l bullet1,sparks1 +weapon2 dc.l bullet2,sparks2 +weapon3 dc.l bullet3,sparks3 +weapon4 dc.l bullet4,sparks4 +weapon5 dc.l bullet5,sparks5 + +bullet1 incbin bullet1.bin +bullet2 incbin bullet2.bin +bullet3 incbin bullet3.bin +bullet4 incbin bullet4.bin +bullet5 incbin bullet5.bin + +sparks1 incbin sparks1.bin +sparks2 incbin sparks2.bin +sparks3 incbin sparks3.bin +sparks4 incbin sparks4.bin +sparks5 incbin sparks5.bin + +medplayer incbin medplay +decrm incbin decrm + +castrotsinc incbin castrots128.bin +camrotsinc incbin camrots.bin ;256 +camrots2inc incbin camrots2.bin ;1024 +chatfont incbin chatfont.bin + +copinit_ecs dc $096,$120 + ; + dc $08e,$2c81,$090,$1cc1 ;320X240 + dc $092,$38,$094,$d0,$102,0,$104,0,$106,0 + dc $100,$6200,$108,5*40,$10a,5*40,$10c,0 + ; + ;palette layout: + ; + ;hinybs of first 32,lonybs,hinybs of second 32,lonybs + ; +palette_ecs dc $180,0,$182,0,$184,0,$186,0 + dc $188,0,$18a,0,$18c,0,$18e,0 + dc $190,0,$192,0,$194,0,$196,0 + dc $198,0,$19a,0,$19c,0,$19e,0 + dc $1a0,0,$1a2,0,$1a4,0,$1a6,0 + dc $1a8,0,$1aa,0,$1ac,0,$1ae,0 + dc $1b0,0,$1b2,0,$1b4,0,$1b6,0 + dc $1b8,0,$1ba,0,$1bc,0,$1be,0 + ; +bitplanes_ecs dc $e0,0,$e2,0 + dc $e4,0,$e6,0 + dc $e8,0,$ea,0 + dc $ec,0,$ee,0 + dc $f0,0,$f2,0 + dc $f4,0,$f6,0 + ; + dc 26<<8+1,$fffe + ; +sprites_ecs dc $140,0,$142,0,$144,0,$146,0 + dc $148,0,$14a,0,$14c,0,$14e,0 + dc $150,0,$152,0,$154,0,$156,0 + dc $158,0,$15a,0,$15c,0,$15e,0 + dc $160,0,$162,0,$164,0,$166,0 + dc $168,0,$16a,0,$16c,0,$16e,0 + dc $170,0,$172,0,$174,0,$176,0 + dc $178,0,$17a,0,$17c,0,$17e,0 + ; + dc 32<<8+1,$fffe,$096,$8100 + ; + dc.l $fffffffe +copfinit_ecs ; + +cols32 macro ;bank,losel + dc $106,(\1<<13)|(\2<<9) + dc $180,0,$182,0,$184,0,$186,0 + dc $188,0,$18a,0,$18c,0,$18e,0 + dc $190,0,$192,0,$194,0,$196,0 + dc $198,0,$19a,0,$19c,0,$19e,0 + dc $1a0,0,$1a2,0,$1a4,0,$1a6,0 + dc $1a8,0,$1aa,0,$1ac,0,$1ae,0 + dc $1b0,0,$1b2,0,$1b4,0,$1b6,0 + dc $1b8,0,$1ba,0,$1bc,0,$1be,0 + endm + +copinit_aga ;copperlist for AGA amigas + ; + dc $1fc,15,$096,$120 + ; + dc $08e,$2c81,$090,$1cc1 + dc $092,$38,$094,$a0,$102,0,$104,0,$106,0 + dc $100,$7200,$108,7*40,$10a,7*40,$10c,0 + ; + ;palette layout: + ; + ;hinybs of first 32,lonybs,hinybs of second 32,lonybs + ; +palette_aga cols32 0,0 + cols32 0,1 + cols32 1,0 + cols32 1,1 + cols32 2,0 + cols32 2,1 + cols32 3,0 + cols32 3,1 + cols32 4,0 + cols32 4,1 + cols32 5,0 + cols32 5,1 + cols32 6,0 + cols32 6,1 + cols32 7,0 + cols32 7,1 + ; +bitplanes_aga dc $e0,0,$e2,0 + dc $e4,0,$e6,0 + dc $e8,0,$ea,0 + dc $ec,0,$ee,0 + dc $f0,0,$f2,0 + dc $f4,0,$f6,0 + dc $f8,0,$fa,0 + dc $fc,0,$fe,0 + ; + dc 26<<8+1,$fffe + ; +sprites_aga dc $140,0,$142,0,$144,0,$146,0 + dc $148,0,$14a,0,$14c,0,$14e,0 + dc $150,0,$152,0,$154,0,$156,0 + dc $158,0,$15a,0,$15c,0,$15e,0 + dc $160,0,$162,0,$164,0,$166,0 + dc $168,0,$16a,0,$16c,0,$16e,0 + dc $170,0,$172,0,$174,0,$176,0 + dc $178,0,$17a,0,$17c,0,$17e,0 + ; + dc 32<<8+1,$fffe,$096,$8100 + ; + dc.l $fffffffe +copfinit_aga ; + +paladjust ds.b 256 ;remaping for scrambled bitplanes +map_rgbs_ ds.w 256 ;4bit RGB palette for a game diff --git a/gloombrush b/gloombrush new file mode 100644 index 0000000000000000000000000000000000000000..ee3388192b32a0538cc6ec79a4f278ead1f8ab12 GIT binary patch literal 17580 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

  • @1}RIoPM%AwIcuS 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 g#LT=B&oC5K2E+206%#%VgLXD literal 0 HcmV?d00001 diff --git a/gloombrush.pal b/gloombrush.pal new file mode 100644 index 0000000000000000000000000000000000000000..1487ce6ad65972a29c151cef4616ef10e8c7a041 GIT binary patch literal 512 zcmbWuy=zlZ7=ZEjeBE=-d(OG%hO`Ek(wISTYMM+AlA6S!gSezqhY;(vV?YSEAku+doV==XZbXIF|5G)c9s*7O%26_064*-A%&(Hi+>?g zzoICw$SgWJfn!0@r+5Q*Ma4XnllG#TBA3K9+U9e1Uq|APDw4duAYRLgd(30lkX4n@ zlfj8DsV&u@$Erp$x?m217RzAPuj_JnfK%?enjy2gsy||#_3$REsF;2a5^_$@s995% z1H2Wau@)*F`vqKLUrfX8nx>6a!XIFZ_Us(HY+`vwC;T?f%WpOo$Mz9zVj_Q=dGp4$ zf*-C6p?xA=;0n8H+U|x+;Fnpp8+L`>cWrU%w*7n4^LO1_JK;8E=vK+JdFDE9i`U#M eIpz<=!0p(t;egh|eR41SKt6|`aLNBvr~d$^6lhrh literal 0 HcmV?d00001 diff --git a/gloomcfg b/gloomcfg new file mode 100644 index 0000000..adde25c --- /dev/null +++ b/gloomcfg @@ -0,0 +1 @@ +E blackmagic_1 diff --git a/gloomcfg.bak b/gloomcfg.bak new file mode 100644 index 0000000..2e2d8eb --- /dev/null +++ b/gloomcfg.bak @@ -0,0 +1 @@ +C c2p/blackmagic_c2p_1 diff --git a/gloomcfg.info b/gloomcfg.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 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%0Ae%?!2o-E^ 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 literal 0 HcmV?d00001 diff --git a/gridoffs.bin b/gridoffs.bin new file mode 100644 index 0000000000000000000000000000000000000000..42dd5d5d11ddd5c46bf17ff1d1d78421259e579e GIT binary patch literal 116 zcmXYp0S*8l2m(?6|Ky^hauY>BiK>9g&Hy{?UK>{4xkhD+YtS3LKT4AnYP!7QB(NXC I*8TDvK81fP>i_@% literal 0 HcmV?d00001 diff --git a/gridoffs3.bin b/gridoffs3.bin new file mode 100644 index 0000000000000000000000000000000000000000..6ba7842f70ee2c39a332f4a555a76d03a42dc648 GIT binary patch literal 148 zcmXAhi46cj2m*cjFWKb=&O{?PSVeU@Q>vy*lxNg%AE;)s;f@}c2k}h)TO3~(YC}5} TWfy96P)F{ZN;)d8zpnHFdx$&Z literal 0 HcmV?d00001 diff --git a/gridoffs4.bin b/gridoffs4.bin new file mode 100644 index 0000000000000000000000000000000000000000..8fac949a42055e551a19faf2df8fdea525cb088e GIT binary patch literal 420 zcmXYr0TRR@2m?{^{{P;J0BGrpYRDu+(PTTMtp2J&3?apk& zbeLZ1fGhVA1#ZB-MX!$OVcRNQ(ay9V{0)D@cliF*`AyA!>HE;gnk!H!=VI)3>Dn literal 0 HcmV?d00001 diff --git a/ground.bin b/ground.bin new file mode 100644 index 0000000000000000000000000000000000000000..71aba2410858f5fd6c243abaf403cbe4ddc01a8d GIT binary patch literal 4128 zcmeHKZ4QDk3}xC5gC<@nIX#r^*0GUDT=%<$03&^G%ga9cybpnZ$^aZ9 zl%MDTbF1cyI?QPZ;D|#LzUVQ+dsVnhAn?I!F24~p!AZMFfQ|4(071H5GxU@jM}X+D z2_8m3lP1H5>JX_t&pE=!W;L1;g+TDqtS7Mkg94_%%|Bazw*T1v%L-^h4iGzk?EJU- zCzX%&3rLoa)gPh$_*=e;T&e2a-ej3df}^yf|71PrX6v;v9;N>J&(4KyV O`i8}gw@>$QqZ_}=TZd`@ literal 0 HcmV?d00001 diff --git a/ground.iff b/ground.iff new file mode 100644 index 0000000000000000000000000000000000000000..9e7c7ce0f93fed94f8781a2909865a5b57a2d6c9 GIT binary patch literal 2272 zcmeH|L2DC16vy9ew>BoAL0ddJ2Zd4v7r#I!Nii*T?HcqTQv3+*MLh0YJbUp21iVP0 z+FK7E41)I_+EOY~^(3fJK{3?su5aFdHbp239wjfyX5Rb#{~MUiymxJ(6BAW-=B_v6 zW;{DXMB`-m#SsSXTCFLgs1-L7P9px8Br%a*j!0`AMUgRFNNg0XEo)xab-mZ?ktSa7 zyWMFt*%NX>w>mf4ysq#)S4f57?>W&?&MNiCymIv>RgUz^us&!tVt4XiQ!3L>oim?yR~N48;$-Twyt{8*rq1UsEsE4-F3w1rCGS(W z$RB0MUxEg7(aP%SE2$UlpDPl3bX$VvA-wev{K*g0mk2t$4SuNxzVQt8bp@Td3_gAi z{Nr2H?*`Cycfe~`z`q@!{(Ka=WDR`m9(eyd>WfwH_xwc3cdZy!M^iDB{sG?-tQM<+ z^X||u8#36R;r0kkl=EW~eBRF&`w9LB<@}iffBahdc`7 tH#8-}uxgzkNWP{{aCkbC?_ynSJizfB^KM^sk*`q#DF3SgC;`G40Avai1LKhnX0Vj} z2M|^N14RD+{r~^}1}F&;0n0uBNkUDN{{v#z{{xZ#LF@!53Do-k0hrD3AFTHQNC^ml YeZT=^@VR;VxQ0XqxY~O9IQcRF0Py%PWB>pF literal 0 HcmV?d00001 diff --git a/ground.s b/ground.s new file mode 100644 index 0000000..350c077 --- /dev/null +++ b/ground.s @@ -0,0 +1,158 @@ +groundcam dc.l 0 + +ground ; + ;A0=128 X 128 bitmap to map onto ground... + ;A1=address of inverse camera matrix + ; + movem.l d2-d7/a2-a6,-(a7) + ; + lea 10(a0),a0 + ; + move hite(pc),d7 + mulu copline(pc),d7 + add.l copx0(pc),d7 + move.l d7,a2 + ; + moveq #0,d6 + sub camy(pc),d6 + ext.l d6 + lsl.l #focshft,d6 + move.l d6,groundcam + ; + move maxy(pc),d7 + subq #1,d7 +ground_vloop ; + ;find Z on this scanline... + ; + move.l groundcam(pc),d6 + divs d7,d6 ;d6.w = Z + ; + move.l pal(pc),a5 + move d6,d5 + lsr #darkshft,d5 + cmp #16,d5 + bcs.s ground_ok + ; + ;OK, out of Z's...fill in with dark colour 0 QUICKLY! + ; + move.l coplinel(pc),d1 + neg.l d1 + add.l d1,a2 + bsr clstherest + bra ground_abort + ; +ground_ok move.l 0(a5,d5*4),a5 ;palette! + ; + ;Find leftmost X... + ; + move minx(pc),d5 + muls d6,d5 + asr.l #focshft,d5 + ; + move maxx(pc),d4 + muls d6,d4 + asr.l #focshft,d4 + ; + ;rotate X1,Z around camera... + ; + move d5,d0 + move d6,d1 + ; + move d0,d2 + move d1,d3 + ; + muls (a1),d0 + add.l d0,d0 + muls 2(a1),d3 + add.l d3,d3 + add.l d3,d0 + ; + muls 4(a1),d2 + add.l d2,d2 + muls 6(a1),d1 + add.l d1,d1 + add.l d2,d1 + ; + ;d0,d1.q = rotated x1,z + ; + ;rotate X2,Z around camera... + ; + move d4,d2 + move d6,d3 + ; + muls (a1),d4 + add.l d4,d4 + muls 2(a1),d3 + add.l d3,d3 + add.l d3,d4 + ; + muls 4(a1),d2 + add.l d2,d2 + muls 6(a1),d6 + add.l d6,d6 + add.l d2,d6 + ; + ;d4,d6.q = rotated x2,z + ; + move width(pc),d5 + ext.l d5 + sub.l d0,d4 ;Xadd + divs.l d5,d4 + sub.l d1,d6 ;Zadd + divs.l d5,d6 + add.l camx(pc),d0 + add.l camz(pc),d1 + ; + ;d0,d1.q=x,z + ;d4,d6.q=xadd,zadd + ; + swap d0 + swap d1 + swap d4 + swap d6 + ; + move d7,-(a7) + moveq #127,d7 + moveq #0,d2 + moveq #0,d3 + ; + sub copline(pc),a2 + move.l a2,a3 + ; + move wdiv32(pc),-(a7) + ; +ground_hloop2 moveq #31,d5 + ; +ground_hloop tst (a3) + ; +ground_br bne.s ground_skip + ; + and d7,d0 + and d7,d1 ;X/Z for fetch! + move d0,d2 + ext.l d2 + lsl.l #7,d2 + lea 0(a0,d2.l),a6 + move.b 0(a6,d1),d3 + move 0(a5,d3*2),(a3) + ; +ground_skip add.l d4,d0 + addx d2,d0 + add.l d6,d1 + addx d2,d1 + addq #4,a3 + dbf d5,ground_hloop + ; + addq #4,a3 + subq #1,(a7) + bgt.s ground_hloop2 + bne.s .kl + move wrem32(pc),d5 + bpl.s ground_hloop + ; +.kl move.l (a7)+,d7 + dbf d7,ground_vloop + ; +ground_abort movem.l (a7)+,d2-d7/a2-a6 + rts + diff --git a/hdinstall.bb2 b/hdinstall.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..25bc3b4f9c11f3d258cdba89eb40376df3f1380e GIT binary patch literal 1595 zcmb7EO^Xvj5N+cZD1IOwJP6h{K@-x(nNBvwiE~)LMNv^fJPtd(*}>VFFc}nYqrX8E z|A#j{2$H>em-Vj%Uv*D5izp%?Gu_o)Rj;bv8&Q1|qUv>1JU>!$Rh z(M?>Jm3o$!OI+&d#z!N{; zkbGiNvtCkcre%^vWs+wUCk0G-@tQXBf^0}Btc&)nPwVD5AQ>Q(A8?FkdGR8+9c`JZ zHEL^Y1L{_kWLj*W0@j|}iRv?^U|xnZ4B`tf27Ma6ijtDbBuy!zaTJeDNt;Qzf@Y7y z*#W$&qcjdRRV#LYyzvocgulhL+UJxz?^;r--mvZJTkUhEBJ_e3e-nDO$D|o(WB{O`9o)X+!Tu(ke`x6exWy6Y$0${%K0;{A zS<~sauP#$ON=-C1b$E1gcaDm(yo6yRNzI>9F;wpD9B*zG(!gY_=_45h6m|dDT-Y%j zBsbi;*n_F(({MmJnqcZw`_kR}RL|B*OBy}BF zQ&Xb*wi>;trl(m@JMUZaR+1&tO%q!JbF)69lfUVtE`v`SLM%$g*3mDv^kXJ@d}YBu zCKEHTrU&L>3J4y}sx_><;OAS4n=ELJZ-g6ZoM%om76}+}83zv1e%oa$-94SP3=XWD zW%5E5H7v%%16W>w{&{2bfiVuUCEbFD%V8eIv6T_#%nWf~A4dLW4|2X?X=A@luCB>$ jT_dp$;&9u*s~9r2^uh}tcNxsj(fReJ{YV1IVIh72^4p{U literal 0 HcmV?d00001 diff --git a/hdinstall.bb2.bak b/hdinstall.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..b0a0ae656aade1b57c6c43bad46f472b9c665b58 GIT binary patch literal 1589 zcmb7EO>fgc5M5HB5{M5W4jhn}t|Ca3CD@xZ4Gun(Zv+AaNQk2qZ&RzT9XS@LH<#al zK>QDGa6m%ol{+ebCF0H6X(|K~D2ly1yEF4<<~@tzn-E2(9pm{)5EV61)Cf!Q<48NE zAGLPeu#axDrPq4RmfP>DtF9P`!M!+5x9R?Eijqkl#IecR?KTefE|6BP5PL_+QGL~S zl%rfFA3T2kV*Sx0S=x24Tb^ho*Ka;~_5${rz2EKQen;ump3>KQHjJy>PVXR4b)DlN z&!K}S57%EwA-*Gym~wLdb+n_d_f*|=9Hgo+2U!?q(Q88w=FlY|;<^yii=@5jSpq!q zbC=|E6Psa9p_$}S668^uP#9$}rP&T`q#4Jq+^T|K0z!kWx%Tpo~q9 zzS}zVypE1$Deb>+$h%PzO*TzvsmpEpj2`}`kg5PatqCzN7Tc0|p(P%3$l)t<<}rLD!7uIl4LRzx@wW2-LQ_Ee?x>*j- z^-#fLJly)l1t_04HXpcBLbi09GjK7+WgJ@pVZzLf^1H*xcMl=w8=Iob*6rsJNS1~81$!i-0ssI2 literal 0 HcmV?d00001 diff --git a/hdinstall.bb2.info b/hdinstall.bb2.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKk8i0Zzi~&HVFflNxJYdF< z0t$fWd4^M8r>B(*m<7_s0mOW6 Ro<6Q2kpZr@j((oL3;^sed#?Zh literal 0 HcmV?d00001 diff --git a/health.bin b/health.bin new file mode 100644 index 0000000000000000000000000000000000000000..d841f007fa0220c7948187bb8be36123884cfee3 GIT binary patch literal 596 zcmZQzVANw^<8cXBDP<}TfRGG$!Kz!Umacm7_uu{HcX!}b$ngK)|Ihz_tX_5N>Z%v` zRsQ@}zx@A){;r6nt1jSI`Tu|Y_x~SOua3I9Y6E_it5)4wx@yPYzyFutC187axGKo+ yU=qKX$f1Ov4fOl+|38Q%zk^j0L4rc*KRB!ikl;{)gcTtY?9Ts$N#sz%&jtXmJ`W85 literal 0 HcmV?d00001 diff --git a/health.iff b/health.iff new file mode 100644 index 0000000000000000000000000000000000000000..4f59712087dcf4034dfdb75dc77ab3b45077be34 GIT binary patch literal 854 zcmaiy!An$86vls}Lr$;m?2yQLJY0~ zANY1gvfk{1G!-TwRDM0g_XsOCq3?wOzVDaI zWv#WN2yErq%H&h2l*!n(?Kn=cSTux6rQ&&>A=m5mAPB-RjNlMH!$;VMUD$*TSc4TP z!2-;}G~_`W3(aPeO7BCg1i z{3ytgmLnxcv>Md*sJ_H?Sze|%$K(WBQu=G_BVUzi>KCx(Cd7h|Jh&UyV$oX)lN<8&p+_p`4mxHNe z|MBg!S CKl%Rv literal 0 HcmV?d00001 diff --git a/health.iff.info b/health.iff.info new file mode 100644 index 0000000000000000000000000000000000000000..22aff80d64be2e5bf99535e67440285eea76bb98 GIT binary patch literal 236 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 SeA=t&1#p5Ypr{m1{r>~utN=d% literal 0 HcmV?d00001 diff --git a/hell_ehb.iff b/hell_ehb.iff new file mode 100644 index 0000000000000000000000000000000000000000..6226bf3889f1c9c4ec66f6471848ddf54691f108 GIT binary patch literal 53172 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�|qIR^EIU2&vBqZwww^IA#j$P+XwRt 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 Y0rG_MiSc>DB203mFf1hq+=<}LN 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 literal 0 HcmV?d00001 diff --git a/hellpic.info b/hellpic.info new file mode 100644 index 0000000000000000000000000000000000000000..6a2dce030a6a8dba9a8fb8e2e958f1c85bcfb154 GIT binary patch literal 236 zcmaDXz`)1=1KJE63@i-H42+DdGGAbVs5A>7Bddxr5Q{VbB|sPhfJ|WmnlObKEG7Q| zMAiQQk^g`H|Np-MNwN%H0s;aq h0g0J;C7xkc5C%w$1Bm(DJbhe4A_H7)J$;;f835icGS~nB literal 0 HcmV?d00001 diff --git a/help.bb2 b/help.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..87160017de94af8cf8f0411afd5b28d9ed6a5d20 GIT binary patch literal 155 zcmZQL$EaYSqm-VWR-s=~QDUgXz;GTUVrq4P8AuseHRvdu<5V!P+QiDh(7>&*Pf!D> z9H_DwqFmF~K%qfVp@E5EABTbg14E{Y?Oi4f6HTCEF@*|{q=bT*F+><7REZ|EiCLjS ar&8xmyGEvpCPRa`LZwaxP%jq)0|Nl|JSHvx literal 0 HcmV?d00001 diff --git a/help.bb2.bak b/help.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..14a0a86dbe76faa7ad6503227549ec0c2c8a062b GIT binary patch literal 130 zcmZQL$EaYSqm-VWR-s=~QDUgXz;GTUVrq4P8AuseHRvdu<5VzUVAv-JQV3L23{|*~ z10>uarchyPpwJ+pU}nsasbYJV2_#gBCbWrJp+cup=T5surivy*gSbMaP6bde7Xt$W E0EJZ`V*mgE literal 0 HcmV?d00001 diff --git a/help.bb2.info b/help.bb2.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKu5KjQ&7NB?y5ce^#F!TWFHXsgS;9%$g(sO`fQ-Esb0ok*FdJ7mt7^;Bm P1R(AL;$9%`XW#+=HTDzh literal 0 HcmV?d00001 diff --git a/hulk_ehb.iff b/hulk_ehb.iff new file mode 100644 index 0000000000000000000000000000000000000000..f61cf1a8ed84e8db3b54b25d4b308a9d18395bd4 GIT binary patch literal 55252 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

    $ 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 literal 0 HcmV?d00001 diff --git a/makeanim.bb2 b/makeanim.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..b5ae26a2ef1114864b8ef8c651948fe7065a870b GIT binary patch literal 2863 zcma)8TaVjB6rK&;-WIhIsNKGCHbQM&J8A4KsB+fJ4?u_q#1rDd$=YjcGjGA&QOS_A5e2JnoyDs z{6Q4p-JguJylHiC{a~DvpWrW+)E`f>h~gwq$)`ay zN%l&85XQq`12U>(ly-(K=cA7eqFx$?S&(N0@+|U4K_*0Xio!VADWf>QURs5170yjj zoueq;6=5mUaUiPmRCt9=)deaXw_2ln$6AF|8dPmiHKXdh3nA4BDn+&KmZr@lm0GSr9d-I<-_R<1BlPX6J2Gv;1_Dv+ji%YUA~mKfg;uvlPF zdZogkd=mx*+fir?iY*9OU{H%uib3=o28F`l)tVIs|EC%l6whH$z;0~3-jW3dOH=L( zqF_A6^Ph(M}vdF1dSNdsw z^Xn$0J-bU?w`wSt?<4GM^k8Mnq3TDxw>N8eSg}6x)D{GLzpu0&G+LX6A;hEORQ;(4 zX6Ja*#wOAH7OAzH3_L{U2F>qa7npnVA6%rLH@}VVM=R8|6rI&|hcfiKqGG!i+~$+- zA@9vHn9UZ|Lv6x)EhW$~46l3CewoGJ1fJb>u3qMc5Yl`4b4%@7&;ZZniwvH0Av&a< z3?yZ_Kh7<}5)~O|k@ou!A@*fw=mEqvc5ZvqQCjz<_u;i}w=2Zo>>>Z+)PmpE{EoFR zt)}WD?))7-6_rH?rx1yIt3qTE?4X`%0hCN+KNxR_EK!?zn)^fD9S)DAUrYfTUSJdn zL&(7bD(t?Tcx}Mnr<4xAgB%P-@|sgoe=H90j$-aWKTlM`QP9r(0b^G2F#M%-%<^FQ!;p zY_R^8nI+pY<7oiInSn0C$gOQsiNw-xGjk8|=^o0Qtw9u&)WUIOxM~k8kZPNfLEARC zOYeE``U3GcT-1jL$KeB@xMm)l(5tKF!AY#Z!6-ich1fK%8hp(fz!WAnP&X?0Lfl(* zpEcdTP69g4Z+tAy98e}>g`H`$TgXM|okNDMb)8TKnCiq=)mz$}x=B#vrNDYQ_-tK0 zZTqGgUiP-P9AD*5ngl|Wj;7c1YRMo(aVWLWxx{j*pkXXy4BIrsgvD6bWq=_L+rh#_ zdg5T-@W`o^7f`;O8--S0Xyx^wSTYDP^$Mq5sF^$6<`hvS$pt%w&G~aas_70jqU;~_ zCD&u050L9wVtAY`ZkAw-C1cYjTtw153dY)l4Iv`0?6=EYbpf<$PU^vD=Eys~ z3fX26SpWo;K==W*K0WM1q3V-|ji7j;5fF<7G~iww)p!+A?O^@Q#xQ>MB#JoTQ62Ee z!@yYJ%vA1zNwMgw)S>b4rPQuKrWkp(A6A*0r5aTu7CSNrX~;tR2;K;CP;2XiYodz0 zyoj1d|HrQQ?G_=sN=_vc;IJGBwjf(nr&Wm*4&RDaiK`F%DzRM@VR>Y~M9Ol)yWH8C ISPcyEAAoZ`LjV8( literal 0 HcmV?d00001 diff --git a/makeanim.bb2.bak b/makeanim.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..93bdcb0ac067c616284613d3f3970738678fa184 GIT binary patch literal 2865 zcma)8TaVjB6rK&;-WIhIsNKGCHbQOEIBD!HsB+fJ4?u_q#1rDd$=YjcGjI=M}E)kCv{VOfsnQ^k)E8UAdo;la=+(wj}ouLp+-wVc_PG^uN`@uLTKfzxtsXv}%5yeTKl23zZ zlI#`cAdH8>24s}SDD4az&PN|NiF#=mW}E| zV3ihP7DP2FPaP_jahAPCv-38pS$;anS@*&Wz43ZWAoi7}D8>Me*;ZjNn8rIIR0|9W zuh1A2Z^A&a9m-&!wjf}EK_x~j2GMgED2>6ZHERt1Pc<-5&tafoH#S~x$pV8zQ|=3* zU_8e2pPKvRJF0*Ag})oP^chl5=USYMCOPL7L9%{-75T{yzOUP!jCZiI$f;IW`e}ai z>pG-8yGvcStZA3;BkXJRU}ejp@<+V4H!FBpu{rYe76g00uQVRi8k^0g5RZ;i`KKnB zo#Ra#n?&b>x1M|t zd2g1%Y_=#L8WY}YXn{_%>2;6VFSGcYz_Yu~)yw=4LV8bsZs=VL8sNEnk-?KLM2FOq zfut<=$GJsVq9WrgGJgLd#J=ndJ%G5z&TVfxTI;^_KD^fLc7^zxJ>*}UTJYPN-?8?k zRo8vQoxj7UqO|DX6e4kNRfsHt9n{k;fRc&q2jdNqC3-VYbAM>M!}3V_Y6{r!0;5P6 zLJk&CVfW?4YXkl|FCN!A(?>6a61D@!h4ZP_qr9UQY01Vk&V&>k!5Yb z*TCrlP|#{qG>!Y@Tl)7WD7ElR!lp3a90k3_acGK>kH+rJPB*$u&2SeBF?%1uzL;WZ zvBBnBW|nNrjHdw*X9l_mBe%9mClX7)&CET-r@NFnTZ1Slsf6RG>FPbKKx%AC25q~^ zU3$-h*B6Mt;i5S_I1V2G#kJPK3A4J|Iyi|HI2gsJzYv?oRfDft4Vc2j8tO&|Ux<6F z?z6i4*GWLf`HhdonFGpXtg&m^>=tqndgqW~YJHhdV5?GJ*Kc8S@+N`G3xW0F=(A1z zwC$UEeA(OH;Q%Xk(j*X~a16bfSceQksHIe8vWexAqG2p!jN3HCjKyF#g@7>*>%qcA zX69hx@X)E0D=0sl9LgwHMtLQ{56#b*V zdBbYvc1 zhU}J#EC7O9ApC&ZoGv?2s5|Ad6{r_l0kK#>1MbC9g_nvd2di&3hViRrQN#g{s(?ox zM#chXrg9fdn#EkEmd3-E!ngvNV&qkRSVi6{^spMS*imbchAgy?;Ef;$)wWK!DC)?| zi>P``0PKq2ZV|Gp;8bb>9F_yY7G#U^v@Q|l@V#i2xcb1a6Wc`*7Dx6Aq%0@A%e|e6 I^~eza0W_37p8x;= literal 0 HcmV?d00001 diff --git a/makeanim.bb2.info b/makeanim.bb2.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pK`pv4p3|gP|Z9bdlth9h5`l=hAJRC0f@VRxEF}~8Mpwj CQX*#n literal 0 HcmV?d00001 diff --git a/makeblit b/makeblit new file mode 100644 index 0000000000000000000000000000000000000000..61715f2d31b72ad968b1b4483ce439f740e8f982 GIT binary patch literal 31708 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 CJL8c6 literal 0 HcmV?d00001 diff --git a/makeblit.bb2 b/makeblit.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..ab9f595258ebfa75cb88535711f732ba0b52031a GIT binary patch literal 2132 zcma)7&2QXP5P#W{FVYi8w49ja5ZSSJWjmV^ym64YBE$jl2iUt_Y-MdnYcKYLMlzp0 zw0Fe6QMD3Mr3emii4r1?75!IQe)HbuLoKQrMSkzio0<2UncvKccDpwb;`s-(F+7}6 zUJS!w5@U^K)3VyI9orEDF$nWC3#+uqDGLwcX|LBC7Wvolw4yM_f0|J=os|itc~wwI z!(^5pNPRI*C-FLbv~N+-n;72C9g}EKjK^hMl?3%N2@m5^h<266X+DxkT74^zM0=A? zRt?ty0$ZAaL+vLd_q?4QUs|r;{=xd~GD*>Ps9n7>&(gAd)qZdPO&v7+eq&!l;MzFO z5j1<-?ni!e9YOOFf<__u9}ja3uXXWA5XI9ezW;RmXW!GtmtTZm#Xfz8v`3S)LWU1# z73Y)+y>3AF#RGEuwxfVNLMqni@xtD|N9{Vbi^`ukU843cAaj@fhTdw2vg~)>EzZgnr!!Il|F4lGZ zAoH_vFs4BkXH-_akz67EW}N5u zHb3;wZ(xV8Z8}>eM?75gpZvrU8x_L0>-wiFr1=9G{JQ>&4I#<|@Mxe|NBJy^;_135 zb0w^bDx7FSUS4HkQwNT~0z*VQ3!Zj*wbA}Yr#F#E6H(13RXV5f$3jes;*b-V%}^Pv z*VN0zVhf#|teD0KzvTkHtoDl1@7#r-e`-^bWj4vUR4w%$9dNF1Q<-;NQ5XlNRpwiL zt55oGa2QVFssdM3yNUJ|+#D|>TLbazJNoy5;h5t1U1V*uz}9ACea=cd>t-eN0PXl~ zT+$}Fw6{;Hwru<}8xIh!)0+fJ#XnwCCDE>NVQL9>^9S!6`LOGnqGjZu-fiMD62K<+ zjk6_$06y+oXUlrmx6W3ug9Sr>{wpysCLm779Tf<8FXp*q5}d4{6g;<7wWZ5N%j2e! z0{g20;~p_prMn+sq|7TKM@1eB#Ukl;!95U3Z2(b7Ph0Ex0&}eg%CeRRzM*YwV$y2j zxeUT~ao3ehJ!UFy0jE)*WEDUzqd4=f6d4>Uu z1i%j~>4}AhbW9Cm0;YLP%|%QNM8?78657fR-m*~|* V3r&XYhk)MRqQ;JF2}<(&{{itX literal 0 HcmV?d00001 diff --git a/makeblit.bb2.bak b/makeblit.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..29916066e645e586f388939bc800bbaec4662672 GIT binary patch literal 2108 zcma)7-*4PR5Z+wLFWM)NXnA6ihsciiPPTI?#TN&OSA=*#`~ki@AGUI~qq7ftp_R%XT4r;RODaBvx=e||7k|U*}P0B&8vbU z8YT1mK$(k4I*m8rqkW5t-qiAUZ`wqIVlpY?swAkFNpu*OLbU5NN%OHv(&}4vN3_@I zc-`_`Adt!qU1~oewde2d2Fme*_7B!?S4oMsL+$#7d6t&ttM+^QZ|b1o_ZxW$fhTcX zAZYe>ypMwBGJ@tM1dT@UKOPnsUhCqaAc|)*eE;bLPrs+lFTaSsiUax#X&+A03K>3} zSDaHS%(@BP=l97C+KvYD5UIFIkCyiKeQGzTUDp1@$qKc9332u#J?dDV9gM@XyFoq* zJ!)^$ScsD)a;3gP#o5ErJC+vswhsNmQ&y(m#Nn>zZ+oua7a|Lv{bFgMgkM-@T&&Cb zVHRYQa6*GD&Zw-SStSWuR68vbJPl}n0@@P!a>sWiC?dyT3hUq|J5!HNJr3)H=EX1@Z4mp9@9F@U( zNxe)QwlK-bidl^CTQ1O6Ym1|Ik+rP?Tgk@eoRu=`W+n6h?dWY> z(iVBNw@58ku#QP;CY%g8~!8^mWMfKBdM zrz;2ne7xnHu9{unIbFjJ77YE_uf)KZfH)m>bRgipSmcsPaJ+_6@Z8eXRvs5EkDE#f z>@Nn4cZaE}y!{X(Wl<3|F7jAt7Ada_?tw^p1BgQT#@fsmm>WG%mbHBF4Q(TdNo$Db zF$n45uB(`O%v9V0PIC^bF-2uq)X+4|Qq06+f`bKajC*Jg4T6Dks5W`WP8$e4fM0#N}-eAjcn|%IcC_p>kTzy~oPBJ;mZ_A?iA` z;M;ERP@lu8i`kg!bX+B3Scf%YzYX4FUPX^d0E18d3y>ukyLZReIV2i#9;khv&e7}171<0shycC4PK_K& J1wQio{{hzwT%iB} literal 0 HcmV?d00001 diff --git a/makeblit.bb2.info b/makeblit.bb2.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pK6ykN^Mx literal 0 HcmV?d00001 diff --git a/makeblit2 b/makeblit2 new file mode 100644 index 0000000000000000000000000000000000000000..d0cf0907ff029492336d5c4d4dc06b04e85aa9f9 GIT binary patch literal 31740 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 YQo(O(3m^#a17^YJ=tmv=CEWb~0gx~JFaQ7m literal 0 HcmV?d00001 diff --git a/makeblit2.bb2 b/makeblit2.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..058bb948a4397461a02de286bf3f8934a44f833b GIT binary patch literal 2159 zcma)7O>f&q5M3*^9oIRvK$D(2_Q8-$O5oCRno_0<^jZ`>6g>x&NR@;|(h#YV+r|L< znL~0f`Zt0EC=kGC5ADUUYxEd2e3YcMAKfcH_EdwqiIP&hHsM6a5^huO0qJi zfJX5wJ5c6goJ^t(_-Njsyf;#X)1qeW$~;Yq;&uDI{r~Hr=J#uR0fDq} zoFl0BcH{?My@;TG1wpM5{ELSQ?Y%2Qe-Uq$||bhoAB_Jv6O7eBSN(1u@Frd+H= zeLwZmu|K9k8l_Z}!L+mqTU0wKVmu9KzXRG5x%Q6h*r13Vf-w-tOM&zrEt3@DPsVwE zf9rkk{2F!$+orQMa>S!$@97ULu~8xXcBOZEoeX~r+!UgS0gncnb(GE0VKm(k zMW%&iUIr6G$jhrVs4L$QSYU`~Xa2KRuWC2H(CG~%vV*8*lQNmp_(LHkd49+VOlPPJ z)&=zRXUDs)S|LkFDeTU2CSDf0F~$11Yz zzSSr585{PW8>yjAPxab%OcJl`xw6jrHc0|L-LA_hVXC#14 z9<bllQ`fcIjaOD4g|b(DhVmaevvT(m5z zOC_+s8Zh#RsjB3@kC8I3hzj#85}HLycELRmNpApADA!n<`2usJ2gN)vEZtP^|pg?baB) z>s0M?Pq2U88JeHK<)h?9G9irK?$tE%w)f;iL%anhobYu*XSKTHwc z^+QZ?sa02AQ4Rg@E@yHdGE1I5fi}1QBpj=7da&fM?uf&q5M3*^9oIRvK$D(2_Q8-$O5oCRno_0<^jZ`>6g>x&NR@;|(h#YV+r|L< znL~0f`Zt0EC=kGC5ADUUYxEd2e3YcMAKfcH_EdwqiIP&hHsM6a5^huO0qJi zfJX5wJ5c6goJ^t(_-Njsyf;#X)1qeW$~;Yq;&uDI{r~Hr=J#uR0fDq} zoFl0BcH{?My@;TG1wpM5{ELSQ?Y%2Qe-Uq$||bhoAB_Jv6O7eBSN(1u@Frd+H= zeLwZmu|K9k8l_Z}!L+mqTU0wKVmu9KzXRG5x%Q6h*r13Vf-w-tOM&zrEt3@DPsVwE zf9rkk{2F!$+orQMa>S!$@97ULu~8xXcBOZEoeX~r+!UgS0gncnb(GE0VKm(k zMW%&iUIr6G$jhrVs4L$QSYU`~Xa2KRuWC2H(CG~%vV*8*lQNmp_(LHkd49+VOlPPJ z)&=zRXUDs)S|LkFDeTU2CSDf0F~$11Yz zzSSr585{PW8>yjAPxab%OcJl`xw6jrHc0|L-LA_hVXC#14 z9<bllQ`fcIjaOD4g|b(DhVmaevvT(m5z zOC_+s8Zh#RsjB3@kC8I3hzj#85}HLycELRmNpApADA!n<`2usJ2gN)vEZtP^|pg?baB) z>s0M?Pq2U88JeHK<)h?9G9irK?$tE%w)f;iL%anhobYu*XSKTHwc z^+QZ?sa02AQ4Rg@E@yHdGE1I5fi}1QBpj=7da&fM?uyKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKJX08H=k(8N7cW*3X;9~G$U}cD7NMR@evL^xY0wA6M#4SMa8X)dtU}5M1 t(rrK-#K6JO0i@>u#ijt&%mcD#F`Qs1U=U%b0s}hNlF?I5Z8Jl7d?rBH_^t{)f+w^ z=7Y|qSf>E4i^c{zXOSUKoeZ%W1w5Klrpn@Clfy~RndInZ__-tBx(-x*Fjl??!8xRYZH*N&HnuigiA|dNpt-=1eE0q}YQxtRpSQpei#%4e hHV^|h0jN5D!H!f?s_e2?OIh!yl125SpMQQSz!z7KMmhih literal 0 HcmV?d00001 diff --git a/makecamrots.bb2.bak b/makecamrots.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..4b2f1274eac13cf29c957d79b6932ed0144e43a5 GIT binary patch literal 237 zcmXwz!3u&v5QYaSg1U96j*}->)N~^QW8b8UjRYaCtm^}8=X#;2ozSx>EvmBC!RaDxCPFl8eBUulj0MdELjWp+voH^r zZ)65$fq5^jP-cDvN{e>tyKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pK`pv4p3|gP|Z9bdlpb{0fPub R6_A|(#9ct#3&i~lTmalj6Kenf literal 0 HcmV?d00001 diff --git a/makecamrots2.bb2 b/makecamrots2.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..b2c866af5fc549259fb6a09ea7a52284883af5c0 GIT binary patch literal 201 zcmXxeK?=e!5QX8PD1z=>sLQddrnEJUQlXH;=mbHEDKQ=(uJuGNdJ=`+L>pRH-|+Jm z16s+PiyeR)p|O!xEHUKi$_$%%#FLN?mur2qB0HXS$RtO%#_tn(=>ljb$N{L%PSU+% zvC#_L0xLgSp;l=Q#>#dYRWa49G*-ye*v@z>_C?`Ce}N&{j{h?n;^&UsLQddq_j0gsaVKibc!Iwlo$^X*LorsJ&8hZq7AL9Z}@qO z0bQuA*k=H4fW|Ui@Ys;2EfcJ#OvE7_F4yX2WqLg8kSl?1iQgxR+yzjNPykSso|Jn< za-|D!Gc5gRfx1Z6V61A!tcR literal 0 HcmV?d00001 diff --git a/makecamrots2.bb2.info b/makecamrots2.bb2.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pK`pv4p3|gP|Z9bdlpb{0fPub R6_A|(#9ct#3&i~lTmalj6Kenf literal 0 HcmV?d00001 diff --git a/makechat.bb2 b/makechat.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..7c9fc677999557ce069a15e9bea5b5dc7aadd0ca GIT binary patch literal 131 zcmZQ*FxJaqU^vgHV4!1Yb%7a388BR60#ZuJ8Hpun`FSOJnQ3WC3=B!Ox0v*DG#Yj& zTwv5N(A2ijWMF9ER@f(`fvh$uGfzp=)yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKu5KjQ&7NB?y5ce^#F!TWFHXsgS;9%$g(sO`fQ-Esb0ok*FdJ7mt7^;Bm P1R(AL;$9%`XW#+=HTDzh literal 0 HcmV?d00001 diff --git a/makechunky b/makechunky new file mode 100644 index 0000000000000000000000000000000000000000..fd227669f2f2de011da81178b942dd8846200ad7 GIT binary patch literal 27808 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 literal 0 HcmV?d00001 diff --git a/makeflat b/makeflat new file mode 100644 index 0000000000000000000000000000000000000000..1bb26429438f54a668aa63919cea6236b9defe01 GIT binary patch literal 17288 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 literal 0 HcmV?d00001 diff --git a/makefont.bb2.bak b/makefont.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..720032e85a7cb618127aff38f21ca7a43a3afe93 GIT binary patch literal 151 zcmX@ls9>ODXmx=ZNEtAk2T@9C`FSOJnQ3WC3=BznIkvZ$^l~&Bb|_q6)G*N0w$Nl? zXy8`ZC!_&WnUtBQq-krQ(4eUBzemBqs)31tVIRAK0Z^ToLIp@dLc!1!#HoaE%o*-B gD%@$)02-X6k)&OzWn!RRp{dExAg)lUQ^5cN0P1lj@c;k- literal 0 HcmV?d00001 diff --git a/makefont.bb2.info b/makefont.bb2.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKu5KjQ&7NB?y5ce^#F!TWFHXsgS;9%$g(sO`fQ-Esb0ok*FdJ7mt7^;Bm P1R(AL;$9%`XW#+=HTDzh literal 0 HcmV?d00001 diff --git a/makegridoffs.bb2 b/makegridoffs.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..c6890a7662d40d6162a97d25650bd57e987c2561 GIT binary patch literal 500 zcmY*W%}T>S5FV>V(3=PKIL#^B#JH(eO3Hc=Jb3p7Vw2cX-GObz>}|!PK247z#W&Cg zQ1DH3Hi#kw_8Y$Wes%*x7+&Yo5--i9K&q-)IiDp-LZ&DUPBh+*C!;aW31?+)82P;p z4B>SJWqgpmt@0tWMH|4aVIB6R6tQg%0BzJE=t3PG0*olBlzZy-_I1GwDand$G)kh| zMQx&BF*h@L1CiU44^X`a5*MQ||<98aKRanz8@1KuL%`i&(czQJ}8SW*0@Vx!w z?H_L&p1q%2VND`qUq+S$Cvt_UN}EOmh;EbJR2@zQx)Zijwt*dVOLW_rYa`vv!R@e8 zQ2IPlNw|3VOb+=tqT vC`c|QIuKlDxsK9z`d{(m4&NU_Us1#id_lj=rmSeO!Uc@J9zA;Dpbda;Ay$bC literal 0 HcmV?d00001 diff --git a/makegridoffs.bb2.bak b/makegridoffs.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..b0a64dab8bef1f5799e61f00723bf56ce0a38763 GIT binary patch literal 500 zcmY*W%}T>S5FT5Lpf?Zdahg-MN#n*pO3Hc=Jb3p7Vw2cX-GObz>}|!PK247z#W&Cg zQ1DH3Hi#kw_8Y$Wes%*x7+&Yo5--i9K&q-)IiDp-LZ&DUPBh+*C!;aW31?+)82P;} z4B>SJWxSugwfT_Qq66Sou?|xyMQob`KpS-cx==?403%8&<(_(bySiY8lw`#g8YR)~ zpf*wJ$NXn3`YC7Bq&_=g-W!qV8L&L9|4zfR3Try%{qu3D8Aiz=o?gvLhW+FaJa7Ma z`^VdcXYc1$Sd+-umyspGiCkf-(xwpsqT66MRfki7?u6}>ZD1GO65UqjI!HHjaNDfZ z6s1`mY7(lZ%r?MMwrFE|B%_*ogE-wAMAn1ma$d=S+x`O%T5g6i4*c`_zYs(p_n|f- v3X+S74g{B3uA%gu{#X3C!}o{KR}?V=U(heJDJxp6Z~>#QM~_}OXdU1i66lEn literal 0 HcmV?d00001 diff --git a/makegridoffs.bb2.info b/makegridoffs.bb2.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKH;}!bsP$q)df_4P@9gi7)dqSa9`nZR94&#uWwgd5yY(v@w z5Bc8_Ut*kvGb$Eh?4LA93^@w+$@z)n6C3Nk` v$}NthZd~8dk(xYm(>-*~S?MB)el9uk94X5(37)WEoU`}$S3$Sj-5J0ip5Lv` literal 0 HcmV?d00001 diff --git a/makegridoffs.bb2.xtra b/makegridoffs.bb2.xtra new file mode 100644 index 0000000000000000000000000000000000000000..4a1d1bbb24a008233e7e6aca938d94e42f84c217 GIT binary patch literal 1206 zcmZQu5KjQ&7NB?y5ce^#F!TWFHXsgS;9%$g(sO`fQ-Esb0ok*FdJ7mt7^;Bm P1R(AL;$9%`XW#+=HTDzh literal 0 HcmV?d00001 diff --git a/maker.bb2.bak b/maker.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..0aac45c92495b1cb7c478063a800ee28dba41379 GIT binary patch literal 606 zcmZ8fJx{|h5H%GN156CSc^xtHu8W(Sr}koL1GDsOCw@OBqqdLnBh0|mw?1S zfpZ&Cz>@Fd`Q6>q$s|0Ro?qWwP3;*W33a^__z^42#uA92$YmtcTmUvJ(i&!Y0W6B= z5a-zw7l1Ev&Y+A7#)O_65=E0g^1_P663Y~6_MoPR?r>}mp*etMfCb^@g#|T4A^}BP zaw=s0t8*7=RYpH|jJjVBR9~5sGN#EyKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKu5KjQ&7NB?y5ce^#F!TWFHXsgS;9%$g(sO`fQ-Esb0ok*FdJ7mt7^;Bm P1R(AL;$9%`XW#+=HTDzh literal 0 HcmV?d00001 diff --git a/maker128.bb2 b/maker128.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..3724dc8f04a10139e8a85a94f12e2a094fd7afff GIT binary patch literal 608 zcmZ8fJx{|h5H%GN156CSc^xtHu8W(Sr}koL1GDsOCw@OBqqdLnBh0|mw?1S zfpZ&Cz>@Fd`R?7*B_uqXo?qWwP3;*W33a^__;bQp9!D8uOx(-4jfaqC!!CFv33u&B z!aZ$#Z2~k+2bv8m*#y2UGJMZ52?gU}YzQweET|z82`JhY zr$Xkxn7de3W%P5$sQdLm^_4j(W11XQnSMah8pD1WlS)z5hTNzJ?#MB3xl1c$Rkd}9 zw^DkdxGHc0{3@|}(6iRL_b>PV<$=zTsoBRxZo^{NaI9V&l@b?L;s>(tQqeQ115Fpc z-oTkO9kSR0NAKW4!w2BIV*(K3MSyKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKu5KjQ&7NB?y5ce^#F!TWFHXsgS;9%$g(sO`fQ-Esb0ok*FdJ7mt7^;Bm P1R(AL;$9%`XW#+=HTDzh literal 0 HcmV?d00001 diff --git a/maker64.bb2 b/maker64.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..be9a55aef364f1b5f13570da72732885843ff338 GIT binary patch literal 607 zcmZ8fJx{|h5Opgg2ACLt@#vJ4G~|mQh&&(x3j-ZkkXSq$t1eCyt=&`U)mEwQW^&E|3s4_iF3%An97-rhmf{smpqn)yY?gD zo;JQV0h+cCZ4W6Mz?US$_Z*Xu=sYj8=}cn%GXud`3Ne(0jAd2`z-DFEz@#XF#mNkk zB7fon@I}rTR7uI0(32ygX!=iHRI@~4nIi2jG<4)1pW4UJ?!z*`g6QVjf(Bxdf}$Nc z6SDZz`2cBkPCvJeX4o96p)${^gr-Mzt{<>zgW<4BNUf;qLT)sNZs?fz+@-a$>c$%3 zt(BfA#wAXGKNM>K18bFgYq`Ic2Rg@2?H(?23l=+uV-1qHlDM!c4D5$Y3{2`kdjMZ= z;GDI6ve*PiuVAj>eem5=0ubRvecYI9okQO{2}2Ee9ptSbzk~c06m(GV3+a9zFYx|q ZaM!f7^M0KF;{tOz6lE{^CTt)p``!- literal 0 HcmV?d00001 diff --git a/maker64.bb2.info b/maker64.bb2.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKu5KjQ&7NB?y5ce^#F!TWFHXsgS;9%$g(sO`fQ-Esb0ok*FdJ7mt7^;Bm P1R(AL;$9%`XW#+=HTDzh literal 0 HcmV?d00001 diff --git a/makergb.bb2 b/makergb.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..72c6244d39b5da7c6b42186478c94d8561a419f3 GIT binary patch literal 2424 zcmc&#L2u(k6gInCSU_ArYL^AU+p=0Yjg#6=+GgW52QC~y0)aTMJRN6ZB~Gfbt2Poy zKJbfr1y%flE@ecdwBax$s% znirpGKR)7>l(_B4Q1m@7@sc0D3#iVknwIA^4NOq_Pz4m5si10A)p-fzn|CM-!tvh^ z&2Y8jc|{sx{Vbpn_9)6suPW;I`(i!|bf5weV3n@Y=rB6=n$O9mZ#_e=`4UgdrOv(P zGqP|!4b(IcQ#@!sB>gI+<{33R92vWIX`bqenkN)d^C@AP2wkXYy~wNT8Smv6o%GKK zzCM_D^|a$DXDiqWws5w9EntK5E-Jt14r03;Flv6I$S|~CCUai!v|grkUXxJKjhJ?C zjId2|9tV%e!cH2Fl^ui`aOP{f^WF@wqp+jL`vCWp;-jMg>f1lAp!SnMZ9aCLOU6a< zC}1p)2EC2r3LvHPe8KS0fZJbFnsxz-Ofu~%pSRmv+7m+ydWRG9bH-gv%@Nr^85xJe ztpHASo|P*bC5`)q8{}vV zL#-R4HBg_)q*zEgoi8hH{CY|Cw5a$3;Uz6W>##O#Tc_^99O$Uu1K+ z>Sv3h+{Y#MOO?})_Ufh3d&5`SzEYFR!}_w0UPlaR0=ju04{dHn)#Cxj5T`fqA_W%b z<~^Q3nVZKpDO|O)PRe1%tQF!k3BurZ91geC&|uAk@jPL%OqJ}?%APtFaY0;KYY@Hkt{&25unG|H)gvFXPRHC@ z2oQpYyq{Yd9kJn7!uaENy5!sj!O9NS>Yg|o6C6pw7h$uy6z>9BtVCtZ3)#O&`5a!*^GS$H z8YN9#@^K>014G;zMmMIp{shJF;z9bF literal 0 HcmV?d00001 diff --git a/makergb.bb2.bak b/makergb.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..44c33ab4ee8820760b413f7ac531eeea75f6ed6c GIT binary patch literal 2378 zcmc&#QE%f!5MJ)C+yUYRq!tbYbLDh$8Yi`#w9Un59(dsaBoK(_leg<^ti(yRcGX4# z$q)RZzJe-#L64urH@kM5gr3A3Y3<#ao&9F!+u5=BD%EKc5`OXV;fQ2j(OEjrswxwr zeniF#gJ{_Cbu&sg+NGi|y52~*Hd3ku~2_N=2bxTGpctuGFI)cqini6dfJ;;M4taO|-ul{P97WOtD=UjeNG{(OPfY@tKk~S+-#Fz#6yj zpf$E-qZoFT&0F^l_Qb*h-r2(aIon-KE$J>$wv2+|Rsg3aON*5Y@&p08XEVr)X^!%? zdEA+BF3kfjzIZzyTU>1L;5W&&HcOK(bmQtC%38Bcx@=;W-8CB4DY!i;wp>f?7Vg}v z)44%Xd`D30X9Fd6+ z%}Z_xd@Z8HQ2i?nyJoDTM7y~j%P5g z`&v&f539>6d>yh$?bFSBSai8rR*wf9LzLXSixilgo5wr>GdE9MQfQvDPQqbE%oXCa z zzjA|iMakL{GvTm%u0`T8Rdv=@1Kdf0qvUXS)WSaTMz;i|e#n)O_q zNYWN2k6e@(1+T?Zbaz^;WNF0<)xSvi9A41#Nr1MClBO)#yMuk02B4#(EC&mZ)AU{DyKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKMnhmU1V%#uM+huq;9~G$U}cD7 zNMR@evL^xY0wA6M#4SMa8X)dtU}5M1(rrK-#K6JO0i@>u#ijt&%mcD#0reIzh%i(E Q*$F`01;o8T+|R%T0D-F#>i_@% literal 0 HcmV?d00001 diff --git a/makesqr.bb2 b/makesqr.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..def5e068a29c310c2b64bd0873f5c2b2c61185df GIT binary patch literal 98 zcmZRuX0Xmp%uX#XEYeF#GGef1Xy8`ZC!}GZqXZVp%u~{|HBe|!RQTVcU|`k2#ITQD v!GM9GK};bVBrc&~Xl86-q|hL#V8n2@QQ=Ov#seOWY)wsu263P&CI$uo7tR@3 literal 0 HcmV?d00001 diff --git a/makesqr.bb2.bak b/makesqr.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..ccc766ada797b6b387b232da1fb21e1e63c748c3 GIT binary patch literal 98 zcmZRuX0Xmp%uX#XEYeF#GGef1Xy8`ZC!}GZqXZVp%u~{|HBe|!RQTVcU|`k2#ITQD v!GM9GK};bVBrc&~Xl86-q|hL#V8n2@QDG00#seOWY)wsu263P&CI$uo40RZ= literal 0 HcmV?d00001 diff --git a/makesqr.bb2.info b/makesqr.bb2.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKu5KjQ&7NB?y5ce^#F!TWFHXsgS;9%$g(sO`fQ-Esb0ok*FdJ7mt7^;Bm P1R(AL;$9%`XW#+=HTDzh literal 0 HcmV?d00001 diff --git a/man.anim.info b/man.anim.info new file mode 100644 index 0000000000000000000000000000000000000000..7a16e55061549f87d9aab8503bfc317e149f4681 GIT binary patch literal 438 zcmaDXz`)1=1M&=l3~UU{42+CiuPlJr2PT1_Sr~xgJArsZ15glzF#yOECI-gL56l=+ zV1W+@7??j8Fj(+EU?_lM{tt2t>>p$pc=!)6Nb}1-uy0uZq5f<550Lu*|Ns9%G3Xxy z13$k4gAM-)26v#IexP0u{s1(q0*H-2*guf@@c)DT|NlSgfqH@Z|A8>r45-_(DxhvN zU|?YUkN~vX0`4A|TO@#PVdHOLVBkU6F8^!Q1N*O`1@-?{!QIAu{s03X{{*1^BS7~c zyX6ss`Ue{Z&JP6)%%2Z{4dMU)|AG8}tZox?NzEy(NDWBL%q#Kq^t5sTvp~8yfSAwC R)5kR=GQic=(a+PD0RVone}Vu2 literal 0 HcmV?d00001 diff --git a/man.bin b/man.bin new file mode 100644 index 0000000000000000000000000000000000000000..9049efd11539cde152ab67381cdaef698beb7c05 GIT binary patch literal 73144 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 literal 0 HcmV?d00001 diff --git a/man2.anim.info b/man2.anim.info new file mode 100644 index 0000000000000000000000000000000000000000..82166ebd6e47a1ef5f59eb96072e10cf2abc08b1 GIT binary patch literal 438 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 ST9Yvpe+^Gw77*%v9RCd$5Yd1D literal 0 HcmV?d00001 diff --git a/map3_7 b/map3_7 new file mode 100644 index 0000000000000000000000000000000000000000..46d4f74e6b75851888a32e8fab2f8f52b4b392e9 GIT binary patch literal 12534 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 DtF?p_ipC_}bx_fpP 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 Blv4lz literal 0 HcmV?d00001 diff --git a/maped.bb2.bak b/maped.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..6c354d020dae44c043b0fd6e77d3c870bc2831f8 GIT binary patch literal 28788 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 literal 0 HcmV?d00001 diff --git a/maped.bb2.info b/maped.bb2.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 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 literal 0 HcmV?d00001 diff --git a/maped.bb2.xtra b/maped.bb2.xtra new file mode 100644 index 0000000000000000000000000000000000000000..abc50ef2c20d111bfe1627229b7a51d8e67f2a54 GIT binary patch literal 1206 zcmZQ%0D=ZE1hF7&7~R0Yux1?t!?QXD2KHq@!43un1t6sX#G_y|1cq-2uEV4oyt4jn+$P= z1E?A4SaDEGk;U_QL1`&J%FE=RXJ{mORg7`*T&<-h*G$I+C67yCY)M@GU{jE;Wl4uG z6j~LQdNsW$2)*;L>~^&9Wf~Yz!a+NaxHE&iRdb7p2Mj)0IIUTD#Jq&L@va@%ilf!cX~DSY%whhETk^ F`2+TiVs8Kd literal 0 HcmV?d00001 diff --git a/maped2.bb2 b/maped2.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..700c511dfbe66c873ad02fe4d97a53d11f8c1d9b GIT binary patch literal 25558 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 literal 0 HcmV?d00001 diff --git a/maped2.bb2.bak b/maped2.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..f9568753bcdee66f8c428582c0ee86dc01cf3e6a GIT binary patch literal 25429 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 XMPc~&;05Z5!z|=Ez`dZznbZFWak&)T literal 0 HcmV?d00001 diff --git a/maped2.bb2.info b/maped2.bb2.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKd{1auW+uQy9R+ z@bx4ueYT8&i@}G1l_8EHg`ot}T7(^H*0O=N>cnuKuF|aW70O>X$4r1V7=m64l gfNG`y)yxCZvw(UFfOHj5JOPNifb3o%-Os=U0KwTAvj6}9 literal 0 HcmV?d00001 diff --git a/maps/com1_1 b/maps/com1_1 new file mode 100644 index 0000000000000000000000000000000000000000..9adaafe112f70354e3c7d77f66387c688a60584c GIT binary patch literal 9578 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 literal 0 HcmV?d00001 diff --git a/maps/com1_4 b/maps/com1_4 new file mode 100644 index 0000000000000000000000000000000000000000..3591b7b63be5170faf02fc4c51a6b9bc49086b43 GIT binary patch literal 10062 zcmeI2&raJw7{tGX|HWB5DNz2Ex)eweMJ=Kd6+#Fh4oDzW!2uyq%R_MJ4IZVB!lU>h zdg!5o{>I=M94#k$iPqLIi)VMgoz288am?((ECusm;S=}_cEB(28~ibA8|VdtAOZ;( z0pnmAq+kxb2Oj|Qw3(;<1#EyVz?|(}uz!1N77+FzWFTZ9WFTZ9WFTZ9WFTZ9WZ-!+ zV6}XnI{#^}v!^{e;Q_7>z(ep5Jd8dJNBkbau3LZ~c}d^|ZsETLk6GQu;0b(Bz?0~c z@H9LP&vXm$BQGhO!n63Fg%|L@055WV5nh6q;AMCj{@5+RkG!nFEAT4*SK&4MufgkF zUxzo~4R{mYgtxi{_>q@wcpKiq{|>y1|6O>G{O`g0==xjy06u`fb_?($FNgR%gpcrl z1Rrz#7(Rhd;8XNd_>AAr;BNt84?+e)20{ix20{ix20{ix20{ix20{ix20{j&F9TMK zEXf=&yS%x);bTgRr0C>e|>3*`Rhwd%wJzx3l!_Gu1{La;(z{Y?2nvq$WcvN6KHSb zv8qdJvW8;+I(5hV<@&3-w3aoz7~6#hHwOCR=*mzIE{es%w(C9Kc) z`b&$ma{bl(NQ<+wesz9nE-mX<^CQir{`%6K`Rhw_=C3a;0zUuJBKEiNU)^76jVJbB zT7xzC#!HJHtiN-9>CQV|TH}fQNo$Z{fBl&G{rQ)sdyH?q%c3k!%lz5aBx~4(vDHZqi&<)~}A2rW(cjuQGnprg-`=X0Lb_F=?Z;TJ{n&!4%IUrtNjE&GE&n zQJb@Q)Y!Ob&|}8lpw6I=GrDaf^pHMcjy`N0ddm5hn?jvWKHJu3{q*SP`OmQN!qaEg z-l5OZqlc#g>M;)w*b90L@zcd@eMjuO@Du&|`&Y!t-2>MH zt_NHXxE^pl;CjIIfa`&S>H+c0z4b-JCr1DS7-A3M*kKcOX-yGzMzGCw8+Kp^rZ9y$ z%wfU00+w8taD3E7JzB#A^-RD?I0=tqKMqg86L1Rq6r6!G@FYA5Pmj8&PivTkvv3a1 z!FlSNhiBj!cozFvxCj^F5?q4kMqSjWHJqoO^Y8+^0GF{Z!xgv!SFx``{@*JX;U#zp zULJK(ht_a~Ie+-_TyMc`xD9W@ zoA4IA1$S7t18;ME8{Ro=qAsoJE_L38_uxHvANzgyz{%YM*8{ExTo1S&a6RC9!1aLZ z0oMbr2V4)h9yo{|5HFE#KSLr<{yh1^Ygvf{eO<{2k*B^)ivFIyvt^AZzL{~M#9#Ca zRL2Jr#8I_kO#SLB*hBXg+4DX8I%Al4_4OM0qrfIG`PJ8xWDp-p6x$Q(F+KJ5q%-hy zK70IXfAtkeb88L01in3h*W>HU0r~9)ratv$?4f&C_b1Y~+B!^q z>Pyfte-zsVCcpX;$p-O(_(5FV0JFdP^cmIr`x4a&Oni>Ni|YIDNvo~N879B_x{dfS zY*l^}uf81B=i>!+BVK))qkewAge?tZ*!&&#*ZQjd`9Ht<(|zX;+s*tb`=`WL&xibW z`|AAa%h`XJzZKd8n*0UNzeL0QnZ8BWVd__3Dfu9OAZ1x(#&7Pg`U*76pOwaIimHegOv({_3HB)&H}-MtYE2|HR{pq!!&_@A)5bcD zHJ4+?dW_Y=Y8{?*ji<|ZozVP_VDs%yZ809x{JW2LS01jIsOlf{EQxRa^qUZ0jPgB^ y&Lb9j;_1A2Bzu~zWZtdpW}eu2f_?wIUem>%*)`d|x$aZjHP+5U&1L3taN{4tNv|dV literal 0 HcmV?d00001 diff --git a/maps/com1_6 b/maps/com1_6 new file mode 100644 index 0000000000000000000000000000000000000000..22b36151758700bd0731a5b5fc999098dbc732c3 GIT binary patch literal 10794 zcmeI2-%k`*6vxlZtQ2-BHqvI!)2CTBi(=X>rw=iWIiyIe$M zO=J)o{aa+*$0BSH`x*NM`xW~Q+rWOu{=ojk{=&4+KiIz_b-@Z)H^w-1#;I4agIGVt znDt?7?865UYjzE64cHp6HDGJN)_|=6TLZQRK2{BgW7g8;1F6fH9`s;=`vuqqyC9!a zr5pCZ9$4gl5&HYxn2*jOU_Jp1VF+Uw!vrR<25Ybv_QF2;^})~fn~}ff%y$gwhXcGG zfQR5AI0T2_VR#shz!5kKN8vaehZArDPBP9UoZ|HqoZ0I}zMA7K`Od;QI0xt9JY0Ya za0xEKWw;EF!{hJ-JONL_lkgNg1y3{XY53hScov?8=ioVb9-fC6;01UQ zUWAw6C3qQLhF9PfcoklS*BJL2yuR0sd^N`#X~`D@OP$o~<13?IWM@CkehpTcMG8GH_(!*%+t!^VC$ z=A(0X!F*o8m+&Qg#r;?CHGB=X%=j@{ zB`3aWm7Msh#X0d+(->LnAG0=R&aDkv0F2=M$Odmla?2ASZsn`1R?3O5n#RbA?@P@3#N^+czb8)U znfE$&r+7P4Eu@CF`WM*KGKYD8R4p>~m#$wSY}Zwb7-MVwTBEn#UsX#w;(Jb^Exu|A zHI&A8B@9~$@E=~{s8%!e*NpFqThMJb4x_79YkU68ui!Qv%=}bKu=M#cen)@R5-GOD zcelkaGQZ+xe^0_R0W-d85$``+^LIMdPqh$B<2&R}?s~M=SM{ygh9pT!A?*Xm{<#Vi0 zD)`1+zr=TltNMOp&SmDH)x^FZzI|M)(u>vDyPGoSG`n0ZIvy_jdv(qU`4pcT*GU;e z9W&=R_rGeLy6-1zKdjBJ%xSB2nDr!&9VefJsHt*8BwUrBXgd+@U{$`Q9ao$8HAmAf ougYc{AJZ;2OyA9R>ZA8lpMZ90Rg6!(tsS@StB+~p_WvFK0r3Ixb^rhX literal 0 HcmV?d00001 diff --git a/maps/com1_7 b/maps/com1_7 new file mode 100644 index 0000000000000000000000000000000000000000..77e2e00bfc65a0757d68d301df7b973d24fa7dbb GIT binary patch literal 9842 zcmeI1OK%fN6oqfwP3(^Ce%VQYcrxJ;3!w-Fgm?@Q3St-r6d^`D1PBQ)Sg>HhA`5op zr}0z#OMvfGcO@N**^GvTrRvu4sk*0bRo&ayn<_IqFxvzd!PYj|0efbX(_joX!9{Qh zpij^z*TF5Y3pDmm@Hf~8Pr-BW3cLkV@E&{sAHk>Z-^~I-4nhrt8VEHIY9Q1=sDV%e z|9=fw>TXYbQV(5Dim)a?u!a1D7CF4qX zNPh^g&|iU97ahc*7}khu4L$>(f!DFG!(;kmcmv*mH?eQR=iqbj`9%kDD25BfcLCm_ zzXea|PvA=)^wqu$Uxv5gZTQNfgE$n!4!i?jgRjBYJ?N`_gS^~;Z_>XB-==>X{$tTW z9E#x%d7usz6al^MFY!c1u*;a?aMdgNV+J~R0px{6grYN zYUph%7$Di5T1V1G)}P7O?68G@S~mQpjVw9R@h^)L{>dyym+v9x<8J+G0iA+J(gqEE zetl^J8_eXZ7-CDA|9Jn>6ru zbaw3DIpHrYx9ng2rKP~f-?BK-H2{z1iKJ@PtNEpsz^_mIwR;u6w9vLf-r}wCzUcDXmNxR=!oQxN{{GUN`S)@)zqHKdzxw~quP;q|^!uOFPw_7} z#Tz@sa2qVyS^FKVTWTbjH^aVUzi~scfwFET_JZHaK1La19b1ky>0|BNX_Pg7l|x@|{2S_5Ry+87aP{3)wd%*^i?x6L z>Yj~TxWOS;QB&K~Ohek))V|WrOWK2}X^p&Sv~${wadx%SM!Vl=Gp8Gq9v;t=HQHJ? YpPCz^b(`(w+O9EmJJwomKlbaMALgjo1ONa4 literal 0 HcmV?d00001 diff --git a/maps/com2_1 b/maps/com2_1 new file mode 100644 index 0000000000000000000000000000000000000000..7965e567de50049363d927200d26ae11d1693e2e GIT binary patch literal 9602 zcmeI1O-~b16o${VrR~tpSErOOL4rVtAp{YDfQUpP5IzEgg$ol|xNzaZ1q&7?^oO|c zC-{^4BV2>enf8`?i5n9ZP3}zIJaf-G=iWKf(lY^z66D%n$Sv{Suj-M+;~P zt)O-E8ofpD(LOptr|1HGKp)X1`i#Dyujm_M{@H8v9X0RnM4a3`a6RC9!1aLZ0oMbr z2Ogsb#LMn$PDFCdpNDx^AYOn)#zk0yC0K@K=;Qma((j@kt)WUiRTwf3VZ=Csi4kKx zPGJg%IBy6x`d!qaH4IbNFdSt(3db0a!6!z<^>_kKz)3g>pZ2?`Lu;6_Mg1C^hSP8c z&cHc12j}5DeBSS(4y|DUF2F^&2$$dzT!zbV#TNHXW3T#M)S)%3!d18i*WkJl_3QBl z@eR1icoS|h-hyxXUDTm9Y*W`Z+<`mroe^U_-sQYqxW{-8^1oL0;X%KPdbEZ^>N$k` zSC=Dr43FUn{t4v&yPU!^cm~gjpTi3$cMn_-xE^pl;CjIIfa?L*1Fi>L54aw1J>Yu4 z^?>Vv|Lp^UJLmUvrx*Yv-#M^!RqZdVy41nyWR~`RZwn#<%lB{0N!)Jt^zk2is=> zzry{|>u>kJCvhz8E&Ke{OZfau{SW;r*Qfo{?qAziFJ_MW_5YfGfN#+Ndm&Q+=221V zyep}*4@oR3N{APwL9{`vL987ak#QN}eM&8h)aY3~uOwxuAfGoZHf~1eYdWzuU>w7(e?DJs%IqkJHJA_=L?!5{$=KQDaX;J gH1)iM<7zve#2g2m^Ls95eBu&DM7Bi^qWPa93t!L=v?J0u zh0dZ?bO~KW*U>Gsf$pJ4sEJ;nS7-~pNA%bDfIgznh<+Pi(Kqz{_iqs^y9PD~Y!28Q zusL9J;Q!`;IHtdxh~!w?Jj}xa^#wRec@&PpF<68}Si&zsci2Td8iPkX9;{NXLLd4t zfB~%G*I)!AI8OaI+%xPV4vk?iaqWeZlqca7lkP52BxgU_jd4*3lyFW}2z7x8Eeo5ZsT`CTfn z;A{9AzQKP3`K>Bj@GX1`-%qdpyjd0Y9x_oujO)K|}Ej5Pjid-Vd8w$J+N1@w{5?{D9W z!vW)~7ZO9i_UielvwqA!3BatMdb$RwpN+2~#khvj`4=?)qyzJO)C;@(?EKXWr8HoE zCE_pj9bdhm>-lE;SIaTM9i!j)`rWUa_R0H$jl5cS z{OZ+v+Gl-zKXgC8USGf4ZpLp9VAfYXmoYl)+uL3}eFt=&PmiB-TW;*Oy5nolUJ*$y z!jJm-bs6C;Gs0OgD!@D%Wk+)oC1)rhJ>{vLpmu`YzzM0d$62SgPW`+r$PwIm_5o+n zjO^i_aXzPHKibDVhuJ$j#ODHgX-C*EZpcCIo#C@AgeV?+iTk;8T5{~XEuur*Rg{uB z%lLfBIji_uA8`6cK6O5|>_G2E?(qNbdgd5eU)Oq$v{^Q!di%rn%G2Y!ZS>X6`;gB< z8aaQR9X5JfZ2C53M|;%kVpCT2zL0CTDW;9rxvm9Vmy>#P?X|C~)OTN-d*nYI`DoS5 PW{3XrE}zVdn%?6N3mS!0 literal 0 HcmV?d00001 diff --git a/maps/com2_3 b/maps/com2_3 new file mode 100644 index 0000000000000000000000000000000000000000..cc0acd3b3a11e51f840c293b392cbf9827103016 GIT binary patch literal 10030 zcmeI2y-piJ6os$X5Nu-auGfY@0>ls?NPs{>6#O_^(SU@6gaQIYr1%*SMMQ%eO5TA- zu_$?3vj!ckkSpgU}9$$f-yfOo8b+un0o% z8GHd>K?J^m@8Adc34Vd!;E%{#0X-lCa=-^AFa$ z*S5!f4-Oa?z(wvC;el=k^=J)))HetZv*W|?82vGL94Cy!Q}n0c8F&VsC2khh_tdTi zb?E%(+0S`+f&K!#$T}>-%kVP1%KcS%jd5#mg?{R8+AK7^0Be*_=XKZZY8*fp>oupY1; zupY1;upY1;upY1;upY1;upamq9*|UC{K%6+baQ=jc5=2-an>{0Ohyl?mQR=TwdJAoAmMXbIdOn zX>85W{LJn_e%10kQ}ur zf2k++eB_1sD2|sfp`&@Bdllz@6pvP@xAHqRmyel&S%1|E_0IWK3#4;?)dK09U$r8L z=bx-!HPBqYWPPd?K)gQ=>vz9^da9dJtsq|5tiKw|jrCQ{2XTBdziK|ui2Wmpc-7d$ zj`>y7J#NN_?fG5tB61Ml@VA+NV~Cl*YM|DPf0W;=Q9~_`PtIR8&|1GlylTZ{elZ`D zU$vt6<>vY&=C4`+I<22-pq0PgUcYLEx*x^y$^BIgl$-S@;#FgZn)#FdRSk5^ubL;F z^Q#6r=2y)H@%)qPubS?0bN=n?_l&@G$~6u8BqM|Jf@>Bv zM>{72=9-s4*e3B|UkY5)j2_}&v4*6?m?6%)UoxV^^_7g6?X@G#IsJ6H^l_;nnXB;&+1tMSmPm>5r&pD_KBG{h oUo~g3fwuiB(J2Yk!w=i;{e2x1w}Y^~9glbGtypcF@$!_PzhbENxc~qF literal 0 HcmV?d00001 diff --git a/maps/com2_4 b/maps/com2_4 new file mode 100644 index 0000000000000000000000000000000000000000..f9033a587d891385e4bd51ca17c9dd758bc124b3 GIT binary patch literal 10070 zcmeI1$xa(V5QfVOUhr)8cx-meY7jvL5kwF{1d)Uwf(Rmr2oP9+@&p`m!-qUV9wiUt z2Z6ApqJFb8wcq1}OAw~6>QW}oG z!yUK-ci}GFgL`lv?!yCk01x3IJc38?m~oEb*KQN>Ys@Fae*#b8DLkY744(7-9A3Z+ zSfjlLFZq56uizEDru`azv$AVoYrxiktpQsDwgzks*cz}kU~9nEfUN;r1GWbKz6K=b zO3(<9$nD+j9j_%N;Nbsl-bkXDdZEEruVnDmD~a3Cu|?|f_VLv#N$$yy>-^ePcst7c z>V-(}t@Hl0{eJZVgRh=z@YQq0Yv|az2JPdkr)$*m+vD@_ebidNnB??rtsXjJOg&%x zr~9A#e#66W<=5`3r*pK{@44?VzQg?wKfiWgJ)bph#sA!Q8Q(R`ufEf9{s1p;m|wlT zVSe=j!~E*$9G&tHSev|I{ng7G)?dBAu>R`l9G&Jb5L;--U%k+fzj_5j{_5!*o#*!$ zzjOVm7aH3>r>P#ET|GFSP=4Y|K_V2&06Q52>}rhj=6{@BfFyka`uLoS^a(i+ z(PxnJBz-10Cz`#o(km{?Nr~N&l9XkH-GmW#M5fs_m}UndAz5+gljGb+pEBnPeMULY z(5K2-_nopxkJ#fU&T~pX>dDRbo283Iy?Q*F&){ZeN$$+@yOo`+s4f!Jq^={lTst*- h$0Vigt!r(kkG3cCTze1K*&^4EeX<_c%|7z~jz3oZ4~_r; literal 0 HcmV?d00001 diff --git a/maps/com2_5 b/maps/com2_5 new file mode 100644 index 0000000000000000000000000000000000000000..7791ae66ee670926e8f8726dea1062fde6735ed5 GIT binary patch literal 9858 zcmeI1O-mb56oyYeG$xrzGBdH(kJdE{bF!QZS3U zbl0EKA5dKQJMv4k&zVWgOu%m1E&_Kh?>u+ropa}&JI8=CB2pJAp=UouCO@O^=!ZyU z3Oz?J(L7p2%V-6yp$)W!-lBKt7=1t|=o4bB$`|w%)zKOHh8lNwB1UEnObwVCFg0Lm zz|?@L0aF8}2L4qINX%c$xQN6VGXWDY$@wJg=eQrHU5!)&jLJaq0Bw4hBs zHq663bf5!0=)pla2#4Sh942lUj`XU?L+3sQ$KW^|hb8hV!7|5XH~}Z%B88{1P;T(C+!Fi77;R0NM{68m)u*z{2F2N;OgEjcN*F-)# z=asg|L;I_66|TWGxDMCh2Hb#~a1-*stZcz;xDDU*nwYoFd53&<;4a6za1ZXmea`R0 z1C9^iAv}af@CY8`AH(-XW(`aYm>MuOU~0hBfT;mf1EvN{4VW4*HDGGM)PSjhzpVj@ zS(0z&k;ujE#VxOA#m;1G-b3(a7RA)_LVi**HcfqfTN_iaD0cJoyjrW)t}f%t*r9m! ziefc&Y>`GhM!fde^sR7AJx?;k-(25ZYdp92hY#+rULI*|gNP*avqSe+&kFeoe||cA z5U*aAdt6=W_^0QL-wF?W^|H)S$JRCIo}YTUMpu`bUl1Q&A6s%wn`=7xxt@;1=I5uL zh1&Dy#joqTEnhv0IdtMZC+b^_ZxJ6npYC||Y{@czyDCg-HH|LiqWqSBT`_?OW8h<{#8|OrpMedXG+hbo(~rYkjrr zBkHSHh~(ex=NLcye51a4dB%9){{4Kr>8JJi>Vrv?qUD624k^fpJVB%4@>RnX4?o2( z2W3yo;g8{uvLD7P;uiTDl7It}7XCOT!@j^5gfe={Rgd^eGRQv8RcTxY*Wt@T8Mh>l zxnhWYoR;P}sC0|nH;vPuIcTN3gus?}UFpz*8AcP+0WVxPz_ t9XT8HSM*w!zI7sgoc43AzSY%lUE?~O&j;7|{cNkx*mB=*UnBo>`wgP9=lK8t literal 0 HcmV?d00001 diff --git a/maps/com2_6 b/maps/com2_6 new file mode 100644 index 0000000000000000000000000000000000000000..2fecf736b312defc0a303127b2893207a94d1729 GIT binary patch literal 9846 zcmeI1%TC)s6o!wJaEW6(aU2Nu`=zZ=Ta*Gtv{is2ph5@`LS0lUi!Qq8qKhopk%#I7 z^ilF8(CpU+6b#+~12>*)^~=U~9nEfUN;r1GWZi4Ln~B zh+|@9V1{+g!5kbEkwG{Fhu|>%!_b8;^q>cWei!*^4n z9EDX_g=76H^5Xw=nShhzFb${SES!b&c=K=pF2F_l7vVBohO2ND?c9a?rW&!dIJCte0+V? z3sS~c&rca&J)aoK^^tFRUE{~|SI;9xQvM!muQi(F>uXa%PxY76y41teuX+{Ycjm_i zOw8BUuX}xaeVtn&#aFMu7@hgWtkZKFOg&-{3ywoLU+2yX=Rjg+6kJgc^_k@Jtu!z95$_* zY+zkWowlQG_genaE_t*I*P^4CHvNxn?tg6i5AAZ(#4-Ka?(Xlz(S8$0p6SR&brDZz NERrp7rA<%o@eidW>xTdU literal 0 HcmV?d00001 diff --git a/maps/com2_7 b/maps/com2_7 new file mode 100644 index 0000000000000000000000000000000000000000..f76b30cbc83d137b9c9274f82edc06a2e3a9d7fd GIT binary patch literal 9678 zcmeI1Jx>%-6o$_%yX>;NGrO~2xB?M^O9&tkK0?3{BoG48@DV;jY~)8!P?)fVg@uKM zg@uKMg@uKMg@px$g@r$2OACL30iQFoLuMwCSZJ}yoz2TL_r7!PJ@?LOm@6WuB7^Ae z9QuKNqF*8n`Wk2GDQco;=s9|UUZPj%HF|^IqIc*$`hY&7Pv|rHf-cZk^bLK#x)L!m zdthq7)PSi0Qv;?3ObwVCFg5V6Yd|b-PZKb~*hvvd!W2xwZrBae_-WWfy9Z`r7Up0M z=JE5;=`@kQ=3F5E0(5D+utd8AE3g7<^w(f7?Os@ib=U{{-~b$ecREe1OLHECgK&s- z48dVI3>)+};0WyzI0{GM82w{#9FD^YI05fmi}KeW&P?EB_E0pY=3{$E1+O~7V#R)<*i@6LMXrZ z`06?6Px0z$j=}zSX@33;`qka4;8jEU$LCkC8k#>IuU^|+%3@#7A0J=63JUfw z?yILc2KmRwFXFqAcvru!>*ejAdTu1%4Ic2`k9uVk%%6~`uU{Jl~Oip6JK#=QN{?T+~H| zdWPd)7GEv>UxGbTPfpKHXP?ZreTDZfycu+sr0D4oXGX=Qhes(7wC`>D!}slHk}mz>d+!;-|KIf+Q9sGA literal 0 HcmV?d00001 diff --git a/maps/com3_1 b/maps/com3_1 new file mode 100644 index 0000000000000000000000000000000000000000..1f3d6d6f9b16f40a53c584aeee1849dffa1eac35 GIT binary patch literal 10478 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 B^f3Sc literal 0 HcmV?d00001 diff --git a/maps/com3_3 b/maps/com3_3 new file mode 100644 index 0000000000000000000000000000000000000000..640af978d392e36977e268d017ec403e09b27063 GIT binary patch literal 10030 zcmeI2O-~b16o${xQfQg!%oGGcgvzHe#;7627&OEfW0Vj=2+^nr#Gk;z9sEcaE?jis z!i5VLE?gM(d2booTLT+)(d16^^32TJGiT17)1l18%nr?(Xb~-~qBXRM-lGrbBWj^f z=rj6)zM^mFJNjX^Y^aQeQH(M)hAyIM)Irj7#+<-UW%|dKz{dT{LI#k0-A-1)C2i}2q;azwS-h-=!7&ooo?{`s$YIs0> z58xVHgAd_D_y|6NkKtqZ1U`XJiF*p4^}DD;HLO$DI^2L8a1(CAEw}}@;WpfXJMcMi z&*6)H7xk!ym(=qTzJjmdYxo-O;_t#ew)fyZ+=mD3KY(w8!We`e2t5#bAoM`!fzSh? z2SN{o9tb@UdLZ;b=z+iQ0gGbGS{X7s`g!!zcr+br;SX{5G&+(u+U1uzzMfu3@cD&x}o_-TwZKX)D$2=$Rjh7d9`MvS-VoO?zRSmuI@>FBt_r@ny zZ`Dyze`FP&*}FwYjO5iVJ&liSP<3lL@zYjKG`Mr2~%F)U1pI>4%#<#}!wfpbS z@s&T)HU5z|KJpTD_V~-MotZzy%g|Z*!UIpS*^b zzv9Kq%l-Vt0bGB|%g@PQ=kuAOPW>hKNwU-al;8P$Mb_&lT%V+C{C!`Za&)f$fM&t8 zxbw^K@^kXb%f0-5yu8fI@B8wUqm$n|zd`OogS^U4WmrNLW~3(21!kfyp-Ev^O79v#iCpTy=d`@7dUj(d-e>5jwZ|5|>$|GMyYewA*y+A+6mS+pH8R62uD;5ky2pq(xms6m+HH3X3g> z;sFn+?Dc*WKT1BpUhKtQ?8RdD_sn#X^bLtO3b}YQ{PUZ6|L^mj=IJ=(RYW#KYUprN zq`r=BBChLyp})~T=wI}o$ef@tltvCJq7vGJCQ%I?Ky|c$8i;o1R?sSHq0`&jB35<{ zY!28QusL9Jz~+F>fp3`u5)0Nd&dW-ib`vlG$0#3z<6Mu!6ih+hWh4zV_!*evItO{b z5eMdB9=iB0ERMPuua41^xOlL{xJ$4?c?DLvuEM>hDA%(6)Y}hvpOZ;AMfnt*=6V{| zMqP|k$2h~dXW%THg$F4=2oG_62-aa8&ck`Q02kmQ^%mh#coa4$Z@?w4m*DcKi*f20 zn~b{&kHh0|1+Kso@C00itMDW|30trQPr+00G=Dkzu6~B=Gw>`t3(t+Z7^jZ$Jo$ef zUf}uyya+GCOYjoB3@^hg@Cv*Nufl8a8eAiO4PIwGufrSg2D~}yVw^h0U%n>hsda9_ zTktl#4etg%$gpc4O_?Ys?@OM-ATK0ta zCvcPe--J&oe+r*b{tP}JbunHY;|s?70=|SV;VbwGzQ%tI-*Ei~zJ+h$JNOR1$A1q$ zaQy*(gdgE2%0IzBtn3=t9I!cHbHL_+%>kPOHV14D*c`AqU~|CcfXxA$17FJli8)ee z7m>*3m(4H2PxCqb@IyoJYkW+-(hy(0YLA}?;x#<@bw8$FRdQ`@TVyM4wy$1Q(jC7) zKHc{5HFk@A1T$W}!Vq6Qr^h$jSI-frt!?WXnC+{lYZUord|uo?izr&ZgpBjiw!-rM`E#yaksR^i{WE>_Dn0$1?W-TeQ ze@Or8`OINZym}Ko^Y3q8{rtdq^*j{aKQmrEkM^VW>-Qa=Ki%~=ef4yW2gR50%Dd*D z&|OCT1naL}nKrufH+_faTW|lnef6}DZvVS|7q2j+fAtDO`d7~#(!YAz$Kd`mtWP)p zK*ohXlpdJvJ3A8}{+UXq`Yhn9DotT>Vv{SKAmtVyk= z6sfli3!G`zXLeSW``$U?tg{}$U&Y368_l)lPA&cCRO{-x`QgDE1AF$~mWaC^criWC muFICzt8ktP%f}tg3*ou1<q&Yhh)h3H(q=jVUS_Cu5a literal 0 HcmV?d00001 diff --git a/maps/com3_5 b/maps/com3_5 new file mode 100644 index 0000000000000000000000000000000000000000..52bd5396aa45afa2dad855696ed2c19b4c8081d3 GIT binary patch literal 11498 zcmeI2+l~}f6oyy#j5E_cRn^r;kYj^5!Z65b|9h>y_S&m^ z4!h0ll35jugN+UF2l&fu;&VXX#1-%*sDm5eCin(?3vPpZ-~pHcKY?Gsui!WEJHY1z zJ}3SJe}jMK=FAc#IY??Csez;hk{U>A;J>K>O9k_$;WT?N_^g8UX>CJhHUtmD!|(|G zBeb*dDC`1{{v4cxefoX4uvkI-ioFzqXSFME1zs8j{pwo=FN0T*hZXQjo>#)F7aNFQ zF;|Jd3a_;RTMLizJO;0a*TduRI6Pr#n}9d-ycymKZ-uwxXFEK(SU}v9#JmIENzA)h z_ilI(&wJo~@ILqed;mTKAA+YCHw7Oi4~OBS^dE(f!N>6TKKudC$N%pj&f~=UA^Z`s zo?tyE;7>x(ul7m!Bzy`!1)qjb!)M?#@LBjQd=5T`zfa-wJb$)WK+KBu0{eOaz6f80 zzX-v4)V>T~hOfd`;cJY$2G@A5!PoI~9sX*uf%p~kjS#F$?VHrYP5A35(A9SfyIb&g zA$V5%`^5(KO)=jl{@d^!p6|eS;k)oX`tQN_;rlRu!`lP+A^Z@2ME@gr=2->nn_;a# zz(2yXtn=ptNe+@4NNOOdfushK8c1p&sez;hk{U>AAgO_*29g?hIyGP^*Sw}@x#n!` z6P(u|NJ+~Bv)bd@W8)t)=&b?zFMg_kR_>!qt1w5)`)n=hUs}bSrhJ># z(`orvvps*sM$t2U^bGTl;D5HJE9zfb0myefy)gbfn%75{<}!cF`@;N4bBR&Dm7{3< zE^AYc<8S8kVpID2VJh(FF=n)V>fU(~;H zTd?6+due$v-@d)T_WGoc^sIlruG~6(=9lKMhA_X;_@rqM;@0n>dDX6N)v)~LRFNrZ zUe#@c{;lb{I-cSc#4jxey8c7CrAy0Iy^ej#qPo}c&Fk39znt?5{7VC!^+n^8mIK}V z_S#F!nLBTPqPpAk(Btf-DM#J<=(YFAzh~J#dY1XK_-}oFELcBU&bsgKg?gsxqsQ4x z^Eo)|>`!F>q~)qv3)dITue4lsv}3Wph}c+h=_)`HQb_X{CAZuV{SIihbT+(m*3FK54~f{QFy4vFUc~qw`BE zf!O*8^zQpJn!i$0`Ei<|z3Q*^0W%kTzU8TpLQnm$6|GnB`6I2+Q$L|>ZGDvWtA4`w zcdst3$o$>B(nsOXtpRUxMW~Kf_|7Jx?^Rsc9pRv*SjD&%e8*xH=k%}IYmD3#oY-pwzX`N2hr08Ct^sq*wfBI> zeSlE|!QC!hxioodTVU6^1;0y^u_3aVA->?^uNcZPU+0T2)7FrGwY_OFn6jZ#tF4)b zyw(`CGwNr2&{jX=)%InZX}8O?opxLOxpvzP`|T;c2IPHYCh#`kG=f?8^Az;^RjaFA Lp@(Q1w1d~bx+5_D literal 0 HcmV?d00001 diff --git a/maps/com3_6 b/maps/com3_6 new file mode 100644 index 0000000000000000000000000000000000000000..e5ae252419f1fe16dc456fc82f689f0cb0a6b91a GIT binary patch literal 10594 zcmeI1+iny`5Qb~^;N6|GiE$j_z$O@MjAMwg3F06iL=gxO2t^TxAa9VkAQuP;OMr;j z1?2(q5`GUqL>^$C1m~-n?HzBU;U?l@QBUiizsG-9S5;5Vu6J5QwnVyM5iI=$2H+o& zV{H(E6wH7*Fb}$50W5(Pa1yM8GvGY91bzlr!3}U5{0i=Z-$8G8SH!`sfvW*m1Fi;K z4Y(R`HQ;LC|JQ(c`5ZM7sj;4QxDGeq2HZq%!mZB@>K2>0iQ7-FYTX2KMSAZ`W$=#z5ri@FT$76FT+1gDu`cWze4_3;9m^LPy77-lB@7F zuCKw@;p^~C_$GV{{T6(CQb8UX`yJ}~4*Z(|f7d?0H{~vTkL!Ez1NZ^_5Pk@6!kh3P zlM3?F*dKBKAHk1VhsW>}KJlNxPs#5o{0#jW{2cu``~tfd@XOBy! zzk%PtZ_(ev@6g}De>=D}a5dm+z}0}O0apXA23!re8gMn>YQWWis{vO7pS}jf3na}F zAku%|f6wb_nbLzF>b%7j@l>0ZIJ-a4w%xD&JJNNKr`ogxnc9jBYW3V+`!du6=I>y? z-Pcywm%3^JP}>3T%WeOvb(p`fzCW<-RqGIg+G-BAf7LX{?S7GgZ68RI`HV5~d4INA ztvozJAwSi8iAMQ(Vr1TF-{8ZmD^=Yq9EI#x5*cbJ0ua9bJUVlaX*#1>ZB^<54ZLeCAg`@av|Eh6^D(g$N zL;@Mrr&S-S#i08Bs_u{GxBdGPW#v&TXy*UWe?)zh^;wf}@`SY(@JXW7ZE}nnYLSW{%?Ntkz zqg>x{d-7-g0Q;i;YIE8hNX8Zpydv9qq83lvCgbcJvPMu6|Cw;@spLt;>iba+DptBaB**754Df z7`wvQHTL@s(fgj!^YRT>b$SPglP@JKkFx)_%J@}AtjgDnIl#Gw))5{vSz=#siFS_4dLW@Jqc5W_%QPcq*gf?a(W13c6_F%>k2_hHAHjyCGAmzlo@Vqcjl>3Qqr*81kD{JJ>h^-pwD*yoM^$QYRpM53PT(Dyn;{}TPFr0DaVCsTge TPvbrPXiq=f(+^BvKIQQrHMS$Q literal 0 HcmV?d00001 diff --git a/maps/com3_7 b/maps/com3_7 new file mode 100644 index 0000000000000000000000000000000000000000..232bd6cc56bcdde5f443e1708b0db9479464e1ac GIT binary patch literal 11538 zcmeI2OK4PQ6vxk8JNKK(g!x2do5*l%bi2ryU$Nh?KSkPp#BO7Ev4_|b>^b%d`vt?d4d1pt?04)B zO#A(X{f+&D{VOt7uxc!Z#j)g@HzI)rH3-%~um*xP@b=b#Snk*%7^2R621_*z!!V4% z2#lgfVGZpXSPN@m9jt?K^f+{AJ1_wgFbVauJcXWu4V7l(r#Ur}Un9)W&cH0~EX=_i z90Ui!A#eyB28Y2G*aAnu5pX0N30oPb6^^1k3XX=OVOymcd1_AXA7D6+JjcQDa6Fs{ zC&G5v4kzP38Fs)9IEDLD;8ZvjPKVRs3^)UJ;@1gh!kKVZr5Sl?PP55(Hk=FR!g-$2 z*6S|V1sA{tup4&6MQ{;Z3>U-CJ)^DHOW+c?lsHS_7nNq@r#UTy%iwbITn<;zUIACq zUI}|(5B##+xUctC!BucI{Z_*@wAaA3wAaFQwAaC}D$U4Cb6QWH>){648{kIT8{sC} zo8V@+8Gc=E+}C?s;1;-*ep}&o+S}m{+B@J*xD$R;X-1x!(=PJc1$V>UaF1uS^?EPd z3-`f&a6jA+55NQPAUp`a^^CS&AA*PAVd5Ny-&LBCm*#W?9)U;6_b5CDkHO>cIQ$-d z4^QBC0-l5?;VJH)f~VnWcm|$8o`wsl6(v18xr+egg58j9O;RE;p zK16>AAJKjUAH&Cx|8wODe2V@QKBN5%^1rV@p92eO5Uhb<4Fqc- zSOdWt2-ZNb27)yZtbt$+1ZyBz1Hl>y)=CEOXd;)00jjvj> zM0~mxHuVU4xTsr_PmcbD@xy%?bRD~wJJn(_!P5Au)f;-)!lM{pHOJ7IU8GbW)oh<` zNxpbqeAR5J>Fd>OsIktE2^Pm!%@*6IQ+{83)$|#8{i&Z@d~bY*+9WaW`Gq7F)53A+ zuZ)&zNs0RU$6{{uLVZ+AU|xMJ`ula&5)w1|Oa5@{tD1xP`}=j(G)M3Gmgkpcep!hZ z_44?tHDTWT%5~M6q^{ros^zf$`m2`n)xSJH)ig(Me&xD@=J?`=BpzpLjUI0ORZAH0 zJy{C%Q$6mhZ@C`l`T6H>>Z&Du`SSyDA$)#()ilRa{$_qzo=whJKc=o)j%Vntzw-I1 z)`WTEm&aGFNus{zW9Fw?7VEFSYMP_Be#*yBG5>m_K1uyGTo1Rts?{6yDc5a2|4Q|- z#MD*O7^V28o<>g(sK@#I@jpMaziOEQ@>5M?l)m6($t?&6e#{5*vVqX12Vki9dQB7lb^S6kv z#o=)4{Z-2t@k3SQrH5NT)iP!A z3m$I%s%eZ;e4~G@)JcuhVtU40i@~UCQ5eDM#E}Nfkpz2BCSV`1m*it?8hcMBVIRtH zcGV2$Y++YYgdPo&lob9+cBxFje?0!v*r75B-*$Ny?-9JJcb(MZo#ORVna4Sw{VD1@ zT|Q$c#{yX>@8H|QtNO-e7W+SDan8nnK0XWC$1)R}A)nw8mpSNjQ0El&PV`RHPT}hl z9?k3&8YF|!yBML1{W2e69gNk@Xx);LEN2tm>N}YIL_=h#yeIEtt@w7ZQ)moln>0$A zGgI)j@gBxG6dQ$iE3Z>r|0(nsi~m@9P2(j)G* p_Vr&oh5PE`UFW#2E!?+#*BRe+vUFXoaicw=<5z23Td&{h@gJ?~@16hv literal 0 HcmV?d00001 diff --git a/maps/map1_1 b/maps/map1_1 new file mode 100644 index 0000000000000000000000000000000000000000..20e59abb31bccb9eb3869c2130915c4ffeab8b9f GIT binary patch literal 10586 zcmeI2%Wf1$6oyY1gR$q*({t&u$1{e(V~iaLHz!g^Fd7g-5wao_EVAGYqKHMXpP66k^+SOXj2EVuyP0`Gt;U;u6a_SxJ4x4}o? zvllN!a^z=_*Fatac@5+>kk>$719=VPHIUapUIYJS4TxvY*T4olh1UhdtFg|(bMQPo z4;SGgT%L7^*cdCsIR(bG@6S5Ov&I;_490b=KIy51*Pf5TC}hPJHX|261n|XXJ>SfzLZIPumw>RS=*0eu+3P z!CUmV;J2j!MBb(U9{p|F+wfJ+;VOKM{x$eI`gQoms|x&A-*1xFoA53Ax8NOk2mZi; zzP4|}x8V{h zLMxN`w+&s@0x6Hy^WtwxucB3%qiaPD4$(97>3Y@tsr`*JVE0$e$49rGL8n{)RI3u> z^Mf=(jZZCcSzUcoAIARIYF17C^mJ`iYNP!9^X;}L?Q3khzq9Yj@^ZR;>c8$^WsX~~dghk+n2ZZ9-AxkVp4sMS=84e^%*96k5zyA1l?p6WOda7Y-nxk z&Hfk|@2`979;5S>qDZ|)ighRhjKou`N>%KV)C2rk=AFA{Po89 z_3TS3JHh5h*ZRr0eqYiJ_J`OQI{zf<_p=9tQqTM&2QL3c`u+Zd{R&zs4ii_OUOcU< zR*IVw=ZCJIXU}Je+?J#jx&7_>)PRjowMx{AoPP%YG6!sZsHSJ+@?+F~y58z)yA0fV zPr}ew>zRGk%5fud>%BM(!&JBSRVzv(a`73}(+PHe)r!P0_TS0r^QoG~IB7rK-qxQf z4_a|~5DuMv8A^Nf{2vuhbEnUrTQ9w}wRHUp{YK~c(ft3TPW=Umem}YO{n8Skt z&)N}il;1Q8d>VTErj!1{AzBE0p>Z$BMcQRP`LX~Dpg|wk0AJFKo|N;#aqwAUv?muB zKO<+s8=xk~d0*P+-Qg;Hl9?r`Fss7tGwV$`#rwrgc$4`$kE3JGqO4hEP0lg8#&}ag zMq6NAPII3F8;rHML*C7XJXdYF1$W@KEXxY$@L9l%0yo$Gqy39_FQ&Am1A5tQixO_ftQLI=30&>%V&a E4evu7;Q#;t literal 0 HcmV?d00001 diff --git a/maps/map1_2 b/maps/map1_2 new file mode 100644 index 0000000000000000000000000000000000000000..56db1314bac2f9e9349926da2f68aba0a7298030 GIT binary patch literal 12630 zcmeI2O^h7H6~|xq?8kU^w?AfgXC`FrY%<>1#y0CU=EDw-JCNAM*ciu-<2WWe1agSQ z1<639M7Vt*aZnI~#1}-wNXUwel%NP96p2F%AtE7>AX)Mymp()}<-h@n9HMo8uexid zXV9QrlEduO=*_FDf4zF2UDNiKh+Gg^gm%t}+?GIphyEq9d=6r~OP~elSCEeX34IKG z08@wtlsRruU`A$(U~=i&44+OQLTs*iQ@T!(*wyeln0 zUxL2E{1Wq9hL!M7ecJ}#2Hy_f4&Mpi3121#%kbTdcf_@w?E9z@`Z-9M~^f9l&2@_Ph+R7!Fb&O4|)1V6$23HZrj zC;U8#&)>oS)A)Lp@ma>_=s&z3h;!~?{B6M>!QaPt3wn(4kLjOZ4@ADz&&TomarhI| z!4vQ&*9*zGJW0NPir+uO=a_NK_~*ps7mR;7?1ZoC<8$QyIrt0s{Q~?&=3j)rH0*?* z>f^8biFuv-&9D=Gs*hL5{}uSl5v@ZSwP z;ivj|4gar^^WQ^%VEhL2Z@~XJ?1Z1{PLPWyS$Id#Wh!4*K~z{qYAkAsV`o7aZT~q#Ahz;#;@Kq zyGw>E=F7ZT{j#`ubB5p4jFG>2{>-X>XpCK5<4B`NUNNYnU(!asxW8iTk#_Z4^R0fx zYoDXP#{RW}{$BePg9hpk!62$ft-^z}*<+t#LGS)~cr*JH3$VW<-xnXn!XE$X&D=s$ z--beZBu~e|;(D zCxz#$RksPy`gEz?ML(TgwE2}bv$k8M!=eZc%#u>zkmAM;3b1`#k^!Xw)N|_<{Nc=T=ez} z{wo$l)3ME;6E|zc^HH%N>e`2Vy_TI|S^U8C3?FD;QsMcjw3aVFb>pcUA3g1yskk1B zY36)ZtSaU7{4)pF4z69fJnG_#Rb{def47psS$!xL%0zlLzIstV&UyXWGcDhL z0{bRfo#%6tTgg`#+z0byBDwBg-g{HCc$19iAzw^&HA4<7*|4Pe`D(Od0YkZb3J7>x!`I5!QHTh38zS-}$ z#BMp)Fh&Gj%}rMS9o)*hifewoq+9>e4$D>q%IP*H!LKZ7e4vPU=m3k#u` zmg8meKUlwFs-vhs6F2#D$zO~8TUNg&z0dJ`vk7BRUJ0|66ev) za7W`G$XGYOF?MD7H|K|9#J`J6sl*Cx8XwnB$6_ez*cUNt8~659K7_jdO>W3x6JN!` zp8d!AaIL=*^7i?hv?Z?cC*<4Q5;-Bq;iu@exG!)@9_9PEJR+-%f5_)iMyuQ;y2sFQ z?pS=Edj>y{uhCnje~!^UM*HRK@+~ z5Agk<+|8;7S#vjZfE@3X+qlUTL3c5?%+>7sWQUnu=62T(ZZYkW+qv^}pKRsU*B;pd z-wwYcM?^Nrm$~=04cY>72hrZed*l^ycZEF}nEY5quM*p9&-WEMe2QR>g&% zTv%CM$=K~Wq0Q7GYrCHi-8!Z>iqPg7#W>6eV3fNWP6+lZZVjV4>IeGJaVkgv52B+$tSwEAB#*vR?mir%rGA^ zS8mHcw2$Z7Z_;#dgz=5V!L!`Yxxy!1f<6JBVfg literal 0 HcmV?d00001 diff --git a/maps/map1_3 b/maps/map1_3 new file mode 100644 index 0000000000000000000000000000000000000000..373e15939ae09e1b8c4ea451257116ee68a10d5b GIT binary patch literal 14678 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 F{sU0!4blJr literal 0 HcmV?d00001 diff --git a/maps/map1_4 b/maps/map1_4 new file mode 100644 index 0000000000000000000000000000000000000000..d449447f9310430743c787eb54651f8992551423 GIT binary patch literal 17506 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 literal 0 HcmV?d00001 diff --git a/maps/map1_5 b/maps/map1_5 new file mode 100644 index 0000000000000000000000000000000000000000..c3e5edf8e8815f1f52af55e17fc356e46830eac0 GIT binary patch literal 14590 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 literal 0 HcmV?d00001 diff --git a/maps/map1_6 b/maps/map1_6 new file mode 100644 index 0000000000000000000000000000000000000000..5a974bde9fa7ffc6253b3f305794a8377b008f8c GIT binary patch literal 15838 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 literal 0 HcmV?d00001 diff --git a/maps/map1_7 b/maps/map1_7 new file mode 100644 index 0000000000000000000000000000000000000000..1d01dcdb47809e9e4296552116d33d88e02c4ff7 GIT binary patch literal 17430 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 Tgp?2|Y5C!hQ5iDkGTZ+H2eCV# literal 0 HcmV?d00001 diff --git a/maps/map3_1 b/maps/map3_1 new file mode 100644 index 0000000000000000000000000000000000000000..84a7eff42e43b18caaf7be2284dc952f4f009276 GIT binary patch literal 15932 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 EUx`sx=Kufz literal 0 HcmV?d00001 diff --git a/maps/map3_2 b/maps/map3_2 new file mode 100644 index 0000000000000000000000000000000000000000..dce4e59f6f70a8c1e3e89a5ac7430cab159c7a34 GIT binary patch literal 15470 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 literal 0 HcmV?d00001 diff --git a/maps/map3_3 b/maps/map3_3 new file mode 100644 index 0000000000000000000000000000000000000000..4c92dfbff5c755efd16ef36af620a7c48b576133 GIT binary patch literal 19074 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 literal 0 HcmV?d00001 diff --git a/maps/map3_5 b/maps/map3_5 new file mode 100644 index 0000000000000000000000000000000000000000..ccd60caa23c8faccc6e18493fdd4c27cec8dc42b GIT binary patch literal 16690 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 literal 0 HcmV?d00001 diff --git a/maps/map3_7 b/maps/map3_7 new file mode 100644 index 0000000000000000000000000000000000000000..6d13879f705be118330ae65ee8b020d3e998483c GIT binary patch literal 12534 zcmeI2-H#hr8OGn4UGI9m>u-CVuU*`dG)dDDXNMPLjDuD<$;(`kt-7bZ~&Y%JA9kj<|S|$Tmf9O`2=_hgy4JN2jEBG z$KX2nDfk)af;Yflz+b`N!9T!1!M{HK*ldQ`8q8{7Rs*vd`2VQ^^W0o~*yp~?PYcLb zxh|Lw%$DE+T*P0(U)k;;PvuyHYvkR4o1C}c7QA!2!{%I$YuxuWa&41$8@_S7gFKbv zUh>`x@87Nii-2 z(lF3;{xE;{{1N!kVbD+K9kdSowXFu`tvNqN9*@Ca9|n2r{2MVim;KFQ&`;-= z8Rs(mt*r{?ueo1=ufX4ig{#<)llSBBcQ_Zmi~S`0B>Xh|G<6cF!LPx;m|?aCvl{r{)d2fWd+v4kb@-Rl2EKch^PBLS@LSUc@>b4o!*9dCnl_NP za()MX2mbZ6fqk!>--X|We=}|1zANYV;P>F)P8-NuIlm9T5C3l3K;0|n58w~r52p#- z^AE}U_uvoUkKj+_-xfOml(T54E0qGqy1~P6jebw{_?V}$AA%dJp>7tQOT+pEUohzG_ACFVa8GFRN>ARq{*YXZ0qrS2OW*x#9R# zVpo|%+CQt8h+WLYAJr@5R~_n~z5miwBWeCwUA3b*jMKF?s-bbZYO6Uxm!=v^*Ebtq zwWl>2uWS8RCg{uPg$a6r`X67Ps@>WIUH4WsoZkQJ{8ihf5#5z?QlHY7C)}SE^x_0v z^;;gR>)z=erT3>;wEp4tht^j0o33wGSMJI&%`dBKZrVR-eP;DCxm7?Kf6t!b_|htw z{XMF$P@gM9@w2)##YpF$)$3@D3Gt;hCd8LkpAcV~VvLVpX8iKl{G~NAf1k4RmsSVq z`e$`%b;cMMzl>Iy5MNqlLVRiEk@$lf=;}wBVvLK=5519ZyAplQRybS*=nVi*ns2L# zKJRpQLB6lAMjm>a|Dg9^|48#}S1+!=xk%%u{iS)#A<^5T`WpS$6Wz1y_lGner1hKC zr76cW|BUWe!g5&amczKe-?sGd&6if|7K6CIAEdH5y%XTiV^2G(%;km z1U5MiOjrOmj)h6iDYPLAE{@L-R z)w_#PGQVy{d#B7=#SZd{;>cvKIZ!U8=kmOH=$%(TJh?89adW!A1V zkjr0M!}3ww-%I-s)<^nc+TY^t=Em3B*1P$neykfWZ>;CTn&rbJfAm3t^y8!H87#@a zlhyTXqi3YJzIoB7Wc|a%*RzeDv6A_Z=z6x%Gg>l!R`)Gh5B&Ceko3n&j+*hjy53=r zb`m`iG3xetexp85dk??C-(%-EyN_Sx&*8hz?!r22pXGDWK4*8@7rQzXuCjQ_oL2Z&)ZJh0T#G!uk8o>>;P{`9N>+KIg|xk zx0~?qqrDmbLE1TMS=qh}*6ovans*9L^M1i;TgHC_?U!r`b;&+~dIqIvtN4rf^Y}LH z7&u}l(N6L?Ww+R^KyPHMaz(|Ca>Wta!}vF7edBS=s;rJsvl3`qfwgLzN9$RG504G} z+Fbyj;w_HjgH~1_pSIhu)%I}$>kj)0Z+d)&_7bhmE|Fb>Rhfr(Iws`RC$1j*>XAMj z<=h>v)|gxRp=jKP0-5+}u};IECUYPDv|%!q0hwTHcdi6f2=-Fjtl6zzNgo1s}LG>zGEcF?zreSaXovjaDNvw?p(GL6%0K&+4YIzP`%VeDrf&R^yl>_C3v zSbUA_cpP2BIDz@>C7;Uo*~dOREXSVVD*;)p_CgN7T2*q+=3Sd}?SgBMy7q``H(h(o zwTE51;o4hVd#h`2cI`pe9&qg;*WTpXeXiZ>+WoXTSPxfi9c-V!UH{ENRaQgpQI|om dsRb)_`nLRqcHh?Xi1Tx5b5cqHtMng^e*@1OWA*?5 literal 0 HcmV?d00001 diff --git a/maps/map4_1 b/maps/map4_1 new file mode 100644 index 0000000000000000000000000000000000000000..6853b0ad95c3bcdde941e0545780c67122eba838 GIT binary patch literal 15698 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

    9R&u5ZlCrf&ph4PBo{ z`xbB5wIZ{s#cQwC&B`_ExmVQJcb7*C-&u2cgw2j?M=^v8y`*f*Y literal 0 HcmV?d00001 diff --git a/maps/map4_4 b/maps/map4_4 new file mode 100644 index 0000000000000000000000000000000000000000..8f912090b815111823b98b54645083562805c756 GIT binary patch literal 17586 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 SVTA;nrY+yG5S@ipX8!~Id;O&V literal 0 HcmV?d00001 diff --git a/maps/map4_5 b/maps/map4_5 new file mode 100644 index 0000000000000000000000000000000000000000..86cf0eeb561e946800feadd4c5f6975615fa93a6 GIT binary patch literal 14882 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 eWZQ-~^CFhCwgoru zlk$lM3Akd94XeOUxg8?EhtP**Ob(;@CY7hqM;SkgJ~r$E&tq^t4*zH1dXn>#oS&k9 zdNT;mxzq4nL!W`~S-yhKa{f#DzuF8!zLn>Bc%MhVKpnh*esQyiOvsDm`#12u2>~~Pv!W#eqmh4en0F2Pvv-x{9i-A zLH^%BzsdNU=~@eI%n8jA~$11EU%k)xf9*Ml~?1f&Xm{h~r1)#E<->l?1PuIUPY zqYAkAi7#HVzM*)_3j+TG_{C*7oxZGLa9r1}m;x`j@?3;~R9pbb!eqf%=B)4u} zd-d9@`}RA(t~c_yVxG+A{9AJy-&x`_n{?w>Yna(3#TD~qPON`fTv|%;+nO=*HzyvV zxzlSLsrT3`hIIT(Qm^IbSByE5u7A6H>tFHeUHn&>znb&kyMD!xf&N1G~84SbxX9FFuNeJ^X5oY=x%26+?3Vd*h=RbL9B-##ga`91ZqA%ltk0 z?ODHKAvI#{`Nv@&{~79YCfc`O>+9Cd{`ykPk8}4|vt|>Z_32W(i+(b*X!9#=Mr~t% zhA;YjC?_2}>Z>pAjeu(g;*mZ-eDJjXq|aXOJ-x>U;reXwqj2#2aMNeRApg3yK&Er? zGj$;}lV8Pr#QNv{S4^A171J2B%<%d~Kd#S~Aodb#e+NIXATD+Mk4bGVtB^^2IEwj* zwRfc2$eysNe}fl0_TaVb`I_QUk@%Ey>#NW8*n@dUcmBDa`clk`ypH{tG^(|lA#2vB zm_FmJeLp{aH+b=2Trn@6ZrS>En{)M=-Y&ZP1^$W!(R9n^&uKNP`RAizLDXFz_O)vI z1WV%wrqA$!>x+xrKgH(C)tA0{>8meacGilnhhv&~J}Xv{LUQ5qk&Po8*RMEV6nGwW zam6Y!m5aYyOyRUX6bofCdA{}Dx*pC2eeIc+%|FTdCYzo6bBkNdt}wU{=E-FI5C7`6 ztJ`*d?Sx)2?_aU9OeO8-KK$mxZ_a(-Tq)QJHTH^?S!1_8?efy~DdxfP`W5AO;j;6E z6nf_`HvOoWeEG7*XXUE1RxrtzG(N7$f2{FM-`~=53z>&;BIs&v()#b<*4|ZI^XtXk z`j>WCs4zKgod5n{uldd6^XzIg%?0QCVk+?w>)(<2`OJS>{|3+V&)J*zpYktYZ{L5t zxMJ$V)~C*&t{v+`E$u%llhz0 zzb3uYCdE~Z8f{vfjdk6|{xYq-K*l=ryRCVexy0N*KA6^^U4K8Wwt=`Edp7DUWDc_U zxY)Z%H@>~NV(P=rf2aLqQ~h`Cx6q6So!`Y)*Wc{&%gtZc=O^_?4O)9?jg4gsH0v|Z zpFUjDmf})neO2u3_i4S6ec@#M%=bqQm!9XR+VYK&!C^oA&1&qotFfJ5q6}3v zru@wFA+dN*{-(G;QoL#FLs~ihDc%>qg*1Bl{sPz7st+4~X=Tw(@ssis`7wJCPM}ZA zv-D5Xf7Zx;_Ts3VkW>7Z{ugpiegLBVpL6yoXZz)VJi#uGC*%lwIG$$gsQgIwp%2JG zb~!u=b{y8q*Kj!uPBE&5UC^6O$!JLY=4D6rD3Pwh?`8>Z2u6 zQJ*?jw;$^GbR?;b?YrdCCCd{;ZmYqJeUPr-*ki}l85U72P5HOZ?YBgx5bNijh>S2E zGFE8IzqAi`?dzUBH;lNxE&tShIX1S7qK)fxZBxyRf7|q9Gfp3WrmtM^u}8EyQd0jD XQPyvhI>d}O>9<7h(Np~X7utUSr@Az` literal 0 HcmV?d00001 diff --git a/maps2/map1_3 b/maps2/map1_3 new file mode 100644 index 0000000000000000000000000000000000000000..c78b8f4f88b084f5f07bc7bb420c432198be22f3 GIT binary patch literal 14694 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 Jx%7WN{sS^T5VimS literal 0 HcmV?d00001 diff --git a/maps2/map1_4 b/maps2/map1_4 new file mode 100644 index 0000000000000000000000000000000000000000..af7c799ceba802f23fc56b67cad70f1663ac25ff GIT binary patch literal 15894 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 Z=Z`=aLKi_FCjYBU{`nr-%;ZkD{{tr|?X3U+ literal 0 HcmV?d00001 diff --git a/maps2/map1_6 b/maps2/map1_6 new file mode 100644 index 0000000000000000000000000000000000000000..5509506ca3d3309eb58020bb5342509ef8db579c GIT binary patch literal 14278 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 A4gdfE literal 0 HcmV?d00001 diff --git a/maps2/map1_7 b/maps2/map1_7 new file mode 100644 index 0000000000000000000000000000000000000000..693ff016e190b0984ca3792c9e0ff5d269e46813 GIT binary patch literal 15678 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 X28=Sc?ENpd0_$5*PYc#9VA}D&U0@x^ literal 0 HcmV?d00001 diff --git a/maps2/map1_8 b/maps2/map1_8 new file mode 100644 index 0000000000000000000000000000000000000000..b07f1df8112f8cdf7324dd62e02867560985226b GIT binary patch literal 16958 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 literal 0 HcmV?d00001 diff --git a/maps2/map3_3 b/maps2/map3_3 new file mode 100644 index 0000000000000000000000000000000000000000..aa27011fe008060d7326798f292b1b193f32cd7b GIT binary patch literal 17838 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�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 literal 0 HcmV?d00001 diff --git a/maps2/map3_5 b/maps2/map3_5 new file mode 100644 index 0000000000000000000000000000000000000000..ac2dba6a2f099aaa74c4c3f2aba91b2f468ff52b GIT binary patch literal 15486 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 literal 0 HcmV?d00001 diff --git a/maps2/map3_6 b/maps2/map3_6 new file mode 100644 index 0000000000000000000000000000000000000000..7b3b4858e79501779616f423027e45b97de9f1b6 GIT binary patch literal 19350 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 P6n_m*xh){n`#Am^knPgq literal 0 HcmV?d00001 diff --git a/maps2/map3_7 b/maps2/map3_7 new file mode 100644 index 0000000000000000000000000000000000000000..3dfce343c522597f0aa75d8d0bd786145c583367 GIT binary patch literal 11478 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 KyEBsAoBIF6W9@$c literal 0 HcmV?d00001 diff --git a/marine.anim b/marine.anim new file mode 100644 index 0000000000000000000000000000000000000000..1a8c5eba29b5bc8a5f99c26f2820b29a0def59f9 GIT binary patch literal 44124 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 QUp&hkSA5l`@8zHV2iTmh#{d8T literal 0 HcmV?d00001 diff --git a/marine.chunks.info b/marine.chunks.info new file mode 100644 index 0000000000000000000000000000000000000000..28fb23b53754b713160c089495a92e1b6b245959 GIT binary patch literal 221 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 literal 0 HcmV?d00001 diff --git a/minbull1 b/minbull1 new file mode 100644 index 0000000000000000000000000000000000000000..d8e43667af7bc4e332fe1f9d85180cbfa1d019aa GIT binary patch literal 214 zcmZ?s5AtPTU^wUL)`@qi!iVQArLSzFg7qSFfuYaFfus$`S}BdJXFG5gRB(7 zi!w_}Qu7p&Dis`qUEI}+6&#C76kJjZ5{pW5Q}ap`0*dm}Qj3c-^YapO6g=JBjP(rk zOcXSX%=HXR^ejy^8Jv9`1Ayl7$T2W16lZ$ctn>Qm7H3Cacc2&x1Cs!QOMs^Wm|en9 k;^glV31n+A0v!WHDh!Mg42)3>j5aW`3e1Lx1Em-k0C|@wR{#J2 literal 0 HcmV?d00001 diff --git a/minbull2 b/minbull2 new file mode 100644 index 0000000000000000000000000000000000000000..7966a3bacc3ae868946ee99cd0a08276d2767462 GIT binary patch literal 214 zcmZ?s5AtPTU^wUL)`@qi!iVQArLSzFg7qShzT<~Ffus$`S}BdJXFG5gRB(7 zi!w_}Qu7p&Dis`qUEI}+6&#C76kJjZ5{pW5Q}ap`0*dm}Qj3c-^YapO6g=JBjP(rk zOcXSX%=HXR^ejy^8Jv9`1Ayl7FvxIQcZJ`0oc8nQS!YLIcc2&x1Cs!QOMs^Wm>tiM g=j87a31n+AS}-s&Ffh6>fEc?N7;8{Th&Wgc04TpLE&u=k literal 0 HcmV?d00001 diff --git a/minbull3 b/minbull3 new file mode 100644 index 0000000000000000000000000000000000000000..6458bd3068a5d13982f38f8cdf903369faada82e GIT binary patch literal 214 zcmZ?s5AtPTU^wUL)`@qi!iVQArLSzFg7qSFfuYaFfus$`S}BdJXFG5gRB(7 zi!w_}Qu7p&Dis`qUEI}+6&#C76kJjZ5{pW5Q}ap`0*dm}Qj3c-^YapO6g=JBjP(rk zOcXSX%=HXR^ejy^8Jv9`1Ayl7FbJ^7himM=zv;*S_s)*K?m#gX1||UpmjF)%Fx!^F m*2&)`63EtK1Ud$YLKqk=z^I0SF^_=}NZNtP7_guKNDTnPGb;B0 literal 0 HcmV?d00001 diff --git a/minbull4 b/minbull4 new file mode 100644 index 0000000000000000000000000000000000000000..62595a970558cc352944c5c0463246017ceeaaa8 GIT binary patch literal 214 zcmZ?s5AtPTU^wUL)`@qi!iVQArLSzFg7qS7#K1-Ffus$`S}BdJXFG5gRB(7 zi!w_}Qu7p&Dis`qUEI}+6&#C76kJjZ5{pW5Q}ap`0*dm}Qj3c-^YapO6g=JBjP(rk zOcXSX%=HXR^ejy^8Jv9`1Ayl7u(9)4xWsH;dh6Y*ug;FX?m#gX1||UpmjF)%Fx!^F q#>w9$63EtK6kuRvU|)`@qi!iVQArLSzFg7qSaB?s@Ffus$`S}BdJXFG5gRB(7 zi!w_}Qu7p&Dis`qUEI}+6&#C76kJjZ5{pW5Q}ap`0*dm}Qj3c-^YapO6g=JBjP(rk zOcXSX%=HXR^ejy^8Jv9`1Ayl70Btc>iY*9T{OR2vXGdRmpco4SlK_KDfTseOEytkf h0!~ zLDJ{aLtjXTzLdtkk`8|@J^YPy|jP%@`boQL| z{43JjdFh1<(u)_Rm*%B&S8ak%b!hVY%hpM)CC_(?r8J~_*<2e>zJWRY{IU^GEqUq| zp0dKQJ>Fs1sJLp26tzyi{QnMH>y0I=f(?x2&Ka3r;3J@%& zBTrst>%*F86}GEAF`zHp00yUYA_*prJqTY|EdCoUd!f zJ-ez`9k&TxuVR*?;Qag+8$pw{ej+dBtge8l&q&v4zOu*lOn{yp&^AllQlm}(1HWE_ zRlE%@-wq;KYBmkOhF=udK@lQ8B3>>9-P0Es4~WQpAVR6hHIo-2L?|^mqC6M_uXkAl z@q7zbJR?iO{l*NkB1^vg_71o=!TINe$kqzu*Nk~$B4&aW%UF4I-u9BnHoT`DFeXyF ztCnd~;~2Sy>;SQj+NI{n@yWq<;3X;b;`s=JmEuZ*K#UFtfB`clxP!xB2VO&|Sy67F z%J7xvF!cc?i@2zsT#~2C7uKCNEgm4!MRt%M6Qeqjbz3d&!TM`bBTLlA_#U3*dKCuV z_G4ezLiM)^j$^cnX5zt?JZ;L8AK3~c>)?2hZwIvSh$9Bg*g<6B9IIJHh8_4^SkH~D z2-?v6-*#3>jbnW8HX;YtW7Ljz?@vr^oDVuUO|>Djc^5o`>s7wMJ+VHZER-|CfPQiZ z*exdDtj9fZzl;v~7FR#O*#uDV?VZgD57h<1U2NF}YFiP?)P| z{TyR;9C3UvnzOA0Jy z^2X^RsKOxfg|4nSSvru6H*1voKHiJ!L~ogOU!VplSrj4p9zBEWRTwNfDP@(1=SSt3 zPomtIVszQ7NAb~kV!+5j+o~{#?4VP8cqIx(uBct$`RVV!u% z)=yMn5Yn518?IpLhUwY0x#joVuph@X6uhK~yWVI-WyS z9dZ1=8QB5HqUtz*%zxeN?W7kEqTI+cQxp$4#^@R41==RD%(DerxYX$?#8R?p1d~d%PFdonjn)${;y>P$eC>b*Wx!RMsuN#~f zqWgpOV!ZFi_Fo@-iKiWWh&zHm^uBv9IyXidq-6XOPg(e{6xIh3B9$*Jy4?rVc!>0gKu>IMJ+ literal 0 HcmV?d00001 diff --git a/misc/bigfont2.bin b/misc/bigfont2.bin new file mode 100644 index 0000000000000000000000000000000000000000..8341f8a776466af4db4799b3e519c785fc7093b3 GIT binary patch literal 3452 zcmZuzO^91n6#h&!Z8dc^BBRt!DXv6h7Q;|9wpF?)u3bwY(pDN6t%aGPF}W*oSzL-M z5!bF=DY%wdxDc1cg$vQpmdR9Np5OP*J305|C71KwyXT$z-S7O}7vSt&0N+xMfv2uh zzM}jEv@TQbQyu{A9m?mF-+-rIql_rO0MA^Y+@bsobY7&~qWl1y>QX+Sd=H#%QQoI~ zM>zq`yhr((@;C78Rmzu?KY-_UDPK^22fD9Q#*`!A>_u{W1FhD(qBOxGJub&Qy#rFD z43@*@6BKDyjv`I?UaRVwK-@$RBg`o~xPhO*O|gkfIN(*o=5EvDyr9G?*94;NHsQ_- z+KPd3Y?DWy!{%a?+pJqv_j;IK!Z77txA8pM^gX=ZOIz4W+S9$xHNmli4Q%0U9AcUd zaRwc}>JaTbcFC_(&1G|ibKz~2+Eq;;%BsMB7^M%F94GX4Ooq3S?KYv0J!bb7u49|8+I)BAyWMar!k4_{!K#N{%)+c4DZ` z5&u<9AgTxCwPnV7#&Y6Ulzk$!0(Kp*(FCH!@e!tY#7IV8_nGZJSw^nSCXZvT2}I-Q zCq>Rtc^Qz6bM%u!eXUh-Qb-esWjuIN{7WhDBeSP!5x-G+wYfZ=v-4#mmcA-9>k+3o zB1#?6=7Bh6eEKy+(*&Z$afTCSdY-PPD}1F~_i?lI+UDXkEBz!x+E}i0O&|_1OUJ~@ ztH&Z3)gzl(D)Y>{s;8+5M8$Z_9_(c&u1-`Ro*A?8^EFnvCJ^P1`ub(u!9!f*>8&_+ zt1+zRW^b9$@r*0#@O-&$be|4dT_w@k#^y@acX;d5=nXycHr#BH#(vYU z6Ntg_3H#<+dW)~rGa5JOwav?(p})eJ(5C8{OcRK~F{;NodiCUtta_T7Ks1g8zt{Dz zLZ3X^fqiqK2R0 zo@d>~Q8qq|V^gyZ@grQs3piaO80Id{RddIa$I=C&YgQ4}G1K(tvciRUn{nIc-8p(i zdxiV?wp!uZZIM31oA?BQxLc1o0=T)bd_n+>X`*~+i z(ynS~R{gW*Q}qi(*9fa06Fxa&C^Jok7&!Tp;}~MB@+ZI7_NWjQqkLH06e%AT$GXj$ NRqfV=?l&6`{s&MZC?@~_ literal 0 HcmV?d00001 diff --git a/misc/palette_6 b/misc/palette_6 new file mode 100644 index 0000000000000000000000000000000000000000..2a0ec5a2d0746e246804fbe0354a3f747a5e966e GIT binary patch literal 64 zcmZQzU}xZF;AdbmVku$U#_@ySfWLr$1OEqROZIB+z5M@~joHh%ck=&X6l6AL4P`Iq PoXNeL_b&f`1}Fdk$I%X) literal 0 HcmV?d00001 diff --git a/misc/palette_8 b/misc/palette_8 new file mode 100644 index 0000000000000000000000000000000000000000..8912dfee3c4fd63d552ce04699d62592b008b3f3 GIT binary patch literal 1024 zcmeH@uWMIf6o=pY^L_94{&=>wIBjcVOSYjV(?Bhz!I;IeAR1O~7-(1>B3K0xtb&Nu zAYwI)Sq*|-Hn#hI;llCr^-nPG9G>`a9*%RkM5H1UxhO;_ya=KaGf|61w4xJ>b&ft+ zlD|Zst;%1eFV^L+)B7#?TlCeo{B8PrNB$0dyDxvAUMoMuWZ4bLwGh({H>5X1%)?1ua>#NyZu#p@8u_iiXZhv>h%!T$^~L^rs=n5V@vVVX8kcZ@zHRo^aOv()Ec+zR5TFCg1Yg o^6#tvA?BZ||2bB@l>Zj1KdS#L)}E^W_o9B$e>GPh`2P?51-Zy@oB#j- literal 0 HcmV?d00001 diff --git a/misc/remap_6 b/misc/remap_6 new file mode 100644 index 0000000000000000000000000000000000000000..9173bf70f0383393aa628094d42f1133f78fbf2b GIT binary patch literal 4096 zcmb8w-EJB&5QgD~EX(gM5Yj@To`4YIFA+i!Lb?A7>wMpM?6H%kjSm{V>m}v!u;j<@ zx3?45m`hSybG+GX9^E#&%DR#z7sBmhWVJoLxZcW2joNm*wy)KV7qG{rH#DKT-MSu+ zo5s4vlGJAD1-ajf7ku@4y(Vo+$tu0VFT9UMlY6rFPwy%7R>DnQDc>j%?e$vmLSua1 zU_M2G8~m!UjwbHM;sLn=H~CSrO7Gjb@SY#9n76&(O;w?tud05&crW>BpWw6~_~vhH z-mmx%q7Pt{c{#<@0TuQmksYh9dvYNqxv^RD&uX>G=DRAq=kqo5o~!G%@J{mFDj+;@E0PeR;~s+MWHR{c-^I{Z7Aoeznu{3%~cK*7=rR_Se4Bs~x=n&V+AX z1*7Q=e(;lD`PK$TkL*#vMQP6e?k;{m)4NMvwtId{uXdWRcn^NQ=zq+&^s=27jSOCb zna=+pOa0h}E%YdXxj!0VQx{&}3CsQ-S=#rrHom`fzVPnd^UHMeExlzQkH_zN<^Bif z6(F?1HyjQ>wCLjg$iVSD;sHE8%ZmQ+_b9b`L&xuDw)4U-Z!kW;r8jo^Jkt-5KEFH< zq|G<;if=e0SLch?{J$1Iz&sClL*o)M`a5C1=C|+T(9zfDN?y%RI(P@Na6a(C8yZQk zcA77{@CGnHzwrNW!w2t3e;-nt=P_rSx6{ey-RXqCH|p*8?L0yk=ONp{tNXcEP9XCR z2Dw+7^TG27zh;{6cf9U=l9#_;y*v*b$XwR*^W;7*^~b!|Hh;f7kIdWe1Bm&C`wQ;? z&H2$+dcSDr`7nO~-9EjkKlhp+{P}$1{0jc7zb`yl@jP-b{g|Ka=UxJxzwBcE?mXzx b4*JdM6KB;qap|*F5s?L*%!@fOrn4l6%hrDvKV#r`@fw3Ij6gCH&Zi~ z{q9LaD!)E`FZto^+js9a_1fB+nfdnZO63;T%2z9ZadC+&ouNI{($X?EGntI8<>eJrCM$cW zm6g>@Hk+kSO0BN0QTw&Fww}wGJ=FTfMvlIRPfBfg-Yf9mzZWnmUV$$uCgNW^UhuDd zFY`NeGRiAp%gbOs3-T)dqUhn(VC;!k@t3JGSzXMBkB>&7knmgJEP4586cO!$^8pHFNweVQG3V6 zq(z@fjg7&(yUS-mcXoXI*zs~(-atHYa?-WE0C#)FtN6XX_9{M_fd0I>$g9Dmcjk?P z*8+p<&O2Wy4DjLipMCI)LqkKv|G2mJiSMjwb%VzNq<#Iq3IyP{y@6xL8wi}BeeXnK z;iOjUSzdrodwuQI{J!$)>wa^iyqdpCdh!}D%AI$fyf(N{7?^jl=<>bd@bIwWfByXC z%l^L8>GXa8U_Ku8envaqiHQl4H)IlyHJ4F1{aG(XZl{LG%_+G(-;21V8b`Tw?pkK@7^c%z6u6|173hFZz$w? z(Wj@DHxybz){S?P!1emscjIL+TD(60R=kG40X=zrFu3l#i=~qJ;lt(k;QtAWF2CX( z3^sg0d!M>iNZO1z~Iq7;ieQ!8S`ZMDV6Zq_`(YV!K22-=w@Xzn= z*z5Dr5znbP*cMTR3<_xASoFSN|`%jKt0krr$#E{7Oq-{&KnURFfxceV)5s*Zd0kBG!Dlt@})E&lf%cs{71sd85&&@QpW0 zhv9ppQA*>To?c&<6z{ZvFPhCJd(GurmyBp+m1IDlTGD~ z#XOG>qt$M=A0J=;!AqXqN~KzTZi_F<&pv%$b)zAC<5%yiD*LAC%359?p}eoiqk#PU zN;A-SA+o&!)bqs`c++@wiWl34e|h=%=1*C2`K#5#=eF{i?~89*^AAjga0~yl>xU`U4U1efHCMu}z23Zj+Zkt@HBDn|}aDGM6C$ literal 0 HcmV?d00001 diff --git a/misc/script b/misc/script new file mode 100644 index 0000000..4a1349d --- /dev/null +++ b/misc/script @@ -0,0 +1,176 @@ + +; +;script for gloom game +; + +pict_spacehulk + +tile_1 + +draw_ +show_ +text_simple stuff!\watch out for ambushes though... +wait_ +dark_ +play_map1_1 + +draw_ +show_ +text_stay alert! watch out for aggro skinheads! +wait_ +dark_ +play_map1_2 + +draw_ +show_ +text_now things get serious! +wait_ +dark_ +play_map1_3 + +draw_ +show_ +text_beware the wheel of death! +wait_ +dark_ +play_map1_4 + +draw_ +show_ +text_don't let those teleports confuse you! +wait_ +dark_ +play_map1_5 + +draw_ +show_ +text_sidestep your way outta trouble! +wait_ +dark_ +play_map1_6 + +draw_ +show_ +text_invisibility helps! it's there somewhere... +wait_ +dark_ +play_map1_7 + +rest_gothic tomb + +pict_gothic + +tile_2 + +draw_ +show_ +text_raptor madness in the gothic tomb! +wait_ +dark_ +play_map3_1 + +draw_ +show_ +text_don't stop for nothing! +wait_ +dark_ +play_map3_2 + +draw_ +show_ +text_watch your back! others are... +wait_ +dark_ +play_map3_3 + +draw_ +show_ +text_caution advised...if you value your life! +wait_ +dark_ +play_map3_4 + +draw_ +show_ +text_into the raptor pit! +wait_ +dark_ +play_map3_5 + +draw_ +show_ +text_you're on your own this time! +wait_ +dark_ +play_map3_6 + +draw_ +show_ +text_ummmm...shoot...shoot...run...shoot... +wait_ +dark_ +play_map3_7 + +rest_hell + +pict_hell + +tile_3 + +draw_ +show_ +text_welcome to hell! +wait_ +dark_ +play_map4_1 + +draw_ +show_ +text_timing is of the essence! +wait_ +dark_ +play_map4_2 + +draw_ +show_ +text_the halls of torment... +wait_ +dark_ +play_map4_3 + +draw_ +show_ +text_prepare to face the guardians of hell! +wait_ +dark_ +play_map4_4 + +draw_ +show_ +text_chunky chunder chunks...from hell of course! +wait_ +dark_ +play_map4_5 + +draw_ +show_ +text_nearly there...don't give up now! +wait_ +dark_ +play_map4_6 + +draw_ +show_ +text_stop dragon your feet! +wait_ +dark_ +play_map4_7 + +pict_theend +draw_ +show_ +text_congratulations! you have completed gloom! +wait_ + +done_ + diff --git a/misc/script.bak b/misc/script.bak new file mode 100644 index 0000000..76cd958 --- /dev/null +++ b/misc/script.bak @@ -0,0 +1,176 @@ + +; +;script for gloom game +; + +pict_spacehulk + +tile_1 + +draw_ +show_ +text_simple stuff! watch out for ambushes though... +wait_ +dark_ +play_map1_1 + +draw_ +show_ +text_stay alert! watch out for aggro skinheads! +wait_ +dark_ +play_map1_2 + +draw_ +show_ +text_now things get serious! +wait_ +dark_ +play_map1_3 + +draw_ +show_ +text_beware the wheel of death! +wait_ +dark_ +play_map1_4 + +draw_ +show_ +text_don't let those teleports confuse you! +wait_ +dark_ +play_map1_5 + +draw_ +show_ +text_sidestep your way outta trouble! +wait_ +dark_ +play_map1_6 + +draw_ +show_ +text_invisibility helps! it's there somewhere... +wait_ +dark_ +play_map1_7 + +rest_gothic tomb + +pict_gothic + +tile_2 + +draw_ +show_ +text_raptor madness in the gothic tomb! +wait_ +dark_ +play_map3_1 + +draw_ +show_ +text_don't stop for nothing! +wait_ +dark_ +play_map3_2 + +draw_ +show_ +text_watch your back! others are... +wait_ +dark_ +play_map3_3 + +draw_ +show_ +text_caution advised...if you value your life! +wait_ +dark_ +play_map3_4 + +draw_ +show_ +text_into the raptor pit! +wait_ +dark_ +play_map3_5 + +draw_ +show_ +text_you're on your own this time! +wait_ +dark_ +play_map3_6 + +draw_ +show_ +text_ummmm...shoot...shoot...run...shoot... +wait_ +dark_ +play_map3_7 + +rest_hell + +pict_hell + +tile_3 + +draw_ +show_ +text_welcome to hell! +wait_ +dark_ +play_map4_1 + +draw_ +show_ +text_timing is of the essence! +wait_ +dark_ +play_map4_2 + +draw_ +show_ +text_the halls of torment... +wait_ +dark_ +play_map4_3 + +draw_ +show_ +text_prepare to face the guardians of hell! +wait_ +dark_ +play_map4_4 + +draw_ +show_ +text_chunky chunder chunks...from hell of course! +wait_ +dark_ +play_map4_5 + +draw_ +show_ +text_nearly there...don't give up now! +wait_ +dark_ +play_map4_6 + +draw_ +show_ +text_stop dragon your feet! +wait_ +dark_ +play_map4_7 + +pict_theend +draw_ +show_ +text_congratulations! you have completed gloom! +wait_ + +done_ + diff --git a/misc/script.info b/misc/script.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 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 XmL&9z literal 0 HcmV?d00001 diff --git a/misc/smallfont2.bin b/misc/smallfont2.bin new file mode 100644 index 0000000000000000000000000000000000000000..b571d9f8ae43fcf09a7890d76c4d0eef475d33de GIT binary patch literal 10028 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%0DDO!K(WxKVjR(Noamu=>KC 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 cD;F>e1B|s2n#5rOvB@wbA)Q`LCQL~N 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 literal 0 HcmV?d00001 diff --git a/mock2.iff.info b/mock2.iff.info new file mode 100644 index 0000000000000000000000000000000000000000..8d51007e4f51dd718f8d70105b9ecd6fc836f81e GIT binary patch literal 221 zcmaDXz`)1=1KJE63@i-H42+B-d^#{eRGNhWDE9)0Pc;A~Ko|pnOkrYRvK3$kOUZu# zQT0DS;sS_)HL}&Aa?yf5cwa(PJog?t^Xf@*$n@|dLMw4fB@JB W96$!2o2QR!NMwMkt*4KZF9QJ6%`K4t literal 0 HcmV?d00001 diff --git a/mr b/mr new file mode 100644 index 0000000..97df440 --- /dev/null +++ b/mr @@ -0,0 +1,9 @@ +makechunky rot1 16 +makechunky rot2 16 +makechunky rot3 16 +makechunky rot4 16 +makechunky rot5 16 +makechunky rot6 16 +makechunky rot7 16 +makechunky rot8 16 + diff --git a/mr.bak b/mr.bak new file mode 100644 index 0000000..de8d42a --- /dev/null +++ b/mr.bak @@ -0,0 +1 @@ +makechunky rot1 16 diff --git a/mr.info b/mr.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 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 literal 0 HcmV?d00001 diff --git a/objs/deathhead b/objs/deathhead new file mode 100644 index 0000000000000000000000000000000000000000..52f84615bff06992b50a0b7ca105e0f8e6f46635 GIT binary patch literal 58268 zcmeI5KdUxPa^B}T_jCTiqSqL-fskxRi&z{PEC&uP90`;NluF7BLg3sMjvOl02as^& z$ZTri)F2c%bgHi)1Wt^v-&NKBW_sq#jCT6z)PtGcSXy1Hk&pXISUmVc%H zEr0zVmSy?FW%<#+U6x<|on`s8-&>ZS{N}R!i+{2#|N3QF{>?8f%WwVavi$DfF3azK zUzUIOkCx@%|IM=e$G=*Z|NP&UQTX_dj2j|M|zu z^1uFIS^oDQE&p`+jiB`=Qg_nZ2>f_^`#4q2Q0_EpSsq>eZ;x}d#L!#AeLO~%57~Wt zDfE;(EIB;=-Wf|K2_Dj{C=Dz`6e>p-jo(eb71D+0-S)rgnIi>Iw)Nq zeFz6o>9eFW$Tym0SjFv=Y^{*SAO^VNK6hD_s*_O_7rE~*j}G=JU~R{csU{-S+Ja19b)ps`w)F-r^noxDQgR|_7as!J3R0~<-W&}mUv_6G; zR1gByjdDF<6qKGzl#kE%x3|}a63TeI2G0Rq0cB00t@n?|yTI>GZ~4bf-QYeRFEU4U z0C6V*?{BZ7^};>>rik3aQ58sDFqnM2e|)@S$}PRaX60evGntg?-qjwF`lb{=bST}2 zbv60*y~nw6di;1t9u|mf6S*K1J$R$RH1f5#HL>}ERA|{lRKAmfoQzE}eWh&@i|X&l zsk6O2WQ;HG?}8`NR8~-6zu!s`{Uy~Oa^b=@3$WI*5O8K!DRCIO#}-}4OF{d zE1P56l1Z`c)VB>tBlo2wUqg~ch++~vr?=Ne2R=_*$)Gbeq1oiyp-om{IOC?FPMKr1 zzW3uEV4xd^5y*^A_csPO{UZ)`g z-}cxli}5gX3~cN|N?LL706AT*X!Mswh%RW9bN)HPS%FbXh7%mB)05QDp2CpFT%t9f z^dqu~vV4ZJ{RPHp+$Rw*?v-msU&OjAQg;PPM66BsGbmxZB8`rhF#4>rrEQVxnJak> z9>g!DY+)|{Mg^s8_xB@k0zyLQNHx#hEvG6e+0_X_#SsFv8a6o9Byuq!7$SRzPL*

    Z!+{$Y9ERLg={!vPlB)& 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 Jb6#(MdD^LIc literal 0 HcmV?d00001 diff --git a/objs/dragon b/objs/dragon new file mode 100644 index 0000000000000000000000000000000000000000..262ae79ca1da13849466c1f644f92160a97b8be0 GIT binary patch literal 340456 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 literal 0 HcmV?d00001 diff --git a/objs/dragon2 b/objs/dragon2 new file mode 100644 index 0000000000000000000000000000000000000000..15c116ea6e8e47441aebf0cd8b44c3020eb2f27f GIT binary patch literal 14398 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 TD{ueu^Y{M1KY9DDx8MA~orA<4 literal 0 HcmV?d00001 diff --git a/objs/lizard b/objs/lizard new file mode 100644 index 0000000000000000000000000000000000000000..3a2cfd3dbc29902ffe3bceaa5f8f42bfd338640d GIT binary patch literal 92942 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 literal 0 HcmV?d00001 diff --git a/objs/marine b/objs/marine new file mode 100644 index 0000000000000000000000000000000000000000..6fa0ad4aa806e8dc973f93a58b162a2f38492719 GIT binary patch literal 72964 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 M@u&3P{Ad09A6zy%hyVZp literal 0 HcmV?d00001 diff --git a/objs/phantom b/objs/phantom new file mode 100644 index 0000000000000000000000000000000000000000..6b5203117ca226a2965ee799c8c0904f1b759c91 GIT binary patch literal 100452 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 literal 0 HcmV?d00001 diff --git a/objs/phantom2 b/objs/phantom2 new file mode 100644 index 0000000000000000000000000000000000000000..9823f30ea36364d30c4f822ba6aadfe5a6592ae6 GIT binary patch literal 3180 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≥) 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 LUmpMA@eltGWxQ&I literal 0 HcmV?d00001 diff --git a/objs/terra2 b/objs/terra2 new file mode 100644 index 0000000000000000000000000000000000000000..155d1819236cf0c9fcc83778c26b1eb37eac897d GIT binary patch literal 5588 zcmai&JMzRh5ymx^EbD3W*rg~as;CW!sf`H;2=)S-6Hwd$sNw{~BorBkAcAWUas(n` z0)Ai1V~=P456yUN>-*H*YDuluIOjI^bN4gnzWlp$?i=U)>RkRk*FU)a<6QYQ*WaA$ z|8?$r)P3@}Dm9k=&^l*Er z`=R?TtKq8$${UZ3@<#Pp)#i^GZT6oM;)gmGAM=MIP?0}o%v1c3(S&~}qD>G!VpL3I zTD)&)L`U6hVjkWrEX#af;WgRfzKl}|T3DJqHu*HNTPu&05aOwTgU^TCMIGKFV`nSIDe%S4Mq%i)rX9sacAAeg1r z7Z%BCeR=3D-6;tf!ymYWfY;ZH$JF8e;M0wf!y6Z$;xVIS2BzA$To~rl?P+YqIOgGS zzERE@bYbir+H8qvl4%OTI7A#hc64FPRBmFN$oa%vx7ki_-V(7B-&#?p3_ZQID6b6n z>B44Zd=?x;84>15_~YwmK?)(C20Hg?urw*mr4OU}r$Jj%kny1qIL4Trcg01Voiiy{ zsMYx?ROcq2^c(aWQlehVo|ha6mE(qkGS8k*bPI3Z=-!JMd=f9%Z%RlP-F{&Q*LY#E zLvgMWE;N)RL(}3FT8I%@CR9hn^7ACku0%bFUpy<;T2h7es$&V;15f*dtM>ZaQtn^cT%jw=lF-9L*g?xU(=e2~;^?e0Kjltm|hkGI#{#19qB04C~ zR7!K-j1H8h$~F5&UZu!>0QMlOD0lEk{0x-Xy(MyM8(G;dK+Pyy?HxZWYdag$&^iM+ zqw<2H4`UIs)x>zrB!0xKbyF9uBLj?)q_XrXa5K>QfjQ^|WOK-XhO%?sC-MQ_(TC`x zrrsCJLCL8x`~-!eoy}PJsS<%RHMC6KK%vaLUYBbcAeYc(5~UR0MVs%2hV4|l`;xvV zP*2-;&}pE{Yg@dQK0px*id7-KhUzY*z4|Z~`fknrCUjErw-rme@Ac!3UY~$UD_6kY zdhi5)3mWdPbVCqIYL;(9)TS#VnFc6Dh)3*Wn3i6bsG+3ju@F zjK!O=HaM_I%uH7FSJKJSNWrl*5SG-nhGx1kWG%z1BHdZ`2nmg(Z<5UM7da#q)?U^} z&$A@mNlLNgrWe+g)D%}xIovQbX3g|Nk~&4m!}-?3L!(aBB2BVMio~kR!NMNw%1|Cj zoHLC@j5NoOe3*6jOoFz+G1i_mSNb+wU`>&v9IV=C@6JLaf$fnrMh})|&Y3D|kne_z zf&(68Ax5QW3hupoAf3_ONP(o9tz5?u_GCF+j$jus8RMtiZc4o&$$zA|u*7*{1*PA~ zdMDao5S=fw9GUHOl3?*Qr4I^uEOdFO8?t2B^QH%l{YtY|g@DfLze+jYFlO{nRvopk z54+K?z+O|xF1~O-IB}#MiN{{cJmLWGw1KC}g2{Poe)r}nX&^~jeK~_~B3M&7dBTsX zErzCa(}3R;M|>(|bjYCccGE;&x5ySeB5_5gW;I(X|2T0tlQQxug&Jy!QTS{b`l9BC zcHq45hsF{u^TN>S#-Ak|LL#+HJY47ab80GEt5L@}c3nnIa_JGSXE`eva0s;8h;oi$ zDjFEh2v8eyn*%f^aap|#qZ>U$k4Y57uw2{dTnY0Wh?P1{i@0wyC2=OjB+kJ5<{~l7 zmr}?eVP2~lt})&_IglIXduobSYrCLd54tZ(9POTcvb)QHlvF7%f5&-qr^8oDoK>e> zTKyO~r{;o59m%xvVqyb1av;Mc`LwJ#7)V=*2yQ~<>?U3;5w|?tc(lt($l=+K)A%R@ zUn~Q+q*xUy^Tg}S$Z?3?->4lJ(v{Ord}id)n@JZ|Seh@X1G7AvW5P_k`9`a0Ruf*5 k+qVC;f7gGOzvREBKP|so{t$mV|7QMn{?+_T|F!?>|AT;tbpQYW literal 0 HcmV?d00001 diff --git a/objs/tokens b/objs/tokens new file mode 100644 index 0000000000000000000000000000000000000000..335a7eaca0bcc431dc36c5e0c2e4c5f4d978d5ad GIT binary patch literal 3370 zcmds2v5wp}5FL@!N^43y9d_?_C2F;W4Yzjb(xqDi_8+)R5x{VlGH{S4zmP6S{v_XE zq)vboE)BS{-*8Au+OvP)=5F_(_hyE}nWs4-+E9-lYW^ppM?~rsk@=aZ{E4XgMD*ZC zYUq}ZbN~r^eu3IYlQ-M!|2%R;V|e?@ZJ7~2#(h2q3`>M z2bBCYdN=gb5jeZ=cY99do%Qa}1MLqCi!;L(-aUw6^!`Si1s-E=>-RgHCrPY}m3WUF z0S&qNHsff4u3+yi4B!%WZbI$10bO`USei2D_P1;>fu`Z{0~+g;M7008Xt! zHTm*@Q>) zbzl&{?gAfm-$epAyO)#EN3A>jf{+scpU>sd95E@V8mTzbh%{#y2*4l^5Kg#*ci+ML z{>1m-azYy2h5TLLh5Pxro={HTomz(u`dt4J)%P94j4$qs>tgT%qjMZ^&0XX67#zxT z;2EHw+zRPuI5amJtzae$CikBsLX$4%g)_cAUmS8*4<*#{AnU~#qYMsDX1Fr!A{5Ya z70H~y4t`)}b5zxJ?JDGHml3XVRb5rJ)_R?%uIep5z?a9ihPJS(R%%raaJG6|6oob* zlj(pH<4P-Ji>3r8_!SA`zY2TxD7#lY25o>UHN=4UXD}Km+13=`>4v?=6qh_RPfWF8IRphQ5=E*=zJAG95QGSCg9kbDFUbH0hi}zYazHy70MJO zX)Lrj$Dn`lHnusJOvG%3p9xNcj~ufk;N4(BUlKSRc$?}%MCudg8RHR_3O~e2hJvGi z+mJ6Phe&dKxA@0|H);_g6y8jW0J;nT-pD4*a|r^;%W2Et1S_6 z^W7z)3NMMQ!o|*;t6~+dc3z_Fy;9z1I;+Q<7n>jI-`q#{r+eSLsh@9%-q8E{Z})FQ j>es6eSAR5bw=XwOO-BzmzpE$enR&hWW&2nA&()W&(q@44 literal 0 HcmV?d00001 diff --git a/objs/troll b/objs/troll new file mode 100644 index 0000000000000000000000000000000000000000..dadf9ad084e4bd738983d3bd6ece7686b5ea6273 GIT binary patch literal 148320 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 F{s&QCrIY{w literal 0 HcmV?d00001 diff --git a/objs/troll2 b/objs/troll2 new file mode 100644 index 0000000000000000000000000000000000000000..cf3e74e964e9ce1581766893217769792af13cb5 GIT binary patch literal 6488 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 literal 0 HcmV?d00001 diff --git a/p1.iff b/p1.iff new file mode 100644 index 0000000000000000000000000000000000000000..e048b7109d85ea856aa6dec52cf425c2051d3cbc GIT binary patch literal 58748 zcmY(L30zcF|Np;t?l5@~<}w#iu~Na7CwpAxx`dd<41&(U%-r+;+@as^|Np;QRQ&Qi=e*B% zJKuALsWTq9m+1FpciuDU-bwdPpF%{vxPkODekC(;G7-laWRCLgyKe@*G=1R1cRX;r zZPt>1EL*nVIosnaZFvt)nKo#tEpN#(+mr>ac}tc(yWqKHw)`c9PcB%x^dE)K&0A!< zbL!MFBeF)^Y8yN%Yed%A5#z@Wp~?5=C{@J!0ngLHTzL7(L}aL%+g4qo15I`u_P-4Ec}5-;z6TRTAAbd&Hgh-Z}Q} zxza6$o5mEc964ytn1@&9^;q+_o)0ZbT>KC}{oaBldE*{jG&F1ait$g*DST+`{c|6= zBX?Eh-R8wl+Lk{_RTBn|no_y+?pa#~)02~*tGsXY(iME+BM(1a(r?Vn3irsQJD1FV zYT@jx$!~3X)bg%l*h9s0Hx=|BH}mz16){rD(0@&~N>9#O`q1-Fmdv^J$xZh>x2|}_ zLlu=m?Ucb&7QFG^qf=ZDyts97!awH>-SJTJ)AQG@smvKS^RxGt44qlFw&tP77P;2G z{_L!^@AaJgkB@39V_tHud9HZf!*8v8;l1%il}p~L8nJEB?7NCSu6oIN-xJ^LnLF(% zx2tOD>V|ne56&C**0$JZ=l|=oWwYMcI-zbw-_PIRcD&Z-rDxyxa{b7S@6LI;Y}>0Z zmF`Z30vFIu+$>wg*kyELtQa!tVzWvyjl_lH%b^oe&{`Ksh4d3iF{IqfSnU|8EtT`1tJiG1cEFAG+&*K6=;TV~dV`viYTtPkO(0T|P8St^Dwl?R7gn zAOBRn=jgZZTsULA`2ObeXNIXiKJw<5r@gyg-}B9(k9Pf1d+L*OKfC_Z@a9)X5B~PS z!L~E^p7?gpFK4Q{F2}YWeB-O#zlT~zb(|{v{#f1dJwKj5Thryg+k15XuA?n&7v2h8 zTXOPD!?9x*51#Sn!P^t?rwaY`54=~Z&H63$5$wDWc<6y;II=j%q*Ab*SlL^ky3|l@cWuHjo5O?umwvmP-*PtPX#=ttNCv>tg(?306wzqNOso7E08+JYJ}oh#4EQLBTF3Lb<+?!8OagQP(dS0 zqf929uL*e~WMMEH0#}EB)+Xb)aUqSF6E9q8&N{`k86n0Ww`5TQqtV1EJ($ON(<|v) zu+$skT^}hw6Sqr}ZrBE}jRoMr-XCm_UX2e9{{$-rd0 zMgq*lL6&kJJklNH;E9{wE%UGKeu^jEJnR9+FwY_YxvB%v06FT!VcYChMc{*>i7KCtcqrK568Ya z2SugxnM{HLA0f*lFGJCbs@cW4l2idQ#CDwX6Ib@GM&?vlJjC`&;Bi^!QPs+Vz3D4P z_vHRBj~j>|N%}f?h+1+(%voe%2jY(?3HxI%wri|sSE4iHT8e0}vm1U8(kwDrAUdtW zMibjnr`*?;i{L*)+3m)D{QcqEV73@VP@>w zUsX*OEsoh}pgQq_xnIKmX$&Ti6xX7jOLSb5dBrx2Ca#uLO0Zj)gL8D)EbB!OA*|6VFtu^|a@0MlC~m2=0)eBDUM4*vEZizC8tp&HqCVRh`$QJm`Jem?pKg9>!w@fH zA(ox-f~bXHD&ad6vRs?tb5T}D-(lHCR2OG_0<6te@3$Y4w zhrKl`bvJ?*pnRATPCeJpSjHW0RH-2Ryh1%#A)uH$$Z8`^&sa$+uabL}%pHKp-0+_| zlWH&#;-X9t-nnzStrTF16SG9NmH%&)2?yWN!bGf-3|T~dlp1CmQNw-`t_~Y<;jU%H z4AFM@61)0hZi2?R>pGH;K@)K}F3CZ|g0Pv4QDNAC5PlJsl0mHzA`E13IjBz~V_sz( z`)OQI95(;{mxoATa;#@=T(h?=#Ejum2FK{hnFW&5=r9<#l!PjUb%H9(2-@*N54G|BRv=o=SDY04d-S6%*_r2mx@zWT; z8sSqL*~Gzl97MJx818mGsz8(MFwON8S8}^w(R4epR;d{@slP#XL#T4-MmHsd7#3=p z8)b6sIt-;YUsSmZSiH@ODrx9fDuv0+ZH@9MMf~DaH_SxzVCz~@ZTawFM`#t_wkF%w(ok<~PXi&*=FrJ#s4icr8iN>UA9*xDe z#k+}mkV0~Z3>ZJ%-p=gSF|4E3rHx-O>fj~}`1@xKy9P1MqlXM*aOp-AEr&*`P1Xcg z+>A}}f;1=u9M|HTglRo^2gz3CQ%eoTOB~zI`l-SaQQFJ}ub#8(Ij21?xQp^0;SNG7 ze(;0PmC&j4;Fq8{AmPg<@OW^hpujco1!yuS@9`5E!X&KMRR z4-j4k5PV-^{T?>ha+n3pUpwu2^A<)}{I&SKx%I2(NQf!nGw_=8y6vGF>XA)CU{W&e;8id=FuC`CnZ(Ed#)+NC zq_<}MU;FqU9DNQjR%AIZ`DvMInRgzB8e-SUW1r-BY$fcyb!!b{?JB{}%+wcUSQSy< z_x=DX;T)&L$cgegkVu;AgkxGM!fx)fh6Oiw6vg&yd;Sby1U5A8EB`gz33=b18dX5} zN;ts0Pg!}JurM`Mkj}&RyU1Tr_ePQlzHgo46oWAN#CGOY5hX3GLkM1Q7U(Rr@`rM4 z8%;B1N-CYN#9+@88Kj7FM_HUnngABhm5fxlQTkqAwNe5_U8f)l!=4C_*&xF}8iUM` z?57TjdP(_kyUy-6U(24n_1m$qMu}Bd)W-d!b!+SO--p{U zrouc^ZsSi>1?7t2~@X> z)M6I)DzfiC13zH1ze~cV^yHvSh|w?#pAX}Rt5BG~WJT`q4f~ftfhn-z<0BL2d!V)J z4nuHcP=*Ugp`%7FyRp2|(1YzL#9wJ#Fy+Y9`=gq^jR+?KHcEtZ2a71XksaoKSvmLb z;1O)CKli4b@5r`c8Z5~9q06f~3I!GL=znQCc$l6GBcLYhj>5I)QwS;7u8W9Z!Bt}f z`W$Yeng4&&5WqoZQVZAC;3p}Ve7#oRfZzDJ?EIwDc9;fpaLCjy1m{>wlZCBCl=}wD zOV-q6H^~_Tu$4Mycp(8ozYBFfzpKPv{m}llrA%YqjZe1xF%Ra_t;oB#8pCy#sE?Di zs;XQlXFJ3&OX7nmmHizs=cp!Iu@kl*3j5RPsVc0XWbA#2DLp%V^>sVt#~ru1XaW?T znOIE%>kM}gWn*zX?{i2x(89fT2gm98VLVKjOgy5ZAnCRvBB{h|M9e1-T;!n60X0Wh zPp`U1q13b}%zKSWE(VF^q_wsEs+ZXz0iKa`+>YOB4ys{coK7gkOnkYZp9Tc~r79oO z4hSkI^DYN0g7YvZ0x9)j5f-Ua-wkGkC-$k+{5pcJiVNr3rPjZcy~o3Ll_xs~ z&EPqXwH06uokCcY=UcHVUD@L_vWXHs5l>Mr4H(2O8p7jW_2^C#YOD9iqkf;LP@acH zI!3#rQp*sxZ8B^!AcLBq6>rG}SqBzqgMh=}z~2d8ork4LLX}*OiBo_Xyf*M4^g(4*H2Vk%eeSXx2j>%wJb_}k@-f;vLkuq zn>;elB@7r6G`rj@?ul+yKgq+@sP$*tX+(__ChfMDMIFaw^_cyfl#@#I3k(%Ny%!~UUAj1N>Y$v|i?1!rGU9h4II zs?ozV|4-E^Bux2)9Q1~rby=wv9*u0O6g6?OSaVp^c4L}JKmRss`6GF6b}KWEybLbo zU8Q$89F=!`e2%a41{Y$*;IdPmp4rl^E7WwezT$|s$S#jNxk9Dfk>A%qD)Pm-M<;mB zuADt3ZVM)mb0?%Q;irja-+shE+@*t2EksJm+4`M6rQxE+e*gT;x4Ubb-3LSb>H`bnofL zl7?#E7sb+rztEFGlnTlQp82ESmC3V4zbsa*tG0^kxBvN|-pq&?Bu|G)et8?p6R6V9 zJrU|B)528yb{pM&wOsO|!rGWBQsR(^V~P0IQ~_%pO^G=+DB|7g?EGH(H{FY`==l^9g&B9omR|BJ+llOjk2K*Eo| zFdz$Kt92Aw6h-ha&p|Nl*k&o;MTVO7HGdYe2u3m$N(bYQ(pn4*__`~GNL;n}P=-ni zFBcS_VXU)imz@$GeW#f25b+Hp=)t64afb0=N?16y(1%*u8|k?3DZBC39pSZXKlB&^ zA%(0M?&r-`?%NSJ$ic26N@^@g@JY(>oc3bM6TMo*Oj+nQ#r>y3r3FV+c|zJ7WYX^;JjMb@d5&cxh!_;|wQI;}!N|HF)a~eSw79u>Ut?4f-e9d$J zLj@M1Qei=;MWs8v_7Em^(b6kS3DWan=Y}X33wmp;-^oO)i@#cNVTN~g0aB3G_=IMd zDCh7sg}SCQ0T{YI;7OvRb30@=I~~C03(cAwFNF3wtHmm9Z+|3BP|+&!GPfNj{bHaF6ZSsN9XBpZrK9Khh>9Awe0!6fd%vMo^{ z9Voz<9q~2brcUCf>FGmHI=TyJz+q{k%&`$4J5eF~9hKsNeN7b_!y;0&#~KHbk>4^Q z3m&-B?|{SfP-vx(%H4}yn~JCYfl%mbQ+x%}bo6Ftog^D;x&#_2nnbhh$8=2{&}4N`;uXgJTTw)o z@SD`P?{?tm8CI7(%hs_!VIcU2X)09dQYbKz{~07h*B8jICYxaZ863F?46)dA5l5X~ zNDaVa@mzw@l;Ny>WOXZXNWnh8j%0Ea3ECvG6>LN>5dkkH)XJPcwzSE|s+z<8FLtg7YaA1-%H_x!XY zhY}~>n9}C)LFkI)-MejtocNcfXHRzzc;qT)ZmYZ|Tbchs=;|4Pk^r?D!+Vzr`z)zYi_;V6u5)A^_!9g&GlEArsj$8{v+9D^@d;5Rv7 zg&AR;<3J=)$^nr&_>C%|qGJJ=i53kfoUA~`j&e;#xn_~!OMsI26SK2Vg3cu3s@e{^ zW?)Y=;nWS~PNRXFJKbu;cc==2iJ9vwbym}aw!8IRD{uaddWO1kx9;?zC!tK#tt8Id z1&mLeL5rh{?J>}81e$y&k z@+vk(=P{F>g-?cM%ewn&aQxQ7kIa=`Vj=wFLp^CwqC{pos>v|nFs>YQB1x%FJR%!y zlVt>jV5*Jm2shN@Q=OUw*V2&~Rp~78a1>n!JP+B10}GuAC)?muf=&p>dP6Se>SYp> zgC&OEmc|Ru74f)W3R8%^j!qUQrlNgnnPi2n^mY*6+>B%2O_3jbx|1ot2WbM+3RRR{ zyni1$GOR~e5C>yR=;qad8kj&(4Qa3cL+1Qqs@|}-tcng+>=X>Lv3If~RSHhfcL7~l zS|vq}t9NMD3swG2$Tx63r{g*a&3@TbIjJ$kgyQ`Sd9AS%Z5n`x3fK^LnpNUf9&New4b*5b8$K8!I$KnK{5W45B1*i7){C$^nP-p!HOCdkp&az|6RLEX`1dBSN9gKqg=K( zFBkxkwoVmR3soamN7ChZF<9dZAg08I4{hEe(WK^XO}Wv8Y7n z4P~)?o!Kk)n;XQo+UTq#&T*E6@BFe*RsBwwnJ@g(B9$|(UDKI#>(Ng|+?{KQmg?P* zB);&Hj5+!hIWLf{(&{J^nPIgt-@#NY6#&~Iy-EVIR;QkfVIwLm<2L*%>9*q1xdg!_ z8`A7Lf=zC^< zoz2oDU|3Eu?^{XTuYH_p8_yO8=7bFgA78As_meBG6|o(9Mp;>m3H zBhBfCQX>y$XT!M#8m+O1&PLbla`gOFF^&k5@N1(NRDN@wA6LWJDxFGI)KXjy|6nvF z;7el~VJUoUsqY9prbw}I>{;C2M5$DHu<#f?eOeSyxlyW9VYuBhc>EN#4sby?H0ncT zF8n48EJZpN3kwb_F!$K|MuvP6!mShus#vzfI)5uj3xpRO3(oRi2db_cmjaJ2F*fB`b;bs}zNRWQ zW;i9EbD4EEdU^pHZOwwv$cS&nXOvzOY0}w9s;Ot_qA|`*LZhz=-KEZXo1R_IBo9t< z5^IRUQ8}D_vt1RyYjticxx${A7mGtR1}3HG6itZSt9|BIpN02EjpZTH6B&R z!=ub25hkP{G7;iD&~TPY zpvmfo0otYo(6rPv9M%S18+iuNNOvMxUyc^oBh`%awKj%Uw1uJSnzq8<)0NPagW;?+ z-hts7*BhphXsgX~m_@%{oM~vqD^Rorm(MnXg`JFoS#M4~sn+9YAvCt?VA^){{Je@u z@K1fTvV4rjUa?dU0wM>*+#%Pz{oWFxF&dBG8*sKWXDlAaD}b*O22Tt_@Qi80s~6T&}nX)@AX z_WfoO{OF~|Y7eZ|NbHF7p(%-m7mMWUiR8+vg43SyuQu$yb1wNVyFCq&PHC%l$4IREuEcIWaQZ~m%i>3y~;W-I1XY(J|AvM&8xr7 z_SA$~D{NFBt{xYhj5S#*O*q>1j@rx%-%eD_M1^Ex6`_k%(xivpkv>1tj&3i;uIyYA zP!j*8VUHWDA~D!)FbxWlw1_3@3og-T(8$yd@qj7jsubDpkHZXTb+Ix%?L2=AgfI>c z-JmiNmSi&alu2mET4J?9t4nCy#lC^wm?oNHA!J1sclw(6{fgU%&lvtudkBi8)kRd4 zcHVLrQ_sfUvSaBJMv!^&SVcz?H5X;Iq(F_Y^YrCmW;<(8Ar(pIKU4#i5aN%QG(ykd zZ@;y_8D@d^y2m=G0!bu2XRrvp<4f#_F-_lk6vUVmdBDv-1r#dI0usXoZDQ?!X zb8wK;4++u9?$r&2azUgDE)*qVQM(r_=@am>x}aSpbBW~l1o3@6klM4yx$d`z=?#c+ zXxT)WYQ6^|6vac z&4{}w2kZ`gw7u!*MdYH6Mb;Vv%U81Pib3Hke)FSSXkm&BA+}eDQ76=?VB)(m1EY=m zDPXT@^oAO-Bow%^0&8GhZziua!_aMJ;yneM7 z>D5gI$y8V2ap_b_K*a(oKHW|PfA?~w=oCD>Ci+nqu9oey2OwyKSWC7&-?{=qc(8zQ z)lH>CzgXZ77>Gad1!hs4Jy9N6X#vy#!+ransL}hDM#O8D#EFqG|HuV6a`waxPp$BC zer)IjeJo#f36Jvztgpm=5?+x++4i~xm6msz-yCPDX9r0aI#Bhvf1)2J9lkNQ079D@ zT61d}eVVU(sI@Yf_!KlhbS63f)|s?4v?@J`<_9f-4u1|!(3x26c<2Kr8(=6jTsM?h zRLJ^dJ$@ZY5s(z(eMu8eHC&LQOO^BqMD`!o>}`q>4JLchAZX7nDsFPM?}|1{d4+7G z6X$m5K(HJ#20zuqKvB_Z8i_l*GdLxN?aUh`qUA>H?GdB+=NDsxsLo>}Ma3tMK$T|0 z+(oz@i^%f?GE79t`!7o{4Wr3LQkgq`nzj;0Bfg%w^(nCvjUTCfCt=3-w+D1PnO5;_ zX~9{>mSU4Jn5=7Jb$&!a8F!660y>m$EB4AMn5ZT&Z#ahvqK0B;x}n7QbweS$ZWH?V zd!t0qJRu8+fGdSzB3NrQPqMIOwFQ4y+}cYl9SP0K%n3UJkMAOf0u%~o?FQmsqXUsS z;!=fc)w5*x-HG|%p)>x23jwy*t zMu(O-M=Tky->+lY<}9Ti$Ku$9CwbO7kv$j15~}f?DoQT3-w4NFmtZH7bLHy_REe80 z{WqW}!Vam{gK~1INuHB(eK2JPu{eLr60c%F{z_K`u*fwV zp38>iA1{p#_Er>2y-ZOoDXVlW;hHz9`^XgUlld#H6R9+c1xFH`i~Uh5DLR!{Z?^_q zC4!28?woEah8CSlti3F{V7=>yu9@_2i)Q9_4O3F~kHf8nk5!K^uHO0Lqm+G%RHh1prlwam{cdUinn88<$3PiVnVKO^bsLdq9XR?KZL8RWRo z4nRp-bGU1^Rf3__M2AYX!d9e49MQU9HT(rd?uG&k_!kG^=xV#6sDEy3)X3TrnLNA%E~&av~+u<-Xu?tW9*PqhuaE09fy7lGr#rU$i=bVGWJd_mrvYf zOg*Ps7x}K|BDu$*1HHPei8pj4evXyT*#E`*xi>J7U%!!u&v4|3o%^2(}v@{s|6+JyPi42yNB1E*(>}r#Pd#pZ)`B>!VbtE{bG1O)LE@qYO zlm!KK-3pMH46u+u)Jl*;K*3-SVgmSrJ^@clt5*oim6c>0-lc2bOacF_ONu$2Mh1>g zljW$5BqZ4!h*qmk!f&J_-*?h|srJBy6;0+*yQI0e&_`#p)qCmZgN>(WxoutODFkY2 zz7Mo1f)Wj2MhAVQTZt!>)XzD1%C!7hazYn}!Bk?h5KL-G@4Y>6e5a>(6bTw_>HMCo z0iP7KU)PbG82j(iRFMTPq+z_Ev|G0lc9FR9u#RMG6v^0Kaw&~SxuE5nN0}X^Q6!@7 zI#DFwduXt(K#D536h)Hp7ZL{vC`Ho4Sgjz7(FxRR^Y0GJ#I0@G--%ELGx-P&l!A+D zy3b}|pAS+fOGh5hy$dT`xe*eP+J!4u*I0}P{lhxn zjVjuy+`dgUs;JLo1V9>?1u^MBOuEBru*6KUZRymLv7hWeR$WPc*EdXLpEs~HeNs|W z%>FHW#NV~YJ6W3#q01~Z3{);ykGk{$Cqy+}H4-8KaYpjwN)S40k2Ec`#?QBc*8^s{ zuISz~F$7cLf;Ay#RdOjy*MYS2K+xX$zhLm(Q@0hB(tWvDv7mH=sbl;Yc7%^xf6^Z| zL47k`4mIk>;j zu%4YDV%?8vs${03BhoCn|0s79i=zNnl+pG8vtrI!7M4vbTx2`u>Bf=+d(p9|dS6#y zRaMMuZ~%)H)sQB9%y8%ng?$<8h{FmIV2S~7j?O%2aB-GuhqDVA8kG=yncEWX4B z;F>Fsu~c_=0?Oi8HjZ^x;zTdm@S-%sZX9)5wX|-y5+U4dLW0p3oO`!zlus0f6JDkqmG;&!IQy*5R;FgJy_l z@bo>Mh1z`*3;*7DSWbNK(|4MBvwi(Ewkf|G&TKA%>&CQ!WXJ_ak5<#X><;pIMvB2z zZ=Rd_^k++K(c41JP!e{Nd)L-yG$t``S54!x-4+|+rWc7alAHV&^UO3ECxTVX*R z_2h7jKssyX$hDohbPLiU^#-Ic2sI&dwP{Sw7i4{1+ciT9+f9^Pdg09E8;;)h ze<8Nt??qFQHB3YpM#yn-krqJeNk->m65bX4dibur^hNHlSs}Lj=VjTB2`*ikS2Kv6 zFVaG>w!s}nd6d{+3+}Zml5Zi8NQvK)+<#1kYt0G^&&RH%;DUv-Oy2<6eYYOv1q^vAt0*j91iB!8sO` z1h6cMVHc+;$8&E%82a|-Wdjd{9266egw6b*ltF?TVae_|7Wx=3!p%0^J|Z4Y3c)C` zOn?&c*9wjpy07^qrj@`5CnC*ehM2|oXo}RCZ-2xr?lLi!CSE$E&|>?p8KQ3=6|gH0 zc3V`F^+Rk(+Hr1hkspL*;e+qbaW#Q2MW8?0qvr={ac5Ne<1#Oyt^uFdJ z_c3++4e!po89Qpt-5rw=ESpyAuul42rqp4)O&7~2Id&Yh4bqxcaHuIPN=-*^IirK@ z63e}(hjEyuJ07>a8`fEFq#yP06~bNXC6cEhzzZRn(ibuHe`w*X*$d}a3Am(PdYzaq zF*O;T;rF#3F^8 zigrv|KG`P*_Y|_zY+%IUsl`(lyaG1&?aVXVN_Q0aix|6bYw1hHE2%2u7ffilOvZ~2 zK=@S)(j}v5uS=A6NPZaec<;(nSr&t}`i98Z;R1H;?*yd3YUXs-ZsV)e<5eSlSC}>@ zCAeVy`h9;czRk^zS)x+B(a|kNR@EDJi4_@6UpZrIN~Efebq?oqS;d9yJ^R3*k=0Vn zU~VBy1uKxw)u>qhJ-jT2R*+9NJ3$2*XJEGr`gO|!D;d9ll~wn7#1b;_YjsaO_RK(0+uZZV|^=GZMlxW6bh zGQYs&BYyE8ev|2x!#EyKlI)BZ^>tYu)%|88 zm9Dk4H#Xi8?!~Hg!@AZDi*-tHEuYPr zYGLi_&XV5mW35j;UH4&@JqvImqHpxP;Uj@8O5OTUPZ zE6V28NoD2j)0UCIE~hnqQm4W-{87B`sMMx$3+&hPzVRHjZwY2)m93slVo!$->#~ik zPP>*Z#wnvEftA17;Mmy`W2;jOlo{7o*qPQ-(qW}|5%ePZ+hz^X3s;#U&%$DaVpDrm z1@(_uHAPu<>5WjXkuh{b1QrA>fwfn#U_x}8HBZE8lGy6A%s9F>_4lKgn{LXvCOICgc9Cdde(*6B`&t?(P(bZ7)dC=56RjKdA9_D5|Q3qLpv5PLgCS;l&x&wPvfgPu1}ghj3qGvV_t7NW%l6<$v7wOAc2WBfY(8aeMmernJa~0K3ZRd#vs6^z$BGHjZly zv!lm9EK!K2Q`f?D?9&5*5&~L>a*qQsM!tUJY}C3d&29Ypzw*nRxV6O z4-~UytZUE3cYpEU8(v>DsGY9FeII?*DF<4LSnYpeXmyj+UK3s zOQtIKdptKWEv^ODB8KmsYS)}RmF;0aNaoK5&Ku|3?R)&W`#uX$mgDmkw0O$R3dGnk zd>BGxOsZh@6lmx*HP$uN^-4^uX&2gl@j*}cKni>xpGwdWge;OyO8y&HUL{9dd|gF^ zgn2juO-X6eQK54b15}EY$7vBK9X+E78QF}Lw`75qABSqr9v%l;;a;!r@Qr_1x|AaM zM5R~uoBl`Nm)5>;l<@YEWM0pQM1ydT;$C+&yID3I+8tq+UfNr#j!naXDoU$U!Zk+N zaO>D&7Gcfo;m?P#kx92$#7hysp)EL@sAY65Wu`6di|22XwQ&fdVS0Gn%QR8`zVntU zrra!Z^S&A{X$ePRSZT}O6F$&f+>xwP;r>62T;~{cr6u`|*^j5EE_c(Gm@2t=&1ld{ zD|(M8qY7^iD#HD5{eF6ml9kf@d6q4lYH$!4H#7G57#PjPs`EN6s}%0XB69v@hfGDX zH9QE3UPusSZq1ll;z$Uh&+NsS#%4kX5f2iP0w7>0k+eLtB{EqXV_t3sLw&L**!%NK zDNot2v|HLm(=-}#;fq{+a;pY?D3k7pHq8O+;;*#ze&dIS8gDD&s)Q}c`)?Z3{xcpE zYAWg4V5MH}IIUSJ?dfEPPse;P-qG$3ifgBd&y@9?59>M*=ci2L<&tWfn#anK`-1fJ zqW^50K9bveO?q8Ig3g(OPjcRbK{JhNN%b-aUh2iL#$Lvs^u zaPrsz(#3?c=&V>6+gX2p@9N)^W=}boHbhP^(=&A!oJ0>tG&iSG3=8)Q=)ltK=aJ~( zF|S@E2k)0UY-uvOnFlxrww%*HT*~)FRfbh_=+1~RFO$Wt&BM23>Sm?G%G!gk#tc1i zi~B!wCkpE7IMdfg;bPj3xx%%e6%$I;VPOPEo|cr^tNj6d(n!5?!SPev)Ph5QI837U z11Zq*aFZ+F;YP1lfLG;m#W&M$42_>f2I-p|e@AP6FPlNRM|oK8lXZ&wbJtJU`LfQo z7#qaWLJHXd%UiZXt!gs#!}I>Z_NC_E8^I6qR$Lchi&*fnPe#KIWqG)_x?Q44b^10J6? zz9Zom!C?F&rfD5%@nxm_PeIIzccE*++{S)H5pMZIA1!;Q^2UVCw-5Z#vUh)+h@jY9 z8&i#Ud@FQq(iB^IZiHzqk0<2MSoM^_z?1($yIjPdcK1HV$yj3?YZ;)}Jbn>&AN&3! z2PLie&BXouAwGfAY2)YAXp=N2We%udEevJ&+zafru(KDL+=l5}xQ3I7J)X%?%w_QCJ+NYz7X*qduf+#2-$_~6}-*kM9m4#nN|RM7jHCi4Xh+M&Bn)k zQ&#*-I1-*m8!zLMs%EKajX#SrFIVHrlgUQ8EU)g~^Y_v8w?6%HO3xX=DVF!`*1y+t zlRf?zkm%j0Yb!9yFPGN&!bMd0>f{d{#xI!SchaIq$(!zI)5V$>v(EXljfEPSGP529e8h&{6Y?wH#o-PdYE_9?atkt zfdH(Ip#-f!rY+O#tFy>q8(|0KEpJj{$KMCDQ))AWjU7W$2& z20!3`iV9_Pk@8eQ)*nFNWfE+WfXa?us=GxFCyj;)pSz+B$labENQ)EW*-wb^^eUas!pn00Bv>{%0HfSd> zT&86tw8^58=1KM8cGN%bE!fyXrt3#`Z73U`;V7L>=LD?r`j3*&vc!egdrXmx)#i^k z-$k>HU6JwLAEj_Io%@Pa2QfGGHKc0kD%mq?_St@w>7l!v52o^W8;sM2%{^d4>HPCn zvp%Rn^3i$(myELgbNaigvWOH?#uw$& zra$b|CoR3qiR>u((SI)+WVKK_Q(p`xXa#I zF*D~OmSv8LYRi<3#l>gwF$vqa`6)5V&=PC&_M5y~{D3`%!D=GJa%B&Dr3I~Li75qx ziL3*v2P-2gGgJX{YqNb_#^g2(dIe(dvGazsH)=kpE!TPLKW*F(ii2h< z8=!43d01HrfUPZeJEzGs*b!T&#I|eH(&FaM6HhZ`%nfI22bxw2F8rk$z1N(~k*(L- zRKv6^QA@<~2HP+-DhUvJulQp;nVk3rm8;U{1fI+(VNSSCWI-CoT09%8celyhGh=Lb zE6wJoZ}Sh9N#I{PU$w&qG1xS!k)yOBZ+qDtbKL#fAAjhR$vvjKdW=rZq8-0(v5I-8 zFm-fBplxJj_4tijIDGbbkdpfmccSDU?#!ktc4ykF^PDO!ATpUOvI=+nilC>adcT`E z$Ah+h+}O(EHH8=LEbKQ7@VK7GpexEmh7Y>atNUlI;xh0P1{U}ILq4^+qnq&F5V-(0Wl=FH1wUQIX2+z`OZ6q@bd3up z|F-;IHSd{U?;G&K@(nrTv&Jge(mwsR-S3B3d07-#Ox@8z^)I%mb%7e!ccxH%wy^2z zRGQl}=6n9c%b3*FsJ8yc>ROV|48?{%^M?JgvXC^fv-ti?%zZX})Y1F{5L>!I>}pU9 z;{rkPWU-8ggjVOLF>J#`#e&4i1}7=W)e|x3{1alAmw72;%*lzFwfH$!O4glgR^yXV8u4fkU=^tg$ zW2;h^CAIv4`7DZR%Q&cP9(j8j^7N1=cRt3m?IlIe%xPrrYnGF*Ik1?_2jy`ZuY8ot z!k(-qlFQuvk9=Yomse6$0OQi%8az*Zql1pq?q>5|s9Jd7z@Upn3)FssI7Zth4|8YH z92A(9P0zw>RQ&$*A7wsYI|!`s%tbG~3<-KsK~|ih6uZ(54cjHyL`)1n*aFaQ ziL`6OXlYE@n%9PmdhVh3PF&-6^--yJEPt(sd6yGD1OwyQ;pBLC#_67|@|ySNd~f%) z{H_{fZ#Nr$O%@JhXEj(UQ;tGQYfn()f7jZGd;HMr|BCy=<1haA*+Ash_vpT5E*{XB zoEqkp0ivYk^6ETpjbWbSQE|(LYejJ|uoF*{Bd0P4gG%+A!vgzdgCbq9;pZsOTlc*5 z#53=lohUE14K^IdM}|x^1%oP-iu;3D6eVgztF6$sKo;u0LG;v~asgp{wq5LZ8LETv#MxE_aEQRlL*Z z)XcfOaK`^x;(wnvxhU=<;^bB5H+;6CS^i6#ES{^-EcM5Rl3~>=x4LtmefTL$?QE}h zZ}GebenZ$87xY=@dvfsm;>}lto05IDie2u2EjrpXn5O(%gcnHn)-`(?kC}E z2lv^Bl%HWU$rO)u#56w^?;7Gwy;aYn*iDYEydeEe7K+>oWdT_}m{)3kHLeR-Cyo@43Eu@fw;2 zWWE6X``w%$eO*RF``dRubn>g(WyEhwCHbcL#%+BMIR4T`!ufxP&sgjT3fE)1dT;yc zrB#;Aa{_F_-tvZbK1m0%&@>J&?^E7G-4<_v*ueO*JKqa*6`9{ut5~>Hp4gxc(2-p# zW3j%lQqSr~H#-f+`R27>eZSw^?w{v2!JTfBxpR5O zXTCwvURy*}P2>?O6CF`x#C-Zq#h(|@I_>v#Fx{AFaEBQUFhO7N2nWStqj5%pMz zk`JN=wa73r3sd4L7jA|*QL2P9T|JA0|87f+H_;Ab(zC-C6g|%ODEHH-=C<127yMRz z>exs&(LAQ`THosjjqwF3Bh#j@f7?Yuz)W{ps++Ff)Moo1Z3&@KC38z2&KxS2kHs8bu`cS^xWzkJ0=7x{J5-YNKGiLs)^!u~U8UgDVj zoX*R)1HFOVmXgpH6N3tVLXhFgm%CD)-xqw|Wu+&Q9bR?1?j=^tOcArhbpy8cLl`tt z><4+7p%?ZO-|-aPeL>DGtF_p=dD&SO6|)Zy9fXPb&kr^}o&}o{(DWb}Qldg3cqKe? zE}DtGxP$(D8T%3CWyHaU^f}?k#57ZI2CFqH>&!;u<=)H^zuMVz-2gsFv28_9ybtfi z)B_5Ba)}`St+Spzz1d8|Vv^#6Ra*vAOtP7t63iEm^&1bYQEm7<$OL~}Fk&{E*Yq5l zYO%l3vtsboLbfrKIxpukR+PCXps>2;z`8wwYoiunfpu27p-*G&XfC!Tg{cYE$@h&r z?82bzFstuObQK0}c%G`n!;jdv)t16}zXaP6Z5A8V!mEePE{dN*#FXAJsw`m9s=!oU$4NRZvasj4&MM7$N8S7^bNssAW2#;)+%@jNw0DZgT=dF_n-!-{ zi}@)jEGR>?hSmg|*?e#O^|dDtA9N!SZ=!5|ZO<27VzsWVinWsEyTR)6_P4R5_&$-j zo?8xl)o|a{Vs_;JQ1vF@Q58$raP>K7mL!vzlLa!6kU0SYQ4t0~2ojhBiGYd_w+kqm z;ev|Fl>t;DTRIC6Btl%Sq97R*6_+bW9v98B5j!s^O~y7q)7ldXL1 z1Bb#yc1eEb$Be$)AHu?Vg1qyaEZD+zpk)tvBFJ)YuJb{5%uJ$H}>hD~?Bdp=( zLB`#85C5|4rqR2`4K|Nw{2V{`*o_#}X3lUH8s;%ybecV^sUU{7U)=M%ue36dV76ub z#pd;HtrmkuoOhVEyoJ{vt^>tNJUj8%pxa)EPV^V9Cmg@h8l~Wy$OM!r1FIN zGXOzE+t}G2q2ad&p7e9C!}VIuzdGGK?tNn8$B6>15A* z`JR-{bEbbiKJv-+X1M5u(xt0Xf(R>^!{mnD?Pp3pO|tkgsM^_`|5g4t-%5T3hm$mz zvb2)e%8|c4E2j+m=-w&*C?z{nUq3Z)$1nGKz0SVKpSxDhz^C1#WXMK;jdm-2PH@N- zv4klP^mt^vp^wTShck!HTtzD4I}7D=r2;YeWK@r8I-pmtf=R&;?3qCiG({m+7AK%$ zas*JyjRGo&Q?Y8!>eUb%*6^30g?sbQAv$(4C+&llmQ&Y_z+gf&I!V~x^v^Q-J z7DNY58*N*@4h*@)@E_q`d+zR@)0;-^+e~!(ICAiT&o#Xr5rqPwZrg}GF*|Ngy#e)+ z@zMgz(6;lhk2>>I3G&-_(wvsDO&IjSWM&(7`NH7$pi@az)TGo|?mPDT%BXIpc}1V@ zw^k2rA_oR#HR@(0~aYubyGFWi$ONd&qK}QgSSDG0hiBjP z-k-IIEnaRW&rbVCxlctZx0ByK_RF(vYi6GQn%Ic3Bp*^*(jPpJRATJWA(B3;d*WED znChPSPuIWn+wUJLXUuNql@gp55BW_OWA>o6zK%cGiK7q2wgmsoZm973!p$8c-}#sYDxmKC-Y0$0dFFh!2O%M; z{^Zo3_PwJbrttK5!`1U%ty9&xl`F`fVNH%~u%G^LGpF}#l(2^NYX5UlSU~2(0PRgx z(YXS$>4TnZ?mq3KMR5lvbT-cyg{Gt@uk&NfCACI;bJV}UK^ujN)inYeJUVr{=NRQjXkG<$0*gQ9My^ZXL+|iYr5Ev7!$kKBXA2KHq zV$#`;pq4-WiOa9)6pte{U#O>iF%F2KnQ3YgNk+5@oq6Tw!wB5M&R0q3@;2M+OF%Fv zBWi}qze0(s%`O1*V|M-qtU&N?j}fBzeMsGO`NX3rnG z{*Hz8G5zb{%B3R=Yikr$X#5#til?k9eEic)gR06otD$Ru|J+vy!0f$ncF;1v{=1nV zUMU{%$jS#!ESS9Sz#M1E6;HI_!tbZTls(pb{@^zy(YZMT2V(YhH}xu2Cog!iIjp8z z&1env9?<+vkPtpFCyP>zCe>HDY-#8j*})RS1kp)gC@kbJi|WC3Cz z4O;^Gx&q_gstUx4VVwanq1?g}5X(!y;6|)t)0^Je@t|HEFllVwiwhrEd-C75GOWsu zZmIcwfY{bk2`A0vI|~wvo-HHd?z=KC9vZuULJ>(Dmy%pV*Ij@AZm}wbJE8RMDEbpZ z+}W;8S$J?<(S*!rSIsUr+nYN&zdgVQ7b?$l;pDjz^EJA~0yC(SR?uVV1NW2^{cg`I zM<9`$h5dTgV#rW}h`5h@D;AT|Ro(jGxvF`CPW<4%M&eSDH3c`UAUmLp5|{7P?ZMOQZ(Xm+(Xzir7WdxRXeOx@m{MsrFAULbkI1&NalgaI#; zqhAd{>0AVefE98m+8Cf({Yu2Hp*BJDXJ@7XDtnJn5AXhF-rBcY53iHRRuXybj~>ES zn&y{VoBLJ`Y`!eN2tBR-_Q+3xs;0-561%-r0aVrj#U-_Xs=FN;Agy1^`8IS$BYWQ4 zl6lW{y(^bH9&Cd(>@urb9VgG5q~10p(Qp-ngZ)tkjB&dR%tdV1EQeA%D;w` zdp%vIa#yKBW}8!ARcT!94Yq`4PYea1z^ti$kUBzOg@aIHbUy=DpbTPb8m*)P944Hf z45Y(CpZSMF+b=6W!x2z8^vwMyCjte#^Pzvgx-GJCs(G+{@v*4vGWq?KHnX!@!NXXoJF^AArO?37N{hc>lWuJwI< zp>2RX|Md7P%XNNOrTAq_&%CXbm^;4_#Z5cgkwUR+?43j3XxAK6A8jtHs@*>_MA>3M zNEKobo}k!8>0$pUeNe(41GPg6)Q!(d6W=?@DIU!x7Onitk2rffrH-;|j!7<8jnR!) zBq5K?UxXjVXh&CG#TCZEg;RwIL6k))A*ijPryx|Cod?MVx;TUiKq2sq-8YZO83T${ z+c5Fj?_XmY60#iYmS$ChqMX!GPd`1jq-cNZw&$Ut%q!PUyY}TEB40nS`i`Q*mp9aT zFcP;rr@ofjaKn*@8|6DCJ;h~E-(fx#B@LAL0yr>$$vvw0$!(w9@^V}8u+ox0TdstH z@e`^k{{8FBU1g^E;{i8Hy>)U+`s0;X_P=b_x%B!grm^Kf-0LBVzv~C`bzn2{s|cs3 z>0ZawSF8m$#!Z5S#t;IaG`}0u z$u7Fm>=o?shTA*sHEW%`DB5C7=_elzV|g0nd!ML(V`q#=*st^r3N0^&RsQPOgyxNtt2Ge3&OdkNDcyeilNrzkBm?0lo}0by$yjbun4U zhcG;?z&beYGX)gJC5ngWaReWn-BNIP;W%1*w$Zr`p- zBTO%w?gRNS3$hOf^Q%K8<~XjDaG?miZy!6Iui3viBh4dkTE7rYnrb$YsKKn*s(ofm zOSABThSej!{UMO3yMEtj&hn4=C`j>Vo9kN;EB&%MOH=`X)=VDMaDT4`v(~B?o%MyL zd~IYkQTB?Uu7)rWx6C180N|TIBR#`U+zp((UG|4~0`~_g?y#0$ZIqa|QkM?EBnWGy z1xvq~$z`smBi{9#j(nH+zpi#R8h4p6q!+*dC#!n_B_hOw&2B0OY-fw=TRcc(ynype z9Vl6GlNl&s@j>fV;dV@BMJ=0mm6)lYwiUI$aiDc&A45lIw(6GU(GZSc&cRG8>6l&p zXqjkMNWIS&S#E#bh|nIt=COsyai0mEfKjF#9QKrGq?fK0ZUCVI1@CW1uG(Ab3h0h?0+a!Bwy}Z=NCBvW6dW9S!-JhL@-6_vQa3$6i zmmCz(^gPIe=ad~~EQEq$5nw=75F;Ij7f>HKRRln+3&3Ne?H#5kYNOt|7^RRN{;<8< zOZ%J7@2Ta*&erHpH&?e44kXUf2v%WC;voH#e$)`{w09^S=>pg~L(EMbL@reVLo(v`Ig*H!&%!<)ukXDIqanhwb z>__D{x&~YB&}BxEv{;MpXE6|=Mv4?gP}h4Al~jW(os2(EEZ=)^c2V9u{o%bgn}H#> zZK@{843%`4nVHl>M|oKakVb{y?Pfm|ow3n9N1ikSuJt=r9OQdAY(AtXyoX+)vnV8Y zXIU>y*bL3&9#r4JQ$NuH@JX+d6{HGHH1iXElS!YA*i~<^VE6veGma4EQ;K@9>g5nk z#9jhRKO}W_zo_X6``I-iE56WJ z`3KJ%zs+j9Z|k{WptH}cS#50zQg+e!eREo)yH`9nO0&`u)U@03wLEG!n-0rTv-`TD z&(?lnOb3YZun3!Auo!DujqjF^7(Dg9t|dWVQ&(g!9J2*Usy`PSvx*7`$-)?OgpIRl z`Dcm_FfHNurjVAfSJiL>#?=H>;H+YgqgU{Ttn5;$bnd%7v72~XpotSt1yFwIc0t)5 z6&HixnLu>?BUDLdP462xJnilm@#K(z;91d`%TMJ-OfG3#Po$m?c9Cq@8fp;MIi-qL zf-*vSJZd~Tpsf(Kg6IgaWU=Zb7ZzOC0#?bLWThajC`|idOP5g5_U_)|!9Me^#;qM1 zV!V^7_%ZX3_vO)8Y*t`Z-zoF(Hb?yfWUuBmreFS!Hikt18gA|G1u*5U%1nl z|8aA-i&~c{eM_QFx<(^bUyq_Qho;j=c)JP~4pVZ7#fORx>7=iyU{coay$s^CG_Xjw z!6zct465W~xZQ?0u}*wjE({3^jN*{ZzlW0q_Ym%|Ng0GCDpaa_X9hWn`WJg?)};4fp0?_A0O`ju`%+KRyz-RNAu zO8H|f-fov8|P;|ars)T^wI)HCb*w(uwdNC|C(H?Q&ft>6BasRvPi8&F+2R9 zBUf>|lgf$t8UGq5HGb%CEA}-|764L96gX`O5kjJ945?}$r3}gNndiEy2=ySuNt{g> zc(nepxyP1<^6hTV=jO47)9qn|@gn<-lGDQi@&#IhmCfnL_GC$SI7f3tGEN3Z)!Pp=-@`j_m@z=6p{Gp__ib^S623U=TwRfN{v z6})e0!}~$YDqovJhK-Vq+PMZLyy=JZYiOq<<~>YRzgswDb5c;T*)9Z#gCCpA+{a6P z(>X-KEyg7K62;z!y);CpP`qB%&IuKMD6ZW+2CE&~tr)YY!%@z#rn<*8;9JJ;g2Z_N zsMTghd}bKtlB2@z&J|k_5HU3T1;DbIZv?RNYjQPh09LxZe(-J2-g?h!TkzUKPqWR; zFO9n#0#@~nhPnH8zihA|{3%2JYsf#!KXs0N+kiH@V>Gt5F0Du^La`ws=t1$gNhdbo z!zbVDzwqqIZGWxus5WylE40Jp^_8^ZG|eK+5I_ZS5!Ewn!AESzw;^BhWLpN+!js63 zmV^y*4#Q%iiNF()%ubz>^H29ZxZ3NDN9o!SE3{(f8_YH`8(!ytGl1LZI;oE7IeFC7 z#ZS70#vuAAAxkGNYDTf!G?EPC#l;DC4O6{t#}Q7oM6Ci5Xe1auKJ&cVig4-*JB%rT zlp#vRiAQU)Dd_HJo;sy7gEgTR9PZt{v+DVE1!pYbYxT}GDJC~k&I+I&i!_xqbu+{! z0rYhgSn9s@%^bSfU@9%YrdVvQVM?GHlatM7NL&oiNm?{){agDk^WXM=P?1QiTFbEc)WqB!CC?~AX+21gikhY6$SM+5(_fi%u&d6r#k zys^D9;I>%yx7`h(RZ0l;!==D|TL?2IqH;-{Cl7qU+nDa9YRT>_;iM~&bFWEGQHNS+^F7lZz=3lT2n8WRc(Fc_DRx=7 z3v(;ZRTW!m(!#?bGJ>CouM(kqOrjoJNdI25P<2dP^Vpff7bSYqiy4L_W}i?@!2A}2?i8JMAZ1cI0*)aYuzaY8qfULuE(HwA!P`mDPI?R> z6dg1pKxl;1or@1l4Bk${HOSVCq$=~=m`a2SAgU5MyF8fK-0#AJJL~)vHo3tpS6{dQ z)zs`exiu~2bI_Bg!(8L8%g5x0r}NkPV2?cz_gKJ!=L*(2+|-$w&Xd-#@#)p z>x}XRI#tTP4{$>k3Lwi@6frM1Lsk2eH+50xU z`bVnE@XKX5dI3qnD5MVk;vf~7nduI~VxrE&k2QLVSIzKFyO6^w)Dl#XOa*U|Szncy zA#5S(eMkyo^KBgZmZfK1CNEAMgD`T)O$LO`ia`S;3M@$}1_S{I2Z_t3H{IRacha7L zx#9-t3Fu8;k>6&W^dOqKIGQCV6}Sf!dNsG}K&U5EihvX*PIQJ-gLohXNwGP`csGzO z;1^NKJ_0Goq9sD5ILyRdIaZqC^{PZZevzy`+TY(?1_he#=gd%~r_LYydgD)Z>Ac_3 zk=7j#n&nKt5`f+^b2i)QFc1iE*&yrmz_+RIOJlRWUiK?F57!bijt2xnX$xpb6uohZ z*NE{;drrLXXzWzj|5AYIrS+S|%Et=OLzm5EKX*`9j_H?QY>;f-10k0&Jk`#Y+<`hp zMkZRJ@cAa9pV1kNKyHO=-#`7DU~1Z)P|mf)vcft938YZHeYic)6Gqcak}&sjRi80; z6no=5&A3L+Uo7Da09nZNMG1aNx=PT52pwgF{7;ZIsA0Pj)M7USMkw*K(B!Syu9=&> zZ6pqhwN~gxb8BT0jt(GZFjuMDeZx+cSl|81^o(~r9O#bf;)WUi$z-$;T8Ym|DD=KV@;2!uXO8Ic`pGPizbH?@84XwFU z_D;!W$#6lL)SD-YN{mD33)d7XDJ_DKR@u=)+ZmstQ~pd`Viad8*_?dMK{3zlDUxdy zTmH_pw8kI2(!WmRK$+O;45kZ^Mo`z`Tr7$7OJr*z*+`D({ih=>w8a2Xc|wX9_A{bk z9l;2^A1rajVU=@@{uju0rr7PfA z(c)Jr;q^0V2b9l0-jndvu4>=jYsm>N^-Xkd zy&Vg!=!fLq`QHH9*56`yNzbU^xctcf?hTu6dI6z7ui{QB zV+Qu-&j_NMfLSAlPKt?Add^mgcaxM$Q#f2Y;|gHJA#uC;A7i@)R1+&`*vT)(`QEap z<(ZCS1%tQDpee;>&0-2wQ}*Ib|IN86L}cyuK8-hxb|bf8M`puL|LZkuBbA;uNa05a z)KKDKL+}P6?%sCi(EYo{PrcMW=9~TXT~jd~OY0atz)5L0YfEm7Qa2l`pf2X0eNT;{ zvoySL@iyOqo}?DkX%}BjssnD)f2&O9Chh zCz-71tKAHGEU3V6B!cc6x35s!uP(#g&ELK2+N`laBGyL*SnOWQgN*+m5pa!+}51 zh{>}q-1yv2k5=q|f9uC1@r+Wl2VNk|UX$LAL&_ zSHcOAz};8X9s=%N!!&d7JHCvIL*98~O>Wj=6y}B}A21ZMAysUjTl>5WNTnl}WM{8| zJFExp99^sG#{-5;Y8nSl@KHo(vEiz-VYojwPKNpVf zuqTHpL|_ApUk;HS)w+OQcBK9-URN(el$>dE~u%?t6 zbZmK9lNQ>hyBx1=53{edkLJIhG_vNOEZXQ8$8RFKpF@T>qZ#IKX>l#(!}6nM>(@j7 z_~D-CS0v8xf4RGq^IWY{n?&9a1~oryU0g`St4Tb+Ft=cy^iiWm>Taj8oa`#RE&?yv zvi86;d!`d73~_zwtrwp-d9;x|cVNnd`r(~WHDoqGb3*84c8dw$$LnQr6)wiQ!6^WlK#DG`C4B9yG3Q(TC z4YmVY3%tUF(<`{gP!QRNzTd-roAJn-uCv{ae+BP-{URxtK+r*nPP-%zgHW zpKD$2qeE8j>9Gsz({>?&8o}csbMN`5zLOG`pxNY%%+J^{bzTN3cJ9j0M-onMVIs|q z4eEPlZh^d$Yz7spJ#Lsga>hTElw$q*)~~FbIvX7ESVPdZuJsbJN;aC)A+6i{6PDHI zN*BhcOD$t7~!PDASZvM@ZEI-(%4>UsZ6F{D3w*%_7B4ZXI{t3^LJ657uA-LB@f zR#pwtPcF`l*q*Z7Id=zVH-9L9*)V$9oTh)JY|p=*I}ND|q@K<2#uns&x+-F203z_F zr>2%|vtllb z9khv>rWV@{_;YW{C{_%tLk=-UNap0?JULWMP)0a#vdczQg2L4vnl|E3E-DfuXn;-? z_dEdBMv1I+tBu=ThN1QVv8Nx?o(te_TwgYo~6~ z=Mgyie#+kSWq4lm7o~|OH(Q-of&kni=1>G+cm+ye@=WszLIo1%un`&y}**y~y=@;NwZdhkLRd*E^I% z*X4MupRZs}{t*y^nxAS5X^UH|-4*#;7rp)BZPT%jP29J{0_|6*E0i9jt}S2g_`bOj zL4d!A0-TPr`bojTP5zud$;G&wRRpx0xcuDmWt%OO7bTI_na21iR*pOc!=8MMlR;Ra zu~ZgCEg(50yyH>>N%0}C+CM^8=q>>j(WQYo>BiJO6A_m1MbG_mWbJ@$*|%NW&+^q= zO}5k=PNjjsz-*0cv;7u)^NYz?=r3FuH*rC~_biXR{o}KD=!rqH)Zsa#@AO!2gBv}h za!6L(jsq9JAGT}ayGc7zJr@r>iAu+-n}{`eDSJ!Y%ntLsL6vCs-21ltFZzz3-q7n4 z>o7}5GKAUeU@f4{Y&~&f8y=Dy6-0hX8N2JDHzHea47@e)f%isNgse1CgI3WfZrG)n zds@y>R%sgyQk{OIGnwRUvgZtoFSc-^jfR`zL$Fy|t6A95MxCVw?&V2a{VJW+Ne8@u zsZ$||;Ex6Q z>!LmBQ4RD)T+y0K#tjW2V$0XOm+{r-`ud;tJjkCtY(SaYo&Z}7S9=Sz#c>s%(b+d1 zKDWRAa^0+~r-s~Cvil}(l?R6vcBqiDYZTOLGplI?Kq{9SQZDU}9$P~Gtc;~i{X+`k zqi)t76oVGdx!?+6vQY-qpd}+FzoM&6Z%d2bI<_q=(*Z4)x;0TYuHio0ei=h*@EfL- zP1ROg$=UxIXVQ{G5`I}^*eS6|7@8qD0@-j2RbBvW%2c-_8X_>>1mjl`i4v$E4wQ1C zby11M{xnK#LewDLK+5irU%zZg-XQ+nW!&>g&F=>Gl+L)xyEZ6qmN;X*zOAGg5U2Bz z`_0pTdf_3H^jc9<-%qcpE_wV>UUBPNA!&>vKTeY=Y~bwWy4TyXrCoq_I^^ zgb+a4WitgTq$_))VZ$5rd6~1@&qqR_;@5!2oFQl{)@+SN0vK_N_PXqUyn+5Q zZjZB;9hSlN81BYGLRV3ZqH?S&9CRw=h8zmL0?%x_+dWiHHW2)H-u$On&;$nDZ0;yo| zXkvKAhSEp3eq*uxK5M?4!KF}{#V@*=w{%go4qc7X^Q~%nHQjEEus$m-Dg)1k?k5KK zy`3Y>#L!g|tI)ITenq3@Mh~tm@>A~BdS{}(ym<6e;FKU6G?+tA47;l9HIhKi@chTy zxV{DhnaiGgX~_7EZ;TjvJZY|O9-Bs`wGOvZq7yZs-1_~#8N!R|vU*66P$zXAE%?696AwS|ywhQ3VwRZ<{#Qv)BSZRs_ybl#j!Cmc1W5zh~<7#KkG0cIB- zS=e09fq;Z%`eMW5eTce~a?85Erd2WRb+0Nf24R`#Y%@PDaO&gLS9sH=OV)Mm72BVz zOZQWQh;31jtj%9NXES}LK>l{4d&WPVXV^i1*3`1nl_5;2LoD0C)#X!Sz*kOU+%F@% zhC5bVEi3iaGBSJ``JW{+pSc<}?~mdXdh zPq^YGYftp$)5i(~Zs+>2sjmN&X0Lm>b?yfrbgf`XcGYVu=Vbk*#Wb6X_KH@}A=UaT z^_GyvmMm`D7)m8JhBR3MU3A`T_Zag8PDcaUn!Ss6$({kHxAyol>Vlzx|0Jr0s5pe3 zeH>BVL9v`VD7CT>w~FXbh*6olA!kn; zvWJu)L0O~HkSCNO`q8ilz=33KIuYMrP53QTB~c71S6IA`5@PtkE~+d`ewQD46KDz@ z-D1Ai-llZ%6DE4j8M^3Q=Gi>rJMVF4xIOYLVI}Kvr!kV56}{~@(TGuj{I&Opao=ri zKYd^DV8_v=cvHu(+fH+`iN4y~(u0Ek2S}c*eX(~{ZbQxGPf9vYTS)7}bsO|1Vm|fl z?X4Ge^hO_Tkj5Bsdu|*he|CL*TgL?p^-LvQoG@Bj@Xm8bxU*odL6??={Db1Z^ID(1 z|ad@{G*$tYF z-o>Rhea>uxJgcG~0VR{${)P#_ux)_JYlA$&Q`Qkx*!@|v8F7pWfM#jcsxs~2M^oPE z2-loT3Zx-elKd49ur{QD0jB3#1!Fc>Wsg^OJgkp;^ZYw^eRR{ou!}}YXK_dsB%A1~ z1LuP*YHcTXh&Wm&og!ADrTv7-fY@+>6hLA~2Eglh2(+-c zFfej6{7`boF!Gu8D`8EYLSyS|tIqv8s>2vGAe^xI&?hyR40dN0mm!}KQ;Y97PC6;W zc78k8)ieL8sbP0VcEZkTiMl&04O?3wPF_S;o26BP`GeDG$kKkLuk7*59d{KUdWra* z&RL+xd$k$DkAA`Y2!DRAF|qV{4OP9r-F;{++}^vV#F}-O8F93*OHum}TEgz9S;*IV)3aTPEP4wjX2`+F~Hff?9 zFCR3dIV2rk-ccgd=3A4w043Wenl&%#iQeQ}xSAiY233WmvUgiczGBFK3vdO^s0GhR z_nQC;JC!1NOjb4ON>=-;&(4gffL|)4RiC$_ZNpjbk2NyemDk zD07%1pFOzgpIc4r}P&#+H0bwV3ktgE!| zarWF*UKOrbloA=`{n4J-sp$6l2qVkKJq$7P-DAy8;?^Xlu2QYAshUJwVcYaHG}D#p zL<2?za(q00Ad{lA#H-mBpk(Pz(x58t31dpnxq%6|I{5=m=Ts`w$bc$^m%1eXwSka{ z;I&to4hg2^9HgTS+U4x){6=Il50TH)k^JT4qBJ5;L5aD0}>ozV&9*1G*`s=r}DIpPN~4Ml8YU zp!U51)`yoK*mdOtM)jXRJ#rP+U0EXIzl<>R?7{~UsrC!1mCCxSDr#wbAEyg3CRUFR|Fho z%f!pZI?)|t)P;WN3NPkcBGG^$lf5fe5>v?rL4)|9x=x!=)*uIvLV2_S6>EQ}T8-eo zVd+FDn?Jm$q&-@evzEw`qd32MfmC(4MD2^J|I>z9E9*o3@5WQfrf1Kf{fYb{6|FjycLSKGq>9*y2iV5OWW`+;hSZJ@axQ?8s0tl!M;EaR ztmr{R@vUB@SL0P_hBb5*8!B(!YMLYeyn>b!CC4{G8Z~#g%%1siQveLI8;WUCBrLF5 zbxuQQdZH`w*R}MW{{ahKEcvFfmI8#3rr3Sbul98RuDxOy$+w+Ult}7_!x*1-Arr41{Fww=KD6%rT8t4Op0E|QfBq4W|HH(sk4b5&?X%X%mh%FF4 z$=|pPhc1?^7@2Iyfr}uv5yrkIgoedwOHt!^!CK7JB5T}^_2in7p|GOgJ7$3dc5nfS zDnB6fx2c$@_+*#su#?jN_-j@knM>uJx}%{nPhSrhYn3foDcw+2%$ zpvS`7$nFZmC}G-C6rR<)gO&no{G^^_AEzp;HT(9?99*ex3~NA-;te{_ZoM0rRACLG zaiVUeoL#TRaUfHQg+bY8j7VW_Pv}R3i1GO_OBb zS3#^t=@Er0V8Y|o@go?utM%@#X`UHGTO)aFO+AXKlUup}0r+~*y)4#K$IMeYt}Q6Y zGQ!NYN%Gf;LsCEqJ6lNwopdaGdAjEp^Q5@crS!~Hbg-&XANj_yPn02Dnl(A709qm2 z^dJYuJZW_1WS!=at^w(GgxpGQD60wrp(LI3M8UqtqeE%{hXd9RCf-56kHgU)8jk=g zKn@7mAWw+w+3f-V6|1VqxQ&8XJAQ~r3_+-9Me*VkR`GGGNTkW`l~7DmTF>8?5Tf{f zlzw|2;=+v+<$1n?w*)CI?wmno3uA&4<`z!&r`7Z){X|c<<)ZY!d%B;}22QwzMwNvB z*Hg6qH%>Gm)s+f{QIJ($apHZKff?Gq0-V$m!jfXZv%x^TtPgAklf;ZO>MRe}P_z??(*9e-qw2$@-L27}Pm5S&Dws1x;aJFqGeom{1x zmW<+l0SFFmVB#i(&`v413R?oEz@>NRU_1sF)QcC>CyY5yh+U-YMGlQdT-@&g#hD*d z@=gr9UH8kij@>MXt=-Wm=l2eXWrVm4r*5;HU=kkBGmsEdxBNtM*D-c%fR0hTeJBym8m ziNsW3WfjOG`su*7ZOg&9REEAgoWdk&D)sopl7bx4P#3uYH^`BkvwaG+y!%BvZz=x11{!jp#{W(ngQSONxw$k*3T=p_Q*uVhQE8N zuhb~{d$k)!dP*TMGcWun1dh(nkbCQPs2)&-Rd-eQ2=8x)z;vEGFR=k za)Uw8e63~)B7#&5JNP)oSA*sn9Vvl-{9DzrLTvD_tpqp{3vC8&Q>pgpLKy+iIJbmd zMp;c%+5xV``MS%2gB}z&5C?@M|FNPGYGVPU2P9&T0V=Wrj{pkSBetM0P-#fj=w|oj ze|SRVd&TbgW)0%7nqfOawPQ8P8(vDK>$YKZBp(BmSpz8VQJiPIe~!!d{Sv7tq&)9( zX{|Azlk4w}R=PDxYoJt2YI3EYY>PI%^aC_fGO=nSKTLQX_vTe?uYeQ#Gxk(J8a2Yu z-=u8oPGkq&fhkJ?$?!j*L`tH;P>{SmRp%ivoEg$7U8|}>Ujq?pb zRZUutA6vk*vi4XiQh(xNaDZnFp;&PVUj@TX11safttaq(8d0!=E|KEEjpkwj2+TO7 z65%VHjp`7?_~{7o1t%T%`03$%cfwwf+B932o3rW$yXmRXDjnH3T>z7L3XwDaF_MyY z5_`w1Cw%bxZqWO&TW-O_qHWr+`epp5m4^Yz40m zd7F4#*enDh8i&~xA~iKOP1LA!hnx_eid*7Y@D#mikh<07^$6FPbV{Y$J|Go-X7XDS zcLpZPa4O~0j)^iO7-hKR~oR-$6 z|E-;oQ`Ih??IfxV=_zds{z&Kcj#Ar?tGph>l7jdcRyI7v4i5D1FwlF{o$I z(2V5oO6Tqs8RA-S5LPV=Xl$8aWG`-i*~(YRko?rr5&ZdhqE26rSTI%qa!Ey5JnE9C z5DokWQyF&;0O?|%zU?_Y-U&S7!t|tq%JS$Y9#Y}RISJM%9dO_iz;RtAIfjF01z*Ow z4e@a`7b#`iXw*0Asz;#fJ0h$<ys<3+b>~LJ&h$l#-MzV)fh0g*H*wN(eW!L08iPPHrc# zv;q#;Y>+J)Fb2E>4NQhZpy37@_$iBdJzKxNJ#Yu7jjlG@Sf?g9fX1=oh8%7F9V)D1 z<;w@o+uExI8ch(t93gh!;DHW^#xY;|3#$48e{>>!vAPh~m|wfykB;~rH(fr3JMRW| zv=himXb!hlv9ukw%HM7)(+Tg=W6LBXOmD!la7u)Eg1Xboa+3Clw!K(~U)wG!eMtct10HXv?<`oM!wptd-R_sfjBA$O{I% zfAhfE73|jF!`rU;uJ+ z=V%FaxM}inM5!S_OB5aLy5l8Uhn`^UD%WF@Aql4uNvKz`!1jfIF<5YzXTfd!Sc5#B zfkYpnE8?t4z|D{w6>n^z^!$IJkQuiE!R)8o_Y|F=@aHp6(SO|D)IbRNhevf8b?0w> zRqoT})3GT4PVXuI1T>Z?-XN+b zQAs7)HPuoMX6=Rneq6(eMifq`#0_HNt;M7jP&`%}4Qz+<cV*8$Hj(|4JmUjX5zGu1S}dz9Ee*KyiquAWkswMyIl=)=d*BD)7pBhb;Xbs6HZ z+qCz}}+7JUm0T4l*5_3Rm@Mc(C^f0TWF|b*B?*~DLkdp22 zeNBsSL{8o$#Y!~Nz@kpTCK7M|ZcLhip0Pq$K&Z+1?Eq?6Y~p1bCuOjorfUKySYfc9 zQX4Rci-X@dW`RE0aeiC>wkVw^W`|lKFAg-^oKPHqyTkbRT!7JP*oS=BMy*Y%vTF&jtDy)d&PNPNk{3`zb z%qFS{SHbHg`&3Y_aidT+SKZo~I#GJ>_s)g{787OfUsk6TCnBiBUp=#L?EGJs6~JRSc}N$QXv>{mb7ry#xCcmq)bx> zKZA4W5j>O3{x`38Jn`)3DRJ(rTZsWLx?1z5W+JU@n_+0OxxA9^d`#`x5>23r|W_%*+hg$V&yI%8gVoZbFg zk(_=|$99ML(p+=Mw**-DGjc#{=LWPwOJo+7+(E@oO<>_zAlMc5Cp{uo0S>UpVllb4 z16*NOMYaa{-EMqc#Uo@lpqk7hStpMRFhpJ_%>fWHer9eVak&@=4u@+tBBC-hWTf65 z4^@)I*Oo?m^x_qBXTDHKuDv0#ff(38eh36pb3xaD5Fl>X3o0^->6)o#@>_QKDwY@iIBYZ#mAzA{4!_<>P)YD2#()kpo^w3k_Vka~6 z4K6~WNm+jChsVD)KlK4r$4Z5KCxnPo(Xk}&Ag~TY3o}}c9ae-n97Y6puE6!?Hw*Xt zgpK(U#o-{>ZpU{E0YO5(nDyge7C*fdJKT(5Q*TA+$DlnSl;AQwJBD|Q(wBD_srQ1a zUHxf3RkNkfyKl0*a{H9}-Tte}61C4~k#a4rYux4Kq*t?$V!!G5`Jem#4)--XDl=8~ z?MVOi3Y7*8RhWnaLhK1n($ZHdyHv0LcJl)m9{@1JN(whr5r4trso+H0mf2ND!}gVL z7$QXD$>lzTf|EiH2dK#e{{T}5V<$Fn|MQR(%yNXdrYQ~u7MuY)Q^F6~tb#Efzb3v$ zGz7@O^v2}Fewqqb{b3>pvqsRT=*q-Ank2btBnaxXHIZ#^wN zW{_O-Z+p(u3&v;tYm+7*2*K<)K1a{ENg~-1#*!zcuB=burHpYcMZZHSF90`e(!X5q zw3E6nq#$CFJnSf&pyOUnqDl>^yB0k=F$RGgw1RaVCv;$pG1xY;AM5lp<@U!e=->dW zxEoh_5u^82ju|Glm>AcIrU8rEQ`CTM4<)QXdVh)vwJ-o&2EiqkNM@nn5?YVP_^)cG zgolBh4vT^VI{|1*VkC%hDL#T#7|2>2JsAuI5iR=s8vs1j<{fBIA^=D!N zAh@r6l)9>&VOK6=;NEgupinzeX)89@_=)hAm{wK4G*nLoP$rs{q>|^Qn}MPwlT+^v zu6_O7SD6pxGa~_P#gnA_>1LgzUKyOUZPrR7AcVV{N259~&{3eCF@v1gdcT*3SJT)K zy1?`{6YtIyfy*7R7_49mD-m|{MY1Jf+VQ)M0K^YKuKfzZ>a`U>%2TSxSUUt3 zjCcx%>rJABh+XqSGajcna0hjV1PF*b3bQg6Y8Tu@6;uB4O|qVKklbyVEfaR-)^#EG ziHB0GpPT$Dzf`{HX~f(>_ggZgh^(V;(%c2Eu2<^!K;5Gi!acq{+oCir8K(l!1`h`0 zlOQ)=)!kc%G5PtiVwzpdVA5C=%tA-fo6jjQ*%GvBjrc7LMoJ8mq088dDD?v)jO7Yz z-hRANr<+%+$6+D}p69Z!uu(I10QQ{@sg~|0ig(m(4+%6KLIBw82Pjntmgq+YEXz1SCGt=hoQ6XOu>2ci4QRm?E` z_#Sn;VDF!^sO#siFdcjZDG*fka$fOSt)zuJp>2^1}fCGFbymK8n2< z1?i;i%mqo6vI_CXSV=03G3<1emgZ_e1T${uBGzV~(n$6#t5~T!wvm^}xJf1nAw4Au zuvv4V)Cy@tOs>6x=a~Cr_c!8mu&s$XW)3^l0B*>N1VK^v1C|~1S>_3=kEK?SGzUG} zC&i7&v?-H}@mD^OAAGwHsEW06q9@DjG0>Mtkgd{@R+L~%rtzE0EhjyBMA--ME2q|_ z^-?C{NF;ed*(1TkAU;j~P`8~+Wjm0ADkeKCoWFY3Ed!+h`YpQXQQApB;SGsfpQPP2sb^c&_`{WD(foKI+ znMQhNkWny)T}YvpoZ0gB-^P4qm+PjW0`kV*0%p_!TZsMrU_4k#+tC z<+osA41=6?3h$m5<4{T>>lnO575@l%*%j8M=FCE z^+gf=T}k!EH5W*_Q-jDJ{G$pq>)(cK3#;O8Tl5L0_wQyLk@RQsV6wQZgZjVir%4w*ox`z5qWu%pYB#WG^HSA;xBfC&RqBB!LIs zL7YZLt>D+@hgY5oV!*K*TbLJ;BZp}TkAVS5{(mq;(g~0dEQ&bzcy3l^8>CFdXcG@A zr#N=bP*8s4fq%a%6tn+MuTsCcQyy)$j%Vu=$fP0uvn6RIW!P zM}QQJD9>&PLn*ill}$t3KQoo=*z2_% zBAz5|<1rlkF{Q7>{=~?35!dr;$g2cCc+t^xrSp>SvT*@nHo%x}x8V>lAxq<|@w%1E zhxNf{u|^r7ZWIJEo|9yZoCqU3q5n}WzSD&VTP7X73Izhe6Ti?GjIrS8{s#Q6iF!i$ zC1gDfYCiG4_ZoIg?0mYs+ntL15H#Ro))Lequ(7Xn4jx|-V^sHr3WnP;(_nO6sc4Y9 z3R!#~|Ge{V{eMVQ3Z)>B$YJmj5+Eit@xkee!eb2#fkejD9#nDb+O9$Tf=M`t`M&_c zZV4?H1H=pA^fTc+NM;1e(&cOLG-bim5L|?0{X1|mBp75lJFdGt5;{P%ikfQFO>}qH zYsq;FC+5#Dw4m9r-$}XqrS`dlp@3-%o&f59&4~Zg*4f8LRb6|3?Q>@4Ofr+10Rlt} zl70f8n{?&kZyHO6GgDK8RWjh%&0;z6HlGPFDp|Qh_w!(x_e)NMSiPu+!M8 zKtfi=jG=LHa1BmcOVS;SV;FIyo1V@;clslexd8}+Zrd~lMG<8K!L8VbB6V{#c zz1d$dDh&>3`a#=5&Y>x{AL(JnuN_2t_fA^1WSv!?P@b`^WpV?bU!&YNNGn}vCyu>w z*Gqg-1g8)hZzR>Ifss>ikdkjKI2!Xzl$5)@ zP64l;$$gE<;=xN=a|G5BqWZ8ox0w~W(*kQXJ4?9AOcvw#{o?b#dq%fKvnjK-j;sCf z>Mr30U&_q`9A$E;iecg3je;+qM(O|9w`phs z?}@a+S~}sY6jE!f-0|a=wtwtjkxCR(JwOX}^^!SHd(bH$Q*%6Fj{V}QS#uu&v&x`s zUW5}oIRE=z=qttq7*D@o*@AEKI~W7`2&<>66h0Cbm4YOpG<-Gq`acmAkSS~0+B#*L z#_IKb|E?fODRDNVwkm_=5>)G+c7tTX z_ho=FFm8yzis;lg>o^(~ja;R+@Y24GL*_OLQprfVQs64F^M{laXL||ilDZb^u|R%G+p5Oa134mk8WSWOYV4e<8bD4La>hi z+!Gt8x!lOLue?0;`)oK)m3t8T$=ycQ0jkpF1Iqaejx7J(rTfmvs&mViPkyow@tQ0I zfLGQp6KUSO;-@5y2?PTvcCfeVDRdLSokkHYHMf1@Wssx$8PD{3y;bAzxp%_kYYJH1 zUweP}vv{Aucx`zWp9-$9z725Tn3lfah5hegPu)uES{&<`ZYKMtXOzAr06MW$iXL-C z@!0x~w#PnTM`hiB+>S1={%Pd1nbA4$H|OZOZ#{oYh}yTu*3m@m+_(4&Fm29ShMUcp zF9Pkvoog1{!cRVGAM)4femM5m+`FNn%<%cj`Etj&TFlx&a>f8gjjtX95z_vq7 zf&_XMH`rMws>;E=QE`v%PquEC0h&_Qzyv{ zwBFe|1m_3AeRkcAUs)#LMq0iM6*msV$PwWQp+@*>vW2=bux>AF%K4 zt^>bC#__f`ab&XV1YbW%C@;O*xnhEfKQek!)kekCosHJ#l_fqSs zIkpDjh-exom6p}xm^-}V{rE5U8wl+K)@M>ln|_qkv3p*O3)Dd7i91mHvDSy^DlOl) zf4BCeyAzRFTstyJ!K*Xi{PX*u$Est!q{g7a7>zPJaC1L7&>^3+x^?L~VVMXwW2l-L zxn`-J6dsKxD3RqdPiS2e5J3246y`ohYYo?Iy=u53*nrQCn^%1~*(L~;+z*8s{?#J( z%mYjRE5ys|U{5$5hUJO2{sHB%7XH%>w|>r6bzXEwt>Hj+kIKhd%K#4`mU z0q>0Qm%?Yl(}ofySy;tiQmunu_>~-3RREs-S@-(_!0Jnw5i(UTAC2iNW{(a2sN&qN z88eYja;y!uH)Aa~z0%yY)-u|wR67O`=2xuO4OOX%e?Q$c-g@_zwF<7TH~++dl!=Z) zECkip_UnIzJejIKF2|pG3c#y{pkLgT|ZRNYU z))G&3a$s>N(C~#6mrB!$uNe}P*2=WPg^jiRxA{_FwnhGrC37_vs0vL9!u4(VQc!`A|Gn?0ZeT(z4gJKl1y94_U!lLn~p($ms|) zRCM>PmsGz@mu96Y^8@FTrvW+^d6{zRzFZdPj5>xL1RiRBJCNm}gfLU= z4HU}Gb_9CTR3%6>EaluA07|;xcS`eUfgBY7++5mU#j5u`$rHRUi|UAI^DotM(-biy z(|MusJyFp0lxPr(f3q(d!~b@-nS2TM7U^O?Ps|Xnc|Fu40gT0 z!kiZf8FRMOLECUT>#`Dxu_FEn;kexlI4k4Q)*0`JDR2P8#G3^EautNWEX%>^cM-(J zzFF;yv@g_jW5)cp_HOsG*LNJcLIt5@yN~eTVj$O5%vQR;E*>8#!g1%WiMJoRN(GVi z<-;Fj<;WUU)b^e@H^JVMrqp zViC3I)(JuS=ZhHd6#B@4ymN&@e?stgIm~K)rYa@!hlMoE-T}bePMymId0riQdsSVmb8j zo-Yz{P!284<7+QE$Rzb8Q@(T$XJFtmA4o$=k#Lk7M$cTz;Bi7}mI3DuX^bg+Ir|{| zv^K#@CUJ{S{ImrMgq#JbO^3eRtk76wLf! zxU*f_g^4V`yMMkFSS?jV)_y&va02P!o@83XbuP<1`#80ote&uS+HbWOzx5{Ag|i7ph!=r&3gQS62a~CnRB2qU*OEZ%%L+2QM3RIyNFx5SNF5;d^|d+t^%T6i{D;#0S(rrNV_u) zo~ZIl%A9-Tfk}s=dsGw?=au9iKXIrN|PjaIHWtAWY=1NJL}3=Ca#>%AiRAI z&I6*FPxGC_ZoVh2c<`(4@C7CwmI^o>0~Y?3lFc#Tm2A2G2NFp* zQiPGVBrT*=WD^Q~F~K5u)0J4Wss9jhBUzy?&0EEzx`C+Ym1 zsp&Ym$3N$PABi@TmWS+Ue)QNaN0Ury7g%Nk+3Uqn()R12tp4`(5$Z(_C$5p2q1Omy z5|FfhnNZuFmk7?9-X^7Z^2M-gcGgV>44xD8vpyQjHE9F$t%_7)nj|@+7r7dvnrnq+ z|28!N@r^xu%GObONjgK~Rh%kfmM=W}$*6MWYSs>zKLl)hxCcqBL0-6M>9w82z`g(V?rx{sNDWND_fGuC5BCvP+7&`??}3O&QrR zTsLEM_z=&$i}$o12a~~6ERd{BV}I?XXQK*GG4}N$Qy-NRfG{f%v+()Y+WZa4O6%m! zRlvH})C6N3SnlSu2?lttj#K-H3B3(g!nmFE6~1_Eb?B*PTR?J!hH*#}oRHy;wC0AA z4+VyRqC+wsI&~5t!9JjQNZ>`dEd$?(C4Fd0I=E7*8t$~k6eiL}{=bqLIds>fYu%wP zz6dDpMA{_U{fu;CD(Ohtb7olly)axId1LL+0EWK8WeI zkWR+SSjN8;ezgO=BE0Y88EQyq;0v$vS4s&-$$Uc#^)I zwid%Cq6vapQ-r)_B30GU&sRi=}>l#7XYtPlQ9 zJ^^4S@HuUk_zc+%$F%`iuouNrE>0+l>C5u4w4`V(wZ41{H0Li-np^N?DirDpmZ7_Z zxEUKree zW`~~E;)QGns7N>l#9z8S!h##O|NHy9nj&t9j=TZnYtm+=B;OvAPtmv&E)ATf>2o8v zs+ql%TX!!$9F6=LX4kY%pCyTdphti?d3meM|LFr=G1(HVKnUm+ccCH8Kl%qGgOzfG z?Log48~^>?gr4Rmyd-}F7(~HoP0K_&Fr=*EF{UPpAus>fz{f>^AAYP zNJ1J*>g|?1A*Lr%GE-iKhwH>_NkL!-U@NS|X3>l-Etko9oyy3?h{72ZRcJkzaoMZs zhg+Irg!ICC1){tE0GKsoD$rXxNm;_i)(f68YY zkbDB8NSbW{Z;_}Ne8LjFAcY-jHadi9j@A|&v65VfD9Zd0bGb%o*w8Ym0buGrhvY%0 z|3k8DH^)j>w{1)XAX!OLl*aiH*ufx~`?uy?-S{vqO+3bLrjTH@^6FPgKTvJQhH}Ap1X=T+iJ}}u5^M_oR zod{z<-YXeDEy?FJtgDE-GgJTw)-*9;W(a7ReZ{RH8Va0%SS~KjlNGEZCib?1a7ax9 zndqjhQK=g@RP=q64THY#Z$C|Jd2UBE3j32C<6cA{H7H+U33{r{mZgn1qd*^1%^#<7 z#odKJ<{%Ruu_!s_xYYi!k=xt#EYGFsLtZ8;AJ10AdD6;U&8Qi2U<{=i`%B1vJx=DD z?o;KH3k$Ypn}v&s7COj$si6yTcZcz$iPvE|Vg^6Cfgo7wP#~rQUy2v31!z5K8pI+{ zNP+ZnOaKo+-DDNhPRW#MFk(MN>TuxvpO`t8^FdEbo)R-+rQuy|^NV1`ylBXSx-gDa zn%)8GW^DqfcHMTl`n%D_Lt}h-{@<c|Qz#QqMuV~}&B?(8kI_{SN;;jS zlTDj&gE=49);XIdS%C%FaiVI!W+ZupLp?HqvtAl2vkMV|s3JPshx6$kKy_B~jBt%# z&y$1#D#uK_;UAAkUCDX_$Ym5%427eV;3Uo^wN%$EQ?XqW=|wG}1R0L-_F}p!ogsZL zJ%*3^-4R}v&&Mdaa9raAGVSh5k8FJQAiaM!{J{PJnbWvXKF&4_PBl7aLPTCCh3n=( z^DaAidavrXg9TZ3V#sHxU0bCpD~$RtJi#|eg3DTbtmqjz$uSiW;DvYp2-E+b!)Uy9&ndh zjBK^{8bo70PpmuQhlkGcCCdZn9bPvbK!!AukfnBS9%ngS{diWgg)Nf}{m6nzFhmy2 zm&}Sp26cWZU-2bLbQOpm6=zDJjf6B0mq67Zi`D6n#_(MS-W*1R!fJ{Jv)4n`E{_y3=#73BD@!($Arux zFcLo4P*<3ezyfO42G%)GXG+IW#&$_TwVUE#byk|d>W+<-RXuTWs$kj~S*Z&LRdJ*6 z-91}{VA+cvG-Ge^(U(0cfx{tghx0KBL!4@SHo$)3F(Vv3hrULqRvtkmpjPgG)(*ZE{n)=c=spM9x&BN|w4 zhF1GZHOWk*nD$$=9-1cLNUyGMn zcgkCmoeK&#`dgbwph-Ms&s}Vtm*0}w1^cn$Xrv^1h}^+Rxy@p3qRv$?44Se!TM&=rS@%NgE>_NQ<#FFJcmw;1r)qDT;_b27t5zA%d3J zI0jk~LulwVQGs78@1O=`EhAWZ4#zKdP6`iK4vao-u; z`f^InI_Ika6boXC9R9-NERm2WbaKacu(JJHdWPi>jEELa2Pt7gUGUK%mF1B?^7eE3 zDmqrBh%^O2X@XxbIto|C38#!h;TKSPJ778!jj`g=-C&a4+UALerB*S5=Ah{AhW<`t zo>g6r!$g-Nv(=&t8y+|&lRkqb{d3n4=8`w7P}ImRah+wVs9PTZVaH4H!1}MjK<1u1 z3xp$|jeDC2LYIZ8tYo=Z2G@K6>W~IBMj<)Nx%cpnXYE zycoXR=nc}3=@TbYTp!n-bC^rdK;g6S36M=&Pf26U*wp_A3>R;NPe-skRQUPBRg`%? z#q^H;a047}xC01@*;i^)4?eO~X7_*3m*~wu#5FKHvre_xaKjq1hS3cxUHSa4dj*0w zV}bxJc|@lZT13oqTQ(be`Mn1MFh0n*5xJQ92}F>c9}D+LWvR?+f+ph68 z;lSGig6xcy7{DoWEBnG{*8T_t?;MG1{3ist-zdQe%K~vv8oK-jnfimRC5evwq^M2y zLSR%#*&0UCBzd;2Y!g@Gxy3AsTi6V%d{ZNrsK=DjiXP{VP0<-NcsdL=7LGtRI zG0Ieo@>M`g`_^S5XXpCMQd%#KXfy28Zk)YvQO9Mr`WX){3S`xX{_%tIp&bKF z1rzQ1`2Yl|XCQEqMK0gg7l^;=bCU9FOMV#~3@YLkVo(<`Ot!r$mSh->eCi!-XFM_GD5 z|4t}AWweDARsdQ8=%L7}I^6+&^$y_e>gzVa$FIuw`Yz|)xFojYwSH|$*Aq@Mrbvd< zMS|{NNaR;*cq4DeYlkcpjt{54ielY^un>N3NDB89&aLooC|OvPDGziq$p&(P{GiVi z7#0e&E$*Oy+%%Kh*N8OQ2H$CID8)cyD5eid>N+JmA;ithkxOW~*H^W9Wl-i8{}q&W zzKsQ-&01~N4G&AI3-{I}O>C93NLQpsLj9WGJ99ZcCRuChU+;d}nyyzm;8nedlXzYU zGLu#Wa!96I)8GCnRs~%zU#L1w1aRU!4$=k}cXp9@s>gXgwb_A!z$qyKaO-~X1HSzt zX=^0izb}NRqL$ZbxjKTnx=;N~6QK#>{GKvd2F*0Uqpj+^-i*DhcS>E77E77MD2_3C z0W;-{F8bnFK9#T}fLgx8p)=}2jGCpkBMa%lF%MTj;s+P853SXw21IQpdI;h1@gI$_ zABP}W_|$GO`*knjHL_(_KiQjmoK|HncD- zIYkfa$tKnzdPLpnbqNGiG(1A^W)&n6DgsgEe_kt@pAeKLr_LA<-5%%k|Edi*ngj4? z?IDD-xOv(TryGRu?hr4S>`AG)IY1p+(KYj=7s>11+9Q_f?pw=qAzhu3K|$H|AG`IR%(yu*{5bQf+vrnKss#VmX&G z#n~8PxkYfY-3}{~J4}jBHCa-Sq5kx`Vt9^Kb@KYBNJaF6(Rnz?1rq%Yri`4b<)7B_ z?4s9VE^8-W|8&_(^!kdBa_m8l)BBCd+%a)eewjmGZmrd-KcKgOw=DIsr&{MEsa05U z$z|}j4gPAnUKIuAT-_I-2lzK~9c68lrK1WU0DVo-l0l1;f^rUpK3bUq2}-Y!dJRP_X1U!1bQ zS)s=P+(Mtx_!I&@GjUj%epP=>JL;JQ>Uc{pqdJ0LGn0j*kxmG`X#XKGn^)4_!L=3g zvZkfCByOOQZ0#K_cI&WI^Seu@KtB0ti)qA(v5-Lbe&OeugOdo%ta zWd{FYg6Ppir~I5A%+tMuWeKzgjJofR=*ZCa<&M@y5TzSH^vYK7eput{+oPvc-WFw2 zDmN|ie&kfr2dTslx1R<>N-_NpH!=4gx`kzhX)8i;!PHI`PVS_w6LmHs zqvy}Bu{bC2%%PkQp~6@`V*X4z$%opT>BrILyL~F3u185-vpbs2AKzKu3Ydawma(7< z3D=z(y+IomS`(GV@$jix@T5!NiSUKv`e~{#H+Ed~C;CqG&Tgd=#?-SjbP;~%!~k(o zzh=qKBM^8uJj(E>{mo}KT~apD$~>hKz`@KFzk(faLb-)f--h!-F`X5`$A^^8sZCSr zdeI()+|wPh1?Tz>rTZ+U)2*7Gw<#Lnk2VcSWEwHAu6d_MyI9{9tU3XC1s&(n%Jr(N zM8c1~ql~<%LK-|IGDf1kwRzQE+RaW`Q-$HSJdkfQQGcS3wGzqI*$4K~iu0qVl+XHe zE|-22y}%kk9;LAGZ~$4Zd25y|#FDgI7U@T>JcMl~tz!T?P0=$*BHiFo;wLQQn_AA# ztj~hx!ic>a&-JZTVugc%GXie5D;jv0AK;&1As+m1ijWEE9O6rD5zZ-b8qdBGdpULQ zDT7tc&3!h%N4joe;v+d#cXSalI(uNO6TaQH#>`F9_4BjiqQdYlil*PS7d@nWA!BJu zaII}l^szj5`j#EN6g5g>8*J-sT&H#w|8=J=h_p_(l_I_^E=X8Qf#D1WS};eTCGs2pSD66ylxKSMO<7z(U?xZ%2y+Io~rMRXm3Y1+w I75#?%561X$HUIzs literal 0 HcmV?d00001 diff --git a/p2.iff b/p2.iff new file mode 100644 index 0000000000000000000000000000000000000000..9104fdbb32de2ecaad4322503ef43d5e73ca96ce GIT binary patch literal 39294 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 ik-0MCpYS!Uvd3N5+4K!Z> literal 0 HcmV?d00001 diff --git a/p3.iff b/p3.iff new file mode 100644 index 0000000000000000000000000000000000000000..99ace2f8088c29f04068b4345153009196a2ec77 GIT binary patch literal 52426 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≠!<7x}6i#eZUvh8bNd1M%z5`1;@F@CFH~< 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

    kCrXi9{11y`#0dT7nz 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 UiyP9&8LwK)a_UPWat|T@3qUPP`2YX_ literal 0 HcmV?d00001 diff --git a/pal.bb2 b/pal.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..47ebe20f0cea227c9ca412d5433523a2b68866fc GIT binary patch literal 1811 zcmZWp&yU+g6rL`vSW!5@p@rK^RCS$AHci~LEXjHg1*r!PNIf9|2ai3Tm`yy<*d|>G zB*P5>e+~Cl_!l^L{}%Y(jGf(rCEGLKyx;G8BbukPs7fe4^1?8#@@Y1#@lZu-%{}@Seh-Z2CWC=Mta$V2%^$(_K@biGj~{)SWtpposg}yNIrmyg8wEK%rbpRi zGN9%sIt8xxn1g13WCwK~k}ycZ!M8TDBR!JyBpgm#i@Up&1T2QQcJBmO^9I}djI#zc zFWgc`x?9Rfa$?Or%1{(m{tF*YWp~(`Yn9nud(?_91cb%a0c!F$IB@+7CE=(~pSSE@ z8BjU}?QZC8GU|_#@X7Q!LoI$ zrJ{NRMu12K$(2bi+QGABG!vRXvW!ky`4thp#QQ=lX7n}j8v<`0kmZ(sOw(u7d_uNl zNZ*FEgXC>UmQb}}WQVpqnW9XEdR-xup3q^WhuVXeDqi-43?n&|9&xPhu`Zm>HQdZ4 z49~&yXaczH+*^I?x^{lkHhUJ?5G~lZRG;58QlCZIAMTIkIXBn0T%JX;JNEr$J6LJs zt{nnHFZr7ZiY}Xy_-Nm2b4x?mcN(ENl+#|Tpp~1aK1LIyJVp&z56P!zaLa?t-qSfa>g~=! zOt;c=5Ynw!2i5k$UjIyQehX|!&5v|C)b2kU%8&!ZlsxRl`@oHN{|i&79tO5~4==EP E0oh&SyZ`_I literal 0 HcmV?d00001 diff --git a/pal.bb2.bak b/pal.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..ee09d66abbac0a97d4c9c6118e5b8e51a2bf4dbb GIT binary patch literal 1805 zcmZWp&yU+g6rL`vSW!5@p@rK^RI$z`nCq@Iv~gU23E+)X^u*d|>G zB*P5>e+~Cl_!l^L{}%Y(jGf)WNMp}@^M20z-iYSOcqJBM@%2|DvMQ|;MVok~s!EYH zb(I&Y9FNB=k>x8zM^?*nEc4=s@{;mmQ&*%{#;hqZD^uH&Sd7J|&!}9+sbZ;QRi`Rt zbPMy=I5*Bz=xt@jGOnpIRF|sPMT9_(N~-Lok1a2p#FMb|=0g+Bow0W>lJWN2$@kQb z1=~e*7xktm?073Qro^;ryd_$AC90Ol#j16@fiKe&%>gxc1Y5OA=ca&UTo5vc5bqIP zmfNyo8??xaRK4cFTWhhk@ugVB?Kv&dysC^S>$Q`I#?owQ9T%6l8M1MqUA~>uyVU$i zNt;hFn|%Is;Jxrw!-Z&^g!!+?0@b=Dl7w%WKsNX3>ce0%>US0F526V*J^JT&n#`L6 zadk)&h`mqEuff#^!DKKHh!r!B-uw|<9|Yk5k>DmwwN$pvw%5woD9GtkdX!Bj18RPv zQ{Z}!IcNq*c2H+K34FxVuY9z+#AK_fCK{Z?L`3IBQVz+%0va zyQPdIr_|h|4A;TRf8oPP><(LVtuni7k6O`%fUvkaz-|1E>R24qe_ zxEo@djQXP_d^~*yIbZ#l;&BctSTy6t7>Ujm1+H|E-Re%!?=!_8d6@Ei<} zCV<<@y;ZlaYUej)vuBYFQG$I*_4!R9^;x9-;r>{jb8&si zCq5~h!Z-TT@BQV1Bhv5v-KI$W81>Nl7)6ls72#>we>RjM2Z%0t*tPe8Yw!M-rcgaJZ1Wx_uzvxWjp7La literal 0 HcmV?d00001 diff --git a/pal.bb2.info b/pal.bb2.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKMnhmU1V%#uM+huq;9~G$U}cD7 zNMR@evL^xY0wA6M#4SMa8X)dtU}5M1(rrK-#K6JO0i@>u#ijt&%mcD#0reIzh%i(E Q*$F`01;o8T+|R%T0D-F#>i_@% literal 0 HcmV?d00001 diff --git a/pal2.bb2 b/pal2.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..4619261fdee5ab888a8ff122cccae329cbabb019 GIT binary patch literal 2890 zcmaJ@OK%%h6rQH(L!>NVk+M9t5SdY2$DSrtu{%L3NGw<&!LsRM9@mqJ$1~y17&j6~ z13Lu#8n!5Mw=7vV;-|oO&b?zhX~ihE?>Y0G$34$D&EtOVjGghr^$3paRaEN><6Bk;;<4XaGp;$!t-dku#QnvK z!Ar8wnDxTD>HNIo=>Eb<@rm$hwy3$~u$)$DRu)9#uprzGc9@3!Nv5m1zksH3RwU{b zyJn0~sC9VZTBF+(TX)^V!KX)FFZQp| zPO}X+`U`h>)RR9C8nv2*=TwJLZgg!^^9O0`zUvP;bMQ0c0K&wv<21DZtb`hjKZme2&aH0t&cGYIaA>9h#twS#HT+5Anr!iQRa^+RB*4j-BSU z<6LebAb+Dwu70N2?{(>OTjF_%x=v7g>l!a7)I}Z-hEIUAt!@T14<4(DJs6GZREpi8|OjB7F=2E<=`MZKJbb%0jR4#TnaFb2eJuW~HOE zN5jzyVO*MJMRfor)xjde^r>ywt(N94qFp2a0b+SNz*#>6PlJ;(l`@rrikOO+;;Ldl zaunmuXN;MJI3bgmH&v;TDY;jAj2i7gWH{16O5>vJ@p$8~slsBS7UKgGtuawPN2eQ` zGM(8l>xZ2l4dp0$dgKei0-Qs(Z{^TCXMrgwZlDt`BFPC~1abdo8|}>=qV0_(PO(Xw zK)CnL-YF_w7r)3~(lMF|x%5t$f*PX;-{?C+Uz9pgy0h`3ZC_!v{VT+^1~xs;EzQa~ zHQcu7dl6wCC&=(O|=EKaCG6UmvKK=a7i7>8ABAFr-{qBp;~T6qq_XE)-OY{c#tXo*f2o8&!w zz}uLsV~4LE439>9UHcp1*Wpl@<-lp>*^12KTI}lEncbKa8*^e~N+1;a8QYT0!8Rq( zJCrgPfyO>z4zew3Jl5%tH{iEuJLZZC2W}QGcwuQrVhPb&&|j zuo8q-RZmKVDj}8dl8_MKP_33fXtO_%R@3L-_?hYLT57Sv3js;RbxOL@eN?dv_` zHfn#PM7}fUeCPYl%$Yg!tL-~R0q2!p|7K`(Xmn%?fG#w#p1uefjDDjr#u51GgIt z>Lb(RxYbKoQoCmX(6hR9Ks3)x{}_ zHDMm1-G!%BLg!Mqog(C#x6M46!2Xd(Po4=`_8oFtLH)LB4V{yD zV;`$_Wb0^}9m~p8d4x!2uQHl1&a{HVm35GpR)qf8%ReNcwIwDq$iir-&YJ`ZP^A`C z@yw1d$lZ7J@|cBwT9@ox2X-^m6{XoTxkt#&%;j=M{2k$<8vk4vpZSWiqBOtX*;2~u zC9$W@4&75ng6%Oy4*x{k$9$WGwu!n19@w{Ue*;N}4K9n-7(sYe7<5dhM1#EHf1SO5 zK0rsmv;Js@#XC|b^VwJMa1xQy zgd00SNy7a-6$hz`y6a5ONi}mk_wrl#tD4B)Q$#|cZJO2xdqG);$cy6_h{^ba*zg3H zD2&;||5mo(U+g}KHjZAWrStjW`<_k?@plf{=5{Z^v8%HWjzDCM_F5HjOSxCfE7fsYm>Is_6my+KVs z^Os+Qrgjd%SSW`Co|B$#{MI*G%D5zA!REO_`BdiMg1Whc%Q=MvB@$>Uw%{X`oAaIO z1uZkC;%xPt@=6I)y2KRJ1gLS?HLRwVp%VW|{`vIZ`e9C%Z4W~sPPYK8rXvf=4tn?9 z{oZ`ed|%OyHJTC`0js7(-c@WMQ}J0#B(;ZIEZiq#wgZk!h5b+gd+EYRT>-itb~CbW zT1nuRatL_iEunWH^(1FOd*vbDe*ha*no=tYJSMJ2MgFVcCo1&gUDV(Lm=T>M-Za*f zX)EUDDNkxzN=wB5Bv=sd^Q4={y)K=z2WRSp=dA-!0P2aOO1k@zQxq9YP&eTSm$Wyc z-vjc(eMHN|y9gXv!}YVgwiHnNqv#$Et0iM?CU5K^*#PVJNG0w4NHO}Ia>y#M3wKBw z7yavEusJ}Oywo;sS_)HL}&Aa?yf5cwa(PJog?t^Xf@*$n@|dLMw4fB@JB W96$!2o2QR!NMwMkt*4KZF9QGp_$}=K literal 0 HcmV?d00001 diff --git a/phantom.iff b/phantom.iff new file mode 100644 index 0000000000000000000000000000000000000000..fff96006355122e329b850b0988b45cfc35eaf58 GIT binary patch literal 47562 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 literal 0 HcmV?d00001 diff --git a/phantom.iff.info b/phantom.iff.info new file mode 100644 index 0000000000000000000000000000000000000000..112c465d5686f4107877039955787dee14fd587a GIT binary patch literal 438 zcmaDXz`)1=1M&=l3~UU{KoQQz7C`I+lR(fc3_$UnK)j&=CAlq{0A7M`Q;zjH?03q|26yvNd5o+|No#E^pAmo zpI?E&hW`YEJ5WzQP%j970Gd?+#Ks@&AIN<8|H1zM{~z^0y+Hl{Kp1QW%xy2AZZlwD zVEm8(wA%vi9++DsfNo*qZ(v~HLD(+;Yt;k$ub~C?|5m}>#(e$&10Vkcp#CF3_aM9F z5rg^%8wSn~1q{re4}cBf|NsAi{C})&6LU$;DXmBiNX*PD@$~exasjhIx;TKC&&|`v PH6${?)z;C^)0Y7N`-Om0 literal 0 HcmV?d00001 diff --git a/pic1.iff b/pic1.iff new file mode 100644 index 0000000000000000000000000000000000000000..4d9e502d3ba25261268a191b4ec0cbc6a64b9b61 GIT binary patch literal 53740 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 E2Ny&iE&u=k literal 0 HcmV?d00001 diff --git a/pics/combat b/pics/combat new file mode 100644 index 0000000000000000000000000000000000000000..0a90f08935b127502d552061de7e55f0894c3c57 GIT binary patch literal 62475 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 awAi#nM>M`eL)ZKGOoN4o)`2+&GXDd+r0Wv^ literal 0 HcmV?d00001 diff --git a/pics/combat.pal b/pics/combat.pal new file mode 100644 index 0000000000000000000000000000000000000000..650795d3fec3af26ff596fbe75b9093b298cc454 GIT binary patch literal 512 zcmWm0Pe{{Y9LMqJ_j`WNpYQX0pWj2#p-Trv>eRu}1fkP1N$^nGMt`7)t+2!b9qUvo zs7pPxL)+SF8A92_Q>84uji6Eq+r_e`og-r1rM10ZhtEeXszuVs)@_~7@>v#UVPYF< z4Rum)UfZl@YmjPaM4D10)f_^cv&7L~oCAEzIp~z#7PsAPb>p;!9&rO^+-<`{G+<8B zkk>;`$Tr&Nobv)|m!9%>Sco6@g5)Rm?DhS42d2LqBwi8{!f~u}>uEpp45=h(RwO zFg+rn|MExX3B=)^7@+$qhL=T}&&j)F4H6K6DH_&sa$BZhPA27$N~oK9!WoAQ`zf>R zDJ0>(nzCbZTJ~asj6l|_sw95Z8J5CHGX@KC2XgY3e(B9)+FsL--8YyqL6!5TArGUN z#UWMXMP1^qd7+HTn*zSVlrD;bS)moZ>UQ`GWJZ6)GM4Zy7V#Or6FI%6=gkNAvt5yA za9tj@CGs4XOc~epwpq2y=9}iYNrQGa@juG=hNA!g literal 0 HcmV?d00001 diff --git a/pics/gloombrush b/pics/gloombrush new file mode 100644 index 0000000000000000000000000000000000000000..ee3388192b32a0538cc6ec79a4f278ead1f8ab12 GIT binary patch literal 17580 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 NmAo$eOsO-B{SO?ee9Qm< literal 0 HcmV?d00001 diff --git a/pics/gothic.pal b/pics/gothic.pal new file mode 100644 index 0000000000000000000000000000000000000000..0d9085b84d729e9898b3c5b12f03c7e29ecbb7e9 GIT binary patch literal 512 zcmXBRPe_w-9LMqJ`8~fs&+qS-Zj(-Pr?88ef$R3T*?HAgI1F;ED9OW2qoCtJw#$Zx z3c73!Z7Txv5Yq~jVxX&_ppao5#Qs8C2nmI(joz=r_jCVR*8iXlZJMQ75+zX!I$9lV ztKFT@tpzQf>*!>4<*Z!y*as{N`E8#auzFCyzJvY9=M3;3$K!{HU-+DmT_heV*vG7c zWEhok0`)V$^f@EE&+Wx|ddexF6Luetp#YAFd+rgHCsSh49mZvrkp1L>7+_&pan9O@ z*_2!qy*e*EQYJHE#ks_fx=9@5DLlk3%H!^|3gXLRP>k!UJBL^C4K&EE$ra_%f}2)r zY$h-t0W^{suZoV+wz4>6HkxRA-3Q&cuBqGvns?gGEB1Q6~Co6WJ#Y? zMH=BxaNML=Rb)t*-jyRdZ9F-z<7(D~+y^*HAIg|oqMP!*K5dFD!Yg>ol-Q`K=rLK- z6Xr47H1jMjmdO@<w=i~-S!W#R=>uS=xXWLL? z6MCKQ$cDb6znZJ=8~g<-Fb3Q3OV!O!@me=wo$aU}W}kn;O;d-@@Edl`cebxS(kA?Y SY1K4)@E30Cw&{Ev_Wl8g^o&FR literal 0 HcmV?d00001 diff --git a/pics/hell b/pics/hell new file mode 100644 index 0000000000000000000000000000000000000000..34ec1258dfc5202ecdff1eb5205c44bc5f1df13e GIT binary patch literal 59592 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

    j^bZ{@^X4K=pS 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 literal 0 HcmV?d00001 diff --git a/iff.s b/iff.s new file mode 100644 index 0000000..47434c4 --- /dev/null +++ b/iff.s @@ -0,0 +1,48 @@ +decodeiff40 ;for 40 columns... + ; + moveq #40,d7 + jmp decodeiff3 + ; +decodeiff ;a0=trimmed IFF file,a1=dest bitmap + ; + moveq #80,d7 +decodeiff3 ; + move (a0)+,d0 ;pixel width + lsr #3,d0 ;to byte width + move (a0)+,d1 ;pixel height + cmp #200,d1 + bcs.s .hok + move #199,d1 +.hok subq #1,d1 ;to dbf + move (a0)+,d2 ;depth + subq #1,d2 ;to dbf + addq #6,a0 ;skip header + ; +.loop5 move d2,d5 ;depth + ; +.loop4 move.l a1,a2 + move d0,d4 ;how many bytes in line + ; +.loop moveq #0,d3 + move.b (a0)+,d3 + bmi.s .repeat + sub d3,d4 +.loop3 move.b (a0)+,(a2)+ + dbf d3,.loop3 + jmp .skip + ; +.repeat cmp.b #-128,d3 + beq.s .loop + neg.b d3 + sub d3,d4 +.loop2 move.b (a0),(a2)+ + dbf d3,.loop2 + addq #1,a0 +.skip subq #1,d4 + bgt.s .loop + ; + add d7,a1 + dbf d5,.loop4 + dbf d1,.loop5 + rts + diff --git a/info.bb2 b/info.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..e8035237d68909f0d64f4b1bfdac0c9879c51a34 GIT binary patch literal 220 zcmYk0K?=e!5Jd;wdWf;Bgp{CdR}DRZ3(wG+DuJmfNf87W!DG4e8U?Q+wpPVi4fEe) zK7>>fC{Wu?jJ|AIs!`V`v#XJe@33|DAf+4#T|93r($-5dl`Gvj;^2yYCW&d0W*mQ` zoV6X8DRUypcy2IUFhNx2xVJ!4WW>LPYJ9i^2n!@Yq_;9GexgZaE1vuB^>M|1&b(O1 QLxqZY&PV5iatL>T7s`!10{{R3 literal 0 HcmV?d00001 diff --git a/info.bb2.info b/info.bb2.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKu5KjQ&7NB?y5ce^#F!TWFHXsgS;9%$g(sO`fQ-Esb0ok*FdJ7mt7^;Bm P1R(AL;$9%`XW#+=HTDzh literal 0 HcmV?d00001 diff --git a/insdisk.iff b/insdisk.iff new file mode 100644 index 0000000000000000000000000000000000000000..b4436279d43eb48cbb5fef7155643a035e7e7f63 GIT binary patch literal 13202 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 literal 0 HcmV?d00001 diff --git a/intui.bb2 b/intui.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..fe7aa3a36bbc76fbba765f0eb585a99647498ee7 GIT binary patch literal 141 zcmZQL&!}La1A@jz20EsOMmlCdwvrM^h=IY{IU_MIJvA)ADYL{ku^=8O5}aI=pOX_7 zkY7{+yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKu5KjQ&7NB?y5ce^#F!TWFHXsgS;9%$g(sO`fQ-Esb0ok*FdJ7mt7^;Bm P1R(AL;$9%`XW#+=HTDzh literal 0 HcmV?d00001 diff --git a/it b/it new file mode 100644 index 0000000000000000000000000000000000000000..424e2ac949fe2f62207d0255bf98809562163505 GIT binary patch literal 2296 zcmai#ZD<@t7{{N>y(E-t4H8;uMJGv-SYvXjrKp6sm*kR5o6N-|4Q(j3o7^VZ_U`uF z+ewon*i)oPkz%D3DWymW1^c0vBBFlKSVTfmEd5Yaq)NaxqST^AY7DpjXLp+y4Z85# zXXbgGd1h~p$p1UJkI$13zMqNwKS{|y#5B%dndWRex-c9A2yYGH1$j-;kik7fxo!w%`zs39!YZsf!uac$gMRJEZ} zucZzhbo<7z@7TC*A^EP1rI~3xqgqICZ*gSjD7 z&%*4w^r)E;jr!G;(C(|c)Nws6(#$ovajkk<%Q#J65!b3(DzhfC8cXZBv}z5FQj3vJ ztC=L$nVMkgn5w7L!IZ}I3~TP}=o?^ZBdJyXhgY<#qdn?*#gM00OKC$^eT$mY>RYv8 zRiu`BIOKh9B)@KdEmx%UUGwBEPu_E7$>W}E z^yD5-TAn=a$th1>@#Gy>`ZsXpllg_~!(^Z5B3!^P<8X%TBjJK=+l4gQlh7)T&I~J# z=78&W*oNOe=~p25^>GnbJkPl2sl*j%Z%t403-+u|c0?unOy~E0{|fC!XfOUt8*nvP z5$=^F*|n(pvNvX2Jh&IV0#&Ckd(4CWZjLR`TCC9lKg)nyFFqUywxOi`YXoQM0T=X~< zxajpHd$fL%C~%ibcn)1)xK0AuFh=W~(c0+zUxgpzEJE_!WXw1hk!K*saJMCnUyjZN zsCowTS6E_q+!;+eegQV>tEir%t*{-blr=DREs+{ujY-p!^uP#q+7q3P?b;Se+W>A%B3x_GrFfz9^g(rc>;+dV&m+XC;K)XL z)sfrjHAilv*Bu$5H@x`?E>N@FtyPsTe$HQMuD5n+*#MZJGxWIQG=Ax?W z8Z@5YZM)8iM=}2|c(r*|OCYlV4X6EJ0CWQdYy)+m22@}@eSm{F`f&_=2EN67Gr%`d z3b)Wba0kqRAHc`p126?n0MrTX22G#}ATD?kSO9f{JHXQbb%T$9_4ur@-oPwCt-v_e ze+D4Nk2Uy@fS14+$N=Q`?*sjSgEr8Fg}o0hfeYX~I0w!Gv(hY%I} literal 0 HcmV?d00001 diff --git a/it.bb2.bak b/it.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..9a1aa257faefbb77c97bf7a9247b8da4fb2ae0aa GIT binary patch literal 80 zcmZQL&!}La1A=BI20BKjW;!N1Di#I?20BVgAYrQu%piFNhO;1bN-0H&>G^p;83u+1 T9ffn83P8qb4u}arAua|0p$HIu literal 0 HcmV?d00001 diff --git a/it.bb2.info b/it.bb2.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKu5KjQ&7NB?y5ce^#F!TWFHXsgS;9%$g(sO`fQ-Esb0ok*FdJ7mt7^;Bm P1R(AL;$9%`XW#+=HTDzh literal 0 HcmV?d00001 diff --git a/it.info b/it.info new file mode 100644 index 0000000000000000000000000000000000000000..433877c5641d56afc2a28804bd674536d8d56dc5 GIT binary patch literal 383 zcmZXQF-`+96hz0^3Jqcd4T%C;*orDm3W^}@7CuNyDinzp;ZH>uEV4oyt4jn+$P= z1E?A4SaDEGk;U_QL1`&J%FE=RXJ{mORg7`*T&<-h*G$I+C67yCY)M@GU{jE;Wl4uG z6j~LQdNsW$2)*;L>~^&9Wf~Yz!a+NaxHE&iRdb7p2Mj)0IIUTD#Jq&L@va@%ilf!cX~DSY%whhETk^ F`2+TiVs8Kd literal 0 HcmV?d00001 diff --git a/it.s b/it.s new file mode 100644 index 0000000..f5396ff --- /dev/null +++ b/it.s @@ -0,0 +1,26 @@ + ;intuition routines for Gloom + ; + +initintui move.l 4.w,a6 + lea intname(pc),a1 + jsr -408(a6) + move.l d0,int + rts + +int dc.l 0 + +initdisplay + move.l int(pc),a6 + + + +newscreen dc 0,0 ;x,y + dc 320,240 ;w,h + dc 6 ;d + dc.b 0,0 ;pens + dc 0 ;viewmode + dc 0 ;type ($40=ehb?) + dc.l 0 ;font + dc.l 0 ;title + dc.l 0 ;gadgets + dc.l 0 ;bitmap diff --git a/joy.s b/joy.s new file mode 100644 index 0000000..d0a6cb7 --- /dev/null +++ b/joy.s @@ -0,0 +1,30 @@ + move $dff00c,d2 ;joy0 + bsr readjoydir + movem d0-d1,(a0) + ; + lea $bfe001,a2 + lea $dff016,a1 + ; + moveq #7,d3 + move #$4000,d4 + bset d3,$200(a2) + bclr d3,(a2) + move #$2000,$dff034 + moveq #6,d1 +.loop tst.b (a2) + tst.b (a2) + tst.b (a2) + tst.b (a2) + tst.b (a2) + tst.b (a2) + tst.b (a2) + tst.b (a2) + move (a1),d2 + bset d3,(a2) + bclr d3,(a2) + and d4,d2 + bne.s .skip + bset d1,d0 +.skip dbf d1,.loop + move #$3000,$dff034 ;#0 + bclr d3,$200(a2) diff --git a/key.bb2 b/key.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..aefca12caecdc6ebc3a3322ac6ffc17bd217413d GIT binary patch literal 502 zcmZ8dO-lnY5FPv_W3xhwX_>91mR+Qvh(!>k_2c3t-6T-lw$N2d4@!FW>YwsYiIZ%^ z>TTxbeawqH>XZP*$=7GIQOuO;tW33hSrw+y0&p!OaeDwYmbnAYA$IYmnBR>rM*EOMesz6+ zjv}!{GSSwi1FA7*M>j>; literal 0 HcmV?d00001 diff --git a/key.bb2.bak b/key.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..148e79f19580ddc2923377868328d9b9d98a9c42 GIT binary patch literal 437 zcmY+AO;3YB5QaDYlCf}rxR9YXl|W2mTR#p~YmItdU^gK`n-q=d#q8ayf66~)oB{m0 z?Yy(k`_7C#3@ah>$ zqu$BBB}DzA%BRFWfHRhEW;9}y*d?@bk1&1kOV~Z4*aXtM)%nG~NIU0Z*ax+B2JDt& zBnuSwEzH1iN7zPaj9P{igCrHkL@|<-@+{D7Y7I@U)ORqu1vMz6RewazK^!rDdAs6M#QZ+Fn$sYWFyKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pK}TfOrBBw*bX!fVhu=g`o#Xw*hew0|!F~ke&k+n*vlb56GSc X)LXzH!cYZdCjfC55cdLcKLZy4--i>9 literal 0 HcmV?d00001 diff --git a/ktest.bb2 b/ktest.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..db2f3f58ddaf741ba47399043614a52ecd7e7527 GIT binary patch literal 146 zcmZoL*2`gFNVffVQbQ>@Gci%GD784hv?w`MNt1!0$o3YKUXDhxwu+evklUcCkZ7P& zWYrL+plqO{Vw|FpXaE%c*8`N|VqmZi$j?sID_1DeRxvlwF;K8hPc1@Gci%GD784hv?w`MNt1!0$o3YKUXDhxwu+evko&KPp&?8` x*+56dI7K7T3@FmT#lUcjQLkK~NL$6+K*vDAIz6=nAz}m)DJU%gYVBoU004&W9Z&!O literal 0 HcmV?d00001 diff --git a/ktest.bb2.info b/ktest.bb2.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKu5KjQ&7NB?y5ce^#F!TWFHXsgS;9%$g(sO`fQ-Esb0ok*FdJ7mt7^;Bm P1R(AL;$9%`XW#+=HTDzh literal 0 HcmV?d00001 diff --git a/line.bb2 b/line.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..65d54435c207f4d6c3529a0ea4abc420dbea686f GIT binary patch literal 707 zcmaiy&u-K(5XOhL{J#UoX-^5sCb4OwRZ?Fn3I~MBfeXig2#QonwNA6P)q@{^r`a{Hk|K_u0YM&lHd;R9sVbK$Pzrj_$*IaI5shZVIqRS10JL7vj z%3|pI9i)BE-|linbb(rPvBmQoqCFVKm)+^nV)!teV2`Nr%Q=w|YBsMPBW|ovSYqg6 zNJg%Ua$S^4?$y*j|D?~}^6_x;cSz{_7bFWFegplN^vmiWZv3t2g#1178$`iXORY9y zUmLj{zMzj@jY^7q+^eO0kPU?*d+&Hi@G2T9C7K8Ne{UjYD58Br!q zoQsq+Zp^L~4r(N7@~S44y;dzP)t5U7tjvH&LHekTN{q;iOv?nk%*izDYsrl&(H4zX zq$Tk6E>gW(UIm>>pk{7N%VjWR75W;B^!1*Q_YW8YFpK>oL=ve525J-Mmu`d%N3Nd$ zp1H9@!=$Qa>Qud3g2n!vVFw(mU?pNKtu`4iC(|Z8p3LT}tz=>HDWxf!I`R*rqs#_c I6u3zG30rQo1ONa4 literal 0 HcmV?d00001 diff --git a/line.bb2.bak b/line.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..bf6c311096564e777422040735ab86af1ad036d3 GIT binary patch literal 583 zcmYLGyH3ME5M17`9w?VoHg;^^38Kj6nh0nRf`W!JLKs;BgksCwSt$-`z9uyVT{_?g z_!gLRBx1?Bnc3ahv5&Ijlhdo~%abT4`dZ*5JWRira3twuh3I<`uv6WZm5ho!??AR8 ze{OI>G(|0)E^|Kw$p%GrK76_u6?erWW<(FK>=S9By8UDyI5k4yXkpVr(sEvu^P*Jp zut#>4?~6wwyGeGD$l;8#Qj4Qf%RTovesLD^&3*C2c`+)hD2m8#aU+gY!gj!oY{4Ge zwN`hOn1A2g2iOl7z)xurdyNyKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKEQFx_iqO~715s+mM43~?HV3=F?~UFyNd0W88t@k z)K#^Gv`^UY4VDw#pjO( zZ$MTqGVX5M$-bz*{A@0d*;#!-Jx9o=F!SOAOp38gg*)A+1yRHQ!NNgkS`;6^f?)r0 zrsq+@KUa?uco^{5F^x9WKk!sL`)4ngS(3` z!b;TStR}TvM2aT*`gH_S3PcRjd1G~C1-CNJBJg-8T2oAhm>?44W6<<0TW(K+cc)>v za5&sJ_;4c5Lf&sOc!4eE-(e?Hf#ewO<`y~w6z@!le5>=KE%jg*a~$(m43+_K8oa*W l(R7XBpXZGYzdd)!bUhl|q>ZWNZAt!ZFNM26>jVFa=r3@V;Mf2F literal 0 HcmV?d00001 diff --git a/line.bb2.xtra b/line.bb2.xtra new file mode 100644 index 0000000000000000000000000000000000000000..4a1d1bbb24a008233e7e6aca938d94e42f84c217 GIT binary patch literal 1206 zcmZQu5KjQ&7NB?y5ce^#F!TWFHXsgS;9%$g(sO`fQ-Esb0ok*FdJ7mt7^;Bm P1R(AL;$9%`XW#+=HTDzh literal 0 HcmV?d00001 diff --git a/littlefont.iff b/littlefont.iff new file mode 100644 index 0000000000000000000000000000000000000000..6b5f5ae4dfb7cac7300965ad555294d6af6c4ba8 GIT binary patch literal 1584 zcmeHFJx>Bb5Pf@aXpjO7^xP?6ZDN1G;YZ@h-g$Eu?M#TVGLeY1`~-i86+gkhK}V|+ zqd-Zbvm1!e*jSlxo6XL9JMYcj>>f4)4@m8uoYuUWckBYl3rFw*7*K0^OX0d#l?*aG zKZe8Se*dx8bEQ0Ie9MVTpSS_EgMmvpys?-|Ie!W3!Pyb(H~C~w5Q)U^7+Bq3#_YmB z__II9RZsaR0f}1Ey#UPg0PC^nzyx2m5m)RHCP+$xBppQ*5=R5Y2DzxJStAMYsu}z4 zYG;Ho5;-IV4A9cD$a$=>29eTM&)vaD4r_D-{5P4 z@O}BIAf;Wh!VXbDz}!2Ko$;kkI6w2yxQ?wBMUhSMzA}WEAypJY zqU0#7)WjJfZBskHs@By?A%&$N=!8?e!Ej)Xl`1OVAGBlIE!Z|yw2$!NnEa-SQbMYe Lt;f0p|E~kzu2>p_ literal 0 HcmV?d00001 diff --git a/littlefont.iff.info b/littlefont.iff.info new file mode 100644 index 0000000000000000000000000000000000000000..1524e09f5a93f228ead03c7faa695741f6a9e7a0 GIT binary patch literal 466 zcmaDXz`)1=16B+o3@i-HKoO3jDKJ4)nuURZqqq`?qZ)t`AdCS(rZ6#ZNd90(k*fa> z1`P>dQAQxm4isnv(hla04}da2nmGZe8%T5iU}uN}(u{wY8|F6x)$y?(`v0&Y zfpVJ8a<3M`)ue=U7C?7TV(BUHtAn=Y03@JDjV9u{?B-ULVQj zbNOpSzy&U%?2YQ`=)ge6WEjjlE@Ud5%sY=Jc#u5G#=Q{huo)8u#8sC#4C06|3@eq2 zF~-wGt`1yn^Vw|HW?a|xJg-zLS)f|220>uqX0sVZQ5?q!e21^_5e{GvwqOHRVHwIW z2h%VK1u)ja;bF3~ldP{N<#IALl^By~ZJWr`qC7V8K+8Savot*FnEbQ*OkFXc6m@cAG|ndi|fF5)%{F z(D0a(vn%MKkM6;-(P8^O2j`#J9i9=x|NQCLcCqKA{x^2=o&G&^^^z+L-Lm_?l2(esUQnW3wDZQO{Y4QKR8A4GXMYp literal 0 HcmV?d00001 diff --git a/lives.iff.info b/lives.iff.info new file mode 100644 index 0000000000000000000000000000000000000000..22aff80d64be2e5bf99535e67440285eea76bb98 GIT binary patch literal 236 zcmaDXz`)1=1KJE63@i-HKoJh7Eige;nuVKz!}Bu`UughJfG`FCnZg7#A%qz$CI10L z)&BsI|9}7g|GxoBLPWr_4?vPo)8zkv*!BNF8k3zvUfr!T?qjKva}GOfsj-nVpN2P45GtG11_kjji5#clS*d~ zTZ4$G2#q=;&M+8vPzH)c7DWvX!{E5k2nvpiW_WLP#<>NLJw|;aLW+ z7AvDNWc2mLW%%F?sG46PA);!U5+%g%mt{p(yhKqI)n8Vo`Te0lpjp#e^k^g$jYhAY zP&|r4ky&K?=n3Pl#(Rm7-mQca>=!;03o#LL;q%|-?_`Mc!e^rN{^sI(CXX$<2iHfAA~vzvu6_gk^5hI>>(r(c0;2c{`zH zF_hsa%d5suW`4X))TrfRdI$NLkbxb9;goj5no`j0G(Ma_iKMp^hRtXvKVnR67;vQB zsOvzT6Yp7(c1MM|cN-x-l(GTzkp9|E3xzlF-bPCuezfIZ2jO#ss3_%jp!7-&rJRaV zGN?4-a&;EZ*~{Bhu$Q7j%sasQzxPWy)%FFuRn%ojQcn_r3ktUVG(v6xWKtmq&y zP+?gTFBLmbnpKH*m0M_QPb@%DVgicO4x(U^OT{a<1g~Jl_ES3%yYJQsx&62w<=u{i zjdHsc?YUhjsXC^07!pBit_`gViqN{l6G5FP7LBv`R67xpvou0Br-2vy>v|mgaWv0! zD1>~lSVr>^+vDK28Er%;*1^3F6e{g5?4m6Z!gLe?l`ZPTHst}t^sV8bQi(-rr#20AE{+~+3(#^l zF3G!|=>8Oj=bhd@#yI$;R|=9t|P$~goK4Ew`i zor0rvEao*(7&`i0XMr6%OQ)etF^aiTfb+)yp0@(cxt^Q>-VF5!5rAi}zz{x(8jU-_ zTRi~(Or))2@fmJU8KZ;L*iUuBohzW|yx$m6(RJWP&|GNRD-ld`ZmK!f{hHQJOe>&B zWgr?KX{D?ub#H^pm{_j}5f5#JEdx3R)<*0Jtr{WhxR_3unY$u@ks$%V%w@wJ#H788 zUN3@6k+;!edoqjW42h^jPz1DKzKzmy;huIs1%)ESLr^Lw#$o^i;laNsU?s3iCuX%k zC&VG!by{IvexMmhArzUxFw2BbQXtDsn>FwwqgcTF8Bd3lbestgBL0Ax?gT8MuLefa z;FD-94LGb3bLCdNP0|$b)K2Wo6mBiLe1yj4)o9DvuH2&_7Y1k~;r@2Q8KDt6gOkcyIN7Z7!}MQ zSu;lF5W$L#>d@gtxqGY=q-lpATPpzEifRv}#uXVlK!xq~?h^>fW%jEiwF(tVl^iF* z?}`nA^d4)`NZL45un*;d1Z7H$*$C-Y^$!f+i;7HXmqEksY$Y*5iaG}97y;UzCt}aI z{?k&8%w+s3$s;;y+{K+#q}d185Yi`W3?X^25ghmCanw_Ws}5!nk`gHf`B_*ql1OD` z_jL4%X{0i?MJGj65f^BrB+asG#7|U}$V5fW&~0sg3T0>9qs@f$9se>R@=F?Ol))T+ zfQTcao`&X{WsMA&1cl^DZ3dCp7K2EviwG2g84IW+NnH#gYB3=JivlQq+k!Hq#xefo z7YRwPU!)P`YaKO7`8S3PB22S985;M&J~^#rlFRlaNW%QVDtNYf$Ow_8H^1OG{h!5i%_Oph|KQ z!k}V4qWg`pNX{Y#>$^_Di==|AXb`cd#bOO6KF?>04vLtVNkI# z=0h;9tioVkV3~8wvBMw&BT%Qvgp3SlLoJqbuxtj2E@>U=fKu8i(0Sc616G$p?Ke7A zqL@?&*y8d~0ozg)b&N&^hL&nXUIPj#$0DGB3UgSwnLwMs^&E24YL^bNe+K89uicmV6I%vH#=UI2Eo=aAWq&e;-ty z)?pa?QXPW`&$O~2LXuFcqFg30)aR966l=SbhTV}j?P@}<`0F8!u>AqT+EzSh2+Q>3 zs;99Ile?>g-$(hqQww*HGsMIb4(Puim{KWC;_QgUh-hGYe#O6?du!Eauo))>g;;)v z#vJ>4DoB7&n=}m|$=~E?gb9OB+k5cqr-^X%-=IdFG$&UP1e2v?L z+Eh%{D<9|ucm!4)8%l1WUF^1{C66OazxO?$CsHumx+4)|Dm89|*m-{)v?tY@lYa8!{~Y{&lpR>#=rOlEW7KMAqtVGFUT;$5sV|< zm%T?L{O#99piN4hkF`b&B9JHyagsj>O3heyF@#I#@ZU6u*h%B{>97&9Iy(%502&s} zCL2iRKF?l*ap*)P95li4nnkA-(vWO2MkiJ^fH_vCK}VWdF$PkEf#}4uC3fjR?0v$~ z->F0{iiP3SD8JHcL4%6jtPoJKz$OvfTeJotiQk}~szk?V#I$9RO6*rtaiyagGo+J> z&O``@=!A1t9y3N_=eNW#5}SWcn6PFFWqPuw*I+EAC`L6Nen25yF|A=6dZ-4NrN{|o zS(FJXVP64}hTJ$24-}#i=b?oWVn-0pi4T7oCz7N@$7;mp8LAMoVWUkAR~Zr(z%FDy zbqEOE6{k@W?~`;j?cnCDI zfI=~+{;X4WC2PSC9}vRSiVzod+-zH&Y>b01_+cBAb(Ihy1lAViiZSw{YT2U`@t3om zDv5E-BL)$hdGN`th;i6@%tjSZ%;?uZ3U5sL?0e8`QzAR@W@JW&jJFmD4(r&wIh$T$@~=QdC!^Dz(wP=$;^ zg5#d!Z$;pEvMEAHmQmhG;`4J`02F)hJc+Fx@o_LIcQ-&Je2Gpt4Lxprp_72w%z`RY z3<^{tS(78i@VKo~0m@IRC@-Yt#At65JI25%XltC|wh3}1GUYZ7LLey5o4ipqI+-mGPO|i|Lpl1P!V*X#N zUPbY?DTJ6{Wthr)0;2>dC(5jQ&4dF^V1NvY1>3# zj-!}}WKo*KgGZCM6p$^KK-wwy3IqUNv0;r7+TURH0%~kE388c+IOVsY(ZdGlwWcr% zbHOJ!_B<%7(0GtZr>Kz0{~Ib>Pwkg!*JSYe9suU17_hgB3QBwY7px9gx{3au!ah5b z!fpdB`!Qhi7aFh=xh_~{3gs3tm?4<+u)ie(j>_PXxMWv8PG#^|8HQVjQvMqQ;CGfV z_{yMsO-8ART}E8qbOv-vRy6i&vDH!ZuiT9O6tz5#x^_t!N@pShWSUUwSa0-y&=LV^ zGLA6FT$Bn3Ht>VRzM5fo#OD>LbRrH%--{3@EeA)Y;U`e~1v(91Yam`h^~{vun1kd} zC?MhphCK=})?lx4HAtE&GdjWA;_TgS@uRfh6iOdOw^Czs$R_d{z|>O!t3jzZYOrU_ zQ1;YGDu7Nj>DOp|Xeh_@--~|v=y%O5gEee5L8FC=K))CbvuCdXR^-&tAm;4^Yd02z zHJ{Z{@TVPkQ7CJ1FvN>!yAP!t1-nwdz#6mT3?UKv*;*k+D3}ke+R&;K@e^}1N_&?; zBw>`!j1SgN{6M^cmQut7Af6_C6+RcopVqZDt$ukjwYg;4qu)}n#uJ7EmhSRkf- zU3iQkJl5cwXDI5=l*5Ym z$EeUS<~8<4fKl6VJW1z-GlIqy<(&}aafk_YE}6;!!59z_Zye$*7(j1-XK$#ivo}K- zD4%Dv3lJTpuCCs487+ma#I)96sFcpm^EleM5Tt46SiG;7`V+<_gI5KeT!CNprDX=& z1sq5)h2>~Q`&JlqyZW|**pv(X!oUf15&d;XwxSZ`Ff<<(J>!zFfkzbA#jVj3-2Vs6 z7!=~YE85~@FX~OXaq%do>o{;R1f=yF2=EdFlboH`N&gPP4+J-MH^#|}0f0@0hTVXn zt}Zd0pv+bnQm@2O1JeQc_~6F~3J{9w@KUKEs%(#8L}-i^2`Td$8f&NHBZC!W&Rl3= zzzH}ah5Np^X9o>&O@nFAowO%Afe(L25qQ>M!>AW3X?;vPg9_ULp_zWDgiAexlCQ9< z5ifj119Z8#0SyFVTUx(E%kyu~zq$1E{5y!kdyc?_9y*5(^keKC`Z2jLK;iTliv*0% z83*xMP*4-lsjDZV#YS~e8>;E7#}T|vD5VRWP<@tLoAIBDH+op{+Bt=x>!kNf-@uI zHICjl7w9Dslq9|U2l~2AHK=C6_^?M#bP%cg_G(PoL9L~6bVyhR&o<0&8;x|qVI@8z z&_r8cqis=agHf)sz+Qe3{9IiN=)}qeMsXn^*u&qWMA10B4q9nQi!gC$$%APG0+~i> zCpe_t1s<7aplDSUg#&wovY)4=@Q#>Un1bveNdvdH zQJKULC$i!X=qwfK4}+xVaYP_EtzsIMYJ@$RfC~2`SmwmpzK5bPi{=1#&1oQrORym( z>;eOwnQa5nFpQA6LQaa;=qZ!Mnn%4iAOx6qYZ~}97k>}vqmM%ez4=**$>+k z=K`PBjtYtCc^4Wh521k2pBzBGmjDMgX=ro#SJs+V5SRaOY#)=<6>eL-E9-UH1 zrbpvgQh4b)&c=Z=1rnGyLJfqIL4gz7K|yR;uFwiD>!GOu0J!}C7k^UlwsNsC3c7D+ zokuiU9@X($sTokoIB06c45CEDRwsScDkBt2WJ;@!LLi74CFVOBqFqly#xT0Svnmf~ z6*4GE%n{V^{aZDo#?AZjQT!HUBqjnduD|FvYA`$7jAscLEuLHu=e}6fs8IcX{+KWa zc^~brti9kR2R6J+EG6a%4U6lM%)NudW-9l@`A-p~l zVdgMUxfj%VWvFt23Y1URoCw)b-NdQPSunAV2;H^kP{R`$DwU)-l|E0-+K*884izXNPwmjX9De=$a(2IArc7Y7^LRa6f$vl*oJcJ0m8bpm0c7wH?aRH-` z>CFA$r)j8y8sS3;3^)?vXcAr4%|Vpq6?!LdTPK4kSTUk zGPk{s>95W=BqK@IG8qStZ$?nVKfN1Z{qkiRa~SaujVKrni=O>SM=9DEy1#@5ybPXz z<_fRp;-qcOX{h+KbpU!UeXY?Ye#0;i%3Td!_PZw)npmW)Q zXD3F@q^hdB3GZ;@p}QpPhAyn3jRB*Esi@Ep3mw@_Ws?IfaO1~Np$T9HRPi8JOwq88 zl;5CXOk`UZjbT+)D+%A%RzUeGZGqwV;ifW!247L35N`BOI%o(u1rNK>UPoL}F4^ASO-;8}M|) z0ME^uXRZ9NNhMN~k`+4=7mzg4hlBM=sWX9Lni$4G?2_SLgQHwl&m~OuHzD{wD_Av+ z`$RP=ARWj^BM6!#Rs&hH;))NVu(D$wHNx>h7-Wvc$&^g1!>qdDE5sTSqk;@~Xt4Xh~TlY1S*UIX}Lj~;kzjY(632EsJJ>w z2*ubOGOwqG={O=Fk?ND;eS8D=x(ONm5{NS_Rjov9pn-O(&C3#&s5Ka3h6b(ptm?1G z%%l9qK*ke06ESK8jqwxHGCmC1E5J&NMHQpMr!j8A9eH{MmYP)q@39{ZEZps2U}TtS zHI#fZx|nyJ)_$8x7NHkPK$DNf6e6r3VM?F6xip_kH)_gbu`I&wCM%&J?%#e$(wEvs z;_(j0oR^@+sSpCKoS|Dvu?UQ1?fM}OHBMt5pb^YEN<=|T(rb};%|MMA zOSr``1h*n*LXGLQZww8y8lw_&Kiy4POgF%?4@g*E*CbX zMls4qR&;D4;!m-1$}iP?)*oY?G^(phh%j(&OJ@(}AtMl!Y{e|DRZO7g3=Hd|gDE*j z&|5C1*Ep6+l!6KhnO7AU6pA*t!{dK<2EmOOr|^yunM!=r3C?ejS}2f!9=3*{(IaEF zV={tLDGVfuR^kCAX6$Tikl6$SA4{1rcfv3F5%Aw%fOnpW!;9YJ2&Dg{j;>2Oer3e;QYbb_iV0_pVU{skqzuf>Q=l9bYfcTU!yE@?~ z4~MkAKCGf`wGR0ARHK7!^;s`5`RPFiDM6i8qs3yfr!|kTei{(KhY@VS0NyPk9wg#w z5;+fkrp*9JedxZKgnW_X2f&>=z`rrL5zY07L&T&O0>y@&0i3acAjaUBo< zSGiq-9W+D{=T>AF%?9e2d(izWiuw(p z<*wfb9{Vs5>L~C%7Xy!IM)Bzl6=@<$51oU+!(*qAauI`N+35#56Iw6+Kii2_*@Z>0HDH+;ajgAUpxfl-z&e9&o1z95jq{kH zl$lamXk0Eq@JAU0;NK~r$h3M4Ks3VfHZwX7r_sIsbs-e~9fcpXv>{Mo@&ouh3ZM7( zHMj}@Wbefw*q0d~gN!vKGR>IOWcUV@PDZaq;0`Dz$`3uVSQJO0tStI1l-b5I7r`)4 zEbGzBj9yI>jG>(x00vD8G$K-sH05;;7-LhgUYf9zruMYeqeJr4q~KT%?H-I{vJD9; zrl}d-EwuPAlj7?oWCke_PJs~&RB(u%egP~Z`X^14O^ItO`b|&{J6+sMy5>A6IHdxX z3QmpD=S_@bmL>v|AJa8_DL(vWJ34YW`s9m$eg9DT`xn$fTGh1||jzNN9`Gq8G+|5z-@=Cv2A8m~Pne5Ia68#@b}cup43oiou@7dE>9UlOi;H zBx(#sfiq>C>aTn2xNS&JySqAz7&934970i7U&_8QLj^cJ!x&Q1^eCdtg0?v5qP-Cf zFtVhbpyP<($u;Alv%IjAKE*I54bNiMsTcR>(BJY~{hgit+v6f+TdXSL9UlEPqrb?O zSx~~l*>?i4vZS5>Cn7kYqwr7!y7)UGm=+rUi7=t0losm|Lo#K!JW8KrQ55hiOH>OY z7ZG&`p$O#_Xw1=bK`1&C)`6bXuuOeiu7*}v5v7nN!)pel%AN$Iv0AyP6F4!7Lk*GG zX(_4wqKEj#4P8cPHo6&tGZ|Q?L5#3J7@Tw>(8kpEh;dFN+HMzR?HpDsTAO|_`rypm zD4}vNv>EdlJ-b>$b7BV#pfD1aJEWhXy+lfhqvdBi3(q$L=UvU%*dgsl%(7Mzf7kW% z(nIk7*=G{JW#4TZy=7lK&bVctXTlZy_&s|P|HCl!C)@ey{Ew2c6N|By>QJD9@mH~R zZNg=uPtP~_|Nh2$>uQD-IdOcZzc|A>`I&#dlaojnE@T~$;xz=XK~nN;&80T;I# zSl+~QI3Q$$uwWb$l!#z*uVkH>nN}%TOm?&8EGwI0GWF(@2AbUrOZd#KxqU|#$XPwc zt=*&TdvnkHKaLyT|HE4j47#)a-Jwgb8Xt^R7UZ!}YjWA# zuo7yHYI1W_GRa%bW+!gU$POYaxtTZoO=R?McW~m)?)l#?vYy%)j%~K}A7rui&<{Vp z_}Qk-fypWCnU}u~f3wzBT3R+YvZ3PuufLGrHqT$~9{8taHSck~{xYuo(|au~8=N1` zzdnCevt(_LJ^JI>_QWB}mk)lp=*<_>u3+r_J%Tmu3cJm2wpy_%w#!?4-#kF?U%u*3 z(M_8y-S&;R{`AcJn$)x-N6OZJGP&}*eOu1N_TBLKa~t0*z4>VE1I6+p*3626#VK+e z%iuDzDA-qPYNT}kdzPkaUm&;M_ull}gDd;b_4_wGFl+1-B@&rQaI%HCtzOeqT_+k_ zgEtx%#D>e1`npC`ElgT-0_KI&_f^hkecjsct0+Ht^1(M>uVI)5>Gh>$(PnQ{_N$Rd zDAE#%=(@($Xw6~Q_0}xHQ#7J!#%ZofH2lk51jaay5qL%v7?TaRqLwl?f#=O;tErou z<{p&ekeKeKNw5C=%iL|vi#;R0@HQ)C#g_x-Cp+()`Tp4GI$>e*-3y4AmN)Rm*N*Oc z=IZPJ@Yw7LlSUUvxW%!Rc#|5I^Nvcc=#m`vO`ew;iuIf?i!E|~vSZJ7 zN1hameZ8z=^+P$P>+XEndA0awRVrle9b{hMDD2sM;N!ZW*}(|rgbiYvJ42YZV9QG9 zLy!17T*b#rYWs12eC%&|$8I@t{V?T+s}dRh>NWk>_w7C8rA=9%72e*v@tT>(TX7WT zs$N+%*ttqm6}hC2d)_SZqk_e~Sbn8@MDKpt1AES!Rj&Ipf*LWIoLdL_j&8c|&dPx= zmK+{Dspa?2H(%xNy}V_9<8vP-zW;4bZS4I$i!v1S*7v7Q8#PJj zDWoP^7-v;|29dPB&ZGv+040o^8aAY>I#dsh>8hqEL?K+bRzZQzgC>Xngwu$ivvr#8 zm0CNlH}`SX@L08iEd_$!$Pv5AELbOcg>Z1~+Gqdv^ztXS zA8xG}ISiM*Oav!s7Q4kNiOEU1xsHC9bRjW{u6a3s^@5Co^wDyN8PgimcsOB?bv^vRJn(d>MO;|3Hz zasRz%Z{?pjb*N=Xsg!kl>$42sZ`}+3G}*6f9&pzD(}u#$W54;`Jx7lpyy4i5ZD+c_ z7*>=!W=vDqnp|PaPSZP@cATGZ;@+a4iziGylXkENZmbnPK-9bLxpq?Vv_EAWFUnpu z;_SKG`cM4ZxB){_K769$P{Vr`vw81AyTsO%ZaueClATW~5hvGeW%$Z&`pr`hMX)IR zkgp#iR+$D}S8QJfaj?m07?0YB^%RMO?lBj_K3={;#6VjO4Jtdeh5k z*>&afzW=)*u*BB=mzm4Tf3n_{E@pTSF1x}-qNkeveEZi)SIwGz^XF5q?(xR7EZC^N z3&*aTRqhS7G;caSQ}W19X==Eo+_hHMcON_$@%zJN3bY41syV7LIS8j?OOICux`H|X zlcu3I;#ZqxJ>b<_Tx;|4R9CYc+Fg3QY*x)&_Z>MtNyq$2NBeQa_+y#6ieWrCwp%5c zv-BD)DA_5wk~)0&AFoX6X3wzL!4+I9!*F%@Pwg{oJI7ef-JWGc-f9vBr`4S5v`CV} z+|6uG5v+9Saa=l`FmGqr*-YXPl^fA>t{2S={LJ!?jp z={|8v4gcr(@kg7NMWRPn=+Vf$sGo2x!LqQ$EN>Ic7L&tl7V>Y}bKLc5Y{XXW0akq> z+<(^NbpzWbh8@%T4H%KKY3a}*V4vMPwj>) znO4GEf+o@IkY9Q8>{WNa^^|=Sd+oE#zP3Y~7EKntZ@nD4Z{_;ATkf}K{cG{+!(pa4 z&|~jEw{JhVb)g2s#RaVbtWN{h1D?2(E%sHK7RWo5Jh5D!ToNtO6kqPLx|$bm-CsJ{ zJGsmoBD^NzKUWPmYZF~-w6Hg?;-~Dxe|^|htL}JX;@dMu{Cw9p->l!f(1K^0E61vY zR~r4QCVK-!QN&s;ERoi+_8!o#sYWA2%WGf|qKb%{_-Y106DQVicBcbB7ecQXGzTS` zOq^o6>7{SlKU{yb=f}Yritb7~@Z!@iesueRoBlv->p3#v)S)Ne;%|NYO20aP=wRGE zTsny71(D}P0q`utAea!%87mlpVY?UF6N?JFUzyBuvJ-~i!my09n&oXALN@CbO%J!U zP8l-7_xOSG+`sHRa_->px0hTSGMwkQJ%jNmS|U&SuN?T$l*uh2%-r(QhaB6qg4eYb z3qIWW_~VGY-sWtXxxTW*Qm!e~`=c?RZS^;aH<&lB{CN96Puw|k^n^*nZ(R6|m17?+ z)%XANgOhD5C(HY8`0c-4^E2U`Kqil7rZT}AbMH=-$X;EKuw|phX^x0J}Q~Z9`PzGDAsv28`^{UlIRHA5R=!r)n z6(7{2<4rd;a#l0B?as=147IsElTub9xaEl1o}Mx80gCa@eCwU;F8>Uj=$uaO+lKu|U51*Wa^k;=rGCIMKne%LK+^vO!ZO@Mn@Y zz4rQ(8F+`O*@y?QvP?`O=AID5DM9LUK~U3#ca-powvOTV z^8=ol{KU_u?vFU$EH0Yx<#T^|bo{Q>3!b%D?*6XTCvm^e9?}2v&%gVnXh2PU{Z7oL z?Lo?%CCG7Rr*pAR#{cV&l7H({w>D~eL}QofB&_<0t|K5Js{H8FzyG*d6Y3R(4n!qZ zJ*X1{XZs}M@48wD*)nZ~eD}su~Oo>UrCWPhK8Yb@g z>NuEUV3|x*xItTi#hm&SRte9@xjlWpYpvx8i6ytGUboMelZ<@~o4w&sV7bz|?w_vv zp9*XnFf6aG;gh$XJDE|=h)Zqv^EVZnhh2B_)CGpkT^^MNO8B4I#`V z#9O?@?AVM@)|olvzD2jav3O~pS7zLA@87?qca7onhFvqMvJ%T`ZuOX+Lo@9r9^5(2 zLw(sKE0x$>!>+vTHuDR5BoxR~N=ZrXgb$j&bEc1}x}x~uulw3x{_L5_);=#i(0k_; zm3?AEscqf5y#;MYXDa>j3i5Mv;oI;qLL+9Y{jb{lhc>>QG_Z$qB*@rKy>W8g$w&V2 z#)F>|*YJqeiA2H?-LFRFva-ls#Q0;K zKHoiJ2xd0Z&F7NXg_szlM#1252_!Mu28U*<#?Fzan?`%))0}7*1x}L8c8rJN1#hY) zk5A+{fzP0h>`5j`aKn)icFwuqpL;0PcGn)J(Kp#|S|;_~5cgsQZk{O9{gLV9Hn!nt zNN*;5d@)AD7H2}O#V*)w?Az|-dv>RHTii?6my)U@`ZX@sT`jIPQ(qx{2fXw7#4L}y zZ(dFgs|+5{zyG`f--ci2m6y*PyXZ8J+g-J#3Vay1*e2LiMH@vz8dEmKukgzf2X=3d zafmSzPq}JJ1U9%qQXo6l%)9dNBsj>zgvhU|rt9uF$N5{jziMYTwjJ8y_4QJ=cmv1V z$i_C=FCR*)%!agQci;KZp-=a0t*S-P!oh#R8gLCP4wW#wx5!Vo9CuA7(Q?Rei$4O~k5_MX95L-i=YZ+FhtnOX)_1cM2W9avPK_lNu!rd`{&Bh>~RnU_~ z1j7bZ!q#Yn_#r5Bu$5eA?^mZo-9+m}!;NYvhiiiSg4;mc!LoJW0IJ~Nx3aC1YMtq} zx*%IEYopnfE@%GQC9mmh$Gq9F@`@tMzK3txu__7vO0&U)2z79D3~3Xb=}!U0o{^Mg zw<;vl&SPc>Op@7zP&NgGOhJK|mSdVl%Dg_`k^|++`Va4U+vS?vqH3n6)x+D)`==oV zzUF94G~ml4fz}ONou*+-7!-r&*Ye*m&+s%*5_q}aA|V{B+_N*O@x{lNG?1hI=fcW> zs}_t(J$(|fn;n-M2;HAFFjd*pD1r$HPQq(!gB&83K36Qz*jip-;A*kT;+s18%^fRt z?eQ+Ejy!dkY4P1yb$Z|UT;G;?Uv@wDapK)gfe-Hv^mj{azM`<(x9_?BlM`q5zFVS> z8bhr+%TAD!s&zF?IJF+q#$U~h_fWQ4jYR}?YnU&Z80;Wp#mSAFS;`d)i8Un&I#Ghy zv1KM9UW6J0TA|DqM zscB)2tY*aS-*D6T2}{QFS%to>TMwT+`DIU=P2iw_Y5`H*8|sRDiwVoaobF2ak@@5? z$8r-?O1dVyEc&~DdeOTH<@IiwV;WP!oqIXG;Nt)-y=BxG)6h}kS< zCcEhhp(O%S%TbFS_cuJ`C0g9|_?*}0ZWmW8dsSKP^XB3^7LOmalh3@(&Gws}CvNG# z=kW*5oXe8u^;K>z@qKiQZ{Oi!q}wL44%^t>_kRBOy>Kv=2FydAnh)9e1ZbHAhhxVZ zi-W_5-Lu|ivzw~0B$(0J=Y7kNEQcUMe+~-~oeoT7h7amQ`ZJZ8rseG05lo4l9k*C1 zS>7|Zggl#`nwI!+<4!5OslY}wop64kk(XW29efI124bSUwtVl3<}ka2Cx zf~0Z5s9MuiwnoDl3iky3iY7xr;V{gPLR5ri&@f^_jkxf?bED+EwUOZjw=dvVRW^wK zAys9Hi${+hrOxPnWkH79g|qM~>d^5MYq}a%i*S&iB)YoQGBArW7nCG!flMTq+gIQz zD)M*;FB&_gU{MiYqe4uG!?ecp9t8j_ALMzynkR(tvNc5xIYk@quqDa`6X#3m-JGJS zP641xC%k__rGMSa=RV(m;9vXq?nWTC%>P)go&!dX95(FHc?AW1Z9+vyM~n-$wedA9 z%P=y83<68wJ-7?rW0+ZiF6v6gn0*q4gnfcj>LxFVb#OSCr2}hc&cc5vj>g!T81)$e zh46Y^Sksm{5fX8AR^x=x7`w2=hEpKF4~GRDJDd<~}9>$~-%dYr~R!7!uO6lZ6r-%vcdxPJ9&Pf=lERu)3p z1zv?TBkWVlR8`@SoQyftI@XazEc9@Z+GYIHa%(hdjl={w4BruS!mc|A?_}U)_(t9Db=i1WsMG}) zI~BrRSvP3TAMcsbotUy4f1I6-DR#Jn5i*=hIcL@gWwa>O6L|pk)E*p}V6ZZRALy%A zEmAzSgx7@mT2*zm=*TLp_@aXFg|!_WTeeiv;{t^ZVs3Iw72S!!uq^C8W5#HX6>PT2 z5kDbli--=@s5tl?V}k@iyVxRGOz>77g5G*^Ds@fU}Lf;?-XQD#!wR*H1 zr-TmUlrYFibRyLH3!N@!0+>z5GGe$O+V)7oQ4#_HftUC?70)y^jZPEB#7t+c)92q>#npGelKLVMPL+{r z#KVk}uf}@93aA(DnMH-T62Zl)&Jt5=Oy}4=;;da*Dap(Qt9{G~++nPpQef206X1quj zLfBs5iK$w{cHak&5YhQMSy5EtCY-BIipodop(%l-7M>UCtG6Eh@$3)h2>)YUEOzEh zDCdGjhND`OoVc>ydVhKYO0 z_{&$xP)4nvnkq+?M(pu3J)3>826v>FN>YO~S$1J5!Em_@!)0r5Ec)>K@1s#a4$(Dw z1Za4w%TMwyKgqlNB=7Q*y#GT_@@&SFJo)mIyvtAWE_R$9gCu4}5XM{=CE4&rd1) zgTJ}5a?`4!`=h>6>-*#Ty_~yZzt((orta5|YNR>T(n3`8uT%2)kw5;eo4I69&znCO zw_Bh3=$(5%J$PuU+bp^Ho0qRSd*HyS27j+p<;yCD{9IWvuOK&%q#n4nj^BDdB`*~D z_YHf7l-*LGJfD$WP+VO7l&kuAt)t_Srix9)D{3l}U%j*MxST$2drBso#`}%>(B>Kc)B2<)6#3AMf0?rqJvd%@zs1C>{aa~mD8d`sCaH=q2BFWxFi69)!xWmsO;5(#T0TIN>+ z0R@+!u@jFrU!R1FQ3e*#O!N!ZRHETu_Zr;5WY|^EE*{@Axb?>~xEn!73~o&{2LLGm z^g2=estdih#RWxN8-nk|kVLK)7mYZk=hmOUDk*ekf2+nY$%P6kW&-HCa+f zpGeN2^;fQ}?=|v;g{2#_)ALeR+|;w@fZo`@@Jzxs)gL%GFWI-^h6I{)!D~8mSbeek zaG7NMbXUewQ%CIBBU{IO7+Etd@~IYytZ^ng=n%hPO;~eLe%@Js zhi}@!y*)koqnvAAyl(dJ$))UbeHyl2TlnZL8#Wxz zF3e9_ocGy#|0%hTJeM=dE#<9n5iZ=YZf!$Li>~^uA*hOIx{kX>s!DVc5KPXuE=|>& zca^_!$nM_Te6H(P9DVFBp2h!~@WZQpZ<}|bX2FIHWqW7sUof|1?x`r@TI$OJEv2P* z{B4}+qCCA7I`J!ET@UM;64Cr}b0DlMAgkXc^{R$ypr1a!O3E7m-C3m0ggnWfk~NeB z?q)x^KeB&Z*}|DtOK{OBa~{K{AwAb-MVgP4ND`9Bz4wi`c{1HLueV%e%K0}hNyy{O zTynCUiW?v-ija!6i_K-Hdx#CTqR@=V#kIVw)&Bw_cKtH=41I zy<^drXqoTA#ASw^|3k@yf`d_uo0AJHzx4V!Qq; z9j}&zZ`*rh@zDkD2_sMb_~_eTe!)z6_s=utoJ;cl;a+ZSa_HYhH{a5&{F4(OENnnJ zo*vsJ*__W`l8&b-T3MOgq7huuXlXe(d4UZV_;GcuUV|e2VU?|o_!XiMQ@GxL>zsl^;E=s}XaP8)KHXHM34U3l;0uUabX)-mhgDSx5nT73b>gT$imWA< zt3W3OBLAy&yh_|7F|zQUyC@5fb0sD_?8y$3>=sFC#y@eETr9Z7_G^0HE2U}hExp_p^N8mU$_s9J@7vGcU-!e+XO=Dh@Rt)> z?pI$9KC&P?^R8JBbz6LF{hLX19_Ei7o3kZtYQ+?*BqglW)G#S?Ck{N|Jy!qtPfzZ; z?!myBj7fK~$-jS^SDWm%%n@$|w&nl52!ynBloaar-FlAV5xU9&CaHY8Ui}lLd ztVYV6#M-c4#55}|+S@GYW^-Cs%3T`PFW=mia_3+23G>wowQy8hVA6L--FIbocgutO zHsT@_g9~>Z8&2joM<4ji&$A7uT6WKDa0eoUFAIhvW>J3Ye9GO!jioDoUwO~A*6;VN zo6~aaA5$mXKmL}hrcQNBL|Pl_)BTny6N_hFAzSvIu#LSQOM$PmNs>H~HR)X$cY^b# zd6Smh@l)*6V-H+As6U+PD%aAd@5ER3vChJ&x6Mm(Z5mlP*FDhTDeOI@cW)mtBMHN5 zG9zVSo>YyoDaHmMOGr5|zNFeW_Gb69t zy!^iF`%LmYu{J4f&(AO2Y#DR?wR&*H%DsA6QNj_T>V8EFheOSTi`4p+kT*O|?g1QA z4cw-7MKy~Xgf#EYNEU+MTny!5=~4ellkM=H!L>t%x=M>#!7E3vO5<`R(_25jst-@6v(F;m@`yLxr+vA*f|`&yrQe1B8Q$!Xi~+IKEiR5bqK5)-al^ZdUK zwCvkHN@d^0CsVg)OpXzE{{70qW3q#f_@2AM`F_m{%N`BiGE`1XwJBQ=Tr`*Fv*v`V zlK%L$Ea4lf4wE0Af7Eb}x4iaDM+_JF7wI}C_DwfE@kGjv+1}b(Ro$@_Y_cqp{G84W z7w6xNAM+WbyVFoF*iE(!}qH;c~KF3rdL z-Mw#qF!jYg&f~r}8h`hBuZ~3rW^6ukjXw}LD66=)x8u~dq`Yk;;=v_)dNB!ooj0zS+UMzn zo2w>#GvL5U8!(z!K8=Fa>45okAamMQo$-s`YIVMKNfzFKV_Ns@v>#tukhuTVrHl9W8@hSs zHHF=aOGa*pOmWZM``WQF;)mO|eYltK7-1OmQrK`w4&FB(aSi5uSyxOC-So`kU*37w z!E=3cTN_Lz<-;8h&Yp7TGatRHAFHeX`c4FWUlm2qufwiawCrKx3NMww!(0)N+6;y!~BHul(e@_KuF|Tvu5clI`Sk@65k$ zMh>goSQbcpM$-c;P7Q2skoiX+NG{XI);;m(^5mJ#Fn)S>o1;NPumjC&rUvk>l8~-K zUyD^ed{GvjA5#KG&Tx4*6623~`qNp1ukc7&Mcsy5-1u^6H(ydJIc)Y+B;+}$8Khng z*$&WH=6vL=A~KN#Grru&{FWb;RJ=IPW9=Q{?pkT8&<&BpnPp2! z{`gvqLN42}>b=cxx|s=&jCh^5&3v`4?9cyXMwNWA>CZtJSy+1bGjyzt=z0tG5|J9e zB1gw3b>-sq!|iSApQzzR8XY!$@f17+0EP!MHhb27HK5M)c*%*|^bB(Unx7YJM9eR- zoBUbh-iv5U!`|ecw%j|dC*FQ=;Iz>-5?>uq13Xgm2;Wktt18*X;&ueSAA)go>+#sW zy*@H>(MMCS9&H+R<2|+4W!uKtBsqIILNe8huZx85l9sB<5=_5RO*MtoZ2x)3rRq2m z;1a9L6fav-Rn4*Hpr4pz`3?BruADpva`LvE?Wo+m$yKFRANAkmSGOEmy)p5plX~u8 zSx8G0vA@Mv(=&`2^D>@}=bnPik*$HI0VGb#uU_&T@0*r!QzqY> z^IA*fY{DyR=G-@K`SeA>Qn;rwY#x-Ox%qoL-IEw}lX2#*jJ!r2YYTsMmBuFQd|mY` z*geRhaO7@NZ?MwuLPFlil%(en8`4BP-eh;CWoPqdwz4QS_oZCdy414lo(T-Hu(+or zhXZaqiAhN098QNL?w86%Qf|65DGy1KqDaqeket`R(wt_xH>iS5!vx?HX(pc2x&D$& zyjfp2-hXwYW#4|4u(wCOExX2rh6SH3@)2=BQBkkw36Fd1h*L2f)A~y?@$UVo`-yjR z)}&418EtHqD|Oe=q+!)_T75)6-rBlnKJLsj)zkb?0Y{{?OH=W<8co+Vo{FhfgUmFT zblibgNkXuqD+})_f22hss-m^Ewv_g{#(Q^5vb0+!@Jrl$C4vcWY`ZkVN1D2vjj`>z zkd{};6Y-L4JcQqDHH(D8`3_4)Vp4kV>>eqZJ)G_acP7chMSg~@g$I*mMB{LsPGWlX zlH9wg{r7x(*GzdxU(Y;cNV4zK_g~C-SG>mM8=lusWrJaSx^7)_1x@&0$Zq=MzJ)bgC{9g`%C47XjIvjue``lNgZ_dCBfD0Q>U$z zxAecwJN(=CGriMya$6OduXeBwJ_zs5TkDXJL%J);PwW0rYu~*A65X-)c!Q)#c{kUT zChEI&Rq39Lg+jmhi71%XGz5f$H)%|xst}bZP#!T-?S%i{Atl@ji^C(gif}5`Eq>7X z$Q3tDn>J&5j^cG^AOVc6#qg<>LLAjVQ-xtFc`>b)u0iwT zEDb~9YCN8m4TRHS9G2-SduXApZ{NQS=s(uR6Ezq_=F)}KJ7QuQ&$|jlSy~+c6u+PF zYBek{{T^UWmQw#a?{0$tJ0Lt2`|*D2BEB9saL|?BGFg7cfiGgQn$0F+;;OI{6YX_4 zTkyH@T^~Xn0v;T{uvIn4TWPG@Ic}^Q2|zv*Bx=RD?TM*0O)gReLwFHzTpg@6t+ z509>C(2&)3<|E`r)e~;l{4^v_4tTL%+!ZSllU=nm(MP62tigP)Cj9oQt%N^X^K-Nn zDPM)bOnmJ&4h9=^MV4ULnY1T<$iZK) z79H}OWf=kEhgg^@4MgU{XA~E2t*X-43P-&L`%Ou5LKTnPzZ$o@09jS@8p;vcMj}SA ztg%5%9S$x^haIBc#P;9GcdhZ{J4E9=^90wiX#cc@Ro6{_;DJe##*7>H-hWz=Ld=y` zjU}drTApRp%5k>Dg%>5>sR)9Vs&IUn5m9D>5#9I(AX_gYFnun`xifY>j5Q-^DUOL~ zx}6QvUQtw4qT|#F7r{!XZ+qZMFIE=v?U<(2)Nb9<>>j5BnUQmvva^-IxbXsm!@x_j z?L^os1YuP)3v)hX(H4tFx8rn!twFZ7NSw|p4^rl;-F%yv^qdH4-?ZjW_ z+TplQnizrxE=sS1^i1-S#FQji7TBDe?vQj2o8`p!aM|(YBRpqLPpf4K;v-6m@ZMUN z3&$PAmPsiWoGs; z!_4L)3@|VoML|U!5p`6Ajhd30QkhYij+d0mbiAZgD4Ut#CRfoE&2&tUS*Hu887E6O zYD#5E<|!)EK~2p}$6KNj^Z#zpvd;UyzyJIC(K;Pr*!y{&wZ3bu?^@pnqFA=ATZ_VQn_h-O^QGLGO8R3+ub#p~9uuW+|$ z{&TvnlJ5dgvS7xN^Ii1j5(KySY($!{7>-g*hAw3BJ{)A)SPBvmT$nOpM}ubq^k|TE ztEf`#%}*l-%s4;;m=Fob7q7InpU~#g^S4@B98;&;r{^sVa!Im47r_gLL0X2W@ZKBT zds1`Z9ehqNiRA@T+6e z&OGz~&d-^9;A2Gab4S3>?F2t}Tlw7o-7n^8Y(zhP5T=adRzo~9kQb)rZJYLN?COfw zw^iGNV)2Z z4Xa78R*Ny2R_H$v)y}xY2wrPQ^g<@)i(605IG}oS@Kc|;rn?^hyk?VcPu}hgCp0V1 zSM}yb_TTRyQ-3x0r%sqk|?=rZ7qug%iVQ-JOCg z7A`2bw)>hbB{?_eG`tn~(?uKmSTG`wXDhx4ILRjwRUxN zNdXPBQV_Hd4p_xd#?^q<#&Zyj$jO=EYh78>dq5~>vO!9q-9L)>Ckr%Crr1f4!K4UI z)!H4yo-2Il>q6g`BlAZm?OQhX^YPv)CCrzATVjR!f?vRXNdmU=VhfK5oyO35 z2`m9_5BOv$G;+pZa`;-Kzdi zT25mr!b(8913wjfEy2grRQ&Gi{Dfzo8nJ58$yKv`jUzT!J1*6K7d>}Dr%l=yg2oNc z<}$|Vdt^JpNcWzHD_$J)g673rH@^$|s z>A72buFaK3bsrS*@`FNr?}YYZnyOwDGK;Tyo5UcAt{~Q{*mkKCe3TU9WGQ6J}eZwNKA^w=#dzv-T18;hSE&Jd{vU zaAl?`JEsYOF3R@6Ho&k%lx#w|M_eR|bH^@-q@9`z-Zn$X$-2J&?3|?4mli*9dgH{; z-rS?E5)VXN+SR2e7up!tl+hGw+lnwOZlRsGW_lD4yi6oS5}U@Jsp~aP6Yg&RI7UL+ z>hWxqgxZY8t;N}-wvpHcxS+8HQ$9@7Sg1FJM4L@?2}DvD2(!^t&r*hC!sE$c8|vGP z;uM)U*fK?d@!d7c{zJD}X}1?w@Is1xWpBxw6+G+Y1MA9b9%kcIh7jDir!_+MQeoDjZ#-ziJBr+@V!gSJiGxOsAA-qkXn5!9#79NL&YFjd29!b1lp+owG&Yd|GY1N5Rvm%Ljz^WC1SXGe~m{Y9rvd~~>?5TSS>r$ljeja#o--zVQ?&FX*s zi#M&L$L_HP&wUd<3pvepyH@WiELgc zxKmE^L;($LLFn&js&!$V(gOoKj~e>O=utiU#rGkmXav%~Gn_WEk}`w^M@C>L4JaDZ zR9IEJ-C_k{{;*?(x`QjIHS#$ds*hdlv+A{?xle`6A9k?sCjZIJ_WFp0R`GE7TMsV$ zZt8q%{jYeCvS*~+c*C~Y zJ!>$e6< zoA%JRN3O4q`(2y4;z4!E^WVy^6nrwc;5C>8=7S* zHgTb$DLyE2a~i|$cex%Dw{(8`*)eZgN_Cof#jN#uajy%aPwj1mo+0uV5v034AsYz1}K*PCIrRY}npzYbX*JM6*U+r?Yd}`}-_>C^#}w zjTn|ftyaM!Y#oX%?f(lo9i=l^P_2R!pbNBNAyEV|PX*1Y$)EwfYwWz7FkcA8r>b{G z2AX(NOpL{Uu(;3XkNmTjsdwAc$G1n_KB>!oNxKJ%n%Q7*$;mxpt>z#; znjT?VwyXyTz+nRJB7o+_zs$Bz=F^*Mb-LGMbQNSCuC5^%1xJxxiSd(WRXEGvhDyeIVsji*;=JS98B ze$qX+ol9KhI@P@V{-L%DCqHDJx7~$DSD%=X+&?1l(Il%mx$&Fw&$OjKT{?JBqggz1 z5zH9Tcw>RA;Eh%jTm%Bh2*9Ub3F;rNafUBCa4f1vzuGQQu~|Z%5Pt{T!2d)Tq*Vpi zCgjLZHn#nCe4Ot?LH@qWz*n4SZ;o>9T762h;n8!U-U-DCw#LvM`)7=>ilRUyD_1DX zqL%@2*QpRbU9j6(H?~fsE9_p;i*yd&-Rl8m7Z_Gap@E7E4KbpXO2vUb!&dew)|k4C z8kL@l^jyP2zPp3U3k(BsQEK>cJzE+3@)K`d8Io~)>YFb=dd_~X%V=%SNV8dOq*wo0 zF{O?7R7^D$`iPdv2M!mJ8C~FW8OF_2cV*}e$X(%s_eoAzFRSK)_}E$7GYzm~D7A9| zIFcrJfEi4lmfy*0B9ms$r5Yza@pbmQi&xHERR30ZPu^W}BSb1czZziqf?99j-k4_5 zJdwEa;NE=)j0^<1I4r7qrzqFf9J)Zlp5L)L@%)bufAOQ{nXk6;!#ba+qNly{b=&XA zYwh0H9%Vjx$I}lVEGjzamGYbIoPv>oe1+YbcJ1KVebiXAc6lXw3+1fNfXk9389P_V zxLo;?i1G-}9a1_t5)2*VlFZt?Zu;vz;|H{i74SG=lDd<)aYBW zVs-0>L(Vo>=jE*y%aG!ShH@KZv29+#iG*X%c($li2d)HtRS^<6{=jzf%Zh#TWx)&l zTXmaU)?QoKlHKSLu>M5iYML4p%i%aAUE9KwpRPYxR9ul0<%+NSdgIHBc3r*U-NK)A zdYV)8LR?6fr#~Xi)YNgi-*`^LW z%go6so3q;oxp-DTaj-5hRFQad8Vmv2;961j%K{&kd%HT@sJVT=G?k{U!wa>H!QH6WDe&AbW)cSxO4Dkn_FiSh>@ zi~1K78o~1vGS~}>>Q;b=95u_0ywL11)6@1#w`T@MNAlr)yYb00as9#Agl^9TXmya@ zQiwYs>0P)A3Q^7hyAG#-r{{z(8a2f3`aEm6D`KQ*m(n+K<3Zdh5~^yXxG0A5Ca&ax zQ;QF-8H6Y1++)WAjjMRkeiyECa<82^O_;cn-eF<1BWEz(LEm)>DqzX}(zEnRxA9jM z>7L)OzIj{21zpi07vd>;MF&=qp^<%pO$H8}G}k%>?=gvP`V{cCs$4 z2-ct&E_5Je(Im(KD;{lMgb`ePrXvPX)>v)0($2#cqGCsDlzwQiqkXD1<^)qJp&&F$ z2M5MMSj^N9fMgo?4_Y0;5OLnFN2tO%F&odXw(8yrosv8-R0Z{8ioS=!`wJkE9JO1` ztv4`*Gp!N;iQXtlQ=@e%CRJnViXtF#dnH9cNE~e$qeHMl)5dlZkAIssb@(0u)rPsN zQO1}vDnF>Cs4dV}AbD#PAS!fG8rR4^77gPf>>nJS`fa?dQr4%n98djv#5Q#3ub`7f7i7&JPN4Q(@af(;65)9!^IBF@CbmKN zpQt=tNP+A~u(r@enM9PJyU4&4Z1_2Bfk3e5{qH1V+Q*C0niT+0VWCoJc!m$8l81Ha z5>MC=H!mdEqMd#Q^mHML>xvXBj&t-Kc284l8O7WPMF3z(fw#*u4L0TY^EejE|4j13 z;;Ha;_s<{Jt7m+#zTvv4pg=tik;{AgHm-W80%-v!2}WuAs4+s!+6WXMosp4nj&$K& zoat?_3=AjC!jcr5P0$>!kVJmHL=5|5@CJ6n0y_OVUvCJ}jP>r5bsAl5cR6gS*q z_plIm0HxDfR6&n^A0L9_`oJ@6wu{r6)cRmiVfNaSsGv^n+%~Vwx{41Cql=+v793_x zVO36+=VC- zI;=s8yHgW&T7Dk*g^s!$lq#j_KY?Y$UZ<2IVEfzYzC zA8Y*b+d`%qSZEhz0E-YCzdmN@v~&?3T3j)VU9;@7^Pi2*c)(~Jx!3twYikRBW~&>L zn_$osf=lnBd_H=$)~4XetnEv1#2XGh`uro$KX11S=#{r{;lXZyjGiUT)smaHV!Qy9 z42g9?;}w*KzuBc=$(A|6A(SZ6B`zsnl7M(Ll1IXqg23}3Ei<7Xi7rP>T2#o2EiFEu z7i~exIUp*TsBu1I?1U!F1j0^m*iv>QnnFv-a6Ag|qJG|zJRi@xCCTFhvl zU&A|HzFM@W@&>-B{Pykcv4UW&t81~r(}e_s3e*@B`9XJ@Lv*SO8N40?*ken$7xI?o zrKYAuD?NQG_!(bIYb&-U&q4>k{1^D?wq?sZ-+Z%ICQP&2>zg-^FoWFlnw#xv*s3A5 z#XEc!-qk2CUD_+ZAEi&R%0I}s*CI|RKheP>vqRK78&uGh~B*QA@Z@`zKZ^r7t zuE034U<5CRCq&~y2N_t1qa_FuJTB=V0|SGrAQB2aPh(!%c&^L7n_dT-kM(D&SpC9Z z!cWayHhOSyQc_qLbgK=}nkQO4ERS}|;B+U;39sZx@Wnk>1Is1)AA ztU#49tN=IVV9j)vd_-#o7Yf}yT^dUo_N*+GSafu-v8TnTiBdS!aD_#nbb(>zZR-uk zZl2QIXn&D_RmP?T$;qK+OCUnO;NYmJPR3}X9(3U1WnH?&&Kp0DWf(M^Ski7ZU&gk* zE*bOuK2~F_+;GY3^;y9r3c-E+e&6MN=w*qCNlD33cG*W%j`Df)7A&}WxfxfsDnuO$tShK!G68IL5LeZ{ZjP}p!uRESsU)Rim0&767W(k1_mt5-o4 zx|aCc)YURJ2fc6J#>TJwmb4alM#d?K%odvdayt+V1R)|(xNsqzsob#P#Gyln@c}0` zYyg*+3yv^|FYvXTFe+T-CdS+9w}^7{sjHWa#uy|4JXdwDO<@VKlRjTgP6`$whG@*C z>(;He7*XEBP=K!7f3hrN;fA7iFQ2BkVrQ-ZdyuGA(jSOdvEhU8x5S+v0B?&TW_@-ty0R0cXT~3 z{@>ZgsQ2(OBG|^QU>hfbZTtZL{lEOx!8WQDwz1oC#JIXgCYJZ_*K7A1D_-7)-aLlt zuIaK?qYH}dDhvQy!x;kpLL)}K)__Qw?jFLZh4qN#;*W)Ids z9FfTl9-O+nWuaZ1lvCKI-EoH|RCnE?Id}gD^_PDf74_(m$w5!Mstn8(-`?AXTVcr( z*EzY(*%E3-QWqHjd^NA0C`$iL(FX=ftfGtv5CD1X)!vX{W#plN2{hQCp=E5+96w=7i$)UUu zk7@tOYxBdAJnbFDOJ4&oC&txoA+2$9cV7Z53HbYWY-62{LO;$OO)rVaE^c4}ng zi*4)0wMJ72gE|j7*pR&A%NbQQjfw`Z3Xkg*7;WbHh#*Ujrp#LPYNTcOFFt?upsDmb z61TMPg8s>rmPTtNrJ^({hBcb0R87MD?|fy{Gs%O@VFLyv_S*B#(bpz5wO`+$4}F)S zf7-Zj?}97SzuK8S+v~p3ygbs(=v$_Znx3EUrv{$;HD{17-mu}=C%Xom-P|*E6~8-3b86ZCa$NsPntIP2I>^%Cy}EeRuJ67qG$P@p zl;eU%a%k4;g3BU87Hspm-;MFFu<7Y{=q{}h zo1?L*DLebtFOQZk9N2!F!skEQ{8UCp%;sIC_+J)~_?v3~_*+HGj zt$Zw9kUM`~&A}ncS`@4G<^=|=iH^sAar&5Ii3qi#r%LX-E+jlkHTmP#l=$EL_BXUC znZ@6KyKmRBhac=5qzzE)MZviWoFpU_f4`M4X}IL)R3g6mP2DOkgbEWS^5CYuT=c)6I2>`IQbkFd zMw;X6umsgB*F^lQe@v7))!Zwtb5cL}M=Ypv23V|>Y8NQQEr-(wM?RZ+$uQ#SD>F0H zyC-Vj>(zPYheVsOmJ~{A@wD46FRY%kKDGD7hbB+2V1ht$AX=emw~8QQ3pTEQG`asj zzpnbAb_?w?#8^iKIHJbpg|0FL=*aaQWh`A;m)&r#>Rdx{Q$}%3rYtK=QX#I!{ek=)&&0n08NGj9NANqLuq& z6rzy5hbWBpbdZG6Ltk*-xBhy_vSS0TQUg|e5FYrG-7*Uy3B}=q%v{JvzyysxFhn2I z@8^`>UH5j5oDx<&SzlSRGCVVV)Wx>rH5OsO;)Sy(J~%?0He{-h&%B4gAS+_z3 z61L^7Gh@mk)C=p@_HPKOOpNWGC4JaE>531(TaJfL`11IhkNy~PZPcO`&$166Ctkm0XrgoEwE6dKt=+-z{ah+T#)Anf1!a-? zLtcHQh|?r_<%Z%+vGbaSX}PsCY}R;f=%#iEm65(?<)A# z5?!P0kSvOFW+tpiL03EKVA9qWlyUCi09A3=r-84qgrpSBiP-V{bK$nXQGl3eaKpgh zswmRq^*O!6nCZ%De>Pn94oj}G1g`*>!29k0L+0Wu^-2qdM4@Tj% zo$Mo2h%I4sNZNg#Pu5N)sJ3{UBpEj@U_RP)=kh#U?Ws_H$67A_T+%5iXhz+dI9uSV zg%8$K)2(G!#$suf>%WjA-n>;4v+|qY4$Qe|pm8?-08b2d?$&dyDXTuwTzWF9q)VFi z$IG3zcbi;!S{iQlFnT7OQh@WR7pM2-<%YIPKmT$(a<7^e?Cr=)@FbzDWMaGE{)nut znrLcRhAJzkufg9c*cGb{e*eqLuNNJ<`NQkuJ~h8%T+!|F@1s9WAGzx_>uX$&Bja2f zw|4J&_lPqQTbtBZoZ)62HnrP;ZfHYu?>*_86z0aoOf;IqS-|CLSrW@mUcG#Efi%H> zj9g~URB(Ic3@>^laS}Ri%)=dCNEAQKCNGAeCS*xhL zf|T4G{y@-_q@*dDQ=b01u=ktAQsa;C9f|I7?_M5uZq189`G%*hq#Y7jJ;0Dg6$5j4 zYNVslDH&NvCJe>n@_)Ye`=k)^7)C$L=JA2^*QFH`F?u2 z(Rgms-hsxjpor-Q&rSoRDMlZ>PCD2)YSh%xF8sW2EFL^lzFX;pRV#Y z_gPr@UGrDGwd}y*a@3fO!7r;9Z0a++%}ho-MX?S2`hOnG$)Z5JyhLPI$V#Ls@Kwe7 z??+g@=d$gJ9}|kLxKG&wb1-aZC;Z-{_GJ(I>6aLHpQMx^Mo7e|RDe&k%k;|jh)nj% zNOK)IamguWTx6gu5MELhy1aFGPHqZ+kiWhLmx1jG_)pGH8-^H=5sPKm;<3~XGY6q^ zgT{STky_UYH~8{N!7*-$*b(yaV&64^8r>)6)U>og>a7u%n4$E#PsRmuQ*a~|(^Jkk zSSTC}25BlT_lDbGkc zj^76785nIGGA83_w-GBU4h2^`1W-TdlyE zTY)p3O9DT*LU3ee2)^RbvY95**-p%}S%Xq7>coVunY41IK-#UF6|WZi`jku z)TvD%{)%{$=})9WHVC$gsOf-!(E7$7hI*KymfY^fV#!6)#de@FTeKNt9=?BUhB)n| zzX4T%Lh-S0nR1I$(FitoYbDo|nr5Y#SYhw~gi=Ta&CcaRV`3QRp#eun95|BRchYM& z$bIq6^M?^HVY+lRJ4be|b>dI7NExPBB>^;qyFBeD zp(Y`Lvw;+JEWaXMIg-6*>eSc{hyuANBN`VgfKm4V6paSx=zx`co@a%4V zAdztU7?A->WeO|>1aJoTfinkyp-vi>@CPonCw1)v-@alm{EFo(mPvX|&uHp>K1PEE zeN6V2Yuce{L`tes?!&|qNRkd<(qJL@WmO(|Ym)kZ$aYj}zc5b|vaQLi zO|}ZsMQSgFe6&)9dUYKU-y+s?RoRUP64vg$GQvYn4)5}FU^J&>#~`fLPMS6qQO2aM z0ikR^W5~;*@P1IPX8POA`rdyLct`su{$Wmeb)d41EY*O%L4&@+*yF`;=0F)uE4qANAH88+sA zWi*Utbg1v5H=zCMUp;0-ap`$bNTpKbEJpR*VVYf+el?yh45Ao+ppP!Fn}9@YrN$L2 z`+okZ86{x`zE;7ZAaGDZ7mkZCTb~=kuKyJGY7)smH3sBHUjPwP4(^Xr$Mha=bk)mJ zctmi4y^I(P%nC3xR|kIa8L#&V#M?pn(QXkSLKh*tcKG51ra+QBC}Fa8C;rLU-LR58 z-OHf=D6y7^Bi6kb8uWy><%u&bd?OkF?f{XxKqN#ESf_~#P{t^9oyt=*G-H%`v5;qQ z5hfVF9ylX<{9z05kzoCF;Vx_<>+VudD5O_JT}1Jn$D%_v0dL5KSPH#08J^!oJcuz5zD|91_bK4pg|m4ggcG| zKzaAKEsjR9iiEJo4HS`O)jo+WT8!~VnaqxRc!HyB!m|TVAT?@&%_C&5h!k5=IYAdj z2H}=58W5M9ykm3Wim%Z!N;yqgD$EAv-$fe5o$!78VQ$NYBMBS)BZDdcXE-8;u428t zT||7DSgFc1+!}R|sZ7UuGsewHLL#dm>*Ro)}m=*~f~z$|B}@A=+S=A77- zB92ho`IE_XDaE?kJ6Hn-Oj2fG3OjP9;9|i_^oxF3V4`s!yWZ}?yVI;i$&hrNN^{$O zcB=OZ-gAFv43*4Cz@J2z0`p%mg_;hgu$wZeYFr9>z*_>&t2H+@5=$H0krq*?+s33S zcW9|C`5XSi14e-Ybb(eLePJ@0O>WVZjUsO__F8%%V z&60+)N1uOiK?<&SiokVZy71uTF&m7U8@DgrcdOz!ze5|@xhqkVGKpMV+@y#X*6ybbRMex?shs4GfsbEj-rV|7z`^ZZw2TONju;~ z@l}RYzkjJ2H0`CBJ%0WA6a`A~@=|e8%S*TOe%g;IXgsN}<)%U%-6;Ip)rA?3mvR;4 z*Vm(jSPDYVWJZc$NX=6oa8F)d+eaR+k_;jKl<<`jh!|1n-c#vCr=$D>?g%PUB7wr_RSVsXfb0ntY)ZELqu+cztvd6O8gs)CvKf4 zx3S8;d@s?+Wq6nyaXK9cKhyv*=LvvuW4s)vGsl$++KWkZr{w15XbLb_hl?&T*k^3# z%wT~=+OQ!pzkFW;|PCW#n>R^ixURxHB(!o16uiQ4CCU1|xakmO7L z!-o%m>{Y0~fPzEY6r{p(w{v_V?G){Vu{u-CL=^+8axHE3aX5$gG58S1UxF9KkY8)7 zmv)WJ=AZx}HNt~XC6Y|g(gocbjCPhH>DYYw^o$v&PtPRGS*LjlVe)h(;Q4;rGoIR` zSSzA0jiwB1a6H4~vD-yBRlm|;!HMbR+WR6=R= zW~i0mXo!#k5M-RENFs_HAnX>3Ug*_zIgs6Tz<;F-%rgNrut2Fx-rdwEhJXgoE4M0e2+h^ zk0t~SR*Hy{(Fm+F8DYn+)@zso#2lS6d>A+TP#J_Qu#}2}5=D#FCCT_{3Kytw$RyD3 zPD8@UWBoZ<@z2;92@SXH^U$>^sRL@!c@T)C6hxq6V0W0nyCp!l94S$QQ35Ycga_a6 z1PK3y_UmB%qC@}hte?4w5F�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 literal 0 HcmV?d00001 diff --git a/lizard.info b/lizard.info new file mode 100644 index 0000000000000000000000000000000000000000..ce4b8c34ae1d2f71cc0df2d348bcc5bae3f8e008 GIT binary patch literal 438 zcmaDXz`)1=1M&=l3~UU{42+DdG7UgH1tx)@Sr`~uWkK>k8i0Zzi~&HVFflNxJYdF< z0t$fWd4^M8r>B(*m<7_s0mOW6 Ro<6Q2kpZr@j((oL3;^sed#?Zh literal 0 HcmV?d00001 diff --git a/lizard.wav b/lizard.wav new file mode 100644 index 0000000000000000000000000000000000000000..5f20e46aed1bd8ec50b1d1cd9b1284024f90c591 GIT binary patch literal 14244 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 literal 0 HcmV?d00001 diff --git a/lizhit.wav b/lizhit.wav new file mode 100644 index 0000000000000000000000000000000000000000..4335d605d80e0d258ed6eceb2027b0294029a3ab GIT binary patch literal 12228 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 K_bpC;ws-^ntYZ`a literal 0 HcmV?d00001 diff --git a/lores.bb2.bak b/lores.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..019326d32bb92ae0e99908841c222846ab5d28e3 GIT binary patch literal 384 zcmchTK?=e^3`IxiQtuG3ixwjMw$pZOsdp(3a|jnwyq4X#>(U!|6_ddVUck*T@8{xmz}9lrJ@r?W;IeK6mxN%f|nrYsh z25SX-l`fyKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pK`pv4p3|gP|Z9bdlpb{0fPub R6_A|(#9ct#3&i~lTmalj6Kenf literal 0 HcmV?d00001 diff --git a/ltest.bb2 b/ltest.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..505eca27599c1162f4ca46b01c37fc8d581a43d5 GIT binary patch literal 576 zcmb7BJ5s|i5M4fj0uHgEvJ=}_;y0rpE_{L%^8BzOaWe6; zr5atFCqIK1w;566w3De5s`1*()B{xdYd31#pmD>-4;mjMX}_tE0ohha-8fiK=n&o+ zo&=_9BPj&Y&A6Y~-gI0~iau^> zbmT;8U5pvzF!I127%j}eApTQ-J-z2iHMMwwORVS8{{E!n5Fn8&5^w-^94HSvY{Y5K z;Su@_J2C&c`f%yg2o8HdX%{p@BL+rLcwH5r9v^b(Gd|RHPP*(rOSV~WxJ-|`I}m*X DW{ayZ literal 0 HcmV?d00001 diff --git a/ltest.bb2.bak b/ltest.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..0d9e6cce4f4f4cee80d19c84b75b46737e137d9e GIT binary patch literal 556 zcmb7>F;>Gc42A`zFu);HrX)>5>_U0Zt+@aLXXvX#$$KFwbuspqg@xmEr2|{XasxOD zN}6_Ok$+jzCrgGAjFzch;(Srg;y6|r>1By|R-~xYSqvk9?GYy7Kzw)TNW`iuHpiF% zRG*@{723*eS7;}TdEI~fsTZrYM z<27pZa3Ag-p1#BY#!Aa0%Y<>#@yLc7-ruB{raju5lAdLewm$Xa zeb140q#YM3P!!+QKb3Dd%}Y(|wxM>I>HYp21|tY>A;cirFsQsbN5#eoRv&cU(fbh( wS3SCtkz!a~l8Tz3>MIr~2Gv(vJRV+S)kFG?rgPY2A3R=XZRmr#*z5t|4@?-OqW}N^ literal 0 HcmV?d00001 diff --git a/ltest.bb2.info b/ltest.bb2.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKu5KjQ&7NB?y5ce^#F!TWFHXsgS;9%$g(sO`fQ-Esb0ok*FdJ7mt7^;Bm P1R(AL;$9%`XW#+=HTDzh literal 0 HcmV?d00001 diff --git a/makeanim b/makeanim new file mode 100644 index 0000000000000000000000000000000000000000..bf518ff193d08202d058d8401cccb83d14c5cbe8 GIT binary patch literal 34960 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

    >(g$;gN-36-ayDAgVl;x0Ta^EW(+?% zt6##S3NYjw=jn?e`75QFPRxEk#ddN(xwNg=6n*zHZvD$f(?hj^7X!FW;W+Tsz6(a{ zD}}h8ibeY><|&ym)(0eQTXZ@Od}=fZ%js$<5BI)aHt4PG(+!va z&8rM4f8V@6&^*fhMd`w_*65L7%eWRZ6$R<_dRn)Mmih@=iv)h++fej;mH*h%_UGmu zahF}?a4T3a^yhO}`JYQq&|z?RI9uN{MB?b6NK~)F_&@AQd~{(==5|b zDhFCCUTl^kS*E5|W5t1{!f*cHE`nv7hC};Xe2_x8z@4(-&+$Wc-Kic#&ys zXc62VdrdVB7hUN3t+cKI`_E}zm=@g#@(-SW+Rt6z=lJt<`r{w|ZNW3&oPg3q@=@@n z`-!+Z-A_O6VI}{A#zTty@1LXL?)M8RGX9GnE!f#Rm^9gpIr`0LUZH|<)lZw}NS(sV7qx|bVN2Di7L?$?lq zXRzJVLPecNt0^+g03=7gyCNn3xU2#6$ zth-ZNEB*!c_t#y&<-ryGd{c17*ZM^twyF|PI?yh-5YHjI`pDowX(0c2?8%pso2)wJNW>qFK(KvD8$V`T?AT)v(Pwq}$n=(W% zj&rKj+;Zl`mAVXQZAtNdW!5W`|Jr=qh zvSU-CQBT?UI!(mpxp*fr9Dl_B(0gS`sZ_V)))s&1@c4xy8nN{~_OsVqF6W#$T|t@j z412;Yy1V{6;G5>3OvxrG>~!47v4?ly^LHr6HhM1)y&PgXzW z@^WLOeliR$#4yAym9K)Ai+?ZWtb$V7DWb+lk2%~`t_kxSxQICU#*F+Lj|Th3rGO_V zzzEKb=T;%806QQSOoeqVCyJj<^S6Q>Hs%kEshEApIdl9tvTftNy4~P%=4piMgv{ks znh0%ORuhYx1YXz>M*f_`Rfo<2F+H;*52-kF!eLI>RNkY?(&;CE9A`i|w`dwv#(OfK zFLqd7GDlwgc@x^;-nF{kdwR$h1NL(|{f3XHa+nslJMV6vlgOIBCuy4Xw(1-0a-8sN zaQoFWDBh2u6Y8=WS@{*0Ash3HK2EW03}usq)SrKKV0gd`&Zg8J-5+aQ3z2&Cd)#@D z%01XPfVJ+YAd_>l51aGlyG9Nn?OKK&y%^7M@vZ}emahdH@D{+sI%odD6-Y&5WGwjN z*8M?DDree_ft?Es&>Yr%;mk-~1i-TLaXMV~jG-46< z_fhz}66XvNV6Zck=_4T*JLG;jah$#Q5#dY|lTCM4U1CvVGz&HQQ0sacA{}7c!ddak zkvKJDOVcerGK8`I=AJwcFgNYv>HA?T8xN^!B?RC__@98qs8a6FRq~EzC0M!T?EX1; z?-2qYaY9U!(upMxp7`Rcm-p7QPR=Ud)WmeB`Vk(i;Ff28(gT)~L#wJG)8&5f!GD~o zYcgKTS_)j-q^^oud=Te~I-{qWV;VX~Xp~bob-atOU3Ea|1Z&JkI-Q-uBstQ8#g6)%r6-AMV}0Vd&$Y1@Tj^ng3B{Gpg~FR5gz0Fm8= zp=UTK28VA^mxG;OcB3@Y#A<}!UdPEI|X1kaY5(Ua03Jwbp3Iiso~)G}@cIRg$Awi6f-;)q;C*m4 z23lmY>>iIyu&3#Q#C9ZtE+$~$l-n@h6s=_+^HwZ!2j3~QG96hNCikfc-S?9;) zB@m@+|Z*)Z=l4kz|b;F5vOhle*TR5^7}S~Q_o z@bckV_WEx!r8Eb>@zv+vh^}G)<_A9@V=oPEqBn!i5LeU!kOq$SQQdr@)h@+x{H+r4 z(jv|TU=K8Ootqu==K>CNtI~4j^$JRJ4fE1$_1DT6h-}Zx?glh=`{Dz4E~kp4pT{@W zq;$a6JCEz^ZW$QUtk@?o`A>m#!C=LfpB4OyV=Cwzn10q#0)3~MOYtD0*H0nIU=)O8R z`Mtkwt9y4Xv@HJ0Bpp?R+7LBsk~5KFSwoc4rL9Y*5R@p&_wF#cGqbw9M#*FK)_ zNpnCVX?Gptk!3XNKkaR1;%_KH$E-`i9f3DVV=d9SXKUTpBRKdXuIfOFfdkl|wZ6*} zMmgWWWgc2y@m~}yvp&YRHnx|7G>YLd5g#MsVTz<7A(OWBb6&w%8wp*UA0w_6TxagE z=Cpcz8LhKJ^6rk8hyFbF%AVBb`=!$p8$KwOE(E@EVEpql3HE$goi-;A6JR*VcXovP z|L&t}?nzC`pF45r1>BnMfAY$KG14{-z6V*jQ@J@?)(ga*bV(KG!BvWZdDw0eEw|9lN4sU+y=J3yPc|-FQ zFOus1UFK$u(?;`OX$ywb&90Z?esR_nSKJH1Ru8ND$&e(w+}VUxyZTIVPt&-CP|jg| z`^v@Kqfi!(g04yK4KfvD)f7%jmbUd@yyDj*8Ex@B;q6k4zG_$U4~_72xZC16el=+z z)~&h;N3_^jg@R$BS03)``L-1z7_P64dtChs_F))LPw~1iUA~+_kfnFgB@s)j4T&-4;}-{ zj)>7p8B0tQE}F#N!vd_EA!t<=Ct&V?Nb!GN_hc}7D4$|fc$Nf2M0)!_@9+C?U2%Sh zQGG({a)=b;wL3};(cD7>!$(h&sShss@RPkSEYSslP%Ok8lI|CGWQr}UXup^3qf5Re zHr+A*Q;B#``Koj7>o4bKJT8JmQeNmQ{9kW$7mInk=yt}fy^ziqfKGE~v;Z~IoMZp| za;_=<=D%U*K?A!h^Vpx*!SCh(?q#^52~ag+Ke22`077f-N8xH-xjXE zEGR=7gqMKG{LPu$f*Injkq#>H#lnr!nA_=ZGDz=FXt7ly%m zH<%wX7J-#Ccoj4@OU^ua{8>;sd^+6XbmTR@DvS2^dqG9!{`@k0?3%Pgii%Ue&_&(6 z@U&HOxhp~^8HO4;9UPD1F=8KC?D}Q>#02V7m)`_znB(;A&HTdvK*4&S=Ho*JHr<}E z&#Q~^P`W0|+L6J@$><7Qg%Z39`q;ZcJR{mt0>=TbAouhqcamF0U~SezW6yAGoiE zkW}ZCf`c4HL+fW8&;r-sD(Pl_9pHs7%+}(dh8Im@EdGXrt(0>S5=SyfLt_u&JQkl^ z5lRr>0$xm#@iYb$Zb|l-UD9=HKa=<8A2-E~Yc@V=@E#A%i9FQj-?h};(b$UQ+PXq@ zU^8>NcF&#|zgv26JH&G2%x>i=@691zx)jpgUNEwNTf3!`SZuXso!C>bs+|`8*gEQZ z{1;bU&wFdD`~$A!Z~1sn+U8UgJUK#njr!#(L=U*XHMUM8-F#t`^>T5p2X8)c0#6A| zD>*Di5loxIb|BC z9U?K^2xwiQ@hW2}>g_F)oVVAWo8|lLJ#|snpa_0WcH5!LG9d!3fX5d>FFuO+C?q4(YYqb@?^dR$gu-m-UsEfRjocjw%(^KxKYrg)3OYmC+A!2V{ zgfk&5fk(kcWu|AsowX1JaVitfg7q)Y`ro;V6)WIgp10tNv~i9#JpmX0{Y=qszllUl z+0|~a`YzZ$-h1oaZ8OUuAra;oV?3t%Z8|Q zqaqwNCM`O}c;H4}qICN@P>V6LE;@^EvC}pSSlmn*np%Y9z*qNp@=I3p-;;~PmMQ)Z zR!M1hrM~!{p4v%G(8sB*R#eE8HiAI0><3;?5_20+$Wgm;~?`lk$7gi2p z5sEZ(GTUKgAPR46|Zh7u0%O<(-OP!$qEh!I@yMM8{*=)=u2; zU|hsf&g*sGdL81sAKXW=kP&(+!OBCJ2|TN1Q}J+h6P|c5I2P@?54@DLhZC?bsYEJh zkIbpw!8_`)Er7G}gIUJG;PpfzAdYnE^$ecvST<)-%#^wt8@}Ne{{UxqWz04oACZaJ zg$@UJYqT`xf<*C-1X_(fv2%(<_RQlppkGXY%!`Us80tXkaGFstltiUduLZE+nSRv(E0`SH=q}GX2Aej%9ez#={{332iLb1>=5}1f0XsIU>UkI_lRH+`s zof_Qv;eiLN(ucpvA;R1X1GiroP>;ll!P|kkBfegRR!BK7bm8U(3kSur&aJNU!(aH{ zf6D*kxU=rA%SC}f`tdy4_sE%Hu~B+_84J4*VLU*}GcD3SA!sxWhum)OUwqHt5ocKx zl$;q(6bvEJs4}PEg@&F?UNDq*ObnmY8oiz9z+H|WN?w#Tuh;L+bxTrM7 zI7VP)UUH{tfWz-XLm$^^z~O=}FIdHQ^!U`Dppai+MZW;dSp+ZcHeUJX3X2iMTuCS_ z=bd|Yj9r_?e9pM}-DB`(=*ZD~)Z>|YyzXfmwlo6UmH7NdsClg7{_K$6sw_CJ0SoWI zmt-odwFM?CdX8<_LOicXB!f|*G8H_ITMvtdc%F@>Eq5zHqPd;C1J@%h7}9Ko1stl2 zP+LHRt5&g5mHIkCTmyz!mPD+0-HBiiN|At@c9j0i5FM zb9iLHoY`*|dc|Z0108mNGHl@$p`C!qs3;AkIoTl?QN~n+?VdK=-vECf45Glhg+h!S z88CjqJ^(r{RbFQO!40NtN6%hI=C#PPhG9!mS^;i3V*>HjM@D8a!Vdy=WbS77Xm2o9 zUnZuz;#H~NnPOy%atBZ@heV;mdc27LYrRQiy2e~GSvyZS@Eql5v7%HCCZazUdp}0B zjzp;NavJtDZe)vo)&%~eI6J5nejRDW(C=;z+>Nyc_T71W(Z}!?_Er4mT{Pyd*yE7G z#O*g3nU%)2xA&Dxw6Gp6>;wo$WH=)W>S&W_H;=yy=JYtdbs^G%#Ah4 zPr?M53Ssd3vi;&^st-E1jp*=;)>sg?_?So~MEwWvTvy_lYp+Qm3Kk!L=zbeQl?A=_ zhvBO(VwES`ZLPWmc3&oNAp9lO{!xZAwYI7|o;+QR6(cF<&d8%-+E~`ngA@Z?(eO)I zkxU}CC(zr=iD1kdD4qiz$7sp~DGjG51c9Z)iUh=70hrR1p*n1JtgHRLW#6M=+Pp#34+!9-S+f~`S3oa-pcLrLJ(|{YUdma8{fkU% zrZA#d3g!QWHVX}oEtHb}KUBR7cvR)J|38ySGTg&O1j=Pl+S1lmRBDl;Y`m4zV=L|H zY0+b4RNA7oH7KyJ|eTo(u3T!W0&iGT>1QP9ttgtsZZ zTh?ZNiZC1^lEzA%ZQhHHtxUDg0cEIM++6Uvc|0^-Nz{NedpRNOra8eHnBp2Xz>$}c z`$a5?C9ySS3@#?od@s+wm_Z8JS1Nn9Px|kfmEI>^!>W(`?`Gvs+0ESJ505?=zAuDh zVv;Vs(k^U!gPBEk$0|*P7Vmpl)G-^T!L>nwoZF}GOc|DfND9uWB`rxHd;EjNwlM9*E`aWsl~{1(yit|2B$}( zhG?*^RXO`9L8JG3#p~Q8mR({Hn-hiHN9LgNrW{7k>xrys)~{3tt8Z+`50$->W0^?n z_=g%NeeHLj-?|v4{tvLZO=j#%c57^n$b#TtqvJlN<-`Idss5vtF*C6l$*^KR!3NI@ z)`?9|NdAss_pemujg)0AkR6@&@)I_BAa_hH2D52!%yzqbQ@f+%dh%VOf9lD5mDY~H z&MpFV$}`7v(E4!OSACqDJMf6Ol_{%xw*7!ePry({+eW~m()LprinK4p0MU)8yj1w( z`*?exVh&g#7#yiX$mY_M1STHHlzOJMxebL&ypHaQQ*$!=zw?#1E@*cbZ;T*0Zay<} z9gc2Xc(>y_k4vDWf1~oEx!4t()!>?I8~T_;*bl@yy}5y9oE{MOW<2KPm9)n#Sta*W z@0FdiUv0l+9?5=Vg`q)w;aXdAt&Tq5pEOA2IGodTD9ArLFTISy5~gP%I2rRYrG&I- zTly~+FYVdOy;@1Aw_b%NZ$1|G^IBOjq2b_Fk=2YkUxo(t&WEm)AXrZZr>sAjG3jc> zX=^FXQj@lfG^RW%S-CM;*eu#z)N|28k6iKi(3>WG79D#fLUY*?WKaj8v8Sy3m}ex| zFaFb0yNCaL?W4}oMBu#rw-tbH4TmP|355e0`^)&=+*XwzoFBebwU?aO`{MikmHvv} z*9=uAJbYr(>^cd}!NNba@`%EjTh!mtsYHlXdJ)^8H4%sjvyeXtsP^wIr>jh7&#;J`g<*It?S7C z9g{fVUGB1WFeDU#&tJs~n}*ISOp|FlH+5|N%gCNdiJJc;{l|BC9KYw%a982n7@#1Wp)qWAMwM*?6Su5GwScnJ>pn6PHVBLdhO>m|Ht@50RSc zs`YkoTffq2hUv!ib_Xr1_S0G>^CSbEErp$`;C;S96eI^fw=Ddxww^L}JRzFmQlB6`AmW@GguS@+gk^eY2c%=NPVgLE3 zM9rKZpYzE71V1$B?NDfSn|y@2E8<=9W%03aP9!}1<7?!QE#sD_lOt%E8kg4RhQ@>b zp~?@e36g(UUwF&P%*VIw5B|GGrakiWf+0)80PEMu2_t5I0(wVwRr)n@;sMq9wTD;B z`UV}yy;G-wp2K3hjE&Fh%Kb4N91vgI`5R@rpR#4r&2lIPNo6PJiKHx%6H+9m#6DH{ z`+}tGPO#UcQ<*lhEc(ju7TH?#6WaEFyDWiUAdJa?y-f)DrbOj|+{y~?wp3uRxc}@I zMz{~mTz|pOF4pHrAdWn_czUz%#>nh@Yc_NhuI|Q_It;Yc8C5r-g21}jKF0c7LCdKo z^;yL`^?~PVyQa3qhV#9y!Xb=xE1FFp5)&_L<=o>-BpyiOslaw1*_G3QFJqE9$)@!- zn6>?gN(6x8Pr)>ja=EWfhT7sY8nklDvlT{QOljB!_nHEJ;Oduie@^QOZNXRD&L1>x zeD40TF|S=x`yF;JVNM)v(D$|#C$WKx-j|t<#M^@0`a<~S(K_8LGd=mk41+$*mcr6o zFAUjCENd%wrq7P&)2YH;3;jWF4s<==Zo6IHT73q7#{K4;36*%@6BYd=TW&%Q@0U#Z z;aI*p(9GbcXwfvp(&Tj)8Uv_Ir2-+%F$}qHc1Tqqmp02)l>o$=TUh+B=Tf({nZrEG zE$@$VfNV7n+x&aRKOA_TJa?7UrGgTN=2-xYDu!^vc_L;ZA%ZiW%BXi zLlV#bLX8=Pu*}HI=&$yKCNl%oSFUpMQm{Bd|JA}jef({b&8d4z9v_8U zcKBdz6NC!v`P$G{gMHCE=`Bt^X40H~zv_fZ#B^Rx+zg1Eq^qe2gMC}N0QS5UloiHc zEu}D@ZH6LKJNzF0VZ>o4r8?@z$l}8}o6lS-8nnNr`I&|uyXWRTOFMSlvw8EahYOcJ zRQ@08)Z>t7>xTS@KKy%(-q>W*mpoqucEU2yDJwK_ULJd@j2God%? z(3D3L|FpB>&p4vkU-H1gWfE+2tfeZy8g@eLzYbmZMP>FgjlXux>#>C6SDupey8bD@ z8m;uU#IXCstAan;yO_zr!9s%im*TeLB}HKFrYTCqwhwhu31LJ&+@dES0?EW0B$4zj zM?97<4_Klta7f=ugN%hZnoE6Zv5z50a{c9Y!JIT(##1!$dqZe&JKzo-<%MPph6mIj z0A0Ugn{&7#^UUO>t&hvb32Z04e%jhQRL=)UkX9YhQ|r+9yu>$b&v7@jvZYivr)tQt z9l2Whjg$;CAwb8&YO;dUwd!(f3m7x32zDJT(>cgH=z}GuO_hDBt=+>FW#%E$JRw9uXaN9bcs}B1endfxImB5-;QI zBMg`wSfHnDs#vlVjL;GD=R_Q+)8xYvN^=z*D2Qj0&T_jk-hbb^y#7Z;%=c~SJoR8J_#mtg5w8!^PX|`9=o@$&MS=V?+-1hxk^SP53ArUrI&GIYnX*RlG0GB z`KWAB1?O_^T-Me7H_|BAhAMec$?%JB8q3bD8SD(;)9CZ}+6m>W>+}AG!Uww=bZY=m z(F8f?eve+UOLH6G@aA8jOJAYHP5#E5J_Z z3DZUM@kVJ=`iVF5I@|sC>01~7Q)VT_(id1hClh6~0l#6V$Wx*dOGRwiFt?@#e==+y zcU#+j<5{)iy-@k}XTXoT-Fk~`Zl+Lt`z^`Ta@^bvBDX0~?ev%`s(-BATxA^+w^m>} z@V&O`zpzeM5A$tYKynDNP zOT3v%{MErNN8gxn3cgl}TyOhM9+I%hizjL?(__IHm^pC5~?C&>{MG; zN>NAT5U*9Zzx*n0A<&H6PZ^Ddd91_~aKL_uq7>3e>kH<`g}Id}Ks>M-D(ZR&2>5h> zog`((CL7%oPKRw027^r|wr%?jYy950z?0Q}#{-}J;P^%Q#$gHhES5^-lqctsYlS{~ z)wfqElRk*jZsYs=8+a9lAC8?^e^MOE0D04vwJ>G9p#0g)SXWB;no9-K)?|{aA(meXCZ(j?$L(pGa{PQF1^lwOYlwB zP^Jen|L*_!z45_>8ysnJWL1@I@{BbaA8zH3iw60u&Cj$~(sZe=hytZJ- zZv|cT&283aih7CQ!-tJrW;4UozCl&F@>oxir7SFQni@qad5dA2l>fc<_Wf{Z4EvNL zo%pK07<%`K|C!D9(^5i~_7J)Z&`3nm2{UVlbt~zqXCoAVL}zryh4(df0e?=BAET2Z z_(MhTzt34N-U4wem^G4_u;kNT>Ja`pH6rVE_j$+nw_AE*rINjK)7>{99`7eXXu#kW zu~E+!f{)V3hmPaJNRmws^~Xn87A@s3#bCGOF<2!FXnOdQAIDLRY(0jTN~8{J2cp6% zgZk5M)v07VOs3`JujeDcfqn;Ojyb8AY04%+U3N|$+{V_WUKak4O%58P&e_sq!%|^c zaZG3JqBmQew&=Vz2XYZ^yhjPbRClOo@Qysy&qtv&K83D0RqNaPBv^_4rR9H)n`x6MLge#l$76ANB2ts+tX9wV z#s4ysk1ad)BOQ@T88}O&26=h>_G>4{C9%tqeN#9KG=@2$PKPFjYbDM&{165lS-sG9VEabg ze-BBQZKM+@Gkr~Xra)Sa?+$pr>a8NWWkgCnw z%!g@=3W8cxatKktYEoYHY}AP>5^t`UiRv_RO9H1$i5al_S!*aWVn{2RFx=nGpy~fE4#%%fRqU0l`n(V)QhCfqb*Lh znoem8{X3vW3MISD7LTxoF)9~q6Ez@1Drbzx+)EWoAP!^oNn;XU9PbB(#7;}TR;{JA z;-OW3EEp!s=O(0mMNW2gHx`-Ip#gU_QW539^~@zAM1FvSB7LGMQr+^h>8LaXcY9qS{(o*kR z_8F?dDiS0$ey(WyyWV8LV&Y-%8EPh{vZS9%DgO^lZ!*$UZ68{a z{ZEf0@ZTknD+=Jd?2AAE0jmPTzAf!HDfq=CIr;KK!1Wgv8M?tRxSe>tGNpojFuzUq zv(O(tl;Gh;w0w2ybZe0T5TfQ*9%i5SWDxE2A%R?ec0Cj}|Km4Gl>YxnAR{p&zsWW4 z-R(c$X6bQWUXFy{Td(6X+1hiWUfeg>YSyC%@p5c1+gaXKNRWP>LIO{(XkUUb_Srck z(D&!!UKuma>?tY;@(;J`s;mmON+8RUT@#q^p0d3LmV_>cFfTtwN3>(*s&!?~_TL7W zC2ci6H=^0d^B?5kfxKB%u42YkU3RdWVP;9^5CO{IE+eIlpd)%PeKOZ+?%ZMjh#4Z? zf5FHdvh-c%S%i)lGeGa-scF8O2-leM7Zz3Nsg$)Qu%c19xDW=;t%=_EI|&av{^4R(};yIV&*WRU-Gk0gnUOU!)@FD22vcIv>{9BLWEe5J2AS z+96w*GhP3))egq+^$zpiZtbR+{Y9sBAW_L()uxkP!_3IKP{n<7Y+($tUB`UT{V~&C z(%7pMnmzDJVDsA~mMm&Ql`@`4t}{nXV^aU8w78EN8*JZ0pG8-kHcqY1;$|YtzaEy@ zse!D^865Oz92A}_lmuEAdlh6BxyBAc0sCOC43V zg7~#)2V$o&3tEJ4E_)Ai;s`TygbBo02UoF+I0#|CzF?HR6vTo)?BIi2Ypw{Ce_=!0 zOjTdFx%zY~_W7Gb_k&yKSqrpzQVLTz)m5J3M!3C$2r8TWxTi;;vA>{$d# zF*Y-{*5(!~(Ys9qB>93-Z?S7L<;YYn6%06bWsop z!}MdJzNylo-1sK>us@zZn$7EL$JNfKpVErpqux)wGk2P!$<)-wuYYC0GZ=!WH0Lwr z>HMAWK=vsoJjO1)gCJ%gTIn$vhnP+h!CahSO>oy_2!9fj=e^JQ4ju_C9Qyu2@`>f^ z6mzK!FQx?NO~sKG>}-ATBj3mi4igOb!C0Kf{I2swYaAVD|8l%UhlPO+3<~sW{_v`} z6+S;YgkK0^yA%*`85(l*N@S5Ll}yZ4Mg|O;kfQKGCk~=G(@}bAdXr=j@4GeeV3(KI z2Oe5HC~xb@k?xIsVdc#fjXLNcJN0La&waRVJ}f43^RT!>g?rxQpJ2b7IH7CqwTuN5 z14!G{hNf6XwP3Jz_mzEtj)_NnB0p)!o;cZBv(ys(Dl8z}3Hv>2rOX5rP1)_LFOz#& zT4I-MF5Rnf@sSDxLn4cQW?aDFu4>Wdd5z==cA}NGm(G0I2rRS-(RN1w!O^%uK|->g zQIWoep=Kn}KaR%AD~m?d5s`%C!SDA=DT2driUOyfspJTh`X$AN+ADji{WY(; zn9|q%_|LYlxs1}i$R=`=siDcCDWSOJwn#2Xmxp$_2g&a4Rr0=5ZCN&7Xn-wK1e+R; z%O2tPnND|8x2J29@-P6#sGzfDqg7i&3|;i>?GZC6Fh8Z2C1Bl{xV{)`VHcT zqs11xMuG?5h!UKB&kKw!u(oJt!b^VqQLRE2dyz$FgaDw;$igwnp=l0J#O`6tmU0zT zZBY59S436f=BP9nf5keHIIISk%y8;YEM(Clo@2FN(>u$5dhdxYOXSYwxwiKj7tCJ+ z3*<-qJ#|uJ=!(!Z#-hs4?S|R*ppTA{m5hyCLU<=Ay3hWpdu(|Y-g8eU^Udx|&5yqT z+GFPh|GX??HPjRdY4KPjWJb3P&go=92w7ks=0?0`=Xb5#pQxvCjrH&+lq;|i!QnT> ze`XU$v_I}Sue(+p)$=hj)RD!?TVwFtUe~Sp$mnh_75J zhiepQVzb2Eee*;D(6U`2KBbhrMz@%-rr@jS|`fRDWF{_yw0(**aP zkN3y$`g#cyfal1;aguI^&oX6L%8h(S>6O6u4yE%|zS4G!z6^kGFAR2gg?Y`fBEUAJ z7QtF5ff1JUq+CemvFa(&gVjZ!1J?#)hoM8YGl;2moQcFXfifLO-OBu-Xg-z#9WpeN zCjYEN6lrd5h-*$#$0V5)+W|Kn(Vm%5j0h}5kPxFgCaMq*s9c-d1O2q!-O@8rTT#7` zROO}6y=}vp#!8D_M06nz2-!$~r|{Jw^Zo@+*ym z^`iE)9_8DFG6=xw$iBBJzoFgc0TC1$CZq`}Nb47MSF$o=GNGtGpE#(Lf=>K2s!m>w`1gUuY`GO#OH>~iRu z5rCZ8HIR!Lsf?oSG<-B!I?zs9}U*n>86Q&`fRN0{B+b_6k8WK;pJAQ?z zB)NLxeq^YKQS!5m)h?snEcjaY_XUR&g?GpVyiHYL#gMAs7;pt{9)U(}GBX`hL)r zU5F|bDTpX-(Nu;VgTw|*G0WJ=$PscWyR3$>VgNt&crsH`;GAq8z#E?aX7|3(fWRQJ zgt~pIO!VY+?;61Kv7~5Fg#rdJ$sYVTx5RiF$O6Xzwi+D+I9i2pLxI^YG2lQ~_MfZW zE6u2d%ujG;L8}lqdw!%eyz=qDq@fd>tyzz=-7e4g7{tk#~VXW#++l^&HWvuo1lU`=BM5$$wC^t2^YRl@WCmT=BN|LOX(lTR z3>%66;yB|Xi_Sm#@6gkWSRE11%9g29mT;6-qRX*U2MmnB`YWNaN~?>*f_M&&rp1xy3i!c*~;G687w*o;j@#>i%L_GZeZ-&)pMk!5;0Jo>ioAB?z7C1z9FYH;@EynsymwmR!EwLtXF>?|wevmEcLmjR0 zf-N?}uybM6mX{IBX`-U|zAb{Ixf6+)_X{z`K3Q~WQ7B-}NvqMluOw^&CbJj!tk#4Z zx_H~KR+98e>z^)c3w>d(2_MR^_WTr=+uTp{S@wi-ODh2k58ewFo7`3#lj5Yi_)cHg zd`o8NFwHGjek5J{1WIMj{OiR%bC<1Vsw>h3m7QT@6UA?^XcHIM-3k{Rt?~-zynY%| z3mm6U_jneA1~uF@Pw=A0YCU&t#wtn%&VofqaBrSX5j0aFfrDUK-@REO>=HeVM%t0f zX-%@`}6+G`E;1 z^dDPH=o6h5laKr=d6l<;9!@~>JU^cV_HpGB1pK7JGqe8W>$7uxku3%XblD@^lw9E3 zY+9Ae9mn6bczHnAYmz(n4a<0JBWnF4mRdr1so}|O8>hjn=s!u``fc106nm@UOf`$o zBMm4^O!BWJXRH33mCaiH1|T=1=?wCS<)uv7(&{N5B!N30Cd^TXvEQ&Wp@f7dRgYGbFv}^P}eLFS#b@OUm)OaBs@ zocD??9eK;ycLq;38`i67snfjljGdX5(9H=mx65BW@8Wx#WiNz80O1U+O+!b6EVoH^ zvlZUx(N^Bi^g=KfMU&$PLE?7W9~SM>Q1zWgHu5@^dC~&4FgA0u zMQ&EH;=YV97nca%fa~6by+h;x_yY(n*C1~uqY7GM7XVRMV;p`q_& zAFQ&!WCnd%P>=P}qD6}UJB!JgY3*6^7bMv;JMVA2H;Ok5`$(7Y11e+wCKwG=dUcB7 z&$1}t#ZHGw-1Mq*VY7*-R9}w#NDk75HIi9v3R$#Ns_;xSWiiz2RClplEjP0s4{?}2 zyqK0R^no*9=bVu2KSI+3HqdW8_x+DT;q{+-Hi_CQbX*-avy~A-Nx-BeW49$zd1656 zXqk2*v8%-t82u*x_h1LY0))PqRK~uZXeOAH!t*WXk3P0A*8yQLkQUWxApmc*AGQ&~ zrw1#g0HBp8yOvCdIS9H;r)d$f(vFeCXkXhMLfI=BFcD?bepjsO^?GVD#ge2K_N~(_ zMs%G*xS`!ttfDd^HNL?F4#kl}I3OiqqeZiRW2Tpki4=>{pm33)g>aVcM%PKZ$UC7$ z1yYy%q+d>W?rY%@(FD@C8ix*bSy}+f|5)1Pp$M$jK&7a7{^8whN1Gn zh$U>(dIIqc=--enpZKHpzA5Mi6hU>kpiZ-WR-w+uk9?GN0ul+m$Q}Rja3^LuGGbwJ zGjs(^Kr;@c(2yW1Sg(&ieZk7dkO2lRes$PA)7Z!$L=Gh$2$8<$=rMCWYBVb38=oIm zy%MfqHNOZP%mY;*=d6XD5ZPy2e`uaiB+0~9-hcm`5pN8p5iN1iGx=IDDJy{6Bf>82 zwPPmJi^knY+a&kODg#_uBD2Cv;bNToW2}m47bEdv(#cCL?uzRVT)A(sA!K;a-W+yS z1-CPKhir6xf|`zDngC|jQ!5z)XV^1q3g);6bD)%-sIiTEjJEsYY`t>m-KH_IM9&KG zty{$xT$n44*J4|`EcI@xkYju0zmS(kICWi&6wLi9=Xy8b5{mtw_nY~0XpwYZx#BNp zT~jh@N*o^51|}D?Ww=aVM&60O$9nsdlA;*f;78gIY`AQpf{f@^lxeQa->h)rMj;Pd zMMmwXulR854a-&_=AtKA6C!IU55B~PBm!9}?b}dv)#Zt2e*Z*VCr~ox6SDcj>mr5Epi>7Fjo{;92A;eeL{8)2Eh{?&Y!jO)Kr^=}sY(x=^#6*t;OGH9VQgeNbZNWBfJ;hvDG zVQb?2Y{y&krOCk#V`g}k!9H%1p%PCqb`$lFyfw%Ai-kmt0mKMfEDS%4I6|hP;J810 ze-mplMpzX%IiKAgWtptQiCsQ(LNS!96OQwrMV#*MMK5*4oxQ>u9+~kUyB8SYMVwwMd^Bw z>`Df67=Wc5UEK|gs9r1Ee+SmnjZmXxf1)%HO%*E_wFh1tXKERU55L(MhU)_16tA5Y zQQBaM@@bGmZ3IUl%EsmY;2y_fxHhKsuX3R=w8Ep4_FlDi@AF8+f>*jJ{medo3X?0< zO$*HY6z#h!BQ3-@#g++IA?ewnH-oNJ&z&=taT)Et;?rCA)?53}blzr2tlUEbK|HPP zCLlz;q&s9rLR$XC9&kt=Dp8P|x5$}ocl~pds0D-`MQX08l5kf9L+Q2X4uwr8qYk1?V6A;-?j`GoQzJtNzQy zxiiYS+QwTgwcFcj)ZRH2_CtIb*~Ufd5K%^5t!O z{h~aOnKRk?hB3Fa9UXA-)NR(1GeF=%=RPv=DT!ADS5Z`C<^}nmxV8Thdmi7F(hG+h z++`l8*UV@yZ=IKa;~lpa5u-jf6_9-eU-@F~D5AR-uL`#C^|_;_`o&bwKU-MZF9xC4 z^DLu+?OW*BMysqUMw)#Jk@zNZYR&mjcn6ECD-b0aWeMA=`7AK5*GlxM@uT z=GMgwB0c!%4=$R}u=4k)f!^3^NH%R>z?F|u<^+GP>WSlYJ91uao=AnEXnG|;EmzQn zG{ZHL@DC#H@{XuyciVB?DnY8zP^1u2FbgiSiu&#q}8f7O+0!W z{~0|J2~=~!;qLI#45lVo05=*PKiW8C)Ag7NXe$+|U8)(q5%wJI_E9 z9`6V#WD8Fl`6VwV!88GVDBxF)e6Ic%JS%A+vr_L?NNcRF;u>N?HEzgnCs!B%`QvxK zyLxco660Cu1lEV^n4CK2CIy&4g1B0UV+(hUA-!T*mmywc9x{r`{>`l_VaWV-RyN6J z>KNZ$!5qQS3h1n&dhV-J3D~dA)fbhQ?a&T2Sy+P4zu;+cMkkWyQPhuVCS_xx#Q_Gv zfToZIALLi8&^4H!SRTZ?gshb?#nq8S9R@NU2z*iD%OxtdNY>T&hQGGMGP3Xe+On4` zW=ejFr9~2Evq*V`bnh8qrw}$(-cHKU=@xNd+P&Q@5}V$JQ@HPbyr?~2^nZ2K@bYlg zv64O83nilrHh5tnen)F80e+n?JRGAT??subICh~5Vg~dGzDgV9)lHwwjsY*{$oJwj zZ>C4{_K>!al`_)vQcb1;7V0u4QQ!&svy4v;u!IB;6wVxceCyMS)|A8K6m&dr%fJ|I zsbfRjb7p)+T3=0oum1m--})!Dzu5GqgE@zRm-m8BTuEY0@6d)0B$Zj_vJb&?&HHNi_WlTqPR>$S)0wi2PIR@b2Aqis)*zd`KYFJ z|Jv+QgD{(r?YVu@XB(m;MTDN{$5KhGu8i_RZk{6V#LIDb!Z2hUUSzl`nhVP=j4A^k zKO_N7_<|Q|T?x3zF^sK`S*(aG;t)@VEDmtAn?|A(=rb#O=chSP9sI3icJv_cs-OXP zy+(aBHpVc{sxx%%<{^sZsM14Yq*)O|IW(|cl3TG&IzHW2UY5-@G)>>c6isRi(Xm?D z#j1Y^;$h;|E0@4jY3nvoXpDjrE37O77e~(})kV1pF}gXjMX(VM=>f6T4rs{ ztcjg2M48>AVS|zM2t-86W*KyVxQpIcZ8~dt?@LN-_*XKo5dY)$NdvBrfruMIFrR_q zUN@*di*VD^U$=!>d|*L>#3?1etFe$g!Qnv3C+;yM<>}FHD6wpc;yseLJC)Qa8!HQN zC_tKfCqgaVeTSHNzM_xMP~l=D6Mp3Ha%L%c(yD^@@1Z!`L|ZWBpTS+yIu{I~XP8*< z!DdD*7+r-{bQB#3TVP9++q`*jw#hBub<+!$%(5L(I^k7@YZHI1Q9$xd&qGSYcT2`d zlb5Ki#o1P{6lA-BKB{0$0>jA=zXbEBjY-P2%D2Kx0){inO%wusXSE^2jt#^7-K>y# zc;zb`q{iq_B!!7H4bd0PT{06}_SL39;Sci?%-bxSBuCRc!}=PpPV@e5rd3mdF;#}` zFonie7!y=I{BIOCT$fvZ+WnDS*?#uAi(DnM(1cdrx|yQ?<4((fQ~W)IN}k>`WELHG6ayr&$Xq#cj5vMR8jJbN@9Tzutd55X6q1C=>;2>^>HzS$l5@e?N(uj zxR3eTCrGrI9gMr+t4J5^i^!$nzs~v;TbOSKejyzs>d7s4j2Bz9a_DiT$aUlS%fGBJ zdkKy^unMZf<7-j(pJu6|Nt)MAr=+y!+^csPMWQf2R~~gY-bFV954uuL$doC~?@S$ibY+Pg1zpBo6?# z)&R@tOEYN8qn(O!Ro8qd>VMd{ZppbU&RR6>H+0LGPCxS8Dl=I^^R8q*t7w*!728)~ z$>w^ML2(^RWM#_}9T+Yd9z@6F9sANKm5j#sjvz_X5Z`nhTbY&Ar`6_HKCqQEUlI{F z`st-RVVXm;_;+#G$t7W9(La_k7g?dhMdT}g6Cfh!@BdN+=NIYwJwj7pH~O&R}} z#A`T3OuK;?PP4QeHXvc;YE?JIEj#e5y84aJaSUXdF~FFAZLCe-eE)Y%R}Nh@tIUM5 z2)D%9=hgJlRepO+^!L}t=n6X@_N?>Hfk{#M-ob-Ena>$N4zyXW#gfVXS1oicrisD) z8v>5p5WLXj$^gq(jsy+uSVY){53V_@KVXUcZhqVU*aU#lU~NofMYi5_!NNxCWa5ZT zjY|~!$B5J@XPekt4`5}BlQN%@Zr z93qU0c4yt!%fkMQwck`j+h_n9N0wRQf9LZX&+t?6QT%U@O^WyxUl9us;< zOoF2y)r*ZDN$>{VLJBi`Ogd%CDN$Pw0c0|3OpZM-&Id~Lpb>4!J}Iw(<9yIiY@63I zH?iinmNd5~i-_FH#_{gJb(8NO8+&B4C^#7qm#@%x z`A8EjGh5)0-af1JxgKxQHWlm0$$&p#Aot$bP~?+bXPA@xa_qOB?r66yDvAkO;KD=U zi&gd;=j$2sbAperBWxW93;k05oQQ7fS!5W-Zw)*WUnPCjZ`<*{oRt5Ot`D9dDZt3w zIm{EQUG*=XpAFy{DC?@&hLDm3P?)MqnzCt6;3H@pzxif=@2IlcZ(JxZIec;uVcGti zfoC(Co6M9kBy-kTadGOm$Xe1O5O@v-yB7!ed_PPZ zFpHO)Z}2qVZW``KC}x?O(5Mc)(KM$L1IlYyPl_)?-Rhq8%!Ekik7i0>gW}oeKp_{_ zk)g;lwjs)K5_&ib~A@n=69GIC;G%&DVc+nzWm3Ax~VS6a5TbFPPt zeW6LCm!GZYOHUQ)XSfGR4%EHhuT++7bd1ujUOmZ{PYT6D1uooSwp%j z1HJsMjU)EWms1^NcgZ5FKdd!efEU>xtCZ;5zmXAfau9sxfNLx?CrN`4z0B$Ae3XEk zXGyTIFv#C43?ja1Vg%u&&n{x_i8B!s{I^aX=Pn;O>Ol4D(@ogVCmq)X`VM(HsuJ_$ znItrWj!d3ZR`PWEDgV;_t_-Edqf+ne}iEFtUzbRNf?xAWDtQ(<{n8_z4` zg?Zx4lOLPmIZ(^nm%N#DxA#pW3dNWr3Hd<`CaQ~&LPKItM&H>~h?_i-1aZK;xX{7> zPzvHA$H~pE{;1%bffTv~ZJ78=1B5xt`unnB!%e@R&1;BEO$%(z>FNQthOd=rdIjTwuB{JHr{YtGqLcv>5p zPH2umQz89PQ|Eb<9GLu1m+JMY-3MKq(c$9i?sPe|cFrP39A6_*4T8syAf2kX5T*gvl$)wul zIi6D@NXqJI*{W)Jk@F{P`*F+uz`QlPk9ksw&tm>m6UlLEnTMIsQo@2$)0p>Jn;ztF z3rUW_7%_;#%iHMG;gN~9Eh$*$z4?K8q$@gD4Tu2-@uH)~*zQDjbpNl8EEvIF6xtUbok-ZfJuO*`e0hZ|H_tWx0q>;w~SQ0p(3Y_8w7CjzRx(KrfYf7Ee z*XFhz&X4Gcc_J}B)Eo{z@U3*K9KHU%B~o}mV*mphT!!dvA z@$bhcG!9YfBsdeM`--rC>EUhL92J28hU$!=oj)iczU&`Sl3r zC=u1{scK0Yw!0jeosghDuY%lpL7Jz0)y=unud7><=#`=-OZR%Tgd|Btib8KJaAVZJqtM63ty`A0q$oe1wrutlY&4Rkn?V7!xIT`v8 zV?o_snd_DtN9AKY&$%VH49Y~l4&pcg&T9GFqf|<;p%1M*a0hcCR*98#du&@XbOv9Z zk!%CI;ob2%hO2iM-l~YSMG`z?L!#L&uMa~CsHaIALslOqMAjQgp(v2KLvBva3@y#K zUA3^i0hS3GLAKr*Q~uzj2P3EYwm%+ikC=RQ$SoJdUTQdbS$<2#hVKqN?BC=V8QAt( z=`*irTYuX-Sw3L)FJqZ{Q-vGas-q99x01PB?dMx^7Oa18)1c4qb=Y|2rWq46>OenN-ii*Di4dx**qQStIMQ2Tidm%*JjiOjUV|UCO+$x!QD}!FNW6-#H75T zX%ydG1u#u%JVF}@7|skRi#_@8t+Qq)e7(e`5RsD!(!~$MSla5Ierj-bOY*4$jD&zQ)utX`9HFAco4UDz}>eWs=Yw5z2K9oPxl*_Q*yZ7Ke@=V?QR~PRj7SMaK~(* ziW^vw2IrH(NS!SkgIif}5{$4;I&7+gew;3`L+-ONUtwAvkc|=)p|sXZ22?#TAoBPH zSH?P1q8PqgV76QT!|IxJQS&QT)&Koa-7wH)E*W!wVF8(QTk z6)(7S_w9M_43=vx0t-{=G4Z<v`Td=DvG*9*$G`8C>^oMn&e?;7!cB$A=_3Ww2ANxB>$|EU#Ors=KX|v~MM4 z`alw5HfoJ*TzqrzP_vTmb?TLs90iGR1P~9EsNXqn&1<1=U6B0#*0+YjL+j#6BeH85 z3|!7sMc5FC?0qeG!`arCeoCheml;V+y6`dMa^)cf1y=HMqm|2T=}VtHwD1W0E)IWv zsiI5-L)?udgCFa)36s(jjZ9@kAee=eFa3*jMl7!2O}vXY$JB~R#`yj9XV{W-XI zm_5qryiN82ExaSsS&RnDkzYb)OA*mDwU6v1+qi4btKuF1O{5t_o+ZoK3L6?*vgqF~ z{o*9}ZCpJ3>dh5qo@ zFWd*&%)8}h-+tf@gKg+rVH@T%FmHmCz?Or*1gEZ+JGDlek-8DzKA(V!#BgX@^hqqw z=H%G28-xO7+s=F}BSRfYj>a5nYPsq189p!3kqjw^L-0{7NNv{2AgpsM^Z@(j5pwpZ z=LTESF<>Do9r`W%d~=dvRhfF|?hEk?BOBcdhCKZu?K!H2sm9@AS;Kl-C1*=c4)SF( zcfp8^*pUm|b&u#4-7sw>$eT@X!+b~8m%^j}8~Ogvo`-C(b}PK@Nd#SwrETPO?3g0l z#NX|JYFUA?z&;2W7@D44Wb=t-lQs6=X}p3sb?9uFCujFP1*pi|L%WfPnRrZ2Z`QBN zw~O2)ar4kGcO8ZU>9T>%LY0y?-IR=$g0;MH*6u;q%zZHS+NkyhzBYNq@(S<-Eh_%3 z%E_QB?wB*J#72H<`Fn3qdg=AXU#MJ_BQ^)*Otoa_Jlp;p+`=&LY?iYm@3c!U^V(~3 zZmXTQA;IU#WeP>=O3VHneh+e6-jOds=O=>3i$AK;A9QW6H!73eZ&+9jdvYm8v*^&o zc2Ksr4cKv_FPPtJSq%VBCyT%ngjwYW1HJuZwO~QH^79yBXW6!yc8Q)7XcgpxIh08V z>YnZD*1<{v-N*&tcXk^-{lVc?m2dy{CyT8E_peXb3vyq3l(2i~UnK6!CjG%xx1IIw zJNe<_-?04ghpd{*_Pl)=k-n)q57TK2Tsi6N>Z+U{4n~RVqXc0e`MXDCfyvC|#dUw9_!Vw&#Zph!R&9gycZ}AG<+hU*5 zsiT5eE@n_RGIN9okIVu}sh0W#(sf5hFWY|MePj0h#QA%~pPEen?aw%}A6k?*Hpm}h zA0O$jNJ2FuT5`^1ea^Axtm9Ns97ZBkHUc#Mu{1dJjbwV1__6w?nyY@z1|lmpL;9Vb zEFBKD6Sm<@oRbSCCy9>-=E8}?qwM@oHpKX0Ibb(HkVsi_S5J$YRK82szm~ zuS2~E&}hYMT{X};RUYfAgh)42(+wxkR%z44A@!`W$jFU9_hX$4tfM$dB`Hc2rpj8L z7I$WcbfWLfWee_n%$(zXmnJN;uFkoV1WmXz9+E~3cE@@#h4%6cd{AZrVg50MZ@fZS z>SAXgb`{fj0G1AI4j%r(wAQ-V%k}lCdCr5~LWe^iHLG(oh?6?5IH%Pe!S^{2vAVNw z+Cr@cZyYBN8{8oL#$68k|Jm9*iqiNbOYS-qXSjXnh-Mlf&l}b7@@ee~y%QCr zPn8b&ZOSn!Q0Dz+yyrfgWg3IXZ<{Z~cV(GNhF$%x;sZAh28t}6sRESxM^>9HtEH6S z#)8m%V_b>NUC`Xe5N#JirU>D^jVkHV=+H~R>1Z~9$9Bp6bI8uPkyjmZ?0UEW;tSHS z5*?va^lJHGX~{9a?#kr#H^G*W;-nY_)Eh~Pdq}LGOO> zr&i*Q$U8r*bPxz5q{K4EsZ1OZNz9kSIBYkPI!aR(WfCTdI%|eJRB{c=yzj&&DQ7!8 zn~7b2E7=kk_PmM{Zpk8j)-HQip5?Plm`Us?rB&H~mPq5JDi|=h$&vgmR#Gfa zc{bAY>*sTpz_hgSfyrMl15;-D6X6z<9+wBou&UsvCVi4+Msr~q1pY!t|A#*deoPo_ zv-MjCY1U*)54-;iZ-(EOul1{o#TNF|nr*RV#mz9Lk91*H_AMxy9+Up!cJ(5KSvRj` zOiJko_clky@Z28}IWIuuA#NfLS-8jUpwd@BY7KYm3Lqs!VnDhlE_1%K!jay^u)3|y zS&^_8?Lvm}L8buh@?L9%p>@xRWc)Fd zv$TSDj@Yybyf=pPLB(N#ojTW+$>pJ>?1*a_^ZV$e;ssukdzOprjL2o|zg>FCQkcr5 zHiS?0&tiDMR1~KAJaZ{>>FxgzaxswNGlJ?dlx?u@0E>Xc^>T)n9p|g}4KJ-v>QCGR zv8BOOP{ssHy_bTw&9mrr`cQQhe7c6u-~Cqo7oQGr7li{qL1W0C8M<`y2Rd%}=W9s= zmQl>GVSAE1%NXa3farf8cvZ6;uMn~J#Ft$TL$Lc5#TE}g28UODVe<@%us!QE$whw&9#b&a_OKk6 zH`B7002m(yre1s{n0~*iCXpP7Rt7z+(@Ve4M-gosuN7i7sxAVuGDzAdiC%cyj4ASF1AYK+KxFkV znmOMEH(owy3i~@>e_v!DvW*v{$T~J`D#N84M-ihVAU!dnmj=6(`8FVo&YcGg%BiJ` zM{tF=kcCKeo2jD0N7{03Jvw0BTGIt{TlyARp zgWLrf=GazE{vBbbyOF|8)x3cey!%`I>(#0!q>ER>dnj#1I*<(%uaip$Q267H$laS( zE|E0A`2Hf$Q4lTtg!QU|K^F^msiZAWA{B+NGlk?`{EQo-pcE2}Tb@42REFmOWRwe? z9$wM#+!L)B>aJ7Y3@@%W!)sTUmu+I7srV0FKK7Q8XR~s1$sbA%q+9ya3sAK!^|H9i zBy!vr-^4Zths4g=?&T+lygQ4v)J=PCI(JM$*nOI8+)R=tCKgDNj08t>b{Jm@9S$y#0sp5ldXX zfFN->#ti31nDve}8Xe*fFnIH_o!7lC4m)8gQ^k$mD80*99Q<44zWHdS{qXylQ7BK= z=km|DvxsQ9bFN&z?@{uG@@MJ>d-dM;%WCI|8~|^|BB0Joi(`gmJ|mx3twpi#yee{! z)%AnW&!%BXwG-c)tr#h3Lx=k7((hjQ`8Xb&t$KfP@q>0((6@T2fD)7c8Ff`Nn?~|!x9&y-QHeW0Ev#^G*tqen;(-g*ne4U^u zUpExW+TCu%w-`Fu0P~)?E=*}7fGv`FWW}WqMZO(n7hZ35{>h0p0=P2p_9B2b$&9Uk z|Gg7uBY-Q}+MeE@yYD1~w)I}^*zsa2__jj@#BaBnCw84B`jbUuh&LujgpO2*tgKUR zeaD84cjx>wwLO3k+Fl2<=4*we*Y0(rh1~__9qra^U-|IzW3cmpUgq9`i9}kYC1udJIDb!k zh*JIk*VXyQM^T;o|IF@YCqT#qP!k|zf}miv1w|!D$Sh(3Z@rD*wpVSnZqQqQRBNJG z10`f81c_S9(%KelmBmZH()-d1{-|Jq%!H_+f~@sN;VNV%1PDrCC)tpl-JPB1`#BSA z`@MhkRm_|{^SsaVoaa2}IX`A%L*|FB_el6GB+7|7Zz6mt=Jm7<_%7zbYCjy8b5v;7 zqw;Vb$`7qY+`;kVXe0Ref_$6OLLY#?VxT3j+bPz>`Gai&*DXw=UO&ujzSt_pX=rC< zxCw7Ue;>epTGZgfOYI9ww4Xe(;i>Dyb7~8l*XxAPQHmGsq8T4^cqgD2D4$>=S%f3f zS@RbcOJ^m7p0v+hfz~Qkx~L5;jUlPeTt|JtDimva&G?uz;Y-D{H0ZWl#c>$EjvFL6 z{m^pxxO#%q-=>`IZugcyeJw=p76;swt6?AY@O}k@2!ZsoP`&;A_*hTf`29v5s?R#< zax6gz2@al-Wk<#2V^mztnRg!9TG#}Q1cJ3e4vyx_nkt0CbBlL?s^#l=!w8~=trfTEYd+-7Yga3GP$N z^YPACSBX!Zf<(#KJmfzynnoe>xzq7D_7oEh>_Wmfo=P>SQ2A+latTH}e{V%W<~u5* zVN5K&d3hZd%89Z2pwXn*CxJV`Gh2EbUXDg}VbD@tX`RclB?H)|!rh!LuS%2r^mj+y z_=K3(f5-B1H@pf>rF40z)99q49atYC*t$~@JB!-%Z*|=#cB!XQ5!wyx0$68^{)hl5 zosPXv!{8~2_Ia%0vbOhbkls^=?B=Z%C>KIGiL284D7KGMDCTX=(?az`>G}^P#1L{6 z*Sw+_-rNZNgm!J(?}w7s){NUrpW!=GAV1kZr4B=ND2`E`H=*+!Ax46uo8<+fl$YC1 zadxRwKCknjYNv&_fl6qQ>ZuP>y#sp9q;3N!i%?}Z=SqL#@VdKd?0&T z!8S=m<;rPF-dUC0l}5nix$|xl5H;V+y}@t0(Lg|#KVehoRk;)2Q=mSjO98rx=ecI3 z4S^8$B{5kyEmtY`0kpIE>s8uAj zDQAwicbQUNhYRyIp2YB9&>oGpkq4~28mFmwt)O8L?%TVn=Sqei@KmCZ!j6#jKZDLKHNLky$Fqf)9) zJRASA-TKTF5%UMPWP+$RWSWhf+P$BrJe1Iq0VbV{+Su=$jA8UE^4c=-7|~~2qY27F z<8R=tm5LNQq={(u=+1Ui)j1O9PS&eBzY&2)NzyyHMx7L@*Uy=>x{~(rLR{z03`{l& z+%7)4u3#TQZ$ylvr}n8h1#|8!DnJjy7q}&OkzS31>jnphH&JoOm8@!bl83(ablY|o zem!<(So**nV8VC=6k>26h!>N3tpa@ z47=KO;)l>1(iRWr(cks4_wHqq7OxFNRYwdeG$F^h?F zWnA2kNXv(Up$6WUGTi&(^J6vo9@6Kc!dgAAzTLEp-(|-4YZRoq_W%>zd3?$p&tp&$ z{$O^guo@3(fHTyr^3E^{BN_gYIL5!rCg|FT*7=^f8Dz{u;5$xor$t!!w{d%CJ5ySo z2ZTc2a;v0(27f$udX&5i;1cL5Aa*0yCq1w&M|%yW6>E2>_vL|!x8laLA1=TFLdws{ zA<|UZV;U2KQf?>x{qipC%<)>&t4yNJ-=3{-JNEL#BCsT(Xsn==AYBE%lCo}>7>Dgh_1o#|1wT2I>29~@L&b0zw@Zc%~ z`*|>f%3S{4pTaJUNpUnMJ8$wPniup+AK4#tuAif^f=^86PUS$lWlxewCHMbYxWT{~ zEUH7T7mzjItCJ|*UCNmFKz)9h@nE_YTSe8L!UaTE9OUf``_*8M{gLe3qs5;$fN3>#Z)*rPW=quO$%y#M+nq?Bh&_h8o@(P=Lt!CYkNMv zzP+ercy=MX@a7qAWgHIm?7h4xJ-coxwh-JbV;Si}vgdzpj3w24B*ZR(yP>+c)B!hH z_&e)1kZzM9YcZfr%6G5+pQT||yeNh@XBnVHZ?e1ka(p}0g)rlXl$2{G`-)k`)@|PA zxG3?go4<_=cFgrWr0}o#O31eO8{vYdn zC0nvt5aE6btuBLv?`al1*a-i&d>K^yifR=brzSFE+~3=>mGaxNaj=nKV1-xXrfxa^ zOGW2~Yb(biQ_kI=+$b5}d_c{cJ?r~Au=gf!)Lsmq<8t-Zn{X8K`!-*oeWOEi5ok^2 zB@VmlG~6MFZzDld`}N-34$4kpHFI%3v!b|*_+{#XhjtgdeoTJ=dl+-B(&X_W)tkkq z>WeJ}o(S7H1n(sdJ1Py>Ut$ZOfk-WA2puxQJrB6-8NV$o(B>#BX^Ky)j120$HOtAE ztE(LY`&O=Hm4(AE4KZnV)JQgBdS=pg?1zxuEzLL(OxD~(b?vWCN&itX8gGXx?6zJ5 zBuBN;cgdKcql62Ec+$B3KVDqfcq4Y)(}86@*ks@>wJUm6w}_9)IN|k#yy)h^q^lV9 z+qQXzG`G`)NphpD=QOwTiYT!!t{yy@&RKG<)O2-PzFEPD<9!!AcW|DPL)MxX=h4st z>oHt-Y%p7f_d-M@c(cyq3Jw25j%@I;*rCvu#pdr^FAid^U!cTD+p+-ndhOj0hZ@qD8ap`>Hp^YTOY!w@;eeV?uwoA~BQS zh{+~morDop>9KTrpOTVj5DPmyfgJR(y9J}g3qG{IS!2H-M=_dZ(*ZQ1EcO7P^Nsv5 z|5Ql93Mj$47aaqIS zXYKC{nY{FSflBorm2|7twxDFWY|*c!{MX?sa0>%=?EI?nii%rf!$#=`KR7BQsZ5332CjOG(nKF{ji@Ex7sHauU<<0NZb4Rzm zM8?Zj@_*vqHo}Vx#;#CZ*-FGsS7Qwli0=kd7WRe;aglaG6M6re7_$vd97AFxa(V6; zV@v1t?%XSyCmR;zNPiyV5u0j>Ulgpw9XGs~HcxkRr;BHQc~YkZj_5R~@I|MaUOXiZ znh+Gb3zDiw<%j2;l32~963n&li?<0TYZATE^kP!#zua#;ibvGYNo2&4gqRln6uO$6G-apy4RiPP#M0G3)YK zvA9YnPQ8F_DlZUC9cURAJCg?gDV#cLI+`)SHl2? z_vGton@|2+8JrbE8-y?8$vtNTP4!sObj6EpR->k_v7d4BJSy?@ugJ$tR?#rEIuaHP zQ*Hhh4&SG6cx~G%TEjxS?Lro~yEic!TipMsETC_-D^$%QHwHHpg9^p;99vDLdxj5G zHa9Er|2S3W%v7NgaP6OpVu>i;iTe9ue#g@a} zu^Wz6vR5;M(KV&`@R5RW;Z>79U?tOpE6ZJ)3igzS29A372(f!+NmEWWG?gnv_r3tU zfwDQl0WPo2$;-#+-WIm;Jt>ao-}{D&LQm`1W>u96zUe_;bahix;b7Y-!p28Ub4{t{ zOhLo76Tf$w{UyhXs88dESi5c_WtOf(Yp?JKSVwbw%H!|-IdF4(7oya{wnfbtV-2kU zmx-^<^BWR4c#)*jUS{fKV$23De++U4X)h**ncx9dC|(s|?8?`#7b)FajsXAKudDPY zYxjV#5K$1CM}9<`<4Sr0dw7!%Rm^0MxE%a!g^4_)o(azRg4?MjtGFU3n0(h_(HW8! zC$GO>B}%rNl(H$)ilCftKv55{pm)w<`rqRph}3G!&^RAme~)lk^<^G67C&>N7$Txc zLW?|E9)!G@SMbBtdY+qeNi(<$Cr+3@|qj1 zAT{b*LG3YnBB+x!sxPnZYg>67;ydb_^;x~vq|7a4)x4MEmHb0UoY-IpMt0gk)g&YI z-;Pf#6K>MQ)AO_mTLi5Zv|<0)0Xu>_pyInw@t6Nt*le$jgu+W&`<0xxyIn^znp|m< z2wbQ*F%VJnVY(BE$XIivXmYFjAmllSer6*4kh^8>B#xPY^8)qJ28otbXk`znPgLM9 z3ADl?JW#q7REA-j>cA@`cQ=T%Bd$qU)cFZ`o1>UI40Fp?iggsH-3k&ia6)HxHo>w3 ztFea_x8V9_?ZeirkSI=un5z0py?#@0*pPrk92zL7Ne+)rIqY;a)$dhpyxF~bspx&@ zl?ba?@`j6dSQBKj6whn66jD8K7|9<*)cz}K)gg>ZcSP#u_qf#xdEJo8QHfMr1;-SO z+4ym4`rPK(B6XD;W%T)WXxBTcC^(&qcjG`9{*U{yzbRT#s>|CcQ=e|gxdL|q=T#NX zI~K#y37z^W&O5P=-&wnF;yoF^WjNae-FgO-3!}}Bgw<$G${qnO7I?7V6pGEW(X$8* zVWJ!6dx7c#wUS!WlS%v5V{f(mT5`v4V{DR`a%A!@y<9=NxC+j#S5gOkW*~PrLv51b zN3}Y+$E{M34M>~hh`2&wM22aEXbd;bjHYALp#GQvnO{?@FZsgJlg?2aVUVReTP1QW^7C}Ek9$8XOIzo9j%}}dl zPN|%y1Po>s=p8bGDo5s+$_OU-rvnqt%?`Ge-yr24S+B8)TL(N~F8;cVO+=1tH|t!Z zmDH0yqNyrk%F{b4%+_<*5rP)uJM~ZwVOW~`DDqCvRNPrr?Em~!9ptFF zCD*BqiSID1u|(3f&1#qz3tvaA@k=;e^Y zJkPmX6ClY$S19=|oFC5~#$F7;#S$CpfLZfNhbyB^H8tPI)d|k2)RM!MdiC}B(a+1- zNh;Ii#%I8pU-R`o?8`tv-i%98vD~qZ(X&xxywQZa1BTM$HbXLgnK8ZxDjRAJEs@gW zd@G0dilbx`d$iT5`VGaLuqS~Y<0#3jugQK2+^Znrp*W2WHs}wyDB?LkN+KXqG1)*8 z7sd_io;L$ymqV)c?1P*#kB!5ifd{A2cU>X736G)6aC6Q2fCxN!u`~=2hyPTU`ymcE z2_t=)8vppi{C_{E4Bc`K(}I0(Aa?QA@Gag!TjIwpCy_--wuu&b*^{!9%nB`k;($VWmf>!=irbmt|?vfnp z?-^m_>)>!f!F`nc&aK{f@YQEA%$D7RIlPd+o2#iL$tI_2y-Ti8oO)dJmGJ>b`XlDQ zVoXQmt~iJ}hyyZb5K^_!=hVGVRbC!1TcyK{jp<9dSa@Bt5|iKXKruu6qG2adPps}_8exNvjTLW>sKrij3we5v}kewMeliwg)!jFYTewl4B zJ{|>3#ILXj@Z@ZIeYygVg@!lWCfIxyUV=q4yiW?pr%kK=oW6&BaY^JVsH})nrd2+k z0)R@=N6zd`s#~sAFs1>=Cw2S$KIyOu!KRhyJiKl=44<@;H1}t}npGjq*!Q9Qp?He1 z`t)n<5@m)Do`F1eSmFj|gPECoVRN4ADjMpM2X^FJ|qa>;8i zA>!GXXP)>rCrtIBH=>Pro;O3gDw>thkb)&qf!r0mJ33gQMi=&26LaMZWT-FIKh=ze3?X8AbNR;A})k6*^S1zkwCu_c+sJrpx?r0)3rFKRd6p&F2^t7*VZ zLzkar_ys36ro&tWnFcJ1#174FyQo4oqAt6a=xPbYKF66SSGAFv=f$9`oT}Y+^^A5H)?C#uqM_uXnimMpAI6Zq16N=w{4QCkz zJ4`0=(I21)u@jF5m%P$1^{f3t&z{%lBM@XyWYGD2P`{XMW3*^x;!BrGPs^v+oEyy=&*r|y|?$8|RAcyk<$SAg1zz4ZkcALSe> z8|2RP>Bw5`hQRj127x7c2LubZadqmA2>nl{{1ScuHaqV zk#aGf4VrN0LOzBB5_+CJkc(4)=qI0s1J?x&r2Aq0D&7)#i*Kgls$>so>b}}@)vQ|L zDE|rx-)DE7t!CvISI9cA%h9AY+xkEut2~E5uxMd~)usnKWy;@kA#y%pSH|K4&EbY- zti%dT&gs2p`pk+ki+b*TcwD{{5V_AW)AD5IGaj>&SS*tk23}&-1%`&sX)9pt-GW7J zPtjzo9Qc}C`Jpm!kt_aYH;%MJnDssRPEZcD`IIeamUL)W@8^W0uBz^x8jFr8+;pV%pD??H#V1!y$a3dW+S47gnVh9Jels?bnb!!ga@y6g^ zM`LN>5z4Wms^C746$j=pDQzR$;`Wt$e4|cCg}{3_pS5DI_fAGDD%w=QSRl3dHJid5 z3$?>Kt$G-hxVik3yU?;$i%PZ%uIv_giFVFJD?WO1J}aDEco<9qOo8!(6@nZ0<DlP;S+!^fZTEG5VH;cs@;&Td|uJtquvt zAPP7bo`uqb5659FWt7|Ct1E-8$h>w8`cej8ub(vPz@-pB%|Z>Fj%yQiHl`cp()znG z*X%{U0C0Jn+ap7%Y4T>WLMb%PV;7FoCMQGhBYGRY0zwN2Q~`&oF9h7NM}PStd$!=l zxArqJW&C(r?n@aFY6|6om}Mk+7>i+o(+P#UuA0rpo@>>ydZ0q>ouF&O3=lQJb5z}R zAKo}Vxb(X~9Ax7xDnN%b06lWLU#ChBp8Bec=zzwZFM{b zW5u)i#*we+T+mGx-p ziJY=om=zq!fo2iKU-0_A&tFFulI82IeG_zz; z%ZqA)HN(o%9Xt$mQ3S)?!A&)XtT5aLOBkkM33Dxu#Z3!JvuAajHEApTOnFQBnDj4f z3s@tvm*DtfrAX{kgN$vKQDO6zg5kkK+LD8`ht{j977}Jm>gTGE`zNh)7&9_js4N&^ zQnQQ*l)gY%i0NL?kbEnv*f1vE7%&X))+0`?*P0<(HBbfXfb)06^8;L&2LcU!k6tYyqV43 zdiXW-)yiflAw5!tb3^Xrv$E?3^O~{-%6l@xZapSL?jfJao-lmn#*9b@@0@mU>wQx9 z-;VtYQ^G@27&E~XjoZqHQ_g@?auw`m22T$;)Ml|+Tt~LFZRt;*53$JVy@65VSY2WB ze6FJt_h5%9czAXa>wr>ORkS&jW%tV6Sp3}CAih%r&HoNKcF>6PB2M`a?am5zsTP`j zRb4>IN~Y43?)Y^cL2v&7EBHl{$fMfl6U^8B76LfHAp+qn(`}$Z|RlH zj(0c?<`jI&2{j#yQIlwDKTV+}WJ@vTLx8kzdU+M$3mH`$D{eEz#|jP`kxh(6s{f6# z$_?ywSFZ+^Tg8(e7WTOMSiw_OO?R;sk*j{W{lQ0b4NIj+HDq=X^?-|;6;8qw7dT92 zYqiSPudKUWx<6JuGRAPMQi}RoN`0wdfFteE7}*JFLrEfnQJ)J34Z35nB_P*ET^Fh8 zRcdlUXN32rly7+{k?w-vP50wEwz!=)bRgw?B*b7oQp!gPj39~W!;zOjv#FA?C$y4s zN8Jge;fLx`xK7~9$54ZKpsMDm`0L7{)9a?6&b@CbEjxjfGcljDY-|O?ptN56lIf4X zr!C%~tXM7eJn*)*nj0Q3(l=6s(g)`1bzw5zJOcq_`vSEE(G?r;iJZb2Ei3a$bKwD% zR#UQZiH10nkF8LWEz^6*FlXnI?aB5Iq$+(@Eck0dfUY7(joXDf*ATqgpSOpDY}u_> zBKlxA|7694!!ps(p*BRe)->*?ffM}06fYx$7dGCyuuM&Vv{_0XM!bS-5xIgr&BtjI zdp786bSB-{ze0Vo=Vv?ly*5HV0UXKki%{+l5-n!*;_$85*s{qgs7-#3A{qF*0#wAV zhoz12THf>0?JKFYtDo~=?+!CFoXLrj5yY1fS0Zk~t|(&yn9vf4?RC-wGCXC3%2$#j z?E0W?F^g!ge~%T0wb>6l!73;zx4(~^MK+dUb8yj)uy#swhDBOBuDYSDal=QIid&__ zgQp=(tv$!5YF&6{8EG%FU(7rnxpQ(y0^u6Ky)G1qI`erE%C8I3VnGp%PH<#GPGAVKUP7N6%c5b9o znWQm%qh3LrEn8DnR0`9?J}2Rg;hPV#(b}%BvBK%BaxNy85+uX*L#|{`Kvtm=W!4wp zHeg(#J@8C-*_|`~t4_}IP$Hjz@RBnj#*=q$*Aj1ns$Ih_nUTI(ky_#zwhGm_0QBT+ zsSlWWN}_MGxxxeE=UX)hUuC|-To}aucF=o8qqZuPRoOr~?Ir06(ci6@OG413&t{`* zv7#1i7I7+MYbn3-ocBp=IntOc02yG$T&NkQ8-~nBHDMVx1zqm32_=P?n2Q$7(c24| zWn1KTbYTyZu>YoDx1q5&ez$c4E4{u>&RHs?MtI}Nj@aUZeQWBQKSL^Cxb&jeONvC{ zQ-@#ZA*6et0hz=tybPV&zsT)@*}w7jYU{dUZM2+&f`n8rH##g4qq>0V=?IP^4pLhl zy)Qa4RA>90%xwf16ZDO^yqiV-jqwBq24Mt;F{~qrNY&frf_4q+g2p&mx3%WD$4bX8 zVXQ376uT7Nl$>W&LUv5lWZuzSp+k)QUSsUf@6Tj%Nyt)i$i)h|vpmdqL_^_)JZbZ@ zSMYZ)T58r6vfxp>B*)P#I73(BWgz)L$K83nZS=Y4$f_)60VT(kHUOn@ETQRPG?;L` zjg_dq65nY!;>3eElZ{#8C`D9^l0tkFk3)GrRGY`4uycfk7#6s>x~8Jjdc8llg{7<@ zVMQ(tuvNCip}Z|JW-hDOu z5tEG3A@;!l|Bi)l?n9r+L752%`Uf^6q3Ey~t#Pe-61$3DI4Pungg91M@F;Rb^s6eB z_NVDB1VUg!)B(@oRkty=met0{xVnfv#&`tZ2LQA9bMOIa(I&A4Ov`Z>|1~mTptQ&*Hoh3Z!&g5 z)BVVoF&XA<%X%dLX7i5zxs+`ul-V(oAQGc1qh7 zJj>>wN1opR7shWO1W!E9f4hQ>a6wH74TGHr5d!e#=n>=dn7V5kjWR0PyXfbf3zFjpT-k4G50c{YDQc8p^U zcXy>7*+Z2OnO*CQZC~CnTeyG21ri%`y~_QXn8_$VQ`@XZ#GMU#a2oU zoDBUQTUOU1#|*z`Sa}veNRA)kpe)nVcs44>v20<$E`lGIPjh)S`QRoX6|&2g2B0aj zWCN4!+$lMk=5;E*acOc@1?3{ovU$d(rL6cSwXXwiFP}!&^Or$8W?~4>EGc0h+7|>2 zfsO}G<9Qa(UH`dfR*l!&;GkyjD;v!ies6Mlp(*|iQE1A#av58pt5n)XIkX|dS3F0C z1v-MV5%92{6%}JKQSx<^`3h*Pr};pRU4&-B_HGU&_5GF3X_f4n+2dKApc@K0b!etc ze^pVZ>hl=Vkx{w*YaV4|v!kV5>9u5nhq;mwtAu6d_Rv9*AK`sgv>D@cb8D%_^&fL+_}FuR{$A{Z95}wWNdL z=aO0pD|@V5dFaufQ(WLI{9USFzTAZ9vtN+S8g??}l(3n9 z5QBFv210;XK8V|d#3zgTib2|QNH!}A*~HHnD;n3WHABz>=Qfqz;3L9_W^8c_4AYv) zE}Va{-uwx+O&}y^$oN1jZkU~>Ba3#j|Ga@MX7jt_F&V$}#|vr81(WZS53`Ls**qIr z>~=n#D{+FdH4PnfT?ege^QNjTkS;p{2DgUED=qP#{2wK7yeUd zq|nX|g;=oAQViQ-gT)QB-Sf=*dGQoRCi5q-!--Z97(q4=D pI literal 0 HcmV?d00001 diff --git a/hell.iff b/hell.iff new file mode 100644 index 0000000000000000000000000000000000000000..cc990d303adc7d0c925fda424f906eab106aadf0 GIT binary patch literal 60124 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�W&yU$H+dn*xq~Vgyj=CYM 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

  • $4|N}&dtNhmM-nCjx6YZ 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 b*?M})bF$MrT{3o)XjBprbgSesLO=cwF`Avj literal 0 HcmV?d00001 diff --git a/baldy.iff.info b/baldy.iff.info new file mode 100644 index 0000000000000000000000000000000000000000..4ce447ce7402c701c8c98671b56993c2983ffc9c GIT binary patch literal 438 zcmaDXz`)1=1M&=l3~UU{42+EIS|1qMwOL>i2%3cfC|(G}84W-|5XJx?Q z1_pk91qK`b6AbP^J^etvAp8MnRs|3nf3SZb^Wpyo`~Uxc)C2Vb_5TB5uo*D7t$@1C zfPsPWLjurl3%Gk=Zjk`Gg^j;~fq@5MyZoK|+vI6o9HFn>M(HiZBG{|EB_vARvnB{iqCA~hf}Gq1$c)6>cY%mV4+0AfBj RPaoHi$N*PcM?X(r1^~Kcd&B?$ literal 0 HcmV?d00001 diff --git a/bang.bin b/bang.bin new file mode 100644 index 0000000000000000000000000000000000000000..5b32b51a020fdc898a5f05c6f8ea34abf532e200 GIT binary patch literal 4106 zcmbtW%WmVy6|L3Slv-7z-ei>^5N0>aPBsY$WGOTk{HOVle2Zwymi3@y$=&Ww07ByX z{V>5Mxy&i*ZB1v;Z~?YSy3W0~&OP_uB7Y@+CjTP;BtMbM^?rT%?MJ?>--?&tXh43O zfpuMJKXTsV-Yslhiy}_2x1sGHj{7d2)>?C9zH`0S#18GQNiA=;?f+hYPCnF(dnEiv z1Ag`RNh5Vl5J+9uVB-%`QfDq}qU2#CfNzuKSFlj#aaPo@x|X-`?L0QIo_Hsu&cyAz zCS$wCChC(c*HRuP{Te1k?ZC!%+dt0Gc)_l1kTMKtEbs)@C5+NezalbYuyM+wn0|b1 zfa9Ajb*;%PbUoo+TWC>9EW5PB@uz^)N>5*R&ufjJQm*QnUfV-AaNVFSl5Qt%#c`{H zb-;+}?zo39+lQ{$eNQ-VnZ4Qgk>y;M;wrw5qO0HuWf)hxe`AK>Jy`R8oBy(5!vIpI!j&GG7Q5qEI%aV zX9i-=7SaoP>hhaZ6y$m7IE!}sDvBa?6(va$1?prnRCL|aO)n*^)A{)f4Q+^`OzN`e z=Q(9hk8?|RJRIG8h$6(znR|G+9SjD#b#;B$YJWM0BlXm;P>Y$vQ5W& zNIc7Im{ZmJ!9X$G>(pyK1AeYQO_XW^-HDyZHBHNUDCuH03)N-f+18FZ&o)f=N?52* zuawXPv#YSSXE?g9k3NazXGR%YrQV*o>+8S|gwAS-dV)ZCImt&w$*2+Szt4hi3>;-R zWg=V7=Z|e6jt|V0Wh?2>Yx1??N(U6_IxGz~yG)3^o1QbAv?-mB@9$mD3*+p-T&tBm z1Rml?SreH@akB6(J};(@G8j(&zDSaX8%4RbT`!1_%-xLw$94r)l@%6`;<(l@K*ZID z(Qp*Z9)?4u*V`zDZM#9dXKok;wrg6!yZj|DvUB$^Bt!N6ESUzWccb?V;EfwYH=L_% z$6S=8C@9x!K~q^x&O7v413pb(Ug&Bz8uWTS9R?c71ZB}MmnWua2975z{V=aU_o)WZ zo*;m#p!8$?I5yyYyEc$qhtgI?#XREXg5ZhTNpZ#X4o-tMlgbhu>huV5P2&!P`K&sQZuuUHt=Cg5 z$GuA2L*?5%e%p72=SD$C@!~8R<^(dBEg^p^3E^rmFu`?8IOsPuHyZ_T*Lwm{fE@Ve z!-bba#b`E0{6P?KuTBt`v@8$$y+i&+zVA+-#G6)K64y*l7_DBcwtu3 zcI&8LltZAZ>hcRI@~S?@&jUdVqFJD$@g?K2TBcZjoab2*AM~4sX&R~vzL{6hA^hg} z5~M>Z%PJ|a^Q9X2srTz7_TwlF!<~Lh&-26k3HN`#U=9lfCDD$aQJSl+ZTt4d_B|xe z3x!6%kAbb*LvN#xrpwQ#1~hrcg_tKnCUpcMwGIDvWBI;sD2nA?#jQ*#0oRo~&$c(F zJ6npU7Mf?Rrdfwd{ls%q+gCOw;J^=b)A7T2IR_l+4+J5e&D=1T#PbFqLjjOL)sHOz zZZ~(ni5&VS3|L<3;5^o5pf~~{n1YN-7!~D-1UUyXMl>YM$IR`>A1caVVAwbK@k(3w z^}%m{8F~UG6!Q`K5yk3=mr)Gh0SEc;w=oVs^hb9J*Q*ZFT))&ex4y2Ar$VdM!uZ*j z&Ypy3?xTgkEFp9M4hJ{xc@HyC@&@A9Z#ITMT|Ch&Njij&zl-}&qhb8x>wM~muBE5r zdtS$A0>*S1j)p^bj-c}_V}wa4-c$W>w>v?7=`Q}%io+lfN|eq9O-#98kX1MydFp52 zb4FnSP+(@b)i=j%}E=#XTLtyvM3cV z3E(fuWbz>!-A|Ws3pvZO#JOHFX$!1RxIZ;eSEMSx^-Gr8QwO)Q?KQFP=S7J=i75^!*UMI+q{da@dkakj|7yBXm8S@$ zDkX-t+FTvCcqr}IxnA4Z%Mv&DvM4~YT$Qkh&)g;y-k8Qk t|KS8L{l9$g_rLmkgm)qMA9sH+w`M7O3m$hm+>GC{eu(zpb@Yd6`yV1;paTE^ literal 0 HcmV?d00001 diff --git a/bang.iff b/bang.iff new file mode 100644 index 0000000000000000000000000000000000000000..184e4a2514adb74e8aa053ffc07b73cb7082cffe GIT binary patch literal 2668 zcmY+G3s6+o8G!$@cbBus!mbaDg2HN?iYdVrZ2`fsJc2kCVKmmZMqN-8CqxKf!1&k; z8pMPVd?X{W9kn{Com3+ko1!%3s?oI>9aFV3ZFwwRQ8Q6kL0+@4=a!Vco4=*Znp0A=F~78QbJ3RELhF)@jQKIP zm<84-TWpLiAtoVq4y0wJS(PWmkZX1D5$+8r@JWssCtFX-K9F#D@j1bUD`Ur+ZT!%LG(j)4bru2Uv! zZucyO9@7qRm^=j}%*a3<1+J41KU=dyyP>`Z`Dk#aeewS*ZNcKJ?X%rVjzCg$;b8pG7i*8 zmIVYgXD(VY2`Wlj!A6NW*vL)T;2c%z5m=b{luKc1_6Pflm)*XUs4(Hw+tv+ zDAJ`^3DUZTO^OY{P~0>z!;K(4`tcu26iqe@`wQ89oM4m37m-wf;22oc;3rvUdc>y7 zBzJ7T-$o8g-rMg+keV~TSsRgtEeR#Q`dS4+D(F_qNM>zSXFMcBi?ei?s-ybvMaJxCfO(4B==s}|7F2om4ib_L(CDT!w~m7hes50JYwz) zO?C(u);jl%PEe=zzbW&iY0N3ZUK~q*#+i8cGRjiFxcBIV+$&I?=X@n8>_H>&aC!ST zDSuA}9^BU{jt=a{YBC=b0}Todkt=#Bb9i^eoyhKeSViBhx>Gq*0HL9#v5J@SDRHXB?KJ)YbQayp5cQ9`z5y=MW}*;^^;$1((c6&HYAr_>erx2? z)#vdWc2MR+7k3o-r~szU6BboQ2w5!ZNCun9Qc))vIk=w2%h3^&IJgsc9um{A#bi{6 zoa96f2{XMq_6S#j;ICB9ET`G(WBc74!uD+|O>UdUVaO}uR5$iAJJqqwjeJkNVc~Tw z(etsM4#~z@W>xh&9j_;GSonPVZ1KH!x9p6^#U6KRlzu_pB-@QgKEoG2OSB9YrOyD&IWlf`bY zChuYD-(J6fj&aNNxAjyJ!QGcGmfI16o;LmYUorxJ&eOEF;x*R3WjQ8eA#B=p`sz9i zF%h$9t0woIxbveXk90oNWNRSE9f|0e2gRedDG0hPYnpq=2^?~|o{Y&Yq93pYf^Hso zzYW1;SoA|b$*i}t(xLeSV7|Arm-y-VACa{F)5 zQVxgC%?XhSN^+uNHCMeIom5OM4yh+zb6FRzbl5N_u_$u~L9L_bTs#8H|E}7o4XJov z^J*J6(^M96=4t@#Xi%5xl4%?Sw1iwsF)G*vq*OcOOYnZ0tA( z6{C0-u;5t$EYd^o6ikDE*ZlY$nc;|xwql(OmFfYCPJYfLASw9Ze?c Vh##P6?Rcfb5;hr)|KBtM{{th291Z{g literal 0 HcmV?d00001 diff --git a/bigfont.iff b/bigfont.iff new file mode 100644 index 0000000000000000000000000000000000000000..3e49c79597cebd21cbbfa22beb0594eb70b1b1f9 GIT binary patch literal 5792 zcmeHJL2DaV5dNN4>{CJNiV$iMQfVsXDuDCKQ+xm#^1O6O&Nr&dYk)F*aV>lI=a2u||9UjU z=-El%qvUg@46LrLeZm^tL5l16qi%D%2gA3Y!{h$=huafBQL!i2UU0r~>!bI0AroFw zNKKs|luDEH2Nn47^RJIFh@Xo^Ox-7<;4N1LKaEr#D>qj^qX_K-{6D_tV6{=h7D|Ax z23Ud>$kKi^mB1Wy4?PS~HmYq6u>(DjrS}M@LYRZoRXsJrj%T&40Y-*yhQ{fNy}f`o z{={XYe75L1u)xJ$h(|#Ciq*pii=N)I`rI&@fpMCVy=uc|dt1H=m<+#PWUnOttZ`g* zh^L^*_t5p{{)GVz+ea4LBtjTqYLgO*f3(QYqF2nTU+CKMx#;Kq>CvZur%n5HZo(vH z?3?PI8e-dXTNk^(7qA0U7Qik-oasF^~ZO81Q2z#m9^_}eVF_A%O6BZg8TZ`-h>bxQuU zM#74n^6slCcVazHm2hAM>?+4+SB3G(R1ppPtV#{`U`ogHa5k-gk}I2%sD8)jeM;Eb z-i2Kb=W|G9a2~k|)t>k4GM6U?mJB3?vLB3?vLB O3?vLB3?vMk%)r0ElkhwM literal 0 HcmV?d00001 diff --git a/bigfont.iff.info b/bigfont.iff.info new file mode 100644 index 0000000000000000000000000000000000000000..351af61948b013c243eba0951dbd4bb74a605f18 GIT binary patch literal 460 zcmaDXz`)1=16B+o3@i-H42+Ci3w2uZpCLHzS01c0AUOOGKGneYyKN%6sh|E zV9<~N7G(s|>_CA=AnhRk{{WEB^Z+OWq?r?#7&w45_YZc4I3UgVhq+;XBTyY5`=S32 z8xnZevpx|2*^r>9-+Uk(NUQ#rS2+%(r~k_9kO$Iof8JO}1L@HJyF%v!>GvRefi%!` zkool>?*IP{U@nk=aQ`2G3OLLM3;c7K0an0OV literal 0 HcmV?d00001 diff --git a/bigfont2.iff b/bigfont2.iff new file mode 100644 index 0000000000000000000000000000000000000000..1aa675c7de354527e6a8951a9c9f6fcf1ef386d3 GIT binary patch literal 2860 zcmeHH&u<$=7=7chb_{h`tEv>MD)uVsAK;2ALWstjGy)?qjmiZ$S&9TjLMWUFC?q3J zK5&RQakPa0fF3w-$YCo1^3ew_NImSqLOyOItKCMf!~13v$5GP;Bu=RQF}vUHH*ene zzBlvMt=moD!qs=)TWPK|8>;{=sZj9(I6v~tgfwn!1xO$ z&V1Az1|3*F{TLzdkN>jj;rs$`C&w&^%0n1QXP)iuD9L zFk=~#2YmI+dGqjxDp7~n33aT;IJAVESbr$9yc%Nsj%!v$%3>X;aqw#L%5Ufdhgb|v zM~`^JmB-faWwTTa56bFDrKHQ>$t)!di`Ea+J|2UKU&FMI){@E$yoh$#W`RH^`n|#JM;s+FSEiKhHln1OBKIAo|V;= zFX=qh2&@WJ9?Qsu9P%Xr)G^DMIPD>_bFEDK=e#<*zZGIpzAe<@$5|iCESddVM;W@D zvYi!%M%LT0)g)`@9(DFpJhE@X?4`^&52eE9nvr_K=2oS-6Kj6X);R<*MuOqhblLT| zn2E=zEaHD6On#9Jzh?&OFMJbLElEFu8E`T?HxZ1%6eFTf97c;3WEh_dM(QxyrpGD7 z2=x%DHNOf*2jeM*NeC_&zNJS#6=yphn}YG-(>z9&Jg&n8*q>s!TBbbKPxGLvtfj$P z9@7-m!?~!-Lj8bNtVgChtwlUPs|P*l^l%t+4X=Rj(6Z$cJr!E7i+jk2_`}u$?-*m+ zUCSm@k8NnNW;K%TI@O<>akg(3*e!0>lpgdWde9-u-V)zLRICMWOz$kf-_$7^Ubj{8 z*N!!Nw2i;X;YQ43A;H|3S^or$SoDxS5D)cvse>MRX#G2M(+%1C30@K`LmzQ7QMVQ^ zMXA{_`-;r)dd7@cJ=5iGqz`sUj~?%0#A5^Bq8?yKEbghOWW;_6lErJ76Fv@UQTFQ+c!Wf$;Iz$vmf9j87D$`{AHLGY(AER9iT?FW@r?|} z7Ukq|I9FgcAS%%yZnXu>HF5=7YazV6%R}fQas^!CLprP!dU@<#b&9+0S-eWcU3J_x xh0F`S6)y<$qaL4=b++5&X^utScUM2Xe-!0-2>mzr8TPYRfAQvp0{?#n{stK%NvQw; literal 0 HcmV?d00001 diff --git a/bigfont2.iff.info b/bigfont2.iff.info new file mode 100644 index 0000000000000000000000000000000000000000..638d9a69c0c688f8913dcdc50e2a321ae32dc5fe GIT binary patch literal 466 zcmaDXz`)1=16B+o3@i-H42+DdW=mj#s5A=$Bdd8Q5N9<2B|sPhfJ|XxU<~(QMvuEK$d6nZpdit-t4tXFg_vejuG>{JczbkY;kbV!c7f1t5 z2bo_F;{N~N0OkS-2>1U1sDQ(Ku)sfu8DIr$2pSwtKt4+Y3j+g~=3r0&((*h!j0r&6 z{-1m=Nc{i*`ui`~9A<;fVS}321~(UGJ}w&O4zTwB{|^A2A?A{rQ(BQ4keHcQ;_2yW bIOp zM~i4^h=L^TjB0tl@#a;x;GzA=haXHn=>+x9u4 zwa*Q5j&k_-7Uy`7R7(PTMg1M*Ng_?&=a{TY~N;Aom7o#L!*a?19oQv&?7%Y%KU)5CGeXZ!pqqNYg-paYbuI#`9g!l0I=_?cZI$a}aNNN5v`c0xp2oHI1~N1{J{A{?u}mEE7+mNLhmVm|pqnE7+0tyrH@ zT3Mjc&q)K8%eN8%i|8lJZI6YCeC*m8GVlfSKxB?rkru8ZbZ16)W(V`Z5N77#>dz7Z zbhuhT1@=KIp$?HsTARz9CNj|JA+K8@BW*@xy`n1o&O_eYFzL)-mYU>>SM%=>ZGh_Z zbk#e>UbFAXQ^gg2&`B3a7u*aM$joC3mHE{?#7Y&o!lQ;ar@x!T)C*ey6?Vu6RQ-S8P#GjqWg_WV?HBmT^_8zPl8whz5>q(v%Sx)iVU^tHAR z9p`0DGY7GvxtQgEL5}=$f@Ef0nt8Cw12MxG8}q6&YTU(EJ5h&=Kq#_*T39$?9ECp zJbTrF=J^ok(wEy}z80bnEIa_AW0=!RD;6FIB!9~;prO~n<}}1CK!PJ@+Hy3v#vdR( z7Nph%XaQn|LWi+Q;?9)B72wW1iY3xY{#xtaaD{Y~-0-0Mc%v9bJJ?Wq)WouKJ>Dy+I=@= z$w5vo-qt1U?qDB_G+WWn&@?wJ(Gi3r4F(otkKf(^+y_(J;Pa%+JaE| zDfP|-Z5p27vHZlXUSQPoS|Or>0&;U*G1C_D`aF+Vjp z=vcJ|K&pipc*P=4S;jd$#2>!EbtxX||NYoNih0O6JLYhO6B=YIl_NuowVnRwwr!oR zx#QjSJ0AU8&Dk9Kp<~_4ec6Bi3p4dE3T2IZsEs?_Mf?4$4urd?!C!4h+CNFH`lw;s zVW3bGCdkGhVx1RPwx+J-L^jZFTK~X(PB3YO!00mWi&1+(1E@ckToZysoMrBTMC=x( zl~f0fRT%i9maZu8Nv36LUVB$btIx44WFaCqujXUsk+?5k(R;ZCq`=Tjsj5| zco=gh7<&^OiAF99a z@UyYu+IxT+<;3}i1SKLU4V#90oE3)}hr6-jBGeSThnjJSQ5agy(Y*RqeLD{iT#93) z5Oou&Zjbd4Sk&?E8xC!KWw0BqyEQkMl2%=l0ud-qp2sWQRqEf8Y6Z-R1zV zjJgSIuPiVgxqAQHlfYPXa?RUUTNLZRyotg#YY__i?EtKt=Ft2A(f7acy}1t2N_J1> ztt`2wu+DTS zGUIXz8&1n5`>SWPvG2y8t>u>w5I-{hG<{4EU1)1?4v747Toik63 z@61}x=RJ_S-oW%bm|YP^bmpC0b^gzvKXzuEZO$yq@DH$76L}5*-;zuaO6nrO8j&Puk+ zf89czz^jocEMBjjKYQla3sbhGcjg~_#VL@#Gv9Z{akF#@eQnXUSN1sM|Mb$nGv9N` zNyuU3isC&$w{newg2YoH7o~4HiOX$H6_6 zqwuT6*H>hliR#TuU&1MOSB(REiZPPkAzht57%sE zL%ej%qFDq$J)@yN+xPR&|L$~p`{R-69uO}Acg&B`Uxe(;*DAVT3HNLqkK%ks^< zFWq%@=H!(wVO8F^^+QrP6c=)xiLNid`t6x9TVs3ie*H+7#$Ag=QqefuSG4$iUBq2iY#l3W z)EN5xcW3f*I3urdC-?x2<_35eX!HN}oeJJQgr#9reqiKc^YX3X*Uc?%oFCbcKf1l5 z+4qHBV|epe{5QR6pfr9oHQBsnYk2VA!WHrD+fwzkotmkgUcce1E?EsBpd^D3+(#kf z-LK|pi?QdjBVjFW??~%Mz5{uOKqc(+g(+@t@9_D)19{JN3{R7D_(#65b@Z3)tjCt! z2aT569X_(`Uy7XlcN9{4_H8zswqjdb$BDPW&9ay9t7kdYyG%~^y4SW8cn@zj7j5^^ z2HFv8&|Ipro2hAYfs@v!V8NSk-D!7e-m4BUt(*B(U>dZ82f)Wre8MrGfVP|cx`6)K zoG#|TkCxRLN8_iQ^|-z4gSV7W?J3@|R5NUm!SLUHEH%3Cmp9-x;Eq_EeYkvTb@q-^ zW+FS{F58j?O6%r0yscl}(6^(RYUxu)T3`q?d;1^7Hb3tst!5wWO)O9KKGS*LOk8E3*A?Tra4_gp+2$DWm!E&~D=#k@NZ-5SufBVI+?+VC+JVgB zV3Qu!M9|39OV{nWDt`Sg=o8Lz#YX5;C+$e)ZG{Sy#!Y4>f%&+;I~J7f@@%svDAW>M znMpV)*kt$^)**#+Bm*3wJOB>ZJ?I{eMbuX_wo0`DoOwEqyMeNtGyuC-7-k703};|a z#g)@S%If8h!n*1HjWD*(5YA7+TGvdx(%pPaY@6n9hK-(o6OLlJf<)lun_`*I?Zaom z?Jkk)mOgkEs)b=VI5b?A!01`^P}9$ExqHYxbWh^erygeZ+9Aea6v4)Vrsz<6V%9Ye zH|~ZpidsB)pZCgFM8$ki2W}6IJ$VWZc6cuv$wL+$(S3QwW!!sF0G3dt-4MQjkKj;` zhdNZ2iXOz7G2|xX%)nrVayU64NbMu7wRM9*=YcQujgB;C^!wFwRWg%Ezy!GlJdmvi zJ(O)XdMKMGP z@X^FJ+`D-w`jiXHoZ&+dE;IBSXgY)5^`URs6)}3JrUcr+JBW%+hcBgCjWBs+a0tE!6&1=$%cas1>%g0 zz|d*b5n;M9yONBQwK0m$JqFmY5;PQoiuH5OZX?2n0_TQC46MM+kT_1Ivv`)9I*`fn z@LrW9zb$@sYs!q<#9{r)N7iXg!=-&-s4` zsm9UpZ7rAFa-C6|dSc+Mr-qW4XvDQ4ZX5xH) za2wInI5iqOViXKwb>^@-=livev=yw*evCpUuYvRCDjqBp!lBUKHSf+o>h2Eh&AdDB z`J{;I4wm;#m~}n|lZ7pXJ;fIbaCNIPLp>f8!!bhc(v6q@V2_h7Jb%#r;@7m0&-`O8 z|2OA)IQDDTFC%HR+@;p#Klrv|YtQdG`^60~cuQAnKcI#Vr{=n*_OMz4H8@5P6LaaK zP4vjQ9zFKpSwHSj`dDA0cLYR20Bt+#KUeTT=LQh~5NCDTW8)B2XBqbSD#i&h-d}Te4|rHAfy~`AlaT z#FlNB{WwljlNv9)s_BwcE4j z$G3m_iYsMOGzGe{VVeg+tX6ZTX(q@gx~{x&&Y~eGf;<^LfXHZH(}{(31~PKyVBRH; z5O5)5lusQzuVgHtSSPx01TKV(6ui+7wQcA`m$O-#)e*t|48u*jrW2iBgN$A9P?{iP z7cegeA0K(32HOK^I0D`yV*gHd>lO`XA>w?fahN@Th!|PX`8ba_^Y^p+S&b8vY11Be z>lO}&4&Zs@jHt1M67BE$EY<06!lXU!Qq%mWt#6RV5K()&4FS129|cwbGVr4Dq^vxyx`cgYU|0crb zVc_CrTWs*j7p(L;v*-1DSL_V^YyW-Dy({)*{ZKLcPsTc4vs^pC zj+1}?I{b}km}_xzsTG>VYzAT)ET>E7n*D?x~ zd&`mS=E3JW<34Y@P%#A?2 za0t6g*f?mh>d!S%@O!ZJ7n|t&ZLkq=a=yfDlw}Q#!L{$?%mQfB?&hOI@Njx9jxQL) zK35S_qp`J)?BU?KcP<;T1NB*L_UlV{YbwxC-~^Vd+^E7pvAc#_&JFgBSe^9)3vl$z zfN4EfQ{P0sV2e7Bo9s#~iUm#`Zyq)qMxoI{W`M_vEo4nEPSCbYZ0O?Rgk6z|iL4g$ zf@!jHCb3~g=D5kmKRuK=KZEM#X@cl`jP)bEgX`XgImzwFiE0-W) zi5rm%-t4H+&Ra6?uji$Q4j@^o`6X?nLLWvWoy<<=6stx_gCBZVaB#j@~{VYv646 zqmZ_j3&SFsh$MVG2Qs8{>X}?;<7VcMS=I~D9SDCy(nA({6xd3@^)@)|yHksqJDkvU zi?V;yuIm%8{yl&F>}Ds&=K>rRcATDdXLo;e2Zb*DFuQ^_!#BIVk`CKWCFz^&b{!~G z8P+!WapOt9x;-#)$U<^D*$oDI4)(<|z$iqy54LNcG;BThu~zNoM#;)X@8^}`VF?#c zVk48yXU31W=3&%eh^>G(q|JE+2MD}gvnuyjcbI{zyI)w#|7_FAP1in6H#_-jxPakX za-UEr_gR5Oc5co1Zpxk@UlVD4fndNNtZuf|6}rZ{?t9f+HfI-SbEn4RSO|)<2@avf z+25WTKVteb*<+dUBdxeT``p$%1hu9Ft=oDKq1fj)L65M2t`%^jlI+<8{(yUeK6_)u z#NKQmus?d}2J53)+_P34vya)5E%_C)Z6YX8+`W^5!1V_wtM2e`%C3sgYO3zm_v`+T zE?fdZ^%mLUH17fZhFE@xG`sQ~9Lzy_3s^?4awJz&jxbC4Y?TN`i;>~bW5FC*YrX*`TI zzz!pVvH&RPS{s<(h%=r>vy^PtD1a`SbV2yLev)PkYrVkNvbt*`BZS5RTNXKet_cpv z={K%Nn-&Q~BFO2;dv5_;+SzlB!!Hiy*~-92#F>0!;pkaCzmreA?X-^~528C7*9RgdXIF6x#g;G_U7}fGiY#%0t3pi_t4mfxlq^I;dIN^3EV5w^ zJh=ALiw5$tTcVr|iSxkb0Gr&i_9dLq;1-LzPybOLUeSHILrvsIm&(J&Kt7iJI=hZ3 zG7HMj6WNd%(bnGD6iAb~o3un$N0+BRi~uFF-lq6sFl4b<$G^PO5O644x%S^3GfTXC z?MtZjfXuYN@{_ZYEkWwu^~vupid8FF77dgGsK$!Rk1RjBFT}7Ft`$#*_;Pop8xQdc z?#sn{WLQRjf`7MUO&T|X){ksWQwUw^9tefF-@PHlM_GcCg0jp?(~2hg&`}%XO7xx3 zLaIw;a|aeI3snxns9UI9LT9x{ zm%FB$36-U-;`C5Nca0Rs5g-pGVT*8|uf;PDS&}}7C`g|?R)JSUMq(1Q(8b6plm>P+ zL0JHlD1wm&HR}qx}i6l7V@}e;<&0v7P-vhIJH-5 z5FnOZpRYy5ga`t`$|uAnd|DsMBu&YKIH73F;M4fN-$ZVwZz%J)lJytEPD9X)RjU;7 zX_}+DJZ4H(y&-6D62k$Ck+pzQ4{EkK{)=I((#5Ka6G9iD{0ZsFfK79#zO^CvSu;sy zOvipo{(=RS&m*LS9!O)y=oc}$>QFUgaY9+Mtl0`4(FXEKoCu?w4L|@MfjW~2K#dM~ zk&v@>Zi~N{uDd*m7wuGiwiX?19#1jgmJDYuP)tWqgjPEr3)eyay@(QqvVjTFDr%6R z)#J6bEq;=o=|I*33t-9FUX>cfHw(OzE(I|R$dC;rr$s-Hf)j!W<%yq{$lC^V zXeBp8E!d4*d=`}Xkv1zC$Wqs1Eo5YgI;}n%GlRn~ihDh_?7a3OLhk`ZrL)vwl%(#d z%G{ywk@i;jB9h&z_~etD6iI73KhKO_k|-pxxLtl@tASa?F7TdZ{;Mi(Q?O+6N{40` z=F18*$p=8+0QC?vE8L9lH*~gv?_KGtIw(FfbzXO0P$LrCx-nh(3x4ZIEKf>LB_uul!bC zI8=Hbr3?i;kl-TsA+ui9bcYc0VJ%1mcsd_XCxbwef3K)d@0+~&ufkm^c!OtB{E$HC zggi+&43`ObBl7VkbOGR-)8Be>08ZLCBK6`q$#+@vesPWwT6fM-hi`2x*|Z$FSJp0?Ju1cVa~V!H(;F*DF1f%@0P(7Lg7= zxBcBx9UBl~E(}~E1Rsr1fQ_C;$b+aCsp%}GXia2<=fk0B4zi-;%;T#J8S@KP0RX(R z9Q6uiEFqC)W~36wZuW&e2uRxc9ta~cq3kc3E0vzTz^uALDipSrsmj2t0{H3|EvL6E zj}Oi*vX;2vB(NT_7%L{vv;ii5*j(mih&~7$?|(1w5DpY2NlfhKf`tcA0ETqXyC{tr zr%OxqW#}OX5BkMXdNoB4GJseDGD!0t8O%x6App!MK?XuWk7ROWK3srDv1Y}eodJM)3g`rv#Q7uG>jRW5?Ff&2||Daoc0r=C%F<#@!rAt$mKxgE?T%Pj`RvtoD z{ET7pL@)1qM&Jd=QO9`;tIJ};M2%MgFHq2hTmWs)eC8%-* z$}Uta5>z5Nh}&pV>Irbn!TYTpqsn5bS3&y8gbYq21{OsfskW?%N)&kgeoT1Ga;gV; zLy8m5s~4>ld>j;h$%b@!_8(nfxFrdvI%xr62uk8!PmWf7@l3k|H5B$W6g7f?`!_NoiuI$aq9-hzo@O$=a}VC?{+in%n7 zBJzkA3Me5Mjas0D7NQ7DT@Z?B5!=u$T{EgX!8HaNccY_#Gif}Q)E)-_;b&Ebbv~76 z{XBL8c!_%Iq=XFDbZA1_^QvBoGBRvrf(lgC0HzY4tiiCU8S`JNwUUk!Y{EVx1l+M; zgec|&j-<5tX``)F6;>%I+OI0CTt@VTfl!2_x1X&ol6DJtg83Mf&l;HXf+098AEUI(_L8PzkBf;t>L|Sx_EJJfk1y8OO zWmbLh@f1uo8VILs{+Y~p3RkH+&^YA<0ZA}zs2cVPkZi~-&z2mjVN@ll@~7fUa-^0a zq+`|LjJ5M!{?>)MX1#^NF|Ri{V~i>!K`K>FmFSiiJL>7B{@p@JISzW@NWSnX(p1yBfsD3Nl`u`GKC@IuB>KX284SXuS|hVq`lIT6LaI>JMoF-g z5`FH(HfX3+8#J0lX1~}wR3cbv-@~m`4uttjcq=h1l|xb?^wnYkkE($QVN*6qT6uS< z^CVq;LIbx_h0hqOnalk{C6cA~J^V^VJ+KK09#Nw!)&7KvWjIBCe(*!F&O6IH&(fDq z3%^pGj^a1fKU5-FYRmi#SYMRrz;iE_=orK982<*BydoUBEmiegRxGYjB`USqdaZ^& zL7|2ZeB~l7Z}@{S_lj?Zr7{WWTkM>)tijrRu`HELOq{$fl^xHX*2g6Zu+hKRS|J)(qCAN*SCONK?YAP@_inM5=eV z*p^uv8LvEsOXV?B&qX*`7b|L}P~sSoqej#+r~jK9o^7V)tCp_&?p4QS0E5Xz@knAJaEfL?vYgm>-oG*s*e0z$UTP(~&TtNiJW3mXnF zR7sS^qiGtBJPf7?FAW6;wmXenToLjpPwC6s_oVmX3UTdIdB)+-cMfZ^M4D^yLxDN%t}x&Tkj>+31OE3PP!ElZu{ znZ*i*o+wsWs^D=d!MqX!k5fdBN*|F|nV>kSnuIJ@{%3uQr4rLw1^ZDUP`8NJ9>DS) zDY7cTyix%{R}}_Ts4$=vs=@%QinRq<*8a1;?9nK*(qx0wbi$ui6$Lvvj)boNemn#2 z>y$&PmcKun`GM|IF@R#+T#pFk17Q56cZlx)1{fDh1;99trB1l$PV4HC*g1{wK*Dnh z2a3f30X*Xe2Fz$-o>b?(2uuXKxtP~ie6vm9i+$R12bM%;6ZjV2VwIRM-g$3UiaiIs zw#?QTfK7teJe7VgJ&So2xXApYWnddGp-AW2mL`Nfh3)M}!4}72WifyMhxhdGdQM|E ztdj2o#RPhQz2`pWB3#&=e1V;HW+}(6*wxSJC;E6R)n9!r=}*SMu9$(xhANJ*)XQtj zEC~q~|FC%Hm;^b_l%@3-bMKYv4Xe8v0;W_Mq_)fa50ntHjk3J;75*=txiX=O=j(hbLoqB-r( z3XfTADhz%>Jdqm7xVlIqi=}lOVa=JiT3jV2gi2g3C~KjZa#jKYOMD2S;a65#abvfv z!Ah)g5W_mhHPVfu*OcaKte-kJF64LeUo5oy}O65{grA`@H;4Admyoweh*T21;b z5yay$f59dkS?r~fv8|$9NJ;1Q%%{Lc?q`ZFIGN)?sH&enEJkChj-tiy89YXs5l}?5#opn}LavGt4;wVf))9oA5J(_Vhn?(%igb|}^niki6o@W$y?Q*W$O2cAARzc2G*3PM z)!fVfG<+yT{!a+Sbc=eD!9oY@o>iHpDVR54Od0I4CCdzrT2dZl7~N!bA={Hs9gCO( zpX!QqM=!ccQ|u~Vi(Ms2GS#&N_qzIuVcB;;OuoM^EyB02DNZHG6fUd)nMGW)h#Q;2 zRS*vs6>>mz&VwAj%CD?6(qC0Xi_ayzQQ(bwc%vR(Z3$03dw4nmRuR{p!c`CtR{|{X5AY$B z)svvhuUCrrQ?OD8@d8P?d~iD)F#|XWbk7EqARaD!2e@T0hxioB;XO+aRP@2M^ZJyb oUa$Y|sd%6M`+EL=x%J;)Z||?S_t#tQJ%_BUi1+t}w=eAf15JSG;s5{u literal 0 HcmV?d00001 diff --git a/blackmagic.bin b/blackmagic.bin new file mode 100644 index 0000000000000000000000000000000000000000..05fd3fce15bb81fab69e5b9e9ef6a734b0ac7ae0 GIT binary patch literal 14134 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 V%PHMBS&{$6f4}g+KUNRm{{h3uNXY;I literal 0 HcmV?d00001 diff --git a/blackmagic.iff.info b/blackmagic.iff.info new file mode 100644 index 0000000000000000000000000000000000000000..25c1f361c85ad16370d8ffb3364184a3aa9ddb45 GIT binary patch literal 236 zcmaDXz`)1=1KJE63@i-H42+B%Q8F+=RGNjCks~o0h;15x5+IBLK&CJ;azyT72206* z08#ZnK;-}5|NsAQfRYdqu{skjsNt}gk+&0y0L2+5*Kl$b)n#e}!-9w%98nBhh=hPMa~C=@+n8;Wh^ nVnwFb@m^#cRbv!MDX1P*y?N7>JkwoYY0-CD`p^DbKmX$kN8?g> literal 0 HcmV?d00001 diff --git a/blackmagic_ehb.iff b/blackmagic_ehb.iff new file mode 100644 index 0000000000000000000000000000000000000000..7dfb8652c51b9e74644a169d993a93e5f9116663 GIT binary patch literal 17618 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%0D*_!|>pi z&84!Vgw=XVm{<9{Z7f)_$<>6I-H$~pZH$x;6f0q1y%F}^V3@(p(N<%_C5jR2o5o^k zLK(9eu#!et;ew=i_3$HL^;XBGp{0pr!X{x}QF!%E&F{`gQ8%f=-~v#YC2W!wPA44A z*FH;K&83%93cH^y%^T4O9I1eza-wx*uK$oWk_nsXGdH5F5GDc|)r>+avB z9_<8a6*j%q4Pj4JDXZ57w+sp6Vgd}TNnHMwU`^=}4x`15B@7iyWmy+e#;6T#5E6ud zp>s2fGz84TddMDl(o&lUW)YO7??iIL=nw?NQgvC9y>LMWxL^=G@KRo&13|OwDQT_K2wt-KxoK-X2=aUAiXObo} zWC1%*xDc^u@dUyKs{&T31nd#Yf|j@C)CCuuShZ30s%R=O{!m2Ea^`J}9(rQdwfJ#+!c)3=IjT)mc zOOw?|Z19j?{^%JZby*C4V+nRi`DK-W5psO>9n51cqXCPMg-O9Saf|LQA&Y@7kD8cJ zgdzNB!75z2OeG-kY}=nJSx)Re|QR* z_~efBD_sL;K=s^Esp>A&>(H;n6(t9Q)lsj*)p+m&TWlf6fr=qxg_p50&olf literal 0 HcmV?d00001 diff --git a/blob.iff b/blob.iff new file mode 100644 index 0000000000000000000000000000000000000000..910f200307c56269980402f2a79eefbe205df3ec GIT binary patch literal 4334 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 H3!%OMT$Fjn literal 0 HcmV?d00001 diff --git a/bounce.bb2.bak b/bounce.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..bd48d31969516cb6cd3c238e9182dfdaf5fbb0d5 GIT binary patch literal 376 zcmZvY!A`?442F%iaoR&8YLead&;njRBvnq#iVc1!5)?KLY4pl#% zpFPcA-s$DyvA5#?wVB*qg+hL}Lyn|nq|yN-CiW#eOhV#I(W0Txb(XkDyiHOh$uaRw zYLw8_kpf4nc6!+NZ3iK-Rrk<#hsW4FZxpDB<7A7bm{7O9dFtBwxbL;eOkSHsU2+7` q4=JM;i8|rhjLVFzyKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKu5KjQ&7NB?y5ce^#F!TWFHXsgS;9%$g(sO`fQ-Esb0ok*FdJ7mt7^;Bm P1R(AL;$9%`XW#+=HTDzh literal 0 HcmV?d00001 diff --git a/btest.bb2 b/btest.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..a609cf54245f0b1aa9c76b599b8b96ac8503e56e GIT binary patch literal 1337 zcmZ`(O>fgc5S`M}LVIsHP9mh{!-?WVDaff?2_!BEkN}Azva`-&$5}_~4LA}9i=WgR zH|~hgKfr%scGqcAJ|boJO)@)gX5P+1Iq0SUzrJ8y#VW4@h_OHD<7k|v*+S;1GL+FQ zm=mZ0{Mf;sQ&)wmJ3WAM4`ri295x+px6p3PZ2E6;gXGLW9GPeo>UsxVXVC9C{o$GO z7~rQ4-Se(@%~m?Nx{sRU7^i*@%LnKVJ=vHx{nb9L9yjnn!_dHc8kQ&K#L}J^=+ng- zf7b*BmY?y=S=ucsyr^iqP@Z7nEa~VzvOrEFvCT^bdaJuQbu>FwN{ePRT(h9?A3mDc z4~$^+>bX<(D~wgQ+Z|`(V1xv-XGZO&Sp zwL{hl8F^C-c0OZR){rTZCZaTsa&?M?^4sZ)amNJ; z)B8J7MoC<3c*ydSzMojKq~D~fMl2Jj3K!J1MUDXvVo?L3GfDa;lTDutk?{4OusS56 zwOm5WMN3GF^hg7D2I%t~Zk-XFu)70JSRy7Rf zt{h`ECfd5%)f3>5|J7cDP*XPymrg-)Kg*<fgc5S`M}LVIsHP9mh{!-?WVDah%z5=dMSAOR9bWM`elj$=pb4LA}9i=WgR zH|~hgKfr%scGqcAJ|boJO)@)gX5P+1Ip`(;zrJ8yMJlfYq+>Sd<7k{E*+S;1GL+%W zpA)D7{Mf;sQ&)wmJ3WAM4`ri295x+cx4>@PZ2Ir?2FaO$I5N>F)b$R!&Y<6O`olBl zF~Cn9y60W*nyqwjbssgyF-}FwN{ePRTre(VkU-(g4gH-1c_e~y~E)h-2^k1+#B$2gL zsg{bCfEMe$zEPD*B2$~@=e0}xl*uV(3uX12N2wtF{v!rhF~EwUYouG;s=iy*4qP0W zPNktQsYfQwxQXle!gMjKK_wO?T1iEy5{l5jWcouS(>onB$?{NM>UwG3Zgr{}19MA` zu^JFyKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKMnhmU1V%#uM+huq;9~G$U}cD7 zNMR@evL^xY0wA6M#4SMa8X)dtU}5M1(rrK-#K6JO0i@>u#ijt&%mcD#0reIzh%i(E Q*$F`01;o8T+|R%T0D-F#>i_@% literal 0 HcmV?d00001 diff --git a/bullet1.bin b/bullet1.bin new file mode 100644 index 0000000000000000000000000000000000000000..578b88fe53005efac9751bb0725437dc8bc3581b GIT binary patch literal 1026 zcmZ`%p-uxq5FL)*akp)E3W@|#L4u`{-jPs=1c4-}s3HgwJfflmgTkXAVE7Iko}iI@ z0_DBgZLe*@ZgRIX`*!xdw<99!vL&1NjYVWzWUVKXTu6@DVcv#waSM&x`AuLN} zF6?7jmfj<08QU)Vz8f>ZW4n(;7a&#wo@nF-4jO0KZSmUv(y5BaY>WSuK@%;> m2Hn8SB$WoHPTL>uEx*am)5CNpE%ZqrbgWl?*cvuZioqZBS60vf literal 0 HcmV?d00001 diff --git a/bullet2.bin b/bullet2.bin new file mode 100644 index 0000000000000000000000000000000000000000..e5de26427c51ce5d3d55a86e324cb6185ff8543b GIT binary patch literal 1430 zcmd6nEl&eM5Qc}Nx7_t^cS%SZ5(I)2%Si+Yl}Hdsl8VX-5*J22Q*`&QZnVp+?-`xX%W$3{gK-vR6REqd2T`En(DpUTD@)EB|*+p*gC( zADpVksGVZ-SX^;R>Bdgsj%WfaAWkV}=gkW!ny$@L8^vPOQPpobMSV3+VIudhooWUW zr^J>SDgL=rq2qYC!V#27Y5LkJmJ#R0@mt4P?i5K8q@>5TE$lJhyr?(5qn(9BP@SZ* zTIFZ&RB(#NQLV;1r3O;>hdO9JFSNHg#=pK(`^mOBFyrjneYyuXDM#7B0E}Rgy||AO zk}Ln_@5{6N$W)zG*fO`tPO{rMHkbLMefLuj4wnV@1%m>*_$kd`1($&oI=KAQzILCo Zb90jJr5kDP@BEFw@TYEA4vWKl@C~i~bkhI; literal 0 HcmV?d00001 diff --git a/bullet3.bin b/bullet3.bin new file mode 100644 index 0000000000000000000000000000000000000000..ba043121ce7a3710f8a95bd17e42399462912644 GIT binary patch literal 3442 zcmbVOEsqpI5Unh`!|ruY&*3(~z_Ej6B!YyKNDxSp3pt4(!6OhyFep3<0tkKw4o}cX z1V4b|y{hh>o{wEY&s}D=>(xhBy{Z`zxgsaH#QzbIt;q7J$oh*M?aLpPp6XpU5N(Op; zJi!Dj0}J&&K&?@>dWNJMLJkAjs?|r!Bz2t%v=kAHTzDQsT6KXsK>#Ja6QckLFN+M9d_@Vl;@eb7W-;aTij(LAMEllt2guAzMcXljnNl zBu1&|1Y+ttkSg&~Nrltq73CQKQenZ5f{+a8gZfFIwDI7L^XLl*QD>_{1`q+_I3i#P z&pqcei1vtK=b?fm+jKbrhfF*b+KwZFn6x^%hDmZFH`0dQd--4+KU5Vl*nKP|08yx% zZf5MXZfhySStoMp=#*ftm`a)`Q6^2r&}8?yhBwToqF5*jM@U|&+({pIn8@}aPTD;o zV8H-9l+KTWw}_FQ8!eRLzIm+eG&817+eP;!IZw{m&2_Ke#R!x47@FSTA6)PkROK^I9~r6@ZdI?9j-dh#>!ZZMLVfJMqsLUiLCLHsXKwZ4a?SICEzDhZy*S z5nTX})G5=3QbcC{1O*J%bi3RciH|W!ZtzQ`Tq8^=;xl8>|2;Tt$D@z}GawDq<_SmR z$UfD{OB96*JX25sqjwfH4GqN@XjhsnGNKq6E3&luRyK1*Tf{2Cr7dKrwl z34*ylj3D43Ld%!p=unD*6Mkx0K2TVez5GT}B-0Vo9udVyQbI(Iu;XE5Y=b5&>m;bo zgkc=9`g&SBFheNJ~oN%b)fLHY~sM!WYHx2p%$v-R8XJA4Wk{(OB} ziJZ&D`dj$rW$~u@(R}nTHjk=qc`Uc8_lrA=yUWMb>&@r-XLH#|z*S55E2mD5WFu?2 pimQ^9EO9lL_4lK%>zCD&)xFjA)u#E-ylY-H&%>ENa}PJC{{ZgcIVS)B literal 0 HcmV?d00001 diff --git a/bullet4.bin b/bullet4.bin new file mode 100644 index 0000000000000000000000000000000000000000..7f54611394007181f67cecd797248adf7269dfe8 GIT binary patch literal 3286 zcmaJ@J&)u>5G^gc!_0ZyUNWSU_|QqDjNR^O0wgvhJOap&F1U~YiJXAo5D5`E2_TTr z{SGqn)5V1R1djJ!b$e{j?6o!axa;++>iTM%*&Fu0Ju=&WVP|UCjQb^;Na=r(W$1#RD#uxz#$GLj{pHhrN7<|MS z!Wkru0Q4G%{xF0P@(Pm^)&T&q?jgjq#AH|zBnO6|&<{&Yh6R0~6oYp%0&`N82hxM3 zB6?8{@uVsbBo9K6g>dSd(WHU%hY90WANpakIFAE&F+qyHxiu-0Wd$Lx8_d85XgFix z)DRg3<`2EbQOunl*jGT{8G9%??T0&ZQrXh9xSD1Kp%s477Gf~CqpF5dGU1ZBC2}4;s+^dYka7S3MA2}1V!I zZI0=9OdRJrTpOZcuEgfeM4hR2s8z_6v5#wpikA&k`POWR~0YspL7 ziJ%{zVx_QR(M4r~?nONurHXCIT&q>~@y0wJk}8@Fxo%;?iJu;5+7b56t;c`b%W9|n z(2v(Sz)bA=d*QWQ5>Ayw>%2vQ2BM$|Z)< zaw&YADlFMO;0D?elcA>1Yb>JP}_Nh$;ZY=Dd_JM}{9 z2s8w0isSj2C^Yh1E#V$9YjJX_7p1&SFJV&}gX^Z1!DlM+WP}p%|Fr0{1@VcAUGAXc6WeVY5GO$BS zVYT;@LPi7z#W?@C6xJw-I9AtMpPeLl7ZFj7l#)UM4+e_OI~I-mZS=UUa|hzuA4ZIb7e`qs`A(A6|WQ{rTqm-5>4C?p0?2S8L%v zyKC%$?QCmr;@a4aUE}IrwSPZ&zWsLd<;}-84{vteuia1Gciq?F$^J?6cz5?dFKU4B literal 0 HcmV?d00001 diff --git a/bullet5.bin b/bullet5.bin new file mode 100644 index 0000000000000000000000000000000000000000..c7aa0a71d9ac61f635f40127b614dd063d7dfe5b GIT binary patch literal 5308 zcma)=t&b!{7>6s%?%d4X?hIlHlORb5LBRG`8gU6Lksy#HCr%h_rrT3+&&E<97A~YTL?G*hBw0- z-cN6#^@YB2*BPXczVE}sXb0GJu%}T*JJ3!jca#nD-d;WsBn!G|fDPvelYT1~z$Mc>?JnmGorp8H*`IHHt1gAH#4pVuT4rOc{^O z&LwK7<{pwgqjZ_cV6{;oQWup%l~|Q4=c&7JbkgkX>X^C$MpspXWmzK#`tyM9P9P zs^Ty+eR1HH8L%`pg5#|W)K}-&FXdZ`NzaZ7g9_h*73rE1Yc=(R)J5O7LRDD4*JxKz zDCZ<#+xV6PuCNhDO}!u`N+LkmK5L{^6*D7~x^C`~rBOYamzD-6M@jZ55i%X@asrGm zY_#hz*vRqF?A#0pQE@g_yu^%R|DsbSp4rOaZMY5Z@|iW4T@iOBzV)Ytqm{|J>@*@3fC0uOv_f2a!Iq&w2X}-rX?rJ0IRu(MpKfiQ9Svm zptyP|B~=u=Yo1ysdZO|-S>o0sFp*MIAx<&vm-N+xqH)XRh&T^-mGNL6woK+s7l5t5 zhmZort&B-Atw*_jf~zev%&gj9m6IR_TC%(2ao`s7Yhv38v`b}9tAE<6+V{WNZkDm( zB-WVHnmd!0Z7Y6Z9;+->0BJlPtrXIE+|q0pn{hll@~!TO0<+MA865IRle-0H%tTKa zF3g)5nM0s$H(P%qn9(_Y59Tdxq^I*s`KwZ7U@3wrP~;$S?#aaVMBVXPnF?B}i_j!c za`|x}uKcbN*GF6+#ubZ!6|D6ZIg9n$`jrrIMG&2mldaKdW4msBMzA8%55t;I>T!eQIv*d?&ReVA$BUXeM)rGmB&fEsl&2^lAh5 zW}8Ww%QK*2I&-!1bHt}ykxYjA{0ge=8LqrE)`Db)YEOxQUSI-pBndmeob+>S?6aLa zm-6Bq_suw)&I*D`P}9t6daX-gS4b!v8bB;*M-65$d8*2$v=ihkqI9OpfmL?toMFJ~ z%j-mw!YwvAiPAf8_^`5`1nNcA%#&Am;5N;_fqK8G3LeV|8~kIYP}lFP@yosR|yn5503Zc?^f#35OXo zPJWEJd59RJR^{%*z@hTpTjdwRca*VU*7Fm|dA&$aM#TH$0bTWIIb_a%AWS%6#tBQW zPzdUMYzo?wonEVZul%&$29SHCCvzm{%h&f6mTG=EusQkCG-*PI|FKN^h36 zy#_`(I1JS99R(iJ8exn7G4ZHKPNAmpL&Kgogw@qyvQm9dX5-r0P-`C|M1{-6CX`xn>GxA&V6o`)CPKlXoL zhl}qHe;$6m{%ZH>=I-+K@b>1%iw`b7y!>qQ?e5o`zYebsVbA9#?Eee*Pr~D{3)}FB t&n8@jOFoBJH!mOmzWsXh`PI{_x2|@FpAJ79zBzoke|G)s$tSz}{{aUp=?wq? literal 0 HcmV?d00001 diff --git a/bullets.1 b/bullets.1 new file mode 100644 index 0000000000000000000000000000000000000000..685574e0a55e911d93e45df3ad765f7671105e23 GIT binary patch literal 1904 zcmbtVPiP!f82`QZ&CJerH)c?wOIxx-jL<_5i+bom@NE*(RI{5kl#1HJ+!WhGz)O1& z$4P7RPu+tD!5+5sU=Jbz1@X2A!HZxJM0*fI%|TFbFG`|o*58}i%_fIppl|s0d*7RH ze&090_j|K5^9wZ~_jW=m3-R(=W5= z2IB_~^;33h;M0g}(&cR6`%lZK+|gc)frs5KnwJAcx$eD`d3BdnX^sNQTz7UeFCKAe z#ecGRM?cKB4j0wHVJb4)$U^M?ZRvb%-78m^41VmwA6T zhOc52cCzP3yO|f(v+U$|vwDTTclX#M`|&9S+h@Mtm$%J#a(ItDl_?hYe&+Ql_G#@A z`=0dgXI?GxeXU)!{0u!}*6o|@Wb@Q>nvRgUEzSm>Q#-QrqF%A*rCLwV%V`&b6O-jY zkpQ;PkM`a4+=VJp$GBim(FH!cBt6dMPklRY4Sn2*guMA(Wp4Hcy0kBd~DA8Ofb31v*c-wG>V?B@#G?&|JA; z(Tu*4p*bnq$Pme0aXj%(`q0V|S?!R6ClZHkxsqos_LFAhN(VEtN`s66!xtZd;S;3M z(B7a?2l$f4?+NTaA8EL1g?mVnQL0Gd6vdU~dq=No%(fa&1^V`e5=(Lsp1P^wr=%nX zvQ&a{bRx=IHV6W4%LetTAnM)1$c#R9b{}m*R+A_(i+X!NLRu$H7_fWgA=s^uLPN9cen@N6?o-!!`XdcjB}zHV>V#0h#iD54 z498u~|BBh$MuY5zl#7*bPAzGwc1iIIA)&e+kX}zEq2v++ZCPpdMNF}ZS`!6z64dcX zAN5JikBhE?$76`fLqJq-AJMUhg@b4!Ysz9B6AIO(l-~;{DCPKh+aHM>sJWk3;5UAl J)-O0r`ww5vK2`t# literal 0 HcmV?d00001 diff --git a/bullets.2 b/bullets.2 new file mode 100644 index 0000000000000000000000000000000000000000..c43a51c5ad4617b7f012d204fc76dafb8e7e9182 GIT binary patch literal 1830 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 U%l}0wAZvo8q?b)0|3_;71;*TSdjJ3c literal 0 HcmV?d00001 diff --git a/bullets.5.info b/bullets.5.info new file mode 100644 index 0000000000000000000000000000000000000000..d865de2948d2d9ef2e5f4faef57580181724b85f GIT binary patch literal 432 zcmaDXz`)1=1M&=l3~UU{KoQK|+vI6o9HFn>M(HiZBG{|EB_vARvbB_J^~uf#LV3c>)X=Kx|pH%}kekjMa6 KTSq@nUj_hXc7DD9 literal 0 HcmV?d00001 diff --git a/c2p.bb2 b/c2p.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..cea2c5282f7a55396ae1c87fdab6f850af10a838 GIT binary patch literal 1590 zcmah}O>fgc5M3coz`2FnG|3?mj=O8;qjF?{xN?ANk0$H1Zc-Vd8wVolNY2b;{N9^4&I%LyGa;@o>Dl-=&2<-FMVTy1F%sqx{l4Fp zomdJYGmLJ&@b?8ZTN5e0mYz)1ffT4|8Mh|54kU7hOjRrF@G^0KBY6Sel6>bYBYKNw=>XUg)p(68y)IgXWI*BEh zR9~2fl#}^I?P>Ra$02X(^*07)3aHbEoLdrCs4-5m=65HL=gwd({KVo;ITmnLQjX> zb%EiVEjg(^o*ueVxVk)zL94Dlt^}8tC_FlP_0l6f&+;Qn1PXwMl$12j$LSt-EazoX zrqrW1Sy}kLZwaXxNU3fYxPB?Ox7)pYx)+%j91iVB#k%^D2k4<%sbmrTbuU8O+qZL{ zuX+PvJ~ILygBvzPgLHndT{S*9XECa(<5Md>7`dGfuchM)*LtO4J#&FCN2zibyKw(da``f)#} zW@V3qby$Gsm*+p0-i^gZRVa{N^8vfFi>a!1F$l3-%UD~?rVnm0=-s}UfcY>N@GVk} z6+YBi@7C_HK83^PkSEWIsR&1GUV`w UI}8wDQP>IsHp>R?Ft`%p4_k7(FaQ7m literal 0 HcmV?d00001 diff --git a/c2p.bb2.bak b/c2p.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..13cf5d44875109a0eb89d4257b4623c38ced717c GIT binary patch literal 1592 zcmah}!EVz)5M3coz`2FnG|3?mj=Q##xN>BHxN?ANk0$H1Zc-16*_R|Lfl-@v&nIqt3JMpGFg>kEc7G#b-ycn zu@po)jBY>k_a(JEQz@N}nohj~DNs`~?o4qVNaRSpxWl1M{mnFJqzrgSljE~|_I|R+ z->wO2bfViYLjPbjhqPQ}dAUlD3QiyJ?Vb>BUDa3a9Af$^+)rdb89DuK686xS$0~>n z03MEz`5T$Hk;y+9o`f;27Bew4qdj#R1pLD_Zc8g_hi0)iB>k8IkMtArMndn6VFPOX%Ima7KE!LKkksp0OAwGA>q=wP$piEK%}e zl@{ej4Lf<4sq&bzoR-;nIxnbudNwb!PZH(6P@u4@RXJq+s=*01IEZnJqu4I=%5!_Z7r)YT8He}HNwk~IwLUWBH1XvV%+ z_xeJAVgx(}GfapEY3*RQ8hkL$U{qDh=dJnR<90s0n3gZ7`B1fd#>2Hk{=V1r=!^$7 zCL8B@k5yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKYt9RKj#PrqjKvv`?(W6~n;R?sJJHbXv?9Nayeu?cAOt855b13MBOHghxR~>wxit!&xWetUY`a7A z&?ozt`X1RQG*WhlPD0Iyuk0hr$o{3)ymQhf`;@MKkmEUI9T{my+1)@I26nfgR^7TY z%C@lp2ncxKxyIwH?@-og>a_T|28{|R#?{B=nqdh=(O|%T*9@eT8a=)DqHE{W4#rMTtT4@@5T*Bt>5tfe!sDF zWpRh1bLbWkMYt)$vd@+gs>&6B5mICY1&U$_x*KEVblnr!h^?qR5iS7CsO(Q_jAXtT zKtMnhmU1V%#uM+huq;9~G$U}cD7 zNMR@evL^xY0wA6M#4SMa8X)dtU}5M1(rrK-#K6JO0i@>u#ijt&%mcD#0reIzh%i(E Q*$F`01;o8T+|R%T0D-F#>i_@% literal 0 HcmV?d00001 diff --git a/c2p/blackmagic_1 b/c2p/blackmagic_1 new file mode 100644 index 0000000000000000000000000000000000000000..7356f7b9ac73fa73588052f8f527d3fdb26a839a GIT binary patch literal 660 zcmZQzVE)Vi0gO-@M9pDfV15ar6BrnTfY>R4fiVuq2LmG;hX2Bi0t|sC|Nna75$sUJ zP{OWoFr+c?)c;>BjX)**2!3#5;EDf_{7O}7_<=yJ#ux}RYC=O-t#awdH9S#M~!9 zb6Y?rFagy!c{qa9K-9Oi7&QUSVFrpfdpLpE5b=&?qn68O1JD0=uoL%iNBH9Mdj=Mu js9JzO_V9Vyb){FwY50UsM-wz0BCv*o9Vi@t>FyH%mkkJL literal 0 HcmV?d00001 diff --git a/c2p/blackmagic_1.s b/c2p/blackmagic_1.s new file mode 100644 index 0000000..02fa6bd --- /dev/null +++ b/c2p/blackmagic_1.s @@ -0,0 +1,364 @@ + + ;offset 0: + bra initc2p + + ;offset 4: + bra doc2p_1X1X8 + + ;offset 8: + bra doc2p_1X1X6 + + ;offset 12: + dc.l 0 + + ;offset 16: + dc.l 0 + +initc2p ;create 2 tables for Gloom + ; + ;a0=columns buffer to fill in (array of longs) + ;d0=how many columns (multiple of 32) + ; + ;create d0 long offsets for each column offset of chunky buffer + ;this allows for scrambling of buffer + ; + ;a1=palette remapping array (array of bytes) + ; + ;this allows for scrambled bitplanes. + ; + ;do palette remapping first... + ; + move #$ff,d1 ;#colours +.loop ; + move.b d1,0(a1,d1) + ; + dbf d1,.loop + ; + ;column offsets... + ; + ;0,2,4,6,8,10,12,14 + ;1,3,5,7,9,11,13,15 + ;16,18,20... + ; + lsr #4,d0 + subq #1,d0 + moveq #0,d1 + ; +.loop2 moveq #7,d2 + ; +.loop3 move.l d1,(a0)+ + addq.l #2,d1 + dbf d2,.loop3 + ; + sub.l #15,d1 + moveq #7,d2 + ; +.loop4 move.l d1,(a0)+ + addq.l #2,d1 + dbf d2,.loop4 + ; + subq.l #1,d1 + ; + dbf d0,.loop2 + ; + rts + +rotbits macro ;macro for rotating/merging bits. + ; + ;rotbits reg1,reg2,shift + ; + move.l \1,d4 + and.l d6,\1 + eor.l \1,d4 + lsl.l #\3,\1 + ; + move.l \2,d5 + and.l d6,d5 + eor.l d5,\2 + lsr.l #\3,\2 + or.l d4,\2 + or.l d5,\1 + ; + endm + +doc2p_1X1X8 ; + ;inputs: + ;a0.l=src chunky buffer + ;a1.l=dest chipmem bitmap + ;d0.w=width (in pixels - multiple of 32) to convert + ;d1.w=height (in pixels - even) + ;d2.l=modulo from one bitplane to next (copmod-ish) + ;d3.l=modulo from start of one line to start of next (linemod) + ; + ;internal: + ;d6=current and reg. + ;d7=loop counter + ;a2=4 bit and + ;a3=2 bit and + ;a4=1 bit and + ;a5=bitplane modulo, 1 bp to next + ;a6=subtract at end of one loop + ; + move.l #$0f0f0f0f,a2 + move.l #$33333333,a3 + move.l #$5555aaaa,a4 + move.l d2,a5 ;one bp to next. + ; + lsl.l #3,d2 ;8 bitplanes + move.l d2,a6 + sub.l a5,a6 ;7 * bpmod + subq.l #2,a6 ;to next word + ; + lsr #4,d0 ;16 pixels at a time + move d0,d2 + ext.l d2 + add.l d2,d2 + add.l a6,d2 + sub.l d2,d3 + move.l d3,-(a7) + ; + subq #1,d1 + move d1,d7 ;hite dbf + swap d7 + subq #1,d0 + move d0,d7 + subq #2,a7 ;long align + move d7,-(a7) + ; + movem.l (a0)+,d0-d3 ;next 16 pixels. + move.l a2,d6 ;4 bit and + bra.s .here + ; +.loop2 swap d7 + bra.s .here + ; +.loop movem.l (a0)+,d0-d3 ;next 16 pixels. + move.l a2,d6 ;4 bit and + ; + swap d4 + move d4,(a1) ;plane 7 + sub.l a6,a1 ;back to start of next pixel. + ; +.here rotbits d0,d2,4 + rotbits d1,d3,4 + ; + move.l a3,d6 ;2 bit and + rotbits d0,d1,2 + move.l a4,d6 ;1 bit and + ; + move.l d0,d4 + and.l d6,d4 + eor.l d4,d0 + lsr #1,d4 + swap d4 + add d4,d4 + or.l d4,d0 + ; + move d0,(a1) ;plane 0 + add.l a5,a1 + ; + move.l d1,d4 + and.l d6,d4 + eor.l d4,d1 + ; + swap d0 + move d0,(a1) + add.l a5,a1 + ; + lsr #1,d4 + swap d4 + add d4,d4 + or.l d4,d1 + ; + move d1,(a1) ;plane 2 + add.l a5,a1 + ; + move.l a3,d6 ;2 bit and + rotbits d2,d3,2 + move.l a4,d6 ;1 bit and + ; + move.l d2,d4 + and.l d6,d4 + eor.l d4,d2 + ; + swap d1 + move d1,(a1) ;plane 3 + add.l a5,a1 + ; + lsr #1,d4 + swap d4 + add d4,d4 + or.l d4,d2 + ; + move d2,(a1) ;plane 4 + add.l a5,a1 + ; + move.l d3,d4 + and.l d6,d4 + eor.l d4,d3 + ; + swap d2 + move d2,(a1) ;plane 5 + add.l a5,a1 + ; + lsr #1,d4 + swap d4 + add d4,d4 + or.l d3,d4 + ; + move d4,(a1) ;plane 6 + add.l a5,a1 + ; + dbf d7,.loop ;end of width? + move (a7),d7 + swap d7 + ; + movem.l (a0)+,d0-d3 ;get next 16 pixels. + move.l a2,d6 ;4 bit and + ; + swap d4 + move d4,(a1) ;plane 7. + add.l 4(a7),a1 ;start of next line + ; + dbf d7,.loop2 + ; + list +.check set *-.loop2 ;loop size (<256?) + nolist + ; + addq #8,a7 + ; + rts + +doc2p_1X1X6 ; + ;inputs: + ;a0.l=src chunky buffer + ;a1.l=dest chipmem bitmap + ;d0.w=width (in pixels - multiple of 32) to convert + ;d1.w=height (in pixels - even) + ;d2.l=modulo from one bitplane to next (copmod-ish) + ;d3.l=modulo from start of one line to start of next (linemod) + ; + ;internal: + ;d6=current and reg. + ;d7=loop counter + ;a2=4 bit and + ;a3=2 bit and + ;a4=1 bit and + ;a5=bitplane modulo, 1 bp to next + ;a6=subtract at end of one loop + ; + move.l #$0f0f0f0f,a2 + move.l #$33333333,a3 + move.l #$5555aaaa,a4 + move.l d2,a5 ;one bp to next. + ; + lsl.l #2,d2 ;*4 + add.l a5,d2 ;*5 + move.l d2,a6 + subq.l #2,a6 + ; + lsr #4,d0 ;16 pixels at a time + move d0,d2 + ext.l d2 + add.l d2,d2 ;bytes + add.l a6,d2 + sub.l d2,d3 + move.l d3,-(a7) + ; + subq #1,d1 + move d1,d7 ;hite dbf + swap d7 + subq #1,d0 + move d0,d7 + subq #2,a7 ;long align + move d7,-(a7) + ; + movem.l (a0)+,d0-d3 ;next 16 pixels. + move.l a2,d6 ;4 bit and + bra.s .here + ; +.loop2 swap d7 + bra.s .here + ; +.loop movem.l (a0)+,d0-d3 ;next 16 pixels. + move.l a2,d6 ;4 bit and + ; + swap d4 + move d4,(a1) ;plane 7 + sub.l a6,a1 ;back to start of next pixel. + ; +.here rotbits d0,d2,4 + rotbits d1,d3,4 + ; + move.l a3,d6 ;2 bit and + rotbits d0,d1,2 + move.l a4,d6 ;1 bit and + ; + move.l d0,d4 + and.l d6,d4 + eor.l d4,d0 + lsr #1,d4 + swap d4 + add d4,d4 + or.l d4,d0 + ; + move d0,(a1) ;plane 0 + add.l a5,a1 + ; + move.l d1,d4 + and.l d6,d4 + eor.l d4,d1 + ; + swap d0 + move d0,(a1) ;plane 1 + add.l a5,a1 + ; + lsr #1,d4 + swap d4 + add d4,d4 + or.l d4,d1 + ; + move d1,(a1) ;plane 2 + add.l a5,a1 + ; + move.l a3,d6 ;2 bit and + rotbits d2,d3,2 + move.l a4,d6 ;1 bit and + ; + move.l d2,d4 + and.l d6,d4 + eor.l d4,d2 + ; + swap d1 + move d1,(a1) ;plane 3 + add.l a5,a1 + ; + lsr #1,d4 + swap d4 + add d4,d4 + or.l d2,d4 + ; + move d4,(a1) ;plane 4 + add.l a5,a1 + ; + dbf d7,.loop ;end of width? + move (a7),d7 + swap d7 + ; + movem.l (a0)+,d0-d3 ;get next 16 pixels. + move.l a2,d6 ;4 bit and + ; + swap d4 + move d4,(a1) ;plane 7. + add.l 4(a7),a1 ;start of next line + ; + dbf d7,.loop2 + ; + list +.check set *-.loop2 ;loop size (<256?) + nolist + ; + addq #8,a7 + ; + rts diff --git a/c2p/simons040_1.s b/c2p/simons040_1.s new file mode 100644 index 0000000..ae992d2 --- /dev/null +++ b/c2p/simons040_1.s @@ -0,0 +1,596 @@ + + ;offset 0: + bra initc2p + + ;offset 4: + bra doc2p_1X1X8 + + ;offset 8: + bra doc2p_1X1X6 + + ;offset 12: + dc.l 0 + + ;offset 16: + dc.l 0 + +initc2p ;create 2 tables for Gloom + + ; + ;a0=columns buffer to fill in (array of longs) + ;d0=how many columns (multiple of 32) + ; + ;create d0 long offsets for each column offset of chunky buffer + ;this allows for scrambling of buffer + ; + ;a1=palette remapping array (array of bytes) + ; + ;this allows for scrambled bitplanes. + ; + ;do palette remapping first... + ; + move #$ff,d1 ;#colours +.loop move.b d1,0(a1,d1) + dbf d1,.loop + ; + subq #1,d0 + moveq #0,d1 +.loop2 move.l d1,(a0)+ + addq.l #1,d1 + dbf d0,.loop2 + ; + rts + +rotbits macro ;macro for rotating/merging bits. + ; + ;rotbits reg1,reg2,shift + ; + move.l \1,d4 + and.l d6,\1 + eor.l \1,d4 + lsl.l #\3,\1 + ; + move.l \2,d5 + and.l d6,d5 + eor.l d5,\2 + lsr.l #\3,\2 + or.l d4,\2 + or.l d5,\1 + ; + endm + +doc2p_1X1X8 ; + ;inputs: + ;a0.l=src chunky buffer + ;a1.l=dest chipmem bitmap + ;d0.w=width (in pixels - multiple of 32) to convert + ;d1.w=height (in pixels - even) + ;d2.l=modulo from one bitplane to next (copmod-ish) + ;d3.l=modulo from start of one line to start of next (linemod) + ; + ;internal: + ;d6=current and reg. + ;d7=loop counter + ;a2=4 bit and + ;a3=2 bit and + ;a4=1 bit and + ;a5=bitplane modulo, 1 bp to next + ;a6=subtract at end of one loop + ; + move.l #$0f0f0f0f,a2 + move.l #$33333333,a3 + move.l #$5555aaaa,a4 + move.l d2,a5 ;one bp to next. + ; + lsl.l #3,d2 ;8 bitplanes + move.l d2,a6 + sub.l a5,a6 ;7 * bpmod + subq.l #2,a6 ;to next word + ; + lsr #4,d0 ;16 pixels at a time + move d0,d2 + ext.l d2 + add.l d2,d2 + add.l a6,d2 + sub.l d2,d3 + move.l d3,-(a7) + ; + subq #1,d1 + move d1,d7 ;hite dbf + swap d7 + subq #1,d0 + move d0,d7 + subq #2,a7 ;long align + move d7,-(a7) + ; + movem.l (a0)+,d0-d3 ;next 16 pixels. + move.l a2,d6 ;4 bit and + bra.s .here + ; +.loop2 swap d7 + bra.s .here + ; +.loop movem.l (a0)+,d0-d3 ;next 16 pixels. + move.l a2,d6 ;4 bit and + ; + swap d4 + move d4,(a1) ;plane 7 + sub.l a6,a1 ;back to start of next pixel. + ; +.here rotbits d0,d2,4 + rotbits d1,d3,4 + ; + move.l a3,d6 ;2 bit and + rotbits d0,d1,2 + move.l a4,d6 ;1 bit and + ; + move.l d0,d4 + and.l d6,d4 + eor.l d4,d0 + lsr #1,d4 + swap d4 + add d4,d4 + or.l d4,d0 + ; + move d0,(a1) ;plane 0 + add.l a5,a1 + ; + move.l d1,d4 + and.l d6,d4 + eor.l d4,d1 + ; + swap d0 + move d0,(a1) + add.l a5,a1 + ; + lsr #1,d4 + swap d4 + add d4,d4 + or.l d4,d1 + ; + move d1,(a1) ;plane 2 + add.l a5,a1 + ; + move.l a3,d6 ;2 bit and + rotbits d2,d3,2 + move.l a4,d6 ;1 bit and + ; + move.l d2,d4 + and.l d6,d4 + eor.l d4,d2 + ; + swap d1 + move d1,(a1) ;plane 3 + add.l a5,a1 + ; + lsr #1,d4 + swap d4 + add d4,d4 + or.l d4,d2 + ; + move d2,(a1) ;plane 4 + add.l a5,a1 + ; + move.l d3,d4 + and.l d6,d4 + eor.l d4,d3 + ; + swap d2 + move d2,(a1) ;plane 5 + add.l a5,a1 + ; + lsr #1,d4 + swap d4 + add d4,d4 + or.l d3,d4 + ; + move d4,(a1) ;plane 6 + add.l a5,a1 + ; + dbf d7,.loop ;end of width? + move (a7),d7 + swap d7 + ; + movem.l (a0)+,d0-d3 ;get next 16 pixels. + move.l a2,d6 ;4 bit and + ; + swap d4 + move d4,(a1) ;plane 7. + add.l 4(a7),a1 ;start of next line + ; + dbf d7,.loop2 + ; + list +.check set *-.loop2 ;loop size (<256?) + nolist + ; + addq #8,a7 + ; + rts + +doc2p_1X1X6 ; + ;inputs: + ;a0.l=src chunky buffer + ;a1.l=dest chipmem bitmap + ;d0.w=width (in pixels - multiple of 32) to convert + ;d1.w=height (in pixels - even) + ;d2.l=modulo from one bitplane to next (copmod-ish) + ;d3.l=modulo from start of one line to start of next (linemod) + ; + ;internal: + ;d6=current and reg. + ;d7=loop counter + ;a2=4 bit and + ;a3=2 bit and + ;a4=1 bit and + ;a5=bitplane modulo, 1 bp to next + ;a6=subtract at end of one loop + ; + move.l #$0f0f0f0f,a2 + move.l #$33333333,a3 + move.l #$5555aaaa,a4 + move.l d2,a5 ;one bp to next. + ; + lsl.l #2,d2 ;*4 + add.l a5,d2 ;*5 + move.l d2,a6 + subq.l #2,a6 + ; + lsr #4,d0 ;16 pixels at a time + move d0,d2 + ext.l d2 + add.l d2,d2 ;bytes + add.l a6,d2 + sub.l d2,d3 + move.l d3,-(a7) + ; + subq #1,d1 + move d1,d7 ;hite dbf + swap d7 + subq #1,d0 + move d0,d7 + subq #2,a7 ;long align + move d7,-(a7) + ; + movem.l (a0)+,d0-d3 ;next 16 pixels. + move.l a2,d6 ;4 bit and + bra.s .here + ; +.loop2 swap d7 + bra.s .here + ; +.loop movem.l (a0)+,d0-d3 ;next 16 pixels. + move.l a2,d6 ;4 bit and + ; + swap d4 + move d4,(a1) ;plane 7 + sub.l a6,a1 ;back to start of next pixel. + ; +.here rotbits d0,d2,4 + rotbits d1,d3,4 + ; + move.l a3,d6 ;2 bit and + rotbits d0,d1,2 + move.l a4,d6 ;1 bit and + ; + move.l d0,d4 + and.l d6,d4 + eor.l d4,d0 + lsr #1,d4 + swap d4 + add d4,d4 + or.l d4,d0 + ; + move d0,(a1) ;plane 0 + add.l a5,a1 + ; + move.l d1,d4 + and.l d6,d4 + eor.l d4,d1 + ; + swap d0 + move d0,(a1) ;plane 1 + add.l a5,a1 + ; + lsr #1,d4 + swap d4 + add d4,d4 + or.l d4,d1 + ; + move d1,(a1) ;plane 2 + add.l a5,a1 + ; + move.l a3,d6 ;2 bit and + rotbits d2,d3,2 + move.l a4,d6 ;1 bit and + ; + move.l d2,d4 + and.l d6,d4 + eor.l d4,d2 + ; + swap d1 + move d1,(a1) ;plane 3 + add.l a5,a1 + ; + lsr #1,d4 + swap d4 + add d4,d4 + or.l d2,d4 + ; + move d4,(a1) ;plane 4 + add.l a5,a1 + ; + dbf d7,.loop ;end of width? + move (a7),d7 + swap d7 + ; + movem.l (a0)+,d0-d3 ;get next 16 pixels. + move.l a2,d6 ;4 bit and + ; + swap d4 + move d4,(a1) ;plane 7. + add.l 4(a7),a1 ;start of next line + ; + dbf d7,.loop2 + ; + list +.check set *-.loop2 ;loop size (<256?) + nolist + ; + addq #8,a7 + ; + rts + +; Chunky2Planar algorithm. +; +; Cpu only solution VERSION 2 +; Optimised for 040+fastram +; analyse instruction offsets to check performance + +; output five_pass.o +; opt l+ ;Linkable code +; opt c+ ;Case sensitive +; opt d- ;No debugging information +; opt m+ ;Expand macros in listing +; opt o- ;No optimisation + +;quad_begin: +; cnop 0,16 + +; xdef _chunky2planar + +; a0 -> chunky pixels +; a1 -> plane0 + +width equ 320 ; must be multiple of 32 +height equ 200 +plsiz equ (width/8)*height + + +merge MACRO in1,in2,tmp3,tmp4,mask,shift + ; \1 = abqr + ; \2 = ijyz + move.l \2,\4 + move.l #\5,\3 + and.l \3,\2 \2 = 0j0z + and.l \1,\3 \3 = 0b0r + eor.l \3,\1 \1 = a0q0 + eor.l \2,\4 \4 = i0y0 + IFEQ \6-1 + add.l \3,\3 + ELSE + lsl.l #\6,\3 \3 = b0r0 + ENDC + lsr.l #\6,\4 \4 = 0i0y + or.l \3,\2 \2 = bjrz + or.l \4,\1 \1 = aiqy + ENDM + + +_chunky2planar: + jmp next +next + ; round down address of c2p + lea c2p(pc),a0 + move.l a0,d0 + and.b #%11110000,d0 + move.l d0,a1 + + ; patch jmp + move.l d0,_chunky2planar+2 + move.w #(end-c2p)-1,d0 +loop move.b (a0)+,(a1)+ + dbra d0,loop + + ;tidy cache + movem.l d2-d7/a2-a6,-(sp) + move.l $4.w,a6 + jsr -636(a6) + movem.l (sp)+,d2-d7/a2-a6 + rts + + cnop 0,16 +c2p: + movem.l d2-d7/a2-a6,-(sp) + + ; a0 = chunky buffer + ; a1 = output area + + lea 4*plsiz(a1),a1 ; a1 -> plane4 + + move.l a0,d0 + add.l #16,d0 + and.b #%11110000,d0 + move.l d0,a0 + + move.l a0,a2 + add.l #8*plsiz,a2 + + lea p0(pc),a3 + bra.s mainloop + + cnop 0,16 +mainloop: + move.l 0(a0),d0 + move.l 4(a0),d2 + move.l 8(a0),d1 + move.l 12(a0),d3 + move.l 2(a0),d4 + move.l 10(a0),d5 + move.l 6(a0),d6 + move.l 14(a0),d7 + + move.w 16(a0),d0 + move.w 24(a0),d1 + move.w 20(a0),d2 + move.w 28(a0),d3 + move.w 18(a0),d4 + move.w 26(a0),d5 + move.w 22(a0),d6 + move.w 30(a0),d7 + + adda.w #32,a0 + move.l d6,a5 + move.l d7,a6 + + merge d0,d1,d6,d7,$00FF00FF,8 + merge d2,d3,d6,d7,$00FF00FF,8 + + merge d0,d2,d6,d7,$0F0F0F0F,4 + merge d1,d3,d6,d7,$0F0F0F0F,4 + + exg.l d0,a5 + exg.l d1,a6 + + merge d4,d5,d6,d7,$00FF00FF,8 + merge d0,d1,d6,d7,$00FF00FF,8 + + merge d4,d0,d6,d7,$0F0F0F0F,4 + merge d5,d1,d6,d7,$0F0F0F0F,4 + + merge d2,d0,d6,d7,$33333333,2 + merge d3,d1,d6,d7,$33333333,2 + + merge d2,d3,d6,d7,$55555555,1 + merge d0,d1,d6,d7,$55555555,1 + move.l d3,2*4(a3) ;plane2 + move.l d2,3*4(a3) ;plane3 + move.l d1,0*4(a3) ;plane0 + move.l d0,1*4(a3) ;plane1 + + move.l a5,d2 + move.l a6,d3 + + merge d2,d4,d6,d7,$33333333,2 + merge d3,d5,d6,d7,$33333333,2 + + merge d2,d3,d6,d7,$55555555,1 + merge d4,d5,d6,d7,$55555555,1 + move.l d3,6*4(a3) ;bitplane6 + move.l d2,7*4(a3) ;bitplane7 + move.l d5,4*4(a3) ;bitplane4 + move.l d4,5*4(a3) ;bitplane5 + + +inner: + move.l 0(a0),d0 + move.l 4(a0),d2 + move.l 8(a0),d1 + move.l 12(a0),d3 + move.l 2(a0),d4 + move.l 10(a0),d5 + move.l 6(a0),d6 + move.l 14(a0),d7 + + move.w 16(a0),d0 + move.w 24(a0),d1 + move.w 20(a0),d2 + move.w 28(a0),d3 + move.w 18(a0),d4 + move.w 26(a0),d5 + move.w 22(a0),d6 + move.w 30(a0),d7 + + adda.w #32,a0 + move.l d6,a5 + move.l d7,a6 + + ; write bitplane 7 + + move.l 2*4(a3),-2*plsiz(a1) ;plane2 + merge d0,d1,d6,d7,$00FF00FF,8 + merge d2,d3,d6,d7,$00FF00FF,8 + + ; write + move.l 3*4(a3),-plsiz(a1) ;plane3 + merge d0,d2,d6,d7,$0F0F0F0F,4 + merge d1,d3,d6,d7,$0F0F0F0F,4 + + exg.l d0,a5 + exg.l d1,a6 + + ; write + move.l 0*4(a3),-4*plsiz(a1) ;plane0 + merge d4,d5,d6,d7,$00FF00FF,8 + merge d0,d1,d6,d7,$00FF00FF,8 + + ; write + move.l 1*4(a3),-3*plsiz(a1) ;plane1 + merge d4,d0,d6,d7,$0F0F0F0F,4 + merge d5,d1,d6,d7,$0F0F0F0F,4 + + ; write + move.l 6*4(a3),2*plsiz(a1) ;bitplane6 + merge d2,d0,d6,d7,$33333333,2 + merge d3,d1,d6,d7,$33333333,2 + + ; write + move.l 7*4(a3),3*plsiz(a1) ;bitplane7 + merge d2,d3,d6,d7,$55555555,1 + merge d0,d1,d6,d7,$55555555,1 + move.l d3,2*4(a3) ;plane2 + move.l d2,3*4(a3) ;plane3 + move.l d1,0*4(a3) ;plane0 + move.l d0,1*4(a3) ;plane1 + + move.l a5,d2 + move.l a6,d3 + + move.l 4*4(a3),(a1)+ ;bitplane4 + merge d2,d4,d6,d7,$33333333,2 + merge d3,d5,d6,d7,$33333333,2 + + move.l 5*4(a3),-4+1*plsiz(a1) ;bitplane5 + merge d2,d3,d6,d7,$55555555,1 + merge d4,d5,d6,d7,$55555555,1 + move.l d3,6*4(a3) ;bitplane6 + move.l d2,7*4(a3) ;bitplane7 + move.l d5,4*4(a3) ;bitplane4 + move.l d4,5*4(a3) ;bitplane5 + + cmpa.l a0,a2 + bne.w inner + + move.l 2*4(a3),-2*plsiz(a1) ;plane2 + move.l 3*4(a3),-plsiz(a1) ;plane3 + move.l 0*4(a3),-4*plsiz(a1) ;plane0 + move.l 1*4(a3),-3*plsiz(a1) ;plane1 + move.l 6*4(a3),2*plsiz(a1) ;bitplane6 + move.l 7*4(a3),3*plsiz(a1) ;bitplane7 + move.l 4*4(a3),(a1)+ ;bitplane4 + move.l 5*4(a3),-4+1*plsiz(a1) ;bitplane5 + +exit + movem.l (sp)+,d2-d7/a2-a6 + rts + + cnop 0,4 +end: +p0 dc.l 0 +p1 dc.l 0 +p2 dc.l 0 +p3 dc.l 0 +p4 dc.l 0 +p5 dc.l 0 +p6 dc.l 0 +p7 dc.l 0 diff --git a/c2p/writepixelarray8 b/c2p/writepixelarray8 new file mode 100644 index 0000000000000000000000000000000000000000..986eab69d7930e26e5fd05dd82914c371efc4898 GIT binary patch literal 676 zcmZQzVE)Vi0gO-@L@i)oV15ar6Brn{fY>U5ficX;hT*?(qX0wT$^XAzcmz8XF_f?? z91Lj;JoWz@au3T2za!S!UvcRKLG#)HWT>( literal 0 HcmV?d00001 diff --git a/c2ptest.bb2 b/c2ptest.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..d352d3edc76b94b64ab7fe917d476679d2d554a1 GIT binary patch literal 796 zcmZuw+isgc5FJ~t6jkkG>pqTB%L22I-6g&VME@g?fQ^W}1j}}Wt*X^3-_UQ!2jr=* z{edLUk*fYmXBT=&Rlu-w&RovUjzNck0*E2b%j>K4(f_bf=~cSL{c5)-81w-1TGd6d z3zQQ|?iyrU1(_qKGnaT5Q_jYnkHg)FkR@m2YB|Bi+seWhn9Ge9N`TuwT89axU?agf z7XW#g-1f*3ph-d*mGnZySjYtxIl+9R>ix$9J2EQuiInL#*szl2^tAdMmr*5`sHa|# zVP1O2N#p$@50)hh$0(;$W{7c%(| zCM1DXl1V=kB=)~ooL%lsPghvgOHh?b(fm&9b}_NK>^$JX=rK37u+>EC(^Cs^>cv}J zCmi)Vvkhv{re3e?5nXS00o=dFHKY4X((fGfkQ!U7#O#Oyk8NP-3u7Hxt060f=lzW+ z$TP4WMka@Tg+B(=g@gm5o}1Tad_O8UXQO3Nh=s*3a9PtCckCZZe>0h$75sjKcLV3Z z%sdSZ`;v|Wpp7Tf&QN2&f|d3wSytIa$dp~s+~t-^10x_u>A)B`~;vd$E^SW literal 0 HcmV?d00001 diff --git a/c2ptest.bb2.bak b/c2ptest.bb2.bak new file mode 100644 index 0000000000000000000000000000000000000000..d352d3edc76b94b64ab7fe917d476679d2d554a1 GIT binary patch literal 796 zcmZuw+isgc5FJ~t6jkkG>pqTB%L22I-6g&VME@g?fQ^W}1j}}Wt*X^3-_UQ!2jr=* z{edLUk*fYmXBT=&Rlu-w&RovUjzNck0*E2b%j>K4(f_bf=~cSL{c5)-81w-1TGd6d z3zQQ|?iyrU1(_qKGnaT5Q_jYnkHg)FkR@m2YB|Bi+seWhn9Ge9N`TuwT89axU?agf z7XW#g-1f*3ph-d*mGnZySjYtxIl+9R>ix$9J2EQuiInL#*szl2^tAdMmr*5`sHa|# zVP1O2N#p$@50)hh$0(;$W{7c%(| zCM1DXl1V=kB=)~ooL%lsPghvgOHh?b(fm&9b}_NK>^$JX=rK37u+>EC(^Cs^>cv}J zCmi)Vvkhv{re3e?5nXS00o=dFHKY4X((fGfkQ!U7#O#Oyk8NP-3u7Hxt060f=lzW+ z$TP4WMka@Tg+B(=g@gm5o}1Tad_O8UXQO3Nh=s*3a9PtCckCZZe>0h$75sjKcLV3Z z%sdSZ`;v|Wpp7Tf&QN2&f|d3wSytIa$dp~s+~t-^10x_u>A)B`~;vd$E^SW literal 0 HcmV?d00001 diff --git a/c2ptest.bb2.info b/c2ptest.bb2.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKu5KjQ&7NB?y5ce^#F!TWFHXsgS;9%$g(sO`fQ-Esb0ok*FdJ7mt7^;Bm P1R(AL;$9%`XW#+=HTDzh literal 0 HcmV?d00001 diff --git a/camrots.bin b/camrots.bin new file mode 100644 index 0000000000000000000000000000000000000000..1d255d49b3ace3ad789a57c98bab671a4fa56597 GIT binary patch literal 2048 zcmXBUdqlH+9LMonsp(#nD9y65%sP;4bRcD<#1@&6R+-FXl~Sv zzU}nvc-#4%o(^)G=pZ}DcK(*I)6>ouCpXHvZ^cQG&55ENu>UH5Al|7nwtm zI&rOK!96UhwNxF=3r6;xsvrU*)oE89Xk2x+z@OF?!J+gXatX0nvH%WO_BCaFX+z4*@`GL85(@cn@I-w&UM z`26$m!;0^JSl^ZS{kt+D#`6;5*BU(kwI46#V})Pxkn@uRZ>50Qa{WaLaL@Zn=w! z`*l%wytwZj@AfZo7}yfR!9Qp9#$Y0NapY`+@hlpIIOL&-%<(%!AoF zGl}__nVeQ(UZz!3Cd|*2$>hX5nViNT=F1o~GB9sOhCzk-GpO`2%%eW0mtj8jGBSmE zB~zpW^GiC&4$Si}^is?>SxQnd?!~BzJBsIMl2FTLPW*8tlvJ@~tI6$Xq!CJhEmP8JIWrc7)O3{0y^*f20NSzR4y4p;Kfi+2s z2L^0hK|KuEX{}xuSkGzW!hj=RWP^c?GI0_HwuJ3`82JD8w}~BZrw0aH)b3jtaLc7} z7}yQ;Bw%2VFMEQ4{S$cr1`dS1P8c|hDf(dGc)Fhj176<11q}FJ2D@P3)HM`=fivZ> z2nH^jM)qOA&l*jGfvb$M1{k=0Qz>BJCOU3_f%}l!3a zQ5blpOqyXJ&d||e;I&3)hk=BcpuoVpl90l{hn3idfzLzY4hFs-h$IZ4{V;&`!vNY3 z186@Cp#3m__QL?$4+CgF450lmQ1ln;Df)}{!vNY3186@Cp#3m__QL?$4+CgF450lm zfcC=x+7AP0KMbJ#Fo5>M0NM`&Xg>^~{V;&`!vNY3186@Cp#3m__QL?$4+CgF450lm zfcC=x+7AOgZ}8LehW5h%+7AP0KMbJ#Fo5>M0NM`&Xg>^~{V;&`!vNY3186@Cp#3m_ z_QL?$4+CgF450lmfcC=x+7AP0KMbJ#Fo5>M0NM`&Xg>^~{V;&`!vNY3186@C{0A}B B^fmwh literal 0 HcmV?d00001 diff --git a/camrots2.bin b/camrots2.bin new file mode 100644 index 0000000000000000000000000000000000000000..1d91836ae34783e7ffc00102f9d017271113cda3 GIT binary patch literal 8192 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 U3s`nvWR(Xj2k6~qmOMcJKPt6baR2}S literal 0 HcmV?d00001 diff --git a/cd32.bb2 b/cd32.bb2 new file mode 100644 index 0000000000000000000000000000000000000000..e901ed79660712eab284fa03f0d9e3c55c0d510b GIT binary patch literal 522 zcmcIhK}rKb5NyPwk7(FE%)%IYc9!I@cnNqBqCqj>agxr$YRHDwgYh7v_yix~2R!%> z#jm7i%wl|ix9;ld>Y5txwzmNA2l&0OC_5rR^aH>WPseS&yu*`beXmRw;47T5&87N! z#?Ke!GVmX=x(6UwIXashBc@zcL^I8~K-bMW=#|5Zb8P31rRTcs$RlJrWTTa%AYZ~( z-9KPDt>#2VyKpV^LDlrNGm$9R6D9-AHjEz;le8cr%|+-Zh-`J56DgNRj(5QBrh*7nHTW3S_1eJ{5dYTJYzug{qWr4RBWx$_X~c#7On*Usl+1y#Rj8` z@i}5HZOc3*sTEpu521T7yuQNq%!%eQUnlYig-^v$;kXPK?9}}u=96~DY{-RaArGpi zN6ti|V$YcMNo*)TA!d2Q%p^_7$B1GnubB&12W5W~k(5QgR+*x#jZLc8BQdb-x)u2M zYJ!P=h*(!BoGI0%zlGDh|H}?hnjP)3+TiAHzDg~Igdqa{9@WRVdh)~W{ZGBk;uW{j O`_6pm4afz>H-KM)`*}V9 literal 0 HcmV?d00001 diff --git a/cd32.bb2.info b/cd32.bb2.info new file mode 100644 index 0000000000000000000000000000000000000000..6baf88371078562a14790207fac87125f245ee03 GIT binary patch literal 396 zcmaDXz`)1=0?7=540;R_46F>yKoO;C1+XXv!J@>VR8Ya7RI~#q6$8Y47)taQ#2J_v z82e{1gQfn1z@G*%8%lx%7#e{bHW)eU-qkjS#_7?uK(guDOCZ^}HWohQ`p)5G{r#1_q$xn}I6-!&CxA7@%x06GE_nDO6Ja z|NjRp3{v;501Xw7t^txv*Iocg#4JDkCch1(pKMnhmU1V%#uM+huq;9~G$U}cD7 zNMR@evL^xY0wA6M#4SMa8X)dtU}5M1(rrK-#K6JO0i@>u#ijt&%mcD#0reIzh%i(E Q*$F`01;o8T+|R%T0D-F#>i_@% literal 0 HcmV?d00001 diff --git a/chatfont.bin b/chatfont.bin new file mode 100644 index 0000000000000000000000000000000000000000..2ceb14d2916447a890773a3653cfcd234036e318 GIT binary patch literal 200 zcmW-bp$@|^3`C8BrfJZiA7Pk}DkvV#osVa(^)Eklk(TFyEhodd_7b8p)CR2$gmC2U|ld7`@b557F14WM=sRIXZg1 literal 0 HcmV?d00001 diff --git a/chatfont.iff b/chatfont.iff new file mode 100644 index 0000000000000000000000000000000000000000..b46393ce779d86504ac5a4c33be67af09d6747a9 GIT binary patch literal 382 zcmaKmu}T9$5QhH^$q`KuL5nTU%EETbE4@oF3Z9X4zC(&sl43c06l{-MU3k6#3trDiTzkyTazDF3MeC;`G40Avai1CzoGX0Vj} z2M|^N14RD+{r~^}1}F&;0n0uBNkUDN{{v#z{{xZ#LF@!53Do-k0hrD3AFTHQNC^ml YeZT=^@VR;VxQ0XqxY~O9IQcRF0J85basU7T literal 0 HcmV?d00001 diff --git a/chunks.bin b/chunks.bin new file mode 100644 index 0000000000000000000000000000000000000000..e1d49ca77e00465afd16e07f069624062b64ab2c GIT binary patch literal 3380 zcmcImJq{f;5T5n_&)SYelmdwYiHZWHN|gd}hKMT!(bJ?)lLO=cNSuL!j{9%~B);*k zf7bh=BuMdl`)tqWnfW{(&psmB=^Of*C_N>jmqhXfk$FyJe<5<;;rSWQ-$ecgJiil# zH$?G!Jik(=bm&6!-nMPK3t6)5@dJp6;xV#C@c{(#$9^^j9#~T>M!Rt{LOw>UP}SB= z#|jNE&|0|(VVIZPR@R!=ZZSr2b#JW}Kmf=qpt8|YZgG$C3Xrrw0PKs(zDuPPkSH&< z_OvHNk;NA|CA11HoG9&RDeiIwA{0Ost`{U`0B{6wVVhwGatCWyB<2{Ch|as!7OV(7 zF8BqZ498Kp5W+>(^pW&>-c-BoKx-4DUcg1=1npWguF2Tz`LpY=eRle;TY%>nBvJwKoAhtK;z#UQJgPx zgWH;~98W}#MQ6j|AiB_Og3+6rP-8wu(!lLpVjqhWu6zh>bqvM((ifvbZp97M30#=TGj5#gi(zA#qPR_qn~zH`NfPt_ z^rlHuz~}$Bk8v87FTPq%aMkXu4RKTbX;=6jqA|it=+Hsebh?o`P>6%aIexU2vG>xf zR;6*MIOJxg+~08>A_t#O@K5WDwRx-C;7wxMgapM#Kq9^R1g}lkCwTRCgx|Jp=O~2y zISrup@hjlC5xH5d{gkI3N7S+4!tg@44I`rkSNgWlhl29nE~ZE5hg(;m)F8s&ipd$S zbGN~^pw>)sUonMS;6CdX%qDQ}D57pYn}vwiJmoR&s$aO_KX>K2iV=8L=L6_b$FzR& zQ(H3+Y1{9$8Z_}C^;~GUKpcw^br^v6+Tf*%E1O{jC&Sk3k(_Ty=s57=4m)g)D+R~9 z;BEJ%O!c5!x6eNZ#=h&)W5xN)($*0y|wao9K)DR{tn|lCSh{ X_PzhZzuMoHKlN+(&i@tvDgXWlGBzt1 literal 0 HcmV?d00001 diff --git a/chunks.iff b/chunks.iff new file mode 100644 index 0000000000000000000000000000000000000000..64d5bf42ea3917082b13c0f3bcbde7529222edce GIT binary patch literal 2926 zcmb_eU1%It6#nkabZ0iZ*_p;PO>3GRwL*o8E0#7=+e~Ba4>Y>g;vcnaV^L7V6}7|% z+bb&6A~u2#iclhoRv&5}6vP(?kzz$8pbz!Mjvz&>wp-f7&1QGwckZlK-+U;6oqN9X zo$sD|&i%=jyLOHOxkt9|7#STI-L@G(FFwRBe&JY(zg;;MDcnA~sZ65;jZzqtBZN^{ zDo5pNxjIpqm@H3}qga<~Q`K^%s`cc=)YMcmU8_xR-MMK*q;L%P+`jY9tsHy6vOQ2x zm+j?mpauW3jevgq%f^3g@|FK@e$m*QMn&HN${4w8^8?KNwX?V~e@!5~fb{ol=SwRx z*lzP%GQZUeT#8aF(@$cs>C~v3k5!}J(SHif-cOBms9tOV?yN!Q4bhF;u-xY+|CH(K z9A`eQm?+nxp?-=}<3tD?J6tmnev{!FtC8_! zCxPtzyD3fW2mE(-2ja;LYUUFh5aCSm7ziXX?pi(u6o1+`4%8ZATNPmW-EWa??92*| z{Eypd95d(S?T)WIM_=*A!xg9)NLmc+Xk$^H$!|!WH*h@8g^(|!ujg3v`CAN=bo=?xMyHUYPdn@Wo|9|cw{GL{^ySa zdppKgI&P}|8` zH#^KNepFj^!7}Pc)^yuT%-#P5Zj(^AI>Rc&*;vH1CCNKS4sk1q)^qURl(>R&NqTsJ zb1Xfny;CW6npkfw&-3#c{C(-13Fp*uI{cGbG`Mb?Q6AO$PN3Ulq3mh0eqNxjccGI% z1_|}y8Q^NJebR{8NfWL`DUB{|q=JsrVkVnPSvAJ_r%$u~+(s)++#>GIY;gD$;Hoj$ zOrj2VLqZ+4R@Mi~sJvq7*g&^wVsfIhx2?nnTN48Yo z9Oi(51`qlhh8&21I$s2?X#{LB z*!6-16&AHG23|2(IqsCi3mcGq6VI8-sH$;4nsBa*2YBMB)McRcguLOp|9PDX+v;Kv@TyP~YsFH%E-N zIzs#U_h<)ckn~a&*=j@$3FvClp6HvEu`9kOf1RZ|J8I2CtyuF9aY>!dz%j&(!|``K zhN%d=a}tnez|AWOYNNcYc3wmad2+wsmBL2YBX9LbMySZyQJ#@f9N#VTaucW-^HuLh zDWI}m$77|Q1!G^C7vcY^)L2^GMvdu79ckLB$<0I1>41LR#(8s62%3tMIl%qQPl>xu zrsHs^-$;cLWdQLpj*{F|(Tv%hspD1Spj-M~VYM`?7m|2ZsLl*^N#U^60Q%`Cl~&AA z#IA=j1?{00Y^5>C=c@FrFuZNxb>jiuya24QWU!K8`4}77Ew-5PiaPna@W;hx^X4bt zof>bmx4wm{NCd!xaFFL@d`cW-dAD(g!)u5H&pv`W={#fO;wxw@=s^@poRlIS*2?YG zEBXVldYB?AE#$b_hhjVx6J~kmVG{^uB%%ukC87vkMjKIBD<{O&4l)rQk9bM*h)lGw z7!`#sEQ$F4jyi>P=Acu?i4e}vo8;oP7>qEik?3*czL1c})?6?!$k&}q@~SNqFp2O6 zTosc>sh$Qa+Jnl{ID=x$Ow`wS0{wF_>w=Kg&t;Lnl^K9a{R~$+lK?&OiZA*8;jxC? zfcZ-z;e!$wY{HI7?>`W>Idw(i)<%oIVg}OT7J>|{h^>gN0XCIxR+P<-E(*JQ5*UvC z1WI#<46wmGiP!MWTB3dSg`m*$i1L&uXs-fr8s%70Qp?faB|7!fnkt$vhKlJd*v47X zLvm^fWXPs0uQJQWEd-;wM29F{5_}n_JE(7CiX>aUoD6zB1YD_HuDnZluA_7{XT>*! zzEs+BeX=i@Cx+WzIINj)a6kVAu!oITS<~j2h2jz#bF$m5PMn;f3k3KirN^0uivKoJ I=t}-_ literal 0 HcmV?d00001 diff --git a/combat b/combat new file mode 100644 index 0000000000000000000000000000000000000000..0a90f08935b127502d552061de7e55f0894c3c57 GIT binary patch literal 62475 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 awAi#nM>M`eL)ZKGOoN4o)`2+&GXDd+r0Wv^ literal 0 HcmV?d00001 diff --git a/combat.bin b/combat.bin new file mode 100644 index 0000000000000000000000000000000000000000..fa6fb9381f6339d905a252f5e547ec4e7f76728f GIT binary patch literal 18628 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 Z{QIKSKS})e{=cWddkVa#!2iDj{|l)_b7uem literal 0 HcmV?d00001 diff --git a/combat.iff.info b/combat.iff.info new file mode 100644 index 0000000000000000000000000000000000000000..8144a38a2a3d909f27e760d6793eaddd4924b9dd GIT binary patch literal 236 zcmaDXz`)1=1KJE63@i-HKoQ>KXJCS;Gz%94?|E(p-g9pnfD#~#0YIiO0ZqtZ2206* z08#ZnK;-}5|NsAQfRYdqueRu}1fkP1N$^nGMt`7)t+2!b9qUvo zs7pPxL)+SF8A92_Q>84uji6Eq+r_e`og-r1rM10ZhtEeXszuVs)@_~7@>v#UVPYF< z4Rum)UfZl@YmjPaM4D10)f_^cv&7L~oCAEzIp~z#7PsAPb>p;!9&rO^+-<`{G+<8B zkk>;`$Tr&Nobv)|m!9%>Sco6@g5)Rm?DhS42d2LqBwi8{!f~u}>uEpp45=h(RwO zFg+rn|MExX3B=)^7@+$qhL=T}&&j)F4H6K6DH_&sa$BZhPA27$N~oK9!WoAQ`zf>R zDJ0>(nzCbZTJ~asj6l|_sw95Z8J5CHGX@KC2XgY3e(B9)+FsL--8YyqL6!5TArGUN z#UWMXMP1^qd7+HTn*zSVlrD;bS)moZ>UQ`GWJZ6)GM4Zy7V#Or6FI%6=gkNAvt5yA za9tj@CGs4XOc~epwpq2y=9}iYNrQGa@juG=hNA!g literal 0 HcmV?d00001 diff --git a/combat_ehb.iff b/combat_ehb.iff new file mode 100644 index 0000000000000000000000000000000000000000..9030fbef68e5ca80dbca9bf46a831773a99ac6b2 GIT binary patch literal 56218 zcmYJb3w#r0_V|4!lV;L3Z30DFpmb6|2Un#