From 2aee7b78c9cf4e8dbc999fa75f6ce0778cb0a7e5 Mon Sep 17 00:00:00 2001 From: Sven Hesse Date: Sun, 22 Jul 2012 11:38:20 +0200 Subject: [PATCH] DOCS: Remove the format specification They have been moved to the xoreos-tools repository (). --- doc/specs/bioware/2DA_Format.pdf | Bin 24187 -> 0 bytes doc/specs/bioware/AreaFile_Format.pdf | Bin 47671 -> 0 bytes doc/specs/bioware/CommonGFFStructs.pdf | Bin 33879 -> 0 bytes doc/specs/bioware/Conversation_Format.pdf | Bin 27404 -> 0 bytes doc/specs/bioware/Creature_Format.pdf | Bin 173137 -> 0 bytes doc/specs/bioware/DoorPlaceableGFF.pdf | Bin 48420 -> 0 bytes doc/specs/bioware/ERF_Format.pdf | Bin 20909 -> 0 bytes doc/specs/bioware/Encounter_Format.pdf | Bin 26408 -> 0 bytes doc/specs/bioware/Faction_Format.pdf | Bin 25342 -> 0 bytes doc/specs/bioware/GFF_Format.pdf | Bin 48632 -> 0 bytes doc/specs/bioware/IFO_Format.pdf | Bin 34859 -> 0 bytes doc/specs/bioware/Item_Format.pdf | Bin 100716 -> 0 bytes doc/specs/bioware/Journal_Format.pdf | Bin 15960 -> 0 bytes doc/specs/bioware/KeyBIF_Format.pdf | Bin 35988 -> 0 bytes doc/specs/bioware/LocalizedStrings_Format.pdf | Bin 14515 -> 0 bytes doc/specs/bioware/PaletteITP_Format.pdf | Bin 52240 -> 0 bytes doc/specs/bioware/README | 3 - doc/specs/bioware/SSF_Format.pdf | Bin 28853 -> 0 bytes doc/specs/bioware/SoundObject_Format.pdf | Bin 29835 -> 0 bytes doc/specs/bioware/Store_Format.pdf | Bin 26268 -> 0 bytes doc/specs/bioware/TalkTable_Format.pdf | Bin 26042 -> 0 bytes doc/specs/bioware/Trigger_Format.pdf | Bin 41982 -> 0 bytes doc/specs/bioware/Waypoint_Format.pdf | Bin 18108 -> 0 bytes doc/specs/gmax_nwn_mdl_0.3b.ms | 2422 ----------------- doc/specs/kotor_mdl.html | 2174 --------------- doc/specs/nds_sdat.html | 941 ------- doc/specs/torlack/README | 1 - doc/specs/torlack/basics.html | 189 -- doc/specs/torlack/bif.html | 103 - doc/specs/torlack/binmdl.html | 1979 -------------- doc/specs/torlack/itp.html | 618 ----- doc/specs/torlack/key.html | 175 -- doc/specs/torlack/mod.html | 235 -- doc/specs/torlack/ncs.html | 1845 ------------- doc/specs/torlack/plt.html | 220 -- 35 files changed, 10905 deletions(-) delete mode 100644 doc/specs/bioware/2DA_Format.pdf delete mode 100644 doc/specs/bioware/AreaFile_Format.pdf delete mode 100644 doc/specs/bioware/CommonGFFStructs.pdf delete mode 100644 doc/specs/bioware/Conversation_Format.pdf delete mode 100644 doc/specs/bioware/Creature_Format.pdf delete mode 100644 doc/specs/bioware/DoorPlaceableGFF.pdf delete mode 100644 doc/specs/bioware/ERF_Format.pdf delete mode 100644 doc/specs/bioware/Encounter_Format.pdf delete mode 100644 doc/specs/bioware/Faction_Format.pdf delete mode 100644 doc/specs/bioware/GFF_Format.pdf delete mode 100644 doc/specs/bioware/IFO_Format.pdf delete mode 100644 doc/specs/bioware/Item_Format.pdf delete mode 100644 doc/specs/bioware/Journal_Format.pdf delete mode 100644 doc/specs/bioware/KeyBIF_Format.pdf delete mode 100644 doc/specs/bioware/LocalizedStrings_Format.pdf delete mode 100644 doc/specs/bioware/PaletteITP_Format.pdf delete mode 100644 doc/specs/bioware/README delete mode 100644 doc/specs/bioware/SSF_Format.pdf delete mode 100644 doc/specs/bioware/SoundObject_Format.pdf delete mode 100644 doc/specs/bioware/Store_Format.pdf delete mode 100644 doc/specs/bioware/TalkTable_Format.pdf delete mode 100644 doc/specs/bioware/Trigger_Format.pdf delete mode 100644 doc/specs/bioware/Waypoint_Format.pdf delete mode 100644 doc/specs/gmax_nwn_mdl_0.3b.ms delete mode 100644 doc/specs/kotor_mdl.html delete mode 100644 doc/specs/nds_sdat.html delete mode 100644 doc/specs/torlack/README delete mode 100644 doc/specs/torlack/basics.html delete mode 100644 doc/specs/torlack/bif.html delete mode 100644 doc/specs/torlack/binmdl.html delete mode 100644 doc/specs/torlack/itp.html delete mode 100644 doc/specs/torlack/key.html delete mode 100644 doc/specs/torlack/mod.html delete mode 100644 doc/specs/torlack/ncs.html delete mode 100644 doc/specs/torlack/plt.html diff --git a/doc/specs/bioware/2DA_Format.pdf b/doc/specs/bioware/2DA_Format.pdf deleted file mode 100644 index 80e4ec0adcb0b8abd4d39d758089e251351c5d5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24187 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 O;I*)9nbvx3%>MzbnQtus diff --git a/doc/specs/bioware/AreaFile_Format.pdf b/doc/specs/bioware/AreaFile_Format.pdf deleted file mode 100644 index 2b418e86eb3aaf8a205541e8fd377890cde6d501..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47671 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%0Aq$__7&L6%vbFEoM65qpJMRcZtif%4 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 VcE^(eQ`0qlfA!gCufMyw`ak~1#u)$r diff --git a/doc/specs/bioware/CommonGFFStructs.pdf b/doc/specs/bioware/CommonGFFStructs.pdf deleted file mode 100644 index 988650cc5318a54a08286bb35da7f70bb1f59781..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33879 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 diff --git a/doc/specs/bioware/Conversation_Format.pdf b/doc/specs/bioware/Conversation_Format.pdf deleted file mode 100644 index 0d8951267dc6774e99f1e297e5ff1771b1e24eb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27404 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 b6mX1oaW!^!g)b~l;0Zvm=;$PsrLg`VoxR37 diff --git a/doc/specs/bioware/Creature_Format.pdf b/doc/specs/bioware/Creature_Format.pdf deleted file mode 100644 index 7581e770bf5319ca1a34d79ea8c19a69fbfab561..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173137 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

05|4Dd^;#8{KE>~px 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 vtH>hj?ZTv&Hqen}3V~1|<3r{xErQ_~+kJXvY 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 -W6foa^v`$@$#GO{4-+;^D8m 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 diff --git a/doc/specs/bioware/Encounter_Format.pdf b/doc/specs/bioware/Encounter_Format.pdf deleted file mode 100644 index 66b056bae7fa71f719a5d8002cbecba8abe5e449..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26408 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 PC!?Yp9UWc1pNxJ0&TgMe diff --git a/doc/specs/bioware/Faction_Format.pdf b/doc/specs/bioware/Faction_Format.pdf deleted file mode 100644 index ff2a2614f0231bbe9c75b7710118d75538b6c35c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25342 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 diff --git a/doc/specs/bioware/IFO_Format.pdf b/doc/specs/bioware/IFO_Format.pdf deleted file mode 100644 index 2eec39cb5f32520e770f1652ffde1198e2213437..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34859 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 z 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 M98X?e*HDk}Uv$|R$p8QV diff --git a/doc/specs/bioware/Item_Format.pdf b/doc/specs/bioware/Item_Format.pdf deleted file mode 100644 index 7150b357d204699d08405bf27089cd410ebc76d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100716 zcmbrlb9`pa)+QX=PC8CHwr$(CZQD-AX2-T|+crA3HQmp9p7WiV_xxtg%=gb->sPyK z@7i}Q)OD@3zsm`UP}9>e;KP33+n=6?g~ErWXTqn$w>7YU<>G>+l`^(5buz=JXa3!% z081-kZsla`fKMx8rSD`cWNc__WQ-5X!vpK+L zAhe7Q@k{mwiiXA(p$CGnbn7dBE6@xu7UvPr2e>=%SBeMc9ziIJOu|d zzo{6CfbdV9^JUTPi6|0WJg+mT`)72h4Hm+N@VmR2Ga3kmYd+tG03h2;VmmnLLD=Bs z6|X*w6Srk?t38wXCAvP@F`kp4gu*Tv&&a=0YLh$#5zsB_G&h zo7)nqt2n$6jthN?Xn2TFuG|Ht@?{>cz5$5x!-QKs9Bkyvx6B%3$os(nvaO(r zDh|vkNI%w?-W+)T;VH1X4SyThJ{4m%l|hA<9v_9!pihX8c(rQ;$8p|N>(aGbtJFA? z?yx%ajTiXkopHQyyR@-`0E}_kjGSp%aB5a~s(4K5IGBM2@|)U0Mgf^C>c-e`YEw@j zhg?S34}<_kF8-GJymE^WK~;n~F077%_+I75WUB}#?WUVDC)gfTPsqb#4U9sbpGUI* z6?2d_%j*m}wDC4PH-5uNjUX?$e*V?OyU^jv*Pmgk;=Cfx=W+d+39*f#CB6eGTB`>yv6Xd=O)Mc<2eW(YT

MG-h*kPfeNZx;JUsy_6sUD@M=@*
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'B9pDB1^&H(I
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	`pbP*pZ$@+xVQ=XS?D;cnIC@C
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
H$y5A)Y0wMd

diff --git a/doc/specs/bioware/Journal_Format.pdf b/doc/specs/bioware/Journal_Format.pdf
deleted file mode 100644
index 1b5a4302cf870c22a9319085ff50f9ab77cbcd62..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 15960
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

diff --git a/doc/specs/bioware/KeyBIF_Format.pdf b/doc/specs/bioware/KeyBIF_Format.pdf
deleted file mode 100644
index a3f9ffe513af3e807b2e0e830d1ddfbb3ac75cf3..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 35988
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

diff --git a/doc/specs/bioware/LocalizedStrings_Format.pdf b/doc/specs/bioware/LocalizedStrings_Format.pdf
deleted file mode 100644
index b7a1de28f6bc5f35f3ee7447baa22b4d6bf31fc2..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 14515
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 XC@T-e$_3ba!OZ7s*)qFdj_ZE_ - -Copyright of these files is held by BioWare corp. diff --git a/doc/specs/bioware/SSF_Format.pdf b/doc/specs/bioware/SSF_Format.pdf deleted file mode 100644 index a0af1b7292085fd9c8d366d3bc73b4df8c3f7376..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28853 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 diff --git a/doc/specs/bioware/SoundObject_Format.pdf b/doc/specs/bioware/SoundObject_Format.pdf deleted file mode 100644 index 399d3ef759301b4c361b687707521f481af342ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29835 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 KJ1;+P!M_0$OC#6- diff --git a/doc/specs/bioware/Store_Format.pdf b/doc/specs/bioware/Store_Format.pdf deleted file mode 100644 index 310dc4a17514dcf9ec409a44fd84b60d560de3e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26268 zcmeHwby!u+_P>aTbV`FrCF#a>Ns(4U=@JB#5CoJ?1?dI>=>`!{ z34ePZIEecC-uvF~eV*Sxm**KK*P1o6*L?PxHFM6PR}c|nfm~&$#-jf?)zO26PK^cO zqGqGE)-%K6<;7x^F|;yvFrkLPfHEa4Rxwix2SYn*Rxt}*2SX7Xz1{+}H;wUvcWZhKT9H=-*lI_gf^0`jid`&%NNjbJvd}J>F%haLz)$ z`0I{%WYivezYPCq+Kp>O^pPGdff=i6>aHyx*(T8RpY1-2Snys6(;nl$7aAxSSNm;y z@vIlx#mSw7TBBfr+k^7XhMVqPSGLW2sC<)$7CWBZLshDyv>`ue-1l|j7_}AFwBp9m zySw{&rEt3BaVh`K{^Z!o%DZ>c>ndEVDYQ3X?!3u!f=+_SmXi3S4fDj6o)e+bOeyyR z`=b?RTYIB-noCVFwo^Ymd|5Z*LbR}(jb3k%*124cryC(Le9lL-aEy{3vhsZxmNK1c zx+A)_W#q(TS&pZHi#GM(4llZ$E@j9k!f-R{=+TA%)aAm}5hHu89Yf{lQo2)t&BJU( zu3V}?l~y8F$PT->kkyjl!9>jRK9u2u4egiX(p$c<8H_&Hciv?^kUf*y)tzD(-^C$c z0d0T6&L|Tz-t!gDt_;V{iOmi&Ys=6)F{OcrT9=r}^gwu(1~0zYusI}wQ{Fq*vE$oZ zn(^ZEEqlc^mFBlPD=%H@on&9?vKoHJ)FiyF()i2_Il%3Dsnuc?gE^t9;XtvGd05@s zXSH-8oK_rmEu%*GbMbfg%D)tljH#8bPgUj$wl8t&e0T78v!bF}=-K6UovO1m))<9m zaM;hE`Wl6%O^UL`2$#D)>oBfp&ink%oN)X=@dT2sVGjK_{i$62Ue`S8tcbB9Nks04 zIeIGRT)UI}SO@Q^d**}O-7t$Y0yW#}+xcfuF}28C96JR~YFyGOuI?&v^7W-i2#F;= z$1Rx=6CsG}>0K=iwiL={63+Iv!ko5HUp`+q43q84NusPQ`T$WD^I9IX&Q-H4H^MPA zMC&;CvQQQnDBxAqOtk9{H&mA@$SsL|xoFB?r zwhdK@Sd3`;Uhwv2+MF|epa0BvN*)V~MEn#!voR8(mf71jyf#W-ng^F~3-0pEN5uCj zQVuJLzv?m_*%E!DmUyxCW@wynl)g#32h4ceto)$j_+r4n(z1X2w=S}$>B)&17-IhmJu~3>rwJZyZdGFJ=BxtPgOx8KW zvkCXs0433sg&&i|x0lwbVa_B`iE_Gr2IPJDBcCL7J00pGCoM37Z$+?9C>0OjsrChY?CtGi zx_-mge6^N7{Ax%k)yF$*nT}B-zHf`4;It0SpC0Q8aGMQ#ic&VKT8E&5J8ABRp; zyg9X^kr>`n$>nq_;b|;R><1TwiWvt))uQqv~u*y73ON-ZSlw-Jw>PvBINC1p2@dhl#?MonC1cdf zR_TE1`(M-jp#Bi8(Il#l!l|)oF{?tnmD}v84y`VF?9f+J39)kX1}BMLjp}Yizr|ae ztlS!d6@F^^&7C=B#VWBl^ZC&gc3Arc>Lujoyt3UxD2Z&?8JBw5@;rig!G;LM43SB7Tc)fIeSB|5OX-`yg^(JPDEk=k%bY z8-g4D6(sFBMp=r+t$}@g-b3f-PIpTgpzV!Sb`UaYH`XL7bgX1!xZLozk9p!zk8~HK zGi58oz2c5MZ}GUdE~lT?`xM;p?~Adc4b)UwWSon{6Pw$M$p`lOFL^$riPbjiJ3rGE zmdd}g=h09IN%-6qjzY&E%8e$+P<2m>aOFapmM7xqV*+T0;_x=@r`TXP zGix6eM%amxA3e5 z&rPN8w}YfON3_3xaTPVazqL#uYp-o{_ERg=Zpf^8qnRa>-Y;U zX>Z?lGBowk`c9MKQq7qp@o%p8m++#jEmGvAvRpDUx@jpS8acE)F`iMuaP#bTzh$xv zKyPFXq3DQCj=yJmb*UsAHf%4P8#qVO?RS0ApT?07zsE`jd5lPEih;b({VMC$<>1Ky zX566^wTc}pi}A{fRl1t0pL0E7{d|4qE~on`dn-mCb#n2wC5P>xQd0F~G<5E*~m{-YX+TAG#JKn)kJ6Y;p;Nl|-#xgjjqu zGndUY3Xe#03uSUwqrlEJx!&K)u<$r*QRTb7xVxOa)2M>XTcY!%7Xwn!A4q6nKqy7F z-c%UTn+m!6kn}a(dYQ2sV3k;wtxyrq6YcOdw)F0!-dHvotG8)pP6K&QVQM3C=6=3N zRP{IBCB-8v$tolx>3tH@9X|yIB?%9vbnycH6>ugPc8M zVnCiMrLj}GH+QY--9k8x^)@Rdv^AXO_9|--j4W^+dtX36Q8$)VV1zlr9Ea1PLp_KzQ=b-_sWN2^gXs2&zPYqhPV%9(n zJNsdkf}OR#vLTR%X91&@RT!uSXzi)tCb1G|=pJ+n(s)#L z^#V?zMYQp0KbgM7F)*8Ddx_O6m2p^)De_uW$dtD?#xnjrh8s%HO=q(bG4oM~DraA)uytCUqxd6Ptd>2Mq;9|I8vD#Eve<%V+nsNH&$6?# z=c^WyCPJSsmKu30ihNxl;3ke#kufaZg%;L6yXX6zclllWENOSB#z1j%)z#)PNJ|Agar6z$W&CMo^L}Q9fo&)58Et?N<@?2ELPQiufc!6bR>0=3u`(9y% z3W`aAPDC0pPg@zHpuXZs?d+40=oWm2kMR>v*QyIhG#IBz@Ljsrrtg}*#@jQY;DfhG zWsTHqcXtZve0y`Q===WW`_~$FUoxEXJymLYUh=50Ub`gmh|=X?{T)jho)S;+c@2>v zhY}u#G@%B9&79y;ZzIifj@9~=70(x)m@g~^jTM-4g;HizkL>hSP%Pf%)PF-ch)g}~ z5*{lfZ6LI&uR%BOr3LewigU!V&>E2K7%mupM6TvoAM|2wZm^wi^nG6m7e{jQ^hj^L z52}G^hTM2;Jxd_D_-8@Q2>uWGA{R>h=cmRcKMU#y@z=Usq=|U;RN>2Y3sfZgDJ%_0 zmd|;4EE39!r-Zg1Xxddsgx|+t=dWa5YmWc?d=B$f@MYI#&ViOW23ymI(?r`*Hybtd zedH)kADo&P${OOLCBI&}nl$KiJO8fIa?X&&V1Y+cu%qQ3Ys&lR1*%gnE)qjzQhE{_ zrl070k5w-CHb9Lrp0MKe&gq*X^<%pXhpdPVu}xm39DB;NxK+RG#?J=V zc!FZ%LNy;5sG+LoD+_--EhjHs-=_JXCHS=ThbWc?&F^Z{EJLSXV=aq(h=SCN*u1_* zqg#QpZ*L~Ye{R4!Bj~l*wQh5J?spt+4~w7d4|r|Rn<>%sOVhwYi)U^r857==#5$MTZ)}R*F&E8` zw5@JY-YD<1x!kcpvVBHfCBD?Mk?LF6w@X*Q%oqwHv$trJpzth>Nj(wO3@ScIY|wxP zaFd6si^tIU>?te}7AeViF(od-uDw2QYLGO~YyF_}pm^ktM#KW?Vx8~zXxGaxk#PdM zE^@C!SA=_nh&!k*iuarwTT6CaOS`^%*9g_{!x|yXRY&Gc>~-dI(!tzQRSTJ;PVN&# z5$#XBaWxx0aHpQ>MZqbPL3<3C1wnvP&vG ze2BFoUoXSyI-HxDH`p-0c2<|3;cMo=N<%A>PKsn{-~g5z>CkCjjAfCeNJvdF zxZHyCF;)i#oN%pcq#$4O9dgI#ZCE%zSKl+geZ$3jL5zX^-d7F-ziKbsA!edzU-y>n zEQ&>(lr`+W^(ADAjR(eS-DTd!k32S#PgU{ac*JX%DhSEUhYzk)a6O)USmd`#Ykx(6 zQi4qHO6pa$3ZI87Dh*Gzuk}RqF9eO+nxLNFI}^C{iK&gUO{e$E>z);-mqWsD0&$p2 z$Y1padDb*FJF5@jc|{SNlA6qW5J+N-|+7;!t85sSvsZX>Yqh#WSHKk>f$)-zXz3_wob5W0Q^Bm+#Li-EWIB zL!VehpM8+J_}HEAwTYYaI(s0yV~Vp&gI#V*=GK$wIagkG8uZg{3>KpNw>t`53_gYy zNS=Ssk!(a^Q&0R+m(I60)U8lu@pP4hWG7*I_5GL*9>rakD=v;?Yf<8p6PZug&h#IIb|Ih+S62M|fdi@(p^&5*p_@=acWZkF5LR!o-Xy0&&EBS}0 zxJ71scoZJ=ZZ9;3$W}pW(ocS(o&~m6<(Oiff*D=W(sN#wu=rqNNSQQzbJVOqy}b-j&bGL9S})E}1Ap$6L;9(# zOLz;<$3EJan@0)b%EPWI6MxN0EKF3gOQUL+6;@L~>Dps46-rx0O1O7fx>xveqb^1k?L=b+4=0%DMYtz zU)11|O!R7vN@9pC=QsW;W)^Ut<`uPw)9fRt-SAB1sJ7^`wnqM>vxwcJ_r>I;5M?47 zE@W00K98Z?rCql{#}%_qlvD3bWOmKi(9)L&iiYBhG_r4aUPvmEpl-$3Nx-rSpPzY- zH1KMgtnp5+a!+M#nFPj_rnOVM9iQi=lzBxolP>grrMG-wb#M5NVQntqUB|5C%%_=D zPQIO|xOz$L@95IJ_HmfSOH6O+p1DEu9*1u4RA+DVTUX(UNB(tQo>jBzYmJJlPEiEP z_7e@;ZaLTJFypu!y1&w#nWzyYN0~Vg2n~rZ;Jq=IzfUf5-I&~nqIREh|G`o_&M4u- z^b2}D;tLmE5bz$OFsNo@k_Jfa1r&52~lNmvJUOU;^|ASA||%nuWL*15teOmS~q-rHl1iMP!n!`w~vR8rHWLqCp*5r z=`lBjLmMIU@}$s1YxQqW5+c67>3^S9nc}Ffs5`C*? zoKu@VJ|lvd{JMUFez^q==h?Q-VF<_=zk1z&znYqHoaG@^s|_zvq7~D9UEU`3Yct3J zpMtEe5ciE@ydr1*oMqb?_rQ-zHDVSuhh|Oi{7hKx6Y|`H<=N=@T_fBn$8CmZPx03- zzMtlSyvGc%3CL4SYni((yXCDF%w!P?G|~5>>Kp$a1Nv1kfK*E z#hkc4iNMCggbNQ+_fj59y~wz}Cn9Lhh3>Xz;}mmYn}3gOd{$s=y&da%z9am*N1^Fv;!u^@Ridj;f9_WXm zX&Nap)CE7<^v|Z4>8w>sJ=u^Leg|c=S=G?0^P}3qN%Z5D-jRIjxO^s6?mW#aZWH-q z+6q#TcghMh`gXk0QZYih{)s}x6>QOifmH*}dY`&qhh%iMZC=q9Z)B(7Vr29v_p~s& zh&Au4U17DOmOaX#@K%OTDs{grxJvd>tdXP<4dXSZQ1$nwcib8LT{Cq7+TJe zk7S%XJ7{c^8=Wm>Ix>GY|4|~{N3x6eGzZYP7_@ioU>K1t0-jt+-J>%Ydl{l)eI&RQ zw8|{TTn{DVIlO0Cl=O^QdnwiFQoalebzF3NyiW4++yhp!i_?~)7YhAz>uIb zpx_`5%6s4bVa25)sqw|Uo(N3WCR#yN!z*LgT_ z)gEqUSr~~W>&M4&Q3F}k=vd}DjM1Vk>8cNRMsFE8=CE`S+b&i)v1{PZ%&ZMx8}v9p z8kZU9`SdyNQu6HvYM4iNZ&w@DjUkr2mfT?%=J!|BESae3#o73!r_|ivac>vjTqTI} zm@NcMo`d?c-R`&YD{U?_+=_4W#ZKe7?>;lMj$TKWeZia0n>bt4$~!@%*a!KxF8O(K zMs1feZOZ5m(AalSoh71bw<(iAL{eT+m0$-4h}zV|;Vq?O-_tQ>tXs!@41P zCjb1G7t{SOLV1^;H+jGME*0`ELiM_1TsG&UDUkvHN)>aO8FMaL*_!Wxi#_(g`zhcX zcF;?}!NbXO>^k588~_N{!9Q|Tz&#d6z6NT*gMe@`fN6wd0Zb!23t$>X%?|fXz)$H| z|Hj3^e(0At;ep^eA?J|?f&<~w_?O3kuYqI05pK8#V(%3Tng4VAKI`^UB=pa#FDm&7 zQ9s|;d-swkWJXG==<5#5;~_&xnC(0jCJDYc2L(UJ6W3WMdsRI;8!@|kTo<0RDODd_ zuc#=m51PP~zBztdyPhDEBB|^g|LnI7(tW!ThuhDp#HyY48QuN3yme;irYJ0YIQO4d zXV02vRKMa%)*^^P%dJ-KN4Y#}zPX@FA-`sAm6V)Zyqo17z*l6sld|=WJ^J}Fwg2!% zR+Fa8@w?G=o{3B1Uk;RC@}&qg6+8!yAocqwmZ)@gn^%HLjdX9EH+!rrlE@{CUSRRD z)%ub91vU<~o%zj;9Dd)SSnsj#8rIE74+70Z>T^DD?Gn4>bggZzyT1`1)2a5PS_-Va zW?go3A{{5Kv{orWJ2yMm^x1By*lvNia9@9Xp~4HsGcaclA~Ba5|KN`=?Owgm9W~*A z(vtQNxg<$i--$=nIv1YqrSfWRQFjEk^U{~8p(g|7B2@pgM=!%ejrer)x1+Vzt0pBp zk8L6%choGO3V}=y!D( z_j>Sz&|P#M)#-Crmk$=pNpV@<^xh@!oYkfNiO0sV zsn2Q>(#^*&vq`sfy!1zFi!yNCTTRVSxi?thk5P!ld&Mr(9<5}uv|NGgV(IGr^A@Uw zkrvo1vok8>23rrx&)o{T{BCY=7$rRO4tDOu7&0w&sGeo5ek)t=*q41J6XZaKDN^WT z=^Ct3f1^ydTjvV)X(G#>%-P!rEQUCdJzjmfK|oV^N>6icS+{WY{Gxp2dTwX-i#G+) z(7X#6eG^r27EjRpDhqotyK8;TFmRKerTnm#!tR@uw$0sxy(fc#`b$Mw-oX3ZLz#@Xv`CpxUY1IKJVH> zg6jRGN0~L6u%&xUY8^o;D-BvN#eK4%`-;UpG@gtx-C2oQ{S0YTw&gW~JWtRcmRlEB z5U7U?-BFzvf4J(za9=7VM?X%kct~m?%C3)e3M2mM_Yl^>+iJcmmWfz|RZ$@tLwxFz zlXvAVy?YvA)cZh}8LN{iGlobbsqUjUW2)P`sNI5?+|(tMUVL?6gQb_7l6B1vQ#|a_ zhq@i+&2v{e0>wHk`S)MR_*0;w@?z^dj`q(+s0IqW&poF7K7nxwR0l zCo_qP%^dF);iWvBY#-Ah!W%VfMS(kqxeXfxjH^5vxD^ue^ zI?b9PR+UuShc^c!cqYzBH)tZwXVNjr}s zv5hID>kkO1Snhs&%~~7;vst8MEazLUaz8`x)?>Q;x(e33JF>ZyRrh(4#?Ukt;bi;d z?@=Rr<0?BgYbIjst3s>;^>RKE%SHW=Tvj#@-0Vw1Jl;pc6f zP*Tz&%evv)<%5E5K)D%@RyLu^tR77K`T_E{Z$y-M4N|Ak62Ct)!0{;JZ8b=lMXS!- znyo_iMC;A!k~yWyXy49SN8WU^Gr3x2$I-m#a>t{gV(jOsdK?yQyO?NrbxTB-T%<)K zjELHHGwv{GzP7pe>aKVIi;l15yvtRUaO~Qx+j&0Mm#T?I+TZ1bEiNz(k_lZ4Y+`m{ zh+FjCs1z5wLD4wstGP}VkR-Mit4Gdlz_Up|e>P0{?cGu4PRHAH?6I3EsUCTOmg7%U z=-KlW42bVoh!eXHZhec*8m_)fwdL5K+7l&g$i%0&+Y3p}rA3aBpxoR_x}xDNO`P08@z?2)3#}d7 za(6vldn?g9aL`S8Xa(DKlv&rekvNfalXA2A@{1K;*E~VS3eQ&FjY`Gx;E|yqXJrhk zslt1llo#jPQ+mTO=^3%8X+$ZXlgU$ESKgXOZcF;8F($xUin793-*dBnFvg0C#=qpj zcIvg$o~L1Q;rrVPSX*-D5_@EH1GCYYBjr=g_Y|cqY<$`ZNOOB~3cew&?5+x8VB+@a z@T}~$bk2F6CJ)P$Kc#f*IrLOQ6vKM>SdiQsHP)xO48;?Y0-J=r?|HXQwap}M)9WQ5 zlkHZJEhX}m6%r?o$Xkk9Wph#cZ%;JkXXkq6b=hNyHwF~r3F+M;sN;Qh%ceZazqKXG z-&D1aQ_8M@E#JI?>&E-@SsB$6cpau{H{~~#5?vWH=Trv#yIYmG>6{WJ_3O{lGfAh! z6kV58UnaxMXS=Igw@w$jk`$eTAIcNM{(fsV_w*8zqTAW9E!vE6)OU+zY-<#`mtQ44 zwG6;>bbrAa>RGI+{*lNkmyELOoP)6oYMSTRPWwjX6`94V`V}6P^eU95q^o+1ZXX1y zQVQgCHoCRDwFG>{G3@IN3a;02qi#EB_~Tj6rWEkJ-Kgyd9LAY?MJh3$H@LvBC^MBj zg?p#*J;z#S!P)DUZ#H{AyyPt8zSpLmnaa)js6NJr?1NKB7Czx#-$p*Q*|~Bq2RlzU zg0%I%*kF_Top+J#;?`t+qoe-ow==#pjO{hPkj%V~%BE)bWoMH(TEDA~5H>xMhY0jw#z#8|hTMn11MX0$jcf2#~&#mVu%=|2ClpiuwPH`dAUXu+%}mdpwp_295l{12(H8M z%Uk?kvPGR8aAm|&vSWOrnl2Q$AEoim(Jz_Z{Jbc4^S-@4iFFc7Ws6?-mA;EvI?NOt z5P3Jc(LQfM3}jzj-oAReQm^%ywr1b>HLCYdT}8y4RZDa|FeBZmlx80VGMJ^ihPgcz zLN~w;HXLPEE=iKiHEVSHM6SWUtFEd|+Fzt{@Z7vYDBVAYJmRyutARv_w74L#l7}28 zeT>|r23=2eR&5RoMfM^>DYQzt3bO${lY5Mq16bE56UOY>U#-xKVRCy;T3r*qHol!J zpvS0%O`xlBQ3f@he!7h9VUkZ#_#?^$!dWHVGKSR{)X*3>8*Ul{YeCwofBT zia%a82%=A3L9SxwuPzvvCHJ3K!4EOLh1Wpj&$^{Nc8l!Uyruuao3DYk#ReJ*3fvpT z*rmhncQ&nfNjkmFpFg53v!(vRbdA*rCAxnzF7eELo@M$t=`f1Na`*Zq0_Y84-pQ9L zC8dZo(~+VcH_oPyF{`OF+7LF~Ia5dhEs^Mz{;n-RH{isslYv?`dHGfDxgP6Sof|Fb z&-~iLURK{LM{NN7MGjdEkg0XNHeS$(&t2)+HCCz|%0 zLVNGN+bQ)kp4C(gEKuL7+c;n7-3bLU*S#9$=RSqpKJDGxXsxoB`ua0vZm?Df)w#YB z8t<(YbIFfxd@qV$-4Fec|7~FqtM3BK>T{L-;*Z@vte2uz7e~|s91h%ShzU@(7u~Hb ziP7F@e(fnFf14}{G&}fgJ!P4UTmK2K}nuIboDrY2-Zd;^~pqehgt zDbcG}md$Kf1iUHas!r!??Pt?XiaO~eNYSbJMW zYxn(eVfr(MNW&P76zw|bq6(HANa8|W6k%>FxwrVj$S&%{m=+Egy%lt93U`f)j@QbwfFU&xc$ zh-#-w*ctZ%wZvO*TxDA9)hfMJR0dEld9U z@KiOE%bmFU*QdYYc;tQ<4tlG>uw*s-8CsDK3Zdn?XfV-_!a?nr4`&0@GRwaEgJfr*W3!Re(vPzh>*a zTBlKklA1#Od6_GyVv57bXD=nPC<|jz3|<^R`z3U2;_Eg1TU~$+;&uNjy>C59v(3gs z5nGaJ?yz=Zc6`x9r8H4P>|1A_mBcJdUAOGmT|dasKiEdgWiLZy!Fr875vyJ@;QtGNc&G$Gw`;Nt4c99b=>IU zSv1a0qhs!yqPM>E$-_RKdFk$_$%8u){XM48ZXtSa0Y2KbC*R)VvM4x@+#;*_+?Hp& zb(+B7iqb}e)`+Q(i@?0=JjrF3i<@rm30NyuzDp-==YEKx6+m(!v;GTr1bp{?=#GG~ zAG;&KO9=mwJAwmpc$4ApoC=^1;pDvuI1Qq=6Za+%t_;9q@h@*nAY2+Ju48bV^r;|x z6^M%#|I%0SQhh0Gq!i!lbT#sKPL}>#9~|CQ(`lk=o-vjuNax9BP-rQA{jBa0h2-P* zq-=ru`yxu0-k^6HA&F1h1k{IbwquSL5c7yZ!X$hot4%Idx6``Sa(=Nl9t4eY~|)U8Ouy`@G>r#7-?iH={D3ALF&0-=szN*zi6% zTO7);;#kNN6C}3Gc}sOhcOW%aEcx46Y!^*uPep5KlG5;zs_5MaUIOx01ryMA3u7-G z)~Xc1Z}3(jM1OM8mgF+e{hPknCW4G%Bz(!8WO}|06I);JDMXUp%lOnAU8v}CBiUPs z^VS5zeY7I)M*r(ncuzv!-DQ#@IMY1N>V>tWF*0jP_wt6i*&A(gSNzteg?=(xXY}Je zH!g(8x<=G=(Iw~EQBUa{*M5WTQTWG;+UB{3(mf+bVa8>k^m!PW_>^!nccip0=Xt`d zt5XhY-MAi5v{TZQ8?@RUirivlMn#bo!G>vz3X=Z0^bRH*eGYn}zV>lJh#`jL{t1RAIRWX^#4_%@;O%F*T!n^F4|88nQ;qy#$(eBOF89q7mzNZ{I zP@j^9EGb!YD>(}6>S7s=c)Y6*1+T7l-=pmq!nJgL+gqpFBlJKyGrv-3Ul@h+x!-r` zj8dU?oiMJz=1;w9jyUOQ>f0M70hf#JM}!%CB5=ZeTaP`TGv8Utf|O1PFYZg|Qcu?(poio4y$f=cc&E@#>5Z(k5`8<@ zc?%=|g`7>y<>I<;0?wAI{hp9ZFJh{2d!=t)6!J5=^o1h&`@U6l(dFRN(2EA=cq#iX ztbWLQNOrz_pGNY_pkWIaG`!g`Sm(>iBB>`!Stn|mGBV-QMfWa}kd_asEaxT&k>w4_ zz6cXjOFSC3;v&H1-o+-XLBVld3Oy@DlyO&GwdY2w5Om$#jEq4y=&Yc(zc?@6cYhPy z2(#opr8m!Rn{@ePp5D}eesS(moziY(rQbGeyFF1eZn3trR*Z_lpqjluM}l$*GF6%? zpu@<-PLkIRSc`Y$Q&EhC%R@e>^@OFsVthm_U&tq^@TFN z+{aX$Ta%>cutjliiIl5R3dN{sG40+&3q;XFDp( zs`vJ+_UBd}wA@Bnl$$BNf?a2eq#6E}HJojk{9bjYJM(w6YO1%^Z)x#{S?Ojob!cCA zN9a7CFPV>z(2uD&wK>qgKe|0*>z1Rmj+S;qBnw?MVO^tRj8(!ol;oX|Cq)x)ERxL) z;dcJVon&l+lFU`1XneXV4n{nW*|?}W=aLm3_;_i^MC^}zkoV};kQIG8z4=_1Z^XF; z8kS%xk%BKKvNb~zERf2a9?jEtAY90ZLpEVD4E;8#>e^E$7G_DON36rATl@IFjFCo! zzO-QGKyh&S#5Jm%Hhxsifekt$v|$uytw|(xgYwX!!GdJ@OkcH621KQ~PJ^8-Xviq_ zHOa+=f|ml^LoG4f>P((qV+YQT`)wuE%XsFmg(+XbbLgT}J3|v|pZ)MPW2L2LqD(fK zI0svQegJ=dH4Yj^GcM-VMK9Gr$Xz+wl!XT2l-TuWI#COLi|-;f`&D0+ugEM$*k5t< zHNR5Qtt^&q@WFk-YE!*@#o9SH+li^>t36$kU@tZDMM?rc+I1Nsm30D)+hnx=9A# zU8z>-(VO@#u0dg)mPMx5phNevD_YgCsMyYkOT}h?;!Dr3zfGurjn1=9f~!g^C}2-n zaK?)jfP&6L9AGl9lY47E$!v%+F`sm6o12x#8)Hn@lZzka9BJ0q*b&Co4}S1+ zRcqSPs*7p=3@$}{e5{Xc?duGK+Sk*neXf$NLawdPb2g*!13oEr-k!vpo8o;c+yjja z*gAb~9iw^2+9(6bz=h#78#MB07L0Uh7QUmenQ#Ao zGQ@$n-pLMu!Vsny2Y5>qVI2L}PKFTn)Spj@fHR-JI~jr-S0|0Qlb;Ve6cfBhi^Zz! zsOJE`c&lRPXb4tdvC8RM0vB<`*sxfIbnOk{*KJuZETtEY`0t`Gr4~R5a4l)9zfDf6A2R3 zFpY&!1%$MS7?c(v1B?qCKG)%hfF}uO1eAgGSWvJb6yOfT@Bs9}2{eXs0+W8EXYg|1 z0yjti1IiEqlmZL!q<)RT!NS!8c!J=75drM|WcVWkkRhmazcNPTLA5y?0w4xr_D;rN z?su8GPM%4vNuH(0Bah+0}(@e zeLGVd2Wva(!w--CI9dktKjYlb1cwX`vEx^?u+TNOr{;hjHW3oCb^*|V1$=BQ?7%I3 z2!s>dN&?aX0?L}&+XM2!K?DF70ECns3@z2DVH}4k33y7;y}&K1Hodwd6a=dxv*FT?e)Qr62L3K;ei>jTkvDDy6~xhKzV?EbzKhos!wlFvx$3MYSKwUXGIgg(;0#89DL8vQS4`9Gz zI$9TC4A%d>0-aEnV@3cIPDB9evABV^9Rf?i7}Rk@9 z2`I%eL!gcW3cOcrg)=!)90b^cWe6|@V>koEbN@94 zNBe6Tm`6-FBK~_o1!o)3lV1Y@o#7II|Nbg~LIa-CjpiP0@VF?A(s0j#6s9lKrH+NSiiq#0O9^NHBtimf!7^~nO8)2++0xW(QtAHco zgs}?aIf(Xokx z=m8uLVqBcufNcP9{ow%s-~zrGJBr~m0}dR>9}^v=!3hG(;SAsj1kus{8c_-M44*xK z5y+f_2Qc_S4*(Ez0x^6HU;{95+#`^O%Z{J~D-H{QZjLh`2{<2c9tirAJbrVj!g+wx z3ATdI62Jl!3rzpnr}~Qv0NlmHB?B}9&gfsd0H8lq=g`-B$N;pj5dmcQ!_oww?ul^x zAdk(;BYPD-7H~XA;Rgp`VBnOT3R%!U0$m}%p87A)_1|=_0(R{o(1QDaAo)j|^}p_5Wrv-# zS^v3*6)>THV5_jTqn)Xt9dJ9lnXrkKC({PfHR~c|0$UKGk$Uao9yE~KLp&qA01GE z6~}vipx+aFez59z&kyhQ*fs@p=LCKNul~O}rTaVE6af1l_zAb(|4rybyh1rZa}<0V z0s+2>1zz?Lo%sWg z8U-031`cNgHUPy12|>j>B7!pp@*IG(kR3P?2V=M=4=~7ncuv8_03pce*!cXZ0Gxs2 zTF{V#PZP)k?l}eMLFvF2@BmbRTAy|46L=%ySC3 zR>4U*mg`TRQ-mV?8voH61-YIKe{YQf$_KYjfhj_$8WGQd5jz)YPi z1Jfsa2h)FK04F^1oc_uLt{q^9KnMQ}L4n&bKkxM61^=!!iol9P@C1Dxk10Fs*kcNM1`fd!O#Kl%|L^;HKoAV;tPf(g7KSPrTw5WrUgsPAA51!&+BfZXAP z05RALm34#Ee=)^@S`0O1`1la!1=lX!Gpco*7lNY7H zXNV{R>wg?TfsKy{z>89x?0_!?kOXWDFaL{+Qg8;xN^tb>5qZR`9g#=GaE2h$qX0)y zgjRsh=VSoIJ()+O!Lfr3;SzxV{wjb>5zp{sj8FBN zX&4NMfkh4j%K(Mo1na>(kcO9mZNNI946Ne>7849W5jgEh8o)3=E)zLy54K|$1=2_D zxd2*#gpD1j2V*GM4wM7r3GxE_0@7g21@ME@1ML9M*bm-N@H=n8@t9g$i2y(FK+Pa> z4WQ+KutOkhz&$s1E=FLoOdWuma{u3l3y3P{=wR|==D7rckpMFbj*g4#@Jh3RqdxF! z6%2yKVZRmm5tg6papI&8dy8qQ_HC^o_M||4=LbUf%x{|Lq!qR z1+ENQ8=oL>u`@Kn0sxT{3z*WQKWZ*cP7Y3LBkIF4b|^PDprGI%wbgMM41kbd$~ZXy ztMunGHsCHRp!?w8Nm>B>e=dV?a0BrCOBs~sH-5k+N${(Qz`tXD5MVF(8!a%Gz!Lho z9gK_TH(D4Eu&@249bjSo){f`*J^-5z1i7F305aeP{O2-u81QcWxr`l9@n8F8hrqaj z=l2sW;C6@pHh+Lt|K0~T?AJcnU~Iq53mZER*RTBo?bv=DFFOav@3KIluwVOyK-hnK zMr<$$a8U5`IDmG*E9KWR4&X)jOBrydA}vsJs}~{{yDw%2NOU diff --git a/doc/specs/bioware/TalkTable_Format.pdf b/doc/specs/bioware/TalkTable_Format.pdf deleted file mode 100644 index e7e6d3e7ea153070c0f4b964187bac21cb43b04d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26042 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 Z_Vlv!@WO2@lrU06lzPt|1r0^&{|_7s-;DqO diff --git a/doc/specs/bioware/Trigger_Format.pdf b/doc/specs/bioware/Trigger_Format.pdf deleted file mode 100644 index 04e3527859c5393cb37042674b57ad1bea41d5a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41982 zcmd43W0Wmhw=I~qZQHhO+uUi}wry)CcG|XW=T6&p?Q`yTZu?%n+v?s{^?uZ!h|y-u z6>~DMUd-Ci*;K^T*v`b10G5vr*2&q?)X)YNN+P05T{CV&4CxE>9v{m? zlf0JWA}B4u=VmpPQKGgZq6q?RR61@k5kt8+wODMfXXorJC``g47Y)orPG9wLNquGE zj1U@_EPOOD8nOQE0|Du?W;-El#8ko@Bbc(v4j=7i=r@VxFG&oAfIPFiE6N(*v?ijw ziZ_f82{k{yK^6p{ZU2=U^ciNS%-<0qob~xE;R;l9HR6Gp3r8p2HgWiP_%p{&H;L+I z@rYHGz}qwR1YN{^I1xo063RT!t;NBP#wB%RlhLfuHgX(H$NS~gmXh7c9i1vKBr$~q z5#UOQNi?_+%_C^pU^x~vdup=7MXTBRORu(Nmi1Ly6q|tJs-4$B4D%g&;tJU)^*}Kz9C#LSW7TLwvvyrcJo}vNb`edaj{L3 z$?Hd7zkqY3{gHwsC-zIb;FzrTk|l6zz-8pcfndQ!a|IOaO8Hn!lzFIm*wzHgz570S zXD4xLouAdHx@rZNev+vkg*5fuNJq`YAwGY%IHE^omyw619)8g%Ph^2pxpn3OAc~m0 zMG9aWY(9j4vzNP_@-M@l!IqZ0c=WcaIb9GDZ3be1Gq_ZD5n;^dx@fL4xPem7SLI*Y z!ingjdXY(7%e`p!EcP|lTADz+K-c%%fX;#5ph+f0E+pCjRfJxzmg%q8OBM1=CP{PP z^SKLQ(3L%Jm8t?nzcWH#z>|P91#~Oib?y{5!yEICJ6Xs+V$LP*IY?e0pM7W7t=!Dr zYW(*Es<_U^B*O}^KzGz{sCN2Y;hI^RqZno#P@4$jfg5kP zB-o*bioG9FK|^-{VWB9F)wxXklNMO3gu@9n^L9|{e$xXPLMy;oLgWR9=iX$XKebiw zR1EqwpQL43S+n>0l`=Q-Xt5!^EOjWpbd=s>K}&gum;L!ldJNHCrA_0{0NN#Rl2Ep7-_ta%OALCsDfuh;3dT z15X#BKPjl3yMEVPj9v35Bntd4MI`;y=N*JeDKspcV;03V@9}wY`7+YC2ZJLb>&f1Z=+)h_a%Zu?QcblgdV}b*$g+--r75{gea&U_^Ax$LttIPR$m=Cf z0rwv1jHD5SRK^|qgiCN7{H~^*tD?P20JEhlk1)b7YGjcYZK&C&YNRXNifQsNfi1dT z@CS3qIvX?(T%yB44DBFsk$BOh3!P!A=CR_PTYkh7i!0Sm0XEA$_}cOk;7V*rr$Caw z4cY2Wdd5+^z6jzrXT;;wsAVVGeaC(fCzJ2ib8PbZDIv%wG^zftvyufhTkRL#@zOEF zX`5#km-Wjz92Ij%l9nxxv(5-f2EpzOgO335I{3Zf%sKPa= zQxB}d5oU$x`#!*Tyo^a%uiR=DC>+&-dFs_D*u&BXh<)78j%pdCFMk^vBdYq(U7Z2rj^ zY~qlb7J56m)?Wb=GYjiqhyRLM{tb$$c-Wf~&?^|4nZo|rI-1%#6R`dVDpN9bvU71X zHgzKS3$lsX{Wo4e@su76Qh9b^inC=oK98 zjFnBD3H}0uN`FB-df`9k{WGW&!QTM!@3w!Y&iSX){|zxR{XNG21Tl81Z`f{fAbkdY z0Pm1#4n~SdCbJ0OA-Q!LPZHp*!h!%Fh;A9RuqKp*lEm$QzR}i4wl|Kcfosw*Ayep9 zL614fq4HPjn|6;7qnYXrV`|svy~=!AJYOtzQ0IYmAD7*{UoC-pJ7|n8Yae+D7W3z= zp2wNqliHDXSg!{?hyMEZB?Y37Bmfgx@H>CRQD^Sj14`2Y2|z!uk`aw70#M(dfA8l1 zc)QwKSV(H2%pxD%waEg%%rn*V_^F@B*q_)!jFahsD|m9)`qZP}cldO!Hv z_z2$$*K=_f@NzDI zgc7|>OOBons5k+f66NGy<8*fTYH4q1OKfCmJXLtrnlESKpBs@~2jc0Z3#<6wT7L7k zIsivn73Y|9 z5arDt9V8VQC09B-?|H&61nR0)jTx3S!kq^*Nmf;#;f(7XYB8MFr(zJxF_K9XVw$Vz z+uEu_WSf*n1ZTV%4yxgdfK6w7sT6D0fq4YcX`zwPS#Ufse{x>IW#9P@b1dPX@!D71 zu7Vfiu`x$`%2b;O(E+tbJgBIlvSglRTw?#U8}V1S-Wc!nvo;OOP?heoYwxb|4~+@x z(}6jJmQj4dEy6{}B9f`rze?8!1_JF3T%{}f$w zh)-XY6sW_`+^b9MiC((CquuDcDhGWJD4o)*Aegs5fu~mqh^AAmeNUu{pDTcZQ~w2J z;#3}3X|xH~1pnw&6*zU)gk4TlId{;AMIMP@Ucx1g=u7?ljQX+jO}4bdQS=Huj!;aV zLI^P^Q^Pf>Odz4K&|QWdRx25*$qrkbJwcF296EW=b3GlG!pR%v z{IXYc&lh^67868Ve!hH(78|-JDvzBsg&g&xSbfFC+L1@QVD>ps9ZRLoEY|Y{DN$xu z?C!I>!gvilynGB@v^>^MAavQ8y2NVku=n0HARTIlT<;GQCAK}WY{UC zD)D`zUKk>EJvL?87KfA}PCssLNpR1^@eBbdKQDHlxB(YKyN>VM_9ozqL=sVF12Vzy zq+1+GZW-wQXz0AGTwd4un@RUZ2C5U(5rw1j07n}0SJ?RCs(UE0?0U86V{4u zOSXz5X!i`}|&)aMqD z4L)kBDJnKiV(wo#{N|sjp!w@*Q(}(M#V%=LjI^GzvM@D%_?jYwRREhZxWk^ zwJ5PUwA0ZpLI#GA{fZT2srylB-}w0qjM;3&k_b>J@2MlZwo6z4GB_@&R6-d!eoIVgalDvsCLAco*}^nN964xVw2?8CqX_fOW9xy8o)%5JNC*mgc$(Li{{4cD{BlnuykQs zI*115j!asM{`~AZe+=9nlcLczbdE)J*l^?H>kn96dYV#n z^?E!@K=y!ZQvEn-ZDVyv^GCEO!IH!m+pLNr*7AUL+IC~TVXX>`an^pEzTnY2I4aLL zo%86zLNH!1k20VC&M!+NgCstzF^3YmpHY29BAtZuiK#9w(Oew4tl` zK6kX}D?a4OZAbw|?(WscCA0aULLScMD6WXHWs0Qgo~&b9Wv zxBS~M`T^EzO2B!PdhJ;$PGFEc2i>`hD)izWq_~Gi5~lLT3F&F3nRB#Rowu0czG5wl z57n~_{s<@y2ilbDia>U1P{N5mH?+bRJ|#QKt!s3}!DRE9vDy))> zbWNw&S+%NVKp6*Y@j5|{mv+^3C=*9b>by3#_&{Lk{-`eNt)8l7=jc8?DrWEC0yKs* z`}S7NwZ$=vXV{60)%R6+W!^~#P1blzDsaI$0sq#JB3w9=M@4D~eH|m|yBA=u?i^Q6 zoYcrg`S6iF6E$?(rC>llS3I+EjDbTG^0A8bE}l09i4E}J9VK$4E4c^$;coo6S~(FO`sLq$9yA3?Rq*sa5I+NwmmERt zZ@|Wg)ro9-;UZ)^HGNaqoqy@`t0Q$%o z@Z5H$c1F#U^U>7pE(V5=o|};nk6F-!@G4efn7TXjT|s6+Eu35dEUX-fhBvI@g1Hcu z4r(G;8@Xams^LqK50Lqb|IA18{Wm(rpKFaiS!tgxhAbB>qlHNX(Dlx2_I_<`x^v0h zEC;eX$?2(CE<`0MD}R>tfftBG*Zg+wICM@aEwWTco!^Q31>D$7q?o^Yl4dh*$4=tx z#B^6U3Zvp<#cbb^{uG>4eDL^ahCshj{vdHT{XQK#PCP0HL(eA}F;8ZTeAEseuUhYUWM?NRzh(|lC(MTa3hh~nW zRZLh2iWG&0OPwtoJpdhrR%Rp+eb&iz219#NVwV4?)`3JIpOE5*r|Dsy#zYUS$+pO; zVL`JZ7rx)*U{Ej|AgaYxt6MZesos<6jD~f`$f6=3Z)cFZ$)ZQasUV%0~%fb;2$syD27F3Kv3sDSGUI*X#&Y0 z<^niZ@hnxz+)ihC5)SRAFg~x&rXAZ{H(&bK?nX&S!&T8&n-A~B1r=1)(^6DK1s*QR zH(htgco#G*{;#MxOK&4%S_dc9yTwJf5dPQW(~Kw0SN{4ggPkV&Ix7XD>H4PE@)uM{RyKZ0>AXBk zL(xK5M*gMw$iczLV}uv1k!$9gcRICyZfC=X%=~S)dWpF@uHB?Tv+$#PuSe137d^SM z?j*1GcUPNe0}t8+WO@F&Y-36R_0RcRnnF+f7(wxk3d|&1@V>0A64pkg1*5h)9}>MS zL=YY7Ae=}Vr{Z5>aH6qX>nL@?F^92#p7|saK=?vNhKi^NwJvR~oZf{!?} z!+U`ZmD-t8Gxi}@dn|cjX(#rATF@UQjj(N%ndB=1Oppduf%;atK8qX=lG5UQmM|}k zg!XYrVZ6xH*+n$y`DP+8VQ4whTG`?B51NB3K1*HRT~d|K7(T&tty0i^$SG|2HSV}J zuGA(L!ZAfLjn0h)!?R-8KsFQ(jf{2uoK^Hd(DW6c!dgMl0x=x`>m}&rBkdc4F>Sa< z<#Hr>Q0iewZY~eXT@t)5lJC$=pzXx}d;Q>V!u=NsXXfDi&-wx5U#$NhX8!-Ffbj2? z0#*Vh#{Z}q{CAatzX}8YUMXPu_kza1v?Zp0RWbg1ZD~^7#%_b-kGAv*|FMeJM5Kg7 zinNWwa1$i#nEa@Z8;A{J0=1KAJs_lV7y!Pu0|`hJe_!SZnJ86_IGiC^;j?l1N}pLcgiyvtkA z*@!mnW(E4GiVjD?*#wzM6tsh-=N%@FsDun=zuwR6S5&+Tpoumb*KDE}(&@1ll#>&g zT5NVc+P+8@Az~PGAGm-kErU2xC6b>{O4vVOq2K^$qa-@- zE|*Am-)2&Me3a~DPcy=0$G*vo8YXXq*`ij?{F@&YaN(-X2+iGyMXsx_&Ru7OTY_Xi zrFj`JyGYUEoHZYS8g~Iw`VIU&U0nR73@HRYE0_dIXfW~t?<$zgRQ0PH}H_Q$N(0GHZo3iu@l-O$EG>!hni<+$2wU`peW0J(az`aBIT-2%{n~S z5w*YQWNY(?8xN2<vH` z?xiS1Kfs};3X`N`y6ls6G66ry6n9o{_`y9YA@^#tDG@7q#s*m&%u5Z>0g)P1xM-me znU_86f#(`pk-wriBEs0n>H4TK#=EyoMr$D?#~e_&N`C=vHM>&BZ!2a#mB00B{0aLb zAhbYsC02Dy2zrqv5a@vPwc6zo0$U9qv8o>nPB z?o64Txpdze*y)u~Hv!A{EW@$n3 zvuS=_Ck2|6zxJD+wBt$oc7o`vI8cEJqw6*d1XZWgA^AyD&F>T0gMw<0hRX*DBPE5G z=7Pe?3?tta*YHib4h`OiKnFB!DT3}H8R)h^O1?sz6InHb?6Jv~!(P&2v-$Wi>Zk!8~51b25zZM`d%I_&R$UK6+S#sO+TO%8GJvx$Gv)a3P#Y0 zI^DcsB~pZa%lVe*oA%f#Rnl`{cUisoSe8b8%?7Tm$??y1aFPx==;{`hyc=c63&ph} zgHV(f@O;cGTIM!0OJDLA)MjMBAMwwdaD2}k45sLWo*7X4Ko*IXpLOFbyJ69UcCEep zsM5h3f4OllJHd(JYtE2UeYMTzKY!|*XY!w^?CzilIFf2!IH8!tf+sO*kP^M%pGnpn;(0%v0XmaOJ5 z3DfH!_N><8DDepSi7c;>GkYDouV6P-`7$@nvfhh3f3xZ`)jRyGQ=Vdm18z|G<7D=> zHsmIGac{7qvD=s2I#D^hm?Z~bn72Zea_Y_;X$M*+SxK4vNQERsknZlxk}0tt0sB>z z6jxF+J`M;k>YT)bu0F12Au*37C6QD$Pl2Eyn2-c$L~FjyG$aWL%pMApPm(tjG*Svp zh|yp*aT=B$Dj;Jb9Y4k7G$Oqq9#Jq8p{JD~)cRg!h&Uo~baBB;;-g}Vfu!Fv{xs(Y zVos@>j1qf~-}_+ZsO|_p-RhV7TN2fB! zb&1+)3X&;9=iEF4YB2nrDcgr@*?GJ{CvL?_G08-P zdGgSpHR-VPkgV^iP~L!114qyy63t+zPlnwFD!H>QZa+m4>Op5)KYMoMb(FjT;6d9+ z=6|=;=K9bTQ`|lu7E8EO+&@Gh{>dVRE^^tWf6@qIexBd>ldn7Ke)jJrXfQcR>V|9N z%n}3t*FeD}gtPuibh_Xb2g$@e(v$WPrMbYin@n6hcaJ{0>`>c3Yc!Hh0wa0>wfPE= zx~~-ts>gIUEFI>|+-nOUQ-q|5@=SlpsMgod3VX=N9C6Y%^NY91b~Co88pk6C>R#{Pg|~aXssmG8s~ky(2fDmZYQb z^bu8@Td_AAutEkp+QFSkSOUi8G2)m_vso`NOQq6fTl(v3!!p}L2+M@4)_DqcUpQ*7 z#k-|3{H`atG;I-NSW(0KAU*3+ZNxqiWQX$LCi&F76)xrIzFP(ir6RghJ|Lk!eu4RN z89ZIDR~od~V1#}}+HMfS8m&d_8#Ctj`UB!d;hFqK>RD2R{|a4)a6yvSXwL@E85qISw8l;CmZAVt2%z5A zmB$O{E zD$HiE&U$E^LgGlvI(nNMO!(7u|237`&#P8*IJpP7?JlmyZ{<#zgl74_8ZGw8pFKNQT2`lsC)-b6& z=d2VaCy@kGCeLl>$`0Qmqp|2hl*x4WM@R>nU`txa!ewrQ(du4VfAcE&MF4-k-6i~N zS!Qe&W_?N7h|G^zyi2*BMXTGYjvR_}V-L%r1|+-jlk%5##F#6xpaLWP+)!NGy2Y*Vr2YOhbt zBT(=Tu+5HJb@j_>bLLJZZRZg2Q7q8^saAHQOfAv z_{5&z*<6@!bLz-TddgQ@Dh-5)4g{?7RQ3IE^YRJo#66unw06C;_QV2O^pEW~hX|+& z6@Q)h@CSd`^(NaNcKrqau}rd>BC1qa4Dd`C(GdVIxWE=w z3JHU9r`4=_QO%a9GxB_HH%dq;MYQ78IO{6DM)nxfO8? zv&Ti>qy|pz1cuAe525WaV_K$Da|0@j%lc^YyFzfQ@p6$l{>Ptl*{IVAkRP$^oK1K+ zSfP+Hg6SU{T+0mM<}d*m8t%1VgkstVM&JFhtlofn``Qr09BEz=fua%P8~3O=CRS1* zu!lls=k1-_YQdsBMm1v<)y?d<<F{6$1mgCxRx zG!x{UcQNVOC~W{Ut^;1FB1DARMz)q;f>ZI=EGc2RT?4^9Y4{XVhl0oWlhIyxuc&KD z4IJajQky%8tHXGw96?b5+)6iJNVz9h(CRar@5wDjU?!QXI9w^}{T^3|vtf7b>qOo2 zx5~3i3D$G0*TCr*)%WmdQ$nK47h8d2=@>;;eA%H_tHhH{%DuRD)JmMj(bc%Sg6hLw z)4KL6@?lVQhmqoPfa<3A{dmrDPo5^?MC1n z;lw0pM;t2;d7^w?SJ0e-3(V?j%4osv;somkN`82zDse%bFNMX~Ew?fxaXQMtlSPnP zi(U}12gJoO+?)+P4=wEBtJ9B_TC8Vz>OZN9XKK&ysB1W&7hkl8>2~!5*_qbBSU$Rg z2_|Z>FA`VnG(O@kUbPc@THd$TXw`?#xT(Gii^IvP!(*jEp&FD$=wM2z1T!JV^r<{d zyNm;22#=lQSw_HH_c_D3M~_Gvb>L6Nk*n#6^kw*B@8w$yVtjaERodwWCDexyK+#nG z+BQYxH-+jy)?e1}nZRq{ghD-obv2}rLjIvWDgwTPW%NvNFKD5NIVKF#Q~HmyLecDGWv?YHOT{g@l0==Pa+Qe>uAE0}5ARU3bd7jaV8&>s(?-=7sNp}L3P>h$PH zgq`V*3;f9&fa)d_RpC&_bml*j(>*}!;@?ZH9+z--nOM^II5V@iAG<4DBqgiz8cj~0^;qlQ}$F3eG`)SCw=vfpN`(g?d|1`pLfgG{+-Y*>?zz*sao4l zgLBA1tWKca!JUQ;jZgB=_L}Z=rqztDeUMi{Eyo$~7hsEK(o&ZU zzgp$1v14@;`RUDWbiauwmxIJ*OF5?pY4_X?dI}0wSTcFf3XpFJA7tcLV)Dw$U1FtA z1tCHq@1ckrOHPhnD?SYl#fPbFa29CNxg&g<%;*Tl&ZB{dn^+y8F;A%WeVaO3+yN_b z_unZ-eG)LZcYm^6pX!(+Qo9r?_wT)qKBdZywT>aukTUNt+kgYcD3QHad#d_aeyygw zzzcWn;aXK}L8~wjB6i8(s7ui$oAoyW(eglgS+l13pxUdv2aC@s)zOoBsh?eUGq`0k z`5{m;F8hRwWUpm-teFiJQ7U;kRyc?UlP9ImiyV!Nww^N+I7 zj-?5a2vm+vpJq*S8>Cd3u~r&5%!u?f*iTar-5MzsCiOZQOS|M!#y^-M94#~F z(=$sSlvNRltEVRKRk;M|sUroqQGS$i(IR?Uap73Q`58VU7K!1PKMAyuC?2_5pXR%? z&T*~FGHwn}%8t7m5+1HkxlP%E>vik@g6YILu^@v@Di9r2`okuqjC&7Hm01g}2^9J7~I=W;d#gwC9MAw_>K1i(|YhBEkV0DRBOH|B264-{)j7t4Mb= zwVfPeKS`nw($WD{!R!pmd(}=0-|MGJ@70!w(|oABL>CWcb&-FA-D=deh}nD6u=sOC zCR=iUusO4IP1J0$oZHd==@+X29$=rM+Nm6dMk7xZo-~`< z1ETwC8QKot67C^H)pR^q#@{1WbG?8()I;AWcVB$`0~mW60eq=7pWk_EWBz)-7TNTZgDIP2AU+KBh{0I4S^tXt zP;G8{;3bH5IXP^jS{AoLj7@lmHhuTg#=KWft}}22^kx~?xSpOTB>vV%rH_kZSfJ33 zxA10${j(3Z=tNGiNTwWR@zr1A)JUzMSPV>Vh+vHn0%bB#hRCN47BG;vdaSCv71RdE zo2?%{(^e}8D@E`OF#WaEaKVVpV1qajqhV=|=1CkXXgwe6uoZt7UPXAhI)q(cL8|+y zwWVg$v}3Tg=!j&!^i(>4f#y7%&L};csT!kM&%@-Lje%}*H6#Wf$a2unAw+z4RdAV! z))673dpT!=l(Hq=y38Z;?mRn2kzx3Bh-cEynIYqM;9(#gcI08i358!`fBC)Uxx~T_ z3p}Ua>o=Q0IsC_pcr=_GK+Ryv!Ch{_wGUs5yZ+_1ZAmKKOv(;UmmyK9`z!Z(|1yS3 z>4GdsNTt?069FWEW#z^8n|`*ysO@K(cf#CG_m42s^xrMoHgR87&THSs{I1roT4zJ*p88%CVTD>aqVuL<3=veq1W@9Q*%DtJ#$gU zOj$&TV3ePW0+lOR6W-#kXw=XLgmFCQ zkYX8BJuBGidzL7B|r$!a*7-C!Y zXqAwOyoW=cHjIA*#2@g*n+GmMU-1khd87DaTMC78q^{$;mml1lTV+DfGE zs@ogI_>o7?lPFvSTksi0*PF-X*9$0_bW|yEMBWE({otzny-1QFS)crIh3ebv)f$BR z&Q4^EWhh1jJ}^AW_}7-UD_3sk_BBfh3k+H;-0_tpCT2xDSIjKApWWasQ)Dyt7?z@( zEUq!;(8dclWx@rUQea45^3B;}D2E@WrbSteg zLoH2k;I|aDPL^q~1_}U$fise4G?P0GwBa$kRftuCcDJ1yP4V9nE#Wo z|K)1`e?{1t{zJb0fAYdJ{YAO|7Y_dKUU;#8Iq?6`?|+f~KhZz_`#<47wEs`|59|LE z{v)sd<+}fu!=Cvsz5SnS_!qNh{ts*Z|KOd>rnC*)bpeFXJb$;0OM=0O~E&{?R%$boM?t8B`Ij@2sN^zb+LQx9b2ON@} zEb_&Ub_WE9T4a zvhgx5?DA;o97jnAS5(xoGdglE?J~Y=SG%2>>Zf;JU!BAEz<}e|%65Jj2m8R^$_KBq zHb|Kz@7Gy2-4WnaDX&Uzbw-3kdLcfrU{gJOn+Ttr71TRX54`St)*7zp)G^XeCf-hkQwWdB-cjL zeF2r><}yH2b{GJO8P#!G>&KoEIW}P6j=UA4q|y_P_tGtlsf)+8A3*7{gbvS-Mz@U&N=B*S9 zAHn!1qyQEXVrnjexg8DfASLIvMXVbidDBQZ0z>R_;Y7n3gOj2|lWeP*%shE*L@fx? zlctB6tLQr3A1`F;tyr|!-uB`?kfRJQ9)#HoH`d75?Cidk$|nD(>QJsN-#5m(Yzx+lrenb0vDSCh8IP(f;N0KFN!)X zXL$drFcFO?$}k>^IOUl;*WB-OMz+72|C|737>{atpck)9iSV8vS59%qorw}ATH8FfO;;fdQW`Oc zOGYD-Bbql_q~}vVXkazypb<|VXBZF3kaADKkB&<8i6aGyGYq3_qvLdDV>O)|ZXb=b zY>g4lDg8t~RM9e*?9YeIW9R&F#_?!G|K89=^L|8%7p3yHGCUD*YDte6&XgeRCqqc* zdsS=0ENt^zvA=u#?}_j4T<}+Z;AH3c&z$ks8#w>ujQ>O4pZ~`1^LLv1_iV`gU-*5P z|HpoxCUr&mO%8-F(06<>o;l?7)jH#{d0qfox1Tzva|C)+s;9OZj_bBhi3BH~Zw(`B zO-TstJ~u?aBzSV|j_xPfw;QZe#eyAvQ%YhAJlUcJyjG?$aJPl~i;*b3eSThOe2+Ae znmC0+9KKv5FS}|>n&m5fz|u{fF#Yf!e7VsE#hrh_D368K1f$0LO_jn>nm?+ zE`_)0@bGfHdw3A(PFYGCCb&Q2zLHli^bO4a$tX!eY!T>6j($skUG3f4Q*FoJ!{5{O z>g{v?xc?Y7QCV4YU46|5B_pFJb9t9J{CfX+iu!_27`W@cW}bbZ z?$GJv8Pg&tCImJ%viEXa6!<%Pdvnt_nutD+g&?-twEwJgVqF+UC{QB|)vo&&oxS6lf`2 zIGCWq_s4=@DBu^9z%do@ev-p8@NfD8JxdOZ1`RRxfQDTzezM7|g#0(Qz zLL&n%xk4q#X!M&?*_P5sUS3VG9>gylI%+Q7wEe(sARE+n*0K#mTSlpADFnp`p-SjTB__ktrwcSf+79CT%lX}{F`vQhOX4C}r$ z9_ZBK_0?y8%0^-{ks9Cj=$!fS-5))#fsb<1K$zI~yak=flt@+^h`C=E;qy?qVWc;h zNWteTsEk|cQL2*B7&>D+0KEALW;Gj<4+8q#p$8{i$mm#nu1={g5aM5K0~%#^43-p@#B zWO;6X)2~RZA+&h1rdY0|%=tOe6>%9d&^lP=^Yc+bmO3W=a+%yR^?uOoNq27Y+;Jf_ z<(CfODBg$Ccr=eoo0y0dr>`LlzvcsK$+=p~rg~i8wqDJu)&rWC598(hfas`;PW=-(~v{sy4B^bWe->PL*~`ysh~!6S~KnIjE>^2&TjglvlTj}1ueXcKe&N#@EKk`zgz)r z?uK}hQ#p7R-p@E$K#!mWH}0MAknqqIwDLtXVpUy8Gf#a!JN)}4G;wa7-(QQ^6BtBW zTOgCy%9Eyw){&2e0hU`)0GW6E(bIBv=N1Str}}YSqHES_ukc=^vu3=R=t0;4the5H zZ<=0d{UR6XF{fy7)Y{4U?H2g(H{3itbkHx3 zqat@Sjn}fTI#rqUcCi;08BQy1Eb06QO=O}w7e_7$*o2J?Yj(QJiBsj_jJT8z2HLNC zV&h|v&rMC=fS!)Y z;s3=l^^c&&$in`g_?-FwH-g&VtJVLqeEq{G{_U?&nEyoz{(HM>mAbCo1{c!jAG@lE zelsnSYT?fs=nLU2wlyF(uZ{@%w|VrTQrxW++8UCPF(bc^X?ux?ddU%Zn*f0$!mxvk zf!7z74vKz%XtMvSy{~|(s_WKPQMwyMO1cl{&?VhnA|Zzqq#GneQd&Bs8x#Zt2@wzx zQ9@c;KoCI?5Ref0_da;A-uJ%Wcklhj_{Tp!##pSHbFR78n(NuC_Sq3RZ=-s|uLffu zJ!1FRm}RoiBo7vf;^wY+8`-YHpHagT9=tzU^C-J)QGQIxW9s3=+Y1?o?swz@@l8?g zmA2T57mum*)aSA4YZ5cq>W7XH5%k-o@4xvnF(dB#=F^up>EVy?Skviy!~1#Yn}Z^) z*yIW|{XVHywoLxk&MFDlcRck{R+Xx=9WQ1{d}cV@TZ>PcxX&>WqkG=tezz+v>xfSZdkNv1q1`~qyu=iuyH@HIxZ7*Z&S2oWH)~G(Wv4}A&QRiu} zAAiEh-tiu{_f2)(6|o)c)ae(=ERlKGtioMsSwUwvzQSy7;T69fS3oOpU#YGLtVxw9 zep-ahtzCDBwf@lmCQAB66fJ>_VJF#zkjb6KMoi;e^iZsuR^~pAj+MmZv5&MVRnRbs zVQ+PJY|dEssH~4Cjh)!N#yI;Zh70APm`W+rDIa z)!t;ixv&p%wC9jl-&vi#g!0^HZ&H2e&by#7!Tx2hH)5hggmxS@;)hl%s3j%BBW)rd z&+jZ+>5n?TUgC6uCK-vB2zJ#*9KFf&Z#tS%XxP>1J?h!INnl7`P#p9+g`#`z^e(G( z%bBWW#d#Vp{a2%{rJ*EWBB9hnYYcpOf3<# z5{GB=STM9iC<;C>ga%A)xiA{~s0&T+7u0qosD(aCV{CvtitD4jg1@fx)bsqhY-#eM zfz$X7%cX+n(nr>k|<(u~H{MV6mtX$+rs<^@WSd(&~g zA~Y`%sUwq?ZOhl`e6={sE%XVpTFOU{ZFZpJ&D%gz_?&L#v5SOq*IU|_c#JK!u?9W% zG@k7EDfU`K)YYs}jpM;Ly?LW4xQi)X8Qy|iPo2Y%7O#G;nz9hFCS>?(L+OYmw{;G2 z*@|wl(@W*Cz*hlq)2Ogka;C2egE=D&@#XR(pY@UtE8I&duCI5ohE+$~R_uNy$8uF& z64YY~G_e#OwY4N%)GoSFh=}^Asf-4mN^-8`6)O=>JkK}LsHvO=Cw}$;-$J_A9?h@v zyfH^{1n^4e$a0?leR^*Kyh97(Wl|m;+X)!w7P|SNx+GV?@HY}wA@thPX>_Ydsg!;K zy+(88p;CKgFI3f7S=e^&>81d?oeK|@?T%P-e(@YI+Mf4*%t?kntx&HI_(0rC?Ow%2!iq9-sxTN@ z?1=aSyh3SjjpqAk7lMLsioM7ryQDAJW6~mUFi}+anB@KCGD zD5a_wX4MRcc?IqZbqk=R<4L)4xCcEu9cV&0Ie}a9s(LY;henaQ3Dtdkn2KwLPn;vS~E^5aYEz)55aM>Uzrc*x9 z9&>@p=dPmYjuBfc9;Xudire7){1v_3Q*_LFpXJ%T69JqyWVg8%gcci9T+|Q|ynnYK zI*iO++^gk&?|x-y6nnZ$hxv^R2I{)o`CbeksFh6U(f9VmXN!}R$L8igy-|{Ko}9bZ z>QKVZ(?CSdgE4UD-Q*pn+nqXgMjm%@xeW^AKUJ7K=-k8*Er`MD=X_=>nuo4)* z?>&`PJYE&7cTeFqUEma+L(abGmDHtpNM;=iJ+B#dB!d8(rqaqotvJ&4mHT;Hguam| zjD`<;Jo-Nh+^Y~a-LCo=xcvmGpA(Ji-TnNEng~fDvp}4A>-AT42IWKn2fKaT*o1gR zDD}Y$sy*<$=?^xz!&H&&cmf2GIwfW`g${e66_`cW<*K61oLf=8Wz<%ACkem0J%5G2 zyZS3_?ANd~4T>1keGu$+{)m+r#Dg(zDYojTIf;@@5~HQIdP|JeFG zYN1q?O!v2m3S7KG6ybWVLEX-luUMQig1f41t!cbA0Avt{o$ zb3Q4$XtjMd#VSO>-b&(?!!)qZ(G>BR0i*Y={;2+b(c0WAv~hwCecy&rwdsiB$D8-= zhPUZoY8cHryKP*HH(bBaX5%C(#jJjSpIHWMyVGk|$o2QrI6Ms^)_j-n1e1tJEPt+6 z{ET7r>$Q*pSdFS50@|ySY2GKGT=y7=iDuN$OUJRNw0b4yshU{thT&n=(jJN5e%sKI za_d7+^N5Uii1*f_flXH389$%TnW+^CBz5yWEBt6XC%CRy7;=YrpMCD>&ezox$Ly9# z)=k;n^!dowt@wk*9<2)+5qEByaMt8Ays+nE%C*4*-sUp9fVY^lo0c+B#(iDy74@r$ z&Dq=}bzLEudWA2-?{BlcQV)-~R9SNOdTj~%=i4uvwIac&D09(D!5FKiw}u~!fNh<7 zesW2CHz7$Z)866E+C>aHD&zckU4^dY)h_|Q%|#UWA?o{F>YSgxY4ywIR*^VWh(ika z#dadG*bWFE&!xS*McQ7;ai;mDOU3X@`tD+mFG}~p=;qzj3Y3s`49g$IRLhu!l^3KE z3yuc(Hf8&L<rc3z?6^^YXcCSpTE5>SF z(Q|svpgYjI#UGB{uuM`{b`iEPt!L>S5p&D-pCVcsZg#ytA_fuZG_WTXtxWj@sW0C6eDt)OUjR-XYSMwmQW8S?^4yMV`a@${ z2DnUckx~TyqwGwWHYr??9UJX)2Z-;&ary=yt{ zy|GGi7@Q0~An2uQ_l{H@hMrk&aq{r2-|jPEa!6cNfn`PFKH}}VS#PT$FhCz?9r(g# z@Qz6*XYncD^E6Kk&dJ*w4-jl!??CB!eWh~t6~t$!J}!<)y)iyS$;Qo@?*gXIc>f0q zp1`Y?>tShL$rEW_6$4QP`R=^4o(A{J8m($E$8Cke^M}uc7B4Ug8x2)uk5rvnnGBhG zZqWzu6IqF`8eEN`4itGn0{LFN(d`4N7cIC0XZiS{*PpI8G3S;dGO|7=+ zyirnG?LDY-(HW{e3ten4*n?e^7r{;3y70V$hxm&sEB!}bDjgBX^z(ikrz{ zQ3-Ep-`uRwUz-l(JKf+-iV~ASXR3wLK68|(n0Y6K6Q$F65yxY&tLggLbv2`f&$y7o zG0S1PIe&h={f;n=T4eN^}H2*W`G6 zFl&Xo{HVmV4`lCvb#$z7b3N3JZ~_f&K292W31bzILYu!&+&} zC}gBR=t70yru^j)cGoje0V1=+x6^I6+c2!T^0sHRc__#<7x$d(-K?n@DQB*miCj(g zmJ*4%9I9u`0>N74ym>F^d4-&QN2#fU#YQ`E7c4iqeJqTXhxHYG)&9io0v7tZ{e$J! zUMe$D{QzTxvKsCj(jFM=UkEFcbs2;;(mzS8X1P!mt(!M+WP`>P z?jQ&8bdP^OW)2r=Vpqt!*t^y-;DQ>2vCYtj=MTT32fM*%UD6`LET|sC?(R{WvV6C< zaM^+>m9aC(L|5!3?;75v-`^58lIPEOKk-_(=Yra^d|!-ivplyl zFUm{lE6&TFTq+y;1GS#Ud+W3!TCr*-sa|tD?5Qsq{D-2*rFtB%CuEJBDLKcndVjZ!MhgtlGO>(ni-O*E#U zjAfw?JVas5C=RQux&Gei#i$7lL3V>U3u$a_;_gxz+U8B$yPM@61})1@F&Gn0 z)Po)8OZMoR?(7T=R`jW}^c6#WO{Rq&J;w4U_yQ@u^4s#fxErh3^H;Fw*S?T^Ih|=osWyLl*z2ACYMK8qooErk`5QT+r*>&p^G`#$ zndH89CYViZvse4vHR#^M{7gI7!n)uoGqQyx>(83z(4Bg2n1i#(s_YU zzfBNsx0{r^Dl|g!E>L~zA*oA1_4`>+@8Ejfdz65QU7h_QE<){`PL18A%v3eksn=IZ zY#MFVp9~dOJPRX}n0bh~^U5c2(njme(O3c1HtHlPBNtavb~HteX?m=JH8c+*@r7UF zOX$*dXEj-Vt1OaUIqcbwk7VygleP+(-WEI$33h#9KB*SEAa>LB5}(?hZqvQ1?oMh# zcYDHXQi*mYcbY1M%c`S9t^3dA5p6GDxEgEM1&voK9=+=m%0!{H=~9qs;`^ybByqBi zC6T%OopJo(LmaZBaNmU2Haa+CQz`3`VusuAs-CA}G(`s&u8DhO4rOAR#4t2J@z(2v z*StzMBo3PNvB!B-5>mfyNa>)7?Q$M4+;;PAE$PO~57$SzDN`Qj84t1xcS{97OT3lf zn|y1AI+jqaW(@uw``~3?F-aT!#`Sn7;o4Hx+QHQY^-B)d6orH-tNd&l!*)e?&hwex zG1nI7Y8R>{`=XJx+-88{LpV@=D2w+JT=61`!M z(^nGWwPQ$`rHQ>s1t=s9-KNJ{m_0E@o(u0ac^BYT(DBsn>9r%#?NkXO=MN+`ZFE=~ zoAepXU$T1(9&}=nn8aQl@qF@_qau5cF`i%W-PeLopOi<{NsX@&@e5iscne1^eJRUU zPro|eOikG6GoN8a-H%mCvBXEB|61eQt&iNqDdOy6q*s;RzUz zM^$(OU2LGwXL9r>_1yVH@A!{Oq27KG#=JydZfr2B&ZINOwtF`=wmg_gkiDR&@s>l4 z?OG02^o#eQlU;IB@Ao1^r=^Y8UeV-~PP;YNYZpz;E7*-<`Q2=_eBGnpxYQo?Am^JD z?Fah>$wS`NOXoNpg`RgZNW0osDu?oS_Mg0wfJFlJgI+KhZOCY@t+@)K+q;D5X{%NWE zM_07AYmsHqt4$7m)A@E#q!xGXK|ti)WG+{0~o3HON$ zF7p*N$rR<+FBZjFl@?0nf2W3v+ArEHj?&J?Uv&>d7NSrxI)Wc@C0wJWkdC;6HurSw zwg(}doc?HdsE!+3PP!$^vW!hUR!C$X@l)9ltl_4z=9QQ8hY76H@AuqXmOmHGM8#k; z)@h%e#>u+j&7#g1#}a^BrXG4rP3f9=R~1*bg}lcX#&w|=xGu%n{bt|B-;5i}>py`r zaS+{+&-zjpBVtR((wzK)LFqKZp@#y4Egdb&lR0tT3U!uN^Gkfx0FIPhb@x&k43AcX zF4W}j<;8AYx0&dIDfQAsYa|?=VPaKIr8p}IX=f?L4Hb5aEjx^+5K*(bF=lEAT{X?8 zF`5^_FV%^qH+VIb!xp0Uu+miU9!hh$4ZmsRD5(dDpYjZ)260d@033NGA>;sXC}?79 zQG!prYJwv7c}gwh6I%ryjiF6xz1IK4F~grFFWP zQ?w`Fu|ww@)+-liNl{G=My;(v%SzeBx>KAo^EonxUoUPtddb~cP59v89Ae4d>be4p z#hH+v7-^=WHzY%&Ecf#S5s zn&JCb-Vday#sBKBj3N;sxr;(Q?{PVIP?=U9O=mvwYVE6iT{QnIGHDOQq`Om<$0m-3 zO=`tr#xLzw?wadPEw(=XvZBYHIixgteaOG)Qgz8$Evd$)qbKHlZ^+jfN{5yU#Gbal zncskN_uaXiJk41G{~9o~NUOxzFLj8XeW;)<`mU>W=Q06*)BYK!CqC7yeipA{t9CT4erL-8?`?MuHu zEgg(P-r$VT%YFMh)xnTNOO89$XI&B(fE&ULm&Nq81A{2Xy;c2a<<3X~FLv2qaBJf2 zz<_Y6bvHtn4N~&LY0t|Zy~J%a-eW3p5y;`JHGwspKR7wujjH11>zb;h0bqpuant@x+!(>7ibpuG}lhnVx8%#3K8W@b0$#fcL7 zeAdM4&(Cd?*QpI;il8u6iD|^g>kjfIrN5AwN}h5uvMgk2a`0-pwCKt6q!bsm1Md7y zo!0b0&G5WaMc5+~w^d8}Pqip3p`_!Xq|EO+wyvnny-^`MJxipDSB5?3K^~T{gQ_$B zXz^`udh|8Qse~Z)t!SeDKJHv}cmME1$*X=k-KqllbM^WM7_SSPcF|%{-c5x>+@I9j zp?$Tf%Xy%jDvARYBg|YRE2W+nhQ~V}oKYQ$WYPXQ{p1u8tva)c=lGKcOqFwAKFM-l za(So7GTAckyh^M~WZn2RM8HiTv`T5zQq29nF!L5a`;FlJ;_hKf;{LplWuBE&PwD2} z2S1}xD34H??~BP3uMF&TP-%K?ey!U`eEmv$CK3(h@j80s^2J$W2X?Xk+N)l9<<*d@ zGWvxutN7lSFtbR@2@J002WFQ;TwRwY*M61gBWCWddeyy38$I>vTj|&Q4?IcljH}MSVLipG z#WfN*jdn;v7V)WToTs0R4{r}{#k{U!E$qARP8DPBEzFm{bT7e^)Wa)vIxgaDwa(}9 z^Z`$0Hr`~WDn}*RUUN}ghFKhb2#e5yd{3SK5M2B2o9ff9&#Upv@1Rw}M*TC`aUzM` zCp>#jb306+jJ}Jowl4{fD@tn`O!2pkVNkI2PbsSi?WPxDBH6z~6=q;B7+&g~ofvv= z0xL?HW_iOWH(Dxf^866hOU4bHmvk?*dao-dN=N12orz}&qg57qZZ4`uwHFT8^nNvj zXU2eUadCELB=1QQt6I3Tv)Kq=iKlS{{VhAHcBh_j#^f(MFBJM>?6N?Ow>-5SdiZO!++lC$Vj4zp{s7-@VDS0C; zNXmOlUu6vEp`&o6vfR1_t@C+=PVvqCMxB=zwgE9J9CxLugYb#qM~iYCtRRJwKIp-Q z>hL#BkN9T$Ci8V7!^2vI{7dNdC=S|3!~SYbY2#G|oUd3g2@8{ES8s=36R`KA44vo3 z!+ZZ(=(7GQh1=PTot$1W*|?S*x>zUW^o>jJY-ifd-8Rw%d%MS21}Y7bR<2YFh6li< z^{EeTIx5%MtPJLU81B%#o7>|$1y5e6+X<*3J%UHFLqTNs_w^pz@pzL$Xo zZGgTCTA4|JHoOQLs&cCIv?lGqtoyR-QIRZSB(hfT#!1MU-Qcn9oA}a3^a)wxQt_>c ztiq741Vt(es$Np2P6kn&&GMOK=FjwR^;;{EELa^1f6MG<@7G7eWa=AH2@ zKjs5faEpfV9h0I{SU`R_S{M2RK2hR+F}9cFHEZIYVMWnCYBFnUBRYmFPbs*$)O%ZV zjKyxh4{Q;h<6K8y8aW2oI%nkDFQ z`_9f`gxRz~66$k{Lc~iN`qB%EEvQSp)hPAYbMb7&BR>df?A=d2Z+1RNOv^se&~~V? zkTkveMULV&Sy_Ji0M8atwr-=wX?#%@hai^D$t`0IV&OkswaZQBiGy!m zSFa5{s6mBUXq*pYB1l)adt=ca%G|Y{dv7^6ux#hXSQqEE-Q~-lWGtwsFEL;=hr4AB zhcl$%-C0YZyu+|XKVS|KW9D?A8@MT-_Vwhm(@-tLNo)efct5hFj&j-TTfKc zR~|ZARcp^?M^ucqqKQqi&-s4Zq;gi;_pqP6+)rK|k4gG?Ii)Xdw0C&Dp!FO-`_1ip zM_R*tc@M)1<2BHhbiah9)W`}K_Q;_4dr3t}Im&1&-z|GPh4vcOa$1AX=k&5@`DrCy znoCp6e3ulL&XshU`NSyj48G;nS5F;VA+=4oE0sUU`mhy)OJ8v{GYie?rVle(!)f1d zBU;}SOwQ`=G`|&!xh-2Viy^1mgz049@W>^SR>tnkwb|?C*l04ily@$^enX*Ma6V^4 z=2o11K_MkiH2vezzKbO2_s8r@xFr2^X}g{Yu3A}*pUV&PV7YD%dwj}1#8PWVx)MX) zLGgZi;Tp%lMz56qX)h?m^)rLO)wfyNmG%Rj+#e(2pJ_lbWzC#F=VYpItF2W~pAtzR zuIy5j;ugxZ<`Ys}yjXltz{HHv{BG;=y{rV{bCeY$vJrX{s0RfWiSlK`J_SUQM5)08 zz6{q0doiwTTY9FVWA-;+pjVL8-1lR7DR0ND=pw0^QxIAB(uY}j>MV&3gfdTDGHmWM zPV$)~$3bF&9O^9fyIM03AHCHVWvpoyZ8pt5U=`(SkPEnl*`bZLTD@yquuZ_t%3`ZF zXOkQ2wN@h|%J~_;&ow^0I7EDIkE7^4gVFYI1a(}t=H77u0TH`L@oE+qBbE}12!S8GGR)bpVNy+d8OSi37U%MpO4##PfATDD^takH^e&+si%loT)-<(jon|LZaaUI~ zi^aD%2uwe5bc9sfXmwZu!Dz_SJe~Id%h#3>6O(K<7;W6 ztWV!gE5a~{?D|Eim~&I+du!6?89qBt`f0h|4K|6n!J*ejKu@Ep`oL*y$0yh#-mt{I zF@&^bo~p|VojPpqo}9z@b9$l2?2o6GZpmUCiBqZXg@4mA(xSrbs5~+yNi7#KlA&XF z&wu05ifSq{a<}TMw~|p}^jU@K6_Zg-tw%-i%Zd=3xf=&^bUKl9!8~2Q=pI=NrxIQS zUHu|-i@VErY5R@Rr<+dc4)N?O+=aPhU#RK!ZU&n$*AHJASjni3RakV5e?P6b49uY8 zfaFHUx`I)G8R9buk@zBL1nCC08|yF9q$Xno?Y)T72UyPRl-uFCEM<)q6A=i|5PcfR z;Sbh-9Z0z^C!IB8crTHr%%Ao#ih75o7J5T!N{guM`4p-Fk)9iPv2>9-I?-uQw~{qe z({V3&PwC#cHkei_RTibXn14ZIG9xz_CwFAlp@DJB-*EpLz zPJEN>(-+_A(Wv0X@6gA4!=ey(*Xhh>3zR28`(w%_Jv?0=%=3Nbh7zCXtXH>PP0U}8 z>uV5>T^U&wGNqZ2958&nte;IcJT#Ed#9_{xMM1;=_HkdagTBK%_L6UgJIm&;rakOu z%$c_WZ=t&jWb#oCCO%E5!izg(w|`uXJK?Vo6z6pG)H*M4CNb1HTwy}8SQqz!{tcr} zS(IDECO8o7O;u?Aw(#4^u?EVlq5S~svNFFx50`Q@)cVI>x!m)wA3e=t)QGxngxP-K z0sUR5fKuO0Gkr#DC{ zMhJJEUnjG0dun}lrRrFe3DoE+l5i(2z&`t`$BC_~Of0El1ZS1-wsE(zEk;qU3dsjw zyJw$`=0pAN@7v;(aEcgcT_fCH%DB^|Q_<0iJ{u8*Z*CDWBom6J0<{Re5uv0)G_qPE zGuI)LRB%yX4(1_SXx|#k$&jHRmsrNRUcoG_64@Fwx5Lsjbc1UEXMy}ou%bY0ocseK zp^>=r%5~*C_*Y+kfK8!^F6OEYm!l>&e3-kw$e(L$+KSLm`4xHJ1r& zhZ374m#tEjNU-gSFyUeytb||7Ph%ytM{=$nomxl93jK@OJMyY4?@zCy!T#Z@>wjEKXErSe(bOAGSfKf zP*^5hOETbxi%(mOKghuG=;#Twj!3HB-gCG-4&V9tytkjIC*OYhPj$b^WPR=IN*r(}+@G~^Z-HFXWbGKBX(yKIng z1gl@!HKAEb6Hk=s)xxm8vX}HkTv}y4yX9^Ev!$E5=@eKG+2>7N6`zdEPrQOQ<5X|k zaf^R~SM9?$&^V}*vD%qH05y-kLIrSyz>eOLDUg-SeV$lZu|lQhJ}@hJ3O(_G1nErISX*bzcV_ zb);$%3kxP<)IMb%-VCrDvE?yP!XedCX1$G-C^2vNIyGu&=riZlE|#4;UD#t{ie=R< zQF`e8>;q*amdeHpL%XEPuvaG8k}66HaQ?Lc+FO!3RxaTmAE-k+-sT74-Ct=e8*6ja zCCX4$XtU#2?>g16aYby0>?X9d|J?DCY~TMaRq zecF4XeJ+S`eDW@CdG)G-a(K|3P>7XB`DMoEz9kCYF5c(&>uvdm8<(WXjhfm7bDn;F za^(~E9U;W_|BXam^nmQrcTxwj9s{BLzLNH{)@913WTM4is7hv<6}STQnmT)Zx} zCF}Pgax23~>arqtuF`>(Rw`e&guSxg-G{GbIL;Cb3xqN&;g`v%wdmNUZI;CIT9#&V z7_n!zV;f$MjFLf%r~6#r)oJ%mX)0djh89!sQyn#Lrmv+VuQe0cF&GQ`4&Fsm3y>jQya9zNaPL`3%y+#Wmn1uPJ+vi_#)7-xH`C3(NPzp-N<1W=Y4vkKcGpoza~cPH$Yxdb+s#j9RqgS(xKCw(MuB z@!2VydMVcm2Pc`fEz*q!2pbI=Cfq!u1v}5nJj#T0f?EGTnXqMrOA#yWBira%URJn+ zb(Fz^Oj-a_!iD8jf}}9HkPPd@jL_nj8wp4@T!!wZE2B8U@Uxi!bHi zM_9>^hoW9VpCRDeJ;SUQfx&q>HnB@;nVU-py9;*PWSTIo+fDLasL$0@xD!)jSKFz| zz8O-f=%BHr+X5V)-z7Xfy6AJE_Z`f(-Cuc3MucTDbzIE%*5dwI-UQtGkFiV^LbBKw zM%!+^XyI8%%dJM;Id_Gr)H*o;&a6$BMQFX-Z=7v8 z@`Sh_ca**+W7OY?yR9@&bG05T_%kNqA?Y_Iny(ZA?&2nm4Keq>nNQ6JKbq*ITh|aZ z57^3;oF;H6$2}+((|NckjzG3mwD*=HA$Q6ZYf3HGY(o4zj1$+V`Z{uduylX3|XSkP8v*jkIZ z^ek`h{7%6<=3hLzkZ(OeVEiX<6T<#4Tnzem9#_A=XU+HXM%ec^qWKWNN)9{)|M4re zg?bYX^ZfXSXAav%i!OD?0h^DHiYACTcXFpF-&o7Vn{!zJNT>PrOC}wwyyDI+S@@;o zl3Al(s;vH1{_BDXm^$s07!UliopWZkPL1_kKx?C@boNWJUsuaxv@?9GQsN}iK779_ zduyoO(L=cUs_B6c`#Eh)znn)-I6J&oq#wMINr=Y3hprj;m`q7#CjGFdXFm2nen=3$O_Wh*Cj;vBxYaG#<%QbhN~Z3%0}P2xa( zQTr;9H)DfmgD7sGWu9|XU(IUErjBX~ZO%OC^luEU3fSDm?Vi1s3H>6CXLYvalXE|A z#g`?kGdRqn>K4U@0R!z$YJAUhOmYi!s@`dTreAa&N|o3jOA8~aGn@Y6wOtdUL%v-c zAoXdfv7>OrP0ZdYF~-dM1`clIoAYREZyw3vy|xYO5*EBX8M(cjN)(Ww=AJ8Kz^L@F zxa+d@R|?~0f-Nt((Rq}u%Ps}s_(Bec{%8q3a*N83GekBb;*^Z@lv(F?n$XWAZFA9{ zpBzqnOBm;zRn9lc-^OI^-LNc5W(I7U$!<=o`cM;$&QjG8#}8kx&Iua2TcjjH{Sm!p z<3NG%DV_Vmw|DS|uhpL67~$GsniM9wv0Q!HUS8&ZTBG;6+^&<}Cvyd{p_48mP z!#jF5>U}#WkB~AN()z2khA%pH&n~20Dbt;6xFQ$LlKf%I{qoC* zB#GNfcdTfHDUb4S=pCZ)&yN=`VNKX)ajS>C7g-nLRC{kWIM~iz()@o`bhbXR0oZ)|&yp+(>@+iOt-(Dy70Q zwDP9Jd8ZlcCxb##er7N{@a5V%qbf8KGXOo-&q=VD=T9R+(LCfk~p_nu=yvj zBJc^^(T6~I`A>HAk=HQ6cg+6cHSPc2n&4kv2Ox0t=XJoJI1heM5{Fyc-OLT~1xg(k zcS}%D9BwtZJ@7?JIUXEtDY&a8;=7aFIyUx}u4?e0(_E`ZgAB*Ia20X?X!9pulT@Fdji#J{}%~69nP{0)n&R1CB6ogn$oP2=MaK^79KI93l*X(DL!|BhtY*r~&Y8jbl0> zPw;yf%)>zvf&#!WKR^IxfKCV~0T~9I3r5C4vpKE;pa!z_e)hrAe~u%=NV7ot zC#C>O`@;ck^GDimbU4O1+`#WfI$GE`SknT-)Irk0)draWjA;N5WGr3HU2L4(99?LC zpPBu-0J|e1r$`Z zadidsLx2bXE&vE=yII=n(E=|PBSH#@kfIyh&cNt za9{o&fx-B3xFuc9fzR6>XMoiMBVe%rY+1q)O#y)k0p-HIj>{C{2LwubeAfWR1NrIq zdXO{dADI46APQ*n14JcVY~XerQjT^O|0;rhAGa_8069QA0vr;bc%jE*8eyb>5%UQG z2>PA=hsk_rLNfoIkF<192-1Ng0r=q&zCSD*Ib1+k0IeJ>4HOK9K_&#o17QUGfW%0` z6Go5_NCy!Vkp_f8Mo3I0jvxt9uWa~!LkuDz<(!N zejk?z2n7m9P@k|N1tK0V02f#qC>IB02dPf<{jN7Ji1t7j%o6~n6;OfWIH*4|jSm=M zKQI&^1TzrAK)?l-1_gp)(Es;9^!P^w ze!K(o=cMrOLG%~2Kp-fD9|qzU$nqPA0{965-tj?n#2+9Eyax0gL?L`9D2fRFEsP5B z06Zr!3UYmiQAEa1FbdB8kTA*z0Ot=F1%58^Cm0nF`Uyr6A1eR#Cyf3HM}czw3P+DC z@EmgQmw%HSp>6{~4MB5d7=m79!zKAo($iJqF9;N$C$fJwXj5ssf*Z z_&Zb;1lFp5IW>g>JjYYh{|Z$(A;1jq$Mp1n0at~7nV$ZNt3Th``!Poc^!(dJK7i~$ za8=sT-NnYz1z6_)i-^h(&Q1OY4(ETu4D$X*z<=7{KX!0D2>-pADdhMz?~kb|BH>@f z(qE9`?^pNWj*I}`-ykSIxOMm)L3w}`I2cp_z!nJp?YtCNTK+UIg@9Ac@5_5I<78e6 zl>5`X6wErAmm*3%S>6M-^Ygs)-`^w!_B4LrC*le7FG44BK?3DFUTlGD3*=rDMCf=e zj985QPnY({f)ER8DG&}^ zxdZZkn~fsW0QO43ebIkuZ4d5$eplth9(vTLK<9yVU|r`q%^SENg)$Zopg~I1&TudAwtw0k^hv#o^X~yMQNUz`4P% zJ%hNnfb5y$!Vo_$r3D=GBP1d&Lj$qn(g0KWr5FJ6|D|FO<^Ea>V!;BOZu}|`++X=c zqN=5Z4gC0s5mbmD0t`eUUZA2sEp>o&q-<#yOE`GkDJmx`C&$AB15Tv*g#ZVH1q1*e z7__<40XhK1e#nN21HB5?%f`_`2JU7_%OWET z2!rwnLZHAo0hC986=*aYH{kH}|Cwq7DoeV%UHj1!{E|S8fY##&Ta6#c)^KsOa5uMf zp=FUYcX2d>yU_w;LEpv34M^hS;-R$yc!5K03r9~^S~VTkpZfdf>-h-tMw<0^%aMiy z$H|V?KXG`uSX$u#Xa>ar+V=Y&Ek7S0@R0*6+T%1B4>;dPX$UAkkB7=P>2BkA7$_gf)|c{kM=>2v)!F^6>J5 zAME)x4KRv7bOD;>k8*|hf%^r&@t-$Yfg8=RKXBh&2^anuqN8KO-eBf`E|I#iHKA}JBA;9;CUGW0Q^Se!gK=gaN z0OkkG@O~|Wmq+Li8wc)v0kf;$=pYdAiSUblyubYnK{71RGeEh(Tn%{T@`FMVB zD=09K{*=cr_=jx(WA*p?LLvNrvxw5tgAf6op#w!v)}i5CI`89y2Rms1?6}6`uu+ m2MUAn37YZpiT^VN;(_Ms26u5ofE55Uz^!gZMp<<^oc{y+&HZNp diff --git a/doc/specs/bioware/Waypoint_Format.pdf b/doc/specs/bioware/Waypoint_Format.pdf deleted file mode 100644 index 3ff53711a26b334ff10dc6578f8ee4f9aa6c1146..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18108 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

XklkFB-g0?zhN_lZs!}o1F8%vymBU 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 0 then - ( - local tok = tokens[1] - deleteItem tokens 1 - tok - ) - else - ( - undefined - ) - ), - - fn PeekToken = - ( - if tokens.count > 0 then tokens[1] else undefined - ), - - fn ReadPoint3 = - ( - local x = ReadToken() as float; - local y = ReadToken() as float; - local z = ReadToken() as float; - (point3 x y z) - ), - - fn ReadFloat = - ( - (ReadToken() as float) - ), - - fn ReadInteger = - ( - (ReadToken() as integer) - ), - - fn ReadString = - ( - (ReadToken()) - ), - - fn ReadColor = - ( - local r = 255 * (ReadToken() as float); - local g = 255 * (ReadToken() as float); - local b = 255 * (ReadToken() as float); - (color r g b) - ), - - fn ReadRemainingTokens = - ( - local str = "" - while (PeekToken() != undefined) do str += ReadToken() + " " - substring str 1 (str.count-1) - ) -) - -------------- ---- round --- -------------- - -fn round x= -( - local correction = 0 as integer - local tenth = ((mod x 1) * 10) as integer - if (tenth >= 5) then correction = 1 as integer - return (((x as integer) + correction) as integer) -) - ----------------------------- ---- Check if file exists --- ----------------------------- - -fn existFile fname = (getfiles fname).count != 0 - - -------------------------------- ---- Get Next Non-Blank line --- -------------------------------- - -fn getNextNonBlankLine fileHandle= -( - local line = "" - while ((line == "") and (not eof fileHandle)) do - ( - line = trimright (readDelimitedString fileHandle "\n") - ) - return line -) - ------------------------------------ --- UpdateMaterialEditor function -- ------------------------------------ - fn UpdateMaterialEditor MatLib= - ( - if MatLib.count > 0 then - ( - local curLibIndex = 1 - for matIndex in 1 to 24 do - ( - curMat = meditMaterials[matIndex] - if findString curMat.name " - Default" != 0 then - ( - -- Put the model material into the Material Editor - setMeditMaterial matIndex MatLib[curLibIndex] - -- Set the sample object type for this material to a square - setMTLMeditObjType MatLib[curLibIndex] 3 - curLibIndex = curLibIndex + 1 - if curLibIndex > MatLib.count then - ( - exit - ) -- end curLibIndex > MatLib.count check - ) -- end current material slot in editor is a standard material check - ) -- end materials in editor loop - ) -- end MatLib.count > 0 check - ) -- end UpdateMaterialEditor function - ------------------------------------ ---- Create NWN Surface Material --- ------------------------------------ - -fn createNWNWalkMaterial = -( - local SurfaceMatName = #() - local SurfaceMat = #() - local matName = "NWN_WalkMaterial"; - - local newMaterial = sceneMaterials[matName] - if (newMaterial == undefined) then - ( - append SurfaceMatName "Dirt" - append SurfaceMat brown -- Dirt - append SurfaceMatName "Obscuring" - append SurfaceMat white -- Obscuring - append SurfaceMatName "Grass" - append SurfaceMat (color 0 128 0) -- Grass - append SurfaceMatName "Stone" - append SurfaceMat gray -- Stone - append SurfaceMatName "Wood" - append SurfaceMat brown -- Wood - append SurfaceMatName "Water" - append SurfaceMat (color 0 0 192) -- Water - append SurfaceMatName "Nonwalk" - append SurfaceMat (color 180 0 255) -- Nonwalk - append SurfaceMatName "Transparent" - append SurfaceMat black -- Transparent - append SurfaceMatName "Carpet" - append SurfaceMat (color 198 200 0) -- Carpet - append SurfaceMatName "Metal" - append SurfaceMat black -- Metal - append SurfaceMatName "Puddles" - append SurfaceMat (color 0 128 128) -- Puddles - append SurfaceMatName "Swamp" - append SurfaceMat (color 0 64 0) -- Swamp - append SurfaceMatName "Mud" - append SurfaceMat (color 92 52 25) -- Mud - append SurfaceMatName "Leaves" - append SurfaceMat (color 0 192 0) -- Leaves - append SurfaceMatName "Lava" - append SurfaceMat (color 192 0 0) -- Lava - append SurfaceMatName "BottomlessPit" - append SurfaceMat (color 200 99 0) -- BottomlessPit - append SurfaceMatName "DeepWater" - append SurfaceMat (color 0 0 96) -- DeepWater - append SurfaceMatName "Door" - append SurfaceMat yellow -- Door - - newMaterial = multimaterial name:matName numsubs:SurfaceMatName.count - - for i in 1 to SurfaceMatName.count do - ( - newMaterial.names[i] = SurfaceMatName[i] - newMaterial.materialList[i].name = SurfaceMatName[i] - newMaterial.materialList[i].diffuse = SurfaceMat[i] - ) - ) - return newMaterial -) - - -fn addMDLSkin node buf= -( - setCommandPanelTaskMode mode:#modify - modPanel.setCurrentObject node.skin - - local weightStream = buf as stringstream; - local v = 0; - while (not eof weightStream) do - ( - v += 1; -- increment vertex - local tok = Tokenizer() - local weightLine = readDelimitedString weightStream "\n" - tok.SetString(weightLine) - while (tok.PeekToken() != undefined) do - ( - local i; - local b = 0; -- bone index - local boneName = tok.ReadString(); - local weight = tok.ReadFloat(); - for i = 1 to (skinops.GetNumberBones node.skin) do - ( - if ((skinops.GetBoneName node.skin i 0) == boneName) then b = i - ) - if (b == 0) then - ( - local boneNode = getNodeByName boneName - skinops.AddBone node.skin boneNode 0 - b = skinops.GetNumberBones node.skin - ) - local gmax_bug = node.numVerts - skinops.SetVertexWeights (node.skin) v b weight - ) - ) -) - -------------------------- --- ImportFile function -- -------------------------- - -fn ImportNWNmdl pFile importAnims showWarnings= -( - -- Model heirarchy defs - local MDL_DEF = 1 - local MDL_GEOM = 2 - local MDL_ANIM = 3 - local MDL_NOT_IN_MDL = 4 - - local currentPath = getFilenamePath pFile - - -- Open up the file and check to see if its a binary file - local binMdlStream = fopen pFile "rb" - local isNotBinary = ReadByte binMdlStream - fclose binMdlStream - - if (isNotBinary == 0) then - ( - MessageBox("Binary MDL Files not supported. Convert model to ASCII"); - return false - ) - - -- Open up the file - local mdlStream = openFile pFile mode:"r" - - local numAnims = 0 - local animGap = 60 - local lastFrame = 0 - local lineNum = 0 - local mdl_pos = MDL_DEF - local objProps = "" - local quitEarly = false - local in_aabb = false - - try ( - -- Go through the whole mdl file - while not (eof mdlStream) and not quitEarly do - ( - local tok = Tokenizer() - local line = getNextNonBlankLine mdlStream - tok.SetString (line) - lineNum += 1 - - -- Read the data ID tag - local idToken = tok.ReadToken() - if (idToken[1] == "#") then idToken = "#" - if (idToken == "donemodel") then - ( - mdl_pos = MDL_NOT_IN_MDL - quitEarly = true - ) - case mdl_pos of ( - MDL_DEF: - ( - case idToken of - ( - "#": () -- ignore comments - "newmodel": newModelName = tok.ReadString() - "setsupermodel": - ( - tok.ReadToken(); - objProps += "setsupermodel=" + tok.ReadRemainingTokens() + "\r\n" - ) - "beginmodelgeom": mdl_pos = MDL_GEOM - default: objProps += idToken + "=" + tok.ReadRemainingTokens() + "\r\n" - ) - ) - - MDL_GEOM: - ( - if (idToken == "aabb") then - ( - in_aabb = true - idToken = tok.ReadToken() - - ) - if (not (isKindOf idToken float) and - not (isKindOf idToken integer)) then in_aabb = false - if (in_aabb) then - ( - local x = idToken as float - local y = tok.ReadFloat() - local z = tok.ReadFloat() - local bl = point3 x y z - local tr = tok.ReadPoint3() - local leaf = (tok.ReadInteger() != -1) - bl *= 100 - tr *= 100 - local box_pos = (bl+tr)/2 - box_pos.z = bl.z - box_pos += objPos - if (leaf) then - ( - -- local b = box pos:box_pos length:(tr.y-bl.y) width:(tr.x-bl.x) height:(tr.z-bl.z) - ) - ) - case idToken of - ( - "#": () -- ignore comments - "node": -- Node Struct - ( - objType = tok.ReadToken() - objName = tok.ReadToken() - objWireColor = color 255 255 255 - objAmbient = color 0 0 0 - objDiffuse = color 0 0 255 - objSpecular = color 0 0 0 - objSelfIllum = color 0 0 0 - objAlpha = 100 - objShine = 0 - objPos = [0, 0, 0] - objRot = quat 0 0 0 0 - objScale = [1, 1, 1] - objMaterial = undefined - textureName = "" - - numVerts = 0 - verts = #() - numFaces = 0 - faces = #() - numTVerts = 0 - TVerts = #() - TVfaces = #() - smoothGroups = #() - surfacemats = #() - numConstraints = 0 - danglyConstraints = #() - numWeights = 0 - weightBuffer = "" - ) - - "parent": parent = tok.ReadToken() - "position": - ( - objPos = tok.ReadPoint3() - objPos *= 100 - ) - "orientation": - ( - local axis = tok.ReadPoint3() - local angle = RadToDeg (tok.ReadFloat()) - objRot = quat angle axis - ) - "scale": - ( - objScale = [1,1,1] * tok.ReadFloat() - ) - "wirecolor": objWireColor = tok.ReadColor() - "ambient": objAmbient = tok.ReadColor() - "diffuse": objDiffuse = tok.ReadColor() - "specular": objSpecular = tok.ReadColor() - "selfillumcolor": objSelfIllum = tok.ReadColor() - "alpha": objAlpha = 100 * tok.ReadFloat() - - "bitmap": - ( - textureName = tok.ReadToken() - if (textureName == "NULL") then textureName = "" - ) - "verts": -- Verticies Struct - ( - numVerts = tok.ReadInteger() - for i = 1 to numVerts do - ( - tok.SetString (getNextNonBlankLine mdlStream) - lineNum += 1 - local p3 = tok.ReadPoint3() - p3 *= 100 - append verts p3 - ) - ) - "constraints": -- Verticies Struct - ( - numConstraints = tok.ReadInteger() - for i = 1 to numConstraints do - ( - tok.SetString (getNextNonBlankLine mdlStream) - lineNum += 1 - local p1 = tok.ReadFloat() - append danglyConstraints p1 - ) - ) - "weights": -- Weights for skin modifier - ( - numWeights = tok.ReadInteger() - for i = 1 to numWeights do - ( - weightBuffer += (getNextNonBlankLine mdlStream) - weightBuffer += "\n" - ) - ) - "faces": -- Faces Struct - ( - local p1 - local p3 - numFaces = tok.ReadInteger() - for i = 1 to numFaces do - ( - tok.SetString (getNextNonBlankLine mdlStream) - lineNum += 1 - - -- Get the current Face - -- mdl file is zero-based index, max expects - -- one-based index into vert array - p3 = (tok.ReadPoint3() + [1,1,1]) - append faces p3 - - -- Get Smoothing Group - p1 = tok.ReadInteger() - append smoothGroups p1 - - -- Get the current TVface - p3 = (tok.ReadPoint3() + [1,1,1]) - append TVfaces p3 - - -- Get Surface Material - p1 = tok.ReadInteger() - append surfacemats p1 - ) - ) - - "tverts": -- Verticies Struct - ( - numTVerts = tok.ReadInteger() - for i = 1 to numTVerts do - ( - tok.SetString (getNextNonBlankLine mdlStream) - lineNum += 1 - local p3 = tok.ReadPoint3() - append TVerts p3 - ) - ) - - "endnode": -- Done parsing mesh, so create the object - ( - in_aabb = false - local newObj - case of - ( - ((objType == "trimesh") or - (objType == "danglymesh") or - (objType == "skin") or - (objType == "aabb")): - ( - -- Make material, if necessary - local matName = objName - if ((textureName != "") and - (textureName != "NULL") and - (textureName != undefined)) then matName = textureName - objMaterial = sceneMaterials[matName] - if (objType == "aabb") then - ( - objMaterial = createNWNWalkMaterial() - objProps = "" - ) - if (objMaterial == undefined) then - ( - objMaterial = standardmaterial name:matName - objMaterial.shaderType = 1 -- Blinn - objMaterial.ambient = objAmbient - objMaterial.diffuse = objDiffuse - objMaterial.specular = objSpecular - objMaterial.glossiness = objShine - objMaterial.selfillumcolor = objSelfIllum - objMaterial.opacity = objAlpha - if (textureName != "") then - ( - local tgaFilename = currentPath + textureName + ".tga" - local bmpFilename = currentPath + textureName + ".bmp" - if ((existFile tgaFilename) or (existFile bmpFilename)) then - ( - local bmp - if (existFile tgaFilename) then - bmp = openBitMap(tgaFilename) - else - bmp = openBitMap(bmpFilename) - local texMap = BitmapTexture bitmap:bmp name:textureName - objMaterial.mapAmounts[2] = 100 - objMaterial.maps[2] = texmap - objMaterial.mapEnables[2] = true; - showTextureMap objMaterial texmap true - - ) - else - ( - format "Missing texture file: %\r\n" textureName - if (showWarnings) then messagebox ("Missing texture file: " + textureName) - ) - ) - ) - - -- Make an editable mesh - local newObj = mesh name:objName vertices:verts faces:faces wirecolor:objWireColor material:objMaterial materialIDS:surfacemats - - -- Assign smoothing groups - for i = 1 to smoothGroups.count do - setFaceSmoothGroup newObj i smoothGroups[i] - - -- Add texture, if we have them - if numTVerts > 0 do - ( - setNumTVerts newObj numTVerts - for i = 1 to numTVerts do setTVert newObj i TVerts[i] - buildTVFaces newObj - for i = 1 to numFaces do setTVFace newObj i TVfaces[i] - ) - - if numConstraints > 0 then - ( - for i = 1 to numConstraints do - ( - local c = (color danglyConstraints[i] danglyConstraints[i] danglyConstraints[i]) - meshop.SetVertColor newObj 0 i c - ) - ) - - -- Update the mesh - update newObj - - ) --End trimesh case - - (objType == "emitter"): - ( - newObj = Cone_Angle name:objName - objRot += quat 180 (point3 1 0 0) -- NWN Emitters starts in +z, GMax cone manipulator starts in -z - newObj.Angle = 30; - newObj.Distance = 100; - ) - - (objType == "light"): - ( - newObj = omniLight radius:1000 name:objName - objProps = "" - ) - - default: - ( - newObj = dummy name:objName - newObj.boxsize = [5,5,5] - if (newModelName == objName) then - ( - newObj.boxsize = [100,100,5] - objProps += "mdl_root=true\r\n" - ) - ) - ) --End objType case - - local itsParent = for p in objects where p.name == parent collect p - if itsParent != undefined and itsParent.count > 0 then - ( - newObj.parent = itsParent[1] - newObj.scale.controller = bezier_scale() - newObj.position.controller = bezier_position() - newObj.rotation.controller = TCB_rotation() - in coordsys parent - ( - with animate on at time 0 newObj.scale = objScale - with animate on at time 0 newObj.rotation = objRot - with animate on at time 0 newObj.position = objPos - ) - ) - setUserPropBuffer newObj objProps - setUserProp newObj "node_type" objType - objProps = "" - - -- Skin modifier must be created after proper positioning. - if ((objType == "skin") and (numWeights == numVerts)) then - ( - -- Modifier must be applied here, rather than inside - -- the addMDLSkin finction where it should be. - -- I think its a gmax maxscript bug. - addmodifier newObj (skin()) - addMDLSkin newObj weightBuffer - ) - - ) -- End endnode case - - "endmodelgeom": -- End of model geometry - ( - mdl_pos = MDL_ANIM - if (not importAnims) then quitEarly = true; - ) - - default: - ( - objProps += idToken + "=" + tok.ReadRemainingTokens() + "\r\n" - ) - ) -- end iktoken case statement - ) -- End MDL_GEOM case - - MDL_ANIM: - ( - case idToken of - ( - "#": () -- ignore comments - - "newanim": -- New animation - ( - animName = tok.ReadToken() - animRoot = getNodeByName(tok.ReadToken()) - animLength = 0 - firstFrame = lastFrame+animGap - numAnims += 1 - numEvents = 0 - anim_property = "anim_name_" + (numAnims as string) - setUserProp animRoot anim_property animName - anim_property = "anim_firstframe_" + (numAnims as string) - setUserProp animRoot anim_property firstFrame - ) - "length": -- animtion length - ( - animLength = round((tok.ReadToken() as float) * frameRate) as integer - lastFrame = firstFrame + animLength - anim_property = "anim_lastframe_" + (numAnims as string) - setUserProp animRoot anim_property lastFrame - ) - "transtime": -- animtion length - ( - animTrans = (tok.ReadToken() as float) - anim_property = "anim_transtime_" + (numAnims as string) - setUserProp animRoot anim_property animTrans - ) - "event": -- animtion event - ( - numEvents += 1 - local anim_property = "anim_eventframe_" + (numAnims as string) + "_" + (numEvents as string) - local event_frame = round((tok.ReadFloat()*frameRate) + firstFrame) - setUserProp animRoot anim_property event_frame - - anim_property = "anim_eventname_" + (numAnims as string) + "_" + (numEvents as string) - local event_name = tok.ReadString() - setUserProp animRoot anim_property event_name - ) - "node": - ( - objType = tok.ReadString() - objName = tok.ReadString() - - local animObj = getNodeByName(objName) - if (animObj != undefined) then - ( - in coordsys parent - ( - local zeroPos = at time 0 animObj.pos - local zeroRot = at time 0 animObj.rotation - local keytime = 0 - keytime = (firstFrame - 1) - with animate on at time keytime animObj.pos = zeroPos - with animate on at time keytime animObj.rotation = zeroRot - newkey = getKeyIndex animObj.pos.controller keytime - animObj.pos.keys[newkey].inTangentType = #step - animObj.pos.keys[newkey].outTangentType = #step - newkey = getKeyIndex animObj.rotation.controller keytime - animObj.rotation.keys[newkey].continuity = 0 - - keytime = (lastFrame + 1) - with animate on at time keytime animObj.pos = zeroPos - with animate on at time keytime animObj.rotation = zeroRot - newkey = getKeyIndex animObj.pos.controller keytime - animObj.pos.keys[newkey].inTangentType = #step - animObj.pos.keys[newkey].outTangentType = #step - newkey = getKeyIndex animObj.rotation.controller keytime - animObj.rotation.keys[newkey].continuity = 0 - ) - ) - ) - "positionkey": - ( - local newkey - local animObj = getNodeByName(objName) - if (animObj != undefined) then - ( - local keyCount = undefined; - if (tok.PeekToken() != undefined) then keyCount = tok.ReadInteger() - local originalObjPos - in coordsys parent - ( - at time 0 originalObjPos = animObj.pos - tok.SetString (getNextNonBlankLine mdlStream) - while ((tok.PeekToken() != "endlist") and (keyCount != 0)) do - ( - lineNum += 1 - local keytime = round(firstFrame + (frameRate*tok.ReadFloat())) - local p3 = tok.ReadPoint3() - p3 *= 100 - with animate on at time keytime animObj.pos = p3 - newkey = getKeyIndex animObj.pos.controller keytime - animObj.pos.keys[newkey].inTangentType = #linear - animObj.pos.keys[newkey].outTangentType = #linear - tok.SetString (getNextNonBlankLine mdlStream) - if (keyCount != undefined) then keyCount -= 1 - ) - ) - ) - ) - "orientationkey": - ( - local keytime - local axis - local angle - local objRot - local newKey - local originalObjRot - local keyCount = undefined - if (tok.PeekToken() != undefined) then keyCount = tok.ReadInteger() - local animObj = getNodeByName(objName) - if (animObj != undefined) then - ( - in coordsys parent - ( - tok.SetString (getNextNonBlankLine mdlStream) - while ((tok.PeekToken() != "endlist") and (keyCount != 0)) do - ( - lineNum += 1 - keytime = round(firstFrame + (frameRate*tok.ReadFloat())) - axis = tok.ReadPoint3() - angle = RadToDeg (tok.ReadFloat()) - objRot = quat angle axis - local existingPosKey = getKeyIndex animObj.pos.controller keytime - local existingPos - if (existingPosKey > 0) then existingPos = animObj.pos.keys[existingPosKey].value - with animate on at time keytime animObj.rotation = objRot - newkey = getKeyIndex animObj.rotation.controller keytime - animObj.rotation.keys[newkey].continuity = 0 - if (existingPosKey == 0) then - ( - local newPosKey = getKeyIndex animObj.pos.controller keytime - if (newPosKey != 0) then deleteKey animObj.pos.controller newPosKey - ) - else - ( - animObj.pos.keys[existingPosKey].value = existingPos - ) - - tok.SetString (getNextNonBlankLine mdlStream) - if (keyCount != undefined) then keyCount -= 1 - ) - ) - ) - ) - "doneanim": () - default: () - ) -- end idtoken case - ) -- End MDL_ANIM case - ) -- end mdl_pos case statement - ) -- end while not eof - lastFrame += animGap - if (importAnims) then animationRange = (interval 0 lastFrame) - ) - catch - ( - --messageBox ("NWN importer Script Error reading mdl file at line:" + lineNum as string) - close mdlStream - throw - ) - close mdlStream -) - - ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ ---- ---- Export routines ---- ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ - - ------------------------- ---- WriteTrimeshNode --- ------------------------- - -fn WriteTrimeshNode node= -( - local isAABB = ((getUserProp node "node_type" == "aabb") or - (getUserProp node "node_type" == "pwk_aabb")) - - local isSkin = (node.modifiers["skin"] != undefined) - - if (isAABB) then - ( - format " diffuse 0.8000 0.8000 0.8000\r\n" - format " ambient 0.2000 0.2000 0.2000\r\n" - format " specular 0.0000 0.0000 0.0000\r\n" - format " render 0\r\n" - format " bitmap NULL\r\n" - ) - if ((node.material != undefined) and (not isAABB)) then - ( - local r = node.material.diffuse.r / 255.0 - local g = node.material.diffuse.g / 255.0 - local b = node.material.diffuse.b / 255.0 - format " diffuse % % %\r\n" r g b - - r = node.material.ambient.r / 255.0 - g = node.material.ambient.g / 255.0 - b = node.material.ambient.b / 255.0 - format " ambient % % %\r\n" r g b - - r = node.material.specular.r / 255.0 - g = node.material.specular.g / 255.0 - b = node.material.specular.b / 255.0 - format " specular % % %\r\n" r g b - - r = node.material.selfillumcolor.r / 255.0 - g = node.material.selfillumcolor.g / 255.0 - b = node.material.selfillumcolor.b / 255.0 - format " selfillumcolor % % %\r\n" r g b - - local a = node.material.opacity / 100.0 - format " alpha %\r\n" a - - if ((node.material.mapEnables[2]) and - (getUserProp node "nobitmap" != 1)) then - ( - local fullpath = node.material.maps[2].filename - local path_parts = filterString fullpath "\\" - local filename = path_parts[path_parts.count] - if ((findString filename ".") >= 1) then - filename = substring filename 1 ((findString filename ".")-1) - format " bitmap %\r\n" filename - ) - ) - - format " verts %\r\n" node.mesh.numverts - for i = 1 to node.mesh.numverts do - ( - in coordsys parent - ( - v = getvert node.mesh i - v *= 0.01 - ) - format " % % %\r\n" v.x v.y v.z - ) - - format " faces %\r\n" node.mesh.numfaces - for i = 1 to node.mesh.numfaces do - ( - v = getFace node.mesh i - smooth = getFaceSmoothGroup node.mesh i - matid = getFaceMatID node.mesh i - - local x = v.x as Integer - local y = v.y as Integer - local z = v.z as Integer - x -= 1 -- mdl file is zero-based index, max expects one-based index into vert array - y -= 1 -- - z -= 1 -- - format " % % % % " x y z smooth - - if (node.mesh.numtverts > 0) then - ( - tv = getTVFace node.mesh i - x = tv.x as Integer - y = tv.y as Integer - z = tv.z as Integer - x -= 1 -- mdl file is zero-based index, max expects one-based index into vert array - y -= 1 -- - z -= 1 -- - ) - else - ( - x = 0 - y = 0 - z = 0 - ) - format "% % % %\r\n" x y z matid - ) - - if (node.mesh.numtverts > 0) then - ( - format " tverts %\r\n" node.mesh.numtverts - for i = 1 to node.mesh.numtverts do - ( - v = gettvert node.mesh i - format " % % 0\r\n" v.x v.y - ) - ) - - if (getuserprop node "node_type" == "danglymesh") then - ( - format " danglymesh 1\r\n" - format "# Fake period, tightness and displacement parameters\r\n" - format " period 6.000000\r\n" - format " tightness 3.000000\r\n" - format " displacement 0.025000\r\n" - format " constraints %\r\n" node.numverts - for i = 1 to node.numverts do - ( - local c = GetVertColor node i - format " %\r\n" c.r - ) - ) - - if (isSkin) then - ( - setCommandPanelTaskMode mode:#modify - modPanel.setCurrentObject node.skin - - format " weights %\r\n" node.numVerts - local v - - local gmax_bug = node.numVerts - for v = 1 to (skinops.GetNumberVertices node.skin) do - ( - local b - format " " - for b = 1 to (skinops.getVertexWeightCount node.skin v) do - ( - local bone_id = skinops.getVertexWeightBoneID node.skin v b - local bone_name = skinops.getBoneName node.skin bone_id 0 - local weight = skinops.getVertexWeight node.skin v b - format "% % " bone_name weight - ) - if ((skinops.getVertexWeightCount node.skin v) == 0) then - ( - local bone_name = skinops.getBoneName node.skin 1 0 - format "% % " bone_name 0 - ) - format "\r\n" - ) - ) -) - - -------------------------- ---- BuildAABBTreeNode --- -------------------------- - -fn BuildAABBTreeNode node facemids facelist level= -( - if (facelist.count == 0) then return 0 - if (level > 10) then - ( - MessageBox("AABB Generation: Maximum recursion level reached. Check for duplicate verticies and/or faces.") - return 0 - ) - local bot_left = point3 100000.0 100000.0 100000.0 - local top_right = point3 -100000.0 -100000.0 -100000.0 - local midpoint_average = point3 0 0 0 - - for i=1 to facelist.count do - ( - local v3 = getface node.mesh facelist[i] - local p1 = getvert node.mesh v3.x - local p2 = getvert node.mesh v3.y - local p3 = getvert node.mesh v3.z - - if (p1.x < bot_left.x) then bot_left.x = p1.x - if (p1.y < bot_left.y) then bot_left.y = p1.y - if (p1.z < bot_left.z) then bot_left.z = p1.z - - if (p2.x < bot_left.x) then bot_left.x = p2.x - if (p2.y < bot_left.y) then bot_left.y = p2.y - if (p2.z < bot_left.z) then bot_left.z = p2.z - - if (p3.x < bot_left.x) then bot_left.x = p3.x - if (p3.y < bot_left.y) then bot_left.y = p3.y - if (p3.z < bot_left.z) then bot_left.z = p3.z - - if (p1.x > top_right.x) then top_right.x = p1.x - if (p1.y > top_right.y) then top_right.y = p1.y - if (p1.z > top_right.z) then top_right.z = p1.z - - if (p2.x > top_right.x) then top_right.x = p2.x - if (p2.y > top_right.y) then top_right.y = p2.y - if (p2.z > top_right.z) then top_right.z = p2.z - - if (p3.x > top_right.x) then top_right.x = p3.x - if (p3.y > top_right.y) then top_right.y = p3.y - if (p3.z > top_right.z) then top_right.z = p3.z - - midpoint_average += facemids[facelist[i]] - ) - - midpoint_average /= facelist.count - - local box_pos = (bot_left+top_right)/2 - --- format "DEBUG: % % \r\n" bot_left top_right - box_pos.z = bot_left.z - in coordsys parent ( box_pos += node.pos) - - local bl = bot_left / 100 - local tr = top_right / 100 - format " % % % % % %" bl.x bl.y bl.z tr.x tr.y tr.z - if (facelist.count == 1) then - ( --- display box --- local b = box pos:box_pos length:(top_right.y-bot_left.y) width:(top_right.x-bot_left.x) height:(top_right.z-bot_left.z) --- sphere pos:box_pos radius:10 - - format " %\r\n" (facelist[1]-1) - ) - else - ( - format " -1\r\n" - local bb_size = top_right - bot_left --- Axis 1=x 2=y 3=z - local axis = 1 - if (bb_size.y > bb_size.x) then axis = 2 - if (bb_size.z > bb_size.y) then axis = 3 - - -- Check exception case, where all points are coplanar with the axis-aligned split plane - local change_axis = true - for i=1 to facelist.count do - ( - p1 = facemids[facelist[i]] - case axis of - ( - 1: change_axis = change_axis and (p1.x == midpoint_average.x) - 2: change_axis = change_axis and (p1.y == midpoint_average.y) - 3: change_axis = change_axis and (p1.z == midpoint_average.z) - ) --- format "DEBUG: % % \r\n" p1 midpoint_average - ) - if (change_axis) then - ( - axis += 1 - if (axis > 3) then axis = 1 - ) - - local leftside = true - local good_split = false - local leftlist = #() - local rightlist = #() - while (not good_split) do - ( - leftlist = #() - rightlist = #() - for i=1 to facelist.count do - ( - p1 = facemids[facelist[i]] --- format "DEBUG: % % \r\n" p1 axis - case axis of - ( - 1: leftside = (p1.x < midpoint_average.x) - 2: leftside = (p1.y < midpoint_average.y) - 3: leftside = (p1.z < midpoint_average.z) - ) - if (leftside) then - append leftlist facelist[i] - else - append rightlist facelist[i] - ) - if ((leftlist.count > 0) and (rightlist.count >0)) then - ( - good_split = true - ) - else - ( - axis += 1 - if (axis > 3) then axis = 1 - ) - ) - - BuildAABBTreeNode node facemids leftlist (level+1) - BuildAABBTreeNode node facemids rightlist (level+1) - ) -) - - ---------------------- ---- WriteAABBTree --- ---------------------- - -fn WriteAABBTree node= -( - local facemids =#() - local facelist = #() - if ((mod node.mesh.numfaces 2) == 1) then - ( - MessageBox("Odd number of faces in AABB tree. Expect problems."); - ) - for i=1 to node.mesh.numfaces do - ( - v3 = getface node.mesh i - p1 = getvert node.mesh v3.x - p2 = getvert node.mesh v3.y - p3 = getvert node.mesh v3.z - mid = (p1+p2+p3) / 3 - append faceMids mid - append facelist i - ) - - format " aabb " -- no newline here, NWN chokes if the data doesn't start on the same line - BuildAABBTreeNode node faceMids facelist 0 -) - - ------------------------------- ---- WriteNWNRootProperties --- ------------------------------- - -fn WriteNWNRootProperties node= -( - local dep = getUserProp node "filedependancy" - if (dep == undefined) then dep = "Unknown" - format "filedependancy %\r\n" dep - format "newmodel %\r\n" node.name - format "setsupermodel % %\r\n" node.name (getUserProp node "setsupermodel") - format "classification %\r\n" (getUserProp node "classification") - format "setanimationscale %\r\n" (getUserProp node "setanimationscale") - format "beginmodelgeom %\r\n" node.name -) - -------------------------- ---- DumpNWNProperties --- -------------------------- - -fn DumpNWNProperties node= -( - local line - local val - local buffer = (getUserPropBuffer(node) + "\r\n") as stringstream - while (not eof buffer) do - ( - line = trimright (readline buffer) - if (line != "") then - ( - val = filterstring line "=" - val[1] = trimright(trimleft(val[1])) - if ((val[1] != "node_type") and - (val[1] != "mdl_root") and - (val[1] != "number_animations") and - (val[1] != "StartFrame") and - (val[1] != "EndFrame") and - (val[1] != "danglymesh") and - (val[1] != "nobitmap") and - ((findString val[1] "anim") != 1)) then - format " % %\r\n" val[1] val[2] - ) - ) -) - - --------------------- ---- ExportNWNmdl --- --------------------- - -fn ExportNWNmdl node only_nodetype children= -( - local isMesh = false - local isEmitter = false - - if (getUserProp node "node_type" == undefined) then - ( - setUserProp node "node_type" "dummy" - if (canConvertTo node Editable_Mesh) then setUserProp node "node_type" "trimesh" - if (classOf node == Cone_Angle) then setUserProp node "node_type" "emitter" - if (classOf(node.baseobject) == OmniLight) then setUserProp node "node_type" "light" - ) - if (node.modifiers["skin"] != undefined) then setUserProp node "node_type" "skin" - - local node_type = getuserprop node "node_type" - - if ((node_type == "trimesh") or - (node_type == "danglymesh") or - (node_type == "skin") or - (node_type == "aabb") or - (node_type == "pwk_aabb")) then isMesh = true - if (node_type == "emitter") then isEmitter = true - - if ((node_type == only_nodetype) or ((only_nodetype == "") and - (node_type != "pwk_aabb") and - (node_type != "pwk_use_dummy"))) then - ( - local node_name = node.name - local parent_name - if (node_type == "pwk_use_dummy") then - ( - node_type = "dummy" - node_name = (substring node.parent.name 5 30) + "_pwk_" + node.name - parent_name = node.parent.name - parent_name += "_pwk" - ) - if (node_type == "pwk_aabb") then - ( - node_type = "trimesh" - node_name = node.parent.name - node_name += "_wg" - parent_name = node.parent.name - parent_name += "_pwk" - ) - format "node % %\r\n" node_type node_name - if (node.parent != undefined) then - ( - if (parent_name == undefined) then parent_name = node.parent.name - format " parent %\r\n" parent_name - in coordsys parent - ( - local objScale = at time 0 node.scale; - local objPos = at time 0 node.pos; - local objRot = at time 0 node.rotation; - if (isEmitter) then objRot += quat -180 (point3 1 0 0) - local rotVector = normalize (point3 -objRot.x -objRot.y -objRot.z) - local angle = -degToRad(objRot.angle) - objPos *= 0.01 - - format " position % % %\r\n" objPos.x objPos.y objPos.z - format " orientation % % % %\r\n" rotVector.x rotVector.y rotVector.z angle - format " scale %\r\n" objScale.x - ) - DumpNWNProperties node - ) - else - ( - format " parent NULL\r\n" - ) - - if (isMesh) then WriteTrimeshNode(node) - if (node_type == "aabb") then WriteAABBTree node - if (node_type == "light") then - ( - format "# Fake light data\r\n" - format " ambientonly 0\r\n" - format " shadow 0\r\n" - format " isdynamic 0\r\n" - format " affectdynamic 1\r\n" - format " lightpriority 5\r\n" - format " fadingLight 1\r\n" - format " flareradius 0\r\n" - format " radius 14\r\n" - format " multiplier 1\r\n" - format " color 0 0 0 \r\n" - ) - format("endnode\r\n"); - ) - - local skinnodes = #() - if (children) then - ( - for c in node.children do - ( - if (c.modifiers["skin"] == undefined) then - ExportNWNmdl c only_nodetype children - else - append skinnodes c - ) - ) - - for c in skinnodes do ExportNWNmdl c only_nodetype children -) - ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ ---- ---- Animation export routines ---- ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ - -fn ExportAnimKeys node firstframe lastframe= -( - if (getUserProp node "node_type" == undefined) then - ( - setUserProp node "node_type" "dummy" - if (canConvertTo node Editable_Mesh) then setUserProp node "node_type" "trimesh" - if (classOf node == Cone_Angle) then setUserProp node "node_type" "emitter" - if (classOf(node.baseobject) == OmniLight) then setUserProp node "node_type" "light" - ) - local node_type = getuserprop node "node_type" - - format " node % %\r\n" node_type node.name - if (node.parent != undefined) then - format " parent %\r\n" node.parent.name - else - format " parent NULL\r\n" - - local t - local keycount = 0; - for t = firstframe to lastframe do - ( - if ((getKeyIndex node.pos.controller t) > 0) then - ( - if (keycount == 0) then format " positionkey\r\n" - keycount += 1; - at time t in coordsys parent objPos = node.pos * 0.01 - key_time = ((t-firstframe) as float) / (frameRate as float); - format " % % % %\r\n" key_time objPos.x objPos.y objPos.z - ) - ) - if (keycount > 0) then format " endlist\r\n" - - keycount = 0; - for t = firstframe to lastframe do - ( - if ((getKeyIndex node.rotation.controller t) > 0) then - ( - if (keycount == 0) then format " orientationkey\r\n" - keycount += 1; - local objRot - at time t in coordsys parent objRot = node.rotation; - local rotVector = normalize (point3 -objRot.x -objRot.y -objRot.z) - local angle = -degToRad(objRot.angle) - key_time = ((t-firstframe) as float) / (frameRate as float); - format " % % % % %\r\n" key_time rotVector.x rotVector.y rotVector.z angle - ) - ) - if (keycount > 0) then format " endlist\r\n" - - format(" endnode\r\n") - - for c in node.children do ExportAnimKeys c firstframe lastframe -) - -fn ExportAnimEvents node anim_number firstframe= -( - local user_props = getUserPropBuffer node as stringstream - local event_prefix = "anim_eventname_" + (anim_number as string) - while not eof user_props do - ( - local prop = readDelimitedString user_props "\n" - if ((findString prop (event_prefix + "_")) == 1) then - ( - local event_name = trimleft (trimright (substring prop ((findstring prop "=")+1) -1)) - if (event_name != "") then - ( - local event_number = trimright(substring prop ((event_prefix.count)+2) ((findstring prop "=")-(event_prefix.count)-2)) - local event_prop = "anim_eventframe_" + (anim_number as string) + "_" + (event_number as string) - event_time = (getUserProp node event_prop) as float - event_time = ((event_time - firstframe) as float) / (frameRate as float) - format " event % %\r\n" event_time event_name - ) - ) - ) -) - -fn ExportAnimByNumber node anim_number= -( - local name = getUserProp node ("anim_name_" + (anim_number as string)) - local firstframe = getUserProp node ("anim_firstframe_" + (anim_number as string)) - local lastframe = getUserProp node ("anim_lastframe_" + (anim_number as string)) - local transtime = getUserProp node ("anim_transtime_" + (anim_number as string)) - local anim_length = ((lastframe - firstframe) as float) / (frameRate as float); - format "\r\n" - format "newanim % %\r\n" name node.name - format " length %\r\n" anim_length - format " transtime %\r\n" transtime - format " animroot %\r\n" node.name - ExportAnimEvents node anim_number firstframe - ExportAnimKeys node firstframe lastframe - format "doneanim % %\r\n" name node.name - format "\r\n" -) - -fn ExportAnims node export_anim_name= -( - if (node == undefined) then return - local all_anims - all_anims = #() - local user_props = getUserPropBuffer node as stringstream - while not eof user_props do - ( - local prop = readDelimitedString user_props "\n" - if ((findString prop "anim_name") == 1) then - ( - local anim_name = trimleft (trimright (substring prop ((findstring prop "=")+1) -1)) - if (anim_name != "") then - ( - local anim_number = substring prop 11 ((findstring prop "=")-11) - anim_number = (trimright anim_number) as integer - if ((export_anim_name == "") or (export_anim_name == anim_name)) then - append all_anims anim_number - ) - ) - ) - for anim_number in all_anims do - ( - ExportAnimByNumber node anim_number - ) -) - -------------------------- ---- ShowDanglyConstraints --- -------------------------- - -fn ShowDanglyConstraints node onoff = -( - if (node != undefined) then - ( - if ((classof(node) == Editable_Mesh) and ((GetUserProp node "node_type") == "danglymesh")) then - node.showVertexColors = onoff - if (onoff) then - lastDanglyName = node.name - else - lastDanglyName = undefined - ) -) - ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ ---- ---- Rollout definitions ---- ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ - -rollout ImportRollout "Import MDL" width:160 height:192 -( - groupBox igrp4 "Filename" pos:[8,8] width:144 height:72 - editText import_filename_edit "" pos:[16,24] width:128 height:16 - button import_browse_button "Browse" pos:[72,48] width:70 height:24 - groupBox igrp5 "Options" pos:[8,80] width:144 height:64 - checkbox anims_checkbox "Import animations" pos:[16,104] width:128 height:16 - checkbox warn_checkbox "Show warnings" pos:[16,120] width:128 height:16 - button import_button "Import" pos:[32,152] width:104 height:24 - - on import_browse_button pressed do - ( - local filename = getOpenFileName caption:"Import mdl" types:"NWN mdl (*.mdl)|*.mdl|NWN ASCII Model (*.ascii)|*.ascii|All Files (*.*)|*.*|" - if (filename == undefined) then filename = "" - import_filename_edit.text = filename - ) - - on import_button pressed do - ( - --Open up a dialog box - -- local mdlFileName = "c:\\windows\\desktop\\nwn\\" + import_filename_edit.text - local mdlFileName = import_filename_edit.text - - if (not existFile mdlFileName) then - ( - MessageBox ("Model not imported. " + mdlFileName + " does not exist.") title:"File does not exist" - ) - else - ( - clearListener() - format "Importing %\r\n" mdlFileName - - ImportNWNmdl mdlFileName anims_checkbox.checked warn_checkbox.checked - - -- Redraw gmax viewports - clearSelection() - max tool zoomextents all - max views redraw - - format "Finished.\n\r\n" - ) - ) -) - -rollout ExportRollout "Export" width:160 height:104 rolledUp:true -( - button export_mdl_button "MDL" pos:[8,8] width:64 height:24 - button export_node_button "Node" pos:[88,8] width:64 height:24 - button export_wok_button "WOK" pos:[8,40] width:64 height:24 - button export_pwk_button "PWK" pos:[8,72] width:64 height:24 - dropDownList anim_combo "Animations to Export" pos:[8,112] width:144 height:40 - button export_anim_button "Anim" pos:[88,40] width:64 height:24 - -on export_mdl_button pressed do -( -local node = selection[1] -clearListener() -format "# Exported from Wayland's NWN Maxscript v0.3b at %\r\n" localtime -format "# mdl file\r\n" -format "#\r\n" -if ((getUserProp node "mdl_root") == true) then -( -WriteNWNRootProperties node -) -local anim_name = anim_combo.text -ExportNWNmdl node "" true -if ((getUserProp node "mdl_root") == true) then -( -format "endmodelgeom %\r\n" node.name -if (anim_name != "") then ExportAnims node anim_name -format "donemodel %\r\n" node.name -) -clearSelection() -select node -) -on export_mdl_button pressed do -( -local node = selection[1] -clearListener() -format "# Exported from Wayland's NWN Maxscript v0.3b at %\r\n" localtime -format "# mdl file\r\n" -format "#\r\n" -if ((getUserProp node "mdl_root") == true) then -( -WriteNWNRootProperties node -) -local anim_name = anim_combo.text -ExportNWNmdl node "" true -if ((getUserProp node "mdl_root") == true) then -( -format "endmodelgeom %\r\n" node.name -if (anim_name != "") then ExportAnims node anim_name -format "donemodel %\r\n" node.name -) -clearSelection() -select node -) -on export_mdl_button pressed do -( -local node = selection[1] -clearListener() -format "# Exported from Wayland's NWN Maxscript v0.3b at %\r\n" localtime -format "# mdl file\r\n" -format "#\r\n" -if ((getUserProp node "mdl_root") == true) then -( -WriteNWNRootProperties node -) -local anim_name = anim_combo.text -ExportNWNmdl node "" true -if ((getUserProp node "mdl_root") == true) then -( -format "endmodelgeom %\r\n" node.name -if (anim_name != "") then ExportAnims node anim_name -format "donemodel %\r\n" node.name -) -clearSelection() -select node -) - - - on export_node_button pressed do - ( - local node = selection[1] - clearListener() - format "# Exported from Wayland's NWN Maxscript v0.3b at %\r\n" localtime - format "# mdl file\r\n" - format "#\r\n" - ExportNWNmdl node "" false - clearSelection() - select node - ) - - on export_anim_button pressed do - ( - local node = selection[1] - clearListener() - format "# Exported from Wayland's NWN Maxscript v0.3b at %\r\n" localtime - format "# mdl file\r\n" - format "#\r\n" - local anim_name = anim_combo.text - if (anim_name != "") then ExportAnims node anim_name - clearSelection() - select node - ) - - on export_wok_button pressed do - ( - clearListener() - format "# Exported from Wayland's NWN Maxscript v0.3b at %\r\n" localtime - format "# wok file\r\n" - format "#\r\n" - if ((getUserProp selection[1] "mdl_root") == true) then - ( - format "beginwalkmeshgeom %\r\n" selection[1].name - ExportNWNmdl selection[1] "aabb" true - format "endwalkmeshgeom %\r\n" selection[1].name - ) - else - ( - format "beginwalkmeshgeom %\r\n" selection[1].parent.name - ExportNWNmdl selection[1] "aabb" true - format "endwalkmeshgeom %\r\n" selection[1].parent.name - ) - ) - - on export_pwk_button pressed do - ( - local node = selection[1] - if ((node.name.count < 7) or (node.name[4] != "_")) then - MessageBox("You should follow the placeable naming convention of \"xxx_xxx\" or \"xxx_xxxx\"") - clearListener() - format "# Exported from Wayland's NWN Maxscript v0.3b at %\r\n" localtime - format "# pwk file\r\n" - format "#\r\n" - ExportNWNmdl node "pwk_aabb" true - ExportNWNmdl node "pwk_use_dummy" true - ) - - on ExportRollout open do callbacks.addscript #selectionSetChanged "selChanged()" id:#waysNWNtool - on ExportRollout close do callbacks.removeScripts #selectionSetChanged id:#waysNWNtool -) - -rollout RootPropRollout "Model Properties" width:160 height:216 rolledUp:true -( - button make_root_button "Create \"Model Base\"" pos:[8,8] width:144 height:24 - groupBox rgrp3 "Model Properties" pos:[8,40] width:144 height:160 - editText supermodel_edit "" pos:[56,56] width:88 height:16 - label rlbl2 "Super" pos:[16,56] width:32 height:16 - radioButtons classification_radio "" pos:[56,80] width:69 height:96 labels:#("Character", "Tile", "Door", "FX", "Other") columns:1 - label rlbl3 "Class" pos:[16,80] width:32 height:16 - label rlbl4 "Animation Scale" pos:[16,166] width:80 height:15 - spinner anim_scale_spinner "" pos:[96,166] width:48 height:16 range:[0,100,0] scale:0.01 - - on make_root_button pressed do - ( - if (selection.count == 0) then - ( - local new_dummy = dummy name:"unnamed model" boxSize:[100,100,5] pos:[0,0,0] - select new_dummy - ) - selection[1].boxSize = [100,100,5] - setUserProp selection[1] "mdl_root" "true" - setUserProp selection[1] "setsupermodel" "NULL" - setUserProp selection[1] "classification" "Character" - setUserProp selection[1] "setanimationscale" "1.0" - -- - -- Work around until I can figure out how to get around this forward reference restriction - -- UpdateRootPropertiesUI selection[1] - local sm = getuserprop selection[1] "setsupermodel" - local mdl_class = getuserprop selection[1] "classification" - local anim_scale = getuserprop selection[1] "setanimationscale" - if (sm == undefined) then sm = "NULL" - if (mdl_class == undefined) then mdl_class = 1 - if (anim_scale == undefined) then anim_scale = 1 - RootPropRollout.make_root_button.enabled = false - RootPropRollout.supermodel_edit.enabled = true - RootPropRollout.supermodel_edit.text = sm - RootPropRollout.classification_radio.enabled = true - case (mdl_class) of - ( - "Character": RootPropRollout.classification_radio.state = 1 - "Tile": RootPropRollout.classification_radio.state = 2 - "Door": RootPropRollout.classification_radio.state = 3 - "FX": RootPropRollout.classification_radio.state = 4 - "Other": RootPropRollout.classification_radio.state = 5 - ) - RootPropRollout.anim_scale_spinner.enabled = true - RootPropRollout.anim_scale_spinner.value = anim_scale - select selection[1] - ) - on supermodel_edit entered newText do setUserProp selection[1] "setsupermodel" newText - on classification_radio changed newState do - ( - case newState of - ( - 1: setUserProp selection[1] "classification" "Character" - 2: setUserProp selection[1] "classification" "Tile" - 3: setUserProp selection[1] "classification" "Door" - 4: setUserProp selection[1] "classification" "FX" - 5: setUserProp selection[1] "classification" "Other" - ) - ) - on anim_scale_spinner changed newVal do - ( - setUserProp selection[1] "setanimationscale" newVal - ) -) - -rollout GeometryPropRollout "Node Properties" width:160 height:136 rolledUp:true -( - radioButtons geom_type_radio "" pos:[24,32] width:98 height:64 enabled:true labels:#("Trimesh", "Danglymesh", "AABB", "PWK walkmesh") - checkButton show_dangle_checkbutton "Danglymesh Constraints" pos:[8,440] width:144 height:24 - groupBox grp1 "Node Type" pos:[8,8] width:144 height:128 - groupBox grp2 "Render Options" pos:[8,144] width:144 height:96 - checkbox render_checkbox "Render" pos:[24,168] width:96 height:16 - checkbox shadow_checkbox "Shadow" pos:[24,184] width:96 height:16 - checkbox beaming_checkbox "Beaming" pos:[24,200] width:104 height:16 - groupBox grp3 "Tile Fade" pos:[8,248] width:144 height:96 - radioButtons tile_fade_radio "" pos:[24,272] width:109 height:64 labels:#("Don't Fade", "Fade", "Horizontal Blocker", "Vertical Blocker") - groupBox grp4 "Alpha Channel Options" pos:[8,352] width:144 height:80 - radioButtons alpha_radio "" pos:[24,376] width:112 height:48 labels:#("Don't Use", "Transparency Map", "Reflection Map") - radioButtons dummy_type_radio "" pos:[24,96] width:104 height:32 labels:#("Dummy", "PWK use dummy") - checkbox no_bitmap_checkbox "Don't export bitmap" pos:[24,216] width:120 height:16 - - on geom_type_radio changed newState do - ( - local node = selection[1] - case newState of - ( - 1: - ( - setUserProp node "node_type" "trimesh" - node.material = sceneMaterials[node.name] - ) - - 2: - ( - if (getUserProp node "danglymesh" != "1") then - ( - for i = 1 to node.mesh.numverts do - ( - meshop.setVertColor node.mesh 0 i (color 0 0 0) - ) - update node.mesh - ) - setUserProp node "node_type" "danglymesh" - setUserProp node "danglymesh" "1" - node.material = sceneMaterials[node.name] - ) - - 3: - ( - setUserProp node "node_type" "aabb" - node.material = createNWNWalkMaterial() - ) - 4: - ( - setUserProp node "node_type" "pwk_aabb" - node.material = createNWNWalkMaterial() - ) - ) - ) - - on dummy_type_radio changed newState do - ( - local node = selection[1] - node.boxsize = [5, 5, 5] - case newState of - ( - 1: - ( - setUserProp node "node_type" "dummy" - node.material = sceneMaterials[node.name] - ) - - 2: - ( - SetUserProp node "node_type" "pwk_use_dummy" - - local use_count = 1 - for i in objects do - ( - if (((findString i.name "use") == 1) and (i != node)) then use_count += 1 - ) - node.name = "use" - if (use_count < 10) then node.name += "0" - node.name += use_count as string - ) - ) - ) - - on render_checkbox changed curSetting do - ( - local node = selection[1] - if (curSetting) then - setUserProp node "render" "1" - else - setUserProp node "render" "0" - ) - - on shadow_checkbox changed curSetting do - ( - local node = selection[1] - if (curSetting) then - setUserProp node "shadow" "1" - else - setUserProp node "shadow" "0" - ) - - on beaming_checkbox changed curSetting do - ( - local node = selection[1] - if (curSetting) then - setUserProp node "beaming" "1" - else - setUserProp node "beaming" "0" - ) - - on no_bitmap_checkbox changed curSetting do - ( - local node = selection[1] - if (curSetting) then - setUserProp node "nobitmap" "1" - else - setUserProp node "nobitmap" "0" - ) - - on tile_fade_radio changed newState do - ( - local node = selection[1] - case newState of - ( - 1: setUserProp node "tilefade" "0" - 2: setUserProp node "tilefade" "1" - 3: setUserProp node "tilefade" "2" - 4: setUserProp node "tilefade" "4" - ) - ) - - on alpha_radio changed newState do - ( - local node = selection[1] - case newState of - ( - 1: - ( - setUserProp node "shininess" "0" - setUserProp node "transparencyhint" "0" - ) - 2: - ( - setUserProp node "shininess" "0" - setUserProp node "transparencyhint" "1" - ) - 3: - ( - setUserProp node "shininess" "1" - setUserProp node "transparencyhint" "0" - ) - ) - ) - - on show_dangle_checkbutton changed curSetting do - ( - ShowDanglyConstraints selection[1] curSetting - ) -) - -fn FindAnimByName lookup_name= -( - if ((lookup_name == undefined) or (AnimRootNodeName == undefined)) then return undefined - local node = getNodeByName(AnimRootNodeName) - if node == undefined then return undefined - - local user_props = getUserPropBuffer(selection[1]) as stringstream - while not eof user_props do - ( - local prop = readDelimitedString user_props "\n" - if ((findString prop "anim_name") == 1) then - ( - local anim_name = trimleft (trimright (substring prop ((findstring prop "=")+1) -1)) - if (anim_name == lookup_name) then - ( - local anim_number = substring prop 11 ((findstring prop "=")-11) - anim_number = trimright anim_number - return (anim_number as integer) - ) - ) - ) - return undefined -) - -fn FindFreeAnimNumber= -( - local i = 0 - local node = getNodeByName(AnimRootNodeName) - while (true) do - ( - i += 1 - local prop_name = "anim_name_" + (i as string) - local anim_name = getUserProp node prop_name - if ((anim_name == undefined) or (anim_name == "")) then return i - ) -) - -fn FindFreeEventNumber= -( - local i = 0 - local node = getNodeByName(AnimRootNodeName) - while (true) do - ( - i += 1 - local prop_name = "anim_eventname_" + (LastAnimNumber as string) + "_" + (i as string) - local event_name = getUserProp node prop_name - if ((event_name == undefined) or (event_name == "")) then return i - ) -) - -rollout AnimationPropRollout "Animations" width:160 height:488 rolledUp:true -( - listBox anim_list "" pos:[8,8] width:144 height:9 - groupBox grp1 "Properties" pos:[8,160] width:144 height:128 - button add_anim_button "Add" pos:[8,136] width:40 height:20 - button delete_anim_button "Delete" pos:[56,136] width:48 height:20 - button zoom_to_anim_button "Zoom" pos:[112,136] width:40 height:20 - editText anim_name "" pos:[56,184] width:88 height:16 - spinner first_frame "" pos:[80,208] width:64 height:16 range:[0,10000,0] type:#integer scale:1 - spinner last_frame "" pos:[80,232] width:64 height:16 range:[0,10000,0] type:#integer scale:1 - label lbl1 "First Frame:" pos:[16,208] width:56 height:16 - label lbl2 "Last Frame:" pos:[16,232] width:56 height:16 - label lbl3 "Name:" pos:[16,184] width:32 height:16 - spinner transition "" pos:[80,256] width:64 height:16 range:[0,10,0.01] type:#float scale:1 - label lbl4 "Transition" pos:[16,256] width:48 height:16 - groupBox grp2 "Events" pos:[8,296] width:144 height:192 - listBox event_list "" pos:[16,312] width:128 height:6 - editText event_name "" pos:[64,432] width:80 height:16 - spinner event_frame "" pos:[64,456] width:80 height:16 range:[0,10000,0] - label lbl5 "Name:" pos:[16,432] width:40 height:16 - label lbl6 "Frame:" pos:[16,456] width:40 height:16 - button event_add_button "Add" pos:[32,400] width:40 height:20 - button event_delete_button "Delete" pos:[80,400] width:48 height:20 - - fn LoadAnimEvents anim_number= - ( - event_list.items = #() - LastAnimEventNumber = undefined - local node = getNodeByName(AnimRootNodeName) - - local user_props = getUserPropBuffer(node) as stringstream - local event_name_array = #() - while not eof user_props do - ( - local prop = readDelimitedString user_props "\n" - local event_prefix = "anim_eventname_" + (anim_number as string) - if ((findString prop event_prefix) == 1) then - ( - local prop_tokens = filterString prop " =" - local prop_name_tokens = filterString prop_tokens[1] "_" - local event_number = (prop_name_tokens[4] as integer); - local prop_name - prop_name = "anim_eventname_" + (anim_number as string) + "_" + (event_number as string); - local event_name = getUserProp node prop_name - prop_name = "anim_eventframe_" + (anim_number as string) + "_" + (event_number as string); - local event_frame = getUserProp node prop_name - local event_info = (event_number as string) + ". " + event_name - append event_name_array event_info - ) - ) - AnimationPropRollout.event_list.items = event_name_array - AnimationPropRollout.event_list.selection = 0 - ) - - fn LoadSelectedAnimation= - ( - LastAnimNumber = FindAnimByName(AnimationPropRollout.anim_list.selected) - if (LastAnimNumber != undefined) then - ( - local node = getNodeByName(AnimRootNodeName) - local prop_name - prop_name = "anim_name_" + (LastAnimNumber as string) - AnimationPropRollout.anim_name.text = getUserProp node prop_name - prop_name = "anim_firstframe_" + (LastAnimNumber as string) - AnimationPropRollout.first_frame.value = getUserProp node prop_name - prop_name = "anim_lastframe_" + (LastAnimNumber as string) - AnimationPropRollout.last_frame.value = getUserProp node prop_name - prop_name = "anim_transtime_" + (LastAnimNumber as string) - AnimationPropRollout.transition.value = getUserProp node prop_name - LoadAnimEvents LastAnimNumber - ) - else - ( - AnimationPropRollout.anim_name.text = "" - AnimationPropRollout.first_frame.value = 0 - AnimationPropRollout.last_frame.value = 0 - AnimationPropRollout.transition.value = 0 - AnimationPropRollout.event_list.items = #() - AnimationPropRollout.event_name.text = "" - AnimationPropRollout.event_frame.value = 0 - ) - ) - - fn ZoomToAnim= - ( - local firstframe = AnimationPropRollout.first_frame.value - local lastframe = AnimationPropRollout.last_frame.value - if (firstframe < lastframe) then - ( - animationRange = (interval firstframe lastframe) - sliderTime = firstframe - ) - ) - - fn ChangeAnimProperty property new_val= - ( - if ((LastAnimNumber != undefined) and (AnimRootNodeName != undefined)) then - ( - local node = getNodeByName(AnimRootNodeName) - local prop_name = "anim_" + property + "_" + (LastAnimNumber as string) - setUserProp node prop_name new_val - ) - ) - - on anim_list selected list_idx do LoadSelectedAnimation() - on anim_list doubleClicked list_idx do ZoomToAnim() - - on add_anim_button pressed do - ( - local node = getNodeByName(AnimRootNodeName) - if (node != undefined) then - ( - local anim_number = FindFreeAnimNumber() - local anim_name = "untitled" + (anim_number as string) - local prop_name - prop_name = "anim_name_" + (anim_number as string) - setUserProp node prop_name anim_name - prop_name = "anim_firstframe_" + (anim_number as string) - setUserProp node prop_name 0 - prop_name = "anim_lastframe_" + (anim_number as string) - setUserProp node prop_name 1 - prop_name = "anim_transtime_" + (anim_number as string) - setUserProp node prop_name 0.25 - - local newlist = AnimationPropRollout.anim_list.items - append newlist anim_name - AnimationPropRollout.anim_list.items = newlist - AnimationPropRollout.anim_list.selection = newlist.count - LoadSelectedAnimation() - ) - ) - - on delete_anim_button pressed do - ( - local sel = AnimationPropRollout.anim_list.selection - if (sel > 0) then - ( - ChangeAnimProperty "name" "" - AnimationPropRollout.anim_list.selection = 0 - LoadSelectedAnimation() - - local newlist = AnimationPropRollout.anim_list.items - deleteItem newlist sel - AnimationPropRollout.anim_list.items = newlist - ) - ) - - on zoom_to_anim_button pressed do ZoomToAnim() - - on anim_name changed new_val do - ( - ChangeAnimProperty "name" new_val - if (AnimationPropRollout.anim_list.selection > 0) then - AnimationPropRollout.anim_list.selected = new_val - ) - - on first_frame changed new_val do ChangeAnimProperty "firstframe" new_val - on last_frame changed new_val do ChangeAnimProperty "lastframe" new_val - on transition changed new_val do ChangeAnimProperty "transition" new_val - - fn LoadSelectedAnimEvent= - ( - if (AnimationPropRollout.event_list.selection > 0) then - ( - LastAnimEventNumber = readDelimitedString (AnimationPropRollout.event_list.selected as stringstream) "." - local node = getNodeByName(AnimRootNodeName) - prop_name = "anim_eventname_" + (LastAnimNumber as string) + "_" + (LastAnimEventNumber as string) - AnimationPropRollout.event_name.text = getUserProp node prop_name - prop_name = "anim_eventframe_" + (LastAnimNumber as string) + "_" + (LastAnimEventNumber as string) - AnimationPropRollout.event_frame.value = getUserProp node prop_name - ) - else - ( - LastAnimEventNumber = undefined - AnimationPropRollout.event_name.text = "" - AnimationPropRollout.event_frame.value = 0 - ) - ) - - fn ChangeAnimEventProperty property new_val= - ( - if ((LastAnimNumber != undefined) and (LastAnimEventNumber != undefined)) then - ( - local node = getNodeByName(AnimRootNodeName) - local prop_name = "anim_" + property + "_" + (LastAnimNumber as string) + "_" + (LastAnimEventNumber as string) - setUserProp node prop_name new_val - ) - ) - - on add_event_button pressed do - ( - local node = getNodeByName(AnimRootNodeName) - if ((node != undefined) and (LastAnimNumber != undefined)) then - ( - local event_number = FindFreeEventNumber() - local event_info = (event_number as string) + ". untitled" - local prop_name - prop_name = "anim_eventname_" + (LastAnimNumber as string) + "_" + (event_number as string) - setUserProp node prop_name "untitled" - prop_name = "anim_eventframe_" + (LastAnimNumber as string) + "_" + (event_number as string) - setUserProp node prop_name 0 - - local newlist = AnimationPropRollout.event_list.items - append newlist event_info - AnimationPropRollout.event_list.items = newlist - AnimationPropRollout.event_list.selection = newlist.count - LoadSelectedAnimEvent() - ) - ) - - on delete_event_button pressed do - ( - local sel = AnimationPropRollout.event_list.selection - if (sel > 0) then - ( - ChangeAnimProperty "eventname" "" - AnimationPropRollout.event_list.selection = 0 - LoadSelectedAnimEvent() - - local newlist = AnimationPropRollout.event_list.items - deleteItem newlist sel - AnimationPropRollout.event_list.items = newlist - ) - ) - - on event_list selected list_idx do LoadSelectedAnimEvent() - on event_name changed new_val do - ( - ChangeAnimEventProperty "eventname" new_val - if (AnimationPropRollout.event_list.selection > 0) then - ( - local event_info = (LastAnimEventNumber as string) + ". " + new_val - AnimationPropRollout.event_list.selected = event_info - ) - ) - - on event_frame changed new_val do ChangeAnimEventProperty "eventframe" new_val -) - - -rollout AboutRollout "About" width:160 height:248 rolledUp:true -( - label lbl1 "NWN mdl import/export" pos:[8,8] width:144 height:16 - label lbl2 "By Wayland Reid" pos:[8,24] width:136 height:16 - listBox lbx1 "Special thanks to" pos:[8,48] width:144 height:8 items:#("Zaddix", "Mr X", "Hlubocky", "scooterpb", "Polyhedral") - label lbl4 "And anyone else whose posted there problems and solutions to the Bioware NWN forums." pos:[8,184] width:144 height:56 -) - ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ ---- ---- Acutal window creation ---- ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ - --- create the rollout window -if wayland_NWN_mdl_tool != undefined do -( - closerolloutfloater wayland_NWN_mdl_tool -) - -wayland_NWN_mdl_tool = newRolloutFloater "NWN MDL Tool" 189 480 0 100 -addRollout ImportRollout wayland_NWN_mdl_tool -addRollout ExportRollout wayland_NWN_mdl_tool -addRollout RootPropRollout wayland_NWN_mdl_tool -addRollout GeometryPropRollout wayland_NWN_mdl_tool -addRollout AnimationPropRollout wayland_NWN_mdl_tool -addRollout AboutRollout wayland_NWN_mdl_tool rolledUp:true - -if IsSceneRedrawDisabled()==true do enablesceneredraw() - ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ ---- ---- GUI updaters ---- ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ - -fn UpdateRootPropertiesUI node= -( - if ((node != undefined) and (GetUserProp selection[1] "mdl_root" == true)) then - ( - RootPropRollout.make_root_button.enabled = false - local sm = getuserprop node "setsupermodel" - local mdl_class = getuserprop node "classification" - local anim_scale = getuserprop node "setanimationscale" - if (sm == undefined) then sm = "NULL" - if (mdl_class == undefined) then mdl_class = 1 - if (anim_scale == undefined) then anim_scale = 1 - RootPropRollout.supermodel_edit.enabled = true - RootPropRollout.supermodel_edit.text = sm - RootPropRollout.classification_radio.enabled = true - case (mdl_class) of - ( - "Character": RootPropRollout.classification_radio.state = 1 - "Tile": RootPropRollout.classification_radio.state = 2 - "Door": RootPropRollout.classification_radio.state = 3 - "FX": RootPropRollout.classification_radio.state = 4 - "Other": RootPropRollout.classification_radio.state = 5 - ) - RootPropRollout.anim_scale_spinner.enabled = true - RootPropRollout.anim_scale_spinner.value = anim_scale - ) - else - ( - if ((node == undefined) or ((node.parent == undefined) and (IsKindOf node Dummy))) then - RootPropRollout.make_root_button.enabled = true - else - RootPropRollout.make_root_button.enabled = false - RootPropRollout.supermodel_edit.enabled = false - RootPropRollout.classification_radio.enabled = false - RootPropRollout.anim_scale_spinner.enabled = false - ) - -) - -fn UpdateGeomUI node= -( - if (lastDanglyName != undefined) then ShowDanglyConstraints (getNodeByName(lastDanglyName)) false - if ((node != undefined) and (canConvertTo node Editable_Mesh)) then - ( - ShowDanglyConstraints node GeometryPropRollout.show_dangle_checkbutton.checked - GeometryPropRollout.geom_type_radio.enabled = true - GeometryPropRollout.render_checkbox.enabled = true - GeometryPropRollout.shadow_checkbox.enabled = true - GeometryPropRollout.beaming_checkbox.enabled = true - GeometryPropRollout.no_bitmap_checkbox.enabled = true - GeometryPropRollout.tile_fade_radio.enabled = true - GeometryPropRollout.alpha_radio.enabled = true - case (getuserprop node "node_type") of - ( - "danglymesh": GeometryPropRollout.geom_type_radio.state = 2 - "aabb": GeometryPropRollout.geom_type_radio.state = 3 - "pwk_aabb": GeometryPropRollout.geom_type_radio.state = 4 - default: GeometryPropRollout.geom_type_radio.state = 1 - ) - GeometryPropRollout.render_checkbox.checked = (getuserprop node "render" == 1) - GeometryPropRollout.shadow_checkbox.checked = (getuserprop node "shadow" == 1) - GeometryPropRollout.beaming_checkbox.checked = (getuserprop node "beaming" == 1) - GeometryPropRollout.no_bitmap_checkbox.checked = (getuserprop node "nobitmap" == 1) - case (getuserprop node "tilefade") of - ( - 1: GeometryPropRollout.tile_fade_radio.state = 2 - 2: GeometryPropRollout.tile_fade_radio.state = 3 - 4: GeometryPropRollout.tile_fade_radio.state = 4 - default: GeometryPropRollout.tile_fade_radio.state = 1 - ) - case (getuserprop node "transparencyhint") of - ( - 1: GeometryPropRollout.alpha_radio.state = 2 - 0: - ( - case (getuserprop node "shininess") of - ( - 1: GeometryPropRollout.alpha_radio.state = 3 - default: GeometryPropRollout.alpha_radio.state = 1 - ) - ) - default: GeometryPropRollout.alpha_radio.state = 1 - ) - ) - else - ( - GeometryPropRollout.geom_type_radio.enabled = false - GeometryPropRollout.render_checkbox.enabled = false - GeometryPropRollout.shadow_checkbox.enabled = false - GeometryPropRollout.beaming_checkbox.enabled = false - GeometryPropRollout.no_bitmap_checkbox.enabled = false - GeometryPropRollout.tile_fade_radio.enabled = false - GeometryPropRollout.alpha_radio.enabled = false - ) - - if ((node != undefined) and (isKindOf node Dummy) and (getUserProp node "mdl_root" != true)) then - ( - GeometryPropRollout.dummy_type_radio.enabled = true - case (getuserprop node "node_type") of - ( - "pwk_use_dummy": GeometryPropRollout.geom_type_radio.state = 2 - default: GeometryPropRollout.geom_type_radio.state = 1 - ) - ) - else - ( - GeometryPropRollout.dummy_type_radio.enabled = false - ) - - -) - -fn UpdateExportUI node = -( - - ExportRollout.anim_combo.items = #() - if (node != undefined) then - ( - ExportRollout.export_node_button.enabled = true - if (getUserProp node "mdl_root" == true) then - ( - ExportRollout.export_mdl_button.enabled = true - ExportRollout.export_wok_button.enabled = true - ExportRollout.export_pwk_button.enabled = true - ExportRollout.export_anim_button.enabled = true - ExportRollout.anim_combo.enabled = true - - local user_props = getUserPropBuffer(selection[1]) as stringstream - local anim_name_array = #("", "") - while not eof user_props do - ( - local prop = readDelimitedString user_props "\n" - if ((findString prop "anim_name") == 1) then - ( - local anim_name = trimleft (trimright (substring prop ((findstring prop "=")+1) -1)) - if (anim_name != "") then append anim_name_array anim_name - ) - ) - ExportRollout.anim_combo.items = anim_name_array - ExportRollout.anim_combo.selection = 1 - ) - else - ( - ExportRollout.export_mdl_button.enabled = false - ExportRollout.export_wok_button.enabled = false - ExportRollout.export_pwk_button.enabled = false - ExportRollout.export_anim_button.enabled = false - ExportRollout.anim_combo.enabled = false - ) - ) - else - ( - ExportRollout.export_mdl_button.enabled = false - ExportRollout.export_wok_button.enabled = false - ExportRollout.export_pwk_button.enabled = false - ExportRollout.export_node_button.enabled = false - ExportRollout.export_anim_button.enabled = false - ExportRollout.anim_combo.enabled = false - ) -) - -fn UpdateAnimUI node= -( - if ((node != undefined) and (getUserProp node "mdl_root" == true)) then - ( - AnimRootNodeName = selection[1].name - AnimationPropRollout.anim_list.items = #() - AnimationPropRollout.event_list.items = #() - LastAnimNumber = undefined - LastAnimEventNumber = undefined - local user_props = getUserPropBuffer(selection[1]) as stringstream - local anim_name_array = #() - while not eof user_props do - ( - local prop = readDelimitedString user_props "\n" - if ((findString prop "anim_name") == 1) then - ( - local anim_name = trimleft (trimright (substring prop ((findstring prop "=")+1) -1)) - if (anim_name != "") then append anim_name_array anim_name - ) - ) - AnimationPropRollout.anim_list.items = anim_name_array - AnimationPropRollout.anim_list.selection = 0 - - AnimationPropRollout.anim_list.enabled = true - AnimationPropRollout.add_anim_button.enabled = true - AnimationPropRollout.delete_anim_button.enabled = true - AnimationPropRollout.zoom_to_anim_button.enabled = true - AnimationPropRollout.anim_name.enabled = true - AnimationPropRollout.first_frame.enabled = true - AnimationPropRollout.last_frame.enabled = true - AnimationPropRollout.transition.enabled = true - AnimationPropRollout.event_list.enabled = true - AnimationPropRollout.event_name.enabled = true - AnimationPropRollout.event_frame.enabled = true - AnimationPropRollout.event_add_button.enabled = true - AnimationPropRollout.event_delete_button.enabled = true - ) - else - ( - AnimRootNodeName = undefined - AnimationPropRollout.anim_list.items = #() - AnimationPropRollout.event_list.items = #() - - AnimationPropRollout.anim_list.enabled = false - AnimationPropRollout.add_anim_button.enabled = false - AnimationPropRollout.delete_anim_button.enabled = false - AnimationPropRollout.zoom_to_anim_button.enabled = false - AnimationPropRollout.anim_name.enabled = false - AnimationPropRollout.first_frame.enabled = false - AnimationPropRollout.last_frame.enabled = false - AnimationPropRollout.transition.enabled = false - AnimationPropRollout.event_list.enabled = false - AnimationPropRollout.event_name.enabled = false - AnimationPropRollout.event_frame.enabled = false - AnimationPropRollout.event_add_button.enabled = false - AnimationPropRollout.event_delete_button.enabled = false - ) -) - ------------------- ---- selChanged --- ------------------- - -fn selChanged = -( - UpdateRootPropertiesUI selection[1] - UpdateGeomUI selection[1] - UpdateExportUI selection[1] - UpdateAnimUI selection[1] -) - --- Call this function once to set all the UI elements properly -selChanged() diff --git a/doc/specs/kotor_mdl.html b/doc/specs/kotor_mdl.html deleted file mode 100644 index 896570dd1b..0000000000 --- a/doc/specs/kotor_mdl.html +++ /dev/null @@ -1,2174 +0,0 @@ - - - - - mdl info - - -Geometry header
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
-
item
-
offset
-
size (bytes)
-
data type
-
1
-
unknown0
-
4
-
long?
-
2
-
unknown
-
4
-
4
-
long?
-
3
-
model name
-
8
-
32
-
null terminated string
-
4
-
location of root node
-
40
-
4
-
long
-
5
-
number of nodes
-
44
-
4
-
long
-
6
-
unknown bytes
-
48
-
28
-

-
7
-
geometry type?
-
76
-
1
-
char
-
8
-
padding?
-
77
-
3
-
char
-
-Total length of geometry -header: 80 bytes
-
-Model header
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
-
item
-
offset
-
size (bytes)
-
data type
-
1
-
unknown
-
0
-
1
-
char
-
2
-
unknown bytes
-
1
-
2
-
char
-
3
-
unknown
-
3
-
1
-
char
-
4
-
unknown
-
4
-
4
-
long?
-
5
-
location of the start of -animation data
-
8
-
4
-
long
-
6
-
number of animations
-
12
-
4
-
long
-
7
-
duplicate of item 6
-
16
-
4
-
long
-
8
-
unknown
-
20
-
4
-
long?
-
9
-
bounding box min. x
-
24
-
4
-
float
-
10
-
bounding box min. y
-
28
-
4
-
float
-
11
-
bounding box min. z
-
32
-
4
-
float
-
12
-
bounding box max. x
-
36
-
4
-
float
-
13
-
bounding box max. y
-
40
-
4
-
float
-
14
-
bounding box max. z
-
44
-
4
-
float
-
15
-
radius
-
48
-
4
-
float
-
16
-
unknown
-
52
-
4
-
float
-
17
-
super model
-
56
-
32
-
null terminated string
-
-Total length of model -header: 88 bytes
-
-Names array header
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
-
item
-
offset
-
size (bytes)
-
data type
-
1
-
location of root node
-
0
-
4
-
long
-
2
-
unknown
-
4
-
4
-
long?
-
3
-
size of mdx data?
-
8
-
4
-
long
-
4
-
unknown
-
12
-
4
-
long?
-
5
-
location of names
-
16
-
4
-
long
-
6
-
number of names
-
20
-
4
-
long
-
7
-
duplicate of item 6
-
24
-
4
-
long
-
-Total length of names array -header: 28 bytes
-
-The names are stored in the -array one after the other seperated only by the null values.
-
-Animation header
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
-
item
-
offset
-
size (bytes)
-
data type
-
1
-
animation length
-
0
-
4
-
float
-
2
-
trans time
-
4
-
4
-
float
-
3
-
model name
-
8
-
32
-
null terminated string
-
4
-
location of events
-
40
-
4
-
long
-
5
-
number of events
-
44
-
4
-
long
-
6
-
duplicate of item 5
-
48
-
4
-
long
-
7
-
unknown bytes
-
52
-
4
-

-
-Total length of animation -header: 56 bytes
-
-Events structure:
-
- - - - - - - - - - - - - - - - - - - - - - - - -
#
-
item
-
offset
-
size (bytes)
-
data type
-
1
-
activation time?
-
0
-
4
-
float
-
2
-
event
-
4
-
32
-
null terminated string
-
-Total length of 1 structure: 36 -bytes
-

-Node header
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
-
item
-
offset
-
size (bytes)
-
data type
-
1
-
node type
-
0
-
2
-
short
-
2
-
supernode
-
2
-
2
-
short
-
3
-
node number
-
4
-
2
-
short
-
4
-
unknown
-
6
-
2
-
short
-
5
-
unknown
-
8
-
4
-

-
6
-
location of parent node
-
12
-
4
-
long
-
7
-
position X (same value as -position controller)
-
16
-
4
-
float
-
8
-
position Y (same value as -position controller)20
-
4
-
float
9
-
position Z (same value as -position controller)24
-
4
-
float
10
-
rotation W (same value as -rotation controller)28
-
4
-
float
11
-
rotation X (same value as -rotation controller)32
-
4
-
float
12
-
rotation Y (same value as -rotation controller)36
-
4
-
float
13
-
rotation Z (same value as -rotation controller)40
-
4
-
float
14
-
location of the array of child -node locations
-
44
-
4
-
long
-
15
-
number of items in array in item -8
-
48
-
4
-
long
-
16
-
duplicate of item 9
-
52
-
4
-
long
-
17
-
location of the array of -controllers
-
56
-
4
-
long
-
18
-
number of items in array in item -11
-
60
-
4
-
long
-
19
-
duplicate of item 12
-
64
-
4
-
long
-
20
-
location of the array of -controller data
-
68
-
4
-
long
-
21
-
number of items in array in item -14
-
72
-
4
-
long
-
22
-
duplicate of item 15
-
76
-
4
-
long
-
-Total length of node header: -80 bytes
-
-The array of child node -locations is simply a list of long integers.
-
-controller structure:
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
-
item
-
offset
-
size (bytes)
-
data type
-
1
-
controller type
-
0
-
4
-
long
-
2
-
unknown
-
4
-
2
-
short
-
3
-
number of rows of controller data
-
6
-
2
-
short
-
4
-
offset of first time key
-
8
-
2
-
short
-
5
-
offset of first data byte
-
10
-
2
-
short
-
6
-
columns of data
-
12
-
1
-
char
-
7
-
unknown
-
13
-
3
-
char
-
-Total length of controller -structure: 16 bytes
-

-controller data structure:
-Ok, the controller data structure is not fixed.  It has to be -figured out from the controller itself.
-
-Example:
-controller:    1) 8 -1 2 0 2 3
-                -   2) 20 -1 2 8 10 4
-
-data: 0 1 0 0 0 1 2 3 0 1 0 0 0 1 0 0 0 1
-
-dark green =  -controller 1 time keys, light -green = controller 1 data, dark -red = controller 2 time keys, light red = controller 2 data
-
-So, controller 1 is a position controller (8 = position).  It has -2 rows of data, first time key is at offset 0, first data byte is at -offset 2, the data is 3 values long.
-
Controller 2 is an -orientation -controller (20 = orientation).  It has 2 rows of data, first time -key is at -offset 8, first data byte is at offset 10, the data is 4 values long.
-
-Taking the data string and -formatting it according to the controller info gives:
-controller 1 data:
-
- - - - - - - - - - - - - - - - - - - - - -
time
-
x position
-
y position
-
z position
-
0
-
0
-
0
-
0
-
1
-
1
-
2
-
3
-
-
-controller 2 data:
-
- - - - - - - - - - - - - - - - - - - - - - - - -
time
-
x
-
y
-
z
-
w
-
0
-
0
-
0
-
0
-
1
-
1
-
0
-
0
-
0
-
1
-
-
-What the heck is that x,y,z,w for orientation?  That is a -quaternion.  For some models oreintation (i.e. rotation) is stored -as quaternions.  Too much for me to explain, Google it.
-
-
common mesh header
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
-
item
-
offset
-
size (bytes)
-
data type
-
1
-
unknown
-
0
-
4
-
long
-
2
-
unknown
-
4
-
4
-
long
-
3
-
location of the face array
-
8
-
4
-
long
-
4
-
number of faces in the face array
-
12
-
4
-
long
-
5
-
duplicate of item 4
-
16
-
4
-
long
-
6
-
bounding box min X
-
20
-
4
-
float
-
7
-
bounding box min Y24
-
4
-
float
8
-
bounding box min Z28
-
4
-
float
9
-
bounding box max X32
-
4
-
float
10
-
bounding box max Y
-
36
-
4
-
float
11
-
bounding box max Z
-
40
-
4
-
float
12
-
mesh radius
-
44
-
4
-
float
13
-
mesh points average X
-
48
-
4
-
float
14
-
mesh points average Y
-
52
-
4
-
float
15
-
mesh points average Z
-
56
-
4
-
float
16
-
diffuse red
-
60
-
4
-
float
17
-
diffuse green
-
64
-
4
-
float
18
-
diffuse blue
-
68
-
4
-
float
19
-
ambient red
-
72
-
4
-
float
20
-
ambient green
-
76
-
4
-
float
21
-
ambient blue
-
80
-
4
-
float
22
-
unknown
-
84
-
4
-
float?
23
-
name for texture map 1
-
88
-
32
-
null terminated string
-
24
-
name for texture map 2
-
120
-
32
-
null terminated string
25
-
unknown
-
152
-
24
-
???
-
26
-
location of number of verts
-
176
-
4
-
long
-
27
-
number of items in array 10 -(always 1)
-
180
-
4
-
long
-
28
-
duplicate of item 11
-
184
-
4
-
long
-
29
-
location of location of verts
-
188
-
4
-
long
-
30
-
number of items in array 13 -(always 1)
-
192
-
4
-
long
-
31
-
duplicate of item 14
-
196
-
4
-
long
-
32
-
location of unknown array
-
200
-
4
-
long
-
33
-
number of items in array 16 -(always 1)
-
204
-
4
-
long
-
34
-
duplicate of item 17
-
208
-
4
-
long
-
35
-
unknown (always -1)
-
212
-
4
-
long
-
36
-
unknown (always -1)
-
216
-
4
-
long
-
37
-
unknown (always 0)
-
220
-
4
-
long
-
38
-
unknown (always 3)
-
224
-
4
-
long
-
39
-
unknown (always 0)228
-
4
-
long
40
-
unknown (always 0)232
-
4
-
long
41
-
unknown
-
236
-
16
-
long?
-
42
-
size of 1 MDX structure
-
252
-
4
-
long
-
43
-
unknown (has something to do -with textures)
-
256
-
4
-
long
44
-
unknown (always 0)
-
260
-
4
-

