adonthell-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Adonthell-commits] CVS: doc/architecture inventory.fig,NONE,1.1 invent


From: Kai Sterker <address@hidden>
Subject: [Adonthell-commits] CVS: doc/architecture inventory.fig,NONE,1.1 inventory.pdf,NONE,1.1 items.fig,NONE,1.1 items.pdf,NONE,1.1 items.tex,NONE,1.1 Makefile,1.2,1.3 architecture.tex,1.3,1.4
Date: Mon, 03 Mar 2003 18:26:56 -0500

Update of /cvsroot/adonthell/doc/architecture
In directory subversions:/tmp/cvs-serv3462

Modified Files:
        Makefile architecture.tex 
Added Files:
        inventory.fig inventory.pdf items.fig items.pdf items.tex 
Log Message:
ADDED description of item/inventory system

--- NEW FILE ---
#FIG 3.2
Landscape
Center
Metric
A4      
100.00
Single
-2
1200 2
0 32 #bee7ff
0 33 #dff3ff
0 34 #f7ffdf
0 35 #96928e
0 36 #e7e7e7
0 37 #f7ffae
0 38 #ffe7df
0 39 #ffc3ae
6 1980 1890 2700 2610
6 1980 1890 2430 2340
6 1980 1890 2430 2340
6 2070 1980 2340 2250
2 2 0 1 35 37 48 0 20 0.000 0 0 -1 0 0 5
         2070 1980 2340 1980 2340 2250 2070 2250 2070 1980
-6
2 2 0 1 0 34 48 0 20 0.000 0 0 -1 0 0 5
         1980 1890 2430 1890 2430 2340 1980 2340 1980 1890
-6
2 2 0 1 35 37 48 0 20 0.000 0 0 -1 0 0 5
         2025 1935 2385 1935 2385 2295 2025 2295 2025 1935
-6
6 2070 1980 2520 2430
6 2070 1980 2520 2430
6 2160 2070 2430 2340
2 2 0 1 35 37 48 0 20 0.000 0 0 -1 0 0 5
         2160 2070 2430 2070 2430 2340 2160 2340 2160 2070
-6
2 2 0 1 0 34 48 0 20 0.000 0 0 -1 0 0 5
         2070 1980 2520 1980 2520 2430 2070 2430 2070 1980
-6
2 2 0 1 35 37 48 0 20 0.000 0 0 -1 0 0 5
         2115 2025 2475 2025 2475 2385 2115 2385 2115 2025
-6
6 2160 2070 2610 2520
6 2160 2070 2610 2520
6 2250 2160 2520 2430
2 2 0 1 35 37 48 0 20 0.000 0 0 -1 0 0 5
         2250 2160 2520 2160 2520 2430 2250 2430 2250 2160
-6
2 2 0 1 0 34 48 0 20 0.000 0 0 -1 0 0 5
         2160 2070 2610 2070 2610 2520 2160 2520 2160 2070
-6
2 2 0 1 35 37 48 0 20 0.000 0 0 -1 0 0 5
         2205 2115 2565 2115 2565 2475 2205 2475 2205 2115
-6
6 2250 2160 2700 2610
6 2250 2160 2700 2610
6 2340 2250 2610 2520
2 2 0 1 35 37 48 0 20 0.000 0 0 -1 0 0 5
         2340 2250 2610 2250 2610 2520 2340 2520 2340 2250
-6
2 2 0 1 0 34 48 0 20 0.000 0 0 -1 0 0 5
         2250 2160 2700 2160 2700 2610 2250 2610 2250 2160
-6
2 2 0 1 35 37 48 0 20 0.000 0 0 -1 0 0 5
         2295 2205 2655 2205 2655 2565 2295 2565 2295 2205
-6
-6
2 2 0 2 0 32 50 0 20 0.000 0 0 -1 0 0 5
         1350 1800 3600 1800 3600 3150 1350 3150 1350 1800
2 2 0 1 0 33 49 0 20 0.000 0 0 -1 0 0 5
         1440 1890 1890 1890 1890 2340 1440 2340 1440 1890
