as released 1998-12-10

This commit is contained in:
archive 1998-12-10 00:00:00 +00:00
parent b278eb67c9
commit 8d7534e065
67 changed files with 15410 additions and 28 deletions

View file

@ -1,6 +1,6 @@
{
// maps will be loaded and saved from <basepath>/maps
"basepath" "C:\PROG~FBU\HERE~VP5\base"
"basepath" "c:\progra~1\hereti~1\base"
// you are using your local machine to bsp, set rshcmd to ""
// and remotebasebath to the same thing as basepath.
@ -8,31 +8,27 @@
// will usually be different.
//
//
"rshcmd" "C:\PROG~FBU\HERE~VP5\Toolkit\Designer\HereticEd\batch\"
"remotebasepath" "C:\PROG~FBU\HERE~VP5\base"
"rshcmd" "c:\progra~1\hereti~1\toolkit\designer\hereticed\batch\"
"remotebasepath" "c:\progra~1\hereti~1\base"
// the entity classes are found by parsing through
// all the files in <entitypath>, looking for
// /*QUAKED comments
"entitypath" "C:\PROG~FBU\HERE~VP5\Toolkit\Programming\GameCode\game\*.c"
"entitypath" "..\..\programming\gamecode\game\*.c*"
// the "textures" menu is filled with all of the directories
// found under <texturepath>. All texture references from maps
// have <texturepath> implicitly prepended.
// The textures directory can be duplicated on a local harddrive
// for better performance.
"texturepath" "C:\PROG~FBU\HERE~VP5\base\textures"
"texturepath" "..\..\..\base\textures"
// every five minutes, the editor will autosave a map if it is dirty.
// this should be on a local drive, so multiple people editing
// maps don't collide
"autosave" "C:\PROG~FBU\HERE~VP5\base\maps\autosave.map"
"autosave" ".\autosave.map"
// the "bsp" menu in QuakeEd is filled with the following bsp_* commands
// when selected, the value string will be expanded then executed in the
@ -52,4 +48,3 @@
"bsp_FastVis" "!fastvis.bat $"
"bsp_FastVis (nowater)" "!fastvisnowater.bat $"
}

View file

@ -0,0 +1,22 @@
// ------------------------------------
// Generic gfx required by the book dll
// ------------------------------------
$bookdir Back
$load art/gfx/book/b_conback.pcx
$book b_conback8 0 0 640 480
$load art/gfx/book/book_map.pcx
$book b_worldmap 0 0 640 480
$load art/gfx/book/book_ss.pcx
$book b_ssmap 0 0 640 480
$load art/gfx/book/book_and.pcx
$book b_andmap 0 0 640 480
$load art/gfx/book/book_hive.pcx
$book b_hivemap 0 0 640 480
// end

View file

@ -0,0 +1,690 @@
$fm_cd player/elf
$fm_origin 0 0 0
$fm_skeleton 5
$fm_cluster cluster
$fm_referenced 0 elf_Lhandroot elf_Rhandroot elf_Rfootroot elf_Lfootroot elf_Bstaffroot elf_bladeroot elf_hellroot
// elf_head elf_eyes - not used
$fm_basest base skin stbase
$fm_skin skin
$fm_skin skindmg
$fm_skin skinp1
$fm_skin skinp1dmg
$fm_skin skinp2
$fm_skin skinp2dmg
$fm_skin skinA
$fm_skin skinAdmg
$fm_skin skinAp1
$fm_skin skinAp1dmg
$fm_skin skinAp2
$fm_skin skinAp2dmg
$fm_skin skinB
$fm_skin skinBdmg
$fm_skin skinBp1
$fm_skin skinBp1dmg
$fm_skin skinBp2
$fm_skin skinBp2dmg
$fm_skin skinC
$fm_skin skinCdmg
$fm_skin skinCp1
$fm_skin skinCp1dmg
$fm_skin skinCp2
$fm_skin skinCp2dmg
$fm_skin skinM1
$fm_skin skinM1dmg
$fm_skin skinM2
$fm_skin skinM2dmg
$fm_skin skinM3
$fm_skin skinM3dmg
$fm_skin skinM4
$fm_skin skinM4dmg
$fm_skin skinM5
$fm_skin skinM5dmg
$fm_skin skinM6
$fm_skin skinM6dmg
$fm_skin skinM7
$fm_skin skinM7dmg
$fm_skin skinM8
$fm_skin skinM8dmg
$fm_skin skinreflect
$fm_scale 1
$fm_frame partfly
//
// $fm_begin_group 20
$fm_frame 4swim1 4swim2 4swim3 4swim4 4swim5
$fm_frame 4swim6 4swim7 4swim8 4swim9 4swim10
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame bkflip1 bkflip2 bkflip3 bkflip4 bkflip5
$fm_frame bkflip6 bkflip7 bkflip8 bkflip9 bkflip10
$fm_frame bkflip11 bkflip12 bkflip13 bkflip14 bkflip15
$fm_frame bkflip16 bkflip17 bkflip18 bkflip19 bkflip20
$fm_frame bkflip21 bkflip22 bkflip23 bkflip24 bkflip25
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame bkswim1 bkswim2 bkswim3 bkswim4 bkswim5
$fm_frame bkswim6 bkswim7
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame breath1 breath2 breath3 breath4 breath5
$fm_frame breath6 breath7 breath8 breath9 breath10
$fm_frame breath11 breath12 breath13 breath14 breath15
$fm_frame breath16 breath17 breath18 breath19 breath20
$fm_frame breath21 breath22 breath23
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame chngsplA1 chngsplA2 chngsplA3 chngsplA4 chngsplA5
$fm_frame chngsplA6 chngsplA7 chngsplA8 chngsplA9
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame cluster
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame conjure1 conjure2 conjure3 conjure4 conjure5
$fm_frame conjure6 conjure7 conjure8 conjure9 conjure10
$fm_frame conjure11 conjure12 conjure13 conjure14 conjure15
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame creep1 creep2 creep3 creep4 creep5
$fm_frame creep6 creep7 creep8 creep9 creep10
$fm_frame creep11 creep12
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame draw1 draw2 draw3 draw4 draw5
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame drop1 drop2 drop3 drop4
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame dspell1 dspell2
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame getbow1 getbow2 getbow3 getbow4 getbow5
$fm_frame getbow6 getbow7 getbow8 getbow9
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame getstaff1 getstaff2 getstaff3 getstaff4 getstaff5
$fm_frame getstaff6 getstaff7 getstaff8
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame grab1 grab2 grab3 grab4 grab5
$fm_frame grab6 grab7 grab8
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame idlswm1 idlswm2 idlswm3 idlswm4 idlswm5
$fm_frame idlswm6 idlswm7 idlswm8 idlswm9 idlswm10
$fm_frame idlswm11 idlswm12 idlswm13 idlswm14 idlswm15
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame jog1 jog2 jog3 jog4 jog5
$fm_frame jog6 jog7 jog8
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame jump1 jump2 jump3 jump4 jump5
$fm_frame jump6 jump7 jump8 jump9 jump10
$fm_frame jump11 jump12 jump13 jump14 jump15
$fm_frame jump16 jump17 jump18 jump19 jump20
$fm_frame jump21
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame lstair1 lstair2 lstair3 lstair4
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame phbuton1 phbuton2 phbuton3 phbuton4 phbuton5
$fm_frame phbuton6 phbuton7 phbuton8 phbuton9
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame pullup1 pullup2 pullup3 pullup4 pullup5
$fm_frame pullup6 pullup7 pullup8 pullup9 pullup10
$fm_frame pullup11 pullup12
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame recover1 recover2 recover3 recover4 recover5
$fm_frame recover6 recover7
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame redybow1 redybow2 redybow3 redybow4 redybow5
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame rollA1 rollA2 rollA3 rollA4 rollA5
$fm_frame rollA6 rollA7 rollA8 rollA9 rollA10
$fm_frame rollA11 rollA12 rollA13 rollA14 rollA15
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame rstair1 rstair2 rstair3 rstair4
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame run1 run2 run3 run4 run5
$fm_frame run6
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame shoot1 shoot2 shoot3 shoot4 shoot5
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame spnatk1 spnatk2 spnatk3 spnatk4 spnatk5
$fm_frame spnatk6 spnatk7 spnatk8 spnatk9 spnatk10
$fm_frame spnatk11 spnatk12 spnatk13 spnatk14 spnatk15
$fm_frame spnatk16 spnatk17 spnatk18 spnatk19 spnatk20
$fm_frame spnatk21 spnatk22
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame swipea1 swipea2 swipea3 swipea4 swipea5
$fm_frame swipea6 swipea7 swipea8 swipea9 swipea10
$fm_frame swipea11
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame swipeb1 swipeb2 swipeb3 swipeb4 swipeb5
$fm_frame swipeb6 swipeb7 swipeb8 swipeb9 swipeb10
$fm_frame swipeb11 swipeb12
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame t4swim1 t4swim2
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame tbswim1 tbswim2 tbswim3 tbswim4 tbswim5
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame throw1 throw2 throw3 throw4 throw5
$fm_frame throw6 throw7 throw8 throw9 throw10
$fm_frame throw11
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame unstff1 unstff2 unstff3 unstff4 unstff5
$fm_frame unstff6
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame vault1 vault2 vault3 vault4 vault5
$fm_frame vault6 vault7 vault8 vault9 vault10
$fm_frame vault11 vault12 vault13 vault14 vault15
$fm_frame vault16 vault17
// $fm_end_group
// $fm_begin_group 20
$fm_frame crhpvt1 crhpvt2 crhpvt3 crhpvt4
// $fm_end_group
// $fm_begin_group 20
$fm_frame Lflip1 Lflip2 Lflip3 Lflip4 Lflip5 Lflip6 Lflip7
$fm_frame Lflip8 Lflip9 Lflip10 Lflip11 Lflip12 Lflip13 Lflip14
// $fm_end_group
// $fm_begin_group 20
$fm_frame Rflip1 Rflip2 Rflip3 Rflip4 Rflip5 Rflip6 Rflip7
$fm_frame Rflip8 Rflip9 Rflip10 Rflip11 Rflip12 Rflip13 Rflip14
// $fm_end_group
// Small Pain Anims
// $fm_begin_group 20
$fm_frame smlpna1 smlpna2 smlpna3 smlpna4
$fm_frame smlpnb1 smlpnb2 smlpnb3 smlpnb4
// $fm_end_group
// $fm_begin_group 20
$fm_frame gorun1 gorun2 gorun3
// $fm_end_group
// $fm_begin_group 20
$fm_frame Lstep1 Lstep2 Lstep3 Lstep4 Lstep5
// $fm_end_group
// $fm_begin_group 20
$fm_frame Rstep1 Rstep2 Rstep3 Rstep4 Rstep5
// $fm_end_group
// $fm_begin_group 20
$fm_frame ready1 ready2 ready3 ready4 ready5 ready6 ready7 ready8 ready9 ready10
$fm_frame ready11 ready12 ready13 ready14 ready15 ready16 ready17 ready18 ready19 ready20
$fm_frame ready21 ready22 ready23 ready24 ready25 ready26
// $fm_end_group
// $fm_begin_group 20
$fm_frame lklft1 lklft2 lklft3 lklft4 lklft5
$fm_frame lklft6 lklft7 lklft8 lklft9 lklft10
$fm_frame lklft11 lklft12 lklft13 lklft14 lklft15
$fm_frame lklft16 lklft17 lklft18 lklft19 lklft20
$fm_frame lklft21 lklft22
// $fm_end_group
// $fm_begin_group 20
$fm_frame lkrt1 lkrt2 lkrt3 lkrt4 lkrt5
$fm_frame lkrt6 lkrt7 lkrt8 lkrt9 lkrt10
$fm_frame lkrt11 lkrt12 lkrt13 lkrt14 lkrt15
$fm_frame lkrt16 lkrt17 lkrt18 lkrt19 lkrt20
$fm_frame lkrt21 lkrt22
// $fm_end_group
//
// $fm_begin_group 20
$fm_frame helstf1 helstf2 helstf3 helstf4 helstf5
$fm_frame helstf6 helstf7
// $fm_end_group
// $fm_begin_group 20
$fm_frame Lpivot1 Lpivot2 Lpivot3 Lpivot4
// $fm_end_group
// $fm_begin_group 20
$fm_frame pesta1 pesta2 pesta3 pesta4 pesta5 pesta6 pesta7 pesta8 pesta9 pesta10
$fm_frame pesta11 pesta12 pesta13 pesta14
// $fm_end_group
// $fm_begin_group 20
$fm_frame pestb1 pestb2 pestb3 pestb4 pestb5
$fm_frame pestb6 pestb7 pestb8 pestb9 pestb10
$fm_frame pestb11 pestb12 pestb13 pestb14 pestb15
$fm_frame pestb16 pestb17 pestb18 pestb19 pestb20
$fm_frame pestb21 pestb22
// $fm_end_group
// $fm_begin_group 20
$fm_frame subdive1 subdive2 subdive3 subdive4 subdive5
$fm_frame subdive6 subdive7 subdive8 subdive9
// $fm_end_group
// $fm_begin_group 20
$fm_frame undrswmA1 undrswmA2 undrswmA3 undrswmA4 undrswmA5
$fm_frame undrswmA6 undrswmA7 undrswmA8 undrswmA9
// $fm_end_group
// $fm_begin_group 20
$fm_frame deathA1 deathA2 deathA3 deathA4 deathA5
$fm_frame deathA6 deathA7 deathA8 deathA9 deathA10
$fm_frame deathA11 deathA12 deathA13 deathA14
// $fm_end_group
//$fm_frame defspll1 defspll2
// $fm_begin_group 20
$fm_frame lhop1 lhop2 lhop3
// $fm_end_group
// $fm_begin_group 20
$fm_frame rhop1 rhop2 rhop3 rhop4 rhop5 rhop6 rhop7
// $fm_end_group
// $fm_begin_group 20
$fm_frame slid4d1 slid4d2 slid4d3 slid4d4 slid4d5
$fm_frame slid4d6 slid4d7 slid4d8 slid4d9 slid4d10 slid4d11 slid4d12
// $fm_end_group
// $fm_begin_group 20
$fm_frame slidbak1 slidbak2 slidbak3 slidbak4 slidbak5
$fm_frame slidbak6 slidbak7 slidbak8 slidbak9 slidbak10 slidbak11 slidbak12
// $fm_end_group
// $fm_begin_group 20
$fm_frame tswiml1 tswiml2 tswiml3 tswiml4
// $fm_end_group
// $fm_begin_group 20
$fm_frame tswimr1 tswimr2 tswimr3 tswimr4
// $fm_end_group
// $fm_begin_group 20
$fm_frame swiml1 swiml2 swiml3 swiml4 swiml5
// $fm_end_group
// $fm_begin_group 20
$fm_frame swimr1 swimr2 swimr3 swimr4 swimr5
// $fm_end_group
//$fm_frame hivltR1 hivltR2 hivltR3 hivltR4 hivltR5 hivltR6 hivltR7 hivltR8 hivltR9
//$fm_frame hivltL1 hivltL2 hivltL3 hivltL4 hivltL5 hivltL6 hivltL7 hivltL8 hivltL9
// $fm_begin_group 20
$fm_frame crepbak1 crepbak2 crepbak3 crepbak4 crepbak5 crepbak6 crepbak7 crepbak8 crepbak9 crepbak10 crepbak11 crepbak12
// $fm_end_group
// $fm_begin_group 20
$fm_frame jogback1 jogback2 jogback3 jogback4 jogback5 jogback6
// $fm_end_group
// $fm_begin_group 20
$fm_frame resurf1 resurf2 resurf3 resurf4 resurf5
// $fm_end_group
// $fm_begin_group 20
$fm_frame idlundr1 idlundr2 idlundr3 idlundr4 idlundr5
$fm_frame idlundr6 idlundr7 idlundr8 idlundr9 idlundr10
$fm_frame idlundr11 idlundr12 idlundr13 idlundr14 idlundr15
$fm_frame idlundr16 idlundr17 idlundr18 idlundr19 idlundr20
// $fm_end_group
// $fm_begin_group 20
$fm_frame roll1 roll2 roll3 roll4 roll5
$fm_frame roll6 roll7 roll8 roll9
// $fm_end_group
// $fm_begin_group 20
$fm_frame backroll1 backroll2 backroll3 backroll4 backroll5
$fm_frame backroll6 backroll7 backroll8 backroll9
// $fm_end_group
// $fm_begin_group 20
$fm_frame falling1 falling2 falling3 falling4 falling5
$fm_frame falling6 falling7 falling8 falling9 falling10
$fm_frame falling11 falling12 falling13 falling14 falling15
// $fm_end_group
// $fm_begin_group 20
$fm_frame kodown1 kodown2 kodown3 kodown4 kodown5
$fm_frame kodown6 kodown7 kodown8 kodown9 kodown10
$fm_frame kodown11 kodown12 kodown13 kodown14 kodown15
$fm_frame kodown16 kodown17 kodown18 kodown19 kodown20
$fm_frame kodown21 kodown22
// $fm_end_group
// Shrine anims
$fm_frame shrine1 shrine2 shrine3 shrine4 shrine5 shrine6 shrine7 shrine8 shrine9 shrine10
$fm_frame trnshrine1 trnshrine2 trnshrine3
// $fm_begin_group 20
$fm_frame grabrope1 grabrope2 grabrope3 grabrope4 grabrope5
$fm_frame grabrope6 grabrope7
// $fm_end_group
// $fm_begin_group 20
$fm_frame lhndset1 lhndset2 lhndset3 lhndset4 lhndset5
// $fm_end_group
// $fm_begin_group 20
$fm_frame rhndset1 rhndset2 rhndset3
// $fm_end_group
// $fm_begin_group 20
$fm_frame lclimb1 lclimb2 lclimb3 lclimb4
// $fm_end_group
// $fm_begin_group 20
$fm_frame rclimb1 rclimb2 rclimb3 rclimb4
// $fm_end_group
// $fm_begin_group 20
$fm_frame rclmbstrt1 rclmbstrt2 rclmbstrt3
// $fm_end_group
// $fm_begin_group 20
$fm_frame lclmbstrt1 lclmbstrt2 lclmbstrt3
// $fm_end_group
// $fm_begin_group 20
$fm_frame lidle1 lidle2 lidle3 lidle4 lidle5 lidle6 lidle7 lidle8 lidle9 lidle10
$fm_frame lidle11 lidle12 lidle13 lidle14 lidle15 lidle16 lidle17 lidle18 lidle19 lidle20 lidle21
// $fm_end_group
// $fm_begin_group 20
$fm_frame ridle1 ridle2 ridle3 ridle4 ridle5 ridle6 ridle7 ridle8 ridle9 ridle10
$fm_frame ridle11 ridle12 ridle13 ridle14 ridle15 ridle16 ridle17 ridle18 ridle19 ridle20 ridle21
// $fm_end_group
// $fm_begin_group 20
$fm_frame pushredy1 pushredy2 pushredy3
// $fm_end_group
// $fm_begin_group 20
$fm_frame pushgo1 pushgo2 pushgo3 pushgo4 pushgo5 pushgo6 pushgo7 pushgo8 pushgo9 pushgo10
$fm_frame pushgo11 pushgo12 pushgo13
// $fm_end_group
// $fm_begin_group 20
$fm_frame pushing1 pushing2 pushing3 pushing4 pushing5 pushing6 pushing7 pushing8
// $fm_end_group
// $fm_begin_group 20
$fm_frame lpushend1 lpushend2 lpushend3 lpushend4
// $fm_end_group
// $fm_begin_group 20
$fm_frame rpushend1 rpushend2 rpushend3 rpushend4
// $fm_end_group
// $fm_begin_group 20
$fm_frame letgo1 letgo2 letgo3 letgo4 letgo5
// $fm_end_group
// $fm_begin_group 20
$fm_frame retgo1 retgo2 retgo3 retgo4 retgo5
// $fm_end_group
// $fm_begin_group 20
$fm_frame swmgrab1 swmgrab2 swmgrab3 swmgrab4 swmgrab5 swmgrab6
$fm_frame swmgrab7 swmgrab8 swmgrab9 swmgrab10 swmgrab11
// $fm_end_group
// $fm_begin_group 20
$fm_frame startpull1 startpull2 startpull3 startpull4 startpull5
$fm_frame startpull6 startpull7 startpull8 startpull9 startpull10
$fm_frame startpull11 startpull12
// $fm_end_group
// $fm_begin_group 20
$fm_frame pull1 pull2 pull3 pull4 pull5
$fm_frame pull6 pull7 pull8
// $fm_end_group
// $fm_begin_group 20
$fm_frame endpull1 endpull2 endpull3 endpull4 endpull5
// $fm_end_group
// $fm_begin_group 20
$fm_frame drown1 drown2 drown3 drown4 drown5 drown6 drown7 drown8 drown9 drown10
$fm_frame drown11 drown12 drown13 drown14 drown15 drown16 drown17 drown18 drown19 drown20
$fm_frame drown21 drown22 drown23 drown24 drown25 drown26 drown27 drown28 drown29 drown30
$fm_frame drown31 drown32 drown33 drown34 drown35 drown36 drown37 drown38 drown39 drown40
// $fm_end_group
// $fm_begin_group 20
$fm_frame lftflip1 lftflip2 lftflip3 lftflip4 lftflip5 lftflip6 lftflip7 lftflip8 lftflip9
$fm_frame ritflip1 ritflip2 ritflip3 ritflip4 ritflip5 ritflip6 ritflip7 ritflip8 ritflip9
// $fm_end_group
$fm_frame 180turn1 180turn2 180turn3 180turn4 180turn5 180turn6 180turn7 180turn8 180turn9
$fm_frame burning1 burning2 burning3 burning4 burning5 burning6 burning7 burning8 burning9 burning10
$fm_frame burning11 burning12 burning13 burning14 burning15 burning16 burning17 burning18 burning19 burning20
$fm_frame burning21 burning22 burning23 burning24 burning25 burning26 burning27 burning28 burning29 burning30
$fm_frame burning31 burning32 burning33 burning34 burning35
//Strafing
$fm_frame lstrafe1 lstrafe2 lstrafe3 lstrafe4 lstrafe5 lstrafe6 lstrafe7 lstrafe8
$fm_frame rstrafe1 rstrafe2 rstrafe3 rstrafe4 rstrafe5 rstrafe6 rstrafe7 rstrafe8
$fm_frame lsprint1 lsprint2 lsprint3 lsprint4 lsprint5 lsprint6
$fm_frame rsprint1 rsprint2 rsprint3 rsprint4 rsprint5 rsprint6
//Switches
$fm_frame lswichl2r1 lswichl2r2 lswichl2r3 lswichl2r4 lswichl2r5 lswichl2r6 lswichl2r7
$fm_frame lswichr2l1 lswichr2l2 lswichr2l3 lswichr2l4 lswichr2l5 lswichr2l6 lswichr2l7
$fm_frame rswichl2r1 rswichl2r2 rswichl2r3 rswichl2r4 rswichl2r5 rswichl2r6 rswichl2r7
$fm_frame rswichr2l1 rswichr2l2 rswichr2l3 rswichr2l4 rswichr2l5 rswichr2l6 rswichr2l7
//Flying
//$fm_frame t2flydle1 t2flydle2 t2flydle3 t2flydle4
//$fm_frame flydle1 flydle2 flydle3 flydle4 flydle5 flydle6 flydle7 flydle8 flydle9 flydle10
//$fm_frame flydle11 flydle12
//$fm_frame 4fly1 4fly2
//$fm_frame bckfly1 bckfly2
//$fm_frame t4fly1 t4fly2 t4fly3
//$fm_frame stp4fly1 stp4fly2 stp4fly3 stp4fly4 stp4fly5 stp4fly6 stp4fly7 stp4fly8 stp4fly9
//$fm_frame strtfly1 strtfly2 strtfly3 strtfly4 strtfly5 strtfly6 strtfly7 strtfly8 strtfly9 strtfly10
//Overhang Vault
$fm_frame ovrhang1 ovrhang2 ovrhang3 ovrhang4 ovrhang5 ovrhang6 ovrhang7 ovrhang8 ovrhang9 ovrhang10
$fm_frame ovrhang11 ovrhang12 ovrhang13 ovrhang14 ovrhang15 ovrhang16 ovrhang17
// Switching arrows
$fm_frame swcharo1 swcharo2 swcharo3 swcharo4 swcharo5 swcharo6 swcharo7
// Casting mace ball
$fm_frame ballspell1 ballspell2 ballspell3 ballspell4
$fm_frame ballspell5 ballspell6 ballspell7 ballspell8
$fm_frame Ljogback1 Ljogback2 Ljogback3 Ljogback4 Ljogback5 Ljogback6
$fm_frame Rjogback1 Rjogback2 Rjogback3 Rjogback4 Rjogback5 Rjogback6
$fm_frame Lcrepbck1 Lcrepbck2 Lcrepbck3 Lcrepbck4 Lcrepbck5 Lcrepbck6 Lcrepbck7 Lcrepbck8 Lcrepbck9 Lcrepbck10 Lcrepbck11 Lcrepbck12
$fm_frame Rcrepbck1 Rcrepbck2 Rcrepbck3 Rcrepbck4 Rcrepbck5 Rcrepbck6 Rcrepbck7 Rcrepbck8 Rcrepbck9 Rcrepbck10 Rcrepbck11 Rcrepbck12
$fm_frame blowback1 blowback2 blowback3 blowback4 blowback5 blowback6 blowback7 blowback8 blowback9 blowback10
$fm_frame blowback11 blowback12 blowback13 blowback14 blowback15 blowback16 blowback17 blowback18 blowback19 blowback20
$fm_frame blowback21 blowback22 blowback23 blowback24
$fm_frame fastleft1 fastleft2 fastleft3 fastleft4 fastleft5 fastleft6 fastleft7 fastleft8
$fm_frame fastrite1 fastrite2 fastrite3 fastrite4 fastrite5 fastrite6 fastrite7 fastrite8
$fm_frame faceplant1 faceplant2 faceplant3 faceplant4 faceplant5 faceplant6 faceplant7 faceplant8 faceplant9 faceplant10
$fm_frame faceplant11 faceplant12 faceplant13 faceplant14 faceplant15 faceplant16 faceplant17 faceplant18 faceplant19 faceplant20
$fm_frame faceplant21 faceplant22 faceplant23 faceplant24
$fm_frame choking1 choking2 choking3 choking4 choking5 choking6 choking7 choking8 choking9 choking10
$fm_frame choking11 choking12 choking13 choking14 choking15 choking16 choking17 choking18 choking19 choking20
$fm_frame choking21 choking22 choking23 choking24 choking25 choking26 choking27 choking28 choking29 choking30
$fm_frame choking31 choking32 choking33 choking34 choking35
$fm_frame lookbck1 lookbck2 lookbck3 lookbck4 lookbck5 lookbck6 lookbck7 lookbck8 lookbck9 lookbck10
$fm_frame lookbck11 lookbck12 lookbck13 lookbck14 lookbck15 lookbck16 lookbck17 lookbck18 lookbck19 lookbck20
$fm_frame lookbck21 lookbck22 lookbck23 lookbck24 lookbck25 lookbck26 lookbck27 lookbck28 lookbck29
$fm_frame asscrtch1 asscrtch2 asscrtch3 asscrtch4 asscrtch5 asscrtch6 asscrtch7 asscrtch8 asscrtch9 asscrtch10
$fm_frame asscrtch11 asscrtch12 asscrtch13 asscrtch14 asscrtch15 asscrtch16 asscrtch17 asscrtch18 asscrtch19 asscrtch20
$fm_frame asscrtch21 asscrtch22 asscrtch23 asscrtch24 asscrtch25
$fm_frame wipebrow1 wipebrow2 wipebrow3 wipebrow4 wipebrow5 wipebrow6 wipebrow7 wipebrow8 wipebrow9 wipebrow10
$fm_frame wipebrow11 wipebrow12 wipebrow13 wipebrow14 wipebrow15 wipebrow16 wipebrow17 wipebrow18 wipebrow19
$fm_frame jumprite1 jumprite2 jumprite3 jumprite4 jumprite5 jumprite6 jumprite7 jumprite8 jumprite9 jumprite10
$fm_frame jumprite11 jumprite12 jumprite13 jumprite14 jumprite15 jumprite16 jumprite17 jumprite18 jumprite19 jumprite20
$fm_frame jumprite21 jumprite22 jumprite23 jumprite24
$fm_frame jumpleft1 jumpleft2 jumpleft3 jumpleft4 jumpleft5 jumpleft6 jumpleft7 jumpleft8 jumpleft9 jumpleft10
$fm_frame jumpleft11 jumpleft12 jumpleft13 jumpleft14 jumpleft15 jumpleft16 jumpleft17 jumpleft18 jumpleft19 jumpleft20
$fm_frame jumpleft21 jumpleft22 jumpleft23 jumpleft24
$fm_frame jumpback1 jumpback2 jumpback3 jumpback4 jumpback5 jumpback6 jumpback7 jumpback8 jumpback9 jumpback10
$fm_frame jumpback11 jumpback12 jumpback13 jumpback14 jumpback15 jumpback16 jumpback17 jumpback18 jumpback19 jumpback20
$fm_frame jumpback21 jumpback22 jumpback23 jumpback24
$fm_frame creepL1 creepL2 creepL3 creepL4 creepL5 creepL6 creepL7 creepL8 creepL9 creepL10
$fm_frame creepL11 creepL12
$fm_frame creepR1 creepR2 creepR3 creepR4 creepR5 creepR6 creepR7 creepR8 creepR9 creepR10
$fm_frame creepR11 creepR12
$fm_frame gofast1 gofast2 gofast3 gofast4
$fm_frame swmfast1 swmfast2 swmfast3 swmfast4 swmfast5 swmfast6 swmfast7
$fm_frame drownidle1 drownidle2 drownidle3 drownidle4 drownidle5 drownidle6 drownidle7 drownidle8 drownidle9 drownidle10
$fm_frame drownidle11 drownidle12 drownidle13 drownidle14 drownidle15 drownidle16 drownidle17 drownidle18 drownidle19 drownidle20
$fm_frame drownidle21 drownidle22 drownidle23 drownidle24 drownidle25 drownidle26 drownidle27 drownidle28 drownidle29 drownidle30
$fm_frame drownidle31 drownidle32
$fm_frame roundbck1 roundbck2 roundbck3 roundbck4
$fm_frame roundbck5 roundbck6 roundbck7 roundbck8
$fm_frame trnswmL1 trnswmL2
$fm_frame trnswmR1 trnswmR2
$fm_frame swmL1 swmL2 swmL3 swmL4 swmL5
$fm_frame swmL6 swmL7 swmL8 swmL9
$fm_frame swmR1 swmR2 swmR3 swmR4 swmR5
$fm_frame swmR6 swmR7 swmR8 swmR9
$fm_frame subckswm1 subckswm2 subckswm3 subckswm4 subckswm5 subckswm6 subckswm7
$fm_frame tnsubckswm1 tnsubckswm2
$fm_frame spining1 spining2 spining3 spining4 spining5 spining6
$fm_frame spining7

View file

@ -0,0 +1,95 @@
// ------------------------------------
// Icons for the status bar
// ------------------------------------
$picdir icons
$load art/gfx/pics/i_firewall.pcx
$pic i_fwall 0 0 32 32
$load art/gfx/pics/i_flying-fist.pcx
$pic i_fball 0 0 32 32
$load art/gfx/pics/i_health.pcx
$pic i_health 0 0 32 32
$load art/gfx/pics/i_health2.pcx
$pic i_health2 0 0 32 32
$load art/gfx/pics/i_hell-staff.pcx
$pic i_hell 0 0 32 32
$load art/gfx/pics/i_mace-balls.pcx
$pic i_mace 0 0 32 32
$load art/gfx/pics/i_magic-missile.pcx
$pic i_array 0 0 32 32
$load art/gfx/pics/i_meteor-barrier.PCX
$pic i_meteor 0 0 32 32
$load art/gfx/pics/i_phoenix-bow.pcx
$pic i_phoen 0 0 32 32
$load art/gfx/pics/i_player.pcx
$pic i_player 0 0 32 32
$load art/gfx/pics/i_polymorph.pcx
$pic i_morph 0 0 32 32
$load art/gfx/pics/i_red-rain-bow.pcx
$pic i_rain 0 0 32 32
$load art/gfx/pics/i_ring-of-repulsion.pcx
$pic i_ring 0 0 32 32
$load art/gfx/pics/i_sphere-of-annihilation.pcx
$pic i_sphere 0 0 32 32
$load art/gfx/pics/i_sword-staff.pcx
$pic i_staff 0 0 32 32
$load art/gfx/pics/i_tome-of-power.pcx
$pic i_tome 0 0 32 32
$load art/gfx/pics/i_teleport.pcx
$pic i_tele 0 0 32 32
$load art/gfx/pics/i_lightning-shield.pcx
$pic i_shield 0 0 32 32
$load art/gfx/pics/green-mana.pcx
$pic green-mana 0 0 16 8
$load art/gfx/pics/green-mana2.pcx
$pic green-mana2 0 0 16 64
$load art/gfx/pics/blue-mana.pcx
$pic blue-mana 0 0 16 8
$load art/gfx/pics/blue-mana2.pcx
$pic blue-mana2 0 0 16 64
$load art/gfx/pics/i_ammo-phoen.pcx
$pic i_ammo-phoen 0 0 32 32
$load art/gfx/pics/i_ammo-hellstaff.pcx
$pic i_ammo-hellstaff 0 0 32 32
$load art/gfx/pics/i_ammo-redrain.pcx
$pic i_ammo-redrain 0 0 32 32
$load art/gfx/pics/h2o_breathing.pcx
$pic breath 0 0 8 16
$load art/gfx/pics/h2o_breathing2.pcx
$pic breath2 0 0 64 16
$load art/gfx/pics/powerup_bar.pcx
$pic powerup 0 0 8 16
$load art/gfx/pics/powerup_bar2.pcx
$pic powerup2 0 0 64 16
$load art/gfx/pics/lifebar_back.pcx
$pic lifebar_back 0 0 8 16

View file

@ -0,0 +1,85 @@
// ------------------------------------
// Icons for the status bar
// ------------------------------------
$picdir icons
$load art/gfx/pics/puzzle/p_cloudkey.pcx
$pic p_cloudkey 0 0 32 32
$load art/gfx/pics/puzzle/p_dungeonkey.pcx
$pic p_dungeonkey 0 0 32 32
$load art/gfx/pics/puzzle/p_hiveidol.pcx
$pic p_hiveidol 0 0 32 32
$load art/gfx/pics/puzzle/p_hivekey.pcx
$pic p_hivekey 0 0 32 32
$load art/gfx/pics/puzzle/p_jugfill.pcx
$pic p_jugfill 0 0 32 32
$load art/gfx/pics/puzzle/p_orerefined.pcx
$pic p_orerefined 0 0 32 32
$load art/gfx/pics/puzzle/p_oreunrefined.pcx
$pic p_oreunrefined 0 0 32 32
$load art/gfx/pics/puzzle/p_plazajug.pcx
$pic p_plazajug 0 0 32 32
$load art/gfx/pics/puzzle/p_queenkey.pcx
$pic p_queenkey 0 0 32 32
$load art/gfx/pics/puzzle/p_shield.pcx
$pic p_shield 0 0 32 32
$load art/gfx/pics/puzzle/p_spear.pcx
$pic p_spear 0 0 32 32
$load art/gfx/pics/puzzle/p_tcheckrikbust.pcx
$pic p_tcheckrikbust 0 0 32 32
$load art/gfx/pics/puzzle/p_tcheckrikgem.pcx
$pic p_tcheckrikgem 0 0 32 32
$load art/gfx/pics/puzzle/p_townkey.pcx
$pic p_townkey 0 0 32 32
$load art/gfx/pics/puzzle/p_wheel.pcx
$pic p_wheel 0 0 32 32
$load art/gfx/pics/puzzle/p_tomepower.pcx
$pic p_tomepower 0 0 32 32
$load art/gfx/pics/puzzle/p_cog.pcx
$pic p_cog 0 0 32 32
$load art/gfx/pics/puzzle/p_tavernkey.pcx
$pic p_tavernkey 0 0 32 32
$load art/gfx/pics/puzzle/p_potion.pcx
$pic p_potion 0 0 32 32
$load art/gfx/pics/puzzle/p_crystal.pcx
$pic p_crystal 0 0 32 32
$load art/gfx/pics/puzzle/p_canyonkey.pcx
$pic p_canyonkey 0 0 32 32

View file

@ -0,0 +1,156 @@
// ------------------------------------
// Skies
// ------------------------------------
$picdir Skies
//-------------------------------------
// ANDORIA SKY
//-------------------------------------
$load art/gfx/env/andortownbk.pcx
$pic andoriabk 0 0 256 256
$load art/gfx/env/andortowndn.pcx
$pic andoriadn 0 0 256 256
$load art/gfx/env/andortownft.pcx
$pic andoriaft 0 0 256 256
$load art/gfx/env/andortownlf.pcx
$pic andorialf 0 0 256 256
$load art/gfx/env/andortownrt.pcx
$pic andoriart 0 0 256 256
$load art/gfx/env/andortownup.pcx
$pic andoriaup 0 0 256 256
//-------------------------------------
// SWAMP SKY
//-------------------------------------
$load art/gfx/env/newswampbk.pcx
$pic swampbk 0 0 256 256
$load art/gfx/env/newswampdn.pcx
$pic swampdn 0 0 256 256
$load art/gfx/env/newswampft.pcx
$pic swampft 0 0 256 256
$load art/gfx/env/newswamplf.pcx
$pic swamplf 0 0 256 256
$load art/gfx/env/newswamprt.pcx
$pic swamprt 0 0 256 256
$load art/gfx/env/newswampup.pcx
$pic swampup 0 0 256 256
//-------------------------------------
// TOWN SKY
//-------------------------------------
$load art/gfx/env/townbk.pcx
$pic townbk 0 0 256 256
$load art/gfx/env/towndn.pcx
$pic towndn 0 0 256 256
$load art/gfx/env/townft.pcx
$pic townft 0 0 256 256
$load art/gfx/env/townlf.pcx
$pic townlf 0 0 256 256
$load art/gfx/env/townrt.pcx
$pic townrt 0 0 256 256
$load art/gfx/env/townup.pcx
$pic townup 0 0 256 256
//-------------------------------------
// HIVE SKY
//-------------------------------------
$load art/gfx/env/newnightbk.pcx
$pic hivebk 0 0 256 256
$load art/gfx/env/newnightdn.pcx
$pic hivedn 0 0 256 256
$load art/gfx/env/newnightft.pcx
$pic hiveft 0 0 256 256
$load art/gfx/env/newnightlf.pcx
$pic hivelf 0 0 256 256
$load art/gfx/env/newnightrt.pcx
$pic hivert 0 0 256 256
$load art/gfx/env/newnightup.pcx
$pic hiveup 0 0 256 256
//-------------------------------------
// CLOUDHUB SKY
//-------------------------------------
$load art/gfx/env/darkstormbk.pcx
$pic stormbk 0 0 256 256
$load art/gfx/env/darkstormdn.pcx
$pic stormdn 0 0 256 256
$load art/gfx/env/darkstormft.pcx
$pic stormft 0 0 256 256
$load art/gfx/env/darkstormlf.pcx
$pic stormlf 0 0 256 256
$load art/gfx/env/darkstormrt.pcx
$pic stormrt 0 0 256 256
$load art/gfx/env/darkstormup.pcx
$pic stormup 0 0 256 256
//-------------------------------------
// DOCKS SKY
//-------------------------------------
$load art/gfx/env/shitdocksbk.pcx
$pic sky1bk 0 0 256 256
$load art/gfx/env/shitdocksdn.pcx
$pic sky1dn 0 0 256 256
$load art/gfx/env/shitdocksft.pcx
$pic sky1ft 0 0 256 256
$load art/gfx/env/shitdockslf.pcx
$pic sky1lf 0 0 256 256
$load art/gfx/env/shitdocksrt.pcx
$pic sky1rt 0 0 256 256
$load art/gfx/env/shitdocksup.pcx
$pic sky1up 0 0 256 256
//-------------------------------------
// DESERT SKY
//-------------------------------------
$load art/gfx/env/canyonbk.pcx
$pic desertbk 0 0 256 256
$load art/gfx/env/canyondn.pcx
$pic desertdn 0 0 256 256
$load art/gfx/env/canyonft.pcx
$pic desertft 0 0 256 256
$load art/gfx/env/canyonlf.pcx
$pic desertlf 0 0 256 256
$load art/gfx/env/canyonrt.pcx
$pic desertrt 0 0 256 256
$load art/gfx/env/canyonup.pcx
$pic desertup 0 0 256 256

View file

@ -0,0 +1,70 @@
// ------------------------------------
// Images for the menu
// ------------------------------------
$picdir menu
$load art/gfx/pics/num_neg.pcx
$pic num_neg 0 0 8 16
$load art/gfx/pics/num_0.pcx
$pic num_0 0 0 8 16
$load art/gfx/pics/num_1.pcx
$pic num_1 0 0 8 16
$load art/gfx/pics/num_2.pcx
$pic num_2 0 0 8 16
$load art/gfx/pics/num_3.pcx
$pic num_3 0 0 8 16
$load art/gfx/pics/num_4.pcx
$pic num_4 0 0 8 16
$load art/gfx/pics/num_5.pcx
$pic num_5 0 0 8 16
$load art/gfx/pics/num_6.pcx
$pic num_6 0 0 8 16
$load art/gfx/pics/num_7.pcx
$pic num_7 0 0 8 16
$load art/gfx/pics/num_8.pcx
$pic num_8 0 0 8 16
$load art/gfx/pics/num_9.pcx
$pic num_9 0 0 8 16
$load art/gfx/pics/num_red0.pcx
$pic num_red0 0 0 8 16
$load art/gfx/pics/num_red1.pcx
$pic num_red1 0 0 8 16
$load art/gfx/pics/num_red2.pcx
$pic num_red2 0 0 8 16
$load art/gfx/pics/num_red3.pcx
$pic num_red3 0 0 8 16
$load art/gfx/pics/num_red4.pcx
$pic num_red4 0 0 8 16
$load art/gfx/pics/num_red5.pcx
$pic num_red5 0 0 8 16
$load art/gfx/pics/num_red6.pcx
$pic num_red6 0 0 8 16
$load art/gfx/pics/num_red7.pcx
$pic num_red7 0 0 8 16
$load art/gfx/pics/num_red8.pcx
$pic num_red8 0 0 8 16
$load art/gfx/pics/num_red9.pcx
$pic num_red9 0 0 8 16
// end

View file

@ -0,0 +1,55 @@
// ----
// Lens flares
// ----
// Ordered
$sprdir lens
$spritename flare1
$load art/gfx/sprites/flares/flare5.pcx
$spriteframe 0 0 128 128
$spritename flare2
$load art/gfx/sprites/flares/flare4.pcx
$spriteframe 0 0 64 64
$spritename flare3
$load art/gfx/sprites/flares/flare3.pcx
$spriteframe 0 0 16 16
$spritename flare4
$load art/gfx/sprites/flares/flare6.pcx
$spriteframe 0 0 32 32
$spritename flare5
$load art/gfx/sprites/flares/flare1.pcx
$spriteframe 0 0 64 64
$spritename flare6
$load art/gfx/sprites/flares/shine8.pcx
$spriteframe 0 0 128 128
$spritename blind1
$load art/gfx/sprites/flares/blind1.pcx
$spriteframe 0 0 64 64
$spritename halo1
$load art/gfx/sprites/flares/halo.pcx
$spriteframe 0 0 64 64
$spritename halo2
$load art/gfx/sprites/flares/halo2.pcx
$spriteframe 0 0 32 32
$spritename halo3
$load art/gfx/sprites/flares/halo3.pcx
$spriteframe 0 0 64 64
$spritename test_flare1
$load art/gfx/sprites/flares/test_flare1.pcx
$spriteframe 0 0 64 64
$spritename test_flare2
$load art/gfx/sprites/flares/test_flare2.pcx
$spriteframe 0 0 32 32

View file

@ -0,0 +1,303 @@
// ----
// Sprites required by misc. world effects.
// ----
$sprdir fx
$spritename puff
$load art/gfx/sprites/s_puff_0.pcx
$spriteframe 0 0 48 48
$load art/gfx/sprites/s_puff_1.pcx
$spriteframe 0 0 48 48
$load art/gfx/sprites/s_puff_2.pcx
$spriteframe 0 0 48 48
$load art/gfx/sprites/s_puff_3.pcx
$spriteframe 0 0 48 48
$load art/gfx/sprites/s_puff_4.pcx
$spriteframe 0 0 48 48
$spritename wfall
$load art/gfx/sprites/s_wfall_0.pcx
$spriteframe 0 0 64 64
$load art/gfx/sprites/s_wfall_1.pcx
$spriteframe 0 0 64 64
$spritename mist
$load art/gfx/sprites/s_mist_0.pcx
$spriteframe 0 0 128 64
$spritename steam
$load art/gfx/sprites/s_steam_0.pcx
$spriteframe 0 0 32 32
$spritename steam_add
$load art/gfx/sprites/s_steam_add.pcx
$spriteframe 0 0 32 32
$spritename steamhalf
$load art/gfx/sprites/s_steamhalf_0.pcx
$spriteframe 0 0 32 16
$spritename waterentryripple
$load art/gfx/sprites/s_waterentryripple.tga
$spriteframe 0 0 64 64
$spritename ripple_add
$load art/gfx/sprites/s_ripple_add.pcx
$spriteframe 0 0 64 64
$spritename waterwake
$load art/gfx/sprites/s_waterwake.pcx
$spriteframe 0 0 64 64
$spritename wake_add
$load art/gfx/sprites/s_wake_add.pcx
$spriteframe 0 0 64 64
$spritename scorchmark
$load art/gfx/sprites/s_scorchmark.pcx
$spriteframe 0 0 32 32
$spritename spoo
$load art/gfx/sprites/s_spoo3.tga
$spriteframe 0 0 16 16
$spritename spoo2
$load art/gfx/sprites/s_spoo4.tga
$spriteframe 0 0 16 16
$spritename shadow
$load art/gfx/sprites/shadow.pcx
$spriteframe 0 0 32 32
$spritename relect
$load art/gfx/sprites/relect_shrine.tga
$spriteframe 0 0 64 64
//
$spritename nflame
$load art/gfx/sprites/s_nflame.pcx
$spriteframe 0 0 128 128
$spriteframe 0 0 128 128
// Lens flares.
$spritename halo
$load art/gfx/sprites/s_halo_1.pcx
$spriteframe 0 0 64 64
$load art/gfx/sprites/s_halo_2.pcx
$spriteframe 0 0 64 64
$load art/gfx/sprites/s_halo_3.pcx
$spriteframe 0 0 64 64
$spritename haloblue
$load art/gfx/sprites/s_haloblue.pcx
$spriteframe 0 0 64 64
$spritename halored
$load art/gfx/sprites/s_halored.pcx
$spriteframe 0 0 64 64
$spritename halogreen
$load art/gfx/sprites/s_halo_4.pcx
$spriteframe 0 0 64 64
$spritename fire
$load art/gfx/sprites/s_fire1.pcx
$spriteframe 0 0 32 32
$load art/gfx/sprites/s_fire2.pcx
$spriteframe 0 0 32 32
$load art/gfx/sprites/s_fire3.pcx
$spriteframe 0 0 32 32
$spritename bubble
$load art/gfx/sprites/bubble.tga
$spriteframe 0 0 32 32
$load art/gfx/sprites/beerbub.tga
$spriteframe 0 0 32 32
$load art/gfx/sprites/bludbub.tga
$spriteframe 0 0 32 32
$spritename abubble
$load art/gfx/sprites/abubble.pcx
$spriteframe 0 0 32 32
$spritename waterdrop
$load art/gfx/sprites/jbubble2.tga
$spriteframe 0 0 32 32
; Line segment textures
$spritename redraindrop
$load art/gfx/sprites/l_redraindrop.pcx
$spriteframe 0 0 16 64
$load art/gfx/sprites/l_magraindrop.pcx
$spriteframe 0 0 32 128
$spritename segment_rope
$load art/gfx/sprites/l_segment_rope.tga
$spriteframe 0 0 16 64
$spritename lightning
$load art/gfx/sprites/l_lightning.pcx
$spriteframe 0 0 16 64
$load art/gfx/sprites/l_lightning_2.pcx
$spriteframe 0 0 16 64
$spritename rlightning
$load art/gfx/sprites/l_rlightning.pcx
$spriteframe 0 0 16 64
$load art/gfx/sprites/l_rlightning_2.pcx
$spriteframe 0 0 16 64
$spritename plightning
$load art/gfx/sprites/l_plightning.pcx
$spriteframe 0 0 32 128
$load art/gfx/sprites/l_plightning_2.pcx
$spriteframe 0 0 32 128
$spritename neon
$load art/gfx/sprites/l_neon.pcx
$spriteframe 0 0 16 64
$load art/gfx/sprites/l_neon2.pcx
$spriteframe 0 0 16 64
$load art/gfx/sprites/l_neon3.pcx
$spriteframe 0 0 16 64
$spritename segment_chain
$load art/gfx/sprites/l_segment_chain.tga
$spriteframe 0 0 16 64
$spritename segment_vine
$load art/gfx/sprites/l_segment_vine.tga
$spriteframe 0 0 16 64
$spritename segment_tendril
$load art/gfx/sprites/l_segment_tendril.tga
$spriteframe 0 0 16 64
$spritename hpproj1_1
$load art/gfx/sprites/s_hpproj1_1.tga
$spriteframe 0 0 32 32
$spritename hpproj1_2
$load art/gfx/sprites/s_hpproj1_2.tga
$spriteframe 0 0 32 32
$spritename segment_trail
$load art/gfx/sprites/l_segment_trail.tga
$spriteframe 0 0 16 64
$spritename hp_halo
$load art/gfx/sprites/s_hphalo.pcx
$spriteframe 0 0 64 64
$spritename segment_trail_w
$load art/gfx/sprites/l_segment_trail_w.tga
$spriteframe 0 0 16 64
$spritename segment_trail_wt
$load art/gfx/sprites/l_segment_trail_wt.tga
$spriteframe 0 0 16 64
$spritename segment_trail_y
$load art/gfx/sprites/l_segment_trail_y.tga
$spriteframe 0 0 16 64
$spritename helllaser
$load art/gfx/sprites/l_helllaser.pcx
$spriteframe 0 0 16 64
$load art/gfx/sprites/l_helllaser2.pcx
$spriteframe 0 0 16 64
// Some effects for hit graphics
// Firey line with cool head
$spritename firestreak
$load art/gfx/sprites/l_firestreak.pcx
$spriteframe 0 0 16 64
// Blue sparky line with cool head
$spritename bluestreak
$load art/gfx/sprites/l_bluestreak.pcx
$spriteframe 0 0 16 64
// Blue star-like line for long fx
$spritename bluestar
$load art/gfx/sprites/l_bluestar.pcx
$spriteframe 0 0 16 64
// Line effects for magic missile
$spritename greenlines
$load art/gfx/sprites/l_greenarray1.pcx
$spriteframe 0 0 16 64
$load art/gfx/sprites/l_greenarray2.pcx
$spriteframe 0 0 16 64
// Line effects for firewave (firewall)
$spritename fireline
$load art/gfx/sprites/l_fireline.pcx
$spriteframe 0 0 32 128
// Line effects for ripper ball (unpowered mace ball)
$spritename ballstreak
$load art/gfx/sprites/l_ballstreak1.pcx
$spriteframe 0 0 16 64
$load art/gfx/sprites/l_ballstreak2.pcx
$spriteframe 0 0 16 64
$spritename redexpl
$load art/gfx/sprites/boom1_0.pcx
$spriteframe 0 0 128 128
$load art/gfx/sprites/boom1_1.pcx
$spriteframe 0 0 128 128
$load art/gfx/sprites/boom1_2.pcx
$spriteframe 0 0 128 128
$load art/gfx/sprites/boom1_3.pcx
$spriteframe 0 0 128 128
$load art/gfx/sprites/boom1_4.pcx
$spriteframe 0 0 128 128
$load art/gfx/sprites/boom1_5.pcx
$spriteframe 0 0 128 128
$load art/gfx/sprites/boom1_6.pcx
$spriteframe 0 0 128 128
$load art/gfx/sprites/boom1_7.pcx
$spriteframe 0 0 128 128
$load art/gfx/sprites/boom1_8.pcx
$spriteframe 0 0 128 128
$load art/gfx/sprites/boom1_9.pcx
$spriteframe 0 0 128 128
$load art/gfx/sprites/boom1_10.pcx
$spriteframe 0 0 128 128
$load art/gfx/sprites/boom1_11.pcx
$spriteframe 0 0 128 128
$spritename core_b
$load art/gfx/sprites/halob.pcx
$spriteframe 0 0 64 64
$spritename hp_light
$load art/gfx/sprites/s_hplight.tga
$spriteframe 0 0 64 64
$spritename hp_lightning
$load art/gfx/sprites/hp_lightning.tga
$spriteframe 0 0 16 64
$spritename blood_splat
$load art/gfx/sprites/blood_splat.tga
$spriteframe 0 0 64 64
$spritename crosshair
$load art/gfx/sprites/crosshair1.pcx
$spriteframe 0 0 32 32
$load art/gfx/sprites/crosshair2.pcx
$spriteframe 0 0 32 32
$load art/gfx/sprites/crosshair3.pcx
$spriteframe 0 0 32 32
$spritename segment_trail_buoy
$load art/gfx/sprites/l_segment_buoy.tga
$spriteframe 0 0 16 64
$spritename morc_halo
$load art/gfx/sprites/s_m_halo.pcx
$spriteframe 0 0 64 64

View file

@ -0,0 +1,185 @@
// ----
// Sprites required by various spell effects.
// ----
$sprdir Spells
// ********************************************************************
// Spell change effects, i.e. readying the various spells.
// ********************************************************************
$spritename spark_red
$load art/gfx/sprites/spark_red.pcx
$spriteframe 0 0 16 16
$spritename spark_blue
$load art/gfx/sprites/spark_blue.pcx
$spriteframe 0 0 16 16
$spritename spark_green
$load art/gfx/sprites/spark_green.pcx
$spriteframe 0 0 16 16
$spritename spark_yellow
$load art/gfx/sprites/spark_yellow.pcx
$spriteframe 0 0 16 16
$spritename spark_cyan
$load art/gfx/sprites/spark_cyan.pcx
$spriteframe 0 0 16 16
$spritename spark_mag
$load art/gfx/sprites/spark_mag.pcx
$spriteframe 0 0 16 16
$spritename spark_ind
$load art/gfx/sprites/spark_ind.pcx
$spriteframe 0 0 16 16
// ********************************************************************
// Spell trail effects.
// ********************************************************************
// Flying-fist.
$spritename flyingfist
$load art/gfx/sprites/s_flyingfist2.pcx
$spriteframe 0 0 64 64
// Magic-missile.
$spritename halo_ind
$load art/gfx/sprites/s_halo_ind.pcx
$spriteframe 0 0 64 64
$load art/gfx/sprites/s_halo_ind2.pcx
$spriteframe 0 0 64 64
$spritename indigostreak
$load art/gfx/sprites/l_indigostreak.pcx
$spriteframe 0 0 16 64
// Ring Of Repulsion.
$spritename bluering
$load art/gfx/sprites/s_star.pcx
$spriteframe 0 0 64 64
// Meteor-barrier.
$spritename meteorbarrier
$load art/gfx/sprites/s_meteorbarrier.pcx
$spriteframe 0 0 64 64
// Sphere Of Annihlation - the sphere itself.
$spritename bluball
$load art/gfx/sprites/s_bluball.pcx
$spriteframe 0 0 64 64
// Sphere Of Annihlation - the pulsating flare around the sphere.
$spritename shboom
$load art/gfx/sprites/s_shboom.pcx
$spriteframe 0 0 64 64
// Sphere Of Annihlation - the glowing white balls.
$spritename glowball
$load art/gfx/sprites/s_glowball.pcx
$spriteframe 0 0 16 16
// Sphere Of Annihlation - beam graphic
$spritename glowbeam
$load art/gfx/sprites/s_anhpower.pcx
$spriteframe 0 0 64 64
// Firewall
$spritename wflame
$load art/gfx/sprites/s_nflame.pcx
$spriteframe 0 0 128 128
$spritename wflame2
$load art/gfx/sprites/s_nflame2.pcx
$spriteframe 0 0 64 64
$spritename wflamepillar
$load art/gfx/sprites/s_fwallpower.pcx
$spriteframe 0 0 64 64
// Teleport.
$spritename teleport_1
$load art/gfx/sprites/s_tele1.pcx
$spriteframe 0 0 64 64
$spritename teleport_2
$load art/gfx/sprites/s_tele2.pcx
$spriteframe 0 0 64 64
// ********************************************************************
// Hell-staff.
// ********************************************************************
$spritename hellstafproj
$load art/gfx/sprites/hellstafproj1.pcx
$spriteframe 0 0 32 32
$load art/gfx/sprites/hellstafproj2.pcx
$spriteframe 0 0 32 32
// ********************************************************************
// Spellhands trail effects, i.e. left by the player's hands etc. when
// casting spells.
// ********************************************************************
// A red-orange trail.
$spritename spellhands_red
$load art/gfx/sprites/s_spellhands_red.pcx
$spriteframe 0 0 32 32
// A blueish trail.
$spritename spellhands_blue
$load art/gfx/sprites/s_spellhands_blue.pcx
$spriteframe 0 0 32 32
// ********************************************************************
// Weapon trail effects, i.e. left by the player's weapons like the
// spear-staff and hell-staff.
// ********************************************************************
$spritename patball
$load art/gfx/sprites/s_patball_1.pcx
$spriteframe 0 0 64 64
$load art/gfx/sprites/s_patball_2.pcx
$spriteframe 0 0 64 64
// Phoenix comes out of the phoenix arrow explosion
$spritename phoenix
$load art/gfx/sprites/s_phoenix.pcx
$spriteframe 0 0 128 128
$load art/gfx/sprites/s_phoenix2.pcx
$spriteframe 0 0 128 128
// Rather than tinted steam-- For red rain
$spritename rsteam
$load art/gfx/sprites/s_rsteam.pcx
$spriteframe 0 0 32 32
// Magenta steam for powered up red rain
$load art/gfx/sprites/s_rsteam2.pcx
$spriteframe 0 0 32 32
$spritename maceball
$load art/gfx/sprites/maceball.tga
$spriteframe 0 0 64 64

View file

@ -0,0 +1,13 @@
// ----
// temp
// ----
$sprdir fx
$spritename neon
$load art/gfx/sprites/l_neon.pcx
$spriteframe 0 0 16 64
$load art/gfx/sprites/l_neon2.pcx
$spriteframe 0 0 16 64
$load art/gfx/sprites/l_neon3.pcx
$spriteframe 0 0 16 64

View file

@ -0,0 +1,742 @@
$load art/gfx/gamepal.lbm
$mippal
$mipdir Andoria
;=================================================
;FLOORS
;=================================================
$load art/gfx/textures/Andoria/final/pondbed.pcx
$mip pond 0 0 128 128
$load art/gfx/textures/Andoria/final/newtrans.pcx
$mip newgr3 0 0 128 128
$load art/gfx/textures/Andoria/final/newrock.pcx
$mip newgr2 0 0 128 128
$load art/gfx/textures/Andoria/final/newgrass.pcx
$mip newgr1 0 0 128 128
$load art/gfx/textures/Andoria/final/4_15grastransc.pcx
$mip slumgr10 0 0 128 128
$load art/gfx/textures/Andoria/final/4_15grastransb.pcx
$mip slumgr9 0 0 128 128
$load art/gfx/textures/Andoria/final/4_15grastransa.pcx
$mip slumgr8 0 0 128 128
$load art/gfx/textures/Andoria/final/4_15dirtgrassb.pcx
$mip slumgr7 0 0 128 128
$load art/gfx/textures/Andoria/final/4_15dirtgrassa.pcx
$mip slumgr6 0 0 128 128
$load art/gfx/textures/Andoria/final/4_13grassc.pcx
$mip slumgr5 0 0 128 128
$load art/gfx/textures/Andoria/final/4_13grassb.pcx
$mip slumgr4 0 0 128 128
$load art/gfx/textures/Andoria/final/4_13grassa.pcx
$mip slumgr3 0 0 128 128
$load art/gfx/textures/Andoria/final/4_13slumgrasb.pcx
$mip slumgr2 0 0 128 128
$load art/gfx/textures/Andoria/final/4_13slumgrasa.pcx
$mip slumgr1 0 0 128 128
$load art/gfx/textures/Andoria/final/tile4a.pcx
$mip floor1 0 0 64 64 stone
;=================================================
; WALLS
;=================================================
$load art/gfx/textures/Andoria/final/5_29rock.pcx
$mip wall26 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/4_15brick3.pcx
$mip wall25 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/4_15brick2.pcx
$mip wall24 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/4_15brick1.pcx
$mip wall23 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_23tile.pcx
$mip wall22 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/3_10fossilgray.pcx
$mip wall21 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_6grockwallmoss.pcx
$mip wall20 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/sstonea.pcx
$mip wall19 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/marbflr2a.pcx
$mip wall18 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/granite5h.pcx
$mip wall17 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/granite5c.pcx
$mip wall16 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/granite5.pcx
$mip wall15 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/rockface4d.pcx
$mip wall14 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/rockface4c.pcx
$mip wall13 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/rockface2e.pcx
$mip wall12 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/rockface2b.pcx
$mip wall11 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_13relief2.pcx
$mip wall10 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_13relief1.pcx
$mip wall9 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_13cvwall2.pcx
$mip wal8 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_13cvwall.pcx
$mip wall7 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_12trim6.pcx
$mip wall6 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_12trim5.pcx
$mip wall5 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_12natrock2.pcx
$mip wall4 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_12natrock.pcx
$mip wall3 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/rockwall1d.pcx
$mip wall2 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/rockwall1b.pcx
$mip wall1 0 0 128 128 stone
;=================================================
; FISHWALLS
;=================================================
$load art/gfx/textures/Andoria/final/fishwall4.pcx
$mip fishwall4 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/fishwall3.pcx
$mip fishwall3 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/fishwall2.pcx
$mip fishwall2 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/fishwall1.pcx
$mip fishwall1 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/fishtrim4.pcx
$mip fishtrim4 0 0 64 32 stone
$load art/gfx/textures/Andoria/final/fishtrim3.pcx
$mip fishtrim3 0 0 64 32 stone
$load art/gfx/textures/Andoria/final/fishtrim2.pcx
$mip fishtrim2 0 0 64 32 stone
$load art/gfx/textures/Andoria/final/fishtrim1.pcx
$mip fishtrim1 0 0 64 32 stone
;=================================================
; MURALS
;=================================================
$load art/gfx/textures/Andoria/final/7_27andooria1.pcx
$mip mural11 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/7_22gandssithra1.pcx
$mip mural10 0 0 128 256 stone
$load art/gfx/textures/Andoria/final/7_21gandssithra2.pcx
$mip mural9 0 0 128 256 stone
$load art/gfx/textures/Andoria/final/2relief3b.pcx
$mip mural8 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/2relief3a.pcx
$mip mural7 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/petroglyphs1.pcx
$mip mural6 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/muraledged.pcx
$mip mural5 0 0 64 128 stone
$load art/gfx/textures/Andoria/final/mural2edged.pcx
$mip mural4 0 0 64 128 stone
$load art/gfx/textures/Andoria/final/6_1tilehuntblu.pcx
$mip mural3 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/6_1tilehunt2.pcx
$mip mural2 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/6_1tilehunt.pcx
$mip mural1 0 0 128 64 stone
;=================================================
; BRICKS AND STONES
;=================================================
$load art/gfx/textures/Andoria/final/3_11i2brickb.pcx
$mip lbrick1 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_11i2brickb3.pcx
$mip lbrick2 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_11i2brickb9.pcx
$mip lbrick3 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_9rock.pcx
$mip newrock3 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/2slate.pcx
$mip blslate 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/3_10floora1.pcx
$mip brk-floor1 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_10floora2.pcx
$mip brk-floor2 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/3_10floorb1.pcx
$mip brk-floor3 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_10floorb2.pcx
$mip brk-floor4 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/3_10floorc1.pcx
$mip brk-floor5 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_10floorc2.pcx
$mip brk-floor5 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_10flr2.pcx
$mip brk-floor6 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_10flr4.pcx
$mip brk-floor7 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_10pattrn1.pcx
$mip newwall4 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_10pattrn2.pcx
$mip newwall5 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_10quarry1.pcx
$mip quarry1 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_10quarry2.pcx
$mip quarry2 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_10maynbrk.pcx
$mip newbrick9 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/3_6relfbrk2.pcx
$mip newbrick4 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_6relfbrk1.pcx
$mip newbrick5 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_9hedsblu.pcx
$mip newbrick6 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_9hedsdrk.pcx
$mip newbrick7 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_9hedslite.pcx
$mip newbrick8 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_9shale1A.pcx
$mip shale1 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_9shale3b.pcx
$mip shale2 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_9shale3c.pcx
$mip shale3 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_9bigblock.pcx
$mip bigblock1 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_9smllblock.pcx
$mip smblock1 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/3_5grbrick3.pcx
$mip newbrick1 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_5grbrick4.pcx
$mip newbrick2 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_5grbrick6.pcx
$mip newbrick3 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_6altblck.pcx
$mip newblock1 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/3_6anwall4D.pcx
$mip newwall1 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_6anwall4F.pcx
$mip newwall2 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/3_6anwall5A.pcx
$mip newwall3 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/GRock2blue.pcx
$mip newrock1 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/GRock2blugrn.pcx
$mip newrock2 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/testgrbrick.pcx
$mip gbrick 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/testgrbrick2.pcx
$mip gbrick2 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/tile7m.pcx
$mip tile7m 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/bri2.pcx
$mip bri2 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/bri2-2.pcx
$mip bri2-2 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/bri1.pcx
$mip bri1 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/bri1-1.pcx
$mip bri1-1 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/2bgscles.pcx
$mip 2bgscles 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/sndblok2.pcx
$mip sndblok2 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/sndblok1.pcx
$mip sndblok1 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/tile6.pcx
$mip tile6 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/tile5.pcx
$mip tile5 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/tile4.pcx
$mip tile4 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/tile3.pcx
$mip tile3 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/tile2.pcx
$mip tile2 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/tile1.pcx
$mip tile1 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/tile9.pcx
$mip tile9 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/tile8.pcx
$mip tile8 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/tile7.pcx
$mip tile7 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/sstone3.pcx
$mip sstone3 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/sstone2.pcx
$mip sstone2 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/sstone1.pcx
$mip sstone1 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/sstone.pcx
$mip sstone 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/blk128.pcx
$mip blk128 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/marbflr.pcx
$mip marb-flr 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/marbflr2.pcx
$mip marb-flr2 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/marbflr3.pcx
$mip marb-flr3 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/marble2.pcx
$mip marble2 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/brick1b.pcx
$mip brick1b 0 0 32 32 stone
$load art/gfx/textures/Andoria/final/brick1a.pcx
$mip brick1a 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/tile1a.pcx
$mip tile1a 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/tile1b.pcx
$mip tile1b 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/tile1c.pcx
$mip tile1c 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/tile2a.pcx
$mip tile2a 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/tile2b.pcx
$mip tile2b 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/tile2c.pcx
$mip tile2c 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/sanpat1e.pcx
$mip stone1b 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/sanpat1f.pcx
$mip stone2b 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/fishtil5.pcx
$mip detail2 0 0 256 256 stone
;=================================================
;=================================================
; WATER(S)
;=================================================
$load art/gfx/textures/Andoria/final/water1b.pcx
$mip water4 0 0 128 128 water warping trans66
$load art/gfx/textures/Andoria/final/water1f.pcx
$mip water3 0 0 128 128 water warping trans66
$load art/gfx/textures/Andoria/final/water2a.pcx
$mip water2 0 0 128 128 water warping trans66
$load art/gfx/textures/Andoria/final/watera.pcx
$mip water1 0 0 128 128 water warping trans66
;=================================================
;=================================================
; TRIM / DECORATIONS / DETAILS
;=================================================
$load art/gfx/textures/Andoria/final/5_27blslatetrim7.pcx
$mip bltrim7 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/5_27blslatetrim6.pcx
$mip bltrim6 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/5_27blslatetrim5.pcx
$mip bltrim5 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/5_27blslatetrim4.pcx
$mip bltrim4 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/5_27blslatetrim3.pcx
$mip bltrim3 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/5_27blslatetrim2.pcx
$mip bltrim2 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/5_27blslatetrim1.pcx
$mip bltrim1 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/9_1door5.pcx
$mip door6 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/8_28door4.pcx
$mip door5 0 0 128 32 stone
$load art/gfx/textures/Andoria/final/8_28door3.pcx
$mip door4 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/8_28door2.pcx
$mip door3 0 0 64 128 stone
$load art/gfx/textures/Andoria/final/8_28door1.pcx
$mip door2 0 0 64 128 stone
$load art/gfx/textures/Andoria/final/tomsdoor2.pcx
$mip door1 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/d_bricktrim3.pcx
$mip brtrim3 0 0 32 32 stone
$load art/gfx/textures/Andoria/final/d_brickktrim2.pcx
$mip brtrim2 0 0 32 32 stone
$load art/gfx/textures/Andoria/final/d_bricktrim.pcx
$mip brtrim1 0 0 32 32 stone
$load art/gfx/textures/Andoria/final/borderc2.pcx
$mip newbord4 0 0 64 32 stone
$load art/gfx/textures/Andoria/final/4_20borderc.pcx
$mip newbord3 0 0 64 32 stone
$load art/gfx/textures/Andoria/final/bordera2.pcx
$mip newbord2 0 0 64 32 stone
$load art/gfx/textures/Andoria/final/4_20bordera.pcx
$mip newbord1 0 0 64 32 stone
$load art/gfx/textures/Andoria/final/3_25tunltrim.pcx
$mip tuntrim1 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/3_11shltrim1e.pcx
$mip shell6 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/3_11shltrim1d.pcx
$mip shell5 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/3_11shltrim1b.pcx
$mip shell4 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/3_11shltrim1a.pcx
$mip shell3 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/3_11shelltrim1n.pcx
$mip shell2 0 0 256 128 stone
$load art/gfx/textures/Andoria/final/3_11shelltrim1m.pcx
$mip shell1 0 0 256 128 stone
$load art/gfx/textures/Andoria/final/sqtrimc2.pcx
$mip rune 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/3_11trim3.pcx
$mip snaketrm1 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/3_11trim4.pcx
$mip fishhead1 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/3_12trim1.pcx
$mip coiltrm1 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/3_12trim1a.pcx
$mip coiltrm2 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/3_12trim2.pcx
$mip coiltrm3 0 0 64 32 stone
$load art/gfx/textures/Andoria/final/3_12trim2a.pcx
$mip coiltrm4 0 0 64 32 stone
$load art/gfx/textures/Andoria/final/3_9rckorn12a.pcx
$mip rck-orn2 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/3_10trim1.pcx
$mip trim7 0 0 64 32 stone
$load art/gfx/textures/Andoria/final/3_10fishtrim1c.pcx
$mip fishtrim1 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/3_10fishtrim1e.pcx
$mip fishtrim2 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/3_10fishtrim1f.pcx
$mip fishtrim3 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/3_10trim2.pcx
$mip trim8 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/3_10trim3.pcx
$mip trim9 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/3_11trim1.pcx
$mip trim10 0 0 32 16 stone
$load art/gfx/textures/Andoria/final/lipwav2.pcx
$mip lipwave2 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/lipwav.pcx
$mip lipwave 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/cola.pcx
$mip col 0 0 32 256 stone
$load art/gfx/textures/Andoria/final/bordg.pcx
$mip border7 0 0 32 128 stone
$load art/gfx/textures/Andoria/final/bordf.pcx
$mip border6 0 0 32 128 stone
$load art/gfx/textures/Andoria/final/borde.pcx
$mip border5 0 0 32 128 stone
$load art/gfx/textures/Andoria/final/bordd.pcx
$mip border4 0 0 32 128 stone
$load art/gfx/textures/Andoria/final/bordb.pcx
$mip border2 0 0 128 32 stone
$load art/gfx/textures/Andoria/final/wavytrim2.pcx
$mip wavytrim2 0 0 64 32 stone
$load art/gfx/textures/Andoria/final/wavytrim.pcx
$mip wavytrim 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/star3.pcx
$mip star3 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/star2.pcx
$mip star2 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/star1.pcx
$mip star1 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/rckorn.pcx
$mip rck-orn 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/rckorn1.pcx
$mip rck-orn1 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/walltrim.pcx
$mip walltrim 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/shells2.pcx
$mip shells2 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/trim1a.pcx
$mip trim1a 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/trim2.pcx
$mip trim2 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/trim3.pcx
$mip trim3 0 0 128 64 stone
$load art/gfx/textures/Andoria/final/seashl5.pcx
$mip detail1 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/bordera.pcx
$mip trim5 0 0 64 32 stone
$load art/gfx/textures/Andoria/final/borderc.pcx
$mip trim6 0 0 64 32 stone
;=================================================
;=================================================
; MISC.
;=================================================
$load art/gfx/textures/Andoria/final/9_7pushblock1.pcx
$mip pushpull 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/6_3bridge1.pcx
$mip bridge2 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/6_3bridge.pcx
$mip bridge1 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/pilarfrnt.pcx
$mip pilfront 0 0 64 128 stone
$load art/gfx/textures/Andoria/final/pilarfrnttop.pcx
$mip pilfronttop 0 0 64 128 stone
$load art/gfx/textures/Andoria/final/pilarhed2.pcx
$mip pilhead2 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/pilarmouth.pcx
$mip pilmouth 0 0 64 64 stone
$load art/gfx/textures/Andoria/final/pilarside2.pcx
$mip pilside2 0 0 64 128 stone
$load art/gfx/textures/Andoria/final/pilartop.pcx
$mip piltop 0 0 64 128 stone
$load art/gfx/textures/Andoria/final/pilartopside.pcx
$mip piltopside 0 0 32 128 stone
$load art/gfx/textures/Andoria/final/pilrback.pcx
$mip pilback 0 0 64 128 stone
$load art/gfx/textures/Andoria/final/pilarplain.pcx
$mip fishpillar 0 0 128 128 stone
$load art/gfx/textures/Andoria/final/litetxtr.pcx
$mip litetex 0 0 64 64 stone
;=================================================
;=================================================
; BUTTONS and other animated
;=================================================
$load art/gfx/textures/Andoria/final/rune4.pcx
$mip rune6 0 0 128 64 stone anim rune1
$load art/gfx/textures/Andoria/final/rune5.pcx
$mip rune5 0 0 128 64 stone anim rune6
$load art/gfx/textures/Andoria/final/rune6.pcx
$mip rune4 0 0 128 64 stone anim rune5
$load art/gfx/textures/Andoria/final/rune5.pcx
$mip rune3 0 0 128 64 stone anim rune4
$load art/gfx/textures/Andoria/final/rune4.pcx
$mip rune2 0 0 128 64 stone anim rune3
$load art/gfx/textures/Andoria/final/rune3.pcx
$mip rune1 0 0 128 64 stone anim rune2 animspeed 12
$load art/gfx/textures/Andoria/final/button7a.pcx
$mip +0button3 0 0 32 32 anim +1button3
$load art/gfx/textures/Andoria/final/button7b.pcx
$mip +1button3 0 0 32 32 anim +0button3
$load art/gfx/textures/Andoria/final/eelbuttona.pcx
$mip +0button4 0 0 32 32 anim +1button4
$load art/gfx/textures/Andoria/final/eelbuttonb.pcx
$mip +1button4 0 0 32 32 anim +0button4
;=================================================

View file

@ -0,0 +1,230 @@
$load art/gfx/gamepal.lbm
$mippal
$mipdir Canyon
;=================================================
; BRICKS AND STONES
;=================================================
$load art/gfx/textures/Canyon/final/rufrok05.pcx
$mip rock03 0 0 128 128 stone
$load art/gfx/textures/Canyon/final/rufrok02.pcx
$mip rock02 0 0 128 128 stone
$load art/gfx/textures/Canyon/final/rufrok01.pcx
$mip rock01 0 0 128 128 stone
$load art/gfx/textures/Canyon/final/7_1gwall3bwithrub1.pcx
$mip rubblewall2 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/7_1gwall3bwithrub.pcx
$mip rubblewall1 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/7_1gwall3bmoss.pcx
$mip mosswall2 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/7_1gcan12moss.pcx
$mip mosswall1 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/6_4canrockf.pcx
$mip canyon22 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/6_4canrocke.pcx
$mip canyon21 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/6_4canrockd.pcx
$mip canyon20 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/6_10wall3b.pcx
$mip canyon19 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/gcanline1.pcx
$mip canyon18 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/gslate.pcx
$mip canyon17 0 0 128 128 stone
$load art/gfx/textures/Canyon/final/gcan12newa.pcx
$mip canyon16 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/6_4canrockb.pcx
$mip canyon15 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/6_10wall3a.pcx
$mip canyon14 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/6_10wall3.pcx
$mip canyon13 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/orewall.pcx
$mip canyon12 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/g256e.pcx
$mip canyon11 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/g256d.pcx
$mip canyon10 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/g256c.pcx
$mip canyon09 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/g256b.pcx
$mip canyon08 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/g256asharper.pcx
$mip canyon07 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/cliffwall.pcx
$mip canyon06 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/6_4morewal.pcx
$mip canyon05 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/6_4canrockc.pcx
$mip canyon04 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/6_4canrocka.pcx
$mip canyon03 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/5_3rwall2b.pcx
$mip canyon02 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/5_3rwall2.pcx
$mip canyon01 0 0 256 256 stone
;=================================================
;=================================================
; FLOOR(S)
;=================================================
$load art/gfx/textures/Canyon/final/gdirtgravel.pcx
$mip gravel01 0 0 128 128
$load art/gfx/textures/Canyon/final/gdrieddirt.pcx
$mip dirt03 0 0 64 64
$load art/gfx/textures/Canyon/final/gcrackeddirt.pcx
$mip dirt02 0 0 64 64
$load art/gfx/textures/Canyon/final/6_10grocky.pcx
$mip dirt01 0 0 128 128
$load art/gfx/textures/Canyon/final/gstngrnd6.pcx
$mip rkfloor10 0 0 128 128 stone
$load art/gfx/textures/Canyon/final/gstngrnd5.pcx
$mip rkfloor09 0 0 128 128 stone
$load art/gfx/textures/Canyon/final/gstngrnd4.pcx
$mip rkfloor08 0 0 128 128 stone
$load art/gfx/textures/Canyon/final/gstngrnd3.pcx
$mip rkfloor07 0 0 128 128 stone
$load art/gfx/textures/Canyon/final/gstngrnd2.pcx
$mip rkfloor06 0 0 128 128 stone
$load art/gfx/textures/Canyon/final/gstngrnd.pcx
$mip rkfloor05 0 0 128 128 stone
$load art/gfx/textures/Canyon/final/grockflr3.pcx
$mip rkfloor04 0 0 128 128 stone
$load art/gfx/textures/Canyon/final/grockflr2.pcx
$mip rkfloor03 0 0 128 128 stone
$load art/gfx/textures/Canyon/final/grockflr1.pcx
$mip rkfloor02 0 0 128 128 stone
$load art/gfx/textures/Canyon/final/6_10grocky.pcx
$mip rkfloor01 0 0 128 128 stone
;=================================================
;=================================================
; TRANSITIONS
;=================================================
$load art/gfx/textures/Canyon/final/6_30gwalltowallb128.pcx
$mip wftrans03 0 0 128 256 stone
$load art/gfx/textures/Canyon/final/6_30gwalltowalla128.pcx
$mip wwtrans02 0 0 128 256 stone
$load art/gfx/textures/Canyon/final/6_30gflrtoflra64.pcx
$mip wwtrans01 0 0 64 128 stone
$load art/gfx/textures/Canyon/final/6_10rubble2b.pcx
$mip trans05 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/6_10rubble2a.pcx
$mip trans04 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/6_10rubble2.pcx
$mip trans03 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/grockbottom2.pcx
$mip trans02 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/grockbottom.pcx
$mip trans01 0 0 256 256 stone
;=================================================
;=================================================
; MISC.
;=================================================
$load art/gfx/textures/Canyon/final/8-12gwoodbridge.pcx
$mip bridge01 0 0 64 64 wood
$load art/gfx/textures/Canyon/final/7_2gorgonstrip.pcx
$mip bugrelf08 0 0 128 32 stone
$load art/gfx/textures/Canyon/final/7_2gorgonfest.pcx
$mip bugrelf07 0 0 128 64 stone
$load art/gfx/textures/Canyon/final/7_2gorginlay.pcx
$mip bugrelf06 0 0 64 64 stone
$load art/gfx/textures/Canyon/final/7_2ggorgc.pcx
$mip bugrelf05 0 0 64 64 stone
$load art/gfx/textures/Canyon/final/7_2ggorgb.pcx
$mip bugrelf04 0 0 64 64 stone
$load art/gfx/textures/Canyon/final/7_2ggorga.pcx
$mip bugrelf03 0 0 64 64 stone
$load art/gfx/textures/Canyon/final/7_1ggorg2.pcx
$mip bugrelf02 0 0 64 64 stone
$load art/gfx/textures/Canyon/final/7_1ggorg1.pcx
$mip bugrelf01 0 0 64 64 stone
$load art/gfx/textures/Canyon/final/6_30-wallglyph-right.pcx
$mip glyph5 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/6_30-wallglyph-mid.pcx
$mip glyph4 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/6_30-wallglyph-left.pcx
$mip glyph3 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/6_30-wallglyph-all.pcx
$mip glyph2 0 0 256 256 stone
$load art/gfx/textures/Canyon/final/6-30-1-skullglyph.pcx
$mip glyph1 0 0 256 256 stone
;=================================================

View file

@ -0,0 +1,567 @@
$load art/gfx/gamepal.lbm
$mippal
$mipdir Cloudhub
;=================================================
; MAGIC!
;=================================================
$load art/gfx/textures/Cloudhub/final/9_15morcalsfield.pcx
$mip mgfield01 0 0 128 128 trans33
$load art/gfx/textures/Cloudhub/final/8_13magicfield4c.pcx
$mip magic10 0 0 128 128 warping trans33
$load art/gfx/textures/Cloudhub/final/8_13magicfield4b.pcx
$mip magic09 0 0 128 128 warping trans33
$load art/gfx/textures/Cloudhub/final/8_13magicfield4a.pcx
$mip magic08 0 0 128 128 warping trans33
$load art/gfx/textures/Cloudhub/final/8_13magicfield4.pcx
$mip magic07 0 0 128 128 warping trans33
$load art/gfx/textures/Cloudhub/final/8_13magicfield3.pcx
$mip magic06 0 0 128 128 warping trans33
$load art/gfx/textures/Cloudhub/final/8_13magicfield2.pcx
$mip magic05 0 0 128 128 warping trans33
$load art/gfx/textures/Cloudhub/final/8_13magicfield.pcx
$mip magic04 0 0 128 128 warping trans33
$load art/gfx/textures/Cloudhub/final/8_12gymagicfield.pcx
$mip magic03 0 0 128 128 warping trans33
$load art/gfx/textures/Cloudhub/final/8_12greenmagicfield2.pcx
$mip magic02 0 0 128 128 warping trans33
$load art/gfx/textures/Cloudhub/final/8_12greenmagicfield.pcx
$mip magic01 0 0 128 128 warping trans33
;=================================================
; WALL(S)
;=================================================
$load art/gfx/textures/Cloudhub/final/g5_29mikerock.pcx
$mip stone05 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/7_16gstone2.pcx
$mip stone04 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/7_16gstone1.pcx
$mip stone03 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/g6_3bridge1.pcx
$mip stone02 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/g6_3bridge.pcx
$mip stone01 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/8_3gtileablestucco.pcx
$mip stuccowall05 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/7_24gstuccomorc.pcx
$mip stuccowall04 0 0 64 128 stone
$load art/gfx/textures/Cloudhub/final/7_24gstuccodec.pcx
$mip stuccowall03 0 0 64 128 stone
$load art/gfx/textures/Cloudhub/final/gd__stucco.pcx
$mip stuccowall02 0 0 64 128 stone
$load art/gfx/textures/Cloudhub/final/3_26stuccowallr3.pcx
$mip stuccowall01 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/7_24gjonnewbrk2.pcx
$mip brick04 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/7_24gjonnewbrk.pcx
$mip brick03 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/7_23gjonplnbrick.pcx
$mip brick02 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/7_23gjonbrick.pcx
$mip brick01 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/7_23gjonwall.pcx
$mip sanctum01 0 0 64 128 stone
$load art/gfx/textures/Cloudhub/final/7_22gmikewallrck2plain.pcx
$mip wall06 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/7_22gmikewallrck2.pcx
$mip wall05 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/g7_22miketop128.pcx
$mip wall04 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/gbri1.pcx
$mip wall03 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/g4_8top128.pcx
$mip wall02 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/g3_9bigblock.pcx
$mip wall01 0 0 128 128 stone
;=================================================
;=================================================
; FLOOR(S)
;=================================================
$load art/gfx/textures/Cloudhub/final/7_23gjonflrsect.pcx
$mip floortrim01 0 0 64 64
$load art/gfx/textures/Cloudhub/final/7_23gjonfloor.pcx
$mip floor09 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/g7_22mikefloora1.pcx
$mip floor08 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/gsanpat1f.pcx
$mip floor07 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/g5_29rock.pcx
$mip floor06 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/g3_24blumarb1.pcx
$mip floor05 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/g3_23tile.pcx
$mip floor04 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/g3_10flr4.pcx
$mip floor03 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/g3_10floora1.pcx
$mip floor02 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/7_16gmikesflr1.pcx
$mip floor01 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/8_4gcompassflr2.pcx
$mip marblefloor09 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/7_20marb.pcx
$mip marblefloor08 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/7_20blumarb1.pcx
$mip marblefloor07 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/g3_23marblefloor.pcx
$mip marblefloor06 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/g3_23marblee.pcx
$mip marblefloor05 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/g3_23marble2.pcx
$mip marblefloor04 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/g3_23marbeflr1.pcx
$mip marblefloor03 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/g3_23cleanmarb2.pcx
$mip marblefloor02 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/3_23marb5k.pcx
$mip marblefloor01 0 0 64 64 stone
;=================================================
;=================================================
; METAL(S)
;=================================================
$load art/gfx/textures/Cloudhub/final/7_24gpipe6new.pcx
$mip cloudpipe05 0 0 64 16 metal
$load art/gfx/textures/Cloudhub/final/7_24gpipe3new.pcx
$mip cloudpipe04 0 0 64 32 metal
$load art/gfx/textures/Cloudhub/final/7_16gpipe6.pcx
$mip cloudpipe03 0 0 64 16 metal
$load art/gfx/textures/Cloudhub/final/7_16gpipe3.pcx
$mip cloudpipe02 0 0 64 32 metal
$load art/gfx/textures/Cloudhub/final/7_16gpipe.pcx
$mip cloudpipe01 0 0 64 64 metal
$load art/gfx/textures/Cloudhub/final/7_22gmetalscrap.pcx
$mip cloudmetal10 0 0 128 128 metal
$load art/gfx/textures/Cloudhub/final/7_24blugryr2.pcx
$mip cloudmetal09 0 0 64 64 metal
$load art/gfx/textures/Cloudhub/final/7_22gmetalblood.pcx
$mip cloudmetal08 0 0 128 128 metal
$load art/gfx/textures/Cloudhub/final/7_22gmikebloodmetal.pcx
$mip cloudmetal07 0 0 64 64 metal
$load art/gfx/textures/Cloudhub/final/7_21gmikenewmetal2.pcx
$mip cloudmetal06 0 0 64 64 metal
$load art/gfx/textures/Cloudhub/final/7_21gmikenewmetal1.pcx
$mip cloudmetal05 0 0 64 64 metal
$load art/gfx/textures/Cloudhub/final/7_16grivmetal.pcx
$mip cloudmetal04 0 0 64 64 metal
$load art/gfx/textures/Cloudhub/final/7_16gshtmetal.pcx
$mip cloudmetal03 0 0 64 64 metal
$load art/gfx/textures/Cloudhub/final/7_16gmetal2.pcx
$mip cloudmetal02 0 0 128 128 metal
$load art/gfx/textures/Cloudhub/final/7_16gmetal1.pcx
$mip cloudmetal01 0 0 128 128 metal
;=================================================
;=================================================
; TRIM / DECORATIONS / DETAILS
;=================================================
$load art/gfx/textures/Cloudhub/final/8-27gjondundoor.pcx
$mip hubdoor01 0 0 64 128 stone
$load art/gfx/textures/Cloudhub/final/7_29gmdoor1b.pcx
$mip doortrim02 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/7_29gmdoor1.pcx
$mip doortrim01 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/8-27gjonsanceil.pcx
$mip sancceiling01 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/7_29gmatchtrim.pcx
$mip sanctrim01 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/7_28gnewarch.pcx
$mip sancarch04 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/7_27gjonarchnewcrv.pcx
$mip sancarch03 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/7_27gjonarchnewcrv2.pcx
$mip sancarch02 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/7_24gjonarch.pcx
$mip sancarch01 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/7_23gjonmiddle.pcx
$mip sancdecor01 0 0 64 256 stone
$load art/gfx/textures/Cloudhub/final/gbordb.pcx
$mip border02 0 0 128 32 stone
$load art/gfx/textures/Cloudhub/final/7_16gblusection1.pcx
$mip border01 0 0 32 64 stone
$load art/gfx/textures/Cloudhub/final/7_16gvertcart64b.pcx
$mip detail05 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/7_31gterroredpixytiles.pcx
$mip relief09 0 0 32 128 stone
$load art/gfx/textures/Cloudhub/final/7_31gpixywallrelief.pcx
$mip relief08 0 0 32 128 stone
$load art/gfx/textures/Cloudhub/final/7_31gmorcpower64.pcx
$mip relief07 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/7_31gmorcpower128.pcx
$mip relief06 0 0 64 128 stone
$load art/gfx/textures/Cloudhub/final/7_21gcartrelief1.pcx
$mip relief05 0 0 128 64 stone
$load art/gfx/textures/Cloudhub/final/7_17greliefxsmla.pcx
$mip relief04 0 0 32 64 stone
$load art/gfx/textures/Cloudhub/final/7_17gstnrelief1copy.pcx
$mip relief03 0 0 64 128 stone
$load art/gfx/textures/Cloudhub/final/7_17gstnrelief1.pcx
$mip relief02 0 0 64 128 stone
$load art/gfx/textures/Cloudhub/final/7_17greliefbig2.pcx
$mip reliefsplit02 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/7_17greliefbig1.pcx
$mip reliefsplit01 0 0 128 128 stone
$load art/gfx/textures/Cloudhub/final/7_17greliefbiga.pcx
$mip relief01 0 0 128 256 stone
$load art/gfx/textures/Cloudhub/final/7_16gvertcart64a.pcx
$mip detail04 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/7_16gvertcart3.pcx
$mip detail03 0 0 32 64 stone
$load art/gfx/textures/Cloudhub/final/7_16gvertcart2.pcx
$mip detail02 0 0 32 64 stone
$load art/gfx/textures/Cloudhub/final/7_16gvertcart1.pcx
$mip detail01 0 0 32 64 stone
$load art/gfx/textures/Cloudhub/final/7_15gskulltrim4.pcx
$mip skulltrim04 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/7_15gskulltrim3.pcx
$mip skulltrim03 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/7_15gskulltrim2.pcx
$mip skulltrim02 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/7_15gskulltrim1.pcx
$mip skulltrim01 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/7_31gdec2.pcx
$mip trim35 0 0 32 64 stone
$load art/gfx/textures/Cloudhub/final/7_20trim3.pcx
$mip trim34 0 0 32 32 stone
$load art/gfx/textures/Cloudhub/final/7_20trim2.pcx
$mip trim33 0 0 32 32 stone
$load art/gfx/textures/Cloudhub/final/7_20trim1b.pcx
$mip trim32 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/7_20mtrim2.pcx
$mip trim31 0 0 32 32 stone
$load art/gfx/textures/Cloudhub/final/7_20ghoultrim.pcx
$mip trim30 0 0 128 32 stone
$load art/gfx/textures/Cloudhub/final/7_20trim3g.pcx
$mip trim29 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/7-15gspiketrim1.pcx
$mip trim28 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/7-15gdectrim1.pcx
$mip trim27 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/gfishtrim2.pcx
$mip trim26 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/g7_7gtrim2.pcx
$mip trim25 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/g7_7gtrim1.pcx
$mip trim24 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/g7_13gtrim3.pcx
$mip trim23 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/g4_14trimr1.pcx
$mip trim22 0 0 128 16 stone
$load art/gfx/textures/Cloudhub/final/g3_25tunltrim.pcx
$mip trim21 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/g3_24walltrimblueb.pcx
$mip trim20 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/g3_24walltrimbluea.pcx
$mip trim19 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/g3_24walltrimblue2.pcx
$mip trim18 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/g3_24walltrimblue.pcx
$mip trim17 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/g3_18walltrim2.pcx
$mip trim16 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/g3_18walltrim.pcx
$mip trim15 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/7_15gblumarbtrim3.pcx
$mip trim14 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/7_15gblumarbtrim2.pcx
$mip trim13 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/7_15gblumarbtrim1.pcx
$mip trim12 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/7_14gblumarbtrim3.pcx
$mip trim11 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/7_14gblumarbtrim2.pcx
$mip trim10 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/7_14gblumarbtrim.pcx
$mip trim09 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/7-15gspiketrim2.pcx
$mip trim08 0 0 64 32 stone
$load art/gfx/textures/Cloudhub/final/5_27blslatetrim7.pcx
$mip trim07 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/5_27blslatetrim6.pcx
$mip trim06 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/5_27blslatetrim5.pcx
$mip trim05 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/5_27blslatetrim4.pcx
$mip trim04 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/5_27blslatetrim3.pcx
$mip trim03 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/5_27blslatetrim2.pcx
$mip trim02 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/3_10trim1.pcx
$mip trim01 0 0 64 32 stone
;=================================================
;=================================================
; MISC.
;=================================================
$load art/gfx/textures/Cloudhub/final/8_25gsymboltile.pcx
$mip heretic01 0 0 128 128 metal
$load art/gfx/textures/Cloudhub/final/8_3gbookshelf.pcx
$mip books07 0 0 128 128
$load art/gfx/textures/Cloudhub/final/7_30gdustybooks2.pcx
$mip books06 0 0 32 32
$load art/gfx/textures/Cloudhub/final/7_30gdustybooks1.pcx
$mip books05 0 0 32 32
$load art/gfx/textures/Cloudhub/final/7_30gbooks4.pcx
$mip books04 0 0 32 32
$load art/gfx/textures/Cloudhub/final/7_30gbooks3.pcx
$mip books03 0 0 32 32
$load art/gfx/textures/Cloudhub/final/7_30gbooks2.pcx
$mip books02 0 0 32 32
$load art/gfx/textures/Cloudhub/final/7_30gbooks1.pcx
$mip books01 0 0 32 32
$load art/gfx/textures/Cloudhub/final/7_30gcarpettiledk.pcx
$mip carpet02 0 0 64 64
$load art/gfx/textures/Cloudhub/final/7_29gcarpet1.pcx
$mip carpet01 0 0 128 128
$load art/gfx/textures/Cloudhub/final/eelbuttonb.pcx
$mip button04 0 0 32 32 stone
$load art/gfx/textures/Cloudhub/final/eelbuttona.pcx
$mip button03 0 0 32 32 stone
$load art/gfx/textures/Cloudhub/final/button6a.pcx
$mip button02 0 0 32 32 stone
$load art/gfx/textures/Cloudhub/final/button1a.pcx
$mip button01 0 0 32 32 stone
$load art/gfx/textures/Cloudhub/final/8-11gmactualdoor.pcx
$mip door08 0 0 128 128 metal
$load art/gfx/textures/Cloudhub/final/8_3gmikenewdoor.pcx
$mip door07 0 0 128 128 metal
$load art/gfx/textures/Cloudhub/final/7_31gmactualdoor2.pcx
$mip door06 0 0 128 128 metal
$load art/gfx/textures/Cloudhub/final/7_30gmactualdoor.pcx
$mip door05 0 0 128 128 metal
$load art/gfx/textures/Cloudhub/final/7_28gjonpiecedrb.pcx
$mip door04 0 0 128 128 metal
$load art/gfx/textures/Cloudhub/final/7_28gjonpiecedra.pcx
$mip door03 0 0 128 256 metal
$load art/gfx/textures/Cloudhub/final/7_28gjondoor2b.pcx
$mip door02 0 0 128 128 metal
$load art/gfx/textures/Cloudhub/final/7_28gjondoor2a.pcx
$mip door01 0 0 128 256 metal
$load art/gfx/textures/Cloudhub/final/5_1stonestep1.pcx
$mip stepfront01 0 0 32 16 stone
$load art/gfx/textures/Cloudhub/final/7_27sadfaces2.pcx
$mip pillarfaces01 0 0 64 128 stone
$load art/gfx/textures/Cloudhub/final/7_16sadfaces.pcx
$mip pillarrel01 0 0 64 128 stone
$load art/gfx/textures/Cloudhub/final/7_17gpillarsec.pcx
$mip pillar01 0 0 64 64 stone
$load art/gfx/textures/Cloudhub/final/7_30gstngls2.pcx
$mip window01 0 0 32 256 stone
$load art/gfx/textures/Cloudhub/final/7_24gjonsglstop.pcx
$mip sancwind02 0 0 64 128 stone
$load art/gfx/textures/Cloudhub/final/7_24gjonsglsbottom.pcx
$mip sancwind01 0 0 64 256 stone
$load art/gfx/textures/Cloudhub/final/7_22gfranken.pcx
$mip table01 0 0 64 128
$load art/gfx/textures/Cloudhub/final/8_4gkitchen3.pcx
$mip kitjars03 0 0 32 16
$load art/gfx/textures/Cloudhub/final/8_4gkitchen2.pcx
$mip kitjars02 0 0 32 16
$load art/gfx/textures/Cloudhub/final/8_4gkitchen1.pcx
$mip kitjars01 0 0 32 16
$load art/gfx/textures/Cloudhub/final/7_22gshelfjars3.pcx
$mip jars03 0 0 64 32
$load art/gfx/textures/Cloudhub/final/7_22gshelfjars2.pcx
$mip jars02 0 0 64 32
$load art/gfx/textures/Cloudhub/final/7_22gshelfjars.pcx
$mip jars01 0 0 64 32
$load art/gfx/textures/Cloudhub/final/7_30gpic4.pcx
$mip portrait04 0 0 32 64
$load art/gfx/textures/Cloudhub/final/7_30gpic3.pcx
$mip portrait03 0 0 32 64
$load art/gfx/textures/Cloudhub/final/7_30gpic2.pcx
$mip portrait02 0 0 32 32
$load art/gfx/textures/Cloudhub/final/7_30gpic1.pcx
$mip portrait01 0 0 32 64
$load art/gfx/textures/Cloudhub/final/8_3gpillow.pcx
$mip bedpilow01 0 0 64 32
$load art/gfx/textures/Cloudhub/final/8_3gbedshts.pcx
$mip bedsheet01 0 0 128 128
;=================================================

View file

@ -0,0 +1,360 @@
$load art/gfx/gamepal.lbm
$mippal
$mipdir Dungeon
;=================================================
; WALLS
;=================================================
$load art/gfx/textures/Dungeon/final/d-wallwindowv5.pcx
$mip dunwall11 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/d-wallwindowv4b.pcx
$mip dunwall10 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/d-wallwindowv4.pcx
$mip dunwall09 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/8_13dungeonsqwallv4.pcx
$mip dunwall08d 0 0 64 128 stone
$load art/gfx/textures/Dungeon/final/8_13dungeonsqwallv3.pcx
$mip dunwall08c 0 0 64 128 stone
$load art/gfx/textures/Dungeon/final/8_13dungeonsqwallv2.pcx
$mip dunwall08b 0 0 64 128 stone
$load art/gfx/textures/Dungeon/final/8_13dungeonsqwallv1.pcx
$mip dunwall08a 0 0 64 128 stone
$load art/gfx/textures/Dungeon/final/dungeonsqwall.pcx
$mip dunwall08 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/dungeondripsv4.pcx
$mip dunwall07 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/dungeondripsv3.pcx
$mip dunwall06 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/dungeondrips.pcx
$mip dunwall05 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/d-wallwindowv3.pcx
$mip dunwall04 0 0 128 128 stone
;$load art/gfx/textures/Dungeon/final/d-wallwindowv2.pcx
;$mip dunwall03 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/d-wallwindow.pcx
$mip dunwall02 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/dungeon.pcx
$mip dunwall01 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/7_29brickwallhole.pcx
$mip grbrick08 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/7_29brickwallgratesludge.pcx
$mip grbrick07 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/7_29brickwallgrateslime.pcx
$mip grbrick06 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/7_29brickwallgratebusted.pcx
$mip grbrick05 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/7_29brickwallgrate2.pcx
$mip grbrick04 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/7_29brickwallgrate1.pcx
$mip grbrick03 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/7_29brickwallgrate.pcx
$mip grbrick02 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/7_29brickwall2.pcx
$mip grbrick01 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/7_29brickwalltransright.pcx
$mip brbrktrans01 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/7_29brickwall.pcx
$mip brbrick01 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/3_05stonewall2bc.pcx
$mip brick07 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/3_05stonewall2bb.pcx
$mip brick06 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/3_05stonewall2b.pcx
$mip brick05 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/3_05stonewall1ba.pcx
$mip brick04 0 0 64 64 stone
$load art/gfx/textures/Dungeon/final/3_05stonewall1b.pcx
$mip brick03 0 0 64 64 stone
$load art/gfx/textures/Dungeon/final/brick1b.pcx
$mip brick02 0 0 32 32 stone
$load art/gfx/textures/Dungeon/final/brick1a.pcx
$mip brick01 0 0 64 64 stone
$load art/gfx/textures/Dungeon/final/rockface4F.pcx
$mip Wall05 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/4_1newdunwall.pcx
$mip Wall04 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/3_6anwall4B.pcx
$mip Wall03 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/3_5grbrick.pcx
$mip Wall02 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/3_10brickB2.pcx
$mip Wall01 0 0 128 128 stone
;=================================================
;=================================================
; FLOORS
;=================================================
$load art/gfx/textures/Dungeon/final/7_29stonefloor1f.pcx
$mip brstonefl07 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/7_29stonefloor1e.pcx
$mip brstonefl06 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/7_29stonefloor1d.pcx
$mip brstonefl05 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/7_29stonefloor1c.pcx
$mip brstonefl04 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/7_29stonefloor1b.pcx
$mip brstonefl03 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/7_29stonefloor1a.pcx
$mip brstonefl02 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/7_29stonefloor1.pcx
$mip brstonefl01 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/7_30stonefloor4.pcx
$mip stonefl01 0 0 64 64 stone
$load art/gfx/textures/Dungeon/final/tile1dd.pcx
$mip tile04 0 0 32 32 stone
$load art/gfx/textures/Dungeon/final/tile1d.pcx
$mip tile03 0 0 64 64 stone
$load art/gfx/textures/Dungeon/final/tile1bb.pcx
$mip tile02 0 0 32 32 stone
$load art/gfx/textures/Dungeon/final/tile1b.pcx
$mip tile01 0 0 64 64 stone
$load art/gfx/textures/Dungeon/final/4_1newfloordkgry.pcx
$mip floor01 0 0 64 64 stone
;=================================================
;=================================================
; WATER(S)
;=================================================
$load art/gfx/textures/Dungeon/final/4_7hotlavaA.pcx
$mip lava02 0 0 64 64 warping lava
$load art/gfx/textures/Dungeon/final/4_7hotlava.pcx
$mip lava01 0 0 128 128 warping lava
;=================================================
;=================================================
; TRIM / DECORATIONS / DETAILS
;=================================================
$load art/gfx/textures/Dungeon/final/throwv3.pcx
$mip dunrelf04 0 0 64 128 stone
$load art/gfx/textures/Dungeon/final/throwcopy.pcx
$mip dunrelf03 0 0 64 128 stone
$load art/gfx/textures/Dungeon/final/throw-v2.pcx
$mip dunrelf02 0 0 64 128 stone
$load art/gfx/textures/Dungeon/final/dungeontomba.pcx
$mip dunrelf01 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/trim64v8.pcx
$mip duntrim09 0 0 64 64 stone
$load art/gfx/textures/Dungeon/final/trim64v7.pcx
$mip duntrim08 0 0 64 64 stone
$load art/gfx/textures/Dungeon/final/trim64v6.pcx
$mip duntrim07 0 0 64 64 stone
$load art/gfx/textures/Dungeon/final/trim64v5.pcx
$mip duntrim06 0 0 64 64 stone
$load art/gfx/textures/Dungeon/final/trim64v4.pcx
$mip duntrim05 0 0 64 64 stone
$load art/gfx/textures/Dungeon/final/trim64v3.pcx
$mip duntrim04 0 0 64 64 stone
$load art/gfx/textures/Dungeon/final/trim64v2.pcx
$mip duntrim03 0 0 64 64 stone
$load art/gfx/textures/Dungeon/final/7-29trim-2.pcx
$mip duntrim02 0 0 64 32 stone
$load art/gfx/textures/Dungeon/final/7-29trim.pcx
$mip duntrim01 0 0 64 32 stone
$load art/gfx/textures/Dungeon/final/8_4skultrim.pcx
$mip skultrim12 0 0 128 64 stone
$load art/gfx/textures/Dungeon/final/8_4skultrim6.pcx
$mip skultrim11 0 0 128 64 stone
$load art/gfx/textures/Dungeon/final/8_4skultrim5.pcx
$mip skultrim10 0 0 128 64 stone
$load art/gfx/textures/Dungeon/final/8_4skultrim4.pcx
$mip skultrim09 0 0 128 64 stone
$load art/gfx/textures/Dungeon/final/8_4skultrim3.pcx
$mip skultrim08 0 0 128 64 stone
$load art/gfx/textures/Dungeon/final/8_4skultrim2.pcx
$mip skultrim07 0 0 128 64 stone
$load art/gfx/textures/Dungeon/final/8_4skultrim.pcx
$mip skultrim06 0 0 128 64 stone
$load art/gfx/textures/Dungeon/final/8_4skulltrim5.pcx
$mip skultrim05 0 0 64 32 stone
$load art/gfx/textures/Dungeon/final/8_4skulltrim4.pcx
$mip skultrim04 0 0 64 32 stone
$load art/gfx/textures/Dungeon/final/8_4skulltrim3.pcx
$mip skultrim03 0 0 64 32 stone
$load art/gfx/textures/Dungeon/final/8_4skulltrim2.pcx
$mip skultrim02 0 0 64 32 stone
$load art/gfx/textures/Dungeon/final/8_4skulltrim.pcx
$mip skultrim01 0 0 64 32 stone
$load art/gfx/textures/Dungeon/final/8_12tools.pcx
$mip weptrim06 0 0 64 64 stone
$load art/gfx/textures/Dungeon/final/8-4weapon5.pcx
$mip weptrim05 0 0 64 32 stone
$load art/gfx/textures/Dungeon/final/8-4weapon4.pcx
$mip weptrim04 0 0 64 32 stone
$load art/gfx/textures/Dungeon/final/8-4weapon3.pcx
$mip weptrim03 0 0 64 32 stone
$load art/gfx/textures/Dungeon/final/8-4mace.pcx
$mip weptrim02 0 0 64 32 stone
$load art/gfx/textures/Dungeon/final/8-4knife.pcx
$mip weptrim01 0 0 64 32 stone
$load art/gfx/textures/Dungeon/final/borderc.pcx
$mip border02 0 0 64 32 stone
$load art/gfx/textures/Dungeon/final/bordera.pcx
$mip border01 0 0 64 32 stone
$load art/gfx/textures/Dungeon/final/sqtrimc3.pcx
$mip trim06 0 0 64 32 stone
$load art/gfx/textures/Dungeon/final/sqtrimc2.pcx
$mip trim05 0 0 128 64 stone
$load art/gfx/textures/Dungeon/final/sqtrimb.pcx
$mip trim04 0 0 64 32 stone
$load art/gfx/textures/Dungeon/final/sqtrima.pcx
$mip trim03 0 0 128 64 stone
$load art/gfx/textures/Dungeon/final/3_10trim3b.pcx
$mip trim02 0 0 32 16 stone
$load art/gfx/textures/Dungeon/final/3_10trim3a.pcx
$mip trim01 0 0 64 32 stone
;=================================================
;=================================================
; METALS
;=================================================
$load art/gfx/textures/Dungeon/final/8_5rustmetalbloodsplat128.pcx
$mip dunrust13 0 0 128 128 metal
$load art/gfx/textures/Dungeon/final/8_5rustmetalblooddrips128.pcx
$mip dunrust12 0 0 128 128 metal
$load art/gfx/textures/Dungeon/final/8_5rustmetal128.pcx
$mip dunrust11 0 0 128 128 metal
$load art/gfx/textures/Dungeon/final/8_4rusty2bloody.pcx
$mip dunrust10 0 0 64 64 metal
$load art/gfx/textures/Dungeon/final/8_4rusty128blooddrips.pcx
$mip dunrust09 0 0 128 128 metal
$load art/gfx/textures/Dungeon/final/8_4rusty1283bloodstain.pcx
$mip dunrust08 0 0 128 128 metal
$load art/gfx/textures/Dungeon/final/8_4rusty1282bloodstain.pcx
$mip dunrust07 0 0 128 128 metal
$load art/gfx/textures/Dungeon/final/8_4rusty1283.pcx
$mip dunrust06 0 0 128 128 metal
$load art/gfx/textures/Dungeon/final/8_4rusty1282.pcx
$mip dunrust05 0 0 128 128 metal
$load art/gfx/textures/Dungeon/final/8_4rusty128.pcx
$mip dunrust04 0 0 128 128 metal
$load art/gfx/textures/Dungeon/final/8_4rusty3.pcx
$mip dunrust03 0 0 64 64 metal
$load art/gfx/textures/Dungeon/final/8_4rusty2.pcx
$mip dunrust02 0 0 64 64 metal
$load art/gfx/textures/Dungeon/final/8_4rusty.pcx
$mip dunrust01 0 0 64 64 metal
;=================================================
;=================================================
; MISC.
;=================================================
$load art/gfx/textures/Dungeon/final/granite5c.pcx
$mip granite02 0 0 128 128 stone
$load art/gfx/textures/Dungeon/final/granite5.pcx
$mip granite01 0 0 128 128 stone
;=================================================

View file

@ -0,0 +1,177 @@
$load art/gfx/gamepal.lbm
$mippal
$mipdir General
;=================================================
; BRICKS AND STONES
;=================================================
$load art/gfx/textures/general/final/teleport.pcx
$mip teleport 0 0 128 128 stone
$load art/gfx/textures/General/final/yellow.pcx
$mip yellow 0 0 16 16
$load art/gfx/textures/General/final/white.pcx
$mip white 0 0 16 16
$load art/gfx/textures/general/final/gravel.pcx
$mip gravel 0 0 128 128 stone
$load art/gfx/textures/general/final/greyslate.pcx
$mip greyslate 0 0 128 128 stone
$load art/gfx/textures/general/final/rust1.pcx
$mip rock1 0 0 64 64 stone
$load art/gfx/textures/general/final/rust2.pcx
$mip rock2 0 0 256 128 stone
$load art/gfx/textures/general/final/scwall4.pcx
$mip rock3 0 0 128 128 stone
$load art/gfx/textures/general/final/brownslate.pcx
$mip rock4 0 0 128 128 stone
$load art/gfx/textures/general/final/rockwal1.pcx
$mip rockwal1 0 0 256 128 stone
$load art/gfx/textures/general/final/rockwal2.pcx
$mip rockwal2 0 0 256 128 stone
$load art/gfx/textures/general/final/rockwal3.pcx
$mip rockwal3 0 0 256 128 stone
$load art/gfx/textures/general/final/rockwal4.pcx
$mip rockwal4 0 0 128 128 stone
$load art/gfx/textures/general/final/rockwal5.pcx
$mip rockwal5 0 0 128 128 stone
$load art/gfx/textures/general/final/rockwal6.pcx
$mip rockwal6 0 0 64 64 stone
$load art/gfx/textures/general/final/sandwave.pcx
$mip sand1 0 0 128 128 stone
$load art/gfx/textures/general/final/blackflr.pcx
$mip stone3b 0 0 128 128 stone
$load art/gfx/textures/general/final/wooda.pcx
$mip wood5 0 0 128 128 wood
;=================================================
;=================================================
; WATER(S)
;=================================================
$load art/gfx/textures/general/final/water.pcx
$mip water8 0 0 128 128 water warping trans33 undulate
$load art/gfx/textures/general/final/water2b.pcx
$mip water7 0 0 128 128 water warping trans33 undulate
$load art/gfx/textures/general/final/water1g.pcx
$mip water6 0 0 128 128 water warping trans33 undulate
$load art/gfx/textures/general/final/water1e.pcx
$mip water5 0 0 128 128 water warping trans33 undulate
$load art/gfx/textures/general/final/water1a.pcx
$mip water4 0 0 128 128 water warping trans33 undulate
$load art/gfx/textures/general/final/water02.pcx
$mip water1 0 0 128 128 water warping trans33 undulate
$load art/gfx/textures/general/final/water02.pcx
$mip water2 0 0 128 128 water warping trans33 undulate
$load art/gfx/textures/general/final/water02.pcx
$mip water3 0 0 128 128 water warping trans33 undulate
$load art/gfx/textures/general/final/waterfast3.pcx
$mip waterfast4 0 0 128 128 anim waterfast1
$load art/gfx/textures/general/final/waterfast2.pcx
$mip waterfast3 0 0 128 128 anim waterfast4
$load art/gfx/textures/general/final/waterfast1.pcx
$mip waterfast2 0 0 128 128 anim waterfast3
$load art/gfx/textures/general/final/waterfast.pcx
$mip waterfast1 0 0 128 128 anim waterfast2 animspeed 15
;=================================================
;=================================================
; TRIM / DECORATIONS / DETAILS
;=================================================
;=================================================
;=================================================
; MISC.
;=================================================
$load art/gfx/textures/General/final/clip.pcx
$mip clip 0 0 64 64 nodraw playerclip
$load art/gfx/textures/General/final/noclip.pcx
$mip noclip 0 0 64 64 nodraw
$load art/gfx/textures/General/final/trigger.pcx
$mip trigger 0 0 64 64 nodraw
$load art/gfx/textures/General/final/hint.pcx
$mip hint 0 0 64 64 hint
$load art/gfx/textures/General/final/origin.pcx
$mip origin 0 0 64 64 origin
$load art/gfx/textures/General/final/sky2.pcx
$mip sky2 0 0 64 64 sky
$load art/gfx/textures/General/final/sky.pcx
$mip sky 0 0 64 64 sky
$load art/gfx/textures/General/final/128.pcx
$mip 128 0 0 128 128
$load art/gfx/textures/General/final/64.pcx
$mip 64 0 0 64 64
$load art/gfx/textures/General/final/32.pcx
$mip 32 0 0 32 32
$load art/gfx/textures/General/final/16.pcx
$mip 16 0 0 16 16
$load art/gfx/textures/General/final/notex.pcx
$mip notex 0 0 64 64
$load art/gfx/textures/General/final/mat.pcx
$mip mat 0 0 128 256
;=================================================
$load art/gfx/textures/general/final/water.pcx
$mip slime 0 0 128 128 slime warping trans33
$load art/gfx/textures/crate.pcx
$mip pushpull 0 0 64 64 stone
$load art/gfx/textures/8-12testcrate1.pcx
$mip pushpull1 0 0 64 64 stone
$load art/gfx/textures/8-12testcrate2.pcx
$mip pushpull2 0 0 64 64 stone

View file

@ -0,0 +1,870 @@
$load art/gfx/gamepal.lbm
$mippal
$mipdir Insect
;=================================================
; WALL(S)
;=================================================
$load art/gfx/textures/Insect/final/bleachers.pcx
$mip bleachers 0 0 256 256 stone
$load art/gfx/textures/Insect/final/9_11floordoor.pcx
$mip floordoor 0 0 64 128 stone
$load art/gfx/textures/Insect/final/8_25pipe2.pcx
$mip hivemetal4 0 0 64 32 metal
$load art/gfx/textures/Insect/final/8_25pipe1.pcx
$mip hivemetal3 0 0 64 32 metal
$load art/gfx/textures/Insect/final/8_25metal2.pcx
$mip hivemetal2 0 0 128 128 metal
$load art/gfx/textures/Insect/final/8_25metal1.pcx
$mip hivemetal1 0 0 128 128 metal
$load art/gfx/textures/Insect/final/7_9stone1w_crackv3.pcx
$mip hivewall25 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_24pattern1b.pcx
$mip hivewall24 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_24pattern1a.pcx
$mip hivewall23 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_28wall8e.pcx
$mip hivewall22 0 0 64 128 stone
$load art/gfx/textures/Insect/final/7_28wall8d.pcx
$mip hivewall21 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_17wackychit.pcx
$mip hivewall20 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_8gmwall2.pcx
$mip hivewall19 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_6wall8b.pcx
$mip hivewall18 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_6wall8.pcx
$mip hivewall17 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_6wall4.pcx
$mip hivewall16 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_10weirdwall2.pcx
$mip hivewall15 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_14wallgouge.pcx
$mip hivewall14 0 0 64 64 stone
load art/gfx/textures/Insect/final/7_13gouge2.pcx
$mip hivewall13 0 0 64 64 stone
$load art/gfx/textures/Insect/final/7_13chitwall.pcx
$mip hivewall12 0 0 128 128 stone
$load art/gfx/textures/Insect/final/bugwall.pcx
$mip hivewall11 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_9gougewall.pcx
$mip hivewall10 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_9chitwall.pcx
$mip hivewall09 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_7wall10.pcx
$mip hivewall08 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_6wall8c.pcx
$mip hivewall07 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_6wall7.pcx
$mip hivewall06 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_6wall6b.pcx
$mip hivewall05 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_6wall6.pcx
$mip hivewall04 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_6wall5.pcx
$mip hivewall03 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_2wall1.pcx
$mip hivewall02 0 0 256 256 stone
$load art/gfx/textures/Insect/final/7-9rockwall-v3.pcx
$mip hivewall01 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_24pattern2.pcx
$mip patternwall10 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_24pattern1.pcx
$mip patternwall09 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-78hive-3v2.pcx
$mip patternwall08 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_8gwallcarve1.pcx
$mip patternwall07 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_8gsetwalla.pcx
$mip patternwall06 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_8gfosswall2.pcx
$mip patternwall05a 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_8gfosswall1.pcx
$mip patternwall05 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_7wall11.pcx
$mip patternwall04 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_7gwallpattern5.pcx
$mip patternwall03 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_6gwallpattern4.pcx
$mip patternwall02 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_6gwallpattern3.pcx
$mip patternwall01 0 0 128 128 stone
;=================================================
;=================================================
; FLOOR(S)
;=================================================
$load art/gfx/textures/Insect/final/s4-64.pcx
$mip hivefloor04 0 0 64 64 stone
$load art/gfx/textures/Insect/final/7_13rockfloor.pcx
$mip hivefloor03 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_10bugfloord.pcx
$mip hivefloor02 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_10bugfloorb.pcx
$mip hivefloor01 0 0 128 128 stone
;=================================================
;=================================================
; ROCK(S)
;=================================================
$load art/gfx/textures/Insect/final/7_9stone2c.pcx
$mip hiverock38 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_8hivetex2.pcx
$mip hiverock37 0 0 64 64 stone
$load art/gfx/textures/Insect/final/7_8hive2.pcx
$mip hiverock36 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_8hive.pcx
$mip hiverock35 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_7wallbump7b.pcx
$mip hiverock34 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_7wallbump5b-128.pcx
$mip hiverock33 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_7wallbump4c-128.pcx
$mip hiverock32 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_13hivelayer.pcx
$mip hiverock31 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_10wallrock1.pcx
$mip hiverock30 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_10bugrocka.pcx
$mip hiverock29 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_9stone3c.pcx
$mip hiverock28 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_9stone3b.pcx
$mip hiverock27 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_9stone2d.pcx
$mip hiverock26 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_9stone2b.pcx
$mip hiverock25 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_9stone1.pcx
$mip hiverock24 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_8wallabump8c.pcx
$mip hiverock23 0 0 256 256 stone
$load art/gfx/textures/Insect/final/7_8hivetex7.pcx
$mip hiverock22 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_8hivetex.pcx
$mip hiverock21 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_7wallbump7.pcx
$mip hiverock20 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_7wallbump6c.pcx
$mip hiverock19 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_7wallbump6.pcx
$mip hiverock18 0 0 256 256 stone
$load art/gfx/textures/Insect/final/7_7wallbump5b.pcx
$mip hiverock17 0 0 256 256 stone
$load art/gfx/textures/Insect/final/7_7wallbump5.pcx
$mip hiverock16 0 0 256 256 stone
$load art/gfx/textures/Insect/final/7_7wallbump4c.pcx
$mip hiverock15 0 0 256 256 stone
$load art/gfx/textures/Insect/final/7_7wallbump4b.pcx
$mip hiverock14 0 0 256 256 stone
$load art/gfx/textures/Insect/final/7_7wallbump4.pcx
$mip hiverock13 0 0 256 256 stone
$load art/gfx/textures/Insect/final/7_7wallbump1c.pcx
$mip hiverock12 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_7wallbump1b.pcx
$mip hiverock11 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_7hivea.pcx
$mip hiverock10 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_7hive.pcx
$mip hiverock09 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_7gwallpattern4.pcx
$mip hiverock08 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_7gpattern7.pcx
$mip hiverock07 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_7gpattern6.pcx
$mip hiverock06 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_7gmoldrock.pcx
$mip hiverock05 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-7hive-k-v3gbump.pcx
$mip hiverock04 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-7hive-k-v3.pcx
$mip hiverock03 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-7hive-k-v-2.pcx
$mip hiverock02 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-6mhivetill.pcx
$mip hiverock01 0 0 128 128 stone
;=================================================
;=================================================
; TRIM / DECORATIONS / DETAILS
;=================================================
$load art/gfx/textures/Insect/final/hivedoor4.pcx
$mip hivedoor04 0 0 64 64 stone
$load art/gfx/textures/Insect/final/hivedoor3.pcx
$mip hivedoor03 0 0 128 128 stone
$load art/gfx/textures/Insect/final/8_27hivedoor2.pcx
$mip hivedoor02 0 0 64 64 stone
$load art/gfx/textures/Insect/final/8_27hivedoor1.pcx
$mip hivedoor01 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_30tunneltop1.pcx
$mip tunneltop01 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_24bugfrieze_base.pcx
$mip frieze08 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_25bugfrieze7.pcx
$mip frieze07 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_25bugfrieze6.pcx
$mip frieze06 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_24bugfrieze5.pcx
$mip frieze05 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_24bugfrieze4.pcx
$mip frieze04 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_24bugfrieze3.pcx
$mip frieze03 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_24bugfrieze2.pcx
$mip frieze02 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_24bugfrieze1.pcx
$mip frieze01 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-27coffinletter2v4.pcx
$mip carving19 0 0 32 32 stone
$load art/gfx/textures/Insect/final/7-27coffinletter2v2.pcx
$mip carving18 0 0 32 32 stone
$load art/gfx/textures/Insect/final/7-27coffinletterv5d.pcx
$mip carving17 0 0 32 32 stone
$load art/gfx/textures/Insect/final/7-17coffinborderv4.pcx
$mip carving16 0 0 64 32 stone
$load art/gfx/textures/Insect/final/7-17coffinborderv3.pcx
$mip carving15 0 0 64 32 stone
$load art/gfx/textures/Insect/final/7-17coffinborderv2.pcx
$mip carving14 0 0 64 32 stone
$load art/gfx/textures/Insect/final/7-20coffinletters2.pcx
$mip carving13 0 0 32 32 stone
$load art/gfx/textures/Insect/final/7-17coffinletters1.pcx
$mip carving12 0 0 32 32 stone
$load art/gfx/textures/Insect/final/7-17coffinletter.pcx
$mip carving11 0 0 32 32 stone
$load art/gfx/textures/Insect/final/7-17coffinletterv5b.pcx
$mip carving10 0 0 32 32 stone
$load art/gfx/textures/Insect/final/7-17coffinletterv5.pcx
$mip carving09 0 0 32 32 stone
$load art/gfx/textures/Insect/final/7-17coffinletterv4.pcx
$mip carving08 0 0 32 32 stone
$load art/gfx/textures/Insect/final/7-17coffinldecor.pcx
$mip carving07 0 0 64 32 stone
$load art/gfx/textures/Insect/final/7-17coffinletterv2.pcx
$mip carving06 0 0 32 32 stone
$load art/gfx/textures/Insect/final/7-17coffinletterv3.pcx
$mip carving05 0 0 32 32 stone
$load art/gfx/textures/Insect/final/7_16carvings3.pcx
$mip carving04 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_15carvings4.pcx
$mip carving03 0 0 32 32 stone
$load art/gfx/textures/Insect/final/7_15carvings2.pcx
$mip carving02 0 0 128 64 stone
$load art/gfx/textures/Insect/final/7_15carvings1.pcx
$mip carving01 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_30verticaltrim2.pcx
$mip column03 0 0 64 128 stone
$load art/gfx/textures/Insect/final/7_15column1base.pcx
$mip column02 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_14column1.pcx
$mip column01 0 0 64 256 stone
$load art/gfx/textures/Insect/final/7_8skullhole1.pcx
$mip hivedecor02 0 0 64 64 stone
$load art/gfx/textures/Insect/final/7_6hiveage128.pcx
$mip hivedecor01 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-15hiveborderv1.pcx
$mip hiveborder11 0 0 32 16 stone
$load art/gfx/textures/Insect/final/7-15hiveborderv2.pcx
$mip hiveborder10 0 0 32 16 stone
$load art/gfx/textures/Insect/final/7-15hiveboderv3.pcx
$mip hiveborder09 0 0 32 16 stone
$load art/gfx/textures/Insect/final/7-15borderv5-2.pcx
$mip hiveborder08 0 0 64 32 stone
$load art/gfx/textures/Insect/final/7_13gbugtrim2.pcx
$mip hiveborder07 0 0 64 32 stone
$load art/gfx/textures/Insect/final/7-10twistv3.pcx
$mip hiveborder06 0 0 64 64 stone
$load art/gfx/textures/Insect/final/7-10borderv3.pcx
$mip hiveborder05 0 0 64 64 stone
$load art/gfx/textures/Insect/final/7_13gbugtrim.pcx
$mip hiveborder04 0 0 64 32 stone
$load art/gfx/textures/Insect/final/7_13gbonetrim2.pcx
$mip hiveborder03 0 0 64 32 stone
$load art/gfx/textures/Insect/final/7_13gbonetrim.pcx
$mip hiveborder02 0 0 64 32 stone
$load art/gfx/textures/Insect/final/7-8hive-border.pcx
$mip hiveborder01 0 0 64 32 stone
$load art/gfx/textures/Insect/final/7_30trim2base.pcx
$mip hivetrim16 0 0 64 64 stone
$load art/gfx/textures/Insect/final/7_28gbugtrim.pcx
$mip hivetrim15 0 0 64 32 stone
$load art/gfx/textures/Insect/final/7_24trimberry.pcx
$mip hivetrim14 0 0 64 64 stone
$load art/gfx/textures/Insect/final/7_24trim2.pcx
$mip hivetrim13 0 0 64 16 stone
$load art/gfx/textures/Insect/final/7_24trim1.pcx
$mip hivetrim12 0 0 32 32 stone
$load art/gfx/textures/Insect/final/7_24mattrim.pcx
$mip hivetrim11 0 0 64 64 stone
$load art/gfx/textures/Insect/final/7_9gougetrim3.pcx
$mip hivetrim10 0 0 64 32 stone
$load art/gfx/textures/Insect/final/7_9gougetrim2.pcx
$mip hivetrim09 0 0 128 32 stone
$load art/gfx/textures/Insect/final/7_14trimshot2.pcx
$mip hivetrim08 0 0 64 64 stone
$load art/gfx/textures/Insect/final/7_14trimshot1.pcx
$mip hivetrim07 0 0 64 64 stone
$load art/gfx/textures/Insect/final/7_14trimshot.pcx
$mip hivetrim06 0 0 64 64 stone
$load art/gfx/textures/Insect/final/7_13trim5.pcx
$mip hivetrim05 0 0 128 32 stone
$load art/gfx/textures/Insect/final/7_13trim4.pcx
$mip hivetrim04 0 0 128 32 stone
$load art/gfx/textures/Insect/final/7_13trim3.pcx
$mip hivetrim03 0 0 128 32 stone
$load art/gfx/textures/Insect/final/7_13trim2.pcx
$mip hivetrim02 0 0 128 32 stone
$load art/gfx/textures/Insect/final/7_13gtrim3.pcx
$mip hivetrim01 0 0 64 32 stone
$load art/gfx/textures/Insect/final/7_14verticaltrim1.pcx
$mip verttrim01 0 0 64 128 stone
;=================================================
;=================================================
; MISC.
;=================================================
$load art/gfx/textures/Insect/final/9_7pushblock2.pcx
$mip hvpushpull 0 0 64 64 stone
$load art/gfx/textures/Insect/final/8_4gauntflrc.pcx
$mip gauntflr04 0 0 128 128 stone
$load art/gfx/textures/Insect/final/8_4gauntflrb.pcx
$mip gauntflr03 0 0 128 128 stone
$load art/gfx/textures/Insect/final/8_4gauntflr.pcx
$mip gauntflr02 0 0 128 128 stone
$load art/gfx/textures/Insect/final/8_4floor.pcx
$mip gauntflr01 0 0 128 128 stone
$load art/gfx/textures/Insect/final/skullbutton2.pcx
$mip skullbutton02 0 0 32 32 stone
$load art/gfx/textures/Insect/final/skullbutton.pcx
$mip skullbutton01 0 0 32 32 stone
;=================================================
;=================================================
; HIGH PRIESTESS MISC.
;=================================================
$load art/gfx/textures/Insect/final/8_4halltrim.pcx
$mip hptrim01 0 0 128 16 stone
$load art/gfx/textures/Insect/final/7_21strutbase.pcx
$mip hpbase01 0 0 32 64 stone
$load art/gfx/textures/Insect/final/7_30hallarch3.pcx
$mip hparch04 0 0 128 64 stone
$load art/gfx/textures/Insect/final/7_30hallarch2.pcx
$mip hparch03 0 0 64 64 stone
$load art/gfx/textures/Insect/final/7_30hallarch1.pcx
$mip hparch02 0 0 32 64 stone
$load art/gfx/textures/Insect/final/7_30hallarch.pcx
$mip hparch01 0 0 32 64 stone
$load art/gfx/textures/Insect/final/hpcolum4.pcx
$mip hpcolumn08 0 0 64 128 stone
$load art/gfx/textures/Insect/final/hpcolum3.pcx
$mip hpcolumn07 0 0 64 128 stone
$load art/gfx/textures/Insect/final/hpcolum2.pcx
$mip hpcolumn06 0 0 64 128 stone
$load art/gfx/textures/Insect/final/hpcolum.pcx
$mip hpcolumn05 0 0 64 128 stone
$load art/gfx/textures/Insect/final/7_23column4.pcx
$mip hpcolumn04 0 0 32 32 stone
$load art/gfx/textures/Insect/final/7_23column3.pcx
$mip hpcolumn03 0 0 32 64 stone
$load art/gfx/textures/Insect/final/7_23column2.pcx
$mip hpcolumn02 0 0 64 32 stone
$load art/gfx/textures/Insect/final/7_23column1.pcx
$mip hpcolumn01 0 0 32 128 stone
;=================================================
;=================================================
; HIGH PRIESTESS WALLS
;=================================================
$load art/gfx/textures/Insect/final/7_21eggwall3.pcx
$mip hpeggwall02 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_21eggwall2.pcx
$mip hpeggwall01 0 0 128 128 stone
$load art/gfx/textures/Insect/final/qeenhivewall-6b.pcx
$mip hpqwall20 0 0 128 128 stone
$load art/gfx/textures/Insect/final/qeenhivewall-6a.pcx
$mip hpqwall19 0 0 128 128 stone
$load art/gfx/textures/Insect/final/hpwalltex7a.pcx
$mip hpqwall18 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_24hivetex3.pcx
$mip hpqwall17 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_24hivetex2.pcx
$mip hpqwall16 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_24crabtex1.pcx
$mip hpqwall15 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_24crabtex.pcx
$mip hpqwall14 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_24buggage.pcx
$mip hpqwall13 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-24hpwalltex7.pcx
$mip hpqwall12 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-24hpwalltex6.pcx
$mip hpqwall11 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-24hpwalltex5.pcx
$mip hpqwall10 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-24hpwalltex3.pcx
$mip hpqwall09 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-24hpwalltex2bmp.pcx
$mip hpqwall08 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-24hpwalltex2.pcx
$mip hpqwall07 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-22qeenhivewall-6.pcx
$mip hpqwall06 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-22qeenhivewall-5.pcx
$mip hpqwall05 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-22qeenhivewall-4.pcx
$mip hpqwall04 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-22qeenhivewall-3.pcx
$mip hpqwall03 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-22qeenhivewall-2.pcx
$mip hpqwall02 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-22qeenhivewall-1.pcx
$mip hpqwall01 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_24exocasing.pcx
$mip hpvegwall04 0 0 64 64 stone
$load art/gfx/textures/Insect/final/7_24exberry2.pcx
$mip hpvegwall03 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_24exberry.pcx
$mip hpvegwall02 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_24exbean.pcx
$mip hpvegwall01 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_23hallbase12.pcx
$mip hphall12 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_23hallbase11.pcx
$mip hphall11 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_23hallbase10.pcx
$mip hphall10 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_23hallbase9.pcx
$mip hphall09 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_23hallbase8.pcx
$mip hphall08 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_29halltrim.pcx
$mip hphall07a 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_23hallbase7.pcx
$mip hphall07 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_23hallbase6.pcx
$mip hphall06 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_23hallbase5.pcx
$mip hphall05 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_23hallbase2.pcx
$mip hphall04 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_23hallbase3.pcx
$mip hphall03 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_23hallbase4.pcx
$mip hphall02 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_20hallbase.pcx
$mip hphall01 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_22hivegooglies.pcx
$mip hpgoo03 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-24frap-abmp.pcx
$mip hpgoo02 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7-24frap-a.pcx
$mip hpgoo01 0 0 128 128 stone
;=================================================
$load art/gfx/textures/Insect/final/40hipriestess.pcx
$mip hp40 0 0 64 64 stone
$load art/gfx/textures/Insect/final/39hipriestess.pcx
$mip hp39 0 0 128 128 stone
$load art/gfx/textures/Insect/final/38hipriestess.pcx
$mip hp38 0 0 128 128 stone
$load art/gfx/textures/Insect/final/37hipriestess.pcx
$mip hp37 0 0 64 32 stone
$load art/gfx/textures/Insect/final/36hipriestess.pcx
$mip hp36 0 0 128 128 stone
$load art/gfx/textures/Insect/final/35hipriestess.pcx
$mip hp35 0 0 64 32 stone
$load art/gfx/textures/Insect/final/34hipriestess.pcx
$mip hp34 0 0 128 128 stone
$load art/gfx/textures/Insect/final/33hipriestess.pcx
$mip hp33 0 0 128 128 stone
$load art/gfx/textures/Insect/final/32hipriestess.pcx
$mip hp32 0 0 128 128 stone
$load art/gfx/textures/Insect/final/31hipriestess.pcx
$mip hp31 0 0 128 128 stone
$load art/gfx/textures/Insect/final/30hipriestess.pcx
$mip hp30 0 0 128 128 stone
$load art/gfx/textures/Insect/final/29hipriestess.pcx
$mip hp29 0 0 128 128 stone
$load art/gfx/textures/Insect/final/28hipriestess.pcx
$mip hp28 0 0 128 128 stone
$load art/gfx/textures/Insect/final/27hipriestess.pcx
$mip hp27 0 0 128 128 stone
$load art/gfx/textures/Insect/final/26hipriestess.pcx
$mip hp26 0 0 128 128 stone
$load art/gfx/textures/Insect/final/25hipriestess.pcx
$mip hp25 0 0 128 128 stone
$load art/gfx/textures/Insect/final/24hipriestess.pcx
$mip hp24 0 0 128 128 stone
$load art/gfx/textures/Insect/final/23hipriestess.pcx
$mip hp23 0 0 128 128 stone
$load art/gfx/textures/Insect/final/22hipriestess.pcx
$mip hp22 0 0 128 128 stone
$load art/gfx/textures/Insect/final/21hipriestess.pcx
$mip hp21 0 0 128 128 stone
$load art/gfx/textures/Insect/final/20hipriestess.pcx
$mip hp20 0 0 128 128 stone
$load art/gfx/textures/Insect/final/19hipriestess.pcx
$mip hp19 0 0 128 128 stone
$load art/gfx/textures/Insect/final/18hipriestess.pcx
$mip hp18 0 0 128 128 stone
$load art/gfx/textures/Insect/final/17hipriestess.pcx
$mip hp17 0 0 128 128 stone
$load art/gfx/textures/Insect/final/16hipriestess.pcx
$mip hp16 0 0 128 128 stone
$load art/gfx/textures/Insect/final/15hipriestess.pcx
$mip hp15 0 0 64 256 stone
$load art/gfx/textures/Insect/final/14hipriestess.pcx
$mip hp14 0 0 128 64 stone
$load art/gfx/textures/Insect/final/13hipriestess.pcx
$mip hp13 0 0 128 128 stone
$load art/gfx/textures/Insect/final/12hipriestess.pcx
$mip hp12 0 0 128 128 stone
$load art/gfx/textures/Insect/final/11hipriestess.pcx
$mip hp11 0 0 128 128 stone
$load art/gfx/textures/Insect/final/10hipriestess.pcx
$mip hp10 0 0 128 128 stone
$load art/gfx/textures/Insect/final/09hipriestess.pcx
$mip hp09 0 0 128 128 stone
$load art/gfx/textures/Insect/final/08hipriestess.pcx
$mip hp08 0 0 128 128 stone
$load art/gfx/textures/Insect/final/07hipriestess.pcx
$mip hp07 0 0 64 32 stone
$load art/gfx/textures/Insect/final/06hipriestess.pcx
$mip hp06 0 0 64 32 stone
;$load art/gfx/textures/Insect/final/05hipriestess.pcx
;$mip hp05 0 0 64 64 stone
;$load art/gfx/textures/Insect/final/04hipriestess.pcx
;$mip hp04 0 0 64 64 stone
;$load art/gfx/textures/Insect/final/03hipriestess.pcx
;$mip hp03 0 0 64 64 stone
;$load art/gfx/textures/Insect/final/02hipriestess.pcx
;$mip hp02 0 0 64 64 stone
$load art/gfx/textures/Insect/final/01hipriestess.pcx
$mip hp01 0 0 128 128 stone
;=================================================
;=================================================
; TRIAL PIT
;=================================================
$load art/gfx/textures/Insect/final/8_3pitsmallerdoor1.pcx
$mip trialsmdr 0 0 128 64 stone
$load art/gfx/textures/Insect/final/7_31doorbottom.pcx
$mip trialdrbtm 0 0 256 256 stone
$load art/gfx/textures/Insect/final/7_31doortop.pcx
$mip trialdrtop 0 0 128 128 stone
$load art/gfx/textures/Insect/final/8_3pittrim1a.pcx
$mip trialtrim04 0 0 64 64 stone
$load art/gfx/textures/Insect/final/8_3kimtrim.pcx
$mip trialtrim03 0 0 128 64 stone
$load art/gfx/textures/Insect/final/7_31pittrim2.pcx
$mip trialtrim02 0 0 64 64 stone
$load art/gfx/textures/Insect/final/7_31pittrim1.pcx
$mip trialtrim01 0 0 128 64 stone
$load art/gfx/textures/Insect/final/7_31pitwall4.pcx
$mip trialwall02 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_31pitwall3.pcx
$mip trialwall01 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_31doortop.pcx
$mip trialdrtop 0 0 128 128 stone
;=================================================
=================================================
; GAUNTLET
=================================================
$load art/gfx/textures/Insect/final/8_13blade_ofobs.pcx
$mip blade01 0 0 64 64 stone
$load art/gfx/textures/Insect/final/7_9stone1w_crack.pcx
$mip crkstone01 0 0 128 128 stone
$load art/gfx/textures/Insect/final/7_9stone1w_crackv2.pcx
$mip crkstone02 0 0 128 128 stone
$load art/gfx/textures/Insect/final/8_11gbslime.pcx
$mip bugslime02 0 0 128 128 warping slime
$load art/gfx/textures/Insect/final/8_11bgslime.pcx
$mip bugslime01 0 0 128 128 warping slime
$load art/gfx/textures/Insect/final/8_11lumgoo64v2.pcx
$mip light04 0 0 64 32
$load art/gfx/textures/Insect/final/8_11lumgoo64.pcx
$mip light03 0 0 64 32
$load art/gfx/textures/Insect/final/8_11lumgoo32v2.pcx
$mip light02 0 0 32 32
$load art/gfx/textures/Insect/final/8_11lumgoo32.pcx
$mip light01 0 0 32 32
;=================================================

View file

@ -0,0 +1,465 @@
$load art/gfx/gamepal.lbm
$mippal
$mipdir Mines
;=================================================
; PUMP AND CART
;=================================================
;load art/gfx/textures/Mines/final/pheadtop.pcx
;$mip pumphead02 0 0 64 64 metal
;load art/gfx/textures/Mines/final/pheadbottom.pcx
;$mip pumphead01 0 0 64 16 metal
$load art/gfx/textures/Mines/final/pheadtop.pcx
$mip pumphed02 0 0 64 64 metal
$load art/gfx/textures/Mines/final/pheadbottom.pcx
$mip pumphed01 0 0 64 16 metal
$load art/gfx/textures/Mines/final/pumpblocktop.pcx
$mip pumpbloc02 0 0 64 64 metal
$load art/gfx/textures/Mines/final/pumpblockbottom.pcx
$mip pumpbloc01 0 0 64 128 metal
$load art/gfx/textures/Mines/final/pumpaxle.pcx
$mip pumpaxle01 0 0 64 64 metal
$load art/gfx/textures/Mines/final/pumparmend.pcx
$mip pumparm02 0 0 64 32 metal
$load art/gfx/textures/Mines/final/pumparmbigend.pcx
$mip pumparm01 0 0 64 32 metal
$load art/gfx/textures/Mines/final/wheel1.pcx
$mip cartwheel01 0 0 32 32 metal
$load art/gfx/textures/Mines/final/cartfloor.pcx
$mip cartfl01 0 0 32 32 metal
$load art/gfx/textures/Mines/final/cartedge.pcx
$mip cartedge01 0 0 32 32 metal
;=================================================
; TRACKS
;=================================================
$load art/gfx/textures/Mines/final/6_17minetrakalter.pcx
$mip newtrack06 0 0 64 64 stone
$load art/gfx/textures/Mines/final/7_1woodbridgetraccenteralter.pcx
$mip newtrack05 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_1woodbridgetracleftalter.pcx
$mip newtrack04 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_1woodbridgetracrightalter.pcx
$mip newtrack03 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_2groundtraccurvealter.pcx
$mip newtrack02 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_2woodtraxcurvealter.pcx
$mip newtrack01 0 0 128 128 stone
;=================================================
; EARTHBLOOD
;=================================================
$load art/gfx/textures/Mines/final/erthblud4-128.pcx
$mip newearbl4 0 0 128 128 lava anim newearbl1
$load art/gfx/textures/Mines/final/erthblud3-128.pcx
$mip newearbl3 0 0 128 128 lava anim newearbl4
$load art/gfx/textures/Mines/final/erthblud2-128.pcx
$mip newearbl2 0 0 128 128 lava anim newearbl3
$load art/gfx/textures/Mines/final/erthblud1-128.pcx
$mip newearbl1 0 0 128 128 lava anim newearbl2 animspeed 6
$load art/gfx/textures/Mines/final/4_20earthblood.pcx
$mip earthbl6 0 0 128 128 lava warping
$load art/gfx/textures/Mines/final/7_7neweblood.pcx
$mip earthbl5 0 0 128 128 lava warping
$load art/gfx/textures/Mines/final/6_16earthblood.pcx
$mip earthbl4 0 0 128 128 lava warping
$load art/gfx/textures/Mines/final/6_16earthblood2.pcx
$mip earthbl3 0 0 128 128 lava warping
$load art/gfx/textures/Mines/final/6_16earthblud.pcx
$mip earthbl2 0 0 64 64 lava warping
$load art/gfx/textures/Mines/final/6_16earthbluda.pcx
$mip earthbl1 0 0 64 64 lava warping
;=================================================
;=================================================
; BRICKS AND STONES
;=================================================
$load art/gfx/textures/Mines/final/4_15gravel2.pcx
$mip gravel 0 0 64 64 stone
$load art/gfx/textures/Mines/final/2cave1.pcx
$mip cave1 0 0 128 128 stone
$load art/gfx/textures/Mines/final/2cave3.pcx
$mip cave3 0 0 128 128 stone
$load art/gfx/textures/Mines/final/2cave4.pcx
$mip cave4 0 0 128 128 stone
$load art/gfx/textures/Mines/final/2orngerk.pcx
$mip cave5 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_1flatwallrubblebase.pcx
$mip flatwallbs 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_1flatwall.pcx
$mip flatwall 0 0 128 128 stone
$load art/gfx/textures/Mines/final/6_30boulderwallbase2.pcx
$mip minerkbase3 0 0 128 128 stone
$load art/gfx/textures/Mines/final/6_30boulderwallbase1.pcx
$mip minerkbase2 0 0 128 128 stone
$load art/gfx/textures/Mines/final/6_30boulderwallbase.pcx
$mip minerkbase1 0 0 128 128 stone
$load art/gfx/textures/Mines/final/6_30boulderwall2.pcx
$mip minerock11 0 0 128 128 stone
$load art/gfx/textures/Mines/final/6_30boulderwall.pcx
$mip minerock10 0 0 128 128 stone
$load art/gfx/textures/Mines/final/gcan12newa.pcx
$mip minerock9 0 0 128 128 stone
$load art/gfx/textures/Mines/final/6_23rwall2b.pcx
$mip minerock8 0 0 128 128 stone
$load art/gfx/textures/Mines/final/6_23morewal.pcx
$mip minerock7 0 0 128 128 stone
$load art/gfx/textures/Mines/final/6_23minerok.pcx
$mip minerock6 0 0 128 128 stone
$load art/gfx/textures/Mines/final/6_22orewall.pcx
$mip minerock5 0 0 128 128 stone
$load art/gfx/textures/Mines/final/6_18wall.pcx
$mip minerock4 0 0 128 128 stone
$load art/gfx/textures/Mines/final/6_17rockwall2.pcx
$mip minerock3 0 0 128 128 stone
$load art/gfx/textures/Mines/final/6_17rockwall1.pcx
$mip minerock2 0 0 128 128 stone
$load art/gfx/textures/Mines/final/6_17g128.pcx
$mip minerock1 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_6newwallf.pcx
$mip newminerk6 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_6newwalle.pcx
$mip newminerk5 0 0 256 256 stone
$load art/gfx/textures/Mines/final/7_6newwalld.pcx
$mip newminerk4 0 0 256 256 stone
$load art/gfx/textures/Mines/final/7_6newwallc.pcx
$mip newminerk3 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_6newwallb.pcx
$mip newminerk2 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_6newwalla.pcx
$mip newminerk1 0 0 256 256 stone
$load art/gfx/textures/Mines/final/6_17rockbridge.pcx
$mip minebrdge1 0 0 128 128 stone
$load art/gfx/textures/Mines/final/6_17rockbridge2.pcx
$mip minebrdge2 0 0 128 64 stone
;=================================================
;=================================================
; FLOOR(S)
;=================================================
$load art/gfx/textures/Mines/final/7_1rockfloor1tranleft.pcx
$mip floorleft 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_1rockfloor1tranrightpeak.pcx
$mip floorrightpeak 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_1rockfloor1transbottom.pcx
$mip floorbottom 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_1rockfloortrancorner.pcx
$mip floorcorner 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_1rockfloortranleft.pcx
$mip floorleft1 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_1rockfloortranright.pcx
$mip floorright 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_1rockfloortrans2bottom.pcx
$mip floorbottom1 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_1rockfloortrantop.pcx
$mip floortop 0 0 128 128 stone
$load art/gfx/textures/Mines/final/6_18grockydirt1.pcx
$mip minefloor5 0 0 128 128 stone
$load art/gfx/textures/Mines/final/6_17rockfloor2.pcx
$mip minefloor4 0 0 128 128 stone
$load art/gfx/textures/Mines/final/6_17rockfloor1.pcx
$mip minefloor3 0 0 128 128 stone
$load art/gfx/textures/Mines/final/6_17rockfloor.pcx
$mip minefloor2 0 0 128 128 stone
$load art/gfx/textures/Mines/final/6_17jgground.pcx
$mip minefloor1 0 0 64 64 stone
$load art/gfx/textures/Mines/final/6_17minetrak1.pcx
$mip minetrack1 0 0 64 64 wood
$load art/gfx/textures/Mines/final/7_6newgravel.pcx
$mip newminefl6 0 0 64 64 stone
$load art/gfx/textures/Mines/final/7_6newfloorf.pcx
$mip newminefl5 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_6newfloord.pcx
$mip newminefl4 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_6newfloorc.pcx
$mip newminefl3 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_6newfloorb.pcx
$mip newminefl2 0 0 128 128 stone
$load art/gfx/textures/Mines/final/7_6newfloora.pcx
$mip newminefl1 0 0 64 64 stone
;=================================================
;=================================================
; METAL(S)
;=================================================
$load art/gfx/textures/Mines/final/7_1metal2.pcx
$mip metal2 0 0 32 32 metal
$load art/gfx/textures/Mines/final/7_1metal.pcx
$mip metal1 0 0 32 32 metal
$load art/gfx/textures/Mines/final/6_23baseplate.pcx
$mip plate1 0 0 64 64 metal
$load art/gfx/textures/Mines/final/6_24pipe9.pcx
$mip pipe11 0 0 64 64 metal
$load art/gfx/textures/Mines/final/6_24pipe8.pcx
$mip pipe10 0 0 64 64 metal
$load art/gfx/textures/Mines/final/6_24pipe7.pcx
$mip pipe9 0 0 64 64 metal
$load art/gfx/textures/Mines/final/6_23rustironplate2.pcx
$mip pipe8 0 0 128 128 metal
$load art/gfx/textures/Mines/final/6_17pipe5.pcx
$mip pipe7 0 0 64 64 metal
$load art/gfx/textures/Mines/final/6_17pipe6.pcx
$mip pipe6 0 0 64 16 metal
$load art/gfx/textures/Mines/final/6_17pipe4.pcx
$mip pipe5 0 0 64 32 metal
$load art/gfx/textures/Mines/final/6_17pipe3.pcx
$mip pipe4 0 0 64 32 metal
$load art/gfx/textures/Mines/final/6_17pipe2.pcx
$mip pipe3 0 0 64 32 metal
$load art/gfx/textures/Mines/final/6_17pipe1.pcx
$mip pipe2 0 0 64 64 metal
$load art/gfx/textures/Mines/final/6_17pipe.pcx
$mip pipe1 0 0 64 64 metal
$load art/gfx/textures/Mines/final/d_rustiron.pcx
$mip rust1 0 0 64 64 metal
$load art/gfx/textures/Mines/final/3_23copperr4.pcx
$mip copper4 0 0 64 64 metal
$load art/gfx/textures/Mines/final/3_23copperr3.pcx
$mip copper3 0 0 64 64 metal
$load art/gfx/textures/Mines/final/3_23copperr2.pcx
$mip copper2 0 0 64 64 metal
$load art/gfx/textures/Mines/final/3_23copperr1.pcx
$mip copper1 0 0 64 64 metal
;=================================================
;=================================================
; WOOD(S)
;=================================================
$load art/gfx/textures/Mines/final/7_9woodbridge2.pcx
$mip woodbrdge3 0 0 128 128 wood
$load art/gfx/textures/Mines/final/6_18woodbridge2.pcx
$mip woodbrdge2 0 0 128 32 wood
$load art/gfx/textures/Mines/final/6_18woodbridge.pcx
$mip woodbrdge1 0 0 128 128 wood
$load art/gfx/textures/Mines/final/7_1beams.pcx
$mip woodbeam4 0 0 128 128 wood
$load art/gfx/textures/Mines/final/6_18woodbeam2.pcx
$mip woodbeam3 0 0 64 64 wood
$load art/gfx/textures/Mines/final/6_18woodbeam1.pcx
$mip woodbeam2 0 0 64 64 wood
$load art/gfx/textures/Mines/final/6_18woodbeam.pcx
$mip woodbeam1 0 0 64 64 wood
$load art/gfx/textures/Mines/final/6_18gdrywd2.pcx
$mip minewood4 0 0 32 64 wood
$load art/gfx/textures/Mines/final/6_18gdriedwood.pcx
$mip minewood3 0 0 32 64 wood
$load art/gfx/textures/Mines/final/6_18gdampwood.pcx
$mip minewood2 0 0 32 64 wood
$load art/gfx/textures/Mines/final/6_18gdampwd2.pcx
$mip minewood1 0 0 32 64 wood
$load art/gfx/textures/Mines/final/4_28wood4.pcx
$mip wood2 0 0 64 64 wood
$load art/gfx/textures/Mines/final/4_28wood3.pcx
$mip wood1 0 0 64 64 wood
;=================================================
;=================================================
; MISC.
;=================================================
$load art/gfx/textures/Mines/final/leatherbeltore1.pcx
$mip belt1 0 0 64 64 anim belt2 animspeed 8
$load art/gfx/textures/Mines/final/leatherbeltore2.pcx
$mip belt2 0 0 64 64 anim belt3 animspeed 10
$load art/gfx/textures/Mines/final/leatherbeltore3.pcx
$mip belt3 0 0 64 64 anim belt4 animspeed 12
$load art/gfx/textures/Mines/final/leatherbeltore4.pcx
$mip belt4 0 0 64 64 anim belt5 animspeed 14
$load art/gfx/textures/Mines/final/leatherbeltore5.pcx
$mip belt5 0 0 64 64 anim belt6 animspeed 20
$load art/gfx/textures/Mines/final/leatherbeltore6.pcx
$mip belt6 0 0 64 64 anim belt7 animspeed 24
$load art/gfx/textures/Mines/final/leatherbeltore7.pcx
$mip belt7 0 0 64 64 anim belt8 animspeed 26
$load art/gfx/textures/Mines/final/leatherbeltore8.pcx
$mip belt8 0 0 64 64 anim belt1 animspeed 30
$load art/gfx/textures/Mines/final/7_1minedoor_top.pcx
$mip doortop 0 0 128 16 wood
$load art/gfx/textures/Mines/final/9_1minedoor_side.pcx
$mip doorside2 0 0 64 128 wood
$load art/gfx/textures/Mines/final/7_1minedoor_side.pcx
$mip doorside 0 0 64 128 wood
$load art/gfx/textures/Mines/final/7_1minedoor.pcx
$mip door 0 0 128 128 wood
$load art/gfx/textures/Mines/final/6_24leatherbelt1.pcx
$mip lonebelt 0 0 64 64
$load art/gfx/textures/Mines/final/7_1mechanics.pcx
$mip machine 0 0 128 128 metal
$load art/gfx/textures/Mines/final/6_30conveyer_end.pcx
$mip convend 0 0 32 32 metal
$load art/gfx/textures/Mines/final/6_30conveyer_side.pcx
$mip convside 0 0 64 32 metal
$load art/gfx/textures/Mines/final/6_30crusher.pcx
$mip crusher 0 0 128 64 metal
$load art/gfx/textures/Mines/final/6_30crusher_side.pcx
$mip crusherside 0 0 64 64 metal
$load art/gfx/textures/Mines/final/7_2woodtraxcurve.pcx
$mip track7 0 0 128 128 metal
$load art/gfx/textures/Mines/final/7_2groundtraccurve.pcx
$mip track6 0 0 128 128 metal
$load art/gfx/textures/Mines/final/7_1woodbridgetrax.pcx
$mip track5 0 0 128 128 metal
$load art/gfx/textures/Mines/final/7_1woodbridgetracright.pcx
$mip track4 0 0 128 128 metal
$load art/gfx/textures/Mines/final/7_1woodbridgetracleft.pcx
$mip track3 0 0 128 128 metal
$load art/gfx/textures/Mines/final/7_1woodbridgetraccenter.pcx
$mip track2 0 0 128 128 metal
$load art/gfx/textures/Mines/final/7_1minetrak1.pcx
$mip track1 0 0 64 64 metal
$load art/gfx/textures/Mines/final/chain.pcx
$mip chain 0 0 16 64
$load art/gfx/textures/Mines/final/3_10ropea.pcx
$mip rope 0 0 16 32
;=================================================

View file

@ -0,0 +1,545 @@
$load art/gfx/gamepal.lbm
$mippal
$mipdir Palace
;=================================================
; FLOORS
;=================================================
$load art/gfx/textures/Palace/final/3_30floor1.pcx
$mip floor44 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3-30marbler1.pcx
$mip marble1 0 0 128 128 stone
$load art/gfx/textures/Palace/final/marble13.pcx
$mip floor43 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_23marb5k.pcx
$mip floor42 0 0 64 64 stone
$load art/gfx/textures/Palace/final/marble17.pcx
$mip floor41 0 0 128 128 stone
$load art/gfx/textures/Palace/final/marble16.pcx
$mip floor40 0 0 128 128 stone
$load art/gfx/textures/Palace/final/marble14.pcx
$mip floor39 0 0 128 128 stone
$load art/gfx/textures/Palace/final/marble11.pcx
$mip floor38 0 0 128 128 stone
$load art/gfx/textures/Palace/final/marbletile4.pcx
$mip floor37 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_23marb5f.pcx
$mip floor36 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_23marb5d.pcx
$mip floor35 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_24blumarb1.pcx
$mip floor34 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_23marbflr5j.pcx
$mip floor33 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_23marb5j.pcx
$mip floor32 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_23marbflr5g.pcx
$mip floor31 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_23marbflr5f.pcx
$mip floor30 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_23marbflr5e.pcx
$mip floor29 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_23marbflr5d.pcx
$mip floor28 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_23cleanmarb2.pcx
$mip floor27 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_23marblee.pcx
$mip floor26 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_23marble2f.pcx
$mip floor25 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_23marble2a.pcx
$mip floor24 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_23marble2.pcx
$mip floor23 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_23marbeflr1d.pcx
$mip floor22 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_23marbeflr1b.pcx
$mip floor21 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_23marbeflr1.pcx
$mip floor20 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_20floor4.pcx
$mip floor19 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_20floor5.pcx
$mip floor18 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_23stucco2.pcx
$mip floor15 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_23stucco3.pcx
$mip floor14 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_23carpet1.pcx
$mip floor13 0 0 128 128
$load art/gfx/textures/Palace/final/3_23marblefloor.pcx
$mip floor12 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_23carpet.pcx
$mip floor11 0 0 64 64
$load art/gfx/textures/Palace/final/3_18floor3blood.pcx
$mip floor10bl 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_18floor3.pcx
$mip floor10 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_19floor3.pcx
$mip floor9 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_12floorkitchenb1.pcx
$mip floor8 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_12floorkitchena1.pcx
$mip floor7 0 0 64 64 stone
$load art/gfx/textures/Palace/final/storflor.pcx
$mip floor6 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_9floor64b.pcx
$mip floor5 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_9floor64a.pcx
$mip floor4 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_09floorcellara.pcx
$mip floor3 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_06stonefloor1a.pcx
$mip floor2 0 0 128 128 stone
$load art/gfx/textures/Palace/final/palette64.pcx
$mip palette64 0 0 64 64 wood
$load art/gfx/textures/Palace/final/3_6floorston1.pcx
$mip floor1 0 0 64 64 stone
$load art/gfx/textures/Palace/final/palette.pcx
$mip palette 0 0 128 128 wood
$load art/gfx/textures/Palace/final/3_10newpal2.pcx
$mip palette2 0 0 64 64 wood
;=================================================
; WALLS
;=================================================
$load art/gfx/textures/Palace/final/3_23archa1.pcx
$mip hallarch 0 0 128 128 stone
$load art/gfx/textures/Palace/final/4_6obscolumnr1.pcx
$mip column1 0 0 64 64 stone
$load art/gfx/textures/Palace/final/4_3archfillr3.pcx
$mip archfill2 0 0 64 64 stone
$load art/gfx/textures/Palace/final/4_3archfillr2.pcx
$mip archfill1 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_30facade1.pcx
$mip facade1 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_30archr1.pcx
$mip arch1 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_29woodwall2.pcx
$mip wwall2 0 0 64 64 wood
$load art/gfx/textures/Palace/final/3_29woodwall.pcx
$mip wwall1 0 0 128 128 wood
$load art/gfx/textures/Palace/final/3_26stuccowallr1.pcx
$mip stucco2 0 0 128 128 stone
$load art/gfx/textures/Palace/final/stucco4b.pcx
$mip stucco1 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_24balcfacebluea.pcx
$mip balcface 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_26stuccowallr4.pcx
$mip hall18 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_26stuccowallr3.pcx
$mip hall17 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_24cleanmrbwll2.pcx
$mip hall16 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_24cleanmrbwll.pcx
$mip hall15 0 0 128 128 stone
$load art/gfx/textures/Palace/final/stucco5b.pcx
$mip hall14 0 0 128 128 stone
$load art/gfx/textures/Palace/final/stucco5a.pcx
$mip hall13 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_23cleanmarb2.pcx
$mip hall12 0 0 64 64 stone
$load art/gfx/textures/Palace/final/rufrok05.pcx
$mip tunnel 0 0 128 128 stone
$load art/gfx/textures/Palace/final/stucco3c.pcx
$mip hall11 0 0 64 64 stone
$load art/gfx/textures/Palace/final/stucco3b.pcx
$mip hall10 0 0 64 64 stone
$load art/gfx/textures/Palace/final/stucco3a.pcx
$mip hall9 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_23marbwll2.pcx
$mip hall7 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_23marbwll1.pcx
$mip hall6 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_20ghwalla.pcx
$mip hall5 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_17balcfacea.pcx
$mip hall3 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_13walltrimb.pcx
$mip hall2 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_13walltrima.pcx
$mip hall1 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_16arches3.pcx
$mip bridge2 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_18arches4.pcx
$mip bridge1 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_13stuccowall2.pcx
$mip kitchenstucco2 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_13stuccowall1.pcx
$mip kitchenstucco1 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_11stuccowall.pcx
$mip kitchenstucco 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_11brickwalla.pcx
$mip kitchenbrk 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_05stonewall1a.pcx
$mip stone1 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_05stonewall2a.pcx
$mip stone 0 0 128 128 stone
$load art/gfx/textures/Palace/final/test128.pcx
$mip test128 0 0 128 128 stone
$load art/gfx/textures/Palace/final/test64.pcx
$mip test64 0 0 64 64 stone
;=================================================
; CEILINGS
;=================================================
$load art/gfx/textures/Palace/final/3_27ceiling2b.pcx
$mip ceiling1 0 0 128 128 stone
;=================================================
; ORNATE WOOD
;=================================================
$load art/gfx/textures/Palace/final/3_25vegtrimr5.pcx
$mip vegtrim5 0 0 64 32 wood
$load art/gfx/textures/Palace/final/3_25vegtrimr4.pcx
$mip vegtrim4 0 0 64 32 wood
$load art/gfx/textures/Palace/final/3_25vegtrimr3.pcx
$mip vegtrim3 0 0 64 32 wood
$load art/gfx/textures/Palace/final/3_25vegtrimr2.pcx
$mip vegtrim2 0 0 64 32 wood
$load art/gfx/textures/Palace/final/3_25vegtrimr1.pcx
$mip vegtrim1 0 0 64 64 wood
$load art/gfx/textures/Palace/final/3_25vegcolr3.pcx
$mip vegcol3 0 0 32 128 wood
$load art/gfx/textures/Palace/final/3_25vegcolr2.pcx
$mip vegcol2 0 0 32 128 wood
$load art/gfx/textures/Palace/final/3_25vegcolr1.pcx
$mip vegcol1 0 0 64 256 wood
$load art/gfx/textures/Palace/final/3_29vegwoodr7.pcx
$mip vegwood7 0 0 64 32 wood
$load art/gfx/textures/Palace/final/3_29vegwoodr2.pcx
$mip vegwood6 0 0 64 32 wood
$load art/gfx/textures/Palace/final/3_29vegwoodr6.pcx
$mip vegwood5 0 0 64 64 wood
$load art/gfx/textures/Palace/final/3_29vegwoodr5.pcx
$mip vegwood4 0 0 64 32 wood
$load art/gfx/textures/Palace/final/3_29vegwoodr4.pcx
$mip vegwood3 0 0 64 32 wood
$load art/gfx/textures/Palace/final/3_29vegwoodr3.pcx
$mip vegwood2 0 0 32 128 wood
$load art/gfx/textures/Palace/final/3_29vegwoodr1.pcx
$mip vegwood1 0 0 64 256 wood
;=================================================
; TRIM
;=================================================
$load art/gfx/textures/Palace/final/4_2archstandardr3.pcx
$mip trim13 0 0 64 128 stone
$load art/gfx/textures/Palace/final/4_2archstandardr2.pcx
$mip trim12 0 0 64 128 stone
$load art/gfx/textures/Palace/final/4_1archstandardr1.pcx
$mip trim11 0 0 64 128 stone
$load art/gfx/textures/Palace/final/3_30trim2.pcx
$mip trim10 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_30trim1.pcx
$mip trim9 0 0 64 32 stone
$load art/gfx/textures/Palace/final/3_29woodtrimr2.pcx
$mip wtrim2 0 0 64 16 stone
$load art/gfx/textures/Palace/final/3_29woodtrimr1.pcx
$mip wtrim1 0 0 64 16 stone
$load art/gfx/textures/Palace/final/3_24walltrimblueb.pcx
$mip trimbl4 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_24walltrimbluea.pcx
$mip trimbl3 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_24walltrimblue2.pcx
$mip trimbl2 0 0 64 32 stone
$load art/gfx/textures/Palace/final/3_24walltrimblue.pcx
$mip trimbl1 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_26wallpattrim1a.pcx
$mip trim8 0 0 64 16 stone
$load art/gfx/textures/Palace/final/3_26wallpat1a.pcx
$mip trim7 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_26archobser2d.pcx
$mip obsarch 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_25trim3p.pcx
$mip trim6 0 0 64 32 stone
$load art/gfx/textures/Palace/final/3_25filltilea.pcx
$mip trim5 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_25filltile.pcx
$mip trim4 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_25trim3i.pcx
$mip trim3 0 0 64 32 stone
$load art/gfx/textures/Palace/final/3_25trim3g.pcx
$mip trim2 0 0 64 32 stone
$load art/gfx/textures/Palace/final/3_25trim3a.pcx
$mip trim1 0 0 64 32 stone
$load art/gfx/textures/Palace/final/3_16walpattrim.pcx
$mip wain2 0 0 64 16 stone
$load art/gfx/textures/Palace/final/3_13wallpatpcx.pcx
$mip wain1 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_23copperr4.pcx
$mip copper4 0 0 64 64 metal
$load art/gfx/textures/Palace/final/3_23copperr3.pcx
$mip copper3 0 0 64 64 metal
$load art/gfx/textures/Palace/final/3_23copperr2.pcx
$mip copper2 0 0 64 64 metal
$load art/gfx/textures/Palace/final/3_23copperr1.pcx
$mip copper1 0 0 64 64 metal
$load art/gfx/textures/Palace/final/gold.pcx
$mip basetrim1 0 0 16 16 metal
$load art/gfx/textures/Palace/final/3_18trim.pcx
$mip basetrim 0 0 64 16 metal
$load art/gfx/textures/Palace/final/3_23widearchr1.pcx
$mip archtrim2 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_18walltrim2.pcx
$mip bridgetrim2 0 0 64 32 stone
$load art/gfx/textures/Palace/final/3_18walltrim.pcx
$mip bridgetrim1 0 0 64 64 stone
$load art/gfx/textures/Palace/final/pillar.pcx
$mip greypillar 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_06stonearch1a.pcx
$mip archtrim1 0 0 16 64 stone
$load art/gfx/textures/Palace/final/3_07stonearchwall1a.pcx
$mip archinterior1 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_9copper.pcx
$mip copper 0 0 64 64 metal
;=================================================
;MISC
;=================================================
$load art/gfx/textures/Palace/final/wave.pcx
$mip observ7 0 0 64 64 metal
$load art/gfx/textures/Palace/final/sun.pcx
$mip observ6 0 0 64 64 metal
$load art/gfx/textures/Palace/final/meteors.pcx
$mip observ5 0 0 64 64 metal
$load art/gfx/textures/Palace/final/ice.pcx
$mip observ4 0 0 64 64 metal
$load art/gfx/textures/Palace/final/harvest.pcx
$mip observ3 0 0 64 64 metal
$load art/gfx/textures/Palace/final/darkness.pcx
$mip observ2 0 0 64 64 metal
$load art/gfx/textures/Palace/final/compass.pcx
$mip observ1 0 0 64 64 metal
$load art/gfx/textures/Palace/final/deliverygreen.pcx
$mip deliv2 0 0 64 64 stone
$load art/gfx/textures/Palace/final/deliverydark.pcx
$mip deliv1 0 0 64 64 stone
$load art/gfx/textures/Palace/final/3_30elevdoor.pcx
$mip elevdoor 0 0 128 128 metal
$load art/gfx/textures/Palace/final/3_26scyth2.pcx
$mip const11 0 0 128 128 metal
$load art/gfx/textures/Palace/final/3_27etherr1.pcx
$mip ether 0 0 128 128 stone
$load art/gfx/textures/Palace/final/3_26snake2.pcx
$mip const13 0 0 128 128 metal
$load art/gfx/textures/Palace/final/3_26snake1.pcx
$mip const12 0 0 128 128 metal
$load art/gfx/textures/Palace/final/3_26scyth2.pcx
$mip const11 0 0 128 128 metal
$load art/gfx/textures/Palace/final/3_26scyth.pcx
$mip const10 0 0 128 128 metal
$load art/gfx/textures/Palace/final/3_26raven2.pcx
$mip const9 0 0 128 128 metal
$load art/gfx/textures/Palace/final/3_26raven1.pcx
$mip const8 0 0 128 128 metal
$load art/gfx/textures/Palace/final/3_26fish2.pcx
$mip const7 0 0 128 128 metal
$load art/gfx/textures/Palace/final/3_26fish1.pcx
$mip const6 0 0 128 128 metal
$load art/gfx/textures/Palace/final/3_26crown2.pcx
$mip const5 0 0 128 128 metal
$load art/gfx/textures/Palace/final/3_26crown1.pcx
$mip const4 0 0 128 128 metal
$load art/gfx/textures/Palace/final/3_26chumba2.pcx
$mip const3 0 0 128 128 metal
$load art/gfx/textures/Palace/final/3_26chumba1.pcx
$mip const2 0 0 128 128 metal
$load art/gfx/textures/Palace/final/3_23crater5.pcx
$mip crate5 0 0 32 32 wood
$load art/gfx/textures/Palace/final/3_23crater4.pcx
$mip crate4 0 0 64 32 wood
$load art/gfx/textures/Palace/final/3_23crater3.pcx
$mip crate3 0 0 64 64 wood
$load art/gfx/textures/Palace/final/3_23crater2.pcx
$mip crate2 0 0 64 64 wood
$load art/gfx/textures/Palace/final/3_23crater1.pcx
$mip crate1 0 0 64 64 wood
$load art/gfx/textures/Palace/final/3_24scrollrack4.pcx
$mip scrollrack4 0 0 64 64 wood
$load art/gfx/textures/Palace/final/3_24scrollrack3.pcx
$mip scrollrack3 0 0 64 64 wood
$load art/gfx/textures/Palace/final/3_24scrollrack2.pcx
$mip scrollrack2 0 0 64 64 wood
$load art/gfx/textures/Palace/final/3_24scrollrack.pcx
$mip scrollrack 0 0 64 64 wood
$load art/gfx/textures/Palace/final/3_11cupboard1.pcx
$mip cbrddoors 0 0 128 64 wood
$load art/gfx/textures/Palace/final/cupboardbase.pcx
$mip cbrdbase 0 0 128 32 wood
$load art/gfx/textures/Palace/final/3_10ropea.pcx
$mip rope 0 0 16 32 wood

View file

@ -0,0 +1,675 @@
$load art/gfx/gamepal.lbm
$mippal
$mipdir Silverspring
;=================================================
; New Misc. Crap
;=================================================
$load art/gfx/textures/Silverspring/final/mn3_23crater5c.pcx
$mip brcrate10 0 0 32 32 wood
$load art/gfx/textures/Silverspring/final/mn3_23crater5b.pcx
$mip brcrate09 0 0 32 32 wood
$load art/gfx/textures/Silverspring/final/mn3_23crater5a.pcx
$mip brcrate08 0 0 32 32 wood
$load art/gfx/textures/Silverspring/final/mn3_23crater4c.pcx
$mip brcrate07 0 0 64 32 wood
$load art/gfx/textures/Silverspring/final/mn3_23crater4b.pcx
$mip brcrate06 0 0 64 32 wood
$load art/gfx/textures/Silverspring/final/mn3_23crater4a.pcx
$mip brcrate05 0 0 64 32 wood
$load art/gfx/textures/Silverspring/final/mn3_23crater1c.pcx
$mip brcrate04 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/mn3_23crater1b.pcx
$mip brcrate03 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/mn3_23crater1a.pcx
$mip brcrate02 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/mn3_23crater1.pcx
$mip brcrate01 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/poker.pcx
$mip table3 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/basewood2.pcx
$mip table2 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/basewood.pcx
$mip table1 0 0 64 64 wood
;=================================================
; Water
;=================================================
$load art/gfx/textures/Silverspring/final/water2.pcx
$mip newwater1 0 0 128 128 warping water trans33
;=================================================
; Ceilings
;=================================================
$load art/gfx/textures/Silverspring/final/5_4ceilhouse.pcx
$mip ceiling1 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/5_4ceilwarea.pcx
$mip ceiling2 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/5_4ceilwareb.pcx
$mip ceiling3 0 0 64 64 stone
;=================================================
;=================================================
; BRICKS AND STONES
;=================================================
$load art/gfx/textures/Silverspring/final/4_13stoneblock1.pcx
$mip stone1 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_13stoneblock2.pcx
$mip stone2 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_13stoneblock4.pcx
$mip stone3 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_13stoneblock5.pcx
$mip stone4 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_14rockwall2.pcx
$mip stone5 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_14rockwall3.pcx
$mip stone7 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_14rockwall4.pcx
$mip stone8 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_14rockwall5.pcx
$mip stone9 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_14rockwall6.pcx
$mip stone10 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_9crackrkbot.pcx
$mip astonebot 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/4_9crackrkmid.pcx
$mip astonemid 0 0 128 64 stone
$load art/gfx/textures/Silverspring/final/4_9crackrktop.pcx
$mip astonetop 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/4_14brickcrack.pcx
$mip brick4cr 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/4_14brickcrack2.pcx
$mip brick5cr 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/4_28brickwall1.pcx
$mip brick1 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/4_28brickwall2.pcx
$mip brick2 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/4_28brickwall3.pcx
$mip brick3 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/4_28brickwall4.pcx
$mip brick4 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/4_14brickstucco5.pcx
$mip brick10 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_14brickstucco6.pcx
$mip brick11 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_14brickstucco7.pcx
$mip brick12 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/d_2brickwall64.pcx
$mip brick13 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/d_3brickwall64.pcx
$mip brick14 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/d_4brickwall64.pcx
$mip brick15 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/d_brickwall128.pcx
$mip brick16 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/d_brickwall64.pcx
$mip brick17 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/brickwalltile64.pcx
$mip brick18 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_8sandbricksbottom.pcx
$mip sandbrck 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_8bottom128.pcx
$mip abrickbot 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/4_8mid64.pcx
$mip abrickmid 0 0 128 64 stone
$load art/gfx/textures/Silverspring/final/4_8top128.pcx
$mip abricktop 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/4_15oldwall1.pcx
$mip oldwall1 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/4_15oldwall2.pcx
$mip oldwall2 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/4_15oldwall3.pcx
$mip oldwall3 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/4_15oldwall4.pcx
$mip oldwall4 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/4_15oldwall5.pcx
$mip oldwall5 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/d-stucco.pcx
$mip stucco2 0 0 64 128 stone
$load art/gfx/textures/Silverspring/final/d_stucco.pcx
$mip stucco3 0 0 64 128 stone
$load art/gfx/textures/Silverspring/final/d_stucco.pcx
$mip stucco4 0 0 64 128 stone
$load art/gfx/textures/Silverspring/final/d_stuccoh.pcx
$mip stucco5 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/d_stuccoh2.pcx
$mip stucco6 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/d_stuccoh3.pcx
$mip stucco7 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/d_stuccohole4.pcx
$mip stucco8 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/d_stuchole1.pcx
$mip stucco9 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/d_stucholem128.pcx
$mip stucco10 0 0 64 128 stone
$load art/gfx/textures/Silverspring/final/d_stucholem128_2.pcx
$mip stucco11 0 0 64 128 stone
$load art/gfx/textures/Silverspring/final/d_stucholem128_3.pcx
$mip stucco12 0 0 64 128 stone
$load art/gfx/textures/Silverspring/final/d__stucco.pcx
$mip stucco13 0 0 64 128 stone
$load art/gfx/textures/Silverspring/final/4_23stucco.pcx
$mip newstuc1 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_23stucco1.pcx
$mip newstuc2 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_23stucco2.pcx
$mip newstuc3 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_23stucco4.pcx
$mip newstuc4 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_23stucco5.pcx
$mip newstuc5 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_23stucco6.pcx
$mip newstuc6 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_23stucco7.pcx
$mip newstuc7 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_23stucco8.pcx
$mip newstuc8 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_23stucco9.pcx
$mip newstuc9 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/stucco64.pcx
$mip newstuc10 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/stuccobrickbase64.pcx
$mip newstuc11 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/stuccobrickbase64_2.pcx
$mip newstuc12 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/stuccoholes64.pcx
$mip newstuc13 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/stuccoholes64_2.pcx
$mip newstuc14 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_27stucwood1.pcx
$mip newstucwood 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/5_1stucwoodbase.pcx
$mip newstucbase 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/concretewall.pcx
$mip concretewall 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/d_dockwall64.pcx
$mip dockwall 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/foundationa.pcx
$mip foundationa 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/foundationb.pcx
$mip foundationb 0 0 256 32 stone
$load art/gfx/textures/Silverspring/final/foundationc.pcx
$mip foundationc 0 0 128 64 stone
$load art/gfx/textures/Silverspring/final/foundationd.pcx
$mip foundationd 0 0 128 32 stone
$load art/gfx/textures/Silverspring/final/2_24wallrck.pcx
$mip wallrck1 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/2_24wallrck2.pcx
$mip wallrck2 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/2_26anglebrk2.pcx
$mip angbrick 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/5_4mortar.pcx
$mip mortar 0 0 32 32 stone
;=================================================
;=================================================
;DOOR(S) and WINDOW(S)
;=================================================
$load art/gfx/textures/Silverspring/final/4_30briandoor2.pcx
$mip door1 0 0 64 128 wood
$load art/gfx/textures/Silverspring/final/5_4door1.pcx
$mip door2 0 0 64 128 wood
$load art/gfx/textures/Silverspring/final/5_4door2.pcx
$mip door3 0 0 64 128 wood
$load art/gfx/textures/Silverspring/final/5_4door3.pcx
$mip door4 0 0 64 128 wood
$load art/gfx/textures/Silverspring/final/5_6doora.pcx
$mip door5 0 0 64 128 wood
$load art/gfx/textures/Silverspring/final/5_6doorb.pcx
$mip door6 0 0 64 128 wood
$load art/gfx/textures/Silverspring/final/5_6doorc.pcx
$mip door7 0 0 64 128 wood
$load art/gfx/textures/Silverspring/final/5_6docksdoor128.pcx
$mip dockdoor 0 0 128 128 wood
$load art/gfx/textures/Silverspring/final/5_6docksdoor64.pcx
$mip dockdoortp 0 0 128 64 wood
$load art/gfx/textures/Silverspring/final/4_24stucwindo1.pcx
$mip window1 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/4_24stucwindo2.pcx
$mip window2 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/4_27stucwindo10.pcx
$mip window3 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/4_27stucwindo3.pcx
$mip window4 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/4_27stucwindo5.pcx
$mip window5 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/4_27stucwindo7.pcx
$mip window6 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/4_27stucwindo8.pcx
$mip window7 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/4_27stucwindo11.pcx
$mip window8 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/4_27stucwindo4.pcx
$mip window9 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/4_27stucwindo6.pcx
$mip window10 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/4_27stucwindo7b.pcx
$mip window11 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/4_27stucwindo9.pcx
$mip window12 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/3-3clrwin1.pcx
$mip window13 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/3-3window-6.pcx
$mip window14 0 0 64 64 wood
;=================================================
;=================================================
;FLOOR(S)
;=================================================
$load art/gfx/textures/Silverspring/final/4_14cobble1.pcx
$mip cobble1 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_14cobble2.pcx
$mip cobble2 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_14cobble3.pcx
$mip cobble3 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_14cobble4.pcx
$mip cobble4 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_27cobsmall.pcx
$mip cobble5 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_27cobsmall1.pcx
$mip cobble6 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_27cobsmall2.pcx
$mip cobble7 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_27cobsmall3.pcx
$mip cobble8 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_27cobsmall4.pcx
$mip cobble9 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_20cobble1.pcx
$mip cobble10 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_20cobble2.pcx
$mip cobble11 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/4_20cobble3.pcx
$mip cobble12 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/2_25cobstne5.pcx
$mip cobble13 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/4_10rockfloor.pcx
$mip rockfl1 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/gravelfloor.pcx
$mip gravelfloor 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/4_15gravel2.pcx
$mip gravel2 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/d_gravel64.pcx
$mip gravel5 0 0 64 64 stone
$load art/gfx/textures/Silverspring/final/d_rockpath128.pcx
$mip gravel6 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/floor-2.pcx
$mip floor1 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/4_9dkrottfloor.pcx
$mip wfloor1 0 0 128 128 wood
$load art/gfx/textures/Silverspring/final/4_9dullgrvfloor.pcx
$mip wfloor2 0 0 128 128 wood
$load art/gfx/textures/Silverspring/final/4_9lockfloor.pcx
$mip wfloor4 0 0 128 128 wood
$load art/gfx/textures/Silverspring/final/4_9nicefloor.pcx
$mip wfloor5 0 0 128 128 wood
$load art/gfx/textures/Silverspring/final/4_9plainfloor.pcx
$mip wfloor6 0 0 128 128 wood
$load art/gfx/textures/Silverspring/final/4_9rivetfloor.pcx
$mip wfloor7 0 0 128 128 wood
$load art/gfx/textures/Silverspring/final/4_9rottfloor1.pcx
$mip wfloor8 0 0 128 128 wood
$load art/gfx/textures/Silverspring/final/4_29fixfloor3a.pcx
$mip wfloor9 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/4_29fixfloor3b.pcx
$mip wfloor10 0 0 64 64 wood
;=================================================
;=================================================
; WOOD(S)
;=================================================
$load art/gfx/textures/Silverspring/final/woodstripb.pcx
$mip woodstripb 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/woodstripA1.pcx
$mip woodstripa 0 0 32 32 wood
$load art/gfx/textures/Silverspring/final/4_10plank.pcx
$mip woodfl1 0 0 128 128 wood
$load art/gfx/textures/Silverspring/final/4_13diagwood2.pcx
$mip woodfl2 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/2_24wdside.pcx
$mip woodside 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/woodpatternB.pcx
$mip woodpatt 0 0 64 64 wood
;=================================================
;=================================================
; ROOF(S)
;=================================================
$load art/gfx/textures/Silverspring/final/4_29ceramroofa.pcx
$mip roof1 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/4_29shingleb.pcx
$mip roof2 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/4_29shingled.pcx
$mip roof3 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/5_1newshingle.pcx
$mip roof4 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/4_30rooftrim16a.pcx
$mip rooftr1 0 0 32 16 wood
$load art/gfx/textures/Silverspring/final/4_30rooftrim16b.pcx
$mip rooftr2 0 0 32 16 wood
$load art/gfx/textures/Silverspring/final/4_30rooftrim16d.pcx
$mip rooftr3 0 0 32 16 wood
$load art/gfx/textures/Silverspring/final/4_30rooftrima.pcx
$mip rooftr4 0 0 32 32 wood
$load art/gfx/textures/Silverspring/final/4_30rooftrimb.pcx
$mip rooftr5 0 0 32 32 wood
;=================================================
;=================================================
; TRIM / DECORATIONS / DETAILS
;=================================================
$load art/gfx/textures/Silverspring/final/4_10trim16x32.pcx
$mip trim1 0 0 64 32 wood
$load art/gfx/textures/Silverspring/final/4_10trim32x32.pcx
$mip trim2 0 0 32 32 wood
$load art/gfx/textures/Silverspring/final/4_13rottrim.pcx
$mip trim4 0 0 64 32 wood
$load art/gfx/textures/Silverspring/final/4_14trim4.pcx
$mip trim5 0 0 64 32 wood
$load art/gfx/textures/Silverspring/final/4_14trimr3.pcx
$mip trim10 0 0 64 16 wood
$load art/gfx/textures/Silverspring/final/4_15woodtrim.pcx
$mip trim11 0 0 64 32 wood
$load art/gfx/textures/Silverspring/final/4_15woodtrimdec32.pcx
$mip trim12 0 0 32 16 wood
$load art/gfx/textures/Silverspring/final/4_15woodtrimdec64.pcx
$mip trim13 0 0 64 32 wood
$load art/gfx/textures/Silverspring/final/wdstntrim16x32.pcx
$mip trim14 0 0 32 16 wood
$load art/gfx/textures/Silverspring/final/4_28fixtrim3d.pcx
$mip trim15 0 0 32 16 wood
$load art/gfx/textures/Silverspring/final/4_28fixtrim5a.pcx
$mip trim16 0 0 32 32 wood
$load art/gfx/textures/Silverspring/final/4_28fixtrim5d.pcx
$mip trim17 0 0 32 32 wood
$load art/gfx/textures/Silverspring/final/5_4btrimtile.pcx
$mip trim18 0 0 32 16 wood
$load art/gfx/textures/Silverspring/final/5_4grapetrim.pcx
$mip trim19 0 0 32 16 wood
$load art/gfx/textures/Silverspring/final/4_28fixtrim1c.pcx
$mip trim20 0 0 32 16 wood
$load art/gfx/textures/Silverspring/final/4_28fixtrim2c.pcx
$mip trim21 0 0 64 32 wood
$load art/gfx/textures/Silverspring/final/5_1stepface1.pcx
$mip step1 0 0 64 16 wood
$load art/gfx/textures/Silverspring/final/5_1stepface2.pcx
$mip step2 0 0 64 16 wood
$load art/gfx/textures/Silverspring/final/5_1steptop1.pcx
$mip step3 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/5_1steptop2.pcx
$mip step4 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/5_1stonestep.pcx
$mip step5 0 0 32 16 stone
$load art/gfx/textures/Silverspring/final/5_1stonestep1.pcx
$mip step6 0 0 32 16 stone
$load art/gfx/textures/Silverspring/final/5_1stonestepcooldrkr.pcx
$mip step7 0 0 32 16 stone
$load art/gfx/textures/Silverspring/final/5_1stonestepwarmdrkr.pcx
$mip step8 0 0 32 16 stone
;=================================================
;=================================================
; MISC.
;=================================================
$load art/gfx/textures/Silverspring/final/chain.pcx
$mip chain 0 0 16 64 metal
$load art/gfx/textures/Silverspring/final/d_rustiron.pcx
$mip rust 0 0 64 64 metal
$load art/gfx/textures/Silverspring/final/5_4rustyiron.pcx
$mip rust2 0 0 64 64 metal
$load art/gfx/textures/Silverspring/final/4_28wood3.pcx
$mip wood1 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/4_28wood4.pcx
$mip wood2 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/2_26wood2.pcx
$mip wood3 0 0 64 64 wood
$load art/gfx/textures/Silverspring/final/3_13dockpiling.pcx
$mip piling1 0 0 32 64 wood
$load art/gfx/textures/Silverspring/final/3_13pilingup.pcx
$mip piling2 0 0 32 64 wood
$load art/gfx/textures/Silverspring/final/3_13pilingup1.pcx
$mip piling3 0 0 32 64 wood
$load art/gfx/textures/Silverspring/final/3_13pilingtop.pcx
$mip pilingtop 0 0 32 32 wood
$load art/gfx/textures/Silverspring/final/d_correl.pcx
$mip coral 0 0 128 128 stone
$load art/gfx/textures/Silverspring/final/watertest1.pcx
$mip watertest 0 0 128 128
;=================================================
;=================================================
; BUTTONS
;=================================================
$load art/gfx/textures/Silverspring/final/button1a.pcx
$mip 0button 0 0 32 32 metal anim 1button
$load art/gfx/textures/Silverspring/final/button1b.pcx
$mip 1button 0 0 32 32 metal anim 0button
$load art/gfx/textures/Silverspring/final/button2a.pcx
$mip 0button1 0 0 32 32 metal anim 1button1
$load art/gfx/textures/Silverspring/final/button2b.pcx
$mip 1button1 0 0 32 32 metal anim 0button1
$load art/gfx/textures/Silverspring/final/button6a.pcx
$mip 0button2 0 0 32 32 metal anim 1button2
$load art/gfx/textures/Silverspring/final/button6b.pcx
$mip 1button2 0 0 32 32 metal anim 0button2
;=================================================

View file

@ -0,0 +1,293 @@
$load art/gfx/gamepal.lbm
$mippal
$mipdir Swamp
;=================================================
; BRICKS AND STONES
;=================================================
;$load art/gfx/textures/Swamp/final/thetile.pcx
;$mip thetile 0 0 128 128
$load art/gfx/textures/Swamp/final/8_4rock.pcx
$mip smprock01 0 0 256 256 stone
$load art/gfx/textures/Swamp/final/8_4concrete.pcx
$mip smpconc01 0 0 128 128 stone
$load art/gfx/textures/Swamp/final/8_4brick3.pcx
$mip smpbrick03 0 0 128 128 stone
$load art/gfx/textures/Swamp/final/8_4brick2.pcx
$mip smpbrick02 0 0 128 128 stone
$load art/gfx/textures/Swamp/final/8_4brick.pcx
$mip smpbrick01 0 0 128 128 stone
$load art/gfx/textures/Swamp/final/8_13floor2a.pcx
$mip smpfloor04 0 0 128 128 stone
$load art/gfx/textures/Swamp/final/8_13floor2.pcx
$mip smpfloor03 0 0 128 128 stone
$load art/gfx/textures/Swamp/final/8_13floor1a.pcx
$mip smpfloor02 0 0 128 128 stone
$load art/gfx/textures/Swamp/final/8_13floor1.pcx
$mip smpfloor01 0 0 128 128 stone
$load art/gfx/textures/Swamp/final/8_13trim2a.pcx
$mip smptrim04 0 0 32 16 stone
$load art/gfx/textures/Swamp/final/8_13trim2.pcx
$mip smptrim03 0 0 32 16 stone
$load art/gfx/textures/Swamp/final/8_13trim1a.pcx
$mip smptrim02 0 0 128 64 stone
$load art/gfx/textures/Swamp/final/8_13trim1.pcx
$mip smptrim01 0 0 128 64 stone
$load art/gfx/textures/Swamp/final/8_13wall4a.pcx
$mip smpwall01 0 0 128 128 stone
$load art/gfx/textures/Swamp/final/8_13wall4.pcx
$mip smpwall07 0 0 128 128 stone
$load art/gfx/textures/Swamp/final/8_13wall3a.pcx
$mip smpwall06 0 0 128 128 stone
$load art/gfx/textures/Swamp/final/8_13wall3.pcx
$mip smpwall05 0 0 128 128 stone
$load art/gfx/textures/Swamp/final/8_13wall2a.pcx
$mip smpwall04 0 0 128 128 stone
$load art/gfx/textures/Swamp/final/8_13wall2.pcx
$mip smpwall03 0 0 128 128 stone
$load art/gfx/textures/Swamp/final/8_13wall1a.pcx
$mip smpwall02 0 0 128 128 stone
$load art/gfx/textures/Swamp/final/8_13wall1.pcx
$mip smpwall01 0 0 128 128 stone
;=================================================
;=================================================
; WATER/SCUM
;=================================================
$load art/gfx/textures/Swamp/final/6_10waterscuma.pcx
$mip waterscum08 0 0 128 128 water warping
$load art/gfx/textures/Swamp/final/6_10waterscum4a.pcx
$mip waterscum07 0 0 128 128 water warping
$load art/gfx/textures/Swamp/final/6_10waterscum4.pcx
$mip waterscum06 0 0 128 128 water warping
$load art/gfx/textures/Swamp/final/6_10waterscum3a.pcx
$mip waterscum05 0 0 128 128 water warping
$load art/gfx/textures/Swamp/final/6_10waterscum3.pcx
$mip waterscum04 0 0 128 128 water warping
$load art/gfx/textures/Swamp/final/6_10waterscum2a.pcx
$mip waterscum03 0 0 64 64 water warping
$load art/gfx/textures/Swamp/final/6_10waterscum2.pcx
$mip waterscum02 0 0 64 64 water warping
$load art/gfx/textures/Swamp/final/6_10waterscum.pcx
$mip waterscum01 0 0 128 128 water warping
$load art/gfx/textures/Swamp/final/6_15swampwater.pcx
$mip swampwater01 0 0 128 128 water warping
$load art/gfx/textures/Swamp/final/swampa.pcx
$mip swamp1 0 0 128 128
$load art/gfx/textures/Swamp/final/swampb.pcx
$mip swamp2 0 0 128 128
;=================================================
;=================================================
; DIRT
;=================================================
$load art/gfx/textures/Swamp/final/8_11rootrock2.pcx
$mip treeroot02 0 0 256 64
$load art/gfx/textures/Swamp/final/8_11rootrock.pcx
$mip treeroot01 0 0 256 64
$load art/gfx/textures/Swamp/final/8_4earth3.pcx
$mip earth04 0 0 128 128
$load art/gfx/textures/Swamp/final/8_4earth2.pcx
$mip earth03 0 0 128 128
$load art/gfx/textures/Swamp/final/8_4earth1.pcx
$mip earth02 0 0 128 128
$load art/gfx/textures/Swamp/final/8_4earth.pcx
$mip earth01 0 0 128 128
$load art/gfx/textures/Swamp/final/6_10gdrycrkdirt.pcx
$mip dirt02 0 0 128 128
$load art/gfx/textures/Swamp/final/6_10gdirt.pcx
$mip dirt01 0 0 64 64
;=================================================
;=================================================
; WOOD
;=================================================
$load art/gfx/textures/Swamp/final/6_15treebark6.pcx
$mip bark05 0 0 64 128 wood
$load art/gfx/textures/Swamp/final/6_15treebark5.pcx
$mip bark04 0 0 64 128 wood
$load art/gfx/textures/Swamp/final/6_12treebark4.pcx
$mip bark03 0 0 64 128 wood
$load art/gfx/textures/Swamp/final/6_9treebark2.pcx
$mip bark02 0 0 64 64 wood
$load art/gfx/textures/Swamp/final/6_9treebark1.pcx
$mip bark01 0 0 64 64 wood
$load art/gfx/textures/Swamp/final/8_4gjonstreering.pcx
$mip treering01 0 0 64 64 wood
$load art/gfx/textures/Swamp/final/6_15slats.pcx
$mip wood03 0 0 64 64 wood
$load art/gfx/textures/Swamp/final/6_12gwood64b.pcx
$mip wood02 0 0 64 64 wood
$load art/gfx/textures/Swamp/final/6_12gwood64.pcx
$mip wood01 0 0 64 64 wood
;=================================================
;=================================================
; PLANTLIFE
;=================================================
$load art/gfx/textures/Swamp/final/6_9gbog2.pcx
$mip bog04 0 0 64 64
$load art/gfx/textures/Swamp/final/6_9gbog1.pcx
$mip bog03 0 0 64 64
$load art/gfx/textures/Swamp/final/6_12bog2.pcx
$mip bog02 0 0 64 64
$load art/gfx/textures/Swamp/final/6_12bog.pcx
$mip bog01 0 0 64 64
$load art/gfx/textures/Swamp/final/6_10longgrassb.pcx
$mip grass03 0 0 128 128
$load art/gfx/textures/Swamp/final/6_10longgrassa.pcx
$mip grass02 0 0 128 128
$load art/gfx/textures/Swamp/final/6_10longgrass.pcx
$mip grass01 0 0 128 128
$load art/gfx/textures/Swamp/final/6_10gleaves2.pcx
$mip leaves01 0 0 64 64
$load art/gfx/textures/Swamp/final/mossage.pcx
$mip moss05 0 0 64 128
$load art/gfx/textures/Swamp/final/mossygrowth.pcx
$mip moss04 0 0 64 64
$load art/gfx/textures/Swamp/final/6_9gmossy3.pcx
$mip moss03 0 0 64 64
$load art/gfx/textures/Swamp/final/6_9gmossy2.pcx
$mip moss02 0 0 64 64
$load art/gfx/textures/Swamp/final/6_9gmossy.pcx
$mip moss01 0 0 128 128
$load art/gfx/textures/Swamp/final/6_12shrubottom.pcx
$mip shrub02 0 0 64 64
$load art/gfx/textures/Swamp/final/6_12swampshrub.pcx
$mip shrub01 0 0 64 128
$load art/gfx/textures/Swamp/final/6_12gplants2.pcx
$mip plant09 0 0 64 64
$load art/gfx/textures/Swamp/final/6_12gplantfix3.pcx
$mip plant08 0 0 64 128
$load art/gfx/textures/Swamp/final/6_12gplantfix2.pcx
$mip plant07 0 0 64 128
$load art/gfx/textures/Swamp/final/6_12gplantfix.pcx
$mip plant06 0 0 64 64
$load art/gfx/textures/Swamp/final/6_10gplant5.pcx
$mip plant05 0 0 64 64
$load art/gfx/textures/Swamp/final/6_10gplant4.pcx
$mip plant04 0 0 64 64
$load art/gfx/textures/Swamp/final/6_10gplant3.pcx
$mip plant03 0 0 64 64
$load art/gfx/textures/Swamp/final/6_10gplant2.pcx
$mip plant02 0 0 64 64
$load art/gfx/textures/Swamp/final/6_10gplant1.pcx
$mip plant01 0 0 64 64
$load art/gfx/textures/Swamp/final/6_12rootbottom1.pcx
$mip swamproot03 0 0 64 64
$load art/gfx/textures/Swamp/final/6_11swamproots2.pcx
$mip swamproot02 0 0 64 128
$load art/gfx/textures/Swamp/final/6_11swamproots1.pcx
$mip swamproot01 0 0 64 128
$load art/gfx/textures/Swamp/final/6_11swampvines.pcx
$mip vine03 0 0 64 128
$load art/gfx/textures/Swamp/final/viney3.pcx
$mip vine02 0 0 64 128
$load art/gfx/textures/Swamp/final/viney2.pcx
$mip vine01 0 0 64 128
;=================================================

View file

@ -0,0 +1,52 @@
$load art/gfx/gamepal.lbm
$mippal
$mipdir Test
;=================================================
;FLOORS
;=================================================
$load art/gfx/textures/Test/tanbrick.pcx
$mip tanbrick 0 0 128 128
$load art/gfx/textures/Test/bluebrick.pcx
$mip bluebrick 0 0 128 128
$load art/gfx/textures/Test/rock.pcx
$mip rock 0 0 128 128
$load art/gfx/textures/Test/tanbrick0.pcx
$mip tanbrick0 0 0 128 128
$load art/gfx/textures/Test/bluebrick0.pcx
$mip bluebrick0 0 0 128 128
$load art/gfx/textures/Test/rock0.pcx
$mip rock0 0 0 128 128
$load art/gfx/textures/Test/256x256.pcx
$mip 256x256 0 0 256 256
$load art/gfx/textures/Test/swampsky.pcx
$mip swampsky 0 0 256 256
$load art/gfx/textures/Test/conv1.pcx
$mip conv1 0 0 64 64 anim conv2
$load art/gfx/textures/Test/conv2.pcx
$mip conv2 0 0 64 64 anim conv3
$load art/gfx/textures/Test/conv3.pcx
$mip conv3 0 0 64 64 anim conv4
$load art/gfx/textures/Test/conv4.pcx
$mip conv4 0 0 64 64 anim conv5
$load art/gfx/textures/Test/conv5.pcx
$mip conv5 0 0 64 64 anim conv1
;=================================================

View file

@ -0,0 +1,143 @@
$fm_cd monsters\assassin
$fm_origin 0 0 0
$fm_basest base skin.pcx stbase
$fm_skin skin.pcx
$fm_skin skindmg.pcx
$fm_scale 1
//
$fm_frame prtfly
//
$fm_frame torsofly
//
$fm_frame ataka1 ataka2 ataka3 ataka4 ataka5
$fm_frame ataka6 ataka7 ataka8 ataka9 ataka10
$fm_frame ataka11 ataka12 ataka13 ataka14
//
$fm_frame atakb1 atakb2 atakb3 atakb4 atakb5
$fm_frame atakb6 atakb7 atakb8 atakb9 atakb10
$fm_frame atakb11 atakb12 atakb13 atakb14 atakb15
//
$fm_frame atakc1 atakc2 atakc3 atakc4 atakc5
$fm_frame atakc6 atakc7 atakc8 atakc9 atakc10
$fm_frame atakc11 atakc12 atakc13 atakc14
//
$fm_frame bkflp1 bkflp2 bkflp3 bkflp4 bkflp5
$fm_frame bkflp6 bkflp7 bkflp8 bkflp9 bkflp10
$fm_frame bkflp11 bkflp12 bkflp13 bkflp14 bkflp15
$fm_frame bkflp16 bkflp17
//
$fm_frame deatha1 deatha2 deatha3 deatha4 deatha5
$fm_frame deatha6 deatha7 deatha8 deatha9 deatha10
$fm_frame deatha11 deatha12 deatha13 deatha14
//
$fm_frame deathb1 deathb2 deathb3 deathb4 deathb5
$fm_frame deathb6 deathb7 deathb8 deathb9 deathb10
$fm_frame deathb11 deathb12 deathb13 deathb14 deathb15
//
$fm_frame dgelft1 dgelft2 dgelft3 dgelft4 dgelft5
$fm_frame dgelft6 dgelft7 dgelft8 dgelft9 dgelft10
$fm_frame dgelft11 dgelft12
//
$fm_frame dgert1 dgert2 dgert3 dgert4 dgert5
$fm_frame dgert6 dgert7 dgert8 dgert9 dgert10
//
$fm_frame fntflp1 fntflp2 fntflp3 fntflp4 fntflp5
$fm_frame fntflp6 fntflp7 fntflp8 fntflp9 fntflp10
$fm_frame fntflp11 fntflp12 fntflp13 fntflp14 fntflp15
$fm_frame fntflp16
//
$fm_frame jump1 jump2 jump3 jump4 jump5
$fm_frame jump6 jump7 jump8 jump9 jump10
$fm_frame jump11 jump12 jump13 jump14 jump15
$fm_frame jump16 jump17
//
$fm_frame lndatk1 lndatk2 lndatk3 lndatk4 lndatk5
$fm_frame lndatk6 lndatk7 lndatk8 lndatk9 lndatk10
$fm_frame lndatk11
//
$fm_frame newattackA1 newattackA2 newattackA3 newattackA4 newattackA5
$fm_frame newattackA6 newattackA7 newattackA8 newattackA9 newattackA10
$fm_frame newattackA11 newattackA12 newattackA13 newattackA14 newattackA15
//
$fm_frame newattackB1 newattackB2 newattackB3 newattackB4 newattackB5
$fm_frame newattackB6 newattackB7 newattackB8 newattackB9 newattackB10
$fm_frame newattackB11 newattackB12 newattackB13 newattackB14 newattackB15
$fm_frame newattackB16 newattackB17
//
$fm_frame newbackspring1 newbackspring2 newbackspring3 newbackspring4 newbackspring5
$fm_frame newbackspring6 newbackspring7 newbackspring8 newbackspring9 newbackspring10
$fm_frame newbackspring11 newbackspring12 newbackspring13 newbackspring14 newbackspring15
//
$fm_frame newcrchlklft1 newcrchlklft2 newcrchlklft3 newcrchlklft4 newcrchlklft5
$fm_frame newcrchlklft6 newcrchlklft7 newcrchlklft8 newcrchlklft9 newcrchlklft10
$fm_frame newcrchlklft11 newcrchlklft12
//
$fm_frame newcrchlklr1 newcrchlklr2 newcrchlklr3 newcrchlklr4 newcrchlklr5
$fm_frame newcrchlklr6 newcrchlklr7 newcrchlklr8 newcrchlklr9 newcrchlklr10
$fm_frame newcrchlklr11 newcrchlklr12
//
$fm_frame newcrchlkrit1 newcrchlkrit2 newcrchlkrit3 newcrchlkrit4 newcrchlkrit5
$fm_frame newcrchlkrit6 newcrchlkrit7 newcrchlkrit8 newcrchlkrit9 newcrchlkrit10
$fm_frame newcrchlkrit11 newcrchlkrit12
//
$fm_frame newcrchtrn1 newcrchtrn2 newcrchtrn3 newcrchtrn4 newcrchtrn5
//
$fm_frame newcrhlkrtidle1 newcrhlkrtidle2 newcrhlkrtidle3 newcrhlkrtidle4 newcrhlkrtidle5
$fm_frame newcrhlkrtidle6 newcrhlkrtidle7 newcrhlkrtidle8 newcrhlkrtidle9 newcrhlkrtidle10
$fm_frame newcrhlkrtidle11 newcrhlkrtidle12
//
$fm_frame newcrouchidle1 newcrouchidle2 newcrouchidle3 newcrouchidle4 newcrouchidle5
$fm_frame newcrouchidle6 newcrouchidle7 newcrouchidle8 newcrouchidle9 newcrouchidle10
$fm_frame newcrouchidle11 newcrouchidle12
//
$fm_frame newidle1 newidle2 newidle3 newidle4 newidle5
$fm_frame newidle6 newidle7 newidle8 newidle9 newidle10
$fm_frame newidle11 newidle12
//
$fm_frame newlkleftidle1 newlkleftidle2 newlkleftidle3 newlkleftidle4 newlkleftidle5
$fm_frame newlkleftidle6 newlkleftidle7 newlkleftidle8 newlkleftidle9 newlkleftidle10
$fm_frame newlkleftidle11 newlkleftidle12
//
$fm_frame newwalk1 newwalk2 newwalk3 newwalk4 newwalk5
$fm_frame newwalk6 newwalk7 newwalk8 newwalk9 newwalk10
$fm_frame newwalk11 newwalk12 newwalk13 newwalk14
//
$fm_frame painb1 painb2 painb3 painb4 painb5
//
$fm_frame poke1 poke2 poke3 poke4 poke5
$fm_frame poke6 poke7 poke8 poke9 poke10
$fm_frame poke11 poke12 poke13 poke14 poke15
$fm_frame poke16 poke17 poke18
//
$fm_frame run1 run2 run3 run4 run5
$fm_frame run6 run7 run8 run9 run10
$fm_frame poke19 poke20 poke21 poke22 poke23 poke24

View file

@ -0,0 +1,29 @@
// ----
// Sprites required by blood splats
// ----
$sprdir fx
$spritename bsplat
$load art/gfx/sprites/splats/bldglob3.tga
$spriteframe 0 0 64 64
$load art/gfx/sprites/splats/bldglob4.tga
$spriteframe 0 0 64 64
$load art/gfx/sprites/splats/bldglob5.tga
$spriteframe 0 0 64 64
$load art/gfx/sprites/splats/bldglob6.tga
$spriteframe 0 0 64 64
$load art/gfx/sprites/splats/bldsprinkle.tga
$spriteframe 0 0 64 64
$spritename ysplat
$load art/gfx/sprites/splats/buglob3.tga
$spriteframe 0 0 64 64
$load art/gfx/sprites/splats/buglob4.tga
$spriteframe 0 0 64 64
$load art/gfx/sprites/splats/buglob5.tga
$spriteframe 0 0 64 64
$load art/gfx/sprites/splats/buglob6.tga
$spriteframe 0 0 64 64
$load art/gfx/sprites/splats/bugsprinkle.tga
$spriteframe 0 0 64 64

View file

@ -0,0 +1,43 @@
$fm_cd monsters\chicken
$fm_origin 0 0 0
$fm_base base skin
$fm_skin skin
$fm_scale 1
//
$fm_frame attack000 attack001 attack002 attack003 attack004
$fm_frame attack005
//
$fm_frame cluck000 cluck001 cluck002 cluck003 cluck004
$fm_frame cluck005 cluck006 cluck007 cluck008
//
$fm_frame decap000 decap001 decap002 decap003 decap004
$fm_frame decap005 decap006 decap007
//
$fm_frame jump000 jump001 jump002 jump003 jump004
$fm_frame jump005 jump006 jump007 jump008 jump009
$fm_frame jump010 jump011 jump012
//
$fm_frame peck000 peck001 peck002 peck003 peck004
$fm_frame peck005 peck006 peck007 peck008
//
$fm_frame rattack000 rattack001 rattack002 rattack003 rattack004
$fm_frame rattack005 rattack006 rattack007
//
$fm_frame run000 run001 run002 run003 run004
$fm_frame run005 run006 run007
//
$fm_frame wait000 wait001 wait002 wait003 wait004
//
$fm_frame walk000 walk001 walk002 walk003 walk004
$fm_frame walk005 walk006 walk007 walk008 walk009
$fm_frame walk010 walk011 walk012 walk013

View file

@ -0,0 +1,9 @@
// ------------------------------------
// Font creation
// ------------------------------------
$texturemix art\gfx\pics\fontset1\font1.tmx
$texturemix art\gfx\pics\fontset2\font2.tmx
// end

View file

@ -0,0 +1,15 @@
// ------------------------------------
// Compass test
// ------------------------------------
$sprdir fx
$spritename compass
$load art/gfx/sprites/north.pcx
$spriteframe 0 0 32 32
$load art/gfx/sprites/east.pcx
$spriteframe 0 0 32 32
$load art/gfx/sprites/south.pcx
$spriteframe 0 0 32 32
$load art/gfx/sprites/west.pcx
$spriteframe 0 0 32 32

View file

@ -0,0 +1,47 @@
// ------------------------------------
// Miscellaneous pics
// ------------------------------------
$picdir misc
$load art/gfx/pics/font/font.tga
$pic font 0 0 256 256
$load art/gfx/pics/particle.tga
$pic particle 0 0 128 128
$load art/gfx/pics/aparticle.pcx
$pic aparticle 0 0 128 128
$load art/gfx/pics/turtle.pcx
$pic turtle 0 0 32 32
$load art/gfx/pics/backtile.pcx
$pic backtile 0 0 128 128
$load art/gfx/pics/conback.pcx
$pic conback 0 0 256 256
$load art/gfx/pics/conchars.tga
$pic conchars 0 0 128 128
$load art/gfx/pics/loading.pcx
$pic loading 0 0 64 16
$load art/gfx/pics/pause.pcx
$pic pause 0 0 128 32
$load art/gfx/pics/reflect.tga
$pic reflect 0 0 128 128
$load art/gfx/pics/pausedback.tga
$pic textback 0 0 128 64
$load art/gfx/pics/net.pcx
$pic net 0 0 32 32
$load art/gfx/pics/bigdot.tga
$pic dot 0 0 8 8
$load art/gfx/pics/biggerdot.tga
$pic bigdot 0 0 16 16

View file

@ -0,0 +1,9 @@
// ------------------------------------
// Portal test
// ------------------------------------
$sprdir fx
$spritename portal1
$load art/gfx/sprites/portal.tga
$spriteframe 0 0 256 256

View file

@ -0,0 +1,68 @@
$fm_cd monsters\rat
$fm_origin 0 0 0
$fm_base base skin
$fm_skin skin
$fm_skin skindmg
$fm_scale 1
//
$fm_frame attack1 attack2 attack3 attack4 attack5
$fm_frame attack6 attack7 attack8 attack9 attack10
$fm_frame attack11 attack12
//
$fm_frame backup1 backup2 backup3 backup4 backup5
$fm_frame backup6
//
$fm_frame deathA1 deathA2 deathA3 deathA4 deathA5
$fm_frame deathA6 deathA7 deathA8 deathA9 deathA10
$fm_frame deathA11 deathA12 deathA13 deathA14
//
$fm_frame DeathB1 DeathB2 DeathB3 DeathB4 DeathB5
$fm_frame DeathB6 DeathB7 DeathB8 DeathB9
//
$fm_frame eat1 eat2 eat3 eat4 eat5
$fm_frame eat6 eat7 eat8 eat9 eat10
$fm_frame eat11 eat12 eat13 eat14 eat15
$fm_frame eat16 eat17 eat18 eat19 eat20
$fm_frame eat21 eat22 eat23 eat24
//
$fm_frame haunch1 haunch2 haunch3 haunch4 haunch5
$fm_frame haunch6 haunch7 haunch8 haunch9 haunch10
$fm_frame haunch11 haunch12 haunch13 haunch14 haunch15
$fm_frame haunch16 haunch17 haunch18 haunch19 haunch20
$fm_frame haunch21 haunch22 haunch23 haunch24 haunch25
$fm_frame haunch26 haunch27 haunch28 haunch29 haunch30
$fm_frame haunch31 haunch32 haunch33 haunch34 haunch35
$fm_frame haunch36 haunch37 haunch38 haunch39 haunch40
$fm_frame haunch41 haunch42 haunch43 haunch44 haunch45
$fm_frame haunch46 haunch47 haunch48 haunch49
//
$fm_frame hiss1 hiss2 hiss3 hiss4 hiss5
$fm_frame hiss6 hiss7 hiss8 hiss9 hiss10
$fm_frame hiss11 hiss12 hiss13 hiss14 hiss15
$fm_frame hiss16 hiss17 hiss18 hiss19 hiss20
$fm_frame hiss21 hiss22 hiss23 hiss24 hiss25
$fm_frame hiss26 hiss27 hiss28 hiss29
//
$fm_frame idle1 idle2 idle3 idle4 idle5
$fm_frame idle6 idle7 idle8 idle9 idle10
//
$fm_frame runstop1 runstop2 runstop3 runstop4 runstop5
$fm_frame runstop6 run_att1 run_att2 run_att3 run_att4
$fm_frame run_att5 run_lft1 run_lft2 run_lft3 run_lft4
$fm_frame run_lft5 run_rt1 run_rt2 run_rt3 run_rt4
$fm_frame run_rt5 run1 run2 run3 run4
$fm_frame run5
//
$fm_frame walk1 walk2 walk3 walk4 walk5
$fm_frame walk6

View file

@ -0,0 +1,65 @@
// ------------------------------------
// Icons for the status bar
// ------------------------------------
$picdir skins
$load art/gfx/pics/skins/Corvus_i.pcx
$pic Corvus_i 0 0 128 256
//$load art/gfx/pics/skins/Corvus_Plague1_i.pcx
//$pic Corvus_Plague1_i 0 0 128 256
//$load art/gfx/pics/skins/Corvus_Plague2_i.pcx
//$pic Corvus_Plague2_i 0 0 128 256
$load art/gfx/pics/skins/Nubian_i.pcx
$pic Nubian_i 0 0 128 256
//$load art/gfx/pics/skins/Nubian_Plague1_i.pcx
//$pic Nubian_Plague1_i 0 0 128 256
//$load art/gfx/pics/skins/Nubian_Plague2_i.pcx
//$pic Nubian_Plague2_i 0 0 128 256
$load art/gfx/pics/skins/Rogue_i.pcx
$pic Rogue_i 0 0 128 256
//$load art/gfx/pics/skins/Rogue_Plague1_i.pcx
//$pic Rogue_Plague1_i 0 0 128 256
//$load art/gfx/pics/skins/Rogue_Plague2_i.pcx
//$pic Rogue_Plague2_i 0 0 128 256
$load art/gfx/pics/skins/Brigand_i.pcx
$pic Brigand_i 0 0 128 256
//$load art/gfx/pics/skins/Brigand_Plague1_i.pcx
//$pic Brigand_Plague1_i 0 0 128 256
//$load art/gfx/pics/skins/Brigand_Plague2_i.pcx
//$pic Brigand_Plague2_i 0 0 128 256
$load art/gfx/pics/skins/Valkyrie_i.pcx
$pic Valkyrie_i 0 0 128 256
$load art/gfx/pics/skins/Spider_i.pcx
$pic Spider_i 0 0 128 256
$load art/gfx/pics/skins/ThiefKing_i.pcx
$pic ThiefKing_i 0 0 128 256
$load art/gfx/pics/skins/Ronin_i.pcx
$pic Ronin_i 0 0 128 256
$load art/gfx/pics/skins/SoulTaker_i.pcx
$pic SoulTaker_i 0 0 128 256
$load art/gfx/pics/skins/Patchwork_i.pcx
$pic Patchwork_i 0 0 128 256
$load art/gfx/pics/skins/Demon_i.pcx
$pic Demon_i 0 0 128 256
$load art/gfx/pics/skins/Amazon_i.pcx
$pic Amazon_i 0 0 128 256

View file

@ -0,0 +1,102 @@
#include <string.h>
#include "Reference.h"
#include "ArrayedList.h"
#include "ResourceManager.h"
#include "Skeletons.h"
char *referenceRootNames[] =
{
"elf_Lhandroot",//0
"elf_Rhandroot",
"elf_Rfootroot",
"elf_Lfootroot",
"elf_Bstaffroot",
"elf_bladeroot",
"elf_hellroot",
"StaffBone",//7
"SwordBone",
"SpearBone",
"RFootBone",
"LFootBone",
"hp_backroot",//12
"hp_staffroot",
"hp_lhandroot",
"hp_rhandroot",
"hp_rfootroot",
"hp_lfootroot",
"staffroot",//18
"rfootroot",
"lfootroot",
"rhandroot",
"lhandroot",
"leyeroot",
"reyeroot"
};
int referenceRootNameOffsets[NUM_REFERENCED] =
{
0, // CORVUS
7, // INSECT
12, // HIGH PRIESTESS
18, // MORCALAVIN
};
int numReferences[NUM_REFERENCED] =
{
NUM_REFERENCES_CORVUS,
NUM_REFERENCES_INSECT,
NUM_REFERENCES_PRIESTESS,
NUM_REFERENCES_MORK,
};
int corvusJointIDs[NUM_REFERENCES_CORVUS] =
{
CORVUS_UPPERBACK,
CORVUS_UPPERBACK,
-1,
-1,
CORVUS_UPPERBACK,
CORVUS_UPPERBACK,
CORVUS_UPPERBACK,
};
int *jointIDs[NUM_REFERENCED] =
{
corvusJointIDs,
};
static ResourceManager_t ReferenceMngr;
void InitReferenceMngr()
{
#define REFERENCE_BLOCK_SIZE 8
ResMngr_Con(&ReferenceMngr, sizeof(LERPedReferences_t), REFERENCE_BLOCK_SIZE);
}
void ReleaseReferenceMngr()
{
ResMngr_Des(&ReferenceMngr);
}
LERPedReferences_t *LERPedReferences_new(int init_refType)
{
LERPedReferences_t *newRefs;
newRefs = ResMngr_AllocateResource(&ReferenceMngr, sizeof(*newRefs));
newRefs->refType = init_refType;
newRefs->jointIDs = jointIDs[init_refType];
newRefs->lastUpdate = -(REF_MINCULLTIME*2.0);
memset(newRefs->references, 0, MAX_REFPOINTS*sizeof(Reference_t));
memset(newRefs->oldReferences, 0, MAX_REFPOINTS*sizeof(Reference_t));
return newRefs;
}
void LERPedReferences_delete(LERPedReferences_t *toDelete)
{
ResMngr_DeallocateResource(&ReferenceMngr, toDelete, sizeof(*toDelete));
}
// end

View file

@ -0,0 +1,147 @@
//
// ResourceManager.c
//
// Copyright 1998 Raven Software
//
#include <windows.h>
#include <stdio.h>
#include "ResourceManager.h"
#include <assert.h>
typedef struct ResMngr_Block_s
{
char *start;
unsigned int size;
struct ResMngr_Block_s *next;
} ResMngr_Block_t;
static void ResMngr_CreateBlock(ResourceManager_t *resource)
{
unsigned int _blockSize;
char *block;
char **current;
ResMngr_Block_t *temp;
unsigned int i;
_blockSize = resource->nodeSize * resource->resPerBlock;
block = malloc(_blockSize);
assert(block);
temp = malloc(sizeof(*temp));
temp->start = block;
temp->size = _blockSize;
temp->next = resource->blockList;
resource->blockList = temp;
resource->free = (char **)(block);
current = resource->free;
for(i = 1; i < resource->resPerBlock; ++i)
{
// set current->next to point to next node
*current = (char *)(current) + resource->nodeSize;
// set current node to current->next
current = (char **)(*current);
}
*current = NULL;
}
H2COMMON_API void ResMngr_Con(ResourceManager_t *resource, size_t init_resSize, unsigned int init_resPerBlock)
{
resource->resSize = init_resSize;
resource->resPerBlock = init_resPerBlock;
resource->nodeSize = resource->resSize + sizeof(*resource->free);
resource->blockList = NULL;
#ifndef NDEBUG
resource->numResourcesAllocated = 0;
#endif
ResMngr_CreateBlock(resource);
}
H2COMMON_API void ResMngr_Des(ResourceManager_t *resource)
{
ResMngr_Block_t *toDelete;
#ifndef NDEBUG
if (resource->numResourcesAllocated)
{
char mess[100];
sprintf(mess,"Potential memory leak %d bytes unfreed\n",resource->resSize*resource->numResourcesAllocated);
OutputDebugString(mess);
}
#endif
while(resource->blockList)
{
toDelete = resource->blockList;
resource->blockList = resource->blockList->next;
free(toDelete->start);
free(toDelete);
}
}
H2COMMON_API void *ResMngr_AllocateResource(ResourceManager_t *resource, size_t size)
{
char **toPop;
assert(size == resource->resSize);
#ifndef NDEBUG
++resource->numResourcesAllocated;
#endif
assert(resource->free); // constructor not called; possibly due to a static object
// containing a static ResourceManagerFastLarge member being
// constructed before its own static members
toPop = resource->free;
// set unallocated to the next node and check for NULL (end of list)
if(!(resource->free = (char **)(*resource->free)))
{ // if at end create new block
ResMngr_CreateBlock(resource);
}
// set next to NULL
*toPop = NULL;
// return the resource for the node
return (void *)(toPop + 1);
}
H2COMMON_API void ResMngr_DeallocateResource(ResourceManager_t *resource, void *toDeallocate, size_t size)
{
char **toPush;
assert(size == resource->resSize);
#ifndef NDEBUG
assert(resource->numResourcesAllocated);
--resource->numResourcesAllocated;
#endif
toPush = (char **)(toDeallocate) - 1;
assert(resource->free); // see same assert at top of AllocateResource
// set toPop->next to current unallocated front
*toPush = (char *)(resource->free);
// set unallocated to the node removed from allocated
resource->free = toPush;
}
// end

View file

@ -0,0 +1,783 @@
#include "cmdlib.h"
#include "mathlib.h"
#include "bspfile.h"
#include "scriplib.h"
void GetLeafNums (void);
//=============================================================================
int nummodels;
dmodel_t dmodels[MAX_MAP_MODELS];
int visdatasize;
byte dvisdata[MAX_MAP_VISIBILITY];
dvis_t *dvis = (dvis_t *)dvisdata;
int lightdatasize;
byte dlightdata[MAX_MAP_LIGHTING];
int entdatasize;
char dentdata[MAX_MAP_ENTSTRING];
int numleafs;
dleaf_t dleafs[MAX_MAP_LEAFS];
int numplanes;
dplane_t dplanes[MAX_MAP_PLANES];
int numvertexes;
dvertex_t dvertexes[MAX_MAP_VERTS];
int numnodes;
dnode_t dnodes[MAX_MAP_NODES];
int numtexinfo;
texinfo_t texinfo[MAX_MAP_TEXINFO];
int numfaces;
dface_t dfaces[MAX_MAP_FACES];
int numedges;
dedge_t dedges[MAX_MAP_EDGES];
int numleaffaces;
unsigned short dleaffaces[MAX_MAP_LEAFFACES];
int numleafbrushes;
unsigned short dleafbrushes[MAX_MAP_LEAFBRUSHES];
int numsurfedges;
int dsurfedges[MAX_MAP_SURFEDGES];
int numbrushes;
dbrush_t dbrushes[MAX_MAP_BRUSHES];
int numbrushsides;
dbrushside_t dbrushsides[MAX_MAP_BRUSHSIDES];
int numareas;
darea_t dareas[MAX_MAP_AREAS];
int numareaportals;
dareaportal_t dareaportals[MAX_MAP_AREAPORTALS];
//int numpathpoints = 0;
//pathpoint_t dpathpoints[MAX_MAP_EDGES];
//int numpathfaces = 0;
//pathinfo_t dpath[MAX_MAP_FACES];
byte dpop[256];
/*
===============
CompressVis
===============
*/
int CompressVis (byte *vis, byte *dest)
{
int j;
int rep;
int visrow;
byte *dest_p;
dest_p = dest;
// visrow = (r_numvisleafs + 7)>>3;
visrow = (dvis->numclusters + 7)>>3;
for (j=0 ; j<visrow ; j++)
{
*dest_p++ = vis[j];
if (vis[j])
continue;
rep = 1;
for ( j++; j<visrow ; j++)
if (vis[j] || rep == 255)
break;
else
rep++;
*dest_p++ = rep;
j--;
}
return dest_p - dest;
}
/*
===================
DecompressVis
===================
*/
void DecompressVis (byte *in, byte *decompressed)
{
int c;
byte *out;
int row;
// row = (r_numvisleafs+7)>>3;
row = (dvis->numclusters+7)>>3;
out = decompressed;
do
{
if (*in)
{
*out++ = *in++;
continue;
}
c = in[1];
if (!c)
Error ("DecompressVis: 0 repeat");
in += 2;
while (c)
{
*out++ = 0;
c--;
}
} while (out - decompressed < row);
}
//=============================================================================
/*
=============
SwapBSPFile
Byte swaps all data in a bsp file.
=============
*/
void SwapBSPFile (qboolean todisk)
{
int i, j;
dmodel_t *d;
// models
for (i=0 ; i<nummodels ; i++)
{
d = &dmodels[i];
d->firstface = LittleLong (d->firstface);
d->numfaces = LittleLong (d->numfaces);
d->headnode = LittleLong (d->headnode);
for (j=0 ; j<3 ; j++)
{
d->mins[j] = LittleFloat(d->mins[j]);
d->maxs[j] = LittleFloat(d->maxs[j]);
d->origin[j] = LittleFloat(d->origin[j]);
}
}
//
// vertexes
//
for (i=0 ; i<numvertexes ; i++)
{
for (j=0 ; j<3 ; j++)
dvertexes[i].point[j] = LittleFloat (dvertexes[i].point[j]);
}
//
// planes
//
for (i=0 ; i<numplanes ; i++)
{
for (j=0 ; j<3 ; j++)
dplanes[i].normal[j] = LittleFloat (dplanes[i].normal[j]);
dplanes[i].dist = LittleFloat (dplanes[i].dist);
dplanes[i].type = LittleLong (dplanes[i].type);
}
//
// texinfos
//
for (i=0 ; i<numtexinfo ; i++)
{
for (j=0 ; j<8 ; j++)
texinfo[i].vecs[0][j] = LittleFloat (texinfo[i].vecs[0][j]);
texinfo[i].flags = LittleLong (texinfo[i].flags);
texinfo[i].value = LittleLong (texinfo[i].value);
texinfo[i].nexttexinfo = LittleLong (texinfo[i].nexttexinfo);
}
//
// faces
//
for (i=0 ; i<numfaces ; i++)
{
dfaces[i].texinfo = LittleShort (dfaces[i].texinfo);
dfaces[i].planenum = LittleShort (dfaces[i].planenum);
dfaces[i].side = LittleShort (dfaces[i].side);
dfaces[i].lighting.c = LittleLong (dfaces[i].lighting.c);
dfaces[i].lightofs = LittleLong (dfaces[i].lightofs);
dfaces[i].firstedge = LittleLong (dfaces[i].firstedge);
dfaces[i].numedges = LittleShort (dfaces[i].numedges);
}
//
// nodes
//
for (i=0 ; i<numnodes ; i++)
{
dnodes[i].planenum = LittleLong (dnodes[i].planenum);
for (j=0 ; j<3 ; j++)
{
dnodes[i].mins[j] = LittleShort (dnodes[i].mins[j]);
dnodes[i].maxs[j] = LittleShort (dnodes[i].maxs[j]);
}
dnodes[i].children[0] = LittleLong (dnodes[i].children[0]);
dnodes[i].children[1] = LittleLong (dnodes[i].children[1]);
dnodes[i].firstface = LittleShort (dnodes[i].firstface);
dnodes[i].numfaces = LittleShort (dnodes[i].numfaces);
}
//
// leafs
//
for (i=0 ; i<numleafs ; i++)
{
dleafs[i].contents = LittleLong (dleafs[i].contents);
dleafs[i].cluster = LittleShort (dleafs[i].cluster);
dleafs[i].area = LittleShort (dleafs[i].area);
for (j=0 ; j<3 ; j++)
{
dleafs[i].mins[j] = LittleShort (dleafs[i].mins[j]);
dleafs[i].maxs[j] = LittleShort (dleafs[i].maxs[j]);
}
dleafs[i].firstleafface = LittleShort (dleafs[i].firstleafface);
dleafs[i].numleaffaces = LittleShort (dleafs[i].numleaffaces);
dleafs[i].firstleafbrush = LittleShort (dleafs[i].firstleafbrush);
dleafs[i].numleafbrushes = LittleShort (dleafs[i].numleafbrushes);
}
//
// leaffaces
//
for (i=0 ; i<numleaffaces ; i++)
dleaffaces[i] = LittleShort (dleaffaces[i]);
//
// leafbrushes
//
for (i=0 ; i<numleafbrushes ; i++)
dleafbrushes[i] = LittleShort (dleafbrushes[i]);
//
// surfedges
//
for (i=0 ; i<numsurfedges ; i++)
dsurfedges[i] = LittleLong (dsurfedges[i]);
//
// edges
//
for (i=0 ; i<numedges ; i++)
{
dedges[i].v[0] = LittleShort (dedges[i].v[0]);
dedges[i].v[1] = LittleShort (dedges[i].v[1]);
}
//
// brushes
//
for (i=0 ; i<numbrushes ; i++)
{
dbrushes[i].firstside = LittleLong (dbrushes[i].firstside);
dbrushes[i].numsides = LittleLong (dbrushes[i].numsides);
dbrushes[i].contents = LittleLong (dbrushes[i].contents);
}
//
// areas
//
for (i=0 ; i<numareas ; i++)
{
dareas[i].numareaportals = LittleLong (dareas[i].numareaportals);
dareas[i].firstareaportal = LittleLong (dareas[i].firstareaportal);
}
//
// areasportals
//
for (i=0 ; i<numareaportals ; i++)
{
dareaportals[i].portalnum = LittleLong (dareaportals[i].portalnum);
dareaportals[i].otherarea = LittleLong (dareaportals[i].otherarea);
}
//
// brushsides
//
for (i=0 ; i<numbrushsides ; i++)
{
dbrushsides[i].planenum = LittleShort (dbrushsides[i].planenum);
dbrushsides[i].texinfo = LittleShort (dbrushsides[i].texinfo);
}
//
// visibility
//
if (todisk)
j = dvis->numclusters;
else
j = LittleLong(dvis->numclusters);
dvis->numclusters = LittleLong (dvis->numclusters);
for (i=0 ; i<j ; i++)
{
dvis->bitofs[i][0] = LittleLong (dvis->bitofs[i][0]);
dvis->bitofs[i][1] = LittleLong (dvis->bitofs[i][1]);
}
}
dheader_t *header;
int CopyLump (int lump, void *dest, int size)
{
int length, ofs;
length = header->lumps[lump].filelen;
ofs = header->lumps[lump].fileofs;
if (length % size)
Error ("LoadBSPFile: odd lump size");
memcpy (dest, (byte *)header + ofs, length);
return length / size;
}
/*
=============
LoadBSPFile
=============
*/
void LoadBSPFile (char *filename)
{
int i;
//
// load the file header
//
LoadFile (filename, (void **)&header);
// swap the header
for (i=0 ; i< sizeof(dheader_t)/4 ; i++)
((int *)header)[i] = LittleLong ( ((int *)header)[i]);
if (header->ident != IDBSPHEADER)
Error ("%s is not a IBSP file", filename);
if (header->version != BSPVERSION)
Error ("%s is version %i, not %i", filename, header->version, BSPVERSION);
nummodels = CopyLump (LUMP_MODELS, dmodels, sizeof(dmodel_t));
numvertexes = CopyLump (LUMP_VERTEXES, dvertexes, sizeof(dvertex_t));
numplanes = CopyLump (LUMP_PLANES, dplanes, sizeof(dplane_t));
numleafs = CopyLump (LUMP_LEAFS, dleafs, sizeof(dleaf_t));
numnodes = CopyLump (LUMP_NODES, dnodes, sizeof(dnode_t));
numtexinfo = CopyLump (LUMP_TEXINFO, texinfo, sizeof(texinfo_t));
numfaces = CopyLump (LUMP_FACES, dfaces, sizeof(dface_t));
numleaffaces = CopyLump (LUMP_LEAFFACES, dleaffaces, sizeof(dleaffaces[0]));
numleafbrushes = CopyLump (LUMP_LEAFBRUSHES, dleafbrushes, sizeof(dleafbrushes[0]));
numsurfedges = CopyLump (LUMP_SURFEDGES, dsurfedges, sizeof(dsurfedges[0]));
numedges = CopyLump (LUMP_EDGES, dedges, sizeof(dedge_t));
numbrushes = CopyLump (LUMP_BRUSHES, dbrushes, sizeof(dbrush_t));
numbrushsides = CopyLump (LUMP_BRUSHSIDES, dbrushsides, sizeof(dbrushside_t));
numareas = CopyLump (LUMP_AREAS, dareas, sizeof(darea_t));
numareaportals = CopyLump (LUMP_AREAPORTALS, dareaportals, sizeof(dareaportal_t));
// numpathpoints = CopyLump (LUMP_PATH_POINTS, dpathpoints, sizeof(pathpoint_t));
// numpathfaces = CopyLump (LUMP_PATH, dpath, sizeof(pathinfo_t));
visdatasize = CopyLump (LUMP_VISIBILITY, dvisdata, 1);
lightdatasize = CopyLump (LUMP_LIGHTING, dlightdata, 1);
entdatasize = CopyLump (LUMP_ENTITIES, dentdata, 1);
CopyLump (LUMP_POP, dpop, 1);
free (header); // everything has been copied out
//
// swap everything
//
SwapBSPFile (false);
}
/*
=============
LoadBSPFileTexinfo
Only loads the texinfo lump, so qdata can scan for textures
=============
*/
void LoadBSPFileTexinfo (char *filename)
{
int i;
FILE *f;
int length, ofs;
header = malloc(sizeof(dheader_t));
f = fopen (filename, "rb");
fread (header, sizeof(dheader_t), 1, f);
// swap the header
for (i=0 ; i< sizeof(dheader_t)/4 ; i++)
((int *)header)[i] = LittleLong ( ((int *)header)[i]);
if (header->ident != IDBSPHEADER)
Error ("%s is not a IBSP file", filename);
if (header->version != BSPVERSION)
Error ("%s is version %i, not %i", filename, header->version, BSPVERSION);
length = header->lumps[LUMP_TEXINFO].filelen;
ofs = header->lumps[LUMP_TEXINFO].fileofs;
fseek (f, ofs, SEEK_SET);
fread (texinfo, length, 1, f);
fclose (f);
numtexinfo = length / sizeof(texinfo_t);
free (header); // everything has been copied out
SwapBSPFile (false);
}
//============================================================================
FILE *wadfile;
dheader_t outheader;
void AddLump (int lumpnum, void *data, int len)
{
lump_t *lump;
lump = &header->lumps[lumpnum];
lump->fileofs = LittleLong( ftell(wadfile) );
lump->filelen = LittleLong(len);
SafeWrite (wadfile, data, (len+3)&~3);
}
/*
=============
WriteBSPFile
Swaps the bsp file in place, so it should not be referenced again
=============
*/
void WriteBSPFile (char *filename)
{
header = &outheader;
memset (header, 0, sizeof(dheader_t));
SwapBSPFile (true);
header->ident = LittleLong (IDBSPHEADER);
header->version = LittleLong (BSPVERSION);
wadfile = SafeOpenWrite (filename);
SafeWrite (wadfile, header, sizeof(dheader_t)); // overwritten later
AddLump (LUMP_PLANES, dplanes, numplanes*sizeof(dplane_t));
AddLump (LUMP_LEAFS, dleafs, numleafs*sizeof(dleaf_t));
AddLump (LUMP_VERTEXES, dvertexes, numvertexes*sizeof(dvertex_t));
AddLump (LUMP_NODES, dnodes, numnodes*sizeof(dnode_t));
AddLump (LUMP_TEXINFO, texinfo, numtexinfo*sizeof(texinfo_t));
AddLump (LUMP_FACES, dfaces, numfaces*sizeof(dface_t));
AddLump (LUMP_BRUSHES, dbrushes, numbrushes*sizeof(dbrush_t));
AddLump (LUMP_BRUSHSIDES, dbrushsides, numbrushsides*sizeof(dbrushside_t));
AddLump (LUMP_LEAFFACES, dleaffaces, numleaffaces*sizeof(dleaffaces[0]));
AddLump (LUMP_LEAFBRUSHES, dleafbrushes, numleafbrushes*sizeof(dleafbrushes[0]));
AddLump (LUMP_SURFEDGES, dsurfedges, numsurfedges*sizeof(dsurfedges[0]));
AddLump (LUMP_EDGES, dedges, numedges*sizeof(dedge_t));
AddLump (LUMP_MODELS, dmodels, nummodels*sizeof(dmodel_t));
AddLump (LUMP_AREAS, dareas, numareas*sizeof(darea_t));
AddLump (LUMP_AREAPORTALS, dareaportals, numareaportals*sizeof(dareaportal_t));
// AddLump (LUMP_PATH_POINTS, dpathpoints, numpathpoints*sizeof(pathpoint_t));
// AddLump (LUMP_PATH, dpath, numpathfaces*sizeof(pathinfo_t));
AddLump (LUMP_LIGHTING, dlightdata, lightdatasize);
AddLump (LUMP_VISIBILITY, dvisdata, visdatasize);
AddLump (LUMP_ENTITIES, dentdata, entdatasize);
AddLump (LUMP_POP, dpop, sizeof(dpop));
fseek (wadfile, 0, SEEK_SET);
SafeWrite (wadfile, header, sizeof(dheader_t));
fclose (wadfile);
}
//============================================================================
/*
=============
PrintBSPFileSizes
Dumps info about current file
=============
*/
void PrintBSPFileSizes (void)
{
if (!num_entities)
ParseEntities ();
printf ("%5i models %7i\n"
,nummodels, (int)(nummodels*sizeof(dmodel_t)));
printf ("%5i brushes %7i\n"
,numbrushes, (int)(numbrushes*sizeof(dbrush_t)));
printf ("%5i brushsides %7i\n"
,numbrushsides, (int)(numbrushsides*sizeof(dbrushside_t)));
printf ("%5i planes %7i\n"
,numplanes, (int)(numplanes*sizeof(dplane_t)));
printf ("%5i texinfo %7i\n"
,numtexinfo, (int)(numtexinfo*sizeof(texinfo_t)));
printf ("%5i entdata %7i\n", num_entities, entdatasize);
printf ("\n");
printf ("%5i vertexes %7i\n"
,numvertexes, (int)(numvertexes*sizeof(dvertex_t)));
printf ("%5i nodes %7i\n"
,numnodes, (int)(numnodes*sizeof(dnode_t)));
printf ("%5i faces %7i\n"
,numfaces, (int)(numfaces*sizeof(dface_t)));
printf ("%5i leafs %7i\n"
,numleafs, (int)(numleafs*sizeof(dleaf_t)));
printf ("%5i leaffaces %7i\n"
,numleaffaces, (int)(numleaffaces*sizeof(dleaffaces[0])));
printf ("%5i leafbrushes %7i\n"
,numleafbrushes, (int)(numleafbrushes*sizeof(dleafbrushes[0])));
printf ("%5i surfedges %7i\n"
,numsurfedges, (int)(numsurfedges*sizeof(dsurfedges[0])));
printf ("%5i edges %7i\n"
,numedges, (int)(numedges*sizeof(dedge_t)));
printf (" lightdata %7i\n", lightdatasize);
printf (" visdata %7i\n", visdatasize);
}
//============================================
int num_entities;
entity_t entities[MAX_MAP_ENTITIES];
void StripTrailing (char *e)
{
char *s;
s = e + strlen(e)-1;
while (s >= e && *s <= 32)
{
*s = 0;
s--;
}
}
/*
=================
ParseEpair
=================
*/
epair_t *ParseEpair (void)
{
epair_t *e;
e = malloc (sizeof(epair_t));
memset (e, 0, sizeof(epair_t));
if (strlen(token) >= MAX_KEY-1)
Error ("ParseEpar: token too long");
e->key = copystring(token);
GetScriptToken (false);
if (strlen(token) >= MAX_VALUE-1)
Error ("ParseEpar: token too long");
e->value = copystring(token);
// strip trailing spaces
StripTrailing (e->key);
StripTrailing (e->value);
return e;
}
/*
================
ParseEntity
================
*/
qboolean ParseEntity (void)
{
epair_t *e;
entity_t *mapent;
if (!GetScriptToken (true))
return false;
if (strcmp (token, "{") )
Error ("ParseEntity: { not found");
if (num_entities == MAX_MAP_ENTITIES)
Error ("num_entities == MAX_MAP_ENTITIES");
mapent = &entities[num_entities];
num_entities++;
do
{
if (!GetScriptToken (true))
Error ("ParseEntity: EOF without closing brace");
if (!strcmp (token, "}") )
break;
e = ParseEpair ();
e->next = mapent->epairs;
mapent->epairs = e;
} while (1);
return true;
}
/*
================
ParseEntities
Parses the dentdata string into entities
================
*/
void ParseEntities (void)
{
num_entities = 0;
ParseFromMemory (dentdata, entdatasize);
while (ParseEntity ())
{
}
}
/*
================
UnparseEntities
Generates the dentdata string from all the entities
================
*/
void UnparseEntities (void)
{
char *buf, *end;
epair_t *ep;
char line[2048];
int i;
char key[1024], value[1024];
buf = dentdata;
end = buf;
*end = 0;
for (i=0 ; i<num_entities ; i++)
{
ep = entities[i].epairs;
if (!ep)
continue; // ent got removed
strcat (end,"{\n");
end += 2;
for (ep = entities[i].epairs ; ep ; ep=ep->next)
{
strcpy (key, ep->key);
StripTrailing (key);
strcpy (value, ep->value);
StripTrailing (value);
sprintf (line, "\"%s\" \"%s\"\n", key, value);
strcat (end, line);
end += strlen(line);
}
strcat (end,"}\n");
end += 2;
if (end > buf + MAX_MAP_ENTSTRING)
Error ("Entity text too long");
}
entdatasize = end - buf + 1;
}
void PrintEntity (entity_t *ent)
{
epair_t *ep;
printf ("------- entity %p -------\n", ent);
for (ep=ent->epairs ; ep ; ep=ep->next)
{
printf ("%s = %s\n", ep->key, ep->value);
}
}
void SetKeyValue (entity_t *ent, char *key, char *value)
{
epair_t *ep;
for (ep=ent->epairs ; ep ; ep=ep->next)
if (!strcmp (ep->key, key) )
{
free (ep->value);
ep->value = copystring(value);
return;
}
ep = malloc (sizeof(*ep));
if (!ep)
Error("SetKeyValue MALLOC failed! Could not allocate %s bytes.", sizeof(*ep));
ep->next = ent->epairs;
ent->epairs = ep;
ep->key = copystring(key);
ep->value = copystring(value);
}
char *ValueForKey (entity_t *ent, char *key)
{
epair_t *ep;
for (ep=ent->epairs ; ep ; ep=ep->next)
if (!strcmp (ep->key, key) )
return ep->value;
return "";
}
vec_t FloatForKey (entity_t *ent, char *key)
{
char *k;
k = ValueForKey (ent, key);
return atof(k);
}
void GetVectorForKey (entity_t *ent, char *key, vec3_t vec)
{
char *k;
double v1, v2, v3;
k = ValueForKey (ent, key);
// scanf into doubles, then assign, so it is vec_t size independent
v1 = v2 = v3 = 0;
sscanf (k, "%lf %lf %lf", &v1, &v2, &v3);
vec[0] = v1;
vec[1] = v2;
vec[2] = v3;
}

View file

@ -0,0 +1,114 @@
#include "qfiles.h"
extern int nummodels;
extern dmodel_t dmodels[MAX_MAP_MODELS];
extern int visdatasize;
extern byte dvisdata[MAX_MAP_VISIBILITY];
extern dvis_t *dvis;
extern int lightdatasize;
extern byte dlightdata[MAX_MAP_LIGHTING];
extern int entdatasize;
extern char dentdata[MAX_MAP_ENTSTRING];
extern int numleafs;
extern dleaf_t dleafs[MAX_MAP_LEAFS];
extern int numplanes;
extern dplane_t dplanes[MAX_MAP_PLANES];
extern int numvertexes;
extern dvertex_t dvertexes[MAX_MAP_VERTS];
extern int numnodes;
extern dnode_t dnodes[MAX_MAP_NODES];
extern int numtexinfo;
extern texinfo_t texinfo[MAX_MAP_TEXINFO];
extern int numfaces;
extern dface_t dfaces[MAX_MAP_FACES];
extern int numedges;
extern dedge_t dedges[MAX_MAP_EDGES];
extern int numleaffaces;
extern unsigned short dleaffaces[MAX_MAP_LEAFFACES];
extern int numleafbrushes;
extern unsigned short dleafbrushes[MAX_MAP_LEAFBRUSHES];
extern int numsurfedges;
extern int dsurfedges[MAX_MAP_SURFEDGES];
extern int numareas;
extern darea_t dareas[MAX_MAP_AREAS];
extern int numareaportals;
extern dareaportal_t dareaportals[MAX_MAP_AREAPORTALS];
extern int numbrushes;
extern dbrush_t dbrushes[MAX_MAP_BRUSHES];
extern int numbrushsides;
extern dbrushside_t dbrushsides[MAX_MAP_BRUSHSIDES];
//extern int numpathpoints;
//extern pathpoint_t dpathpoints[MAX_MAP_EDGES];
//extern int numpathfaces;
//extern pathinfo_t dpath[MAX_MAP_FACES];
extern byte dpop[256];
void DecompressVis (byte *in, byte *decompressed);
int CompressVis (byte *vis, byte *dest);
void LoadBSPFile (char *filename);
void LoadBSPFileTexinfo (char *filename); // just for qdata
void WriteBSPFile (char *filename);
void PrintBSPFileSizes (void);
//===============
typedef struct epair_s
{
struct epair_s *next;
char *key;
char *value;
} epair_t;
typedef struct
{
vec3_t origin;
int firstbrush;
int numbrushes;
epair_t *epairs;
// only valid for func_areaportals
int areaportalnum;
int portalareas[2];
} entity_t;
extern int num_entities;
extern entity_t entities[MAX_MAP_ENTITIES];
void ParseEntities (void);
void UnparseEntities (void);
void SetKeyValue (entity_t *ent, char *key, char *value);
char *ValueForKey (entity_t *ent, char *key);
// will return "" if not present
vec_t FloatForKey (entity_t *ent, char *key);
void GetVectorForKey (entity_t *ent, char *key, vec3_t vec);
epair_t *ParseEpair (void);
void PrintEntity (entity_t *ent);

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,129 @@
// cmdlib.h
#ifndef __CMDLIB__
#define __CMDLIB__
#ifdef _WIN32
#pragma warning(disable : 4244) // MIPS
#pragma warning(disable : 4136) // X86
#pragma warning(disable : 4051) // ALPHA
#pragma warning(disable : 4018) // signed/unsigned mismatch
#pragma warning(disable : 4305) // truncate from double to float
#endif
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <ctype.h>
#include <time.h>
#include <stdarg.h>
#include "../../GameCode/qcommon/q_typedef.h"
// the dec offsetof macro doesnt work very well...
#define myoffsetof(type,identifier) ((size_t)&((type *)0)->identifier)
// set these before calling CheckParm
extern int myargc;
extern char **myargv;
char *Q_strupr (char *in);
char *Q_strlower (char *in);
int Q_strncasecmp (char *s1, char *s2, int n);
int Q_strcasecmp (char *s1, char *s2);
void Q_getwd (char *out);
int Q_filelength (FILE *f);
int FileTime (char *path);
void Q_mkdir (char *path);
extern char qdir[1024];
extern char gamedir[1024];
void SetQdirFromPath (char *path);
char *ExpandArg (char *path); // from cmd line
char *ExpandPath (char *path); // from scripts
char *ExpandPathAndArchive (char *path);
double I_FloatTime (void);
void Error (char *error, ...);
int CheckParm (char *check);
void ParseCommandLine (char *lpCmdLine);
FILE *SafeOpenWrite (char *filename);
FILE *SafeOpenRead (char *filename);
void SafeRead (FILE *f, void *buffer, int count);
void SafeWrite (FILE *f, void *buffer, int count);
int LoadFile (char *filename, void **bufferptr);
int TryLoadFile (char *filename, void **bufferptr);
int LoadFileNoCrash (char *filename, void **bufferptr);
void SaveFile (char *filename, void *buffer, int count);
qboolean FileExists (char *filename);
void DefaultExtension (char *path, char *extension);
void DefaultPath (char *path, char *basepath);
void StripFilename (char *path);
void StripExtension (char *path);
void ExtractFilePath (char *path, char *dest);
void ExtractFileName (char *path, char *dest);
void ExtractFileBase (char *path, char *dest);
void ExtractFileExtension (char *path, char *dest);
int ParseNum (char *str);
short BigShort (short l);
short LittleShort (short l);
int BigLong (int l);
int LittleLong (int l);
float BigFloat (float l);
float LittleFloat (float l);
char *COM_Parse (char *data);
extern char com_token[1024];
extern qboolean com_eof;
#define MAX_NUM_ARGVS 32
extern int argc;
extern char *argv[MAX_NUM_ARGVS];
char *copystring(char *s);
void CRC_Init(unsigned short *crcvalue);
void CRC_ProcessByte(unsigned short *crcvalue, byte data);
unsigned short CRC_Value(unsigned short crcvalue);
void CreatePath (char *path);
void QCopyFile (char *from, char *to);
void *SafeMalloc(size_t n, char *desc);
extern qboolean archive;
extern char archivedir[1024];
extern qboolean verbose;
void qprintf (char *format, ...);
void ExpandWildcards (int *argc, char ***argv);
// for compression routines
typedef struct
{
byte *data;
int count;
} cblock_t;
extern qboolean g_dokeypress;
#endif

View file

@ -0,0 +1,453 @@
//
// l3dslib.c: library for loading triangles from an Alias triangle file
//
#include <stdio.h>
#include "cmdlib.h"
#include "mathlib.h"
#include "trilib.h"
#include "l3dslib.h"
#include "token.h"
#include "../ref_common/fmodel.h"
#define MAIN3DS 0x4D4D
#define EDIT3DS 0x3D3D // this is the start of the editor config
#define EDIT_OBJECT 0x4000
#define OBJ_TRIMESH 0x4100
#define TRI_VERTEXL 0x4110
#define TRI_FACEL1 0x4120
#define MAXVERTS 2000
typedef struct {
int v[4];
} tri;
float fverts[MAXVERTS][3];
tri tris[MAXTRIANGLES];
int bytesread, level, numtris, totaltris;
int vertsfound, trisfound;
triangle_t *ptri;
void DefaultNodesList(mesh_node_t **nodesList, int *num_mesh_nodes, int *numtriangles)
{
int pos, bit, i;
if (nodesList)
{
*num_mesh_nodes = 1;
memset(&(*nodesList)[0], 0, sizeof(mesh_node_t));
strcpy((*nodesList)[0].name, "default");
// set all of the tris to be used for the top node
for(i = 0; i < (*numtriangles); i++)
{
pos = (i) >> 3;
bit = 1 << ((i) & 7 );
(*nodesList)[0].tris[pos] |= bit;
}
}
}
// Alias stores triangles as 3 explicit vertices in .tri files, so even though we
// start out with a vertex pool and vertex indices for triangles, we have to convert
// to raw, explicit triangles
void StoreAliasTriangles (void)
{
int i, j, k;
if ((totaltris + numtris) > MAXTRIANGLES)
Error ("Error: Too many triangles");
for (i=0; i<numtris ; i++)
{
for (j=0 ; j<3 ; j++)
{
for (k=0 ; k<3 ; k++)
{
ptri[i+totaltris].verts[j][k] = fverts[tris[i].v[j]][k];
}
}
}
totaltris += numtris;
numtris = 0;
vertsfound = 0;
trisfound = 0;
}
int ParseVertexL (FILE *input)
{
int i, j, startbytesread, numverts;
unsigned short tshort;
if (vertsfound)
Error ("Error: Multiple vertex chunks");
vertsfound = 1;
startbytesread = bytesread;
if (feof(input))
Error ("Error: unexpected end of file");
fread(&tshort, sizeof(tshort), 1, input);
bytesread += sizeof(tshort);
numverts = (int)tshort;
if (numverts > MAXVERTS)
Error ("Error: Too many vertices");
for (i=0 ; i<numverts ; i++)
{
for (j=0 ; j<3 ; j++)
{
if (feof(input))
Error ("Error: unexpected end of file");
fread(&fverts[i][j], sizeof(float), 1, input);
bytesread += sizeof(float);
}
}
if (vertsfound && trisfound)
StoreAliasTriangles ();
return bytesread - startbytesread;
}
int ParseFaceL1 (FILE *input)
{
int i, j, startbytesread;
unsigned short tshort;
if (trisfound)
Error ("Error: Multiple face chunks");
trisfound = 1;
startbytesread = bytesread;
if (feof(input))
Error ("Error: unexpected end of file");
fread(&tshort, sizeof(tshort), 1, input);
bytesread += sizeof(tshort);
numtris = (int)tshort;
if (numtris > MAXTRIANGLES)
Error ("Error: Too many triangles");
for (i=0 ; i<numtris ; i++)
{
for (j=0 ; j<4 ; j++)
{
if (feof(input))
Error ("Error: unexpected end of file");
fread(&tshort, sizeof(tshort), 1, input);
bytesread += sizeof(tshort);
tris[i].v[j] = (int)tshort;
}
}
if (vertsfound && trisfound)
StoreAliasTriangles ();
return bytesread - startbytesread;
}
int ParseChunk (FILE *input)
{
#define BLOCK_SIZE 4096
char temp[BLOCK_SIZE];
unsigned short type;
int i, length, w, t, retval;
level++;
retval = 0;
// chunk type
if (feof(input))
Error ("Error: unexpected end of file");
fread(&type, sizeof(type), 1, input);
bytesread += sizeof(type);
// chunk length
if (feof(input))
Error ("Error: unexpected end of file");
fread (&length, sizeof(length), 1, input);
bytesread += sizeof(length);
w = length - 6;
// process chunk if we care about it, otherwise skip it
switch (type)
{
case TRI_VERTEXL:
w -= ParseVertexL (input);
goto ParseSubchunk;
case TRI_FACEL1:
w -= ParseFaceL1 (input);
goto ParseSubchunk;
case EDIT_OBJECT:
// read the name
i = 0;
do
{
if (feof(input))
Error ("Error: unexpected end of file");
fread (&temp[i], 1, 1, input);
i++;
w--;
bytesread++;
} while (temp[i-1]);
case MAIN3DS:
case OBJ_TRIMESH:
case EDIT3DS:
// parse through subchunks
ParseSubchunk:
while (w > 0)
{
w -= ParseChunk (input);
}
retval = length;
goto Done;
default:
// skip other chunks
while (w > 0)
{
t = w;
if (t > BLOCK_SIZE)
t = BLOCK_SIZE;
if (feof(input))
Error ("Error: unexpected end of file");
fread (&temp, t, 1, input);
bytesread += t;
w -= t;
}
retval = length;
goto Done;
}
Done:
level--;
return retval;
}
void Load3DSTriangleList (char *filename, triangle_t **pptri, int *numtriangles, mesh_node_t **nodesList, int *num_mesh_nodes)
{
FILE *input;
short int tshort;
if (nodesList)
{
*num_mesh_nodes = 0;
*nodesList = SafeMalloc(MAX_FM_MESH_NODES * sizeof(mesh_node_t), "Mesh Node List");
}
bytesread = 0;
level = 0;
numtris = 0;
totaltris = 0;
vertsfound = 0;
trisfound = 0;
if ((input = fopen(filename, "rb")) == 0) {
fprintf(stderr,"reader: could not open file '%s'\n", filename);
exit(0);
}
fread(&tshort, sizeof(tshort), 1, input);
// should only be MAIN3DS, but some files seem to start with EDIT3DS, with
// no MAIN3DS
if ((tshort != MAIN3DS) && (tshort != EDIT3DS)) {
fprintf(stderr,"File is not a 3DS file.\n");
exit(0);
}
// back to top of file so we can parse the first chunk descriptor
fseek(input, 0, SEEK_SET);
ptri = malloc (MAXTRIANGLES * sizeof(triangle_t));
*pptri = ptri;
// parse through looking for the relevant chunk tree (MAIN3DS | EDIT3DS | EDIT_OBJECT |
// OBJ_TRIMESH | {TRI_VERTEXL, TRI_FACEL1}) and skipping other chunks
ParseChunk (input);
if (vertsfound || trisfound)
Error ("Incomplete triangle set");
*numtriangles = totaltris;
fclose (input);
DefaultNodesList(nodesList,num_mesh_nodes,numtriangles);
}
//==========================================================================
//
// LoadASC
//
//==========================================================================
void LoadASC(char *fileName, triangle_t **triList, int *triangleCount, mesh_node_t **nodesList, int *num_mesh_nodes)
{
int i, j;
int vertexCount;
struct
{
float v[3];
} *vList;
int triCount;
triangle_t *tList;
float x, y, z;
// float x2, y2, z2;
// float rx, ry, rz;
qboolean goodObject;
if (nodesList)
{
*num_mesh_nodes = 0;
*nodesList = SafeMalloc(MAX_FM_MESH_NODES * sizeof(mesh_node_t), "Mesh Node List");
}
TK_OpenSource(fileName);
goodObject = false;
while(goodObject == false)
{
TK_Beyond(TK_C_NAMED);
TK_Beyond(TK_OBJECT);
TK_Beyond(TK_C_TRI);
TK_Beyond(TK_MESH);
TK_BeyondRequire(TK_C_VERTICES, TK_COLON);
TK_FetchRequire(TK_INTNUMBER);
vertexCount = tk_IntNumber;
if(vertexCount > 0)
{
goodObject = true;
}
}
TK_BeyondRequire(TK_C_FACES, TK_COLON);
TK_FetchRequire(TK_INTNUMBER);
triCount = tk_IntNumber;
if(triCount >= MAXTRIANGLES)
{
Error("Too many triangles in file %s\n", fileName);
}
*triangleCount = triCount;
tList = SafeMalloc(MAXTRIANGLES*sizeof(triangle_t), "Triangle list");
*triList = tList;
memset(*triList,0,MAXTRIANGLES*sizeof(triangle_t));
TK_BeyondRequire(TK_C_VERTEX, TK_LIST);
/* rx = ((rotation[0]+90.0)/360.0)*2.0*M_PI;
//rx = (rotation[0]/360.0)*2.0*M_PI;
ry = (rotation[1]/360.0)*2.0*M_PI;
rz = (rotation[2]/360.0)*2.0*M_PI;
*/
vList = SafeMalloc(vertexCount*sizeof vList[0], "Vertex list");
for(i = 0; i < vertexCount; i++)
{
TK_BeyondRequire(TK_C_VERTEX, TK_INTNUMBER);
if(tk_IntNumber != i)
{
Error("File '%s', line %d:\nVertex index mismatch.\n",
tk_SourceName, tk_Line);
}
TK_FetchRequireFetch(TK_COLON);
TK_BeyondRequire(TK_COLON, TK_FLOATNUMBER);
x = tk_FloatNumber;
TK_BeyondRequire(TK_COLON, TK_FLOATNUMBER);
y = tk_FloatNumber;
TK_BeyondRequire(TK_COLON, TK_FLOATNUMBER);
z = tk_FloatNumber;
/* x2 = x*cos(rz)+y*sin(rz);
y2 = -x*sin(rz)+y*cos(rz);
x = x2;
y = y2;
y2 = y*cos(rx)+z*sin(rx);
z2 = -y*sin(rx)+z*cos(rx);
y = y2;
z = z2;
x2 = x*cos(ry)-z*sin(ry);
z2 = x*sin(ry)+z*cos(ry);
x = x2;
z = z2;
*/
vList[i].v[0] = x;
vList[i].v[1] = y;
vList[i].v[2] = z;
}
TK_BeyondRequire(TK_C_FACE, TK_LIST);
for(i = 0; i < triCount; i++)
{
TK_BeyondRequire(TK_C_FACE, TK_INTNUMBER);
if(tk_IntNumber != i)
{
Error("File '%s', line %d:\nTriangle index mismatch.\n",
tk_SourceName, tk_Line);
}
for(j = 0; j < 3; j++)
{
TK_BeyondRequire(TK_IDENTIFIER, TK_COLON);
TK_FetchRequire(TK_INTNUMBER);
if(tk_IntNumber >= vertexCount)
{
Error("File '%s', line %d:\nVertex number"
" > vertexCount: %d\n", tk_SourceName, tk_Line,
tk_IntNumber);
}
tList[i].verts[2-j][0] = vList[tk_IntNumber].v[0];
tList[i].verts[2-j][1] = vList[tk_IntNumber].v[1];
tList[i].verts[2-j][2] = vList[tk_IntNumber].v[2];
#ifdef _QDATA
tList[i].indicies[2-j] = tk_IntNumber;
#endif
}
/* printf("Face %i:\n v0: %f, %f, %f\n v1: %f, %f, %f\n"
" v2: %f, %f, %f\n", i,
tList[i].verts[0][0],
tList[i].verts[0][1],
tList[i].verts[0][2],
tList[i].verts[1][0],
tList[i].verts[1][1],
tList[i].verts[1][2],
tList[i].verts[2][0],
tList[i].verts[2][1],
tList[i].verts[2][2]);
*/
}
DefaultNodesList(nodesList,num_mesh_nodes,triangleCount);
}

View file

@ -0,0 +1,7 @@
//
// l3dslib.h: header file for loading triangles from a 3DS triangle file
//
void DefaultNodesList(mesh_node_t **nodesList, int *num_mesh_nodes, int *numtriangles);
void Load3DSTriangleList (char *filename, triangle_t **pptri, int *numtriangles, mesh_node_t **ppmnodes, int *num_mesh_nodes);
void LoadASC(char *fileName, triangle_t **triList, int *triangleCount, mesh_node_t **ppmnodes, int *num_mesh_nodes);

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,20 @@
// piclib.h
void LoadLBM (char *filename, byte **picture, byte **palette);
void WriteLBMfile (char *filename, byte *data, int width, int height
, byte *palette);
void LoadPCX (char *filename, byte **picture, byte **palette, int *width, int *height);
void WritePCXfile (char *filename, byte *data, int width, int height
, byte *palette);
// loads / saves either lbm or pcx, depending on extension
void Load256Image (char *name, byte **pixels, byte **palette,
int *width, int *height);
void Save256Image (char *name, byte *pixels, byte *palette,
int width, int height);
void LoadTGA (char *filename, byte **pixels, int *width, int *height);
qboolean LoadAnyImage (char *name, byte **pixels, byte **palette, int *width, int *height);

View file

@ -0,0 +1,155 @@
// mathlib.c -- math primitives
#include "cmdlib.h"
#include "mathlib.h"
vec3_t vec3_origin = {0,0,0};
double VectorLength(vec3_t v)
{
int i;
double length;
length = 0;
for (i=0 ; i< 3 ; i++)
length += v[i]*v[i];
length = sqrt (length); // FIXME
return length;
}
qboolean VectorCompare (vec3_t v1, vec3_t v2)
{
int i;
for (i=0 ; i<3 ; i++)
if (fabs(v1[i]-v2[i]) > EQUAL_EPSILON)
return false;
return true;
}
vec_t Q_rint (vec_t in)
{
return floor (in + 0.5);
}
void VectorMA (vec3_t va, double scale, vec3_t vb, vec3_t vc)
{
vc[0] = va[0] + scale*vb[0];
vc[1] = va[1] + scale*vb[1];
vc[2] = va[2] + scale*vb[2];
}
void CrossProduct (vec3_t v1, vec3_t v2, vec3_t cross)
{
cross[0] = v1[1]*v2[2] - v1[2]*v2[1];
cross[1] = v1[2]*v2[0] - v1[0]*v2[2];
cross[2] = v1[0]*v2[1] - v1[1]*v2[0];
}
vec_t _DotProduct (vec3_t v1, vec3_t v2)
{
return v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2];
}
void _VectorSubtract (vec3_t va, vec3_t vb, vec3_t out)
{
out[0] = va[0]-vb[0];
out[1] = va[1]-vb[1];
out[2] = va[2]-vb[2];
}
void _VectorAdd (vec3_t va, vec3_t vb, vec3_t out)
{
out[0] = va[0]+vb[0];
out[1] = va[1]+vb[1];
out[2] = va[2]+vb[2];
}
void _VectorCopy (vec3_t in, vec3_t out)
{
out[0] = in[0];
out[1] = in[1];
out[2] = in[2];
}
void _VectorScale (vec3_t v, vec_t scale, vec3_t out)
{
out[0] = v[0] * scale;
out[1] = v[1] * scale;
out[2] = v[2] * scale;
}
#pragma optimize("g", off) // went back to turning optimization off,
// the bug_fix thing stopped working
vec_t VectorNormalize (vec3_t in, vec3_t out)
{
vec_t length, ilength;
length = sqrt (in[0]*in[0] + in[1]*in[1] + in[2]*in[2]);
if (length == 0)
{
VectorClear (out);
return 0;
}
ilength = 1.0/length;
out[0] = in[0]*ilength;
out[1] = in[1]*ilength;
out[2] = in[2]*ilength;
return length;
}
vec_t ColorNormalize (vec3_t in, vec3_t out)
{
float max, scale;
max = in[0];
if (in[1] > max)
max = in[1];
if (in[2] > max)
max = in[2];
if (max == 0)
return 0;
scale = 1.0 / max;
VectorScale (in, scale, out);
return max;
}
#pragma optimize("", on)
void VectorInverse (vec3_t v)
{
v[0] = -v[0];
v[1] = -v[1];
v[2] = -v[2];
}
void ClearBounds (vec3_t mins, vec3_t maxs)
{
mins[0] = mins[1] = mins[2] = 99999;
maxs[0] = maxs[1] = maxs[2] = -99999;
}
void AddPointToBounds (vec3_t v, vec3_t mins, vec3_t maxs)
{
int i;
vec_t val;
for (i=0 ; i<3 ; i++)
{
val = v[i];
if (val < mins[i])
mins[i] = val;
if (val > maxs[i])
maxs[i] = val;
}
}

View file

@ -0,0 +1,55 @@
#ifndef __MATHLIB__
#define __MATHLIB__
// mathlib.h
#include <math.h>
#ifdef DOUBLEVEC_T
typedef double vec_t;
#else
typedef float vec_t;
#endif
typedef vec_t vec3_t[3];
#define SIDE_FRONT 0
#define SIDE_ON 2
#define SIDE_BACK 1
#define SIDE_CROSS -2
#define Q_PI 3.14159265358979323846
extern vec3_t vec3_origin;
#define EQUAL_EPSILON 0.001
qboolean VectorCompare (vec3_t v1, vec3_t v2);
#define DotProduct(x,y) (x[0]*y[0]+x[1]*y[1]+x[2]*y[2])
#define VectorSubtract(a,b,c) {c[0]=a[0]-b[0];c[1]=a[1]-b[1];c[2]=a[2]-b[2];}
#define VectorAdd(a,b,c) {c[0]=a[0]+b[0];c[1]=a[1]+b[1];c[2]=a[2]+b[2];}
#define VectorCopy(a,b) {b[0]=a[0];b[1]=a[1];b[2]=a[2];}
#define VectorScale(a,b,c) {c[0]=b*a[0];c[1]=b*a[1];c[2]=b*a[2];}
#define VectorClear(x) {x[0] = x[1] = x[2] = 0;}
#define VectorNegate(x) {x[0]=-x[0];x[1]=-x[1];x[2]=-x[2];}
vec_t Q_rint (vec_t in);
vec_t _DotProduct (vec3_t v1, vec3_t v2);
void _VectorSubtract (vec3_t va, vec3_t vb, vec3_t out);
void _VectorAdd (vec3_t va, vec3_t vb, vec3_t out);
void _VectorCopy (vec3_t in, vec3_t out);
void _VectorScale (vec3_t v, vec_t scale, vec3_t out);
double VectorLength(vec3_t v);
void VectorMA (vec3_t va, double scale, vec3_t vb, vec3_t vc);
void CrossProduct (vec3_t v1, vec3_t v2, vec3_t cross);
vec_t VectorNormalize (vec3_t in, vec3_t out);
vec_t ColorNormalize (vec3_t in, vec3_t out);
void VectorInverse (vec3_t v);
void ClearBounds (vec3_t mins, vec3_t maxs);
void AddPointToBounds (vec3_t v, vec3_t mins, vec3_t maxs);
#endif

View file

@ -0,0 +1,277 @@
/* GLOBAL.H - RSAREF types and constants */
#include <string.h>
/* POINTER defines a generic pointer type */
typedef unsigned char *POINTER;
/* UINT2 defines a two byte word */
typedef unsigned short int UINT2;
/* UINT4 defines a four byte word */
typedef unsigned long int UINT4;
/* MD4.H - header file for MD4C.C */
/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991.
All rights reserved.
License to copy and use this software is granted provided that it is identified as the RSA Data Security, Inc. MD4 Message-Digest Algorithm in all material mentioning or referencing this software or this function.
License is also granted to make and use derivative works provided that such works are identified as derived from the RSA Data Security, Inc. MD4 Message-Digest Algorithm in all material mentioning or referencing the derived work.
RSA Data Security, Inc. makes no representations concerning either the merchantability of this software or the suitability of this software for any particular purpose. It is provided as is without express or implied warranty of any kind.
These notices must be retained in any copies of any part of this documentation and/or software. */
/* MD4 context. */
typedef struct {
UINT4 state[4]; /* state (ABCD) */
UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */
unsigned char buffer[64]; /* input buffer */
} MD4_CTX;
void MD4Init (MD4_CTX *);
void MD4Update (MD4_CTX *, unsigned char *, unsigned int);
void MD4Final (unsigned char [16], MD4_CTX *);
/* MD4C.C - RSA Data Security, Inc., MD4 message-digest algorithm */
/* Copyright (C) 1990-2, RSA Data Security, Inc. All rights reserved.
License to copy and use this software is granted provided that it is identified as the
RSA Data Security, Inc. MD4 Message-Digest Algorithm
in all material mentioning or referencing this software or this function.
License is also granted to make and use derivative works provided that such works are identified as
derived from the RSA Data Security, Inc. MD4 Message-Digest Algorithm
in all material mentioning or referencing the derived work.
RSA Data Security, Inc. makes no representations concerning either the merchantability of this software or the suitability of this software for any particular purpose. It is provided
as is without express or implied warranty of any kind.
These notices must be retained in any copies of any part of this documentation and/or software. */
/* Constants for MD4Transform routine. */
#define S11 3
#define S12 7
#define S13 11
#define S14 19
#define S21 3
#define S22 5
#define S23 9
#define S24 13
#define S31 3
#define S32 9
#define S33 11
#define S34 15
static void MD4Transform (UINT4 [4], unsigned char [64]);
static void Encode (unsigned char *, UINT4 *, unsigned int);
static void Decode (UINT4 *, unsigned char *, unsigned int);
static void MD4_memcpy (POINTER, POINTER, unsigned int);
static void MD4_memset (POINTER, int, unsigned int);
static unsigned char PADDING[64] = {
0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
/* F, G and H are basic MD4 functions. */
#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
#define G(x, y, z) (((x) & (y)) | ((x) & (z)) | ((y) & (z)))
#define H(x, y, z) ((x) ^ (y) ^ (z))
/* ROTATE_LEFT rotates x left n bits. */
#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))
/* FF, GG and HH are transformations for rounds 1, 2 and 3 */
/* Rotation is separate from addition to prevent recomputation */
#define FF(a, b, c, d, x, s) {(a) += F ((b), (c), (d)) + (x); (a) = ROTATE_LEFT ((a), (s));}
#define GG(a, b, c, d, x, s) {(a) += G ((b), (c), (d)) + (x) + (UINT4)0x5a827999; (a) = ROTATE_LEFT ((a), (s));}
#define HH(a, b, c, d, x, s) {(a) += H ((b), (c), (d)) + (x) + (UINT4)0x6ed9eba1; (a) = \
ROTATE_LEFT ((a), (s)); }
/* MD4 initialization. Begins an MD4 operation, writing a new context. */
void MD4Init (MD4_CTX *context)
{
context->count[0] = context->count[1] = 0;
/* Load magic initialization constants.*/
context->state[0] = 0x67452301;
context->state[1] = 0xefcdab89;
context->state[2] = 0x98badcfe;
context->state[3] = 0x10325476;
}
/* MD4 block update operation. Continues an MD4 message-digest operation, processing another message block, and updating the context. */
void MD4Update (MD4_CTX *context, unsigned char *input, unsigned int inputLen)
{
unsigned int i, index, partLen;
/* Compute number of bytes mod 64 */
index = (unsigned int)((context->count[0] >> 3) & 0x3F);
/* Update number of bits */
if ((context->count[0] += ((UINT4)inputLen << 3))< ((UINT4)inputLen << 3))
context->count[1]++;
context->count[1] += ((UINT4)inputLen >> 29);
partLen = 64 - index;
/* Transform as many times as possible.*/
if (inputLen >= partLen)
{
memcpy((POINTER)&context->buffer[index], (POINTER)input, partLen);
MD4Transform (context->state, context->buffer);
for (i = partLen; i + 63 < inputLen; i += 64)
MD4Transform (context->state, &input[i]);
index = 0;
}
else
i = 0;
/* Buffer remaining input */
memcpy ((POINTER)&context->buffer[index], (POINTER)&input[i], inputLen-i);
}
/* MD4 finalization. Ends an MD4 message-digest operation, writing the the message digest and zeroizing the context. */
void MD4Final (unsigned char digest[16], MD4_CTX *context)
{
unsigned char bits[8];
unsigned int index, padLen;
/* Save number of bits */
Encode (bits, context->count, 8);
/* Pad out to 56 mod 64.*/
index = (unsigned int)((context->count[0] >> 3) & 0x3f);
padLen = (index < 56) ? (56 - index) : (120 - index);
MD4Update (context, PADDING, padLen);
/* Append length (before padding) */
MD4Update (context, bits, 8);
/* Store state in digest */
Encode (digest, context->state, 16);
/* Zeroize sensitive information.*/
memset ((POINTER)context, 0, sizeof (*context));
}
/* MD4 basic transformation. Transforms state based on block. */
static void MD4Transform (UINT4 state[4], unsigned char block[64])
{
UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16];
Decode (x, block, 64);
/* Round 1 */
FF (a, b, c, d, x[ 0], S11); /* 1 */
FF (d, a, b, c, x[ 1], S12); /* 2 */
FF (c, d, a, b, x[ 2], S13); /* 3 */
FF (b, c, d, a, x[ 3], S14); /* 4 */
FF (a, b, c, d, x[ 4], S11); /* 5 */
FF (d, a, b, c, x[ 5], S12); /* 6 */
FF (c, d, a, b, x[ 6], S13); /* 7 */
FF (b, c, d, a, x[ 7], S14); /* 8 */
FF (a, b, c, d, x[ 8], S11); /* 9 */
FF (d, a, b, c, x[ 9], S12); /* 10 */
FF (c, d, a, b, x[10], S13); /* 11 */
FF (b, c, d, a, x[11], S14); /* 12 */
FF (a, b, c, d, x[12], S11); /* 13 */
FF (d, a, b, c, x[13], S12); /* 14 */
FF (c, d, a, b, x[14], S13); /* 15 */
FF (b, c, d, a, x[15], S14); /* 16 */
/* Round 2 */
GG (a, b, c, d, x[ 0], S21); /* 17 */
GG (d, a, b, c, x[ 4], S22); /* 18 */
GG (c, d, a, b, x[ 8], S23); /* 19 */
GG (b, c, d, a, x[12], S24); /* 20 */
GG (a, b, c, d, x[ 1], S21); /* 21 */
GG (d, a, b, c, x[ 5], S22); /* 22 */
GG (c, d, a, b, x[ 9], S23); /* 23 */
GG (b, c, d, a, x[13], S24); /* 24 */
GG (a, b, c, d, x[ 2], S21); /* 25 */
GG (d, a, b, c, x[ 6], S22); /* 26 */
GG (c, d, a, b, x[10], S23); /* 27 */
GG (b, c, d, a, x[14], S24); /* 28 */
GG (a, b, c, d, x[ 3], S21); /* 29 */
GG (d, a, b, c, x[ 7], S22); /* 30 */
GG (c, d, a, b, x[11], S23); /* 31 */
GG (b, c, d, a, x[15], S24); /* 32 */
/* Round 3 */
HH (a, b, c, d, x[ 0], S31); /* 33 */
HH (d, a, b, c, x[ 8], S32); /* 34 */
HH (c, d, a, b, x[ 4], S33); /* 35 */
HH (b, c, d, a, x[12], S34); /* 36 */
HH (a, b, c, d, x[ 2], S31); /* 37 */
HH (d, a, b, c, x[10], S32); /* 38 */
HH (c, d, a, b, x[ 6], S33); /* 39 */
HH (b, c, d, a, x[14], S34); /* 40 */
HH (a, b, c, d, x[ 1], S31); /* 41 */
HH (d, a, b, c, x[ 9], S32); /* 42 */
HH (c, d, a, b, x[ 5], S33); /* 43 */
HH (b, c, d, a, x[13], S34); /* 44 */
HH (a, b, c, d, x[ 3], S31); /* 45 */
HH (d, a, b, c, x[11], S32); /* 46 */
HH (c, d, a, b, x[ 7], S33); /* 47 */
HH (b, c, d, a, x[15], S34); /* 48 */
state[0] += a;
state[1] += b;
state[2] += c;
state[3] += d;
/* Zeroize sensitive information.*/
memset ((POINTER)x, 0, sizeof (x));
}
/* Encodes input (UINT4) into output (unsigned char). Assumes len is a multiple of 4. */
static void Encode (unsigned char *output, UINT4 *input, unsigned int len)
{
unsigned int i, j;
for (i = 0, j = 0; j < len; i++, j += 4) {
output[j] = (unsigned char)(input[i] & 0xff);
output[j+1] = (unsigned char)((input[i] >> 8) & 0xff);
output[j+2] = (unsigned char)((input[i] >> 16) & 0xff);
output[j+3] = (unsigned char)((input[i] >> 24) & 0xff);
}
}
/* Decodes input (unsigned char) into output (UINT4). Assumes len is a multiple of 4. */
static void Decode (UINT4 *output, unsigned char *input, unsigned int len)
{
unsigned int i, j;
for (i = 0, j = 0; j < len; i++, j += 4)
output[i] = ((UINT4)input[j]) | (((UINT4)input[j+1]) << 8) | (((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24);
}
//===================================================================
unsigned Com_BlockChecksum (void *buffer, int length)
{
int digest[4];
unsigned val;
MD4_CTX ctx;
MD4Init (&ctx);
MD4Update (&ctx, (unsigned char *)buffer, length);
MD4Final ( (unsigned char *)digest, &ctx);
val = digest[0] ^ digest[1] ^ digest[2] ^ digest[3];
return val;
}

View file

@ -0,0 +1,634 @@
#include "cmdlib.h"
#include "mathlib.h"
#include "polylib.h"
extern int numthreads;
// counters are only bumped when running single threaded,
// because they are an awefull coherence problem
int c_active_windings;
int c_peak_windings;
int c_winding_allocs;
int c_winding_points;
#define BOGUS_RANGE 8192
void pw(winding_t *w)
{
int i;
for (i=0 ; i<w->numpoints ; i++)
printf ("(%5.1f, %5.1f, %5.1f)\n",w->p[i][0], w->p[i][1],w->p[i][2]);
}
/*
=============
AllocWinding
=============
*/
winding_t *AllocWinding (int points)
{
winding_t *w;
int s;
if (numthreads == 1)
{
c_winding_allocs++;
c_winding_points += points;
c_active_windings++;
if (c_active_windings > c_peak_windings)
c_peak_windings = c_active_windings;
}
s = sizeof(vec_t)*3*points + sizeof(int);
w = malloc (s);
if (!w)
Error("AllocWinding MALLOC failed! Could not allocate %s bytes.", s);
memset (w, 0, s);
return w;
}
void FreeWinding (winding_t *w)
{
if (*(unsigned *)w == 0xdeaddead)
Error ("FreeWinding: freed a freed winding");
*(unsigned *)w = 0xdeaddead;
if (numthreads == 1)
c_active_windings--;
free (w);
}
/*
============
RemoveColinearPoints
============
*/
int c_removed;
void RemoveColinearPoints (winding_t *w)
{
int i, j, k;
vec3_t v1, v2;
int nump;
vec3_t p[MAX_POINTS_ON_WINDING];
nump = 0;
for (i=0 ; i<w->numpoints ; i++)
{
j = (i+1)%w->numpoints;
k = (i+w->numpoints-1)%w->numpoints;
VectorSubtract (w->p[j], w->p[i], v1);
VectorSubtract (w->p[i], w->p[k], v2);
VectorNormalize(v1,v1);
VectorNormalize(v2,v2);
if (DotProduct(v1, v2) < 0.999)
{
VectorCopy (w->p[i], p[nump]);
nump++;
}
}
if (nump == w->numpoints)
return;
if (numthreads == 1)
c_removed += w->numpoints - nump;
w->numpoints = nump;
memcpy (w->p, p, nump*sizeof(p[0]));
}
/*
============
WindingPlane
============
*/
void WindingPlane (winding_t *w, vec3_t normal, vec_t *dist)
{
vec3_t v1, v2;
VectorSubtract (w->p[1], w->p[0], v1);
VectorSubtract (w->p[2], w->p[0], v2);
CrossProduct (v2, v1, normal);
VectorNormalize (normal, normal);
*dist = DotProduct (w->p[0], normal);
}
/*
=============
WindingArea
=============
*/
vec_t WindingArea (winding_t *w)
{
int i;
vec3_t d1, d2, cross;
vec_t total;
total = 0;
for (i=2 ; i<w->numpoints ; i++)
{
VectorSubtract (w->p[i-1], w->p[0], d1);
VectorSubtract (w->p[i], w->p[0], d2);
CrossProduct (d1, d2, cross);
total += 0.5 * VectorLength ( cross );
}
return total;
}
void WindingBounds (winding_t *w, vec3_t mins, vec3_t maxs)
{
vec_t v;
int i,j;
mins[0] = mins[1] = mins[2] = 99999;
maxs[0] = maxs[1] = maxs[2] = -99999;
for (i=0 ; i<w->numpoints ; i++)
{
for (j=0 ; j<3 ; j++)
{
v = w->p[i][j];
if (v < mins[j])
mins[j] = v;
if (v > maxs[j])
maxs[j] = v;
}
}
}
/*
=============
WindingCenter
=============
*/
void WindingCenter (winding_t *w, vec3_t center)
{
int i;
float scale;
VectorCopy (vec3_origin, center);
for (i=0 ; i<w->numpoints ; i++)
VectorAdd (w->p[i], center, center);
scale = 1.0/w->numpoints;
VectorScale (center, scale, center);
}
/*
=================
BaseWindingForPlane
=================
*/
winding_t *BaseWindingForPlane (vec3_t normal, vec_t dist)
{
int i, x;
vec_t max, v;
vec3_t org, vright, vup;
winding_t *w;
// find the major axis
max = -BOGUS_RANGE;
x = -1;
for (i=0 ; i<3; i++)
{
v = fabs(normal[i]);
if (v > max)
{
x = i;
max = v;
}
}
if (x==-1)
Error ("BaseWindingForPlane: no axis found");
VectorCopy (vec3_origin, vup);
switch (x)
{
case 0:
case 1:
vup[2] = 1;
break;
case 2:
vup[0] = 1;
break;
}
v = DotProduct (vup, normal);
VectorMA (vup, -v, normal, vup);
VectorNormalize (vup, vup);
VectorScale (normal, dist, org);
CrossProduct (vup, normal, vright);
VectorScale (vup, 8192, vup);
VectorScale (vright, 8192, vright);
// project a really big axis aligned box onto the plane
w = AllocWinding (4);
VectorSubtract (org, vright, w->p[0]);
VectorAdd (w->p[0], vup, w->p[0]);
VectorAdd (org, vright, w->p[1]);
VectorAdd (w->p[1], vup, w->p[1]);
VectorAdd (org, vright, w->p[2]);
VectorSubtract (w->p[2], vup, w->p[2]);
VectorSubtract (org, vright, w->p[3]);
VectorSubtract (w->p[3], vup, w->p[3]);
w->numpoints = 4;
return w;
}
/*
==================
CopyWinding
==================
*/
winding_t *CopyWinding (winding_t *w)
{
int size;
winding_t *c;
c = AllocWinding (w->numpoints);
size = (int)((winding_t *)0)->p[w->numpoints];
memcpy (c, w, size);
return c;
}
/*
==================
ReverseWinding
==================
*/
winding_t *ReverseWinding (winding_t *w)
{
int i;
winding_t *c;
c = AllocWinding (w->numpoints);
for (i=0 ; i<w->numpoints ; i++)
{
VectorCopy (w->p[w->numpoints-1-i], c->p[i]);
}
c->numpoints = w->numpoints;
return c;
}
/*
=============
ClipWindingEpsilon
=============
*/
void ClipWindingEpsilon (winding_t *in, vec3_t normal, vec_t dist,
vec_t epsilon, winding_t **front, winding_t **back)
{
vec_t dists[MAX_POINTS_ON_WINDING+4];
int sides[MAX_POINTS_ON_WINDING+4];
int counts[3];
vec_t dot; // VC 4.2 optimizer bug if not static
int i, j;
vec_t *p1, *p2;
vec3_t mid;
winding_t *f, *b;
int maxpts;
if (in->numpoints >= MAX_POINTS_ON_WINDING-4)
Error ("ClipWinding: MAX_POINTS_ON_WINDING");
counts[0] = counts[1] = counts[2] = 0;
// determine sides for each point
for (i=0 ; i<in->numpoints ; i++)
{
dot = DotProduct (in->p[i], normal);
dot -= dist;
dists[i] = dot;
if (dot > epsilon)
sides[i] = SIDE_FRONT;
else if (dot < -epsilon)
sides[i] = SIDE_BACK;
else
{
sides[i] = SIDE_ON;
}
counts[sides[i]]++;
}
sides[i] = sides[0];
dists[i] = dists[0];
*front = *back = NULL;
if (!counts[0])
{
*back = CopyWinding (in);
return;
}
if (!counts[1])
{
*front = CopyWinding (in);
return;
}
maxpts = in->numpoints+4; // cant use counts[0]+2 because
// of fp grouping errors
*front = f = AllocWinding (maxpts);
*back = b = AllocWinding (maxpts);
for (i=0 ; i<in->numpoints ; i++)
{
p1 = in->p[i];
if (sides[i] == SIDE_ON)
{
VectorCopy (p1, f->p[f->numpoints]);
f->numpoints++;
VectorCopy (p1, b->p[b->numpoints]);
b->numpoints++;
continue;
}
if (sides[i] == SIDE_FRONT)
{
VectorCopy (p1, f->p[f->numpoints]);
f->numpoints++;
}
if (sides[i] == SIDE_BACK)
{
VectorCopy (p1, b->p[b->numpoints]);
b->numpoints++;
}
if (sides[i+1] == SIDE_ON || sides[i+1] == sides[i])
continue;
// generate a split point
p2 = in->p[(i+1)%in->numpoints];
dot = dists[i] / (dists[i]-dists[i+1]);
for (j=0 ; j<3 ; j++)
{ // avoid round off error when possible
if (normal[j] == 1)
mid[j] = dist;
else if (normal[j] == -1)
mid[j] = -dist;
else
mid[j] = p1[j] + dot*(p2[j]-p1[j]);
}
VectorCopy (mid, f->p[f->numpoints]);
f->numpoints++;
VectorCopy (mid, b->p[b->numpoints]);
b->numpoints++;
}
if (f->numpoints > maxpts || b->numpoints > maxpts)
Error ("ClipWinding: points exceeded estimate");
if (f->numpoints > MAX_POINTS_ON_WINDING || b->numpoints > MAX_POINTS_ON_WINDING)
Error ("ClipWinding: MAX_POINTS_ON_WINDING");
}
/*
=============
ChopWindingInPlace
=============
*/
void ChopWindingInPlace (winding_t **inout, vec3_t normal, vec_t dist, vec_t epsilon)
{
winding_t *in;
vec_t dists[MAX_POINTS_ON_WINDING+4];
int sides[MAX_POINTS_ON_WINDING+4];
int counts[3];
vec_t dot; // VC 4.2 optimizer bug if not static
int i, j;
vec_t *p1, *p2;
vec3_t mid;
winding_t *f;
int maxpts;
in = *inout;
counts[0] = counts[1] = counts[2] = 0;
if (!in)
{
printf ("Warning: NULL passed to ChopWindingInPlace\n");
return;
}
if (in->numpoints >= MAX_POINTS_ON_WINDING-4)
Error ("ChopWinding: MAX_POINTS_ON_WINDING");
// determine sides for each point
for (i=0 ; i<in->numpoints ; i++)
{
dot = DotProduct (in->p[i], normal);
dot -= dist;
dists[i] = dot;
if (dot > epsilon)
sides[i] = SIDE_FRONT;
else if (dot < -epsilon)
sides[i] = SIDE_BACK;
else
{
sides[i] = SIDE_ON;
}
counts[sides[i]]++;
}
sides[i] = sides[0];
dists[i] = dists[0];
if (!counts[0])
{
FreeWinding (in);
*inout = NULL;
return;
}
if (!counts[1])
return; // inout stays the same
maxpts = in->numpoints+4; // cant use counts[0]+2 because
// of fp grouping errors
f = AllocWinding (maxpts);
for (i=0 ; i<in->numpoints ; i++)
{
p1 = in->p[i];
if (sides[i] == SIDE_ON)
{
VectorCopy (p1, f->p[f->numpoints]);
f->numpoints++;
continue;
}
if (sides[i] == SIDE_FRONT)
{
VectorCopy (p1, f->p[f->numpoints]);
f->numpoints++;
}
if (sides[i+1] == SIDE_ON || sides[i+1] == sides[i])
continue;
// generate a split point
p2 = in->p[(i+1)%in->numpoints];
dot = dists[i] / (dists[i]-dists[i+1]);
for (j=0 ; j<3 ; j++)
{ // avoid round off error when possible
if (normal[j] == 1)
mid[j] = dist;
else if (normal[j] == -1)
mid[j] = -dist;
else
mid[j] = p1[j] + dot*(p2[j]-p1[j]);
}
VectorCopy (mid, f->p[f->numpoints]);
f->numpoints++;
}
if (f->numpoints > maxpts)
Error ("ClipWinding: points exceeded estimate");
if (f->numpoints > MAX_POINTS_ON_WINDING)
Error ("ClipWinding: MAX_POINTS_ON_WINDING");
FreeWinding (in);
*inout = f;
}
/*
=================
ChopWinding
Returns the fragment of in that is on the front side
of the cliping plane. The original is freed.
=================
*/
winding_t *ChopWinding (winding_t *in, vec3_t normal, vec_t dist)
{
winding_t *f, *b;
ClipWindingEpsilon (in, normal, dist, ON_EPSILON, &f, &b);
FreeWinding (in);
if (b)
FreeWinding (b);
return f;
}
/*
=================
CheckWinding
=================
*/
void CheckWinding (winding_t *w)
{
int i, j;
vec_t *p1, *p2;
vec_t d, edgedist;
vec3_t dir, edgenormal, facenormal;
vec_t area;
vec_t facedist;
if (w->numpoints < 3)
Error ("CheckWinding: %i points",w->numpoints);
area = WindingArea(w);
if (area < 1)
Error ("CheckWinding: %f area", area);
WindingPlane (w, facenormal, &facedist);
for (i=0 ; i<w->numpoints ; i++)
{
p1 = w->p[i];
for (j=0 ; j<3 ; j++)
if (p1[j] > BOGUS_RANGE || p1[j] < -BOGUS_RANGE)
Error ("CheckFace: BUGUS_RANGE: %f",p1[j]);
j = i+1 == w->numpoints ? 0 : i+1;
// check the point is on the face plane
d = DotProduct (p1, facenormal) - facedist;
if (d < -ON_EPSILON || d > ON_EPSILON)
Error ("CheckWinding: point off plane");
// check the edge isnt degenerate
p2 = w->p[j];
VectorSubtract (p2, p1, dir);
if (VectorLength (dir) < ON_EPSILON)
Error ("CheckWinding: degenerate edge");
CrossProduct (facenormal, dir, edgenormal);
VectorNormalize (edgenormal, edgenormal);
edgedist = DotProduct (p1, edgenormal);
edgedist += ON_EPSILON;
// all other points must be on front side
for (j=0 ; j<w->numpoints ; j++)
{
if (j == i)
continue;
d = DotProduct (w->p[j], edgenormal);
if (d > edgedist)
Error ("CheckWinding: non-convex");
}
}
}
/*
============
WindingOnPlaneSide
============
*/
int WindingOnPlaneSide (winding_t *w, vec3_t normal, vec_t dist)
{
qboolean front, back;
int i;
vec_t d;
front = false;
back = false;
for (i=0 ; i<w->numpoints ; i++)
{
d = DotProduct (w->p[i], normal) - dist;
if (d < -ON_EPSILON)
{
if (front)
return SIDE_CROSS;
back = true;
continue;
}
if (d > ON_EPSILON)
{
if (back)
return SIDE_CROSS;
front = true;
continue;
}
}
if (back)
return SIDE_BACK;
if (front)
return SIDE_FRONT;
return SIDE_ON;
}

View file

@ -0,0 +1,34 @@
typedef struct
{
int numpoints;
vec3_t p[4]; // variable sized
} winding_t;
#define MAX_POINTS_ON_WINDING 64
// you can define on_epsilon in the makefile as tighter
#ifndef ON_EPSILON
#define ON_EPSILON 0.1
#endif
winding_t *AllocWinding (int points);
vec_t WindingArea (winding_t *w);
void WindingCenter (winding_t *w, vec3_t center);
void ClipWindingEpsilon (winding_t *in, vec3_t normal, vec_t dist,
vec_t epsilon, winding_t **front, winding_t **back);
winding_t *ChopWinding (winding_t *in, vec3_t normal, vec_t dist);
winding_t *CopyWinding (winding_t *w);
winding_t *ReverseWinding (winding_t *w);
winding_t *BaseWindingForPlane (vec3_t normal, vec_t dist);
void CheckWinding (winding_t *w);
void WindingPlane (winding_t *w, vec3_t normal, vec_t *dist);
void RemoveColinearPoints (winding_t *w);
int WindingOnPlaneSide (winding_t *w, vec3_t normal, vec_t dist);
void FreeWinding (winding_t *w);
void WindingBounds (winding_t *w, vec3_t mins, vec3_t maxs);
void ChopWindingInPlace (winding_t **w, vec3_t normal, vec_t dist, vec_t epsilon);
// frees the original if clipped
void pw(winding_t *w);

View file

@ -0,0 +1,63 @@
#include "qfiles.h"
#include "scriplib.h"
#include <windows.h>
materialtype_t defaultmaterialtypes[] =
{
{"gravel", MATERIAL_GRAVEL},
{"metal", MATERIAL_METAL},
{"stone", MATERIAL_STONE},
{"wood", MATERIAL_WOOD},
{NULL, 0}
};
materialtype_t *materialtypes = defaultmaterialtypes;
void QFile_ReadMaterialTypes(char* filename)
{
int i;
FILE *f;
if (materialtypes != defaultmaterialtypes)
{
free(materialtypes);
materialtypes = (materialtype_t*)malloc(256 * sizeof(materialtype_t));
}
f = fopen (filename, "rb");
if (!f)
{
materialtypes = defaultmaterialtypes;
return;
}
fclose (f);
LoadScriptFile(filename);
i = 0;
while (i < 255)
{
GetScriptToken (true);
if (endofscript)
{
break;
}
if (strcmp(token, "material") != 0)
{
while (ScriptTokenAvailable())
{
GetScriptToken(false);
}
}
else
{
GetScriptToken(false);
materialtypes[i].name = (char*)malloc(strlen(token) + 1);
strcpy(materialtypes[i].name, token);
GetScriptToken (false);
materialtypes[i].value = atoi(token);
}
}
materialtypes[i].name = NULL;
materialtypes[i].value = 0;
}

View file

@ -0,0 +1,594 @@
#include "../../GameCode/qcommon/q_typedef.h"
//
// qfiles.h: quake file formats
// This file must be identical in the quake and utils directories
//
/*
========================================================================
The .pak files are just a linear collapse of a directory tree
========================================================================
*/
#define IDPAKHEADER (('K'<<24)+('C'<<16)+('A'<<8)+'P')
typedef struct
{
char name[56];
int filepos, filelen;
} dpackfile_t;
typedef struct
{
int ident; // == IDPAKHEADER
int dirofs;
int dirlen;
} dpackheader_t;
#define MAX_FILES_IN_PACK 4096
/*
========================================================================
PCX files are used for as many images as possible
========================================================================
*/
typedef struct
{
char manufacturer;
char version;
char encoding;
char bits_per_pixel;
unsigned short xmin,ymin,xmax,ymax;
unsigned short hres,vres;
unsigned char palette[48];
char reserved;
char color_planes;
unsigned short bytes_per_line;
unsigned short palette_type;
char filler[58];
unsigned char data; // unbounded
} pcx_t;
/*
========================================================================
.MD2 compressed triangle model file format
========================================================================
*/
#define IDJOINTEDALIASHEADER (('2'<<24)+('J'<<16)+('D'<<8)+'I')
/*
========================================================================
.MD2 triangle model file format
========================================================================
*/
#define IDALIASHEADER (('2'<<24)+('P'<<16)+('D'<<8)+'I')
#define ALIAS_VERSION 8
#define MAX_TRIANGLES 2048
#define MAX_VERTS 2048
#define MAX_FRAMES 512
#define MAX_MD2SKINS 64
#define MAX_SKINNAME 64
typedef struct
{
short s;
short t;
} dstvert_t;
typedef struct
{
short index_xyz[3];
short index_st[3];
} dtriangle_t;
typedef struct
{
byte v[3]; // scaled byte to fit in frame mins/maxs
byte lightnormalindex;
} dtrivertx_t;
#define DTRIVERTX_V0 0
#define DTRIVERTX_V1 1
#define DTRIVERTX_V2 2
#define DTRIVERTX_LNI 3
#define DTRIVERTX_SIZE 4
typedef struct
{
float scale[3]; // multiply byte verts by this
float translate[3]; // then add this
char name[16]; // frame name from grabbing
dtrivertx_t verts[1]; // variable sized
} daliasframe_t;
// the glcmd format:
// a positive integer starts a tristrip command, followed by that many
// vertex structures.
// a negative integer starts a trifan command, followed by -x vertexes
// a zero indicates the end of the command list.
// a vertex consists of a floating point s, a floating point t,
// and an integer vertex index.
typedef struct
{
int ident;
int version;
int skinwidth;
int skinheight;
int framesize; // byte size of each frame
int num_skins;
int num_xyz;
int num_st; // greater than num_xyz for seams
int num_tris;
int num_glcmds; // dwords in strip/fan command list
int num_frames;
int ofs_skins; // each skin is a MAX_SKINNAME string
int ofs_st; // byte offset from start for stverts
int ofs_tris; // offset for dtriangles
int ofs_frames; // offset for first frame
int ofs_glcmds;
int ofs_end; // end of file
} dmdl_t;
/*
========================================================================
.BK file format
========================================================================
*/
#define IDBOOKHEADER (('K'<<24)+('O'<<16)+('O'<<8)+'B')
#define BOOK_VERSION 2
typedef struct bookframe_s
{
int x;
int y;
int w;
int h;
char name[MAX_SKINNAME]; // name of gfx file
} bookframe_t;
typedef struct bookheader_s
{
unsigned int ident;
unsigned int version;
int num_segments;
int total_w;
int total_h;
} bookheader_t;
typedef struct book_s
{
bookheader_t bheader;
bookframe_t bframes[MAX_MD2SKINS];
} book_t;
/*
========================================================================
.SP2 sprite file format
========================================================================
*/
#define IDSPRITEHEADER (('2'<<24)+('S'<<16)+('D'<<8)+'I')
// little-endian "IDS2"
#define SPRITE_VERSION 2
typedef struct
{
int width, height;
int origin_x, origin_y; // raster coordinates inside pic
char name[MAX_SKINNAME]; // name of pcx file
} dsprframe_t;
typedef struct {
int ident;
int version;
int numframes;
dsprframe_t frames[1]; // variable sized
} dsprite_t;
/*
==============================================================================
.M8 texture file format
==============================================================================
*/
typedef struct palette_s
{
union
{
struct
{
byte r,g,b;
};
};
} palette_t;
#define MIP_VERSION 2
#define PAL_SIZE 256
#define MIPLEVELS 16
typedef struct miptex_s
{
int version;
char name[32];
unsigned width[MIPLEVELS], height[MIPLEVELS];
unsigned offsets[MIPLEVELS]; // four mip maps stored
char animname[32]; // next frame in animation chain
palette_t palette[PAL_SIZE];
int flags;
int contents;
int value;
} miptex_t;
#define MIP32_VERSION 4
#define MIP32_NOMIP_FLAG2 0x00000001
#define MIP32_DETAILER_FLAG2 0x00000002
typedef struct miptex32_s
{
int version;
char name[128];
char altname[128]; // texture substitution
char animname[128]; // next frame in animation chain
char damagename[128]; // image that should be shown when damaged
unsigned width[MIPLEVELS], height[MIPLEVELS];
unsigned offsets[MIPLEVELS];
int flags;
int contents;
int value;
float scale_x, scale_y;
int mip_scale;
// detail texturing info
char dt_name[128]; // detailed texture name
float dt_scale_x, dt_scale_y;
float dt_u, dt_v;
float dt_alpha;
int dt_src_blend_mode, dt_dst_blend_mode;
int flags2;
int unused[19]; // future expansion to maintain compatibility with h2
} miptex32_t;
/*
==============================================================================
.BSP file format
==============================================================================
*/
#define IDBSPHEADER (('P'<<24)+('S'<<16)+('B'<<8)+'I')
// little-endian "IBSP"
#define BSPVERSION 38
// upper design bounds
// leaffaces, leafbrushes, planes, and verts are still bounded by
// 16 bit short limits
#define MAX_MAP_MODELS 1024
#define MAX_MAP_BRUSHES 8192
#define MAX_MAP_ENTITIES 2048
#define MAX_MAP_ENTSTRING 0x40000
#define MAX_MAP_TEXINFO 8192
#define MAX_MAP_AREAS 256
#define MAX_MAP_AREAPORTALS 1024
#define MAX_MAP_PLANES 65536
#define MAX_MAP_NODES 65536
#define MAX_MAP_BRUSHSIDES 65536
#define MAX_MAP_LEAFS 65536
#define MAX_MAP_VERTS 65536
#define MAX_MAP_FACES 65536
#define MAX_MAP_LEAFFACES 65536
#define MAX_MAP_LEAFBRUSHES 65536
#define MAX_MAP_PORTALS 65536
#define MAX_MAP_EDGES 128000
#define MAX_MAP_SURFEDGES 256000
#define MAX_MAP_LIGHTING 0x200000
#define MAX_MAP_VISIBILITY 0x180000
// key / value pair sizes
#define MAX_KEY 32
#define MAX_VALUE 1024
//=============================================================================
typedef struct
{
int fileofs, filelen;
} lump_t;
#define LUMP_ENTITIES 0
#define LUMP_PLANES 1
#define LUMP_VERTEXES 2
#define LUMP_VISIBILITY 3
#define LUMP_NODES 4
#define LUMP_TEXINFO 5
#define LUMP_FACES 6
#define LUMP_LIGHTING 7
#define LUMP_LEAFS 8
#define LUMP_LEAFFACES 9
#define LUMP_LEAFBRUSHES 10
#define LUMP_EDGES 11
#define LUMP_SURFEDGES 12
#define LUMP_MODELS 13
#define LUMP_BRUSHES 14
#define LUMP_BRUSHSIDES 15
#define LUMP_POP 16
#define LUMP_AREAS 17
#define LUMP_AREAPORTALS 18
#define HEADER_LUMPS 19
typedef struct
{
int ident;
int version;
lump_t lumps[HEADER_LUMPS];
} dheader_t;
typedef struct
{
float mins[3], maxs[3];
float origin[3]; // for sounds or lights
int headnode;
int firstface, numfaces; // submodels just draw faces
// without walking the bsp tree
} dmodel_t;
typedef struct
{
float point[3];
} dvertex_t;
// 0-2 are axial planes
#define PLANE_X 0
#define PLANE_Y 1
#define PLANE_Z 2
// 3-5 are non-axial planes snapped to the nearest
#define PLANE_ANYX 3
#define PLANE_ANYY 4
#define PLANE_ANYZ 5
// planes (x&~1) and (x&~1)+1 are allways opposites
typedef struct
{
float normal[3];
float dist;
int type; // PLANE_X - PLANE_ANYZ ?remove? trivial to regenerate
} dplane_t;
// contents flags are seperate bits
// a given brush can contribute multiple content bits
// multiple brushes can be in a single leaf
// these definitions also need to be in q_shared.h!
// lower bits are stronger, and will eat weaker brushes completely
#define CONTENTS_SOLID 0x00000001 // an eye is never valid in a solid
#define CONTENTS_WINDOW 0x00000002 // translucent, but not watery
#define CONTENTS_PUSHPULL 0x00000004
#define CONTENTS_LAVA 0x00000008
#define CONTENTS_SLIME 0x00000010
#define CONTENTS_WATER 0x00000020
#define CONTENTS_MIST 0x00000040 // 64
#define LAST_VISIBLE_CONTENTS 64 // this one worries me a bit JKH
// remaining contents are non-visible, and don't eat brushes
#define CONTENTS_AREAPORTAL 0x00008000
#define CONTENTS_PLAYERCLIP 0x00010000
#define CONTENTS_MONSTERCLIP 0x00020000
// currents can be added to any other contents, and may be mixed
#define CONTENTS_CURRENT_0 0x00040000
#define CONTENTS_CURRENT_90 0x00080000
#define CONTENTS_CURRENT_180 0x00100000
#define CONTENTS_CURRENT_270 0x00200000
#define CONTENTS_CURRENT_UP 0x00400000
#define CONTENTS_CURRENT_DOWN 0x00800000
#define CONTENTS_ORIGIN 0x01000000 // removed before bsping an entity
#define CONTENTS_MONSTER 0x02000000 // should never be on a brush, only in game
#define CONTENTS_DEADMONSTER 0x04000000
#define CONTENTS_DETAIL 0x08000000 // brushes to be added after vis leafs
#define CONTENTS_TRANSLUCENT 0x10000000 // auto set if any surface has trans
#define CONTENTS_LADDER 0x20000000
#define SURF_LIGHT 0x00000001 // value will hold the light strength
#define SURF_SLICK 0x00000002 // effects game physics
#define SURF_SKY 0x00000004 // don't draw, but add to skybox
#define SURF_WARP 0x00000008 // turbulent water warp
#define SURF_TRANS33 0x00000010
#define SURF_TRANS66 0x00000020
#define SURF_FLOWING 0x00000040 // scroll towards angle
#define SURF_NODRAW 0x00000080 // don't bother referencing the texture
#define SURF_HINT 0x00000100 // make a primary bsp splitter
#define SURF_SKIP 0x00000200 // completely ignore, allowing non-closed brushes
#define SURF_TALL_WALL 0x00000400 // face doesn't get broken up as normal
#define SURF_ALPHA_TEXTURE 0x00000800 // texture has alpha in it, and should show through in bsp process
#define SURF_ANIMSPEED 0x00001000 // value will hold the anim speed in fps
#define SURF_UNDULATE 0x00002000 // rock surface up and down...
#define SURF_SKYREFLECT 0x00004000 // liquid will somewhat reflect the sky - not quite finished....
#define SURF_TYPE_GRAVEL 0x00000000
#define SURF_TYPE_METAL 0x01000000
#define SURF_TYPE_STONE 0x02000000
#define SURF_TYPE_WOOD 0x03000000
#define SURF_MATERIAL 0xFF000000
typedef struct
{
int planenum;
int children[2]; // negative numbers are -(leafs+1), not nodes
short mins[3]; // for frustom culling
short maxs[3];
unsigned short firstface;
unsigned short numfaces; // counting both sides
} dnode_t;
typedef struct texinfo_s
{
float vecs[2][4]; // [s/t][xyz offset]
int flags; // miptex flags + overrides
int value; // light emission, etc
char texture[32]; // texture name (textures/*.wal)
int nexttexinfo; // for animations, -1 = end of chain
} texinfo_t;
// note that edge 0 is never used, because negative edge nums are used for
// counterclockwise use of the edge in a face
typedef struct
{
unsigned short v[2]; // vertex numbers
} dedge_t;
#define MAXLIGHTMAPS 4
typedef struct
{
unsigned short planenum;
short side;
int firstedge; // we must support > 64k edges
short numedges;
short texinfo;
// lighting info
union {
byte styles[MAXLIGHTMAPS];
paletteRGBA_t lighting;
};
int lightofs; // start of [numstyles*surfsize] samples
} dface_t;
typedef struct
{
int contents; // OR of all brushes (not needed?)
short cluster;
short area;
short mins[3]; // for frustum culling
short maxs[3];
unsigned short firstleafface;
unsigned short numleaffaces;
unsigned short firstleafbrush;
unsigned short numleafbrushes;
} dleaf_t;
typedef struct
{
unsigned short planenum; // facing out of the leaf
short texinfo;
} dbrushside_t;
typedef struct
{
int firstside;
int numsides;
int contents;
} dbrush_t;
#define ANGLE_UP -1
#define ANGLE_DOWN -2
// the visibility lump consists of a header with a count, then
// byte offsets for the PVS and PHS of each cluster, then the raw
// compressed bit vectors
#define DVIS_PVS 0
#define DVIS_PHS 1
typedef struct
{
int numclusters;
int bitofs[8][2]; // bitofs[numclusters][2]
} dvis_t;
// each area has a list of portals that lead into other areas
// when portals are closed, other areas may not be visible or
// hearable even if the vis info says that it should be
typedef struct
{
int portalnum;
int otherarea;
} dareaportal_t;
typedef struct
{
int numareaportals;
int firstareaportal;
} darea_t;
typedef struct
{
char *name;
int value;
} materialtype_t;
enum
{
MATERIAL_GRAVEL,
MATERIAL_METAL,
MATERIAL_STONE,
MATERIAL_WOOD,
};
materialtype_t *materialtypes;
void QFile_ReadMaterialTypes(char* filename);

View file

@ -0,0 +1,275 @@
// scriplib.c
#include "cmdlib.h"
#include "scriplib.h"
/*
=============================================================================
PARSING STUFF
=============================================================================
*/
typedef struct
{
char filename[1024];
char *buffer,*script_p,*end_p;
int line;
} script_t;
#define MAX_INCLUDES 8
script_t scriptstack[MAX_INCLUDES];
script_t *script;
int scriptline;
char token[MAXTOKEN];
qboolean endofscript;
qboolean tokenready; // only true if UnGetScriptToken was just called
/*
==============
AddScriptToStack
==============
*/
void AddScriptToStack (char *filename)
{
int size;
script++;
if (script == &scriptstack[MAX_INCLUDES])
Error ("script file exceeded MAX_INCLUDES");
strcpy (script->filename, ExpandPath (filename) );
size = LoadFile (script->filename, (void **)&script->buffer);
printf ("entering %s\n", script->filename);
script->line = 1;
script->script_p = script->buffer;
script->end_p = script->buffer + size;
}
/*
==============
LoadScriptFile
==============
*/
void LoadScriptFile (char *filename)
{
script = scriptstack;
AddScriptToStack (filename);
endofscript = false;
tokenready = false;
}
/*
==============
ParseFromMemory
==============
*/
void ParseFromMemory (char *buffer, int size)
{
script = scriptstack;
script++;
if (script == &scriptstack[MAX_INCLUDES])
Error ("script file exceeded MAX_INCLUDES");
strcpy (script->filename, "memory buffer" );
script->buffer = buffer;
script->line = 1;
script->script_p = script->buffer;
script->end_p = script->buffer + size;
endofscript = false;
tokenready = false;
}
/*
==============
UnGetScriptToken
Signals that the current token was not used, and should be reported
for the next GetScriptToken. Note that
GetScriptToken (true);
UnGetScriptToken ();
GetScriptToken (false);
could cross a line boundary.
==============
*/
void UnGetScriptToken (void)
{
tokenready = true;
}
qboolean EndOfScript (qboolean crossline)
{
if (!crossline)
Error ("Line %i is incomplete\n",scriptline);
if (!strcmp (script->filename, "memory buffer"))
{
endofscript = true;
return false;
}
free (script->buffer);
if (script == scriptstack+1)
{
endofscript = true;
return false;
}
script--;
scriptline = script->line;
printf ("returning to %s\n", script->filename);
return GetScriptToken (crossline);
}
/*
==============
GetScriptToken
==============
*/
qboolean GetScriptToken (qboolean crossline)
{
char *token_p;
if (tokenready) // is a token allready waiting?
{
tokenready = false;
return true;
}
if (script->script_p >= script->end_p)
return EndOfScript (crossline);
//
// skip space
//
skipspace:
while (*script->script_p <= 32)
{
if (script->script_p >= script->end_p)
return EndOfScript (crossline);
if (*script->script_p++ == '\n')
{
if (!crossline)
Error ("Line %i is incomplete\n",scriptline);
scriptline = script->line++;
}
}
if (script->script_p >= script->end_p)
return EndOfScript (crossline);
// ; # // comments
if (*script->script_p == ';' || *script->script_p == '#'
|| ( script->script_p[0] == '/' && script->script_p[1] == '/') )
{
if (!crossline)
Error ("Line %i is incomplete\n",scriptline);
while (*script->script_p++ != '\n')
if (script->script_p >= script->end_p)
return EndOfScript (crossline);
goto skipspace;
}
// /* */ comments
if (script->script_p[0] == '/' && script->script_p[1] == '*')
{
if (!crossline)
Error ("Line %i is incomplete\n",scriptline);
script->script_p+=2;
while (script->script_p[0] != '*' && script->script_p[1] != '/')
{
script->script_p++;
if (script->script_p >= script->end_p)
return EndOfScript (crossline);
}
script->script_p += 2;
goto skipspace;
}
//
// copy token
//
token_p = token;
if (*script->script_p == '"')
{
// quoted token
script->script_p++;
while (*script->script_p != '"')
{
*token_p++ = *script->script_p++;
if (script->script_p == script->end_p)
break;
if (token_p == &token[MAXTOKEN])
Error ("Token too large on line %i\n",scriptline);
}
script->script_p++;
}
else // regular token
while ( *script->script_p > 32 && *script->script_p != ';')
{
*token_p++ = *script->script_p++;
if (script->script_p == script->end_p)
break;
if (token_p == &token[MAXTOKEN])
Error ("Token too large on line %i\n",scriptline);
}
*token_p = 0;
if (!strcmp (token, "$include"))
{
GetScriptToken (false);
AddScriptToStack (token);
return GetScriptToken (crossline);
}
return true;
}
/*
==============
ScriptTokenAvailable
Returns true if there is another token on the line
==============
*/
qboolean ScriptTokenAvailable (void)
{
char *search_p;
search_p = script->script_p;
if (search_p >= script->end_p)
return false;
while ( *search_p <= 32)
{
if (*search_p == '\n')
return false;
search_p++;
if (search_p == script->end_p)
return false;
}
if (*search_p == ';')
return false;
return true;
}

View file

@ -0,0 +1,23 @@
// scriplib.h
#ifndef __CMDLIB__
#include "cmdlib.h"
#endif
#define MAXTOKEN 1024
extern char token[MAXTOKEN];
extern char *scriptbuffer,*script_p,*scriptend_p;
extern int grabbed;
extern int scriptline;
extern qboolean endofscript;
void LoadScriptFile (char *filename);
void ParseFromMemory (char *buffer, int size);
qboolean GetScriptToken (qboolean crossline);
void UnGetScriptToken (void);
qboolean ScriptTokenAvailable (void);

View file

@ -0,0 +1,429 @@
#include "cmdlib.h"
#include "threads.h"
#define MAX_THREADS 64
int dispatch;
int workcount;
int oldf;
qboolean pacifier;
qboolean threaded;
/*
=============
GetThreadWork
=============
*/
int GetThreadWork (void)
{
int r;
int f;
ThreadLock ();
if (dispatch == workcount)
{
ThreadUnlock ();
return -1;
}
f = 10*dispatch / workcount;
if (f != oldf)
{
oldf = f;
if (pacifier)
printf ("%i...", f);
}
r = dispatch;
dispatch++;
ThreadUnlock ();
return r;
}
void (*workfunction) (int);
void ThreadWorkerFunction (int threadnum)
{
int work;
while (1)
{
work = GetThreadWork ();
if (work == -1)
break;
//printf ("thread %i, work %i\n", threadnum, work);
workfunction(work);
}
}
void RunThreadsOnIndividual (int workcnt, qboolean showpacifier, void(*func)(int))
{
if (numthreads == -1)
ThreadSetDefault ();
workfunction = func;
RunThreadsOn (workcnt, showpacifier, ThreadWorkerFunction);
}
/*
===================================================================
WIN32
===================================================================
*/
#ifdef WIN32
#define USED
#include <windows.h>
int numthreads = -1;
CRITICAL_SECTION crit;
static int enter;
void ThreadSetDefault (void)
{
SYSTEM_INFO info;
if (numthreads == -1) // not set manually
{
GetSystemInfo (&info);
numthreads = info.dwNumberOfProcessors;
if (numthreads < 1 || numthreads > 32)
numthreads = 1;
}
qprintf ("%i threads\n", numthreads);
}
void ThreadLock (void)
{
if (!threaded)
return;
EnterCriticalSection (&crit);
if (enter)
Error ("Recursive ThreadLock\n");
enter = 1;
}
void ThreadUnlock (void)
{
if (!threaded)
return;
if (!enter)
Error ("ThreadUnlock without lock\n");
enter = 0;
LeaveCriticalSection (&crit);
}
/*
=============
RunThreadsOn
=============
*/
void RunThreadsOn (int workcnt, qboolean showpacifier, void(*func)(int))
{
int threadid[MAX_THREADS];
HANDLE threadhandle[MAX_THREADS];
int i;
int start, end;
start = I_FloatTime ();
dispatch = 0;
workcount = workcnt;
oldf = -1;
pacifier = showpacifier;
//
// run threads in parallel
//
InitializeCriticalSection (&crit);
if (numthreads == 1)
{ // use same thread
threaded = false;
func (0);
}
else
{
threaded = true;
for (i=0 ; i<numthreads ; i++)
{
threadhandle[i] = CreateThread(
NULL, // LPSECURITY_ATTRIBUTES lpsa,
0, // DWORD cbStack,
(LPTHREAD_START_ROUTINE)func, // LPTHREAD_START_ROUTINE lpStartAddr,
(LPVOID)i, // LPVOID lpvThreadParm,
0, // DWORD fdwCreate,
&threadid[i]);
}
for (i=0 ; i<numthreads ; i++)
WaitForSingleObject (threadhandle[i], INFINITE);
}
DeleteCriticalSection (&crit);
threaded = false;
end = I_FloatTime ();
if (pacifier)
printf (" (%i)\n", end-start);
}
#endif
/*
===================================================================
OSF1
===================================================================
*/
#ifdef __osf__
#define USED
int numthreads = 4;
void ThreadSetDefault (void)
{
if (numthreads == -1) // not set manually
{
numthreads = 4;
}
}
#include <pthread.h>
pthread_mutex_t *my_mutex;
void ThreadLock (void)
{
if (my_mutex)
pthread_mutex_lock (my_mutex);
}
void ThreadUnlock (void)
{
if (my_mutex)
pthread_mutex_unlock (my_mutex);
}
/*
=============
RunThreadsOn
=============
*/
void RunThreadsOn (int workcnt, qboolean showpacifier, void(*func)(int))
{
int i;
pthread_t work_threads[MAX_THREADS];
pthread_addr_t status;
pthread_attr_t attrib;
pthread_mutexattr_t mattrib;
int start, end;
start = I_FloatTime ();
dispatch = 0;
workcount = workcnt;
oldf = -1;
pacifier = showpacifier;
threaded = true;
if (pacifier)
setbuf (stdout, NULL);
if (!my_mutex)
{
my_mutex = malloc (sizeof(*my_mutex));
if (pthread_mutexattr_create (&mattrib) == -1)
Error ("pthread_mutex_attr_create failed");
if (pthread_mutexattr_setkind_np (&mattrib, MUTEX_FAST_NP) == -1)
Error ("pthread_mutexattr_setkind_np failed");
if (pthread_mutex_init (my_mutex, mattrib) == -1)
Error ("pthread_mutex_init failed");
}
if (pthread_attr_create (&attrib) == -1)
Error ("pthread_attr_create failed");
if (pthread_attr_setstacksize (&attrib, 0x100000) == -1)
Error ("pthread_attr_setstacksize failed");
for (i=0 ; i<numthreads ; i++)
{
if (pthread_create(&work_threads[i], attrib
, (pthread_startroutine_t)func, (pthread_addr_t)i) == -1)
Error ("pthread_create failed");
}
for (i=0 ; i<numthreads ; i++)
{
if (pthread_join (work_threads[i], &status) == -1)
Error ("pthread_join failed");
}
threaded = false;
end = I_FloatTime ();
if (pacifier)
printf (" (%i)\n", end-start);
}
#endif
/*
===================================================================
IRIX
===================================================================
*/
#ifdef _MIPS_ISA
#define USED
#include <task.h>
#include <abi_mutex.h>
#include <sys/types.h>
#include <sys/prctl.h>
int numthreads = -1;
abilock_t lck;
void ThreadSetDefault (void)
{
if (numthreads == -1)
numthreads = prctl(PR_MAXPPROCS);
printf ("%i threads\n", numthreads);
//@@
usconfig (CONF_INITUSERS, numthreads);
}
void ThreadLock (void)
{
spin_lock (&lck);
}
void ThreadUnlock (void)
{
release_lock (&lck);
}
/*
=============
RunThreadsOn
=============
*/
void RunThreadsOn (int workcnt, qboolean showpacifier, void(*func)(int))
{
int i;
int pid[MAX_THREADS];
int start, end;
start = I_FloatTime ();
dispatch = 0;
workcount = workcnt;
oldf = -1;
pacifier = showpacifier;
threaded = true;
if (pacifier)
setbuf (stdout, NULL);
init_lock (&lck);
for (i=0 ; i<numthreads-1 ; i++)
{
pid[i] = sprocsp ( (void (*)(void *, size_t))func, PR_SALL, (void *)i
, NULL, 0x100000);
// pid[i] = sprocsp ( (void (*)(void *, size_t))func, PR_SALL, (void *)i
// , NULL, 0x80000);
if (pid[i] == -1)
{
perror ("sproc");
Error ("sproc failed");
}
}
func(i);
for (i=0 ; i<numthreads-1 ; i++)
wait (NULL);
threaded = false;
end = I_FloatTime ();
if (pacifier)
printf (" (%i)\n", end-start);
}
#endif
/*
=======================================================================
SINGLE THREAD
=======================================================================
*/
#ifndef USED
int numthreads = 1;
void ThreadSetDefault (void)
{
numthreads = 1;
}
void ThreadLock (void)
{
}
void ThreadUnlock (void)
{
}
/*
=============
RunThreadsOn
=============
*/
void RunThreadsOn (int workcnt, qboolean showpacifier, void(*func)(int))
{
int i;
int start, end;
dispatch = 0;
workcount = workcnt;
oldf = -1;
pacifier = showpacifier;
start = I_FloatTime ();
#ifdef NeXT
if (pacifier)
setbuf (stdout, NULL);
#endif
func(0);
end = I_FloatTime ();
if (pacifier)
printf (" (%i)\n", end-start);
}
#endif

View file

@ -0,0 +1,10 @@
extern int numthreads;
void ThreadSetDefault (void);
int GetThreadWork (void);
void RunThreadsOnIndividual (int workcnt, qboolean showpacifier, void(*func)(int));
void RunThreadsOn (int workcnt, qboolean showpacifier, void(*func)(int));
void ThreadLock (void);
void ThreadUnlock (void);

View file

@ -0,0 +1,528 @@
//**************************************************************************
//**
//** token.c
//**
//**************************************************************************
// HEADER FILES ------------------------------------------------------------
#include "token.h"
// MACROS ------------------------------------------------------------------
// TYPES -------------------------------------------------------------------
typedef enum
{
CHR_EOF,
CHR_LETTER,
CHR_NUMBER,
CHR_QUOTE,
CHR_SPECIAL
} chr_t;
// EXTERNAL FUNCTION PROTOTYPES --------------------------------------------
// PUBLIC FUNCTION PROTOTYPES ----------------------------------------------
// PRIVATE FUNCTION PROTOTYPES ---------------------------------------------
static void ProcessLetterToken(void);
static void ProcessNumberToken(void);
static void ProcessQuoteToken(void);
static void ProcessSpecialToken(void);
static qboolean CheckForKeyword(void);
static void NextChr(void);
// EXTERNAL DATA DECLARATIONS ----------------------------------------------
// PUBLIC DATA DEFINITIONS -------------------------------------------------
tokenType_t tk_Token;
int tk_Line;
int tk_IntNumber;
float tk_FloatNumber;
char *tk_String;
char tk_SourceName[MAX_FILE_NAME_LENGTH];
// PRIVATE DATA DEFINITIONS ------------------------------------------------
static char Chr;
static char *FileStart;
static char *FilePtr;
static char *FileEnd;
static qboolean SourceOpen;
static char ASCIIToChrCode[256];
static char TokenStringBuffer[MAX_QUOTED_LENGTH];
static qboolean IncLineNumber;
static char TempBuffer[2048];
static struct
{
char *name;
tokenType_t token;
} Keywords[] =
{
"model", TK_MODEL,
"mesh", TK_MESH,
"vertices", TK_VERTICES,
"edges", TK_EDGES,
"position", TK_POSITION,
"polygons", TK_POLYGONS,
"nodes", TK_NODES,
"rotation", TK_ROTATION,
"scaling", TK_SCALING,
"translation", TK_TRANSLATION,
"vertex", TK_VERTEX,
"HRCH", TK_HRCH,
"Softimage", TK_SOFTIMAGE,
"material", TK_MATERIAL,
"spline", TK_SPLINE,
"Named", TK_C_NAMED,
"object", TK_OBJECT,
"Tri", TK_C_TRI,
"Vertices", TK_C_VERTICES,
"Faces", TK_C_FACES,
"Vertex", TK_C_VERTEX,
"list", TK_LIST,
"Face", TK_C_FACE,
"Hexen", TK_C_HEXEN,
"Triangles", TK_C_TRIANGLES,
"Version", TK_C_VERSION,
"faces", TK_FACES,
"face", TK_FACE,
"origin", TK_ORIGIN,
"DK_clusters", TK_CLUSTERS,
"DK_cluster_ncvs", TK_NUM_CLUSTER_VERTICES,
"name", TK_NAME,
"DK_cluster_name", TK_CLUSTER_NAME,
"DK_cluster_state", TK_CLUSTER_STATE,
"actor_data", TK_ACTOR_DATA,
"uvTexture", TK_UVTEXTURE,
NULL, -1
};
static char *TokenNames[] =
{
"<nothing>",
"<unknown_char>",
"<EOF>",
"<identifier>",
"<string>",
"<int_number>",
"<float_number>",
"(",
")",
"{",
"}",
"[",
"]",
":",
"mesh",
"model",
"nodes",
"rotation",
"scaling",
"translation",
"polygons",
"position",
"vertex",
"vertices",
"HRCH",
"Softimage"
};
// CODE --------------------------------------------------------------------
//==========================================================================
//
// TK_Init
//
//==========================================================================
void TK_Init(void)
{
int i;
for(i = 0; i < 256; i++)
{
ASCIIToChrCode[i] = CHR_SPECIAL;
}
for(i = '0'; i <= '9'; i++)
{
ASCIIToChrCode[i] = CHR_NUMBER;
}
for(i = 'A'; i <= 'Z'; i++)
{
ASCIIToChrCode[i] = CHR_LETTER;
}
for(i = 'a'; i <= 'z'; i++)
{
ASCIIToChrCode[i] = CHR_LETTER;
}
ASCIIToChrCode[ASCII_QUOTE] = CHR_QUOTE;
ASCIIToChrCode[ASCII_UNDERSCORE] = CHR_LETTER;
ASCIIToChrCode[EOF_CHARACTER] = CHR_EOF;
tk_String = TokenStringBuffer;
IncLineNumber = FALSE;
SourceOpen = FALSE;
}
//==========================================================================
//
// TK_OpenSource
//
//==========================================================================
void TK_OpenSource(char *fileName)
{
int size;
TK_CloseSource();
size = LoadFile(fileName, (void **)&FileStart);
strcpy(tk_SourceName, fileName);
SourceOpen = TRUE;
FileEnd = FileStart+size;
FilePtr = FileStart;
tk_Line = 1;
tk_Token = TK_NONE;
NextChr();
}
//==========================================================================
//
// TK_CloseSource
//
//==========================================================================
void TK_CloseSource(void)
{
if(SourceOpen)
{
free(FileStart);
SourceOpen = FALSE;
}
}
//==========================================================================
//
// TK_Fetch
//
//==========================================================================
tokenType_t TK_Fetch(void)
{
while(Chr == ASCII_SPACE)
{
NextChr();
}
if(Chr == '-')
{
ProcessNumberToken();
}
else switch(ASCIIToChrCode[(byte)Chr])
{
case CHR_EOF:
tk_Token = TK_EOF;
break;
case CHR_LETTER:
ProcessLetterToken();
break;
case CHR_NUMBER:
ProcessNumberToken();
break;
case CHR_QUOTE:
ProcessQuoteToken();
break;
default:
ProcessSpecialToken();
break;
}
return tk_Token;
}
//==========================================================================
//
// TK_Require
//
//==========================================================================
void TK_Require(tokenType_t tokType)
{
if(tokType == TK_FLOATNUMBER && tk_Token == TK_INTNUMBER)
{
tk_FloatNumber = (float)tk_IntNumber;
tk_Token = TK_FLOATNUMBER;
return;
}
if(tk_Token != tokType)
{
Error("File '%s', line %d:\nExpected '%s', found '%s'.\n",
tk_SourceName, tk_Line, TokenNames[tokType],
TokenNames[tk_Token]);
}
}
void TK_FetchRequire(tokenType_t tokType)
{
TK_Fetch();
TK_Require(tokType);
}
tokenType_t TK_RequireFetch(tokenType_t tokType)
{
TK_Require(tokType);
return TK_Fetch();
}
tokenType_t TK_FetchRequireFetch(tokenType_t tokType)
{
TK_Fetch();
TK_Require(tokType);
return TK_Fetch();
}
tokenType_t TK_Beyond(tokenType_t tokType)
{
while(tk_Token != tokType)
{
if(TK_Fetch() == TK_EOF)
{
Error("File '%s':\nCould not find token '%s'.\n", // FIXME: TokenNames table not big enuff
tk_SourceName, TokenNames[tokType]);
}
}
return TK_Fetch();
}
void TK_BeyondRequire(tokenType_t bTok, tokenType_t rTok)
{
TK_Beyond(bTok);
TK_Require(rTok);
}
tokenType_t TK_Search(tokenType_t tokType)
{
while(tk_Token != tokType)
{
if(TK_Fetch() == TK_EOF)
{
return TK_EOF;
}
}
return TK_Fetch();
}
tokenType_t TK_Get(tokenType_t tokType)
{
while(tk_Token != tokType)
{
if(TK_Fetch() == TK_EOF)
{
Error("File '%s':\nCould not find token '%s'.\n",
tk_SourceName, TokenNames[tokType]);
}
}
return tk_Token;
}
//==========================================================================
//
// ProcessLetterToken
//
//==========================================================================
static void ProcessLetterToken(void)
{
int i;
char *text;
i = 0;
text = TokenStringBuffer;
while(ASCIIToChrCode[(byte)Chr] == CHR_LETTER
|| ASCIIToChrCode[(byte)Chr] == CHR_NUMBER)
{
if(++i == MAX_IDENTIFIER_LENGTH)
{
Error("File '%s', line %d:\nIdentifier too long.\n",
tk_SourceName, tk_Line);
}
*text++ = Chr;
NextChr();
}
*text = 0;
if(CheckForKeyword() == FALSE)
{
tk_Token = TK_IDENTIFIER;
}
}
//==========================================================================
//
// CheckForKeyword
//
//==========================================================================
static qboolean CheckForKeyword(void)
{
int i;
for(i = 0; Keywords[i].name != NULL; i++)
{
if(strcmp(tk_String, Keywords[i].name) == 0)
{
tk_Token = Keywords[i].token;
return TRUE;
}
}
return FALSE;
}
//==========================================================================
//
// ProcessNumberToken
//
//==========================================================================
static void ProcessNumberToken(void)
{
char *buffer;
buffer = TempBuffer;
*buffer++ = Chr;
NextChr();
while(ASCIIToChrCode[(byte)Chr] == CHR_NUMBER)
{
*buffer++ = Chr;
NextChr();
}
if(Chr == '.')
{ // Float
*buffer++ = Chr;
NextChr(); // Skip period
while(ASCIIToChrCode[(byte)Chr] == CHR_NUMBER)
{
*buffer++ = Chr;
NextChr();
}
*buffer = 0;
tk_FloatNumber = (float)atof(TempBuffer);
tk_Token = TK_FLOATNUMBER;
return;
}
// Integer
*buffer = 0;
tk_IntNumber = atoi(TempBuffer);
tk_Token = TK_INTNUMBER;
}
//==========================================================================
//
// ProcessQuoteToken
//
//==========================================================================
static void ProcessQuoteToken(void)
{
int i;
char *text;
i = 0;
text = TokenStringBuffer;
NextChr();
while(Chr != ASCII_QUOTE)
{
if(Chr == EOF_CHARACTER)
{
Error("File '%s', line %d:\n<EOF> inside string.\n",
tk_SourceName, tk_Line);
}
if(++i > MAX_QUOTED_LENGTH-1)
{
Error("File '%s', line %d:\nString literal too long.\n",
tk_SourceName, tk_Line);
}
*text++ = Chr;
NextChr();
}
*text = 0;
NextChr();
tk_Token = TK_STRING;
}
//==========================================================================
//
// ProcessSpecialToken
//
//==========================================================================
static void ProcessSpecialToken(void)
{
char c;
c = Chr;
NextChr();
switch(c)
{
case '(':
tk_Token = TK_LPAREN;
break;
case ')':
tk_Token = TK_RPAREN;
break;
case '{':
tk_Token = TK_LBRACE;
break;
case '}':
tk_Token = TK_RBRACE;
break;
case '[':
tk_Token = TK_LBRACKET;
break;
case ']':
tk_Token = TK_RBRACKET;
break;
case ':':
tk_Token = TK_COLON;
break;
default:
tk_Token = TK_UNKNOWNCHAR;
break;
}
}
//==========================================================================
//
// NextChr
//
//==========================================================================
static void NextChr(void)
{
if(FilePtr >= FileEnd)
{
Chr = EOF_CHARACTER;
return;
}
if(IncLineNumber == TRUE)
{
tk_Line++;
IncLineNumber = FALSE;
}
Chr = *FilePtr++;
if(Chr < ASCII_SPACE)
{
if(Chr == '\n')
{
IncLineNumber = TRUE;
}
Chr = ASCII_SPACE;
}
}

View file

@ -0,0 +1,111 @@
//**************************************************************************
//**
//** token.h
//**
//**************************************************************************
#ifndef __TOKEN_H__
#define __TOKEN_H__
#include "cmdlib.h"
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
#ifndef YES
#define YES 1
#endif
#ifndef NO
#define NO 0
#endif
#define ASCII_SPACE 32
#define ASCII_QUOTE 34
#define ASCII_UNDERSCORE 95
#define EOF_CHARACTER 127
#define MAX_IDENTIFIER_LENGTH 64
#define MAX_QUOTED_LENGTH 1024
#define MAX_FILE_NAME_LENGTH 1024
typedef enum
{
TK_NONE,
TK_UNKNOWNCHAR,
TK_EOF,
TK_IDENTIFIER, // VALUE: (char *) tk_String
TK_STRING, // VALUE: (char *) tk_String
TK_INTNUMBER, // VALUE: (int) tk_IntNumber
TK_FLOATNUMBER, // VALUE: (float) tk_FloatNumber
TK_LPAREN,
TK_RPAREN,
TK_LBRACE,
TK_RBRACE, // 10
TK_LBRACKET,
TK_RBRACKET,
TK_COLON,
TK_MESH,
TK_MODEL, // 15
TK_NODES,
TK_ROTATION,
TK_SCALING,
TK_TRANSLATION,
TK_POLYGONS, // 20
TK_POSITION,
TK_VERTEX,
TK_VERTICES,
TK_EDGES,
TK_HRCH, // 25
TK_SOFTIMAGE,
TK_MATERIAL,
TK_SPLINE, // 28
TK_C_NAMED,
TK_OBJECT, // 30
TK_C_TRI,
TK_C_VERTICES,
TK_C_FACES,
TK_C_VERTEX,
TK_LIST, // 35
TK_C_FACE,
TK_C_HEXEN,
TK_C_TRIANGLES,
TK_C_VERSION,
TK_FACES, // 40
TK_FACE,
TK_ORIGIN,
TK_CLUSTERS,
TK_NUM_CLUSTER_VERTICES,
TK_NAME, // 45
TK_CLUSTER_NAME,
TK_CLUSTER_STATE,
TK_ACTOR_DATA,
TK_UVTEXTURE,
} tokenType_t;
void TK_Init(void);
void TK_OpenSource(char *fileName);
void TK_CloseSource(void);
tokenType_t TK_Fetch(void);
void TK_Require(tokenType_t tokType);
void TK_FetchRequire(tokenType_t tokType);
tokenType_t TK_RequireFetch(tokenType_t tokType);
tokenType_t TK_FetchRequireFetch(tokenType_t tokType);
tokenType_t TK_Beyond(tokenType_t tokType);
void TK_BeyondRequire(tokenType_t bTok, tokenType_t rTok);
tokenType_t TK_Search(tokenType_t tokType);
tokenType_t TK_Get(tokenType_t tokType);
extern tokenType_t tk_Token;
extern int tk_Line;
extern int tk_IntNumber;
extern float tk_FloatNumber;
extern char *tk_String;
extern char tk_SourceName[MAX_FILE_NAME_LENGTH];
#endif

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,36 @@
//
// trilib.h: header file for loading triangles from an Alias triangle file
//
#include "../ref_common/fmodel.h"
#define MAXTRIANGLES MAX_FM_TRIANGLES
typedef struct
{
vec3_t verts[3];
#ifdef _QDATA
int indicies[3];
float uv[3][2];
qboolean HasUV;
#endif
} triangle_t;
#define NUM_CLUSTERS 8
typedef struct
{
char name[64];
byte tris[MAXTRIANGLES>>3];
byte verts[MAX_FM_VERTS>>3];
int start_glcmds, num_glcmds;
int *clusters[NUM_CLUSTERS];
struct IntListNode_s *vertLists[NUM_CLUSTERS];
int num_verts[NUM_CLUSTERS + 1];
int new_num_verts[NUM_CLUSTERS + 1];
qboolean clustered;
} mesh_node_t;
void LoadTriangleList (char *filename, triangle_t **pptri, int *numtriangles, mesh_node_t **ppmnodes, int *num_mesh_nodes);

View file

@ -1,10 +1,10 @@
#include "qd_fmodel.h"
#include "animcomp.h"
#include "qd_Skeletons.h"
#include "Skeletons.h"
#include "..\..\GameCode\qcommon\Skeletons.h"
#include "qdata.h"
#include "flex.h"
#include "Reference.h"
#include "..\..\GameCode\qcommon\Reference.h"
#include <assert.h>

View file

@ -2,7 +2,7 @@
#include <math.h>
#include "token.h"
#include "Joints.h"
#include "Angles.h"
#include "..\..\GameCode\qcommon\Angles.h"
char *SKEL_ROOT_NAMES[] =
{

View file

@ -0,0 +1,12 @@
// Generic flexible format
typedef struct
{
char ident[32];
int version;
int size;
} header_t;
void WriteHeader(FILE *, char *, int, int, void *);
// end

View file

@ -1,10 +1,10 @@
#include "qd_Skeletons.h"
#include "Skeletons.h"
#include "..\..\GameCode\qcommon\Skeletons.h"
#include "qd_fmodel.h"
#include "Angles.h"
#include "..\..\GameCode\qcommon\Angles.h"
#include "token.h"
#include "qdata.h"
#include "Reference.h"
#include "..\..\GameCode\qcommon\Reference.h"
#include <assert.h>
#include <math.h>

View file

@ -1,7 +1,7 @@
#ifndef QD_SKELETONS_H
#define QD_SKELETONS_H
#include "Placement.h"
#include "..\..\GameCode\qcommon\Placement.h"
typedef float vec3_t[3];
typedef double vec3d_t[3];

View file

@ -546,10 +546,10 @@ int main (int argc, char **argv)
printf ("Only grabbing %s\n", g_only);
i++;
}
else if (!strcmpi(argv[i], "-keypress"))
/* else if (!strcmpi(argv[i], "-keypress")) // went away because it didn't appear to do anything.
{
g_dokeypress = true;
}
}*/
else if (!strcmp(argv[i], "-3ds"))
{
do3ds = true;
@ -617,10 +617,10 @@ int main (int argc, char **argv)
{
g_publishOutput = true;
}
else if (!strcmpi(argv[i], "-nomkdir"))
/* else if (!strcmpi(argv[i], "-nomkdir")) // removed because it didn't do anything
{
g_nomkdir = true;
}
}*/
else if (argv[i][0] == '-')
Error ("Unknown option \"%s\"", argv[i]);
else
@ -642,7 +642,6 @@ int main (int argc, char **argv)
" [-oldskin]\n"
" [-noopts]\n"
" [-verbose]\n"
" [-keypress]\n"
" [-materialfile]\n"
" file.qdt\n"
"or\n"
@ -699,10 +698,10 @@ int main (int argc, char **argv)
endtime = I_FloatTime();
printf("Time elapsed: %f\n", endtime-starttime);
if (g_dokeypress)
/* if (g_dokeypress) // didn't do anything, thus commented out
{
getch();
}
} */
return 0;
}

View file

@ -179,11 +179,11 @@ SOURCE=..\common\qfiles.c
# End Source File
# Begin Source File
SOURCE=..\qcommon\Reference.c
SOURCE=..\..\GameCode\qcommon\Reference.c
# End Source File
# Begin Source File
SOURCE=..\qcommon\ResourceManager.c
SOURCE=..\..\GameCode\qcommon\ResourceManager.c
# End Source File
# Begin Source File
@ -191,7 +191,7 @@ SOURCE=..\common\scriplib.c
# End Source File
# Begin Source File
SOURCE=..\qcommon\Skeletons.c
SOURCE=..\..\GameCode\qcommon\Skeletons.c
# End Source File
# Begin Source File

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,60 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: qdata - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\WINDOWS\TEMP\RSPA104.TMP" with contents
[
/nologo /G6 /MLd /W3 /Gm /Gi /GX /ZI /Od /I "..\qcommon" /I "..\ref_gl" /I "..\qdata" /I "..\ref_common" /I "..\common" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_QDATA" /D "_TOOL" /D "_RAVEN" /D "H2COMMON_STATIC" /FR".\Debug/" /Fp".\Debug/qdata.pch" /YX /Fo".\Debug/" /Fd".\Debug/" /FD /c
"D:\Toolkit\Programming\Tools\qdata\qdata.c"
]
Creating command line "cl.exe @C:\WINDOWS\TEMP\RSPA104.TMP"
Creating temporary file "C:\WINDOWS\TEMP\RSPA105.TMP" with contents
[
kernel32.lib user32.lib gdi32.lib winspool.lib /nologo /subsystem:console /incremental:yes /pdb:".\Debug/qdata.pdb" /debug /machine:I386 /out:".\Debug/qdata.exe"
.\Debug\animcomp.obj
.\Debug\book.obj
.\Debug\bspfile.obj
.\Debug\cmdlib.obj
.\Debug\fmodels.obj
.\Debug\images.obj
.\Debug\Jointed.obj
.\Debug\l3dslib.obj
.\Debug\lbmlib.obj
.\Debug\mathlib.obj
.\Debug\md4.obj
.\Debug\models.obj
.\Debug\pics.obj
.\Debug\qd_Skeletons.obj
.\Debug\qdata.obj
.\Debug\qfiles.obj
.\Debug\Reference.obj
.\Debug\ResourceManager.obj
.\Debug\scriplib.obj
.\Debug\Skeletons.obj
.\Debug\sprites.obj
.\Debug\svdcmp.obj
.\Debug\tables.obj
.\Debug\threads.obj
.\Debug\tmix.obj
.\Debug\token.obj
.\Debug\trilib.obj
.\Debug\video.obj
.\Debug\Script1.res
]
Creating command line "link.exe @C:\WINDOWS\TEMP\RSPA105.TMP"
<h3>Output Window</h3>
Compiling...
qdata.c
Linking...
<h3>Results</h3>
qdata.exe - 0 error(s), 0 warning(s)
</pre>
</body>
</html>

18
Toolkit/readme.txt Normal file
View file

@ -0,0 +1,18 @@
This is an update zip for the Heretic 2 toolkit, included on your
Heretic 2 CD. To install, simply unzip it into your toolkit directory.
Make sure you keep directories when unzipping.
If you've installed to a dir other than the default, you may need to
use notepad or something to edit heretic2.qe4 to set the right paths.
Stuff this fixes:
-- heretic2.qe4 now properly scans and includes the script_runner ent
-- Included some common tools files that were missed
-- Included a couple qcommon files that were missing
-- Included a ton of examples on using QData in the qdtexamples dir
-- QE4, QBSP, Qrad, Qvis, and Qdata should all compile right away now