-
45
-
offset to vertex normals in MDX -data in bytes (always 12)
-
264
-
4
-
long
46
-
unknown (always -1)
-
268
-
4
-
long
47
-
offset to UV coordinates in MDX -data in bytes (24 if present)
-
272
-
4
-
long
48
-
unknown (each value always -1)
-
276
-
28
-

-
49
-
number of vertices
-
304
-
2
-
short
-
50
-
number of textures
-
306
-
2
-
short
-
51
-
unknown
-
308
-
2
-
short
-
52
-
shadow flag (value of 256 = cast -shadow)
-
310
-
2
-
short
53
-
render flag (value of 256 = -render this node)312
-
2
-
short
54
-
unknown314
-
2
-
short
55
-
unknown316
-
8
-
long?
-
56
-
location of this nodes data in -mdx
-
324
-
4
-
long
-
57
-
location of vertex coordinates -array
-
328
-
4
-
long
-
-Total length of common mesh header: -332 bytes
-
-skin mesh header
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
-
item
-
offset
-
size (bytes)
-
data type
-
1
-
unknown
-
0
-
20
-
long?
-
2
-
location of bone map array
-
20
-
4
-
long
-
3
-
number of items in array 2
-
24
-
4
-
long
-
4
-
location of an unknown array
-
28
-
4
-
long
-
5
-
number of items in array 4
-
32
-
4
-
long
-
6
-
duplicate of item 5
-
36
-
4
-
long
-
7
-
location of an unknown array
-
40
-
4
-
long
-
8
-
number of items in array 7
-
44
-
4
-
long
-
9
-
duplicate of item 8
-
48
-
4
-
long
-
10
-
location of an unknown array
-
52
-
4
-
long
-
11
-
number of items in array 10
-
56
-
4
-
long
-
12
-
duplicate of item 11
-
60
-
4
-
long
-
13
-
list of nodes that can affect -verticies of this node (i.e. bones)
-
64
-
30
-
short
-
14
-
unknown
-
94
-
6
-
short?
-
-Total length of skin mesh header: -100 bytes
-
-Bone maps work like this:
--For each vertex in the MDX -there are 4 bone indexes and the corresponding bone weights
--You take the bone index from -the MDX and match it to an entry in the bone map array
--The entry number that matches -is the node number that affects the vertex
-
-Example:
-MDX data:  0.1 0.2 0.3 -0.4 0.5 0.6 0.7 0.8 0.5 -0.5 0 0 1 2 -1 -1
-
-Bone map array:
-0 => 1
-1 => -1
-2 => -1
-3 => 2
-
-The yellow numbers in the MDX -data are the weights.  The red numbers are the bone indicies. The -white numbers are coordinates, uv map coordinates, etc.
-
-We take bone index 1 from the -MDX and look for it in the bone map array.  We see that it is at -position 0 in the list.  This means that node 0 has a bone weight -of 0.5 when affecting the vertex described in the MDX data.  -Taking bone index 2 we see that it is at position 3 in the list.  -So, node 3 has a bone weight of 0.5 when affecting the vertex described -in the MDX data.  The remaining bone indexs in the MDX are -1, -meaning no other nodes affect this vertex.  The total of  the -bone weights for a vertex must equal 1.
-
-dangly mesh header
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
-
item
-
offset
-
size -(bytes)
-
data -type
-
1
-
location -of constraints
-
0
-
4
-
long
-
2
-
number -of items in array 1
-
4
-
4
-
long
-
3
-
duplicate -of item 2
-
8
-
4
-
long
-
4
-
displacement
-
12
-
4
-
float
-
5
-
tightness
-
16
-
4
-
float
-
6
-
period
-
20
-
4
-
float
-
7
-
unknown
-
24
-
4
-
long?
-
-Total length of dangly mesh header: -28 bytes - - diff --git a/doc/specs/nds_sdat.html b/doc/specs/nds_sdat.html deleted file mode 100644 index e3267e899e..0000000000 --- a/doc/specs/nds_sdat.html +++ /dev/null @@ -1,941 +0,0 @@ - - - -