2 2 0 1 0 33 49 0 20 0.000 0 0 -1 0 0 5
         1980 1890 2430 1890 2430 2340 1980 2340 1980 1890
2 2 0 1 0 33 49 0 20 0.000 0 0 -1 0 0 5
         2520 1890 2970 1890 2970 2340 2520 2340 2520 1890
4 0 0 49 0 0 12 0.0000 4 15 135 3150 2250 ...\001
4 0 0 49 0 0 12 0.0000 4 180 720 2790 3060 Inventory\001
4 0 0 40 0 0 10 0.0000 4 105 270 1575 2295 Slot\001
4 0 0 49 0 0 12 1.5708 4 15 135 1620 2610 ...\001
4 0 0 47 0 0 8 0.0000 4 75 285 2340 2520 Stack\001

--- NEW FILE ---
%PDF-1.3
%Ç쏢
6 0 obj
<</Length 7 0 R/Filter /FlateDecode>>
stream
xœ••ÛŽ1†ïó¾\jǎ“[$´â’yTv«º«–
ÄÛãtTb褩™f~Ÿ>O<ðÀ×k\·{wpïv?œGe±'Å'pܹ
"Œ‚̸Ökõ¬ZvNb5å9§e\
ª%2#ONÅÞ»xÌºrŒxBŠ¸¨m݄¦ÁÔØd뗕2eõ6ëª6QvB„®°iP.±±ÓXÈ
d{Tnc³nÚ¹ÄKJsVËlTKlF¢Q뙿Âf]¹À&ÙÀJ1Û±ðzšuËîœ×ÊUógÎ/fh2‡(¤
ªŽ¹îôyûm‘ãÌl6œ1dµSÈÔ¾]u¦vß_OóP¬×LEw1endstream
endobj
7 0 obj
500
endobj
5 0 obj
<</Type/Page/MediaBox [0 0 146 89]
/Rotate 0/Parent 3 0 R
/Resources<</ProcSet[/PDF /Text]
/ExtGState 12 0 R
/Font 13 0 R
>>
/Contents 6 0 R
>>
endobj
3 0 obj
<< /Type /Pages /Kids [
5 0 R
] /Count 1
>>
endobj
1 0 obj
<</Type /Catalog /Pages 3 0 R
>>
endobj
4 0 obj
<</Type/ExtGState/Name/R4/TR/Identity/OPM 1/SM 0.02>>
endobj
9 0 obj
<</Type/FontDescriptor/FontName/WEHTBZ+Times-Roman/FontBBox[-168 -281 1000 
924]/Flags 34
/Ascent 924
/CapHeight 676
/Descent -281
/ItalicAngle 0
/StemV 111
/MissingWidth 250
/XHeight 461
/CharSet(/period/I/S/a/c/e/k/l/n/o/r/t/v/y)
/FontFile3 8 0 R>>
endobj
8 0 obj
<</Subtype/Type1C/Filter/FlateDecode/Length 11 0 R>>stream
xœT}PgÞ5Ý¹ClISA4ÙqzŽ-H½No”9o®*J#æ
R„hCÈd²NÒ’€¸‘¡yh]YS¼æºì¸,(ƒ       |‰ÆDä“ŸH/   
QT`„£J1Ý!Ÿjiðvx|nõ+bLÄ`'äÁ4p&Ü{ŏ‡Å
'vÎ{º9`‡r±#•o
ÇK†ôÀ‘œÆntÖZêÀZü®îú^{—à\]{rÒ|ù7×ïÀ—n©a–98ìåÓ$~6ÜF?X‚9K²!a³²‡ïï
|¼ÏQª;1ßì,öâXƊ»`‡°ëWG¦
™p§òØÏËéƒ ”Ç軶÷Tûä­ºbæIãô‰á"PŽÛHêx…)dã¢êáO öä“{¹¬?…™Êà§Þ^
”!¾¯s
Xü͒{^Ó܆É%*N>!Ö$ŽÈšHç@(œ§½·”É13Û:›±??úúO…Š©‹êÍïëæÀ-üöå™ûW/×ë/ªÎŸ
Õiñ³òøˆ#+      ôïÿ”A¢JðFcÓ^oF°l¾!>Æ->
.uáñf=¶Ü6ÐvÇuäŒ
»$CÖÆ
©–address@hidden@ê`Ÿ'ä>address@hidden¿
_€¿Oý¶§w‚ÇŸZngýDÚþŠL9ØÙ×Ùð©þÆcêï¬(òùöÆ·ßÆê:address@hidden; address@hidden
address@hidden,wÊßéz´¶8M’ð“S…˜×O6Ñ­¿hH3¶&Jªaôђ,"ÕÔ#vt
ðæÂuî]š†kç$ÏñÍQ>ÿ¥Ñ\k Ïšcçϝ¯=gT'×E…£QX•Oü`ù‡¤¤å3IkäßHL¡&
endstream
endobj
11 0 obj
1876
endobj
12 0 obj
<</R4
4 0 R>>
endobj
13 0 obj
<</R10
10 0 R>>
endobj
10 0 obj
<</Subtype/Type1/BaseFont/WEHTBZ+Times-Roman/Type/Font/Name/R10/FontDescriptor 
9 0 R/FirstChar 32/LastChar 251/Widths[
250 333 408 500 500 833 778 333 333 333 500 564 250 333 250 278
500 500 500 500 500 500 500 500 500 500 278 278 564 564 564 444
921 722 667 667 722 611 556 722 722 333 389 722 611 889 722 722
556 722 667 556 611 722 722 944 722 722 611 333 278 333 469 500
333 444 500 444 500 444 333 500 500 278 278 500 278 778 500 500
500 500 333 389 278 500 500 722 500 500 444 480 200 480 541 250
250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250
250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250
250 333 500 500 167 500 500 500 500 180 444 500 333 333 556 556
250 500 500 500 250 250 453 350 333 444 444 500 1000 1000 250 444
250 333 333 333 333 333 333 333 333 250 333 333 250 333 333 333
1000 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250
250 889 250 276 250 250 250 250 611 722 889 310 250 250 250 250
250 667 250 250 250 278 250 250 278 500 722 500]
>>
endobj
2 0 obj
<</Producer(ESP Ghostscript 7.05)>>endobj
xref
0 14
0000000000 65535 f 
0000000822 00000 n 
0000004270 00000 n 
0000000763 00000 n 
0000000870 00000 n 
0000000604 00000 n 
0000000015 00000 n 
0000000585 00000 n 
0000001204 00000 n 
0000000939 00000 n 
0000003248 00000 n 
0000003165 00000 n 
0000003186 00000 n 
0000003216 00000 n 
trailer
<< /Size 14 /Root 1 0 R /Info 2 0 R
>>
startxref
4320
%%EOF

--- NEW FILE ---
#FIG 3.2
Landscape
Center
Metric
A4      
100.00
Single
-2
1200 2
0 32 #bee7ff
0 33 #dff3ff
0 34 #f7ffdf
0 35 #96928e
0 36 #e7e7e7
0 37 #f7ffae
0 38 #ffe7df
0 39 #ffc3ae
6 7650 2250 8685 3285
6 7965 2340 8415 2790
2 2 0 1 0 34 52 0 20 0.000 0 0 -1 0 0 5
         7965 2340 8415 2340 8415 2790 7965 2790 7965 2340
2 2 0 1 35 37 51 0 20 0.000 0 0 -1 0 0 5
         8010 2385 8370 2385 8370 2745 8010 2745 8010 2385
-6
6 7650 2250 8100 2700
2 2 0 1 0 34 50 0 20 0.000 0 0 -1 0 0 5
         7650 2250 8100 2250 8100 2700 7650 2700 7650 2250
2 2 0 1 35 37 49 0 20 0.000 0 0 -1 0 0 5
         7695 2295 8055 2295 8055 2655 7695 2655 7695 2295
-6
6 7920 2520 8370 2970
2 2 0 1 0 34 46 0 20 0.000 0 0 -1 0 0 5
         7920 2520 8370 2520 8370 2970 7920 2970 7920 2520
2 2 0 1 35 37 45 0 20 0.000 0 0 -1 0 0 5
         7965 2565 8325 2565 8325 2925 7965 2925 7965 2565
-6
2 2 0 1 0 33 49 0 20 0.000 0 0 -1 0 0 5
         8010 2835 8460 2835 8460 3285 8010 3285 8010 2835
2 2 0 1 0 33 53 0 20 0.000 0 0 -1 0 0 5
         7740 2565 8190 2565 8190 3015 7740 3015 7740 2565
2 2 0 1 0 33 50 0 20 0.000 0 0 -1 0 0 5
         8100 2475 8550 2475 8550 2925 8100 2925 8100 2475
2 2 0 1 35 32 48 0 20 0.000 0 0 -1 0 0 5
         8055 2880 8415 2880 8415 3240 8055 3240 8055 2880
2 2 0 1 35 32 52 0 20 0.000 0 0 -1 0 0 5
         7785 2610 8145 2610 8145 2970 7785 2970 7785 2610
2 2 0 1 35 32 49 0 20 0.000 0 0 -1 0 0 5
         8145 2520 8505 2520 8505 2880 8145 2880 8145 2520
2 2 0 1 0 38 48 0 20 0.000 0 0 -1 0 0 5
         8235 2610 8685 2610 8685 3060 8235 3060 8235 2610
2 2 0 1 0 38 51 0 20 0.000 0 0 -1 0 0 5
         7875 2700 8325 2700 8325 3150 7875 3150 7875 2700
2 2 0 1 0 38 48 0 20 0.000 0 0 -1 0 0 5
         7785 2385 8235 2385 8235 2835 7785 2835 7785 2385
2 2 0 1 35 39 47 0 20 0.000 0 0 -1 0 0 5
         8280 2655 8640 2655 8640 3015 8280 3015 8280 2655
2 2 0 1 35 39 50 0 20 0.000 0 0 -1 0 0 5
         7920 2745 8280 2745 8280 3105 7920 3105 7920 2745
2 2 0 1 35 39 47 0 20 0.000 0 0 -1 0 0 5
         7830 2430 8190 2430 8190 2790 7830 2790 7830 2430
-6
2 1 0 2 0 33 53 0 20 0.000 0 0 -1 1 0 2
        1 1 2.00 120.00 240.00
         4725 2790 5400 2790
2 1 0 2 0 33 53 0 20 0.000 0 0 -1 1 0 2
        1 1 2.00 120.00 240.00
         6750 2790 7425 2790
2 2 0 2 0 34 52 0 20 0.000 0 0 7 0 0 5
         5715 2430 6390 2430 6390 3105 5715 3105 5715 2430
2 2 0 1 35 37 51 0 20 0.000 0 0 -1 0 0 5
         5805 2520 6300 2520 6300 3015 5805 3015 5805 2520
2 2 0 2 0 38 54 0 20 0.000 0 0 7 0 0 5
         5625 2295 6300 2295 6300 2970 5625 2970 5625 2295
2 2 0 1 35 39 53 0 20 0.000 0 0 -1 0 0 5
         5715 2385 6210 2385 6210 2880 5715 2880 5715 2385
2 2 0 2 0 33 50 0 20 0.000 0 0 7 0 0 5
         5805 2565 6480 2565 6480 3240 5805 3240 5805 2565
2 2 0 1 35 32 49 0 20 0.000 0 0 -1 0 0 5
         5895 2655 6390 2655 6390 3150 5895 3150 5895 2655
2 1 0 2 0 7 51 0 20 0.000 0 0 -1 0 0 6
         3870 3150 3870 2385 4320 2385 4500 2565 4500 3150 3881 3150
2 1 0 1 0 36 48 0 20 0.000 0 0 -1 0 0 4
         4320 2385 4320 2565 4500 2565 4320 2385
4 0 0 48 0 0 14 0.0000 4 150 255 4033 2835 .py\001
4 0 0 50 0 0 12 0.0000 4 180 705 3825 3600 Template\001
4 0 0 50 0 0 12 0.0000 4 135 435 5850 3600 Items\001
4 0 0 57 0 0 12 0.0000 4 135 750 7830 3600 Instances\001

--- NEW FILE ---
%PDF-1.3
%Ç쏢
6 0 obj
<</Length 7 0 R/Filter /FlateDecode>>
stream
xœ½WKk1¾ëWèØæ jFïk¡„z©ë´dC^PúïûÉ­â•­u    %°JF£yÏ7“'©Ivçí 
žÄ§k+×/âIÒæjÜòó—ø“HY.ˆí;’ìŒbbi—’\âÃׇ—×›‡ÛÕËÇå/ñe)¯2·JÚビÏk~
"k%iM¤e§(šr>¯Ä‘”µÑÉßsØb«
9ØSP4zÑ-/çpfùÁºÊmÇi£B(pÅìá»-çN~Ë¡OíÃ`œUäw°ÈÇÐ4;ÖQ«Ù¥Œ½u
Áˆ¸ANÚnu2֗±˜ŽTÎíi`^$w*a}Άc”Ëö푿]‹í
ì?Í­…  *¡bÙP(Q3J1!±¢Xc¡Iúd‰a$쥀`•·+Êa®ÿŸæV¯ý!½N˜43fp½5èƒæÍzàƒröØ 
ŸÁՀ)FÎáݾQÎjåÞˆ+ûrbþgÛ[Œ6­ÜE¨Àó¶;e|ÈëPµÞ-WÃãýÍë*ow˜¿pÖËåw,~¯«a\ú¦Ða-FW”¥çé_±£/¤U[Äa‹ÌvÀ¾ÇØÂú€UÄÙ2Î)þS¤!lÙ#
 µ¡i×þ£¢-…Ò6uW¡C¨‰"R'¢Üç\”1è8WŸ9ÖÑ}®
"AËz‚pC¡L n$LajßIÒ݌¶DR¥Xµ%–*mböYÙìsîJõøçÍ¿[oõP¨s
´ÿ4§Ê
endobj
7 0 obj
853
endobj
5 0 obj
<</Type/Page/MediaBox [0 0 308 91]
/Rotate 0/Parent 3 0 R
/Resources<</ProcSet[/PDF /Text]
/ExtGState 12 0 R
/Font 13 0 R
>>
/Contents 6 0 R
>>
endobj
3 0 obj
<< /Type /Pages /Kids [
5 0 R
] /Count 1
>>
endobj
1 0 obj
<</Type /Catalog /Pages 3 0 R
>>
endobj
4 0 obj
<</Type/ExtGState/Name/R4/TR/Identity/OPM 1/SM 0.02>>
endobj
9 0 obj
<</Type/FontDescriptor/FontName/YVRLVN+Times-Roman/FontBBox[-168 -281 1000 
924]/Flags 34
/Ascent 924
/CapHeight 676
/Descent -281
/ItalicAngle 0
/StemV 111
/MissingWidth 250
/XHeight 461
/CharSet(/period/I/T/a/c/e/l/m/n/p/s/t/y)
/FontFile3 8 0 R>>
endobj
8 0 obj
<</Subtype/Type1C/Filter/FlateDecode/Length 11 0 R>>stream
xœT{L[×¾ƒïUFH‹å¦.‰}UuQ”¦Óº)Êc!‰¢8„˜7¤c.æf¶¯ñµl°yŒÁæa
6ó6àæIÒ±$„Òf뒵«Ò¬*TÚ4uZµ‡¶KoþØ5™šIûoÒýãÜóýÎ÷ïœßùP$>AQTT˜§çeÈ¡´$ó¦‚Ö*u±él
ÊîŠcw¸#ÜüwÖï&ìFäAÁvVšˆŒìÂþ™¼¹ãeö;Ø?¼ôœÈN¡·Ñͽ¹Šü}¤ž¤õf¥®4o§§§efâ?‘A2”ZGìáÕ¤†ÖkI1È&IÂXI”†$N^È*<›y†Ø{&3—8CêHƒRCd™Ê4”ŠS*Rǐûˆ
address@hidden)ZǤ'BI0zREñ‹ÈZ©©„ž4h)†áÇÅjƒRg$Ë   
#MP:•ÆT“çç+h‘Ðh×òO•E3FFe 
ôF‚WÌÊ8ý|ÆJ¥1¦ËP<LÐ|e9­2ÅÜ|•”Ž!Œd­1¦SFå£×(ͼ.O¥7P[[01”NýB=•0j¥¡\C2[¼±Syáø/×J½^cÞZKoU}¯ORS‘–IiËL
±u§D&NÈ        ©6i”†ÿE^Ü×ÿwƒ‚l7ëTz’1æœÕ(address@hidden"™È$‰o$q"ÿB3ÑGqoÅ­
ö       ªï     ¾÷$K(‚Il+§[g׆Q–fóÄ\ŠUl¬kiwµ:eû¹iƒÝ®?蓀`À{Ӎ¸26Ñ2d÷Y 
kµ³) *T«Xr‹ÖVeªµht;ºj½àƚærÄpã“îÃ7îÊ`›êôõ†;%¼>°¯ÝC®ÃŒuÁ 
ûº¸»³·£àS=Ö"ׁ…ÝVЂ[ae
͔®.]  /ÏIëûª
‡      H*¬“ËàUL´ñWaAˆýö
address@hidden&"~֊ŸØ퇛ñZx+„¥{l~ðÎúîbPFÍc\ºàфgkBw4!,
Ct,ãž¿¡Íøúgžƒ¨¯o8ÔÊÝá‰:ëbDYølÀ¿îÁCܝZl£¹ßNð+gA
ÄݾŽþÀ#½6¾§ª0k«—7óOÀÀ䞆^pg¿ÁZÜùÒqÚ²Õö+Šì«áäÐWpï—;address@hidden
eüÍErãpÍXxdxÔÓÞÕõ´û€ŸŒŒ^[šÔåJ31.í¼¥©”4ÕØ(pÈKÖ¯,¯IEþü®`õõ”y0Ò¿p…
‡¸·¾Mscuc£«^IÏߔy0°z=
·/âI›!>
v/£üÑÇ>AˆO§/–=uÅ2®;æҚÝλ4°<·µ\Åáܾ^¯w|ìæÐÀG+OÉ8-²ívE,ŒLÑaá°›¹9¼
ð• þ°ŒSóéÒÔtÑÉѬʭu×ÁU       ,Ãà¶ò^,¨º˜+5¯P“¹ жÃrüs>H
jù ±J’`§}…/ÿE¬5Titã†éىñéÙª    ­,©f˜Í†9Ùm?˜ñ%&n·#È¿I#
endstream
endobj
11 0 obj
1826
endobj
12 0 obj
<</R4
4 0 R>>
endobj
13 0 obj
<</R10
10 0 R>>
endobj
10 0 obj
<</Subtype/Type1/BaseFont/YVRLVN+Times-Roman/Type/Font/Name/R10/FontDescriptor 
9 0 R/FirstChar 32/LastChar 251/Widths[
250 333 408 500 500 833 778 333 333 333 500 564 250 333 250 278
500 500 500 500 500 500 500 500 500 500 278 278 564 564 564 444
921 722 667 667 722 611 556 722 722 333 389 722 611 889 722 722
556 722 667 556 611 722 722 944 722 722 611 333 278 333 469 500
333 444 500 444 500 444 333 500 500 278 278 500 278 778 500 500
500 500 333 389 278 500 500 722 500 500 444 480 200 480 541 250
250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250
250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250
250 333 500 500 167 500 500 500 500 180 444 500 333 333 556 556
250 500 500 500 250 250 453 350 333 444 444 500 1000 1000 250 444
250 333 333 333 333 333 333 333 333 250 333 333 250 333 333 333
1000 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250
250 889 250 276 250 250 250 250 611 722 889 310 250 250 250 250
250 667 250 250 250 278 250 250 278 500 722 500]
>>
endobj
2 0 obj
<</Producer(ESP Ghostscript 7.05)>>endobj
xref
0 14
0000000000 65535 f 
0000001175 00000 n 
0000004571 00000 n 
0000001116 00000 n 
0000001223 00000 n 
0000000957 00000 n 
0000000015 00000 n 
0000000938 00000 n 
0000001555 00000 n 
0000001292 00000 n 
0000003549 00000 n 
0000003466 00000 n 
0000003487 00000 n 
0000003517 00000 n 
trailer
<< /Size 14 /Root 1 0 R /Info 2 0 R
>>
startxref
4621
%%EOF

--- NEW FILE ---
\subsection{Items and Inventories}

In this section, we will explore how items are modelled and kept. The main goal 
was to allow for all kinds of items, with many different abilities. Creation of 
new items should be fast and simple, without having to modify the engine. And 
last but not least, the item system as a whole should be efficient and 
convenient for both designers and players. \\

Therefore, items have been splitted into three layers.

\begin{enumerate}
\item{\bf Engine layer.} Functionality required to manage items is implemented 
by the engine. This includes item instantiation, inventory handling and access 
to advanced item functionality.

\item{\bf Game extension layer.} The item system itself -- that is properties 
and abilities as well as game rules concerning items -- is implemented as a 
game extension on top of these basic functions. That way, different games can 
have totally different item systems.

\item{\bf Data layer.} On top of the item system sits the item data, i.e. all 
the individual items actually available in a game.
\end{enumerate}

\begin{figure}[hb]
\center
\includegraphics{items.pdf}
\caption{Item hierarchy}
\end{figure}

The figure shows the relation between game extension, data and engine layer. 
For each ``class" of items\footnote{Like weapons, armour, potions, lightsources 
and so on. Subclassing is also possible, of course. Imagine ranged weapons, 
healing potions, etc.}, a {\it template} needs to be written in Python. By 
initialising attributes of the same template with different values, different 
{\it items} can be defined. At runtime, multiple {\it instances} of every such 
item can be created and used by the engine. \\

For efficiency reasons, the engine distinguishes between two different kinds of 
items: {\it mutable} items require an actual physical instance for every 
occurrence in the game. As a result, they can be easily changed throughout the 
game. {\it Immutable} items on the other hand are instantiated only once. They 
are kept in a central repository, and reference counts are used to allow 
multiple occurrences in the game. \\

Despite the fact that large parts of the item system are not implemented by the 
game engine, items are always stored on engine level, in so called {\it slots}. 
A slot may contain several items of the same kind, if the item allows that. 
Immutable items are considered to be of a kind when their instance pointers are 
equal. For mutable items, item names have to match. 

\begin{figure}[h]
\center
\includegraphics{inventory.pdf}
\caption{Inventory, slots and stacks}
\end{figure}

With the above in mind, an {\it inventory} is easily implemented. It is little 
more than a list of slots. To remain flexible, only the most basic inventory 
operations have been implemented on engine level, like adding new items. For 
convenience, the inventory tries to group items of same kind together in a {\it 
stack}. Furthermore, removal of items happens automatically as they are moved 
from one slot or inventory to the other.

Inventories are not limited to a certain number of slots. If desired, they can 
even grow or shrink at runtime. Therefore, inventories can be used whenever 
large quantities of items need to be stored, not only to represent a 
character's backpack. 


Index: Makefile
===================================================================
RCS file: /cvsroot/adonthell/doc/architecture/Makefile,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** Makefile    2 Jan 2003 23:07:07 -0000       1.2
--- Makefile    3 Mar 2003 23:26:54 -0000       1.3
***************
*** 1,5 ****
! IMAGES = layers.pdf \
!         arch.pdf \
!               mapview.pdf
          
  all: pdf
--- 1,7 ----
! IMAGES = arch.pdf \
!         inventory.pdf \
!         items.pdf \
!         layers.pdf \
!       mapview.pdf
          
  all: pdf

Index: architecture.tex
===================================================================
RCS file: /cvsroot/adonthell/doc/architecture/architecture.tex,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** architecture.tex    22 Feb 2003 11:27:05 -0000      1.3
--- architecture.tex    3 Mar 2003 23:26:54 -0000       1.4
***************
*** 72,74 ****
--- 72,75 ----
  \include{overview}          % Overview
  \include{edesign}           % Engine design
+ \include{items}
  \end{document}





reply via email to

[Prev in Thread] Current Thread [Next in Thread]