Nitro Composer File (*.sdat) Specification

- -

Current status

-

This spec is far from completion. And it may contains error. Use it at your own risk. -

23 June 2007 SBNK update -

20 June 2007 SSEQ Events -

6 June 2007 SBNK + general update -

23 May 2007 First published -

For enquiries please contact me at "kiwi.ds AT gmail.com" - -

Acknowledgement

-Many thanks to the following persons whose works I have studied: -

Crystal - the author of CrystalTile2.exe

-

loveemu - the author of sseq2mid.exe, swave2wave.exe & strm2wave.exe

-

Nintendon - the author of ndssndext.exe

-

DJ Bouche - the author of sdattool.exe

-

VGMTrans - the author of VGMTrans.exe

- - - -
-

Tables of Contents

-
-

0. Introduction -

    -
  • 0.1 Terminology
  • -
  • 0.2 NDS Standard File Header
  • -

-

1. SDAT File Format -

    -
  • 1.1 Header
  • -
  • 1.2 Symbol Block
  • -
  • 1.3 Info Block
  • -
  • 1.4 FAT
  • -
  • 1.5 File Block
  • -

-

2. SSEQ File Format

-

3. SSAR File Format

-

4. SBNK File Format

-

5. SWAV File Format

-

6. SWAR File Format

-

7. STRM File Format

- - - - - -
-

0. Introduction

-
- -

"The DS SDK has all the tools in it to convert MIDI files to the DS format, and has text file templates to define the soundbanks." CptPiard from VGMix

- -

The Nitro Composer packs various types of sound files in a single file (*.sdat) for use in DS games. Not all games involve the Nitro Composer. But it seems that it is very popular for creation of DS game music.

- -

Inside the SDAT you will find: SSEQ (Sequence), SSAR (Sequence Archive), SBNK (Sound Bank), SWAR (Wave Archive), STRM (Stream).

- -

SSAR is a collection of SSEQ, while SWAR is a collection of SWAV.

- -

0.1 Terminology

-File format is explained in C-style struct declaration. -The following types of variable are used: -
-s8	1 byte	// signed char
-u8 	1 byte	// unsigned char
-s16	2 byte	// signed short
-u16	2 byte	// unsigned short
-s32	4 byte	// signed long
-u32	4 byte	// unsigned long
-
- -

0.2 NDS Standard File Header

-Many files (besides sound-related) found in DS game rom share this header structure: - -
-typedef struct tagNdsStdFile {
-	s8  type[4];	// i.e. 'SDAT' or 'SBNK' etc...
-	u32 magic;	// 0x0100feff or 0x0100fffe
-	u32 nFileSize;	// Size of this file ( include this structure )
-	u16 nSize;	// Size of this structure ( always 16 )
-	u16 nBlock;	// Number of Blocks
-} NDSSTDF;
-
- -

The magic value can be 0x0002feff or 0x0001feff for non sound-related files.

- - -
-

1. SDAT File Format

-
- -The file has the following structure: - -
-	--------------------------------
-	|            Header            |
-	--------------------------------
-	|         Symbol Block         |
-	--------------------------------
-	|          Info Block          |
-	--------------------------------
-	|  File Allocation Table (FAT) |
-	--------------------------------
-	|          File Block          |
-	--------------------------------
-
- -

1.1 Header

-The Header appears at offset 0 in the SDAT file. All offsets in this structure are absolute offsets. - -
-typedef struct tagSDATHeader
-{
-	struct tagNdsStdFile {
-		s8  type[4];   // 'SDAT'
-		u32 magic;	// 0x0100feff
-		u32 nFileSize;
-		u16 nSize;
-		u16 nBlock;    // usually 4, but some have 3 only ( Symbol Block omitted )
-	} file;
-	u32 nSymbOffset;  	// offset of Symbol Block = 0x40
-	u32 nSymbSize;    	// size of Symbol Block
-	u32 nInfoOffset; 	// offset of Info Block
-	u32 nInfoSize;    	// size of Info Block
-	u32 nFatOffset;   	// offset of FAT
-	u32 nFatSize;     	// size of FAT
-	u32 nFileOffset; 	// offset of File Block
-	u32 nFileSize;   	// size of File Block
-	u8  reserved[16]; 	// unused, 0s
-} SDATHEADER;
-
- -

1.2 Symbol Block

-It appears at offset 0x40, right after the Header. It may be omitted. It contains the symbols (or "filenames") of each sound file in the SDAT file. All offsets are relative to this block's starting address (i.e. 0x40).
-NB. Some files doesn't have Symbol Block.
-NB. The value of nSize of Symbol Block may not be 32-bit aligned. However, the value of nSymbSize in Header is. - -
-typedef struct tagSDATSymbol
-{
-	char type[4];		// 'SYMB'
-	u32 nSize;		// size of this Symbol Block
-	u32 nRecOffset[8];	// offset of Records (note below)
-	u8  reserved[24];	// unused, 0s
-} SDATSYMB;
-
- - - -

1.2.1 Symbol Block - Record

-There are a total of 8 records in the Symbol Block. They are: - - - - - - - - - - - - - - -
Record No.Record NameDescription
0SEQSequence (for music)
1SEQARCSequence Archive (for sound effect)
2BANKSound Bank
3WAVEARCWave Archive
4PLAYER*Player (Group-related)
5GROUPGroup of SEQ/SEQARC/BANK/WAVEARC
6PLAYER2*Player2 (Stream-related)
7STRMStream
* Records 4 and 5 do not appear in SMAP file. A SMAP File is generated by the Nitro Composer listing all sound files in the SDAT file. An example can be found from <<Zoids Saga DS - Legend of Arcadia>>
-
-All offsets are relative to Symbol block's starting address (i.e. 0x40). Each record (except Record 1 "SEQARC") has the following structure: - -
-typedef struct tagSDATSymbolRec
-{
-	u32 nCount;		// No of entries in this record
-	u32 nEntryOffset[1];	// Array of offsets of each entry
-} SDATSYMBREC;
-
- -For Record 1 (SEQARC), it is a group which contains sub-records. The sub-record is of the same structure as SDATSYMBREC (above). Record 1 has the following structure: - -
-typedef struct tagSDATSymbolRec2
-{
-	u32 nCount;			// No of entries in this record
-	struct {
-		u32 nEntryOffset;	// Offset of this Group's symbol
-		u32 nSubRecOffset;	// Offset of the sub-record
-	} Group[1];			// Array of offsets of each entry
-} SDATSYMBREC2;
-
- -Below is an example to access these records: - -
-SDATSYMB    *symb;
-int         i, j;
-char        *szSymbol;
-...
-// access record 0 'SSEQ'
-SDATSYMBREC *symb_rec = (SDATSYMBREC *) ( (u8 *)symb + symb->RecOffset[0] );
-
-for ( i = 0; i < symb_rec->nCount; i++ )
-{
-	// print out the symbol
-	szSymbol = (char *) ( (u8 *)symb + symb_rec->nEntryOffset[i] );
-	printf( "%s\n", szSymbol );
-}
-...
-
-// access record 1 'SSAR'
-SDATSYMBREC2 symb_rec2 = (SDATSYMBREC *)( (u8  *)symb + symb->RecOffset[1] );
-
-for ( i = 0; i < symb_rec2->nCount; i++ )
-{
-	szSymbol = (char *) ( (u8 *)symb + symb_rec2->Group[ i ].nEntryOffset );
-	printf( "%s\n", szSymbol );
-
-	SDATSYMBREC *symb_subrec = (SDATSYMBREC *) ( (u8 *)symb + symb_rec2->Group[i].nSubRecOffset );
-	for ( j = 0; j < symb_subrec->nCount; j++ )
-	{
-		// print out sub record's symbols
-		szSymbol = (char *) ( (u8 *)symb + symb_subrec->nEntryOffset[i] );
-		printf( "%s\n", szSymbol );
-	}
-}
-
- -

1.2.2 Symbol Block - Entry

-EXCEPT for Record 1 "SEQARC", an Entry in the record is a null terminated string. This corresponds to the "filename" of a sound file in the SDAT file. -

-For Record 1 "SEQARC", since a SEQARC file is a collection of Sequence files, therefore this record contains a sub-record. And this sub-record contains the symbols ("filenames") of each of the archived SEQ files. - - -

1.3 Info Block

-The Info Block appears just after the Symbol Block. It contains some information of each sound file in the SDAT file. All offsets are relative to this block's starting address. - -
-typedef struct tagSDATInfo
-{
-	char type[4];           // 'INFO'
-	u32 nSize;             // size of this Info Block
-	u32 nRecOffset[8];     // offset of a Record
-	u8  reserved[24];       // unused, 0s
-} SDATINFO;
-
- -

1.3.1 Info Block - Record

-There are a total of 8 records in the Info Block. The Record Names in 1.2.1 above applies here as well. All offsets are relative to Info block's starting address. With modifications, the code example above could be used to access the Info records and entries. - -
-typedef struct tagSDATInfoRec
-{
-	u32 nCount;            // No of entries in this record
-	u32 nEntryOffset[1];   // array of offsets of each entry
-} SDATINFOREC;
-
- - -

1.3.2 Info Block - Entry

- -

Record 0 "SEQ" - The Info Entry for SEQ contains playback information.

-
-typedef struct tagSDATInfoSseq
-{
-	u16 fileID;	// for accessing this file
-	u16 unknown;
-	u16 bnk;	// Associated BANK
-	u8  vol;	// Volume
-	u8  cpr;
-	u8  ppr;
-	u8  ply;
-	u8  unknown[2];
-} SDATINFOSSEQ;
-
- -

-Record 1 "SEQARC" - -
-typedef struct tagSDATInfoSsar
-{
-	u16 fileID;
-	u16 unknown;
-} SDATINFOSSAR;
-
- -Remarks: no info is available for SEQARC files. The info of each archived SEQ is stored in that SEQARC file. - -

-Record 2 "BANK" - -
-typdef struct tagSDATInfoBank
-{
-	u16 fileID;
-	u16 unknown;
-	u16 wa[4];      // Associated WAVEARC. 0xffff if not in use
-}
-
- -Remarks: Each bank can links to up to 4 WAVEARC files. The wa[4] stores the WAVEARC entry number. - -

-Record 3 "WAVEARC" - -
-typedef struct tagSDATInfoSwar
-{
-	u16 fileID;
-	u16 unknown;
-} SDATINFOSwar;
-
- -Remarks: This is not a new structure. It is the same as SDATINFOSSAR above for Record 1. - -

-Record 4 "PLAYER" - -
-typedef struct tagSDATInfoPlayer
-{
-	u8  unknown;
-	u8  padding[3];
-	u32 unknown2;
-} SDATINFOPlayer;
-
- -Remarks: None - -

-Record 5 "GROUP" - -
-typedef struct tagSDATInfoPlayer
-{
-	u32 nCount;		// number of sub-records
-        struct {		// array of Group
-		u32 type;
-		u32 nEntry;
-	} Group[1];
-} SDATINFOPlayer;
-
- -

Remarks: SDATINFOPlayer::Group::type can be one of the following values. nEntry is the entry number in the relevant Record (SEQ/SEQARC/BANK/WAVEARC).

- - - - - - - - - -
ValueType
0x0700SEQ
0x0803SEQARC
0x0601BANK
0x0402WAVEARC
- - -

-Record 6 "PLAYER2" - -
-typedef struct SDATInfoPlayer2
-{
-	u8  nCount;
-	u8  v[16];		// 0xff if not in use
-	u8  reserved[7];	// padding, 0s
-} SDATINFOPLAYER2;
-
- -Remarks: The use is unknown. The first byte states how many of the v[16] is used (non 0xff). - -

-Record 7 "STRM" - -
-typedef struct SDATInfoStrm
-{
-	u16 fileID;		// for accessing the file
-	u16 unknown;
-	u8  vol;		// volume
-	u8  pri;
-	u8  ply;
-	u8  reserved[5];
-} SDATINFOSTRM;
-
- -Remarks: 'ply' means play?, 'pri' means priority? - -

1.4 FAT

-The FAT appears just after the Info Block. It contains the records of offset and size of each sound file in the SDAT file. - -
-typedef struct tagSDATFAT
-{
-	char type[4];		// 'FAT '
-	u32 nSize;		// size of the FAT
-	u32 nCount;		// Number of FAT records
-	SDATFATREC Rec[1];	// Arrays of FAT records
-} SDATFAT;
-
- -

1.4.1 FAT - Record

-It contains the offset and size of the sound file. All the offsets are relative to the SDAT Header structure's beginning address. - -
-typedef struct tagSDATFATREC
-{
-	u32 nOffset;		// offset of the sound file
-	u32 nSize;		// size of the Sound file
-	u32 reserved[2];	// always 0s, for storing data in runtime.
-} SDATFATREC;
-
- -

1.5 File Block

-The File Block is the last block and appears just after the FAT. It has a small header (the structure below) which contains the total size and number of sound of files. All the sound files are stored after this structure. - -
-typedef struct tagSDATFILE
-{
-	char type[4];  // 'FILE'
-	u32 nSize;    // size of this block
-	u32 nCount;   // Mumber of sound files
-	u32 reserved; // always 0
-} SDATFILE;
-
- - - - - -
-

2. SSEQ File Format

-
- -

SSEQ stands for "Sound Sequence". It is a converted MIDI sequence. Linked to a BANK for instruments.

- - -
-typedef struct tagSseq
-{
-	struct tagNdsStdFile {
-		char type[4];	// 'SSEQ'
-		u32 magic;	// 0x0100feff
-		u32 nFileSize;	// Size of this SSEQ file
-		u16 nSize;	// Size of this structure = 16
-		u16 nBlock;	// Number of Blocks = 1
-	} file;
-	struct {
-		char type[4];		// 'DATA'
-		u32 nSize;		// Size of this structure = nFileSize - 16
-		u32 nDataOffset;	// Offset of the sequence data = 0x1c
-		u8  data[1];		// Arrays of sequence data
-	} data;
-} SSEQ;
-
- -

NB. For the details of the SSEQ file, please refer to loveemu's sseq2mid

- -

2.1 Description

-

The design of SSEQ is more programming-oriented while MIDI is hardware-oriented. In MIDI, to produce a sound, a Note-On event is sent to the midi-instrument and then after a certain time, a Note-Off is sent to stop the sound (though it is also acceptable to send a Note-On message with 0 velocity). -In SSEQ, a sound is produced by one event only which carries with data such as note, velocity and duration. So the SSEQ-sequencer knows exactly what and how to play and when to stop.

- -

A SSEQ can have at maximum 16 tracks, notes in the range of 0..127 (middle C is 60). Each quartet note has a fixed tick length of 48. Tempo in the range of 1..240 BPM (Default is 120). The SSEQ will not be played correctly if tempo higher than 240.

-

The SEQ player uses Arm7's Timer1 for timing. The Arm7's 4 Timers runs at 33MHz (approximately 2^25). The SEQ player sets Timer1 reload value to 2728, prescaler to F/64. So on about every 0.0052 sec (64 * 2728 / 33MHz) the SEQ Player will be notified ( 1 cycle ). As a quartet note has fixed tick value of 48, the highest tempo that SEQ Player can handle is 240 BPM ( 60 / (0.0052 * 48) ).

-

During each cycle, the SEQ player adds the tempo value to a variable. Then it checks if the value exceeds 240. If it does, the SEQ player subtracts 240 from the variable, and process the SSEQ file. Using this method, the playback is not very precise but the difference is too small to be noticed.

-

Take an example with tempo = 160 BPM, the SSEQ file is processed twice in 3 notifications.

- - - - - - - - - - -
cyclevariableaction
10Add 160
2160Add 160
3320Subtract 240, process once, add 160
4240Subtract 240, process once, add 160
5160Add 160
6320Subtract 240, process once, add 160
7240Subtract 240, process once, add 160
8160Add 160
- -

2.2 Events

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Status ByteParameterDescription
0xFE2 bytes
It indicates which tracks are used. Bit 0 for track 0, ... Bit 15 for track 15. If the bit is set, the corresponding track is used.
Indication begin of multitrack. Must be in the beginning of the first track to work. A series of event 0x93 follows.
0x934 bytes
1st byte is track number [0..15]
The other 3 bytes are the relative adress of track data. Add nDataOffset (usually 0x1C) to find out the absolute address.
SSEQ is similar to MIDI in that track data are stored one after one track. Unlike mod music.
0x00 .. 0x7fVelocity: 1 byte [0..127]
Duration: Variable Length
NOTE-ON. Duration is expressed in tick. 48 for quartet note. Usually it is NOT a multiple of 3.
0x80Duration: Variable LengthREST. It tells the SSEQ-sequencer to wait for a certain tick. Usually it is a multiple of 3.
0x81Bank & Program Number: Variable Lengthbits[0..7] is the program number, bits[8..14] is the bank number. Bank change is seldomly found, so usually bank 0 is used.
0x94Destination Address: 3 bytes (Add nDataOffset (usually 0x1C) to find out the absolute address.)JUMP. A jump must be backward. So that the song will loop forever. -
0x95Call Address: 3 bytes (Add nDataOffset (usually 0x1C) to find out the absolute address.)CALL. It's like a function call. The SSEQ-sequncer jumps to the address and starts playing at there, until it sees a RETURN event.
0xFDNONERETURN. The SSEQ will return to the caller's address + 4 (a Call event is 4 bytes in size).
0xA0 .. 0xBfSee loveemu's sseq2mid for more details.Some arithmetic operations / comparions. Affect how SSEQ is to be played.
0xC0Pan Value: 1 byte [0..127], middle is 64PAN
0xC1Volume Value: 1 byte [0..127]VOLUME
0xC2Master Volume Value: 1 byte [0..127]MASTER VOLUME
0xC3Value: 1 byte [0..64] (Add 64 to make it a MIDI value)TRANSPOSE (Channel Coarse Tuning)
0xC4Value: 1 bytePITCH BEND
0xC5Value: 1 bytePITCH BEND RANGE
0xC6Value: 1 byteTRACK PRIORITY
0xC7Value: 1 byte [0: Poly, 1: Mono]MONO/POLY
0xC8Value: 1 byte [0: Off, 1: On]TIE (unknown)
0xC9Value: 1 bytePORTAMENTO CONTROL
0xCAValue: 1 byte [0: Off, 1: On]MODULATION DEPTH
0xCBValue: 1 byteMODULATION SPEED
0xCCValue: 1 byte [0: Pitch, 1: Volume, 2: Pan]MODULATION TYPE
0xCDValue: 1 byteMODULATION RANGE
0xCEValue: 1 bytePORTAMENTO ON/OFF
0xCFTime: 1 bytePORTAMENTO TIME
0xD0Value: 1 byteATTACK RATE
0xD1Value: 1 byteDECAY RATE
0xD2Value: 1 byteSUSTAIN RATE
0xD3Value: 1 byteRELEASE RATE
0xD4Count: 1 byte (how many times to be looped)LOOP START MARKER
0xFCNONELOOP END MARKER
0xD5Value: 1 byteEXPRESSION
0xD6Value: 1 bytePRINT VARIABLE (unknown)
0xE0Value: 2 byteMODULATION DELAY
0xE1BPM: 2 byteTEMPO
0xE3Value: 2 byteSWEEP PITCH
0xFFNONEEOT: End Of Track
- -

- - - -
-

3. SSAR File Format

-
- - -SSAR stands for "(Sound) Sequence Archive". It is a collection of sequences (used mainly for sound effect). Therefore, each archived SSEQ is usually short, with one or two notes. - - -
-typedef struct tagSsarRec {
-	u32 nOffset;		// relative offset of the archived SEQ file, absolute offset = nOffset + SSAR::nDataOffset
-	u16 bnk;		// bank
-	u8  vol;		// volume
-	u8  cpr;		// channel pressure 
-	u8  ppr;		// polyphonic pressure
-	u8  ply;		// play
-	u8  reserved[2];
-} SSARREC;
-
-typedef struct tagSsar
-{
-	struct tagNdsStdFile {
-		char type[4];   // 'SSAR'
-		u32 magic;	// 0x0100feff
-		u32 nFileSize; // Size of this SSAR file
-		u16 nSize;     // Size of this structure = 16
-		u16 nBlock;    // Number of Blocks = 1
-	} file;
-	struct {
-		char type[4];		// 'DATA'
-		u32 nSize;		// Size of this structure
-		u32 nDataOffset;	// Offset of data
-		u32 nCount;		// nCount * 12 + 32 = nDataOffset
-		SSARREC Rec[1];		// nCount of SSARREC
-	} data;
-} SSAR;
-
- -

NB. Archived SSEQ files are not stored in sequence (order). So Rec[0].nOffset may point to 0x100 but Rec[1].nOffset points to 0x40.

-

NB. Archived SSEQ files cannot be readily extracted from SSAR file because data in one SSEQ may 'call' data in other SSEQ.

- - - - -
-

4. SBNK File Format

-
- -

SBNK stands for "Sound Bank". A bank is linked to up to 4 SWAR files which contain the samples. It define the instruments by which a SSEQ sequence can use. You may imagine SSEQ + SBNK + SWAR are similar to module music created by trackers.

- -
-typedef struct tagSbnkInstrument
-{
-	u8  fRecord;	// can be either 0, 1..4, 16 or 17
-	u16 nOffset;	// absolute offset of the data in file
-	u8  reserved;	// must be zero
-} SBNKINS;
-
-typedef struct tagSbnk
-{
-	struct tagNdsStdFile {
-		char type[4];   // 'SBNK'
-		u32 magic;	// 0x0100feff
-		u32 nFileSize;	// Size of this SBNK file
-		u16 nSize;	// Size of this structure = 16
-		u16 nBlock;	// Number of Blocks = 1
-	} file;
-	struct {
-		char type[4];		// 'DATA'
-		u32 nSize;		// Size of this structure
-		u32 reserved[8];	// reserved 0s, for use in runtime
-		u32 nCount;		// number of instrument
-		SBNKINS Ins[1];	
-	} data;
-} SBNK;
-
- -

So, after SBNK::data, there come SBNK::data::nCount of SBNKINS. After the last SBNKINS, there will be SBNK::data::nCount of instrument records. In each instrument records, we can find one or more wave/note definitions. - - - - -

4.1 Instrument Record

- -

If SBNKINS::fRecord = 0, it is empty. SBNKINS::nOffset will also = 0.

-

If SBNKINS::fRecord < 16, the record is a note/wave definition. I have seen values 1, 2 and 3. But it seems the value does not affect the wave/note definition that follows. Instrument record size is 16 bytes.

-
-	swav number 	2 bytes	// the swav used
-	swar number	2 bytes	// the swar used. NB. cross-reference to "1.3.2 Info Block - Entry, Record 2 BANK" 
-	note number	1 byte 	// 0..127
-	Attack Rate	1 byte	// 0..127
-	Decay Rate	1 byte	// 0..127
-	Sustain Level	1 byte	// 0..127
-	Release Rate	1 byte	// 0..127
-	Pan		1 byte	// 0..127, 64 = middle
-
-

If SBNKINS::fRecord = 16, the record is a range of note/wave definitions. The number of definitions = 'upper note' - 'lower note' + 1. The Instrument Record size is 2 + no. of definitions * 12 bytes.

-
-	lower note	1 byte 	// 0..127
-	upper note	1 byte 	// 0..127
-
-	unknown		2 bytes	// usually == 01 00
-	swav number 	2 bytes	// the swav used
-	swar number	2 bytes	// the swar used. 
-	note number	1 byte
-	Attack Rate	1 byte
-	Decay Rate	1 byte
-	Sustain Level	1 byte
-	Release Rate	1 byte
-	Pan		1 byte
-
-	...
-	...
-	...
-
-	unknown		2 bytes	// usually == 01 00
-	swav number 	2 bytes	// the swav used
-	swar number	2 bytes	// the swar used. 
-	note number	1 byte
-	Attack Rate	1 byte
-	Decay Rate	1 byte
-	Sustain Level	1 byte
-	Release Rate	1 byte
-	Pan		1 byte
-
-

For example, lower note = 30, upper note = 40, there will be 40 - 30 + 1 = 11 wave/note definitions.
-The first wave/note definition applies to note 30.
-The second wave/note definition applies to note 31.
-The third wave/note definition applies to note 32.
-...
-The eleventh wave/note definition applies to note 40.

- -

If SBNKINS::fRecord = 17, the record is a regional wave/note definition.

-
-	The first 8 bytes defines the regions. They divide the full note range [0..127] into several regions (max. is 8)
-	An example is:
-	25  35  45  55  65  127 0   0 (So there are 6 regions: 0..25, 26..35, 36..45, 46..55, 56..65, 66..127)
-	Another example:
-	50  59  66  83  127 0   0   0 (5 regions: 0..50, 51..59, 60..66, 67..84, 85..127)
-
-	Depending on the number of regions defined, the corresponding number of wave/note definitions follow:
-
-	unknown		2 bytes	// usually == 01 00
-	swav number 	2 bytes	// the swav used
-	swar number	2 bytes	// the swar used. 
-	note number	1 byte	
-	Attack Rate	1 byte
-	Decay Rate	1 byte
-	Sustain Level	1 byte
-	Release Rate	1 byte
-	Pan		1 byte
-	...
-	...
-
-	In the first example, for region 0..25, the first wave/note definition applies.
-	For region 26..35, the 2nc wave/note definition applies.
-	For region 36..45, the 3rd wave/note definition applies.
-	... 
-	For region 66..127, the 6th wave/note definition applies.
-
- - -

REMARKS: Unknown bytes before wave/defnition definition = 5, not 1 in -stage_04_bank.sbnk, stage_04.sdat, Rom No.1156

- - -

4.2 Articulation Data

-

The articulation data affects the playback of the SSEQ file. They are 'Attack Rate', 'Decay Rate', 'Sustain Level' and 'Release Rate' (all have a value in range [0..127])

- -
-amplitude (%)
-
-100% |    /\
-     |   /  \__________
-     |  /              \
-     | /                \
-0%   |/__________________\___ time (sec)
-
-
-

Imagine how the amplitude of a note varies from begin to the end.

-

The graph above shows the amplitude envelope when a note is sound. The y-axis is Amplitude, x-asix is time.

- -

Attack rate determines how fast the note reaches 100% amplitude. (See the first upward curve). Thus the highest value 127 means the sound reaches 100% amplitude in the shortest time; 0 means the longest time.

-

Decay rate determines how fast the amplitude decays to 0% amplitude. Of course the sound will not drop to 0% but stops at sustain level. (See the first downward curve). Thus the highest value 127 means the sound reachs the sustain level in the shortest time; 0 means the longest time.

-

Sustain level determines the amplitude at which the sound sustains. (See the horizonal part). Thus the highest value 127 means the sound sustains at 100% amplitude (no decay), while 0 means 0% (full decay).

-

Release rate determines how fast the amplitude drops from 100% to 0%. Not from sustain level to 0%. (See the second downward curve). The value has the same meaning as Decay rate.

- -

See this file for more details on how to interpret the articulation data. The raw data column is the transformed value used for calculation.

-

The SEQ Player treats 0 as the 100% amplitude value and -92544 (723*128) as the 0% amplitude value. The starting ampltitude is 0% (-92544).

- -

During the attack phase, in each cycle, the SSEQ Player calculates the new amplitude value: amplitude value = attack rate * amplitude value / 255. The attack phase stops when amplitude reaches 0.

-

The times column shows how many cycles are needed to reach 100% amplitude value.

-

The sec column shows the corresponding time needed to reach 100% amplitude value.

-

The scale column is the corresponding value to feed in DLS Bank.

- -

During the decay phase, in each cycle, the SSEQ Player calculates the new amplitude value: amplitude value = amplitude value - decay rate. Note the starting amplitude value is 0. The decay phase stops when amplitude reaches sustain level.

-

The other columns are self-explanatory.

- -
-

5. SWAV File Format

-
- - -

SWAV doesn't appear in SDAT. They may be found in the ROM elsewhere. They can also be readily extracted from a SWAR file (see below).

- - -
-// info about the sample
-typedef struct tagSwavInfo
-{
-	u8  nWaveType;		// 0 = PCM8, 1 = PCM16, 2 = (IMA-)ADPCM
-	u8  bLoop;		// Loop flag = TRUE|FALSE
-	u16 nSampleRate;	// Sampling Rate
-	u16 nTime;		// (ARM7_CLOCK / nSampleRate) [ARM7_CLOCK: 33.513982MHz / 2 = 1.6756991 E +7]
-	u16 nLoopOffset;	// Loop Offset (expressed in words (32-bits))
-	u32 nNonLoopLen;	// Non Loop Length (expressed in words (32-bits))
-} SWAVINFO;
-
-// Swav file format
-typedef struct tagSwav
-{
-	struct tagNdsStdFile {
-		char type[4];   // 'SWAV'
-		u32 magic;	// 0x0100feff
-		u32 nFileSize;	// Size of this SWAV file
-		u16 nSize;	// Size of this structure = 16
-		u16 nBlock;	// Number of Blocks = 1
-	} file;
-	struct {
-		char type[4];	// 'DATA'
-		u32 nSize;	// Size of this structure
-		SWAVINFO info;	// info about the sample
-		u8  data[1];	// array of binary data
-	} data;
-} SWAV;
-
- - - -
-

6. SWAR File Format

-
- -SWAR stands for "(Sound) Wave Archive". It is a collection of mono wave (SWAV) samples only (which can be in either PCM8, PCM16 or ADPCM compression). - -
-typedef struct tagSwar
-{
-	struct tagNdsStdFile {
-		char type[4];   // 'SWAR'
-		u32 magic;	// 0x0100feff
-		u32 nFileSize;	// Size of this SWAR file
-		u16 nSize;	// Size of this structure = 16
-		u16 nBlock;	// Number of Blocks = 1
-	} file;
-	struct {
-		char type[4];		// 'DATA'
-		u32 nSize;		// Size of this structure
-		u32 reserved[8];	// reserved 0s, for use in runtime
-		u32 nSample;		// Number of Samples 
-	} data;
-	u32 nOffset[1];	// array of offsets of samples
-} SWAR;
-
- -

NB. After the array of offsets, the binary samples follow. Each sample has a SWAVINFO structure before the sample data. Therefore, it is easy to make a SWAV from the samples in SWAR.

- - - - -
-

7. STRM File Format

-
- -STRM stands for "Stream". It is an individual mono/stereo wave file (PCM8, PCM16 or ADPCM). - -
-typedef struct tagSTRM
-{
-	struct tagNdsStdFile {
-		char type[4];   // 'STRM'
-		u32 magic;	// 0x0100feff
-		u32 nFileSize;	// Size of this STRM file
-		u16 nSize;	// Size of this structure = 16
-		u16 nBlock;	// Number of Blocks = 2
-	} file;
-	struct {
-		char type[4];		// 'HEAD'
-		u32 nSize;		// Size of this structure
-		u8  nWaveType;		// 0 = PCM8, 1 = PCM16, 2 = (IMA-)ADPCM
-		u8  bLoop;		// Loop flag = TRUE|FALSE
-		u8  nChannel;		// Channels
-		u8  unknown;		// always 0
-		u16 nSampleRate;	// Sampling Rate (perhaps resampled from the original) 
-		u16 nTime;		// (1.0 / rate * ARM7_CLOCK / 32) [ARM7_CLOCK: 33.513982MHz / 2 = 1.6756991e7]
-		u32 nLoopOffset;	// Loop Offset (samples) 
-		u32 nSample;		// Number of Samples 
-		u32 nDataOffset;	// Data Offset (always 68h)
-		u32 nBlock;		// Number of Blocks 
-		u32 nBlockLen;		// Block Length (Per Channel) 
-		u32 nBlockSample;	// Samples Per Block (Per Channel)
-		u32 nLastBlockLen;	// Last Block Length (Per Channel)
-		u32 nLastBlockSample;	// Samples Per Last Block (Per Channel)
-		u8  reserved[32];	// always 0
-	} head;
-	struct {
-		char type[4];		// 'DATA'
-		u32 nSize;		// Size of this structure
-		u8  data[1];		// Arrays of wave data
-	} data;
-} SDATSTRM;
-
- -

7.1 Wave Data

- -

A Block is the same as SWAV Wave Data.

- -

Mono (SWAV)

-Block 1
-Block 2
-...
-Block N (Last Block)
- - -

Stereo (STRM)

-Block 1 L
-Block 1 R
-Block 2 L
-Block 2 R
-...
-Block N L (Last Block)
- -Block N R (Last Block) - - - - \ No newline at end of file diff --git a/doc/specs/torlack/README b/doc/specs/torlack/README deleted file mode 100644 index 27552ee453..0000000000 --- a/doc/specs/torlack/README +++ /dev/null @@ -1 +0,0 @@ -Torlack's reversed specs, used to be available at diff --git a/doc/specs/torlack/basics.html b/doc/specs/torlack/basics.html deleted file mode 100644 index 9c39ccd939..0000000000 --- a/doc/specs/torlack/basics.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - -NWN Data File Basics - - - - -

NWN Data File Basics

- -

It isn't too shocking that a game with the complexity of Neverwinter Nights -(NWN) requires a large assortment of different data files. These files -define everything from the basic mechanics of the game all the way to the videos -played during the introduction.

-

Assuming that you installed the game in the default directories, the data -files are spread out in the following directories.

-
    -
  • C:\NeverwinterNights\NWN - Game executables and key data files
  • -
  • C:\NeverwinterNights\NWN\ambient - Ambient sounds
  • -
  • C:\NeverwinterNights\NWN\data - Primary data files
  • -
  • C:\NeverwinterNights\NWN\dmvault - Dungeon master characters
  • -
  • C:\NeverwinterNights\NWN\hak - Hak packs to augment game data
  • -
  • C:\NeverwinterNights\NWN\localvault - Your local characters
  • -
  • C:\NeverwinterNights\NWN\modules - User created modules
  • -
  • C:\NeverwinterNights\NWN\movies - Cut scene and introduction movies
  • -
  • C:\NeverwinterNights\NWN\music - Game music files
  • -
  • C:\NeverwinterNights\NWN\nwm - NWN game modules
  • -
  • C:\NeverwinterNights\NWN\override - Collection of resources that replace - resources contained in the "data" directory.
  • -
  • C:\NeverwinterNights\NWN\saves - Saved games
  • -
  • C:\NeverwinterNights\NWN\servervault - Server characters for multiplayer - games run on your computer
  • -
  • C:\NeverwinterNights\NWN\texturepacks - Texture packs
  • -
-

When NWN starts, it has available several methods to locate the data -files. Depending on the working directory or more probably the directory -of the executable, NWN can locate three key files, "chitin.key", -"dialog.tlk", and "nwn.ini".

-

Chitin.key contains a listing of all the resources available to NWN at -runtime. Given a resource name, chitin.key can be used to locate the name -of the master data file (.BIF) containing the resource.

-

Dialog.tlk is textual resource file. Given an number, dialog.tlk can -return the text associated with that number. This method has at least two benefits. -First, common strings can be stored in a central location instead of spread out amongst -many script files. This makes it possible to change the text without -having to modify or recompile the scripts that reference the string. The -second benefit is that depending on the language of the user, a different -dialog.tlk can be installed. For the French, the French dialog.tlk is -installed. (Note: I haven't actually seen exactly how Bioware does -language support. It is an assumption on my part that they just use different -dialog.tlk files. They could have dialog.tlk reserved as the common English -and then a different file name for each of the other languages.)

-

Nwn.ini is a standard format Windows ini file. It contains much of the -game configuration information. The section of most interest to us however -is the "[Alias]" section. This section provides a mapping -between logical directory names and their physical counterparts. This -allowed the developers to not have to worry about the how the NWN installation -would look at release time. As long as the group producing the -installation system properly set the different keys in the "[Alias]" -section, NWN will file the data files without modification.

-

For add on programs such as my NWN Explorer, Bioware stored NWN's -installation directory in the registry. The registry key -"HKEY_LOCAL_MACHINE\SOFTWARE\BioWare\NWN\Neverwinter\Location" -contains the installation directory. However, I would like to add that -anyone who wishes to develop 3rd party application for NWN should also allow the -user to specify the location of NWN. Even though I don't foresee Bioware -removing this registry key, there is always the chance that it might be missing -or invalid. Thus, it would be a shame if a user couldn't use your 3rd -party application because you were too lazy to add this simple feature.

- -

Resource Types

- -

NWN has a wide range of resource types.  The following table lists most -of these types.  (Many of these resource types might not be used by NWN but -were present in earlier Bioware games.)

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Resource NameResource Type
RES0x0000
BMP0x0001
MVE0x0002
TGA0x0003
WAV0x0004
PLT0x0006
INI0x0007
BMU0x0008
MPG0x0009
TXT0x000A
PLH0x07D0
TEX0x07D1
MDL0x07D2
THG0x07D3
FNT0x07D5
LUA0x07D7
SLT0x07D8
NSS0x07D9
NCS0x07DA
MOD0x07DB
ARE0x07DC
SET0x07DD
IFO0x07DE
BIC0x07DF
WOK0x07E0
2DA0x07E1
TLK0x07E2
TXI0x07E6
GIT0x07E7
BTI0x07E8
UTI0x07E9
BTC0x07EA
UTC0x07EB
DLG0x07ED
ITP0x07EE
BTT0x07EF
UTT0x07F0
DDS0x07F1
UTS0x07F3
LTR0x07F4
GFF0x07F5
FAC0x07F6
BTE0x07F7
UTE0x07F8
BTD0x07F9
UTD0x07FA
BTP0x07FB
UTP0x07FC
DTF0x07FD
GIC0x07FE
GUI0x07FF
CSS0x0800
CCS0x0801
BTM0x0802
UTM0x0803
DWK0x0804
PWK0x0805
BTG0x0806
UTG0x0807
JRL0x0808
SAV0x0809
UTW0x080A
4PC0x080B
SSF0x080C
HAK0x080D
NWM0x080E
BIK0x080F
PTM0x0811
PTT0x0812
ERF0x270D
BIF0x270E
KEY0x270F
-
-
-

Languages

-

NWN has built-in support for different languages.  Each of these -languages also has a male and female version.  These languages are commonly -used in names, descriptions, and dialogs.

-
-
- - - - - - - - - - - - - - -
LanguageID
English0
French, Male2
French, Female3
German, Male4
German, Female5
Italian, Male6
Italian, Female7
Spanish, Male8
Spanish, Female9
-
-
-

 

- - - \ No newline at end of file diff --git a/doc/specs/torlack/bif.html b/doc/specs/torlack/bif.html deleted file mode 100644 index f655e0e5ad..0000000000 --- a/doc/specs/torlack/bif.html +++ /dev/null @@ -1,103 +0,0 @@ - - - What are Module File - - - - - - -

What are BIF Files?

-

BIF files contain the actual data files referenced in KEY files.

-

BIF File Header

-

- The BIF file begins with a header.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Offset - Type - Description
0x0000CHAR [4]File type signature (usually "BIFF")
0x0004CHAR [4]Version number (usually "V1  ")
0x0008UINT32Number of resources in the file
0x000CUINT32 - Unknown value
0x0010UINT32Offset from the start of file to the first resource structure
0x0014Total size of the structure
-
-
-

Resource Structures

-

For each resource contained in a BIF, there is a corresponding entry in the - resource list.  This list begins in the file at the offset specified in - the header.  The resource structures are stored sequentially in the BIF - file.  The BIF header specifies the number of resources.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Offset - Type - Description
0x0000UINT32Key file ID of the resource
0x0004UINT32Offset from the start of the file to the given resource
0x0008UINT32Length of the resource in bytes
0x000CUINT32Type of the resource
0x0010Total size of the structure
-
-
- - diff --git a/doc/specs/torlack/binmdl.html b/doc/specs/torlack/binmdl.html deleted file mode 100644 index 3f254254e5..0000000000 --- a/doc/specs/torlack/binmdl.html +++ /dev/null @@ -1,1979 +0,0 @@ - - - - - - - -NWN Binary Model Files Basics - - - - -

NWN Binary Model Files Basics

-

The binary format of the model files contains 3 main sections, the header, -the model data and the vertex or raw data.

-

The header is a only twelve bytes long.  It provides us with the offset -and size of the raw data, and a 32 bit value of 0.  The value of 0 is -important since it can be used to tell the difference between an ASCII model -file and a binary one.  The chances of an ASCII model file starting with 4 -bytes of 0 is somewhere between zero and none.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000UINT32Value of 0 for binary models
0x0004UINT32Offset to the raw data/Size of the model data
0x0008UINT32Size of the raw data
0x000CTotal length of the structure
-
-
-

The model data follows the header in the file.  Immediately following -the model data is the raw data.  Thus, the second value in the header can -be either the model size or the offset from the start of the model data to the -raw data.  Either interpretation works since they are the exact same value.

-

Arrays and Pointers in a Model File

-

The structure of the model is reasonably complex.  Not only does it -contain structures of data, but those structures reference other -structures.  This is accomplished using arrays and pointers.  

-

There are two types of pointers inside of a model file, model data pointer -and raw data pointer.  Each of these pointers are stored as a 32 bit -value.  In the case of model data pointers, the pointer will contain an -offset from the start of the model data to the data in question.  A value -of zero represents a "NULL" pointer or a pointer that doesn't -reference anything.  For raw data pointers, the pointer will contain an -offset from the start of the raw data to the data in question.  A value of -0xFFFFFFFF (unsigned) or -1 (signed) represents a "NULL" pointer or a -pointer that doesn't reference anything.  The reason the raw data uses a -value of -1 is that an offset of zero is a valid pointer into the raw -data.  Excluding one special case, this isn't true for model data -pointers.  (Only one element in a binary model file points to the data at -offset zero in the model data.  However, this value is transient and isn't -actually stored in the model file.)

-

Some of you might be wondering why I am referring to these offsets as -pointers.  After all, in the binary model format, they are always offsets -and never actually a real pointer.  That is very true for the disk image of -a model.  However, on 32 bit address processors (or processors such as the -Alpha that can run in 32 bit address mode with sign extend), after the model is -loaded from disk, all the offsets can be converted to pointers.  This -improves greatly the run time performance.

-

Arrays in models are a slightly more complicated beast.  They -consist of the following three elements.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000UINT32Pointer/Offset to the first elements of the array
0x0004UINT32Number of used entries in the array
0x0008UINT32Number of allocated entries in the array
0x000CTotal length of the structure
-
-
-

For binary model files, the number of used entries and number of allocated -entries will always be the same.  During run time or complication time, -these value will usually differ since these arrays by nature will grow as more -elements are added.

- -

Arrays can contain most anything as long as the elements are all the same -type.  Examples of common arrays in model files would be arrays of vertices, -faces, and even pointers.  In the case of pointers, these arrays are -commonly used to represent a model hierarchy.

- -

Controllers

- -

Each node (to be defined later), in a model can contain zero or more -controllers.  Controllers can be considered as attributes of a node.  -They defined certain aspects of the node.  One of the most common -controller is the position controller.  This controller dictates the -position of the node relative to the parent node.

- -

One of the first obvious questions about controllers is why isn't this -information included as part of the standard node structures.  There are -two reasons for this.  The first reason is that controllers are -optional.  In the case of an emitter node, there are around 50 different -controllers that can be specified.  Having to dedicate storage space to all -of these controllers, used or not, would be a waste of space.  The second -and more important reason is that controllers can be animated.

- -

To animate a model, the model must change over time.  The way to do this -is with time keyed controllers.  All animations take a given amount of time -from start to finish.  For example, the swing of a sword might take 1 -second of total animation time.  In order to draw the model properly, -controllers have different that are time keyed.  For example, normally, the -position controller would be specified as follows.

- -
- -
position 0.2 1.0 0.124
- -
- -

However, in the case of a time keyed position, it would be specified as -follows.

- -
- -
positionkey 3
-  0.0 0.2 1.0 0.124
-  0.4 0.4 1.0 0.510
-  0.8 0.6 1.0 0.516
- -
- -

When specifying a time keyed controller, the first value is the start time -for that value.  Following the start time is the actual value.  In -this case, during animation time 0.0 through 0.4, the first position will be -used.  Between 0.4 and 0.8, the second position will be used.  Between -0.8 and the animation time for the given animation, the 3rd value will be used.

- -

To provide smoother animations, the values will be interpolated.  -For example, given our previous data, if the current animation time was 0.2, -then that would be half way between the first and second positions.  Thus -each position will contribute equally to the actual position used.  If the -animation time was earlier, then the first position would be given more -weight.  The opposite is true if the animation time was later. 

- -

To provide an even smoother animation, a second style of interpolation is -available.  It is know as "bezier" interpolation.  Bezier -interpolation is used when you specify "bezierkey" as the suffix to -the controller name.  (Note: At this time, I have not verified that any -Bioware model uses bezier interpolation.  I don't even know if the -rendering engine supports this option.)

- -

Inside a binary model file, controllers are stored as two arrays in the model -data.  The first array is an array of a controller structure.  The -second array is a simple array of floating point numbers.  The second array -contains the actual controller data while the first tells us about all the -controllers in the array.  The controller structure is as follows.

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000INT32Type of controller
0x0004INT16Number of rows of controller data
0x0006INT16Index into the float array of the first time key
0x0008INT16Index into the float array of the first controller data value
0x000AINT8Number of columns excluding the time key column
0x000BINT8Pad, not used
0x000CTotal length of the structure
-
-
-

There are a few important notes about the controller structure.  The -first thing of note is that for controllers that aren't time keyed, they are -still stored as if they are time keyed but with a single row and a time key -value of zero.  Thus, it is impossible to tell the difference between a -controller that isn't time keyed, and a time keyed controller with a single row -and a time key value of zero.  The second important note is that if the -controller is actually bezier keyed, then the value of 0x10 is ORed in with the -number of columns.  This is how you can tell the difference between a -normal keyed controller and a bezier keyed controller.  Finally, all key -values are stored continuously and all the data values are stored -contiguously.  Thus, if a keyed controller had 3 rows with the time keys -starting at floating point value 5, then the time keys for the other two rows -would be value 6 and value 7.  Also, it appears that for some models, the -controller "detonate" when used as a key controller doesn't even list -a time key.  Thus, the number of columns listed is -1.

-

Following is a list of all controllers:

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameValueUsed in nodes
Position8All
Orientation20All
Scale36All
Color76Light
Radius88Light
ShadowRadius96Light
VerticalDisplacement100Light
Multiplier140Light
AlphaEnd80Emitter
AlphaStart84Emitter
BirthRate88Emitter
Bounce_Co92Emitter
ColorEnd96Emitter
ColorStart108Emitter
CombineTime120Emitter
Drag124Emitter
FPS128Emitter
FrameEnd132Emitter
FrameStart136Emitter
Grav140Emitter
LifeExp144Emitter
Mass148Emitter
P2P_Bezier2152Emitter
P2P_Bezier3156Emitter
ParticleRot160Emitter
RandVel 164Emitter
SizeStart168Emitter
SizeEnd172Emitter
SizeStart_Y176Emitter
SizeEnd_Y180Emitter
Spread184Emitter
Threshold188Emitter
Velocity192Emitter
XSize196Emitter
YSize200Emitter
BlurLength204Emitter
LightningDelay208Emitter
LightningRadius212Emitter
LightningScale216Emitter
Detonate228Emitter
AlphaMid464Emitter
ColorMid468Emitter
PercentStart480Emitter
PercentMid481Emitter
PercentEnd482Emitter
SizeMid484Emitter
SizeMid_Y488Emitter
SelfIllumColor100All Meshes
Alpha128All Meshes
-
-
-

Model Routines and the Node types

-

All nodes in a model begin with six values which have also been called -"tokens".  During the early process of decoding the binary -models, many people including myself made the mistake that these tokens were -used to identify the different types of nodes.  As silly as it sounds, this -was the best we could do at the time.  These six tokens did uniquely -identify each of the nodes.  However, I and I would imagine most others -knew there had to be a deeper meaning to these tokens.  Nobody uses 6 -4-byte values to uniquely identify a handful of different nodes.  All of -these tokens were values in the range of 0x00400000 and 0x00500000.  There -was no apparent bit mask to the values.  However, the difference between -the token values was interesting since it was usually either 0x10 or 0x20.  -Now, if someone was really had everything on the ball and had a reasonable -knowledge of the Win32 image loader, they would have realized something that -eluded everyone, including myself for the longest time.  These tokens were -not tokens, they were routine addresses.  You see, the Win32/NT image -loader loads images at 0x0041000.  Thus, the funny start to all the -numbers.  

-

So, as of now, these "tokens" should be consider unreliable as a -method of identifying model node types.  What if Bioware releases new -models using a new build of their model compiler and these routine addresses -change.  All the existing software that utilizes these "tokens" -would fail.

-

Luckily, the proper way to identify the node type has been located.  -Every node contains a 32 bit bit mask that identifies which structures make up -the node.  Following is a list of all the flags.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameValue
HasHeader0x00000001
HasLight 0x00000002
HasEmitter0x00000004
HasReference0x00000010
HasMesh0x00000020
HasSkin0x00000040
HasAnim0x00000080
HasDangly0x00000100
HasAABB0x00000200
-
-
-

Every node contains a node header.  In the case of a dummy node, only a -node header is required. All mesh nodes also contain a mesh structure.  In -the case of a trimesh node, only the node header and the mesh header is -required.  By looking at a combination of flags, not only do we know what -structures make up the node, but we know what the node type is.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameValue
Dummy0x00000001
Light0x00000003
Emitter0x00000005
Reference0x00000011
TriMesh0x00000021
SkinMesh0x00000061
AnimMesh0x000000A1
DanglyMesh0x00000121
AABBMesh0x00000221
-
-
-

As you can see, each of the different node types contains one or more flags.

- -

Part Numbers

- -

Part numbers are values assigned to nodes as the model compiler creates -them.  However, after the complete geometry has been compiled, these values -are adjusted.

- -

If a model has a super model, then the geometry for the model is compared -against the geometry for the super model.  Any node that matches the name -of a node in the super model will be given the part number assigned to the node -in the super model.  If a node in the model isn't found in the super model, -then it receives a part number of -1.  If a model doesn't have a super -model, then the part numbers are left as is.

- -

After the geometry for an animation has been compiled, the same process is -used to match the nodes in the animation with the nodes in the main model -geometry.  It is important to note that the animation geometry is compare -against the model's geometry and not the model's super model geometry.

- -

Layout of the Binary Model File

-

The basic layout of the binary model file is as follows:

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
File Header
Model
- Data
Model Geometry Header
Node 1
Node 2
...
Node N
Animation Geometry Header 1
Node 1
Node 2
...
Node N
Animation Geometry Header 2
Node 1
Node 2
...
Node N
Animation Geometry Header N
Raw Data
-
-
- -

Not all models contain animation headers.  Also, in many models, there -might be no raw data.  It is also important to remember that this diagram -is a simplification of the real model layout.  For example, to fully -defined a node, it might take 100 bytes of data or 10,000 bytes of data.  -This information might be scattered in sections throughout the model data.

-

The Geometry Header

-

All models contain at least one geometry header.  This header is part of -the larger model geometry header.  If the model contains animations, then -there will be a geometry header in each of the animation geometry headers.  -

-

The format of the geometry header is as follows:

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000Function PointerPointer to a function
0x0004Function PointerPointer to the function to parse a ASCII model line
0x0008CHAR [64]Geometry Name (model or animation name)
0x0048Node Header PointerPointer/Offset to the root node of the geometry
0x004CUINT32Number of nodes in the geometry.  In the case of the - model geometry, if the model has a super mode defined, then this value - also includes the number of nodes in the super model plus one.
0x0050Pointer ArrayArray of unknown data (probably runtime only)
0x005CPointer ArrayArray of unknown data (probably runtime only)
0x0068UINT32Reference count, initialized to 0.  When another - model references this model, then this value is incremented.  When - the referencing model dereferences this model the count is - decremented.  When this count goes to zero, the model can be - deleted since it is no longer needed.
0x006CUINT8Geometry Type
- 0x01 = Basic geometry header (not in models)
- 0x02 = Model geometry header
- 0x05 = Animation geometry header
- 0x80 = If bit is set, then model is a compiled binary model loaded from - disk and converted to absolute addresses.
0x006DUINT8 [3]Padding
0x0070Total length of the structure
-
-
- -

As noted, the two arrays at 0x50 and 0x5C, and the data at 0x68 is unknown at -this time.  

-

The Model Header

-

There is only one model header per model file.  This header always -starts at offset 0 in the model data section or offset 12 from the start of the -file.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000Geometry HeaderGeometry Header
0x0070UINT8Unknown value initialized to 0
0x0071UINT8Unknown value initialized to 1
0x0072UINT8Model classification:
- 0x01 = Effect
- 0x02 = Tile
- 0x04 = Character
- 0x08 = Door
0x0073UINT8If non-zero, model should be fogged
0x0074UINT32Unknown value initialized to 0
0x0078Animation Header Pointer ArrayArray of pointers to all the animation geometries
0x0084Pointer to parent modelPointer to the parent model, always 0
0x0088FLOAT [3]Bounding box min for the model, defaults to (-5, -5, -1)
0x0094FLOAT [3]Bounding box max for the model., defaults to (5, 5, 10)
0x00A0FLOATRadius of the model, defaults to 7.0
0x00A4FLOATAnimation scale, defaults to 1.0
0x00A8CHAR [64]Super model name, defaults to ""
0x00E8Total length of the structure
-
-
-

The Animation Header

-

There are zero or more animation headers per model, one header for each -animation.  All animations contain their own geometry information.  -However, this usually consists of dummy nodes containing controller information.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000Geometry HeaderGeometry Header
0x0070FLOATAnimation length, defaults to 1.0
0x0074FLOATTrans time, defaults to 0.25
0x0078CHAR [64]Animation root, defaults to ""
0x00B8Animation Event ArrayArray of all the events associated with this animation
0x00C4Total length of the structure
-
-
-

Each animation can have zero or more events.  Unlike other arrays that -contain pointers to the structures, the animation event array is an array of the -actual structure.  The structure is as follows:

-
-
- - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000FLOATAfter
0x0004CHAR [32]Event name
0x0024Total length of the structure
-
-
-

Nodes

-

Currently, there are nine different nodes types that make up a model's -geometry.  These nodes specify such elements as lighting, animated graphics -emitters, and different types of meshes.  Each node type share a common -header that supplies us with enough information to tell what type of node it is -and information about controllers and children.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000Function PointerUnknown function
0x0004Function PointerFunction to parse a line of an ASCII model file
0x0008Function PointerFunction to perform post node processing
0x000CFunction PointerUnknown function
0x0010Function PointerUnknown function
0x0014Function PointerUnknown function
0x0018UINT32Inherit color flag
0x001CUINT32Part number/Node number
0x0020CHAR [32]Node name
0x0040Geometry PointerPointer to the parent geometry, always zero
0x0044Parent Node PointerPointer to the parent node, always zero
0x0048Node Header Pointer ArrayArray of pointer to the children nodes
0x0054Controller Key ArrayArray of controller key structures
0x0060FLOAT ArrayArray of controller data values
0x006CUINT32Node flags/type
0x0070Total length of the structure
-
-
-

Mesh Nodes

-

All nodes that contain mesh information share a common header.  The -header is as follows:

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000Node HeaderCommon node header
0x0070Function PointerFunction to prepare the mesh information
0x0074Function PointerFunction to cleanup after mesh has been built
0x0078Face ArrayArray of face structures
0x0084FLOAT [3]Bounding box min, defaults to (0, 0, 0), computed
0x0090FLOAT [3]Bounding box max, defaults to (0, 0, 0), computed
0x009CFLOATMesh radius, defaults to 0, computed
0x00A0FLOAT [3]Average of all points in the mesh, defaults to (0, 0, 0), computed
0x00ACFLOAT [3]Diffuse color, defaults to (0.8, 0.8, 0.8)
0x00B8FLOAT [3]Ambient color, defaults to (0.2, 0.2, 0.2)
0x00C4FLOAT [3]Specular color, defaults to (0, 0, 0)
0x00D0FLOATShininess, defaults to 1
0x00D4UINT32Shadow flag, defaults to 1
0x00D8UINT32Beaming flag, defaults to 0
0x00DCUINT32Render flag, defaults to 1 excluding AABB mesh where it defaults to 0
0x00E0UINT32Transparency hint, defaults to 0 excluding AABB mesh where it defaults - to 1
0x00E4UINT32Unknown value, defaults to 0.  Known values probably - 0, 1, 2, and 4.
0x00E8CHAR [64]Texture0/Bitmap
0x0128CHAR [64]Texture1
0x0168CHAR [64]Texture2
0x01A8CHAR [64]Texture3
0x01E8UINT32Tile fade, defaults to 0
0x01ECUINT32 Pointer ArrayVertex Indices, compile only, not stored in binary
0x01F8UINT32 ArrayLeft over faces, compile only, not stored in binary??
0x0204UINT32 ArrayVertex Indices count array
0x0210Raw UINT16 Pointer ArrayVertex Indices offset array (The pointers exist in the - model data, however, the list of UINT16 that they point to exist in the - raw data.
0x021CRaw Data PointerUnknown, probably used with triangle strips, initialized to -1
0x0220UINT32Unknown, probably used with triangle strips, initialized to 0
0x0224UINT8Triangle mode
- 0x03 = Triangle
- 0x04 = Triangle Strips
0x0225UINT8 [3]Padding
0x0228PointerPointer to a compile only structure, always zero
0x022CRaw FLOAT [3] PointerPointer to the vertex data, stored in the raw data region, -1 if not - present
0x0230UINT16Vertex count
0x0232UINT16Texture count, usually 1
0x0234Raw FLOAT [2] PointerPointer to the texture 0 vertex data, stored in the raw data region, - -1 if not present
0x0238Raw FLOAT [2] PointerPointer to the texture 1 vertex data, stored in the raw data region, - -1 if not present
0x023CRaw FLOAT [2] PointerPointer to the texture 2 vertex data, stored in the raw data region, - -1 if not present
0x0240Raw FLOAT [2] PointerPointer to the texture 3 vertex data, stored in the raw data region, - -1 if not present
0x0244Raw FLOAT [3] PointerPointer to the vertex normals, stored in the raw data region, -1 if - not present
0x0248Raw UINT32 PointerPointer to the vertex RGBA colors, stored in the raw data region, -1 - is not present
0x024CRaw FLOAT [3] PointerPointer to texture animation data, stored in the raw data region, -1 - if not present
0x0250Raw FLOAT [3] PointerPointer to texture animation data, stored in the raw data region, -1 - if not present
0x0254Raw FLOAT [3] PointerPointer to texture animation data, stored in the raw data region, -1 - if not present
0x0258Raw FLOAT [3] PointerPointer to texture animation data, stored in the raw data region, -1 - if not present
0x025CRaw FLOAT [3] PointerPointer to texture animation data, stored in the raw data region, -1 - if not present
0x0260Raw FLOAT? PointerPointer to texture animation data, stored in the raw data region, -1 - if not present
0x0264UINT8Light mapped flag, defaults to 0
0x0265UINT8Rotate texture flag, defaults to 0
0x0266UINT16Padding
0x0268FLOATVertex normal sum divided by 2, initialized to 0
0x026CUINT32/FLOATUnknown, initialized to 0
0x0270Total length of structure
-
-
- -

The two arrays at 0x0210 and 0x0204 are interrelated. The array at 0x0210 -isn't an array of UINT16s, it is an array of pointers to lists of UINT16.  -The number of UINT16s in each of the lists is specified by the elements of the -array at 0x0204.  For the second entry in both 0x0210 and 0x0204, the array -0x0204 might tell us the there are 14 vertices in the list while the 0x0210 -array gives us the pointer to the list.

-

All the pointers 0x022C through 0x0248 point to lists of data.  The -number of elements in these list is specified by the UINT16 at 0x0230 which is -the vertex count.

-

The face structure is as follows:

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000FLOAT [3]Plane normal
0x000CFLOATPlane distance
0x0010INT32Surface ID
0x0014INT16 [3]Adjacent face number or -1
0x001AINT16 [3]Vertex indices
0x0020Total length of structure
-
-
-

The Dummy Node 

-

The dummy node is a default node in a geometry that only contains children -nodes and controller information.  It has no other data associated with it.

-
-
- - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000Node HeaderCommon node header
0x0070Total length of structure
-
-
-

The Light Node

-

The light node specifies light sources in the geometry of the model.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000Node HeaderCommon node header
0x0070FLOATFlare radius
0x0074UINT32 ArrayArray of unknown information
0x0080FLOAT ArrayFlare sizes
0x008CFLOAT ArrayFlare positions
0x0098FLOAT [3] ArrayFlare color shifts
0x00A4CHAR Pointer ArrayArray of pointers to the flare texture names
0x00B0UINT32Light priority, defaults to 5
0x00B4UINT32Ambient only flag, defaults to 0
0x00B8UINT32Dynamic type, defaults to 1
0x00BCUINT32Affect dynamic flag, defaults to 1
0x00C0UINT32Shadow flag, defaults to 1
0x00C4UINT32Generate flare flag, defaults to 0
0x00C8UINT32Fading light flag, defaults to 1
0x00CCTotal length of structure
-
-
-

The Emitter Node

-

The emitter node specifies dynamic graphical elements that are emitted from -the model such as smoke or sparkles.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000Node HeaderCommon node header
0x0070FLOATDead space
0x0074FLOATBlast radius, defaults to 0
0x0078FLOATBlast length, defaults to 0
0x007CUINT32X grid
0x0080UINT32Y grid
0x0084UINT32Space type, defaults to 0
0x0088CHAR [32]Update
0x00A8CHAR [32]Render
0x00C8CHAR [32]Blend
0x00E8CHAR [64]Texture
0x0128CHAR [16]Chunk name
0x0138UINT32Two sided texture flag, defaults to 0
0x013CUINT32Loop flag, defaults to 0
0x0140UINT16Render order, defaults to 0
0x0142UINT16Padding
0x0144UINT32Emitter flags
- 0x0001 = P2P
- 0x0002 = P2P Sel
- 0x0004 = Affected by Wind
- 0x0008 = Is Tinted
- 0x0010 = Bounce
- 0x0020 = Random
- 0x0040 = Inherit
- 0x0080 = Inherit Vel
- 0x0100 = Inherit Local
- 0x0200 = Splat
- 0x0400 = Inherit Part
0x0148Total length of structure
-
-
- -

The Reference Node

-

The reference node... TBD

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000Node HeaderCommon node header
0x0070CHAR [64]Ref model
0x00B0UINT32Reattachable flag
0x00B4Total Length of structure
-
-
-

The TriMesh Node

-

The trimesh node provides the basic drawing mesh used to render elements of -the game.

-
-
- - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000Mesh HeaderCommon mesh header
0x0270Total Length of structure
-
-
-

The Skin mesh Node

-

The skin mesh node provides a specialized mesh where the texture is stretched -and contorted as the model moves to provide a more realistic look to skin.  -It is mostly used just for things such as dragon wings.  

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000Mesh HeaderCommon mesh header
0x0270Weight ArrayUsed during compile time to store weight information
0x027CRaw FLOAT [4] PointerCompiled weight information for each vertex
0x0280Raw UINT16 [4] PointerReference index for bones
0x0284Raw UINT16 PointerBone reference mapping array
0x0288UINT32Number of entries in the mapping array
0x028CQuaternion ArrayQBone ref inv
0x0298FLOAT [3] ArrayTBome ref inv
0x02A4UINT32 ArrayBone constant indices
0x02B0UINT16 [17]Bone part numbers
0x02D2UINT16Spare
0x02D4Total length of structure
-
-
- -

Most all skin data is computed from the weights array.

-

The Animmesh node

-

The animmesh nodes are used for the game's GUI

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000Mesh HeaderCommon mesh header
0x0270FLOATSample Period
0x0274FLOAT [3] ArrayAnimation vertices, not stored in binary
0x0280FLOAT [3] ArrayAnimation texture vertices, not stored in binary
0x028CFLOAT [3] ArrayAnimation vertex normals, not stored in binary
0x0298FLOAT [3] PointerPointer to the stored animation vertex information
0x029CFLOAT [2] PointerPointer to the stored animation texture vertex - information
0x02A0UINT32Number of vertex sets
0x02A4UINT32Number of texture vertex sets
0x02A8Total length of structure
-
-
-

The stored arrays are much like the other stored vertex arrays.  There -size is the number of sets times the number of mesh vertices.  There is -also a difference between how this information is parsed from the ASCII version -and stored in the binary.  In the ASCII version, each vertex is listed sequentially -for each vertex or texture vertex  sets.  However, in the binary -version, each vertex is store with the different sets store sequentially.

-

The Danglymesh node

-

The danglymesh node provides a model with the look of movement by allowing -faces to move due to momentum even after the whole model has stopped.  Thus -is much like how a car passenger jerks forward in a car when it stops suddenly.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000Mesh HeaderCommon mesh header
0x0270FLOAT ArrayVertex constraints
0x027CFLOATDisplacement value
0x0280FLOATTightness value
0x0284FLOATPeriod value
0x0288Total length of structure
-
-
-

Much like the vertex information for the mesh, the constrains are expanded to -match the vertex list stored in the model.

-

The AABB node

-

The aabb node provides the game with the ability to test for collisions.

-
-
- - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000Mesh HeaderCommon mesh header
0x0270AABB Entry PointerAABB table root pointer
0x0274Total length of structure
-
-
-

The following is the layout of the AABB entry structure.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000FLOAT [3]Min bounding box
0x000CFLOAT [3]Max bounding box
0x0018AABB Entry PointerLeft node
0x001CAABB Entry PointerRight node
0x0020INT32Leaf face part number or -1 if not a leaf
0x0020UINT32Most significant plane???
- 0x01 = Positive X
- 0x02 = Positive Y
- 0x04 = Positive Z
- 0x08 = Negative X
- 0x10 = Negative Y
- 0x20 = Negative Z
0x0024Total length of structure
-
-
- -

Update - 09/29/2002

-
    -
  1. Cleaned up the definition of the AABB entry slighly.
  2. -
  3. Updated the skin node.
  4. -
-

Update - 08/22/2002

-
    -
  1. Corrected assorted typos and minor errors
  2. -
  3. "Triangle fan" changed to "Triangle strip".
  4. -
  5. Corrected the type on the offset in the mesh header at 0x0210.  The - array exists in model data, but the actual data that the array points to - exists in the raw data.
  6. -
  7. Added a missing unknown value in the mesh header at 0x00E4.  - Corrected the offset of texture0/bitmap.
  8. -
  9. Updated information on the part numbers and the node counts.
  10. -
  11. The value at 0x0068 in the geometry header is now known.
  12. -
  13. Another flag in the geometry header discovered.
  14. -
- -

Credits

-

I wanted to thank Zaddix and Revinor.  Their information about the -binary model formats provided an excellent starting point for my work.

- - - - diff --git a/doc/specs/torlack/itp.html b/doc/specs/torlack/itp.html deleted file mode 100644 index fbdf00324b..0000000000 --- a/doc/specs/torlack/itp.html +++ /dev/null @@ -1,618 +0,0 @@ - - - What is an ITP File - - - - - - -

What is an ITP File?

-

(Note: ITP files are more correctly known as the GFF and BioWare's - documentation can be found here.)

-

An ITP file can be thought of as a hierarchical collection variables.

-

That cleared it up, didn't it.

-

In an ITP file, you have a series of what can be considered variable assignments - such as 'PlayerName = "Francis"'. There can practically be an infinite - number of variable assignments in one file.  Also, ITP files allow you to - nest variable assignments much the way a programmer might nest structures.

-

ITP files are very common in NWN.  The format is used for a wide collection - of files such as; ITP, BIC, DLG, GIT, GFF, FAC, UTI, UTC, UTT, UTS, UTE, UTD, - UTP, UTM, and UTW.  All of these different files share the same common - file format.  So in reality calling the file format ITP is inaccurate, but - it is the name we all know best.

-

Data Stored in an ITP File

-

ITP files contain seven sections of data.  The sections are as follows:

-
    -
  1. - File Header - - Gives us enough information to begin decoding the remaining sections. -
  2. - Entry Table - - Provides us with our collections of variables and their nesting. -
  3. - Element Table - - Provides the information about all the variables contained within an entry. -
  4. - Variable Names Table - - List of all the different variables names. -
  5. - Variable Data Section - -  Depending on the element in question, this data block can contain a - assortment of data. -
  6. - Multiple Element Map (MultiMap) - - Used to list which elements are contained within an entry when that entry - contains more than one element. -
  7. - List Section - Provides a method for an element to have one or more - entries as children.
  8. -
-

The File Header

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Offset - Type - Description
0x0000char [4]4 byte signature.
0x0004char [4]4 byte version.
0x0008UINT32Offset from start of the file to the first entry
0x000CUINT32Number of entries in the file
0x0010UINT32Offset from start of the file to the first element
0x0014UINT32Number of elements in the file
0x0018UINT32Offset from start of the file to the first variable name
0x001CUINT32Number of names in the variable name block
0x0020UINT32Offset from start of the file to the first variable data
0x0024UINT32Number of bytes in the variable data block
0x0028UINT32Offset from start of the file to the first multimap
0x002CUINT32Number of bytes in the multimap table
0x0030UINT32Offset from start of the file to the first list
0x0034UINT32Number of bytes in the list table
0x0038Total length of the structure
-
-
-

All offsets in the file header are from the start of the file.  The file - header is always at offset zero.  It seems that the offset to the first - entry is always 0x0038.  But please note that for entries and elements, we - are given the number of entries or elements.  For the four remaining data - sections, the total section length is given in bytes.

-

The Entity Table

-

The entity table is an array of structures of the following form:

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
- Offset - Type - Description
0x0000UINT32Entity code (Use unknown)
0x0004UINT32Element index or MultiMap offset
0x0008UINT32Number of elements in this entry
0x000CTotal length of the structure
-
-
-

The first entry in the entry table is the root of whole hierarchy.  From - that one entry, all other entries and elements can be accessed in a logical - form.

-

Entries only serve one function, to contain one or more elements.  - Depending on the number of elements contained in an entry, accessing the - elements can either be easy or require indirect referencing.  When an - entry contains only one element, and thus the value at offset 0x0008 is one, - then the value at offset 0x0004 is the index in the element table of the only - child.  When an entry contains more than one element, then the value at - offset 0x0004 contains a byte offset into the multimap table.  This offset - points to an array of element numbers stored as UINT32 values.  -

-

Here is an example of how you might iterate through the list of elements for an - entity.  This code assumes that the whole file is resident in memory in a - contiguous buffer.

-
-
char *pFileData = AddressOfTheITPDataInMemory;
-Header *pHeader = (Header *) pFileData;
-Entry *pEntryTable = (Entry *) &pFileData [pHeader ->EntryOffset];
-Element *pElementTable = (Element *) &pFileData [pHeader ->ElementOffset];
-
-Entry *pEntry = &pEntryTable [0]; // For this example, use root entry
-
-if (pEntry ->Count == 1) // We have one element
-{
-    Element *pElement = &pElementTable [pEntry ->Offset];
-    // Do something with the element
-}
-else //more than one
-{
-    UINT32 *pMMap = (UINT32 *) &pFileData [pHeader ->MultiMapOffset + pEntry ->Offset];
-    for (int i = 0; i < pEntry ->Count; i++)
-    {
-        Element *pElement = &pElementTable [pMMap [i]];
-        // Do something with the element
-    }
-}
-
-

There is one trick you can use to reduce duplicated code.  I use this trick - in my software.

-
-
char *pFileData = AddressOfTheITPDataInMemory;
-Header *pHeader = (Header *) pFileData;
-Entry *pEntryTable = (Entry *) &pFileData [pHeader ->EntryOffset];
-Element *pElementTable = (Element *) &pFileData [pHeader ->ElementOffset];
-
-Entry *pEntry = &pEntryTable [0]; // For this example, use root entry
-
-UINT32 *pMMap;
-if (pEntry ->Count == 1)
-    pMMap = &pEntry ->Offset;
-else
-    pMMap = (UINT32 *) &pFileData [pHeader ->MultiMapOffset + pEntry ->Offset];
-
for (int i = 0; i < pEntry ->Count; i++)
-{
-    Element *pElement = &pElementTable [pMMap [i]];
-    // Do something with the element
-}
-
-

The Element Table -

-

The element table is an array of structures of the following form: -

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
- Offset - Type - Description
0x0000UINT32Variable type (0-15)
0x0004UINT32Variable name index
0x0008VARIESData for the variable
0x000CTotal length of the structure
-
-
-

As you can see, the element structure is very basic.  From the structure we - know the name of the variable, the type of the variable, and the assigned value - of the variable.  The only difficult part is extracting the value from the - structure. -

-

There are 16 know variable types supported by the ITP format.  They are as - follows: -

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Value - Type - Access - Data
0UINT8DirectUnsigned byte
1INT8DirectSigned byte
2UINT16DirectUnsigned word
3INT16DirectSigned word 
4UINT32DirectUnsigned longword 
5INT32DirectSigned longword 
6UINT64IndirectUnsigned quadword 
7INT64IndirectSigned quadword
8FLOATIndirectFour byte floating point value
9DOUBLEIndirectEight byte floating point value
10STRINGIndirectCounted string
11RESREFIndirectCounted resource name
12STRREFComplexMultilingual capable string
13DATREFComplexCounted binary data 
14CAPREFComplexList of child elements
15LISTComplexList of child entries
-
-
-

For the simple data types, UINT8, INT8, UINT16, INT16, UINT32, INT32 and FLOAT, - the value is just stored directly into offset 0x0008.  Since NWN is for - Intel systems, all the data values are stored in little endian format.  - Thus, for UINT8 and INT8, the value is a single byte stored literally at offset - 0x0008 in the element structure.  A UINT16 or INT16 takes up the first two - bytes.  The remaining three basic data types take up all four bytes.  - Access to the different values of the element can be done with this structure. -

-
-
struct Element
-{
-    UINT32 Type;
-    UINT32 NameIndex;
-    union 
-    {
-        UINT8 ui8;
-        INT8 si8;
-        UINT16 ui16;
-        INT16 si16;
-        UINT32 ui32;
-        INT32 si32;
-        FLOAT flt;
-        UINT32 Offset;
-    };
-};
-

Note: The "Offset" member can be used to access the indirect and complex - data stored in the variable data section.. -

-
-

- In the case of UINT64, INT64 and DOUBLE, the value stored at offset 0x0008 is a - byte offset into the variable data region.  Starting at that address would - be stored the value in question. -

-
-
char *pFileData = AddressOfTheITPDataInMemory;
-Header *pHeader = (Header *) pFileData;
-Element *pElementTable = (Element *) &pFileData [pHeader ->ElementOffset];
-
-Element *pElement = &pElementTable [0]; // For this example, use first element
-
if (pElement ->Type == 6)
-{
-    UINT64 ul64 = *((UINT64 *) &pFileData [
-        pHeader ->VarDataOffset + pElement ->Offset]);
-}
-else if (pElement ->Type == 7)
-{
-    INT64 l64 = *((INT64 *) &pFileData [
-        pHeader ->VarDataOffset + pElement ->Offset]);
-}
-else if (pElement ->Type == 9)
-{
-    double d = *((double *) &pFileData [
-        pHeader ->VarDataOffset + pElement ->Offset]);
-}
-
-

The STRING and RESREF types are two more indirect types but require a bit more - work to access.  For both the STRING and RESREF the actual data is stored - in the variable data section starting at the given offset.  They both - being with the length of string.  Following the length, are the actual - bytes of the string.  The string is not NULL terminated.  However, - STRING and RESREF do differ.  In the case of STRING, the string length is - stored as a UINT32 value.  In the case of RESREF, the string length is - stored as a UINT8 value.

-
-
char *pFileData = AddressOfTheITPDataInMemory;
-Header *pHeader = (Header *) pFileData;
-Element *pElementTable = (Element *) &pFileData [pHeader ->ElementOffset];
-
-Element *pElement = &pElementTable [0]; // For this example, use first element
-
if (pElement ->Type == 10) //STRING
-{
-    UINT32 Length = *((UINT32 *) &pFileData [
-        pHeader ->VarDataOffset + pElement ->Offset]);
-    char *String = (char *) &pFileData [
-        pHeader ->VarDataOffset + pElement ->Offset + 
-        sizeof (UINT32)]
-}
-else if (pElement ->Type == 11) //RESREF
-{
-    UINT8 Length = *((UINT8 *) &pFileData [
-        pHeader ->VarDataOffset + pElement ->Offset]);
-    char *String = (char *) &pFileData [
-        pHeader ->VarDataOffset + pElement ->Offset + 
-        sizeof (UINT8)]
-}
-
-

The STRREF has two uses.  First, it references a string in the dialog.tlk - file.  Second, it provides localized (human language specific) version of - the string.  The offset in the element points to a variable length - structure that begins with the following 12 bytes of data. -

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
- Offset - Type - Description
0x0000UINT32Number of bytes included in the STRREF not including this count.
0x0004INT32ID of the string in the in the dialog.tlk file.  If none, then -1.
0x0008UINT32Number of language specific strings.  This value is usually zero.
0x000CTotal length of the structure
-
-
-

If the number of language specific strings is zero, then the length of the total - STRREF is only 12 bytes.   The text of the string can be retrieved - from dialog.tlk.  The value stored as the size of the STRREF will be 8 - since the 4 bytes in the count aren't included.  However, if the number of - language specific strings is not zero, then there will be the given number of - the following structure following the initial STRREF structure. -

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
- Offset - Type - Description
0x0000UINT32Language of the string (values unknown)
0x0004UINT32Number of bytes in the following string
0x0008CHAR []Variable length string
VARIESTotal length of the structure will always be 8 plus the length of - the string
-
-
-

The DATREF associates a block of arbitrary binary data with the element in - question.  At the offset in the variable data section given in the element - is a UINT32 that has the number of bytes in the DATREF.  Following the - UINT32 is the binary data. -

-

The CAPREF element type allows for an element to contain an array of other - elements by referencing a single entry.  The offset in the element - structure specifies the entry number.  All the elements that entry - references can be considered as the children of the element. -

-

The LIST element type allows for an element to contain an array of other - entries.  For a LIST type, the offset in the element structure specifies - an offset into the list table.  This is a byte offset even though the - table itself is just a series of UINT32 values.  At the first UINT32 - pointed to by the offset will be the number of entries referenced by the - element.  Following this count will be the actual entry - numbers.   -

-
-
char *pFileData = AddressOfTheITPDataInMemory;
-Header *pHeader = (Header *) pFileData;
-Element *pElementTable = (Element *) &pFileData [pHeader ->ElementOffset];
-
-Element *pElement = &pElementTable [0]; // For this example, use first element
-
if (pElement ->Type == 15) //LIST
-{
-    UINT32 *List = *((UINT32 *) &pFileData [
-        pHeader ->ListDataOffset + pElement ->Offset]);
-    UINT32 EntryCount = List [0];
-    for (int i = 0; i < (int) EntryCount; i++)
-    {
-        UINT32 EntryIndex = List [i + 1];
-        // do something with Entry
-    }
-}
-
-

The Variable Name Table

-

The variable name table is a series of variable names stored in 16 byte long - character strings.  Care should be taken when processing the variable name - strings.  If the string is less than 16 characters in length, it will be - NULL terminated.  However, if the variable name is 16 characters long, - then it will not.  The easiest thing to do is copy the string into a 17 - byte character string and then set the 17th character to NULL.  Thus, if - the string is 16 characters long, the 17th character will force a NULL - termination.

-

The Remaining Tables

-

All other data tables are purely subservient to the entry and element - tables. See the section on the elements to see how this information is - interpreted.

-

Credits

-

Even though I was able to decode much of the ITP format soon after the game was - released, I want to thank Logxen, Seg Falt and Chanteur - for the information they published about the file format.  Their - information filled in some very important missing elements such as CAPREF, - DATREF and elements of STRREF.

- - diff --git a/doc/specs/torlack/key.html b/doc/specs/torlack/key.html deleted file mode 100644 index a7ab63cc00..0000000000 --- a/doc/specs/torlack/key.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - -The KEY file in Neverwinter Nights - - - - -

What is a KEY File?

- -

The KEY file in Neverwinter Nights (NWN) is used to provide the game with a -centralized location for locating resources contained in the BIF files. To the -best of my knowledge, only one file, "chitin.key" uses this file -format.

-

The KEY file format is very basic.  It consists a header and two large -tables.  At the start of the file is the header.  It provides -information about the file format, the file format version, offset and size -information about the two tables.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000char [4]4 byte signature ("KEY ")
0x0004char [4]4 byte version ("V1  ")
0x0008UINT32Number of BIF files referenced in the key file
0x000CUINT32Number of resources (RES) contained in the key file
0x0010UINT32Offset from the start of the file to the first BIF entry
0x0014UINT32Offset from the start of the file to the first RES entry
0x0018UINT32 [10]Unknown
0x0040Total Structure Size
-
-
-

One of the two tables of interest to us is the BIF table.  This table -lists the all of the BIF files contained in the NWN data directory.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000UINT32Length of the BIF file in bytes
0x0004UINT32Offset from the start of the KEY file to the BIF file name
0x0008UINT16Length of the BIF file name in bytes.  Not including the - terminating 0.
0x000AUINT16Unknown
0x000CTotal Structure Size
-
-
-

The final table lists all of the resources contained within the BIF -files. 

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000char [16]Name of the resource
0x0010UINT16Type of the resource
0x0012UINT32BIF id of the resource
0x0016Total Structure Size
-
-
-

NOTE: It is very important that the structure packing for this structure is -set to BYTE or WORD alignment.  Failure to do so will cause the UINT32 at -offset 0x0012 to be placed at 0x0014 and thus yield buggy functionality.  -On non-Intel platforms, this alignment will cause alignment faults unless the -compiler has a "unaligned" type or special care is made when accessing -the UINT32.

-

When NWN needs to locate a resource, it can be done just using the resource -name.  If the name is used by more than one resource type, then the type -would also be required to locate the resource.  To locate the resource, the -RES table is be searched for a match.  Once a match has been located, the -BIF id of the resource gives the exact location of the resource.

-

A BIF id is actually two numbers combined into one UINT32.  The first 20 -bits starting from bit 0 specify the resource index inside the bif.  The -final 12 bits specify the BIF in the BIF table contained within the KEY -file. 

-

Example: Suppose NWN needed to locate the resource -"IT_GOLD001".  It would start by searching the RES table for the -entry "IT_GOLD001".  Once located in the RES table, the BIF id is -examined.  Suppose with BIF id is 0x00400029.  The lower 20 bits of -the BIF id tell NWN that the "IT_GOLD001" resource is the 0x29th or -41st resource in the BIF file.  From the upper 12 bits, NWN knows that the -4th BIF file contains the resource.  So, the 4th record is examined in the -BIF table.  This yields the file name for the BIF.  The BIF can then -be opened and the 41st resource read from the file.  (Information on how -the 41st resource in the BIF file is located will be covered in the BIF file -paper.)

- -

For more information on the resource types, see NWN -Data File Basics.

- - - - diff --git a/doc/specs/torlack/mod.html b/doc/specs/torlack/mod.html deleted file mode 100644 index ff2fbe66a8..0000000000 --- a/doc/specs/torlack/mod.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - - -What are Module File - - - - -

Official BioWare Documentation

-

ERF Format Document: http://nwn.bioware.com/developers/erf.html
-
BioWare's "For Developers" site: http://nwn.bioware.com/developers/

- -

What are ERF Files?

-

First off, the ERF file format is a file format used by many different -files in NWN.  This include files such as saved games (SAV), HAK packs (HAK), -exported resource files (ERF), Neverwinter Nights modules (NWM), and of course, -module files (MOD).  ERF stands for Encapsulated Resource File.

-

ERF files are relatively simple files that contain a collection of other -game resources.  They also provide space for a textual description of the -contents of the file.  In the case of modules, this is the module -description.

-

ERF File Header

-

Like almost all data files in NWN, the ERF file begins with a header.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000CHAR [4]File type signature.  Depending on the file type, - this value varies.
0x0004CHAR [4]Version number
0x0008UINT32Number of strings in the description
0x000CUINT32Total length of the strings in bytes
0x0010UINT32Number of resources in the file
0x0014UINT32Offset from the start of file to the first string
0x0018UINT32Offset from the start of file to the first resource - structure
0x001CUINT32Offset from the start of file to the first position - structure
0x0020UINT32Year the file was created with 1900 being 0
0x0024UINT32Day of the year the file was created with Jan 1st being 0
0x0028UINT32String reference for the description.
- Varies depending on the file type:
- MOD = -1, SAV = 0, NWM = -1
- For ERF and HAK, this value is unpredictable
0x002CUINT32 [29]Spare values all initialized to 0
0x00A0Total size of the structure
-
-
-

Strings in the ERF Files

- -

Utilities such as the module editing tool and HAK pack editor from Bioware -allow the user to specify strings that describe the contents of the module or -HAK pack.  These utilities also allow the user to supply this information -in multiple languages.  Each string is stored sequentially starting at the -offset specified in the ERF file header.

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000UINT32Language Identifier (See the document on data file - basics)
0x0004UINT32Length of the string in characters
0x0008CHAR [*]String data
0x0008+LengthTotal size of the structure
-
-
- -

Resource Structures

-

For each resource contained in an ERF, there is a corresponding entry in -the resource list.  This list begins in the file at the offset specified in -the header.  The resource structures are stored sequentially in the ERF file.  The -ERF header specifies the number of resources.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000CHAR [16]Name of the resource
0x0010UINT32Index of the resource
0x0014UINT16Resource type (See the document on data file basics)
0x0016UINT16Reserved and zero
0x0018Total size of the structure
-
-
-

The name of the resource is padded with NULLs however they are not -necessarily NULL terminated.  In the case of a resource name that is 16 -characters long, no NULL will exist.  It can be mixed case, but most all resources -names are lowercase.

-

Position Structures

-

For each resource, there is a corresponding position structure that defines -where the resource is located in the ERF.  This list begins in the file -at the offset specified in the header.  It is also sequentially stored in -the ERF file.

-
-
- - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000UINT32Offset from the start of the file to the given resource
0x0004UINT32Length of the resource in bytes
0x0008Total size of the structure
-
-
- -

Strange Blank Data

-

The people at the OpenKnights -project noticed that for MOD and NWM files only, there exists a strange block of data -between the resource structures and the position structures.  The size of -the block seems to be eight bytes per resource.  In my tests, all the data -seemed to be NULL.  What is strange about this data is that there doesn't -exist an offset in the ERF file header.  Having a block of data that -contains no offset in the file header is very uncharacteristic for Bioware.

- - - - \ No newline at end of file diff --git a/doc/specs/torlack/ncs.html b/doc/specs/torlack/ncs.html deleted file mode 100644 index a4721ba08e..0000000000 --- a/doc/specs/torlack/ncs.html +++ /dev/null @@ -1,1845 +0,0 @@ - - - - - - - -NWN Data Files - NCS File - - - - -

NWScript Basics

-

Before we can really being discussing the actual contents of the NWScript -Compiled Script (NCS) file, we first must go over some of the basic concepts of -the NWScript engine.

-

NWScript is a small instruction set byte code engine.  This means that -instead of compiling the script into x86 machine instructions, the compiler -generates a series of platform independent commands.  Languages such as -Forth or Java use similar techniques to store their compiled source.  When -a script needs to be executed, current byte code is fetched from the compiled -script and then depending on the value of the byte code, the script engine -executes some predefined operation.

-

NWScript Stack Basics

-

In a real machine code program, local variables can be stored in specific memory -locations, memory relative to a stack pointer, or even in the CPU registers.  -Byte code engines don't have the luxury of using CPU registers.  Thus they -are limited to variables being stored in specific memory locations or relative -to a stack pointer.  In the case of NWScript, all variables are accessed -relative to a stack pointer.  Global variables don't exist in the -traditional sense.

-

Since variables are all accessed off the stack without CPU registers, then -operators such as addition must operate differently.  In machine code, if -you wished to add two values, the values would be loaded into registers and then -the operator is executed.  (Note: That is a drastic simplification)  With NWScript, operators always use the top most variable or variables on the stack.  -Once the operation is complete, the variables are removed and the result is -placed on the stack.  Thus, if you have a variable called "nValue" that you -wished to negate but not lose "nValue" on the stack, you would first have make a -copy of the variable onto the top of the stack and then invoke the operator.

-

Let us look at an example program:

-
-
void main ()
-{
-    int i = 12;
-    int j = 1;
-    i = i + j;
-}
-
-

The first two lines of the program declare two variables "i" and "j".  -Once these two statements are complete, the stack looks as follows:

-
-
- - - - - - - - - - - - - - - - - - - -
Top of Stack (SP)
OffsetContents
-4j: 1
-8i: 12
Bottom of Stack
-
-
-

It is important to note that the NWScript stack builds up in increments of 4.  -Thus when accessing values on the stack, they must be referenced using negative -offsets where "-4" points to the top most element on the stack.

-

The next step is to make a copy of "i" so that we can operate on it.

-
-
- - - - - - - - - - - - - - - - - - - - - - - -
Top of Stack (SP)
OffsetContents
-4i: 12
-8j: 1
-12i: 12
Bottom of Stack
-
-
-

Next, we need to make a copy of "j".

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Top of Stack (SP)
OffsetContents
-4j: 1
-8i: 12
-12j: 1
-16i: 12
Bottom of Stack
-
-
-

Now that we have the two values on the top of the stack, we can invoke the -operator to compute the results.

-
-
- - - - - - - - - - - - - - - - - - - - - - - -
Top of Stack (SP)
OffsetContents
-4results: 13
-8j: 1
-12i: 12
Bottom of Stack
-
-
-

The final step is the assignment.  To do this, we copy the top of the -stack down to the variable and then remove the top of the stack.

-
-
- - - - - - - - - - - - - - - - - - - -
Top of Stack (SP)
OffsetContents
-4j: 1
-8i: 13
Bottom of Stack
-
-
-

The current top of stack is also known as the stack pointer (SP).

-

NWScript Global Variables

-

As stated previously, NWScript does not have global variables in the -tradition sense where the values a stored in a known region of memory.  In -NWScript, global variables are placed onto the stack by a dummy shell routine.  -This routine wraps the "main" or "StartingConditional" routine.  So when a -script is executed with global variables, "main" and "StartingConditional" are -not the first routines to be invoked.  The "#globals" routine is invoked to -place the globals onto the stack and then it invokes "main" or "StartingConditional".

-

However, placing global variables on the stack is only half the problem.  -Routines inside the script must be able to know how to reference the variables.  -For a routine such as "main" that is invoked directly from "#globals", it knows -how deep down in the stack the global variables would be.  If it had two -local variables and needed to access the top global variable, it could use an -offset of -12 (3 variables down time -4).  However, subroutines called by -"main" would have no idea how deep down the stack the global variables exist.  -

-

To solve this problem, Bioware created a second stack pointer called "BP" -which is traditionally called base pointer for Intel processors.  Inside -the "#globals" routine just prior to invoking "main" or "StartingConditional", -the current stack pointer (SP) is saved and becomes the new value of BP.  -Then when "main" or and subroutine needs to access a global variable, it just -needs to access them relative to BP.

-

For simplicity, there are not many operations that can be done to a variable -relative to BP.  A copy of a variable can be placed on the top of the -stack.  The current top of stack can be assigned to a variable relative to -BP.  And a variable relative to BP can be incremented or decremented.

-

Calling Subroutines and Engine Routines (ACTIONS)

-

Invoking subroutines or engine routines is done basically in the same manner.  -Arguments are placed on the stack in reverse order.  The call is then made -and the callee removes all the arguments from the stack prior to returning.

-

However, return values are handled differently.  In the case of a script -subroutine that returns a value, space for the return value is reserved, then -the arguments are placed on the stack and finally the subroutine is invoked.  -In the case of an engine routine, it is the job of the engine routine to place -the return value on the stack after the calling arguments are removed.

-

Here is an example of a call to a subroutine:

-
-
int j = DoSomeScriptSubroutine (12, 14); 
-
-

Prior to the call, the stack looks as follows:

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Top of Stack (SP)
OffsetContents
-4Arg1: 12
-8Arg2: 14
-12Return: ??
-16j: ??
Bottom of Stack
-
-
-

After the call, the stack looks as follows:

-
-
- - - - - - - - - - - - - - - - - - - -
Top of Stack (SP)
OffsetContents
-4Return: ??
-8j: ??
Bottom of Stack
-
-
-

Here is an example of a call to an engine routine:

-
-
int j = DoSomeEngineRoutine (12, 14); 
-
-

Prior to the call, the stack looks as follows:

-
-
- - - - - - - - - - - - - - - - - - - - - - - -
Top of Stack (SP)
OffsetContents
-4Arg1: 12
-8Arg2: 14
-12j: ??
Bottom of Stack
-
-
-

After the call, the stack looks as follows:

-
-
- - - - - - - - - - - - - - - - - - - -
Top of Stack (SP)
OffsetContents
-4Return: ??
-8j: ??
Bottom of Stack
-
-
-

Byte Code Basics

-

All NWScript byte codes start with two bytes.  The first byte is the -instruction such as "RETN" or "JSR".  The second byte is the type of the -instruction such as an integer or floating point operation.

-

Following is a list of all the different types:

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Unary Types
ValueType
3 (0x03)Integer (I)
4 (0x04)Float (F)
5 (0x05)String (S)
6 (0x06)Object (O)
16-31
- (0x10-0x1F)
Engine Types
- 16 = Effect
- 17 = Event
- 18 = Location
- 19 = Talent
Binary Types
ValueType
32 (0x20)Integer, Integer (II)
33 (0x21)Float, Float (FF)
34 (0x22)Object, Object (OO)
35 (0x23)String, String (SS)
36 (0x24)Structure, Structure (TT)
37 (0x25)Integer, Float (IF)
38 (0x26)Float, Integer (FI)
48-57
- (0x30-0x39)
Engine Types
- 48 = Effect, Effect
- 49 = Event, Event
- 50 = Location, Location
- 51 = Talent, Talent
58 (0x3A)Vector, Vector (VV)
59 (0x3B)Vector, Float (VF)
60 (0x3C)Float, Vector (FV)
-
-
-

The value listed in parenthesis next to the type name is the short hand name -used to identify different byte codes.  For example ADDII would add two -integer values.

-

The TT opcode type is used to compare ranges of elements on the stack.  -More specifically, it is used for structures and vectors.

-

Byte Codes

-

Following is a list and description of all the known byte codes. 

-

NOTE: All multi-byte values are stored in big endian order.

-

CPDOWNSP - Copy Down Stack Pointer

-

Copy the given number of bytes from the top of the stack down to the location -specified.

-

The value of SP remains unchanged.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x01Byte Code
10x01Type
2-5Offset Destination of the copy relative to the top of the stack.
6-7SizeNumber of bytes to copy
-
-

RSADDx- Reserve Space on Stack
-RSADDI- Reserve Integer Space on Stack
-RSADDF- Reserve Float Space on Stack
-RSADDS- Reserve String Space on Stack
-RSADDO- Reserve Object Space on Stack

-

Reserve space on the stack for the given variable type.

-

The value of SP is increased by the size of the type reserved.  (Always -4)

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x02Byte Code
10x03
- 0x04
- 0x05
- 0x06
RSADDI type
- RSADDF type
- RSADDS type
- RSADDO type
-

CPTOPSP - Copy Top Stack Pointer

-

Add the given number of bytes from the location specified in the stack to the -top of the stack.

-

The value of SP is increased by the number of copied bytes.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x03Byte Code
10x01Type
2-5Offset Source of the copy relative to the top of the stack.
6-7SizeNumber of bytes to copy
-
-

CONSTI - Place Constant Integer Onto the Stack

-

Place the constant integer onto the top of the stack.

-

The value of SP is increased by the size of the type reserved.  (Always -4)

-
- - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x04Byte Code
10x03Type
2-5IntegerInteger value of the constant
-
-

CONSTF - Place Constant Float Onto the Stack

-

Place the constant float onto the top of the stack.

-

The value of SP is increased by the size of the type reserved.  (Always -4)

-
- - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x04Byte Code
10x04Type
2-5FloatFloat value of the constant
-
-

CONSTS - Place Constant String Onto the Stack

-

Place the constant string onto the top of the stack.

-

The value of SP is increased by the size of the type reserved.  (Always -4)

-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x04Byte Code
10x05Type
2-3String LengthLength of the string
4-nString DataText of the string
-
-

CONSTO - Place Constant Object ID Onto the Stack

-

Place the constant object ID onto the top of the stack.

-

The value of SP is increased by the size of the type reserved.  (Always -4)

-
- - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x04Byte Code
10x06Type
2-5ObjectWhen the type is an object, these bytes contain the OID
-
-

ACTION - Call an Engine Routine

-

Invoke the engine routine specified.  All arguments must be placed on -the stack in reverse order prior to this byte code.  The arguments will be -removed by the engine routine and any return value then placed on the stack.

-

The value of SP is increased by the size of the return value and decreased by -the total size of the arguments.  It is important to note that the total -size of the arguments might be different than the number of arguments.  -Structures and vectors are take up more space than normal types.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x05Byte Code
10x00Type
2-3Routine #Number of the action routine.  NWSCIPT.NSS lists engine routines - in order starting at 0
4Arg CountNumber of arguments
-
-

LOGANDII - Logical AND Two Integers

-

Compute the logical AND of two integer values.

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x06Byte Code
10x20Type
-

LOGORII - Logical OR Two Integers

-

Compute the logical OR of two integer values.

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x07Byte Code
10x20Type
-

INCORII - Bitwise Inclusive OR Two Integers

-

Compute the inclusive OR of two integer values.

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x08Byte Code
10x20Type
-

EXCORII - Bitwise Exclusive OR Two Integers

-

Compute the exclusive OR of two integers.

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x09Byte Code
10x20Type
-

BOOLANDII - Boolean or Bitwise AND Two Integers

-

Compute the boolean AND of two integers.

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x0AByte Code
10x20Type
-

EQUALxx - Test for Logical Equality
-EQUALII - Test for Logical Equality Two Integers
-EQUALFF - Test for Logical Equality Two Floats
-EQUALSS - Test for Logical Equality Two Strings
-EQUALOO - Test for Logical Equality Two Object IDs

-

Test the two operand for logical equality.  This operator supports the -comparison or all the basic types and then engine types as long as both operands -have the same type.

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x0BByte Code
10x20
- 0x21
- 0x22
- 0x23
- 0x30-0x39
EQUALII Type
- EQUALFF Type
- EQUALOO Type
- EQUALSS Type
- For engine types
-

EQUALTT - Test for Logical Equality Two Structures

-

Test the two operand for logical equality.  This operator supports the -comparison or all the basic types and then engine types as long as both operands -have the same type.

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x0BByte Code
10x24Type
2-3SizeSize of structure
-

NEQUALxx - Test for Logical Inequality
-NEQUALII - Test for Logical Inequality Two Integers
-NEQUALFF - Test for Logical Inequality Two Floats
-NEQUALSS - Test for Logical Inequality Two Strings
-NEQUALOO - Test for Logical Inequality Two Object IDs

-

Test the two operand for logical inequality.  This operator supports the -comparison or all the basic types and then engine types as long as both operands -have the same type.

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x0CByte Code
10x20
- 0x21
- 0x22
- 0x23
- 0x30-0x39
EQUALII Type
- EQUALFF Type
- EQUALOO Type
- EQUALSS Type
- For engine types
-

NEQUALTT - Test for Logical Inequality Two Structures

-

Test the two operand for logical inequality.  This operator supports the -comparison or all the basic types and then engine types as long as both operands -have the same type.

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x0CByte Code
10x24Type
2-3SizeSize of the structure
-

GEQxx - Test for Greater Than or Equal
-GEQII - Test for Greater Than or Equal Two Integers
-GEQFF - Test for Greater Than or Equal Two Floats

-

Test the two operand for logically greater than or equal.

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x0DByte Code
10x20
- 0x21
GEQII Type
- GEQFF Type
-

GTxx - Test for Greater Than
-GTII - Test for Greater Than Two Integers
-GTFF - Test for Greater Than Two Floats

-

Test the two operand for logically greater than.

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x0EByte Code
10x20
- 0x21
GTII Type
- GTFF Type
-

LTxx - Test for Less Than
-LTII - Test for Less Than Two Integers
-LTFF - Test for Less Than Two Floats

-

Test the two operand for logically less than.

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x0FByte Code
10x20
- 0x21
LTII Type
- LTFF Type
-

LEQxx - Test for Less Than or Equal
-LEQII - Test for Less Than or Equal Two Integers
-LEQFF - Test for Less Than or Equal Two Floats

-

Test the two operand for logically less than or equal.

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x10Byte Code
10x20
- 0x21
LEQII Type
- LEQFF Type
-

SHLEFTII - Shift the Integer Value Left

-

Shift the value left be the given number of bits.  Operand one is the -value to shift while operand two is the number of bits to shift.

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x11Byte Code
10x20Type
-

SHRIGHTII - Shift the Integer Value Right

-

Shift the value right be the given number of bits.  Operand one is the value to shift while operand two is the -number of bits to shift.

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x12Byte Code
10x20Type
-

USHRIGHTII - Unsigned Shift the Integer Value Right

-

Shift the value right be the given number of bits as if it was an unsigned -integer and not a signed integer.  Operand one is the value to shift while operand two is the number of bits to -shift.

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x13Byte Code
10x20Type
-

ADDxx - Add Two Values
-ADDII - Add Two Integer Values
-ADDIF - Add an Integer and Float Values
-ADDFI - Add a Float and Integer Values
-ADDFF - Add Two Float Values
-ADDSS - Add Two String Values
-ADDVV - Add Two Vector Values

-

Add the two operands.

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x14Byte Code
10x20
- 0x25
- 0x26
- 0x21
- 0x23
- 0x3A
ADDII Type
- ADDIF Type
- ADDFI Type
- ADDFF Type
- ADDSS Type
- ADDVV Type
-

SUBxx - Subtract Two Values
-SUBII - Subtract Two Integer Values
-SUBIF - Subtract an Integer and Float Values
-SUBFI - Subtract a Float and Integer Values
-SUBFF - Subtract Two Float Values
-SUBVV - Subtract Two Vector Values

-

Subtract the two operands. 

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x15Byte Code
10x20
- 0x25
- 0x26
- 0x21
- 0x3A
SUBII Type
- SUBIF Type
- SUBFI Type
- SUBFF Type
- SUBVV Type
-

MULxx - Multiply Two Values
-MULII - Multiply Two Integer Values
-MULIF - Multiply an Integer and Float Values
-MULFI - Multiply a Float and Integer Values
-MULFF - Multiply Two Float Values
-MULVF - Multiply a Vector and Float Values
-MULFV - Multiply a Float and Vector Values

-

Multiply the two operands.

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x16Byte Code
10x20
- 0x25
- 0x26
- 0x21
- 0x3B
- 0x3C
MULII Type
- MULIF Type
- MULFI Type
- MULFF Type
- MULVF Type
- MULFV Type
-

DIVxx - Divide Two Values
-DIVII - Divide Two Integer Values
-DIVLIF - Divide an Integer and Float Values
-DIVFI - Divide a Float and Integer Values
-DIVFF - Divide Two Float Values
-DIVVF - Divide a Vector and Float Values

-

Divide the two operands.

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x17Byte Code
10x20
- 0x25
- 0x26
- 0x21
- 0x3B
DIVII Type
- DIVIF Type
- DIVFI Type
- DIVFF Type
- DIVVF Type
-

MODII- Compute the Modulus of Two Integer Values

-

Computes the modulus of two values.

-

The value of SP is increased by the size of the result while decreased by the -size of both operands.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x18Byte Code
10x20Type
-

NEGx - Compute the Negation of a Value
-NEGI - Compute the Negation of an Integer Value
-NEGF - Compute the Negation of a Float Value

-

Computes the negation of a value.

-

The value of SP remains unchanged since the operand and result are of the -same size.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x19Byte Code
10x03
- 0x04
NEGI Type
- NEGF Type
-

COMPI - Compute the One's Complement of an Integer Value

-

Computes the one's complement of a value.

-

The value of SP remains unchanged since the operand and result are of the -same size.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x1AByte Code
10x03Type
-

MOVSP - Adjust the Stack Pointer

-

Add the value specified in the instruction to the stack pointer.

-

The value of SP is adjusted by the value specified.

- - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x1BByte Code
10x00Type
2-5OffsetValue to add to the stack pointer.
-

STORE_STATEALL - Store the Current State of the Stack (Obsolete)

-

Obsolete instruction to store the state of the stack and save a -pointer to a block of code to later be used as an "action" argument.  This -byte code is always followed by a JMP and then a block of code to be executed by -a later function such as a DelayCommand.

-

The value of SP remains unchanged.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x1CByte Code
10x08Offset to the block of code for an "action" argument
-

JMP - Jump to a New Location

-

Change the current execution address to the relative address given in the -instruction.

-

The value of SP remains unchanged.

- - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x1DByte Code
10x00Type
2-5OffsetOffset to the new program location from the start of this instruction
-

JSR - Jump to Subroutine

-

Jump to the subroutine at the relative address given in the instruction.  -If the routine returns a value, the RSADDx instruction should first be used to -allocate space for the return value.  Then all arguments to the subroutine -should be pushed in reverse order.

-

The value of SP remains unchanged.  The return value is NOT placed on -the stack.

- - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x1EByte Code
10x00Type
2-5OffsetOffset to the new program location from the start of this instruction
-

JZ - Jump if Top of Stack is Zero

-

Change the current execution address to the relative address given in the -instruction if the integer on the top of the stack is zero.

-

The value of SP is decremented by the size of the integer.

- - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x1FByte Code
10x00Type
2-5OffsetOffset to the new program location from the start of this instruction
-

RETN - Return from a JSR

-

Return from a JSR.  All arguments used to invoke the subroutine should -be removed prior to the RETN.  This leaves any return value on the top of -the stack.  The return value must be allocated by the caller prior to -invoking the subroutine.

-

The value of SP remains unchanged.  The return value is NOT placed on -the stack.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x20Byte Code
10x00Type
-

DESTRUCT - Destroy Element on the Stack

-

Given a stack size, destroy all elements in that size excluding the given -stack element and element size.

-

The value of SP decremented by the given stack size minus the element size.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x21Byte Code
10x01Type
2-3SizeTotal number of bytes to remove off the top of the stack
4-5OffsetOffset from the start of the bytes to remove to the element not to - destroy
6-7SizeSize of the element not to destroy
-

NOTI - Compute the logical NOT of an Integer Value

-

Computes the logical not of the value.

-

The value of SP remains unchanged since the operand and result are of the -same size.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x22Byte Code
10x03Type
-

DECISP - Decrement Integer Value Relative to Stack Pointer

-

Decrements an integer relative to the current stack pointer.

-

The value of SP remains unchanged.

- - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x23Byte Code
10x03Type
2-5OffsetOffset of the integer relative to the stack pointer
-

INCISP - Increment Integer Value Relative to Stack Pointer

-

Increments an integer relative to the current stack pointer.

-

The value of SP remains unchanged.

- - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x24Byte Code
10x03Type
2-5OffsetOffset of the integer relative to the stack pointer
-

JNZ - Jump if Top of Stack is Non-Zero

-

Change the current execution address to the relative address given in the -instruction if the integer on the top of the stack is non-zero.

-

The value of SP is decremented by the size of the integer.

- - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x25Byte Code
10x00Type
2-5OffsetOffset to the new program location from the start of this instruction
-

CPDOWNBP - Copy Down Base Pointer

-

Copy the given number of bytes from the base pointer down to the location -specified. This instruction is used to assign new values to global variables.

-

The value of SP remains unchanged.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x26Byte Code
10x01Type
2-5Offset Destination of the copy relative to the base pointer
6-7SizeNumber of bytes to copy
-
-

CPTOPBP - Copy Top Base Pointer

-

Add the given number of bytes from the location specified relative to the -base pointer to the -top of the stack.  This instruction is used to retrieve the current value -of global variables.

-

The value of SP is increased by the number of copied bytes.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x27Byte Code
10x01Type
2-5Offset Source of the copy relative to the base pointer
6-7SizeNumber of bytes to copy
-
-

DECIBP - Decrement Integer Value Relative to Base Pointer

-

Decrements an integer relative to the current base pointer.  This -instruction is used to decrement the value of global variables.

-

The value of SP remains unchanged.

- - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x28Byte Code
10x03Type
2-5OffsetOffset of the integer relative to the base pointer
-

INCIBP - Increment Integer Value Relative to Base Pointer

-

Increments an integer relative to the current base pointer.  This -instruction is used to increment the value of global variables.

-

The value of SP remains unchanged.

- - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x29Byte Code
10x03Type
2-5OffsetOffset of the integer relative to the base pointer
-

SAVEBP  - Set a New Base Pointer Value

-

Save the current value of the base pointer and set BP to the current stack -position.

-

The value of SP remains unchanged.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x2AByte Code
10x00Type
-

RESTOREBP - Restored the BP

-

Restore the BP from a previous SAVEBP instruction.

-

The value of SP remains unchanged.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x2BByte Code
10x00Type
-

STORE_STATE - Store the Current Stack State

-

Store the state of the stack and save a -pointer to a block of code to later be used as an "action" argument.  This -byte code is always followed by a JMP and then a block of code to be executed by -a later function such as a DelayCommand.

-

The value of SP remains unchanged.

- - - - - - - - - - - - - - - - - - - - - - - - - - -
BytesValueDescription
00x2CByte Code
10x10Offset to the block of code for an "action" argument
2-5SizeSize of the variables to save relative to BP.  This would be all - the global variables.
6-9SizeSize of the local routine variables to save relative to SP.
-

NOP - No-operation

-

Perform no program function.  This opcode is used as a placeholder for -the debugger.

-

The value of SP remains unchanged.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x2DByte Code
10x00Type
-

T - Program Size

-

This byte code isn't a real instruction and is always found at offset 8 in -the NCS file.

-

The value of SP remains unchanged.

- - - - - - - - - - - - - - - - -
BytesValueDescription
00x42Byte Code
1-4SizeSize of the NCS file
- - - - \ No newline at end of file diff --git a/doc/specs/torlack/plt.html b/doc/specs/torlack/plt.html deleted file mode 100644 index 67e7aeb92f..0000000000 --- a/doc/specs/torlack/plt.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - - -NWN Texture Palette File - - - - -

What is a Texture Palette File (PLT)?

- -

A texture palette file is a variant on a standard texture.  However, -instead of being a fixed texture where all the colors are constant, a texture -palette file allows the content creator to select from a wide range of color -palettes for preset areas in the texture.

- -

There are four basic elements that go into converting a PLT to a real texture -at runtime.  Some elements are supplied by the PLT file while others are -supplied by the game itself and the content creator.

-
    -
  • Palette Group - An index value from 0 to 9 that selects which palette - group is to be used (from PLT file).
  • -
  • Palette Index  - An index value from 0 to 255 that selects which - palette to use in a palette group (from the content creator).
  • -
  • Color Index - An index value from 0 to 255 that selects a specific color - from the given palette (from PLT file).
  • -
  • Palette File - A file that contains the actual color values for each - palette in a group (supplied by game).
  • -
- -

Palette Groups 

- -

There are a total of ten different palette groups. The palette name is a -human readable name displayed in the user interface.  The group index is -the index of the palette group.  This matches the indices found in the PLT -files.  The UI graphic is the palette as it is presented to the content -creator.  Each UI graphic contains 256 different selections that corresponds -directly to a row in the actual palette file in the last column of the table.

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameGroup IndexUIPalette File
Skin0
Hair1
Metal 12
Metal 23
Cloth 14
Cloth 25
Leather 16
Leather 27
Tattoo 18
Tattoo 29
- -
-
- -

Texture Palette File Format

- -

The PLT file beings with a fixed header that defines the attributes of the -texture.  Following the header is pixel information.

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000char [4]4 byte signature ("PLT ")
0x0004char [4]4 byte version ("V1  ")
0x0008UINT32Unknown
0x000CUINT32Unknown
0x0010UINT32Width of the texture in pixels
0x0014UINT32Height of the texture in pixels
0x0018Total Structure Size
-
-
-

The actual pixel data is an array of the following structure.  There are -(width X height) instances of this structure in a palette file.

-
-
- - - - - - - - - - - - - - - - - - - - -
OffsetTypeDescription
0x0000UINT8Color Index
0x0001UINT8Palette Group Index
0x0002Total Structure Size
-
-
-

Example

-

Imagine one of the body textures used to skin a model.  From this PLT -file, we have the width and height of the texture.  When NWN started, it -loads the palette files into memory.  Finally, for a specific creature, we -have 10 different values, one for each of the different palette groups.  -These values specify which palette is to be used.  These values are -supplied by the content creator.

-

For each of the pixels in the PLT texture, we have a color index and a -palette group index.  To locate the actual color value for that pixel, the -following process is used.

-
    -
  1. Using the palette group index for the pixel in the texture, get the - palette index for that palette group as specified by the 10 values supplied - by the content creator.
  2. -
  3. The palette index corresponds to a row in the palette file for given - palette group.  This row become our palette for the pixel.
  4. -
  5. Take the color index for the pixel in question and retrieve the color from - the selected palette.
  6. -
-

Credits

-

I have no idea who originally decoded the PLT file format.  It wasn't -me.  I read a very sketchy description on the Bioware forums and then -filled in the blanks.  Thanks whoever you are.

- - - -